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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (127) hide show
  1. package/dist/lib/browser/index.mjs +740 -200
  2. package/dist/lib/browser/index.mjs.map +3 -3
  3. package/dist/lib/browser/meta.json +1 -1
  4. package/dist/lib/node/index.cjs +2932 -0
  5. package/dist/lib/node/index.cjs.map +7 -0
  6. package/dist/lib/node/meta.json +1 -0
  7. package/dist/lib/node-esm/index.mjs +2931 -0
  8. package/dist/lib/node-esm/index.mjs.map +7 -0
  9. package/dist/lib/node-esm/meta.json +1 -0
  10. package/dist/types/src/components/Avatars/Avatar.stories.d.ts +15 -1
  11. package/dist/types/src/components/Avatars/Avatar.stories.d.ts.map +1 -1
  12. package/dist/types/src/components/Avatars/AvatarGroup.stories.d.ts +6 -1
  13. package/dist/types/src/components/Avatars/AvatarGroup.stories.d.ts.map +1 -1
  14. package/dist/types/src/components/Breadcrumb/Breadcrumb.stories.d.ts +9 -1
  15. package/dist/types/src/components/Breadcrumb/Breadcrumb.stories.d.ts.map +1 -1
  16. package/dist/types/src/components/Buttons/Button.d.ts +1 -1
  17. package/dist/types/src/components/Buttons/Button.d.ts.map +1 -1
  18. package/dist/types/src/components/Buttons/Button.stories.d.ts +12 -17
  19. package/dist/types/src/components/Buttons/Button.stories.d.ts.map +1 -1
  20. package/dist/types/src/components/Buttons/Toggle.stories.d.ts +2 -1
  21. package/dist/types/src/components/Buttons/Toggle.stories.d.ts.map +1 -1
  22. package/dist/types/src/components/Buttons/ToggleGroup.stories.d.ts +20 -1
  23. package/dist/types/src/components/Buttons/ToggleGroup.stories.d.ts.map +1 -1
  24. package/dist/types/src/components/DensityProvider/DensityProvider.d.ts.map +1 -1
  25. package/dist/types/src/components/Dialogs/AlertDialog.stories.d.ts +12 -1
  26. package/dist/types/src/components/Dialogs/AlertDialog.stories.d.ts.map +1 -1
  27. package/dist/types/src/components/Dialogs/Dialog.stories.d.ts +11 -1
  28. package/dist/types/src/components/Dialogs/Dialog.stories.d.ts.map +1 -1
  29. package/dist/types/src/components/Icon/Icon.d.ts +1 -1
  30. package/dist/types/src/components/Icon/Icon.d.ts.map +1 -1
  31. package/dist/types/src/components/Input/Input.d.ts.map +1 -1
  32. package/dist/types/src/components/Input/Input.stories.d.ts +16 -1
  33. package/dist/types/src/components/Input/Input.stories.d.ts.map +1 -1
  34. package/dist/types/src/components/Lists/List.stories.d.ts +2 -3
  35. package/dist/types/src/components/Lists/List.stories.d.ts.map +1 -1
  36. package/dist/types/src/components/Lists/Tree.stories.d.ts +5 -1
  37. package/dist/types/src/components/Lists/Tree.stories.d.ts.map +1 -1
  38. package/dist/types/src/components/Lists/Treegrid.stories.d.ts +3 -2
  39. package/dist/types/src/components/Lists/Treegrid.stories.d.ts.map +1 -1
  40. package/dist/types/src/components/Main/Main.stories.d.ts +5 -1
  41. package/dist/types/src/components/Main/Main.stories.d.ts.map +1 -1
  42. package/dist/types/src/components/Menus/ContextMenu.stories.d.ts +29 -1
  43. package/dist/types/src/components/Menus/ContextMenu.stories.d.ts.map +1 -1
  44. package/dist/types/src/components/Menus/DropdownMenu.d.ts +105 -44
  45. package/dist/types/src/components/Menus/DropdownMenu.d.ts.map +1 -1
  46. package/dist/types/src/components/Menus/DropdownMenu.stories.d.ts +29 -1
  47. package/dist/types/src/components/Menus/DropdownMenu.stories.d.ts.map +1 -1
  48. package/dist/types/src/components/Message/Message.stories.d.ts +6 -1
  49. package/dist/types/src/components/Message/Message.stories.d.ts.map +1 -1
  50. package/dist/types/src/components/Popover/Popover.d.ts +87 -21
  51. package/dist/types/src/components/Popover/Popover.d.ts.map +1 -1
  52. package/dist/types/src/components/Popover/Popover.stories.d.ts +20 -1
  53. package/dist/types/src/components/Popover/Popover.stories.d.ts.map +1 -1
  54. package/dist/types/src/components/ScrollArea/ScrollArea.stories.d.ts +20 -1
  55. package/dist/types/src/components/ScrollArea/ScrollArea.stories.d.ts.map +1 -1
  56. package/dist/types/src/components/Select/Select.d.ts +4 -2
  57. package/dist/types/src/components/Select/Select.d.ts.map +1 -1
  58. package/dist/types/src/components/Select/Select.stories.d.ts +10 -11
  59. package/dist/types/src/components/Select/Select.stories.d.ts.map +1 -1
  60. package/dist/types/src/components/Status/Status.stories.d.ts +0 -3
  61. package/dist/types/src/components/Status/Status.stories.d.ts.map +1 -1
  62. package/dist/types/src/components/ThemeProvider/ThemeProvider.d.ts +4 -5
  63. package/dist/types/src/components/ThemeProvider/ThemeProvider.d.ts.map +1 -1
  64. package/dist/types/src/components/ThemeProvider/TranslationsProvider.d.ts +4 -4
  65. package/dist/types/src/components/Toast/Toast.d.ts.map +1 -1
  66. package/dist/types/src/components/Toast/Toast.stories.d.ts +20 -1
  67. package/dist/types/src/components/Toast/Toast.stories.d.ts.map +1 -1
  68. package/dist/types/src/components/Toolbar/Toolbar.d.ts +4 -2
  69. package/dist/types/src/components/Toolbar/Toolbar.d.ts.map +1 -1
  70. package/dist/types/src/components/Toolbar/Toolbar.stories.d.ts +30 -1
  71. package/dist/types/src/components/Toolbar/Toolbar.stories.d.ts.map +1 -1
  72. package/dist/types/src/components/Tooltip/Tooltip.stories.d.ts +13 -1
  73. package/dist/types/src/components/Tooltip/Tooltip.stories.d.ts.map +1 -1
  74. package/dist/types/src/hooks/useThemeContext.d.ts.map +1 -1
  75. package/dist/types/src/playground/Controls.stories.d.ts +2 -6
  76. package/dist/types/src/playground/Controls.stories.d.ts.map +1 -1
  77. package/dist/types/src/playground/Surfaces.stories.d.ts +6 -2
  78. package/dist/types/src/playground/Surfaces.stories.d.ts.map +1 -1
  79. package/dist/types/src/playground/Typography.stories.d.ts +1 -1
  80. package/dist/types/src/testing/decorators/index.d.ts +1 -0
  81. package/dist/types/src/testing/decorators/index.d.ts.map +1 -1
  82. package/dist/types/src/testing/decorators/withVariants.d.ts +13 -0
  83. package/dist/types/src/testing/decorators/withVariants.d.ts.map +1 -0
  84. package/package.json +28 -17
  85. package/src/components/Avatars/Avatar.stories.tsx +3 -2
  86. package/src/components/Avatars/AvatarGroup.stories.tsx +3 -2
  87. package/src/components/Breadcrumb/Breadcrumb.stories.tsx +3 -2
  88. package/src/components/Buttons/Button.stories.tsx +34 -63
  89. package/src/components/Buttons/Button.tsx +46 -36
  90. package/src/components/Buttons/Toggle.stories.tsx +3 -2
  91. package/src/components/Buttons/ToggleGroup.stories.tsx +3 -2
  92. package/src/components/DensityProvider/DensityProvider.tsx +1 -1
  93. package/src/components/Dialogs/AlertDialog.stories.tsx +3 -2
  94. package/src/components/Dialogs/Dialog.stories.tsx +3 -2
  95. package/src/components/Icon/Icon.tsx +11 -9
  96. package/src/components/Input/Input.stories.tsx +4 -3
  97. package/src/components/Link/Link.stories.tsx +1 -1
  98. package/src/components/Lists/List.stories.tsx +4 -4
  99. package/src/components/Lists/Tree.stories.tsx +3 -2
  100. package/src/components/Lists/Treegrid.stories.tsx +7 -5
  101. package/src/components/Main/Main.stories.tsx +3 -2
  102. package/src/components/Menus/ContextMenu.stories.tsx +3 -2
  103. package/src/components/Menus/DropdownMenu.stories.tsx +43 -3
  104. package/src/components/Menus/DropdownMenu.tsx +518 -69
  105. package/src/components/Message/Message.stories.tsx +3 -2
  106. package/src/components/Popover/Popover.stories.tsx +27 -3
  107. package/src/components/Popover/Popover.tsx +524 -55
  108. package/src/components/ScrollArea/ScrollArea.stories.tsx +3 -2
  109. package/src/components/Select/Select.stories.tsx +14 -31
  110. package/src/components/Select/Select.tsx +24 -12
  111. package/src/components/Status/Status.stories.tsx +1 -2
  112. package/src/components/Tag/Tag.stories.tsx +1 -1
  113. package/src/components/ThemeProvider/ThemeProvider.tsx +17 -18
  114. package/src/components/Toast/Toast.stories.tsx +3 -2
  115. package/src/components/Toast/Toast.tsx +1 -4
  116. package/src/components/Toolbar/Toolbar.stories.tsx +3 -2
  117. package/src/components/Toolbar/Toolbar.tsx +21 -1
  118. package/src/components/Tooltip/Tooltip.stories.tsx +3 -2
  119. package/src/hooks/useThemeContext.ts +3 -1
  120. package/src/playground/Controls.stories.tsx +7 -10
  121. package/src/playground/Surfaces.stories.tsx +4 -3
  122. package/src/playground/Typography.stories.tsx +2 -2
  123. package/src/testing/decorators/index.ts +1 -0
  124. package/src/testing/decorators/withVariants.tsx +45 -0
  125. package/dist/types/src/playground/helpers.d.ts +0 -6
  126. package/dist/types/src/playground/helpers.d.ts.map +0 -1
  127. package/src/playground/helpers.tsx +0 -32
@@ -0,0 +1,2932 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
21
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
22
+ // If the importer is in node compatibility mode or this is not an ESM
23
+ // file that has been converted to a CommonJS file using a Babel-
24
+ // compatible transform (i.e. "__esModule" has not been set), then set
25
+ // "default" to the CommonJS "module.exports" for node compatibility.
26
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
27
+ mod
28
+ ));
29
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
30
+ var node_exports = {};
31
+ __export(node_exports, {
32
+ AlertDialog: () => AlertDialog,
33
+ AnchoredOverflow: () => AnchoredOverflow,
34
+ Avatar: () => Avatar,
35
+ AvatarGroup: () => AvatarGroup,
36
+ AvatarGroupItem: () => AvatarGroupItem,
37
+ BUTTON_GROUP_NAME: () => BUTTON_GROUP_NAME,
38
+ Breadcrumb: () => Breadcrumb,
39
+ Button: () => Button,
40
+ ButtonGroup: () => ButtonGroup,
41
+ ContextMenu: () => ContextMenu2,
42
+ DensityContext: () => DensityContext,
43
+ DensityProvider: () => DensityProvider,
44
+ Dialog: () => Dialog,
45
+ DropdownMenu: () => DropdownMenu,
46
+ ElevationContext: () => ElevationContext,
47
+ ElevationProvider: () => ElevationProvider,
48
+ Icon: () => Icon,
49
+ Input: () => Input,
50
+ LIST_ITEM_NAME: () => import_react_list.LIST_ITEM_NAME,
51
+ LIST_NAME: () => import_react_list.LIST_NAME,
52
+ Link: () => Link,
53
+ List: () => List,
54
+ ListItem: () => ListItem,
55
+ Main: () => Main,
56
+ Message: () => Message,
57
+ Popover: () => Popover,
58
+ ScrollArea: () => ScrollArea,
59
+ Select: () => Select,
60
+ Separator: () => Separator4,
61
+ Status: () => Status,
62
+ Tag: () => Tag,
63
+ ThemeContext: () => ThemeContext,
64
+ ThemeProvider: () => ThemeProvider,
65
+ Toast: () => Toast,
66
+ Toggle: () => Toggle,
67
+ ToggleGroup: () => ToggleGroup,
68
+ ToggleGroupItem: () => ToggleGroupItem,
69
+ Toolbar: () => Toolbar,
70
+ Tooltip: () => Tooltip,
71
+ Trans: () => import_react_i18next.Trans,
72
+ Tree: () => Tree,
73
+ TreeItem: () => TreeItem,
74
+ Treegrid: () => Treegrid,
75
+ createDropdownMenuScope: () => createDropdownMenuScope,
76
+ createPopoverScope: () => createPopoverScope,
77
+ hasIosKeyboard: () => hasIosKeyboard,
78
+ isLabel: () => isLabel,
79
+ toLocalizedString: () => toLocalizedString,
80
+ useAvatarContext: () => useAvatarContext,
81
+ useButtonGroupContext: () => useButtonGroupContext,
82
+ useDensityContext: () => useDensityContext,
83
+ useDropdownMenuContext: () => useDropdownMenuContext,
84
+ useDropdownMenuMenuScope: () => useDropdownMenuMenuScope,
85
+ useElevationContext: () => useElevationContext,
86
+ useListContext: () => import_react_list.useListContext,
87
+ useListItemContext: () => import_react_list.useListItemContext,
88
+ useMainContext: () => useMainContext,
89
+ useSidebars: () => useSidebars,
90
+ useThemeContext: () => useThemeContext,
91
+ useTranslation: () => useTranslation,
92
+ useTranslationsContext: () => useTranslationsContext,
93
+ useVisualViewport: () => useVisualViewport
94
+ });
95
+ module.exports = __toCommonJS(node_exports);
96
+ var import_react_i18next = require("react-i18next");
97
+ __reExport(node_exports, require("@dxos/react-hooks"), module.exports);
98
+ __reExport(node_exports, require("@dxos/react-ui-types"), module.exports);
99
+ var import_react_primitive = require("@radix-ui/react-primitive");
100
+ var import_react_slot = require("@radix-ui/react-slot");
101
+ var import_react = __toESM(require("react"));
102
+ var import_react2 = require("react");
103
+ var import_react3 = require("react");
104
+ var import_react4 = require("react");
105
+ var import_locale = require("date-fns/locale");
106
+ var import_i18next = __toESM(require("i18next"));
107
+ var import_react5 = __toESM(require("react"));
108
+ var import_react_i18next2 = require("react-i18next");
109
+ var import_react6 = require("react");
110
+ var import_debug = require("@dxos/debug");
111
+ var import_react7 = require("react");
112
+ var import_react_avatar = require("@radix-ui/react-avatar");
113
+ var import_react_context = require("@radix-ui/react-context");
114
+ var import_react_primitive2 = require("@radix-ui/react-primitive");
115
+ var import_react_slot2 = require("@radix-ui/react-slot");
116
+ var import_react8 = __toESM(require("react"));
117
+ var import_react_hooks = require("@dxos/react-hooks");
118
+ var import_react9 = __toESM(require("react"));
119
+ var import_react10 = __toESM(require("react"));
120
+ var import_react_hooks2 = require("@dxos/react-hooks");
121
+ var import_react11 = require("@phosphor-icons/react");
122
+ var import_react_primitive3 = require("@radix-ui/react-primitive");
123
+ var import_react_slot3 = require("@radix-ui/react-slot");
124
+ var import_react12 = __toESM(require("react"));
125
+ var import_react_primitive4 = require("@radix-ui/react-primitive");
126
+ var import_react_slot4 = require("@radix-ui/react-slot");
127
+ var import_react13 = __toESM(require("react"));
128
+ var import_react_context2 = require("@radix-ui/react-context");
129
+ var import_react_primitive5 = require("@radix-ui/react-primitive");
130
+ var import_react_slot5 = require("@radix-ui/react-slot");
131
+ var import_react14 = __toESM(require("react"));
132
+ var import_react_toggle = require("@radix-ui/react-toggle");
133
+ var import_react15 = __toESM(require("react"));
134
+ var import_react_toggle_group = require("@radix-ui/react-toggle-group");
135
+ var import_react16 = __toESM(require("react"));
136
+ var import_react_context3 = require("@radix-ui/react-context");
137
+ var import_react_dialog = require("@radix-ui/react-dialog");
138
+ var import_react17 = __toESM(require("react"));
139
+ var import_react18 = __toESM(require("react"));
140
+ var import_react_alert_dialog = require("@radix-ui/react-alert-dialog");
141
+ var import_react_context4 = require("@radix-ui/react-context");
142
+ var import_react19 = __toESM(require("react"));
143
+ var ContextMenuPrimitive = __toESM(require("@radix-ui/react-context-menu"));
144
+ var import_react_primitive6 = require("@radix-ui/react-primitive");
145
+ var import_react_slot6 = require("@radix-ui/react-slot");
146
+ var import_react20 = __toESM(require("react"));
147
+ var import_primitive = require("@radix-ui/primitive");
148
+ var import_react_compose_refs = require("@radix-ui/react-compose-refs");
149
+ var import_react_context5 = require("@radix-ui/react-context");
150
+ var import_react_id = require("@radix-ui/react-id");
151
+ var MenuPrimitive = __toESM(require("@radix-ui/react-menu"));
152
+ var import_react_menu = require("@radix-ui/react-menu");
153
+ var import_react_primitive7 = require("@radix-ui/react-primitive");
154
+ var import_react_slot7 = require("@radix-ui/react-slot");
155
+ var import_react_use_controllable_state = require("@radix-ui/react-use-controllable-state");
156
+ var import_react21 = __toESM(require("react"));
157
+ var import_react22 = require("@phosphor-icons/react");
158
+ var import_react_checkbox = require("@radix-ui/react-checkbox");
159
+ var import_react_switch = require("@radix-ui/react-switch");
160
+ var import_react_use_controllable_state2 = require("@radix-ui/react-use-controllable-state");
161
+ var import_react23 = __toESM(require("react"));
162
+ var import_react_input = require("@dxos/react-input");
163
+ var import_react24 = require("@phosphor-icons/react");
164
+ var import_react_slot8 = require("@radix-ui/react-slot");
165
+ var import_react25 = __toESM(require("react"));
166
+ var import_react_list = require("@dxos/react-list");
167
+ var import_react26 = __toESM(require("react"));
168
+ var import_react27 = __toESM(require("react"));
169
+ var import_react_tabster = require("@fluentui/react-tabster");
170
+ var import_react_context6 = require("@radix-ui/react-context");
171
+ var import_react_primitive8 = require("@radix-ui/react-primitive");
172
+ var import_react_slot9 = require("@radix-ui/react-slot");
173
+ var import_react_use_controllable_state3 = require("@radix-ui/react-use-controllable-state");
174
+ var import_react28 = __toESM(require("react"));
175
+ var import_react_tabster2 = require("@fluentui/react-tabster");
176
+ var import_react_compose_refs2 = require("@radix-ui/react-compose-refs");
177
+ var import_react_context7 = require("@radix-ui/react-context");
178
+ var import_react_dialog2 = require("@radix-ui/react-dialog");
179
+ var import_react_primitive9 = require("@radix-ui/react-primitive");
180
+ var import_react_slot10 = require("@radix-ui/react-slot");
181
+ var import_react_use_controllable_state4 = require("@radix-ui/react-use-controllable-state");
182
+ var import_react29 = __toESM(require("react"));
183
+ var import_log = require("@dxos/log");
184
+ var import_react_hooks3 = require("@dxos/react-hooks");
185
+ var import_react30 = require("react");
186
+ var import_react_context8 = require("@radix-ui/react-context");
187
+ var import_react_primitive10 = require("@radix-ui/react-primitive");
188
+ var import_react_slot11 = require("@radix-ui/react-slot");
189
+ var import_react31 = __toESM(require("react"));
190
+ var import_react_hooks4 = require("@dxos/react-hooks");
191
+ var import_primitive2 = require("@radix-ui/primitive");
192
+ var import_react_compose_refs3 = require("@radix-ui/react-compose-refs");
193
+ var import_react_context9 = require("@radix-ui/react-context");
194
+ var import_react_dismissable_layer = require("@radix-ui/react-dismissable-layer");
195
+ var import_react_focus_guards = require("@radix-ui/react-focus-guards");
196
+ var import_react_focus_scope = require("@radix-ui/react-focus-scope");
197
+ var import_react_id2 = require("@radix-ui/react-id");
198
+ var PopperPrimitive = __toESM(require("@radix-ui/react-popper"));
199
+ var import_react_popper = require("@radix-ui/react-popper");
200
+ var import_react_portal = require("@radix-ui/react-portal");
201
+ var import_react_presence = require("@radix-ui/react-presence");
202
+ var import_react_primitive11 = require("@radix-ui/react-primitive");
203
+ var import_react_slot12 = require("@radix-ui/react-slot");
204
+ var import_react_use_controllable_state5 = require("@radix-ui/react-use-controllable-state");
205
+ var import_aria_hidden = require("aria-hidden");
206
+ var import_react32 = __toESM(require("react"));
207
+ var import_react_remove_scroll = require("react-remove-scroll");
208
+ var import_react33 = __toESM(require("react"));
209
+ var import_react_scroll_area = require("@radix-ui/react-scroll-area");
210
+ var import_react34 = __toESM(require("react"));
211
+ var import_react35 = require("@phosphor-icons/react");
212
+ var SelectPrimitive = __toESM(require("@radix-ui/react-select"));
213
+ var import_react36 = __toESM(require("react"));
214
+ var import_react_separator = require("@radix-ui/react-separator");
215
+ var import_react37 = __toESM(require("react"));
216
+ var import_react_primitive12 = require("@radix-ui/react-primitive");
217
+ var import_react_slot13 = require("@radix-ui/react-slot");
218
+ var import_react38 = __toESM(require("react"));
219
+ var import_react_primitive13 = require("@radix-ui/react-primitive");
220
+ var import_react_slot14 = require("@radix-ui/react-slot");
221
+ var import_react_toast = require("@radix-ui/react-toast");
222
+ var import_react39 = __toESM(require("react"));
223
+ var ToolbarPrimitive = __toESM(require("@radix-ui/react-toolbar"));
224
+ var import_react40 = __toESM(require("react"));
225
+ var import_react_tooltip = require("@radix-ui/react-tooltip");
226
+ var import_react41 = __toESM(require("react"));
227
+ var import_keyborg = require("keyborg");
228
+ var import_react42 = __toESM(require("react"));
229
+ var useDensityContext = (propsDensity) => {
230
+ const { density } = (0, import_react2.useContext)(DensityContext);
231
+ return propsDensity ?? density;
232
+ };
233
+ var useElevationContext = (propsElevation) => {
234
+ const { elevation } = (0, import_react3.useContext)(ElevationContext);
235
+ return propsElevation ?? elevation;
236
+ };
237
+ var initialLng = "en-US";
238
+ var initialNs = "dxos-common";
239
+ var initialDtLocale = import_locale.enUS;
240
+ var isLabel = (o) => typeof o === "string" || Array.isArray(o) && o.length === 2 && typeof o[0] === "string" && !!o[1] && typeof o[1] === "object" && "ns" in o[1] && typeof o[1].ns === "string";
241
+ var toLocalizedString = (label, t) => Array.isArray(label) ? t(...label) : label;
242
+ var resources = {
243
+ [initialLng]: {
244
+ [initialNs]: {
245
+ "loading translations": "Loading translations\u2026"
246
+ }
247
+ }
248
+ };
249
+ void import_i18next.default.use(import_react_i18next2.initReactI18next).init({
250
+ resources,
251
+ lng: initialLng,
252
+ defaultNS: initialNs,
253
+ interpolation: {
254
+ escapeValue: false
255
+ }
256
+ });
257
+ var TranslationsContext = /* @__PURE__ */ (0, import_react5.createContext)({
258
+ appNs: initialNs,
259
+ dtLocale: initialDtLocale
260
+ });
261
+ var useTranslation = (...args) => {
262
+ const result = (0, import_react_i18next2.useTranslation)(...args);
263
+ const { dtLocale } = (0, import_react5.useContext)(TranslationsContext);
264
+ return {
265
+ ...result,
266
+ dtLocale
267
+ };
268
+ };
269
+ var TranslationsProvider = ({ fallback, resourceExtensions, children, appNs, dtLocale }) => {
270
+ const [loaded, setLoaded] = (0, import_react5.useState)(false);
271
+ (0, import_react5.useEffect)(() => {
272
+ setLoaded(false);
273
+ if (resourceExtensions && resourceExtensions.length) {
274
+ resourceExtensions.forEach((resource) => {
275
+ Object.keys(resource).forEach((language) => {
276
+ Object.keys(resource[language]).forEach((ns) => {
277
+ import_i18next.default.addResourceBundle(language, ns, resource[language][ns]);
278
+ });
279
+ });
280
+ });
281
+ }
282
+ setLoaded(true);
283
+ }, [
284
+ resourceExtensions
285
+ ]);
286
+ return /* @__PURE__ */ import_react5.default.createElement(TranslationsContext.Provider, {
287
+ value: {
288
+ appNs: appNs ?? initialNs,
289
+ dtLocale: dtLocale ?? initialDtLocale
290
+ }
291
+ }, /* @__PURE__ */ import_react5.default.createElement(import_react5.Suspense, {
292
+ fallback
293
+ }, loaded ? children : fallback));
294
+ };
295
+ var useTranslationsContext = () => (0, import_react4.useContext)(TranslationsContext);
296
+ var useThemeContext = () => (0, import_react6.useContext)(ThemeContext) ?? (0, import_debug.raise)(new Error("Missing ThemeContext"));
297
+ var useVisualViewport = (deps) => {
298
+ const [width, setWidth] = (0, import_react7.useState)(null);
299
+ const [height, setHeight] = (0, import_react7.useState)(null);
300
+ (0, import_react7.useEffect)(() => {
301
+ const handleResize = () => {
302
+ if (window.visualViewport) {
303
+ setWidth(window.visualViewport.width);
304
+ setHeight(window.visualViewport.height);
305
+ }
306
+ };
307
+ window.visualViewport?.addEventListener("resize", handleResize);
308
+ handleResize();
309
+ return () => window.visualViewport?.removeEventListener("resize", handleResize);
310
+ }, deps ?? []);
311
+ return {
312
+ width,
313
+ height
314
+ };
315
+ };
316
+ var AnchoredOverflowRoot = /* @__PURE__ */ (0, import_react.forwardRef)(({ asChild, classNames, children, ...props }, forwardedRef) => {
317
+ const { tx } = useThemeContext();
318
+ const Root5 = asChild ? import_react_slot.Slot : import_react_primitive.Primitive.div;
319
+ return /* @__PURE__ */ import_react.default.createElement(Root5, {
320
+ role: "none",
321
+ ...props,
322
+ className: tx("anchoredOverflow.root", "overflow-anchored", {}, classNames),
323
+ ref: forwardedRef
324
+ }, children);
325
+ });
326
+ var AnchoredOverflowAnchor = /* @__PURE__ */ (0, import_react.forwardRef)(({ asChild, classNames, children, ...props }, forwardedRef) => {
327
+ const { tx } = useThemeContext();
328
+ const Root5 = asChild ? import_react_slot.Slot : import_react_primitive.Primitive.div;
329
+ return /* @__PURE__ */ import_react.default.createElement(Root5, {
330
+ role: "none",
331
+ ...props,
332
+ className: tx("anchoredOverflow.anchor", "overflow-anchor", {}, classNames),
333
+ ref: forwardedRef
334
+ }, children);
335
+ });
336
+ var AnchoredOverflow = {
337
+ Root: AnchoredOverflowRoot,
338
+ Anchor: AnchoredOverflowAnchor
339
+ };
340
+ var Icon = /* @__PURE__ */ (0, import_react9.memo)(/* @__PURE__ */ (0, import_react9.forwardRef)(({ icon, classNames, size, ...props }, forwardedRef) => {
341
+ const { tx } = useThemeContext();
342
+ return /* @__PURE__ */ import_react9.default.createElement("svg", {
343
+ ...props,
344
+ className: tx("icon.root", "icon", {
345
+ size
346
+ }, classNames),
347
+ ref: forwardedRef
348
+ }, /* @__PURE__ */ import_react9.default.createElement("use", {
349
+ href: `/icons.svg#${icon}`
350
+ }));
351
+ }));
352
+ var AVATAR_NAME = "Avatar";
353
+ var [AvatarProvider, useAvatarContext] = (0, import_react_context.createContext)(AVATAR_NAME);
354
+ var AvatarRoot = ({ size = 10, variant = "circle", status, animation, children, labelId: propsLabelId, descriptionId: propsDescriptionId, maskId: propsMaskId, inGroup, hue }) => {
355
+ const labelId = (0, import_react_hooks.useId)("avatar__label", propsLabelId);
356
+ const descriptionId = (0, import_react_hooks.useId)("avatar__description", propsDescriptionId);
357
+ const maskId = (0, import_react_hooks.useId)("avatar__mask", propsMaskId);
358
+ return /* @__PURE__ */ import_react8.default.createElement(AvatarProvider, {
359
+ labelId,
360
+ descriptionId,
361
+ maskId,
362
+ size,
363
+ variant,
364
+ status,
365
+ animation,
366
+ inGroup,
367
+ hue
368
+ }, children);
369
+ };
370
+ var rx = "0.25rem";
371
+ var AvatarFrame = /* @__PURE__ */ (0, import_react8.forwardRef)(({ classNames, children, ...props }, forwardedRef) => {
372
+ const { size, variant, labelId, descriptionId, maskId, inGroup, status, animation, hue } = useAvatarContext("AvatarFrame");
373
+ const { tx } = useThemeContext();
374
+ const numericSize = size === "px" ? 1 : Number(size);
375
+ const sizePx = numericSize * 4;
376
+ const ringWidth = status ? numericSize > 4 ? 2 : numericSize > 3 ? 1 : 1 : 0;
377
+ const ringGap = status ? numericSize > 12 ? 3 : numericSize > 4 ? 2 : numericSize > 3 ? 1 : 0 : 0;
378
+ const r = sizePx / 2 - ringGap - ringWidth;
379
+ return /* @__PURE__ */ import_react8.default.createElement(import_react_avatar.Root, {
380
+ role: "img",
381
+ ...props,
382
+ className: tx("avatar.root", "avatar", {
383
+ size,
384
+ variant,
385
+ inGroup
386
+ }, classNames),
387
+ ref: forwardedRef,
388
+ ...!inGroup && {
389
+ "aria-labelledby": labelId,
390
+ "aria-describedby": descriptionId
391
+ }
392
+ }, /* @__PURE__ */ import_react8.default.createElement("svg", {
393
+ viewBox: `0 0 ${sizePx} ${sizePx}`,
394
+ width: sizePx,
395
+ height: sizePx,
396
+ className: tx("avatar.frame", "avatar__frame", {
397
+ variant
398
+ })
399
+ }, /* @__PURE__ */ import_react8.default.createElement("defs", null, /* @__PURE__ */ import_react8.default.createElement("mask", {
400
+ id: maskId
401
+ }, variant === "circle" ? /* @__PURE__ */ import_react8.default.createElement("circle", {
402
+ fill: "white",
403
+ cx: "50%",
404
+ cy: "50%",
405
+ r
406
+ }) : /* @__PURE__ */ import_react8.default.createElement("rect", {
407
+ fill: "white",
408
+ width: 2 * r,
409
+ height: 2 * r,
410
+ x: ringGap + ringWidth,
411
+ y: ringGap + ringWidth,
412
+ rx
413
+ }))), variant === "circle" ? /* @__PURE__ */ import_react8.default.createElement("circle", {
414
+ className: hue ? tx("hue.fill", "avatar__frame__circle", {
415
+ hue
416
+ }) : "fill-[var(--surface-bg)]",
417
+ cx: "50%",
418
+ cy: "50%",
419
+ r
420
+ }) : /* @__PURE__ */ import_react8.default.createElement("rect", {
421
+ className: hue ? tx("hue.fill", "avatar__frame__rect", {
422
+ hue
423
+ }) : "fill-[var(--surface-bg)]",
424
+ x: ringGap + ringWidth,
425
+ y: ringGap + ringWidth,
426
+ width: 2 * r,
427
+ height: 2 * r,
428
+ rx
429
+ }), children), /* @__PURE__ */ import_react8.default.createElement("span", {
430
+ role: "none",
431
+ className: tx("avatar.ring", "avatar__ring", {
432
+ size,
433
+ variant,
434
+ status,
435
+ animation
436
+ }),
437
+ style: {
438
+ borderWidth: ringWidth + "px"
439
+ }
440
+ }));
441
+ });
442
+ var AvatarLabel = /* @__PURE__ */ (0, import_react8.forwardRef)(({ asChild, srOnly, classNames, ...props }, forwardedRef) => {
443
+ const Root5 = asChild ? import_react_slot2.Slot : import_react_primitive2.Primitive.span;
444
+ const { tx } = useThemeContext();
445
+ const { labelId } = useAvatarContext("AvatarLabel");
446
+ return /* @__PURE__ */ import_react8.default.createElement(Root5, {
447
+ ...props,
448
+ id: labelId,
449
+ ref: forwardedRef,
450
+ className: tx("avatar.label", "avatar__label", {
451
+ srOnly
452
+ }, classNames)
453
+ });
454
+ });
455
+ var AvatarDescription = /* @__PURE__ */ (0, import_react8.forwardRef)(({ asChild, srOnly, classNames, ...props }, forwardedRef) => {
456
+ const Root5 = asChild ? import_react_slot2.Slot : import_react_primitive2.Primitive.span;
457
+ const { tx } = useThemeContext();
458
+ const { descriptionId } = useAvatarContext("AvatarDescription");
459
+ return /* @__PURE__ */ import_react8.default.createElement(Root5, {
460
+ ...props,
461
+ id: descriptionId,
462
+ ref: forwardedRef,
463
+ className: tx("avatar.description", "avatar__description", {
464
+ srOnly
465
+ }, classNames)
466
+ });
467
+ });
468
+ var AvatarMaskedImage = /* @__PURE__ */ (0, import_react8.forwardRef)((props, forwardedRef) => {
469
+ const { maskId } = useAvatarContext("AvatarFallback");
470
+ return /* @__PURE__ */ import_react8.default.createElement("image", {
471
+ width: "100%",
472
+ height: "100%",
473
+ ...props,
474
+ mask: `url(#${maskId})`,
475
+ ref: forwardedRef,
476
+ preserveAspectRatio: "xMidYMid slice"
477
+ });
478
+ });
479
+ var AvatarMaskedText = (props) => {
480
+ const { maskId, size } = useAvatarContext("AvatarFallback");
481
+ const { large } = props;
482
+ const fontScale = (large ? 4 : 3) * (1 / 1.612);
483
+ const { tx } = useThemeContext();
484
+ return /* @__PURE__ */ import_react8.default.createElement("text", {
485
+ x: "50%",
486
+ y: "50%",
487
+ className: tx("avatar.fallbackText", "avatar__fallback-text"),
488
+ textAnchor: "middle",
489
+ alignmentBaseline: "central",
490
+ fontSize: size === "px" ? "200%" : size * fontScale,
491
+ mask: `url(#${maskId})`
492
+ }, props.children);
493
+ };
494
+ var AvatarImage = /* @__PURE__ */ (0, import_react8.forwardRef)(({ onLoadingStatusChange, ...props }, forwardedRef) => {
495
+ const { size } = useAvatarContext("AvatarImage");
496
+ const pxSize = size === "px" ? 1 : size * 4;
497
+ if (pxSize <= 20) {
498
+ return null;
499
+ }
500
+ return /* @__PURE__ */ import_react8.default.createElement(import_react_avatar.Fallback, {
501
+ asChild: true
502
+ }, /* @__PURE__ */ import_react8.default.createElement(AvatarMaskedImage, {
503
+ ...props,
504
+ ref: forwardedRef
505
+ }));
506
+ });
507
+ var AvatarIcon = /* @__PURE__ */ (0, import_react8.forwardRef)(({ onLoadingStatusChange, ...props }, forwardedRef) => {
508
+ const { size } = useAvatarContext("AvatarIcon");
509
+ const pxSize = size === "px" ? 1 : size * 4;
510
+ if (pxSize <= 20) {
511
+ return null;
512
+ }
513
+ return /* @__PURE__ */ import_react8.default.createElement(import_react_avatar.Fallback, {
514
+ asChild: true
515
+ }, /* @__PURE__ */ import_react8.default.createElement(Icon, {
516
+ ...props,
517
+ ref: forwardedRef
518
+ }));
519
+ });
520
+ var AvatarFallback = /* @__PURE__ */ (0, import_react8.forwardRef)(({ delayMs, text, ...props }, forwardedRef) => {
521
+ const isTextOnly = Boolean(text && /[0-9a-zA-Z]+/.test(text));
522
+ const { size } = useAvatarContext("AvatarFallback");
523
+ const numericSize = size === "px" ? 1 : Number(size);
524
+ return /* @__PURE__ */ import_react8.default.createElement(import_react_avatar.Fallback, {
525
+ delayMs,
526
+ asChild: true
527
+ }, /* @__PURE__ */ import_react8.default.createElement(import_react8.default.Fragment, null, numericSize >= 6 && /* @__PURE__ */ import_react8.default.createElement(AvatarMaskedImage, {
528
+ ...props,
529
+ ref: forwardedRef
530
+ }), text && /* @__PURE__ */ import_react8.default.createElement(AvatarMaskedText, {
531
+ large: !isTextOnly
532
+ }, text.toLocaleUpperCase())));
533
+ });
534
+ var Avatar = {
535
+ Root: AvatarRoot,
536
+ Frame: AvatarFrame,
537
+ Image: AvatarImage,
538
+ Icon: AvatarIcon,
539
+ Fallback: AvatarFallback,
540
+ Label: AvatarLabel,
541
+ Description: AvatarDescription
542
+ };
543
+ var AvatarGroupRoot = /* @__PURE__ */ (0, import_react10.forwardRef)(({ labelId: propsLabelId, descriptionId: propsDescriptionId, size, variant, children, classNames }, forwardedRef) => {
544
+ const { tx } = useThemeContext();
545
+ const labelId = (0, import_react_hooks2.useId)("avatar-group__label", propsLabelId);
546
+ const descriptionId = (0, import_react_hooks2.useId)("avatar-group__description", propsDescriptionId);
547
+ return /* @__PURE__ */ import_react10.default.createElement(Avatar.Root, {
548
+ labelId,
549
+ descriptionId,
550
+ size,
551
+ variant,
552
+ inGroup: true
553
+ }, /* @__PURE__ */ import_react10.default.createElement("div", {
554
+ role: "group",
555
+ className: tx("avatar.group", "avatar-group", {}, classNames),
556
+ "aria-labelledby": labelId,
557
+ "aria-describedby": descriptionId,
558
+ ref: forwardedRef
559
+ }, children));
560
+ });
561
+ var AvatarGroupItemRoot = ({ maskId, size, variant, status, children, ...rest }) => {
562
+ const { labelId, descriptionId, size: contextSize, variant: contextVariant } = useAvatarContext("AvatarGroupItemRoot");
563
+ return /* @__PURE__ */ import_react10.default.createElement(Avatar.Root, {
564
+ labelId,
565
+ descriptionId,
566
+ maskId,
567
+ status,
568
+ size: size ?? contextSize,
569
+ variant: variant ?? contextVariant,
570
+ inGroup: true,
571
+ ...rest
572
+ }, children);
573
+ };
574
+ var AvatarGroupLabel = /* @__PURE__ */ (0, import_react10.forwardRef)(({ srOnly, classNames, children, ...props }, forwardedRef) => {
575
+ const { labelId, size } = useAvatarContext("AvatarGroupLabel");
576
+ const { tx } = useThemeContext();
577
+ return /* @__PURE__ */ import_react10.default.createElement("span", {
578
+ ...props,
579
+ id: labelId,
580
+ className: tx("avatar.groupLabel", "avatar-group__label", {
581
+ srOnly,
582
+ size
583
+ }, classNames)
584
+ }, children);
585
+ });
586
+ var AvatarGroupDescription = /* @__PURE__ */ (0, import_react10.forwardRef)(({ srOnly, classNames, children, ...props }, forwardedRef) => {
587
+ const { descriptionId } = useAvatarContext("AvatarGroupDescription");
588
+ const { tx } = useThemeContext();
589
+ return /* @__PURE__ */ import_react10.default.createElement("span", {
590
+ ...props,
591
+ id: descriptionId,
592
+ className: tx("avatar.groupDescription", "avatar-group__description", {
593
+ srOnly
594
+ }, classNames)
595
+ }, children);
596
+ });
597
+ var AvatarGroup = {
598
+ Root: AvatarGroupRoot,
599
+ Label: AvatarGroupLabel,
600
+ Description: AvatarGroupDescription
601
+ };
602
+ var AvatarGroupItem = {
603
+ Root: AvatarGroupItemRoot
604
+ };
605
+ var Link = /* @__PURE__ */ (0, import_react13.forwardRef)(({ asChild, variant, classNames, ...props }, forwardedRef) => {
606
+ const { tx } = useThemeContext();
607
+ const Root5 = asChild ? import_react_slot4.Slot : import_react_primitive4.Primitive.a;
608
+ return /* @__PURE__ */ import_react13.default.createElement(Root5, {
609
+ ...props,
610
+ className: tx("link.root", "link", {
611
+ variant
612
+ }, classNames),
613
+ ref: forwardedRef
614
+ });
615
+ });
616
+ var BreadcrumbRoot = /* @__PURE__ */ (0, import_react12.forwardRef)(({ asChild, classNames, ...props }, forwardedRef) => {
617
+ const { tx } = useThemeContext();
618
+ const Root5 = asChild ? import_react_slot3.Slot : import_react_primitive3.Primitive.div;
619
+ return /* @__PURE__ */ import_react12.default.createElement(Root5, {
620
+ role: "navigation",
621
+ ...props,
622
+ className: tx("breadcrumb.root", "breadcrumb", {}, classNames),
623
+ ref: forwardedRef
624
+ });
625
+ });
626
+ var BreadcrumbList = /* @__PURE__ */ (0, import_react12.forwardRef)(({ asChild, classNames, ...props }, forwardedRef) => {
627
+ const { tx } = useThemeContext();
628
+ const Root5 = asChild ? import_react_slot3.Slot : import_react_primitive3.Primitive.ol;
629
+ return /* @__PURE__ */ import_react12.default.createElement(Root5, {
630
+ role: "list",
631
+ ...props,
632
+ className: tx("breadcrumb.list", "breadcrumb__list", {}, classNames),
633
+ ref: forwardedRef
634
+ });
635
+ });
636
+ var BreadcrumbListItem = /* @__PURE__ */ (0, import_react12.forwardRef)(({ asChild, classNames, ...props }, forwardedRef) => {
637
+ const { tx } = useThemeContext();
638
+ const Root5 = asChild ? import_react_slot3.Slot : import_react_primitive3.Primitive.li;
639
+ return /* @__PURE__ */ import_react12.default.createElement(Root5, {
640
+ role: "listitem",
641
+ ...props,
642
+ className: tx("breadcrumb.listItem", "breadcrumb__list__item", {}, classNames),
643
+ ref: forwardedRef
644
+ });
645
+ });
646
+ var BreadcrumbLink = /* @__PURE__ */ (0, import_react12.forwardRef)(({ asChild, ...props }, forwardedRef) => {
647
+ const Root5 = asChild ? import_react_slot3.Slot : Link;
648
+ return /* @__PURE__ */ import_react12.default.createElement(Root5, {
649
+ ...props,
650
+ ref: forwardedRef
651
+ });
652
+ });
653
+ var BreadcrumbCurrent = /* @__PURE__ */ (0, import_react12.forwardRef)(({ asChild, classNames, ...props }, forwardedRef) => {
654
+ const { tx } = useThemeContext();
655
+ const Root5 = asChild ? import_react_slot3.Slot : "h1";
656
+ return /* @__PURE__ */ import_react12.default.createElement(Root5, {
657
+ ...props,
658
+ "aria-current": "page",
659
+ className: tx("breadcrumb.current", "breadcrumb__item__heading--current", {}, classNames),
660
+ ref: forwardedRef
661
+ });
662
+ });
663
+ var BreadcrumbSeparator = ({ children, classNames, ...props }) => {
664
+ const { tx } = useThemeContext();
665
+ return /* @__PURE__ */ import_react12.default.createElement(import_react_primitive3.Primitive.span, {
666
+ role: "separator",
667
+ "aria-hidden": "true",
668
+ ...props,
669
+ className: tx("breadcrumb.separator", "breadcrumb__separator", {}, classNames)
670
+ }, children ?? /* @__PURE__ */ import_react12.default.createElement(import_react11.Dot, {
671
+ weight: "bold"
672
+ }));
673
+ };
674
+ var Breadcrumb = {
675
+ Root: BreadcrumbRoot,
676
+ List: BreadcrumbList,
677
+ ListItem: BreadcrumbListItem,
678
+ Link: BreadcrumbLink,
679
+ Current: BreadcrumbCurrent,
680
+ Separator: BreadcrumbSeparator
681
+ };
682
+ var BUTTON_GROUP_NAME = "ButtonGroup";
683
+ var BUTTON_NAME = "Button";
684
+ var [ButtonGroupProvider, useButtonGroupContext] = (0, import_react_context2.createContext)(BUTTON_GROUP_NAME, {
685
+ inGroup: false
686
+ });
687
+ var Button = /* @__PURE__ */ (0, import_react14.memo)(/* @__PURE__ */ (0, import_react14.forwardRef)(({ classNames, children, density: propsDensity, elevation: propsElevation, variant = "default", asChild, ...props }, ref) => {
688
+ const { inGroup } = useButtonGroupContext(BUTTON_NAME);
689
+ const { tx } = useThemeContext();
690
+ const elevation = useElevationContext(propsElevation);
691
+ const density = useDensityContext(propsDensity);
692
+ const Root5 = asChild ? import_react_slot5.Slot : import_react_primitive5.Primitive.button;
693
+ return /* @__PURE__ */ import_react14.default.createElement(Root5, {
694
+ ref,
695
+ ...props,
696
+ "data-variant": variant,
697
+ "data-density": density,
698
+ "data-props": inGroup ? "grouped" : "",
699
+ className: tx("button.root", "button", {
700
+ variant,
701
+ inGroup,
702
+ disabled: props.disabled,
703
+ density,
704
+ elevation
705
+ }, classNames),
706
+ ...props.disabled && {
707
+ disabled: true
708
+ }
709
+ }, children);
710
+ }));
711
+ Button.displayName = BUTTON_NAME;
712
+ var ButtonGroup = /* @__PURE__ */ (0, import_react14.forwardRef)(({ children, elevation: propsElevation, classNames, asChild, ...props }, forwardedRef) => {
713
+ const { tx } = useThemeContext();
714
+ const elevation = useElevationContext(propsElevation);
715
+ const Root5 = asChild ? import_react_slot5.Slot : import_react_primitive5.Primitive.div;
716
+ return /* @__PURE__ */ import_react14.default.createElement(Root5, {
717
+ role: "none",
718
+ ...props,
719
+ className: tx("button.group", "button-group", {
720
+ elevation
721
+ }, classNames),
722
+ ref: forwardedRef
723
+ }, /* @__PURE__ */ import_react14.default.createElement(ButtonGroupProvider, {
724
+ inGroup: true
725
+ }, children));
726
+ });
727
+ ButtonGroup.displayName = BUTTON_GROUP_NAME;
728
+ var Toggle = /* @__PURE__ */ (0, import_react15.forwardRef)(({ defaultPressed, pressed, onPressedChange, ...props }, forwardedRef) => {
729
+ return /* @__PURE__ */ import_react15.default.createElement(import_react_toggle.Toggle, {
730
+ defaultPressed,
731
+ pressed,
732
+ onPressedChange,
733
+ asChild: true
734
+ }, /* @__PURE__ */ import_react15.default.createElement(Button, {
735
+ ...props,
736
+ ref: forwardedRef
737
+ }));
738
+ });
739
+ var ToggleGroup = /* @__PURE__ */ (0, import_react16.forwardRef)(({ classNames, children, ...props }, forwardedRef) => {
740
+ return /* @__PURE__ */ import_react16.default.createElement(import_react_toggle_group.ToggleGroup, {
741
+ ...props,
742
+ asChild: true
743
+ }, /* @__PURE__ */ import_react16.default.createElement(ButtonGroup, {
744
+ classNames,
745
+ children,
746
+ ref: forwardedRef
747
+ }));
748
+ });
749
+ var ToggleGroupItem = /* @__PURE__ */ (0, import_react16.forwardRef)(({ variant, elevation, density, classNames, children, ...props }, forwardedRef) => {
750
+ return /* @__PURE__ */ import_react16.default.createElement(import_react_toggle_group.ToggleGroupItem, {
751
+ ...props,
752
+ asChild: true
753
+ }, /* @__PURE__ */ import_react16.default.createElement(Button, {
754
+ variant,
755
+ elevation,
756
+ density,
757
+ classNames,
758
+ children,
759
+ ref: forwardedRef
760
+ }));
761
+ });
762
+ var ElevationContext = /* @__PURE__ */ (0, import_react18.createContext)({
763
+ elevation: "base"
764
+ });
765
+ var ElevationProvider = ({ elevation, children }) => /* @__PURE__ */ import_react18.default.createElement(ElevationContext.Provider, {
766
+ value: {
767
+ elevation
768
+ }
769
+ }, children);
770
+ var DialogRoot = import_react_dialog.Root;
771
+ var DialogTrigger = import_react_dialog.DialogTrigger;
772
+ var DialogPortal = import_react_dialog.DialogPortal;
773
+ var DialogTitle = /* @__PURE__ */ (0, import_react17.forwardRef)(({ classNames, srOnly, ...props }, forwardedRef) => {
774
+ const { tx } = useThemeContext();
775
+ return /* @__PURE__ */ import_react17.default.createElement(import_react_dialog.DialogTitle, {
776
+ ...props,
777
+ className: tx("dialog.title", "dialog__title", {
778
+ srOnly
779
+ }, classNames),
780
+ ref: forwardedRef
781
+ });
782
+ });
783
+ var DialogDescription = /* @__PURE__ */ (0, import_react17.forwardRef)(({ classNames, srOnly, ...props }, forwardedRef) => {
784
+ const { tx } = useThemeContext();
785
+ return /* @__PURE__ */ import_react17.default.createElement(import_react_dialog.DialogDescription, {
786
+ ...props,
787
+ className: tx("dialog.description", "dialog__description", {
788
+ srOnly
789
+ }, classNames),
790
+ ref: forwardedRef
791
+ });
792
+ });
793
+ var DialogClose = import_react_dialog.DialogClose;
794
+ var DIALOG_OVERLAY_NAME = "DialogOverlay";
795
+ var DIALOG_CONTENT_NAME = "DialogContent";
796
+ var [OverlayLayoutProvider, useOverlayLayoutContext] = (0, import_react_context3.createContext)(DIALOG_OVERLAY_NAME, {
797
+ inOverlayLayout: false
798
+ });
799
+ var DialogOverlay = /* @__PURE__ */ (0, import_react17.forwardRef)(({ classNames, children, blockAlign, ...props }, forwardedRef) => {
800
+ const { tx } = useThemeContext();
801
+ return /* @__PURE__ */ import_react17.default.createElement(import_react_dialog.DialogOverlay, {
802
+ ...props,
803
+ className: tx("dialog.overlay", "dialog__overlay", {}, classNames, "data-[block-align=start]:justify-center", "data-[block-align=start]:items-start", "data-[block-align=center]:place-content-center"),
804
+ ref: forwardedRef,
805
+ "data-block-align": blockAlign
806
+ }, /* @__PURE__ */ import_react17.default.createElement(OverlayLayoutProvider, {
807
+ inOverlayLayout: true
808
+ }, children));
809
+ });
810
+ DialogOverlay.displayName = DIALOG_OVERLAY_NAME;
811
+ var DialogContent = /* @__PURE__ */ (0, import_react17.forwardRef)(({ classNames, children, ...props }, forwardedRef) => {
812
+ const { tx } = useThemeContext();
813
+ const { inOverlayLayout } = useOverlayLayoutContext(DIALOG_CONTENT_NAME);
814
+ return /* @__PURE__ */ import_react17.default.createElement(import_react_dialog.DialogContent, {
815
+ ...props,
816
+ className: tx("dialog.content", "dialog", {
817
+ inOverlayLayout
818
+ }, classNames),
819
+ ref: forwardedRef
820
+ }, /* @__PURE__ */ import_react17.default.createElement(ElevationProvider, {
821
+ elevation: "chrome"
822
+ }, children));
823
+ });
824
+ DialogContent.displayName = DIALOG_CONTENT_NAME;
825
+ var Dialog = {
826
+ Root: DialogRoot,
827
+ Trigger: DialogTrigger,
828
+ Portal: DialogPortal,
829
+ Overlay: DialogOverlay,
830
+ Content: DialogContent,
831
+ Title: DialogTitle,
832
+ Description: DialogDescription,
833
+ Close: DialogClose
834
+ };
835
+ var AlertDialogRoot = import_react_alert_dialog.Root;
836
+ var AlertDialogTrigger = import_react_alert_dialog.AlertDialogTrigger;
837
+ var AlertDialogPortal = import_react_alert_dialog.AlertDialogPortal;
838
+ var AlertDialogCancel = import_react_alert_dialog.AlertDialogCancel;
839
+ var AlertDialogAction = import_react_alert_dialog.AlertDialogAction;
840
+ var AlertDialogTitle = /* @__PURE__ */ (0, import_react19.forwardRef)(({ classNames, srOnly, ...props }, forwardedRef) => {
841
+ const { tx } = useThemeContext();
842
+ return /* @__PURE__ */ import_react19.default.createElement(import_react_alert_dialog.AlertDialogTitle, {
843
+ ...props,
844
+ className: tx("dialog.title", "dialog--alert__title", {
845
+ srOnly
846
+ }, classNames),
847
+ ref: forwardedRef
848
+ });
849
+ });
850
+ var AlertDialogDescription = /* @__PURE__ */ (0, import_react19.forwardRef)(({ classNames, srOnly, ...props }, forwardedRef) => {
851
+ const { tx } = useThemeContext();
852
+ return /* @__PURE__ */ import_react19.default.createElement(import_react_alert_dialog.AlertDialogDescription, {
853
+ ...props,
854
+ className: tx("dialog.description", "dialog--alert__description", {
855
+ srOnly
856
+ }, classNames),
857
+ ref: forwardedRef
858
+ });
859
+ });
860
+ var ALERT_DIALOG_OVERLAY_NAME = "AlertDialogOverlay";
861
+ var ALERT_DIALOG_CONTENT_NAME = "AlertDialogContent";
862
+ var [OverlayLayoutProvider2, useOverlayLayoutContext2] = (0, import_react_context4.createContext)(ALERT_DIALOG_OVERLAY_NAME, {
863
+ inOverlayLayout: false
864
+ });
865
+ var AlertDialogOverlay = /* @__PURE__ */ (0, import_react19.forwardRef)(({ classNames, children, ...props }, forwardedRef) => {
866
+ const { tx } = useThemeContext();
867
+ return /* @__PURE__ */ import_react19.default.createElement(import_react_alert_dialog.AlertDialogOverlay, {
868
+ ...props,
869
+ className: tx("dialog.overlay", "dialog--alert__overlay", {}, classNames),
870
+ ref: forwardedRef
871
+ }, /* @__PURE__ */ import_react19.default.createElement(OverlayLayoutProvider2, {
872
+ inOverlayLayout: true
873
+ }, children));
874
+ });
875
+ AlertDialogOverlay.displayName = ALERT_DIALOG_OVERLAY_NAME;
876
+ var AlertDialogContent = /* @__PURE__ */ (0, import_react19.forwardRef)(({ classNames, children, ...props }, forwardedRef) => {
877
+ const { tx } = useThemeContext();
878
+ const { inOverlayLayout } = useOverlayLayoutContext2(ALERT_DIALOG_CONTENT_NAME);
879
+ return /* @__PURE__ */ import_react19.default.createElement(import_react_alert_dialog.AlertDialogContent, {
880
+ ...props,
881
+ className: tx("dialog.content", "dialog--alert", {
882
+ inOverlayLayout
883
+ }, classNames),
884
+ ref: forwardedRef
885
+ }, /* @__PURE__ */ import_react19.default.createElement(ElevationProvider, {
886
+ elevation: "chrome"
887
+ }, children));
888
+ });
889
+ AlertDialogContent.displayName = ALERT_DIALOG_CONTENT_NAME;
890
+ var AlertDialog = {
891
+ Root: AlertDialogRoot,
892
+ Trigger: AlertDialogTrigger,
893
+ Portal: AlertDialogPortal,
894
+ Overlay: AlertDialogOverlay,
895
+ Content: AlertDialogContent,
896
+ Title: AlertDialogTitle,
897
+ Description: AlertDialogDescription,
898
+ Cancel: AlertDialogCancel,
899
+ Action: AlertDialogAction
900
+ };
901
+ var ContextMenuRoot = ContextMenuPrimitive.ContextMenu;
902
+ var ContextMenuTrigger = ContextMenuPrimitive.Trigger;
903
+ var ContextMenuPortal = ContextMenuPrimitive.Portal;
904
+ var ContextMenuContent = /* @__PURE__ */ (0, import_react20.forwardRef)(({ classNames, children, ...props }, forwardedRef) => {
905
+ const { tx } = useThemeContext();
906
+ return /* @__PURE__ */ import_react20.default.createElement(ContextMenuPrimitive.Content, {
907
+ collisionPadding: 8,
908
+ ...props,
909
+ className: tx("menu.content", "menu", {}, classNames),
910
+ ref: forwardedRef
911
+ }, /* @__PURE__ */ import_react20.default.createElement(ElevationProvider, {
912
+ elevation: "chrome"
913
+ }, children));
914
+ });
915
+ var ContextMenuViewport = /* @__PURE__ */ (0, import_react20.forwardRef)(({ classNames, asChild, children, ...props }, forwardedRef) => {
916
+ const { tx } = useThemeContext();
917
+ const Root5 = asChild ? import_react_slot6.Slot : import_react_primitive6.Primitive.div;
918
+ return /* @__PURE__ */ import_react20.default.createElement(Root5, {
919
+ ...props,
920
+ className: tx("menu.viewport", "menu__viewport", {}, classNames),
921
+ ref: forwardedRef
922
+ }, children);
923
+ });
924
+ var ContextMenuArrow = /* @__PURE__ */ (0, import_react20.forwardRef)(({ classNames, ...props }, forwardedRef) => {
925
+ const { tx } = useThemeContext();
926
+ return /* @__PURE__ */ import_react20.default.createElement(ContextMenuPrimitive.Arrow, {
927
+ ...props,
928
+ className: tx("menu.arrow", "menu__arrow", {}, classNames),
929
+ ref: forwardedRef
930
+ });
931
+ });
932
+ var ContextMenuGroup = ContextMenuPrimitive.Group;
933
+ var ContextMenuItemIndicator = ContextMenuPrimitive.ItemIndicator;
934
+ var ContextMenuItem = /* @__PURE__ */ (0, import_react20.forwardRef)(({ classNames, ...props }, forwardedRef) => {
935
+ const { tx } = useThemeContext();
936
+ return /* @__PURE__ */ import_react20.default.createElement(ContextMenuPrimitive.Item, {
937
+ ...props,
938
+ className: tx("menu.item", "menu__item", {}, classNames),
939
+ ref: forwardedRef
940
+ });
941
+ });
942
+ var ContextMenuCheckboxItem = /* @__PURE__ */ (0, import_react20.forwardRef)(({ classNames, ...props }, forwardedRef) => {
943
+ const { tx } = useThemeContext();
944
+ return /* @__PURE__ */ import_react20.default.createElement(ContextMenuPrimitive.CheckboxItem, {
945
+ ...props,
946
+ className: tx("menu.item", "menu__item--checkbox", {}, classNames),
947
+ ref: forwardedRef
948
+ });
949
+ });
950
+ var ContextMenuSeparator = /* @__PURE__ */ (0, import_react20.forwardRef)(({ classNames, ...props }, forwardedRef) => {
951
+ const { tx } = useThemeContext();
952
+ return /* @__PURE__ */ import_react20.default.createElement(ContextMenuPrimitive.Separator, {
953
+ ...props,
954
+ className: tx("menu.separator", "menu__item", {}, classNames),
955
+ ref: forwardedRef
956
+ });
957
+ });
958
+ var ContextMenuGroupLabel = /* @__PURE__ */ (0, import_react20.forwardRef)(({ classNames, ...props }, forwardedRef) => {
959
+ const { tx } = useThemeContext();
960
+ return /* @__PURE__ */ import_react20.default.createElement(ContextMenuPrimitive.Label, {
961
+ ...props,
962
+ className: tx("menu.groupLabel", "menu__group__label", {}, classNames),
963
+ ref: forwardedRef
964
+ });
965
+ });
966
+ var ContextMenu2 = {
967
+ Root: ContextMenuRoot,
968
+ Trigger: ContextMenuTrigger,
969
+ Portal: ContextMenuPortal,
970
+ Content: ContextMenuContent,
971
+ Viewport: ContextMenuViewport,
972
+ Arrow: ContextMenuArrow,
973
+ Group: ContextMenuGroup,
974
+ Item: ContextMenuItem,
975
+ CheckboxItem: ContextMenuCheckboxItem,
976
+ ItemIndicator: ContextMenuItemIndicator,
977
+ Separator: ContextMenuSeparator,
978
+ GroupLabel: ContextMenuGroupLabel
979
+ };
980
+ var DROPDOWN_MENU_NAME = "DropdownMenu";
981
+ var [createDropdownMenuContext, createDropdownMenuScope] = (0, import_react_context5.createContextScope)(DROPDOWN_MENU_NAME, [
982
+ import_react_menu.createMenuScope
983
+ ]);
984
+ var useMenuScope = (0, import_react_menu.createMenuScope)();
985
+ var [DropdownMenuProvider, useDropdownMenuContext] = createDropdownMenuContext(DROPDOWN_MENU_NAME);
986
+ var DropdownMenuRoot = (props) => {
987
+ const { __scopeDropdownMenu, children, dir, open: openProp, defaultOpen, onOpenChange, modal = true } = props;
988
+ const menuScope = useMenuScope(__scopeDropdownMenu);
989
+ const triggerRef = (0, import_react21.useRef)(null);
990
+ const [open = false, setOpen] = (0, import_react_use_controllable_state.useControllableState)({
991
+ prop: openProp,
992
+ defaultProp: defaultOpen,
993
+ onChange: onOpenChange
994
+ });
995
+ return /* @__PURE__ */ import_react21.default.createElement(DropdownMenuProvider, {
996
+ scope: __scopeDropdownMenu,
997
+ triggerId: (0, import_react_id.useId)(),
998
+ triggerRef,
999
+ contentId: (0, import_react_id.useId)(),
1000
+ open,
1001
+ onOpenChange: setOpen,
1002
+ onOpenToggle: (0, import_react21.useCallback)(() => setOpen((prevOpen) => !prevOpen), [
1003
+ setOpen
1004
+ ]),
1005
+ modal
1006
+ }, /* @__PURE__ */ import_react21.default.createElement(MenuPrimitive.Root, {
1007
+ ...menuScope,
1008
+ open,
1009
+ onOpenChange: setOpen,
1010
+ dir,
1011
+ modal
1012
+ }, children));
1013
+ };
1014
+ DropdownMenuRoot.displayName = DROPDOWN_MENU_NAME;
1015
+ var TRIGGER_NAME = "DropdownMenuTrigger";
1016
+ var DropdownMenuTrigger = /* @__PURE__ */ (0, import_react21.forwardRef)((props, forwardedRef) => {
1017
+ const { __scopeDropdownMenu, disabled = false, ...triggerProps } = props;
1018
+ const context = useDropdownMenuContext(TRIGGER_NAME, __scopeDropdownMenu);
1019
+ const menuScope = useMenuScope(__scopeDropdownMenu);
1020
+ return /* @__PURE__ */ import_react21.default.createElement(MenuPrimitive.Anchor, {
1021
+ asChild: true,
1022
+ ...menuScope
1023
+ }, /* @__PURE__ */ import_react21.default.createElement(import_react_primitive7.Primitive.button, {
1024
+ type: "button",
1025
+ id: context.triggerId,
1026
+ "aria-haspopup": "menu",
1027
+ "aria-expanded": context.open,
1028
+ "aria-controls": context.open ? context.contentId : void 0,
1029
+ "data-state": context.open ? "open" : "closed",
1030
+ "data-disabled": disabled ? "" : void 0,
1031
+ disabled,
1032
+ ...triggerProps,
1033
+ ref: (0, import_react_compose_refs.composeRefs)(forwardedRef, context.triggerRef),
1034
+ onPointerDown: (0, import_primitive.composeEventHandlers)(props.onPointerDown, (event) => {
1035
+ if (!disabled && event.button === 0 && event.ctrlKey === false) {
1036
+ context.onOpenToggle();
1037
+ if (!context.open) {
1038
+ event.preventDefault();
1039
+ }
1040
+ }
1041
+ }),
1042
+ onKeyDown: (0, import_primitive.composeEventHandlers)(props.onKeyDown, (event) => {
1043
+ if (disabled) {
1044
+ return;
1045
+ }
1046
+ if ([
1047
+ "Enter",
1048
+ " "
1049
+ ].includes(event.key)) {
1050
+ context.onOpenToggle();
1051
+ }
1052
+ if (event.key === "ArrowDown") {
1053
+ context.onOpenChange(true);
1054
+ }
1055
+ if ([
1056
+ "Enter",
1057
+ " ",
1058
+ "ArrowDown"
1059
+ ].includes(event.key)) {
1060
+ event.preventDefault();
1061
+ }
1062
+ })
1063
+ }));
1064
+ });
1065
+ DropdownMenuTrigger.displayName = TRIGGER_NAME;
1066
+ var VIRTUAL_TRIGGER_NAME = "DropdownMenuVirtualTrigger";
1067
+ var DropdownMenuVirtualTrigger = (props) => {
1068
+ const { __scopeDropdownMenu, virtualRef } = props;
1069
+ const context = useDropdownMenuContext(VIRTUAL_TRIGGER_NAME, __scopeDropdownMenu);
1070
+ const menuScope = useMenuScope(__scopeDropdownMenu);
1071
+ (0, import_react21.useEffect)(() => {
1072
+ if (virtualRef.current) {
1073
+ context.triggerRef.current = virtualRef.current;
1074
+ }
1075
+ });
1076
+ return /* @__PURE__ */ import_react21.default.createElement(MenuPrimitive.Anchor, {
1077
+ ...menuScope,
1078
+ virtualRef
1079
+ });
1080
+ };
1081
+ DropdownMenuVirtualTrigger.displayName = VIRTUAL_TRIGGER_NAME;
1082
+ var PORTAL_NAME = "DropdownMenuPortal";
1083
+ var DropdownMenuPortal = (props) => {
1084
+ const { __scopeDropdownMenu, ...portalProps } = props;
1085
+ const menuScope = useMenuScope(__scopeDropdownMenu);
1086
+ return /* @__PURE__ */ import_react21.default.createElement(MenuPrimitive.Portal, {
1087
+ ...menuScope,
1088
+ ...portalProps
1089
+ });
1090
+ };
1091
+ DropdownMenuPortal.displayName = PORTAL_NAME;
1092
+ var DropdownMenuViewport = /* @__PURE__ */ (0, import_react21.forwardRef)(({ classNames, asChild, children, ...props }, forwardedRef) => {
1093
+ const { tx } = useThemeContext();
1094
+ const Root5 = asChild ? import_react_slot7.Slot : import_react_primitive7.Primitive.div;
1095
+ return /* @__PURE__ */ import_react21.default.createElement(Root5, {
1096
+ ...props,
1097
+ className: tx("menu.viewport", "menu__viewport", {}, classNames),
1098
+ ref: forwardedRef
1099
+ }, children);
1100
+ });
1101
+ var CONTENT_NAME = "DropdownMenuContent";
1102
+ var DropdownMenuContent = /* @__PURE__ */ (0, import_react21.forwardRef)((props, forwardedRef) => {
1103
+ const { __scopeDropdownMenu, classNames, ...contentProps } = props;
1104
+ const { tx } = useThemeContext();
1105
+ const context = useDropdownMenuContext(CONTENT_NAME, __scopeDropdownMenu);
1106
+ const menuScope = useMenuScope(__scopeDropdownMenu);
1107
+ const hasInteractedOutsideRef = (0, import_react21.useRef)(false);
1108
+ return /* @__PURE__ */ import_react21.default.createElement(MenuPrimitive.Content, {
1109
+ id: context.contentId,
1110
+ "aria-labelledby": context.triggerId,
1111
+ ...menuScope,
1112
+ ...contentProps,
1113
+ ref: forwardedRef,
1114
+ onCloseAutoFocus: (0, import_primitive.composeEventHandlers)(props.onCloseAutoFocus, (event) => {
1115
+ if (!hasInteractedOutsideRef.current) {
1116
+ context.triggerRef.current?.focus();
1117
+ }
1118
+ hasInteractedOutsideRef.current = false;
1119
+ event.preventDefault();
1120
+ }),
1121
+ onInteractOutside: (0, import_primitive.composeEventHandlers)(props.onInteractOutside, (event) => {
1122
+ const originalEvent = event.detail.originalEvent;
1123
+ const ctrlLeftClick = originalEvent.button === 0 && originalEvent.ctrlKey === true;
1124
+ const isRightClick = originalEvent.button === 2 || ctrlLeftClick;
1125
+ if (!context.modal || isRightClick) {
1126
+ hasInteractedOutsideRef.current = true;
1127
+ }
1128
+ }),
1129
+ className: tx("menu.content", "menu", {}, classNames),
1130
+ style: {
1131
+ ...props.style,
1132
+ // re-namespace exposed content custom properties
1133
+ ...{
1134
+ "--radix-dropdown-menu-content-transform-origin": "var(--radix-popper-transform-origin)",
1135
+ "--radix-dropdown-menu-content-available-width": "var(--radix-popper-available-width)",
1136
+ "--radix-dropdown-menu-content-available-height": "var(--radix-popper-available-height)",
1137
+ "--radix-dropdown-menu-trigger-width": "var(--radix-popper-anchor-width)",
1138
+ "--radix-dropdown-menu-trigger-height": "var(--radix-popper-anchor-height)"
1139
+ }
1140
+ }
1141
+ });
1142
+ });
1143
+ DropdownMenuContent.displayName = CONTENT_NAME;
1144
+ var GROUP_NAME = "DropdownMenuGroup";
1145
+ var DropdownMenuGroup = /* @__PURE__ */ (0, import_react21.forwardRef)((props, forwardedRef) => {
1146
+ const { __scopeDropdownMenu, ...groupProps } = props;
1147
+ const menuScope = useMenuScope(__scopeDropdownMenu);
1148
+ return /* @__PURE__ */ import_react21.default.createElement(MenuPrimitive.Group, {
1149
+ ...menuScope,
1150
+ ...groupProps,
1151
+ ref: forwardedRef
1152
+ });
1153
+ });
1154
+ DropdownMenuGroup.displayName = GROUP_NAME;
1155
+ var LABEL_NAME = "DropdownMenuLabel";
1156
+ var DropdownMenuGroupLabel = /* @__PURE__ */ (0, import_react21.forwardRef)((props, forwardedRef) => {
1157
+ const { __scopeDropdownMenu, classNames, ...labelProps } = props;
1158
+ const menuScope = useMenuScope(__scopeDropdownMenu);
1159
+ const { tx } = useThemeContext();
1160
+ return /* @__PURE__ */ import_react21.default.createElement(MenuPrimitive.Label, {
1161
+ ...menuScope,
1162
+ ...labelProps,
1163
+ className: tx("menu.groupLabel", "menu__group__label", {}, classNames),
1164
+ ref: forwardedRef
1165
+ });
1166
+ });
1167
+ DropdownMenuGroupLabel.displayName = LABEL_NAME;
1168
+ var ITEM_NAME = "DropdownMenuItem";
1169
+ var DropdownMenuItem = /* @__PURE__ */ (0, import_react21.forwardRef)((props, forwardedRef) => {
1170
+ const { __scopeDropdownMenu, classNames, ...itemProps } = props;
1171
+ const menuScope = useMenuScope(__scopeDropdownMenu);
1172
+ const { tx } = useThemeContext();
1173
+ return /* @__PURE__ */ import_react21.default.createElement(MenuPrimitive.Item, {
1174
+ ...menuScope,
1175
+ ...itemProps,
1176
+ className: tx("menu.item", "menu__item", {}, classNames),
1177
+ ref: forwardedRef
1178
+ });
1179
+ });
1180
+ DropdownMenuItem.displayName = ITEM_NAME;
1181
+ var CHECKBOX_ITEM_NAME = "DropdownMenuCheckboxItem";
1182
+ var DropdownMenuCheckboxItem = /* @__PURE__ */ (0, import_react21.forwardRef)((props, forwardedRef) => {
1183
+ const { __scopeDropdownMenu, classNames, ...checkboxItemProps } = props;
1184
+ const menuScope = useMenuScope(__scopeDropdownMenu);
1185
+ const { tx } = useThemeContext();
1186
+ return /* @__PURE__ */ import_react21.default.createElement(MenuPrimitive.CheckboxItem, {
1187
+ ...menuScope,
1188
+ ...checkboxItemProps,
1189
+ className: tx("menu.item", "menu__item--checkbox", {}, classNames),
1190
+ ref: forwardedRef
1191
+ });
1192
+ });
1193
+ DropdownMenuCheckboxItem.displayName = CHECKBOX_ITEM_NAME;
1194
+ var RADIO_GROUP_NAME = "DropdownMenuRadioGroup";
1195
+ var DropdownMenuRadioGroup = /* @__PURE__ */ (0, import_react21.forwardRef)((props, forwardedRef) => {
1196
+ const { __scopeDropdownMenu, ...radioGroupProps } = props;
1197
+ const menuScope = useMenuScope(__scopeDropdownMenu);
1198
+ return /* @__PURE__ */ import_react21.default.createElement(MenuPrimitive.RadioGroup, {
1199
+ ...menuScope,
1200
+ ...radioGroupProps,
1201
+ ref: forwardedRef
1202
+ });
1203
+ });
1204
+ DropdownMenuRadioGroup.displayName = RADIO_GROUP_NAME;
1205
+ var RADIO_ITEM_NAME = "DropdownMenuRadioItem";
1206
+ var DropdownMenuRadioItem = /* @__PURE__ */ (0, import_react21.forwardRef)((props, forwardedRef) => {
1207
+ const { __scopeDropdownMenu, ...radioItemProps } = props;
1208
+ const menuScope = useMenuScope(__scopeDropdownMenu);
1209
+ return /* @__PURE__ */ import_react21.default.createElement(MenuPrimitive.RadioItem, {
1210
+ ...menuScope,
1211
+ ...radioItemProps,
1212
+ ref: forwardedRef
1213
+ });
1214
+ });
1215
+ DropdownMenuRadioItem.displayName = RADIO_ITEM_NAME;
1216
+ var INDICATOR_NAME = "DropdownMenuItemIndicator";
1217
+ var DropdownMenuItemIndicator = /* @__PURE__ */ (0, import_react21.forwardRef)((props, forwardedRef) => {
1218
+ const { __scopeDropdownMenu, ...itemIndicatorProps } = props;
1219
+ const menuScope = useMenuScope(__scopeDropdownMenu);
1220
+ return /* @__PURE__ */ import_react21.default.createElement(MenuPrimitive.ItemIndicator, {
1221
+ ...menuScope,
1222
+ ...itemIndicatorProps,
1223
+ ref: forwardedRef
1224
+ });
1225
+ });
1226
+ DropdownMenuItemIndicator.displayName = INDICATOR_NAME;
1227
+ var SEPARATOR_NAME = "DropdownMenuSeparator";
1228
+ var DropdownMenuSeparator = /* @__PURE__ */ (0, import_react21.forwardRef)((props, forwardedRef) => {
1229
+ const { __scopeDropdownMenu, classNames, ...separatorProps } = props;
1230
+ const menuScope = useMenuScope(__scopeDropdownMenu);
1231
+ const { tx } = useThemeContext();
1232
+ return /* @__PURE__ */ import_react21.default.createElement(MenuPrimitive.Separator, {
1233
+ ...menuScope,
1234
+ ...separatorProps,
1235
+ className: tx("menu.separator", "menu__item", {}, classNames),
1236
+ ref: forwardedRef
1237
+ });
1238
+ });
1239
+ DropdownMenuSeparator.displayName = SEPARATOR_NAME;
1240
+ var ARROW_NAME = "DropdownMenuArrow";
1241
+ var DropdownMenuArrow = /* @__PURE__ */ (0, import_react21.forwardRef)((props, forwardedRef) => {
1242
+ const { __scopeDropdownMenu, classNames, ...arrowProps } = props;
1243
+ const menuScope = useMenuScope(__scopeDropdownMenu);
1244
+ const { tx } = useThemeContext();
1245
+ return /* @__PURE__ */ import_react21.default.createElement(MenuPrimitive.Arrow, {
1246
+ ...menuScope,
1247
+ ...arrowProps,
1248
+ className: tx("menu.arrow", "menu__arrow", {}, classNames),
1249
+ ref: forwardedRef
1250
+ });
1251
+ });
1252
+ DropdownMenuArrow.displayName = ARROW_NAME;
1253
+ var DropdownMenuSub = (props) => {
1254
+ const { __scopeDropdownMenu, children, open: openProp, onOpenChange, defaultOpen } = props;
1255
+ const menuScope = useMenuScope(__scopeDropdownMenu);
1256
+ const [open = false, setOpen] = (0, import_react_use_controllable_state.useControllableState)({
1257
+ prop: openProp,
1258
+ defaultProp: defaultOpen,
1259
+ onChange: onOpenChange
1260
+ });
1261
+ return /* @__PURE__ */ import_react21.default.createElement(MenuPrimitive.Sub, {
1262
+ ...menuScope,
1263
+ open,
1264
+ onOpenChange: setOpen
1265
+ }, children);
1266
+ };
1267
+ var SUB_TRIGGER_NAME = "DropdownMenuSubTrigger";
1268
+ var DropdownMenuSubTrigger = /* @__PURE__ */ (0, import_react21.forwardRef)((props, forwardedRef) => {
1269
+ const { __scopeDropdownMenu, ...subTriggerProps } = props;
1270
+ const menuScope = useMenuScope(__scopeDropdownMenu);
1271
+ return /* @__PURE__ */ import_react21.default.createElement(MenuPrimitive.SubTrigger, {
1272
+ ...menuScope,
1273
+ ...subTriggerProps,
1274
+ ref: forwardedRef
1275
+ });
1276
+ });
1277
+ DropdownMenuSubTrigger.displayName = SUB_TRIGGER_NAME;
1278
+ var SUB_CONTENT_NAME = "DropdownMenuSubContent";
1279
+ var DropdownMenuSubContent = /* @__PURE__ */ (0, import_react21.forwardRef)((props, forwardedRef) => {
1280
+ const { __scopeDropdownMenu, ...subContentProps } = props;
1281
+ const menuScope = useMenuScope(__scopeDropdownMenu);
1282
+ return /* @__PURE__ */ import_react21.default.createElement(MenuPrimitive.SubContent, {
1283
+ ...menuScope,
1284
+ ...subContentProps,
1285
+ ref: forwardedRef,
1286
+ style: {
1287
+ ...props.style,
1288
+ // re-namespace exposed content custom properties
1289
+ ...{
1290
+ "--radix-dropdown-menu-content-transform-origin": "var(--radix-popper-transform-origin)",
1291
+ "--radix-dropdown-menu-content-available-width": "var(--radix-popper-available-width)",
1292
+ "--radix-dropdown-menu-content-available-height": "var(--radix-popper-available-height)",
1293
+ "--radix-dropdown-menu-trigger-width": "var(--radix-popper-anchor-width)",
1294
+ "--radix-dropdown-menu-trigger-height": "var(--radix-popper-anchor-height)"
1295
+ }
1296
+ }
1297
+ });
1298
+ });
1299
+ DropdownMenuSubContent.displayName = SUB_CONTENT_NAME;
1300
+ var DropdownMenu = {
1301
+ Root: DropdownMenuRoot,
1302
+ Trigger: DropdownMenuTrigger,
1303
+ VirtualTrigger: DropdownMenuVirtualTrigger,
1304
+ Portal: DropdownMenuPortal,
1305
+ Content: DropdownMenuContent,
1306
+ Viewport: DropdownMenuViewport,
1307
+ Group: DropdownMenuGroup,
1308
+ GroupLabel: DropdownMenuGroupLabel,
1309
+ Item: DropdownMenuItem,
1310
+ CheckboxItem: DropdownMenuCheckboxItem,
1311
+ RadioGroup: DropdownMenuRadioGroup,
1312
+ RadioItem: DropdownMenuRadioItem,
1313
+ ItemIndicator: DropdownMenuItemIndicator,
1314
+ Separator: DropdownMenuSeparator,
1315
+ Arrow: DropdownMenuArrow,
1316
+ Sub: DropdownMenuSub,
1317
+ SubTrigger: DropdownMenuSubTrigger,
1318
+ SubContent: DropdownMenuSubContent
1319
+ };
1320
+ var useDropdownMenuMenuScope = useMenuScope;
1321
+ var Label3 = /* @__PURE__ */ (0, import_react23.forwardRef)(({ srOnly, classNames, children, ...props }, forwardedRef) => {
1322
+ const { tx } = useThemeContext();
1323
+ return /* @__PURE__ */ import_react23.default.createElement(import_react_input.Label, {
1324
+ ...props,
1325
+ className: tx("input.label", "input__label", {
1326
+ srOnly
1327
+ }, classNames),
1328
+ ref: forwardedRef
1329
+ }, children);
1330
+ });
1331
+ var Description = /* @__PURE__ */ (0, import_react23.forwardRef)(({ srOnly, classNames, children, ...props }, forwardedRef) => {
1332
+ const { tx } = useThemeContext();
1333
+ return /* @__PURE__ */ import_react23.default.createElement(import_react_input.Description, {
1334
+ ...props,
1335
+ className: tx("input.description", "input__description", {
1336
+ srOnly
1337
+ }, classNames),
1338
+ ref: forwardedRef
1339
+ }, children);
1340
+ });
1341
+ var Validation = /* @__PURE__ */ (0, import_react23.forwardRef)(({ __inputScope, srOnly, classNames, children, ...props }, forwardedRef) => {
1342
+ const { tx } = useThemeContext();
1343
+ const { validationValence } = (0, import_react_input.useInputContext)(import_react_input.INPUT_NAME, __inputScope);
1344
+ return /* @__PURE__ */ import_react23.default.createElement(import_react_input.Validation, {
1345
+ ...props,
1346
+ className: tx("input.validation", `input__validation-message input__validation-message--${validationValence}`, {
1347
+ srOnly,
1348
+ validationValence
1349
+ }, classNames),
1350
+ ref: forwardedRef
1351
+ }, children);
1352
+ });
1353
+ var DescriptionAndValidation = /* @__PURE__ */ (0, import_react23.forwardRef)(({ srOnly, classNames, children, ...props }, forwardedRef) => {
1354
+ const { tx } = useThemeContext();
1355
+ return /* @__PURE__ */ import_react23.default.createElement(import_react_input.DescriptionAndValidation, {
1356
+ ...props,
1357
+ className: tx("input.descriptionAndValidation", "input__description-and-validation", {
1358
+ srOnly
1359
+ }, classNames),
1360
+ ref: forwardedRef
1361
+ }, children);
1362
+ });
1363
+ var PinInput = /* @__PURE__ */ (0, import_react23.forwardRef)(({ density: propsDensity, elevation: propsElevation, segmentClassName: propsSegmentClassName, inputClassName, variant, ...props }, forwardedRef) => {
1364
+ const { hasIosKeyboard: hasIosKeyboard2 } = useThemeContext();
1365
+ const { tx } = useThemeContext();
1366
+ const density = useDensityContext(propsDensity);
1367
+ const elevation = useElevationContext(propsElevation);
1368
+ const segmentClassName = (0, import_react23.useCallback)(({ focused, validationValence }) => tx("input.input", "input--pin-segment", {
1369
+ variant: "static",
1370
+ focused,
1371
+ disabled: props.disabled,
1372
+ density,
1373
+ elevation,
1374
+ validationValence
1375
+ }, propsSegmentClassName), [
1376
+ tx,
1377
+ props.disabled,
1378
+ elevation,
1379
+ propsElevation,
1380
+ density
1381
+ ]);
1382
+ return /* @__PURE__ */ import_react23.default.createElement(import_react_input.PinInput, {
1383
+ ...props,
1384
+ segmentClassName,
1385
+ ...props.autoFocus && !hasIosKeyboard2 && {
1386
+ autoFocus: true
1387
+ },
1388
+ inputClassName: tx("input.inputWithSegments", "input input--pin", {
1389
+ disabled: props.disabled
1390
+ }, inputClassName),
1391
+ ref: forwardedRef
1392
+ });
1393
+ });
1394
+ var TextInput = /* @__PURE__ */ (0, import_react23.forwardRef)(({ __inputScope, classNames, density: propsDensity, elevation: propsElevation, variant, ...props }, forwardedRef) => {
1395
+ const { hasIosKeyboard: hasIosKeyboard2 } = useThemeContext();
1396
+ const themeContextValue = useThemeContext();
1397
+ const density = useDensityContext(propsDensity);
1398
+ const elevation = useElevationContext(propsElevation);
1399
+ const { validationValence } = (0, import_react_input.useInputContext)(import_react_input.INPUT_NAME, __inputScope);
1400
+ const { tx } = themeContextValue;
1401
+ return /* @__PURE__ */ import_react23.default.createElement(import_react_input.TextInput, {
1402
+ ...props,
1403
+ className: tx("input.input", "input", {
1404
+ variant,
1405
+ disabled: props.disabled,
1406
+ density,
1407
+ elevation,
1408
+ validationValence
1409
+ }, classNames),
1410
+ ...props.autoFocus && !hasIosKeyboard2 && {
1411
+ autoFocus: true
1412
+ },
1413
+ ref: forwardedRef
1414
+ });
1415
+ });
1416
+ var TextArea = /* @__PURE__ */ (0, import_react23.forwardRef)(({ __inputScope, classNames, density: propsDensity, elevation: propsElevation, variant, ...props }, forwardedRef) => {
1417
+ const { hasIosKeyboard: hasIosKeyboard2 } = useThemeContext();
1418
+ const { tx } = useThemeContext();
1419
+ const density = useDensityContext(propsDensity);
1420
+ const elevation = useElevationContext(propsElevation);
1421
+ const { validationValence } = (0, import_react_input.useInputContext)(import_react_input.INPUT_NAME, __inputScope);
1422
+ return /* @__PURE__ */ import_react23.default.createElement(import_react_input.TextArea, {
1423
+ ...props,
1424
+ className: tx("input.input", "input--text-area", {
1425
+ variant,
1426
+ disabled: props.disabled,
1427
+ density,
1428
+ elevation,
1429
+ validationValence
1430
+ }, classNames),
1431
+ ...props.autoFocus && !hasIosKeyboard2 && {
1432
+ autoFocus: true
1433
+ },
1434
+ ref: forwardedRef
1435
+ });
1436
+ });
1437
+ var Checkbox = /* @__PURE__ */ (0, import_react23.forwardRef)(({ __inputScope, checked: propsChecked, defaultChecked: propsDefaultChecked, onCheckedChange: propsOnCheckedChange, size, weight = "bold", classNames, ...props }, forwardedRef) => {
1438
+ const [checked, onCheckedChange] = (0, import_react_use_controllable_state2.useControllableState)({
1439
+ prop: propsChecked,
1440
+ defaultProp: propsDefaultChecked,
1441
+ onChange: propsOnCheckedChange
1442
+ });
1443
+ const { id, validationValence, descriptionId, errorMessageId } = (0, import_react_input.useInputContext)(import_react_input.INPUT_NAME, __inputScope);
1444
+ const { tx } = useThemeContext();
1445
+ const Icon3 = checked === "indeterminate" ? import_react22.Minus : checked ? import_react22.Check : import_react23.Fragment;
1446
+ return /* @__PURE__ */ import_react23.default.createElement(import_react_checkbox.Root, {
1447
+ ...props,
1448
+ checked,
1449
+ onCheckedChange,
1450
+ id,
1451
+ "aria-describedby": descriptionId,
1452
+ ...validationValence === "error" && {
1453
+ "aria-invalid": "true",
1454
+ "aria-errormessage": errorMessageId
1455
+ },
1456
+ className: tx("input.checkbox", "input--checkbox", {
1457
+ size
1458
+ }, "shrink-0", classNames),
1459
+ ref: forwardedRef
1460
+ }, /* @__PURE__ */ import_react23.default.createElement(import_react_checkbox.Indicator, {
1461
+ asChild: true
1462
+ }, /* @__PURE__ */ import_react23.default.createElement(Icon3, checked && {
1463
+ weight,
1464
+ className: tx("input.checkboxIndicator", "input--checkbox__indicator", {
1465
+ size
1466
+ })
1467
+ })));
1468
+ });
1469
+ var Switch = /* @__PURE__ */ (0, import_react23.forwardRef)(({ __inputScope, checked: propsChecked, defaultChecked: propsDefaultChecked, onCheckedChange: propsOnCheckedChange, size = 5, classNames, ...props }, forwardedRef) => {
1470
+ const { tx } = useThemeContext();
1471
+ const [checked, onCheckedChange] = (0, import_react_use_controllable_state2.useControllableState)({
1472
+ prop: propsChecked,
1473
+ defaultProp: propsDefaultChecked,
1474
+ onChange: propsOnCheckedChange
1475
+ });
1476
+ const { id, validationValence, descriptionId, errorMessageId } = (0, import_react_input.useInputContext)(import_react_input.INPUT_NAME, __inputScope);
1477
+ return /* @__PURE__ */ import_react23.default.createElement(import_react_switch.Root, {
1478
+ ...props,
1479
+ checked,
1480
+ onCheckedChange,
1481
+ id,
1482
+ "aria-describedby": descriptionId,
1483
+ ...validationValence === "error" && {
1484
+ "aria-invalid": "true",
1485
+ "aria-errormessage": errorMessageId
1486
+ },
1487
+ className: tx("input.switch", "input--switch", {
1488
+ size
1489
+ }, classNames),
1490
+ ref: forwardedRef
1491
+ }, /* @__PURE__ */ import_react23.default.createElement(import_react_switch.Thumb, {
1492
+ className: tx("input.switchThumb", "input--switch__thumb", {
1493
+ size
1494
+ })
1495
+ }));
1496
+ });
1497
+ var Input = {
1498
+ Root: import_react_input.InputRoot,
1499
+ PinInput,
1500
+ TextInput,
1501
+ TextArea,
1502
+ Checkbox,
1503
+ Switch,
1504
+ Label: Label3,
1505
+ Description,
1506
+ Validation,
1507
+ DescriptionAndValidation
1508
+ };
1509
+ var DensityContext = /* @__PURE__ */ (0, import_react26.createContext)({
1510
+ density: "fine"
1511
+ });
1512
+ var DensityProvider = ({ density, children }) => /* @__PURE__ */ import_react26.default.createElement(DensityContext.Provider, {
1513
+ value: {
1514
+ density
1515
+ }
1516
+ }, children);
1517
+ var List = /* @__PURE__ */ (0, import_react25.forwardRef)(({ classNames, children, ...props }, forwardedRef) => {
1518
+ const { tx } = useThemeContext();
1519
+ const density = useDensityContext(props.density);
1520
+ return /* @__PURE__ */ import_react25.default.createElement(DensityProvider, {
1521
+ density
1522
+ }, /* @__PURE__ */ import_react25.default.createElement(import_react_list.List, {
1523
+ ...props,
1524
+ className: tx("list.root", "list", {}, classNames),
1525
+ ref: forwardedRef
1526
+ }, children));
1527
+ });
1528
+ var ListItemEndcap = /* @__PURE__ */ (0, import_react25.forwardRef)(({ children, classNames, asChild, ...props }, forwardedRef) => {
1529
+ const Root5 = asChild ? import_react_slot8.Slot : "div";
1530
+ const density = useDensityContext();
1531
+ const { tx } = useThemeContext();
1532
+ return /* @__PURE__ */ import_react25.default.createElement(Root5, {
1533
+ ...!asChild && {
1534
+ role: "none"
1535
+ },
1536
+ ...props,
1537
+ className: tx("list.item.endcap", "list__listItem__endcap", {
1538
+ density
1539
+ }, classNames),
1540
+ ref: forwardedRef
1541
+ }, children);
1542
+ });
1543
+ var MockListItemOpenTrigger = ({ classNames, ...props }) => {
1544
+ const density = useDensityContext();
1545
+ const { tx } = useThemeContext();
1546
+ return /* @__PURE__ */ import_react25.default.createElement("div", {
1547
+ role: "none",
1548
+ ...props,
1549
+ className: tx("list.item.openTrigger", "list__listItem__openTrigger--mock", {
1550
+ density
1551
+ }, classNames)
1552
+ });
1553
+ };
1554
+ var ListItemHeading = /* @__PURE__ */ (0, import_react25.forwardRef)(({ children, classNames, ...props }, forwardedRef) => {
1555
+ const { tx } = useThemeContext();
1556
+ const density = useDensityContext();
1557
+ return /* @__PURE__ */ import_react25.default.createElement(import_react_list.ListItemHeading, {
1558
+ ...props,
1559
+ className: tx("list.item.heading", "list__listItem__heading", {
1560
+ density
1561
+ }, classNames),
1562
+ ref: forwardedRef
1563
+ }, children);
1564
+ });
1565
+ var ListItemOpenTrigger = /* @__PURE__ */ (0, import_react25.forwardRef)(({ __listItemScope, classNames, children, ...props }, forwardedRef) => {
1566
+ const { tx } = useThemeContext();
1567
+ const density = useDensityContext();
1568
+ const { open } = (0, import_react_list.useListItemContext)(import_react_list.LIST_ITEM_NAME, __listItemScope);
1569
+ const Icon3 = open ? import_react24.CaretDown : import_react24.CaretRight;
1570
+ return /* @__PURE__ */ import_react25.default.createElement(import_react_list.ListItemOpenTrigger, {
1571
+ ...props,
1572
+ className: tx("list.item.openTrigger", "list__listItem__openTrigger", {
1573
+ density
1574
+ }, classNames),
1575
+ ref: forwardedRef
1576
+ }, children || /* @__PURE__ */ import_react25.default.createElement(Icon3, {
1577
+ weight: "bold",
1578
+ className: tx("list.item.openTriggerIcon", "list__listItem__openTrigger__icon", {})
1579
+ }));
1580
+ });
1581
+ var ListItemRoot = /* @__PURE__ */ (0, import_react25.forwardRef)(({ classNames, children, ...props }, forwardedRef) => {
1582
+ const { tx } = useThemeContext();
1583
+ const density = useDensityContext();
1584
+ return /* @__PURE__ */ import_react25.default.createElement(import_react_list.ListItem, {
1585
+ ...props,
1586
+ className: tx("list.item.root", "list__listItem", {
1587
+ density,
1588
+ collapsible: props.collapsible
1589
+ }, classNames),
1590
+ ref: forwardedRef
1591
+ }, children);
1592
+ });
1593
+ var ListItem = {
1594
+ Root: ListItemRoot,
1595
+ Endcap: ListItemEndcap,
1596
+ Heading: ListItemHeading,
1597
+ OpenTrigger: ListItemOpenTrigger,
1598
+ CollapsibleContent: import_react_list.ListItemCollapsibleContent,
1599
+ MockOpenTrigger: MockListItemOpenTrigger
1600
+ };
1601
+ var TreeRoot = /* @__PURE__ */ (0, import_react27.forwardRef)((props, forwardedRef) => {
1602
+ return /* @__PURE__ */ import_react27.default.createElement(List, {
1603
+ ...props,
1604
+ ref: forwardedRef
1605
+ });
1606
+ });
1607
+ var TreeBranch = /* @__PURE__ */ (0, import_react27.forwardRef)(({ __listScope, ...props }, forwardedRef) => {
1608
+ const { headingId } = (0, import_react_list.useListItemContext)(import_react_list.LIST_ITEM_NAME, __listScope);
1609
+ return /* @__PURE__ */ import_react27.default.createElement(List, {
1610
+ ...props,
1611
+ "aria-labelledby": headingId,
1612
+ ref: forwardedRef
1613
+ });
1614
+ });
1615
+ var TreeItemRoot = /* @__PURE__ */ (0, import_react27.forwardRef)((props, forwardedRef) => {
1616
+ return /* @__PURE__ */ import_react27.default.createElement(ListItem.Root, {
1617
+ role: "treeitem",
1618
+ ...props,
1619
+ ref: forwardedRef
1620
+ });
1621
+ });
1622
+ var TreeItemHeading = ListItem.Heading;
1623
+ var TreeItemOpenTrigger = ListItem.OpenTrigger;
1624
+ var MockTreeItemOpenTrigger = ListItem.MockOpenTrigger;
1625
+ var TreeItemBody = ListItem.CollapsibleContent;
1626
+ var Tree = {
1627
+ Root: TreeRoot,
1628
+ Branch: TreeBranch
1629
+ };
1630
+ var TreeItem = {
1631
+ Root: TreeItemRoot,
1632
+ Heading: TreeItemHeading,
1633
+ Body: TreeItemBody,
1634
+ OpenTrigger: TreeItemOpenTrigger,
1635
+ MockOpenTrigger: MockTreeItemOpenTrigger
1636
+ };
1637
+ var TREEGRID_ROW_NAME = "TreegridRow";
1638
+ var [createTreegridRowContext, createTreegridRowScope] = (0, import_react_context6.createContextScope)(TREEGRID_ROW_NAME, []);
1639
+ var [TreegridRowProvider, useTreegridRowContext] = createTreegridRowContext(TREEGRID_ROW_NAME);
1640
+ var PATH_SEPARATOR = "~";
1641
+ var PARENT_OF_SEPARATOR = " ";
1642
+ var TreegridRoot = /* @__PURE__ */ (0, import_react28.forwardRef)(({ asChild, classNames, children, style, gridTemplateColumns, ...props }, forwardedRef) => {
1643
+ const { tx } = useThemeContext();
1644
+ const Root5 = asChild ? import_react_slot9.Slot : import_react_primitive8.Primitive.div;
1645
+ const arrowNavigationAttrs = (0, import_react_tabster.useArrowNavigationGroup)({
1646
+ axis: "vertical",
1647
+ tabbable: false,
1648
+ circular: true
1649
+ });
1650
+ return /* @__PURE__ */ import_react28.default.createElement(Root5, {
1651
+ role: "treegrid",
1652
+ ...arrowNavigationAttrs,
1653
+ ...props,
1654
+ className: tx("treegrid.root", "treegrid", {}, classNames),
1655
+ style: {
1656
+ ...style,
1657
+ gridTemplateColumns
1658
+ },
1659
+ ref: forwardedRef
1660
+ }, children);
1661
+ });
1662
+ var TreegridRow = /* @__PURE__ */ (0, import_react28.forwardRef)(({ __treegridRowScope, asChild, classNames, children, id, parentOf, open: propsOpen, defaultOpen, onOpenChange: propsOnOpenChange, ...props }, forwardedRef) => {
1663
+ const { tx } = useThemeContext();
1664
+ const Root5 = asChild ? import_react_slot9.Slot : import_react_primitive8.Primitive.div;
1665
+ const pathParts = id.split(PATH_SEPARATOR);
1666
+ const level = pathParts.length - 1;
1667
+ const [open, onOpenChange] = (0, import_react_use_controllable_state3.useControllableState)({
1668
+ prop: propsOpen,
1669
+ onChange: propsOnOpenChange,
1670
+ defaultProp: defaultOpen
1671
+ });
1672
+ const focusableGroupAttrs = (0, import_react_tabster.useFocusableGroup)({
1673
+ tabBehavior: "limited"
1674
+ });
1675
+ const arrowGroupAttrs = (0, import_react_tabster.useArrowNavigationGroup)({
1676
+ axis: "horizontal",
1677
+ tabbable: false,
1678
+ circular: false,
1679
+ memorizeCurrent: false
1680
+ });
1681
+ return /* @__PURE__ */ import_react28.default.createElement(TreegridRowProvider, {
1682
+ open,
1683
+ onOpenChange,
1684
+ scope: __treegridRowScope
1685
+ }, /* @__PURE__ */ import_react28.default.createElement(Root5, {
1686
+ role: "row",
1687
+ "aria-level": level,
1688
+ className: tx("treegrid.row", "treegrid__row", {
1689
+ level
1690
+ }, classNames),
1691
+ ...parentOf && {
1692
+ "aria-expanded": open,
1693
+ "aria-owns": parentOf
1694
+ },
1695
+ tabIndex: 0,
1696
+ ...focusableGroupAttrs,
1697
+ ...props,
1698
+ id,
1699
+ ref: forwardedRef
1700
+ }, /* @__PURE__ */ import_react28.default.createElement("div", {
1701
+ role: "none",
1702
+ className: "contents",
1703
+ ...arrowGroupAttrs
1704
+ }, children)));
1705
+ });
1706
+ var TreegridCell = /* @__PURE__ */ (0, import_react28.forwardRef)(({ classNames, children, indent, ...props }, forwardedRef) => {
1707
+ const { tx } = useThemeContext();
1708
+ return /* @__PURE__ */ import_react28.default.createElement("div", {
1709
+ role: "gridcell",
1710
+ className: tx("treegrid.cell", "treegrid__cell", {
1711
+ indent
1712
+ }, classNames),
1713
+ ...props,
1714
+ ref: forwardedRef
1715
+ }, children);
1716
+ });
1717
+ var Treegrid = {
1718
+ Root: TreegridRoot,
1719
+ Row: TreegridRow,
1720
+ Cell: TreegridCell,
1721
+ PARENT_OF_SEPARATOR,
1722
+ PATH_SEPARATOR,
1723
+ createTreegridRowScope,
1724
+ useTreegridRowContext
1725
+ };
1726
+ var MotionState;
1727
+ (function(MotionState2) {
1728
+ MotionState2[MotionState2["IDLE"] = 0] = "IDLE";
1729
+ MotionState2[MotionState2["DEBOUNCING"] = 1] = "DEBOUNCING";
1730
+ MotionState2[MotionState2["FOLLOWING"] = 2] = "FOLLOWING";
1731
+ })(MotionState || (MotionState = {}));
1732
+ var useSwipeToDismiss = (ref, {
1733
+ onDismiss,
1734
+ dismissThreshold = 64,
1735
+ debounceThreshold = 8,
1736
+ offset = 0
1737
+ /* side = 'inline-start' */
1738
+ }) => {
1739
+ const $root = ref.current;
1740
+ const [motionState, setMotionState] = (0, import_react30.useState)(0);
1741
+ const [gestureStartX, setGestureStartX] = (0, import_react30.useState)(0);
1742
+ const setIdle = (0, import_react30.useCallback)(() => {
1743
+ setMotionState(0);
1744
+ $root?.style.removeProperty("inset-inline-start");
1745
+ $root?.style.setProperty("transition-duration", "200ms");
1746
+ }, [
1747
+ $root
1748
+ ]);
1749
+ const setFollowing = (0, import_react30.useCallback)(() => {
1750
+ setMotionState(2);
1751
+ $root?.style.setProperty("transition-duration", "0ms");
1752
+ }, [
1753
+ $root
1754
+ ]);
1755
+ const handlePointerDown = (0, import_react30.useCallback)(({ screenX }) => {
1756
+ if (motionState === 0) {
1757
+ setMotionState(1);
1758
+ setGestureStartX(screenX);
1759
+ }
1760
+ }, [
1761
+ motionState
1762
+ ]);
1763
+ const handlePointerMove = (0, import_react30.useCallback)(({ screenX }) => {
1764
+ if ($root) {
1765
+ const delta = Math.min(screenX - gestureStartX, 0);
1766
+ switch (motionState) {
1767
+ case 2:
1768
+ if (Math.abs(delta) > dismissThreshold) {
1769
+ setIdle();
1770
+ onDismiss?.();
1771
+ } else {
1772
+ $root.style.setProperty("inset-inline-start", `${offset + delta}px`);
1773
+ }
1774
+ break;
1775
+ case 1:
1776
+ if (Math.abs(delta) > debounceThreshold) {
1777
+ setFollowing();
1778
+ }
1779
+ break;
1780
+ }
1781
+ }
1782
+ }, [
1783
+ $root,
1784
+ motionState,
1785
+ gestureStartX
1786
+ ]);
1787
+ const handlePointerUp = (0, import_react30.useCallback)(() => {
1788
+ setIdle();
1789
+ }, [
1790
+ setIdle
1791
+ ]);
1792
+ (0, import_react30.useEffect)(() => {
1793
+ $root?.addEventListener("pointerdown", handlePointerDown);
1794
+ return () => {
1795
+ $root?.removeEventListener("pointerdown", handlePointerDown);
1796
+ };
1797
+ }, [
1798
+ $root,
1799
+ handlePointerDown
1800
+ ]);
1801
+ (0, import_react30.useEffect)(() => {
1802
+ $root && document.documentElement.addEventListener("pointermove", handlePointerMove);
1803
+ return () => {
1804
+ document.documentElement.removeEventListener("pointermove", handlePointerMove);
1805
+ };
1806
+ }, [
1807
+ $root,
1808
+ handlePointerMove
1809
+ ]);
1810
+ (0, import_react30.useEffect)(() => {
1811
+ $root && document.documentElement.addEventListener("pointerup", handlePointerUp);
1812
+ return () => {
1813
+ document.documentElement.removeEventListener("pointerup", handlePointerUp);
1814
+ };
1815
+ }, [
1816
+ $root,
1817
+ handlePointerUp
1818
+ ]);
1819
+ };
1820
+ var __dxlog_file = "/home/runner/work/dxos/dxos/packages/ui/react-ui/src/components/Main/Main.tsx";
1821
+ var MAIN_ROOT_NAME = "MainRoot";
1822
+ var NAVIGATION_SIDEBAR_NAME = "NavigationSidebar";
1823
+ var COMPLEMENTARY_SIDEBAR_NAME = "ComplementarySidebar";
1824
+ var MAIN_NAME = "Main";
1825
+ var GENERIC_CONSUMER_NAME = "GenericConsumer";
1826
+ var landmarkAttr = "data-main-landmark";
1827
+ var useLandmarkMover = (propsOnKeyDown, landmark) => {
1828
+ const handleKeyDown = (0, import_react29.useCallback)((event) => {
1829
+ const target = event.target;
1830
+ if (event.target === event.currentTarget && event.key === "Tab" && target.hasAttribute(landmarkAttr)) {
1831
+ event.preventDefault();
1832
+ const landmarks = Array.from(document.querySelectorAll(`[${landmarkAttr}]:not([inert])`)).map((el) => el.hasAttribute(landmarkAttr) ? parseInt(el.getAttribute(landmarkAttr)) : NaN).sort();
1833
+ const l = landmarks.length;
1834
+ const cursor = landmarks.indexOf(parseInt(target.getAttribute(landmarkAttr)));
1835
+ const nextLandmark = landmarks[(cursor + l + (event.getModifierState("Shift") ? -1 : 1)) % l];
1836
+ document.querySelector(`[${landmarkAttr}="${nextLandmark}"]`)?.focus();
1837
+ }
1838
+ propsOnKeyDown?.(event);
1839
+ }, [
1840
+ propsOnKeyDown
1841
+ ]);
1842
+ const focusableAttrs = (0, import_react_tabster2.useFocusableGroup)({
1843
+ tabBehavior: "limited",
1844
+ ignoreDefaultKeydown: {
1845
+ Tab: true
1846
+ }
1847
+ });
1848
+ return {
1849
+ onKeyDown: handleKeyDown,
1850
+ [landmarkAttr]: landmark,
1851
+ tabIndex: 0,
1852
+ ...focusableAttrs
1853
+ };
1854
+ };
1855
+ var [MainProvider, useMainContext] = (0, import_react_context7.createContext)(MAIN_NAME, {
1856
+ resizing: false,
1857
+ navigationSidebarOpen: false,
1858
+ setNavigationSidebarOpen: (nextOpen) => {
1859
+ import_log.log.warn("Attempt to set sidebar state without initializing `MainRoot`", void 0, {
1860
+ F: __dxlog_file,
1861
+ L: 81,
1862
+ S: void 0,
1863
+ C: (f, a) => f(...a)
1864
+ });
1865
+ },
1866
+ complementarySidebarOpen: false,
1867
+ setComplementarySidebarOpen: (nextOpen) => {
1868
+ import_log.log.warn("Attempt to set sidebar state without initializing `MainRoot`", void 0, {
1869
+ F: __dxlog_file,
1870
+ L: 86,
1871
+ S: void 0,
1872
+ C: (f, a) => f(...a)
1873
+ });
1874
+ }
1875
+ });
1876
+ var useSidebars = (consumerName = GENERIC_CONSUMER_NAME) => {
1877
+ const { setNavigationSidebarOpen, navigationSidebarOpen, setComplementarySidebarOpen, complementarySidebarOpen } = useMainContext(consumerName);
1878
+ return {
1879
+ navigationSidebarOpen,
1880
+ setNavigationSidebarOpen,
1881
+ toggleNavigationSidebar: (0, import_react29.useCallback)(() => setNavigationSidebarOpen(!navigationSidebarOpen), [
1882
+ navigationSidebarOpen,
1883
+ setNavigationSidebarOpen
1884
+ ]),
1885
+ openNavigationSidebar: (0, import_react29.useCallback)(() => setNavigationSidebarOpen(true), [
1886
+ setNavigationSidebarOpen
1887
+ ]),
1888
+ closeNavigationSidebar: (0, import_react29.useCallback)(() => setNavigationSidebarOpen(false), [
1889
+ setNavigationSidebarOpen
1890
+ ]),
1891
+ complementarySidebarOpen,
1892
+ setComplementarySidebarOpen,
1893
+ toggleComplementarySidebar: (0, import_react29.useCallback)(() => setComplementarySidebarOpen(!complementarySidebarOpen), [
1894
+ complementarySidebarOpen,
1895
+ setComplementarySidebarOpen
1896
+ ]),
1897
+ openComplementarySidebar: (0, import_react29.useCallback)(() => setComplementarySidebarOpen(true), [
1898
+ setComplementarySidebarOpen
1899
+ ]),
1900
+ closeComplementarySidebar: (0, import_react29.useCallback)(() => setComplementarySidebarOpen(false), [
1901
+ setComplementarySidebarOpen
1902
+ ])
1903
+ };
1904
+ };
1905
+ var resizeDebounce = 3e3;
1906
+ var MainRoot = ({ navigationSidebarOpen: propsNavigationSidebarOpen, defaultNavigationSidebarOpen, onNavigationSidebarOpenChange, complementarySidebarOpen: propsComplementarySidebarOpen, defaultComplementarySidebarOpen, onComplementarySidebarOpenChange, children, ...props }) => {
1907
+ const [isLg] = (0, import_react_hooks3.useMediaQuery)("lg", {
1908
+ ssr: false
1909
+ });
1910
+ const [navigationSidebarOpen = isLg, setNavigationSidebarOpen] = (0, import_react_use_controllable_state4.useControllableState)({
1911
+ prop: propsNavigationSidebarOpen,
1912
+ defaultProp: defaultNavigationSidebarOpen,
1913
+ onChange: onNavigationSidebarOpenChange
1914
+ });
1915
+ const [complementarySidebarOpen = false, setComplementarySidebarOpen] = (0, import_react_use_controllable_state4.useControllableState)({
1916
+ prop: propsComplementarySidebarOpen,
1917
+ defaultProp: defaultComplementarySidebarOpen,
1918
+ onChange: onComplementarySidebarOpenChange
1919
+ });
1920
+ const [resizing, setResizing] = (0, import_react29.useState)(false);
1921
+ const resizeInterval = (0, import_react29.useRef)(null);
1922
+ const handleResize = (0, import_react29.useCallback)(() => {
1923
+ setResizing(true);
1924
+ if (resizeInterval.current) {
1925
+ clearTimeout(resizeInterval.current);
1926
+ }
1927
+ resizeInterval.current = setTimeout(() => {
1928
+ setResizing(false);
1929
+ resizeInterval.current = null;
1930
+ }, resizeDebounce);
1931
+ }, []);
1932
+ (0, import_react29.useEffect)(() => {
1933
+ window.addEventListener("resize", handleResize);
1934
+ return () => window.removeEventListener("resize", handleResize);
1935
+ }, [
1936
+ handleResize
1937
+ ]);
1938
+ return /* @__PURE__ */ import_react29.default.createElement(MainProvider, {
1939
+ ...props,
1940
+ navigationSidebarOpen,
1941
+ setNavigationSidebarOpen,
1942
+ complementarySidebarOpen,
1943
+ setComplementarySidebarOpen,
1944
+ resizing
1945
+ }, children);
1946
+ };
1947
+ MainRoot.displayName = MAIN_ROOT_NAME;
1948
+ var handleOpenAutoFocus = (event) => {
1949
+ !document.body.hasAttribute("data-is-keyboard") && event.preventDefault();
1950
+ };
1951
+ var MainSidebar = /* @__PURE__ */ (0, import_react29.forwardRef)(({ classNames, children, swipeToDismiss, onOpenAutoFocus, open, resizing, setOpen, side, ...props }, forwardedRef) => {
1952
+ const [isLg] = (0, import_react_hooks3.useMediaQuery)("lg", {
1953
+ ssr: false
1954
+ });
1955
+ const { tx } = useThemeContext();
1956
+ const ref = (0, import_react_hooks3.useForwardedRef)(forwardedRef);
1957
+ const noopRef = (0, import_react29.useRef)(null);
1958
+ useSwipeToDismiss(swipeToDismiss ? ref : noopRef, {
1959
+ onDismiss: () => setOpen(false)
1960
+ });
1961
+ const handleKeyDown = (0, import_react29.useCallback)((event) => {
1962
+ if (event.key === "Escape") {
1963
+ event.target.closest("[data-tabster]")?.focus();
1964
+ }
1965
+ props.onKeyDown?.(event);
1966
+ }, [
1967
+ props.onKeyDown
1968
+ ]);
1969
+ const Root5 = isLg ? import_react_primitive9.Primitive.div : import_react_dialog2.DialogContent;
1970
+ return /* @__PURE__ */ import_react29.default.createElement(import_react_dialog2.Root, {
1971
+ open,
1972
+ modal: false
1973
+ }, /* @__PURE__ */ import_react29.default.createElement(Root5, {
1974
+ ...!isLg && {
1975
+ forceMount: true,
1976
+ tabIndex: -1,
1977
+ onOpenAutoFocus: onOpenAutoFocus ?? handleOpenAutoFocus
1978
+ },
1979
+ ...props,
1980
+ "data-side": side === "inline-end" ? "ie" : "is",
1981
+ "data-state": open ? "open" : "closed",
1982
+ "data-resizing": resizing ? "true" : "false",
1983
+ className: tx("main.sidebar", "main__sidebar", {}, classNames),
1984
+ onKeyDown: handleKeyDown,
1985
+ ...!open && {
1986
+ inert: "true"
1987
+ },
1988
+ ref
1989
+ }, /* @__PURE__ */ import_react29.default.createElement(ElevationProvider, {
1990
+ elevation: "group"
1991
+ }, children)));
1992
+ });
1993
+ var MainNavigationSidebar = /* @__PURE__ */ (0, import_react29.forwardRef)((props, forwardedRef) => {
1994
+ const { navigationSidebarOpen, setNavigationSidebarOpen, resizing } = useMainContext(NAVIGATION_SIDEBAR_NAME);
1995
+ const mover = useLandmarkMover(props.onKeyDown, "0");
1996
+ return /* @__PURE__ */ import_react29.default.createElement(MainSidebar, {
1997
+ ...mover,
1998
+ ...props,
1999
+ open: navigationSidebarOpen,
2000
+ setOpen: setNavigationSidebarOpen,
2001
+ resizing,
2002
+ side: "inline-start",
2003
+ ref: forwardedRef
2004
+ });
2005
+ });
2006
+ MainNavigationSidebar.displayName = NAVIGATION_SIDEBAR_NAME;
2007
+ var MainComplementarySidebar = /* @__PURE__ */ (0, import_react29.forwardRef)((props, forwardedRef) => {
2008
+ const { complementarySidebarOpen, setComplementarySidebarOpen, resizing } = useMainContext(COMPLEMENTARY_SIDEBAR_NAME);
2009
+ const mover = useLandmarkMover(props.onKeyDown, "2");
2010
+ return /* @__PURE__ */ import_react29.default.createElement(MainSidebar, {
2011
+ ...mover,
2012
+ ...props,
2013
+ open: complementarySidebarOpen,
2014
+ setOpen: setComplementarySidebarOpen,
2015
+ resizing,
2016
+ side: "inline-end",
2017
+ ref: forwardedRef
2018
+ });
2019
+ });
2020
+ MainNavigationSidebar.displayName = NAVIGATION_SIDEBAR_NAME;
2021
+ var MainContent = /* @__PURE__ */ (0, import_react29.forwardRef)(({ asChild, classNames, bounce, handlesFocus, children, role, ...props }, forwardedRef) => {
2022
+ const { navigationSidebarOpen, complementarySidebarOpen } = useMainContext(MAIN_NAME);
2023
+ const { tx } = useThemeContext();
2024
+ const Root5 = asChild ? import_react_slot10.Slot : role ? "div" : "main";
2025
+ const mover = useLandmarkMover(props.onKeyDown, "1");
2026
+ return /* @__PURE__ */ import_react29.default.createElement(Root5, {
2027
+ role,
2028
+ ...handlesFocus && {
2029
+ ...mover
2030
+ },
2031
+ ...props,
2032
+ "data-sidebar-inline-start-state": navigationSidebarOpen ? "open" : "closed",
2033
+ "data-sidebar-inline-end-state": complementarySidebarOpen ? "open" : "closed",
2034
+ className: tx("main.content", "main", {
2035
+ bounce,
2036
+ handlesFocus
2037
+ }, classNames),
2038
+ ref: forwardedRef
2039
+ }, children);
2040
+ });
2041
+ MainContent.displayName = MAIN_NAME;
2042
+ var MainOverlay = /* @__PURE__ */ (0, import_react29.forwardRef)(({ classNames, ...props }, forwardedRef) => {
2043
+ const [isLg] = (0, import_react_hooks3.useMediaQuery)("lg", {
2044
+ ssr: false
2045
+ });
2046
+ const { navigationSidebarOpen, setNavigationSidebarOpen, complementarySidebarOpen, setComplementarySidebarOpen } = useMainContext(MAIN_NAME);
2047
+ const { tx } = useThemeContext();
2048
+ return /* @__PURE__ */ import_react29.default.createElement("div", {
2049
+ onClick: () => {
2050
+ setNavigationSidebarOpen(false);
2051
+ setComplementarySidebarOpen(false);
2052
+ },
2053
+ ...props,
2054
+ className: tx("main.overlay", "main__overlay", {
2055
+ isLg,
2056
+ inlineStartSidebarOpen: navigationSidebarOpen,
2057
+ inlineEndSidebarOpen: complementarySidebarOpen
2058
+ }, classNames),
2059
+ "data-state": navigationSidebarOpen || complementarySidebarOpen ? "open" : "closed",
2060
+ "aria-hidden": "true",
2061
+ ref: forwardedRef
2062
+ });
2063
+ });
2064
+ var MainNotch = /* @__PURE__ */ (0, import_react29.forwardRef)(({ classNames, ...props }, forwardedRef) => {
2065
+ const { tx } = useThemeContext();
2066
+ const { navigationSidebarOpen } = useMainContext(MAIN_NAME);
2067
+ const notchElement = (0, import_react29.useRef)(null);
2068
+ const ref = (0, import_react_compose_refs2.useComposedRefs)(forwardedRef, notchElement);
2069
+ const handleKeyDown = (0, import_react29.useCallback)((event) => {
2070
+ switch (event.key) {
2071
+ case "Escape":
2072
+ props?.onKeyDown?.(event);
2073
+ notchElement.current?.focus();
2074
+ }
2075
+ }, [
2076
+ props?.onKeyDown
2077
+ ]);
2078
+ const mover = useLandmarkMover(handleKeyDown, "3");
2079
+ return /* @__PURE__ */ import_react29.default.createElement("div", {
2080
+ role: "toolbar",
2081
+ ...mover,
2082
+ ...props,
2083
+ "data-nav-sidebar-state": navigationSidebarOpen ? "open" : "closed",
2084
+ className: tx("main.notch", "main__notch", {}, classNames),
2085
+ ref
2086
+ });
2087
+ });
2088
+ var Main = {
2089
+ Root: MainRoot,
2090
+ Content: MainContent,
2091
+ Overlay: MainOverlay,
2092
+ NavigationSidebar: MainNavigationSidebar,
2093
+ ComplementarySidebar: MainComplementarySidebar,
2094
+ Notch: MainNotch
2095
+ };
2096
+ var MESSAGE_NAME = "Message";
2097
+ var [MessageProvider, useMessageContext] = (0, import_react_context8.createContext)(MESSAGE_NAME);
2098
+ var MessageRoot = /* @__PURE__ */ (0, import_react31.forwardRef)(({ asChild, valence, elevation: propsElevation, className, titleId: propsTitleId, descriptionId: propsDescriptionId, children, ...props }, forwardedRef) => {
2099
+ const { tx } = useThemeContext();
2100
+ const titleId = (0, import_react_hooks4.useId)("message__title", propsTitleId);
2101
+ const descriptionId = (0, import_react_hooks4.useId)("message__description", propsDescriptionId);
2102
+ const elevation = useElevationContext(propsElevation);
2103
+ const Root5 = asChild ? import_react_slot11.Slot : import_react_primitive10.Primitive.div;
2104
+ return /* @__PURE__ */ import_react31.default.createElement(MessageProvider, {
2105
+ titleId,
2106
+ descriptionId
2107
+ }, /* @__PURE__ */ import_react31.default.createElement(Root5, {
2108
+ ...props,
2109
+ className: tx("message.root", "message", {
2110
+ valence,
2111
+ elevation
2112
+ }, className),
2113
+ "aria-labelledby": titleId,
2114
+ "aria-describedby": descriptionId,
2115
+ ref: forwardedRef
2116
+ }, children));
2117
+ });
2118
+ MessageRoot.displayName = MESSAGE_NAME;
2119
+ var MESSAGE_TITLE_NAME = "MessageTitle";
2120
+ var MessageTitle = /* @__PURE__ */ (0, import_react31.forwardRef)(({ asChild, className, children, ...props }, forwardedRef) => {
2121
+ const { tx } = useThemeContext();
2122
+ const { titleId } = useMessageContext(MESSAGE_TITLE_NAME);
2123
+ const Root5 = asChild ? import_react_slot11.Slot : import_react_primitive10.Primitive.h2;
2124
+ return /* @__PURE__ */ import_react31.default.createElement(Root5, {
2125
+ ...props,
2126
+ className: tx("message.title", "message__title", {}, className),
2127
+ id: titleId,
2128
+ ref: forwardedRef
2129
+ }, children);
2130
+ });
2131
+ MessageTitle.displayName = MESSAGE_TITLE_NAME;
2132
+ var MESSAGE_BODY_NAME = "MessageBody";
2133
+ var MessageBody = /* @__PURE__ */ (0, import_react31.forwardRef)(({ asChild, className, children, ...props }, forwardedRef) => {
2134
+ const { tx } = useThemeContext();
2135
+ const { descriptionId } = useMessageContext(MESSAGE_BODY_NAME);
2136
+ const Root5 = asChild ? import_react_slot11.Slot : import_react_primitive10.Primitive.p;
2137
+ return /* @__PURE__ */ import_react31.default.createElement(Root5, {
2138
+ ...props,
2139
+ className: tx("message.body", "message__body", {}, className),
2140
+ id: descriptionId,
2141
+ ref: forwardedRef
2142
+ }, children);
2143
+ });
2144
+ MessageBody.displayName = MESSAGE_BODY_NAME;
2145
+ var Message = {
2146
+ Root: MessageRoot,
2147
+ Title: MessageTitle,
2148
+ Body: MessageBody
2149
+ };
2150
+ var POPOVER_NAME = "Popover";
2151
+ var [createPopoverContext, createPopoverScope] = (0, import_react_context9.createContextScope)(POPOVER_NAME, [
2152
+ import_react_popper.createPopperScope
2153
+ ]);
2154
+ var usePopperScope = (0, import_react_popper.createPopperScope)();
2155
+ var [PopoverProvider, usePopoverContext] = createPopoverContext(POPOVER_NAME);
2156
+ var PopoverRoot = (props) => {
2157
+ const { __scopePopover, children, open: openProp, defaultOpen, onOpenChange, modal = false } = props;
2158
+ const popperScope = usePopperScope(__scopePopover);
2159
+ const triggerRef = (0, import_react32.useRef)(null);
2160
+ const [hasCustomAnchor, setHasCustomAnchor] = (0, import_react32.useState)(false);
2161
+ const [open = false, setOpen] = (0, import_react_use_controllable_state5.useControllableState)({
2162
+ prop: openProp,
2163
+ defaultProp: defaultOpen,
2164
+ onChange: onOpenChange
2165
+ });
2166
+ return /* @__PURE__ */ import_react32.default.createElement(PopperPrimitive.Root, popperScope, /* @__PURE__ */ import_react32.default.createElement(PopoverProvider, {
2167
+ scope: __scopePopover,
2168
+ contentId: (0, import_react_id2.useId)(),
2169
+ triggerRef,
2170
+ open,
2171
+ onOpenChange: setOpen,
2172
+ onOpenToggle: (0, import_react32.useCallback)(() => setOpen((prevOpen) => !prevOpen), [
2173
+ setOpen
2174
+ ]),
2175
+ hasCustomAnchor,
2176
+ onCustomAnchorAdd: (0, import_react32.useCallback)(() => setHasCustomAnchor(true), []),
2177
+ onCustomAnchorRemove: (0, import_react32.useCallback)(() => setHasCustomAnchor(false), []),
2178
+ modal
2179
+ }, children));
2180
+ };
2181
+ PopoverRoot.displayName = POPOVER_NAME;
2182
+ var ANCHOR_NAME = "PopoverAnchor";
2183
+ var PopoverAnchor = /* @__PURE__ */ (0, import_react32.forwardRef)((props, forwardedRef) => {
2184
+ const { __scopePopover, ...anchorProps } = props;
2185
+ const context = usePopoverContext(ANCHOR_NAME, __scopePopover);
2186
+ const popperScope = usePopperScope(__scopePopover);
2187
+ const { onCustomAnchorAdd, onCustomAnchorRemove } = context;
2188
+ (0, import_react32.useEffect)(() => {
2189
+ onCustomAnchorAdd();
2190
+ return () => onCustomAnchorRemove();
2191
+ }, [
2192
+ onCustomAnchorAdd,
2193
+ onCustomAnchorRemove
2194
+ ]);
2195
+ return /* @__PURE__ */ import_react32.default.createElement(PopperPrimitive.Anchor, {
2196
+ ...popperScope,
2197
+ ...anchorProps,
2198
+ ref: forwardedRef
2199
+ });
2200
+ });
2201
+ PopoverAnchor.displayName = ANCHOR_NAME;
2202
+ var TRIGGER_NAME2 = "PopoverTrigger";
2203
+ var PopoverTrigger = /* @__PURE__ */ (0, import_react32.forwardRef)((props, forwardedRef) => {
2204
+ const { __scopePopover, ...triggerProps } = props;
2205
+ const context = usePopoverContext(TRIGGER_NAME2, __scopePopover);
2206
+ const popperScope = usePopperScope(__scopePopover);
2207
+ const composedTriggerRef = (0, import_react_compose_refs3.useComposedRefs)(forwardedRef, context.triggerRef);
2208
+ const trigger = /* @__PURE__ */ import_react32.default.createElement(import_react_primitive11.Primitive.button, {
2209
+ type: "button",
2210
+ "aria-haspopup": "dialog",
2211
+ "aria-expanded": context.open,
2212
+ "aria-controls": context.contentId,
2213
+ "data-state": getState(context.open),
2214
+ ...triggerProps,
2215
+ ref: composedTriggerRef,
2216
+ onClick: (0, import_primitive2.composeEventHandlers)(props.onClick, context.onOpenToggle)
2217
+ });
2218
+ return context.hasCustomAnchor ? trigger : /* @__PURE__ */ import_react32.default.createElement(PopperPrimitive.Anchor, {
2219
+ asChild: true,
2220
+ ...popperScope
2221
+ }, trigger);
2222
+ });
2223
+ PopoverTrigger.displayName = TRIGGER_NAME2;
2224
+ var VIRTUAL_TRIGGER_NAME2 = "PopoverVirtualTrigger";
2225
+ var PopoverVirtualTrigger = (props) => {
2226
+ const { __scopePopover, virtualRef } = props;
2227
+ const context = usePopoverContext(VIRTUAL_TRIGGER_NAME2, __scopePopover);
2228
+ const popperScope = usePopperScope(__scopePopover);
2229
+ (0, import_react32.useEffect)(() => {
2230
+ if (virtualRef.current) {
2231
+ context.triggerRef.current = virtualRef.current;
2232
+ }
2233
+ });
2234
+ return /* @__PURE__ */ import_react32.default.createElement(PopperPrimitive.Anchor, {
2235
+ ...popperScope,
2236
+ virtualRef
2237
+ });
2238
+ };
2239
+ PopoverVirtualTrigger.displayName = VIRTUAL_TRIGGER_NAME2;
2240
+ var PORTAL_NAME2 = "PopoverPortal";
2241
+ var [PortalProvider, usePortalContext] = createPopoverContext(PORTAL_NAME2, {
2242
+ forceMount: void 0
2243
+ });
2244
+ var PopoverPortal = (props) => {
2245
+ const { __scopePopover, forceMount, children, container } = props;
2246
+ const context = usePopoverContext(PORTAL_NAME2, __scopePopover);
2247
+ return /* @__PURE__ */ import_react32.default.createElement(PortalProvider, {
2248
+ scope: __scopePopover,
2249
+ forceMount
2250
+ }, /* @__PURE__ */ import_react32.default.createElement(import_react_presence.Presence, {
2251
+ present: forceMount || context.open
2252
+ }, /* @__PURE__ */ import_react32.default.createElement(import_react_portal.Portal, {
2253
+ asChild: true,
2254
+ container
2255
+ }, children)));
2256
+ };
2257
+ PopoverPortal.displayName = PORTAL_NAME2;
2258
+ var CONTENT_NAME2 = "PopoverContent";
2259
+ var PopoverContent = /* @__PURE__ */ (0, import_react32.forwardRef)((props, forwardedRef) => {
2260
+ const portalContext = usePortalContext(CONTENT_NAME2, props.__scopePopover);
2261
+ const { forceMount = portalContext.forceMount, ...contentProps } = props;
2262
+ const context = usePopoverContext(CONTENT_NAME2, props.__scopePopover);
2263
+ return /* @__PURE__ */ import_react32.default.createElement(import_react_presence.Presence, {
2264
+ present: forceMount || context.open
2265
+ }, context.modal ? /* @__PURE__ */ import_react32.default.createElement(PopoverContentModal, {
2266
+ ...contentProps,
2267
+ ref: forwardedRef
2268
+ }) : /* @__PURE__ */ import_react32.default.createElement(PopoverContentNonModal, {
2269
+ ...contentProps,
2270
+ ref: forwardedRef
2271
+ }));
2272
+ });
2273
+ PopoverContent.displayName = CONTENT_NAME2;
2274
+ var PopoverContentModal = /* @__PURE__ */ (0, import_react32.forwardRef)((props, forwardedRef) => {
2275
+ const context = usePopoverContext(CONTENT_NAME2, props.__scopePopover);
2276
+ const contentRef = (0, import_react32.useRef)(null);
2277
+ const composedRefs = (0, import_react_compose_refs3.useComposedRefs)(forwardedRef, contentRef);
2278
+ const isRightClickOutsideRef = (0, import_react32.useRef)(false);
2279
+ (0, import_react32.useEffect)(() => {
2280
+ const content = contentRef.current;
2281
+ if (content) {
2282
+ return (0, import_aria_hidden.hideOthers)(content);
2283
+ }
2284
+ }, []);
2285
+ return /* @__PURE__ */ import_react32.default.createElement(import_react_remove_scroll.RemoveScroll, {
2286
+ as: import_react_slot12.Slot,
2287
+ allowPinchZoom: true
2288
+ }, /* @__PURE__ */ import_react32.default.createElement(PopoverContentImpl, {
2289
+ ...props,
2290
+ ref: composedRefs,
2291
+ // we make sure we're not trapping once it's been closed
2292
+ // (closed !== unmounted when animating out)
2293
+ trapFocus: context.open,
2294
+ disableOutsidePointerEvents: true,
2295
+ onCloseAutoFocus: (0, import_primitive2.composeEventHandlers)(props.onCloseAutoFocus, (event) => {
2296
+ event.preventDefault();
2297
+ if (!isRightClickOutsideRef.current) {
2298
+ context.triggerRef.current?.focus();
2299
+ }
2300
+ }),
2301
+ onPointerDownOutside: (0, import_primitive2.composeEventHandlers)(props.onPointerDownOutside, (event) => {
2302
+ const originalEvent = event.detail.originalEvent;
2303
+ const ctrlLeftClick = originalEvent.button === 0 && originalEvent.ctrlKey === true;
2304
+ const isRightClick = originalEvent.button === 2 || ctrlLeftClick;
2305
+ isRightClickOutsideRef.current = isRightClick;
2306
+ }, {
2307
+ checkForDefaultPrevented: false
2308
+ }),
2309
+ // When focus is trapped, a `focusout` event may still happen.
2310
+ // We make sure we don't trigger our `onDismiss` in such case.
2311
+ onFocusOutside: (0, import_primitive2.composeEventHandlers)(props.onFocusOutside, (event) => event.preventDefault(), {
2312
+ checkForDefaultPrevented: false
2313
+ })
2314
+ }));
2315
+ });
2316
+ var PopoverContentNonModal = /* @__PURE__ */ (0, import_react32.forwardRef)((props, forwardedRef) => {
2317
+ const context = usePopoverContext(CONTENT_NAME2, props.__scopePopover);
2318
+ const hasInteractedOutsideRef = (0, import_react32.useRef)(false);
2319
+ const hasPointerDownOutsideRef = (0, import_react32.useRef)(false);
2320
+ return /* @__PURE__ */ import_react32.default.createElement(PopoverContentImpl, {
2321
+ ...props,
2322
+ ref: forwardedRef,
2323
+ trapFocus: false,
2324
+ disableOutsidePointerEvents: false,
2325
+ onCloseAutoFocus: (event) => {
2326
+ props.onCloseAutoFocus?.(event);
2327
+ if (!event.defaultPrevented) {
2328
+ if (!hasInteractedOutsideRef.current) {
2329
+ context.triggerRef.current?.focus();
2330
+ }
2331
+ event.preventDefault();
2332
+ }
2333
+ hasInteractedOutsideRef.current = false;
2334
+ hasPointerDownOutsideRef.current = false;
2335
+ },
2336
+ onInteractOutside: (event) => {
2337
+ props.onInteractOutside?.(event);
2338
+ if (!event.defaultPrevented) {
2339
+ hasInteractedOutsideRef.current = true;
2340
+ if (event.detail.originalEvent.type === "pointerdown") {
2341
+ hasPointerDownOutsideRef.current = true;
2342
+ }
2343
+ }
2344
+ const target = event.target;
2345
+ const targetIsTrigger = context.triggerRef.current?.contains(target);
2346
+ if (targetIsTrigger) {
2347
+ event.preventDefault();
2348
+ }
2349
+ if (event.detail.originalEvent.type === "focusin" && hasPointerDownOutsideRef.current) {
2350
+ event.preventDefault();
2351
+ }
2352
+ }
2353
+ });
2354
+ });
2355
+ var PopoverContentImpl = /* @__PURE__ */ (0, import_react32.forwardRef)((props, forwardedRef) => {
2356
+ const { __scopePopover, trapFocus, onOpenAutoFocus, onCloseAutoFocus, disableOutsidePointerEvents, onEscapeKeyDown, onPointerDownOutside, onFocusOutside, onInteractOutside, classNames, ...contentProps } = props;
2357
+ const context = usePopoverContext(CONTENT_NAME2, __scopePopover);
2358
+ const popperScope = usePopperScope(__scopePopover);
2359
+ const { tx } = useThemeContext();
2360
+ (0, import_react_focus_guards.useFocusGuards)();
2361
+ return /* @__PURE__ */ import_react32.default.createElement(import_react_focus_scope.FocusScope, {
2362
+ asChild: true,
2363
+ loop: true,
2364
+ trapped: trapFocus,
2365
+ onMountAutoFocus: onOpenAutoFocus,
2366
+ onUnmountAutoFocus: onCloseAutoFocus
2367
+ }, /* @__PURE__ */ import_react32.default.createElement(import_react_dismissable_layer.DismissableLayer, {
2368
+ asChild: true,
2369
+ disableOutsidePointerEvents,
2370
+ onInteractOutside,
2371
+ onEscapeKeyDown,
2372
+ onPointerDownOutside,
2373
+ onFocusOutside,
2374
+ onDismiss: () => context.onOpenChange(false)
2375
+ }, /* @__PURE__ */ import_react32.default.createElement(PopperPrimitive.Content, {
2376
+ "data-state": getState(context.open),
2377
+ role: "dialog",
2378
+ id: context.contentId,
2379
+ ...popperScope,
2380
+ ...contentProps,
2381
+ className: tx("popover.content", "popover", {}, classNames),
2382
+ ref: forwardedRef,
2383
+ style: {
2384
+ ...contentProps.style,
2385
+ // re-namespace exposed content custom properties
2386
+ ...{
2387
+ "--radix-popover-content-transform-origin": "var(--radix-popper-transform-origin)",
2388
+ "--radix-popover-content-available-width": "var(--radix-popper-available-width)",
2389
+ "--radix-popover-content-available-height": "var(--radix-popper-available-height)",
2390
+ "--radix-popover-trigger-width": "var(--radix-popper-anchor-width)",
2391
+ "--radix-popover-trigger-height": "var(--radix-popper-anchor-height)"
2392
+ }
2393
+ }
2394
+ })));
2395
+ });
2396
+ var CLOSE_NAME = "PopoverClose";
2397
+ var PopoverClose = /* @__PURE__ */ (0, import_react32.forwardRef)((props, forwardedRef) => {
2398
+ const { __scopePopover, ...closeProps } = props;
2399
+ const context = usePopoverContext(CLOSE_NAME, __scopePopover);
2400
+ return /* @__PURE__ */ import_react32.default.createElement(import_react_primitive11.Primitive.button, {
2401
+ type: "button",
2402
+ ...closeProps,
2403
+ ref: forwardedRef,
2404
+ onClick: (0, import_primitive2.composeEventHandlers)(props.onClick, () => context.onOpenChange(false))
2405
+ });
2406
+ });
2407
+ PopoverClose.displayName = CLOSE_NAME;
2408
+ var ARROW_NAME2 = "PopoverArrow";
2409
+ var PopoverArrow = /* @__PURE__ */ (0, import_react32.forwardRef)((props, forwardedRef) => {
2410
+ const { __scopePopover, classNames, ...arrowProps } = props;
2411
+ const popperScope = usePopperScope(__scopePopover);
2412
+ const { tx } = useThemeContext();
2413
+ return /* @__PURE__ */ import_react32.default.createElement(PopperPrimitive.Arrow, {
2414
+ ...popperScope,
2415
+ ...arrowProps,
2416
+ className: tx("popover.arrow", "popover__arrow", {}, classNames),
2417
+ ref: forwardedRef
2418
+ });
2419
+ });
2420
+ PopoverArrow.displayName = ARROW_NAME2;
2421
+ var PopoverViewport = /* @__PURE__ */ (0, import_react32.forwardRef)(({ classNames, asChild, constrainInline = true, constrainBlock = true, children, ...props }, forwardedRef) => {
2422
+ const { tx } = useThemeContext();
2423
+ const Root5 = asChild ? import_react_slot12.Slot : import_react_primitive11.Primitive.div;
2424
+ return /* @__PURE__ */ import_react32.default.createElement(Root5, {
2425
+ ...props,
2426
+ className: tx("popover.viewport", "popover__viewport", {
2427
+ constrainInline,
2428
+ constrainBlock
2429
+ }, classNames),
2430
+ ref: forwardedRef
2431
+ }, children);
2432
+ });
2433
+ var getState = (open) => open ? "open" : "closed";
2434
+ var Popover = {
2435
+ Root: PopoverRoot,
2436
+ Anchor: PopoverAnchor,
2437
+ Trigger: PopoverTrigger,
2438
+ VirtualTrigger: PopoverVirtualTrigger,
2439
+ Portal: PopoverPortal,
2440
+ Content: PopoverContent,
2441
+ Close: PopoverClose,
2442
+ Arrow: PopoverArrow,
2443
+ Viewport: PopoverViewport
2444
+ };
2445
+ var Status = /* @__PURE__ */ (0, import_react33.forwardRef)(({ classNames, children, progress = 0, indeterminate, ...props }, forwardedRef) => {
2446
+ const { tx } = useThemeContext();
2447
+ return /* @__PURE__ */ import_react33.default.createElement("span", {
2448
+ role: "status",
2449
+ ...props,
2450
+ className: tx("status.root", "status", {
2451
+ indeterminate
2452
+ }, classNames),
2453
+ ref: forwardedRef
2454
+ }, /* @__PURE__ */ import_react33.default.createElement("span", {
2455
+ role: "none",
2456
+ className: tx("status.bar", "status__bar", {
2457
+ indeterminate
2458
+ }, classNames),
2459
+ ...!indeterminate && {
2460
+ style: {
2461
+ width: `${Math.round(progress * 100)}%`
2462
+ }
2463
+ }
2464
+ }), children);
2465
+ });
2466
+ var ScrollAreaRoot = /* @__PURE__ */ (0, import_react34.forwardRef)(({ classNames, ...props }, forwardedRef) => {
2467
+ const { tx } = useThemeContext();
2468
+ return /* @__PURE__ */ import_react34.default.createElement(import_react_scroll_area.Root, {
2469
+ ...props,
2470
+ className: tx("scrollArea.root", "scroll-area", {}, classNames),
2471
+ ref: forwardedRef
2472
+ });
2473
+ });
2474
+ var ScrollAreaViewport = /* @__PURE__ */ (0, import_react34.forwardRef)(({ classNames, ...props }, forwardedRef) => {
2475
+ const { tx } = useThemeContext();
2476
+ return /* @__PURE__ */ import_react34.default.createElement(import_react_scroll_area.Viewport, {
2477
+ ...props,
2478
+ className: tx("scrollArea.viewport", "scroll-area", {}, classNames),
2479
+ ref: forwardedRef
2480
+ });
2481
+ });
2482
+ var ScrollAreaScrollbar = /* @__PURE__ */ (0, import_react34.forwardRef)(({ classNames, variant = "fine", ...props }, forwardedRef) => {
2483
+ const { tx } = useThemeContext();
2484
+ return /* @__PURE__ */ import_react34.default.createElement(import_react_scroll_area.Scrollbar, {
2485
+ "data-variant": variant,
2486
+ ...props,
2487
+ className: tx("scrollArea.scrollbar", "scroll-area__scrollbar", {}, classNames),
2488
+ ref: forwardedRef
2489
+ });
2490
+ });
2491
+ var ScrollAreaThumb = /* @__PURE__ */ (0, import_react34.forwardRef)(({ classNames, ...props }, forwardedRef) => {
2492
+ const { tx } = useThemeContext();
2493
+ return /* @__PURE__ */ import_react34.default.createElement(import_react_scroll_area.Thumb, {
2494
+ ...props,
2495
+ className: tx("scrollArea.thumb", "scroll-area__thumb", {}, classNames),
2496
+ ref: forwardedRef
2497
+ });
2498
+ });
2499
+ var ScrollAreaCorner = /* @__PURE__ */ (0, import_react34.forwardRef)(({ classNames, ...props }, forwardedRef) => {
2500
+ const { tx } = useThemeContext();
2501
+ return /* @__PURE__ */ import_react34.default.createElement(import_react_scroll_area.Corner, {
2502
+ ...props,
2503
+ className: tx("scrollArea.corner", "scroll-area__corner", {}, classNames),
2504
+ ref: forwardedRef
2505
+ });
2506
+ });
2507
+ var ScrollArea = {
2508
+ Root: ScrollAreaRoot,
2509
+ Viewport: ScrollAreaViewport,
2510
+ Scrollbar: ScrollAreaScrollbar,
2511
+ Thumb: ScrollAreaThumb,
2512
+ Corner: ScrollAreaCorner
2513
+ };
2514
+ var SelectRoot = SelectPrimitive.Root;
2515
+ var SelectTrigger = SelectPrimitive.Trigger;
2516
+ var SelectValue = SelectPrimitive.Value;
2517
+ var SelectIcon = SelectPrimitive.Icon;
2518
+ var SelectPortal = SelectPrimitive.Portal;
2519
+ var SelectTriggerButton = /* @__PURE__ */ (0, import_react36.forwardRef)(({ children, placeholder, ...props }, forwardedRef) => {
2520
+ const { tx } = useThemeContext();
2521
+ return /* @__PURE__ */ import_react36.default.createElement(SelectPrimitive.Trigger, {
2522
+ asChild: true,
2523
+ ref: forwardedRef
2524
+ }, /* @__PURE__ */ import_react36.default.createElement(Button, props, /* @__PURE__ */ import_react36.default.createElement(SelectPrimitive.Value, {
2525
+ placeholder
2526
+ }, children), /* @__PURE__ */ import_react36.default.createElement("span", {
2527
+ className: "w-1 flex-1"
2528
+ }), /* @__PURE__ */ import_react36.default.createElement(SelectPrimitive.Icon, {
2529
+ asChild: true
2530
+ }, /* @__PURE__ */ import_react36.default.createElement(import_react35.CaretDown, {
2531
+ className: tx("select.triggerIcon", "select__trigger__icon", {}),
2532
+ weight: "bold"
2533
+ }))));
2534
+ });
2535
+ var SelectContent = /* @__PURE__ */ (0, import_react36.forwardRef)(({ classNames, children, ...props }, forwardedRef) => {
2536
+ const { tx } = useThemeContext();
2537
+ return /* @__PURE__ */ import_react36.default.createElement(SelectPrimitive.Content, {
2538
+ ...props,
2539
+ className: tx("select.content", "select__content", {}, classNames),
2540
+ position: "popper",
2541
+ ref: forwardedRef
2542
+ }, children);
2543
+ });
2544
+ var SelectScrollUpButton2 = /* @__PURE__ */ (0, import_react36.forwardRef)(({ classNames, children, ...props }, forwardedRef) => {
2545
+ const { tx } = useThemeContext();
2546
+ return /* @__PURE__ */ import_react36.default.createElement(SelectPrimitive.SelectScrollUpButton, {
2547
+ ...props,
2548
+ className: tx("select.scrollButton", "select__scroll-button--up", {}, classNames),
2549
+ ref: forwardedRef
2550
+ }, children ?? /* @__PURE__ */ import_react36.default.createElement(import_react35.CaretUp, {
2551
+ weight: "bold"
2552
+ }));
2553
+ });
2554
+ var SelectScrollDownButton2 = /* @__PURE__ */ (0, import_react36.forwardRef)(({ classNames, children, ...props }, forwardedRef) => {
2555
+ const { tx } = useThemeContext();
2556
+ return /* @__PURE__ */ import_react36.default.createElement(SelectPrimitive.SelectScrollDownButton, {
2557
+ ...props,
2558
+ className: tx("select.scrollButton", "select__scroll-button--down", {}, classNames),
2559
+ ref: forwardedRef
2560
+ }, children ?? /* @__PURE__ */ import_react36.default.createElement(import_react35.CaretDown, {
2561
+ weight: "bold"
2562
+ }));
2563
+ });
2564
+ var SelectViewport2 = /* @__PURE__ */ (0, import_react36.forwardRef)(({ classNames, asChild, children, ...props }, forwardedRef) => {
2565
+ const { tx } = useThemeContext();
2566
+ return /* @__PURE__ */ import_react36.default.createElement(SelectPrimitive.SelectViewport, {
2567
+ ...props,
2568
+ className: tx("select.viewport", "select__viewport", {}, classNames),
2569
+ ref: forwardedRef
2570
+ }, children);
2571
+ });
2572
+ var SelectItem = /* @__PURE__ */ (0, import_react36.forwardRef)(({ classNames, ...props }, forwardedRef) => {
2573
+ const { tx } = useThemeContext();
2574
+ return /* @__PURE__ */ import_react36.default.createElement(SelectPrimitive.Item, {
2575
+ ...props,
2576
+ className: tx("select.item", "option", {}, classNames),
2577
+ ref: forwardedRef
2578
+ });
2579
+ });
2580
+ var SelectItemText = SelectPrimitive.ItemText;
2581
+ var SelectItemIndicator = /* @__PURE__ */ (0, import_react36.forwardRef)(({ classNames, children, ...props }, forwardedRef) => {
2582
+ const { tx } = useThemeContext();
2583
+ return /* @__PURE__ */ import_react36.default.createElement(SelectPrimitive.ItemIndicator, {
2584
+ ...props,
2585
+ className: tx("select.itemIndicator", "option__indicator", {}, classNames),
2586
+ ref: forwardedRef
2587
+ }, children);
2588
+ });
2589
+ var SelectOption = /* @__PURE__ */ (0, import_react36.forwardRef)(({ children, classNames, ...props }, forwardedRef) => {
2590
+ const { tx } = useThemeContext();
2591
+ return /* @__PURE__ */ import_react36.default.createElement(SelectPrimitive.Item, {
2592
+ ...props,
2593
+ className: tx("select.item", "option", {}, classNames),
2594
+ ref: forwardedRef
2595
+ }, /* @__PURE__ */ import_react36.default.createElement(SelectPrimitive.ItemText, null, children), /* @__PURE__ */ import_react36.default.createElement("span", {
2596
+ className: "grow w-1"
2597
+ }), /* @__PURE__ */ import_react36.default.createElement(Icon, {
2598
+ icon: "ph--check--regular"
2599
+ }));
2600
+ });
2601
+ var SelectGroup = SelectPrimitive.Group;
2602
+ var SelectLabel = SelectPrimitive.Label;
2603
+ var SelectSeparator = /* @__PURE__ */ (0, import_react36.forwardRef)(({ classNames, ...props }, forwardedRef) => {
2604
+ const { tx } = useThemeContext();
2605
+ return /* @__PURE__ */ import_react36.default.createElement(SelectPrimitive.Separator, {
2606
+ ...props,
2607
+ className: tx("select.separator", "select__separator", {}, classNames),
2608
+ ref: forwardedRef
2609
+ });
2610
+ });
2611
+ var SelectArrow = /* @__PURE__ */ (0, import_react36.forwardRef)(({ classNames, ...props }, forwardedRef) => {
2612
+ const { tx } = useThemeContext();
2613
+ return /* @__PURE__ */ import_react36.default.createElement(SelectPrimitive.Arrow, {
2614
+ ...props,
2615
+ className: tx("select.arrow", "select__arrow", {}, classNames),
2616
+ ref: forwardedRef
2617
+ });
2618
+ });
2619
+ var Select = {
2620
+ Root: SelectRoot,
2621
+ Trigger: SelectTrigger,
2622
+ TriggerButton: SelectTriggerButton,
2623
+ Value: SelectValue,
2624
+ Icon: SelectIcon,
2625
+ Portal: SelectPortal,
2626
+ Content: SelectContent,
2627
+ ScrollUpButton: SelectScrollUpButton2,
2628
+ ScrollDownButton: SelectScrollDownButton2,
2629
+ Viewport: SelectViewport2,
2630
+ Item: SelectItem,
2631
+ ItemText: SelectItemText,
2632
+ ItemIndicator: SelectItemIndicator,
2633
+ Option: SelectOption,
2634
+ Group: SelectGroup,
2635
+ Label: SelectLabel,
2636
+ Separator: SelectSeparator,
2637
+ Arrow: SelectArrow
2638
+ };
2639
+ var Separator4 = ({ classNames, orientation = "horizontal", ...props }) => {
2640
+ const { tx } = useThemeContext();
2641
+ return /* @__PURE__ */ import_react37.default.createElement(import_react_separator.Separator, {
2642
+ orientation,
2643
+ ...props,
2644
+ className: tx("separator.root", "separator", {
2645
+ orientation
2646
+ }, classNames)
2647
+ });
2648
+ };
2649
+ var Tag = /* @__PURE__ */ (0, import_react38.forwardRef)(({ asChild, palette, classNames, ...props }, forwardedRef) => {
2650
+ const { tx } = useThemeContext();
2651
+ const Root5 = asChild ? import_react_slot13.Slot : import_react_primitive12.Primitive.span;
2652
+ return /* @__PURE__ */ import_react38.default.createElement(Root5, {
2653
+ ...props,
2654
+ className: tx("tag.root", "tag", {
2655
+ palette
2656
+ }, classNames),
2657
+ ref: forwardedRef
2658
+ });
2659
+ });
2660
+ var ToastProvider = import_react_toast.ToastProvider;
2661
+ var ToastViewport = /* @__PURE__ */ (0, import_react39.forwardRef)(({ classNames, ...props }, forwardedRef) => {
2662
+ const { tx } = useThemeContext();
2663
+ return /* @__PURE__ */ import_react39.default.createElement(import_react_toast.ToastViewport, {
2664
+ className: tx("toast.viewport", "toast-viewport", {}, classNames),
2665
+ ref: forwardedRef
2666
+ });
2667
+ });
2668
+ var ToastRoot = /* @__PURE__ */ (0, import_react39.forwardRef)(({ classNames, children, ...props }, forwardedRef) => {
2669
+ const { tx } = useThemeContext();
2670
+ return /* @__PURE__ */ import_react39.default.createElement(import_react_toast.Root, {
2671
+ ...props,
2672
+ className: tx("toast.root", "toast", {}, classNames),
2673
+ ref: forwardedRef
2674
+ }, /* @__PURE__ */ import_react39.default.createElement(ElevationProvider, {
2675
+ elevation: "chrome"
2676
+ }, children));
2677
+ });
2678
+ var ToastBody = /* @__PURE__ */ (0, import_react39.forwardRef)(({ asChild, classNames, ...props }, forwardedRef) => {
2679
+ const { tx } = useThemeContext();
2680
+ const Root5 = asChild ? import_react_slot14.Slot : import_react_primitive13.Primitive.div;
2681
+ return /* @__PURE__ */ import_react39.default.createElement(Root5, {
2682
+ ...props,
2683
+ className: tx("toast.body", "toast__body", {}, classNames),
2684
+ ref: forwardedRef
2685
+ });
2686
+ });
2687
+ var ToastTitle = /* @__PURE__ */ (0, import_react39.forwardRef)(({ asChild, classNames, ...props }, forwardedRef) => {
2688
+ const { tx } = useThemeContext();
2689
+ const Root5 = asChild ? import_react_slot14.Slot : import_react_toast.ToastTitle;
2690
+ return /* @__PURE__ */ import_react39.default.createElement(Root5, {
2691
+ ...props,
2692
+ className: tx("toast.title", "toast__title", {}, classNames),
2693
+ ref: forwardedRef
2694
+ });
2695
+ });
2696
+ var ToastDescription = /* @__PURE__ */ (0, import_react39.forwardRef)(({ asChild, classNames, ...props }, forwardedRef) => {
2697
+ const { tx } = useThemeContext();
2698
+ const Root5 = asChild ? import_react_slot14.Slot : import_react_toast.ToastDescription;
2699
+ return /* @__PURE__ */ import_react39.default.createElement(Root5, {
2700
+ ...props,
2701
+ className: tx("toast.description", "toast__description", {}, classNames),
2702
+ ref: forwardedRef
2703
+ });
2704
+ });
2705
+ var ToastActions = /* @__PURE__ */ (0, import_react39.forwardRef)(({ asChild, classNames, ...props }, forwardedRef) => {
2706
+ const { tx } = useThemeContext();
2707
+ const Root5 = asChild ? import_react_slot14.Slot : import_react_primitive13.Primitive.div;
2708
+ return /* @__PURE__ */ import_react39.default.createElement(Root5, {
2709
+ ...props,
2710
+ className: tx("toast.actions", "toast__actions", {}, classNames),
2711
+ ref: forwardedRef
2712
+ });
2713
+ });
2714
+ var ToastAction = import_react_toast.ToastAction;
2715
+ var ToastClose = import_react_toast.ToastClose;
2716
+ var Toast = {
2717
+ Provider: ToastProvider,
2718
+ Viewport: ToastViewport,
2719
+ Root: ToastRoot,
2720
+ Body: ToastBody,
2721
+ Title: ToastTitle,
2722
+ Description: ToastDescription,
2723
+ Actions: ToastActions,
2724
+ Action: ToastAction,
2725
+ Close: ToastClose
2726
+ };
2727
+ var ToolbarRoot = /* @__PURE__ */ (0, import_react40.forwardRef)(({ classNames, children, ...props }, forwardedRef) => {
2728
+ const { tx } = useThemeContext();
2729
+ return /* @__PURE__ */ import_react40.default.createElement(ToolbarPrimitive.Root, {
2730
+ ...props,
2731
+ className: tx("toolbar.root", "toolbar", {}, classNames),
2732
+ ref: forwardedRef
2733
+ }, children);
2734
+ });
2735
+ var ToolbarButton = /* @__PURE__ */ (0, import_react40.forwardRef)((props, forwardedRef) => {
2736
+ return /* @__PURE__ */ import_react40.default.createElement(ToolbarPrimitive.Button, {
2737
+ asChild: true
2738
+ }, /* @__PURE__ */ import_react40.default.createElement(Button, {
2739
+ ...props,
2740
+ ref: forwardedRef
2741
+ }));
2742
+ });
2743
+ var ToolbarToggle = /* @__PURE__ */ (0, import_react40.forwardRef)((props, forwardedRef) => {
2744
+ return /* @__PURE__ */ import_react40.default.createElement(ToolbarPrimitive.Button, {
2745
+ asChild: true
2746
+ }, /* @__PURE__ */ import_react40.default.createElement(Toggle, {
2747
+ ...props,
2748
+ ref: forwardedRef
2749
+ }));
2750
+ });
2751
+ var ToolbarLink = /* @__PURE__ */ (0, import_react40.forwardRef)((props, forwardedRef) => {
2752
+ return /* @__PURE__ */ import_react40.default.createElement(ToolbarPrimitive.Link, {
2753
+ asChild: true
2754
+ }, /* @__PURE__ */ import_react40.default.createElement(Link, {
2755
+ ...props,
2756
+ ref: forwardedRef
2757
+ }));
2758
+ });
2759
+ var ToolbarToggleGroup2 = /* @__PURE__ */ (0, import_react40.forwardRef)(({ classNames, children, elevation, ...props }, forwardedRef) => {
2760
+ return /* @__PURE__ */ import_react40.default.createElement(ToolbarPrimitive.ToolbarToggleGroup, {
2761
+ ...props,
2762
+ asChild: true
2763
+ }, /* @__PURE__ */ import_react40.default.createElement(ButtonGroup, {
2764
+ classNames,
2765
+ children,
2766
+ elevation,
2767
+ ref: forwardedRef
2768
+ }));
2769
+ });
2770
+ var ToolbarToggleGroupItem = /* @__PURE__ */ (0, import_react40.forwardRef)(({ variant, density, elevation, classNames, children, ...props }, forwardedRef) => {
2771
+ return /* @__PURE__ */ import_react40.default.createElement(ToolbarPrimitive.ToolbarToggleItem, {
2772
+ ...props,
2773
+ asChild: true
2774
+ }, /* @__PURE__ */ import_react40.default.createElement(Button, {
2775
+ variant,
2776
+ density,
2777
+ elevation,
2778
+ classNames,
2779
+ children,
2780
+ ref: forwardedRef
2781
+ }));
2782
+ });
2783
+ var ToolbarSeparator = (props) => {
2784
+ return /* @__PURE__ */ import_react40.default.createElement(ToolbarPrimitive.Separator, {
2785
+ asChild: true
2786
+ }, /* @__PURE__ */ import_react40.default.createElement(Separator4, {
2787
+ orientation: "vertical",
2788
+ ...props
2789
+ }));
2790
+ };
2791
+ var Toolbar = {
2792
+ Root: ToolbarRoot,
2793
+ Button: ToolbarButton,
2794
+ Link: ToolbarLink,
2795
+ Toggle: ToolbarToggle,
2796
+ ToggleGroup: ToolbarToggleGroup2,
2797
+ ToggleGroupItem: ToolbarToggleGroupItem,
2798
+ Separator: ToolbarSeparator
2799
+ };
2800
+ var TooltipProvider = import_react_tooltip.Provider;
2801
+ var TooltipRoot = import_react_tooltip.Root;
2802
+ var TooltipPortal = import_react_tooltip.TooltipPortal;
2803
+ var TooltipTrigger = import_react_tooltip.TooltipTrigger;
2804
+ var TooltipArrow = /* @__PURE__ */ (0, import_react41.forwardRef)(({ classNames, ...props }, forwardedRef) => {
2805
+ const { tx } = useThemeContext();
2806
+ return /* @__PURE__ */ import_react41.default.createElement(import_react_tooltip.TooltipArrow, {
2807
+ ...props,
2808
+ className: tx("tooltip.arrow", "tooltip__arrow", {}, classNames),
2809
+ ref: forwardedRef
2810
+ });
2811
+ });
2812
+ var TooltipContent = /* @__PURE__ */ (0, import_react41.forwardRef)(({ classNames, ...props }, forwardedRef) => {
2813
+ const { tx } = useThemeContext();
2814
+ return /* @__PURE__ */ import_react41.default.createElement(import_react_tooltip.TooltipContent, {
2815
+ sideOffset: 4,
2816
+ collisionPadding: 8,
2817
+ ...props,
2818
+ className: tx("tooltip.content", "tooltip", {}, classNames),
2819
+ ref: forwardedRef
2820
+ });
2821
+ });
2822
+ var Tooltip = {
2823
+ Provider: TooltipProvider,
2824
+ Root: TooltipRoot,
2825
+ Portal: TooltipPortal,
2826
+ Trigger: TooltipTrigger,
2827
+ Arrow: TooltipArrow,
2828
+ Content: TooltipContent
2829
+ };
2830
+ var hasIosKeyboard = () => {
2831
+ return !!navigator.userAgent.match(/iP(ad|od|hone).+Safari/);
2832
+ };
2833
+ var ThemeContext = /* @__PURE__ */ (0, import_react42.createContext)(void 0);
2834
+ var ThemeProvider = ({ children, fallback = null, resourceExtensions, appNs, tx = (_path, defaultClassName, _styleProps, ..._options) => defaultClassName, themeMode = "dark", rootDensity = "fine", rootElevation = "base" }) => {
2835
+ (0, import_react42.useEffect)(() => {
2836
+ if (document.defaultView) {
2837
+ const kb = (0, import_keyborg.createKeyborg)(document.defaultView);
2838
+ kb.subscribe(handleInputModalityChange);
2839
+ return () => kb.unsubscribe(handleInputModalityChange);
2840
+ }
2841
+ }, []);
2842
+ return /* @__PURE__ */ import_react42.default.createElement(ThemeContext.Provider, {
2843
+ value: {
2844
+ tx,
2845
+ themeMode,
2846
+ hasIosKeyboard: hasIosKeyboard()
2847
+ }
2848
+ }, /* @__PURE__ */ import_react42.default.createElement(TranslationsProvider, {
2849
+ fallback,
2850
+ resourceExtensions,
2851
+ appNs
2852
+ }, /* @__PURE__ */ import_react42.default.createElement(ElevationProvider, {
2853
+ elevation: rootElevation
2854
+ }, /* @__PURE__ */ import_react42.default.createElement(DensityProvider, {
2855
+ density: rootDensity
2856
+ }, children))));
2857
+ };
2858
+ var handleInputModalityChange = (isUsingKeyboard) => {
2859
+ if (isUsingKeyboard) {
2860
+ document.body.setAttribute("data-is-keyboard", "true");
2861
+ } else {
2862
+ document.body.removeAttribute("data-is-keyboard");
2863
+ }
2864
+ };
2865
+ // Annotate the CommonJS export names for ESM import in node:
2866
+ 0 && (module.exports = {
2867
+ AlertDialog,
2868
+ AnchoredOverflow,
2869
+ Avatar,
2870
+ AvatarGroup,
2871
+ AvatarGroupItem,
2872
+ BUTTON_GROUP_NAME,
2873
+ Breadcrumb,
2874
+ Button,
2875
+ ButtonGroup,
2876
+ ContextMenu,
2877
+ DensityContext,
2878
+ DensityProvider,
2879
+ Dialog,
2880
+ DropdownMenu,
2881
+ ElevationContext,
2882
+ ElevationProvider,
2883
+ Icon,
2884
+ Input,
2885
+ LIST_ITEM_NAME,
2886
+ LIST_NAME,
2887
+ Link,
2888
+ List,
2889
+ ListItem,
2890
+ Main,
2891
+ Message,
2892
+ Popover,
2893
+ ScrollArea,
2894
+ Select,
2895
+ Separator,
2896
+ Status,
2897
+ Tag,
2898
+ ThemeContext,
2899
+ ThemeProvider,
2900
+ Toast,
2901
+ Toggle,
2902
+ ToggleGroup,
2903
+ ToggleGroupItem,
2904
+ Toolbar,
2905
+ Tooltip,
2906
+ Trans,
2907
+ Tree,
2908
+ TreeItem,
2909
+ Treegrid,
2910
+ createDropdownMenuScope,
2911
+ createPopoverScope,
2912
+ hasIosKeyboard,
2913
+ isLabel,
2914
+ toLocalizedString,
2915
+ useAvatarContext,
2916
+ useButtonGroupContext,
2917
+ useDensityContext,
2918
+ useDropdownMenuContext,
2919
+ useDropdownMenuMenuScope,
2920
+ useElevationContext,
2921
+ useListContext,
2922
+ useListItemContext,
2923
+ useMainContext,
2924
+ useSidebars,
2925
+ useThemeContext,
2926
+ useTranslation,
2927
+ useTranslationsContext,
2928
+ useVisualViewport,
2929
+ ...require("@dxos/react-hooks"),
2930
+ ...require("@dxos/react-ui-types")
2931
+ });
2932
+ //# sourceMappingURL=index.cjs.map