UNPKG

@dnb/eufemia

Version:

DNB Eufemia Design System UI Library

121 lines (120 loc) 2.5 kB
"use client"; import React, { useContext } from 'react'; import Modal from "../modal/Modal.js"; import DrawerContent from "./DrawerContent.js"; import DrawerBody from "./parts/DrawerBody.js"; import DrawerHeader from "./parts/DrawerHeader.js"; import DrawerNavigation from "./parts/DrawerNavigation.js"; import clsx from 'clsx'; import Context from "../../shared/Context.js"; import { removeUndefinedProps } from "../../shared/component-helper.js"; import withComponentMarkers from "../../shared/helpers/withComponentMarkers.js"; import { jsx as _jsx } from "react/jsx-runtime"; function Drawer({ id, contentId, focusSelector, labelledBy, directDomReturn, hideCloseButton, disabled, title, dialogTitle, closeTitle, containerPlacement = 'right', spacing = true, noAnimation, noAnimationOnMobile, animationDuration, fullscreen = 'auto', onOpen, onClose, onClosePrevent, openModal, closeModal, preventClose, preventOverlayClose, open, openDelay, omitTriggerButton, trigger, triggerAttributes, closeButtonAttributes, overlayClass, contentClass, contentRef, scrollRef, top, bottom, left, right, space, ...props }) { const context = useContext(Context); const modalProps = removeUndefinedProps({ title, id, focusSelector, labelledBy, disabled, spacing, openDelay, contentId, dialogTitle, closeTitle, hideCloseButton, preventClose, preventOverlayClose, animationDuration, noAnimation, noAnimationOnMobile, fullscreen, containerPlacement, open, directDomReturn, onOpen, onClose, onClosePrevent, openModal, closeModal, omitTriggerButton, trigger, triggerAttributes, closeButtonAttributes, overlayClass, contentRef, scrollRef, top, bottom, left, right, space }); const drawerProps = removeUndefinedProps({ ...props, noAnimation, noAnimationOnMobile, fullscreen, spacing, containerPlacement }); return _jsx(Modal, { ...context.Drawer, ...modalProps, fullscreen: false, contentClass: clsx('dnb-drawer__root', contentClass), children: _jsx(DrawerContent, { ...context.Drawer, ...drawerProps }) }); } Drawer.Body = DrawerBody; Drawer.Header = DrawerHeader; Drawer.Navigation = DrawerNavigation; withComponentMarkers(Drawer, { _supportsSpacingProps: true }); export default Drawer; //# sourceMappingURL=Drawer.js.map