{"version":3,"file":"LoadingOverlay.cjs","sources":["../../../src/components/LoadingOverlay/LoadingOverlay.tsx"],"sourcesContent":["import {\n  Box,\n  BoxProps,\n  createVarsResolver,\n  ElementProps,\n  factory,\n  Factory,\n  getDefaultZIndex,\n  StylesApiProps,\n  useProps,\n  useRaikouTheme,\n  useStyles,\n} from '../../core';\nimport { Loader, LoaderProps } from '../Loader';\nimport { Overlay, OverlayProps } from '../Overlay';\nimport { Transition, TransitionOverride } from '../Transition';\nimport {\n  LoadingOverlayLoaderStyle,\n  LoadingOverlayOverlayStyle,\n  LoadingOverlayRootStyle,\n} from './LoadingOverlay.css';\n\nexport type LoadingOverlayStylesNames = 'root' | 'loader' | 'overlay';\nexport type LoadingOverlayCssVariables = {\n  root: '--lo-z-index';\n};\n\nexport interface LoadingOverlayProps\n  extends BoxProps,\n    StylesApiProps<LoadingOverlayFactory>,\n    ElementProps<'div'> {\n  /** Props passed down to `Transition` component, `{ transition: 'fade', duration: 0 }` by default */\n  transitionProps?: TransitionOverride;\n\n  /** Props passed down to `Loader` component */\n  loaderProps?: LoaderProps;\n\n  /** Props passed down to `Overlay` component */\n  overlayProps?: OverlayProps;\n\n  /** Determines whether the overlay should be visible, `false` by default */\n  visible?: boolean;\n\n  /** Controls overlay `z-index`, `400` by default */\n  zIndex?: string | number;\n}\n\nexport type LoadingOverlayFactory = Factory<{\n  props: LoadingOverlayProps;\n  ref: HTMLDivElement;\n  stylesNames: LoadingOverlayStylesNames;\n  vars: LoadingOverlayCssVariables;\n}>;\n\nconst defaultProps: Partial<LoadingOverlayProps> = {\n  transitionProps: { transition: 'fade', duration: 0 },\n  overlayProps: { backgroundOpacity: 0.75 },\n  zIndex: getDefaultZIndex('overlay'),\n};\n\nconst varsResolver = createVarsResolver<LoadingOverlayFactory>((_, { zIndex }) => ({\n  root: {\n    '--lo-z-index': zIndex?.toString(),\n  },\n}));\n\nexport const LoadingOverlay = factory<LoadingOverlayFactory>((_props, ref) => {\n  const props = useProps('LoadingOverlay', defaultProps, _props);\n  const {\n    classNames,\n    className,\n    style,\n    styles,\n    unstyled,\n    vars,\n    transitionProps,\n    loaderProps,\n    overlayProps,\n    visible,\n    zIndex,\n    ...others\n  } = props;\n\n  const theme = useRaikouTheme();\n\n  const getStyles = useStyles<LoadingOverlayFactory>({\n    name: 'LoadingOverlay',\n    classes: {\n      root: LoadingOverlayRootStyle,\n      loader: LoadingOverlayLoaderStyle,\n      overlay: LoadingOverlayOverlayStyle,\n    },\n    props,\n    className,\n    style,\n    classNames,\n    styles,\n    unstyled,\n    vars,\n    varsResolver,\n  });\n\n  const _overlayProps = { ...defaultProps.overlayProps, ...overlayProps };\n\n  return (\n    <Transition transition=\"fade\" {...transitionProps} mounted={!!visible}>\n      {(transitionStyles) => (\n        <Box {...getStyles('root', { style: transitionStyles })} ref={ref} {...others}>\n          <Loader {...getStyles('loader')} unstyled={unstyled} {...loaderProps} />\n\n          <Overlay\n            {..._overlayProps}\n            {...getStyles('overlay')}\n            darkHidden\n            unstyled={unstyled}\n            color={overlayProps?.color || theme.white}\n          />\n\n          <Overlay\n            {..._overlayProps}\n            {...getStyles('overlay')}\n            lightHidden\n            unstyled={unstyled}\n            color={overlayProps?.color || theme.colors.dark[5]}\n          />\n        </Box>\n      )}\n    </Transition>\n  );\n});\n\nLoadingOverlay.displayName = '@raikou/core/LoadingOverlay';\n"],"names":["getDefaultZIndex","createVarsResolver","factory","useProps","useRaikouTheme","useStyles","LoadingOverlayRootStyle","LoadingOverlayLoaderStyle","LoadingOverlayOverlayStyle","jsx","Transition","Box","Loader","Overlay"],"mappings":";;;;;;;;;;;;;;;;;;;AAsDA,MAAM,YAA6C,GAAA;AAAA,EACjD,eAAiB,EAAA,EAAE,UAAY,EAAA,MAAA,EAAQ,UAAU,CAAE,EAAA;AAAA,EACnD,YAAA,EAAc,EAAE,iBAAA,EAAmB,IAAK,EAAA;AAAA,EACxC,MAAA,EAAQA,kCAAiB,SAAS;AACpC,CAAA;AAEA,MAAM,eAAeC,qCAA0C,CAAA,CAAC,CAAG,EAAA,EAAE,QAAc,MAAA;AAAA,EACjF,IAAM,EAAA;AAAA,IACJ,cAAA,EAAgB,QAAQ,QAAS;AAAA;AAErC,CAAE,CAAA,CAAA;AAEK,MAAM,cAAiB,GAAAC,eAAA,CAA+B,CAAC,MAAA,EAAQ,GAAQ,KAAA;AAC5E,EAAA,MAAM,KAAQ,GAAAC,iBAAA,CAAS,gBAAkB,EAAA,YAAA,EAAc,MAAM,CAAA;AAC7D,EAAM,MAAA;AAAA,IACJ,UAAA;AAAA,IACA,SAAA;AAAA,IACA,KAAA;AAAA,IACA,MAAA;AAAA,IACA,QAAA;AAAA,IACA,IAAA;AAAA,IACA,eAAA;AAAA,IACA,WAAA;AAAA,IACA,YAAA;AAAA,IACA,OAAA;AAAA,IACA,MAAA;AAAA,IACA,GAAG;AAAA,GACD,GAAA,KAAA;AAEJ,EAAA,MAAM,QAAQC,6BAAe,EAAA;AAE7B,EAAA,MAAM,YAAYC,mBAAiC,CAAA;AAAA,IACjD,IAAM,EAAA,gBAAA;AAAA,IACN,OAAS,EAAA;AAAA,MACP,IAAM,EAAAC,0CAAA;AAAA,MACN,MAAQ,EAAAC,4CAAA;AAAA,MACR,OAAS,EAAAC;AAAA,KACX;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,MAAM,gBAAgB,EAAE,GAAG,YAAa,CAAA,YAAA,EAAc,GAAG,YAAa,EAAA;AAEtE,EACE,uBAAAC,cAAA,CAACC,qBAAW,EAAA,EAAA,UAAA,EAAW,MAAQ,EAAA,GAAG,iBAAiB,OAAS,EAAA,CAAC,CAAC,OAAA,EAC3D,QAAC,EAAA,CAAA,gBAAA,qCACCC,OAAK,EAAA,EAAA,GAAG,SAAU,CAAA,MAAA,EAAQ,EAAE,KAAA,EAAO,kBAAkB,CAAA,EAAG,GAAW,EAAA,GAAG,MACrE,EAAA,QAAA,EAAA;AAAA,oBAAAF,cAAA,CAACG,iBAAQ,GAAG,SAAA,CAAU,QAAQ,CAAG,EAAA,QAAA,EAAqB,GAAG,WAAa,EAAA,CAAA;AAAA,oBAEtEH,cAAA;AAAA,MAACI,eAAA;AAAA,MAAA;AAAA,QACE,GAAG,aAAA;AAAA,QACH,GAAG,UAAU,SAAS,CAAA;AAAA,QACvB,UAAU,EAAA,IAAA;AAAA,QACV,QAAA;AAAA,QACA,KAAA,EAAO,YAAc,EAAA,KAAA,IAAS,KAAM,CAAA;AAAA;AAAA,KACtC;AAAA,oBAEAJ,cAAA;AAAA,MAACI,eAAA;AAAA,MAAA;AAAA,QACE,GAAG,aAAA;AAAA,QACH,GAAG,UAAU,SAAS,CAAA;AAAA,QACvB,WAAW,EAAA,IAAA;AAAA,QACX,QAAA;AAAA,QACA,OAAO,YAAc,EAAA,KAAA,IAAS,KAAM,CAAA,MAAA,CAAO,KAAK,CAAC;AAAA;AAAA;AACnD,GAAA,EACF,CAEJ,EAAA,CAAA;AAEJ,CAAC;AAED,cAAA,CAAe,WAAc,GAAA,6BAAA;;;;"}