= (props) => {
+ const {
+ backgroundColor = '',
+ flexDirection = 'column',
+ overflow = 'hidden',
+ children,
+ classname = '',
+ } = props;
+ const childs = React.Children.toArray(children);
+ return (
+
+ {!!childs &&
+ childs.map((child: any, index: number) => {
+ return React.cloneElement(child, { ...child.props, key: index });
+ })}
+
+ );
+};
+
+export default FillContainer;
diff --git a/packages/flow/src/components/FlexContent/index.tsx b/packages/flow/src/components/FlexContent/index.tsx
new file mode 100644
index 00000000..b665d1c0
--- /dev/null
+++ b/packages/flow/src/components/FlexContent/index.tsx
@@ -0,0 +1,55 @@
+import React from 'react';
+// import './index.less';
+
+interface FlexContentProps {
+ /**
+ * @description 自定义样式
+ * @default ''
+ */
+ classname?: string;
+ /**
+ * @description 背景颜色
+ * @default ''
+ */
+ backgroundColor?: string;
+ /**
+ * @description 布局方向
+ * @default 'column'
+ */
+ flexDirection?: 'column' | 'row';
+ /**
+ * @description 内容滚动配置
+ * @default 'scroll'
+ */
+ overflow?: string;
+}
+
+const FlexContent: React.FC = (props) => {
+ const {
+ backgroundColor = '',
+ flexDirection = 'column',
+ overflow = 'scroll',
+ children,
+ classname = '',
+ } = props;
+ const childs = React.Children.toArray(children);
+ return (
+
+ {!!childs &&
+ childs.map((child: any, index: number) => {
+ return React.cloneElement(child, { ...child.props, key: index });
+ })}
+
+ );
+};
+
+export default FlexContent;
diff --git a/packages/flow/src/components/ShrinkingModule/index.tsx b/packages/flow/src/components/ShrinkingModule/index.tsx
new file mode 100644
index 00000000..d1e6066f
--- /dev/null
+++ b/packages/flow/src/components/ShrinkingModule/index.tsx
@@ -0,0 +1,54 @@
+import React from 'react';
+
+interface ShrinkingModuleProps {
+ /**
+ * @description 自定义样式
+ * @default ''
+ */
+ classname?: string;
+ /**
+ * @description 背景颜色
+ * @default ''
+ */
+ backgroundColor?: string;
+ /**
+ * @description 布局排列方向
+ * @default 'column'
+ */
+ flexDirection?: 'column' | 'row';
+ /**
+ * @description 内容滚动配置
+ * @default 'hidden'
+ */
+ overflow?: string;
+}
+
+const ShrinkingModule: React.FC = (props) => {
+ const {
+ backgroundColor = '',
+ flexDirection = 'column',
+ overflow = 'hidden',
+ children,
+ classname = '',
+ } = props;
+ const childs = React.Children.toArray(children);
+ return (
+
+ {!!childs &&
+ childs.map((child: any, index: number) => {
+ return React.cloneElement(child, { ...child.props, key: index });
+ })}
+
+ );
+};
+
+export default ShrinkingModule;
diff --git a/packages/flow/src/index.ts b/packages/flow/src/index.ts
index 7e41ad3a..2bb6e0db 100644
--- a/packages/flow/src/index.ts
+++ b/packages/flow/src/index.ts
@@ -1,4 +1,7 @@
export { ErrorBoundary, withErrorBoundary } from './components/ErrorBoundary';
+export { default as FillContainer } from './components/FillContainer';
+export { default as FlexContent } from './components/FlexContent';
export { default as For } from './components/For';
export { default as Show } from './components/Show';
+export { default as ShrinkingModule } from './components/ShrinkingModule';
export { default as Switch, Match } from './components/Switch';
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 4ca49ecf..78929cef 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -82,6 +82,14 @@ importers:
alita: link:../../packages/alita
antd-mobile-icons: 0.2.2
+ examples/flow:
+ specifiers:
+ '@alita/flow': workspace:*
+ alita: workspace:*
+ dependencies:
+ '@alita/flow': link:../../packages/flow
+ alita: link:../../packages/alita
+
packages/alita:
specifiers:
'@alita/plugins': workspace:*