@hitachivantara/uikit-react-core
Version:
Core React components for the NEXT Design System.
94 lines (93 loc) • 2.68 kB
JavaScript
"use strict";
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
const jsxRuntime = require("react/jsx-runtime");
const React = require("react");
const Slide = require("@mui/material/Slide");
const Snackbar = require("@mui/material/Snackbar");
const uikitReactUtils = require("@hitachivantara/uikit-react-utils");
const setId = require("../utils/setId.cjs");
const Banner_styles = require("./Banner.styles.cjs");
const BannerContent = require("./BannerContent/BannerContent.cjs");
const _interopDefault = (e) => e && e.__esModule ? e : { default: e };
const Slide__default = /* @__PURE__ */ _interopDefault(Slide);
const Snackbar__default = /* @__PURE__ */ _interopDefault(Snackbar);
const HvBanner = React.forwardRef(function HvBanner2(props, ref) {
const {
id,
classes: classesProp,
className,
title,
open,
onClose,
anchorOrigin = "top",
variant,
transitionDuration = 300,
transitionDirection = "down",
container,
showIcon,
customIcon,
actions,
actionsCallback,
// TODO - remove in v6
onAction,
actionsPosition,
label,
offset = 60,
bannerContentProps,
...others
} = uikitReactUtils.useDefaultProps("HvBanner", props);
const { classes, cx } = Banner_styles.useClasses(classesProp);
const anchorOriginBanner = {
horizontal: "center",
vertical: anchorOrigin
};
const SlideTransition = React.useCallback(
(properties) => /* @__PURE__ */ jsxRuntime.jsx(
Slide__default.default,
{
...properties,
container,
direction: transitionDirection
}
),
[container, transitionDirection]
);
return /* @__PURE__ */ jsxRuntime.jsx(
Snackbar__default.default,
{
ref,
id,
open,
className,
classes: {
root: cx(classes.root, { [classes.rootClosed]: !open }),
anchorOriginTopCenter: classes.anchorOriginTopCenter,
anchorOriginBottomCenter: classes.anchorOriginBottomCenter
},
style: { [anchorOrigin]: offset },
anchorOrigin: anchorOriginBanner,
TransitionComponent: SlideTransition,
transitionDuration,
...others,
children: /* @__PURE__ */ jsxRuntime.jsx(
BannerContent.HvBannerContent,
{
id: setId.setId(id, "content"),
title,
variant,
customIcon,
showIcon,
actions,
actionsCallback,
onAction,
actionsPosition,
onClose,
...bannerContentProps,
children: label
}
)
}
);
});
exports.bannerClasses = Banner_styles.staticClasses;
exports.HvBanner = HvBanner;