{"version":3,"file":"Skeleton.cjs","sources":["../src/Skeleton/Skeleton.tsx"],"sourcesContent":["import clsx from 'clsx';\nimport React, { createElement } from 'react';\n\nimport type {\n  ComponentProps,\n  SlotComponentPropsWithoutOverride,\n} from '../components.ts';\nimport { assocDefaultStyle } from '../utils/assign-default-style.ts';\nimport { mergeRootSlotPropsToComponentProps } from '../utils/merge-root-slot-props-to-component-prop.ts';\n\ninterface SkeletonSlotProps {\n  root?: SlotComponentPropsWithoutOverride<'div'>;\n}\n\nexport type SkeletonProps = ComponentProps<\n  SkeletonSlotProps,\n  {\n    slot?: { root?: keyof React.ReactHTML | React.FunctionComponent };\n  }\n>;\n\nexport function Skeleton({\n  'data-testid': testId,\n  disableDefaultClasses,\n  slot,\n  slotProps: givenSlotProps,\n  ...rest\n}: SkeletonProps) {\n  let slotProps = givenSlotProps;\n\n  if (!disableDefaultClasses) {\n    slotProps = assocDefaultStyle<SkeletonSlotProps>({\n      slotWithDefaultClasses: {\n        root: clsx('tw-animate-pulse tw-bg-gray-300'),\n      },\n    })(givenSlotProps);\n  }\n  const rootProps = mergeRootSlotPropsToComponentProps()(slotProps, rest);\n  return createElement(slot?.root ?? 'div', {\n    'data-testid': testId ?? 'busybox-skeleton',\n    ...slotProps?.root,\n    ...rootProps,\n  });\n}\n"],"names":["Skeleton","testId","disableDefaultClasses","slot","givenSlotProps","rest","slotProps","assocDefaultStyle","clsx","rootProps","mergeRootSlotPropsToComponentProps","createElement"],"mappings":"mWAqBO,SAASA,EAAS,CACvB,cAAeC,EACf,sBAAAC,EACA,KAAAC,EACA,UAAWC,EACX,GAAGC,CACL,EAAkB,CAChB,IAAIC,EAAYF,EAEXF,IACHI,EAAYC,EAAAA,kBAAqC,CAC/C,uBAAwB,CACtB,KAAMC,OAAK,iCAAiC,CAC9C,CAAA,CACD,EAAEJ,CAAc,GAEnB,MAAMK,EAAYC,EAAA,mCAAA,EAAqCJ,EAAWD,CAAI,EAC/D,OAAAM,iBAAcR,GAAA,YAAAA,EAAM,OAAQ,MAAO,CACxC,cAAeF,GAAU,mBACzB,GAAGK,GAAA,YAAAA,EAAW,KACd,GAAGG,CAAA,CACJ,CACH"}