@mantine/core
Version:
React components library focused on usability, accessibility and developer experience
85 lines (81 loc) • 2.71 kB
JavaScript
'use client';
;
var React = require('react');
var reactRemoveScroll = require('react-remove-scroll');
var getDefaultZIndex = require('../../core/utils/get-default-z-index/get-default-z-index.cjs');
var getSize = require('../../core/utils/get-size/get-size.cjs');
require('clsx');
require('@mantine/hooks');
require('../../core/MantineProvider/Mantine.context.cjs');
require('../../core/MantineProvider/default-theme.cjs');
require('../../core/MantineProvider/MantineProvider.cjs');
require('../../core/MantineProvider/MantineThemeProvider/MantineThemeProvider.cjs');
var Box = require('../../core/Box/Box.cjs');
require('../../core/DirectionProvider/DirectionProvider.cjs');
require('../Portal/Portal.cjs');
var OptionalPortal = require('../Portal/OptionalPortal.cjs');
var ModalBase_context = require('./ModalBase.context.cjs');
var useModal = require('./use-modal.cjs');
const ModalBase = React.forwardRef(
({
keepMounted,
opened,
onClose,
id,
transitionProps,
trapFocus,
closeOnEscape,
returnFocus,
closeOnClickOutside,
withinPortal,
portalProps,
lockScroll,
children,
zIndex,
shadow,
padding,
__vars,
unstyled,
removeScrollProps,
...others
}, ref) => {
const { _id, titleMounted, bodyMounted, shouldLockScroll, setTitleMounted, setBodyMounted } = useModal.useModal({ id, transitionProps, opened, trapFocus, closeOnEscape, onClose, returnFocus });
return /* @__PURE__ */ React.createElement(OptionalPortal.OptionalPortal, { ...portalProps, withinPortal }, /* @__PURE__ */ React.createElement(
ModalBase_context.ModalBaseProvider,
{
value: {
opened,
onClose,
closeOnClickOutside,
transitionProps: { ...transitionProps, keepMounted },
getTitleId: () => `${_id}-title`,
getBodyId: () => `${_id}-body`,
titleMounted,
bodyMounted,
setTitleMounted,
setBodyMounted,
trapFocus,
closeOnEscape,
zIndex,
unstyled
}
},
/* @__PURE__ */ React.createElement(reactRemoveScroll.RemoveScroll, { enabled: shouldLockScroll && lockScroll, ...removeScrollProps }, /* @__PURE__ */ React.createElement(
Box.Box,
{
ref,
...others,
__vars: {
...__vars,
"--mb-z-index": (zIndex || getDefaultZIndex.getDefaultZIndex("modal")).toString(),
"--mb-shadow": getSize.getShadow(shadow),
"--mb-padding": getSize.getSpacing(padding)
}
},
children
))
));
}
);
exports.ModalBase = ModalBase;
//# sourceMappingURL=ModalBase.cjs.map