@drivenets/design-system 0.13.0 → 0.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (64) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/dist/index.cjs +791 -326
  3. package/dist/index.d.cts +265 -21
  4. package/dist/index.d.cts.map +1 -1
  5. package/dist/index.d.ts +265 -21
  6. package/dist/index.d.ts.map +1 -1
  7. package/dist/index.js +789 -326
  8. package/dist/index.js.map +1 -1
  9. package/dist/index.min.css +1 -1
  10. package/package.json +13 -11
  11. package/src/components/ds-button-v3/ds-button-v3.figma.ts +99 -0
  12. package/src/components/ds-button-v3/ds-button-v3.module.scss +22 -22
  13. package/src/components/ds-card/figma/ds-card-content.figma.ts +15 -0
  14. package/src/components/ds-card/figma/ds-card-footer.figma.ts +15 -0
  15. package/src/components/ds-card/figma/ds-card-header.figma.ts +15 -0
  16. package/src/components/ds-card/figma/ds-card.figma.ts +72 -0
  17. package/src/components/ds-date-picker/ds-date-picker.figma.ts +19 -0
  18. package/src/components/ds-form-control/ds-form-control.figma.ts +76 -0
  19. package/src/components/ds-icon/figma/ds-icon-material.figma.batch.ts +10 -0
  20. package/src/components/ds-icon/figma/ds-icon-special.figma.batch.ts +18 -0
  21. package/src/components/ds-icon/figma/ds-icon.figma.batch.json +2873 -0
  22. package/src/components/ds-modal/figma/ds-modal-content.figma.ts +18 -0
  23. package/src/components/ds-modal/figma/ds-modal-footer.figma.ts +19 -0
  24. package/src/components/ds-modal/figma/ds-modal-header.figma.ts +21 -0
  25. package/src/components/ds-modal/figma/ds-modal.figma.ts +36 -0
  26. package/src/components/ds-popover/ds-popover.module.scss +58 -16
  27. package/src/components/ds-popover/ds-popover.tsx +148 -24
  28. package/src/components/ds-popover/ds-popover.types.ts +95 -12
  29. package/src/components/ds-popover/index.ts +1 -1
  30. package/src/components/ds-select/ds-select.figma.ts +53 -0
  31. package/src/components/ds-split-button/ds-split-button.figma.ts +95 -0
  32. package/src/components/ds-status-badge-v2/ds-status-badge-v2.figma.ts +41 -0
  33. package/src/components/ds-table/components/ds-table-body-virtualized/ds-table-body-virtualized.tsx +8 -3
  34. package/src/components/ds-table/components/ds-table-group-header-cell/ds-table-group-header-cell.module.scss +31 -0
  35. package/src/components/ds-table/components/ds-table-group-header-cell/ds-table-group-header-cell.tsx +48 -0
  36. package/src/components/ds-table/components/ds-table-group-header-cell/ds-table-group-header-cell.types.ts +12 -0
  37. package/src/components/ds-table/components/ds-table-group-header-cell/index.ts +2 -0
  38. package/src/components/ds-table/components/ds-table-header/ds-table-header.module.scss +4 -0
  39. package/src/components/ds-table/components/ds-table-header/ds-table-header.tsx +55 -39
  40. package/src/components/ds-table/components/ds-table-row/ds-table-row.module.scss +4 -0
  41. package/src/components/ds-table/components/ds-table-row/ds-table-row.tsx +2 -0
  42. package/src/components/ds-table/components/ds-table-row-virtualized/ds-table-row-virtualized.module.scss +4 -0
  43. package/src/components/ds-table/components/ds-table-row-virtualized/ds-table-row-virtualized.tsx +2 -0
  44. package/src/components/ds-table/context/ds-table-context.ts +4 -0
  45. package/src/components/ds-table/ds-table.tsx +20 -2
  46. package/src/components/ds-table/ds-table.types.ts +55 -0
  47. package/src/components/ds-table/figma/ds-table-expandable.figma.ts +17 -0
  48. package/src/components/ds-table/figma/ds-table.figma.ts +16 -0
  49. package/src/components/ds-table/grouping/hooks/use-column-groups.ts +73 -0
  50. package/src/components/ds-table/grouping/index.ts +5 -0
  51. package/src/components/ds-table/grouping/types/column-group-meta.augmentation.ts +26 -0
  52. package/src/components/ds-table/grouping/types/column-group.types.ts +35 -0
  53. package/src/components/ds-table/grouping/utils/column-group.ts +119 -0
  54. package/src/components/ds-table/index.ts +3 -0
  55. package/src/components/ds-table/styles/_variables.scss +1 -0
  56. package/src/components/ds-tag/ds-tag.module.scss +22 -1
  57. package/src/components/ds-tag/ds-tag.tsx +16 -3
  58. package/src/components/ds-tag/ds-tag.types.ts +22 -8
  59. package/src/components/ds-tag/ds-tag.unit.test.ts +32 -0
  60. package/src/components/ds-tag-filter/ds-tag-filter.tsx +14 -22
  61. package/src/components/ds-text-input/ds-text-input.figma.ts +60 -0
  62. package/src/components/ds-time-picker/ds-time-picker.figma.ts +18 -0
  63. package/src/styles/_root_new.scss +2 -0
  64. package/src/styles/_scrollbars.scss +27 -50
package/dist/index.js CHANGED
@@ -24,7 +24,6 @@ import { CalendarDate, fromDate, getLocalTimeZone, parseDate } from "@internatio
24
24
  import { Popover } from "@ark-ui/react/popover";
25
25
  import { Select, createListCollection as createListCollection$1, useSelect, useSelectContext } from "@ark-ui/react/select";
26
26
  import * as Collapsible from "@radix-ui/react-collapsible";
27
- import * as Popover$1 from "@radix-ui/react-popover";
28
27
  import { RadioGroup } from "@ark-ui/react/radio-group";
29
28
  import { SegmentGroup } from "@ark-ui/react/segment-group";
30
29
  import * as steps from "@zag-js/steps";
@@ -7154,18 +7153,86 @@ var ds_tag_module_default = {
7154
7153
  "exclude": "UdH7Tq_exclude",
7155
7154
  "icon": "UdH7Tq_icon",
7156
7155
  "include": "UdH7Tq_include",
7156
+ "key": "UdH7Tq_key",
7157
+ "keyValue": "UdH7Tq_keyValue",
7157
7158
  "label": "UdH7Tq_label",
7158
7159
  "selected": "UdH7Tq_selected",
7159
7160
  "tag": "UdH7Tq_tag",
7161
+ "value": "UdH7Tq_value",
7160
7162
  "variantIcon": "UdH7Tq_variantIcon"
7161
7163
  };
7162
7164
  //#endregion
7165
+ //#region src/components/ds-stack/ds-stack.module.scss
7166
+ var ds_stack_module_default = { "root": "efmmNG_root" };
7167
+ //#endregion
7168
+ //#region src/components/ds-stack/ds-stack.tsx
7169
+ const DsStack$1 = (t0) => {
7170
+ const $ = c(16);
7171
+ const { direction, gap, alignItems, justifyContent, flex, flexWrap, width, children, className, style, ref } = t0;
7172
+ let t1;
7173
+ if ($[0] !== alignItems || $[1] !== direction || $[2] !== flex || $[3] !== flexWrap || $[4] !== gap || $[5] !== justifyContent || $[6] !== style || $[7] !== width) {
7174
+ t1 = {
7175
+ flexDirection: direction,
7176
+ gap,
7177
+ alignItems,
7178
+ justifyContent,
7179
+ flex,
7180
+ flexWrap,
7181
+ width,
7182
+ ...style
7183
+ };
7184
+ $[0] = alignItems;
7185
+ $[1] = direction;
7186
+ $[2] = flex;
7187
+ $[3] = flexWrap;
7188
+ $[4] = gap;
7189
+ $[5] = justifyContent;
7190
+ $[6] = style;
7191
+ $[7] = width;
7192
+ $[8] = t1;
7193
+ } else t1 = $[8];
7194
+ const layoutStyle = t1;
7195
+ let t2;
7196
+ if ($[9] !== className) {
7197
+ t2 = classNames(ds_stack_module_default.root, className);
7198
+ $[9] = className;
7199
+ $[10] = t2;
7200
+ } else t2 = $[10];
7201
+ let t3;
7202
+ if ($[11] !== children || $[12] !== layoutStyle || $[13] !== ref || $[14] !== t2) {
7203
+ t3 = /* @__PURE__ */ jsx("div", {
7204
+ ref,
7205
+ className: t2,
7206
+ style: layoutStyle,
7207
+ children
7208
+ });
7209
+ $[11] = children;
7210
+ $[12] = layoutStyle;
7211
+ $[13] = ref;
7212
+ $[14] = t2;
7213
+ $[15] = t3;
7214
+ } else t3 = $[15];
7215
+ return t3;
7216
+ };
7217
+ //#endregion
7218
+ //#region src/components/ds-stack/index.ts
7219
+ const DsStack = withResponsiveProps(DsStack$1, [
7220
+ "direction",
7221
+ "gap",
7222
+ "alignItems",
7223
+ "justifyContent",
7224
+ "flex",
7225
+ "flexWrap",
7226
+ "width"
7227
+ ]);
7228
+ DsStack.displayName = "DsStack";
7229
+ //#endregion
7163
7230
  //#region src/components/ds-tag/ds-tag.tsx
7164
7231
  /**
7165
7232
  * Design system Tag component
7166
7233
  */
7167
7234
  const DsTag = (t0) => {
7168
- const $ = c(61);
7235
+ const $ = c(64);
7169
7236
  let className;
7170
7237
  let label;
7171
7238
  let onClick;
@@ -7179,8 +7246,9 @@ const DsTag = (t0) => {
7179
7246
  let t4;
7180
7247
  let t5;
7181
7248
  let t6;
7249
+ let value;
7182
7250
  if ($[0] !== t0) {
7183
- ({ref, label, className, style: t1, size: t2, selected: t3, variant: t4, disabled: t5, locale: t6, onClick, onDelete, slots, ...rest} = t0);
7251
+ ({ref, label, value, className, style: t1, size: t2, selected: t3, variant: t4, disabled: t5, locale: t6, onClick, onDelete, slots, ...rest} = t0);
7184
7252
  $[0] = t0;
7185
7253
  $[1] = className;
7186
7254
  $[2] = label;
@@ -7195,6 +7263,7 @@ const DsTag = (t0) => {
7195
7263
  $[11] = t4;
7196
7264
  $[12] = t5;
7197
7265
  $[13] = t6;
7266
+ $[14] = value;
7198
7267
  } else {
7199
7268
  className = $[1];
7200
7269
  label = $[2];
@@ -7209,31 +7278,32 @@ const DsTag = (t0) => {
7209
7278
  t4 = $[11];
7210
7279
  t5 = $[12];
7211
7280
  t6 = $[13];
7281
+ value = $[14];
7212
7282
  }
7213
7283
  let t7;
7214
- if ($[14] !== t1) {
7284
+ if ($[15] !== t1) {
7215
7285
  t7 = t1 === void 0 ? {} : t1;
7216
- $[14] = t1;
7217
- $[15] = t7;
7218
- } else t7 = $[15];
7286
+ $[15] = t1;
7287
+ $[16] = t7;
7288
+ } else t7 = $[16];
7219
7289
  const style = t7;
7220
7290
  const size = t2 === void 0 ? "medium" : t2;
7221
7291
  const selected = t3 === void 0 ? false : t3;
7222
7292
  const variant = t4 === void 0 ? "default" : t4;
7223
7293
  const disabled = t5 === void 0 ? false : t5;
7224
7294
  let t8;
7225
- if ($[16] !== t6) {
7295
+ if ($[17] !== t6) {
7226
7296
  t8 = t6 === void 0 ? {} : t6;
7227
- $[16] = t6;
7228
- $[17] = t8;
7229
- } else t8 = $[17];
7297
+ $[17] = t6;
7298
+ $[18] = t8;
7299
+ } else t8 = $[18];
7230
7300
  const locale = t8;
7231
7301
  const t9 = onClick !== void 0 && !disabled;
7232
7302
  const t10 = selected && !disabled;
7233
7303
  const t11 = variant === "include";
7234
7304
  const t12 = variant === "exclude";
7235
7305
  let t13;
7236
- if ($[18] !== className || $[19] !== disabled || $[20] !== t10 || $[21] !== t11 || $[22] !== t12 || $[23] !== t9) {
7306
+ if ($[19] !== className || $[20] !== disabled || $[21] !== t10 || $[22] !== t11 || $[23] !== t12 || $[24] !== t9) {
7237
7307
  t13 = classNames(ds_tag_module_default.tag, {
7238
7308
  [ds_tag_module_default.clickable]: t9,
7239
7309
  [ds_tag_module_default.selected]: t10,
@@ -7241,27 +7311,27 @@ const DsTag = (t0) => {
7241
7311
  [ds_tag_module_default.exclude]: t12,
7242
7312
  [ds_tag_module_default.disabled]: disabled
7243
7313
  }, className);
7244
- $[18] = className;
7245
- $[19] = disabled;
7246
- $[20] = t10;
7247
- $[21] = t11;
7248
- $[22] = t12;
7249
- $[23] = t9;
7250
- $[24] = t13;
7251
- } else t13 = $[24];
7314
+ $[19] = className;
7315
+ $[20] = disabled;
7316
+ $[21] = t10;
7317
+ $[22] = t11;
7318
+ $[23] = t12;
7319
+ $[24] = t9;
7320
+ $[25] = t13;
7321
+ } else t13 = $[25];
7252
7322
  const tagClass = t13;
7253
7323
  let t14;
7254
- if ($[25] !== onDelete) {
7324
+ if ($[26] !== onDelete) {
7255
7325
  t14 = (event) => {
7256
7326
  event.stopPropagation();
7257
7327
  onDelete?.(event);
7258
7328
  };
7259
- $[25] = onDelete;
7260
- $[26] = t14;
7261
- } else t14 = $[26];
7329
+ $[26] = onDelete;
7330
+ $[27] = t14;
7331
+ } else t14 = $[27];
7262
7332
  const handleDeleteClick = t14;
7263
7333
  let t15;
7264
- if ($[27] !== onClick || $[28] !== onDelete) {
7334
+ if ($[28] !== onClick || $[29] !== onDelete) {
7265
7335
  t15 = (event_0) => {
7266
7336
  if (onClick && (event_0.key === "Enter" || event_0.key === " ")) {
7267
7337
  event_0.preventDefault();
@@ -7273,13 +7343,13 @@ const DsTag = (t0) => {
7273
7343
  onDelete(event_0);
7274
7344
  }
7275
7345
  };
7276
- $[27] = onClick;
7277
- $[28] = onDelete;
7278
- $[29] = t15;
7279
- } else t15 = $[29];
7346
+ $[28] = onClick;
7347
+ $[29] = onDelete;
7348
+ $[30] = t15;
7349
+ } else t15 = $[30];
7280
7350
  const handleKeyDownTag = t15;
7281
7351
  let t16;
7282
- if ($[30] !== onDelete) {
7352
+ if ($[31] !== onDelete) {
7283
7353
  t16 = (event_1) => {
7284
7354
  event_1.stopPropagation();
7285
7355
  if (onDelete && (event_1.key === "Enter" || event_1.key === " ")) {
@@ -7287,21 +7357,21 @@ const DsTag = (t0) => {
7287
7357
  onDelete(event_1);
7288
7358
  }
7289
7359
  };
7290
- $[30] = onDelete;
7291
- $[31] = t16;
7292
- } else t16 = $[31];
7360
+ $[31] = onDelete;
7361
+ $[32] = t16;
7362
+ } else t16 = $[32];
7293
7363
  const handleKeyDownDelete = t16;
7294
7364
  let t17;
7295
- if ($[32] !== onClick) {
7365
+ if ($[33] !== onClick) {
7296
7366
  t17 = (event_2) => {
7297
7367
  if (onClick) {
7298
7368
  event_2.preventDefault();
7299
7369
  onClick(event_2);
7300
7370
  }
7301
7371
  };
7302
- $[32] = onClick;
7303
- $[33] = t17;
7304
- } else t17 = $[33];
7372
+ $[33] = onClick;
7373
+ $[34] = t17;
7374
+ } else t17 = $[34];
7305
7375
  const handleClick = t17;
7306
7376
  let iconVariant = null;
7307
7377
  if (variant === "include") iconVariant = "check_circle";
@@ -7314,7 +7384,7 @@ const DsTag = (t0) => {
7314
7384
  const t23 = typeof label === "string" ? label : void 0;
7315
7385
  const t24 = onClick && selected && !disabled ? "true" : void 0;
7316
7386
  let t25;
7317
- if ($[34] !== iconVariant || $[35] !== slots?.icon) {
7387
+ if ($[35] !== iconVariant || $[36] !== slots?.icon) {
7318
7388
  t25 = (slots?.icon || iconVariant) && /* @__PURE__ */ jsx("span", {
7319
7389
  className: classNames(ds_tag_module_default.icon),
7320
7390
  children: slots?.icon ?? (iconVariant && /* @__PURE__ */ jsx(DsIcon, {
@@ -7323,25 +7393,40 @@ const DsTag = (t0) => {
7323
7393
  className: classNames(ds_tag_module_default.variantIcon)
7324
7394
  }))
7325
7395
  });
7326
- $[34] = iconVariant;
7327
- $[35] = slots?.icon;
7328
- $[36] = t25;
7329
- } else t25 = $[36];
7330
- const t26 = size === "small" ? "body-xs-reg" : "body-sm-reg";
7331
- let t27;
7332
- if ($[37] !== label || $[38] !== t26) {
7333
- t27 = /* @__PURE__ */ jsx(DsTypography, {
7334
- variant: t26,
7396
+ $[35] = iconVariant;
7397
+ $[36] = slots?.icon;
7398
+ $[37] = t25;
7399
+ } else t25 = $[37];
7400
+ let t26;
7401
+ if ($[38] !== label || $[39] !== size || $[40] !== value || $[41] !== variant) {
7402
+ t26 = variant === "key-value" ? /* @__PURE__ */ jsxs(DsStack, {
7403
+ direction: "row",
7404
+ alignItems: "center",
7405
+ gap: "var(--3xs)",
7406
+ className: ds_tag_module_default.keyValue,
7407
+ children: [/* @__PURE__ */ jsx(DsTypography, {
7408
+ variant: size === "small" ? "body-xs-md" : "body-sm-md",
7409
+ className: ds_tag_module_default.key,
7410
+ children: label
7411
+ }), /* @__PURE__ */ jsx(DsTypography, {
7412
+ variant: size === "small" ? "body-xs-reg" : "body-sm-reg",
7413
+ className: ds_tag_module_default.value,
7414
+ children: value
7415
+ })]
7416
+ }) : /* @__PURE__ */ jsx(DsTypography, {
7417
+ variant: size === "small" ? "body-xs-reg" : "body-sm-reg",
7335
7418
  className: ds_tag_module_default.label,
7336
7419
  children: label
7337
7420
  });
7338
- $[37] = label;
7339
- $[38] = t26;
7340
- $[39] = t27;
7341
- } else t27 = $[39];
7342
- let t28;
7343
- if ($[40] !== disabled || $[41] !== handleDeleteClick || $[42] !== handleKeyDownDelete || $[43] !== locale || $[44] !== onDelete) {
7344
- t28 = onDelete && !disabled && /* @__PURE__ */ jsx("button", {
7421
+ $[38] = label;
7422
+ $[39] = size;
7423
+ $[40] = value;
7424
+ $[41] = variant;
7425
+ $[42] = t26;
7426
+ } else t26 = $[42];
7427
+ let t27;
7428
+ if ($[43] !== disabled || $[44] !== handleDeleteClick || $[45] !== handleKeyDownDelete || $[46] !== locale || $[47] !== onDelete) {
7429
+ t27 = onDelete && !disabled && /* @__PURE__ */ jsx("button", {
7345
7430
  type: "button",
7346
7431
  className: ds_tag_module_default.deleteButton,
7347
7432
  onClick: handleDeleteClick,
@@ -7353,16 +7438,16 @@ const DsTag = (t0) => {
7353
7438
  size: "tiny"
7354
7439
  })
7355
7440
  });
7356
- $[40] = disabled;
7357
- $[41] = handleDeleteClick;
7358
- $[42] = handleKeyDownDelete;
7359
- $[43] = locale;
7360
- $[44] = onDelete;
7361
- $[45] = t28;
7362
- } else t28 = $[45];
7363
- let t29;
7364
- if ($[46] !== disabled || $[47] !== rest || $[48] !== style || $[49] !== t18 || $[50] !== t19 || $[51] !== t20 || $[52] !== t21 || $[53] !== t22 || $[54] !== t23 || $[55] !== t24 || $[56] !== t25 || $[57] !== t27 || $[58] !== t28 || $[59] !== tagClass) {
7365
- t29 = /* @__PURE__ */ jsxs("div", {
7441
+ $[43] = disabled;
7442
+ $[44] = handleDeleteClick;
7443
+ $[45] = handleKeyDownDelete;
7444
+ $[46] = locale;
7445
+ $[47] = onDelete;
7446
+ $[48] = t27;
7447
+ } else t27 = $[48];
7448
+ let t28;
7449
+ if ($[49] !== disabled || $[50] !== rest || $[51] !== style || $[52] !== t18 || $[53] !== t19 || $[54] !== t20 || $[55] !== t21 || $[56] !== t22 || $[57] !== t23 || $[58] !== t24 || $[59] !== t25 || $[60] !== t26 || $[61] !== t27 || $[62] !== tagClass) {
7450
+ t28 = /* @__PURE__ */ jsxs("div", {
7366
7451
  ref: t18,
7367
7452
  className: tagClass,
7368
7453
  style,
@@ -7376,27 +7461,27 @@ const DsTag = (t0) => {
7376
7461
  ...rest,
7377
7462
  children: [
7378
7463
  t25,
7379
- t27,
7380
- t28
7464
+ t26,
7465
+ t27
7381
7466
  ]
7382
7467
  });
7383
- $[46] = disabled;
7384
- $[47] = rest;
7385
- $[48] = style;
7386
- $[49] = t18;
7387
- $[50] = t19;
7388
- $[51] = t20;
7389
- $[52] = t21;
7390
- $[53] = t22;
7391
- $[54] = t23;
7392
- $[55] = t24;
7393
- $[56] = t25;
7394
- $[57] = t27;
7395
- $[58] = t28;
7396
- $[59] = tagClass;
7397
- $[60] = t29;
7398
- } else t29 = $[60];
7399
- return t29;
7468
+ $[49] = disabled;
7469
+ $[50] = rest;
7470
+ $[51] = style;
7471
+ $[52] = t18;
7472
+ $[53] = t19;
7473
+ $[54] = t20;
7474
+ $[55] = t21;
7475
+ $[56] = t22;
7476
+ $[57] = t23;
7477
+ $[58] = t24;
7478
+ $[59] = t25;
7479
+ $[60] = t26;
7480
+ $[61] = t27;
7481
+ $[62] = tagClass;
7482
+ $[63] = t28;
7483
+ } else t28 = $[63];
7484
+ return t28;
7400
7485
  };
7401
7486
  //#endregion
7402
7487
  //#region src/components/ds-tag/ds-tag.types.ts
@@ -7404,7 +7489,8 @@ const tagSizes = ["medium", "small"];
7404
7489
  const tagVariants = [
7405
7490
  "default",
7406
7491
  "include",
7407
- "exclude"
7492
+ "exclude",
7493
+ "key-value"
7408
7494
  ];
7409
7495
  //#endregion
7410
7496
  //#region src/utils/merge-refs.ts
@@ -8803,87 +8889,86 @@ const DsTagFilter = (t0) => {
8803
8889
  if (items.length === 0) return null;
8804
8890
  let t9;
8805
8891
  if ($[9] !== onItemDelete || $[10] !== onItemSelect) {
8806
- t9 = (item) => {
8807
- return /* @__PURE__ */ createElement(DsTag, {
8808
- ...item.slotProps?.tag || {},
8809
- key: item.id,
8810
- label: item.label,
8811
- selected: item.selected,
8812
- onClick: onItemSelect ? () => onItemSelect(item) : void 0,
8813
- onDelete: onItemDelete ? () => onItemDelete(item) : void 0
8814
- });
8815
- };
8892
+ t9 = (item) => ({
8893
+ ...item.slotProps?.tag,
8894
+ label: item.label,
8895
+ selected: item.selected,
8896
+ onClick: onItemSelect ? () => onItemSelect(item) : void 0,
8897
+ onDelete: onItemDelete ? () => onItemDelete(item) : void 0
8898
+ });
8816
8899
  $[9] = onItemDelete;
8817
8900
  $[10] = onItemSelect;
8818
8901
  $[11] = t9;
8819
8902
  } else t9 = $[11];
8820
- const renderTag = t9;
8903
+ const buildTagProps = t9;
8821
8904
  let t10;
8822
- if ($[12] !== expanded || $[13] !== onExpand) {
8823
- t10 = () => {
8905
+ if ($[12] !== buildTagProps) {
8906
+ t10 = (item_0) => /* @__PURE__ */ jsx(DsTag, { ...buildTagProps(item_0) }, item_0.id);
8907
+ $[12] = buildTagProps;
8908
+ $[13] = t10;
8909
+ } else t10 = $[13];
8910
+ const renderTag = t10;
8911
+ let t11;
8912
+ if ($[14] !== expanded || $[15] !== onExpand) {
8913
+ t11 = () => {
8824
8914
  const newExpanded = !expanded;
8825
8915
  setExpanded(newExpanded);
8826
8916
  onExpand?.(newExpanded);
8827
8917
  };
8828
- $[12] = expanded;
8829
- $[13] = onExpand;
8830
- $[14] = t10;
8831
- } else t10 = $[14];
8832
- const handleExpandToggle = t10;
8833
- let t11;
8834
- if ($[15] !== items || $[16] !== onItemDelete || $[17] !== onItemSelect) {
8835
- let t12;
8836
- if ($[19] !== onItemDelete || $[20] !== onItemSelect) {
8837
- t12 = (item_0) => /* @__PURE__ */ jsx(DsTag, {
8838
- "data-measure-tag": "",
8839
- label: item_0.label,
8840
- selected: item_0.selected,
8841
- onClick: onItemSelect ? () => onItemSelect(item_0) : void 0,
8842
- onDelete: onItemDelete ? () => onItemDelete(item_0) : void 0
8843
- }, item_0.id);
8844
- $[19] = onItemDelete;
8845
- $[20] = onItemSelect;
8846
- $[21] = t12;
8847
- } else t12 = $[21];
8848
- t11 = items.map(t12);
8849
- $[15] = items;
8850
- $[16] = onItemDelete;
8851
- $[17] = onItemSelect;
8852
- $[18] = t11;
8853
- } else t11 = $[18];
8918
+ $[14] = expanded;
8919
+ $[15] = onExpand;
8920
+ $[16] = t11;
8921
+ } else t11 = $[16];
8922
+ const handleExpandToggle = t11;
8854
8923
  let t12;
8855
- if ($[22] !== t11) {
8856
- t12 = /* @__PURE__ */ jsx("div", {
8924
+ if ($[17] !== buildTagProps || $[18] !== items) {
8925
+ let t13;
8926
+ if ($[20] !== buildTagProps) {
8927
+ t13 = (item_1) => /* @__PURE__ */ jsx(DsTag, {
8928
+ "data-measure-tag": "",
8929
+ ...buildTagProps(item_1)
8930
+ }, item_1.id);
8931
+ $[20] = buildTagProps;
8932
+ $[21] = t13;
8933
+ } else t13 = $[21];
8934
+ t12 = items.map(t13);
8935
+ $[17] = buildTagProps;
8936
+ $[18] = items;
8937
+ $[19] = t12;
8938
+ } else t12 = $[19];
8939
+ let t13;
8940
+ if ($[22] !== t12) {
8941
+ t13 = /* @__PURE__ */ jsx("div", {
8857
8942
  ref: measurementRef,
8858
8943
  className: ds_tag_filter_module_default.measurementContainer,
8859
8944
  "aria-hidden": "true",
8860
- children: t11
8945
+ children: t12
8861
8946
  });
8862
- $[22] = t11;
8863
- $[23] = t12;
8864
- } else t12 = $[23];
8865
- const measurementContainer = t12;
8866
- const t13 = expanded && ds_tag_filter_module_default.expanded;
8867
- let t14;
8868
- if ($[24] !== className || $[25] !== t13) {
8869
- t14 = classNames(ds_tag_filter_module_default.container, t13, className);
8870
- $[24] = className;
8871
- $[25] = t13;
8872
- $[26] = t14;
8873
- } else t14 = $[26];
8947
+ $[22] = t12;
8948
+ $[23] = t13;
8949
+ } else t13 = $[23];
8950
+ const measurementContainer = t13;
8951
+ const t14 = expanded && ds_tag_filter_module_default.expanded;
8874
8952
  let t15;
8953
+ if ($[24] !== className || $[25] !== t14) {
8954
+ t15 = classNames(ds_tag_filter_module_default.container, t14, className);
8955
+ $[24] = className;
8956
+ $[25] = t14;
8957
+ $[26] = t15;
8958
+ } else t15 = $[26];
8959
+ let t16;
8875
8960
  if ($[27] !== label) {
8876
- t15 = label && /* @__PURE__ */ jsx(DsTypography, {
8961
+ t16 = label && /* @__PURE__ */ jsx(DsTypography, {
8877
8962
  variant: "body-sm-reg",
8878
8963
  className: ds_tag_filter_module_default.label,
8879
8964
  children: label
8880
8965
  });
8881
8966
  $[27] = label;
8882
- $[28] = t15;
8883
- } else t15 = $[28];
8884
- let t16;
8967
+ $[28] = t16;
8968
+ } else t16 = $[28];
8969
+ let t17;
8885
8970
  if ($[29] !== expanded || $[30] !== handleExpandToggle || $[31] !== hasOverflow || $[32] !== hiddenCount || $[33] !== showLess || $[34] !== showMore) {
8886
- t16 = hasOverflow && /* @__PURE__ */ jsxs(DsButton, {
8971
+ t17 = hasOverflow && /* @__PURE__ */ jsxs(DsButton, {
8887
8972
  design: "v1.2",
8888
8973
  buttonType: "tertiary",
8889
8974
  variant: "ghost",
@@ -8899,11 +8984,11 @@ const DsTagFilter = (t0) => {
8899
8984
  $[32] = hiddenCount;
8900
8985
  $[33] = showLess;
8901
8986
  $[34] = showMore;
8902
- $[35] = t16;
8903
- } else t16 = $[35];
8904
- let t17;
8987
+ $[35] = t17;
8988
+ } else t17 = $[35];
8989
+ let t18;
8905
8990
  if ($[36] !== clearButton || $[37] !== onClearAll) {
8906
- t17 = onClearAll && /* @__PURE__ */ jsxs(DsButton, {
8991
+ t18 = onClearAll && /* @__PURE__ */ jsxs(DsButton, {
8907
8992
  design: "v1.2",
8908
8993
  buttonType: "tertiary",
8909
8994
  variant: "ghost",
@@ -8915,78 +9000,78 @@ const DsTagFilter = (t0) => {
8915
9000
  });
8916
9001
  $[36] = clearButton;
8917
9002
  $[37] = onClearAll;
8918
- $[38] = t17;
8919
- } else t17 = $[38];
8920
- let t18;
8921
- if ($[39] !== t16 || $[40] !== t17) {
8922
- t18 = /* @__PURE__ */ jsxs("div", {
8923
- className: ds_tag_filter_module_default.headerActions,
8924
- children: [t16, t17]
8925
- });
8926
- $[39] = t16;
8927
- $[40] = t17;
8928
- $[41] = t18;
8929
- } else t18 = $[41];
9003
+ $[38] = t18;
9004
+ } else t18 = $[38];
8930
9005
  let t19;
8931
- if ($[42] !== t15 || $[43] !== t18) {
9006
+ if ($[39] !== t17 || $[40] !== t18) {
8932
9007
  t19 = /* @__PURE__ */ jsxs("div", {
8933
- className: ds_tag_filter_module_default.header,
8934
- children: [t15, t18]
9008
+ className: ds_tag_filter_module_default.headerActions,
9009
+ children: [t17, t18]
8935
9010
  });
8936
- $[42] = t15;
8937
- $[43] = t18;
8938
- $[44] = t19;
8939
- } else t19 = $[44];
9011
+ $[39] = t17;
9012
+ $[40] = t18;
9013
+ $[41] = t19;
9014
+ } else t19 = $[41];
8940
9015
  let t20;
9016
+ if ($[42] !== t16 || $[43] !== t19) {
9017
+ t20 = /* @__PURE__ */ jsxs("div", {
9018
+ className: ds_tag_filter_module_default.header,
9019
+ children: [t16, t19]
9020
+ });
9021
+ $[42] = t16;
9022
+ $[43] = t19;
9023
+ $[44] = t20;
9024
+ } else t20 = $[44];
9025
+ let t21;
8941
9026
  if ($[45] !== renderTag || $[46] !== visibleTags) {
8942
- let t21;
9027
+ let t22;
8943
9028
  if ($[48] !== renderTag) {
8944
- t21 = (item_1) => renderTag(item_1);
9029
+ t22 = (item_2) => renderTag(item_2);
8945
9030
  $[48] = renderTag;
8946
- $[49] = t21;
8947
- } else t21 = $[49];
8948
- t20 = visibleTags.map(t21);
9031
+ $[49] = t22;
9032
+ } else t22 = $[49];
9033
+ t21 = visibleTags.map(t22);
8949
9034
  $[45] = renderTag;
8950
9035
  $[46] = visibleTags;
8951
- $[47] = t20;
8952
- } else t20 = $[47];
8953
- let t21;
8954
- if ($[50] !== t20) {
8955
- t21 = /* @__PURE__ */ jsx("div", {
9036
+ $[47] = t21;
9037
+ } else t21 = $[47];
9038
+ let t22;
9039
+ if ($[50] !== t21) {
9040
+ t22 = /* @__PURE__ */ jsx("div", {
8956
9041
  className: ds_tag_filter_module_default.tagsArea,
8957
- children: t20
9042
+ children: t21
8958
9043
  });
8959
- $[50] = t20;
8960
- $[51] = t21;
8961
- } else t21 = $[51];
8962
- let t22;
8963
- if ($[52] !== style || $[53] !== t14 || $[54] !== t19 || $[55] !== t21) {
8964
- t22 = /* @__PURE__ */ jsxs("div", {
9044
+ $[50] = t21;
9045
+ $[51] = t22;
9046
+ } else t22 = $[51];
9047
+ let t23;
9048
+ if ($[52] !== style || $[53] !== t15 || $[54] !== t20 || $[55] !== t22) {
9049
+ t23 = /* @__PURE__ */ jsxs("div", {
8965
9050
  ref: containerRef,
8966
- className: t14,
9051
+ className: t15,
8967
9052
  style,
8968
- children: [t19, t21]
9053
+ children: [t20, t22]
8969
9054
  });
8970
9055
  $[52] = style;
8971
- $[53] = t14;
8972
- $[54] = t19;
8973
- $[55] = t21;
8974
- $[56] = t22;
8975
- } else t22 = $[56];
8976
- let t23;
9056
+ $[53] = t15;
9057
+ $[54] = t20;
9058
+ $[55] = t22;
9059
+ $[56] = t23;
9060
+ } else t23 = $[56];
9061
+ let t24;
8977
9062
  if ($[57] !== measurementContainer) {
8978
- t23 = createPortal(measurementContainer, document.body);
9063
+ t24 = createPortal(measurementContainer, document.body);
8979
9064
  $[57] = measurementContainer;
8980
- $[58] = t23;
8981
- } else t23 = $[58];
8982
- let t24;
8983
- if ($[59] !== t22 || $[60] !== t23) {
8984
- t24 = /* @__PURE__ */ jsxs(Fragment, { children: [t22, t23] });
8985
- $[59] = t22;
8986
- $[60] = t23;
8987
- $[61] = t24;
8988
- } else t24 = $[61];
8989
- return t24;
9065
+ $[58] = t24;
9066
+ } else t24 = $[58];
9067
+ let t25;
9068
+ if ($[59] !== t23 || $[60] !== t24) {
9069
+ t25 = /* @__PURE__ */ jsxs(Fragment, { children: [t23, t24] });
9070
+ $[59] = t23;
9071
+ $[60] = t24;
9072
+ $[61] = t25;
9073
+ } else t25 = $[61];
9074
+ return t25;
8990
9075
  };
8991
9076
  //#endregion
8992
9077
  //#region src/components/ds-comments-drawer/comments-filters.ts
@@ -15457,62 +15542,335 @@ const DsPanel = withResponsiveProps(DsPanelBase, ["width"]);
15457
15542
  //#endregion
15458
15543
  //#region src/components/ds-popover/ds-popover.module.scss
15459
15544
  var ds_popover_module_default = {
15460
- "arrow": "Xt6oSq_arrow",
15461
- "content": "Xt6oSq_content"
15545
+ "content": "Xt6oSq_content",
15546
+ "ds-popover-in": "Xt6oSq_ds-popover-in",
15547
+ "footer": "Xt6oSq_footer",
15548
+ "header": "Xt6oSq_header",
15549
+ "headerIcon": "Xt6oSq_headerIcon",
15550
+ "panel": "Xt6oSq_panel",
15551
+ "title": "Xt6oSq_title"
15462
15552
  };
15463
15553
  //#endregion
15464
15554
  //#region src/components/ds-popover/ds-popover.tsx
15465
- const DsPopover = (t0) => {
15466
- const $ = c(13);
15467
- const { trigger, children, className, align: t1, side: t2 } = t0;
15468
- const align = t1 === void 0 ? "center" : t1;
15469
- const side = t2 === void 0 ? "top" : t2;
15470
- let t3;
15471
- if ($[0] !== trigger) {
15472
- t3 = /* @__PURE__ */ jsx(Popover$1.Trigger, {
15473
- asChild: true,
15474
- children: trigger
15475
- });
15476
- $[0] = trigger;
15477
- $[1] = t3;
15478
- } else t3 = $[1];
15479
- let t4;
15480
- if ($[2] !== className) {
15481
- t4 = classNames(ds_popover_module_default.content, className);
15482
- $[2] = className;
15483
- $[3] = t4;
15484
- } else t4 = $[3];
15555
+ const DEFAULT_PANEL_WIDTH = 400;
15556
+ const toPlacement = (side, align) => align === "center" ? side : `${side}-${align}`;
15557
+ const DsPopoverRoot = (t0) => {
15558
+ const $ = c(15);
15559
+ const { open, defaultOpen, side: t1, align: t2, gutter: t3, modal: t4, children, onOpenChange } = t0;
15560
+ const side = t1 === void 0 ? "bottom" : t1;
15561
+ const align = t2 === void 0 ? "center" : t2;
15562
+ const gutter = t3 === void 0 ? 8 : t3;
15563
+ const modal = t4 === void 0 ? false : t4;
15485
15564
  let t5;
15486
- if ($[4] === Symbol.for("react.memo_cache_sentinel")) {
15487
- t5 = /* @__PURE__ */ jsx(Popover$1.Arrow, { className: ds_popover_module_default.arrow });
15488
- $[4] = t5;
15489
- } else t5 = $[4];
15565
+ if ($[0] !== align || $[1] !== side) {
15566
+ t5 = toPlacement(side, align);
15567
+ $[0] = align;
15568
+ $[1] = side;
15569
+ $[2] = t5;
15570
+ } else t5 = $[2];
15490
15571
  let t6;
15491
- if ($[5] !== align || $[6] !== children || $[7] !== side || $[8] !== t4) {
15492
- t6 = /* @__PURE__ */ jsx(Popover$1.Portal, { children: /* @__PURE__ */ jsxs(Popover$1.Content, {
15493
- side,
15494
- align,
15495
- sideOffset: 8,
15496
- collisionPadding: 16,
15497
- className: t4,
15498
- children: [children, t5]
15499
- }) });
15500
- $[5] = align;
15501
- $[6] = children;
15502
- $[7] = side;
15503
- $[8] = t4;
15504
- $[9] = t6;
15505
- } else t6 = $[9];
15572
+ if ($[3] !== gutter || $[4] !== t5) {
15573
+ t6 = {
15574
+ placement: t5,
15575
+ gutter
15576
+ };
15577
+ $[3] = gutter;
15578
+ $[4] = t5;
15579
+ $[5] = t6;
15580
+ } else t6 = $[5];
15506
15581
  let t7;
15507
- if ($[10] !== t3 || $[11] !== t6) {
15508
- t7 = /* @__PURE__ */ jsxs(Popover$1.Root, { children: [t3, t6] });
15509
- $[10] = t3;
15510
- $[11] = t6;
15511
- $[12] = t7;
15512
- } else t7 = $[12];
15513
- return t7;
15582
+ if ($[6] !== onOpenChange) {
15583
+ t7 = (details) => onOpenChange?.(details.open);
15584
+ $[6] = onOpenChange;
15585
+ $[7] = t7;
15586
+ } else t7 = $[7];
15587
+ let t8;
15588
+ if ($[8] !== children || $[9] !== defaultOpen || $[10] !== modal || $[11] !== open || $[12] !== t6 || $[13] !== t7) {
15589
+ t8 = /* @__PURE__ */ jsx(Popover.Root, {
15590
+ open,
15591
+ defaultOpen,
15592
+ modal,
15593
+ positioning: t6,
15594
+ onOpenChange: t7,
15595
+ children
15596
+ });
15597
+ $[8] = children;
15598
+ $[9] = defaultOpen;
15599
+ $[10] = modal;
15600
+ $[11] = open;
15601
+ $[12] = t6;
15602
+ $[13] = t7;
15603
+ $[14] = t8;
15604
+ } else t8 = $[14];
15605
+ return t8;
15514
15606
  };
15515
- //#endregion
15607
+ const DsPopoverTrigger = (t0) => {
15608
+ const $ = c(3);
15609
+ const { children, className } = t0;
15610
+ let t1;
15611
+ if ($[0] !== children || $[1] !== className) {
15612
+ t1 = /* @__PURE__ */ jsx(Popover.Trigger, {
15613
+ asChild: true,
15614
+ className,
15615
+ children
15616
+ });
15617
+ $[0] = children;
15618
+ $[1] = className;
15619
+ $[2] = t1;
15620
+ } else t1 = $[2];
15621
+ return t1;
15622
+ };
15623
+ const DsPopoverPanel = (t0) => {
15624
+ const $ = c(11);
15625
+ const { width: t1, className, style, children, ref, "aria-label": ariaLabel } = t0;
15626
+ const width = t1 === void 0 ? DEFAULT_PANEL_WIDTH : t1;
15627
+ let t2;
15628
+ if ($[0] !== className) {
15629
+ t2 = classNames(ds_popover_module_default.panel, className);
15630
+ $[0] = className;
15631
+ $[1] = t2;
15632
+ } else t2 = $[1];
15633
+ let t3;
15634
+ if ($[2] !== style || $[3] !== width) {
15635
+ t3 = {
15636
+ ...style,
15637
+ width
15638
+ };
15639
+ $[2] = style;
15640
+ $[3] = width;
15641
+ $[4] = t3;
15642
+ } else t3 = $[4];
15643
+ let t4;
15644
+ if ($[5] !== ariaLabel || $[6] !== children || $[7] !== ref || $[8] !== t2 || $[9] !== t3) {
15645
+ t4 = /* @__PURE__ */ jsx(Portal, { children: /* @__PURE__ */ jsx(Popover.Positioner, { children: /* @__PURE__ */ jsx(Popover.Content, {
15646
+ ref,
15647
+ "aria-label": ariaLabel,
15648
+ className: t2,
15649
+ style: t3,
15650
+ children
15651
+ }) }) });
15652
+ $[5] = ariaLabel;
15653
+ $[6] = children;
15654
+ $[7] = ref;
15655
+ $[8] = t2;
15656
+ $[9] = t3;
15657
+ $[10] = t4;
15658
+ } else t4 = $[10];
15659
+ return t4;
15660
+ };
15661
+ const DsPopoverHeader = (t0) => {
15662
+ const $ = c(11);
15663
+ const { icon, className, style, children } = t0;
15664
+ let t1;
15665
+ if ($[0] !== className) {
15666
+ t1 = classNames(ds_popover_module_default.header, className);
15667
+ $[0] = className;
15668
+ $[1] = t1;
15669
+ } else t1 = $[1];
15670
+ let t2;
15671
+ if ($[2] !== icon) {
15672
+ t2 = icon && /* @__PURE__ */ jsx("span", {
15673
+ className: ds_popover_module_default.headerIcon,
15674
+ children: icon
15675
+ });
15676
+ $[2] = icon;
15677
+ $[3] = t2;
15678
+ } else t2 = $[3];
15679
+ let t3;
15680
+ if ($[4] !== children) {
15681
+ t3 = /* @__PURE__ */ jsx(Popover.Title, {
15682
+ className: ds_popover_module_default.title,
15683
+ asChild: true,
15684
+ children: /* @__PURE__ */ jsx(DsTypography, {
15685
+ variant: "heading3",
15686
+ color: "main",
15687
+ children
15688
+ })
15689
+ });
15690
+ $[4] = children;
15691
+ $[5] = t3;
15692
+ } else t3 = $[5];
15693
+ let t4;
15694
+ if ($[6] !== style || $[7] !== t1 || $[8] !== t2 || $[9] !== t3) {
15695
+ t4 = /* @__PURE__ */ jsxs("div", {
15696
+ className: t1,
15697
+ style,
15698
+ children: [t2, t3]
15699
+ });
15700
+ $[6] = style;
15701
+ $[7] = t1;
15702
+ $[8] = t2;
15703
+ $[9] = t3;
15704
+ $[10] = t4;
15705
+ } else t4 = $[10];
15706
+ return t4;
15707
+ };
15708
+ const DsPopoverContent = (t0) => {
15709
+ const $ = c(6);
15710
+ const { className, style, children } = t0;
15711
+ let t1;
15712
+ if ($[0] !== className) {
15713
+ t1 = classNames(ds_popover_module_default.content, className);
15714
+ $[0] = className;
15715
+ $[1] = t1;
15716
+ } else t1 = $[1];
15717
+ let t2;
15718
+ if ($[2] !== children || $[3] !== style || $[4] !== t1) {
15719
+ t2 = /* @__PURE__ */ jsx("div", {
15720
+ className: t1,
15721
+ style,
15722
+ children
15723
+ });
15724
+ $[2] = children;
15725
+ $[3] = style;
15726
+ $[4] = t1;
15727
+ $[5] = t2;
15728
+ } else t2 = $[5];
15729
+ return t2;
15730
+ };
15731
+ const DsPopoverContentItem = (t0) => {
15732
+ const $ = c(11);
15733
+ const { status, headline, className, style, children } = t0;
15734
+ const hasHeader = Boolean(status) || Boolean(headline);
15735
+ let t1;
15736
+ if ($[0] !== hasHeader || $[1] !== headline || $[2] !== status) {
15737
+ t1 = hasHeader && /* @__PURE__ */ jsxs(DsStack, {
15738
+ direction: "row",
15739
+ alignItems: "center",
15740
+ gap: "var(--xs)",
15741
+ children: [status, headline && /* @__PURE__ */ jsx(DsTypography, {
15742
+ variant: "body-sm-semi-bold",
15743
+ color: "main",
15744
+ children: headline
15745
+ })]
15746
+ });
15747
+ $[0] = hasHeader;
15748
+ $[1] = headline;
15749
+ $[2] = status;
15750
+ $[3] = t1;
15751
+ } else t1 = $[3];
15752
+ let t2;
15753
+ if ($[4] !== children) {
15754
+ t2 = children && /* @__PURE__ */ jsx(DsTypography, {
15755
+ variant: "body-sm-reg",
15756
+ color: "main",
15757
+ asChild: true,
15758
+ children: /* @__PURE__ */ jsx(DsStack, {
15759
+ direction: "row",
15760
+ alignItems: "center",
15761
+ gap: "var(--xs)",
15762
+ children
15763
+ })
15764
+ });
15765
+ $[4] = children;
15766
+ $[5] = t2;
15767
+ } else t2 = $[5];
15768
+ let t3;
15769
+ if ($[6] !== className || $[7] !== style || $[8] !== t1 || $[9] !== t2) {
15770
+ t3 = /* @__PURE__ */ jsxs(DsStack, {
15771
+ direction: "column",
15772
+ gap: "var(--xs)",
15773
+ className,
15774
+ style,
15775
+ children: [t1, t2]
15776
+ });
15777
+ $[6] = className;
15778
+ $[7] = style;
15779
+ $[8] = t1;
15780
+ $[9] = t2;
15781
+ $[10] = t3;
15782
+ } else t3 = $[10];
15783
+ return t3;
15784
+ };
15785
+ const DsPopoverFooter = (t0) => {
15786
+ const $ = c(6);
15787
+ const { className, style, children } = t0;
15788
+ let t1;
15789
+ if ($[0] !== className) {
15790
+ t1 = classNames(ds_popover_module_default.footer, className);
15791
+ $[0] = className;
15792
+ $[1] = t1;
15793
+ } else t1 = $[1];
15794
+ let t2;
15795
+ if ($[2] !== children || $[3] !== style || $[4] !== t1) {
15796
+ t2 = /* @__PURE__ */ jsx("div", {
15797
+ className: t1,
15798
+ style,
15799
+ children
15800
+ });
15801
+ $[2] = children;
15802
+ $[3] = style;
15803
+ $[4] = t1;
15804
+ $[5] = t2;
15805
+ } else t2 = $[5];
15806
+ return t2;
15807
+ };
15808
+ /**
15809
+ * Legacy single-element form. Keeps the old call signature and `side` default
15810
+ * ('top') compiling and opening, but now renders the new fixed-width panel —
15811
+ * styling differs from the old Radix popover and the Radix `Popover.Close`
15812
+ * context is no longer wired.
15813
+ * @deprecated Migrate to the compound API (`DsPopover.Root` / `.Trigger` / `.Panel`).
15814
+ */
15815
+ const DsPopoverLegacy = (t0) => {
15816
+ const $ = c(10);
15817
+ const { trigger, children, className, side: t1, align: t2 } = t0;
15818
+ const side = t1 === void 0 ? "top" : t1;
15819
+ const align = t2 === void 0 ? "center" : t2;
15820
+ let t3;
15821
+ if ($[0] !== trigger) {
15822
+ t3 = /* @__PURE__ */ jsx(DsPopoverTrigger, { children: trigger });
15823
+ $[0] = trigger;
15824
+ $[1] = t3;
15825
+ } else t3 = $[1];
15826
+ let t4;
15827
+ if ($[2] !== children || $[3] !== className) {
15828
+ t4 = /* @__PURE__ */ jsx(DsPopoverPanel, {
15829
+ className,
15830
+ children
15831
+ });
15832
+ $[2] = children;
15833
+ $[3] = className;
15834
+ $[4] = t4;
15835
+ } else t4 = $[4];
15836
+ let t5;
15837
+ if ($[5] !== align || $[6] !== side || $[7] !== t3 || $[8] !== t4) {
15838
+ t5 = /* @__PURE__ */ jsxs(DsPopoverRoot, {
15839
+ side,
15840
+ align,
15841
+ children: [t3, t4]
15842
+ });
15843
+ $[5] = align;
15844
+ $[6] = side;
15845
+ $[7] = t3;
15846
+ $[8] = t4;
15847
+ $[9] = t5;
15848
+ } else t5 = $[9];
15849
+ return t5;
15850
+ };
15851
+ const DsPopover = Object.assign(DsPopoverLegacy, {
15852
+ Root: DsPopoverRoot,
15853
+ Trigger: DsPopoverTrigger,
15854
+ Panel: DsPopoverPanel,
15855
+ Header: DsPopoverHeader,
15856
+ Content: DsPopoverContent,
15857
+ ContentItem: DsPopoverContentItem,
15858
+ Footer: DsPopoverFooter
15859
+ });
15860
+ //#endregion
15861
+ //#region src/components/ds-popover/ds-popover.types.ts
15862
+ const popoverSides = [
15863
+ "top",
15864
+ "right",
15865
+ "bottom",
15866
+ "left"
15867
+ ];
15868
+ const popoverAligns = [
15869
+ "start",
15870
+ "center",
15871
+ "end"
15872
+ ];
15873
+ //#endregion
15516
15874
  //#region src/components/ds-progress-arc/ds-progress-arc.module.scss
15517
15875
  var ds_progress_arc_module_default = {
15518
15876
  "center": "GIMU2W_center",
@@ -17281,71 +17639,6 @@ const splitButtonSizes = ["medium", "small"];
17281
17639
  const DsSplitButton = withResponsiveProps(DsSplitButton$1, ["size"]);
17282
17640
  DsSplitButton.displayName = "DsSplitButton";
17283
17641
  //#endregion
17284
- //#region src/components/ds-stack/ds-stack.module.scss
17285
- var ds_stack_module_default = { "root": "efmmNG_root" };
17286
- //#endregion
17287
- //#region src/components/ds-stack/ds-stack.tsx
17288
- const DsStack$1 = (t0) => {
17289
- const $ = c(16);
17290
- const { direction, gap, alignItems, justifyContent, flex, flexWrap, width, children, className, style, ref } = t0;
17291
- let t1;
17292
- if ($[0] !== alignItems || $[1] !== direction || $[2] !== flex || $[3] !== flexWrap || $[4] !== gap || $[5] !== justifyContent || $[6] !== style || $[7] !== width) {
17293
- t1 = {
17294
- flexDirection: direction,
17295
- gap,
17296
- alignItems,
17297
- justifyContent,
17298
- flex,
17299
- flexWrap,
17300
- width,
17301
- ...style
17302
- };
17303
- $[0] = alignItems;
17304
- $[1] = direction;
17305
- $[2] = flex;
17306
- $[3] = flexWrap;
17307
- $[4] = gap;
17308
- $[5] = justifyContent;
17309
- $[6] = style;
17310
- $[7] = width;
17311
- $[8] = t1;
17312
- } else t1 = $[8];
17313
- const layoutStyle = t1;
17314
- let t2;
17315
- if ($[9] !== className) {
17316
- t2 = classNames(ds_stack_module_default.root, className);
17317
- $[9] = className;
17318
- $[10] = t2;
17319
- } else t2 = $[10];
17320
- let t3;
17321
- if ($[11] !== children || $[12] !== layoutStyle || $[13] !== ref || $[14] !== t2) {
17322
- t3 = /* @__PURE__ */ jsx("div", {
17323
- ref,
17324
- className: t2,
17325
- style: layoutStyle,
17326
- children
17327
- });
17328
- $[11] = children;
17329
- $[12] = layoutStyle;
17330
- $[13] = ref;
17331
- $[14] = t2;
17332
- $[15] = t3;
17333
- } else t3 = $[15];
17334
- return t3;
17335
- };
17336
- //#endregion
17337
- //#region src/components/ds-stack/index.ts
17338
- const DsStack = withResponsiveProps(DsStack$1, [
17339
- "direction",
17340
- "gap",
17341
- "alignItems",
17342
- "justifyContent",
17343
- "flex",
17344
- "flexWrap",
17345
- "width"
17346
- ]);
17347
- DsStack.displayName = "DsStack";
17348
- //#endregion
17349
17642
  //#region src/components/ds-status-badge/ds-status-badge.module.scss
17350
17643
  var ds_status_badge_module_default = {
17351
17644
  "active": "U5k6UG_active",
@@ -18822,6 +19115,7 @@ var ds_table_header_module_default = {
18822
19115
  "filterableHeader": "-2rCNG_filterableHeader",
18823
19116
  "filterActive": "-2rCNG_filterActive",
18824
19117
  "filterTriggerContainer": "-2rCNG_filterTriggerContainer",
19118
+ "groupStart": "-2rCNG_groupStart",
18825
19119
  "headerCell": "-2rCNG_headerCell",
18826
19120
  "headerRow": "-2rCNG_headerRow",
18827
19121
  "headerRowNoBorder": "-2rCNG_headerRowNoBorder",
@@ -18948,6 +19242,154 @@ const SELECT_COLUMN_ID = "select";
18948
19242
  */
18949
19243
  const REORDER_COLUMN_ID = "reorder";
18950
19244
  //#endregion
19245
+ //#region src/components/ds-table/grouping/utils/column-group.ts
19246
+ /**
19247
+ * Builds the flex style for a group header cell so it lines up with the combined
19248
+ * width of its visible leaf columns.
19249
+ *
19250
+ * Fixed-width leaves contribute to `flexBasis`; default-sized leaves each add one
19251
+ * unit of `flexGrow`, mirroring how {@link getColumnSizeStyle} sizes leaf cells so
19252
+ * both header rows distribute free space identically.
19253
+ */
19254
+ const getGroupColumnSizeStyle = (leafColumns) => {
19255
+ let fixedWidth = 0;
19256
+ let flexCount = 0;
19257
+ for (const leaf of leafColumns) {
19258
+ const size = leaf.getSize();
19259
+ if (size !== defaultColumnSizing.size) fixedWidth += size;
19260
+ else flexCount += 1;
19261
+ }
19262
+ if (flexCount === 0) return {
19263
+ width: fixedWidth,
19264
+ minWidth: fixedWidth,
19265
+ flexShrink: 0
19266
+ };
19267
+ return {
19268
+ flexGrow: flexCount,
19269
+ flexShrink: 0,
19270
+ flexBasis: fixedWidth,
19271
+ minWidth: fixedWidth
19272
+ };
19273
+ };
19274
+ /**
19275
+ * Whether a column is the first visible leaf of its parent group. Used to draw a
19276
+ * single side border at the start of each group in both the header and body.
19277
+ */
19278
+ const isFirstLeafColumnOfGroup = (column) => {
19279
+ const parent = column.parent;
19280
+ if (!parent) return false;
19281
+ return parent.getLeafColumns().filter((leaf) => leaf.getIsVisible())[0]?.id === column.id;
19282
+ };
19283
+ const getLeafColumnId = (def) => def.id ?? def.accessorKey;
19284
+ /**
19285
+ * Collects the ids of groups declared with `meta.group.defaultCollapsed`, used to
19286
+ * seed the uncontrolled collapse state.
19287
+ */
19288
+ const getInitialCollapsedGroups = (columns) => {
19289
+ const collapsed = [];
19290
+ const visit = (defs) => {
19291
+ for (const def of defs) if (def.columns) {
19292
+ if (def.id && def.meta?.group?.defaultCollapsed) collapsed.push(def.id);
19293
+ visit(def.columns);
19294
+ }
19295
+ };
19296
+ visit(columns);
19297
+ return collapsed;
19298
+ };
19299
+ /**
19300
+ * Maps collapsed groups to a {@link VisibilityState} that hides every leaf column
19301
+ * inside a collapsed group except those flagged `meta.keepVisibleWhenCollapsed`.
19302
+ * Layered on top of the consumer's own visibility so collapse never mutates it.
19303
+ */
19304
+ const getCollapsedColumnVisibility = (columns, collapsedGroupIds) => {
19305
+ const visibility = {};
19306
+ const visit = (defs, isInsideCollapsedGroup) => {
19307
+ for (const def of defs) {
19308
+ if (def.columns) {
19309
+ const isGroupCollapsed = isInsideCollapsedGroup || !!def.id && collapsedGroupIds.includes(def.id);
19310
+ visit(def.columns, isGroupCollapsed);
19311
+ continue;
19312
+ }
19313
+ if (!isInsideCollapsedGroup || def.meta?.keepVisibleWhenCollapsed) continue;
19314
+ const columnId = getLeafColumnId(def);
19315
+ if (columnId) visibility[columnId] = false;
19316
+ }
19317
+ };
19318
+ visit(columns, false);
19319
+ return visibility;
19320
+ };
19321
+ //#endregion
19322
+ //#region src/components/ds-table/grouping/hooks/use-column-groups.ts
19323
+ /**
19324
+ * Manages column-group collapse state. Supports both controlled
19325
+ * (`collapsedColumnGroups` + `onCollapsedColumnGroupsChange`) and uncontrolled
19326
+ * usage (seeded from `meta.group.defaultCollapsed`).
19327
+ */
19328
+ const useColumnGroups = ({ columns, collapsedColumnGroups, onCollapsedColumnGroupsChange }) => {
19329
+ const [collapsed, setCollapsed] = useControlled(collapsedColumnGroups, onCollapsedColumnGroupsChange, getInitialCollapsedGroups(columns));
19330
+ const toggleColumnGroup = (groupId) => {
19331
+ setCollapsed(collapsed.includes(groupId) ? collapsed.filter((id) => id !== groupId) : [...collapsed, groupId]);
19332
+ };
19333
+ return {
19334
+ collapsedColumnGroups: collapsed,
19335
+ toggleColumnGroup,
19336
+ collapsedVisibility: useMemo(() => getCollapsedColumnVisibility(columns, collapsed), [columns, collapsed])
19337
+ };
19338
+ };
19339
+ //#endregion
19340
+ //#region src/components/ds-table/ds-table.types.ts
19341
+ /**
19342
+ * Default English strings for {@link DsTableLocale}.
19343
+ */
19344
+ const defaultDsTableLocale = Object.freeze({
19345
+ collapseColumnGroup: "Collapse column group",
19346
+ expandColumnGroup: "Expand column group"
19347
+ });
19348
+ //#endregion
19349
+ //#region src/components/ds-table/components/ds-table-group-header-cell/ds-table-group-header-cell.module.scss
19350
+ var ds_table_group_header_cell_module_default = {
19351
+ "collapseToggle": "HuJ4KG_collapseToggle",
19352
+ "groupHeaderCell": "HuJ4KG_groupHeaderCell",
19353
+ "groupHeaderContent": "HuJ4KG_groupHeaderContent",
19354
+ "groupLabel": "HuJ4KG_groupLabel"
19355
+ };
19356
+ //#endregion
19357
+ //#region src/components/ds-table/components/ds-table-group-header-cell/ds-table-group-header-cell.tsx
19358
+ const DsTableGroupHeaderCell = ({ header }) => {
19359
+ const { collapsedColumnGroups, onToggleColumnGroup, locale } = useDsTableContext();
19360
+ const groupId = header.column.id;
19361
+ const groupStyle = getGroupColumnSizeStyle(header.column.getLeafColumns().filter((leaf) => leaf.getIsVisible()));
19362
+ const isCollapsible = header.column.columnDef.meta?.group?.collapsible ?? false;
19363
+ const isCollapsed = collapsedColumnGroups?.includes(groupId) ?? false;
19364
+ const mergedLocale = {
19365
+ ...defaultDsTableLocale,
19366
+ ...locale
19367
+ };
19368
+ const toggleLabel = isCollapsed ? mergedLocale.expandColumnGroup : mergedLocale.collapseColumnGroup;
19369
+ const handleToggle = () => onToggleColumnGroup?.(groupId);
19370
+ return /* @__PURE__ */ jsx(TableHead, {
19371
+ className: ds_table_group_header_cell_module_default.groupHeaderCell,
19372
+ style: groupStyle,
19373
+ colSpan: header.colSpan,
19374
+ children: /* @__PURE__ */ jsxs("div", {
19375
+ className: ds_table_group_header_cell_module_default.groupHeaderContent,
19376
+ children: [/* @__PURE__ */ jsx("span", {
19377
+ className: ds_table_group_header_cell_module_default.groupLabel,
19378
+ children: flexRender(header.column.columnDef.header, header.getContext())
19379
+ }), isCollapsible && /* @__PURE__ */ jsx(DsButtonV3, {
19380
+ variant: "secondary",
19381
+ size: "tiny",
19382
+ icon: isCollapsed ? "chevron_right" : "chevron_left",
19383
+ className: ds_table_group_header_cell_module_default.collapseToggle,
19384
+ "aria-label": toggleLabel,
19385
+ "aria-expanded": !isCollapsed,
19386
+ title: toggleLabel,
19387
+ onClick: handleToggle
19388
+ })]
19389
+ })
19390
+ });
19391
+ };
19392
+ //#endregion
18951
19393
  //#region src/components/ds-table/components/ds-table-header/ds-table-header.tsx
18952
19394
  const DsTableHeader = ({ table }) => {
18953
19395
  const { stickyHeader, bordered, virtualized } = useDsTableContext();
@@ -18956,17 +19398,23 @@ const DsTableHeader = ({ table }) => {
18956
19398
  children: table.getHeaderGroups().map((headerGroup) => /* @__PURE__ */ jsx(TableRow, {
18957
19399
  className: classNames(ds_table_header_module_default.headerRow, !bordered && ds_table_header_module_default.headerRowNoBorder, virtualized && ds_table_header_module_default.headerRowVirtualized),
18958
19400
  children: headerGroup.headers.map((header) => {
19401
+ if (header.isPlaceholder) return /* @__PURE__ */ jsx(TableHead, {
19402
+ className: ds_table_header_module_default.headerCell,
19403
+ style: getColumnSizeStyle(header.getSize())
19404
+ }, header.id);
19405
+ if (header.subHeaders.length > 0) return /* @__PURE__ */ jsx(DsTableGroupHeaderCell, { header }, header.id);
18959
19406
  const headerStyle = getColumnSizeStyle(header.column.getSize());
18960
19407
  const canSort = header.column.getCanSort();
18961
19408
  const isSelectColumn = header.column.id === SELECT_COLUMN_ID;
19409
+ const isGroupStart = isFirstLeafColumnOfGroup(header.column);
18962
19410
  const metaFilter = header.column.columnDef.meta?.filter;
18963
19411
  const resolvedFilter = metaFilter && "render" in metaFilter ? metaFilter : void 0;
18964
19412
  const hasActiveColumnFilter = resolvedFilter?.hasActiveFilter ?? false;
18965
19413
  return /* @__PURE__ */ jsx(TableHead, {
18966
- className: classNames(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),
19414
+ className: classNames(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),
18967
19415
  onClick: header.column.getToggleSortingHandler(),
18968
19416
  style: headerStyle,
18969
- children: header.isPlaceholder ? null : /* @__PURE__ */ jsxs("div", {
19417
+ children: /* @__PURE__ */ jsxs("div", {
18970
19418
  className: ds_table_header_module_default.headerSortContainer,
18971
19419
  children: [
18972
19420
  /* @__PURE__ */ jsx(DsStack, {
@@ -19234,6 +19682,7 @@ var ds_table_row_module_default = {
19234
19682
  "expandableCell": "t8OZCq_expandableCell",
19235
19683
  "expanded": "t8OZCq_expanded",
19236
19684
  "expandedRow": "t8OZCq_expandedRow",
19685
+ "groupStart": "t8OZCq_groupStart",
19237
19686
  "isDragging": "t8OZCq_isDragging",
19238
19687
  "rowDragHandle": "t8OZCq_rowDragHandle",
19239
19688
  "rowNoBorder": "t8OZCq_rowNoBorder",
@@ -19299,7 +19748,7 @@ const DsTableRow = ({ ref, row, isSelected }) => {
19299
19748
  }, cell.id);
19300
19749
  const isLastColumn = idx === row.getVisibleCells().length - 1;
19301
19750
  return /* @__PURE__ */ jsx(TableCell, {
19302
- className: classNames(ds_table_row_module_default.tableCell, cell.column.id === "expander" && ds_table_row_module_default.expandableCell, cell.column.id === "select" && ds_table_row_module_default.selectableCell, typeof cell.column.columnDef.editCell === "function" && ds_table_row_module_default.editableCell),
19751
+ className: classNames(ds_table_row_module_default.tableCell, cell.column.id === "expander" && ds_table_row_module_default.expandableCell, cell.column.id === "select" && ds_table_row_module_default.selectableCell, isFirstLeafColumnOfGroup(cell.column) && ds_table_row_module_default.groupStart, typeof cell.column.columnDef.editCell === "function" && ds_table_row_module_default.editableCell),
19303
19752
  style: cellStyle,
19304
19753
  children: isLastColumn ? /* @__PURE__ */ jsx(DsTableCell, {
19305
19754
  row,
@@ -19433,6 +19882,7 @@ var ds_table_row_virtualized_module_default = {
19433
19882
  "expanded": "NcME7q_expanded",
19434
19883
  "expandedRow": "NcME7q_expandedRow",
19435
19884
  "expandedRowContent": "NcME7q_expandedRowContent",
19885
+ "groupStart": "NcME7q_groupStart",
19436
19886
  "row": "NcME7q_row",
19437
19887
  "rowNoBorder": "NcME7q_rowNoBorder",
19438
19888
  "selectableCell": "NcME7q_selectableCell",
@@ -19469,7 +19919,7 @@ const DsTableRowVirtualized = ({ row, isSelected, rowsMapRef, rowHeightsMapRef,
19469
19919
  const isLastColumn = idx === row.getVisibleCells().length - 1;
19470
19920
  return /* @__PURE__ */ jsx(TableCell, {
19471
19921
  style: getColumnSizeStyle(cell.column.getSize()),
19472
- className: classNames(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, typeof cell.column.columnDef.editCell === "function" && ds_table_row_virtualized_module_default.editableCell),
19922
+ className: classNames(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),
19473
19923
  children: isLastColumn ? /* @__PURE__ */ jsx(DsTableCell, {
19474
19924
  row,
19475
19925
  cell,
@@ -19579,6 +20029,7 @@ const DsTableBodyVirtualized = ({ table, emptyState, estimateSize, overscan, onS
19579
20029
  function DsTableBody({ ref, rowVirtualizer, rowsMapRef, rowHeightsMapRef, rowsAndExpandedRowContent, emptyState, rowSelection }) {
19580
20030
  const virtualRows = rowVirtualizer.getVirtualItems();
19581
20031
  const totalSize = rowVirtualizer.getTotalSize();
20032
+ const hasNoData = rowsAndExpandedRowContent.length === 0;
19582
20033
  return /* @__PURE__ */ jsxs(TableBody, {
19583
20034
  ref,
19584
20035
  className: ds_table_body_virtualized_module_default.body,
@@ -19594,10 +20045,10 @@ function DsTableBody({ ref, rowVirtualizer, rowsMapRef, rowHeightsMapRef, rowsAn
19594
20045
  rowVirtualizer,
19595
20046
  virtualRow
19596
20047
  }, virtualRow.key);
19597
- }) : /* @__PURE__ */ jsx(TableRow, { children: /* @__PURE__ */ jsx(TableCell, {
20048
+ }) : hasNoData ? /* @__PURE__ */ jsx(TableRow, { children: /* @__PURE__ */ jsx(TableCell, {
19598
20049
  className: ds_table_body_virtualized_module_default.emptyState,
19599
20050
  children: emptyState || "No results."
19600
- }) }), /* @__PURE__ */ jsx("tr", {
20051
+ }) }) : null, /* @__PURE__ */ jsx("tr", {
19601
20052
  "aria-hidden": true,
19602
20053
  className: ds_table_body_virtualized_module_default.sentinel,
19603
20054
  style: { top: `${totalSize.toString()}px` },
@@ -19615,7 +20066,7 @@ const ROW_SIZE_HEIGHT_MAP = {
19615
20066
  /**
19616
20067
  * Design system Table component
19617
20068
  */
19618
- const DsTable = ({ ref, columns: columnsProp, data: tableData, virtualized = false, virtualizedOptions, className, onRowClick, emptyState, stickyHeader = true, bordered = true, fullWidth = true, rowSize = "medium", expandable = false, renderExpandedRow, selectable = false, showSelectAllCheckbox = true, onSelectionChange, onSortingChange, onScroll, actions = [], onRowDoubleClick, primaryRowActions = [], secondaryRowActions, reorderable = false, onOrderChange, columnFilters: externalColumnFilters, onColumnFiltersChange, columnVisibility: externalColumnVisibility, onColumnVisibilityChange, activeRowId, infiniteScroll, onCellEdit, onCellValidate }) => {
20069
+ const DsTable = ({ ref, columns: columnsProp, data: tableData, virtualized = false, virtualizedOptions, className, onRowClick, emptyState, stickyHeader = true, bordered = true, fullWidth = true, rowSize = "medium", expandable = false, renderExpandedRow, selectable = false, showSelectAllCheckbox = true, onSelectionChange, onSortingChange, onScroll, actions = [], onRowDoubleClick, primaryRowActions = [], secondaryRowActions, reorderable = false, onOrderChange, columnFilters: externalColumnFilters, onColumnFiltersChange, columnVisibility: externalColumnVisibility, onColumnVisibilityChange, collapsedColumnGroups: externalCollapsedColumnGroups, onCollapsedColumnGroupsChange, locale, activeRowId, infiniteScroll, onCellEdit, onCellValidate }) => {
19619
20070
  const [data, setData] = React$1.useState(tableData);
19620
20071
  const [sorting, setSorting] = React$1.useState([]);
19621
20072
  const [internalColumnFilters, setInternalColumnFilters] = React$1.useState([]);
@@ -19636,12 +20087,21 @@ const DsTable = ({ ref, columns: columnsProp, data: tableData, virtualized = fal
19636
20087
  if (onColumnFiltersChange) onColumnFiltersChange(newFilters);
19637
20088
  else setInternalColumnFilters(newFilters);
19638
20089
  };
19639
- const columnVisibility = externalColumnVisibility ?? internalColumnVisibility;
20090
+ const baseColumnVisibility = externalColumnVisibility ?? internalColumnVisibility;
19640
20091
  const handleColumnVisibilityChange = (updaterOrValue) => {
19641
- const newVisibility = typeof updaterOrValue === "function" ? updaterOrValue(columnVisibility) : updaterOrValue;
20092
+ const newVisibility = typeof updaterOrValue === "function" ? updaterOrValue(baseColumnVisibility) : updaterOrValue;
19642
20093
  if (onColumnVisibilityChange) onColumnVisibilityChange(newVisibility);
19643
20094
  else setInternalColumnVisibility(newVisibility);
19644
20095
  };
20096
+ const { collapsedColumnGroups, toggleColumnGroup, collapsedVisibility } = useColumnGroups({
20097
+ columns: columnsProp,
20098
+ collapsedColumnGroups: externalCollapsedColumnGroups,
20099
+ onCollapsedColumnGroupsChange
20100
+ });
20101
+ const columnVisibility = useMemo(() => ({
20102
+ ...baseColumnVisibility,
20103
+ ...collapsedVisibility
20104
+ }), [baseColumnVisibility, collapsedVisibility]);
19645
20105
  const handleSortingChange = (updaterOrValue) => {
19646
20106
  const newSorting = typeof updaterOrValue === "function" ? updaterOrValue(sorting) : updaterOrValue;
19647
20107
  setSorting(newSorting);
@@ -19782,6 +20242,9 @@ const DsTable = ({ ref, columns: columnsProp, data: tableData, virtualized = fal
19782
20242
  renderExpandedRow,
19783
20243
  virtualized,
19784
20244
  activeRowId,
20245
+ collapsedColumnGroups,
20246
+ onToggleColumnGroup: toggleColumnGroup,
20247
+ locale,
19785
20248
  onCellEdit,
19786
20249
  ...useEditingState(onCellEdit, onCellValidate)
19787
20250
  };
@@ -21358,6 +21821,6 @@ DsWorkspaceLayout.Body = Body;
21358
21821
  DsWorkspaceLayout.SideMenu = SideMenu;
21359
21822
  DsWorkspaceLayout.LeftPanel = LeftPanel;
21360
21823
  //#endregion
21361
- export { BREAKPOINT_LG, DsAlertBanner, DsAutocomplete, DsAvatar, DsAvatarGroup, DsBreadcrumb, DsButton, DsButtonV3, DsCard, DsCatalogLayout, DsCheckbox, DsCheckboxGroup, DsChip, DsChipGroup, DsCommentBubble, DsCommentCard, DsCommentIndicator, DsCommentThread, DsCommentsDrawer, DsConfirmation, DsDateInput, DsDatePicker, DsDateRangePicker, DsDialog, DsDivider, DsDrawer, DsDropdownMenu, DsDropdownMenuLegacy, DsExpandableTextInput, DsFileUpload, DsFilterStatusIcon, DsFormControl, DsGrid, DsGridItem, DsIcon, DsKeyValuePair, DsLoader, DsModal, DsNextStepButton, DsNumberInput, DsPanel, DsPasswordInput, DsPopover, DsProgressArc, DsProgressDonut, DsProgressLinear, DsRadioGroup, DsRadioGroupLegacy, DsSegmentGroup, DsSelect, ds_skeleton_default as DsSkeleton, DsSkeletonCircle, DsSkeletonRect, DsSkeletonText, DsSmartTabs, DsSpinner, DsSplitButton, DsStack, DsStatusBadge, DsStatusBadgeV2, DsStep, DsStepContent, DsStepper, DsSystemStatus, DsTable, DsTableColumnFilterPopover, DsTableEditCellCheckbox, DsTableEditCellDate, DsTableEditCellNumber, DsTableEditCellSelect, DsTableEditCellText, DsTableEditableCell, DsTableEditingCell, DsTabs, DsTag, DsTagFilter, DsTextInput, DsTextarea, DsThreadItem, DsTimePicker, DsToastProvider, DsToggle, DsTooltip, DsTree, DsTypography, DsVerticalTabs, DsWorkspaceLayout, FatalFileUploadError, FileUpload, FileUploadError, RetryableFileUploadError, alertBannerVariants, breakpoints, buttonV3Colors, buttonV3Sizes, buttonV3Variants, cardSizes, checkboxVariants, colors, controlStatuses, createCheckboxFilterAdapter, createDsTreeCollection, createDualRangeFilterAdapter, createFilterAdapter, customIcons, dropdownMenuItemVariants, dsKeyValuePairOrientations, filterStatuses, formatTime, iconColors, iconSizes, iconVariants, isCustomIcon, isResponsiveValue, loaderVariants, progressArcSizes, progressArcVariants, progressDonutSizes, progressDonutVariants, progressLinearSizes, progressLinearVariants, resolveResponsiveValue, skeletonColorVariants, skeletonRadiusVariants, spinnerSizes, splitButtonSizes, statusBadgeV2Phases, statusBadgeV2Sizes, statusBadgeV2Variants, systemStatuses, tagSizes, tagVariants, textInputSizes, useBreakpoint, useCellEditor, useCheckboxSelectAll, useFileUpload, useResponsiveValue, useTableFilters, useToaster, withResponsiveProps };
21824
+ export { BREAKPOINT_LG, DsAlertBanner, DsAutocomplete, DsAvatar, DsAvatarGroup, DsBreadcrumb, DsButton, DsButtonV3, DsCard, DsCatalogLayout, DsCheckbox, DsCheckboxGroup, DsChip, DsChipGroup, DsCommentBubble, DsCommentCard, DsCommentIndicator, DsCommentThread, DsCommentsDrawer, DsConfirmation, DsDateInput, DsDatePicker, DsDateRangePicker, DsDialog, DsDivider, DsDrawer, DsDropdownMenu, DsDropdownMenuLegacy, DsExpandableTextInput, DsFileUpload, DsFilterStatusIcon, DsFormControl, DsGrid, DsGridItem, DsIcon, DsKeyValuePair, DsLoader, DsModal, DsNextStepButton, DsNumberInput, DsPanel, DsPasswordInput, DsPopover, DsProgressArc, DsProgressDonut, DsProgressLinear, DsRadioGroup, DsRadioGroupLegacy, DsSegmentGroup, DsSelect, ds_skeleton_default as DsSkeleton, DsSkeletonCircle, DsSkeletonRect, DsSkeletonText, DsSmartTabs, DsSpinner, DsSplitButton, DsStack, DsStatusBadge, DsStatusBadgeV2, DsStep, DsStepContent, DsStepper, DsSystemStatus, DsTable, DsTableColumnFilterPopover, DsTableEditCellCheckbox, DsTableEditCellDate, DsTableEditCellNumber, DsTableEditCellSelect, DsTableEditCellText, DsTableEditableCell, DsTableEditingCell, DsTabs, DsTag, DsTagFilter, DsTextInput, DsTextarea, DsThreadItem, DsTimePicker, DsToastProvider, DsToggle, DsTooltip, DsTree, DsTypography, DsVerticalTabs, DsWorkspaceLayout, FatalFileUploadError, FileUpload, FileUploadError, RetryableFileUploadError, alertBannerVariants, breakpoints, buttonV3Colors, buttonV3Sizes, buttonV3Variants, cardSizes, checkboxVariants, colors, controlStatuses, createCheckboxFilterAdapter, createDsTreeCollection, createDualRangeFilterAdapter, createFilterAdapter, customIcons, defaultDsTableLocale, dropdownMenuItemVariants, dsKeyValuePairOrientations, filterStatuses, formatTime, iconColors, iconSizes, iconVariants, isCustomIcon, isResponsiveValue, loaderVariants, popoverAligns, popoverSides, progressArcSizes, progressArcVariants, progressDonutSizes, progressDonutVariants, progressLinearSizes, progressLinearVariants, resolveResponsiveValue, skeletonColorVariants, skeletonRadiusVariants, spinnerSizes, splitButtonSizes, statusBadgeV2Phases, statusBadgeV2Sizes, statusBadgeV2Variants, systemStatuses, tagSizes, tagVariants, textInputSizes, useBreakpoint, useCellEditor, useCheckboxSelectAll, useFileUpload, useResponsiveValue, useTableFilters, useToaster, withResponsiveProps };
21362
21825
 
21363
21826
  //# sourceMappingURL=index.js.map