koval-ui
Version:
React components collection with minimalistic design. Supports theming, layout, and input validation.
1 lines • 5.06 kB
Source Map (JSON)
{"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"}