@drivenets/design-system 0.17.0 → 0.18.1

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 (98) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/dist/index.cjs +1797 -805
  3. package/dist/index.d.cts +117 -53
  4. package/dist/index.d.cts.map +1 -1
  5. package/dist/index.d.ts +117 -53
  6. package/dist/index.d.ts.map +1 -1
  7. package/dist/index.js +1799 -809
  8. package/dist/index.js.map +1 -1
  9. package/dist/index.min.css +1 -1
  10. package/package.json +3 -3
  11. package/src/components/ds-alert-banner/ds-alert-banner-global.figma.ts +49 -0
  12. package/src/components/ds-alert-banner/ds-alert-banner.figma.ts +51 -0
  13. package/src/components/ds-autocomplete/ds-autocomplete.module.scss +15 -4
  14. package/src/components/ds-autocomplete/ds-autocomplete.tsx +10 -3
  15. package/src/components/ds-autocomplete/ds-autocomplete.types.ts +8 -0
  16. package/src/components/ds-button-v3/ds-button-v3.figma.ts +5 -3
  17. package/src/components/ds-button-v3/ds-button-v3.module.scss +84 -17
  18. package/src/components/ds-button-v3/ds-button-v3.tsx +2 -0
  19. package/src/components/ds-button-v3/ds-button-v3.types.ts +11 -2
  20. package/src/components/ds-button-v3/ds-button-v4.figma.ts +121 -0
  21. package/src/components/ds-comment-bubble/ds-comment-bubble.figma.ts +52 -0
  22. package/src/components/ds-comment-card/ds-comment-card.figma.ts +36 -0
  23. package/src/components/ds-comment-indicator/ds-comment-indicator.figma.ts +32 -0
  24. package/src/components/ds-comments-drawer/ds-comments-drawer.figma.ts +19 -0
  25. package/src/components/ds-select/ds-select.figma.ts +2 -1
  26. package/src/components/ds-select/ds-select.tsx +6 -1
  27. package/src/components/ds-select/ds-select.types.ts +2 -1
  28. package/src/components/ds-slider/ds-slider.figma.ts +29 -0
  29. package/src/components/ds-slider/ds-slider.module.scss +104 -0
  30. package/src/components/ds-slider/ds-slider.tsx +118 -0
  31. package/src/components/ds-slider/ds-slider.types.ts +102 -0
  32. package/src/components/ds-slider/ds-slider.utils.ts +14 -0
  33. package/src/components/ds-slider/index.ts +11 -0
  34. package/src/components/ds-smart-tabs/figma/ds-smart-tabs-tab.figma.ts +83 -0
  35. package/src/components/ds-smart-tabs/figma/ds-smart-tabs.figma.ts +23 -0
  36. package/src/components/ds-table/components/ds-table-group-header-cell/ds-table-group-header-cell.module.scss +5 -1
  37. package/src/components/ds-table/components/ds-table-group-header-cell/ds-table-group-header-cell.tsx +15 -3
  38. package/src/components/ds-table/components/ds-table-header/ds-table-header.module.scss +15 -1
  39. package/src/components/ds-table/components/ds-table-header/ds-table-header.tsx +29 -6
  40. package/src/components/ds-table/components/ds-table-resize-handle/ds-table-resize-handle.module.scss +23 -0
  41. package/src/components/ds-table/components/ds-table-resize-handle/ds-table-resize-handle.tsx +218 -0
  42. package/src/components/ds-table/components/ds-table-resize-handle/ds-table-resize-handle.types.ts +14 -0
  43. package/src/components/ds-table/components/ds-table-resize-handle/index.ts +1 -0
  44. package/src/components/ds-table/components/ds-table-resize-overlay/ds-table-resize-overlay.module.scss +18 -0
  45. package/src/components/ds-table/components/ds-table-resize-overlay/ds-table-resize-overlay.tsx +16 -0
  46. package/src/components/ds-table/components/ds-table-resize-overlay/ds-table-resize-overlay.types.ts +13 -0
  47. package/src/components/ds-table/components/ds-table-resize-overlay/index.ts +1 -0
  48. package/src/components/ds-table/components/ds-table-row/ds-table-row.module.scss +1 -1
  49. package/src/components/ds-table/components/ds-table-row/ds-table-row.tsx +9 -2
  50. package/src/components/ds-table/components/ds-table-row-virtualized/ds-table-row-virtualized.module.scss +2 -1
  51. package/src/components/ds-table/components/ds-table-row-virtualized/ds-table-row-virtualized.tsx +9 -2
  52. package/src/components/ds-table/components/edit/cell-editors/ds-table-edit-cell-checkbox.tsx +2 -2
  53. package/src/components/ds-table/components/edit/cell-editors/ds-table-edit-cell-date.tsx +2 -1
  54. package/src/components/ds-table/components/edit/cell-editors/ds-table-edit-cell-number.tsx +2 -1
  55. package/src/components/ds-table/components/edit/cell-editors/ds-table-edit-cell-select.tsx +2 -1
  56. package/src/components/ds-table/components/edit/cell-editors/ds-table-edit-cell-text.tsx +2 -1
  57. package/src/components/ds-table/components/edit/ds-table-editing-cell/ds-table-editing-cell.tsx +12 -3
  58. package/src/components/ds-table/context/ds-table-context.tsx +208 -0
  59. package/src/components/ds-table/ds-table-defaults.ts +42 -0
  60. package/src/components/ds-table/ds-table.module.scss +4 -1
  61. package/src/components/ds-table/ds-table.tsx +139 -214
  62. package/src/components/ds-table/ds-table.types.ts +53 -47
  63. package/src/components/ds-table/grouping/utils/column-group.ts +7 -5
  64. package/src/components/ds-table/hooks/use-cell-editor.ts +5 -1
  65. package/src/components/ds-table/hooks/use-column-resize.ts +385 -0
  66. package/src/components/ds-table/hooks/use-editing-state.ts +190 -0
  67. package/src/components/ds-table/index.ts +1 -0
  68. package/src/components/ds-table/styles/_variables.scss +2 -1
  69. package/src/components/ds-table/utils/column-size-meta.augmentation.ts +16 -0
  70. package/src/components/ds-table/utils/column-size.ts +213 -10
  71. package/src/components/ds-table/utils/column-size.unit.test.ts +213 -0
  72. package/src/components/ds-table/utils/constants.ts +28 -0
  73. package/src/components/ds-table/utils/frozen-body.ts +33 -0
  74. package/src/components/ds-table/utils/frozen-body.unit.test.ts +44 -0
  75. package/src/components/ds-table/utils/table-api.ts +42 -0
  76. package/src/components/ds-table/utils/table-api.unit.test.ts +82 -0
  77. package/src/components/ds-table/utils/table-columns.tsx +119 -0
  78. package/src/components/ds-table/utils/table-columns.unit.test.ts +199 -0
  79. package/src/components/ds-tag/ds-tag.figma.ts +51 -0
  80. package/src/components/ds-tag-filter/ds-tag-filter.figma.ts +16 -0
  81. package/src/components/ds-tag-filter/ds-tag-filter.module.scss +7 -35
  82. package/src/components/ds-tag-filter/ds-tag-filter.tsx +34 -57
  83. package/src/components/ds-tag-filter/ds-tag-filter.types.ts +2 -1
  84. package/src/components/ds-tag-filter/hooks/use-tag-overflow-calculation.ts +13 -18
  85. package/src/components/ds-text-input/ds-input-field-v02.figma.ts +29 -4
  86. package/src/components/ds-text-input/ds-text-input.figma.ts +3 -2
  87. package/src/components/ds-text-input/ds-text-input.tsx +1 -0
  88. package/src/components/ds-text-input/ds-text-input.types.ts +1 -1
  89. package/src/components/ds-tree/ds-tree.figma.ts +54 -0
  90. package/src/components/ds-workspace-layout/ds-workspace-layout.figma.ts +99 -0
  91. package/src/components/ds-workspace-layout/ds-workspace-layout.module.scss +1 -8
  92. package/src/index.ts +1 -0
  93. package/src/styles/_gradients.scss +19 -0
  94. package/src/styles/_root.scss +39 -15
  95. package/src/styles/_typography.scss +1 -0
  96. package/src/styles/shared/_input.scss +10 -0
  97. package/src/styles/styles.scss +1 -0
  98. package/src/components/ds-table/context/ds-table-context.ts +0 -112
package/dist/index.cjs CHANGED
@@ -53,6 +53,7 @@ let _radix_ui_react_collapsible = require("@radix-ui/react-collapsible");
53
53
  _radix_ui_react_collapsible = __toESM(_radix_ui_react_collapsible, 1);
54
54
  let _ark_ui_react_radio_group = require("@ark-ui/react/radio-group");
55
55
  let _ark_ui_react_segment_group = require("@ark-ui/react/segment-group");
56
+ let _ark_ui_react_slider = require("@ark-ui/react/slider");
56
57
  let _zag_js_steps = require("@zag-js/steps");
57
58
  _zag_js_steps = __toESM(_zag_js_steps, 1);
58
59
  let _zag_js_react = require("@zag-js/react");
@@ -3583,110 +3584,122 @@ var ds_autocomplete_module_default = {
3583
3584
  "itemGroup": "pgg73q_itemGroup",
3584
3585
  "itemIcon": "pgg73q_itemIcon",
3585
3586
  "itemText": "pgg73q_itemText",
3587
+ "large": "pgg73q_large",
3586
3588
  "loading": "pgg73q_loading",
3587
3589
  "noMatches": "pgg73q_noMatches",
3588
3590
  "positioner": "pgg73q_positioner",
3589
3591
  "root": "pgg73q_root",
3592
+ "small": "pgg73q_small",
3590
3593
  "startAdornment": "pgg73q_startAdornment",
3591
3594
  "trigger": "pgg73q_trigger"
3592
3595
  };
3593
3596
  //#endregion
3594
3597
  //#region src/components/ds-autocomplete/ds-autocomplete.tsx
3595
3598
  const DsAutocomplete = (t0) => {
3596
- const $ = (0, react_compiler_runtime.c)(53);
3597
- const { id, options: t1, loading: t2, style, className, placeholder: t3, disabled: t4, invalid: t5, onValueChange, onInputValueChange, onOpenChange, locale: t6, highlightMatch: t7, showTrigger: t8, startAdornment } = t0;
3599
+ const $ = (0, react_compiler_runtime.c)(58);
3600
+ const { id, options: t1, loading: t2, size: t3, style, className, placeholder: t4, disabled: t5, invalid: t6, onValueChange, onInputValueChange, onOpenChange, locale: t7, highlightMatch: t8, showTrigger: t9, startAdornment } = t0;
3598
3601
  const options = t1 === void 0 ? [] : t1;
3599
3602
  const loading = t2 === void 0 ? false : t2;
3600
- const placeholder = t3 === void 0 ? "Start typing to search..." : t3;
3601
- const disabled = t4 === void 0 ? false : t4;
3602
- const invalid = t5 === void 0 ? false : t5;
3603
- let t9;
3604
- if ($[0] !== t6) {
3605
- t9 = t6 === void 0 ? {} : t6;
3606
- $[0] = t6;
3607
- $[1] = t9;
3608
- } else t9 = $[1];
3609
- const { loading: t10, noMatches: t11 } = t9;
3610
- const loadingMessage = t10 === void 0 ? "Loading..." : t10;
3611
- const noMatchesMessage = t11 === void 0 ? "No matches found" : t11;
3612
- const highlightMatch = t7 === void 0 ? true : t7;
3613
- const showTrigger = t8 === void 0 ? true : t8;
3603
+ const size = t3 === void 0 ? "default" : t3;
3604
+ const placeholder = t4 === void 0 ? "Start typing to search..." : t4;
3605
+ const disabled = t5 === void 0 ? false : t5;
3606
+ const invalid = t6 === void 0 ? false : t6;
3607
+ let t10;
3608
+ if ($[0] !== t7) {
3609
+ t10 = t7 === void 0 ? {} : t7;
3610
+ $[0] = t7;
3611
+ $[1] = t10;
3612
+ } else t10 = $[1];
3613
+ const { loading: t11, noMatches: t12 } = t10;
3614
+ const loadingMessage = t11 === void 0 ? "Loading..." : t11;
3615
+ const noMatchesMessage = t12 === void 0 ? "No matches found" : t12;
3616
+ const highlightMatch = t8 === void 0 ? true : t8;
3617
+ const showTrigger = t9 === void 0 ? true : t9;
3614
3618
  const [filterText, setFilterText] = (0, react.useState)("");
3615
- let t12;
3619
+ let t13;
3616
3620
  if ($[2] === Symbol.for("react.memo_cache_sentinel")) {
3617
- t12 = { sensitivity: "base" };
3618
- $[2] = t12;
3619
- } else t12 = $[2];
3620
- const filterUtils = (0, _ark_ui_react_locale.useFilter)(t12);
3621
+ t13 = { sensitivity: "base" };
3622
+ $[2] = t13;
3623
+ } else t13 = $[2];
3624
+ const filterUtils = (0, _ark_ui_react_locale.useFilter)(t13);
3621
3625
  const collection = (0, _ark_ui_react_combobox.createListCollection)({
3622
3626
  items: filterText ? options.filter((opt) => filterUtils.contains(opt.label, filterText)) : options,
3623
- itemToString: _temp$17,
3627
+ itemToString: _temp$18,
3624
3628
  itemToValue: _temp2$9
3625
3629
  });
3626
- let t13;
3630
+ let t14;
3627
3631
  if ($[3] !== onInputValueChange) {
3628
- t13 = (details) => {
3632
+ t14 = (details) => {
3629
3633
  setFilterText(details.inputValue);
3630
3634
  onInputValueChange?.(details.inputValue);
3631
3635
  };
3632
3636
  $[3] = onInputValueChange;
3633
- $[4] = t13;
3634
- } else t13 = $[4];
3635
- const handleInputValueChange = t13;
3636
- let t14;
3637
+ $[4] = t14;
3638
+ } else t14 = $[4];
3639
+ const handleInputValueChange = t14;
3640
+ let t15;
3637
3641
  if ($[5] !== onValueChange) {
3638
- t14 = (details_0) => {
3642
+ t15 = (details_0) => {
3639
3643
  const selectedItem = details_0.items[0];
3640
3644
  onValueChange?.(selectedItem?.value ?? "");
3641
3645
  };
3642
3646
  $[5] = onValueChange;
3643
- $[6] = t14;
3644
- } else t14 = $[6];
3645
- const handleValueChange = t14;
3646
- let t15;
3647
+ $[6] = t15;
3648
+ } else t15 = $[6];
3649
+ const handleValueChange = t15;
3650
+ let t16;
3647
3651
  if ($[7] !== onOpenChange) {
3648
- t15 = (details_1) => {
3652
+ t16 = (details_1) => {
3649
3653
  onOpenChange?.(details_1.open);
3650
3654
  };
3651
3655
  $[7] = onOpenChange;
3652
- $[8] = t15;
3653
- } else t15 = $[8];
3654
- const handleOpenChange = t15;
3655
- let t16;
3656
+ $[8] = t16;
3657
+ } else t16 = $[8];
3658
+ const handleOpenChange = t16;
3659
+ let t17;
3656
3660
  if ($[9] !== className || $[10] !== disabled || $[11] !== invalid) {
3657
- t16 = (0, classnames.default)(ds_autocomplete_module_default.root, {
3661
+ t17 = (0, classnames.default)(ds_autocomplete_module_default.root, {
3658
3662
  [ds_autocomplete_module_default.disabled]: disabled,
3659
3663
  [ds_autocomplete_module_default.invalid]: invalid
3660
3664
  }, className);
3661
3665
  $[9] = className;
3662
3666
  $[10] = disabled;
3663
3667
  $[11] = invalid;
3664
- $[12] = t16;
3665
- } else t16 = $[12];
3666
- const rootClass = t16;
3667
- const t17 = _ark_ui_react_combobox.Combobox;
3668
- const t18 = true;
3669
- let t19;
3670
- if ($[13] !== startAdornment) {
3671
- t19 = startAdornment && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
3668
+ $[12] = t17;
3669
+ } else t17 = $[12];
3670
+ const rootClass = t17;
3671
+ const t18 = _ark_ui_react_combobox.Combobox;
3672
+ const t19 = true;
3673
+ const t20 = size === "small" && ds_autocomplete_module_default.small;
3674
+ const t21 = size === "large" && ds_autocomplete_module_default.large;
3675
+ let t22;
3676
+ if ($[13] !== t20 || $[14] !== t21) {
3677
+ t22 = (0, classnames.default)(ds_autocomplete_module_default.control, t20, t21);
3678
+ $[13] = t20;
3679
+ $[14] = t21;
3680
+ $[15] = t22;
3681
+ } else t22 = $[15];
3682
+ let t23;
3683
+ if ($[16] !== startAdornment) {
3684
+ t23 = startAdornment && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
3672
3685
  className: ds_autocomplete_module_default.startAdornment,
3673
3686
  children: startAdornment
3674
3687
  });
3675
- $[13] = startAdornment;
3676
- $[14] = t19;
3677
- } else t19 = $[14];
3678
- let t20;
3679
- if ($[15] !== placeholder) {
3680
- t20 = /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_ark_ui_react_combobox.Combobox.Input, {
3688
+ $[16] = startAdornment;
3689
+ $[17] = t23;
3690
+ } else t23 = $[17];
3691
+ let t24;
3692
+ if ($[18] !== placeholder) {
3693
+ t24 = /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_ark_ui_react_combobox.Combobox.Input, {
3681
3694
  className: ds_autocomplete_module_default.input,
3682
3695
  placeholder
3683
3696
  });
3684
- $[15] = placeholder;
3685
- $[16] = t20;
3686
- } else t20 = $[16];
3687
- let t21;
3688
- if ($[17] !== disabled || $[18] !== showTrigger) {
3689
- t21 = /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_ark_ui_react_combobox.Combobox.Context, { children: (combobox) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
3697
+ $[18] = placeholder;
3698
+ $[19] = t24;
3699
+ } else t24 = $[19];
3700
+ let t25;
3701
+ if ($[20] !== disabled || $[21] !== showTrigger || $[22] !== size) {
3702
+ t25 = /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_ark_ui_react_combobox.Combobox.Context, { children: (combobox) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
3690
3703
  className: ds_autocomplete_module_default.iconContainer,
3691
3704
  children: [combobox.inputValue && !disabled && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
3692
3705
  type: "button",
@@ -3698,56 +3711,58 @@ const DsAutocomplete = (t0) => {
3698
3711
  },
3699
3712
  children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(DsIcon, {
3700
3713
  icon: "close",
3701
- size: "medium"
3714
+ size: size === "small" ? "small" : "medium"
3702
3715
  })
3703
3716
  }), showTrigger && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_ark_ui_react_combobox.Combobox.Trigger, {
3704
3717
  className: ds_autocomplete_module_default.trigger,
3705
3718
  "aria-label": "Toggle dropdown",
3706
3719
  children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(DsIcon, {
3707
3720
  icon: "keyboard_arrow_down",
3708
- size: "medium"
3721
+ size: size === "small" ? "small" : "medium"
3709
3722
  })
3710
3723
  })]
3711
3724
  }) });
3712
- $[17] = disabled;
3713
- $[18] = showTrigger;
3714
- $[19] = t21;
3715
- } else t21 = $[19];
3716
- let t22;
3717
- if ($[20] !== t19 || $[21] !== t20 || $[22] !== t21) {
3718
- t22 = /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(_ark_ui_react_combobox.Combobox.Control, {
3719
- className: ds_autocomplete_module_default.control,
3725
+ $[20] = disabled;
3726
+ $[21] = showTrigger;
3727
+ $[22] = size;
3728
+ $[23] = t25;
3729
+ } else t25 = $[23];
3730
+ let t26;
3731
+ if ($[24] !== t22 || $[25] !== t23 || $[26] !== t24 || $[27] !== t25) {
3732
+ t26 = /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(_ark_ui_react_combobox.Combobox.Control, {
3733
+ className: t22,
3720
3734
  children: [
3721
- t19,
3722
- t20,
3723
- t21
3735
+ t23,
3736
+ t24,
3737
+ t25
3724
3738
  ]
3725
3739
  });
3726
- $[20] = t19;
3727
- $[21] = t20;
3728
- $[22] = t21;
3729
- $[23] = t22;
3730
- } else t22 = $[23];
3740
+ $[24] = t22;
3741
+ $[25] = t23;
3742
+ $[26] = t24;
3743
+ $[27] = t25;
3744
+ $[28] = t26;
3745
+ } else t26 = $[28];
3731
3746
  const T0 = _ark_ui_react_portal.Portal;
3732
- const t23 = _ark_ui_react_combobox.Combobox;
3733
- const t24 = ds_autocomplete_module_default;
3734
- const t25 = _ark_ui_react_combobox.Combobox;
3735
- const t26 = ds_autocomplete_module_default;
3736
- let t27;
3737
- if ($[24] !== loading || $[25] !== loadingMessage) {
3738
- t27 = loading && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
3747
+ const t27 = _ark_ui_react_combobox.Combobox;
3748
+ const t28 = ds_autocomplete_module_default;
3749
+ const t29 = _ark_ui_react_combobox.Combobox;
3750
+ const t30 = ds_autocomplete_module_default;
3751
+ let t31;
3752
+ if ($[29] !== loading || $[30] !== loadingMessage) {
3753
+ t31 = loading && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
3739
3754
  className: ds_autocomplete_module_default.loading,
3740
3755
  children: loadingMessage
3741
3756
  });
3742
- $[24] = loading;
3743
- $[25] = loadingMessage;
3744
- $[26] = t27;
3745
- } else t27 = $[26];
3746
- const t28 = !loading && collection.items.length === 0 && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
3757
+ $[29] = loading;
3758
+ $[30] = loadingMessage;
3759
+ $[31] = t31;
3760
+ } else t31 = $[31];
3761
+ const t32 = !loading && collection.items.length === 0 && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
3747
3762
  className: ds_autocomplete_module_default.noMatches,
3748
3763
  children: noMatchesMessage
3749
3764
  });
3750
- const t29 = !loading && collection.items.length > 0 && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_ark_ui_react_combobox.Combobox.ItemGroup, {
3765
+ const t33 = !loading && collection.items.length > 0 && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_ark_ui_react_combobox.Combobox.ItemGroup, {
3751
3766
  className: ds_autocomplete_module_default.itemGroup,
3752
3767
  children: collection.items.map((option) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(_ark_ui_react_combobox.Combobox.Item, {
3753
3768
  item: option,
@@ -3766,44 +3781,44 @@ const DsAutocomplete = (t0) => {
3766
3781
  })]
3767
3782
  }, option.value))
3768
3783
  });
3769
- let t30;
3770
- if ($[27] !== t25.Content || $[28] !== t26.content || $[29] !== t27 || $[30] !== t28 || $[31] !== t29) {
3771
- t30 = /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(t25.Content, {
3772
- className: t26.content,
3784
+ let t34;
3785
+ if ($[32] !== t29.Content || $[33] !== t30.content || $[34] !== t31 || $[35] !== t32 || $[36] !== t33) {
3786
+ t34 = /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(t29.Content, {
3787
+ className: t30.content,
3773
3788
  children: [
3774
- t27,
3775
- t28,
3776
- t29
3789
+ t31,
3790
+ t32,
3791
+ t33
3777
3792
  ]
3778
3793
  });
3779
- $[27] = t25.Content;
3780
- $[28] = t26.content;
3781
- $[29] = t27;
3782
- $[30] = t28;
3783
- $[31] = t29;
3784
- $[32] = t30;
3785
- } else t30 = $[32];
3786
- let t31;
3787
- if ($[33] !== t23.Positioner || $[34] !== t24.positioner || $[35] !== t30) {
3788
- t31 = /* @__PURE__ */ (0, react_jsx_runtime.jsx)(t23.Positioner, {
3789
- className: t24.positioner,
3790
- children: t30
3791
- });
3792
- $[33] = t23.Positioner;
3793
- $[34] = t24.positioner;
3794
- $[35] = t30;
3795
- $[36] = t31;
3796
- } else t31 = $[36];
3797
- let t32;
3798
- if ($[37] !== T0 || $[38] !== t31) {
3799
- t32 = /* @__PURE__ */ (0, react_jsx_runtime.jsx)(T0, { children: t31 });
3800
- $[37] = T0;
3801
- $[38] = t31;
3802
- $[39] = t32;
3803
- } else t32 = $[39];
3804
- let t33;
3805
- if ($[40] !== collection || $[41] !== disabled || $[42] !== handleInputValueChange || $[43] !== handleOpenChange || $[44] !== handleValueChange || $[45] !== id || $[46] !== invalid || $[47] !== rootClass || $[48] !== style || $[49] !== t17.Root || $[50] !== t22 || $[51] !== t32) {
3806
- t33 = /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(t17.Root, {
3794
+ $[32] = t29.Content;
3795
+ $[33] = t30.content;
3796
+ $[34] = t31;
3797
+ $[35] = t32;
3798
+ $[36] = t33;
3799
+ $[37] = t34;
3800
+ } else t34 = $[37];
3801
+ let t35;
3802
+ if ($[38] !== t27.Positioner || $[39] !== t28.positioner || $[40] !== t34) {
3803
+ t35 = /* @__PURE__ */ (0, react_jsx_runtime.jsx)(t27.Positioner, {
3804
+ className: t28.positioner,
3805
+ children: t34
3806
+ });
3807
+ $[38] = t27.Positioner;
3808
+ $[39] = t28.positioner;
3809
+ $[40] = t34;
3810
+ $[41] = t35;
3811
+ } else t35 = $[41];
3812
+ let t36;
3813
+ if ($[42] !== T0 || $[43] !== t35) {
3814
+ t36 = /* @__PURE__ */ (0, react_jsx_runtime.jsx)(T0, { children: t35 });
3815
+ $[42] = T0;
3816
+ $[43] = t35;
3817
+ $[44] = t36;
3818
+ } else t36 = $[44];
3819
+ let t37;
3820
+ if ($[45] !== collection || $[46] !== disabled || $[47] !== handleInputValueChange || $[48] !== handleOpenChange || $[49] !== handleValueChange || $[50] !== id || $[51] !== invalid || $[52] !== rootClass || $[53] !== style || $[54] !== t18.Root || $[55] !== t26 || $[56] !== t36) {
3821
+ t37 = /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(t18.Root, {
3807
3822
  id,
3808
3823
  collection,
3809
3824
  className: rootClass,
@@ -3813,33 +3828,40 @@ const DsAutocomplete = (t0) => {
3813
3828
  onInputValueChange: handleInputValueChange,
3814
3829
  onValueChange: handleValueChange,
3815
3830
  onOpenChange: handleOpenChange,
3816
- closeOnSelect: t18,
3817
- children: [t22, t32]
3818
- });
3819
- $[40] = collection;
3820
- $[41] = disabled;
3821
- $[42] = handleInputValueChange;
3822
- $[43] = handleOpenChange;
3823
- $[44] = handleValueChange;
3824
- $[45] = id;
3825
- $[46] = invalid;
3826
- $[47] = rootClass;
3827
- $[48] = style;
3828
- $[49] = t17.Root;
3829
- $[50] = t22;
3830
- $[51] = t32;
3831
- $[52] = t33;
3832
- } else t33 = $[52];
3833
- return t33;
3831
+ closeOnSelect: t19,
3832
+ children: [t26, t36]
3833
+ });
3834
+ $[45] = collection;
3835
+ $[46] = disabled;
3836
+ $[47] = handleInputValueChange;
3837
+ $[48] = handleOpenChange;
3838
+ $[49] = handleValueChange;
3839
+ $[50] = id;
3840
+ $[51] = invalid;
3841
+ $[52] = rootClass;
3842
+ $[53] = style;
3843
+ $[54] = t18.Root;
3844
+ $[55] = t26;
3845
+ $[56] = t36;
3846
+ $[57] = t37;
3847
+ } else t37 = $[57];
3848
+ return t37;
3834
3849
  };
3835
3850
  DsAutocomplete.displayName = "DsAutocomplete";
3836
- function _temp$17(item) {
3851
+ function _temp$18(item) {
3837
3852
  return item.label;
3838
3853
  }
3839
3854
  function _temp2$9(item_0) {
3840
3855
  return item_0.value;
3841
3856
  }
3842
3857
  //#endregion
3858
+ //#region src/components/ds-autocomplete/ds-autocomplete.types.ts
3859
+ const autocompleteSizes = [
3860
+ "small",
3861
+ "default",
3862
+ "large"
3863
+ ];
3864
+ //#endregion
3843
3865
  //#region src/components/ds-avatar/ds-avatar.module.scss
3844
3866
  var ds_avatar_module_default = {
3845
3867
  "avatar": "VcKEMW_avatar",
@@ -3938,11 +3960,11 @@ const DsAvatar = (t0) => {
3938
3960
  return t11;
3939
3961
  };
3940
3962
  DsAvatar.displayName = "DsAvatar";
3941
- function _temp$16(w) {
3963
+ function _temp$17(w) {
3942
3964
  return w[0];
3943
3965
  }
3944
3966
  function _temp2$8(name_0) {
3945
- return name_0.trim().split(" ").map(_temp$16).join("");
3967
+ return name_0.trim().split(" ").map(_temp$17).join("");
3946
3968
  }
3947
3969
  //#endregion
3948
3970
  //#region src/components/ds-avatar/ds-avatar.types.ts
@@ -4014,7 +4036,7 @@ const DsAvatarGroup = (t0) => {
4014
4036
  t6 = remainingCount > 0 && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(DsTooltip, {
4015
4037
  content: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
4016
4038
  className: ds_avatar_group_module_default.tooltipList,
4017
- children: hiddenAvatars.map(_temp$15)
4039
+ children: hiddenAvatars.map(_temp$16)
4018
4040
  }),
4019
4041
  children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
4020
4042
  className: (0, classnames.default)(ds_avatar_group_module_default.moreAvatar, ds_avatar_group_module_default[size], ds_avatar_group_module_default[type]),
@@ -4048,7 +4070,7 @@ const DsAvatarGroup = (t0) => {
4048
4070
  return t7;
4049
4071
  };
4050
4072
  DsAvatarGroup.displayName = "DsAvatarGroup";
4051
- function _temp$15(avatar_0, index_0) {
4073
+ function _temp$16(avatar_0, index_0) {
4052
4074
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", { children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(DsTypography, {
4053
4075
  variant: "body-xs-reg",
4054
4076
  children: avatar_0.name
@@ -4102,6 +4124,7 @@ var ds_text_input_module_default = {
4102
4124
  "iconButton": "zbxt3W_iconButton",
4103
4125
  "indicator": "zbxt3W_indicator",
4104
4126
  "input": "zbxt3W_input",
4127
+ "large": "zbxt3W_large",
4105
4128
  "small": "zbxt3W_small",
4106
4129
  "textInputContainer": "zbxt3W_textInputContainer",
4107
4130
  "trigger": "zbxt3W_trigger"
@@ -4109,7 +4132,7 @@ var ds_text_input_module_default = {
4109
4132
  //#endregion
4110
4133
  //#region src/components/ds-text-input/ds-text-input.tsx
4111
4134
  const DsTextInput = (t0) => {
4112
- const $ = (0, react_compiler_runtime.c)(42);
4135
+ const $ = (0, react_compiler_runtime.c)(43);
4113
4136
  const { id, ref, name, size: t1, type: t2, onFocus, onBlur, onKeyDown, onChange, onValueChange, className, style: t3, value, defaultValue, min, max, minLength, maxLength, placeholder, disabled: t4, readOnly: t5, tabIndex, slots } = t0;
4114
4137
  const size = t1 === void 0 ? "default" : t1;
4115
4138
  const type = t2 === void 0 ? "text" : t2;
@@ -4125,51 +4148,54 @@ const DsTextInput = (t0) => {
4125
4148
  const InputWrapper = slots?.inputWrapper ?? react.Fragment;
4126
4149
  const t7 = size === "small";
4127
4150
  const t8 = size === "default";
4128
- let t9;
4129
- if ($[2] !== className || $[3] !== t7 || $[4] !== t8) {
4130
- t9 = (0, classnames.default)(ds_text_input_module_default.textInputContainer, {
4151
+ const t9 = size === "large";
4152
+ let t10;
4153
+ if ($[2] !== className || $[3] !== t7 || $[4] !== t8 || $[5] !== t9) {
4154
+ t10 = (0, classnames.default)(ds_text_input_module_default.textInputContainer, {
4131
4155
  [ds_text_input_module_default.small]: t7,
4132
- [ds_text_input_module_default.default]: t8
4156
+ [ds_text_input_module_default.default]: t8,
4157
+ [ds_text_input_module_default.large]: t9
4133
4158
  }, className);
4134
4159
  $[2] = className;
4135
4160
  $[3] = t7;
4136
4161
  $[4] = t8;
4137
4162
  $[5] = t9;
4138
- } else t9 = $[5];
4139
- const containerClass = t9;
4140
- let t10;
4141
- if ($[6] !== onChange || $[7] !== onValueChange) {
4142
- t10 = (event) => {
4163
+ $[6] = t10;
4164
+ } else t10 = $[6];
4165
+ const containerClass = t10;
4166
+ let t11;
4167
+ if ($[7] !== onChange || $[8] !== onValueChange) {
4168
+ t11 = (event) => {
4143
4169
  const newValue = event.target.value;
4144
4170
  onChange?.(event);
4145
4171
  onValueChange?.(newValue);
4146
4172
  };
4147
- $[6] = onChange;
4148
- $[7] = onValueChange;
4149
- $[8] = t10;
4150
- } else t10 = $[8];
4151
- const handleChange = t10;
4152
- let t11;
4153
- if ($[9] !== slots) {
4154
- t11 = slots?.startAdornment && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
4173
+ $[7] = onChange;
4174
+ $[8] = onValueChange;
4175
+ $[9] = t11;
4176
+ } else t11 = $[9];
4177
+ const handleChange = t11;
4178
+ let t12;
4179
+ if ($[10] !== slots) {
4180
+ t12 = slots?.startAdornment && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
4155
4181
  className: ds_text_input_module_default.adornment,
4156
4182
  children: slots.startAdornment
4157
4183
  });
4158
- $[9] = slots;
4159
- $[10] = t11;
4160
- } else t11 = $[10];
4161
- let t12;
4162
- if ($[11] === Symbol.for("react.memo_cache_sentinel")) {
4163
- t12 = (0, classnames.default)(ds_text_input_module_default.input);
4184
+ $[10] = slots;
4164
4185
  $[11] = t12;
4165
4186
  } else t12 = $[11];
4166
4187
  let t13;
4167
- if ($[12] !== defaultValue || $[13] !== disabled || $[14] !== handleChange || $[15] !== id || $[16] !== max || $[17] !== maxLength || $[18] !== min || $[19] !== minLength || $[20] !== name || $[21] !== onBlur || $[22] !== onFocus || $[23] !== onKeyDown || $[24] !== placeholder || $[25] !== readOnly || $[26] !== ref || $[27] !== tabIndex || $[28] !== type || $[29] !== value) {
4168
- t13 = /* @__PURE__ */ (0, react_jsx_runtime.jsx)("input", {
4188
+ if ($[12] === Symbol.for("react.memo_cache_sentinel")) {
4189
+ t13 = (0, classnames.default)(ds_text_input_module_default.input);
4190
+ $[12] = t13;
4191
+ } else t13 = $[12];
4192
+ let t14;
4193
+ if ($[13] !== defaultValue || $[14] !== disabled || $[15] !== handleChange || $[16] !== id || $[17] !== max || $[18] !== maxLength || $[19] !== min || $[20] !== minLength || $[21] !== name || $[22] !== onBlur || $[23] !== onFocus || $[24] !== onKeyDown || $[25] !== placeholder || $[26] !== readOnly || $[27] !== ref || $[28] !== tabIndex || $[29] !== type || $[30] !== value) {
4194
+ t14 = /* @__PURE__ */ (0, react_jsx_runtime.jsx)("input", {
4169
4195
  id,
4170
4196
  ref,
4171
4197
  name,
4172
- className: t12,
4198
+ className: t13,
4173
4199
  type,
4174
4200
  value,
4175
4201
  defaultValue,
@@ -4186,66 +4212,70 @@ const DsTextInput = (t0) => {
4186
4212
  onChange: handleChange,
4187
4213
  tabIndex
4188
4214
  });
4189
- $[12] = defaultValue;
4190
- $[13] = disabled;
4191
- $[14] = handleChange;
4192
- $[15] = id;
4193
- $[16] = max;
4194
- $[17] = maxLength;
4195
- $[18] = min;
4196
- $[19] = minLength;
4197
- $[20] = name;
4198
- $[21] = onBlur;
4199
- $[22] = onFocus;
4200
- $[23] = onKeyDown;
4201
- $[24] = placeholder;
4202
- $[25] = readOnly;
4203
- $[26] = ref;
4204
- $[27] = tabIndex;
4205
- $[28] = type;
4206
- $[29] = value;
4207
- $[30] = t13;
4208
- } else t13 = $[30];
4209
- let t14;
4210
- if ($[31] !== InputWrapper || $[32] !== t13) {
4211
- t14 = /* @__PURE__ */ (0, react_jsx_runtime.jsx)(InputWrapper, { children: t13 });
4212
- $[31] = InputWrapper;
4213
- $[32] = t13;
4214
- $[33] = t14;
4215
- } else t14 = $[33];
4215
+ $[13] = defaultValue;
4216
+ $[14] = disabled;
4217
+ $[15] = handleChange;
4218
+ $[16] = id;
4219
+ $[17] = max;
4220
+ $[18] = maxLength;
4221
+ $[19] = min;
4222
+ $[20] = minLength;
4223
+ $[21] = name;
4224
+ $[22] = onBlur;
4225
+ $[23] = onFocus;
4226
+ $[24] = onKeyDown;
4227
+ $[25] = placeholder;
4228
+ $[26] = readOnly;
4229
+ $[27] = ref;
4230
+ $[28] = tabIndex;
4231
+ $[29] = type;
4232
+ $[30] = value;
4233
+ $[31] = t14;
4234
+ } else t14 = $[31];
4216
4235
  let t15;
4217
- if ($[34] !== slots) {
4218
- t15 = slots?.endAdornment && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
4236
+ if ($[32] !== InputWrapper || $[33] !== t14) {
4237
+ t15 = /* @__PURE__ */ (0, react_jsx_runtime.jsx)(InputWrapper, { children: t14 });
4238
+ $[32] = InputWrapper;
4239
+ $[33] = t14;
4240
+ $[34] = t15;
4241
+ } else t15 = $[34];
4242
+ let t16;
4243
+ if ($[35] !== slots) {
4244
+ t16 = slots?.endAdornment && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
4219
4245
  className: ds_text_input_module_default.adornment,
4220
4246
  children: slots.endAdornment
4221
4247
  });
4222
- $[34] = slots;
4223
- $[35] = t15;
4224
- } else t15 = $[35];
4225
- let t16;
4226
- if ($[36] !== containerClass || $[37] !== style || $[38] !== t11 || $[39] !== t14 || $[40] !== t15) {
4227
- t16 = /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
4248
+ $[35] = slots;
4249
+ $[36] = t16;
4250
+ } else t16 = $[36];
4251
+ let t17;
4252
+ if ($[37] !== containerClass || $[38] !== style || $[39] !== t12 || $[40] !== t15 || $[41] !== t16) {
4253
+ t17 = /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
4228
4254
  className: containerClass,
4229
4255
  style,
4230
4256
  children: [
4231
- t11,
4232
- t14,
4233
- t15
4257
+ t12,
4258
+ t15,
4259
+ t16
4234
4260
  ]
4235
4261
  });
4236
- $[36] = containerClass;
4237
- $[37] = style;
4238
- $[38] = t11;
4239
- $[39] = t14;
4262
+ $[37] = containerClass;
4263
+ $[38] = style;
4264
+ $[39] = t12;
4240
4265
  $[40] = t15;
4241
4266
  $[41] = t16;
4242
- } else t16 = $[41];
4243
- return t16;
4267
+ $[42] = t17;
4268
+ } else t17 = $[42];
4269
+ return t17;
4244
4270
  };
4245
4271
  DsTextInput.displayName = "DsTextInput";
4246
4272
  //#endregion
4247
4273
  //#region src/components/ds-text-input/ds-text-input.types.ts
4248
- const textInputSizes = ["small", "default"];
4274
+ const textInputSizes = [
4275
+ "small",
4276
+ "default",
4277
+ "large"
4278
+ ];
4249
4279
  //#endregion
4250
4280
  //#region src/components/ds-dropdown-menu/ds-dropdown-menu.tsx
4251
4281
  const GroupContext = (0, react.createContext)(null);
@@ -4609,7 +4639,7 @@ const ItemGroupLabel = (t0) => {
4609
4639
  className: t1,
4610
4640
  style,
4611
4641
  onClick: toggle,
4612
- onKeyDown: _temp$14,
4642
+ onKeyDown: _temp$15,
4613
4643
  children: [t2, t5]
4614
4644
  })
4615
4645
  });
@@ -4924,7 +4954,7 @@ DsDropdownMenu.ItemGroupLabel.displayName = "DsDropdownMenu.ItemGroupLabel";
4924
4954
  DsDropdownMenu.ItemGroupContent.displayName = "DsDropdownMenu.ItemGroupContent";
4925
4955
  DsDropdownMenu.Separator.displayName = "DsDropdownMenu.Separator";
4926
4956
  DsDropdownMenuLegacy.displayName = "DsDropdownMenuLegacy";
4927
- function _temp$14(e) {
4957
+ function _temp$15(e) {
4928
4958
  return e.stopPropagation();
4929
4959
  }
4930
4960
  function _temp2$7(e) {
@@ -4990,7 +5020,7 @@ const DsBreadcrumb = (t0) => {
4990
5020
  placeholder: "Search",
4991
5021
  value: search,
4992
5022
  onValueChange: setSearch,
4993
- onKeyDown: _temp$13,
5023
+ onKeyDown: _temp$14,
4994
5024
  slots: { startAdornment: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(DsIcon, {
4995
5025
  icon: "search",
4996
5026
  size: "tiny"
@@ -5047,7 +5077,7 @@ const DsBreadcrumb = (t0) => {
5047
5077
  return t4;
5048
5078
  };
5049
5079
  DsBreadcrumb.displayName = "DsBreadcrumb";
5050
- function _temp$13(e) {
5080
+ function _temp$14(e) {
5051
5081
  return e.stopPropagation();
5052
5082
  }
5053
5083
  //#endregion
@@ -5503,7 +5533,7 @@ const iconSizeMap = Object.freeze({
5503
5533
  * @summary action button with color/variant/size, icon-only, loading and selected states
5504
5534
  */
5505
5535
  const DsButtonV3$1 = (t0) => {
5506
- const $ = (0, react_compiler_runtime.c)(37);
5536
+ const $ = (0, react_compiler_runtime.c)(39);
5507
5537
  let children;
5508
5538
  let className;
5509
5539
  let disabled;
@@ -5517,8 +5547,9 @@ const DsButtonV3$1 = (t0) => {
5517
5547
  let t4;
5518
5548
  let t5;
5519
5549
  let t6;
5550
+ let t7;
5520
5551
  if ($[0] !== t0) {
5521
- ({ref, className, style, children, icon, disabled, loading: t1, color: t2, variant: t3, size: t4, selected: t5, type: t6, ...rest} = t0);
5552
+ ({ref, className, style, children, icon, disabled, loading: t1, color: t2, variant: t3, size: t4, selected: t5, highEmphasis: t6, type: t7, ...rest} = t0);
5522
5553
  $[0] = t0;
5523
5554
  $[1] = children;
5524
5555
  $[2] = className;
@@ -5533,6 +5564,7 @@ const DsButtonV3$1 = (t0) => {
5533
5564
  $[11] = t4;
5534
5565
  $[12] = t5;
5535
5566
  $[13] = t6;
5567
+ $[14] = t7;
5536
5568
  } else {
5537
5569
  children = $[1];
5538
5570
  className = $[2];
@@ -5547,80 +5579,86 @@ const DsButtonV3$1 = (t0) => {
5547
5579
  t4 = $[11];
5548
5580
  t5 = $[12];
5549
5581
  t6 = $[13];
5582
+ t7 = $[14];
5550
5583
  }
5551
5584
  const loading = t1 === void 0 ? false : t1;
5552
5585
  const color = t2 === void 0 ? "default" : t2;
5553
5586
  const variant = t3 === void 0 ? "primary" : t3;
5554
5587
  const size = t4 === void 0 ? "medium" : t4;
5555
5588
  const selected = t5 === void 0 ? false : t5;
5556
- const type = t6 === void 0 ? "button" : t6;
5589
+ const highEmphasis = t6 === void 0 ? false : t6;
5590
+ const type = t7 === void 0 ? "button" : t7;
5557
5591
  const isIconOnly = icon !== void 0 && !children;
5558
- const t7 = disabled || loading;
5559
- const t8 = loading || void 0;
5560
- let t9;
5561
- if ($[14] !== className) {
5562
- t9 = (0, classnames.default)(ds_button_v3_module_default.root, className);
5563
- $[14] = className;
5564
- $[15] = t9;
5565
- } else t9 = $[15];
5566
- const t10 = selected ? "true" : void 0;
5567
- const t11 = isIconOnly || void 0;
5568
- const t12 = loading && !disabled ? "" : void 0;
5569
- let t13;
5570
- if ($[16] !== icon || $[17] !== loading || $[18] !== size) {
5571
- t13 = loading ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(DsSpinner, {}) : icon && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(DsIcon, {
5592
+ const t8 = disabled || loading;
5593
+ const t9 = loading || void 0;
5594
+ let t10;
5595
+ if ($[15] !== className) {
5596
+ t10 = (0, classnames.default)(ds_button_v3_module_default.root, className);
5597
+ $[15] = className;
5598
+ $[16] = t10;
5599
+ } else t10 = $[16];
5600
+ const t11 = selected ? "true" : void 0;
5601
+ const t12 = highEmphasis ? "true" : void 0;
5602
+ const t13 = isIconOnly || void 0;
5603
+ const t14 = loading && !disabled ? "" : void 0;
5604
+ let t15;
5605
+ if ($[17] !== icon || $[18] !== loading || $[19] !== size) {
5606
+ t15 = loading ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(DsSpinner, {}) : icon && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(DsIcon, {
5572
5607
  icon,
5573
5608
  size: iconSizeMap[size],
5574
5609
  "aria-hidden": true
5575
5610
  });
5576
- $[16] = icon;
5577
- $[17] = loading;
5578
- $[18] = size;
5579
- $[19] = t13;
5580
- } else t13 = $[19];
5581
- let t14;
5582
- if ($[20] !== children || $[21] !== color || $[22] !== ref || $[23] !== rest || $[24] !== selected || $[25] !== size || $[26] !== style || $[27] !== t10 || $[28] !== t11 || $[29] !== t12 || $[30] !== t13 || $[31] !== t7 || $[32] !== t8 || $[33] !== t9 || $[34] !== type || $[35] !== variant) {
5583
- t14 = /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("button", {
5611
+ $[17] = icon;
5612
+ $[18] = loading;
5613
+ $[19] = size;
5614
+ $[20] = t15;
5615
+ } else t15 = $[20];
5616
+ let t16;
5617
+ if ($[21] !== children || $[22] !== color || $[23] !== ref || $[24] !== rest || $[25] !== selected || $[26] !== size || $[27] !== style || $[28] !== t10 || $[29] !== t11 || $[30] !== t12 || $[31] !== t13 || $[32] !== t14 || $[33] !== t15 || $[34] !== t8 || $[35] !== t9 || $[36] !== type || $[37] !== variant) {
5618
+ t16 = /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("button", {
5584
5619
  ref,
5585
5620
  type,
5586
- disabled: t7,
5587
- "aria-busy": t8,
5621
+ disabled: t8,
5622
+ "aria-busy": t9,
5588
5623
  "aria-pressed": selected,
5589
- className: t9,
5624
+ className: t10,
5590
5625
  style,
5591
5626
  "data-color": color,
5592
5627
  "data-variant": variant,
5593
5628
  "data-size": size,
5594
- "data-selected": t10,
5595
- "data-icon-only": t11,
5596
- "data-loading": t12,
5629
+ "data-selected": t11,
5630
+ "data-high-emphasis": t12,
5631
+ "data-icon-only": t13,
5632
+ "data-loading": t14,
5597
5633
  ...rest,
5598
- children: [t13, children]
5599
- });
5600
- $[20] = children;
5601
- $[21] = color;
5602
- $[22] = ref;
5603
- $[23] = rest;
5604
- $[24] = selected;
5605
- $[25] = size;
5606
- $[26] = style;
5607
- $[27] = t10;
5608
- $[28] = t11;
5609
- $[29] = t12;
5610
- $[30] = t13;
5611
- $[31] = t7;
5612
- $[32] = t8;
5613
- $[33] = t9;
5614
- $[34] = type;
5615
- $[35] = variant;
5616
- $[36] = t14;
5617
- } else t14 = $[36];
5618
- return t14;
5634
+ children: [t15, children]
5635
+ });
5636
+ $[21] = children;
5637
+ $[22] = color;
5638
+ $[23] = ref;
5639
+ $[24] = rest;
5640
+ $[25] = selected;
5641
+ $[26] = size;
5642
+ $[27] = style;
5643
+ $[28] = t10;
5644
+ $[29] = t11;
5645
+ $[30] = t12;
5646
+ $[31] = t13;
5647
+ $[32] = t14;
5648
+ $[33] = t15;
5649
+ $[34] = t8;
5650
+ $[35] = t9;
5651
+ $[36] = type;
5652
+ $[37] = variant;
5653
+ $[38] = t16;
5654
+ } else t16 = $[38];
5655
+ return t16;
5619
5656
  };
5620
5657
  //#endregion
5621
5658
  //#region src/components/ds-button-v3/ds-button-v3.types.ts
5622
5659
  const buttonV3Variants = [
5623
5660
  "primary",
5661
+ "primary-subtle",
5624
5662
  "secondary",
5625
5663
  "tertiary"
5626
5664
  ];
@@ -7317,7 +7355,7 @@ const DsCommentThread = (t0) => {
7317
7355
  const bottomRef = (0, react.useRef)(null);
7318
7356
  let t1;
7319
7357
  if ($[0] !== messages) {
7320
- t1 = messages.find(_temp$12) || messages[0];
7358
+ t1 = messages.find(_temp$13) || messages[0];
7321
7359
  $[0] = messages;
7322
7360
  $[1] = t1;
7323
7361
  } else t1 = $[1];
@@ -7458,7 +7496,7 @@ const DsCommentThread = (t0) => {
7458
7496
  return t22;
7459
7497
  };
7460
7498
  DsCommentThread.displayName = "DsCommentThread";
7461
- function _temp$12(m) {
7499
+ function _temp$13(m) {
7462
7500
  return m.isInitialMessage;
7463
7501
  }
7464
7502
  //#endregion
@@ -8182,7 +8220,7 @@ const DsCommentCard = (t0) => {
8182
8220
  const { numericId, author, createdAt, messages, referenceTag, isActionRequired } = comment;
8183
8221
  let t4;
8184
8222
  if ($[0] !== messages) {
8185
- t4 = messages.find(_temp$11) || messages[0];
8223
+ t4 = messages.find(_temp$12) || messages[0];
8186
8224
  $[0] = messages;
8187
8225
  $[1] = t4;
8188
8226
  } else t4 = $[1];
@@ -8507,7 +8545,7 @@ const DsCommentCard = (t0) => {
8507
8545
  return t34;
8508
8546
  };
8509
8547
  DsCommentCard.displayName = "DsCommentCard";
8510
- function _temp$11(m) {
8548
+ function _temp$12(m) {
8511
8549
  return m.isInitialMessage;
8512
8550
  }
8513
8551
  function _temp2$6(m_0) {
@@ -9020,13 +9058,8 @@ const DsDrawer = Object.assign(DsDrawerRoot, {
9020
9058
  //#region src/components/ds-tag-filter/ds-tag-filter.module.scss
9021
9059
  var ds_tag_filter_module_default = {
9022
9060
  "actionButton": "pHs_ea_actionButton",
9061
+ "actions": "pHs_ea_actions",
9023
9062
  "container": "pHs_ea_container",
9024
- "expanded": "pHs_ea_expanded",
9025
- "ghostButtonContent": "pHs_ea_ghostButtonContent",
9026
- "header": "pHs_ea_header",
9027
- "headerActions": "pHs_ea_headerActions",
9028
- "itemCheckbox": "pHs_ea_itemCheckbox",
9029
- "label": "pHs_ea_label",
9030
9063
  "measurementContainer": "pHs_ea_measurementContainer",
9031
9064
  "tagsArea": "pHs_ea_tagsArea"
9032
9065
  };
@@ -9076,14 +9109,11 @@ function getElementMeasurements(measurementContainer) {
9076
9109
  //#endregion
9077
9110
  //#region src/components/ds-tag-filter/hooks/use-tag-overflow-calculation.ts
9078
9111
  /**
9079
- * Custom hook to calculate how many tags fit in the available container width.
9080
- *
9081
- * Tags occupy the full container width. Non-tag elements (label, clear button,
9082
- * expand control) live in a separate header row and don't affect the calculation.
9112
+ * Custom hook to calculate how many tags fit on the first row of the tags-area.
9083
9113
  */
9084
9114
  const useTagOverflowCalculation = (t0) => {
9085
9115
  const $ = (0, react_compiler_runtime.c)(15);
9086
- const { containerRef, measurementRef, totalItems, expanded } = t0;
9116
+ const { tagsAreaRef, measurementRef, totalItems, expanded } = t0;
9087
9117
  let t1;
9088
9118
  if ($[0] === Symbol.for("react.memo_cache_sentinel")) {
9089
9119
  t1 = {
@@ -9094,10 +9124,10 @@ const useTagOverflowCalculation = (t0) => {
9094
9124
  } else t1 = $[0];
9095
9125
  const [state, setState] = (0, react.useState)(t1);
9096
9126
  let t2;
9097
- if ($[1] !== containerRef || $[2] !== measurementRef) {
9127
+ if ($[1] !== measurementRef || $[2] !== tagsAreaRef) {
9098
9128
  t2 = () => {
9099
- if (!containerRef.current || !measurementRef.current) return;
9100
- const container = containerRef.current;
9129
+ if (!tagsAreaRef.current || !measurementRef.current) return;
9130
+ const tagsArea = tagsAreaRef.current;
9101
9131
  const measurementContainer = measurementRef.current;
9102
9132
  const { tagWidths, gap } = getElementMeasurements(measurementContainer);
9103
9133
  if (tagWidths.length === 0) {
@@ -9107,20 +9137,20 @@ const useTagOverflowCalculation = (t0) => {
9107
9137
  });
9108
9138
  return;
9109
9139
  }
9110
- const { count } = fitTagsInRow(tagWidths, getContainerAvailableWidth(container), gap);
9140
+ const { count } = fitTagsInRow(tagWidths, getContainerAvailableWidth(tagsArea), gap);
9111
9141
  const hasOverflow = count < tagWidths.length;
9112
9142
  setState({
9113
9143
  visibleTagCount: count,
9114
9144
  hasOverflow
9115
9145
  });
9116
9146
  };
9117
- $[1] = containerRef;
9118
- $[2] = measurementRef;
9147
+ $[1] = measurementRef;
9148
+ $[2] = tagsAreaRef;
9119
9149
  $[3] = t2;
9120
9150
  } else t2 = $[3];
9121
9151
  const calculateLayout = t2;
9122
9152
  let t3;
9123
- if ($[4] !== calculateLayout || $[5] !== containerRef) {
9153
+ if ($[4] !== calculateLayout || $[5] !== tagsAreaRef) {
9124
9154
  t3 = () => {
9125
9155
  const rafId = requestAnimationFrame(() => {
9126
9156
  calculateLayout();
@@ -9130,41 +9160,41 @@ const useTagOverflowCalculation = (t0) => {
9130
9160
  calculateLayout();
9131
9161
  });
9132
9162
  });
9133
- if (containerRef.current) resizeObserver.observe(containerRef.current);
9163
+ if (tagsAreaRef.current) resizeObserver.observe(tagsAreaRef.current);
9134
9164
  return () => {
9135
9165
  cancelAnimationFrame(rafId);
9136
9166
  resizeObserver.disconnect();
9137
9167
  };
9138
9168
  };
9139
9169
  $[4] = calculateLayout;
9140
- $[5] = containerRef;
9170
+ $[5] = tagsAreaRef;
9141
9171
  $[6] = t3;
9142
9172
  } else t3 = $[6];
9143
9173
  let t4;
9144
- if ($[7] !== calculateLayout || $[8] !== containerRef || $[9] !== expanded || $[10] !== measurementRef || $[11] !== totalItems) {
9174
+ if ($[7] !== calculateLayout || $[8] !== expanded || $[9] !== measurementRef || $[10] !== tagsAreaRef || $[11] !== totalItems) {
9145
9175
  t4 = [
9146
- containerRef,
9176
+ tagsAreaRef,
9147
9177
  measurementRef,
9148
9178
  totalItems,
9149
9179
  expanded,
9150
9180
  calculateLayout
9151
9181
  ];
9152
9182
  $[7] = calculateLayout;
9153
- $[8] = containerRef;
9154
- $[9] = expanded;
9155
- $[10] = measurementRef;
9183
+ $[8] = expanded;
9184
+ $[9] = measurementRef;
9185
+ $[10] = tagsAreaRef;
9156
9186
  $[11] = totalItems;
9157
9187
  $[12] = t4;
9158
9188
  } else t4 = $[12];
9159
9189
  (0, react.useLayoutEffect)(t3, t4);
9160
9190
  if (expanded) {
9161
9191
  let t5;
9162
- if ($[13] !== totalItems) {
9192
+ if ($[13] !== state) {
9163
9193
  t5 = {
9164
- visibleTagCount: totalItems,
9194
+ ...state,
9165
9195
  hasOverflow: true
9166
9196
  };
9167
- $[13] = totalItems;
9197
+ $[13] = state;
9168
9198
  $[14] = t5;
9169
9199
  } else t5 = $[14];
9170
9200
  return t5;
@@ -9175,13 +9205,9 @@ const useTagOverflowCalculation = (t0) => {
9175
9205
  //#region src/components/ds-tag-filter/ds-tag-filter.tsx
9176
9206
  /**
9177
9207
  * Design system TagFilter component
9178
- *
9179
- * A component for displaying active filters as tags with overflow handling.
9180
- * Non-tag elements (label, expand/collapse, clear) sit in a header row.
9181
- * Tags occupy the full width below, wrapping as needed.
9182
9208
  */
9183
9209
  const DsTagFilter = (t0) => {
9184
- const $ = (0, react_compiler_runtime.c)(62);
9210
+ const $ = (0, react_compiler_runtime.c)(55);
9185
9211
  const { items, locale: t1, className, style, onClearAll, onItemDelete, onItemSelect, onExpand } = t0;
9186
9212
  let t2;
9187
9213
  if ($[0] !== t1) {
@@ -9191,12 +9217,12 @@ const DsTagFilter = (t0) => {
9191
9217
  } else t2 = $[1];
9192
9218
  const locale = t2;
9193
9219
  const [expanded, setExpanded] = (0, react.useState)(false);
9194
- const containerRef = (0, react.useRef)(null);
9220
+ const tagsAreaRef = (0, react.useRef)(null);
9195
9221
  const measurementRef = (0, react.useRef)(null);
9196
9222
  let t3;
9197
9223
  if ($[2] !== expanded || $[3] !== items.length) {
9198
9224
  t3 = {
9199
- containerRef,
9225
+ tagsAreaRef,
9200
9226
  measurementRef,
9201
9227
  totalItems: items.length,
9202
9228
  expanded
@@ -9206,25 +9232,24 @@ const DsTagFilter = (t0) => {
9206
9232
  $[4] = t3;
9207
9233
  } else t3 = $[4];
9208
9234
  const { visibleTagCount, hasOverflow } = useTagOverflowCalculation(t3);
9209
- const { label: t4, clearButton: t5, showMore: t6, showLess: t7 } = locale;
9210
- const label = t4 === void 0 ? "Filtered by:" : t4;
9211
- const clearButton = t5 === void 0 ? "Clear all filters" : t5;
9212
- const showMore = t6 === void 0 ? "Show more" : t6;
9213
- const showLess = t7 === void 0 ? "Show less" : t7;
9214
- let t8;
9235
+ const { clearButton: t4, showMore: t5, showLess: t6 } = locale;
9236
+ const clearButton = t4 === void 0 ? "Clear all filters" : t4;
9237
+ const showMore = t5 === void 0 ? "Show more" : t5;
9238
+ const showLess = t6 === void 0 ? "Show less" : t6;
9239
+ let t7;
9215
9240
  if ($[5] !== expanded || $[6] !== items || $[7] !== visibleTagCount) {
9216
- t8 = expanded ? items : items.slice(0, visibleTagCount);
9241
+ t7 = expanded ? items : items.slice(0, visibleTagCount);
9217
9242
  $[5] = expanded;
9218
9243
  $[6] = items;
9219
9244
  $[7] = visibleTagCount;
9220
- $[8] = t8;
9221
- } else t8 = $[8];
9222
- const visibleTags = t8;
9245
+ $[8] = t7;
9246
+ } else t7 = $[8];
9247
+ const visibleTags = t7;
9223
9248
  const hiddenCount = items.length - visibleTagCount;
9224
9249
  if (items.length === 0) return null;
9225
- let t9;
9250
+ let t8;
9226
9251
  if ($[9] !== onItemDelete || $[10] !== onItemSelect) {
9227
- t9 = (item) => ({
9252
+ t8 = (item) => ({
9228
9253
  ...item.slotProps?.tag,
9229
9254
  label: item.label,
9230
9255
  selected: item.selected,
@@ -9233,180 +9258,159 @@ const DsTagFilter = (t0) => {
9233
9258
  });
9234
9259
  $[9] = onItemDelete;
9235
9260
  $[10] = onItemSelect;
9236
- $[11] = t9;
9237
- } else t9 = $[11];
9238
- const buildTagProps = t9;
9239
- let t10;
9261
+ $[11] = t8;
9262
+ } else t8 = $[11];
9263
+ const buildTagProps = t8;
9264
+ let t9;
9240
9265
  if ($[12] !== buildTagProps) {
9241
- t10 = (item_0) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(DsTag, { ...buildTagProps(item_0) }, item_0.id);
9266
+ t9 = (item_0) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(DsTag, { ...buildTagProps(item_0) }, item_0.id);
9242
9267
  $[12] = buildTagProps;
9243
- $[13] = t10;
9244
- } else t10 = $[13];
9245
- const renderTag = t10;
9246
- let t11;
9268
+ $[13] = t9;
9269
+ } else t9 = $[13];
9270
+ const renderTag = t9;
9271
+ let t10;
9247
9272
  if ($[14] !== expanded || $[15] !== onExpand) {
9248
- t11 = () => {
9273
+ t10 = () => {
9249
9274
  const newExpanded = !expanded;
9250
9275
  setExpanded(newExpanded);
9251
9276
  onExpand?.(newExpanded);
9252
9277
  };
9253
9278
  $[14] = expanded;
9254
9279
  $[15] = onExpand;
9255
- $[16] = t11;
9256
- } else t11 = $[16];
9257
- const handleExpandToggle = t11;
9258
- let t12;
9280
+ $[16] = t10;
9281
+ } else t10 = $[16];
9282
+ const handleExpandToggle = t10;
9283
+ let t11;
9259
9284
  if ($[17] !== buildTagProps || $[18] !== items) {
9260
- let t13;
9285
+ let t12;
9261
9286
  if ($[20] !== buildTagProps) {
9262
- t13 = (item_1) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(DsTag, {
9287
+ t12 = (item_1) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(DsTag, {
9263
9288
  "data-measure-tag": "",
9264
9289
  ...buildTagProps(item_1)
9265
9290
  }, item_1.id);
9266
9291
  $[20] = buildTagProps;
9267
- $[21] = t13;
9268
- } else t13 = $[21];
9269
- t12 = items.map(t13);
9292
+ $[21] = t12;
9293
+ } else t12 = $[21];
9294
+ t11 = items.map(t12);
9270
9295
  $[17] = buildTagProps;
9271
9296
  $[18] = items;
9272
- $[19] = t12;
9273
- } else t12 = $[19];
9274
- let t13;
9275
- if ($[22] !== t12) {
9276
- t13 = /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
9297
+ $[19] = t11;
9298
+ } else t11 = $[19];
9299
+ let t12;
9300
+ if ($[22] !== t11) {
9301
+ t12 = /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
9277
9302
  ref: measurementRef,
9278
9303
  className: ds_tag_filter_module_default.measurementContainer,
9279
9304
  "aria-hidden": "true",
9280
- children: t12
9305
+ children: t11
9281
9306
  });
9282
- $[22] = t12;
9283
- $[23] = t13;
9284
- } else t13 = $[23];
9285
- const measurementContainer = t13;
9286
- const t14 = expanded && ds_tag_filter_module_default.expanded;
9287
- let t15;
9288
- if ($[24] !== className || $[25] !== t14) {
9289
- t15 = (0, classnames.default)(ds_tag_filter_module_default.container, t14, className);
9307
+ $[22] = t11;
9308
+ $[23] = t12;
9309
+ } else t12 = $[23];
9310
+ const measurementContainer = t12;
9311
+ const toggleLabel = expanded ? showLess : showMore;
9312
+ let t13;
9313
+ if ($[24] !== className) {
9314
+ t13 = (0, classnames.default)(ds_tag_filter_module_default.container, className);
9290
9315
  $[24] = className;
9291
- $[25] = t14;
9292
- $[26] = t15;
9293
- } else t15 = $[26];
9316
+ $[25] = t13;
9317
+ } else t13 = $[25];
9318
+ let t14;
9319
+ if ($[26] !== renderTag || $[27] !== visibleTags) {
9320
+ let t15;
9321
+ if ($[29] !== renderTag) {
9322
+ t15 = (item_2) => renderTag(item_2);
9323
+ $[29] = renderTag;
9324
+ $[30] = t15;
9325
+ } else t15 = $[30];
9326
+ t14 = visibleTags.map(t15);
9327
+ $[26] = renderTag;
9328
+ $[27] = visibleTags;
9329
+ $[28] = t14;
9330
+ } else t14 = $[28];
9331
+ let t15;
9332
+ if ($[31] !== t14) {
9333
+ t15 = /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
9334
+ ref: tagsAreaRef,
9335
+ className: ds_tag_filter_module_default.tagsArea,
9336
+ "aria-live": "polite",
9337
+ children: t14
9338
+ });
9339
+ $[31] = t14;
9340
+ $[32] = t15;
9341
+ } else t15 = $[32];
9294
9342
  let t16;
9295
- if ($[27] !== label) {
9296
- t16 = label && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(DsTypography, {
9297
- variant: "body-sm-reg",
9298
- className: ds_tag_filter_module_default.label,
9299
- children: label
9343
+ if ($[33] !== expanded || $[34] !== handleExpandToggle || $[35] !== hasOverflow || $[36] !== hiddenCount || $[37] !== toggleLabel) {
9344
+ t16 = hasOverflow && /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(DsButtonV3, {
9345
+ variant: "tertiary",
9346
+ size: "small",
9347
+ className: ds_tag_filter_module_default.actionButton,
9348
+ "aria-expanded": expanded,
9349
+ onClick: handleExpandToggle,
9350
+ children: [`${toggleLabel} (${String(hiddenCount)})`, /* @__PURE__ */ (0, react_jsx_runtime.jsx)(DsIcon, {
9351
+ icon: expanded ? "keyboard_arrow_up" : "keyboard_arrow_down",
9352
+ size: "tiny",
9353
+ "aria-hidden": true
9354
+ })]
9300
9355
  });
9301
- $[27] = label;
9302
- $[28] = t16;
9303
- } else t16 = $[28];
9356
+ $[33] = expanded;
9357
+ $[34] = handleExpandToggle;
9358
+ $[35] = hasOverflow;
9359
+ $[36] = hiddenCount;
9360
+ $[37] = toggleLabel;
9361
+ $[38] = t16;
9362
+ } else t16 = $[38];
9304
9363
  let t17;
9305
- if ($[29] !== expanded || $[30] !== handleExpandToggle || $[31] !== hasOverflow || $[32] !== hiddenCount || $[33] !== showLess || $[34] !== showMore) {
9306
- t17 = hasOverflow && /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(DsButton, {
9307
- design: "v1.2",
9308
- buttonType: "tertiary",
9309
- variant: "ghost",
9310
- className: ds_tag_filter_module_default.actionButton,
9311
- contentClassName: ds_tag_filter_module_default.ghostButtonContent,
9364
+ if ($[39] !== clearButton || $[40] !== onClearAll) {
9365
+ t17 = onClearAll && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(DsButtonV3, {
9366
+ variant: "tertiary",
9312
9367
  size: "small",
9313
- onClick: handleExpandToggle,
9314
- children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(DsIcon, { icon: expanded ? "keyboard_arrow_up" : "keyboard_arrow_down" }), expanded ? showLess : `${showMore} (${String(hiddenCount)})`]
9315
- });
9316
- $[29] = expanded;
9317
- $[30] = handleExpandToggle;
9318
- $[31] = hasOverflow;
9319
- $[32] = hiddenCount;
9320
- $[33] = showLess;
9321
- $[34] = showMore;
9322
- $[35] = t17;
9323
- } else t17 = $[35];
9324
- let t18;
9325
- if ($[36] !== clearButton || $[37] !== onClearAll) {
9326
- t18 = onClearAll && /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(DsButton, {
9327
- design: "v1.2",
9328
- buttonType: "tertiary",
9329
- variant: "ghost",
9368
+ icon: "close",
9330
9369
  className: ds_tag_filter_module_default.actionButton,
9331
- contentClassName: ds_tag_filter_module_default.ghostButtonContent,
9332
- size: "small",
9333
9370
  onClick: onClearAll,
9334
- children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(DsIcon, { icon: "close" }), clearButton]
9371
+ children: clearButton
9372
+ });
9373
+ $[39] = clearButton;
9374
+ $[40] = onClearAll;
9375
+ $[41] = t17;
9376
+ } else t17 = $[41];
9377
+ let t18;
9378
+ if ($[42] !== t16 || $[43] !== t17) {
9379
+ t18 = /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
9380
+ className: ds_tag_filter_module_default.actions,
9381
+ children: [t16, t17]
9335
9382
  });
9336
- $[36] = clearButton;
9337
- $[37] = onClearAll;
9338
- $[38] = t18;
9339
- } else t18 = $[38];
9383
+ $[42] = t16;
9384
+ $[43] = t17;
9385
+ $[44] = t18;
9386
+ } else t18 = $[44];
9340
9387
  let t19;
9341
- if ($[39] !== t17 || $[40] !== t18) {
9388
+ if ($[45] !== style || $[46] !== t13 || $[47] !== t15 || $[48] !== t18) {
9342
9389
  t19 = /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
9343
- className: ds_tag_filter_module_default.headerActions,
9344
- children: [t17, t18]
9390
+ className: t13,
9391
+ style,
9392
+ children: [t15, t18]
9345
9393
  });
9346
- $[39] = t17;
9347
- $[40] = t18;
9348
- $[41] = t19;
9349
- } else t19 = $[41];
9394
+ $[45] = style;
9395
+ $[46] = t13;
9396
+ $[47] = t15;
9397
+ $[48] = t18;
9398
+ $[49] = t19;
9399
+ } else t19 = $[49];
9350
9400
  let t20;
9351
- if ($[42] !== t16 || $[43] !== t19) {
9352
- t20 = /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
9353
- className: ds_tag_filter_module_default.header,
9354
- children: [t16, t19]
9355
- });
9356
- $[42] = t16;
9357
- $[43] = t19;
9358
- $[44] = t20;
9359
- } else t20 = $[44];
9401
+ if ($[50] !== measurementContainer) {
9402
+ t20 = (0, react_dom.createPortal)(measurementContainer, document.body);
9403
+ $[50] = measurementContainer;
9404
+ $[51] = t20;
9405
+ } else t20 = $[51];
9360
9406
  let t21;
9361
- if ($[45] !== renderTag || $[46] !== visibleTags) {
9362
- let t22;
9363
- if ($[48] !== renderTag) {
9364
- t22 = (item_2) => renderTag(item_2);
9365
- $[48] = renderTag;
9366
- $[49] = t22;
9367
- } else t22 = $[49];
9368
- t21 = visibleTags.map(t22);
9369
- $[45] = renderTag;
9370
- $[46] = visibleTags;
9371
- $[47] = t21;
9372
- } else t21 = $[47];
9373
- let t22;
9374
- if ($[50] !== t21) {
9375
- t22 = /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
9376
- className: ds_tag_filter_module_default.tagsArea,
9377
- children: t21
9378
- });
9379
- $[50] = t21;
9380
- $[51] = t22;
9381
- } else t22 = $[51];
9382
- let t23;
9383
- if ($[52] !== style || $[53] !== t15 || $[54] !== t20 || $[55] !== t22) {
9384
- t23 = /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
9385
- ref: containerRef,
9386
- className: t15,
9387
- style,
9388
- children: [t20, t22]
9389
- });
9390
- $[52] = style;
9391
- $[53] = t15;
9392
- $[54] = t20;
9393
- $[55] = t22;
9394
- $[56] = t23;
9395
- } else t23 = $[56];
9396
- let t24;
9397
- if ($[57] !== measurementContainer) {
9398
- t24 = (0, react_dom.createPortal)(measurementContainer, document.body);
9399
- $[57] = measurementContainer;
9400
- $[58] = t24;
9401
- } else t24 = $[58];
9402
- let t25;
9403
- if ($[59] !== t23 || $[60] !== t24) {
9404
- t25 = /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [t23, t24] });
9405
- $[59] = t23;
9406
- $[60] = t24;
9407
- $[61] = t25;
9408
- } else t25 = $[61];
9409
- return t25;
9407
+ if ($[52] !== t19 || $[53] !== t20) {
9408
+ t21 = /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [t19, t20] });
9409
+ $[52] = t19;
9410
+ $[53] = t20;
9411
+ $[54] = t21;
9412
+ } else t21 = $[54];
9413
+ return t21;
9410
9414
  };
9411
9415
  DsTagFilter.displayName = "DsTagFilter";
9412
9416
  //#endregion
@@ -9955,7 +9959,7 @@ const DsTabsTab = (t0) => {
9955
9959
  })
9956
9960
  }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(DsDropdownMenu.Content, {
9957
9961
  className: ds_tabs_tab_module_default.menuContent,
9958
- children: menuActionItems.map(_temp$10)
9962
+ children: menuActionItems.map(_temp$11)
9959
9963
  })]
9960
9964
  });
9961
9965
  $[17] = handleMenuActionSelect;
@@ -9994,7 +9998,7 @@ const DsTabsTab = (t0) => {
9994
9998
  return t6;
9995
9999
  };
9996
10000
  DsTabsTab.displayName = "DsTabs.Tab";
9997
- function _temp$10(item) {
10001
+ function _temp$11(item) {
9998
10002
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(DsDropdownMenu.Item, {
9999
10003
  value: item.value,
10000
10004
  disabled: item.disabled,
@@ -10521,7 +10525,7 @@ const YearView$1 = () => {
10521
10525
  return t0;
10522
10526
  };
10523
10527
  DsDateInput.displayName = "DsDateInput";
10524
- function _temp$9(weekDay, id) {
10528
+ function _temp$10(weekDay, id) {
10525
10529
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_ark_ui_react_date_picker.DatePicker.TableHeader, {
10526
10530
  className: ds_date_input_module_default.tableHeader,
10527
10531
  children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(DsTypography, {
@@ -10556,7 +10560,7 @@ function _temp4$2(datePicker) {
10556
10560
  className: ds_date_input_module_default.tableHead,
10557
10561
  children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_ark_ui_react_date_picker.DatePicker.TableRow, {
10558
10562
  className: ds_date_input_module_default.tableRow,
10559
- children: datePicker.weekDays.map(_temp$9)
10563
+ children: datePicker.weekDays.map(_temp$10)
10560
10564
  })
10561
10565
  }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_ark_ui_react_date_picker.DatePicker.TableBody, {
10562
10566
  className: ds_date_input_module_default.tableBody,
@@ -11199,7 +11203,7 @@ const DsCommentsDrawer = (t0) => {
11199
11203
  authorsMap.set(comment.author.id, comment.author.name);
11200
11204
  comment.labels?.forEach((label) => labelsSet.add(label));
11201
11205
  });
11202
- availableAuthors = Array.from(authorsMap.entries()).map(_temp$8);
11206
+ availableAuthors = Array.from(authorsMap.entries()).map(_temp$9);
11203
11207
  availableLabels = Array.from(labelsSet);
11204
11208
  let filteredComments = comments;
11205
11209
  if (!showResolved) filteredComments = filteredComments.filter(_temp2$4);
@@ -11552,7 +11556,7 @@ const DsCommentsDrawer = (t0) => {
11552
11556
  return t18;
11553
11557
  };
11554
11558
  DsCommentsDrawer.displayName = "DsCommentsDrawer";
11555
- function _temp$8(t0) {
11559
+ function _temp$9(t0) {
11556
11560
  const [id, name] = t0;
11557
11561
  return {
11558
11562
  id,
@@ -12356,7 +12360,7 @@ const DayView = (t0) => {
12356
12360
  className: calendar_table_module_default.table,
12357
12361
  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, {
12358
12362
  className: calendar_table_module_default.tableRow,
12359
- children: datePicker.weekDays.map(_temp$7)
12363
+ children: datePicker.weekDays.map(_temp$8)
12360
12364
  }) }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_ark_ui_react_date_picker.DatePicker.TableBody, {
12361
12365
  className: calendar_table_module_default.tableBody,
12362
12366
  children: datePicker.weeks.map(_temp3$3)
@@ -12371,7 +12375,7 @@ const DayView = (t0) => {
12371
12375
  } else t1 = $[1];
12372
12376
  return t1;
12373
12377
  };
12374
- function _temp$7(weekDay, idx) {
12378
+ function _temp$8(weekDay, idx) {
12375
12379
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_ark_ui_react_date_picker.DatePicker.TableHeader, {
12376
12380
  className: calendar_table_module_default.tableHeader,
12377
12381
  children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(DsTypography, {
@@ -12415,7 +12419,7 @@ const MonthView = () => {
12415
12419
  } else t0 = $[0];
12416
12420
  return t0;
12417
12421
  };
12418
- function _temp$6(month, monthIdx) {
12422
+ function _temp$7(month, monthIdx) {
12419
12423
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_ark_ui_react_date_picker.DatePicker.TableCell, {
12420
12424
  value: month.value,
12421
12425
  children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_ark_ui_react_date_picker.DatePicker.TableCellTrigger, {
@@ -12430,7 +12434,7 @@ function _temp$6(month, monthIdx) {
12430
12434
  function _temp2$2(months, rowIdx) {
12431
12435
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_ark_ui_react_date_picker.DatePicker.TableRow, {
12432
12436
  className: calendar_table_module_default.tableRow,
12433
- children: months.map(_temp$6)
12437
+ children: months.map(_temp$7)
12434
12438
  }, rowIdx);
12435
12439
  }
12436
12440
  function _temp3$2(datePicker) {
@@ -12462,7 +12466,7 @@ const YearView = () => {
12462
12466
  } else t0 = $[0];
12463
12467
  return t0;
12464
12468
  };
12465
- function _temp$5(year, yearIdx) {
12469
+ function _temp$6(year, yearIdx) {
12466
12470
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_ark_ui_react_date_picker.DatePicker.TableCell, {
12467
12471
  value: year.value,
12468
12472
  children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_ark_ui_react_date_picker.DatePicker.TableCellTrigger, {
@@ -12477,7 +12481,7 @@ function _temp$5(year, yearIdx) {
12477
12481
  function _temp2$1(years, rowIdx) {
12478
12482
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_ark_ui_react_date_picker.DatePicker.TableRow, {
12479
12483
  className: calendar_table_module_default.tableRow,
12480
- children: years.map(_temp$5)
12484
+ children: years.map(_temp$6)
12481
12485
  }, rowIdx);
12482
12486
  }
12483
12487
  function _temp3$1(datePicker) {
@@ -12953,6 +12957,7 @@ var ds_select_module_default = {
12953
12957
  "item": "KdTZ_G_item",
12954
12958
  "itemIcon": "KdTZ_G_itemIcon",
12955
12959
  "itemValue": "KdTZ_G_itemValue",
12960
+ "large": "KdTZ_G_large",
12956
12961
  "multiSelectItemsContainer": "KdTZ_G_multiSelectItemsContainer",
12957
12962
  "searchIcon": "KdTZ_G_searchIcon",
12958
12963
  "searchInput": "KdTZ_G_searchInput",
@@ -13064,7 +13069,7 @@ const SELECT_ALL_OPTION = {
13064
13069
  value: SELECT_ALL_VALUE
13065
13070
  };
13066
13071
  const DsSelect = (t0) => {
13067
- const $ = (0, react_compiler_runtime.c)(29);
13072
+ const $ = (0, react_compiler_runtime.c)(30);
13068
13073
  const { id, options: userOptions, value, style, size, clearable, onClear, onBlur, className, placeholder: t1, disabled, renderOption, ...multiselectProps } = t0;
13069
13074
  const placeholder = t1 === void 0 ? "Click to select a value" : t1;
13070
13075
  const [searchTerm, setSearchTerm] = (0, react.useState)("");
@@ -13072,7 +13077,7 @@ const DsSelect = (t0) => {
13072
13077
  const internalOptions = multiselectProps.multiple ? [SELECT_ALL_OPTION, ...userOptions] : userOptions;
13073
13078
  const collection = (0, _ark_ui_react_select.createListCollection)({
13074
13079
  items: internalOptions,
13075
- itemToValue: _temp$4
13080
+ itemToValue: _temp$5
13076
13081
  });
13077
13082
  let t2;
13078
13083
  if ($[0] !== searchTerm) {
@@ -13134,29 +13139,31 @@ const DsSelect = (t0) => {
13134
13139
  });
13135
13140
  };
13136
13141
  const t4 = size === "small" && ds_select_module_default.small;
13137
- let t5;
13138
- if ($[3] !== className || $[4] !== t4) {
13139
- t5 = (0, classnames.default)(ds_select_module_default.control, t4, className);
13142
+ const t5 = size === "large" && ds_select_module_default.large;
13143
+ let t6;
13144
+ if ($[3] !== className || $[4] !== t4 || $[5] !== t5) {
13145
+ t6 = (0, classnames.default)(ds_select_module_default.control, t4, t5, className);
13140
13146
  $[3] = className;
13141
13147
  $[4] = t4;
13142
13148
  $[5] = t5;
13143
- } else t5 = $[5];
13144
- const t6 = size === "small" ? "small" : "medium";
13145
- let t7;
13146
- if ($[6] !== t6) {
13147
- t7 = /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_ark_ui_react_select.Select.Indicator, {
13149
+ $[6] = t6;
13150
+ } else t6 = $[6];
13151
+ const t7 = size === "small" ? "small" : "medium";
13152
+ let t8;
13153
+ if ($[7] !== t7) {
13154
+ t8 = /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_ark_ui_react_select.Select.Indicator, {
13148
13155
  className: ds_select_module_default.triggerIcon,
13149
13156
  children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(DsIcon, {
13150
13157
  icon: "keyboard_arrow_down",
13151
- size: t6
13158
+ size: t7
13152
13159
  })
13153
13160
  });
13154
- $[6] = t6;
13155
13161
  $[7] = t7;
13156
- } else t7 = $[7];
13157
- let t8;
13158
- if ($[8] !== clearable || $[9] !== onClear || $[10] !== size) {
13159
- t8 = clearable && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_ark_ui_react_select.Select.ClearTrigger, {
13162
+ $[8] = t8;
13163
+ } else t8 = $[8];
13164
+ let t9;
13165
+ if ($[9] !== clearable || $[10] !== onClear || $[11] !== size) {
13166
+ t9 = clearable && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_ark_ui_react_select.Select.ClearTrigger, {
13160
13167
  className: ds_select_module_default.clearIcon,
13161
13168
  onClick: onClear,
13162
13169
  children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(DsIcon, {
@@ -13164,19 +13171,19 @@ const DsSelect = (t0) => {
13164
13171
  size: size === "small" ? "small" : "medium"
13165
13172
  })
13166
13173
  });
13167
- $[8] = clearable;
13168
- $[9] = onClear;
13169
- $[10] = size;
13170
- $[11] = t8;
13171
- } else t8 = $[11];
13174
+ $[9] = clearable;
13175
+ $[10] = onClear;
13176
+ $[11] = size;
13177
+ $[12] = t9;
13178
+ } else t9 = $[12];
13172
13179
  const T0 = _ark_ui_react_portal.Portal;
13173
- const t9 = _ark_ui_react_select.Select;
13174
- const t10 = ds_select_module_default;
13175
- const t11 = _ark_ui_react_select.Select;
13176
- const t12 = ds_select_module_default;
13177
- let t13;
13178
- if ($[12] !== searchTerm || $[13] !== userOptions.length) {
13179
- t13 = userOptions.length > SEARCH_THRESHOLD && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
13180
+ const t10 = _ark_ui_react_select.Select;
13181
+ const t11 = ds_select_module_default;
13182
+ const t12 = _ark_ui_react_select.Select;
13183
+ const t13 = ds_select_module_default;
13184
+ let t14;
13185
+ if ($[13] !== searchTerm || $[14] !== userOptions.length) {
13186
+ t14 = userOptions.length > SEARCH_THRESHOLD && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
13180
13187
  className: ds_select_module_default.searchInput,
13181
13188
  children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(DsTextInput, {
13182
13189
  placeholder: "Search",
@@ -13189,17 +13196,17 @@ const DsSelect = (t0) => {
13189
13196
  }) }
13190
13197
  })
13191
13198
  });
13192
- $[12] = searchTerm;
13193
- $[13] = userOptions.length;
13194
- $[14] = t13;
13195
- } else t13 = $[14];
13196
- const t14 = multiselectProps.multiple && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(SelectItemsChips, {
13199
+ $[13] = searchTerm;
13200
+ $[14] = userOptions.length;
13201
+ $[15] = t14;
13202
+ } else t14 = $[15];
13203
+ const t15 = multiselectProps.multiple && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(SelectItemsChips, {
13197
13204
  onValueChange: multiselectProps.onValueChange,
13198
13205
  showAll: showAllItems,
13199
13206
  onShowAll: () => setShowAllItems(true),
13200
13207
  count: 6
13201
13208
  });
13202
- const t15 = filteredOptions.map((item_0) => {
13209
+ const t16 = filteredOptions.map((item_0) => {
13203
13210
  const checked = getItemCheckedState({
13204
13211
  item: item_0,
13205
13212
  select,
@@ -13223,52 +13230,52 @@ const DsSelect = (t0) => {
13223
13230
  })
13224
13231
  }, collection.getItemValue(item_0));
13225
13232
  });
13226
- let t16;
13227
- if ($[15] !== t11.Content || $[16] !== t12.content || $[17] !== t13 || $[18] !== t14 || $[19] !== t15) {
13228
- t16 = /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(t11.Content, {
13229
- className: t12.content,
13233
+ let t17;
13234
+ if ($[16] !== t12.Content || $[17] !== t13.content || $[18] !== t14 || $[19] !== t15 || $[20] !== t16) {
13235
+ t17 = /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(t12.Content, {
13236
+ className: t13.content,
13230
13237
  children: [
13231
- t13,
13232
13238
  t14,
13233
- t15
13239
+ t15,
13240
+ t16
13234
13241
  ]
13235
13242
  });
13236
- $[15] = t11.Content;
13237
- $[16] = t12.content;
13238
- $[17] = t13;
13243
+ $[16] = t12.Content;
13244
+ $[17] = t13.content;
13239
13245
  $[18] = t14;
13240
13246
  $[19] = t15;
13241
13247
  $[20] = t16;
13242
- } else t16 = $[20];
13243
- let t17;
13244
- if ($[21] !== t10.viewport || $[22] !== t16 || $[23] !== t9.Positioner) {
13245
- t17 = /* @__PURE__ */ (0, react_jsx_runtime.jsx)(t9.Positioner, {
13246
- className: t10.viewport,
13247
- children: t16
13248
+ $[21] = t17;
13249
+ } else t17 = $[21];
13250
+ let t18;
13251
+ if ($[22] !== t10.Positioner || $[23] !== t11.viewport || $[24] !== t17) {
13252
+ t18 = /* @__PURE__ */ (0, react_jsx_runtime.jsx)(t10.Positioner, {
13253
+ className: t11.viewport,
13254
+ children: t17
13248
13255
  });
13249
- $[21] = t10.viewport;
13250
- $[22] = t16;
13251
- $[23] = t9.Positioner;
13256
+ $[22] = t10.Positioner;
13257
+ $[23] = t11.viewport;
13252
13258
  $[24] = t17;
13253
- } else t17 = $[24];
13254
- let t18;
13255
- if ($[25] !== T0 || $[26] !== t17) {
13256
- t18 = /* @__PURE__ */ (0, react_jsx_runtime.jsx)(T0, { children: t17 });
13257
- $[25] = T0;
13258
- $[26] = t17;
13259
- $[27] = t18;
13260
- } else t18 = $[27];
13259
+ $[25] = t18;
13260
+ } else t18 = $[25];
13261
13261
  let t19;
13262
- if ($[28] === Symbol.for("react.memo_cache_sentinel")) {
13263
- t19 = /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_ark_ui_react_select.Select.HiddenSelect, { style: { display: "none" } });
13262
+ if ($[26] !== T0 || $[27] !== t18) {
13263
+ t19 = /* @__PURE__ */ (0, react_jsx_runtime.jsx)(T0, { children: t18 });
13264
+ $[26] = T0;
13265
+ $[27] = t18;
13264
13266
  $[28] = t19;
13265
13267
  } else t19 = $[28];
13268
+ let t20;
13269
+ if ($[29] === Symbol.for("react.memo_cache_sentinel")) {
13270
+ t20 = /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_ark_ui_react_select.Select.HiddenSelect, { style: { display: "none" } });
13271
+ $[29] = t20;
13272
+ } else t20 = $[29];
13266
13273
  return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(_ark_ui_react_select.Select.RootProvider, {
13267
13274
  value: select,
13268
13275
  lazyMount: true,
13269
13276
  children: [
13270
13277
  /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(_ark_ui_react_select.Select.Control, {
13271
- className: t5,
13278
+ className: t6,
13272
13279
  style,
13273
13280
  onBlur,
13274
13281
  onKeyDown: (e) => {
@@ -13284,11 +13291,11 @@ const DsSelect = (t0) => {
13284
13291
  id,
13285
13292
  className: ds_select_module_default.trigger,
13286
13293
  "aria-labelledby": null,
13287
- children: [renderTriggerValue(), t7]
13288
- }), t8]
13294
+ children: [renderTriggerValue(), t8]
13295
+ }), t9]
13289
13296
  }),
13290
- t18,
13291
- t19
13297
+ t19,
13298
+ t20
13292
13299
  ]
13293
13300
  });
13294
13301
  };
@@ -13298,7 +13305,7 @@ function getItemCheckedState({ item, select, options }) {
13298
13305
  return select.hasSelectedItems ? "indeterminate" : false;
13299
13306
  }
13300
13307
  DsSelect.displayName = "DsSelect";
13301
- function _temp$4(item) {
13308
+ function _temp$5(item) {
13302
13309
  return item.value;
13303
13310
  }
13304
13311
  function _temp2(value_0) {
@@ -13320,6 +13327,7 @@ var ds_number_input_module_default = {
13320
13327
  "iconButton": "XMQUTG_iconButton",
13321
13328
  "indicator": "XMQUTG_indicator",
13322
13329
  "input": "XMQUTG_input",
13330
+ "large": "XMQUTG_large",
13323
13331
  "small": "XMQUTG_small",
13324
13332
  "textInputContainer": "XMQUTG_textInputContainer",
13325
13333
  "trigger": "XMQUTG_trigger"
@@ -13485,6 +13493,7 @@ var ds_password_input_module_default = {
13485
13493
  "iconButton": "v5YZUq_iconButton",
13486
13494
  "indicator": "v5YZUq_indicator",
13487
13495
  "input": "v5YZUq_input",
13496
+ "large": "v5YZUq_large",
13488
13497
  "small": "v5YZUq_small",
13489
13498
  "textInputContainer": "v5YZUq_textInputContainer",
13490
13499
  "trigger": "v5YZUq_trigger"
@@ -14554,7 +14563,7 @@ const FileUploadItem = (t0) => {
14554
14563
  } else t20 = $[46];
14555
14564
  let t21;
14556
14565
  if ($[47] !== errors || $[48] !== status) {
14557
- t21 = status === "error" && errors?.length && errors.map(_temp$3);
14566
+ t21 = status === "error" && errors?.length && errors.map(_temp$4);
14558
14567
  $[47] = errors;
14559
14568
  $[48] = status;
14560
14569
  $[49] = t21;
@@ -14597,7 +14606,7 @@ const FileUploadItem = (t0) => {
14597
14606
  } else t23 = $[60];
14598
14607
  return t23;
14599
14608
  };
14600
- function _temp$3(error) {
14609
+ function _temp$4(error) {
14601
14610
  return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
14602
14611
  className: file_upload_item_module_default.errorMessage,
14603
14612
  children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(DsIcon, {
@@ -17374,7 +17383,7 @@ const DsRadioGroupLegacy = (t0) => {
17374
17383
  } else t3 = $[3];
17375
17384
  let t4;
17376
17385
  if ($[4] !== options) {
17377
- t4 = options.map(_temp$2);
17386
+ t4 = options.map(_temp$3);
17378
17387
  $[4] = options;
17379
17388
  $[5] = t4;
17380
17389
  } else t4 = $[5];
@@ -17417,7 +17426,7 @@ const DsRadioGroup = {
17417
17426
  DsRadioGroup.Root.displayName = "DsRadioGroup.Root";
17418
17427
  DsRadioGroup.Item.displayName = "DsRadioGroup.Item";
17419
17428
  DsRadioGroupLegacy.displayName = "DsRadioGroupLegacy";
17420
- function _temp$2(option) {
17429
+ function _temp$3(option) {
17421
17430
  return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(_ark_ui_react_radio_group.RadioGroup.Item, {
17422
17431
  value: option.value,
17423
17432
  disabled: option.disabled,
@@ -17677,7 +17686,7 @@ const useIsOverflowing = (text) => {
17677
17686
  const observer = new ResizeObserver(measure);
17678
17687
  observer.observe(element);
17679
17688
  const frame = requestAnimationFrame(measure);
17680
- document.fonts.ready.then(measure).catch(_temp$1);
17689
+ document.fonts.ready.then(measure).catch(_temp$2);
17681
17690
  document.fonts.addEventListener("loadingdone", measure);
17682
17691
  return () => {
17683
17692
  cancelAnimationFrame(frame);
@@ -17705,7 +17714,7 @@ const useIsOverflowing = (text) => {
17705
17714
  } else t2 = $[4];
17706
17715
  return t2;
17707
17716
  };
17708
- function _temp$1() {}
17717
+ function _temp$2() {}
17709
17718
  //#endregion
17710
17719
  //#region src/components/ds-site-node/ds-site-node.module.scss
17711
17720
  var ds_site_node_module_default = {
@@ -18067,6 +18076,254 @@ DsSkeleton.Text.displayName = "DsSkeleton.Text";
18067
18076
  DsSkeleton.Circle.displayName = "DsSkeleton.Circle";
18068
18077
  DsSkeleton.Rect.displayName = "DsSkeleton.Rect";
18069
18078
  //#endregion
18079
+ //#region src/components/ds-slider/ds-slider.utils.ts
18080
+ /**
18081
+ * Normalizes the public value (a number or a `[min, max]` tuple) into the
18082
+ * `number[]` shape Ark's slider works with. Returns `undefined` when no value
18083
+ * is provided so controlled/uncontrolled detection stays intact.
18084
+ */
18085
+ const toArray = (value) => {
18086
+ if (value === void 0) return;
18087
+ return Array.isArray(value) ? value : [value];
18088
+ };
18089
+ //#endregion
18090
+ //#region src/components/ds-slider/ds-slider.module.scss
18091
+ var ds_slider_module_default = {
18092
+ "control": "_7ZtIQW_control",
18093
+ "header": "_7ZtIQW_header",
18094
+ "large": "_7ZtIQW_large",
18095
+ "range": "_7ZtIQW_range",
18096
+ "root": "_7ZtIQW_root",
18097
+ "small": "_7ZtIQW_small",
18098
+ "thumb": "_7ZtIQW_thumb",
18099
+ "track": "_7ZtIQW_track",
18100
+ "valueText": "_7ZtIQW_valueText"
18101
+ };
18102
+ //#endregion
18103
+ //#region src/components/ds-slider/ds-slider.tsx
18104
+ /**
18105
+ * @summary Selects a numeric value or a numeric interval by dragging thumbs along a track.
18106
+ *
18107
+ * Use for picking a number or interval from a known continuous range where visual
18108
+ * adjustment beats typing (filter ranges, thresholds, capacity limits). For exact
18109
+ * numeric entry use DsNumberInput; for a few discrete options use DsSegmentGroup.
18110
+ */
18111
+ const DsSlider$1 = (t0) => {
18112
+ const $ = (0, react_compiler_runtime.c)(69);
18113
+ const { ref, className, style, label, type: t1, size: t2, min: t3, max: t4, step: t5, value, defaultValue, name, disabled: t6, thumbLabels, formatValue: t7, onValueChange, onValueChangeEnd } = t0;
18114
+ const type = t1 === void 0 ? "value" : t1;
18115
+ const size = t2 === void 0 ? "medium" : t2;
18116
+ const min = t3 === void 0 ? 0 : t3;
18117
+ const max = t4 === void 0 ? 100 : t4;
18118
+ const step = t5 === void 0 ? 1 : t5;
18119
+ const disabled = t6 === void 0 ? false : t6;
18120
+ const formatValue = t7 === void 0 ? String : t7;
18121
+ const isRange = type === "range";
18122
+ let t8;
18123
+ if ($[0] !== value) {
18124
+ t8 = toArray(value);
18125
+ $[0] = value;
18126
+ $[1] = t8;
18127
+ } else t8 = $[1];
18128
+ const controlledValue = t8;
18129
+ let t9;
18130
+ if ($[2] !== isRange || $[3] !== max || $[4] !== min) {
18131
+ t9 = isRange ? [min, max] : [min];
18132
+ $[2] = isRange;
18133
+ $[3] = max;
18134
+ $[4] = min;
18135
+ $[5] = t9;
18136
+ } else t9 = $[5];
18137
+ const fallbackValue = t9;
18138
+ let t10;
18139
+ if ($[6] !== isRange || $[7] !== max || $[8] !== min) {
18140
+ t10 = (next) => isRange ? [next[0] ?? min, next[1] ?? max] : next[0] ?? min;
18141
+ $[6] = isRange;
18142
+ $[7] = max;
18143
+ $[8] = min;
18144
+ $[9] = t10;
18145
+ } else t10 = $[9];
18146
+ const toPublicValue = t10;
18147
+ let t11;
18148
+ if ($[10] !== controlledValue || $[11] !== onValueChange || $[12] !== toPublicValue) {
18149
+ t11 = controlledValue !== void 0 ? (next_0) => onValueChange?.(toPublicValue(next_0)) : void 0;
18150
+ $[10] = controlledValue;
18151
+ $[11] = onValueChange;
18152
+ $[12] = toPublicValue;
18153
+ $[13] = t11;
18154
+ } else t11 = $[13];
18155
+ let t12;
18156
+ if ($[14] !== defaultValue || $[15] !== fallbackValue) {
18157
+ t12 = toArray(defaultValue) ?? fallbackValue;
18158
+ $[14] = defaultValue;
18159
+ $[15] = fallbackValue;
18160
+ $[16] = t12;
18161
+ } else t12 = $[16];
18162
+ const [values, setValues] = useControlled(controlledValue, t11, t12);
18163
+ let t13;
18164
+ if ($[17] !== controlledValue || $[18] !== onValueChange || $[19] !== setValues || $[20] !== toPublicValue) {
18165
+ t13 = (details) => {
18166
+ setValues(details.value);
18167
+ if (controlledValue === void 0) onValueChange?.(toPublicValue(details.value));
18168
+ };
18169
+ $[17] = controlledValue;
18170
+ $[18] = onValueChange;
18171
+ $[19] = setValues;
18172
+ $[20] = toPublicValue;
18173
+ $[21] = t13;
18174
+ } else t13 = $[21];
18175
+ const handleValueChange = t13;
18176
+ let t14;
18177
+ if ($[22] !== formatValue || $[23] !== isRange || $[24] !== max || $[25] !== min || $[26] !== values[0] || $[27] !== values[1]) {
18178
+ t14 = isRange ? `${formatValue(values[0] ?? min)}-${formatValue(values[1] ?? max)}` : formatValue(values[0] ?? min);
18179
+ $[22] = formatValue;
18180
+ $[23] = isRange;
18181
+ $[24] = max;
18182
+ $[25] = min;
18183
+ $[26] = values[0];
18184
+ $[27] = values[1];
18185
+ $[28] = t14;
18186
+ } else t14 = $[28];
18187
+ const valueText = t14;
18188
+ const textColor = disabled ? "disabled" : "main";
18189
+ let t15;
18190
+ if ($[29] !== isRange || $[30] !== label || $[31] !== thumbLabels) {
18191
+ t15 = isRange ? thumbLabels : label ? [label] : thumbLabels;
18192
+ $[29] = isRange;
18193
+ $[30] = label;
18194
+ $[31] = thumbLabels;
18195
+ $[32] = t15;
18196
+ } else t15 = $[32];
18197
+ const thumbAriaLabels = t15;
18198
+ const t16 = size === "small";
18199
+ const t17 = size === "large";
18200
+ let t18;
18201
+ if ($[33] !== className || $[34] !== t16 || $[35] !== t17) {
18202
+ t18 = (0, classnames.default)(ds_slider_module_default.root, {
18203
+ [ds_slider_module_default.small]: t16,
18204
+ [ds_slider_module_default.large]: t17
18205
+ }, className);
18206
+ $[33] = className;
18207
+ $[34] = t16;
18208
+ $[35] = t17;
18209
+ $[36] = t18;
18210
+ } else t18 = $[36];
18211
+ const rootClass = t18;
18212
+ let t19;
18213
+ if ($[37] !== onValueChangeEnd || $[38] !== toPublicValue) {
18214
+ t19 = (details_0) => onValueChangeEnd?.(toPublicValue(details_0.value));
18215
+ $[37] = onValueChangeEnd;
18216
+ $[38] = toPublicValue;
18217
+ $[39] = t19;
18218
+ } else t19 = $[39];
18219
+ let t20;
18220
+ if ($[40] !== label || $[41] !== textColor) {
18221
+ t20 = label && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(DsTypography, {
18222
+ variant: "body-sm-md",
18223
+ color: textColor,
18224
+ children: label
18225
+ });
18226
+ $[40] = label;
18227
+ $[41] = textColor;
18228
+ $[42] = t20;
18229
+ } else t20 = $[42];
18230
+ let t21;
18231
+ if ($[43] !== textColor || $[44] !== valueText) {
18232
+ t21 = /* @__PURE__ */ (0, react_jsx_runtime.jsx)(DsTypography, {
18233
+ variant: "body-sm-md",
18234
+ color: textColor,
18235
+ className: ds_slider_module_default.valueText,
18236
+ children: valueText
18237
+ });
18238
+ $[43] = textColor;
18239
+ $[44] = valueText;
18240
+ $[45] = t21;
18241
+ } else t21 = $[45];
18242
+ let t22;
18243
+ if ($[46] !== t20 || $[47] !== t21) {
18244
+ t22 = /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
18245
+ className: ds_slider_module_default.header,
18246
+ children: [t20, t21]
18247
+ });
18248
+ $[46] = t20;
18249
+ $[47] = t21;
18250
+ $[48] = t22;
18251
+ } else t22 = $[48];
18252
+ let t23;
18253
+ if ($[49] === Symbol.for("react.memo_cache_sentinel")) {
18254
+ t23 = /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_ark_ui_react_slider.Slider.Track, {
18255
+ className: ds_slider_module_default.track,
18256
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_ark_ui_react_slider.Slider.Range, { className: ds_slider_module_default.range })
18257
+ });
18258
+ $[49] = t23;
18259
+ } else t23 = $[49];
18260
+ let t24;
18261
+ if ($[50] !== values) {
18262
+ t24 = values.map(_temp$1);
18263
+ $[50] = values;
18264
+ $[51] = t24;
18265
+ } else t24 = $[51];
18266
+ let t25;
18267
+ if ($[52] !== t24) {
18268
+ t25 = /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(_ark_ui_react_slider.Slider.Control, {
18269
+ className: ds_slider_module_default.control,
18270
+ children: [t23, t24]
18271
+ });
18272
+ $[52] = t24;
18273
+ $[53] = t25;
18274
+ } else t25 = $[53];
18275
+ let t26;
18276
+ if ($[54] !== disabled || $[55] !== handleValueChange || $[56] !== max || $[57] !== min || $[58] !== name || $[59] !== ref || $[60] !== rootClass || $[61] !== step || $[62] !== style || $[63] !== t19 || $[64] !== t22 || $[65] !== t25 || $[66] !== thumbAriaLabels || $[67] !== values) {
18277
+ t26 = /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(_ark_ui_react_slider.Slider.Root, {
18278
+ ref,
18279
+ className: rootClass,
18280
+ style,
18281
+ value: values,
18282
+ min,
18283
+ max,
18284
+ step,
18285
+ name,
18286
+ disabled,
18287
+ "aria-label": thumbAriaLabels,
18288
+ onValueChange: handleValueChange,
18289
+ onValueChangeEnd: t19,
18290
+ children: [t22, t25]
18291
+ });
18292
+ $[54] = disabled;
18293
+ $[55] = handleValueChange;
18294
+ $[56] = max;
18295
+ $[57] = min;
18296
+ $[58] = name;
18297
+ $[59] = ref;
18298
+ $[60] = rootClass;
18299
+ $[61] = step;
18300
+ $[62] = style;
18301
+ $[63] = t19;
18302
+ $[64] = t22;
18303
+ $[65] = t25;
18304
+ $[66] = thumbAriaLabels;
18305
+ $[67] = values;
18306
+ $[68] = t26;
18307
+ } else t26 = $[68];
18308
+ return t26;
18309
+ };
18310
+ DsSlider$1.displayName = "DsSlider";
18311
+ function _temp$1(_, index) {
18312
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_ark_ui_react_slider.Slider.Thumb, {
18313
+ index,
18314
+ className: ds_slider_module_default.thumb,
18315
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_ark_ui_react_slider.Slider.HiddenInput, {})
18316
+ }, index);
18317
+ }
18318
+ //#endregion
18319
+ //#region src/components/ds-slider/index.ts
18320
+ const DsSlider = withResponsiveProps(DsSlider$1, [
18321
+ "size",
18322
+ "step",
18323
+ "thumbLabels"
18324
+ ]);
18325
+ DsSlider.displayName = "DsSlider";
18326
+ //#endregion
18070
18327
  //#region src/components/ds-smart-tabs/ds-smart-tabs.module.scss
18071
18328
  var ds_smart_tabs_module_default = {
18072
18329
  "active": "yjt8Lq_active",
@@ -19971,6 +20228,8 @@ var ds_table_header_module_default = {
19971
20228
  "groupStart": "-2rCNG_groupStart",
19972
20229
  "header": "-2rCNG_header",
19973
20230
  "headerCell": "-2rCNG_headerCell",
20231
+ "headerLabel": "-2rCNG_headerLabel",
20232
+ "headerLabelStack": "-2rCNG_headerLabelStack",
19974
20233
  "headerRow": "-2rCNG_headerRow",
19975
20234
  "headerRowNoBorder": "-2rCNG_headerRowNoBorder",
19976
20235
  "headerRowVirtualized": "-2rCNG_headerRowVirtualized",
@@ -19996,16 +20255,15 @@ var ds_table_shared_module_default = {
19996
20255
  "rotate-90": "WQ6Axa_rotate-90"
19997
20256
  };
19998
20257
  //#endregion
19999
- //#region src/components/ds-table/context/ds-table-context.ts
20000
- const DsTableContext = (0, react.createContext)(null);
20001
- const useDsTableContext = () => {
20002
- const context = (0, react.useContext)(DsTableContext);
20003
- if (!context) throw new Error("useDsTableContext must be used within DsTable");
20004
- return context;
20005
- };
20258
+ //#region src/components/ds-table/hooks/use-editing-state.ts
20259
+ /** Shown when an async `onCellEdit` commit rejects with a non-`Error` reason. */
20260
+ const EDIT_FALLBACK_ERROR = "Save failed";
20261
+ const isThenable = (value) => typeof value === "object" && value !== null && typeof value.then === "function";
20262
+ /** Prefer a thrown `Error`'s message; fall back to a generic string otherwise. */
20263
+ const extractErrorMessage = (reason, fallback) => reason instanceof Error && reason.message ? reason.message : fallback;
20006
20264
  /**
20007
20265
  * Hoisted editing state for single-cell-at-a-time inline editing.
20008
- * Lives on {@link DsTableContext} so cell renderers and editors share one provider.
20266
+ * Surfaced on DsTableContext so cell renderers and editors share one provider.
20009
20267
  */
20010
20268
  const useEditingState = (onCellEdit, onCellValidate) => {
20011
20269
  const [editing, setEditing] = (0, react.useState)(null);
@@ -20015,6 +20273,12 @@ const useEditingState = (onCellEdit, onCellValidate) => {
20015
20273
  onCellValidateRef.current = onCellValidate;
20016
20274
  const editingRef = (0, react.useRef)(editing);
20017
20275
  editingRef.current = editing;
20276
+ const generationRef = (0, react.useRef)(0);
20277
+ const abortRef = (0, react.useRef)(null);
20278
+ const abortPending = (0, react.useCallback)(() => {
20279
+ abortRef.current?.abort();
20280
+ abortRef.current = null;
20281
+ }, []);
20018
20282
  return {
20019
20283
  editing,
20020
20284
  beginEdit: (0, react.useCallback)((cell) => {
@@ -20022,56 +20286,230 @@ const useEditingState = (onCellEdit, onCellValidate) => {
20022
20286
  if (current) {
20023
20287
  if (current.cell.row.id === cell.row.id && current.cell.column.id === cell.column.id) return;
20024
20288
  }
20289
+ abortPending();
20290
+ generationRef.current += 1;
20025
20291
  setEditing({
20026
20292
  cell,
20027
20293
  draftValue: cell.getValue(),
20028
- error: null
20294
+ error: null,
20295
+ pending: false
20029
20296
  });
20030
- }, []),
20297
+ }, [abortPending]),
20031
20298
  setDraft: (0, react.useCallback)((value) => {
20032
20299
  const current = editingRef.current;
20033
20300
  if (!current) return;
20301
+ const error = onCellValidateRef.current?.(current.cell.row.original, current.cell.column.id, value) ?? null;
20034
20302
  setEditing({
20035
20303
  ...current,
20036
20304
  draftValue: value,
20037
- error: null
20305
+ error
20038
20306
  });
20039
20307
  }, []),
20040
20308
  commit: (0, react.useCallback)((overrideValue) => {
20041
20309
  const current = editingRef.current;
20042
- if (!current) return;
20310
+ if (!current || current.pending) return;
20043
20311
  const valueToCommit = overrideValue !== void 0 ? overrideValue : current.draftValue;
20044
- const error = onCellValidateRef.current?.(current.cell.row.original, current.cell.column.id, valueToCommit) ?? null;
20045
- if (error !== null) {
20312
+ const validationError = onCellValidateRef.current?.(current.cell.row.original, current.cell.column.id, valueToCommit) ?? null;
20313
+ if (validationError !== null) {
20046
20314
  setEditing({
20047
20315
  ...current,
20048
20316
  draftValue: valueToCommit,
20049
- error
20317
+ error: validationError,
20318
+ pending: false
20050
20319
  });
20051
20320
  return;
20052
20321
  }
20053
- onCellEditRef.current?.(current.cell.row.original, current.cell.column.id, valueToCommit);
20054
- setEditing(null);
20055
- }, []),
20322
+ generationRef.current += 1;
20323
+ const token = generationRef.current;
20324
+ abortPending();
20325
+ const controller = new AbortController();
20326
+ abortRef.current = controller;
20327
+ const { signal } = controller;
20328
+ const isStale = () => generationRef.current !== token;
20329
+ const settle = () => {
20330
+ if (abortRef.current === controller) abortRef.current = null;
20331
+ };
20332
+ const showError = (error) => {
20333
+ settle();
20334
+ if (isStale()) return;
20335
+ const live = editingRef.current;
20336
+ setEditing(live ? {
20337
+ ...live,
20338
+ draftValue: valueToCommit,
20339
+ error,
20340
+ pending: false
20341
+ } : null);
20342
+ };
20343
+ const editResult = onCellEditRef.current?.(current.cell.row.original, current.cell.column.id, valueToCommit, signal);
20344
+ const applyEditResult = (error) => {
20345
+ if (error !== null) {
20346
+ showError(error);
20347
+ return;
20348
+ }
20349
+ settle();
20350
+ if (isStale()) return;
20351
+ setEditing(null);
20352
+ };
20353
+ if (!isThenable(editResult)) {
20354
+ applyEditResult(editResult ?? null);
20355
+ return;
20356
+ }
20357
+ setEditing({
20358
+ ...current,
20359
+ draftValue: valueToCommit,
20360
+ error: null,
20361
+ pending: true
20362
+ });
20363
+ editResult.then((value) => {
20364
+ applyEditResult(value ?? null);
20365
+ }, (reason) => {
20366
+ applyEditResult(extractErrorMessage(reason, EDIT_FALLBACK_ERROR));
20367
+ });
20368
+ }, [abortPending]),
20056
20369
  cancel: (0, react.useCallback)(() => {
20370
+ abortPending();
20371
+ generationRef.current += 1;
20057
20372
  setEditing(null);
20058
- }, [])
20373
+ }, [abortPending])
20059
20374
  };
20060
20375
  };
20061
20376
  //#endregion
20377
+ //#region src/components/ds-table/context/ds-table-context.tsx
20378
+ const DsTableContext = (0, react.createContext)(null);
20379
+ const useDsTableContext = () => {
20380
+ const context = (0, react.useContext)(DsTableContext);
20381
+ if (!context) throw new Error("useDsTableContext must be used within DsTable");
20382
+ return context;
20383
+ };
20384
+ /**
20385
+ * Assembles {@link DsTableContext} from public table props plus derived grouping
20386
+ * and resize slices. Owns inline-edit state. Picks context fields from
20387
+ * `tableProps` and ignores the rest (`columns`, `data`, etc.).
20388
+ */
20389
+ const DsTableContextProvider = ({ tableProps, derived, children }) => {
20390
+ const { stickyHeader, bordered, fullWidth, rowSize, expandable, selectable, reorderable, showSelectAllCheckbox, loading, onRowClick, onRowDoubleClick, primaryRowActions, secondaryRowActions, renderExpandedRow, virtualized, activeRowId, locale, onCellEdit, onCellValidate } = tableProps;
20391
+ const { collapsedColumnGroups, onToggleColumnGroup } = derived.grouping;
20392
+ const { resizableColumns, resizeSizingReady, resizeContainerRef, onResizeHover, onResizeDragStart, onResizeReset, onResizeKeyboardNudge } = derived.resize;
20393
+ const { editing, beginEdit, setDraft, commit, cancel } = useEditingState(onCellEdit, onCellValidate);
20394
+ const contextValue = (0, react.useMemo)(() => ({
20395
+ stickyHeader,
20396
+ bordered,
20397
+ fullWidth,
20398
+ rowSize,
20399
+ expandable,
20400
+ selectable,
20401
+ reorderable,
20402
+ showSelectAllCheckbox,
20403
+ loading,
20404
+ onRowClick: loading ? void 0 : onRowClick,
20405
+ onRowDoubleClick: loading ? void 0 : onRowDoubleClick,
20406
+ primaryRowActions,
20407
+ secondaryRowActions,
20408
+ renderExpandedRow,
20409
+ virtualized,
20410
+ activeRowId,
20411
+ collapsedColumnGroups,
20412
+ onToggleColumnGroup,
20413
+ locale,
20414
+ onCellEdit,
20415
+ resizableColumns,
20416
+ resizeSizingReady,
20417
+ resizeContainerRef,
20418
+ onResizeHover,
20419
+ onResizeDragStart,
20420
+ onResizeReset,
20421
+ onResizeKeyboardNudge,
20422
+ editing,
20423
+ beginEdit,
20424
+ setDraft,
20425
+ commit,
20426
+ cancel
20427
+ }), [
20428
+ stickyHeader,
20429
+ bordered,
20430
+ fullWidth,
20431
+ rowSize,
20432
+ expandable,
20433
+ selectable,
20434
+ reorderable,
20435
+ showSelectAllCheckbox,
20436
+ loading,
20437
+ onRowClick,
20438
+ onRowDoubleClick,
20439
+ primaryRowActions,
20440
+ secondaryRowActions,
20441
+ renderExpandedRow,
20442
+ virtualized,
20443
+ activeRowId,
20444
+ collapsedColumnGroups,
20445
+ onToggleColumnGroup,
20446
+ locale,
20447
+ onCellEdit,
20448
+ resizableColumns,
20449
+ resizeSizingReady,
20450
+ resizeContainerRef,
20451
+ onResizeHover,
20452
+ onResizeDragStart,
20453
+ onResizeReset,
20454
+ onResizeKeyboardNudge,
20455
+ editing,
20456
+ beginEdit,
20457
+ setDraft,
20458
+ commit,
20459
+ cancel
20460
+ ]);
20461
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(DsTableContext.Provider, {
20462
+ value: contextValue,
20463
+ children
20464
+ });
20465
+ };
20466
+ DsTableContextProvider.displayName = "DsTableContextProvider";
20467
+ /**
20468
+ * Column id used for the synthetic expander column injected when `expandable` is set.
20469
+ */
20470
+ const EXPANDER_COLUMN_ID = "expander";
20471
+ /**
20472
+ * Column id used for the synthetic selection column injected when `selectable` is set.
20473
+ */
20474
+ const SELECT_COLUMN_ID = "select";
20475
+ /**
20476
+ * Column id used for the synthetic reorder column injected when `reorderable` is set
20477
+ * (non-virtualized tables only).
20478
+ */
20479
+ const REORDER_COLUMN_ID = "reorder";
20480
+ /**
20481
+ * Injected utility leaf ids (`select`, `expander`, `reorder`). Present in internal
20482
+ * sizing for layout; omitted from the public `onColumnSizingChange` payload.
20483
+ */
20484
+ const BUILTIN_COLUMN_IDS = Object.freeze(/* @__PURE__ */ new Set([
20485
+ SELECT_COLUMN_ID,
20486
+ EXPANDER_COLUMN_ID,
20487
+ REORDER_COLUMN_ID
20488
+ ]));
20489
+ //#endregion
20062
20490
  //#region src/components/ds-table/utils/column-size.ts
20491
+ const DEFAULT_MAX_COLUMN_SIZE = Number.MAX_SAFE_INTEGER;
20063
20492
  /**
20064
- * Generates the appropriate style object for a table column/cell based on its size
20493
+ * Whether a column should use a fixed width rather than fill (`flex: 1`).
20065
20494
  *
20066
- * Custom-sized columns get a fixed `width` plus `minWidth` and `flexShrink: 0` so
20067
- * they enforce horizontal overflow on the table container. Default-sized columns
20068
- * grow to fill the row evenly via `flex: 1`.
20495
+ * True when the user has resized it (`columnSizing` entry), or when the raw
20496
+ * column def authored `size` (`meta.hasExplicitSize`). TanStack merges a
20497
+ * default size of 150 onto every column, so `columnDef.size` alone cannot
20498
+ * tell authored 150px from an unsized fill column.
20499
+ */
20500
+ const isExplicitColumnWidth = (column, columnSizing) => {
20501
+ if (columnSizing[column.id] !== void 0) return true;
20502
+ return column.columnDef.meta?.hasExplicitSize === true;
20503
+ };
20504
+ /**
20505
+ * Style for a table column/cell based on its size and whether that size is explicit.
20069
20506
  *
20070
- * @param columnSize - The size of the column
20071
- * @returns Style object for the column/cell
20507
+ * Explicit columns get a fixed `width` plus `minWidth` and `flexShrink: 0` so they
20508
+ * enforce horizontal overflow on the table container. Fill columns grow evenly via
20509
+ * `flex: 1`.
20072
20510
  */
20073
- const getColumnSizeStyle = (columnSize) => {
20074
- if (columnSize !== _tanstack_react_table.defaultColumnSizing.size) return {
20511
+ const getColumnSizeStyle = (columnSize, isExplicit) => {
20512
+ if (isExplicit) return {
20075
20513
  width: columnSize,
20076
20514
  minWidth: columnSize,
20077
20515
  flexShrink: 0
@@ -20081,35 +20519,116 @@ const getColumnSizeStyle = (columnSize) => {
20081
20519
  minWidth: 0
20082
20520
  };
20083
20521
  };
20522
+ const getHeaderSizeCssVar = (headerId) => `--header-${headerId}-size`;
20523
+ const getColumnSizeCssVar = (columnId) => `--col-${columnId}-size`;
20084
20524
  /**
20085
- * Column id used for the synthetic expander column injected when `expandable` is set.
20525
+ * Pixel width via a CSS variable on an ancestor, so frozen (memoized) cells still
20526
+ * track live resize without React reconciling each row.
20086
20527
  */
20087
- const EXPANDER_COLUMN_ID = "expander";
20528
+ const getResizableHeaderStyle = (headerId) => ({
20529
+ width: `calc(var(${getHeaderSizeCssVar(headerId)}) * 1px)`,
20530
+ minWidth: `calc(var(${getHeaderSizeCssVar(headerId)}) * 1px)`,
20531
+ flexShrink: 0
20532
+ });
20533
+ const getResizableColumnStyle = (columnId) => ({
20534
+ width: `calc(var(${getColumnSizeCssVar(columnId)}) * 1px)`,
20535
+ minWidth: `calc(var(${getColumnSizeCssVar(columnId)}) * 1px)`,
20536
+ flexShrink: 0
20537
+ });
20538
+ const getHeaderCellSizeStyle = (headerId, columnSize, isExplicit, resizeSizingReady) => {
20539
+ if (resizeSizingReady) return getResizableHeaderStyle(headerId);
20540
+ return getColumnSizeStyle(columnSize, isExplicit);
20541
+ };
20542
+ const getBodyCellSizeStyle = (columnId, columnSize, isExplicit, resizeSizingReady) => {
20543
+ if (resizeSizingReady) return getResizableColumnStyle(columnId);
20544
+ return getColumnSizeStyle(columnSize, isExplicit);
20545
+ };
20088
20546
  /**
20089
- * Column id used for the synthetic selection column injected when `selectable` is set.
20547
+ * TanStack v8 performant-resize map: header ids for header cells, column ids for
20548
+ * body cells. Values are unitless px; consumers use `calc(var(...) * 1px)`.
20090
20549
  */
20091
- const SELECT_COLUMN_ID = "select";
20550
+ const getColumnSizeCssVars = (headers) => {
20551
+ const colSizes = {};
20552
+ for (const header of headers) {
20553
+ colSizes[getHeaderSizeCssVar(header.id)] = header.getSize();
20554
+ colSizes[getColumnSizeCssVar(header.column.id)] = header.column.getSize();
20555
+ }
20556
+ return colSizes;
20557
+ };
20092
20558
  /**
20093
- * Column id used for the synthetic reorder column injected when `reorderable` is set
20094
- * (non-virtualized tables only).
20559
+ * TanStack `getSize()` formula: `min(max(minSize, width), maxSize)`. Defaults
20560
+ * match DsTable (`RESIZE_MIN_COLUMN_WIDTH`, unlimited max).
20095
20561
  */
20096
- const REORDER_COLUMN_ID = "reorder";
20562
+ const clampColumnSize = (width, minSize = 52, maxSize = DEFAULT_MAX_COLUMN_SIZE) => Math.min(Math.max(minSize, width), maxSize);
20563
+ /**
20564
+ * Clamps every finite entry in `sizing` to that leaf's `minSize` / `maxSize`.
20565
+ * Non-finite widths are omitted so they do not poison state. Ids missing from
20566
+ * `columns` use the table defaults.
20567
+ */
20568
+ const clampColumnSizing = (sizing, columns) => {
20569
+ const boundsById = new Map(columns.map((column) => [column.id, column.columnDef]));
20570
+ const next = {};
20571
+ for (const [id, width] of Object.entries(sizing)) {
20572
+ if (!Number.isFinite(width)) continue;
20573
+ const bounds = boundsById.get(id);
20574
+ next[id] = clampColumnSize(width, bounds?.minSize ?? 52, bounds?.maxSize ?? DEFAULT_MAX_COLUMN_SIZE);
20575
+ }
20576
+ return next;
20577
+ };
20578
+ /**
20579
+ * Width to restore on double-click: explicit `columnDef.size`, otherwise the
20580
+ * snapshotted measured width.
20581
+ */
20582
+ const getResizeOriginSize = (column, measuredWidth) => {
20583
+ if (isExplicitColumnWidth(column, {})) return column.columnDef.size;
20584
+ return measuredWidth;
20585
+ };
20586
+ /**
20587
+ * Measured leaf header widths keyed by column id. Group header cells share
20588
+ * `data-column-id` with a different id, so only `leafColumnIds` are read.
20589
+ */
20590
+ const measureLeafHeaderWidths = (tableEl, leafColumnIds) => {
20591
+ const widths = {};
20592
+ for (const id of leafColumnIds) {
20593
+ const cell = tableEl.querySelector(`thead th[data-column-id="${CSS.escape(id)}"]`);
20594
+ if (cell instanceof HTMLElement) widths[id] = cell.getBoundingClientRect().width;
20595
+ }
20596
+ return widths;
20597
+ };
20598
+ /**
20599
+ * Sizing entries for leaves that are not yet in `existing`. Does not overwrite
20600
+ * user-resized (or previously snapshotted) ids.
20601
+ */
20602
+ const collectMissingLeafSizing = (measured, existing) => {
20603
+ const next = {};
20604
+ for (const [id, width] of Object.entries(measured)) if (existing[id] === void 0) next[id] = Math.round(width);
20605
+ return next;
20606
+ };
20607
+ /**
20608
+ * Copy of `columnSizing` without injected utility leaves. Use at the public
20609
+ * `onColumnSizingChange` boundary so consumers persist only their own columns.
20610
+ */
20611
+ const omitBuiltinColumnSizing = (columnSizing) => {
20612
+ const next = {};
20613
+ for (const [id, size] of Object.entries(columnSizing)) if (!BUILTIN_COLUMN_IDS.has(id)) next[id] = size;
20614
+ return next;
20615
+ };
20097
20616
  //#endregion
20098
20617
  //#region src/components/ds-table/grouping/utils/column-group.ts
20099
20618
  /**
20100
20619
  * Builds the flex style for a group header cell so it lines up with the combined
20101
20620
  * width of its visible leaf columns.
20102
20621
  *
20103
- * Fixed-width leaves contribute to `flexBasis`; default-sized leaves each add one
20104
- * unit of `flexGrow`, mirroring how {@link getColumnSizeStyle} sizes leaf cells so
20105
- * both header rows distribute free space identically.
20622
+ * Fixed-width leaves contribute to `flexBasis`; fill leaves each add one unit of
20623
+ * `flexGrow`, mirroring how {@link getColumnSizeStyle} sizes leaf cells so both
20624
+ * header rows distribute free space identically.
20106
20625
  */
20107
- const getGroupColumnSizeStyle = (leafColumns) => {
20626
+ const getGroupColumnSizeStyle = (leafColumns, columnSizing) => {
20108
20627
  let fixedWidth = 0;
20109
20628
  let flexCount = 0;
20110
20629
  for (const leaf of leafColumns) {
20111
20630
  const size = leaf.getSize();
20112
- if (size !== _tanstack_react_table.defaultColumnSizing.size) fixedWidth += size;
20631
+ if (isExplicitColumnWidth(leaf, columnSizing)) fixedWidth += size;
20113
20632
  else flexCount += 1;
20114
20633
  }
20115
20634
  if (flexCount === 0) return {
@@ -20197,12 +20716,156 @@ const useColumnGroups = ({ columns, collapsedColumnGroups, onCollapsedColumnGrou
20197
20716
  */
20198
20717
  const defaultDsTableLocale = Object.freeze({
20199
20718
  collapseColumnGroup: "Collapse column group",
20200
- expandColumnGroup: "Expand column group"
20719
+ expandColumnGroup: "Expand column group",
20720
+ resizeColumn: "Resize column"
20201
20721
  });
20202
20722
  //#endregion
20203
- //#region src/components/ds-table/components/ds-table-group-header-cell/ds-table-group-header-cell.module.scss
20204
- var ds_table_group_header_cell_module_default = {
20205
- "collapseToggle": "HuJ4KG_collapseToggle",
20723
+ //#region src/components/ds-table/components/ds-table-resize-handle/ds-table-resize-handle.module.scss
20724
+ var ds_table_resize_handle_module_default = { "resizeHandle": "vDdhQW_resizeHandle" };
20725
+ //#endregion
20726
+ //#region src/components/ds-table/components/ds-table-resize-handle/ds-table-resize-handle.tsx
20727
+ const clientPointFromEvent = (event) => {
20728
+ if (event instanceof MouseEvent) return {
20729
+ x: event.clientX,
20730
+ y: event.clientY
20731
+ };
20732
+ if (typeof TouchEvent !== "undefined" && event instanceof TouchEvent) {
20733
+ const touch = event.changedTouches[0];
20734
+ return touch ? {
20735
+ x: touch.clientX,
20736
+ y: touch.clientY
20737
+ } : null;
20738
+ }
20739
+ return null;
20740
+ };
20741
+ /**
20742
+ * Handle straddling the right edge of a resizable header cell.
20743
+ *
20744
+ * Drag is TanStack v8 `header.getResizeHandler()`. Hover drives the full-height
20745
+ * overlay; double-click restores snapshot origin widths for this header's
20746
+ * leaves. As a focusable `separator`, Arrow keys nudge the width (Shift for a
20747
+ * larger step) for keyboard operability (WCAG 2.1.1).
20748
+ */
20749
+ const DsTableResizeHandle = ({ header }) => {
20750
+ const { resizeContainerRef, onResizeHover, onResizeDragStart, onResizeReset, onResizeKeyboardNudge, locale } = useDsTableContext();
20751
+ const handleRef = (0, react.useRef)(null);
20752
+ const isPointerOverRef = (0, react.useRef)(false);
20753
+ const detachDragEndRef = (0, react.useRef)(null);
20754
+ (0, react.useEffect)(() => () => {
20755
+ detachDragEndRef.current?.();
20756
+ }, []);
20757
+ const label = {
20758
+ ...defaultDsTableLocale,
20759
+ ...locale
20760
+ }.resizeColumn;
20761
+ const measureCellRightOffset = () => {
20762
+ const containerEl = resizeContainerRef?.current;
20763
+ const cellEl = handleRef.current?.closest("th");
20764
+ if (!containerEl || !cellEl) return null;
20765
+ return cellEl.getBoundingClientRect().right - containerEl.getBoundingClientRect().left + containerEl.scrollLeft;
20766
+ };
20767
+ const reportHover = () => {
20768
+ const offset = measureCellRightOffset();
20769
+ if (offset === null) return;
20770
+ onResizeHover?.(header.column.id, offset);
20771
+ };
20772
+ const clearHover = () => {
20773
+ isPointerOverRef.current = false;
20774
+ onResizeHover?.(null, null);
20775
+ };
20776
+ const syncHoverAtPoint = (clientX, clientY) => {
20777
+ const handleEl = handleRef.current;
20778
+ const hit = (handleEl?.ownerDocument ?? document).elementFromPoint(clientX, clientY);
20779
+ if (handleEl && hit && (hit === handleEl || handleEl.contains(hit))) {
20780
+ isPointerOverRef.current = true;
20781
+ reportHover();
20782
+ return;
20783
+ }
20784
+ clearHover();
20785
+ };
20786
+ const attachDragEndListeners = () => {
20787
+ detachDragEndRef.current?.();
20788
+ const doc = handleRef.current?.ownerDocument ?? document;
20789
+ const onDragEnd = (event) => {
20790
+ detachDragEndRef.current?.();
20791
+ detachDragEndRef.current = null;
20792
+ const point = clientPointFromEvent(event);
20793
+ clearHover();
20794
+ (handleRef.current?.ownerDocument.defaultView ?? window).requestAnimationFrame(() => {
20795
+ if (!point) return;
20796
+ syncHoverAtPoint(point.x, point.y);
20797
+ });
20798
+ };
20799
+ doc.addEventListener("mouseup", onDragEnd);
20800
+ doc.addEventListener("touchend", onDragEnd);
20801
+ detachDragEndRef.current = () => {
20802
+ doc.removeEventListener("mouseup", onDragEnd);
20803
+ doc.removeEventListener("touchend", onDragEnd);
20804
+ };
20805
+ };
20806
+ const handlePointerEnter = () => {
20807
+ isPointerOverRef.current = true;
20808
+ reportHover();
20809
+ };
20810
+ const handlePointerLeave = () => {
20811
+ clearHover();
20812
+ };
20813
+ const startDrag = () => {
20814
+ const offset = measureCellRightOffset();
20815
+ if (offset !== null) onResizeDragStart?.(offset);
20816
+ };
20817
+ const handlePointerDown = (event) => {
20818
+ if (event.pointerType === "touch") return;
20819
+ event.stopPropagation();
20820
+ startDrag();
20821
+ header.getResizeHandler(handleRef.current?.ownerDocument ?? document)(event);
20822
+ attachDragEndListeners();
20823
+ };
20824
+ const handleTouchStart = (event) => {
20825
+ event.stopPropagation();
20826
+ startDrag();
20827
+ header.getResizeHandler(handleRef.current?.ownerDocument ?? document)(event);
20828
+ attachDragEndListeners();
20829
+ };
20830
+ const handleReset = (event) => {
20831
+ event.preventDefault();
20832
+ event.stopPropagation();
20833
+ const leafIds = header.column.getLeafColumns().map((column) => column.id);
20834
+ onResizeReset?.(leafIds);
20835
+ if (isPointerOverRef.current) reportHover();
20836
+ else clearHover();
20837
+ };
20838
+ const handleKeyDown = (event) => {
20839
+ if (event.key !== "ArrowLeft" && event.key !== "ArrowRight") return;
20840
+ event.preventDefault();
20841
+ event.stopPropagation();
20842
+ const step = event.shiftKey ? 40 : 10;
20843
+ const delta = event.key === "ArrowRight" ? step : -step;
20844
+ onResizeKeyboardNudge?.(header.column.id, delta);
20845
+ };
20846
+ const isLeaf = header.subHeaders.length === 0;
20847
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
20848
+ ref: handleRef,
20849
+ role: "separator",
20850
+ "aria-orientation": "vertical",
20851
+ "aria-label": label,
20852
+ tabIndex: 0,
20853
+ "aria-valuenow": Math.round(header.getSize()),
20854
+ "aria-valuemin": isLeaf ? header.column.columnDef.minSize ?? 52 : void 0,
20855
+ className: ds_table_resize_handle_module_default.resizeHandle,
20856
+ onPointerDown: handlePointerDown,
20857
+ onPointerEnter: handlePointerEnter,
20858
+ onPointerLeave: handlePointerLeave,
20859
+ onTouchStart: handleTouchStart,
20860
+ onClick: (event) => event.stopPropagation(),
20861
+ onDoubleClick: handleReset,
20862
+ onKeyDown: handleKeyDown
20863
+ });
20864
+ };
20865
+ //#endregion
20866
+ //#region src/components/ds-table/components/ds-table-group-header-cell/ds-table-group-header-cell.module.scss
20867
+ var ds_table_group_header_cell_module_default = {
20868
+ "collapseToggle": "HuJ4KG_collapseToggle",
20206
20869
  "groupHeaderCell": "HuJ4KG_groupHeaderCell",
20207
20870
  "groupHeaderContent": "HuJ4KG_groupHeaderContent",
20208
20871
  "groupLabel": "HuJ4KG_groupLabel"
@@ -20210,22 +20873,25 @@ var ds_table_group_header_cell_module_default = {
20210
20873
  //#endregion
20211
20874
  //#region src/components/ds-table/components/ds-table-group-header-cell/ds-table-group-header-cell.tsx
20212
20875
  const DsTableGroupHeaderCell = ({ header }) => {
20213
- const { collapsedColumnGroups, onToggleColumnGroup, locale } = useDsTableContext();
20876
+ const { collapsedColumnGroups, onToggleColumnGroup, locale, resizableColumns, resizeSizingReady } = useDsTableContext();
20214
20877
  const groupId = header.column.id;
20215
- const groupStyle = getGroupColumnSizeStyle(header.column.getLeafColumns().filter((leaf) => leaf.getIsVisible()));
20878
+ const visibleLeafColumns = header.column.getLeafColumns().filter((leaf) => leaf.getIsVisible());
20879
+ const groupStyle = resizeSizingReady ? getResizableHeaderStyle(header.id) : getGroupColumnSizeStyle(visibleLeafColumns, {});
20216
20880
  const isCollapsible = header.column.columnDef.meta?.group?.collapsible ?? false;
20217
20881
  const isCollapsed = collapsedColumnGroups?.includes(groupId) ?? false;
20882
+ const canResize = resizableColumns && !isCollapsed && header.column.getCanResize();
20218
20883
  const mergedLocale = {
20219
20884
  ...defaultDsTableLocale,
20220
20885
  ...locale
20221
20886
  };
20222
20887
  const toggleLabel = isCollapsed ? mergedLocale.expandColumnGroup : mergedLocale.collapseColumnGroup;
20223
20888
  const handleToggle = () => onToggleColumnGroup?.(groupId);
20224
- return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(TableHead, {
20889
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(TableHead, {
20890
+ "data-column-id": groupId,
20225
20891
  className: ds_table_group_header_cell_module_default.groupHeaderCell,
20226
20892
  style: groupStyle,
20227
20893
  colSpan: header.colSpan,
20228
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
20894
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
20229
20895
  className: ds_table_group_header_cell_module_default.groupHeaderContent,
20230
20896
  children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
20231
20897
  className: ds_table_group_header_cell_module_default.groupLabel,
@@ -20240,42 +20906,49 @@ const DsTableGroupHeaderCell = ({ header }) => {
20240
20906
  title: toggleLabel,
20241
20907
  onClick: handleToggle
20242
20908
  })]
20243
- })
20909
+ }), canResize && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(DsTableResizeHandle, { header })]
20244
20910
  });
20245
20911
  };
20246
20912
  //#endregion
20247
20913
  //#region src/components/ds-table/components/ds-table-header/ds-table-header.tsx
20248
20914
  const DsTableHeader = ({ table }) => {
20249
- const { bordered, virtualized } = useDsTableContext();
20915
+ const { bordered, virtualized, resizableColumns, resizeSizingReady } = useDsTableContext();
20250
20916
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(TableHeader, {
20251
20917
  className: (0, classnames.default)(ds_table_header_module_default.header, virtualized && ds_table_header_module_default.virtualizedHeader),
20252
20918
  children: table.getHeaderGroups().map((headerGroup) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(TableRow, {
20253
20919
  className: (0, classnames.default)(ds_table_header_module_default.headerRow, !bordered && ds_table_header_module_default.headerRowNoBorder, virtualized && ds_table_header_module_default.headerRowVirtualized),
20254
20920
  children: headerGroup.headers.map((header) => {
20921
+ const columnSizing = table.getState().columnSizing;
20255
20922
  if (header.isPlaceholder) return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(TableHead, {
20256
20923
  className: ds_table_header_module_default.headerCell,
20257
- style: getColumnSizeStyle(header.getSize())
20924
+ style: getHeaderCellSizeStyle(header.id, header.getSize(), isExplicitColumnWidth(header.column, resizeSizingReady ? columnSizing : {}), !!resizeSizingReady)
20258
20925
  }, header.id);
20259
20926
  if (header.subHeaders.length > 0) return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(DsTableGroupHeaderCell, { header }, header.id);
20260
- const headerStyle = getColumnSizeStyle(header.column.getSize());
20927
+ const headerStyle = getHeaderCellSizeStyle(header.id, header.column.getSize(), isExplicitColumnWidth(header.column, resizeSizingReady ? columnSizing : {}), !!resizeSizingReady);
20261
20928
  const canSort = header.column.getCanSort();
20929
+ const canResize = resizableColumns && header.column.getCanResize();
20262
20930
  const isSelectColumn = header.column.id === SELECT_COLUMN_ID;
20263
20931
  const isGroupStart = isFirstLeafColumnOfGroup(header.column);
20264
20932
  const metaFilter = header.column.columnDef.meta?.filter;
20265
20933
  const resolvedFilter = metaFilter && "render" in metaFilter ? metaFilter : void 0;
20266
20934
  const hasActiveColumnFilter = resolvedFilter?.hasActiveFilter ?? false;
20267
- return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(TableHead, {
20935
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(TableHead, {
20936
+ "data-column-id": header.column.id,
20268
20937
  className: (0, classnames.default)(ds_table_header_module_default.headerCell, canSort && ds_table_header_module_default.sortableHeader, isSelectColumn && ds_table_header_module_default.selectHeaderCell, resolvedFilter && ds_table_header_module_default.filterableHeader, hasActiveColumnFilter && ds_table_header_module_default.filterActive, isGroupStart && ds_table_header_module_default.groupStart),
20269
20938
  onClick: header.column.getToggleSortingHandler(),
20270
20939
  style: headerStyle,
20271
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
20940
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
20272
20941
  className: ds_table_header_module_default.headerSortContainer,
20273
20942
  children: [
20274
20943
  /* @__PURE__ */ (0, react_jsx_runtime.jsx)(DsStack, {
20275
20944
  direction: "column",
20276
20945
  justifyContent: "center",
20277
20946
  width: "100%",
20278
- children: (0, _tanstack_react_table.flexRender)(header.column.columnDef.header, header.getContext())
20947
+ className: ds_table_header_module_default.headerLabelStack,
20948
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
20949
+ className: ds_table_header_module_default.headerLabel,
20950
+ children: (0, _tanstack_react_table.flexRender)(header.column.columnDef.header, header.getContext())
20951
+ })
20279
20952
  }),
20280
20953
  canSort && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
20281
20954
  className: ds_table_header_module_default.pageButtonIconContainer,
@@ -20301,13 +20974,29 @@ const DsTableHeader = ({ table }) => {
20301
20974
  })
20302
20975
  })
20303
20976
  ]
20304
- })
20977
+ }), canResize && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(DsTableResizeHandle, { header })]
20305
20978
  }, header.id);
20306
20979
  })
20307
20980
  }, headerGroup.id))
20308
20981
  });
20309
20982
  };
20310
20983
  //#endregion
20984
+ //#region src/components/ds-table/components/ds-table-resize-overlay/ds-table-resize-overlay.module.scss
20985
+ var ds_table_resize_overlay_module_default = { "resizeOverlay": "DO-LLa_resizeOverlay" };
20986
+ //#endregion
20987
+ //#region src/components/ds-table/components/ds-table-resize-overlay/ds-table-resize-overlay.tsx
20988
+ /**
20989
+ * Full-height divider that tracks the active column's right edge during hover
20990
+ * and drag resize.
20991
+ */
20992
+ const DsTableResizeOverlay = ({ offset, phase }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
20993
+ className: ds_table_resize_overlay_module_default.resizeOverlay,
20994
+ style: { left: offset },
20995
+ "data-resize-overlay": true,
20996
+ "data-resize-phase": phase,
20997
+ "aria-hidden": true
20998
+ });
20999
+ //#endregion
20311
21000
  //#region src/components/ds-table/ds-table.module.scss
20312
21001
  var ds_table_module_default = {
20313
21002
  "bulkActionsVisible": "iL9mtW_bulkActionsVisible",
@@ -20322,6 +21011,28 @@ var ds_table_module_default = {
20322
21011
  "virtualizedContainer": "iL9mtW_virtualizedContainer"
20323
21012
  };
20324
21013
  //#endregion
21014
+ //#region src/components/ds-table/ds-table-defaults.ts
21015
+ /**
21016
+ * Applies the documented `DsTable` prop defaults. Call once at the table
21017
+ * boundary so orchestration and context see the same resolved values.
21018
+ */
21019
+ const applyDsTableDefaults = (props) => ({
21020
+ ...props,
21021
+ virtualized: props.virtualized ?? false,
21022
+ stickyHeader: props.stickyHeader ?? true,
21023
+ bordered: props.bordered ?? true,
21024
+ fullWidth: props.fullWidth ?? true,
21025
+ rowSize: props.rowSize ?? "medium",
21026
+ loading: props.loading ?? false,
21027
+ expandable: props.expandable ?? false,
21028
+ selectable: props.selectable ?? false,
21029
+ showSelectAllCheckbox: props.showSelectAllCheckbox ?? true,
21030
+ primaryRowActions: props.primaryRowActions ?? [],
21031
+ actions: props.actions ?? [],
21032
+ reorderable: props.reorderable ?? false,
21033
+ resizableColumns: props.resizableColumns ?? false
21034
+ });
21035
+ //#endregion
20325
21036
  //#region src/components/ds-table/components/edit/ds-table-editable-cell/ds-table-editable-cell.module.scss
20326
21037
  var ds_table_editable_cell_module_default = {
20327
21038
  "editButton": "g5FEoW_editButton",
@@ -20387,12 +21098,16 @@ var ds_table_editing_cell_module_default = {
20387
21098
  //#endregion
20388
21099
  //#region src/components/ds-table/components/edit/ds-table-editing-cell/ds-table-editing-cell.tsx
20389
21100
  const DsTableEditingCell = ({ cell }) => {
20390
- const { commit, cancel } = useDsTableContext();
21101
+ const { commit, cancel, editing } = useDsTableContext();
20391
21102
  const columnDef = cell.column.columnDef;
20392
21103
  const editAnchorRef = (0, react.useRef)(null);
21104
+ const isActiveCell = editing?.cell.id === cell.id;
21105
+ const isPending = isActiveCell && editing.pending;
21106
+ const hasError = isActiveCell && editing.error !== null;
20393
21107
  const handleSubmit = (event) => {
20394
21108
  event.preventDefault();
20395
21109
  event.stopPropagation();
21110
+ if (isPending || hasError) return;
20396
21111
  commit();
20397
21112
  };
20398
21113
  (0, react.useEffect)(() => {
@@ -20444,6 +21159,8 @@ const DsTableEditingCell = ({ cell }) => {
20444
21159
  variant: "tertiary",
20445
21160
  size: "small",
20446
21161
  icon: "check",
21162
+ loading: isPending,
21163
+ disabled: hasError,
20447
21164
  "aria-label": "Confirm edit",
20448
21165
  onClick: (event) => {
20449
21166
  event.stopPropagation();
@@ -20589,7 +21306,7 @@ const DsRowDragHandle = ({ isDragging, attributes, listeners, style }) => {
20589
21306
  });
20590
21307
  };
20591
21308
  const DsTableRow = ({ ref, row, isSelected }) => {
20592
- const { reorderable, onRowClick, onRowDoubleClick, renderExpandedRow, bordered, rowSize, primaryRowActions, secondaryRowActions, activeRowId, loading } = useDsTableContext();
21309
+ const { reorderable, onRowClick, onRowDoubleClick, renderExpandedRow, bordered, rowSize, primaryRowActions, secondaryRowActions, activeRowId, loading, resizeSizingReady } = useDsTableContext();
20593
21310
  const isExpanded = row.getIsExpanded();
20594
21311
  const isActive = activeRowId === row.id;
20595
21312
  const { attributes, listeners, setNodeRef, transform, transition, isDragging } = (0, _dnd_kit_sortable.useSortable)({
@@ -20618,7 +21335,8 @@ const DsTableRow = ({ ref, row, isSelected }) => {
20618
21335
  onClick: () => onRowClick?.(row.original),
20619
21336
  onDoubleClick: () => onRowDoubleClick?.(row.original),
20620
21337
  children: row.getVisibleCells().map((cell, idx) => {
20621
- const cellStyle = getColumnSizeStyle(cell.column.getSize());
21338
+ const columnSizing = cell.getContext().table.getState().columnSizing;
21339
+ const cellStyle = getBodyCellSizeStyle(cell.column.id, cell.column.getSize(), isExplicitColumnWidth(cell.column, resizeSizingReady ? columnSizing : {}), !!resizeSizingReady);
20622
21340
  if (cell.column.id === "reorder") return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(DsRowDragHandle, {
20623
21341
  isDragging,
20624
21342
  attributes,
@@ -20650,56 +21368,6 @@ const DsTableRow = ({ ref, row, isSelected }) => {
20650
21368
  })] });
20651
21369
  };
20652
21370
  //#endregion
20653
- //#region src/components/ds-table/components/ds-table-row-expandable-cell/ds-table-row-expandable-cell.module.scss
20654
- var ds_table_row_expandable_cell_module_default = { "button": "enUIjW_button" };
20655
- //#endregion
20656
- //#region src/components/ds-table/components/ds-table-row-expandable-cell/ds-table-row-expandable-cell.tsx
20657
- const DsTableRowExpandableCell = ({ row, buttonClassName }) => {
20658
- const isExpanded = row.getIsExpanded();
20659
- return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(DsButton, {
20660
- design: "v1.2",
20661
- buttonType: "tertiary",
20662
- size: "small",
20663
- className: (0, classnames.default)(ds_table_row_expandable_cell_module_default.button, buttonClassName),
20664
- onClick: (e) => {
20665
- e.stopPropagation();
20666
- row.toggleExpanded();
20667
- },
20668
- onDoubleClick: (e) => {
20669
- e.stopPropagation();
20670
- },
20671
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(DsIcon, {
20672
- icon: "chevron_right",
20673
- size: "small",
20674
- className: (0, classnames.default)(ds_table_shared_module_default.pageButtonIcon, isExpanded && "rotate-90")
20675
- })
20676
- });
20677
- };
20678
- //#endregion
20679
- //#region src/components/ds-table/components/ds-table-row-selectable-cell/ds-table-row-selectable-cell.tsx
20680
- const DsTableRowSelectableCell = ({ row }) => {
20681
- return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(DsCheckbox, {
20682
- className: ds_table_shared_module_default.checkboxContainer,
20683
- checked: row.getIsSelected(),
20684
- disabled: !row.getCanSelect(),
20685
- onCheckedChange: (checked) => row.toggleSelected(!!checked),
20686
- onClick: (e) => e.stopPropagation(),
20687
- onDoubleClick: (e) => e.stopPropagation()
20688
- });
20689
- };
20690
- //#endregion
20691
- //#region src/components/ds-table/components/ds-table-header-selectable-cell/ds-table-header-selectable-cell.tsx
20692
- const DsTableHeaderSelectableCell = ({ table }) => {
20693
- const checked = table.getIsAllRowsSelected() ? true : table.getIsSomeRowsSelected() ? "indeterminate" : false;
20694
- return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(DsCheckbox, {
20695
- className: ds_table_shared_module_default.checkboxContainer,
20696
- checked,
20697
- onCheckedChange: (nextChecked) => table.toggleAllRowsSelected(!!nextChecked),
20698
- onClick: (e) => e.stopPropagation(),
20699
- onDoubleClick: (e) => e.stopPropagation()
20700
- });
20701
- };
20702
- //#endregion
20703
21371
  //#region src/components/ds-table/hooks/use-drag-and-drop.tsx
20704
21372
  const DragWrapper = ({ children, onDragEnd, sensors }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_dnd_kit_core.DndContext, {
20705
21373
  collisionDetection: _dnd_kit_core.closestCenter,
@@ -20744,6 +21412,201 @@ function useDragAndDrop({ isDragEnabled, onOrderChange, items }) {
20744
21412
  };
20745
21413
  }
20746
21414
  //#endregion
21415
+ //#region src/components/ds-table/hooks/use-column-resize.ts
21416
+ const INITIAL_COLUMN_SIZING_INFO = {
21417
+ startOffset: null,
21418
+ startSize: null,
21419
+ deltaOffset: null,
21420
+ deltaPercentage: null,
21421
+ isResizingColumn: false,
21422
+ columnSizingStart: []
21423
+ };
21424
+ /**
21425
+ * Owns column-resize state, TanStack sizing handlers, origin snapshots, seed
21426
+ * measurement, hover/drag overlay model, and the context slice consumed by
21427
+ * resize handles.
21428
+ *
21429
+ * Call before `useReactTable`, spread `tableOptions` / `state` into it, then
21430
+ * `bind(table)` during render for CSS vars, overlay, and context.
21431
+ */
21432
+ const useColumnResize = ({ enabled, columnSizing: columnSizingProp, onColumnSizingChange, columns, columnVisibility }) => {
21433
+ const [columnResizeState, setColumnResizeState] = (0, react.useState)({
21434
+ columnSizing: {},
21435
+ columnSizingInfo: INITIAL_COLUMN_SIZING_INFO
21436
+ });
21437
+ const { columnSizing: internalColumnSizing, columnSizingInfo } = columnResizeState;
21438
+ const columnSizing = (0, react.useMemo)(() => columnSizingProp ? {
21439
+ ...columnSizingProp,
21440
+ ...internalColumnSizing
21441
+ } : internalColumnSizing, [columnSizingProp, internalColumnSizing]);
21442
+ const [resizeHover, setResizeHover] = (0, react.useState)(null);
21443
+ const dragStartOffsetRef = (0, react.useRef)(null);
21444
+ const resizeOriginSizingRef = (0, react.useRef)({});
21445
+ const containerRef = (0, react.useRef)(null);
21446
+ const tableRef = (0, react.useRef)(null);
21447
+ const columnSizingRef = (0, react.useRef)(columnSizing);
21448
+ columnSizingRef.current = columnSizing;
21449
+ const columnSizingInfoRef = (0, react.useRef)(columnSizingInfo);
21450
+ columnSizingInfoRef.current = columnSizingInfo;
21451
+ const onColumnSizingChangeRef = (0, react.useRef)(onColumnSizingChange);
21452
+ onColumnSizingChangeRef.current = onColumnSizingChange;
21453
+ const leafSizeBoundsRef = (0, react.useRef)([]);
21454
+ const handleColumnSizingChange = (0, react.useCallback)((updaterOrValue) => {
21455
+ const clamped = clampColumnSizing(typeof updaterOrValue === "function" ? updaterOrValue(columnSizingRef.current) : updaterOrValue, leafSizeBoundsRef.current);
21456
+ columnSizingRef.current = clamped;
21457
+ setColumnResizeState((prev) => ({
21458
+ ...prev,
21459
+ columnSizing: clamped
21460
+ }));
21461
+ }, []);
21462
+ const handleColumnSizingInfoChange = (0, react.useCallback)((updaterOrValue) => {
21463
+ const prevInfo = columnSizingInfoRef.current;
21464
+ const nextInfo = typeof updaterOrValue === "function" ? updaterOrValue(prevInfo) : updaterOrValue;
21465
+ const ended = Boolean(prevInfo.isResizingColumn) && nextInfo.isResizingColumn === false;
21466
+ columnSizingInfoRef.current = nextInfo;
21467
+ setColumnResizeState((prev) => ({
21468
+ ...prev,
21469
+ columnSizingInfo: nextInfo
21470
+ }));
21471
+ if (ended) onColumnSizingChangeRef.current?.(omitBuiltinColumnSizing(columnSizingRef.current));
21472
+ }, []);
21473
+ const handleResizeHover = (0, react.useCallback)((columnId, offset) => {
21474
+ setResizeHover(columnId === null || offset === null ? null : {
21475
+ columnId,
21476
+ offset
21477
+ });
21478
+ }, []);
21479
+ const handleResizeDragStart = (0, react.useCallback)((offset) => {
21480
+ dragStartOffsetRef.current = offset;
21481
+ }, []);
21482
+ const handleResizeReset = (0, react.useCallback)((columnIds) => {
21483
+ const next = { ...columnSizingRef.current };
21484
+ for (const id of columnIds) {
21485
+ const origin = resizeOriginSizingRef.current[id];
21486
+ if (origin !== void 0) next[id] = origin;
21487
+ }
21488
+ const clamped = clampColumnSizing(next, leafSizeBoundsRef.current);
21489
+ handleColumnSizingChange(clamped);
21490
+ onColumnSizingChangeRef.current?.(omitBuiltinColumnSizing(clamped));
21491
+ }, [handleColumnSizingChange]);
21492
+ const handleResizeKeyboardNudge = (0, react.useCallback)((columnId, delta) => {
21493
+ const table = tableRef.current;
21494
+ const column = table?.getColumn(columnId);
21495
+ if (!table || !column) return;
21496
+ const leaves = column.getLeafColumns().filter((leaf) => leaf.getIsVisible() && leaf.getCanResize());
21497
+ const totalSize = leaves.reduce((sum, leaf) => sum + leaf.getSize(), 0);
21498
+ if (leaves.length === 0 || totalSize <= 0) return;
21499
+ const next = { ...columnSizingRef.current };
21500
+ for (const leaf of leaves) {
21501
+ const size = leaf.getSize();
21502
+ next[leaf.id] = Math.round(size + delta * (size / totalSize));
21503
+ }
21504
+ const clamped = clampColumnSizing(next, leafSizeBoundsRef.current);
21505
+ handleColumnSizingChange(clamped);
21506
+ onColumnSizingChangeRef.current?.(omitBuiltinColumnSizing(clamped));
21507
+ }, [handleColumnSizingChange]);
21508
+ (0, react.useLayoutEffect)(() => {
21509
+ if (!enabled) return;
21510
+ const container = containerRef.current;
21511
+ const table = tableRef.current;
21512
+ if (!container || !table) return;
21513
+ const seedMissingLeaves = () => {
21514
+ if (container.getBoundingClientRect().width === 0) return false;
21515
+ const tableEl = container.querySelector("table");
21516
+ if (!(tableEl instanceof HTMLElement)) return false;
21517
+ const leaves = table.getVisibleLeafColumns();
21518
+ const measured = measureLeafHeaderWidths(tableEl, leaves.map((column) => column.id));
21519
+ for (const column of leaves) {
21520
+ const measuredWidth = measured[column.id];
21521
+ if (measuredWidth === void 0 || resizeOriginSizingRef.current[column.id] !== void 0) continue;
21522
+ resizeOriginSizingRef.current[column.id] = getResizeOriginSize(column, Math.round(measuredWidth));
21523
+ }
21524
+ const missing = collectMissingLeafSizing(measured, columnSizingRef.current);
21525
+ if (Object.keys(missing).length > 0) handleColumnSizingChange((prev) => ({
21526
+ ...clampColumnSizing(missing, leafSizeBoundsRef.current),
21527
+ ...prev
21528
+ }));
21529
+ return true;
21530
+ };
21531
+ if (seedMissingLeaves()) return;
21532
+ const observer = new ResizeObserver(() => {
21533
+ if (seedMissingLeaves()) observer.disconnect();
21534
+ });
21535
+ observer.observe(container);
21536
+ return () => observer.disconnect();
21537
+ }, [
21538
+ enabled,
21539
+ columns,
21540
+ columnVisibility,
21541
+ handleColumnSizingChange
21542
+ ]);
21543
+ const tableOptions = (0, react.useMemo)(() => ({
21544
+ enableColumnResizing: enabled,
21545
+ columnResizeMode: "onChange",
21546
+ ...enabled ? { defaultColumn: { minSize: 52 } } : {},
21547
+ onColumnSizingChange: handleColumnSizingChange,
21548
+ onColumnSizingInfoChange: handleColumnSizingInfoChange
21549
+ }), [
21550
+ enabled,
21551
+ handleColumnSizingChange,
21552
+ handleColumnSizingInfoChange
21553
+ ]);
21554
+ const bind = (table) => {
21555
+ tableRef.current = table;
21556
+ leafSizeBoundsRef.current = table.getAllLeafColumns();
21557
+ const visibleLeafIds = table.getVisibleLeafColumns().map((column) => column.id);
21558
+ const resizeSizingReady = enabled && visibleLeafIds.length > 0 && visibleLeafIds.every((id) => columnSizing[id] !== void 0);
21559
+ const columnSizeVars = resizeSizingReady ? {
21560
+ ...getColumnSizeCssVars(table.getFlatHeaders()),
21561
+ width: table.getTotalSize()
21562
+ } : void 0;
21563
+ if (!enabled) return {
21564
+ columnSizeVars: void 0,
21565
+ activeResize: null,
21566
+ context: {
21567
+ resizableColumns: false,
21568
+ resizeSizingReady: false,
21569
+ resizeContainerRef: containerRef,
21570
+ onResizeHover: handleResizeHover,
21571
+ onResizeDragStart: handleResizeDragStart,
21572
+ onResizeReset: handleResizeReset,
21573
+ onResizeKeyboardNudge: handleResizeKeyboardNudge
21574
+ }
21575
+ };
21576
+ const isResizingColumn = columnSizingInfo.isResizingColumn;
21577
+ const resizingHeader = typeof isResizingColumn === "string" ? table.getFlatHeaders().find((header) => header.column.id === isResizingColumn) : void 0;
21578
+ const startSize = columnSizingInfo.startSize;
21579
+ const clampedResizeDelta = resizingHeader && startSize !== null ? resizingHeader.getSize() - startSize : columnSizingInfo.deltaOffset ?? 0;
21580
+ return {
21581
+ columnSizeVars,
21582
+ activeResize: isResizingColumn && dragStartOffsetRef.current !== null ? {
21583
+ offset: dragStartOffsetRef.current + clampedResizeDelta,
21584
+ phase: "dragging"
21585
+ } : resizeHover ? {
21586
+ offset: resizeHover.offset,
21587
+ phase: "hover"
21588
+ } : null,
21589
+ context: {
21590
+ resizableColumns: enabled,
21591
+ resizeSizingReady,
21592
+ resizeContainerRef: containerRef,
21593
+ onResizeHover: handleResizeHover,
21594
+ onResizeDragStart: handleResizeDragStart,
21595
+ onResizeReset: handleResizeReset,
21596
+ onResizeKeyboardNudge: handleResizeKeyboardNudge
21597
+ }
21598
+ };
21599
+ };
21600
+ return {
21601
+ tableOptions,
21602
+ state: {
21603
+ columnSizing,
21604
+ columnSizingInfo
21605
+ },
21606
+ bind
21607
+ };
21608
+ };
21609
+ //#endregion
20747
21610
  //#region src/components/ds-table/components/ds-table-body-virtualized/ds-table-body-virtualized.module.scss
20748
21611
  var ds_table_body_virtualized_module_default = {
20749
21612
  "body": "vRRk8q_body",
@@ -20773,7 +21636,7 @@ var ds_table_row_virtualized_module_default = {
20773
21636
  //#endregion
20774
21637
  //#region src/components/ds-table/components/ds-table-row-virtualized/ds-table-row-virtualized.tsx
20775
21638
  const DsTableRowVirtualized = ({ row, isSelected, rowsMapRef, rowHeightsMapRef, rowVirtualizer, virtualRow, isExpandedRowContent }) => {
20776
- const { bordered, rowSize, activeRowId, primaryRowActions, secondaryRowActions, renderExpandedRow, onRowClick, onRowDoubleClick, loading } = useDsTableContext();
21639
+ const { bordered, rowSize, activeRowId, primaryRowActions, secondaryRowActions, renderExpandedRow, onRowClick, onRowDoubleClick, loading, resizeSizingReady } = useDsTableContext();
20777
21640
  const isExpanded = row.getIsExpanded();
20778
21641
  const isActive = activeRowId === row.id;
20779
21642
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(TableRow, {
@@ -20797,8 +21660,9 @@ const DsTableRowVirtualized = ({ row, isSelected, rowsMapRef, rowHeightsMapRef,
20797
21660
  onDoubleClick: isExpandedRowContent ? void 0 : () => onRowDoubleClick?.(row.original),
20798
21661
  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) => {
20799
21662
  const isLastColumn = idx === row.getVisibleCells().length - 1;
21663
+ const columnSizing = cell.getContext().table.getState().columnSizing;
20800
21664
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(TableCell, {
20801
- style: getColumnSizeStyle(cell.column.getSize()),
21665
+ style: getBodyCellSizeStyle(cell.column.id, cell.column.getSize(), isExplicitColumnWidth(cell.column, resizeSizingReady ? columnSizing : {}), !!resizeSizingReady),
20802
21666
  className: (0, classnames.default)(ds_table_row_virtualized_module_default.cell, cell.column.id === "expander" && ds_table_row_virtualized_module_default.expandableCell, cell.column.id === "select" && ds_table_row_virtualized_module_default.selectableCell, isFirstLeafColumnOfGroup(cell.column) && ds_table_row_virtualized_module_default.groupStart, typeof cell.column.columnDef.editCell === "function" && ds_table_row_virtualized_module_default.editableCell),
20803
21667
  children: isLastColumn ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(DsTableCell, {
20804
21668
  row,
@@ -20937,6 +21801,194 @@ function DsTableBody({ ref, rowVirtualizer, rowsMapRef, rowHeightsMapRef, rowsAn
20937
21801
  });
20938
21802
  }
20939
21803
  //#endregion
21804
+ //#region src/components/ds-table/components/ds-table-header-selectable-cell/ds-table-header-selectable-cell.tsx
21805
+ const DsTableHeaderSelectableCell = ({ table }) => {
21806
+ const checked = table.getIsAllRowsSelected() ? true : table.getIsSomeRowsSelected() ? "indeterminate" : false;
21807
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(DsCheckbox, {
21808
+ className: ds_table_shared_module_default.checkboxContainer,
21809
+ checked,
21810
+ onCheckedChange: (nextChecked) => table.toggleAllRowsSelected(!!nextChecked),
21811
+ onClick: (e) => e.stopPropagation(),
21812
+ onDoubleClick: (e) => e.stopPropagation()
21813
+ });
21814
+ };
21815
+ //#endregion
21816
+ //#region src/components/ds-table/components/ds-table-row-expandable-cell/ds-table-row-expandable-cell.module.scss
21817
+ var ds_table_row_expandable_cell_module_default = { "button": "enUIjW_button" };
21818
+ //#endregion
21819
+ //#region src/components/ds-table/components/ds-table-row-expandable-cell/ds-table-row-expandable-cell.tsx
21820
+ const DsTableRowExpandableCell = ({ row, buttonClassName }) => {
21821
+ const isExpanded = row.getIsExpanded();
21822
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(DsButton, {
21823
+ design: "v1.2",
21824
+ buttonType: "tertiary",
21825
+ size: "small",
21826
+ className: (0, classnames.default)(ds_table_row_expandable_cell_module_default.button, buttonClassName),
21827
+ onClick: (e) => {
21828
+ e.stopPropagation();
21829
+ row.toggleExpanded();
21830
+ },
21831
+ onDoubleClick: (e) => {
21832
+ e.stopPropagation();
21833
+ },
21834
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(DsIcon, {
21835
+ icon: "chevron_right",
21836
+ size: "small",
21837
+ className: (0, classnames.default)(ds_table_shared_module_default.pageButtonIcon, isExpanded && "rotate-90")
21838
+ })
21839
+ });
21840
+ };
21841
+ //#endregion
21842
+ //#region src/components/ds-table/components/ds-table-row-selectable-cell/ds-table-row-selectable-cell.tsx
21843
+ const DsTableRowSelectableCell = ({ row }) => {
21844
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(DsCheckbox, {
21845
+ className: ds_table_shared_module_default.checkboxContainer,
21846
+ checked: row.getIsSelected(),
21847
+ disabled: !row.getCanSelect(),
21848
+ onCheckedChange: (checked) => row.toggleSelected(!!checked),
21849
+ onClick: (e) => e.stopPropagation(),
21850
+ onDoubleClick: (e) => e.stopPropagation()
21851
+ });
21852
+ };
21853
+ //#endregion
21854
+ //#region src/components/ds-table/utils/table-columns.tsx
21855
+ const EXPLICIT_SIZE_META = { hasExplicitSize: true };
21856
+ /**
21857
+ * Clones leaf defs that authored `size` so `meta.hasExplicitSize` survives
21858
+ * TanStack’s default-size merge. Group defs are cloned only to recurse;
21859
+ * unsized leaves are returned as-is.
21860
+ */
21861
+ const stampExplicitSize = (columns) => columns.map((column) => {
21862
+ if ("columns" in column && column.columns) return {
21863
+ ...column,
21864
+ columns: stampExplicitSize(column.columns)
21865
+ };
21866
+ if (column.size === void 0) return column;
21867
+ return {
21868
+ ...column,
21869
+ meta: {
21870
+ ...column.meta,
21871
+ ...EXPLICIT_SIZE_META
21872
+ }
21873
+ };
21874
+ });
21875
+ /**
21876
+ * Prepends the builtin select / expander / reorder columns when those features
21877
+ * are on. Reorder is omitted for virtualized tables. Unshift order yields
21878
+ * visual order: reorder, expander, select, then consumer columns.
21879
+ */
21880
+ const getAugmentedColumns = (columns, { selectable, expandable, reorderable, virtualized, showSelectAllCheckbox }) => {
21881
+ const augmentedColumns = stampExplicitSize(columns);
21882
+ if (selectable) augmentedColumns.unshift({
21883
+ id: SELECT_COLUMN_ID,
21884
+ size: 36,
21885
+ minSize: 36,
21886
+ maxSize: 36,
21887
+ enableSorting: false,
21888
+ enableResizing: false,
21889
+ meta: EXPLICIT_SIZE_META,
21890
+ header: ({ table }) => showSelectAllCheckbox ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(DsTableHeaderSelectableCell, { table }) : null,
21891
+ cell: ({ row }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(DsTableRowSelectableCell, { row })
21892
+ });
21893
+ if (expandable) augmentedColumns.unshift({
21894
+ id: EXPANDER_COLUMN_ID,
21895
+ size: 36,
21896
+ minSize: 36,
21897
+ maxSize: 36,
21898
+ enableSorting: false,
21899
+ enableResizing: false,
21900
+ meta: EXPLICIT_SIZE_META,
21901
+ header: () => null,
21902
+ cell: ({ row }) => row.getCanExpand() ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(DsTableRowExpandableCell, { row }) : null
21903
+ });
21904
+ if (reorderable && !virtualized) augmentedColumns.unshift({
21905
+ id: REORDER_COLUMN_ID,
21906
+ size: 60,
21907
+ minSize: 60,
21908
+ maxSize: 60,
21909
+ enableSorting: false,
21910
+ enableResizing: false,
21911
+ meta: EXPLICIT_SIZE_META,
21912
+ header: "Order",
21913
+ cell: () => null
21914
+ });
21915
+ return augmentedColumns;
21916
+ };
21917
+ /**
21918
+ * Replaces each leaf `cell` with `loadingCell` (or a default text skeleton).
21919
+ * Group columns are cloned with the same transform applied to their children.
21920
+ */
21921
+ const toSkeletonColumns = (columns) => columns.map((column) => "columns" in column && column.columns ? {
21922
+ ...column,
21923
+ columns: toSkeletonColumns(column.columns)
21924
+ } : {
21925
+ ...column,
21926
+ cell: column.loadingCell ?? (() => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(DsSkeletonText, { width: "60%" }))
21927
+ });
21928
+ const createSkeletonRows = () => Array.from({ length: 5 }, (_, i) => ({ id: `ds-table-skeleton-${String(i)}` }));
21929
+ //#endregion
21930
+ //#region src/components/ds-table/utils/table-api.ts
21931
+ const createTableApi = (table) => ({
21932
+ selectRow: (rowId) => {
21933
+ table.getRow(rowId).toggleSelected(true);
21934
+ },
21935
+ deselectRow: (rowId) => {
21936
+ table.getRow(rowId).toggleSelected(false);
21937
+ },
21938
+ selectAllRows: () => {
21939
+ table.toggleAllRowsSelected(true);
21940
+ },
21941
+ deselectAllRows: () => {
21942
+ table.toggleAllRowsSelected(false);
21943
+ },
21944
+ selectRows: (rowIds) => {
21945
+ const selection = {};
21946
+ rowIds.forEach((id) => selection[id] = true);
21947
+ table.setRowSelection(selection);
21948
+ },
21949
+ getSelectedRows: () => {
21950
+ return table.getFilteredSelectedRowModel().rows.map((r) => r.original);
21951
+ },
21952
+ expandRow: (rowId) => {
21953
+ table.getRow(rowId).toggleExpanded(true);
21954
+ },
21955
+ collapseRow: (rowId) => {
21956
+ table.getRow(rowId).toggleExpanded(false);
21957
+ },
21958
+ expandAllRows: () => {
21959
+ table.toggleAllRowsExpanded(true);
21960
+ },
21961
+ collapseAllRows: () => {
21962
+ table.toggleAllRowsExpanded(false);
21963
+ },
21964
+ expandRows: (rowIds) => {
21965
+ const expansion = {};
21966
+ rowIds.forEach((id) => expansion[id] = true);
21967
+ table.setExpanded(expansion);
21968
+ }
21969
+ });
21970
+ //#endregion
21971
+ //#region src/components/ds-table/utils/frozen-body.ts
21972
+ /**
21973
+ * `React.memo` comparator for the table body during a column-resize drag.
21974
+ *
21975
+ * While a column is being resized, sizing is applied through CSS variables on
21976
+ * the table element, so body rows do not need to re-render — freezing them keeps
21977
+ * dragging smooth. `table` is a stable mutable instance (ref-equal across
21978
+ * renders), so comparing it is meaningless and it is skipped; every other prop
21979
+ * must be referentially unchanged to freeze. That way parent-driven updates mid-
21980
+ * drag (`rowSelection`, `emptyState`, `onScroll`, `infiniteScroll`, ...) are not
21981
+ * dropped.
21982
+ */
21983
+ const areBodiesFrozen = (prev, next) => {
21984
+ if (!next.table.getState().columnSizingInfo.isResizingColumn) return false;
21985
+ const prevProps = prev;
21986
+ const nextProps = next;
21987
+ const keys = /* @__PURE__ */ new Set([...Object.keys(prevProps), ...Object.keys(nextProps)]);
21988
+ for (const key of keys) if (key !== "table" && prevProps[key] !== nextProps[key]) return false;
21989
+ return true;
21990
+ };
21991
+ //#endregion
20940
21992
  //#region src/components/ds-table/ds-table.tsx
20941
21993
  const ROW_SIZE_HEIGHT_MAP = {
20942
21994
  small: 36,
@@ -20946,7 +21998,9 @@ const ROW_SIZE_HEIGHT_MAP = {
20946
21998
  /**
20947
21999
  * Design system Table component
20948
22000
  */
20949
- const DsTable = ({ ref, columns: columnsProp, data: tableData, controls, 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 }) => {
22001
+ const DsTable = (props) => {
22002
+ const tableProps = applyDsTableDefaults(props);
22003
+ const { ref, columns: columnsProp, data: tableData, controls, virtualized, virtualizedOptions, className, emptyState, bordered, fullWidth, rowSize, loading, expandable, selectable, showSelectAllCheckbox, onSelectionChange, onSortingChange, onScroll, actions, reorderable, onOrderChange, columnFilters: externalColumnFilters, onColumnFiltersChange, columnVisibility: externalColumnVisibility, onColumnVisibilityChange, collapsedColumnGroups: externalCollapsedColumnGroups, onCollapsedColumnGroupsChange, infiniteScroll, resizableColumns, columnSizing, onColumnSizingChange } = tableProps;
20950
22004
  const [data, setData] = react.useState(tableData);
20951
22005
  const [sorting, setSorting] = react.useState([]);
20952
22006
  const [internalColumnFilters, setInternalColumnFilters] = react.useState([]);
@@ -20960,7 +22014,6 @@ const DsTable = ({ ref, columns: columnsProp, data: tableData, controls, virtual
20960
22014
  },
20961
22015
  items: data
20962
22016
  });
20963
- const tableContainerRef = react.useRef(null);
20964
22017
  const columnFilters = externalColumnFilters ?? internalColumnFilters;
20965
22018
  const handleColumnFiltersChange = (updaterOrValue) => {
20966
22019
  const newFilters = typeof updaterOrValue === "function" ? updaterOrValue(columnFilters) : updaterOrValue;
@@ -20992,63 +22045,31 @@ const DsTable = ({ ref, columns: columnsProp, data: tableData, controls, virtual
20992
22045
  setRowSelection(newRowSelection);
20993
22046
  onSelectionChange?.(newRowSelection);
20994
22047
  };
20995
- const hasExpanderColumn = !!expandable;
20996
- const hasSelectColumn = !!selectable;
20997
- const hasReorderColumn = reorderable && !virtualized;
20998
- const columns = (0, react.useMemo)(() => {
20999
- const augmentedColumns = [...columnsProp];
21000
- if (hasSelectColumn) {
21001
- const selectColumn = {
21002
- id: SELECT_COLUMN_ID,
21003
- size: 36,
21004
- enableSorting: false,
21005
- enableResizing: false,
21006
- header: ({ table }) => showSelectAllCheckbox ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(DsTableHeaderSelectableCell, { table }) : null,
21007
- cell: ({ row }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(DsTableRowSelectableCell, { row })
21008
- };
21009
- augmentedColumns.unshift(selectColumn);
21010
- }
21011
- if (hasExpanderColumn) {
21012
- const expanderColumn = {
21013
- id: EXPANDER_COLUMN_ID,
21014
- size: 36,
21015
- enableSorting: false,
21016
- enableResizing: false,
21017
- header: () => null,
21018
- cell: ({ row }) => row.getCanExpand() ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(DsTableRowExpandableCell, { row }) : null
21019
- };
21020
- augmentedColumns.unshift(expanderColumn);
21021
- }
21022
- if (hasReorderColumn) {
21023
- const reorderColumn = {
21024
- id: REORDER_COLUMN_ID,
21025
- size: 60,
21026
- enableSorting: false,
21027
- enableResizing: false,
21028
- header: "Order",
21029
- cell: () => null
21030
- };
21031
- augmentedColumns.unshift(reorderColumn);
21032
- }
21033
- return augmentedColumns;
21034
- }, [
22048
+ const hasSelectColumn = Boolean(selectable);
22049
+ const hasExpanderColumn = Boolean(expandable);
22050
+ const columns = (0, react.useMemo)(() => getAugmentedColumns(columnsProp, {
22051
+ selectable: hasSelectColumn,
22052
+ expandable: hasExpanderColumn,
22053
+ reorderable,
22054
+ virtualized,
22055
+ showSelectAllCheckbox
22056
+ }), [
21035
22057
  columnsProp,
21036
- hasExpanderColumn,
21037
- hasReorderColumn,
21038
22058
  hasSelectColumn,
22059
+ hasExpanderColumn,
22060
+ reorderable,
22061
+ virtualized,
21039
22062
  showSelectAllCheckbox
21040
22063
  ]);
21041
- const skeletonColumns = (0, react.useMemo)(() => {
21042
- const toSkeleton = (cols) => cols.map((column) => "columns" in column && column.columns ? {
21043
- ...column,
21044
- columns: toSkeleton(column.columns)
21045
- } : {
21046
- ...column,
21047
- cell: column.loadingCell ?? (() => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(DsSkeletonText, { width: "60%" }))
21048
- });
21049
- return toSkeleton(columns);
21050
- }, [columns]);
21051
- const skeletonData = (0, react.useMemo)(() => Array.from({ length: 5 }, (_, i) => ({ id: `ds-table-skeleton-${String(i)}` })), []);
22064
+ const skeletonColumns = (0, react.useMemo)(() => toSkeletonColumns(columns), [columns]);
22065
+ const skeletonData = (0, react.useMemo)(() => createSkeletonRows(), []);
22066
+ const resize = useColumnResize({
22067
+ enabled: resizableColumns,
22068
+ columnSizing,
22069
+ onColumnSizingChange,
22070
+ columns,
22071
+ columnVisibility
22072
+ });
21052
22073
  const table = (0, _tanstack_react_table.useReactTable)({
21053
22074
  data: loading ? skeletonData : reorderable ? data : tableData,
21054
22075
  columns: loading ? skeletonColumns : columns,
@@ -21062,87 +22083,30 @@ const DsTable = ({ ref, columns: columnsProp, data: tableData, controls, virtual
21062
22083
  getRowId: (row) => row.id,
21063
22084
  getExpandedRowModel: (0, _tanstack_react_table.getExpandedRowModel)(),
21064
22085
  getRowCanExpand: typeof expandable === "function" ? (row) => expandable(row.original) : () => expandable,
22086
+ ...resize.tableOptions,
21065
22087
  state: {
21066
22088
  sorting,
21067
22089
  columnFilters,
21068
22090
  columnVisibility,
21069
- rowSelection
22091
+ rowSelection,
22092
+ ...resize.state
21070
22093
  },
21071
22094
  enableRowSelection: typeof selectable === "function" ? (row) => selectable(row.original) : selectable
21072
22095
  });
21073
- (0, react.useImperativeHandle)(ref, () => ({
21074
- selectRow: (rowId) => {
21075
- table.getRow(rowId).toggleSelected(true);
21076
- },
21077
- deselectRow: (rowId) => {
21078
- table.getRow(rowId).toggleSelected(false);
21079
- },
21080
- selectAllRows: () => {
21081
- table.toggleAllRowsSelected(true);
21082
- },
21083
- deselectAllRows: () => {
21084
- table.toggleAllRowsSelected(false);
21085
- },
21086
- selectRows: (rowIds) => {
21087
- const selection = {};
21088
- rowIds.forEach((id) => selection[id] = true);
21089
- table.setRowSelection(selection);
21090
- },
21091
- getSelectedRows: () => {
21092
- return table.getFilteredSelectedRowModel().rows.map((r) => r.original);
21093
- },
21094
- expandRow: (rowId) => {
21095
- table.getRow(rowId).toggleExpanded(true);
21096
- },
21097
- collapseRow: (rowId) => {
21098
- table.getRow(rowId).toggleExpanded(false);
21099
- },
21100
- expandAllRows: () => {
21101
- table.toggleAllRowsExpanded(true);
21102
- },
21103
- collapseAllRows: () => {
21104
- table.toggleAllRowsExpanded(false);
21105
- },
21106
- expandRows: (rowIds) => {
21107
- const expansion = {};
21108
- rowIds.forEach((id) => expansion[id] = true);
21109
- table.setExpanded(expansion);
21110
- }
21111
- }), [table]);
21112
- const { rows, rowsById } = table.getRowModel();
21113
- const renderEmptyState = () => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(TableRow, { children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(TableCell, {
21114
- colSpan: columns.length,
21115
- className: ds_table_module_default.emptyState,
21116
- children: emptyState || "No results."
21117
- }) });
22096
+ const { columnSizeVars, activeResize, context: resizeContext } = resize.bind(table);
22097
+ (0, react.useImperativeHandle)(ref, () => createTableApi(table), [table]);
22098
+ const { rowsById } = table.getRowModel();
21118
22099
  const selectedRows = Object.entries(rowSelection).filter(([, selected]) => selected).map(([key]) => rowsById[key]?.original).filter((v) => !!v);
21119
22100
  const isBulkActionsVisible = selectable && actions.length > 0 && selectedRows.length > 0;
21120
- const editingState = useEditingState(onCellEdit, onCellValidate);
21121
- const contextValue = {
21122
- stickyHeader,
21123
- bordered,
21124
- fullWidth,
21125
- rowSize,
21126
- expandable,
21127
- selectable,
21128
- reorderable,
21129
- showSelectAllCheckbox,
21130
- loading,
21131
- onRowClick: loading ? void 0 : onRowClick,
21132
- onRowDoubleClick: loading ? void 0 : onRowDoubleClick,
21133
- primaryRowActions,
21134
- secondaryRowActions,
21135
- renderExpandedRow,
21136
- virtualized,
21137
- activeRowId,
21138
- collapsedColumnGroups,
21139
- onToggleColumnGroup: toggleColumnGroup,
21140
- locale,
21141
- onCellEdit,
21142
- ...editingState
21143
- };
21144
- return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(DsTableContext.Provider, {
21145
- value: contextValue,
22101
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(DsTableContextProvider, {
22102
+ tableProps,
22103
+ derived: {
22104
+ grouping: {
22105
+ collapsedColumnGroups,
22106
+ onToggleColumnGroup: toggleColumnGroup
22107
+ },
22108
+ resize: resizeContext
22109
+ },
21146
22110
  children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
21147
22111
  className: (0, classnames.default)(ds_table_module_default.container, isBulkActionsVisible && ds_table_module_default.bulkActionsVisible, className),
21148
22112
  children: [
@@ -21150,12 +22114,13 @@ const DsTable = ({ ref, columns: columnsProp, data: tableData, controls, virtual
21150
22114
  className: ds_table_module_default.controls,
21151
22115
  children: controls
21152
22116
  }),
21153
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
21154
- ref: tableContainerRef,
22117
+ /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
22118
+ ref: resizeContext.resizeContainerRef,
21155
22119
  className: (0, classnames.default)(!virtualized && ds_table_module_default.dataTableContainer, virtualized && ds_table_module_default.virtualizedContainer),
21156
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(DragWrapper, { children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(Table, {
22120
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(DragWrapper, { children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(Table, {
21157
22121
  className: (0, classnames.default)(fullWidth && ds_table_module_default.fullWidth, !bordered && ds_table_module_default.tableNoBorder),
21158
- children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(DsTableHeader, { table }), virtualized ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(DsTableBodyVirtualized, {
22122
+ style: columnSizeVars,
22123
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(DsTableHeader, { table }), virtualized ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(MemoizedDsTableBodyVirtualized, {
21159
22124
  table,
21160
22125
  emptyState,
21161
22126
  estimateSize: virtualizedOptions?.estimateSize || ROW_SIZE_HEIGHT_MAP[rowSize],
@@ -21163,11 +22128,16 @@ const DsTable = ({ ref, columns: columnsProp, data: tableData, controls, virtual
21163
22128
  onScroll,
21164
22129
  rowSelection,
21165
22130
  infiniteScroll
21166
- }) : /* @__PURE__ */ (0, react_jsx_runtime.jsx)(TableBody, { children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(SortableWrapper, { children: rows.length ? rows.map((row) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(DsTableRow, {
21167
- row,
21168
- isSelected: !!rowSelection[row.id]
21169
- }, row.id)) : renderEmptyState() }) })]
21170
- }) })
22131
+ }) : /* @__PURE__ */ (0, react_jsx_runtime.jsx)(MemoizedDsTableRowsBody, {
22132
+ table,
22133
+ rowSelection,
22134
+ emptyState,
22135
+ SortableWrapper
22136
+ })]
22137
+ }) }), activeResize ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(DsTableResizeOverlay, {
22138
+ offset: activeResize.offset,
22139
+ phase: activeResize.phase
22140
+ }) : null]
21171
22141
  }),
21172
22142
  selectable && actions.length > 0 && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(DsTableBulkActions, {
21173
22143
  numSelectedRows: selectedRows.length,
@@ -21181,6 +22151,20 @@ const DsTable = ({ ref, columns: columnsProp, data: tableData, controls, virtual
21181
22151
  })
21182
22152
  });
21183
22153
  };
22154
+ const DsTableRowsBody = ({ table, rowSelection, emptyState, SortableWrapper }) => {
22155
+ const { rows } = table.getRowModel();
22156
+ const columnCount = table.getVisibleLeafColumns().length;
22157
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(TableBody, { children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(SortableWrapper, { children: rows.length ? rows.map((row) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(DsTableRow, {
22158
+ row,
22159
+ isSelected: !!rowSelection[row.id]
22160
+ }, row.id)) : /* @__PURE__ */ (0, react_jsx_runtime.jsx)(TableRow, { children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(TableCell, {
22161
+ colSpan: columnCount,
22162
+ className: ds_table_module_default.emptyState,
22163
+ children: emptyState || "No results."
22164
+ }) }) }) });
22165
+ };
22166
+ const MemoizedDsTableRowsBody = react.memo(DsTableRowsBody, areBodiesFrozen);
22167
+ const MemoizedDsTableBodyVirtualized = react.memo(DsTableBodyVirtualized, areBodiesFrozen);
21184
22168
  DsTable.displayName = "DsTable";
21185
22169
  //#endregion
21186
22170
  //#region src/components/ds-table/hooks/use-cell-editor.ts
@@ -21195,6 +22179,7 @@ const useCellEditor = ({ cellContext }) => {
21195
22179
  const isActiveCell = ctx.editing !== null && ctx.editing.cell.row.id === row.id && ctx.editing.cell.column.id === column.id;
21196
22180
  const value = isActiveCell && ctx.editing ? ctx.editing.draftValue : getValue();
21197
22181
  const error = isActiveCell && ctx.editing ? ctx.editing.error : null;
22182
+ const isPending = isActiveCell && ctx.editing ? ctx.editing.pending : false;
21198
22183
  const setValue = (next) => {
21199
22184
  ctx.setDraft(next);
21200
22185
  };
@@ -21210,6 +22195,7 @@ const useCellEditor = ({ cellContext }) => {
21210
22195
  return {
21211
22196
  value,
21212
22197
  error,
22198
+ isPending,
21213
22199
  setValue,
21214
22200
  commit,
21215
22201
  cancel,
@@ -21241,7 +22227,7 @@ const TableEditFormControl = ({ cellContext, error, children }) => {
21241
22227
  //#region src/components/ds-table/components/edit/cell-editors/ds-table-edit-cell-text.tsx
21242
22228
  /** Text input editor for table cells. Render via `ColumnDef.editCell`. */
21243
22229
  const DsTableEditCellText = ({ cellContext, placeholder, maxLength }) => {
21244
- const { value, setValue, error } = useCellEditor({ cellContext });
22230
+ const { value, setValue, error, isPending } = useCellEditor({ cellContext });
21245
22231
  const inputRef = (0, react.useRef)(null);
21246
22232
  (0, react.useEffect)(() => {
21247
22233
  const input = inputRef.current;
@@ -21258,6 +22244,7 @@ const DsTableEditCellText = ({ cellContext, placeholder, maxLength }) => {
21258
22244
  value,
21259
22245
  placeholder,
21260
22246
  maxLength,
22247
+ disabled: isPending,
21261
22248
  onValueChange: setValue,
21262
22249
  slots: error ? { endAdornment: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(DsIcon, {
21263
22250
  icon: "error",
@@ -21271,7 +22258,7 @@ DsTableEditCellText.displayName = "DsTableEditCellText";
21271
22258
  //#region src/components/ds-table/components/edit/cell-editors/ds-table-edit-cell-number.tsx
21272
22259
  /** Number input editor for table cells. Render via `ColumnDef.editCell`. */
21273
22260
  const DsTableEditCellNumber = ({ cellContext, min, max, step }) => {
21274
- const { value, setValue, error } = useCellEditor({ cellContext });
22261
+ const { value, setValue, error, isPending } = useCellEditor({ cellContext });
21275
22262
  const inputRef = (0, react.useRef)(null);
21276
22263
  (0, react.useEffect)(() => {
21277
22264
  const input = inputRef.current;
@@ -21289,6 +22276,7 @@ const DsTableEditCellNumber = ({ cellContext, min, max, step }) => {
21289
22276
  min,
21290
22277
  max,
21291
22278
  step,
22279
+ disabled: isPending,
21292
22280
  onValueChange: setValue
21293
22281
  })
21294
22282
  });
@@ -21298,7 +22286,7 @@ DsTableEditCellNumber.displayName = "DsTableEditCellNumber";
21298
22286
  //#region src/components/ds-table/components/edit/cell-editors/ds-table-edit-cell-select.tsx
21299
22287
  /** Select editor for table cells. Render via `ColumnDef.editCell`. */
21300
22288
  const DsTableEditCellSelect = ({ cellContext, options, placeholder }) => {
21301
- const { value, setValue, error } = useCellEditor({ cellContext });
22289
+ const { value, setValue, error, isPending } = useCellEditor({ cellContext });
21302
22290
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(TableEditFormControl, {
21303
22291
  cellContext,
21304
22292
  error,
@@ -21307,6 +22295,7 @@ const DsTableEditCellSelect = ({ cellContext, options, placeholder }) => {
21307
22295
  value,
21308
22296
  options,
21309
22297
  placeholder,
22298
+ disabled: isPending,
21310
22299
  onValueChange: setValue
21311
22300
  })
21312
22301
  });
@@ -21316,7 +22305,7 @@ DsTableEditCellSelect.displayName = "DsTableEditCellSelect";
21316
22305
  //#region src/components/ds-table/components/edit/cell-editors/ds-table-edit-cell-date.tsx
21317
22306
  /** Date picker editor for table cells. Render via `ColumnDef.editCell`. */
21318
22307
  const DsTableEditCellDate = ({ cellContext, min, max, placeholder }) => {
21319
- const { value, setValue, error } = useCellEditor({ cellContext });
22308
+ const { value, setValue, error, isPending } = useCellEditor({ cellContext });
21320
22309
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(TableEditFormControl, {
21321
22310
  cellContext,
21322
22311
  error,
@@ -21326,6 +22315,7 @@ const DsTableEditCellDate = ({ cellContext, min, max, placeholder }) => {
21326
22315
  min,
21327
22316
  max,
21328
22317
  placeholder,
22318
+ disabled: isPending,
21329
22319
  onChange: setValue,
21330
22320
  slotProps: error ? { input: { slots: { endAdornment: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(DsIcon, {
21331
22321
  icon: "error",
@@ -21339,10 +22329,10 @@ DsTableEditCellDate.displayName = "DsTableEditCellDate";
21339
22329
  //#region src/components/ds-table/components/edit/cell-editors/ds-table-edit-cell-checkbox.tsx
21340
22330
  /** Checkbox editor for table cells. Render via `ColumnDef.editCell`. */
21341
22331
  const DsTableEditCellCheckbox = ({ cellContext, disabled }) => {
21342
- const { value, setValue } = useCellEditor({ cellContext });
22332
+ const { value, setValue, isPending } = useCellEditor({ cellContext });
21343
22333
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(DsCheckbox, {
21344
22334
  checked: value,
21345
- disabled,
22335
+ disabled: disabled || isPending,
21346
22336
  onCheckedChange: (checked) => setValue(checked === true)
21347
22337
  });
21348
22338
  };
@@ -22911,6 +23901,7 @@ exports.DsSkeleton = DsSkeleton;
22911
23901
  exports.DsSkeletonCircle = DsSkeletonCircle;
22912
23902
  exports.DsSkeletonRect = DsSkeletonRect;
22913
23903
  exports.DsSkeletonText = DsSkeletonText;
23904
+ exports.DsSlider = DsSlider;
22914
23905
  exports.DsSmartTabs = DsSmartTabs;
22915
23906
  exports.DsSpinner = DsSpinner;
22916
23907
  exports.DsSplitButton = DsSplitButton;
@@ -22950,6 +23941,7 @@ exports.FileUpload = FileUpload;
22950
23941
  exports.FileUploadError = FileUploadError;
22951
23942
  exports.RetryableFileUploadError = RetryableFileUploadError;
22952
23943
  exports.alertBannerVariants = alertBannerVariants;
23944
+ exports.autocompleteSizes = autocompleteSizes;
22953
23945
  exports.breakpoints = breakpoints;
22954
23946
  exports.buttonV3Colors = buttonV3Colors;
22955
23947
  exports.buttonV3Sizes = buttonV3Sizes;