UNPKG

@nex-ui/react

Version:

🎉 A beautiful, modern, and reliable React component library.

44 lines (41 loc) • 1.39 kB
"use client"; import { jsx } from 'react/jsx-runtime'; import { DrawerProvider } from './DrawerContext.mjs'; import { useDefaultProps } from '../utils/useDefaultProps.mjs'; import { useSlot } from '../utils/useSlot.mjs'; import { Modal } from '../modal/Modal.mjs'; const Drawer = (inProps)=>{ const props = 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({ elementType: Modal, shouldForwardComponent: false, externalForwardedProps: { open, container, restoreFocus, onOpenChange, defaultOpen, keepMounted, preventScroll, closeOnEscape, onClose, closeOnInteractOutside: !hideBackdrop && closeOnInteractBackdrop } }); return /*#__PURE__*/ jsx(RootSlot, { ...getRootSlotProps(), children: /*#__PURE__*/ jsx(DrawerProvider, { value: { ...remainingProps, hideBackdrop }, children: children }) }); }; Drawer.displayName = 'Drawer'; export { Drawer };