@nex-ui/react
Version:
🎉 A beautiful, modern, and reliable React component library.
56 lines (52 loc) • 1.84 kB
JavaScript
'use strict';
var jsxRuntime = require('react/jsx-runtime');
var DrawerContext = require('./DrawerContext.cjs');
var useStyles = require('../utils/useStyles.cjs');
var drawer = require('../../theme/recipes/drawer.cjs');
var useSlotClasses = require('../utils/useSlotClasses.cjs');
var useSlot = require('../utils/useSlot.cjs');
var ModalRoot = require('../modal/ModalRoot.cjs');
var ModalBackdrop = require('../modal/ModalBackdrop.cjs');
const slots = [
'root',
'backdrop'
];
const DrawerRoot = ({ children })=>{
const ownerState = DrawerContext.useDrawer();
const styles = useStyles.useStyles({
name: 'Drawer',
recipe: drawer.drawerRootRecipe,
ownerState
});
const { slotProps, classNames, hideBackdrop, ...remainingProps } = ownerState;
const slotClasses = useSlotClasses.useSlotClasses({
name: 'Drawer',
slots,
classNames
});
const [DrawerRootRoot, getDrawerRootRootProps] = useSlot.useSlot({
elementType: ModalRoot.ModalRoot,
style: styles.root,
externalForwardedProps: remainingProps,
shouldForwardComponent: false,
classNames: slotClasses.root
});
const [DrawerBackdrop, getDrawerBackdropProps] = useSlot.useSlot({
elementType: ModalBackdrop.ModalBackdrop,
style: styles.backdrop,
externalSlotProps: slotProps?.backdrop,
shouldForwardComponent: false,
classNames: slotClasses.backdrop
});
return /*#__PURE__*/ jsxRuntime.jsxs(DrawerRootRoot, {
...getDrawerRootRootProps(),
children: [
!hideBackdrop && /*#__PURE__*/ jsxRuntime.jsx(DrawerBackdrop, {
...getDrawerBackdropProps()
}),
children
]
});
};
DrawerRoot.displayName = 'DrawerRoot';
exports.DrawerRoot = DrawerRoot;