{"version":3,"file":"Skeleton.cjs","names":["createVarsResolver","rem","getRadius","factory","useProps","Box","useStyles","classes"],"sources":["../../../src/components/Skeleton/Skeleton.tsx"],"sourcesContent":["import {\n  Box,\n  BoxProps,\n  createVarsResolver,\n  ElementProps,\n  factory,\n  Factory,\n  getRadius,\n  rem,\n  StylesApiProps,\n  useProps,\n  useStyles,\n} from '../../core';\nimport classes from './Skeleton.module.css';\n\nexport type SkeletonStylesNames = 'root';\nexport type SkeletonCssVariables = {\n  root: '--skeleton-width' | '--skeleton-height' | '--skeleton-radius';\n};\n\nexport interface SkeletonProps\n  extends BoxProps, StylesApiProps<SkeletonFactory>, ElementProps<'div'> {\n  /** Determines whether Skeleton overlay should be displayed @default true */\n  visible?: boolean;\n\n  /** Skeleton `height`, numbers are converted to rem @default auto */\n  height?: React.CSSProperties['height'];\n\n  /** Skeleton `width`, numbers are converted to rem, ignored when `circle` prop is set. @default 100% */\n  width?: React.CSSProperties['width'];\n\n  /** If set, Skeleton `width` and `border-radius` are equal to its `height` @default false */\n  circle?: boolean;\n\n  /** Key of `theme.radius` or any valid CSS value to set border-radius. Numbers are converted to rem. @default theme.defaultRadius */\n  radius?: React.CSSProperties['borderRadius'];\n\n  /** Enables animation @default true */\n  animate?: boolean;\n}\n\nexport type SkeletonFactory = Factory<{\n  props: SkeletonProps;\n  ref: HTMLDivElement;\n  stylesNames: SkeletonStylesNames;\n  vars: SkeletonCssVariables;\n}>;\n\nconst defaultProps = {\n  visible: true,\n  animate: true,\n} satisfies Partial<SkeletonProps>;\n\nconst varsResolver = createVarsResolver<SkeletonFactory>(\n  (_, { width, height, radius, circle }) => ({\n    root: {\n      '--skeleton-height': rem(height),\n      '--skeleton-width': circle ? rem(height) : rem(width),\n      '--skeleton-radius': circle ? '1000px' : radius === undefined ? undefined : getRadius(radius),\n    },\n  })\n);\n\nexport const Skeleton = factory<SkeletonFactory>((_props) => {\n  const props = useProps('Skeleton', defaultProps, _props);\n  const {\n    classNames,\n    className,\n    style,\n    styles,\n    unstyled,\n    vars,\n    width,\n    height,\n    circle,\n    visible,\n    radius,\n    animate,\n    mod,\n    attributes,\n    ...others\n  } = props;\n\n  const getStyles = useStyles<SkeletonFactory>({\n    name: 'Skeleton',\n    classes,\n    props,\n    className,\n    style,\n    classNames,\n    styles,\n    unstyled,\n    attributes,\n    vars,\n    varsResolver,\n  });\n\n  return <Box {...getStyles('root')} mod={[{ visible, animate }, mod]} {...others} />;\n});\n\nSkeleton.classes = classes;\nSkeleton.varsResolver = varsResolver;\nSkeleton.displayName = '@mantine/core/Skeleton';\n"],"mappings":";;;;;;;;;;;;AAgDA,MAAM,eAAe;CACnB,SAAS;CACT,SAAS;CACV;AAED,MAAM,eAAeA,6BAAAA,oBAClB,GAAG,EAAE,OAAO,QAAQ,QAAQ,cAAc,EACzC,MAAM;CACJ,qBAAqBC,YAAAA,IAAI,OAAO;CAChC,oBAAoB,SAASA,YAAAA,IAAI,OAAO,GAAGA,YAAAA,IAAI,MAAM;CACrD,qBAAqB,SAAS,WAAW,WAAW,KAAA,IAAY,KAAA,IAAYC,iBAAAA,UAAU,OAAO;CAC9F,EACF,EACF;AAED,MAAa,WAAWC,gBAAAA,SAA0B,WAAW;CAC3D,MAAM,QAAQC,kBAAAA,SAAS,YAAY,cAAc,OAAO;CACxD,MAAM,EACJ,YACA,WACA,OACA,QACA,UACA,MACA,OACA,QACA,QACA,SACA,QACA,SACA,KACA,YACA,GAAG,WACD;AAgBJ,QAAO,iBAAA,GAAA,kBAAA,KAACC,YAAAA,KAAD;EAAK,GAdMC,mBAAAA,UAA2B;GAC3C,MAAM;GACN,SAAA,wBAAA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACD,CAAC,CAEwB,OAAO;EAAE,KAAK,CAAC;GAAE;GAAS;GAAS,EAAE,IAAI;EAAE,GAAI;EAAU,CAAA;EACnF;AAEF,SAAS,UAAUC,wBAAAA;AACnB,SAAS,eAAe;AACxB,SAAS,cAAc"}