@dxos/react-ui 0.6.14-main.2b6a0f3 → 0.6.14-main.69511f5

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 (29) hide show
  1. package/dist/lib/browser/index.mjs +697 -169
  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 +670 -140
  5. package/dist/lib/node/index.cjs.map +3 -3
  6. package/dist/lib/node/meta.json +1 -1
  7. package/dist/lib/node-esm/index.mjs +697 -169
  8. package/dist/lib/node-esm/index.mjs.map +3 -3
  9. package/dist/lib/node-esm/meta.json +1 -1
  10. package/dist/types/src/components/Buttons/Button.d.ts +1 -1
  11. package/dist/types/src/components/Buttons/Button.d.ts.map +1 -1
  12. package/dist/types/src/components/Buttons/Button.stories.d.ts +1 -1
  13. package/dist/types/src/components/Icon/Icon.d.ts +1 -1
  14. package/dist/types/src/components/Icon/Icon.d.ts.map +1 -1
  15. package/dist/types/src/components/Menus/DropdownMenu.d.ts +105 -44
  16. package/dist/types/src/components/Menus/DropdownMenu.d.ts.map +1 -1
  17. package/dist/types/src/components/Menus/DropdownMenu.stories.d.ts +25 -25
  18. package/dist/types/src/components/Menus/DropdownMenu.stories.d.ts.map +1 -1
  19. package/dist/types/src/components/Popover/Popover.d.ts +87 -21
  20. package/dist/types/src/components/Popover/Popover.d.ts.map +1 -1
  21. package/dist/types/src/components/Popover/Popover.stories.d.ts +16 -11
  22. package/dist/types/src/components/Popover/Popover.stories.d.ts.map +1 -1
  23. package/package.json +25 -20
  24. package/src/components/Buttons/Button.tsx +46 -36
  25. package/src/components/Icon/Icon.tsx +11 -9
  26. package/src/components/Menus/DropdownMenu.stories.tsx +40 -1
  27. package/src/components/Menus/DropdownMenu.tsx +518 -69
  28. package/src/components/Popover/Popover.stories.tsx +24 -1
  29. package/src/components/Popover/Popover.tsx +524 -55
@@ -42,7 +42,7 @@ __export(node_exports, {
42
42
  DensityContext: () => DensityContext,
43
43
  DensityProvider: () => DensityProvider,
44
44
  Dialog: () => Dialog,
45
- DropdownMenu: () => DropdownMenu2,
45
+ DropdownMenu: () => DropdownMenu,
46
46
  ElevationContext: () => ElevationContext,
47
47
  ElevationProvider: () => ElevationProvider,
48
48
  Icon: () => Icon,
@@ -72,14 +72,16 @@ __export(node_exports, {
72
72
  Tree: () => Tree,
73
73
  TreeItem: () => TreeItem,
74
74
  Treegrid: () => Treegrid,
75
+ createDropdownMenuScope: () => createDropdownMenuScope,
76
+ createPopoverScope: () => createPopoverScope,
75
77
  hasIosKeyboard: () => hasIosKeyboard,
76
78
  isLabel: () => isLabel,
77
79
  toLocalizedString: () => toLocalizedString,
78
80
  useAvatarContext: () => useAvatarContext,
79
81
  useButtonGroupContext: () => useButtonGroupContext,
80
82
  useDensityContext: () => useDensityContext,
81
- useDropdownMenuContext: () => useDropdownMenuContext2,
82
- useDropdownMenuMenuScope: () => useDropdownMenuMenuScope2,
83
+ useDropdownMenuContext: () => useDropdownMenuContext,
84
+ useDropdownMenuMenuScope: () => useDropdownMenuMenuScope,
83
85
  useElevationContext: () => useElevationContext,
84
86
  useListContext: () => import_react_list.useListContext,
85
87
  useListItemContext: () => import_react_list.useListItemContext,
@@ -142,14 +144,20 @@ var ContextMenuPrimitive = __toESM(require("@radix-ui/react-context-menu"));
142
144
  var import_react_primitive6 = require("@radix-ui/react-primitive");
143
145
  var import_react_slot6 = require("@radix-ui/react-slot");
144
146
  var import_react20 = __toESM(require("react"));
145
- var DropdownMenuPrimitive = __toESM(require("@radix-ui/react-dropdown-menu"));
147
+ var import_primitive = require("@radix-ui/primitive");
148
+ var import_react_compose_refs = require("@radix-ui/react-compose-refs");
149
+ var import_react_context5 = require("@radix-ui/react-context");
150
+ var import_react_id = require("@radix-ui/react-id");
151
+ var MenuPrimitive = __toESM(require("@radix-ui/react-menu"));
152
+ var import_react_menu = require("@radix-ui/react-menu");
146
153
  var import_react_primitive7 = require("@radix-ui/react-primitive");
147
154
  var import_react_slot7 = require("@radix-ui/react-slot");
155
+ var import_react_use_controllable_state = require("@radix-ui/react-use-controllable-state");
148
156
  var import_react21 = __toESM(require("react"));
149
157
  var import_react22 = require("@phosphor-icons/react");
150
158
  var import_react_checkbox = require("@radix-ui/react-checkbox");
151
159
  var import_react_switch = require("@radix-ui/react-switch");
152
- var import_react_use_controllable_state = require("@radix-ui/react-use-controllable-state");
160
+ var import_react_use_controllable_state2 = require("@radix-ui/react-use-controllable-state");
153
161
  var import_react23 = __toESM(require("react"));
154
162
  var import_react_input = require("@dxos/react-input");
155
163
  var import_react24 = require("@phosphor-icons/react");
@@ -159,31 +167,44 @@ var import_react_list = require("@dxos/react-list");
159
167
  var import_react26 = __toESM(require("react"));
160
168
  var import_react27 = __toESM(require("react"));
161
169
  var import_react_tabster = require("@fluentui/react-tabster");
162
- var import_react_context5 = require("@radix-ui/react-context");
170
+ var import_react_context6 = require("@radix-ui/react-context");
163
171
  var import_react_primitive8 = require("@radix-ui/react-primitive");
164
172
  var import_react_slot9 = require("@radix-ui/react-slot");
165
- var import_react_use_controllable_state2 = require("@radix-ui/react-use-controllable-state");
173
+ var import_react_use_controllable_state3 = require("@radix-ui/react-use-controllable-state");
166
174
  var import_react28 = __toESM(require("react"));
167
175
  var import_react_tabster2 = require("@fluentui/react-tabster");
168
- var import_react_compose_refs = require("@radix-ui/react-compose-refs");
169
- var import_react_context6 = require("@radix-ui/react-context");
176
+ var import_react_compose_refs2 = require("@radix-ui/react-compose-refs");
177
+ var import_react_context7 = require("@radix-ui/react-context");
170
178
  var import_react_dialog2 = require("@radix-ui/react-dialog");
171
179
  var import_react_primitive9 = require("@radix-ui/react-primitive");
172
180
  var import_react_slot10 = require("@radix-ui/react-slot");
173
- var import_react_use_controllable_state3 = require("@radix-ui/react-use-controllable-state");
181
+ var import_react_use_controllable_state4 = require("@radix-ui/react-use-controllable-state");
174
182
  var import_react29 = __toESM(require("react"));
175
183
  var import_log = require("@dxos/log");
176
184
  var import_react_hooks3 = require("@dxos/react-hooks");
177
185
  var import_react30 = require("react");
178
- var import_react_context7 = require("@radix-ui/react-context");
186
+ var import_react_context8 = require("@radix-ui/react-context");
179
187
  var import_react_primitive10 = require("@radix-ui/react-primitive");
180
188
  var import_react_slot11 = require("@radix-ui/react-slot");
181
189
  var import_react31 = __toESM(require("react"));
182
190
  var import_react_hooks4 = require("@dxos/react-hooks");
183
- var import_react_popover = require("@radix-ui/react-popover");
191
+ var import_primitive2 = require("@radix-ui/primitive");
192
+ var import_react_compose_refs3 = require("@radix-ui/react-compose-refs");
193
+ var import_react_context9 = require("@radix-ui/react-context");
194
+ var import_react_dismissable_layer = require("@radix-ui/react-dismissable-layer");
195
+ var import_react_focus_guards = require("@radix-ui/react-focus-guards");
196
+ var import_react_focus_scope = require("@radix-ui/react-focus-scope");
197
+ var import_react_id2 = require("@radix-ui/react-id");
198
+ var PopperPrimitive = __toESM(require("@radix-ui/react-popper"));
199
+ var import_react_popper = require("@radix-ui/react-popper");
200
+ var import_react_portal = require("@radix-ui/react-portal");
201
+ var import_react_presence = require("@radix-ui/react-presence");
184
202
  var import_react_primitive11 = require("@radix-ui/react-primitive");
185
203
  var import_react_slot12 = require("@radix-ui/react-slot");
204
+ var import_react_use_controllable_state5 = require("@radix-ui/react-use-controllable-state");
205
+ var import_aria_hidden = require("aria-hidden");
186
206
  var import_react32 = __toESM(require("react"));
207
+ var import_react_remove_scroll = require("react-remove-scroll");
187
208
  var import_react33 = __toESM(require("react"));
188
209
  var import_react_scroll_area = require("@radix-ui/react-scroll-area");
189
210
  var import_react34 = __toESM(require("react"));
@@ -294,8 +315,8 @@ var useVisualViewport = (deps) => {
294
315
  };
295
316
  var AnchoredOverflowRoot = /* @__PURE__ */ (0, import_react.forwardRef)(({ asChild, classNames, children, ...props }, forwardedRef) => {
296
317
  const { tx } = useThemeContext();
297
- const Root3 = asChild ? import_react_slot.Slot : import_react_primitive.Primitive.div;
298
- return /* @__PURE__ */ import_react.default.createElement(Root3, {
318
+ const Root5 = asChild ? import_react_slot.Slot : import_react_primitive.Primitive.div;
319
+ return /* @__PURE__ */ import_react.default.createElement(Root5, {
299
320
  role: "none",
300
321
  ...props,
301
322
  className: tx("anchoredOverflow.root", "overflow-anchored", {}, classNames),
@@ -304,8 +325,8 @@ var AnchoredOverflowRoot = /* @__PURE__ */ (0, import_react.forwardRef)(({ asChi
304
325
  });
305
326
  var AnchoredOverflowAnchor = /* @__PURE__ */ (0, import_react.forwardRef)(({ asChild, classNames, children, ...props }, forwardedRef) => {
306
327
  const { tx } = useThemeContext();
307
- const Root3 = asChild ? import_react_slot.Slot : import_react_primitive.Primitive.div;
308
- return /* @__PURE__ */ import_react.default.createElement(Root3, {
328
+ const Root5 = asChild ? import_react_slot.Slot : import_react_primitive.Primitive.div;
329
+ return /* @__PURE__ */ import_react.default.createElement(Root5, {
309
330
  role: "none",
310
331
  ...props,
311
332
  className: tx("anchoredOverflow.anchor", "overflow-anchor", {}, classNames),
@@ -316,7 +337,7 @@ var AnchoredOverflow = {
316
337
  Root: AnchoredOverflowRoot,
317
338
  Anchor: AnchoredOverflowAnchor
318
339
  };
319
- var Icon = /* @__PURE__ */ (0, import_react9.forwardRef)(({ icon, classNames, size, ...props }, forwardedRef) => {
340
+ var Icon = /* @__PURE__ */ (0, import_react9.memo)(/* @__PURE__ */ (0, import_react9.forwardRef)(({ icon, classNames, size, ...props }, forwardedRef) => {
320
341
  const { tx } = useThemeContext();
321
342
  return /* @__PURE__ */ import_react9.default.createElement("svg", {
322
343
  ...props,
@@ -327,7 +348,7 @@ var Icon = /* @__PURE__ */ (0, import_react9.forwardRef)(({ icon, classNames, si
327
348
  }, /* @__PURE__ */ import_react9.default.createElement("use", {
328
349
  href: `/icons.svg#${icon}`
329
350
  }));
330
- });
351
+ }));
331
352
  var AVATAR_NAME = "Avatar";
332
353
  var [AvatarProvider, useAvatarContext] = (0, import_react_context.createContext)(AVATAR_NAME);
333
354
  var AvatarRoot = ({ size = 10, variant = "circle", status, animation, children, labelId: propsLabelId, descriptionId: propsDescriptionId, maskId: propsMaskId, inGroup, hue }) => {
@@ -419,10 +440,10 @@ var AvatarFrame = /* @__PURE__ */ (0, import_react8.forwardRef)(({ classNames, c
419
440
  }));
420
441
  });
421
442
  var AvatarLabel = /* @__PURE__ */ (0, import_react8.forwardRef)(({ asChild, srOnly, classNames, ...props }, forwardedRef) => {
422
- const Root3 = asChild ? import_react_slot2.Slot : import_react_primitive2.Primitive.span;
443
+ const Root5 = asChild ? import_react_slot2.Slot : import_react_primitive2.Primitive.span;
423
444
  const { tx } = useThemeContext();
424
445
  const { labelId } = useAvatarContext("AvatarLabel");
425
- return /* @__PURE__ */ import_react8.default.createElement(Root3, {
446
+ return /* @__PURE__ */ import_react8.default.createElement(Root5, {
426
447
  ...props,
427
448
  id: labelId,
428
449
  ref: forwardedRef,
@@ -432,10 +453,10 @@ var AvatarLabel = /* @__PURE__ */ (0, import_react8.forwardRef)(({ asChild, srOn
432
453
  });
433
454
  });
434
455
  var AvatarDescription = /* @__PURE__ */ (0, import_react8.forwardRef)(({ asChild, srOnly, classNames, ...props }, forwardedRef) => {
435
- const Root3 = asChild ? import_react_slot2.Slot : import_react_primitive2.Primitive.span;
456
+ const Root5 = asChild ? import_react_slot2.Slot : import_react_primitive2.Primitive.span;
436
457
  const { tx } = useThemeContext();
437
458
  const { descriptionId } = useAvatarContext("AvatarDescription");
438
- return /* @__PURE__ */ import_react8.default.createElement(Root3, {
459
+ return /* @__PURE__ */ import_react8.default.createElement(Root5, {
439
460
  ...props,
440
461
  id: descriptionId,
441
462
  ref: forwardedRef,
@@ -583,8 +604,8 @@ var AvatarGroupItem = {
583
604
  };
584
605
  var Link = /* @__PURE__ */ (0, import_react13.forwardRef)(({ asChild, variant, classNames, ...props }, forwardedRef) => {
585
606
  const { tx } = useThemeContext();
586
- const Root3 = asChild ? import_react_slot4.Slot : import_react_primitive4.Primitive.a;
587
- return /* @__PURE__ */ import_react13.default.createElement(Root3, {
607
+ const Root5 = asChild ? import_react_slot4.Slot : import_react_primitive4.Primitive.a;
608
+ return /* @__PURE__ */ import_react13.default.createElement(Root5, {
588
609
  ...props,
589
610
  className: tx("link.root", "link", {
590
611
  variant
@@ -594,8 +615,8 @@ var Link = /* @__PURE__ */ (0, import_react13.forwardRef)(({ asChild, variant, c
594
615
  });
595
616
  var BreadcrumbRoot = /* @__PURE__ */ (0, import_react12.forwardRef)(({ asChild, classNames, ...props }, forwardedRef) => {
596
617
  const { tx } = useThemeContext();
597
- const Root3 = asChild ? import_react_slot3.Slot : import_react_primitive3.Primitive.div;
598
- return /* @__PURE__ */ import_react12.default.createElement(Root3, {
618
+ const Root5 = asChild ? import_react_slot3.Slot : import_react_primitive3.Primitive.div;
619
+ return /* @__PURE__ */ import_react12.default.createElement(Root5, {
599
620
  role: "navigation",
600
621
  ...props,
601
622
  className: tx("breadcrumb.root", "breadcrumb", {}, classNames),
@@ -604,8 +625,8 @@ var BreadcrumbRoot = /* @__PURE__ */ (0, import_react12.forwardRef)(({ asChild,
604
625
  });
605
626
  var BreadcrumbList = /* @__PURE__ */ (0, import_react12.forwardRef)(({ asChild, classNames, ...props }, forwardedRef) => {
606
627
  const { tx } = useThemeContext();
607
- const Root3 = asChild ? import_react_slot3.Slot : import_react_primitive3.Primitive.ol;
608
- return /* @__PURE__ */ import_react12.default.createElement(Root3, {
628
+ const Root5 = asChild ? import_react_slot3.Slot : import_react_primitive3.Primitive.ol;
629
+ return /* @__PURE__ */ import_react12.default.createElement(Root5, {
609
630
  role: "list",
610
631
  ...props,
611
632
  className: tx("breadcrumb.list", "breadcrumb__list", {}, classNames),
@@ -614,8 +635,8 @@ var BreadcrumbList = /* @__PURE__ */ (0, import_react12.forwardRef)(({ asChild,
614
635
  });
615
636
  var BreadcrumbListItem = /* @__PURE__ */ (0, import_react12.forwardRef)(({ asChild, classNames, ...props }, forwardedRef) => {
616
637
  const { tx } = useThemeContext();
617
- const Root3 = asChild ? import_react_slot3.Slot : import_react_primitive3.Primitive.li;
618
- return /* @__PURE__ */ import_react12.default.createElement(Root3, {
638
+ const Root5 = asChild ? import_react_slot3.Slot : import_react_primitive3.Primitive.li;
639
+ return /* @__PURE__ */ import_react12.default.createElement(Root5, {
619
640
  role: "listitem",
620
641
  ...props,
621
642
  className: tx("breadcrumb.listItem", "breadcrumb__list__item", {}, classNames),
@@ -623,16 +644,16 @@ var BreadcrumbListItem = /* @__PURE__ */ (0, import_react12.forwardRef)(({ asChi
623
644
  });
624
645
  });
625
646
  var BreadcrumbLink = /* @__PURE__ */ (0, import_react12.forwardRef)(({ asChild, ...props }, forwardedRef) => {
626
- const Root3 = asChild ? import_react_slot3.Slot : Link;
627
- return /* @__PURE__ */ import_react12.default.createElement(Root3, {
647
+ const Root5 = asChild ? import_react_slot3.Slot : Link;
648
+ return /* @__PURE__ */ import_react12.default.createElement(Root5, {
628
649
  ...props,
629
650
  ref: forwardedRef
630
651
  });
631
652
  });
632
653
  var BreadcrumbCurrent = /* @__PURE__ */ (0, import_react12.forwardRef)(({ asChild, classNames, ...props }, forwardedRef) => {
633
654
  const { tx } = useThemeContext();
634
- const Root3 = asChild ? import_react_slot3.Slot : "h1";
635
- return /* @__PURE__ */ import_react12.default.createElement(Root3, {
655
+ const Root5 = asChild ? import_react_slot3.Slot : "h1";
656
+ return /* @__PURE__ */ import_react12.default.createElement(Root5, {
636
657
  ...props,
637
658
  "aria-current": "page",
638
659
  className: tx("breadcrumb.current", "breadcrumb__item__heading--current", {}, classNames),
@@ -663,13 +684,13 @@ var BUTTON_NAME = "Button";
663
684
  var [ButtonGroupProvider, useButtonGroupContext] = (0, import_react_context2.createContext)(BUTTON_GROUP_NAME, {
664
685
  inGroup: false
665
686
  });
666
- var Button = /* @__PURE__ */ (0, import_react14.forwardRef)(({ classNames, children, density: propsDensity, elevation: propsElevation, variant = "default", asChild, ...props }, ref) => {
687
+ var Button = /* @__PURE__ */ (0, import_react14.memo)(/* @__PURE__ */ (0, import_react14.forwardRef)(({ classNames, children, density: propsDensity, elevation: propsElevation, variant = "default", asChild, ...props }, ref) => {
667
688
  const { inGroup } = useButtonGroupContext(BUTTON_NAME);
668
689
  const { tx } = useThemeContext();
669
690
  const elevation = useElevationContext(propsElevation);
670
691
  const density = useDensityContext(propsDensity);
671
- const Root3 = asChild ? import_react_slot5.Slot : import_react_primitive5.Primitive.button;
672
- return /* @__PURE__ */ import_react14.default.createElement(Root3, {
692
+ const Root5 = asChild ? import_react_slot5.Slot : import_react_primitive5.Primitive.button;
693
+ return /* @__PURE__ */ import_react14.default.createElement(Root5, {
673
694
  ref,
674
695
  ...props,
675
696
  "data-variant": variant,
@@ -686,13 +707,13 @@ var Button = /* @__PURE__ */ (0, import_react14.forwardRef)(({ classNames, child
686
707
  disabled: true
687
708
  }
688
709
  }, children);
689
- });
710
+ }));
690
711
  Button.displayName = BUTTON_NAME;
691
712
  var ButtonGroup = /* @__PURE__ */ (0, import_react14.forwardRef)(({ children, elevation: propsElevation, classNames, asChild, ...props }, forwardedRef) => {
692
713
  const { tx } = useThemeContext();
693
714
  const elevation = useElevationContext(propsElevation);
694
- const Root3 = asChild ? import_react_slot5.Slot : import_react_primitive5.Primitive.div;
695
- return /* @__PURE__ */ import_react14.default.createElement(Root3, {
715
+ const Root5 = asChild ? import_react_slot5.Slot : import_react_primitive5.Primitive.div;
716
+ return /* @__PURE__ */ import_react14.default.createElement(Root5, {
696
717
  role: "none",
697
718
  ...props,
698
719
  className: tx("button.group", "button-group", {
@@ -893,8 +914,8 @@ var ContextMenuContent = /* @__PURE__ */ (0, import_react20.forwardRef)(({ class
893
914
  });
894
915
  var ContextMenuViewport = /* @__PURE__ */ (0, import_react20.forwardRef)(({ classNames, asChild, children, ...props }, forwardedRef) => {
895
916
  const { tx } = useThemeContext();
896
- const Root3 = asChild ? import_react_slot6.Slot : import_react_primitive6.Primitive.div;
897
- return /* @__PURE__ */ import_react20.default.createElement(Root3, {
917
+ const Root5 = asChild ? import_react_slot6.Slot : import_react_primitive6.Primitive.div;
918
+ return /* @__PURE__ */ import_react20.default.createElement(Root5, {
898
919
  ...props,
899
920
  className: tx("menu.viewport", "menu__viewport", {}, classNames),
900
921
  ref: forwardedRef
@@ -956,88 +977,347 @@ var ContextMenu2 = {
956
977
  Separator: ContextMenuSeparator,
957
978
  GroupLabel: ContextMenuGroupLabel
958
979
  };
959
- var DropdownMenuRoot = DropdownMenuPrimitive.DropdownMenu;
960
- var DropdownMenuTrigger = DropdownMenuPrimitive.Trigger;
961
- var DropdownMenuPortal = DropdownMenuPrimitive.Portal;
962
- var useDropdownMenuContext2 = DropdownMenuPrimitive.useDropdownMenuContext;
963
- var useDropdownMenuMenuScope2 = DropdownMenuPrimitive.useDropdownMenuMenuScope;
964
- var DropdownMenuContent = /* @__PURE__ */ (0, import_react21.forwardRef)(({ classNames, children, ...props }, forwardedRef) => {
965
- const { tx } = useThemeContext();
966
- return /* @__PURE__ */ import_react21.default.createElement(DropdownMenuPrimitive.Content, {
967
- sideOffset: 4,
968
- collisionPadding: 8,
969
- ...props,
970
- className: tx("menu.content", "menu", {}, classNames),
971
- ref: forwardedRef
972
- }, /* @__PURE__ */ import_react21.default.createElement(ElevationProvider, {
973
- elevation: "chrome"
980
+ var DROPDOWN_MENU_NAME = "DropdownMenu";
981
+ var [createDropdownMenuContext, createDropdownMenuScope] = (0, import_react_context5.createContextScope)(DROPDOWN_MENU_NAME, [
982
+ import_react_menu.createMenuScope
983
+ ]);
984
+ var useMenuScope = (0, import_react_menu.createMenuScope)();
985
+ var [DropdownMenuProvider, useDropdownMenuContext] = createDropdownMenuContext(DROPDOWN_MENU_NAME);
986
+ var DropdownMenuRoot = (props) => {
987
+ const { __scopeDropdownMenu, children, dir, open: openProp, defaultOpen, onOpenChange, modal = true } = props;
988
+ const menuScope = useMenuScope(__scopeDropdownMenu);
989
+ const triggerRef = (0, import_react21.useRef)(null);
990
+ const [open = false, setOpen] = (0, import_react_use_controllable_state.useControllableState)({
991
+ prop: openProp,
992
+ defaultProp: defaultOpen,
993
+ onChange: onOpenChange
994
+ });
995
+ return /* @__PURE__ */ import_react21.default.createElement(DropdownMenuProvider, {
996
+ scope: __scopeDropdownMenu,
997
+ triggerId: (0, import_react_id.useId)(),
998
+ triggerRef,
999
+ contentId: (0, import_react_id.useId)(),
1000
+ open,
1001
+ onOpenChange: setOpen,
1002
+ onOpenToggle: (0, import_react21.useCallback)(() => setOpen((prevOpen) => !prevOpen), [
1003
+ setOpen
1004
+ ]),
1005
+ modal
1006
+ }, /* @__PURE__ */ import_react21.default.createElement(MenuPrimitive.Root, {
1007
+ ...menuScope,
1008
+ open,
1009
+ onOpenChange: setOpen,
1010
+ dir,
1011
+ modal
974
1012
  }, children));
1013
+ };
1014
+ DropdownMenuRoot.displayName = DROPDOWN_MENU_NAME;
1015
+ var TRIGGER_NAME = "DropdownMenuTrigger";
1016
+ var DropdownMenuTrigger = /* @__PURE__ */ (0, import_react21.forwardRef)((props, forwardedRef) => {
1017
+ const { __scopeDropdownMenu, disabled = false, ...triggerProps } = props;
1018
+ const context = useDropdownMenuContext(TRIGGER_NAME, __scopeDropdownMenu);
1019
+ const menuScope = useMenuScope(__scopeDropdownMenu);
1020
+ return /* @__PURE__ */ import_react21.default.createElement(MenuPrimitive.Anchor, {
1021
+ asChild: true,
1022
+ ...menuScope
1023
+ }, /* @__PURE__ */ import_react21.default.createElement(import_react_primitive7.Primitive.button, {
1024
+ type: "button",
1025
+ id: context.triggerId,
1026
+ "aria-haspopup": "menu",
1027
+ "aria-expanded": context.open,
1028
+ "aria-controls": context.open ? context.contentId : void 0,
1029
+ "data-state": context.open ? "open" : "closed",
1030
+ "data-disabled": disabled ? "" : void 0,
1031
+ disabled,
1032
+ ...triggerProps,
1033
+ ref: (0, import_react_compose_refs.composeRefs)(forwardedRef, context.triggerRef),
1034
+ onPointerDown: (0, import_primitive.composeEventHandlers)(props.onPointerDown, (event) => {
1035
+ if (!disabled && event.button === 0 && event.ctrlKey === false) {
1036
+ context.onOpenToggle();
1037
+ if (!context.open) {
1038
+ event.preventDefault();
1039
+ }
1040
+ }
1041
+ }),
1042
+ onKeyDown: (0, import_primitive.composeEventHandlers)(props.onKeyDown, (event) => {
1043
+ if (disabled) {
1044
+ return;
1045
+ }
1046
+ if ([
1047
+ "Enter",
1048
+ " "
1049
+ ].includes(event.key)) {
1050
+ context.onOpenToggle();
1051
+ }
1052
+ if (event.key === "ArrowDown") {
1053
+ context.onOpenChange(true);
1054
+ }
1055
+ if ([
1056
+ "Enter",
1057
+ " ",
1058
+ "ArrowDown"
1059
+ ].includes(event.key)) {
1060
+ event.preventDefault();
1061
+ }
1062
+ })
1063
+ }));
975
1064
  });
1065
+ DropdownMenuTrigger.displayName = TRIGGER_NAME;
1066
+ var VIRTUAL_TRIGGER_NAME = "DropdownMenuVirtualTrigger";
1067
+ var DropdownMenuVirtualTrigger = (props) => {
1068
+ const { __scopeDropdownMenu, virtualRef } = props;
1069
+ const context = useDropdownMenuContext(VIRTUAL_TRIGGER_NAME, __scopeDropdownMenu);
1070
+ const menuScope = useMenuScope(__scopeDropdownMenu);
1071
+ (0, import_react21.useEffect)(() => {
1072
+ if (virtualRef.current) {
1073
+ context.triggerRef.current = virtualRef.current;
1074
+ }
1075
+ });
1076
+ return /* @__PURE__ */ import_react21.default.createElement(MenuPrimitive.Anchor, {
1077
+ ...menuScope,
1078
+ virtualRef
1079
+ });
1080
+ };
1081
+ DropdownMenuVirtualTrigger.displayName = VIRTUAL_TRIGGER_NAME;
1082
+ var PORTAL_NAME = "DropdownMenuPortal";
1083
+ var DropdownMenuPortal = (props) => {
1084
+ const { __scopeDropdownMenu, ...portalProps } = props;
1085
+ const menuScope = useMenuScope(__scopeDropdownMenu);
1086
+ return /* @__PURE__ */ import_react21.default.createElement(MenuPrimitive.Portal, {
1087
+ ...menuScope,
1088
+ ...portalProps
1089
+ });
1090
+ };
1091
+ DropdownMenuPortal.displayName = PORTAL_NAME;
976
1092
  var DropdownMenuViewport = /* @__PURE__ */ (0, import_react21.forwardRef)(({ classNames, asChild, children, ...props }, forwardedRef) => {
977
1093
  const { tx } = useThemeContext();
978
- const Root3 = asChild ? import_react_slot7.Slot : import_react_primitive7.Primitive.div;
979
- return /* @__PURE__ */ import_react21.default.createElement(Root3, {
1094
+ const Root5 = asChild ? import_react_slot7.Slot : import_react_primitive7.Primitive.div;
1095
+ return /* @__PURE__ */ import_react21.default.createElement(Root5, {
980
1096
  ...props,
981
1097
  className: tx("menu.viewport", "menu__viewport", {}, classNames),
982
1098
  ref: forwardedRef
983
1099
  }, children);
984
1100
  });
985
- var DropdownMenuArrow = /* @__PURE__ */ (0, import_react21.forwardRef)(({ classNames, ...props }, forwardedRef) => {
1101
+ var CONTENT_NAME = "DropdownMenuContent";
1102
+ var DropdownMenuContent = /* @__PURE__ */ (0, import_react21.forwardRef)((props, forwardedRef) => {
1103
+ const { __scopeDropdownMenu, classNames, ...contentProps } = props;
1104
+ const { tx } = useThemeContext();
1105
+ const context = useDropdownMenuContext(CONTENT_NAME, __scopeDropdownMenu);
1106
+ const menuScope = useMenuScope(__scopeDropdownMenu);
1107
+ const hasInteractedOutsideRef = (0, import_react21.useRef)(false);
1108
+ return /* @__PURE__ */ import_react21.default.createElement(MenuPrimitive.Content, {
1109
+ id: context.contentId,
1110
+ "aria-labelledby": context.triggerId,
1111
+ ...menuScope,
1112
+ ...contentProps,
1113
+ ref: forwardedRef,
1114
+ onCloseAutoFocus: (0, import_primitive.composeEventHandlers)(props.onCloseAutoFocus, (event) => {
1115
+ if (!hasInteractedOutsideRef.current) {
1116
+ context.triggerRef.current?.focus();
1117
+ }
1118
+ hasInteractedOutsideRef.current = false;
1119
+ event.preventDefault();
1120
+ }),
1121
+ onInteractOutside: (0, import_primitive.composeEventHandlers)(props.onInteractOutside, (event) => {
1122
+ const originalEvent = event.detail.originalEvent;
1123
+ const ctrlLeftClick = originalEvent.button === 0 && originalEvent.ctrlKey === true;
1124
+ const isRightClick = originalEvent.button === 2 || ctrlLeftClick;
1125
+ if (!context.modal || isRightClick) {
1126
+ hasInteractedOutsideRef.current = true;
1127
+ }
1128
+ }),
1129
+ className: tx("menu.content", "menu", {}, classNames),
1130
+ style: {
1131
+ ...props.style,
1132
+ // re-namespace exposed content custom properties
1133
+ ...{
1134
+ "--radix-dropdown-menu-content-transform-origin": "var(--radix-popper-transform-origin)",
1135
+ "--radix-dropdown-menu-content-available-width": "var(--radix-popper-available-width)",
1136
+ "--radix-dropdown-menu-content-available-height": "var(--radix-popper-available-height)",
1137
+ "--radix-dropdown-menu-trigger-width": "var(--radix-popper-anchor-width)",
1138
+ "--radix-dropdown-menu-trigger-height": "var(--radix-popper-anchor-height)"
1139
+ }
1140
+ }
1141
+ });
1142
+ });
1143
+ DropdownMenuContent.displayName = CONTENT_NAME;
1144
+ var GROUP_NAME = "DropdownMenuGroup";
1145
+ var DropdownMenuGroup = /* @__PURE__ */ (0, import_react21.forwardRef)((props, forwardedRef) => {
1146
+ const { __scopeDropdownMenu, ...groupProps } = props;
1147
+ const menuScope = useMenuScope(__scopeDropdownMenu);
1148
+ return /* @__PURE__ */ import_react21.default.createElement(MenuPrimitive.Group, {
1149
+ ...menuScope,
1150
+ ...groupProps,
1151
+ ref: forwardedRef
1152
+ });
1153
+ });
1154
+ DropdownMenuGroup.displayName = GROUP_NAME;
1155
+ var LABEL_NAME = "DropdownMenuLabel";
1156
+ var DropdownMenuGroupLabel = /* @__PURE__ */ (0, import_react21.forwardRef)((props, forwardedRef) => {
1157
+ const { __scopeDropdownMenu, classNames, ...labelProps } = props;
1158
+ const menuScope = useMenuScope(__scopeDropdownMenu);
986
1159
  const { tx } = useThemeContext();
987
- return /* @__PURE__ */ import_react21.default.createElement(DropdownMenuPrimitive.Arrow, {
988
- ...props,
989
- className: tx("menu.arrow", "menu__arrow", {}, classNames),
1160
+ return /* @__PURE__ */ import_react21.default.createElement(MenuPrimitive.Label, {
1161
+ ...menuScope,
1162
+ ...labelProps,
1163
+ className: tx("menu.groupLabel", "menu__group__label", {}, classNames),
990
1164
  ref: forwardedRef
991
1165
  });
992
1166
  });
993
- var DropdownMenuGroup = DropdownMenuPrimitive.Group;
994
- var DropdownMenuItemIndicator = DropdownMenuPrimitive.ItemIndicator;
995
- var DropdownMenuItem = /* @__PURE__ */ (0, import_react21.forwardRef)(({ classNames, ...props }, forwardedRef) => {
1167
+ DropdownMenuGroupLabel.displayName = LABEL_NAME;
1168
+ var ITEM_NAME = "DropdownMenuItem";
1169
+ var DropdownMenuItem = /* @__PURE__ */ (0, import_react21.forwardRef)((props, forwardedRef) => {
1170
+ const { __scopeDropdownMenu, classNames, ...itemProps } = props;
1171
+ const menuScope = useMenuScope(__scopeDropdownMenu);
996
1172
  const { tx } = useThemeContext();
997
- return /* @__PURE__ */ import_react21.default.createElement(DropdownMenuPrimitive.Item, {
998
- ...props,
1173
+ return /* @__PURE__ */ import_react21.default.createElement(MenuPrimitive.Item, {
1174
+ ...menuScope,
1175
+ ...itemProps,
999
1176
  className: tx("menu.item", "menu__item", {}, classNames),
1000
1177
  ref: forwardedRef
1001
1178
  });
1002
1179
  });
1003
- var DropdownMenuCheckboxItem = /* @__PURE__ */ (0, import_react21.forwardRef)(({ classNames, ...props }, forwardedRef) => {
1180
+ DropdownMenuItem.displayName = ITEM_NAME;
1181
+ var CHECKBOX_ITEM_NAME = "DropdownMenuCheckboxItem";
1182
+ var DropdownMenuCheckboxItem = /* @__PURE__ */ (0, import_react21.forwardRef)((props, forwardedRef) => {
1183
+ const { __scopeDropdownMenu, classNames, ...checkboxItemProps } = props;
1184
+ const menuScope = useMenuScope(__scopeDropdownMenu);
1004
1185
  const { tx } = useThemeContext();
1005
- return /* @__PURE__ */ import_react21.default.createElement(DropdownMenuPrimitive.CheckboxItem, {
1006
- ...props,
1186
+ return /* @__PURE__ */ import_react21.default.createElement(MenuPrimitive.CheckboxItem, {
1187
+ ...menuScope,
1188
+ ...checkboxItemProps,
1007
1189
  className: tx("menu.item", "menu__item--checkbox", {}, classNames),
1008
1190
  ref: forwardedRef
1009
1191
  });
1010
1192
  });
1011
- var DropdownMenuSeparator = /* @__PURE__ */ (0, import_react21.forwardRef)(({ classNames, ...props }, forwardedRef) => {
1193
+ DropdownMenuCheckboxItem.displayName = CHECKBOX_ITEM_NAME;
1194
+ var RADIO_GROUP_NAME = "DropdownMenuRadioGroup";
1195
+ var DropdownMenuRadioGroup = /* @__PURE__ */ (0, import_react21.forwardRef)((props, forwardedRef) => {
1196
+ const { __scopeDropdownMenu, ...radioGroupProps } = props;
1197
+ const menuScope = useMenuScope(__scopeDropdownMenu);
1198
+ return /* @__PURE__ */ import_react21.default.createElement(MenuPrimitive.RadioGroup, {
1199
+ ...menuScope,
1200
+ ...radioGroupProps,
1201
+ ref: forwardedRef
1202
+ });
1203
+ });
1204
+ DropdownMenuRadioGroup.displayName = RADIO_GROUP_NAME;
1205
+ var RADIO_ITEM_NAME = "DropdownMenuRadioItem";
1206
+ var DropdownMenuRadioItem = /* @__PURE__ */ (0, import_react21.forwardRef)((props, forwardedRef) => {
1207
+ const { __scopeDropdownMenu, ...radioItemProps } = props;
1208
+ const menuScope = useMenuScope(__scopeDropdownMenu);
1209
+ return /* @__PURE__ */ import_react21.default.createElement(MenuPrimitive.RadioItem, {
1210
+ ...menuScope,
1211
+ ...radioItemProps,
1212
+ ref: forwardedRef
1213
+ });
1214
+ });
1215
+ DropdownMenuRadioItem.displayName = RADIO_ITEM_NAME;
1216
+ var INDICATOR_NAME = "DropdownMenuItemIndicator";
1217
+ var DropdownMenuItemIndicator = /* @__PURE__ */ (0, import_react21.forwardRef)((props, forwardedRef) => {
1218
+ const { __scopeDropdownMenu, ...itemIndicatorProps } = props;
1219
+ const menuScope = useMenuScope(__scopeDropdownMenu);
1220
+ return /* @__PURE__ */ import_react21.default.createElement(MenuPrimitive.ItemIndicator, {
1221
+ ...menuScope,
1222
+ ...itemIndicatorProps,
1223
+ ref: forwardedRef
1224
+ });
1225
+ });
1226
+ DropdownMenuItemIndicator.displayName = INDICATOR_NAME;
1227
+ var SEPARATOR_NAME = "DropdownMenuSeparator";
1228
+ var DropdownMenuSeparator = /* @__PURE__ */ (0, import_react21.forwardRef)((props, forwardedRef) => {
1229
+ const { __scopeDropdownMenu, classNames, ...separatorProps } = props;
1230
+ const menuScope = useMenuScope(__scopeDropdownMenu);
1012
1231
  const { tx } = useThemeContext();
1013
- return /* @__PURE__ */ import_react21.default.createElement(DropdownMenuPrimitive.Separator, {
1014
- ...props,
1232
+ return /* @__PURE__ */ import_react21.default.createElement(MenuPrimitive.Separator, {
1233
+ ...menuScope,
1234
+ ...separatorProps,
1015
1235
  className: tx("menu.separator", "menu__item", {}, classNames),
1016
1236
  ref: forwardedRef
1017
1237
  });
1018
1238
  });
1019
- var DropdownMenuGroupLabel = /* @__PURE__ */ (0, import_react21.forwardRef)(({ classNames, ...props }, forwardedRef) => {
1239
+ DropdownMenuSeparator.displayName = SEPARATOR_NAME;
1240
+ var ARROW_NAME = "DropdownMenuArrow";
1241
+ var DropdownMenuArrow = /* @__PURE__ */ (0, import_react21.forwardRef)((props, forwardedRef) => {
1242
+ const { __scopeDropdownMenu, classNames, ...arrowProps } = props;
1243
+ const menuScope = useMenuScope(__scopeDropdownMenu);
1020
1244
  const { tx } = useThemeContext();
1021
- return /* @__PURE__ */ import_react21.default.createElement(DropdownMenuPrimitive.Label, {
1022
- ...props,
1023
- className: tx("menu.groupLabel", "menu__group__label", {}, classNames),
1245
+ return /* @__PURE__ */ import_react21.default.createElement(MenuPrimitive.Arrow, {
1246
+ ...menuScope,
1247
+ ...arrowProps,
1248
+ className: tx("menu.arrow", "menu__arrow", {}, classNames),
1024
1249
  ref: forwardedRef
1025
1250
  });
1026
1251
  });
1027
- var DropdownMenu2 = {
1252
+ DropdownMenuArrow.displayName = ARROW_NAME;
1253
+ var DropdownMenuSub = (props) => {
1254
+ const { __scopeDropdownMenu, children, open: openProp, onOpenChange, defaultOpen } = props;
1255
+ const menuScope = useMenuScope(__scopeDropdownMenu);
1256
+ const [open = false, setOpen] = (0, import_react_use_controllable_state.useControllableState)({
1257
+ prop: openProp,
1258
+ defaultProp: defaultOpen,
1259
+ onChange: onOpenChange
1260
+ });
1261
+ return /* @__PURE__ */ import_react21.default.createElement(MenuPrimitive.Sub, {
1262
+ ...menuScope,
1263
+ open,
1264
+ onOpenChange: setOpen
1265
+ }, children);
1266
+ };
1267
+ var SUB_TRIGGER_NAME = "DropdownMenuSubTrigger";
1268
+ var DropdownMenuSubTrigger = /* @__PURE__ */ (0, import_react21.forwardRef)((props, forwardedRef) => {
1269
+ const { __scopeDropdownMenu, ...subTriggerProps } = props;
1270
+ const menuScope = useMenuScope(__scopeDropdownMenu);
1271
+ return /* @__PURE__ */ import_react21.default.createElement(MenuPrimitive.SubTrigger, {
1272
+ ...menuScope,
1273
+ ...subTriggerProps,
1274
+ ref: forwardedRef
1275
+ });
1276
+ });
1277
+ DropdownMenuSubTrigger.displayName = SUB_TRIGGER_NAME;
1278
+ var SUB_CONTENT_NAME = "DropdownMenuSubContent";
1279
+ var DropdownMenuSubContent = /* @__PURE__ */ (0, import_react21.forwardRef)((props, forwardedRef) => {
1280
+ const { __scopeDropdownMenu, ...subContentProps } = props;
1281
+ const menuScope = useMenuScope(__scopeDropdownMenu);
1282
+ return /* @__PURE__ */ import_react21.default.createElement(MenuPrimitive.SubContent, {
1283
+ ...menuScope,
1284
+ ...subContentProps,
1285
+ ref: forwardedRef,
1286
+ style: {
1287
+ ...props.style,
1288
+ // re-namespace exposed content custom properties
1289
+ ...{
1290
+ "--radix-dropdown-menu-content-transform-origin": "var(--radix-popper-transform-origin)",
1291
+ "--radix-dropdown-menu-content-available-width": "var(--radix-popper-available-width)",
1292
+ "--radix-dropdown-menu-content-available-height": "var(--radix-popper-available-height)",
1293
+ "--radix-dropdown-menu-trigger-width": "var(--radix-popper-anchor-width)",
1294
+ "--radix-dropdown-menu-trigger-height": "var(--radix-popper-anchor-height)"
1295
+ }
1296
+ }
1297
+ });
1298
+ });
1299
+ DropdownMenuSubContent.displayName = SUB_CONTENT_NAME;
1300
+ var DropdownMenu = {
1028
1301
  Root: DropdownMenuRoot,
1029
1302
  Trigger: DropdownMenuTrigger,
1303
+ VirtualTrigger: DropdownMenuVirtualTrigger,
1030
1304
  Portal: DropdownMenuPortal,
1031
1305
  Content: DropdownMenuContent,
1032
1306
  Viewport: DropdownMenuViewport,
1033
- Arrow: DropdownMenuArrow,
1034
1307
  Group: DropdownMenuGroup,
1308
+ GroupLabel: DropdownMenuGroupLabel,
1035
1309
  Item: DropdownMenuItem,
1036
1310
  CheckboxItem: DropdownMenuCheckboxItem,
1311
+ RadioGroup: DropdownMenuRadioGroup,
1312
+ RadioItem: DropdownMenuRadioItem,
1037
1313
  ItemIndicator: DropdownMenuItemIndicator,
1038
1314
  Separator: DropdownMenuSeparator,
1039
- GroupLabel: DropdownMenuGroupLabel
1315
+ Arrow: DropdownMenuArrow,
1316
+ Sub: DropdownMenuSub,
1317
+ SubTrigger: DropdownMenuSubTrigger,
1318
+ SubContent: DropdownMenuSubContent
1040
1319
  };
1320
+ var useDropdownMenuMenuScope = useMenuScope;
1041
1321
  var Label3 = /* @__PURE__ */ (0, import_react23.forwardRef)(({ srOnly, classNames, children, ...props }, forwardedRef) => {
1042
1322
  const { tx } = useThemeContext();
1043
1323
  return /* @__PURE__ */ import_react23.default.createElement(import_react_input.Label, {
@@ -1155,7 +1435,7 @@ var TextArea = /* @__PURE__ */ (0, import_react23.forwardRef)(({ __inputScope, c
1155
1435
  });
1156
1436
  });
1157
1437
  var Checkbox = /* @__PURE__ */ (0, import_react23.forwardRef)(({ __inputScope, checked: propsChecked, defaultChecked: propsDefaultChecked, onCheckedChange: propsOnCheckedChange, size, weight = "bold", classNames, ...props }, forwardedRef) => {
1158
- const [checked, onCheckedChange] = (0, import_react_use_controllable_state.useControllableState)({
1438
+ const [checked, onCheckedChange] = (0, import_react_use_controllable_state2.useControllableState)({
1159
1439
  prop: propsChecked,
1160
1440
  defaultProp: propsDefaultChecked,
1161
1441
  onChange: propsOnCheckedChange
@@ -1188,7 +1468,7 @@ var Checkbox = /* @__PURE__ */ (0, import_react23.forwardRef)(({ __inputScope, c
1188
1468
  });
1189
1469
  var Switch = /* @__PURE__ */ (0, import_react23.forwardRef)(({ __inputScope, checked: propsChecked, defaultChecked: propsDefaultChecked, onCheckedChange: propsOnCheckedChange, size = 5, classNames, ...props }, forwardedRef) => {
1190
1470
  const { tx } = useThemeContext();
1191
- const [checked, onCheckedChange] = (0, import_react_use_controllable_state.useControllableState)({
1471
+ const [checked, onCheckedChange] = (0, import_react_use_controllable_state2.useControllableState)({
1192
1472
  prop: propsChecked,
1193
1473
  defaultProp: propsDefaultChecked,
1194
1474
  onChange: propsOnCheckedChange
@@ -1246,10 +1526,10 @@ var List = /* @__PURE__ */ (0, import_react25.forwardRef)(({ classNames, childre
1246
1526
  }, children));
1247
1527
  });
1248
1528
  var ListItemEndcap = /* @__PURE__ */ (0, import_react25.forwardRef)(({ children, classNames, asChild, ...props }, forwardedRef) => {
1249
- const Root3 = asChild ? import_react_slot8.Slot : "div";
1529
+ const Root5 = asChild ? import_react_slot8.Slot : "div";
1250
1530
  const density = useDensityContext();
1251
1531
  const { tx } = useThemeContext();
1252
- return /* @__PURE__ */ import_react25.default.createElement(Root3, {
1532
+ return /* @__PURE__ */ import_react25.default.createElement(Root5, {
1253
1533
  ...!asChild && {
1254
1534
  role: "none"
1255
1535
  },
@@ -1355,19 +1635,19 @@ var TreeItem = {
1355
1635
  MockOpenTrigger: MockTreeItemOpenTrigger
1356
1636
  };
1357
1637
  var TREEGRID_ROW_NAME = "TreegridRow";
1358
- var [createTreegridRowContext, createTreegridRowScope] = (0, import_react_context5.createContextScope)(TREEGRID_ROW_NAME, []);
1638
+ var [createTreegridRowContext, createTreegridRowScope] = (0, import_react_context6.createContextScope)(TREEGRID_ROW_NAME, []);
1359
1639
  var [TreegridRowProvider, useTreegridRowContext] = createTreegridRowContext(TREEGRID_ROW_NAME);
1360
1640
  var PATH_SEPARATOR = "~";
1361
1641
  var PARENT_OF_SEPARATOR = " ";
1362
1642
  var TreegridRoot = /* @__PURE__ */ (0, import_react28.forwardRef)(({ asChild, classNames, children, style, gridTemplateColumns, ...props }, forwardedRef) => {
1363
1643
  const { tx } = useThemeContext();
1364
- const Root3 = asChild ? import_react_slot9.Slot : import_react_primitive8.Primitive.div;
1644
+ const Root5 = asChild ? import_react_slot9.Slot : import_react_primitive8.Primitive.div;
1365
1645
  const arrowNavigationAttrs = (0, import_react_tabster.useArrowNavigationGroup)({
1366
1646
  axis: "vertical",
1367
1647
  tabbable: false,
1368
1648
  circular: true
1369
1649
  });
1370
- return /* @__PURE__ */ import_react28.default.createElement(Root3, {
1650
+ return /* @__PURE__ */ import_react28.default.createElement(Root5, {
1371
1651
  role: "treegrid",
1372
1652
  ...arrowNavigationAttrs,
1373
1653
  ...props,
@@ -1381,10 +1661,10 @@ var TreegridRoot = /* @__PURE__ */ (0, import_react28.forwardRef)(({ asChild, cl
1381
1661
  });
1382
1662
  var TreegridRow = /* @__PURE__ */ (0, import_react28.forwardRef)(({ __treegridRowScope, asChild, classNames, children, id, parentOf, open: propsOpen, defaultOpen, onOpenChange: propsOnOpenChange, ...props }, forwardedRef) => {
1383
1663
  const { tx } = useThemeContext();
1384
- const Root3 = asChild ? import_react_slot9.Slot : import_react_primitive8.Primitive.div;
1664
+ const Root5 = asChild ? import_react_slot9.Slot : import_react_primitive8.Primitive.div;
1385
1665
  const pathParts = id.split(PATH_SEPARATOR);
1386
1666
  const level = pathParts.length - 1;
1387
- const [open, onOpenChange] = (0, import_react_use_controllable_state2.useControllableState)({
1667
+ const [open, onOpenChange] = (0, import_react_use_controllable_state3.useControllableState)({
1388
1668
  prop: propsOpen,
1389
1669
  onChange: propsOnOpenChange,
1390
1670
  defaultProp: defaultOpen
@@ -1402,7 +1682,7 @@ var TreegridRow = /* @__PURE__ */ (0, import_react28.forwardRef)(({ __treegridRo
1402
1682
  open,
1403
1683
  onOpenChange,
1404
1684
  scope: __treegridRowScope
1405
- }, /* @__PURE__ */ import_react28.default.createElement(Root3, {
1685
+ }, /* @__PURE__ */ import_react28.default.createElement(Root5, {
1406
1686
  role: "row",
1407
1687
  "aria-level": level,
1408
1688
  className: tx("treegrid.row", "treegrid__row", {
@@ -1572,7 +1852,7 @@ var useLandmarkMover = (propsOnKeyDown, landmark) => {
1572
1852
  ...focusableAttrs
1573
1853
  };
1574
1854
  };
1575
- var [MainProvider, useMainContext] = (0, import_react_context6.createContext)(MAIN_NAME, {
1855
+ var [MainProvider, useMainContext] = (0, import_react_context7.createContext)(MAIN_NAME, {
1576
1856
  resizing: false,
1577
1857
  navigationSidebarOpen: false,
1578
1858
  setNavigationSidebarOpen: (nextOpen) => {
@@ -1627,12 +1907,12 @@ var MainRoot = ({ navigationSidebarOpen: propsNavigationSidebarOpen, defaultNavi
1627
1907
  const [isLg] = (0, import_react_hooks3.useMediaQuery)("lg", {
1628
1908
  ssr: false
1629
1909
  });
1630
- const [navigationSidebarOpen = isLg, setNavigationSidebarOpen] = (0, import_react_use_controllable_state3.useControllableState)({
1910
+ const [navigationSidebarOpen = isLg, setNavigationSidebarOpen] = (0, import_react_use_controllable_state4.useControllableState)({
1631
1911
  prop: propsNavigationSidebarOpen,
1632
1912
  defaultProp: defaultNavigationSidebarOpen,
1633
1913
  onChange: onNavigationSidebarOpenChange
1634
1914
  });
1635
- const [complementarySidebarOpen = false, setComplementarySidebarOpen] = (0, import_react_use_controllable_state3.useControllableState)({
1915
+ const [complementarySidebarOpen = false, setComplementarySidebarOpen] = (0, import_react_use_controllable_state4.useControllableState)({
1636
1916
  prop: propsComplementarySidebarOpen,
1637
1917
  defaultProp: defaultComplementarySidebarOpen,
1638
1918
  onChange: onComplementarySidebarOpenChange
@@ -1686,11 +1966,11 @@ var MainSidebar = /* @__PURE__ */ (0, import_react29.forwardRef)(({ classNames,
1686
1966
  }, [
1687
1967
  props.onKeyDown
1688
1968
  ]);
1689
- const Root3 = isLg ? import_react_primitive9.Primitive.div : import_react_dialog2.DialogContent;
1969
+ const Root5 = isLg ? import_react_primitive9.Primitive.div : import_react_dialog2.DialogContent;
1690
1970
  return /* @__PURE__ */ import_react29.default.createElement(import_react_dialog2.Root, {
1691
1971
  open,
1692
1972
  modal: false
1693
- }, /* @__PURE__ */ import_react29.default.createElement(Root3, {
1973
+ }, /* @__PURE__ */ import_react29.default.createElement(Root5, {
1694
1974
  ...!isLg && {
1695
1975
  forceMount: true,
1696
1976
  tabIndex: -1,
@@ -1741,9 +2021,9 @@ MainNavigationSidebar.displayName = NAVIGATION_SIDEBAR_NAME;
1741
2021
  var MainContent = /* @__PURE__ */ (0, import_react29.forwardRef)(({ asChild, classNames, bounce, handlesFocus, children, role, ...props }, forwardedRef) => {
1742
2022
  const { navigationSidebarOpen, complementarySidebarOpen } = useMainContext(MAIN_NAME);
1743
2023
  const { tx } = useThemeContext();
1744
- const Root3 = asChild ? import_react_slot10.Slot : role ? "div" : "main";
2024
+ const Root5 = asChild ? import_react_slot10.Slot : role ? "div" : "main";
1745
2025
  const mover = useLandmarkMover(props.onKeyDown, "1");
1746
- return /* @__PURE__ */ import_react29.default.createElement(Root3, {
2026
+ return /* @__PURE__ */ import_react29.default.createElement(Root5, {
1747
2027
  role,
1748
2028
  ...handlesFocus && {
1749
2029
  ...mover
@@ -1785,7 +2065,7 @@ var MainNotch = /* @__PURE__ */ (0, import_react29.forwardRef)(({ classNames, ..
1785
2065
  const { tx } = useThemeContext();
1786
2066
  const { navigationSidebarOpen } = useMainContext(MAIN_NAME);
1787
2067
  const notchElement = (0, import_react29.useRef)(null);
1788
- const ref = (0, import_react_compose_refs.useComposedRefs)(forwardedRef, notchElement);
2068
+ const ref = (0, import_react_compose_refs2.useComposedRefs)(forwardedRef, notchElement);
1789
2069
  const handleKeyDown = (0, import_react29.useCallback)((event) => {
1790
2070
  switch (event.key) {
1791
2071
  case "Escape":
@@ -1814,17 +2094,17 @@ var Main = {
1814
2094
  Notch: MainNotch
1815
2095
  };
1816
2096
  var MESSAGE_NAME = "Message";
1817
- var [MessageProvider, useMessageContext] = (0, import_react_context7.createContext)(MESSAGE_NAME);
2097
+ var [MessageProvider, useMessageContext] = (0, import_react_context8.createContext)(MESSAGE_NAME);
1818
2098
  var MessageRoot = /* @__PURE__ */ (0, import_react31.forwardRef)(({ asChild, valence, elevation: propsElevation, className, titleId: propsTitleId, descriptionId: propsDescriptionId, children, ...props }, forwardedRef) => {
1819
2099
  const { tx } = useThemeContext();
1820
2100
  const titleId = (0, import_react_hooks4.useId)("message__title", propsTitleId);
1821
2101
  const descriptionId = (0, import_react_hooks4.useId)("message__description", propsDescriptionId);
1822
2102
  const elevation = useElevationContext(propsElevation);
1823
- const Root3 = asChild ? import_react_slot11.Slot : import_react_primitive10.Primitive.div;
2103
+ const Root5 = asChild ? import_react_slot11.Slot : import_react_primitive10.Primitive.div;
1824
2104
  return /* @__PURE__ */ import_react31.default.createElement(MessageProvider, {
1825
2105
  titleId,
1826
2106
  descriptionId
1827
- }, /* @__PURE__ */ import_react31.default.createElement(Root3, {
2107
+ }, /* @__PURE__ */ import_react31.default.createElement(Root5, {
1828
2108
  ...props,
1829
2109
  className: tx("message.root", "message", {
1830
2110
  valence,
@@ -1840,8 +2120,8 @@ var MESSAGE_TITLE_NAME = "MessageTitle";
1840
2120
  var MessageTitle = /* @__PURE__ */ (0, import_react31.forwardRef)(({ asChild, className, children, ...props }, forwardedRef) => {
1841
2121
  const { tx } = useThemeContext();
1842
2122
  const { titleId } = useMessageContext(MESSAGE_TITLE_NAME);
1843
- const Root3 = asChild ? import_react_slot11.Slot : import_react_primitive10.Primitive.h2;
1844
- return /* @__PURE__ */ import_react31.default.createElement(Root3, {
2123
+ const Root5 = asChild ? import_react_slot11.Slot : import_react_primitive10.Primitive.h2;
2124
+ return /* @__PURE__ */ import_react31.default.createElement(Root5, {
1845
2125
  ...props,
1846
2126
  className: tx("message.title", "message__title", {}, className),
1847
2127
  id: titleId,
@@ -1853,8 +2133,8 @@ var MESSAGE_BODY_NAME = "MessageBody";
1853
2133
  var MessageBody = /* @__PURE__ */ (0, import_react31.forwardRef)(({ asChild, className, children, ...props }, forwardedRef) => {
1854
2134
  const { tx } = useThemeContext();
1855
2135
  const { descriptionId } = useMessageContext(MESSAGE_BODY_NAME);
1856
- const Root3 = asChild ? import_react_slot11.Slot : import_react_primitive10.Primitive.p;
1857
- return /* @__PURE__ */ import_react31.default.createElement(Root3, {
2136
+ const Root5 = asChild ? import_react_slot11.Slot : import_react_primitive10.Primitive.p;
2137
+ return /* @__PURE__ */ import_react31.default.createElement(Root5, {
1858
2138
  ...props,
1859
2139
  className: tx("message.body", "message__body", {}, className),
1860
2140
  id: descriptionId,
@@ -1867,35 +2147,281 @@ var Message = {
1867
2147
  Title: MessageTitle,
1868
2148
  Body: MessageBody
1869
2149
  };
1870
- var PopoverRoot = import_react_popover.Root;
1871
- var PopoverPortal = import_react_popover.PopoverPortal;
1872
- var PopoverTrigger = import_react_popover.PopoverTrigger;
1873
- var PopoverAnchor = import_react_popover.PopoverAnchor;
1874
- var PopoverClose = import_react_popover.PopoverClose;
1875
- var PopoverArrow = /* @__PURE__ */ (0, import_react32.forwardRef)(({ classNames, ...props }, forwardedRef) => {
1876
- const { tx } = useThemeContext();
1877
- return /* @__PURE__ */ import_react32.default.createElement(import_react_popover.PopoverArrow, {
1878
- ...props,
1879
- className: tx("popover.arrow", "popover__arrow", {}, classNames),
2150
+ var POPOVER_NAME = "Popover";
2151
+ var [createPopoverContext, createPopoverScope] = (0, import_react_context9.createContextScope)(POPOVER_NAME, [
2152
+ import_react_popper.createPopperScope
2153
+ ]);
2154
+ var usePopperScope = (0, import_react_popper.createPopperScope)();
2155
+ var [PopoverProvider, usePopoverContext] = createPopoverContext(POPOVER_NAME);
2156
+ var PopoverRoot = (props) => {
2157
+ const { __scopePopover, children, open: openProp, defaultOpen, onOpenChange, modal = false } = props;
2158
+ const popperScope = usePopperScope(__scopePopover);
2159
+ const triggerRef = (0, import_react32.useRef)(null);
2160
+ const [hasCustomAnchor, setHasCustomAnchor] = (0, import_react32.useState)(false);
2161
+ const [open = false, setOpen] = (0, import_react_use_controllable_state5.useControllableState)({
2162
+ prop: openProp,
2163
+ defaultProp: defaultOpen,
2164
+ onChange: onOpenChange
2165
+ });
2166
+ return /* @__PURE__ */ import_react32.default.createElement(PopperPrimitive.Root, popperScope, /* @__PURE__ */ import_react32.default.createElement(PopoverProvider, {
2167
+ scope: __scopePopover,
2168
+ contentId: (0, import_react_id2.useId)(),
2169
+ triggerRef,
2170
+ open,
2171
+ onOpenChange: setOpen,
2172
+ onOpenToggle: (0, import_react32.useCallback)(() => setOpen((prevOpen) => !prevOpen), [
2173
+ setOpen
2174
+ ]),
2175
+ hasCustomAnchor,
2176
+ onCustomAnchorAdd: (0, import_react32.useCallback)(() => setHasCustomAnchor(true), []),
2177
+ onCustomAnchorRemove: (0, import_react32.useCallback)(() => setHasCustomAnchor(false), []),
2178
+ modal
2179
+ }, children));
2180
+ };
2181
+ PopoverRoot.displayName = POPOVER_NAME;
2182
+ var ANCHOR_NAME = "PopoverAnchor";
2183
+ var PopoverAnchor = /* @__PURE__ */ (0, import_react32.forwardRef)((props, forwardedRef) => {
2184
+ const { __scopePopover, ...anchorProps } = props;
2185
+ const context = usePopoverContext(ANCHOR_NAME, __scopePopover);
2186
+ const popperScope = usePopperScope(__scopePopover);
2187
+ const { onCustomAnchorAdd, onCustomAnchorRemove } = context;
2188
+ (0, import_react32.useEffect)(() => {
2189
+ onCustomAnchorAdd();
2190
+ return () => onCustomAnchorRemove();
2191
+ }, [
2192
+ onCustomAnchorAdd,
2193
+ onCustomAnchorRemove
2194
+ ]);
2195
+ return /* @__PURE__ */ import_react32.default.createElement(PopperPrimitive.Anchor, {
2196
+ ...popperScope,
2197
+ ...anchorProps,
2198
+ ref: forwardedRef
2199
+ });
2200
+ });
2201
+ PopoverAnchor.displayName = ANCHOR_NAME;
2202
+ var TRIGGER_NAME2 = "PopoverTrigger";
2203
+ var PopoverTrigger = /* @__PURE__ */ (0, import_react32.forwardRef)((props, forwardedRef) => {
2204
+ const { __scopePopover, ...triggerProps } = props;
2205
+ const context = usePopoverContext(TRIGGER_NAME2, __scopePopover);
2206
+ const popperScope = usePopperScope(__scopePopover);
2207
+ const composedTriggerRef = (0, import_react_compose_refs3.useComposedRefs)(forwardedRef, context.triggerRef);
2208
+ const trigger = /* @__PURE__ */ import_react32.default.createElement(import_react_primitive11.Primitive.button, {
2209
+ type: "button",
2210
+ "aria-haspopup": "dialog",
2211
+ "aria-expanded": context.open,
2212
+ "aria-controls": context.contentId,
2213
+ "data-state": getState(context.open),
2214
+ ...triggerProps,
2215
+ ref: composedTriggerRef,
2216
+ onClick: (0, import_primitive2.composeEventHandlers)(props.onClick, context.onOpenToggle)
2217
+ });
2218
+ return context.hasCustomAnchor ? trigger : /* @__PURE__ */ import_react32.default.createElement(PopperPrimitive.Anchor, {
2219
+ asChild: true,
2220
+ ...popperScope
2221
+ }, trigger);
2222
+ });
2223
+ PopoverTrigger.displayName = TRIGGER_NAME2;
2224
+ var VIRTUAL_TRIGGER_NAME2 = "PopoverVirtualTrigger";
2225
+ var PopoverVirtualTrigger = (props) => {
2226
+ const { __scopePopover, virtualRef } = props;
2227
+ const context = usePopoverContext(VIRTUAL_TRIGGER_NAME2, __scopePopover);
2228
+ const popperScope = usePopperScope(__scopePopover);
2229
+ (0, import_react32.useEffect)(() => {
2230
+ if (virtualRef.current) {
2231
+ context.triggerRef.current = virtualRef.current;
2232
+ }
2233
+ });
2234
+ return /* @__PURE__ */ import_react32.default.createElement(PopperPrimitive.Anchor, {
2235
+ ...popperScope,
2236
+ virtualRef
2237
+ });
2238
+ };
2239
+ PopoverVirtualTrigger.displayName = VIRTUAL_TRIGGER_NAME2;
2240
+ var PORTAL_NAME2 = "PopoverPortal";
2241
+ var [PortalProvider, usePortalContext] = createPopoverContext(PORTAL_NAME2, {
2242
+ forceMount: void 0
2243
+ });
2244
+ var PopoverPortal = (props) => {
2245
+ const { __scopePopover, forceMount, children, container } = props;
2246
+ const context = usePopoverContext(PORTAL_NAME2, __scopePopover);
2247
+ return /* @__PURE__ */ import_react32.default.createElement(PortalProvider, {
2248
+ scope: __scopePopover,
2249
+ forceMount
2250
+ }, /* @__PURE__ */ import_react32.default.createElement(import_react_presence.Presence, {
2251
+ present: forceMount || context.open
2252
+ }, /* @__PURE__ */ import_react32.default.createElement(import_react_portal.Portal, {
2253
+ asChild: true,
2254
+ container
2255
+ }, children)));
2256
+ };
2257
+ PopoverPortal.displayName = PORTAL_NAME2;
2258
+ var CONTENT_NAME2 = "PopoverContent";
2259
+ var PopoverContent = /* @__PURE__ */ (0, import_react32.forwardRef)((props, forwardedRef) => {
2260
+ const portalContext = usePortalContext(CONTENT_NAME2, props.__scopePopover);
2261
+ const { forceMount = portalContext.forceMount, ...contentProps } = props;
2262
+ const context = usePopoverContext(CONTENT_NAME2, props.__scopePopover);
2263
+ return /* @__PURE__ */ import_react32.default.createElement(import_react_presence.Presence, {
2264
+ present: forceMount || context.open
2265
+ }, context.modal ? /* @__PURE__ */ import_react32.default.createElement(PopoverContentModal, {
2266
+ ...contentProps,
2267
+ ref: forwardedRef
2268
+ }) : /* @__PURE__ */ import_react32.default.createElement(PopoverContentNonModal, {
2269
+ ...contentProps,
1880
2270
  ref: forwardedRef
2271
+ }));
2272
+ });
2273
+ PopoverContent.displayName = CONTENT_NAME2;
2274
+ var PopoverContentModal = /* @__PURE__ */ (0, import_react32.forwardRef)((props, forwardedRef) => {
2275
+ const context = usePopoverContext(CONTENT_NAME2, props.__scopePopover);
2276
+ const contentRef = (0, import_react32.useRef)(null);
2277
+ const composedRefs = (0, import_react_compose_refs3.useComposedRefs)(forwardedRef, contentRef);
2278
+ const isRightClickOutsideRef = (0, import_react32.useRef)(false);
2279
+ (0, import_react32.useEffect)(() => {
2280
+ const content = contentRef.current;
2281
+ if (content) {
2282
+ return (0, import_aria_hidden.hideOthers)(content);
2283
+ }
2284
+ }, []);
2285
+ return /* @__PURE__ */ import_react32.default.createElement(import_react_remove_scroll.RemoveScroll, {
2286
+ as: import_react_slot12.Slot,
2287
+ allowPinchZoom: true
2288
+ }, /* @__PURE__ */ import_react32.default.createElement(PopoverContentImpl, {
2289
+ ...props,
2290
+ ref: composedRefs,
2291
+ // we make sure we're not trapping once it's been closed
2292
+ // (closed !== unmounted when animating out)
2293
+ trapFocus: context.open,
2294
+ disableOutsidePointerEvents: true,
2295
+ onCloseAutoFocus: (0, import_primitive2.composeEventHandlers)(props.onCloseAutoFocus, (event) => {
2296
+ event.preventDefault();
2297
+ if (!isRightClickOutsideRef.current) {
2298
+ context.triggerRef.current?.focus();
2299
+ }
2300
+ }),
2301
+ onPointerDownOutside: (0, import_primitive2.composeEventHandlers)(props.onPointerDownOutside, (event) => {
2302
+ const originalEvent = event.detail.originalEvent;
2303
+ const ctrlLeftClick = originalEvent.button === 0 && originalEvent.ctrlKey === true;
2304
+ const isRightClick = originalEvent.button === 2 || ctrlLeftClick;
2305
+ isRightClickOutsideRef.current = isRightClick;
2306
+ }, {
2307
+ checkForDefaultPrevented: false
2308
+ }),
2309
+ // When focus is trapped, a `focusout` event may still happen.
2310
+ // We make sure we don't trigger our `onDismiss` in such case.
2311
+ onFocusOutside: (0, import_primitive2.composeEventHandlers)(props.onFocusOutside, (event) => event.preventDefault(), {
2312
+ checkForDefaultPrevented: false
2313
+ })
2314
+ }));
2315
+ });
2316
+ var PopoverContentNonModal = /* @__PURE__ */ (0, import_react32.forwardRef)((props, forwardedRef) => {
2317
+ const context = usePopoverContext(CONTENT_NAME2, props.__scopePopover);
2318
+ const hasInteractedOutsideRef = (0, import_react32.useRef)(false);
2319
+ const hasPointerDownOutsideRef = (0, import_react32.useRef)(false);
2320
+ return /* @__PURE__ */ import_react32.default.createElement(PopoverContentImpl, {
2321
+ ...props,
2322
+ ref: forwardedRef,
2323
+ trapFocus: false,
2324
+ disableOutsidePointerEvents: false,
2325
+ onCloseAutoFocus: (event) => {
2326
+ props.onCloseAutoFocus?.(event);
2327
+ if (!event.defaultPrevented) {
2328
+ if (!hasInteractedOutsideRef.current) {
2329
+ context.triggerRef.current?.focus();
2330
+ }
2331
+ event.preventDefault();
2332
+ }
2333
+ hasInteractedOutsideRef.current = false;
2334
+ hasPointerDownOutsideRef.current = false;
2335
+ },
2336
+ onInteractOutside: (event) => {
2337
+ props.onInteractOutside?.(event);
2338
+ if (!event.defaultPrevented) {
2339
+ hasInteractedOutsideRef.current = true;
2340
+ if (event.detail.originalEvent.type === "pointerdown") {
2341
+ hasPointerDownOutsideRef.current = true;
2342
+ }
2343
+ }
2344
+ const target = event.target;
2345
+ const targetIsTrigger = context.triggerRef.current?.contains(target);
2346
+ if (targetIsTrigger) {
2347
+ event.preventDefault();
2348
+ }
2349
+ if (event.detail.originalEvent.type === "focusin" && hasPointerDownOutsideRef.current) {
2350
+ event.preventDefault();
2351
+ }
2352
+ }
1881
2353
  });
1882
2354
  });
1883
- var PopoverContent = /* @__PURE__ */ (0, import_react32.forwardRef)(({ classNames, children, ...props }, forwardedRef) => {
2355
+ var PopoverContentImpl = /* @__PURE__ */ (0, import_react32.forwardRef)((props, forwardedRef) => {
2356
+ const { __scopePopover, trapFocus, onOpenAutoFocus, onCloseAutoFocus, disableOutsidePointerEvents, onEscapeKeyDown, onPointerDownOutside, onFocusOutside, onInteractOutside, classNames, ...contentProps } = props;
2357
+ const context = usePopoverContext(CONTENT_NAME2, __scopePopover);
2358
+ const popperScope = usePopperScope(__scopePopover);
1884
2359
  const { tx } = useThemeContext();
1885
- return /* @__PURE__ */ import_react32.default.createElement(import_react_popover.PopoverContent, {
1886
- sideOffset: 4,
1887
- collisionPadding: 8,
1888
- ...props,
2360
+ (0, import_react_focus_guards.useFocusGuards)();
2361
+ return /* @__PURE__ */ import_react32.default.createElement(import_react_focus_scope.FocusScope, {
2362
+ asChild: true,
2363
+ loop: true,
2364
+ trapped: trapFocus,
2365
+ onMountAutoFocus: onOpenAutoFocus,
2366
+ onUnmountAutoFocus: onCloseAutoFocus
2367
+ }, /* @__PURE__ */ import_react32.default.createElement(import_react_dismissable_layer.DismissableLayer, {
2368
+ asChild: true,
2369
+ disableOutsidePointerEvents,
2370
+ onInteractOutside,
2371
+ onEscapeKeyDown,
2372
+ onPointerDownOutside,
2373
+ onFocusOutside,
2374
+ onDismiss: () => context.onOpenChange(false)
2375
+ }, /* @__PURE__ */ import_react32.default.createElement(PopperPrimitive.Content, {
2376
+ "data-state": getState(context.open),
2377
+ role: "dialog",
2378
+ id: context.contentId,
2379
+ ...popperScope,
2380
+ ...contentProps,
1889
2381
  className: tx("popover.content", "popover", {}, classNames),
2382
+ ref: forwardedRef,
2383
+ style: {
2384
+ ...contentProps.style,
2385
+ // re-namespace exposed content custom properties
2386
+ ...{
2387
+ "--radix-popover-content-transform-origin": "var(--radix-popper-transform-origin)",
2388
+ "--radix-popover-content-available-width": "var(--radix-popper-available-width)",
2389
+ "--radix-popover-content-available-height": "var(--radix-popper-available-height)",
2390
+ "--radix-popover-trigger-width": "var(--radix-popper-anchor-width)",
2391
+ "--radix-popover-trigger-height": "var(--radix-popper-anchor-height)"
2392
+ }
2393
+ }
2394
+ })));
2395
+ });
2396
+ var CLOSE_NAME = "PopoverClose";
2397
+ var PopoverClose = /* @__PURE__ */ (0, import_react32.forwardRef)((props, forwardedRef) => {
2398
+ const { __scopePopover, ...closeProps } = props;
2399
+ const context = usePopoverContext(CLOSE_NAME, __scopePopover);
2400
+ return /* @__PURE__ */ import_react32.default.createElement(import_react_primitive11.Primitive.button, {
2401
+ type: "button",
2402
+ ...closeProps,
2403
+ ref: forwardedRef,
2404
+ onClick: (0, import_primitive2.composeEventHandlers)(props.onClick, () => context.onOpenChange(false))
2405
+ });
2406
+ });
2407
+ PopoverClose.displayName = CLOSE_NAME;
2408
+ var ARROW_NAME2 = "PopoverArrow";
2409
+ var PopoverArrow = /* @__PURE__ */ (0, import_react32.forwardRef)((props, forwardedRef) => {
2410
+ const { __scopePopover, classNames, ...arrowProps } = props;
2411
+ const popperScope = usePopperScope(__scopePopover);
2412
+ const { tx } = useThemeContext();
2413
+ return /* @__PURE__ */ import_react32.default.createElement(PopperPrimitive.Arrow, {
2414
+ ...popperScope,
2415
+ ...arrowProps,
2416
+ className: tx("popover.arrow", "popover__arrow", {}, classNames),
1890
2417
  ref: forwardedRef
1891
- }, /* @__PURE__ */ import_react32.default.createElement(ElevationProvider, {
1892
- elevation: "chrome"
1893
- }, children));
2418
+ });
1894
2419
  });
2420
+ PopoverArrow.displayName = ARROW_NAME2;
1895
2421
  var PopoverViewport = /* @__PURE__ */ (0, import_react32.forwardRef)(({ classNames, asChild, constrainInline = true, constrainBlock = true, children, ...props }, forwardedRef) => {
1896
2422
  const { tx } = useThemeContext();
1897
- const Root3 = asChild ? import_react_slot12.Slot : import_react_primitive11.Primitive.div;
1898
- return /* @__PURE__ */ import_react32.default.createElement(Root3, {
2423
+ const Root5 = asChild ? import_react_slot12.Slot : import_react_primitive11.Primitive.div;
2424
+ return /* @__PURE__ */ import_react32.default.createElement(Root5, {
1899
2425
  ...props,
1900
2426
  className: tx("popover.viewport", "popover__viewport", {
1901
2427
  constrainInline,
@@ -1904,14 +2430,16 @@ var PopoverViewport = /* @__PURE__ */ (0, import_react32.forwardRef)(({ classNam
1904
2430
  ref: forwardedRef
1905
2431
  }, children);
1906
2432
  });
2433
+ var getState = (open) => open ? "open" : "closed";
1907
2434
  var Popover = {
1908
2435
  Root: PopoverRoot,
1909
- Portal: PopoverPortal,
1910
- Trigger: PopoverTrigger,
1911
2436
  Anchor: PopoverAnchor,
1912
- Arrow: PopoverArrow,
1913
- Close: PopoverClose,
2437
+ Trigger: PopoverTrigger,
2438
+ VirtualTrigger: PopoverVirtualTrigger,
2439
+ Portal: PopoverPortal,
1914
2440
  Content: PopoverContent,
2441
+ Close: PopoverClose,
2442
+ Arrow: PopoverArrow,
1915
2443
  Viewport: PopoverViewport
1916
2444
  };
1917
2445
  var Status = /* @__PURE__ */ (0, import_react33.forwardRef)(({ classNames, children, progress = 0, indeterminate, ...props }, forwardedRef) => {
@@ -2113,8 +2641,8 @@ var Separator4 = ({ classNames, orientation = "horizontal", ...props }) => {
2113
2641
  };
2114
2642
  var Tag = /* @__PURE__ */ (0, import_react38.forwardRef)(({ asChild, palette, classNames, ...props }, forwardedRef) => {
2115
2643
  const { tx } = useThemeContext();
2116
- const Root3 = asChild ? import_react_slot13.Slot : import_react_primitive12.Primitive.span;
2117
- return /* @__PURE__ */ import_react38.default.createElement(Root3, {
2644
+ const Root5 = asChild ? import_react_slot13.Slot : import_react_primitive12.Primitive.span;
2645
+ return /* @__PURE__ */ import_react38.default.createElement(Root5, {
2118
2646
  ...props,
2119
2647
  className: tx("tag.root", "tag", {
2120
2648
  palette
@@ -2142,8 +2670,8 @@ var ToastRoot = /* @__PURE__ */ (0, import_react39.forwardRef)(({ classNames, ch
2142
2670
  });
2143
2671
  var ToastBody = /* @__PURE__ */ (0, import_react39.forwardRef)(({ asChild, classNames, ...props }, forwardedRef) => {
2144
2672
  const { tx } = useThemeContext();
2145
- const Root3 = asChild ? import_react_slot14.Slot : import_react_primitive13.Primitive.div;
2146
- return /* @__PURE__ */ import_react39.default.createElement(Root3, {
2673
+ const Root5 = asChild ? import_react_slot14.Slot : import_react_primitive13.Primitive.div;
2674
+ return /* @__PURE__ */ import_react39.default.createElement(Root5, {
2147
2675
  ...props,
2148
2676
  className: tx("toast.body", "toast__body", {}, classNames),
2149
2677
  ref: forwardedRef
@@ -2151,8 +2679,8 @@ var ToastBody = /* @__PURE__ */ (0, import_react39.forwardRef)(({ asChild, class
2151
2679
  });
2152
2680
  var ToastTitle = /* @__PURE__ */ (0, import_react39.forwardRef)(({ asChild, classNames, ...props }, forwardedRef) => {
2153
2681
  const { tx } = useThemeContext();
2154
- const Root3 = asChild ? import_react_slot14.Slot : import_react_toast.ToastTitle;
2155
- return /* @__PURE__ */ import_react39.default.createElement(Root3, {
2682
+ const Root5 = asChild ? import_react_slot14.Slot : import_react_toast.ToastTitle;
2683
+ return /* @__PURE__ */ import_react39.default.createElement(Root5, {
2156
2684
  ...props,
2157
2685
  className: tx("toast.title", "toast__title", {}, classNames),
2158
2686
  ref: forwardedRef
@@ -2160,8 +2688,8 @@ var ToastTitle = /* @__PURE__ */ (0, import_react39.forwardRef)(({ asChild, clas
2160
2688
  });
2161
2689
  var ToastDescription = /* @__PURE__ */ (0, import_react39.forwardRef)(({ asChild, classNames, ...props }, forwardedRef) => {
2162
2690
  const { tx } = useThemeContext();
2163
- const Root3 = asChild ? import_react_slot14.Slot : import_react_toast.ToastDescription;
2164
- return /* @__PURE__ */ import_react39.default.createElement(Root3, {
2691
+ const Root5 = asChild ? import_react_slot14.Slot : import_react_toast.ToastDescription;
2692
+ return /* @__PURE__ */ import_react39.default.createElement(Root5, {
2165
2693
  ...props,
2166
2694
  className: tx("toast.description", "toast__description", {}, classNames),
2167
2695
  ref: forwardedRef
@@ -2169,8 +2697,8 @@ var ToastDescription = /* @__PURE__ */ (0, import_react39.forwardRef)(({ asChild
2169
2697
  });
2170
2698
  var ToastActions = /* @__PURE__ */ (0, import_react39.forwardRef)(({ asChild, classNames, ...props }, forwardedRef) => {
2171
2699
  const { tx } = useThemeContext();
2172
- const Root3 = asChild ? import_react_slot14.Slot : import_react_primitive13.Primitive.div;
2173
- return /* @__PURE__ */ import_react39.default.createElement(Root3, {
2700
+ const Root5 = asChild ? import_react_slot14.Slot : import_react_primitive13.Primitive.div;
2701
+ return /* @__PURE__ */ import_react39.default.createElement(Root5, {
2174
2702
  ...props,
2175
2703
  className: tx("toast.actions", "toast__actions", {}, classNames),
2176
2704
  ref: forwardedRef
@@ -2372,6 +2900,8 @@ var handleInputModalityChange = (isUsingKeyboard) => {
2372
2900
  Tree,
2373
2901
  TreeItem,
2374
2902
  Treegrid,
2903
+ createDropdownMenuScope,
2904
+ createPopoverScope,
2375
2905
  hasIosKeyboard,
2376
2906
  isLabel,
2377
2907
  toLocalizedString,