UNPKG

@hitachivantara/uikit-react-core

Version:

Core React components for the NEXT Design System.

57 lines (56 loc) 2.31 kB
"use strict"; 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;