@nex-ui/react
Version:
🎉 A beautiful, modern, and reliable React component library.
46 lines (42 loc) • 1.48 kB
JavaScript
"use client";
;
var jsxRuntime = require('react/jsx-runtime');
var DrawerContext = require('./DrawerContext.cjs');
var useDefaultProps = require('../utils/useDefaultProps.cjs');
var useSlot = require('../utils/useSlot.cjs');
var Modal = require('../modal/Modal.cjs');
const Drawer = (inProps)=>{
const props = useDefaultProps.useDefaultProps({
name: 'Drawer',
props: inProps
});
const { open, children, restoreFocus, onOpenChange, defaultOpen, container, keepMounted, closeOnEscape, closeOnInteractBackdrop, preventScroll, onClose, hideBackdrop = false, ...remainingProps } = props;
const [RootSlot, getRootSlotProps] = useSlot.useSlot({
elementType: Modal.Modal,
shouldForwardComponent: false,
externalForwardedProps: {
open,
container,
restoreFocus,
onOpenChange,
defaultOpen,
keepMounted,
preventScroll,
closeOnEscape,
onClose,
closeOnInteractOutside: !hideBackdrop && closeOnInteractBackdrop
}
});
return /*#__PURE__*/ jsxRuntime.jsx(RootSlot, {
...getRootSlotProps(),
children: /*#__PURE__*/ jsxRuntime.jsx(DrawerContext.DrawerProvider, {
value: {
...remainingProps,
hideBackdrop
},
children: children
})
});
};
Drawer.displayName = 'Drawer';
exports.Drawer = Drawer;