@hitachivantara/uikit-react-core
Version:
Core React components for the NEXT Design System.
57 lines (56 loc) • 2.31 kB
JavaScript
;
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
const jsxRuntime = require("react/jsx-runtime");
const React = require("react");
const uikitReactUtils = require("@hitachivantara/uikit-react-utils");
const uikitStyles = require("@hitachivantara/uikit-styles");
const Badge_styles = require("./Badge.styles.cjs");
const Typography = require("../Typography/Typography.cjs");
const HvBadge = React.forwardRef(function HvBadge2(props, ref) {
const {
classes: classesProp,
className,
color,
showCount = false,
count: countProp = 0,
maxCount = 99,
label,
icon,
text,
textVariant,
children: childrenProp,
style,
...others
} = uikitReactUtils.useDefaultProps("HvBadge", props);
const { classes, cx } = Badge_styles.useClasses(classesProp);
const count = typeof label === "number" ? label : countProp;
const countValue = count > maxCount ? `${maxCount}+` : count;
const renderedCount = showCount && count > 0 ? countValue : "";
const renderedCountOrLabel = label && typeof label !== "number" ? label : renderedCount;
const children = childrenProp || icon || text && /* @__PURE__ */ jsxRuntime.jsx(Typography.HvTypography, { variant: textVariant, children: text });
return /* @__PURE__ */ jsxRuntime.jsxs("div", { ref, className: cx(classes.root, className), ...others, children: [
children,
/* @__PURE__ */ jsxRuntime.jsx(
"div",
{
"data-color": color,
style: uikitReactUtils.mergeStyles(style, {
"--bg-color": color && uikitStyles.getColor(color)
}),
className: cx(classes.badgePosition, {
[classes.badgeContainer]: children,
[classes.badgeHidden]: !(count > 0 || renderedCountOrLabel),
// TODO: remove unnecessary classes in v6 (hoist+rename `badge` to `badgePosition`)
[classes.badge]: !!(count > 0 || renderedCountOrLabel),
[classes.showCount]: !!(!label && renderedCountOrLabel),
[classes.showLabel]: !!label,
[classes.badgeIcon]: !!icon,
[classes.badgeOneDigit]: String(renderedCountOrLabel).length === 1
}),
children: renderedCountOrLabel
}
)
] });
});
exports.badgeClasses = Badge_styles.staticClasses;
exports.HvBadge = HvBadge;