@drjoshcsimmons/scl 0.1.7 → 0.1.9

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