@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.cjs CHANGED
@@ -23,25 +23,24 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
23
23
  //#endregion
24
24
  let react_compiler_runtime = require("react/compiler-runtime");
25
25
  let classnames = require("classnames");
26
- classnames = __toESM(classnames);
26
+ classnames = __toESM(classnames, 1);
27
27
  let react_jsx_runtime = require("react/jsx-runtime");
28
28
  let react = require("react");
29
29
  react = __toESM(react, 1);
30
30
  let _ark_ui_react = require("@ark-ui/react");
31
+ let _ark_ui_react_tooltip = require("@ark-ui/react/tooltip");
32
+ let _ark_ui_react_portal = require("@ark-ui/react/portal");
31
33
  let _ark_ui_react_combobox = require("@ark-ui/react/combobox");
32
34
  let _ark_ui_react_locale = require("@ark-ui/react/locale");
33
35
  let _ark_ui_react_highlight = require("@ark-ui/react/highlight");
34
- let _ark_ui_react_portal = require("@ark-ui/react/portal");
35
36
  let _ark_ui_react_avatar = require("@ark-ui/react/avatar");
36
- let _radix_ui_react_tooltip = require("@radix-ui/react-tooltip");
37
- _radix_ui_react_tooltip = __toESM(_radix_ui_react_tooltip);
38
37
  let _tanstack_react_router = require("@tanstack/react-router");
39
38
  let _radix_ui_react_dropdown_menu = require("@radix-ui/react-dropdown-menu");
40
- _radix_ui_react_dropdown_menu = __toESM(_radix_ui_react_dropdown_menu);
39
+ _radix_ui_react_dropdown_menu = __toESM(_radix_ui_react_dropdown_menu, 1);
41
40
  let _ark_ui_react_menu = require("@ark-ui/react/menu");
42
41
  let _ark_ui_react_checkbox = require("@ark-ui/react/checkbox");
43
42
  let _radix_ui_react_dialog = require("@radix-ui/react-dialog");
44
- _radix_ui_react_dialog = __toESM(_radix_ui_react_dialog);
43
+ _radix_ui_react_dialog = __toESM(_radix_ui_react_dialog, 1);
45
44
  let _radix_ui_react_visually_hidden = require("@radix-ui/react-visually-hidden");
46
45
  let _ark_ui_react_dialog = require("@ark-ui/react/dialog");
47
46
  let react_dom = require("react-dom");
@@ -51,7 +50,7 @@ let _internationalized_date = require("@internationalized/date");
51
50
  let _ark_ui_react_popover = require("@ark-ui/react/popover");
52
51
  let _ark_ui_react_select = require("@ark-ui/react/select");
53
52
  let _radix_ui_react_collapsible = require("@radix-ui/react-collapsible");
54
- _radix_ui_react_collapsible = __toESM(_radix_ui_react_collapsible);
53
+ _radix_ui_react_collapsible = __toESM(_radix_ui_react_collapsible, 1);
55
54
  let _ark_ui_react_radio_group = require("@ark-ui/react/radio-group");
56
55
  let _ark_ui_react_segment_group = require("@ark-ui/react/segment-group");
57
56
  let _zag_js_steps = require("@zag-js/steps");
@@ -2887,6 +2886,7 @@ const DsIcon = (t0) => {
2887
2886
  } else t8 = $[29];
2888
2887
  return t8;
2889
2888
  };
2889
+ DsIcon.displayName = "DsIcon";
2890
2890
  //#endregion
2891
2891
  //#region src/components/ds-typography/ds-typography.config.ts
2892
2892
  const typographyVariantConfig = {
@@ -2983,7 +2983,7 @@ const typographyVariantConfig = {
2983
2983
  component: _ark_ui_react.ark.h4
2984
2984
  }
2985
2985
  };
2986
- /** Semantic text colors backed by `--font-*` tokens in `_root_new.scss`. */
2986
+ /** Semantic text colors backed by `--font-*` tokens in `_root.scss`. */
2987
2987
  const typographyColors = [
2988
2988
  "main",
2989
2989
  "secondary",
@@ -3003,6 +3003,228 @@ const typographyColors = [
3003
3003
  "code"
3004
3004
  ];
3005
3005
  //#endregion
3006
+ //#region src/components/ds-typography/hooks/use-truncation.ts
3007
+ const OVERFLOW_TOLERANCE_PX = 1;
3008
+ const FALLBACK_LINE_HEIGHT_RATIO = 1.2;
3009
+ const DEFAULT_FONT_SIZE_PX = 16;
3010
+ const ELLIPSIS = "…";
3011
+ const ellipsisWidthCache = /* @__PURE__ */ new Map();
3012
+ let ellipsisMeasureSpan = null;
3013
+ const measureEllipsisWidth = (computed) => {
3014
+ const cacheKey = `${computed.fontStyle}|${computed.fontWeight}|${computed.fontSize}|${computed.fontFamily}|${computed.letterSpacing}`;
3015
+ const cached = ellipsisWidthCache.get(cacheKey);
3016
+ if (cached !== void 0) return cached;
3017
+ ellipsisMeasureSpan ??= document.createElement("span");
3018
+ const span = ellipsisMeasureSpan;
3019
+ span.textContent = ELLIPSIS;
3020
+ span.style.position = "absolute";
3021
+ span.style.visibility = "hidden";
3022
+ span.style.whiteSpace = "pre";
3023
+ span.style.fontStyle = computed.fontStyle;
3024
+ span.style.fontWeight = computed.fontWeight;
3025
+ span.style.fontSize = computed.fontSize;
3026
+ span.style.fontFamily = computed.fontFamily;
3027
+ span.style.letterSpacing = computed.letterSpacing;
3028
+ document.body.appendChild(span);
3029
+ const width = span.getBoundingClientRect().width;
3030
+ span.remove();
3031
+ ellipsisWidthCache.set(cacheKey, width);
3032
+ return width;
3033
+ };
3034
+ let measureRange = null;
3035
+ const measureFittingPrefixRight = (textNode, maxRight) => {
3036
+ measureRange ??= document.createRange();
3037
+ const range = measureRange;
3038
+ let low = 0;
3039
+ let high = textNode.length;
3040
+ let fittingLength = 0;
3041
+ while (low <= high) {
3042
+ const mid = low + high >>> 1;
3043
+ range.setStart(textNode, 0);
3044
+ range.setEnd(textNode, mid);
3045
+ if (range.getBoundingClientRect().right <= maxRight) {
3046
+ fittingLength = mid;
3047
+ low = mid + 1;
3048
+ } else high = mid - 1;
3049
+ }
3050
+ range.setStart(textNode, 0);
3051
+ range.setEnd(textNode, fittingLength);
3052
+ return range.getBoundingClientRect().right;
3053
+ };
3054
+ const getFirstTextNode = (element) => element.firstChild instanceof Text ? element.firstChild : null;
3055
+ const useTruncation = (ref, enabled, deps = []) => {
3056
+ const [isTruncated, setIsTruncated] = (0, react.useState)(false);
3057
+ (0, react.useLayoutEffect)(() => {
3058
+ const element = ref.current;
3059
+ if (!enabled || !element) {
3060
+ setIsTruncated(false);
3061
+ return;
3062
+ }
3063
+ const measure = () => {
3064
+ const overflowsHorizontally = element.scrollWidth - element.clientWidth > OVERFLOW_TOLERANCE_PX;
3065
+ const overflowsVertically = element.scrollHeight - element.clientHeight > OVERFLOW_TOLERANCE_PX;
3066
+ setIsTruncated(overflowsHorizontally || overflowsVertically);
3067
+ };
3068
+ const rafId = requestAnimationFrame(measure);
3069
+ const resizeObserver = new ResizeObserver(() => requestAnimationFrame(measure));
3070
+ resizeObserver.observe(element);
3071
+ return () => {
3072
+ cancelAnimationFrame(rafId);
3073
+ resizeObserver.disconnect();
3074
+ };
3075
+ }, [
3076
+ ref,
3077
+ enabled,
3078
+ ...deps
3079
+ ]);
3080
+ return {
3081
+ isTruncated,
3082
+ getAnchorRect: (0, react.useCallback)(() => {
3083
+ const element = ref.current;
3084
+ if (!element) return null;
3085
+ const rect = element.getBoundingClientRect();
3086
+ const computed = getComputedStyle(element);
3087
+ const paddingRight = parseFloat(computed.paddingRight) || 0;
3088
+ const borderRight = parseFloat(computed.borderRightWidth) || 0;
3089
+ const paddingBottom = parseFloat(computed.paddingBottom) || 0;
3090
+ const borderBottom = parseFloat(computed.borderBottomWidth) || 0;
3091
+ const fontSize = parseFloat(computed.fontSize) || DEFAULT_FONT_SIZE_PX;
3092
+ const lineHeight = parseFloat(computed.lineHeight) || fontSize * FALLBACK_LINE_HEIGHT_RATIO;
3093
+ const contentRight = rect.right - paddingRight - borderRight;
3094
+ const ellipsisWidth = measureEllipsisWidth(computed);
3095
+ const textNode = getFirstTextNode(element);
3096
+ return {
3097
+ x: computed.whiteSpace === "nowrap" && textNode ? measureFittingPrefixRight(textNode, contentRight - ellipsisWidth) + ellipsisWidth / 2 : contentRight - ellipsisWidth / 2,
3098
+ y: rect.bottom - paddingBottom - borderBottom - lineHeight,
3099
+ width: 0,
3100
+ height: lineHeight
3101
+ };
3102
+ }, [ref])
3103
+ };
3104
+ };
3105
+ //#endregion
3106
+ //#region src/utils/merge-refs.ts
3107
+ const mergeRefs = (...refs) => {
3108
+ return (value) => {
3109
+ refs.filter((r) => !!r).forEach((ref) => {
3110
+ if (typeof ref === "function") ref(value);
3111
+ else ref.current = value;
3112
+ });
3113
+ };
3114
+ };
3115
+ //#endregion
3116
+ //#region src/components/ds-tooltip/ds-tooltip.module.scss
3117
+ var ds_tooltip_module_default = {
3118
+ "arrow": "rUPoLa_arrow",
3119
+ "text": "rUPoLa_text",
3120
+ "tooltip": "rUPoLa_tooltip"
3121
+ };
3122
+ //#endregion
3123
+ //#region src/components/ds-tooltip/ds-tooltip.tsx
3124
+ const OPEN_DELAY_MS = 200;
3125
+ const CLOSE_DELAY_MS = 0;
3126
+ const TOOLTIP_GUTTER_PX = 0;
3127
+ const DsTooltip = (t0) => {
3128
+ const $ = (0, react_compiler_runtime.c)(19);
3129
+ const { content, children, placement: t1, disabled: t2, getAnchorRect, slotProps } = t0;
3130
+ const placement = t1 === void 0 ? "top" : t1;
3131
+ const disabled = t2 === void 0 ? false : t2;
3132
+ if (content === void 0) return children;
3133
+ const t3 = getAnchorRect ?? void 0;
3134
+ let t4;
3135
+ if ($[0] !== placement || $[1] !== t3) {
3136
+ t4 = {
3137
+ placement,
3138
+ gutter: TOOLTIP_GUTTER_PX,
3139
+ getAnchorRect: t3
3140
+ };
3141
+ $[0] = placement;
3142
+ $[1] = t3;
3143
+ $[2] = t4;
3144
+ } else t4 = $[2];
3145
+ let t5;
3146
+ if ($[3] !== children) {
3147
+ t5 = /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_ark_ui_react_tooltip.Tooltip.Trigger, {
3148
+ asChild: true,
3149
+ children
3150
+ });
3151
+ $[3] = children;
3152
+ $[4] = t5;
3153
+ } else t5 = $[4];
3154
+ const t6 = slotProps?.content?.className;
3155
+ let t7;
3156
+ if ($[5] !== t6) {
3157
+ t7 = (0, classnames.default)(ds_tooltip_module_default.tooltip, t6);
3158
+ $[5] = t6;
3159
+ $[6] = t7;
3160
+ } else t7 = $[6];
3161
+ const t8 = slotProps?.content?.style;
3162
+ let t9;
3163
+ if ($[7] !== content) {
3164
+ t9 = (0, react.isValidElement)(content) ? content : /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
3165
+ className: ds_tooltip_module_default.text,
3166
+ children: content
3167
+ });
3168
+ $[7] = content;
3169
+ $[8] = t9;
3170
+ } else t9 = $[8];
3171
+ let t10;
3172
+ if ($[9] === Symbol.for("react.memo_cache_sentinel")) {
3173
+ t10 = /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_ark_ui_react_tooltip.Tooltip.Arrow, {
3174
+ className: ds_tooltip_module_default.arrow,
3175
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_ark_ui_react_tooltip.Tooltip.ArrowTip, {})
3176
+ });
3177
+ $[9] = t10;
3178
+ } else t10 = $[9];
3179
+ let t11;
3180
+ if ($[10] !== t7 || $[11] !== t8 || $[12] !== t9) {
3181
+ t11 = /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_ark_ui_react_portal.Portal, { children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_ark_ui_react_tooltip.Tooltip.Positioner, { children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(_ark_ui_react_tooltip.Tooltip.Content, {
3182
+ className: t7,
3183
+ style: t8,
3184
+ children: [t9, t10]
3185
+ }) }) });
3186
+ $[10] = t7;
3187
+ $[11] = t8;
3188
+ $[12] = t9;
3189
+ $[13] = t11;
3190
+ } else t11 = $[13];
3191
+ let t12;
3192
+ if ($[14] !== disabled || $[15] !== t11 || $[16] !== t4 || $[17] !== t5) {
3193
+ t12 = /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(_ark_ui_react_tooltip.Tooltip.Root, {
3194
+ openDelay: OPEN_DELAY_MS,
3195
+ closeDelay: CLOSE_DELAY_MS,
3196
+ disabled,
3197
+ positioning: t4,
3198
+ lazyMount: true,
3199
+ unmountOnExit: true,
3200
+ children: [t5, t11]
3201
+ });
3202
+ $[14] = disabled;
3203
+ $[15] = t11;
3204
+ $[16] = t4;
3205
+ $[17] = t5;
3206
+ $[18] = t12;
3207
+ } else t12 = $[18];
3208
+ return t12;
3209
+ };
3210
+ DsTooltip.displayName = "DsTooltip";
3211
+ //#endregion
3212
+ //#region src/components/ds-tooltip/ds-tooltip.types.ts
3213
+ const tooltipPlacements = [
3214
+ "top",
3215
+ "top-start",
3216
+ "top-end",
3217
+ "bottom",
3218
+ "bottom-start",
3219
+ "bottom-end",
3220
+ "left",
3221
+ "left-start",
3222
+ "left-end",
3223
+ "right",
3224
+ "right-start",
3225
+ "right-end"
3226
+ ];
3227
+ //#endregion
3006
3228
  //#region src/components/ds-typography/ds-typography.module.scss
3007
3229
  var ds_typography_module_default = {
3008
3230
  "body-md-bold": "X6xyRq_body-md-bold",
@@ -3027,14 +3249,17 @@ var ds_typography_module_default = {
3027
3249
  "heading1": "X6xyRq_heading1",
3028
3250
  "heading2": "X6xyRq_heading2",
3029
3251
  "heading3": "X6xyRq_heading3",
3030
- "heading4": "X6xyRq_heading4"
3252
+ "heading4": "X6xyRq_heading4",
3253
+ "truncateMultiline": "X6xyRq_truncateMultiline",
3254
+ "truncateSingle": "X6xyRq_truncateSingle"
3031
3255
  };
3032
3256
  //#endregion
3033
3257
  //#region src/components/ds-typography/ds-typography.tsx
3034
3258
  const semanticColorSet = new Set(typographyColors);
3035
3259
  const resolveColor = (color) => semanticColorSet.has(color) ? `var(--font-${color})` : color;
3260
+ const resolveLineClamp = (truncate) => typeof truncate === "number" ? Math.max(1, Math.floor(truncate)) : 1;
3036
3261
  const DsTypography = (t0) => {
3037
- const $ = (0, react_compiler_runtime.c)(23);
3262
+ const $ = (0, react_compiler_runtime.c)(34);
3038
3263
  let children;
3039
3264
  let className;
3040
3265
  let color;
@@ -3042,9 +3267,12 @@ const DsTypography = (t0) => {
3042
3267
  let ref;
3043
3268
  let style;
3044
3269
  let t1;
3270
+ let t2;
3271
+ let t3;
3272
+ let tooltipContent;
3045
3273
  let variant;
3046
3274
  if ($[0] !== t0) {
3047
- ({ref, variant, asChild: t1, className, style, color, children, ...props} = t0);
3275
+ ({ref, variant, asChild: t1, className, style, color, truncate: t2, tooltip: t3, tooltipContent, children, ...props} = t0);
3048
3276
  $[0] = t0;
3049
3277
  $[1] = children;
3050
3278
  $[2] = className;
@@ -3053,7 +3281,10 @@ const DsTypography = (t0) => {
3053
3281
  $[5] = ref;
3054
3282
  $[6] = style;
3055
3283
  $[7] = t1;
3056
- $[8] = variant;
3284
+ $[8] = t2;
3285
+ $[9] = t3;
3286
+ $[10] = tooltipContent;
3287
+ $[11] = variant;
3057
3288
  } else {
3058
3289
  children = $[1];
3059
3290
  className = $[2];
@@ -3062,54 +3293,100 @@ const DsTypography = (t0) => {
3062
3293
  ref = $[5];
3063
3294
  style = $[6];
3064
3295
  t1 = $[7];
3065
- variant = $[8];
3296
+ t2 = $[8];
3297
+ t3 = $[9];
3298
+ tooltipContent = $[10];
3299
+ variant = $[11];
3066
3300
  }
3067
3301
  const asChild = t1 === void 0 ? false : t1;
3302
+ const truncate = t2 === void 0 ? false : t2;
3303
+ const tooltip = t3 === void 0 ? false : t3;
3068
3304
  const Component = typographyVariantConfig[variant].component;
3069
- const t2 = ds_typography_module_default[variant];
3070
- let t3;
3071
- if ($[9] !== className || $[10] !== t2) {
3072
- t3 = (0, classnames.default)(t2, className);
3073
- $[9] = className;
3074
- $[10] = t2;
3075
- $[11] = t3;
3076
- } else t3 = $[11];
3305
+ const internalRef = (0, react.useRef)(null);
3306
+ const truncationEnabled = truncate !== false;
3307
+ const lineClamp = resolveLineClamp(truncate);
3308
+ const isMultiline = truncationEnabled && lineClamp > 1;
3309
+ const tooltipEnabled = truncationEnabled && tooltip;
3077
3310
  let t4;
3078
- if ($[12] !== color || $[13] !== style) {
3079
- t4 = color ? {
3080
- color: resolveColor(color),
3081
- ...style
3082
- } : style;
3083
- $[12] = color;
3084
- $[13] = style;
3311
+ if ($[12] !== children || $[13] !== truncate) {
3312
+ t4 = [children, truncate];
3313
+ $[12] = children;
3314
+ $[13] = truncate;
3085
3315
  $[14] = t4;
3086
3316
  } else t4 = $[14];
3317
+ const { isTruncated, getAnchorRect } = useTruncation(internalRef, tooltipEnabled, t4);
3318
+ let resolvedStyle;
3319
+ if (color || isMultiline || style) {
3320
+ resolvedStyle = {};
3321
+ if (color) resolvedStyle.color = resolveColor(color);
3322
+ if (isMultiline) Object.assign(resolvedStyle, { "--ds-typography-line-clamp": lineClamp });
3323
+ if (style) Object.assign(resolvedStyle, style);
3324
+ }
3325
+ const truncateClass = truncationEnabled ? isMultiline ? ds_typography_module_default.truncateMultiline : ds_typography_module_default.truncateSingle : void 0;
3087
3326
  let t5;
3088
- if ($[15] !== Component || $[16] !== asChild || $[17] !== children || $[18] !== props || $[19] !== ref || $[20] !== t3 || $[21] !== t4) {
3089
- t5 = /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Component, {
3090
- ref,
3327
+ if ($[15] !== ref) {
3328
+ t5 = mergeRefs(ref, internalRef);
3329
+ $[15] = ref;
3330
+ $[16] = t5;
3331
+ } else t5 = $[16];
3332
+ const t6 = ds_typography_module_default[variant];
3333
+ let t7;
3334
+ if ($[17] !== className || $[18] !== t6 || $[19] !== truncateClass) {
3335
+ t7 = (0, classnames.default)(t6, truncateClass, className);
3336
+ $[17] = className;
3337
+ $[18] = t6;
3338
+ $[19] = truncateClass;
3339
+ $[20] = t7;
3340
+ } else t7 = $[20];
3341
+ let t8;
3342
+ if ($[21] !== Component || $[22] !== asChild || $[23] !== children || $[24] !== props || $[25] !== resolvedStyle || $[26] !== t5 || $[27] !== t7) {
3343
+ t8 = /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Component, {
3344
+ ref: t5,
3091
3345
  asChild,
3092
- className: t3,
3093
- style: t4,
3346
+ className: t7,
3347
+ style: resolvedStyle,
3094
3348
  ...props,
3095
3349
  children
3096
3350
  });
3097
- $[15] = Component;
3098
- $[16] = asChild;
3099
- $[17] = children;
3100
- $[18] = props;
3101
- $[19] = ref;
3102
- $[20] = t3;
3103
- $[21] = t4;
3104
- $[22] = t5;
3105
- } else t5 = $[22];
3106
- return t5;
3351
+ $[21] = Component;
3352
+ $[22] = asChild;
3353
+ $[23] = children;
3354
+ $[24] = props;
3355
+ $[25] = resolvedStyle;
3356
+ $[26] = t5;
3357
+ $[27] = t7;
3358
+ $[28] = t8;
3359
+ } else t8 = $[28];
3360
+ const element = t8;
3361
+ if (!tooltipEnabled) return element;
3362
+ const t9 = tooltipContent ?? children;
3363
+ const t10 = !isTruncated;
3364
+ let t11;
3365
+ if ($[29] !== element || $[30] !== getAnchorRect || $[31] !== t10 || $[32] !== t9) {
3366
+ t11 = /* @__PURE__ */ (0, react_jsx_runtime.jsx)(DsTooltip, {
3367
+ content: t9,
3368
+ placement: "top",
3369
+ disabled: t10,
3370
+ getAnchorRect,
3371
+ children: element
3372
+ });
3373
+ $[29] = element;
3374
+ $[30] = getAnchorRect;
3375
+ $[31] = t10;
3376
+ $[32] = t9;
3377
+ $[33] = t11;
3378
+ } else t11 = $[33];
3379
+ return t11;
3107
3380
  };
3381
+ DsTypography.displayName = "DsTypography";
3108
3382
  //#endregion
3109
3383
  //#region src/components/ds-alert-banner/ds-alert-banner.tsx
3110
3384
  /**
3111
- * Design system AlertBanner component
3112
- * Controlled component that displays alert messages with different variants
3385
+ * @summary Controlled banner for surfacing contextual status messages.
3386
+ *
3387
+ * Renders as an inline bordered card or a full-width global bar, with five
3388
+ * severity variants, an optional icon, and an optional close button. Compose the
3389
+ * content with `DsAlertBanner.Title`, `DsAlertBanner.Body`, and `DsAlertBanner.Actions`.
3113
3390
  */
3114
3391
  const DsAlertBanner = (t0) => {
3115
3392
  const $ = (0, react_compiler_runtime.c)(20);
@@ -3270,9 +3547,13 @@ const Actions$3 = (t0) => {
3270
3547
  } else t2 = $[5];
3271
3548
  return t2;
3272
3549
  };
3550
+ Title$2.displayName = "DsAlertBanner.Title";
3551
+ Body$5.displayName = "DsAlertBanner.Body";
3552
+ Actions$3.displayName = "DsAlertBanner.Actions";
3273
3553
  DsAlertBanner.Title = Title$2;
3274
3554
  DsAlertBanner.Body = Body$5;
3275
3555
  DsAlertBanner.Actions = Actions$3;
3556
+ DsAlertBanner.displayName = "DsAlertBanner";
3276
3557
  //#endregion
3277
3558
  //#region src/components/ds-alert-banner/ds-alert-banner.types.ts
3278
3559
  const alertBannerVariants = [
@@ -3337,7 +3618,7 @@ const DsAutocomplete = (t0) => {
3337
3618
  const filterUtils = (0, _ark_ui_react_locale.useFilter)(t12);
3338
3619
  const collection = (0, _ark_ui_react_combobox.createListCollection)({
3339
3620
  items: filterText ? options.filter((opt) => filterUtils.contains(opt.label, filterText)) : options,
3340
- itemToString: _temp$16,
3621
+ itemToString: _temp$17,
3341
3622
  itemToValue: _temp2$9
3342
3623
  });
3343
3624
  let t13;
@@ -3549,7 +3830,8 @@ const DsAutocomplete = (t0) => {
3549
3830
  } else t33 = $[52];
3550
3831
  return t33;
3551
3832
  };
3552
- function _temp$16(item) {
3833
+ DsAutocomplete.displayName = "DsAutocomplete";
3834
+ function _temp$17(item) {
3553
3835
  return item.label;
3554
3836
  }
3555
3837
  function _temp2$9(item_0) {
@@ -3570,79 +3852,13 @@ var ds_avatar_module_default = {
3570
3852
  "xsm": "VcKEMW_xsm"
3571
3853
  };
3572
3854
  //#endregion
3573
- //#region src/components/ds-tooltip/ds-tooltip.module.scss
3574
- var ds_tooltip_module_default = {
3575
- "arrow": "rUPoLa_arrow",
3576
- "tooltip": "rUPoLa_tooltip"
3577
- };
3578
- //#endregion
3579
- //#region src/components/ds-tooltip/ds-tooltip.tsx
3580
- const DsTooltip = (t0) => {
3581
- const $ = (0, react_compiler_runtime.c)(14);
3582
- const { content, children, slotProps } = t0;
3583
- if (content === void 0) return children;
3584
- let t1;
3585
- if ($[0] !== children) {
3586
- t1 = /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_radix_ui_react_tooltip.Trigger, {
3587
- asChild: true,
3588
- children
3589
- });
3590
- $[0] = children;
3591
- $[1] = t1;
3592
- } else t1 = $[1];
3593
- const t2 = slotProps?.content?.className;
3594
- let t3;
3595
- if ($[2] !== t2) {
3596
- t3 = (0, classnames.default)(ds_tooltip_module_default.tooltip, t2);
3597
- $[2] = t2;
3598
- $[3] = t3;
3599
- } else t3 = $[3];
3600
- const t4 = slotProps?.content?.style;
3601
- let t5;
3602
- if ($[4] !== content) {
3603
- t5 = (0, react.isValidElement)(content) ? content : /* @__PURE__ */ (0, react_jsx_runtime.jsx)(DsTypography, {
3604
- variant: "body-xs-reg",
3605
- children: content
3606
- });
3607
- $[4] = content;
3608
- $[5] = t5;
3609
- } else t5 = $[5];
3610
- let t6;
3611
- if ($[6] === Symbol.for("react.memo_cache_sentinel")) {
3612
- t6 = /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_radix_ui_react_tooltip.Arrow, { className: ds_tooltip_module_default.arrow });
3613
- $[6] = t6;
3614
- } else t6 = $[6];
3615
- let t7;
3616
- if ($[7] !== t3 || $[8] !== t4 || $[9] !== t5) {
3617
- t7 = /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_radix_ui_react_tooltip.Portal, { children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(_radix_ui_react_tooltip.Content, {
3618
- className: t3,
3619
- style: t4,
3620
- side: "top",
3621
- align: "center",
3622
- sideOffset: 4,
3623
- children: [t5, t6]
3624
- }) });
3625
- $[7] = t3;
3626
- $[8] = t4;
3627
- $[9] = t5;
3628
- $[10] = t7;
3629
- } else t7 = $[10];
3630
- let t8;
3631
- if ($[11] !== t1 || $[12] !== t7) {
3632
- t8 = /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_radix_ui_react_tooltip.Provider, {
3633
- delayDuration: 200,
3634
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(_radix_ui_react_tooltip.Root, { children: [t1, t7] })
3635
- });
3636
- $[11] = t1;
3637
- $[12] = t7;
3638
- $[13] = t8;
3639
- } else t8 = $[13];
3640
- return t8;
3641
- };
3642
- //#endregion
3643
3855
  //#region src/components/ds-avatar/ds-avatar.tsx
3644
3856
  /**
3645
- * DsAvatar component for displaying user profile pictures or initials
3857
+ * @summary Displays a user's profile picture, falling back to initials.
3858
+ *
3859
+ * Renders a circular or rounded avatar from an image `src`. When the image is
3860
+ * missing or fails to load, the trimmed initials derived from `name` are shown
3861
+ * instead, and `name` is surfaced in a tooltip on hover.
3646
3862
  */
3647
3863
  const DsAvatar = (t0) => {
3648
3864
  const $ = (0, react_compiler_runtime.c)(23);
@@ -3719,13 +3935,25 @@ const DsAvatar = (t0) => {
3719
3935
  } else t11 = $[22];
3720
3936
  return t11;
3721
3937
  };
3722
- function _temp$15(w) {
3938
+ DsAvatar.displayName = "DsAvatar";
3939
+ function _temp$16(w) {
3723
3940
  return w[0];
3724
3941
  }
3725
3942
  function _temp2$8(name_0) {
3726
- return name_0.trim().split(" ").map(_temp$15).join("");
3943
+ return name_0.trim().split(" ").map(_temp$16).join("");
3727
3944
  }
3728
3945
  //#endregion
3946
+ //#region src/components/ds-avatar/ds-avatar.types.ts
3947
+ const dsAvatarSizes = [
3948
+ "xsm",
3949
+ "sm",
3950
+ "regular",
3951
+ "md",
3952
+ "lg",
3953
+ "xl"
3954
+ ];
3955
+ const dsAvatarTypes = ["circle", "rounded"];
3956
+ //#endregion
3729
3957
  //#region src/components/ds-avatar-group/ds-avatar-group.module.scss
3730
3958
  var ds_avatar_group_module_default = {
3731
3959
  "avatarGroup": "DPz7HW_avatarGroup",
@@ -3744,7 +3972,11 @@ var ds_avatar_group_module_default = {
3744
3972
  //#endregion
3745
3973
  //#region src/components/ds-avatar-group/ds-avatar-group.tsx
3746
3974
  /**
3747
- * DsAvatarGroup component for displaying a list of avatars with overlap
3975
+ * @summary Overlapping avatars with overflow collapse and tooltip.
3976
+ *
3977
+ * Renders a row of {@link DsAvatar} members that share `size` and `type`. When
3978
+ * `avatars.length` exceeds `max`, the remainder collapse behind a `+N`
3979
+ * indicator; hovering it lists the hidden names in a tooltip.
3748
3980
  */
3749
3981
  const DsAvatarGroup = (t0) => {
3750
3982
  const $ = (0, react_compiler_runtime.c)(17);
@@ -3780,7 +4012,7 @@ const DsAvatarGroup = (t0) => {
3780
4012
  t6 = remainingCount > 0 && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(DsTooltip, {
3781
4013
  content: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
3782
4014
  className: ds_avatar_group_module_default.tooltipList,
3783
- children: hiddenAvatars.map(_temp$14)
4015
+ children: hiddenAvatars.map(_temp$15)
3784
4016
  }),
3785
4017
  children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
3786
4018
  className: (0, classnames.default)(ds_avatar_group_module_default.moreAvatar, ds_avatar_group_module_default[size], ds_avatar_group_module_default[type]),
@@ -3813,7 +4045,8 @@ const DsAvatarGroup = (t0) => {
3813
4045
  } else t7 = $[16];
3814
4046
  return t7;
3815
4047
  };
3816
- function _temp$14(avatar_0, index_0) {
4048
+ DsAvatarGroup.displayName = "DsAvatarGroup";
4049
+ function _temp$15(avatar_0, index_0) {
3817
4050
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", { children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(DsTypography, {
3818
4051
  variant: "body-xs-reg",
3819
4052
  children: avatar_0.name
@@ -3836,6 +4069,8 @@ var ds_breadcrumb_module_default = {
3836
4069
  //#region src/components/ds-dropdown-menu/ds-dropdown-menu.module.scss
3837
4070
  var ds_dropdown_menu_module_default = {
3838
4071
  "actions": "AkHUyG_actions",
4072
+ "actionsRow": "AkHUyG_actionsRow",
4073
+ "actionsStretch": "AkHUyG_actionsStretch",
3839
4074
  "collapse": "AkHUyG_collapse",
3840
4075
  "content": "AkHUyG_content",
3841
4076
  "contentLegacy": "AkHUyG_contentLegacy",
@@ -4005,6 +4240,7 @@ const DsTextInput = (t0) => {
4005
4240
  } else t16 = $[41];
4006
4241
  return t16;
4007
4242
  };
4243
+ DsTextInput.displayName = "DsTextInput";
4008
4244
  //#endregion
4009
4245
  //#region src/components/ds-text-input/ds-text-input.types.ts
4010
4246
  const textInputSizes = ["small", "default"];
@@ -4209,32 +4445,33 @@ const Header$5 = (t0) => {
4209
4445
  return t2;
4210
4446
  };
4211
4447
  /**
4212
- * Actions component - footer container for action buttons
4448
+ * Actions component - sticky bottom slot for action buttons (`align="end"`) or
4449
+ * full-width elements like a logout item (`align="stretch"`).
4213
4450
  */
4214
4451
  const Actions$2 = (t0) => {
4215
- const $ = (0, react_compiler_runtime.c)(6);
4216
- const { children, className, style } = t0;
4217
- let t1;
4218
- if ($[0] !== className) {
4219
- t1 = (0, classnames.default)(ds_dropdown_menu_module_default.actions, className);
4452
+ const $ = (0, react_compiler_runtime.c)(7);
4453
+ const { children, align: t1, className, style } = t0;
4454
+ const t2 = (t1 === void 0 ? "end" : t1) === "stretch" ? ds_dropdown_menu_module_default.actionsStretch : ds_dropdown_menu_module_default.actionsRow;
4455
+ let t3;
4456
+ if ($[0] !== className || $[1] !== t2) {
4457
+ t3 = (0, classnames.default)(ds_dropdown_menu_module_default.actions, t2, className);
4220
4458
  $[0] = className;
4221
- $[1] = t1;
4222
- } else t1 = $[1];
4223
- let t2;
4224
- if ($[2] !== children || $[3] !== style || $[4] !== t1) {
4225
- t2 = /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
4226
- className: t1,
4459
+ $[1] = t2;
4460
+ $[2] = t3;
4461
+ } else t3 = $[2];
4462
+ let t4;
4463
+ if ($[3] !== children || $[4] !== style || $[5] !== t3) {
4464
+ t4 = /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
4465
+ className: t3,
4227
4466
  style,
4228
- role: "menu",
4229
- "aria-label": "Menu actions",
4230
4467
  children
4231
4468
  });
4232
- $[2] = children;
4233
- $[3] = style;
4234
- $[4] = t1;
4235
- $[5] = t2;
4236
- } else t2 = $[5];
4237
- return t2;
4469
+ $[3] = children;
4470
+ $[4] = style;
4471
+ $[5] = t3;
4472
+ $[6] = t4;
4473
+ } else t4 = $[6];
4474
+ return t4;
4238
4475
  };
4239
4476
  /**
4240
4477
  * ItemGroup component - collapsible group container
@@ -4370,7 +4607,7 @@ const ItemGroupLabel = (t0) => {
4370
4607
  className: t1,
4371
4608
  style,
4372
4609
  onClick: toggle,
4373
- onKeyDown: _temp$13,
4610
+ onKeyDown: _temp$14,
4374
4611
  children: [t2, t5]
4375
4612
  })
4376
4613
  });
@@ -4672,7 +4909,20 @@ const DsDropdownMenu = {
4672
4909
  ItemGroupContent,
4673
4910
  Separator
4674
4911
  };
4675
- function _temp$13(e) {
4912
+ DsDropdownMenu.Root.displayName = "DsDropdownMenu.Root";
4913
+ DsDropdownMenu.Trigger.displayName = "DsDropdownMenu.Trigger";
4914
+ DsDropdownMenu.Content.displayName = "DsDropdownMenu.Content";
4915
+ DsDropdownMenu.Item.displayName = "DsDropdownMenu.Item";
4916
+ DsDropdownMenu.ItemIndicator.displayName = "DsDropdownMenu.ItemIndicator";
4917
+ DsDropdownMenu.TriggerItem.displayName = "DsDropdownMenu.TriggerItem";
4918
+ DsDropdownMenu.Header.displayName = "DsDropdownMenu.Header";
4919
+ DsDropdownMenu.Actions.displayName = "DsDropdownMenu.Actions";
4920
+ DsDropdownMenu.ItemGroup.displayName = "DsDropdownMenu.ItemGroup";
4921
+ DsDropdownMenu.ItemGroupLabel.displayName = "DsDropdownMenu.ItemGroupLabel";
4922
+ DsDropdownMenu.ItemGroupContent.displayName = "DsDropdownMenu.ItemGroupContent";
4923
+ DsDropdownMenu.Separator.displayName = "DsDropdownMenu.Separator";
4924
+ DsDropdownMenuLegacy.displayName = "DsDropdownMenuLegacy";
4925
+ function _temp$14(e) {
4676
4926
  return e.stopPropagation();
4677
4927
  }
4678
4928
  function _temp2$7(e) {
@@ -4681,6 +4931,7 @@ function _temp2$7(e) {
4681
4931
  //#endregion
4682
4932
  //#region src/components/ds-dropdown-menu/ds-dropdown-menu.types.ts
4683
4933
  const dropdownMenuItemVariants = ["default", "error"];
4934
+ const dropdownMenuActionsAlignments = ["end", "stretch"];
4684
4935
  //#endregion
4685
4936
  //#region src/components/ds-breadcrumb/ds-breadcrumb.tsx
4686
4937
  /**
@@ -4737,7 +4988,7 @@ const DsBreadcrumb = (t0) => {
4737
4988
  placeholder: "Search",
4738
4989
  value: search,
4739
4990
  onValueChange: setSearch,
4740
- onKeyDown: _temp$12,
4991
+ onKeyDown: _temp$13,
4741
4992
  slots: { startAdornment: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(DsIcon, {
4742
4993
  icon: "search",
4743
4994
  size: "tiny"
@@ -4793,7 +5044,8 @@ const DsBreadcrumb = (t0) => {
4793
5044
  } else t4 = $[16];
4794
5045
  return t4;
4795
5046
  };
4796
- function _temp$12(e) {
5047
+ DsBreadcrumb.displayName = "DsBreadcrumb";
5048
+ function _temp$13(e) {
4797
5049
  return e.stopPropagation();
4798
5050
  }
4799
5051
  //#endregion
@@ -5104,6 +5356,7 @@ const DsButton = (props) => {
5104
5356
  } else t0 = $[3];
5105
5357
  return t0;
5106
5358
  };
5359
+ DsButton.displayName = "DsButton";
5107
5360
  //#endregion
5108
5361
  //#region src/components/ds-spinner/ds-spinner.module.scss
5109
5362
  var ds_spinner_module_default = {
@@ -5222,6 +5475,7 @@ const DsSpinner = (t0) => {
5222
5475
  } else t11 = $[24];
5223
5476
  return t11;
5224
5477
  };
5478
+ DsSpinner.displayName = "DsSpinner";
5225
5479
  //#endregion
5226
5480
  //#region src/components/ds-spinner/ds-spinner.types.ts
5227
5481
  const spinnerSizes = [
@@ -5240,6 +5494,12 @@ const iconSizeMap = Object.freeze({
5240
5494
  small: "tiny",
5241
5495
  tiny: "tiny"
5242
5496
  });
5497
+ /**
5498
+ * Button for user-triggered actions that do not navigate to another route.
5499
+ * Supports color palettes, emphasis variants, sizes, icon-only layout, loading and selected states.
5500
+ *
5501
+ * @summary action button with color/variant/size, icon-only, loading and selected states
5502
+ */
5243
5503
  const DsButtonV3$1 = (t0) => {
5244
5504
  const $ = (0, react_compiler_runtime.c)(37);
5245
5505
  let children;
@@ -5376,6 +5636,7 @@ const buttonV3Sizes = [
5376
5636
  //#endregion
5377
5637
  //#region src/components/ds-button-v3/index.ts
5378
5638
  const DsButtonV3 = withResponsiveProps(DsButtonV3$1, ["size"]);
5639
+ DsButtonV3.displayName = "DsButtonV3";
5379
5640
  //#endregion
5380
5641
  //#region src/components/ds-card/ds-card.module.scss
5381
5642
  var ds_card_module_default = {
@@ -5499,9 +5760,8 @@ const Root$2 = (t0) => {
5499
5760
  return t14;
5500
5761
  };
5501
5762
  /**
5502
- * Card header - contains title and extra content.
5503
- * Use with DsCard.Title and DsCard.Extra for standard layout,
5504
- * or provide custom children for full flexibility.
5763
+ * Card header — title row and optional trailing content.
5764
+ * Provide custom children for full layout flexibility.
5505
5765
  */
5506
5766
  const Header$4 = (t0) => {
5507
5767
  const $ = (0, react_compiler_runtime.c)(12);
@@ -5632,6 +5892,10 @@ const Footer$3 = (t0) => {
5632
5892
  } else t2 = $[11];
5633
5893
  return t2;
5634
5894
  };
5895
+ Root$2.displayName = "DsCard.Root";
5896
+ Header$4.displayName = "DsCard.Header";
5897
+ Body$4.displayName = "DsCard.Body";
5898
+ Footer$3.displayName = "DsCard.Footer";
5635
5899
  const DsCard = {
5636
5900
  Root: Root$2,
5637
5901
  Header: Header$4,
@@ -6047,11 +6311,17 @@ const ContentHeader = (t0) => {
6047
6311
  } else t6 = $[21];
6048
6312
  return t6;
6049
6313
  };
6314
+ Header$3.displayName = "DsCatalogLayout.Header";
6315
+ Body$3.displayName = "DsCatalogLayout.Body";
6316
+ SideMenu$1.displayName = "DsCatalogLayout.SideMenu";
6317
+ Content$1.displayName = "DsCatalogLayout.Content";
6318
+ ContentHeader.displayName = "DsCatalogLayout.ContentHeader";
6050
6319
  DsCatalogLayout.Header = Header$3;
6051
6320
  DsCatalogLayout.Body = Body$3;
6052
6321
  DsCatalogLayout.SideMenu = SideMenu$1;
6053
6322
  DsCatalogLayout.Content = Content$1;
6054
6323
  DsCatalogLayout.ContentHeader = ContentHeader;
6324
+ DsCatalogLayout.displayName = "DsCatalogLayout";
6055
6325
  //#endregion
6056
6326
  //#region src/components/ds-checkbox/ds-checkbox.module.scss
6057
6327
  var ds_checkbox_module_default = {
@@ -6067,7 +6337,13 @@ var ds_checkbox_module_default = {
6067
6337
  //#endregion
6068
6338
  //#region src/components/ds-checkbox/ds-checkbox.tsx
6069
6339
  /**
6070
- * Design system Checkbox component
6340
+ * @summary Checkbox for single and grouped selection
6341
+ *
6342
+ * Checkbox for boolean and multi-select inputs. Use standalone for a single
6343
+ * toggle, or compose inside `DsCheckboxGroup` for multi-select lists. Import
6344
+ * `useCheckboxSelectAll` from `ds-checkbox-group` for parent "select all"
6345
+ * checkboxes. `checked` accepts `true`, `false`, or `"indeterminate"`.
6346
+ *
6071
6347
  */
6072
6348
  const DsCheckbox = (t0) => {
6073
6349
  const $ = (0, react_compiler_runtime.c)(25);
@@ -6184,6 +6460,7 @@ const DsCheckbox = (t0) => {
6184
6460
  } else t10 = $[24];
6185
6461
  return t10;
6186
6462
  };
6463
+ DsCheckbox.displayName = "DsCheckbox";
6187
6464
  //#endregion
6188
6465
  //#region src/components/ds-checkbox/ds-checkbox.types.ts
6189
6466
  const checkboxVariants = ["default", "warning"];
@@ -6237,6 +6514,7 @@ const DsCheckboxGroup = (t0) => {
6237
6514
  } else t4 = $[11];
6238
6515
  return t4;
6239
6516
  };
6517
+ DsCheckboxGroup.displayName = "DsCheckboxGroup";
6240
6518
  //#endregion
6241
6519
  //#region src/components/ds-checkbox-group/hooks/use-checkbox-select-all.ts
6242
6520
  /**
@@ -6391,6 +6669,7 @@ const DsChip = (t0) => {
6391
6669
  } else t17 = $[28];
6392
6670
  return t17;
6393
6671
  };
6672
+ DsChip.displayName = "DsChip";
6394
6673
  //#endregion
6395
6674
  //#region src/components/ds-chip-group/ds-chip-group.module.scss
6396
6675
  var ds_chip_group_module_default = {
@@ -6432,7 +6711,8 @@ const useChipRowCalculation = ({ chipsWrapperRef, totalFilters }) => {
6432
6711
  total = next;
6433
6712
  } else total += next;
6434
6713
  }
6435
- setVisibleCount(Math.max(1, line < 2 ? index : index - 1));
6714
+ const result = Math.max(1, line < 2 ? index : index - 1);
6715
+ setVisibleCount(result);
6436
6716
  };
6437
6717
  const rafId = requestAnimationFrame(() => {
6438
6718
  calculateVisibleChips();
@@ -6535,6 +6815,7 @@ const DsChipGroup = ({ items, label = "Filtered by:", onClearAll, onItemDelete,
6535
6815
  ]
6536
6816
  });
6537
6817
  };
6818
+ DsChipGroup.displayName = "DsChipGroup";
6538
6819
  //#endregion
6539
6820
  //#region src/components/ds-comment-bubble/ds-comment-bubble.module.scss
6540
6821
  var ds_comment_bubble_module_default = {
@@ -6660,6 +6941,7 @@ const DsTextarea = (t0) => {
6660
6941
  } else t7 = $[21];
6661
6942
  return t7;
6662
6943
  };
6944
+ DsTextarea.displayName = "DsTextarea";
6663
6945
  //#endregion
6664
6946
  //#region src/utils/format-relative-time.ts
6665
6947
  const SECONDS_PER_MINUTE = 60;
@@ -6924,6 +7206,7 @@ const DsThreadItem = (t0) => {
6924
7206
  } else t18 = $[51];
6925
7207
  return t18;
6926
7208
  };
7209
+ DsThreadItem.displayName = "DsThreadItem";
6927
7210
  //#endregion
6928
7211
  //#region src/components/ds-comment-bubble/hooks/use-click-outside.ts
6929
7212
  const useClickOutside = (ref, onClickOutside, t0) => {
@@ -7030,7 +7313,7 @@ const DsCommentThread = (t0) => {
7030
7313
  const bottomRef = (0, react.useRef)(null);
7031
7314
  let t1;
7032
7315
  if ($[0] !== messages) {
7033
- t1 = messages.find(_temp$11) || messages[0];
7316
+ t1 = messages.find(_temp$12) || messages[0];
7034
7317
  $[0] = messages;
7035
7318
  $[1] = t1;
7036
7319
  } else t1 = $[1];
@@ -7170,7 +7453,8 @@ const DsCommentThread = (t0) => {
7170
7453
  } else t22 = $[36];
7171
7454
  return t22;
7172
7455
  };
7173
- function _temp$11(m) {
7456
+ DsCommentThread.displayName = "DsCommentThread";
7457
+ function _temp$12(m) {
7174
7458
  return m.isInitialMessage;
7175
7459
  }
7176
7460
  //#endregion
@@ -7512,6 +7796,7 @@ const DsTag = (t0) => {
7512
7796
  } else t28 = $[63];
7513
7797
  return t28;
7514
7798
  };
7799
+ DsTag.displayName = "DsTag";
7515
7800
  //#endregion
7516
7801
  //#region src/components/ds-tag/ds-tag.types.ts
7517
7802
  const tagSizes = ["medium", "small"];
@@ -7522,16 +7807,6 @@ const tagVariants = [
7522
7807
  "key-value"
7523
7808
  ];
7524
7809
  //#endregion
7525
- //#region src/utils/merge-refs.ts
7526
- const mergeRefs = (...refs) => {
7527
- return (value) => {
7528
- refs.filter((r) => !!r).forEach((ref) => {
7529
- if (typeof ref === "function") ref(value);
7530
- else ref.current = value;
7531
- });
7532
- };
7533
- };
7534
- //#endregion
7535
7810
  //#region src/components/ds-comment-bubble/ds-comment-bubble.tsx
7536
7811
  const DsCommentBubble = (t0) => {
7537
7812
  const $ = (0, react_compiler_runtime.c)(74);
@@ -7869,6 +8144,7 @@ const DsCommentBubble = (t0) => {
7869
8144
  } else t20 = $[73];
7870
8145
  return t20;
7871
8146
  };
8147
+ DsCommentBubble.displayName = "DsCommentBubble";
7872
8148
  //#endregion
7873
8149
  //#region src/components/ds-comment-card/ds-comment-card.module.scss
7874
8150
  var ds_comment_card_module_default = {
@@ -7902,7 +8178,7 @@ const DsCommentCard = (t0) => {
7902
8178
  const { numericId, author, createdAt, messages, referenceTag, isActionRequired } = comment;
7903
8179
  let t4;
7904
8180
  if ($[0] !== messages) {
7905
- t4 = messages.find(_temp$10) || messages[0];
8181
+ t4 = messages.find(_temp$11) || messages[0];
7906
8182
  $[0] = messages;
7907
8183
  $[1] = t4;
7908
8184
  } else t4 = $[1];
@@ -8226,7 +8502,8 @@ const DsCommentCard = (t0) => {
8226
8502
  } else t34 = $[78];
8227
8503
  return t34;
8228
8504
  };
8229
- function _temp$10(m) {
8505
+ DsCommentCard.displayName = "DsCommentCard";
8506
+ function _temp$11(m) {
8230
8507
  return m.isInitialMessage;
8231
8508
  }
8232
8509
  function _temp2$6(m_0) {
@@ -8315,6 +8592,7 @@ const DsCommentIndicator = (t0) => {
8315
8592
  } else t7 = $[16];
8316
8593
  return t7;
8317
8594
  };
8595
+ DsCommentIndicator.displayName = "DsCommentIndicator";
8318
8596
  //#endregion
8319
8597
  //#region src/components/ds-comments-drawer/ds-comments-drawer.module.scss
8320
8598
  var ds_comments_drawer_module_default = {
@@ -8437,8 +8715,8 @@ const useArkDialogBodyLockCleanup = (open, enabled) => {
8437
8715
  //#endregion
8438
8716
  //#region src/components/ds-drawer/ds-drawer.tsx
8439
8717
  const DsDrawer = (t0) => {
8440
- const $ = (0, react_compiler_runtime.c)(25);
8441
- const { open, onOpenChange, columns: t1, position: t2, backdrop: t3, closeOnEscape: t4, closeOnInteractOutside: t5, portal: t6, style, className, children } = t0;
8718
+ const $ = (0, react_compiler_runtime.c)(28);
8719
+ const { open, onOpenChange, onOpenAutoFocus, columns: t1, position: t2, backdrop: t3, closeOnEscape: t4, closeOnInteractOutside: t5, portal: t6, style, className, children } = t0;
8442
8720
  const columns = t1 === void 0 ? 4 : t1;
8443
8721
  const position = t2 === void 0 ? "end" : t2;
8444
8722
  const backdrop = t3 === void 0 ? false : t3;
@@ -8456,75 +8734,88 @@ const DsDrawer = (t0) => {
8456
8734
  $[1] = t7;
8457
8735
  } else t7 = $[1];
8458
8736
  const handleOpenChange = t7;
8459
- const Wrapper = portal ? _ark_ui_react_portal.Portal : react.Fragment;
8460
8737
  let t8;
8461
- if ($[2] !== backdrop) {
8462
- t8 = backdrop && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_ark_ui_react_dialog.Dialog.Backdrop, { className: ds_drawer_module_default.backdrop });
8463
- $[2] = backdrop;
8738
+ if ($[2] !== onOpenAutoFocus) {
8739
+ t8 = onOpenAutoFocus ? () => {
8740
+ const event = new Event("openAutoFocus", { cancelable: true });
8741
+ onOpenAutoFocus(event);
8742
+ return event.defaultPrevented ? document.activeElement : void 0;
8743
+ } : void 0;
8744
+ $[2] = onOpenAutoFocus;
8464
8745
  $[3] = t8;
8465
8746
  } else t8 = $[3];
8466
- const t9 = ds_drawer_module_default[`position-${position}`];
8467
- const t10 = ds_drawer_module_default[`cols-${resolvedColumns}`];
8468
- let t11;
8469
- if ($[4] !== className || $[5] !== t10 || $[6] !== t9) {
8470
- t11 = (0, classnames.default)(ds_drawer_module_default.drawer, t9, className, t10);
8471
- $[4] = className;
8472
- $[5] = t10;
8473
- $[6] = t9;
8474
- $[7] = t11;
8475
- } else t11 = $[7];
8747
+ const initialFocusEl = t8;
8748
+ const Wrapper = portal ? _ark_ui_react_portal.Portal : react.Fragment;
8749
+ let t9;
8750
+ if ($[4] !== backdrop) {
8751
+ t9 = backdrop && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_ark_ui_react_dialog.Dialog.Backdrop, { className: ds_drawer_module_default.backdrop });
8752
+ $[4] = backdrop;
8753
+ $[5] = t9;
8754
+ } else t9 = $[5];
8755
+ const t10 = ds_drawer_module_default[`position-${position}`];
8756
+ const t11 = ds_drawer_module_default[`cols-${resolvedColumns}`];
8476
8757
  let t12;
8477
- if ($[8] !== children) {
8478
- t12 = /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
8479
- className: ds_drawer_module_default.content,
8480
- children
8481
- });
8482
- $[8] = children;
8758
+ if ($[6] !== className || $[7] !== t10 || $[8] !== t11) {
8759
+ t12 = (0, classnames.default)(ds_drawer_module_default.drawer, t10, className, t11);
8760
+ $[6] = className;
8761
+ $[7] = t10;
8762
+ $[8] = t11;
8483
8763
  $[9] = t12;
8484
8764
  } else t12 = $[9];
8485
8765
  let t13;
8486
- if ($[10] !== style || $[11] !== t11 || $[12] !== t12) {
8487
- t13 = /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_ark_ui_react_dialog.Dialog.Positioner, {
8766
+ if ($[10] !== children) {
8767
+ t13 = /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
8768
+ className: ds_drawer_module_default.content,
8769
+ children
8770
+ });
8771
+ $[10] = children;
8772
+ $[11] = t13;
8773
+ } else t13 = $[11];
8774
+ let t14;
8775
+ if ($[12] !== style || $[13] !== t12 || $[14] !== t13) {
8776
+ t14 = /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_ark_ui_react_dialog.Dialog.Positioner, {
8488
8777
  className: ds_drawer_module_default.positioner,
8489
8778
  children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_ark_ui_react_dialog.Dialog.Content, {
8490
8779
  style,
8491
- className: t11,
8492
- children: t12
8780
+ className: t12,
8781
+ children: t13
8493
8782
  })
8494
8783
  });
8495
- $[10] = style;
8496
- $[11] = t11;
8497
- $[12] = t12;
8498
- $[13] = t13;
8499
- } else t13 = $[13];
8500
- let t14;
8501
- if ($[14] !== Wrapper || $[15] !== t13 || $[16] !== t8) {
8502
- t14 = /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(Wrapper, { children: [t8, t13] });
8503
- $[14] = Wrapper;
8504
- $[15] = t13;
8505
- $[16] = t8;
8506
- $[17] = t14;
8507
- } else t14 = $[17];
8784
+ $[12] = style;
8785
+ $[13] = t12;
8786
+ $[14] = t13;
8787
+ $[15] = t14;
8788
+ } else t14 = $[15];
8508
8789
  let t15;
8509
- if ($[18] !== backdrop || $[19] !== closeOnEscape || $[20] !== closeOnInteractOutside || $[21] !== handleOpenChange || $[22] !== open || $[23] !== t14) {
8510
- t15 = /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_ark_ui_react_dialog.Dialog.Root, {
8790
+ if ($[16] !== Wrapper || $[17] !== t14 || $[18] !== t9) {
8791
+ t15 = /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(Wrapper, { children: [t9, t14] });
8792
+ $[16] = Wrapper;
8793
+ $[17] = t14;
8794
+ $[18] = t9;
8795
+ $[19] = t15;
8796
+ } else t15 = $[19];
8797
+ let t16;
8798
+ if ($[20] !== backdrop || $[21] !== closeOnEscape || $[22] !== closeOnInteractOutside || $[23] !== handleOpenChange || $[24] !== initialFocusEl || $[25] !== open || $[26] !== t15) {
8799
+ t16 = /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_ark_ui_react_dialog.Dialog.Root, {
8511
8800
  open,
8512
8801
  onOpenChange: handleOpenChange,
8513
8802
  modal: backdrop,
8514
8803
  closeOnEscape,
8515
8804
  closeOnInteractOutside,
8516
8805
  preventScroll: backdrop,
8517
- children: t14
8518
- });
8519
- $[18] = backdrop;
8520
- $[19] = closeOnEscape;
8521
- $[20] = closeOnInteractOutside;
8522
- $[21] = handleOpenChange;
8523
- $[22] = open;
8524
- $[23] = t14;
8525
- $[24] = t15;
8526
- } else t15 = $[24];
8527
- return t15;
8806
+ initialFocusEl,
8807
+ children: t15
8808
+ });
8809
+ $[20] = backdrop;
8810
+ $[21] = closeOnEscape;
8811
+ $[22] = closeOnInteractOutside;
8812
+ $[23] = handleOpenChange;
8813
+ $[24] = initialFocusEl;
8814
+ $[25] = open;
8815
+ $[26] = t15;
8816
+ $[27] = t16;
8817
+ } else t16 = $[27];
8818
+ return t16;
8528
8819
  };
8529
8820
  const Header$2 = (t0) => {
8530
8821
  const $ = (0, react_compiler_runtime.c)(6);
@@ -8704,6 +8995,13 @@ const Actions$1 = (t0) => {
8704
8995
  } else t2 = $[5];
8705
8996
  return t2;
8706
8997
  };
8998
+ Header$2.displayName = "DsDrawer.Header";
8999
+ Title$1.displayName = "DsDrawer.Title";
9000
+ CloseTrigger$1.displayName = "DsDrawer.CloseTrigger";
9001
+ Toolbar.displayName = "DsDrawer.Toolbar";
9002
+ Body$2.displayName = "DsDrawer.Body";
9003
+ Footer$2.displayName = "DsDrawer.Footer";
9004
+ Actions$1.displayName = "DsDrawer.Actions";
8707
9005
  DsDrawer.Header = Header$2;
8708
9006
  DsDrawer.Title = Title$1;
8709
9007
  DsDrawer.CloseTrigger = CloseTrigger$1;
@@ -8711,6 +9009,7 @@ DsDrawer.Toolbar = Toolbar;
8711
9009
  DsDrawer.Body = Body$2;
8712
9010
  DsDrawer.Footer = Footer$2;
8713
9011
  DsDrawer.Actions = Actions$1;
9012
+ DsDrawer.displayName = "DsDrawer";
8714
9013
  //#endregion
8715
9014
  //#region src/components/ds-tag-filter/ds-tag-filter.module.scss
8716
9015
  var ds_tag_filter_module_default = {
@@ -8803,9 +9102,10 @@ const useTagOverflowCalculation = (t0) => {
8803
9102
  return;
8804
9103
  }
8805
9104
  const { count } = fitTagsInRow(tagWidths, getContainerAvailableWidth(container), gap);
9105
+ const hasOverflow = count < tagWidths.length;
8806
9106
  setState({
8807
9107
  visibleTagCount: count,
8808
- hasOverflow: count < tagWidths.length
9108
+ hasOverflow
8809
9109
  });
8810
9110
  };
8811
9111
  $[1] = containerRef;
@@ -9102,6 +9402,7 @@ const DsTagFilter = (t0) => {
9102
9402
  } else t25 = $[61];
9103
9403
  return t25;
9104
9404
  };
9405
+ DsTagFilter.displayName = "DsTagFilter";
9105
9406
  //#endregion
9106
9407
  //#region src/components/ds-comments-drawer/comments-filters.ts
9107
9408
  const initialFilterState = {
@@ -9471,12 +9772,19 @@ const Actions = (t0) => {
9471
9772
  } else t2 = $[5];
9472
9773
  return t2;
9473
9774
  };
9775
+ Header$1.displayName = "DsModal.Header";
9776
+ Title.displayName = "DsModal.Title";
9777
+ CloseTrigger.displayName = "DsModal.CloseTrigger";
9778
+ Body$1.displayName = "DsModal.Body";
9779
+ Footer$1.displayName = "DsModal.Footer";
9780
+ Actions.displayName = "DsModal.Actions";
9474
9781
  DsModal.Header = Header$1;
9475
9782
  DsModal.Title = Title;
9476
9783
  DsModal.CloseTrigger = CloseTrigger;
9477
9784
  DsModal.Body = Body$1;
9478
9785
  DsModal.Footer = Footer$1;
9479
9786
  DsModal.Actions = Actions;
9787
+ DsModal.displayName = "DsModal";
9480
9788
  //#endregion
9481
9789
  //#region src/components/ds-tabs/components/ds-tabs-list/ds-tabs-list.module.scss
9482
9790
  var ds_tabs_list_module_default = { "tabList": "vT68YW_tabList" };
@@ -9513,6 +9821,7 @@ const DsTabsList = (t0) => {
9513
9821
  } else t3 = $[6];
9514
9822
  return t3;
9515
9823
  };
9824
+ DsTabsList.displayName = "DsTabs.List";
9516
9825
  //#endregion
9517
9826
  //#region src/components/ds-tabs/components/ds-tabs-tab/ds-tabs-tab.module.scss
9518
9827
  var ds_tabs_tab_module_default = {
@@ -9638,7 +9947,7 @@ const DsTabsTab = (t0) => {
9638
9947
  })
9639
9948
  }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(DsDropdownMenu.Content, {
9640
9949
  className: ds_tabs_tab_module_default.menuContent,
9641
- children: menuActionItems.map(_temp$9)
9950
+ children: menuActionItems.map(_temp$10)
9642
9951
  })]
9643
9952
  });
9644
9953
  $[17] = handleMenuActionSelect;
@@ -9676,7 +9985,8 @@ const DsTabsTab = (t0) => {
9676
9985
  } else t6 = $[29];
9677
9986
  return t6;
9678
9987
  };
9679
- function _temp$9(item) {
9988
+ DsTabsTab.displayName = "DsTabs.Tab";
9989
+ function _temp$10(item) {
9680
9990
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(DsDropdownMenu.Item, {
9681
9991
  value: item.value,
9682
9992
  disabled: item.disabled,
@@ -9720,6 +10030,7 @@ const DsTabsContent = (t0) => {
9720
10030
  } else t2 = $[6];
9721
10031
  return t2;
9722
10032
  };
10033
+ DsTabsContent.displayName = "DsTabs.Content";
9723
10034
  //#endregion
9724
10035
  //#region src/components/ds-tabs/ds-tabs.module.scss
9725
10036
  var ds_tabs_module_default = { "root": "gZYmYG_root" };
@@ -9772,6 +10083,7 @@ const DsTabsRoot = (t0) => {
9772
10083
  } else t5 = $[12];
9773
10084
  return t5;
9774
10085
  };
10086
+ DsTabsRoot.displayName = "DsTabs.Root";
9775
10087
  const DsTabs = {
9776
10088
  Root: DsTabsRoot,
9777
10089
  List: DsTabsList,
@@ -10200,7 +10512,8 @@ const YearView$1 = () => {
10200
10512
  } else t0 = $[0];
10201
10513
  return t0;
10202
10514
  };
10203
- function _temp$8(weekDay, id) {
10515
+ DsDateInput.displayName = "DsDateInput";
10516
+ function _temp$9(weekDay, id) {
10204
10517
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_ark_ui_react_date_picker.DatePicker.TableHeader, {
10205
10518
  className: ds_date_input_module_default.tableHeader,
10206
10519
  children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(DsTypography, {
@@ -10235,7 +10548,7 @@ function _temp4$2(datePicker) {
10235
10548
  className: ds_date_input_module_default.tableHead,
10236
10549
  children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_ark_ui_react_date_picker.DatePicker.TableRow, {
10237
10550
  className: ds_date_input_module_default.tableRow,
10238
- children: datePicker.weekDays.map(_temp$8)
10551
+ children: datePicker.weekDays.map(_temp$9)
10239
10552
  })
10240
10553
  }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_ark_ui_react_date_picker.DatePicker.TableBody, {
10241
10554
  className: ds_date_input_module_default.tableBody,
@@ -10878,7 +11191,7 @@ const DsCommentsDrawer = (t0) => {
10878
11191
  authorsMap.set(comment.author.id, comment.author.name);
10879
11192
  comment.labels?.forEach((label) => labelsSet.add(label));
10880
11193
  });
10881
- availableAuthors = Array.from(authorsMap.entries()).map(_temp$7);
11194
+ availableAuthors = Array.from(authorsMap.entries()).map(_temp$8);
10882
11195
  availableLabels = Array.from(labelsSet);
10883
11196
  let filteredComments = comments;
10884
11197
  if (!showResolved) filteredComments = filteredComments.filter(_temp2$4);
@@ -10952,7 +11265,10 @@ const DsCommentsDrawer = (t0) => {
10952
11265
  if ($[49] !== appliedFilters || $[50] !== filterTags) {
10953
11266
  t21 = (item) => {
10954
11267
  const tag = filterTags.find((c_2) => c_2.id === item.id);
10955
- if (tag) setAppliedFilters(removeTag(appliedFilters, tag));
11268
+ if (tag) {
11269
+ const newFilters = removeTag(appliedFilters, tag);
11270
+ setAppliedFilters(newFilters);
11271
+ }
10956
11272
  };
10957
11273
  $[49] = appliedFilters;
10958
11274
  $[50] = filterTags;
@@ -11227,7 +11543,8 @@ const DsCommentsDrawer = (t0) => {
11227
11543
  } else t18 = $[101];
11228
11544
  return t18;
11229
11545
  };
11230
- function _temp$7(t0) {
11546
+ DsCommentsDrawer.displayName = "DsCommentsDrawer";
11547
+ function _temp$8(t0) {
11231
11548
  const [id, name] = t0;
11232
11549
  return {
11233
11550
  id,
@@ -11273,6 +11590,7 @@ DsConfirmation.CloseTrigger = DsModal.CloseTrigger;
11273
11590
  DsConfirmation.Body = DsModal.Body;
11274
11591
  DsConfirmation.Footer = DsModal.Footer;
11275
11592
  DsConfirmation.Actions = DsModal.Actions;
11593
+ DsConfirmation.displayName = "DsConfirmation";
11276
11594
  //#endregion
11277
11595
  //#region src/components/ds-date-picker/ds-date-picker.utils.ts
11278
11596
  const toIntlDate = (date) => date ? (0, _internationalized_date.fromDate)(date, (0, _internationalized_date.getLocalTimeZone)()) : date;
@@ -11929,6 +12247,7 @@ const DsTimePicker = (props) => {
11929
12247
  } else t26 = $[71];
11930
12248
  return t26;
11931
12249
  };
12250
+ DsTimePicker.displayName = "DsTimePicker";
11932
12251
  //#endregion
11933
12252
  //#region src/components/ds-date-picker/ds-date-picker.module.scss
11934
12253
  var ds_date_picker_module_default = {
@@ -12027,7 +12346,7 @@ const DayView = (t0) => {
12027
12346
  className: calendar_table_module_default.table,
12028
12347
  children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(_ark_ui_react_date_picker.DatePicker.TableHead, { children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_ark_ui_react_date_picker.DatePicker.TableRow, {
12029
12348
  className: calendar_table_module_default.tableRow,
12030
- children: datePicker.weekDays.map(_temp$6)
12349
+ children: datePicker.weekDays.map(_temp$7)
12031
12350
  }) }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_ark_ui_react_date_picker.DatePicker.TableBody, {
12032
12351
  className: calendar_table_module_default.tableBody,
12033
12352
  children: datePicker.weeks.map(_temp3$3)
@@ -12042,7 +12361,7 @@ const DayView = (t0) => {
12042
12361
  } else t1 = $[1];
12043
12362
  return t1;
12044
12363
  };
12045
- function _temp$6(weekDay, idx) {
12364
+ function _temp$7(weekDay, idx) {
12046
12365
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_ark_ui_react_date_picker.DatePicker.TableHeader, {
12047
12366
  className: calendar_table_module_default.tableHeader,
12048
12367
  children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(DsTypography, {
@@ -12086,7 +12405,7 @@ const MonthView = () => {
12086
12405
  } else t0 = $[0];
12087
12406
  return t0;
12088
12407
  };
12089
- function _temp$5(month, monthIdx) {
12408
+ function _temp$6(month, monthIdx) {
12090
12409
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_ark_ui_react_date_picker.DatePicker.TableCell, {
12091
12410
  value: month.value,
12092
12411
  children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_ark_ui_react_date_picker.DatePicker.TableCellTrigger, {
@@ -12101,7 +12420,7 @@ function _temp$5(month, monthIdx) {
12101
12420
  function _temp2$2(months, rowIdx) {
12102
12421
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_ark_ui_react_date_picker.DatePicker.TableRow, {
12103
12422
  className: calendar_table_module_default.tableRow,
12104
- children: months.map(_temp$5)
12423
+ children: months.map(_temp$6)
12105
12424
  }, rowIdx);
12106
12425
  }
12107
12426
  function _temp3$2(datePicker) {
@@ -12133,7 +12452,7 @@ const YearView = () => {
12133
12452
  } else t0 = $[0];
12134
12453
  return t0;
12135
12454
  };
12136
- function _temp$4(year, yearIdx) {
12455
+ function _temp$5(year, yearIdx) {
12137
12456
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_ark_ui_react_date_picker.DatePicker.TableCell, {
12138
12457
  value: year.value,
12139
12458
  children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_ark_ui_react_date_picker.DatePicker.TableCellTrigger, {
@@ -12148,7 +12467,7 @@ function _temp$4(year, yearIdx) {
12148
12467
  function _temp2$1(years, rowIdx) {
12149
12468
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_ark_ui_react_date_picker.DatePicker.TableRow, {
12150
12469
  className: calendar_table_module_default.tableRow,
12151
- children: years.map(_temp$4)
12470
+ children: years.map(_temp$5)
12152
12471
  }, rowIdx);
12153
12472
  }
12154
12473
  function _temp3$1(datePicker) {
@@ -12162,6 +12481,13 @@ function _temp3$1(datePicker) {
12162
12481
  }
12163
12482
  //#endregion
12164
12483
  //#region src/components/ds-date-picker/ds-date-picker.tsx
12484
+ /**
12485
+ * @summary Date and optional time input with calendar popover and manual typing.
12486
+ *
12487
+ * Supports controlled (`value` + `onChange`) and uncontrolled (`defaultValue`) modes.
12488
+ * Pass `withTime` to include a nested time picker. A clear button appears when a
12489
+ * value is set unless `hideClearButton` is set.
12490
+ */
12165
12491
  const DsDatePicker = (t0) => {
12166
12492
  const $ = (0, react_compiler_runtime.c)(123);
12167
12493
  let _defaultValue;
@@ -12300,7 +12626,10 @@ const DsDatePicker = (t0) => {
12300
12626
  min,
12301
12627
  max,
12302
12628
  withTime
12303
- })) setValue(parseDate(text));
12629
+ })) {
12630
+ const parsedValue = parseDate(text);
12631
+ setValue(parsedValue);
12632
+ }
12304
12633
  };
12305
12634
  $[37] = max;
12306
12635
  $[38] = min;
@@ -12602,6 +12931,7 @@ const DsDatePicker = (t0) => {
12602
12931
  } else t39 = $[122];
12603
12932
  return t39;
12604
12933
  };
12934
+ DsDatePicker.displayName = "DsDatePicker";
12605
12935
  //#endregion
12606
12936
  //#region src/components/ds-select/ds-select.module.scss
12607
12937
  var ds_select_module_default = {
@@ -12732,7 +13062,7 @@ const DsSelect = (t0) => {
12732
13062
  const internalOptions = multiselectProps.multiple ? [SELECT_ALL_OPTION, ...userOptions] : userOptions;
12733
13063
  const collection = (0, _ark_ui_react_select.createListCollection)({
12734
13064
  items: internalOptions,
12735
- itemToValue: _temp$3
13065
+ itemToValue: _temp$4
12736
13066
  });
12737
13067
  let t2;
12738
13068
  if ($[0] !== searchTerm) {
@@ -12957,7 +13287,8 @@ function getItemCheckedState({ item, select, options }) {
12957
13287
  if (select.selectedItems.length === options.length - 1) return true;
12958
13288
  return select.hasSelectedItems ? "indeterminate" : false;
12959
13289
  }
12960
- function _temp$3(item) {
13290
+ DsSelect.displayName = "DsSelect";
13291
+ function _temp$4(item) {
12961
13292
  return item.value;
12962
13293
  }
12963
13294
  function _temp2(value_0) {
@@ -13128,6 +13459,7 @@ const DsNumberInput = (t0) => {
13128
13459
  } else t18 = $[32];
13129
13460
  return t18;
13130
13461
  };
13462
+ DsNumberInput.displayName = "DsNumberInput";
13131
13463
  //#endregion
13132
13464
  //#region src/components/ds-password-input/ds-password-input.module.scss
13133
13465
  var ds_password_input_module_default = {
@@ -13251,6 +13583,7 @@ const DsPasswordInput = (t0) => {
13251
13583
  } else t13 = $[26];
13252
13584
  return t13;
13253
13585
  };
13586
+ DsPasswordInput.displayName = "DsPasswordInput";
13254
13587
  //#endregion
13255
13588
  //#region src/components/ds-form-control/ds-form-control.module.scss
13256
13589
  var ds_form_control_module_default = {
@@ -13413,6 +13746,8 @@ DsFormControl.TimePicker = controlify(DsTimePicker);
13413
13746
  DsFormControl.Textarea = controlify(DsTextarea);
13414
13747
  DsFormControl.Select = controlify(DsSelect);
13415
13748
  DsFormControl.Description = DsFormControlDescription;
13749
+ DsFormControl.displayName = "DsFormControl";
13750
+ DsFormControl.Description.displayName = "DsFormControl.Description";
13416
13751
  //#endregion
13417
13752
  //#region src/components/ds-form-control/ds-form-control.types.ts
13418
13753
  const controlStatuses = [
@@ -13647,6 +13982,7 @@ const DsDateRangePicker = (t0) => {
13647
13982
  } else t29 = $[61];
13648
13983
  return t29;
13649
13984
  };
13985
+ DsDateRangePicker.displayName = "DsDateRangePicker";
13650
13986
  //#endregion
13651
13987
  //#region src/components/ds-dialog/ds-dialog.module.scss
13652
13988
  var ds_dialog_module_default = {
@@ -13658,6 +13994,13 @@ var ds_dialog_module_default = {
13658
13994
  };
13659
13995
  //#endregion
13660
13996
  //#region src/components/ds-dialog/ds-dialog.tsx
13997
+ /**
13998
+ * @summary Lightweight controlled dialog for simple panels and popovers.
13999
+ *
14000
+ * Renders a Radix dialog with required accessible title, optional description,
14001
+ * and custom body content. Use for focused overlays and menu-style panels.
14002
+ * Prefer `DsModal` when you need structured header, body, and footer sections.
14003
+ */
13661
14004
  const DsDialog = ({ open, onOpenChange, title, hideTitle, description, hideDescription, children, className, anchorRef, customPosition, modal = true }) => {
13662
14005
  let style = {};
13663
14006
  if (customPosition) style = {
@@ -13704,6 +14047,7 @@ const DsDialog = ({ open, onOpenChange, title, hideTitle, description, hideDescr
13704
14047
  })] })
13705
14048
  });
13706
14049
  };
14050
+ DsDialog.displayName = "DsDialog";
13707
14051
  //#endregion
13708
14052
  //#region src/components/ds-divider/ds-divider.module.scss
13709
14053
  var ds_divider_module_default = {
@@ -13748,6 +14092,7 @@ const DsDivider = (t0) => {
13748
14092
  } else t4 = $[8];
13749
14093
  return t4;
13750
14094
  };
14095
+ DsDivider.displayName = "DsDivider";
13751
14096
  //#endregion
13752
14097
  //#region src/components/ds-expandable-text-input/ds-expandable-text-input.module.scss
13753
14098
  var ds_expandable_text_input_module_default = {
@@ -13924,6 +14269,7 @@ function InputExpander(t0) {
13924
14269
  } else t1 = $[1];
13925
14270
  return t1;
13926
14271
  }
14272
+ DsExpandableTextInput.displayName = "DsExpandableTextInput";
13927
14273
  //#endregion
13928
14274
  //#region src/components/ds-file-upload/utils/get-error-message.ts
13929
14275
  const FILE_ERROR_MESSAGES = {
@@ -14188,7 +14534,7 @@ const FileUploadItem = (t0) => {
14188
14534
  } else t20 = $[46];
14189
14535
  let t21;
14190
14536
  if ($[47] !== errors || $[48] !== status) {
14191
- t21 = status === "error" && errors?.length && errors.map(_temp$2);
14537
+ t21 = status === "error" && errors?.length && errors.map(_temp$3);
14192
14538
  $[47] = errors;
14193
14539
  $[48] = status;
14194
14540
  $[49] = t21;
@@ -14231,7 +14577,7 @@ const FileUploadItem = (t0) => {
14231
14577
  } else t23 = $[60];
14232
14578
  return t23;
14233
14579
  };
14234
- function _temp$2(error) {
14580
+ function _temp$3(error) {
14235
14581
  return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
14236
14582
  className: file_upload_item_module_default.errorMessage,
14237
14583
  children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(DsIcon, {
@@ -14725,10 +15071,11 @@ function useFileUpload({ adapter, autoUpload = true, maxConcurrent = 3, maxFiles
14725
15071
  filesToAdd = files_0.slice(0, availableSlots);
14726
15072
  rejectedFiles = files_0.slice(availableSlots);
14727
15073
  } else return files_0;
14728
- addRejectedFiles(rejectedFiles.map((file_3) => ({
15074
+ const rejectedFilesWithErrors = rejectedFiles.map((file_3) => ({
14729
15075
  file: file_3,
14730
15076
  errors: ["TOO_MANY_FILES"]
14731
- })));
15077
+ }));
15078
+ addRejectedFiles(rejectedFilesWithErrors);
14732
15079
  return filesToAdd;
14733
15080
  };
14734
15081
  const addNewFiles = (filesToUpload) => {
@@ -14743,8 +15090,10 @@ function useFileUpload({ adapter, autoUpload = true, maxConcurrent = 3, maxFiles
14743
15090
  };
14744
15091
  const addFiles = (newFiles_1) => {
14745
15092
  const addedFiles = getAddedFiles(newFiles_1);
14746
- markDuplicates(getDuplicatedFiles(newFiles_1));
14747
- const uploadedFiles_1 = addNewFiles(markMaxFiles(addedFiles));
15093
+ const duplicateFiles = getDuplicatedFiles(newFiles_1);
15094
+ markDuplicates(duplicateFiles);
15095
+ const filesToAdd_0 = markMaxFiles(addedFiles);
15096
+ const uploadedFiles_1 = addNewFiles(filesToAdd_0);
14748
15097
  uploadNewFiles(uploadedFiles_1);
14749
15098
  return uploadedFiles_1;
14750
15099
  };
@@ -14788,6 +15137,7 @@ function useFileUpload({ adapter, autoUpload = true, maxConcurrent = 3, maxFiles
14788
15137
  updateFileProgress(fileId_2, 100);
14789
15138
  onFileUploadComplete?.(fileId_2, result);
14790
15139
  } catch (error_0) {
15140
+ if (abortController.signal.aborted) return;
14791
15141
  const errorMessage = error_0 instanceof Error ? error_0.message : "Upload failed";
14792
15142
  let status_0 = "interrupted";
14793
15143
  if (error_0 instanceof FileUploadError) status_0 = error_0.isRetryable ? "interrupted" : "error";
@@ -14988,6 +15338,7 @@ const DsFileUpload = (t0) => {
14988
15338
  } else t5 = $[32];
14989
15339
  return t5;
14990
15340
  };
15341
+ DsFileUpload.displayName = "DsFileUpload";
14991
15342
  //#endregion
14992
15343
  //#region src/components/ds-filter-status-icon/ds-filter-status-icon.module.scss
14993
15344
  var ds_filter_status_icon_module_default = {
@@ -15042,6 +15393,7 @@ const DsFilterStatusIcon = (t0) => {
15042
15393
  } else t6 = $[8];
15043
15394
  return t6;
15044
15395
  };
15396
+ DsFilterStatusIcon.displayName = "DsFilterStatusIcon";
15045
15397
  //#endregion
15046
15398
  //#region src/components/ds-filter-status-icon/ds-filter-status-icon.types.ts
15047
15399
  const filterStatuses = [
@@ -15084,6 +15436,8 @@ const DsGridItemBase = ({ children, colSpan, colStart, rowSpan, rowStart, classN
15084
15436
  //#region src/components/ds-grid/index.ts
15085
15437
  const DsGrid = withResponsiveProps(DsGridBase, ["gutter", "margin"]);
15086
15438
  const DsGridItem = withResponsiveProps(DsGridItemBase, ["colSpan", "rowSpan"]);
15439
+ DsGrid.displayName = "DsGrid";
15440
+ DsGridItem.displayName = "DsGridItem";
15087
15441
  //#endregion
15088
15442
  //#region src/components/ds-key-value-pair/ds-key-value-pair.module.scss
15089
15443
  var ds_key_value_pair_module_default = {
@@ -15178,6 +15532,7 @@ const DsKeyValuePair = (t0) => {
15178
15532
  } else t11 = $[21];
15179
15533
  return t11;
15180
15534
  };
15535
+ DsKeyValuePair.displayName = "DsKeyValuePair";
15181
15536
  //#endregion
15182
15537
  //#region src/components/ds-key-value-pair/ds-key-value-pair.types.ts
15183
15538
  const dsKeyValuePairOrientations = ["vertical", "horizontal"];
@@ -15337,6 +15692,7 @@ const DsLoader = (t0) => {
15337
15692
  } else t4 = $[11];
15338
15693
  return t4;
15339
15694
  };
15695
+ DsLoader.displayName = "DsLoader";
15340
15696
  //#endregion
15341
15697
  //#region src/components/ds-loader/ds-loader.types.ts
15342
15698
  const loaderVariants = ["spinner", "pulsing"];
@@ -15568,6 +15924,7 @@ function DsPanelCollapseButton(t0) {
15568
15924
  //#endregion
15569
15925
  //#region src/components/ds-panel/index.ts
15570
15926
  const DsPanel = withResponsiveProps(DsPanelBase, ["width"]);
15927
+ DsPanel.displayName = "DsPanel";
15571
15928
  //#endregion
15572
15929
  //#region src/components/ds-popover/ds-popover.module.scss
15573
15930
  var ds_popover_module_default = {
@@ -15877,6 +16234,14 @@ const DsPopoverLegacy = (t0) => {
15877
16234
  } else t5 = $[9];
15878
16235
  return t5;
15879
16236
  };
16237
+ DsPopoverLegacy.displayName = "DsPopover";
16238
+ DsPopoverRoot.displayName = "DsPopover.Root";
16239
+ DsPopoverTrigger.displayName = "DsPopover.Trigger";
16240
+ DsPopoverPanel.displayName = "DsPopover.Panel";
16241
+ DsPopoverHeader.displayName = "DsPopover.Header";
16242
+ DsPopoverContent.displayName = "DsPopover.Content";
16243
+ DsPopoverContentItem.displayName = "DsPopover.ContentItem";
16244
+ DsPopoverFooter.displayName = "DsPopover.Footer";
15880
16245
  const DsPopover = Object.assign(DsPopoverLegacy, {
15881
16246
  Root: DsPopoverRoot,
15882
16247
  Trigger: DsPopoverTrigger,
@@ -16187,6 +16552,7 @@ const DsProgressArc = (t0) => {
16187
16552
  } else t20 = $[64];
16188
16553
  return t20;
16189
16554
  };
16555
+ DsProgressArc.displayName = "DsProgressArc";
16190
16556
  //#endregion
16191
16557
  //#region src/components/ds-progress-arc/ds-progress-arc.types.ts
16192
16558
  const progressArcSizes = ["small", "medium"];
@@ -16321,6 +16687,7 @@ const DsProgressDonut = (t0) => {
16321
16687
  } else t14 = $[25];
16322
16688
  return t14;
16323
16689
  };
16690
+ DsProgressDonut.displayName = "DsProgressDonut";
16324
16691
  //#endregion
16325
16692
  //#region src/components/ds-progress-donut/ds-progress-donut.types.ts
16326
16693
  const progressDonutSizes = ["small", "medium"];
@@ -16524,6 +16891,7 @@ const DsProgressLinear = (t0) => {
16524
16891
  } else t19 = $[36];
16525
16892
  return t19;
16526
16893
  };
16894
+ DsProgressLinear.displayName = "DsProgressLinear";
16527
16895
  //#endregion
16528
16896
  //#region src/components/ds-progress-linear/ds-progress-linear.types.ts
16529
16897
  const progressLinearVariants = [
@@ -16539,6 +16907,264 @@ const progressLinearSizes = [
16539
16907
  "large"
16540
16908
  ];
16541
16909
  //#endregion
16910
+ //#region src/components/ds-progress-task-bar/ds-progress-task-bar.module.scss
16911
+ var ds_progress_task_bar_module_default = {
16912
+ "bar": "SN3VFW_bar",
16913
+ "segment": "SN3VFW_segment",
16914
+ "segmentCompleted": "SN3VFW_segmentCompleted",
16915
+ "segmentFailed": "SN3VFW_segmentFailed",
16916
+ "segmentRunning": "SN3VFW_segmentRunning",
16917
+ "statusIcon": "SN3VFW_statusIcon",
16918
+ "total": "SN3VFW_total"
16919
+ };
16920
+ //#endregion
16921
+ //#region src/components/ds-progress-task-bar/ds-progress-task-bar.types.ts
16922
+ const taskBarStatuses = [
16923
+ "completed",
16924
+ "running",
16925
+ "failed"
16926
+ ];
16927
+ //#endregion
16928
+ //#region src/components/ds-progress-task-bar/utils.ts
16929
+ const COUNT_UNITS = [
16930
+ {
16931
+ value: 1e9,
16932
+ suffix: "B"
16933
+ },
16934
+ {
16935
+ value: 1e6,
16936
+ suffix: "M"
16937
+ },
16938
+ {
16939
+ value: 1e3,
16940
+ suffix: "K"
16941
+ }
16942
+ ];
16943
+ const ABBREVIATION_FLOOR = 1e3;
16944
+ const DECIMAL_THRESHOLD = 10;
16945
+ const stripTrailingZero = (value) => value % 1 === 0 ? String(value) : value.toFixed(1);
16946
+ /**
16947
+ * Format a task count for the legend, following the design's abbreviation rules:
16948
+ * - `< 1000` → exact number (e.g. `999`)
16949
+ * - single-digit unit → one decimal (e.g. `1.1K`, `1.2M`)
16950
+ * - multi-digit unit → whole number, truncated so `999,999 → 999K`
16951
+ */
16952
+ const formatCount = (count) => {
16953
+ if (!Number.isFinite(count)) return "0";
16954
+ const rounded = Math.max(0, Math.round(count));
16955
+ if (rounded < ABBREVIATION_FLOOR) return String(rounded);
16956
+ const unit = COUNT_UNITS.find(({ value }) => rounded >= value);
16957
+ if (unit === void 0) return String(rounded);
16958
+ const scaled = rounded / unit.value;
16959
+ if (scaled < DECIMAL_THRESHOLD) return `${stripTrailingZero(Math.round(scaled * 10) / 10)}${unit.suffix}`;
16960
+ return `${String(Math.floor(scaled))}${unit.suffix}`;
16961
+ };
16962
+ //#endregion
16963
+ //#region src/components/ds-progress-task-bar/ds-progress-task-bar.tsx
16964
+ const statusIcon = Object.freeze({
16965
+ completed: "check_circle",
16966
+ running: "play_circle",
16967
+ failed: "cancel"
16968
+ });
16969
+ const statusIconColor = Object.freeze({
16970
+ completed: "success",
16971
+ running: "action",
16972
+ failed: "error"
16973
+ });
16974
+ const statusTextColor = Object.freeze({
16975
+ completed: "success",
16976
+ running: "action",
16977
+ failed: "error"
16978
+ });
16979
+ const statusSegmentClass = Object.freeze({
16980
+ completed: ds_progress_task_bar_module_default.segmentCompleted,
16981
+ running: ds_progress_task_bar_module_default.segmentRunning,
16982
+ failed: ds_progress_task_bar_module_default.segmentFailed
16983
+ });
16984
+ const defaultLocale = Object.freeze({
16985
+ completed: "Completed",
16986
+ running: "Running",
16987
+ failed: "Failed",
16988
+ total: (total) => `of ${total}`
16989
+ });
16990
+ const DsProgressTaskBar = (t0) => {
16991
+ const $ = (0, react_compiler_runtime.c)(39);
16992
+ const { completed: t1, running: t2, failed: t3, total, locale, className, style, ref } = t0;
16993
+ const completed = t1 === void 0 ? 0 : t1;
16994
+ const running = t2 === void 0 ? 0 : t2;
16995
+ const failed = t3 === void 0 ? 0 : t3;
16996
+ const t4 = Math.max(0, completed);
16997
+ const t5 = Math.max(0, running);
16998
+ const t6 = Math.max(0, failed);
16999
+ let T0;
17000
+ let t10;
17001
+ let t11;
17002
+ let t12;
17003
+ let t13;
17004
+ let t14;
17005
+ let t15;
17006
+ let t16;
17007
+ let t17;
17008
+ let t18;
17009
+ let t19;
17010
+ let t7;
17011
+ let t8;
17012
+ let t9;
17013
+ if ($[0] !== className || $[1] !== locale || $[2] !== ref || $[3] !== style || $[4] !== t4 || $[5] !== t5 || $[6] !== t6 || $[7] !== total) {
17014
+ const counts = {
17015
+ completed: t4,
17016
+ running: t5,
17017
+ failed: t6
17018
+ };
17019
+ const sum = counts.completed + counts.running + counts.failed;
17020
+ const denominator = Math.max(total ?? sum, sum);
17021
+ const mergedLocale = {
17022
+ ...defaultLocale,
17023
+ ...locale
17024
+ };
17025
+ const activeStatuses = taskBarStatuses.filter((status) => counts[status] > 0);
17026
+ const segmentWidth = (status_0) => denominator > 0 ? `${String(counts[status_0] / denominator * 100)}%` : "0%";
17027
+ T0 = DsStack;
17028
+ t13 = ref;
17029
+ t14 = "column";
17030
+ t15 = "var(--xs)";
17031
+ t16 = "100%";
17032
+ t17 = className;
17033
+ t18 = style;
17034
+ t19 = /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(DsStack, {
17035
+ direction: "row",
17036
+ alignItems: "center",
17037
+ justifyContent: "space-between",
17038
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(DsStack, {
17039
+ direction: "row",
17040
+ alignItems: "center",
17041
+ gap: "var(--3xs)",
17042
+ children: activeStatuses.length === 0 ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(DsTypography, {
17043
+ variant: "body-xs-reg",
17044
+ color: "secondary",
17045
+ children: "0"
17046
+ }) : activeStatuses.map((status_1) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(DsStack, {
17047
+ direction: "row",
17048
+ alignItems: "center",
17049
+ gap: "var(--4xs)",
17050
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(DsTooltip, {
17051
+ content: mergedLocale[status_1],
17052
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
17053
+ className: ds_progress_task_bar_module_default.statusIcon,
17054
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(DsIcon, {
17055
+ icon: statusIcon[status_1],
17056
+ size: "tiny",
17057
+ color: statusIconColor[status_1],
17058
+ filled: true
17059
+ })
17060
+ })
17061
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(DsTypography, {
17062
+ variant: "body-xs-reg",
17063
+ color: statusTextColor[status_1],
17064
+ children: formatCount(counts[status_1])
17065
+ })]
17066
+ }, status_1))
17067
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(DsTypography, {
17068
+ variant: "body-xs-reg",
17069
+ color: "secondary",
17070
+ className: ds_progress_task_bar_module_default.total,
17071
+ children: mergedLocale.total(formatCount(denominator))
17072
+ })]
17073
+ });
17074
+ t7 = ds_progress_task_bar_module_default.bar;
17075
+ t8 = "progressbar";
17076
+ t9 = 0;
17077
+ t10 = denominator;
17078
+ t11 = sum;
17079
+ t12 = activeStatuses.map((status_2) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(DsTooltip, {
17080
+ content: mergedLocale[status_2],
17081
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
17082
+ className: (0, classnames.default)(ds_progress_task_bar_module_default.segment, statusSegmentClass[status_2]),
17083
+ style: { width: segmentWidth(status_2) }
17084
+ })
17085
+ }, status_2));
17086
+ $[0] = className;
17087
+ $[1] = locale;
17088
+ $[2] = ref;
17089
+ $[3] = style;
17090
+ $[4] = t4;
17091
+ $[5] = t5;
17092
+ $[6] = t6;
17093
+ $[7] = total;
17094
+ $[8] = T0;
17095
+ $[9] = t10;
17096
+ $[10] = t11;
17097
+ $[11] = t12;
17098
+ $[12] = t13;
17099
+ $[13] = t14;
17100
+ $[14] = t15;
17101
+ $[15] = t16;
17102
+ $[16] = t17;
17103
+ $[17] = t18;
17104
+ $[18] = t19;
17105
+ $[19] = t7;
17106
+ $[20] = t8;
17107
+ $[21] = t9;
17108
+ } else {
17109
+ T0 = $[8];
17110
+ t10 = $[9];
17111
+ t11 = $[10];
17112
+ t12 = $[11];
17113
+ t13 = $[12];
17114
+ t14 = $[13];
17115
+ t15 = $[14];
17116
+ t16 = $[15];
17117
+ t17 = $[16];
17118
+ t18 = $[17];
17119
+ t19 = $[18];
17120
+ t7 = $[19];
17121
+ t8 = $[20];
17122
+ t9 = $[21];
17123
+ }
17124
+ let t20;
17125
+ if ($[22] !== t10 || $[23] !== t11 || $[24] !== t12 || $[25] !== t7 || $[26] !== t8 || $[27] !== t9) {
17126
+ t20 = /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
17127
+ className: t7,
17128
+ role: t8,
17129
+ "aria-valuemin": t9,
17130
+ "aria-valuemax": t10,
17131
+ "aria-valuenow": t11,
17132
+ children: t12
17133
+ });
17134
+ $[22] = t10;
17135
+ $[23] = t11;
17136
+ $[24] = t12;
17137
+ $[25] = t7;
17138
+ $[26] = t8;
17139
+ $[27] = t9;
17140
+ $[28] = t20;
17141
+ } else t20 = $[28];
17142
+ let t21;
17143
+ if ($[29] !== T0 || $[30] !== t13 || $[31] !== t14 || $[32] !== t15 || $[33] !== t16 || $[34] !== t17 || $[35] !== t18 || $[36] !== t19 || $[37] !== t20) {
17144
+ t21 = /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(T0, {
17145
+ ref: t13,
17146
+ direction: t14,
17147
+ gap: t15,
17148
+ width: t16,
17149
+ className: t17,
17150
+ style: t18,
17151
+ children: [t19, t20]
17152
+ });
17153
+ $[29] = T0;
17154
+ $[30] = t13;
17155
+ $[31] = t14;
17156
+ $[32] = t15;
17157
+ $[33] = t16;
17158
+ $[34] = t17;
17159
+ $[35] = t18;
17160
+ $[36] = t19;
17161
+ $[37] = t20;
17162
+ $[38] = t21;
17163
+ } else t21 = $[38];
17164
+ return t21;
17165
+ };
17166
+ DsProgressTaskBar.displayName = "DsProgressTaskBar";
17167
+ //#endregion
16542
17168
  //#region src/components/ds-radio-group/ds-radio-group.module.scss
16543
17169
  var ds_radio_group_module_default = {
16544
17170
  "labelInfo": "gJbMxW_labelInfo",
@@ -16728,7 +17354,7 @@ const DsRadioGroupLegacy = (t0) => {
16728
17354
  } else t3 = $[3];
16729
17355
  let t4;
16730
17356
  if ($[4] !== options) {
16731
- t4 = options.map(_temp$1);
17357
+ t4 = options.map(_temp$2);
16732
17358
  $[4] = options;
16733
17359
  $[5] = t4;
16734
17360
  } else t4 = $[5];
@@ -16768,7 +17394,10 @@ const DsRadioGroup = {
16768
17394
  Root: Root$1,
16769
17395
  Item: Item$1
16770
17396
  };
16771
- function _temp$1(option) {
17397
+ DsRadioGroup.Root.displayName = "DsRadioGroup.Root";
17398
+ DsRadioGroup.Item.displayName = "DsRadioGroup.Item";
17399
+ DsRadioGroupLegacy.displayName = "DsRadioGroupLegacy";
17400
+ function _temp$2(option) {
16772
17401
  return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(_ark_ui_react_radio_group.RadioGroup.Item, {
16773
17402
  value: option.value,
16774
17403
  disabled: option.disabled,
@@ -17009,6 +17638,155 @@ const DsSegmentGroup = {
17009
17638
  Item,
17010
17639
  ItemText
17011
17640
  };
17641
+ DsSegmentGroup.Root.displayName = "DsSegmentGroup.Root";
17642
+ DsSegmentGroup.Item.displayName = "DsSegmentGroup.Item";
17643
+ DsSegmentGroup.ItemText.displayName = "DsSegmentGroup.ItemText";
17644
+ //#endregion
17645
+ //#region src/components/ds-site-node/hooks/use-is-overflowing.ts
17646
+ const useIsOverflowing = (text) => {
17647
+ const $ = (0, react_compiler_runtime.c)(5);
17648
+ const ref = (0, react.useRef)(null);
17649
+ const [isOverflowing, setIsOverflowing] = (0, react.useState)(false);
17650
+ let t0;
17651
+ if ($[0] === Symbol.for("react.memo_cache_sentinel")) {
17652
+ t0 = () => {
17653
+ const element = ref.current;
17654
+ if (!element) return;
17655
+ const measure = () => setIsOverflowing(element.scrollWidth > element.clientWidth);
17656
+ measure();
17657
+ const observer = new ResizeObserver(measure);
17658
+ observer.observe(element);
17659
+ const frame = requestAnimationFrame(measure);
17660
+ document.fonts.ready.then(measure).catch(_temp$1);
17661
+ document.fonts.addEventListener("loadingdone", measure);
17662
+ return () => {
17663
+ cancelAnimationFrame(frame);
17664
+ observer.disconnect();
17665
+ document.fonts.removeEventListener("loadingdone", measure);
17666
+ };
17667
+ };
17668
+ $[0] = t0;
17669
+ } else t0 = $[0];
17670
+ let t1;
17671
+ if ($[1] !== text) {
17672
+ t1 = [text];
17673
+ $[1] = text;
17674
+ $[2] = t1;
17675
+ } else t1 = $[2];
17676
+ (0, react.useLayoutEffect)(t0, t1);
17677
+ let t2;
17678
+ if ($[3] !== isOverflowing) {
17679
+ t2 = {
17680
+ ref,
17681
+ isOverflowing
17682
+ };
17683
+ $[3] = isOverflowing;
17684
+ $[4] = t2;
17685
+ } else t2 = $[4];
17686
+ return t2;
17687
+ };
17688
+ function _temp$1() {}
17689
+ //#endregion
17690
+ //#region src/components/ds-site-node/ds-site-node.module.scss
17691
+ var ds_site_node_module_default = {
17692
+ "node": "_9jr5kG_node",
17693
+ "overflow": "_9jr5kG_overflow",
17694
+ "pill": "_9jr5kG_pill",
17695
+ "pillMuted": "_9jr5kG_pillMuted",
17696
+ "selected": "_9jr5kG_selected",
17697
+ "siteCode": "_9jr5kG_siteCode"
17698
+ };
17699
+ //#endregion
17700
+ //#region src/components/ds-site-node/ds-site-node.tsx
17701
+ const DsSiteNode = (t0) => {
17702
+ const $ = (0, react_compiler_runtime.c)(21);
17703
+ const { ref, state: t1, tier, siteCode, overflowLabel, className, style, "aria-label": ariaLabel, onClick } = t0;
17704
+ const state = t1 === void 0 ? "default" : t1;
17705
+ const isOverflow = state === "overflow";
17706
+ const isSelected = state === "selected";
17707
+ const isMuted = state === "muted";
17708
+ const { ref: siteCodeRef, isOverflowing } = useIsOverflowing(siteCode);
17709
+ let t2;
17710
+ if ($[0] !== className || $[1] !== isOverflow || $[2] !== isSelected) {
17711
+ t2 = (0, classnames.default)(ds_site_node_module_default.node, {
17712
+ [ds_site_node_module_default.selected]: isSelected,
17713
+ [ds_site_node_module_default.overflow]: isOverflow
17714
+ }, className);
17715
+ $[0] = className;
17716
+ $[1] = isOverflow;
17717
+ $[2] = isSelected;
17718
+ $[3] = t2;
17719
+ } else t2 = $[3];
17720
+ const t3 = isSelected ? true : void 0;
17721
+ let t4;
17722
+ if ($[4] !== isMuted || $[5] !== isOverflow || $[6] !== isOverflowing || $[7] !== isSelected || $[8] !== overflowLabel || $[9] !== siteCode || $[10] !== siteCodeRef || $[11] !== tier) {
17723
+ t4 = isOverflow ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(DsTypography, {
17724
+ variant: "body-sm-reg",
17725
+ color: "secondary",
17726
+ children: overflowLabel
17727
+ }) : /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(DsStack, {
17728
+ direction: "row",
17729
+ alignItems: "center",
17730
+ justifyContent: "center",
17731
+ className: (0, classnames.default)(ds_site_node_module_default.pill, { [ds_site_node_module_default.pillMuted]: isMuted }),
17732
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(DsTypography, {
17733
+ variant: "body-xs-md",
17734
+ color: isMuted ? "on-disabled" : "on-action",
17735
+ children: tier
17736
+ })
17737
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
17738
+ ref: siteCodeRef,
17739
+ className: ds_site_node_module_default.siteCode,
17740
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(DsTooltip, {
17741
+ content: isOverflowing ? siteCode : void 0,
17742
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(DsTypography, {
17743
+ variant: "body-sm-bold",
17744
+ color: isSelected ? "main" : "secondary",
17745
+ children: siteCode
17746
+ })
17747
+ })
17748
+ })] });
17749
+ $[4] = isMuted;
17750
+ $[5] = isOverflow;
17751
+ $[6] = isOverflowing;
17752
+ $[7] = isSelected;
17753
+ $[8] = overflowLabel;
17754
+ $[9] = siteCode;
17755
+ $[10] = siteCodeRef;
17756
+ $[11] = tier;
17757
+ $[12] = t4;
17758
+ } else t4 = $[12];
17759
+ let t5;
17760
+ if ($[13] !== ariaLabel || $[14] !== onClick || $[15] !== ref || $[16] !== style || $[17] !== t2 || $[18] !== t3 || $[19] !== t4) {
17761
+ t5 = /* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
17762
+ ref,
17763
+ type: "button",
17764
+ className: t2,
17765
+ style,
17766
+ "aria-label": ariaLabel,
17767
+ "aria-current": t3,
17768
+ onClick,
17769
+ children: t4
17770
+ });
17771
+ $[13] = ariaLabel;
17772
+ $[14] = onClick;
17773
+ $[15] = ref;
17774
+ $[16] = style;
17775
+ $[17] = t2;
17776
+ $[18] = t3;
17777
+ $[19] = t4;
17778
+ $[20] = t5;
17779
+ } else t5 = $[20];
17780
+ return t5;
17781
+ };
17782
+ //#endregion
17783
+ //#region src/components/ds-site-node/ds-site-node.types.ts
17784
+ const siteNodeStates = [
17785
+ "default",
17786
+ "selected",
17787
+ "muted",
17788
+ "overflow"
17789
+ ];
17012
17790
  //#endregion
17013
17791
  //#region src/components/ds-skeleton/ds-skeleton.types.ts
17014
17792
  const skeletonColorVariants = ["gray", "blue"];
@@ -17157,6 +17935,7 @@ const DsSkeletonText = (t0) => {
17157
17935
  } else t10 = $[14];
17158
17936
  return t10;
17159
17937
  };
17938
+ DsSkeletonText.displayName = "DsSkeletonText";
17160
17939
  //#endregion
17161
17940
  //#region src/components/ds-skeleton/ds-skeleton-circle.tsx
17162
17941
  /**
@@ -17205,6 +17984,7 @@ const DsSkeletonCircle = (t0) => {
17205
17984
  } else t8 = $[9];
17206
17985
  return t8;
17207
17986
  };
17987
+ DsSkeletonCircle.displayName = "DsSkeletonCircle";
17208
17988
  //#endregion
17209
17989
  //#region src/components/ds-skeleton/ds-skeleton-rect.tsx
17210
17990
  /**
@@ -17255,13 +18035,17 @@ const DsSkeletonRect = (t0) => {
17255
18035
  } else t9 = $[10];
17256
18036
  return t9;
17257
18037
  };
18038
+ DsSkeletonRect.displayName = "DsSkeletonRect";
17258
18039
  //#endregion
17259
18040
  //#region src/components/ds-skeleton/ds-skeleton.ts
17260
- var ds_skeleton_default = {
18041
+ const DsSkeleton = {
17261
18042
  Text: DsSkeletonText,
17262
18043
  Circle: DsSkeletonCircle,
17263
18044
  Rect: DsSkeletonRect
17264
18045
  };
18046
+ DsSkeleton.Text.displayName = "DsSkeleton.Text";
18047
+ DsSkeleton.Circle.displayName = "DsSkeleton.Circle";
18048
+ DsSkeleton.Rect.displayName = "DsSkeleton.Rect";
17265
18049
  //#endregion
17266
18050
  //#region src/components/ds-smart-tabs/ds-smart-tabs.module.scss
17267
18051
  var ds_smart_tabs_module_default = {
@@ -17512,7 +18296,9 @@ const DsSmartTabs = (t0) => {
17512
18296
  } else t6 = $[21];
17513
18297
  return t6;
17514
18298
  };
18299
+ DsSmartTab.displayName = "DsSmartTabs.Tab";
17515
18300
  DsSmartTabs.Tab = DsSmartTab;
18301
+ DsSmartTabs.displayName = "DsSmartTabs";
17516
18302
  //#endregion
17517
18303
  //#region src/components/ds-smart-tabs/ds-smart-tabs.types.ts
17518
18304
  const colors = [
@@ -17538,6 +18324,12 @@ var ds_split_button_module_default = {
17538
18324
  };
17539
18325
  //#endregion
17540
18326
  //#region src/components/ds-split-button/ds-split-button.tsx
18327
+ /**
18328
+ * Secondary action button paired with a dropdown select for choosing a related option.
18329
+ * Both slots share a size and disabled state controlled by the split button.
18330
+ *
18331
+ * @summary split action button with a primary action and an option select
18332
+ */
17541
18333
  const DsSplitButton$1 = (t0) => {
17542
18334
  const $ = (0, react_compiler_runtime.c)(33);
17543
18335
  const { ref, className, style, size: t1, disabled, slotProps } = t0;
@@ -17747,6 +18539,7 @@ const DsStatusBadge = (t0) => {
17747
18539
  } else t12 = $[15];
17748
18540
  return t12;
17749
18541
  };
18542
+ DsStatusBadge.displayName = "DsStatusBadge";
17750
18543
  //#endregion
17751
18544
  //#region src/components/ds-status-badge-v2/ds-status-badge-v2.module.scss
17752
18545
  var ds_status_badge_v2_module_default = {
@@ -17908,6 +18701,7 @@ const statusBadgeV2Sizes = ["medium", "small"];
17908
18701
  //#endregion
17909
18702
  //#region src/components/ds-status-badge-v2/index.ts
17910
18703
  const DsStatusBadgeV2 = withResponsiveProps(DsStatusBadgeV2$1, ["size"]);
18704
+ DsStatusBadgeV2.displayName = "DsStatusBadgeV2";
17911
18705
  //#endregion
17912
18706
  //#region src/components/ds-stepper/ds-stepper.module.scss
17913
18707
  var ds_stepper_module_default = {
@@ -18069,6 +18863,7 @@ function DsStepper(t0) {
18069
18863
  } else t10 = $[27];
18070
18864
  return t10;
18071
18865
  }
18866
+ DsStepper.displayName = "DsStepper";
18072
18867
  //#endregion
18073
18868
  //#region src/components/ds-stepper/components/ds-step-separator.tsx
18074
18869
  function DsStepSeparator(t0) {
@@ -18267,6 +19062,7 @@ function DsStep(t0) {
18267
19062
  } else t18 = $[47];
18268
19063
  return t18;
18269
19064
  }
19065
+ DsStep.displayName = "DsStep";
18270
19066
  //#endregion
18271
19067
  //#region src/components/ds-stepper/components/ds-step-label.tsx
18272
19068
  function DsStepLabel(t0) {
@@ -18356,6 +19152,7 @@ function DsStepContent(t0) {
18356
19152
  } else t5 = $[15];
18357
19153
  return t5;
18358
19154
  }
19155
+ DsStepContent.displayName = "DsStepContent";
18359
19156
  //#endregion
18360
19157
  //#region src/components/ds-stepper/components/ds-step-next-button.tsx
18361
19158
  function DsNextStepButton(t0) {
@@ -18398,6 +19195,7 @@ function DsNextStepButton(t0) {
18398
19195
  } else t3 = $[10];
18399
19196
  return t3;
18400
19197
  }
19198
+ DsNextStepButton.displayName = "DsNextStepButton";
18401
19199
  //#endregion
18402
19200
  //#region src/components/ds-system-status/ds-system-status.module.scss
18403
19201
  var ds_system_status_module_default = {
@@ -18469,6 +19267,7 @@ const DsSystemStatus = (t0) => {
18469
19267
  } else t6 = $[8];
18470
19268
  return t6;
18471
19269
  };
19270
+ DsSystemStatus.displayName = "DsSystemStatus";
18472
19271
  //#endregion
18473
19272
  //#region src/components/ds-system-status/ds-system-status.types.ts
18474
19273
  /**
@@ -18851,11 +19650,12 @@ function useTableFilters({ filterAdapters, baseColumns, appliedFilters: external
18851
19650
  }));
18852
19651
  };
18853
19652
  const applyFilters = () => {
18854
- setAppliedFilters(_filterAdapters.reduce((acc, adapter) => {
19653
+ const filtersToApply = _filterAdapters.reduce((acc, adapter) => {
18855
19654
  const value = draftFilters[adapter.id];
18856
19655
  if (adapter.getActiveFiltersCount(value) > 0) acc[adapter.id] = value;
18857
19656
  return acc;
18858
- }, {}));
19657
+ }, {});
19658
+ setAppliedFilters(filtersToApply);
18859
19659
  setPendingFilters({});
18860
19660
  };
18861
19661
  const clearAll = () => {
@@ -18867,10 +19667,11 @@ function useTableFilters({ filterAdapters, baseColumns, appliedFilters: external
18867
19667
  const adapter = _filterAdapters.find((a) => a.id === filterId);
18868
19668
  if (!adapter) return;
18869
19669
  const draftValue = draftFilters[filterId];
18870
- setAppliedFilters(adapter.getActiveFiltersCount(draftValue) > 0 ? {
19670
+ const next = adapter.getActiveFiltersCount(draftValue) > 0 ? {
18871
19671
  ...appliedFilters,
18872
19672
  [filterId]: draftValue
18873
- } : omitKey(appliedFilters, filterId));
19673
+ } : omitKey(appliedFilters, filterId);
19674
+ setAppliedFilters(next);
18874
19675
  setPendingFilters((prev) => omitKey(prev, filterId));
18875
19676
  };
18876
19677
  const cancelColumnFilter = (filterId) => {
@@ -18893,10 +19694,11 @@ function useTableFilters({ filterAdapters, baseColumns, appliedFilters: external
18893
19694
  const currentValue = appliedFilters[filterKey];
18894
19695
  if (currentValue === void 0) return;
18895
19696
  const newValue = adapter.fromChip(chip, currentValue);
18896
- setAppliedFilters(adapter.getActiveFiltersCount(newValue) === 0 ? Object.fromEntries(Object.entries(appliedFilters).filter(([key]) => key !== filterKey)) : {
19697
+ const newFilters = adapter.getActiveFiltersCount(newValue) === 0 ? Object.fromEntries(Object.entries(appliedFilters).filter(([key]) => key !== filterKey)) : {
18897
19698
  ...appliedFilters,
18898
19699
  [filterKey]: newValue
18899
- });
19700
+ };
19701
+ setAppliedFilters(newFilters);
18900
19702
  };
18901
19703
  const renderForId = (filterId) => {
18902
19704
  const adapter = _filterAdapters.find((a) => a.id === filterId);
@@ -19357,7 +20159,8 @@ const getCollapsedColumnVisibility = (columns, collapsedGroupIds) => {
19357
20159
  const useColumnGroups = ({ columns, collapsedColumnGroups, onCollapsedColumnGroupsChange }) => {
19358
20160
  const [collapsed, setCollapsed] = useControlled(collapsedColumnGroups, onCollapsedColumnGroupsChange, getInitialCollapsedGroups(columns));
19359
20161
  const toggleColumnGroup = (groupId) => {
19360
- setCollapsed(collapsed.includes(groupId) ? collapsed.filter((id) => id !== groupId) : [...collapsed, groupId]);
20162
+ const next = collapsed.includes(groupId) ? collapsed.filter((id) => id !== groupId) : [...collapsed, groupId];
20163
+ setCollapsed(next);
19361
20164
  };
19362
20165
  return {
19363
20166
  collapsedColumnGroups: collapsed,
@@ -19499,6 +20302,7 @@ var ds_table_module_default = {
19499
20302
  //#region src/components/ds-table/components/edit/ds-table-editable-cell/ds-table-editable-cell.module.scss
19500
20303
  var ds_table_editable_cell_module_default = {
19501
20304
  "editButton": "g5FEoW_editButton",
20305
+ "lockIcon": "g5FEoW_lockIcon",
19502
20306
  "root": "g5FEoW_root"
19503
20307
  };
19504
20308
  //#endregion
@@ -19510,6 +20314,26 @@ const DsTableEditableCell = ({ cell, children }) => {
19510
20314
  event.stopPropagation();
19511
20315
  beginEdit(cell);
19512
20316
  };
20317
+ const editDisabled = cell.column.columnDef.editDisabled?.(cell.getContext());
20318
+ const locked = editDisabled === true || typeof editDisabled === "object";
20319
+ const reason = typeof editDisabled === "object" ? editDisabled.reason : void 0;
20320
+ if (locked) return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
20321
+ className: ds_table_editable_cell_module_default.root,
20322
+ "data-locked": "",
20323
+ children: [children, /* @__PURE__ */ (0, react_jsx_runtime.jsx)(DsTooltip, {
20324
+ content: reason,
20325
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
20326
+ className: ds_table_editable_cell_module_default.lockIcon,
20327
+ "aria-label": "Editing disabled",
20328
+ role: "img",
20329
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(DsIcon, {
20330
+ icon: "lock",
20331
+ size: "small",
20332
+ color: "secondary"
20333
+ })
20334
+ })
20335
+ })]
20336
+ });
19513
20337
  return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
19514
20338
  className: ds_table_editable_cell_module_default.root,
19515
20339
  "data-active": isEditing ? "" : void 0,
@@ -19527,6 +20351,7 @@ const DsTableEditableCell = ({ cell, children }) => {
19527
20351
  })]
19528
20352
  });
19529
20353
  };
20354
+ DsTableEditableCell.displayName = "DsTableEditableCell";
19530
20355
  //#endregion
19531
20356
  //#region src/components/ds-table/components/edit/ds-table-editing-cell/ds-table-editing-cell.module.scss
19532
20357
  var ds_table_editing_cell_module_default = {
@@ -19607,6 +20432,7 @@ const DsTableEditingCell = ({ cell }) => {
19607
20432
  })
19608
20433
  });
19609
20434
  };
20435
+ DsTableEditingCell.displayName = "DsTableEditingCell";
19610
20436
  //#endregion
19611
20437
  //#region src/components/ds-table/components/ds-table-cell/ds-table-cell.module.scss
19612
20438
  var ds_table_cell_module_default = {
@@ -19713,6 +20539,7 @@ var ds_table_row_module_default = {
19713
20539
  "expandedRow": "t8OZCq_expandedRow",
19714
20540
  "groupStart": "t8OZCq_groupStart",
19715
20541
  "isDragging": "t8OZCq_isDragging",
20542
+ "loadingRow": "t8OZCq_loadingRow",
19716
20543
  "rowDragHandle": "t8OZCq_rowDragHandle",
19717
20544
  "rowNoBorder": "t8OZCq_rowNoBorder",
19718
20545
  "selectableCell": "t8OZCq_selectableCell",
@@ -19739,7 +20566,7 @@ const DsRowDragHandle = ({ isDragging, attributes, listeners, style }) => {
19739
20566
  });
19740
20567
  };
19741
20568
  const DsTableRow = ({ ref, row, isSelected }) => {
19742
- const { reorderable, onRowClick, onRowDoubleClick, renderExpandedRow, bordered, rowSize, primaryRowActions, secondaryRowActions, activeRowId } = useDsTableContext();
20569
+ const { reorderable, onRowClick, onRowDoubleClick, renderExpandedRow, bordered, rowSize, primaryRowActions, secondaryRowActions, activeRowId, loading } = useDsTableContext();
19743
20570
  const isExpanded = row.getIsExpanded();
19744
20571
  const isActive = activeRowId === row.id;
19745
20572
  const { attributes, listeners, setNodeRef, transform, transition, isDragging } = (0, _dnd_kit_sortable.useSortable)({
@@ -19763,7 +20590,7 @@ const DsTableRow = ({ ref, row, isSelected }) => {
19763
20590
  [ds_table_row_module_default.sizeSmall]: rowSize === "small",
19764
20591
  [ds_table_row_module_default.sizeMedium]: rowSize === "medium",
19765
20592
  [ds_table_row_module_default.sizeLarge]: rowSize === "large"
19766
- }, onRowClick && ds_table_row_module_default.clickableRow, !bordered && ds_table_row_module_default.rowNoBorder, isExpanded && ds_table_row_module_default.expanded),
20593
+ }, 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),
19767
20594
  style: rowStyle,
19768
20595
  onClick: () => onRowClick?.(row.original),
19769
20596
  onDoubleClick: () => onRowDoubleClick?.(row.original),
@@ -19912,6 +20739,7 @@ var ds_table_row_virtualized_module_default = {
19912
20739
  "expandedRow": "NcME7q_expandedRow",
19913
20740
  "expandedRowContent": "NcME7q_expandedRowContent",
19914
20741
  "groupStart": "NcME7q_groupStart",
20742
+ "loadingRow": "NcME7q_loadingRow",
19915
20743
  "row": "NcME7q_row",
19916
20744
  "rowNoBorder": "NcME7q_rowNoBorder",
19917
20745
  "selectableCell": "NcME7q_selectableCell",
@@ -19922,7 +20750,7 @@ var ds_table_row_virtualized_module_default = {
19922
20750
  //#endregion
19923
20751
  //#region src/components/ds-table/components/ds-table-row-virtualized/ds-table-row-virtualized.tsx
19924
20752
  const DsTableRowVirtualized = ({ row, isSelected, rowsMapRef, rowHeightsMapRef, rowVirtualizer, virtualRow, isExpandedRowContent }) => {
19925
- const { bordered, rowSize, activeRowId, primaryRowActions, secondaryRowActions, renderExpandedRow, onRowClick, onRowDoubleClick } = useDsTableContext();
20753
+ const { bordered, rowSize, activeRowId, primaryRowActions, secondaryRowActions, renderExpandedRow, onRowClick, onRowDoubleClick, loading } = useDsTableContext();
19926
20754
  const isExpanded = row.getIsExpanded();
19927
20755
  const isActive = activeRowId === row.id;
19928
20756
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(TableRow, {
@@ -19941,7 +20769,7 @@ const DsTableRowVirtualized = ({ row, isSelected, rowsMapRef, rowHeightsMapRef,
19941
20769
  [ds_table_row_virtualized_module_default.sizeSmall]: rowSize === "small",
19942
20770
  [ds_table_row_virtualized_module_default.sizeMedium]: rowSize === "medium",
19943
20771
  [ds_table_row_virtualized_module_default.sizeLarge]: rowSize === "large"
19944
- }, 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),
20772
+ }, 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),
19945
20773
  onClick: isExpandedRowContent ? void 0 : () => onRowClick?.(row.original),
19946
20774
  onDoubleClick: isExpandedRowContent ? void 0 : () => onRowDoubleClick?.(row.original),
19947
20775
  children: isExpandedRowContent ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(TableCell, { children: renderExpandedRow?.(row.original) }) : /* @__PURE__ */ (0, react_jsx_runtime.jsx)(react_jsx_runtime.Fragment, { children: row.getVisibleCells().map((cell, idx) => {
@@ -20095,7 +20923,7 @@ const ROW_SIZE_HEIGHT_MAP = {
20095
20923
  /**
20096
20924
  * Design system Table component
20097
20925
  */
20098
- 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 }) => {
20926
+ 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 }) => {
20099
20927
  const [data, setData] = react.useState(tableData);
20100
20928
  const [sorting, setSorting] = react.useState([]);
20101
20929
  const [internalColumnFilters, setInternalColumnFilters] = react.useState([]);
@@ -20187,9 +21015,20 @@ const DsTable = ({ ref, columns: columnsProp, data: tableData, virtualized = fal
20187
21015
  hasSelectColumn,
20188
21016
  showSelectAllCheckbox
20189
21017
  ]);
21018
+ const skeletonColumns = (0, react.useMemo)(() => {
21019
+ const toSkeleton = (cols) => cols.map((column) => "columns" in column && column.columns ? {
21020
+ ...column,
21021
+ columns: toSkeleton(column.columns)
21022
+ } : {
21023
+ ...column,
21024
+ cell: column.loadingCell ?? (() => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(DsSkeletonText, { width: "60%" }))
21025
+ });
21026
+ return toSkeleton(columns);
21027
+ }, [columns]);
21028
+ const skeletonData = (0, react.useMemo)(() => Array.from({ length: 5 }, (_, i) => ({ id: `ds-table-skeleton-${String(i)}` })), []);
20190
21029
  const table = (0, _tanstack_react_table.useReactTable)({
20191
- data: reorderable ? data : tableData,
20192
- columns,
21030
+ data: loading ? skeletonData : reorderable ? data : tableData,
21031
+ columns: loading ? skeletonColumns : columns,
20193
21032
  getCoreRowModel: (0, _tanstack_react_table.getCoreRowModel)(),
20194
21033
  onSortingChange: handleSortingChange,
20195
21034
  getSortedRowModel: (0, _tanstack_react_table.getSortedRowModel)(),
@@ -20255,6 +21094,7 @@ const DsTable = ({ ref, columns: columnsProp, data: tableData, virtualized = fal
20255
21094
  }) });
20256
21095
  const selectedRows = Object.entries(rowSelection).filter(([, selected]) => selected).map(([key]) => rowsById[key]?.original).filter((v) => !!v);
20257
21096
  const isBulkActionsVisible = selectable && actions.length > 0 && selectedRows.length > 0;
21097
+ const editingState = useEditingState(onCellEdit, onCellValidate);
20258
21098
  const contextValue = {
20259
21099
  stickyHeader,
20260
21100
  bordered,
@@ -20264,8 +21104,9 @@ const DsTable = ({ ref, columns: columnsProp, data: tableData, virtualized = fal
20264
21104
  selectable,
20265
21105
  reorderable,
20266
21106
  showSelectAllCheckbox,
20267
- onRowClick,
20268
- onRowDoubleClick,
21107
+ loading,
21108
+ onRowClick: loading ? void 0 : onRowClick,
21109
+ onRowDoubleClick: loading ? void 0 : onRowDoubleClick,
20269
21110
  primaryRowActions,
20270
21111
  secondaryRowActions,
20271
21112
  renderExpandedRow,
@@ -20275,7 +21116,7 @@ const DsTable = ({ ref, columns: columnsProp, data: tableData, virtualized = fal
20275
21116
  onToggleColumnGroup: toggleColumnGroup,
20276
21117
  locale,
20277
21118
  onCellEdit,
20278
- ...useEditingState(onCellEdit, onCellValidate)
21119
+ ...editingState
20279
21120
  };
20280
21121
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(DsTableContext.Provider, {
20281
21122
  value: contextValue,
@@ -20307,6 +21148,7 @@ const DsTable = ({ ref, columns: columnsProp, data: tableData, virtualized = fal
20307
21148
  })
20308
21149
  });
20309
21150
  };
21151
+ DsTable.displayName = "DsTable";
20310
21152
  //#endregion
20311
21153
  //#region src/components/ds-table/hooks/use-cell-editor.ts
20312
21154
  /**
@@ -20391,6 +21233,7 @@ const DsTableEditCellText = ({ cellContext, placeholder, maxLength }) => {
20391
21233
  })
20392
21234
  });
20393
21235
  };
21236
+ DsTableEditCellText.displayName = "DsTableEditCellText";
20394
21237
  //#endregion
20395
21238
  //#region src/components/ds-table/components/edit/cell-editors/ds-table-edit-cell-number.tsx
20396
21239
  /** Number input editor for table cells. Render via `ColumnDef.editCell`. */
@@ -20417,6 +21260,7 @@ const DsTableEditCellNumber = ({ cellContext, min, max, step }) => {
20417
21260
  })
20418
21261
  });
20419
21262
  };
21263
+ DsTableEditCellNumber.displayName = "DsTableEditCellNumber";
20420
21264
  //#endregion
20421
21265
  //#region src/components/ds-table/components/edit/cell-editors/ds-table-edit-cell-select.tsx
20422
21266
  /** Select editor for table cells. Render via `ColumnDef.editCell`. */
@@ -20434,6 +21278,7 @@ const DsTableEditCellSelect = ({ cellContext, options, placeholder }) => {
20434
21278
  })
20435
21279
  });
20436
21280
  };
21281
+ DsTableEditCellSelect.displayName = "DsTableEditCellSelect";
20437
21282
  //#endregion
20438
21283
  //#region src/components/ds-table/components/edit/cell-editors/ds-table-edit-cell-date.tsx
20439
21284
  /** Date picker editor for table cells. Render via `ColumnDef.editCell`. */
@@ -20456,6 +21301,7 @@ const DsTableEditCellDate = ({ cellContext, min, max, placeholder }) => {
20456
21301
  })
20457
21302
  });
20458
21303
  };
21304
+ DsTableEditCellDate.displayName = "DsTableEditCellDate";
20459
21305
  //#endregion
20460
21306
  //#region src/components/ds-table/components/edit/cell-editors/ds-table-edit-cell-checkbox.tsx
20461
21307
  /** Checkbox editor for table cells. Render via `ColumnDef.editCell`. */
@@ -20467,6 +21313,7 @@ const DsTableEditCellCheckbox = ({ cellContext, disabled }) => {
20467
21313
  onCheckedChange: (checked) => setValue(checked === true)
20468
21314
  });
20469
21315
  };
21316
+ DsTableEditCellCheckbox.displayName = "DsTableEditCellCheckbox";
20470
21317
  //#endregion
20471
21318
  //#region src/components/ds-toast/ds-toast.module.scss
20472
21319
  var ds_toast_module_default = {
@@ -20592,6 +21439,8 @@ const DsToastGroup = (t0) => {
20592
21439
  } else t1 = $[1];
20593
21440
  return t1;
20594
21441
  };
21442
+ DsToast.displayName = "DsToast";
21443
+ DsToastGroup.displayName = "DsToastGroup";
20595
21444
  function _temp(toast) {
20596
21445
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(DsToast, { ...toast });
20597
21446
  }
@@ -20670,6 +21519,7 @@ const useToaster = () => {
20670
21519
  if (!context) throw new Error("useToast must be used within a ToastProvider");
20671
21520
  return context;
20672
21521
  };
21522
+ DsToastProvider.displayName = "DsToastProvider";
20673
21523
  //#endregion
20674
21524
  //#region src/components/ds-toggle/ds-toggle.module.scss
20675
21525
  var ds_toggle_module_default = {
@@ -20857,6 +21707,7 @@ const DsToggle = (t0) => {
20857
21707
  } else t15 = $[47];
20858
21708
  return t15;
20859
21709
  };
21710
+ DsToggle.displayName = "DsToggle";
20860
21711
  //#endregion
20861
21712
  //#region src/components/ds-tree/ds-tree.module.scss
20862
21713
  var ds_tree_module_default = {
@@ -21265,6 +22116,21 @@ const DsTreeItemAction = (t0) => {
21265
22116
  } else t3 = $[8];
21266
22117
  return t3;
21267
22118
  };
22119
+ DsTreeRoot.displayName = "DsTree.Root";
22120
+ DsTreeTree.displayName = "DsTree.Tree";
22121
+ Object.defineProperty(_ark_ui_react_tree_view.TreeView.NodeProvider, "displayName", { value: "DsTree.NodeProvider" });
22122
+ Object.defineProperty(_ark_ui_react_tree_view.TreeView.NodeContext, "displayName", { value: "DsTree.NodeContext" });
22123
+ DsTreeBranch.displayName = "DsTree.Branch";
22124
+ DsTreeBranchControl.displayName = "DsTree.BranchControl";
22125
+ DsTreeBranchIndicator.displayName = "DsTree.BranchIndicator";
22126
+ DsTreeBranchText.displayName = "DsTree.BranchText";
22127
+ DsTreeBranchContent.displayName = "DsTree.BranchContent";
22128
+ DsTreeBranchIndentGuide.displayName = "DsTree.BranchIndentGuide";
22129
+ DsTreeItem.displayName = "DsTree.Item";
22130
+ DsTreeItemText.displayName = "DsTree.ItemText";
22131
+ DsTreeItemIndicator.displayName = "DsTree.ItemIndicator";
22132
+ DsTreeItemAction.displayName = "DsTree.ItemAction";
22133
+ DsTreeNodeCheckbox.displayName = "DsTree.NodeCheckbox";
21268
22134
  const DsTree = {
21269
22135
  Root: DsTreeRoot,
21270
22136
  Tree: DsTreeTree,
@@ -21294,6 +22160,90 @@ const createDsTreeCollection = (nodes) => (0, _ark_ui_react_tree_view.createTree
21294
22160
  }
21295
22161
  });
21296
22162
  //#endregion
22163
+ //#region src/components/ds-user-card/ds-user-card.module.scss
22164
+ var ds_user_card_module_default = {
22165
+ "name": "rM_jtW_name",
22166
+ "subtitle": "rM_jtW_subtitle",
22167
+ "text": "rM_jtW_text",
22168
+ "userCard": "rM_jtW_userCard"
22169
+ };
22170
+ //#endregion
22171
+ //#region src/components/ds-user-card/ds-user-card.tsx
22172
+ /**
22173
+ * @summary Compact identity header pairing an avatar with a name and optional subtitle.
22174
+ *
22175
+ * Presentational card used as the header of a user menu. Renders a medium
22176
+ * `DsAvatar` (initials fallback derived from `name`) beside a two-line text
22177
+ * block; both lines truncate with an ellipsis when they overflow.
22178
+ */
22179
+ const DsUserCard = (t0) => {
22180
+ const $ = (0, react_compiler_runtime.c)(17);
22181
+ const { name, subtitle, src, className, style } = t0;
22182
+ let t1;
22183
+ if ($[0] !== className) {
22184
+ t1 = (0, classnames.default)(ds_user_card_module_default.userCard, className);
22185
+ $[0] = className;
22186
+ $[1] = t1;
22187
+ } else t1 = $[1];
22188
+ let t2;
22189
+ if ($[2] !== name || $[3] !== src) {
22190
+ t2 = /* @__PURE__ */ (0, react_jsx_runtime.jsx)(DsAvatar, {
22191
+ name,
22192
+ src,
22193
+ size: "md"
22194
+ });
22195
+ $[2] = name;
22196
+ $[3] = src;
22197
+ $[4] = t2;
22198
+ } else t2 = $[4];
22199
+ let t3;
22200
+ if ($[5] !== name) {
22201
+ t3 = /* @__PURE__ */ (0, react_jsx_runtime.jsx)(DsTypography, {
22202
+ variant: "heading4",
22203
+ color: "main",
22204
+ className: ds_user_card_module_default.name,
22205
+ children: name
22206
+ });
22207
+ $[5] = name;
22208
+ $[6] = t3;
22209
+ } else t3 = $[6];
22210
+ let t4;
22211
+ if ($[7] !== subtitle) {
22212
+ t4 = subtitle && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(DsTypography, {
22213
+ variant: "body-xs-reg",
22214
+ color: "secondary",
22215
+ className: ds_user_card_module_default.subtitle,
22216
+ children: subtitle
22217
+ });
22218
+ $[7] = subtitle;
22219
+ $[8] = t4;
22220
+ } else t4 = $[8];
22221
+ let t5;
22222
+ if ($[9] !== t3 || $[10] !== t4) {
22223
+ t5 = /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
22224
+ className: ds_user_card_module_default.text,
22225
+ children: [t3, t4]
22226
+ });
22227
+ $[9] = t3;
22228
+ $[10] = t4;
22229
+ $[11] = t5;
22230
+ } else t5 = $[11];
22231
+ let t6;
22232
+ if ($[12] !== style || $[13] !== t1 || $[14] !== t2 || $[15] !== t5) {
22233
+ t6 = /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
22234
+ className: t1,
22235
+ style,
22236
+ children: [t2, t5]
22237
+ });
22238
+ $[12] = style;
22239
+ $[13] = t1;
22240
+ $[14] = t2;
22241
+ $[15] = t5;
22242
+ $[16] = t6;
22243
+ } else t6 = $[16];
22244
+ return t6;
22245
+ };
22246
+ //#endregion
21297
22247
  //#region src/components/ds-vertical-tabs/ds-vertical-tabs.module.scss
21298
22248
  var ds_vertical_tabs_module_default = {
21299
22249
  "selected": "xVkVWa_selected",
@@ -21423,9 +22373,13 @@ const DsVerticalTabsContent = (t0) => {
21423
22373
  } else t1 = $[3];
21424
22374
  return t1;
21425
22375
  };
22376
+ DsVerticalTabsList.displayName = "DsVerticalTabs.List";
22377
+ DsVerticalTabsTab.displayName = "DsVerticalTabs.Tab";
22378
+ DsVerticalTabsContent.displayName = "DsVerticalTabs.Content";
21426
22379
  DsVerticalTabs.List = DsVerticalTabsList;
21427
22380
  DsVerticalTabs.Tab = DsVerticalTabsTab;
21428
22381
  DsVerticalTabs.Content = DsVerticalTabsContent;
22382
+ DsVerticalTabs.displayName = "DsVerticalTabs";
21429
22383
  //#endregion
21430
22384
  //#region src/components/ds-workspace-layout/ds-workspace-layout.module.scss
21431
22385
  var ds_workspace_layout_module_default = {
@@ -21842,6 +22796,13 @@ const LeftPanel = (t0) => {
21842
22796
  } else t4 = $[11];
21843
22797
  return t4;
21844
22798
  };
22799
+ Header.displayName = "DsWorkspaceLayout.Header";
22800
+ SubHeader.displayName = "DsWorkspaceLayout.SubHeader";
22801
+ Content.displayName = "DsWorkspaceLayout.Content";
22802
+ Footer.displayName = "DsWorkspaceLayout.Footer";
22803
+ Body.displayName = "DsWorkspaceLayout.Body";
22804
+ SideMenu.displayName = "DsWorkspaceLayout.SideMenu";
22805
+ LeftPanel.displayName = "DsWorkspaceLayout.LeftPanel";
21845
22806
  DsWorkspaceLayout.Header = Header;
21846
22807
  DsWorkspaceLayout.SubHeader = SubHeader;
21847
22808
  DsWorkspaceLayout.Content = Content;
@@ -21849,6 +22810,7 @@ DsWorkspaceLayout.Footer = Footer;
21849
22810
  DsWorkspaceLayout.Body = Body;
21850
22811
  DsWorkspaceLayout.SideMenu = SideMenu;
21851
22812
  DsWorkspaceLayout.LeftPanel = LeftPanel;
22813
+ DsWorkspaceLayout.displayName = "DsWorkspaceLayout";
21852
22814
  //#endregion
21853
22815
  exports.BREAKPOINT_LG = BREAKPOINT_LG;
21854
22816
  exports.DsAlertBanner = DsAlertBanner;
@@ -21896,11 +22858,13 @@ exports.DsPopover = DsPopover;
21896
22858
  exports.DsProgressArc = DsProgressArc;
21897
22859
  exports.DsProgressDonut = DsProgressDonut;
21898
22860
  exports.DsProgressLinear = DsProgressLinear;
22861
+ exports.DsProgressTaskBar = DsProgressTaskBar;
21899
22862
  exports.DsRadioGroup = DsRadioGroup;
21900
22863
  exports.DsRadioGroupLegacy = DsRadioGroupLegacy;
21901
22864
  exports.DsSegmentGroup = DsSegmentGroup;
21902
22865
  exports.DsSelect = DsSelect;
21903
- exports.DsSkeleton = ds_skeleton_default;
22866
+ exports.DsSiteNode = DsSiteNode;
22867
+ exports.DsSkeleton = DsSkeleton;
21904
22868
  exports.DsSkeletonCircle = DsSkeletonCircle;
21905
22869
  exports.DsSkeletonRect = DsSkeletonRect;
21906
22870
  exports.DsSkeletonText = DsSkeletonText;
@@ -21935,6 +22899,7 @@ exports.DsToggle = DsToggle;
21935
22899
  exports.DsTooltip = DsTooltip;
21936
22900
  exports.DsTree = DsTree;
21937
22901
  exports.DsTypography = DsTypography;
22902
+ exports.DsUserCard = DsUserCard;
21938
22903
  exports.DsVerticalTabs = DsVerticalTabs;
21939
22904
  exports.DsWorkspaceLayout = DsWorkspaceLayout;
21940
22905
  exports.FatalFileUploadError = FatalFileUploadError;
@@ -21951,12 +22916,21 @@ exports.checkboxVariants = checkboxVariants;
21951
22916
  exports.colors = colors;
21952
22917
  exports.controlStatuses = controlStatuses;
21953
22918
  exports.createCheckboxFilterAdapter = createCheckboxFilterAdapter;
22919
+ Object.defineProperty(exports, "createColumnHelper", {
22920
+ enumerable: true,
22921
+ get: function() {
22922
+ return _tanstack_react_table.createColumnHelper;
22923
+ }
22924
+ });
21954
22925
  exports.createDsTreeCollection = createDsTreeCollection;
21955
22926
  exports.createDualRangeFilterAdapter = createDualRangeFilterAdapter;
21956
22927
  exports.createFilterAdapter = createFilterAdapter;
21957
22928
  exports.customIcons = customIcons;
21958
22929
  exports.defaultDsTableLocale = defaultDsTableLocale;
22930
+ exports.dropdownMenuActionsAlignments = dropdownMenuActionsAlignments;
21959
22931
  exports.dropdownMenuItemVariants = dropdownMenuItemVariants;
22932
+ exports.dsAvatarSizes = dsAvatarSizes;
22933
+ exports.dsAvatarTypes = dsAvatarTypes;
21960
22934
  exports.dsKeyValuePairOrientations = dsKeyValuePairOrientations;
21961
22935
  exports.filterStatuses = filterStatuses;
21962
22936
  exports.formatTime = formatTime;
@@ -21975,6 +22949,7 @@ exports.progressDonutVariants = progressDonutVariants;
21975
22949
  exports.progressLinearSizes = progressLinearSizes;
21976
22950
  exports.progressLinearVariants = progressLinearVariants;
21977
22951
  exports.resolveResponsiveValue = resolveResponsiveValue;
22952
+ exports.siteNodeStates = siteNodeStates;
21978
22953
  exports.skeletonColorVariants = skeletonColorVariants;
21979
22954
  exports.skeletonRadiusVariants = skeletonRadiusVariants;
21980
22955
  exports.spinnerSizes = spinnerSizes;
@@ -21985,7 +22960,9 @@ exports.statusBadgeV2Variants = statusBadgeV2Variants;
21985
22960
  exports.systemStatuses = systemStatuses;
21986
22961
  exports.tagSizes = tagSizes;
21987
22962
  exports.tagVariants = tagVariants;
22963
+ exports.taskBarStatuses = taskBarStatuses;
21988
22964
  exports.textInputSizes = textInputSizes;
22965
+ exports.tooltipPlacements = tooltipPlacements;
21989
22966
  exports.useBreakpoint = useBreakpoint;
21990
22967
  exports.useCellEditor = useCellEditor;
21991
22968
  exports.useCheckboxSelectAll = useCheckboxSelectAll;