@datawire-ai/busyfile-design-library 1.31.1 → 1.33.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (64) hide show
  1. package/dist/index100.js +3 -3
  2. package/dist/index101.js +2 -2
  3. package/dist/index102.js +2 -2
  4. package/dist/index106.js +5 -5
  5. package/dist/index107.js +1 -1
  6. package/dist/index108.js +3 -14
  7. package/dist/index109.js +46 -10
  8. package/dist/index110.js +11 -4
  9. package/dist/index111.js +4 -13
  10. package/dist/index112.js +12 -3
  11. package/dist/index113.js +644 -40
  12. package/dist/index116.js +23 -649
  13. package/dist/index117.js +15 -18
  14. package/dist/index118.js +33 -16
  15. package/dist/index119.js +12 -33
  16. package/dist/index12.js +28 -30
  17. package/dist/index120.js +15 -18
  18. package/dist/index121.js +1 -1
  19. package/dist/index123.js +1 -1
  20. package/dist/index30.js +52 -51
  21. package/dist/index42.js +6 -6
  22. package/dist/index44.js +9 -9
  23. package/dist/index46.js +7 -7
  24. package/dist/index48.js +1 -1
  25. package/dist/index49.js +5 -5
  26. package/dist/index50.js +1 -1
  27. package/dist/index52.js +5 -5
  28. package/dist/index54.js +1 -1
  29. package/dist/index55.js +1 -1
  30. package/dist/index56.js +1 -1
  31. package/dist/index57.js +1 -1
  32. package/dist/index59.js +5 -5
  33. package/dist/index61.js +1 -1
  34. package/dist/index62.js +1 -1
  35. package/dist/index63.js +1 -1
  36. package/dist/index65.js +1 -1
  37. package/dist/index66.js +1 -1
  38. package/dist/index67.js +1 -1
  39. package/dist/index68.js +1 -1
  40. package/dist/index70.js +1 -1
  41. package/dist/index71.js +1 -1
  42. package/dist/index73.js +1 -1
  43. package/dist/index75.js +7 -7
  44. package/dist/index78.js +1 -1
  45. package/dist/index79.js +1 -1
  46. package/dist/index81.js +1 -1
  47. package/dist/index82.js +10 -10
  48. package/dist/index84.js +1 -1
  49. package/dist/index85.js +5 -5
  50. package/dist/index86.js +2 -2
  51. package/dist/index87.js +5 -5
  52. package/dist/index88.js +1 -1
  53. package/dist/index90.js +5 -66
  54. package/dist/index91.js +66 -5
  55. package/dist/index92.js +33 -51
  56. package/dist/index93.js +181 -5
  57. package/dist/index94.js +51 -24
  58. package/dist/index95.js +7 -69
  59. package/dist/index96.js +24 -33
  60. package/dist/index97.js +5 -181
  61. package/dist/index98.js +69 -7
  62. package/dist/index99.js +1 -1
  63. package/dist/types/index.d.ts +3 -3
  64. package/package.json +1 -1
package/dist/index113.js CHANGED
@@ -1,49 +1,653 @@
1
1
  "use client";
2
- import r from "react";
3
- import { createContextScope as y } from "./index90.js";
4
- import { useComposedRefs as M } from "./index89.js";
5
- import { createSlot as x } from "./index40.js";
2
+ import * as r from "react";
3
+ import { composeEventHandlers as h } from "./index90.js";
4
+ import { createCollection as $e } from "./index109.js";
5
+ import { useComposedRefs as N, composeRefs as qe } from "./index89.js";
6
+ import { createContextScope as Je } from "./index91.js";
7
+ import { useDirection as Qe } from "./index95.js";
8
+ import { DismissableLayer as et } from "./index100.js";
9
+ import { useFocusGuards as tt } from "./index103.js";
10
+ import { FocusScope as nt } from "./index101.js";
11
+ import { useId as Me } from "./index99.js";
12
+ import { createPopperScope as ve, Root as Ce, Anchor as ot, Content as rt, Arrow as ct } from "./index106.js";
13
+ import { Portal as at } from "./index102.js";
14
+ import { Presence as W } from "./index98.js";
15
+ import { Primitive as F, dispatchDiscreteCustomEvent as st } from "./index92.js";
16
+ import { createRovingFocusGroupScope as ge, Item as ut, Root as it } from "./index93.js";
17
+ import { createSlot as lt } from "./index40.js";
18
+ import { useCallbackRef as ee } from "./index110.js";
19
+ import { hideOthers as dt } from "./index105.js";
20
+ import ft from "./index104.js";
6
21
  import { jsx as u } from "react/jsx-runtime";
7
- function g(s) {
8
- const m = s + "CollectionProvider", [A, N] = y(m), [_, f] = A(
9
- m,
10
- { collectionRef: { current: null }, itemMap: /* @__PURE__ */ new Map() }
11
- ), p = (c) => {
12
- const { scope: e, children: l } = c, o = r.useRef(null), t = r.useRef(/* @__PURE__ */ new Map()).current;
13
- return /* @__PURE__ */ u(_, { scope: e, itemMap: t, collectionRef: o, children: l });
14
- };
15
- p.displayName = m;
16
- const a = s + "CollectionSlot", E = x(a), C = r.forwardRef(
17
- (c, e) => {
18
- const { scope: l, children: o } = c, t = f(a, l), n = M(e, t.collectionRef);
19
- return /* @__PURE__ */ u(E, { ref: n, children: o });
22
+ var Q = ["Enter", " "], mt = ["ArrowDown", "PageUp", "Home"], _e = ["ArrowUp", "PageDown", "End"], pt = [...mt, ..._e], Mt = {
23
+ ltr: [...Q, "ArrowRight"],
24
+ rtl: [...Q, "ArrowLeft"]
25
+ }, ht = {
26
+ ltr: ["ArrowLeft"],
27
+ rtl: ["ArrowRight"]
28
+ }, L = "Menu", [D, vt, Ct] = $e(L), [I, cn] = Je(L, [
29
+ Ct,
30
+ ve,
31
+ ge
32
+ ]), K = ve(), Re = ge(), [Se, E] = I(L), [gt, G] = I(L), Pe = (e) => {
33
+ const { __scopeMenu: n, open: t = !1, children: o, dir: s, onOpenChange: a, modal: l = !0 } = e, p = K(n), [M, m] = r.useState(null), f = r.useRef(!1), c = ee(a), d = Qe(s);
34
+ return r.useEffect(() => {
35
+ const C = () => {
36
+ f.current = !0, document.addEventListener("pointerdown", v, { capture: !0, once: !0 }), document.addEventListener("pointermove", v, { capture: !0, once: !0 });
37
+ }, v = () => f.current = !1;
38
+ return document.addEventListener("keydown", C, { capture: !0 }), () => {
39
+ document.removeEventListener("keydown", C, { capture: !0 }), document.removeEventListener("pointerdown", v, { capture: !0 }), document.removeEventListener("pointermove", v, { capture: !0 });
40
+ };
41
+ }, []), /* @__PURE__ */ u(Ce, { ...p, children: /* @__PURE__ */ u(
42
+ Se,
43
+ {
44
+ scope: n,
45
+ open: t,
46
+ onOpenChange: c,
47
+ content: M,
48
+ onContentChange: m,
49
+ children: /* @__PURE__ */ u(
50
+ gt,
51
+ {
52
+ scope: n,
53
+ onClose: r.useCallback(() => c(!1), [c]),
54
+ isUsingKeyboardRef: f,
55
+ dir: d,
56
+ modal: l,
57
+ children: o
58
+ }
59
+ )
60
+ }
61
+ ) });
62
+ };
63
+ Pe.displayName = L;
64
+ var _t = "MenuAnchor", te = r.forwardRef(
65
+ (e, n) => {
66
+ const { __scopeMenu: t, ...o } = e, s = K(t);
67
+ return /* @__PURE__ */ u(ot, { ...s, ...o, ref: n });
68
+ }
69
+ );
70
+ te.displayName = _t;
71
+ var ne = "MenuPortal", [Rt, Ee] = I(ne, {
72
+ forceMount: void 0
73
+ }), we = (e) => {
74
+ const { __scopeMenu: n, forceMount: t, children: o, container: s } = e, a = E(ne, n);
75
+ return /* @__PURE__ */ u(Rt, { scope: n, forceMount: t, children: /* @__PURE__ */ u(W, { present: t || a.open, children: /* @__PURE__ */ u(at, { asChild: !0, container: s, children: o }) }) });
76
+ };
77
+ we.displayName = ne;
78
+ var _ = "MenuContent", [St, oe] = I(_), Ie = r.forwardRef(
79
+ (e, n) => {
80
+ const t = Ee(_, e.__scopeMenu), { forceMount: o = t.forceMount, ...s } = e, a = E(_, e.__scopeMenu), l = G(_, e.__scopeMenu);
81
+ return /* @__PURE__ */ u(D.Provider, { scope: e.__scopeMenu, children: /* @__PURE__ */ u(W, { present: o || a.open, children: /* @__PURE__ */ u(D.Slot, { scope: e.__scopeMenu, children: l.modal ? /* @__PURE__ */ u(Pt, { ...s, ref: n }) : /* @__PURE__ */ u(Et, { ...s, ref: n }) }) }) });
82
+ }
83
+ ), Pt = r.forwardRef(
84
+ (e, n) => {
85
+ const t = E(_, e.__scopeMenu), o = r.useRef(null), s = N(n, o);
86
+ return r.useEffect(() => {
87
+ const a = o.current;
88
+ if (a) return dt(a);
89
+ }, []), /* @__PURE__ */ u(
90
+ re,
91
+ {
92
+ ...e,
93
+ ref: s,
94
+ trapFocus: t.open,
95
+ disableOutsidePointerEvents: t.open,
96
+ disableOutsideScroll: !0,
97
+ onFocusOutside: h(
98
+ e.onFocusOutside,
99
+ (a) => a.preventDefault(),
100
+ { checkForDefaultPrevented: !1 }
101
+ ),
102
+ onDismiss: () => t.onOpenChange(!1)
103
+ }
104
+ );
105
+ }
106
+ ), Et = r.forwardRef((e, n) => {
107
+ const t = E(_, e.__scopeMenu);
108
+ return /* @__PURE__ */ u(
109
+ re,
110
+ {
111
+ ...e,
112
+ ref: n,
113
+ trapFocus: !1,
114
+ disableOutsidePointerEvents: !1,
115
+ disableOutsideScroll: !1,
116
+ onDismiss: () => t.onOpenChange(!1)
20
117
  }
21
118
  );
22
- C.displayName = a;
23
- const d = s + "CollectionItemSlot", R = "data-radix-collection-item", T = x(d), I = r.forwardRef(
24
- (c, e) => {
25
- const { scope: l, children: o, ...t } = c, n = r.useRef(null), S = M(e, n), i = f(d, l);
26
- return r.useEffect(() => (i.itemMap.set(n, { ref: n, ...t }), () => void i.itemMap.delete(n))), /* @__PURE__ */ u(T, { [R]: "", ref: S, children: o });
119
+ }), wt = lt("MenuContent.ScrollLock"), re = r.forwardRef(
120
+ (e, n) => {
121
+ const {
122
+ __scopeMenu: t,
123
+ loop: o = !1,
124
+ trapFocus: s,
125
+ onOpenAutoFocus: a,
126
+ onCloseAutoFocus: l,
127
+ disableOutsidePointerEvents: p,
128
+ onEntryFocus: M,
129
+ onEscapeKeyDown: m,
130
+ onPointerDownOutside: f,
131
+ onFocusOutside: c,
132
+ onInteractOutside: d,
133
+ onDismiss: C,
134
+ disableOutsideScroll: v,
135
+ ...w
136
+ } = e, y = E(_, t), T = G(_, t), U = K(t), B = Re(t), ie = vt(t), [Xe, le] = r.useState(null), V = r.useRef(null), je = N(n, V, y.onContentChange), Y = r.useRef(0), X = r.useRef(""), He = r.useRef(0), Z = r.useRef(null), de = r.useRef("right"), $ = r.useRef(0), We = v ? ft : r.Fragment, ze = v ? { as: wt, allowPinchZoom: !0 } : void 0, Ze = (i) => {
137
+ var b, me;
138
+ const g = X.current + i, R = ie().filter((S) => !S.disabled), P = document.activeElement, q = (b = R.find((S) => S.ref.current === P)) == null ? void 0 : b.textValue, J = R.map((S) => S.textValue), fe = Lt(J, g, q), A = (me = R.find((S) => S.textValue === fe)) == null ? void 0 : me.ref.current;
139
+ (function S(pe) {
140
+ X.current = pe, window.clearTimeout(Y.current), pe !== "" && (Y.current = window.setTimeout(() => S(""), 1e3));
141
+ })(g), A && setTimeout(() => A.focus());
142
+ };
143
+ r.useEffect(() => () => window.clearTimeout(Y.current), []), tt();
144
+ const x = r.useCallback((i) => {
145
+ var R, P;
146
+ return de.current === ((R = Z.current) == null ? void 0 : R.side) && Gt(i, (P = Z.current) == null ? void 0 : P.area);
147
+ }, []);
148
+ return /* @__PURE__ */ u(
149
+ St,
150
+ {
151
+ scope: t,
152
+ searchRef: X,
153
+ onItemEnter: r.useCallback(
154
+ (i) => {
155
+ x(i) && i.preventDefault();
156
+ },
157
+ [x]
158
+ ),
159
+ onItemLeave: r.useCallback(
160
+ (i) => {
161
+ var g;
162
+ x(i) || ((g = V.current) == null || g.focus(), le(null));
163
+ },
164
+ [x]
165
+ ),
166
+ onTriggerLeave: r.useCallback(
167
+ (i) => {
168
+ x(i) && i.preventDefault();
169
+ },
170
+ [x]
171
+ ),
172
+ pointerGraceTimerRef: He,
173
+ onPointerGraceIntentChange: r.useCallback((i) => {
174
+ Z.current = i;
175
+ }, []),
176
+ children: /* @__PURE__ */ u(We, { ...ze, children: /* @__PURE__ */ u(
177
+ nt,
178
+ {
179
+ asChild: !0,
180
+ trapped: s,
181
+ onMountAutoFocus: h(a, (i) => {
182
+ var g;
183
+ i.preventDefault(), (g = V.current) == null || g.focus({ preventScroll: !0 });
184
+ }),
185
+ onUnmountAutoFocus: l,
186
+ children: /* @__PURE__ */ u(
187
+ et,
188
+ {
189
+ asChild: !0,
190
+ disableOutsidePointerEvents: p,
191
+ onEscapeKeyDown: m,
192
+ onPointerDownOutside: f,
193
+ onFocusOutside: c,
194
+ onInteractOutside: d,
195
+ onDismiss: C,
196
+ children: /* @__PURE__ */ u(
197
+ it,
198
+ {
199
+ asChild: !0,
200
+ ...B,
201
+ dir: T.dir,
202
+ orientation: "vertical",
203
+ loop: o,
204
+ currentTabStopId: Xe,
205
+ onCurrentTabStopIdChange: le,
206
+ onEntryFocus: h(M, (i) => {
207
+ T.isUsingKeyboardRef.current || i.preventDefault();
208
+ }),
209
+ preventScrollOnEntryFocus: !0,
210
+ children: /* @__PURE__ */ u(
211
+ rt,
212
+ {
213
+ role: "menu",
214
+ "aria-orientation": "vertical",
215
+ "data-state": Ye(y.open),
216
+ "data-radix-menu-content": "",
217
+ dir: T.dir,
218
+ ...U,
219
+ ...w,
220
+ ref: je,
221
+ style: { outline: "none", ...w.style },
222
+ onKeyDown: h(w.onKeyDown, (i) => {
223
+ const R = i.target.closest("[data-radix-menu-content]") === i.currentTarget, P = i.ctrlKey || i.altKey || i.metaKey, q = i.key.length === 1;
224
+ R && (i.key === "Tab" && i.preventDefault(), !P && q && Ze(i.key));
225
+ const J = V.current;
226
+ if (i.target !== J || !pt.includes(i.key)) return;
227
+ i.preventDefault();
228
+ const A = ie().filter((b) => !b.disabled).map((b) => b.ref.current);
229
+ _e.includes(i.key) && A.reverse(), Nt(A);
230
+ }),
231
+ onBlur: h(e.onBlur, (i) => {
232
+ i.currentTarget.contains(i.target) || (window.clearTimeout(Y.current), X.current = "");
233
+ }),
234
+ onPointerMove: h(
235
+ e.onPointerMove,
236
+ k((i) => {
237
+ const g = i.target, R = $.current !== i.clientX;
238
+ if (i.currentTarget.contains(g) && R) {
239
+ const P = i.clientX > $.current ? "right" : "left";
240
+ de.current = P, $.current = i.clientX;
241
+ }
242
+ })
243
+ )
244
+ }
245
+ )
246
+ }
247
+ )
248
+ }
249
+ )
250
+ }
251
+ ) })
252
+ }
253
+ );
254
+ }
255
+ );
256
+ Ie.displayName = _;
257
+ var It = "MenuGroup", ce = r.forwardRef(
258
+ (e, n) => {
259
+ const { __scopeMenu: t, ...o } = e;
260
+ return /* @__PURE__ */ u(F.div, { role: "group", ...o, ref: n });
261
+ }
262
+ );
263
+ ce.displayName = It;
264
+ var yt = "MenuLabel", ye = r.forwardRef(
265
+ (e, n) => {
266
+ const { __scopeMenu: t, ...o } = e;
267
+ return /* @__PURE__ */ u(F.div, { ...o, ref: n });
268
+ }
269
+ );
270
+ ye.displayName = yt;
271
+ var j = "MenuItem", he = "menu.itemSelect", z = r.forwardRef(
272
+ (e, n) => {
273
+ const { disabled: t = !1, onSelect: o, ...s } = e, a = r.useRef(null), l = G(j, e.__scopeMenu), p = oe(j, e.__scopeMenu), M = N(n, a), m = r.useRef(!1), f = () => {
274
+ const c = a.current;
275
+ if (!t && c) {
276
+ const d = new CustomEvent(he, { bubbles: !0, cancelable: !0 });
277
+ c.addEventListener(he, (C) => o == null ? void 0 : o(C), { once: !0 }), st(c, d), d.defaultPrevented ? m.current = !1 : l.onClose();
278
+ }
279
+ };
280
+ return /* @__PURE__ */ u(
281
+ xe,
282
+ {
283
+ ...s,
284
+ ref: M,
285
+ disabled: t,
286
+ onClick: h(e.onClick, f),
287
+ onPointerDown: (c) => {
288
+ var d;
289
+ (d = e.onPointerDown) == null || d.call(e, c), m.current = !0;
290
+ },
291
+ onPointerUp: h(e.onPointerUp, (c) => {
292
+ var d;
293
+ m.current || (d = c.currentTarget) == null || d.click();
294
+ }),
295
+ onKeyDown: h(e.onKeyDown, (c) => {
296
+ const d = p.searchRef.current !== "";
297
+ t || d && c.key === " " || Q.includes(c.key) && (c.currentTarget.click(), c.preventDefault());
298
+ })
299
+ }
300
+ );
301
+ }
302
+ );
303
+ z.displayName = j;
304
+ var xe = r.forwardRef(
305
+ (e, n) => {
306
+ const { __scopeMenu: t, disabled: o = !1, textValue: s, ...a } = e, l = oe(j, t), p = Re(t), M = r.useRef(null), m = N(n, M), [f, c] = r.useState(!1), [d, C] = r.useState("");
307
+ return r.useEffect(() => {
308
+ const v = M.current;
309
+ v && C((v.textContent ?? "").trim());
310
+ }, [a.children]), /* @__PURE__ */ u(
311
+ D.ItemSlot,
312
+ {
313
+ scope: t,
314
+ disabled: o,
315
+ textValue: s ?? d,
316
+ children: /* @__PURE__ */ u(ut, { asChild: !0, ...p, focusable: !o, children: /* @__PURE__ */ u(
317
+ F.div,
318
+ {
319
+ role: "menuitem",
320
+ "data-highlighted": f ? "" : void 0,
321
+ "aria-disabled": o || void 0,
322
+ "data-disabled": o ? "" : void 0,
323
+ ...a,
324
+ ref: m,
325
+ onPointerMove: h(
326
+ e.onPointerMove,
327
+ k((v) => {
328
+ o ? l.onItemLeave(v) : (l.onItemEnter(v), v.defaultPrevented || v.currentTarget.focus({ preventScroll: !0 }));
329
+ })
330
+ ),
331
+ onPointerLeave: h(
332
+ e.onPointerLeave,
333
+ k((v) => l.onItemLeave(v))
334
+ ),
335
+ onFocus: h(e.onFocus, () => c(!0)),
336
+ onBlur: h(e.onBlur, () => c(!1))
337
+ }
338
+ ) })
339
+ }
340
+ );
341
+ }
342
+ ), xt = "MenuCheckboxItem", be = r.forwardRef(
343
+ (e, n) => {
344
+ const { checked: t = !1, onCheckedChange: o, ...s } = e;
345
+ return /* @__PURE__ */ u(ke, { scope: e.__scopeMenu, checked: t, children: /* @__PURE__ */ u(
346
+ z,
347
+ {
348
+ role: "menuitemcheckbox",
349
+ "aria-checked": H(t) ? "mixed" : t,
350
+ ...s,
351
+ ref: n,
352
+ "data-state": ue(t),
353
+ onSelect: h(
354
+ s.onSelect,
355
+ () => o == null ? void 0 : o(H(t) ? !0 : !t),
356
+ { checkForDefaultPrevented: !1 }
357
+ )
358
+ }
359
+ ) });
360
+ }
361
+ );
362
+ be.displayName = xt;
363
+ var Te = "MenuRadioGroup", [bt, Tt] = I(
364
+ Te,
365
+ { value: void 0, onValueChange: () => {
366
+ } }
367
+ ), Ae = r.forwardRef(
368
+ (e, n) => {
369
+ const { value: t, onValueChange: o, ...s } = e, a = ee(o);
370
+ return /* @__PURE__ */ u(bt, { scope: e.__scopeMenu, value: t, onValueChange: a, children: /* @__PURE__ */ u(ce, { ...s, ref: n }) });
371
+ }
372
+ );
373
+ Ae.displayName = Te;
374
+ var Oe = "MenuRadioItem", De = r.forwardRef(
375
+ (e, n) => {
376
+ const { value: t, ...o } = e, s = Tt(Oe, e.__scopeMenu), a = t === s.value;
377
+ return /* @__PURE__ */ u(ke, { scope: e.__scopeMenu, checked: a, children: /* @__PURE__ */ u(
378
+ z,
379
+ {
380
+ role: "menuitemradio",
381
+ "aria-checked": a,
382
+ ...o,
383
+ ref: n,
384
+ "data-state": ue(a),
385
+ onSelect: h(
386
+ o.onSelect,
387
+ () => {
388
+ var l;
389
+ return (l = s.onValueChange) == null ? void 0 : l.call(s, t);
390
+ },
391
+ { checkForDefaultPrevented: !1 }
392
+ )
393
+ }
394
+ ) });
395
+ }
396
+ );
397
+ De.displayName = Oe;
398
+ var ae = "MenuItemIndicator", [ke, At] = I(
399
+ ae,
400
+ { checked: !1 }
401
+ ), Ne = r.forwardRef(
402
+ (e, n) => {
403
+ const { __scopeMenu: t, forceMount: o, ...s } = e, a = At(ae, t);
404
+ return /* @__PURE__ */ u(
405
+ W,
406
+ {
407
+ present: o || H(a.checked) || a.checked === !0,
408
+ children: /* @__PURE__ */ u(
409
+ F.span,
410
+ {
411
+ ...s,
412
+ ref: n,
413
+ "data-state": ue(a.checked)
414
+ }
415
+ )
416
+ }
417
+ );
418
+ }
419
+ );
420
+ Ne.displayName = ae;
421
+ var Ot = "MenuSeparator", Fe = r.forwardRef(
422
+ (e, n) => {
423
+ const { __scopeMenu: t, ...o } = e;
424
+ return /* @__PURE__ */ u(
425
+ F.div,
426
+ {
427
+ role: "separator",
428
+ "aria-orientation": "horizontal",
429
+ ...o,
430
+ ref: n
431
+ }
432
+ );
433
+ }
434
+ );
435
+ Fe.displayName = Ot;
436
+ var Dt = "MenuArrow", Le = r.forwardRef(
437
+ (e, n) => {
438
+ const { __scopeMenu: t, ...o } = e, s = K(t);
439
+ return /* @__PURE__ */ u(ct, { ...s, ...o, ref: n });
440
+ }
441
+ );
442
+ Le.displayName = Dt;
443
+ var se = "MenuSub", [kt, Ke] = I(se), Ge = (e) => {
444
+ const { __scopeMenu: n, children: t, open: o = !1, onOpenChange: s } = e, a = E(se, n), l = K(n), [p, M] = r.useState(null), [m, f] = r.useState(null), c = ee(s);
445
+ return r.useEffect(() => (a.open === !1 && c(!1), () => c(!1)), [a.open, c]), /* @__PURE__ */ u(Ce, { ...l, children: /* @__PURE__ */ u(
446
+ Se,
447
+ {
448
+ scope: n,
449
+ open: o,
450
+ onOpenChange: c,
451
+ content: m,
452
+ onContentChange: f,
453
+ children: /* @__PURE__ */ u(
454
+ kt,
455
+ {
456
+ scope: n,
457
+ contentId: Me(),
458
+ triggerId: Me(),
459
+ trigger: p,
460
+ onTriggerChange: M,
461
+ children: t
462
+ }
463
+ )
27
464
  }
465
+ ) });
466
+ };
467
+ Ge.displayName = se;
468
+ var O = "MenuSubTrigger", Ue = r.forwardRef(
469
+ (e, n) => {
470
+ const t = E(O, e.__scopeMenu), o = G(O, e.__scopeMenu), s = Ke(O, e.__scopeMenu), a = oe(O, e.__scopeMenu), l = r.useRef(null), { pointerGraceTimerRef: p, onPointerGraceIntentChange: M } = a, m = { __scopeMenu: e.__scopeMenu }, f = r.useCallback(() => {
471
+ l.current && window.clearTimeout(l.current), l.current = null;
472
+ }, []);
473
+ return r.useEffect(() => f, [f]), r.useEffect(() => {
474
+ const c = p.current;
475
+ return () => {
476
+ window.clearTimeout(c), M(null);
477
+ };
478
+ }, [p, M]), /* @__PURE__ */ u(te, { asChild: !0, ...m, children: /* @__PURE__ */ u(
479
+ xe,
480
+ {
481
+ id: s.triggerId,
482
+ "aria-haspopup": "menu",
483
+ "aria-expanded": t.open,
484
+ "aria-controls": s.contentId,
485
+ "data-state": Ye(t.open),
486
+ ...e,
487
+ ref: qe(n, s.onTriggerChange),
488
+ onClick: (c) => {
489
+ var d;
490
+ (d = e.onClick) == null || d.call(e, c), !(e.disabled || c.defaultPrevented) && (c.currentTarget.focus(), t.open || t.onOpenChange(!0));
491
+ },
492
+ onPointerMove: h(
493
+ e.onPointerMove,
494
+ k((c) => {
495
+ a.onItemEnter(c), !c.defaultPrevented && !e.disabled && !t.open && !l.current && (a.onPointerGraceIntentChange(null), l.current = window.setTimeout(() => {
496
+ t.onOpenChange(!0), f();
497
+ }, 100));
498
+ })
499
+ ),
500
+ onPointerLeave: h(
501
+ e.onPointerLeave,
502
+ k((c) => {
503
+ var C, v;
504
+ f();
505
+ const d = (C = t.content) == null ? void 0 : C.getBoundingClientRect();
506
+ if (d) {
507
+ const w = (v = t.content) == null ? void 0 : v.dataset.side, y = w === "right", T = y ? -5 : 5, U = d[y ? "left" : "right"], B = d[y ? "right" : "left"];
508
+ a.onPointerGraceIntentChange({
509
+ area: [
510
+ // Apply a bleed on clientX to ensure that our exit point is
511
+ // consistently within polygon bounds
512
+ { x: c.clientX + T, y: c.clientY },
513
+ { x: U, y: d.top },
514
+ { x: B, y: d.top },
515
+ { x: B, y: d.bottom },
516
+ { x: U, y: d.bottom }
517
+ ],
518
+ side: w
519
+ }), window.clearTimeout(p.current), p.current = window.setTimeout(
520
+ () => a.onPointerGraceIntentChange(null),
521
+ 300
522
+ );
523
+ } else {
524
+ if (a.onTriggerLeave(c), c.defaultPrevented) return;
525
+ a.onPointerGraceIntentChange(null);
526
+ }
527
+ })
528
+ ),
529
+ onKeyDown: h(e.onKeyDown, (c) => {
530
+ var C;
531
+ const d = a.searchRef.current !== "";
532
+ e.disabled || d && c.key === " " || Mt[o.dir].includes(c.key) && (t.onOpenChange(!0), (C = t.content) == null || C.focus(), c.preventDefault());
533
+ })
534
+ }
535
+ ) });
536
+ }
537
+ );
538
+ Ue.displayName = O;
539
+ var Be = "MenuSubContent", Ve = r.forwardRef(
540
+ (e, n) => {
541
+ const t = Ee(_, e.__scopeMenu), { forceMount: o = t.forceMount, ...s } = e, a = E(_, e.__scopeMenu), l = G(_, e.__scopeMenu), p = Ke(Be, e.__scopeMenu), M = r.useRef(null), m = N(n, M);
542
+ return /* @__PURE__ */ u(D.Provider, { scope: e.__scopeMenu, children: /* @__PURE__ */ u(W, { present: o || a.open, children: /* @__PURE__ */ u(D.Slot, { scope: e.__scopeMenu, children: /* @__PURE__ */ u(
543
+ re,
544
+ {
545
+ id: p.contentId,
546
+ "aria-labelledby": p.triggerId,
547
+ ...s,
548
+ ref: m,
549
+ align: "start",
550
+ side: l.dir === "rtl" ? "left" : "right",
551
+ disableOutsidePointerEvents: !1,
552
+ disableOutsideScroll: !1,
553
+ trapFocus: !1,
554
+ onOpenAutoFocus: (f) => {
555
+ var c;
556
+ l.isUsingKeyboardRef.current && ((c = M.current) == null || c.focus()), f.preventDefault();
557
+ },
558
+ onCloseAutoFocus: (f) => f.preventDefault(),
559
+ onFocusOutside: h(e.onFocusOutside, (f) => {
560
+ f.target !== p.trigger && a.onOpenChange(!1);
561
+ }),
562
+ onEscapeKeyDown: h(e.onEscapeKeyDown, (f) => {
563
+ l.onClose(), f.preventDefault();
564
+ }),
565
+ onKeyDown: h(e.onKeyDown, (f) => {
566
+ var C;
567
+ const c = f.currentTarget.contains(f.target), d = ht[l.dir].includes(f.key);
568
+ c && d && (a.onOpenChange(!1), (C = p.trigger) == null || C.focus(), f.preventDefault());
569
+ })
570
+ }
571
+ ) }) }) });
572
+ }
573
+ );
574
+ Ve.displayName = Be;
575
+ function Ye(e) {
576
+ return e ? "open" : "closed";
577
+ }
578
+ function H(e) {
579
+ return e === "indeterminate";
580
+ }
581
+ function ue(e) {
582
+ return H(e) ? "indeterminate" : e ? "checked" : "unchecked";
583
+ }
584
+ function Nt(e) {
585
+ const n = document.activeElement;
586
+ for (const t of e)
587
+ if (t === n || (t.focus(), document.activeElement !== n)) return;
588
+ }
589
+ function Ft(e, n) {
590
+ return e.map((t, o) => e[(n + o) % e.length]);
591
+ }
592
+ function Lt(e, n, t) {
593
+ const s = n.length > 1 && Array.from(n).every((m) => m === n[0]) ? n[0] : n, a = t ? e.indexOf(t) : -1;
594
+ let l = Ft(e, Math.max(a, 0));
595
+ s.length === 1 && (l = l.filter((m) => m !== t));
596
+ const M = l.find(
597
+ (m) => m.toLowerCase().startsWith(s.toLowerCase())
28
598
  );
29
- I.displayName = d;
30
- function O(c) {
31
- const e = f(s + "CollectionConsumer", c);
32
- return r.useCallback(() => {
33
- const o = e.collectionRef.current;
34
- if (!o) return [];
35
- const t = Array.from(o.querySelectorAll(`[${R}]`));
36
- return Array.from(e.itemMap.values()).sort(
37
- (i, v) => t.indexOf(i.ref.current) - t.indexOf(v.ref.current)
38
- );
39
- }, [e.collectionRef, e.itemMap]);
40
- }
41
- return [
42
- { Provider: p, Slot: C, ItemSlot: I },
43
- O,
44
- N
45
- ];
599
+ return M !== t ? M : void 0;
600
+ }
601
+ function Kt(e, n) {
602
+ const { x: t, y: o } = e;
603
+ let s = !1;
604
+ for (let a = 0, l = n.length - 1; a < n.length; l = a++) {
605
+ const p = n[a], M = n[l], m = p.x, f = p.y, c = M.x, d = M.y;
606
+ f > o != d > o && t < (c - m) * (o - f) / (d - f) + m && (s = !s);
607
+ }
608
+ return s;
609
+ }
610
+ function Gt(e, n) {
611
+ if (!n) return !1;
612
+ const t = { x: e.clientX, y: e.clientY };
613
+ return Kt(t, n);
614
+ }
615
+ function k(e) {
616
+ return (n) => n.pointerType === "mouse" ? e(n) : void 0;
46
617
  }
618
+ var an = Pe, sn = te, un = we, ln = Ie, dn = ce, fn = ye, mn = z, pn = be, Mn = Ae, hn = De, vn = Ne, Cn = Fe, gn = Le, _n = Ge, Rn = Ue, Sn = Ve;
47
619
  export {
48
- g as createCollection
620
+ sn as Anchor,
621
+ gn as Arrow,
622
+ pn as CheckboxItem,
623
+ ln as Content,
624
+ dn as Group,
625
+ mn as Item,
626
+ vn as ItemIndicator,
627
+ fn as Label,
628
+ Pe as Menu,
629
+ te as MenuAnchor,
630
+ Le as MenuArrow,
631
+ be as MenuCheckboxItem,
632
+ Ie as MenuContent,
633
+ ce as MenuGroup,
634
+ z as MenuItem,
635
+ Ne as MenuItemIndicator,
636
+ ye as MenuLabel,
637
+ we as MenuPortal,
638
+ Ae as MenuRadioGroup,
639
+ De as MenuRadioItem,
640
+ Fe as MenuSeparator,
641
+ Ge as MenuSub,
642
+ Ve as MenuSubContent,
643
+ Ue as MenuSubTrigger,
644
+ un as Portal,
645
+ Mn as RadioGroup,
646
+ hn as RadioItem,
647
+ an as Root,
648
+ Cn as Separator,
649
+ _n as Sub,
650
+ Sn as SubContent,
651
+ Rn as SubTrigger,
652
+ cn as createMenuScope
49
653
  };