koval-ui
Version:
React components collection with minimalistic design. Supports theming, layout, and input validation.
1 lines • 2.65 kB
Source Map (JSON)
{"version":3,"file":"SkeletonFrame.cjs","sources":["../../../../src/lib/Skeleton/SkeletonFrame.tsx"],"sourcesContent":["import type {ReactNode} from 'react';\nimport {useMemo, forwardRef} from 'react';\nimport classNames from 'classnames';\nimport {useLocalTheme} from 'css-vars-hook';\n\nimport type {DataAttributes, LibraryProps} from '@/internal/LibraryAPI';\nimport {useLinkRefs} from '@/internal/hooks/useLinkRefs.ts';\n\nimport classes from './Skeleton.module.css';\nimport type {SkeletonProps} from './SkeletonTypes.ts';\nimport {normalizeUnit} from './normalizeUnit.ts';\n\nexport type Props = DataAttributes &\n LibraryProps &\n SkeletonProps & {\n borderRadius?: number;\n children?: ReactNode;\n };\n\nexport const SkeletonFrame = forwardRef<HTMLDivElement, Props>(\n (\n {\n children,\n className,\n width = 'fluid',\n height,\n borderRadius = 12,\n marginY = 0,\n marginX = 0,\n ...nativeProps\n },\n ref\n ) => {\n const {LocalRoot, ref: innerRef} = useLocalTheme<HTMLDivElement>();\n useLinkRefs(ref, innerRef);\n const theme = useMemo(\n () => ({\n width: normalizeUnit(width),\n height: normalizeUnit(height),\n 'border-radius': borderRadius,\n 'margin-y': marginY,\n 'margin-x': marginX,\n }),\n [borderRadius, height, marginX, marginY, width]\n );\n return (\n <LocalRoot\n {...nativeProps}\n theme={theme}\n className={classNames(classes.skeletonFrame, className)}>\n {children}\n </LocalRoot>\n );\n }\n);\n\nSkeletonFrame.displayName = 'SkeletonFrame';\n"],"names":["SkeletonFrame","forwardRef","children","className","width","height","borderRadius","marginY","marginX","nativeProps","ref","LocalRoot","innerRef","useLocalTheme","useLinkRefs","theme","useMemo","normalizeUnit","jsx","classNames","classes"],"mappings":"kUAmBaA,EAAgBC,EAAA,WACzB,CACI,CACI,SAAAC,EACA,UAAAC,EACA,MAAAC,EAAQ,QACR,OAAAC,EACA,aAAAC,EAAe,GACf,QAAAC,EAAU,EACV,QAAAC,EAAU,EACV,GAAGC,GAEPC,IACC,CACD,KAAM,CAAC,UAAAC,EAAW,IAAKC,CAAA,EAAYC,EAAAA,cAA8B,EACjEC,EAAA,YAAYJ,EAAKE,CAAQ,EACzB,MAAMG,EAAQC,EAAA,QACV,KAAO,CACH,MAAOC,gBAAcb,CAAK,EAC1B,OAAQa,gBAAcZ,CAAM,EAC5B,gBAAiBC,EACjB,WAAYC,EACZ,WAAYC,CAAA,GAEhB,CAACF,EAAcD,EAAQG,EAASD,EAASH,CAAK,CAClD,EAEI,OAAAc,EAAA,IAACP,EAAA,CACI,GAAGF,EACJ,MAAAM,EACA,UAAWI,EAAWC,UAAQ,cAAejB,CAAS,EACrD,SAAAD,CAAA,CACL,CAAA,CAGZ,EAEAF,EAAc,YAAc"}