@dxos/react-ui 0.6.13 → 0.6.14-main.1366248

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 (127) hide show
  1. package/dist/lib/browser/index.mjs +740 -200
  2. package/dist/lib/browser/index.mjs.map +3 -3
  3. package/dist/lib/browser/meta.json +1 -1
  4. package/dist/lib/node/index.cjs +2932 -0
  5. package/dist/lib/node/index.cjs.map +7 -0
  6. package/dist/lib/node/meta.json +1 -0
  7. package/dist/lib/node-esm/index.mjs +2931 -0
  8. package/dist/lib/node-esm/index.mjs.map +7 -0
  9. package/dist/lib/node-esm/meta.json +1 -0
  10. package/dist/types/src/components/Avatars/Avatar.stories.d.ts +15 -1
  11. package/dist/types/src/components/Avatars/Avatar.stories.d.ts.map +1 -1
  12. package/dist/types/src/components/Avatars/AvatarGroup.stories.d.ts +6 -1
  13. package/dist/types/src/components/Avatars/AvatarGroup.stories.d.ts.map +1 -1
  14. package/dist/types/src/components/Breadcrumb/Breadcrumb.stories.d.ts +9 -1
  15. package/dist/types/src/components/Breadcrumb/Breadcrumb.stories.d.ts.map +1 -1
  16. package/dist/types/src/components/Buttons/Button.d.ts +1 -1
  17. package/dist/types/src/components/Buttons/Button.d.ts.map +1 -1
  18. package/dist/types/src/components/Buttons/Button.stories.d.ts +12 -17
  19. package/dist/types/src/components/Buttons/Button.stories.d.ts.map +1 -1
  20. package/dist/types/src/components/Buttons/Toggle.stories.d.ts +2 -1
  21. package/dist/types/src/components/Buttons/Toggle.stories.d.ts.map +1 -1
  22. package/dist/types/src/components/Buttons/ToggleGroup.stories.d.ts +20 -1
  23. package/dist/types/src/components/Buttons/ToggleGroup.stories.d.ts.map +1 -1
  24. package/dist/types/src/components/DensityProvider/DensityProvider.d.ts.map +1 -1
  25. package/dist/types/src/components/Dialogs/AlertDialog.stories.d.ts +12 -1
  26. package/dist/types/src/components/Dialogs/AlertDialog.stories.d.ts.map +1 -1
  27. package/dist/types/src/components/Dialogs/Dialog.stories.d.ts +11 -1
  28. package/dist/types/src/components/Dialogs/Dialog.stories.d.ts.map +1 -1
  29. package/dist/types/src/components/Icon/Icon.d.ts +1 -1
  30. package/dist/types/src/components/Icon/Icon.d.ts.map +1 -1
  31. package/dist/types/src/components/Input/Input.d.ts.map +1 -1
  32. package/dist/types/src/components/Input/Input.stories.d.ts +16 -1
  33. package/dist/types/src/components/Input/Input.stories.d.ts.map +1 -1
  34. package/dist/types/src/components/Lists/List.stories.d.ts +2 -3
  35. package/dist/types/src/components/Lists/List.stories.d.ts.map +1 -1
  36. package/dist/types/src/components/Lists/Tree.stories.d.ts +5 -1
  37. package/dist/types/src/components/Lists/Tree.stories.d.ts.map +1 -1
  38. package/dist/types/src/components/Lists/Treegrid.stories.d.ts +3 -2
  39. package/dist/types/src/components/Lists/Treegrid.stories.d.ts.map +1 -1
  40. package/dist/types/src/components/Main/Main.stories.d.ts +5 -1
  41. package/dist/types/src/components/Main/Main.stories.d.ts.map +1 -1
  42. package/dist/types/src/components/Menus/ContextMenu.stories.d.ts +29 -1
  43. package/dist/types/src/components/Menus/ContextMenu.stories.d.ts.map +1 -1
  44. package/dist/types/src/components/Menus/DropdownMenu.d.ts +105 -44
  45. package/dist/types/src/components/Menus/DropdownMenu.d.ts.map +1 -1
  46. package/dist/types/src/components/Menus/DropdownMenu.stories.d.ts +29 -1
  47. package/dist/types/src/components/Menus/DropdownMenu.stories.d.ts.map +1 -1
  48. package/dist/types/src/components/Message/Message.stories.d.ts +6 -1
  49. package/dist/types/src/components/Message/Message.stories.d.ts.map +1 -1
  50. package/dist/types/src/components/Popover/Popover.d.ts +87 -21
  51. package/dist/types/src/components/Popover/Popover.d.ts.map +1 -1
  52. package/dist/types/src/components/Popover/Popover.stories.d.ts +20 -1
  53. package/dist/types/src/components/Popover/Popover.stories.d.ts.map +1 -1
  54. package/dist/types/src/components/ScrollArea/ScrollArea.stories.d.ts +20 -1
  55. package/dist/types/src/components/ScrollArea/ScrollArea.stories.d.ts.map +1 -1
  56. package/dist/types/src/components/Select/Select.d.ts +4 -2
  57. package/dist/types/src/components/Select/Select.d.ts.map +1 -1
  58. package/dist/types/src/components/Select/Select.stories.d.ts +10 -11
  59. package/dist/types/src/components/Select/Select.stories.d.ts.map +1 -1
  60. package/dist/types/src/components/Status/Status.stories.d.ts +0 -3
  61. package/dist/types/src/components/Status/Status.stories.d.ts.map +1 -1
  62. package/dist/types/src/components/ThemeProvider/ThemeProvider.d.ts +4 -5
  63. package/dist/types/src/components/ThemeProvider/ThemeProvider.d.ts.map +1 -1
  64. package/dist/types/src/components/ThemeProvider/TranslationsProvider.d.ts +4 -4
  65. package/dist/types/src/components/Toast/Toast.d.ts.map +1 -1
  66. package/dist/types/src/components/Toast/Toast.stories.d.ts +20 -1
  67. package/dist/types/src/components/Toast/Toast.stories.d.ts.map +1 -1
  68. package/dist/types/src/components/Toolbar/Toolbar.d.ts +4 -2
  69. package/dist/types/src/components/Toolbar/Toolbar.d.ts.map +1 -1
  70. package/dist/types/src/components/Toolbar/Toolbar.stories.d.ts +30 -1
  71. package/dist/types/src/components/Toolbar/Toolbar.stories.d.ts.map +1 -1
  72. package/dist/types/src/components/Tooltip/Tooltip.stories.d.ts +13 -1
  73. package/dist/types/src/components/Tooltip/Tooltip.stories.d.ts.map +1 -1
  74. package/dist/types/src/hooks/useThemeContext.d.ts.map +1 -1
  75. package/dist/types/src/playground/Controls.stories.d.ts +2 -6
  76. package/dist/types/src/playground/Controls.stories.d.ts.map +1 -1
  77. package/dist/types/src/playground/Surfaces.stories.d.ts +6 -2
  78. package/dist/types/src/playground/Surfaces.stories.d.ts.map +1 -1
  79. package/dist/types/src/playground/Typography.stories.d.ts +1 -1
  80. package/dist/types/src/testing/decorators/index.d.ts +1 -0
  81. package/dist/types/src/testing/decorators/index.d.ts.map +1 -1
  82. package/dist/types/src/testing/decorators/withVariants.d.ts +13 -0
  83. package/dist/types/src/testing/decorators/withVariants.d.ts.map +1 -0
  84. package/package.json +28 -17
  85. package/src/components/Avatars/Avatar.stories.tsx +3 -2
  86. package/src/components/Avatars/AvatarGroup.stories.tsx +3 -2
  87. package/src/components/Breadcrumb/Breadcrumb.stories.tsx +3 -2
  88. package/src/components/Buttons/Button.stories.tsx +34 -63
  89. package/src/components/Buttons/Button.tsx +46 -36
  90. package/src/components/Buttons/Toggle.stories.tsx +3 -2
  91. package/src/components/Buttons/ToggleGroup.stories.tsx +3 -2
  92. package/src/components/DensityProvider/DensityProvider.tsx +1 -1
  93. package/src/components/Dialogs/AlertDialog.stories.tsx +3 -2
  94. package/src/components/Dialogs/Dialog.stories.tsx +3 -2
  95. package/src/components/Icon/Icon.tsx +11 -9
  96. package/src/components/Input/Input.stories.tsx +4 -3
  97. package/src/components/Link/Link.stories.tsx +1 -1
  98. package/src/components/Lists/List.stories.tsx +4 -4
  99. package/src/components/Lists/Tree.stories.tsx +3 -2
  100. package/src/components/Lists/Treegrid.stories.tsx +7 -5
  101. package/src/components/Main/Main.stories.tsx +3 -2
  102. package/src/components/Menus/ContextMenu.stories.tsx +3 -2
  103. package/src/components/Menus/DropdownMenu.stories.tsx +43 -3
  104. package/src/components/Menus/DropdownMenu.tsx +518 -69
  105. package/src/components/Message/Message.stories.tsx +3 -2
  106. package/src/components/Popover/Popover.stories.tsx +27 -3
  107. package/src/components/Popover/Popover.tsx +524 -55
  108. package/src/components/ScrollArea/ScrollArea.stories.tsx +3 -2
  109. package/src/components/Select/Select.stories.tsx +14 -31
  110. package/src/components/Select/Select.tsx +24 -12
  111. package/src/components/Status/Status.stories.tsx +1 -2
  112. package/src/components/Tag/Tag.stories.tsx +1 -1
  113. package/src/components/ThemeProvider/ThemeProvider.tsx +17 -18
  114. package/src/components/Toast/Toast.stories.tsx +3 -2
  115. package/src/components/Toast/Toast.tsx +1 -4
  116. package/src/components/Toolbar/Toolbar.stories.tsx +3 -2
  117. package/src/components/Toolbar/Toolbar.tsx +21 -1
  118. package/src/components/Tooltip/Tooltip.stories.tsx +3 -2
  119. package/src/hooks/useThemeContext.ts +3 -1
  120. package/src/playground/Controls.stories.tsx +7 -10
  121. package/src/playground/Surfaces.stories.tsx +4 -3
  122. package/src/playground/Typography.stories.tsx +2 -2
  123. package/src/testing/decorators/index.ts +1 -0
  124. package/src/testing/decorators/withVariants.tsx +45 -0
  125. package/dist/types/src/playground/helpers.d.ts +0 -6
  126. package/dist/types/src/playground/helpers.d.ts.map +0 -1
  127. package/src/playground/helpers.tsx +0 -32
@@ -94,7 +94,8 @@ var useTranslationsContext = () => useContext4(TranslationsContext);
94
94
 
95
95
  // packages/ui/react-ui/src/hooks/useThemeContext.ts
96
96
  import { useContext as useContext5 } from "react";
97
- var useThemeContext = () => useContext5(ThemeContext);
97
+ import { raise } from "@dxos/debug";
98
+ var useThemeContext = () => useContext5(ThemeContext) ?? raise(new Error("Missing ThemeContext"));
98
99
 
99
100
  // packages/ui/react-ui/src/hooks/useVisualViewport.ts
100
101
  import { useEffect as useEffect2, useState as useState2 } from "react";
@@ -121,8 +122,8 @@ var useVisualViewport = (deps) => {
121
122
  // packages/ui/react-ui/src/components/AnchoredOverflow/AnchoredOverflow.tsx
122
123
  var AnchoredOverflowRoot = /* @__PURE__ */ forwardRef(({ asChild, classNames, children, ...props }, forwardedRef) => {
123
124
  const { tx } = useThemeContext();
124
- const Root3 = asChild ? Slot : Primitive.div;
125
- return /* @__PURE__ */ React2.createElement(Root3, {
125
+ const Root5 = asChild ? Slot : Primitive.div;
126
+ return /* @__PURE__ */ React2.createElement(Root5, {
126
127
  role: "none",
127
128
  ...props,
128
129
  className: tx("anchoredOverflow.root", "overflow-anchored", {}, classNames),
@@ -131,8 +132,8 @@ var AnchoredOverflowRoot = /* @__PURE__ */ forwardRef(({ asChild, classNames, ch
131
132
  });
132
133
  var AnchoredOverflowAnchor = /* @__PURE__ */ forwardRef(({ asChild, classNames, children, ...props }, forwardedRef) => {
133
134
  const { tx } = useThemeContext();
134
- const Root3 = asChild ? Slot : Primitive.div;
135
- return /* @__PURE__ */ React2.createElement(Root3, {
135
+ const Root5 = asChild ? Slot : Primitive.div;
136
+ return /* @__PURE__ */ React2.createElement(Root5, {
136
137
  role: "none",
137
138
  ...props,
138
139
  className: tx("anchoredOverflow.anchor", "overflow-anchor", {}, classNames),
@@ -153,8 +154,8 @@ import React4, { forwardRef as forwardRef3 } from "react";
153
154
  import { useId } from "@dxos/react-hooks";
154
155
 
155
156
  // packages/ui/react-ui/src/components/Icon/Icon.tsx
156
- import React3, { forwardRef as forwardRef2 } from "react";
157
- var Icon = /* @__PURE__ */ forwardRef2(({ icon, classNames, size, ...props }, forwardedRef) => {
157
+ import React3, { forwardRef as forwardRef2, memo } from "react";
158
+ var Icon = /* @__PURE__ */ memo(/* @__PURE__ */ forwardRef2(({ icon, classNames, size, ...props }, forwardedRef) => {
158
159
  const { tx } = useThemeContext();
159
160
  return /* @__PURE__ */ React3.createElement("svg", {
160
161
  ...props,
@@ -165,7 +166,7 @@ var Icon = /* @__PURE__ */ forwardRef2(({ icon, classNames, size, ...props }, fo
165
166
  }, /* @__PURE__ */ React3.createElement("use", {
166
167
  href: `/icons.svg#${icon}`
167
168
  }));
168
- });
169
+ }));
169
170
 
170
171
  // packages/ui/react-ui/src/components/Avatars/Avatar.tsx
171
172
  var AVATAR_NAME = "Avatar";
@@ -259,10 +260,10 @@ var AvatarFrame = /* @__PURE__ */ forwardRef3(({ classNames, children, ...props
259
260
  }));
260
261
  });
261
262
  var AvatarLabel = /* @__PURE__ */ forwardRef3(({ asChild, srOnly, classNames, ...props }, forwardedRef) => {
262
- const Root3 = asChild ? Slot2 : Primitive2.span;
263
+ const Root5 = asChild ? Slot2 : Primitive2.span;
263
264
  const { tx } = useThemeContext();
264
265
  const { labelId } = useAvatarContext("AvatarLabel");
265
- return /* @__PURE__ */ React4.createElement(Root3, {
266
+ return /* @__PURE__ */ React4.createElement(Root5, {
266
267
  ...props,
267
268
  id: labelId,
268
269
  ref: forwardedRef,
@@ -272,10 +273,10 @@ var AvatarLabel = /* @__PURE__ */ forwardRef3(({ asChild, srOnly, classNames, ..
272
273
  });
273
274
  });
274
275
  var AvatarDescription = /* @__PURE__ */ forwardRef3(({ asChild, srOnly, classNames, ...props }, forwardedRef) => {
275
- const Root3 = asChild ? Slot2 : Primitive2.span;
276
+ const Root5 = asChild ? Slot2 : Primitive2.span;
276
277
  const { tx } = useThemeContext();
277
278
  const { descriptionId } = useAvatarContext("AvatarDescription");
278
- return /* @__PURE__ */ React4.createElement(Root3, {
279
+ return /* @__PURE__ */ React4.createElement(Root5, {
279
280
  ...props,
280
281
  id: descriptionId,
281
282
  ref: forwardedRef,
@@ -438,8 +439,8 @@ import { Slot as Slot3 } from "@radix-ui/react-slot";
438
439
  import React6, { forwardRef as forwardRef5 } from "react";
439
440
  var Link = /* @__PURE__ */ forwardRef5(({ asChild, variant, classNames, ...props }, forwardedRef) => {
440
441
  const { tx } = useThemeContext();
441
- const Root3 = asChild ? Slot3 : Primitive3.a;
442
- return /* @__PURE__ */ React6.createElement(Root3, {
442
+ const Root5 = asChild ? Slot3 : Primitive3.a;
443
+ return /* @__PURE__ */ React6.createElement(Root5, {
443
444
  ...props,
444
445
  className: tx("link.root", "link", {
445
446
  variant
@@ -451,8 +452,8 @@ var Link = /* @__PURE__ */ forwardRef5(({ asChild, variant, classNames, ...props
451
452
  // packages/ui/react-ui/src/components/Breadcrumb/Breadcrumb.tsx
452
453
  var BreadcrumbRoot = /* @__PURE__ */ forwardRef6(({ asChild, classNames, ...props }, forwardedRef) => {
453
454
  const { tx } = useThemeContext();
454
- const Root3 = asChild ? Slot4 : Primitive4.div;
455
- return /* @__PURE__ */ React7.createElement(Root3, {
455
+ const Root5 = asChild ? Slot4 : Primitive4.div;
456
+ return /* @__PURE__ */ React7.createElement(Root5, {
456
457
  role: "navigation",
457
458
  ...props,
458
459
  className: tx("breadcrumb.root", "breadcrumb", {}, classNames),
@@ -461,8 +462,8 @@ var BreadcrumbRoot = /* @__PURE__ */ forwardRef6(({ asChild, classNames, ...prop
461
462
  });
462
463
  var BreadcrumbList = /* @__PURE__ */ forwardRef6(({ asChild, classNames, ...props }, forwardedRef) => {
463
464
  const { tx } = useThemeContext();
464
- const Root3 = asChild ? Slot4 : Primitive4.ol;
465
- return /* @__PURE__ */ React7.createElement(Root3, {
465
+ const Root5 = asChild ? Slot4 : Primitive4.ol;
466
+ return /* @__PURE__ */ React7.createElement(Root5, {
466
467
  role: "list",
467
468
  ...props,
468
469
  className: tx("breadcrumb.list", "breadcrumb__list", {}, classNames),
@@ -471,8 +472,8 @@ var BreadcrumbList = /* @__PURE__ */ forwardRef6(({ asChild, classNames, ...prop
471
472
  });
472
473
  var BreadcrumbListItem = /* @__PURE__ */ forwardRef6(({ asChild, classNames, ...props }, forwardedRef) => {
473
474
  const { tx } = useThemeContext();
474
- const Root3 = asChild ? Slot4 : Primitive4.li;
475
- return /* @__PURE__ */ React7.createElement(Root3, {
475
+ const Root5 = asChild ? Slot4 : Primitive4.li;
476
+ return /* @__PURE__ */ React7.createElement(Root5, {
476
477
  role: "listitem",
477
478
  ...props,
478
479
  className: tx("breadcrumb.listItem", "breadcrumb__list__item", {}, classNames),
@@ -480,16 +481,16 @@ var BreadcrumbListItem = /* @__PURE__ */ forwardRef6(({ asChild, classNames, ...
480
481
  });
481
482
  });
482
483
  var BreadcrumbLink = /* @__PURE__ */ forwardRef6(({ asChild, ...props }, forwardedRef) => {
483
- const Root3 = asChild ? Slot4 : Link;
484
- return /* @__PURE__ */ React7.createElement(Root3, {
484
+ const Root5 = asChild ? Slot4 : Link;
485
+ return /* @__PURE__ */ React7.createElement(Root5, {
485
486
  ...props,
486
487
  ref: forwardedRef
487
488
  });
488
489
  });
489
490
  var BreadcrumbCurrent = /* @__PURE__ */ forwardRef6(({ asChild, classNames, ...props }, forwardedRef) => {
490
491
  const { tx } = useThemeContext();
491
- const Root3 = asChild ? Slot4 : "h1";
492
- return /* @__PURE__ */ React7.createElement(Root3, {
492
+ const Root5 = asChild ? Slot4 : "h1";
493
+ return /* @__PURE__ */ React7.createElement(Root5, {
493
494
  ...props,
494
495
  "aria-current": "page",
495
496
  className: tx("breadcrumb.current", "breadcrumb__item__heading--current", {}, classNames),
@@ -520,19 +521,19 @@ var Breadcrumb = {
520
521
  import { createContext as createContext3 } from "@radix-ui/react-context";
521
522
  import { Primitive as Primitive5 } from "@radix-ui/react-primitive";
522
523
  import { Slot as Slot5 } from "@radix-ui/react-slot";
523
- import React8, { forwardRef as forwardRef7 } from "react";
524
+ import React8, { forwardRef as forwardRef7, memo as memo2 } from "react";
524
525
  var BUTTON_GROUP_NAME = "ButtonGroup";
525
526
  var BUTTON_NAME = "Button";
526
527
  var [ButtonGroupProvider, useButtonGroupContext] = createContext3(BUTTON_GROUP_NAME, {
527
528
  inGroup: false
528
529
  });
529
- var Button = /* @__PURE__ */ forwardRef7(({ classNames, children, density: propsDensity, elevation: propsElevation, variant = "default", asChild, ...props }, ref) => {
530
+ var Button = /* @__PURE__ */ memo2(/* @__PURE__ */ forwardRef7(({ classNames, children, density: propsDensity, elevation: propsElevation, variant = "default", asChild, ...props }, ref) => {
530
531
  const { inGroup } = useButtonGroupContext(BUTTON_NAME);
531
532
  const { tx } = useThemeContext();
532
533
  const elevation = useElevationContext(propsElevation);
533
534
  const density = useDensityContext(propsDensity);
534
- const Root3 = asChild ? Slot5 : Primitive5.button;
535
- return /* @__PURE__ */ React8.createElement(Root3, {
535
+ const Root5 = asChild ? Slot5 : Primitive5.button;
536
+ return /* @__PURE__ */ React8.createElement(Root5, {
536
537
  ref,
537
538
  ...props,
538
539
  "data-variant": variant,
@@ -549,13 +550,13 @@ var Button = /* @__PURE__ */ forwardRef7(({ classNames, children, density: props
549
550
  disabled: true
550
551
  }
551
552
  }, children);
552
- });
553
+ }));
553
554
  Button.displayName = BUTTON_NAME;
554
555
  var ButtonGroup = /* @__PURE__ */ forwardRef7(({ children, elevation: propsElevation, classNames, asChild, ...props }, forwardedRef) => {
555
556
  const { tx } = useThemeContext();
556
557
  const elevation = useElevationContext(propsElevation);
557
- const Root3 = asChild ? Slot5 : Primitive5.div;
558
- return /* @__PURE__ */ React8.createElement(Root3, {
558
+ const Root5 = asChild ? Slot5 : Primitive5.div;
559
+ return /* @__PURE__ */ React8.createElement(Root5, {
559
560
  role: "none",
560
561
  ...props,
561
562
  className: tx("button.group", "button-group", {
@@ -785,8 +786,8 @@ var ContextMenuContent = /* @__PURE__ */ forwardRef12(({ classNames, children, .
785
786
  });
786
787
  var ContextMenuViewport = /* @__PURE__ */ forwardRef12(({ classNames, asChild, children, ...props }, forwardedRef) => {
787
788
  const { tx } = useThemeContext();
788
- const Root3 = asChild ? Slot6 : Primitive6.div;
789
- return /* @__PURE__ */ React14.createElement(Root3, {
789
+ const Root5 = asChild ? Slot6 : Primitive6.div;
790
+ return /* @__PURE__ */ React14.createElement(Root5, {
790
791
  ...props,
791
792
  className: tx("menu.viewport", "menu__viewport", {}, classNames),
792
793
  ref: forwardedRef
@@ -850,99 +851,364 @@ var ContextMenu2 = {
850
851
  };
851
852
 
852
853
  // packages/ui/react-ui/src/components/Menus/DropdownMenu.tsx
853
- import * as DropdownMenuPrimitive from "@radix-ui/react-dropdown-menu";
854
+ import { composeEventHandlers } from "@radix-ui/primitive";
855
+ import { composeRefs } from "@radix-ui/react-compose-refs";
856
+ import { createContextScope } from "@radix-ui/react-context";
857
+ import { useId as useId3 } from "@radix-ui/react-id";
858
+ import * as MenuPrimitive from "@radix-ui/react-menu";
859
+ import { createMenuScope } from "@radix-ui/react-menu";
854
860
  import { Primitive as Primitive7 } from "@radix-ui/react-primitive";
855
861
  import { Slot as Slot7 } from "@radix-ui/react-slot";
856
- import React15, { forwardRef as forwardRef13 } from "react";
857
- var DropdownMenuRoot = DropdownMenuPrimitive.DropdownMenu;
858
- var DropdownMenuTrigger = DropdownMenuPrimitive.Trigger;
859
- var DropdownMenuPortal = DropdownMenuPrimitive.Portal;
860
- var useDropdownMenuContext2 = DropdownMenuPrimitive.useDropdownMenuContext;
861
- var useDropdownMenuMenuScope2 = DropdownMenuPrimitive.useDropdownMenuMenuScope;
862
- var DropdownMenuContent = /* @__PURE__ */ forwardRef13(({ classNames, children, ...props }, forwardedRef) => {
863
- const { tx } = useThemeContext();
864
- return /* @__PURE__ */ React15.createElement(DropdownMenuPrimitive.Content, {
865
- sideOffset: 4,
866
- collisionPadding: 8,
867
- ...props,
868
- className: tx("menu.content", "menu", {}, classNames),
869
- ref: forwardedRef
870
- }, /* @__PURE__ */ React15.createElement(ElevationProvider, {
871
- elevation: "chrome"
862
+ import { useControllableState } from "@radix-ui/react-use-controllable-state";
863
+ import React15, { useRef, useCallback, forwardRef as forwardRef13, useEffect as useEffect3 } from "react";
864
+ var DROPDOWN_MENU_NAME = "DropdownMenu";
865
+ var [createDropdownMenuContext, createDropdownMenuScope] = createContextScope(DROPDOWN_MENU_NAME, [
866
+ createMenuScope
867
+ ]);
868
+ var useMenuScope = createMenuScope();
869
+ var [DropdownMenuProvider, useDropdownMenuContext] = createDropdownMenuContext(DROPDOWN_MENU_NAME);
870
+ var DropdownMenuRoot = (props) => {
871
+ const { __scopeDropdownMenu, children, dir, open: openProp, defaultOpen, onOpenChange, modal = true } = props;
872
+ const menuScope = useMenuScope(__scopeDropdownMenu);
873
+ const triggerRef = useRef(null);
874
+ const [open = false, setOpen] = useControllableState({
875
+ prop: openProp,
876
+ defaultProp: defaultOpen,
877
+ onChange: onOpenChange
878
+ });
879
+ return /* @__PURE__ */ React15.createElement(DropdownMenuProvider, {
880
+ scope: __scopeDropdownMenu,
881
+ triggerId: useId3(),
882
+ triggerRef,
883
+ contentId: useId3(),
884
+ open,
885
+ onOpenChange: setOpen,
886
+ onOpenToggle: useCallback(() => setOpen((prevOpen) => !prevOpen), [
887
+ setOpen
888
+ ]),
889
+ modal
890
+ }, /* @__PURE__ */ React15.createElement(MenuPrimitive.Root, {
891
+ ...menuScope,
892
+ open,
893
+ onOpenChange: setOpen,
894
+ dir,
895
+ modal
872
896
  }, children));
897
+ };
898
+ DropdownMenuRoot.displayName = DROPDOWN_MENU_NAME;
899
+ var TRIGGER_NAME = "DropdownMenuTrigger";
900
+ var DropdownMenuTrigger = /* @__PURE__ */ forwardRef13((props, forwardedRef) => {
901
+ const { __scopeDropdownMenu, disabled = false, ...triggerProps } = props;
902
+ const context = useDropdownMenuContext(TRIGGER_NAME, __scopeDropdownMenu);
903
+ const menuScope = useMenuScope(__scopeDropdownMenu);
904
+ return /* @__PURE__ */ React15.createElement(MenuPrimitive.Anchor, {
905
+ asChild: true,
906
+ ...menuScope
907
+ }, /* @__PURE__ */ React15.createElement(Primitive7.button, {
908
+ type: "button",
909
+ id: context.triggerId,
910
+ "aria-haspopup": "menu",
911
+ "aria-expanded": context.open,
912
+ "aria-controls": context.open ? context.contentId : void 0,
913
+ "data-state": context.open ? "open" : "closed",
914
+ "data-disabled": disabled ? "" : void 0,
915
+ disabled,
916
+ ...triggerProps,
917
+ ref: composeRefs(forwardedRef, context.triggerRef),
918
+ onPointerDown: composeEventHandlers(props.onPointerDown, (event) => {
919
+ if (!disabled && event.button === 0 && event.ctrlKey === false) {
920
+ context.onOpenToggle();
921
+ if (!context.open) {
922
+ event.preventDefault();
923
+ }
924
+ }
925
+ }),
926
+ onKeyDown: composeEventHandlers(props.onKeyDown, (event) => {
927
+ if (disabled) {
928
+ return;
929
+ }
930
+ if ([
931
+ "Enter",
932
+ " "
933
+ ].includes(event.key)) {
934
+ context.onOpenToggle();
935
+ }
936
+ if (event.key === "ArrowDown") {
937
+ context.onOpenChange(true);
938
+ }
939
+ if ([
940
+ "Enter",
941
+ " ",
942
+ "ArrowDown"
943
+ ].includes(event.key)) {
944
+ event.preventDefault();
945
+ }
946
+ })
947
+ }));
873
948
  });
949
+ DropdownMenuTrigger.displayName = TRIGGER_NAME;
950
+ var VIRTUAL_TRIGGER_NAME = "DropdownMenuVirtualTrigger";
951
+ var DropdownMenuVirtualTrigger = (props) => {
952
+ const { __scopeDropdownMenu, virtualRef } = props;
953
+ const context = useDropdownMenuContext(VIRTUAL_TRIGGER_NAME, __scopeDropdownMenu);
954
+ const menuScope = useMenuScope(__scopeDropdownMenu);
955
+ useEffect3(() => {
956
+ if (virtualRef.current) {
957
+ context.triggerRef.current = virtualRef.current;
958
+ }
959
+ });
960
+ return /* @__PURE__ */ React15.createElement(MenuPrimitive.Anchor, {
961
+ ...menuScope,
962
+ virtualRef
963
+ });
964
+ };
965
+ DropdownMenuVirtualTrigger.displayName = VIRTUAL_TRIGGER_NAME;
966
+ var PORTAL_NAME = "DropdownMenuPortal";
967
+ var DropdownMenuPortal = (props) => {
968
+ const { __scopeDropdownMenu, ...portalProps } = props;
969
+ const menuScope = useMenuScope(__scopeDropdownMenu);
970
+ return /* @__PURE__ */ React15.createElement(MenuPrimitive.Portal, {
971
+ ...menuScope,
972
+ ...portalProps
973
+ });
974
+ };
975
+ DropdownMenuPortal.displayName = PORTAL_NAME;
874
976
  var DropdownMenuViewport = /* @__PURE__ */ forwardRef13(({ classNames, asChild, children, ...props }, forwardedRef) => {
875
977
  const { tx } = useThemeContext();
876
- const Root3 = asChild ? Slot7 : Primitive7.div;
877
- return /* @__PURE__ */ React15.createElement(Root3, {
978
+ const Root5 = asChild ? Slot7 : Primitive7.div;
979
+ return /* @__PURE__ */ React15.createElement(Root5, {
878
980
  ...props,
879
981
  className: tx("menu.viewport", "menu__viewport", {}, classNames),
880
982
  ref: forwardedRef
881
983
  }, children);
882
984
  });
883
- var DropdownMenuArrow = /* @__PURE__ */ forwardRef13(({ classNames, ...props }, forwardedRef) => {
985
+ var CONTENT_NAME = "DropdownMenuContent";
986
+ var DropdownMenuContent = /* @__PURE__ */ forwardRef13((props, forwardedRef) => {
987
+ const { __scopeDropdownMenu, classNames, ...contentProps } = props;
988
+ const { tx } = useThemeContext();
989
+ const context = useDropdownMenuContext(CONTENT_NAME, __scopeDropdownMenu);
990
+ const menuScope = useMenuScope(__scopeDropdownMenu);
991
+ const hasInteractedOutsideRef = useRef(false);
992
+ return /* @__PURE__ */ React15.createElement(MenuPrimitive.Content, {
993
+ id: context.contentId,
994
+ "aria-labelledby": context.triggerId,
995
+ ...menuScope,
996
+ ...contentProps,
997
+ ref: forwardedRef,
998
+ onCloseAutoFocus: composeEventHandlers(props.onCloseAutoFocus, (event) => {
999
+ if (!hasInteractedOutsideRef.current) {
1000
+ context.triggerRef.current?.focus();
1001
+ }
1002
+ hasInteractedOutsideRef.current = false;
1003
+ event.preventDefault();
1004
+ }),
1005
+ onInteractOutside: composeEventHandlers(props.onInteractOutside, (event) => {
1006
+ const originalEvent = event.detail.originalEvent;
1007
+ const ctrlLeftClick = originalEvent.button === 0 && originalEvent.ctrlKey === true;
1008
+ const isRightClick = originalEvent.button === 2 || ctrlLeftClick;
1009
+ if (!context.modal || isRightClick) {
1010
+ hasInteractedOutsideRef.current = true;
1011
+ }
1012
+ }),
1013
+ className: tx("menu.content", "menu", {}, classNames),
1014
+ style: {
1015
+ ...props.style,
1016
+ // re-namespace exposed content custom properties
1017
+ ...{
1018
+ "--radix-dropdown-menu-content-transform-origin": "var(--radix-popper-transform-origin)",
1019
+ "--radix-dropdown-menu-content-available-width": "var(--radix-popper-available-width)",
1020
+ "--radix-dropdown-menu-content-available-height": "var(--radix-popper-available-height)",
1021
+ "--radix-dropdown-menu-trigger-width": "var(--radix-popper-anchor-width)",
1022
+ "--radix-dropdown-menu-trigger-height": "var(--radix-popper-anchor-height)"
1023
+ }
1024
+ }
1025
+ });
1026
+ });
1027
+ DropdownMenuContent.displayName = CONTENT_NAME;
1028
+ var GROUP_NAME = "DropdownMenuGroup";
1029
+ var DropdownMenuGroup = /* @__PURE__ */ forwardRef13((props, forwardedRef) => {
1030
+ const { __scopeDropdownMenu, ...groupProps } = props;
1031
+ const menuScope = useMenuScope(__scopeDropdownMenu);
1032
+ return /* @__PURE__ */ React15.createElement(MenuPrimitive.Group, {
1033
+ ...menuScope,
1034
+ ...groupProps,
1035
+ ref: forwardedRef
1036
+ });
1037
+ });
1038
+ DropdownMenuGroup.displayName = GROUP_NAME;
1039
+ var LABEL_NAME = "DropdownMenuLabel";
1040
+ var DropdownMenuGroupLabel = /* @__PURE__ */ forwardRef13((props, forwardedRef) => {
1041
+ const { __scopeDropdownMenu, classNames, ...labelProps } = props;
1042
+ const menuScope = useMenuScope(__scopeDropdownMenu);
884
1043
  const { tx } = useThemeContext();
885
- return /* @__PURE__ */ React15.createElement(DropdownMenuPrimitive.Arrow, {
886
- ...props,
887
- className: tx("menu.arrow", "menu__arrow", {}, classNames),
1044
+ return /* @__PURE__ */ React15.createElement(MenuPrimitive.Label, {
1045
+ ...menuScope,
1046
+ ...labelProps,
1047
+ className: tx("menu.groupLabel", "menu__group__label", {}, classNames),
888
1048
  ref: forwardedRef
889
1049
  });
890
1050
  });
891
- var DropdownMenuGroup = DropdownMenuPrimitive.Group;
892
- var DropdownMenuItemIndicator = DropdownMenuPrimitive.ItemIndicator;
893
- var DropdownMenuItem = /* @__PURE__ */ forwardRef13(({ classNames, ...props }, forwardedRef) => {
1051
+ DropdownMenuGroupLabel.displayName = LABEL_NAME;
1052
+ var ITEM_NAME = "DropdownMenuItem";
1053
+ var DropdownMenuItem = /* @__PURE__ */ forwardRef13((props, forwardedRef) => {
1054
+ const { __scopeDropdownMenu, classNames, ...itemProps } = props;
1055
+ const menuScope = useMenuScope(__scopeDropdownMenu);
894
1056
  const { tx } = useThemeContext();
895
- return /* @__PURE__ */ React15.createElement(DropdownMenuPrimitive.Item, {
896
- ...props,
1057
+ return /* @__PURE__ */ React15.createElement(MenuPrimitive.Item, {
1058
+ ...menuScope,
1059
+ ...itemProps,
897
1060
  className: tx("menu.item", "menu__item", {}, classNames),
898
1061
  ref: forwardedRef
899
1062
  });
900
1063
  });
901
- var DropdownMenuCheckboxItem = /* @__PURE__ */ forwardRef13(({ classNames, ...props }, forwardedRef) => {
1064
+ DropdownMenuItem.displayName = ITEM_NAME;
1065
+ var CHECKBOX_ITEM_NAME = "DropdownMenuCheckboxItem";
1066
+ var DropdownMenuCheckboxItem = /* @__PURE__ */ forwardRef13((props, forwardedRef) => {
1067
+ const { __scopeDropdownMenu, classNames, ...checkboxItemProps } = props;
1068
+ const menuScope = useMenuScope(__scopeDropdownMenu);
902
1069
  const { tx } = useThemeContext();
903
- return /* @__PURE__ */ React15.createElement(DropdownMenuPrimitive.CheckboxItem, {
904
- ...props,
1070
+ return /* @__PURE__ */ React15.createElement(MenuPrimitive.CheckboxItem, {
1071
+ ...menuScope,
1072
+ ...checkboxItemProps,
905
1073
  className: tx("menu.item", "menu__item--checkbox", {}, classNames),
906
1074
  ref: forwardedRef
907
1075
  });
908
1076
  });
909
- var DropdownMenuSeparator = /* @__PURE__ */ forwardRef13(({ classNames, ...props }, forwardedRef) => {
1077
+ DropdownMenuCheckboxItem.displayName = CHECKBOX_ITEM_NAME;
1078
+ var RADIO_GROUP_NAME = "DropdownMenuRadioGroup";
1079
+ var DropdownMenuRadioGroup = /* @__PURE__ */ forwardRef13((props, forwardedRef) => {
1080
+ const { __scopeDropdownMenu, ...radioGroupProps } = props;
1081
+ const menuScope = useMenuScope(__scopeDropdownMenu);
1082
+ return /* @__PURE__ */ React15.createElement(MenuPrimitive.RadioGroup, {
1083
+ ...menuScope,
1084
+ ...radioGroupProps,
1085
+ ref: forwardedRef
1086
+ });
1087
+ });
1088
+ DropdownMenuRadioGroup.displayName = RADIO_GROUP_NAME;
1089
+ var RADIO_ITEM_NAME = "DropdownMenuRadioItem";
1090
+ var DropdownMenuRadioItem = /* @__PURE__ */ forwardRef13((props, forwardedRef) => {
1091
+ const { __scopeDropdownMenu, ...radioItemProps } = props;
1092
+ const menuScope = useMenuScope(__scopeDropdownMenu);
1093
+ return /* @__PURE__ */ React15.createElement(MenuPrimitive.RadioItem, {
1094
+ ...menuScope,
1095
+ ...radioItemProps,
1096
+ ref: forwardedRef
1097
+ });
1098
+ });
1099
+ DropdownMenuRadioItem.displayName = RADIO_ITEM_NAME;
1100
+ var INDICATOR_NAME = "DropdownMenuItemIndicator";
1101
+ var DropdownMenuItemIndicator = /* @__PURE__ */ forwardRef13((props, forwardedRef) => {
1102
+ const { __scopeDropdownMenu, ...itemIndicatorProps } = props;
1103
+ const menuScope = useMenuScope(__scopeDropdownMenu);
1104
+ return /* @__PURE__ */ React15.createElement(MenuPrimitive.ItemIndicator, {
1105
+ ...menuScope,
1106
+ ...itemIndicatorProps,
1107
+ ref: forwardedRef
1108
+ });
1109
+ });
1110
+ DropdownMenuItemIndicator.displayName = INDICATOR_NAME;
1111
+ var SEPARATOR_NAME = "DropdownMenuSeparator";
1112
+ var DropdownMenuSeparator = /* @__PURE__ */ forwardRef13((props, forwardedRef) => {
1113
+ const { __scopeDropdownMenu, classNames, ...separatorProps } = props;
1114
+ const menuScope = useMenuScope(__scopeDropdownMenu);
910
1115
  const { tx } = useThemeContext();
911
- return /* @__PURE__ */ React15.createElement(DropdownMenuPrimitive.Separator, {
912
- ...props,
1116
+ return /* @__PURE__ */ React15.createElement(MenuPrimitive.Separator, {
1117
+ ...menuScope,
1118
+ ...separatorProps,
913
1119
  className: tx("menu.separator", "menu__item", {}, classNames),
914
1120
  ref: forwardedRef
915
1121
  });
916
1122
  });
917
- var DropdownMenuGroupLabel = /* @__PURE__ */ forwardRef13(({ classNames, ...props }, forwardedRef) => {
1123
+ DropdownMenuSeparator.displayName = SEPARATOR_NAME;
1124
+ var ARROW_NAME = "DropdownMenuArrow";
1125
+ var DropdownMenuArrow = /* @__PURE__ */ forwardRef13((props, forwardedRef) => {
1126
+ const { __scopeDropdownMenu, classNames, ...arrowProps } = props;
1127
+ const menuScope = useMenuScope(__scopeDropdownMenu);
918
1128
  const { tx } = useThemeContext();
919
- return /* @__PURE__ */ React15.createElement(DropdownMenuPrimitive.Label, {
920
- ...props,
921
- className: tx("menu.groupLabel", "menu__group__label", {}, classNames),
1129
+ return /* @__PURE__ */ React15.createElement(MenuPrimitive.Arrow, {
1130
+ ...menuScope,
1131
+ ...arrowProps,
1132
+ className: tx("menu.arrow", "menu__arrow", {}, classNames),
922
1133
  ref: forwardedRef
923
1134
  });
924
1135
  });
925
- var DropdownMenu2 = {
1136
+ DropdownMenuArrow.displayName = ARROW_NAME;
1137
+ var DropdownMenuSub = (props) => {
1138
+ const { __scopeDropdownMenu, children, open: openProp, onOpenChange, defaultOpen } = props;
1139
+ const menuScope = useMenuScope(__scopeDropdownMenu);
1140
+ const [open = false, setOpen] = useControllableState({
1141
+ prop: openProp,
1142
+ defaultProp: defaultOpen,
1143
+ onChange: onOpenChange
1144
+ });
1145
+ return /* @__PURE__ */ React15.createElement(MenuPrimitive.Sub, {
1146
+ ...menuScope,
1147
+ open,
1148
+ onOpenChange: setOpen
1149
+ }, children);
1150
+ };
1151
+ var SUB_TRIGGER_NAME = "DropdownMenuSubTrigger";
1152
+ var DropdownMenuSubTrigger = /* @__PURE__ */ forwardRef13((props, forwardedRef) => {
1153
+ const { __scopeDropdownMenu, ...subTriggerProps } = props;
1154
+ const menuScope = useMenuScope(__scopeDropdownMenu);
1155
+ return /* @__PURE__ */ React15.createElement(MenuPrimitive.SubTrigger, {
1156
+ ...menuScope,
1157
+ ...subTriggerProps,
1158
+ ref: forwardedRef
1159
+ });
1160
+ });
1161
+ DropdownMenuSubTrigger.displayName = SUB_TRIGGER_NAME;
1162
+ var SUB_CONTENT_NAME = "DropdownMenuSubContent";
1163
+ var DropdownMenuSubContent = /* @__PURE__ */ forwardRef13((props, forwardedRef) => {
1164
+ const { __scopeDropdownMenu, ...subContentProps } = props;
1165
+ const menuScope = useMenuScope(__scopeDropdownMenu);
1166
+ return /* @__PURE__ */ React15.createElement(MenuPrimitive.SubContent, {
1167
+ ...menuScope,
1168
+ ...subContentProps,
1169
+ ref: forwardedRef,
1170
+ style: {
1171
+ ...props.style,
1172
+ // re-namespace exposed content custom properties
1173
+ ...{
1174
+ "--radix-dropdown-menu-content-transform-origin": "var(--radix-popper-transform-origin)",
1175
+ "--radix-dropdown-menu-content-available-width": "var(--radix-popper-available-width)",
1176
+ "--radix-dropdown-menu-content-available-height": "var(--radix-popper-available-height)",
1177
+ "--radix-dropdown-menu-trigger-width": "var(--radix-popper-anchor-width)",
1178
+ "--radix-dropdown-menu-trigger-height": "var(--radix-popper-anchor-height)"
1179
+ }
1180
+ }
1181
+ });
1182
+ });
1183
+ DropdownMenuSubContent.displayName = SUB_CONTENT_NAME;
1184
+ var DropdownMenu = {
926
1185
  Root: DropdownMenuRoot,
927
1186
  Trigger: DropdownMenuTrigger,
1187
+ VirtualTrigger: DropdownMenuVirtualTrigger,
928
1188
  Portal: DropdownMenuPortal,
929
1189
  Content: DropdownMenuContent,
930
1190
  Viewport: DropdownMenuViewport,
931
- Arrow: DropdownMenuArrow,
932
1191
  Group: DropdownMenuGroup,
1192
+ GroupLabel: DropdownMenuGroupLabel,
933
1193
  Item: DropdownMenuItem,
934
1194
  CheckboxItem: DropdownMenuCheckboxItem,
1195
+ RadioGroup: DropdownMenuRadioGroup,
1196
+ RadioItem: DropdownMenuRadioItem,
935
1197
  ItemIndicator: DropdownMenuItemIndicator,
936
1198
  Separator: DropdownMenuSeparator,
937
- GroupLabel: DropdownMenuGroupLabel
1199
+ Arrow: DropdownMenuArrow,
1200
+ Sub: DropdownMenuSub,
1201
+ SubTrigger: DropdownMenuSubTrigger,
1202
+ SubContent: DropdownMenuSubContent
938
1203
  };
1204
+ var useDropdownMenuMenuScope = useMenuScope;
939
1205
 
940
1206
  // packages/ui/react-ui/src/components/Input/Input.tsx
941
1207
  import { Check, Minus } from "@phosphor-icons/react";
942
1208
  import { Root as CheckboxPrimitive, Indicator as CheckboxIndicatorPrimitive } from "@radix-ui/react-checkbox";
943
1209
  import { Root as SwitchPrimitive, Thumb as SwitchThumbPrimitive } from "@radix-ui/react-switch";
944
- import { useControllableState } from "@radix-ui/react-use-controllable-state";
945
- import React16, { forwardRef as forwardRef14, Fragment, useCallback } from "react";
1210
+ import { useControllableState as useControllableState2 } from "@radix-ui/react-use-controllable-state";
1211
+ import React16, { forwardRef as forwardRef14, Fragment, useCallback as useCallback2 } from "react";
946
1212
  import { InputRoot, PinInput as PinInputPrimitive, TextInput as TextInputPrimitive, TextArea as TextAreaPrimitive, useInputContext, INPUT_NAME, Description as DescriptionPrimitive, DescriptionAndValidation as DescriptionAndValidationPrimitive, Label as LabelPrimitive, Validation as ValidationPrimitive } from "@dxos/react-input";
947
1213
  var Label3 = /* @__PURE__ */ forwardRef14(({ srOnly, classNames, children, ...props }, forwardedRef) => {
948
1214
  const { tx } = useThemeContext();
@@ -991,7 +1257,7 @@ var PinInput = /* @__PURE__ */ forwardRef14(({ density: propsDensity, elevation:
991
1257
  const { tx } = useThemeContext();
992
1258
  const density = useDensityContext(propsDensity);
993
1259
  const elevation = useElevationContext(propsElevation);
994
- const segmentClassName = useCallback(({ focused, validationValence }) => tx("input.input", "input--pin-segment", {
1260
+ const segmentClassName = useCallback2(({ focused, validationValence }) => tx("input.input", "input--pin-segment", {
995
1261
  variant: "static",
996
1262
  focused,
997
1263
  disabled: props.disabled,
@@ -1061,7 +1327,7 @@ var TextArea = /* @__PURE__ */ forwardRef14(({ __inputScope, classNames, density
1061
1327
  });
1062
1328
  });
1063
1329
  var Checkbox = /* @__PURE__ */ forwardRef14(({ __inputScope, checked: propsChecked, defaultChecked: propsDefaultChecked, onCheckedChange: propsOnCheckedChange, size, weight = "bold", classNames, ...props }, forwardedRef) => {
1064
- const [checked, onCheckedChange] = useControllableState({
1330
+ const [checked, onCheckedChange] = useControllableState2({
1065
1331
  prop: propsChecked,
1066
1332
  defaultProp: propsDefaultChecked,
1067
1333
  onChange: propsOnCheckedChange
@@ -1094,7 +1360,7 @@ var Checkbox = /* @__PURE__ */ forwardRef14(({ __inputScope, checked: propsCheck
1094
1360
  });
1095
1361
  var Switch = /* @__PURE__ */ forwardRef14(({ __inputScope, checked: propsChecked, defaultChecked: propsDefaultChecked, onCheckedChange: propsOnCheckedChange, size = 5, classNames, ...props }, forwardedRef) => {
1096
1362
  const { tx } = useThemeContext();
1097
- const [checked, onCheckedChange] = useControllableState({
1363
+ const [checked, onCheckedChange] = useControllableState2({
1098
1364
  prop: propsChecked,
1099
1365
  defaultProp: propsDefaultChecked,
1100
1366
  onChange: propsOnCheckedChange
@@ -1142,7 +1408,7 @@ import { List as ListPrimitive, ListItemHeading as ListPrimitiveItemHeading, Lis
1142
1408
  // packages/ui/react-ui/src/components/DensityProvider/DensityProvider.tsx
1143
1409
  import React17, { createContext as createContext7 } from "react";
1144
1410
  var DensityContext = /* @__PURE__ */ createContext7({
1145
- density: "coarse"
1411
+ density: "fine"
1146
1412
  });
1147
1413
  var DensityProvider = ({ density, children }) => /* @__PURE__ */ React17.createElement(DensityContext.Provider, {
1148
1414
  value: {
@@ -1163,10 +1429,10 @@ var List = /* @__PURE__ */ forwardRef15(({ classNames, children, ...props }, for
1163
1429
  }, children));
1164
1430
  });
1165
1431
  var ListItemEndcap = /* @__PURE__ */ forwardRef15(({ children, classNames, asChild, ...props }, forwardedRef) => {
1166
- const Root3 = asChild ? Slot8 : "div";
1432
+ const Root5 = asChild ? Slot8 : "div";
1167
1433
  const density = useDensityContext();
1168
1434
  const { tx } = useThemeContext();
1169
- return /* @__PURE__ */ React18.createElement(Root3, {
1435
+ return /* @__PURE__ */ React18.createElement(Root5, {
1170
1436
  ...!asChild && {
1171
1437
  role: "none"
1172
1438
  },
@@ -1277,25 +1543,25 @@ var TreeItem = {
1277
1543
 
1278
1544
  // packages/ui/react-ui/src/components/Lists/Treegrid.tsx
1279
1545
  import { useFocusableGroup, useArrowNavigationGroup } from "@fluentui/react-tabster";
1280
- import { createContextScope } from "@radix-ui/react-context";
1546
+ import { createContextScope as createContextScope2 } from "@radix-ui/react-context";
1281
1547
  import { Primitive as Primitive8 } from "@radix-ui/react-primitive";
1282
1548
  import { Slot as Slot9 } from "@radix-ui/react-slot";
1283
- import { useControllableState as useControllableState2 } from "@radix-ui/react-use-controllable-state";
1549
+ import { useControllableState as useControllableState3 } from "@radix-ui/react-use-controllable-state";
1284
1550
  import React20, { forwardRef as forwardRef17 } from "react";
1285
1551
  var TREEGRID_ROW_NAME = "TreegridRow";
1286
- var [createTreegridRowContext, createTreegridRowScope] = createContextScope(TREEGRID_ROW_NAME, []);
1552
+ var [createTreegridRowContext, createTreegridRowScope] = createContextScope2(TREEGRID_ROW_NAME, []);
1287
1553
  var [TreegridRowProvider, useTreegridRowContext] = createTreegridRowContext(TREEGRID_ROW_NAME);
1288
1554
  var PATH_SEPARATOR = "~";
1289
1555
  var PARENT_OF_SEPARATOR = " ";
1290
1556
  var TreegridRoot = /* @__PURE__ */ forwardRef17(({ asChild, classNames, children, style, gridTemplateColumns, ...props }, forwardedRef) => {
1291
1557
  const { tx } = useThemeContext();
1292
- const Root3 = asChild ? Slot9 : Primitive8.div;
1558
+ const Root5 = asChild ? Slot9 : Primitive8.div;
1293
1559
  const arrowNavigationAttrs = useArrowNavigationGroup({
1294
1560
  axis: "vertical",
1295
1561
  tabbable: false,
1296
1562
  circular: true
1297
1563
  });
1298
- return /* @__PURE__ */ React20.createElement(Root3, {
1564
+ return /* @__PURE__ */ React20.createElement(Root5, {
1299
1565
  role: "treegrid",
1300
1566
  ...arrowNavigationAttrs,
1301
1567
  ...props,
@@ -1309,10 +1575,10 @@ var TreegridRoot = /* @__PURE__ */ forwardRef17(({ asChild, classNames, children
1309
1575
  });
1310
1576
  var TreegridRow = /* @__PURE__ */ forwardRef17(({ __treegridRowScope, asChild, classNames, children, id, parentOf, open: propsOpen, defaultOpen, onOpenChange: propsOnOpenChange, ...props }, forwardedRef) => {
1311
1577
  const { tx } = useThemeContext();
1312
- const Root3 = asChild ? Slot9 : Primitive8.div;
1578
+ const Root5 = asChild ? Slot9 : Primitive8.div;
1313
1579
  const pathParts = id.split(PATH_SEPARATOR);
1314
1580
  const level = pathParts.length - 1;
1315
- const [open, onOpenChange] = useControllableState2({
1581
+ const [open, onOpenChange] = useControllableState3({
1316
1582
  prop: propsOpen,
1317
1583
  onChange: propsOnOpenChange,
1318
1584
  defaultProp: defaultOpen
@@ -1330,7 +1596,7 @@ var TreegridRow = /* @__PURE__ */ forwardRef17(({ __treegridRowScope, asChild, c
1330
1596
  open,
1331
1597
  onOpenChange,
1332
1598
  scope: __treegridRowScope
1333
- }, /* @__PURE__ */ React20.createElement(Root3, {
1599
+ }, /* @__PURE__ */ React20.createElement(Root5, {
1334
1600
  role: "row",
1335
1601
  "aria-level": level,
1336
1602
  className: tx("treegrid.row", "treegrid__row", {
@@ -1379,13 +1645,13 @@ import { createContext as createContext8 } from "@radix-ui/react-context";
1379
1645
  import { Root as DialogRoot2, DialogContent as DialogContent2 } from "@radix-ui/react-dialog";
1380
1646
  import { Primitive as Primitive9 } from "@radix-ui/react-primitive";
1381
1647
  import { Slot as Slot10 } from "@radix-ui/react-slot";
1382
- import { useControllableState as useControllableState3 } from "@radix-ui/react-use-controllable-state";
1383
- import React21, { forwardRef as forwardRef18, useCallback as useCallback3, useEffect as useEffect4, useRef, useState as useState4 } from "react";
1648
+ import { useControllableState as useControllableState4 } from "@radix-ui/react-use-controllable-state";
1649
+ import React21, { forwardRef as forwardRef18, useCallback as useCallback4, useEffect as useEffect5, useRef as useRef2, useState as useState4 } from "react";
1384
1650
  import { log } from "@dxos/log";
1385
1651
  import { useMediaQuery, useForwardedRef } from "@dxos/react-hooks";
1386
1652
 
1387
1653
  // packages/ui/react-ui/src/components/Main/useSwipeToDismiss.ts
1388
- import { useCallback as useCallback2, useEffect as useEffect3, useState as useState3 } from "react";
1654
+ import { useCallback as useCallback3, useEffect as useEffect4, useState as useState3 } from "react";
1389
1655
  var MotionState;
1390
1656
  (function(MotionState2) {
1391
1657
  MotionState2[MotionState2["IDLE"] = 0] = "IDLE";
@@ -1402,20 +1668,20 @@ var useSwipeToDismiss = (ref, {
1402
1668
  const $root = ref.current;
1403
1669
  const [motionState, setMotionState] = useState3(0);
1404
1670
  const [gestureStartX, setGestureStartX] = useState3(0);
1405
- const setIdle = useCallback2(() => {
1671
+ const setIdle = useCallback3(() => {
1406
1672
  setMotionState(0);
1407
1673
  $root?.style.removeProperty("inset-inline-start");
1408
1674
  $root?.style.setProperty("transition-duration", "200ms");
1409
1675
  }, [
1410
1676
  $root
1411
1677
  ]);
1412
- const setFollowing = useCallback2(() => {
1678
+ const setFollowing = useCallback3(() => {
1413
1679
  setMotionState(2);
1414
1680
  $root?.style.setProperty("transition-duration", "0ms");
1415
1681
  }, [
1416
1682
  $root
1417
1683
  ]);
1418
- const handlePointerDown = useCallback2(({ screenX }) => {
1684
+ const handlePointerDown = useCallback3(({ screenX }) => {
1419
1685
  if (motionState === 0) {
1420
1686
  setMotionState(1);
1421
1687
  setGestureStartX(screenX);
@@ -1423,7 +1689,7 @@ var useSwipeToDismiss = (ref, {
1423
1689
  }, [
1424
1690
  motionState
1425
1691
  ]);
1426
- const handlePointerMove = useCallback2(({ screenX }) => {
1692
+ const handlePointerMove = useCallback3(({ screenX }) => {
1427
1693
  if ($root) {
1428
1694
  const delta = Math.min(screenX - gestureStartX, 0);
1429
1695
  switch (motionState) {
@@ -1447,12 +1713,12 @@ var useSwipeToDismiss = (ref, {
1447
1713
  motionState,
1448
1714
  gestureStartX
1449
1715
  ]);
1450
- const handlePointerUp = useCallback2(() => {
1716
+ const handlePointerUp = useCallback3(() => {
1451
1717
  setIdle();
1452
1718
  }, [
1453
1719
  setIdle
1454
1720
  ]);
1455
- useEffect3(() => {
1721
+ useEffect4(() => {
1456
1722
  $root?.addEventListener("pointerdown", handlePointerDown);
1457
1723
  return () => {
1458
1724
  $root?.removeEventListener("pointerdown", handlePointerDown);
@@ -1461,7 +1727,7 @@ var useSwipeToDismiss = (ref, {
1461
1727
  $root,
1462
1728
  handlePointerDown
1463
1729
  ]);
1464
- useEffect3(() => {
1730
+ useEffect4(() => {
1465
1731
  $root && document.documentElement.addEventListener("pointermove", handlePointerMove);
1466
1732
  return () => {
1467
1733
  document.documentElement.removeEventListener("pointermove", handlePointerMove);
@@ -1470,7 +1736,7 @@ var useSwipeToDismiss = (ref, {
1470
1736
  $root,
1471
1737
  handlePointerMove
1472
1738
  ]);
1473
- useEffect3(() => {
1739
+ useEffect4(() => {
1474
1740
  $root && document.documentElement.addEventListener("pointerup", handlePointerUp);
1475
1741
  return () => {
1476
1742
  document.documentElement.removeEventListener("pointerup", handlePointerUp);
@@ -1490,7 +1756,7 @@ var MAIN_NAME = "Main";
1490
1756
  var GENERIC_CONSUMER_NAME = "GenericConsumer";
1491
1757
  var landmarkAttr = "data-main-landmark";
1492
1758
  var useLandmarkMover = (propsOnKeyDown, landmark) => {
1493
- const handleKeyDown = useCallback3((event) => {
1759
+ const handleKeyDown = useCallback4((event) => {
1494
1760
  const target = event.target;
1495
1761
  if (event.target === event.currentTarget && event.key === "Tab" && target.hasAttribute(landmarkAttr)) {
1496
1762
  event.preventDefault();
@@ -1543,26 +1809,26 @@ var useSidebars = (consumerName = GENERIC_CONSUMER_NAME) => {
1543
1809
  return {
1544
1810
  navigationSidebarOpen,
1545
1811
  setNavigationSidebarOpen,
1546
- toggleNavigationSidebar: useCallback3(() => setNavigationSidebarOpen(!navigationSidebarOpen), [
1812
+ toggleNavigationSidebar: useCallback4(() => setNavigationSidebarOpen(!navigationSidebarOpen), [
1547
1813
  navigationSidebarOpen,
1548
1814
  setNavigationSidebarOpen
1549
1815
  ]),
1550
- openNavigationSidebar: useCallback3(() => setNavigationSidebarOpen(true), [
1816
+ openNavigationSidebar: useCallback4(() => setNavigationSidebarOpen(true), [
1551
1817
  setNavigationSidebarOpen
1552
1818
  ]),
1553
- closeNavigationSidebar: useCallback3(() => setNavigationSidebarOpen(false), [
1819
+ closeNavigationSidebar: useCallback4(() => setNavigationSidebarOpen(false), [
1554
1820
  setNavigationSidebarOpen
1555
1821
  ]),
1556
1822
  complementarySidebarOpen,
1557
1823
  setComplementarySidebarOpen,
1558
- toggleComplementarySidebar: useCallback3(() => setComplementarySidebarOpen(!complementarySidebarOpen), [
1824
+ toggleComplementarySidebar: useCallback4(() => setComplementarySidebarOpen(!complementarySidebarOpen), [
1559
1825
  complementarySidebarOpen,
1560
1826
  setComplementarySidebarOpen
1561
1827
  ]),
1562
- openComplementarySidebar: useCallback3(() => setComplementarySidebarOpen(true), [
1828
+ openComplementarySidebar: useCallback4(() => setComplementarySidebarOpen(true), [
1563
1829
  setComplementarySidebarOpen
1564
1830
  ]),
1565
- closeComplementarySidebar: useCallback3(() => setComplementarySidebarOpen(false), [
1831
+ closeComplementarySidebar: useCallback4(() => setComplementarySidebarOpen(false), [
1566
1832
  setComplementarySidebarOpen
1567
1833
  ])
1568
1834
  };
@@ -1572,19 +1838,19 @@ var MainRoot = ({ navigationSidebarOpen: propsNavigationSidebarOpen, defaultNavi
1572
1838
  const [isLg] = useMediaQuery("lg", {
1573
1839
  ssr: false
1574
1840
  });
1575
- const [navigationSidebarOpen = isLg, setNavigationSidebarOpen] = useControllableState3({
1841
+ const [navigationSidebarOpen = isLg, setNavigationSidebarOpen] = useControllableState4({
1576
1842
  prop: propsNavigationSidebarOpen,
1577
1843
  defaultProp: defaultNavigationSidebarOpen,
1578
1844
  onChange: onNavigationSidebarOpenChange
1579
1845
  });
1580
- const [complementarySidebarOpen = false, setComplementarySidebarOpen] = useControllableState3({
1846
+ const [complementarySidebarOpen = false, setComplementarySidebarOpen] = useControllableState4({
1581
1847
  prop: propsComplementarySidebarOpen,
1582
1848
  defaultProp: defaultComplementarySidebarOpen,
1583
1849
  onChange: onComplementarySidebarOpenChange
1584
1850
  });
1585
1851
  const [resizing, setResizing] = useState4(false);
1586
- const resizeInterval = useRef(null);
1587
- const handleResize = useCallback3(() => {
1852
+ const resizeInterval = useRef2(null);
1853
+ const handleResize = useCallback4(() => {
1588
1854
  setResizing(true);
1589
1855
  if (resizeInterval.current) {
1590
1856
  clearTimeout(resizeInterval.current);
@@ -1594,7 +1860,7 @@ var MainRoot = ({ navigationSidebarOpen: propsNavigationSidebarOpen, defaultNavi
1594
1860
  resizeInterval.current = null;
1595
1861
  }, resizeDebounce);
1596
1862
  }, []);
1597
- useEffect4(() => {
1863
+ useEffect5(() => {
1598
1864
  window.addEventListener("resize", handleResize);
1599
1865
  return () => window.removeEventListener("resize", handleResize);
1600
1866
  }, [
@@ -1619,11 +1885,11 @@ var MainSidebar = /* @__PURE__ */ forwardRef18(({ classNames, children, swipeToD
1619
1885
  });
1620
1886
  const { tx } = useThemeContext();
1621
1887
  const ref = useForwardedRef(forwardedRef);
1622
- const noopRef = useRef(null);
1888
+ const noopRef = useRef2(null);
1623
1889
  useSwipeToDismiss(swipeToDismiss ? ref : noopRef, {
1624
1890
  onDismiss: () => setOpen(false)
1625
1891
  });
1626
- const handleKeyDown = useCallback3((event) => {
1892
+ const handleKeyDown = useCallback4((event) => {
1627
1893
  if (event.key === "Escape") {
1628
1894
  event.target.closest("[data-tabster]")?.focus();
1629
1895
  }
@@ -1631,11 +1897,11 @@ var MainSidebar = /* @__PURE__ */ forwardRef18(({ classNames, children, swipeToD
1631
1897
  }, [
1632
1898
  props.onKeyDown
1633
1899
  ]);
1634
- const Root3 = isLg ? Primitive9.div : DialogContent2;
1900
+ const Root5 = isLg ? Primitive9.div : DialogContent2;
1635
1901
  return /* @__PURE__ */ React21.createElement(DialogRoot2, {
1636
1902
  open,
1637
1903
  modal: false
1638
- }, /* @__PURE__ */ React21.createElement(Root3, {
1904
+ }, /* @__PURE__ */ React21.createElement(Root5, {
1639
1905
  ...!isLg && {
1640
1906
  forceMount: true,
1641
1907
  tabIndex: -1,
@@ -1686,9 +1952,9 @@ MainNavigationSidebar.displayName = NAVIGATION_SIDEBAR_NAME;
1686
1952
  var MainContent = /* @__PURE__ */ forwardRef18(({ asChild, classNames, bounce, handlesFocus, children, role, ...props }, forwardedRef) => {
1687
1953
  const { navigationSidebarOpen, complementarySidebarOpen } = useMainContext(MAIN_NAME);
1688
1954
  const { tx } = useThemeContext();
1689
- const Root3 = asChild ? Slot10 : role ? "div" : "main";
1955
+ const Root5 = asChild ? Slot10 : role ? "div" : "main";
1690
1956
  const mover = useLandmarkMover(props.onKeyDown, "1");
1691
- return /* @__PURE__ */ React21.createElement(Root3, {
1957
+ return /* @__PURE__ */ React21.createElement(Root5, {
1692
1958
  role,
1693
1959
  ...handlesFocus && {
1694
1960
  ...mover
@@ -1729,9 +1995,9 @@ var MainOverlay = /* @__PURE__ */ forwardRef18(({ classNames, ...props }, forwar
1729
1995
  var MainNotch = /* @__PURE__ */ forwardRef18(({ classNames, ...props }, forwardedRef) => {
1730
1996
  const { tx } = useThemeContext();
1731
1997
  const { navigationSidebarOpen } = useMainContext(MAIN_NAME);
1732
- const notchElement = useRef(null);
1998
+ const notchElement = useRef2(null);
1733
1999
  const ref = useComposedRefs(forwardedRef, notchElement);
1734
- const handleKeyDown = useCallback3((event) => {
2000
+ const handleKeyDown = useCallback4((event) => {
1735
2001
  switch (event.key) {
1736
2002
  case "Escape":
1737
2003
  props?.onKeyDown?.(event);
@@ -1764,19 +2030,19 @@ import { createContext as createContext9 } from "@radix-ui/react-context";
1764
2030
  import { Primitive as Primitive10 } from "@radix-ui/react-primitive";
1765
2031
  import { Slot as Slot11 } from "@radix-ui/react-slot";
1766
2032
  import React22, { forwardRef as forwardRef19 } from "react";
1767
- import { useId as useId3 } from "@dxos/react-hooks";
2033
+ import { useId as useId4 } from "@dxos/react-hooks";
1768
2034
  var MESSAGE_NAME = "Message";
1769
2035
  var [MessageProvider, useMessageContext] = createContext9(MESSAGE_NAME);
1770
2036
  var MessageRoot = /* @__PURE__ */ forwardRef19(({ asChild, valence, elevation: propsElevation, className, titleId: propsTitleId, descriptionId: propsDescriptionId, children, ...props }, forwardedRef) => {
1771
2037
  const { tx } = useThemeContext();
1772
- const titleId = useId3("message__title", propsTitleId);
1773
- const descriptionId = useId3("message__description", propsDescriptionId);
2038
+ const titleId = useId4("message__title", propsTitleId);
2039
+ const descriptionId = useId4("message__description", propsDescriptionId);
1774
2040
  const elevation = useElevationContext(propsElevation);
1775
- const Root3 = asChild ? Slot11 : Primitive10.div;
2041
+ const Root5 = asChild ? Slot11 : Primitive10.div;
1776
2042
  return /* @__PURE__ */ React22.createElement(MessageProvider, {
1777
2043
  titleId,
1778
2044
  descriptionId
1779
- }, /* @__PURE__ */ React22.createElement(Root3, {
2045
+ }, /* @__PURE__ */ React22.createElement(Root5, {
1780
2046
  ...props,
1781
2047
  className: tx("message.root", "message", {
1782
2048
  valence,
@@ -1792,8 +2058,8 @@ var MESSAGE_TITLE_NAME = "MessageTitle";
1792
2058
  var MessageTitle = /* @__PURE__ */ forwardRef19(({ asChild, className, children, ...props }, forwardedRef) => {
1793
2059
  const { tx } = useThemeContext();
1794
2060
  const { titleId } = useMessageContext(MESSAGE_TITLE_NAME);
1795
- const Root3 = asChild ? Slot11 : Primitive10.h2;
1796
- return /* @__PURE__ */ React22.createElement(Root3, {
2061
+ const Root5 = asChild ? Slot11 : Primitive10.h2;
2062
+ return /* @__PURE__ */ React22.createElement(Root5, {
1797
2063
  ...props,
1798
2064
  className: tx("message.title", "message__title", {}, className),
1799
2065
  id: titleId,
@@ -1805,8 +2071,8 @@ var MESSAGE_BODY_NAME = "MessageBody";
1805
2071
  var MessageBody = /* @__PURE__ */ forwardRef19(({ asChild, className, children, ...props }, forwardedRef) => {
1806
2072
  const { tx } = useThemeContext();
1807
2073
  const { descriptionId } = useMessageContext(MESSAGE_BODY_NAME);
1808
- const Root3 = asChild ? Slot11 : Primitive10.p;
1809
- return /* @__PURE__ */ React22.createElement(Root3, {
2074
+ const Root5 = asChild ? Slot11 : Primitive10.p;
2075
+ return /* @__PURE__ */ React22.createElement(Root5, {
1810
2076
  ...props,
1811
2077
  className: tx("message.body", "message__body", {}, className),
1812
2078
  id: descriptionId,
@@ -1821,39 +2087,298 @@ var Message = {
1821
2087
  };
1822
2088
 
1823
2089
  // packages/ui/react-ui/src/components/Popover/Popover.tsx
1824
- import { Root as PopoverRootPrimitive, PopoverContent as PopoverContentPrimitive, PopoverTrigger as PopoverTriggerPrimitive, PopoverAnchor as PopoverAnchorPrimitive, PopoverPortal as PopoverPortalPrimitive, PopoverArrow as PopoverArrowPrimitive, PopoverClose as PopoverClosePrimitive } from "@radix-ui/react-popover";
2090
+ import { composeEventHandlers as composeEventHandlers2 } from "@radix-ui/primitive";
2091
+ import { useComposedRefs as useComposedRefs2 } from "@radix-ui/react-compose-refs";
2092
+ import { createContextScope as createContextScope3 } from "@radix-ui/react-context";
2093
+ import { DismissableLayer } from "@radix-ui/react-dismissable-layer";
2094
+ import { useFocusGuards } from "@radix-ui/react-focus-guards";
2095
+ import { FocusScope } from "@radix-ui/react-focus-scope";
2096
+ import { useId as useId5 } from "@radix-ui/react-id";
2097
+ import * as PopperPrimitive from "@radix-ui/react-popper";
2098
+ import { createPopperScope } from "@radix-ui/react-popper";
2099
+ import { Portal as PortalPrimitive } from "@radix-ui/react-portal";
2100
+ import { Presence } from "@radix-ui/react-presence";
1825
2101
  import { Primitive as Primitive11 } from "@radix-ui/react-primitive";
1826
2102
  import { Slot as Slot12 } from "@radix-ui/react-slot";
1827
- import React23, { forwardRef as forwardRef20 } from "react";
1828
- var PopoverRoot = PopoverRootPrimitive;
1829
- var PopoverPortal = PopoverPortalPrimitive;
1830
- var PopoverTrigger = PopoverTriggerPrimitive;
1831
- var PopoverAnchor = PopoverAnchorPrimitive;
1832
- var PopoverClose = PopoverClosePrimitive;
1833
- var PopoverArrow = /* @__PURE__ */ forwardRef20(({ classNames, ...props }, forwardedRef) => {
1834
- const { tx } = useThemeContext();
1835
- return /* @__PURE__ */ React23.createElement(PopoverArrowPrimitive, {
1836
- ...props,
1837
- className: tx("popover.arrow", "popover__arrow", {}, classNames),
2103
+ import { useControllableState as useControllableState5 } from "@radix-ui/react-use-controllable-state";
2104
+ import { hideOthers } from "aria-hidden";
2105
+ import React23, { forwardRef as forwardRef20, useRef as useRef3, useCallback as useCallback5, useState as useState5, useEffect as useEffect6 } from "react";
2106
+ import { RemoveScroll } from "react-remove-scroll";
2107
+ var POPOVER_NAME = "Popover";
2108
+ var [createPopoverContext, createPopoverScope] = createContextScope3(POPOVER_NAME, [
2109
+ createPopperScope
2110
+ ]);
2111
+ var usePopperScope = createPopperScope();
2112
+ var [PopoverProvider, usePopoverContext] = createPopoverContext(POPOVER_NAME);
2113
+ var PopoverRoot = (props) => {
2114
+ const { __scopePopover, children, open: openProp, defaultOpen, onOpenChange, modal = false } = props;
2115
+ const popperScope = usePopperScope(__scopePopover);
2116
+ const triggerRef = useRef3(null);
2117
+ const [hasCustomAnchor, setHasCustomAnchor] = useState5(false);
2118
+ const [open = false, setOpen] = useControllableState5({
2119
+ prop: openProp,
2120
+ defaultProp: defaultOpen,
2121
+ onChange: onOpenChange
2122
+ });
2123
+ return /* @__PURE__ */ React23.createElement(PopperPrimitive.Root, popperScope, /* @__PURE__ */ React23.createElement(PopoverProvider, {
2124
+ scope: __scopePopover,
2125
+ contentId: useId5(),
2126
+ triggerRef,
2127
+ open,
2128
+ onOpenChange: setOpen,
2129
+ onOpenToggle: useCallback5(() => setOpen((prevOpen) => !prevOpen), [
2130
+ setOpen
2131
+ ]),
2132
+ hasCustomAnchor,
2133
+ onCustomAnchorAdd: useCallback5(() => setHasCustomAnchor(true), []),
2134
+ onCustomAnchorRemove: useCallback5(() => setHasCustomAnchor(false), []),
2135
+ modal
2136
+ }, children));
2137
+ };
2138
+ PopoverRoot.displayName = POPOVER_NAME;
2139
+ var ANCHOR_NAME = "PopoverAnchor";
2140
+ var PopoverAnchor = /* @__PURE__ */ forwardRef20((props, forwardedRef) => {
2141
+ const { __scopePopover, ...anchorProps } = props;
2142
+ const context = usePopoverContext(ANCHOR_NAME, __scopePopover);
2143
+ const popperScope = usePopperScope(__scopePopover);
2144
+ const { onCustomAnchorAdd, onCustomAnchorRemove } = context;
2145
+ useEffect6(() => {
2146
+ onCustomAnchorAdd();
2147
+ return () => onCustomAnchorRemove();
2148
+ }, [
2149
+ onCustomAnchorAdd,
2150
+ onCustomAnchorRemove
2151
+ ]);
2152
+ return /* @__PURE__ */ React23.createElement(PopperPrimitive.Anchor, {
2153
+ ...popperScope,
2154
+ ...anchorProps,
2155
+ ref: forwardedRef
2156
+ });
2157
+ });
2158
+ PopoverAnchor.displayName = ANCHOR_NAME;
2159
+ var TRIGGER_NAME2 = "PopoverTrigger";
2160
+ var PopoverTrigger = /* @__PURE__ */ forwardRef20((props, forwardedRef) => {
2161
+ const { __scopePopover, ...triggerProps } = props;
2162
+ const context = usePopoverContext(TRIGGER_NAME2, __scopePopover);
2163
+ const popperScope = usePopperScope(__scopePopover);
2164
+ const composedTriggerRef = useComposedRefs2(forwardedRef, context.triggerRef);
2165
+ const trigger = /* @__PURE__ */ React23.createElement(Primitive11.button, {
2166
+ type: "button",
2167
+ "aria-haspopup": "dialog",
2168
+ "aria-expanded": context.open,
2169
+ "aria-controls": context.contentId,
2170
+ "data-state": getState(context.open),
2171
+ ...triggerProps,
2172
+ ref: composedTriggerRef,
2173
+ onClick: composeEventHandlers2(props.onClick, context.onOpenToggle)
2174
+ });
2175
+ return context.hasCustomAnchor ? trigger : /* @__PURE__ */ React23.createElement(PopperPrimitive.Anchor, {
2176
+ asChild: true,
2177
+ ...popperScope
2178
+ }, trigger);
2179
+ });
2180
+ PopoverTrigger.displayName = TRIGGER_NAME2;
2181
+ var VIRTUAL_TRIGGER_NAME2 = "PopoverVirtualTrigger";
2182
+ var PopoverVirtualTrigger = (props) => {
2183
+ const { __scopePopover, virtualRef } = props;
2184
+ const context = usePopoverContext(VIRTUAL_TRIGGER_NAME2, __scopePopover);
2185
+ const popperScope = usePopperScope(__scopePopover);
2186
+ useEffect6(() => {
2187
+ if (virtualRef.current) {
2188
+ context.triggerRef.current = virtualRef.current;
2189
+ }
2190
+ });
2191
+ return /* @__PURE__ */ React23.createElement(PopperPrimitive.Anchor, {
2192
+ ...popperScope,
2193
+ virtualRef
2194
+ });
2195
+ };
2196
+ PopoverVirtualTrigger.displayName = VIRTUAL_TRIGGER_NAME2;
2197
+ var PORTAL_NAME2 = "PopoverPortal";
2198
+ var [PortalProvider, usePortalContext] = createPopoverContext(PORTAL_NAME2, {
2199
+ forceMount: void 0
2200
+ });
2201
+ var PopoverPortal = (props) => {
2202
+ const { __scopePopover, forceMount, children, container } = props;
2203
+ const context = usePopoverContext(PORTAL_NAME2, __scopePopover);
2204
+ return /* @__PURE__ */ React23.createElement(PortalProvider, {
2205
+ scope: __scopePopover,
2206
+ forceMount
2207
+ }, /* @__PURE__ */ React23.createElement(Presence, {
2208
+ present: forceMount || context.open
2209
+ }, /* @__PURE__ */ React23.createElement(PortalPrimitive, {
2210
+ asChild: true,
2211
+ container
2212
+ }, children)));
2213
+ };
2214
+ PopoverPortal.displayName = PORTAL_NAME2;
2215
+ var CONTENT_NAME2 = "PopoverContent";
2216
+ var PopoverContent = /* @__PURE__ */ forwardRef20((props, forwardedRef) => {
2217
+ const portalContext = usePortalContext(CONTENT_NAME2, props.__scopePopover);
2218
+ const { forceMount = portalContext.forceMount, ...contentProps } = props;
2219
+ const context = usePopoverContext(CONTENT_NAME2, props.__scopePopover);
2220
+ return /* @__PURE__ */ React23.createElement(Presence, {
2221
+ present: forceMount || context.open
2222
+ }, context.modal ? /* @__PURE__ */ React23.createElement(PopoverContentModal, {
2223
+ ...contentProps,
2224
+ ref: forwardedRef
2225
+ }) : /* @__PURE__ */ React23.createElement(PopoverContentNonModal, {
2226
+ ...contentProps,
1838
2227
  ref: forwardedRef
2228
+ }));
2229
+ });
2230
+ PopoverContent.displayName = CONTENT_NAME2;
2231
+ var PopoverContentModal = /* @__PURE__ */ forwardRef20((props, forwardedRef) => {
2232
+ const context = usePopoverContext(CONTENT_NAME2, props.__scopePopover);
2233
+ const contentRef = useRef3(null);
2234
+ const composedRefs = useComposedRefs2(forwardedRef, contentRef);
2235
+ const isRightClickOutsideRef = useRef3(false);
2236
+ useEffect6(() => {
2237
+ const content = contentRef.current;
2238
+ if (content) {
2239
+ return hideOthers(content);
2240
+ }
2241
+ }, []);
2242
+ return /* @__PURE__ */ React23.createElement(RemoveScroll, {
2243
+ as: Slot12,
2244
+ allowPinchZoom: true
2245
+ }, /* @__PURE__ */ React23.createElement(PopoverContentImpl, {
2246
+ ...props,
2247
+ ref: composedRefs,
2248
+ // we make sure we're not trapping once it's been closed
2249
+ // (closed !== unmounted when animating out)
2250
+ trapFocus: context.open,
2251
+ disableOutsidePointerEvents: true,
2252
+ onCloseAutoFocus: composeEventHandlers2(props.onCloseAutoFocus, (event) => {
2253
+ event.preventDefault();
2254
+ if (!isRightClickOutsideRef.current) {
2255
+ context.triggerRef.current?.focus();
2256
+ }
2257
+ }),
2258
+ onPointerDownOutside: composeEventHandlers2(props.onPointerDownOutside, (event) => {
2259
+ const originalEvent = event.detail.originalEvent;
2260
+ const ctrlLeftClick = originalEvent.button === 0 && originalEvent.ctrlKey === true;
2261
+ const isRightClick = originalEvent.button === 2 || ctrlLeftClick;
2262
+ isRightClickOutsideRef.current = isRightClick;
2263
+ }, {
2264
+ checkForDefaultPrevented: false
2265
+ }),
2266
+ // When focus is trapped, a `focusout` event may still happen.
2267
+ // We make sure we don't trigger our `onDismiss` in such case.
2268
+ onFocusOutside: composeEventHandlers2(props.onFocusOutside, (event) => event.preventDefault(), {
2269
+ checkForDefaultPrevented: false
2270
+ })
2271
+ }));
2272
+ });
2273
+ var PopoverContentNonModal = /* @__PURE__ */ forwardRef20((props, forwardedRef) => {
2274
+ const context = usePopoverContext(CONTENT_NAME2, props.__scopePopover);
2275
+ const hasInteractedOutsideRef = useRef3(false);
2276
+ const hasPointerDownOutsideRef = useRef3(false);
2277
+ return /* @__PURE__ */ React23.createElement(PopoverContentImpl, {
2278
+ ...props,
2279
+ ref: forwardedRef,
2280
+ trapFocus: false,
2281
+ disableOutsidePointerEvents: false,
2282
+ onCloseAutoFocus: (event) => {
2283
+ props.onCloseAutoFocus?.(event);
2284
+ if (!event.defaultPrevented) {
2285
+ if (!hasInteractedOutsideRef.current) {
2286
+ context.triggerRef.current?.focus();
2287
+ }
2288
+ event.preventDefault();
2289
+ }
2290
+ hasInteractedOutsideRef.current = false;
2291
+ hasPointerDownOutsideRef.current = false;
2292
+ },
2293
+ onInteractOutside: (event) => {
2294
+ props.onInteractOutside?.(event);
2295
+ if (!event.defaultPrevented) {
2296
+ hasInteractedOutsideRef.current = true;
2297
+ if (event.detail.originalEvent.type === "pointerdown") {
2298
+ hasPointerDownOutsideRef.current = true;
2299
+ }
2300
+ }
2301
+ const target = event.target;
2302
+ const targetIsTrigger = context.triggerRef.current?.contains(target);
2303
+ if (targetIsTrigger) {
2304
+ event.preventDefault();
2305
+ }
2306
+ if (event.detail.originalEvent.type === "focusin" && hasPointerDownOutsideRef.current) {
2307
+ event.preventDefault();
2308
+ }
2309
+ }
1839
2310
  });
1840
2311
  });
1841
- var PopoverContent = /* @__PURE__ */ forwardRef20(({ classNames, children, ...props }, forwardedRef) => {
2312
+ var PopoverContentImpl = /* @__PURE__ */ forwardRef20((props, forwardedRef) => {
2313
+ const { __scopePopover, trapFocus, onOpenAutoFocus, onCloseAutoFocus, disableOutsidePointerEvents, onEscapeKeyDown, onPointerDownOutside, onFocusOutside, onInteractOutside, classNames, ...contentProps } = props;
2314
+ const context = usePopoverContext(CONTENT_NAME2, __scopePopover);
2315
+ const popperScope = usePopperScope(__scopePopover);
1842
2316
  const { tx } = useThemeContext();
1843
- return /* @__PURE__ */ React23.createElement(PopoverContentPrimitive, {
1844
- sideOffset: 4,
1845
- collisionPadding: 8,
1846
- ...props,
2317
+ useFocusGuards();
2318
+ return /* @__PURE__ */ React23.createElement(FocusScope, {
2319
+ asChild: true,
2320
+ loop: true,
2321
+ trapped: trapFocus,
2322
+ onMountAutoFocus: onOpenAutoFocus,
2323
+ onUnmountAutoFocus: onCloseAutoFocus
2324
+ }, /* @__PURE__ */ React23.createElement(DismissableLayer, {
2325
+ asChild: true,
2326
+ disableOutsidePointerEvents,
2327
+ onInteractOutside,
2328
+ onEscapeKeyDown,
2329
+ onPointerDownOutside,
2330
+ onFocusOutside,
2331
+ onDismiss: () => context.onOpenChange(false)
2332
+ }, /* @__PURE__ */ React23.createElement(PopperPrimitive.Content, {
2333
+ "data-state": getState(context.open),
2334
+ role: "dialog",
2335
+ id: context.contentId,
2336
+ ...popperScope,
2337
+ ...contentProps,
1847
2338
  className: tx("popover.content", "popover", {}, classNames),
2339
+ ref: forwardedRef,
2340
+ style: {
2341
+ ...contentProps.style,
2342
+ // re-namespace exposed content custom properties
2343
+ ...{
2344
+ "--radix-popover-content-transform-origin": "var(--radix-popper-transform-origin)",
2345
+ "--radix-popover-content-available-width": "var(--radix-popper-available-width)",
2346
+ "--radix-popover-content-available-height": "var(--radix-popper-available-height)",
2347
+ "--radix-popover-trigger-width": "var(--radix-popper-anchor-width)",
2348
+ "--radix-popover-trigger-height": "var(--radix-popper-anchor-height)"
2349
+ }
2350
+ }
2351
+ })));
2352
+ });
2353
+ var CLOSE_NAME = "PopoverClose";
2354
+ var PopoverClose = /* @__PURE__ */ forwardRef20((props, forwardedRef) => {
2355
+ const { __scopePopover, ...closeProps } = props;
2356
+ const context = usePopoverContext(CLOSE_NAME, __scopePopover);
2357
+ return /* @__PURE__ */ React23.createElement(Primitive11.button, {
2358
+ type: "button",
2359
+ ...closeProps,
2360
+ ref: forwardedRef,
2361
+ onClick: composeEventHandlers2(props.onClick, () => context.onOpenChange(false))
2362
+ });
2363
+ });
2364
+ PopoverClose.displayName = CLOSE_NAME;
2365
+ var ARROW_NAME2 = "PopoverArrow";
2366
+ var PopoverArrow = /* @__PURE__ */ forwardRef20((props, forwardedRef) => {
2367
+ const { __scopePopover, classNames, ...arrowProps } = props;
2368
+ const popperScope = usePopperScope(__scopePopover);
2369
+ const { tx } = useThemeContext();
2370
+ return /* @__PURE__ */ React23.createElement(PopperPrimitive.Arrow, {
2371
+ ...popperScope,
2372
+ ...arrowProps,
2373
+ className: tx("popover.arrow", "popover__arrow", {}, classNames),
1848
2374
  ref: forwardedRef
1849
- }, /* @__PURE__ */ React23.createElement(ElevationProvider, {
1850
- elevation: "chrome"
1851
- }, children));
2375
+ });
1852
2376
  });
2377
+ PopoverArrow.displayName = ARROW_NAME2;
1853
2378
  var PopoverViewport = /* @__PURE__ */ forwardRef20(({ classNames, asChild, constrainInline = true, constrainBlock = true, children, ...props }, forwardedRef) => {
1854
2379
  const { tx } = useThemeContext();
1855
- const Root3 = asChild ? Slot12 : Primitive11.div;
1856
- return /* @__PURE__ */ React23.createElement(Root3, {
2380
+ const Root5 = asChild ? Slot12 : Primitive11.div;
2381
+ return /* @__PURE__ */ React23.createElement(Root5, {
1857
2382
  ...props,
1858
2383
  className: tx("popover.viewport", "popover__viewport", {
1859
2384
  constrainInline,
@@ -1862,14 +2387,16 @@ var PopoverViewport = /* @__PURE__ */ forwardRef20(({ classNames, asChild, const
1862
2387
  ref: forwardedRef
1863
2388
  }, children);
1864
2389
  });
2390
+ var getState = (open) => open ? "open" : "closed";
1865
2391
  var Popover = {
1866
2392
  Root: PopoverRoot,
1867
- Portal: PopoverPortal,
1868
- Trigger: PopoverTrigger,
1869
2393
  Anchor: PopoverAnchor,
1870
- Arrow: PopoverArrow,
1871
- Close: PopoverClose,
2394
+ Trigger: PopoverTrigger,
2395
+ VirtualTrigger: PopoverVirtualTrigger,
2396
+ Portal: PopoverPortal,
1872
2397
  Content: PopoverContent,
2398
+ Close: PopoverClose,
2399
+ Arrow: PopoverArrow,
1873
2400
  Viewport: PopoverViewport
1874
2401
  };
1875
2402
 
@@ -1950,7 +2477,7 @@ var ScrollArea = {
1950
2477
  };
1951
2478
 
1952
2479
  // packages/ui/react-ui/src/components/Select/Select.tsx
1953
- import { CaretDown as CaretDown2, CaretUp, Check as Check2 } from "@phosphor-icons/react";
2480
+ import { CaretDown as CaretDown2, CaretUp } from "@phosphor-icons/react";
1954
2481
  import * as SelectPrimitive from "@radix-ui/react-select";
1955
2482
  import React26, { forwardRef as forwardRef23 } from "react";
1956
2483
  var SelectRoot = SelectPrimitive.Root;
@@ -1965,20 +2492,21 @@ var SelectTriggerButton = /* @__PURE__ */ forwardRef23(({ children, placeholder,
1965
2492
  ref: forwardedRef
1966
2493
  }, /* @__PURE__ */ React26.createElement(Button, props, /* @__PURE__ */ React26.createElement(SelectPrimitive.Value, {
1967
2494
  placeholder
1968
- }, children), /* @__PURE__ */ React26.createElement(SelectPrimitive.Icon, {
2495
+ }, children), /* @__PURE__ */ React26.createElement("span", {
2496
+ className: "w-1 flex-1"
2497
+ }), /* @__PURE__ */ React26.createElement(SelectPrimitive.Icon, {
1969
2498
  asChild: true
1970
- }, /* @__PURE__ */ React26.createElement(React26.Fragment, null, /* @__PURE__ */ React26.createElement("span", {
1971
- className: "w-1"
1972
- }), /* @__PURE__ */ React26.createElement(CaretDown2, {
2499
+ }, /* @__PURE__ */ React26.createElement(CaretDown2, {
1973
2500
  className: tx("select.triggerIcon", "select__trigger__icon", {}),
1974
2501
  weight: "bold"
1975
- })))));
2502
+ }))));
1976
2503
  });
1977
2504
  var SelectContent = /* @__PURE__ */ forwardRef23(({ classNames, children, ...props }, forwardedRef) => {
1978
2505
  const { tx } = useThemeContext();
1979
2506
  return /* @__PURE__ */ React26.createElement(SelectPrimitive.Content, {
1980
2507
  ...props,
1981
2508
  className: tx("select.content", "select__content", {}, classNames),
2509
+ position: "popper",
1982
2510
  ref: forwardedRef
1983
2511
  }, children);
1984
2512
  });
@@ -2002,7 +2530,14 @@ var SelectScrollDownButton2 = /* @__PURE__ */ forwardRef23(({ classNames, childr
2002
2530
  weight: "bold"
2003
2531
  }));
2004
2532
  });
2005
- var SelectViewport = SelectPrimitive.Viewport;
2533
+ var SelectViewport2 = /* @__PURE__ */ forwardRef23(({ classNames, asChild, children, ...props }, forwardedRef) => {
2534
+ const { tx } = useThemeContext();
2535
+ return /* @__PURE__ */ React26.createElement(SelectPrimitive.SelectViewport, {
2536
+ ...props,
2537
+ className: tx("select.viewport", "select__viewport", {}, classNames),
2538
+ ref: forwardedRef
2539
+ }, children);
2540
+ });
2006
2541
  var SelectItem = /* @__PURE__ */ forwardRef23(({ classNames, ...props }, forwardedRef) => {
2007
2542
  const { tx } = useThemeContext();
2008
2543
  return /* @__PURE__ */ React26.createElement(SelectPrimitive.Item, {
@@ -2026,11 +2561,11 @@ var SelectOption = /* @__PURE__ */ forwardRef23(({ children, classNames, ...prop
2026
2561
  ...props,
2027
2562
  className: tx("select.item", "option", {}, classNames),
2028
2563
  ref: forwardedRef
2029
- }, /* @__PURE__ */ React26.createElement(SelectPrimitive.ItemText, null, children), /* @__PURE__ */ React26.createElement(SelectPrimitive.ItemIndicator, {
2030
- className: tx("select.itemIndicator", "option__indicator", {})
2031
- }, /* @__PURE__ */ React26.createElement(Check2, {
2032
- weight: "bold"
2033
- })));
2564
+ }, /* @__PURE__ */ React26.createElement(SelectPrimitive.ItemText, null, children), /* @__PURE__ */ React26.createElement("span", {
2565
+ className: "grow w-1"
2566
+ }), /* @__PURE__ */ React26.createElement(Icon, {
2567
+ icon: "ph--check--regular"
2568
+ }));
2034
2569
  });
2035
2570
  var SelectGroup = SelectPrimitive.Group;
2036
2571
  var SelectLabel = SelectPrimitive.Label;
@@ -2060,7 +2595,7 @@ var Select = {
2060
2595
  Content: SelectContent,
2061
2596
  ScrollUpButton: SelectScrollUpButton2,
2062
2597
  ScrollDownButton: SelectScrollDownButton2,
2063
- Viewport: SelectViewport,
2598
+ Viewport: SelectViewport2,
2064
2599
  Item: SelectItem,
2065
2600
  ItemText: SelectItemText,
2066
2601
  ItemIndicator: SelectItemIndicator,
@@ -2091,8 +2626,8 @@ import { Slot as Slot13 } from "@radix-ui/react-slot";
2091
2626
  import React28, { forwardRef as forwardRef24 } from "react";
2092
2627
  var Tag = /* @__PURE__ */ forwardRef24(({ asChild, palette, classNames, ...props }, forwardedRef) => {
2093
2628
  const { tx } = useThemeContext();
2094
- const Root3 = asChild ? Slot13 : Primitive12.span;
2095
- return /* @__PURE__ */ React28.createElement(Root3, {
2629
+ const Root5 = asChild ? Slot13 : Primitive12.span;
2630
+ return /* @__PURE__ */ React28.createElement(Root5, {
2096
2631
  ...props,
2097
2632
  className: tx("tag.root", "tag", {
2098
2633
  palette
@@ -2122,14 +2657,12 @@ var ToastRoot = /* @__PURE__ */ forwardRef25(({ classNames, children, ...props }
2122
2657
  ref: forwardedRef
2123
2658
  }, /* @__PURE__ */ React29.createElement(ElevationProvider, {
2124
2659
  elevation: "chrome"
2125
- }, /* @__PURE__ */ React29.createElement(DensityProvider, {
2126
- density: "fine"
2127
- }, children)));
2660
+ }, children));
2128
2661
  });
2129
2662
  var ToastBody = /* @__PURE__ */ forwardRef25(({ asChild, classNames, ...props }, forwardedRef) => {
2130
2663
  const { tx } = useThemeContext();
2131
- const Root3 = asChild ? Slot14 : Primitive13.div;
2132
- return /* @__PURE__ */ React29.createElement(Root3, {
2664
+ const Root5 = asChild ? Slot14 : Primitive13.div;
2665
+ return /* @__PURE__ */ React29.createElement(Root5, {
2133
2666
  ...props,
2134
2667
  className: tx("toast.body", "toast__body", {}, classNames),
2135
2668
  ref: forwardedRef
@@ -2137,8 +2670,8 @@ var ToastBody = /* @__PURE__ */ forwardRef25(({ asChild, classNames, ...props },
2137
2670
  });
2138
2671
  var ToastTitle = /* @__PURE__ */ forwardRef25(({ asChild, classNames, ...props }, forwardedRef) => {
2139
2672
  const { tx } = useThemeContext();
2140
- const Root3 = asChild ? Slot14 : ToastTitlePrimitive;
2141
- return /* @__PURE__ */ React29.createElement(Root3, {
2673
+ const Root5 = asChild ? Slot14 : ToastTitlePrimitive;
2674
+ return /* @__PURE__ */ React29.createElement(Root5, {
2142
2675
  ...props,
2143
2676
  className: tx("toast.title", "toast__title", {}, classNames),
2144
2677
  ref: forwardedRef
@@ -2146,8 +2679,8 @@ var ToastTitle = /* @__PURE__ */ forwardRef25(({ asChild, classNames, ...props }
2146
2679
  });
2147
2680
  var ToastDescription = /* @__PURE__ */ forwardRef25(({ asChild, classNames, ...props }, forwardedRef) => {
2148
2681
  const { tx } = useThemeContext();
2149
- const Root3 = asChild ? Slot14 : ToastDescriptionPrimitive;
2150
- return /* @__PURE__ */ React29.createElement(Root3, {
2682
+ const Root5 = asChild ? Slot14 : ToastDescriptionPrimitive;
2683
+ return /* @__PURE__ */ React29.createElement(Root5, {
2151
2684
  ...props,
2152
2685
  className: tx("toast.description", "toast__description", {}, classNames),
2153
2686
  ref: forwardedRef
@@ -2155,8 +2688,8 @@ var ToastDescription = /* @__PURE__ */ forwardRef25(({ asChild, classNames, ...p
2155
2688
  });
2156
2689
  var ToastActions = /* @__PURE__ */ forwardRef25(({ asChild, classNames, ...props }, forwardedRef) => {
2157
2690
  const { tx } = useThemeContext();
2158
- const Root3 = asChild ? Slot14 : Primitive13.div;
2159
- return /* @__PURE__ */ React29.createElement(Root3, {
2691
+ const Root5 = asChild ? Slot14 : Primitive13.div;
2692
+ return /* @__PURE__ */ React29.createElement(Root5, {
2160
2693
  ...props,
2161
2694
  className: tx("toast.actions", "toast__actions", {}, classNames),
2162
2695
  ref: forwardedRef
@@ -2195,6 +2728,14 @@ var ToolbarButton = /* @__PURE__ */ forwardRef26((props, forwardedRef) => {
2195
2728
  ref: forwardedRef
2196
2729
  }));
2197
2730
  });
2731
+ var ToolbarToggle = /* @__PURE__ */ forwardRef26((props, forwardedRef) => {
2732
+ return /* @__PURE__ */ React30.createElement(ToolbarPrimitive.Button, {
2733
+ asChild: true
2734
+ }, /* @__PURE__ */ React30.createElement(Toggle, {
2735
+ ...props,
2736
+ ref: forwardedRef
2737
+ }));
2738
+ });
2198
2739
  var ToolbarLink = /* @__PURE__ */ forwardRef26((props, forwardedRef) => {
2199
2740
  return /* @__PURE__ */ React30.createElement(ToolbarPrimitive.Link, {
2200
2741
  asChild: true
@@ -2239,6 +2780,7 @@ var Toolbar = {
2239
2780
  Root: ToolbarRoot,
2240
2781
  Button: ToolbarButton,
2241
2782
  Link: ToolbarLink,
2783
+ Toggle: ToolbarToggle,
2242
2784
  ToggleGroup: ToolbarToggleGroup2,
2243
2785
  ToggleGroupItem: ToolbarToggleGroupItem,
2244
2786
  Separator: ToolbarSeparator
@@ -2280,7 +2822,7 @@ var Tooltip = {
2280
2822
 
2281
2823
  // packages/ui/react-ui/src/components/ThemeProvider/ThemeProvider.tsx
2282
2824
  import { createKeyborg } from "keyborg";
2283
- import React32, { createContext as createContext10, useEffect as useEffect5 } from "react";
2825
+ import React32, { createContext as createContext10, useEffect as useEffect7 } from "react";
2284
2826
 
2285
2827
  // packages/ui/react-ui/src/util/hasIosKeyboard.ts
2286
2828
  var hasIosKeyboard = () => {
@@ -2288,20 +2830,9 @@ var hasIosKeyboard = () => {
2288
2830
  };
2289
2831
 
2290
2832
  // packages/ui/react-ui/src/components/ThemeProvider/ThemeProvider.tsx
2291
- var ThemeContext = /* @__PURE__ */ createContext10({
2292
- tx: (_path, defaultClassName, _styleProps, ..._options) => defaultClassName,
2293
- themeMode: "dark",
2294
- hasIosKeyboard: false
2295
- });
2296
- var handleInputModalityChange = (isUsingKeyboard) => {
2297
- if (isUsingKeyboard) {
2298
- document.body.setAttribute("data-is-keyboard", "true");
2299
- } else {
2300
- document.body.removeAttribute("data-is-keyboard");
2301
- }
2302
- };
2303
- var ThemeProvider = ({ children, fallback = null, resourceExtensions, appNs, tx = (_path, defaultClassName, _styleProps, ..._options) => defaultClassName, themeMode = "dark", rootElevation = "base", rootDensity = "coarse" }) => {
2304
- useEffect5(() => {
2833
+ var ThemeContext = /* @__PURE__ */ createContext10(void 0);
2834
+ var ThemeProvider = ({ children, fallback = null, resourceExtensions, appNs, tx = (_path, defaultClassName, _styleProps, ..._options) => defaultClassName, themeMode = "dark", rootDensity = "fine", rootElevation = "base" }) => {
2835
+ useEffect7(() => {
2305
2836
  if (document.defaultView) {
2306
2837
  const kb = createKeyborg(document.defaultView);
2307
2838
  kb.subscribe(handleInputModalityChange);
@@ -2324,6 +2855,13 @@ var ThemeProvider = ({ children, fallback = null, resourceExtensions, appNs, tx
2324
2855
  density: rootDensity
2325
2856
  }, children))));
2326
2857
  };
2858
+ var handleInputModalityChange = (isUsingKeyboard) => {
2859
+ if (isUsingKeyboard) {
2860
+ document.body.setAttribute("data-is-keyboard", "true");
2861
+ } else {
2862
+ document.body.removeAttribute("data-is-keyboard");
2863
+ }
2864
+ };
2327
2865
  export {
2328
2866
  AlertDialog,
2329
2867
  AnchoredOverflow,
@@ -2338,7 +2876,7 @@ export {
2338
2876
  DensityContext,
2339
2877
  DensityProvider,
2340
2878
  Dialog,
2341
- DropdownMenu2 as DropdownMenu,
2879
+ DropdownMenu,
2342
2880
  ElevationContext,
2343
2881
  ElevationProvider,
2344
2882
  Icon,
@@ -2368,14 +2906,16 @@ export {
2368
2906
  Tree,
2369
2907
  TreeItem,
2370
2908
  Treegrid,
2909
+ createDropdownMenuScope,
2910
+ createPopoverScope,
2371
2911
  hasIosKeyboard,
2372
2912
  isLabel,
2373
2913
  toLocalizedString,
2374
2914
  useAvatarContext,
2375
2915
  useButtonGroupContext,
2376
2916
  useDensityContext,
2377
- useDropdownMenuContext2 as useDropdownMenuContext,
2378
- useDropdownMenuMenuScope2 as useDropdownMenuMenuScope,
2917
+ useDropdownMenuContext,
2918
+ useDropdownMenuMenuScope,
2379
2919
  useElevationContext,
2380
2920
  useListContext,
2381
2921
  useListItemContext,