@dxos/react-ui 0.8.2-main.fbd8ed0 → 0.8.2-staging.7ac8446

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 (114) hide show
  1. package/dist/lib/browser/index.mjs +1081 -1616
  2. package/dist/lib/browser/index.mjs.map +4 -4
  3. package/dist/lib/browser/meta.json +1 -1
  4. package/dist/lib/node/index.cjs +1404 -1941
  5. package/dist/lib/node/index.cjs.map +4 -4
  6. package/dist/lib/node/meta.json +1 -1
  7. package/dist/lib/node-esm/index.mjs +1081 -1616
  8. package/dist/lib/node-esm/index.mjs.map +4 -4
  9. package/dist/lib/node-esm/meta.json +1 -1
  10. package/dist/types/src/components/Avatars/Avatar.d.ts +2 -2
  11. package/dist/types/src/components/Avatars/Avatar.d.ts.map +1 -1
  12. package/dist/types/src/components/Avatars/Avatar.stories.d.ts +3 -3
  13. package/dist/types/src/components/Avatars/Avatar.stories.d.ts.map +1 -1
  14. package/dist/types/src/components/Avatars/AvatarGroup.stories.d.ts +1 -0
  15. package/dist/types/src/components/Avatars/AvatarGroup.stories.d.ts.map +1 -1
  16. package/dist/types/src/components/Buttons/Button.stories.d.ts +44 -10
  17. package/dist/types/src/components/Buttons/Button.stories.d.ts.map +1 -1
  18. package/dist/types/src/components/Buttons/IconButton.d.ts +5 -4
  19. package/dist/types/src/components/Buttons/IconButton.d.ts.map +1 -1
  20. package/dist/types/src/components/Buttons/IconButton.stories.d.ts +6 -7
  21. package/dist/types/src/components/Buttons/IconButton.stories.d.ts.map +1 -1
  22. package/dist/types/src/components/Buttons/Toggle.stories.d.ts.map +1 -1
  23. package/dist/types/src/components/Buttons/ToggleGroup.stories.d.ts +4 -1
  24. package/dist/types/src/components/Buttons/ToggleGroup.stories.d.ts.map +1 -1
  25. package/dist/types/src/components/Clipboard/ClipboardProvider.d.ts.map +1 -1
  26. package/dist/types/src/components/Clipboard/CopyButton.d.ts +1 -2
  27. package/dist/types/src/components/Clipboard/CopyButton.d.ts.map +1 -1
  28. package/dist/types/src/components/Clipboard/index.d.ts +2 -2
  29. package/dist/types/src/components/DensityProvider/DensityProvider.d.ts.map +1 -1
  30. package/dist/types/src/components/Dialogs/AlertDialog.stories.d.ts +2 -2
  31. package/dist/types/src/components/Dialogs/AlertDialog.stories.d.ts.map +1 -1
  32. package/dist/types/src/components/Dialogs/Dialog.d.ts +2 -2
  33. package/dist/types/src/components/Dialogs/Dialog.d.ts.map +1 -1
  34. package/dist/types/src/components/Dialogs/Dialog.stories.d.ts +2 -2
  35. package/dist/types/src/components/Dialogs/Dialog.stories.d.ts.map +1 -1
  36. package/dist/types/src/components/ElevationProvider/ElevationProvider.d.ts.map +1 -1
  37. package/dist/types/src/components/Input/Input.d.ts +1 -1
  38. package/dist/types/src/components/Input/Input.d.ts.map +1 -1
  39. package/dist/types/src/components/Input/Input.stories.d.ts +159 -33
  40. package/dist/types/src/components/Input/Input.stories.d.ts.map +1 -1
  41. package/dist/types/src/components/Lists/ListDropIndicator.d.ts.map +1 -1
  42. package/dist/types/src/components/Lists/Tree.stories.d.ts.map +1 -1
  43. package/dist/types/src/components/Lists/TreeDropIndicator.d.ts.map +1 -1
  44. package/dist/types/src/components/Lists/Treegrid.stories.d.ts +1 -1
  45. package/dist/types/src/components/Lists/Treegrid.stories.d.ts.map +1 -1
  46. package/dist/types/src/components/Main/Main.d.ts.map +1 -1
  47. package/dist/types/src/components/Main/Main.stories.d.ts.map +1 -1
  48. package/dist/types/src/components/Main/useSwipeToDismiss.d.ts.map +1 -1
  49. package/dist/types/src/components/Message/Message.stories.d.ts +2 -2
  50. package/dist/types/src/components/Message/Message.stories.d.ts.map +1 -1
  51. package/dist/types/src/components/Popover/Popover.d.ts +6 -15
  52. package/dist/types/src/components/Popover/Popover.d.ts.map +1 -1
  53. package/dist/types/src/components/Popover/Popover.stories.d.ts +1 -5
  54. package/dist/types/src/components/Popover/Popover.stories.d.ts.map +1 -1
  55. package/dist/types/src/components/ScrollArea/ScrollArea.d.ts.map +1 -1
  56. package/dist/types/src/components/ScrollArea/ScrollArea.stories.d.ts.map +1 -1
  57. package/dist/types/src/components/Status/Status.stories.d.ts.map +1 -1
  58. package/dist/types/src/components/ThemeProvider/ThemeProvider.d.ts.map +1 -1
  59. package/dist/types/src/components/ThemeProvider/TranslationsProvider.d.ts +1 -1
  60. package/dist/types/src/components/ThemeProvider/TranslationsProvider.d.ts.map +1 -1
  61. package/dist/types/src/components/Toast/Toast.stories.d.ts +2 -2
  62. package/dist/types/src/components/Toast/Toast.stories.d.ts.map +1 -1
  63. package/dist/types/src/components/Toolbar/Toolbar.stories.d.ts.map +1 -1
  64. package/dist/types/src/components/Tooltip/Tooltip.d.ts +20 -94
  65. package/dist/types/src/components/Tooltip/Tooltip.d.ts.map +1 -1
  66. package/dist/types/src/components/Tooltip/Tooltip.stories.d.ts +17 -41
  67. package/dist/types/src/components/Tooltip/Tooltip.stories.d.ts.map +1 -1
  68. package/dist/types/src/components/index.d.ts +1 -1
  69. package/dist/types/src/components/index.d.ts.map +1 -1
  70. package/dist/types/src/hooks/useDensityContext.d.ts.map +1 -1
  71. package/dist/types/src/hooks/useElevationContext.d.ts.map +1 -1
  72. package/dist/types/src/hooks/useIconHref.d.ts.map +1 -1
  73. package/dist/types/src/hooks/useSafeCollisionPadding.d.ts.map +1 -1
  74. package/dist/types/src/hooks/useVisualViewport.d.ts.map +1 -1
  75. package/dist/types/src/playground/Controls.stories.d.ts +1 -1
  76. package/dist/types/src/playground/Controls.stories.d.ts.map +1 -1
  77. package/dist/types/src/testing/decorators/withVariants.d.ts.map +1 -1
  78. package/dist/types/tsconfig.tsbuildinfo +1 -1
  79. package/package.json +13 -14
  80. package/src/components/Avatars/Avatar.stories.tsx +27 -27
  81. package/src/components/Avatars/Avatar.tsx +13 -17
  82. package/src/components/Avatars/AvatarGroup.stories.tsx +5 -4
  83. package/src/components/Breadcrumb/Breadcrumb.stories.tsx +2 -2
  84. package/src/components/Buttons/Button.stories.tsx +14 -19
  85. package/src/components/Buttons/IconButton.stories.tsx +10 -9
  86. package/src/components/Buttons/IconButton.tsx +33 -8
  87. package/src/components/Buttons/Toggle.stories.tsx +2 -2
  88. package/src/components/Buttons/ToggleGroup.stories.tsx +7 -3
  89. package/src/components/Clipboard/CopyButton.tsx +24 -22
  90. package/src/components/Dialogs/AlertDialog.stories.tsx +11 -4
  91. package/src/components/Dialogs/Dialog.stories.tsx +3 -3
  92. package/src/components/Dialogs/Dialog.tsx +4 -8
  93. package/src/components/Input/Input.stories.tsx +56 -67
  94. package/src/components/Input/Input.tsx +0 -1
  95. package/src/components/Lists/Tree.stories.tsx +2 -2
  96. package/src/components/Lists/Treegrid.stories.tsx +12 -12
  97. package/src/components/Main/Main.stories.tsx +2 -2
  98. package/src/components/Menus/ContextMenu.stories.tsx +2 -2
  99. package/src/components/Menus/DropdownMenu.stories.tsx +2 -2
  100. package/src/components/Message/Message.stories.tsx +3 -3
  101. package/src/components/Popover/Popover.stories.tsx +2 -2
  102. package/src/components/Popover/Popover.tsx +4 -8
  103. package/src/components/ScrollArea/ScrollArea.stories.tsx +2 -2
  104. package/src/components/ScrollArea/ScrollArea.tsx +0 -3
  105. package/src/components/Toast/Toast.stories.tsx +10 -15
  106. package/src/components/Toolbar/Toolbar.stories.tsx +2 -2
  107. package/src/components/Tooltip/Tooltip.stories.tsx +18 -43
  108. package/src/components/Tooltip/Tooltip.tsx +58 -748
  109. package/src/components/index.ts +1 -1
  110. package/src/playground/Controls.stories.tsx +2 -2
  111. package/src/playground/Typography.stories.tsx +2 -2
  112. package/dist/types/src/playground/Custom.stories.d.ts +0 -8
  113. package/dist/types/src/playground/Custom.stories.d.ts.map +0 -1
  114. package/src/playground/Custom.stories.tsx +0 -137
@@ -74,7 +74,6 @@ __export(node_exports, {
74
74
  Treegrid: () => Treegrid,
75
75
  createDropdownMenuScope: () => createDropdownMenuScope,
76
76
  createPopoverScope: () => createPopoverScope,
77
- createTooltipScope: () => createTooltipScope,
78
77
  hasIosKeyboard: () => hasIosKeyboard,
79
78
  initialSafeArea: () => initialSafeArea,
80
79
  isLabel: () => isLabel,
@@ -94,7 +93,6 @@ __export(node_exports, {
94
93
  useSafeArea: () => useSafeArea,
95
94
  useSidebars: () => useSidebars,
96
95
  useThemeContext: () => useThemeContext,
97
- useTooltipContext: () => useTooltipContext,
98
96
  useTranslation: () => useTranslation,
99
97
  useTranslationsContext: () => useTranslationsContext,
100
98
  useVisualViewport: () => useVisualViewport
@@ -141,98 +139,86 @@ var import_react_slot5 = require("@radix-ui/react-slot");
141
139
  var import_react14 = __toESM(require("react"));
142
140
  var import_react15 = __toESM(require("react"));
143
141
  var import_react16 = __toESM(require("react"));
144
- var import_primitive = require("@radix-ui/primitive");
145
- var import_react_compose_refs = require("@radix-ui/react-compose-refs");
146
- var import_react_context3 = require("@radix-ui/react-context");
147
- var import_react_dismissable_layer = require("@radix-ui/react-dismissable-layer");
148
- var import_react_id = require("@radix-ui/react-id");
149
- var PopperPrimitive = __toESM(require("@radix-ui/react-popper"));
150
- var import_react_popper = require("@radix-ui/react-popper");
151
- var import_react_portal = require("@radix-ui/react-portal");
152
- var import_react_presence = require("@radix-ui/react-presence");
153
- var import_react_primitive6 = require("@radix-ui/react-primitive");
154
- var import_react_slot6 = require("@radix-ui/react-slot");
155
- var import_react_use_controllable_state = require("@radix-ui/react-use-controllable-state");
156
- var VisuallyHiddenPrimitive = __toESM(require("@radix-ui/react-visually-hidden"));
142
+ var import_react_tooltip = require("@radix-ui/react-tooltip");
157
143
  var import_react17 = __toESM(require("react"));
144
+ var import_react18 = require("react");
158
145
  var import_react_toggle = require("@radix-ui/react-toggle");
159
- var import_react18 = __toESM(require("react"));
160
- var import_react_toggle_group = require("@radix-ui/react-toggle-group");
161
146
  var import_react19 = __toESM(require("react"));
147
+ var import_react_toggle_group = require("@radix-ui/react-toggle-group");
162
148
  var import_react20 = __toESM(require("react"));
163
149
  var import_react21 = __toESM(require("react"));
150
+ var import_react22 = __toESM(require("react"));
164
151
  var import_react_ui_theme2 = require("@dxos/react-ui-theme");
165
152
  var import_keyborg = require("keyborg");
166
- var import_react22 = __toESM(require("react"));
167
153
  var import_react23 = __toESM(require("react"));
168
154
  var import_react24 = __toESM(require("react"));
169
- var import_react_context4 = require("@radix-ui/react-context");
170
- var import_react_dialog = require("@radix-ui/react-dialog");
171
155
  var import_react25 = __toESM(require("react"));
156
+ var import_react_context3 = require("@radix-ui/react-context");
157
+ var import_react_dialog = require("@radix-ui/react-dialog");
158
+ var import_react26 = __toESM(require("react"));
172
159
  var import_react_alert_dialog = require("@radix-ui/react-alert-dialog");
160
+ var import_react_context4 = require("@radix-ui/react-context");
161
+ var import_react27 = __toESM(require("react"));
162
+ var ContextMenuPrimitive = __toESM(require("@radix-ui/react-context-menu"));
163
+ var import_react_primitive6 = require("@radix-ui/react-primitive");
164
+ var import_react_slot6 = require("@radix-ui/react-slot");
165
+ var import_react28 = __toESM(require("react"));
166
+ var import_primitive = require("@radix-ui/primitive");
167
+ var import_react_compose_refs = require("@radix-ui/react-compose-refs");
173
168
  var import_react_context5 = require("@radix-ui/react-context");
174
- var import_react26 = __toESM(require("react"));
169
+ var import_react_id = require("@radix-ui/react-id");
170
+ var MenuPrimitive = __toESM(require("@radix-ui/react-menu"));
171
+ var import_react_menu = require("@radix-ui/react-menu");
172
+ var import_react_primitive7 = require("@radix-ui/react-primitive");
173
+ var import_react_slot7 = require("@radix-ui/react-slot");
174
+ var import_react_use_controllable_state = require("@radix-ui/react-use-controllable-state");
175
+ var import_react29 = __toESM(require("react"));
175
176
  var import_react_checkbox = require("@radix-ui/react-checkbox");
176
177
  var import_react_use_controllable_state2 = require("@radix-ui/react-use-controllable-state");
177
- var import_react27 = __toESM(require("react"));
178
+ var import_react30 = __toESM(require("react"));
178
179
  var import_react_input = require("@dxos/react-input");
179
180
  var import_react_ui_theme3 = require("@dxos/react-ui-theme");
180
- var import_react28 = require("@phosphor-icons/react");
181
- var import_react_slot7 = require("@radix-ui/react-slot");
182
- var import_react29 = __toESM(require("react"));
183
- var import_react_list = require("@dxos/react-list");
184
- var import_react30 = __toESM(require("react"));
185
- var import_react31 = __toESM(require("react"));
181
+ var import_react31 = require("@phosphor-icons/react");
182
+ var import_react_slot8 = require("@radix-ui/react-slot");
186
183
  var import_react32 = __toESM(require("react"));
184
+ var import_react_list = require("@dxos/react-list");
185
+ var import_react33 = __toESM(require("react"));
186
+ var import_react34 = __toESM(require("react"));
187
+ var import_react35 = __toESM(require("react"));
187
188
  var import_react_tabster = require("@fluentui/react-tabster");
188
189
  var import_react_context6 = require("@radix-ui/react-context");
189
- var import_react_primitive7 = require("@radix-ui/react-primitive");
190
- var import_react_slot8 = require("@radix-ui/react-slot");
190
+ var import_react_primitive8 = require("@radix-ui/react-primitive");
191
+ var import_react_slot9 = require("@radix-ui/react-slot");
191
192
  var import_react_use_controllable_state3 = require("@radix-ui/react-use-controllable-state");
192
- var import_react33 = __toESM(require("react"));
193
+ var import_react36 = __toESM(require("react"));
193
194
  var import_react_context7 = require("@radix-ui/react-context");
194
195
  var import_react_dialog2 = require("@radix-ui/react-dialog");
195
- var import_react_primitive8 = require("@radix-ui/react-primitive");
196
- var import_react_slot9 = require("@radix-ui/react-slot");
196
+ var import_react_primitive9 = require("@radix-ui/react-primitive");
197
+ var import_react_slot10 = require("@radix-ui/react-slot");
197
198
  var import_react_use_controllable_state4 = require("@radix-ui/react-use-controllable-state");
198
- var import_react34 = __toESM(require("react"));
199
+ var import_react37 = __toESM(require("react"));
199
200
  var import_log = require("@dxos/log");
200
201
  var import_react_hooks4 = require("@dxos/react-hooks");
201
- var import_react35 = require("react");
202
- var ContextMenuPrimitive = __toESM(require("@radix-ui/react-context-menu"));
203
- var import_react_primitive9 = require("@radix-ui/react-primitive");
204
- var import_react_slot10 = require("@radix-ui/react-slot");
205
- var import_react36 = __toESM(require("react"));
206
- var import_react37 = require("react");
207
- var import_primitive2 = require("@radix-ui/primitive");
208
- var import_react_compose_refs2 = require("@radix-ui/react-compose-refs");
202
+ var import_react38 = require("react");
209
203
  var import_react_context8 = require("@radix-ui/react-context");
210
- var import_react_id2 = require("@radix-ui/react-id");
211
- var MenuPrimitive = __toESM(require("@radix-ui/react-menu"));
212
- var import_react_menu = require("@radix-ui/react-menu");
213
204
  var import_react_primitive10 = require("@radix-ui/react-primitive");
214
205
  var import_react_slot11 = require("@radix-ui/react-slot");
215
- var import_react_use_controllable_state5 = require("@radix-ui/react-use-controllable-state");
216
- var import_react38 = __toESM(require("react"));
217
- var import_react_context9 = require("@radix-ui/react-context");
218
- var import_react_primitive11 = require("@radix-ui/react-primitive");
219
- var import_react_slot12 = require("@radix-ui/react-slot");
220
206
  var import_react39 = __toESM(require("react"));
221
207
  var import_react_hooks5 = require("@dxos/react-hooks");
222
- var import_primitive3 = require("@radix-ui/primitive");
223
- var import_react_compose_refs3 = require("@radix-ui/react-compose-refs");
224
- var import_react_context10 = require("@radix-ui/react-context");
225
- var import_react_dismissable_layer2 = require("@radix-ui/react-dismissable-layer");
208
+ var import_primitive2 = require("@radix-ui/primitive");
209
+ var import_react_compose_refs2 = require("@radix-ui/react-compose-refs");
210
+ var import_react_context9 = require("@radix-ui/react-context");
211
+ var import_react_dismissable_layer = require("@radix-ui/react-dismissable-layer");
226
212
  var import_react_focus_guards = require("@radix-ui/react-focus-guards");
227
213
  var import_react_focus_scope = require("@radix-ui/react-focus-scope");
228
- var import_react_id3 = require("@radix-ui/react-id");
229
- var PopperPrimitive2 = __toESM(require("@radix-ui/react-popper"));
230
- var import_react_popper2 = require("@radix-ui/react-popper");
231
- var import_react_portal2 = require("@radix-ui/react-portal");
232
- var import_react_presence2 = require("@radix-ui/react-presence");
233
- var import_react_primitive12 = require("@radix-ui/react-primitive");
234
- var import_react_slot13 = require("@radix-ui/react-slot");
235
- var import_react_use_controllable_state6 = require("@radix-ui/react-use-controllable-state");
214
+ var import_react_id2 = require("@radix-ui/react-id");
215
+ var PopperPrimitive = __toESM(require("@radix-ui/react-popper"));
216
+ var import_react_popper = require("@radix-ui/react-popper");
217
+ var import_react_portal = require("@radix-ui/react-portal");
218
+ var import_react_presence = require("@radix-ui/react-presence");
219
+ var import_react_primitive11 = require("@radix-ui/react-primitive");
220
+ var import_react_slot12 = require("@radix-ui/react-slot");
221
+ var import_react_use_controllable_state5 = require("@radix-ui/react-use-controllable-state");
236
222
  var import_aria_hidden = require("aria-hidden");
237
223
  var import_react40 = __toESM(require("react"));
238
224
  var import_react_remove_scroll = require("react-remove-scroll");
@@ -244,11 +230,11 @@ var SelectPrimitive = __toESM(require("@radix-ui/react-select"));
244
230
  var import_react44 = __toESM(require("react"));
245
231
  var import_react_separator = require("@radix-ui/react-separator");
246
232
  var import_react45 = __toESM(require("react"));
233
+ var import_react_primitive12 = require("@radix-ui/react-primitive");
234
+ var import_react_slot13 = require("@radix-ui/react-slot");
235
+ var import_react46 = __toESM(require("react"));
247
236
  var import_react_primitive13 = require("@radix-ui/react-primitive");
248
237
  var import_react_slot14 = require("@radix-ui/react-slot");
249
- var import_react46 = __toESM(require("react"));
250
- var import_react_primitive14 = require("@radix-ui/react-primitive");
251
- var import_react_slot15 = require("@radix-ui/react-slot");
252
238
  var import_react_toast = require("@radix-ui/react-toast");
253
239
  var import_react47 = __toESM(require("react"));
254
240
  var ToolbarPrimitive = __toESM(require("@radix-ui/react-toolbar"));
@@ -363,8 +349,8 @@ var useVisualViewport = (deps) => {
363
349
  };
364
350
  var AnchoredOverflowRoot = /* @__PURE__ */ (0, import_react.forwardRef)(({ asChild, classNames, children, ...props }, forwardedRef) => {
365
351
  const { tx } = useThemeContext();
366
- const Root7 = asChild ? import_react_slot.Slot : import_react_primitive.Primitive.div;
367
- return /* @__PURE__ */ import_react.default.createElement(Root7, {
352
+ const Root5 = asChild ? import_react_slot.Slot : import_react_primitive.Primitive.div;
353
+ return /* @__PURE__ */ import_react.default.createElement(Root5, {
368
354
  role: "none",
369
355
  ...props,
370
356
  className: tx("anchoredOverflow.root", "overflow-anchored", {}, classNames),
@@ -373,8 +359,8 @@ var AnchoredOverflowRoot = /* @__PURE__ */ (0, import_react.forwardRef)(({ asChi
373
359
  });
374
360
  var AnchoredOverflowAnchor = /* @__PURE__ */ (0, import_react.forwardRef)(({ asChild, classNames, children, ...props }, forwardedRef) => {
375
361
  const { tx } = useThemeContext();
376
- const Root7 = asChild ? import_react_slot.Slot : import_react_primitive.Primitive.div;
377
- return /* @__PURE__ */ import_react.default.createElement(Root7, {
362
+ const Root5 = asChild ? import_react_slot.Slot : import_react_primitive.Primitive.div;
363
+ return /* @__PURE__ */ import_react.default.createElement(Root5, {
378
364
  role: "none",
379
365
  ...props,
380
366
  className: tx("anchoredOverflow.anchor", "overflow-anchor", {}, classNames),
@@ -400,23 +386,22 @@ var DxAvatar = (0, import_react9.createComponent)({
400
386
  elementClass: import_lit_ui.DxAvatar,
401
387
  react: import_react10.default
402
388
  });
403
- var AvatarContent = /* @__PURE__ */ (0, import_react10.forwardRef)(({ icon, classNames, ...props }, forwardedRef) => {
389
+ var AvatarContent = ({ icon, classNames, ...props }) => {
404
390
  const href = useIconHref(icon);
405
391
  const { labelId, descriptionId } = useAvatarContext("AvatarContent");
406
392
  return /* @__PURE__ */ import_react10.default.createElement(DxAvatar, {
407
393
  ...props,
408
394
  icon: href,
409
- "aria-labelledby": labelId,
395
+ labelId,
410
396
  "aria-describedby": descriptionId,
411
- rootClassName: (0, import_react_ui_theme.mx)(classNames),
412
- ref: forwardedRef
397
+ rootClassName: (0, import_react_ui_theme.mx)(classNames)
413
398
  });
414
- });
399
+ };
415
400
  var AvatarLabel = /* @__PURE__ */ (0, import_react10.forwardRef)(({ asChild, srOnly, classNames, ...props }, forwardedRef) => {
416
- const Root7 = asChild ? import_react_slot2.Slot : import_react_primitive2.Primitive.span;
401
+ const Root5 = asChild ? import_react_slot2.Slot : import_react_primitive2.Primitive.span;
417
402
  const { tx } = useThemeContext();
418
403
  const { labelId } = useAvatarContext("AvatarLabel");
419
- return /* @__PURE__ */ import_react10.default.createElement(Root7, {
404
+ return /* @__PURE__ */ import_react10.default.createElement(Root5, {
420
405
  ...props,
421
406
  id: labelId,
422
407
  ref: forwardedRef,
@@ -426,10 +411,10 @@ var AvatarLabel = /* @__PURE__ */ (0, import_react10.forwardRef)(({ asChild, srO
426
411
  });
427
412
  });
428
413
  var AvatarDescription = /* @__PURE__ */ (0, import_react10.forwardRef)(({ asChild, srOnly, classNames, ...props }, forwardedRef) => {
429
- const Root7 = asChild ? import_react_slot2.Slot : import_react_primitive2.Primitive.span;
414
+ const Root5 = asChild ? import_react_slot2.Slot : import_react_primitive2.Primitive.span;
430
415
  const { tx } = useThemeContext();
431
416
  const { descriptionId } = useAvatarContext("AvatarDescription");
432
- return /* @__PURE__ */ import_react10.default.createElement(Root7, {
417
+ return /* @__PURE__ */ import_react10.default.createElement(Root5, {
433
418
  ...props,
434
419
  id: descriptionId,
435
420
  ref: forwardedRef,
@@ -446,8 +431,8 @@ var Avatar = {
446
431
  };
447
432
  var Link = /* @__PURE__ */ (0, import_react13.forwardRef)(({ asChild, variant, classNames, ...props }, forwardedRef) => {
448
433
  const { tx } = useThemeContext();
449
- const Root7 = asChild ? import_react_slot4.Slot : import_react_primitive4.Primitive.a;
450
- return /* @__PURE__ */ import_react13.default.createElement(Root7, {
434
+ const Root5 = asChild ? import_react_slot4.Slot : import_react_primitive4.Primitive.a;
435
+ return /* @__PURE__ */ import_react13.default.createElement(Root5, {
451
436
  ...props,
452
437
  className: tx("link.root", "link", {
453
438
  variant
@@ -457,8 +442,8 @@ var Link = /* @__PURE__ */ (0, import_react13.forwardRef)(({ asChild, variant, c
457
442
  });
458
443
  var BreadcrumbRoot = /* @__PURE__ */ (0, import_react12.forwardRef)(({ asChild, classNames, ...props }, forwardedRef) => {
459
444
  const { tx } = useThemeContext();
460
- const Root7 = asChild ? import_react_slot3.Slot : import_react_primitive3.Primitive.div;
461
- return /* @__PURE__ */ import_react12.default.createElement(Root7, {
445
+ const Root5 = asChild ? import_react_slot3.Slot : import_react_primitive3.Primitive.div;
446
+ return /* @__PURE__ */ import_react12.default.createElement(Root5, {
462
447
  role: "navigation",
463
448
  ...props,
464
449
  className: tx("breadcrumb.root", "breadcrumb", {}, classNames),
@@ -467,8 +452,8 @@ var BreadcrumbRoot = /* @__PURE__ */ (0, import_react12.forwardRef)(({ asChild,
467
452
  });
468
453
  var BreadcrumbList = /* @__PURE__ */ (0, import_react12.forwardRef)(({ asChild, classNames, ...props }, forwardedRef) => {
469
454
  const { tx } = useThemeContext();
470
- const Root7 = asChild ? import_react_slot3.Slot : import_react_primitive3.Primitive.ol;
471
- return /* @__PURE__ */ import_react12.default.createElement(Root7, {
455
+ const Root5 = asChild ? import_react_slot3.Slot : import_react_primitive3.Primitive.ol;
456
+ return /* @__PURE__ */ import_react12.default.createElement(Root5, {
472
457
  role: "list",
473
458
  ...props,
474
459
  className: tx("breadcrumb.list", "breadcrumb__list", {}, classNames),
@@ -477,8 +462,8 @@ var BreadcrumbList = /* @__PURE__ */ (0, import_react12.forwardRef)(({ asChild,
477
462
  });
478
463
  var BreadcrumbListItem = /* @__PURE__ */ (0, import_react12.forwardRef)(({ asChild, classNames, ...props }, forwardedRef) => {
479
464
  const { tx } = useThemeContext();
480
- const Root7 = asChild ? import_react_slot3.Slot : import_react_primitive3.Primitive.li;
481
- return /* @__PURE__ */ import_react12.default.createElement(Root7, {
465
+ const Root5 = asChild ? import_react_slot3.Slot : import_react_primitive3.Primitive.li;
466
+ return /* @__PURE__ */ import_react12.default.createElement(Root5, {
482
467
  role: "listitem",
483
468
  ...props,
484
469
  className: tx("breadcrumb.listItem", "breadcrumb__list__item", {}, classNames),
@@ -486,16 +471,16 @@ var BreadcrumbListItem = /* @__PURE__ */ (0, import_react12.forwardRef)(({ asChi
486
471
  });
487
472
  });
488
473
  var BreadcrumbLink = /* @__PURE__ */ (0, import_react12.forwardRef)(({ asChild, ...props }, forwardedRef) => {
489
- const Root7 = asChild ? import_react_slot3.Slot : Link;
490
- return /* @__PURE__ */ import_react12.default.createElement(Root7, {
474
+ const Root5 = asChild ? import_react_slot3.Slot : Link;
475
+ return /* @__PURE__ */ import_react12.default.createElement(Root5, {
491
476
  ...props,
492
477
  ref: forwardedRef
493
478
  });
494
479
  });
495
480
  var BreadcrumbCurrent = /* @__PURE__ */ (0, import_react12.forwardRef)(({ asChild, classNames, ...props }, forwardedRef) => {
496
481
  const { tx } = useThemeContext();
497
- const Root7 = asChild ? import_react_slot3.Slot : "h1";
498
- return /* @__PURE__ */ import_react12.default.createElement(Root7, {
482
+ const Root5 = asChild ? import_react_slot3.Slot : "h1";
483
+ return /* @__PURE__ */ import_react12.default.createElement(Root5, {
499
484
  ...props,
500
485
  "aria-current": "page",
501
486
  className: tx("breadcrumb.current", "breadcrumb__item__heading--current", {}, classNames),
@@ -531,8 +516,8 @@ var Button = /* @__PURE__ */ (0, import_react14.memo)(/* @__PURE__ */ (0, import
531
516
  const { tx } = useThemeContext();
532
517
  const elevation = useElevationContext(propsElevation);
533
518
  const density = useDensityContext(propsDensity);
534
- const Root7 = asChild ? import_react_slot5.Slot : import_react_primitive5.Primitive.button;
535
- return /* @__PURE__ */ import_react14.default.createElement(Root7, {
519
+ const Root5 = asChild ? import_react_slot5.Slot : import_react_primitive5.Primitive.button;
520
+ return /* @__PURE__ */ import_react14.default.createElement(Root5, {
536
521
  ref,
537
522
  ...props,
538
523
  "data-variant": variant,
@@ -554,8 +539,8 @@ Button.displayName = BUTTON_NAME;
554
539
  var ButtonGroup = /* @__PURE__ */ (0, import_react14.forwardRef)(({ children, elevation: propsElevation, classNames, asChild, ...props }, forwardedRef) => {
555
540
  const { tx } = useThemeContext();
556
541
  const elevation = useElevationContext(propsElevation);
557
- const Root7 = asChild ? import_react_slot5.Slot : import_react_primitive5.Primitive.div;
558
- return /* @__PURE__ */ import_react14.default.createElement(Root7, {
542
+ const Root5 = asChild ? import_react_slot5.Slot : import_react_primitive5.Primitive.div;
543
+ return /* @__PURE__ */ import_react14.default.createElement(Root5, {
559
544
  role: "none",
560
545
  ...props,
561
546
  className: tx("button.group", "button-group", {
@@ -580,674 +565,161 @@ var Icon = /* @__PURE__ */ (0, import_react16.memo)(/* @__PURE__ */ (0, import_r
580
565
  href
581
566
  }));
582
567
  }));
583
- var [createTooltipContext, createTooltipScope] = (0, import_react_context3.createContextScope)("Tooltip", [
584
- import_react_popper.createPopperScope
585
- ]);
586
- var usePopperScope = (0, import_react_popper.createPopperScope)();
587
- var DEFAULT_DELAY_DURATION = 700;
588
- var TOOLTIP_OPEN = "tooltip.open";
589
- var TOOLTIP_NAME = "Tooltip";
590
- var [TooltipContextProvider, useTooltipContext] = createTooltipContext(TOOLTIP_NAME);
591
- var TooltipProvider = (props) => {
592
- const { __scopeTooltip, children, open: openProp, defaultOpen = false, onOpenChange, disableHoverableContent = false, delayDuration = DEFAULT_DELAY_DURATION, skipDelayDuration = 300 } = props;
593
- const isOpenDelayedRef = (0, import_react17.useRef)(true);
594
- const isPointerInTransitRef = (0, import_react17.useRef)(false);
595
- const skipDelayTimerRef = (0, import_react17.useRef)(0);
596
- (0, import_react17.useEffect)(() => {
597
- const skipDelayTimer = skipDelayTimerRef.current;
598
- return () => window.clearTimeout(skipDelayTimer);
599
- }, []);
600
- const popperScope = usePopperScope(__scopeTooltip);
601
- const [trigger, setTrigger] = (0, import_react17.useState)(null);
602
- const [content, setContent] = (0, import_react17.useState)("");
603
- const [side, setSide] = (0, import_react17.useState)(void 0);
604
- const triggerRef = (0, import_react17.useRef)(trigger);
605
- const handleTriggerChange = (0, import_react17.useCallback)((nextTrigger) => {
606
- setTrigger(nextTrigger);
607
- triggerRef.current = nextTrigger;
608
- setContent(nextTrigger?.getAttribute("data-tooltip-content") ?? "");
609
- setSide(nextTrigger?.getAttribute("data-tooltip-side") ?? void 0);
610
- }, []);
611
- const contentId = (0, import_react_id.useId)();
612
- const openTimerRef = (0, import_react17.useRef)(0);
613
- const wasOpenDelayedRef = (0, import_react17.useRef)(false);
614
- const handleOpenChange = (0, import_react17.useCallback)((open2) => {
615
- if (open2) {
616
- window.clearTimeout(skipDelayTimerRef.current);
617
- isOpenDelayedRef.current = false;
618
- document.dispatchEvent(new CustomEvent(TOOLTIP_OPEN));
619
- } else {
620
- window.clearTimeout(skipDelayTimerRef.current);
621
- skipDelayTimerRef.current = window.setTimeout(() => isOpenDelayedRef.current = true, skipDelayDuration);
622
- }
623
- onOpenChange?.(open2);
624
- }, [
625
- skipDelayDuration,
626
- onOpenChange
568
+ var propIsNumber = (prop) => Number.isFinite(prop);
569
+ var propsIsRecord = (prop) => !!(prop && typeof prop === "object");
570
+ var safePadding = (propsPadding, safePadding2, side) => {
571
+ return (propIsNumber(safePadding2[side]) ? safePadding2[side] : 0) + (propIsNumber(propsPadding) ? propsPadding : propsIsRecord(propsPadding) ? propsPadding[side] ?? 0 : 0);
572
+ };
573
+ var useSafeCollisionPadding = (collisionPadding) => {
574
+ const { safeAreaPadding } = useThemeContext();
575
+ return (0, import_react18.useMemo)(() => ({
576
+ top: safePadding(collisionPadding, safeAreaPadding, "top"),
577
+ right: safePadding(collisionPadding, safeAreaPadding, "right"),
578
+ bottom: safePadding(collisionPadding, safeAreaPadding, "bottom"),
579
+ left: safePadding(collisionPadding, safeAreaPadding, "left")
580
+ }), [
581
+ collisionPadding,
582
+ safeAreaPadding
627
583
  ]);
628
- const [open = false, setOpen] = (0, import_react_use_controllable_state.useControllableState)({
629
- prop: openProp,
630
- defaultProp: defaultOpen,
631
- onChange: handleOpenChange
584
+ };
585
+ var TooltipProvider = import_react_tooltip.Provider;
586
+ var TooltipRoot = import_react_tooltip.Root;
587
+ var TooltipPortal = import_react_tooltip.TooltipPortal;
588
+ var TooltipTrigger = import_react_tooltip.TooltipTrigger;
589
+ var TooltipArrow = /* @__PURE__ */ (0, import_react17.forwardRef)(({ classNames, ...props }, forwardedRef) => {
590
+ const { tx } = useThemeContext();
591
+ return /* @__PURE__ */ import_react17.default.createElement(import_react_tooltip.TooltipArrow, {
592
+ ...props,
593
+ className: tx("tooltip.arrow", "tooltip__arrow", {}, classNames),
594
+ ref: forwardedRef
632
595
  });
633
- const stateAttribute = (0, import_react17.useMemo)(() => {
634
- return open ? wasOpenDelayedRef.current ? "delayed-open" : "instant-open" : "closed";
635
- }, [
636
- open
637
- ]);
638
- const handleOpen = (0, import_react17.useCallback)(() => {
639
- window.clearTimeout(openTimerRef.current);
640
- openTimerRef.current = 0;
641
- wasOpenDelayedRef.current = false;
642
- setOpen(true);
643
- }, [
644
- setOpen
645
- ]);
646
- const handleClose = (0, import_react17.useCallback)(() => {
647
- window.clearTimeout(openTimerRef.current);
648
- openTimerRef.current = 0;
649
- setOpen(false);
650
- }, [
651
- setOpen
652
- ]);
653
- const handleDelayedOpen = (0, import_react17.useCallback)(() => {
654
- window.clearTimeout(openTimerRef.current);
655
- openTimerRef.current = window.setTimeout(() => {
656
- wasOpenDelayedRef.current = true;
657
- setOpen(true);
658
- openTimerRef.current = 0;
659
- }, delayDuration);
660
- }, [
661
- delayDuration,
662
- setOpen
663
- ]);
664
- (0, import_react17.useEffect)(() => {
665
- return () => {
666
- if (openTimerRef.current) {
667
- window.clearTimeout(openTimerRef.current);
668
- openTimerRef.current = 0;
669
- }
670
- };
671
- }, []);
596
+ });
597
+ var TooltipContent = /* @__PURE__ */ (0, import_react17.forwardRef)(({ classNames, collisionPadding = 8, ...props }, forwardedRef) => {
672
598
  const { tx } = useThemeContext();
673
599
  const elevation = useElevationContext();
674
- return /* @__PURE__ */ import_react17.default.createElement(PopperPrimitive.Root, popperScope, /* @__PURE__ */ import_react17.default.createElement(TooltipContextProvider, {
675
- scope: __scopeTooltip,
676
- contentId,
677
- open,
678
- stateAttribute,
679
- trigger,
680
- onTriggerChange: handleTriggerChange,
681
- onTriggerEnter: (0, import_react17.useCallback)(() => {
682
- if (isOpenDelayedRef.current) {
683
- handleDelayedOpen();
684
- } else {
685
- handleOpen();
686
- }
687
- }, [
688
- isOpenDelayedRef,
689
- handleDelayedOpen,
690
- handleOpen
691
- ]),
692
- onTriggerLeave: (0, import_react17.useCallback)(() => {
693
- if (disableHoverableContent) {
694
- handleClose();
695
- } else {
696
- window.clearTimeout(openTimerRef.current);
697
- openTimerRef.current = 0;
698
- }
699
- }, [
700
- handleClose,
701
- disableHoverableContent
702
- ]),
703
- onOpen: handleOpen,
704
- onClose: handleClose,
705
- disableHoverableContent,
706
- isPointerInTransitRef,
707
- onPointerInTransitChange: (0, import_react17.useCallback)((inTransit) => {
708
- isPointerInTransitRef.current = inTransit;
709
- }, [])
710
- }, /* @__PURE__ */ import_react17.default.createElement(TooltipContent, {
711
- side,
600
+ const safeCollisionPadding = useSafeCollisionPadding(collisionPadding);
601
+ return /* @__PURE__ */ import_react17.default.createElement(import_react_tooltip.TooltipContent, {
602
+ sideOffset: 4,
603
+ ...props,
604
+ collisionPadding: safeCollisionPadding,
712
605
  className: tx("tooltip.content", "tooltip", {
713
606
  elevation
714
- })
715
- }, content, /* @__PURE__ */ import_react17.default.createElement(TooltipArrow, {
716
- className: tx("tooltip.arrow", "tooltip__arrow")
717
- })), /* @__PURE__ */ import_react17.default.createElement(TooltipVirtualTrigger, {
718
- virtualRef: triggerRef
719
- }), children));
720
- };
721
- TooltipProvider.displayName = TOOLTIP_NAME;
722
- var TooltipVirtualTrigger = ({ virtualRef, __scopeTooltip }) => {
723
- const popperScope = usePopperScope(__scopeTooltip);
724
- return /* @__PURE__ */ import_react17.default.createElement(PopperPrimitive.Anchor, {
725
- asChild: true,
726
- ...popperScope,
727
- virtualRef
607
+ }, classNames),
608
+ ref: forwardedRef
728
609
  });
729
- };
730
- var TRIGGER_NAME = "TooltipTrigger";
731
- var TooltipTrigger = /* @__PURE__ */ (0, import_react17.forwardRef)((props, forwardedRef) => {
732
- const {
733
- __scopeTooltip,
734
- onInteract,
735
- // TODO(thure): Pass `delayDuration` into the context.
736
- delayDuration: _delayDuration,
737
- suppressNextTooltip,
738
- side,
739
- content,
740
- ...triggerProps
741
- } = props;
742
- const context = useTooltipContext(TRIGGER_NAME, __scopeTooltip);
743
- const ref = (0, import_react17.useRef)(null);
744
- const composedRefs = (0, import_react_compose_refs.useComposedRefs)(forwardedRef, ref);
745
- const isPointerDownRef = (0, import_react17.useRef)(false);
746
- const hasPointerMoveOpenedRef = (0, import_react17.useRef)(false);
747
- const handlePointerUp = (0, import_react17.useCallback)(() => isPointerDownRef.current = false, []);
748
- (0, import_react17.useEffect)(() => {
749
- return () => document.removeEventListener("pointerup", handlePointerUp);
750
- }, [
751
- handlePointerUp
752
- ]);
753
- return /* @__PURE__ */ import_react17.default.createElement(import_react_primitive6.Primitive.button, {
754
- // We purposefully avoid adding `type=button` here because tooltip triggers are also
755
- // commonly anchors and the anchor `type` attribute signifies MIME type.
756
- "aria-describedby": context.open ? context.contentId : void 0,
757
- "data-state": context.stateAttribute,
758
- "data-tooltip-content": content,
759
- "data-tooltip-side": side,
760
- ...triggerProps,
761
- ref: composedRefs,
762
- onPointerMove: (0, import_primitive.composeEventHandlers)(props.onPointerMove, (event) => {
763
- if (event.pointerType === "touch") {
764
- return;
765
- }
766
- if (!hasPointerMoveOpenedRef.current && !context.isPointerInTransitRef.current) {
767
- onInteract?.(event);
768
- if (event.defaultPrevented) {
769
- return;
770
- }
771
- context.onTriggerChange(ref.current);
772
- context.onTriggerEnter();
773
- hasPointerMoveOpenedRef.current = true;
774
- }
775
- }),
776
- onPointerLeave: (0, import_primitive.composeEventHandlers)(props.onPointerLeave, () => {
777
- context.onTriggerLeave();
778
- hasPointerMoveOpenedRef.current = false;
779
- }),
780
- onPointerDown: (0, import_primitive.composeEventHandlers)(props.onPointerDown, () => {
781
- if (context.open) {
782
- context.onClose();
610
+ });
611
+ var Tooltip = {
612
+ Provider: TooltipProvider,
613
+ Root: TooltipRoot,
614
+ Portal: TooltipPortal,
615
+ Trigger: TooltipTrigger,
616
+ Arrow: TooltipArrow,
617
+ Content: TooltipContent
618
+ };
619
+ var IconOnlyButton = /* @__PURE__ */ (0, import_react15.forwardRef)(({ noTooltip, tooltipPortal = true, tooltipZIndex: zIndex, tooltipSide, suppressNextTooltip, ...props }, forwardedRef) => {
620
+ const [triggerTooltipOpen, setTriggerTooltipOpen] = (0, import_react15.useState)(false);
621
+ if (noTooltip) {
622
+ return /* @__PURE__ */ import_react15.default.createElement(LabelledIconButton, {
623
+ ...props,
624
+ ref: forwardedRef
625
+ });
626
+ }
627
+ const content = /* @__PURE__ */ import_react15.default.createElement(Tooltip.Content, {
628
+ ...zIndex && {
629
+ style: {
630
+ zIndex
783
631
  }
784
- isPointerDownRef.current = true;
785
- document.addEventListener("pointerup", handlePointerUp, {
786
- once: true
787
- });
788
- }),
789
- onFocus: (0, import_primitive.composeEventHandlers)(props.onFocus, (event) => {
790
- if (!isPointerDownRef.current) {
791
- onInteract?.(event);
792
- if (event.defaultPrevented) {
793
- return;
794
- }
795
- if (suppressNextTooltip?.current) {
796
- suppressNextTooltip.current = false;
797
- } else {
798
- context.onTriggerChange(ref.current);
799
- context.onOpen();
800
- }
632
+ },
633
+ side: tooltipSide
634
+ }, props.label, /* @__PURE__ */ import_react15.default.createElement(Tooltip.Arrow, null));
635
+ return /* @__PURE__ */ import_react15.default.createElement(Tooltip.Root, {
636
+ open: triggerTooltipOpen,
637
+ onOpenChange: (nextOpen) => {
638
+ if (suppressNextTooltip?.current) {
639
+ setTriggerTooltipOpen(false);
640
+ suppressNextTooltip.current = false;
641
+ } else {
642
+ setTriggerTooltipOpen(nextOpen);
801
643
  }
802
- }),
803
- onBlur: (0, import_primitive.composeEventHandlers)(props.onBlur, context.onClose),
804
- onClick: (0, import_primitive.composeEventHandlers)(props.onClick, context.onClose)
805
- });
644
+ }
645
+ }, /* @__PURE__ */ import_react15.default.createElement(Tooltip.Trigger, {
646
+ asChild: true
647
+ }, /* @__PURE__ */ import_react15.default.createElement(LabelledIconButton, {
648
+ ...props,
649
+ ref: forwardedRef
650
+ })), tooltipPortal ? /* @__PURE__ */ import_react15.default.createElement(Tooltip.Portal, null, content) : content);
806
651
  });
807
- TooltipTrigger.displayName = TRIGGER_NAME;
808
- var PORTAL_NAME = "TooltipPortal";
809
- var [PortalProvider, usePortalContext] = createTooltipContext(PORTAL_NAME, {
810
- forceMount: void 0
652
+ var LabelledIconButton = /* @__PURE__ */ (0, import_react15.forwardRef)(({ icon, size, iconOnly, label, classNames, iconClassNames, caretDown, suppressNextTooltip, ...props }, forwardedRef) => {
653
+ const { tx } = useThemeContext();
654
+ return /* @__PURE__ */ import_react15.default.createElement(Button, {
655
+ ...props,
656
+ classNames: tx("iconButton.root", "iconButton", {}, classNames),
657
+ ref: forwardedRef
658
+ }, /* @__PURE__ */ import_react15.default.createElement(Icon, {
659
+ icon,
660
+ size,
661
+ classNames: iconClassNames
662
+ }), /* @__PURE__ */ import_react15.default.createElement("span", {
663
+ className: iconOnly ? "sr-only" : void 0
664
+ }, label), caretDown && /* @__PURE__ */ import_react15.default.createElement(Icon, {
665
+ size: 3,
666
+ icon: "ph--caret-down--bold"
667
+ }));
811
668
  });
812
- var TooltipPortal = (props) => {
813
- const { __scopeTooltip, forceMount, children, container } = props;
814
- const context = useTooltipContext(PORTAL_NAME, __scopeTooltip);
815
- return /* @__PURE__ */ import_react17.default.createElement(PortalProvider, {
816
- scope: __scopeTooltip,
817
- forceMount
818
- }, /* @__PURE__ */ import_react17.default.createElement(import_react_presence.Presence, {
819
- present: forceMount || context.open
820
- }, /* @__PURE__ */ import_react17.default.createElement(import_react_portal.Portal, {
821
- asChild: true,
822
- container
823
- }, children)));
824
- };
825
- TooltipPortal.displayName = PORTAL_NAME;
826
- var CONTENT_NAME = "TooltipContent";
827
- var TooltipContent = /* @__PURE__ */ (0, import_react17.forwardRef)((props, forwardedRef) => {
828
- const portalContext = usePortalContext(CONTENT_NAME, props.__scopeTooltip);
829
- const { forceMount = portalContext.forceMount, side = "top", ...contentProps } = props;
830
- const context = useTooltipContext(CONTENT_NAME, props.__scopeTooltip);
831
- return /* @__PURE__ */ import_react17.default.createElement(import_react_presence.Presence, {
832
- present: forceMount || context.open
833
- }, context.disableHoverableContent ? /* @__PURE__ */ import_react17.default.createElement(TooltipContentImpl, {
834
- side,
835
- ...contentProps,
669
+ var IconButton = /* @__PURE__ */ (0, import_react15.forwardRef)((props, forwardedRef) => props.iconOnly ? /* @__PURE__ */ import_react15.default.createElement(IconOnlyButton, {
670
+ ...props,
671
+ ref: forwardedRef
672
+ }) : /* @__PURE__ */ import_react15.default.createElement(LabelledIconButton, {
673
+ ...props,
674
+ ref: forwardedRef
675
+ }));
676
+ var Toggle = /* @__PURE__ */ (0, import_react19.forwardRef)(({ defaultPressed, pressed, onPressedChange, ...props }, forwardedRef) => {
677
+ return /* @__PURE__ */ import_react19.default.createElement(import_react_toggle.Toggle, {
678
+ defaultPressed,
679
+ pressed,
680
+ onPressedChange,
681
+ asChild: true
682
+ }, /* @__PURE__ */ import_react19.default.createElement(Button, {
683
+ ...props,
836
684
  ref: forwardedRef
837
- }) : /* @__PURE__ */ import_react17.default.createElement(TooltipContentHoverable, {
838
- side,
839
- ...contentProps,
685
+ }));
686
+ });
687
+ var ToggleGroup = /* @__PURE__ */ (0, import_react20.forwardRef)(({ classNames, children, ...props }, forwardedRef) => {
688
+ return /* @__PURE__ */ import_react20.default.createElement(import_react_toggle_group.ToggleGroup, {
689
+ ...props,
690
+ asChild: true
691
+ }, /* @__PURE__ */ import_react20.default.createElement(ButtonGroup, {
692
+ classNames,
693
+ children,
840
694
  ref: forwardedRef
841
695
  }));
842
696
  });
843
- var TooltipContentHoverable = /* @__PURE__ */ (0, import_react17.forwardRef)((props, forwardedRef) => {
844
- const context = useTooltipContext(CONTENT_NAME, props.__scopeTooltip);
845
- const ref = (0, import_react17.useRef)(null);
846
- const composedRefs = (0, import_react_compose_refs.useComposedRefs)(forwardedRef, ref);
847
- const [pointerGraceArea, setPointerGraceArea] = (0, import_react17.useState)(null);
848
- const { trigger, onClose } = context;
849
- const content = ref.current;
850
- const { onPointerInTransitChange } = context;
851
- const handleRemoveGraceArea = (0, import_react17.useCallback)(() => {
852
- setPointerGraceArea(null);
853
- onPointerInTransitChange(false);
854
- }, [
855
- onPointerInTransitChange
856
- ]);
857
- const handleCreateGraceArea = (0, import_react17.useCallback)((event, hoverTarget) => {
858
- const currentTarget = event.currentTarget;
859
- const exitPoint = {
860
- x: event.clientX,
861
- y: event.clientY
862
- };
863
- const exitSide = getExitSideFromRect(exitPoint, currentTarget.getBoundingClientRect());
864
- const paddedExitPoints = getPaddedExitPoints(exitPoint, exitSide);
865
- const hoverTargetPoints = getPointsFromRect(hoverTarget.getBoundingClientRect());
866
- const graceArea = getHull([
867
- ...paddedExitPoints,
868
- ...hoverTargetPoints
869
- ]);
870
- setPointerGraceArea(graceArea);
871
- onPointerInTransitChange(true);
872
- }, [
873
- onPointerInTransitChange
874
- ]);
875
- (0, import_react17.useEffect)(() => {
876
- return () => handleRemoveGraceArea();
877
- }, [
878
- handleRemoveGraceArea
879
- ]);
880
- (0, import_react17.useEffect)(() => {
881
- if (trigger && content) {
882
- const handleTriggerLeave = (event) => handleCreateGraceArea(event, content);
883
- const handleContentLeave = (event) => handleCreateGraceArea(event, trigger);
884
- trigger.addEventListener("pointerleave", handleTriggerLeave);
885
- content.addEventListener("pointerleave", handleContentLeave);
886
- return () => {
887
- trigger.removeEventListener("pointerleave", handleTriggerLeave);
888
- content.removeEventListener("pointerleave", handleContentLeave);
889
- };
890
- }
891
- }, [
892
- trigger,
893
- content,
894
- handleCreateGraceArea,
895
- handleRemoveGraceArea
896
- ]);
897
- (0, import_react17.useEffect)(() => {
898
- if (pointerGraceArea) {
899
- const handleTrackPointerGrace = (event) => {
900
- const target = event.target;
901
- const pointerPosition = {
902
- x: event.clientX,
903
- y: event.clientY
904
- };
905
- const hasEnteredTarget = trigger?.contains(target) || content?.contains(target);
906
- const isPointerOutsideGraceArea = !isPointInPolygon(pointerPosition, pointerGraceArea);
907
- if (hasEnteredTarget) {
908
- handleRemoveGraceArea();
909
- } else if (isPointerOutsideGraceArea) {
910
- handleRemoveGraceArea();
911
- onClose();
912
- }
913
- };
914
- document.addEventListener("pointermove", handleTrackPointerGrace);
915
- return () => document.removeEventListener("pointermove", handleTrackPointerGrace);
916
- }
917
- }, [
918
- trigger,
919
- content,
920
- pointerGraceArea,
921
- onClose,
922
- handleRemoveGraceArea
923
- ]);
924
- return /* @__PURE__ */ import_react17.default.createElement(TooltipContentImpl, {
697
+ var ToggleGroupItem = /* @__PURE__ */ (0, import_react20.forwardRef)(({ variant, elevation, density, classNames, children, ...props }, forwardedRef) => {
698
+ return /* @__PURE__ */ import_react20.default.createElement(import_react_toggle_group.ToggleGroupItem, {
925
699
  ...props,
926
- ref: composedRefs
927
- });
700
+ asChild: true
701
+ }, /* @__PURE__ */ import_react20.default.createElement(Button, {
702
+ variant,
703
+ elevation,
704
+ density,
705
+ classNames,
706
+ children,
707
+ ref: forwardedRef
708
+ }));
928
709
  });
929
- var [VisuallyHiddenContentContextProvider, useVisuallyHiddenContentContext] = createTooltipContext(TOOLTIP_NAME, {
930
- isInside: false
710
+ var ClipboardContext = /* @__PURE__ */ (0, import_react21.createContext)({
711
+ textValue: "",
712
+ setTextValue: async (_) => {
713
+ }
931
714
  });
932
- var TooltipContentImpl = /* @__PURE__ */ (0, import_react17.forwardRef)((props, forwardedRef) => {
933
- const { __scopeTooltip, children, "aria-label": ariaLabel, onEscapeKeyDown, onPointerDownOutside, ...contentProps } = props;
934
- const context = useTooltipContext(CONTENT_NAME, __scopeTooltip);
935
- const popperScope = usePopperScope(__scopeTooltip);
936
- const { onClose } = context;
937
- (0, import_react17.useEffect)(() => {
938
- document.addEventListener(TOOLTIP_OPEN, onClose);
939
- return () => document.removeEventListener(TOOLTIP_OPEN, onClose);
940
- }, [
941
- onClose
942
- ]);
943
- (0, import_react17.useEffect)(() => {
944
- if (context.trigger) {
945
- const handleScroll = (event) => {
946
- const target = event.target;
947
- if (target?.contains(context.trigger)) {
948
- onClose();
949
- }
950
- };
951
- window.addEventListener("scroll", handleScroll, {
952
- capture: true
953
- });
954
- return () => window.removeEventListener("scroll", handleScroll, {
955
- capture: true
956
- });
957
- }
958
- }, [
959
- context.trigger,
960
- onClose
961
- ]);
962
- return /* @__PURE__ */ import_react17.default.createElement(import_react_dismissable_layer.DismissableLayer, {
963
- asChild: true,
964
- disableOutsidePointerEvents: false,
965
- onEscapeKeyDown,
966
- onPointerDownOutside,
967
- onFocusOutside: (event) => event.preventDefault(),
968
- onDismiss: onClose
969
- }, /* @__PURE__ */ import_react17.default.createElement(PopperPrimitive.Content, {
970
- "data-state": context.stateAttribute,
971
- ...popperScope,
972
- ...contentProps,
973
- ref: forwardedRef,
974
- style: {
975
- ...contentProps.style,
976
- // re-namespace exposed content custom properties
977
- ...{
978
- "--radix-tooltip-content-transform-origin": "var(--radix-popper-transform-origin)",
979
- "--radix-tooltip-content-available-width": "var(--radix-popper-available-width)",
980
- "--radix-tooltip-content-available-height": "var(--radix-popper-available-height)",
981
- "--radix-tooltip-trigger-width": "var(--radix-popper-anchor-width)",
982
- "--radix-tooltip-trigger-height": "var(--radix-popper-anchor-height)"
983
- }
984
- }
985
- }, /* @__PURE__ */ import_react17.default.createElement(import_react_slot6.Slottable, null, children), /* @__PURE__ */ import_react17.default.createElement(VisuallyHiddenContentContextProvider, {
986
- scope: __scopeTooltip,
987
- isInside: true
988
- }, /* @__PURE__ */ import_react17.default.createElement(VisuallyHiddenPrimitive.Root, {
989
- id: context.contentId,
990
- role: "tooltip"
991
- }, ariaLabel || children))));
992
- });
993
- TooltipContent.displayName = CONTENT_NAME;
994
- var ARROW_NAME = "TooltipArrow";
995
- var TooltipArrow = /* @__PURE__ */ (0, import_react17.forwardRef)((props, forwardedRef) => {
996
- const { __scopeTooltip, ...arrowProps } = props;
997
- const popperScope = usePopperScope(__scopeTooltip);
998
- const visuallyHiddenContentContext = useVisuallyHiddenContentContext(ARROW_NAME, __scopeTooltip);
999
- return visuallyHiddenContentContext.isInside ? null : /* @__PURE__ */ import_react17.default.createElement(PopperPrimitive.Arrow, {
1000
- ...popperScope,
1001
- ...arrowProps,
1002
- ref: forwardedRef
1003
- });
1004
- });
1005
- TooltipArrow.displayName = ARROW_NAME;
1006
- var getExitSideFromRect = (point, rect) => {
1007
- const top = Math.abs(rect.top - point.y);
1008
- const bottom = Math.abs(rect.bottom - point.y);
1009
- const right = Math.abs(rect.right - point.x);
1010
- const left = Math.abs(rect.left - point.x);
1011
- switch (Math.min(top, bottom, right, left)) {
1012
- case left:
1013
- return "left";
1014
- case right:
1015
- return "right";
1016
- case top:
1017
- return "top";
1018
- case bottom:
1019
- return "bottom";
1020
- default:
1021
- throw new Error("unreachable");
1022
- }
1023
- };
1024
- var getPaddedExitPoints = (exitPoint, exitSide, padding = 5) => {
1025
- const paddedExitPoints = [];
1026
- switch (exitSide) {
1027
- case "top":
1028
- paddedExitPoints.push({
1029
- x: exitPoint.x - padding,
1030
- y: exitPoint.y + padding
1031
- }, {
1032
- x: exitPoint.x + padding,
1033
- y: exitPoint.y + padding
1034
- });
1035
- break;
1036
- case "bottom":
1037
- paddedExitPoints.push({
1038
- x: exitPoint.x - padding,
1039
- y: exitPoint.y - padding
1040
- }, {
1041
- x: exitPoint.x + padding,
1042
- y: exitPoint.y - padding
1043
- });
1044
- break;
1045
- case "left":
1046
- paddedExitPoints.push({
1047
- x: exitPoint.x + padding,
1048
- y: exitPoint.y - padding
1049
- }, {
1050
- x: exitPoint.x + padding,
1051
- y: exitPoint.y + padding
1052
- });
1053
- break;
1054
- case "right":
1055
- paddedExitPoints.push({
1056
- x: exitPoint.x - padding,
1057
- y: exitPoint.y - padding
1058
- }, {
1059
- x: exitPoint.x - padding,
1060
- y: exitPoint.y + padding
1061
- });
1062
- break;
1063
- }
1064
- return paddedExitPoints;
1065
- };
1066
- var getPointsFromRect = (rect) => {
1067
- const { top, right, bottom, left } = rect;
1068
- return [
1069
- {
1070
- x: left,
1071
- y: top
1072
- },
1073
- {
1074
- x: right,
1075
- y: top
1076
- },
1077
- {
1078
- x: right,
1079
- y: bottom
1080
- },
1081
- {
1082
- x: left,
1083
- y: bottom
1084
- }
1085
- ];
1086
- };
1087
- var isPointInPolygon = (point, polygon) => {
1088
- const { x, y } = point;
1089
- let inside = false;
1090
- for (let i = 0, j = polygon.length - 1; i < polygon.length; j = i++) {
1091
- const xi = polygon[i].x;
1092
- const yi = polygon[i].y;
1093
- const xj = polygon[j].x;
1094
- const yj = polygon[j].y;
1095
- const intersect = yi > y !== yj > y && x < (xj - xi) * (y - yi) / (yj - yi) + xi;
1096
- if (intersect) {
1097
- inside = !inside;
1098
- }
1099
- }
1100
- return inside;
1101
- };
1102
- var getHull = (points) => {
1103
- const newPoints = points.slice();
1104
- newPoints.sort((a, b) => {
1105
- if (a.x < b.x) {
1106
- return -1;
1107
- } else if (a.x > b.x) {
1108
- return 1;
1109
- } else if (a.y < b.y) {
1110
- return -1;
1111
- } else if (a.y > b.y) {
1112
- return 1;
1113
- } else {
1114
- return 0;
1115
- }
1116
- });
1117
- return getHullPresorted(newPoints);
1118
- };
1119
- var getHullPresorted = (points) => {
1120
- if (points.length <= 1) {
1121
- return points.slice();
1122
- }
1123
- const upperHull = [];
1124
- for (let i = 0; i < points.length; i++) {
1125
- const p = points[i];
1126
- while (upperHull.length >= 2) {
1127
- const q = upperHull[upperHull.length - 1];
1128
- const r = upperHull[upperHull.length - 2];
1129
- if ((q.x - r.x) * (p.y - r.y) >= (q.y - r.y) * (p.x - r.x)) {
1130
- upperHull.pop();
1131
- } else {
1132
- break;
1133
- }
1134
- }
1135
- upperHull.push(p);
1136
- }
1137
- upperHull.pop();
1138
- const lowerHull = [];
1139
- for (let i = points.length - 1; i >= 0; i--) {
1140
- const p = points[i];
1141
- while (lowerHull.length >= 2) {
1142
- const q = lowerHull[lowerHull.length - 1];
1143
- const r = lowerHull[lowerHull.length - 2];
1144
- if ((q.x - r.x) * (p.y - r.y) >= (q.y - r.y) * (p.x - r.x)) {
1145
- lowerHull.pop();
1146
- } else {
1147
- break;
1148
- }
1149
- }
1150
- lowerHull.push(p);
1151
- }
1152
- lowerHull.pop();
1153
- if (upperHull.length === 1 && lowerHull.length === 1 && upperHull[0].x === lowerHull[0].x && upperHull[0].y === lowerHull[0].y) {
1154
- return upperHull;
1155
- } else {
1156
- return upperHull.concat(lowerHull);
1157
- }
1158
- };
1159
- var Tooltip = {
1160
- Provider: TooltipProvider,
1161
- Trigger: TooltipTrigger
1162
- };
1163
- var IconOnlyButton = /* @__PURE__ */ (0, import_react15.forwardRef)(({ noTooltip, tooltipPortal = true, tooltipSide, suppressNextTooltip, ...props }, forwardedRef) => {
1164
- if (noTooltip) {
1165
- return /* @__PURE__ */ import_react15.default.createElement(LabelledIconButton, {
1166
- ...props,
1167
- ref: forwardedRef
1168
- });
1169
- }
1170
- return /* @__PURE__ */ import_react15.default.createElement(Tooltip.Trigger, {
1171
- asChild: true,
1172
- content: props.label,
1173
- side: tooltipSide,
1174
- suppressNextTooltip
1175
- }, /* @__PURE__ */ import_react15.default.createElement(LabelledIconButton, {
1176
- ...props,
1177
- ref: forwardedRef
1178
- }));
1179
- });
1180
- var LabelledIconButton = /* @__PURE__ */ (0, import_react15.forwardRef)(({ icon, size, iconOnly, label, classNames, iconClassNames, caretDown, suppressNextTooltip, ...props }, forwardedRef) => {
1181
- const { tx } = useThemeContext();
1182
- return /* @__PURE__ */ import_react15.default.createElement(Button, {
1183
- ...props,
1184
- classNames: tx("iconButton.root", "iconButton", {}, classNames),
1185
- ref: forwardedRef
1186
- }, /* @__PURE__ */ import_react15.default.createElement(Icon, {
1187
- icon,
1188
- size,
1189
- classNames: iconClassNames
1190
- }), /* @__PURE__ */ import_react15.default.createElement("span", {
1191
- className: iconOnly ? "sr-only" : void 0
1192
- }, label), caretDown && /* @__PURE__ */ import_react15.default.createElement(Icon, {
1193
- size: 3,
1194
- icon: "ph--caret-down--bold"
1195
- }));
1196
- });
1197
- var IconButton = /* @__PURE__ */ (0, import_react15.forwardRef)((props, forwardedRef) => props.iconOnly ? /* @__PURE__ */ import_react15.default.createElement(IconOnlyButton, {
1198
- ...props,
1199
- ref: forwardedRef
1200
- }) : /* @__PURE__ */ import_react15.default.createElement(LabelledIconButton, {
1201
- ...props,
1202
- ref: forwardedRef
1203
- }));
1204
- var Toggle = /* @__PURE__ */ (0, import_react18.forwardRef)(({ defaultPressed, pressed, onPressedChange, ...props }, forwardedRef) => {
1205
- return /* @__PURE__ */ import_react18.default.createElement(import_react_toggle.Toggle, {
1206
- defaultPressed,
1207
- pressed,
1208
- onPressedChange,
1209
- asChild: true
1210
- }, /* @__PURE__ */ import_react18.default.createElement(Button, {
1211
- ...props,
1212
- ref: forwardedRef
1213
- }));
1214
- });
1215
- var ToggleGroup = /* @__PURE__ */ (0, import_react19.forwardRef)(({ classNames, children, ...props }, forwardedRef) => {
1216
- return /* @__PURE__ */ import_react19.default.createElement(import_react_toggle_group.ToggleGroup, {
1217
- ...props,
1218
- asChild: true
1219
- }, /* @__PURE__ */ import_react19.default.createElement(ButtonGroup, {
1220
- classNames,
1221
- children,
1222
- ref: forwardedRef
1223
- }));
1224
- });
1225
- var ToggleGroupItem = /* @__PURE__ */ (0, import_react19.forwardRef)(({ variant, elevation, density, classNames, children, ...props }, forwardedRef) => {
1226
- return /* @__PURE__ */ import_react19.default.createElement(import_react_toggle_group.ToggleGroupItem, {
1227
- ...props,
1228
- asChild: true
1229
- }, /* @__PURE__ */ import_react19.default.createElement(Button, {
1230
- variant,
1231
- elevation,
1232
- density,
1233
- classNames,
1234
- children,
1235
- ref: forwardedRef
1236
- }));
1237
- });
1238
- var ClipboardContext = /* @__PURE__ */ (0, import_react20.createContext)({
1239
- textValue: "",
1240
- setTextValue: async (_) => {
1241
- }
1242
- });
1243
- var useClipboard = () => (0, import_react20.useContext)(ClipboardContext);
715
+ var useClipboard = () => (0, import_react21.useContext)(ClipboardContext);
1244
716
  var ClipboardProvider = ({ children }) => {
1245
- const [textValue, setInternalTextValue] = (0, import_react20.useState)("");
1246
- const setTextValue = (0, import_react20.useCallback)(async (nextValue) => {
717
+ const [textValue, setInternalTextValue] = (0, import_react21.useState)("");
718
+ const setTextValue = (0, import_react21.useCallback)(async (nextValue) => {
1247
719
  await navigator.clipboard.writeText(nextValue);
1248
720
  return setInternalTextValue(nextValue);
1249
721
  }, []);
1250
- return /* @__PURE__ */ import_react20.default.createElement(ClipboardContext.Provider, {
722
+ return /* @__PURE__ */ import_react21.default.createElement(ClipboardContext.Provider, {
1251
723
  value: {
1252
724
  textValue,
1253
725
  setTextValue
@@ -1257,25 +729,25 @@ var ClipboardProvider = ({ children }) => {
1257
729
  var hasIosKeyboard = () => {
1258
730
  return !!navigator.userAgent.match(/iP(ad|od|hone).+Safari/);
1259
731
  };
1260
- var DensityContext = /* @__PURE__ */ (0, import_react23.createContext)({
732
+ var DensityContext = /* @__PURE__ */ (0, import_react24.createContext)({
1261
733
  density: "fine"
1262
734
  });
1263
- var DensityProvider = ({ density, children }) => /* @__PURE__ */ import_react23.default.createElement(DensityContext.Provider, {
735
+ var DensityProvider = ({ density, children }) => /* @__PURE__ */ import_react24.default.createElement(DensityContext.Provider, {
1264
736
  value: {
1265
737
  density
1266
738
  }
1267
739
  }, children);
1268
- var ElevationContext = /* @__PURE__ */ (0, import_react24.createContext)({
740
+ var ElevationContext = /* @__PURE__ */ (0, import_react25.createContext)({
1269
741
  elevation: "base"
1270
742
  });
1271
- var ElevationProvider = ({ elevation, children }) => /* @__PURE__ */ import_react24.default.createElement(ElevationContext.Provider, {
743
+ var ElevationProvider = ({ elevation, children }) => /* @__PURE__ */ import_react25.default.createElement(ElevationContext.Provider, {
1272
744
  value: {
1273
745
  elevation
1274
746
  }
1275
747
  }, children);
1276
- var ThemeContext = /* @__PURE__ */ (0, import_react22.createContext)(void 0);
748
+ var ThemeContext = /* @__PURE__ */ (0, import_react23.createContext)(void 0);
1277
749
  var ThemeProvider = ({ children, fallback = null, resourceExtensions, appNs, tx = (_path, defaultClassName, _styleProps, ..._options) => defaultClassName, themeMode = "dark", rootDensity = "fine", ...rest }) => {
1278
- (0, import_react22.useEffect)(() => {
750
+ (0, import_react23.useEffect)(() => {
1279
751
  if (document.defaultView) {
1280
752
  const kb = (0, import_keyborg.createKeyborg)(document.defaultView);
1281
753
  kb.subscribe(handleInputModalityChange);
@@ -1283,7 +755,7 @@ var ThemeProvider = ({ children, fallback = null, resourceExtensions, appNs, tx
1283
755
  }
1284
756
  }, []);
1285
757
  const safeAreaPadding = useSafeArea();
1286
- const contextValue = (0, import_react22.useMemo)(() => ({
758
+ const contextValue = (0, import_react23.useMemo)(() => ({
1287
759
  tx,
1288
760
  themeMode,
1289
761
  hasIosKeyboard: hasIosKeyboard(),
@@ -1295,15 +767,15 @@ var ThemeProvider = ({ children, fallback = null, resourceExtensions, appNs, tx
1295
767
  safeAreaPadding,
1296
768
  rest
1297
769
  ]);
1298
- return /* @__PURE__ */ import_react22.default.createElement(ThemeContext.Provider, {
770
+ return /* @__PURE__ */ import_react23.default.createElement(ThemeContext.Provider, {
1299
771
  value: contextValue
1300
- }, /* @__PURE__ */ import_react22.default.createElement(TranslationsProvider, {
772
+ }, /* @__PURE__ */ import_react23.default.createElement(TranslationsProvider, {
1301
773
  fallback,
1302
774
  resourceExtensions,
1303
775
  appNs
1304
- }, /* @__PURE__ */ import_react22.default.createElement(ElevationProvider, {
776
+ }, /* @__PURE__ */ import_react23.default.createElement(ElevationProvider, {
1305
777
  elevation: "base"
1306
- }, /* @__PURE__ */ import_react22.default.createElement(DensityProvider, {
778
+ }, /* @__PURE__ */ import_react23.default.createElement(DensityProvider, {
1307
779
  density: rootDensity
1308
780
  }, children))));
1309
781
  };
@@ -1319,7 +791,7 @@ var CopyButton = ({ value, classNames, iconProps, ...props }) => {
1319
791
  const { t } = useTranslation("os");
1320
792
  const { textValue, setTextValue } = useClipboard();
1321
793
  const isCopied = textValue === value;
1322
- return /* @__PURE__ */ import_react21.default.createElement(Button, {
794
+ return /* @__PURE__ */ import_react22.default.createElement(Button, {
1323
795
  ...props,
1324
796
  classNames: [
1325
797
  "inline-flex flex-col justify-center",
@@ -1327,59 +799,70 @@ var CopyButton = ({ value, classNames, iconProps, ...props }) => {
1327
799
  ],
1328
800
  onClick: () => setTextValue(value),
1329
801
  "data-testid": "copy-invitation"
1330
- }, /* @__PURE__ */ import_react21.default.createElement("div", {
802
+ }, /* @__PURE__ */ import_react22.default.createElement("div", {
1331
803
  role: "none",
1332
804
  className: (0, import_react_ui_theme2.mx)("flex gap-1 items-center", isCopied && inactiveLabelStyles)
1333
- }, /* @__PURE__ */ import_react21.default.createElement("span", {
805
+ }, /* @__PURE__ */ import_react22.default.createElement("span", {
1334
806
  className: "pli-1"
1335
- }, t("copy label")), /* @__PURE__ */ import_react21.default.createElement(Icon, {
807
+ }, t("copy label")), /* @__PURE__ */ import_react22.default.createElement(Icon, {
1336
808
  icon: "ph--copy--regular",
1337
809
  size: 5,
1338
810
  ...iconProps
1339
- })), /* @__PURE__ */ import_react21.default.createElement("div", {
811
+ })), /* @__PURE__ */ import_react22.default.createElement("div", {
1340
812
  role: "none",
1341
813
  className: (0, import_react_ui_theme2.mx)("flex gap-1 items-center", !isCopied && inactiveLabelStyles)
1342
- }, /* @__PURE__ */ import_react21.default.createElement("span", {
814
+ }, /* @__PURE__ */ import_react22.default.createElement("span", {
1343
815
  className: "pli-1"
1344
- }, t("copy success label")), /* @__PURE__ */ import_react21.default.createElement(Icon, {
816
+ }, t("copy success label")), /* @__PURE__ */ import_react22.default.createElement(Icon, {
1345
817
  icon: "ph--check--regular",
1346
818
  size: 5,
1347
819
  ...iconProps
1348
820
  })));
1349
821
  };
1350
- var CopyButtonIconOnly = ({ __scopeTooltip, value, classNames, iconProps, variant, ...props }) => {
822
+ var CopyButtonIconOnly = ({ value, classNames, iconProps, variant, ...props }) => {
1351
823
  const { t } = useTranslation("os");
1352
824
  const { textValue, setTextValue } = useClipboard();
1353
825
  const isCopied = textValue === value;
1354
826
  const label = isCopied ? t("copy success label") : props.label ?? t("copy label");
1355
- const { onOpen } = useTooltipContext("CopyButton", __scopeTooltip);
1356
- return /* @__PURE__ */ import_react21.default.createElement(IconButton, {
1357
- iconOnly: true,
1358
- label,
1359
- icon: "ph--copy--regular",
1360
- size: 5,
827
+ const [open, setOpen] = (0, import_react22.useState)(false);
828
+ return /* @__PURE__ */ import_react22.default.createElement(Tooltip.Root, {
829
+ delayDuration: 1500,
830
+ open,
831
+ onOpenChange: setOpen
832
+ }, /* @__PURE__ */ import_react22.default.createElement(Tooltip.Portal, null, /* @__PURE__ */ import_react22.default.createElement(Tooltip.Content, {
833
+ side: "bottom",
834
+ sideOffset: 12
835
+ }, /* @__PURE__ */ import_react22.default.createElement("span", null, label), /* @__PURE__ */ import_react22.default.createElement(Tooltip.Arrow, null))), /* @__PURE__ */ import_react22.default.createElement(Tooltip.Trigger, {
836
+ "aria-label": label,
837
+ ...props,
838
+ onClick: () => setTextValue(value).then(() => setOpen(true)),
839
+ "data-testid": "copy-invitation",
840
+ asChild: true
841
+ }, /* @__PURE__ */ import_react22.default.createElement(Button, {
1361
842
  variant,
1362
843
  classNames: [
1363
844
  "inline-flex flex-col justify-center",
1364
845
  classNames
1365
- ],
1366
- onClick: () => setTextValue(value).then(onOpen),
1367
- "data-testid": "copy-invitation"
1368
- });
846
+ ]
847
+ }, /* @__PURE__ */ import_react22.default.createElement(Icon, {
848
+ icon: "ph--copy--regular",
849
+ size: 5,
850
+ ...iconProps
851
+ }))));
1369
852
  };
1370
853
  var Clipboard = {
1371
854
  Button: CopyButton,
1372
855
  IconButton: CopyButtonIconOnly,
1373
856
  Provider: ClipboardProvider
1374
857
  };
1375
- var DialogRoot = (props) => /* @__PURE__ */ import_react25.default.createElement(ElevationProvider, {
858
+ var DialogRoot = (props) => /* @__PURE__ */ import_react26.default.createElement(ElevationProvider, {
1376
859
  elevation: "dialog"
1377
- }, /* @__PURE__ */ import_react25.default.createElement(import_react_dialog.Root, props));
860
+ }, /* @__PURE__ */ import_react26.default.createElement(import_react_dialog.Root, props));
1378
861
  var DialogTrigger = import_react_dialog.DialogTrigger;
1379
862
  var DialogPortal = import_react_dialog.DialogPortal;
1380
- var DialogTitle = /* @__PURE__ */ (0, import_react25.forwardRef)(({ classNames, srOnly, ...props }, forwardedRef) => {
863
+ var DialogTitle = /* @__PURE__ */ (0, import_react26.forwardRef)(({ classNames, srOnly, ...props }, forwardedRef) => {
1381
864
  const { tx } = useThemeContext();
1382
- return /* @__PURE__ */ import_react25.default.createElement(import_react_dialog.DialogTitle, {
865
+ return /* @__PURE__ */ import_react26.default.createElement(import_react_dialog.DialogTitle, {
1383
866
  ...props,
1384
867
  className: tx("dialog.title", "dialog__title", {
1385
868
  srOnly
@@ -1387,9 +870,9 @@ var DialogTitle = /* @__PURE__ */ (0, import_react25.forwardRef)(({ classNames,
1387
870
  ref: forwardedRef
1388
871
  });
1389
872
  });
1390
- var DialogDescription = /* @__PURE__ */ (0, import_react25.forwardRef)(({ classNames, srOnly, ...props }, forwardedRef) => {
873
+ var DialogDescription = /* @__PURE__ */ (0, import_react26.forwardRef)(({ classNames, srOnly, ...props }, forwardedRef) => {
1391
874
  const { tx } = useThemeContext();
1392
- return /* @__PURE__ */ import_react25.default.createElement(import_react_dialog.DialogDescription, {
875
+ return /* @__PURE__ */ import_react26.default.createElement(import_react_dialog.DialogDescription, {
1393
876
  ...props,
1394
877
  className: tx("dialog.description", "dialog__description", {
1395
878
  srOnly
@@ -1400,26 +883,25 @@ var DialogDescription = /* @__PURE__ */ (0, import_react25.forwardRef)(({ classN
1400
883
  var DialogClose = import_react_dialog.DialogClose;
1401
884
  var DIALOG_OVERLAY_NAME = "DialogOverlay";
1402
885
  var DIALOG_CONTENT_NAME = "DialogContent";
1403
- var [OverlayLayoutProvider, useOverlayLayoutContext] = (0, import_react_context4.createContext)(DIALOG_OVERLAY_NAME, {});
1404
- var DialogOverlay = /* @__PURE__ */ (0, import_react25.forwardRef)(({ classNames, children, blockAlign, ...props }, forwardedRef) => {
886
+ var [OverlayLayoutProvider, useOverlayLayoutContext] = (0, import_react_context3.createContext)(DIALOG_OVERLAY_NAME, {
887
+ inOverlayLayout: false
888
+ });
889
+ var DialogOverlay = /* @__PURE__ */ (0, import_react26.forwardRef)(({ classNames, children, blockAlign, ...props }, forwardedRef) => {
1405
890
  const { tx } = useThemeContext();
1406
- return /* @__PURE__ */ import_react25.default.createElement(import_react_dialog.DialogOverlay, {
891
+ return /* @__PURE__ */ import_react26.default.createElement(import_react_dialog.DialogOverlay, {
1407
892
  ...props,
1408
893
  className: tx("dialog.overlay", "dialog__overlay", {}, classNames),
1409
894
  ref: forwardedRef,
1410
895
  "data-block-align": blockAlign
1411
- }, /* @__PURE__ */ import_react25.default.createElement(OverlayLayoutProvider, {
896
+ }, /* @__PURE__ */ import_react26.default.createElement(OverlayLayoutProvider, {
1412
897
  inOverlayLayout: true
1413
898
  }, children));
1414
899
  });
1415
900
  DialogOverlay.displayName = DIALOG_OVERLAY_NAME;
1416
- var DialogContent = /* @__PURE__ */ (0, import_react25.forwardRef)(({ classNames, children, inOverlayLayout: propsInOverlayLayout, ...props }, forwardedRef) => {
901
+ var DialogContent = /* @__PURE__ */ (0, import_react26.forwardRef)(({ classNames, children, inOverlayLayout: propsInOverlayLayout, ...props }, forwardedRef) => {
1417
902
  const { tx } = useThemeContext();
1418
903
  const { inOverlayLayout } = useOverlayLayoutContext(DIALOG_CONTENT_NAME);
1419
- return /* @__PURE__ */ import_react25.default.createElement(import_react_dialog.DialogContent, {
1420
- // NOTE: Radix warning unless set to undefined.
1421
- // https://www.radix-ui.com/primitives/docs/components/dialog#description
1422
- "aria-describedby": void 0,
904
+ return /* @__PURE__ */ import_react26.default.createElement(import_react_dialog.DialogContent, {
1423
905
  ...props,
1424
906
  className: tx("dialog.content", "dialog", {
1425
907
  inOverlayLayout: propsInOverlayLayout || inOverlayLayout
@@ -1438,16 +920,16 @@ var Dialog = {
1438
920
  Description: DialogDescription,
1439
921
  Close: DialogClose
1440
922
  };
1441
- var AlertDialogRoot = (props) => /* @__PURE__ */ import_react26.default.createElement(ElevationProvider, {
923
+ var AlertDialogRoot = (props) => /* @__PURE__ */ import_react27.default.createElement(ElevationProvider, {
1442
924
  elevation: "dialog"
1443
- }, /* @__PURE__ */ import_react26.default.createElement(import_react_alert_dialog.Root, props));
925
+ }, /* @__PURE__ */ import_react27.default.createElement(import_react_alert_dialog.Root, props));
1444
926
  var AlertDialogTrigger = import_react_alert_dialog.AlertDialogTrigger;
1445
927
  var AlertDialogPortal = import_react_alert_dialog.AlertDialogPortal;
1446
928
  var AlertDialogCancel = import_react_alert_dialog.AlertDialogCancel;
1447
929
  var AlertDialogAction = import_react_alert_dialog.AlertDialogAction;
1448
- var AlertDialogTitle = /* @__PURE__ */ (0, import_react26.forwardRef)(({ classNames, srOnly, ...props }, forwardedRef) => {
930
+ var AlertDialogTitle = /* @__PURE__ */ (0, import_react27.forwardRef)(({ classNames, srOnly, ...props }, forwardedRef) => {
1449
931
  const { tx } = useThemeContext();
1450
- return /* @__PURE__ */ import_react26.default.createElement(import_react_alert_dialog.AlertDialogTitle, {
932
+ return /* @__PURE__ */ import_react27.default.createElement(import_react_alert_dialog.AlertDialogTitle, {
1451
933
  ...props,
1452
934
  className: tx("dialog.title", "dialog--alert__title", {
1453
935
  srOnly
@@ -1455,9 +937,9 @@ var AlertDialogTitle = /* @__PURE__ */ (0, import_react26.forwardRef)(({ classNa
1455
937
  ref: forwardedRef
1456
938
  });
1457
939
  });
1458
- var AlertDialogDescription = /* @__PURE__ */ (0, import_react26.forwardRef)(({ classNames, srOnly, ...props }, forwardedRef) => {
940
+ var AlertDialogDescription = /* @__PURE__ */ (0, import_react27.forwardRef)(({ classNames, srOnly, ...props }, forwardedRef) => {
1459
941
  const { tx } = useThemeContext();
1460
- return /* @__PURE__ */ import_react26.default.createElement(import_react_alert_dialog.AlertDialogDescription, {
942
+ return /* @__PURE__ */ import_react27.default.createElement(import_react_alert_dialog.AlertDialogDescription, {
1461
943
  ...props,
1462
944
  className: tx("dialog.description", "dialog--alert__description", {
1463
945
  srOnly
@@ -1467,25 +949,25 @@ var AlertDialogDescription = /* @__PURE__ */ (0, import_react26.forwardRef)(({ c
1467
949
  });
1468
950
  var ALERT_DIALOG_OVERLAY_NAME = "AlertDialogOverlay";
1469
951
  var ALERT_DIALOG_CONTENT_NAME = "AlertDialogContent";
1470
- var [OverlayLayoutProvider2, useOverlayLayoutContext2] = (0, import_react_context5.createContext)(ALERT_DIALOG_OVERLAY_NAME, {
952
+ var [OverlayLayoutProvider2, useOverlayLayoutContext2] = (0, import_react_context4.createContext)(ALERT_DIALOG_OVERLAY_NAME, {
1471
953
  inOverlayLayout: false
1472
954
  });
1473
- var AlertDialogOverlay = /* @__PURE__ */ (0, import_react26.forwardRef)(({ classNames, children, blockAlign, ...props }, forwardedRef) => {
955
+ var AlertDialogOverlay = /* @__PURE__ */ (0, import_react27.forwardRef)(({ classNames, children, blockAlign, ...props }, forwardedRef) => {
1474
956
  const { tx } = useThemeContext();
1475
- return /* @__PURE__ */ import_react26.default.createElement(import_react_alert_dialog.AlertDialogOverlay, {
957
+ return /* @__PURE__ */ import_react27.default.createElement(import_react_alert_dialog.AlertDialogOverlay, {
1476
958
  ...props,
1477
959
  className: tx("dialog.overlay", "dialog--alert__overlay", {}, classNames, "data-[block-align=start]:justify-center", "data-[block-align=start]:items-start", "data-[block-align=center]:place-content-center"),
1478
960
  ref: forwardedRef,
1479
961
  "data-block-align": blockAlign
1480
- }, /* @__PURE__ */ import_react26.default.createElement(OverlayLayoutProvider2, {
962
+ }, /* @__PURE__ */ import_react27.default.createElement(OverlayLayoutProvider2, {
1481
963
  inOverlayLayout: true
1482
964
  }, children));
1483
965
  });
1484
966
  AlertDialogOverlay.displayName = ALERT_DIALOG_OVERLAY_NAME;
1485
- var AlertDialogContent = /* @__PURE__ */ (0, import_react26.forwardRef)(({ classNames, children, ...props }, forwardedRef) => {
967
+ var AlertDialogContent = /* @__PURE__ */ (0, import_react27.forwardRef)(({ classNames, children, ...props }, forwardedRef) => {
1486
968
  const { tx } = useThemeContext();
1487
969
  const { inOverlayLayout } = useOverlayLayoutContext2(ALERT_DIALOG_CONTENT_NAME);
1488
- return /* @__PURE__ */ import_react26.default.createElement(import_react_alert_dialog.AlertDialogContent, {
970
+ return /* @__PURE__ */ import_react27.default.createElement(import_react_alert_dialog.AlertDialogContent, {
1489
971
  ...props,
1490
972
  className: tx("dialog.content", "dialog--alert", {
1491
973
  inOverlayLayout
@@ -1505,1273 +987,1256 @@ var AlertDialog = {
1505
987
  Cancel: AlertDialogCancel,
1506
988
  Action: AlertDialogAction
1507
989
  };
1508
- var Label = /* @__PURE__ */ (0, import_react27.forwardRef)(({ srOnly, classNames, children, ...props }, forwardedRef) => {
990
+ var ContextMenuRoot = ContextMenuPrimitive.ContextMenu;
991
+ var ContextMenuTrigger = ContextMenuPrimitive.Trigger;
992
+ var ContextMenuPortal = ContextMenuPrimitive.Portal;
993
+ var ContextMenuContent = /* @__PURE__ */ (0, import_react28.forwardRef)(({ classNames, children, collisionPadding = 8, ...props }, forwardedRef) => {
1509
994
  const { tx } = useThemeContext();
1510
- return /* @__PURE__ */ import_react27.default.createElement(import_react_input.Label, {
995
+ const elevation = useElevationContext();
996
+ const safeCollisionPadding = useSafeCollisionPadding(collisionPadding);
997
+ return /* @__PURE__ */ import_react28.default.createElement(ContextMenuPrimitive.Content, {
1511
998
  ...props,
1512
- className: tx("input.label", "input__label", {
1513
- srOnly
999
+ collisionPadding: safeCollisionPadding,
1000
+ className: tx("menu.content", "menu", {
1001
+ elevation
1514
1002
  }, classNames),
1515
1003
  ref: forwardedRef
1516
1004
  }, children);
1517
1005
  });
1518
- var Description = /* @__PURE__ */ (0, import_react27.forwardRef)(({ srOnly, classNames, children, ...props }, forwardedRef) => {
1006
+ var ContextMenuViewport = /* @__PURE__ */ (0, import_react28.forwardRef)(({ classNames, asChild, children, ...props }, forwardedRef) => {
1519
1007
  const { tx } = useThemeContext();
1520
- return /* @__PURE__ */ import_react27.default.createElement(import_react_input.Description, {
1008
+ const Root5 = asChild ? import_react_slot6.Slot : import_react_primitive6.Primitive.div;
1009
+ return /* @__PURE__ */ import_react28.default.createElement(Root5, {
1521
1010
  ...props,
1522
- className: tx("input.description", "input__description", {
1523
- srOnly
1524
- }, classNames),
1011
+ className: tx("menu.viewport", "menu__viewport", {}, classNames),
1525
1012
  ref: forwardedRef
1526
1013
  }, children);
1527
1014
  });
1528
- var Validation = /* @__PURE__ */ (0, import_react27.forwardRef)(({ __inputScope, srOnly, classNames, children, ...props }, forwardedRef) => {
1015
+ var ContextMenuArrow = /* @__PURE__ */ (0, import_react28.forwardRef)(({ classNames, ...props }, forwardedRef) => {
1529
1016
  const { tx } = useThemeContext();
1530
- const { validationValence } = (0, import_react_input.useInputContext)(import_react_input.INPUT_NAME, __inputScope);
1531
- return /* @__PURE__ */ import_react27.default.createElement(import_react_input.Validation, {
1017
+ return /* @__PURE__ */ import_react28.default.createElement(ContextMenuPrimitive.Arrow, {
1532
1018
  ...props,
1533
- className: tx("input.validation", `input__validation-message input__validation-message--${validationValence}`, {
1534
- srOnly,
1535
- validationValence
1536
- }, classNames),
1019
+ className: tx("menu.arrow", "menu__arrow", {}, classNames),
1537
1020
  ref: forwardedRef
1538
- }, children);
1021
+ });
1539
1022
  });
1540
- var DescriptionAndValidation = /* @__PURE__ */ (0, import_react27.forwardRef)(({ srOnly, classNames, children, ...props }, forwardedRef) => {
1023
+ var ContextMenuGroup = ContextMenuPrimitive.Group;
1024
+ var ContextMenuItemIndicator = ContextMenuPrimitive.ItemIndicator;
1025
+ var ContextMenuItem = /* @__PURE__ */ (0, import_react28.forwardRef)(({ classNames, ...props }, forwardedRef) => {
1541
1026
  const { tx } = useThemeContext();
1542
- return /* @__PURE__ */ import_react27.default.createElement(import_react_input.DescriptionAndValidation, {
1027
+ return /* @__PURE__ */ import_react28.default.createElement(ContextMenuPrimitive.Item, {
1543
1028
  ...props,
1544
- className: tx("input.descriptionAndValidation", "input__description-and-validation", {
1545
- srOnly
1546
- }, classNames),
1029
+ className: tx("menu.item", "menu__item", {}, classNames),
1547
1030
  ref: forwardedRef
1548
- }, children);
1031
+ });
1549
1032
  });
1550
- var PinInput = /* @__PURE__ */ (0, import_react27.forwardRef)(({ density: propsDensity, elevation: propsElevation, segmentClassName: propsSegmentClassName, inputClassName, variant, ...props }, forwardedRef) => {
1551
- const { hasIosKeyboard: hasIosKeyboard2 } = useThemeContext();
1033
+ var ContextMenuCheckboxItem = /* @__PURE__ */ (0, import_react28.forwardRef)(({ classNames, ...props }, forwardedRef) => {
1552
1034
  const { tx } = useThemeContext();
1553
- const density = useDensityContext(propsDensity);
1554
- const elevation = useElevationContext(propsElevation);
1555
- const segmentClassName = (0, import_react27.useCallback)(({ focused, validationValence }) => tx("input.input", "input--pin-segment", {
1556
- variant: "static",
1557
- focused,
1558
- disabled: props.disabled,
1559
- density,
1560
- elevation,
1561
- validationValence
1562
- }, propsSegmentClassName), [
1563
- tx,
1564
- props.disabled,
1565
- elevation,
1566
- propsElevation,
1567
- density
1568
- ]);
1569
- return /* @__PURE__ */ import_react27.default.createElement(import_react_input.PinInput, {
1035
+ return /* @__PURE__ */ import_react28.default.createElement(ContextMenuPrimitive.CheckboxItem, {
1570
1036
  ...props,
1571
- segmentClassName,
1572
- ...props.autoFocus && !hasIosKeyboard2 && {
1573
- autoFocus: true
1574
- },
1575
- inputClassName: tx("input.inputWithSegments", "input input--pin", {
1576
- disabled: props.disabled
1577
- }, inputClassName),
1037
+ className: tx("menu.item", "menu__item--checkbox", {}, classNames),
1578
1038
  ref: forwardedRef
1579
1039
  });
1580
1040
  });
1581
- var TextInput = /* @__PURE__ */ (0, import_react27.forwardRef)(({ __inputScope, classNames, density: propsDensity, elevation: propsElevation, variant, ...props }, forwardedRef) => {
1582
- const { hasIosKeyboard: hasIosKeyboard2 } = useThemeContext();
1583
- const themeContextValue = useThemeContext();
1584
- const density = useDensityContext(propsDensity);
1585
- const elevation = useElevationContext(propsElevation);
1586
- const { validationValence } = (0, import_react_input.useInputContext)(import_react_input.INPUT_NAME, __inputScope);
1587
- const { tx } = themeContextValue;
1588
- return /* @__PURE__ */ import_react27.default.createElement(import_react_input.TextInput, {
1041
+ var ContextMenuSeparator = /* @__PURE__ */ (0, import_react28.forwardRef)(({ classNames, ...props }, forwardedRef) => {
1042
+ const { tx } = useThemeContext();
1043
+ return /* @__PURE__ */ import_react28.default.createElement(ContextMenuPrimitive.Separator, {
1589
1044
  ...props,
1590
- className: tx("input.input", "input", {
1591
- variant,
1592
- disabled: props.disabled,
1593
- density,
1594
- elevation,
1595
- validationValence
1596
- }, classNames),
1597
- ...props.autoFocus && !hasIosKeyboard2 && {
1598
- autoFocus: true
1599
- },
1045
+ className: tx("menu.separator", "menu__item", {}, classNames),
1600
1046
  ref: forwardedRef
1601
1047
  });
1602
1048
  });
1603
- var TextArea = /* @__PURE__ */ (0, import_react27.forwardRef)(({ __inputScope, classNames, density: propsDensity, elevation: propsElevation, variant, ...props }, forwardedRef) => {
1604
- const { hasIosKeyboard: hasIosKeyboard2 } = useThemeContext();
1049
+ var ContextMenuGroupLabel = /* @__PURE__ */ (0, import_react28.forwardRef)(({ classNames, ...props }, forwardedRef) => {
1605
1050
  const { tx } = useThemeContext();
1606
- const density = useDensityContext(propsDensity);
1607
- const elevation = useElevationContext(propsElevation);
1608
- const { validationValence } = (0, import_react_input.useInputContext)(import_react_input.INPUT_NAME, __inputScope);
1609
- return /* @__PURE__ */ import_react27.default.createElement(import_react_input.TextArea, {
1051
+ return /* @__PURE__ */ import_react28.default.createElement(ContextMenuPrimitive.Label, {
1610
1052
  ...props,
1611
- className: tx("input.input", "input--text-area", {
1612
- variant,
1613
- disabled: props.disabled,
1614
- density,
1615
- elevation,
1616
- validationValence
1617
- }, classNames),
1618
- ...props.autoFocus && !hasIosKeyboard2 && {
1619
- autoFocus: true
1620
- },
1053
+ className: tx("menu.groupLabel", "menu__group__label", {}, classNames),
1621
1054
  ref: forwardedRef
1622
1055
  });
1623
1056
  });
1624
- var Checkbox = /* @__PURE__ */ (0, import_react27.forwardRef)(({ __inputScope, checked: propsChecked, defaultChecked: propsDefaultChecked, onCheckedChange: propsOnCheckedChange, size, weight = "bold", classNames, ...props }, forwardedRef) => {
1625
- const [checked, onCheckedChange] = (0, import_react_use_controllable_state2.useControllableState)({
1626
- prop: propsChecked,
1627
- defaultProp: propsDefaultChecked,
1628
- onChange: propsOnCheckedChange
1057
+ var ContextMenu2 = {
1058
+ Root: ContextMenuRoot,
1059
+ Trigger: ContextMenuTrigger,
1060
+ Portal: ContextMenuPortal,
1061
+ Content: ContextMenuContent,
1062
+ Viewport: ContextMenuViewport,
1063
+ Arrow: ContextMenuArrow,
1064
+ Group: ContextMenuGroup,
1065
+ Item: ContextMenuItem,
1066
+ CheckboxItem: ContextMenuCheckboxItem,
1067
+ ItemIndicator: ContextMenuItemIndicator,
1068
+ Separator: ContextMenuSeparator,
1069
+ GroupLabel: ContextMenuGroupLabel
1070
+ };
1071
+ var DROPDOWN_MENU_NAME = "DropdownMenu";
1072
+ var [createDropdownMenuContext, createDropdownMenuScope] = (0, import_react_context5.createContextScope)(DROPDOWN_MENU_NAME, [
1073
+ import_react_menu.createMenuScope
1074
+ ]);
1075
+ var useMenuScope = (0, import_react_menu.createMenuScope)();
1076
+ var [DropdownMenuProvider, useDropdownMenuContext] = createDropdownMenuContext(DROPDOWN_MENU_NAME);
1077
+ var DropdownMenuRoot = (props) => {
1078
+ const { __scopeDropdownMenu, children, dir, open: openProp, defaultOpen, onOpenChange, modal = true } = props;
1079
+ const menuScope = useMenuScope(__scopeDropdownMenu);
1080
+ const triggerRef = (0, import_react29.useRef)(null);
1081
+ const [open = false, setOpen] = (0, import_react_use_controllable_state.useControllableState)({
1082
+ prop: openProp,
1083
+ defaultProp: defaultOpen,
1084
+ onChange: onOpenChange
1629
1085
  });
1630
- const { id, validationValence, descriptionId, errorMessageId } = (0, import_react_input.useInputContext)(import_react_input.INPUT_NAME, __inputScope);
1631
- const { tx } = useThemeContext();
1632
- return /* @__PURE__ */ import_react27.default.createElement(import_react_checkbox.Root, {
1633
- ...props,
1634
- checked,
1635
- onCheckedChange,
1636
- id,
1637
- "aria-describedby": descriptionId,
1638
- ...validationValence === "error" && {
1639
- "aria-invalid": "true",
1640
- "aria-errormessage": errorMessageId
1641
- },
1642
- className: tx("input.checkbox", "input--checkbox", {
1643
- size
1644
- }, "shrink-0", classNames),
1645
- ref: forwardedRef
1646
- }, /* @__PURE__ */ import_react27.default.createElement(Icon, {
1647
- icon: checked === "indeterminate" ? "ph--minus--regular" : "ph--check--regular",
1648
- classNames: tx("input.checkboxIndicator", "input--checkbox__indicator", {
1649
- size,
1650
- checked
1086
+ return /* @__PURE__ */ import_react29.default.createElement(DropdownMenuProvider, {
1087
+ scope: __scopeDropdownMenu,
1088
+ triggerId: (0, import_react_id.useId)(),
1089
+ triggerRef,
1090
+ contentId: (0, import_react_id.useId)(),
1091
+ open,
1092
+ onOpenChange: setOpen,
1093
+ onOpenToggle: (0, import_react29.useCallback)(() => setOpen((prevOpen) => !prevOpen), [
1094
+ setOpen
1095
+ ]),
1096
+ modal
1097
+ }, /* @__PURE__ */ import_react29.default.createElement(MenuPrimitive.Root, {
1098
+ ...menuScope,
1099
+ open,
1100
+ onOpenChange: setOpen,
1101
+ dir,
1102
+ modal
1103
+ }, children));
1104
+ };
1105
+ DropdownMenuRoot.displayName = DROPDOWN_MENU_NAME;
1106
+ var TRIGGER_NAME = "DropdownMenuTrigger";
1107
+ var DropdownMenuTrigger = /* @__PURE__ */ (0, import_react29.forwardRef)((props, forwardedRef) => {
1108
+ const { __scopeDropdownMenu, disabled = false, ...triggerProps } = props;
1109
+ const context = useDropdownMenuContext(TRIGGER_NAME, __scopeDropdownMenu);
1110
+ const menuScope = useMenuScope(__scopeDropdownMenu);
1111
+ return /* @__PURE__ */ import_react29.default.createElement(MenuPrimitive.Anchor, {
1112
+ asChild: true,
1113
+ ...menuScope
1114
+ }, /* @__PURE__ */ import_react29.default.createElement(import_react_primitive7.Primitive.button, {
1115
+ type: "button",
1116
+ id: context.triggerId,
1117
+ "aria-haspopup": "menu",
1118
+ "aria-expanded": context.open,
1119
+ "aria-controls": context.open ? context.contentId : void 0,
1120
+ "data-state": context.open ? "open" : "closed",
1121
+ "data-disabled": disabled ? "" : void 0,
1122
+ disabled,
1123
+ ...triggerProps,
1124
+ ref: (0, import_react_compose_refs.composeRefs)(forwardedRef, context.triggerRef),
1125
+ onPointerDown: (0, import_primitive.composeEventHandlers)(props.onPointerDown, (event) => {
1126
+ if (!disabled && event.button === 0 && event.ctrlKey === false) {
1127
+ context.onOpenToggle();
1128
+ if (!context.open) {
1129
+ event.preventDefault();
1130
+ }
1131
+ }
1132
+ }),
1133
+ onKeyDown: (0, import_primitive.composeEventHandlers)(props.onKeyDown, (event) => {
1134
+ if (disabled) {
1135
+ return;
1136
+ }
1137
+ if ([
1138
+ "Enter",
1139
+ " "
1140
+ ].includes(event.key)) {
1141
+ context.onOpenToggle();
1142
+ }
1143
+ if (event.key === "ArrowDown") {
1144
+ context.onOpenChange(true);
1145
+ }
1146
+ if ([
1147
+ "Enter",
1148
+ " ",
1149
+ "ArrowDown"
1150
+ ].includes(event.key)) {
1151
+ event.preventDefault();
1152
+ }
1651
1153
  })
1652
1154
  }));
1653
1155
  });
1654
- var Switch = /* @__PURE__ */ (0, import_react27.forwardRef)(({ __inputScope, checked: propsChecked, defaultChecked: propsDefaultChecked, onCheckedChange: propsOnCheckedChange, classNames, ...props }, forwardedRef) => {
1655
- const [checked, onCheckedChange] = (0, import_react_use_controllable_state2.useControllableState)({
1656
- prop: propsChecked,
1657
- defaultProp: propsDefaultChecked ?? false,
1658
- onChange: propsOnCheckedChange
1156
+ DropdownMenuTrigger.displayName = TRIGGER_NAME;
1157
+ var VIRTUAL_TRIGGER_NAME = "DropdownMenuVirtualTrigger";
1158
+ var DropdownMenuVirtualTrigger = (props) => {
1159
+ const { __scopeDropdownMenu, virtualRef } = props;
1160
+ const context = useDropdownMenuContext(VIRTUAL_TRIGGER_NAME, __scopeDropdownMenu);
1161
+ const menuScope = useMenuScope(__scopeDropdownMenu);
1162
+ (0, import_react29.useEffect)(() => {
1163
+ if (virtualRef.current) {
1164
+ context.triggerRef.current = virtualRef.current;
1165
+ }
1659
1166
  });
1660
- const { id, validationValence, descriptionId, errorMessageId } = (0, import_react_input.useInputContext)(import_react_input.INPUT_NAME, __inputScope);
1661
- return /* @__PURE__ */ import_react27.default.createElement("input", {
1662
- type: "checkbox",
1663
- className: (0, import_react_ui_theme3.mx)("dx-checkbox--switch dx-focus-ring", classNames),
1664
- checked,
1665
- onChange: (event) => {
1666
- onCheckedChange(event.target.checked);
1667
- },
1668
- id,
1669
- "aria-describedby": descriptionId,
1670
- ...props,
1671
- ...validationValence === "error" && {
1672
- "aria-invalid": "true",
1673
- "aria-errormessage": errorMessageId
1674
- },
1675
- ref: forwardedRef
1167
+ return /* @__PURE__ */ import_react29.default.createElement(MenuPrimitive.Anchor, {
1168
+ ...menuScope,
1169
+ virtualRef
1676
1170
  });
1677
- });
1678
- var Input = {
1679
- Root: import_react_input.InputRoot,
1680
- PinInput,
1681
- TextInput,
1682
- TextArea,
1683
- Checkbox,
1684
- Switch,
1685
- Label,
1686
- Description,
1687
- Validation,
1688
- DescriptionAndValidation
1689
- };
1690
- var edgeToOrientationMap = {
1691
- top: "horizontal",
1692
- bottom: "horizontal",
1693
- left: "vertical",
1694
- right: "vertical"
1695
- };
1696
- var orientationStyles = {
1697
- horizontal: "h-[--line-thickness] left-[calc(var(--line-inset)+var(--terminal-radius))] right-[--line-inset] before:left-[--terminal-inset]",
1698
- vertical: "w-[--line-thickness] top-[calc(var(--line-inset)+var(--terminal-radius))] bottom-[--line-inset] before:top-[--terminal-inset]"
1699
- };
1700
- var edgeStyles = {
1701
- top: "top-[--line-offset] before:top-[--offset-terminal]",
1702
- right: "right-[--line-offset] before:right-[--offset-terminal]",
1703
- bottom: "bottom-[--line-offset] before:bottom-[--offset-terminal]",
1704
- left: "left-[--line-offset] before:left-[--offset-terminal]"
1705
1171
  };
1706
- var strokeSize = 2;
1707
- var terminalSize = 8;
1708
- var offsetToAlignTerminalWithLine = (strokeSize - terminalSize) / 2;
1709
- var ListDropIndicator = ({ edge, gap = 0, lineInset = 0, terminalInset = lineInset - terminalSize }) => {
1710
- const orientation = edgeToOrientationMap[edge];
1711
- return /* @__PURE__ */ import_react30.default.createElement("div", {
1712
- role: "none",
1713
- style: {
1714
- "--line-thickness": `${strokeSize}px`,
1715
- "--line-offset": `calc(-0.5 * (${gap}px + ${strokeSize}px))`,
1716
- "--line-inset": `${lineInset}px`,
1717
- "--terminal-size": `${terminalSize}px`,
1718
- "--terminal-radius": `${terminalSize / 2}px`,
1719
- "--terminal-inset": `${terminalInset}px`,
1720
- "--offset-terminal": `${offsetToAlignTerminalWithLine}px`
1721
- },
1722
- className: `absolute z-10 pointer-events-none bg-accentSurface before:content-[''] before:w-[--terminal-size] before:h-[--terminal-size] box-border before:absolute before:border-[length:--line-thickness] before:border-solid before:border-accentSurface before:rounded-full ${orientationStyles[orientation]} ${edgeStyles[edge]}`
1172
+ DropdownMenuVirtualTrigger.displayName = VIRTUAL_TRIGGER_NAME;
1173
+ var PORTAL_NAME = "DropdownMenuPortal";
1174
+ var DropdownMenuPortal = (props) => {
1175
+ const { __scopeDropdownMenu, ...portalProps } = props;
1176
+ const menuScope = useMenuScope(__scopeDropdownMenu);
1177
+ return /* @__PURE__ */ import_react29.default.createElement(MenuPrimitive.Portal, {
1178
+ ...menuScope,
1179
+ ...portalProps
1723
1180
  });
1724
1181
  };
1725
- var List = /* @__PURE__ */ (0, import_react29.forwardRef)(({ classNames, children, ...props }, forwardedRef) => {
1182
+ DropdownMenuPortal.displayName = PORTAL_NAME;
1183
+ var DropdownMenuViewport = /* @__PURE__ */ (0, import_react29.forwardRef)(({ classNames, asChild, children, ...props }, forwardedRef) => {
1726
1184
  const { tx } = useThemeContext();
1727
- const density = useDensityContext(props.density);
1728
- return /* @__PURE__ */ import_react29.default.createElement(DensityProvider, {
1729
- density
1730
- }, /* @__PURE__ */ import_react29.default.createElement(import_react_list.List, {
1185
+ const Root5 = asChild ? import_react_slot7.Slot : import_react_primitive7.Primitive.div;
1186
+ return /* @__PURE__ */ import_react29.default.createElement(Root5, {
1731
1187
  ...props,
1732
- className: tx("list.root", "list", {}, classNames),
1188
+ className: tx("menu.viewport", "menu__viewport", {}, classNames),
1733
1189
  ref: forwardedRef
1734
- }, children));
1190
+ }, children);
1735
1191
  });
1736
- var ListItemEndcap = /* @__PURE__ */ (0, import_react29.forwardRef)(({ children, classNames, asChild, ...props }, forwardedRef) => {
1737
- const Root7 = asChild ? import_react_slot7.Slot : "div";
1738
- const density = useDensityContext();
1192
+ var CONTENT_NAME = "DropdownMenuContent";
1193
+ var DropdownMenuContent = /* @__PURE__ */ (0, import_react29.forwardRef)((props, forwardedRef) => {
1194
+ const { __scopeDropdownMenu, classNames, collisionPadding = 8, ...contentProps } = props;
1739
1195
  const { tx } = useThemeContext();
1740
- return /* @__PURE__ */ import_react29.default.createElement(Root7, {
1741
- ...!asChild && {
1742
- role: "none"
1743
- },
1744
- ...props,
1745
- className: tx("list.item.endcap", "list__listItem__endcap", {
1746
- density
1196
+ const context = useDropdownMenuContext(CONTENT_NAME, __scopeDropdownMenu);
1197
+ const elevation = useElevationContext();
1198
+ const menuScope = useMenuScope(__scopeDropdownMenu);
1199
+ const hasInteractedOutsideRef = (0, import_react29.useRef)(false);
1200
+ const safeCollisionPadding = useSafeCollisionPadding(collisionPadding);
1201
+ return /* @__PURE__ */ import_react29.default.createElement(MenuPrimitive.Content, {
1202
+ id: context.contentId,
1203
+ "aria-labelledby": context.triggerId,
1204
+ ...menuScope,
1205
+ ...contentProps,
1206
+ collisionPadding: safeCollisionPadding,
1207
+ ref: forwardedRef,
1208
+ onCloseAutoFocus: (0, import_primitive.composeEventHandlers)(props.onCloseAutoFocus, (event) => {
1209
+ if (!hasInteractedOutsideRef.current) {
1210
+ context.triggerRef.current?.focus();
1211
+ }
1212
+ hasInteractedOutsideRef.current = false;
1213
+ event.preventDefault();
1214
+ }),
1215
+ onInteractOutside: (0, import_primitive.composeEventHandlers)(props.onInteractOutside, (event) => {
1216
+ const originalEvent = event.detail.originalEvent;
1217
+ const ctrlLeftClick = originalEvent.button === 0 && originalEvent.ctrlKey === true;
1218
+ const isRightClick = originalEvent.button === 2 || ctrlLeftClick;
1219
+ if (!context.modal || isRightClick) {
1220
+ hasInteractedOutsideRef.current = true;
1221
+ }
1222
+ }),
1223
+ className: tx("menu.content", "menu", {
1224
+ elevation
1747
1225
  }, classNames),
1226
+ style: {
1227
+ ...props.style,
1228
+ // re-namespace exposed content custom properties
1229
+ ...{
1230
+ "--radix-dropdown-menu-content-transform-origin": "var(--radix-popper-transform-origin)",
1231
+ "--radix-dropdown-menu-content-available-width": "var(--radix-popper-available-width)",
1232
+ "--radix-dropdown-menu-content-available-height": "var(--radix-popper-available-height)",
1233
+ "--radix-dropdown-menu-trigger-width": "var(--radix-popper-anchor-width)",
1234
+ "--radix-dropdown-menu-trigger-height": "var(--radix-popper-anchor-height)"
1235
+ }
1236
+ }
1237
+ });
1238
+ });
1239
+ DropdownMenuContent.displayName = CONTENT_NAME;
1240
+ var GROUP_NAME = "DropdownMenuGroup";
1241
+ var DropdownMenuGroup = /* @__PURE__ */ (0, import_react29.forwardRef)((props, forwardedRef) => {
1242
+ const { __scopeDropdownMenu, ...groupProps } = props;
1243
+ const menuScope = useMenuScope(__scopeDropdownMenu);
1244
+ return /* @__PURE__ */ import_react29.default.createElement(MenuPrimitive.Group, {
1245
+ ...menuScope,
1246
+ ...groupProps,
1748
1247
  ref: forwardedRef
1749
- }, children);
1248
+ });
1750
1249
  });
1751
- var MockListItemOpenTrigger = ({ classNames, ...props }) => {
1752
- const density = useDensityContext();
1250
+ DropdownMenuGroup.displayName = GROUP_NAME;
1251
+ var LABEL_NAME = "DropdownMenuLabel";
1252
+ var DropdownMenuGroupLabel = /* @__PURE__ */ (0, import_react29.forwardRef)((props, forwardedRef) => {
1253
+ const { __scopeDropdownMenu, classNames, ...labelProps } = props;
1254
+ const menuScope = useMenuScope(__scopeDropdownMenu);
1753
1255
  const { tx } = useThemeContext();
1754
- return /* @__PURE__ */ import_react29.default.createElement("div", {
1755
- role: "none",
1756
- ...props,
1757
- className: tx("list.item.openTrigger", "list__listItem__openTrigger--mock", {
1758
- density
1759
- }, classNames)
1256
+ return /* @__PURE__ */ import_react29.default.createElement(MenuPrimitive.Label, {
1257
+ ...menuScope,
1258
+ ...labelProps,
1259
+ className: tx("menu.groupLabel", "menu__group__label", {}, classNames),
1260
+ ref: forwardedRef
1760
1261
  });
1761
- };
1762
- var ListItemHeading = /* @__PURE__ */ (0, import_react29.forwardRef)(({ children, classNames, ...props }, forwardedRef) => {
1262
+ });
1263
+ DropdownMenuGroupLabel.displayName = LABEL_NAME;
1264
+ var ITEM_NAME = "DropdownMenuItem";
1265
+ var DropdownMenuItem = /* @__PURE__ */ (0, import_react29.forwardRef)((props, forwardedRef) => {
1266
+ const { __scopeDropdownMenu, classNames, ...itemProps } = props;
1267
+ const menuScope = useMenuScope(__scopeDropdownMenu);
1763
1268
  const { tx } = useThemeContext();
1764
- const density = useDensityContext();
1765
- return /* @__PURE__ */ import_react29.default.createElement(import_react_list.ListItemHeading, {
1766
- ...props,
1767
- className: tx("list.item.heading", "list__listItem__heading", {
1768
- density
1769
- }, classNames),
1269
+ return /* @__PURE__ */ import_react29.default.createElement(MenuPrimitive.Item, {
1270
+ ...menuScope,
1271
+ ...itemProps,
1272
+ className: tx("menu.item", "menu__item", {}, classNames),
1770
1273
  ref: forwardedRef
1771
- }, children);
1274
+ });
1772
1275
  });
1773
- var ListItemOpenTrigger = /* @__PURE__ */ (0, import_react29.forwardRef)(({ __listItemScope, classNames, children, ...props }, forwardedRef) => {
1276
+ DropdownMenuItem.displayName = ITEM_NAME;
1277
+ var CHECKBOX_ITEM_NAME = "DropdownMenuCheckboxItem";
1278
+ var DropdownMenuCheckboxItem = /* @__PURE__ */ (0, import_react29.forwardRef)((props, forwardedRef) => {
1279
+ const { __scopeDropdownMenu, classNames, ...checkboxItemProps } = props;
1280
+ const menuScope = useMenuScope(__scopeDropdownMenu);
1774
1281
  const { tx } = useThemeContext();
1775
- const density = useDensityContext();
1776
- const { open } = (0, import_react_list.useListItemContext)(import_react_list.LIST_ITEM_NAME, __listItemScope);
1777
- const Icon3 = open ? import_react28.CaretDown : import_react28.CaretRight;
1778
- return /* @__PURE__ */ import_react29.default.createElement(import_react_list.ListItemOpenTrigger, {
1779
- ...props,
1780
- className: tx("list.item.openTrigger", "list__listItem__openTrigger", {
1781
- density
1782
- }, classNames),
1282
+ return /* @__PURE__ */ import_react29.default.createElement(MenuPrimitive.CheckboxItem, {
1283
+ ...menuScope,
1284
+ ...checkboxItemProps,
1285
+ className: tx("menu.item", "menu__item--checkbox", {}, classNames),
1783
1286
  ref: forwardedRef
1784
- }, children || /* @__PURE__ */ import_react29.default.createElement(Icon3, {
1785
- weight: "bold",
1786
- className: tx("list.item.openTriggerIcon", "list__listItem__openTrigger__icon", {})
1787
- }));
1287
+ });
1788
1288
  });
1789
- var ListItemRoot = /* @__PURE__ */ (0, import_react29.forwardRef)(({ classNames, children, ...props }, forwardedRef) => {
1790
- const { tx } = useThemeContext();
1791
- const density = useDensityContext();
1792
- return /* @__PURE__ */ import_react29.default.createElement(import_react_list.ListItem, {
1793
- ...props,
1794
- className: tx("list.item.root", "list__listItem", {
1795
- density,
1796
- collapsible: props.collapsible
1797
- }, classNames),
1289
+ DropdownMenuCheckboxItem.displayName = CHECKBOX_ITEM_NAME;
1290
+ var RADIO_GROUP_NAME = "DropdownMenuRadioGroup";
1291
+ var DropdownMenuRadioGroup = /* @__PURE__ */ (0, import_react29.forwardRef)((props, forwardedRef) => {
1292
+ const { __scopeDropdownMenu, ...radioGroupProps } = props;
1293
+ const menuScope = useMenuScope(__scopeDropdownMenu);
1294
+ return /* @__PURE__ */ import_react29.default.createElement(MenuPrimitive.RadioGroup, {
1295
+ ...menuScope,
1296
+ ...radioGroupProps,
1798
1297
  ref: forwardedRef
1799
- }, children);
1298
+ });
1800
1299
  });
1801
- var ListItem = {
1802
- Root: ListItemRoot,
1803
- Endcap: ListItemEndcap,
1804
- Heading: ListItemHeading,
1805
- OpenTrigger: ListItemOpenTrigger,
1806
- CollapsibleContent: import_react_list.ListItemCollapsibleContent,
1807
- MockOpenTrigger: MockListItemOpenTrigger,
1808
- DropIndicator: ListDropIndicator
1809
- };
1810
- var edgeToOrientationMap2 = {
1811
- "reorder-above": "sibling",
1812
- "reorder-below": "sibling",
1813
- "make-child": "child",
1814
- reparent: "child"
1815
- };
1816
- var orientationStyles2 = {
1817
- // TODO(wittjosiah): Stop using left/right here.
1818
- sibling: "bs-[--line-thickness] left-[--horizontal-indent] right-0 bg-accentSurface before:left-[--negative-terminal-size]",
1819
- child: "is-full block-start-0 block-end-0 border-[length:--line-thickness] before:invisible"
1820
- };
1821
- var instructionStyles = {
1822
- "reorder-above": "block-start-[--line-offset] before:block-start-[--offset-terminal]",
1823
- "reorder-below": "block-end-[--line-offset] before:block-end-[--offset-terminal]",
1824
- "make-child": "border-accentSurface",
1825
- // TODO(wittjosiah): This is not occurring in the current implementation.
1826
- reparent: ""
1827
- };
1828
- var strokeSize2 = 2;
1829
- var terminalSize2 = 8;
1830
- var offsetToAlignTerminalWithLine2 = (strokeSize2 - terminalSize2) / 2;
1831
- var TreeDropIndicator = ({ instruction, gap = 0 }) => {
1832
- const lineOffset = `calc(-0.5 * (${gap}px + ${strokeSize2}px))`;
1833
- const isBlocked = instruction.type === "instruction-blocked";
1834
- const desiredInstruction = isBlocked ? instruction.desired : instruction;
1835
- const orientation = edgeToOrientationMap2[desiredInstruction.type];
1836
- if (isBlocked) {
1837
- return null;
1838
- }
1839
- return /* @__PURE__ */ import_react32.default.createElement("div", {
1840
- style: {
1841
- "--line-thickness": `${strokeSize2}px`,
1842
- "--line-offset": `${lineOffset}`,
1843
- "--terminal-size": `${terminalSize2}px`,
1844
- "--terminal-radius": `${terminalSize2 / 2}px`,
1845
- "--negative-terminal-size": `-${terminalSize2}px`,
1846
- "--offset-terminal": `${offsetToAlignTerminalWithLine2}px`,
1847
- "--horizontal-indent": `${desiredInstruction.currentLevel * desiredInstruction.indentPerLevel + 4}px`
1848
- },
1849
- className: `absolute z-10 pointer-events-none before:is-[--terminal-size] before:bs-[--terminal-size] box-border before:absolute before:border-[length:--line-thickness] before:border-solid before:border-accentSurface before:rounded-full ${orientationStyles2[orientation]} ${instructionStyles[desiredInstruction.type]}`
1300
+ DropdownMenuRadioGroup.displayName = RADIO_GROUP_NAME;
1301
+ var RADIO_ITEM_NAME = "DropdownMenuRadioItem";
1302
+ var DropdownMenuRadioItem = /* @__PURE__ */ (0, import_react29.forwardRef)((props, forwardedRef) => {
1303
+ const { __scopeDropdownMenu, ...radioItemProps } = props;
1304
+ const menuScope = useMenuScope(__scopeDropdownMenu);
1305
+ return /* @__PURE__ */ import_react29.default.createElement(MenuPrimitive.RadioItem, {
1306
+ ...menuScope,
1307
+ ...radioItemProps,
1308
+ ref: forwardedRef
1850
1309
  });
1851
- };
1852
- var TreeRoot = /* @__PURE__ */ (0, import_react31.forwardRef)((props, forwardedRef) => {
1853
- return /* @__PURE__ */ import_react31.default.createElement(List, {
1854
- ...props,
1310
+ });
1311
+ DropdownMenuRadioItem.displayName = RADIO_ITEM_NAME;
1312
+ var INDICATOR_NAME = "DropdownMenuItemIndicator";
1313
+ var DropdownMenuItemIndicator = /* @__PURE__ */ (0, import_react29.forwardRef)((props, forwardedRef) => {
1314
+ const { __scopeDropdownMenu, ...itemIndicatorProps } = props;
1315
+ const menuScope = useMenuScope(__scopeDropdownMenu);
1316
+ return /* @__PURE__ */ import_react29.default.createElement(MenuPrimitive.ItemIndicator, {
1317
+ ...menuScope,
1318
+ ...itemIndicatorProps,
1855
1319
  ref: forwardedRef
1856
1320
  });
1857
1321
  });
1858
- var TreeBranch = /* @__PURE__ */ (0, import_react31.forwardRef)(({ __listScope, ...props }, forwardedRef) => {
1859
- const { headingId } = (0, import_react_list.useListItemContext)(import_react_list.LIST_ITEM_NAME, __listScope);
1860
- return /* @__PURE__ */ import_react31.default.createElement(List, {
1861
- ...props,
1862
- "aria-labelledby": headingId,
1322
+ DropdownMenuItemIndicator.displayName = INDICATOR_NAME;
1323
+ var SEPARATOR_NAME = "DropdownMenuSeparator";
1324
+ var DropdownMenuSeparator = /* @__PURE__ */ (0, import_react29.forwardRef)((props, forwardedRef) => {
1325
+ const { __scopeDropdownMenu, classNames, ...separatorProps } = props;
1326
+ const menuScope = useMenuScope(__scopeDropdownMenu);
1327
+ const { tx } = useThemeContext();
1328
+ return /* @__PURE__ */ import_react29.default.createElement(MenuPrimitive.Separator, {
1329
+ ...menuScope,
1330
+ ...separatorProps,
1331
+ className: tx("menu.separator", "menu__item", {}, classNames),
1863
1332
  ref: forwardedRef
1864
1333
  });
1865
1334
  });
1866
- var TreeItemRoot = /* @__PURE__ */ (0, import_react31.forwardRef)((props, forwardedRef) => {
1867
- return /* @__PURE__ */ import_react31.default.createElement(ListItem.Root, {
1868
- role: "treeitem",
1869
- ...props,
1335
+ DropdownMenuSeparator.displayName = SEPARATOR_NAME;
1336
+ var ARROW_NAME = "DropdownMenuArrow";
1337
+ var DropdownMenuArrow = /* @__PURE__ */ (0, import_react29.forwardRef)((props, forwardedRef) => {
1338
+ const { __scopeDropdownMenu, classNames, ...arrowProps } = props;
1339
+ const menuScope = useMenuScope(__scopeDropdownMenu);
1340
+ const { tx } = useThemeContext();
1341
+ return /* @__PURE__ */ import_react29.default.createElement(MenuPrimitive.Arrow, {
1342
+ ...menuScope,
1343
+ ...arrowProps,
1344
+ className: tx("menu.arrow", "menu__arrow", {}, classNames),
1870
1345
  ref: forwardedRef
1871
1346
  });
1872
1347
  });
1873
- var TreeItemHeading = ListItem.Heading;
1874
- var TreeItemOpenTrigger = ListItem.OpenTrigger;
1875
- var MockTreeItemOpenTrigger = ListItem.MockOpenTrigger;
1876
- var TreeItemBody = ListItem.CollapsibleContent;
1877
- var Tree = {
1878
- Root: TreeRoot,
1879
- Branch: TreeBranch
1348
+ DropdownMenuArrow.displayName = ARROW_NAME;
1349
+ var DropdownMenuSub = (props) => {
1350
+ const { __scopeDropdownMenu, children, open: openProp, onOpenChange, defaultOpen } = props;
1351
+ const menuScope = useMenuScope(__scopeDropdownMenu);
1352
+ const [open = false, setOpen] = (0, import_react_use_controllable_state.useControllableState)({
1353
+ prop: openProp,
1354
+ defaultProp: defaultOpen,
1355
+ onChange: onOpenChange
1356
+ });
1357
+ return /* @__PURE__ */ import_react29.default.createElement(MenuPrimitive.Sub, {
1358
+ ...menuScope,
1359
+ open,
1360
+ onOpenChange: setOpen
1361
+ }, children);
1880
1362
  };
1881
- var TreeItem = {
1882
- Root: TreeItemRoot,
1883
- Heading: TreeItemHeading,
1884
- Body: TreeItemBody,
1885
- OpenTrigger: TreeItemOpenTrigger,
1886
- MockOpenTrigger: MockTreeItemOpenTrigger,
1887
- DropIndicator: TreeDropIndicator
1363
+ var SUB_TRIGGER_NAME = "DropdownMenuSubTrigger";
1364
+ var DropdownMenuSubTrigger = /* @__PURE__ */ (0, import_react29.forwardRef)((props, forwardedRef) => {
1365
+ const { __scopeDropdownMenu, ...subTriggerProps } = props;
1366
+ const menuScope = useMenuScope(__scopeDropdownMenu);
1367
+ return /* @__PURE__ */ import_react29.default.createElement(MenuPrimitive.SubTrigger, {
1368
+ ...menuScope,
1369
+ ...subTriggerProps,
1370
+ ref: forwardedRef
1371
+ });
1372
+ });
1373
+ DropdownMenuSubTrigger.displayName = SUB_TRIGGER_NAME;
1374
+ var SUB_CONTENT_NAME = "DropdownMenuSubContent";
1375
+ var DropdownMenuSubContent = /* @__PURE__ */ (0, import_react29.forwardRef)((props, forwardedRef) => {
1376
+ const { __scopeDropdownMenu, ...subContentProps } = props;
1377
+ const menuScope = useMenuScope(__scopeDropdownMenu);
1378
+ return /* @__PURE__ */ import_react29.default.createElement(MenuPrimitive.SubContent, {
1379
+ ...menuScope,
1380
+ ...subContentProps,
1381
+ ref: forwardedRef,
1382
+ style: {
1383
+ ...props.style,
1384
+ // re-namespace exposed content custom properties
1385
+ ...{
1386
+ "--radix-dropdown-menu-content-transform-origin": "var(--radix-popper-transform-origin)",
1387
+ "--radix-dropdown-menu-content-available-width": "var(--radix-popper-available-width)",
1388
+ "--radix-dropdown-menu-content-available-height": "var(--radix-popper-available-height)",
1389
+ "--radix-dropdown-menu-trigger-width": "var(--radix-popper-anchor-width)",
1390
+ "--radix-dropdown-menu-trigger-height": "var(--radix-popper-anchor-height)"
1391
+ }
1392
+ }
1393
+ });
1394
+ });
1395
+ DropdownMenuSubContent.displayName = SUB_CONTENT_NAME;
1396
+ var DropdownMenu = {
1397
+ Root: DropdownMenuRoot,
1398
+ Trigger: DropdownMenuTrigger,
1399
+ VirtualTrigger: DropdownMenuVirtualTrigger,
1400
+ Portal: DropdownMenuPortal,
1401
+ Content: DropdownMenuContent,
1402
+ Viewport: DropdownMenuViewport,
1403
+ Group: DropdownMenuGroup,
1404
+ GroupLabel: DropdownMenuGroupLabel,
1405
+ Item: DropdownMenuItem,
1406
+ CheckboxItem: DropdownMenuCheckboxItem,
1407
+ RadioGroup: DropdownMenuRadioGroup,
1408
+ RadioItem: DropdownMenuRadioItem,
1409
+ ItemIndicator: DropdownMenuItemIndicator,
1410
+ Separator: DropdownMenuSeparator,
1411
+ Arrow: DropdownMenuArrow,
1412
+ Sub: DropdownMenuSub,
1413
+ SubTrigger: DropdownMenuSubTrigger,
1414
+ SubContent: DropdownMenuSubContent
1888
1415
  };
1889
- var TREEGRID_ROW_NAME = "TreegridRow";
1890
- var [createTreegridRowContext, createTreegridRowScope] = (0, import_react_context6.createContextScope)(TREEGRID_ROW_NAME, []);
1891
- var [TreegridRowProvider, useTreegridRowContext] = createTreegridRowContext(TREEGRID_ROW_NAME);
1892
- var PATH_SEPARATOR = "~";
1893
- var PARENT_OF_SEPARATOR = " ";
1894
- var TreegridRoot = /* @__PURE__ */ (0, import_react33.forwardRef)(({ asChild, classNames, children, style, gridTemplateColumns, ...props }, forwardedRef) => {
1416
+ var useDropdownMenuMenuScope = useMenuScope;
1417
+ var Label3 = /* @__PURE__ */ (0, import_react30.forwardRef)(({ srOnly, classNames, children, ...props }, forwardedRef) => {
1895
1418
  const { tx } = useThemeContext();
1896
- const Root7 = asChild ? import_react_slot8.Slot : import_react_primitive7.Primitive.div;
1897
- const arrowNavigationAttrs = (0, import_react_tabster.useArrowNavigationGroup)({
1898
- axis: "vertical",
1899
- tabbable: false,
1900
- circular: true
1901
- });
1902
- return /* @__PURE__ */ import_react33.default.createElement(Root7, {
1903
- role: "treegrid",
1904
- ...arrowNavigationAttrs,
1419
+ return /* @__PURE__ */ import_react30.default.createElement(import_react_input.Label, {
1905
1420
  ...props,
1906
- className: tx("treegrid.root", "treegrid", {}, classNames),
1907
- style: {
1908
- ...style,
1909
- gridTemplateColumns
1910
- },
1421
+ className: tx("input.label", "input__label", {
1422
+ srOnly
1423
+ }, classNames),
1911
1424
  ref: forwardedRef
1912
1425
  }, children);
1913
1426
  });
1914
- var TreegridRow = /* @__PURE__ */ (0, import_react33.forwardRef)(({ __treegridRowScope, asChild, classNames, children, id, parentOf, open: propsOpen, defaultOpen, onOpenChange: propsOnOpenChange, ...props }, forwardedRef) => {
1427
+ var Description = /* @__PURE__ */ (0, import_react30.forwardRef)(({ srOnly, classNames, children, ...props }, forwardedRef) => {
1915
1428
  const { tx } = useThemeContext();
1916
- const Root7 = asChild ? import_react_slot8.Slot : import_react_primitive7.Primitive.div;
1917
- const pathParts = id.split(PATH_SEPARATOR);
1918
- const level = pathParts.length - 1;
1919
- const [open, onOpenChange] = (0, import_react_use_controllable_state3.useControllableState)({
1920
- prop: propsOpen,
1921
- onChange: propsOnOpenChange,
1922
- defaultProp: defaultOpen
1923
- });
1924
- const focusableGroupAttrs = (0, import_react_tabster.useFocusableGroup)({
1925
- tabBehavior: "limited"
1926
- });
1927
- const arrowGroupAttrs = (0, import_react_tabster.useArrowNavigationGroup)({
1928
- axis: "horizontal",
1929
- tabbable: false,
1930
- circular: false,
1931
- memorizeCurrent: false
1932
- });
1933
- return /* @__PURE__ */ import_react33.default.createElement(TreegridRowProvider, {
1934
- open,
1935
- onOpenChange,
1936
- scope: __treegridRowScope
1937
- }, /* @__PURE__ */ import_react33.default.createElement(Root7, {
1938
- role: "row",
1939
- "aria-level": level,
1940
- className: tx("treegrid.row", "treegrid__row", {
1941
- level
1942
- }, classNames),
1943
- ...parentOf && {
1944
- "aria-expanded": open,
1945
- "aria-owns": parentOf
1946
- },
1947
- tabIndex: 0,
1948
- ...focusableGroupAttrs,
1429
+ return /* @__PURE__ */ import_react30.default.createElement(import_react_input.Description, {
1949
1430
  ...props,
1950
- id,
1431
+ className: tx("input.description", "input__description", {
1432
+ srOnly
1433
+ }, classNames),
1951
1434
  ref: forwardedRef
1952
- }, /* @__PURE__ */ import_react33.default.createElement("div", {
1953
- role: "none",
1954
- className: "contents",
1955
- ...arrowGroupAttrs
1956
- }, children)));
1435
+ }, children);
1957
1436
  });
1958
- var TreegridCell = /* @__PURE__ */ (0, import_react33.forwardRef)(({ classNames, children, indent, ...props }, forwardedRef) => {
1437
+ var Validation = /* @__PURE__ */ (0, import_react30.forwardRef)(({ __inputScope, srOnly, classNames, children, ...props }, forwardedRef) => {
1959
1438
  const { tx } = useThemeContext();
1960
- return /* @__PURE__ */ import_react33.default.createElement("div", {
1961
- role: "gridcell",
1962
- className: tx("treegrid.cell", "treegrid__cell", {
1963
- indent
1439
+ const { validationValence } = (0, import_react_input.useInputContext)(import_react_input.INPUT_NAME, __inputScope);
1440
+ return /* @__PURE__ */ import_react30.default.createElement(import_react_input.Validation, {
1441
+ ...props,
1442
+ className: tx("input.validation", `input__validation-message input__validation-message--${validationValence}`, {
1443
+ srOnly,
1444
+ validationValence
1964
1445
  }, classNames),
1446
+ ref: forwardedRef
1447
+ }, children);
1448
+ });
1449
+ var DescriptionAndValidation = /* @__PURE__ */ (0, import_react30.forwardRef)(({ srOnly, classNames, children, ...props }, forwardedRef) => {
1450
+ const { tx } = useThemeContext();
1451
+ return /* @__PURE__ */ import_react30.default.createElement(import_react_input.DescriptionAndValidation, {
1965
1452
  ...props,
1453
+ className: tx("input.descriptionAndValidation", "input__description-and-validation", {
1454
+ srOnly
1455
+ }, classNames),
1966
1456
  ref: forwardedRef
1967
1457
  }, children);
1968
1458
  });
1969
- var Treegrid = {
1970
- Root: TreegridRoot,
1971
- Row: TreegridRow,
1972
- Cell: TreegridCell,
1973
- PARENT_OF_SEPARATOR,
1974
- PATH_SEPARATOR,
1975
- createTreegridRowScope,
1976
- useTreegridRowContext
1977
- };
1978
- var MotionState;
1979
- (function(MotionState2) {
1980
- MotionState2[MotionState2["IDLE"] = 0] = "IDLE";
1981
- MotionState2[MotionState2["DEBOUNCING"] = 1] = "DEBOUNCING";
1982
- MotionState2[MotionState2["FOLLOWING"] = 2] = "FOLLOWING";
1983
- })(MotionState || (MotionState = {}));
1984
- var useSwipeToDismiss = (ref, {
1985
- onDismiss,
1986
- dismissThreshold = 64,
1987
- debounceThreshold = 8,
1988
- offset = 0
1989
- /* side = 'inline-start' */
1990
- }) => {
1991
- const $root = ref.current;
1992
- const [motionState, setMotionState] = (0, import_react35.useState)(0);
1993
- const [gestureStartX, setGestureStartX] = (0, import_react35.useState)(0);
1994
- const setIdle = (0, import_react35.useCallback)(() => {
1995
- setMotionState(0);
1996
- $root?.style.removeProperty("inset-inline-start");
1997
- $root?.style.setProperty("transition-duration", "200ms");
1998
- }, [
1999
- $root
2000
- ]);
2001
- const setFollowing = (0, import_react35.useCallback)(() => {
2002
- setMotionState(2);
2003
- $root?.style.setProperty("transition-duration", "0ms");
2004
- }, [
2005
- $root
2006
- ]);
2007
- const handlePointerDown = (0, import_react35.useCallback)(({ screenX }) => {
2008
- if (motionState === 0) {
2009
- setMotionState(1);
2010
- setGestureStartX(screenX);
2011
- }
2012
- }, [
2013
- motionState
2014
- ]);
2015
- const handlePointerMove = (0, import_react35.useCallback)(({ screenX }) => {
2016
- if ($root) {
2017
- const delta = Math.min(screenX - gestureStartX, 0);
2018
- switch (motionState) {
2019
- case 2:
2020
- if (Math.abs(delta) > dismissThreshold) {
2021
- setIdle();
2022
- onDismiss?.();
2023
- } else {
2024
- $root.style.setProperty("inset-inline-start", `${offset + delta}px`);
2025
- }
2026
- break;
2027
- case 1:
2028
- if (Math.abs(delta) > debounceThreshold) {
2029
- setFollowing();
2030
- }
2031
- break;
2032
- }
2033
- }
2034
- }, [
2035
- $root,
2036
- motionState,
2037
- gestureStartX
2038
- ]);
2039
- const handlePointerUp = (0, import_react35.useCallback)(() => {
2040
- setIdle();
2041
- }, [
2042
- setIdle
2043
- ]);
2044
- (0, import_react35.useEffect)(() => {
2045
- $root?.addEventListener("pointerdown", handlePointerDown);
2046
- return () => {
2047
- $root?.removeEventListener("pointerdown", handlePointerDown);
2048
- };
2049
- }, [
2050
- $root,
2051
- handlePointerDown
2052
- ]);
2053
- (0, import_react35.useEffect)(() => {
2054
- $root && document.documentElement.addEventListener("pointermove", handlePointerMove);
2055
- return () => {
2056
- document.documentElement.removeEventListener("pointermove", handlePointerMove);
2057
- };
2058
- }, [
2059
- $root,
2060
- handlePointerMove
2061
- ]);
2062
- (0, import_react35.useEffect)(() => {
2063
- $root && document.documentElement.addEventListener("pointerup", handlePointerUp);
2064
- return () => {
2065
- document.documentElement.removeEventListener("pointerup", handlePointerUp);
2066
- };
2067
- }, [
2068
- $root,
2069
- handlePointerUp
2070
- ]);
2071
- };
2072
- var __dxlog_file = "/home/runner/work/dxos/dxos/packages/ui/react-ui/src/components/Main/Main.tsx";
2073
- var MAIN_ROOT_NAME = "MainRoot";
2074
- var NAVIGATION_SIDEBAR_NAME = "NavigationSidebar";
2075
- var COMPLEMENTARY_SIDEBAR_NAME = "ComplementarySidebar";
2076
- var MAIN_NAME = "Main";
2077
- var GENERIC_CONSUMER_NAME = "GenericConsumer";
2078
- var landmarkAttr = "data-main-landmark";
2079
- var useLandmarkMover = (propsOnKeyDown, landmark) => {
2080
- const handleKeyDown = (0, import_react34.useCallback)((event) => {
2081
- const target = event.target;
2082
- if (event.target === event.currentTarget && event.key === "Tab" && target.hasAttribute(landmarkAttr)) {
2083
- event.preventDefault();
2084
- const landmarks = Array.from(document.querySelectorAll(`[${landmarkAttr}]:not([inert])`)).map((el) => el.hasAttribute(landmarkAttr) ? parseInt(el.getAttribute(landmarkAttr)) : NaN).sort();
2085
- const l = landmarks.length;
2086
- const cursor = landmarks.indexOf(parseInt(target.getAttribute(landmarkAttr)));
2087
- const nextLandmark = landmarks[(cursor + l + (event.getModifierState("Shift") ? -1 : 1)) % l];
2088
- document.querySelector(`[${landmarkAttr}="${nextLandmark}"]`)?.focus();
2089
- }
2090
- propsOnKeyDown?.(event);
2091
- }, [
2092
- propsOnKeyDown
2093
- ]);
2094
- const focusableGroupAttrs = window ? {} : {
2095
- tabBehavior: "limited",
2096
- ignoreDefaultKeydown: {
2097
- Tab: true
2098
- }
2099
- };
2100
- return {
2101
- onKeyDown: handleKeyDown,
2102
- [landmarkAttr]: landmark,
2103
- tabIndex: 0,
2104
- ...focusableGroupAttrs
2105
- };
2106
- };
2107
- var [MainProvider, useMainContext] = (0, import_react_context7.createContext)(MAIN_NAME, {
2108
- resizing: false,
2109
- navigationSidebarState: "closed",
2110
- setNavigationSidebarState: (nextState) => {
2111
- import_log.log.warn("Attempt to set sidebar state without initializing `MainRoot`", void 0, {
2112
- F: __dxlog_file,
2113
- L: 82,
2114
- S: void 0,
2115
- C: (f, a) => f(...a)
2116
- });
2117
- },
2118
- complementarySidebarState: "closed",
2119
- setComplementarySidebarState: (nextState) => {
2120
- import_log.log.warn("Attempt to set sidebar state without initializing `MainRoot`", void 0, {
2121
- F: __dxlog_file,
2122
- L: 87,
2123
- S: void 0,
2124
- C: (f, a) => f(...a)
2125
- });
2126
- }
2127
- });
2128
- var useSidebars = (consumerName = GENERIC_CONSUMER_NAME) => {
2129
- const { setNavigationSidebarState, navigationSidebarState, setComplementarySidebarState, complementarySidebarState } = useMainContext(consumerName);
2130
- return {
2131
- navigationSidebarState,
2132
- setNavigationSidebarState,
2133
- toggleNavigationSidebar: (0, import_react34.useCallback)(() => setNavigationSidebarState(navigationSidebarState === "expanded" ? "closed" : "expanded"), [
2134
- navigationSidebarState,
2135
- setNavigationSidebarState
2136
- ]),
2137
- openNavigationSidebar: (0, import_react34.useCallback)(() => setNavigationSidebarState("expanded"), []),
2138
- collapseNavigationSidebar: (0, import_react34.useCallback)(() => setNavigationSidebarState("collapsed"), []),
2139
- closeNavigationSidebar: (0, import_react34.useCallback)(() => setNavigationSidebarState("closed"), []),
2140
- complementarySidebarState,
2141
- setComplementarySidebarState,
2142
- toggleComplementarySidebar: (0, import_react34.useCallback)(() => setComplementarySidebarState(complementarySidebarState === "expanded" ? "closed" : "expanded"), [
2143
- complementarySidebarState,
2144
- setComplementarySidebarState
2145
- ]),
2146
- openComplementarySidebar: (0, import_react34.useCallback)(() => setComplementarySidebarState("expanded"), []),
2147
- collapseComplementarySidebar: (0, import_react34.useCallback)(() => setComplementarySidebarState("collapsed"), []),
2148
- closeComplementarySidebar: (0, import_react34.useCallback)(() => setComplementarySidebarState("closed"), [])
2149
- };
2150
- };
2151
- var resizeDebounce = 3e3;
2152
- var MainRoot = ({ navigationSidebarState: propsNavigationSidebarState, defaultNavigationSidebarState, onNavigationSidebarStateChange, complementarySidebarState: propsComplementarySidebarState, defaultComplementarySidebarState, onComplementarySidebarStateChange, children, ...props }) => {
2153
- const [isLg] = (0, import_react_hooks4.useMediaQuery)("lg", {
2154
- ssr: false
2155
- });
2156
- const [navigationSidebarState = isLg ? "expanded" : "collapsed", setNavigationSidebarState] = (0, import_react_use_controllable_state4.useControllableState)({
2157
- prop: propsNavigationSidebarState,
2158
- defaultProp: defaultNavigationSidebarState,
2159
- onChange: onNavigationSidebarStateChange
2160
- });
2161
- const [complementarySidebarState = isLg ? "expanded" : "collapsed", setComplementarySidebarState] = (0, import_react_use_controllable_state4.useControllableState)({
2162
- prop: propsComplementarySidebarState,
2163
- defaultProp: defaultComplementarySidebarState,
2164
- onChange: onComplementarySidebarStateChange
2165
- });
2166
- const [resizing, setResizing] = (0, import_react34.useState)(false);
2167
- const resizeInterval = (0, import_react34.useRef)(null);
2168
- const handleResize = (0, import_react34.useCallback)(() => {
2169
- setResizing(true);
2170
- if (resizeInterval.current) {
2171
- clearTimeout(resizeInterval.current);
2172
- }
2173
- resizeInterval.current = setTimeout(() => {
2174
- setResizing(false);
2175
- resizeInterval.current = null;
2176
- }, resizeDebounce);
2177
- }, []);
2178
- (0, import_react34.useEffect)(() => {
2179
- window.addEventListener("resize", handleResize);
2180
- return () => window.removeEventListener("resize", handleResize);
2181
- }, [
2182
- handleResize
2183
- ]);
2184
- return /* @__PURE__ */ import_react34.default.createElement(MainProvider, {
2185
- ...props,
2186
- navigationSidebarState,
2187
- setNavigationSidebarState,
2188
- complementarySidebarState,
2189
- setComplementarySidebarState,
2190
- resizing
2191
- }, children);
2192
- };
2193
- MainRoot.displayName = MAIN_ROOT_NAME;
2194
- var handleOpenAutoFocus = (event) => {
2195
- !document.body.hasAttribute("data-is-keyboard") && event.preventDefault();
2196
- };
2197
- var MainSidebar = /* @__PURE__ */ (0, import_react34.forwardRef)(({ classNames, children, swipeToDismiss, onOpenAutoFocus, state, resizing, onStateChange, side, label, ...props }, forwardedRef) => {
2198
- const [isLg] = (0, import_react_hooks4.useMediaQuery)("lg", {
2199
- ssr: false
2200
- });
1459
+ var PinInput = /* @__PURE__ */ (0, import_react30.forwardRef)(({ density: propsDensity, elevation: propsElevation, segmentClassName: propsSegmentClassName, inputClassName, variant, ...props }, forwardedRef) => {
1460
+ const { hasIosKeyboard: hasIosKeyboard2 } = useThemeContext();
2201
1461
  const { tx } = useThemeContext();
2202
- const { t } = useTranslation();
2203
- const ref = (0, import_react_hooks4.useForwardedRef)(forwardedRef);
2204
- const noopRef = (0, import_react34.useRef)(null);
2205
- useSwipeToDismiss(swipeToDismiss ? ref : noopRef, {
2206
- onDismiss: () => onStateChange?.("closed")
2207
- });
2208
- const handleKeyDown = (0, import_react34.useCallback)((event) => {
2209
- if (event.key === "Escape") {
2210
- event.target.closest("[data-tabster]")?.focus();
2211
- }
2212
- props.onKeyDown?.(event);
2213
- }, [
2214
- props.onKeyDown
1462
+ const density = useDensityContext(propsDensity);
1463
+ const elevation = useElevationContext(propsElevation);
1464
+ const segmentClassName = (0, import_react30.useCallback)(({ focused, validationValence }) => tx("input.input", "input--pin-segment", {
1465
+ variant: "static",
1466
+ focused,
1467
+ disabled: props.disabled,
1468
+ density,
1469
+ elevation,
1470
+ validationValence
1471
+ }, propsSegmentClassName), [
1472
+ tx,
1473
+ props.disabled,
1474
+ elevation,
1475
+ propsElevation,
1476
+ density
2215
1477
  ]);
2216
- const Root7 = isLg ? import_react_primitive8.Primitive.div : import_react_dialog2.DialogContent;
2217
- return /* @__PURE__ */ import_react34.default.createElement(import_react_dialog2.Root, {
2218
- open: state !== "closed",
2219
- "aria-label": toLocalizedString(label, t),
2220
- modal: false
2221
- }, !isLg && /* @__PURE__ */ import_react34.default.createElement(import_react_dialog2.DialogTitle, {
2222
- className: "sr-only"
2223
- }, toLocalizedString(label, t)), /* @__PURE__ */ import_react34.default.createElement(Root7, {
2224
- ...!isLg && {
2225
- forceMount: true,
2226
- tabIndex: -1,
2227
- onOpenAutoFocus: onOpenAutoFocus ?? handleOpenAutoFocus
2228
- },
1478
+ return /* @__PURE__ */ import_react30.default.createElement(import_react_input.PinInput, {
2229
1479
  ...props,
2230
- "data-side": side === "inline-end" ? "ie" : "is",
2231
- "data-state": state,
2232
- "data-resizing": resizing ? "true" : "false",
2233
- className: tx("main.sidebar", "main__sidebar", {}, classNames),
2234
- onKeyDown: handleKeyDown,
2235
- ...state === "closed" && {
2236
- inert: "true"
1480
+ segmentClassName,
1481
+ ...props.autoFocus && !hasIosKeyboard2 && {
1482
+ autoFocus: true
2237
1483
  },
2238
- ref
2239
- }, children));
2240
- });
2241
- var MainNavigationSidebar = /* @__PURE__ */ (0, import_react34.forwardRef)((props, forwardedRef) => {
2242
- const { navigationSidebarState, setNavigationSidebarState, resizing } = useMainContext(NAVIGATION_SIDEBAR_NAME);
2243
- const mover = useLandmarkMover(props.onKeyDown, "0");
2244
- return /* @__PURE__ */ import_react34.default.createElement(MainSidebar, {
2245
- ...mover,
2246
- ...props,
2247
- state: navigationSidebarState,
2248
- onStateChange: setNavigationSidebarState,
2249
- resizing,
2250
- side: "inline-start",
1484
+ inputClassName: tx("input.inputWithSegments", "input input--pin", {
1485
+ disabled: props.disabled
1486
+ }, inputClassName),
2251
1487
  ref: forwardedRef
2252
1488
  });
2253
1489
  });
2254
- MainNavigationSidebar.displayName = NAVIGATION_SIDEBAR_NAME;
2255
- var MainComplementarySidebar = /* @__PURE__ */ (0, import_react34.forwardRef)((props, forwardedRef) => {
2256
- const { complementarySidebarState, setComplementarySidebarState, resizing } = useMainContext(COMPLEMENTARY_SIDEBAR_NAME);
2257
- const mover = useLandmarkMover(props.onKeyDown, "2");
2258
- return /* @__PURE__ */ import_react34.default.createElement(MainSidebar, {
2259
- ...mover,
1490
+ var TextInput = /* @__PURE__ */ (0, import_react30.forwardRef)(({ __inputScope, classNames, density: propsDensity, elevation: propsElevation, variant, ...props }, forwardedRef) => {
1491
+ const { hasIosKeyboard: hasIosKeyboard2 } = useThemeContext();
1492
+ const themeContextValue = useThemeContext();
1493
+ const density = useDensityContext(propsDensity);
1494
+ const elevation = useElevationContext(propsElevation);
1495
+ const { validationValence } = (0, import_react_input.useInputContext)(import_react_input.INPUT_NAME, __inputScope);
1496
+ const { tx } = themeContextValue;
1497
+ return /* @__PURE__ */ import_react30.default.createElement(import_react_input.TextInput, {
2260
1498
  ...props,
2261
- state: complementarySidebarState,
2262
- onStateChange: setComplementarySidebarState,
2263
- resizing,
2264
- side: "inline-end",
1499
+ className: tx("input.input", "input", {
1500
+ variant,
1501
+ disabled: props.disabled,
1502
+ density,
1503
+ elevation,
1504
+ validationValence
1505
+ }, classNames),
1506
+ ...props.autoFocus && !hasIosKeyboard2 && {
1507
+ autoFocus: true
1508
+ },
2265
1509
  ref: forwardedRef
2266
1510
  });
2267
1511
  });
2268
- MainNavigationSidebar.displayName = NAVIGATION_SIDEBAR_NAME;
2269
- var MainContent = /* @__PURE__ */ (0, import_react34.forwardRef)(({ asChild, classNames, bounce, handlesFocus, children, role, ...props }, forwardedRef) => {
2270
- const { navigationSidebarState, complementarySidebarState } = useMainContext(MAIN_NAME);
1512
+ var TextArea = /* @__PURE__ */ (0, import_react30.forwardRef)(({ __inputScope, classNames, density: propsDensity, elevation: propsElevation, variant, ...props }, forwardedRef) => {
1513
+ const { hasIosKeyboard: hasIosKeyboard2 } = useThemeContext();
2271
1514
  const { tx } = useThemeContext();
2272
- const Root7 = asChild ? import_react_slot9.Slot : role ? "div" : "main";
2273
- const mover = useLandmarkMover(props.onKeyDown, "1");
2274
- return /* @__PURE__ */ import_react34.default.createElement(Root7, {
2275
- role,
2276
- ...handlesFocus && {
2277
- ...mover
2278
- },
1515
+ const density = useDensityContext(propsDensity);
1516
+ const elevation = useElevationContext(propsElevation);
1517
+ const { validationValence } = (0, import_react_input.useInputContext)(import_react_input.INPUT_NAME, __inputScope);
1518
+ return /* @__PURE__ */ import_react30.default.createElement(import_react_input.TextArea, {
2279
1519
  ...props,
2280
- "data-sidebar-inline-start-state": navigationSidebarState,
2281
- "data-sidebar-inline-end-state": complementarySidebarState,
2282
- className: tx("main.content", "main", {
2283
- bounce,
2284
- handlesFocus
1520
+ className: tx("input.input", "input--text-area", {
1521
+ variant,
1522
+ disabled: props.disabled,
1523
+ density,
1524
+ elevation,
1525
+ validationValence
2285
1526
  }, classNames),
1527
+ ...props.autoFocus && !hasIosKeyboard2 && {
1528
+ autoFocus: true
1529
+ },
2286
1530
  ref: forwardedRef
2287
- }, children);
1531
+ });
2288
1532
  });
2289
- MainContent.displayName = MAIN_NAME;
2290
- var MainOverlay = /* @__PURE__ */ (0, import_react34.forwardRef)(({ classNames, ...props }, forwardedRef) => {
2291
- const [isLg] = (0, import_react_hooks4.useMediaQuery)("lg", {
2292
- ssr: false
1533
+ var Checkbox = /* @__PURE__ */ (0, import_react30.forwardRef)(({ __inputScope, checked: propsChecked, defaultChecked: propsDefaultChecked, onCheckedChange: propsOnCheckedChange, size, weight = "bold", classNames, ...props }, forwardedRef) => {
1534
+ const [checked, onCheckedChange] = (0, import_react_use_controllable_state2.useControllableState)({
1535
+ prop: propsChecked,
1536
+ defaultProp: propsDefaultChecked,
1537
+ onChange: propsOnCheckedChange
2293
1538
  });
2294
- const { navigationSidebarState, setNavigationSidebarState, complementarySidebarState, setComplementarySidebarState } = useMainContext(MAIN_NAME);
1539
+ const { id, validationValence, descriptionId, errorMessageId } = (0, import_react_input.useInputContext)(import_react_input.INPUT_NAME, __inputScope);
2295
1540
  const { tx } = useThemeContext();
2296
- return /* @__PURE__ */ import_react34.default.createElement("div", {
2297
- onClick: () => {
2298
- setNavigationSidebarState("collapsed");
2299
- setComplementarySidebarState("collapsed");
1541
+ return /* @__PURE__ */ import_react30.default.createElement(import_react_checkbox.Root, {
1542
+ ...props,
1543
+ checked,
1544
+ onCheckedChange,
1545
+ id,
1546
+ "aria-describedby": descriptionId,
1547
+ ...validationValence === "error" && {
1548
+ "aria-invalid": "true",
1549
+ "aria-errormessage": errorMessageId
1550
+ },
1551
+ className: tx("input.checkbox", "input--checkbox", {
1552
+ size
1553
+ }, "shrink-0", classNames),
1554
+ ref: forwardedRef
1555
+ }, /* @__PURE__ */ import_react30.default.createElement(Icon, {
1556
+ icon: checked === "indeterminate" ? "ph--minus--regular" : "ph--check--regular",
1557
+ classNames: tx("input.checkboxIndicator", "input--checkbox__indicator", {
1558
+ size,
1559
+ checked
1560
+ })
1561
+ }));
1562
+ });
1563
+ var Switch = /* @__PURE__ */ (0, import_react30.forwardRef)(({ __inputScope, checked: propsChecked, defaultChecked: propsDefaultChecked, onCheckedChange: propsOnCheckedChange, classNames, ...props }, forwardedRef) => {
1564
+ const [checked, onCheckedChange] = (0, import_react_use_controllable_state2.useControllableState)({
1565
+ prop: propsChecked,
1566
+ defaultProp: propsDefaultChecked ?? false,
1567
+ onChange: propsOnCheckedChange
1568
+ });
1569
+ const { id, validationValence, descriptionId, errorMessageId } = (0, import_react_input.useInputContext)(import_react_input.INPUT_NAME, __inputScope);
1570
+ return /* @__PURE__ */ import_react30.default.createElement("input", {
1571
+ type: "checkbox",
1572
+ className: (0, import_react_ui_theme3.mx)("dx-checkbox--switch dx-focus-ring", classNames),
1573
+ checked,
1574
+ onChange: (event) => {
1575
+ onCheckedChange(event.target.checked);
2300
1576
  },
1577
+ id,
1578
+ "aria-describedby": descriptionId,
2301
1579
  ...props,
2302
- className: tx("main.overlay", "main__overlay", {
2303
- isLg,
2304
- inlineStartSidebarOpen: navigationSidebarState,
2305
- inlineEndSidebarOpen: complementarySidebarState
2306
- }, classNames),
2307
- "data-state": navigationSidebarState === "expanded" || complementarySidebarState === "expanded" ? "open" : "closed",
2308
- "aria-hidden": "true",
1580
+ ...validationValence === "error" && {
1581
+ "aria-invalid": "true",
1582
+ "aria-errormessage": errorMessageId
1583
+ },
2309
1584
  ref: forwardedRef
2310
1585
  });
2311
1586
  });
2312
- var Main = {
2313
- Root: MainRoot,
2314
- Content: MainContent,
2315
- Overlay: MainOverlay,
2316
- NavigationSidebar: MainNavigationSidebar,
2317
- ComplementarySidebar: MainComplementarySidebar
1587
+ var Input = {
1588
+ Root: import_react_input.InputRoot,
1589
+ PinInput,
1590
+ TextInput,
1591
+ TextArea,
1592
+ Checkbox,
1593
+ Switch,
1594
+ Label: Label3,
1595
+ Description,
1596
+ Validation,
1597
+ DescriptionAndValidation
2318
1598
  };
2319
- var propIsNumber = (prop) => Number.isFinite(prop);
2320
- var propsIsRecord = (prop) => !!(prop && typeof prop === "object");
2321
- var safePadding = (propsPadding, safePadding2, side) => {
2322
- return (propIsNumber(safePadding2[side]) ? safePadding2[side] : 0) + (propIsNumber(propsPadding) ? propsPadding : propsIsRecord(propsPadding) ? propsPadding[side] ?? 0 : 0);
1599
+ var edgeToOrientationMap = {
1600
+ top: "horizontal",
1601
+ bottom: "horizontal",
1602
+ left: "vertical",
1603
+ right: "vertical"
2323
1604
  };
2324
- var useSafeCollisionPadding = (collisionPadding) => {
2325
- const { safeAreaPadding } = useThemeContext();
2326
- return (0, import_react37.useMemo)(() => ({
2327
- top: safePadding(collisionPadding, safeAreaPadding, "top"),
2328
- right: safePadding(collisionPadding, safeAreaPadding, "right"),
2329
- bottom: safePadding(collisionPadding, safeAreaPadding, "bottom"),
2330
- left: safePadding(collisionPadding, safeAreaPadding, "left")
2331
- }), [
2332
- collisionPadding,
2333
- safeAreaPadding
2334
- ]);
1605
+ var orientationStyles = {
1606
+ horizontal: "h-[--line-thickness] left-[calc(var(--line-inset)+var(--terminal-radius))] right-[--line-inset] before:left-[--terminal-inset]",
1607
+ vertical: "w-[--line-thickness] top-[calc(var(--line-inset)+var(--terminal-radius))] bottom-[--line-inset] before:top-[--terminal-inset]"
1608
+ };
1609
+ var edgeStyles = {
1610
+ top: "top-[--line-offset] before:top-[--offset-terminal]",
1611
+ right: "right-[--line-offset] before:right-[--offset-terminal]",
1612
+ bottom: "bottom-[--line-offset] before:bottom-[--offset-terminal]",
1613
+ left: "left-[--line-offset] before:left-[--offset-terminal]"
1614
+ };
1615
+ var strokeSize = 2;
1616
+ var terminalSize = 8;
1617
+ var offsetToAlignTerminalWithLine = (strokeSize - terminalSize) / 2;
1618
+ var ListDropIndicator = ({ edge, gap = 0, lineInset = 0, terminalInset = lineInset - terminalSize }) => {
1619
+ const orientation = edgeToOrientationMap[edge];
1620
+ return /* @__PURE__ */ import_react33.default.createElement("div", {
1621
+ role: "none",
1622
+ style: {
1623
+ "--line-thickness": `${strokeSize}px`,
1624
+ "--line-offset": `calc(-0.5 * (${gap}px + ${strokeSize}px))`,
1625
+ "--line-inset": `${lineInset}px`,
1626
+ "--terminal-size": `${terminalSize}px`,
1627
+ "--terminal-radius": `${terminalSize / 2}px`,
1628
+ "--terminal-inset": `${terminalInset}px`,
1629
+ "--offset-terminal": `${offsetToAlignTerminalWithLine}px`
1630
+ },
1631
+ className: `absolute z-10 pointer-events-none bg-accentSurface before:content-[''] before:w-[--terminal-size] before:h-[--terminal-size] box-border before:absolute before:border-[length:--line-thickness] before:border-solid before:border-accentSurface before:rounded-full ${orientationStyles[orientation]} ${edgeStyles[edge]}`
1632
+ });
2335
1633
  };
2336
- var ContextMenuRoot = ContextMenuPrimitive.ContextMenu;
2337
- var ContextMenuTrigger = ContextMenuPrimitive.Trigger;
2338
- var ContextMenuPortal = ContextMenuPrimitive.Portal;
2339
- var ContextMenuContent = /* @__PURE__ */ (0, import_react36.forwardRef)(({ classNames, children, collisionPadding = 8, ...props }, forwardedRef) => {
1634
+ var List = /* @__PURE__ */ (0, import_react32.forwardRef)(({ classNames, children, ...props }, forwardedRef) => {
2340
1635
  const { tx } = useThemeContext();
2341
- const elevation = useElevationContext();
2342
- const safeCollisionPadding = useSafeCollisionPadding(collisionPadding);
2343
- return /* @__PURE__ */ import_react36.default.createElement(ContextMenuPrimitive.Content, {
1636
+ const density = useDensityContext(props.density);
1637
+ return /* @__PURE__ */ import_react32.default.createElement(DensityProvider, {
1638
+ density
1639
+ }, /* @__PURE__ */ import_react32.default.createElement(import_react_list.List, {
2344
1640
  ...props,
2345
- collisionPadding: safeCollisionPadding,
2346
- className: tx("menu.content", "menu", {
2347
- elevation
1641
+ className: tx("list.root", "list", {}, classNames),
1642
+ ref: forwardedRef
1643
+ }, children));
1644
+ });
1645
+ var ListItemEndcap = /* @__PURE__ */ (0, import_react32.forwardRef)(({ children, classNames, asChild, ...props }, forwardedRef) => {
1646
+ const Root5 = asChild ? import_react_slot8.Slot : "div";
1647
+ const density = useDensityContext();
1648
+ const { tx } = useThemeContext();
1649
+ return /* @__PURE__ */ import_react32.default.createElement(Root5, {
1650
+ ...!asChild && {
1651
+ role: "none"
1652
+ },
1653
+ ...props,
1654
+ className: tx("list.item.endcap", "list__listItem__endcap", {
1655
+ density
2348
1656
  }, classNames),
2349
1657
  ref: forwardedRef
2350
1658
  }, children);
2351
1659
  });
2352
- var ContextMenuViewport = /* @__PURE__ */ (0, import_react36.forwardRef)(({ classNames, asChild, children, ...props }, forwardedRef) => {
1660
+ var MockListItemOpenTrigger = ({ classNames, ...props }) => {
1661
+ const density = useDensityContext();
2353
1662
  const { tx } = useThemeContext();
2354
- const Root7 = asChild ? import_react_slot10.Slot : import_react_primitive9.Primitive.div;
2355
- return /* @__PURE__ */ import_react36.default.createElement(Root7, {
1663
+ return /* @__PURE__ */ import_react32.default.createElement("div", {
1664
+ role: "none",
2356
1665
  ...props,
2357
- className: tx("menu.viewport", "menu__viewport", {}, classNames),
1666
+ className: tx("list.item.openTrigger", "list__listItem__openTrigger--mock", {
1667
+ density
1668
+ }, classNames)
1669
+ });
1670
+ };
1671
+ var ListItemHeading = /* @__PURE__ */ (0, import_react32.forwardRef)(({ children, classNames, ...props }, forwardedRef) => {
1672
+ const { tx } = useThemeContext();
1673
+ const density = useDensityContext();
1674
+ return /* @__PURE__ */ import_react32.default.createElement(import_react_list.ListItemHeading, {
1675
+ ...props,
1676
+ className: tx("list.item.heading", "list__listItem__heading", {
1677
+ density
1678
+ }, classNames),
2358
1679
  ref: forwardedRef
2359
1680
  }, children);
2360
1681
  });
2361
- var ContextMenuArrow = /* @__PURE__ */ (0, import_react36.forwardRef)(({ classNames, ...props }, forwardedRef) => {
1682
+ var ListItemOpenTrigger = /* @__PURE__ */ (0, import_react32.forwardRef)(({ __listItemScope, classNames, children, ...props }, forwardedRef) => {
2362
1683
  const { tx } = useThemeContext();
2363
- return /* @__PURE__ */ import_react36.default.createElement(ContextMenuPrimitive.Arrow, {
1684
+ const density = useDensityContext();
1685
+ const { open } = (0, import_react_list.useListItemContext)(import_react_list.LIST_ITEM_NAME, __listItemScope);
1686
+ const Icon3 = open ? import_react31.CaretDown : import_react31.CaretRight;
1687
+ return /* @__PURE__ */ import_react32.default.createElement(import_react_list.ListItemOpenTrigger, {
2364
1688
  ...props,
2365
- className: tx("menu.arrow", "menu__arrow", {}, classNames),
1689
+ className: tx("list.item.openTrigger", "list__listItem__openTrigger", {
1690
+ density
1691
+ }, classNames),
2366
1692
  ref: forwardedRef
2367
- });
1693
+ }, children || /* @__PURE__ */ import_react32.default.createElement(Icon3, {
1694
+ weight: "bold",
1695
+ className: tx("list.item.openTriggerIcon", "list__listItem__openTrigger__icon", {})
1696
+ }));
2368
1697
  });
2369
- var ContextMenuGroup = ContextMenuPrimitive.Group;
2370
- var ContextMenuItemIndicator = ContextMenuPrimitive.ItemIndicator;
2371
- var ContextMenuItem = /* @__PURE__ */ (0, import_react36.forwardRef)(({ classNames, ...props }, forwardedRef) => {
1698
+ var ListItemRoot = /* @__PURE__ */ (0, import_react32.forwardRef)(({ classNames, children, ...props }, forwardedRef) => {
2372
1699
  const { tx } = useThemeContext();
2373
- return /* @__PURE__ */ import_react36.default.createElement(ContextMenuPrimitive.Item, {
1700
+ const density = useDensityContext();
1701
+ return /* @__PURE__ */ import_react32.default.createElement(import_react_list.ListItem, {
2374
1702
  ...props,
2375
- className: tx("menu.item", "menu__item", {}, classNames),
1703
+ className: tx("list.item.root", "list__listItem", {
1704
+ density,
1705
+ collapsible: props.collapsible
1706
+ }, classNames),
2376
1707
  ref: forwardedRef
2377
- });
1708
+ }, children);
2378
1709
  });
2379
- var ContextMenuCheckboxItem = /* @__PURE__ */ (0, import_react36.forwardRef)(({ classNames, ...props }, forwardedRef) => {
2380
- const { tx } = useThemeContext();
2381
- return /* @__PURE__ */ import_react36.default.createElement(ContextMenuPrimitive.CheckboxItem, {
1710
+ var ListItem = {
1711
+ Root: ListItemRoot,
1712
+ Endcap: ListItemEndcap,
1713
+ Heading: ListItemHeading,
1714
+ OpenTrigger: ListItemOpenTrigger,
1715
+ CollapsibleContent: import_react_list.ListItemCollapsibleContent,
1716
+ MockOpenTrigger: MockListItemOpenTrigger,
1717
+ DropIndicator: ListDropIndicator
1718
+ };
1719
+ var edgeToOrientationMap2 = {
1720
+ "reorder-above": "sibling",
1721
+ "reorder-below": "sibling",
1722
+ "make-child": "child",
1723
+ reparent: "child"
1724
+ };
1725
+ var orientationStyles2 = {
1726
+ // TODO(wittjosiah): Stop using left/right here.
1727
+ sibling: "bs-[--line-thickness] left-[--horizontal-indent] right-0 bg-accentSurface before:left-[--negative-terminal-size]",
1728
+ child: "is-full block-start-0 block-end-0 border-[length:--line-thickness] before:invisible"
1729
+ };
1730
+ var instructionStyles = {
1731
+ "reorder-above": "block-start-[--line-offset] before:block-start-[--offset-terminal]",
1732
+ "reorder-below": "block-end-[--line-offset] before:block-end-[--offset-terminal]",
1733
+ "make-child": "border-accentSurface",
1734
+ // TODO(wittjosiah): This is not occurring in the current implementation.
1735
+ reparent: ""
1736
+ };
1737
+ var strokeSize2 = 2;
1738
+ var terminalSize2 = 8;
1739
+ var offsetToAlignTerminalWithLine2 = (strokeSize2 - terminalSize2) / 2;
1740
+ var TreeDropIndicator = ({ instruction, gap = 0 }) => {
1741
+ const lineOffset = `calc(-0.5 * (${gap}px + ${strokeSize2}px))`;
1742
+ const isBlocked = instruction.type === "instruction-blocked";
1743
+ const desiredInstruction = isBlocked ? instruction.desired : instruction;
1744
+ const orientation = edgeToOrientationMap2[desiredInstruction.type];
1745
+ if (isBlocked) {
1746
+ return null;
1747
+ }
1748
+ return /* @__PURE__ */ import_react35.default.createElement("div", {
1749
+ style: {
1750
+ "--line-thickness": `${strokeSize2}px`,
1751
+ "--line-offset": `${lineOffset}`,
1752
+ "--terminal-size": `${terminalSize2}px`,
1753
+ "--terminal-radius": `${terminalSize2 / 2}px`,
1754
+ "--negative-terminal-size": `-${terminalSize2}px`,
1755
+ "--offset-terminal": `${offsetToAlignTerminalWithLine2}px`,
1756
+ "--horizontal-indent": `${desiredInstruction.currentLevel * desiredInstruction.indentPerLevel + 4}px`
1757
+ },
1758
+ className: `absolute z-10 pointer-events-none before:is-[--terminal-size] before:bs-[--terminal-size] box-border before:absolute before:border-[length:--line-thickness] before:border-solid before:border-accentSurface before:rounded-full ${orientationStyles2[orientation]} ${instructionStyles[desiredInstruction.type]}`
1759
+ });
1760
+ };
1761
+ var TreeRoot = /* @__PURE__ */ (0, import_react34.forwardRef)((props, forwardedRef) => {
1762
+ return /* @__PURE__ */ import_react34.default.createElement(List, {
2382
1763
  ...props,
2383
- className: tx("menu.item", "menu__item--checkbox", {}, classNames),
2384
1764
  ref: forwardedRef
2385
1765
  });
2386
1766
  });
2387
- var ContextMenuSeparator = /* @__PURE__ */ (0, import_react36.forwardRef)(({ classNames, ...props }, forwardedRef) => {
2388
- const { tx } = useThemeContext();
2389
- return /* @__PURE__ */ import_react36.default.createElement(ContextMenuPrimitive.Separator, {
1767
+ var TreeBranch = /* @__PURE__ */ (0, import_react34.forwardRef)(({ __listScope, ...props }, forwardedRef) => {
1768
+ const { headingId } = (0, import_react_list.useListItemContext)(import_react_list.LIST_ITEM_NAME, __listScope);
1769
+ return /* @__PURE__ */ import_react34.default.createElement(List, {
2390
1770
  ...props,
2391
- className: tx("menu.separator", "menu__item", {}, classNames),
1771
+ "aria-labelledby": headingId,
2392
1772
  ref: forwardedRef
2393
1773
  });
2394
1774
  });
2395
- var ContextMenuGroupLabel = /* @__PURE__ */ (0, import_react36.forwardRef)(({ classNames, ...props }, forwardedRef) => {
2396
- const { tx } = useThemeContext();
2397
- return /* @__PURE__ */ import_react36.default.createElement(ContextMenuPrimitive.Label, {
1775
+ var TreeItemRoot = /* @__PURE__ */ (0, import_react34.forwardRef)((props, forwardedRef) => {
1776
+ return /* @__PURE__ */ import_react34.default.createElement(ListItem.Root, {
1777
+ role: "treeitem",
2398
1778
  ...props,
2399
- className: tx("menu.groupLabel", "menu__group__label", {}, classNames),
2400
1779
  ref: forwardedRef
2401
1780
  });
2402
1781
  });
2403
- var ContextMenu2 = {
2404
- Root: ContextMenuRoot,
2405
- Trigger: ContextMenuTrigger,
2406
- Portal: ContextMenuPortal,
2407
- Content: ContextMenuContent,
2408
- Viewport: ContextMenuViewport,
2409
- Arrow: ContextMenuArrow,
2410
- Group: ContextMenuGroup,
2411
- Item: ContextMenuItem,
2412
- CheckboxItem: ContextMenuCheckboxItem,
2413
- ItemIndicator: ContextMenuItemIndicator,
2414
- Separator: ContextMenuSeparator,
2415
- GroupLabel: ContextMenuGroupLabel
1782
+ var TreeItemHeading = ListItem.Heading;
1783
+ var TreeItemOpenTrigger = ListItem.OpenTrigger;
1784
+ var MockTreeItemOpenTrigger = ListItem.MockOpenTrigger;
1785
+ var TreeItemBody = ListItem.CollapsibleContent;
1786
+ var Tree = {
1787
+ Root: TreeRoot,
1788
+ Branch: TreeBranch
2416
1789
  };
2417
- var DROPDOWN_MENU_NAME = "DropdownMenu";
2418
- var [createDropdownMenuContext, createDropdownMenuScope] = (0, import_react_context8.createContextScope)(DROPDOWN_MENU_NAME, [
2419
- import_react_menu.createMenuScope
2420
- ]);
2421
- var useMenuScope = (0, import_react_menu.createMenuScope)();
2422
- var [DropdownMenuProvider, useDropdownMenuContext] = createDropdownMenuContext(DROPDOWN_MENU_NAME);
2423
- var DropdownMenuRoot = (props) => {
2424
- const { __scopeDropdownMenu, children, dir, open: openProp, defaultOpen, onOpenChange, modal = true } = props;
2425
- const menuScope = useMenuScope(__scopeDropdownMenu);
2426
- const triggerRef = (0, import_react38.useRef)(null);
2427
- const [open = false, setOpen] = (0, import_react_use_controllable_state5.useControllableState)({
2428
- prop: openProp,
2429
- defaultProp: defaultOpen,
2430
- onChange: onOpenChange
2431
- });
2432
- return /* @__PURE__ */ import_react38.default.createElement(DropdownMenuProvider, {
2433
- scope: __scopeDropdownMenu,
2434
- triggerId: (0, import_react_id2.useId)(),
2435
- triggerRef,
2436
- contentId: (0, import_react_id2.useId)(),
2437
- open,
2438
- onOpenChange: setOpen,
2439
- onOpenToggle: (0, import_react38.useCallback)(() => setOpen((prevOpen) => !prevOpen), [
2440
- setOpen
2441
- ]),
2442
- modal
2443
- }, /* @__PURE__ */ import_react38.default.createElement(MenuPrimitive.Root, {
2444
- ...menuScope,
2445
- open,
2446
- onOpenChange: setOpen,
2447
- dir,
2448
- modal
2449
- }, children));
1790
+ var TreeItem = {
1791
+ Root: TreeItemRoot,
1792
+ Heading: TreeItemHeading,
1793
+ Body: TreeItemBody,
1794
+ OpenTrigger: TreeItemOpenTrigger,
1795
+ MockOpenTrigger: MockTreeItemOpenTrigger,
1796
+ DropIndicator: TreeDropIndicator
2450
1797
  };
2451
- DropdownMenuRoot.displayName = DROPDOWN_MENU_NAME;
2452
- var TRIGGER_NAME2 = "DropdownMenuTrigger";
2453
- var DropdownMenuTrigger = /* @__PURE__ */ (0, import_react38.forwardRef)((props, forwardedRef) => {
2454
- const { __scopeDropdownMenu, disabled = false, ...triggerProps } = props;
2455
- const context = useDropdownMenuContext(TRIGGER_NAME2, __scopeDropdownMenu);
2456
- const menuScope = useMenuScope(__scopeDropdownMenu);
2457
- return /* @__PURE__ */ import_react38.default.createElement(MenuPrimitive.Anchor, {
2458
- asChild: true,
2459
- ...menuScope
2460
- }, /* @__PURE__ */ import_react38.default.createElement(import_react_primitive10.Primitive.button, {
2461
- type: "button",
2462
- id: context.triggerId,
2463
- "aria-haspopup": "menu",
2464
- "aria-expanded": context.open,
2465
- "aria-controls": context.open ? context.contentId : void 0,
2466
- "data-state": context.open ? "open" : "closed",
2467
- "data-disabled": disabled ? "" : void 0,
2468
- disabled,
2469
- ...triggerProps,
2470
- ref: (0, import_react_compose_refs2.composeRefs)(forwardedRef, context.triggerRef),
2471
- onPointerDown: (0, import_primitive2.composeEventHandlers)(props.onPointerDown, (event) => {
2472
- if (!disabled && event.button === 0 && event.ctrlKey === false) {
2473
- context.onOpenToggle();
2474
- if (!context.open) {
2475
- event.preventDefault();
2476
- }
2477
- }
2478
- }),
2479
- onKeyDown: (0, import_primitive2.composeEventHandlers)(props.onKeyDown, (event) => {
2480
- if (disabled) {
2481
- return;
2482
- }
2483
- if ([
2484
- "Enter",
2485
- " "
2486
- ].includes(event.key)) {
2487
- context.onOpenToggle();
2488
- }
2489
- if (event.key === "ArrowDown") {
2490
- context.onOpenChange(true);
2491
- }
2492
- if ([
2493
- "Enter",
2494
- " ",
2495
- "ArrowDown"
2496
- ].includes(event.key)) {
2497
- event.preventDefault();
2498
- }
2499
- })
2500
- }));
1798
+ var TREEGRID_ROW_NAME = "TreegridRow";
1799
+ var [createTreegridRowContext, createTreegridRowScope] = (0, import_react_context6.createContextScope)(TREEGRID_ROW_NAME, []);
1800
+ var [TreegridRowProvider, useTreegridRowContext] = createTreegridRowContext(TREEGRID_ROW_NAME);
1801
+ var PATH_SEPARATOR = "~";
1802
+ var PARENT_OF_SEPARATOR = " ";
1803
+ var TreegridRoot = /* @__PURE__ */ (0, import_react36.forwardRef)(({ asChild, classNames, children, style, gridTemplateColumns, ...props }, forwardedRef) => {
1804
+ const { tx } = useThemeContext();
1805
+ const Root5 = asChild ? import_react_slot9.Slot : import_react_primitive8.Primitive.div;
1806
+ const arrowNavigationAttrs = (0, import_react_tabster.useArrowNavigationGroup)({
1807
+ axis: "vertical",
1808
+ tabbable: false,
1809
+ circular: true
1810
+ });
1811
+ return /* @__PURE__ */ import_react36.default.createElement(Root5, {
1812
+ role: "treegrid",
1813
+ ...arrowNavigationAttrs,
1814
+ ...props,
1815
+ className: tx("treegrid.root", "treegrid", {}, classNames),
1816
+ style: {
1817
+ ...style,
1818
+ gridTemplateColumns
1819
+ },
1820
+ ref: forwardedRef
1821
+ }, children);
2501
1822
  });
2502
- DropdownMenuTrigger.displayName = TRIGGER_NAME2;
2503
- var VIRTUAL_TRIGGER_NAME = "DropdownMenuVirtualTrigger";
2504
- var DropdownMenuVirtualTrigger = (props) => {
2505
- const { __scopeDropdownMenu, virtualRef } = props;
2506
- const context = useDropdownMenuContext(VIRTUAL_TRIGGER_NAME, __scopeDropdownMenu);
2507
- const menuScope = useMenuScope(__scopeDropdownMenu);
2508
- (0, import_react38.useEffect)(() => {
2509
- if (virtualRef.current) {
2510
- context.triggerRef.current = virtualRef.current;
2511
- }
1823
+ var TreegridRow = /* @__PURE__ */ (0, import_react36.forwardRef)(({ __treegridRowScope, asChild, classNames, children, id, parentOf, open: propsOpen, defaultOpen, onOpenChange: propsOnOpenChange, ...props }, forwardedRef) => {
1824
+ const { tx } = useThemeContext();
1825
+ const Root5 = asChild ? import_react_slot9.Slot : import_react_primitive8.Primitive.div;
1826
+ const pathParts = id.split(PATH_SEPARATOR);
1827
+ const level = pathParts.length - 1;
1828
+ const [open, onOpenChange] = (0, import_react_use_controllable_state3.useControllableState)({
1829
+ prop: propsOpen,
1830
+ onChange: propsOnOpenChange,
1831
+ defaultProp: defaultOpen
2512
1832
  });
2513
- return /* @__PURE__ */ import_react38.default.createElement(MenuPrimitive.Anchor, {
2514
- ...menuScope,
2515
- virtualRef
1833
+ const focusableGroupAttrs = (0, import_react_tabster.useFocusableGroup)({
1834
+ tabBehavior: "limited"
2516
1835
  });
2517
- };
2518
- DropdownMenuVirtualTrigger.displayName = VIRTUAL_TRIGGER_NAME;
2519
- var PORTAL_NAME2 = "DropdownMenuPortal";
2520
- var DropdownMenuPortal = (props) => {
2521
- const { __scopeDropdownMenu, ...portalProps } = props;
2522
- const menuScope = useMenuScope(__scopeDropdownMenu);
2523
- return /* @__PURE__ */ import_react38.default.createElement(MenuPrimitive.Portal, {
2524
- ...menuScope,
2525
- ...portalProps
1836
+ const arrowGroupAttrs = (0, import_react_tabster.useArrowNavigationGroup)({
1837
+ axis: "horizontal",
1838
+ tabbable: false,
1839
+ circular: false,
1840
+ memorizeCurrent: false
2526
1841
  });
2527
- };
2528
- DropdownMenuPortal.displayName = PORTAL_NAME2;
2529
- var DropdownMenuViewport = /* @__PURE__ */ (0, import_react38.forwardRef)(({ classNames, asChild, children, ...props }, forwardedRef) => {
1842
+ return /* @__PURE__ */ import_react36.default.createElement(TreegridRowProvider, {
1843
+ open,
1844
+ onOpenChange,
1845
+ scope: __treegridRowScope
1846
+ }, /* @__PURE__ */ import_react36.default.createElement(Root5, {
1847
+ role: "row",
1848
+ "aria-level": level,
1849
+ className: tx("treegrid.row", "treegrid__row", {
1850
+ level
1851
+ }, classNames),
1852
+ ...parentOf && {
1853
+ "aria-expanded": open,
1854
+ "aria-owns": parentOf
1855
+ },
1856
+ tabIndex: 0,
1857
+ ...focusableGroupAttrs,
1858
+ ...props,
1859
+ id,
1860
+ ref: forwardedRef
1861
+ }, /* @__PURE__ */ import_react36.default.createElement("div", {
1862
+ role: "none",
1863
+ className: "contents",
1864
+ ...arrowGroupAttrs
1865
+ }, children)));
1866
+ });
1867
+ var TreegridCell = /* @__PURE__ */ (0, import_react36.forwardRef)(({ classNames, children, indent, ...props }, forwardedRef) => {
2530
1868
  const { tx } = useThemeContext();
2531
- const Root7 = asChild ? import_react_slot11.Slot : import_react_primitive10.Primitive.div;
2532
- return /* @__PURE__ */ import_react38.default.createElement(Root7, {
1869
+ return /* @__PURE__ */ import_react36.default.createElement("div", {
1870
+ role: "gridcell",
1871
+ className: tx("treegrid.cell", "treegrid__cell", {
1872
+ indent
1873
+ }, classNames),
2533
1874
  ...props,
2534
- className: tx("menu.viewport", "menu__viewport", {}, classNames),
2535
1875
  ref: forwardedRef
2536
1876
  }, children);
2537
1877
  });
2538
- var CONTENT_NAME2 = "DropdownMenuContent";
2539
- var DropdownMenuContent = /* @__PURE__ */ (0, import_react38.forwardRef)((props, forwardedRef) => {
2540
- const { __scopeDropdownMenu, classNames, collisionPadding = 8, ...contentProps } = props;
2541
- const { tx } = useThemeContext();
2542
- const context = useDropdownMenuContext(CONTENT_NAME2, __scopeDropdownMenu);
2543
- const elevation = useElevationContext();
2544
- const menuScope = useMenuScope(__scopeDropdownMenu);
2545
- const hasInteractedOutsideRef = (0, import_react38.useRef)(false);
2546
- const safeCollisionPadding = useSafeCollisionPadding(collisionPadding);
2547
- return /* @__PURE__ */ import_react38.default.createElement(MenuPrimitive.Content, {
2548
- id: context.contentId,
2549
- "aria-labelledby": context.triggerId,
2550
- ...menuScope,
2551
- ...contentProps,
2552
- collisionPadding: safeCollisionPadding,
2553
- ref: forwardedRef,
2554
- onCloseAutoFocus: (0, import_primitive2.composeEventHandlers)(props.onCloseAutoFocus, (event) => {
2555
- if (!hasInteractedOutsideRef.current) {
2556
- context.triggerRef.current?.focus();
1878
+ var Treegrid = {
1879
+ Root: TreegridRoot,
1880
+ Row: TreegridRow,
1881
+ Cell: TreegridCell,
1882
+ PARENT_OF_SEPARATOR,
1883
+ PATH_SEPARATOR,
1884
+ createTreegridRowScope,
1885
+ useTreegridRowContext
1886
+ };
1887
+ var MotionState;
1888
+ (function(MotionState2) {
1889
+ MotionState2[MotionState2["IDLE"] = 0] = "IDLE";
1890
+ MotionState2[MotionState2["DEBOUNCING"] = 1] = "DEBOUNCING";
1891
+ MotionState2[MotionState2["FOLLOWING"] = 2] = "FOLLOWING";
1892
+ })(MotionState || (MotionState = {}));
1893
+ var useSwipeToDismiss = (ref, {
1894
+ onDismiss,
1895
+ dismissThreshold = 64,
1896
+ debounceThreshold = 8,
1897
+ offset = 0
1898
+ /* side = 'inline-start' */
1899
+ }) => {
1900
+ const $root = ref.current;
1901
+ const [motionState, setMotionState] = (0, import_react38.useState)(0);
1902
+ const [gestureStartX, setGestureStartX] = (0, import_react38.useState)(0);
1903
+ const setIdle = (0, import_react38.useCallback)(() => {
1904
+ setMotionState(0);
1905
+ $root?.style.removeProperty("inset-inline-start");
1906
+ $root?.style.setProperty("transition-duration", "200ms");
1907
+ }, [
1908
+ $root
1909
+ ]);
1910
+ const setFollowing = (0, import_react38.useCallback)(() => {
1911
+ setMotionState(2);
1912
+ $root?.style.setProperty("transition-duration", "0ms");
1913
+ }, [
1914
+ $root
1915
+ ]);
1916
+ const handlePointerDown = (0, import_react38.useCallback)(({ screenX }) => {
1917
+ if (motionState === 0) {
1918
+ setMotionState(1);
1919
+ setGestureStartX(screenX);
1920
+ }
1921
+ }, [
1922
+ motionState
1923
+ ]);
1924
+ const handlePointerMove = (0, import_react38.useCallback)(({ screenX }) => {
1925
+ if ($root) {
1926
+ const delta = Math.min(screenX - gestureStartX, 0);
1927
+ switch (motionState) {
1928
+ case 2:
1929
+ if (Math.abs(delta) > dismissThreshold) {
1930
+ setIdle();
1931
+ onDismiss?.();
1932
+ } else {
1933
+ $root.style.setProperty("inset-inline-start", `${offset + delta}px`);
1934
+ }
1935
+ break;
1936
+ case 1:
1937
+ if (Math.abs(delta) > debounceThreshold) {
1938
+ setFollowing();
1939
+ }
1940
+ break;
2557
1941
  }
2558
- hasInteractedOutsideRef.current = false;
1942
+ }
1943
+ }, [
1944
+ $root,
1945
+ motionState,
1946
+ gestureStartX
1947
+ ]);
1948
+ const handlePointerUp = (0, import_react38.useCallback)(() => {
1949
+ setIdle();
1950
+ }, [
1951
+ setIdle
1952
+ ]);
1953
+ (0, import_react38.useEffect)(() => {
1954
+ $root?.addEventListener("pointerdown", handlePointerDown);
1955
+ return () => {
1956
+ $root?.removeEventListener("pointerdown", handlePointerDown);
1957
+ };
1958
+ }, [
1959
+ $root,
1960
+ handlePointerDown
1961
+ ]);
1962
+ (0, import_react38.useEffect)(() => {
1963
+ $root && document.documentElement.addEventListener("pointermove", handlePointerMove);
1964
+ return () => {
1965
+ document.documentElement.removeEventListener("pointermove", handlePointerMove);
1966
+ };
1967
+ }, [
1968
+ $root,
1969
+ handlePointerMove
1970
+ ]);
1971
+ (0, import_react38.useEffect)(() => {
1972
+ $root && document.documentElement.addEventListener("pointerup", handlePointerUp);
1973
+ return () => {
1974
+ document.documentElement.removeEventListener("pointerup", handlePointerUp);
1975
+ };
1976
+ }, [
1977
+ $root,
1978
+ handlePointerUp
1979
+ ]);
1980
+ };
1981
+ var __dxlog_file = "/home/runner/work/dxos/dxos/packages/ui/react-ui/src/components/Main/Main.tsx";
1982
+ var MAIN_ROOT_NAME = "MainRoot";
1983
+ var NAVIGATION_SIDEBAR_NAME = "NavigationSidebar";
1984
+ var COMPLEMENTARY_SIDEBAR_NAME = "ComplementarySidebar";
1985
+ var MAIN_NAME = "Main";
1986
+ var GENERIC_CONSUMER_NAME = "GenericConsumer";
1987
+ var landmarkAttr = "data-main-landmark";
1988
+ var useLandmarkMover = (propsOnKeyDown, landmark) => {
1989
+ const handleKeyDown = (0, import_react37.useCallback)((event) => {
1990
+ const target = event.target;
1991
+ if (event.target === event.currentTarget && event.key === "Tab" && target.hasAttribute(landmarkAttr)) {
2559
1992
  event.preventDefault();
2560
- }),
2561
- onInteractOutside: (0, import_primitive2.composeEventHandlers)(props.onInteractOutside, (event) => {
2562
- const originalEvent = event.detail.originalEvent;
2563
- const ctrlLeftClick = originalEvent.button === 0 && originalEvent.ctrlKey === true;
2564
- const isRightClick = originalEvent.button === 2 || ctrlLeftClick;
2565
- if (!context.modal || isRightClick) {
2566
- hasInteractedOutsideRef.current = true;
2567
- }
2568
- }),
2569
- className: tx("menu.content", "menu", {
2570
- elevation
2571
- }, classNames),
2572
- style: {
2573
- ...props.style,
2574
- // re-namespace exposed content custom properties
2575
- ...{
2576
- "--radix-dropdown-menu-content-transform-origin": "var(--radix-popper-transform-origin)",
2577
- "--radix-dropdown-menu-content-available-width": "var(--radix-popper-available-width)",
2578
- "--radix-dropdown-menu-content-available-height": "var(--radix-popper-available-height)",
2579
- "--radix-dropdown-menu-trigger-width": "var(--radix-popper-anchor-width)",
2580
- "--radix-dropdown-menu-trigger-height": "var(--radix-popper-anchor-height)"
2581
- }
1993
+ const landmarks = Array.from(document.querySelectorAll(`[${landmarkAttr}]:not([inert])`)).map((el) => el.hasAttribute(landmarkAttr) ? parseInt(el.getAttribute(landmarkAttr)) : NaN).sort();
1994
+ const l = landmarks.length;
1995
+ const cursor = landmarks.indexOf(parseInt(target.getAttribute(landmarkAttr)));
1996
+ const nextLandmark = landmarks[(cursor + l + (event.getModifierState("Shift") ? -1 : 1)) % l];
1997
+ document.querySelector(`[${landmarkAttr}="${nextLandmark}"]`)?.focus();
2582
1998
  }
2583
- });
2584
- });
2585
- DropdownMenuContent.displayName = CONTENT_NAME2;
2586
- var GROUP_NAME = "DropdownMenuGroup";
2587
- var DropdownMenuGroup = /* @__PURE__ */ (0, import_react38.forwardRef)((props, forwardedRef) => {
2588
- const { __scopeDropdownMenu, ...groupProps } = props;
2589
- const menuScope = useMenuScope(__scopeDropdownMenu);
2590
- return /* @__PURE__ */ import_react38.default.createElement(MenuPrimitive.Group, {
2591
- ...menuScope,
2592
- ...groupProps,
2593
- ref: forwardedRef
2594
- });
1999
+ propsOnKeyDown?.(event);
2000
+ }, [
2001
+ propsOnKeyDown
2002
+ ]);
2003
+ const focusableGroupAttrs = window ? {} : {
2004
+ tabBehavior: "limited",
2005
+ ignoreDefaultKeydown: {
2006
+ Tab: true
2007
+ }
2008
+ };
2009
+ return {
2010
+ onKeyDown: handleKeyDown,
2011
+ [landmarkAttr]: landmark,
2012
+ tabIndex: 0,
2013
+ ...focusableGroupAttrs
2014
+ };
2015
+ };
2016
+ var [MainProvider, useMainContext] = (0, import_react_context7.createContext)(MAIN_NAME, {
2017
+ resizing: false,
2018
+ navigationSidebarState: "closed",
2019
+ setNavigationSidebarState: (nextState) => {
2020
+ import_log.log.warn("Attempt to set sidebar state without initializing `MainRoot`", void 0, {
2021
+ F: __dxlog_file,
2022
+ L: 82,
2023
+ S: void 0,
2024
+ C: (f, a) => f(...a)
2025
+ });
2026
+ },
2027
+ complementarySidebarState: "closed",
2028
+ setComplementarySidebarState: (nextState) => {
2029
+ import_log.log.warn("Attempt to set sidebar state without initializing `MainRoot`", void 0, {
2030
+ F: __dxlog_file,
2031
+ L: 87,
2032
+ S: void 0,
2033
+ C: (f, a) => f(...a)
2034
+ });
2035
+ }
2595
2036
  });
2596
- DropdownMenuGroup.displayName = GROUP_NAME;
2597
- var LABEL_NAME = "DropdownMenuLabel";
2598
- var DropdownMenuGroupLabel = /* @__PURE__ */ (0, import_react38.forwardRef)((props, forwardedRef) => {
2599
- const { __scopeDropdownMenu, classNames, ...labelProps } = props;
2600
- const menuScope = useMenuScope(__scopeDropdownMenu);
2601
- const { tx } = useThemeContext();
2602
- return /* @__PURE__ */ import_react38.default.createElement(MenuPrimitive.Label, {
2603
- ...menuScope,
2604
- ...labelProps,
2605
- className: tx("menu.groupLabel", "menu__group__label", {}, classNames),
2606
- ref: forwardedRef
2037
+ var useSidebars = (consumerName = GENERIC_CONSUMER_NAME) => {
2038
+ const { setNavigationSidebarState, navigationSidebarState, setComplementarySidebarState, complementarySidebarState } = useMainContext(consumerName);
2039
+ return {
2040
+ navigationSidebarState,
2041
+ setNavigationSidebarState,
2042
+ toggleNavigationSidebar: (0, import_react37.useCallback)(() => setNavigationSidebarState(navigationSidebarState === "expanded" ? "closed" : "expanded"), [
2043
+ navigationSidebarState,
2044
+ setNavigationSidebarState
2045
+ ]),
2046
+ openNavigationSidebar: (0, import_react37.useCallback)(() => setNavigationSidebarState("expanded"), []),
2047
+ collapseNavigationSidebar: (0, import_react37.useCallback)(() => setNavigationSidebarState("collapsed"), []),
2048
+ closeNavigationSidebar: (0, import_react37.useCallback)(() => setNavigationSidebarState("closed"), []),
2049
+ complementarySidebarState,
2050
+ setComplementarySidebarState,
2051
+ toggleComplementarySidebar: (0, import_react37.useCallback)(() => setComplementarySidebarState(complementarySidebarState === "expanded" ? "closed" : "expanded"), [
2052
+ complementarySidebarState,
2053
+ setComplementarySidebarState
2054
+ ]),
2055
+ openComplementarySidebar: (0, import_react37.useCallback)(() => setComplementarySidebarState("expanded"), []),
2056
+ collapseComplementarySidebar: (0, import_react37.useCallback)(() => setComplementarySidebarState("collapsed"), []),
2057
+ closeComplementarySidebar: (0, import_react37.useCallback)(() => setComplementarySidebarState("closed"), [])
2058
+ };
2059
+ };
2060
+ var resizeDebounce = 3e3;
2061
+ var MainRoot = ({ navigationSidebarState: propsNavigationSidebarState, defaultNavigationSidebarState, onNavigationSidebarStateChange, complementarySidebarState: propsComplementarySidebarState, defaultComplementarySidebarState, onComplementarySidebarStateChange, children, ...props }) => {
2062
+ const [isLg] = (0, import_react_hooks4.useMediaQuery)("lg", {
2063
+ ssr: false
2607
2064
  });
2608
- });
2609
- DropdownMenuGroupLabel.displayName = LABEL_NAME;
2610
- var ITEM_NAME = "DropdownMenuItem";
2611
- var DropdownMenuItem = /* @__PURE__ */ (0, import_react38.forwardRef)((props, forwardedRef) => {
2612
- const { __scopeDropdownMenu, classNames, ...itemProps } = props;
2613
- const menuScope = useMenuScope(__scopeDropdownMenu);
2614
- const { tx } = useThemeContext();
2615
- return /* @__PURE__ */ import_react38.default.createElement(MenuPrimitive.Item, {
2616
- ...menuScope,
2617
- ...itemProps,
2618
- className: tx("menu.item", "menu__item", {}, classNames),
2619
- ref: forwardedRef
2065
+ const [navigationSidebarState = isLg ? "expanded" : "collapsed", setNavigationSidebarState] = (0, import_react_use_controllable_state4.useControllableState)({
2066
+ prop: propsNavigationSidebarState,
2067
+ defaultProp: defaultNavigationSidebarState,
2068
+ onChange: onNavigationSidebarStateChange
2620
2069
  });
2621
- });
2622
- DropdownMenuItem.displayName = ITEM_NAME;
2623
- var CHECKBOX_ITEM_NAME = "DropdownMenuCheckboxItem";
2624
- var DropdownMenuCheckboxItem = /* @__PURE__ */ (0, import_react38.forwardRef)((props, forwardedRef) => {
2625
- const { __scopeDropdownMenu, classNames, ...checkboxItemProps } = props;
2626
- const menuScope = useMenuScope(__scopeDropdownMenu);
2627
- const { tx } = useThemeContext();
2628
- return /* @__PURE__ */ import_react38.default.createElement(MenuPrimitive.CheckboxItem, {
2629
- ...menuScope,
2630
- ...checkboxItemProps,
2631
- className: tx("menu.item", "menu__item--checkbox", {}, classNames),
2632
- ref: forwardedRef
2070
+ const [complementarySidebarState = isLg ? "expanded" : "collapsed", setComplementarySidebarState] = (0, import_react_use_controllable_state4.useControllableState)({
2071
+ prop: propsComplementarySidebarState,
2072
+ defaultProp: defaultComplementarySidebarState,
2073
+ onChange: onComplementarySidebarStateChange
2633
2074
  });
2634
- });
2635
- DropdownMenuCheckboxItem.displayName = CHECKBOX_ITEM_NAME;
2636
- var RADIO_GROUP_NAME = "DropdownMenuRadioGroup";
2637
- var DropdownMenuRadioGroup = /* @__PURE__ */ (0, import_react38.forwardRef)((props, forwardedRef) => {
2638
- const { __scopeDropdownMenu, ...radioGroupProps } = props;
2639
- const menuScope = useMenuScope(__scopeDropdownMenu);
2640
- return /* @__PURE__ */ import_react38.default.createElement(MenuPrimitive.RadioGroup, {
2641
- ...menuScope,
2642
- ...radioGroupProps,
2643
- ref: forwardedRef
2075
+ const [resizing, setResizing] = (0, import_react37.useState)(false);
2076
+ const resizeInterval = (0, import_react37.useRef)(null);
2077
+ const handleResize = (0, import_react37.useCallback)(() => {
2078
+ setResizing(true);
2079
+ if (resizeInterval.current) {
2080
+ clearTimeout(resizeInterval.current);
2081
+ }
2082
+ resizeInterval.current = setTimeout(() => {
2083
+ setResizing(false);
2084
+ resizeInterval.current = null;
2085
+ }, resizeDebounce);
2086
+ }, []);
2087
+ (0, import_react37.useEffect)(() => {
2088
+ window.addEventListener("resize", handleResize);
2089
+ return () => window.removeEventListener("resize", handleResize);
2090
+ }, [
2091
+ handleResize
2092
+ ]);
2093
+ return /* @__PURE__ */ import_react37.default.createElement(MainProvider, {
2094
+ ...props,
2095
+ navigationSidebarState,
2096
+ setNavigationSidebarState,
2097
+ complementarySidebarState,
2098
+ setComplementarySidebarState,
2099
+ resizing
2100
+ }, children);
2101
+ };
2102
+ MainRoot.displayName = MAIN_ROOT_NAME;
2103
+ var handleOpenAutoFocus = (event) => {
2104
+ !document.body.hasAttribute("data-is-keyboard") && event.preventDefault();
2105
+ };
2106
+ var MainSidebar = /* @__PURE__ */ (0, import_react37.forwardRef)(({ classNames, children, swipeToDismiss, onOpenAutoFocus, state, resizing, onStateChange, side, label, ...props }, forwardedRef) => {
2107
+ const [isLg] = (0, import_react_hooks4.useMediaQuery)("lg", {
2108
+ ssr: false
2644
2109
  });
2645
- });
2646
- DropdownMenuRadioGroup.displayName = RADIO_GROUP_NAME;
2647
- var RADIO_ITEM_NAME = "DropdownMenuRadioItem";
2648
- var DropdownMenuRadioItem = /* @__PURE__ */ (0, import_react38.forwardRef)((props, forwardedRef) => {
2649
- const { __scopeDropdownMenu, ...radioItemProps } = props;
2650
- const menuScope = useMenuScope(__scopeDropdownMenu);
2651
- return /* @__PURE__ */ import_react38.default.createElement(MenuPrimitive.RadioItem, {
2652
- ...menuScope,
2653
- ...radioItemProps,
2654
- ref: forwardedRef
2110
+ const { tx } = useThemeContext();
2111
+ const { t } = useTranslation();
2112
+ const ref = (0, import_react_hooks4.useForwardedRef)(forwardedRef);
2113
+ const noopRef = (0, import_react37.useRef)(null);
2114
+ useSwipeToDismiss(swipeToDismiss ? ref : noopRef, {
2115
+ onDismiss: () => onStateChange?.("closed")
2655
2116
  });
2117
+ const handleKeyDown = (0, import_react37.useCallback)((event) => {
2118
+ if (event.key === "Escape") {
2119
+ event.target.closest("[data-tabster]")?.focus();
2120
+ }
2121
+ props.onKeyDown?.(event);
2122
+ }, [
2123
+ props.onKeyDown
2124
+ ]);
2125
+ const Root5 = isLg ? import_react_primitive9.Primitive.div : import_react_dialog2.DialogContent;
2126
+ return /* @__PURE__ */ import_react37.default.createElement(import_react_dialog2.Root, {
2127
+ open: state !== "closed",
2128
+ "aria-label": toLocalizedString(label, t),
2129
+ modal: false
2130
+ }, !isLg && /* @__PURE__ */ import_react37.default.createElement(import_react_dialog2.DialogTitle, {
2131
+ className: "sr-only"
2132
+ }, toLocalizedString(label, t)), /* @__PURE__ */ import_react37.default.createElement(Root5, {
2133
+ ...!isLg && {
2134
+ forceMount: true,
2135
+ tabIndex: -1,
2136
+ onOpenAutoFocus: onOpenAutoFocus ?? handleOpenAutoFocus
2137
+ },
2138
+ ...props,
2139
+ "data-side": side === "inline-end" ? "ie" : "is",
2140
+ "data-state": state,
2141
+ "data-resizing": resizing ? "true" : "false",
2142
+ className: tx("main.sidebar", "main__sidebar", {}, classNames),
2143
+ onKeyDown: handleKeyDown,
2144
+ ...state === "closed" && {
2145
+ inert: "true"
2146
+ },
2147
+ ref
2148
+ }, children));
2656
2149
  });
2657
- DropdownMenuRadioItem.displayName = RADIO_ITEM_NAME;
2658
- var INDICATOR_NAME = "DropdownMenuItemIndicator";
2659
- var DropdownMenuItemIndicator = /* @__PURE__ */ (0, import_react38.forwardRef)((props, forwardedRef) => {
2660
- const { __scopeDropdownMenu, ...itemIndicatorProps } = props;
2661
- const menuScope = useMenuScope(__scopeDropdownMenu);
2662
- return /* @__PURE__ */ import_react38.default.createElement(MenuPrimitive.ItemIndicator, {
2663
- ...menuScope,
2664
- ...itemIndicatorProps,
2150
+ var MainNavigationSidebar = /* @__PURE__ */ (0, import_react37.forwardRef)((props, forwardedRef) => {
2151
+ const { navigationSidebarState, setNavigationSidebarState, resizing } = useMainContext(NAVIGATION_SIDEBAR_NAME);
2152
+ const mover = useLandmarkMover(props.onKeyDown, "0");
2153
+ return /* @__PURE__ */ import_react37.default.createElement(MainSidebar, {
2154
+ ...mover,
2155
+ ...props,
2156
+ state: navigationSidebarState,
2157
+ onStateChange: setNavigationSidebarState,
2158
+ resizing,
2159
+ side: "inline-start",
2665
2160
  ref: forwardedRef
2666
2161
  });
2667
2162
  });
2668
- DropdownMenuItemIndicator.displayName = INDICATOR_NAME;
2669
- var SEPARATOR_NAME = "DropdownMenuSeparator";
2670
- var DropdownMenuSeparator = /* @__PURE__ */ (0, import_react38.forwardRef)((props, forwardedRef) => {
2671
- const { __scopeDropdownMenu, classNames, ...separatorProps } = props;
2672
- const menuScope = useMenuScope(__scopeDropdownMenu);
2673
- const { tx } = useThemeContext();
2674
- return /* @__PURE__ */ import_react38.default.createElement(MenuPrimitive.Separator, {
2675
- ...menuScope,
2676
- ...separatorProps,
2677
- className: tx("menu.separator", "menu__item", {}, classNames),
2163
+ MainNavigationSidebar.displayName = NAVIGATION_SIDEBAR_NAME;
2164
+ var MainComplementarySidebar = /* @__PURE__ */ (0, import_react37.forwardRef)((props, forwardedRef) => {
2165
+ const { complementarySidebarState, setComplementarySidebarState, resizing } = useMainContext(COMPLEMENTARY_SIDEBAR_NAME);
2166
+ const mover = useLandmarkMover(props.onKeyDown, "2");
2167
+ return /* @__PURE__ */ import_react37.default.createElement(MainSidebar, {
2168
+ ...mover,
2169
+ ...props,
2170
+ state: complementarySidebarState,
2171
+ onStateChange: setComplementarySidebarState,
2172
+ resizing,
2173
+ side: "inline-end",
2678
2174
  ref: forwardedRef
2679
2175
  });
2680
2176
  });
2681
- DropdownMenuSeparator.displayName = SEPARATOR_NAME;
2682
- var ARROW_NAME2 = "DropdownMenuArrow";
2683
- var DropdownMenuArrow = /* @__PURE__ */ (0, import_react38.forwardRef)((props, forwardedRef) => {
2684
- const { __scopeDropdownMenu, classNames, ...arrowProps } = props;
2685
- const menuScope = useMenuScope(__scopeDropdownMenu);
2177
+ MainNavigationSidebar.displayName = NAVIGATION_SIDEBAR_NAME;
2178
+ var MainContent = /* @__PURE__ */ (0, import_react37.forwardRef)(({ asChild, classNames, bounce, handlesFocus, children, role, ...props }, forwardedRef) => {
2179
+ const { navigationSidebarState, complementarySidebarState } = useMainContext(MAIN_NAME);
2686
2180
  const { tx } = useThemeContext();
2687
- return /* @__PURE__ */ import_react38.default.createElement(MenuPrimitive.Arrow, {
2688
- ...menuScope,
2689
- ...arrowProps,
2690
- className: tx("menu.arrow", "menu__arrow", {}, classNames),
2181
+ const Root5 = asChild ? import_react_slot10.Slot : role ? "div" : "main";
2182
+ const mover = useLandmarkMover(props.onKeyDown, "1");
2183
+ return /* @__PURE__ */ import_react37.default.createElement(Root5, {
2184
+ role,
2185
+ ...handlesFocus && {
2186
+ ...mover
2187
+ },
2188
+ ...props,
2189
+ "data-sidebar-inline-start-state": navigationSidebarState,
2190
+ "data-sidebar-inline-end-state": complementarySidebarState,
2191
+ className: tx("main.content", "main", {
2192
+ bounce,
2193
+ handlesFocus
2194
+ }, classNames),
2691
2195
  ref: forwardedRef
2692
- });
2196
+ }, children);
2693
2197
  });
2694
- DropdownMenuArrow.displayName = ARROW_NAME2;
2695
- var DropdownMenuSub = (props) => {
2696
- const { __scopeDropdownMenu, children, open: openProp, onOpenChange, defaultOpen } = props;
2697
- const menuScope = useMenuScope(__scopeDropdownMenu);
2698
- const [open = false, setOpen] = (0, import_react_use_controllable_state5.useControllableState)({
2699
- prop: openProp,
2700
- defaultProp: defaultOpen,
2701
- onChange: onOpenChange
2198
+ MainContent.displayName = MAIN_NAME;
2199
+ var MainOverlay = /* @__PURE__ */ (0, import_react37.forwardRef)(({ classNames, ...props }, forwardedRef) => {
2200
+ const [isLg] = (0, import_react_hooks4.useMediaQuery)("lg", {
2201
+ ssr: false
2702
2202
  });
2703
- return /* @__PURE__ */ import_react38.default.createElement(MenuPrimitive.Sub, {
2704
- ...menuScope,
2705
- open,
2706
- onOpenChange: setOpen
2707
- }, children);
2708
- };
2709
- var SUB_TRIGGER_NAME = "DropdownMenuSubTrigger";
2710
- var DropdownMenuSubTrigger = /* @__PURE__ */ (0, import_react38.forwardRef)((props, forwardedRef) => {
2711
- const { __scopeDropdownMenu, ...subTriggerProps } = props;
2712
- const menuScope = useMenuScope(__scopeDropdownMenu);
2713
- return /* @__PURE__ */ import_react38.default.createElement(MenuPrimitive.SubTrigger, {
2714
- ...menuScope,
2715
- ...subTriggerProps,
2203
+ const { navigationSidebarState, setNavigationSidebarState, complementarySidebarState, setComplementarySidebarState } = useMainContext(MAIN_NAME);
2204
+ const { tx } = useThemeContext();
2205
+ return /* @__PURE__ */ import_react37.default.createElement("div", {
2206
+ onClick: () => {
2207
+ setNavigationSidebarState("collapsed");
2208
+ setComplementarySidebarState("collapsed");
2209
+ },
2210
+ ...props,
2211
+ className: tx("main.overlay", "main__overlay", {
2212
+ isLg,
2213
+ inlineStartSidebarOpen: navigationSidebarState,
2214
+ inlineEndSidebarOpen: complementarySidebarState
2215
+ }, classNames),
2216
+ "data-state": navigationSidebarState === "expanded" || complementarySidebarState === "expanded" ? "open" : "closed",
2217
+ "aria-hidden": "true",
2716
2218
  ref: forwardedRef
2717
2219
  });
2718
2220
  });
2719
- DropdownMenuSubTrigger.displayName = SUB_TRIGGER_NAME;
2720
- var SUB_CONTENT_NAME = "DropdownMenuSubContent";
2721
- var DropdownMenuSubContent = /* @__PURE__ */ (0, import_react38.forwardRef)((props, forwardedRef) => {
2722
- const { __scopeDropdownMenu, ...subContentProps } = props;
2723
- const menuScope = useMenuScope(__scopeDropdownMenu);
2724
- return /* @__PURE__ */ import_react38.default.createElement(MenuPrimitive.SubContent, {
2725
- ...menuScope,
2726
- ...subContentProps,
2727
- ref: forwardedRef,
2728
- style: {
2729
- ...props.style,
2730
- // re-namespace exposed content custom properties
2731
- ...{
2732
- "--radix-dropdown-menu-content-transform-origin": "var(--radix-popper-transform-origin)",
2733
- "--radix-dropdown-menu-content-available-width": "var(--radix-popper-available-width)",
2734
- "--radix-dropdown-menu-content-available-height": "var(--radix-popper-available-height)",
2735
- "--radix-dropdown-menu-trigger-width": "var(--radix-popper-anchor-width)",
2736
- "--radix-dropdown-menu-trigger-height": "var(--radix-popper-anchor-height)"
2737
- }
2738
- }
2739
- });
2740
- });
2741
- DropdownMenuSubContent.displayName = SUB_CONTENT_NAME;
2742
- var DropdownMenu = {
2743
- Root: DropdownMenuRoot,
2744
- Trigger: DropdownMenuTrigger,
2745
- VirtualTrigger: DropdownMenuVirtualTrigger,
2746
- Portal: DropdownMenuPortal,
2747
- Content: DropdownMenuContent,
2748
- Viewport: DropdownMenuViewport,
2749
- Group: DropdownMenuGroup,
2750
- GroupLabel: DropdownMenuGroupLabel,
2751
- Item: DropdownMenuItem,
2752
- CheckboxItem: DropdownMenuCheckboxItem,
2753
- RadioGroup: DropdownMenuRadioGroup,
2754
- RadioItem: DropdownMenuRadioItem,
2755
- ItemIndicator: DropdownMenuItemIndicator,
2756
- Separator: DropdownMenuSeparator,
2757
- Arrow: DropdownMenuArrow,
2758
- Sub: DropdownMenuSub,
2759
- SubTrigger: DropdownMenuSubTrigger,
2760
- SubContent: DropdownMenuSubContent
2221
+ var Main = {
2222
+ Root: MainRoot,
2223
+ Content: MainContent,
2224
+ Overlay: MainOverlay,
2225
+ NavigationSidebar: MainNavigationSidebar,
2226
+ ComplementarySidebar: MainComplementarySidebar
2761
2227
  };
2762
- var useDropdownMenuMenuScope = useMenuScope;
2763
2228
  var MESSAGE_NAME = "Message";
2764
- var [MessageProvider, useMessageContext] = (0, import_react_context9.createContext)(MESSAGE_NAME);
2229
+ var [MessageProvider, useMessageContext] = (0, import_react_context8.createContext)(MESSAGE_NAME);
2765
2230
  var MessageRoot = /* @__PURE__ */ (0, import_react39.forwardRef)(({ asChild, valence, elevation: propsElevation, className, titleId: propsTitleId, descriptionId: propsDescriptionId, children, ...props }, forwardedRef) => {
2766
2231
  const { tx } = useThemeContext();
2767
2232
  const titleId = (0, import_react_hooks5.useId)("message__title", propsTitleId);
2768
2233
  const descriptionId = (0, import_react_hooks5.useId)("message__description", propsDescriptionId);
2769
2234
  const elevation = useElevationContext(propsElevation);
2770
- const Root7 = asChild ? import_react_slot12.Slot : import_react_primitive11.Primitive.div;
2235
+ const Root5 = asChild ? import_react_slot11.Slot : import_react_primitive10.Primitive.div;
2771
2236
  return /* @__PURE__ */ import_react39.default.createElement(MessageProvider, {
2772
2237
  titleId,
2773
2238
  descriptionId
2774
- }, /* @__PURE__ */ import_react39.default.createElement(Root7, {
2239
+ }, /* @__PURE__ */ import_react39.default.createElement(Root5, {
2775
2240
  ...props,
2776
2241
  className: tx("message.root", "message", {
2777
2242
  valence,
@@ -2787,8 +2252,8 @@ var MESSAGE_TITLE_NAME = "MessageTitle";
2787
2252
  var MessageTitle = /* @__PURE__ */ (0, import_react39.forwardRef)(({ asChild, className, children, ...props }, forwardedRef) => {
2788
2253
  const { tx } = useThemeContext();
2789
2254
  const { titleId } = useMessageContext(MESSAGE_TITLE_NAME);
2790
- const Root7 = asChild ? import_react_slot12.Slot : import_react_primitive11.Primitive.h2;
2791
- return /* @__PURE__ */ import_react39.default.createElement(Root7, {
2255
+ const Root5 = asChild ? import_react_slot11.Slot : import_react_primitive10.Primitive.h2;
2256
+ return /* @__PURE__ */ import_react39.default.createElement(Root5, {
2792
2257
  ...props,
2793
2258
  className: tx("message.title", "message__title", {}, className),
2794
2259
  id: titleId,
@@ -2800,8 +2265,8 @@ var MESSAGE_BODY_NAME = "MessageBody";
2800
2265
  var MessageBody = /* @__PURE__ */ (0, import_react39.forwardRef)(({ asChild, className, children, ...props }, forwardedRef) => {
2801
2266
  const { tx } = useThemeContext();
2802
2267
  const { descriptionId } = useMessageContext(MESSAGE_BODY_NAME);
2803
- const Root7 = asChild ? import_react_slot12.Slot : import_react_primitive11.Primitive.p;
2804
- return /* @__PURE__ */ import_react39.default.createElement(Root7, {
2268
+ const Root5 = asChild ? import_react_slot11.Slot : import_react_primitive10.Primitive.p;
2269
+ return /* @__PURE__ */ import_react39.default.createElement(Root5, {
2805
2270
  ...props,
2806
2271
  className: tx("message.body", "message__body", {}, className),
2807
2272
  id: descriptionId,
@@ -2815,24 +2280,24 @@ var Message = {
2815
2280
  Body: MessageBody
2816
2281
  };
2817
2282
  var POPOVER_NAME = "Popover";
2818
- var [createPopoverContext, createPopoverScope] = (0, import_react_context10.createContextScope)(POPOVER_NAME, [
2819
- import_react_popper2.createPopperScope
2283
+ var [createPopoverContext, createPopoverScope] = (0, import_react_context9.createContextScope)(POPOVER_NAME, [
2284
+ import_react_popper.createPopperScope
2820
2285
  ]);
2821
- var usePopperScope2 = (0, import_react_popper2.createPopperScope)();
2286
+ var usePopperScope = (0, import_react_popper.createPopperScope)();
2822
2287
  var [PopoverProvider, usePopoverContext] = createPopoverContext(POPOVER_NAME);
2823
2288
  var PopoverRoot = (props) => {
2824
2289
  const { __scopePopover, children, open: openProp, defaultOpen, onOpenChange, modal = false } = props;
2825
- const popperScope = usePopperScope2(__scopePopover);
2290
+ const popperScope = usePopperScope(__scopePopover);
2826
2291
  const triggerRef = (0, import_react40.useRef)(null);
2827
2292
  const [hasCustomAnchor, setHasCustomAnchor] = (0, import_react40.useState)(false);
2828
- const [open = false, setOpen] = (0, import_react_use_controllable_state6.useControllableState)({
2293
+ const [open = false, setOpen] = (0, import_react_use_controllable_state5.useControllableState)({
2829
2294
  prop: openProp,
2830
2295
  defaultProp: defaultOpen,
2831
2296
  onChange: onOpenChange
2832
2297
  });
2833
- return /* @__PURE__ */ import_react40.default.createElement(PopperPrimitive2.Root, popperScope, /* @__PURE__ */ import_react40.default.createElement(PopoverProvider, {
2298
+ return /* @__PURE__ */ import_react40.default.createElement(PopperPrimitive.Root, popperScope, /* @__PURE__ */ import_react40.default.createElement(PopoverProvider, {
2834
2299
  scope: __scopePopover,
2835
- contentId: (0, import_react_id3.useId)(),
2300
+ contentId: (0, import_react_id2.useId)(),
2836
2301
  triggerRef,
2837
2302
  open,
2838
2303
  onOpenChange: setOpen,
@@ -2850,7 +2315,7 @@ var ANCHOR_NAME = "PopoverAnchor";
2850
2315
  var PopoverAnchor = /* @__PURE__ */ (0, import_react40.forwardRef)((props, forwardedRef) => {
2851
2316
  const { __scopePopover, ...anchorProps } = props;
2852
2317
  const context = usePopoverContext(ANCHOR_NAME, __scopePopover);
2853
- const popperScope = usePopperScope2(__scopePopover);
2318
+ const popperScope = usePopperScope(__scopePopover);
2854
2319
  const { onCustomAnchorAdd, onCustomAnchorRemove } = context;
2855
2320
  (0, import_react40.useEffect)(() => {
2856
2321
  onCustomAnchorAdd();
@@ -2859,20 +2324,20 @@ var PopoverAnchor = /* @__PURE__ */ (0, import_react40.forwardRef)((props, forwa
2859
2324
  onCustomAnchorAdd,
2860
2325
  onCustomAnchorRemove
2861
2326
  ]);
2862
- return /* @__PURE__ */ import_react40.default.createElement(PopperPrimitive2.Anchor, {
2327
+ return /* @__PURE__ */ import_react40.default.createElement(PopperPrimitive.Anchor, {
2863
2328
  ...popperScope,
2864
2329
  ...anchorProps,
2865
2330
  ref: forwardedRef
2866
2331
  });
2867
2332
  });
2868
2333
  PopoverAnchor.displayName = ANCHOR_NAME;
2869
- var TRIGGER_NAME3 = "PopoverTrigger";
2334
+ var TRIGGER_NAME2 = "PopoverTrigger";
2870
2335
  var PopoverTrigger = /* @__PURE__ */ (0, import_react40.forwardRef)((props, forwardedRef) => {
2871
2336
  const { __scopePopover, ...triggerProps } = props;
2872
- const context = usePopoverContext(TRIGGER_NAME3, __scopePopover);
2873
- const popperScope = usePopperScope2(__scopePopover);
2874
- const composedTriggerRef = (0, import_react_compose_refs3.useComposedRefs)(forwardedRef, context.triggerRef);
2875
- const trigger = /* @__PURE__ */ import_react40.default.createElement(import_react_primitive12.Primitive.button, {
2337
+ const context = usePopoverContext(TRIGGER_NAME2, __scopePopover);
2338
+ const popperScope = usePopperScope(__scopePopover);
2339
+ const composedTriggerRef = (0, import_react_compose_refs2.useComposedRefs)(forwardedRef, context.triggerRef);
2340
+ const trigger = /* @__PURE__ */ import_react40.default.createElement(import_react_primitive11.Primitive.button, {
2876
2341
  type: "button",
2877
2342
  "aria-haspopup": "dialog",
2878
2343
  "aria-expanded": context.open,
@@ -2880,54 +2345,54 @@ var PopoverTrigger = /* @__PURE__ */ (0, import_react40.forwardRef)((props, forw
2880
2345
  "data-state": getState(context.open),
2881
2346
  ...triggerProps,
2882
2347
  ref: composedTriggerRef,
2883
- onClick: (0, import_primitive3.composeEventHandlers)(props.onClick, context.onOpenToggle)
2348
+ onClick: (0, import_primitive2.composeEventHandlers)(props.onClick, context.onOpenToggle)
2884
2349
  });
2885
- return context.hasCustomAnchor ? trigger : /* @__PURE__ */ import_react40.default.createElement(PopperPrimitive2.Anchor, {
2350
+ return context.hasCustomAnchor ? trigger : /* @__PURE__ */ import_react40.default.createElement(PopperPrimitive.Anchor, {
2886
2351
  asChild: true,
2887
2352
  ...popperScope
2888
2353
  }, trigger);
2889
2354
  });
2890
- PopoverTrigger.displayName = TRIGGER_NAME3;
2355
+ PopoverTrigger.displayName = TRIGGER_NAME2;
2891
2356
  var VIRTUAL_TRIGGER_NAME2 = "PopoverVirtualTrigger";
2892
2357
  var PopoverVirtualTrigger = (props) => {
2893
2358
  const { __scopePopover, virtualRef } = props;
2894
2359
  const context = usePopoverContext(VIRTUAL_TRIGGER_NAME2, __scopePopover);
2895
- const popperScope = usePopperScope2(__scopePopover);
2360
+ const popperScope = usePopperScope(__scopePopover);
2896
2361
  (0, import_react40.useEffect)(() => {
2897
2362
  if (virtualRef.current) {
2898
2363
  context.triggerRef.current = virtualRef.current;
2899
2364
  }
2900
2365
  });
2901
- return /* @__PURE__ */ import_react40.default.createElement(PopperPrimitive2.Anchor, {
2366
+ return /* @__PURE__ */ import_react40.default.createElement(PopperPrimitive.Anchor, {
2902
2367
  ...popperScope,
2903
2368
  virtualRef
2904
2369
  });
2905
2370
  };
2906
2371
  PopoverVirtualTrigger.displayName = VIRTUAL_TRIGGER_NAME2;
2907
- var PORTAL_NAME3 = "PopoverPortal";
2908
- var [PortalProvider2, usePortalContext2] = createPopoverContext(PORTAL_NAME3, {
2372
+ var PORTAL_NAME2 = "PopoverPortal";
2373
+ var [PortalProvider, usePortalContext] = createPopoverContext(PORTAL_NAME2, {
2909
2374
  forceMount: void 0
2910
2375
  });
2911
2376
  var PopoverPortal = (props) => {
2912
2377
  const { __scopePopover, forceMount, children, container } = props;
2913
- const context = usePopoverContext(PORTAL_NAME3, __scopePopover);
2914
- return /* @__PURE__ */ import_react40.default.createElement(PortalProvider2, {
2378
+ const context = usePopoverContext(PORTAL_NAME2, __scopePopover);
2379
+ return /* @__PURE__ */ import_react40.default.createElement(PortalProvider, {
2915
2380
  scope: __scopePopover,
2916
2381
  forceMount
2917
- }, /* @__PURE__ */ import_react40.default.createElement(import_react_presence2.Presence, {
2382
+ }, /* @__PURE__ */ import_react40.default.createElement(import_react_presence.Presence, {
2918
2383
  present: forceMount || context.open
2919
- }, /* @__PURE__ */ import_react40.default.createElement(import_react_portal2.Portal, {
2384
+ }, /* @__PURE__ */ import_react40.default.createElement(import_react_portal.Portal, {
2920
2385
  asChild: true,
2921
2386
  container
2922
2387
  }, children)));
2923
2388
  };
2924
- PopoverPortal.displayName = PORTAL_NAME3;
2925
- var CONTENT_NAME3 = "PopoverContent";
2389
+ PopoverPortal.displayName = PORTAL_NAME2;
2390
+ var CONTENT_NAME2 = "PopoverContent";
2926
2391
  var PopoverContent = /* @__PURE__ */ (0, import_react40.forwardRef)((props, forwardedRef) => {
2927
- const portalContext = usePortalContext2(CONTENT_NAME3, props.__scopePopover);
2392
+ const portalContext = usePortalContext(CONTENT_NAME2, props.__scopePopover);
2928
2393
  const { forceMount = portalContext.forceMount, ...contentProps } = props;
2929
- const context = usePopoverContext(CONTENT_NAME3, props.__scopePopover);
2930
- return /* @__PURE__ */ import_react40.default.createElement(import_react_presence2.Presence, {
2394
+ const context = usePopoverContext(CONTENT_NAME2, props.__scopePopover);
2395
+ return /* @__PURE__ */ import_react40.default.createElement(import_react_presence.Presence, {
2931
2396
  present: forceMount || context.open
2932
2397
  }, context.modal ? /* @__PURE__ */ import_react40.default.createElement(PopoverContentModal, {
2933
2398
  ...contentProps,
@@ -2937,11 +2402,11 @@ var PopoverContent = /* @__PURE__ */ (0, import_react40.forwardRef)((props, forw
2937
2402
  ref: forwardedRef
2938
2403
  }));
2939
2404
  });
2940
- PopoverContent.displayName = CONTENT_NAME3;
2405
+ PopoverContent.displayName = CONTENT_NAME2;
2941
2406
  var PopoverContentModal = /* @__PURE__ */ (0, import_react40.forwardRef)((props, forwardedRef) => {
2942
- const context = usePopoverContext(CONTENT_NAME3, props.__scopePopover);
2407
+ const context = usePopoverContext(CONTENT_NAME2, props.__scopePopover);
2943
2408
  const contentRef = (0, import_react40.useRef)(null);
2944
- const composedRefs = (0, import_react_compose_refs3.useComposedRefs)(forwardedRef, contentRef);
2409
+ const composedRefs = (0, import_react_compose_refs2.useComposedRefs)(forwardedRef, contentRef);
2945
2410
  const isRightClickOutsideRef = (0, import_react40.useRef)(false);
2946
2411
  (0, import_react40.useEffect)(() => {
2947
2412
  const content = contentRef.current;
@@ -2950,7 +2415,7 @@ var PopoverContentModal = /* @__PURE__ */ (0, import_react40.forwardRef)((props,
2950
2415
  }
2951
2416
  }, []);
2952
2417
  return /* @__PURE__ */ import_react40.default.createElement(import_react_remove_scroll.RemoveScroll, {
2953
- as: import_react_slot13.Slot,
2418
+ as: import_react_slot12.Slot,
2954
2419
  allowPinchZoom: true
2955
2420
  }, /* @__PURE__ */ import_react40.default.createElement(PopoverContentImpl, {
2956
2421
  ...props,
@@ -2959,13 +2424,13 @@ var PopoverContentModal = /* @__PURE__ */ (0, import_react40.forwardRef)((props,
2959
2424
  // (closed !== unmounted when animating out)
2960
2425
  trapFocus: context.open,
2961
2426
  disableOutsidePointerEvents: true,
2962
- onCloseAutoFocus: (0, import_primitive3.composeEventHandlers)(props.onCloseAutoFocus, (event) => {
2427
+ onCloseAutoFocus: (0, import_primitive2.composeEventHandlers)(props.onCloseAutoFocus, (event) => {
2963
2428
  event.preventDefault();
2964
2429
  if (!isRightClickOutsideRef.current) {
2965
2430
  context.triggerRef.current?.focus();
2966
2431
  }
2967
2432
  }),
2968
- onPointerDownOutside: (0, import_primitive3.composeEventHandlers)(props.onPointerDownOutside, (event) => {
2433
+ onPointerDownOutside: (0, import_primitive2.composeEventHandlers)(props.onPointerDownOutside, (event) => {
2969
2434
  const originalEvent = event.detail.originalEvent;
2970
2435
  const ctrlLeftClick = originalEvent.button === 0 && originalEvent.ctrlKey === true;
2971
2436
  const isRightClick = originalEvent.button === 2 || ctrlLeftClick;
@@ -2975,13 +2440,13 @@ var PopoverContentModal = /* @__PURE__ */ (0, import_react40.forwardRef)((props,
2975
2440
  }),
2976
2441
  // When focus is trapped, a `focusout` event may still happen.
2977
2442
  // We make sure we don't trigger our `onDismiss` in such case.
2978
- onFocusOutside: (0, import_primitive3.composeEventHandlers)(props.onFocusOutside, (event) => event.preventDefault(), {
2443
+ onFocusOutside: (0, import_primitive2.composeEventHandlers)(props.onFocusOutside, (event) => event.preventDefault(), {
2979
2444
  checkForDefaultPrevented: false
2980
2445
  })
2981
2446
  }));
2982
2447
  });
2983
2448
  var PopoverContentNonModal = /* @__PURE__ */ (0, import_react40.forwardRef)((props, forwardedRef) => {
2984
- const context = usePopoverContext(CONTENT_NAME3, props.__scopePopover);
2449
+ const context = usePopoverContext(CONTENT_NAME2, props.__scopePopover);
2985
2450
  const hasInteractedOutsideRef = (0, import_react40.useRef)(false);
2986
2451
  const hasPointerDownOutsideRef = (0, import_react40.useRef)(false);
2987
2452
  return /* @__PURE__ */ import_react40.default.createElement(PopoverContentImpl, {
@@ -3021,8 +2486,8 @@ var PopoverContentNonModal = /* @__PURE__ */ (0, import_react40.forwardRef)((pro
3021
2486
  });
3022
2487
  var PopoverContentImpl = /* @__PURE__ */ (0, import_react40.forwardRef)((props, forwardedRef) => {
3023
2488
  const { __scopePopover, trapFocus, onOpenAutoFocus, onCloseAutoFocus, disableOutsidePointerEvents, onEscapeKeyDown, onPointerDownOutside, onFocusOutside, onInteractOutside, collisionPadding = 8, classNames, ...contentProps } = props;
3024
- const context = usePopoverContext(CONTENT_NAME3, __scopePopover);
3025
- const popperScope = usePopperScope2(__scopePopover);
2489
+ const context = usePopoverContext(CONTENT_NAME2, __scopePopover);
2490
+ const popperScope = usePopperScope(__scopePopover);
3026
2491
  const { tx } = useThemeContext();
3027
2492
  const elevation = useElevationContext();
3028
2493
  const safeCollisionPadding = useSafeCollisionPadding(collisionPadding);
@@ -3033,7 +2498,7 @@ var PopoverContentImpl = /* @__PURE__ */ (0, import_react40.forwardRef)((props,
3033
2498
  trapped: trapFocus,
3034
2499
  onMountAutoFocus: onOpenAutoFocus,
3035
2500
  onUnmountAutoFocus: onCloseAutoFocus
3036
- }, /* @__PURE__ */ import_react40.default.createElement(import_react_dismissable_layer2.DismissableLayer, {
2501
+ }, /* @__PURE__ */ import_react40.default.createElement(import_react_dismissable_layer.DismissableLayer, {
3037
2502
  asChild: true,
3038
2503
  disableOutsidePointerEvents,
3039
2504
  onInteractOutside,
@@ -3041,7 +2506,7 @@ var PopoverContentImpl = /* @__PURE__ */ (0, import_react40.forwardRef)((props,
3041
2506
  onPointerDownOutside,
3042
2507
  onFocusOutside,
3043
2508
  onDismiss: () => context.onOpenChange(false)
3044
- }, /* @__PURE__ */ import_react40.default.createElement(PopperPrimitive2.Content, {
2509
+ }, /* @__PURE__ */ import_react40.default.createElement(PopperPrimitive.Content, {
3045
2510
  "data-state": getState(context.open),
3046
2511
  role: "dialog",
3047
2512
  id: context.contentId,
@@ -3069,31 +2534,31 @@ var CLOSE_NAME = "PopoverClose";
3069
2534
  var PopoverClose = /* @__PURE__ */ (0, import_react40.forwardRef)((props, forwardedRef) => {
3070
2535
  const { __scopePopover, ...closeProps } = props;
3071
2536
  const context = usePopoverContext(CLOSE_NAME, __scopePopover);
3072
- return /* @__PURE__ */ import_react40.default.createElement(import_react_primitive12.Primitive.button, {
2537
+ return /* @__PURE__ */ import_react40.default.createElement(import_react_primitive11.Primitive.button, {
3073
2538
  type: "button",
3074
2539
  ...closeProps,
3075
2540
  ref: forwardedRef,
3076
- onClick: (0, import_primitive3.composeEventHandlers)(props.onClick, () => context.onOpenChange(false))
2541
+ onClick: (0, import_primitive2.composeEventHandlers)(props.onClick, () => context.onOpenChange(false))
3077
2542
  });
3078
2543
  });
3079
2544
  PopoverClose.displayName = CLOSE_NAME;
3080
- var ARROW_NAME3 = "PopoverArrow";
2545
+ var ARROW_NAME2 = "PopoverArrow";
3081
2546
  var PopoverArrow = /* @__PURE__ */ (0, import_react40.forwardRef)((props, forwardedRef) => {
3082
2547
  const { __scopePopover, classNames, ...arrowProps } = props;
3083
- const popperScope = usePopperScope2(__scopePopover);
2548
+ const popperScope = usePopperScope(__scopePopover);
3084
2549
  const { tx } = useThemeContext();
3085
- return /* @__PURE__ */ import_react40.default.createElement(PopperPrimitive2.Arrow, {
2550
+ return /* @__PURE__ */ import_react40.default.createElement(PopperPrimitive.Arrow, {
3086
2551
  ...popperScope,
3087
2552
  ...arrowProps,
3088
2553
  className: tx("popover.arrow", "popover__arrow", {}, classNames),
3089
2554
  ref: forwardedRef
3090
2555
  });
3091
2556
  });
3092
- PopoverArrow.displayName = ARROW_NAME3;
2557
+ PopoverArrow.displayName = ARROW_NAME2;
3093
2558
  var PopoverViewport = /* @__PURE__ */ (0, import_react40.forwardRef)(({ classNames, asChild, constrainInline = true, constrainBlock = true, children, ...props }, forwardedRef) => {
3094
2559
  const { tx } = useThemeContext();
3095
- const Root7 = asChild ? import_react_slot13.Slot : import_react_primitive12.Primitive.div;
3096
- return /* @__PURE__ */ import_react40.default.createElement(Root7, {
2560
+ const Root5 = asChild ? import_react_slot12.Slot : import_react_primitive11.Primitive.div;
2561
+ return /* @__PURE__ */ import_react40.default.createElement(Root5, {
3097
2562
  ...props,
3098
2563
  className: tx("popover.viewport", "popover__viewport", {
3099
2564
  constrainInline,
@@ -3328,8 +2793,8 @@ var Separator4 = /* @__PURE__ */ (0, import_react45.forwardRef)(({ classNames, o
3328
2793
  });
3329
2794
  var Tag = /* @__PURE__ */ (0, import_react46.forwardRef)(({ asChild, palette = "neutral", classNames, ...props }, forwardedRef) => {
3330
2795
  const { tx } = useThemeContext();
3331
- const Root7 = asChild ? import_react_slot14.Slot : import_react_primitive13.Primitive.span;
3332
- return /* @__PURE__ */ import_react46.default.createElement(Root7, {
2796
+ const Root5 = asChild ? import_react_slot13.Slot : import_react_primitive12.Primitive.span;
2797
+ return /* @__PURE__ */ import_react46.default.createElement(Root5, {
3333
2798
  ...props,
3334
2799
  className: tx("tag.root", "dx-tag", {
3335
2800
  palette
@@ -3358,8 +2823,8 @@ var ToastRoot = /* @__PURE__ */ (0, import_react47.forwardRef)(({ classNames, ch
3358
2823
  });
3359
2824
  var ToastBody = /* @__PURE__ */ (0, import_react47.forwardRef)(({ asChild, classNames, ...props }, forwardedRef) => {
3360
2825
  const { tx } = useThemeContext();
3361
- const Root7 = asChild ? import_react_slot15.Slot : import_react_primitive14.Primitive.div;
3362
- return /* @__PURE__ */ import_react47.default.createElement(Root7, {
2826
+ const Root5 = asChild ? import_react_slot14.Slot : import_react_primitive13.Primitive.div;
2827
+ return /* @__PURE__ */ import_react47.default.createElement(Root5, {
3363
2828
  ...props,
3364
2829
  className: tx("toast.body", "toast__body", {}, classNames),
3365
2830
  ref: forwardedRef
@@ -3367,8 +2832,8 @@ var ToastBody = /* @__PURE__ */ (0, import_react47.forwardRef)(({ asChild, class
3367
2832
  });
3368
2833
  var ToastTitle = /* @__PURE__ */ (0, import_react47.forwardRef)(({ asChild, classNames, ...props }, forwardedRef) => {
3369
2834
  const { tx } = useThemeContext();
3370
- const Root7 = asChild ? import_react_slot15.Slot : import_react_toast.ToastTitle;
3371
- return /* @__PURE__ */ import_react47.default.createElement(Root7, {
2835
+ const Root5 = asChild ? import_react_slot14.Slot : import_react_toast.ToastTitle;
2836
+ return /* @__PURE__ */ import_react47.default.createElement(Root5, {
3372
2837
  ...props,
3373
2838
  className: tx("toast.title", "toast__title", {}, classNames),
3374
2839
  ref: forwardedRef
@@ -3376,8 +2841,8 @@ var ToastTitle = /* @__PURE__ */ (0, import_react47.forwardRef)(({ asChild, clas
3376
2841
  });
3377
2842
  var ToastDescription = /* @__PURE__ */ (0, import_react47.forwardRef)(({ asChild, classNames, ...props }, forwardedRef) => {
3378
2843
  const { tx } = useThemeContext();
3379
- const Root7 = asChild ? import_react_slot15.Slot : import_react_toast.ToastDescription;
3380
- return /* @__PURE__ */ import_react47.default.createElement(Root7, {
2844
+ const Root5 = asChild ? import_react_slot14.Slot : import_react_toast.ToastDescription;
2845
+ return /* @__PURE__ */ import_react47.default.createElement(Root5, {
3381
2846
  ...props,
3382
2847
  className: tx("toast.description", "toast__description", {}, classNames),
3383
2848
  ref: forwardedRef
@@ -3385,8 +2850,8 @@ var ToastDescription = /* @__PURE__ */ (0, import_react47.forwardRef)(({ asChild
3385
2850
  });
3386
2851
  var ToastActions = /* @__PURE__ */ (0, import_react47.forwardRef)(({ asChild, classNames, ...props }, forwardedRef) => {
3387
2852
  const { tx } = useThemeContext();
3388
- const Root7 = asChild ? import_react_slot15.Slot : import_react_primitive14.Primitive.div;
3389
- return /* @__PURE__ */ import_react47.default.createElement(Root7, {
2853
+ const Root5 = asChild ? import_react_slot14.Slot : import_react_primitive13.Primitive.div;
2854
+ return /* @__PURE__ */ import_react47.default.createElement(Root5, {
3390
2855
  ...props,
3391
2856
  className: tx("toast.actions", "toast__actions", {}, classNames),
3392
2857
  ref: forwardedRef
@@ -3553,7 +3018,6 @@ var Toolbar = {
3553
3018
  Treegrid,
3554
3019
  createDropdownMenuScope,
3555
3020
  createPopoverScope,
3556
- createTooltipScope,
3557
3021
  hasIosKeyboard,
3558
3022
  initialSafeArea,
3559
3023
  isLabel,
@@ -3573,7 +3037,6 @@ var Toolbar = {
3573
3037
  useSafeArea,
3574
3038
  useSidebars,
3575
3039
  useThemeContext,
3576
- useTooltipContext,
3577
3040
  useTranslation,
3578
3041
  useTranslationsContext,
3579
3042
  useVisualViewport,