{"version":3,"file":"Col.cjs","sources":["../../../../src/lib/Layout/Col.tsx"],"sourcesContent":["import type {ReactNode} from 'react';\nimport {useMemo, forwardRef} from 'react';\nimport {useLocalTheme} from 'css-vars-hook';\nimport classNames from 'classnames';\n\nimport type {DataAttributes, LibraryProps} from '@/internal/LibraryAPI';\nimport {useLinkRefs} from '@/internal/hooks/useLinkRefs.ts';\n\nimport {Sizes} from './SizeTypes';\nimport type {OffsetConfig, SizesConfig} from './SizeTypes';\nimport classes from './Layout.module.css';\n\nexport type ColProps = DataAttributes &\n    LibraryProps &\n    Partial<SizesConfig> &\n    Partial<OffsetConfig> & {\n        /** Select an HTML element to render as a container */\n        as?: string;\n        children?: ReactNode;\n    };\n\nconst filterUndefined = (target: Record<string, number | string | undefined>) => {\n    return Object.fromEntries(Object.entries(target).filter(([_, v]) => v !== undefined)) as Record<\n        string,\n        number | string\n    >;\n};\n\nexport const Col = forwardRef<HTMLElement, ColProps>(\n    (\n        {\n            as = 'div',\n            children,\n            className,\n            xs,\n            sm,\n            md,\n            lg,\n            xl,\n            shiftXS,\n            shiftSM,\n            shiftMD,\n            shiftLG,\n            shiftXL,\n            ...nativeProps\n        },\n        ref\n    ) => {\n        const {LocalRoot, ref: internalRef} = useLocalTheme();\n        useLinkRefs(ref, internalRef);\n        const theme = useMemo(\n            () =>\n                filterUndefined({\n                    [Sizes.xs]: xs ?? '',\n                    [Sizes.sm]: sm ?? '',\n                    [Sizes.md]: md ?? '',\n                    [Sizes.lg]: lg ?? '',\n                    [Sizes.xl]: xl ?? '',\n                    [`shift-${Sizes.xs}`]: shiftXS ?? '',\n                    [`shift-${Sizes.sm}`]: shiftSM ?? '',\n                    [`shift-${Sizes.md}`]: shiftMD ?? '',\n                    [`shift-${Sizes.lg}`]: shiftLG ?? '',\n                    [`shift-${Sizes.xl}`]: shiftXL ?? '',\n                }),\n            [xs, sm, md, lg, xl, shiftXS, shiftSM, shiftMD, shiftLG, shiftXL]\n        );\n        return (\n            <LocalRoot\n                {...nativeProps}\n                theme={theme}\n                as={as}\n                className={classNames(\n                    classes.column,\n                    {\n                        [classes.xs]: !!xs,\n                        [classes.sm]: !!sm,\n                        [classes.md]: !!md,\n                        [classes.lg]: !!lg,\n                        [classes.xl]: !!xl,\n                        [classes['fluid-xs']]: xs === 'fluid',\n                        [classes['fluid-sm']]: sm === 'fluid',\n                        [classes['fluid-md']]: md === 'fluid',\n                        [classes['fluid-lg']]: lg === 'fluid',\n                        [classes['fluid-xl']]: xl === 'fluid',\n                    },\n                    className\n                )}>\n                {children}\n            </LocalRoot>\n        );\n    }\n);\n\nCol.displayName = 'Col';\n"],"names":["filterUndefined","target","_","v","Col","forwardRef","as","children","className","xs","sm","md","lg","xl","shiftXS","shiftSM","shiftMD","shiftLG","shiftXL","nativeProps","ref","LocalRoot","internalRef","useLocalTheme","useLinkRefs","theme","useMemo","Sizes","jsx","classNames","classes"],"mappings":"4TAqBMA,EAAmBC,GACd,OAAO,YAAY,OAAO,QAAQA,CAAM,EAAE,OAAO,CAAC,CAACC,EAAGC,CAAC,IAAMA,IAAM,MAAS,CAAC,EAM3EC,EAAMC,EAAA,WACf,CACI,CACI,GAAAC,EAAK,MACL,SAAAC,EACA,UAAAC,EACA,GAAAC,EACA,GAAAC,EACA,GAAAC,EACA,GAAAC,EACA,GAAAC,EACA,QAAAC,EACA,QAAAC,EACA,QAAAC,EACA,QAAAC,EACA,QAAAC,EACA,GAAGC,GAEPC,IACC,CACD,KAAM,CAAC,UAAAC,EAAW,IAAKC,CAAA,EAAeC,EAAAA,cAAc,EACpDC,EAAA,YAAYJ,EAAKE,CAAW,EAC5B,MAAMG,EAAQC,EAAA,QACV,IACI1B,EAAgB,CACZ,CAAC2B,EAAA,MAAM,EAAE,EAAGlB,GAAM,GAClB,CAACkB,EAAA,MAAM,EAAE,EAAGjB,GAAM,GAClB,CAACiB,EAAA,MAAM,EAAE,EAAGhB,GAAM,GAClB,CAACgB,EAAA,MAAM,EAAE,EAAGf,GAAM,GAClB,CAACe,EAAA,MAAM,EAAE,EAAGd,GAAM,GAClB,CAAC,SAASc,EAAA,MAAM,EAAE,EAAE,EAAGb,GAAW,GAClC,CAAC,SAASa,EAAA,MAAM,EAAE,EAAE,EAAGZ,GAAW,GAClC,CAAC,SAASY,EAAA,MAAM,EAAE,EAAE,EAAGX,GAAW,GAClC,CAAC,SAASW,EAAA,MAAM,EAAE,EAAE,EAAGV,GAAW,GAClC,CAAC,SAASU,EAAAA,MAAM,EAAE,EAAE,EAAGT,GAAW,EAAA,CACrC,EACL,CAACT,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAASC,EAASC,EAASC,EAASC,CAAO,CACpE,EAEI,OAAAU,EAAA,IAACP,EAAA,CACI,GAAGF,EACJ,MAAAM,EACA,GAAAnB,EACA,UAAWuB,EACPC,EAAAA,QAAQ,OACR,CACI,CAACA,EAAA,QAAQ,EAAE,EAAG,CAAC,CAACrB,EAChB,CAACqB,EAAA,QAAQ,EAAE,EAAG,CAAC,CAACpB,EAChB,CAACoB,EAAA,QAAQ,EAAE,EAAG,CAAC,CAACnB,EAChB,CAACmB,EAAA,QAAQ,EAAE,EAAG,CAAC,CAAClB,EAChB,CAACkB,EAAA,QAAQ,EAAE,EAAG,CAAC,CAACjB,EAChB,CAACiB,UAAQ,UAAU,CAAC,EAAGrB,IAAO,QAC9B,CAACqB,UAAQ,UAAU,CAAC,EAAGpB,IAAO,QAC9B,CAACoB,UAAQ,UAAU,CAAC,EAAGnB,IAAO,QAC9B,CAACmB,UAAQ,UAAU,CAAC,EAAGlB,IAAO,QAC9B,CAACkB,EAAA,QAAQ,UAAU,CAAC,EAAGjB,IAAO,OAClC,EACAL,CACJ,EACC,SAAAD,CAAA,CACL,CAAA,CAGZ,EAEAH,EAAI,YAAc"}