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