@trackunit/react-components 0.1.257 → 0.1.260

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/index.cjs.js CHANGED
@@ -198,7 +198,7 @@ const Icon = ({ name, size = "large", className, dataTestId, color, onClick, typ
198
198
  useTagRef.current.setAttribute("href", href[correctIconType]);
199
199
  }
200
200
  }, [correctIconType, href]);
201
- return (jsxRuntime.jsx("span", { className: cvaIcon({ color, size, className }), onClick: onClick, "data-testid": dataTestId, ref: forwardedRef, children: jsxRuntime.jsxs("svg", { viewBox: correctIconType === "mini" ? "0 0 20 20" : "0 0 24 24", "data-testid": dataTestId ? `${dataTestId}-${iconName}` : iconName, style: style, role: "img", children: [jsxRuntime.jsx("title", { children: title ? title : iconName }), jsxRuntime.jsx("use", { href: href[correctIconType], ref: useTagRef })] }) }));
201
+ return (jsxRuntime.jsx("span", { className: cvaIcon({ color, size, className }), "data-testid": dataTestId, onClick: onClick, ref: forwardedRef, children: jsxRuntime.jsxs("svg", { "data-testid": dataTestId ? `${dataTestId}-${iconName}` : iconName, role: "img", style: style, viewBox: correctIconType === "mini" ? "0 0 20 20" : "0 0 24 24", children: [jsxRuntime.jsx("title", { children: title ? title : iconName }), jsxRuntime.jsx("use", { href: href[correctIconType], ref: useTagRef })] }) }));
202
202
  };
203
203
 
204
204
  const cvaTag = cssClassVarianceUtilities.cvaMerge([
@@ -280,7 +280,7 @@ const cvaTagIcon = cssClassVarianceUtilities.cvaMerge(["cursor-pointer", "transi
280
280
  const Tag = React__namespace.forwardRef(({ className, dataTestId, children, size = "medium", onClose, color = "primary", disabled = false }, ref) => {
281
281
  return (jsxRuntime.jsxs("span", { className: cvaTag({ className, size, color, layout: onClose ? "withIcon" : "default" }), "data-testid": dataTestId, ref: ref, children: [children, Boolean(onClose) && !disabled ? (
282
282
  // a fix for multiselect deselecting tags working together with fade out animation
283
- jsxRuntime.jsx("div", { className: cvaTagIconContainer(), onMouseDown: onClose, children: jsxRuntime.jsx(Icon, { name: "XCircle", dataTestId: dataTestId + "Icon", type: "solid", size: size, style: { WebkitTransition: "-webkit-transform 0.150s" }, className: cvaTagIcon() }) })) : null] }));
283
+ jsxRuntime.jsx("div", { className: cvaTagIconContainer(), onMouseDown: onClose, children: jsxRuntime.jsx(Icon, { className: cvaTagIcon(), dataTestId: dataTestId + "Icon", name: "XCircle", size: size, style: { WebkitTransition: "-webkit-transform 0.150s" }, type: "solid" }) })) : null] }));
284
284
  });
285
285
  Tag.displayName = "Tag";
286
286
 
@@ -461,7 +461,7 @@ const cvaSpinnerContainer = cssClassVarianceUtilities.cvaMerge(["box-border", "p
461
461
  * @returns {JSX.Element} Spinner component
462
462
  */
463
463
  const Spinner = ({ mode = "light", size = "medium", centering = "centered", className, containerClassName, dataTestId = "spinner", }) => {
464
- return (jsxRuntime.jsx("div", { className: cvaSpinnerContainer({ centering, className: containerClassName }), children: jsxRuntime.jsx("div", { role: "spinbutton", className: cvaSpinner({ size, mode, className }), "data-testid": dataTestId }) }));
464
+ return (jsxRuntime.jsx("div", { className: cvaSpinnerContainer({ centering, className: containerClassName }), children: jsxRuntime.jsx("div", { className: cvaSpinner({ size, mode, className }), "data-testid": dataTestId, role: "spinbutton" }) }));
465
465
  };
466
466
 
467
467
  const cvaButton = cssClassVarianceUtilities.cvaMerge([
@@ -711,7 +711,7 @@ const Button = React__namespace.forwardRef((_a, ref) => {
711
711
  type,
712
712
  role,
713
713
  onClick,
714
- tabIndex, disabled: disabled || loading, className: cvaButton({ rounded: circular, disabled, size, square, variant, loading, fullWidth, className }), "aria-label": title, "data-testid": dataTestId }, rest), jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [loading ? (jsxRuntime.jsx(Spinner, { size: "small", centering: "vertically", containerClassName: cvaButtonSpinnerContainer(), className: cvaButtonSpinner({ variant }) })) : null, prefix && !loading ? jsxRuntime.jsx("div", { className: cvaButtonPrefixSuffix({ size: size }), children: prefix }) : null, children, suffix && !loading ? jsxRuntime.jsx("div", { className: cvaButtonPrefixSuffix({ size: size }), children: suffix }) : null] }));
714
+ tabIndex, disabled: disabled || loading, className: cvaButton({ rounded: circular, disabled, size, square, variant, loading, fullWidth, className }), "aria-label": title, "data-testid": dataTestId }, rest), jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [loading ? (jsxRuntime.jsx(Spinner, { centering: "vertically", className: cvaButtonSpinner({ variant }), containerClassName: cvaButtonSpinnerContainer(), size: "small" })) : null, prefix && !loading ? jsxRuntime.jsx("div", { className: cvaButtonPrefixSuffix({ size: size }), children: prefix }) : null, children, suffix && !loading ? jsxRuntime.jsx("div", { className: cvaButtonPrefixSuffix({ size: size }), children: suffix }) : null] }));
715
715
  });
716
716
  Button.displayName = "Button";
717
717
 
@@ -720,7 +720,7 @@ Button.displayName = "Button";
720
720
  */
721
721
  const IconButton = React__namespace.forwardRef((_a, ref) => {
722
722
  var { icon, size = "medium", square = true, loading, disabled, className } = _a, rest = __rest(_a, ["icon", "size", "square", "loading", "disabled", "className"]);
723
- return (jsxRuntime.jsx(Button, Object.assign({ size: size, prefix: !loading ? icon : undefined, square: square, loading: loading, disabled: disabled || loading, ref: ref, className: cvaIconButton({ size: size, className }) }, rest)));
723
+ return (jsxRuntime.jsx(Button, Object.assign({ className: cvaIconButton({ size: size, className }), disabled: disabled || loading, loading: loading, prefix: !loading ? icon : undefined, ref: ref, size: size, square: square }, rest)));
724
724
  });
725
725
  IconButton.displayName = "IconButton";
726
726
 
@@ -731,7 +731,7 @@ IconButton.displayName = "IconButton";
731
731
  * @returns {JSX.Element} StarButton component
732
732
  */
733
733
  const StarButton = ({ starred, onClick }) => {
734
- return (jsxRuntime.jsx("div", { onClick: onClick, "data-test-id": "starred-filter", children: jsxRuntime.jsx(Icon, { name: "Star", color: starred ? "primary" : "neutral", size: "medium" }) }));
734
+ return (jsxRuntime.jsx("div", { "data-test-id": "starred-filter", onClick: onClick, children: jsxRuntime.jsx(Icon, { color: starred ? "primary" : "neutral", name: "Star", size: "medium" }) }));
735
735
  };
736
736
 
737
737
  const cvaAlert = cssClassVarianceUtilities.cvaMerge(["flex", "flex-col", "gap-3", "relative", "p-3", "rounded-lg", "border", "@container"], {
@@ -764,13 +764,13 @@ const Alert = ({ color = "info", title, className, children, primaryAction, seco
764
764
  const getIconFromColor = () => {
765
765
  switch (color) {
766
766
  case "danger":
767
- return jsxRuntime.jsx(Icon, { name: "ExclamationTriangle", color: "danger" });
767
+ return jsxRuntime.jsx(Icon, { color: "danger", name: "ExclamationTriangle" });
768
768
  case "warning":
769
- return jsxRuntime.jsx(Icon, { name: "ExclamationCircle", color: "warning" });
769
+ return jsxRuntime.jsx(Icon, { color: "warning", name: "ExclamationCircle" });
770
770
  case "success":
771
- return jsxRuntime.jsx(Icon, { name: "CheckCircle", color: "success" });
771
+ return jsxRuntime.jsx(Icon, { color: "success", name: "CheckCircle" });
772
772
  case "info":
773
- return jsxRuntime.jsx(Icon, { name: "InformationCircle", color: "info" });
773
+ return jsxRuntime.jsx(Icon, { color: "info", name: "InformationCircle" });
774
774
  default:
775
775
  return jsxRuntime.jsx(Icon, { name: "InformationCircle" });
776
776
  }
@@ -782,7 +782,7 @@ const Alert = ({ color = "info", title, className, children, primaryAction, seco
782
782
  (_b = (_a = ref.current) === null || _a === void 0 ? void 0 : _a.scrollIntoView) === null || _b === void 0 ? void 0 : _b.call(_a);
783
783
  }
784
784
  }, [ref, autoScroll]);
785
- return (jsxRuntime.jsxs("div", { className: cvaAlert({ color, className }), "data-testid": dataTestId, ref: ref, role: "alert", children: [jsxRuntime.jsxs("div", { className: cvaAlertContentContainer(), children: [jsxRuntime.jsx("div", { className: cvaAlertIconContainer(), children: getIconFromColor() }), jsxRuntime.jsxs("div", { className: cvaContent(), children: [title ? (jsxRuntime.jsx(Text, { dataTestId: `${dataTestId}-title`, weight: "bold", children: title })) : null, children ? (jsxRuntime.jsx(Text, { type: typeof children === "string" || typeof children === "number" ? "p" : "span", weight: !title ? "bold" : "normal", children: children })) : null] }), onClose ? (jsxRuntime.jsx("div", { className: cvaAlertCloseButtonContainer(), children: jsxRuntime.jsx(IconButton, { size: "small", variant: "ghost-neutral", onClick: onClose, icon: jsxRuntime.jsx(Icon, { name: "XMark", size: "small" }), title: "Close Alert", circular: true }) })) : null] }), primaryAction || secondaryAction ? (jsxRuntime.jsxs("div", { className: cvaAlertActionsContainer(), children: [secondaryAction ? (jsxRuntime.jsx(Button, { size: "small", variant: "ghost-neutral", onClick: secondaryAction.onClick, loading: secondaryAction.loading, children: secondaryAction.label })) : null, primaryAction ? (jsxRuntime.jsx(Button, { size: "small", variant: color === "danger" ? "primary-danger" : "primary", onClick: primaryAction.onClick, loading: primaryAction.loading, children: primaryAction.label })) : null] })) : null] }));
785
+ return (jsxRuntime.jsxs("div", { className: cvaAlert({ color, className }), "data-testid": dataTestId, ref: ref, role: "alert", children: [jsxRuntime.jsxs("div", { className: cvaAlertContentContainer(), children: [jsxRuntime.jsx("div", { className: cvaAlertIconContainer(), children: getIconFromColor() }), jsxRuntime.jsxs("div", { className: cvaContent(), children: [title ? (jsxRuntime.jsx(Text, { dataTestId: `${dataTestId}-title`, weight: "bold", children: title })) : null, children ? (jsxRuntime.jsx(Text, { type: typeof children === "string" || typeof children === "number" ? "p" : "span", weight: !title ? "bold" : "normal", children: children })) : null] }), onClose ? (jsxRuntime.jsx("div", { className: cvaAlertCloseButtonContainer(), children: jsxRuntime.jsx(IconButton, { circular: true, icon: jsxRuntime.jsx(Icon, { name: "XMark", size: "small" }), onClick: onClose, size: "small", title: "Close Alert", variant: "ghost-neutral" }) })) : null] }), primaryAction || secondaryAction ? (jsxRuntime.jsxs("div", { className: cvaAlertActionsContainer(), children: [secondaryAction ? (jsxRuntime.jsx(Button, { loading: secondaryAction.loading, onClick: secondaryAction.onClick, size: "small", variant: "ghost-neutral", children: secondaryAction.label })) : null, primaryAction ? (jsxRuntime.jsx(Button, { loading: primaryAction.loading, onClick: primaryAction.onClick, size: "small", variant: color === "danger" ? "primary-danger" : "primary", children: primaryAction.label })) : null] })) : null] }));
786
786
  };
787
787
 
788
788
  const cvaBadge = cssClassVarianceUtilities.cvaMerge([
@@ -935,7 +935,7 @@ const ROLE_CARD = "region";
935
935
  */
936
936
  const Card = (_a) => {
937
937
  var { children, onClick, fullHeight = false, onMouseEnter, onMouseLeave, className, dataTestId } = _a, rest = __rest(_a, ["children", "onClick", "fullHeight", "onMouseEnter", "onMouseLeave", "className", "dataTestId"]);
938
- return (jsxRuntime.jsx("div", Object.assign({ onClick: onClick, className: cvaCard({ fullHeight, clickable: Boolean(onClick), className }), onMouseEnter: onMouseEnter, onMouseLeave: onMouseLeave, "data-testid": dataTestId, role: ROLE_CARD }, rest, { children: children })));
938
+ return (jsxRuntime.jsx("div", Object.assign({ className: cvaCard({ fullHeight, clickable: Boolean(onClick), className }), "data-testid": dataTestId, onClick: onClick, onMouseEnter: onMouseEnter, onMouseLeave: onMouseLeave, role: ROLE_CARD }, rest, { children: children })));
939
939
  };
940
940
 
941
941
  /**
@@ -946,8 +946,8 @@ const Card = (_a) => {
946
946
  * @param {CardBodyProps} props - The props for the CardBody component
947
947
  * @returns {JSX.Element} CardBody component
948
948
  */
949
- const CardBody = ({ density = "auto", children, dataTestId, className, disableGap }) => {
950
- return (jsxRuntime.jsx("div", { "data-testid": dataTestId, className: cvaCardBodyDensityContainer({ density, disableGap, className }), children: children }));
949
+ const CardBody = ({ density = "auto", children, dataTestId, className, disableGap, id }) => {
950
+ return (jsxRuntime.jsx("div", { className: cvaCardBodyDensityContainer({ density, disableGap, className }), "data-testid": dataTestId, id: id, children: children }));
951
951
  };
952
952
 
953
953
  /**
@@ -959,11 +959,11 @@ const CardBody = ({ density = "auto", children, dataTestId, className, disableGa
959
959
  * @returns {JSX.Element} CardFooter component
960
960
  */
961
961
  const CardFooter = ({ dataTestId, className, children, density, hideSeparator = false }) => {
962
- return (jsxRuntime.jsx("div", { "data-testid": dataTestId, className: cvaCardFooterDensityContainer({
962
+ return (jsxRuntime.jsx("div", { className: cvaCardFooterDensityContainer({
963
963
  density,
964
964
  border: hideSeparator ? "borderless" : "default",
965
965
  className,
966
- }), children: children }));
966
+ }), "data-testid": dataTestId, children: children }));
967
967
  };
968
968
 
969
969
  const cvaHeading = cssClassVarianceUtilities.cvaMerge(["m-0", "leading-normal", "text-black"], {
@@ -1021,11 +1021,11 @@ const Heading = (_a) => {
1021
1021
  * @returns {JSX.Element} CardHeader component
1022
1022
  */
1023
1023
  const CardHeader = ({ heading, headingVariant = "primary", subHeading, onClose, dataTestId, className, children, accessories, actions, density, hideSeparator = false, }) => {
1024
- return (jsxRuntime.jsx("div", { "data-testid": dataTestId, className: cvaCardHeaderDensityContainer({
1024
+ return (jsxRuntime.jsx("div", { className: cvaCardHeaderDensityContainer({
1025
1025
  density,
1026
1026
  border: hideSeparator ? "borderless" : "default",
1027
1027
  className,
1028
- }), children: jsxRuntime.jsxs("div", { className: cvaCardHeader(), children: [jsxRuntime.jsxs("div", { children: [jsxRuntime.jsxs("div", { className: cvaCardHeaderHeadingContainer(), children: [jsxRuntime.jsx(Heading, { className: "self-center", variant: headingVariant, children: heading }), accessories] }), subHeading ? (jsxRuntime.jsx(Heading, { subtle: true, variant: "subtitle", children: subHeading })) : null, children] }), jsxRuntime.jsxs("div", { className: "flex gap-x-2 gap-y-1", children: [actions, onClose ? (jsxRuntime.jsx(IconButton, { dataTestId: "card-header-close-button", variant: "ghost-neutral", onClick: onClose, icon: jsxRuntime.jsx(Icon, { name: "XMark", size: "small" }), className: "!h-min" })) : null] })] }) }));
1028
+ }), "data-testid": dataTestId, children: jsxRuntime.jsxs("div", { className: cvaCardHeader(), children: [jsxRuntime.jsxs("div", { children: [jsxRuntime.jsxs("div", { className: cvaCardHeaderHeadingContainer(), children: [jsxRuntime.jsx(Heading, { className: "self-center", variant: headingVariant, children: heading }), accessories] }), subHeading ? (jsxRuntime.jsx(Heading, { subtle: true, variant: "subtitle", children: subHeading })) : null, children] }), jsxRuntime.jsxs("div", { className: "flex gap-x-2 gap-y-1", children: [actions, onClose ? (jsxRuntime.jsx(IconButton, { className: "!h-min", dataTestId: "card-header-close-button", icon: jsxRuntime.jsx(Icon, { name: "XMark", size: "small" }), onClick: onClose, variant: "ghost-neutral" })) : null] })] }) }));
1029
1029
  };
1030
1030
 
1031
1031
  const cvaCollapse = cssClassVarianceUtilities.cvaMerge([
@@ -1069,7 +1069,7 @@ const Collapse = ({ id, initialExpanded = false, onToggle, label, children, clas
1069
1069
  }
1070
1070
  setExpanded(!expanded);
1071
1071
  }, [expanded, onToggle]);
1072
- return (jsxRuntime.jsxs("div", { className: cvaCollapse({ className }), "data-testid": dataTestId, children: [jsxRuntime.jsxs("div", { className: cvaCollapseHeader({ expanded, className: headerClassName }), role: "button", "aria-expanded": expanded, "aria-controls": id, onClick: handleClick, children: [jsxRuntime.jsxs("div", { className: cvaCollapseLabelContainer(), children: [jsxRuntime.jsx(Text, { type: "span", weight: "bold", children: label }), jsxRuntime.jsx(IconButton, { icon: jsxRuntime.jsx(Icon, { name: "ChevronUpDown", size: "small" }), size: "medium", variant: "ghost-neutral" })] }), headerAddon ? headerAddon : null] }), jsxRuntime.jsx(Collapsible, { expanded: expanded, id: id, children: children })] }));
1072
+ return (jsxRuntime.jsxs("div", { className: cvaCollapse({ className }), "data-testid": dataTestId, children: [jsxRuntime.jsxs("div", { "aria-controls": id, "aria-expanded": expanded, className: cvaCollapseHeader({ expanded, className: headerClassName }), onClick: handleClick, role: "button", children: [jsxRuntime.jsxs("div", { className: cvaCollapseLabelContainer(), children: [jsxRuntime.jsx(Text, { type: "span", weight: "bold", children: label }), jsxRuntime.jsx(IconButton, { icon: jsxRuntime.jsx(Icon, { name: "ChevronUpDown", size: "small" }), size: "medium", variant: "ghost-neutral" })] }), headerAddon ? headerAddon : null] }), jsxRuntime.jsx(Collapsible, { expanded: expanded, id: id, children: children })] }));
1073
1073
  };
1074
1074
  const Collapsible = ({ children, expanded, id }) => {
1075
1075
  const [ref, { height }] = reactUse.useMeasure();
@@ -1116,7 +1116,7 @@ const CopyableText = ({ text, alternativeText, dataTestId, className }) => {
1116
1116
  copyToClipboard(value);
1117
1117
  setAnimating(true);
1118
1118
  };
1119
- return (jsxRuntime.jsx("span", { className: cvaCopyableText({ animating, className }), "data-testid": dataTestId, onClick: handleOnClick, onAnimationEnd: () => setAnimating(false), title: value, children: text }));
1119
+ return (jsxRuntime.jsx("span", { className: cvaCopyableText({ animating, className }), "data-testid": dataTestId, onAnimationEnd: () => setAnimating(false), onClick: handleOnClick, title: value, children: text }));
1120
1120
  };
1121
1121
 
1122
1122
  const localeLookup = {
@@ -1159,7 +1159,7 @@ const useLocale = (language) => {
1159
1159
  */
1160
1160
  const DayPicker = ({ onDaySelect, disabledDays, selectedDays, language, className, dataTestId, max, }) => {
1161
1161
  const locale = useLocale(language);
1162
- return (jsxRuntime.jsx(reactDayPicker.DayPicker, { onDayClick: onDaySelect, selected: selectedDays, locale: locale, disabled: disabledDays, className: `custom-day-picker ${className !== null && className !== void 0 ? className : ""}`, max: max, footer: jsxRuntime.jsx("div", { "data-testid": dataTestId }) }));
1162
+ return (jsxRuntime.jsx(reactDayPicker.DayPicker, { className: `custom-day-picker ${className !== null && className !== void 0 ? className : ""}`, disabled: disabledDays, footer: jsxRuntime.jsx("div", { "data-testid": dataTestId }), locale: locale, max: max, onDayClick: onDaySelect, selected: selectedDays }));
1163
1163
  };
1164
1164
 
1165
1165
  /**
@@ -1180,7 +1180,7 @@ const DayRangePicker = ({ onRangeSelect, selectedDays, disabledDays, dataTestId,
1180
1180
  onRangeSelect({ from, to });
1181
1181
  }
1182
1182
  }, [onRangeSelect]);
1183
- return (jsxRuntime.jsx(reactDayPicker.DayPicker, { mode: "range", onSelect: onSelect, selected: selectedDays, defaultMonth: selectedDays ? selectedDays.from : undefined, locale: locale, disabled: disabledDays, className: `custom-day-picker range-picker ${className !== null && className !== void 0 ? className : ""}`, max: max, footer: jsxRuntime.jsx("div", { "data-testid": dataTestId }) }));
1183
+ return (jsxRuntime.jsx(reactDayPicker.DayPicker, { className: `custom-day-picker range-picker ${className !== null && className !== void 0 ? className : ""}`, defaultMonth: selectedDays ? selectedDays.from : undefined, disabled: disabledDays, footer: jsxRuntime.jsx("div", { "data-testid": dataTestId }), locale: locale, max: max, mode: "range", onSelect: onSelect, selected: selectedDays }));
1184
1184
  };
1185
1185
 
1186
1186
  const cvaDrawerOverlay = cssClassVarianceUtilities.cvaMerge([
@@ -1228,7 +1228,7 @@ const Drawer = ({ open, onClose = () => { }, children, disableOverlay = false, p
1228
1228
  window.removeEventListener("keyup", onKeyPress);
1229
1229
  };
1230
1230
  }, [open, onClose]);
1231
- return (jsxRuntime.jsx(react.FloatingFocusManager, { context: context, children: open ? (jsxRuntime.jsxs("div", { id: "drawer", children: [!disableOverlay && (jsxRuntime.jsx("div", { className: cvaDrawerOverlay(), "aria-hidden": open, onClick: onClose, id: "drawer__overlay" })), jsxRuntime.jsx(Card, { "aria-hidden": open, "data-testid": dataTestId, id: "drawer__card", className: cvaDrawerCard({ position, className }), children: children })] })) : (
1231
+ return (jsxRuntime.jsx(react.FloatingFocusManager, { context: context, children: open ? (jsxRuntime.jsxs("div", { id: "drawer", children: [!disableOverlay && (jsxRuntime.jsx("div", { "aria-hidden": open, className: cvaDrawerOverlay(), id: "drawer__overlay", onClick: onClose })), jsxRuntime.jsx(Card, { "aria-hidden": open, className: cvaDrawerCard({ position, className }), "data-testid": dataTestId, id: "drawer__card", children: children })] })) : (
1232
1232
  // eslint-disable-next-line react/jsx-no-useless-fragment
1233
1233
  jsxRuntime.jsx(jsxRuntime.Fragment, {})) }));
1234
1234
  };
@@ -1264,7 +1264,7 @@ const SkeletonLines = React.memo(({ margin = "10px 0", lines = 1, height, width
1264
1264
  return height;
1265
1265
  };
1266
1266
  for (let i = 0; i < lines; i++) {
1267
- skeletonLines.push(jsxRuntime.jsx("div", { "data-testid": dataTestId !== null && dataTestId !== void 0 ? dataTestId : "skeleton-lines", "data-type": "loading-skeleton-line", className: cvaSkeletonLine({ className }), style: { height: getHeight(i), width: getWidth(i), margin: lines > 1 ? margin : "" }, children: lines > 1 && jsxRuntime.jsx(jsxRuntime.Fragment, { children: "\u00A0" }) }, i));
1267
+ skeletonLines.push(jsxRuntime.jsx("div", { className: cvaSkeletonLine({ className }), "data-testid": dataTestId !== null && dataTestId !== void 0 ? dataTestId : "skeleton-lines", "data-type": "loading-skeleton-line", style: { height: getHeight(i), width: getWidth(i), margin: lines > 1 ? margin : "" }, children: lines > 1 && jsxRuntime.jsx(jsxRuntime.Fragment, { children: "\u00A0" }) }, i));
1268
1268
  }
1269
1269
  // eslint-disable-next-line react/jsx-no-useless-fragment
1270
1270
  return jsxRuntime.jsx(jsxRuntime.Fragment, { children: skeletonLines });
@@ -1334,7 +1334,7 @@ const EmptyState = ({ title, description, altText, image, customImageSrc, action
1334
1334
  lazyLoadImage();
1335
1335
  }
1336
1336
  }, [customImageSrc, image]);
1337
- return (jsxRuntime.jsx("div", { className: cvaContainerStyles({ className }), "data-testid": dataTestId !== null && dataTestId !== void 0 ? dataTestId : "empty-state", children: loading ? (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx(Spinner, { dataTestId: "spinner", size: "large", centering: "centered" }), jsxRuntime.jsx(SkeletonLines, { dataTestId: "skeleton-lines", width: 50 })] })) : (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("img", { className: cvaImgStyles(), width: 200, height: 200, src: customImageSrc ? customImageSrc : imageSource, alt: altText }), title ? jsxRuntime.jsx(Heading, { variant: "secondary", children: title }) : null, description ? jsxRuntime.jsx(Text, { align: "center", children: description }) : null, action] })) }));
1337
+ return (jsxRuntime.jsx("div", { className: cvaContainerStyles({ className }), "data-testid": dataTestId !== null && dataTestId !== void 0 ? dataTestId : "empty-state", children: loading ? (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx(Spinner, { centering: "centered", dataTestId: "spinner", size: "large" }), jsxRuntime.jsx(SkeletonLines, { dataTestId: "skeleton-lines", width: 50 })] })) : (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("img", { alt: altText, className: cvaImgStyles(), height: 200, src: customImageSrc ? customImageSrc : imageSource, width: 200 }), title ? jsxRuntime.jsx(Heading, { variant: "secondary", children: title }) : null, description ? jsxRuntime.jsx(Text, { align: "center", children: description }) : null, action] })) }));
1338
1338
  };
1339
1339
 
1340
1340
  const cvaExternalLink = cssClassVarianceUtilities.cvaMerge(["underline", "text-primary-600", "hover:text-primary-500"]);
@@ -1346,7 +1346,7 @@ const cvaExternalLink = cssClassVarianceUtilities.cvaMerge(["underline", "text-p
1346
1346
  * @returns {JSX.Element} External Link component
1347
1347
  */
1348
1348
  const ExternalLink = ({ rel = "noreferrer", target = "_blank", href, className, children = href, title = href, dataTestId, onClick, }) => {
1349
- return (jsxRuntime.jsx("a", { onClick: onClick, "data-testid": dataTestId, className: cvaExternalLink({ className }), title: title, href: href, rel: rel, target: target, children: children }));
1349
+ return (jsxRuntime.jsx("a", { className: cvaExternalLink({ className }), "data-testid": dataTestId, href: href, onClick: onClick, rel: rel, target: target, title: title, children: children }));
1350
1350
  };
1351
1351
 
1352
1352
  /**
@@ -1451,7 +1451,7 @@ const PopoverContent = React__default["default"].forwardRef(function PopoverCont
1451
1451
  var { className, dataTestId, children, portalId } = _a, props = __rest(_a, ["className", "dataTestId", "children", "portalId"]);
1452
1452
  const _c = usePopoverContext(), { context: floatingContext, customProps } = _c, context = __rest(_c, ["context", "customProps"]);
1453
1453
  const ref = react.useMergeRefs([context.refs.setFloating, propRef]);
1454
- return (jsxRuntime.jsx(react.FloatingPortal, { id: portalId !== null && portalId !== void 0 ? portalId : "tu-floating-ui", children: context.isOpen ? (jsxRuntime.jsx(react.FloatingFocusManager, { guards: false, context: floatingContext, modal: context.isModal, closeOnFocusOut: false, order: ["reference", "content"], returnFocus: false, children: jsxRuntime.jsx("div", Object.assign({ ref: ref, className: cvaPopoverContainer({ className: className !== null && className !== void 0 ? className : customProps.className }), "data-testid": (_b = dataTestId !== null && dataTestId !== void 0 ? dataTestId : customProps.dataTestId) !== null && _b !== void 0 ? _b : "popover-content", style: Object.assign({ position: context.strategy, top: context.y, left: context.x, width: "max-content" }, props.style), "aria-labelledby": context.labelId, "aria-describedby": context.descriptionId }, context.getFloatingProps(props), { children: typeof children === "function" ? children(() => context.setIsOpen(false)) : children })) })) : null }));
1454
+ return (jsxRuntime.jsx(react.FloatingPortal, { id: portalId !== null && portalId !== void 0 ? portalId : "tu-floating-ui", children: context.isOpen ? (jsxRuntime.jsx(react.FloatingFocusManager, { closeOnFocusOut: false, context: floatingContext, guards: false, modal: context.isModal, order: ["reference", "content"], returnFocus: false, children: jsxRuntime.jsx("div", Object.assign({ "aria-describedby": context.descriptionId, "aria-labelledby": context.labelId, className: cvaPopoverContainer({ className: className !== null && className !== void 0 ? className : customProps.className }), "data-testid": (_b = dataTestId !== null && dataTestId !== void 0 ? dataTestId : customProps.dataTestId) !== null && _b !== void 0 ? _b : "popover-content", ref: ref, style: Object.assign({ position: context.strategy, top: context.y, left: context.x, width: "max-content" }, props.style) }, context.getFloatingProps(props), { children: typeof children === "function" ? children(() => context.setIsOpen(false)) : children })) })) : null }));
1455
1455
  });
1456
1456
 
1457
1457
  /**
@@ -1461,7 +1461,7 @@ const PopoverContent = React__default["default"].forwardRef(function PopoverCont
1461
1461
  * @returns {JSX.Element} PopoverTitle component
1462
1462
  */
1463
1463
  const PopoverTitle = ({ children, action, divider = false, className, dataTestId }) => {
1464
- return (jsxRuntime.jsxs("div", { className: cvaPopoverTitleContainer({ divider, className }), "data-testid": dataTestId, children: [jsxRuntime.jsx(Text, { className: cvaPopoverTitleText(), type: "div", subtle: true, size: "small", weight: "bold", uppercase: true, children: children }), action] }));
1464
+ return (jsxRuntime.jsxs("div", { className: cvaPopoverTitleContainer({ divider, className }), "data-testid": dataTestId, children: [jsxRuntime.jsx(Text, { className: cvaPopoverTitleText(), size: "small", subtle: true, type: "div", uppercase: true, weight: "bold", children: children }), action] }));
1465
1465
  };
1466
1466
 
1467
1467
  const PopoverTrigger = React.forwardRef(function PopoverTrigger(_a, propRef) {
@@ -1474,7 +1474,7 @@ const PopoverTrigger = React.forwardRef(function PopoverTrigger(_a, propRef) {
1474
1474
  return React.cloneElement(children, context.getReferenceProps(Object.assign(Object.assign(Object.assign({ ref }, props), children.props), { "data-state": context.isOpen ? "open" : "closed" })));
1475
1475
  }
1476
1476
  else {
1477
- return (jsxRuntime.jsx(Button, Object.assign({ ref: ref, type: "button", "data-state": context.isOpen ? "open" : "closed" }, context.getReferenceProps(props), { children: children })));
1477
+ return (jsxRuntime.jsx(Button, Object.assign({ "data-state": context.isOpen ? "open" : "closed", ref: ref, type: "button" }, context.getReferenceProps(props), { children: children })));
1478
1478
  }
1479
1479
  });
1480
1480
 
@@ -1537,7 +1537,7 @@ const cvaTooltipPopoverContent = cssClassVarianceUtilities.cvaMerge(["max-w-sm",
1537
1537
  */
1538
1538
  const FloatingArrowContainer = ({ arrowRef, mode = "dark", }) => {
1539
1539
  const { context: floatingContext } = usePopoverContext();
1540
- return (jsxRuntime.jsx(react.FloatingArrow, { ref: arrowRef, context: floatingContext, className: cvaTooltipPopoverTail({ mode, placement: floatingContext.placement }) }));
1540
+ return (jsxRuntime.jsx(react.FloatingArrow, { className: cvaTooltipPopoverTail({ mode, placement: floatingContext.placement }), context: floatingContext, ref: arrowRef }));
1541
1541
  };
1542
1542
  /**
1543
1543
  * Tooltips display additional information upon hover. The information included should be contextual, helpful, and nonessential while providing that extra ability to communicate and give clarity to a user.
@@ -1566,7 +1566,7 @@ const Tooltip = ({ children, dataTestId = "tool-tip", disabled, className, label
1566
1566
  if (disabled) {
1567
1567
  return wrappedChildren;
1568
1568
  }
1569
- return (jsxRuntime.jsxs(Popover, { className: cvaTooltipPopover(), placement: placement === "auto" ? "bottom" : placement, activation: { hover: true }, dataTestId: dataTestId, children: [jsxRuntime.jsx(PopoverTrigger, { className: cvaTooltipIcon({ color: mode }), ref: refs.setReference, onMouseEnter: () => setIsOpen(true), onMouseLeave: () => setIsOpen(false), "data-testid": dataTestId ? `${dataTestId}-trigger` : null, children: children === undefined ? (jsxRuntime.jsx("div", { children: jsxRuntime.jsx(Icon, Object.assign({ name: "QuestionMarkCircle", size: "small", dataTestId: dataTestId ? `${dataTestId}-icon` : undefined }, iconProps)) })) : (wrappedChildren) }), isMounted ? (jsxRuntime.jsx("div", { ref: refs.setFloating, style: floatingStyles, children: jsxRuntime.jsx(PopoverContent, { children: jsxRuntime.jsxs("div", { "aria-label": typeof label === "string" ? label : undefined, className: cvaTooltipPopoverContent({ color: mode }), "data-testid": `${dataTestId}-content`, children: [jsxRuntime.jsx(Text, { inverted: mode === "dark", type: contentTextType, children: label }), placement !== "auto" && jsxRuntime.jsx(FloatingArrowContainer, { arrowRef: arrowRef, mode: mode })] }) }) })) : null] }));
1569
+ return (jsxRuntime.jsxs(Popover, { activation: { hover: true }, className: cvaTooltipPopover(), dataTestId: dataTestId, placement: placement === "auto" ? "bottom" : placement, children: [jsxRuntime.jsx(PopoverTrigger, { className: cvaTooltipIcon({ color: mode }), "data-testid": dataTestId ? `${dataTestId}-trigger` : null, onMouseEnter: () => setIsOpen(true), onMouseLeave: () => setIsOpen(false), ref: refs.setReference, children: children === undefined ? (jsxRuntime.jsx("div", { children: jsxRuntime.jsx(Icon, Object.assign({ dataTestId: dataTestId ? `${dataTestId}-icon` : undefined, name: "QuestionMarkCircle", size: "small" }, iconProps)) })) : (wrappedChildren) }), isMounted ? (jsxRuntime.jsx("div", { ref: refs.setFloating, style: floatingStyles, children: jsxRuntime.jsx(PopoverContent, { children: jsxRuntime.jsxs("div", { "aria-label": typeof label === "string" ? label : undefined, className: cvaTooltipPopoverContent({ color: mode }), "data-testid": `${dataTestId}-content`, children: [jsxRuntime.jsx(Text, { inverted: mode === "dark", type: contentTextType, children: label }), placement !== "auto" && jsxRuntime.jsx(FloatingArrowContainer, { arrowRef: arrowRef, mode: mode })] }) }) })) : null] }));
1570
1570
  };
1571
1571
 
1572
1572
  const cvaIndicator = cssClassVarianceUtilities.cvaMerge(["flex", "items-center"]);
@@ -1669,7 +1669,7 @@ const cvaIndicatorIconBackground = cssClassVarianceUtilities.cvaMerge(["rounded-
1669
1669
  */
1670
1670
  const Indicator = (_a) => {
1671
1671
  var { dataTestId, icon, label, color = "unknown", withBackground = true, withLabel = true, ping = false, className } = _a, rest = __rest(_a, ["dataTestId", "icon", "label", "color", "withBackground", "withLabel", "ping", "className"]);
1672
- return (jsxRuntime.jsx(Tooltip, { className: className, disabled: withLabel, label: label, placement: "bottom", children: jsxRuntime.jsxs("div", Object.assign({ className: cvaIndicator(), "data-testid": dataTestId, "aria-label": label }, rest, { children: [jsxRuntime.jsxs("div", { className: cvaIndicatorIconBackground({ color, background: withBackground ? "visible" : "hidden" }), "data-testid": dataTestId ? `${dataTestId}-background` : "indicator-background", children: [ping ? jsxRuntime.jsx("div", { className: cvaIndicatorPing({ color }), "data-testid": dataTestId ? `${dataTestId}-ping` : "indicator-ping" }) : null, icon] }), label !== undefined && withLabel ? jsxRuntime.jsx("div", { className: cvaIndicatorLabel(), "data-testid": dataTestId ? `${dataTestId}-label` : "indicator-label", children: label }) : null] })) }));
1672
+ return (jsxRuntime.jsx(Tooltip, { className: className, disabled: withLabel, label: label, placement: "bottom", children: jsxRuntime.jsxs("div", Object.assign({ "aria-label": label, className: cvaIndicator(), "data-testid": dataTestId }, rest, { children: [jsxRuntime.jsxs("div", { className: cvaIndicatorIconBackground({ color, background: withBackground ? "visible" : "hidden" }), "data-testid": dataTestId ? `${dataTestId}-background` : "indicator-background", children: [ping ? jsxRuntime.jsx("div", { className: cvaIndicatorPing({ color }), "data-testid": dataTestId ? `${dataTestId}-ping` : "indicator-ping" }) : null, icon] }), label !== undefined && withLabel ? jsxRuntime.jsx("div", { className: cvaIndicatorLabel(), "data-testid": dataTestId ? `${dataTestId}-label` : "indicator-label", children: label }) : null] })) }));
1673
1673
  };
1674
1674
 
1675
1675
  const cvaMenuItem = cssClassVarianceUtilities.cvaMerge([
@@ -1747,13 +1747,13 @@ const cvaMenuItemPrefix = cssClassVarianceUtilities.cvaMerge(["self-center", "fl
1747
1747
  */
1748
1748
  const MenuItem = ({ className, dataTestId, label, size, children, selected, focused, prefix, suffix, disabled, onClick, stopPropagation = true, id, }) => {
1749
1749
  const containerProps = useContainerProps({ className, dataTestId: dataTestId || "menu-item" });
1750
- return (jsxRuntime.jsxs("div", Object.assign({}, containerProps, { id: id, className: cvaMenuItem({
1750
+ return (jsxRuntime.jsxs("div", Object.assign({}, containerProps, { className: cvaMenuItem({
1751
1751
  selected,
1752
1752
  focused,
1753
1753
  disabled,
1754
1754
  size,
1755
1755
  className: containerProps.className,
1756
- }), onClick: e => {
1756
+ }), id: id, onClick: e => {
1757
1757
  stopPropagation && e.stopPropagation();
1758
1758
  onClick && onClick(e);
1759
1759
  }, tabIndex: 0, children: [prefix ? jsxRuntime.jsx("div", { className: cvaMenuItemPrefix({ selected }), "data-testid": dataTestId ? `${dataTestId}-prefix` : null, children: prefix }) : null, children && typeof children !== "string" ? (children) : (jsxRuntime.jsx("div", { className: cvaMenuItemLabel(), "data-testid": dataTestId ? `${dataTestId}-label` : null, children: children !== null && children !== void 0 ? children : label })), suffix ? jsxRuntime.jsx("div", { className: cvaMenuItemSuffix({ selected }), "data-testid": dataTestId ? `${dataTestId}-suffix` : null, children: suffix }) : null] })));
@@ -1784,7 +1784,7 @@ const MenuList = (_a) => {
1784
1784
  var { dataTestId, className, children, withStickyHeader = false, showDivider = false } = _a, args = __rest(_a, ["dataTestId", "className", "children", "withStickyHeader", "showDivider"]);
1785
1785
  const childrenArr = React.Children.toArray(children);
1786
1786
  const isLastItem = (index) => index === childrenArr.length - 1;
1787
- return (jsxRuntime.jsx("div", { "data-testid": dataTestId, className: cvaMenuList({ stickyHeader: withStickyHeader, className }), tabIndex: 0, role: "list", onClick: args.onClick, children: React.Children.map(childrenArr, (menuItem, index) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [menuItem, showDivider && !isLastItem(index) ? jsxRuntime.jsx("hr", { className: cvaMenuListDivider() }) : null] }))) }));
1787
+ return (jsxRuntime.jsx("div", { className: cvaMenuList({ stickyHeader: withStickyHeader, className }), "data-testid": dataTestId, onClick: args.onClick, role: "list", tabIndex: 0, children: React.Children.map(childrenArr, (menuItem, index) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [menuItem, showDivider && !isLastItem(index) ? jsxRuntime.jsx("hr", { className: cvaMenuListDivider() }) : null] }))) }));
1788
1788
  };
1789
1789
 
1790
1790
  const cvaMoreMenu = cssClassVarianceUtilities.cvaMerge(["p-4"]);
@@ -1805,7 +1805,7 @@ const MoreMenu = ({ className, dataTestId, popoverProps, iconProps = {
1805
1805
  variant: "secondary",
1806
1806
  }, customButton, customPortalId, children, }) => {
1807
1807
  const actionMenuRef = React.useRef(null);
1808
- return (jsxRuntime.jsx("div", { ref: actionMenuRef, className: cvaMoreMenu({ className }), "data-testid": dataTestId, children: jsxRuntime.jsxs(Popover, Object.assign({}, popoverProps, { children: [jsxRuntime.jsx(PopoverTrigger, { children: customButton !== null && customButton !== void 0 ? customButton : jsxRuntime.jsx(IconButton, Object.assign({}, iconButtonProps, { icon: jsxRuntime.jsx(Icon, Object.assign({ name: "EllipsisHorizontal" }, iconProps)) })) }), jsxRuntime.jsx(PopoverContent, { portalId: customPortalId, children: close => (typeof children === "function" ? children(close) : children) })] })) }));
1808
+ return (jsxRuntime.jsx("div", { className: cvaMoreMenu({ className }), "data-testid": dataTestId, ref: actionMenuRef, children: jsxRuntime.jsxs(Popover, Object.assign({}, popoverProps, { children: [jsxRuntime.jsx(PopoverTrigger, { children: customButton !== null && customButton !== void 0 ? customButton : jsxRuntime.jsx(IconButton, Object.assign({}, iconButtonProps, { icon: jsxRuntime.jsx(Icon, Object.assign({ name: "EllipsisHorizontal" }, iconProps)) })) }), jsxRuntime.jsx(PopoverContent, { portalId: customPortalId, children: close => (typeof children === "function" ? children(close) : children) })] })) }));
1809
1809
  };
1810
1810
 
1811
1811
  const cvaModalContainer = cssClassVarianceUtilities.cvaMerge(["h-full", "w-full", "flex", "items-center"]);
@@ -1850,12 +1850,12 @@ const cvaModalBackdrop = cssClassVarianceUtilities.cvaMerge([
1850
1850
  */
1851
1851
  const ModalBackdrop = ({ children, isVisible, onClick, noShadow }) => {
1852
1852
  const ref = React__namespace.useRef(null);
1853
- return (jsxRuntime.jsx("div", { ref: ref, className: cvaModalBackdrop({ show: isVisible, noShadow }), onMouseDown: e => {
1853
+ return (jsxRuntime.jsx("div", { className: cvaModalBackdrop({ show: isVisible, noShadow }), onMouseDown: e => {
1854
1854
  // only react on click on backdrop - accessing first child to get around styled element element
1855
1855
  if (ref.current !== null && e.target === ref.current.children[0]) {
1856
1856
  onClick();
1857
1857
  }
1858
- }, children: children }));
1858
+ }, ref: ref, children: children }));
1859
1859
  };
1860
1860
 
1861
1861
  /**
@@ -1867,7 +1867,7 @@ const ModalBackdrop = ({ children, isVisible, onClick, noShadow }) => {
1867
1867
  const Modal = React__namespace.forwardRef(({ isOpen, children, dataTestId, className, role = "", noBackdropShadow = false, onDismissClick = () => {
1868
1868
  return;
1869
1869
  }, }, ref) => {
1870
- return (jsxRuntime.jsx(ModalBackdrop, { isVisible: isOpen, onClick: onDismissClick, noShadow: noBackdropShadow, children: isOpen ? (jsxRuntime.jsx("div", { className: cvaModalContainer(), ref: ref, role: role, children: jsxRuntime.jsx(Card, { dataTestId: dataTestId, className: cvaModalCard({ className }), children: children }) })) : null }));
1870
+ return (jsxRuntime.jsx(ModalBackdrop, { isVisible: isOpen, noShadow: noBackdropShadow, onClick: onDismissClick, children: isOpen ? (jsxRuntime.jsx("div", { className: cvaModalContainer(), ref: ref, role: role, children: jsxRuntime.jsx(Card, { className: cvaModalCard({ className }), dataTestId: dataTestId, children: children }) })) : null }));
1871
1871
  });
1872
1872
  Modal.displayName = "Modal";
1873
1873
 
@@ -1893,7 +1893,7 @@ const useModal = ({ closeOnOutsideClick } = {}) => {
1893
1893
  }
1894
1894
  },
1895
1895
  });
1896
- const PortalWrapper = (props) => (jsxRuntime.jsx(Portal, { children: jsxRuntime.jsx(Modal, Object.assign({ ref: modalRef, isOpen: isOpen }, props)) }));
1896
+ const PortalWrapper = (props) => (jsxRuntime.jsx(Portal, { children: jsxRuntime.jsx(Modal, Object.assign({ isOpen: isOpen, ref: modalRef }, props)) }));
1897
1897
  PortalWrapper.displayName = "Modal";
1898
1898
  const WrappedModal = React.useCallback(PortalWrapper, [Portal, isOpen]);
1899
1899
  return {
@@ -1957,7 +1957,7 @@ const PageHeader = ({ className, dataTestId, action, showLoading, description, l
1957
1957
  return (jsxRuntime.jsxs("div", { className: cvaPageHeaderContainer({
1958
1958
  className,
1959
1959
  withBorder: !tabsList,
1960
- }), "data-testid": dataTestId, children: [jsxRuntime.jsxs("div", { className: cvaPageHeader(), children: [jsxRuntime.jsxs("div", { className: cvaPageHeaderHeadingAccessoriesContainer(), "data-testid": dataTestId ? `${dataTestId}-heading-container` : undefined, children: [jsxRuntime.jsxs("div", { className: cvaPageHeaderHeadingContainer(), children: [backTo ? (jsxRuntime.jsx(IconButton, { to: backTo, renderAs: reactRouterDom.Link, variant: "ghost-neutral", size: "small", icon: jsxRuntime.jsx(Icon, { name: "ArrowLeft" }) })) : undefined, jsxRuntime.jsx("h1", { className: cvaPageHeaderHeading(), "data-testid": dataTestId ? `${dataTestId}-heading` : undefined, children: title }), description && !showLoading ? (jsxRuntime.jsxs("div", { className: cvaPageHeaderDescriptionAndLinkContainer(), children: [jsxRuntime.jsx(Tooltip, { label: description, dataTestId: dataTestId ? `${dataTestId}-tooltip` : undefined, iconProps: { name: "QuestionMarkCircle" }, placement: "bottom" }), link ? (jsxRuntime.jsxs(reactRouterDom.Link, { to: link, "data-testid": "tooltip-link", target: "_blank", className: cvaPageHeaderLink(), children: [linkText, jsxRuntime.jsx(Icon, { name: "ArrowTopRightOnSquare", size: "small" })] })) : undefined] })) : undefined] }), tag && !showLoading ? (jsxRuntime.jsx(Tag, { dataTestId: dataTestId ? `${dataTestId}-tag` : undefined, color: tagColor, children: tag })) : undefined, showLoading ? (jsxRuntime.jsx(Spinner, { dataTestId: dataTestId ? `${dataTestId}-spinner` : undefined, centering: "vertically" })) : null, action] }), children ? jsxRuntime.jsx("div", { className: cvaPageHeaderChildContainer(), children: children }) : null] }), tabsList] }));
1960
+ }), "data-testid": dataTestId, children: [jsxRuntime.jsxs("div", { className: cvaPageHeader(), children: [jsxRuntime.jsxs("div", { className: cvaPageHeaderHeadingAccessoriesContainer(), "data-testid": dataTestId ? `${dataTestId}-heading-container` : undefined, children: [jsxRuntime.jsxs("div", { className: cvaPageHeaderHeadingContainer(), children: [backTo ? (jsxRuntime.jsx(IconButton, { icon: jsxRuntime.jsx(Icon, { name: "ArrowLeft" }), renderAs: reactRouterDom.Link, size: "small", to: backTo, variant: "ghost-neutral" })) : undefined, jsxRuntime.jsx("h1", { className: cvaPageHeaderHeading(), "data-testid": dataTestId ? `${dataTestId}-heading` : undefined, children: title }), description && !showLoading ? (jsxRuntime.jsxs("div", { className: cvaPageHeaderDescriptionAndLinkContainer(), children: [jsxRuntime.jsx(Tooltip, { dataTestId: dataTestId ? `${dataTestId}-tooltip` : undefined, iconProps: { name: "QuestionMarkCircle" }, label: description, placement: "bottom" }), link ? (jsxRuntime.jsxs(reactRouterDom.Link, { className: cvaPageHeaderLink(), "data-testid": "tooltip-link", target: "_blank", to: link, children: [linkText, jsxRuntime.jsx(Icon, { name: "ArrowTopRightOnSquare", size: "small" })] })) : undefined] })) : undefined] }), tag && !showLoading ? (jsxRuntime.jsx(Tag, { color: tagColor, dataTestId: dataTestId ? `${dataTestId}-tag` : undefined, children: tag })) : undefined, showLoading ? (jsxRuntime.jsx(Spinner, { centering: "vertically", dataTestId: dataTestId ? `${dataTestId}-spinner` : undefined })) : null, action] }), children ? jsxRuntime.jsx("div", { className: cvaPageHeaderChildContainer(), children: children }) : null] }), tabsList] }));
1961
1961
  };
1962
1962
 
1963
1963
  const cvaPagination = cssClassVarianceUtilities.cvaMerge(["flex", "items-center", "gap-1"]);
@@ -2006,9 +2006,9 @@ const Pagination = ({ previousPage, nextPage, canPreviousPage, canNextPage, page
2006
2006
  if (loading) {
2007
2007
  return (jsxRuntime.jsx("div", { className: cvaPagination({ className }), children: jsxRuntime.jsx(SkeletonLines, { height: 16, width: 150 }) }));
2008
2008
  }
2009
- return (jsxRuntime.jsxs("div", { "data-testid": dataTestId, className: cvaPagination({ className }), children: [jsxRuntime.jsx(IconButton, { onClick: () => handlePageChange("prev"), disabled: cursorBase ? !canPreviousPage || false : page !== undefined && page <= 0, "data-testid": "prev-page", icon: jsxRuntime.jsx(Icon, { name: "ChevronLeft", size: "small" }), size: "small", variant: "ghost-neutral" }), !cursorBase && (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("div", { className: cvaPaginationText(), "data-testid": "current-page", children: currentPage }), jsxRuntime.jsx("div", { className: cvaPaginationText(), "data-testid": "page-count", children: pageCount !== null && pageCount !== undefined && getTranslatedCount ? getTranslatedCount(pageCount) : null })] })), jsxRuntime.jsx(IconButton, { onClick: () => handlePageChange("next"), disabled: cursorBase
2009
+ return (jsxRuntime.jsxs("div", { className: cvaPagination({ className }), "data-testid": dataTestId, children: [jsxRuntime.jsx(IconButton, { "data-testid": "prev-page", disabled: cursorBase ? !canPreviousPage || false : page !== undefined && page <= 0, icon: jsxRuntime.jsx(Icon, { name: "ChevronLeft", size: "small" }), onClick: () => handlePageChange("prev"), size: "small", variant: "ghost-neutral" }), !cursorBase && (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("div", { className: cvaPaginationText(), "data-testid": "current-page", children: currentPage }), jsxRuntime.jsx("div", { className: cvaPaginationText(), "data-testid": "page-count", children: pageCount !== null && pageCount !== undefined && getTranslatedCount ? getTranslatedCount(pageCount) : null })] })), jsxRuntime.jsx(IconButton, { "data-testid": "next-page", disabled: cursorBase
2010
2010
  ? !canNextPage || false
2011
- : page !== undefined && pageCount !== undefined && pageCount !== null && page >= pageCount - 1, "data-testid": "next-page", icon: jsxRuntime.jsx(Icon, { name: "ChevronRight", size: "small" }), size: "small", variant: "ghost-neutral" })] }));
2011
+ : page !== undefined && pageCount !== undefined && pageCount !== null && page >= pageCount - 1, icon: jsxRuntime.jsx(Icon, { name: "ChevronRight", size: "small" }), onClick: () => handlePageChange("next"), size: "small", variant: "ghost-neutral" })] }));
2012
2012
  };
2013
2013
 
2014
2014
  function useConfirmExit(confirmExit, when = true) {
@@ -2092,7 +2092,7 @@ const cvaSpacer = cssClassVarianceUtilities.cvaMerge([], {
2092
2092
  * @returns {JSX.Element} Spacer component
2093
2093
  */
2094
2094
  const Spacer = ({ size = "medium", border = false, dataTestId, className }) => {
2095
- return jsxRuntime.jsx("div", { "data-testid": dataTestId, className: cvaSpacer({ className, border, size }) });
2095
+ return jsxRuntime.jsx("div", { className: cvaSpacer({ className, border, size }), "data-testid": dataTestId });
2096
2096
  };
2097
2097
 
2098
2098
  /**
@@ -2102,7 +2102,7 @@ const Spacer = ({ size = "medium", border = false, dataTestId, className }) => {
2102
2102
  * @returns {JSX.Element} SectionHeader component
2103
2103
  */
2104
2104
  const SectionHeader = ({ title, subtitle, dataTestId, addons }) => {
2105
- return (jsxRuntime.jsxs("div", { className: "flex flex-col", children: [jsxRuntime.jsx(reactHelmetAsync.HelmetProvider, { children: jsxRuntime.jsx(reactHelmetAsync.Helmet, { title: title }) }), jsxRuntime.jsxs("div", { className: "mb-2 flex flex-row gap-2", children: [jsxRuntime.jsxs("div", { className: "flex grow flex-col gap-2", children: [jsxRuntime.jsx(Heading, { variant: "secondary", dataTestId: dataTestId, children: title }), subtitle ? jsxRuntime.jsx(Heading, { variant: "subtitle", subtle: true, children: subtitle }) : null] }), addons ? jsxRuntime.jsx("div", { className: "flex gap-2", children: addons }) : null] }), jsxRuntime.jsx(Spacer, { size: "small" })] }));
2105
+ return (jsxRuntime.jsxs("div", { className: "flex flex-col", children: [jsxRuntime.jsx(reactHelmetAsync.HelmetProvider, { children: jsxRuntime.jsx(reactHelmetAsync.Helmet, { title: title }) }), jsxRuntime.jsxs("div", { className: "mb-2 flex flex-row gap-2", children: [jsxRuntime.jsxs("div", { className: "flex grow flex-col gap-2", children: [jsxRuntime.jsx(Heading, { dataTestId: dataTestId, variant: "secondary", children: title }), subtitle ? jsxRuntime.jsx(Heading, { subtle: true, variant: "subtitle", children: subtitle }) : null] }), addons ? jsxRuntime.jsx("div", { className: "flex gap-2", children: addons }) : null] }), jsxRuntime.jsx(Spacer, { size: "small" })] }));
2106
2106
  };
2107
2107
 
2108
2108
  const cvaSidebar = cssClassVarianceUtilities.cvaMerge(["apply", "grid", "grid-cols-fr-min", "items-center"]);
@@ -2197,7 +2197,7 @@ const Sidebar = ({ childContainerClassName, children, breakpoint = "lg", classNa
2197
2197
  }
2198
2198
  return "visible";
2199
2199
  };
2200
- return (jsxRuntime.jsxs("div", { className: cvaSidebar({ className }), "data-testid": dataTestId, children: [jsxRuntime.jsx("div", { ref: overflowContainerRef, className: cvaSidebarChildContainer({ breakpoint, className: childContainerClassName }), "data-testid": dataTestId ? `${dataTestId}-child-container` : null, children: React__default["default"].Children.map(children, child => {
2200
+ return (jsxRuntime.jsxs("div", { className: cvaSidebar({ className }), "data-testid": dataTestId, children: [jsxRuntime.jsx("div", { className: cvaSidebarChildContainer({ breakpoint, className: childContainerClassName }), "data-testid": dataTestId ? `${dataTestId}-child-container` : null, ref: overflowContainerRef, children: React__default["default"].Children.map(children, child => {
2201
2201
  return React__default["default"].cloneElement(child, {
2202
2202
  className: `${child.props.className} ${itemVisibilityClassName(child.props.id)}`,
2203
2203
  });
@@ -2280,7 +2280,7 @@ const Tab = (_a) => {
2280
2280
  */
2281
2281
  const TabContent = (_a) => {
2282
2282
  var { className, dataTestId, children } = _a, rest = __rest(_a, ["className", "dataTestId", "children"]);
2283
- return (jsxRuntime.jsx(reactTabs.Content, Object.assign({ "data-testid": dataTestId ? `${dataTestId}-content` : undefined, className: cvaTabContent({ className }) }, rest, { children: children })));
2283
+ return (jsxRuntime.jsx(reactTabs.Content, Object.assign({ className: cvaTabContent({ className }), "data-testid": dataTestId ? `${dataTestId}-content` : undefined }, rest, { children: children })));
2284
2284
  };
2285
2285
 
2286
2286
  /**
@@ -2288,7 +2288,7 @@ const TabContent = (_a) => {
2288
2288
  */
2289
2289
  const TabList = (_a) => {
2290
2290
  var { className, dataTestId, children } = _a, rest = __rest(_a, ["className", "dataTestId", "children"]);
2291
- return (jsxRuntime.jsx(reactTabs.List, Object.assign({ "data-testid": dataTestId, className: cvaTabList({ className }) }, rest, { children: children })));
2291
+ return (jsxRuntime.jsx(reactTabs.List, Object.assign({ className: cvaTabList({ className }), "data-testid": dataTestId }, rest, { children: children })));
2292
2292
  };
2293
2293
 
2294
2294
  /**
@@ -2447,7 +2447,7 @@ const ValueBar = ({ value, min = 0, max = 100, unit, size = "small", levelColors
2447
2447
  const score = getScore(value, min, max);
2448
2448
  const barFillColor = levelColors ? getFillColor(score, levelColors) : getDefaultFillColor(score);
2449
2449
  const barWidth = showValue && size === "small" ? 90 : 100;
2450
- return (jsxRuntime.jsx("svg", { className: cvaValueBar({ size, className }), "data-testid": dataTestId, role: "img", children: jsxRuntime.jsxs("g", { children: [jsxRuntime.jsx("rect", { className: cvaValueBarProgress({ fill: "background" }), width: `${barWidth}%`, rx: "5", "data-testid": "value-bar-svg-rect-0" }), jsxRuntime.jsx("rect", { className: cvaValueBarProgress(), width: `${score * barWidth}%`, fill: barFillColor, rx: "5", "data-testid": "value-bar-svg-rect-1" }), showValue && size === "large" ? (jsxRuntime.jsxs("text", { className: cvaValueBarText({ size }), x: "12", y: "23", fill: valueColor !== null && valueColor !== void 0 ? valueColor : "white", children: [Number(value.toFixed(1)), unit || ""] })) : null, showValue && size === "small" ? (jsxRuntime.jsxs("text", { className: cvaValueBarText({ size }), x: `${barWidth + 2}%`, y: "11", fill: valueColor !== null && valueColor !== void 0 ? valueColor : uiDesignTokens.color("NEUTRAL", 400, "CSS"), children: [Number(value.toFixed(1)), unit || ""] })) : null] }) }));
2450
+ return (jsxRuntime.jsx("svg", { className: cvaValueBar({ size, className }), "data-testid": dataTestId, role: "img", children: jsxRuntime.jsxs("g", { children: [jsxRuntime.jsx("rect", { className: cvaValueBarProgress({ fill: "background" }), "data-testid": "value-bar-svg-rect-0", rx: "5", width: `${barWidth}%` }), jsxRuntime.jsx("rect", { className: cvaValueBarProgress(), "data-testid": "value-bar-svg-rect-1", fill: barFillColor, rx: "5", width: `${score * barWidth}%` }), showValue && size === "large" ? (jsxRuntime.jsxs("text", { className: cvaValueBarText({ size }), fill: valueColor !== null && valueColor !== void 0 ? valueColor : "white", x: "12", y: "23", children: [Number(value.toFixed(1)), unit || ""] })) : null, showValue && size === "small" ? (jsxRuntime.jsxs("text", { className: cvaValueBarText({ size }), fill: valueColor !== null && valueColor !== void 0 ? valueColor : uiDesignTokens.color("NEUTRAL", 400, "CSS"), x: `${barWidth + 2}%`, y: "11", children: [Number(value.toFixed(1)), unit || ""] })) : null] }) }));
2451
2451
  };
2452
2452
 
2453
2453
  const cvaWidgetBodyDensityContainer = cssClassVarianceUtilities.cvaMerge([
@@ -2496,7 +2496,7 @@ const cvaWidgetBodyDensityContainer = cssClassVarianceUtilities.cvaMerge([
2496
2496
  * @returns {JSX.Element} WidgetBody component
2497
2497
  */
2498
2498
  const WidgetBody = ({ density = "auto", children, dataTestId, className, disableGap }) => {
2499
- return (jsxRuntime.jsx("div", { "data-testid": dataTestId, className: cvaWidgetBodyDensityContainer({ density, disableGap, className }), children: children }));
2499
+ return (jsxRuntime.jsx("div", { className: cvaWidgetBodyDensityContainer({ density, disableGap, className }), "data-testid": dataTestId, children: children }));
2500
2500
  };
2501
2501
 
2502
2502
  const cvaClickable = cssClassVarianceUtilities.cvaMerge([
package/index.esm.js CHANGED
@@ -167,7 +167,7 @@ const Icon = ({ name, size = "large", className, dataTestId, color, onClick, typ
167
167
  useTagRef.current.setAttribute("href", href[correctIconType]);
168
168
  }
169
169
  }, [correctIconType, href]);
170
- return (jsx("span", { className: cvaIcon({ color, size, className }), onClick: onClick, "data-testid": dataTestId, ref: forwardedRef, children: jsxs("svg", { viewBox: correctIconType === "mini" ? "0 0 20 20" : "0 0 24 24", "data-testid": dataTestId ? `${dataTestId}-${iconName}` : iconName, style: style, role: "img", children: [jsx("title", { children: title ? title : iconName }), jsx("use", { href: href[correctIconType], ref: useTagRef })] }) }));
170
+ return (jsx("span", { className: cvaIcon({ color, size, className }), "data-testid": dataTestId, onClick: onClick, ref: forwardedRef, children: jsxs("svg", { "data-testid": dataTestId ? `${dataTestId}-${iconName}` : iconName, role: "img", style: style, viewBox: correctIconType === "mini" ? "0 0 20 20" : "0 0 24 24", children: [jsx("title", { children: title ? title : iconName }), jsx("use", { href: href[correctIconType], ref: useTagRef })] }) }));
171
171
  };
172
172
 
173
173
  const cvaTag = cvaMerge([
@@ -249,7 +249,7 @@ const cvaTagIcon = cvaMerge(["cursor-pointer", "transition-opacity", "hover:opac
249
249
  const Tag = React.forwardRef(({ className, dataTestId, children, size = "medium", onClose, color = "primary", disabled = false }, ref) => {
250
250
  return (jsxs("span", { className: cvaTag({ className, size, color, layout: onClose ? "withIcon" : "default" }), "data-testid": dataTestId, ref: ref, children: [children, Boolean(onClose) && !disabled ? (
251
251
  // a fix for multiselect deselecting tags working together with fade out animation
252
- jsx("div", { className: cvaTagIconContainer(), onMouseDown: onClose, children: jsx(Icon, { name: "XCircle", dataTestId: dataTestId + "Icon", type: "solid", size: size, style: { WebkitTransition: "-webkit-transform 0.150s" }, className: cvaTagIcon() }) })) : null] }));
252
+ jsx("div", { className: cvaTagIconContainer(), onMouseDown: onClose, children: jsx(Icon, { className: cvaTagIcon(), dataTestId: dataTestId + "Icon", name: "XCircle", size: size, style: { WebkitTransition: "-webkit-transform 0.150s" }, type: "solid" }) })) : null] }));
253
253
  });
254
254
  Tag.displayName = "Tag";
255
255
 
@@ -430,7 +430,7 @@ const cvaSpinnerContainer = cvaMerge(["box-border", "p-0.5", "overflow-hidden"],
430
430
  * @returns {JSX.Element} Spinner component
431
431
  */
432
432
  const Spinner = ({ mode = "light", size = "medium", centering = "centered", className, containerClassName, dataTestId = "spinner", }) => {
433
- return (jsx("div", { className: cvaSpinnerContainer({ centering, className: containerClassName }), children: jsx("div", { role: "spinbutton", className: cvaSpinner({ size, mode, className }), "data-testid": dataTestId }) }));
433
+ return (jsx("div", { className: cvaSpinnerContainer({ centering, className: containerClassName }), children: jsx("div", { className: cvaSpinner({ size, mode, className }), "data-testid": dataTestId, role: "spinbutton" }) }));
434
434
  };
435
435
 
436
436
  const cvaButton = cvaMerge([
@@ -680,7 +680,7 @@ const Button = React.forwardRef((_a, ref) => {
680
680
  type,
681
681
  role,
682
682
  onClick,
683
- tabIndex, disabled: disabled || loading, className: cvaButton({ rounded: circular, disabled, size, square, variant, loading, fullWidth, className }), "aria-label": title, "data-testid": dataTestId }, rest), jsxs(Fragment, { children: [loading ? (jsx(Spinner, { size: "small", centering: "vertically", containerClassName: cvaButtonSpinnerContainer(), className: cvaButtonSpinner({ variant }) })) : null, prefix && !loading ? jsx("div", { className: cvaButtonPrefixSuffix({ size: size }), children: prefix }) : null, children, suffix && !loading ? jsx("div", { className: cvaButtonPrefixSuffix({ size: size }), children: suffix }) : null] }));
683
+ tabIndex, disabled: disabled || loading, className: cvaButton({ rounded: circular, disabled, size, square, variant, loading, fullWidth, className }), "aria-label": title, "data-testid": dataTestId }, rest), jsxs(Fragment, { children: [loading ? (jsx(Spinner, { centering: "vertically", className: cvaButtonSpinner({ variant }), containerClassName: cvaButtonSpinnerContainer(), size: "small" })) : null, prefix && !loading ? jsx("div", { className: cvaButtonPrefixSuffix({ size: size }), children: prefix }) : null, children, suffix && !loading ? jsx("div", { className: cvaButtonPrefixSuffix({ size: size }), children: suffix }) : null] }));
684
684
  });
685
685
  Button.displayName = "Button";
686
686
 
@@ -689,7 +689,7 @@ Button.displayName = "Button";
689
689
  */
690
690
  const IconButton = React.forwardRef((_a, ref) => {
691
691
  var { icon, size = "medium", square = true, loading, disabled, className } = _a, rest = __rest(_a, ["icon", "size", "square", "loading", "disabled", "className"]);
692
- return (jsx(Button, Object.assign({ size: size, prefix: !loading ? icon : undefined, square: square, loading: loading, disabled: disabled || loading, ref: ref, className: cvaIconButton({ size: size, className }) }, rest)));
692
+ return (jsx(Button, Object.assign({ className: cvaIconButton({ size: size, className }), disabled: disabled || loading, loading: loading, prefix: !loading ? icon : undefined, ref: ref, size: size, square: square }, rest)));
693
693
  });
694
694
  IconButton.displayName = "IconButton";
695
695
 
@@ -700,7 +700,7 @@ IconButton.displayName = "IconButton";
700
700
  * @returns {JSX.Element} StarButton component
701
701
  */
702
702
  const StarButton = ({ starred, onClick }) => {
703
- return (jsx("div", { onClick: onClick, "data-test-id": "starred-filter", children: jsx(Icon, { name: "Star", color: starred ? "primary" : "neutral", size: "medium" }) }));
703
+ return (jsx("div", { "data-test-id": "starred-filter", onClick: onClick, children: jsx(Icon, { color: starred ? "primary" : "neutral", name: "Star", size: "medium" }) }));
704
704
  };
705
705
 
706
706
  const cvaAlert = cvaMerge(["flex", "flex-col", "gap-3", "relative", "p-3", "rounded-lg", "border", "@container"], {
@@ -733,13 +733,13 @@ const Alert = ({ color = "info", title, className, children, primaryAction, seco
733
733
  const getIconFromColor = () => {
734
734
  switch (color) {
735
735
  case "danger":
736
- return jsx(Icon, { name: "ExclamationTriangle", color: "danger" });
736
+ return jsx(Icon, { color: "danger", name: "ExclamationTriangle" });
737
737
  case "warning":
738
- return jsx(Icon, { name: "ExclamationCircle", color: "warning" });
738
+ return jsx(Icon, { color: "warning", name: "ExclamationCircle" });
739
739
  case "success":
740
- return jsx(Icon, { name: "CheckCircle", color: "success" });
740
+ return jsx(Icon, { color: "success", name: "CheckCircle" });
741
741
  case "info":
742
- return jsx(Icon, { name: "InformationCircle", color: "info" });
742
+ return jsx(Icon, { color: "info", name: "InformationCircle" });
743
743
  default:
744
744
  return jsx(Icon, { name: "InformationCircle" });
745
745
  }
@@ -751,7 +751,7 @@ const Alert = ({ color = "info", title, className, children, primaryAction, seco
751
751
  (_b = (_a = ref.current) === null || _a === void 0 ? void 0 : _a.scrollIntoView) === null || _b === void 0 ? void 0 : _b.call(_a);
752
752
  }
753
753
  }, [ref, autoScroll]);
754
- return (jsxs("div", { className: cvaAlert({ color, className }), "data-testid": dataTestId, ref: ref, role: "alert", children: [jsxs("div", { className: cvaAlertContentContainer(), children: [jsx("div", { className: cvaAlertIconContainer(), children: getIconFromColor() }), jsxs("div", { className: cvaContent(), children: [title ? (jsx(Text, { dataTestId: `${dataTestId}-title`, weight: "bold", children: title })) : null, children ? (jsx(Text, { type: typeof children === "string" || typeof children === "number" ? "p" : "span", weight: !title ? "bold" : "normal", children: children })) : null] }), onClose ? (jsx("div", { className: cvaAlertCloseButtonContainer(), children: jsx(IconButton, { size: "small", variant: "ghost-neutral", onClick: onClose, icon: jsx(Icon, { name: "XMark", size: "small" }), title: "Close Alert", circular: true }) })) : null] }), primaryAction || secondaryAction ? (jsxs("div", { className: cvaAlertActionsContainer(), children: [secondaryAction ? (jsx(Button, { size: "small", variant: "ghost-neutral", onClick: secondaryAction.onClick, loading: secondaryAction.loading, children: secondaryAction.label })) : null, primaryAction ? (jsx(Button, { size: "small", variant: color === "danger" ? "primary-danger" : "primary", onClick: primaryAction.onClick, loading: primaryAction.loading, children: primaryAction.label })) : null] })) : null] }));
754
+ return (jsxs("div", { className: cvaAlert({ color, className }), "data-testid": dataTestId, ref: ref, role: "alert", children: [jsxs("div", { className: cvaAlertContentContainer(), children: [jsx("div", { className: cvaAlertIconContainer(), children: getIconFromColor() }), jsxs("div", { className: cvaContent(), children: [title ? (jsx(Text, { dataTestId: `${dataTestId}-title`, weight: "bold", children: title })) : null, children ? (jsx(Text, { type: typeof children === "string" || typeof children === "number" ? "p" : "span", weight: !title ? "bold" : "normal", children: children })) : null] }), onClose ? (jsx("div", { className: cvaAlertCloseButtonContainer(), children: jsx(IconButton, { circular: true, icon: jsx(Icon, { name: "XMark", size: "small" }), onClick: onClose, size: "small", title: "Close Alert", variant: "ghost-neutral" }) })) : null] }), primaryAction || secondaryAction ? (jsxs("div", { className: cvaAlertActionsContainer(), children: [secondaryAction ? (jsx(Button, { loading: secondaryAction.loading, onClick: secondaryAction.onClick, size: "small", variant: "ghost-neutral", children: secondaryAction.label })) : null, primaryAction ? (jsx(Button, { loading: primaryAction.loading, onClick: primaryAction.onClick, size: "small", variant: color === "danger" ? "primary-danger" : "primary", children: primaryAction.label })) : null] })) : null] }));
755
755
  };
756
756
 
757
757
  const cvaBadge = cvaMerge([
@@ -904,7 +904,7 @@ const ROLE_CARD = "region";
904
904
  */
905
905
  const Card = (_a) => {
906
906
  var { children, onClick, fullHeight = false, onMouseEnter, onMouseLeave, className, dataTestId } = _a, rest = __rest(_a, ["children", "onClick", "fullHeight", "onMouseEnter", "onMouseLeave", "className", "dataTestId"]);
907
- return (jsx("div", Object.assign({ onClick: onClick, className: cvaCard({ fullHeight, clickable: Boolean(onClick), className }), onMouseEnter: onMouseEnter, onMouseLeave: onMouseLeave, "data-testid": dataTestId, role: ROLE_CARD }, rest, { children: children })));
907
+ return (jsx("div", Object.assign({ className: cvaCard({ fullHeight, clickable: Boolean(onClick), className }), "data-testid": dataTestId, onClick: onClick, onMouseEnter: onMouseEnter, onMouseLeave: onMouseLeave, role: ROLE_CARD }, rest, { children: children })));
908
908
  };
909
909
 
910
910
  /**
@@ -915,8 +915,8 @@ const Card = (_a) => {
915
915
  * @param {CardBodyProps} props - The props for the CardBody component
916
916
  * @returns {JSX.Element} CardBody component
917
917
  */
918
- const CardBody = ({ density = "auto", children, dataTestId, className, disableGap }) => {
919
- return (jsx("div", { "data-testid": dataTestId, className: cvaCardBodyDensityContainer({ density, disableGap, className }), children: children }));
918
+ const CardBody = ({ density = "auto", children, dataTestId, className, disableGap, id }) => {
919
+ return (jsx("div", { className: cvaCardBodyDensityContainer({ density, disableGap, className }), "data-testid": dataTestId, id: id, children: children }));
920
920
  };
921
921
 
922
922
  /**
@@ -928,11 +928,11 @@ const CardBody = ({ density = "auto", children, dataTestId, className, disableGa
928
928
  * @returns {JSX.Element} CardFooter component
929
929
  */
930
930
  const CardFooter = ({ dataTestId, className, children, density, hideSeparator = false }) => {
931
- return (jsx("div", { "data-testid": dataTestId, className: cvaCardFooterDensityContainer({
931
+ return (jsx("div", { className: cvaCardFooterDensityContainer({
932
932
  density,
933
933
  border: hideSeparator ? "borderless" : "default",
934
934
  className,
935
- }), children: children }));
935
+ }), "data-testid": dataTestId, children: children }));
936
936
  };
937
937
 
938
938
  const cvaHeading = cvaMerge(["m-0", "leading-normal", "text-black"], {
@@ -990,11 +990,11 @@ const Heading = (_a) => {
990
990
  * @returns {JSX.Element} CardHeader component
991
991
  */
992
992
  const CardHeader = ({ heading, headingVariant = "primary", subHeading, onClose, dataTestId, className, children, accessories, actions, density, hideSeparator = false, }) => {
993
- return (jsx("div", { "data-testid": dataTestId, className: cvaCardHeaderDensityContainer({
993
+ return (jsx("div", { className: cvaCardHeaderDensityContainer({
994
994
  density,
995
995
  border: hideSeparator ? "borderless" : "default",
996
996
  className,
997
- }), children: jsxs("div", { className: cvaCardHeader(), children: [jsxs("div", { children: [jsxs("div", { className: cvaCardHeaderHeadingContainer(), children: [jsx(Heading, { className: "self-center", variant: headingVariant, children: heading }), accessories] }), subHeading ? (jsx(Heading, { subtle: true, variant: "subtitle", children: subHeading })) : null, children] }), jsxs("div", { className: "flex gap-x-2 gap-y-1", children: [actions, onClose ? (jsx(IconButton, { dataTestId: "card-header-close-button", variant: "ghost-neutral", onClick: onClose, icon: jsx(Icon, { name: "XMark", size: "small" }), className: "!h-min" })) : null] })] }) }));
997
+ }), "data-testid": dataTestId, children: jsxs("div", { className: cvaCardHeader(), children: [jsxs("div", { children: [jsxs("div", { className: cvaCardHeaderHeadingContainer(), children: [jsx(Heading, { className: "self-center", variant: headingVariant, children: heading }), accessories] }), subHeading ? (jsx(Heading, { subtle: true, variant: "subtitle", children: subHeading })) : null, children] }), jsxs("div", { className: "flex gap-x-2 gap-y-1", children: [actions, onClose ? (jsx(IconButton, { className: "!h-min", dataTestId: "card-header-close-button", icon: jsx(Icon, { name: "XMark", size: "small" }), onClick: onClose, variant: "ghost-neutral" })) : null] })] }) }));
998
998
  };
999
999
 
1000
1000
  const cvaCollapse = cvaMerge([
@@ -1038,7 +1038,7 @@ const Collapse = ({ id, initialExpanded = false, onToggle, label, children, clas
1038
1038
  }
1039
1039
  setExpanded(!expanded);
1040
1040
  }, [expanded, onToggle]);
1041
- return (jsxs("div", { className: cvaCollapse({ className }), "data-testid": dataTestId, children: [jsxs("div", { className: cvaCollapseHeader({ expanded, className: headerClassName }), role: "button", "aria-expanded": expanded, "aria-controls": id, onClick: handleClick, children: [jsxs("div", { className: cvaCollapseLabelContainer(), children: [jsx(Text, { type: "span", weight: "bold", children: label }), jsx(IconButton, { icon: jsx(Icon, { name: "ChevronUpDown", size: "small" }), size: "medium", variant: "ghost-neutral" })] }), headerAddon ? headerAddon : null] }), jsx(Collapsible, { expanded: expanded, id: id, children: children })] }));
1041
+ return (jsxs("div", { className: cvaCollapse({ className }), "data-testid": dataTestId, children: [jsxs("div", { "aria-controls": id, "aria-expanded": expanded, className: cvaCollapseHeader({ expanded, className: headerClassName }), onClick: handleClick, role: "button", children: [jsxs("div", { className: cvaCollapseLabelContainer(), children: [jsx(Text, { type: "span", weight: "bold", children: label }), jsx(IconButton, { icon: jsx(Icon, { name: "ChevronUpDown", size: "small" }), size: "medium", variant: "ghost-neutral" })] }), headerAddon ? headerAddon : null] }), jsx(Collapsible, { expanded: expanded, id: id, children: children })] }));
1042
1042
  };
1043
1043
  const Collapsible = ({ children, expanded, id }) => {
1044
1044
  const [ref, { height }] = useMeasure();
@@ -1085,7 +1085,7 @@ const CopyableText = ({ text, alternativeText, dataTestId, className }) => {
1085
1085
  copyToClipboard(value);
1086
1086
  setAnimating(true);
1087
1087
  };
1088
- return (jsx("span", { className: cvaCopyableText({ animating, className }), "data-testid": dataTestId, onClick: handleOnClick, onAnimationEnd: () => setAnimating(false), title: value, children: text }));
1088
+ return (jsx("span", { className: cvaCopyableText({ animating, className }), "data-testid": dataTestId, onAnimationEnd: () => setAnimating(false), onClick: handleOnClick, title: value, children: text }));
1089
1089
  };
1090
1090
 
1091
1091
  const localeLookup = {
@@ -1128,7 +1128,7 @@ const useLocale = (language) => {
1128
1128
  */
1129
1129
  const DayPicker = ({ onDaySelect, disabledDays, selectedDays, language, className, dataTestId, max, }) => {
1130
1130
  const locale = useLocale(language);
1131
- return (jsx(DayPicker$1, { onDayClick: onDaySelect, selected: selectedDays, locale: locale, disabled: disabledDays, className: `custom-day-picker ${className !== null && className !== void 0 ? className : ""}`, max: max, footer: jsx("div", { "data-testid": dataTestId }) }));
1131
+ return (jsx(DayPicker$1, { className: `custom-day-picker ${className !== null && className !== void 0 ? className : ""}`, disabled: disabledDays, footer: jsx("div", { "data-testid": dataTestId }), locale: locale, max: max, onDayClick: onDaySelect, selected: selectedDays }));
1132
1132
  };
1133
1133
 
1134
1134
  /**
@@ -1149,7 +1149,7 @@ const DayRangePicker = ({ onRangeSelect, selectedDays, disabledDays, dataTestId,
1149
1149
  onRangeSelect({ from, to });
1150
1150
  }
1151
1151
  }, [onRangeSelect]);
1152
- return (jsx(DayPicker$1, { mode: "range", onSelect: onSelect, selected: selectedDays, defaultMonth: selectedDays ? selectedDays.from : undefined, locale: locale, disabled: disabledDays, className: `custom-day-picker range-picker ${className !== null && className !== void 0 ? className : ""}`, max: max, footer: jsx("div", { "data-testid": dataTestId }) }));
1152
+ return (jsx(DayPicker$1, { className: `custom-day-picker range-picker ${className !== null && className !== void 0 ? className : ""}`, defaultMonth: selectedDays ? selectedDays.from : undefined, disabled: disabledDays, footer: jsx("div", { "data-testid": dataTestId }), locale: locale, max: max, mode: "range", onSelect: onSelect, selected: selectedDays }));
1153
1153
  };
1154
1154
 
1155
1155
  const cvaDrawerOverlay = cvaMerge([
@@ -1197,7 +1197,7 @@ const Drawer = ({ open, onClose = () => { }, children, disableOverlay = false, p
1197
1197
  window.removeEventListener("keyup", onKeyPress);
1198
1198
  };
1199
1199
  }, [open, onClose]);
1200
- return (jsx(FloatingFocusManager, { context: context, children: open ? (jsxs("div", { id: "drawer", children: [!disableOverlay && (jsx("div", { className: cvaDrawerOverlay(), "aria-hidden": open, onClick: onClose, id: "drawer__overlay" })), jsx(Card, { "aria-hidden": open, "data-testid": dataTestId, id: "drawer__card", className: cvaDrawerCard({ position, className }), children: children })] })) : (
1200
+ return (jsx(FloatingFocusManager, { context: context, children: open ? (jsxs("div", { id: "drawer", children: [!disableOverlay && (jsx("div", { "aria-hidden": open, className: cvaDrawerOverlay(), id: "drawer__overlay", onClick: onClose })), jsx(Card, { "aria-hidden": open, className: cvaDrawerCard({ position, className }), "data-testid": dataTestId, id: "drawer__card", children: children })] })) : (
1201
1201
  // eslint-disable-next-line react/jsx-no-useless-fragment
1202
1202
  jsx(Fragment, {})) }));
1203
1203
  };
@@ -1233,7 +1233,7 @@ const SkeletonLines = memo(({ margin = "10px 0", lines = 1, height, width = "100
1233
1233
  return height;
1234
1234
  };
1235
1235
  for (let i = 0; i < lines; i++) {
1236
- skeletonLines.push(jsx("div", { "data-testid": dataTestId !== null && dataTestId !== void 0 ? dataTestId : "skeleton-lines", "data-type": "loading-skeleton-line", className: cvaSkeletonLine({ className }), style: { height: getHeight(i), width: getWidth(i), margin: lines > 1 ? margin : "" }, children: lines > 1 && jsx(Fragment, { children: "\u00A0" }) }, i));
1236
+ skeletonLines.push(jsx("div", { className: cvaSkeletonLine({ className }), "data-testid": dataTestId !== null && dataTestId !== void 0 ? dataTestId : "skeleton-lines", "data-type": "loading-skeleton-line", style: { height: getHeight(i), width: getWidth(i), margin: lines > 1 ? margin : "" }, children: lines > 1 && jsx(Fragment, { children: "\u00A0" }) }, i));
1237
1237
  }
1238
1238
  // eslint-disable-next-line react/jsx-no-useless-fragment
1239
1239
  return jsx(Fragment, { children: skeletonLines });
@@ -1303,7 +1303,7 @@ const EmptyState = ({ title, description, altText, image, customImageSrc, action
1303
1303
  lazyLoadImage();
1304
1304
  }
1305
1305
  }, [customImageSrc, image]);
1306
- return (jsx("div", { className: cvaContainerStyles({ className }), "data-testid": dataTestId !== null && dataTestId !== void 0 ? dataTestId : "empty-state", children: loading ? (jsxs(Fragment, { children: [jsx(Spinner, { dataTestId: "spinner", size: "large", centering: "centered" }), jsx(SkeletonLines, { dataTestId: "skeleton-lines", width: 50 })] })) : (jsxs(Fragment, { children: [jsx("img", { className: cvaImgStyles(), width: 200, height: 200, src: customImageSrc ? customImageSrc : imageSource, alt: altText }), title ? jsx(Heading, { variant: "secondary", children: title }) : null, description ? jsx(Text, { align: "center", children: description }) : null, action] })) }));
1306
+ return (jsx("div", { className: cvaContainerStyles({ className }), "data-testid": dataTestId !== null && dataTestId !== void 0 ? dataTestId : "empty-state", children: loading ? (jsxs(Fragment, { children: [jsx(Spinner, { centering: "centered", dataTestId: "spinner", size: "large" }), jsx(SkeletonLines, { dataTestId: "skeleton-lines", width: 50 })] })) : (jsxs(Fragment, { children: [jsx("img", { alt: altText, className: cvaImgStyles(), height: 200, src: customImageSrc ? customImageSrc : imageSource, width: 200 }), title ? jsx(Heading, { variant: "secondary", children: title }) : null, description ? jsx(Text, { align: "center", children: description }) : null, action] })) }));
1307
1307
  };
1308
1308
 
1309
1309
  const cvaExternalLink = cvaMerge(["underline", "text-primary-600", "hover:text-primary-500"]);
@@ -1315,7 +1315,7 @@ const cvaExternalLink = cvaMerge(["underline", "text-primary-600", "hover:text-p
1315
1315
  * @returns {JSX.Element} External Link component
1316
1316
  */
1317
1317
  const ExternalLink = ({ rel = "noreferrer", target = "_blank", href, className, children = href, title = href, dataTestId, onClick, }) => {
1318
- return (jsx("a", { onClick: onClick, "data-testid": dataTestId, className: cvaExternalLink({ className }), title: title, href: href, rel: rel, target: target, children: children }));
1318
+ return (jsx("a", { className: cvaExternalLink({ className }), "data-testid": dataTestId, href: href, onClick: onClick, rel: rel, target: target, title: title, children: children }));
1319
1319
  };
1320
1320
 
1321
1321
  /**
@@ -1420,7 +1420,7 @@ const PopoverContent = React__default.forwardRef(function PopoverContent(_a, pro
1420
1420
  var { className, dataTestId, children, portalId } = _a, props = __rest(_a, ["className", "dataTestId", "children", "portalId"]);
1421
1421
  const _c = usePopoverContext(), { context: floatingContext, customProps } = _c, context = __rest(_c, ["context", "customProps"]);
1422
1422
  const ref = useMergeRefs([context.refs.setFloating, propRef]);
1423
- return (jsx(FloatingPortal, { id: portalId !== null && portalId !== void 0 ? portalId : "tu-floating-ui", children: context.isOpen ? (jsx(FloatingFocusManager, { guards: false, context: floatingContext, modal: context.isModal, closeOnFocusOut: false, order: ["reference", "content"], returnFocus: false, children: jsx("div", Object.assign({ ref: ref, className: cvaPopoverContainer({ className: className !== null && className !== void 0 ? className : customProps.className }), "data-testid": (_b = dataTestId !== null && dataTestId !== void 0 ? dataTestId : customProps.dataTestId) !== null && _b !== void 0 ? _b : "popover-content", style: Object.assign({ position: context.strategy, top: context.y, left: context.x, width: "max-content" }, props.style), "aria-labelledby": context.labelId, "aria-describedby": context.descriptionId }, context.getFloatingProps(props), { children: typeof children === "function" ? children(() => context.setIsOpen(false)) : children })) })) : null }));
1423
+ return (jsx(FloatingPortal, { id: portalId !== null && portalId !== void 0 ? portalId : "tu-floating-ui", children: context.isOpen ? (jsx(FloatingFocusManager, { closeOnFocusOut: false, context: floatingContext, guards: false, modal: context.isModal, order: ["reference", "content"], returnFocus: false, children: jsx("div", Object.assign({ "aria-describedby": context.descriptionId, "aria-labelledby": context.labelId, className: cvaPopoverContainer({ className: className !== null && className !== void 0 ? className : customProps.className }), "data-testid": (_b = dataTestId !== null && dataTestId !== void 0 ? dataTestId : customProps.dataTestId) !== null && _b !== void 0 ? _b : "popover-content", ref: ref, style: Object.assign({ position: context.strategy, top: context.y, left: context.x, width: "max-content" }, props.style) }, context.getFloatingProps(props), { children: typeof children === "function" ? children(() => context.setIsOpen(false)) : children })) })) : null }));
1424
1424
  });
1425
1425
 
1426
1426
  /**
@@ -1430,7 +1430,7 @@ const PopoverContent = React__default.forwardRef(function PopoverContent(_a, pro
1430
1430
  * @returns {JSX.Element} PopoverTitle component
1431
1431
  */
1432
1432
  const PopoverTitle = ({ children, action, divider = false, className, dataTestId }) => {
1433
- return (jsxs("div", { className: cvaPopoverTitleContainer({ divider, className }), "data-testid": dataTestId, children: [jsx(Text, { className: cvaPopoverTitleText(), type: "div", subtle: true, size: "small", weight: "bold", uppercase: true, children: children }), action] }));
1433
+ return (jsxs("div", { className: cvaPopoverTitleContainer({ divider, className }), "data-testid": dataTestId, children: [jsx(Text, { className: cvaPopoverTitleText(), size: "small", subtle: true, type: "div", uppercase: true, weight: "bold", children: children }), action] }));
1434
1434
  };
1435
1435
 
1436
1436
  const PopoverTrigger = forwardRef(function PopoverTrigger(_a, propRef) {
@@ -1443,7 +1443,7 @@ const PopoverTrigger = forwardRef(function PopoverTrigger(_a, propRef) {
1443
1443
  return cloneElement(children, context.getReferenceProps(Object.assign(Object.assign(Object.assign({ ref }, props), children.props), { "data-state": context.isOpen ? "open" : "closed" })));
1444
1444
  }
1445
1445
  else {
1446
- return (jsx(Button, Object.assign({ ref: ref, type: "button", "data-state": context.isOpen ? "open" : "closed" }, context.getReferenceProps(props), { children: children })));
1446
+ return (jsx(Button, Object.assign({ "data-state": context.isOpen ? "open" : "closed", ref: ref, type: "button" }, context.getReferenceProps(props), { children: children })));
1447
1447
  }
1448
1448
  });
1449
1449
 
@@ -1506,7 +1506,7 @@ const cvaTooltipPopoverContent = cvaMerge(["max-w-sm", "rounded", "p-2"], {
1506
1506
  */
1507
1507
  const FloatingArrowContainer = ({ arrowRef, mode = "dark", }) => {
1508
1508
  const { context: floatingContext } = usePopoverContext();
1509
- return (jsx(FloatingArrow, { ref: arrowRef, context: floatingContext, className: cvaTooltipPopoverTail({ mode, placement: floatingContext.placement }) }));
1509
+ return (jsx(FloatingArrow, { className: cvaTooltipPopoverTail({ mode, placement: floatingContext.placement }), context: floatingContext, ref: arrowRef }));
1510
1510
  };
1511
1511
  /**
1512
1512
  * Tooltips display additional information upon hover. The information included should be contextual, helpful, and nonessential while providing that extra ability to communicate and give clarity to a user.
@@ -1535,7 +1535,7 @@ const Tooltip = ({ children, dataTestId = "tool-tip", disabled, className, label
1535
1535
  if (disabled) {
1536
1536
  return wrappedChildren;
1537
1537
  }
1538
- return (jsxs(Popover, { className: cvaTooltipPopover(), placement: placement === "auto" ? "bottom" : placement, activation: { hover: true }, dataTestId: dataTestId, children: [jsx(PopoverTrigger, { className: cvaTooltipIcon({ color: mode }), ref: refs.setReference, onMouseEnter: () => setIsOpen(true), onMouseLeave: () => setIsOpen(false), "data-testid": dataTestId ? `${dataTestId}-trigger` : null, children: children === undefined ? (jsx("div", { children: jsx(Icon, Object.assign({ name: "QuestionMarkCircle", size: "small", dataTestId: dataTestId ? `${dataTestId}-icon` : undefined }, iconProps)) })) : (wrappedChildren) }), isMounted ? (jsx("div", { ref: refs.setFloating, style: floatingStyles, children: jsx(PopoverContent, { children: jsxs("div", { "aria-label": typeof label === "string" ? label : undefined, className: cvaTooltipPopoverContent({ color: mode }), "data-testid": `${dataTestId}-content`, children: [jsx(Text, { inverted: mode === "dark", type: contentTextType, children: label }), placement !== "auto" && jsx(FloatingArrowContainer, { arrowRef: arrowRef, mode: mode })] }) }) })) : null] }));
1538
+ return (jsxs(Popover, { activation: { hover: true }, className: cvaTooltipPopover(), dataTestId: dataTestId, placement: placement === "auto" ? "bottom" : placement, children: [jsx(PopoverTrigger, { className: cvaTooltipIcon({ color: mode }), "data-testid": dataTestId ? `${dataTestId}-trigger` : null, onMouseEnter: () => setIsOpen(true), onMouseLeave: () => setIsOpen(false), ref: refs.setReference, children: children === undefined ? (jsx("div", { children: jsx(Icon, Object.assign({ dataTestId: dataTestId ? `${dataTestId}-icon` : undefined, name: "QuestionMarkCircle", size: "small" }, iconProps)) })) : (wrappedChildren) }), isMounted ? (jsx("div", { ref: refs.setFloating, style: floatingStyles, children: jsx(PopoverContent, { children: jsxs("div", { "aria-label": typeof label === "string" ? label : undefined, className: cvaTooltipPopoverContent({ color: mode }), "data-testid": `${dataTestId}-content`, children: [jsx(Text, { inverted: mode === "dark", type: contentTextType, children: label }), placement !== "auto" && jsx(FloatingArrowContainer, { arrowRef: arrowRef, mode: mode })] }) }) })) : null] }));
1539
1539
  };
1540
1540
 
1541
1541
  const cvaIndicator = cvaMerge(["flex", "items-center"]);
@@ -1638,7 +1638,7 @@ const cvaIndicatorIconBackground = cvaMerge(["rounded-full", "items-center", "ju
1638
1638
  */
1639
1639
  const Indicator = (_a) => {
1640
1640
  var { dataTestId, icon, label, color = "unknown", withBackground = true, withLabel = true, ping = false, className } = _a, rest = __rest(_a, ["dataTestId", "icon", "label", "color", "withBackground", "withLabel", "ping", "className"]);
1641
- return (jsx(Tooltip, { className: className, disabled: withLabel, label: label, placement: "bottom", children: jsxs("div", Object.assign({ className: cvaIndicator(), "data-testid": dataTestId, "aria-label": label }, rest, { children: [jsxs("div", { className: cvaIndicatorIconBackground({ color, background: withBackground ? "visible" : "hidden" }), "data-testid": dataTestId ? `${dataTestId}-background` : "indicator-background", children: [ping ? jsx("div", { className: cvaIndicatorPing({ color }), "data-testid": dataTestId ? `${dataTestId}-ping` : "indicator-ping" }) : null, icon] }), label !== undefined && withLabel ? jsx("div", { className: cvaIndicatorLabel(), "data-testid": dataTestId ? `${dataTestId}-label` : "indicator-label", children: label }) : null] })) }));
1641
+ return (jsx(Tooltip, { className: className, disabled: withLabel, label: label, placement: "bottom", children: jsxs("div", Object.assign({ "aria-label": label, className: cvaIndicator(), "data-testid": dataTestId }, rest, { children: [jsxs("div", { className: cvaIndicatorIconBackground({ color, background: withBackground ? "visible" : "hidden" }), "data-testid": dataTestId ? `${dataTestId}-background` : "indicator-background", children: [ping ? jsx("div", { className: cvaIndicatorPing({ color }), "data-testid": dataTestId ? `${dataTestId}-ping` : "indicator-ping" }) : null, icon] }), label !== undefined && withLabel ? jsx("div", { className: cvaIndicatorLabel(), "data-testid": dataTestId ? `${dataTestId}-label` : "indicator-label", children: label }) : null] })) }));
1642
1642
  };
1643
1643
 
1644
1644
  const cvaMenuItem = cvaMerge([
@@ -1716,13 +1716,13 @@ const cvaMenuItemPrefix = cvaMerge(["self-center", "flex-grow-0", "text-slate-40
1716
1716
  */
1717
1717
  const MenuItem = ({ className, dataTestId, label, size, children, selected, focused, prefix, suffix, disabled, onClick, stopPropagation = true, id, }) => {
1718
1718
  const containerProps = useContainerProps({ className, dataTestId: dataTestId || "menu-item" });
1719
- return (jsxs("div", Object.assign({}, containerProps, { id: id, className: cvaMenuItem({
1719
+ return (jsxs("div", Object.assign({}, containerProps, { className: cvaMenuItem({
1720
1720
  selected,
1721
1721
  focused,
1722
1722
  disabled,
1723
1723
  size,
1724
1724
  className: containerProps.className,
1725
- }), onClick: e => {
1725
+ }), id: id, onClick: e => {
1726
1726
  stopPropagation && e.stopPropagation();
1727
1727
  onClick && onClick(e);
1728
1728
  }, tabIndex: 0, children: [prefix ? jsx("div", { className: cvaMenuItemPrefix({ selected }), "data-testid": dataTestId ? `${dataTestId}-prefix` : null, children: prefix }) : null, children && typeof children !== "string" ? (children) : (jsx("div", { className: cvaMenuItemLabel(), "data-testid": dataTestId ? `${dataTestId}-label` : null, children: children !== null && children !== void 0 ? children : label })), suffix ? jsx("div", { className: cvaMenuItemSuffix({ selected }), "data-testid": dataTestId ? `${dataTestId}-suffix` : null, children: suffix }) : null] })));
@@ -1753,7 +1753,7 @@ const MenuList = (_a) => {
1753
1753
  var { dataTestId, className, children, withStickyHeader = false, showDivider = false } = _a, args = __rest(_a, ["dataTestId", "className", "children", "withStickyHeader", "showDivider"]);
1754
1754
  const childrenArr = Children.toArray(children);
1755
1755
  const isLastItem = (index) => index === childrenArr.length - 1;
1756
- return (jsx("div", { "data-testid": dataTestId, className: cvaMenuList({ stickyHeader: withStickyHeader, className }), tabIndex: 0, role: "list", onClick: args.onClick, children: Children.map(childrenArr, (menuItem, index) => (jsxs(Fragment, { children: [menuItem, showDivider && !isLastItem(index) ? jsx("hr", { className: cvaMenuListDivider() }) : null] }))) }));
1756
+ return (jsx("div", { className: cvaMenuList({ stickyHeader: withStickyHeader, className }), "data-testid": dataTestId, onClick: args.onClick, role: "list", tabIndex: 0, children: Children.map(childrenArr, (menuItem, index) => (jsxs(Fragment, { children: [menuItem, showDivider && !isLastItem(index) ? jsx("hr", { className: cvaMenuListDivider() }) : null] }))) }));
1757
1757
  };
1758
1758
 
1759
1759
  const cvaMoreMenu = cvaMerge(["p-4"]);
@@ -1774,7 +1774,7 @@ const MoreMenu = ({ className, dataTestId, popoverProps, iconProps = {
1774
1774
  variant: "secondary",
1775
1775
  }, customButton, customPortalId, children, }) => {
1776
1776
  const actionMenuRef = useRef(null);
1777
- return (jsx("div", { ref: actionMenuRef, className: cvaMoreMenu({ className }), "data-testid": dataTestId, children: jsxs(Popover, Object.assign({}, popoverProps, { children: [jsx(PopoverTrigger, { children: customButton !== null && customButton !== void 0 ? customButton : jsx(IconButton, Object.assign({}, iconButtonProps, { icon: jsx(Icon, Object.assign({ name: "EllipsisHorizontal" }, iconProps)) })) }), jsx(PopoverContent, { portalId: customPortalId, children: close => (typeof children === "function" ? children(close) : children) })] })) }));
1777
+ return (jsx("div", { className: cvaMoreMenu({ className }), "data-testid": dataTestId, ref: actionMenuRef, children: jsxs(Popover, Object.assign({}, popoverProps, { children: [jsx(PopoverTrigger, { children: customButton !== null && customButton !== void 0 ? customButton : jsx(IconButton, Object.assign({}, iconButtonProps, { icon: jsx(Icon, Object.assign({ name: "EllipsisHorizontal" }, iconProps)) })) }), jsx(PopoverContent, { portalId: customPortalId, children: close => (typeof children === "function" ? children(close) : children) })] })) }));
1778
1778
  };
1779
1779
 
1780
1780
  const cvaModalContainer = cvaMerge(["h-full", "w-full", "flex", "items-center"]);
@@ -1819,12 +1819,12 @@ const cvaModalBackdrop = cvaMerge([
1819
1819
  */
1820
1820
  const ModalBackdrop = ({ children, isVisible, onClick, noShadow }) => {
1821
1821
  const ref = React.useRef(null);
1822
- return (jsx("div", { ref: ref, className: cvaModalBackdrop({ show: isVisible, noShadow }), onMouseDown: e => {
1822
+ return (jsx("div", { className: cvaModalBackdrop({ show: isVisible, noShadow }), onMouseDown: e => {
1823
1823
  // only react on click on backdrop - accessing first child to get around styled element element
1824
1824
  if (ref.current !== null && e.target === ref.current.children[0]) {
1825
1825
  onClick();
1826
1826
  }
1827
- }, children: children }));
1827
+ }, ref: ref, children: children }));
1828
1828
  };
1829
1829
 
1830
1830
  /**
@@ -1836,7 +1836,7 @@ const ModalBackdrop = ({ children, isVisible, onClick, noShadow }) => {
1836
1836
  const Modal = React.forwardRef(({ isOpen, children, dataTestId, className, role = "", noBackdropShadow = false, onDismissClick = () => {
1837
1837
  return;
1838
1838
  }, }, ref) => {
1839
- return (jsx(ModalBackdrop, { isVisible: isOpen, onClick: onDismissClick, noShadow: noBackdropShadow, children: isOpen ? (jsx("div", { className: cvaModalContainer(), ref: ref, role: role, children: jsx(Card, { dataTestId: dataTestId, className: cvaModalCard({ className }), children: children }) })) : null }));
1839
+ return (jsx(ModalBackdrop, { isVisible: isOpen, noShadow: noBackdropShadow, onClick: onDismissClick, children: isOpen ? (jsx("div", { className: cvaModalContainer(), ref: ref, role: role, children: jsx(Card, { className: cvaModalCard({ className }), dataTestId: dataTestId, children: children }) })) : null }));
1840
1840
  });
1841
1841
  Modal.displayName = "Modal";
1842
1842
 
@@ -1862,7 +1862,7 @@ const useModal = ({ closeOnOutsideClick } = {}) => {
1862
1862
  }
1863
1863
  },
1864
1864
  });
1865
- const PortalWrapper = (props) => (jsx(Portal, { children: jsx(Modal, Object.assign({ ref: modalRef, isOpen: isOpen }, props)) }));
1865
+ const PortalWrapper = (props) => (jsx(Portal, { children: jsx(Modal, Object.assign({ isOpen: isOpen, ref: modalRef }, props)) }));
1866
1866
  PortalWrapper.displayName = "Modal";
1867
1867
  const WrappedModal = useCallback(PortalWrapper, [Portal, isOpen]);
1868
1868
  return {
@@ -1926,7 +1926,7 @@ const PageHeader = ({ className, dataTestId, action, showLoading, description, l
1926
1926
  return (jsxs("div", { className: cvaPageHeaderContainer({
1927
1927
  className,
1928
1928
  withBorder: !tabsList,
1929
- }), "data-testid": dataTestId, children: [jsxs("div", { className: cvaPageHeader(), children: [jsxs("div", { className: cvaPageHeaderHeadingAccessoriesContainer(), "data-testid": dataTestId ? `${dataTestId}-heading-container` : undefined, children: [jsxs("div", { className: cvaPageHeaderHeadingContainer(), children: [backTo ? (jsx(IconButton, { to: backTo, renderAs: Link, variant: "ghost-neutral", size: "small", icon: jsx(Icon, { name: "ArrowLeft" }) })) : undefined, jsx("h1", { className: cvaPageHeaderHeading(), "data-testid": dataTestId ? `${dataTestId}-heading` : undefined, children: title }), description && !showLoading ? (jsxs("div", { className: cvaPageHeaderDescriptionAndLinkContainer(), children: [jsx(Tooltip, { label: description, dataTestId: dataTestId ? `${dataTestId}-tooltip` : undefined, iconProps: { name: "QuestionMarkCircle" }, placement: "bottom" }), link ? (jsxs(Link, { to: link, "data-testid": "tooltip-link", target: "_blank", className: cvaPageHeaderLink(), children: [linkText, jsx(Icon, { name: "ArrowTopRightOnSquare", size: "small" })] })) : undefined] })) : undefined] }), tag && !showLoading ? (jsx(Tag, { dataTestId: dataTestId ? `${dataTestId}-tag` : undefined, color: tagColor, children: tag })) : undefined, showLoading ? (jsx(Spinner, { dataTestId: dataTestId ? `${dataTestId}-spinner` : undefined, centering: "vertically" })) : null, action] }), children ? jsx("div", { className: cvaPageHeaderChildContainer(), children: children }) : null] }), tabsList] }));
1929
+ }), "data-testid": dataTestId, children: [jsxs("div", { className: cvaPageHeader(), children: [jsxs("div", { className: cvaPageHeaderHeadingAccessoriesContainer(), "data-testid": dataTestId ? `${dataTestId}-heading-container` : undefined, children: [jsxs("div", { className: cvaPageHeaderHeadingContainer(), children: [backTo ? (jsx(IconButton, { icon: jsx(Icon, { name: "ArrowLeft" }), renderAs: Link, size: "small", to: backTo, variant: "ghost-neutral" })) : undefined, jsx("h1", { className: cvaPageHeaderHeading(), "data-testid": dataTestId ? `${dataTestId}-heading` : undefined, children: title }), description && !showLoading ? (jsxs("div", { className: cvaPageHeaderDescriptionAndLinkContainer(), children: [jsx(Tooltip, { dataTestId: dataTestId ? `${dataTestId}-tooltip` : undefined, iconProps: { name: "QuestionMarkCircle" }, label: description, placement: "bottom" }), link ? (jsxs(Link, { className: cvaPageHeaderLink(), "data-testid": "tooltip-link", target: "_blank", to: link, children: [linkText, jsx(Icon, { name: "ArrowTopRightOnSquare", size: "small" })] })) : undefined] })) : undefined] }), tag && !showLoading ? (jsx(Tag, { color: tagColor, dataTestId: dataTestId ? `${dataTestId}-tag` : undefined, children: tag })) : undefined, showLoading ? (jsx(Spinner, { centering: "vertically", dataTestId: dataTestId ? `${dataTestId}-spinner` : undefined })) : null, action] }), children ? jsx("div", { className: cvaPageHeaderChildContainer(), children: children }) : null] }), tabsList] }));
1930
1930
  };
1931
1931
 
1932
1932
  const cvaPagination = cvaMerge(["flex", "items-center", "gap-1"]);
@@ -1975,9 +1975,9 @@ const Pagination = ({ previousPage, nextPage, canPreviousPage, canNextPage, page
1975
1975
  if (loading) {
1976
1976
  return (jsx("div", { className: cvaPagination({ className }), children: jsx(SkeletonLines, { height: 16, width: 150 }) }));
1977
1977
  }
1978
- return (jsxs("div", { "data-testid": dataTestId, className: cvaPagination({ className }), children: [jsx(IconButton, { onClick: () => handlePageChange("prev"), disabled: cursorBase ? !canPreviousPage || false : page !== undefined && page <= 0, "data-testid": "prev-page", icon: jsx(Icon, { name: "ChevronLeft", size: "small" }), size: "small", variant: "ghost-neutral" }), !cursorBase && (jsxs(Fragment, { children: [jsx("div", { className: cvaPaginationText(), "data-testid": "current-page", children: currentPage }), jsx("div", { className: cvaPaginationText(), "data-testid": "page-count", children: pageCount !== null && pageCount !== undefined && getTranslatedCount ? getTranslatedCount(pageCount) : null })] })), jsx(IconButton, { onClick: () => handlePageChange("next"), disabled: cursorBase
1978
+ return (jsxs("div", { className: cvaPagination({ className }), "data-testid": dataTestId, children: [jsx(IconButton, { "data-testid": "prev-page", disabled: cursorBase ? !canPreviousPage || false : page !== undefined && page <= 0, icon: jsx(Icon, { name: "ChevronLeft", size: "small" }), onClick: () => handlePageChange("prev"), size: "small", variant: "ghost-neutral" }), !cursorBase && (jsxs(Fragment, { children: [jsx("div", { className: cvaPaginationText(), "data-testid": "current-page", children: currentPage }), jsx("div", { className: cvaPaginationText(), "data-testid": "page-count", children: pageCount !== null && pageCount !== undefined && getTranslatedCount ? getTranslatedCount(pageCount) : null })] })), jsx(IconButton, { "data-testid": "next-page", disabled: cursorBase
1979
1979
  ? !canNextPage || false
1980
- : page !== undefined && pageCount !== undefined && pageCount !== null && page >= pageCount - 1, "data-testid": "next-page", icon: jsx(Icon, { name: "ChevronRight", size: "small" }), size: "small", variant: "ghost-neutral" })] }));
1980
+ : page !== undefined && pageCount !== undefined && pageCount !== null && page >= pageCount - 1, icon: jsx(Icon, { name: "ChevronRight", size: "small" }), onClick: () => handlePageChange("next"), size: "small", variant: "ghost-neutral" })] }));
1981
1981
  };
1982
1982
 
1983
1983
  function useConfirmExit(confirmExit, when = true) {
@@ -2061,7 +2061,7 @@ const cvaSpacer = cvaMerge([], {
2061
2061
  * @returns {JSX.Element} Spacer component
2062
2062
  */
2063
2063
  const Spacer = ({ size = "medium", border = false, dataTestId, className }) => {
2064
- return jsx("div", { "data-testid": dataTestId, className: cvaSpacer({ className, border, size }) });
2064
+ return jsx("div", { className: cvaSpacer({ className, border, size }), "data-testid": dataTestId });
2065
2065
  };
2066
2066
 
2067
2067
  /**
@@ -2071,7 +2071,7 @@ const Spacer = ({ size = "medium", border = false, dataTestId, className }) => {
2071
2071
  * @returns {JSX.Element} SectionHeader component
2072
2072
  */
2073
2073
  const SectionHeader = ({ title, subtitle, dataTestId, addons }) => {
2074
- return (jsxs("div", { className: "flex flex-col", children: [jsx(HelmetProvider, { children: jsx(Helmet, { title: title }) }), jsxs("div", { className: "mb-2 flex flex-row gap-2", children: [jsxs("div", { className: "flex grow flex-col gap-2", children: [jsx(Heading, { variant: "secondary", dataTestId: dataTestId, children: title }), subtitle ? jsx(Heading, { variant: "subtitle", subtle: true, children: subtitle }) : null] }), addons ? jsx("div", { className: "flex gap-2", children: addons }) : null] }), jsx(Spacer, { size: "small" })] }));
2074
+ return (jsxs("div", { className: "flex flex-col", children: [jsx(HelmetProvider, { children: jsx(Helmet, { title: title }) }), jsxs("div", { className: "mb-2 flex flex-row gap-2", children: [jsxs("div", { className: "flex grow flex-col gap-2", children: [jsx(Heading, { dataTestId: dataTestId, variant: "secondary", children: title }), subtitle ? jsx(Heading, { subtle: true, variant: "subtitle", children: subtitle }) : null] }), addons ? jsx("div", { className: "flex gap-2", children: addons }) : null] }), jsx(Spacer, { size: "small" })] }));
2075
2075
  };
2076
2076
 
2077
2077
  const cvaSidebar = cvaMerge(["apply", "grid", "grid-cols-fr-min", "items-center"]);
@@ -2166,7 +2166,7 @@ const Sidebar = ({ childContainerClassName, children, breakpoint = "lg", classNa
2166
2166
  }
2167
2167
  return "visible";
2168
2168
  };
2169
- return (jsxs("div", { className: cvaSidebar({ className }), "data-testid": dataTestId, children: [jsx("div", { ref: overflowContainerRef, className: cvaSidebarChildContainer({ breakpoint, className: childContainerClassName }), "data-testid": dataTestId ? `${dataTestId}-child-container` : null, children: React__default.Children.map(children, child => {
2169
+ return (jsxs("div", { className: cvaSidebar({ className }), "data-testid": dataTestId, children: [jsx("div", { className: cvaSidebarChildContainer({ breakpoint, className: childContainerClassName }), "data-testid": dataTestId ? `${dataTestId}-child-container` : null, ref: overflowContainerRef, children: React__default.Children.map(children, child => {
2170
2170
  return React__default.cloneElement(child, {
2171
2171
  className: `${child.props.className} ${itemVisibilityClassName(child.props.id)}`,
2172
2172
  });
@@ -2249,7 +2249,7 @@ const Tab = (_a) => {
2249
2249
  */
2250
2250
  const TabContent = (_a) => {
2251
2251
  var { className, dataTestId, children } = _a, rest = __rest(_a, ["className", "dataTestId", "children"]);
2252
- return (jsx(Content, Object.assign({ "data-testid": dataTestId ? `${dataTestId}-content` : undefined, className: cvaTabContent({ className }) }, rest, { children: children })));
2252
+ return (jsx(Content, Object.assign({ className: cvaTabContent({ className }), "data-testid": dataTestId ? `${dataTestId}-content` : undefined }, rest, { children: children })));
2253
2253
  };
2254
2254
 
2255
2255
  /**
@@ -2257,7 +2257,7 @@ const TabContent = (_a) => {
2257
2257
  */
2258
2258
  const TabList = (_a) => {
2259
2259
  var { className, dataTestId, children } = _a, rest = __rest(_a, ["className", "dataTestId", "children"]);
2260
- return (jsx(List, Object.assign({ "data-testid": dataTestId, className: cvaTabList({ className }) }, rest, { children: children })));
2260
+ return (jsx(List, Object.assign({ className: cvaTabList({ className }), "data-testid": dataTestId }, rest, { children: children })));
2261
2261
  };
2262
2262
 
2263
2263
  /**
@@ -2416,7 +2416,7 @@ const ValueBar = ({ value, min = 0, max = 100, unit, size = "small", levelColors
2416
2416
  const score = getScore(value, min, max);
2417
2417
  const barFillColor = levelColors ? getFillColor(score, levelColors) : getDefaultFillColor(score);
2418
2418
  const barWidth = showValue && size === "small" ? 90 : 100;
2419
- return (jsx("svg", { className: cvaValueBar({ size, className }), "data-testid": dataTestId, role: "img", children: jsxs("g", { children: [jsx("rect", { className: cvaValueBarProgress({ fill: "background" }), width: `${barWidth}%`, rx: "5", "data-testid": "value-bar-svg-rect-0" }), jsx("rect", { className: cvaValueBarProgress(), width: `${score * barWidth}%`, fill: barFillColor, rx: "5", "data-testid": "value-bar-svg-rect-1" }), showValue && size === "large" ? (jsxs("text", { className: cvaValueBarText({ size }), x: "12", y: "23", fill: valueColor !== null && valueColor !== void 0 ? valueColor : "white", children: [Number(value.toFixed(1)), unit || ""] })) : null, showValue && size === "small" ? (jsxs("text", { className: cvaValueBarText({ size }), x: `${barWidth + 2}%`, y: "11", fill: valueColor !== null && valueColor !== void 0 ? valueColor : color("NEUTRAL", 400, "CSS"), children: [Number(value.toFixed(1)), unit || ""] })) : null] }) }));
2419
+ return (jsx("svg", { className: cvaValueBar({ size, className }), "data-testid": dataTestId, role: "img", children: jsxs("g", { children: [jsx("rect", { className: cvaValueBarProgress({ fill: "background" }), "data-testid": "value-bar-svg-rect-0", rx: "5", width: `${barWidth}%` }), jsx("rect", { className: cvaValueBarProgress(), "data-testid": "value-bar-svg-rect-1", fill: barFillColor, rx: "5", width: `${score * barWidth}%` }), showValue && size === "large" ? (jsxs("text", { className: cvaValueBarText({ size }), fill: valueColor !== null && valueColor !== void 0 ? valueColor : "white", x: "12", y: "23", children: [Number(value.toFixed(1)), unit || ""] })) : null, showValue && size === "small" ? (jsxs("text", { className: cvaValueBarText({ size }), fill: valueColor !== null && valueColor !== void 0 ? valueColor : color("NEUTRAL", 400, "CSS"), x: `${barWidth + 2}%`, y: "11", children: [Number(value.toFixed(1)), unit || ""] })) : null] }) }));
2420
2420
  };
2421
2421
 
2422
2422
  const cvaWidgetBodyDensityContainer = cvaMerge([
@@ -2465,7 +2465,7 @@ const cvaWidgetBodyDensityContainer = cvaMerge([
2465
2465
  * @returns {JSX.Element} WidgetBody component
2466
2466
  */
2467
2467
  const WidgetBody = ({ density = "auto", children, dataTestId, className, disableGap }) => {
2468
- return (jsx("div", { "data-testid": dataTestId, className: cvaWidgetBodyDensityContainer({ density, disableGap, className }), children: children }));
2468
+ return (jsx("div", { className: cvaWidgetBodyDensityContainer({ density, disableGap, className }), "data-testid": dataTestId, children: children }));
2469
2469
  };
2470
2470
 
2471
2471
  const cvaClickable = cvaMerge([
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@trackunit/react-components",
3
- "version": "0.1.257",
3
+ "version": "0.1.260",
4
4
  "repository": "https://github.com/Trackunit/manager",
5
5
  "license": "SEE LICENSE IN LICENSE.txt",
6
6
  "engines": {
@@ -13,7 +13,6 @@
13
13
  "react-use": "^17.4.0",
14
14
  "react-day-picker": "^8.9.1",
15
15
  "date-fns": "^2.30.0",
16
- "@floating-ui/react": "^0.26.6",
17
16
  "@radix-ui/react-tabs": "^1.0.4",
18
17
  "@trackunit/ui-icons": "*",
19
18
  "@trackunit/shared-utils": "*",
@@ -23,7 +22,8 @@
23
22
  "zod": "3.22.4",
24
23
  "lodash": "4.17.21",
25
24
  "jest-fetch-mock": "^3.0.3",
26
- "@testing-library/react": "14.0.0"
25
+ "@testing-library/react": "14.0.0",
26
+ "@floating-ui/react": "^0.26.6"
27
27
  },
28
28
  "module": "./index.esm.js",
29
29
  "main": "./index.cjs.js"
@@ -13,6 +13,10 @@ export interface CardBodyProps extends CommonProps {
13
13
  * Child elements to render in the body
14
14
  */
15
15
  children: React.ReactNode | null;
16
+ /**
17
+ * The id of the element.
18
+ */
19
+ id?: string;
16
20
  }
17
21
  /**
18
22
  * The CardBody component should be used to inform the user of important information.
@@ -22,4 +26,4 @@ export interface CardBodyProps extends CommonProps {
22
26
  * @param {CardBodyProps} props - The props for the CardBody component
23
27
  * @returns {JSX.Element} CardBody component
24
28
  */
25
- export declare const CardBody: ({ density, children, dataTestId, className, disableGap }: CardBodyProps) => JSX.Element;
29
+ export declare const CardBody: ({ density, children, dataTestId, className, disableGap, id }: CardBodyProps) => JSX.Element;