@drivenets/design-system 0.14.0 → 0.16.0

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.
Files changed (193) hide show
  1. package/CHANGELOG.md +32 -0
  2. package/README.md +1 -1
  3. package/dist/index.cjs +1239 -262
  4. package/dist/index.d.cts +904 -1169
  5. package/dist/index.d.cts.map +1 -1
  6. package/dist/index.d.ts +904 -1169
  7. package/dist/index.d.ts.map +1 -1
  8. package/dist/index.js +1221 -258
  9. package/dist/index.js.map +1 -1
  10. package/dist/index.min.css +1 -1
  11. package/package.json +15 -12
  12. package/src/components/ds-alert-banner/ds-alert-banner.tsx +11 -2
  13. package/src/components/ds-autocomplete/ds-autocomplete.figma.ts +36 -0
  14. package/src/components/ds-autocomplete/ds-autocomplete.tsx +2 -0
  15. package/src/components/ds-avatar/ds-avatar.figma.ts +30 -0
  16. package/src/components/ds-avatar/ds-avatar.tsx +6 -1
  17. package/src/components/ds-avatar/ds-avatar.types.ts +5 -2
  18. package/src/components/ds-avatar-group/ds-avatar-group.figma.ts +27 -0
  19. package/src/components/ds-avatar-group/ds-avatar-group.tsx +6 -1
  20. package/src/components/ds-avatar-group/ds-avatar-group.types.ts +3 -1
  21. package/src/components/ds-breadcrumb/ds-breadcrumb.figma.ts +19 -0
  22. package/src/components/ds-breadcrumb/ds-breadcrumb.tsx +2 -0
  23. package/src/components/ds-button/ds-button.tsx +2 -0
  24. package/src/components/ds-button-v3/ds-button-v3.figma.ts +1 -1
  25. package/src/components/ds-button-v3/ds-button-v3.tsx +6 -0
  26. package/src/components/ds-button-v3/index.ts +2 -0
  27. package/src/components/ds-card/ds-card.tsx +7 -3
  28. package/src/components/ds-catalog-layout/ds-catalog-layout.tsx +8 -0
  29. package/src/components/ds-checkbox/ds-checkbox-level-2.figma.ts +40 -0
  30. package/src/components/ds-checkbox/ds-checkbox.figma.ts +45 -0
  31. package/src/components/ds-checkbox/ds-checkbox.module.scss +1 -1
  32. package/src/components/ds-checkbox/ds-checkbox.tsx +9 -1
  33. package/src/components/ds-checkbox-group/ds-checkbox-group.figma.ts +15 -0
  34. package/src/components/ds-checkbox-group/ds-checkbox-group.tsx +2 -0
  35. package/src/components/ds-chip/ds-chip.tsx +2 -0
  36. package/src/components/ds-chip-group/ds-chip-group.tsx +2 -0
  37. package/src/components/ds-comment-bubble/components/ds-comment-thread/ds-comment-thread.tsx +1 -0
  38. package/src/components/ds-comment-bubble/components/ds-thread-item/ds-thread-item.tsx +1 -0
  39. package/src/components/ds-comment-bubble/ds-comment-bubble.tsx +1 -0
  40. package/src/components/ds-comment-card/ds-comment-card.tsx +1 -0
  41. package/src/components/ds-comment-indicator/ds-comment-indicator.tsx +1 -0
  42. package/src/components/ds-comments-drawer/ds-comments-drawer.tsx +1 -0
  43. package/src/components/ds-confirmation/ds-confirmation.tsx +1 -0
  44. package/src/components/ds-date-input/ds-date-input.tsx +2 -0
  45. package/src/components/ds-date-picker/ds-date-picker.tsx +9 -0
  46. package/src/components/ds-date-picker/ds-date-picker.types.ts +1 -1
  47. package/src/components/ds-date-range-picker/ds-date-range-picker.tsx +2 -0
  48. package/src/components/ds-dialog/ds-dialog.tsx +9 -0
  49. package/src/components/ds-dialog/ds-dialog.types.ts +1 -1
  50. package/src/components/ds-divider/ds-divider.figma.ts +19 -0
  51. package/src/components/ds-divider/ds-divider.tsx +2 -0
  52. package/src/components/ds-drawer/ds-drawer.module.scss +14 -0
  53. package/src/components/ds-drawer/ds-drawer.tsx +30 -1
  54. package/src/components/ds-drawer/ds-drawer.types.ts +7 -0
  55. package/src/components/ds-drawer/figma/ds-drawer-content.figma.ts +15 -0
  56. package/src/components/ds-drawer/figma/ds-drawer-footer.figma.ts +19 -0
  57. package/src/components/ds-drawer/figma/ds-drawer-header.figma.ts +16 -0
  58. package/src/components/ds-drawer/figma/ds-drawer.figma.ts +36 -0
  59. package/src/components/ds-dropdown-menu/ds-dropdown-menu.module.scss +12 -3
  60. package/src/components/ds-dropdown-menu/ds-dropdown-menu.tsx +24 -6
  61. package/src/components/ds-dropdown-menu/ds-dropdown-menu.types.ts +10 -1
  62. package/src/components/ds-dropdown-menu/figma/ds-dropdown-menu-footer.figma.ts +11 -0
  63. package/src/components/ds-dropdown-menu/figma/ds-dropdown-menu-group.figma.ts +23 -0
  64. package/src/components/ds-dropdown-menu/figma/ds-dropdown-menu-item.figma.ts +29 -0
  65. package/src/components/ds-dropdown-menu/figma/ds-dropdown-menu-separator.figma.ts +11 -0
  66. package/src/components/ds-dropdown-menu/figma/ds-dropdown-menu.figma.ts +24 -0
  67. package/src/components/ds-expandable-text-input/ds-expandable-text-input.figma.ts +24 -0
  68. package/src/components/ds-expandable-text-input/ds-expandable-text-input.tsx +1 -0
  69. package/src/components/ds-file-upload/ds-file-upload.figma.ts +29 -0
  70. package/src/components/ds-file-upload/ds-file-upload.tsx +2 -0
  71. package/src/components/ds-file-upload/hooks/use-file-upload.ts +7 -0
  72. package/src/components/ds-filter-status-icon/ds-filter-status-icon.figma.ts +22 -0
  73. package/src/components/ds-filter-status-icon/ds-filter-status-icon.tsx +1 -0
  74. package/src/components/ds-form-control/ds-form-control.tsx +3 -0
  75. package/src/components/ds-grid/index.ts +3 -0
  76. package/src/components/ds-icon/ds-icon.tsx +2 -0
  77. package/src/components/ds-key-value-pair/ds-key-value-pair.figma.ts +24 -0
  78. package/src/components/ds-key-value-pair/ds-key-value-pair.tsx +2 -0
  79. package/src/components/ds-loader/ds-loader.figma.ts +11 -0
  80. package/src/components/ds-loader/ds-loader.tsx +2 -0
  81. package/src/components/ds-modal/ds-modal.tsx +9 -0
  82. package/src/components/ds-number-input/ds-number-input.tsx +2 -0
  83. package/src/components/ds-panel/ds-panel.figma.ts +16 -0
  84. package/src/components/ds-panel/index.ts +2 -0
  85. package/src/components/ds-password-input/ds-password-input.tsx +2 -0
  86. package/src/components/ds-popover/ds-popover.tsx +9 -0
  87. package/src/components/ds-popover/figma/ds-popover-content-item.figma.ts +18 -0
  88. package/src/components/ds-popover/figma/ds-popover-content.figma.ts +15 -0
  89. package/src/components/ds-popover/figma/ds-popover-footer.figma.ts +19 -0
  90. package/src/components/ds-popover/figma/ds-popover-header.figma.ts +16 -0
  91. package/src/components/ds-popover/figma/ds-popover.figma.ts +34 -0
  92. package/src/components/ds-progress-arc/ds-progress-arc.figma.ts +23 -0
  93. package/src/components/ds-progress-arc/ds-progress-arc.tsx +2 -0
  94. package/src/components/ds-progress-donut/ds-progress-donut.figma.ts +45 -0
  95. package/src/components/ds-progress-donut/ds-progress-donut.tsx +2 -0
  96. package/src/components/ds-progress-linear/ds-progress-linear.figma.ts +26 -0
  97. package/src/components/ds-progress-linear/ds-progress-linear.tsx +2 -0
  98. package/src/components/ds-progress-task-bar/ds-progress-task-bar.figma.ts +29 -0
  99. package/src/components/ds-progress-task-bar/ds-progress-task-bar.module.scss +39 -0
  100. package/src/components/ds-progress-task-bar/ds-progress-task-bar.tsx +124 -0
  101. package/src/components/ds-progress-task-bar/ds-progress-task-bar.types.ts +65 -0
  102. package/src/components/ds-progress-task-bar/index.ts +2 -0
  103. package/src/components/ds-progress-task-bar/utils.ts +51 -0
  104. package/src/components/ds-radio-group/ds-radio-group.tsx +3 -0
  105. package/src/components/ds-radio-group/figma/ds-radio-group-item.figma.ts +24 -0
  106. package/src/components/ds-radio-group/figma/ds-radio-group.figma.ts +14 -0
  107. package/src/components/ds-segment-group/ds-segment-group.tsx +3 -0
  108. package/src/components/ds-segment-group/figma/ds-segment-group-item.figma.ts +25 -0
  109. package/src/components/ds-segment-group/figma/ds-segment-group.figma.ts +23 -0
  110. package/src/components/ds-select/ds-select.tsx +2 -0
  111. package/src/components/ds-site-node/ds-site-node.figma.ts +27 -0
  112. package/src/components/ds-site-node/ds-site-node.module.scss +59 -0
  113. package/src/components/ds-site-node/ds-site-node.tsx +73 -0
  114. package/src/components/ds-site-node/ds-site-node.types.ts +36 -0
  115. package/src/components/ds-site-node/hooks/use-is-overflowing.ts +31 -0
  116. package/src/components/ds-site-node/index.ts +3 -0
  117. package/src/components/ds-skeleton/ds-skeleton-circle.tsx +2 -0
  118. package/src/components/ds-skeleton/ds-skeleton-rect.tsx +2 -0
  119. package/src/components/ds-skeleton/ds-skeleton-text.tsx +2 -0
  120. package/src/components/ds-skeleton/ds-skeleton.ts +7 -1
  121. package/src/components/ds-smart-tabs/ds-smart-tabs.tsx +4 -0
  122. package/src/components/ds-spinner/ds-spinner.figma.ts +19 -0
  123. package/src/components/ds-spinner/ds-spinner.tsx +2 -0
  124. package/src/components/ds-split-button/ds-split-button.tsx +6 -0
  125. package/src/components/ds-status-badge/ds-status-badge.tsx +2 -0
  126. package/src/components/ds-status-badge-v2/index.ts +2 -0
  127. package/src/components/ds-stepper/components/ds-step-content.tsx +2 -0
  128. package/src/components/ds-stepper/components/ds-step-next-button.tsx +2 -0
  129. package/src/components/ds-stepper/components/ds-step.tsx +2 -0
  130. package/src/components/ds-stepper/ds-stepper.figma.ts +38 -0
  131. package/src/components/ds-stepper/ds-stepper.tsx +1 -0
  132. package/src/components/ds-system-status/ds-system-status.tsx +2 -0
  133. package/src/components/ds-table/components/ds-table-row/ds-table-row.module.scss +1 -1
  134. package/src/components/ds-table/components/ds-table-row/ds-table-row.tsx +2 -0
  135. package/src/components/ds-table/components/ds-table-row-virtualized/ds-table-row-virtualized.module.scss +1 -1
  136. package/src/components/ds-table/components/ds-table-row-virtualized/ds-table-row-virtualized.tsx +2 -0
  137. package/src/components/ds-table/components/edit/cell-editors/ds-table-edit-cell-checkbox.tsx +1 -0
  138. package/src/components/ds-table/components/edit/cell-editors/ds-table-edit-cell-date.tsx +1 -0
  139. package/src/components/ds-table/components/edit/cell-editors/ds-table-edit-cell-number.tsx +1 -0
  140. package/src/components/ds-table/components/edit/cell-editors/ds-table-edit-cell-select.tsx +1 -0
  141. package/src/components/ds-table/components/edit/cell-editors/ds-table-edit-cell-text.tsx +1 -0
  142. package/src/components/ds-table/components/edit/ds-table-editable-cell/ds-table-editable-cell.module.scss +14 -2
  143. package/src/components/ds-table/components/edit/ds-table-editable-cell/ds-table-editable-cell.tsx +20 -0
  144. package/src/components/ds-table/components/edit/ds-table-editing-cell/ds-table-editing-cell.tsx +1 -0
  145. package/src/components/ds-table/ds-table-column.types.ts +24 -0
  146. package/src/components/ds-table/ds-table.tsx +30 -4
  147. package/src/components/ds-table/ds-table.types.ts +7 -0
  148. package/src/components/ds-table/index.ts +4 -0
  149. package/src/components/ds-table/utils/constants.ts +5 -0
  150. package/src/components/ds-tabs/components/ds-tabs-content/ds-tabs-content.tsx +2 -0
  151. package/src/components/ds-tabs/components/ds-tabs-list/ds-tabs-list.tsx +2 -0
  152. package/src/components/ds-tabs/components/ds-tabs-tab/ds-tabs-tab.tsx +2 -0
  153. package/src/components/ds-tabs/ds-tabs.tsx +2 -0
  154. package/src/components/ds-tabs/figma/ds-tabs-tab-vertical.figma.ts +78 -0
  155. package/src/components/ds-tabs/figma/ds-tabs-tab.figma.ts +89 -0
  156. package/src/components/ds-tabs/figma/ds-tabs-vertical.figma.ts +31 -0
  157. package/src/components/ds-tabs/figma/ds-tabs.figma.ts +29 -0
  158. package/src/components/ds-tag/ds-tag.tsx +2 -0
  159. package/src/components/ds-tag-filter/ds-tag-filter.tsx +2 -0
  160. package/src/components/ds-text-input/ds-input-field-v02.figma.ts +87 -0
  161. package/src/components/ds-text-input/ds-text-input.tsx +2 -0
  162. package/src/components/ds-textarea/ds-textarea.tsx +2 -0
  163. package/src/components/ds-time-picker/ds-time-picker.tsx +2 -0
  164. package/src/components/ds-toast/ds-toast-context.tsx +1 -0
  165. package/src/components/ds-toast/ds-toast.figma.ts +34 -0
  166. package/src/components/ds-toast/ds-toast.tsx +3 -0
  167. package/src/components/ds-toggle/ds-toggle.figma.ts +39 -0
  168. package/src/components/ds-toggle/ds-toggle.tsx +2 -0
  169. package/src/components/ds-tooltip/ds-tooltip.figma.ts +16 -0
  170. package/src/components/ds-tooltip/ds-tooltip.module.scss +8 -1
  171. package/src/components/ds-tooltip/ds-tooltip.tsx +35 -15
  172. package/src/components/ds-tooltip/ds-tooltip.types.ts +40 -0
  173. package/src/components/ds-tree/ds-tree.tsx +16 -0
  174. package/src/components/ds-typography/ds-typography.config.ts +1 -1
  175. package/src/components/ds-typography/ds-typography.figma.ts +63 -0
  176. package/src/components/ds-typography/ds-typography.module.scss +16 -0
  177. package/src/components/ds-typography/ds-typography.tsx +64 -7
  178. package/src/components/ds-typography/ds-typography.types.ts +13 -0
  179. package/src/components/ds-typography/hooks/use-truncation.ts +151 -0
  180. package/src/components/ds-user-card/ds-user-card.figma.ts +16 -0
  181. package/src/components/ds-user-card/ds-user-card.module.scss +25 -0
  182. package/src/components/ds-user-card/ds-user-card.tsx +31 -0
  183. package/src/components/ds-user-card/ds-user-card.types.ts +26 -0
  184. package/src/components/ds-user-card/index.ts +2 -0
  185. package/src/components/ds-vertical-tabs/ds-vertical-tabs.tsx +6 -0
  186. package/src/components/ds-workspace-layout/ds-workspace-layout.tsx +10 -0
  187. package/src/index.ts +3 -0
  188. package/src/styles/_root.scss +468 -363
  189. package/src/styles/shared/_dropdown.scss +2 -2
  190. package/src/styles/styles.scss +0 -3
  191. package/src/styles/_colors.scss +0 -65
  192. package/src/styles/_root_new.scss +0 -451
  193. package/src/styles/_spacing.scss +0 -47
package/dist/index.js CHANGED
@@ -4,12 +4,12 @@ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
4
4
  import * as React$1 from "react";
5
5
  import React, { Children, Fragment as Fragment$1, createContext, createElement, isValidElement, useCallback, useContext, useEffect, useId, useImperativeHandle, useLayoutEffect, useMemo, useRef, useState, useSyncExternalStore } from "react";
6
6
  import { FileUpload as FileUpload$1, NumberInput, PasswordInput, Progress, Toast, Toaster, ark, createToaster } from "@ark-ui/react";
7
+ import { Tooltip } from "@ark-ui/react/tooltip";
8
+ import { Portal } from "@ark-ui/react/portal";
7
9
  import { Combobox, createListCollection } from "@ark-ui/react/combobox";
8
10
  import { useFilter } from "@ark-ui/react/locale";
9
11
  import { Highlight } from "@ark-ui/react/highlight";
10
- import { Portal } from "@ark-ui/react/portal";
11
12
  import { Avatar } from "@ark-ui/react/avatar";
12
- import * as Tooltip from "@radix-ui/react-tooltip";
13
13
  import { Link, useLocation } from "@tanstack/react-router";
14
14
  import * as DropdownMenu from "@radix-ui/react-dropdown-menu";
15
15
  import { Menu } from "@ark-ui/react/menu";
@@ -28,7 +28,7 @@ import { RadioGroup } from "@ark-ui/react/radio-group";
28
28
  import { SegmentGroup } from "@ark-ui/react/segment-group";
29
29
  import * as steps from "@zag-js/steps";
30
30
  import { normalizeProps, useMachine } from "@zag-js/react";
31
- import { defaultColumnSizing, flexRender, getCoreRowModel, getExpandedRowModel, getFilteredRowModel, getSortedRowModel, useReactTable } from "@tanstack/react-table";
31
+ import { createColumnHelper, defaultColumnSizing, flexRender, getCoreRowModel, getExpandedRowModel, getFilteredRowModel, getSortedRowModel, useReactTable } from "@tanstack/react-table";
32
32
  import { SortableContext, arrayMove, useSortable, verticalListSortingStrategy } from "@dnd-kit/sortable";
33
33
  import { CSS } from "@dnd-kit/utilities";
34
34
  import { DndContext, KeyboardSensor, MouseSensor, TouchSensor, closestCenter, useSensor, useSensors } from "@dnd-kit/core";
@@ -2858,6 +2858,7 @@ const DsIcon = (t0) => {
2858
2858
  } else t8 = $[29];
2859
2859
  return t8;
2860
2860
  };
2861
+ DsIcon.displayName = "DsIcon";
2861
2862
  //#endregion
2862
2863
  //#region src/components/ds-typography/ds-typography.config.ts
2863
2864
  const typographyVariantConfig = {
@@ -2954,7 +2955,7 @@ const typographyVariantConfig = {
2954
2955
  component: ark.h4
2955
2956
  }
2956
2957
  };
2957
- /** Semantic text colors backed by `--font-*` tokens in `_root_new.scss`. */
2958
+ /** Semantic text colors backed by `--font-*` tokens in `_root.scss`. */
2958
2959
  const typographyColors = [
2959
2960
  "main",
2960
2961
  "secondary",
@@ -2974,6 +2975,228 @@ const typographyColors = [
2974
2975
  "code"
2975
2976
  ];
2976
2977
  //#endregion
2978
+ //#region src/components/ds-typography/hooks/use-truncation.ts
2979
+ const OVERFLOW_TOLERANCE_PX = 1;
2980
+ const FALLBACK_LINE_HEIGHT_RATIO = 1.2;
2981
+ const DEFAULT_FONT_SIZE_PX = 16;
2982
+ const ELLIPSIS = "…";
2983
+ const ellipsisWidthCache = /* @__PURE__ */ new Map();
2984
+ let ellipsisMeasureSpan = null;
2985
+ const measureEllipsisWidth = (computed) => {
2986
+ const cacheKey = `${computed.fontStyle}|${computed.fontWeight}|${computed.fontSize}|${computed.fontFamily}|${computed.letterSpacing}`;
2987
+ const cached = ellipsisWidthCache.get(cacheKey);
2988
+ if (cached !== void 0) return cached;
2989
+ ellipsisMeasureSpan ??= document.createElement("span");
2990
+ const span = ellipsisMeasureSpan;
2991
+ span.textContent = ELLIPSIS;
2992
+ span.style.position = "absolute";
2993
+ span.style.visibility = "hidden";
2994
+ span.style.whiteSpace = "pre";
2995
+ span.style.fontStyle = computed.fontStyle;
2996
+ span.style.fontWeight = computed.fontWeight;
2997
+ span.style.fontSize = computed.fontSize;
2998
+ span.style.fontFamily = computed.fontFamily;
2999
+ span.style.letterSpacing = computed.letterSpacing;
3000
+ document.body.appendChild(span);
3001
+ const width = span.getBoundingClientRect().width;
3002
+ span.remove();
3003
+ ellipsisWidthCache.set(cacheKey, width);
3004
+ return width;
3005
+ };
3006
+ let measureRange = null;
3007
+ const measureFittingPrefixRight = (textNode, maxRight) => {
3008
+ measureRange ??= document.createRange();
3009
+ const range = measureRange;
3010
+ let low = 0;
3011
+ let high = textNode.length;
3012
+ let fittingLength = 0;
3013
+ while (low <= high) {
3014
+ const mid = low + high >>> 1;
3015
+ range.setStart(textNode, 0);
3016
+ range.setEnd(textNode, mid);
3017
+ if (range.getBoundingClientRect().right <= maxRight) {
3018
+ fittingLength = mid;
3019
+ low = mid + 1;
3020
+ } else high = mid - 1;
3021
+ }
3022
+ range.setStart(textNode, 0);
3023
+ range.setEnd(textNode, fittingLength);
3024
+ return range.getBoundingClientRect().right;
3025
+ };
3026
+ const getFirstTextNode = (element) => element.firstChild instanceof Text ? element.firstChild : null;
3027
+ const useTruncation = (ref, enabled, deps = []) => {
3028
+ const [isTruncated, setIsTruncated] = useState(false);
3029
+ useLayoutEffect(() => {
3030
+ const element = ref.current;
3031
+ if (!enabled || !element) {
3032
+ setIsTruncated(false);
3033
+ return;
3034
+ }
3035
+ const measure = () => {
3036
+ const overflowsHorizontally = element.scrollWidth - element.clientWidth > OVERFLOW_TOLERANCE_PX;
3037
+ const overflowsVertically = element.scrollHeight - element.clientHeight > OVERFLOW_TOLERANCE_PX;
3038
+ setIsTruncated(overflowsHorizontally || overflowsVertically);
3039
+ };
3040
+ const rafId = requestAnimationFrame(measure);
3041
+ const resizeObserver = new ResizeObserver(() => requestAnimationFrame(measure));
3042
+ resizeObserver.observe(element);
3043
+ return () => {
3044
+ cancelAnimationFrame(rafId);
3045
+ resizeObserver.disconnect();
3046
+ };
3047
+ }, [
3048
+ ref,
3049
+ enabled,
3050
+ ...deps
3051
+ ]);
3052
+ return {
3053
+ isTruncated,
3054
+ getAnchorRect: useCallback(() => {
3055
+ const element = ref.current;
3056
+ if (!element) return null;
3057
+ const rect = element.getBoundingClientRect();
3058
+ const computed = getComputedStyle(element);
3059
+ const paddingRight = parseFloat(computed.paddingRight) || 0;
3060
+ const borderRight = parseFloat(computed.borderRightWidth) || 0;
3061
+ const paddingBottom = parseFloat(computed.paddingBottom) || 0;
3062
+ const borderBottom = parseFloat(computed.borderBottomWidth) || 0;
3063
+ const fontSize = parseFloat(computed.fontSize) || DEFAULT_FONT_SIZE_PX;
3064
+ const lineHeight = parseFloat(computed.lineHeight) || fontSize * FALLBACK_LINE_HEIGHT_RATIO;
3065
+ const contentRight = rect.right - paddingRight - borderRight;
3066
+ const ellipsisWidth = measureEllipsisWidth(computed);
3067
+ const textNode = getFirstTextNode(element);
3068
+ return {
3069
+ x: computed.whiteSpace === "nowrap" && textNode ? measureFittingPrefixRight(textNode, contentRight - ellipsisWidth) + ellipsisWidth / 2 : contentRight - ellipsisWidth / 2,
3070
+ y: rect.bottom - paddingBottom - borderBottom - lineHeight,
3071
+ width: 0,
3072
+ height: lineHeight
3073
+ };
3074
+ }, [ref])
3075
+ };
3076
+ };
3077
+ //#endregion
3078
+ //#region src/utils/merge-refs.ts
3079
+ const mergeRefs = (...refs) => {
3080
+ return (value) => {
3081
+ refs.filter((r) => !!r).forEach((ref) => {
3082
+ if (typeof ref === "function") ref(value);
3083
+ else ref.current = value;
3084
+ });
3085
+ };
3086
+ };
3087
+ //#endregion
3088
+ //#region src/components/ds-tooltip/ds-tooltip.module.scss
3089
+ var ds_tooltip_module_default = {
3090
+ "arrow": "rUPoLa_arrow",
3091
+ "text": "rUPoLa_text",
3092
+ "tooltip": "rUPoLa_tooltip"
3093
+ };
3094
+ //#endregion
3095
+ //#region src/components/ds-tooltip/ds-tooltip.tsx
3096
+ const OPEN_DELAY_MS = 200;
3097
+ const CLOSE_DELAY_MS = 0;
3098
+ const TOOLTIP_GUTTER_PX = 0;
3099
+ const DsTooltip = (t0) => {
3100
+ const $ = c(19);
3101
+ const { content, children, placement: t1, disabled: t2, getAnchorRect, slotProps } = t0;
3102
+ const placement = t1 === void 0 ? "top" : t1;
3103
+ const disabled = t2 === void 0 ? false : t2;
3104
+ if (content === void 0) return children;
3105
+ const t3 = getAnchorRect ?? void 0;
3106
+ let t4;
3107
+ if ($[0] !== placement || $[1] !== t3) {
3108
+ t4 = {
3109
+ placement,
3110
+ gutter: TOOLTIP_GUTTER_PX,
3111
+ getAnchorRect: t3
3112
+ };
3113
+ $[0] = placement;
3114
+ $[1] = t3;
3115
+ $[2] = t4;
3116
+ } else t4 = $[2];
3117
+ let t5;
3118
+ if ($[3] !== children) {
3119
+ t5 = /* @__PURE__ */ jsx(Tooltip.Trigger, {
3120
+ asChild: true,
3121
+ children
3122
+ });
3123
+ $[3] = children;
3124
+ $[4] = t5;
3125
+ } else t5 = $[4];
3126
+ const t6 = slotProps?.content?.className;
3127
+ let t7;
3128
+ if ($[5] !== t6) {
3129
+ t7 = classNames(ds_tooltip_module_default.tooltip, t6);
3130
+ $[5] = t6;
3131
+ $[6] = t7;
3132
+ } else t7 = $[6];
3133
+ const t8 = slotProps?.content?.style;
3134
+ let t9;
3135
+ if ($[7] !== content) {
3136
+ t9 = isValidElement(content) ? content : /* @__PURE__ */ jsx("span", {
3137
+ className: ds_tooltip_module_default.text,
3138
+ children: content
3139
+ });
3140
+ $[7] = content;
3141
+ $[8] = t9;
3142
+ } else t9 = $[8];
3143
+ let t10;
3144
+ if ($[9] === Symbol.for("react.memo_cache_sentinel")) {
3145
+ t10 = /* @__PURE__ */ jsx(Tooltip.Arrow, {
3146
+ className: ds_tooltip_module_default.arrow,
3147
+ children: /* @__PURE__ */ jsx(Tooltip.ArrowTip, {})
3148
+ });
3149
+ $[9] = t10;
3150
+ } else t10 = $[9];
3151
+ let t11;
3152
+ if ($[10] !== t7 || $[11] !== t8 || $[12] !== t9) {
3153
+ t11 = /* @__PURE__ */ jsx(Portal, { children: /* @__PURE__ */ jsx(Tooltip.Positioner, { children: /* @__PURE__ */ jsxs(Tooltip.Content, {
3154
+ className: t7,
3155
+ style: t8,
3156
+ children: [t9, t10]
3157
+ }) }) });
3158
+ $[10] = t7;
3159
+ $[11] = t8;
3160
+ $[12] = t9;
3161
+ $[13] = t11;
3162
+ } else t11 = $[13];
3163
+ let t12;
3164
+ if ($[14] !== disabled || $[15] !== t11 || $[16] !== t4 || $[17] !== t5) {
3165
+ t12 = /* @__PURE__ */ jsxs(Tooltip.Root, {
3166
+ openDelay: OPEN_DELAY_MS,
3167
+ closeDelay: CLOSE_DELAY_MS,
3168
+ disabled,
3169
+ positioning: t4,
3170
+ lazyMount: true,
3171
+ unmountOnExit: true,
3172
+ children: [t5, t11]
3173
+ });
3174
+ $[14] = disabled;
3175
+ $[15] = t11;
3176
+ $[16] = t4;
3177
+ $[17] = t5;
3178
+ $[18] = t12;
3179
+ } else t12 = $[18];
3180
+ return t12;
3181
+ };
3182
+ DsTooltip.displayName = "DsTooltip";
3183
+ //#endregion
3184
+ //#region src/components/ds-tooltip/ds-tooltip.types.ts
3185
+ const tooltipPlacements = [
3186
+ "top",
3187
+ "top-start",
3188
+ "top-end",
3189
+ "bottom",
3190
+ "bottom-start",
3191
+ "bottom-end",
3192
+ "left",
3193
+ "left-start",
3194
+ "left-end",
3195
+ "right",
3196
+ "right-start",
3197
+ "right-end"
3198
+ ];
3199
+ //#endregion
2977
3200
  //#region src/components/ds-typography/ds-typography.module.scss
2978
3201
  var ds_typography_module_default = {
2979
3202
  "body-md-bold": "X6xyRq_body-md-bold",
@@ -2998,14 +3221,17 @@ var ds_typography_module_default = {
2998
3221
  "heading1": "X6xyRq_heading1",
2999
3222
  "heading2": "X6xyRq_heading2",
3000
3223
  "heading3": "X6xyRq_heading3",
3001
- "heading4": "X6xyRq_heading4"
3224
+ "heading4": "X6xyRq_heading4",
3225
+ "truncateMultiline": "X6xyRq_truncateMultiline",
3226
+ "truncateSingle": "X6xyRq_truncateSingle"
3002
3227
  };
3003
3228
  //#endregion
3004
3229
  //#region src/components/ds-typography/ds-typography.tsx
3005
3230
  const semanticColorSet = new Set(typographyColors);
3006
3231
  const resolveColor = (color) => semanticColorSet.has(color) ? `var(--font-${color})` : color;
3232
+ const resolveLineClamp = (truncate) => typeof truncate === "number" ? Math.max(1, Math.floor(truncate)) : 1;
3007
3233
  const DsTypography = (t0) => {
3008
- const $ = c(23);
3234
+ const $ = c(34);
3009
3235
  let children;
3010
3236
  let className;
3011
3237
  let color;
@@ -3013,9 +3239,12 @@ const DsTypography = (t0) => {
3013
3239
  let ref;
3014
3240
  let style;
3015
3241
  let t1;
3242
+ let t2;
3243
+ let t3;
3244
+ let tooltipContent;
3016
3245
  let variant;
3017
3246
  if ($[0] !== t0) {
3018
- ({ref, variant, asChild: t1, className, style, color, children, ...props} = t0);
3247
+ ({ref, variant, asChild: t1, className, style, color, truncate: t2, tooltip: t3, tooltipContent, children, ...props} = t0);
3019
3248
  $[0] = t0;
3020
3249
  $[1] = children;
3021
3250
  $[2] = className;
@@ -3024,7 +3253,10 @@ const DsTypography = (t0) => {
3024
3253
  $[5] = ref;
3025
3254
  $[6] = style;
3026
3255
  $[7] = t1;
3027
- $[8] = variant;
3256
+ $[8] = t2;
3257
+ $[9] = t3;
3258
+ $[10] = tooltipContent;
3259
+ $[11] = variant;
3028
3260
  } else {
3029
3261
  children = $[1];
3030
3262
  className = $[2];
@@ -3033,54 +3265,100 @@ const DsTypography = (t0) => {
3033
3265
  ref = $[5];
3034
3266
  style = $[6];
3035
3267
  t1 = $[7];
3036
- variant = $[8];
3268
+ t2 = $[8];
3269
+ t3 = $[9];
3270
+ tooltipContent = $[10];
3271
+ variant = $[11];
3037
3272
  }
3038
3273
  const asChild = t1 === void 0 ? false : t1;
3274
+ const truncate = t2 === void 0 ? false : t2;
3275
+ const tooltip = t3 === void 0 ? false : t3;
3039
3276
  const Component = typographyVariantConfig[variant].component;
3040
- const t2 = ds_typography_module_default[variant];
3041
- let t3;
3042
- if ($[9] !== className || $[10] !== t2) {
3043
- t3 = classNames(t2, className);
3044
- $[9] = className;
3045
- $[10] = t2;
3046
- $[11] = t3;
3047
- } else t3 = $[11];
3277
+ const internalRef = useRef(null);
3278
+ const truncationEnabled = truncate !== false;
3279
+ const lineClamp = resolveLineClamp(truncate);
3280
+ const isMultiline = truncationEnabled && lineClamp > 1;
3281
+ const tooltipEnabled = truncationEnabled && tooltip;
3048
3282
  let t4;
3049
- if ($[12] !== color || $[13] !== style) {
3050
- t4 = color ? {
3051
- color: resolveColor(color),
3052
- ...style
3053
- } : style;
3054
- $[12] = color;
3055
- $[13] = style;
3283
+ if ($[12] !== children || $[13] !== truncate) {
3284
+ t4 = [children, truncate];
3285
+ $[12] = children;
3286
+ $[13] = truncate;
3056
3287
  $[14] = t4;
3057
3288
  } else t4 = $[14];
3289
+ const { isTruncated, getAnchorRect } = useTruncation(internalRef, tooltipEnabled, t4);
3290
+ let resolvedStyle;
3291
+ if (color || isMultiline || style) {
3292
+ resolvedStyle = {};
3293
+ if (color) resolvedStyle.color = resolveColor(color);
3294
+ if (isMultiline) Object.assign(resolvedStyle, { "--ds-typography-line-clamp": lineClamp });
3295
+ if (style) Object.assign(resolvedStyle, style);
3296
+ }
3297
+ const truncateClass = truncationEnabled ? isMultiline ? ds_typography_module_default.truncateMultiline : ds_typography_module_default.truncateSingle : void 0;
3058
3298
  let t5;
3059
- if ($[15] !== Component || $[16] !== asChild || $[17] !== children || $[18] !== props || $[19] !== ref || $[20] !== t3 || $[21] !== t4) {
3060
- t5 = /* @__PURE__ */ jsx(Component, {
3061
- ref,
3299
+ if ($[15] !== ref) {
3300
+ t5 = mergeRefs(ref, internalRef);
3301
+ $[15] = ref;
3302
+ $[16] = t5;
3303
+ } else t5 = $[16];
3304
+ const t6 = ds_typography_module_default[variant];
3305
+ let t7;
3306
+ if ($[17] !== className || $[18] !== t6 || $[19] !== truncateClass) {
3307
+ t7 = classNames(t6, truncateClass, className);
3308
+ $[17] = className;
3309
+ $[18] = t6;
3310
+ $[19] = truncateClass;
3311
+ $[20] = t7;
3312
+ } else t7 = $[20];
3313
+ let t8;
3314
+ if ($[21] !== Component || $[22] !== asChild || $[23] !== children || $[24] !== props || $[25] !== resolvedStyle || $[26] !== t5 || $[27] !== t7) {
3315
+ t8 = /* @__PURE__ */ jsx(Component, {
3316
+ ref: t5,
3062
3317
  asChild,
3063
- className: t3,
3064
- style: t4,
3318
+ className: t7,
3319
+ style: resolvedStyle,
3065
3320
  ...props,
3066
3321
  children
3067
3322
  });
3068
- $[15] = Component;
3069
- $[16] = asChild;
3070
- $[17] = children;
3071
- $[18] = props;
3072
- $[19] = ref;
3073
- $[20] = t3;
3074
- $[21] = t4;
3075
- $[22] = t5;
3076
- } else t5 = $[22];
3077
- return t5;
3323
+ $[21] = Component;
3324
+ $[22] = asChild;
3325
+ $[23] = children;
3326
+ $[24] = props;
3327
+ $[25] = resolvedStyle;
3328
+ $[26] = t5;
3329
+ $[27] = t7;
3330
+ $[28] = t8;
3331
+ } else t8 = $[28];
3332
+ const element = t8;
3333
+ if (!tooltipEnabled) return element;
3334
+ const t9 = tooltipContent ?? children;
3335
+ const t10 = !isTruncated;
3336
+ let t11;
3337
+ if ($[29] !== element || $[30] !== getAnchorRect || $[31] !== t10 || $[32] !== t9) {
3338
+ t11 = /* @__PURE__ */ jsx(DsTooltip, {
3339
+ content: t9,
3340
+ placement: "top",
3341
+ disabled: t10,
3342
+ getAnchorRect,
3343
+ children: element
3344
+ });
3345
+ $[29] = element;
3346
+ $[30] = getAnchorRect;
3347
+ $[31] = t10;
3348
+ $[32] = t9;
3349
+ $[33] = t11;
3350
+ } else t11 = $[33];
3351
+ return t11;
3078
3352
  };
3353
+ DsTypography.displayName = "DsTypography";
3079
3354
  //#endregion
3080
3355
  //#region src/components/ds-alert-banner/ds-alert-banner.tsx
3081
3356
  /**
3082
- * Design system AlertBanner component
3083
- * Controlled component that displays alert messages with different variants
3357
+ * @summary Controlled banner for surfacing contextual status messages.
3358
+ *
3359
+ * Renders as an inline bordered card or a full-width global bar, with five
3360
+ * severity variants, an optional icon, and an optional close button. Compose the
3361
+ * content with `DsAlertBanner.Title`, `DsAlertBanner.Body`, and `DsAlertBanner.Actions`.
3084
3362
  */
3085
3363
  const DsAlertBanner = (t0) => {
3086
3364
  const $ = c(20);
@@ -3241,9 +3519,13 @@ const Actions$3 = (t0) => {
3241
3519
  } else t2 = $[5];
3242
3520
  return t2;
3243
3521
  };
3522
+ Title$2.displayName = "DsAlertBanner.Title";
3523
+ Body$5.displayName = "DsAlertBanner.Body";
3524
+ Actions$3.displayName = "DsAlertBanner.Actions";
3244
3525
  DsAlertBanner.Title = Title$2;
3245
3526
  DsAlertBanner.Body = Body$5;
3246
3527
  DsAlertBanner.Actions = Actions$3;
3528
+ DsAlertBanner.displayName = "DsAlertBanner";
3247
3529
  //#endregion
3248
3530
  //#region src/components/ds-alert-banner/ds-alert-banner.types.ts
3249
3531
  const alertBannerVariants = [
@@ -3308,7 +3590,7 @@ const DsAutocomplete = (t0) => {
3308
3590
  const filterUtils = useFilter(t12);
3309
3591
  const collection = createListCollection({
3310
3592
  items: filterText ? options.filter((opt) => filterUtils.contains(opt.label, filterText)) : options,
3311
- itemToString: _temp$16,
3593
+ itemToString: _temp$17,
3312
3594
  itemToValue: _temp2$9
3313
3595
  });
3314
3596
  let t13;
@@ -3520,7 +3802,8 @@ const DsAutocomplete = (t0) => {
3520
3802
  } else t33 = $[52];
3521
3803
  return t33;
3522
3804
  };
3523
- function _temp$16(item) {
3805
+ DsAutocomplete.displayName = "DsAutocomplete";
3806
+ function _temp$17(item) {
3524
3807
  return item.label;
3525
3808
  }
3526
3809
  function _temp2$9(item_0) {
@@ -3541,79 +3824,13 @@ var ds_avatar_module_default = {
3541
3824
  "xsm": "VcKEMW_xsm"
3542
3825
  };
3543
3826
  //#endregion
3544
- //#region src/components/ds-tooltip/ds-tooltip.module.scss
3545
- var ds_tooltip_module_default = {
3546
- "arrow": "rUPoLa_arrow",
3547
- "tooltip": "rUPoLa_tooltip"
3548
- };
3549
- //#endregion
3550
- //#region src/components/ds-tooltip/ds-tooltip.tsx
3551
- const DsTooltip = (t0) => {
3552
- const $ = c(14);
3553
- const { content, children, slotProps } = t0;
3554
- if (content === void 0) return children;
3555
- let t1;
3556
- if ($[0] !== children) {
3557
- t1 = /* @__PURE__ */ jsx(Tooltip.Trigger, {
3558
- asChild: true,
3559
- children
3560
- });
3561
- $[0] = children;
3562
- $[1] = t1;
3563
- } else t1 = $[1];
3564
- const t2 = slotProps?.content?.className;
3565
- let t3;
3566
- if ($[2] !== t2) {
3567
- t3 = classNames(ds_tooltip_module_default.tooltip, t2);
3568
- $[2] = t2;
3569
- $[3] = t3;
3570
- } else t3 = $[3];
3571
- const t4 = slotProps?.content?.style;
3572
- let t5;
3573
- if ($[4] !== content) {
3574
- t5 = isValidElement(content) ? content : /* @__PURE__ */ jsx(DsTypography, {
3575
- variant: "body-xs-reg",
3576
- children: content
3577
- });
3578
- $[4] = content;
3579
- $[5] = t5;
3580
- } else t5 = $[5];
3581
- let t6;
3582
- if ($[6] === Symbol.for("react.memo_cache_sentinel")) {
3583
- t6 = /* @__PURE__ */ jsx(Tooltip.Arrow, { className: ds_tooltip_module_default.arrow });
3584
- $[6] = t6;
3585
- } else t6 = $[6];
3586
- let t7;
3587
- if ($[7] !== t3 || $[8] !== t4 || $[9] !== t5) {
3588
- t7 = /* @__PURE__ */ jsx(Tooltip.Portal, { children: /* @__PURE__ */ jsxs(Tooltip.Content, {
3589
- className: t3,
3590
- style: t4,
3591
- side: "top",
3592
- align: "center",
3593
- sideOffset: 4,
3594
- children: [t5, t6]
3595
- }) });
3596
- $[7] = t3;
3597
- $[8] = t4;
3598
- $[9] = t5;
3599
- $[10] = t7;
3600
- } else t7 = $[10];
3601
- let t8;
3602
- if ($[11] !== t1 || $[12] !== t7) {
3603
- t8 = /* @__PURE__ */ jsx(Tooltip.Provider, {
3604
- delayDuration: 200,
3605
- children: /* @__PURE__ */ jsxs(Tooltip.Root, { children: [t1, t7] })
3606
- });
3607
- $[11] = t1;
3608
- $[12] = t7;
3609
- $[13] = t8;
3610
- } else t8 = $[13];
3611
- return t8;
3612
- };
3613
- //#endregion
3614
3827
  //#region src/components/ds-avatar/ds-avatar.tsx
3615
3828
  /**
3616
- * DsAvatar component for displaying user profile pictures or initials
3829
+ * @summary Displays a user's profile picture, falling back to initials.
3830
+ *
3831
+ * Renders a circular or rounded avatar from an image `src`. When the image is
3832
+ * missing or fails to load, the trimmed initials derived from `name` are shown
3833
+ * instead, and `name` is surfaced in a tooltip on hover.
3617
3834
  */
3618
3835
  const DsAvatar = (t0) => {
3619
3836
  const $ = c(23);
@@ -3690,13 +3907,25 @@ const DsAvatar = (t0) => {
3690
3907
  } else t11 = $[22];
3691
3908
  return t11;
3692
3909
  };
3693
- function _temp$15(w) {
3910
+ DsAvatar.displayName = "DsAvatar";
3911
+ function _temp$16(w) {
3694
3912
  return w[0];
3695
3913
  }
3696
3914
  function _temp2$8(name_0) {
3697
- return name_0.trim().split(" ").map(_temp$15).join("");
3915
+ return name_0.trim().split(" ").map(_temp$16).join("");
3698
3916
  }
3699
3917
  //#endregion
3918
+ //#region src/components/ds-avatar/ds-avatar.types.ts
3919
+ const dsAvatarSizes = [
3920
+ "xsm",
3921
+ "sm",
3922
+ "regular",
3923
+ "md",
3924
+ "lg",
3925
+ "xl"
3926
+ ];
3927
+ const dsAvatarTypes = ["circle", "rounded"];
3928
+ //#endregion
3700
3929
  //#region src/components/ds-avatar-group/ds-avatar-group.module.scss
3701
3930
  var ds_avatar_group_module_default = {
3702
3931
  "avatarGroup": "DPz7HW_avatarGroup",
@@ -3715,7 +3944,11 @@ var ds_avatar_group_module_default = {
3715
3944
  //#endregion
3716
3945
  //#region src/components/ds-avatar-group/ds-avatar-group.tsx
3717
3946
  /**
3718
- * DsAvatarGroup component for displaying a list of avatars with overlap
3947
+ * @summary Overlapping avatars with overflow collapse and tooltip.
3948
+ *
3949
+ * Renders a row of {@link DsAvatar} members that share `size` and `type`. When
3950
+ * `avatars.length` exceeds `max`, the remainder collapse behind a `+N`
3951
+ * indicator; hovering it lists the hidden names in a tooltip.
3719
3952
  */
3720
3953
  const DsAvatarGroup = (t0) => {
3721
3954
  const $ = c(17);
@@ -3751,7 +3984,7 @@ const DsAvatarGroup = (t0) => {
3751
3984
  t6 = remainingCount > 0 && /* @__PURE__ */ jsx(DsTooltip, {
3752
3985
  content: /* @__PURE__ */ jsx("div", {
3753
3986
  className: ds_avatar_group_module_default.tooltipList,
3754
- children: hiddenAvatars.map(_temp$14)
3987
+ children: hiddenAvatars.map(_temp$15)
3755
3988
  }),
3756
3989
  children: /* @__PURE__ */ jsxs("div", {
3757
3990
  className: classNames(ds_avatar_group_module_default.moreAvatar, ds_avatar_group_module_default[size], ds_avatar_group_module_default[type]),
@@ -3784,7 +4017,8 @@ const DsAvatarGroup = (t0) => {
3784
4017
  } else t7 = $[16];
3785
4018
  return t7;
3786
4019
  };
3787
- function _temp$14(avatar_0, index_0) {
4020
+ DsAvatarGroup.displayName = "DsAvatarGroup";
4021
+ function _temp$15(avatar_0, index_0) {
3788
4022
  return /* @__PURE__ */ jsx("div", { children: /* @__PURE__ */ jsx(DsTypography, {
3789
4023
  variant: "body-xs-reg",
3790
4024
  children: avatar_0.name
@@ -3807,6 +4041,8 @@ var ds_breadcrumb_module_default = {
3807
4041
  //#region src/components/ds-dropdown-menu/ds-dropdown-menu.module.scss
3808
4042
  var ds_dropdown_menu_module_default = {
3809
4043
  "actions": "AkHUyG_actions",
4044
+ "actionsRow": "AkHUyG_actionsRow",
4045
+ "actionsStretch": "AkHUyG_actionsStretch",
3810
4046
  "collapse": "AkHUyG_collapse",
3811
4047
  "content": "AkHUyG_content",
3812
4048
  "contentLegacy": "AkHUyG_contentLegacy",
@@ -3976,6 +4212,7 @@ const DsTextInput = (t0) => {
3976
4212
  } else t16 = $[41];
3977
4213
  return t16;
3978
4214
  };
4215
+ DsTextInput.displayName = "DsTextInput";
3979
4216
  //#endregion
3980
4217
  //#region src/components/ds-text-input/ds-text-input.types.ts
3981
4218
  const textInputSizes = ["small", "default"];
@@ -4180,32 +4417,33 @@ const Header$5 = (t0) => {
4180
4417
  return t2;
4181
4418
  };
4182
4419
  /**
4183
- * Actions component - footer container for action buttons
4420
+ * Actions component - sticky bottom slot for action buttons (`align="end"`) or
4421
+ * full-width elements like a logout item (`align="stretch"`).
4184
4422
  */
4185
4423
  const Actions$2 = (t0) => {
4186
- const $ = c(6);
4187
- const { children, className, style } = t0;
4188
- let t1;
4189
- if ($[0] !== className) {
4190
- t1 = classNames(ds_dropdown_menu_module_default.actions, className);
4424
+ const $ = c(7);
4425
+ const { children, align: t1, className, style } = t0;
4426
+ const t2 = (t1 === void 0 ? "end" : t1) === "stretch" ? ds_dropdown_menu_module_default.actionsStretch : ds_dropdown_menu_module_default.actionsRow;
4427
+ let t3;
4428
+ if ($[0] !== className || $[1] !== t2) {
4429
+ t3 = classNames(ds_dropdown_menu_module_default.actions, t2, className);
4191
4430
  $[0] = className;
4192
- $[1] = t1;
4193
- } else t1 = $[1];
4194
- let t2;
4195
- if ($[2] !== children || $[3] !== style || $[4] !== t1) {
4196
- t2 = /* @__PURE__ */ jsx("div", {
4197
- className: t1,
4431
+ $[1] = t2;
4432
+ $[2] = t3;
4433
+ } else t3 = $[2];
4434
+ let t4;
4435
+ if ($[3] !== children || $[4] !== style || $[5] !== t3) {
4436
+ t4 = /* @__PURE__ */ jsx("div", {
4437
+ className: t3,
4198
4438
  style,
4199
- role: "menu",
4200
- "aria-label": "Menu actions",
4201
4439
  children
4202
4440
  });
4203
- $[2] = children;
4204
- $[3] = style;
4205
- $[4] = t1;
4206
- $[5] = t2;
4207
- } else t2 = $[5];
4208
- return t2;
4441
+ $[3] = children;
4442
+ $[4] = style;
4443
+ $[5] = t3;
4444
+ $[6] = t4;
4445
+ } else t4 = $[6];
4446
+ return t4;
4209
4447
  };
4210
4448
  /**
4211
4449
  * ItemGroup component - collapsible group container
@@ -4341,7 +4579,7 @@ const ItemGroupLabel = (t0) => {
4341
4579
  className: t1,
4342
4580
  style,
4343
4581
  onClick: toggle,
4344
- onKeyDown: _temp$13,
4582
+ onKeyDown: _temp$14,
4345
4583
  children: [t2, t5]
4346
4584
  })
4347
4585
  });
@@ -4643,7 +4881,20 @@ const DsDropdownMenu = {
4643
4881
  ItemGroupContent,
4644
4882
  Separator
4645
4883
  };
4646
- function _temp$13(e) {
4884
+ DsDropdownMenu.Root.displayName = "DsDropdownMenu.Root";
4885
+ DsDropdownMenu.Trigger.displayName = "DsDropdownMenu.Trigger";
4886
+ DsDropdownMenu.Content.displayName = "DsDropdownMenu.Content";
4887
+ DsDropdownMenu.Item.displayName = "DsDropdownMenu.Item";
4888
+ DsDropdownMenu.ItemIndicator.displayName = "DsDropdownMenu.ItemIndicator";
4889
+ DsDropdownMenu.TriggerItem.displayName = "DsDropdownMenu.TriggerItem";
4890
+ DsDropdownMenu.Header.displayName = "DsDropdownMenu.Header";
4891
+ DsDropdownMenu.Actions.displayName = "DsDropdownMenu.Actions";
4892
+ DsDropdownMenu.ItemGroup.displayName = "DsDropdownMenu.ItemGroup";
4893
+ DsDropdownMenu.ItemGroupLabel.displayName = "DsDropdownMenu.ItemGroupLabel";
4894
+ DsDropdownMenu.ItemGroupContent.displayName = "DsDropdownMenu.ItemGroupContent";
4895
+ DsDropdownMenu.Separator.displayName = "DsDropdownMenu.Separator";
4896
+ DsDropdownMenuLegacy.displayName = "DsDropdownMenuLegacy";
4897
+ function _temp$14(e) {
4647
4898
  return e.stopPropagation();
4648
4899
  }
4649
4900
  function _temp2$7(e) {
@@ -4652,6 +4903,7 @@ function _temp2$7(e) {
4652
4903
  //#endregion
4653
4904
  //#region src/components/ds-dropdown-menu/ds-dropdown-menu.types.ts
4654
4905
  const dropdownMenuItemVariants = ["default", "error"];
4906
+ const dropdownMenuActionsAlignments = ["end", "stretch"];
4655
4907
  //#endregion
4656
4908
  //#region src/components/ds-breadcrumb/ds-breadcrumb.tsx
4657
4909
  /**
@@ -4708,7 +4960,7 @@ const DsBreadcrumb = (t0) => {
4708
4960
  placeholder: "Search",
4709
4961
  value: search,
4710
4962
  onValueChange: setSearch,
4711
- onKeyDown: _temp$12,
4963
+ onKeyDown: _temp$13,
4712
4964
  slots: { startAdornment: /* @__PURE__ */ jsx(DsIcon, {
4713
4965
  icon: "search",
4714
4966
  size: "tiny"
@@ -4764,7 +5016,8 @@ const DsBreadcrumb = (t0) => {
4764
5016
  } else t4 = $[16];
4765
5017
  return t4;
4766
5018
  };
4767
- function _temp$12(e) {
5019
+ DsBreadcrumb.displayName = "DsBreadcrumb";
5020
+ function _temp$13(e) {
4768
5021
  return e.stopPropagation();
4769
5022
  }
4770
5023
  //#endregion
@@ -5075,6 +5328,7 @@ const DsButton = (props) => {
5075
5328
  } else t0 = $[3];
5076
5329
  return t0;
5077
5330
  };
5331
+ DsButton.displayName = "DsButton";
5078
5332
  //#endregion
5079
5333
  //#region src/components/ds-spinner/ds-spinner.module.scss
5080
5334
  var ds_spinner_module_default = {
@@ -5193,6 +5447,7 @@ const DsSpinner = (t0) => {
5193
5447
  } else t11 = $[24];
5194
5448
  return t11;
5195
5449
  };
5450
+ DsSpinner.displayName = "DsSpinner";
5196
5451
  //#endregion
5197
5452
  //#region src/components/ds-spinner/ds-spinner.types.ts
5198
5453
  const spinnerSizes = [
@@ -5211,6 +5466,12 @@ const iconSizeMap = Object.freeze({
5211
5466
  small: "tiny",
5212
5467
  tiny: "tiny"
5213
5468
  });
5469
+ /**
5470
+ * Button for user-triggered actions that do not navigate to another route.
5471
+ * Supports color palettes, emphasis variants, sizes, icon-only layout, loading and selected states.
5472
+ *
5473
+ * @summary action button with color/variant/size, icon-only, loading and selected states
5474
+ */
5214
5475
  const DsButtonV3$1 = (t0) => {
5215
5476
  const $ = c(37);
5216
5477
  let children;
@@ -5347,6 +5608,7 @@ const buttonV3Sizes = [
5347
5608
  //#endregion
5348
5609
  //#region src/components/ds-button-v3/index.ts
5349
5610
  const DsButtonV3 = withResponsiveProps(DsButtonV3$1, ["size"]);
5611
+ DsButtonV3.displayName = "DsButtonV3";
5350
5612
  //#endregion
5351
5613
  //#region src/components/ds-card/ds-card.module.scss
5352
5614
  var ds_card_module_default = {
@@ -5470,9 +5732,8 @@ const Root$3 = (t0) => {
5470
5732
  return t14;
5471
5733
  };
5472
5734
  /**
5473
- * Card header - contains title and extra content.
5474
- * Use with DsCard.Title and DsCard.Extra for standard layout,
5475
- * or provide custom children for full flexibility.
5735
+ * Card header — title row and optional trailing content.
5736
+ * Provide custom children for full layout flexibility.
5476
5737
  */
5477
5738
  const Header$4 = (t0) => {
5478
5739
  const $ = c(12);
@@ -5603,6 +5864,10 @@ const Footer$3 = (t0) => {
5603
5864
  } else t2 = $[11];
5604
5865
  return t2;
5605
5866
  };
5867
+ Root$3.displayName = "DsCard.Root";
5868
+ Header$4.displayName = "DsCard.Header";
5869
+ Body$4.displayName = "DsCard.Body";
5870
+ Footer$3.displayName = "DsCard.Footer";
5606
5871
  const DsCard = {
5607
5872
  Root: Root$3,
5608
5873
  Header: Header$4,
@@ -6018,11 +6283,17 @@ const ContentHeader = (t0) => {
6018
6283
  } else t6 = $[21];
6019
6284
  return t6;
6020
6285
  };
6286
+ Header$3.displayName = "DsCatalogLayout.Header";
6287
+ Body$3.displayName = "DsCatalogLayout.Body";
6288
+ SideMenu$1.displayName = "DsCatalogLayout.SideMenu";
6289
+ Content$1.displayName = "DsCatalogLayout.Content";
6290
+ ContentHeader.displayName = "DsCatalogLayout.ContentHeader";
6021
6291
  DsCatalogLayout.Header = Header$3;
6022
6292
  DsCatalogLayout.Body = Body$3;
6023
6293
  DsCatalogLayout.SideMenu = SideMenu$1;
6024
6294
  DsCatalogLayout.Content = Content$1;
6025
6295
  DsCatalogLayout.ContentHeader = ContentHeader;
6296
+ DsCatalogLayout.displayName = "DsCatalogLayout";
6026
6297
  //#endregion
6027
6298
  //#region src/components/ds-checkbox/ds-checkbox.module.scss
6028
6299
  var ds_checkbox_module_default = {
@@ -6038,7 +6309,13 @@ var ds_checkbox_module_default = {
6038
6309
  //#endregion
6039
6310
  //#region src/components/ds-checkbox/ds-checkbox.tsx
6040
6311
  /**
6041
- * Design system Checkbox component
6312
+ * @summary Checkbox for single and grouped selection
6313
+ *
6314
+ * Checkbox for boolean and multi-select inputs. Use standalone for a single
6315
+ * toggle, or compose inside `DsCheckboxGroup` for multi-select lists. Import
6316
+ * `useCheckboxSelectAll` from `ds-checkbox-group` for parent "select all"
6317
+ * checkboxes. `checked` accepts `true`, `false`, or `"indeterminate"`.
6318
+ *
6042
6319
  */
6043
6320
  const DsCheckbox = (t0) => {
6044
6321
  const $ = c(25);
@@ -6155,6 +6432,7 @@ const DsCheckbox = (t0) => {
6155
6432
  } else t10 = $[24];
6156
6433
  return t10;
6157
6434
  };
6435
+ DsCheckbox.displayName = "DsCheckbox";
6158
6436
  //#endregion
6159
6437
  //#region src/components/ds-checkbox/ds-checkbox.types.ts
6160
6438
  const checkboxVariants = ["default", "warning"];
@@ -6208,6 +6486,7 @@ const DsCheckboxGroup = (t0) => {
6208
6486
  } else t4 = $[11];
6209
6487
  return t4;
6210
6488
  };
6489
+ DsCheckboxGroup.displayName = "DsCheckboxGroup";
6211
6490
  //#endregion
6212
6491
  //#region src/components/ds-checkbox-group/hooks/use-checkbox-select-all.ts
6213
6492
  /**
@@ -6362,6 +6641,7 @@ const DsChip = (t0) => {
6362
6641
  } else t17 = $[28];
6363
6642
  return t17;
6364
6643
  };
6644
+ DsChip.displayName = "DsChip";
6365
6645
  //#endregion
6366
6646
  //#region src/components/ds-chip-group/ds-chip-group.module.scss
6367
6647
  var ds_chip_group_module_default = {
@@ -6403,7 +6683,8 @@ const useChipRowCalculation = ({ chipsWrapperRef, totalFilters }) => {
6403
6683
  total = next;
6404
6684
  } else total += next;
6405
6685
  }
6406
- setVisibleCount(Math.max(1, line < 2 ? index : index - 1));
6686
+ const result = Math.max(1, line < 2 ? index : index - 1);
6687
+ setVisibleCount(result);
6407
6688
  };
6408
6689
  const rafId = requestAnimationFrame(() => {
6409
6690
  calculateVisibleChips();
@@ -6506,6 +6787,7 @@ const DsChipGroup = ({ items, label = "Filtered by:", onClearAll, onItemDelete,
6506
6787
  ]
6507
6788
  });
6508
6789
  };
6790
+ DsChipGroup.displayName = "DsChipGroup";
6509
6791
  //#endregion
6510
6792
  //#region src/components/ds-comment-bubble/ds-comment-bubble.module.scss
6511
6793
  var ds_comment_bubble_module_default = {
@@ -6631,6 +6913,7 @@ const DsTextarea = (t0) => {
6631
6913
  } else t7 = $[21];
6632
6914
  return t7;
6633
6915
  };
6916
+ DsTextarea.displayName = "DsTextarea";
6634
6917
  //#endregion
6635
6918
  //#region src/utils/format-relative-time.ts
6636
6919
  const SECONDS_PER_MINUTE = 60;
@@ -6895,6 +7178,7 @@ const DsThreadItem = (t0) => {
6895
7178
  } else t18 = $[51];
6896
7179
  return t18;
6897
7180
  };
7181
+ DsThreadItem.displayName = "DsThreadItem";
6898
7182
  //#endregion
6899
7183
  //#region src/components/ds-comment-bubble/hooks/use-click-outside.ts
6900
7184
  const useClickOutside = (ref, onClickOutside, t0) => {
@@ -7001,7 +7285,7 @@ const DsCommentThread = (t0) => {
7001
7285
  const bottomRef = useRef(null);
7002
7286
  let t1;
7003
7287
  if ($[0] !== messages) {
7004
- t1 = messages.find(_temp$11) || messages[0];
7288
+ t1 = messages.find(_temp$12) || messages[0];
7005
7289
  $[0] = messages;
7006
7290
  $[1] = t1;
7007
7291
  } else t1 = $[1];
@@ -7141,7 +7425,8 @@ const DsCommentThread = (t0) => {
7141
7425
  } else t22 = $[36];
7142
7426
  return t22;
7143
7427
  };
7144
- function _temp$11(m) {
7428
+ DsCommentThread.displayName = "DsCommentThread";
7429
+ function _temp$12(m) {
7145
7430
  return m.isInitialMessage;
7146
7431
  }
7147
7432
  //#endregion
@@ -7483,6 +7768,7 @@ const DsTag = (t0) => {
7483
7768
  } else t28 = $[63];
7484
7769
  return t28;
7485
7770
  };
7771
+ DsTag.displayName = "DsTag";
7486
7772
  //#endregion
7487
7773
  //#region src/components/ds-tag/ds-tag.types.ts
7488
7774
  const tagSizes = ["medium", "small"];
@@ -7493,16 +7779,6 @@ const tagVariants = [
7493
7779
  "key-value"
7494
7780
  ];
7495
7781
  //#endregion
7496
- //#region src/utils/merge-refs.ts
7497
- const mergeRefs = (...refs) => {
7498
- return (value) => {
7499
- refs.filter((r) => !!r).forEach((ref) => {
7500
- if (typeof ref === "function") ref(value);
7501
- else ref.current = value;
7502
- });
7503
- };
7504
- };
7505
- //#endregion
7506
7782
  //#region src/components/ds-comment-bubble/ds-comment-bubble.tsx
7507
7783
  const DsCommentBubble = (t0) => {
7508
7784
  const $ = c(74);
@@ -7840,6 +8116,7 @@ const DsCommentBubble = (t0) => {
7840
8116
  } else t20 = $[73];
7841
8117
  return t20;
7842
8118
  };
8119
+ DsCommentBubble.displayName = "DsCommentBubble";
7843
8120
  //#endregion
7844
8121
  //#region src/components/ds-comment-card/ds-comment-card.module.scss
7845
8122
  var ds_comment_card_module_default = {
@@ -7873,7 +8150,7 @@ const DsCommentCard = (t0) => {
7873
8150
  const { numericId, author, createdAt, messages, referenceTag, isActionRequired } = comment;
7874
8151
  let t4;
7875
8152
  if ($[0] !== messages) {
7876
- t4 = messages.find(_temp$10) || messages[0];
8153
+ t4 = messages.find(_temp$11) || messages[0];
7877
8154
  $[0] = messages;
7878
8155
  $[1] = t4;
7879
8156
  } else t4 = $[1];
@@ -8197,7 +8474,8 @@ const DsCommentCard = (t0) => {
8197
8474
  } else t34 = $[78];
8198
8475
  return t34;
8199
8476
  };
8200
- function _temp$10(m) {
8477
+ DsCommentCard.displayName = "DsCommentCard";
8478
+ function _temp$11(m) {
8201
8479
  return m.isInitialMessage;
8202
8480
  }
8203
8481
  function _temp2$6(m_0) {
@@ -8286,6 +8564,7 @@ const DsCommentIndicator = (t0) => {
8286
8564
  } else t7 = $[16];
8287
8565
  return t7;
8288
8566
  };
8567
+ DsCommentIndicator.displayName = "DsCommentIndicator";
8289
8568
  //#endregion
8290
8569
  //#region src/components/ds-comments-drawer/ds-comments-drawer.module.scss
8291
8570
  var ds_comments_drawer_module_default = {
@@ -8408,8 +8687,8 @@ const useArkDialogBodyLockCleanup = (open, enabled) => {
8408
8687
  //#endregion
8409
8688
  //#region src/components/ds-drawer/ds-drawer.tsx
8410
8689
  const DsDrawer = (t0) => {
8411
- const $ = c(25);
8412
- const { open, onOpenChange, columns: t1, position: t2, backdrop: t3, closeOnEscape: t4, closeOnInteractOutside: t5, portal: t6, style, className, children } = t0;
8690
+ const $ = c(28);
8691
+ const { open, onOpenChange, onOpenAutoFocus, columns: t1, position: t2, backdrop: t3, closeOnEscape: t4, closeOnInteractOutside: t5, portal: t6, style, className, children } = t0;
8413
8692
  const columns = t1 === void 0 ? 4 : t1;
8414
8693
  const position = t2 === void 0 ? "end" : t2;
8415
8694
  const backdrop = t3 === void 0 ? false : t3;
@@ -8427,75 +8706,88 @@ const DsDrawer = (t0) => {
8427
8706
  $[1] = t7;
8428
8707
  } else t7 = $[1];
8429
8708
  const handleOpenChange = t7;
8430
- const Wrapper = portal ? Portal : Fragment$1;
8431
8709
  let t8;
8432
- if ($[2] !== backdrop) {
8433
- t8 = backdrop && /* @__PURE__ */ jsx(Dialog.Backdrop, { className: ds_drawer_module_default.backdrop });
8434
- $[2] = backdrop;
8710
+ if ($[2] !== onOpenAutoFocus) {
8711
+ t8 = onOpenAutoFocus ? () => {
8712
+ const event = new Event("openAutoFocus", { cancelable: true });
8713
+ onOpenAutoFocus(event);
8714
+ return event.defaultPrevented ? document.activeElement : void 0;
8715
+ } : void 0;
8716
+ $[2] = onOpenAutoFocus;
8435
8717
  $[3] = t8;
8436
8718
  } else t8 = $[3];
8437
- const t9 = ds_drawer_module_default[`position-${position}`];
8438
- const t10 = ds_drawer_module_default[`cols-${resolvedColumns}`];
8439
- let t11;
8440
- if ($[4] !== className || $[5] !== t10 || $[6] !== t9) {
8441
- t11 = classNames(ds_drawer_module_default.drawer, t9, className, t10);
8442
- $[4] = className;
8443
- $[5] = t10;
8444
- $[6] = t9;
8445
- $[7] = t11;
8446
- } else t11 = $[7];
8719
+ const initialFocusEl = t8;
8720
+ const Wrapper = portal ? Portal : Fragment$1;
8721
+ let t9;
8722
+ if ($[4] !== backdrop) {
8723
+ t9 = backdrop && /* @__PURE__ */ jsx(Dialog.Backdrop, { className: ds_drawer_module_default.backdrop });
8724
+ $[4] = backdrop;
8725
+ $[5] = t9;
8726
+ } else t9 = $[5];
8727
+ const t10 = ds_drawer_module_default[`position-${position}`];
8728
+ const t11 = ds_drawer_module_default[`cols-${resolvedColumns}`];
8447
8729
  let t12;
8448
- if ($[8] !== children) {
8449
- t12 = /* @__PURE__ */ jsx("div", {
8450
- className: ds_drawer_module_default.content,
8451
- children
8452
- });
8453
- $[8] = children;
8730
+ if ($[6] !== className || $[7] !== t10 || $[8] !== t11) {
8731
+ t12 = classNames(ds_drawer_module_default.drawer, t10, className, t11);
8732
+ $[6] = className;
8733
+ $[7] = t10;
8734
+ $[8] = t11;
8454
8735
  $[9] = t12;
8455
8736
  } else t12 = $[9];
8456
8737
  let t13;
8457
- if ($[10] !== style || $[11] !== t11 || $[12] !== t12) {
8458
- t13 = /* @__PURE__ */ jsx(Dialog.Positioner, {
8738
+ if ($[10] !== children) {
8739
+ t13 = /* @__PURE__ */ jsx("div", {
8740
+ className: ds_drawer_module_default.content,
8741
+ children
8742
+ });
8743
+ $[10] = children;
8744
+ $[11] = t13;
8745
+ } else t13 = $[11];
8746
+ let t14;
8747
+ if ($[12] !== style || $[13] !== t12 || $[14] !== t13) {
8748
+ t14 = /* @__PURE__ */ jsx(Dialog.Positioner, {
8459
8749
  className: ds_drawer_module_default.positioner,
8460
8750
  children: /* @__PURE__ */ jsx(Dialog.Content, {
8461
8751
  style,
8462
- className: t11,
8463
- children: t12
8752
+ className: t12,
8753
+ children: t13
8464
8754
  })
8465
8755
  });
8466
- $[10] = style;
8467
- $[11] = t11;
8468
- $[12] = t12;
8469
- $[13] = t13;
8470
- } else t13 = $[13];
8471
- let t14;
8472
- if ($[14] !== Wrapper || $[15] !== t13 || $[16] !== t8) {
8473
- t14 = /* @__PURE__ */ jsxs(Wrapper, { children: [t8, t13] });
8474
- $[14] = Wrapper;
8475
- $[15] = t13;
8476
- $[16] = t8;
8477
- $[17] = t14;
8478
- } else t14 = $[17];
8756
+ $[12] = style;
8757
+ $[13] = t12;
8758
+ $[14] = t13;
8759
+ $[15] = t14;
8760
+ } else t14 = $[15];
8479
8761
  let t15;
8480
- if ($[18] !== backdrop || $[19] !== closeOnEscape || $[20] !== closeOnInteractOutside || $[21] !== handleOpenChange || $[22] !== open || $[23] !== t14) {
8481
- t15 = /* @__PURE__ */ jsx(Dialog.Root, {
8762
+ if ($[16] !== Wrapper || $[17] !== t14 || $[18] !== t9) {
8763
+ t15 = /* @__PURE__ */ jsxs(Wrapper, { children: [t9, t14] });
8764
+ $[16] = Wrapper;
8765
+ $[17] = t14;
8766
+ $[18] = t9;
8767
+ $[19] = t15;
8768
+ } else t15 = $[19];
8769
+ let t16;
8770
+ if ($[20] !== backdrop || $[21] !== closeOnEscape || $[22] !== closeOnInteractOutside || $[23] !== handleOpenChange || $[24] !== initialFocusEl || $[25] !== open || $[26] !== t15) {
8771
+ t16 = /* @__PURE__ */ jsx(Dialog.Root, {
8482
8772
  open,
8483
8773
  onOpenChange: handleOpenChange,
8484
8774
  modal: backdrop,
8485
8775
  closeOnEscape,
8486
8776
  closeOnInteractOutside,
8487
8777
  preventScroll: backdrop,
8488
- children: t14
8489
- });
8490
- $[18] = backdrop;
8491
- $[19] = closeOnEscape;
8492
- $[20] = closeOnInteractOutside;
8493
- $[21] = handleOpenChange;
8494
- $[22] = open;
8495
- $[23] = t14;
8496
- $[24] = t15;
8497
- } else t15 = $[24];
8498
- return t15;
8778
+ initialFocusEl,
8779
+ children: t15
8780
+ });
8781
+ $[20] = backdrop;
8782
+ $[21] = closeOnEscape;
8783
+ $[22] = closeOnInteractOutside;
8784
+ $[23] = handleOpenChange;
8785
+ $[24] = initialFocusEl;
8786
+ $[25] = open;
8787
+ $[26] = t15;
8788
+ $[27] = t16;
8789
+ } else t16 = $[27];
8790
+ return t16;
8499
8791
  };
8500
8792
  const Header$2 = (t0) => {
8501
8793
  const $ = c(6);
@@ -8675,6 +8967,13 @@ const Actions$1 = (t0) => {
8675
8967
  } else t2 = $[5];
8676
8968
  return t2;
8677
8969
  };
8970
+ Header$2.displayName = "DsDrawer.Header";
8971
+ Title$1.displayName = "DsDrawer.Title";
8972
+ CloseTrigger$1.displayName = "DsDrawer.CloseTrigger";
8973
+ Toolbar.displayName = "DsDrawer.Toolbar";
8974
+ Body$2.displayName = "DsDrawer.Body";
8975
+ Footer$2.displayName = "DsDrawer.Footer";
8976
+ Actions$1.displayName = "DsDrawer.Actions";
8678
8977
  DsDrawer.Header = Header$2;
8679
8978
  DsDrawer.Title = Title$1;
8680
8979
  DsDrawer.CloseTrigger = CloseTrigger$1;
@@ -8682,6 +8981,7 @@ DsDrawer.Toolbar = Toolbar;
8682
8981
  DsDrawer.Body = Body$2;
8683
8982
  DsDrawer.Footer = Footer$2;
8684
8983
  DsDrawer.Actions = Actions$1;
8984
+ DsDrawer.displayName = "DsDrawer";
8685
8985
  //#endregion
8686
8986
  //#region src/components/ds-tag-filter/ds-tag-filter.module.scss
8687
8987
  var ds_tag_filter_module_default = {
@@ -8774,9 +9074,10 @@ const useTagOverflowCalculation = (t0) => {
8774
9074
  return;
8775
9075
  }
8776
9076
  const { count } = fitTagsInRow(tagWidths, getContainerAvailableWidth(container), gap);
9077
+ const hasOverflow = count < tagWidths.length;
8777
9078
  setState({
8778
9079
  visibleTagCount: count,
8779
- hasOverflow: count < tagWidths.length
9080
+ hasOverflow
8780
9081
  });
8781
9082
  };
8782
9083
  $[1] = containerRef;
@@ -9073,6 +9374,7 @@ const DsTagFilter = (t0) => {
9073
9374
  } else t25 = $[61];
9074
9375
  return t25;
9075
9376
  };
9377
+ DsTagFilter.displayName = "DsTagFilter";
9076
9378
  //#endregion
9077
9379
  //#region src/components/ds-comments-drawer/comments-filters.ts
9078
9380
  const initialFilterState = {
@@ -9442,12 +9744,19 @@ const Actions = (t0) => {
9442
9744
  } else t2 = $[5];
9443
9745
  return t2;
9444
9746
  };
9747
+ Header$1.displayName = "DsModal.Header";
9748
+ Title.displayName = "DsModal.Title";
9749
+ CloseTrigger.displayName = "DsModal.CloseTrigger";
9750
+ Body$1.displayName = "DsModal.Body";
9751
+ Footer$1.displayName = "DsModal.Footer";
9752
+ Actions.displayName = "DsModal.Actions";
9445
9753
  DsModal.Header = Header$1;
9446
9754
  DsModal.Title = Title;
9447
9755
  DsModal.CloseTrigger = CloseTrigger;
9448
9756
  DsModal.Body = Body$1;
9449
9757
  DsModal.Footer = Footer$1;
9450
9758
  DsModal.Actions = Actions;
9759
+ DsModal.displayName = "DsModal";
9451
9760
  //#endregion
9452
9761
  //#region src/components/ds-tabs/components/ds-tabs-list/ds-tabs-list.module.scss
9453
9762
  var ds_tabs_list_module_default = { "tabList": "vT68YW_tabList" };
@@ -9484,6 +9793,7 @@ const DsTabsList = (t0) => {
9484
9793
  } else t3 = $[6];
9485
9794
  return t3;
9486
9795
  };
9796
+ DsTabsList.displayName = "DsTabs.List";
9487
9797
  //#endregion
9488
9798
  //#region src/components/ds-tabs/components/ds-tabs-tab/ds-tabs-tab.module.scss
9489
9799
  var ds_tabs_tab_module_default = {
@@ -9609,7 +9919,7 @@ const DsTabsTab = (t0) => {
9609
9919
  })
9610
9920
  }), /* @__PURE__ */ jsx(DsDropdownMenu.Content, {
9611
9921
  className: ds_tabs_tab_module_default.menuContent,
9612
- children: menuActionItems.map(_temp$9)
9922
+ children: menuActionItems.map(_temp$10)
9613
9923
  })]
9614
9924
  });
9615
9925
  $[17] = handleMenuActionSelect;
@@ -9647,7 +9957,8 @@ const DsTabsTab = (t0) => {
9647
9957
  } else t6 = $[29];
9648
9958
  return t6;
9649
9959
  };
9650
- function _temp$9(item) {
9960
+ DsTabsTab.displayName = "DsTabs.Tab";
9961
+ function _temp$10(item) {
9651
9962
  return /* @__PURE__ */ jsx(DsDropdownMenu.Item, {
9652
9963
  value: item.value,
9653
9964
  disabled: item.disabled,
@@ -9691,6 +10002,7 @@ const DsTabsContent = (t0) => {
9691
10002
  } else t2 = $[6];
9692
10003
  return t2;
9693
10004
  };
10005
+ DsTabsContent.displayName = "DsTabs.Content";
9694
10006
  //#endregion
9695
10007
  //#region src/components/ds-tabs/ds-tabs.module.scss
9696
10008
  var ds_tabs_module_default = { "root": "gZYmYG_root" };
@@ -9743,6 +10055,7 @@ const DsTabsRoot = (t0) => {
9743
10055
  } else t5 = $[12];
9744
10056
  return t5;
9745
10057
  };
10058
+ DsTabsRoot.displayName = "DsTabs.Root";
9746
10059
  const DsTabs = {
9747
10060
  Root: DsTabsRoot,
9748
10061
  List: DsTabsList,
@@ -10171,7 +10484,8 @@ const YearView$1 = () => {
10171
10484
  } else t0 = $[0];
10172
10485
  return t0;
10173
10486
  };
10174
- function _temp$8(weekDay, id) {
10487
+ DsDateInput.displayName = "DsDateInput";
10488
+ function _temp$9(weekDay, id) {
10175
10489
  return /* @__PURE__ */ jsx(DatePicker.TableHeader, {
10176
10490
  className: ds_date_input_module_default.tableHeader,
10177
10491
  children: /* @__PURE__ */ jsx(DsTypography, {
@@ -10206,7 +10520,7 @@ function _temp4$2(datePicker) {
10206
10520
  className: ds_date_input_module_default.tableHead,
10207
10521
  children: /* @__PURE__ */ jsx(DatePicker.TableRow, {
10208
10522
  className: ds_date_input_module_default.tableRow,
10209
- children: datePicker.weekDays.map(_temp$8)
10523
+ children: datePicker.weekDays.map(_temp$9)
10210
10524
  })
10211
10525
  }), /* @__PURE__ */ jsx(DatePicker.TableBody, {
10212
10526
  className: ds_date_input_module_default.tableBody,
@@ -10849,7 +11163,7 @@ const DsCommentsDrawer = (t0) => {
10849
11163
  authorsMap.set(comment.author.id, comment.author.name);
10850
11164
  comment.labels?.forEach((label) => labelsSet.add(label));
10851
11165
  });
10852
- availableAuthors = Array.from(authorsMap.entries()).map(_temp$7);
11166
+ availableAuthors = Array.from(authorsMap.entries()).map(_temp$8);
10853
11167
  availableLabels = Array.from(labelsSet);
10854
11168
  let filteredComments = comments;
10855
11169
  if (!showResolved) filteredComments = filteredComments.filter(_temp2$4);
@@ -10923,7 +11237,10 @@ const DsCommentsDrawer = (t0) => {
10923
11237
  if ($[49] !== appliedFilters || $[50] !== filterTags) {
10924
11238
  t21 = (item) => {
10925
11239
  const tag = filterTags.find((c_2) => c_2.id === item.id);
10926
- if (tag) setAppliedFilters(removeTag(appliedFilters, tag));
11240
+ if (tag) {
11241
+ const newFilters = removeTag(appliedFilters, tag);
11242
+ setAppliedFilters(newFilters);
11243
+ }
10927
11244
  };
10928
11245
  $[49] = appliedFilters;
10929
11246
  $[50] = filterTags;
@@ -11198,7 +11515,8 @@ const DsCommentsDrawer = (t0) => {
11198
11515
  } else t18 = $[101];
11199
11516
  return t18;
11200
11517
  };
11201
- function _temp$7(t0) {
11518
+ DsCommentsDrawer.displayName = "DsCommentsDrawer";
11519
+ function _temp$8(t0) {
11202
11520
  const [id, name] = t0;
11203
11521
  return {
11204
11522
  id,
@@ -11244,6 +11562,7 @@ DsConfirmation.CloseTrigger = DsModal.CloseTrigger;
11244
11562
  DsConfirmation.Body = DsModal.Body;
11245
11563
  DsConfirmation.Footer = DsModal.Footer;
11246
11564
  DsConfirmation.Actions = DsModal.Actions;
11565
+ DsConfirmation.displayName = "DsConfirmation";
11247
11566
  //#endregion
11248
11567
  //#region src/components/ds-date-picker/ds-date-picker.utils.ts
11249
11568
  const toIntlDate = (date) => date ? fromDate(date, getLocalTimeZone()) : date;
@@ -11900,6 +12219,7 @@ const DsTimePicker = (props) => {
11900
12219
  } else t26 = $[71];
11901
12220
  return t26;
11902
12221
  };
12222
+ DsTimePicker.displayName = "DsTimePicker";
11903
12223
  //#endregion
11904
12224
  //#region src/components/ds-date-picker/ds-date-picker.module.scss
11905
12225
  var ds_date_picker_module_default = {
@@ -11998,7 +12318,7 @@ const DayView = (t0) => {
11998
12318
  className: calendar_table_module_default.table,
11999
12319
  children: [/* @__PURE__ */ jsx(DatePicker.TableHead, { children: /* @__PURE__ */ jsx(DatePicker.TableRow, {
12000
12320
  className: calendar_table_module_default.tableRow,
12001
- children: datePicker.weekDays.map(_temp$6)
12321
+ children: datePicker.weekDays.map(_temp$7)
12002
12322
  }) }), /* @__PURE__ */ jsx(DatePicker.TableBody, {
12003
12323
  className: calendar_table_module_default.tableBody,
12004
12324
  children: datePicker.weeks.map(_temp3$3)
@@ -12013,7 +12333,7 @@ const DayView = (t0) => {
12013
12333
  } else t1 = $[1];
12014
12334
  return t1;
12015
12335
  };
12016
- function _temp$6(weekDay, idx) {
12336
+ function _temp$7(weekDay, idx) {
12017
12337
  return /* @__PURE__ */ jsx(DatePicker.TableHeader, {
12018
12338
  className: calendar_table_module_default.tableHeader,
12019
12339
  children: /* @__PURE__ */ jsx(DsTypography, {
@@ -12057,7 +12377,7 @@ const MonthView = () => {
12057
12377
  } else t0 = $[0];
12058
12378
  return t0;
12059
12379
  };
12060
- function _temp$5(month, monthIdx) {
12380
+ function _temp$6(month, monthIdx) {
12061
12381
  return /* @__PURE__ */ jsx(DatePicker.TableCell, {
12062
12382
  value: month.value,
12063
12383
  children: /* @__PURE__ */ jsx(DatePicker.TableCellTrigger, {
@@ -12072,7 +12392,7 @@ function _temp$5(month, monthIdx) {
12072
12392
  function _temp2$2(months, rowIdx) {
12073
12393
  return /* @__PURE__ */ jsx(DatePicker.TableRow, {
12074
12394
  className: calendar_table_module_default.tableRow,
12075
- children: months.map(_temp$5)
12395
+ children: months.map(_temp$6)
12076
12396
  }, rowIdx);
12077
12397
  }
12078
12398
  function _temp3$2(datePicker) {
@@ -12104,7 +12424,7 @@ const YearView = () => {
12104
12424
  } else t0 = $[0];
12105
12425
  return t0;
12106
12426
  };
12107
- function _temp$4(year, yearIdx) {
12427
+ function _temp$5(year, yearIdx) {
12108
12428
  return /* @__PURE__ */ jsx(DatePicker.TableCell, {
12109
12429
  value: year.value,
12110
12430
  children: /* @__PURE__ */ jsx(DatePicker.TableCellTrigger, {
@@ -12119,7 +12439,7 @@ function _temp$4(year, yearIdx) {
12119
12439
  function _temp2$1(years, rowIdx) {
12120
12440
  return /* @__PURE__ */ jsx(DatePicker.TableRow, {
12121
12441
  className: calendar_table_module_default.tableRow,
12122
- children: years.map(_temp$4)
12442
+ children: years.map(_temp$5)
12123
12443
  }, rowIdx);
12124
12444
  }
12125
12445
  function _temp3$1(datePicker) {
@@ -12133,6 +12453,13 @@ function _temp3$1(datePicker) {
12133
12453
  }
12134
12454
  //#endregion
12135
12455
  //#region src/components/ds-date-picker/ds-date-picker.tsx
12456
+ /**
12457
+ * @summary Date and optional time input with calendar popover and manual typing.
12458
+ *
12459
+ * Supports controlled (`value` + `onChange`) and uncontrolled (`defaultValue`) modes.
12460
+ * Pass `withTime` to include a nested time picker. A clear button appears when a
12461
+ * value is set unless `hideClearButton` is set.
12462
+ */
12136
12463
  const DsDatePicker = (t0) => {
12137
12464
  const $ = c(123);
12138
12465
  let _defaultValue;
@@ -12271,7 +12598,10 @@ const DsDatePicker = (t0) => {
12271
12598
  min,
12272
12599
  max,
12273
12600
  withTime
12274
- })) setValue(parseDate$1(text));
12601
+ })) {
12602
+ const parsedValue = parseDate$1(text);
12603
+ setValue(parsedValue);
12604
+ }
12275
12605
  };
12276
12606
  $[37] = max;
12277
12607
  $[38] = min;
@@ -12573,6 +12903,7 @@ const DsDatePicker = (t0) => {
12573
12903
  } else t39 = $[122];
12574
12904
  return t39;
12575
12905
  };
12906
+ DsDatePicker.displayName = "DsDatePicker";
12576
12907
  //#endregion
12577
12908
  //#region src/components/ds-select/ds-select.module.scss
12578
12909
  var ds_select_module_default = {
@@ -12703,7 +13034,7 @@ const DsSelect = (t0) => {
12703
13034
  const internalOptions = multiselectProps.multiple ? [SELECT_ALL_OPTION, ...userOptions] : userOptions;
12704
13035
  const collection = createListCollection$1({
12705
13036
  items: internalOptions,
12706
- itemToValue: _temp$3
13037
+ itemToValue: _temp$4
12707
13038
  });
12708
13039
  let t2;
12709
13040
  if ($[0] !== searchTerm) {
@@ -12928,7 +13259,8 @@ function getItemCheckedState({ item, select, options }) {
12928
13259
  if (select.selectedItems.length === options.length - 1) return true;
12929
13260
  return select.hasSelectedItems ? "indeterminate" : false;
12930
13261
  }
12931
- function _temp$3(item) {
13262
+ DsSelect.displayName = "DsSelect";
13263
+ function _temp$4(item) {
12932
13264
  return item.value;
12933
13265
  }
12934
13266
  function _temp2(value_0) {
@@ -13099,6 +13431,7 @@ const DsNumberInput = (t0) => {
13099
13431
  } else t18 = $[32];
13100
13432
  return t18;
13101
13433
  };
13434
+ DsNumberInput.displayName = "DsNumberInput";
13102
13435
  //#endregion
13103
13436
  //#region src/components/ds-password-input/ds-password-input.module.scss
13104
13437
  var ds_password_input_module_default = {
@@ -13222,6 +13555,7 @@ const DsPasswordInput = (t0) => {
13222
13555
  } else t13 = $[26];
13223
13556
  return t13;
13224
13557
  };
13558
+ DsPasswordInput.displayName = "DsPasswordInput";
13225
13559
  //#endregion
13226
13560
  //#region src/components/ds-form-control/ds-form-control.module.scss
13227
13561
  var ds_form_control_module_default = {
@@ -13384,6 +13718,8 @@ DsFormControl.TimePicker = controlify(DsTimePicker);
13384
13718
  DsFormControl.Textarea = controlify(DsTextarea);
13385
13719
  DsFormControl.Select = controlify(DsSelect);
13386
13720
  DsFormControl.Description = DsFormControlDescription;
13721
+ DsFormControl.displayName = "DsFormControl";
13722
+ DsFormControl.Description.displayName = "DsFormControl.Description";
13387
13723
  //#endregion
13388
13724
  //#region src/components/ds-form-control/ds-form-control.types.ts
13389
13725
  const controlStatuses = [
@@ -13618,6 +13954,7 @@ const DsDateRangePicker = (t0) => {
13618
13954
  } else t29 = $[61];
13619
13955
  return t29;
13620
13956
  };
13957
+ DsDateRangePicker.displayName = "DsDateRangePicker";
13621
13958
  //#endregion
13622
13959
  //#region src/components/ds-dialog/ds-dialog.module.scss
13623
13960
  var ds_dialog_module_default = {
@@ -13629,6 +13966,13 @@ var ds_dialog_module_default = {
13629
13966
  };
13630
13967
  //#endregion
13631
13968
  //#region src/components/ds-dialog/ds-dialog.tsx
13969
+ /**
13970
+ * @summary Lightweight controlled dialog for simple panels and popovers.
13971
+ *
13972
+ * Renders a Radix dialog with required accessible title, optional description,
13973
+ * and custom body content. Use for focused overlays and menu-style panels.
13974
+ * Prefer `DsModal` when you need structured header, body, and footer sections.
13975
+ */
13632
13976
  const DsDialog = ({ open, onOpenChange, title, hideTitle, description, hideDescription, children, className, anchorRef, customPosition, modal = true }) => {
13633
13977
  let style = {};
13634
13978
  if (customPosition) style = {
@@ -13675,6 +14019,7 @@ const DsDialog = ({ open, onOpenChange, title, hideTitle, description, hideDescr
13675
14019
  })] })
13676
14020
  });
13677
14021
  };
14022
+ DsDialog.displayName = "DsDialog";
13678
14023
  //#endregion
13679
14024
  //#region src/components/ds-divider/ds-divider.module.scss
13680
14025
  var ds_divider_module_default = {
@@ -13719,6 +14064,7 @@ const DsDivider = (t0) => {
13719
14064
  } else t4 = $[8];
13720
14065
  return t4;
13721
14066
  };
14067
+ DsDivider.displayName = "DsDivider";
13722
14068
  //#endregion
13723
14069
  //#region src/components/ds-expandable-text-input/ds-expandable-text-input.module.scss
13724
14070
  var ds_expandable_text_input_module_default = {
@@ -13895,6 +14241,7 @@ function InputExpander(t0) {
13895
14241
  } else t1 = $[1];
13896
14242
  return t1;
13897
14243
  }
14244
+ DsExpandableTextInput.displayName = "DsExpandableTextInput";
13898
14245
  //#endregion
13899
14246
  //#region src/components/ds-file-upload/utils/get-error-message.ts
13900
14247
  const FILE_ERROR_MESSAGES = {
@@ -14159,7 +14506,7 @@ const FileUploadItem = (t0) => {
14159
14506
  } else t20 = $[46];
14160
14507
  let t21;
14161
14508
  if ($[47] !== errors || $[48] !== status) {
14162
- t21 = status === "error" && errors?.length && errors.map(_temp$2);
14509
+ t21 = status === "error" && errors?.length && errors.map(_temp$3);
14163
14510
  $[47] = errors;
14164
14511
  $[48] = status;
14165
14512
  $[49] = t21;
@@ -14202,7 +14549,7 @@ const FileUploadItem = (t0) => {
14202
14549
  } else t23 = $[60];
14203
14550
  return t23;
14204
14551
  };
14205
- function _temp$2(error) {
14552
+ function _temp$3(error) {
14206
14553
  return /* @__PURE__ */ jsxs("div", {
14207
14554
  className: file_upload_item_module_default.errorMessage,
14208
14555
  children: [/* @__PURE__ */ jsx(DsIcon, {
@@ -14696,10 +15043,11 @@ function useFileUpload({ adapter, autoUpload = true, maxConcurrent = 3, maxFiles
14696
15043
  filesToAdd = files_0.slice(0, availableSlots);
14697
15044
  rejectedFiles = files_0.slice(availableSlots);
14698
15045
  } else return files_0;
14699
- addRejectedFiles(rejectedFiles.map((file_3) => ({
15046
+ const rejectedFilesWithErrors = rejectedFiles.map((file_3) => ({
14700
15047
  file: file_3,
14701
15048
  errors: ["TOO_MANY_FILES"]
14702
- })));
15049
+ }));
15050
+ addRejectedFiles(rejectedFilesWithErrors);
14703
15051
  return filesToAdd;
14704
15052
  };
14705
15053
  const addNewFiles = (filesToUpload) => {
@@ -14714,8 +15062,10 @@ function useFileUpload({ adapter, autoUpload = true, maxConcurrent = 3, maxFiles
14714
15062
  };
14715
15063
  const addFiles = (newFiles_1) => {
14716
15064
  const addedFiles = getAddedFiles(newFiles_1);
14717
- markDuplicates(getDuplicatedFiles(newFiles_1));
14718
- const uploadedFiles_1 = addNewFiles(markMaxFiles(addedFiles));
15065
+ const duplicateFiles = getDuplicatedFiles(newFiles_1);
15066
+ markDuplicates(duplicateFiles);
15067
+ const filesToAdd_0 = markMaxFiles(addedFiles);
15068
+ const uploadedFiles_1 = addNewFiles(filesToAdd_0);
14719
15069
  uploadNewFiles(uploadedFiles_1);
14720
15070
  return uploadedFiles_1;
14721
15071
  };
@@ -14759,6 +15109,7 @@ function useFileUpload({ adapter, autoUpload = true, maxConcurrent = 3, maxFiles
14759
15109
  updateFileProgress(fileId_2, 100);
14760
15110
  onFileUploadComplete?.(fileId_2, result);
14761
15111
  } catch (error_0) {
15112
+ if (abortController.signal.aborted) return;
14762
15113
  const errorMessage = error_0 instanceof Error ? error_0.message : "Upload failed";
14763
15114
  let status_0 = "interrupted";
14764
15115
  if (error_0 instanceof FileUploadError) status_0 = error_0.isRetryable ? "interrupted" : "error";
@@ -14959,6 +15310,7 @@ const DsFileUpload = (t0) => {
14959
15310
  } else t5 = $[32];
14960
15311
  return t5;
14961
15312
  };
15313
+ DsFileUpload.displayName = "DsFileUpload";
14962
15314
  //#endregion
14963
15315
  //#region src/components/ds-filter-status-icon/ds-filter-status-icon.module.scss
14964
15316
  var ds_filter_status_icon_module_default = {
@@ -15013,6 +15365,7 @@ const DsFilterStatusIcon = (t0) => {
15013
15365
  } else t6 = $[8];
15014
15366
  return t6;
15015
15367
  };
15368
+ DsFilterStatusIcon.displayName = "DsFilterStatusIcon";
15016
15369
  //#endregion
15017
15370
  //#region src/components/ds-filter-status-icon/ds-filter-status-icon.types.ts
15018
15371
  const filterStatuses = [
@@ -15055,6 +15408,8 @@ const DsGridItemBase = ({ children, colSpan, colStart, rowSpan, rowStart, classN
15055
15408
  //#region src/components/ds-grid/index.ts
15056
15409
  const DsGrid = withResponsiveProps(DsGridBase, ["gutter", "margin"]);
15057
15410
  const DsGridItem = withResponsiveProps(DsGridItemBase, ["colSpan", "rowSpan"]);
15411
+ DsGrid.displayName = "DsGrid";
15412
+ DsGridItem.displayName = "DsGridItem";
15058
15413
  //#endregion
15059
15414
  //#region src/components/ds-key-value-pair/ds-key-value-pair.module.scss
15060
15415
  var ds_key_value_pair_module_default = {
@@ -15149,6 +15504,7 @@ const DsKeyValuePair = (t0) => {
15149
15504
  } else t11 = $[21];
15150
15505
  return t11;
15151
15506
  };
15507
+ DsKeyValuePair.displayName = "DsKeyValuePair";
15152
15508
  //#endregion
15153
15509
  //#region src/components/ds-key-value-pair/ds-key-value-pair.types.ts
15154
15510
  const dsKeyValuePairOrientations = ["vertical", "horizontal"];
@@ -15308,6 +15664,7 @@ const DsLoader = (t0) => {
15308
15664
  } else t4 = $[11];
15309
15665
  return t4;
15310
15666
  };
15667
+ DsLoader.displayName = "DsLoader";
15311
15668
  //#endregion
15312
15669
  //#region src/components/ds-loader/ds-loader.types.ts
15313
15670
  const loaderVariants = ["spinner", "pulsing"];
@@ -15539,6 +15896,7 @@ function DsPanelCollapseButton(t0) {
15539
15896
  //#endregion
15540
15897
  //#region src/components/ds-panel/index.ts
15541
15898
  const DsPanel = withResponsiveProps(DsPanelBase, ["width"]);
15899
+ DsPanel.displayName = "DsPanel";
15542
15900
  //#endregion
15543
15901
  //#region src/components/ds-popover/ds-popover.module.scss
15544
15902
  var ds_popover_module_default = {
@@ -15848,6 +16206,14 @@ const DsPopoverLegacy = (t0) => {
15848
16206
  } else t5 = $[9];
15849
16207
  return t5;
15850
16208
  };
16209
+ DsPopoverLegacy.displayName = "DsPopover";
16210
+ DsPopoverRoot.displayName = "DsPopover.Root";
16211
+ DsPopoverTrigger.displayName = "DsPopover.Trigger";
16212
+ DsPopoverPanel.displayName = "DsPopover.Panel";
16213
+ DsPopoverHeader.displayName = "DsPopover.Header";
16214
+ DsPopoverContent.displayName = "DsPopover.Content";
16215
+ DsPopoverContentItem.displayName = "DsPopover.ContentItem";
16216
+ DsPopoverFooter.displayName = "DsPopover.Footer";
15851
16217
  const DsPopover = Object.assign(DsPopoverLegacy, {
15852
16218
  Root: DsPopoverRoot,
15853
16219
  Trigger: DsPopoverTrigger,
@@ -16158,6 +16524,7 @@ const DsProgressArc = (t0) => {
16158
16524
  } else t20 = $[64];
16159
16525
  return t20;
16160
16526
  };
16527
+ DsProgressArc.displayName = "DsProgressArc";
16161
16528
  //#endregion
16162
16529
  //#region src/components/ds-progress-arc/ds-progress-arc.types.ts
16163
16530
  const progressArcSizes = ["small", "medium"];
@@ -16292,6 +16659,7 @@ const DsProgressDonut = (t0) => {
16292
16659
  } else t14 = $[25];
16293
16660
  return t14;
16294
16661
  };
16662
+ DsProgressDonut.displayName = "DsProgressDonut";
16295
16663
  //#endregion
16296
16664
  //#region src/components/ds-progress-donut/ds-progress-donut.types.ts
16297
16665
  const progressDonutSizes = ["small", "medium"];
@@ -16495,6 +16863,7 @@ const DsProgressLinear = (t0) => {
16495
16863
  } else t19 = $[36];
16496
16864
  return t19;
16497
16865
  };
16866
+ DsProgressLinear.displayName = "DsProgressLinear";
16498
16867
  //#endregion
16499
16868
  //#region src/components/ds-progress-linear/ds-progress-linear.types.ts
16500
16869
  const progressLinearVariants = [
@@ -16510,6 +16879,264 @@ const progressLinearSizes = [
16510
16879
  "large"
16511
16880
  ];
16512
16881
  //#endregion
16882
+ //#region src/components/ds-progress-task-bar/ds-progress-task-bar.module.scss
16883
+ var ds_progress_task_bar_module_default = {
16884
+ "bar": "SN3VFW_bar",
16885
+ "segment": "SN3VFW_segment",
16886
+ "segmentCompleted": "SN3VFW_segmentCompleted",
16887
+ "segmentFailed": "SN3VFW_segmentFailed",
16888
+ "segmentRunning": "SN3VFW_segmentRunning",
16889
+ "statusIcon": "SN3VFW_statusIcon",
16890
+ "total": "SN3VFW_total"
16891
+ };
16892
+ //#endregion
16893
+ //#region src/components/ds-progress-task-bar/ds-progress-task-bar.types.ts
16894
+ const taskBarStatuses = [
16895
+ "completed",
16896
+ "running",
16897
+ "failed"
16898
+ ];
16899
+ //#endregion
16900
+ //#region src/components/ds-progress-task-bar/utils.ts
16901
+ const COUNT_UNITS = [
16902
+ {
16903
+ value: 1e9,
16904
+ suffix: "B"
16905
+ },
16906
+ {
16907
+ value: 1e6,
16908
+ suffix: "M"
16909
+ },
16910
+ {
16911
+ value: 1e3,
16912
+ suffix: "K"
16913
+ }
16914
+ ];
16915
+ const ABBREVIATION_FLOOR = 1e3;
16916
+ const DECIMAL_THRESHOLD = 10;
16917
+ const stripTrailingZero = (value) => value % 1 === 0 ? String(value) : value.toFixed(1);
16918
+ /**
16919
+ * Format a task count for the legend, following the design's abbreviation rules:
16920
+ * - `< 1000` → exact number (e.g. `999`)
16921
+ * - single-digit unit → one decimal (e.g. `1.1K`, `1.2M`)
16922
+ * - multi-digit unit → whole number, truncated so `999,999 → 999K`
16923
+ */
16924
+ const formatCount = (count) => {
16925
+ if (!Number.isFinite(count)) return "0";
16926
+ const rounded = Math.max(0, Math.round(count));
16927
+ if (rounded < ABBREVIATION_FLOOR) return String(rounded);
16928
+ const unit = COUNT_UNITS.find(({ value }) => rounded >= value);
16929
+ if (unit === void 0) return String(rounded);
16930
+ const scaled = rounded / unit.value;
16931
+ if (scaled < DECIMAL_THRESHOLD) return `${stripTrailingZero(Math.round(scaled * 10) / 10)}${unit.suffix}`;
16932
+ return `${String(Math.floor(scaled))}${unit.suffix}`;
16933
+ };
16934
+ //#endregion
16935
+ //#region src/components/ds-progress-task-bar/ds-progress-task-bar.tsx
16936
+ const statusIcon = Object.freeze({
16937
+ completed: "check_circle",
16938
+ running: "play_circle",
16939
+ failed: "cancel"
16940
+ });
16941
+ const statusIconColor = Object.freeze({
16942
+ completed: "success",
16943
+ running: "action",
16944
+ failed: "error"
16945
+ });
16946
+ const statusTextColor = Object.freeze({
16947
+ completed: "success",
16948
+ running: "action",
16949
+ failed: "error"
16950
+ });
16951
+ const statusSegmentClass = Object.freeze({
16952
+ completed: ds_progress_task_bar_module_default.segmentCompleted,
16953
+ running: ds_progress_task_bar_module_default.segmentRunning,
16954
+ failed: ds_progress_task_bar_module_default.segmentFailed
16955
+ });
16956
+ const defaultLocale = Object.freeze({
16957
+ completed: "Completed",
16958
+ running: "Running",
16959
+ failed: "Failed",
16960
+ total: (total) => `of ${total}`
16961
+ });
16962
+ const DsProgressTaskBar = (t0) => {
16963
+ const $ = c(39);
16964
+ const { completed: t1, running: t2, failed: t3, total, locale, className, style, ref } = t0;
16965
+ const completed = t1 === void 0 ? 0 : t1;
16966
+ const running = t2 === void 0 ? 0 : t2;
16967
+ const failed = t3 === void 0 ? 0 : t3;
16968
+ const t4 = Math.max(0, completed);
16969
+ const t5 = Math.max(0, running);
16970
+ const t6 = Math.max(0, failed);
16971
+ let T0;
16972
+ let t10;
16973
+ let t11;
16974
+ let t12;
16975
+ let t13;
16976
+ let t14;
16977
+ let t15;
16978
+ let t16;
16979
+ let t17;
16980
+ let t18;
16981
+ let t19;
16982
+ let t7;
16983
+ let t8;
16984
+ let t9;
16985
+ if ($[0] !== className || $[1] !== locale || $[2] !== ref || $[3] !== style || $[4] !== t4 || $[5] !== t5 || $[6] !== t6 || $[7] !== total) {
16986
+ const counts = {
16987
+ completed: t4,
16988
+ running: t5,
16989
+ failed: t6
16990
+ };
16991
+ const sum = counts.completed + counts.running + counts.failed;
16992
+ const denominator = Math.max(total ?? sum, sum);
16993
+ const mergedLocale = {
16994
+ ...defaultLocale,
16995
+ ...locale
16996
+ };
16997
+ const activeStatuses = taskBarStatuses.filter((status) => counts[status] > 0);
16998
+ const segmentWidth = (status_0) => denominator > 0 ? `${String(counts[status_0] / denominator * 100)}%` : "0%";
16999
+ T0 = DsStack;
17000
+ t13 = ref;
17001
+ t14 = "column";
17002
+ t15 = "var(--xs)";
17003
+ t16 = "100%";
17004
+ t17 = className;
17005
+ t18 = style;
17006
+ t19 = /* @__PURE__ */ jsxs(DsStack, {
17007
+ direction: "row",
17008
+ alignItems: "center",
17009
+ justifyContent: "space-between",
17010
+ children: [/* @__PURE__ */ jsx(DsStack, {
17011
+ direction: "row",
17012
+ alignItems: "center",
17013
+ gap: "var(--3xs)",
17014
+ children: activeStatuses.length === 0 ? /* @__PURE__ */ jsx(DsTypography, {
17015
+ variant: "body-xs-reg",
17016
+ color: "secondary",
17017
+ children: "0"
17018
+ }) : activeStatuses.map((status_1) => /* @__PURE__ */ jsxs(DsStack, {
17019
+ direction: "row",
17020
+ alignItems: "center",
17021
+ gap: "var(--4xs)",
17022
+ children: [/* @__PURE__ */ jsx(DsTooltip, {
17023
+ content: mergedLocale[status_1],
17024
+ children: /* @__PURE__ */ jsx("span", {
17025
+ className: ds_progress_task_bar_module_default.statusIcon,
17026
+ children: /* @__PURE__ */ jsx(DsIcon, {
17027
+ icon: statusIcon[status_1],
17028
+ size: "tiny",
17029
+ color: statusIconColor[status_1],
17030
+ filled: true
17031
+ })
17032
+ })
17033
+ }), /* @__PURE__ */ jsx(DsTypography, {
17034
+ variant: "body-xs-reg",
17035
+ color: statusTextColor[status_1],
17036
+ children: formatCount(counts[status_1])
17037
+ })]
17038
+ }, status_1))
17039
+ }), /* @__PURE__ */ jsx(DsTypography, {
17040
+ variant: "body-xs-reg",
17041
+ color: "secondary",
17042
+ className: ds_progress_task_bar_module_default.total,
17043
+ children: mergedLocale.total(formatCount(denominator))
17044
+ })]
17045
+ });
17046
+ t7 = ds_progress_task_bar_module_default.bar;
17047
+ t8 = "progressbar";
17048
+ t9 = 0;
17049
+ t10 = denominator;
17050
+ t11 = sum;
17051
+ t12 = activeStatuses.map((status_2) => /* @__PURE__ */ jsx(DsTooltip, {
17052
+ content: mergedLocale[status_2],
17053
+ children: /* @__PURE__ */ jsx("span", {
17054
+ className: classNames(ds_progress_task_bar_module_default.segment, statusSegmentClass[status_2]),
17055
+ style: { width: segmentWidth(status_2) }
17056
+ })
17057
+ }, status_2));
17058
+ $[0] = className;
17059
+ $[1] = locale;
17060
+ $[2] = ref;
17061
+ $[3] = style;
17062
+ $[4] = t4;
17063
+ $[5] = t5;
17064
+ $[6] = t6;
17065
+ $[7] = total;
17066
+ $[8] = T0;
17067
+ $[9] = t10;
17068
+ $[10] = t11;
17069
+ $[11] = t12;
17070
+ $[12] = t13;
17071
+ $[13] = t14;
17072
+ $[14] = t15;
17073
+ $[15] = t16;
17074
+ $[16] = t17;
17075
+ $[17] = t18;
17076
+ $[18] = t19;
17077
+ $[19] = t7;
17078
+ $[20] = t8;
17079
+ $[21] = t9;
17080
+ } else {
17081
+ T0 = $[8];
17082
+ t10 = $[9];
17083
+ t11 = $[10];
17084
+ t12 = $[11];
17085
+ t13 = $[12];
17086
+ t14 = $[13];
17087
+ t15 = $[14];
17088
+ t16 = $[15];
17089
+ t17 = $[16];
17090
+ t18 = $[17];
17091
+ t19 = $[18];
17092
+ t7 = $[19];
17093
+ t8 = $[20];
17094
+ t9 = $[21];
17095
+ }
17096
+ let t20;
17097
+ if ($[22] !== t10 || $[23] !== t11 || $[24] !== t12 || $[25] !== t7 || $[26] !== t8 || $[27] !== t9) {
17098
+ t20 = /* @__PURE__ */ jsx("div", {
17099
+ className: t7,
17100
+ role: t8,
17101
+ "aria-valuemin": t9,
17102
+ "aria-valuemax": t10,
17103
+ "aria-valuenow": t11,
17104
+ children: t12
17105
+ });
17106
+ $[22] = t10;
17107
+ $[23] = t11;
17108
+ $[24] = t12;
17109
+ $[25] = t7;
17110
+ $[26] = t8;
17111
+ $[27] = t9;
17112
+ $[28] = t20;
17113
+ } else t20 = $[28];
17114
+ let t21;
17115
+ if ($[29] !== T0 || $[30] !== t13 || $[31] !== t14 || $[32] !== t15 || $[33] !== t16 || $[34] !== t17 || $[35] !== t18 || $[36] !== t19 || $[37] !== t20) {
17116
+ t21 = /* @__PURE__ */ jsxs(T0, {
17117
+ ref: t13,
17118
+ direction: t14,
17119
+ gap: t15,
17120
+ width: t16,
17121
+ className: t17,
17122
+ style: t18,
17123
+ children: [t19, t20]
17124
+ });
17125
+ $[29] = T0;
17126
+ $[30] = t13;
17127
+ $[31] = t14;
17128
+ $[32] = t15;
17129
+ $[33] = t16;
17130
+ $[34] = t17;
17131
+ $[35] = t18;
17132
+ $[36] = t19;
17133
+ $[37] = t20;
17134
+ $[38] = t21;
17135
+ } else t21 = $[38];
17136
+ return t21;
17137
+ };
17138
+ DsProgressTaskBar.displayName = "DsProgressTaskBar";
17139
+ //#endregion
16513
17140
  //#region src/components/ds-radio-group/ds-radio-group.module.scss
16514
17141
  var ds_radio_group_module_default = {
16515
17142
  "labelInfo": "gJbMxW_labelInfo",
@@ -16699,7 +17326,7 @@ const DsRadioGroupLegacy = (t0) => {
16699
17326
  } else t3 = $[3];
16700
17327
  let t4;
16701
17328
  if ($[4] !== options) {
16702
- t4 = options.map(_temp$1);
17329
+ t4 = options.map(_temp$2);
16703
17330
  $[4] = options;
16704
17331
  $[5] = t4;
16705
17332
  } else t4 = $[5];
@@ -16739,7 +17366,10 @@ const DsRadioGroup = {
16739
17366
  Root: Root$2,
16740
17367
  Item: Item$1
16741
17368
  };
16742
- function _temp$1(option) {
17369
+ DsRadioGroup.Root.displayName = "DsRadioGroup.Root";
17370
+ DsRadioGroup.Item.displayName = "DsRadioGroup.Item";
17371
+ DsRadioGroupLegacy.displayName = "DsRadioGroupLegacy";
17372
+ function _temp$2(option) {
16743
17373
  return /* @__PURE__ */ jsxs(RadioGroup.Item, {
16744
17374
  value: option.value,
16745
17375
  disabled: option.disabled,
@@ -16980,6 +17610,155 @@ const DsSegmentGroup = {
16980
17610
  Item,
16981
17611
  ItemText
16982
17612
  };
17613
+ DsSegmentGroup.Root.displayName = "DsSegmentGroup.Root";
17614
+ DsSegmentGroup.Item.displayName = "DsSegmentGroup.Item";
17615
+ DsSegmentGroup.ItemText.displayName = "DsSegmentGroup.ItemText";
17616
+ //#endregion
17617
+ //#region src/components/ds-site-node/hooks/use-is-overflowing.ts
17618
+ const useIsOverflowing = (text) => {
17619
+ const $ = c(5);
17620
+ const ref = useRef(null);
17621
+ const [isOverflowing, setIsOverflowing] = useState(false);
17622
+ let t0;
17623
+ if ($[0] === Symbol.for("react.memo_cache_sentinel")) {
17624
+ t0 = () => {
17625
+ const element = ref.current;
17626
+ if (!element) return;
17627
+ const measure = () => setIsOverflowing(element.scrollWidth > element.clientWidth);
17628
+ measure();
17629
+ const observer = new ResizeObserver(measure);
17630
+ observer.observe(element);
17631
+ const frame = requestAnimationFrame(measure);
17632
+ document.fonts.ready.then(measure).catch(_temp$1);
17633
+ document.fonts.addEventListener("loadingdone", measure);
17634
+ return () => {
17635
+ cancelAnimationFrame(frame);
17636
+ observer.disconnect();
17637
+ document.fonts.removeEventListener("loadingdone", measure);
17638
+ };
17639
+ };
17640
+ $[0] = t0;
17641
+ } else t0 = $[0];
17642
+ let t1;
17643
+ if ($[1] !== text) {
17644
+ t1 = [text];
17645
+ $[1] = text;
17646
+ $[2] = t1;
17647
+ } else t1 = $[2];
17648
+ useLayoutEffect(t0, t1);
17649
+ let t2;
17650
+ if ($[3] !== isOverflowing) {
17651
+ t2 = {
17652
+ ref,
17653
+ isOverflowing
17654
+ };
17655
+ $[3] = isOverflowing;
17656
+ $[4] = t2;
17657
+ } else t2 = $[4];
17658
+ return t2;
17659
+ };
17660
+ function _temp$1() {}
17661
+ //#endregion
17662
+ //#region src/components/ds-site-node/ds-site-node.module.scss
17663
+ var ds_site_node_module_default = {
17664
+ "node": "_9jr5kG_node",
17665
+ "overflow": "_9jr5kG_overflow",
17666
+ "pill": "_9jr5kG_pill",
17667
+ "pillMuted": "_9jr5kG_pillMuted",
17668
+ "selected": "_9jr5kG_selected",
17669
+ "siteCode": "_9jr5kG_siteCode"
17670
+ };
17671
+ //#endregion
17672
+ //#region src/components/ds-site-node/ds-site-node.tsx
17673
+ const DsSiteNode = (t0) => {
17674
+ const $ = c(21);
17675
+ const { ref, state: t1, tier, siteCode, overflowLabel, className, style, "aria-label": ariaLabel, onClick } = t0;
17676
+ const state = t1 === void 0 ? "default" : t1;
17677
+ const isOverflow = state === "overflow";
17678
+ const isSelected = state === "selected";
17679
+ const isMuted = state === "muted";
17680
+ const { ref: siteCodeRef, isOverflowing } = useIsOverflowing(siteCode);
17681
+ let t2;
17682
+ if ($[0] !== className || $[1] !== isOverflow || $[2] !== isSelected) {
17683
+ t2 = classNames(ds_site_node_module_default.node, {
17684
+ [ds_site_node_module_default.selected]: isSelected,
17685
+ [ds_site_node_module_default.overflow]: isOverflow
17686
+ }, className);
17687
+ $[0] = className;
17688
+ $[1] = isOverflow;
17689
+ $[2] = isSelected;
17690
+ $[3] = t2;
17691
+ } else t2 = $[3];
17692
+ const t3 = isSelected ? true : void 0;
17693
+ let t4;
17694
+ if ($[4] !== isMuted || $[5] !== isOverflow || $[6] !== isOverflowing || $[7] !== isSelected || $[8] !== overflowLabel || $[9] !== siteCode || $[10] !== siteCodeRef || $[11] !== tier) {
17695
+ t4 = isOverflow ? /* @__PURE__ */ jsx(DsTypography, {
17696
+ variant: "body-sm-reg",
17697
+ color: "secondary",
17698
+ children: overflowLabel
17699
+ }) : /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx(DsStack, {
17700
+ direction: "row",
17701
+ alignItems: "center",
17702
+ justifyContent: "center",
17703
+ className: classNames(ds_site_node_module_default.pill, { [ds_site_node_module_default.pillMuted]: isMuted }),
17704
+ children: /* @__PURE__ */ jsx(DsTypography, {
17705
+ variant: "body-xs-md",
17706
+ color: isMuted ? "on-disabled" : "on-action",
17707
+ children: tier
17708
+ })
17709
+ }), /* @__PURE__ */ jsx("span", {
17710
+ ref: siteCodeRef,
17711
+ className: ds_site_node_module_default.siteCode,
17712
+ children: /* @__PURE__ */ jsx(DsTooltip, {
17713
+ content: isOverflowing ? siteCode : void 0,
17714
+ children: /* @__PURE__ */ jsx(DsTypography, {
17715
+ variant: "body-sm-bold",
17716
+ color: isSelected ? "main" : "secondary",
17717
+ children: siteCode
17718
+ })
17719
+ })
17720
+ })] });
17721
+ $[4] = isMuted;
17722
+ $[5] = isOverflow;
17723
+ $[6] = isOverflowing;
17724
+ $[7] = isSelected;
17725
+ $[8] = overflowLabel;
17726
+ $[9] = siteCode;
17727
+ $[10] = siteCodeRef;
17728
+ $[11] = tier;
17729
+ $[12] = t4;
17730
+ } else t4 = $[12];
17731
+ let t5;
17732
+ if ($[13] !== ariaLabel || $[14] !== onClick || $[15] !== ref || $[16] !== style || $[17] !== t2 || $[18] !== t3 || $[19] !== t4) {
17733
+ t5 = /* @__PURE__ */ jsx("button", {
17734
+ ref,
17735
+ type: "button",
17736
+ className: t2,
17737
+ style,
17738
+ "aria-label": ariaLabel,
17739
+ "aria-current": t3,
17740
+ onClick,
17741
+ children: t4
17742
+ });
17743
+ $[13] = ariaLabel;
17744
+ $[14] = onClick;
17745
+ $[15] = ref;
17746
+ $[16] = style;
17747
+ $[17] = t2;
17748
+ $[18] = t3;
17749
+ $[19] = t4;
17750
+ $[20] = t5;
17751
+ } else t5 = $[20];
17752
+ return t5;
17753
+ };
17754
+ //#endregion
17755
+ //#region src/components/ds-site-node/ds-site-node.types.ts
17756
+ const siteNodeStates = [
17757
+ "default",
17758
+ "selected",
17759
+ "muted",
17760
+ "overflow"
17761
+ ];
16983
17762
  //#endregion
16984
17763
  //#region src/components/ds-skeleton/ds-skeleton.types.ts
16985
17764
  const skeletonColorVariants = ["gray", "blue"];
@@ -17128,6 +17907,7 @@ const DsSkeletonText = (t0) => {
17128
17907
  } else t10 = $[14];
17129
17908
  return t10;
17130
17909
  };
17910
+ DsSkeletonText.displayName = "DsSkeletonText";
17131
17911
  //#endregion
17132
17912
  //#region src/components/ds-skeleton/ds-skeleton-circle.tsx
17133
17913
  /**
@@ -17176,6 +17956,7 @@ const DsSkeletonCircle = (t0) => {
17176
17956
  } else t8 = $[9];
17177
17957
  return t8;
17178
17958
  };
17959
+ DsSkeletonCircle.displayName = "DsSkeletonCircle";
17179
17960
  //#endregion
17180
17961
  //#region src/components/ds-skeleton/ds-skeleton-rect.tsx
17181
17962
  /**
@@ -17226,13 +18007,17 @@ const DsSkeletonRect = (t0) => {
17226
18007
  } else t9 = $[10];
17227
18008
  return t9;
17228
18009
  };
18010
+ DsSkeletonRect.displayName = "DsSkeletonRect";
17229
18011
  //#endregion
17230
18012
  //#region src/components/ds-skeleton/ds-skeleton.ts
17231
- var ds_skeleton_default = {
18013
+ const DsSkeleton = {
17232
18014
  Text: DsSkeletonText,
17233
18015
  Circle: DsSkeletonCircle,
17234
18016
  Rect: DsSkeletonRect
17235
18017
  };
18018
+ DsSkeleton.Text.displayName = "DsSkeleton.Text";
18019
+ DsSkeleton.Circle.displayName = "DsSkeleton.Circle";
18020
+ DsSkeleton.Rect.displayName = "DsSkeleton.Rect";
17236
18021
  //#endregion
17237
18022
  //#region src/components/ds-smart-tabs/ds-smart-tabs.module.scss
17238
18023
  var ds_smart_tabs_module_default = {
@@ -17483,7 +18268,9 @@ const DsSmartTabs = (t0) => {
17483
18268
  } else t6 = $[21];
17484
18269
  return t6;
17485
18270
  };
18271
+ DsSmartTab.displayName = "DsSmartTabs.Tab";
17486
18272
  DsSmartTabs.Tab = DsSmartTab;
18273
+ DsSmartTabs.displayName = "DsSmartTabs";
17487
18274
  //#endregion
17488
18275
  //#region src/components/ds-smart-tabs/ds-smart-tabs.types.ts
17489
18276
  const colors = [
@@ -17509,6 +18296,12 @@ var ds_split_button_module_default = {
17509
18296
  };
17510
18297
  //#endregion
17511
18298
  //#region src/components/ds-split-button/ds-split-button.tsx
18299
+ /**
18300
+ * Secondary action button paired with a dropdown select for choosing a related option.
18301
+ * Both slots share a size and disabled state controlled by the split button.
18302
+ *
18303
+ * @summary split action button with a primary action and an option select
18304
+ */
17512
18305
  const DsSplitButton$1 = (t0) => {
17513
18306
  const $ = c(33);
17514
18307
  const { ref, className, style, size: t1, disabled, slotProps } = t0;
@@ -17718,6 +18511,7 @@ const DsStatusBadge = (t0) => {
17718
18511
  } else t12 = $[15];
17719
18512
  return t12;
17720
18513
  };
18514
+ DsStatusBadge.displayName = "DsStatusBadge";
17721
18515
  //#endregion
17722
18516
  //#region src/components/ds-status-badge-v2/ds-status-badge-v2.module.scss
17723
18517
  var ds_status_badge_v2_module_default = {
@@ -17879,6 +18673,7 @@ const statusBadgeV2Sizes = ["medium", "small"];
17879
18673
  //#endregion
17880
18674
  //#region src/components/ds-status-badge-v2/index.ts
17881
18675
  const DsStatusBadgeV2 = withResponsiveProps(DsStatusBadgeV2$1, ["size"]);
18676
+ DsStatusBadgeV2.displayName = "DsStatusBadgeV2";
17882
18677
  //#endregion
17883
18678
  //#region src/components/ds-stepper/ds-stepper.module.scss
17884
18679
  var ds_stepper_module_default = {
@@ -18040,6 +18835,7 @@ function DsStepper(t0) {
18040
18835
  } else t10 = $[27];
18041
18836
  return t10;
18042
18837
  }
18838
+ DsStepper.displayName = "DsStepper";
18043
18839
  //#endregion
18044
18840
  //#region src/components/ds-stepper/components/ds-step-separator.tsx
18045
18841
  function DsStepSeparator(t0) {
@@ -18238,6 +19034,7 @@ function DsStep(t0) {
18238
19034
  } else t18 = $[47];
18239
19035
  return t18;
18240
19036
  }
19037
+ DsStep.displayName = "DsStep";
18241
19038
  //#endregion
18242
19039
  //#region src/components/ds-stepper/components/ds-step-label.tsx
18243
19040
  function DsStepLabel(t0) {
@@ -18327,6 +19124,7 @@ function DsStepContent(t0) {
18327
19124
  } else t5 = $[15];
18328
19125
  return t5;
18329
19126
  }
19127
+ DsStepContent.displayName = "DsStepContent";
18330
19128
  //#endregion
18331
19129
  //#region src/components/ds-stepper/components/ds-step-next-button.tsx
18332
19130
  function DsNextStepButton(t0) {
@@ -18369,6 +19167,7 @@ function DsNextStepButton(t0) {
18369
19167
  } else t3 = $[10];
18370
19168
  return t3;
18371
19169
  }
19170
+ DsNextStepButton.displayName = "DsNextStepButton";
18372
19171
  //#endregion
18373
19172
  //#region src/components/ds-system-status/ds-system-status.module.scss
18374
19173
  var ds_system_status_module_default = {
@@ -18440,6 +19239,7 @@ const DsSystemStatus = (t0) => {
18440
19239
  } else t6 = $[8];
18441
19240
  return t6;
18442
19241
  };
19242
+ DsSystemStatus.displayName = "DsSystemStatus";
18443
19243
  //#endregion
18444
19244
  //#region src/components/ds-system-status/ds-system-status.types.ts
18445
19245
  /**
@@ -18822,11 +19622,12 @@ function useTableFilters({ filterAdapters, baseColumns, appliedFilters: external
18822
19622
  }));
18823
19623
  };
18824
19624
  const applyFilters = () => {
18825
- setAppliedFilters(_filterAdapters.reduce((acc, adapter) => {
19625
+ const filtersToApply = _filterAdapters.reduce((acc, adapter) => {
18826
19626
  const value = draftFilters[adapter.id];
18827
19627
  if (adapter.getActiveFiltersCount(value) > 0) acc[adapter.id] = value;
18828
19628
  return acc;
18829
- }, {}));
19629
+ }, {});
19630
+ setAppliedFilters(filtersToApply);
18830
19631
  setPendingFilters({});
18831
19632
  };
18832
19633
  const clearAll = () => {
@@ -18838,10 +19639,11 @@ function useTableFilters({ filterAdapters, baseColumns, appliedFilters: external
18838
19639
  const adapter = _filterAdapters.find((a) => a.id === filterId);
18839
19640
  if (!adapter) return;
18840
19641
  const draftValue = draftFilters[filterId];
18841
- setAppliedFilters(adapter.getActiveFiltersCount(draftValue) > 0 ? {
19642
+ const next = adapter.getActiveFiltersCount(draftValue) > 0 ? {
18842
19643
  ...appliedFilters,
18843
19644
  [filterId]: draftValue
18844
- } : omitKey(appliedFilters, filterId));
19645
+ } : omitKey(appliedFilters, filterId);
19646
+ setAppliedFilters(next);
18845
19647
  setPendingFilters((prev) => omitKey(prev, filterId));
18846
19648
  };
18847
19649
  const cancelColumnFilter = (filterId) => {
@@ -18864,10 +19666,11 @@ function useTableFilters({ filterAdapters, baseColumns, appliedFilters: external
18864
19666
  const currentValue = appliedFilters[filterKey];
18865
19667
  if (currentValue === void 0) return;
18866
19668
  const newValue = adapter.fromChip(chip, currentValue);
18867
- setAppliedFilters(adapter.getActiveFiltersCount(newValue) === 0 ? Object.fromEntries(Object.entries(appliedFilters).filter(([key]) => key !== filterKey)) : {
19669
+ const newFilters = adapter.getActiveFiltersCount(newValue) === 0 ? Object.fromEntries(Object.entries(appliedFilters).filter(([key]) => key !== filterKey)) : {
18868
19670
  ...appliedFilters,
18869
19671
  [filterKey]: newValue
18870
- });
19672
+ };
19673
+ setAppliedFilters(newFilters);
18871
19674
  };
18872
19675
  const renderForId = (filterId) => {
18873
19676
  const adapter = _filterAdapters.find((a) => a.id === filterId);
@@ -19328,7 +20131,8 @@ const getCollapsedColumnVisibility = (columns, collapsedGroupIds) => {
19328
20131
  const useColumnGroups = ({ columns, collapsedColumnGroups, onCollapsedColumnGroupsChange }) => {
19329
20132
  const [collapsed, setCollapsed] = useControlled(collapsedColumnGroups, onCollapsedColumnGroupsChange, getInitialCollapsedGroups(columns));
19330
20133
  const toggleColumnGroup = (groupId) => {
19331
- setCollapsed(collapsed.includes(groupId) ? collapsed.filter((id) => id !== groupId) : [...collapsed, groupId]);
20134
+ const next = collapsed.includes(groupId) ? collapsed.filter((id) => id !== groupId) : [...collapsed, groupId];
20135
+ setCollapsed(next);
19332
20136
  };
19333
20137
  return {
19334
20138
  collapsedColumnGroups: collapsed,
@@ -19470,6 +20274,7 @@ var ds_table_module_default = {
19470
20274
  //#region src/components/ds-table/components/edit/ds-table-editable-cell/ds-table-editable-cell.module.scss
19471
20275
  var ds_table_editable_cell_module_default = {
19472
20276
  "editButton": "g5FEoW_editButton",
20277
+ "lockIcon": "g5FEoW_lockIcon",
19473
20278
  "root": "g5FEoW_root"
19474
20279
  };
19475
20280
  //#endregion
@@ -19481,6 +20286,26 @@ const DsTableEditableCell = ({ cell, children }) => {
19481
20286
  event.stopPropagation();
19482
20287
  beginEdit(cell);
19483
20288
  };
20289
+ const editDisabled = cell.column.columnDef.editDisabled?.(cell.getContext());
20290
+ const locked = editDisabled === true || typeof editDisabled === "object";
20291
+ const reason = typeof editDisabled === "object" ? editDisabled.reason : void 0;
20292
+ if (locked) return /* @__PURE__ */ jsxs("div", {
20293
+ className: ds_table_editable_cell_module_default.root,
20294
+ "data-locked": "",
20295
+ children: [children, /* @__PURE__ */ jsx(DsTooltip, {
20296
+ content: reason,
20297
+ children: /* @__PURE__ */ jsx("span", {
20298
+ className: ds_table_editable_cell_module_default.lockIcon,
20299
+ "aria-label": "Editing disabled",
20300
+ role: "img",
20301
+ children: /* @__PURE__ */ jsx(DsIcon, {
20302
+ icon: "lock",
20303
+ size: "small",
20304
+ color: "secondary"
20305
+ })
20306
+ })
20307
+ })]
20308
+ });
19484
20309
  return /* @__PURE__ */ jsxs("div", {
19485
20310
  className: ds_table_editable_cell_module_default.root,
19486
20311
  "data-active": isEditing ? "" : void 0,
@@ -19498,6 +20323,7 @@ const DsTableEditableCell = ({ cell, children }) => {
19498
20323
  })]
19499
20324
  });
19500
20325
  };
20326
+ DsTableEditableCell.displayName = "DsTableEditableCell";
19501
20327
  //#endregion
19502
20328
  //#region src/components/ds-table/components/edit/ds-table-editing-cell/ds-table-editing-cell.module.scss
19503
20329
  var ds_table_editing_cell_module_default = {
@@ -19578,6 +20404,7 @@ const DsTableEditingCell = ({ cell }) => {
19578
20404
  })
19579
20405
  });
19580
20406
  };
20407
+ DsTableEditingCell.displayName = "DsTableEditingCell";
19581
20408
  //#endregion
19582
20409
  //#region src/components/ds-table/components/ds-table-cell/ds-table-cell.module.scss
19583
20410
  var ds_table_cell_module_default = {
@@ -19684,6 +20511,7 @@ var ds_table_row_module_default = {
19684
20511
  "expandedRow": "t8OZCq_expandedRow",
19685
20512
  "groupStart": "t8OZCq_groupStart",
19686
20513
  "isDragging": "t8OZCq_isDragging",
20514
+ "loadingRow": "t8OZCq_loadingRow",
19687
20515
  "rowDragHandle": "t8OZCq_rowDragHandle",
19688
20516
  "rowNoBorder": "t8OZCq_rowNoBorder",
19689
20517
  "selectableCell": "t8OZCq_selectableCell",
@@ -19710,7 +20538,7 @@ const DsRowDragHandle = ({ isDragging, attributes, listeners, style }) => {
19710
20538
  });
19711
20539
  };
19712
20540
  const DsTableRow = ({ ref, row, isSelected }) => {
19713
- const { reorderable, onRowClick, onRowDoubleClick, renderExpandedRow, bordered, rowSize, primaryRowActions, secondaryRowActions, activeRowId } = useDsTableContext();
20541
+ const { reorderable, onRowClick, onRowDoubleClick, renderExpandedRow, bordered, rowSize, primaryRowActions, secondaryRowActions, activeRowId, loading } = useDsTableContext();
19714
20542
  const isExpanded = row.getIsExpanded();
19715
20543
  const isActive = activeRowId === row.id;
19716
20544
  const { attributes, listeners, setNodeRef, transform, transition, isDragging } = useSortable({
@@ -19734,7 +20562,7 @@ const DsTableRow = ({ ref, row, isSelected }) => {
19734
20562
  [ds_table_row_module_default.sizeSmall]: rowSize === "small",
19735
20563
  [ds_table_row_module_default.sizeMedium]: rowSize === "medium",
19736
20564
  [ds_table_row_module_default.sizeLarge]: rowSize === "large"
19737
- }, onRowClick && ds_table_row_module_default.clickableRow, !bordered && ds_table_row_module_default.rowNoBorder, isExpanded && ds_table_row_module_default.expanded),
20565
+ }, onRowClick && ds_table_row_module_default.clickableRow, !bordered && ds_table_row_module_default.rowNoBorder, isExpanded && ds_table_row_module_default.expanded, loading && ds_table_row_module_default.loadingRow),
19738
20566
  style: rowStyle,
19739
20567
  onClick: () => onRowClick?.(row.original),
19740
20568
  onDoubleClick: () => onRowDoubleClick?.(row.original),
@@ -19883,6 +20711,7 @@ var ds_table_row_virtualized_module_default = {
19883
20711
  "expandedRow": "NcME7q_expandedRow",
19884
20712
  "expandedRowContent": "NcME7q_expandedRowContent",
19885
20713
  "groupStart": "NcME7q_groupStart",
20714
+ "loadingRow": "NcME7q_loadingRow",
19886
20715
  "row": "NcME7q_row",
19887
20716
  "rowNoBorder": "NcME7q_rowNoBorder",
19888
20717
  "selectableCell": "NcME7q_selectableCell",
@@ -19893,7 +20722,7 @@ var ds_table_row_virtualized_module_default = {
19893
20722
  //#endregion
19894
20723
  //#region src/components/ds-table/components/ds-table-row-virtualized/ds-table-row-virtualized.tsx
19895
20724
  const DsTableRowVirtualized = ({ row, isSelected, rowsMapRef, rowHeightsMapRef, rowVirtualizer, virtualRow, isExpandedRowContent }) => {
19896
- const { bordered, rowSize, activeRowId, primaryRowActions, secondaryRowActions, renderExpandedRow, onRowClick, onRowDoubleClick } = useDsTableContext();
20725
+ const { bordered, rowSize, activeRowId, primaryRowActions, secondaryRowActions, renderExpandedRow, onRowClick, onRowDoubleClick, loading } = useDsTableContext();
19897
20726
  const isExpanded = row.getIsExpanded();
19898
20727
  const isActive = activeRowId === row.id;
19899
20728
  return /* @__PURE__ */ jsx(TableRow, {
@@ -19912,7 +20741,7 @@ const DsTableRowVirtualized = ({ row, isSelected, rowsMapRef, rowHeightsMapRef,
19912
20741
  [ds_table_row_virtualized_module_default.sizeSmall]: rowSize === "small",
19913
20742
  [ds_table_row_virtualized_module_default.sizeMedium]: rowSize === "medium",
19914
20743
  [ds_table_row_virtualized_module_default.sizeLarge]: rowSize === "large"
19915
- }, isExpandedRowContent && ds_table_row_virtualized_module_default.expandedRowContent, onRowClick && ds_table_row_virtualized_module_default.clickableRow, !bordered && ds_table_row_virtualized_module_default.rowNoBorder, isExpanded && ds_table_row_virtualized_module_default.expanded),
20744
+ }, isExpandedRowContent && ds_table_row_virtualized_module_default.expandedRowContent, onRowClick && ds_table_row_virtualized_module_default.clickableRow, !bordered && ds_table_row_virtualized_module_default.rowNoBorder, isExpanded && ds_table_row_virtualized_module_default.expanded, loading && ds_table_row_virtualized_module_default.loadingRow),
19916
20745
  onClick: isExpandedRowContent ? void 0 : () => onRowClick?.(row.original),
19917
20746
  onDoubleClick: isExpandedRowContent ? void 0 : () => onRowDoubleClick?.(row.original),
19918
20747
  children: isExpandedRowContent ? /* @__PURE__ */ jsx(TableCell, { children: renderExpandedRow?.(row.original) }) : /* @__PURE__ */ jsx(Fragment, { children: row.getVisibleCells().map((cell, idx) => {
@@ -20066,7 +20895,7 @@ const ROW_SIZE_HEIGHT_MAP = {
20066
20895
  /**
20067
20896
  * Design system Table component
20068
20897
  */
20069
- const DsTable = ({ ref, columns: columnsProp, data: tableData, virtualized = false, virtualizedOptions, className, onRowClick, emptyState, stickyHeader = true, bordered = true, fullWidth = true, rowSize = "medium", expandable = false, renderExpandedRow, selectable = false, showSelectAllCheckbox = true, onSelectionChange, onSortingChange, onScroll, actions = [], onRowDoubleClick, primaryRowActions = [], secondaryRowActions, reorderable = false, onOrderChange, columnFilters: externalColumnFilters, onColumnFiltersChange, columnVisibility: externalColumnVisibility, onColumnVisibilityChange, collapsedColumnGroups: externalCollapsedColumnGroups, onCollapsedColumnGroupsChange, locale, activeRowId, infiniteScroll, onCellEdit, onCellValidate }) => {
20898
+ const DsTable = ({ ref, columns: columnsProp, data: tableData, virtualized = false, virtualizedOptions, className, onRowClick, emptyState, stickyHeader = true, bordered = true, fullWidth = true, rowSize = "medium", loading = false, expandable = false, renderExpandedRow, selectable = false, showSelectAllCheckbox = true, onSelectionChange, onSortingChange, onScroll, actions = [], onRowDoubleClick, primaryRowActions = [], secondaryRowActions, reorderable = false, onOrderChange, columnFilters: externalColumnFilters, onColumnFiltersChange, columnVisibility: externalColumnVisibility, onColumnVisibilityChange, collapsedColumnGroups: externalCollapsedColumnGroups, onCollapsedColumnGroupsChange, locale, activeRowId, infiniteScroll, onCellEdit, onCellValidate }) => {
20070
20899
  const [data, setData] = React$1.useState(tableData);
20071
20900
  const [sorting, setSorting] = React$1.useState([]);
20072
20901
  const [internalColumnFilters, setInternalColumnFilters] = React$1.useState([]);
@@ -20158,9 +20987,20 @@ const DsTable = ({ ref, columns: columnsProp, data: tableData, virtualized = fal
20158
20987
  hasSelectColumn,
20159
20988
  showSelectAllCheckbox
20160
20989
  ]);
20990
+ const skeletonColumns = useMemo(() => {
20991
+ const toSkeleton = (cols) => cols.map((column) => "columns" in column && column.columns ? {
20992
+ ...column,
20993
+ columns: toSkeleton(column.columns)
20994
+ } : {
20995
+ ...column,
20996
+ cell: column.loadingCell ?? (() => /* @__PURE__ */ jsx(DsSkeletonText, { width: "60%" }))
20997
+ });
20998
+ return toSkeleton(columns);
20999
+ }, [columns]);
21000
+ const skeletonData = useMemo(() => Array.from({ length: 5 }, (_, i) => ({ id: `ds-table-skeleton-${String(i)}` })), []);
20161
21001
  const table = useReactTable({
20162
- data: reorderable ? data : tableData,
20163
- columns,
21002
+ data: loading ? skeletonData : reorderable ? data : tableData,
21003
+ columns: loading ? skeletonColumns : columns,
20164
21004
  getCoreRowModel: getCoreRowModel(),
20165
21005
  onSortingChange: handleSortingChange,
20166
21006
  getSortedRowModel: getSortedRowModel(),
@@ -20226,6 +21066,7 @@ const DsTable = ({ ref, columns: columnsProp, data: tableData, virtualized = fal
20226
21066
  }) });
20227
21067
  const selectedRows = Object.entries(rowSelection).filter(([, selected]) => selected).map(([key]) => rowsById[key]?.original).filter((v) => !!v);
20228
21068
  const isBulkActionsVisible = selectable && actions.length > 0 && selectedRows.length > 0;
21069
+ const editingState = useEditingState(onCellEdit, onCellValidate);
20229
21070
  const contextValue = {
20230
21071
  stickyHeader,
20231
21072
  bordered,
@@ -20235,8 +21076,9 @@ const DsTable = ({ ref, columns: columnsProp, data: tableData, virtualized = fal
20235
21076
  selectable,
20236
21077
  reorderable,
20237
21078
  showSelectAllCheckbox,
20238
- onRowClick,
20239
- onRowDoubleClick,
21079
+ loading,
21080
+ onRowClick: loading ? void 0 : onRowClick,
21081
+ onRowDoubleClick: loading ? void 0 : onRowDoubleClick,
20240
21082
  primaryRowActions,
20241
21083
  secondaryRowActions,
20242
21084
  renderExpandedRow,
@@ -20246,7 +21088,7 @@ const DsTable = ({ ref, columns: columnsProp, data: tableData, virtualized = fal
20246
21088
  onToggleColumnGroup: toggleColumnGroup,
20247
21089
  locale,
20248
21090
  onCellEdit,
20249
- ...useEditingState(onCellEdit, onCellValidate)
21091
+ ...editingState
20250
21092
  };
20251
21093
  return /* @__PURE__ */ jsx(DsTableContext.Provider, {
20252
21094
  value: contextValue,
@@ -20278,6 +21120,7 @@ const DsTable = ({ ref, columns: columnsProp, data: tableData, virtualized = fal
20278
21120
  })
20279
21121
  });
20280
21122
  };
21123
+ DsTable.displayName = "DsTable";
20281
21124
  //#endregion
20282
21125
  //#region src/components/ds-table/hooks/use-cell-editor.ts
20283
21126
  /**
@@ -20362,6 +21205,7 @@ const DsTableEditCellText = ({ cellContext, placeholder, maxLength }) => {
20362
21205
  })
20363
21206
  });
20364
21207
  };
21208
+ DsTableEditCellText.displayName = "DsTableEditCellText";
20365
21209
  //#endregion
20366
21210
  //#region src/components/ds-table/components/edit/cell-editors/ds-table-edit-cell-number.tsx
20367
21211
  /** Number input editor for table cells. Render via `ColumnDef.editCell`. */
@@ -20388,6 +21232,7 @@ const DsTableEditCellNumber = ({ cellContext, min, max, step }) => {
20388
21232
  })
20389
21233
  });
20390
21234
  };
21235
+ DsTableEditCellNumber.displayName = "DsTableEditCellNumber";
20391
21236
  //#endregion
20392
21237
  //#region src/components/ds-table/components/edit/cell-editors/ds-table-edit-cell-select.tsx
20393
21238
  /** Select editor for table cells. Render via `ColumnDef.editCell`. */
@@ -20405,6 +21250,7 @@ const DsTableEditCellSelect = ({ cellContext, options, placeholder }) => {
20405
21250
  })
20406
21251
  });
20407
21252
  };
21253
+ DsTableEditCellSelect.displayName = "DsTableEditCellSelect";
20408
21254
  //#endregion
20409
21255
  //#region src/components/ds-table/components/edit/cell-editors/ds-table-edit-cell-date.tsx
20410
21256
  /** Date picker editor for table cells. Render via `ColumnDef.editCell`. */
@@ -20427,6 +21273,7 @@ const DsTableEditCellDate = ({ cellContext, min, max, placeholder }) => {
20427
21273
  })
20428
21274
  });
20429
21275
  };
21276
+ DsTableEditCellDate.displayName = "DsTableEditCellDate";
20430
21277
  //#endregion
20431
21278
  //#region src/components/ds-table/components/edit/cell-editors/ds-table-edit-cell-checkbox.tsx
20432
21279
  /** Checkbox editor for table cells. Render via `ColumnDef.editCell`. */
@@ -20438,6 +21285,7 @@ const DsTableEditCellCheckbox = ({ cellContext, disabled }) => {
20438
21285
  onCheckedChange: (checked) => setValue(checked === true)
20439
21286
  });
20440
21287
  };
21288
+ DsTableEditCellCheckbox.displayName = "DsTableEditCellCheckbox";
20441
21289
  //#endregion
20442
21290
  //#region src/components/ds-toast/ds-toast.module.scss
20443
21291
  var ds_toast_module_default = {
@@ -20563,6 +21411,8 @@ const DsToastGroup = (t0) => {
20563
21411
  } else t1 = $[1];
20564
21412
  return t1;
20565
21413
  };
21414
+ DsToast.displayName = "DsToast";
21415
+ DsToastGroup.displayName = "DsToastGroup";
20566
21416
  function _temp(toast) {
20567
21417
  return /* @__PURE__ */ jsx(DsToast, { ...toast });
20568
21418
  }
@@ -20641,6 +21491,7 @@ const useToaster = () => {
20641
21491
  if (!context) throw new Error("useToast must be used within a ToastProvider");
20642
21492
  return context;
20643
21493
  };
21494
+ DsToastProvider.displayName = "DsToastProvider";
20644
21495
  //#endregion
20645
21496
  //#region src/components/ds-toggle/ds-toggle.module.scss
20646
21497
  var ds_toggle_module_default = {
@@ -20828,6 +21679,7 @@ const DsToggle = (t0) => {
20828
21679
  } else t15 = $[47];
20829
21680
  return t15;
20830
21681
  };
21682
+ DsToggle.displayName = "DsToggle";
20831
21683
  //#endregion
20832
21684
  //#region src/components/ds-tree/ds-tree.module.scss
20833
21685
  var ds_tree_module_default = {
@@ -21236,6 +22088,21 @@ const DsTreeItemAction = (t0) => {
21236
22088
  } else t3 = $[8];
21237
22089
  return t3;
21238
22090
  };
22091
+ DsTreeRoot.displayName = "DsTree.Root";
22092
+ DsTreeTree.displayName = "DsTree.Tree";
22093
+ Object.defineProperty(TreeView.NodeProvider, "displayName", { value: "DsTree.NodeProvider" });
22094
+ Object.defineProperty(TreeView.NodeContext, "displayName", { value: "DsTree.NodeContext" });
22095
+ DsTreeBranch.displayName = "DsTree.Branch";
22096
+ DsTreeBranchControl.displayName = "DsTree.BranchControl";
22097
+ DsTreeBranchIndicator.displayName = "DsTree.BranchIndicator";
22098
+ DsTreeBranchText.displayName = "DsTree.BranchText";
22099
+ DsTreeBranchContent.displayName = "DsTree.BranchContent";
22100
+ DsTreeBranchIndentGuide.displayName = "DsTree.BranchIndentGuide";
22101
+ DsTreeItem.displayName = "DsTree.Item";
22102
+ DsTreeItemText.displayName = "DsTree.ItemText";
22103
+ DsTreeItemIndicator.displayName = "DsTree.ItemIndicator";
22104
+ DsTreeItemAction.displayName = "DsTree.ItemAction";
22105
+ DsTreeNodeCheckbox.displayName = "DsTree.NodeCheckbox";
21239
22106
  const DsTree = {
21240
22107
  Root: DsTreeRoot,
21241
22108
  Tree: DsTreeTree,
@@ -21265,6 +22132,90 @@ const createDsTreeCollection = (nodes) => createTreeCollection({
21265
22132
  }
21266
22133
  });
21267
22134
  //#endregion
22135
+ //#region src/components/ds-user-card/ds-user-card.module.scss
22136
+ var ds_user_card_module_default = {
22137
+ "name": "rM_jtW_name",
22138
+ "subtitle": "rM_jtW_subtitle",
22139
+ "text": "rM_jtW_text",
22140
+ "userCard": "rM_jtW_userCard"
22141
+ };
22142
+ //#endregion
22143
+ //#region src/components/ds-user-card/ds-user-card.tsx
22144
+ /**
22145
+ * @summary Compact identity header pairing an avatar with a name and optional subtitle.
22146
+ *
22147
+ * Presentational card used as the header of a user menu. Renders a medium
22148
+ * `DsAvatar` (initials fallback derived from `name`) beside a two-line text
22149
+ * block; both lines truncate with an ellipsis when they overflow.
22150
+ */
22151
+ const DsUserCard = (t0) => {
22152
+ const $ = c(17);
22153
+ const { name, subtitle, src, className, style } = t0;
22154
+ let t1;
22155
+ if ($[0] !== className) {
22156
+ t1 = classNames(ds_user_card_module_default.userCard, className);
22157
+ $[0] = className;
22158
+ $[1] = t1;
22159
+ } else t1 = $[1];
22160
+ let t2;
22161
+ if ($[2] !== name || $[3] !== src) {
22162
+ t2 = /* @__PURE__ */ jsx(DsAvatar, {
22163
+ name,
22164
+ src,
22165
+ size: "md"
22166
+ });
22167
+ $[2] = name;
22168
+ $[3] = src;
22169
+ $[4] = t2;
22170
+ } else t2 = $[4];
22171
+ let t3;
22172
+ if ($[5] !== name) {
22173
+ t3 = /* @__PURE__ */ jsx(DsTypography, {
22174
+ variant: "heading4",
22175
+ color: "main",
22176
+ className: ds_user_card_module_default.name,
22177
+ children: name
22178
+ });
22179
+ $[5] = name;
22180
+ $[6] = t3;
22181
+ } else t3 = $[6];
22182
+ let t4;
22183
+ if ($[7] !== subtitle) {
22184
+ t4 = subtitle && /* @__PURE__ */ jsx(DsTypography, {
22185
+ variant: "body-xs-reg",
22186
+ color: "secondary",
22187
+ className: ds_user_card_module_default.subtitle,
22188
+ children: subtitle
22189
+ });
22190
+ $[7] = subtitle;
22191
+ $[8] = t4;
22192
+ } else t4 = $[8];
22193
+ let t5;
22194
+ if ($[9] !== t3 || $[10] !== t4) {
22195
+ t5 = /* @__PURE__ */ jsxs("div", {
22196
+ className: ds_user_card_module_default.text,
22197
+ children: [t3, t4]
22198
+ });
22199
+ $[9] = t3;
22200
+ $[10] = t4;
22201
+ $[11] = t5;
22202
+ } else t5 = $[11];
22203
+ let t6;
22204
+ if ($[12] !== style || $[13] !== t1 || $[14] !== t2 || $[15] !== t5) {
22205
+ t6 = /* @__PURE__ */ jsxs("div", {
22206
+ className: t1,
22207
+ style,
22208
+ children: [t2, t5]
22209
+ });
22210
+ $[12] = style;
22211
+ $[13] = t1;
22212
+ $[14] = t2;
22213
+ $[15] = t5;
22214
+ $[16] = t6;
22215
+ } else t6 = $[16];
22216
+ return t6;
22217
+ };
22218
+ //#endregion
21268
22219
  //#region src/components/ds-vertical-tabs/ds-vertical-tabs.module.scss
21269
22220
  var ds_vertical_tabs_module_default = {
21270
22221
  "selected": "xVkVWa_selected",
@@ -21394,9 +22345,13 @@ const DsVerticalTabsContent = (t0) => {
21394
22345
  } else t1 = $[3];
21395
22346
  return t1;
21396
22347
  };
22348
+ DsVerticalTabsList.displayName = "DsVerticalTabs.List";
22349
+ DsVerticalTabsTab.displayName = "DsVerticalTabs.Tab";
22350
+ DsVerticalTabsContent.displayName = "DsVerticalTabs.Content";
21397
22351
  DsVerticalTabs.List = DsVerticalTabsList;
21398
22352
  DsVerticalTabs.Tab = DsVerticalTabsTab;
21399
22353
  DsVerticalTabs.Content = DsVerticalTabsContent;
22354
+ DsVerticalTabs.displayName = "DsVerticalTabs";
21400
22355
  //#endregion
21401
22356
  //#region src/components/ds-workspace-layout/ds-workspace-layout.module.scss
21402
22357
  var ds_workspace_layout_module_default = {
@@ -21813,6 +22768,13 @@ const LeftPanel = (t0) => {
21813
22768
  } else t4 = $[11];
21814
22769
  return t4;
21815
22770
  };
22771
+ Header.displayName = "DsWorkspaceLayout.Header";
22772
+ SubHeader.displayName = "DsWorkspaceLayout.SubHeader";
22773
+ Content.displayName = "DsWorkspaceLayout.Content";
22774
+ Footer.displayName = "DsWorkspaceLayout.Footer";
22775
+ Body.displayName = "DsWorkspaceLayout.Body";
22776
+ SideMenu.displayName = "DsWorkspaceLayout.SideMenu";
22777
+ LeftPanel.displayName = "DsWorkspaceLayout.LeftPanel";
21816
22778
  DsWorkspaceLayout.Header = Header;
21817
22779
  DsWorkspaceLayout.SubHeader = SubHeader;
21818
22780
  DsWorkspaceLayout.Content = Content;
@@ -21820,7 +22782,8 @@ DsWorkspaceLayout.Footer = Footer;
21820
22782
  DsWorkspaceLayout.Body = Body;
21821
22783
  DsWorkspaceLayout.SideMenu = SideMenu;
21822
22784
  DsWorkspaceLayout.LeftPanel = LeftPanel;
22785
+ DsWorkspaceLayout.displayName = "DsWorkspaceLayout";
21823
22786
  //#endregion
21824
- export { BREAKPOINT_LG, DsAlertBanner, DsAutocomplete, DsAvatar, DsAvatarGroup, DsBreadcrumb, DsButton, DsButtonV3, DsCard, DsCatalogLayout, DsCheckbox, DsCheckboxGroup, DsChip, DsChipGroup, DsCommentBubble, DsCommentCard, DsCommentIndicator, DsCommentThread, DsCommentsDrawer, DsConfirmation, DsDateInput, DsDatePicker, DsDateRangePicker, DsDialog, DsDivider, DsDrawer, DsDropdownMenu, DsDropdownMenuLegacy, DsExpandableTextInput, DsFileUpload, DsFilterStatusIcon, DsFormControl, DsGrid, DsGridItem, DsIcon, DsKeyValuePair, DsLoader, DsModal, DsNextStepButton, DsNumberInput, DsPanel, DsPasswordInput, DsPopover, DsProgressArc, DsProgressDonut, DsProgressLinear, DsRadioGroup, DsRadioGroupLegacy, DsSegmentGroup, DsSelect, ds_skeleton_default as DsSkeleton, DsSkeletonCircle, DsSkeletonRect, DsSkeletonText, DsSmartTabs, DsSpinner, DsSplitButton, DsStack, DsStatusBadge, DsStatusBadgeV2, DsStep, DsStepContent, DsStepper, DsSystemStatus, DsTable, DsTableColumnFilterPopover, DsTableEditCellCheckbox, DsTableEditCellDate, DsTableEditCellNumber, DsTableEditCellSelect, DsTableEditCellText, DsTableEditableCell, DsTableEditingCell, DsTabs, DsTag, DsTagFilter, DsTextInput, DsTextarea, DsThreadItem, DsTimePicker, DsToastProvider, DsToggle, DsTooltip, DsTree, DsTypography, DsVerticalTabs, DsWorkspaceLayout, FatalFileUploadError, FileUpload, FileUploadError, RetryableFileUploadError, alertBannerVariants, breakpoints, buttonV3Colors, buttonV3Sizes, buttonV3Variants, cardSizes, checkboxVariants, colors, controlStatuses, createCheckboxFilterAdapter, createDsTreeCollection, createDualRangeFilterAdapter, createFilterAdapter, customIcons, defaultDsTableLocale, dropdownMenuItemVariants, dsKeyValuePairOrientations, filterStatuses, formatTime, iconColors, iconSizes, iconVariants, isCustomIcon, isResponsiveValue, loaderVariants, popoverAligns, popoverSides, progressArcSizes, progressArcVariants, progressDonutSizes, progressDonutVariants, progressLinearSizes, progressLinearVariants, resolveResponsiveValue, skeletonColorVariants, skeletonRadiusVariants, spinnerSizes, splitButtonSizes, statusBadgeV2Phases, statusBadgeV2Sizes, statusBadgeV2Variants, systemStatuses, tagSizes, tagVariants, textInputSizes, useBreakpoint, useCellEditor, useCheckboxSelectAll, useFileUpload, useResponsiveValue, useTableFilters, useToaster, withResponsiveProps };
22787
+ export { BREAKPOINT_LG, DsAlertBanner, DsAutocomplete, DsAvatar, DsAvatarGroup, DsBreadcrumb, DsButton, DsButtonV3, DsCard, DsCatalogLayout, DsCheckbox, DsCheckboxGroup, DsChip, DsChipGroup, DsCommentBubble, DsCommentCard, DsCommentIndicator, DsCommentThread, DsCommentsDrawer, DsConfirmation, DsDateInput, DsDatePicker, DsDateRangePicker, DsDialog, DsDivider, DsDrawer, DsDropdownMenu, DsDropdownMenuLegacy, DsExpandableTextInput, DsFileUpload, DsFilterStatusIcon, DsFormControl, DsGrid, DsGridItem, DsIcon, DsKeyValuePair, DsLoader, DsModal, DsNextStepButton, DsNumberInput, DsPanel, DsPasswordInput, DsPopover, DsProgressArc, DsProgressDonut, DsProgressLinear, DsProgressTaskBar, DsRadioGroup, DsRadioGroupLegacy, DsSegmentGroup, DsSelect, DsSiteNode, DsSkeleton, DsSkeletonCircle, DsSkeletonRect, DsSkeletonText, DsSmartTabs, DsSpinner, DsSplitButton, DsStack, DsStatusBadge, DsStatusBadgeV2, DsStep, DsStepContent, DsStepper, DsSystemStatus, DsTable, DsTableColumnFilterPopover, DsTableEditCellCheckbox, DsTableEditCellDate, DsTableEditCellNumber, DsTableEditCellSelect, DsTableEditCellText, DsTableEditableCell, DsTableEditingCell, DsTabs, DsTag, DsTagFilter, DsTextInput, DsTextarea, DsThreadItem, DsTimePicker, DsToastProvider, DsToggle, DsTooltip, DsTree, DsTypography, DsUserCard, DsVerticalTabs, DsWorkspaceLayout, FatalFileUploadError, FileUpload, FileUploadError, RetryableFileUploadError, alertBannerVariants, breakpoints, buttonV3Colors, buttonV3Sizes, buttonV3Variants, cardSizes, checkboxVariants, colors, controlStatuses, createCheckboxFilterAdapter, createColumnHelper, createDsTreeCollection, createDualRangeFilterAdapter, createFilterAdapter, customIcons, defaultDsTableLocale, dropdownMenuActionsAlignments, dropdownMenuItemVariants, dsAvatarSizes, dsAvatarTypes, dsKeyValuePairOrientations, filterStatuses, formatTime, iconColors, iconSizes, iconVariants, isCustomIcon, isResponsiveValue, loaderVariants, popoverAligns, popoverSides, progressArcSizes, progressArcVariants, progressDonutSizes, progressDonutVariants, progressLinearSizes, progressLinearVariants, resolveResponsiveValue, siteNodeStates, skeletonColorVariants, skeletonRadiusVariants, spinnerSizes, splitButtonSizes, statusBadgeV2Phases, statusBadgeV2Sizes, statusBadgeV2Variants, systemStatuses, tagSizes, tagVariants, taskBarStatuses, textInputSizes, tooltipPlacements, useBreakpoint, useCellEditor, useCheckboxSelectAll, useFileUpload, useResponsiveValue, useTableFilters, useToaster, withResponsiveProps };
21825
22788
 
21826
22789
  //# sourceMappingURL=index.js.map