{"version":3,"file":"Skeleton.cjs","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 { SkeletonRootStyle } from './Skeleton.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,\n    StylesApiProps<SkeletonFactory>,\n    ElementProps<'div'> {\n  /** Determines whether Skeleton overlay should be displayed, `true` by default */\n  visible?: boolean;\n\n  /** Skeleton `height`, numbers are converted to rem, `auto` by default */\n  height?: React.CSSProperties['height'];\n\n  /** Skeleton `width`, numbers are converted to rem, `100%` by default, ignored when `circle` prop is set */\n  width?: React.CSSProperties['width'];\n\n  /** If set, Skeleton `width` and `border-radius` are equal to its `height`, `false` by default */\n  circle?: boolean;\n\n  /** Key of `theme.radius` or any valid CSS value to set border-radius. Numbers are converted to rem. `theme.defaultRadius` by default. */\n  radius?: React.CSSProperties['borderRadius'];\n\n  /** Determines whether Skeleton should be animated, `true` by default */\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: Partial<SkeletonProps> = {\n  visible: true,\n  animate: true,\n};\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, ref) => {\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    ...others\n  } = props;\n\n  const getStyles = useStyles<SkeletonFactory>({\n    name: 'Skeleton',\n    classes: {\n      root: SkeletonRootStyle,\n    },\n    props,\n    className,\n    style,\n    classNames,\n    styles,\n    unstyled,\n    vars,\n    varsResolver,\n  });\n\n  return <Box ref={ref} {...getStyles('root')} mod={[{ visible, animate }, mod]} {...others} />;\n});\n\nSkeleton.displayName = '@raikou/core/Skeleton';\n"],"names":["createVarsResolver","rem","getRadius","factory","useProps","useStyles","SkeletonRootStyle","Box"],"mappings":";;;;;;;;;;;;;;;;AAkDA,MAAM,YAAuC,GAAA;AAAA,EAC3C,OAAS,EAAA,IAAA;AAAA,EACT,OAAS,EAAA;AACX,CAAA;AAEA,MAAM,YAAe,GAAAA,qCAAA;AAAA,EACnB,CAAC,CAAG,EAAA,EAAE,OAAO,MAAQ,EAAA,MAAA,EAAQ,QAAc,MAAA;AAAA,IACzC,IAAM,EAAA;AAAA,MACJ,mBAAA,EAAqBC,QAAI,MAAM,CAAA;AAAA,MAC/B,oBAAoB,MAAS,GAAAA,OAAA,CAAI,MAAM,CAAA,GAAIA,QAAI,KAAK,CAAA;AAAA,MACpD,qBAAqB,MAAS,GAAA,QAAA,GAAW,WAAW,KAAY,CAAA,GAAA,KAAA,CAAA,GAAYC,kBAAU,MAAM;AAAA;AAC9F,GACF;AACF,CAAA;AAEO,MAAM,QAAW,GAAAC,eAAA,CAAyB,CAAC,MAAA,EAAQ,GAAQ,KAAA;AAChE,EAAA,MAAM,KAAQ,GAAAC,iBAAA,CAAS,UAAY,EAAA,YAAA,EAAc,MAAM,CAAA;AACvD,EAAM,MAAA;AAAA,IACJ,UAAA;AAAA,IACA,SAAA;AAAA,IACA,KAAA;AAAA,IACA,MAAA;AAAA,IACA,QAAA;AAAA,IACA,IAAA;AAAA,IACA,KAAA;AAAA,IACA,MAAA;AAAA,IACA,MAAA;AAAA,IACA,OAAA;AAAA,IACA,MAAA;AAAA,IACA,OAAA;AAAA,IACA,GAAA;AAAA,IACA,GAAG;AAAA,GACD,GAAA,KAAA;AAEJ,EAAA,MAAM,YAAYC,mBAA2B,CAAA;AAAA,IAC3C,IAAM,EAAA,UAAA;AAAA,IACN,OAAS,EAAA;AAAA,MACP,IAAM,EAAAC;AAAA,KACR;AAAA,IACA,KAAA;AAAA,IACA,SAAA;AAAA,IACA,KAAA;AAAA,IACA,UAAA;AAAA,IACA,MAAA;AAAA,IACA,QAAA;AAAA,IACA,IAAA;AAAA,IACA;AAAA,GACD,CAAA;AAED,EAAA,sCAAQC,OAAI,EAAA,EAAA,GAAA,EAAW,GAAG,SAAA,CAAU,MAAM,CAAG,EAAA,GAAA,EAAK,CAAC,EAAE,SAAS,OAAQ,EAAA,EAAG,GAAG,CAAA,EAAI,GAAG,MAAQ,EAAA,CAAA;AAC7F,CAAC;AAED,QAAA,CAAS,WAAc,GAAA,uBAAA;;;;"}