{"version":3,"file":"Flex.cjs","sources":["../../../../src/components/flex/Flex.tsx"],"sourcesContent":["import clsx from \"clsx\";\nimport React, { type CSSProperties, forwardRef } from \"react\";\nimport { SlotComponent } from \"../../utilities/index.js\";\nimport type { PolymorphicRef } from \"../../utilities/polymorphism/polymorphism.js\";\nimport type { FlexComponent, FlexProps } from \"./types.js\";\n\nexport const Flex = forwardRef(function Flex<\n    ElementType extends React.ElementType = \"div\",\n>(props: FlexProps<ElementType>, ref?: PolymorphicRef<ElementType>) {\n    const {\n        asChild,\n        alignItems,\n        alignContent,\n        as = \"div\",\n        className,\n        direction,\n        gap,\n        justifyContent,\n        wrap,\n        style,\n        ...rest\n    } = props;\n\n    const wrapping =\n        wrap === true\n            ? \"wrap\"\n            : wrap === false\n              ? \"nowrap\"\n              : wrap === \"reverse\"\n                ? \"wrap-reverse\"\n                : wrap;\n\n    function getGapValue(gap: FlexProps[\"gap\"]) {\n        if (gap?.toString().includes(\" \")) {\n            const [rowGap, columnGap] = gap.toString().trim().split(\" \");\n            return `var(--jkl-spacing-${rowGap}) var(--jkl-spacing-${columnGap})`;\n        }\n        if (gap) {\n            return `var(--jkl-spacing-${gap})`;\n        }\n        return undefined;\n    }\n\n    const Tag = asChild ? SlotComponent : as;\n\n    return (\n        <Tag\n            style={\n                {\n                    \"--wrap\": wrapping,\n                    \"--gap\": getGapValue(gap),\n                    \"--align-items\": alignItems,\n                    \"--align-content\": alignContent,\n                    \"--justify-content\": justifyContent,\n                    \"--flex-direction\": direction,\n                    ...style,\n                } as CSSProperties\n            }\n            {...rest}\n            className={clsx(\"jkl-flex\", className)}\n            ref={ref}\n        />\n    );\n}) as FlexComponent;\n"],"names":["Flex","forwardRef","props","ref","asChild","alignItems","alignContent","as","className","direction","gap","justifyContent","wrap","style","rest","wrapping","Tag","SlotComponent","jsx","toString","includes","rowGap","columnGap","trim","split","getGapValue","clsx"],"mappings":"4OAMaA,EAAOC,EAAAA,WAAW,SAE7BC,EAA+BC,GAC7B,MACIC,QAAAA,EACAC,WAAAA,EACAC,aAAAA,EACAC,GAAAA,EAAK,MACLC,UAAAA,EACAC,UAAAA,EACAC,IAAAA,EACAC,eAAAA,EACAC,KAAAA,EACAC,MAAAA,KACGC,GACHZ,EAEEa,GACO,IAATH,EACM,QACS,IAATA,EACE,SACS,YAATA,EACE,eACAA,EAad,MAAMI,EAAMZ,EAAUa,EAAAA,cAAgBV,EAEtC,OACIW,EAAAA,IAACF,EAAA,CACGH,MACI,CACI,SAAUE,EACV,QAlBhB,SAAqBL,GACjB,GAAIA,GAAKS,WAAWC,SAAS,KAAM,CAC/B,MAAOC,EAAQC,GAAaZ,EAAIS,WAAWI,OAAOC,MAAM,KACxD,MAAO,qBAAqBH,wBAA6BC,IAC7D,CACA,GAAIZ,EACA,MAAO,qBAAqBA,IAGpC,CASyBe,CAAYf,GACrB,gBAAiBL,EACjB,kBAAmBC,EACnB,oBAAqBK,EACrB,mBAAoBF,KACjBI,MAGPC,EACJN,UAAWkB,EAAAA,KAAK,WAAYlB,GAC5BL,IAAAA,GAGZ"}