@aivenio/aquarium 6.4.0 → 6.6.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.
package/dist/system.cjs CHANGED
@@ -567,235 +567,225 @@ var data7 = {
567
567
  };
568
568
  var calendar_default = data7;
569
569
 
570
- // src/icons/caretDownFilled.js
571
- var data8 = {
572
- "body": '<path fill="currentColor" d="M6.386 8.532a.5.5 0 01-.772 0l-3.27-3.964a.5.5 0 01.386-.818h6.54a.5.5 0 01.385.818l-3.27 3.964Z"/>',
573
- "left": 0,
574
- "top": 0,
575
- "width": 12,
576
- "height": 12
577
- };
578
- var caretDownFilled_default = data8;
579
-
580
570
  // src/icons/caretDown.js
581
- var data9 = {
571
+ var data8 = {
582
572
  "body": '<path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="m5.5 8.25 5.5 5.5 5.5-5.5"/>',
583
573
  "left": 0,
584
574
  "top": 0,
585
575
  "width": 22,
586
576
  "height": 22
587
577
  };
588
- var caretDown_default = data9;
578
+ var caretDown_default = data8;
589
579
 
590
- // src/icons/caretUpFilled.js
591
- var data10 = {
592
- "body": '<path fill="currentColor" d="M5.614 3.468a.5.5 0 01.772 0l3.27 3.964a.5.5 0 01-.386.818H2.73a.5.5 0 01-.385-.818l3.27-3.964Z"/>',
580
+ // src/icons/caretRight.js
581
+ var data9 = {
582
+ "body": '<path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="m8.25 16.5 5.5-5.5-5.5-5.5"/>',
593
583
  "left": 0,
594
584
  "top": 0,
595
- "width": 12,
596
- "height": 12
585
+ "width": 22,
586
+ "height": 22
597
587
  };
598
- var caretUpFilled_default = data10;
588
+ var caretRight_default = data9;
599
589
 
600
590
  // src/icons/caretUp.js
601
- var data11 = {
591
+ var data10 = {
602
592
  "body": '<path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="M16.5 13.75 11 8.25l-5.5 5.5"/>',
603
593
  "left": 0,
604
594
  "top": 0,
605
595
  "width": 22,
606
596
  "height": 22
607
597
  };
608
- var caretUp_default = data11;
598
+ var caretUp_default = data10;
609
599
 
610
600
  // src/icons/chevronBackward.js
611
- var data12 = {
601
+ var data11 = {
612
602
  "body": '<path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="M7 4v14m8-1.25-5.5-5.5 5.5-5.5"/>',
613
603
  "left": 0,
614
604
  "top": 0,
615
605
  "width": 22,
616
606
  "height": 22
617
607
  };
618
- var chevronBackward_default = data12;
608
+ var chevronBackward_default = data11;
619
609
 
620
610
  // src/icons/chevronForward.js
621
- var data13 = {
611
+ var data12 = {
622
612
  "body": '<path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="M15 4v14m-8-1.25 5.5-5.5L7 5.75"/>',
623
613
  "left": 0,
624
614
  "top": 0,
625
615
  "width": 22,
626
616
  "height": 22
627
617
  };
628
- var chevronForward_default = data13;
618
+ var chevronForward_default = data12;
629
619
 
630
620
  // src/icons/chevronLeft.js
631
- var data14 = {
621
+ var data13 = {
632
622
  "body": '<path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="M13.75 16.5 8.25 11l5.5-5.5"/>',
633
623
  "left": 0,
634
624
  "top": 0,
635
625
  "width": 22,
636
626
  "height": 22
637
627
  };
638
- var chevronLeft_default = data14;
628
+ var chevronLeft_default = data13;
639
629
 
640
630
  // src/icons/chevronRight.js
641
- var data15 = {
631
+ var data14 = {
642
632
  "body": '<path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="m8.25 16.5 5.5-5.5-5.5-5.5"/>',
643
633
  "left": 0,
644
634
  "top": 0,
645
635
  "width": 22,
646
636
  "height": 22
647
637
  };
648
- var chevronRight_default = data15;
638
+ var chevronRight_default = data14;
649
639
 
650
640
  // src/icons/confirm.js
651
- var data16 = {
641
+ var data15 = {
652
642
  "body": '<path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="M20.167 10.162v.843a9.166 9.166 0 11-5.436-8.378m5.436 1.04L11 12.842l-2.75-2.75"/>',
653
643
  "left": 0,
654
644
  "top": 0,
655
645
  "width": 22,
656
646
  "height": 22
657
647
  };
658
- var confirm_default = data16;
648
+ var confirm_default = data15;
659
649
 
660
650
  // src/icons/cross.js
661
- var data17 = {
651
+ var data16 = {
662
652
  "body": '<path fill="currentColor" fill-rule="evenodd" d="m12.293 11 3.932-3.933a.885.885 0 00.275-.65.92.92 0 00-1.568-.651L11 9.707 7.067 5.766a.92.92 0 00-1.302 1.302L9.708 11l-3.932 3.932a.885.885 0 00-.275.651.92.92 0 001.567.651L11 12.292l3.932 3.933a.885.885 0 00.651.275.92.92 0 00.651-1.568L12.292 11Z" clip-rule="evenodd"/>',
663
653
  "left": 0,
664
654
  "top": 0,
665
655
  "width": 22,
666
656
  "height": 22
667
657
  };
668
- var cross_default = data17;
658
+ var cross_default = data16;
669
659
 
670
660
  // src/icons/error.js
671
- var data18 = {
661
+ var data17 = {
672
662
  "body": '<path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="M11 7.333V11m0 3.667h.01M20.166 11a9.167 9.167 0 11-18.334 0 9.167 9.167 0 0118.334 0Z"/>',
673
663
  "left": 0,
674
664
  "top": 0,
675
665
  "width": 22,
676
666
  "height": 22
677
667
  };
678
- var error_default = data18;
668
+ var error_default = data17;
679
669
 
680
670
  // src/icons/infoSign.js
681
- var data19 = {
671
+ var data18 = {
682
672
  "body": '<path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="M11 7.333V9m0 7v-4m9.167-1a9.167 9.167 0 11-18.334 0 9.167 9.167 0 0118.334 0Z"/>',
683
673
  "left": 0,
684
674
  "top": 0,
685
675
  "width": 22,
686
676
  "height": 22
687
677
  };
688
- var infoSign_default = data19;
678
+ var infoSign_default = data18;
689
679
 
690
680
  // src/icons/loading.js
691
- var data20 = {
681
+ var data19 = {
692
682
  "body": '<g fill="none" fill-rule="evenodd" stroke="currentColor" stroke-width="3" transform="translate(1 1)"><circle cx="18" cy="18" r="18" stroke-opacity=".5"/><path d="M36 18c0-9.94-8.06-18-18-18"><animateTransform attributeName="transform" dur="1s" from="0 18 18" repeatCount="indefinite" to="360 18 18" type="rotate"/></path></g>',
693
683
  "left": 0,
694
684
  "top": 0,
695
685
  "width": 38,
696
686
  "height": 38
697
687
  };
698
- var loading_default = data20;
688
+ var loading_default = data19;
699
689
 
700
690
  // src/icons/lock.js
701
- var data21 = {
691
+ var data20 = {
702
692
  "body": '<path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="M15.583 9.167V7.333a4.583 4.583 0 10-9.166 0v1.834M11 13.292v1.833M8.067 19.25h5.866c1.54 0 2.31 0 2.899-.3a2.75 2.75 0 001.202-1.201c.3-.589.3-1.359.3-2.899v-1.283c0-1.54 0-2.31-.3-2.899a2.75 2.75 0 00-1.202-1.202c-.588-.3-1.359-.3-2.899-.3H8.067c-1.54 0-2.31 0-2.899.3a2.75 2.75 0 00-1.202 1.202c-.3.588-.3 1.359-.3 2.899v1.283c0 1.54 0 2.31.3 2.899a2.75 2.75 0 001.202 1.201c.588.3 1.359.3 2.899.3Z"/>',
703
693
  "left": 0,
704
694
  "top": 0,
705
695
  "width": 22,
706
696
  "height": 22
707
697
  };
708
- var lock_default = data21;
698
+ var lock_default = data20;
709
699
 
710
700
  // src/icons/minus.js
711
- var data22 = {
701
+ var data21 = {
712
702
  "body": '<path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="M4.583 11h12.834"/>',
713
703
  "left": 0,
714
704
  "top": 0,
715
705
  "width": 22,
716
706
  "height": 22
717
707
  };
718
- var minus_default = data22;
708
+ var minus_default = data21;
719
709
 
720
710
  // src/icons/more.js
721
- var data23 = {
711
+ var data22 = {
722
712
  "body": '<g fill="none"><path fill="currentColor" d="M11 12a1 1 0 100-2 1 1 0 000 2Zm8 0a1 1 0 100-2 1 1 0 000 2ZM3 12a1 1 0 100-2 1 1 0 000 2Z"/><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2.5" d="M11 12a1 1 0 100-2 1 1 0 000 2Zm8 0a1 1 0 100-2 1 1 0 000 2ZM3 12a1 1 0 100-2 1 1 0 000 2Z"/></g>',
723
713
  "left": 0,
724
714
  "top": 0,
725
715
  "width": 22,
726
716
  "height": 22
727
717
  };
728
- var more_default = data23;
718
+ var more_default = data22;
729
719
 
730
720
  // src/icons/questionMark.js
731
- var data24 = {
721
+ var data23 = {
732
722
  "body": '<path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="M8.332 8.25a2.75 2.75 0 015.345.917c0 1.833-2.75 2.75-2.75 2.75M11 16.5s-.004-1.11 0-1.5m9.167-4a9.167 9.167 0 11-18.334 0 9.167 9.167 0 0118.334 0Z"/>',
733
723
  "left": 0,
734
724
  "top": 0,
735
725
  "width": 22,
736
726
  "height": 22
737
727
  };
738
- var questionMark_default = data24;
728
+ var questionMark_default = data23;
739
729
 
740
730
  // src/icons/slash.js
741
- var data25 = {
731
+ var data24 = {
742
732
  "body": '<path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="m6.417 20.167 9.166-18.334"/>',
743
733
  "left": 0,
744
734
  "top": 0,
745
735
  "width": 22,
746
736
  "height": 22
747
737
  };
748
- var slash_default = data25;
738
+ var slash_default = data24;
749
739
 
750
740
  // src/icons/smallCross.js
751
- var data26 = {
741
+ var data25 = {
752
742
  "body": '<path fill="currentColor" fill-rule="evenodd" d="m12.293 11 3.932-3.933a.885.885 0 00.275-.65.92.92 0 00-1.568-.651L11 9.707 7.067 5.766a.92.92 0 00-1.302 1.302L9.708 11l-3.932 3.932a.885.885 0 00-.275.651.92.92 0 001.567.651L11 12.292l3.932 3.933a.885.885 0 00.651.275.92.92 0 00.651-1.568L12.292 11Z" clip-rule="evenodd"/>',
753
743
  "left": 0,
754
744
  "top": 0,
755
745
  "width": 22,
756
746
  "height": 22
757
747
  };
758
- var smallCross_default = data26;
748
+ var smallCross_default = data25;
759
749
 
760
750
  // src/icons/tickCircle.js
761
- var data27 = {
751
+ var data26 = {
762
752
  "body": '<path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="m6.875 11 2.75 2.75 5.5-5.5M20.167 11a9.167 9.167 0 11-18.334 0 9.167 9.167 0 0118.334 0Z"/>',
763
753
  "left": 0,
764
754
  "top": 0,
765
755
  "width": 22,
766
756
  "height": 22
767
757
  };
768
- var tickCircle_default = data27;
758
+ var tickCircle_default = data26;
769
759
 
770
760
  // src/icons/time.js
771
- var data28 = {
761
+ var data27 = {
772
762
  "body": '<path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="M11 5.5V11l3.667 1.833m5.5-1.833a9.167 9.167 0 11-18.334 0 9.167 9.167 0 0118.334 0Z"/>',
773
763
  "left": 0,
774
764
  "top": 0,
775
765
  "width": 22,
776
766
  "height": 22
777
767
  };
778
- var time_default = data28;
768
+ var time_default = data27;
779
769
 
780
770
  // src/icons/upload.js
781
- var data29 = {
771
+ var data28 = {
782
772
  "body": '<path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="M19.25 13.75v1.1c0 1.54 0 2.31-.3 2.899a2.751 2.751 0 01-1.201 1.201c-.589.3-1.359.3-2.899.3h-7.7c-1.54 0-2.31 0-2.898-.3a2.75 2.75 0 01-1.202-1.2c-.3-.589-.3-1.359-.3-2.899v-1.1m12.833-6.417L11 2.75m0 0L6.417 7.333M11 2.75v11"/>',
783
773
  "left": 0,
784
774
  "top": 0,
785
775
  "width": 22,
786
776
  "height": 22
787
777
  };
788
- var upload_default = data29;
778
+ var upload_default = data28;
789
779
 
790
780
  // src/icons/warningSign.js
791
- var data30 = {
781
+ var data29 = {
792
782
  "body": '<path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="M11 8.25v3.667M11 16l.009-1.5M9.73 3.567 2.191 16.59c-.418.723-.627 1.084-.596 1.38a.917.917 0 00.372.646c.241.176.659.176 1.493.176h15.08c.834 0 1.251 0 1.492-.176a.917.917 0 00.373-.646c.03-.296-.178-.657-.596-1.38l-7.54-13.023c-.417-.72-.625-1.08-.897-1.2a.917.917 0 00-.745 0c-.272.12-.48.48-.897 1.2Z"/>',
793
783
  "left": 0,
794
784
  "top": 0,
795
785
  "width": 22,
796
786
  "height": 22
797
787
  };
798
- var warningSign_default = data30;
788
+ var warningSign_default = data29;
799
789
 
800
790
  // src/utils/useMeasure.ts
801
791
  var import_react4 = __toESM(require("react"));
@@ -1987,7 +1977,7 @@ var tokens_default = {
1987
1977
  }
1988
1978
  },
1989
1979
  code: {
1990
- background: "rgba(250,250,250,1)",
1980
+ background: "rgba(255,255,255,1)",
1991
1981
  text: "rgba(45,46,48,1)",
1992
1982
  variable: "rgba(91,30,103,1)",
1993
1983
  keyword: "rgba(202, 33, 101, 1)",
@@ -2591,6 +2581,14 @@ var Tooltip = ({ delay = 200, ...props }) => {
2591
2581
  shouldFlip,
2592
2582
  offset: ARROW_OFFSET
2593
2583
  });
2584
+ const [containsFocusable, setContainsFocusable] = import_react9.default.useState(false);
2585
+ import_react9.default.useLayoutEffect(() => {
2586
+ if (triggerRef.current) {
2587
+ const elements = Array.from(triggerRef.current.querySelectorAll("*"));
2588
+ const hasFocusable = elements.some((el) => (0, import_utils.isFocusable)(el));
2589
+ setContainsFocusable(hasFocusable);
2590
+ }
2591
+ });
2594
2592
  const { focusWithinProps } = (0, import_interactions.useFocusWithin)({
2595
2593
  onFocusWithinChange: (isFocusWithin) => isFocusWithin ? state.open() : state.close()
2596
2594
  });
@@ -2619,6 +2617,7 @@ var Tooltip = ({ delay = 200, ...props }) => {
2619
2617
  {
2620
2618
  className: display,
2621
2619
  ...triggerProps,
2620
+ tabIndex: containsFocusable ? -1 : triggerProps.tabIndex,
2622
2621
  onFocus: (e) => {
2623
2622
  triggerProps.onFocus?.(e);
2624
2623
  focusWithinProps.onFocus?.(e);
@@ -6220,15 +6219,7 @@ Modal.TitleContainer = ({ children, className, ...rest }) => {
6220
6219
  const { titleContainer: titleContainer2 } = modalStyles();
6221
6220
  return /* @__PURE__ */ import_react67.default.createElement("div", { ...rest, className: titleContainer2({ className }) }, children);
6222
6221
  };
6223
- var ModalBody = ({
6224
- children,
6225
- className,
6226
- noFooter = false,
6227
- maxHeight,
6228
- style,
6229
- size,
6230
- ...rest
6231
- }) => {
6222
+ var ModalBody = ({ children, className, contentClassName, noFooter = false, maxHeight, style, size, ...rest }) => {
6232
6223
  const { body, bodyContent } = modalStyles({ size });
6233
6224
  const { containerRef, topSentinelRef, bottomSentinelRef, showTopFade, showBottomFade } = useScrollFade();
6234
6225
  return /* @__PURE__ */ import_react67.default.createElement(
@@ -6240,7 +6231,7 @@ var ModalBody = ({
6240
6231
  style: { maxHeight, ...style }
6241
6232
  },
6242
6233
  /* @__PURE__ */ import_react67.default.createElement("div", { ref: topSentinelRef, "aria-hidden": "true", className: "h-1px" }),
6243
- /* @__PURE__ */ import_react67.default.createElement("div", { className: bodyContent({ noFooter }) }, children),
6234
+ /* @__PURE__ */ import_react67.default.createElement("div", { className: bodyContent({ noFooter, className: contentClassName }) }, children),
6244
6235
  /* @__PURE__ */ import_react67.default.createElement("div", { ref: bottomSentinelRef, "aria-hidden": "true", className: "h-1px -mt-1px" })
6245
6236
  );
6246
6237
  };
@@ -6709,7 +6700,7 @@ var Container2 = ({ maxWidth = "xl", children }) => /* @__PURE__ */ import_react
6709
6700
 
6710
6701
  // src/molecules/DataList/DataList.tsx
6711
6702
  var import_react93 = __toESM(require("react"));
6712
- var import_utils20 = require("@react-stately/utils");
6703
+ var import_utils19 = require("@react-stately/utils");
6713
6704
  var import_clsx26 = require("clsx");
6714
6705
  var import_lodash_es30 = require("lodash-es");
6715
6706
 
@@ -8207,11 +8198,6 @@ var useDataListContext = () => {
8207
8198
  // src/molecules/DataList/DataListGroup.tsx
8208
8199
  var import_react90 = __toESM(require("react"));
8209
8200
  var import_lodash_es28 = require("lodash-es");
8210
-
8211
- // src/molecules/DataList/utils.ts
8212
- var flattenRows = (rows) => areRowsGrouped(rows) ? Object.values(rows).flatMap(flattenRows) : rows;
8213
-
8214
- // src/molecules/DataList/DataListGroup.tsx
8215
8201
  var GAP = 8;
8216
8202
  var INDENTATION = 28;
8217
8203
  var sortGroupKeys = (groupKeys) => [...groupKeys].sort((a) => a === "undefined" ? -1 : 1);
@@ -8242,6 +8228,7 @@ var DataListGroup = ({
8242
8228
  rows,
8243
8229
  selectable,
8244
8230
  selectedRows,
8231
+ statsByNode,
8245
8232
  getOnSelectionChangeForId,
8246
8233
  selectionDisabled = () => false,
8247
8234
  getRowSelectionLabel = getDefaultRowSelectionLabel,
@@ -8270,8 +8257,8 @@ var DataListGroup = ({
8270
8257
  items: groups,
8271
8258
  renderItem: (row, index) => {
8272
8259
  const isSelected = selectedRows?.includes(row.id) ?? false;
8273
- const isDisabled = disabled?.(row, index, rows);
8274
- const isSelectionDisabled = selectionDisabled(row, index, rows);
8260
+ const isDisabled = disabled?.(row, index, groups);
8261
+ const isSelectionDisabled = selectionDisabled(row, index, groups);
8275
8262
  const isLastRow = isLastGroup && index === groups.length - 1;
8276
8263
  return /* @__PURE__ */ import_react90.default.createElement(
8277
8264
  DataListRow,
@@ -8281,7 +8268,7 @@ var DataListGroup = ({
8281
8268
  row,
8282
8269
  index,
8283
8270
  isLast: isLastRow,
8284
- rows,
8271
+ rows: groups,
8285
8272
  active: selectable && isSelected,
8286
8273
  menu: /* @__PURE__ */ import_react90.default.createElement(
8287
8274
  DataListRowMenu,
@@ -8310,7 +8297,7 @@ var DataListGroup = ({
8310
8297
  RadioButton,
8311
8298
  {
8312
8299
  value: row2.id.toString(),
8313
- "aria-label": getRowSelectionLabel(row2, index2, isSelected, rows),
8300
+ "aria-label": getRowSelectionLabel(row2, index2, isSelected, groups),
8314
8301
  onChange: import_lodash_es28.noop,
8315
8302
  checked: isSelected,
8316
8303
  disabled: isDisabled || isSelectionDisabled
@@ -8318,7 +8305,7 @@ var DataListGroup = ({
8318
8305
  ), isMultiSelectionMode && /* @__PURE__ */ import_react90.default.createElement(
8319
8306
  Checkbox,
8320
8307
  {
8321
- "aria-label": getRowSelectionLabel(row2, index2, isSelected, rows),
8308
+ "aria-label": getRowSelectionLabel(row2, index2, isSelected, groups),
8322
8309
  onChange: getOnSelectionChangeForId(row2.id),
8323
8310
  checked: isSelected,
8324
8311
  disabled: isDisabled || isSelectionDisabled
@@ -8355,10 +8342,12 @@ var DataListGroup = ({
8355
8342
  );
8356
8343
  }
8357
8344
  const openPanelId = expandedGroupIds ? expandedGroupIds.find((id) => id === key) ?? null : void 0;
8358
- const nestedRowIds = flattenRows(group).map((row) => row.id);
8359
- const nestedSelectedIds = selectedRows?.filter((id) => nestedRowIds.includes(id)) ?? [];
8360
- const allSelected = nestedRowIds.length === nestedSelectedIds.length;
8361
- const isChecked = nestedSelectedIds.length > 0;
8345
+ const { selectableIds, allSelected, isChecked, isDisabled } = statsByNode.get(group) ?? {
8346
+ selectableIds: [],
8347
+ allSelected: false,
8348
+ isChecked: false,
8349
+ isDisabled: true
8350
+ };
8362
8351
  const isActiveRow = !!openPanelId || selectable && isChecked;
8363
8352
  const isLastRow = isLastGroup && index === groupKeys.length - 1 && !openPanelId;
8364
8353
  return /* @__PURE__ */ import_react90.default.createElement(Accordion, { key, openPanelId }, hasCustomRowForGroup && /* @__PURE__ */ import_react90.default.createElement(DataList.Row, { active: isActiveRow, noDivider: isLastRow }, selectable && /* @__PURE__ */ import_react90.default.createElement(DataList.Cell, null, isMultiSelectionMode && /* @__PURE__ */ import_react90.default.createElement(
@@ -8367,8 +8356,8 @@ var DataListGroup = ({
8367
8356
  "aria-label": getGroupCheckboxLabel(key, group, index, isChecked, rows),
8368
8357
  checked: isChecked,
8369
8358
  indeterminate: isChecked && !allSelected,
8370
- disabled: group.length === 0,
8371
- onChange: getOnSelectionChangeForId(nestedRowIds)
8359
+ disabled: isDisabled,
8360
+ onChange: getOnSelectionChangeForId(selectableIds)
8372
8361
  }
8373
8362
  )), /* @__PURE__ */ import_react90.default.createElement(
8374
8363
  List,
@@ -8402,8 +8391,8 @@ var DataListGroup = ({
8402
8391
  "aria-label": getGroupCheckboxLabel(key, group, index, isChecked, rows),
8403
8392
  checked: isChecked,
8404
8393
  indeterminate: isChecked && !allSelected,
8405
- disabled: group.length === 0,
8406
- onChange: getOnSelectionChangeForId(nestedRowIds)
8394
+ disabled: isDisabled,
8395
+ onChange: getOnSelectionChangeForId(selectableIds)
8407
8396
  }
8408
8397
  )), /* @__PURE__ */ import_react90.default.createElement(
8409
8398
  DataList.Cell,
@@ -8522,12 +8511,12 @@ var DataList2 = ({
8522
8511
  const containerRef = (0, import_react93.useRef)(null);
8523
8512
  const hasStickyColumns = columns.some((column) => column.sticky);
8524
8513
  const stickyStyles = useScrollStyles({ containerRef, skip: !hasStickyColumns });
8525
- const [selected, setSelected] = (0, import_utils20.useControlledState)(
8514
+ const [selected, setSelected] = (0, import_utils19.useControlledState)(
8526
8515
  selectedRows,
8527
8516
  defaultSelectedRows,
8528
8517
  (value) => onSelectionChange?.(value ?? [])
8529
8518
  );
8530
- const [expandedGroupIds, setExpandedGroupIds] = (0, import_utils20.useControlledState)(_expandedGroupIds, []);
8519
+ const [expandedGroupIds, setExpandedGroupIds] = (0, import_utils19.useControlledState)(_expandedGroupIds, []);
8531
8520
  const onGroupToggled = (id, open) => {
8532
8521
  if (!open) {
8533
8522
  setExpandedGroupIds([...expandedGroupIds, id]);
@@ -8541,6 +8530,7 @@ var DataList2 = ({
8541
8530
  const [sort, updateSort] = useTableSort({ ...initialSortState, onSortChanged });
8542
8531
  const sortedRows = (0, import_lodash_es30.isArray)(rows) ? sortRowsBy(rows, sort) : [];
8543
8532
  const groups = areRowsGrouped(rows) ? rows : group ? (0, import_lodash_es30.isFunction)(group) ? group(sortedRows) : (0, import_lodash_es30.groupBy)(sortedRows, group) : void 0;
8533
+ const rootNode = groups ?? sortedRows;
8544
8534
  const isCollapsible = (0, import_lodash_es30.isFunction)(rowDetails);
8545
8535
  const templateColumns = (0, import_lodash_es30.compact)([
8546
8536
  selectable ? "fit-content(28px)" : void 0,
@@ -8563,26 +8553,37 @@ var DataList2 = ({
8563
8553
  }
8564
8554
  };
8565
8555
  const isMultiSelectionMode = selectable === "multiple" || selectable === "multiple-not-all";
8566
- const allRows = flattenRows(rows);
8567
- const totalSelected = selected?.length ?? 0;
8568
- const allEnabledRowIds = (0, import_lodash_es30.compact)(
8569
- allRows.map(
8570
- (row, index) => disabled?.(row, index, sortedRows) || selectionDisabled(row, index, sortedRows) ? void 0 : row.id
8571
- )
8572
- );
8573
- const allRowsSelected = totalSelected >= allEnabledRowIds.length;
8556
+ const selectedIds = new Set(selected);
8557
+ const buildSelectionStats = (root) => {
8558
+ const statsByNode2 = /* @__PURE__ */ new Map();
8559
+ const recordStats = (node) => {
8560
+ const selectableIds2 = areRowsGrouped(node) ? Object.values(node).flatMap((child) => recordStats(child).selectableIds) : node.filter((row, i) => !disabled?.(row, i, node) && !selectionDisabled(row, i, node)).map((row) => row.id);
8561
+ const selectedSelectableCount = selectableIds2.filter((id) => selectedIds.has(id)).length;
8562
+ const stats = {
8563
+ selectableIds: selectableIds2,
8564
+ selectedSelectableCount,
8565
+ allSelected: selectableIds2.length > 0 && selectedSelectableCount === selectableIds2.length,
8566
+ isChecked: selectedSelectableCount > 0,
8567
+ isDisabled: selectableIds2.length === 0
8568
+ };
8569
+ statsByNode2.set(node, stats);
8570
+ return stats;
8571
+ };
8572
+ return { statsByNode: statsByNode2, rootStats: recordStats(root) };
8573
+ };
8574
+ const { statsByNode, rootStats } = buildSelectionStats(rootNode);
8575
+ const { selectableIds, isChecked, allSelected, isDisabled } = rootStats;
8574
8576
  const componentContent = /* @__PURE__ */ import_react93.default.createElement(Template, { className: "Aquarium-DataList", columns: templateColumns, role: "table", "aria-label": ariaLabel }, !hideHeader && /* @__PURE__ */ import_react93.default.createElement(import_react93.default.Fragment, null, /* @__PURE__ */ import_react93.default.createElement(DataList.Row, { header: true }, selectable && /* @__PURE__ */ import_react93.default.createElement(DataList.HeadCell, { align: "left", sticky }, selectable === "multiple" && /* @__PURE__ */ import_react93.default.createElement(
8575
8577
  Checkbox,
8576
8578
  {
8577
8579
  "aria-label": "Select all rows",
8578
- indeterminate: totalSelected > 0 && totalSelected < allRows.length,
8579
- checked: totalSelected > 0,
8580
+ indeterminate: isChecked && !allSelected,
8581
+ checked: isChecked,
8582
+ disabled: isDisabled,
8580
8583
  onChange: () => {
8581
- if (!allRowsSelected) {
8582
- setSelected(allEnabledRowIds);
8583
- } else {
8584
- setSelected([]);
8585
- }
8584
+ const enabledSet = new Set(selectableIds);
8585
+ const keptSelection = (selected ?? []).filter((id) => !enabledSet.has(id));
8586
+ setSelected(allSelected ? keptSelection : [...keptSelection, ...selectableIds]);
8586
8587
  }
8587
8588
  }
8588
8589
  )), isCollapsible && /* @__PURE__ */ import_react93.default.createElement(DataList.HeadCell, { align: "left", sticky }), columns.map((column) => {
@@ -8627,6 +8628,7 @@ var DataList2 = ({
8627
8628
  getGroupCheckboxLabel,
8628
8629
  rows,
8629
8630
  groups,
8631
+ statsByNode,
8630
8632
  groupKey: void 0,
8631
8633
  level: 0,
8632
8634
  isLastGroup: true
@@ -8641,7 +8643,7 @@ var DataList2 = ({
8641
8643
  const details = rowDetails?.(row, index, sortedRows);
8642
8644
  const isSelected = selected?.includes(row.id) ?? false;
8643
8645
  const isSelectionDisabled = selectionDisabled(row, index, sortedRows);
8644
- const isDisabled = disabled?.(row, index, sortedRows);
8646
+ const isDisabled2 = disabled?.(row, index, sortedRows);
8645
8647
  const openPanelId = expandedGroupIds.find((id) => id === row.id.toString()) || null;
8646
8648
  const isLastRow = index === sortedRows.length - 1;
8647
8649
  const content = /* @__PURE__ */ import_react93.default.createElement(
@@ -8664,7 +8666,7 @@ var DataList2 = ({
8664
8666
  onAction,
8665
8667
  onMenuOpenChange,
8666
8668
  menuAriaLabel,
8667
- disabled: isDisabled
8669
+ disabled: isDisabled2
8668
8670
  }
8669
8671
  ),
8670
8672
  disabled,
@@ -8681,7 +8683,7 @@ var DataList2 = ({
8681
8683
  "aria-label": getRowSelectionLabel(row2, index2, isSelected, sortedRows),
8682
8684
  onChange: import_lodash_es30.noop,
8683
8685
  checked: isSelected,
8684
- disabled: isDisabled || isSelectionDisabled
8686
+ disabled: isDisabled2 || isSelectionDisabled
8685
8687
  }
8686
8688
  ), isMultiSelectionMode && /* @__PURE__ */ import_react93.default.createElement(
8687
8689
  Checkbox,
@@ -8689,7 +8691,7 @@ var DataList2 = ({
8689
8691
  "aria-label": getRowSelectionLabel(row2, index2, isSelected, sortedRows),
8690
8692
  onChange: getOnSelectionChangeForId(row2.id),
8691
8693
  checked: isSelected,
8692
- disabled: isDisabled || isSelectionDisabled
8694
+ disabled: isDisabled2 || isSelectionDisabled
8693
8695
  }
8694
8696
  )), rowDetails !== void 0 && /* @__PURE__ */ import_react93.default.createElement(DataList.Cell, null, details && /* @__PURE__ */ import_react93.default.createElement(Accordion.Toggle, { panelId: row2.id.toString(), onChange: onGroupToggled })));
8695
8697
  },
@@ -8938,13 +8940,13 @@ DataTable.Skeleton = DataListSkeleton;
8938
8940
  var import_react103 = __toESM(require("react"));
8939
8941
  var import_react_aria_components13 = require("react-aria-components");
8940
8942
  var import_label2 = require("@react-aria/label");
8941
- var import_utils27 = require("@react-aria/utils");
8943
+ var import_utils25 = require("@react-aria/utils");
8942
8944
  var import_lodash_es33 = require("lodash-es");
8943
8945
 
8944
8946
  // src/molecules/TimeField/TimeField.tsx
8945
8947
  var import_react98 = __toESM(require("react"));
8946
8948
  var import_label = require("@react-aria/label");
8947
- var import_utils25 = require("@react-aria/utils");
8949
+ var import_utils23 = require("@react-aria/utils");
8948
8950
  var import_lodash_es32 = require("lodash-es");
8949
8951
 
8950
8952
  // src/atoms/DateField/DateField.tsx
@@ -8975,7 +8977,7 @@ var TimeField = ({ disabled, valid, ...props }) => {
8975
8977
  // src/molecules/TimeField/TimeField.tsx
8976
8978
  function TimeField2(props) {
8977
8979
  const { labelProps, fieldProps } = (0, import_label.useLabel)({ label: props.labelText });
8978
- const errorMessageId = (0, import_utils25.useId)();
8980
+ const errorMessageId = (0, import_utils23.useId)();
8979
8981
  const errorProps = props.valid === false ? { "aria-invalid": true, "aria-describedby": errorMessageId } : {};
8980
8982
  const { "data-testid": dataTestId, ...labelControlProps } = getLabelControlProps(props);
8981
8983
  const baseProps = (0, import_lodash_es32.omit)(props, Object.keys(labelControlProps));
@@ -11649,7 +11651,7 @@ var CalendarTimeField = ({ granularity, labelText = "Time", ...props }) => {
11649
11651
  var DatePickerCalendarPropsContext = import_react103.default.createContext(null);
11650
11652
  var DatePickerCalendar = (props) => {
11651
11653
  const ctx = import_react103.default.useContext(DatePickerCalendarPropsContext);
11652
- const { variant, granularity, errorMessage, presets = [] } = (0, import_utils27.mergeProps)(ctx, props);
11654
+ const { variant, granularity, errorMessage, presets = [] } = (0, import_utils25.mergeProps)(ctx, props);
11653
11655
  const { dialog, calendar, errorMessage: errorMessageStyle } = datePickerCalendarStyles();
11654
11656
  return /* @__PURE__ */ import_react103.default.createElement(Popover, { offset: 0 }, /* @__PURE__ */ import_react103.default.createElement(Dialog, { className: dialog() }, presets.length > 0 && /* @__PURE__ */ import_react103.default.createElement(Presets, null, presets.map((props2) => /* @__PURE__ */ import_react103.default.createElement(Preset, { key: props2.value.toString(), ...props2 }))), /* @__PURE__ */ import_react103.default.createElement(Spacing, { gap: "3", className: "p-5" }, /* @__PURE__ */ import_react103.default.createElement(Calendar, { className: calendar() }), variant === "datetime" && /* @__PURE__ */ import_react103.default.createElement(CalendarTimeField, { granularity }), errorMessage && /* @__PURE__ */ import_react103.default.createElement(import_react_aria_components13.Text, { slot: "errorMessage", className: errorMessageStyle() }, errorMessage))));
11655
11657
  };
@@ -11688,7 +11690,7 @@ var DateTimePickerBase = createDatePickerBase("datetime");
11688
11690
  var createDatePicker = (variant) => {
11689
11691
  const datePicker = (props) => {
11690
11692
  const { labelProps, fieldProps } = (0, import_label2.useLabel)({ "label": props.labelText, "aria-label": props["aria-label"] });
11691
- const errorMessageId = (0, import_utils27.useId)();
11693
+ const errorMessageId = (0, import_utils25.useId)();
11692
11694
  const errorProps = props.valid === false ? { "aria-invalid": true, "aria-describedby": errorMessageId, "errorMessage": props.helperText ?? props.error } : {};
11693
11695
  const { "data-testid": dataTestId, ...labelControlProps } = getLabelControlProps(props);
11694
11696
  const baseProps = (0, import_lodash_es33.omit)(props, Object.keys(labelControlProps));
@@ -11707,7 +11709,7 @@ var DateTimePicker = createDatePicker("datetime");
11707
11709
  var import_react105 = __toESM(require("react"));
11708
11710
  var import_react_aria_components15 = require("react-aria-components");
11709
11711
  var import_label3 = require("@react-aria/label");
11710
- var import_utils29 = require("@react-aria/utils");
11712
+ var import_utils27 = require("@react-aria/utils");
11711
11713
  var import_lodash_es34 = require("lodash-es");
11712
11714
 
11713
11715
  // src/atoms/DatePicker/RangeCalendar.tsx
@@ -11794,7 +11796,7 @@ var RangeCalendarTimeField = ({ granularity, part, ...props }) => {
11794
11796
  var DateRangePickerCalendarPropsContext = import_react105.default.createContext(null);
11795
11797
  var DateRangePickerCalendar = (props) => {
11796
11798
  const ctx = import_react105.default.useContext(DateRangePickerCalendarPropsContext);
11797
- const { variant, granularity, errorMessage, presets = [] } = (0, import_utils29.mergeProps)(ctx, props);
11799
+ const { variant, granularity, errorMessage, presets = [] } = (0, import_utils27.mergeProps)(ctx, props);
11798
11800
  const { dialog, calendar, errorMessage: errorMessageStyle } = datePickerCalendarStyles();
11799
11801
  return /* @__PURE__ */ import_react105.default.createElement(Popover, { offset: 0 }, /* @__PURE__ */ import_react105.default.createElement(Dialog, { className: dialog() }, presets.length > 0 && /* @__PURE__ */ import_react105.default.createElement(Presets, null, presets.map((props2) => /* @__PURE__ */ import_react105.default.createElement(RangePreset, { key: `${props2.value.start.toString()}-${props2.value.end.toString()}`, ...props2 }))), /* @__PURE__ */ import_react105.default.createElement(Spacing, { gap: "3", className: "p-5" }, /* @__PURE__ */ import_react105.default.createElement(RangeCalendar, { className: calendar() }), variant === "datetime" && /* @__PURE__ */ import_react105.default.createElement(Box.Flex, { gap: "6" }, /* @__PURE__ */ import_react105.default.createElement("div", { className: "flex-1" }, /* @__PURE__ */ import_react105.default.createElement(RangeCalendarTimeField, { granularity, part: "start" })), /* @__PURE__ */ import_react105.default.createElement("div", { className: "flex-1" }, /* @__PURE__ */ import_react105.default.createElement(RangeCalendarTimeField, { granularity, part: "end" }))), errorMessage && /* @__PURE__ */ import_react105.default.createElement(import_react_aria_components15.Text, { slot: "errorMessage", className: errorMessageStyle() }, errorMessage))));
11800
11802
  };
@@ -11833,7 +11835,7 @@ var DateTimeRangePickerBase = createDateRangePickerBase("datetime");
11833
11835
  var createDateRangePicker = (variant) => {
11834
11836
  const dateRangePicker = (props) => {
11835
11837
  const { labelProps, fieldProps } = (0, import_label3.useLabel)({ "label": props.labelText, "aria-label": props["aria-label"] });
11836
- const errorMessageId = (0, import_utils29.useId)();
11838
+ const errorMessageId = (0, import_utils27.useId)();
11837
11839
  const errorProps = props.valid === false ? { "aria-invalid": true, "aria-describedby": errorMessageId, "errorMessage": props.helperText ?? props.error } : {};
11838
11840
  const { "data-testid": dataTestId, ...labelControlProps } = getLabelControlProps(props);
11839
11841
  const baseProps = (0, import_lodash_es34.omit)(props, Object.keys(labelControlProps));
@@ -11852,7 +11854,7 @@ var DateTimeRangePicker = createDateRangePicker("datetime");
11852
11854
  var import_react106 = __toESM(require("react"));
11853
11855
  var import_dialog = require("@react-aria/dialog");
11854
11856
  var import_overlays6 = require("@react-aria/overlays");
11855
- var import_utils30 = require("@react-aria/utils");
11857
+ var import_utils28 = require("@react-aria/utils");
11856
11858
  var import_overlays7 = require("@react-stately/overlays");
11857
11859
  var import_lodash_es35 = require("lodash-es");
11858
11860
  var Dialog2 = (props) => {
@@ -11867,7 +11869,7 @@ var Dialog2 = (props) => {
11867
11869
  if (!state.isOpen) {
11868
11870
  return null;
11869
11871
  }
11870
- return /* @__PURE__ */ import_react106.default.createElement(import_overlays6.Overlay, null, /* @__PURE__ */ import_react106.default.createElement(Modal, { className: "Aquarium-Dialog", open: true }, /* @__PURE__ */ import_react106.default.createElement(Modal.BackDrop, { ...underlayProps }), /* @__PURE__ */ import_react106.default.createElement(Modal.Dialog, { ref, size: "sm", isResponsive: false, ...modalProps }, /* @__PURE__ */ import_react106.default.createElement(DialogWrapper, { ...props }))));
11872
+ return /* @__PURE__ */ import_react106.default.createElement(import_overlays6.Overlay, null, /* @__PURE__ */ import_react106.default.createElement(Modal, { className: "Aquarium-Dialog", open: true }, /* @__PURE__ */ import_react106.default.createElement(Modal.BackDrop, { ...underlayProps }), /* @__PURE__ */ import_react106.default.createElement(Modal.Dialog, { ref, size: "sm", isResponsive: false, className: "sm:max-w-[520px]", ...modalProps }, /* @__PURE__ */ import_react106.default.createElement(DialogWrapper, { ...props }))));
11871
11873
  };
11872
11874
  var DialogWrapper = ({
11873
11875
  title,
@@ -11877,8 +11879,8 @@ var DialogWrapper = ({
11877
11879
  secondaryAction
11878
11880
  }) => {
11879
11881
  const ref = import_react106.default.useRef(null);
11880
- const labelledBy = (0, import_utils30.useId)();
11881
- const describedBy = (0, import_utils30.useId)();
11882
+ const labelledBy = (0, import_utils28.useId)();
11883
+ const describedBy = (0, import_utils28.useId)();
11882
11884
  const { dialogProps } = (0, import_dialog.useDialog)(
11883
11885
  {
11884
11886
  "role": "alertdialog",
@@ -11887,7 +11889,7 @@ var DialogWrapper = ({
11887
11889
  },
11888
11890
  ref
11889
11891
  );
11890
- return /* @__PURE__ */ import_react106.default.createElement("div", { ref, ...dialogProps, className: "outline-none" }, /* @__PURE__ */ import_react106.default.createElement(Modal.Header, { className: "icon-stroke-2" }, /* @__PURE__ */ import_react106.default.createElement(Icon, { icon: DIALOG_ICONS_AND_COLORS[type].icon, color: DIALOG_ICONS_AND_COLORS[type].color, fontSize: 20 }), /* @__PURE__ */ import_react106.default.createElement(Modal.Title, { id: labelledBy, variant: "large", color: DIALOG_ICONS_AND_COLORS[type].color }, title)), /* @__PURE__ */ import_react106.default.createElement(Modal.Body, { id: describedBy }, /* @__PURE__ */ import_react106.default.createElement(Typography2.Default, null, children)), /* @__PURE__ */ import_react106.default.createElement(Modal.Footer, null, /* @__PURE__ */ import_react106.default.createElement(Modal.Actions, { className: "gap-4" }, secondaryAction && /* @__PURE__ */ import_react106.default.createElement(Button2.Ghost, { key: secondaryAction.text, ...(0, import_lodash_es35.omit)(secondaryAction, "text") }, secondaryAction.text), /* @__PURE__ */ import_react106.default.createElement(Button2.Secondary, { key: primaryAction.text, ...(0, import_lodash_es35.omit)(primaryAction, "text") }, primaryAction.text))));
11892
+ return /* @__PURE__ */ import_react106.default.createElement("div", { ref, ...dialogProps, className: "outline-none" }, /* @__PURE__ */ import_react106.default.createElement(Modal.Header, { className: "icon-stroke-2 px-6 pr-6" }, /* @__PURE__ */ import_react106.default.createElement(Icon, { icon: DIALOG_ICONS_AND_COLORS[type].icon, color: DIALOG_ICONS_AND_COLORS[type].color, fontSize: 20 }), /* @__PURE__ */ import_react106.default.createElement(Modal.Title, { id: labelledBy, variant: "large", color: "default" }, title)), /* @__PURE__ */ import_react106.default.createElement(Modal.Body, { id: describedBy, contentClassName: "px-6" }, /* @__PURE__ */ import_react106.default.createElement(Typography2.Default, null, children)), /* @__PURE__ */ import_react106.default.createElement(Modal.Footer, { className: "px-6" }, /* @__PURE__ */ import_react106.default.createElement(Modal.Actions, { className: "gap-4" }, secondaryAction && /* @__PURE__ */ import_react106.default.createElement(Button2.Ghost, { key: secondaryAction.text, ...(0, import_lodash_es35.omit)(secondaryAction, "text") }, secondaryAction.text), /* @__PURE__ */ import_react106.default.createElement(Button2.Secondary, { key: primaryAction.text, ...(0, import_lodash_es35.omit)(primaryAction, "text") }, primaryAction.text))));
11891
11893
  };
11892
11894
 
11893
11895
  // src/molecules/Drawer/Drawer.tsx
@@ -12260,7 +12262,7 @@ var import_clsx30 = require("clsx");
12260
12262
  // src/molecules/Popover/Popover.tsx
12261
12263
  var import_react110 = __toESM(require("react"));
12262
12264
  var import_react_aria_components18 = require("react-aria-components");
12263
- var import_utils32 = require("@react-aria/utils");
12265
+ var import_utils30 = require("@react-aria/utils");
12264
12266
  var PopoverPropsContext = (0, import_react110.createContext)({});
12265
12267
  var Popover2 = ({ children, onOpenChange: _onOpenChange, onClose, onOpen, ...props }) => {
12266
12268
  const onOpenChange = (isOpen) => {
@@ -12285,7 +12287,7 @@ var CloseToggle = ({ children }) => {
12285
12287
  const ctx = import_react110.default.useContext(import_react_aria_components18.OverlayTriggerStateContext);
12286
12288
  const onClick = ctx?.close;
12287
12289
  const child = import_react110.default.Children.only(children);
12288
- return import_react110.default.cloneElement(child, { ...(0, import_utils32.mergeProps)(child.props, { onClick }) });
12290
+ return import_react110.default.cloneElement(child, { ...(0, import_utils30.mergeProps)(child.props, { onClick }) });
12289
12291
  };
12290
12292
  CloseToggle.displayName = "Popover.CloseToggle";
12291
12293
  Popover2.CloseToggle = CloseToggle;
@@ -12711,7 +12713,7 @@ var ModalTabs = createTabsComponent(
12711
12713
 
12712
12714
  // src/molecules/MultiInput/MultiInput.tsx
12713
12715
  var import_react119 = __toESM(require("react"));
12714
- var import_utils34 = require("@react-aria/utils");
12716
+ var import_utils32 = require("@react-aria/utils");
12715
12717
  var import_lodash_es39 = require("lodash-es");
12716
12718
 
12717
12719
  // src/molecules/MultiInput/InputChip.tsx
@@ -12921,9 +12923,9 @@ var MultiInput = (props) => {
12921
12923
  (0, import_react119.useEffect)(() => {
12922
12924
  setValue(props.value ?? []);
12923
12925
  }, [JSON.stringify(props.value)]);
12924
- const defaultId = (0, import_utils34.useId)();
12926
+ const defaultId = (0, import_utils32.useId)();
12925
12927
  const id = props.id ?? props.name ?? defaultId;
12926
- const errorMessageId = (0, import_utils34.useId)();
12928
+ const errorMessageId = (0, import_utils32.useId)();
12927
12929
  const errorProps = props.valid === false ? { "aria-invalid": true, "aria-describedby": errorMessageId } : {};
12928
12930
  const labelControlProps = getLabelControlProps(props);
12929
12931
  const baseProps = (0, import_lodash_es39.omit)(props, Object.keys(labelControlProps));
@@ -12962,7 +12964,7 @@ MultiInput.Skeleton.displayName = "MultiInput.Skeleton";
12962
12964
  // src/molecules/MultiSelect/MultiSelect.tsx
12963
12965
  var import_react120 = __toESM(require("react"));
12964
12966
  var import_overlays8 = require("@react-aria/overlays");
12965
- var import_utils35 = require("@react-aria/utils");
12967
+ var import_utils33 = require("@react-aria/utils");
12966
12968
  var import_downshift3 = require("downshift");
12967
12969
  var import_lodash_es40 = require("lodash-es");
12968
12970
  var import_match_sorter3 = require("match-sorter");
@@ -13163,9 +13165,9 @@ var MultiSelect = ({
13163
13165
  emptyState,
13164
13166
  ...props
13165
13167
  }) => {
13166
- const defaultId = (0, import_utils35.useId)();
13168
+ const defaultId = (0, import_utils33.useId)();
13167
13169
  const id = props.id ?? defaultId;
13168
- const errorMessageId = (0, import_utils35.useId)();
13170
+ const errorMessageId = (0, import_utils33.useId)();
13169
13171
  const errorProps = props.valid === false ? { "aria-invalid": true, "aria-describedby": errorMessageId } : {};
13170
13172
  const labelControlProps = getLabelControlProps(props);
13171
13173
  const baseProps = (0, import_lodash_es40.omit)(props, Object.keys(labelControlProps));
@@ -13198,7 +13200,7 @@ MultiSelect.Skeleton.displayName = "MultiSelect.Skeleton";
13198
13200
 
13199
13201
  // src/molecules/NativeSelect/NativeSelect.tsx
13200
13202
  var import_react121 = __toESM(require("react"));
13201
- var import_utils37 = require("@react-aria/utils");
13203
+ var import_utils35 = require("@react-aria/utils");
13202
13204
  var import_clsx34 = require("clsx");
13203
13205
  var import_lodash_es41 = require("lodash-es");
13204
13206
  var NativeSelectBase = import_react121.default.forwardRef(
@@ -13246,9 +13248,9 @@ var NativeSelectBase = import_react121.default.forwardRef(
13246
13248
  NativeSelectBase.Skeleton = () => /* @__PURE__ */ import_react121.default.createElement(Skeleton, { height: 38 });
13247
13249
  var NativeSelect = import_react121.default.forwardRef(
13248
13250
  ({ readOnly, ...props }, ref) => {
13249
- const defaultId = (0, import_utils37.useId)();
13251
+ const defaultId = (0, import_utils35.useId)();
13250
13252
  const id = props.id ?? defaultId;
13251
- const errorMessageId = (0, import_utils37.useId)();
13253
+ const errorMessageId = (0, import_utils35.useId)();
13252
13254
  const errorProps = props.valid === false ? { "aria-invalid": true, "aria-describedby": errorMessageId } : {};
13253
13255
  const { "data-testid": dataTestId, ...labelControlProps } = getLabelControlProps(props);
13254
13256
  const baseProps = (0, import_lodash_es41.omit)(props, Object.keys(labelControlProps));
@@ -13300,17 +13302,18 @@ var navigationClasses = (0, import_tailwind_variants28.tv)({
13300
13302
  slots: {
13301
13303
  nav: "bg-body h-full border-r border-muted",
13302
13304
  list: "flex flex-col h-full",
13303
- header: "px-6 py-5",
13305
+ header: "px-6 py-4",
13304
13306
  headerTitle: "uppercase text-muted typography-small",
13305
13307
  headerSubtitle: "text-intense",
13306
13308
  footer: "px-6 py-5 mt-auto",
13307
- sectionContainer: "py-5",
13309
+ sectionContainer: "py-4",
13308
13310
  sectionTitle: "py-2 px-6 text-inactive uppercase cursor-default typography-small",
13309
13311
  sectionList: "flex flex-col",
13310
13312
  divider: "border-t border-muted",
13311
13313
  itemContainer: "",
13312
13314
  itemAnchor: "py-3 px-6 hover:bg-medium cursor-pointer flex gap-4 items-center typography-default focusable",
13313
- submenuContainer: "",
13315
+ // `[&+&]:pt-0` prevents doubled spacing when two submenu containers are adjacent (flex items don't margin-collapse).
13316
+ submenuContainer: "py-3 [&+&]:pt-0",
13314
13317
  submenuAnchor: "py-3 pr-6 pl-3 hover:bg-medium cursor-pointer typography-default focusable flex items-center w-full",
13315
13318
  submenuList: "flex flex-col",
13316
13319
  submenuItem: "pl-[56px]"
@@ -13395,13 +13398,22 @@ var Item5 = ({
13395
13398
  showNotification = false,
13396
13399
  ...rest
13397
13400
  }) => /* @__PURE__ */ import_react123.default.createElement(Navigation.Item, { ...rest }, icon && showNotification && /* @__PURE__ */ import_react123.default.createElement(Badge.Notification, null, /* @__PURE__ */ import_react123.default.createElement(InlineIcon, { icon, width: "20px", height: "20px" })), icon && !showNotification && /* @__PURE__ */ import_react123.default.createElement(InlineIcon, { icon, width: "20px", height: "20px" }), children);
13401
+ var DisclosureCaret = ({ open }) => /* @__PURE__ */ import_react123.default.createElement(
13402
+ InlineIcon,
13403
+ {
13404
+ icon: caretRight_default,
13405
+ width: "12px",
13406
+ height: "12px",
13407
+ className: (0, import_clsx35.clsx)("mr-1 transition-transform duration-200 ease-in-out", open ? "rotate-90" : "rotate-0")
13408
+ }
13409
+ );
13398
13410
  var Submenu2 = ({ children, title, icon, defaultOpen = false }) => {
13399
13411
  const [open, setOpen] = import_react123.default.useState(defaultOpen);
13400
13412
  const id = (0, import_lodash_es42.uniqueId)();
13401
13413
  return /* @__PURE__ */ import_react123.default.createElement(
13402
13414
  Navigation.Submenu,
13403
13415
  {
13404
- title: /* @__PURE__ */ import_react123.default.createElement(import_react123.default.Fragment, null, /* @__PURE__ */ import_react123.default.createElement(InlineIcon, { icon: open ? caretUpFilled_default : caretDownFilled_default, width: "12px", height: "12px", className: "mr-1" }), /* @__PURE__ */ import_react123.default.createElement(Box.Flex, { paddingX: "1", gap: "4" }, icon && /* @__PURE__ */ import_react123.default.createElement(InlineIcon, { icon, width: "20px", height: "20px" }), title)),
13416
+ title: /* @__PURE__ */ import_react123.default.createElement(import_react123.default.Fragment, null, /* @__PURE__ */ import_react123.default.createElement(DisclosureCaret, { open }), /* @__PURE__ */ import_react123.default.createElement(Box.Flex, { paddingX: "1", gap: "4" }, icon && /* @__PURE__ */ import_react123.default.createElement(InlineIcon, { icon, width: "20px", height: "20px" }), title)),
13405
13417
  "aria-expanded": open,
13406
13418
  id,
13407
13419
  onClick: (e) => {
@@ -13648,7 +13660,7 @@ RadioButton2.Skeleton.displayName = "RadioButton.Skeleton";
13648
13660
 
13649
13661
  // src/molecules/RadioButtonGroup/RadioButtonGroup.tsx
13650
13662
  var import_react132 = __toESM(require("react"));
13651
- var import_utils38 = require("@react-aria/utils");
13663
+ var import_utils36 = require("@react-aria/utils");
13652
13664
  var import_clsx37 = require("clsx");
13653
13665
  var isRadioButton = (c) => {
13654
13666
  return import_react132.default.isValidElement(c) && c.type === RadioButton2;
@@ -13664,7 +13676,7 @@ var RadioButtonGroup = ({
13664
13676
  ...props
13665
13677
  }) => {
13666
13678
  const [value, setValue] = import_react132.default.useState(_value ?? defaultValue ?? "");
13667
- const errorMessageId = (0, import_utils38.useId)();
13679
+ const errorMessageId = (0, import_utils36.useId)();
13668
13680
  const errorProps = props.valid === false ? { "aria-invalid": true, "aria-describedby": errorMessageId } : {};
13669
13681
  const labelControlProps = getLabelControlProps(props);
13670
13682
  if (_value !== void 0 && _value !== value) {
@@ -13710,7 +13722,7 @@ RadioButtonGroup.Skeleton.displayName = "RadioButtonGroup.Skeleton";
13710
13722
  // src/molecules/Section/Section.tsx
13711
13723
  var import_react137 = __toESM(require("react"));
13712
13724
  var import_button4 = require("@react-aria/button");
13713
- var import_utils39 = require("@react-aria/utils");
13725
+ var import_utils37 = require("@react-aria/utils");
13714
13726
  var import_web6 = require("@react-spring/web");
13715
13727
  var import_clsx38 = require("clsx");
13716
13728
  var import_lodash_es46 = require("lodash-es");
@@ -13909,9 +13921,9 @@ var Section4 = (props) => {
13909
13921
  onStart: () => isMounted.current && setResting(false),
13910
13922
  onRest: () => isMounted.current && setResting(true)
13911
13923
  });
13912
- const toggleId = (0, import_utils39.useId)();
13913
- const regionId = (0, import_utils39.useId)();
13914
- const titleId = (0, import_utils39.useId)();
13924
+ const toggleId = (0, import_utils37.useId)();
13925
+ const regionId = (0, import_utils37.useId)();
13926
+ const titleId = (0, import_utils37.useId)();
13915
13927
  const hasTabs = isComponentType(children, Tabs);
13916
13928
  const { buttonProps } = (0, import_button4.useButton)(
13917
13929
  { "elementType": "div", "onPress": handleTitleClick, "aria-expanded": !isCollapsed, "aria-controls": regionId },
@@ -14280,7 +14292,7 @@ Stepper2.Step = Step2;
14280
14292
 
14281
14293
  // src/molecules/SwitchGroup/SwitchGroup.tsx
14282
14294
  var import_react141 = __toESM(require("react"));
14283
- var import_utils42 = require("@react-aria/utils");
14295
+ var import_utils40 = require("@react-aria/utils");
14284
14296
  var SwitchGroup = ({
14285
14297
  value,
14286
14298
  defaultValue,
@@ -14294,7 +14306,7 @@ var SwitchGroup = ({
14294
14306
  if (value !== void 0 && value !== selectedItems) {
14295
14307
  setSelectedItems(value);
14296
14308
  }
14297
- const errorMessageId = (0, import_utils42.useId)();
14309
+ const errorMessageId = (0, import_utils40.useId)();
14298
14310
  const errorProps = props.valid === false ? { "aria-invalid": true, "aria-describedby": errorMessageId } : {};
14299
14311
  const labelControlProps = getLabelControlProps(props);
14300
14312
  const handleChange = (e) => {
@@ -14327,7 +14339,7 @@ SwitchGroup.Skeleton.displayName = "SwitchGroup.Skeleton";
14327
14339
 
14328
14340
  // src/molecules/Textarea/Textarea.tsx
14329
14341
  var import_react142 = __toESM(require("react"));
14330
- var import_utils44 = require("@react-aria/utils");
14342
+ var import_utils42 = require("@react-aria/utils");
14331
14343
  var import_clsx39 = require("clsx");
14332
14344
  var import_lodash_es47 = require("lodash-es");
14333
14345
  var TextareaBase = import_react142.default.forwardRef(
@@ -14344,9 +14356,9 @@ var TextareaBase = import_react142.default.forwardRef(
14344
14356
  TextareaBase.Skeleton = () => /* @__PURE__ */ import_react142.default.createElement(Skeleton, { height: 58 });
14345
14357
  var Textarea = import_react142.default.forwardRef((props, ref) => {
14346
14358
  const [value, setValue] = (0, import_react142.useState)(props.value ?? props.defaultValue ?? "");
14347
- const defaultId = (0, import_utils44.useId)();
14359
+ const defaultId = (0, import_utils42.useId)();
14348
14360
  const id = props.id ?? defaultId;
14349
- const errorMessageId = (0, import_utils44.useId)();
14361
+ const errorMessageId = (0, import_utils42.useId)();
14350
14362
  const errorProps = props.valid === false ? { "aria-invalid": true, "aria-describedby": errorMessageId } : {};
14351
14363
  const { "data-testid": dataTestId, ...labelControlProps } = getLabelControlProps(props);
14352
14364
  const baseProps = (0, import_lodash_es47.omit)(props, Object.keys(labelControlProps));
@@ -14455,11 +14467,11 @@ var useSortState = (initialSortState) => import_react147.default.useState(initia
14455
14467
 
14456
14468
  // src/utils/table/useTableSelect.ts
14457
14469
  var import_react148 = __toESM(require("react"));
14458
- var useTableSelect = (data31, { key }) => {
14470
+ var useTableSelect = (data30, { key }) => {
14459
14471
  const [selected, setSelected] = import_react148.default.useState([]);
14460
- const allSelected = selected.length === data31.length;
14472
+ const allSelected = selected.length === data30.length;
14461
14473
  const isSelected = (dot) => selected.includes(dot[key]);
14462
- const selectAll = () => setSelected(data31.map((dot) => dot[key]));
14474
+ const selectAll = () => setSelected(data30.map((dot) => dot[key]));
14463
14475
  const selectOnlyOne = (dot) => setSelected([dot[key]]);
14464
14476
  const unselectAll = () => setSelected([]);
14465
14477
  const toggle = (dot) => {