{"version":3,"file":"Overlay.cjs","sources":["../../../src/components/Overlay/Overlay.tsx"],"sourcesContent":["import {\n  Box,\n  BoxProps,\n  createVarsResolver,\n  getDefaultZIndex,\n  getRadius,\n  polymorphicFactory,\n  PolymorphicFactory,\n  RaikouRadius,\n  rem,\n  rgba,\n  StylesApiProps,\n  useProps,\n  useStyles,\n} from '../../core';\nimport { OverlayRootStyle } from './Overlay.css';\n\nexport type OverlayStylesNames = 'root';\nexport type OverlayCssVariables = {\n  root: '--overlay-bg' | '--overlay-filter' | '--overlay-radius' | '--overlay-z-index';\n};\n\nexport interface OverlayProps extends BoxProps, StylesApiProps<OverlayFactory> {\n  /** Controls overlay `background-color` opacity 0–1, disregarded when `gradient` prop is set, `0.6` by default */\n  backgroundOpacity?: number;\n\n  /** Overlay `background-color`, `#000` by default */\n  color?: React.CSSProperties['backgroundColor'];\n\n  /** Overlay background blur, `0` by default */\n  blur?: number | string;\n\n  /** Changes overlay to gradient. If set, `color` prop is ignored */\n  gradient?: string;\n\n  /** Overlay z-index, `200` by default */\n  zIndex?: string | number;\n\n  /** Key of `theme.radius` or any valid CSS value to set border-radius, `0` by default */\n  radius?: RaikouRadius;\n\n  /** Content inside overlay */\n  children?: React.ReactNode;\n\n  /** Determines whether content inside overlay should be vertically and horizontally centered, `false` by default */\n  center?: boolean;\n\n  /** Determines whether overlay should have fixed position instead of absolute, `false` by default */\n  fixed?: boolean;\n}\n\nexport type OverlayFactory = PolymorphicFactory<{\n  props: OverlayProps;\n  defaultRef: HTMLDivElement;\n  defaultComponent: 'div';\n  stylesNames: OverlayStylesNames;\n  vars: OverlayCssVariables;\n}>;\n\nconst defaultProps: Partial<OverlayProps> = {\n  zIndex: getDefaultZIndex('modal'),\n};\n\nconst varsResolver = createVarsResolver<OverlayFactory>(\n  (_, { gradient, color, backgroundOpacity, blur, radius, zIndex }) => ({\n    root: {\n      '--overlay-bg':\n        gradient ||\n        ((color !== undefined || backgroundOpacity !== undefined) &&\n          rgba(color || '#000', backgroundOpacity ?? 0.6)) ||\n        undefined,\n      '--overlay-filter': blur ? `blur(${rem(blur)})` : undefined,\n      '--overlay-radius': radius === undefined ? undefined : getRadius(radius),\n      '--overlay-z-index': zIndex?.toString(),\n    },\n  })\n);\n\nexport const Overlay = polymorphicFactory<OverlayFactory>((_props, ref) => {\n  const props = useProps('Overlay', defaultProps, _props);\n  const {\n    classNames,\n    className,\n    style,\n    styles,\n    unstyled,\n    vars,\n    fixed,\n    center,\n    children,\n    radius,\n    zIndex,\n    gradient,\n    blur,\n    color,\n    backgroundOpacity,\n    mod,\n    ...others\n  } = props;\n\n  const getStyles = useStyles<OverlayFactory>({\n    name: 'Overlay',\n    props,\n    classes: {\n      root: OverlayRootStyle,\n    },\n    className,\n    style,\n    classNames,\n    styles,\n    unstyled,\n    vars,\n    varsResolver,\n  });\n\n  return (\n    <Box ref={ref} {...getStyles('root')} mod={[{ center, fixed }, mod]} {...others}>\n      {children}\n    </Box>\n  );\n});\n\nOverlay.displayName = '@raikou/core/Overlay';\n"],"names":["getDefaultZIndex","createVarsResolver","rgba","rem","getRadius","polymorphicFactory","useProps","useStyles","OverlayRootStyle","Box"],"mappings":";;;;;;;;;;;;;;;;;;AA2DA,MAAM,YAAsC,GAAA;AAAA,EAC1C,MAAA,EAAQA,kCAAiB,OAAO;AAClC,CAAA;AAEA,MAAM,YAAe,GAAAC,qCAAA;AAAA,EACnB,CAAC,GAAG,EAAE,QAAA,EAAU,OAAO,iBAAmB,EAAA,IAAA,EAAM,MAAQ,EAAA,MAAA,EAAc,MAAA;AAAA,IACpE,IAAM,EAAA;AAAA,MACJ,cAAA,EACE,QACE,IAAA,CAAA,KAAA,KAAU,KAAa,CAAA,IAAA,iBAAA,KAAsB,KAC7C,CAAA,KAAAC,SAAA,CAAK,KAAS,IAAA,MAAA,EAAQ,iBAAqB,IAAA,GAAG,CAChD,IAAA,KAAA,CAAA;AAAA,MACF,oBAAoB,IAAO,GAAA,CAAA,KAAA,EAAQC,OAAI,CAAA,IAAI,CAAC,CAAM,CAAA,CAAA,GAAA,KAAA,CAAA;AAAA,MAClD,kBAAoB,EAAA,MAAA,KAAW,KAAY,CAAA,GAAA,KAAA,CAAA,GAAYC,kBAAU,MAAM,CAAA;AAAA,MACvE,mBAAA,EAAqB,QAAQ,QAAS;AAAA;AACxC,GACF;AACF,CAAA;AAEO,MAAM,OAAU,GAAAC,qCAAA,CAAmC,CAAC,MAAA,EAAQ,GAAQ,KAAA;AACzE,EAAA,MAAM,KAAQ,GAAAC,iBAAA,CAAS,SAAW,EAAA,YAAA,EAAc,MAAM,CAAA;AACtD,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,QAAA;AAAA,IACA,MAAA;AAAA,IACA,MAAA;AAAA,IACA,QAAA;AAAA,IACA,IAAA;AAAA,IACA,KAAA;AAAA,IACA,iBAAA;AAAA,IACA,GAAA;AAAA,IACA,GAAG;AAAA,GACD,GAAA,KAAA;AAEJ,EAAA,MAAM,YAAYC,mBAA0B,CAAA;AAAA,IAC1C,IAAM,EAAA,SAAA;AAAA,IACN,KAAA;AAAA,IACA,OAAS,EAAA;AAAA,MACP,IAAM,EAAAC;AAAA,KACR;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,sCACGC,OAAI,EAAA,EAAA,GAAA,EAAW,GAAG,SAAA,CAAU,MAAM,CAAG,EAAA,GAAA,EAAK,CAAC,EAAE,QAAQ,KAAM,EAAA,EAAG,GAAG,CAAI,EAAA,GAAG,QACtE,QACH,EAAA,CAAA;AAEJ,CAAC;AAED,OAAA,CAAQ,WAAc,GAAA,sBAAA;;;;"}