UNPKG

@kubit-ui-web/react-components

Version:

Kubit React Components is a customizable, accessible library of React web components, designed to enhance your application's user experience

25 lines 3.26 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.DrawerStandAlone = void 0; const jsx_runtime_1 = require("react/jsx-runtime"); const react_1 = __importDefault(require("react")); const footer_1 = require("../../components/footer/footer"); const useId_1 = require("../../hooks/useId/useId"); const role_1 = require("../../types/role/role"); const elementOrIcon_1 = require("../elementOrIcon/elementOrIcon"); const popoverControlled_1 = require("../popover/popoverControlled"); const component_1 = require("../popover/types/component"); const text_1 = require("../text/text"); const component_2 = require("../text/types/component"); const drawer_styled_1 = require("./drawer.styled"); const DrawerStandAloneComponent = ({ blocked = false, titleComponent = component_2.TextComponentType.H3, dataTestId = 'drawer', ...props }, ref) => { const uniqueTitleId = (0, useId_1.useId)('drawer-title'); const titleIdFinal = props.title?.id ?? uniqueTitleId; const position = props.styles[props.level]?.containerPosition; return ((0, jsx_runtime_1.jsx)(popoverControlled_1.PopoverControlled, { "aria-labelledby": props.title?.content ? titleIdFinal : undefined, "aria-modal": props.open, clickOverlayClose: !blocked, component: component_1.PopoverComponentType.DIV, hasBackDrop: true, open: props.open, role: role_1.ROLES.DIALOG, trapFocusInsideModal: true, variant: position, ...props.popover, children: (0, jsx_runtime_1.jsxs)(drawer_styled_1.DrawerStyled, { ref: ref, "data-testid": dataTestId, position: position, styles: props.styles, children: [!blocked && ((0, jsx_runtime_1.jsx)(drawer_styled_1.DrawerNavigationStyled, { level: props.level, styles: props.styles, children: (0, jsx_runtime_1.jsx)(elementOrIcon_1.ElementOrIcon, { customIconStyles: props.styles.icon, ...props.closeIcon }) })), (0, jsx_runtime_1.jsxs)(drawer_styled_1.DrawerTitleContentFooterContainerStyled, { blocked: blocked, styles: props.styles, children: [(0, jsx_runtime_1.jsx)(drawer_styled_1.DrawerTitleStyled, { "data-drawer-title": true, as: text_1.Text, component: titleComponent, customTypography: props.styles.title, id: titleIdFinal, ...props.title, children: props.title?.content }), (0, jsx_runtime_1.jsx)(drawer_styled_1.DrawerContentStyled, { "data-drawer-content": true, "aria-label": props.contentHasScroll ? props.contentScrollArias?.['aria-label'] : undefined, "aria-labelledby": props.contentHasScroll ? props.contentScrollArias?.['aria-labelledby'] : undefined, role: props.contentHasScroll ? role_1.ROLES.REGION : undefined, styles: props.styles, tabIndex: props.contentHasScroll ? 0 : undefined, children: props.children }), props.footer?.content && (props.styles.footer?.variant || props.footer.variant) && ((0, jsx_runtime_1.jsx)(drawer_styled_1.DrawerFooterStyled, { "data-drawer-footer": true, as: footer_1.Footer, customFooterStyles: props.styles, variant: props.styles.footer?.variant, ...props.footer, children: props.footer.content }))] })] }) })); }; exports.DrawerStandAlone = react_1.default.forwardRef(DrawerStandAloneComponent); //# sourceMappingURL=drawerStandAlone.js.map