@altimateai/ui-components 0.0.23 → 0.0.24-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/Form.js ADDED
@@ -0,0 +1,3658 @@
1
+ import { j as s, C as ba, a as Sa, b as xr, S as Ca, c as _a, d as jt, e as Na } from "./index2.js";
2
+ import * as a from "react";
3
+ import T, { forwardRef as ee } from "react";
4
+ import { R as Ot, T as yr, C as Ye, g as kt, O as qe, c as E, h as Xe, i as $t, D as Lt, j as Ze, k as je, l as Vt, a as Ne, m as Je, n as wr, A as br, o as Oe, u as q, p as Sr, d as I, q as Cr, F as _r, r as Nr, s as Ea, t as Er, P as $, I as Ra, v as Qe, w as Rr, x as Ir, y as Ia, z as Ft, B as Bt, E as Mr, G as ne, b as xe, H as Ma, J as Aa, K as ce, L as Ar, W as Da, M as Dr, e as Pa, V as Ta, N as ja, S as Oa } from "./Stack.js";
5
+ import * as Pr from "react-dom";
6
+ const rd = Ot, nd = yr, od = Ye, ka = kt, Tr = a.forwardRef(({ className: e, ...r }, t) => /* @__PURE__ */ s.jsx(
7
+ qe,
8
+ {
9
+ className: E(
10
+ "al-fixed al-inset-0 al-z-50 al-bg-black/80 al- data-[state=open]:al-animate-in data-[state=closed]:al-animate-out data-[state=closed]:al-fade-out-0 data-[state=open]:al-fade-in-0",
11
+ e
12
+ ),
13
+ ...r,
14
+ ref: t
15
+ }
16
+ ));
17
+ Tr.displayName = qe.displayName;
18
+ const $a = Ze(
19
+ "al-fixed al-z-50 al-gap-4 al-bg-background al-p-6 al-shadow-lg al-transition al-ease-in-out data-[state=open]:al-animate-in data-[state=closed]:al-animate-out data-[state=closed]:al-duration-300 data-[state=open]:al-duration-500",
20
+ {
21
+ variants: {
22
+ side: {
23
+ top: "al-inset-x-0 al-top-0 al-border-b data-[state=closed]:al-slide-out-to-top data-[state=open]:al-slide-in-from-top",
24
+ bottom: "al-inset-x-0 al-bottom-0 al-border-t data-[state=closed]:al-slide-out-to-bottom data-[state=open]:al-slide-in-from-bottom",
25
+ left: "al-inset-y-0 al-left-0 al-h-full al-w-3/4 al-border-r data-[state=closed]:al-slide-out-to-left data-[state=open]:al-slide-in-from-left sm:al-max-w-sm",
26
+ right: "al-inset-y-0 al-right-0 al-h-full al-w-3/4 al- al-border-l data-[state=closed]:al-slide-out-to-right data-[state=open]:al-slide-in-from-right sm:al-max-w-sm"
27
+ }
28
+ },
29
+ defaultVariants: {
30
+ side: "right"
31
+ }
32
+ }
33
+ ), La = a.forwardRef(({ side: e = "right", className: r, children: t, ...n }, o) => /* @__PURE__ */ s.jsxs(ka, { children: [
34
+ /* @__PURE__ */ s.jsx(Tr, {}),
35
+ /* @__PURE__ */ s.jsxs(Xe, { ref: o, className: E($a({ side: e }), r), ...n, children: [
36
+ t,
37
+ /* @__PURE__ */ s.jsxs(Ye, { className: "al-absolute al-right-4 al-top-4 al-rounded-sm al-opacity-70 al-ring-offset-background al-transition-opacity hover:al-opacity-100 focus:al-outline-none focus:al-ring-2 focus:al-ring-ring focus:al-ring-offset-2 disabled:al-pointer-events-none data-[state=open]:al-bg-secondary", children: [
38
+ /* @__PURE__ */ s.jsx(ba, { className: "al-h-4 al-w-4" }),
39
+ /* @__PURE__ */ s.jsx("span", { className: "al-sr-only", children: "Close" })
40
+ ] })
41
+ ] })
42
+ ] }));
43
+ La.displayName = Xe.displayName;
44
+ const Va = ({ className: e, ...r }) => /* @__PURE__ */ s.jsx(
45
+ "div",
46
+ {
47
+ className: E("al-flex al-flex-col al-space-y-2 al-text-center sm:al-text-left", e),
48
+ ...r
49
+ }
50
+ );
51
+ Va.displayName = "SheetHeader";
52
+ const Fa = ({ className: e, ...r }) => /* @__PURE__ */ s.jsx(
53
+ "div",
54
+ {
55
+ className: E(
56
+ "al-flex al-flex-col-reverse sm:al-flex-row sm:al-justify-end sm:al-space-x-2",
57
+ e
58
+ ),
59
+ ...r
60
+ }
61
+ );
62
+ Fa.displayName = "SheetFooter";
63
+ const Ba = a.forwardRef(({ className: e, ...r }, t) => /* @__PURE__ */ s.jsx(
64
+ $t,
65
+ {
66
+ ref: t,
67
+ className: E("al-text-lg al-font-semibold al-text-foreground", e),
68
+ ...r
69
+ }
70
+ ));
71
+ Ba.displayName = $t.displayName;
72
+ const Ga = a.forwardRef(({ className: e, ...r }, t) => /* @__PURE__ */ s.jsx(
73
+ Lt,
74
+ {
75
+ ref: t,
76
+ className: E("al-text-sm al-text-muted-foreground", e),
77
+ ...r
78
+ }
79
+ ));
80
+ Ga.displayName = Lt.displayName;
81
+ var jr = a.forwardRef((e, r) => {
82
+ const { children: t, ...n } = e, o = a.Children.toArray(t), l = o.find(Ka);
83
+ if (l) {
84
+ const i = l.props.children, c = o.map((d) => d === l ? a.Children.count(i) > 1 ? a.Children.only(null) : a.isValidElement(i) ? i.props.children : null : d);
85
+ return /* @__PURE__ */ s.jsx(wt, { ...n, ref: r, children: a.isValidElement(i) ? a.cloneElement(i, void 0, c) : null });
86
+ }
87
+ return /* @__PURE__ */ s.jsx(wt, { ...n, ref: r, children: t });
88
+ });
89
+ jr.displayName = "Slot";
90
+ var wt = a.forwardRef((e, r) => {
91
+ const { children: t, ...n } = e;
92
+ if (a.isValidElement(t)) {
93
+ const o = Wa(t);
94
+ return a.cloneElement(t, {
95
+ ...Ua(n, t.props),
96
+ // @ts-ignore
97
+ ref: r ? je(r, o) : o
98
+ });
99
+ }
100
+ return a.Children.count(t) > 1 ? a.Children.only(null) : null;
101
+ });
102
+ wt.displayName = "SlotClone";
103
+ var Ha = ({ children: e }) => /* @__PURE__ */ s.jsx(s.Fragment, { children: e });
104
+ function Ka(e) {
105
+ return a.isValidElement(e) && e.type === Ha;
106
+ }
107
+ function Ua(e, r) {
108
+ const t = { ...r };
109
+ for (const n in r) {
110
+ const o = e[n], l = r[n];
111
+ /^on[A-Z]/.test(n) ? o && l ? t[n] = (...c) => {
112
+ l(...c), o(...c);
113
+ } : o && (t[n] = o) : n === "style" ? t[n] = { ...o, ...l } : n === "className" && (t[n] = [o, l].filter(Boolean).join(" "));
114
+ }
115
+ return { ...e, ...t };
116
+ }
117
+ function Wa(e) {
118
+ var n, o;
119
+ let r = (n = Object.getOwnPropertyDescriptor(e.props, "ref")) == null ? void 0 : n.get, t = r && "isReactWarning" in r && r.isReactWarning;
120
+ return t ? e.ref : (r = (o = Object.getOwnPropertyDescriptor(e, "ref")) == null ? void 0 : o.get, t = r && "isReactWarning" in r && r.isReactWarning, t ? e.props.ref : e.props.ref || e.ref);
121
+ }
122
+ var bt = ["Enter", " "], za = ["ArrowDown", "PageUp", "Home"], Or = ["ArrowUp", "PageDown", "End"], Ya = [...za, ...Or], qa = {
123
+ ltr: [...bt, "ArrowRight"],
124
+ rtl: [...bt, "ArrowLeft"]
125
+ }, Xa = {
126
+ ltr: ["ArrowLeft"],
127
+ rtl: ["ArrowRight"]
128
+ }, ke = "Menu", [De, Za, Ja] = Vt(ke), [Se, kr] = Ne(ke, [
129
+ Ja,
130
+ Je,
131
+ wr
132
+ ]), $e = Je(), $r = wr(), [Lr, pe] = Se(ke), [Qa, Le] = Se(ke), Vr = (e) => {
133
+ const { __scopeMenu: r, open: t = !1, children: n, dir: o, onOpenChange: l, modal: i = !0 } = e, c = $e(r), [d, u] = a.useState(null), f = a.useRef(!1), p = Qe(l), g = Ft(o);
134
+ return a.useEffect(() => {
135
+ const x = () => {
136
+ f.current = !0, document.addEventListener("pointerdown", y, { capture: !0, once: !0 }), document.addEventListener("pointermove", y, { capture: !0, once: !0 });
137
+ }, y = () => f.current = !1;
138
+ return document.addEventListener("keydown", x, { capture: !0 }), () => {
139
+ document.removeEventListener("keydown", x, { capture: !0 }), document.removeEventListener("pointerdown", y, { capture: !0 }), document.removeEventListener("pointermove", y, { capture: !0 });
140
+ };
141
+ }, []), /* @__PURE__ */ s.jsx(Bt, { ...c, children: /* @__PURE__ */ s.jsx(
142
+ Lr,
143
+ {
144
+ scope: r,
145
+ open: t,
146
+ onOpenChange: p,
147
+ content: d,
148
+ onContentChange: u,
149
+ children: /* @__PURE__ */ s.jsx(
150
+ Qa,
151
+ {
152
+ scope: r,
153
+ onClose: a.useCallback(() => p(!1), [p]),
154
+ isUsingKeyboardRef: f,
155
+ dir: g,
156
+ modal: i,
157
+ children: n
158
+ }
159
+ )
160
+ }
161
+ ) });
162
+ };
163
+ Vr.displayName = ke;
164
+ var el = "MenuAnchor", Gt = a.forwardRef(
165
+ (e, r) => {
166
+ const { __scopeMenu: t, ...n } = e, o = $e(t);
167
+ return /* @__PURE__ */ s.jsx(br, { ...o, ...n, ref: r });
168
+ }
169
+ );
170
+ Gt.displayName = el;
171
+ var Ht = "MenuPortal", [tl, Fr] = Se(Ht, {
172
+ forceMount: void 0
173
+ }), Br = (e) => {
174
+ const { __scopeMenu: r, forceMount: t, children: n, container: o } = e, l = pe(Ht, r);
175
+ return /* @__PURE__ */ s.jsx(tl, { scope: r, forceMount: t, children: /* @__PURE__ */ s.jsx(Oe, { present: t || l.open, children: /* @__PURE__ */ s.jsx(Mr, { asChild: !0, container: o, children: n }) }) });
176
+ };
177
+ Br.displayName = Ht;
178
+ var se = "MenuContent", [rl, Kt] = Se(se), Gr = a.forwardRef(
179
+ (e, r) => {
180
+ const t = Fr(se, e.__scopeMenu), { forceMount: n = t.forceMount, ...o } = e, l = pe(se, e.__scopeMenu), i = Le(se, e.__scopeMenu);
181
+ return /* @__PURE__ */ s.jsx(De.Provider, { scope: e.__scopeMenu, children: /* @__PURE__ */ s.jsx(Oe, { present: n || l.open, children: /* @__PURE__ */ s.jsx(De.Slot, { scope: e.__scopeMenu, children: i.modal ? /* @__PURE__ */ s.jsx(nl, { ...o, ref: r }) : /* @__PURE__ */ s.jsx(ol, { ...o, ref: r }) }) }) });
182
+ }
183
+ ), nl = a.forwardRef(
184
+ (e, r) => {
185
+ const t = pe(se, e.__scopeMenu), n = a.useRef(null), o = q(r, n);
186
+ return a.useEffect(() => {
187
+ const l = n.current;
188
+ if (l) return Sr(l);
189
+ }, []), /* @__PURE__ */ s.jsx(
190
+ Ut,
191
+ {
192
+ ...e,
193
+ ref: o,
194
+ trapFocus: t.open,
195
+ disableOutsidePointerEvents: t.open,
196
+ disableOutsideScroll: !0,
197
+ onFocusOutside: I(
198
+ e.onFocusOutside,
199
+ (l) => l.preventDefault(),
200
+ { checkForDefaultPrevented: !1 }
201
+ ),
202
+ onDismiss: () => t.onOpenChange(!1)
203
+ }
204
+ );
205
+ }
206
+ ), ol = a.forwardRef((e, r) => {
207
+ const t = pe(se, e.__scopeMenu);
208
+ return /* @__PURE__ */ s.jsx(
209
+ Ut,
210
+ {
211
+ ...e,
212
+ ref: r,
213
+ trapFocus: !1,
214
+ disableOutsidePointerEvents: !1,
215
+ disableOutsideScroll: !1,
216
+ onDismiss: () => t.onOpenChange(!1)
217
+ }
218
+ );
219
+ }), Ut = a.forwardRef(
220
+ (e, r) => {
221
+ const {
222
+ __scopeMenu: t,
223
+ loop: n = !1,
224
+ trapFocus: o,
225
+ onOpenAutoFocus: l,
226
+ onCloseAutoFocus: i,
227
+ disableOutsidePointerEvents: c,
228
+ onEntryFocus: d,
229
+ onEscapeKeyDown: u,
230
+ onPointerDownOutside: f,
231
+ onFocusOutside: p,
232
+ onInteractOutside: g,
233
+ onDismiss: x,
234
+ disableOutsideScroll: y,
235
+ ...v
236
+ } = e, w = pe(se, t), S = Le(se, t), h = $e(t), _ = $r(t), L = Za(t), [V, j] = a.useState(null), P = a.useRef(null), K = q(r, P, w.onContentChange), G = a.useRef(0), U = a.useRef(""), re = a.useRef(0), Z = a.useRef(null), oe = a.useRef("right"), W = a.useRef(0), J = y ? Ir : a.Fragment, H = y ? { as: jr, allowPinchZoom: !0 } : void 0, Q = (N) => {
237
+ var b, A;
238
+ const Y = U.current + N, X = L().filter((O) => !O.disabled), m = document.activeElement, R = (b = X.find((O) => O.ref.current === m)) == null ? void 0 : b.textValue, M = X.map((O) => O.textValue), C = vl(M, Y, R), D = (A = X.find((O) => O.textValue === C)) == null ? void 0 : A.ref.current;
239
+ (function O(k) {
240
+ U.current = k, window.clearTimeout(G.current), k !== "" && (G.current = window.setTimeout(() => O(""), 1e3));
241
+ })(Y), D && setTimeout(() => D.focus());
242
+ };
243
+ a.useEffect(() => () => window.clearTimeout(G.current), []), Cr();
244
+ const z = a.useCallback((N) => {
245
+ var X, m;
246
+ return oe.current === ((X = Z.current) == null ? void 0 : X.side) && xl(N, (m = Z.current) == null ? void 0 : m.area);
247
+ }, []);
248
+ return /* @__PURE__ */ s.jsx(
249
+ rl,
250
+ {
251
+ scope: t,
252
+ searchRef: U,
253
+ onItemEnter: a.useCallback(
254
+ (N) => {
255
+ z(N) && N.preventDefault();
256
+ },
257
+ [z]
258
+ ),
259
+ onItemLeave: a.useCallback(
260
+ (N) => {
261
+ var Y;
262
+ z(N) || ((Y = P.current) == null || Y.focus(), j(null));
263
+ },
264
+ [z]
265
+ ),
266
+ onTriggerLeave: a.useCallback(
267
+ (N) => {
268
+ z(N) && N.preventDefault();
269
+ },
270
+ [z]
271
+ ),
272
+ pointerGraceTimerRef: re,
273
+ onPointerGraceIntentChange: a.useCallback((N) => {
274
+ Z.current = N;
275
+ }, []),
276
+ children: /* @__PURE__ */ s.jsx(J, { ...H, children: /* @__PURE__ */ s.jsx(
277
+ _r,
278
+ {
279
+ asChild: !0,
280
+ trapped: o,
281
+ onMountAutoFocus: I(l, (N) => {
282
+ var Y;
283
+ N.preventDefault(), (Y = P.current) == null || Y.focus({ preventScroll: !0 });
284
+ }),
285
+ onUnmountAutoFocus: i,
286
+ children: /* @__PURE__ */ s.jsx(
287
+ Nr,
288
+ {
289
+ asChild: !0,
290
+ disableOutsidePointerEvents: c,
291
+ onEscapeKeyDown: u,
292
+ onPointerDownOutside: f,
293
+ onFocusOutside: p,
294
+ onInteractOutside: g,
295
+ onDismiss: x,
296
+ children: /* @__PURE__ */ s.jsx(
297
+ Ea,
298
+ {
299
+ asChild: !0,
300
+ ..._,
301
+ dir: S.dir,
302
+ orientation: "vertical",
303
+ loop: n,
304
+ currentTabStopId: V,
305
+ onCurrentTabStopIdChange: j,
306
+ onEntryFocus: I(d, (N) => {
307
+ S.isUsingKeyboardRef.current || N.preventDefault();
308
+ }),
309
+ preventScrollOnEntryFocus: !0,
310
+ children: /* @__PURE__ */ s.jsx(
311
+ Er,
312
+ {
313
+ role: "menu",
314
+ "aria-orientation": "vertical",
315
+ "data-state": an(w.open),
316
+ "data-radix-menu-content": "",
317
+ dir: S.dir,
318
+ ...h,
319
+ ...v,
320
+ ref: K,
321
+ style: { outline: "none", ...v.style },
322
+ onKeyDown: I(v.onKeyDown, (N) => {
323
+ const X = N.target.closest("[data-radix-menu-content]") === N.currentTarget, m = N.ctrlKey || N.altKey || N.metaKey, R = N.key.length === 1;
324
+ X && (N.key === "Tab" && N.preventDefault(), !m && R && Q(N.key));
325
+ const M = P.current;
326
+ if (N.target !== M || !Ya.includes(N.key)) return;
327
+ N.preventDefault();
328
+ const D = L().filter((b) => !b.disabled).map((b) => b.ref.current);
329
+ Or.includes(N.key) && D.reverse(), ml(D);
330
+ }),
331
+ onBlur: I(e.onBlur, (N) => {
332
+ N.currentTarget.contains(N.target) || (window.clearTimeout(G.current), U.current = "");
333
+ }),
334
+ onPointerMove: I(
335
+ e.onPointerMove,
336
+ Pe((N) => {
337
+ const Y = N.target, X = W.current !== N.clientX;
338
+ if (N.currentTarget.contains(Y) && X) {
339
+ const m = N.clientX > W.current ? "right" : "left";
340
+ oe.current = m, W.current = N.clientX;
341
+ }
342
+ })
343
+ )
344
+ }
345
+ )
346
+ }
347
+ )
348
+ }
349
+ )
350
+ }
351
+ ) })
352
+ }
353
+ );
354
+ }
355
+ );
356
+ Gr.displayName = se;
357
+ var al = "MenuGroup", Wt = a.forwardRef(
358
+ (e, r) => {
359
+ const { __scopeMenu: t, ...n } = e;
360
+ return /* @__PURE__ */ s.jsx($.div, { role: "group", ...n, ref: r });
361
+ }
362
+ );
363
+ Wt.displayName = al;
364
+ var ll = "MenuLabel", Hr = a.forwardRef(
365
+ (e, r) => {
366
+ const { __scopeMenu: t, ...n } = e;
367
+ return /* @__PURE__ */ s.jsx($.div, { ...n, ref: r });
368
+ }
369
+ );
370
+ Hr.displayName = ll;
371
+ var Ke = "MenuItem", sr = "menu.itemSelect", et = a.forwardRef(
372
+ (e, r) => {
373
+ const { disabled: t = !1, onSelect: n, ...o } = e, l = a.useRef(null), i = Le(Ke, e.__scopeMenu), c = Kt(Ke, e.__scopeMenu), d = q(r, l), u = a.useRef(!1), f = () => {
374
+ const p = l.current;
375
+ if (!t && p) {
376
+ const g = new CustomEvent(sr, { bubbles: !0, cancelable: !0 });
377
+ p.addEventListener(sr, (x) => n == null ? void 0 : n(x), { once: !0 }), Ia(p, g), g.defaultPrevented ? u.current = !1 : i.onClose();
378
+ }
379
+ };
380
+ return /* @__PURE__ */ s.jsx(
381
+ Kr,
382
+ {
383
+ ...o,
384
+ ref: d,
385
+ disabled: t,
386
+ onClick: I(e.onClick, f),
387
+ onPointerDown: (p) => {
388
+ var g;
389
+ (g = e.onPointerDown) == null || g.call(e, p), u.current = !0;
390
+ },
391
+ onPointerUp: I(e.onPointerUp, (p) => {
392
+ var g;
393
+ u.current || (g = p.currentTarget) == null || g.click();
394
+ }),
395
+ onKeyDown: I(e.onKeyDown, (p) => {
396
+ const g = c.searchRef.current !== "";
397
+ t || g && p.key === " " || bt.includes(p.key) && (p.currentTarget.click(), p.preventDefault());
398
+ })
399
+ }
400
+ );
401
+ }
402
+ );
403
+ et.displayName = Ke;
404
+ var Kr = a.forwardRef(
405
+ (e, r) => {
406
+ const { __scopeMenu: t, disabled: n = !1, textValue: o, ...l } = e, i = Kt(Ke, t), c = $r(t), d = a.useRef(null), u = q(r, d), [f, p] = a.useState(!1), [g, x] = a.useState("");
407
+ return a.useEffect(() => {
408
+ const y = d.current;
409
+ y && x((y.textContent ?? "").trim());
410
+ }, [l.children]), /* @__PURE__ */ s.jsx(
411
+ De.ItemSlot,
412
+ {
413
+ scope: t,
414
+ disabled: n,
415
+ textValue: o ?? g,
416
+ children: /* @__PURE__ */ s.jsx(Ra, { asChild: !0, ...c, focusable: !n, children: /* @__PURE__ */ s.jsx(
417
+ $.div,
418
+ {
419
+ role: "menuitem",
420
+ "data-highlighted": f ? "" : void 0,
421
+ "aria-disabled": n || void 0,
422
+ "data-disabled": n ? "" : void 0,
423
+ ...l,
424
+ ref: u,
425
+ onPointerMove: I(
426
+ e.onPointerMove,
427
+ Pe((y) => {
428
+ n ? i.onItemLeave(y) : (i.onItemEnter(y), y.defaultPrevented || y.currentTarget.focus({ preventScroll: !0 }));
429
+ })
430
+ ),
431
+ onPointerLeave: I(
432
+ e.onPointerLeave,
433
+ Pe((y) => i.onItemLeave(y))
434
+ ),
435
+ onFocus: I(e.onFocus, () => p(!0)),
436
+ onBlur: I(e.onBlur, () => p(!1))
437
+ }
438
+ ) })
439
+ }
440
+ );
441
+ }
442
+ ), sl = "MenuCheckboxItem", Ur = a.forwardRef(
443
+ (e, r) => {
444
+ const { checked: t = !1, onCheckedChange: n, ...o } = e;
445
+ return /* @__PURE__ */ s.jsx(Xr, { scope: e.__scopeMenu, checked: t, children: /* @__PURE__ */ s.jsx(
446
+ et,
447
+ {
448
+ role: "menuitemcheckbox",
449
+ "aria-checked": Ue(t) ? "mixed" : t,
450
+ ...o,
451
+ ref: r,
452
+ "data-state": qt(t),
453
+ onSelect: I(
454
+ o.onSelect,
455
+ () => n == null ? void 0 : n(Ue(t) ? !0 : !t),
456
+ { checkForDefaultPrevented: !1 }
457
+ )
458
+ }
459
+ ) });
460
+ }
461
+ );
462
+ Ur.displayName = sl;
463
+ var Wr = "MenuRadioGroup", [il, cl] = Se(
464
+ Wr,
465
+ { value: void 0, onValueChange: () => {
466
+ } }
467
+ ), zr = a.forwardRef(
468
+ (e, r) => {
469
+ const { value: t, onValueChange: n, ...o } = e, l = Qe(n);
470
+ return /* @__PURE__ */ s.jsx(il, { scope: e.__scopeMenu, value: t, onValueChange: l, children: /* @__PURE__ */ s.jsx(Wt, { ...o, ref: r }) });
471
+ }
472
+ );
473
+ zr.displayName = Wr;
474
+ var Yr = "MenuRadioItem", qr = a.forwardRef(
475
+ (e, r) => {
476
+ const { value: t, ...n } = e, o = cl(Yr, e.__scopeMenu), l = t === o.value;
477
+ return /* @__PURE__ */ s.jsx(Xr, { scope: e.__scopeMenu, checked: l, children: /* @__PURE__ */ s.jsx(
478
+ et,
479
+ {
480
+ role: "menuitemradio",
481
+ "aria-checked": l,
482
+ ...n,
483
+ ref: r,
484
+ "data-state": qt(l),
485
+ onSelect: I(
486
+ n.onSelect,
487
+ () => {
488
+ var i;
489
+ return (i = o.onValueChange) == null ? void 0 : i.call(o, t);
490
+ },
491
+ { checkForDefaultPrevented: !1 }
492
+ )
493
+ }
494
+ ) });
495
+ }
496
+ );
497
+ qr.displayName = Yr;
498
+ var zt = "MenuItemIndicator", [Xr, dl] = Se(
499
+ zt,
500
+ { checked: !1 }
501
+ ), Zr = a.forwardRef(
502
+ (e, r) => {
503
+ const { __scopeMenu: t, forceMount: n, ...o } = e, l = dl(zt, t);
504
+ return /* @__PURE__ */ s.jsx(
505
+ Oe,
506
+ {
507
+ present: n || Ue(l.checked) || l.checked === !0,
508
+ children: /* @__PURE__ */ s.jsx(
509
+ $.span,
510
+ {
511
+ ...o,
512
+ ref: r,
513
+ "data-state": qt(l.checked)
514
+ }
515
+ )
516
+ }
517
+ );
518
+ }
519
+ );
520
+ Zr.displayName = zt;
521
+ var ul = "MenuSeparator", Jr = a.forwardRef(
522
+ (e, r) => {
523
+ const { __scopeMenu: t, ...n } = e;
524
+ return /* @__PURE__ */ s.jsx(
525
+ $.div,
526
+ {
527
+ role: "separator",
528
+ "aria-orientation": "horizontal",
529
+ ...n,
530
+ ref: r
531
+ }
532
+ );
533
+ }
534
+ );
535
+ Jr.displayName = ul;
536
+ var pl = "MenuArrow", Qr = a.forwardRef(
537
+ (e, r) => {
538
+ const { __scopeMenu: t, ...n } = e, o = $e(t);
539
+ return /* @__PURE__ */ s.jsx(Rr, { ...o, ...n, ref: r });
540
+ }
541
+ );
542
+ Qr.displayName = pl;
543
+ var Yt = "MenuSub", [fl, en] = Se(Yt), tn = (e) => {
544
+ const { __scopeMenu: r, children: t, open: n = !1, onOpenChange: o } = e, l = pe(Yt, r), i = $e(r), [c, d] = a.useState(null), [u, f] = a.useState(null), p = Qe(o);
545
+ return a.useEffect(() => (l.open === !1 && p(!1), () => p(!1)), [l.open, p]), /* @__PURE__ */ s.jsx(Bt, { ...i, children: /* @__PURE__ */ s.jsx(
546
+ Lr,
547
+ {
548
+ scope: r,
549
+ open: n,
550
+ onOpenChange: p,
551
+ content: u,
552
+ onContentChange: f,
553
+ children: /* @__PURE__ */ s.jsx(
554
+ fl,
555
+ {
556
+ scope: r,
557
+ contentId: ne(),
558
+ triggerId: ne(),
559
+ trigger: c,
560
+ onTriggerChange: d,
561
+ children: t
562
+ }
563
+ )
564
+ }
565
+ ) });
566
+ };
567
+ tn.displayName = Yt;
568
+ var Ie = "MenuSubTrigger", rn = a.forwardRef(
569
+ (e, r) => {
570
+ const t = pe(Ie, e.__scopeMenu), n = Le(Ie, e.__scopeMenu), o = en(Ie, e.__scopeMenu), l = Kt(Ie, e.__scopeMenu), i = a.useRef(null), { pointerGraceTimerRef: c, onPointerGraceIntentChange: d } = l, u = { __scopeMenu: e.__scopeMenu }, f = a.useCallback(() => {
571
+ i.current && window.clearTimeout(i.current), i.current = null;
572
+ }, []);
573
+ return a.useEffect(() => f, [f]), a.useEffect(() => {
574
+ const p = c.current;
575
+ return () => {
576
+ window.clearTimeout(p), d(null);
577
+ };
578
+ }, [c, d]), /* @__PURE__ */ s.jsx(Gt, { asChild: !0, ...u, children: /* @__PURE__ */ s.jsx(
579
+ Kr,
580
+ {
581
+ id: o.triggerId,
582
+ "aria-haspopup": "menu",
583
+ "aria-expanded": t.open,
584
+ "aria-controls": o.contentId,
585
+ "data-state": an(t.open),
586
+ ...e,
587
+ ref: je(r, o.onTriggerChange),
588
+ onClick: (p) => {
589
+ var g;
590
+ (g = e.onClick) == null || g.call(e, p), !(e.disabled || p.defaultPrevented) && (p.currentTarget.focus(), t.open || t.onOpenChange(!0));
591
+ },
592
+ onPointerMove: I(
593
+ e.onPointerMove,
594
+ Pe((p) => {
595
+ l.onItemEnter(p), !p.defaultPrevented && !e.disabled && !t.open && !i.current && (l.onPointerGraceIntentChange(null), i.current = window.setTimeout(() => {
596
+ t.onOpenChange(!0), f();
597
+ }, 100));
598
+ })
599
+ ),
600
+ onPointerLeave: I(
601
+ e.onPointerLeave,
602
+ Pe((p) => {
603
+ var x, y;
604
+ f();
605
+ const g = (x = t.content) == null ? void 0 : x.getBoundingClientRect();
606
+ if (g) {
607
+ const v = (y = t.content) == null ? void 0 : y.dataset.side, w = v === "right", S = w ? -5 : 5, h = g[w ? "left" : "right"], _ = g[w ? "right" : "left"];
608
+ l.onPointerGraceIntentChange({
609
+ area: [
610
+ // Apply a bleed on clientX to ensure that our exit point is
611
+ // consistently within polygon bounds
612
+ { x: p.clientX + S, y: p.clientY },
613
+ { x: h, y: g.top },
614
+ { x: _, y: g.top },
615
+ { x: _, y: g.bottom },
616
+ { x: h, y: g.bottom }
617
+ ],
618
+ side: v
619
+ }), window.clearTimeout(c.current), c.current = window.setTimeout(
620
+ () => l.onPointerGraceIntentChange(null),
621
+ 300
622
+ );
623
+ } else {
624
+ if (l.onTriggerLeave(p), p.defaultPrevented) return;
625
+ l.onPointerGraceIntentChange(null);
626
+ }
627
+ })
628
+ ),
629
+ onKeyDown: I(e.onKeyDown, (p) => {
630
+ var x;
631
+ const g = l.searchRef.current !== "";
632
+ e.disabled || g && p.key === " " || qa[n.dir].includes(p.key) && (t.onOpenChange(!0), (x = t.content) == null || x.focus(), p.preventDefault());
633
+ })
634
+ }
635
+ ) });
636
+ }
637
+ );
638
+ rn.displayName = Ie;
639
+ var nn = "MenuSubContent", on = a.forwardRef(
640
+ (e, r) => {
641
+ const t = Fr(se, e.__scopeMenu), { forceMount: n = t.forceMount, ...o } = e, l = pe(se, e.__scopeMenu), i = Le(se, e.__scopeMenu), c = en(nn, e.__scopeMenu), d = a.useRef(null), u = q(r, d);
642
+ return /* @__PURE__ */ s.jsx(De.Provider, { scope: e.__scopeMenu, children: /* @__PURE__ */ s.jsx(Oe, { present: n || l.open, children: /* @__PURE__ */ s.jsx(De.Slot, { scope: e.__scopeMenu, children: /* @__PURE__ */ s.jsx(
643
+ Ut,
644
+ {
645
+ id: c.contentId,
646
+ "aria-labelledby": c.triggerId,
647
+ ...o,
648
+ ref: u,
649
+ align: "start",
650
+ side: i.dir === "rtl" ? "left" : "right",
651
+ disableOutsidePointerEvents: !1,
652
+ disableOutsideScroll: !1,
653
+ trapFocus: !1,
654
+ onOpenAutoFocus: (f) => {
655
+ var p;
656
+ i.isUsingKeyboardRef.current && ((p = d.current) == null || p.focus()), f.preventDefault();
657
+ },
658
+ onCloseAutoFocus: (f) => f.preventDefault(),
659
+ onFocusOutside: I(e.onFocusOutside, (f) => {
660
+ f.target !== c.trigger && l.onOpenChange(!1);
661
+ }),
662
+ onEscapeKeyDown: I(e.onEscapeKeyDown, (f) => {
663
+ i.onClose(), f.preventDefault();
664
+ }),
665
+ onKeyDown: I(e.onKeyDown, (f) => {
666
+ var x;
667
+ const p = f.currentTarget.contains(f.target), g = Xa[i.dir].includes(f.key);
668
+ p && g && (l.onOpenChange(!1), (x = c.trigger) == null || x.focus(), f.preventDefault());
669
+ })
670
+ }
671
+ ) }) }) });
672
+ }
673
+ );
674
+ on.displayName = nn;
675
+ function an(e) {
676
+ return e ? "open" : "closed";
677
+ }
678
+ function Ue(e) {
679
+ return e === "indeterminate";
680
+ }
681
+ function qt(e) {
682
+ return Ue(e) ? "indeterminate" : e ? "checked" : "unchecked";
683
+ }
684
+ function ml(e) {
685
+ const r = document.activeElement;
686
+ for (const t of e)
687
+ if (t === r || (t.focus(), document.activeElement !== r)) return;
688
+ }
689
+ function gl(e, r) {
690
+ return e.map((t, n) => e[(r + n) % e.length]);
691
+ }
692
+ function vl(e, r, t) {
693
+ const o = r.length > 1 && Array.from(r).every((u) => u === r[0]) ? r[0] : r, l = t ? e.indexOf(t) : -1;
694
+ let i = gl(e, Math.max(l, 0));
695
+ o.length === 1 && (i = i.filter((u) => u !== t));
696
+ const d = i.find(
697
+ (u) => u.toLowerCase().startsWith(o.toLowerCase())
698
+ );
699
+ return d !== t ? d : void 0;
700
+ }
701
+ function hl(e, r) {
702
+ const { x: t, y: n } = e;
703
+ let o = !1;
704
+ for (let l = 0, i = r.length - 1; l < r.length; i = l++) {
705
+ const c = r[l].x, d = r[l].y, u = r[i].x, f = r[i].y;
706
+ d > n != f > n && t < (u - c) * (n - d) / (f - d) + c && (o = !o);
707
+ }
708
+ return o;
709
+ }
710
+ function xl(e, r) {
711
+ if (!r) return !1;
712
+ const t = { x: e.clientX, y: e.clientY };
713
+ return hl(t, r);
714
+ }
715
+ function Pe(e) {
716
+ return (r) => r.pointerType === "mouse" ? e(r) : void 0;
717
+ }
718
+ var yl = Vr, wl = Gt, bl = Br, Sl = Gr, Cl = Wt, _l = Hr, Nl = et, El = Ur, Rl = zr, Il = qr, Ml = Zr, Al = Jr, Dl = Qr, Pl = tn, Tl = rn, jl = on, Xt = "DropdownMenu", [Ol, ad] = Ne(
719
+ Xt,
720
+ [kr]
721
+ ), te = kr(), [kl, ln] = Ol(Xt), sn = (e) => {
722
+ const {
723
+ __scopeDropdownMenu: r,
724
+ children: t,
725
+ dir: n,
726
+ open: o,
727
+ defaultOpen: l,
728
+ onOpenChange: i,
729
+ modal: c = !0
730
+ } = e, d = te(r), u = a.useRef(null), [f = !1, p] = xe({
731
+ prop: o,
732
+ defaultProp: l,
733
+ onChange: i
734
+ });
735
+ return /* @__PURE__ */ s.jsx(
736
+ kl,
737
+ {
738
+ scope: r,
739
+ triggerId: ne(),
740
+ triggerRef: u,
741
+ contentId: ne(),
742
+ open: f,
743
+ onOpenChange: p,
744
+ onOpenToggle: a.useCallback(() => p((g) => !g), [p]),
745
+ modal: c,
746
+ children: /* @__PURE__ */ s.jsx(yl, { ...d, open: f, onOpenChange: p, dir: n, modal: c, children: t })
747
+ }
748
+ );
749
+ };
750
+ sn.displayName = Xt;
751
+ var cn = "DropdownMenuTrigger", dn = a.forwardRef(
752
+ (e, r) => {
753
+ const { __scopeDropdownMenu: t, disabled: n = !1, ...o } = e, l = ln(cn, t), i = te(t);
754
+ return /* @__PURE__ */ s.jsx(wl, { asChild: !0, ...i, children: /* @__PURE__ */ s.jsx(
755
+ $.button,
756
+ {
757
+ type: "button",
758
+ id: l.triggerId,
759
+ "aria-haspopup": "menu",
760
+ "aria-expanded": l.open,
761
+ "aria-controls": l.open ? l.contentId : void 0,
762
+ "data-state": l.open ? "open" : "closed",
763
+ "data-disabled": n ? "" : void 0,
764
+ disabled: n,
765
+ ...o,
766
+ ref: je(r, l.triggerRef),
767
+ onPointerDown: I(e.onPointerDown, (c) => {
768
+ !n && c.button === 0 && c.ctrlKey === !1 && (l.onOpenToggle(), l.open || c.preventDefault());
769
+ }),
770
+ onKeyDown: I(e.onKeyDown, (c) => {
771
+ n || (["Enter", " "].includes(c.key) && l.onOpenToggle(), c.key === "ArrowDown" && l.onOpenChange(!0), ["Enter", " ", "ArrowDown"].includes(c.key) && c.preventDefault());
772
+ })
773
+ }
774
+ ) });
775
+ }
776
+ );
777
+ dn.displayName = cn;
778
+ var $l = "DropdownMenuPortal", un = (e) => {
779
+ const { __scopeDropdownMenu: r, ...t } = e, n = te(r);
780
+ return /* @__PURE__ */ s.jsx(bl, { ...n, ...t });
781
+ };
782
+ un.displayName = $l;
783
+ var pn = "DropdownMenuContent", fn = a.forwardRef(
784
+ (e, r) => {
785
+ const { __scopeDropdownMenu: t, ...n } = e, o = ln(pn, t), l = te(t), i = a.useRef(!1);
786
+ return /* @__PURE__ */ s.jsx(
787
+ Sl,
788
+ {
789
+ id: o.contentId,
790
+ "aria-labelledby": o.triggerId,
791
+ ...l,
792
+ ...n,
793
+ ref: r,
794
+ onCloseAutoFocus: I(e.onCloseAutoFocus, (c) => {
795
+ var d;
796
+ i.current || (d = o.triggerRef.current) == null || d.focus(), i.current = !1, c.preventDefault();
797
+ }),
798
+ onInteractOutside: I(e.onInteractOutside, (c) => {
799
+ const d = c.detail.originalEvent, u = d.button === 0 && d.ctrlKey === !0, f = d.button === 2 || u;
800
+ (!o.modal || f) && (i.current = !0);
801
+ }),
802
+ style: {
803
+ ...e.style,
804
+ "--radix-dropdown-menu-content-transform-origin": "var(--radix-popper-transform-origin)",
805
+ "--radix-dropdown-menu-content-available-width": "var(--radix-popper-available-width)",
806
+ "--radix-dropdown-menu-content-available-height": "var(--radix-popper-available-height)",
807
+ "--radix-dropdown-menu-trigger-width": "var(--radix-popper-anchor-width)",
808
+ "--radix-dropdown-menu-trigger-height": "var(--radix-popper-anchor-height)"
809
+ }
810
+ }
811
+ );
812
+ }
813
+ );
814
+ fn.displayName = pn;
815
+ var Ll = "DropdownMenuGroup", mn = a.forwardRef(
816
+ (e, r) => {
817
+ const { __scopeDropdownMenu: t, ...n } = e, o = te(t);
818
+ return /* @__PURE__ */ s.jsx(Cl, { ...o, ...n, ref: r });
819
+ }
820
+ );
821
+ mn.displayName = Ll;
822
+ var Vl = "DropdownMenuLabel", gn = a.forwardRef(
823
+ (e, r) => {
824
+ const { __scopeDropdownMenu: t, ...n } = e, o = te(t);
825
+ return /* @__PURE__ */ s.jsx(_l, { ...o, ...n, ref: r });
826
+ }
827
+ );
828
+ gn.displayName = Vl;
829
+ var Fl = "DropdownMenuItem", vn = a.forwardRef(
830
+ (e, r) => {
831
+ const { __scopeDropdownMenu: t, ...n } = e, o = te(t);
832
+ return /* @__PURE__ */ s.jsx(Nl, { ...o, ...n, ref: r });
833
+ }
834
+ );
835
+ vn.displayName = Fl;
836
+ var Bl = "DropdownMenuCheckboxItem", hn = a.forwardRef((e, r) => {
837
+ const { __scopeDropdownMenu: t, ...n } = e, o = te(t);
838
+ return /* @__PURE__ */ s.jsx(El, { ...o, ...n, ref: r });
839
+ });
840
+ hn.displayName = Bl;
841
+ var Gl = "DropdownMenuRadioGroup", xn = a.forwardRef((e, r) => {
842
+ const { __scopeDropdownMenu: t, ...n } = e, o = te(t);
843
+ return /* @__PURE__ */ s.jsx(Rl, { ...o, ...n, ref: r });
844
+ });
845
+ xn.displayName = Gl;
846
+ var Hl = "DropdownMenuRadioItem", yn = a.forwardRef((e, r) => {
847
+ const { __scopeDropdownMenu: t, ...n } = e, o = te(t);
848
+ return /* @__PURE__ */ s.jsx(Il, { ...o, ...n, ref: r });
849
+ });
850
+ yn.displayName = Hl;
851
+ var Kl = "DropdownMenuItemIndicator", wn = a.forwardRef((e, r) => {
852
+ const { __scopeDropdownMenu: t, ...n } = e, o = te(t);
853
+ return /* @__PURE__ */ s.jsx(Ml, { ...o, ...n, ref: r });
854
+ });
855
+ wn.displayName = Kl;
856
+ var Ul = "DropdownMenuSeparator", bn = a.forwardRef((e, r) => {
857
+ const { __scopeDropdownMenu: t, ...n } = e, o = te(t);
858
+ return /* @__PURE__ */ s.jsx(Al, { ...o, ...n, ref: r });
859
+ });
860
+ bn.displayName = Ul;
861
+ var Wl = "DropdownMenuArrow", zl = a.forwardRef(
862
+ (e, r) => {
863
+ const { __scopeDropdownMenu: t, ...n } = e, o = te(t);
864
+ return /* @__PURE__ */ s.jsx(Dl, { ...o, ...n, ref: r });
865
+ }
866
+ );
867
+ zl.displayName = Wl;
868
+ var Yl = (e) => {
869
+ const { __scopeDropdownMenu: r, children: t, open: n, onOpenChange: o, defaultOpen: l } = e, i = te(r), [c = !1, d] = xe({
870
+ prop: n,
871
+ defaultProp: l,
872
+ onChange: o
873
+ });
874
+ return /* @__PURE__ */ s.jsx(Pl, { ...i, open: c, onOpenChange: d, children: t });
875
+ }, ql = "DropdownMenuSubTrigger", Sn = a.forwardRef((e, r) => {
876
+ const { __scopeDropdownMenu: t, ...n } = e, o = te(t);
877
+ return /* @__PURE__ */ s.jsx(Tl, { ...o, ...n, ref: r });
878
+ });
879
+ Sn.displayName = ql;
880
+ var Xl = "DropdownMenuSubContent", Cn = a.forwardRef((e, r) => {
881
+ const { __scopeDropdownMenu: t, ...n } = e, o = te(t);
882
+ return /* @__PURE__ */ s.jsx(
883
+ jl,
884
+ {
885
+ ...o,
886
+ ...n,
887
+ ref: r,
888
+ style: {
889
+ ...e.style,
890
+ "--radix-dropdown-menu-content-transform-origin": "var(--radix-popper-transform-origin)",
891
+ "--radix-dropdown-menu-content-available-width": "var(--radix-popper-available-width)",
892
+ "--radix-dropdown-menu-content-available-height": "var(--radix-popper-available-height)",
893
+ "--radix-dropdown-menu-trigger-width": "var(--radix-popper-anchor-width)",
894
+ "--radix-dropdown-menu-trigger-height": "var(--radix-popper-anchor-height)"
895
+ }
896
+ }
897
+ );
898
+ });
899
+ Cn.displayName = Xl;
900
+ var Zl = sn, Jl = dn, _n = un, Nn = fn, Ql = mn, En = gn, Rn = vn, In = hn, es = xn, Mn = yn, An = wn, Dn = bn, ts = Yl, Pn = Sn, Tn = Cn;
901
+ const ld = Zl, sd = Jl, id = Ql, cd = _n, dd = ts, ud = es, rs = ee(({ className: e, inset: r, children: t, ...n }, o) => /* @__PURE__ */ s.jsxs(
902
+ Pn,
903
+ {
904
+ ref: o,
905
+ className: E(
906
+ "al-flex al-cursor-default al-gap-2 al-select-none al-items-center al-rounded-sm al-px-2 al-py-1.5 al-text-sm al-outline-none focus:al-bg-accent data-[state=open]:al-bg-accent [&_svg]:al-pointer-events-none [&_svg]:al-size-4 [&_svg]:al-shrink-0",
907
+ r && "al-pl-8",
908
+ e
909
+ ),
910
+ ...n,
911
+ children: [
912
+ t,
913
+ /* @__PURE__ */ s.jsx(Sa, { className: "al-ml-auto" })
914
+ ]
915
+ }
916
+ ));
917
+ rs.displayName = Pn.displayName;
918
+ const ns = ee(({ className: e, ...r }, t) => /* @__PURE__ */ s.jsx(
919
+ Tn,
920
+ {
921
+ ref: t,
922
+ className: E(
923
+ "al-z-50 al-min-w-[8rem] al-overflow-hidden al-rounded-md al-border al-bg-popover al-p-1 al-text-popover-foreground al-shadow-lg data-[state=open]:al-animate-in data-[state=closed]:al-animate-out data-[state=closed]:al-fade-out-0 data-[state=open]:al-fade-in-0 data-[state=closed]:al-zoom-out-95 data-[state=open]:al-zoom-in-95 data-[side=bottom]:al-slide-in-from-top-2 data-[side=left]:al-slide-in-from-right-2 data-[side=right]:al-slide-in-from-left-2 data-[side=top]:al-slide-in-from-bottom-2",
924
+ e
925
+ ),
926
+ ...r
927
+ }
928
+ ));
929
+ ns.displayName = Tn.displayName;
930
+ const os = ee(({ className: e, sideOffset: r = 4, ...t }, n) => /* @__PURE__ */ s.jsx(_n, { children: /* @__PURE__ */ s.jsx(
931
+ Nn,
932
+ {
933
+ ref: n,
934
+ sideOffset: r,
935
+ className: E(
936
+ "al-z-50 al-min-w-[8rem] al-overflow-hidden al-rounded-md al-border al-bg-popover al-p-1 al-text-popover-foreground al-shadow-md data-[state=open]:al-animate-in data-[state=closed]:al-animate-out data-[state=closed]:al-fade-out-0 data-[state=open]:al-fade-in-0 data-[state=closed]:al-zoom-out-95 data-[state=open]:al-zoom-in-95 data-[side=bottom]:al-slide-in-from-top-2 data-[side=left]:al-slide-in-from-right-2 data-[side=right]:al-slide-in-from-left-2 data-[side=top]:al-slide-in-from-bottom-2",
937
+ e
938
+ ),
939
+ ...t
940
+ }
941
+ ) }));
942
+ os.displayName = Nn.displayName;
943
+ const as = ee(({ className: e, inset: r, ...t }, n) => /* @__PURE__ */ s.jsx(
944
+ Rn,
945
+ {
946
+ ref: n,
947
+ className: E(
948
+ "al-relative al-flex al-cursor-default al-select-none al-items-center al-gap-2 al-rounded-sm al-px-2 al-py-1.5 al-text-sm al-outline-none al-transition-colors focus:al-bg-accent focus:al-text-accent-foreground data-[disabled]:al-pointer-events-none data-[disabled]:al-opacity-50 [&_svg]:al-pointer-events-none [&_svg]:al-size-4 [&_svg]:al-shrink-0",
949
+ r && "al-pl-8",
950
+ e
951
+ ),
952
+ ...t
953
+ }
954
+ ));
955
+ as.displayName = Rn.displayName;
956
+ const ls = ee(({ className: e, children: r, checked: t, ...n }, o) => /* @__PURE__ */ s.jsxs(
957
+ In,
958
+ {
959
+ ref: o,
960
+ className: E(
961
+ "al-relative al-flex al-cursor-default al-select-none al-items-center al-rounded-sm al-py-1.5 al-pl-8 al-pr-2 al-text-sm al-outline-none al-transition-colors focus:al-bg-accent focus:al-text-accent-foreground data-[disabled]:al-pointer-events-none data-[disabled]:al-opacity-50",
962
+ e
963
+ ),
964
+ checked: t,
965
+ ...n,
966
+ children: [
967
+ /* @__PURE__ */ s.jsx("span", { className: "al-absolute al-left-2 al-flex al-h-3.5 al-w-3.5 al-items-center al-justify-center", children: /* @__PURE__ */ s.jsx(An, { children: /* @__PURE__ */ s.jsx(xr, { className: "al-h-4 al-w-4" }) }) }),
968
+ r
969
+ ]
970
+ }
971
+ ));
972
+ ls.displayName = In.displayName;
973
+ const ss = ee(({ className: e, children: r, ...t }, n) => /* @__PURE__ */ s.jsxs(
974
+ Mn,
975
+ {
976
+ ref: n,
977
+ className: E(
978
+ "al-relative al-flex al-cursor-default al-select-none al-items-center al-rounded-sm al-py-1.5 al-pl-8 al-pr-2 al-text-sm al-outline-none al-transition-colors focus:al-bg-accent focus:al-text-accent-foreground data-[disabled]:al-pointer-events-none data-[disabled]:al-opacity-50",
979
+ e
980
+ ),
981
+ ...t,
982
+ children: [
983
+ /* @__PURE__ */ s.jsx("span", { className: "al-absolute al-left-2 al-flex al-h-3.5 al-w-3.5 al-items-center al-justify-center", children: /* @__PURE__ */ s.jsx(An, { children: /* @__PURE__ */ s.jsx(Ca, { className: "al-h-2 al-w-2 al-fill-current" }) }) }),
984
+ r
985
+ ]
986
+ }
987
+ ));
988
+ ss.displayName = Mn.displayName;
989
+ const is = ee(({ className: e, inset: r, ...t }, n) => /* @__PURE__ */ s.jsx(
990
+ En,
991
+ {
992
+ ref: n,
993
+ className: E("al-px-2 al-py-1.5 al-text-sm al-font-semibold", r && "al-pl-8", e),
994
+ ...t
995
+ }
996
+ ));
997
+ is.displayName = En.displayName;
998
+ const cs = ee(({ className: e, ...r }, t) => /* @__PURE__ */ s.jsx(
999
+ Dn,
1000
+ {
1001
+ ref: t,
1002
+ className: E("al--mx-1 al-my-1 al-h-px al-bg-muted", e),
1003
+ ...r
1004
+ }
1005
+ ));
1006
+ cs.displayName = Dn.displayName;
1007
+ const ds = ({ className: e, ...r }) => /* @__PURE__ */ s.jsx(
1008
+ "span",
1009
+ {
1010
+ className: E("al-ml-auto al-text-xs al-tracking-widest al-opacity-60", e),
1011
+ ...r
1012
+ }
1013
+ );
1014
+ ds.displayName = "DropdownMenuShortcut";
1015
+ var ir = 1, us = 0.9, ps = 0.8, fs = 0.17, pt = 0.1, ft = 0.999, ms = 0.9999, gs = 0.99, vs = /[\\\/_+.#"@\[\(\{&]/, hs = /[\\\/_+.#"@\[\(\{&]/g, xs = /[\s-]/, jn = /[\s-]/g;
1016
+ function St(e, r, t, n, o, l, i) {
1017
+ if (l === r.length) return o === e.length ? ir : gs;
1018
+ var c = `${o},${l}`;
1019
+ if (i[c] !== void 0) return i[c];
1020
+ for (var d = n.charAt(l), u = t.indexOf(d, o), f = 0, p, g, x, y; u >= 0; ) p = St(e, r, t, n, u + 1, l + 1, i), p > f && (u === o ? p *= ir : vs.test(e.charAt(u - 1)) ? (p *= ps, x = e.slice(o, u - 1).match(hs), x && o > 0 && (p *= Math.pow(ft, x.length))) : xs.test(e.charAt(u - 1)) ? (p *= us, y = e.slice(o, u - 1).match(jn), y && o > 0 && (p *= Math.pow(ft, y.length))) : (p *= fs, o > 0 && (p *= Math.pow(ft, u - o))), e.charAt(u) !== r.charAt(l) && (p *= ms)), (p < pt && t.charAt(u - 1) === n.charAt(l + 1) || n.charAt(l + 1) === n.charAt(l) && t.charAt(u - 1) !== n.charAt(l)) && (g = St(e, r, t, n, u + 1, l + 2, i), g * pt > p && (p = g * pt)), p > f && (f = p), u = t.indexOf(d, u + 1);
1021
+ return i[c] = f, f;
1022
+ }
1023
+ function cr(e) {
1024
+ return e.toLowerCase().replace(jn, " ");
1025
+ }
1026
+ function ys(e, r, t) {
1027
+ return e = t && t.length > 0 ? `${e + " " + t.join(" ")}` : e, St(e, r, cr(e), cr(r), 0, 0, {});
1028
+ }
1029
+ var Ct = { exports: {} }, mt = {};
1030
+ /**
1031
+ * @license React
1032
+ * use-sync-external-store-shim.production.js
1033
+ *
1034
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
1035
+ *
1036
+ * This source code is licensed under the MIT license found in the
1037
+ * LICENSE file in the root directory of this source tree.
1038
+ */
1039
+ var dr;
1040
+ function ws() {
1041
+ if (dr) return mt;
1042
+ dr = 1;
1043
+ var e = T;
1044
+ function r(p, g) {
1045
+ return p === g && (p !== 0 || 1 / p === 1 / g) || p !== p && g !== g;
1046
+ }
1047
+ var t = typeof Object.is == "function" ? Object.is : r, n = e.useState, o = e.useEffect, l = e.useLayoutEffect, i = e.useDebugValue;
1048
+ function c(p, g) {
1049
+ var x = g(), y = n({ inst: { value: x, getSnapshot: g } }), v = y[0].inst, w = y[1];
1050
+ return l(
1051
+ function() {
1052
+ v.value = x, v.getSnapshot = g, d(v) && w({ inst: v });
1053
+ },
1054
+ [p, x, g]
1055
+ ), o(
1056
+ function() {
1057
+ return d(v) && w({ inst: v }), p(function() {
1058
+ d(v) && w({ inst: v });
1059
+ });
1060
+ },
1061
+ [p]
1062
+ ), i(x), x;
1063
+ }
1064
+ function d(p) {
1065
+ var g = p.getSnapshot;
1066
+ p = p.value;
1067
+ try {
1068
+ var x = g();
1069
+ return !t(p, x);
1070
+ } catch {
1071
+ return !0;
1072
+ }
1073
+ }
1074
+ function u(p, g) {
1075
+ return g();
1076
+ }
1077
+ var f = typeof window > "u" || typeof window.document > "u" || typeof window.document.createElement > "u" ? u : c;
1078
+ return mt.useSyncExternalStore = e.useSyncExternalStore !== void 0 ? e.useSyncExternalStore : f, mt;
1079
+ }
1080
+ var gt = {};
1081
+ /**
1082
+ * @license React
1083
+ * use-sync-external-store-shim.development.js
1084
+ *
1085
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
1086
+ *
1087
+ * This source code is licensed under the MIT license found in the
1088
+ * LICENSE file in the root directory of this source tree.
1089
+ */
1090
+ var ur;
1091
+ function bs() {
1092
+ return ur || (ur = 1, process.env.NODE_ENV !== "production" && function() {
1093
+ function e(x, y) {
1094
+ return x === y && (x !== 0 || 1 / x === 1 / y) || x !== x && y !== y;
1095
+ }
1096
+ function r(x, y) {
1097
+ f || o.startTransition === void 0 || (f = !0, console.error(
1098
+ "You are using an outdated, pre-release alpha of React 18 that does not support useSyncExternalStore. The use-sync-external-store shim will not work correctly. Upgrade to a newer pre-release."
1099
+ ));
1100
+ var v = y();
1101
+ if (!p) {
1102
+ var w = y();
1103
+ l(v, w) || (console.error(
1104
+ "The result of getSnapshot should be cached to avoid an infinite loop"
1105
+ ), p = !0);
1106
+ }
1107
+ w = i({
1108
+ inst: { value: v, getSnapshot: y }
1109
+ });
1110
+ var S = w[0].inst, h = w[1];
1111
+ return d(
1112
+ function() {
1113
+ S.value = v, S.getSnapshot = y, t(S) && h({ inst: S });
1114
+ },
1115
+ [x, v, y]
1116
+ ), c(
1117
+ function() {
1118
+ return t(S) && h({ inst: S }), x(function() {
1119
+ t(S) && h({ inst: S });
1120
+ });
1121
+ },
1122
+ [x]
1123
+ ), u(v), v;
1124
+ }
1125
+ function t(x) {
1126
+ var y = x.getSnapshot;
1127
+ x = x.value;
1128
+ try {
1129
+ var v = y();
1130
+ return !l(x, v);
1131
+ } catch {
1132
+ return !0;
1133
+ }
1134
+ }
1135
+ function n(x, y) {
1136
+ return y();
1137
+ }
1138
+ typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ < "u" && typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart == "function" && __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(Error());
1139
+ var o = T, l = typeof Object.is == "function" ? Object.is : e, i = o.useState, c = o.useEffect, d = o.useLayoutEffect, u = o.useDebugValue, f = !1, p = !1, g = typeof window > "u" || typeof window.document > "u" || typeof window.document.createElement > "u" ? n : r;
1140
+ gt.useSyncExternalStore = o.useSyncExternalStore !== void 0 ? o.useSyncExternalStore : g, typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ < "u" && typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop == "function" && __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(Error());
1141
+ }()), gt;
1142
+ }
1143
+ process.env.NODE_ENV === "production" ? Ct.exports = ws() : Ct.exports = bs();
1144
+ var Ss = Ct.exports, Re = '[cmdk-group=""]', vt = '[cmdk-group-items=""]', Cs = '[cmdk-group-heading=""]', Zt = '[cmdk-item=""]', pr = `${Zt}:not([aria-disabled="true"])`, _t = "cmdk-item-select", he = "data-value", _s = (e, r, t) => ys(e, r, t), On = a.createContext(void 0), Ve = () => a.useContext(On), kn = a.createContext(void 0), Jt = () => a.useContext(kn), $n = a.createContext(void 0), Ln = a.forwardRef((e, r) => {
1145
+ let t = Ce(() => {
1146
+ var m, R;
1147
+ return { search: "", value: (R = (m = e.value) != null ? m : e.defaultValue) != null ? R : "", filtered: { count: 0, items: /* @__PURE__ */ new Map(), groups: /* @__PURE__ */ new Set() } };
1148
+ }), n = Ce(() => /* @__PURE__ */ new Set()), o = Ce(() => /* @__PURE__ */ new Map()), l = Ce(() => /* @__PURE__ */ new Map()), i = Ce(() => /* @__PURE__ */ new Set()), c = Vn(e), { label: d, children: u, value: f, onValueChange: p, filter: g, shouldFilter: x, loop: y, disablePointerSelection: v = !1, vimBindings: w = !0, ...S } = e, h = ne(), _ = ne(), L = ne(), V = a.useRef(null), j = Os();
1149
+ ye(() => {
1150
+ if (f !== void 0) {
1151
+ let m = f.trim();
1152
+ t.current.value = m, P.emit();
1153
+ }
1154
+ }, [f]), ye(() => {
1155
+ j(6, oe);
1156
+ }, []);
1157
+ let P = a.useMemo(() => ({ subscribe: (m) => (i.current.add(m), () => i.current.delete(m)), snapshot: () => t.current, setState: (m, R, M) => {
1158
+ var C, D, b;
1159
+ if (!Object.is(t.current[m], R)) {
1160
+ if (t.current[m] = R, m === "search") Z(), U(), j(1, re);
1161
+ else if (m === "value" && (M || j(5, oe), ((C = c.current) == null ? void 0 : C.value) !== void 0)) {
1162
+ let A = R ?? "";
1163
+ (b = (D = c.current).onValueChange) == null || b.call(D, A);
1164
+ return;
1165
+ }
1166
+ P.emit();
1167
+ }
1168
+ }, emit: () => {
1169
+ i.current.forEach((m) => m());
1170
+ } }), []), K = a.useMemo(() => ({ value: (m, R, M) => {
1171
+ var C;
1172
+ R !== ((C = l.current.get(m)) == null ? void 0 : C.value) && (l.current.set(m, { value: R, keywords: M }), t.current.filtered.items.set(m, G(R, M)), j(2, () => {
1173
+ U(), P.emit();
1174
+ }));
1175
+ }, item: (m, R) => (n.current.add(m), R && (o.current.has(R) ? o.current.get(R).add(m) : o.current.set(R, /* @__PURE__ */ new Set([m]))), j(3, () => {
1176
+ Z(), U(), t.current.value || re(), P.emit();
1177
+ }), () => {
1178
+ l.current.delete(m), n.current.delete(m), t.current.filtered.items.delete(m);
1179
+ let M = W();
1180
+ j(4, () => {
1181
+ Z(), (M == null ? void 0 : M.getAttribute("id")) === m && re(), P.emit();
1182
+ });
1183
+ }), group: (m) => (o.current.has(m) || o.current.set(m, /* @__PURE__ */ new Set()), () => {
1184
+ l.current.delete(m), o.current.delete(m);
1185
+ }), filter: () => c.current.shouldFilter, label: d || e["aria-label"], getDisablePointerSelection: () => c.current.disablePointerSelection, listId: h, inputId: L, labelId: _, listInnerRef: V }), []);
1186
+ function G(m, R) {
1187
+ var M, C;
1188
+ let D = (C = (M = c.current) == null ? void 0 : M.filter) != null ? C : _s;
1189
+ return m ? D(m, t.current.search, R) : 0;
1190
+ }
1191
+ function U() {
1192
+ if (!t.current.search || c.current.shouldFilter === !1) return;
1193
+ let m = t.current.filtered.items, R = [];
1194
+ t.current.filtered.groups.forEach((C) => {
1195
+ let D = o.current.get(C), b = 0;
1196
+ D.forEach((A) => {
1197
+ let O = m.get(A);
1198
+ b = Math.max(O, b);
1199
+ }), R.push([C, b]);
1200
+ });
1201
+ let M = V.current;
1202
+ J().sort((C, D) => {
1203
+ var b, A;
1204
+ let O = C.getAttribute("id"), k = D.getAttribute("id");
1205
+ return ((b = m.get(k)) != null ? b : 0) - ((A = m.get(O)) != null ? A : 0);
1206
+ }).forEach((C) => {
1207
+ let D = C.closest(vt);
1208
+ D ? D.appendChild(C.parentElement === D ? C : C.closest(`${vt} > *`)) : M.appendChild(C.parentElement === M ? C : C.closest(`${vt} > *`));
1209
+ }), R.sort((C, D) => D[1] - C[1]).forEach((C) => {
1210
+ var D;
1211
+ let b = (D = V.current) == null ? void 0 : D.querySelector(`${Re}[${he}="${encodeURIComponent(C[0])}"]`);
1212
+ b == null || b.parentElement.appendChild(b);
1213
+ });
1214
+ }
1215
+ function re() {
1216
+ let m = J().find((M) => M.getAttribute("aria-disabled") !== "true"), R = m == null ? void 0 : m.getAttribute(he);
1217
+ P.setState("value", R || void 0);
1218
+ }
1219
+ function Z() {
1220
+ var m, R, M, C;
1221
+ if (!t.current.search || c.current.shouldFilter === !1) {
1222
+ t.current.filtered.count = n.current.size;
1223
+ return;
1224
+ }
1225
+ t.current.filtered.groups = /* @__PURE__ */ new Set();
1226
+ let D = 0;
1227
+ for (let b of n.current) {
1228
+ let A = (R = (m = l.current.get(b)) == null ? void 0 : m.value) != null ? R : "", O = (C = (M = l.current.get(b)) == null ? void 0 : M.keywords) != null ? C : [], k = G(A, O);
1229
+ t.current.filtered.items.set(b, k), k > 0 && D++;
1230
+ }
1231
+ for (let [b, A] of o.current) for (let O of A) if (t.current.filtered.items.get(O) > 0) {
1232
+ t.current.filtered.groups.add(b);
1233
+ break;
1234
+ }
1235
+ t.current.filtered.count = D;
1236
+ }
1237
+ function oe() {
1238
+ var m, R, M;
1239
+ let C = W();
1240
+ C && (((m = C.parentElement) == null ? void 0 : m.firstChild) === C && ((M = (R = C.closest(Re)) == null ? void 0 : R.querySelector(Cs)) == null || M.scrollIntoView({ block: "nearest" })), C.scrollIntoView({ block: "nearest" }));
1241
+ }
1242
+ function W() {
1243
+ var m;
1244
+ return (m = V.current) == null ? void 0 : m.querySelector(`${Zt}[aria-selected="true"]`);
1245
+ }
1246
+ function J() {
1247
+ var m;
1248
+ return Array.from(((m = V.current) == null ? void 0 : m.querySelectorAll(pr)) || []);
1249
+ }
1250
+ function H(m) {
1251
+ let R = J()[m];
1252
+ R && P.setState("value", R.getAttribute(he));
1253
+ }
1254
+ function Q(m) {
1255
+ var R;
1256
+ let M = W(), C = J(), D = C.findIndex((A) => A === M), b = C[D + m];
1257
+ (R = c.current) != null && R.loop && (b = D + m < 0 ? C[C.length - 1] : D + m === C.length ? C[0] : C[D + m]), b && P.setState("value", b.getAttribute(he));
1258
+ }
1259
+ function z(m) {
1260
+ let R = W(), M = R == null ? void 0 : R.closest(Re), C;
1261
+ for (; M && !C; ) M = m > 0 ? Ts(M, Re) : js(M, Re), C = M == null ? void 0 : M.querySelector(pr);
1262
+ C ? P.setState("value", C.getAttribute(he)) : Q(m);
1263
+ }
1264
+ let N = () => H(J().length - 1), Y = (m) => {
1265
+ m.preventDefault(), m.metaKey ? N() : m.altKey ? z(1) : Q(1);
1266
+ }, X = (m) => {
1267
+ m.preventDefault(), m.metaKey ? H(0) : m.altKey ? z(-1) : Q(-1);
1268
+ };
1269
+ return a.createElement($.div, { ref: r, tabIndex: -1, ...S, "cmdk-root": "", onKeyDown: (m) => {
1270
+ var R;
1271
+ if ((R = S.onKeyDown) == null || R.call(S, m), !m.defaultPrevented) switch (m.key) {
1272
+ case "n":
1273
+ case "j": {
1274
+ w && m.ctrlKey && Y(m);
1275
+ break;
1276
+ }
1277
+ case "ArrowDown": {
1278
+ Y(m);
1279
+ break;
1280
+ }
1281
+ case "p":
1282
+ case "k": {
1283
+ w && m.ctrlKey && X(m);
1284
+ break;
1285
+ }
1286
+ case "ArrowUp": {
1287
+ X(m);
1288
+ break;
1289
+ }
1290
+ case "Home": {
1291
+ m.preventDefault(), H(0);
1292
+ break;
1293
+ }
1294
+ case "End": {
1295
+ m.preventDefault(), N();
1296
+ break;
1297
+ }
1298
+ case "Enter":
1299
+ if (!m.nativeEvent.isComposing && m.keyCode !== 229) {
1300
+ m.preventDefault();
1301
+ let M = W();
1302
+ if (M) {
1303
+ let C = new Event(_t);
1304
+ M.dispatchEvent(C);
1305
+ }
1306
+ }
1307
+ }
1308
+ } }, a.createElement("label", { "cmdk-label": "", htmlFor: K.inputId, id: K.labelId, style: $s }, d), tt(e, (m) => a.createElement(kn.Provider, { value: P }, a.createElement(On.Provider, { value: K }, m))));
1309
+ }), Ns = a.forwardRef((e, r) => {
1310
+ var t, n;
1311
+ let o = ne(), l = a.useRef(null), i = a.useContext($n), c = Ve(), d = Vn(e), u = (n = (t = d.current) == null ? void 0 : t.forceMount) != null ? n : i == null ? void 0 : i.forceMount;
1312
+ ye(() => {
1313
+ if (!u) return c.item(o, i == null ? void 0 : i.id);
1314
+ }, [u]);
1315
+ let f = Fn(o, l, [e.value, e.children, l], e.keywords), p = Jt(), g = we((j) => j.value && j.value === f.current), x = we((j) => u || c.filter() === !1 ? !0 : j.search ? j.filtered.items.get(o) > 0 : !0);
1316
+ a.useEffect(() => {
1317
+ let j = l.current;
1318
+ if (!(!j || e.disabled)) return j.addEventListener(_t, y), () => j.removeEventListener(_t, y);
1319
+ }, [x, e.onSelect, e.disabled]);
1320
+ function y() {
1321
+ var j, P;
1322
+ v(), (P = (j = d.current).onSelect) == null || P.call(j, f.current);
1323
+ }
1324
+ function v() {
1325
+ p.setState("value", f.current, !0);
1326
+ }
1327
+ if (!x) return null;
1328
+ let { disabled: w, value: S, onSelect: h, forceMount: _, keywords: L, ...V } = e;
1329
+ return a.createElement($.div, { ref: Te([l, r]), ...V, id: o, "cmdk-item": "", role: "option", "aria-disabled": !!w, "aria-selected": !!g, "data-disabled": !!w, "data-selected": !!g, onPointerMove: w || c.getDisablePointerSelection() ? void 0 : v, onClick: w ? void 0 : y }, e.children);
1330
+ }), Es = a.forwardRef((e, r) => {
1331
+ let { heading: t, children: n, forceMount: o, ...l } = e, i = ne(), c = a.useRef(null), d = a.useRef(null), u = ne(), f = Ve(), p = we((x) => o || f.filter() === !1 ? !0 : x.search ? x.filtered.groups.has(i) : !0);
1332
+ ye(() => f.group(i), []), Fn(i, c, [e.value, e.heading, d]);
1333
+ let g = a.useMemo(() => ({ id: i, forceMount: o }), [o]);
1334
+ return a.createElement($.div, { ref: Te([c, r]), ...l, "cmdk-group": "", role: "presentation", hidden: p ? void 0 : !0 }, t && a.createElement("div", { ref: d, "cmdk-group-heading": "", "aria-hidden": !0, id: u }, t), tt(e, (x) => a.createElement("div", { "cmdk-group-items": "", role: "group", "aria-labelledby": t ? u : void 0 }, a.createElement($n.Provider, { value: g }, x))));
1335
+ }), Rs = a.forwardRef((e, r) => {
1336
+ let { alwaysRender: t, ...n } = e, o = a.useRef(null), l = we((i) => !i.search);
1337
+ return !t && !l ? null : a.createElement($.div, { ref: Te([o, r]), ...n, "cmdk-separator": "", role: "separator" });
1338
+ }), Is = a.forwardRef((e, r) => {
1339
+ let { onValueChange: t, ...n } = e, o = e.value != null, l = Jt(), i = we((f) => f.search), c = we((f) => f.value), d = Ve(), u = a.useMemo(() => {
1340
+ var f;
1341
+ let p = (f = d.listInnerRef.current) == null ? void 0 : f.querySelector(`${Zt}[${he}="${encodeURIComponent(c)}"]`);
1342
+ return p == null ? void 0 : p.getAttribute("id");
1343
+ }, []);
1344
+ return a.useEffect(() => {
1345
+ e.value != null && l.setState("search", e.value);
1346
+ }, [e.value]), a.createElement($.input, { ref: r, ...n, "cmdk-input": "", autoComplete: "off", autoCorrect: "off", spellCheck: !1, "aria-autocomplete": "list", role: "combobox", "aria-expanded": !0, "aria-controls": d.listId, "aria-labelledby": d.labelId, "aria-activedescendant": u, id: d.inputId, type: "text", value: o ? e.value : i, onChange: (f) => {
1347
+ o || l.setState("search", f.target.value), t == null || t(f.target.value);
1348
+ } });
1349
+ }), Ms = a.forwardRef((e, r) => {
1350
+ let { children: t, label: n = "Suggestions", ...o } = e, l = a.useRef(null), i = a.useRef(null), c = Ve();
1351
+ return a.useEffect(() => {
1352
+ if (i.current && l.current) {
1353
+ let d = i.current, u = l.current, f, p = new ResizeObserver(() => {
1354
+ f = requestAnimationFrame(() => {
1355
+ let g = d.offsetHeight;
1356
+ u.style.setProperty("--cmdk-list-height", g.toFixed(1) + "px");
1357
+ });
1358
+ });
1359
+ return p.observe(d), () => {
1360
+ cancelAnimationFrame(f), p.unobserve(d);
1361
+ };
1362
+ }
1363
+ }, []), a.createElement($.div, { ref: Te([l, r]), ...o, "cmdk-list": "", role: "listbox", "aria-label": n, id: c.listId }, tt(e, (d) => a.createElement("div", { ref: Te([i, c.listInnerRef]), "cmdk-list-sizer": "" }, d)));
1364
+ }), As = a.forwardRef((e, r) => {
1365
+ let { open: t, onOpenChange: n, overlayClassName: o, contentClassName: l, container: i, ...c } = e;
1366
+ return a.createElement(Ot, { open: t, onOpenChange: n }, a.createElement(kt, { container: i }, a.createElement(qe, { "cmdk-overlay": "", className: o }), a.createElement(Xe, { "aria-label": e.label, "cmdk-dialog": "", className: l }, a.createElement(Ln, { ref: r, ...c }))));
1367
+ }), Ds = a.forwardRef((e, r) => we((t) => t.filtered.count === 0) ? a.createElement($.div, { ref: r, ...e, "cmdk-empty": "", role: "presentation" }) : null), Ps = a.forwardRef((e, r) => {
1368
+ let { progress: t, children: n, label: o = "Loading...", ...l } = e;
1369
+ return a.createElement($.div, { ref: r, ...l, "cmdk-loading": "", role: "progressbar", "aria-valuenow": t, "aria-valuemin": 0, "aria-valuemax": 100, "aria-label": o }, tt(e, (i) => a.createElement("div", { "aria-hidden": !0 }, i)));
1370
+ }), le = Object.assign(Ln, { List: Ms, Item: Ns, Input: Is, Group: Es, Separator: Rs, Dialog: As, Empty: Ds, Loading: Ps });
1371
+ function Ts(e, r) {
1372
+ let t = e.nextElementSibling;
1373
+ for (; t; ) {
1374
+ if (t.matches(r)) return t;
1375
+ t = t.nextElementSibling;
1376
+ }
1377
+ }
1378
+ function js(e, r) {
1379
+ let t = e.previousElementSibling;
1380
+ for (; t; ) {
1381
+ if (t.matches(r)) return t;
1382
+ t = t.previousElementSibling;
1383
+ }
1384
+ }
1385
+ function Vn(e) {
1386
+ let r = a.useRef(e);
1387
+ return ye(() => {
1388
+ r.current = e;
1389
+ }), r;
1390
+ }
1391
+ var ye = typeof window > "u" ? a.useEffect : a.useLayoutEffect;
1392
+ function Ce(e) {
1393
+ let r = a.useRef();
1394
+ return r.current === void 0 && (r.current = e()), r;
1395
+ }
1396
+ function Te(e) {
1397
+ return (r) => {
1398
+ e.forEach((t) => {
1399
+ typeof t == "function" ? t(r) : t != null && (t.current = r);
1400
+ });
1401
+ };
1402
+ }
1403
+ function we(e) {
1404
+ let r = Jt(), t = () => e(r.snapshot());
1405
+ return Ss.useSyncExternalStore(r.subscribe, t, t);
1406
+ }
1407
+ function Fn(e, r, t, n = []) {
1408
+ let o = a.useRef(), l = Ve();
1409
+ return ye(() => {
1410
+ var i;
1411
+ let c = (() => {
1412
+ var u;
1413
+ for (let f of t) {
1414
+ if (typeof f == "string") return f.trim();
1415
+ if (typeof f == "object" && "current" in f) return f.current ? (u = f.current.textContent) == null ? void 0 : u.trim() : o.current;
1416
+ }
1417
+ })(), d = n.map((u) => u.trim());
1418
+ l.value(e, c, d), (i = r.current) == null || i.setAttribute(he, c), o.current = c;
1419
+ }), o;
1420
+ }
1421
+ var Os = () => {
1422
+ let [e, r] = a.useState(), t = Ce(() => /* @__PURE__ */ new Map());
1423
+ return ye(() => {
1424
+ t.current.forEach((n) => n()), t.current = /* @__PURE__ */ new Map();
1425
+ }, [e]), (n, o) => {
1426
+ t.current.set(n, o), r({});
1427
+ };
1428
+ };
1429
+ function ks(e) {
1430
+ let r = e.type;
1431
+ return typeof r == "function" ? r(e.props) : "render" in r ? r.render(e.props) : e;
1432
+ }
1433
+ function tt({ asChild: e, children: r }, t) {
1434
+ return e && a.isValidElement(r) ? a.cloneElement(ks(r), { ref: r.ref }, t(r.props.children)) : t(r);
1435
+ }
1436
+ var $s = { position: "absolute", width: "1px", height: "1px", padding: "0", margin: "-1px", overflow: "hidden", clip: "rect(0, 0, 0, 0)", whiteSpace: "nowrap", borderWidth: "0" };
1437
+ const Bn = ee(({ className: e, ...r }, t) => /* @__PURE__ */ s.jsx(
1438
+ le,
1439
+ {
1440
+ ref: t,
1441
+ className: E(
1442
+ "al-flex al-h-full al-w-full al-flex-col al-overflow-hidden al-rounded-md al-bg-popover al-text-popover-foreground",
1443
+ e
1444
+ ),
1445
+ ...r
1446
+ }
1447
+ ));
1448
+ Bn.displayName = le.displayName;
1449
+ const pd = ({ children: e, ...r }) => /* @__PURE__ */ s.jsx(Ma, { ...r, children: /* @__PURE__ */ s.jsx(Aa, { className: "al-overflow-hidden al-p-0 al-shadow-lg", children: /* @__PURE__ */ s.jsx(Bn, { className: "[&_[cmdk-group-heading]]:al-px-2 [&_[cmdk-group-heading]]:al-font-medium [&_[cmdk-group-heading]]:al-text-muted-foreground [&_[cmdk-group]:not([hidden])_~[cmdk-group]]:al-pt-0 [&_[cmdk-group]]:al-px-2 [&_[cmdk-input-wrapper]_svg]:al-h-5 [&_[cmdk-input-wrapper]_svg]:al-w-5 [&_[cmdk-input]]:al-h-12 [&_[cmdk-item]]:al-px-2 [&_[cmdk-item]]:al-py-3 [&_[cmdk-item]_svg]:al-h-5 [&_[cmdk-item]_svg]:al-w-5", children: e }) }) }), Ls = ee(({ className: e, ...r }, t) => (
1450
+ // eslint-disable-next-line react/no-unknown-property
1451
+ /* @__PURE__ */ s.jsxs("div", { className: "al-flex al-items-center al-border-b al-px-3", "cmdk-input-wrapper": "", children: [
1452
+ /* @__PURE__ */ s.jsx(_a, { className: "al-mr-2 al-h-4 al-w-4 al-shrink-0 al-opacity-50" }),
1453
+ /* @__PURE__ */ s.jsx(
1454
+ le.Input,
1455
+ {
1456
+ ref: t,
1457
+ className: E(
1458
+ "al-flex al-h-11 al-w-full al-rounded-md al-bg-transparent al-py-3 al-text-sm al-outline-none placeholder:al-text-muted-foreground disabled:al-cursor-not-allowed disabled:al-opacity-50",
1459
+ e
1460
+ ),
1461
+ ...r
1462
+ }
1463
+ )
1464
+ ] })
1465
+ ));
1466
+ Ls.displayName = le.Input.displayName;
1467
+ const Vs = ee(({ className: e, ...r }, t) => /* @__PURE__ */ s.jsx(
1468
+ le.List,
1469
+ {
1470
+ ref: t,
1471
+ className: E("al-max-h-[300px] al-overflow-y-auto al-overflow-x-hidden", e),
1472
+ ...r
1473
+ }
1474
+ ));
1475
+ Vs.displayName = le.List.displayName;
1476
+ const Fs = ee((e, r) => /* @__PURE__ */ s.jsx(le.Empty, { ref: r, className: "al-py-6 al-text-center al-text-sm", ...e }));
1477
+ Fs.displayName = le.Empty.displayName;
1478
+ const Bs = ee(({ className: e, ...r }, t) => /* @__PURE__ */ s.jsx(
1479
+ le.Group,
1480
+ {
1481
+ ref: t,
1482
+ className: E(
1483
+ "al-overflow-hidden al-p-1 al-text-foreground [&_[cmdk-group-heading]]:al-px-2 [&_[cmdk-group-heading]]:al-py-1.5 [&_[cmdk-group-heading]]:al-text-xs [&_[cmdk-group-heading]]:al-font-medium [&_[cmdk-group-heading]]:al-text-muted-foreground",
1484
+ e
1485
+ ),
1486
+ ...r
1487
+ }
1488
+ ));
1489
+ Bs.displayName = le.Group.displayName;
1490
+ const Gs = ee(({ className: e, ...r }, t) => /* @__PURE__ */ s.jsx(
1491
+ le.Separator,
1492
+ {
1493
+ ref: t,
1494
+ className: E("al--mx-1 al-h-px al-bg-border", e),
1495
+ ...r
1496
+ }
1497
+ ));
1498
+ Gs.displayName = le.Separator.displayName;
1499
+ const Hs = ee(({ className: e, ...r }, t) => /* @__PURE__ */ s.jsx(
1500
+ le.Item,
1501
+ {
1502
+ ref: t,
1503
+ role: "option",
1504
+ className: E(
1505
+ "al-relative al-flex al-cursor-default al-gap-2 al-select-none al-items-center al-rounded-sm al-px-2 al-py-1.5 al-text-sm al-outline-none data-[disabled=true]:al-pointer-events-none data-[selected=true]:al-bg-accent data-[selected=true]:al-text-accent-foreground data-[disabled=true]:al-opacity-50 [&_svg]:al-pointer-events-none [&_svg]:al-size-4 [&_svg]:al-shrink-0",
1506
+ e
1507
+ ),
1508
+ ...r
1509
+ }
1510
+ ));
1511
+ Hs.displayName = le.Item.displayName;
1512
+ const Ks = ({ className: e, ...r }) => /* @__PURE__ */ s.jsx(
1513
+ "span",
1514
+ {
1515
+ className: E("al-ml-auto al-text-xs al-tracking-widest al-text-muted-foreground", e),
1516
+ ...r
1517
+ }
1518
+ );
1519
+ Ks.displayName = "CommandShortcut";
1520
+ const Us = Ze(
1521
+ "al-inline-flex al-items-center al-rounded-full al-border al-px-2.5 al-py-0.5 al-text-xs al-font-semibold al-transition-colors focus:al-outline-none focus:al-ring-2 focus:al-ring-ring focus:al-ring-offset-2",
1522
+ {
1523
+ variants: {
1524
+ variant: {
1525
+ default: "al-border-transparent al-bg-primary al-bg-bg-brand al-text-primary-foreground hover:al-bg-primary/80",
1526
+ secondary: "al-border-transparent al-bg-secondary al-text-secondary-foreground hover:al-bg-secondary/80",
1527
+ destructive: "al-border-transparent al-bg-destructive al-text-destructive-foreground hover:al-bg-destructive/80",
1528
+ success: "al-border-transparent al-bg-green-100 al-text-green-500 hover:al-bg-green-600",
1529
+ outline: "al-text-foreground",
1530
+ warning: "al-border-transparent al-bg-[#ffeae4] al-text-[#ff7064] hover:al-bg-bg-orange/80"
1531
+ },
1532
+ interactive: {
1533
+ true: "al-cursor-pointer focus:al-ring-2 focus:al-ring-ring focus:al-ring-offset-2",
1534
+ false: "al-cursor-default"
1535
+ }
1536
+ },
1537
+ defaultVariants: {
1538
+ variant: "default",
1539
+ interactive: !1
1540
+ }
1541
+ }
1542
+ );
1543
+ function fd({
1544
+ className: e,
1545
+ variant: r,
1546
+ interactive: t = !0,
1547
+ onAction: n,
1548
+ children: o,
1549
+ role: l = "status",
1550
+ tabIndex: i,
1551
+ onKeyDown: c,
1552
+ ...d
1553
+ }) {
1554
+ const u = (f) => {
1555
+ t && n && (f.key === "Enter" || f.key === " ") && (f.preventDefault(), n()), c == null || c(f);
1556
+ };
1557
+ return /* @__PURE__ */ s.jsx(
1558
+ "div",
1559
+ {
1560
+ className: E(Us({ variant: r, interactive: t }), e),
1561
+ role: t ? "button" : l,
1562
+ tabIndex: t ? 0 : i,
1563
+ onKeyDown: u,
1564
+ onClick: t ? n : void 0,
1565
+ "aria-disabled": t && !n,
1566
+ ...d,
1567
+ children: o
1568
+ }
1569
+ );
1570
+ }
1571
+ var Qt = "Collapsible", [Ws, Gn] = Ne(Qt), [zs, er] = Ws(Qt), Hn = a.forwardRef(
1572
+ (e, r) => {
1573
+ const {
1574
+ __scopeCollapsible: t,
1575
+ open: n,
1576
+ defaultOpen: o,
1577
+ disabled: l,
1578
+ onOpenChange: i,
1579
+ ...c
1580
+ } = e, [d = !1, u] = xe({
1581
+ prop: n,
1582
+ defaultProp: o,
1583
+ onChange: i
1584
+ });
1585
+ return /* @__PURE__ */ s.jsx(
1586
+ zs,
1587
+ {
1588
+ scope: t,
1589
+ disabled: l,
1590
+ contentId: ne(),
1591
+ open: d,
1592
+ onOpenToggle: a.useCallback(() => u((f) => !f), [u]),
1593
+ children: /* @__PURE__ */ s.jsx(
1594
+ $.div,
1595
+ {
1596
+ "data-state": rr(d),
1597
+ "data-disabled": l ? "" : void 0,
1598
+ ...c,
1599
+ ref: r
1600
+ }
1601
+ )
1602
+ }
1603
+ );
1604
+ }
1605
+ );
1606
+ Hn.displayName = Qt;
1607
+ var Kn = "CollapsibleTrigger", Un = a.forwardRef(
1608
+ (e, r) => {
1609
+ const { __scopeCollapsible: t, ...n } = e, o = er(Kn, t);
1610
+ return /* @__PURE__ */ s.jsx(
1611
+ $.button,
1612
+ {
1613
+ type: "button",
1614
+ "aria-controls": o.contentId,
1615
+ "aria-expanded": o.open || !1,
1616
+ "data-state": rr(o.open),
1617
+ "data-disabled": o.disabled ? "" : void 0,
1618
+ disabled: o.disabled,
1619
+ ...n,
1620
+ ref: r,
1621
+ onClick: I(e.onClick, o.onOpenToggle)
1622
+ }
1623
+ );
1624
+ }
1625
+ );
1626
+ Un.displayName = Kn;
1627
+ var tr = "CollapsibleContent", Wn = a.forwardRef(
1628
+ (e, r) => {
1629
+ const { forceMount: t, ...n } = e, o = er(tr, e.__scopeCollapsible);
1630
+ return /* @__PURE__ */ s.jsx(Oe, { present: t || o.open, children: ({ present: l }) => /* @__PURE__ */ s.jsx(Ys, { ...n, ref: r, present: l }) });
1631
+ }
1632
+ );
1633
+ Wn.displayName = tr;
1634
+ var Ys = a.forwardRef((e, r) => {
1635
+ const { __scopeCollapsible: t, present: n, children: o, ...l } = e, i = er(tr, t), [c, d] = a.useState(n), u = a.useRef(null), f = q(r, u), p = a.useRef(0), g = p.current, x = a.useRef(0), y = x.current, v = i.open || c, w = a.useRef(v), S = a.useRef(void 0);
1636
+ return a.useEffect(() => {
1637
+ const h = requestAnimationFrame(() => w.current = !1);
1638
+ return () => cancelAnimationFrame(h);
1639
+ }, []), ce(() => {
1640
+ const h = u.current;
1641
+ if (h) {
1642
+ S.current = S.current || {
1643
+ transitionDuration: h.style.transitionDuration,
1644
+ animationName: h.style.animationName
1645
+ }, h.style.transitionDuration = "0s", h.style.animationName = "none";
1646
+ const _ = h.getBoundingClientRect();
1647
+ p.current = _.height, x.current = _.width, w.current || (h.style.transitionDuration = S.current.transitionDuration, h.style.animationName = S.current.animationName), d(n);
1648
+ }
1649
+ }, [i.open, n]), /* @__PURE__ */ s.jsx(
1650
+ $.div,
1651
+ {
1652
+ "data-state": rr(i.open),
1653
+ "data-disabled": i.disabled ? "" : void 0,
1654
+ id: i.contentId,
1655
+ hidden: !v,
1656
+ ...l,
1657
+ ref: f,
1658
+ style: {
1659
+ "--radix-collapsible-content-height": g ? `${g}px` : void 0,
1660
+ "--radix-collapsible-content-width": y ? `${y}px` : void 0,
1661
+ ...e.style
1662
+ },
1663
+ children: v && o
1664
+ }
1665
+ );
1666
+ });
1667
+ function rr(e) {
1668
+ return e ? "open" : "closed";
1669
+ }
1670
+ var qs = Hn, Xs = Un, Zs = Wn, de = "Accordion", Js = ["Home", "End", "ArrowDown", "ArrowUp", "ArrowLeft", "ArrowRight"], [nr, Qs, ei] = Vt(de), [rt, md] = Ne(de, [
1671
+ ei,
1672
+ Gn
1673
+ ]), or = Gn(), zn = T.forwardRef(
1674
+ (e, r) => {
1675
+ const { type: t, ...n } = e, o = n, l = n;
1676
+ return /* @__PURE__ */ s.jsx(nr.Provider, { scope: e.__scopeAccordion, children: t === "multiple" ? /* @__PURE__ */ s.jsx(oi, { ...l, ref: r }) : /* @__PURE__ */ s.jsx(ni, { ...o, ref: r }) });
1677
+ }
1678
+ );
1679
+ zn.displayName = de;
1680
+ var [Yn, ti] = rt(de), [qn, ri] = rt(
1681
+ de,
1682
+ { collapsible: !1 }
1683
+ ), ni = T.forwardRef(
1684
+ (e, r) => {
1685
+ const {
1686
+ value: t,
1687
+ defaultValue: n,
1688
+ onValueChange: o = () => {
1689
+ },
1690
+ collapsible: l = !1,
1691
+ ...i
1692
+ } = e, [c, d] = xe({
1693
+ prop: t,
1694
+ defaultProp: n,
1695
+ onChange: o
1696
+ });
1697
+ return /* @__PURE__ */ s.jsx(
1698
+ Yn,
1699
+ {
1700
+ scope: e.__scopeAccordion,
1701
+ value: c ? [c] : [],
1702
+ onItemOpen: d,
1703
+ onItemClose: T.useCallback(() => l && d(""), [l, d]),
1704
+ children: /* @__PURE__ */ s.jsx(qn, { scope: e.__scopeAccordion, collapsible: l, children: /* @__PURE__ */ s.jsx(Xn, { ...i, ref: r }) })
1705
+ }
1706
+ );
1707
+ }
1708
+ ), oi = T.forwardRef((e, r) => {
1709
+ const {
1710
+ value: t,
1711
+ defaultValue: n,
1712
+ onValueChange: o = () => {
1713
+ },
1714
+ ...l
1715
+ } = e, [i = [], c] = xe({
1716
+ prop: t,
1717
+ defaultProp: n,
1718
+ onChange: o
1719
+ }), d = T.useCallback(
1720
+ (f) => c((p = []) => [...p, f]),
1721
+ [c]
1722
+ ), u = T.useCallback(
1723
+ (f) => c((p = []) => p.filter((g) => g !== f)),
1724
+ [c]
1725
+ );
1726
+ return /* @__PURE__ */ s.jsx(
1727
+ Yn,
1728
+ {
1729
+ scope: e.__scopeAccordion,
1730
+ value: i,
1731
+ onItemOpen: d,
1732
+ onItemClose: u,
1733
+ children: /* @__PURE__ */ s.jsx(qn, { scope: e.__scopeAccordion, collapsible: !0, children: /* @__PURE__ */ s.jsx(Xn, { ...l, ref: r }) })
1734
+ }
1735
+ );
1736
+ }), [ai, nt] = rt(de), Xn = T.forwardRef(
1737
+ (e, r) => {
1738
+ const { __scopeAccordion: t, disabled: n, dir: o, orientation: l = "vertical", ...i } = e, c = T.useRef(null), d = q(c, r), u = Qs(t), p = Ft(o) === "ltr", g = I(e.onKeyDown, (x) => {
1739
+ var K;
1740
+ if (!Js.includes(x.key)) return;
1741
+ const y = x.target, v = u().filter((G) => {
1742
+ var U;
1743
+ return !((U = G.ref.current) != null && U.disabled);
1744
+ }), w = v.findIndex((G) => G.ref.current === y), S = v.length;
1745
+ if (w === -1) return;
1746
+ x.preventDefault();
1747
+ let h = w;
1748
+ const _ = 0, L = S - 1, V = () => {
1749
+ h = w + 1, h > L && (h = _);
1750
+ }, j = () => {
1751
+ h = w - 1, h < _ && (h = L);
1752
+ };
1753
+ switch (x.key) {
1754
+ case "Home":
1755
+ h = _;
1756
+ break;
1757
+ case "End":
1758
+ h = L;
1759
+ break;
1760
+ case "ArrowRight":
1761
+ l === "horizontal" && (p ? V() : j());
1762
+ break;
1763
+ case "ArrowDown":
1764
+ l === "vertical" && V();
1765
+ break;
1766
+ case "ArrowLeft":
1767
+ l === "horizontal" && (p ? j() : V());
1768
+ break;
1769
+ case "ArrowUp":
1770
+ l === "vertical" && j();
1771
+ break;
1772
+ }
1773
+ const P = h % S;
1774
+ (K = v[P].ref.current) == null || K.focus();
1775
+ });
1776
+ return /* @__PURE__ */ s.jsx(
1777
+ ai,
1778
+ {
1779
+ scope: t,
1780
+ disabled: n,
1781
+ direction: o,
1782
+ orientation: l,
1783
+ children: /* @__PURE__ */ s.jsx(nr.Slot, { scope: t, children: /* @__PURE__ */ s.jsx(
1784
+ $.div,
1785
+ {
1786
+ ...i,
1787
+ "data-orientation": l,
1788
+ ref: d,
1789
+ onKeyDown: n ? void 0 : g
1790
+ }
1791
+ ) })
1792
+ }
1793
+ );
1794
+ }
1795
+ ), We = "AccordionItem", [li, ar] = rt(We), Zn = T.forwardRef(
1796
+ (e, r) => {
1797
+ const { __scopeAccordion: t, value: n, ...o } = e, l = nt(We, t), i = ti(We, t), c = or(t), d = ne(), u = n && i.value.includes(n) || !1, f = l.disabled || e.disabled;
1798
+ return /* @__PURE__ */ s.jsx(
1799
+ li,
1800
+ {
1801
+ scope: t,
1802
+ open: u,
1803
+ disabled: f,
1804
+ triggerId: d,
1805
+ children: /* @__PURE__ */ s.jsx(
1806
+ qs,
1807
+ {
1808
+ "data-orientation": l.orientation,
1809
+ "data-state": no(u),
1810
+ ...c,
1811
+ ...o,
1812
+ ref: r,
1813
+ disabled: f,
1814
+ open: u,
1815
+ onOpenChange: (p) => {
1816
+ p ? i.onItemOpen(n) : i.onItemClose(n);
1817
+ }
1818
+ }
1819
+ )
1820
+ }
1821
+ );
1822
+ }
1823
+ );
1824
+ Zn.displayName = We;
1825
+ var Jn = "AccordionHeader", Qn = T.forwardRef(
1826
+ (e, r) => {
1827
+ const { __scopeAccordion: t, ...n } = e, o = nt(de, t), l = ar(Jn, t);
1828
+ return /* @__PURE__ */ s.jsx(
1829
+ $.h3,
1830
+ {
1831
+ "data-orientation": o.orientation,
1832
+ "data-state": no(l.open),
1833
+ "data-disabled": l.disabled ? "" : void 0,
1834
+ ...n,
1835
+ ref: r
1836
+ }
1837
+ );
1838
+ }
1839
+ );
1840
+ Qn.displayName = Jn;
1841
+ var Nt = "AccordionTrigger", eo = T.forwardRef(
1842
+ (e, r) => {
1843
+ const { __scopeAccordion: t, ...n } = e, o = nt(de, t), l = ar(Nt, t), i = ri(Nt, t), c = or(t);
1844
+ return /* @__PURE__ */ s.jsx(nr.ItemSlot, { scope: t, children: /* @__PURE__ */ s.jsx(
1845
+ Xs,
1846
+ {
1847
+ "aria-disabled": l.open && !i.collapsible || void 0,
1848
+ "data-orientation": o.orientation,
1849
+ id: l.triggerId,
1850
+ ...c,
1851
+ ...n,
1852
+ ref: r
1853
+ }
1854
+ ) });
1855
+ }
1856
+ );
1857
+ eo.displayName = Nt;
1858
+ var to = "AccordionContent", ro = T.forwardRef(
1859
+ (e, r) => {
1860
+ const { __scopeAccordion: t, ...n } = e, o = nt(de, t), l = ar(to, t), i = or(t);
1861
+ return /* @__PURE__ */ s.jsx(
1862
+ Zs,
1863
+ {
1864
+ role: "region",
1865
+ "aria-labelledby": l.triggerId,
1866
+ "data-orientation": o.orientation,
1867
+ ...i,
1868
+ ...n,
1869
+ ref: r,
1870
+ style: {
1871
+ "--radix-accordion-content-height": "var(--radix-collapsible-content-height)",
1872
+ "--radix-accordion-content-width": "var(--radix-collapsible-content-width)",
1873
+ ...e.style
1874
+ }
1875
+ }
1876
+ );
1877
+ }
1878
+ );
1879
+ ro.displayName = to;
1880
+ function no(e) {
1881
+ return e ? "open" : "closed";
1882
+ }
1883
+ var si = zn, ii = Zn, ci = Qn, di = eo, ui = ro;
1884
+ const gd = si, pi = a.forwardRef(({ className: e, ...r }, t) => /* @__PURE__ */ s.jsx(ii, { ref: t, className: E("al-border-b", e), ...r }));
1885
+ pi.displayName = "AccordionItem";
1886
+ const fi = a.forwardRef(({ className: e, children: r, ...t }, n) => /* @__PURE__ */ s.jsx(ci, { className: "al-flex", children: /* @__PURE__ */ s.jsxs(
1887
+ di,
1888
+ {
1889
+ ref: n,
1890
+ className: E(
1891
+ "al-flex al-flex-1 al-items-center al-justify-between al-py-4 al-font-medium al-transition-all hover:al-underline [&[data-state=open]>svg]:al-rotate-180",
1892
+ e
1893
+ ),
1894
+ ...t,
1895
+ children: [
1896
+ r,
1897
+ /* @__PURE__ */ s.jsx(jt, { className: "al-h-4 al-w-4 al-shrink-0 al-transition-transform al-duration-200" })
1898
+ ]
1899
+ }
1900
+ ) }));
1901
+ fi.displayName = "AccordionTrigger";
1902
+ const mi = a.forwardRef(({ className: e, children: r, ...t }, n) => /* @__PURE__ */ s.jsx(
1903
+ ui,
1904
+ {
1905
+ ref: n,
1906
+ className: E(
1907
+ "al-overflow-hidden al-text-sm al-transition-all data-[state=closed]:al-animate-accordion-up data-[state=open]:al-animate-accordion-down",
1908
+ e
1909
+ ),
1910
+ ...t,
1911
+ children: /* @__PURE__ */ s.jsx("div", { className: "al-pb-4 al-pt-0", children: r })
1912
+ }
1913
+ ));
1914
+ mi.displayName = "AccordionContent";
1915
+ const gi = 1, vi = 1e6;
1916
+ let ht = 0;
1917
+ function hi() {
1918
+ return ht = (ht + 1) % Number.MAX_SAFE_INTEGER, ht.toString();
1919
+ }
1920
+ const xt = /* @__PURE__ */ new Map(), fr = (e) => {
1921
+ if (xt.has(e))
1922
+ return;
1923
+ const r = setTimeout(() => {
1924
+ xt.delete(e), Ae({
1925
+ type: "REMOVE_TOAST",
1926
+ toastId: e
1927
+ });
1928
+ }, vi);
1929
+ xt.set(e, r);
1930
+ }, xi = (e, r) => {
1931
+ switch (r.type) {
1932
+ case "ADD_TOAST":
1933
+ return {
1934
+ ...e,
1935
+ toasts: [r.toast, ...e.toasts].slice(0, gi)
1936
+ };
1937
+ case "UPDATE_TOAST":
1938
+ return {
1939
+ ...e,
1940
+ toasts: e.toasts.map((t) => t.id === r.toast.id ? { ...t, ...r.toast } : t)
1941
+ };
1942
+ case "DISMISS_TOAST": {
1943
+ const { toastId: t } = r;
1944
+ return t ? fr(t) : e.toasts.forEach((n) => {
1945
+ fr(n.id);
1946
+ }), {
1947
+ ...e,
1948
+ toasts: e.toasts.map(
1949
+ (n) => n.id === t || t === void 0 ? {
1950
+ ...n,
1951
+ open: !1
1952
+ } : n
1953
+ )
1954
+ };
1955
+ }
1956
+ case "REMOVE_TOAST":
1957
+ return r.toastId === void 0 ? {
1958
+ ...e,
1959
+ toasts: []
1960
+ } : {
1961
+ ...e,
1962
+ toasts: e.toasts.filter((t) => t.id !== r.toastId)
1963
+ };
1964
+ }
1965
+ }, Ge = [];
1966
+ let He = { toasts: [] };
1967
+ function Ae(e) {
1968
+ He = xi(He, e), Ge.forEach((r) => {
1969
+ r(He);
1970
+ });
1971
+ }
1972
+ function yi({ ...e }) {
1973
+ const r = hi(), t = (o) => Ae({
1974
+ type: "UPDATE_TOAST",
1975
+ toast: { ...o, id: r }
1976
+ }), n = () => Ae({ type: "DISMISS_TOAST", toastId: r });
1977
+ return Ae({
1978
+ type: "ADD_TOAST",
1979
+ toast: {
1980
+ ...e,
1981
+ id: r,
1982
+ open: !0,
1983
+ onOpenChange: (o) => {
1984
+ o || n();
1985
+ }
1986
+ }
1987
+ }), {
1988
+ id: r,
1989
+ dismiss: n,
1990
+ update: t
1991
+ };
1992
+ }
1993
+ function vd() {
1994
+ const [e, r] = a.useState(He);
1995
+ return a.useEffect(() => (Ge.push(r), () => {
1996
+ const t = Ge.indexOf(r);
1997
+ t > -1 && Ge.splice(t, 1);
1998
+ }), [e]), {
1999
+ ...e,
2000
+ toast: yi,
2001
+ dismiss: (t) => Ae({ type: "DISMISS_TOAST", toastId: t })
2002
+ };
2003
+ }
2004
+ const wi = Ze(
2005
+ E(
2006
+ "al-relative al-w-full al-rounded-lg al-border al-p-4",
2007
+ "[&>svg~*]:al-pl-7 [&>svg+div]:al-translate-y-[-3px] [&>svg]:al-absolute [&>svg]:al-left-4 [&>svg]:al-top-4 [&>svg]:al-text-foreground",
2008
+ "[&>i~*]:al-pl-7 [&>i+div]:al-translate-y-[-3px] [&>i]:al-absolute [&>i]:al-left-4 [&>i]:al-top-4 [&>i]:al-text-foreground"
2009
+ ),
2010
+ {
2011
+ variants: {
2012
+ variant: {
2013
+ default: "al-bg-background al-text-foreground",
2014
+ destructive: "al-border-destructive/50 al-text-destructive dark:al-border-destructive [&>svg]:al-text-destructive [&>i]:al-text-destructive",
2015
+ warning: "al-border-yellow-500/50 al-text-yellow-800 al-bg-yellow-50 [&>svg]:al-text-yellow-600 [&>i]:al-text-yellow-600",
2016
+ success: "al-border-green-500/50 al-text-green-800 al-bg-green-50 [&>svg]:al-text-green-600 [&>i]:al-text-green-600",
2017
+ info: "al-border-blue-500/50 al-text-blue-800 al-bg-blue-50 [&>svg]:al-text-blue-600 [&>i]:al-text-blue-600"
2018
+ }
2019
+ },
2020
+ defaultVariants: {
2021
+ variant: "default"
2022
+ }
2023
+ }
2024
+ ), bi = (e) => {
2025
+ switch (e) {
2026
+ case "destructive":
2027
+ return "error-alert";
2028
+ case "warning":
2029
+ return "warning-alert";
2030
+ case "success":
2031
+ return "success-alert";
2032
+ case "info":
2033
+ return "info-alert";
2034
+ default:
2035
+ return "status-alert";
2036
+ }
2037
+ }, Si = a.forwardRef(({ className: e, variant: r, ...t }, n) => /* @__PURE__ */ s.jsx(
2038
+ "div",
2039
+ {
2040
+ ref: n,
2041
+ role: "alert",
2042
+ "aria-label": bi(r),
2043
+ className: E(wi({ variant: r }), e),
2044
+ ...t
2045
+ }
2046
+ ));
2047
+ Si.displayName = "Alert";
2048
+ const Ci = a.forwardRef(
2049
+ ({ className: e, children: r, ...t }, n) => /* @__PURE__ */ s.jsx(
2050
+ "h5",
2051
+ {
2052
+ ref: n,
2053
+ className: E("al-mb-1 al-font-medium al-leading-none al-tracking-tight", e),
2054
+ ...t,
2055
+ children: r
2056
+ }
2057
+ )
2058
+ );
2059
+ Ci.displayName = "AlertTitle";
2060
+ const _i = a.forwardRef(({ className: e, ...r }, t) => /* @__PURE__ */ s.jsx(
2061
+ "div",
2062
+ {
2063
+ ref: t,
2064
+ className: E("al-text-sm [&_p]:al-leading-relaxed", e),
2065
+ role: "alert",
2066
+ "aria-label": "alert-description",
2067
+ ...r
2068
+ }
2069
+ ));
2070
+ _i.displayName = "AlertDescription";
2071
+ var Ni = a.forwardRef((e, r) => {
2072
+ const { children: t, ...n } = e, o = a.Children.toArray(t), l = o.find(Ei);
2073
+ if (l) {
2074
+ const i = l.props.children, c = o.map((d) => d === l ? a.Children.count(i) > 1 ? a.Children.only(null) : a.isValidElement(i) ? i.props.children : null : d);
2075
+ return /* @__PURE__ */ s.jsx(Et, { ...n, ref: r, children: a.isValidElement(i) ? a.cloneElement(i, void 0, c) : null });
2076
+ }
2077
+ return /* @__PURE__ */ s.jsx(Et, { ...n, ref: r, children: t });
2078
+ });
2079
+ Ni.displayName = "Slot";
2080
+ var Et = a.forwardRef((e, r) => {
2081
+ const { children: t, ...n } = e;
2082
+ if (a.isValidElement(t)) {
2083
+ const o = Ii(t);
2084
+ return a.cloneElement(t, {
2085
+ ...Ri(n, t.props),
2086
+ // @ts-ignore
2087
+ ref: r ? je(r, o) : o
2088
+ });
2089
+ }
2090
+ return a.Children.count(t) > 1 ? a.Children.only(null) : null;
2091
+ });
2092
+ Et.displayName = "SlotClone";
2093
+ var oo = ({ children: e }) => /* @__PURE__ */ s.jsx(s.Fragment, { children: e });
2094
+ function Ei(e) {
2095
+ return a.isValidElement(e) && e.type === oo;
2096
+ }
2097
+ function Ri(e, r) {
2098
+ const t = { ...r };
2099
+ for (const n in r) {
2100
+ const o = e[n], l = r[n];
2101
+ /^on[A-Z]/.test(n) ? o && l ? t[n] = (...c) => {
2102
+ l(...c), o(...c);
2103
+ } : o && (t[n] = o) : n === "style" ? t[n] = { ...o, ...l } : n === "className" && (t[n] = [o, l].filter(Boolean).join(" "));
2104
+ }
2105
+ return { ...e, ...t };
2106
+ }
2107
+ function Ii(e) {
2108
+ var n, o;
2109
+ let r = (n = Object.getOwnPropertyDescriptor(e.props, "ref")) == null ? void 0 : n.get, t = r && "isReactWarning" in r && r.isReactWarning;
2110
+ return t ? e.ref : (r = (o = Object.getOwnPropertyDescriptor(e, "ref")) == null ? void 0 : o.get, t = r && "isReactWarning" in r && r.isReactWarning, t ? e.props.ref : e.props.ref || e.ref);
2111
+ }
2112
+ var ao = "AlertDialog", [Mi, hd] = Ne(ao, [
2113
+ Ar
2114
+ ]), ue = Ar(), lo = (e) => {
2115
+ const { __scopeAlertDialog: r, ...t } = e, n = ue(r);
2116
+ return /* @__PURE__ */ s.jsx(Ot, { ...n, ...t, modal: !0 });
2117
+ };
2118
+ lo.displayName = ao;
2119
+ var Ai = "AlertDialogTrigger", so = a.forwardRef(
2120
+ (e, r) => {
2121
+ const { __scopeAlertDialog: t, ...n } = e, o = ue(t);
2122
+ return /* @__PURE__ */ s.jsx(yr, { ...o, ...n, ref: r });
2123
+ }
2124
+ );
2125
+ so.displayName = Ai;
2126
+ var Di = "AlertDialogPortal", io = (e) => {
2127
+ const { __scopeAlertDialog: r, ...t } = e, n = ue(r);
2128
+ return /* @__PURE__ */ s.jsx(kt, { ...n, ...t });
2129
+ };
2130
+ io.displayName = Di;
2131
+ var Pi = "AlertDialogOverlay", co = a.forwardRef(
2132
+ (e, r) => {
2133
+ const { __scopeAlertDialog: t, ...n } = e, o = ue(t);
2134
+ return /* @__PURE__ */ s.jsx(qe, { ...o, ...n, ref: r });
2135
+ }
2136
+ );
2137
+ co.displayName = Pi;
2138
+ var _e = "AlertDialogContent", [Ti, ji] = Mi(_e), uo = a.forwardRef(
2139
+ (e, r) => {
2140
+ const { __scopeAlertDialog: t, children: n, ...o } = e, l = ue(t), i = a.useRef(null), c = q(r, i), d = a.useRef(null);
2141
+ return /* @__PURE__ */ s.jsx(
2142
+ Da,
2143
+ {
2144
+ contentName: _e,
2145
+ titleName: po,
2146
+ docsSlug: "alert-dialog",
2147
+ children: /* @__PURE__ */ s.jsx(Ti, { scope: t, cancelRef: d, children: /* @__PURE__ */ s.jsxs(
2148
+ Xe,
2149
+ {
2150
+ role: "alertdialog",
2151
+ ...l,
2152
+ ...o,
2153
+ ref: c,
2154
+ onOpenAutoFocus: I(o.onOpenAutoFocus, (u) => {
2155
+ var f;
2156
+ u.preventDefault(), (f = d.current) == null || f.focus({ preventScroll: !0 });
2157
+ }),
2158
+ onPointerDownOutside: (u) => u.preventDefault(),
2159
+ onInteractOutside: (u) => u.preventDefault(),
2160
+ children: [
2161
+ /* @__PURE__ */ s.jsx(oo, { children: n }),
2162
+ /* @__PURE__ */ s.jsx(ki, { contentRef: i })
2163
+ ]
2164
+ }
2165
+ ) })
2166
+ }
2167
+ );
2168
+ }
2169
+ );
2170
+ uo.displayName = _e;
2171
+ var po = "AlertDialogTitle", fo = a.forwardRef(
2172
+ (e, r) => {
2173
+ const { __scopeAlertDialog: t, ...n } = e, o = ue(t);
2174
+ return /* @__PURE__ */ s.jsx($t, { ...o, ...n, ref: r });
2175
+ }
2176
+ );
2177
+ fo.displayName = po;
2178
+ var mo = "AlertDialogDescription", go = a.forwardRef((e, r) => {
2179
+ const { __scopeAlertDialog: t, ...n } = e, o = ue(t);
2180
+ return /* @__PURE__ */ s.jsx(Lt, { ...o, ...n, ref: r });
2181
+ });
2182
+ go.displayName = mo;
2183
+ var Oi = "AlertDialogAction", vo = a.forwardRef(
2184
+ (e, r) => {
2185
+ const { __scopeAlertDialog: t, ...n } = e, o = ue(t);
2186
+ return /* @__PURE__ */ s.jsx(Ye, { ...o, ...n, ref: r });
2187
+ }
2188
+ );
2189
+ vo.displayName = Oi;
2190
+ var ho = "AlertDialogCancel", xo = a.forwardRef(
2191
+ (e, r) => {
2192
+ const { __scopeAlertDialog: t, ...n } = e, { cancelRef: o } = ji(ho, t), l = ue(t), i = q(r, o);
2193
+ return /* @__PURE__ */ s.jsx(Ye, { ...l, ...n, ref: i });
2194
+ }
2195
+ );
2196
+ xo.displayName = ho;
2197
+ var ki = ({ contentRef: e }) => {
2198
+ const r = `\`${_e}\` requires a description for the component to be accessible for screen reader users.
2199
+
2200
+ You can add a description to the \`${_e}\` by passing a \`${mo}\` component as a child, which also benefits sighted users by adding visible context to the dialog.
2201
+
2202
+ Alternatively, you can use your own component as a description by assigning it an \`id\` and passing the same value to the \`aria-describedby\` prop in \`${_e}\`. If the description is confusing or duplicative for sighted users, you can use the \`@radix-ui/react-visually-hidden\` primitive as a wrapper around your description component.
2203
+
2204
+ For more information, see https://radix-ui.com/primitives/docs/components/alert-dialog`;
2205
+ return a.useEffect(() => {
2206
+ var n;
2207
+ document.getElementById(
2208
+ (n = e.current) == null ? void 0 : n.getAttribute("aria-describedby")
2209
+ ) || console.warn(r);
2210
+ }, [r, e]), null;
2211
+ }, $i = lo, Li = so, Vi = io, yo = co, wo = uo, bo = vo, So = xo, Co = fo, _o = go;
2212
+ const xd = $i, yd = Li, Fi = Vi, No = a.forwardRef(({ className: e, ...r }, t) => /* @__PURE__ */ s.jsx(
2213
+ yo,
2214
+ {
2215
+ className: E(
2216
+ "al-fixed al-inset-0 al-z-50 al-bg-black/80 al- data-[state=open]:al-animate-in data-[state=closed]:al-animate-out data-[state=closed]:al-fade-out-0 data-[state=open]:al-fade-in-0",
2217
+ e
2218
+ ),
2219
+ ...r,
2220
+ ref: t
2221
+ }
2222
+ ));
2223
+ No.displayName = yo.displayName;
2224
+ const Bi = a.forwardRef(({ className: e, ...r }, t) => /* @__PURE__ */ s.jsxs(Fi, { children: [
2225
+ /* @__PURE__ */ s.jsx(No, {}),
2226
+ /* @__PURE__ */ s.jsx(
2227
+ wo,
2228
+ {
2229
+ ref: t,
2230
+ className: E(
2231
+ "al-fixed al-left-[50%] al-top-[50%] al-z-50 al-grid al-w-full al-max-w-lg al-translate-x-[-50%] al-translate-y-[-50%] al-gap-4 al-border al-bg-background al-p-6 al-shadow-lg al-duration-200 data-[state=open]:al-animate-in data-[state=closed]:al-animate-out data-[state=closed]:al-fade-out-0 data-[state=open]:al-fade-in-0 data-[state=closed]:al-zoom-out-95 data-[state=open]:al-zoom-in-95 data-[state=closed]:al-slide-out-to-left-1/2 data-[state=closed]:al-slide-out-to-top-[48%] data-[state=open]:al-slide-in-from-left-1/2 data-[state=open]:al-slide-in-from-top-[48%] sm:al-rounded-lg",
2232
+ e
2233
+ ),
2234
+ ...r
2235
+ }
2236
+ )
2237
+ ] }));
2238
+ Bi.displayName = wo.displayName;
2239
+ const Gi = ({ className: e, ...r }) => /* @__PURE__ */ s.jsx(
2240
+ "div",
2241
+ {
2242
+ className: E("al-flex al-flex-col al-space-y-2 al-text-center sm:al-text-left", e),
2243
+ ...r
2244
+ }
2245
+ );
2246
+ Gi.displayName = "AlertDialogHeader";
2247
+ const Hi = ({ className: e, ...r }) => /* @__PURE__ */ s.jsx(
2248
+ "div",
2249
+ {
2250
+ className: E(
2251
+ "al-flex al-flex-col-reverse sm:al-flex-row sm:al-justify-end sm:al-space-x-2",
2252
+ e
2253
+ ),
2254
+ ...r
2255
+ }
2256
+ );
2257
+ Hi.displayName = "AlertDialogFooter";
2258
+ const Ki = a.forwardRef(({ className: e, ...r }, t) => /* @__PURE__ */ s.jsx(
2259
+ Co,
2260
+ {
2261
+ ref: t,
2262
+ className: E("al-text-lg al-font-semibold", e),
2263
+ ...r
2264
+ }
2265
+ ));
2266
+ Ki.displayName = Co.displayName;
2267
+ const Ui = a.forwardRef(({ className: e, ...r }, t) => /* @__PURE__ */ s.jsx(
2268
+ _o,
2269
+ {
2270
+ ref: t,
2271
+ className: E("al-text-sm al-text-muted-foreground", e),
2272
+ ...r
2273
+ }
2274
+ ));
2275
+ Ui.displayName = _o.displayName;
2276
+ const Wi = a.forwardRef(({ className: e, ...r }, t) => /* @__PURE__ */ s.jsx(bo, { ref: t, className: E(Dr(), e), ...r }));
2277
+ Wi.displayName = bo.displayName;
2278
+ const zi = a.forwardRef(({ className: e, ...r }, t) => /* @__PURE__ */ s.jsx(
2279
+ So,
2280
+ {
2281
+ ref: t,
2282
+ className: E(Dr({ variant: "outline" }), "al-mt-2 sm:al-mt-0", e),
2283
+ ...r
2284
+ }
2285
+ ));
2286
+ zi.displayName = So.displayName;
2287
+ function mr(e, [r, t]) {
2288
+ return Math.min(t, Math.max(r, e));
2289
+ }
2290
+ var Eo = a.forwardRef((e, r) => {
2291
+ const { children: t, ...n } = e, o = a.Children.toArray(t), l = o.find(qi);
2292
+ if (l) {
2293
+ const i = l.props.children, c = o.map((d) => d === l ? a.Children.count(i) > 1 ? a.Children.only(null) : a.isValidElement(i) ? i.props.children : null : d);
2294
+ return /* @__PURE__ */ s.jsx(Rt, { ...n, ref: r, children: a.isValidElement(i) ? a.cloneElement(i, void 0, c) : null });
2295
+ }
2296
+ return /* @__PURE__ */ s.jsx(Rt, { ...n, ref: r, children: t });
2297
+ });
2298
+ Eo.displayName = "Slot";
2299
+ var Rt = a.forwardRef((e, r) => {
2300
+ const { children: t, ...n } = e;
2301
+ if (a.isValidElement(t)) {
2302
+ const o = Zi(t);
2303
+ return a.cloneElement(t, {
2304
+ ...Xi(n, t.props),
2305
+ // @ts-ignore
2306
+ ref: r ? je(r, o) : o
2307
+ });
2308
+ }
2309
+ return a.Children.count(t) > 1 ? a.Children.only(null) : null;
2310
+ });
2311
+ Rt.displayName = "SlotClone";
2312
+ var Yi = ({ children: e }) => /* @__PURE__ */ s.jsx(s.Fragment, { children: e });
2313
+ function qi(e) {
2314
+ return a.isValidElement(e) && e.type === Yi;
2315
+ }
2316
+ function Xi(e, r) {
2317
+ const t = { ...r };
2318
+ for (const n in r) {
2319
+ const o = e[n], l = r[n];
2320
+ /^on[A-Z]/.test(n) ? o && l ? t[n] = (...c) => {
2321
+ l(...c), o(...c);
2322
+ } : o && (t[n] = o) : n === "style" ? t[n] = { ...o, ...l } : n === "className" && (t[n] = [o, l].filter(Boolean).join(" "));
2323
+ }
2324
+ return { ...e, ...t };
2325
+ }
2326
+ function Zi(e) {
2327
+ var n, o;
2328
+ let r = (n = Object.getOwnPropertyDescriptor(e.props, "ref")) == null ? void 0 : n.get, t = r && "isReactWarning" in r && r.isReactWarning;
2329
+ return t ? e.ref : (r = (o = Object.getOwnPropertyDescriptor(e, "ref")) == null ? void 0 : o.get, t = r && "isReactWarning" in r && r.isReactWarning, t ? e.props.ref : e.props.ref || e.ref);
2330
+ }
2331
+ var Ji = [" ", "Enter", "ArrowUp", "ArrowDown"], Qi = [" ", "Enter"], Fe = "Select", [ot, at, ec] = Vt(Fe), [Ee, wd] = Ne(Fe, [
2332
+ ec,
2333
+ Je
2334
+ ]), lt = Je(), [tc, fe] = Ee(Fe), [rc, nc] = Ee(Fe), Ro = (e) => {
2335
+ const {
2336
+ __scopeSelect: r,
2337
+ children: t,
2338
+ open: n,
2339
+ defaultOpen: o,
2340
+ onOpenChange: l,
2341
+ value: i,
2342
+ defaultValue: c,
2343
+ onValueChange: d,
2344
+ dir: u,
2345
+ name: f,
2346
+ autoComplete: p,
2347
+ disabled: g,
2348
+ required: x,
2349
+ form: y
2350
+ } = e, v = lt(r), [w, S] = a.useState(null), [h, _] = a.useState(null), [L, V] = a.useState(!1), j = Ft(u), [P = !1, K] = xe({
2351
+ prop: n,
2352
+ defaultProp: o,
2353
+ onChange: l
2354
+ }), [G, U] = xe({
2355
+ prop: i,
2356
+ defaultProp: c,
2357
+ onChange: d
2358
+ }), re = a.useRef(null), Z = w ? y || !!w.closest("form") : !0, [oe, W] = a.useState(/* @__PURE__ */ new Set()), J = Array.from(oe).map((H) => H.props.value).join(";");
2359
+ return /* @__PURE__ */ s.jsx(Bt, { ...v, children: /* @__PURE__ */ s.jsxs(
2360
+ tc,
2361
+ {
2362
+ required: x,
2363
+ scope: r,
2364
+ trigger: w,
2365
+ onTriggerChange: S,
2366
+ valueNode: h,
2367
+ onValueNodeChange: _,
2368
+ valueNodeHasChildren: L,
2369
+ onValueNodeHasChildrenChange: V,
2370
+ contentId: ne(),
2371
+ value: G,
2372
+ onValueChange: U,
2373
+ open: P,
2374
+ onOpenChange: K,
2375
+ dir: j,
2376
+ triggerPointerDownPosRef: re,
2377
+ disabled: g,
2378
+ children: [
2379
+ /* @__PURE__ */ s.jsx(ot.Provider, { scope: r, children: /* @__PURE__ */ s.jsx(
2380
+ rc,
2381
+ {
2382
+ scope: e.__scopeSelect,
2383
+ onNativeOptionAdd: a.useCallback((H) => {
2384
+ W((Q) => new Set(Q).add(H));
2385
+ }, []),
2386
+ onNativeOptionRemove: a.useCallback((H) => {
2387
+ W((Q) => {
2388
+ const z = new Set(Q);
2389
+ return z.delete(H), z;
2390
+ });
2391
+ }, []),
2392
+ children: t
2393
+ }
2394
+ ) }),
2395
+ Z ? /* @__PURE__ */ s.jsxs(
2396
+ Qo,
2397
+ {
2398
+ "aria-hidden": !0,
2399
+ required: x,
2400
+ tabIndex: -1,
2401
+ name: f,
2402
+ autoComplete: p,
2403
+ value: G,
2404
+ onChange: (H) => U(H.target.value),
2405
+ disabled: g,
2406
+ form: y,
2407
+ children: [
2408
+ G === void 0 ? /* @__PURE__ */ s.jsx("option", { value: "" }) : null,
2409
+ Array.from(oe)
2410
+ ]
2411
+ },
2412
+ J
2413
+ ) : null
2414
+ ]
2415
+ }
2416
+ ) });
2417
+ };
2418
+ Ro.displayName = Fe;
2419
+ var Io = "SelectTrigger", Mo = a.forwardRef(
2420
+ (e, r) => {
2421
+ const { __scopeSelect: t, disabled: n = !1, ...o } = e, l = lt(t), i = fe(Io, t), c = i.disabled || n, d = q(r, i.onTriggerChange), u = at(t), f = a.useRef("touch"), [p, g, x] = ea((v) => {
2422
+ const w = u().filter((_) => !_.disabled), S = w.find((_) => _.value === i.value), h = ta(w, v, S);
2423
+ h !== void 0 && i.onValueChange(h.value);
2424
+ }), y = (v) => {
2425
+ c || (i.onOpenChange(!0), x()), v && (i.triggerPointerDownPosRef.current = {
2426
+ x: Math.round(v.pageX),
2427
+ y: Math.round(v.pageY)
2428
+ });
2429
+ };
2430
+ return /* @__PURE__ */ s.jsx(br, { asChild: !0, ...l, children: /* @__PURE__ */ s.jsx(
2431
+ $.button,
2432
+ {
2433
+ type: "button",
2434
+ role: "combobox",
2435
+ "aria-controls": i.contentId,
2436
+ "aria-expanded": i.open,
2437
+ "aria-required": i.required,
2438
+ "aria-autocomplete": "none",
2439
+ dir: i.dir,
2440
+ "data-state": i.open ? "open" : "closed",
2441
+ disabled: c,
2442
+ "data-disabled": c ? "" : void 0,
2443
+ "data-placeholder": Jo(i.value) ? "" : void 0,
2444
+ ...o,
2445
+ ref: d,
2446
+ onClick: I(o.onClick, (v) => {
2447
+ v.currentTarget.focus(), f.current !== "mouse" && y(v);
2448
+ }),
2449
+ onPointerDown: I(o.onPointerDown, (v) => {
2450
+ f.current = v.pointerType;
2451
+ const w = v.target;
2452
+ w.hasPointerCapture(v.pointerId) && w.releasePointerCapture(v.pointerId), v.button === 0 && v.ctrlKey === !1 && v.pointerType === "mouse" && (y(v), v.preventDefault());
2453
+ }),
2454
+ onKeyDown: I(o.onKeyDown, (v) => {
2455
+ const w = p.current !== "";
2456
+ !(v.ctrlKey || v.altKey || v.metaKey) && v.key.length === 1 && g(v.key), !(w && v.key === " ") && Ji.includes(v.key) && (y(), v.preventDefault());
2457
+ })
2458
+ }
2459
+ ) });
2460
+ }
2461
+ );
2462
+ Mo.displayName = Io;
2463
+ var Ao = "SelectValue", Do = a.forwardRef(
2464
+ (e, r) => {
2465
+ const { __scopeSelect: t, className: n, style: o, children: l, placeholder: i = "", ...c } = e, d = fe(Ao, t), { onValueNodeHasChildrenChange: u } = d, f = l !== void 0, p = q(r, d.onValueNodeChange);
2466
+ return ce(() => {
2467
+ u(f);
2468
+ }, [u, f]), /* @__PURE__ */ s.jsx(
2469
+ $.span,
2470
+ {
2471
+ ...c,
2472
+ ref: p,
2473
+ style: { pointerEvents: "none" },
2474
+ children: Jo(d.value) ? /* @__PURE__ */ s.jsx(s.Fragment, { children: i }) : l
2475
+ }
2476
+ );
2477
+ }
2478
+ );
2479
+ Do.displayName = Ao;
2480
+ var oc = "SelectIcon", Po = a.forwardRef(
2481
+ (e, r) => {
2482
+ const { __scopeSelect: t, children: n, ...o } = e;
2483
+ return /* @__PURE__ */ s.jsx($.span, { "aria-hidden": !0, ...o, ref: r, children: n || "▼" });
2484
+ }
2485
+ );
2486
+ Po.displayName = oc;
2487
+ var ac = "SelectPortal", To = (e) => /* @__PURE__ */ s.jsx(Mr, { asChild: !0, ...e });
2488
+ To.displayName = ac;
2489
+ var be = "SelectContent", jo = a.forwardRef(
2490
+ (e, r) => {
2491
+ const t = fe(be, e.__scopeSelect), [n, o] = a.useState();
2492
+ if (ce(() => {
2493
+ o(new DocumentFragment());
2494
+ }, []), !t.open) {
2495
+ const l = n;
2496
+ return l ? Pr.createPortal(
2497
+ /* @__PURE__ */ s.jsx(Oo, { scope: e.__scopeSelect, children: /* @__PURE__ */ s.jsx(ot.Slot, { scope: e.__scopeSelect, children: /* @__PURE__ */ s.jsx("div", { children: e.children }) }) }),
2498
+ l
2499
+ ) : null;
2500
+ }
2501
+ return /* @__PURE__ */ s.jsx(ko, { ...e, ref: r });
2502
+ }
2503
+ );
2504
+ jo.displayName = be;
2505
+ var ie = 10, [Oo, me] = Ee(be), lc = "SelectContentImpl", ko = a.forwardRef(
2506
+ (e, r) => {
2507
+ const {
2508
+ __scopeSelect: t,
2509
+ position: n = "item-aligned",
2510
+ onCloseAutoFocus: o,
2511
+ onEscapeKeyDown: l,
2512
+ onPointerDownOutside: i,
2513
+ //
2514
+ // PopperContent props
2515
+ side: c,
2516
+ sideOffset: d,
2517
+ align: u,
2518
+ alignOffset: f,
2519
+ arrowPadding: p,
2520
+ collisionBoundary: g,
2521
+ collisionPadding: x,
2522
+ sticky: y,
2523
+ hideWhenDetached: v,
2524
+ avoidCollisions: w,
2525
+ //
2526
+ ...S
2527
+ } = e, h = fe(be, t), [_, L] = a.useState(null), [V, j] = a.useState(null), P = q(r, (b) => L(b)), [K, G] = a.useState(null), [U, re] = a.useState(
2528
+ null
2529
+ ), Z = at(t), [oe, W] = a.useState(!1), J = a.useRef(!1);
2530
+ a.useEffect(() => {
2531
+ if (_) return Sr(_);
2532
+ }, [_]), Cr();
2533
+ const H = a.useCallback(
2534
+ (b) => {
2535
+ const [A, ...O] = Z().map((B) => B.ref.current), [k] = O.slice(-1), F = document.activeElement;
2536
+ for (const B of b)
2537
+ if (B === F || (B == null || B.scrollIntoView({ block: "nearest" }), B === A && V && (V.scrollTop = 0), B === k && V && (V.scrollTop = V.scrollHeight), B == null || B.focus(), document.activeElement !== F)) return;
2538
+ },
2539
+ [Z, V]
2540
+ ), Q = a.useCallback(
2541
+ () => H([K, _]),
2542
+ [H, K, _]
2543
+ );
2544
+ a.useEffect(() => {
2545
+ oe && Q();
2546
+ }, [oe, Q]);
2547
+ const { onOpenChange: z, triggerPointerDownPosRef: N } = h;
2548
+ a.useEffect(() => {
2549
+ if (_) {
2550
+ let b = { x: 0, y: 0 };
2551
+ const A = (k) => {
2552
+ var F, B;
2553
+ b = {
2554
+ x: Math.abs(Math.round(k.pageX) - (((F = N.current) == null ? void 0 : F.x) ?? 0)),
2555
+ y: Math.abs(Math.round(k.pageY) - (((B = N.current) == null ? void 0 : B.y) ?? 0))
2556
+ };
2557
+ }, O = (k) => {
2558
+ b.x <= 10 && b.y <= 10 ? k.preventDefault() : _.contains(k.target) || z(!1), document.removeEventListener("pointermove", A), N.current = null;
2559
+ };
2560
+ return N.current !== null && (document.addEventListener("pointermove", A), document.addEventListener("pointerup", O, { capture: !0, once: !0 })), () => {
2561
+ document.removeEventListener("pointermove", A), document.removeEventListener("pointerup", O, { capture: !0 });
2562
+ };
2563
+ }
2564
+ }, [_, z, N]), a.useEffect(() => {
2565
+ const b = () => z(!1);
2566
+ return window.addEventListener("blur", b), window.addEventListener("resize", b), () => {
2567
+ window.removeEventListener("blur", b), window.removeEventListener("resize", b);
2568
+ };
2569
+ }, [z]);
2570
+ const [Y, X] = ea((b) => {
2571
+ const A = Z().filter((F) => !F.disabled), O = A.find((F) => F.ref.current === document.activeElement), k = ta(A, b, O);
2572
+ k && setTimeout(() => k.ref.current.focus());
2573
+ }), m = a.useCallback(
2574
+ (b, A, O) => {
2575
+ const k = !J.current && !O;
2576
+ (h.value !== void 0 && h.value === A || k) && (G(b), k && (J.current = !0));
2577
+ },
2578
+ [h.value]
2579
+ ), R = a.useCallback(() => _ == null ? void 0 : _.focus(), [_]), M = a.useCallback(
2580
+ (b, A, O) => {
2581
+ const k = !J.current && !O;
2582
+ (h.value !== void 0 && h.value === A || k) && re(b);
2583
+ },
2584
+ [h.value]
2585
+ ), C = n === "popper" ? It : $o, D = C === It ? {
2586
+ side: c,
2587
+ sideOffset: d,
2588
+ align: u,
2589
+ alignOffset: f,
2590
+ arrowPadding: p,
2591
+ collisionBoundary: g,
2592
+ collisionPadding: x,
2593
+ sticky: y,
2594
+ hideWhenDetached: v,
2595
+ avoidCollisions: w
2596
+ } : {};
2597
+ return /* @__PURE__ */ s.jsx(
2598
+ Oo,
2599
+ {
2600
+ scope: t,
2601
+ content: _,
2602
+ viewport: V,
2603
+ onViewportChange: j,
2604
+ itemRefCallback: m,
2605
+ selectedItem: K,
2606
+ onItemLeave: R,
2607
+ itemTextRefCallback: M,
2608
+ focusSelectedItem: Q,
2609
+ selectedItemText: U,
2610
+ position: n,
2611
+ isPositioned: oe,
2612
+ searchRef: Y,
2613
+ children: /* @__PURE__ */ s.jsx(Ir, { as: Eo, allowPinchZoom: !0, children: /* @__PURE__ */ s.jsx(
2614
+ _r,
2615
+ {
2616
+ asChild: !0,
2617
+ trapped: h.open,
2618
+ onMountAutoFocus: (b) => {
2619
+ b.preventDefault();
2620
+ },
2621
+ onUnmountAutoFocus: I(o, (b) => {
2622
+ var A;
2623
+ (A = h.trigger) == null || A.focus({ preventScroll: !0 }), b.preventDefault();
2624
+ }),
2625
+ children: /* @__PURE__ */ s.jsx(
2626
+ Nr,
2627
+ {
2628
+ asChild: !0,
2629
+ disableOutsidePointerEvents: !0,
2630
+ onEscapeKeyDown: l,
2631
+ onPointerDownOutside: i,
2632
+ onFocusOutside: (b) => b.preventDefault(),
2633
+ onDismiss: () => h.onOpenChange(!1),
2634
+ children: /* @__PURE__ */ s.jsx(
2635
+ C,
2636
+ {
2637
+ role: "listbox",
2638
+ id: h.contentId,
2639
+ "data-state": h.open ? "open" : "closed",
2640
+ dir: h.dir,
2641
+ onContextMenu: (b) => b.preventDefault(),
2642
+ ...S,
2643
+ ...D,
2644
+ onPlaced: () => W(!0),
2645
+ ref: P,
2646
+ style: {
2647
+ // flex layout so we can place the scroll buttons properly
2648
+ display: "flex",
2649
+ flexDirection: "column",
2650
+ // reset the outline by default as the content MAY get focused
2651
+ outline: "none",
2652
+ ...S.style
2653
+ },
2654
+ onKeyDown: I(S.onKeyDown, (b) => {
2655
+ const A = b.ctrlKey || b.altKey || b.metaKey;
2656
+ if (b.key === "Tab" && b.preventDefault(), !A && b.key.length === 1 && X(b.key), ["ArrowUp", "ArrowDown", "Home", "End"].includes(b.key)) {
2657
+ let k = Z().filter((F) => !F.disabled).map((F) => F.ref.current);
2658
+ if (["ArrowUp", "End"].includes(b.key) && (k = k.slice().reverse()), ["ArrowUp", "ArrowDown"].includes(b.key)) {
2659
+ const F = b.target, B = k.indexOf(F);
2660
+ k = k.slice(B + 1);
2661
+ }
2662
+ setTimeout(() => H(k)), b.preventDefault();
2663
+ }
2664
+ })
2665
+ }
2666
+ )
2667
+ }
2668
+ )
2669
+ }
2670
+ ) })
2671
+ }
2672
+ );
2673
+ }
2674
+ );
2675
+ ko.displayName = lc;
2676
+ var sc = "SelectItemAlignedPosition", $o = a.forwardRef((e, r) => {
2677
+ const { __scopeSelect: t, onPlaced: n, ...o } = e, l = fe(be, t), i = me(be, t), [c, d] = a.useState(null), [u, f] = a.useState(null), p = q(r, (P) => f(P)), g = at(t), x = a.useRef(!1), y = a.useRef(!0), { viewport: v, selectedItem: w, selectedItemText: S, focusSelectedItem: h } = i, _ = a.useCallback(() => {
2678
+ if (l.trigger && l.valueNode && c && u && v && w && S) {
2679
+ const P = l.trigger.getBoundingClientRect(), K = u.getBoundingClientRect(), G = l.valueNode.getBoundingClientRect(), U = S.getBoundingClientRect();
2680
+ if (l.dir !== "rtl") {
2681
+ const F = U.left - K.left, B = G.left - F, ge = P.left - B, ve = P.width + ge, ct = Math.max(ve, K.width), dt = window.innerWidth - ie, ut = mr(B, [
2682
+ ie,
2683
+ // Prevents the content from going off the starting edge of the
2684
+ // viewport. It may still go off the ending edge, but this can be
2685
+ // controlled by the user since they may want to manage overflow in a
2686
+ // specific way.
2687
+ // https://github.com/radix-ui/primitives/issues/2049
2688
+ Math.max(ie, dt - ct)
2689
+ ]);
2690
+ c.style.minWidth = ve + "px", c.style.left = ut + "px";
2691
+ } else {
2692
+ const F = K.right - U.right, B = window.innerWidth - G.right - F, ge = window.innerWidth - P.right - B, ve = P.width + ge, ct = Math.max(ve, K.width), dt = window.innerWidth - ie, ut = mr(B, [
2693
+ ie,
2694
+ Math.max(ie, dt - ct)
2695
+ ]);
2696
+ c.style.minWidth = ve + "px", c.style.right = ut + "px";
2697
+ }
2698
+ const re = g(), Z = window.innerHeight - ie * 2, oe = v.scrollHeight, W = window.getComputedStyle(u), J = parseInt(W.borderTopWidth, 10), H = parseInt(W.paddingTop, 10), Q = parseInt(W.borderBottomWidth, 10), z = parseInt(W.paddingBottom, 10), N = J + H + oe + z + Q, Y = Math.min(w.offsetHeight * 5, N), X = window.getComputedStyle(v), m = parseInt(X.paddingTop, 10), R = parseInt(X.paddingBottom, 10), M = P.top + P.height / 2 - ie, C = Z - M, D = w.offsetHeight / 2, b = w.offsetTop + D, A = J + H + b, O = N - A;
2699
+ if (A <= M) {
2700
+ const F = re.length > 0 && w === re[re.length - 1].ref.current;
2701
+ c.style.bottom = "0px";
2702
+ const B = u.clientHeight - v.offsetTop - v.offsetHeight, ge = Math.max(
2703
+ C,
2704
+ D + // viewport might have padding bottom, include it to avoid a scrollable viewport
2705
+ (F ? R : 0) + B + Q
2706
+ ), ve = A + ge;
2707
+ c.style.height = ve + "px";
2708
+ } else {
2709
+ const F = re.length > 0 && w === re[0].ref.current;
2710
+ c.style.top = "0px";
2711
+ const ge = Math.max(
2712
+ M,
2713
+ J + v.offsetTop + // viewport might have padding top, include it to avoid a scrollable viewport
2714
+ (F ? m : 0) + D
2715
+ ) + O;
2716
+ c.style.height = ge + "px", v.scrollTop = A - M + v.offsetTop;
2717
+ }
2718
+ c.style.margin = `${ie}px 0`, c.style.minHeight = Y + "px", c.style.maxHeight = Z + "px", n == null || n(), requestAnimationFrame(() => x.current = !0);
2719
+ }
2720
+ }, [
2721
+ g,
2722
+ l.trigger,
2723
+ l.valueNode,
2724
+ c,
2725
+ u,
2726
+ v,
2727
+ w,
2728
+ S,
2729
+ l.dir,
2730
+ n
2731
+ ]);
2732
+ ce(() => _(), [_]);
2733
+ const [L, V] = a.useState();
2734
+ ce(() => {
2735
+ u && V(window.getComputedStyle(u).zIndex);
2736
+ }, [u]);
2737
+ const j = a.useCallback(
2738
+ (P) => {
2739
+ P && y.current === !0 && (_(), h == null || h(), y.current = !1);
2740
+ },
2741
+ [_, h]
2742
+ );
2743
+ return /* @__PURE__ */ s.jsx(
2744
+ cc,
2745
+ {
2746
+ scope: t,
2747
+ contentWrapper: c,
2748
+ shouldExpandOnScrollRef: x,
2749
+ onScrollButtonChange: j,
2750
+ children: /* @__PURE__ */ s.jsx(
2751
+ "div",
2752
+ {
2753
+ ref: d,
2754
+ style: {
2755
+ display: "flex",
2756
+ flexDirection: "column",
2757
+ position: "fixed",
2758
+ zIndex: L
2759
+ },
2760
+ children: /* @__PURE__ */ s.jsx(
2761
+ $.div,
2762
+ {
2763
+ ...o,
2764
+ ref: p,
2765
+ style: {
2766
+ // When we get the height of the content, it includes borders. If we were to set
2767
+ // the height without having `boxSizing: 'border-box'` it would be too big.
2768
+ boxSizing: "border-box",
2769
+ // We need to ensure the content doesn't get taller than the wrapper
2770
+ maxHeight: "100%",
2771
+ ...o.style
2772
+ }
2773
+ }
2774
+ )
2775
+ }
2776
+ )
2777
+ }
2778
+ );
2779
+ });
2780
+ $o.displayName = sc;
2781
+ var ic = "SelectPopperPosition", It = a.forwardRef((e, r) => {
2782
+ const {
2783
+ __scopeSelect: t,
2784
+ align: n = "start",
2785
+ collisionPadding: o = ie,
2786
+ ...l
2787
+ } = e, i = lt(t);
2788
+ return /* @__PURE__ */ s.jsx(
2789
+ Er,
2790
+ {
2791
+ ...i,
2792
+ ...l,
2793
+ ref: r,
2794
+ align: n,
2795
+ collisionPadding: o,
2796
+ style: {
2797
+ // Ensure border-box for floating-ui calculations
2798
+ boxSizing: "border-box",
2799
+ ...l.style,
2800
+ "--radix-select-content-transform-origin": "var(--radix-popper-transform-origin)",
2801
+ "--radix-select-content-available-width": "var(--radix-popper-available-width)",
2802
+ "--radix-select-content-available-height": "var(--radix-popper-available-height)",
2803
+ "--radix-select-trigger-width": "var(--radix-popper-anchor-width)",
2804
+ "--radix-select-trigger-height": "var(--radix-popper-anchor-height)"
2805
+ }
2806
+ }
2807
+ );
2808
+ });
2809
+ It.displayName = ic;
2810
+ var [cc, lr] = Ee(be, {}), Mt = "SelectViewport", Lo = a.forwardRef(
2811
+ (e, r) => {
2812
+ const { __scopeSelect: t, nonce: n, ...o } = e, l = me(Mt, t), i = lr(Mt, t), c = q(r, l.onViewportChange), d = a.useRef(0);
2813
+ return /* @__PURE__ */ s.jsxs(s.Fragment, { children: [
2814
+ /* @__PURE__ */ s.jsx(
2815
+ "style",
2816
+ {
2817
+ dangerouslySetInnerHTML: {
2818
+ __html: "[data-radix-select-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-select-viewport]::-webkit-scrollbar{display:none}"
2819
+ },
2820
+ nonce: n
2821
+ }
2822
+ ),
2823
+ /* @__PURE__ */ s.jsx(ot.Slot, { scope: t, children: /* @__PURE__ */ s.jsx(
2824
+ $.div,
2825
+ {
2826
+ "data-radix-select-viewport": "",
2827
+ role: "presentation",
2828
+ ...o,
2829
+ ref: c,
2830
+ style: {
2831
+ // we use position: 'relative' here on the `viewport` so that when we call
2832
+ // `selectedItem.offsetTop` in calculations, the offset is relative to the viewport
2833
+ // (independent of the scrollUpButton).
2834
+ position: "relative",
2835
+ flex: 1,
2836
+ // Viewport should only be scrollable in the vertical direction.
2837
+ // This won't work in vertical writing modes, so we'll need to
2838
+ // revisit this if/when that is supported
2839
+ // https://developer.chrome.com/blog/vertical-form-controls
2840
+ overflow: "hidden auto",
2841
+ ...o.style
2842
+ },
2843
+ onScroll: I(o.onScroll, (u) => {
2844
+ const f = u.currentTarget, { contentWrapper: p, shouldExpandOnScrollRef: g } = i;
2845
+ if (g != null && g.current && p) {
2846
+ const x = Math.abs(d.current - f.scrollTop);
2847
+ if (x > 0) {
2848
+ const y = window.innerHeight - ie * 2, v = parseFloat(p.style.minHeight), w = parseFloat(p.style.height), S = Math.max(v, w);
2849
+ if (S < y) {
2850
+ const h = S + x, _ = Math.min(y, h), L = h - _;
2851
+ p.style.height = _ + "px", p.style.bottom === "0px" && (f.scrollTop = L > 0 ? L : 0, p.style.justifyContent = "flex-end");
2852
+ }
2853
+ }
2854
+ }
2855
+ d.current = f.scrollTop;
2856
+ })
2857
+ }
2858
+ ) })
2859
+ ] });
2860
+ }
2861
+ );
2862
+ Lo.displayName = Mt;
2863
+ var Vo = "SelectGroup", [dc, uc] = Ee(Vo), Fo = a.forwardRef(
2864
+ (e, r) => {
2865
+ const { __scopeSelect: t, ...n } = e, o = ne();
2866
+ return /* @__PURE__ */ s.jsx(dc, { scope: t, id: o, children: /* @__PURE__ */ s.jsx($.div, { role: "group", "aria-labelledby": o, ...n, ref: r }) });
2867
+ }
2868
+ );
2869
+ Fo.displayName = Vo;
2870
+ var Bo = "SelectLabel", Go = a.forwardRef(
2871
+ (e, r) => {
2872
+ const { __scopeSelect: t, ...n } = e, o = uc(Bo, t);
2873
+ return /* @__PURE__ */ s.jsx($.div, { id: o.id, ...n, ref: r });
2874
+ }
2875
+ );
2876
+ Go.displayName = Bo;
2877
+ var ze = "SelectItem", [pc, Ho] = Ee(ze), Ko = a.forwardRef(
2878
+ (e, r) => {
2879
+ const {
2880
+ __scopeSelect: t,
2881
+ value: n,
2882
+ disabled: o = !1,
2883
+ textValue: l,
2884
+ ...i
2885
+ } = e, c = fe(ze, t), d = me(ze, t), u = c.value === n, [f, p] = a.useState(l ?? ""), [g, x] = a.useState(!1), y = q(
2886
+ r,
2887
+ (h) => {
2888
+ var _;
2889
+ return (_ = d.itemRefCallback) == null ? void 0 : _.call(d, h, n, o);
2890
+ }
2891
+ ), v = ne(), w = a.useRef("touch"), S = () => {
2892
+ o || (c.onValueChange(n), c.onOpenChange(!1));
2893
+ };
2894
+ if (n === "")
2895
+ throw new Error(
2896
+ "A <Select.Item /> must have a value prop that is not an empty string. This is because the Select value can be set to an empty string to clear the selection and show the placeholder."
2897
+ );
2898
+ return /* @__PURE__ */ s.jsx(
2899
+ pc,
2900
+ {
2901
+ scope: t,
2902
+ value: n,
2903
+ disabled: o,
2904
+ textId: v,
2905
+ isSelected: u,
2906
+ onItemTextChange: a.useCallback((h) => {
2907
+ p((_) => _ || ((h == null ? void 0 : h.textContent) ?? "").trim());
2908
+ }, []),
2909
+ children: /* @__PURE__ */ s.jsx(
2910
+ ot.ItemSlot,
2911
+ {
2912
+ scope: t,
2913
+ value: n,
2914
+ disabled: o,
2915
+ textValue: f,
2916
+ children: /* @__PURE__ */ s.jsx(
2917
+ $.div,
2918
+ {
2919
+ role: "option",
2920
+ "aria-labelledby": v,
2921
+ "data-highlighted": g ? "" : void 0,
2922
+ "aria-selected": u && g,
2923
+ "data-state": u ? "checked" : "unchecked",
2924
+ "aria-disabled": o || void 0,
2925
+ "data-disabled": o ? "" : void 0,
2926
+ tabIndex: o ? void 0 : -1,
2927
+ ...i,
2928
+ ref: y,
2929
+ onFocus: I(i.onFocus, () => x(!0)),
2930
+ onBlur: I(i.onBlur, () => x(!1)),
2931
+ onClick: I(i.onClick, () => {
2932
+ w.current !== "mouse" && S();
2933
+ }),
2934
+ onPointerUp: I(i.onPointerUp, () => {
2935
+ w.current === "mouse" && S();
2936
+ }),
2937
+ onPointerDown: I(i.onPointerDown, (h) => {
2938
+ w.current = h.pointerType;
2939
+ }),
2940
+ onPointerMove: I(i.onPointerMove, (h) => {
2941
+ var _;
2942
+ w.current = h.pointerType, o ? (_ = d.onItemLeave) == null || _.call(d) : w.current === "mouse" && h.currentTarget.focus({ preventScroll: !0 });
2943
+ }),
2944
+ onPointerLeave: I(i.onPointerLeave, (h) => {
2945
+ var _;
2946
+ h.currentTarget === document.activeElement && ((_ = d.onItemLeave) == null || _.call(d));
2947
+ }),
2948
+ onKeyDown: I(i.onKeyDown, (h) => {
2949
+ var L;
2950
+ ((L = d.searchRef) == null ? void 0 : L.current) !== "" && h.key === " " || (Qi.includes(h.key) && S(), h.key === " " && h.preventDefault());
2951
+ })
2952
+ }
2953
+ )
2954
+ }
2955
+ )
2956
+ }
2957
+ );
2958
+ }
2959
+ );
2960
+ Ko.displayName = ze;
2961
+ var Me = "SelectItemText", Uo = a.forwardRef(
2962
+ (e, r) => {
2963
+ const { __scopeSelect: t, className: n, style: o, ...l } = e, i = fe(Me, t), c = me(Me, t), d = Ho(Me, t), u = nc(Me, t), [f, p] = a.useState(null), g = q(
2964
+ r,
2965
+ (S) => p(S),
2966
+ d.onItemTextChange,
2967
+ (S) => {
2968
+ var h;
2969
+ return (h = c.itemTextRefCallback) == null ? void 0 : h.call(c, S, d.value, d.disabled);
2970
+ }
2971
+ ), x = f == null ? void 0 : f.textContent, y = a.useMemo(
2972
+ () => /* @__PURE__ */ s.jsx("option", { value: d.value, disabled: d.disabled, children: x }, d.value),
2973
+ [d.disabled, d.value, x]
2974
+ ), { onNativeOptionAdd: v, onNativeOptionRemove: w } = u;
2975
+ return ce(() => (v(y), () => w(y)), [v, w, y]), /* @__PURE__ */ s.jsxs(s.Fragment, { children: [
2976
+ /* @__PURE__ */ s.jsx($.span, { id: d.textId, ...l, ref: g }),
2977
+ d.isSelected && i.valueNode && !i.valueNodeHasChildren ? Pr.createPortal(l.children, i.valueNode) : null
2978
+ ] });
2979
+ }
2980
+ );
2981
+ Uo.displayName = Me;
2982
+ var Wo = "SelectItemIndicator", zo = a.forwardRef(
2983
+ (e, r) => {
2984
+ const { __scopeSelect: t, ...n } = e;
2985
+ return Ho(Wo, t).isSelected ? /* @__PURE__ */ s.jsx($.span, { "aria-hidden": !0, ...n, ref: r }) : null;
2986
+ }
2987
+ );
2988
+ zo.displayName = Wo;
2989
+ var At = "SelectScrollUpButton", Yo = a.forwardRef((e, r) => {
2990
+ const t = me(At, e.__scopeSelect), n = lr(At, e.__scopeSelect), [o, l] = a.useState(!1), i = q(r, n.onScrollButtonChange);
2991
+ return ce(() => {
2992
+ if (t.viewport && t.isPositioned) {
2993
+ let c = function() {
2994
+ const u = d.scrollTop > 0;
2995
+ l(u);
2996
+ };
2997
+ const d = t.viewport;
2998
+ return c(), d.addEventListener("scroll", c), () => d.removeEventListener("scroll", c);
2999
+ }
3000
+ }, [t.viewport, t.isPositioned]), o ? /* @__PURE__ */ s.jsx(
3001
+ Xo,
3002
+ {
3003
+ ...e,
3004
+ ref: i,
3005
+ onAutoScroll: () => {
3006
+ const { viewport: c, selectedItem: d } = t;
3007
+ c && d && (c.scrollTop = c.scrollTop - d.offsetHeight);
3008
+ }
3009
+ }
3010
+ ) : null;
3011
+ });
3012
+ Yo.displayName = At;
3013
+ var Dt = "SelectScrollDownButton", qo = a.forwardRef((e, r) => {
3014
+ const t = me(Dt, e.__scopeSelect), n = lr(Dt, e.__scopeSelect), [o, l] = a.useState(!1), i = q(r, n.onScrollButtonChange);
3015
+ return ce(() => {
3016
+ if (t.viewport && t.isPositioned) {
3017
+ let c = function() {
3018
+ const u = d.scrollHeight - d.clientHeight, f = Math.ceil(d.scrollTop) < u;
3019
+ l(f);
3020
+ };
3021
+ const d = t.viewport;
3022
+ return c(), d.addEventListener("scroll", c), () => d.removeEventListener("scroll", c);
3023
+ }
3024
+ }, [t.viewport, t.isPositioned]), o ? /* @__PURE__ */ s.jsx(
3025
+ Xo,
3026
+ {
3027
+ ...e,
3028
+ ref: i,
3029
+ onAutoScroll: () => {
3030
+ const { viewport: c, selectedItem: d } = t;
3031
+ c && d && (c.scrollTop = c.scrollTop + d.offsetHeight);
3032
+ }
3033
+ }
3034
+ ) : null;
3035
+ });
3036
+ qo.displayName = Dt;
3037
+ var Xo = a.forwardRef((e, r) => {
3038
+ const { __scopeSelect: t, onAutoScroll: n, ...o } = e, l = me("SelectScrollButton", t), i = a.useRef(null), c = at(t), d = a.useCallback(() => {
3039
+ i.current !== null && (window.clearInterval(i.current), i.current = null);
3040
+ }, []);
3041
+ return a.useEffect(() => () => d(), [d]), ce(() => {
3042
+ var f;
3043
+ const u = c().find((p) => p.ref.current === document.activeElement);
3044
+ (f = u == null ? void 0 : u.ref.current) == null || f.scrollIntoView({ block: "nearest" });
3045
+ }, [c]), /* @__PURE__ */ s.jsx(
3046
+ $.div,
3047
+ {
3048
+ "aria-hidden": !0,
3049
+ ...o,
3050
+ ref: r,
3051
+ style: { flexShrink: 0, ...o.style },
3052
+ onPointerDown: I(o.onPointerDown, () => {
3053
+ i.current === null && (i.current = window.setInterval(n, 50));
3054
+ }),
3055
+ onPointerMove: I(o.onPointerMove, () => {
3056
+ var u;
3057
+ (u = l.onItemLeave) == null || u.call(l), i.current === null && (i.current = window.setInterval(n, 50));
3058
+ }),
3059
+ onPointerLeave: I(o.onPointerLeave, () => {
3060
+ d();
3061
+ })
3062
+ }
3063
+ );
3064
+ }), fc = "SelectSeparator", Zo = a.forwardRef(
3065
+ (e, r) => {
3066
+ const { __scopeSelect: t, ...n } = e;
3067
+ return /* @__PURE__ */ s.jsx($.div, { "aria-hidden": !0, ...n, ref: r });
3068
+ }
3069
+ );
3070
+ Zo.displayName = fc;
3071
+ var Pt = "SelectArrow", mc = a.forwardRef(
3072
+ (e, r) => {
3073
+ const { __scopeSelect: t, ...n } = e, o = lt(t), l = fe(Pt, t), i = me(Pt, t);
3074
+ return l.open && i.position === "popper" ? /* @__PURE__ */ s.jsx(Rr, { ...o, ...n, ref: r }) : null;
3075
+ }
3076
+ );
3077
+ mc.displayName = Pt;
3078
+ function Jo(e) {
3079
+ return e === "" || e === void 0;
3080
+ }
3081
+ var Qo = a.forwardRef(
3082
+ (e, r) => {
3083
+ const { value: t, ...n } = e, o = a.useRef(null), l = q(r, o), i = Pa(t);
3084
+ return a.useEffect(() => {
3085
+ const c = o.current, d = window.HTMLSelectElement.prototype, f = Object.getOwnPropertyDescriptor(
3086
+ d,
3087
+ "value"
3088
+ ).set;
3089
+ if (i !== t && f) {
3090
+ const p = new Event("change", { bubbles: !0 });
3091
+ f.call(c, t), c.dispatchEvent(p);
3092
+ }
3093
+ }, [i, t]), /* @__PURE__ */ s.jsx(Ta, { asChild: !0, children: /* @__PURE__ */ s.jsx("select", { ...n, ref: l, defaultValue: t }) });
3094
+ }
3095
+ );
3096
+ Qo.displayName = "BubbleSelect";
3097
+ function ea(e) {
3098
+ const r = Qe(e), t = a.useRef(""), n = a.useRef(0), o = a.useCallback(
3099
+ (i) => {
3100
+ const c = t.current + i;
3101
+ r(c), function d(u) {
3102
+ t.current = u, window.clearTimeout(n.current), u !== "" && (n.current = window.setTimeout(() => d(""), 1e3));
3103
+ }(c);
3104
+ },
3105
+ [r]
3106
+ ), l = a.useCallback(() => {
3107
+ t.current = "", window.clearTimeout(n.current);
3108
+ }, []);
3109
+ return a.useEffect(() => () => window.clearTimeout(n.current), []), [t, o, l];
3110
+ }
3111
+ function ta(e, r, t) {
3112
+ const o = r.length > 1 && Array.from(r).every((u) => u === r[0]) ? r[0] : r, l = t ? e.indexOf(t) : -1;
3113
+ let i = gc(e, Math.max(l, 0));
3114
+ o.length === 1 && (i = i.filter((u) => u !== t));
3115
+ const d = i.find(
3116
+ (u) => u.textValue.toLowerCase().startsWith(o.toLowerCase())
3117
+ );
3118
+ return d !== t ? d : void 0;
3119
+ }
3120
+ function gc(e, r) {
3121
+ return e.map((t, n) => e[(r + n) % e.length]);
3122
+ }
3123
+ var vc = Ro, ra = Mo, hc = Do, xc = Po, yc = To, na = jo, wc = Lo, bc = Fo, oa = Go, aa = Ko, Sc = Uo, Cc = zo, la = Yo, sa = qo, ia = Zo;
3124
+ const _c = vc, bd = bc, Nc = hc, ca = a.forwardRef(({ className: e, children: r, ...t }, n) => /* @__PURE__ */ s.jsxs(
3125
+ ra,
3126
+ {
3127
+ ref: n,
3128
+ className: E(
3129
+ "al-flex al-h-10 al-items-center al-justify-between al-rounded-md al-border al-border-input al-bg-transparent al-px-3 al-py-2 al-text-sm al-ring-offset-background placeholder:al-text-muted-foreground focus:al-outline-none focus:al-ring-2 focus:al-ring-ring focus:al-ring-offset-2 disabled:al-cursor-not-allowed disabled:al-opacity-50 [&>span]:al-line-clamp-1 data-[placeholder]:al-text-muted-foreground",
3130
+ e
3131
+ ),
3132
+ ...t,
3133
+ children: [
3134
+ r,
3135
+ /* @__PURE__ */ s.jsx(xc, { asChild: !0, children: /* @__PURE__ */ s.jsx(jt, { className: "al-h-4 al-w-4 al-opacity-50 al-ml-2" }) })
3136
+ ]
3137
+ }
3138
+ ));
3139
+ ca.displayName = ra.displayName;
3140
+ const da = a.forwardRef(({ className: e, ...r }, t) => /* @__PURE__ */ s.jsx(
3141
+ la,
3142
+ {
3143
+ ref: t,
3144
+ className: E("al-flex al-cursor-default al-items-center al-justify-center al-py-1", e),
3145
+ ...r,
3146
+ children: /* @__PURE__ */ s.jsx(Na, { className: "al-h-4 al-w-4" })
3147
+ }
3148
+ ));
3149
+ da.displayName = la.displayName;
3150
+ const ua = a.forwardRef(({ className: e, ...r }, t) => /* @__PURE__ */ s.jsx(
3151
+ sa,
3152
+ {
3153
+ ref: t,
3154
+ className: E("al-flex al-cursor-default al-items-center al-justify-center al-py-1", e),
3155
+ ...r,
3156
+ children: /* @__PURE__ */ s.jsx(jt, { className: "al-h-4 al-w-4" })
3157
+ }
3158
+ ));
3159
+ ua.displayName = sa.displayName;
3160
+ const pa = a.forwardRef(({ className: e, children: r, position: t = "popper", ...n }, o) => /* @__PURE__ */ s.jsx(yc, { children: /* @__PURE__ */ s.jsxs(
3161
+ na,
3162
+ {
3163
+ ref: o,
3164
+ className: E(
3165
+ "al-relative al-z-[100] al-max-h-96 al-min-w-[8rem] al-overflow-hidden al-rounded-md al-border al-bg-popover al-text-popover-foreground al-shadow-md data-[state=open]:al-animate-in data-[state=closed]:al-animate-out data-[state=closed]:al-fade-out-0 data-[state=open]:al-fade-in-0 data-[state=closed]:al-zoom-out-95 data-[state=open]:al-zoom-in-95 data-[side=bottom]:al-slide-in-from-top-2 data-[side=left]:al-slide-in-from-right-2 data-[side=right]:al-slide-in-from-left-2 data-[side=top]:al-slide-in-from-bottom-2",
3166
+ t === "popper" && "data-[side=bottom]:al-translate-y-1 data-[side=left]:al--translate-x-1 data-[side=right]:al-translate-x-1 data-[side=top]:al--translate-y-1",
3167
+ e
3168
+ ),
3169
+ position: t,
3170
+ ...n,
3171
+ children: [
3172
+ /* @__PURE__ */ s.jsx(da, {}),
3173
+ /* @__PURE__ */ s.jsx(
3174
+ wc,
3175
+ {
3176
+ className: E(
3177
+ "al-p-1",
3178
+ t === "popper" && "al-h-[var(--radix-select-trigger-height)] al-w-full al-min-w-[var(--radix-select-trigger-width)]"
3179
+ ),
3180
+ children: r
3181
+ }
3182
+ ),
3183
+ /* @__PURE__ */ s.jsx(ua, {})
3184
+ ]
3185
+ }
3186
+ ) }));
3187
+ pa.displayName = na.displayName;
3188
+ const Ec = a.forwardRef(({ className: e, ...r }, t) => /* @__PURE__ */ s.jsx(
3189
+ oa,
3190
+ {
3191
+ ref: t,
3192
+ className: E("al-py-1.5 al-pl-8 al-pr-2 al-text-sm al-font-semibold", e),
3193
+ ...r
3194
+ }
3195
+ ));
3196
+ Ec.displayName = oa.displayName;
3197
+ const fa = a.forwardRef(({ className: e, children: r, ...t }, n) => /* @__PURE__ */ s.jsxs(
3198
+ aa,
3199
+ {
3200
+ ref: n,
3201
+ className: E(
3202
+ "al-relative al-flex al-w-full al-cursor-default al-select-none al-items-center al-rounded-sm al-py-1.5 al-pl-8 al-pr-2 al-text-sm al-outline-none focus:al-bg-accent focus:al-text-accent-foreground data-[disabled]:al-pointer-events-none data-[disabled]:al-opacity-50",
3203
+ e
3204
+ ),
3205
+ ...t,
3206
+ children: [
3207
+ /* @__PURE__ */ s.jsx("span", { className: "al-absolute al-left-2 al-flex al-h-3.5 al-w-3.5 al-items-center al-justify-center", children: /* @__PURE__ */ s.jsx(Cc, { children: /* @__PURE__ */ s.jsx(xr, { className: "al-h-4 al-w-4" }) }) }),
3208
+ /* @__PURE__ */ s.jsx(Sc, { children: r })
3209
+ ]
3210
+ }
3211
+ ));
3212
+ fa.displayName = aa.displayName;
3213
+ const Rc = a.forwardRef(({ className: e, ...r }, t) => /* @__PURE__ */ s.jsx(
3214
+ ia,
3215
+ {
3216
+ ref: t,
3217
+ className: E("al--mx-1 al-my-1 al-h-px al-bg-muted", e),
3218
+ ...r
3219
+ }
3220
+ ));
3221
+ Rc.displayName = ia.displayName;
3222
+ const Ic = Ze(
3223
+ [
3224
+ "al-flex al-items-center al-justify-between al-rounded-md",
3225
+ "al-text-sm al-font-normal",
3226
+ "al-transition-colors",
3227
+ "focus-visible:al-outline-none focus-visible:al-ring-2 focus-visible:al-ring-ring focus-visible:al-ring-offset-2",
3228
+ "disabled:al-pointer-events-none disabled:al-opacity-50",
3229
+ "[&>span]:al-line-clamp-1",
3230
+ // Override base styles
3231
+ "!al-bg-transparent"
3232
+ ].join(" "),
3233
+ {
3234
+ variants: {
3235
+ variant: {
3236
+ default: [
3237
+ "!al-bg-primary !al-text-brand !al-border-primary",
3238
+ "hover:!al-bg-primary/90 hover:!al-text-white",
3239
+ "focus:!al-bg-primary/90 focus:!al-text-white"
3240
+ ].join(" "),
3241
+ destructive: [
3242
+ "!al-bg-destructive !al-text-destructive-foreground",
3243
+ "hover:!al-bg-destructive/90",
3244
+ "focus:!al-bg-destructive/90"
3245
+ ].join(" "),
3246
+ outline: [
3247
+ "!al-border !al-border-input !al-bg-background",
3248
+ "hover:!al-bg-accent hover:!al-text-accent-foreground",
3249
+ "focus:!al-bg-accent focus:!al-text-accent-foreground"
3250
+ ].join(" "),
3251
+ success: [
3252
+ "!al-bg-success !al-text-success-foreground",
3253
+ "hover:!al-bg-success/90",
3254
+ "focus:!al-bg-success/90"
3255
+ ].join(" "),
3256
+ secondary: [
3257
+ "!al-bg-secondary !al-text-secondary-foreground !al-border-2 !al-border-secondary",
3258
+ "hover:!al-bg-secondary/80",
3259
+ "focus:!al-bg-secondary/80"
3260
+ ].join(" "),
3261
+ ghost: [
3262
+ "!al-bg-transparent !al-text-foreground",
3263
+ "hover:!al-bg-accent hover:!al-text-accent-foreground",
3264
+ "focus:!al-bg-accent focus:!al-text-accent-foreground"
3265
+ ].join(" ")
3266
+ },
3267
+ size: {
3268
+ default: "!al-h-10 !al-px-4 !al-py-2",
3269
+ sm: "!al-h-9 !al-px-3",
3270
+ lg: "!al-h-11 !al-px-8"
3271
+ }
3272
+ },
3273
+ defaultVariants: {
3274
+ variant: "default",
3275
+ size: "default"
3276
+ }
3277
+ }
3278
+ ), Mc = ee(
3279
+ ({ options: e, onChange: r, value: t, placeholder: n, className: o, disabled: l, icon: i, variant: c, size: d, open: u }, f) => /* @__PURE__ */ s.jsxs(_c, { value: t, onValueChange: r, disabled: l, open: u, children: [
3280
+ /* @__PURE__ */ s.jsxs(ca, { ref: f, className: E(Ic({ variant: c, size: d, className: o })), children: [
3281
+ i && /* @__PURE__ */ s.jsx("div", { className: "al-mr-2", children: i }),
3282
+ /* @__PURE__ */ s.jsx(Nc, { placeholder: n })
3283
+ ] }),
3284
+ /* @__PURE__ */ s.jsx(pa, { children: e.map((p) => /* @__PURE__ */ s.jsx(fa, { value: p.value, children: p.label }, p.value)) })
3285
+ ] })
3286
+ );
3287
+ Mc.displayName = "NativeSelect";
3288
+ var Ac = (e) => e.type === "checkbox", Dc = (e) => e instanceof Date, ma = (e) => e == null;
3289
+ const Pc = (e) => typeof e == "object";
3290
+ var Be = (e) => !ma(e) && !Array.isArray(e) && Pc(e) && !Dc(e), Tc = (e) => Be(e) && e.target ? Ac(e.target) ? e.target.checked : e.target.value : e, jc = (e) => e.substring(0, e.search(/\.\d+(\.|$)/)) || e, Oc = (e, r) => e.has(jc(r)), kc = (e) => {
3291
+ const r = e.constructor && e.constructor.prototype;
3292
+ return Be(r) && r.hasOwnProperty("isPrototypeOf");
3293
+ }, $c = typeof window < "u" && typeof window.HTMLElement < "u" && typeof document < "u";
3294
+ function ga(e) {
3295
+ let r;
3296
+ const t = Array.isArray(e), n = typeof FileList < "u" ? e instanceof FileList : !1;
3297
+ if (e instanceof Date)
3298
+ r = new Date(e);
3299
+ else if (e instanceof Set)
3300
+ r = new Set(e);
3301
+ else if (!($c && (e instanceof Blob || n)) && (t || Be(e)))
3302
+ if (r = t ? [] : {}, !t && !kc(e))
3303
+ r = e;
3304
+ else
3305
+ for (const o in e)
3306
+ e.hasOwnProperty(o) && (r[o] = ga(e[o]));
3307
+ else
3308
+ return e;
3309
+ return r;
3310
+ }
3311
+ var va = (e) => Array.isArray(e) ? e.filter(Boolean) : [], Tt = (e) => e === void 0, ae = (e, r, t) => {
3312
+ if (!r || !Be(e))
3313
+ return t;
3314
+ const n = va(r.split(/[,[\].]+?/)).reduce((o, l) => ma(o) ? o : o[l], e);
3315
+ return Tt(n) || n === e ? Tt(e[r]) ? t : e[r] : n;
3316
+ }, yt = (e) => typeof e == "boolean", Lc = (e) => /^\w*$/.test(e), Vc = (e) => va(e.replace(/["|']|\]/g, "").split(/\.|\[/)), gr = (e, r, t) => {
3317
+ let n = -1;
3318
+ const o = Lc(r) ? [r] : Vc(r), l = o.length, i = l - 1;
3319
+ for (; ++n < l; ) {
3320
+ const c = o[n];
3321
+ let d = t;
3322
+ if (n !== i) {
3323
+ const u = e[c];
3324
+ d = Be(u) || Array.isArray(u) ? u : isNaN(+o[n + 1]) ? {} : [];
3325
+ }
3326
+ if (c === "__proto__" || c === "constructor" || c === "prototype")
3327
+ return;
3328
+ e[c] = d, e = e[c];
3329
+ }
3330
+ };
3331
+ const vr = {
3332
+ BLUR: "blur",
3333
+ FOCUS_OUT: "focusout",
3334
+ CHANGE: "change"
3335
+ }, hr = {
3336
+ onBlur: "onBlur",
3337
+ onChange: "onChange",
3338
+ onSubmit: "onSubmit",
3339
+ onTouched: "onTouched",
3340
+ all: "all"
3341
+ }, ha = T.createContext(null), st = () => T.useContext(ha), Fc = (e) => {
3342
+ const { children: r, ...t } = e;
3343
+ return T.createElement(ha.Provider, { value: t }, r);
3344
+ };
3345
+ var Bc = (e, r, t, n = !0) => {
3346
+ const o = {
3347
+ defaultValues: r._defaultValues
3348
+ };
3349
+ for (const l in e)
3350
+ Object.defineProperty(o, l, {
3351
+ get: () => {
3352
+ const i = l;
3353
+ return r._proxyFormState[i] !== hr.all && (r._proxyFormState[i] = !n || hr.all), t && (t[i] = !0), e[i];
3354
+ }
3355
+ });
3356
+ return o;
3357
+ };
3358
+ const xa = typeof window < "u" ? a.useLayoutEffect : a.useEffect;
3359
+ function Gc(e) {
3360
+ const r = st(), { control: t = r.control, disabled: n, name: o, exact: l } = e || {}, [i, c] = T.useState(t._formState), d = T.useRef({
3361
+ isDirty: !1,
3362
+ isLoading: !1,
3363
+ dirtyFields: !1,
3364
+ touchedFields: !1,
3365
+ validatingFields: !1,
3366
+ isValidating: !1,
3367
+ isValid: !1,
3368
+ errors: !1
3369
+ });
3370
+ return xa(() => t._subscribe({
3371
+ name: o,
3372
+ formState: d.current,
3373
+ exact: l,
3374
+ callback: (u) => {
3375
+ !n && c({
3376
+ ...t._formState,
3377
+ ...u
3378
+ });
3379
+ }
3380
+ }), [o, n, l]), T.useEffect(() => {
3381
+ d.current.isValid && t._setValid(!0);
3382
+ }, [t]), T.useMemo(() => Bc(i, t, d.current, !1), [i, t]);
3383
+ }
3384
+ var Hc = (e) => typeof e == "string", Kc = (e, r, t, n, o) => Hc(e) ? ae(t, e, o) : Array.isArray(e) ? e.map((l) => ae(t, l)) : t;
3385
+ function Uc(e) {
3386
+ const r = st(), { control: t = r.control, name: n, defaultValue: o, disabled: l, exact: i } = e || {}, c = T.useRef(o), [d, u] = T.useState(t._getWatch(n, c.current));
3387
+ return xa(() => t._subscribe({
3388
+ name: n,
3389
+ formState: {
3390
+ values: !0
3391
+ },
3392
+ exact: i,
3393
+ callback: (f) => !l && u(Kc(n, t._names, f.values || t._formValues, !1, c.current))
3394
+ }), [n, t, l, i]), T.useEffect(() => t._removeUnmounted()), d;
3395
+ }
3396
+ function Wc(e) {
3397
+ const r = st(), { name: t, disabled: n, control: o = r.control, shouldUnregister: l } = e, i = Oc(o._names.array, t), c = Uc({
3398
+ control: o,
3399
+ name: t,
3400
+ defaultValue: ae(o._formValues, t, ae(o._defaultValues, t, e.defaultValue)),
3401
+ exact: !0
3402
+ }), d = Gc({
3403
+ control: o,
3404
+ name: t,
3405
+ exact: !0
3406
+ }), u = T.useRef(e), f = T.useRef(o.register(t, {
3407
+ ...e.rules,
3408
+ value: c,
3409
+ ...yt(e.disabled) ? { disabled: e.disabled } : {}
3410
+ })), p = T.useMemo(() => Object.defineProperties({}, {
3411
+ invalid: {
3412
+ enumerable: !0,
3413
+ get: () => !!ae(d.errors, t)
3414
+ },
3415
+ isDirty: {
3416
+ enumerable: !0,
3417
+ get: () => !!ae(d.dirtyFields, t)
3418
+ },
3419
+ isTouched: {
3420
+ enumerable: !0,
3421
+ get: () => !!ae(d.touchedFields, t)
3422
+ },
3423
+ isValidating: {
3424
+ enumerable: !0,
3425
+ get: () => !!ae(d.validatingFields, t)
3426
+ },
3427
+ error: {
3428
+ enumerable: !0,
3429
+ get: () => ae(d.errors, t)
3430
+ }
3431
+ }), [d, t]), g = T.useCallback((w) => f.current.onChange({
3432
+ target: {
3433
+ value: Tc(w),
3434
+ name: t
3435
+ },
3436
+ type: vr.CHANGE
3437
+ }), [t]), x = T.useCallback(() => f.current.onBlur({
3438
+ target: {
3439
+ value: ae(o._formValues, t),
3440
+ name: t
3441
+ },
3442
+ type: vr.BLUR
3443
+ }), [t, o._formValues]), y = T.useCallback((w) => {
3444
+ const S = ae(o._fields, t);
3445
+ S && w && (S._f.ref = {
3446
+ focus: () => w.focus(),
3447
+ select: () => w.select(),
3448
+ setCustomValidity: (h) => w.setCustomValidity(h),
3449
+ reportValidity: () => w.reportValidity()
3450
+ });
3451
+ }, [o._fields, t]), v = T.useMemo(() => ({
3452
+ name: t,
3453
+ value: c,
3454
+ ...yt(n) || d.disabled ? { disabled: d.disabled || n } : {},
3455
+ onChange: g,
3456
+ onBlur: x,
3457
+ ref: y
3458
+ }), [t, n, d.disabled, g, x, y, c]);
3459
+ return T.useEffect(() => {
3460
+ const w = o._options.shouldUnregister || l;
3461
+ o.register(t, {
3462
+ ...u.current.rules,
3463
+ ...yt(u.current.disabled) ? { disabled: u.current.disabled } : {}
3464
+ });
3465
+ const S = (h, _) => {
3466
+ const L = ae(o._fields, h);
3467
+ L && L._f && (L._f.mount = _);
3468
+ };
3469
+ if (S(t, !0), w) {
3470
+ const h = ga(ae(o._options.defaultValues, t));
3471
+ gr(o._defaultValues, t, h), Tt(ae(o._formValues, t)) && gr(o._formValues, t, h);
3472
+ }
3473
+ return !i && o.register(t), () => {
3474
+ (i ? w && !o._state.action : w) ? o.unregister(t) : S(t, !1);
3475
+ };
3476
+ }, [t, o, i, l]), T.useEffect(() => {
3477
+ o._setDisabledField({
3478
+ disabled: n,
3479
+ name: t
3480
+ });
3481
+ }, [n, t, o]), T.useMemo(() => ({
3482
+ field: v,
3483
+ formState: d,
3484
+ fieldState: p
3485
+ }), [v, d, p]);
3486
+ }
3487
+ const zc = (e) => e.render(Wc(e)), Sd = Fc, ya = a.createContext({}), Cd = ({
3488
+ ...e
3489
+ }) => /* @__PURE__ */ s.jsx(ya.Provider, { value: { name: e.name }, children: /* @__PURE__ */ s.jsx(zc, { ...e }) }), it = () => {
3490
+ const e = a.useContext(ya), r = a.useContext(wa), { getFieldState: t, formState: n } = st(), o = t(e.name, n);
3491
+ if (!e)
3492
+ throw new Error("useFormField should be used within <FormField>");
3493
+ const { id: l } = r;
3494
+ return {
3495
+ id: l,
3496
+ name: e.name,
3497
+ formItemId: `${l}-form-item`,
3498
+ formDescriptionId: `${l}-form-item-description`,
3499
+ formMessageId: `${l}-form-item-message`,
3500
+ ...o
3501
+ };
3502
+ }, wa = a.createContext({}), Yc = a.forwardRef(
3503
+ ({ className: e, ...r }, t) => {
3504
+ const n = a.useId();
3505
+ return /* @__PURE__ */ s.jsx(wa.Provider, { value: { id: n }, children: /* @__PURE__ */ s.jsx("div", { ref: t, className: E("al-space-y-2", e), ...r }) });
3506
+ }
3507
+ );
3508
+ Yc.displayName = "FormItem";
3509
+ const qc = a.forwardRef(({ className: e, ...r }, t) => {
3510
+ const { error: n, formItemId: o } = it();
3511
+ return /* @__PURE__ */ s.jsx(
3512
+ ja,
3513
+ {
3514
+ ref: t,
3515
+ className: E(n && "al-text-destructive", e),
3516
+ htmlFor: o,
3517
+ ...r
3518
+ }
3519
+ );
3520
+ });
3521
+ qc.displayName = "FormLabel";
3522
+ const Xc = a.forwardRef(({ ...e }, r) => {
3523
+ const { error: t, formItemId: n, formDescriptionId: o, formMessageId: l } = it();
3524
+ return /* @__PURE__ */ s.jsx(
3525
+ Oa,
3526
+ {
3527
+ ref: r,
3528
+ id: n,
3529
+ "aria-describedby": t ? `${o} ${l}` : `${o}`,
3530
+ "aria-invalid": !!t,
3531
+ ...e
3532
+ }
3533
+ );
3534
+ });
3535
+ Xc.displayName = "FormControl";
3536
+ const Zc = a.forwardRef(({ className: e, ...r }, t) => {
3537
+ const { formDescriptionId: n } = it();
3538
+ return /* @__PURE__ */ s.jsx(
3539
+ "p",
3540
+ {
3541
+ ref: t,
3542
+ id: n,
3543
+ className: E("al-text-sm al-text-muted-foreground", e),
3544
+ ...r
3545
+ }
3546
+ );
3547
+ });
3548
+ Zc.displayName = "FormDescription";
3549
+ const Jc = a.forwardRef(({ className: e, children: r, ...t }, n) => {
3550
+ const { error: o, formMessageId: l } = it(), i = o ? String((o == null ? void 0 : o.message) ?? "") : r;
3551
+ return i ? /* @__PURE__ */ s.jsx(
3552
+ "p",
3553
+ {
3554
+ ref: n,
3555
+ id: l,
3556
+ className: E("al-text-sm al-font-medium al-text-destructive", e),
3557
+ ...t,
3558
+ children: i
3559
+ }
3560
+ ) : null;
3561
+ });
3562
+ Jc.displayName = "FormMessage";
3563
+ export {
3564
+ rs as $,
3565
+ Si as A,
3566
+ fd as B,
3567
+ Bn as C,
3568
+ Fa as D,
3569
+ Ba as E,
3570
+ Yc as F,
3571
+ Cl as G,
3572
+ Ga as H,
3573
+ Nl as I,
3574
+ ld as J,
3575
+ sd as K,
3576
+ _l as L,
3577
+ os as M,
3578
+ Mc as N,
3579
+ as as O,
3580
+ bl as P,
3581
+ ls as Q,
3582
+ Rl as R,
3583
+ rd as S,
3584
+ ss as T,
3585
+ is as U,
3586
+ cs as V,
3587
+ ds as W,
3588
+ id as X,
3589
+ cd as Y,
3590
+ dd as Z,
3591
+ ns as _,
3592
+ Jc as a,
3593
+ ud as a0,
3594
+ pd as a1,
3595
+ Ks as a2,
3596
+ Gs as a3,
3597
+ Us as a4,
3598
+ gd as a5,
3599
+ pi as a6,
3600
+ fi as a7,
3601
+ mi as a8,
3602
+ xi as a9,
3603
+ qc as aA,
3604
+ Xc as aB,
3605
+ Zc as aC,
3606
+ Cd as aD,
3607
+ yi as aa,
3608
+ Ci as ab,
3609
+ _i as ac,
3610
+ xd as ad,
3611
+ Fi as ae,
3612
+ No as af,
3613
+ yd as ag,
3614
+ Bi as ah,
3615
+ Gi as ai,
3616
+ Hi as aj,
3617
+ Ki as ak,
3618
+ Ui as al,
3619
+ Wi as am,
3620
+ zi as an,
3621
+ _c as ao,
3622
+ bd as ap,
3623
+ Nc as aq,
3624
+ ca as ar,
3625
+ pa as as,
3626
+ Ec as at,
3627
+ fa as au,
3628
+ Rc as av,
3629
+ da as aw,
3630
+ ua as ax,
3631
+ it as ay,
3632
+ Sd as az,
3633
+ Ls as b,
3634
+ Vs as c,
3635
+ Fs as d,
3636
+ Bs as e,
3637
+ Hs as f,
3638
+ La as g,
3639
+ mr as h,
3640
+ kr as i,
3641
+ wl as j,
3642
+ Sl as k,
3643
+ El as l,
3644
+ Il as m,
3645
+ Ml as n,
3646
+ Al as o,
3647
+ Dl as p,
3648
+ Tl as q,
3649
+ jl as r,
3650
+ yl as s,
3651
+ Pl as t,
3652
+ vd as u,
3653
+ ka as v,
3654
+ Tr as w,
3655
+ nd as x,
3656
+ od as y,
3657
+ Va as z
3658
+ };