{"version":3,"file":"FlexBasic.mjs","names":[],"sources":["../../src/Flex/FlexBasic.tsx"],"sourcesContent":["'use client';\n\nimport { type CSSProperties, type ElementType, type FC, memo } from 'react';\n\nimport type { FlexBasicProps } from './type';\nimport { getCssValue, getFlexDirection, isHorizontal, isSpaceDistribution } from './utils';\n\nconst FlexBasic: FC<FlexBasicProps> = ({\n  visible,\n  flex,\n  gap,\n  direction,\n  horizontal,\n  align,\n  justify,\n  distribution,\n  height,\n  width,\n  allowShrink,\n  padding,\n  paddingInline,\n  paddingBlock,\n  prefixCls,\n  as: Container = 'div' as ElementType,\n  className,\n  style,\n  children,\n  wrap,\n  ref,\n  ...props\n}) => {\n  const justifyContent = justify || distribution;\n\n  const calcWidth = () => {\n    if (isHorizontal(direction, horizontal) && !width && isSpaceDistribution(justifyContent))\n      return '100%';\n\n    return getCssValue(width);\n  };\n  const finalWidth = calcWidth();\n\n  const cssVars: Record<string, string | number> = {\n    ...(flex !== undefined ? { '--lobe-flex': String(flex) } : {}),\n    ...(direction || horizontal\n      ? { '--lobe-flex-direction': getFlexDirection(direction, horizontal) }\n      : {}),\n    ...(wrap !== undefined ? { '--lobe-flex-wrap': wrap } : {}),\n    ...(justifyContent !== undefined ? { '--lobe-flex-justify': justifyContent } : {}),\n    ...(align !== undefined ? { '--lobe-flex-align': align } : {}),\n    ...(finalWidth !== undefined ? { '--lobe-flex-width': finalWidth } : {}),\n    ...(height !== undefined ? { '--lobe-flex-height': getCssValue(height) } : {}),\n    ...(padding !== undefined ? { '--lobe-flex-padding': getCssValue(padding) } : {}),\n    ...(paddingInline !== undefined\n      ? { '--lobe-flex-padding-inline': getCssValue(paddingInline) }\n      : {}),\n    ...(paddingBlock !== undefined\n      ? { '--lobe-flex-padding-block': getCssValue(paddingBlock) }\n      : {}),\n    ...(gap !== undefined ? { '--lobe-flex-gap': getCssValue(gap) } : {}),\n  };\n\n  const mergedStyle: CSSProperties = {\n    ...(cssVars as CSSProperties),\n    ...(allowShrink ? { minWidth: 0 } : {}),\n    ...style,\n  };\n\n  const baseClassName = 'lobe-flex';\n  const mergedClassName = [\n    baseClassName,\n    visible === false ? `${baseClassName}--hidden` : undefined,\n    prefixCls ? `${prefixCls}-flex` : undefined,\n    className,\n  ]\n    .filter(Boolean)\n    .join(' ');\n\n  return (\n    <Container ref={ref} {...props} className={mergedClassName} style={mergedStyle}>\n      {children}\n    </Container>\n  );\n};\n\nexport default memo(FlexBasic);\n"],"mappings":";;;;;AAOA,MAAM,aAAiC,EACrC,SACA,MACA,KACA,WACA,YACA,OACA,SACA,cACA,QACA,OACA,aACA,SACA,eACA,cACA,WACA,IAAI,YAAY,OAChB,WACA,OACA,UACA,MACA,KACA,GAAG,YACC;CACJ,MAAM,iBAAiB,WAAW;CAElC,MAAM,kBAAkB;AACtB,MAAI,aAAa,WAAW,WAAW,IAAI,CAAC,SAAS,oBAAoB,eAAe,CACtF,QAAO;AAET,SAAO,YAAY,MAAM;;CAE3B,MAAM,aAAa,WAAW;CAsB9B,MAAM,cAA6B;EAnBjC,GAAI,SAAS,KAAA,IAAY,EAAE,eAAe,OAAO,KAAK,EAAE,GAAG,EAAE;EAC7D,GAAI,aAAa,aACb,EAAE,yBAAyB,iBAAiB,WAAW,WAAW,EAAE,GACpE,EAAE;EACN,GAAI,SAAS,KAAA,IAAY,EAAE,oBAAoB,MAAM,GAAG,EAAE;EAC1D,GAAI,mBAAmB,KAAA,IAAY,EAAE,uBAAuB,gBAAgB,GAAG,EAAE;EACjF,GAAI,UAAU,KAAA,IAAY,EAAE,qBAAqB,OAAO,GAAG,EAAE;EAC7D,GAAI,eAAe,KAAA,IAAY,EAAE,qBAAqB,YAAY,GAAG,EAAE;EACvE,GAAI,WAAW,KAAA,IAAY,EAAE,sBAAsB,YAAY,OAAO,EAAE,GAAG,EAAE;EAC7E,GAAI,YAAY,KAAA,IAAY,EAAE,uBAAuB,YAAY,QAAQ,EAAE,GAAG,EAAE;EAChF,GAAI,kBAAkB,KAAA,IAClB,EAAE,8BAA8B,YAAY,cAAc,EAAE,GAC5D,EAAE;EACN,GAAI,iBAAiB,KAAA,IACjB,EAAE,6BAA6B,YAAY,aAAa,EAAE,GAC1D,EAAE;EACN,GAAI,QAAQ,KAAA,IAAY,EAAE,mBAAmB,YAAY,IAAI,EAAE,GAAG,EAAE;EAKpE,GAAI,cAAc,EAAE,UAAU,GAAG,GAAG,EAAE;EACtC,GAAG;EACJ;CAED,MAAM,gBAAgB;CACtB,MAAM,kBAAkB;EACtB;EACA,YAAY,QAAQ,GAAG,cAAc,YAAY,KAAA;EACjD,YAAY,GAAG,UAAU,SAAS,KAAA;EAClC;EACD,CACE,OAAO,QAAQ,CACf,KAAK,IAAI;AAEZ,QACE,oBAAC,WAAD;EAAgB;EAAK,GAAI;EAAO,WAAW;EAAiB,OAAO;EAChE;EACS,CAAA;;AAIhB,IAAA,oBAAe,KAAK,UAAU"}