@dxos/react-ui 0.9.0 → 0.9.1-main.c7dcc2e112

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 (81) hide show
  1. package/dist/lib/browser/{chunk-7JFD5ZHZ.mjs → chunk-F3PLXTDA.mjs} +21 -25
  2. package/dist/lib/browser/{chunk-7JFD5ZHZ.mjs.map → chunk-F3PLXTDA.mjs.map} +3 -3
  3. package/dist/lib/browser/{chunk-5SPBSIWS.mjs → chunk-HFJYTGHU.mjs} +11 -1
  4. package/dist/lib/browser/chunk-HFJYTGHU.mjs.map +7 -0
  5. package/dist/lib/browser/index.mjs +1042 -856
  6. package/dist/lib/browser/index.mjs.map +4 -4
  7. package/dist/lib/browser/meta.json +1 -1
  8. package/dist/lib/browser/testing/index.mjs +5 -5
  9. package/dist/lib/browser/testing/index.mjs.map +2 -2
  10. package/dist/lib/browser/translations.mjs +1 -1
  11. package/dist/lib/node-esm/{chunk-TTEL2FP2.mjs → chunk-LLVUYLAM.mjs} +21 -25
  12. package/dist/lib/node-esm/{chunk-TTEL2FP2.mjs.map → chunk-LLVUYLAM.mjs.map} +3 -3
  13. package/dist/lib/node-esm/{chunk-FPVTVXND.mjs → chunk-OJYUPUCY.mjs} +11 -1
  14. package/dist/lib/node-esm/chunk-OJYUPUCY.mjs.map +7 -0
  15. package/dist/lib/node-esm/index.mjs +1042 -856
  16. package/dist/lib/node-esm/index.mjs.map +4 -4
  17. package/dist/lib/node-esm/meta.json +1 -1
  18. package/dist/lib/node-esm/testing/index.mjs +5 -5
  19. package/dist/lib/node-esm/testing/index.mjs.map +2 -2
  20. package/dist/lib/node-esm/translations.mjs +1 -1
  21. package/dist/types/src/components/Button/Button.d.ts +2 -0
  22. package/dist/types/src/components/Button/Button.d.ts.map +1 -1
  23. package/dist/types/src/components/Button/IconButton.d.ts +0 -1
  24. package/dist/types/src/components/Button/IconButton.d.ts.map +1 -1
  25. package/dist/types/src/components/Button/IconButton.stories.d.ts +34 -0
  26. package/dist/types/src/components/Button/IconButton.stories.d.ts.map +1 -1
  27. package/dist/types/src/components/Button/SystemIconButton.d.ts +20 -0
  28. package/dist/types/src/components/Button/SystemIconButton.d.ts.map +1 -0
  29. package/dist/types/src/components/Button/ToggleIconButton.d.ts +15 -0
  30. package/dist/types/src/components/Button/ToggleIconButton.d.ts.map +1 -0
  31. package/dist/types/src/components/Button/index.d.ts +2 -0
  32. package/dist/types/src/components/Button/index.d.ts.map +1 -1
  33. package/dist/types/src/components/Card/Card.d.ts +25 -19
  34. package/dist/types/src/components/Card/Card.d.ts.map +1 -1
  35. package/dist/types/src/components/Card/Card.stories.d.ts +1 -1
  36. package/dist/types/src/components/Card/Card.stories.d.ts.map +1 -1
  37. package/dist/types/src/components/Card/Card.theme.d.ts.map +1 -1
  38. package/dist/types/src/components/Clipboard/index.d.ts +1 -0
  39. package/dist/types/src/components/Clipboard/index.d.ts.map +1 -1
  40. package/dist/types/src/components/Column/Column.d.ts +19 -1
  41. package/dist/types/src/components/Column/Column.d.ts.map +1 -1
  42. package/dist/types/src/components/Column/Column.theme.d.ts +8 -0
  43. package/dist/types/src/components/Column/Column.theme.d.ts.map +1 -1
  44. package/dist/types/src/components/Input/constants.d.ts +3 -0
  45. package/dist/types/src/components/Input/constants.d.ts.map +1 -1
  46. package/dist/types/src/components/Message/Message.theme.d.ts.map +1 -1
  47. package/dist/types/src/components/Toast/Toast.d.ts.map +1 -1
  48. package/dist/types/src/components/Toast/Toast.theme.d.ts.map +1 -1
  49. package/dist/types/src/components/Tooltip/TextTooltip.d.ts +19 -0
  50. package/dist/types/src/components/Tooltip/TextTooltip.d.ts.map +1 -0
  51. package/dist/types/src/components/Tooltip/index.d.ts +1 -0
  52. package/dist/types/src/components/Tooltip/index.d.ts.map +1 -1
  53. package/dist/types/src/testing/Loading.d.ts.map +1 -1
  54. package/dist/types/src/translations.d.ts +10 -0
  55. package/dist/types/src/translations.d.ts.map +1 -1
  56. package/dist/types/tsconfig.tsbuildinfo +1 -1
  57. package/package.json +16 -16
  58. package/src/components/Button/Button.tsx +23 -2
  59. package/src/components/Button/IconButton.stories.tsx +81 -1
  60. package/src/components/Button/IconButton.tsx +2 -4
  61. package/src/components/Button/SystemIconButton.tsx +153 -0
  62. package/src/components/Button/ToggleIconButton.tsx +32 -0
  63. package/src/components/Button/index.ts +2 -0
  64. package/src/components/Card/Card.stories.tsx +69 -27
  65. package/src/components/Card/Card.theme.ts +27 -9
  66. package/src/components/Card/Card.tsx +165 -88
  67. package/src/components/Column/Column.theme.ts +32 -4
  68. package/src/components/Column/Column.tsx +36 -1
  69. package/src/components/Input/constants.ts +3 -0
  70. package/src/components/Message/Message.theme.ts +0 -10
  71. package/src/components/Message/Message.tsx +4 -4
  72. package/src/components/Popover/Popover.theme.ts +1 -1
  73. package/src/components/Toast/Toast.theme.ts +0 -6
  74. package/src/components/Toast/Toast.tsx +11 -10
  75. package/src/components/Tooltip/TextTooltip.tsx +54 -0
  76. package/src/components/Tooltip/index.ts +1 -0
  77. package/src/testing/Loading.tsx +2 -1
  78. package/src/testing/decorators/withLayout.tsx +2 -2
  79. package/src/translations.ts +10 -0
  80. package/dist/lib/browser/chunk-5SPBSIWS.mjs.map +0 -7
  81. package/dist/lib/node-esm/chunk-FPVTVXND.mjs.map +0 -7
@@ -54,10 +54,10 @@ import {
54
54
  useTooltipContext,
55
55
  useTranslation,
56
56
  withColumn
57
- } from "./chunk-TTEL2FP2.mjs";
57
+ } from "./chunk-LLVUYLAM.mjs";
58
58
  import {
59
59
  translationKey
60
- } from "./chunk-FPVTVXND.mjs";
60
+ } from "./chunk-OJYUPUCY.mjs";
61
61
 
62
62
  // src/index.ts
63
63
  import { Trans } from "react-i18next";
@@ -484,7 +484,7 @@ var BUTTON_NAME = "Button";
484
484
  var [ButtonGroupProvider, useButtonGroupContext] = createContext2(BUTTON_GROUP_NAME, {
485
485
  inGroup: false
486
486
  });
487
- var Button = /* @__PURE__ */ memo2(/* @__PURE__ */ forwardRef7(({ classNames, children, density: densityProp, elevation: elevationProp, variant = "default", asChild, ...props }, ref) => {
487
+ var Button = /* @__PURE__ */ memo2(/* @__PURE__ */ forwardRef7(({ classNames, children, density: densityProp, elevation: elevationProp, variant = "default", asChild, caretDown, ...props }, ref) => {
488
488
  const { inGroup } = useButtonGroupContext(BUTTON_NAME);
489
489
  const { tx } = useThemeContext();
490
490
  const elevation = useElevationContext(elevationProp);
@@ -506,7 +506,10 @@ var Button = /* @__PURE__ */ memo2(/* @__PURE__ */ forwardRef7(({ classNames, ch
506
506
  ...props.disabled && {
507
507
  disabled: true
508
508
  }
509
- }, children);
509
+ }, caretDown && !asChild ? /* @__PURE__ */ React9.createElement(React9.Fragment, null, children, /* @__PURE__ */ React9.createElement(Icon, {
510
+ size: 3,
511
+ icon: "ph--caret-down--bold"
512
+ })) : children);
510
513
  }));
511
514
  Button.displayName = BUTTON_NAME;
512
515
  var ButtonGroup = /* @__PURE__ */ forwardRef7(({ children, elevation: propsElevation, classNames, asChild, ...props }, forwardedRef) => {
@@ -526,65 +529,192 @@ var ButtonGroup = /* @__PURE__ */ forwardRef7(({ children, elevation: propsEleva
526
529
  ButtonGroup.displayName = BUTTON_GROUP_NAME;
527
530
 
528
531
  // src/components/Button/IconButton.tsx
529
- import React10, { forwardRef as forwardRef8 } from "react";
530
- var IconButton = /* @__PURE__ */ forwardRef8((props, forwardedRef) => props.iconOnly ? /* @__PURE__ */ React10.createElement(IconOnlyButton, {
532
+ import React11, { forwardRef as forwardRef9 } from "react";
533
+
534
+ // src/components/Tooltip/TextTooltip.tsx
535
+ import { useComposedRefs } from "@radix-ui/react-compose-refs";
536
+ import React10, { forwardRef as forwardRef8, useCallback as useCallback3, useRef } from "react";
537
+ var TextTooltip = /* @__PURE__ */ forwardRef8(({ __scopeTooltip, text, children, onlyWhenTruncating, asChild = true, side, truncateQuery, ...props }, forwardedRef) => {
538
+ const content = useRef(null);
539
+ const ref = useComposedRefs(content, forwardedRef);
540
+ const handleInteract = useCallback3((event) => {
541
+ if (onlyWhenTruncating && content.current) {
542
+ const element = truncateQuery ? content.current.querySelector(truncateQuery) : content.current;
543
+ if (!element || element.scrollWidth <= element.offsetWidth) {
544
+ event.preventDefault();
545
+ }
546
+ }
547
+ }, [
548
+ onlyWhenTruncating,
549
+ truncateQuery
550
+ ]);
551
+ return /* @__PURE__ */ React10.createElement(Tooltip.Trigger, {
552
+ asChild,
553
+ ...props,
554
+ content: text,
555
+ side,
556
+ onInteract: handleInteract,
557
+ ref
558
+ }, children);
559
+ });
560
+
561
+ // src/components/Button/IconButton.tsx
562
+ var IconButton = /* @__PURE__ */ forwardRef9((props, forwardedRef) => props.iconOnly ? /* @__PURE__ */ React11.createElement(IconOnlyButton, {
531
563
  ...props,
532
564
  ref: forwardedRef
533
- }) : /* @__PURE__ */ React10.createElement(LabelledIconButton, {
565
+ }) : /* @__PURE__ */ React11.createElement(LabelledIconButton, {
534
566
  ...props,
535
567
  ref: forwardedRef
536
568
  }));
537
- var IconOnlyButton = /* @__PURE__ */ forwardRef8(({ noTooltip, tooltipSide, ...props }, forwardedRef) => {
569
+ var IconOnlyButton = /* @__PURE__ */ forwardRef9(({ noTooltip, tooltipSide, ...props }, forwardedRef) => {
538
570
  if (noTooltip) {
539
- return /* @__PURE__ */ React10.createElement(LabelledIconButton, {
571
+ return /* @__PURE__ */ React11.createElement(LabelledIconButton, {
540
572
  ...props,
541
573
  ref: forwardedRef
542
574
  });
543
575
  }
544
- return /* @__PURE__ */ React10.createElement(Tooltip.Trigger, {
576
+ return /* @__PURE__ */ React11.createElement(Tooltip.Trigger, {
545
577
  asChild: true,
546
578
  content: props.label,
547
579
  side: tooltipSide
548
- }, /* @__PURE__ */ React10.createElement(LabelledIconButton, {
580
+ }, /* @__PURE__ */ React11.createElement(LabelledIconButton, {
549
581
  ...props,
550
582
  ref: forwardedRef
551
583
  }));
552
584
  });
553
- var LabelledIconButton = /* @__PURE__ */ forwardRef8(({ size, icon, iconOnly, square, iconEnd, iconClassNames, label, caretDown, noTooltip: _, classNames, ...props }, forwardedRef) => {
585
+ var LabelledIconButton = /* @__PURE__ */ forwardRef9(({ size, icon, iconOnly, square, iconEnd, iconClassNames, label, noTooltip: _, classNames, ...props }, forwardedRef) => {
554
586
  const { tx } = useThemeContext();
555
- return /* @__PURE__ */ React10.createElement(Button, {
587
+ return /* @__PURE__ */ React11.createElement(Button, {
556
588
  ...props,
557
589
  classNames: tx("iconButton.root", {
558
590
  iconOnly,
559
591
  square
560
592
  }, classNames),
561
593
  ref: forwardedRef
562
- }, icon && !iconEnd && /* @__PURE__ */ React10.createElement(Icon, {
594
+ }, icon && !iconEnd && /* @__PURE__ */ React11.createElement(Icon, {
563
595
  icon,
564
596
  size,
565
597
  classNames: iconClassNames
566
- }), /* @__PURE__ */ React10.createElement("span", {
598
+ }), /* @__PURE__ */ React11.createElement("span", {
567
599
  className: iconOnly ? "sr-only" : void 0
568
- }, label), icon && iconEnd && /* @__PURE__ */ React10.createElement(Icon, {
600
+ }, label), icon && iconEnd && /* @__PURE__ */ React11.createElement(Icon, {
569
601
  icon,
570
602
  size,
571
603
  classNames: iconClassNames
572
- }), caretDown && /* @__PURE__ */ React10.createElement(Icon, {
573
- size: 3,
574
- icon: "ph--caret-down--bold"
575
604
  }));
576
605
  });
577
606
 
607
+ // src/components/Button/SystemIconButton.tsx
608
+ import React13, { forwardRef as forwardRef11 } from "react";
609
+ import { useTranslation as useTranslation2 } from "react-i18next";
610
+ import { translationKey as translationKey2 } from "#translations";
611
+
612
+ // src/components/Button/ToggleIconButton.tsx
613
+ import React12, { forwardRef as forwardRef10 } from "react";
614
+ import { mx as mx6 } from "@dxos/ui-theme";
615
+ var ToggleIconButton = /* @__PURE__ */ forwardRef10(({ active, icon, activeIcon, iconClassNames, ...props }, forwardedRef) => /* @__PURE__ */ React12.createElement(IconButton, {
616
+ ...props,
617
+ ref: forwardedRef,
618
+ icon: active && activeIcon ? activeIcon : icon,
619
+ iconClassNames: activeIcon ? iconClassNames : mx6("transition-transform", active && "rotate-90", iconClassNames)
620
+ }));
621
+
622
+ // src/components/Button/SystemIconButton.tsx
623
+ var StarIconButton = /* @__PURE__ */ forwardRef11(({ label, active, ...props }, forwardedRef) => {
624
+ const { t } = useTranslation2(translationKey2);
625
+ return /* @__PURE__ */ React13.createElement(ToggleIconButton, {
626
+ ...props,
627
+ active,
628
+ icon: "ph--star--regular",
629
+ activeIcon: "ph--star--fill",
630
+ label: label ?? t(active ? "system-button.unstar.label" : "system-button.star.label"),
631
+ ref: forwardedRef
632
+ });
633
+ });
634
+ StarIconButton.displayName = "SystemIconButton.Star";
635
+ var BookmarkIconButton = /* @__PURE__ */ forwardRef11(({ label, active, ...props }, forwardedRef) => {
636
+ const { t } = useTranslation2(translationKey2);
637
+ return /* @__PURE__ */ React13.createElement(ToggleIconButton, {
638
+ ...props,
639
+ active,
640
+ icon: "ph--bookmark-simple--regular",
641
+ activeIcon: "ph--bookmark-simple--fill",
642
+ label: label ?? t(active ? "system-button.unbookmark.label" : "system-button.bookmark.label"),
643
+ ref: forwardedRef
644
+ });
645
+ });
646
+ BookmarkIconButton.displayName = "SystemIconButton.Bookmark";
647
+ var ExpanderIconButton = /* @__PURE__ */ forwardRef11(({ label, active, ...props }, forwardedRef) => {
648
+ const { t } = useTranslation2(translationKey2);
649
+ return /* @__PURE__ */ React13.createElement(ToggleIconButton, {
650
+ ...props,
651
+ active,
652
+ icon: "ph--caret-right--regular",
653
+ label: label ?? t(active ? "system-button.collapse.label" : "system-button.expand.label"),
654
+ ref: forwardedRef
655
+ });
656
+ });
657
+ ExpanderIconButton.displayName = "SystemIconButton.Expander";
658
+ var AddIconButton = /* @__PURE__ */ forwardRef11(({ label, ...props }, forwardedRef) => {
659
+ const { t } = useTranslation2(translationKey2);
660
+ return /* @__PURE__ */ React13.createElement(IconButton, {
661
+ ...props,
662
+ icon: "ph--plus--regular",
663
+ label: label ?? t("system-button.add.label"),
664
+ ref: forwardedRef
665
+ });
666
+ });
667
+ AddIconButton.displayName = "SystemIconButton.Add";
668
+ var DeleteIconButton = /* @__PURE__ */ forwardRef11(({ label, ...props }, forwardedRef) => {
669
+ const { t } = useTranslation2(translationKey2);
670
+ return /* @__PURE__ */ React13.createElement(IconButton, {
671
+ ...props,
672
+ icon: "ph--trash--regular",
673
+ label: label ?? t("system-button.delete.label"),
674
+ ref: forwardedRef
675
+ });
676
+ });
677
+ DeleteIconButton.displayName = "SystemIconButton.Delete";
678
+ var EditIconButton = /* @__PURE__ */ forwardRef11(({ label, ...props }, forwardedRef) => {
679
+ const { t } = useTranslation2(translationKey2);
680
+ return /* @__PURE__ */ React13.createElement(IconButton, {
681
+ ...props,
682
+ icon: "ph--pen--regular",
683
+ label: label ?? t("system-button.edit.label"),
684
+ ref: forwardedRef
685
+ });
686
+ });
687
+ EditIconButton.displayName = "SystemIconButton.Edit";
688
+ var CloseIconButton = /* @__PURE__ */ forwardRef11(({ label, ...props }, forwardedRef) => {
689
+ const { t } = useTranslation2(translationKey2);
690
+ return /* @__PURE__ */ React13.createElement(IconButton, {
691
+ ...props,
692
+ icon: "ph--x--regular",
693
+ label: label ?? t("system-button.close.label"),
694
+ ref: forwardedRef
695
+ });
696
+ });
697
+ CloseIconButton.displayName = "SystemIconButton.Close";
698
+ var SystemIconButton = {
699
+ Star: StarIconButton,
700
+ Bookmark: BookmarkIconButton,
701
+ Expander: ExpanderIconButton,
702
+ Add: AddIconButton,
703
+ Delete: DeleteIconButton,
704
+ Edit: EditIconButton,
705
+ Close: CloseIconButton
706
+ };
707
+
578
708
  // src/components/Button/Toggle.tsx
579
709
  import * as TogglePrimitive from "@radix-ui/react-toggle";
580
- import React11, { forwardRef as forwardRef9 } from "react";
581
- var Toggle = /* @__PURE__ */ forwardRef9(({ defaultPressed, pressed, onPressedChange, ...props }, forwardedRef) => {
582
- return /* @__PURE__ */ React11.createElement(TogglePrimitive.Root, {
710
+ import React14, { forwardRef as forwardRef12 } from "react";
711
+ var Toggle = /* @__PURE__ */ forwardRef12(({ defaultPressed, pressed, onPressedChange, ...props }, forwardedRef) => {
712
+ return /* @__PURE__ */ React14.createElement(TogglePrimitive.Root, {
583
713
  defaultPressed,
584
714
  pressed,
585
715
  onPressedChange,
586
716
  asChild: true
587
- }, /* @__PURE__ */ React11.createElement(Button, {
717
+ }, /* @__PURE__ */ React14.createElement(Button, {
588
718
  ...props,
589
719
  ref: forwardedRef
590
720
  }));
@@ -592,22 +722,22 @@ var Toggle = /* @__PURE__ */ forwardRef9(({ defaultPressed, pressed, onPressedCh
592
722
 
593
723
  // src/components/Button/ToggleGroup.tsx
594
724
  import * as ToggleGroupPrimitive from "@radix-ui/react-toggle-group";
595
- import React12, { forwardRef as forwardRef10 } from "react";
596
- var ToggleGroup = /* @__PURE__ */ forwardRef10(({ classNames, children, ...props }, forwardedRef) => {
597
- return /* @__PURE__ */ React12.createElement(ToggleGroupPrimitive.Root, {
725
+ import React15, { forwardRef as forwardRef13 } from "react";
726
+ var ToggleGroup = /* @__PURE__ */ forwardRef13(({ classNames, children, ...props }, forwardedRef) => {
727
+ return /* @__PURE__ */ React15.createElement(ToggleGroupPrimitive.Root, {
598
728
  ...props,
599
729
  asChild: true
600
- }, /* @__PURE__ */ React12.createElement(ButtonGroup, {
730
+ }, /* @__PURE__ */ React15.createElement(ButtonGroup, {
601
731
  classNames,
602
732
  children,
603
733
  ref: forwardedRef
604
734
  }));
605
735
  });
606
- var ToggleGroupItem = /* @__PURE__ */ forwardRef10(({ variant, elevation, density, classNames, children, ...props }, forwardedRef) => {
607
- return /* @__PURE__ */ React12.createElement(ToggleGroupPrimitive.Item, {
736
+ var ToggleGroupItem = /* @__PURE__ */ forwardRef13(({ variant, elevation, density, classNames, children, ...props }, forwardedRef) => {
737
+ return /* @__PURE__ */ React15.createElement(ToggleGroupPrimitive.Item, {
608
738
  ...props,
609
739
  asChild: true
610
- }, /* @__PURE__ */ React12.createElement(Button, {
740
+ }, /* @__PURE__ */ React15.createElement(Button, {
611
741
  variant,
612
742
  elevation,
613
743
  density,
@@ -616,11 +746,11 @@ var ToggleGroupItem = /* @__PURE__ */ forwardRef10(({ variant, elevation, densit
616
746
  ref: forwardedRef
617
747
  }));
618
748
  });
619
- var ToggleGroupIconItem = /* @__PURE__ */ forwardRef10(({ variant, label, icon, size, elevation, density, classNames, ...props }, forwardedRef) => {
620
- return /* @__PURE__ */ React12.createElement(ToggleGroupPrimitive.Item, {
749
+ var ToggleGroupIconItem = /* @__PURE__ */ forwardRef13(({ variant, label, icon, size, elevation, density, classNames, ...props }, forwardedRef) => {
750
+ return /* @__PURE__ */ React15.createElement(ToggleGroupPrimitive.Item, {
621
751
  ...props,
622
752
  asChild: true
623
- }, /* @__PURE__ */ React12.createElement(IconButton, {
753
+ }, /* @__PURE__ */ React15.createElement(IconButton, {
624
754
  variant,
625
755
  elevation,
626
756
  density,
@@ -634,7 +764,7 @@ var ToggleGroupIconItem = /* @__PURE__ */ forwardRef10(({ variant, label, icon,
634
764
 
635
765
  // src/components/Calendar/Calendar.tsx
636
766
  import { CalendarDate, parseDate } from "@internationalized/date";
637
- import React13, { forwardRef as forwardRef11 } from "react";
767
+ import React16, { forwardRef as forwardRef14 } from "react";
638
768
  import { Button as RACButton, Calendar as RACCalendar, CalendarCell as RACCalendarCell, CalendarGrid as RACCalendarGrid, CalendarGridBody as RACCalendarGridBody, CalendarGridHeader as RACCalendarGridHeader, CalendarHeaderCell as RACCalendarHeaderCell, Heading as RACHeading, RangeCalendar as RACRangeCalendar } from "react-aria-components";
639
769
  var toCalendarDate = (date) => {
640
770
  if (!date) {
@@ -650,7 +780,7 @@ var fromCalendarDate = (value) => {
650
780
  };
651
781
  var CalendarShell = ({ classNames, className, isDisabled, forwardedRef, children }) => {
652
782
  const { tx } = useThemeContext();
653
- return /* @__PURE__ */ React13.createElement("div", {
783
+ return /* @__PURE__ */ React16.createElement("div", {
654
784
  ref: forwardedRef,
655
785
  className: tx("calendar.root", {}, classNames, className) ?? void 0,
656
786
  "aria-disabled": isDisabled || void 0
@@ -658,38 +788,38 @@ var CalendarShell = ({ classNames, className, isDisabled, forwardedRef, children
658
788
  };
659
789
  var CalendarChrome = () => {
660
790
  const { tx } = useThemeContext();
661
- return /* @__PURE__ */ React13.createElement("header", {
791
+ return /* @__PURE__ */ React16.createElement("header", {
662
792
  className: tx("calendar.nav", {}) ?? void 0
663
- }, /* @__PURE__ */ React13.createElement(RACButton, {
793
+ }, /* @__PURE__ */ React16.createElement(RACButton, {
664
794
  slot: "previous",
665
795
  className: tx("calendar.button_previous", {}) ?? void 0
666
- }, /* @__PURE__ */ React13.createElement(Icon, {
796
+ }, /* @__PURE__ */ React16.createElement(Icon, {
667
797
  size: 4,
668
798
  icon: "ph--caret-left--regular"
669
- })), /* @__PURE__ */ React13.createElement(RACHeading, {
799
+ })), /* @__PURE__ */ React16.createElement(RACHeading, {
670
800
  className: tx("calendar.caption_label", {}) ?? void 0
671
- }), /* @__PURE__ */ React13.createElement(RACButton, {
801
+ }), /* @__PURE__ */ React16.createElement(RACButton, {
672
802
  slot: "next",
673
803
  className: tx("calendar.button_next", {}) ?? void 0
674
- }, /* @__PURE__ */ React13.createElement(Icon, {
804
+ }, /* @__PURE__ */ React16.createElement(Icon, {
675
805
  size: 4,
676
806
  icon: "ph--caret-right--regular"
677
807
  })));
678
808
  };
679
809
  var CalendarGridContent = () => {
680
810
  const { tx } = useThemeContext();
681
- return /* @__PURE__ */ React13.createElement(RACCalendarGrid, {
811
+ return /* @__PURE__ */ React16.createElement(RACCalendarGrid, {
682
812
  className: tx("calendar.month_grid", {}) ?? void 0
683
- }, /* @__PURE__ */ React13.createElement(RACCalendarGridHeader, {
813
+ }, /* @__PURE__ */ React16.createElement(RACCalendarGridHeader, {
684
814
  className: tx("calendar.weekdays", {}) ?? void 0
685
- }, (day) => /* @__PURE__ */ React13.createElement(RACCalendarHeaderCell, {
815
+ }, (day) => /* @__PURE__ */ React16.createElement(RACCalendarHeaderCell, {
686
816
  className: tx("calendar.weekday", {}) ?? void 0
687
- }, day)), /* @__PURE__ */ React13.createElement(RACCalendarGridBody, null, (date) => /* @__PURE__ */ React13.createElement(RACCalendarCell, {
817
+ }, day)), /* @__PURE__ */ React16.createElement(RACCalendarGridBody, null, (date) => /* @__PURE__ */ React16.createElement(RACCalendarCell, {
688
818
  date,
689
819
  className: tx("calendar.day", {}) ?? void 0
690
820
  })));
691
821
  };
692
- var CalendarRoot = /* @__PURE__ */ forwardRef11((props, forwardedRef) => {
822
+ var CalendarRoot = /* @__PURE__ */ forwardRef14((props, forwardedRef) => {
693
823
  const { classNames, className, isDisabled, minValue, maxValue, defaultMonth } = props;
694
824
  const defaultFocused = toCalendarDate(defaultMonth) ?? void 0;
695
825
  if (props.mode === "range") {
@@ -717,12 +847,12 @@ var CalendarRoot = /* @__PURE__ */ forwardRef11((props, forwardedRef) => {
717
847
  }
718
848
  }
719
849
  };
720
- return /* @__PURE__ */ React13.createElement(CalendarShell, {
850
+ return /* @__PURE__ */ React16.createElement(CalendarShell, {
721
851
  classNames,
722
852
  className,
723
853
  isDisabled,
724
854
  forwardedRef
725
- }, /* @__PURE__ */ React13.createElement(RACRangeCalendar, racProps2, /* @__PURE__ */ React13.createElement(CalendarChrome, null), /* @__PURE__ */ React13.createElement(CalendarGridContent, null)));
855
+ }, /* @__PURE__ */ React16.createElement(RACRangeCalendar, racProps2, /* @__PURE__ */ React16.createElement(CalendarChrome, null), /* @__PURE__ */ React16.createElement(CalendarGridContent, null)));
726
856
  }
727
857
  const racProps = {
728
858
  isDisabled,
@@ -732,12 +862,12 @@ var CalendarRoot = /* @__PURE__ */ forwardRef11((props, forwardedRef) => {
732
862
  value: toCalendarDate(props.selected),
733
863
  onChange: (next) => props.onSelect?.(fromCalendarDate(next))
734
864
  };
735
- return /* @__PURE__ */ React13.createElement(CalendarShell, {
865
+ return /* @__PURE__ */ React16.createElement(CalendarShell, {
736
866
  classNames,
737
867
  className,
738
868
  isDisabled,
739
869
  forwardedRef
740
- }, /* @__PURE__ */ React13.createElement(RACCalendar, racProps, /* @__PURE__ */ React13.createElement(CalendarChrome, null), /* @__PURE__ */ React13.createElement(CalendarGridContent, null)));
870
+ }, /* @__PURE__ */ React16.createElement(RACCalendar, racProps, /* @__PURE__ */ React16.createElement(CalendarChrome, null), /* @__PURE__ */ React16.createElement(CalendarGridContent, null)));
741
871
  });
742
872
  CalendarRoot.displayName = "Calendar.Root";
743
873
  var Calendar = {
@@ -745,16 +875,18 @@ var Calendar = {
745
875
  };
746
876
 
747
877
  // src/components/Card/Card.tsx
748
- import { Primitive as Primitive11 } from "@radix-ui/react-primitive";
749
- import { Slot as Slot11 } from "@radix-ui/react-slot";
878
+ import { Primitive as Primitive10 } from "@radix-ui/react-primitive";
879
+ import { Slot as Slot10 } from "@radix-ui/react-slot";
750
880
  import DOMPurify from "dompurify";
751
- import React20, { forwardRef as forwardRef16, useId as useId3, useMemo as useMemo5 } from "react";
881
+ import React21, { forwardRef as forwardRef17, useId as useId3, useMemo as useMemo5 } from "react";
882
+ import { useTranslation as useTranslation3 } from "react-i18next";
752
883
  import { iconSize } from "@dxos/ui-theme";
884
+ import { translationKey as translationKey3 } from "#translations";
753
885
 
754
886
  // src/components/Column/Column.tsx
755
887
  import { Primitive as Primitive7 } from "@radix-ui/react-primitive";
756
888
  import { Slot as Slot7 } from "@radix-ui/react-slot";
757
- import React14 from "react";
889
+ import React17 from "react";
758
890
  var COLUMN_ROOT_NAME = "Column.Root";
759
891
  var gutterSizes = {
760
892
  xs: "var(--dx-gutter-xs)",
@@ -767,7 +899,7 @@ var ColumnRoot = slottable(({ children, asChild, role, gutter = "md", ...props }
767
899
  const Comp = asChild ? Slot7 : Primitive7.div;
768
900
  const { tx } = useThemeContext();
769
901
  const gutterSize = gutterSizes[gutter];
770
- return /* @__PURE__ */ React14.createElement(Comp, {
902
+ return /* @__PURE__ */ React17.createElement(Comp, {
771
903
  ...rest,
772
904
  role: role ?? "none",
773
905
  style: {
@@ -792,7 +924,7 @@ var ColumnRow = slottable(({ children, asChild, role, ...props }, forwardedRef)
792
924
  const { className, ...rest } = composableProps(props);
793
925
  const Comp = asChild ? Slot7 : Primitive7.div;
794
926
  const { tx } = useThemeContext();
795
- return /* @__PURE__ */ React14.createElement(Comp, {
927
+ return /* @__PURE__ */ React17.createElement(Comp, {
796
928
  ...rest,
797
929
  role: role ?? "none",
798
930
  className: tx("column.row", {}, className),
@@ -805,7 +937,7 @@ var ColumnBleed = slottable(({ children, asChild, ...props }, forwardedRef) => {
805
937
  const { tx } = useThemeContext();
806
938
  const { className, ...rest } = composableProps(props);
807
939
  const Comp = asChild ? Slot7 : Primitive7.div;
808
- return /* @__PURE__ */ React14.createElement(Comp, {
940
+ return /* @__PURE__ */ React17.createElement(Comp, {
809
941
  ...rest,
810
942
  className: tx("column.bleed", {}, className),
811
943
  ref: forwardedRef
@@ -817,33 +949,51 @@ var ColumnCenter = slottable(({ children, asChild, ...props }, forwardedRef) =>
817
949
  const { tx } = useThemeContext();
818
950
  const { className, ...rest } = composableProps(props);
819
951
  const Comp = asChild ? Slot7 : Primitive7.div;
820
- return /* @__PURE__ */ React14.createElement(Comp, {
952
+ return /* @__PURE__ */ React17.createElement(Comp, {
821
953
  ...rest,
822
954
  className: tx("column.center", {}, className),
823
955
  ref: forwardedRef
824
956
  }, children);
825
957
  });
826
958
  ColumnCenter.displayName = COLUMN_CENTER_NAME;
959
+ var COLUMN_BLOCK_NAME = "Column.Block";
960
+ var ColumnBlock = slottable(({ children, asChild, end, compact, square, ...props }, forwardedRef) => {
961
+ const { tx } = useThemeContext();
962
+ const { className, ...rest } = composableProps(props);
963
+ const Comp = asChild ? Slot7 : Primitive7.div;
964
+ return /* @__PURE__ */ React17.createElement(Comp, {
965
+ ...rest,
966
+ "data-slot": end ? "end" : "start",
967
+ className: tx("column.block", {
968
+ end,
969
+ compact,
970
+ square
971
+ }, className),
972
+ ref: forwardedRef
973
+ }, children);
974
+ });
975
+ ColumnBlock.displayName = COLUMN_BLOCK_NAME;
827
976
  var Column = {
828
977
  Root: ColumnRoot,
829
978
  Row: ColumnRow,
979
+ Block: ColumnBlock,
830
980
  Bleed: ColumnBleed,
831
981
  Center: ColumnCenter
832
982
  };
833
983
 
834
984
  // src/components/Image/Image.tsx
835
- import React15, { useCallback as useCallback3, useRef, useState as useState3 } from "react";
836
- import { mx as mx6 } from "@dxos/ui-theme";
985
+ import React18, { useCallback as useCallback4, useRef as useRef2, useState as useState3 } from "react";
986
+ import { mx as mx7 } from "@dxos/ui-theme";
837
987
  var cache = /* @__PURE__ */ new Map();
838
988
  var Image = ({ classNames, src, alt = "", fit = "contain", crossOrigin, sampleSize = 64, contrast = 0.9 }) => {
839
989
  const [crossOriginState, setCrossOriginState] = useState3(crossOrigin);
840
990
  const [dominantColor, setDominantColor] = useState3(void 0);
841
991
  const [imageLoaded, setImageLoaded] = useState3(false);
842
- const canvasRef = useRef(null);
992
+ const canvasRef = useRef2(null);
843
993
  const handleImageError = () => {
844
994
  setCrossOriginState(void 0);
845
995
  };
846
- const handleImageLoad = useCallback3(({ target }) => {
996
+ const handleImageLoad = useCallback4(({ target }) => {
847
997
  const rgb = cache.get(src);
848
998
  if (rgb) {
849
999
  setDominantColor(rgb);
@@ -873,37 +1023,37 @@ var Image = ({ classNames, src, alt = "", fit = "contain", crossOrigin, sampleSi
873
1023
  contrast,
874
1024
  src
875
1025
  ]);
876
- return /* @__PURE__ */ React15.createElement("div", {
1026
+ return /* @__PURE__ */ React18.createElement("div", {
877
1027
  // `isolate` (`isolation: isolate`) creates a new stacking context so
878
1028
  // the inner <img>'s `z-10` stays scoped to this wrapper. Without it
879
1029
  // the z-10 leaks into the parent's stacking context and elevates the
880
1030
  // image above any pseudo-element rings (e.g. Focus.Item's
881
1031
  // `dx-ring-pseudo` `::after`) painted on ancestors — most visibly,
882
1032
  // the focus ring on a Card containing a Card.Poster.
883
- className: mx6(`relative flex w-full justify-center overflow-hidden transition-all duration-700 isolate`, classNames),
1033
+ className: mx7(`relative flex w-full justify-center overflow-hidden transition-all duration-700 isolate`, classNames),
884
1034
  style: {
885
1035
  backgroundColor: dominantColor
886
1036
  }
887
- }, /* @__PURE__ */ React15.createElement("canvas", {
1037
+ }, /* @__PURE__ */ React18.createElement("canvas", {
888
1038
  ref: canvasRef,
889
1039
  style: {
890
1040
  display: "none"
891
1041
  },
892
1042
  "aria-hidden": "true"
893
- }), /* @__PURE__ */ React15.createElement("div", {
1043
+ }), /* @__PURE__ */ React18.createElement("div", {
894
1044
  className: "absolute inset-0 pointer-events-none",
895
1045
  style: {
896
1046
  background: dominantColor ? `radial-gradient(circle at center, transparent 30%, ${dominantColor} 100%)` : void 0,
897
1047
  transition: "opacity 0.7s ease-in-out",
898
1048
  opacity: 0.5
899
1049
  }
900
- }), /* @__PURE__ */ React15.createElement("img", {
1050
+ }), /* @__PURE__ */ React18.createElement("img", {
901
1051
  src,
902
1052
  alt,
903
1053
  crossOrigin: crossOriginState,
904
1054
  onError: handleImageError,
905
1055
  onLoad: handleImageLoad,
906
- className: mx6("z-10 transition-opacity duration-500", fit === "cover" ? "w-full h-full object-cover" : "object-contain"),
1056
+ className: mx7("z-10 transition-opacity duration-500", fit === "cover" ? "w-full h-full object-cover" : "object-contain"),
907
1057
  style: {
908
1058
  opacity: imageLoaded ? 1 : 0
909
1059
  }
@@ -992,27 +1142,19 @@ var isTransparent = (pixels, sampleSize, threshold = 0.5) => {
992
1142
  return edgeTransparentPixels / edgePixels > threshold;
993
1143
  };
994
1144
 
995
- // src/components/Toolbar/Toolbar.tsx
996
- import { Primitive as Primitive10 } from "@radix-ui/react-primitive";
997
- import { Slot as Slot10 } from "@radix-ui/react-slot";
998
- import * as ToolbarPrimitive from "@radix-ui/react-toolbar";
999
- import React19, { forwardRef as forwardRef15 } from "react";
1000
- import { useTranslation as useTranslation2 } from "react-i18next";
1001
- import { translationKey as translationKey2 } from "#translations";
1002
-
1003
1145
  // src/components/Menu/ContextMenu.tsx
1004
1146
  import * as ContextMenuPrimitive from "@radix-ui/react-context-menu";
1005
1147
  import { Primitive as Primitive8 } from "@radix-ui/react-primitive";
1006
1148
  import { Slot as Slot8 } from "@radix-ui/react-slot";
1007
- import React16, { forwardRef as forwardRef12 } from "react";
1149
+ import React19, { forwardRef as forwardRef15 } from "react";
1008
1150
  var ContextMenuRoot = ContextMenuPrimitive.ContextMenu;
1009
1151
  var ContextMenuTrigger = ContextMenuPrimitive.Trigger;
1010
1152
  var ContextMenuPortal = ContextMenuPrimitive.Portal;
1011
- var ContextMenuContent = /* @__PURE__ */ forwardRef12(({ classNames, children, collisionPadding = 8, ...props }, forwardedRef) => {
1153
+ var ContextMenuContent = /* @__PURE__ */ forwardRef15(({ classNames, children, collisionPadding = 8, ...props }, forwardedRef) => {
1012
1154
  const { tx } = useThemeContext();
1013
1155
  const elevation = useElevationContext();
1014
1156
  const safeCollisionPadding = useSafeCollisionPadding(collisionPadding);
1015
- return /* @__PURE__ */ React16.createElement(ContextMenuPrimitive.Content, {
1157
+ return /* @__PURE__ */ React19.createElement(ContextMenuPrimitive.Content, {
1016
1158
  ...props,
1017
1159
  "data-arrow-keys": "up down",
1018
1160
  collisionPadding: safeCollisionPadding,
@@ -1022,18 +1164,18 @@ var ContextMenuContent = /* @__PURE__ */ forwardRef12(({ classNames, children, c
1022
1164
  ref: forwardedRef
1023
1165
  }, children);
1024
1166
  });
1025
- var ContextMenuViewport = /* @__PURE__ */ forwardRef12(({ classNames, asChild, children, ...props }, forwardedRef) => {
1167
+ var ContextMenuViewport = /* @__PURE__ */ forwardRef15(({ classNames, asChild, children, ...props }, forwardedRef) => {
1026
1168
  const { tx } = useThemeContext();
1027
1169
  const Comp = asChild ? Slot8 : Primitive8.div;
1028
- return /* @__PURE__ */ React16.createElement(Comp, {
1170
+ return /* @__PURE__ */ React19.createElement(Comp, {
1029
1171
  ...props,
1030
1172
  className: tx("menu.viewport", {}, classNames),
1031
1173
  ref: forwardedRef
1032
1174
  }, children);
1033
1175
  });
1034
- var ContextMenuArrow = /* @__PURE__ */ forwardRef12(({ classNames, ...props }, forwardedRef) => {
1176
+ var ContextMenuArrow = /* @__PURE__ */ forwardRef15(({ classNames, ...props }, forwardedRef) => {
1035
1177
  const { tx } = useThemeContext();
1036
- return /* @__PURE__ */ React16.createElement(ContextMenuPrimitive.Arrow, {
1178
+ return /* @__PURE__ */ React19.createElement(ContextMenuPrimitive.Arrow, {
1037
1179
  ...props,
1038
1180
  className: tx("menu.arrow", {}, classNames),
1039
1181
  ref: forwardedRef
@@ -1041,33 +1183,33 @@ var ContextMenuArrow = /* @__PURE__ */ forwardRef12(({ classNames, ...props }, f
1041
1183
  });
1042
1184
  var ContextMenuGroup = ContextMenuPrimitive.Group;
1043
1185
  var ContextMenuItemIndicator = ContextMenuPrimitive.ItemIndicator;
1044
- var ContextMenuItem = /* @__PURE__ */ forwardRef12(({ classNames, ...props }, forwardedRef) => {
1186
+ var ContextMenuItem = /* @__PURE__ */ forwardRef15(({ classNames, ...props }, forwardedRef) => {
1045
1187
  const { tx } = useThemeContext();
1046
- return /* @__PURE__ */ React16.createElement(ContextMenuPrimitive.Item, {
1188
+ return /* @__PURE__ */ React19.createElement(ContextMenuPrimitive.Item, {
1047
1189
  ...props,
1048
1190
  className: tx("menu.item", {}, classNames),
1049
1191
  ref: forwardedRef
1050
1192
  });
1051
1193
  });
1052
- var ContextMenuCheckboxItem = /* @__PURE__ */ forwardRef12(({ classNames, ...props }, forwardedRef) => {
1194
+ var ContextMenuCheckboxItem = /* @__PURE__ */ forwardRef15(({ classNames, ...props }, forwardedRef) => {
1053
1195
  const { tx } = useThemeContext();
1054
- return /* @__PURE__ */ React16.createElement(ContextMenuPrimitive.CheckboxItem, {
1196
+ return /* @__PURE__ */ React19.createElement(ContextMenuPrimitive.CheckboxItem, {
1055
1197
  ...props,
1056
1198
  className: tx("menu.item", {}, classNames),
1057
1199
  ref: forwardedRef
1058
1200
  });
1059
1201
  });
1060
- var ContextMenuSeparator = /* @__PURE__ */ forwardRef12(({ classNames, ...props }, forwardedRef) => {
1202
+ var ContextMenuSeparator = /* @__PURE__ */ forwardRef15(({ classNames, ...props }, forwardedRef) => {
1061
1203
  const { tx } = useThemeContext();
1062
- return /* @__PURE__ */ React16.createElement(ContextMenuPrimitive.Separator, {
1204
+ return /* @__PURE__ */ React19.createElement(ContextMenuPrimitive.Separator, {
1063
1205
  ...props,
1064
1206
  className: tx("menu.separator", {}, classNames),
1065
1207
  ref: forwardedRef
1066
1208
  });
1067
1209
  });
1068
- var ContextMenuGroupLabel = /* @__PURE__ */ forwardRef12(({ classNames, ...props }, forwardedRef) => {
1210
+ var ContextMenuGroupLabel = /* @__PURE__ */ forwardRef15(({ classNames, ...props }, forwardedRef) => {
1069
1211
  const { tx } = useThemeContext();
1070
- return /* @__PURE__ */ React16.createElement(ContextMenuPrimitive.Label, {
1212
+ return /* @__PURE__ */ React19.createElement(ContextMenuPrimitive.Label, {
1071
1213
  ...props,
1072
1214
  className: tx("menu.groupLabel", {}, classNames),
1073
1215
  ref: forwardedRef
@@ -1098,7 +1240,7 @@ import { createMenuScope } from "@radix-ui/react-menu";
1098
1240
  import { Primitive as Primitive9 } from "@radix-ui/react-primitive";
1099
1241
  import { Slot as Slot9 } from "@radix-ui/react-slot";
1100
1242
  import { useControllableState } from "@radix-ui/react-use-controllable-state";
1101
- import React17, { forwardRef as forwardRef13, useCallback as useCallback4, useEffect as useEffect2, useMemo as useMemo4, useRef as useRef2 } from "react";
1243
+ import React20, { forwardRef as forwardRef16, useCallback as useCallback5, useEffect as useEffect2, useMemo as useMemo4, useRef as useRef3 } from "react";
1102
1244
  var DROPDOWN_MENU_NAME = "DropdownMenu";
1103
1245
  var [createDropdownMenuContext, createDropdownMenuScope] = createContextScope(DROPDOWN_MENU_NAME, [
1104
1246
  createMenuScope
@@ -1107,24 +1249,24 @@ var useMenuScope = createMenuScope();
1107
1249
  var [DropdownMenuProvider, useDropdownMenuContext] = createDropdownMenuContext(DROPDOWN_MENU_NAME);
1108
1250
  var DropdownMenuRoot = ({ __scopeDropdownMenu, children, dir, modal = true, open: openProp, defaultOpen, onOpenChange }) => {
1109
1251
  const menuScope = useMenuScope(__scopeDropdownMenu);
1110
- const triggerRef = useRef2(null);
1252
+ const triggerRef = useRef3(null);
1111
1253
  const [open = false, setOpen] = useControllableState({
1112
1254
  prop: openProp,
1113
1255
  defaultProp: defaultOpen,
1114
1256
  onChange: onOpenChange
1115
1257
  });
1116
- return /* @__PURE__ */ React17.createElement(DropdownMenuProvider, {
1258
+ return /* @__PURE__ */ React20.createElement(DropdownMenuProvider, {
1117
1259
  scope: __scopeDropdownMenu,
1118
1260
  triggerId: useId2(),
1119
1261
  triggerRef,
1120
1262
  contentId: useId2(),
1121
1263
  open,
1122
1264
  onOpenChange: setOpen,
1123
- onOpenToggle: useCallback4(() => setOpen((prevOpen) => !prevOpen), [
1265
+ onOpenToggle: useCallback5(() => setOpen((prevOpen) => !prevOpen), [
1124
1266
  setOpen
1125
1267
  ]),
1126
1268
  modal
1127
- }, /* @__PURE__ */ React17.createElement(MenuPrimitive.Root, {
1269
+ }, /* @__PURE__ */ React20.createElement(MenuPrimitive.Root, {
1128
1270
  ...menuScope,
1129
1271
  dir,
1130
1272
  modal,
@@ -1134,14 +1276,14 @@ var DropdownMenuRoot = ({ __scopeDropdownMenu, children, dir, modal = true, open
1134
1276
  };
1135
1277
  DropdownMenuRoot.displayName = DROPDOWN_MENU_NAME;
1136
1278
  var TRIGGER_NAME = "DropdownMenu.Trigger";
1137
- var DropdownMenuTrigger = /* @__PURE__ */ forwardRef13((props, forwardedRef) => {
1279
+ var DropdownMenuTrigger = /* @__PURE__ */ forwardRef16((props, forwardedRef) => {
1138
1280
  const { __scopeDropdownMenu, disabled = false, ...triggerProps } = props;
1139
1281
  const context = useDropdownMenuContext(TRIGGER_NAME, __scopeDropdownMenu);
1140
1282
  const menuScope = useMenuScope(__scopeDropdownMenu);
1141
- return /* @__PURE__ */ React17.createElement(MenuPrimitive.Anchor, {
1283
+ return /* @__PURE__ */ React20.createElement(MenuPrimitive.Anchor, {
1142
1284
  asChild: true,
1143
1285
  ...menuScope
1144
- }, /* @__PURE__ */ React17.createElement(Primitive9.button, {
1286
+ }, /* @__PURE__ */ React20.createElement(Primitive9.button, {
1145
1287
  type: "button",
1146
1288
  id: context.triggerId,
1147
1289
  "aria-haspopup": "menu",
@@ -1195,7 +1337,7 @@ var DropdownMenuVirtualTrigger = (props) => {
1195
1337
  context.triggerRef.current = virtualRef.current;
1196
1338
  }
1197
1339
  });
1198
- return /* @__PURE__ */ React17.createElement(MenuPrimitive.Anchor, {
1340
+ return /* @__PURE__ */ React20.createElement(MenuPrimitive.Anchor, {
1199
1341
  ...menuScope,
1200
1342
  virtualRef
1201
1343
  });
@@ -1205,29 +1347,29 @@ var PORTAL_NAME = "DropdownMenu.Portal";
1205
1347
  var DropdownMenuPortal = (props) => {
1206
1348
  const { __scopeDropdownMenu, ...portalProps } = props;
1207
1349
  const menuScope = useMenuScope(__scopeDropdownMenu);
1208
- return /* @__PURE__ */ React17.createElement(MenuPrimitive.Portal, {
1350
+ return /* @__PURE__ */ React20.createElement(MenuPrimitive.Portal, {
1209
1351
  ...menuScope,
1210
1352
  ...portalProps
1211
1353
  });
1212
1354
  };
1213
1355
  DropdownMenuPortal.displayName = PORTAL_NAME;
1214
- var DropdownMenuViewport = /* @__PURE__ */ forwardRef13(({ classNames, asChild, children, ...props }, forwardedRef) => {
1356
+ var DropdownMenuViewport = /* @__PURE__ */ forwardRef16(({ classNames, asChild, children, ...props }, forwardedRef) => {
1215
1357
  const { tx } = useThemeContext();
1216
1358
  const Comp = asChild ? Slot9 : Primitive9.div;
1217
- return /* @__PURE__ */ React17.createElement(Comp, {
1359
+ return /* @__PURE__ */ React20.createElement(Comp, {
1218
1360
  ...props,
1219
1361
  className: tx("menu.viewport", {}, classNames),
1220
1362
  ref: forwardedRef
1221
1363
  }, children);
1222
1364
  });
1223
1365
  var CONTENT_NAME = "DropdownMenu.Content";
1224
- var DropdownMenuContent = /* @__PURE__ */ forwardRef13((props, forwardedRef) => {
1366
+ var DropdownMenuContent = /* @__PURE__ */ forwardRef16((props, forwardedRef) => {
1225
1367
  const { __scopeDropdownMenu, classNames, collisionPadding = 8, collisionBoundary, ...contentProps } = props;
1226
1368
  const { tx } = useThemeContext();
1227
1369
  const context = useDropdownMenuContext(CONTENT_NAME, __scopeDropdownMenu);
1228
1370
  const elevation = useElevationContext();
1229
1371
  const menuScope = useMenuScope(__scopeDropdownMenu);
1230
- const hasInteractedOutsideRef = useRef2(false);
1372
+ const hasInteractedOutsideRef = useRef3(false);
1231
1373
  const safeCollisionPadding = useSafeCollisionPadding(collisionPadding);
1232
1374
  const computedCollisionBoundary = useMemo4(() => {
1233
1375
  const closestBoundary = context.triggerRef.current?.closest("[data-popover-collision-boundary]");
@@ -1245,7 +1387,7 @@ var DropdownMenuContent = /* @__PURE__ */ forwardRef13((props, forwardedRef) =>
1245
1387
  collisionBoundary,
1246
1388
  context.triggerRef.current
1247
1389
  ]);
1248
- return /* @__PURE__ */ React17.createElement(MenuPrimitive.Content, {
1390
+ return /* @__PURE__ */ React20.createElement(MenuPrimitive.Content, {
1249
1391
  id: context.contentId,
1250
1392
  "aria-labelledby": context.triggerId,
1251
1393
  ...menuScope,
@@ -1287,10 +1429,10 @@ var DropdownMenuContent = /* @__PURE__ */ forwardRef13((props, forwardedRef) =>
1287
1429
  });
1288
1430
  DropdownMenuContent.displayName = CONTENT_NAME;
1289
1431
  var GROUP_NAME = "DropdownMenu.Group";
1290
- var DropdownMenuGroup = /* @__PURE__ */ forwardRef13((props, forwardedRef) => {
1432
+ var DropdownMenuGroup = /* @__PURE__ */ forwardRef16((props, forwardedRef) => {
1291
1433
  const { __scopeDropdownMenu, ...groupProps } = props;
1292
1434
  const menuScope = useMenuScope(__scopeDropdownMenu);
1293
- return /* @__PURE__ */ React17.createElement(MenuPrimitive.Group, {
1435
+ return /* @__PURE__ */ React20.createElement(MenuPrimitive.Group, {
1294
1436
  ...menuScope,
1295
1437
  ...groupProps,
1296
1438
  ref: forwardedRef
@@ -1298,11 +1440,11 @@ var DropdownMenuGroup = /* @__PURE__ */ forwardRef13((props, forwardedRef) => {
1298
1440
  });
1299
1441
  DropdownMenuGroup.displayName = GROUP_NAME;
1300
1442
  var LABEL_NAME = "DropdownMenu.Label";
1301
- var DropdownMenuGroupLabel = /* @__PURE__ */ forwardRef13((props, forwardedRef) => {
1443
+ var DropdownMenuGroupLabel = /* @__PURE__ */ forwardRef16((props, forwardedRef) => {
1302
1444
  const { __scopeDropdownMenu, classNames, ...labelProps } = props;
1303
1445
  const menuScope = useMenuScope(__scopeDropdownMenu);
1304
1446
  const { tx } = useThemeContext();
1305
- return /* @__PURE__ */ React17.createElement(MenuPrimitive.Label, {
1447
+ return /* @__PURE__ */ React20.createElement(MenuPrimitive.Label, {
1306
1448
  ...menuScope,
1307
1449
  ...labelProps,
1308
1450
  className: tx("menu.groupLabel", {}, classNames),
@@ -1311,11 +1453,11 @@ var DropdownMenuGroupLabel = /* @__PURE__ */ forwardRef13((props, forwardedRef)
1311
1453
  });
1312
1454
  DropdownMenuGroupLabel.displayName = LABEL_NAME;
1313
1455
  var ITEM_NAME = "DropdownMenu.Item";
1314
- var DropdownMenuItem = /* @__PURE__ */ forwardRef13((props, forwardedRef) => {
1456
+ var DropdownMenuItem = /* @__PURE__ */ forwardRef16((props, forwardedRef) => {
1315
1457
  const { __scopeDropdownMenu, classNames, ...itemProps } = props;
1316
1458
  const menuScope = useMenuScope(__scopeDropdownMenu);
1317
1459
  const { tx } = useThemeContext();
1318
- return /* @__PURE__ */ React17.createElement(MenuPrimitive.Item, {
1460
+ return /* @__PURE__ */ React20.createElement(MenuPrimitive.Item, {
1319
1461
  ...menuScope,
1320
1462
  ...itemProps,
1321
1463
  className: tx("menu.item", {}, classNames),
@@ -1324,11 +1466,11 @@ var DropdownMenuItem = /* @__PURE__ */ forwardRef13((props, forwardedRef) => {
1324
1466
  });
1325
1467
  DropdownMenuItem.displayName = ITEM_NAME;
1326
1468
  var CHECKBOX_ITEM_NAME = "DropdownMenu.CheckboxItem";
1327
- var DropdownMenuCheckboxItem = /* @__PURE__ */ forwardRef13((props, forwardedRef) => {
1469
+ var DropdownMenuCheckboxItem = /* @__PURE__ */ forwardRef16((props, forwardedRef) => {
1328
1470
  const { __scopeDropdownMenu, classNames, ...checkboxItemProps } = props;
1329
1471
  const menuScope = useMenuScope(__scopeDropdownMenu);
1330
1472
  const { tx } = useThemeContext();
1331
- return /* @__PURE__ */ React17.createElement(MenuPrimitive.CheckboxItem, {
1473
+ return /* @__PURE__ */ React20.createElement(MenuPrimitive.CheckboxItem, {
1332
1474
  ...menuScope,
1333
1475
  ...checkboxItemProps,
1334
1476
  className: tx("menu.item", {}, classNames),
@@ -1337,10 +1479,10 @@ var DropdownMenuCheckboxItem = /* @__PURE__ */ forwardRef13((props, forwardedRef
1337
1479
  });
1338
1480
  DropdownMenuCheckboxItem.displayName = CHECKBOX_ITEM_NAME;
1339
1481
  var RADIO_GROUP_NAME = "DropdownMenu.RadioGroup";
1340
- var DropdownMenuRadioGroup = /* @__PURE__ */ forwardRef13((props, forwardedRef) => {
1482
+ var DropdownMenuRadioGroup = /* @__PURE__ */ forwardRef16((props, forwardedRef) => {
1341
1483
  const { __scopeDropdownMenu, ...radioGroupProps } = props;
1342
1484
  const menuScope = useMenuScope(__scopeDropdownMenu);
1343
- return /* @__PURE__ */ React17.createElement(MenuPrimitive.RadioGroup, {
1485
+ return /* @__PURE__ */ React20.createElement(MenuPrimitive.RadioGroup, {
1344
1486
  ...menuScope,
1345
1487
  ...radioGroupProps,
1346
1488
  ref: forwardedRef
@@ -1348,11 +1490,11 @@ var DropdownMenuRadioGroup = /* @__PURE__ */ forwardRef13((props, forwardedRef)
1348
1490
  });
1349
1491
  DropdownMenuRadioGroup.displayName = RADIO_GROUP_NAME;
1350
1492
  var RADIO_ITEM_NAME = "DropdownMenu.RadioItem";
1351
- var DropdownMenuRadioItem = /* @__PURE__ */ forwardRef13((props, forwardedRef) => {
1493
+ var DropdownMenuRadioItem = /* @__PURE__ */ forwardRef16((props, forwardedRef) => {
1352
1494
  const { __scopeDropdownMenu, classNames, ...itemProps } = props;
1353
1495
  const menuScope = useMenuScope(__scopeDropdownMenu);
1354
1496
  const { tx } = useThemeContext();
1355
- return /* @__PURE__ */ React17.createElement(MenuPrimitive.Item, {
1497
+ return /* @__PURE__ */ React20.createElement(MenuPrimitive.Item, {
1356
1498
  ...menuScope,
1357
1499
  ...itemProps,
1358
1500
  className: tx("menu.item", {}, classNames),
@@ -1361,10 +1503,10 @@ var DropdownMenuRadioItem = /* @__PURE__ */ forwardRef13((props, forwardedRef) =
1361
1503
  });
1362
1504
  DropdownMenuRadioItem.displayName = RADIO_ITEM_NAME;
1363
1505
  var INDICATOR_NAME = "DropdownMenu.ItemIndicator";
1364
- var DropdownMenuItemIndicator = /* @__PURE__ */ forwardRef13((props, forwardedRef) => {
1506
+ var DropdownMenuItemIndicator = /* @__PURE__ */ forwardRef16((props, forwardedRef) => {
1365
1507
  const { __scopeDropdownMenu, ...itemIndicatorProps } = props;
1366
1508
  const menuScope = useMenuScope(__scopeDropdownMenu);
1367
- return /* @__PURE__ */ React17.createElement(MenuPrimitive.ItemIndicator, {
1509
+ return /* @__PURE__ */ React20.createElement(MenuPrimitive.ItemIndicator, {
1368
1510
  ...menuScope,
1369
1511
  ...itemIndicatorProps,
1370
1512
  ref: forwardedRef
@@ -1372,11 +1514,11 @@ var DropdownMenuItemIndicator = /* @__PURE__ */ forwardRef13((props, forwardedRe
1372
1514
  });
1373
1515
  DropdownMenuItemIndicator.displayName = INDICATOR_NAME;
1374
1516
  var SEPARATOR_NAME = "DropdownMenu.Separator";
1375
- var DropdownMenuSeparator = /* @__PURE__ */ forwardRef13((props, forwardedRef) => {
1517
+ var DropdownMenuSeparator = /* @__PURE__ */ forwardRef16((props, forwardedRef) => {
1376
1518
  const { __scopeDropdownMenu, classNames, ...separatorProps } = props;
1377
1519
  const menuScope = useMenuScope(__scopeDropdownMenu);
1378
1520
  const { tx } = useThemeContext();
1379
- return /* @__PURE__ */ React17.createElement(MenuPrimitive.Separator, {
1521
+ return /* @__PURE__ */ React20.createElement(MenuPrimitive.Separator, {
1380
1522
  ...menuScope,
1381
1523
  ...separatorProps,
1382
1524
  className: tx("menu.separator", {}, classNames),
@@ -1385,11 +1527,11 @@ var DropdownMenuSeparator = /* @__PURE__ */ forwardRef13((props, forwardedRef) =
1385
1527
  });
1386
1528
  DropdownMenuSeparator.displayName = SEPARATOR_NAME;
1387
1529
  var ARROW_NAME = "DropdownMenu.Arrow";
1388
- var DropdownMenuArrow = /* @__PURE__ */ forwardRef13((props, forwardedRef) => {
1530
+ var DropdownMenuArrow = /* @__PURE__ */ forwardRef16((props, forwardedRef) => {
1389
1531
  const { __scopeDropdownMenu, classNames, ...arrowProps } = props;
1390
1532
  const menuScope = useMenuScope(__scopeDropdownMenu);
1391
1533
  const { tx } = useThemeContext();
1392
- return /* @__PURE__ */ React17.createElement(MenuPrimitive.Arrow, {
1534
+ return /* @__PURE__ */ React20.createElement(MenuPrimitive.Arrow, {
1393
1535
  ...menuScope,
1394
1536
  ...arrowProps,
1395
1537
  className: tx("menu.arrow", {}, classNames),
@@ -1405,17 +1547,17 @@ var DropdownMenuSub = (props) => {
1405
1547
  defaultProp: defaultOpen,
1406
1548
  onChange: onOpenChange
1407
1549
  });
1408
- return /* @__PURE__ */ React17.createElement(MenuPrimitive.Sub, {
1550
+ return /* @__PURE__ */ React20.createElement(MenuPrimitive.Sub, {
1409
1551
  ...menuScope,
1410
1552
  open,
1411
1553
  onOpenChange: setOpen
1412
1554
  }, children);
1413
1555
  };
1414
1556
  var SUB_TRIGGER_NAME = "DropdownMenu.SubTrigger";
1415
- var DropdownMenuSubTrigger = /* @__PURE__ */ forwardRef13((props, forwardedRef) => {
1557
+ var DropdownMenuSubTrigger = /* @__PURE__ */ forwardRef16((props, forwardedRef) => {
1416
1558
  const { __scopeDropdownMenu, ...subTriggerProps } = props;
1417
1559
  const menuScope = useMenuScope(__scopeDropdownMenu);
1418
- return /* @__PURE__ */ React17.createElement(MenuPrimitive.SubTrigger, {
1560
+ return /* @__PURE__ */ React20.createElement(MenuPrimitive.SubTrigger, {
1419
1561
  ...menuScope,
1420
1562
  ...subTriggerProps,
1421
1563
  ref: forwardedRef
@@ -1423,10 +1565,10 @@ var DropdownMenuSubTrigger = /* @__PURE__ */ forwardRef13((props, forwardedRef)
1423
1565
  });
1424
1566
  DropdownMenuSubTrigger.displayName = SUB_TRIGGER_NAME;
1425
1567
  var SUB_CONTENT_NAME = "DropdownMenu.SubContent";
1426
- var DropdownMenuSubContent = /* @__PURE__ */ forwardRef13((props, forwardedRef) => {
1568
+ var DropdownMenuSubContent = /* @__PURE__ */ forwardRef16((props, forwardedRef) => {
1427
1569
  const { __scopeDropdownMenu, ...subContentProps } = props;
1428
1570
  const menuScope = useMenuScope(__scopeDropdownMenu);
1429
- return /* @__PURE__ */ React17.createElement(MenuPrimitive.SubContent, {
1571
+ return /* @__PURE__ */ React20.createElement(MenuPrimitive.SubContent, {
1430
1572
  ...menuScope,
1431
1573
  ...subContentProps,
1432
1574
  ref: forwardedRef,
@@ -1466,148 +1608,48 @@ var DropdownMenu = {
1466
1608
  };
1467
1609
  var useDropdownMenuMenuScope = useMenuScope;
1468
1610
 
1469
- // src/components/Separator/Separator.tsx
1470
- import * as SeparatorPrimitive from "@radix-ui/react-separator";
1471
- import React18, { forwardRef as forwardRef14 } from "react";
1472
- var Separator3 = /* @__PURE__ */ forwardRef14(({ classNames, orientation = "horizontal", subdued, ...props }, forwardedRef) => {
1473
- const { tx } = useThemeContext();
1474
- return /* @__PURE__ */ React18.createElement(SeparatorPrimitive.Root, {
1475
- ...props,
1476
- orientation,
1477
- className: tx("separator.root", {
1478
- orientation,
1479
- subdued
1480
- }, classNames),
1481
- ref: forwardedRef
1482
- });
1483
- });
1484
-
1485
- // src/components/Toolbar/Toolbar.tsx
1486
- var ToolbarRoot = composable(({ children, density, disabled, layoutManaged, orientation, ...props }, forwardedRef) => {
1487
- const { className, role, ...rest } = composableProps(props);
1611
+ // src/components/Card/Card.tsx
1612
+ var CARD_ROOT_NAME = "Card.Root";
1613
+ var CardRoot = composable(({ children, id, role, border = true, fullWidth, density, ...props }, forwardedRef) => {
1614
+ const { className, ...rest } = composableProps(props);
1488
1615
  const { tx } = useThemeContext();
1489
- return /* @__PURE__ */ React19.createElement(ToolbarPrimitive.Root, {
1616
+ return /* @__PURE__ */ React21.createElement(Column.Root, {
1617
+ asChild: true,
1618
+ gutter: density === "lg" ? "lg" : density === "sm" || density === "xs" ? "sm" : "md",
1619
+ classNames: tx("card.root", {
1620
+ border,
1621
+ fullWidth
1622
+ }, className),
1623
+ role: role ?? "group"
1624
+ }, /* @__PURE__ */ React21.createElement("div", {
1490
1625
  ...rest,
1491
- ...role !== "none" && {
1492
- role
1626
+ ...id && {
1627
+ "data-object-id": id
1493
1628
  },
1494
- orientation,
1495
- "data-arrow-keys": orientation === "vertical" ? "up down" : "left right",
1496
- className: tx("toolbar.root", {
1497
- density,
1498
- disabled,
1499
- layoutManaged
1500
- }, className),
1501
1629
  ref: forwardedRef
1502
- }, children);
1630
+ }, children));
1503
1631
  });
1504
- ToolbarRoot.displayName = "Toolbar.Root";
1505
- var ToolbarText = slottable(({ children, asChild, ...props }, forwardedRef) => {
1506
- const { className, ...rest } = composableProps(props);
1507
- const Comp = asChild ? Slot10 : Primitive10.div;
1632
+ CardRoot.displayName = CARD_ROOT_NAME;
1633
+ var CARD_HEADER_NAME = "Card.Header";
1634
+ var CardHeader = slottable(({ children, asChild, style, ...props }, forwardedRef) => {
1508
1635
  const { tx } = useThemeContext();
1509
- return /* @__PURE__ */ React19.createElement(Comp, {
1636
+ const { className, ...rest } = composableProps(props);
1637
+ const Comp = asChild ? Slot10 : "header";
1638
+ return /* @__PURE__ */ React21.createElement(Comp, {
1510
1639
  ...rest,
1511
- className: tx("toolbar.text", {}, className),
1640
+ style: {
1641
+ ...iconSize(5),
1642
+ ...style
1643
+ },
1644
+ className: tx("card.header", {}, className),
1512
1645
  ref: forwardedRef
1513
1646
  }, children);
1514
1647
  });
1515
- ToolbarText.displayName = "Toolbar.Text";
1516
- var ToolbarButton = /* @__PURE__ */ forwardRef15((props, forwardedRef) => {
1517
- return /* @__PURE__ */ React19.createElement(ToolbarPrimitive.Button, {
1518
- asChild: true
1519
- }, /* @__PURE__ */ React19.createElement(Button, {
1520
- ...props,
1521
- ref: forwardedRef
1522
- }));
1523
- });
1524
- ToolbarButton.displayName = "Toolbar.Button";
1525
- var ToolbarIconButton = /* @__PURE__ */ forwardRef15((props, forwardedRef) => {
1526
- return /* @__PURE__ */ React19.createElement(ToolbarPrimitive.Button, {
1527
- asChild: true
1528
- }, /* @__PURE__ */ React19.createElement(IconButton, {
1529
- ...props,
1530
- ref: forwardedRef
1531
- }));
1532
- });
1533
- ToolbarIconButton.displayName = "Toolbar.IconButton";
1534
- var ToolbarToggle = /* @__PURE__ */ forwardRef15((props, forwardedRef) => {
1535
- return /* @__PURE__ */ React19.createElement(ToolbarPrimitive.Button, {
1536
- asChild: true
1537
- }, /* @__PURE__ */ React19.createElement(Toggle, {
1538
- ...props,
1539
- ref: forwardedRef
1540
- }));
1541
- });
1542
- ToolbarToggle.displayName = "Toolbar.Toggle";
1543
- var ToolbarLink = /* @__PURE__ */ forwardRef15((props, forwardedRef) => {
1544
- return /* @__PURE__ */ React19.createElement(ToolbarPrimitive.Link, {
1545
- asChild: true
1546
- }, /* @__PURE__ */ React19.createElement(Link, {
1547
- ...props,
1548
- ref: forwardedRef
1549
- }));
1550
- });
1551
- ToolbarLink.displayName = "Toolbar.Link";
1552
- var ToolbarToggleGroup2 = /* @__PURE__ */ forwardRef15(({ classNames, children, elevation, ...props }, forwardedRef) => {
1553
- return /* @__PURE__ */ React19.createElement(ToolbarPrimitive.ToolbarToggleGroup, {
1554
- ...props,
1555
- asChild: true
1556
- }, /* @__PURE__ */ React19.createElement(ButtonGroup, {
1557
- classNames,
1558
- children,
1559
- elevation,
1560
- ref: forwardedRef
1561
- }));
1562
- });
1563
- ToolbarToggleGroup2.displayName = "Toolbar.ToggleGroup";
1564
- var ToolbarToggleGroupItem = /* @__PURE__ */ forwardRef15(({ variant, density, elevation, classNames, children, ...props }, forwardedRef) => {
1565
- return /* @__PURE__ */ React19.createElement(ToolbarPrimitive.ToolbarToggleItem, {
1566
- ...props,
1567
- asChild: true
1568
- }, /* @__PURE__ */ React19.createElement(Button, {
1569
- variant,
1570
- density,
1571
- elevation,
1572
- classNames,
1573
- children,
1574
- ref: forwardedRef
1575
- }));
1576
- });
1577
- ToolbarToggleGroupItem.displayName = "Toolbar.ToggleGroupItem";
1578
- var ToolbarToggleGroupIconItem = /* @__PURE__ */ forwardRef15(({ variant, density, elevation, classNames, icon, label, iconOnly, iconClassNames, ...props }, forwardedRef) => {
1579
- return /* @__PURE__ */ React19.createElement(ToolbarPrimitive.ToolbarToggleItem, {
1580
- ...props,
1581
- asChild: true
1582
- }, /* @__PURE__ */ React19.createElement(IconButton, {
1583
- variant,
1584
- density,
1585
- elevation,
1586
- classNames,
1587
- icon,
1588
- label,
1589
- iconOnly,
1590
- iconClassNames,
1591
- ref: forwardedRef
1592
- }));
1593
- });
1594
- ToolbarToggleGroupIconItem.displayName = "Toolbar.ToggleGroupIconItem";
1595
- var ToolbarSeparator = /* @__PURE__ */ forwardRef15(({ variant = "gap", ...props }, forwardedRef) => {
1596
- return variant === "line" ? /* @__PURE__ */ React19.createElement(ToolbarPrimitive.Separator, {
1597
- asChild: true
1598
- }, /* @__PURE__ */ React19.createElement(Separator3, {
1599
- orientation: "vertical",
1600
- ...props,
1601
- ref: forwardedRef
1602
- })) : /* @__PURE__ */ React19.createElement(ToolbarPrimitive.Separator, {
1603
- className: "grow",
1604
- ref: forwardedRef
1605
- });
1606
- });
1607
- ToolbarSeparator.displayName = "Toolbar.Separator";
1608
- var ToolbarDragHandle = /* @__PURE__ */ forwardRef15(({ testId = "drag-handle", label }, forwardedRef) => {
1609
- const { t } = useTranslation2(translationKey2);
1610
- return /* @__PURE__ */ React19.createElement(ToolbarIconButton, {
1648
+ CardHeader.displayName = CARD_HEADER_NAME;
1649
+ var CARD_DRAG_HANDLE_NAME = "Card.DragHandle";
1650
+ var CardDragHandle = /* @__PURE__ */ forwardRef17(({ testId = "drag-handle", label }, forwardedRef) => {
1651
+ const { t } = useTranslation3(translationKey3);
1652
+ return /* @__PURE__ */ React21.createElement(CardBlock, null, /* @__PURE__ */ React21.createElement(IconButton, {
1611
1653
  "data-testid": testId,
1612
1654
  tabIndex: -1,
1613
1655
  noTooltip: true,
@@ -1615,147 +1657,78 @@ var ToolbarDragHandle = /* @__PURE__ */ forwardRef15(({ testId = "drag-handle",
1615
1657
  icon: "ph--dots-six-vertical--regular",
1616
1658
  variant: "ghost",
1617
1659
  label: label ?? t("toolbar-drag-handle.label"),
1618
- classNames: "dx-focus-ring-none cursor-pointer",
1660
+ classNames: "dx-focus-ring-none cursor-pointer text-base-fg",
1619
1661
  disabled: !forwardedRef,
1620
1662
  ref: forwardedRef
1621
- });
1663
+ }));
1622
1664
  });
1623
- ToolbarDragHandle.displayName = "Toolbar.DragHandle";
1624
- var TOOLBAR_ACTION_ICONS = {
1665
+ CardDragHandle.displayName = CARD_DRAG_HANDLE_NAME;
1666
+ var CARD_ACTION_ICON_BUTTON_NAME = "Card.ActionIconButton";
1667
+ var CARD_ACTION_ICONS = {
1625
1668
  close: "ph--x--regular",
1626
1669
  delete: "ph--trash--regular"
1627
1670
  };
1628
- var TOOLBAR_ACTION_LABEL_KEYS = {
1671
+ var CARD_ACTION_LABEL_KEYS = {
1629
1672
  close: "toolbar-close.label",
1630
1673
  delete: "toolbar-delete.label"
1631
1674
  };
1632
- var ToolbarActionIconButton = /* @__PURE__ */ forwardRef15(({ action, onClick, label }, forwardedRef) => {
1633
- const { t } = useTranslation2(translationKey2);
1634
- return /* @__PURE__ */ React19.createElement(ToolbarIconButton, {
1675
+ var CardActionIconButton = /* @__PURE__ */ forwardRef17(({ action, onClick, label }, forwardedRef) => {
1676
+ const { t } = useTranslation3(translationKey3);
1677
+ return /* @__PURE__ */ React21.createElement(CardBlock, {
1678
+ end: true
1679
+ }, /* @__PURE__ */ React21.createElement(IconButton, {
1635
1680
  iconOnly: true,
1636
- icon: TOOLBAR_ACTION_ICONS[action],
1681
+ icon: CARD_ACTION_ICONS[action],
1637
1682
  variant: "ghost",
1638
- label: label ?? t(TOOLBAR_ACTION_LABEL_KEYS[action]),
1683
+ label: label ?? t(CARD_ACTION_LABEL_KEYS[action]),
1639
1684
  classNames: "cursor-pointer",
1640
1685
  onClick,
1641
1686
  ref: forwardedRef
1642
- });
1687
+ }));
1643
1688
  });
1644
- ToolbarActionIconButton.displayName = "Toolbar.ActionIconButton";
1645
- function ToolbarMenu({ context, items }) {
1646
- const { t } = useTranslation2(translationKey2);
1647
- return /* @__PURE__ */ React19.createElement(DropdownMenu.Root, null, /* @__PURE__ */ React19.createElement(DropdownMenu.Trigger, {
1689
+ CardActionIconButton.displayName = CARD_ACTION_ICON_BUTTON_NAME;
1690
+ var CARD_MENU_NAME = "Card.Menu";
1691
+ function CardMenu({ context, items }) {
1692
+ const { t } = useTranslation3(translationKey3);
1693
+ return /* @__PURE__ */ React21.createElement(CardBlock, {
1694
+ end: true
1695
+ }, /* @__PURE__ */ React21.createElement(DropdownMenu.Root, null, /* @__PURE__ */ React21.createElement(DropdownMenu.Trigger, {
1648
1696
  disabled: !items?.length,
1649
1697
  asChild: true
1650
- }, /* @__PURE__ */ React19.createElement(ToolbarIconButton, {
1698
+ }, /* @__PURE__ */ React21.createElement(IconButton, {
1651
1699
  iconOnly: true,
1652
1700
  variant: "ghost",
1653
1701
  icon: "ph--dots-three-vertical--regular",
1654
1702
  label: t("toolbar-menu.label")
1655
- })), (items?.length ?? 0) > 0 && /* @__PURE__ */ React19.createElement(DropdownMenu.Portal, null, /* @__PURE__ */ React19.createElement(DropdownMenu.Content, null, /* @__PURE__ */ React19.createElement(DropdownMenu.Viewport, null, items?.map(({ label, onClick: onSelect }, index) => /* @__PURE__ */ React19.createElement(DropdownMenu.Item, {
1656
- key: index,
1657
- onSelect: () => onSelect(context)
1658
- }, label))), /* @__PURE__ */ React19.createElement(DropdownMenu.Arrow, null))));
1703
+ })), (items?.length ?? 0) > 0 && /* @__PURE__ */ React21.createElement(DropdownMenu.Portal, null, /* @__PURE__ */ React21.createElement(DropdownMenu.Content, null, /* @__PURE__ */ React21.createElement(DropdownMenu.Viewport, null, items?.map(({ label, onClick: onSelect }, index) => (
1704
+ // `context` is the generic payload threaded to each handler; the cast is the
1705
+ // generic boundary (T may be `void`, so `context` is typed `T | undefined`).
1706
+ /* @__PURE__ */ React21.createElement(DropdownMenu.Item, {
1707
+ key: index,
1708
+ onSelect: () => onSelect(context)
1709
+ }, label)
1710
+ ))), /* @__PURE__ */ React21.createElement(DropdownMenu.Arrow, null)))));
1659
1711
  }
1660
- ToolbarMenu.displayName = "Toolbar.Menu";
1661
- var Toolbar = {
1662
- Root: ToolbarRoot,
1663
- Text: ToolbarText,
1664
- Button: ToolbarButton,
1665
- IconButton: ToolbarIconButton,
1666
- Link: ToolbarLink,
1667
- Toggle: ToolbarToggle,
1668
- ToggleGroup: ToolbarToggleGroup2,
1669
- ToggleGroupItem: ToolbarToggleGroupItem,
1670
- ToggleGroupIconItem: ToolbarToggleGroupIconItem,
1671
- Separator: ToolbarSeparator,
1672
- DragHandle: ToolbarDragHandle,
1673
- ActionIconButton: ToolbarActionIconButton,
1674
- Menu: ToolbarMenu
1675
- };
1676
-
1677
- // src/components/Card/Card.tsx
1678
- var CARD_ROOT_NAME = "Card.Root";
1679
- var CardRoot = composable(({ children, id, role, border = true, fullWidth, density, ...props }, forwardedRef) => {
1680
- const { className, ...rest } = composableProps(props);
1712
+ CardMenu.displayName = CARD_MENU_NAME;
1713
+ var CARD_BLOCK_NAME = "Card.Block";
1714
+ var CardBlock = composable(({ children, ...props }, forwardedRef) => {
1681
1715
  const { tx } = useThemeContext();
1682
- return /* @__PURE__ */ React20.createElement(Column.Root, {
1683
- asChild: true,
1684
- gutter: density === "lg" ? "lg" : density === "sm" || density === "xs" ? "sm" : "md",
1685
- classNames: tx("card.root", {
1686
- border,
1687
- fullWidth
1688
- }, className),
1689
- role: role ?? "group"
1690
- }, /* @__PURE__ */ React20.createElement("div", {
1716
+ const { className, ...rest } = composableProps(props);
1717
+ return /* @__PURE__ */ React21.createElement(Column.Block, {
1691
1718
  ...rest,
1692
- ...id && {
1693
- "data-object-id": id
1694
- },
1695
- ref: forwardedRef
1696
- }, children));
1697
- });
1698
- CardRoot.displayName = CARD_ROOT_NAME;
1699
- var CARD_HEADER_NAME = "Card.Header";
1700
- var CardHeader = composable(({ children, classNames, ...props }, forwardedRef) => {
1701
- const { tx } = useThemeContext();
1702
- return /* @__PURE__ */ React20.createElement(Toolbar.Root, {
1703
- ...props,
1704
- style: iconSize(5),
1705
- classNames: [
1706
- tx("card.header", {}),
1707
- classNames
1708
- ],
1719
+ classNames: tx("card.block", {}, className),
1709
1720
  ref: forwardedRef
1710
1721
  }, children);
1711
1722
  });
1712
- CardHeader.displayName = CARD_HEADER_NAME;
1713
- var CARD_DRAG_HANDLE_NAME = "Card.DragHandle";
1714
- var CardDragHandle = /* @__PURE__ */ forwardRef16((props, forwardedRef) => {
1715
- return /* @__PURE__ */ React20.createElement(CardIconBlock, null, /* @__PURE__ */ React20.createElement(Toolbar.DragHandle, {
1716
- ...props,
1717
- ref: forwardedRef
1718
- }));
1719
- });
1720
- CardDragHandle.displayName = CARD_DRAG_HANDLE_NAME;
1721
- var CARD_ACTION_ICON_BUTTON_NAME = "Card.ActionIconButton";
1722
- var CardActionIconButton = /* @__PURE__ */ forwardRef16((props, forwardedRef) => {
1723
- return /* @__PURE__ */ React20.createElement(CardIconBlock, null, /* @__PURE__ */ React20.createElement(Toolbar.ActionIconButton, {
1724
- ...props,
1725
- ref: forwardedRef
1726
- }));
1727
- });
1728
- CardActionIconButton.displayName = CARD_ACTION_ICON_BUTTON_NAME;
1729
- var CARD_MENU_NAME = "Card.Menu";
1730
- function CardMenu({ context, items, ...props }) {
1731
- return /* @__PURE__ */ React20.createElement(CardIconBlock, null, /* @__PURE__ */ React20.createElement(Toolbar.Menu, {
1732
- ...props,
1733
- context,
1734
- items: items ?? []
1735
- }));
1736
- }
1737
- CardMenu.displayName = CARD_MENU_NAME;
1738
- var CARD_ICON_NAME = "Card.Icon";
1739
- function CardIcon(props) {
1740
- return /* @__PURE__ */ React20.createElement(CardIconBlock, null, /* @__PURE__ */ React20.createElement(Icon, props));
1741
- }
1742
- CardIcon.displayName = CARD_ICON_NAME;
1743
- var CARD_ICON_BLOCK_NAME = "Card.IconBlock";
1744
- var CardIconBlock = /* @__PURE__ */ forwardRef16((props, forwardedRef) => {
1745
- return /* @__PURE__ */ React20.createElement(IconBlock, {
1746
- ...props,
1747
- ref: forwardedRef
1748
- });
1749
- });
1750
- CardIconBlock.displayName = CARD_ICON_BLOCK_NAME;
1723
+ CardBlock.displayName = CARD_BLOCK_NAME;
1751
1724
  var CARD_TITLE_NAME = "Card.Title";
1752
1725
  var CardTitle = slottable(({ children, asChild, ...props }, forwardedRef) => {
1753
1726
  const { tx } = useThemeContext();
1754
1727
  const { className, ...rest } = composableProps(props, {
1755
1728
  role: "heading"
1756
1729
  });
1757
- const Comp = asChild ? Slot11 : Primitive11.div;
1758
- return /* @__PURE__ */ React20.createElement(Comp, {
1730
+ const Comp = asChild ? Slot10 : Primitive10.div;
1731
+ return /* @__PURE__ */ React21.createElement(Comp, {
1759
1732
  ...rest,
1760
1733
  className: tx("card.title", {}, className),
1761
1734
  ref: forwardedRef
@@ -1765,9 +1738,9 @@ CardTitle.displayName = CARD_TITLE_NAME;
1765
1738
  var CARD_BODY_NAME = "Card.Body";
1766
1739
  var CardBody = slottable(({ children, asChild, ...props }, forwardedRef) => {
1767
1740
  const { className, ...rest } = composableProps(props);
1768
- const Comp = asChild ? Slot11 : Primitive11.div;
1741
+ const Comp = asChild ? Slot10 : Primitive10.div;
1769
1742
  const { tx } = useThemeContext();
1770
- return /* @__PURE__ */ React20.createElement(Comp, {
1743
+ return /* @__PURE__ */ React21.createElement(Comp, {
1771
1744
  ...rest,
1772
1745
  className: tx("card.body", {}, className),
1773
1746
  ref: forwardedRef
@@ -1777,53 +1750,52 @@ CardBody.displayName = CARD_BODY_NAME;
1777
1750
  var CARD_SECTION_NAME = "Card.Section";
1778
1751
  var CardSection = slottable(({ children, asChild, title, role, ...props }, forwardedRef) => {
1779
1752
  const { className, ...rest } = composableProps(props);
1780
- const Comp = asChild ? Slot11 : Primitive11.div;
1753
+ const Comp = asChild ? Slot10 : Primitive10.div;
1781
1754
  const { tx } = useThemeContext();
1782
1755
  const titleId = useId3();
1783
- return /* @__PURE__ */ React20.createElement(Comp, {
1756
+ return /* @__PURE__ */ React21.createElement(Comp, {
1784
1757
  ...rest,
1785
1758
  role: role ?? (title ? "group" : "none"),
1786
1759
  "aria-labelledby": title ? titleId : void 0,
1787
1760
  className: tx("card.section", {}, className),
1788
1761
  ref: forwardedRef
1789
- }, title && /* @__PURE__ */ React20.createElement("div", {
1762
+ }, title && /* @__PURE__ */ React21.createElement("div", {
1790
1763
  id: titleId,
1791
1764
  className: tx("card.section-title", {})
1792
1765
  }, title), children);
1793
1766
  });
1794
1767
  CardSection.displayName = CARD_SECTION_NAME;
1795
1768
  var CARD_ROW_NAME = "Card.Row";
1796
- var CardRow = slottable(({ children, asChild, icon: iconProp, fullWidth, ...props }, forwardedRef) => {
1769
+ var CardRow = slottable(({ children, asChild, fullWidth, style, ...props }, forwardedRef) => {
1797
1770
  const { tx } = useThemeContext();
1798
1771
  const { className, ...rest } = composableProps(props);
1799
- const Comp = asChild ? Slot11 : Primitive11.div;
1800
- const icon = typeof iconProp === "string" ? /* @__PURE__ */ React20.createElement(CardIcon, {
1801
- classNames: "text-subdued",
1802
- icon: iconProp,
1803
- size: 4
1804
- }) : iconProp ? iconProp : /* @__PURE__ */ React20.createElement("div", null);
1805
- return /* @__PURE__ */ React20.createElement(Comp, {
1772
+ const Comp = asChild ? Slot10 : Primitive10.div;
1773
+ return /* @__PURE__ */ React21.createElement(Comp, {
1806
1774
  ...rest,
1775
+ style: {
1776
+ ...iconSize(4),
1777
+ ...style
1778
+ },
1807
1779
  className: tx("card.row", {
1808
1780
  fullWidth
1809
1781
  }, className),
1810
1782
  ref: forwardedRef
1811
- }, !fullWidth && icon, children);
1783
+ }, children);
1812
1784
  });
1813
1785
  CardRow.displayName = CARD_ROW_NAME;
1814
1786
  var CARD_TEXT_NAME = "Card.Text";
1815
1787
  var CardText = slottable(({ children, asChild, role, truncate, variant = "default", ...props }, forwardedRef) => {
1816
1788
  const { tx } = useThemeContext();
1817
1789
  const { className, ...rest } = composableProps(props);
1818
- const Comp = asChild ? Slot11 : Primitive11.div;
1819
- return /* @__PURE__ */ React20.createElement(Comp, {
1790
+ const Comp = asChild ? Slot10 : Primitive10.div;
1791
+ return /* @__PURE__ */ React21.createElement(Comp, {
1820
1792
  ...rest,
1821
1793
  role: role ?? "none",
1822
1794
  className: tx("card.text", {
1823
1795
  variant
1824
1796
  }, className),
1825
1797
  ref: forwardedRef
1826
- }, /* @__PURE__ */ React20.createElement("span", {
1798
+ }, /* @__PURE__ */ React21.createElement("span", {
1827
1799
  className: tx("card.text-span", {
1828
1800
  variant,
1829
1801
  truncate
@@ -1837,7 +1809,7 @@ function CardHtml({ html = "", variant = "default", ...props }) {
1837
1809
  const sanitized = useMemo5(() => DOMPurify.sanitize(html), [
1838
1810
  html
1839
1811
  ]);
1840
- return /* @__PURE__ */ React20.createElement("div", {
1812
+ return /* @__PURE__ */ React21.createElement("div", {
1841
1813
  ...props,
1842
1814
  className: tx("card.text", {
1843
1815
  variant
@@ -1850,13 +1822,11 @@ function CardHtml({ html = "", variant = "default", ...props }) {
1850
1822
  }
1851
1823
  CardHtml.displayName = CARD_HTML_NAME;
1852
1824
  var CARD_POSTER_NAME = "Card.Poster";
1853
- function CardPoster({ classNames, alt, aspect: aspectProp, image, icon, ...imageProps }) {
1825
+ function CardPoster({ classNames, alt, aspect: aspectProp, image, icon, fit = "cover", ...imageProps }) {
1854
1826
  const { tx } = useThemeContext();
1855
1827
  const aspect = aspectProp === "auto" ? "aspect-auto" : "aspect-video";
1856
1828
  if (image) {
1857
- return /* @__PURE__ */ React20.createElement("div", {
1858
- className: "col-span-full"
1859
- }, /* @__PURE__ */ React20.createElement(Image, {
1829
+ return /* @__PURE__ */ React21.createElement(Image, {
1860
1830
  classNames: [
1861
1831
  tx("card.poster", {}),
1862
1832
  aspect,
@@ -1864,18 +1834,19 @@ function CardPoster({ classNames, alt, aspect: aspectProp, image, icon, ...image
1864
1834
  ],
1865
1835
  src: image,
1866
1836
  alt,
1837
+ fit,
1867
1838
  ...imageProps
1868
- }));
1839
+ });
1869
1840
  }
1870
1841
  if (icon) {
1871
- return /* @__PURE__ */ React20.createElement("div", {
1842
+ return /* @__PURE__ */ React21.createElement("div", {
1872
1843
  role: "image",
1873
1844
  className: tx("card.poster-icon", {}, [
1874
1845
  aspect,
1875
1846
  classNames
1876
1847
  ]),
1877
1848
  "aria-label": alt
1878
- }, /* @__PURE__ */ React20.createElement(Icon, {
1849
+ }, /* @__PURE__ */ React21.createElement(Icon, {
1879
1850
  icon,
1880
1851
  size: 10
1881
1852
  }));
@@ -1885,52 +1856,55 @@ CardPoster.displayName = CARD_POSTER_NAME;
1885
1856
  var CARD_ACTION_NAME = "Card.Action";
1886
1857
  function CardAction({ icon, actionIcon = "ph--arrow-right--regular", label, onClick }) {
1887
1858
  const { tx } = useThemeContext();
1888
- return /* @__PURE__ */ React20.createElement(Button, {
1859
+ return /* @__PURE__ */ React21.createElement(Button, {
1889
1860
  variant: "ghost",
1890
1861
  classNames: tx("card.action", {}),
1891
1862
  onClick
1892
- }, icon ? /* @__PURE__ */ React20.createElement(CardIcon, {
1893
- classNames: "text-subdued",
1863
+ }, icon && /* @__PURE__ */ React21.createElement(CardBlock, null, /* @__PURE__ */ React21.createElement(Icon, {
1894
1864
  icon,
1895
1865
  size: 4
1896
- }) : /* @__PURE__ */ React20.createElement("div", null), /* @__PURE__ */ React20.createElement("span", {
1897
- className: tx("card.action-label", {}, !actionIcon ? "col-span-2" : void 0)
1898
- }, label), actionIcon && /* @__PURE__ */ React20.createElement(CardIcon, {
1866
+ })), /* @__PURE__ */ React21.createElement("span", {
1867
+ className: tx("card.action-label", {})
1868
+ }, label), actionIcon && /* @__PURE__ */ React21.createElement(CardBlock, {
1869
+ end: true
1870
+ }, /* @__PURE__ */ React21.createElement(Icon, {
1899
1871
  icon: actionIcon,
1900
1872
  size: 4
1901
- }));
1873
+ })));
1902
1874
  }
1903
1875
  CardAction.displayName = CARD_ACTION_NAME;
1904
1876
  var CARD_LINK_NAME = "Card.Link";
1905
1877
  function CardLink({ label, href }) {
1906
1878
  const { tx } = useThemeContext();
1907
- return /* @__PURE__ */ React20.createElement("a", {
1879
+ return /* @__PURE__ */ React21.createElement("a", {
1908
1880
  className: tx("card.link", {}),
1909
1881
  "data-variant": "ghost",
1910
1882
  href,
1911
1883
  target: "_blank",
1912
1884
  rel: "noreferrer"
1913
- }, /* @__PURE__ */ React20.createElement(CardIcon, {
1914
- classNames: "text-subdued",
1915
- icon: "ph--link--regular"
1916
- }), /* @__PURE__ */ React20.createElement("span", {
1885
+ }, /* @__PURE__ */ React21.createElement(CardBlock, null, /* @__PURE__ */ React21.createElement(Icon, {
1886
+ icon: "ph--link--regular",
1887
+ size: 4
1888
+ })), /* @__PURE__ */ React21.createElement("span", {
1917
1889
  className: tx("card.link-label", {})
1918
- }, label), /* @__PURE__ */ React20.createElement(CardIcon, {
1919
- classNames: "invisible group-hover:visible",
1920
- icon: "ph--arrow-square-out--regular"
1921
- }));
1890
+ }, label), /* @__PURE__ */ React21.createElement(CardBlock, {
1891
+ end: true,
1892
+ classNames: "invisible group-hover:visible"
1893
+ }, /* @__PURE__ */ React21.createElement(Icon, {
1894
+ icon: "ph--arrow-square-out--regular",
1895
+ size: 4
1896
+ })));
1922
1897
  }
1923
1898
  CardLink.displayName = CARD_LINK_NAME;
1924
1899
  var Card = {
1925
1900
  Root: CardRoot,
1926
1901
  // Header
1927
1902
  Header: CardHeader,
1928
- // Header parts
1929
- IconBlock: CardIconBlock,
1903
+ // Header / row parts
1904
+ Block: CardBlock,
1930
1905
  DragHandle: CardDragHandle,
1931
1906
  ActionIconButton: CardActionIconButton,
1932
1907
  Menu: CardMenu,
1933
- Icon: CardIcon,
1934
1908
  Title: CardTitle,
1935
1909
  // Body
1936
1910
  Body: CardBody,
@@ -1947,12 +1921,12 @@ var Card = {
1947
1921
  // src/components/Carousel/Carousel.tsx
1948
1922
  import { useArrowNavigationGroup } from "@fluentui/react-tabster";
1949
1923
  import { createContext as createContext3 } from "@radix-ui/react-context";
1950
- import React22, { useCallback as useCallback5, useEffect as useEffect3, useState as useState5 } from "react";
1951
- import { mx as mx8 } from "@dxos/ui-theme";
1924
+ import React23, { useCallback as useCallback6, useEffect as useEffect3, useState as useState5 } from "react";
1925
+ import { mx as mx9 } from "@dxos/ui-theme";
1952
1926
 
1953
1927
  // src/components/MediaPlayer/MediaPlayer.tsx
1954
- import React21, { useState as useState4 } from "react";
1955
- import { mx as mx7 } from "@dxos/ui-theme";
1928
+ import React22, { useState as useState4 } from "react";
1929
+ import { mx as mx8 } from "@dxos/ui-theme";
1956
1930
  var FIT_CLASS = {
1957
1931
  cover: "object-cover",
1958
1932
  contain: "object-contain",
@@ -1995,8 +1969,8 @@ var MediaPlayer = ({ classNames, src, kind, controls = true, autoPlay = false, l
1995
1969
  if (isEmbedUrl(src)) {
1996
1970
  const resolved = kind ?? detectMediaKind(src) ?? "video";
1997
1971
  if (resolved === "audio") {
1998
- return /* @__PURE__ */ React21.createElement("audio", {
1999
- className: mx7("w-full", classNames),
1972
+ return /* @__PURE__ */ React22.createElement("audio", {
1973
+ className: mx8("w-full", classNames),
2000
1974
  src,
2001
1975
  controls,
2002
1976
  autoPlay,
@@ -2006,8 +1980,8 @@ var MediaPlayer = ({ classNames, src, kind, controls = true, autoPlay = false, l
2006
1980
  "aria-label": alt
2007
1981
  });
2008
1982
  }
2009
- return /* @__PURE__ */ React21.createElement("video", {
2010
- className: mx7("max-w-full max-h-full aspect-video", fitClass, classNames),
1983
+ return /* @__PURE__ */ React22.createElement("video", {
1984
+ className: mx8("max-w-full max-h-full aspect-video", fitClass, classNames),
2011
1985
  src,
2012
1986
  controls,
2013
1987
  autoPlay,
@@ -2018,15 +1992,15 @@ var MediaPlayer = ({ classNames, src, kind, controls = true, autoPlay = false, l
2018
1992
  });
2019
1993
  }
2020
1994
  if (isCloudflareStreamEmbed(src)) {
2021
- return /* @__PURE__ */ React21.createElement(IframePlayer, {
1995
+ return /* @__PURE__ */ React22.createElement(IframePlayer, {
2022
1996
  key: src,
2023
1997
  classNames,
2024
1998
  src,
2025
1999
  alt
2026
2000
  });
2027
2001
  }
2028
- return /* @__PURE__ */ React21.createElement("img", {
2029
- className: mx7(fitClass, classNames),
2002
+ return /* @__PURE__ */ React22.createElement("img", {
2003
+ className: mx8(fitClass, classNames),
2030
2004
  src,
2031
2005
  alt: alt ?? "",
2032
2006
  loading: "lazy",
@@ -2037,13 +2011,13 @@ var MediaPlayer = ({ classNames, src, kind, controls = true, autoPlay = false, l
2037
2011
  };
2038
2012
  var IframePlayer = ({ src, alt, classNames }) => {
2039
2013
  const [loaded, setLoaded] = useState4(false);
2040
- return /* @__PURE__ */ React21.createElement("div", {
2041
- className: mx7("relative bg-baseSurface", classNames)
2042
- }, /* @__PURE__ */ React21.createElement("iframe", {
2014
+ return /* @__PURE__ */ React22.createElement("div", {
2015
+ className: mx8("relative bg-baseSurface", classNames)
2016
+ }, /* @__PURE__ */ React22.createElement("iframe", {
2043
2017
  src,
2044
2018
  title: alt ?? "Embedded media",
2045
2019
  loading: "lazy",
2046
- className: mx7("border-none w-full h-full transition-opacity duration-150", loaded ? "opacity-100" : "opacity-0"),
2020
+ className: mx8("border-none w-full h-full transition-opacity duration-150", loaded ? "opacity-100" : "opacity-0"),
2047
2021
  style: {
2048
2022
  colorScheme: "dark"
2049
2023
  },
@@ -2081,17 +2055,17 @@ var CarouselRoot = ({ children, count, autorun = false, intervalMs = 5e3, defaul
2081
2055
  count,
2082
2056
  intervalMs
2083
2057
  ]);
2084
- const setIndex = useCallback5((next2) => {
2058
+ const setIndex = useCallback6((next2) => {
2085
2059
  setAutoAdvance(false);
2086
2060
  setIndexState(next2);
2087
2061
  }, []);
2088
- const next = useCallback5(() => {
2062
+ const next = useCallback6(() => {
2089
2063
  setAutoAdvance(false);
2090
2064
  setIndexState((i) => (i + 1) % count);
2091
2065
  }, [
2092
2066
  count
2093
2067
  ]);
2094
- const prev = useCallback5(() => {
2068
+ const prev = useCallback6(() => {
2095
2069
  setAutoAdvance(false);
2096
2070
  setIndexState((i) => (i - 1 + count) % count);
2097
2071
  }, [
@@ -2100,7 +2074,7 @@ var CarouselRoot = ({ children, count, autorun = false, intervalMs = 5e3, defaul
2100
2074
  if (count === 0) {
2101
2075
  return null;
2102
2076
  }
2103
- return /* @__PURE__ */ React22.createElement(CarouselProvider, {
2077
+ return /* @__PURE__ */ React23.createElement(CarouselProvider, {
2104
2078
  index,
2105
2079
  count,
2106
2080
  setIndex,
@@ -2115,7 +2089,7 @@ var CarouselContent = composable(({ children, ...props }, forwardedRef) => (
2115
2089
  // its content height. With no parent height constraint, the `1fr` row simply tracks
2116
2090
  // row-1 content — preserving the existing aspect-video behaviour for unbounded use.
2117
2091
  // TODO(burdon): Move to Carousel.theme.ts
2118
- /* @__PURE__ */ React22.createElement("div", {
2092
+ /* @__PURE__ */ React23.createElement("div", {
2119
2093
  ...composableProps(props, {
2120
2094
  classNames: "w-full grid grid-cols-[min-content_1fr_min-content] grid-rows-[minmax(0,1fr)_auto] gap-4 items-center"
2121
2095
  }),
@@ -2126,7 +2100,7 @@ CarouselContent.displayName = "Carousel.Content";
2126
2100
  var CarouselViewport = ({ children, classNames }) => {
2127
2101
  const { t } = useTranslation(translationKey);
2128
2102
  const { count, next, prev } = useCarousel();
2129
- const handleKeyDown = useCallback5((event) => {
2103
+ const handleKeyDown = useCallback6((event) => {
2130
2104
  if (count <= 1) {
2131
2105
  return;
2132
2106
  }
@@ -2142,9 +2116,9 @@ var CarouselViewport = ({ children, classNames }) => {
2142
2116
  next,
2143
2117
  prev
2144
2118
  ]);
2145
- return /* @__PURE__ */ React22.createElement("div", {
2119
+ return /* @__PURE__ */ React23.createElement("div", {
2146
2120
  // TODO(burdon): Move to ui-theme.
2147
- className: mx8("relative w-full aspect-video overflow-hidden", "focus:outline-none focus-visible:ring-2 focus-visible:ring-primary-500", classNames),
2121
+ className: mx9("relative w-full aspect-video overflow-hidden", "focus:outline-none focus-visible:ring-2 focus-visible:ring-primary-500", classNames),
2148
2122
  tabIndex: 0,
2149
2123
  role: "region",
2150
2124
  "aria-roledescription": "carousel",
@@ -2158,9 +2132,9 @@ var CarouselSlide = ({ index, classNames, src, kind, alt, controls, autoPlay, lo
2158
2132
  if (active !== index) {
2159
2133
  return null;
2160
2134
  }
2161
- return /* @__PURE__ */ React22.createElement("div", {
2162
- className: mx8("absolute inset-0 w-full h-full bg-baseSurface", classNames)
2163
- }, /* @__PURE__ */ React22.createElement(MediaPlayer, {
2135
+ return /* @__PURE__ */ React23.createElement("div", {
2136
+ className: mx9("absolute inset-0 w-full h-full bg-baseSurface", classNames)
2137
+ }, /* @__PURE__ */ React23.createElement(MediaPlayer, {
2164
2138
  src,
2165
2139
  kind,
2166
2140
  alt,
@@ -2177,10 +2151,10 @@ var CarouselPrevious = ({ classNames }) => {
2177
2151
  const { t } = useTranslation(translationKey);
2178
2152
  const { count, prev } = useCarousel();
2179
2153
  if (count <= 1) {
2180
- return /* @__PURE__ */ React22.createElement("div", null);
2154
+ return /* @__PURE__ */ React23.createElement("div", null);
2181
2155
  }
2182
- return /* @__PURE__ */ React22.createElement(IconButton, {
2183
- classNames: mx8("self-center", classNames),
2156
+ return /* @__PURE__ */ React23.createElement(IconButton, {
2157
+ classNames: mx9("self-center", classNames),
2184
2158
  square: true,
2185
2159
  variant: "ghost",
2186
2160
  icon: "ph--caret-left--regular",
@@ -2194,10 +2168,10 @@ var CarouselNext = ({ classNames }) => {
2194
2168
  const { t } = useTranslation(translationKey);
2195
2169
  const { count, next } = useCarousel();
2196
2170
  if (count <= 1) {
2197
- return /* @__PURE__ */ React22.createElement("div", null);
2171
+ return /* @__PURE__ */ React23.createElement("div", null);
2198
2172
  }
2199
- return /* @__PURE__ */ React22.createElement(IconButton, {
2200
- classNames: mx8("self-center", classNames),
2173
+ return /* @__PURE__ */ React23.createElement(IconButton, {
2174
+ classNames: mx9("self-center", classNames),
2201
2175
  square: true,
2202
2176
  variant: "ghost",
2203
2177
  icon: "ph--caret-right--regular",
@@ -2217,16 +2191,16 @@ var CarouselIndicators = ({ classNames }) => {
2217
2191
  if (count <= 1) {
2218
2192
  return null;
2219
2193
  }
2220
- return /* @__PURE__ */ React22.createElement("div", {
2194
+ return /* @__PURE__ */ React23.createElement("div", {
2221
2195
  className: "col-start-2 overflow-hidden"
2222
- }, /* @__PURE__ */ React22.createElement("div", {
2196
+ }, /* @__PURE__ */ React23.createElement("div", {
2223
2197
  ...arrowNavigationAttrs,
2224
- className: mx8("flex items-center justify-center", classNames),
2198
+ className: mx9("flex items-center justify-center", classNames),
2225
2199
  role: "tablist",
2226
2200
  "aria-label": t("carousel-indicators.label")
2227
2201
  }, Array.from({
2228
2202
  length: count
2229
- }).map((_, i) => /* @__PURE__ */ React22.createElement(IconButton, {
2203
+ }).map((_, i) => /* @__PURE__ */ React23.createElement(IconButton, {
2230
2204
  key: i,
2231
2205
  role: "tab",
2232
2206
  "aria-selected": i === index,
@@ -2251,10 +2225,10 @@ var CarouselCaption = ({ children, classNames }) => {
2251
2225
  }
2252
2226
  return (
2253
2227
  // TODO(burdon): Move to ui-theme.
2254
- /* @__PURE__ */ React22.createElement("div", {
2228
+ /* @__PURE__ */ React23.createElement("div", {
2255
2229
  className: "col-start-2"
2256
- }, /* @__PURE__ */ React22.createElement("p", {
2257
- className: mx8("text-center text-description", classNames)
2230
+ }, /* @__PURE__ */ React23.createElement("p", {
2231
+ className: mx9("text-center text-description", classNames)
2258
2232
  }, content))
2259
2233
  );
2260
2234
  };
@@ -2271,7 +2245,7 @@ var Carousel = {
2271
2245
  };
2272
2246
 
2273
2247
  // src/components/Clipboard/ClipboardProvider.tsx
2274
- import React23, { createContext as createContext4, useCallback as useCallback6, useContext as useContext3, useState as useState6 } from "react";
2248
+ import React24, { createContext as createContext4, useCallback as useCallback7, useContext as useContext3, useState as useState6 } from "react";
2275
2249
  var ClipboardContext = /* @__PURE__ */ createContext4({
2276
2250
  textValue: "",
2277
2251
  setTextValue: async (_) => {
@@ -2280,11 +2254,11 @@ var ClipboardContext = /* @__PURE__ */ createContext4({
2280
2254
  var useClipboard = () => useContext3(ClipboardContext);
2281
2255
  var ClipboardProvider = ({ children }) => {
2282
2256
  const [textValue, setInternalTextValue] = useState6("");
2283
- const setTextValue = useCallback6(async (nextValue) => {
2257
+ const setTextValue = useCallback7(async (nextValue) => {
2284
2258
  await navigator.clipboard.writeText(nextValue);
2285
2259
  return setInternalTextValue(nextValue);
2286
2260
  }, []);
2287
- return /* @__PURE__ */ React23.createElement(ClipboardContext.Provider, {
2261
+ return /* @__PURE__ */ React24.createElement(ClipboardContext.Provider, {
2288
2262
  value: {
2289
2263
  textValue,
2290
2264
  setTextValue
@@ -2293,14 +2267,14 @@ var ClipboardProvider = ({ children }) => {
2293
2267
  };
2294
2268
 
2295
2269
  // src/components/Clipboard/CopyButton.tsx
2296
- import React24 from "react";
2297
- import { mx as mx9, osTranslations } from "@dxos/ui-theme";
2270
+ import React25 from "react";
2271
+ import { mx as mx10, osTranslations } from "@dxos/ui-theme";
2298
2272
  var inactiveLabelStyles = "invisible h-px -mb-px overflow-hidden";
2299
2273
  var CopyButton = ({ classNames, value, size = 5, ...props }) => {
2300
2274
  const { t } = useTranslation(osTranslations);
2301
2275
  const { textValue, setTextValue } = useClipboard();
2302
2276
  const isCopied = textValue === value;
2303
- return /* @__PURE__ */ React24.createElement(Button, {
2277
+ return /* @__PURE__ */ React25.createElement(Button, {
2304
2278
  ...props,
2305
2279
  classNames: [
2306
2280
  "inline-flex flex-col justify-center",
@@ -2308,18 +2282,18 @@ var CopyButton = ({ classNames, value, size = 5, ...props }) => {
2308
2282
  ],
2309
2283
  onClick: () => setTextValue(value),
2310
2284
  "data-testid": "copy-invitation"
2311
- }, /* @__PURE__ */ React24.createElement("div", {
2312
- className: mx9("flex gap-1 items-center", isCopied && inactiveLabelStyles)
2313
- }, /* @__PURE__ */ React24.createElement("span", {
2285
+ }, /* @__PURE__ */ React25.createElement("div", {
2286
+ className: mx10("flex gap-1 items-center", isCopied && inactiveLabelStyles)
2287
+ }, /* @__PURE__ */ React25.createElement("span", {
2314
2288
  className: "px-1"
2315
- }, t("copy.label")), /* @__PURE__ */ React24.createElement(Icon, {
2289
+ }, t("copy.label")), /* @__PURE__ */ React25.createElement(Icon, {
2316
2290
  icon: "ph--copy--regular",
2317
2291
  size
2318
- })), /* @__PURE__ */ React24.createElement("div", {
2319
- className: mx9("flex gap-1 items-center", !isCopied && inactiveLabelStyles)
2320
- }, /* @__PURE__ */ React24.createElement("span", {
2292
+ })), /* @__PURE__ */ React25.createElement("div", {
2293
+ className: mx10("flex gap-1 items-center", !isCopied && inactiveLabelStyles)
2294
+ }, /* @__PURE__ */ React25.createElement("span", {
2321
2295
  className: "px-1"
2322
- }, t("copy-success.label")), /* @__PURE__ */ React24.createElement(Icon, {
2296
+ }, t("copy-success.label")), /* @__PURE__ */ React25.createElement(Icon, {
2323
2297
  icon: "ph--check--regular",
2324
2298
  size
2325
2299
  })));
@@ -2330,7 +2304,7 @@ var CopyButtonIconOnly = ({ __scopeTooltip, value, classNames, size, variant, ..
2330
2304
  const isCopied = textValue === value;
2331
2305
  const label = isCopied ? t("copy-success.label") : props.label ?? t("copy.label");
2332
2306
  const { onOpen } = useTooltipContext("CopyButton", __scopeTooltip);
2333
- return /* @__PURE__ */ React24.createElement(IconButton, {
2307
+ return /* @__PURE__ */ React25.createElement(IconButton, {
2334
2308
  iconOnly: true,
2335
2309
  label,
2336
2310
  icon: "ph--copy--regular",
@@ -2355,11 +2329,11 @@ var Clipboard = {
2355
2329
  // src/components/DatePicker/DatePicker.tsx
2356
2330
  import { createContext as createContext5 } from "@radix-ui/react-context";
2357
2331
  import { format as formatDate } from "date-fns";
2358
- import React26, { forwardRef as forwardRef18, useCallback as useCallback8, useState as useState8 } from "react";
2332
+ import React27, { forwardRef as forwardRef19, useCallback as useCallback9, useState as useState8 } from "react";
2359
2333
 
2360
2334
  // src/components/Popover/Popover.tsx
2361
2335
  import { composeEventHandlers as composeEventHandlers2 } from "@radix-ui/primitive";
2362
- import { useComposedRefs } from "@radix-ui/react-compose-refs";
2336
+ import { useComposedRefs as useComposedRefs2 } from "@radix-ui/react-compose-refs";
2363
2337
  import { createContextScope as createContextScope2 } from "@radix-ui/react-context";
2364
2338
  import { DismissableLayer } from "@radix-ui/react-dismissable-layer";
2365
2339
  import { useFocusGuards } from "@radix-ui/react-focus-guards";
@@ -2369,11 +2343,11 @@ import * as PopperPrimitive from "@radix-ui/react-popper";
2369
2343
  import { createPopperScope } from "@radix-ui/react-popper";
2370
2344
  import { Portal as PortalPrimitive } from "@radix-ui/react-portal";
2371
2345
  import { Presence } from "@radix-ui/react-presence";
2372
- import { Primitive as Primitive12 } from "@radix-ui/react-primitive";
2373
- import { Slot as Slot12 } from "@radix-ui/react-slot";
2346
+ import { Primitive as Primitive11 } from "@radix-ui/react-primitive";
2347
+ import { Slot as Slot11 } from "@radix-ui/react-slot";
2374
2348
  import { useControllableState as useControllableState2 } from "@radix-ui/react-use-controllable-state";
2375
2349
  import { hideOthers } from "aria-hidden";
2376
- import React25, { forwardRef as forwardRef17, useCallback as useCallback7, useEffect as useEffect4, useMemo as useMemo6, useRef as useRef3, useState as useState7 } from "react";
2350
+ import React26, { forwardRef as forwardRef18, useCallback as useCallback8, useEffect as useEffect4, useMemo as useMemo6, useRef as useRef4, useState as useState7 } from "react";
2377
2351
  import { RemoveScroll } from "react-remove-scroll";
2378
2352
  var POPOVER_NAME = "Popover";
2379
2353
  var [createPopoverContext, createPopoverScope] = createContextScope2(POPOVER_NAME, [
@@ -2384,31 +2358,31 @@ var [PopoverProvider, usePopoverContext] = createPopoverContext(POPOVER_NAME);
2384
2358
  var PopoverRoot = (props) => {
2385
2359
  const { __scopePopover, children, open: openProp, defaultOpen, onOpenChange, modal = false } = props;
2386
2360
  const popperScope = usePopperScope(__scopePopover);
2387
- const triggerRef = useRef3(null);
2361
+ const triggerRef = useRef4(null);
2388
2362
  const [hasCustomAnchor, setHasCustomAnchor] = useState7(false);
2389
2363
  const [open = false, setOpen] = useControllableState2({
2390
2364
  prop: openProp,
2391
2365
  defaultProp: defaultOpen,
2392
2366
  onChange: onOpenChange
2393
2367
  });
2394
- return /* @__PURE__ */ React25.createElement(PopperPrimitive.Root, popperScope, /* @__PURE__ */ React25.createElement(PopoverProvider, {
2368
+ return /* @__PURE__ */ React26.createElement(PopperPrimitive.Root, popperScope, /* @__PURE__ */ React26.createElement(PopoverProvider, {
2395
2369
  scope: __scopePopover,
2396
2370
  contentId: useId4(),
2397
2371
  triggerRef,
2398
2372
  open,
2399
2373
  onOpenChange: setOpen,
2400
- onOpenToggle: useCallback7(() => setOpen((prevOpen) => !prevOpen), [
2374
+ onOpenToggle: useCallback8(() => setOpen((prevOpen) => !prevOpen), [
2401
2375
  setOpen
2402
2376
  ]),
2403
2377
  hasCustomAnchor,
2404
- onCustomAnchorAdd: useCallback7(() => setHasCustomAnchor(true), []),
2405
- onCustomAnchorRemove: useCallback7(() => setHasCustomAnchor(false), []),
2378
+ onCustomAnchorAdd: useCallback8(() => setHasCustomAnchor(true), []),
2379
+ onCustomAnchorRemove: useCallback8(() => setHasCustomAnchor(false), []),
2406
2380
  modal
2407
2381
  }, children));
2408
2382
  };
2409
2383
  PopoverRoot.displayName = POPOVER_NAME;
2410
2384
  var ANCHOR_NAME = "Popover.Anchor";
2411
- var PopoverAnchor = /* @__PURE__ */ forwardRef17((props, forwardedRef) => {
2385
+ var PopoverAnchor = /* @__PURE__ */ forwardRef18((props, forwardedRef) => {
2412
2386
  const { __scopePopover, ...anchorProps } = props;
2413
2387
  const context = usePopoverContext(ANCHOR_NAME, __scopePopover);
2414
2388
  const popperScope = usePopperScope(__scopePopover);
@@ -2420,7 +2394,7 @@ var PopoverAnchor = /* @__PURE__ */ forwardRef17((props, forwardedRef) => {
2420
2394
  onCustomAnchorAdd,
2421
2395
  onCustomAnchorRemove
2422
2396
  ]);
2423
- return /* @__PURE__ */ React25.createElement(PopperPrimitive.Anchor, {
2397
+ return /* @__PURE__ */ React26.createElement(PopperPrimitive.Anchor, {
2424
2398
  ...popperScope,
2425
2399
  ...anchorProps,
2426
2400
  ref: forwardedRef
@@ -2428,13 +2402,13 @@ var PopoverAnchor = /* @__PURE__ */ forwardRef17((props, forwardedRef) => {
2428
2402
  });
2429
2403
  PopoverAnchor.displayName = ANCHOR_NAME;
2430
2404
  var TRIGGER_NAME2 = "Popover.Trigger";
2431
- var PopoverTrigger = /* @__PURE__ */ forwardRef17((props, forwardedRef) => {
2405
+ var PopoverTrigger = /* @__PURE__ */ forwardRef18((props, forwardedRef) => {
2432
2406
  const { __scopePopover, asChild, ...triggerProps } = props;
2433
2407
  const context = usePopoverContext(TRIGGER_NAME2, __scopePopover);
2434
2408
  const popperScope = usePopperScope(__scopePopover);
2435
- const composedTriggerRef = useComposedRefs(forwardedRef, context.triggerRef);
2436
- const Comp = asChild ? Slot12 : Primitive12.button;
2437
- const trigger = /* @__PURE__ */ React25.createElement(Comp, {
2409
+ const composedTriggerRef = useComposedRefs2(forwardedRef, context.triggerRef);
2410
+ const Comp = asChild ? Slot11 : Primitive11.button;
2411
+ const trigger = /* @__PURE__ */ React26.createElement(Comp, {
2438
2412
  type: "button",
2439
2413
  "aria-haspopup": "dialog",
2440
2414
  "aria-expanded": context.open,
@@ -2444,7 +2418,7 @@ var PopoverTrigger = /* @__PURE__ */ forwardRef17((props, forwardedRef) => {
2444
2418
  ref: composedTriggerRef,
2445
2419
  onClick: composeEventHandlers2(props.onClick, context.onOpenToggle)
2446
2420
  });
2447
- return context.hasCustomAnchor ? trigger : /* @__PURE__ */ React25.createElement(PopperPrimitive.Anchor, {
2421
+ return context.hasCustomAnchor ? trigger : /* @__PURE__ */ React26.createElement(PopperPrimitive.Anchor, {
2448
2422
  asChild: true,
2449
2423
  ...popperScope
2450
2424
  }, trigger);
@@ -2460,7 +2434,7 @@ var PopoverVirtualTrigger = (props) => {
2460
2434
  context.triggerRef.current = virtualRef.current;
2461
2435
  }
2462
2436
  });
2463
- return /* @__PURE__ */ React25.createElement(PopperPrimitive.Anchor, {
2437
+ return /* @__PURE__ */ React26.createElement(PopperPrimitive.Anchor, {
2464
2438
  ...popperScope,
2465
2439
  virtualRef
2466
2440
  });
@@ -2473,48 +2447,48 @@ var [PortalProvider, usePortalContext] = createPopoverContext(PORTAL_NAME2, {
2473
2447
  var PopoverPortal = (props) => {
2474
2448
  const { __scopePopover, forceMount, children, container } = props;
2475
2449
  const context = usePopoverContext(PORTAL_NAME2, __scopePopover);
2476
- return /* @__PURE__ */ React25.createElement(PortalProvider, {
2450
+ return /* @__PURE__ */ React26.createElement(PortalProvider, {
2477
2451
  scope: __scopePopover,
2478
2452
  forceMount
2479
- }, /* @__PURE__ */ React25.createElement(Presence, {
2453
+ }, /* @__PURE__ */ React26.createElement(Presence, {
2480
2454
  present: forceMount || context.open
2481
- }, /* @__PURE__ */ React25.createElement(PortalPrimitive, {
2455
+ }, /* @__PURE__ */ React26.createElement(PortalPrimitive, {
2482
2456
  asChild: true,
2483
2457
  container
2484
2458
  }, children)));
2485
2459
  };
2486
2460
  PopoverPortal.displayName = PORTAL_NAME2;
2487
2461
  var CONTENT_NAME2 = "Popover.Content";
2488
- var PopoverContent = /* @__PURE__ */ forwardRef17((props, forwardedRef) => {
2462
+ var PopoverContent = /* @__PURE__ */ forwardRef18((props, forwardedRef) => {
2489
2463
  const portalContext = usePortalContext(CONTENT_NAME2, props.__scopePopover);
2490
2464
  const { forceMount = portalContext.forceMount, ...contentProps } = props;
2491
2465
  const context = usePopoverContext(CONTENT_NAME2, props.__scopePopover);
2492
- return /* @__PURE__ */ React25.createElement(Presence, {
2466
+ return /* @__PURE__ */ React26.createElement(Presence, {
2493
2467
  present: forceMount || context.open
2494
- }, context.modal ? /* @__PURE__ */ React25.createElement(PopoverContentModal, {
2468
+ }, context.modal ? /* @__PURE__ */ React26.createElement(PopoverContentModal, {
2495
2469
  ...contentProps,
2496
2470
  ref: forwardedRef
2497
- }) : /* @__PURE__ */ React25.createElement(PopoverContentNonModal, {
2471
+ }) : /* @__PURE__ */ React26.createElement(PopoverContentNonModal, {
2498
2472
  ...contentProps,
2499
2473
  ref: forwardedRef
2500
2474
  }));
2501
2475
  });
2502
2476
  PopoverContent.displayName = CONTENT_NAME2;
2503
- var PopoverContentModal = /* @__PURE__ */ forwardRef17((props, forwardedRef) => {
2477
+ var PopoverContentModal = /* @__PURE__ */ forwardRef18((props, forwardedRef) => {
2504
2478
  const context = usePopoverContext(CONTENT_NAME2, props.__scopePopover);
2505
- const contentRef = useRef3(null);
2506
- const composedRefs = useComposedRefs(forwardedRef, contentRef);
2507
- const isRightClickOutsideRef = useRef3(false);
2479
+ const contentRef = useRef4(null);
2480
+ const composedRefs = useComposedRefs2(forwardedRef, contentRef);
2481
+ const isRightClickOutsideRef = useRef4(false);
2508
2482
  useEffect4(() => {
2509
2483
  const content = contentRef.current;
2510
2484
  if (content) {
2511
2485
  return hideOthers(content);
2512
2486
  }
2513
2487
  }, []);
2514
- return /* @__PURE__ */ React25.createElement(RemoveScroll, {
2515
- as: Slot12,
2488
+ return /* @__PURE__ */ React26.createElement(RemoveScroll, {
2489
+ as: Slot11,
2516
2490
  allowPinchZoom: true
2517
- }, /* @__PURE__ */ React25.createElement(PopoverContentImpl, {
2491
+ }, /* @__PURE__ */ React26.createElement(PopoverContentImpl, {
2518
2492
  ...props,
2519
2493
  ref: composedRefs,
2520
2494
  // Make sure we're not trapping once it's been closed (closed !== unmounted when animating out).
@@ -2541,11 +2515,11 @@ var PopoverContentModal = /* @__PURE__ */ forwardRef17((props, forwardedRef) =>
2541
2515
  })
2542
2516
  }));
2543
2517
  });
2544
- var PopoverContentNonModal = /* @__PURE__ */ forwardRef17((props, forwardedRef) => {
2518
+ var PopoverContentNonModal = /* @__PURE__ */ forwardRef18((props, forwardedRef) => {
2545
2519
  const context = usePopoverContext(CONTENT_NAME2, props.__scopePopover);
2546
- const hasInteractedOutsideRef = useRef3(false);
2547
- const hasPointerDownOutsideRef = useRef3(false);
2548
- return /* @__PURE__ */ React25.createElement(PopoverContentImpl, {
2520
+ const hasInteractedOutsideRef = useRef4(false);
2521
+ const hasPointerDownOutsideRef = useRef4(false);
2522
+ return /* @__PURE__ */ React26.createElement(PopoverContentImpl, {
2549
2523
  ...props,
2550
2524
  ref: forwardedRef,
2551
2525
  trapFocus: false,
@@ -2580,7 +2554,7 @@ var PopoverContentNonModal = /* @__PURE__ */ forwardRef17((props, forwardedRef)
2580
2554
  }
2581
2555
  });
2582
2556
  });
2583
- var PopoverContentImpl = /* @__PURE__ */ forwardRef17((props, forwardedRef) => {
2557
+ var PopoverContentImpl = /* @__PURE__ */ forwardRef18((props, forwardedRef) => {
2584
2558
  const { __scopePopover, trapFocus, onOpenAutoFocus, onCloseAutoFocus, disableOutsidePointerEvents, onEscapeKeyDown, onPointerDownOutside, onFocusOutside, onInteractOutside, collisionPadding = 8, collisionBoundary, classNames, ...contentProps } = props;
2585
2559
  const context = usePopoverContext(CONTENT_NAME2, __scopePopover);
2586
2560
  const popperScope = usePopperScope(__scopePopover);
@@ -2604,13 +2578,13 @@ var PopoverContentImpl = /* @__PURE__ */ forwardRef17((props, forwardedRef) => {
2604
2578
  collisionBoundary,
2605
2579
  context.triggerRef.current
2606
2580
  ]);
2607
- return /* @__PURE__ */ React25.createElement(FocusScope, {
2581
+ return /* @__PURE__ */ React26.createElement(FocusScope, {
2608
2582
  asChild: true,
2609
2583
  loop: true,
2610
2584
  trapped: trapFocus,
2611
2585
  onMountAutoFocus: onOpenAutoFocus,
2612
2586
  onUnmountAutoFocus: onCloseAutoFocus
2613
- }, /* @__PURE__ */ React25.createElement(DismissableLayer, {
2587
+ }, /* @__PURE__ */ React26.createElement(DismissableLayer, {
2614
2588
  asChild: true,
2615
2589
  disableOutsidePointerEvents,
2616
2590
  onInteractOutside,
@@ -2618,7 +2592,7 @@ var PopoverContentImpl = /* @__PURE__ */ forwardRef17((props, forwardedRef) => {
2618
2592
  onPointerDownOutside,
2619
2593
  onFocusOutside,
2620
2594
  onDismiss: () => context.onOpenChange(false)
2621
- }, /* @__PURE__ */ React25.createElement(PopperPrimitive.Content, {
2595
+ }, /* @__PURE__ */ React26.createElement(PopperPrimitive.Content, {
2622
2596
  "data-state": getState(context.open),
2623
2597
  role: "dialog",
2624
2598
  id: context.contentId,
@@ -2644,10 +2618,10 @@ var PopoverContentImpl = /* @__PURE__ */ forwardRef17((props, forwardedRef) => {
2644
2618
  })));
2645
2619
  });
2646
2620
  var CLOSE_NAME = "Popover.Close";
2647
- var PopoverClose = /* @__PURE__ */ forwardRef17((props, forwardedRef) => {
2621
+ var PopoverClose = /* @__PURE__ */ forwardRef18((props, forwardedRef) => {
2648
2622
  const { __scopePopover, ...closeProps } = props;
2649
2623
  const context = usePopoverContext(CLOSE_NAME, __scopePopover);
2650
- return /* @__PURE__ */ React25.createElement(Primitive12.button, {
2624
+ return /* @__PURE__ */ React26.createElement(Primitive11.button, {
2651
2625
  type: "button",
2652
2626
  ...closeProps,
2653
2627
  ref: forwardedRef,
@@ -2656,11 +2630,11 @@ var PopoverClose = /* @__PURE__ */ forwardRef17((props, forwardedRef) => {
2656
2630
  });
2657
2631
  PopoverClose.displayName = CLOSE_NAME;
2658
2632
  var ARROW_NAME2 = "Popover.Arrow";
2659
- var PopoverArrow = /* @__PURE__ */ forwardRef17((props, forwardedRef) => {
2633
+ var PopoverArrow = /* @__PURE__ */ forwardRef18((props, forwardedRef) => {
2660
2634
  const { __scopePopover, classNames, ...arrowProps } = props;
2661
2635
  const popperScope = usePopperScope(__scopePopover);
2662
2636
  const { tx } = useThemeContext();
2663
- return /* @__PURE__ */ React25.createElement(PopperPrimitive.Arrow, {
2637
+ return /* @__PURE__ */ React26.createElement(PopperPrimitive.Arrow, {
2664
2638
  ...popperScope,
2665
2639
  ...arrowProps,
2666
2640
  className: tx("popover.arrow", {}, classNames),
@@ -2668,10 +2642,10 @@ var PopoverArrow = /* @__PURE__ */ forwardRef17((props, forwardedRef) => {
2668
2642
  });
2669
2643
  });
2670
2644
  PopoverArrow.displayName = ARROW_NAME2;
2671
- var PopoverViewport = /* @__PURE__ */ forwardRef17(({ classNames, asChild, constrainInline = true, constrainBlock = true, children, ...props }, forwardedRef) => {
2645
+ var PopoverViewport = /* @__PURE__ */ forwardRef18(({ classNames, asChild, constrainInline = true, constrainBlock = true, children, ...props }, forwardedRef) => {
2672
2646
  const { tx } = useThemeContext();
2673
- const Comp = asChild ? Slot12 : Primitive12.div;
2674
- return /* @__PURE__ */ React25.createElement(Comp, {
2647
+ const Comp = asChild ? Slot11 : Primitive11.div;
2648
+ return /* @__PURE__ */ React26.createElement(Comp, {
2675
2649
  ...props,
2676
2650
  className: tx("popover.viewport", {
2677
2651
  constrainInline,
@@ -2700,7 +2674,7 @@ var DatePickerRoot = ({ mode = "single", value, defaultValue, onValueChange, wit
2700
2674
  const [internalOpen, setInternalOpen] = useState8(defaultOpen ?? false);
2701
2675
  const controlled = value !== void 0 || onValueChange !== void 0;
2702
2676
  const resolvedValue = controlled ? value : internalValue;
2703
- const setValue = useCallback8((next) => {
2677
+ const setValue = useCallback9((next) => {
2704
2678
  if (!controlled) {
2705
2679
  setInternalValue(next);
2706
2680
  }
@@ -2710,7 +2684,7 @@ var DatePickerRoot = ({ mode = "single", value, defaultValue, onValueChange, wit
2710
2684
  onValueChange
2711
2685
  ]);
2712
2686
  const resolvedOpen = open ?? internalOpen;
2713
- const handleOpenChange = useCallback8((next) => {
2687
+ const handleOpenChange = useCallback9((next) => {
2714
2688
  if (open === void 0) {
2715
2689
  setInternalOpen(next);
2716
2690
  }
@@ -2719,14 +2693,14 @@ var DatePickerRoot = ({ mode = "single", value, defaultValue, onValueChange, wit
2719
2693
  open,
2720
2694
  onOpenChange
2721
2695
  ]);
2722
- return /* @__PURE__ */ React26.createElement(DatePickerProvider, {
2696
+ return /* @__PURE__ */ React27.createElement(DatePickerProvider, {
2723
2697
  mode,
2724
2698
  value: resolvedValue,
2725
2699
  setValue,
2726
2700
  withTime,
2727
2701
  open: resolvedOpen,
2728
2702
  onOpenChange: handleOpenChange
2729
- }, /* @__PURE__ */ React26.createElement(Popover.Root, {
2703
+ }, /* @__PURE__ */ React27.createElement(Popover.Root, {
2730
2704
  open: resolvedOpen,
2731
2705
  onOpenChange: handleOpenChange
2732
2706
  }, children));
@@ -2747,36 +2721,36 @@ var formatValue = (mode, value, fmt) => {
2747
2721
  }
2748
2722
  }
2749
2723
  };
2750
- var DatePickerTrigger = /* @__PURE__ */ forwardRef18(({ classNames, format: fmt = "PPP", placeholder, icon = true, children, ...props }, forwardedRef) => {
2724
+ var DatePickerTrigger = /* @__PURE__ */ forwardRef19(({ classNames, format: fmt = "PPP", placeholder, icon = true, children, ...props }, forwardedRef) => {
2751
2725
  const { tx } = useThemeContext();
2752
2726
  const { t } = useTranslation(translationKey);
2753
2727
  const { mode, value } = useDatePickerContext("DatePickerTrigger");
2754
2728
  const placeholderText = placeholder ?? t(`date-picker.placeholder.${mode}.label`);
2755
2729
  const label = formatValue(mode, value, fmt) ?? placeholderText;
2756
2730
  const hasValue = label !== placeholderText;
2757
- return /* @__PURE__ */ React26.createElement(Popover.Trigger, {
2731
+ return /* @__PURE__ */ React27.createElement(Popover.Trigger, {
2758
2732
  asChild: true
2759
- }, /* @__PURE__ */ React26.createElement("button", {
2733
+ }, /* @__PURE__ */ React27.createElement("button", {
2760
2734
  ref: forwardedRef,
2761
2735
  type: "button",
2762
2736
  ...props,
2763
2737
  className: tx("datePicker.trigger", {
2764
2738
  hasValue
2765
2739
  }, classNames) ?? void 0
2766
- }, children ?? /* @__PURE__ */ React26.createElement(React26.Fragment, null, icon && /* @__PURE__ */ React26.createElement(Icon, {
2740
+ }, children ?? /* @__PURE__ */ React27.createElement(React27.Fragment, null, icon && /* @__PURE__ */ React27.createElement(Icon, {
2767
2741
  size: 4,
2768
2742
  icon: "ph--calendar--regular"
2769
2743
  }), label)));
2770
2744
  });
2771
2745
  DatePickerTrigger.displayName = "DatePickerTrigger";
2772
- var DatePickerContent = /* @__PURE__ */ forwardRef18(({ classNames, children, ...props }, forwardedRef) => {
2746
+ var DatePickerContent = /* @__PURE__ */ forwardRef19(({ classNames, children, ...props }, forwardedRef) => {
2773
2747
  const { tx } = useThemeContext();
2774
- return /* @__PURE__ */ React26.createElement(Popover.Portal, null, /* @__PURE__ */ React26.createElement(Popover.Content, {
2748
+ return /* @__PURE__ */ React27.createElement(Popover.Portal, null, /* @__PURE__ */ React27.createElement(Popover.Content, {
2775
2749
  ref: forwardedRef,
2776
2750
  align: "start",
2777
2751
  sideOffset: 4,
2778
2752
  ...props
2779
- }, /* @__PURE__ */ React26.createElement("div", {
2753
+ }, /* @__PURE__ */ React27.createElement("div", {
2780
2754
  className: tx("datePicker.content", {}, classNames)
2781
2755
  }, children)));
2782
2756
  });
@@ -2796,7 +2770,7 @@ var DatePickerCalendar = ({ classNames } = {}) => {
2796
2770
  const { mode, value, setValue, withTime, onOpenChange } = useDatePickerContext("DatePickerCalendar");
2797
2771
  if (mode === "single") {
2798
2772
  const date = value;
2799
- return /* @__PURE__ */ React26.createElement(Calendar.Root, {
2773
+ return /* @__PURE__ */ React27.createElement(Calendar.Root, {
2800
2774
  mode: "single",
2801
2775
  classNames,
2802
2776
  selected: date,
@@ -2810,7 +2784,7 @@ var DatePickerCalendar = ({ classNames } = {}) => {
2810
2784
  });
2811
2785
  }
2812
2786
  const range = value;
2813
- return /* @__PURE__ */ React26.createElement(Calendar.Root, {
2787
+ return /* @__PURE__ */ React27.createElement(Calendar.Root, {
2814
2788
  mode: "range",
2815
2789
  classNames,
2816
2790
  selected: range,
@@ -2841,14 +2815,14 @@ var DatePicker = {
2841
2815
  // src/components/Dialog/Dialog.tsx
2842
2816
  import { createContext as createContext6 } from "@radix-ui/react-context";
2843
2817
  import * as DialogPrimitive from "@radix-ui/react-dialog";
2844
- import { Primitive as Primitive13 } from "@radix-ui/react-primitive";
2845
- import { Slot as Slot13 } from "@radix-ui/react-slot";
2846
- import React27, { forwardRef as forwardRef19 } from "react";
2847
- import { useTranslation as useTranslation3 } from "react-i18next";
2818
+ import { Primitive as Primitive12 } from "@radix-ui/react-primitive";
2819
+ import { Slot as Slot12 } from "@radix-ui/react-slot";
2820
+ import React28, { forwardRef as forwardRef20 } from "react";
2821
+ import { useTranslation as useTranslation4 } from "react-i18next";
2848
2822
  import { osTranslations as osTranslations2 } from "@dxos/ui-theme";
2849
- var DialogRoot = (props) => /* @__PURE__ */ React27.createElement(ElevationProvider, {
2823
+ var DialogRoot = (props) => /* @__PURE__ */ React28.createElement(ElevationProvider, {
2850
2824
  elevation: "dialog"
2851
- }, /* @__PURE__ */ React27.createElement(DialogPrimitive.Root, {
2825
+ }, /* @__PURE__ */ React28.createElement(DialogPrimitive.Root, {
2852
2826
  // NOTE: Radix warning unless set to undefined.
2853
2827
  // https://www.radix-ui.com/primitives/docs/components/dialog#description
2854
2828
  "aria-describedby": void 0,
@@ -2859,23 +2833,23 @@ var DialogTrigger = DialogPrimitive.Trigger;
2859
2833
  var DialogPortal = DialogPrimitive.Portal;
2860
2834
  var DIALOG_OVERLAY_NAME = "Dialog.Overlay";
2861
2835
  var [OverlayLayoutProvider, useOverlayLayoutContext] = createContext6(DIALOG_OVERLAY_NAME, {});
2862
- var DialogOverlay = /* @__PURE__ */ forwardRef19(({ classNames, children, blockAlign, ...props }, forwardedRef) => {
2836
+ var DialogOverlay = /* @__PURE__ */ forwardRef20(({ classNames, children, blockAlign, ...props }, forwardedRef) => {
2863
2837
  const { tx } = useThemeContext();
2864
- return /* @__PURE__ */ React27.createElement(DialogPrimitive.Overlay, {
2838
+ return /* @__PURE__ */ React28.createElement(DialogPrimitive.Overlay, {
2865
2839
  ...props,
2866
2840
  "data-block-align": blockAlign,
2867
2841
  className: tx("dialog.overlay", {}, classNames),
2868
2842
  ref: forwardedRef
2869
- }, /* @__PURE__ */ React27.createElement(OverlayLayoutProvider, {
2843
+ }, /* @__PURE__ */ React28.createElement(OverlayLayoutProvider, {
2870
2844
  inOverlayLayout: true
2871
2845
  }, children));
2872
2846
  });
2873
2847
  DialogOverlay.displayName = DIALOG_OVERLAY_NAME;
2874
2848
  var DIALOG_CONTENT_NAME = "Dialog.Content";
2875
- var DialogContent = /* @__PURE__ */ forwardRef19(({ classNames, children, size = "md", inOverlayLayout: propsInOverlayLayout, ...props }, forwardedRef) => {
2849
+ var DialogContent = /* @__PURE__ */ forwardRef20(({ classNames, children, size = "md", inOverlayLayout: propsInOverlayLayout, ...props }, forwardedRef) => {
2876
2850
  const { tx } = useThemeContext();
2877
2851
  const { inOverlayLayout } = useOverlayLayoutContext(DIALOG_CONTENT_NAME);
2878
- return /* @__PURE__ */ React27.createElement(DialogPrimitive.Content, {
2852
+ return /* @__PURE__ */ React28.createElement(DialogPrimitive.Content, {
2879
2853
  ...props,
2880
2854
  // NOTE: Radix warning unless set to undefined.
2881
2855
  // https://www.radix-ui.com/primitives/docs/components/dialog#description
@@ -2885,7 +2859,7 @@ var DialogContent = /* @__PURE__ */ forwardRef19(({ classNames, children, size =
2885
2859
  inOverlayLayout: propsInOverlayLayout || inOverlayLayout
2886
2860
  }, classNames),
2887
2861
  ref: forwardedRef
2888
- }, /* @__PURE__ */ React27.createElement(Column.Root, {
2862
+ }, /* @__PURE__ */ React28.createElement(Column.Root, {
2889
2863
  classNames: "dx-expander",
2890
2864
  gutter: "sm"
2891
2865
  }, children));
@@ -2893,9 +2867,9 @@ var DialogContent = /* @__PURE__ */ forwardRef19(({ classNames, children, size =
2893
2867
  DialogContent.displayName = DIALOG_CONTENT_NAME;
2894
2868
  var DialogHeader = slottable(({ children, asChild, ...props }, forwardedRef) => {
2895
2869
  const { className, ...rest } = composableProps(props);
2896
- const Comp = asChild ? Slot13 : Primitive13.div;
2870
+ const Comp = asChild ? Slot12 : Primitive12.div;
2897
2871
  const { tx } = useThemeContext();
2898
- return /* @__PURE__ */ React27.createElement(Comp, {
2872
+ return /* @__PURE__ */ React28.createElement(Comp, {
2899
2873
  ...rest,
2900
2874
  className: tx("dialog.header", {}, className),
2901
2875
  ref: forwardedRef
@@ -2911,9 +2885,9 @@ var DIALOG_ACTION_LABEL_KEYS = {
2911
2885
  close: "close-dialog.label",
2912
2886
  delete: "toolbar-delete.label"
2913
2887
  };
2914
- var DialogActionIconButton = /* @__PURE__ */ forwardRef19(({ action, label, ...props }, forwardedRef) => {
2915
- const { t } = useTranslation3(osTranslations2);
2916
- return /* @__PURE__ */ React27.createElement(IconButton, {
2888
+ var DialogActionIconButton = /* @__PURE__ */ forwardRef20(({ action, label, ...props }, forwardedRef) => {
2889
+ const { t } = useTranslation4(osTranslations2);
2890
+ return /* @__PURE__ */ React28.createElement(IconButton, {
2917
2891
  ...props,
2918
2892
  label: label ?? t(DIALOG_ACTION_LABEL_KEYS[action]),
2919
2893
  icon: DIALOG_ACTION_ICONS[action],
@@ -2926,18 +2900,18 @@ var DialogActionIconButton = /* @__PURE__ */ forwardRef19(({ action, label, ...p
2926
2900
  DialogActionIconButton.displayName = "Dialog.ActionIconButton";
2927
2901
  var DialogBody = slottable(({ children, asChild, ...props }, forwardedRef) => {
2928
2902
  const { className, ...rest } = composableProps(props);
2929
- const Comp = asChild ? Slot13 : Primitive13.div;
2903
+ const Comp = asChild ? Slot12 : Primitive12.div;
2930
2904
  const { tx } = useThemeContext();
2931
- return /* @__PURE__ */ React27.createElement(Comp, {
2905
+ return /* @__PURE__ */ React28.createElement(Comp, {
2932
2906
  ...rest,
2933
2907
  className: tx("dialog.body", {}, className),
2934
2908
  ref: forwardedRef
2935
2909
  }, children);
2936
2910
  });
2937
2911
  DialogBody.displayName = "Dialog.Body";
2938
- var DialogTitle = /* @__PURE__ */ forwardRef19(({ classNames, srOnly, ...props }, forwardedRef) => {
2912
+ var DialogTitle = /* @__PURE__ */ forwardRef20(({ classNames, srOnly, ...props }, forwardedRef) => {
2939
2913
  const { tx } = useThemeContext();
2940
- return /* @__PURE__ */ React27.createElement(DialogPrimitive.Title, {
2914
+ return /* @__PURE__ */ React28.createElement(DialogPrimitive.Title, {
2941
2915
  ...props,
2942
2916
  className: tx("dialog.title", {
2943
2917
  srOnly
@@ -2946,9 +2920,9 @@ var DialogTitle = /* @__PURE__ */ forwardRef19(({ classNames, srOnly, ...props }
2946
2920
  });
2947
2921
  });
2948
2922
  DialogTitle.displayName = "Dialog.Title";
2949
- var DialogDescription = /* @__PURE__ */ forwardRef19(({ classNames, srOnly, ...props }, forwardedRef) => {
2923
+ var DialogDescription = /* @__PURE__ */ forwardRef20(({ classNames, srOnly, ...props }, forwardedRef) => {
2950
2924
  const { tx } = useThemeContext();
2951
- return /* @__PURE__ */ React27.createElement(DialogPrimitive.Description, {
2925
+ return /* @__PURE__ */ React28.createElement(DialogPrimitive.Description, {
2952
2926
  ...props,
2953
2927
  className: tx("dialog.description", {
2954
2928
  srOnly
@@ -2959,9 +2933,9 @@ var DialogDescription = /* @__PURE__ */ forwardRef19(({ classNames, srOnly, ...p
2959
2933
  DialogDescription.displayName = "Dialog.Description";
2960
2934
  var DialogActionBar = slottable(({ children, asChild, ...props }, forwardedRef) => {
2961
2935
  const { className: classNames, ...rest } = composableProps(props);
2962
- const Comp = asChild ? Slot13 : Primitive13.div;
2936
+ const Comp = asChild ? Slot12 : Primitive12.div;
2963
2937
  const { tx } = useThemeContext();
2964
- return /* @__PURE__ */ React27.createElement(Comp, {
2938
+ return /* @__PURE__ */ React28.createElement(Comp, {
2965
2939
  ...rest,
2966
2940
  className: tx("dialog.actionbar", {}, classNames),
2967
2941
  ref: forwardedRef
@@ -2987,10 +2961,10 @@ var Dialog = {
2987
2961
  // src/components/Dialog/AlertDialog.tsx
2988
2962
  import * as AlertDialogPrimitive from "@radix-ui/react-alert-dialog";
2989
2963
  import { createContext as createContext7 } from "@radix-ui/react-context";
2990
- import React28, { forwardRef as forwardRef20 } from "react";
2991
- var AlertDialogRoot = (props) => /* @__PURE__ */ React28.createElement(ElevationProvider, {
2964
+ import React29, { forwardRef as forwardRef21 } from "react";
2965
+ var AlertDialogRoot = (props) => /* @__PURE__ */ React29.createElement(ElevationProvider, {
2992
2966
  elevation: "dialog"
2993
- }, /* @__PURE__ */ React28.createElement(AlertDialogPrimitive.Root, props));
2967
+ }, /* @__PURE__ */ React29.createElement(AlertDialogPrimitive.Root, props));
2994
2968
  var AlertDialogTrigger = AlertDialogPrimitive.Trigger;
2995
2969
  var AlertDialogPortal = AlertDialogPrimitive.Portal;
2996
2970
  var AlertDialogCancel = AlertDialogPrimitive.Cancel;
@@ -3000,37 +2974,37 @@ var ALERT_DIALOG_CONTENT_NAME = "AlertDialog.Content";
3000
2974
  var [OverlayLayoutProvider2, useOverlayLayoutContext2] = createContext7(ALERT_DIALOG_OVERLAY_NAME, {
3001
2975
  inOverlayLayout: false
3002
2976
  });
3003
- var AlertDialogOverlay = /* @__PURE__ */ forwardRef20(({ classNames, children, blockAlign, ...props }, forwardedRef) => {
2977
+ var AlertDialogOverlay = /* @__PURE__ */ forwardRef21(({ classNames, children, blockAlign, ...props }, forwardedRef) => {
3004
2978
  const { tx } = useThemeContext();
3005
- return /* @__PURE__ */ React28.createElement(AlertDialogPrimitive.Overlay, {
2979
+ return /* @__PURE__ */ React29.createElement(AlertDialogPrimitive.Overlay, {
3006
2980
  ...props,
3007
2981
  "data-block-align": blockAlign,
3008
2982
  className: tx("dialog.overlay", {}, classNames),
3009
2983
  ref: forwardedRef
3010
- }, /* @__PURE__ */ React28.createElement(OverlayLayoutProvider2, {
2984
+ }, /* @__PURE__ */ React29.createElement(OverlayLayoutProvider2, {
3011
2985
  inOverlayLayout: true
3012
2986
  }, children));
3013
2987
  });
3014
2988
  AlertDialogOverlay.displayName = ALERT_DIALOG_OVERLAY_NAME;
3015
- var AlertDialogContent = /* @__PURE__ */ forwardRef20(({ classNames, children, size = "md", ...props }, forwardedRef) => {
2989
+ var AlertDialogContent = /* @__PURE__ */ forwardRef21(({ classNames, children, size = "md", ...props }, forwardedRef) => {
3016
2990
  const { tx } = useThemeContext();
3017
2991
  const { inOverlayLayout } = useOverlayLayoutContext2(ALERT_DIALOG_CONTENT_NAME);
3018
- return /* @__PURE__ */ React28.createElement(AlertDialogPrimitive.Content, {
2992
+ return /* @__PURE__ */ React29.createElement(AlertDialogPrimitive.Content, {
3019
2993
  ...props,
3020
2994
  className: tx("dialog.content", {
3021
2995
  inOverlayLayout,
3022
2996
  size
3023
2997
  }, classNames),
3024
2998
  ref: forwardedRef
3025
- }, /* @__PURE__ */ React28.createElement(Column.Root, {
2999
+ }, /* @__PURE__ */ React29.createElement(Column.Root, {
3026
3000
  classNames: "dx-expander",
3027
3001
  gutter: "sm"
3028
3002
  }, children));
3029
3003
  });
3030
3004
  AlertDialogContent.displayName = ALERT_DIALOG_CONTENT_NAME;
3031
- var AlertDialogTitle = /* @__PURE__ */ forwardRef20(({ classNames, srOnly, ...props }, forwardedRef) => {
3005
+ var AlertDialogTitle = /* @__PURE__ */ forwardRef21(({ classNames, srOnly, ...props }, forwardedRef) => {
3032
3006
  const { tx } = useThemeContext();
3033
- return /* @__PURE__ */ React28.createElement(AlertDialogPrimitive.Title, {
3007
+ return /* @__PURE__ */ React29.createElement(AlertDialogPrimitive.Title, {
3034
3008
  ...props,
3035
3009
  className: tx("dialog.title", {
3036
3010
  srOnly
@@ -3038,9 +3012,9 @@ var AlertDialogTitle = /* @__PURE__ */ forwardRef20(({ classNames, srOnly, ...pr
3038
3012
  ref: forwardedRef
3039
3013
  });
3040
3014
  });
3041
- var AlertDialogDescription = /* @__PURE__ */ forwardRef20(({ classNames, srOnly, ...props }, forwardedRef) => {
3015
+ var AlertDialogDescription = /* @__PURE__ */ forwardRef21(({ classNames, srOnly, ...props }, forwardedRef) => {
3042
3016
  const { tx } = useThemeContext();
3043
- return /* @__PURE__ */ React28.createElement(AlertDialogPrimitive.Description, {
3017
+ return /* @__PURE__ */ React29.createElement(AlertDialogPrimitive.Description, {
3044
3018
  ...props,
3045
3019
  className: tx("dialog.description", {
3046
3020
  srOnly
@@ -3070,40 +3044,40 @@ var AlertDialog = {
3070
3044
  import { ErrorBoundary } from "@dxos/react-error-boundary";
3071
3045
 
3072
3046
  // src/components/ErrorFallback/ErrorFallback.tsx
3073
- import React29 from "react";
3047
+ import React30 from "react";
3074
3048
  import { safeStringify } from "@dxos/util";
3075
- import { translationKey as translationKey3 } from "#translations";
3049
+ import { translationKey as translationKey4 } from "#translations";
3076
3050
  var ErrorFallback = ({ children, error, title, data }) => {
3077
- const { t } = useTranslation(translationKey3);
3051
+ const { t } = useTranslation(translationKey4);
3078
3052
  const isDev = process.env.NODE_ENV === "development";
3079
3053
  const message = error instanceof Error ? error.message : String(error);
3080
- return /* @__PURE__ */ React29.createElement("div", {
3054
+ return /* @__PURE__ */ React30.createElement("div", {
3081
3055
  role: "alert",
3082
3056
  "data-testid": "error-boundary-fallback",
3083
3057
  className: "flex flex-col p-4 gap-4 overflow-auto"
3084
- }, /* @__PURE__ */ React29.createElement("h1", {
3058
+ }, /* @__PURE__ */ React30.createElement("h1", {
3085
3059
  className: "text-lg text-info-text"
3086
- }, title ?? "Runtime Error"), /* @__PURE__ */ React29.createElement("p", null, message), isDev && error instanceof Error && /* @__PURE__ */ React29.createElement(Section, {
3060
+ }, title ?? "Runtime Error"), /* @__PURE__ */ React30.createElement("p", null, message), isDev && error instanceof Error && /* @__PURE__ */ React30.createElement(Section, {
3087
3061
  title: "Stack",
3088
3062
  onClick: () => {
3089
3063
  const text = error instanceof Error ? error.stack ?? error.message : String(error);
3090
3064
  void navigator.clipboard.writeText(text);
3091
3065
  }
3092
- }, /* @__PURE__ */ React29.createElement(ErrorStack, {
3066
+ }, /* @__PURE__ */ React30.createElement(ErrorStack, {
3093
3067
  error
3094
- })), data && /* @__PURE__ */ React29.createElement(Section, {
3068
+ })), data && /* @__PURE__ */ React30.createElement(Section, {
3095
3069
  title: "Data",
3096
3070
  onClick: () => {
3097
3071
  void navigator.clipboard.writeText(JSON.stringify(data, void 0, 2));
3098
3072
  }
3099
- }, /* @__PURE__ */ React29.createElement("pre", {
3073
+ }, /* @__PURE__ */ React30.createElement("pre", {
3100
3074
  className: "overflow-x-auto text-xs"
3101
3075
  }, safeStringify(data, void 0, 2))), children);
3102
3076
  };
3103
3077
  var Section = ({ children, title, onClick }) => {
3104
- return /* @__PURE__ */ React29.createElement("div", {
3078
+ return /* @__PURE__ */ React30.createElement("div", {
3105
3079
  className: "flex flex-col gap-1"
3106
- }, onClick && /* @__PURE__ */ React29.createElement("div", null, /* @__PURE__ */ React29.createElement(IconButton, {
3080
+ }, onClick && /* @__PURE__ */ React30.createElement("div", null, /* @__PURE__ */ React30.createElement(IconButton, {
3107
3081
  classNames: "text-xs uppercase",
3108
3082
  label: title ?? "Copy",
3109
3083
  icon: "ph--clipboard-text--regular",
@@ -3142,17 +3116,17 @@ var generator = ({ error, delay }) => {
3142
3116
 
3143
3117
  // src/components/Focus/Focus.tsx
3144
3118
  import { useArrowNavigationGroup as useArrowNavigationGroup2, useFocusableGroup, useMergedTabsterAttributes_unstable } from "@fluentui/react-tabster";
3145
- import { useComposedRefs as useComposedRefs2 } from "@radix-ui/react-compose-refs";
3146
- import { Primitive as Primitive14 } from "@radix-ui/react-primitive";
3147
- import { Slot as Slot14 } from "@radix-ui/react-slot";
3148
- import React30, { createContext as createContext8, useCallback as useCallback9, useContext as useContext4, useRef as useRef4, useState as useState10 } from "react";
3119
+ import { useComposedRefs as useComposedRefs3 } from "@radix-ui/react-compose-refs";
3120
+ import { Primitive as Primitive13 } from "@radix-ui/react-primitive";
3121
+ import { Slot as Slot13 } from "@radix-ui/react-slot";
3122
+ import React31, { createContext as createContext8, useCallback as useCallback10, useContext as useContext4, useRef as useRef5, useState as useState10 } from "react";
3149
3123
  var FOCUS_STATE_ATTR = "focus-state";
3150
3124
  var FocusContext = /* @__PURE__ */ createContext8({});
3151
3125
  var useFocus = () => useContext4(FocusContext);
3152
3126
  var Group3 = slottable(({ children, asChild, orientation = "vertical", border = false, ...props }, forwardedRef) => {
3153
- const Comp = asChild ? Slot14 : Primitive14.div;
3127
+ const Comp = asChild ? Slot13 : Primitive13.div;
3154
3128
  const { tx } = useThemeContext();
3155
- const rootRef = useRef4(null);
3129
+ const rootRef = useRef5(null);
3156
3130
  const focusableGroupAttrs = useFocusableGroup({
3157
3131
  tabBehavior: "limited-trap-focus"
3158
3132
  });
@@ -3163,20 +3137,20 @@ var Group3 = slottable(({ children, asChild, orientation = "vertical", border =
3163
3137
  const tabsterAttrs = useMergedTabsterAttributes_unstable(focusableGroupAttrs, arrowNavigationAttrs);
3164
3138
  const [state, setState] = useState10();
3165
3139
  const [groupHasFocus, setGroupHasFocus] = useState10(false);
3166
- const handleFocusIn = useCallback9(() => setGroupHasFocus(true), []);
3167
- const handleFocusOut = useCallback9((event) => {
3140
+ const handleFocusIn = useCallback10(() => setGroupHasFocus(true), []);
3141
+ const handleFocusOut = useCallback10((event) => {
3168
3142
  const related = event.relatedTarget;
3169
3143
  if (!related || !rootRef.current?.contains(related)) {
3170
3144
  setGroupHasFocus(false);
3171
3145
  }
3172
3146
  }, []);
3173
3147
  const { className, ...rest } = composableProps(props);
3174
- return /* @__PURE__ */ React30.createElement(FocusContext.Provider, {
3148
+ return /* @__PURE__ */ React31.createElement(FocusContext.Provider, {
3175
3149
  value: {
3176
3150
  setFocus: setState,
3177
3151
  groupHasFocus
3178
3152
  }
3179
- }, /* @__PURE__ */ React30.createElement(Comp, {
3153
+ }, /* @__PURE__ */ React31.createElement(Comp, {
3180
3154
  ...rest,
3181
3155
  tabIndex: 0,
3182
3156
  className: tx("focus.group", {
@@ -3188,11 +3162,11 @@ var Group3 = slottable(({ children, asChild, orientation = "vertical", border =
3188
3162
  },
3189
3163
  onBlur: handleFocusOut,
3190
3164
  onFocus: handleFocusIn,
3191
- ref: useComposedRefs2(rootRef, forwardedRef)
3165
+ ref: useComposedRefs3(rootRef, forwardedRef)
3192
3166
  }, children));
3193
3167
  });
3194
3168
  var Item4 = slottable(({ children, asChild, current, border = false, onCurrentChange, onClick, onFocus, onBlur, ...props }, forwardedRef) => {
3195
- const Comp = asChild ? Slot14 : Primitive14.div;
3169
+ const Comp = asChild ? Slot13 : Primitive13.div;
3196
3170
  const { tx } = useThemeContext();
3197
3171
  const focusableGroupAttrs = useFocusableGroup({
3198
3172
  ignoreDefaultKeydown: {
@@ -3200,27 +3174,27 @@ var Item4 = slottable(({ children, asChild, current, border = false, onCurrentCh
3200
3174
  }
3201
3175
  });
3202
3176
  const [focused, setFocused] = useState10(false);
3203
- const handleClick = useCallback9((event) => {
3177
+ const handleClick = useCallback10((event) => {
3204
3178
  onCurrentChange?.();
3205
3179
  onClick?.(event);
3206
3180
  }, [
3207
3181
  onCurrentChange,
3208
3182
  onClick
3209
3183
  ]);
3210
- const handleKeyDown = useCallback9((event) => {
3184
+ const handleKeyDown = useCallback10((event) => {
3211
3185
  if (event.key === "Enter") {
3212
3186
  onCurrentChange?.();
3213
3187
  }
3214
3188
  }, [
3215
3189
  onCurrentChange
3216
3190
  ]);
3217
- const handleFocus = useCallback9((event) => {
3191
+ const handleFocus = useCallback10((event) => {
3218
3192
  setFocused(true);
3219
3193
  onFocus?.(event);
3220
3194
  }, [
3221
3195
  onFocus
3222
3196
  ]);
3223
- const handleBlur = useCallback9((event) => {
3197
+ const handleBlur = useCallback10((event) => {
3224
3198
  setFocused(false);
3225
3199
  onBlur?.(event);
3226
3200
  }, [
@@ -3228,7 +3202,7 @@ var Item4 = slottable(({ children, asChild, current, border = false, onCurrentCh
3228
3202
  ]);
3229
3203
  const isCurrent = current ?? focused;
3230
3204
  const { className, ...rest } = composableProps(props);
3231
- return /* @__PURE__ */ React30.createElement(Comp, {
3205
+ return /* @__PURE__ */ React31.createElement(Comp, {
3232
3206
  ...rest,
3233
3207
  tabIndex: 0,
3234
3208
  className: tx("focus.item", {
@@ -3252,16 +3226,16 @@ var Focus = {
3252
3226
  import * as CheckboxPrimitive from "@radix-ui/react-checkbox";
3253
3227
  import { createContext as createContext9 } from "@radix-ui/react-context";
3254
3228
  import { useControllableState as useControllableState4 } from "@radix-ui/react-use-controllable-state";
3255
- import React32, { forwardRef as forwardRef22, useCallback as useCallback11, useEffect as useEffect6, useRef as useRef5, useState as useState12 } from "react";
3256
- import { useTranslation as useTranslation4 } from "react-i18next";
3229
+ import React33, { forwardRef as forwardRef23, useCallback as useCallback12, useEffect as useEffect6, useRef as useRef6, useState as useState12 } from "react";
3230
+ import { useTranslation as useTranslation5 } from "react-i18next";
3257
3231
  import { DescriptionAndValidation as DescriptionAndValidationPrimitive, Description as DescriptionPrimitive, INPUT_NAME as INPUT_NAME2, InputRoot, Label as LabelPrimitive, PinInput as PinInputPrimitive, TextArea as TextAreaPrimitive, TextInput as TextInputPrimitive, Validation as ValidationPrimitive, useInputContext as useInputContext2 } from "@dxos/react-input";
3258
- import { mx as mx10 } from "@dxos/ui-theme";
3259
- import { translationKey as translationKey4 } from "#translations";
3232
+ import { mx as mx11 } from "@dxos/ui-theme";
3233
+ import { translationKey as translationKey5 } from "#translations";
3260
3234
 
3261
3235
  // src/components/Input/SegmentedInput.tsx
3262
3236
  import { CalendarDate as CalendarDate2, CalendarDateTime, parseDate as parseDate2, parseDateTime, parseTime } from "@internationalized/date";
3263
3237
  import { useControllableState as useControllableState3 } from "@radix-ui/react-use-controllable-state";
3264
- import React31, { forwardRef as forwardRef21, useCallback as useCallback10, useState as useState11 } from "react";
3238
+ import React32, { forwardRef as forwardRef22, useCallback as useCallback11, useState as useState11 } from "react";
3265
3239
  import { DateField, DateInput, DateSegment, TimeField } from "react-aria-components";
3266
3240
  import { INPUT_NAME, useInputContext } from "@dxos/react-input";
3267
3241
  var tryParse = (parser, value) => {
@@ -3285,19 +3259,19 @@ var BIDI_FORMAT_RE = /^[‪-‮⁦-⁩]+$/;
3285
3259
  var renderSegment = (segment) => {
3286
3260
  if (segment.type === "literal") {
3287
3261
  if (BIDI_FORMAT_RE.test(segment.text)) {
3288
- return /* @__PURE__ */ React31.createElement("span", {
3262
+ return /* @__PURE__ */ React32.createElement("span", {
3289
3263
  "aria-hidden": true,
3290
3264
  className: "select-none w-[2ch] first:hidden last:hidden"
3291
3265
  });
3292
3266
  }
3293
3267
  if (segment.text.includes(",")) {
3294
- return /* @__PURE__ */ React31.createElement("span", {
3268
+ return /* @__PURE__ */ React32.createElement("span", {
3295
3269
  "aria-hidden": true,
3296
3270
  className: "select-none"
3297
3271
  }, " ");
3298
3272
  }
3299
3273
  }
3300
- return /* @__PURE__ */ React31.createElement(DateSegment, {
3274
+ return /* @__PURE__ */ React32.createElement(DateSegment, {
3301
3275
  segment,
3302
3276
  className: segmentClass
3303
3277
  });
@@ -3319,7 +3293,7 @@ var useFieldChrome = ({ __inputScope, density: densityProp, elevation: elevation
3319
3293
  };
3320
3294
  var PickerWrapper = ({ pickerValue, onPickerChange, withTime, disabled = false, children, calendar }) => {
3321
3295
  const [open, setOpen] = useState11(false);
3322
- const openPicker = useCallback10(() => {
3296
+ const openPicker = useCallback11(() => {
3323
3297
  if (!disabled) {
3324
3298
  setOpen(true);
3325
3299
  }
@@ -3327,18 +3301,18 @@ var PickerWrapper = ({ pickerValue, onPickerChange, withTime, disabled = false,
3327
3301
  disabled
3328
3302
  ]);
3329
3303
  useInputTrigger(disabled ? void 0 : openPicker);
3330
- return /* @__PURE__ */ React31.createElement(DatePicker.Root, {
3304
+ return /* @__PURE__ */ React32.createElement(DatePicker.Root, {
3331
3305
  mode: "single",
3332
3306
  withTime,
3333
3307
  value: pickerValue,
3334
3308
  onValueChange: disabled ? void 0 : onPickerChange,
3335
3309
  open,
3336
3310
  onOpenChange: setOpen
3337
- }, /* @__PURE__ */ React31.createElement(Popover.Anchor, {
3311
+ }, /* @__PURE__ */ React32.createElement(Popover.Anchor, {
3338
3312
  asChild: true
3339
- }, children), /* @__PURE__ */ React31.createElement(DatePicker.Content, null, calendar));
3313
+ }, children), /* @__PURE__ */ React32.createElement(DatePicker.Content, null, calendar));
3340
3314
  };
3341
- var SegmentedDate = /* @__PURE__ */ forwardRef21(({ __inputScope, classNames, density: densityProp, elevation: elevationProp, variant, value, defaultValue, onValueChange, disabled, autoFocus, id, "aria-label": ariaLabel }, forwardedRef) => {
3315
+ var SegmentedDate = /* @__PURE__ */ forwardRef22(({ __inputScope, classNames, density: densityProp, elevation: elevationProp, variant, value, defaultValue, onValueChange, disabled, autoFocus, id, "aria-label": ariaLabel }, forwardedRef) => {
3342
3316
  const { tx, density, elevation, validationValence, contextId, descriptionId, errorMessageId } = useFieldChrome({
3343
3317
  __inputScope,
3344
3318
  density: densityProp,
@@ -3359,7 +3333,7 @@ var SegmentedDate = /* @__PURE__ */ forwardRef21(({ __inputScope, classNames, de
3359
3333
  granularity: "day",
3360
3334
  shouldForceLeadingZeros: true
3361
3335
  };
3362
- const field = /* @__PURE__ */ React31.createElement(DateField, fieldProps, /* @__PURE__ */ React31.createElement(DateInput, {
3336
+ const field = /* @__PURE__ */ React32.createElement(DateField, fieldProps, /* @__PURE__ */ React32.createElement(DateInput, {
3363
3337
  ref: forwardedRef,
3364
3338
  ...id ?? contextId ? {
3365
3339
  id: id ?? contextId
@@ -3380,16 +3354,16 @@ var SegmentedDate = /* @__PURE__ */ forwardRef21(({ __inputScope, classNames, de
3380
3354
  validationValence
3381
3355
  }, fieldClass, classNames)
3382
3356
  }, renderSegment));
3383
- return /* @__PURE__ */ React31.createElement(PickerWrapper, {
3357
+ return /* @__PURE__ */ React32.createElement(PickerWrapper, {
3384
3358
  pickerValue: parsed ? new Date(parsed.year, parsed.month - 1, parsed.day) : void 0,
3385
3359
  onPickerChange: (next) => setStringValue(next ? formatCalendarDate(toCalendarDate2(next)) : ""),
3386
3360
  withTime: false,
3387
3361
  disabled,
3388
- calendar: /* @__PURE__ */ React31.createElement(DatePicker.Calendar, null)
3362
+ calendar: /* @__PURE__ */ React32.createElement(DatePicker.Calendar, null)
3389
3363
  }, field);
3390
3364
  });
3391
3365
  SegmentedDate.displayName = "Input.SegmentedDate";
3392
- var SegmentedTime = /* @__PURE__ */ forwardRef21(({ __inputScope, classNames, density: densityProp, elevation: elevationProp, variant, value, defaultValue, onValueChange, disabled, autoFocus, id, hourCycle = 24, "aria-label": ariaLabel }, forwardedRef) => {
3366
+ var SegmentedTime = /* @__PURE__ */ forwardRef22(({ __inputScope, classNames, density: densityProp, elevation: elevationProp, variant, value, defaultValue, onValueChange, disabled, autoFocus, id, hourCycle = 24, "aria-label": ariaLabel }, forwardedRef) => {
3393
3367
  const { tx, density, elevation, validationValence, contextId, descriptionId, errorMessageId } = useFieldChrome({
3394
3368
  __inputScope,
3395
3369
  density: densityProp,
@@ -3411,7 +3385,7 @@ var SegmentedTime = /* @__PURE__ */ forwardRef21(({ __inputScope, classNames, de
3411
3385
  hourCycle,
3412
3386
  shouldForceLeadingZeros: true
3413
3387
  };
3414
- return /* @__PURE__ */ React31.createElement(TimeField, fieldProps, /* @__PURE__ */ React31.createElement(DateInput, {
3388
+ return /* @__PURE__ */ React32.createElement(TimeField, fieldProps, /* @__PURE__ */ React32.createElement(DateInput, {
3415
3389
  ref: forwardedRef,
3416
3390
  ...id ?? contextId ? {
3417
3391
  id: id ?? contextId
@@ -3434,7 +3408,7 @@ var SegmentedTime = /* @__PURE__ */ forwardRef21(({ __inputScope, classNames, de
3434
3408
  }, renderSegment));
3435
3409
  });
3436
3410
  SegmentedTime.displayName = "Input.SegmentedTime";
3437
- var SegmentedDateTime = /* @__PURE__ */ forwardRef21(({ __inputScope, classNames, density: densityProp, elevation: elevationProp, variant, value, defaultValue, onValueChange, disabled, autoFocus, id, hourCycle = 24, "aria-label": ariaLabel }, forwardedRef) => {
3411
+ var SegmentedDateTime = /* @__PURE__ */ forwardRef22(({ __inputScope, classNames, density: densityProp, elevation: elevationProp, variant, value, defaultValue, onValueChange, disabled, autoFocus, id, hourCycle = 24, "aria-label": ariaLabel }, forwardedRef) => {
3438
3412
  const { tx, density, elevation, validationValence, contextId, descriptionId, errorMessageId } = useFieldChrome({
3439
3413
  __inputScope,
3440
3414
  density: densityProp,
@@ -3456,7 +3430,7 @@ var SegmentedDateTime = /* @__PURE__ */ forwardRef21(({ __inputScope, classNames
3456
3430
  hourCycle,
3457
3431
  shouldForceLeadingZeros: true
3458
3432
  };
3459
- const field = /* @__PURE__ */ React31.createElement(DateField, fieldProps, /* @__PURE__ */ React31.createElement(DateInput, {
3433
+ const field = /* @__PURE__ */ React32.createElement(DateField, fieldProps, /* @__PURE__ */ React32.createElement(DateInput, {
3460
3434
  ref: forwardedRef,
3461
3435
  ...id ?? contextId ? {
3462
3436
  id: id ?? contextId
@@ -3477,12 +3451,12 @@ var SegmentedDateTime = /* @__PURE__ */ forwardRef21(({ __inputScope, classNames
3477
3451
  validationValence
3478
3452
  }, fieldClass, classNames)
3479
3453
  }, renderSegment));
3480
- return /* @__PURE__ */ React31.createElement(PickerWrapper, {
3454
+ return /* @__PURE__ */ React32.createElement(PickerWrapper, {
3481
3455
  pickerValue: parsed ? new Date(parsed.year, parsed.month - 1, parsed.day, parsed.hour, parsed.minute) : void 0,
3482
3456
  onPickerChange: (next) => setStringValue(next ? formatCalendarDateTime(new CalendarDateTime(next.getFullYear(), next.getMonth() + 1, next.getDate(), next.getHours(), next.getMinutes())) : ""),
3483
3457
  withTime: true,
3484
3458
  disabled,
3485
- calendar: /* @__PURE__ */ React31.createElement(DatePicker.Calendar, null)
3459
+ calendar: /* @__PURE__ */ React32.createElement(DatePicker.Calendar, null)
3486
3460
  }, field);
3487
3461
  });
3488
3462
  SegmentedDateTime.displayName = "Input.SegmentedDateTime";
@@ -3507,10 +3481,10 @@ var useInputTrigger = (handler) => {
3507
3481
  handler
3508
3482
  ]);
3509
3483
  };
3510
- var Root10 = (props) => {
3511
- const handlerRef = useRef5(null);
3484
+ var Root8 = (props) => {
3485
+ const handlerRef = useRef6(null);
3512
3486
  const [hasTrigger, setHasTrigger] = useState12(false);
3513
- const registerTrigger = useCallback11((handler) => {
3487
+ const registerTrigger = useCallback12((handler) => {
3514
3488
  handlerRef.current = handler;
3515
3489
  setHasTrigger(true);
3516
3490
  return () => {
@@ -3520,23 +3494,23 @@ var Root10 = (props) => {
3520
3494
  }
3521
3495
  };
3522
3496
  }, []);
3523
- const trigger = useCallback11(() => {
3497
+ const trigger = useCallback12(() => {
3524
3498
  handlerRef.current?.();
3525
3499
  }, []);
3526
- return /* @__PURE__ */ React32.createElement(InputTriggerProvider, {
3500
+ return /* @__PURE__ */ React33.createElement(InputTriggerProvider, {
3527
3501
  registerTrigger,
3528
3502
  trigger,
3529
3503
  hasTrigger
3530
- }, /* @__PURE__ */ React32.createElement(InputRoot, props));
3504
+ }, /* @__PURE__ */ React33.createElement(InputRoot, props));
3531
3505
  };
3532
- Root10.displayName = "Input.Root";
3533
- var TriggerIcon = /* @__PURE__ */ forwardRef22(({ classNames, icon = "ph--calendar--regular", "aria-label": ariaLabel, label, ...props }, forwardedRef) => {
3534
- const { t } = useTranslation4(translationKey4);
3506
+ Root8.displayName = "Input.Root";
3507
+ var TriggerIcon = /* @__PURE__ */ forwardRef23(({ classNames, icon = "ph--calendar--regular", "aria-label": ariaLabel, label, ...props }, forwardedRef) => {
3508
+ const { t } = useTranslation5(translationKey5);
3535
3509
  const ctx = useInputTriggerContext("Input.TriggerIcon");
3536
3510
  if (!ctx.hasTrigger) {
3537
3511
  return null;
3538
3512
  }
3539
- return /* @__PURE__ */ React32.createElement(IconButton, {
3513
+ return /* @__PURE__ */ React33.createElement(IconButton, {
3540
3514
  ref: forwardedRef,
3541
3515
  variant: "ghost",
3542
3516
  icon,
@@ -3549,9 +3523,9 @@ var TriggerIcon = /* @__PURE__ */ forwardRef22(({ classNames, icon = "ph--calend
3549
3523
  });
3550
3524
  });
3551
3525
  TriggerIcon.displayName = "Input.TriggerIcon";
3552
- var Label3 = /* @__PURE__ */ forwardRef22(({ classNames, children, srOnly, ...props }, forwardedRef) => {
3526
+ var Label3 = /* @__PURE__ */ forwardRef23(({ classNames, children, srOnly, ...props }, forwardedRef) => {
3553
3527
  const { tx } = useThemeContext();
3554
- return /* @__PURE__ */ React32.createElement(LabelPrimitive, {
3528
+ return /* @__PURE__ */ React33.createElement(LabelPrimitive, {
3555
3529
  ...props,
3556
3530
  className: tx("input.label", {
3557
3531
  srOnly
@@ -3560,9 +3534,9 @@ var Label3 = /* @__PURE__ */ forwardRef22(({ classNames, children, srOnly, ...pr
3560
3534
  }, children);
3561
3535
  });
3562
3536
  Label3.displayName = "Input.Label";
3563
- var Description3 = /* @__PURE__ */ forwardRef22(({ classNames, children, srOnly, ...props }, forwardedRef) => {
3537
+ var Description3 = /* @__PURE__ */ forwardRef23(({ classNames, children, srOnly, ...props }, forwardedRef) => {
3564
3538
  const { tx } = useThemeContext();
3565
- return /* @__PURE__ */ React32.createElement(DescriptionPrimitive, {
3539
+ return /* @__PURE__ */ React33.createElement(DescriptionPrimitive, {
3566
3540
  ...props,
3567
3541
  className: tx("input.description", {
3568
3542
  srOnly
@@ -3571,10 +3545,10 @@ var Description3 = /* @__PURE__ */ forwardRef22(({ classNames, children, srOnly,
3571
3545
  }, children);
3572
3546
  });
3573
3547
  Description3.displayName = "Input.Description";
3574
- var Validation = /* @__PURE__ */ forwardRef22(({ __inputScope, classNames, children, srOnly, ...props }, forwardedRef) => {
3548
+ var Validation = /* @__PURE__ */ forwardRef23(({ __inputScope, classNames, children, srOnly, ...props }, forwardedRef) => {
3575
3549
  const { tx } = useThemeContext();
3576
3550
  const { validationValence } = useInputContext2(INPUT_NAME2, __inputScope);
3577
- return /* @__PURE__ */ React32.createElement(ValidationPrimitive, {
3551
+ return /* @__PURE__ */ React33.createElement(ValidationPrimitive, {
3578
3552
  ...props,
3579
3553
  className: tx("input.validation", {
3580
3554
  srOnly,
@@ -3584,9 +3558,9 @@ var Validation = /* @__PURE__ */ forwardRef22(({ __inputScope, classNames, child
3584
3558
  }, children);
3585
3559
  });
3586
3560
  Validation.displayName = "Input.Validation";
3587
- var DescriptionAndValidation = /* @__PURE__ */ forwardRef22(({ classNames, children, srOnly, ...props }, forwardedRef) => {
3561
+ var DescriptionAndValidation = /* @__PURE__ */ forwardRef23(({ classNames, children, srOnly, ...props }, forwardedRef) => {
3588
3562
  const { tx } = useThemeContext();
3589
- return /* @__PURE__ */ React32.createElement(DescriptionAndValidationPrimitive, {
3563
+ return /* @__PURE__ */ React33.createElement(DescriptionAndValidationPrimitive, {
3590
3564
  ...props,
3591
3565
  className: tx("input.descriptionAndValidation", {
3592
3566
  srOnly
@@ -3595,12 +3569,12 @@ var DescriptionAndValidation = /* @__PURE__ */ forwardRef22(({ classNames, child
3595
3569
  }, children);
3596
3570
  });
3597
3571
  DescriptionAndValidation.displayName = "Input.DescriptionAndValidation";
3598
- var PinInput = /* @__PURE__ */ forwardRef22(({ classNames, density: propsDensity, elevation: propsElevation, ...props }, forwardedRef) => {
3572
+ var PinInput = /* @__PURE__ */ forwardRef23(({ classNames, density: propsDensity, elevation: propsElevation, ...props }, forwardedRef) => {
3599
3573
  const { hasIosKeyboard: hasIosKeyboard2 } = useThemeContext();
3600
3574
  const { tx } = useThemeContext();
3601
3575
  const density = useDensityContext(propsDensity);
3602
3576
  const elevation = useElevationContext(propsElevation);
3603
- return /* @__PURE__ */ React32.createElement(PinInputPrimitive, {
3577
+ return /* @__PURE__ */ React33.createElement(PinInputPrimitive, {
3604
3578
  ...props,
3605
3579
  ...props.autoFocus && !hasIosKeyboard2 && {
3606
3580
  autoFocus: true
@@ -3617,13 +3591,13 @@ var PinInput = /* @__PURE__ */ forwardRef22(({ classNames, density: propsDensity
3617
3591
  });
3618
3592
  });
3619
3593
  PinInput.displayName = "Input.PinInput";
3620
- var TextInput = /* @__PURE__ */ forwardRef22(({ __inputScope, classNames, density: densityProp, elevation: elevationProp, variant, noAutoFill, ...props }, forwardedRef) => {
3594
+ var TextInput = /* @__PURE__ */ forwardRef23(({ __inputScope, classNames, density: densityProp, elevation: elevationProp, variant, noAutoFill, ...props }, forwardedRef) => {
3621
3595
  const { hasIosKeyboard: hasIosKeyboard2 } = useThemeContext();
3622
3596
  const { tx } = useThemeContext();
3623
3597
  const density = useDensityContext(densityProp);
3624
3598
  const elevation = useElevationContext(elevationProp);
3625
3599
  const { validationValence } = useInputContext2(INPUT_NAME2, __inputScope);
3626
- return /* @__PURE__ */ React32.createElement(TextInputPrimitive, {
3600
+ return /* @__PURE__ */ React33.createElement(TextInputPrimitive, {
3627
3601
  ...props,
3628
3602
  "data-1p-ignore": noAutoFill,
3629
3603
  className: tx("input.input", {
@@ -3640,13 +3614,13 @@ var TextInput = /* @__PURE__ */ forwardRef22(({ __inputScope, classNames, densit
3640
3614
  });
3641
3615
  });
3642
3616
  TextInput.displayName = "Input.TextInput";
3643
- var TextArea = /* @__PURE__ */ forwardRef22(({ __inputScope, classNames, density: propsDensity, elevation: propsElevation, variant, ...props }, forwardedRef) => {
3617
+ var TextArea = /* @__PURE__ */ forwardRef23(({ __inputScope, classNames, density: propsDensity, elevation: propsElevation, variant, ...props }, forwardedRef) => {
3644
3618
  const { hasIosKeyboard: hasIosKeyboard2 } = useThemeContext();
3645
3619
  const { tx } = useThemeContext();
3646
3620
  const density = useDensityContext(propsDensity);
3647
3621
  const elevation = useElevationContext(propsElevation);
3648
3622
  const { validationValence } = useInputContext2(INPUT_NAME2, __inputScope);
3649
- return /* @__PURE__ */ React32.createElement(TextAreaPrimitive, {
3623
+ return /* @__PURE__ */ React33.createElement(TextAreaPrimitive, {
3650
3624
  ...props,
3651
3625
  className: tx("input.textArea", {
3652
3626
  variant,
@@ -3662,7 +3636,7 @@ var TextArea = /* @__PURE__ */ forwardRef22(({ __inputScope, classNames, density
3662
3636
  });
3663
3637
  });
3664
3638
  TextArea.displayName = "Input.TextArea";
3665
- var Checkbox = /* @__PURE__ */ forwardRef22(({ __inputScope, classNames, checked: propsChecked, defaultChecked: propsDefaultChecked, onCheckedChange: propsOnCheckedChange, size, ...props }, forwardedRef) => {
3639
+ var Checkbox = /* @__PURE__ */ forwardRef23(({ __inputScope, classNames, checked: propsChecked, defaultChecked: propsDefaultChecked, onCheckedChange: propsOnCheckedChange, size, ...props }, forwardedRef) => {
3666
3640
  const [checked, onCheckedChange] = useControllableState4({
3667
3641
  prop: propsChecked,
3668
3642
  defaultProp: propsDefaultChecked,
@@ -3670,7 +3644,7 @@ var Checkbox = /* @__PURE__ */ forwardRef22(({ __inputScope, classNames, checked
3670
3644
  });
3671
3645
  const { id, validationValence, descriptionId, errorMessageId } = useInputContext2(INPUT_NAME2, __inputScope);
3672
3646
  const { tx } = useThemeContext();
3673
- return /* @__PURE__ */ React32.createElement(CheckboxPrimitive.Root, {
3647
+ return /* @__PURE__ */ React33.createElement(CheckboxPrimitive.Root, {
3674
3648
  ...props,
3675
3649
  checked,
3676
3650
  onCheckedChange,
@@ -3684,7 +3658,7 @@ var Checkbox = /* @__PURE__ */ forwardRef22(({ __inputScope, classNames, checked
3684
3658
  size
3685
3659
  }, "shrink-0", classNames),
3686
3660
  ref: forwardedRef
3687
- }, /* @__PURE__ */ React32.createElement(Icon, {
3661
+ }, /* @__PURE__ */ React33.createElement(Icon, {
3688
3662
  icon: checked === "indeterminate" ? "ph--minus--regular" : "ph--check--regular",
3689
3663
  classNames: tx("input.checkboxIndicator", {
3690
3664
  size,
@@ -3693,16 +3667,16 @@ var Checkbox = /* @__PURE__ */ forwardRef22(({ __inputScope, classNames, checked
3693
3667
  }));
3694
3668
  });
3695
3669
  Checkbox.displayName = "Input.Checkbox";
3696
- var Switch = /* @__PURE__ */ forwardRef22(({ __inputScope, classNames, checked: propsChecked, defaultChecked: propsDefaultChecked, onCheckedChange: propsOnCheckedChange, ...props }, forwardedRef) => {
3670
+ var Switch = /* @__PURE__ */ forwardRef23(({ __inputScope, classNames, checked: propsChecked, defaultChecked: propsDefaultChecked, onCheckedChange: propsOnCheckedChange, ...props }, forwardedRef) => {
3697
3671
  const [checked, onCheckedChange] = useControllableState4({
3698
3672
  prop: propsChecked,
3699
3673
  defaultProp: propsDefaultChecked ?? false,
3700
3674
  onChange: propsOnCheckedChange
3701
3675
  });
3702
3676
  const { id, validationValence, descriptionId, errorMessageId } = useInputContext2(INPUT_NAME2, __inputScope);
3703
- return /* @__PURE__ */ React32.createElement("input", {
3677
+ return /* @__PURE__ */ React33.createElement("input", {
3704
3678
  type: "checkbox",
3705
- className: mx10("dx-checkbox--switch dx-focus-ring", classNames),
3679
+ className: mx11("dx-checkbox--switch dx-focus-ring", classNames),
3706
3680
  checked,
3707
3681
  onChange: (event) => {
3708
3682
  onCheckedChange(event.target.checked);
@@ -3722,7 +3696,7 @@ var Time = SegmentedTime;
3722
3696
  var Date2 = SegmentedDate;
3723
3697
  var DateTime = SegmentedDateTime;
3724
3698
  var Input = {
3725
- Root: Root10,
3699
+ Root: Root8,
3726
3700
  TriggerIcon,
3727
3701
  PinInput,
3728
3702
  TextInput,
@@ -3739,13 +3713,13 @@ var Input = {
3739
3713
  };
3740
3714
 
3741
3715
  // src/components/List/List.tsx
3742
- import { Primitive as Primitive15 } from "@radix-ui/react-primitive";
3743
- import { Slot as Slot15 } from "@radix-ui/react-slot";
3744
- import React34, { forwardRef as forwardRef23 } from "react";
3716
+ import { Primitive as Primitive14 } from "@radix-ui/react-primitive";
3717
+ import { Slot as Slot14 } from "@radix-ui/react-slot";
3718
+ import React35, { forwardRef as forwardRef24 } from "react";
3745
3719
  import { LIST_ITEM_NAME, LIST_NAME, ListItemCollapsibleContent, List as ListPrimitive, ListItem as ListPrimitiveItem, ListItemHeading as ListPrimitiveItemHeading, ListItemOpenTrigger as ListPrimitiveItemOpenTrigger, useListContext, useListItemContext } from "@dxos/react-list";
3746
3720
 
3747
3721
  // src/components/List/ListDropIndicator.tsx
3748
- import React33 from "react";
3722
+ import React34 from "react";
3749
3723
  var edgeToOrientationMap = {
3750
3724
  top: "horizontal",
3751
3725
  bottom: "horizontal",
@@ -3767,7 +3741,7 @@ var terminalSize = 8;
3767
3741
  var offsetToAlignTerminalWithLine = (strokeSize - terminalSize) / 2;
3768
3742
  var ListDropIndicator = ({ edge, gap = 0, lineInset = 0, terminalInset = lineInset - terminalSize }) => {
3769
3743
  const orientation = edgeToOrientationMap[edge];
3770
- return /* @__PURE__ */ React33.createElement("div", {
3744
+ return /* @__PURE__ */ React34.createElement("div", {
3771
3745
  style: {
3772
3746
  "--line-thickness": `${strokeSize}px`,
3773
3747
  "--line-offset": `calc(-0.5 * (${gap}px + ${strokeSize}px))`,
@@ -3786,19 +3760,19 @@ var List = composable(({ children, ...props }, forwardedRef) => {
3786
3760
  const { tx } = useThemeContext();
3787
3761
  const density = useDensityContext(props.density);
3788
3762
  const { className, ...rest } = composableProps(props);
3789
- return /* @__PURE__ */ React34.createElement(DensityProvider, {
3763
+ return /* @__PURE__ */ React35.createElement(DensityProvider, {
3790
3764
  density
3791
- }, /* @__PURE__ */ React34.createElement(ListPrimitive, {
3765
+ }, /* @__PURE__ */ React35.createElement(ListPrimitive, {
3792
3766
  ...rest,
3793
3767
  className: tx("list.root", {}, className),
3794
3768
  ref: forwardedRef
3795
3769
  }, children));
3796
3770
  });
3797
- var ListItemEndcap = /* @__PURE__ */ forwardRef23(({ children, classNames, asChild, ...props }, forwardedRef) => {
3798
- const Comp = asChild ? Slot15 : Primitive15.div;
3771
+ var ListItemEndcap = /* @__PURE__ */ forwardRef24(({ children, classNames, asChild, ...props }, forwardedRef) => {
3772
+ const Comp = asChild ? Slot14 : Primitive14.div;
3799
3773
  const density = useDensityContext();
3800
3774
  const { tx } = useThemeContext();
3801
- return /* @__PURE__ */ React34.createElement(Comp, {
3775
+ return /* @__PURE__ */ React35.createElement(Comp, {
3802
3776
  ...!asChild && {
3803
3777
  role: "none"
3804
3778
  },
@@ -3812,44 +3786,44 @@ var ListItemEndcap = /* @__PURE__ */ forwardRef23(({ children, classNames, asChi
3812
3786
  var MockListItemOpenTrigger = ({ classNames, ...props }) => {
3813
3787
  const density = useDensityContext();
3814
3788
  const { tx } = useThemeContext();
3815
- return /* @__PURE__ */ React34.createElement("div", {
3789
+ return /* @__PURE__ */ React35.createElement("div", {
3816
3790
  ...props,
3817
3791
  className: tx("list.item.openTrigger", {
3818
3792
  density
3819
3793
  }, classNames)
3820
3794
  });
3821
3795
  };
3822
- var ListItemHeading = /* @__PURE__ */ forwardRef23(({ children, classNames, ...props }, forwardedRef) => {
3796
+ var ListItemHeading = /* @__PURE__ */ forwardRef24(({ children, classNames, ...props }, forwardedRef) => {
3823
3797
  const { tx } = useThemeContext();
3824
3798
  const density = useDensityContext();
3825
- return /* @__PURE__ */ React34.createElement(ListPrimitiveItemHeading, {
3799
+ return /* @__PURE__ */ React35.createElement(ListPrimitiveItemHeading, {
3826
3800
  ...props,
3827
3801
  className: tx("list.item.heading", {
3828
3802
  density
3829
3803
  }, classNames),
3830
3804
  ref: forwardedRef
3831
- }, /* @__PURE__ */ React34.createElement("span", null, children));
3805
+ }, /* @__PURE__ */ React35.createElement("span", null, children));
3832
3806
  });
3833
- var ListItemOpenTrigger = /* @__PURE__ */ forwardRef23(({ __listItemScope, classNames, children, ...props }, forwardedRef) => {
3807
+ var ListItemOpenTrigger = /* @__PURE__ */ forwardRef24(({ __listItemScope, classNames, children, ...props }, forwardedRef) => {
3834
3808
  const { tx } = useThemeContext();
3835
3809
  const density = useDensityContext();
3836
3810
  const { open } = useListItemContext(LIST_ITEM_NAME, __listItemScope);
3837
- return /* @__PURE__ */ React34.createElement(ListPrimitiveItemOpenTrigger, {
3811
+ return /* @__PURE__ */ React35.createElement(ListPrimitiveItemOpenTrigger, {
3838
3812
  ...props,
3839
3813
  className: tx("list.item.openTrigger", {
3840
3814
  density
3841
3815
  }, classNames),
3842
3816
  ref: forwardedRef
3843
- }, children || /* @__PURE__ */ React34.createElement(Icon, {
3817
+ }, children || /* @__PURE__ */ React35.createElement(Icon, {
3844
3818
  size: 3,
3845
3819
  icon: open ? "ph--caret-down--bold" : "ph--caret-right--bold",
3846
3820
  classNames: tx("list.item.openTriggerIcon", {})
3847
3821
  }));
3848
3822
  });
3849
- var ListItemRoot = /* @__PURE__ */ forwardRef23(({ classNames, children, ...props }, forwardedRef) => {
3823
+ var ListItemRoot = /* @__PURE__ */ forwardRef24(({ classNames, children, ...props }, forwardedRef) => {
3850
3824
  const { tx } = useThemeContext();
3851
3825
  const density = useDensityContext();
3852
- return /* @__PURE__ */ React34.createElement(ListPrimitiveItem, {
3826
+ return /* @__PURE__ */ React35.createElement(ListPrimitiveItem, {
3853
3827
  ...props,
3854
3828
  className: tx("list.item.root", {
3855
3829
  density,
@@ -3869,10 +3843,10 @@ var ListItem = {
3869
3843
  };
3870
3844
 
3871
3845
  // src/components/List/Tree.tsx
3872
- import React36, { forwardRef as forwardRef24 } from "react";
3846
+ import React37, { forwardRef as forwardRef25 } from "react";
3873
3847
 
3874
3848
  // src/components/List/TreeDropIndicator.tsx
3875
- import React35 from "react";
3849
+ import React36 from "react";
3876
3850
  var edgeToOrientationMap2 = {
3877
3851
  "reorder-above": "sibling",
3878
3852
  "reorder-below": "sibling",
@@ -3902,7 +3876,7 @@ var TreeDropIndicator = ({ instruction, gap = 0 }) => {
3902
3876
  if (isBlocked) {
3903
3877
  return null;
3904
3878
  }
3905
- return /* @__PURE__ */ React35.createElement("div", {
3879
+ return /* @__PURE__ */ React36.createElement("div", {
3906
3880
  style: {
3907
3881
  "--line-thickness": `${strokeSize2}px`,
3908
3882
  "--line-offset": `${lineOffset}`,
@@ -3917,22 +3891,22 @@ var TreeDropIndicator = ({ instruction, gap = 0 }) => {
3917
3891
  };
3918
3892
 
3919
3893
  // src/components/List/Tree.tsx
3920
- var TreeRoot = /* @__PURE__ */ forwardRef24((props, forwardedRef) => {
3921
- return /* @__PURE__ */ React36.createElement(List, {
3894
+ var TreeRoot = /* @__PURE__ */ forwardRef25((props, forwardedRef) => {
3895
+ return /* @__PURE__ */ React37.createElement(List, {
3922
3896
  ...props,
3923
3897
  ref: forwardedRef
3924
3898
  });
3925
3899
  });
3926
- var TreeBranch = /* @__PURE__ */ forwardRef24(({ __listScope, ...props }, forwardedRef) => {
3900
+ var TreeBranch = /* @__PURE__ */ forwardRef25(({ __listScope, ...props }, forwardedRef) => {
3927
3901
  const { headingId } = useListItemContext(LIST_ITEM_NAME, __listScope);
3928
- return /* @__PURE__ */ React36.createElement(List, {
3902
+ return /* @__PURE__ */ React37.createElement(List, {
3929
3903
  ...props,
3930
3904
  "aria-labelledby": headingId,
3931
3905
  ref: forwardedRef
3932
3906
  });
3933
3907
  });
3934
- var TreeItemRoot = /* @__PURE__ */ forwardRef24((props, forwardedRef) => {
3935
- return /* @__PURE__ */ React36.createElement(ListItem.Root, {
3908
+ var TreeItemRoot = /* @__PURE__ */ forwardRef25((props, forwardedRef) => {
3909
+ return /* @__PURE__ */ React37.createElement(ListItem.Root, {
3936
3910
  role: "treeitem",
3937
3911
  ...props,
3938
3912
  ref: forwardedRef
@@ -3958,10 +3932,10 @@ var TreeItem = {
3958
3932
  // src/components/List/Treegrid.tsx
3959
3933
  import { useFocusFinders } from "@fluentui/react-tabster";
3960
3934
  import { createContextScope as createContextScope3 } from "@radix-ui/react-context";
3961
- import { Primitive as Primitive16 } from "@radix-ui/react-primitive";
3962
- import { Slot as Slot16 } from "@radix-ui/react-slot";
3935
+ import { Primitive as Primitive15 } from "@radix-ui/react-primitive";
3936
+ import { Slot as Slot15 } from "@radix-ui/react-slot";
3963
3937
  import { useControllableState as useControllableState5 } from "@radix-ui/react-use-controllable-state";
3964
- import React37, { forwardRef as forwardRef25, useCallback as useCallback12 } from "react";
3938
+ import React38, { forwardRef as forwardRef26, useCallback as useCallback13 } from "react";
3965
3939
  var TREEGRID_ROW_NAME = "Treegrid.Row";
3966
3940
  var [createTreegridRowContext, createTreegridRowScope] = createContextScope3(TREEGRID_ROW_NAME, []);
3967
3941
  var [TreegridRowProvider, useTreegridRowContext] = createTreegridRowContext(TREEGRID_ROW_NAME);
@@ -3972,9 +3946,9 @@ var TreegridRoot = composable(({ asChild, classNames, children, style, gridTempl
3972
3946
  const { className, role: _role, ...rest } = composableProps(props, {
3973
3947
  classNames
3974
3948
  });
3975
- const Comp = asChild ? Slot16 : Primitive16.div;
3949
+ const Comp = asChild ? Slot15 : Primitive15.div;
3976
3950
  const { findFirstFocusable } = useFocusFinders();
3977
- const handleKeyDown = useCallback12((event) => {
3951
+ const handleKeyDown = useCallback13((event) => {
3978
3952
  switch (event.key) {
3979
3953
  case "ArrowDown":
3980
3954
  case "ArrowUp": {
@@ -4008,7 +3982,7 @@ var TreegridRoot = composable(({ asChild, classNames, children, style, gridTempl
4008
3982
  findFirstFocusable,
4009
3983
  onKeyDownProp
4010
3984
  ]);
4011
- return /* @__PURE__ */ React37.createElement(Comp, {
3985
+ return /* @__PURE__ */ React38.createElement(Comp, {
4012
3986
  role: "treegrid",
4013
3987
  ...rest,
4014
3988
  className: tx("treegrid.root", {}, className),
@@ -4020,9 +3994,9 @@ var TreegridRoot = composable(({ asChild, classNames, children, style, gridTempl
4020
3994
  ref: forwardedRef
4021
3995
  }, children);
4022
3996
  });
4023
- var TreegridRow = /* @__PURE__ */ forwardRef25(({ __treegridRowScope, asChild, classNames, children, id, parentOf, open: propsOpen, defaultOpen, onOpenChange: propsOnOpenChange, ...props }, forwardedRef) => {
3997
+ var TreegridRow = /* @__PURE__ */ forwardRef26(({ __treegridRowScope, asChild, classNames, children, id, parentOf, open: propsOpen, defaultOpen, onOpenChange: propsOnOpenChange, ...props }, forwardedRef) => {
4024
3998
  const { tx } = useThemeContext();
4025
- const Comp = asChild ? Slot16 : Primitive16.div;
3999
+ const Comp = asChild ? Slot15 : Primitive15.div;
4026
4000
  const pathParts = id.split(TREEGRID_PATH_SEPARATOR);
4027
4001
  const level = pathParts.length - 1;
4028
4002
  const [open, onOpenChange] = useControllableState5({
@@ -4030,11 +4004,11 @@ var TreegridRow = /* @__PURE__ */ forwardRef25(({ __treegridRowScope, asChild, c
4030
4004
  onChange: propsOnOpenChange,
4031
4005
  defaultProp: defaultOpen
4032
4006
  });
4033
- return /* @__PURE__ */ React37.createElement(TreegridRowProvider, {
4007
+ return /* @__PURE__ */ React38.createElement(TreegridRowProvider, {
4034
4008
  open,
4035
4009
  onOpenChange,
4036
4010
  scope: __treegridRowScope
4037
- }, /* @__PURE__ */ React37.createElement(Comp, {
4011
+ }, /* @__PURE__ */ React38.createElement(Comp, {
4038
4012
  role: "row",
4039
4013
  "aria-level": level,
4040
4014
  className: tx("treegrid.row", {
@@ -4049,9 +4023,9 @@ var TreegridRow = /* @__PURE__ */ forwardRef25(({ __treegridRowScope, asChild, c
4049
4023
  ref: forwardedRef
4050
4024
  }, children));
4051
4025
  });
4052
- var TreegridCell = /* @__PURE__ */ forwardRef25(({ classNames, children, indent, ...props }, forwardedRef) => {
4026
+ var TreegridCell = /* @__PURE__ */ forwardRef26(({ classNames, children, indent, ...props }, forwardedRef) => {
4053
4027
  const { tx } = useThemeContext();
4054
- return /* @__PURE__ */ React37.createElement("div", {
4028
+ return /* @__PURE__ */ React38.createElement("div", {
4055
4029
  role: "gridcell",
4056
4030
  className: tx("treegrid.cell", {
4057
4031
  indent
@@ -4070,17 +4044,17 @@ var Treegrid = {
4070
4044
  import { useFocusableGroup as useFocusableGroup2 } from "@fluentui/react-tabster";
4071
4045
  import { createContext as createContext10 } from "@radix-ui/react-context";
4072
4046
  import { DialogContent as DialogContent2, Root as DialogRoot2, DialogTitle as DialogTitle2 } from "@radix-ui/react-dialog";
4073
- import { Primitive as Primitive17 } from "@radix-ui/react-primitive";
4074
- import { Slot as Slot17 } from "@radix-ui/react-slot";
4047
+ import { Primitive as Primitive16 } from "@radix-ui/react-primitive";
4048
+ import { Slot as Slot16 } from "@radix-ui/react-slot";
4075
4049
  import { useControllableState as useControllableState6 } from "@radix-ui/react-use-controllable-state";
4076
- import React38, { forwardRef as forwardRef26, useCallback as useCallback14, useEffect as useEffect8, useRef as useRef6, useState as useState14 } from "react";
4050
+ import React39, { forwardRef as forwardRef27, useCallback as useCallback15, useEffect as useEffect8, useRef as useRef7, useState as useState14 } from "react";
4077
4051
  import { addEventListener } from "@dxos/async";
4078
4052
  import { log as log2 } from "@dxos/log";
4079
4053
  import { useForwardedRef, useMediaQuery } from "@dxos/react-hooks";
4080
4054
  import { osTranslations as osTranslations3 } from "@dxos/ui-theme";
4081
4055
 
4082
4056
  // src/components/Main/useSwipeToDismiss.ts
4083
- import { useCallback as useCallback13, useEffect as useEffect7, useState as useState13 } from "react";
4057
+ import { useCallback as useCallback14, useEffect as useEffect7, useState as useState13 } from "react";
4084
4058
  var useSwipeToDismiss = (ref, {
4085
4059
  onDismiss,
4086
4060
  dismissThreshold = 64,
@@ -4091,20 +4065,20 @@ var useSwipeToDismiss = (ref, {
4091
4065
  const $root = ref.current;
4092
4066
  const [motionState, setMotionState] = useState13(0);
4093
4067
  const [gestureStartX, setGestureStartX] = useState13(0);
4094
- const setIdle = useCallback13(() => {
4068
+ const setIdle = useCallback14(() => {
4095
4069
  setMotionState(0);
4096
4070
  $root?.style.removeProperty("inset-inline-start");
4097
4071
  $root?.style.setProperty("transition-duration", "200ms");
4098
4072
  }, [
4099
4073
  $root
4100
4074
  ]);
4101
- const setFollowing = useCallback13(() => {
4075
+ const setFollowing = useCallback14(() => {
4102
4076
  setMotionState(2);
4103
4077
  $root?.style.setProperty("transition-duration", "0ms");
4104
4078
  }, [
4105
4079
  $root
4106
4080
  ]);
4107
- const handlePointerDown = useCallback13(({ screenX }) => {
4081
+ const handlePointerDown = useCallback14(({ screenX }) => {
4108
4082
  if (motionState === 0) {
4109
4083
  setMotionState(1);
4110
4084
  setGestureStartX(screenX);
@@ -4112,7 +4086,7 @@ var useSwipeToDismiss = (ref, {
4112
4086
  }, [
4113
4087
  motionState
4114
4088
  ]);
4115
- const handlePointerMove = useCallback13(({ screenX }) => {
4089
+ const handlePointerMove = useCallback14(({ screenX }) => {
4116
4090
  if ($root) {
4117
4091
  const delta = Math.min(screenX - gestureStartX, 0);
4118
4092
  switch (motionState) {
@@ -4136,7 +4110,7 @@ var useSwipeToDismiss = (ref, {
4136
4110
  motionState,
4137
4111
  gestureStartX
4138
4112
  ]);
4139
- const handlePointerUp = useCallback13(() => {
4113
+ const handlePointerUp = useCallback14(() => {
4140
4114
  setIdle();
4141
4115
  }, [
4142
4116
  setIdle
@@ -4183,7 +4157,7 @@ var handleOpenAutoFocus = (event) => {
4183
4157
  };
4184
4158
  var landmarkAttr = "data-main-landmark";
4185
4159
  var useLandmarkMover = (propsOnKeyDown, landmark) => {
4186
- const handleKeyDown = useCallback14((event) => {
4160
+ const handleKeyDown = useCallback15((event) => {
4187
4161
  const target = event.target;
4188
4162
  if (event.target === event.currentTarget && event.key === "Tab" && target.hasAttribute(landmarkAttr)) {
4189
4163
  event.preventDefault();
@@ -4226,22 +4200,22 @@ var useSidebars = (consumerName) => {
4226
4200
  return {
4227
4201
  navigationSidebarState,
4228
4202
  setNavigationSidebarState,
4229
- toggleNavigationSidebar: useCallback14(() => setNavigationSidebarState(navigationSidebarState === "expanded" ? "closed" : "expanded"), [
4203
+ toggleNavigationSidebar: useCallback15(() => setNavigationSidebarState(navigationSidebarState === "expanded" ? "closed" : "expanded"), [
4230
4204
  navigationSidebarState,
4231
4205
  setNavigationSidebarState
4232
4206
  ]),
4233
- openNavigationSidebar: useCallback14(() => setNavigationSidebarState("expanded"), []),
4234
- collapseNavigationSidebar: useCallback14(() => setNavigationSidebarState("collapsed"), []),
4235
- closeNavigationSidebar: useCallback14(() => setNavigationSidebarState("closed"), []),
4207
+ openNavigationSidebar: useCallback15(() => setNavigationSidebarState("expanded"), []),
4208
+ collapseNavigationSidebar: useCallback15(() => setNavigationSidebarState("collapsed"), []),
4209
+ closeNavigationSidebar: useCallback15(() => setNavigationSidebarState("closed"), []),
4236
4210
  complementarySidebarState,
4237
4211
  setComplementarySidebarState,
4238
- toggleComplementarySidebar: useCallback14(() => setComplementarySidebarState(complementarySidebarState === "expanded" ? "closed" : "expanded"), [
4212
+ toggleComplementarySidebar: useCallback15(() => setComplementarySidebarState(complementarySidebarState === "expanded" ? "closed" : "expanded"), [
4239
4213
  complementarySidebarState,
4240
4214
  setComplementarySidebarState
4241
4215
  ]),
4242
- openComplementarySidebar: useCallback14(() => setComplementarySidebarState("expanded"), []),
4243
- collapseComplementarySidebar: useCallback14(() => setComplementarySidebarState("collapsed"), []),
4244
- closeComplementarySidebar: useCallback14(() => setComplementarySidebarState("closed"), [])
4216
+ openComplementarySidebar: useCallback15(() => setComplementarySidebarState("expanded"), []),
4217
+ collapseComplementarySidebar: useCallback15(() => setComplementarySidebarState("collapsed"), []),
4218
+ closeComplementarySidebar: useCallback15(() => setComplementarySidebarState("closed"), [])
4245
4219
  };
4246
4220
  };
4247
4221
  var MainRoot = ({ navigationSidebarState: propsNavigationSidebarState, defaultNavigationSidebarState = "closed", onNavigationSidebarStateChange, complementarySidebarState: propsComplementarySidebarState, defaultComplementarySidebarState = "closed", onComplementarySidebarStateChange, children, ...props }) => {
@@ -4257,7 +4231,7 @@ var MainRoot = ({ navigationSidebarState: propsNavigationSidebarState, defaultNa
4257
4231
  onChange: onComplementarySidebarStateChange
4258
4232
  });
4259
4233
  const [resizing, setResizing] = useState14(false);
4260
- const resizeInterval = useRef6(null);
4234
+ const resizeInterval = useRef7(null);
4261
4235
  useEffect8(() => addEventListener(window, "resize", () => {
4262
4236
  setResizing(true);
4263
4237
  if (resizeInterval.current) {
@@ -4268,7 +4242,7 @@ var MainRoot = ({ navigationSidebarState: propsNavigationSidebarState, defaultNa
4268
4242
  resizeInterval.current = null;
4269
4243
  }, 3e3);
4270
4244
  }), []);
4271
- return /* @__PURE__ */ React38.createElement(MainProvider, {
4245
+ return /* @__PURE__ */ React39.createElement(MainProvider, {
4272
4246
  ...props,
4273
4247
  navigationSidebarState,
4274
4248
  setNavigationSidebarState,
@@ -4278,11 +4252,11 @@ var MainRoot = ({ navigationSidebarState: propsNavigationSidebarState, defaultNa
4278
4252
  }, children);
4279
4253
  };
4280
4254
  MainRoot.displayName = MAIN_ROOT_NAME;
4281
- var MainOverlay = /* @__PURE__ */ forwardRef26(({ classNames, ...props }, forwardedRef) => {
4255
+ var MainOverlay = /* @__PURE__ */ forwardRef27(({ classNames, ...props }, forwardedRef) => {
4282
4256
  const [isLg] = useMediaQuery("lg");
4283
4257
  const { navigationSidebarState, setNavigationSidebarState, complementarySidebarState, setComplementarySidebarState } = useMainContext(MAIN_OVERLAY_NAME);
4284
4258
  const { tx } = useThemeContext();
4285
- return /* @__PURE__ */ React38.createElement("div", {
4259
+ return /* @__PURE__ */ React39.createElement("div", {
4286
4260
  ...props,
4287
4261
  onClick: () => {
4288
4262
  setNavigationSidebarState("collapsed");
@@ -4299,16 +4273,16 @@ var MainOverlay = /* @__PURE__ */ forwardRef26(({ classNames, ...props }, forwar
4299
4273
  });
4300
4274
  });
4301
4275
  MainOverlay.displayName = MAIN_OVERLAY_NAME;
4302
- var MainSidebar = /* @__PURE__ */ forwardRef26(({ classNames, children, swipeToDismiss, onOpenAutoFocus, state, resizing, onStateChange, side, label, ...props }, forwardedRef) => {
4276
+ var MainSidebar = /* @__PURE__ */ forwardRef27(({ classNames, children, swipeToDismiss, onOpenAutoFocus, state, resizing, onStateChange, side, label, ...props }, forwardedRef) => {
4303
4277
  const [isLg] = useMediaQuery("lg");
4304
4278
  const { tx } = useThemeContext();
4305
4279
  const { t } = useTranslation(osTranslations3);
4306
4280
  const ref = useForwardedRef(forwardedRef);
4307
- const noopRef = useRef6(null);
4281
+ const noopRef = useRef7(null);
4308
4282
  useSwipeToDismiss(swipeToDismiss ? ref : noopRef, {
4309
4283
  onDismiss: () => onStateChange?.("closed")
4310
4284
  });
4311
- const handleKeyDown = useCallback14((event) => {
4285
+ const handleKeyDown = useCallback15((event) => {
4312
4286
  const focusGroupParent = event.target.closest("[data-tabster]");
4313
4287
  if (event.key === "Escape" && focusGroupParent) {
4314
4288
  event.preventDefault();
@@ -4319,14 +4293,14 @@ var MainSidebar = /* @__PURE__ */ forwardRef26(({ classNames, children, swipeToD
4319
4293
  }, [
4320
4294
  props.onKeyDown
4321
4295
  ]);
4322
- const Root13 = isLg ? Primitive17.div : DialogContent2;
4323
- return /* @__PURE__ */ React38.createElement(DialogRoot2, {
4296
+ const Root13 = isLg ? Primitive16.div : DialogContent2;
4297
+ return /* @__PURE__ */ React39.createElement(DialogRoot2, {
4324
4298
  open: state !== "closed",
4325
4299
  "aria-label": toLocalizedString(label, t),
4326
4300
  modal: false
4327
- }, !isLg && /* @__PURE__ */ React38.createElement(DialogTitle2, {
4301
+ }, !isLg && /* @__PURE__ */ React39.createElement(DialogTitle2, {
4328
4302
  className: "sr-only"
4329
- }, toLocalizedString(label, t)), /* @__PURE__ */ React38.createElement(Root13, {
4303
+ }, toLocalizedString(label, t)), /* @__PURE__ */ React39.createElement(Root13, {
4330
4304
  ...!isLg && {
4331
4305
  forceMount: true,
4332
4306
  tabIndex: -1,
@@ -4344,10 +4318,10 @@ var MainSidebar = /* @__PURE__ */ forwardRef26(({ classNames, children, swipeToD
4344
4318
  ref
4345
4319
  }, children));
4346
4320
  });
4347
- var MainNavigationSidebar = /* @__PURE__ */ forwardRef26((props, forwardedRef) => {
4321
+ var MainNavigationSidebar = /* @__PURE__ */ forwardRef27((props, forwardedRef) => {
4348
4322
  const { navigationSidebarState, setNavigationSidebarState, resizing } = useMainContext(NAVIGATION_SIDEBAR_NAME);
4349
4323
  const mover = useLandmarkMover(props.onKeyDown, "0");
4350
- return /* @__PURE__ */ React38.createElement(MainSidebar, {
4324
+ return /* @__PURE__ */ React39.createElement(MainSidebar, {
4351
4325
  ...mover,
4352
4326
  ...props,
4353
4327
  state: navigationSidebarState,
@@ -4358,10 +4332,10 @@ var MainNavigationSidebar = /* @__PURE__ */ forwardRef26((props, forwardedRef) =
4358
4332
  });
4359
4333
  });
4360
4334
  MainNavigationSidebar.displayName = NAVIGATION_SIDEBAR_NAME;
4361
- var MainComplementarySidebar = /* @__PURE__ */ forwardRef26((props, forwardedRef) => {
4335
+ var MainComplementarySidebar = /* @__PURE__ */ forwardRef27((props, forwardedRef) => {
4362
4336
  const { complementarySidebarState, setComplementarySidebarState, resizing } = useMainContext(COMPLEMENTARY_SIDEBAR_NAME);
4363
4337
  const mover = useLandmarkMover(props.onKeyDown, "2");
4364
- return /* @__PURE__ */ React38.createElement(MainSidebar, {
4338
+ return /* @__PURE__ */ React39.createElement(MainSidebar, {
4365
4339
  ...mover,
4366
4340
  ...props,
4367
4341
  state: complementarySidebarState,
@@ -4372,12 +4346,12 @@ var MainComplementarySidebar = /* @__PURE__ */ forwardRef26((props, forwardedRef
4372
4346
  });
4373
4347
  });
4374
4348
  MainComplementarySidebar.displayName = COMPLEMENTARY_SIDEBAR_NAME;
4375
- var MainContent = /* @__PURE__ */ forwardRef26(({ asChild, classNames, bounce, handlesFocus, children, role, ...props }, forwardedRef) => {
4349
+ var MainContent = /* @__PURE__ */ forwardRef27(({ asChild, classNames, bounce, handlesFocus, children, role, ...props }, forwardedRef) => {
4376
4350
  const { navigationSidebarState, complementarySidebarState } = useMainContext(MAIN_NAME);
4377
4351
  const { tx } = useThemeContext();
4378
- const Comp = asChild ? Slot17 : role ? Primitive17.div : "main";
4352
+ const Comp = asChild ? Slot16 : role ? Primitive16.div : "main";
4379
4353
  const mover = useLandmarkMover(props.onKeyDown, "1");
4380
- return /* @__PURE__ */ React38.createElement(Comp, {
4354
+ return /* @__PURE__ */ React39.createElement(Comp, {
4381
4355
  ...handlesFocus && {
4382
4356
  ...mover
4383
4357
  },
@@ -4404,12 +4378,12 @@ var Main = {
4404
4378
 
4405
4379
  // src/components/Message/Message.tsx
4406
4380
  import { createContext as createContext11 } from "@radix-ui/react-context";
4407
- import { Primitive as Primitive18 } from "@radix-ui/react-primitive";
4408
- import { Slot as Slot18 } from "@radix-ui/react-slot";
4409
- import React39, { forwardRef as forwardRef27 } from "react";
4410
- import { useTranslation as useTranslation5 } from "react-i18next";
4381
+ import { Primitive as Primitive17 } from "@radix-ui/react-primitive";
4382
+ import { Slot as Slot17 } from "@radix-ui/react-slot";
4383
+ import React40, { forwardRef as forwardRef28 } from "react";
4384
+ import { useTranslation as useTranslation6 } from "react-i18next";
4411
4385
  import { useId as useId5 } from "@dxos/react-hooks";
4412
- import { translationKey as translationKey5 } from "#translations";
4386
+ import { translationKey as translationKey6 } from "#translations";
4413
4387
  var messageIcons = {
4414
4388
  success: "ph--check-circle--duotone",
4415
4389
  info: "ph--info--duotone",
@@ -4446,16 +4420,16 @@ var valenceVars = {
4446
4420
  }
4447
4421
  };
4448
4422
  var [MessageProvider, useMessageContext] = createContext11(MESSAGE_NAME);
4449
- var MessageRoot = /* @__PURE__ */ forwardRef27(({ asChild, valence = "neutral", elevation: propsElevation, classNames, titleId: propsTitleId, descriptionId: propsDescriptionId, children, ...props }, forwardedRef) => {
4423
+ var MessageRoot = /* @__PURE__ */ forwardRef28(({ asChild, valence = "neutral", elevation: propsElevation, classNames, titleId: propsTitleId, descriptionId: propsDescriptionId, children, ...props }, forwardedRef) => {
4450
4424
  const { tx } = useThemeContext();
4451
4425
  const titleId = useId5("message__title", propsTitleId);
4452
4426
  const descriptionId = useId5("message__description", propsDescriptionId);
4453
4427
  const elevation = useElevationContext(propsElevation);
4454
- return /* @__PURE__ */ React39.createElement(MessageProvider, {
4428
+ return /* @__PURE__ */ React40.createElement(MessageProvider, {
4455
4429
  titleId,
4456
4430
  descriptionId,
4457
4431
  valence
4458
- }, /* @__PURE__ */ React39.createElement(Column.Root, {
4432
+ }, /* @__PURE__ */ React40.createElement(Column.Root, {
4459
4433
  asChild,
4460
4434
  role: valence === "neutral" ? "paragraph" : "alert",
4461
4435
  "aria-labelledby": titleId,
@@ -4474,26 +4448,22 @@ var MessageRoot = /* @__PURE__ */ forwardRef27(({ asChild, valence = "neutral",
4474
4448
  });
4475
4449
  MessageRoot.displayName = MESSAGE_NAME;
4476
4450
  var MESSAGE_TITLE_NAME = "Message.Title";
4477
- var MessageTitle = /* @__PURE__ */ forwardRef27(({ classNames, children, icon: iconProp, onClose }, forwardedRef) => {
4478
- const { t } = useTranslation5(translationKey5);
4451
+ var MessageTitle = /* @__PURE__ */ forwardRef28(({ classNames, children, icon: iconProp, onClose }, forwardedRef) => {
4452
+ const { t } = useTranslation6(translationKey6);
4479
4453
  const { tx } = useThemeContext();
4480
4454
  const { titleId, valence } = useMessageContext(MESSAGE_TITLE_NAME);
4481
4455
  const icon = iconProp ?? messageIcons[valence];
4482
- return /* @__PURE__ */ React39.createElement(Column.Row, {
4456
+ return /* @__PURE__ */ React40.createElement(Column.Row, {
4483
4457
  classNames: tx("message.header", {}, classNames),
4484
4458
  ref: forwardedRef
4485
- }, icon && /* @__PURE__ */ React39.createElement("div", {
4486
- className: tx("message.icon", {
4487
- valence
4488
- })
4489
- }, /* @__PURE__ */ React39.createElement(Icon, {
4459
+ }, icon && /* @__PURE__ */ React40.createElement(Column.Block, null, /* @__PURE__ */ React40.createElement(Icon, {
4490
4460
  icon
4491
- })), /* @__PURE__ */ React39.createElement("h2", {
4461
+ })), /* @__PURE__ */ React40.createElement("h2", {
4492
4462
  className: tx("message.title", {}, classNames),
4493
4463
  id: titleId
4494
- }, children), onClose && /* @__PURE__ */ React39.createElement("div", {
4495
- className: tx("message.close", {})
4496
- }, /* @__PURE__ */ React39.createElement(IconButton, {
4464
+ }, children), onClose && /* @__PURE__ */ React40.createElement(Column.Block, {
4465
+ end: true
4466
+ }, /* @__PURE__ */ React40.createElement(IconButton, {
4497
4467
  variant: "ghost",
4498
4468
  icon: "ph--x--regular",
4499
4469
  iconOnly: true,
@@ -4504,11 +4474,11 @@ var MessageTitle = /* @__PURE__ */ forwardRef27(({ classNames, children, icon: i
4504
4474
  });
4505
4475
  MessageTitle.displayName = MESSAGE_TITLE_NAME;
4506
4476
  var MESSAGE_CONTENT_NAME = "Message.Content";
4507
- var MessageContent = /* @__PURE__ */ forwardRef27(({ asChild, classNames, children, ...props }, forwardedRef) => {
4477
+ var MessageContent = /* @__PURE__ */ forwardRef28(({ asChild, classNames, children, ...props }, forwardedRef) => {
4508
4478
  const { tx } = useThemeContext();
4509
4479
  const { descriptionId } = useMessageContext(MESSAGE_CONTENT_NAME);
4510
- const Comp = asChild ? Slot18 : Primitive18.p;
4511
- return /* @__PURE__ */ React39.createElement(Comp, {
4480
+ const Comp = asChild ? Slot17 : Primitive17.p;
4481
+ return /* @__PURE__ */ React40.createElement(Comp, {
4512
4482
  ...props,
4513
4483
  className: tx("message.content", {}, classNames),
4514
4484
  id: descriptionId,
@@ -4524,16 +4494,16 @@ var Message = {
4524
4494
  var Callout = Message;
4525
4495
 
4526
4496
  // src/components/Panel/Panel.tsx
4527
- import { Primitive as Primitive19 } from "@radix-ui/react-primitive";
4528
- import { Slot as Slot19 } from "@radix-ui/react-slot";
4529
- import React40 from "react";
4497
+ import { Primitive as Primitive18 } from "@radix-ui/react-primitive";
4498
+ import { Slot as Slot18 } from "@radix-ui/react-slot";
4499
+ import React41 from "react";
4530
4500
  var GRID_TEMPLATE_ROWS = "auto 1fr auto";
4531
4501
  var GRID_TEMPLATE_AREAS = '"toolbar" "content" "statusbar"';
4532
4502
  var PanelRoot = slottable(({ children, asChild, role, style, ...props }, forwardedRef) => {
4533
4503
  const { className, ...rest } = composableProps(props);
4534
- const Comp = asChild ? Slot19 : Primitive19.div;
4504
+ const Comp = asChild ? Slot18 : Primitive18.div;
4535
4505
  const { tx } = useThemeContext();
4536
- return /* @__PURE__ */ React40.createElement(Comp, {
4506
+ return /* @__PURE__ */ React41.createElement(Comp, {
4537
4507
  ...rest,
4538
4508
  role: role ?? "none",
4539
4509
  style: {
@@ -4548,9 +4518,9 @@ var PanelRoot = slottable(({ children, asChild, role, style, ...props }, forward
4548
4518
  PanelRoot.displayName = "Panel.Root";
4549
4519
  var PanelToolbar = slottable(({ children, asChild, size, ...props }, forwardedRef) => {
4550
4520
  const { className, ...rest } = composableProps(props);
4551
- const Comp = asChild ? Slot19 : Primitive19.div;
4521
+ const Comp = asChild ? Slot18 : Primitive18.div;
4552
4522
  const { tx } = useThemeContext();
4553
- return /* @__PURE__ */ React40.createElement(Comp, {
4523
+ return /* @__PURE__ */ React41.createElement(Comp, {
4554
4524
  ...rest,
4555
4525
  "data-slot": "toolbar",
4556
4526
  className: tx("panel.toolbar", {
@@ -4562,9 +4532,9 @@ var PanelToolbar = slottable(({ children, asChild, size, ...props }, forwardedRe
4562
4532
  PanelToolbar.displayName = "Panel.Toolbar";
4563
4533
  var PanelContent = slottable(({ children, asChild, ...props }, forwardedRef) => {
4564
4534
  const { className, ...rest } = composableProps(props);
4565
- const Comp = asChild ? Slot19 : Primitive19.div;
4535
+ const Comp = asChild ? Slot18 : Primitive18.div;
4566
4536
  const { tx } = useThemeContext();
4567
- return /* @__PURE__ */ React40.createElement(Comp, {
4537
+ return /* @__PURE__ */ React41.createElement(Comp, {
4568
4538
  ...rest,
4569
4539
  "data-slot": "content",
4570
4540
  className: tx("panel.content", {}, className),
@@ -4574,9 +4544,9 @@ var PanelContent = slottable(({ children, asChild, ...props }, forwardedRef) =>
4574
4544
  PanelContent.displayName = "Panel.Content";
4575
4545
  var PanelStatusbar = slottable(({ children, asChild, size, ...props }, forwardedRef) => {
4576
4546
  const { className, ...rest } = composableProps(props);
4577
- const Comp = asChild ? Slot19 : Primitive19.div;
4547
+ const Comp = asChild ? Slot18 : Primitive18.div;
4578
4548
  const { tx } = useThemeContext();
4579
- return /* @__PURE__ */ React40.createElement(Comp, {
4549
+ return /* @__PURE__ */ React41.createElement(Comp, {
4580
4550
  ...rest,
4581
4551
  "data-slot": "statusbar",
4582
4552
  className: tx("panel.statusbar", {
@@ -4595,9 +4565,9 @@ var Panel = {
4595
4565
 
4596
4566
  // src/components/ScrollArea/ScrollArea.tsx
4597
4567
  import { createContext as createContext12 } from "@radix-ui/react-context";
4598
- import { Primitive as Primitive20 } from "@radix-ui/react-primitive";
4599
- import { Slot as Slot20 } from "@radix-ui/react-slot";
4600
- import React41, { useMemo as useMemo7 } from "react";
4568
+ import { Primitive as Primitive19 } from "@radix-ui/react-primitive";
4569
+ import { Slot as Slot19 } from "@radix-ui/react-slot";
4570
+ import React42, { useMemo as useMemo7 } from "react";
4601
4571
 
4602
4572
  // src/components/ScrollArea/scrollbar.ts
4603
4573
  var scrollbar = {
@@ -4622,7 +4592,7 @@ var SCROLLAREA_ROOT_NAME = "ScrollArea.Root";
4622
4592
  var ScrollAreaRoot = slottable(({ children, asChild, orientation = "vertical", autoHide = true, centered = false, padding = false, thin = false, snap = false, ...props }, forwardedRef) => {
4623
4593
  const { tx } = useThemeContext();
4624
4594
  const { className, ...rest } = composableProps(props);
4625
- const Comp = asChild ? Slot20 : Primitive20.div;
4595
+ const Comp = asChild ? Slot19 : Primitive19.div;
4626
4596
  const options = useMemo7(() => ({
4627
4597
  orientation,
4628
4598
  autoHide,
@@ -4638,7 +4608,7 @@ var ScrollAreaRoot = slottable(({ children, asChild, orientation = "vertical", a
4638
4608
  thin,
4639
4609
  snap
4640
4610
  ]);
4641
- return /* @__PURE__ */ React41.createElement(ScrollAreaProvider, options, /* @__PURE__ */ React41.createElement(Comp, {
4611
+ return /* @__PURE__ */ React42.createElement(ScrollAreaProvider, options, /* @__PURE__ */ React42.createElement(Comp, {
4642
4612
  ...rest,
4643
4613
  className: tx("scrollArea.root", options, className),
4644
4614
  ref: forwardedRef
@@ -4652,8 +4622,8 @@ var ScrollAreaViewport = slottable(({ children, asChild, ...props }, forwardedRe
4652
4622
  const density = options.thin ? scrollbar.md : scrollbar.lg;
4653
4623
  const { className, ...rest } = composableProps(props);
4654
4624
  const { style, ...restWithoutStyle } = rest;
4655
- const Comp = asChild ? Slot20 : Primitive20.div;
4656
- return /* @__PURE__ */ React41.createElement(Comp, {
4625
+ const Comp = asChild ? Slot19 : Primitive19.div;
4626
+ return /* @__PURE__ */ React42.createElement(Comp, {
4657
4627
  ...restWithoutStyle,
4658
4628
  style: {
4659
4629
  "--scroll-width": `${density.size}px`,
@@ -4672,23 +4642,23 @@ var ScrollArea = {
4672
4642
 
4673
4643
  // src/components/ScrollContainer/ScrollContainer.tsx
4674
4644
  import { createContext as createContext13 } from "@radix-ui/react-context";
4675
- import React42, { forwardRef as forwardRef28, useCallback as useCallback15, useEffect as useEffect9, useImperativeHandle, useMemo as useMemo8, useRef as useRef7, useState as useState15 } from "react";
4645
+ import React43, { forwardRef as forwardRef29, useCallback as useCallback16, useEffect as useEffect9, useImperativeHandle, useMemo as useMemo8, useRef as useRef8, useState as useState15 } from "react";
4676
4646
  import { addEventListener as addEventListener2, combine } from "@dxos/async";
4677
4647
  import { invariant } from "@dxos/invariant";
4678
4648
  import { useMergeRefs } from "@dxos/react-hooks";
4679
- import { mx as mx11 } from "@dxos/ui-theme";
4649
+ import { mx as mx12 } from "@dxos/ui-theme";
4680
4650
  var __dxlog_file3 = "/__w/dxos/dxos/packages/ui/react-ui/src/components/ScrollContainer/ScrollContainer.tsx";
4681
4651
  var isBottom = (el) => {
4682
4652
  return !!(el && el.scrollHeight - el.scrollTop === el.clientHeight);
4683
4653
  };
4684
4654
  var [ScrollContainerProvider, useScrollContainerContext] = createContext13("ScrollContainer");
4685
- var ScrollContainerRoot = /* @__PURE__ */ forwardRef28(({ children, pin, behavior: behaviorProp = "smooth" }, forwardedRef) => {
4686
- const scrollerRef = useRef7(null);
4687
- const autoScrollRef = useRef7(false);
4655
+ var ScrollContainerRoot = /* @__PURE__ */ forwardRef29(({ children, pin, behavior: behaviorProp = "smooth" }, forwardedRef) => {
4656
+ const scrollerRef = useRef8(null);
4657
+ const autoScrollRef = useRef8(false);
4688
4658
  const [pinned, setPinned] = useState15(pin);
4689
4659
  const [overflow, setOverflow] = useState15(false);
4690
- const timeoutRef = useRef7(void 0);
4691
- const scrollToBottom = useCallback15((behavior = behaviorProp) => {
4660
+ const timeoutRef = useRef8(void 0);
4661
+ const scrollToBottom = useCallback16((behavior = behaviorProp) => {
4692
4662
  if (scrollerRef.current) {
4693
4663
  if (behavior !== "instant") {
4694
4664
  autoScrollRef.current = true;
@@ -4729,10 +4699,10 @@ var ScrollContainerRoot = /* @__PURE__ */ forwardRef28(({ children, pin, behavio
4729
4699
  useImperativeHandle(forwardedRef, () => controller, [
4730
4700
  controller
4731
4701
  ]);
4732
- const setViewport = useCallback15((el) => {
4702
+ const setViewport = useCallback16((el) => {
4733
4703
  scrollerRef.current = el;
4734
4704
  }, []);
4735
- return /* @__PURE__ */ React42.createElement(ScrollContainerProvider, {
4705
+ return /* @__PURE__ */ React43.createElement(ScrollContainerProvider, {
4736
4706
  pinned,
4737
4707
  overflow,
4738
4708
  controller,
@@ -4743,7 +4713,7 @@ var ScrollContainerRoot = /* @__PURE__ */ forwardRef28(({ children, pin, behavio
4743
4713
  });
4744
4714
  ScrollContainerRoot.displayName = "ScrollContainer.Root";
4745
4715
  var ScrollContainerContent = composable(({ children, thin, padding, centered, ...props }, forwardedRef) => {
4746
- return /* @__PURE__ */ React42.createElement(ScrollArea.Root, {
4716
+ return /* @__PURE__ */ React43.createElement(ScrollArea.Root, {
4747
4717
  ...composableProps(props, {
4748
4718
  classNames: "relative isolate"
4749
4719
  }),
@@ -4756,7 +4726,7 @@ var ScrollContainerContent = composable(({ children, thin, padding, centered, ..
4756
4726
  ScrollContainerContent.displayName = "ScrollContainer.Content";
4757
4727
  var VIEWPORT_NAME = "ScrollContainer.Viewport";
4758
4728
  var ScrollContainerViewport = slottable(({ children, asChild, ...props }, forwardedRef) => {
4759
- const scrollerRef = useRef7(null);
4729
+ const scrollerRef = useRef8(null);
4760
4730
  const mergedRef = useMergeRefs([
4761
4731
  forwardedRef,
4762
4732
  scrollerRef
@@ -4774,11 +4744,11 @@ var ScrollContainerViewport = slottable(({ children, asChild, ...props }, forwar
4774
4744
  setPinned,
4775
4745
  setOverflow
4776
4746
  ]);
4777
- return /* @__PURE__ */ React42.createElement(React42.Fragment, null, /* @__PURE__ */ React42.createElement(ScrollArea.Viewport, {
4747
+ return /* @__PURE__ */ React43.createElement(React43.Fragment, null, /* @__PURE__ */ React43.createElement(ScrollArea.Viewport, {
4778
4748
  asChild,
4779
4749
  ...composableProps(props),
4780
4750
  ref: mergedRef
4781
- }, children), /* @__PURE__ */ React42.createElement(ScrollContainerPinEffect, {
4751
+ }, children), /* @__PURE__ */ React43.createElement(ScrollContainerPinEffect, {
4782
4752
  scrollerRef
4783
4753
  }));
4784
4754
  });
@@ -4823,9 +4793,9 @@ var ScrollContainerPinEffect = ({ scrollerRef }) => {
4823
4793
  var FADE_NAME = "ScrollContainer.Fade";
4824
4794
  function ScrollContainerFade() {
4825
4795
  const { overflow } = useScrollContainerContext(FADE_NAME);
4826
- return /* @__PURE__ */ React42.createElement("div", {
4796
+ return /* @__PURE__ */ React43.createElement("div", {
4827
4797
  "data-visible": overflow,
4828
- className: mx11(
4798
+ className: mx12(
4829
4799
  // NOTE: Gradients may not be visible with dark reader extensions.
4830
4800
  "z-10 absolute top-0 inset-x-0 h-24 w-full",
4831
4801
  'opacity-0 duration-200 transition-opacity data-[visible="true"]:opacity-100',
@@ -4837,9 +4807,9 @@ ScrollContainerFade.displayName = FADE_NAME;
4837
4807
  var SCROLL_DOWN_BUTTON_NAME = "ScrollContainer.ScrollDownButton";
4838
4808
  function ScrollContainerScrollDownButton({ classNames }) {
4839
4809
  const { pinned, controller } = useScrollContainerContext(SCROLL_DOWN_BUTTON_NAME);
4840
- return /* @__PURE__ */ React42.createElement("div", {
4841
- className: mx11("absolute bottom-2 right-4 opacity-100 transition-opacity duration-300", pinned && "opacity-0", classNames)
4842
- }, /* @__PURE__ */ React42.createElement(IconButton, {
4810
+ return /* @__PURE__ */ React43.createElement("div", {
4811
+ className: mx12("absolute bottom-2 right-4 opacity-100 transition-opacity duration-300", pinned && "opacity-0", classNames)
4812
+ }, /* @__PURE__ */ React43.createElement(IconButton, {
4843
4813
  variant: "primary",
4844
4814
  icon: "ph--arrow-down--regular",
4845
4815
  iconOnly: true,
@@ -4859,35 +4829,35 @@ var ScrollContainer = {
4859
4829
 
4860
4830
  // src/components/Select/Select.tsx
4861
4831
  import * as SelectPrimitive from "@radix-ui/react-select";
4862
- import React43, { forwardRef as forwardRef29 } from "react";
4832
+ import React44, { forwardRef as forwardRef30 } from "react";
4863
4833
  var SelectRoot = SelectPrimitive.Root;
4864
4834
  var SelectTrigger = SelectPrimitive.Trigger;
4865
4835
  var SelectValue = SelectPrimitive.Value;
4866
4836
  var SelectIcon = SelectPrimitive.Icon;
4867
4837
  var SelectPortal = SelectPrimitive.Portal;
4868
- var SelectTriggerButton = /* @__PURE__ */ forwardRef29(({ children, placeholder, classNames, ...props }, forwardedRef) => {
4838
+ var SelectTriggerButton = /* @__PURE__ */ forwardRef30(({ children, placeholder, classNames, ...props }, forwardedRef) => {
4869
4839
  const { tx } = useThemeContext();
4870
- return /* @__PURE__ */ React43.createElement(SelectPrimitive.Trigger, {
4840
+ return /* @__PURE__ */ React44.createElement(SelectPrimitive.Trigger, {
4871
4841
  asChild: true,
4872
4842
  ref: forwardedRef
4873
- }, /* @__PURE__ */ React43.createElement(Button, {
4843
+ }, /* @__PURE__ */ React44.createElement(Button, {
4874
4844
  ...props,
4875
4845
  classNames: tx("select.triggerButton", {}, classNames)
4876
- }, /* @__PURE__ */ React43.createElement(SelectPrimitive.Value, {
4846
+ }, /* @__PURE__ */ React44.createElement(SelectPrimitive.Value, {
4877
4847
  placeholder
4878
- }, children), /* @__PURE__ */ React43.createElement(SelectPrimitive.Icon, {
4848
+ }, children), /* @__PURE__ */ React44.createElement(SelectPrimitive.Icon, {
4879
4849
  asChild: true
4880
- }, /* @__PURE__ */ React43.createElement(Icon, {
4850
+ }, /* @__PURE__ */ React44.createElement(Icon, {
4881
4851
  size: 3,
4882
4852
  icon: "ph--caret-down--bold"
4883
4853
  }))));
4884
4854
  });
4885
4855
  SelectTriggerButton.displayName = "Select.TriggerButton";
4886
- var SelectContent = /* @__PURE__ */ forwardRef29(({ classNames, children, collisionPadding = 8, ...props }, forwardedRef) => {
4856
+ var SelectContent = /* @__PURE__ */ forwardRef30(({ classNames, children, collisionPadding = 8, ...props }, forwardedRef) => {
4887
4857
  const { tx } = useThemeContext();
4888
4858
  const elevation = useElevationContext();
4889
4859
  const safeCollisionPadding = useSafeCollisionPadding(collisionPadding);
4890
- return /* @__PURE__ */ React43.createElement(SelectPrimitive.Content, {
4860
+ return /* @__PURE__ */ React44.createElement(SelectPrimitive.Content, {
4891
4861
  ...props,
4892
4862
  "data-arrow-keys": "up down",
4893
4863
  collisionPadding: safeCollisionPadding,
@@ -4899,42 +4869,42 @@ var SelectContent = /* @__PURE__ */ forwardRef29(({ classNames, children, collis
4899
4869
  }, children);
4900
4870
  });
4901
4871
  SelectContent.displayName = "Select.Content";
4902
- var SelectScrollUpButton2 = /* @__PURE__ */ forwardRef29(({ classNames, children, ...props }, forwardedRef) => {
4872
+ var SelectScrollUpButton2 = /* @__PURE__ */ forwardRef30(({ classNames, children, ...props }, forwardedRef) => {
4903
4873
  const { tx } = useThemeContext();
4904
- return /* @__PURE__ */ React43.createElement(SelectPrimitive.SelectScrollUpButton, {
4874
+ return /* @__PURE__ */ React44.createElement(SelectPrimitive.SelectScrollUpButton, {
4905
4875
  ...props,
4906
4876
  className: tx("select.scrollButton", {}, classNames),
4907
4877
  ref: forwardedRef
4908
- }, children ?? /* @__PURE__ */ React43.createElement(Icon, {
4878
+ }, children ?? /* @__PURE__ */ React44.createElement(Icon, {
4909
4879
  size: 3,
4910
4880
  icon: "ph--caret-up--bold"
4911
4881
  }));
4912
4882
  });
4913
4883
  SelectScrollUpButton2.displayName = "Select.ScrollUpButton";
4914
- var SelectScrollDownButton2 = /* @__PURE__ */ forwardRef29(({ classNames, children, ...props }, forwardedRef) => {
4884
+ var SelectScrollDownButton2 = /* @__PURE__ */ forwardRef30(({ classNames, children, ...props }, forwardedRef) => {
4915
4885
  const { tx } = useThemeContext();
4916
- return /* @__PURE__ */ React43.createElement(SelectPrimitive.SelectScrollDownButton, {
4886
+ return /* @__PURE__ */ React44.createElement(SelectPrimitive.SelectScrollDownButton, {
4917
4887
  ...props,
4918
4888
  className: tx("select.scrollButton", {}, classNames),
4919
4889
  ref: forwardedRef
4920
- }, children ?? /* @__PURE__ */ React43.createElement(Icon, {
4890
+ }, children ?? /* @__PURE__ */ React44.createElement(Icon, {
4921
4891
  size: 3,
4922
4892
  icon: "ph--caret-down--bold"
4923
4893
  }));
4924
4894
  });
4925
4895
  SelectScrollDownButton2.displayName = "Select.ScrollDownButton";
4926
- var SelectViewport2 = /* @__PURE__ */ forwardRef29(({ classNames, children, ...props }, forwardedRef) => {
4896
+ var SelectViewport2 = /* @__PURE__ */ forwardRef30(({ classNames, children, ...props }, forwardedRef) => {
4927
4897
  const { tx } = useThemeContext();
4928
- return /* @__PURE__ */ React43.createElement(SelectPrimitive.SelectViewport, {
4898
+ return /* @__PURE__ */ React44.createElement(SelectPrimitive.SelectViewport, {
4929
4899
  ...props,
4930
4900
  className: tx("select.viewport", {}, classNames),
4931
4901
  ref: forwardedRef
4932
4902
  }, children);
4933
4903
  });
4934
4904
  SelectViewport2.displayName = "Select.Viewport";
4935
- var SelectItem = /* @__PURE__ */ forwardRef29(({ classNames, ...props }, forwardedRef) => {
4905
+ var SelectItem = /* @__PURE__ */ forwardRef30(({ classNames, ...props }, forwardedRef) => {
4936
4906
  const { tx } = useThemeContext();
4937
- return /* @__PURE__ */ React43.createElement(SelectPrimitive.Item, {
4907
+ return /* @__PURE__ */ React44.createElement(SelectPrimitive.Item, {
4938
4908
  ...props,
4939
4909
  className: tx("select.item", {}, classNames),
4940
4910
  ref: forwardedRef
@@ -4942,24 +4912,24 @@ var SelectItem = /* @__PURE__ */ forwardRef29(({ classNames, ...props }, forward
4942
4912
  });
4943
4913
  SelectItem.displayName = "Select.Item";
4944
4914
  var SelectItemText = SelectPrimitive.ItemText;
4945
- var SelectItemIndicator = /* @__PURE__ */ forwardRef29(({ classNames, children, ...props }, forwardedRef) => {
4915
+ var SelectItemIndicator = /* @__PURE__ */ forwardRef30(({ classNames, children, ...props }, forwardedRef) => {
4946
4916
  const { tx } = useThemeContext();
4947
- return /* @__PURE__ */ React43.createElement(SelectPrimitive.ItemIndicator, {
4917
+ return /* @__PURE__ */ React44.createElement(SelectPrimitive.ItemIndicator, {
4948
4918
  ...props,
4949
4919
  className: tx("select.itemIndicator", {}, classNames),
4950
4920
  ref: forwardedRef
4951
4921
  }, children);
4952
4922
  });
4953
4923
  SelectItemIndicator.displayName = "Select.ItemIndicator";
4954
- var SelectOption = /* @__PURE__ */ forwardRef29(({ children, classNames, ...props }, forwardedRef) => {
4924
+ var SelectOption = /* @__PURE__ */ forwardRef30(({ children, classNames, ...props }, forwardedRef) => {
4955
4925
  const { tx } = useThemeContext();
4956
- return /* @__PURE__ */ React43.createElement(SelectPrimitive.Item, {
4926
+ return /* @__PURE__ */ React44.createElement(SelectPrimitive.Item, {
4957
4927
  ...props,
4958
4928
  className: tx("select.item", {}, classNames),
4959
4929
  ref: forwardedRef
4960
- }, /* @__PURE__ */ React43.createElement(SelectPrimitive.ItemText, null, children), /* @__PURE__ */ React43.createElement("span", {
4930
+ }, /* @__PURE__ */ React44.createElement(SelectPrimitive.ItemText, null, children), /* @__PURE__ */ React44.createElement("span", {
4961
4931
  className: "grow"
4962
- }), /* @__PURE__ */ React43.createElement(Icon, {
4932
+ }), /* @__PURE__ */ React44.createElement(Icon, {
4963
4933
  size: 3,
4964
4934
  icon: "ph--check--regular"
4965
4935
  }));
@@ -4967,18 +4937,18 @@ var SelectOption = /* @__PURE__ */ forwardRef29(({ children, classNames, ...prop
4967
4937
  SelectOption.displayName = "Select.Option";
4968
4938
  var SelectGroup = SelectPrimitive.Group;
4969
4939
  var SelectLabel = SelectPrimitive.Label;
4970
- var SelectSeparator = /* @__PURE__ */ forwardRef29(({ classNames, ...props }, forwardedRef) => {
4940
+ var SelectSeparator = /* @__PURE__ */ forwardRef30(({ classNames, ...props }, forwardedRef) => {
4971
4941
  const { tx } = useThemeContext();
4972
- return /* @__PURE__ */ React43.createElement(SelectPrimitive.Separator, {
4942
+ return /* @__PURE__ */ React44.createElement(SelectPrimitive.Separator, {
4973
4943
  ...props,
4974
4944
  className: tx("select.separator", {}, classNames),
4975
4945
  ref: forwardedRef
4976
4946
  });
4977
4947
  });
4978
4948
  SelectSeparator.displayName = "Select.Separator";
4979
- var SelectArrow = /* @__PURE__ */ forwardRef29(({ classNames, ...props }, forwardedRef) => {
4949
+ var SelectArrow = /* @__PURE__ */ forwardRef30(({ classNames, ...props }, forwardedRef) => {
4980
4950
  const { tx } = useThemeContext();
4981
- return /* @__PURE__ */ React43.createElement(SelectPrimitive.Arrow, {
4951
+ return /* @__PURE__ */ React44.createElement(SelectPrimitive.Arrow, {
4982
4952
  ...props,
4983
4953
  className: tx("select.arrow", {}, classNames),
4984
4954
  ref: forwardedRef
@@ -5006,11 +4976,27 @@ var Select = {
5006
4976
  Arrow: SelectArrow
5007
4977
  };
5008
4978
 
4979
+ // src/components/Separator/Separator.tsx
4980
+ import * as SeparatorPrimitive from "@radix-ui/react-separator";
4981
+ import React45, { forwardRef as forwardRef31 } from "react";
4982
+ var Separator4 = /* @__PURE__ */ forwardRef31(({ classNames, orientation = "horizontal", subdued, ...props }, forwardedRef) => {
4983
+ const { tx } = useThemeContext();
4984
+ return /* @__PURE__ */ React45.createElement(SeparatorPrimitive.Root, {
4985
+ ...props,
4986
+ orientation,
4987
+ className: tx("separator.root", {
4988
+ orientation,
4989
+ subdued
4990
+ }, classNames),
4991
+ ref: forwardedRef
4992
+ });
4993
+ });
4994
+
5009
4995
  // src/components/Skeleton/Skeleton.tsx
5010
- import React44, { forwardRef as forwardRef30 } from "react";
5011
- var Skeleton = /* @__PURE__ */ forwardRef30(({ classNames, variant = "default", ...props }, forwardedRef) => {
4996
+ import React46, { forwardRef as forwardRef32 } from "react";
4997
+ var Skeleton = /* @__PURE__ */ forwardRef32(({ classNames, variant = "default", ...props }, forwardedRef) => {
5012
4998
  const { tx } = useThemeContext();
5013
- return /* @__PURE__ */ React44.createElement("div", {
4999
+ return /* @__PURE__ */ React46.createElement("div", {
5014
5000
  ...props,
5015
5001
  className: tx("skeleton.root", {
5016
5002
  variant
@@ -5021,9 +5007,9 @@ var Skeleton = /* @__PURE__ */ forwardRef30(({ classNames, variant = "default",
5021
5007
 
5022
5008
  // src/components/Splitter/Splitter.tsx
5023
5009
  import { createContextScope as createContextScope4 } from "@radix-ui/react-context";
5024
- import { Primitive as Primitive21 } from "@radix-ui/react-primitive";
5025
- import { Slot as Slot21 } from "@radix-ui/react-slot";
5026
- import React45 from "react";
5010
+ import { Primitive as Primitive20 } from "@radix-ui/react-primitive";
5011
+ import { Slot as Slot20 } from "@radix-ui/react-slot";
5012
+ import React47 from "react";
5027
5013
  var SPLITTER_NAME = "Splitter";
5028
5014
  var [createSplitterContext, createSplitterScope] = createContextScope4(SPLITTER_NAME);
5029
5015
  var [SplitterProvider, useSplitterContext] = createSplitterContext(SPLITTER_NAME);
@@ -5032,13 +5018,13 @@ var SplitterRoot = slottable(({ asChild, mode = "top", ratio = 0.5, transition =
5032
5018
  const { tx } = useThemeContext();
5033
5019
  const { __scopeSplitter, ...rest } = props;
5034
5020
  const { className, ...restProps } = composableProps(rest);
5035
- const Comp = asChild ? Slot21 : Primitive21.div;
5036
- return /* @__PURE__ */ React45.createElement(SplitterProvider, {
5021
+ const Comp = asChild ? Slot20 : Primitive20.div;
5022
+ return /* @__PURE__ */ React47.createElement(SplitterProvider, {
5037
5023
  scope: __scopeSplitter,
5038
5024
  mode,
5039
5025
  ratio,
5040
5026
  transition
5041
- }, /* @__PURE__ */ React45.createElement(Comp, {
5027
+ }, /* @__PURE__ */ React47.createElement(Comp, {
5042
5028
  ...restProps,
5043
5029
  ref: forwardedRef,
5044
5030
  className: tx("splitter.root", {}, className)
@@ -5049,13 +5035,13 @@ var PANEL_NAME = "Splitter.Panel";
5049
5035
  var SplitterPanel = slottable(({ classNames, asChild, children, position, style, ...props }, forwardedRef) => {
5050
5036
  const { tx } = useThemeContext();
5051
5037
  const { __scopeSplitter, ...rest } = props;
5052
- const Comp = asChild ? Slot21 : Primitive21.div;
5038
+ const Comp = asChild ? Slot20 : Primitive20.div;
5053
5039
  const { mode, ratio = 0.5, transition } = useSplitterContext(PANEL_NAME, __scopeSplitter);
5054
5040
  const { className, ...restProps } = composableProps(rest);
5055
5041
  const isTopPanel = position === "top";
5056
5042
  const topOffset = isTopPanel ? "0%" : mode === "top" ? "100%" : mode === "bottom" ? "0%" : `${ratio * 100}%`;
5057
5043
  const height = isTopPanel ? mode === "top" ? "100%" : mode === "bottom" ? "0%" : `${ratio * 100}%` : mode === "bottom" ? "100%" : mode === "top" ? "0%" : `${(1 - ratio) * 100}%`;
5058
- return /* @__PURE__ */ React45.createElement(Comp, {
5044
+ return /* @__PURE__ */ React47.createElement(Comp, {
5059
5045
  ...restProps,
5060
5046
  ref: forwardedRef,
5061
5047
  className: tx("splitter.panel", {}, className),
@@ -5074,10 +5060,10 @@ var Splitter = {
5074
5060
  };
5075
5061
 
5076
5062
  // src/components/Status/Status.tsx
5077
- import React46, { forwardRef as forwardRef31 } from "react";
5078
- var Status = /* @__PURE__ */ forwardRef31(({ classNames, children, progress = 0, indeterminate, variant, ...props }, forwardedRef) => {
5063
+ import React48, { forwardRef as forwardRef33 } from "react";
5064
+ var Status = /* @__PURE__ */ forwardRef33(({ classNames, children, progress = 0, indeterminate, variant, ...props }, forwardedRef) => {
5079
5065
  const { tx } = useThemeContext();
5080
- return /* @__PURE__ */ React46.createElement("span", {
5066
+ return /* @__PURE__ */ React48.createElement("span", {
5081
5067
  role: "status",
5082
5068
  ...props,
5083
5069
  className: tx("status.root", {
@@ -5085,7 +5071,7 @@ var Status = /* @__PURE__ */ forwardRef31(({ classNames, children, progress = 0,
5085
5071
  variant
5086
5072
  }, classNames),
5087
5073
  ref: forwardedRef
5088
- }, /* @__PURE__ */ React46.createElement("span", {
5074
+ }, /* @__PURE__ */ React48.createElement("span", {
5089
5075
  role: "none",
5090
5076
  className: tx("status.bar", {
5091
5077
  indeterminate,
@@ -5100,13 +5086,13 @@ var Status = /* @__PURE__ */ forwardRef31(({ classNames, children, progress = 0,
5100
5086
  });
5101
5087
 
5102
5088
  // src/components/Tag/Tag.tsx
5103
- import { Primitive as Primitive22 } from "@radix-ui/react-primitive";
5104
- import { Slot as Slot22 } from "@radix-ui/react-slot";
5105
- import React47, { forwardRef as forwardRef32 } from "react";
5106
- var Tag = /* @__PURE__ */ forwardRef32(({ asChild, palette = "neutral", classNames, ...props }, forwardedRef) => {
5089
+ import { Primitive as Primitive21 } from "@radix-ui/react-primitive";
5090
+ import { Slot as Slot21 } from "@radix-ui/react-slot";
5091
+ import React49, { forwardRef as forwardRef34 } from "react";
5092
+ var Tag = /* @__PURE__ */ forwardRef34(({ asChild, palette = "neutral", classNames, ...props }, forwardedRef) => {
5107
5093
  const { tx } = useThemeContext();
5108
- const Comp = asChild ? Slot22 : Primitive22.span;
5109
- return /* @__PURE__ */ React47.createElement(Comp, {
5094
+ const Comp = asChild ? Slot21 : Primitive21.span;
5095
+ return /* @__PURE__ */ React49.createElement(Comp, {
5110
5096
  ...props,
5111
5097
  className: tx("tag.root", {
5112
5098
  palette
@@ -5118,72 +5104,71 @@ var Tag = /* @__PURE__ */ forwardRef32(({ asChild, palette = "neutral", classNam
5118
5104
 
5119
5105
  // src/components/Toast/Toast.tsx
5120
5106
  import * as ToastPrimitive from "@radix-ui/react-toast";
5121
- import React48, { forwardRef as forwardRef33 } from "react";
5122
- import { useTranslation as useTranslation6 } from "react-i18next";
5123
- import { translationKey as translationKey6 } from "#translations";
5107
+ import React50, { forwardRef as forwardRef35 } from "react";
5108
+ import { useTranslation as useTranslation7 } from "react-i18next";
5109
+ import { translationKey as translationKey7 } from "#translations";
5124
5110
  var ToastProvider = ToastPrimitive.Provider;
5125
- var ToastViewport = /* @__PURE__ */ forwardRef33(({ classNames, ...props }, forwardedRef) => {
5111
+ var ToastViewport = /* @__PURE__ */ forwardRef35(({ classNames, ...props }, forwardedRef) => {
5126
5112
  const { tx } = useThemeContext();
5127
- return /* @__PURE__ */ React48.createElement(ToastPrimitive.Viewport, {
5113
+ return /* @__PURE__ */ React50.createElement(ToastPrimitive.Viewport, {
5128
5114
  ...props,
5129
5115
  className: tx("toast.viewport", {}, classNames),
5130
5116
  ref: forwardedRef
5131
5117
  });
5132
5118
  });
5133
5119
  ToastViewport.displayName = "Toast.Viewport";
5134
- var ToastRoot = /* @__PURE__ */ forwardRef33(({ classNames, children, ...props }, forwardedRef) => {
5120
+ var ToastRoot = /* @__PURE__ */ forwardRef35(({ classNames, children, ...props }, forwardedRef) => {
5135
5121
  const { tx } = useThemeContext();
5136
- return /* @__PURE__ */ React48.createElement(ToastPrimitive.Root, {
5122
+ return /* @__PURE__ */ React50.createElement(ToastPrimitive.Root, {
5137
5123
  ...props,
5138
5124
  className: tx("toast.root", {}, classNames),
5139
5125
  ref: forwardedRef
5140
- }, /* @__PURE__ */ React48.createElement(ElevationProvider, {
5126
+ }, /* @__PURE__ */ React50.createElement(ElevationProvider, {
5141
5127
  elevation: "toast"
5142
- }, /* @__PURE__ */ React48.createElement(Column.Root, {
5128
+ }, /* @__PURE__ */ React50.createElement(Column.Root, {
5143
5129
  classNames: tx("toast.grid", {})
5144
5130
  }, children)));
5145
5131
  });
5146
5132
  ToastRoot.displayName = "Toast.Root";
5147
- var ToastTitle = /* @__PURE__ */ forwardRef33(({ classNames, children, icon, onClose, ...props }, forwardedRef) => {
5148
- const { t } = useTranslation6(translationKey6);
5133
+ var ToastTitle = /* @__PURE__ */ forwardRef35(({ classNames, children, icon, onClose, ...props }, forwardedRef) => {
5134
+ const { t } = useTranslation7(translationKey7);
5149
5135
  const { tx } = useThemeContext();
5150
- return /* @__PURE__ */ React48.createElement(Column.Row, {
5136
+ return /* @__PURE__ */ React50.createElement(Column.Row, {
5151
5137
  classNames: tx("toast.header", {})
5152
- }, icon && /* @__PURE__ */ React48.createElement("div", {
5153
- className: tx("toast.icon", {})
5154
- }, /* @__PURE__ */ React48.createElement(Icon, {
5138
+ }, icon && /* @__PURE__ */ React50.createElement(Column.Block, null, /* @__PURE__ */ React50.createElement(Icon, {
5155
5139
  icon,
5156
5140
  size: 5
5157
- })), /* @__PURE__ */ React48.createElement(ToastPrimitive.Title, {
5141
+ })), /* @__PURE__ */ React50.createElement(ToastPrimitive.Title, {
5158
5142
  ...props,
5159
5143
  className: tx("toast.title", {}, classNames),
5160
5144
  ref: forwardedRef
5161
- }, children), onClose && /* @__PURE__ */ React48.createElement(IconButton, {
5145
+ }, children), onClose && /* @__PURE__ */ React50.createElement(Column.Block, {
5146
+ end: true
5147
+ }, /* @__PURE__ */ React50.createElement(IconButton, {
5162
5148
  variant: "ghost",
5163
5149
  icon: "ph--x--regular",
5164
5150
  iconOnly: true,
5165
5151
  label: t("toolbar-close.label"),
5166
- classNames: tx("toast.close", {}),
5167
5152
  onClick: onClose
5168
- }));
5153
+ })));
5169
5154
  });
5170
5155
  ToastTitle.displayName = "Toast.Title";
5171
- var ToastDescription = /* @__PURE__ */ forwardRef33(({ classNames, children, ...props }, forwardedRef) => {
5156
+ var ToastDescription = /* @__PURE__ */ forwardRef35(({ classNames, children, ...props }, forwardedRef) => {
5172
5157
  const { tx } = useThemeContext();
5173
- return /* @__PURE__ */ React48.createElement(ToastPrimitive.Description, {
5158
+ return /* @__PURE__ */ React50.createElement(ToastPrimitive.Description, {
5174
5159
  ...props,
5175
5160
  className: tx("toast.description", {}, classNames),
5176
5161
  ref: forwardedRef
5177
5162
  }, children);
5178
5163
  });
5179
5164
  ToastDescription.displayName = "Toast.Description";
5180
- var ToastActions = /* @__PURE__ */ forwardRef33(({ classNames, children, ...props }, forwardedRef) => {
5165
+ var ToastActions = /* @__PURE__ */ forwardRef35(({ classNames, children, ...props }, forwardedRef) => {
5181
5166
  const { tx } = useThemeContext();
5182
- return /* @__PURE__ */ React48.createElement(Column.Center, {
5167
+ return /* @__PURE__ */ React50.createElement(Column.Center, {
5183
5168
  classNames: tx("toast.actions", {}, classNames),
5184
5169
  ref: forwardedRef,
5185
5170
  ...props
5186
- }, /* @__PURE__ */ React48.createElement(DensityProvider, {
5171
+ }, /* @__PURE__ */ React50.createElement(DensityProvider, {
5187
5172
  density: "sm"
5188
5173
  }, children));
5189
5174
  });
@@ -5200,6 +5185,204 @@ var Toast = {
5200
5185
  Action: ToastAction,
5201
5186
  Close: ToastClose
5202
5187
  };
5188
+
5189
+ // src/components/Toolbar/Toolbar.tsx
5190
+ import { Primitive as Primitive22 } from "@radix-ui/react-primitive";
5191
+ import { Slot as Slot22 } from "@radix-ui/react-slot";
5192
+ import * as ToolbarPrimitive from "@radix-ui/react-toolbar";
5193
+ import React51, { forwardRef as forwardRef36 } from "react";
5194
+ import { useTranslation as useTranslation8 } from "react-i18next";
5195
+ import { translationKey as translationKey8 } from "#translations";
5196
+ var ToolbarRoot = composable(({ children, density, disabled, layoutManaged, orientation, ...props }, forwardedRef) => {
5197
+ const { className, role, ...rest } = composableProps(props);
5198
+ const { tx } = useThemeContext();
5199
+ return /* @__PURE__ */ React51.createElement(ToolbarPrimitive.Root, {
5200
+ ...rest,
5201
+ ...role !== "none" && {
5202
+ role
5203
+ },
5204
+ orientation,
5205
+ "data-arrow-keys": orientation === "vertical" ? "up down" : "left right",
5206
+ className: tx("toolbar.root", {
5207
+ density,
5208
+ disabled,
5209
+ layoutManaged
5210
+ }, className),
5211
+ ref: forwardedRef
5212
+ }, children);
5213
+ });
5214
+ ToolbarRoot.displayName = "Toolbar.Root";
5215
+ var ToolbarText = slottable(({ children, asChild, ...props }, forwardedRef) => {
5216
+ const { className, ...rest } = composableProps(props);
5217
+ const Comp = asChild ? Slot22 : Primitive22.div;
5218
+ const { tx } = useThemeContext();
5219
+ return /* @__PURE__ */ React51.createElement(Comp, {
5220
+ ...rest,
5221
+ className: tx("toolbar.text", {}, className),
5222
+ ref: forwardedRef
5223
+ }, children);
5224
+ });
5225
+ ToolbarText.displayName = "Toolbar.Text";
5226
+ var ToolbarButton = /* @__PURE__ */ forwardRef36((props, forwardedRef) => {
5227
+ return /* @__PURE__ */ React51.createElement(ToolbarPrimitive.Button, {
5228
+ asChild: true
5229
+ }, /* @__PURE__ */ React51.createElement(Button, {
5230
+ ...props,
5231
+ ref: forwardedRef
5232
+ }));
5233
+ });
5234
+ ToolbarButton.displayName = "Toolbar.Button";
5235
+ var ToolbarIconButton = /* @__PURE__ */ forwardRef36((props, forwardedRef) => {
5236
+ return /* @__PURE__ */ React51.createElement(ToolbarPrimitive.Button, {
5237
+ asChild: true
5238
+ }, /* @__PURE__ */ React51.createElement(IconButton, {
5239
+ ...props,
5240
+ ref: forwardedRef
5241
+ }));
5242
+ });
5243
+ ToolbarIconButton.displayName = "Toolbar.IconButton";
5244
+ var ToolbarToggle = /* @__PURE__ */ forwardRef36((props, forwardedRef) => {
5245
+ return /* @__PURE__ */ React51.createElement(ToolbarPrimitive.Button, {
5246
+ asChild: true
5247
+ }, /* @__PURE__ */ React51.createElement(Toggle, {
5248
+ ...props,
5249
+ ref: forwardedRef
5250
+ }));
5251
+ });
5252
+ ToolbarToggle.displayName = "Toolbar.Toggle";
5253
+ var ToolbarLink = /* @__PURE__ */ forwardRef36((props, forwardedRef) => {
5254
+ return /* @__PURE__ */ React51.createElement(ToolbarPrimitive.Link, {
5255
+ asChild: true
5256
+ }, /* @__PURE__ */ React51.createElement(Link, {
5257
+ ...props,
5258
+ ref: forwardedRef
5259
+ }));
5260
+ });
5261
+ ToolbarLink.displayName = "Toolbar.Link";
5262
+ var ToolbarToggleGroup2 = /* @__PURE__ */ forwardRef36(({ classNames, children, elevation, ...props }, forwardedRef) => {
5263
+ return /* @__PURE__ */ React51.createElement(ToolbarPrimitive.ToolbarToggleGroup, {
5264
+ ...props,
5265
+ asChild: true
5266
+ }, /* @__PURE__ */ React51.createElement(ButtonGroup, {
5267
+ classNames,
5268
+ children,
5269
+ elevation,
5270
+ ref: forwardedRef
5271
+ }));
5272
+ });
5273
+ ToolbarToggleGroup2.displayName = "Toolbar.ToggleGroup";
5274
+ var ToolbarToggleGroupItem = /* @__PURE__ */ forwardRef36(({ variant, density, elevation, classNames, children, ...props }, forwardedRef) => {
5275
+ return /* @__PURE__ */ React51.createElement(ToolbarPrimitive.ToolbarToggleItem, {
5276
+ ...props,
5277
+ asChild: true
5278
+ }, /* @__PURE__ */ React51.createElement(Button, {
5279
+ variant,
5280
+ density,
5281
+ elevation,
5282
+ classNames,
5283
+ children,
5284
+ ref: forwardedRef
5285
+ }));
5286
+ });
5287
+ ToolbarToggleGroupItem.displayName = "Toolbar.ToggleGroupItem";
5288
+ var ToolbarToggleGroupIconItem = /* @__PURE__ */ forwardRef36(({ variant, density, elevation, classNames, icon, label, iconOnly, iconClassNames, ...props }, forwardedRef) => {
5289
+ return /* @__PURE__ */ React51.createElement(ToolbarPrimitive.ToolbarToggleItem, {
5290
+ ...props,
5291
+ asChild: true
5292
+ }, /* @__PURE__ */ React51.createElement(IconButton, {
5293
+ variant,
5294
+ density,
5295
+ elevation,
5296
+ classNames,
5297
+ icon,
5298
+ label,
5299
+ iconOnly,
5300
+ iconClassNames,
5301
+ ref: forwardedRef
5302
+ }));
5303
+ });
5304
+ ToolbarToggleGroupIconItem.displayName = "Toolbar.ToggleGroupIconItem";
5305
+ var ToolbarSeparator = /* @__PURE__ */ forwardRef36(({ variant = "gap", ...props }, forwardedRef) => {
5306
+ return variant === "line" ? /* @__PURE__ */ React51.createElement(ToolbarPrimitive.Separator, {
5307
+ asChild: true
5308
+ }, /* @__PURE__ */ React51.createElement(Separator4, {
5309
+ orientation: "vertical",
5310
+ ...props,
5311
+ ref: forwardedRef
5312
+ })) : /* @__PURE__ */ React51.createElement(ToolbarPrimitive.Separator, {
5313
+ className: "grow",
5314
+ ref: forwardedRef
5315
+ });
5316
+ });
5317
+ ToolbarSeparator.displayName = "Toolbar.Separator";
5318
+ var ToolbarDragHandle = /* @__PURE__ */ forwardRef36(({ testId = "drag-handle", label }, forwardedRef) => {
5319
+ const { t } = useTranslation8(translationKey8);
5320
+ return /* @__PURE__ */ React51.createElement(ToolbarIconButton, {
5321
+ "data-testid": testId,
5322
+ tabIndex: -1,
5323
+ noTooltip: true,
5324
+ iconOnly: true,
5325
+ icon: "ph--dots-six-vertical--regular",
5326
+ variant: "ghost",
5327
+ label: label ?? t("toolbar-drag-handle.label"),
5328
+ classNames: "dx-focus-ring-none cursor-pointer",
5329
+ disabled: !forwardedRef,
5330
+ ref: forwardedRef
5331
+ });
5332
+ });
5333
+ ToolbarDragHandle.displayName = "Toolbar.DragHandle";
5334
+ var TOOLBAR_ACTION_ICONS = {
5335
+ close: "ph--x--regular",
5336
+ delete: "ph--trash--regular"
5337
+ };
5338
+ var TOOLBAR_ACTION_LABEL_KEYS = {
5339
+ close: "toolbar-close.label",
5340
+ delete: "toolbar-delete.label"
5341
+ };
5342
+ var ToolbarActionIconButton = /* @__PURE__ */ forwardRef36(({ action, onClick, label }, forwardedRef) => {
5343
+ const { t } = useTranslation8(translationKey8);
5344
+ return /* @__PURE__ */ React51.createElement(ToolbarIconButton, {
5345
+ iconOnly: true,
5346
+ icon: TOOLBAR_ACTION_ICONS[action],
5347
+ variant: "ghost",
5348
+ label: label ?? t(TOOLBAR_ACTION_LABEL_KEYS[action]),
5349
+ classNames: "cursor-pointer",
5350
+ onClick,
5351
+ ref: forwardedRef
5352
+ });
5353
+ });
5354
+ ToolbarActionIconButton.displayName = "Toolbar.ActionIconButton";
5355
+ function ToolbarMenu({ context, items }) {
5356
+ const { t } = useTranslation8(translationKey8);
5357
+ return /* @__PURE__ */ React51.createElement(DropdownMenu.Root, null, /* @__PURE__ */ React51.createElement(DropdownMenu.Trigger, {
5358
+ disabled: !items?.length,
5359
+ asChild: true
5360
+ }, /* @__PURE__ */ React51.createElement(ToolbarIconButton, {
5361
+ iconOnly: true,
5362
+ variant: "ghost",
5363
+ icon: "ph--dots-three-vertical--regular",
5364
+ label: t("toolbar-menu.label")
5365
+ })), (items?.length ?? 0) > 0 && /* @__PURE__ */ React51.createElement(DropdownMenu.Portal, null, /* @__PURE__ */ React51.createElement(DropdownMenu.Content, null, /* @__PURE__ */ React51.createElement(DropdownMenu.Viewport, null, items?.map(({ label, onClick: onSelect }, index) => /* @__PURE__ */ React51.createElement(DropdownMenu.Item, {
5366
+ key: index,
5367
+ onSelect: () => onSelect(context)
5368
+ }, label))), /* @__PURE__ */ React51.createElement(DropdownMenu.Arrow, null))));
5369
+ }
5370
+ ToolbarMenu.displayName = "Toolbar.Menu";
5371
+ var Toolbar = {
5372
+ Root: ToolbarRoot,
5373
+ Text: ToolbarText,
5374
+ Button: ToolbarButton,
5375
+ IconButton: ToolbarIconButton,
5376
+ Link: ToolbarLink,
5377
+ Toggle: ToolbarToggle,
5378
+ ToggleGroup: ToolbarToggleGroup2,
5379
+ ToggleGroupItem: ToolbarToggleGroupItem,
5380
+ ToggleGroupIconItem: ToolbarToggleGroupIconItem,
5381
+ Separator: ToolbarSeparator,
5382
+ DragHandle: ToolbarDragHandle,
5383
+ ActionIconButton: ToolbarActionIconButton,
5384
+ Menu: ToolbarMenu
5385
+ };
5203
5386
  export {
5204
5387
  AlertDialog,
5205
5388
  Avatar,
@@ -5249,13 +5432,15 @@ export {
5249
5432
  SegmentedDateTime,
5250
5433
  SegmentedTime,
5251
5434
  Select,
5252
- Separator3 as Separator,
5435
+ Separator4 as Separator,
5253
5436
  Skeleton,
5254
5437
  Splitter,
5255
5438
  Status,
5439
+ SystemIconButton,
5256
5440
  TREEGRID_PARENT_OF_SEPARATOR,
5257
5441
  TREEGRID_PATH_SEPARATOR,
5258
5442
  Tag,
5443
+ TextTooltip,
5259
5444
  ThemeContext,
5260
5445
  ThemeProvider,
5261
5446
  ThrowError,
@@ -5264,6 +5449,7 @@ export {
5264
5449
  ToggleGroup,
5265
5450
  ToggleGroupIconItem,
5266
5451
  ToggleGroupItem,
5452
+ ToggleIconButton,
5267
5453
  Toolbar,
5268
5454
  Tooltip,
5269
5455
  Trans,