{"version":3,"file":"VaulOverlay.cjs","sources":["../../src/lib/VaulOverlay.tsx"],"sourcesContent":["import type {\n  CompoundStylesApiProps,\n  ElementProps,\n  ExtendComponent,\n  Factory,\n  MantineThemeComponent,\n  OverlayProps,\n  TransitionOverride\n} from '@mantine/core'\nimport { Overlay, Portal, Transition, factory, useProps } from '@mantine/core'\nimport { type PointerEvent } from 'react'\nimport { useVaulContext } from './context'\nimport type { VaulClasses } from './types'\nimport classes from './vaul.module.css'\n\nexport type VaulOverlayStylesNames = 'overlay'\n\nexport interface VaulOverlayProps\n  extends Omit<OverlayProps, 'styles' | 'classNames' | 'variant' | 'vars' | 'fixed'>,\n    ElementProps<'div', 'color'>,\n    CompoundStylesApiProps<VaulOverlayFactory> {\n  transitionProps?: TransitionOverride\n}\n\nexport type VaulOverlayFactory = Factory<{\n  props: VaulOverlayProps\n  ref: HTMLDivElement\n  stylesNames: VaulOverlayStylesNames\n  compound: true\n}>\n\nconst defaultProps: VaulOverlayProps = {}\n\nexport const VaulOverlay = factory<VaulOverlayFactory>((_props, ref) => {\n  const {\n    className,\n    zIndex,\n    onPointerDown: onPointerDownProp,\n    vars,\n    classNames,\n    styles,\n    style,\n    mod,\n    transitionProps,\n    unstyled: unstyledProp,\n    ...rest\n  } = useProps('VaulContent', defaultProps, _props)\n\n  const { closeOnClickOutside, getStyles, variant, unstyled, setOpened, showOverlay } = useVaulContext()\n\n  const onPointerDown = (event: PointerEvent<HTMLDivElement>) => {\n    if (closeOnClickOutside) {\n      setOpened(false)\n    }\n    onPointerDownProp?.(event)\n  }\n\n  return (\n    <Portal>\n      <Transition transition='fade' duration={0.5 * 1000} {...transitionProps} mounted={showOverlay}>\n        {(transitionStyles) => (\n          <Overlay\n            unstyled={unstyledProp || unstyled}\n            fixed\n            zIndex={zIndex}\n            ref={ref}\n            onPointerDown={onPointerDown}\n            mod={[{ part: 'overlay' }, mod]}\n            {...getStyles('overlay', { classNames, style: [style, transitionStyles], styles, className, variant })}\n            {...rest}\n          />\n        )}\n      </Transition>\n    </Portal>\n  )\n})\n\nconst extendVaulOverlay = (c: ExtendComponent<VaulOverlayFactory>): MantineThemeComponent => c\n\nVaulOverlay.displayName = 'mantine-vaul/VaulOverlay'\nVaulOverlay.classes = classes as VaulClasses\nVaulOverlay.extend = extendVaulOverlay\n"],"names":["defaultProps","VaulOverlay","factory","_props","ref","className","zIndex","onPointerDownProp","vars","classNames","styles","style","mod","transitionProps","unstyledProp","rest","useProps","closeOnClickOutside","getStyles","variant","unstyled","setOpened","showOverlay","useVaulContext","onPointerDown","event","jsx","Portal","Transition","transitionStyles","Overlay","extendVaulOverlay","c","classes"],"mappings":"8MA+BMA,EAAiC,CAAA,EAE1BC,EAAcC,EAAA,QAA4B,CAACC,EAAQC,IAAQ,CAChE,KAAA,CACJ,UAAAC,EACA,OAAAC,EACA,cAAeC,EACf,KAAAC,EACA,WAAAC,EACA,OAAAC,EACA,MAAAC,EACA,IAAAC,EACA,gBAAAC,EACA,SAAUC,EACV,GAAGC,CACD,EAAAC,WAAS,cAAehB,EAAcG,CAAM,EAE1C,CAAE,oBAAAc,EAAqB,UAAAC,EAAW,QAAAC,EAAS,SAAAC,EAAU,UAAAC,EAAW,YAAAC,GAAgBC,EAAAA,iBAEhFC,EAAiBC,GAAwC,CACzDR,GACFI,EAAU,EAAK,EAEjBd,GAAA,MAAAA,EAAoBkB,EAAK,EAG3B,OACGC,EAAAA,IAAAC,EAAAA,OAAA,CACC,SAACD,EAAAA,IAAAE,EAAA,WAAA,CAAW,WAAW,OAAO,SAAU,GAAM,IAAO,GAAGf,EAAiB,QAASS,EAC/E,SAACO,GACAH,EAAA,IAACI,EAAA,QAAA,CACC,SAAUhB,GAAgBM,EAC1B,MAAK,GACL,OAAAd,EACA,IAAAF,EACA,cAAAoB,EACA,IAAK,CAAC,CAAE,KAAM,SAAA,EAAaZ,CAAG,EAC7B,GAAGM,EAAU,UAAW,CAAE,WAAAT,EAAY,MAAO,CAACE,EAAOkB,CAAgB,EAAG,OAAAnB,EAAQ,UAAAL,EAAW,QAAAc,EAAS,EACpG,GAAGJ,CAAA,CAAA,CAGV,CAAA,CACF,CAAA,CAEJ,CAAC,EAEKgB,EAAqBC,GAAkEA,EAE7F/B,EAAY,YAAc,2BAC1BA,EAAY,QAAUgC,EAAAA,QACtBhC,EAAY,OAAS8B"}