{"version":3,"file":"Vaul.cjs","sources":["../../src/lib/Vaul.tsx"],"sourcesContent":["import type { CloseButtonProps, ExtendComponent, Factory, MantineThemeComponent, StylesApiProps } from '@mantine/core'\nimport { CloseButton, factory, useProps } from '@mantine/core'\nimport type { ReactNode } from 'react'\nimport type { VaulClasses } from './types'\nimport classes from './vaul.module.css'\nimport type { VaulBodyProps } from './VaulBody'\nimport { VaulBody } from './VaulBody'\nimport { VaulCloseTarget } from './VaulCloseTarget'\nimport type { VaulContentProps } from './VaulContent'\nimport { VaulContent } from './VaulContent'\nimport { VaulDescription } from './VaulDescription'\nimport type { VaulFooterProps } from './VaulFooter'\nimport { VaulFooter } from './VaulFooter'\nimport { VaulHandler, type VaulHandlerProps } from './VaulHandler'\nimport type { VaulHeaderProps } from './VaulHeader'\nimport { VaulHeader } from './VaulHeader'\nimport type { VaulOverlayProps } from './VaulOverlay'\nimport { VaulOverlay } from './VaulOverlay'\nimport { VaulPortal } from './VaulPortal'\nimport type { BaseVaulRootProps, VaulCssVariables, VaulStylesNames } from './VaulRoot'\nimport { VaulRoot } from './VaulRoot'\nimport { VaulTarget } from './VaulTarget'\nimport type { VaulTitleProps } from './VaulTitle'\nimport { VaulTitle } from './VaulTitle'\n\nexport interface VaulProps extends BaseVaulRootProps, StylesApiProps<VaulFactory> {\n  __staticSelector?: string\n  target?: ReactNode\n  children: ReactNode\n  headerProps?: VaulHeaderProps\n  contentProps?: VaulContentProps\n  title?: ReactNode\n  titleProps?: VaulTitleProps\n  footer?: ReactNode\n  footerProps?: VaulFooterProps\n  withOverlay?: boolean\n  overlayProps?: VaulOverlayProps\n  withHandler?: boolean\n  handlerProps?: VaulHandlerProps\n  bodyProps?: VaulBodyProps\n  withCloseButton?: boolean\n  closeButtonProps?: CloseButtonProps\n}\n\nexport type VaulFactory = Factory<{\n  props: VaulProps\n  ref: HTMLDivElement\n  stylesNames: VaulStylesNames\n  vars: VaulCssVariables\n  staticComponents: {\n    Root: typeof VaulRoot\n    Portal: typeof VaulPortal\n    Overlay: typeof VaulOverlay\n    Content: typeof VaulContent\n    Body: typeof VaulBody\n    Header: typeof VaulHeader\n    Title: typeof VaulTitle\n    Description: typeof VaulDescription\n    Footer: typeof VaulFooter\n    Handler: typeof VaulHandler\n    Target: typeof VaulTarget\n    CloseTarget: typeof VaulCloseTarget\n  }\n}>\n\nconst defaultProps: Partial<VaulProps> = {\n  withOverlay: true,\n  withHandler: true,\n  withCloseButton: true\n}\n\nexport const Vaul = factory<VaulFactory>((_props, ref) => {\n  const {\n    children,\n    headerProps,\n    title,\n    titleProps,\n    footer,\n    footerProps,\n    withOverlay,\n    overlayProps,\n    withHandler,\n    handlerProps,\n    contentProps,\n    bodyProps,\n    target,\n    withCloseButton,\n    closeButtonProps,\n    ...others\n  } = useProps('Vaul', defaultProps, _props)\n\n  return (\n    <VaulRoot.Root {...others}>\n      {target}\n      {withOverlay && <VaulRoot.Overlay {...overlayProps} />}\n      <VaulRoot.Portal>\n        <VaulRoot.Content ref={ref} {...contentProps}>\n          <Vaul.Header {...headerProps}>\n            {withHandler && <Vaul.Handler {...handlerProps} />}\n            {title && <Vaul.Title {...titleProps}>{title}</Vaul.Title>}\n            {withCloseButton && (\n              <VaulCloseTarget\n                component={CloseButton}\n                pos='absolute'\n                top={16}\n                right={16}\n                {...(closeButtonProps as any)}\n              />\n            )}\n          </Vaul.Header>\n          <Vaul.Body {...bodyProps}>{children}</Vaul.Body>\n          {footer && <Vaul.Footer {...footerProps}>{footer}</Vaul.Footer>}\n        </VaulRoot.Content>\n      </VaulRoot.Portal>\n    </VaulRoot.Root>\n  )\n})\n\nconst extendVaul = (c: ExtendComponent<VaulFactory>): MantineThemeComponent => c\n\nVaul.displayName = 'mantine-vaul/Vaul'\nVaul.classes = classes as VaulClasses\nVaul.extend = extendVaul\nVaul.Root = VaulRoot\nVaul.Portal = VaulPortal\nVaul.Content = VaulContent\nVaul.Overlay = VaulOverlay\nVaul.Handler = VaulHandler\nVaul.Header = VaulHeader\nVaul.Title = VaulTitle\nVaul.Description = VaulDescription\nVaul.Body = VaulBody\nVaul.Footer = VaulFooter\nVaul.Target = VaulTarget\nVaul.CloseTarget = VaulCloseTarget\n"],"names":["defaultProps","Vaul","factory","_props","ref","children","headerProps","title","titleProps","footer","footerProps","withOverlay","overlayProps","withHandler","handlerProps","contentProps","bodyProps","target","withCloseButton","closeButtonProps","others","useProps","jsxs","VaulRoot","jsx","VaulCloseTarget","CloseButton","extendVaul","c","classes","VaulPortal","VaulContent","VaulOverlay","VaulHandler","VaulHeader","VaulTitle","VaulDescription","VaulBody","VaulFooter","VaulTarget"],"mappings":"miBAiEMA,EAAmC,CACvC,YAAa,GACb,YAAa,GACb,gBAAiB,EACnB,EAEaC,EAAOC,EAAA,QAAqB,CAACC,EAAQC,IAAQ,CAClD,KAAA,CACJ,SAAAC,EACA,YAAAC,EACA,MAAAC,EACA,WAAAC,EACA,OAAAC,EACA,YAAAC,EACA,YAAAC,EACA,aAAAC,EACA,YAAAC,EACA,aAAAC,EACA,aAAAC,EACA,UAAAC,EACA,OAAAC,EACA,gBAAAC,EACA,iBAAAC,EACA,GAAGC,CACD,EAAAC,WAAS,OAAQrB,EAAcG,CAAM,EAEzC,OACGmB,EAAAA,KAAAC,EAAAA,SAAS,KAAT,CAAe,GAAGH,EAChB,SAAA,CAAAH,EACAN,GAAgBa,EAAA,IAAAD,EAAA,SAAS,QAAT,CAAkB,GAAGX,CAAc,CAAA,EACpDY,EAAAA,IAACD,EAAS,SAAA,OAAT,CACC,SAAAD,EAAA,KAACC,WAAS,QAAT,CAAiB,IAAAnB,EAAW,GAAGW,EAC9B,SAAA,CAAAO,EAAAA,KAACrB,EAAK,OAAL,CAAa,GAAGK,EACd,SAAA,CAAAO,GAAgBW,EAAA,IAAAvB,EAAK,QAAL,CAAc,GAAGa,CAAc,CAAA,EAC/CP,GAAUiB,EAAAA,IAAAvB,EAAK,MAAL,CAAY,GAAGO,EAAa,SAAMD,EAAA,EAC5CW,GACCM,EAAA,IAACC,EAAA,gBAAA,CACC,UAAWC,EAAA,YACX,IAAI,WACJ,IAAK,GACL,MAAO,GACN,GAAIP,CAAA,CACP,CAAA,EAEJ,QACClB,EAAK,KAAL,CAAW,GAAGe,EAAY,SAAAX,CAAS,CAAA,EACnCI,GAAWe,EAAAA,IAAAvB,EAAK,OAAL,CAAa,GAAGS,EAAc,SAAOD,EAAA,CAAA,CAAA,CACnD,CACF,CAAA,CACF,CAAA,CAAA,CAEJ,CAAC,EAEKkB,EAAcC,GAA2DA,EAE/E3B,EAAK,YAAc,oBACnBA,EAAK,QAAU4B,EAAAA,QACf5B,EAAK,OAAS0B,EACd1B,EAAK,KAAOsB,EAAAA,SACZtB,EAAK,OAAS6B,EAAAA,WACd7B,EAAK,QAAU8B,EAAAA,YACf9B,EAAK,QAAU+B,EAAAA,YACf/B,EAAK,QAAUgC,EAAAA,YACfhC,EAAK,OAASiC,EAAAA,WACdjC,EAAK,MAAQkC,EAAAA,UACblC,EAAK,YAAcmC,EAAAA,gBACnBnC,EAAK,KAAOoC,EAAAA,SACZpC,EAAK,OAASqC,EAAAA,WACdrC,EAAK,OAASsC,EAAAA,WACdtC,EAAK,YAAcwB,EAAA"}