@nex-ui/react
Version:
🎉 A beautiful, modern, and reliable React component library.
61 lines (57 loc) • 2.13 kB
JavaScript
"use client";
'use strict';
var jsxRuntime = require('react/jsx-runtime');
var DialogContext = require('./DialogContext.cjs');
var useDefaultProps = require('../utils/useDefaultProps.cjs');
var Modal = require('../modal/Modal.cjs');
var ModalContext = require('../modal/ModalContext.cjs');
const Provider = (props)=>{
const { children, fullScreen = false, placement = 'top', hideCloseButton = false, maxWidth = 'md', scroll = 'outside', hideBackdrop = false } = props;
const { open, preventScroll, keepMounted, defaultOpen, closeOnEscape, closeOnInteractOutside, setOpen } = ModalContext.useModal();
const ownerState = {
...props,
closeOnEscape,
hideBackdrop,
fullScreen,
preventScroll,
scroll,
maxWidth,
open,
setOpen,
placement,
keepMounted,
defaultOpen,
hideCloseButton,
closeOnInteractBackdrop: closeOnInteractOutside
};
return /*#__PURE__*/ jsxRuntime.jsx(DialogContext.DialogProvider, {
value: ownerState,
children: children
});
};
const Dialog = (inProps)=>{
const props = useDefaultProps.useDefaultProps({
name: 'Dialog',
props: inProps
});
const { open, children, restoreFocus, onOpenChange, defaultOpen, keepMounted, closeOnEscape, closeOnInteractBackdrop, preventScroll, 'aria-describedby': describedby, 'aria-labelledby': labelledby, ...remainingProps } = props;
return /*#__PURE__*/ jsxRuntime.jsx(Modal.Modal, {
open: open,
restoreFocus: restoreFocus,
onOpenChange: onOpenChange,
defaultOpen: defaultOpen,
keepMounted: keepMounted,
closeOnInteractOutside: closeOnInteractBackdrop,
preventScroll: preventScroll,
closeOnEscape: closeOnEscape,
"aria-describedby": describedby,
"aria-labelledby": labelledby,
children: /*#__PURE__*/ jsxRuntime.jsx(Provider, {
...remainingProps,
children: children
})
});
};
Dialog.displayName = 'Dialog';
Provider.displayName = 'InnerProvider';
exports.Dialog = Dialog;