{"version":3,"file":"ModalRoot.cjs","names":["getDefaultZIndex","createVarsResolver","getRadius","getSize","rem","factory","useProps","useStyles","ModalProvider","ModalBase","ScrollArea","classes"],"sources":["../../../src/components/Modal/ModalRoot.tsx"],"sourcesContent":["import {\n  createVarsResolver,\n  factory,\n  Factory,\n  getDefaultZIndex,\n  getRadius,\n  getSize,\n  MantineRadius,\n  rem,\n  StylesApiProps,\n  useProps,\n  useStyles,\n} from '../../core';\nimport { ModalBase, ModalBaseProps, ModalBaseStylesNames } from '../ModalBase';\nimport { ScrollArea } from '../ScrollArea';\nimport { ModalProvider, ScrollAreaComponent } from './Modal.context';\nimport classes from './Modal.module.css';\n\nexport type ModalRootStylesNames = ModalBaseStylesNames;\nexport type ModalRootCssVariables = {\n  root: '--modal-radius' | '--modal-size' | '--modal-y-offset' | '--modal-x-offset';\n};\n\nexport interface ModalRootProps extends StylesApiProps<ModalRootFactory>, ModalBaseProps {\n  __staticSelector?: string;\n\n  /** Top/bottom modal offset @default 5dvh */\n  yOffset?: React.CSSProperties['marginTop'];\n\n  /** Left/right modal offset @default 5vw */\n  xOffset?: React.CSSProperties['marginLeft'];\n\n  /** Scroll area component @default 'div' */\n  scrollAreaComponent?: ScrollAreaComponent;\n\n  /** Key of `theme.radius` or any valid CSS value to set `border-radius` @default theme.defaultRadius */\n  radius?: MantineRadius;\n\n  /** If set, the modal is centered vertically @default false */\n  centered?: boolean;\n\n  /** If set, the modal takes the entire screen @default false */\n  fullScreen?: boolean;\n}\n\nexport type ModalRootFactory = Factory<{\n  props: ModalRootProps;\n  ref: HTMLDivElement;\n  stylesNames: ModalRootStylesNames;\n  vars: ModalRootCssVariables;\n  compound: true;\n}>;\n\nconst defaultProps = {\n  __staticSelector: 'Modal',\n  closeOnClickOutside: true,\n  withinPortal: true,\n  lockScroll: true,\n  trapFocus: true,\n  returnFocus: true,\n  closeOnEscape: true,\n  keepMounted: false,\n  zIndex: getDefaultZIndex('modal'),\n  transitionProps: { duration: 200, transition: 'fade-down' },\n  yOffset: '5dvh',\n} satisfies Partial<ModalRootProps>;\n\nconst varsResolver = createVarsResolver<ModalRootFactory>(\n  (_, { radius, size, yOffset, xOffset }) => ({\n    root: {\n      '--modal-radius': radius === undefined ? undefined : getRadius(radius),\n      '--modal-size': getSize(size, 'modal-size'),\n      '--modal-y-offset': rem(yOffset),\n      '--modal-x-offset': rem(xOffset),\n    },\n  })\n);\n\nexport const ModalRoot = factory<ModalRootFactory>((_props) => {\n  const props = useProps('ModalRoot', defaultProps, _props);\n  const {\n    classNames,\n    className,\n    style,\n    styles,\n    unstyled,\n    vars,\n    yOffset,\n    scrollAreaComponent,\n    radius,\n    fullScreen,\n    centered,\n    xOffset,\n    __staticSelector,\n    attributes,\n    ...others\n  } = props;\n\n  const getStyles = useStyles<ModalRootFactory>({\n    name: __staticSelector,\n    classes,\n    props,\n    className,\n    style,\n    classNames,\n    styles,\n    unstyled,\n    attributes,\n    vars,\n    varsResolver,\n  });\n\n  return (\n    <ModalProvider value={{ yOffset, scrollAreaComponent, getStyles, fullScreen }}>\n      <ModalBase\n        {...getStyles('root')}\n        data-full-screen={fullScreen || undefined}\n        data-centered={centered || undefined}\n        data-offset-scrollbars={scrollAreaComponent === ScrollArea.Autosize || undefined}\n        unstyled={unstyled}\n        {...others}\n      />\n    </ModalProvider>\n  );\n});\n\nModalRoot.classes = classes;\nModalRoot.varsResolver = varsResolver;\nModalRoot.displayName = '@mantine/core/ModalRoot';\n"],"mappings":";;;;;;;;;;;;;;;AAqDA,MAAM,eAAe;CACnB,kBAAkB;CAClB,qBAAqB;CACrB,cAAc;CACd,YAAY;CACZ,WAAW;CACX,aAAa;CACb,eAAe;CACf,aAAa;CACb,QAAQA,4BAAAA,iBAAiB,QAAQ;CACjC,iBAAiB;EAAE,UAAU;EAAK,YAAY;EAAa;CAC3D,SAAS;CACV;AAED,MAAM,eAAeC,6BAAAA,oBAClB,GAAG,EAAE,QAAQ,MAAM,SAAS,eAAe,EAC1C,MAAM;CACJ,kBAAkB,WAAW,KAAA,IAAY,KAAA,IAAYC,iBAAAA,UAAU,OAAO;CACtE,gBAAgBC,iBAAAA,QAAQ,MAAM,aAAa;CAC3C,oBAAoBC,YAAAA,IAAI,QAAQ;CAChC,oBAAoBA,YAAAA,IAAI,QAAQ;CACjC,EACF,EACF;AAED,MAAa,YAAYC,gBAAAA,SAA2B,WAAW;CAC7D,MAAM,QAAQC,kBAAAA,SAAS,aAAa,cAAc,OAAO;CACzD,MAAM,EACJ,YACA,WACA,OACA,QACA,UACA,MACA,SACA,qBACA,QACA,YACA,UACA,SACA,kBACA,YACA,GAAG,WACD;CAEJ,MAAM,YAAYC,mBAAAA,UAA4B;EAC5C,MAAM;EACN,SAAA,qBAAA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACD,CAAC;AAEF,QACE,iBAAA,GAAA,kBAAA,KAACC,sBAAAA,eAAD;EAAe,OAAO;GAAE;GAAS;GAAqB;GAAW;GAAY;YAC3E,iBAAA,GAAA,kBAAA,KAACC,kBAAAA,WAAD;GACE,GAAI,UAAU,OAAO;GACrB,oBAAkB,cAAc,KAAA;GAChC,iBAAe,YAAY,KAAA;GAC3B,0BAAwB,wBAAwBC,mBAAAA,WAAW,YAAY,KAAA;GAC7D;GACV,GAAI;GACJ,CAAA;EACY,CAAA;EAElB;AAEF,UAAU,UAAUC,qBAAAA;AACpB,UAAU,eAAe;AACzB,UAAU,cAAc"}