@hitachivantara/uikit-react-core
Version:
Core React components for the NEXT Design System.
75 lines (74 loc) • 2.25 kB
JavaScript
"use strict";
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
const jsxRuntime = require("react/jsx-runtime");
const React = require("react");
const MuiDrawer = require("@mui/material/Drawer");
const uikitReactUtils = require("@hitachivantara/uikit-react-utils");
const icons = require("../icons.cjs");
const setId = require("../utils/setId.cjs");
const Drawer_styles = require("./Drawer.styles.cjs");
const IconButton = require("../IconButton/IconButton.cjs");
const _interopDefault = (e) => e && e.__esModule ? e : { default: e };
const MuiDrawer__default = /* @__PURE__ */ _interopDefault(MuiDrawer);
const HvDrawer = React.forwardRef(function HvDrawer2(props, ref) {
const {
className,
classes: classesProp,
id,
children,
open,
onClose,
anchor = "right",
buttonTitle = "Close",
showBackdrop = true,
hideBackdrop,
disableBackdropClick = false,
...others
} = uikitReactUtils.useDefaultProps("HvDrawer", props);
const { classes, cx } = Drawer_styles.useClasses(classesProp);
const handleOnClose = (event, reason) => {
if (reason === "backdropClick" && disableBackdropClick) return;
onClose?.(event, reason);
};
const shouldHideBackdrop = hideBackdrop ?? !showBackdrop;
return /* @__PURE__ */ jsxRuntime.jsxs(
MuiDrawer__default.default,
{
ref,
className: cx(classes.root, className),
id,
anchor,
open,
classes: {
paper: classes.paper
},
hideBackdrop: shouldHideBackdrop,
...!shouldHideBackdrop && {
slotProps: {
backdrop: {
classes: {
root: classes.background
}
}
}
},
onClose: handleOnClose,
...others,
children: [
/* @__PURE__ */ jsxRuntime.jsx(
IconButton.HvIconButton,
{
id: setId.setId(id, "close"),
className: classes.closeButton,
onClick: onClose,
title: buttonTitle,
children: /* @__PURE__ */ jsxRuntime.jsx(icons.HvIcon, { name: "Close" })
}
),
children
]
}
);
});
exports.drawerClasses = Drawer_styles.staticClasses;
exports.HvDrawer = HvDrawer;