@dxos/react-ui 0.6.11 → 0.6.12-main.568932b

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