@mantine/core
Version:
React components library focused on usability, accessibility and developer experience
102 lines (99 loc) • 3.31 kB
JavaScript
'use client';
import { jsx } from 'react/jsx-runtime';
import { rem } from '../../core/utils/units-converters/rem.mjs';
import 'react';
import { getDefaultZIndex } from '../../core/utils/get-default-z-index/get-default-z-index.mjs';
import { getRadius, getSize } from '../../core/utils/get-size/get-size.mjs';
import '@mantine/hooks';
import { createVarsResolver } from '../../core/styles-api/create-vars-resolver/create-vars-resolver.mjs';
import 'clsx';
import '../../core/MantineProvider/Mantine.context.mjs';
import '../../core/MantineProvider/default-theme.mjs';
import '../../core/MantineProvider/MantineProvider.mjs';
import '../../core/MantineProvider/MantineThemeProvider/MantineThemeProvider.mjs';
import { useProps } from '../../core/MantineProvider/use-props/use-props.mjs';
import '../../core/MantineProvider/MantineCssVariables/MantineCssVariables.mjs';
import { useStyles } from '../../core/styles-api/use-styles/use-styles.mjs';
import '../../core/Box/Box.mjs';
import { factory } from '../../core/factory/factory.mjs';
import '../../core/DirectionProvider/DirectionProvider.mjs';
import { ModalBase } from '../ModalBase/ModalBase.mjs';
import '../ModalBase/ModalBaseBody.mjs';
import '../ModalBase/ModalBaseCloseButton.mjs';
import '../ModalBase/ModalBaseContent.mjs';
import '../ModalBase/ModalBaseHeader.mjs';
import '../ModalBase/ModalBaseOverlay.mjs';
import '../ModalBase/ModalBaseTitle.mjs';
import { ScrollArea } from '../ScrollArea/ScrollArea.mjs';
import { ModalProvider } from './Modal.context.mjs';
import classes from './Modal.module.css.mjs';
const defaultProps = {
__staticSelector: "Modal",
closeOnClickOutside: true,
withinPortal: true,
lockScroll: true,
trapFocus: true,
returnFocus: true,
closeOnEscape: true,
keepMounted: false,
zIndex: getDefaultZIndex("modal"),
transitionProps: { duration: 200, transition: "fade-down" },
yOffset: "5dvh"
};
const varsResolver = createVarsResolver(
(_, { radius, size, yOffset, xOffset }) => ({
root: {
"--modal-radius": radius === void 0 ? void 0 : getRadius(radius),
"--modal-size": getSize(size, "modal-size"),
"--modal-y-offset": rem(yOffset),
"--modal-x-offset": rem(xOffset)
}
})
);
const ModalRoot = factory((_props, ref) => {
const props = useProps("ModalRoot", defaultProps, _props);
const {
classNames,
className,
style,
styles,
unstyled,
vars,
yOffset,
scrollAreaComponent,
radius,
fullScreen,
centered,
xOffset,
__staticSelector,
...others
} = props;
const getStyles = useStyles({
name: __staticSelector,
classes,
props,
className,
style,
classNames,
styles,
unstyled,
vars,
varsResolver
});
return /* @__PURE__ */ jsx(ModalProvider, { value: { yOffset, scrollAreaComponent, getStyles, fullScreen }, children: /* @__PURE__ */ jsx(
ModalBase,
{
ref,
...getStyles("root"),
"data-full-screen": fullScreen || void 0,
"data-centered": centered || void 0,
"data-offset-scrollbars": scrollAreaComponent === ScrollArea.Autosize || void 0,
unstyled,
...others
}
) });
});
ModalRoot.classes = classes;
ModalRoot.displayName = "@mantine/core/ModalRoot";
export { ModalRoot };
//# sourceMappingURL=ModalRoot.mjs.map