@still-forest/canopy 0.38.0 → 0.38.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,1807 @@
1
+ import { j as a } from "./jsx-runtime-B0GD0xBr.js";
2
+ import { u as F, c as R, b as G, S as re, B as it, f as lt, g as ct } from "./calendar-C-nHBQQ8.js";
3
+ import * as l from "react";
4
+ import w, { Fragment as dt } from "react";
5
+ import { c as d } from "./index-CRiPKpXj.js";
6
+ import { c as q, d as ne, e as se, f as E, h as A, g as ie, i as ut, j as pt, u as ft, k as xt, l as mt, m as ht, n as gt, o as Te, p as bt, A as vt, q as jt, r as yt, s as Ct, t as wt, v as Tt, R as Nt, C as kt, a as _t, b as At, D as Rt, P as Et, O as It } from "./index-CA-6Q-v_.js";
7
+ import { H as St, T as le } from "./Heading-DjVutKs1.js";
8
+ import { F as Ne } from "./Layout-CvVv48kM.js";
9
+ var K = "Collapsible", [Pt, ke] = ne(K), [Mt, ce] = Pt(K), _e = l.forwardRef(
10
+ (e, t) => {
11
+ const {
12
+ __scopeCollapsible: o,
13
+ open: r,
14
+ defaultOpen: n,
15
+ disabled: s,
16
+ onOpenChange: i,
17
+ ...u
18
+ } = e, [c, x] = q({
19
+ prop: r,
20
+ defaultProp: n ?? !1,
21
+ onChange: i,
22
+ caller: K
23
+ });
24
+ return /* @__PURE__ */ a.jsx(
25
+ Mt,
26
+ {
27
+ scope: o,
28
+ disabled: s,
29
+ contentId: se(),
30
+ open: c,
31
+ onOpenToggle: l.useCallback(() => x((p) => !p), [x]),
32
+ children: /* @__PURE__ */ a.jsx(
33
+ E.div,
34
+ {
35
+ "data-state": fe(c),
36
+ "data-disabled": s ? "" : void 0,
37
+ ...u,
38
+ ref: t
39
+ }
40
+ )
41
+ }
42
+ );
43
+ }
44
+ );
45
+ _e.displayName = K;
46
+ var Ae = "CollapsibleTrigger", de = l.forwardRef(
47
+ (e, t) => {
48
+ const { __scopeCollapsible: o, ...r } = e, n = ce(Ae, o);
49
+ return /* @__PURE__ */ a.jsx(
50
+ E.button,
51
+ {
52
+ type: "button",
53
+ "aria-controls": n.contentId,
54
+ "aria-expanded": n.open || !1,
55
+ "data-state": fe(n.open),
56
+ "data-disabled": n.disabled ? "" : void 0,
57
+ disabled: n.disabled,
58
+ ...r,
59
+ ref: t,
60
+ onClick: A(e.onClick, n.onOpenToggle)
61
+ }
62
+ );
63
+ }
64
+ );
65
+ de.displayName = Ae;
66
+ var ue = "CollapsibleContent", pe = l.forwardRef(
67
+ (e, t) => {
68
+ const { forceMount: o, ...r } = e, n = ce(ue, e.__scopeCollapsible);
69
+ return /* @__PURE__ */ a.jsx(ie, { present: o || n.open, children: ({ present: s }) => /* @__PURE__ */ a.jsx(Ot, { ...r, ref: t, present: s }) });
70
+ }
71
+ );
72
+ pe.displayName = ue;
73
+ var Ot = l.forwardRef((e, t) => {
74
+ const { __scopeCollapsible: o, present: r, children: n, ...s } = e, i = ce(ue, o), [u, c] = l.useState(r), x = l.useRef(null), p = F(t, x), m = l.useRef(0), g = m.current, h = l.useRef(0), v = h.current, j = i.open || u, y = l.useRef(j), b = l.useRef(void 0);
75
+ return l.useEffect(() => {
76
+ const f = requestAnimationFrame(() => y.current = !1);
77
+ return () => cancelAnimationFrame(f);
78
+ }, []), ut(() => {
79
+ const f = x.current;
80
+ if (f) {
81
+ b.current = b.current || {
82
+ transitionDuration: f.style.transitionDuration,
83
+ animationName: f.style.animationName
84
+ }, f.style.transitionDuration = "0s", f.style.animationName = "none";
85
+ const T = f.getBoundingClientRect();
86
+ m.current = T.height, h.current = T.width, y.current || (f.style.transitionDuration = b.current.transitionDuration, f.style.animationName = b.current.animationName), c(r);
87
+ }
88
+ }, [i.open, r]), /* @__PURE__ */ a.jsx(
89
+ E.div,
90
+ {
91
+ "data-state": fe(i.open),
92
+ "data-disabled": i.disabled ? "" : void 0,
93
+ id: i.contentId,
94
+ hidden: !j,
95
+ ...s,
96
+ ref: p,
97
+ style: {
98
+ "--radix-collapsible-content-height": g ? `${g}px` : void 0,
99
+ "--radix-collapsible-content-width": v ? `${v}px` : void 0,
100
+ ...e.style
101
+ },
102
+ children: j && n
103
+ }
104
+ );
105
+ });
106
+ function fe(e) {
107
+ return e ? "open" : "closed";
108
+ }
109
+ var Re = _e, Dt = de, $t = pe, N = "Accordion", zt = ["Home", "End", "ArrowDown", "ArrowUp", "ArrowLeft", "ArrowRight"], [xe, Lt, Ht] = pt(N), [U, cr] = ne(N, [
110
+ Ht,
111
+ ke
112
+ ]), me = ke(), Ee = w.forwardRef(
113
+ (e, t) => {
114
+ const { type: o, ...r } = e, n = r, s = r;
115
+ return /* @__PURE__ */ a.jsx(xe.Provider, { scope: e.__scopeAccordion, children: o === "multiple" ? /* @__PURE__ */ a.jsx(Gt, { ...s, ref: t }) : /* @__PURE__ */ a.jsx(Ft, { ...n, ref: t }) });
116
+ }
117
+ );
118
+ Ee.displayName = N;
119
+ var [Ie, Bt] = U(N), [Se, Vt] = U(
120
+ N,
121
+ { collapsible: !1 }
122
+ ), Ft = w.forwardRef(
123
+ (e, t) => {
124
+ const {
125
+ value: o,
126
+ defaultValue: r,
127
+ onValueChange: n = () => {
128
+ },
129
+ collapsible: s = !1,
130
+ ...i
131
+ } = e, [u, c] = q({
132
+ prop: o,
133
+ defaultProp: r ?? "",
134
+ onChange: n,
135
+ caller: N
136
+ });
137
+ return /* @__PURE__ */ a.jsx(
138
+ Ie,
139
+ {
140
+ scope: e.__scopeAccordion,
141
+ value: w.useMemo(() => u ? [u] : [], [u]),
142
+ onItemOpen: c,
143
+ onItemClose: w.useCallback(() => s && c(""), [s, c]),
144
+ children: /* @__PURE__ */ a.jsx(Se, { scope: e.__scopeAccordion, collapsible: s, children: /* @__PURE__ */ a.jsx(Pe, { ...i, ref: t }) })
145
+ }
146
+ );
147
+ }
148
+ ), Gt = w.forwardRef((e, t) => {
149
+ const {
150
+ value: o,
151
+ defaultValue: r,
152
+ onValueChange: n = () => {
153
+ },
154
+ ...s
155
+ } = e, [i, u] = q({
156
+ prop: o,
157
+ defaultProp: r ?? [],
158
+ onChange: n,
159
+ caller: N
160
+ }), c = w.useCallback(
161
+ (p) => u((m = []) => [...m, p]),
162
+ [u]
163
+ ), x = w.useCallback(
164
+ (p) => u((m = []) => m.filter((g) => g !== p)),
165
+ [u]
166
+ );
167
+ return /* @__PURE__ */ a.jsx(
168
+ Ie,
169
+ {
170
+ scope: e.__scopeAccordion,
171
+ value: i,
172
+ onItemOpen: c,
173
+ onItemClose: x,
174
+ children: /* @__PURE__ */ a.jsx(Se, { scope: e.__scopeAccordion, collapsible: !0, children: /* @__PURE__ */ a.jsx(Pe, { ...s, ref: t }) })
175
+ }
176
+ );
177
+ }), [qt, W] = U(N), Pe = w.forwardRef(
178
+ (e, t) => {
179
+ const { __scopeAccordion: o, disabled: r, dir: n, orientation: s = "vertical", ...i } = e, u = w.useRef(null), c = F(u, t), x = Lt(o), m = ft(n) === "ltr", g = A(e.onKeyDown, (h) => {
180
+ if (!zt.includes(h.key)) return;
181
+ const v = h.target, j = x().filter((Q) => !Q.ref.current?.disabled), y = j.findIndex((Q) => Q.ref.current === v), b = j.length;
182
+ if (y === -1) return;
183
+ h.preventDefault();
184
+ let f = y;
185
+ const T = 0, k = b - 1, _ = () => {
186
+ f = y + 1, f > k && (f = T);
187
+ }, S = () => {
188
+ f = y - 1, f < T && (f = k);
189
+ };
190
+ switch (h.key) {
191
+ case "Home":
192
+ f = T;
193
+ break;
194
+ case "End":
195
+ f = k;
196
+ break;
197
+ case "ArrowRight":
198
+ s === "horizontal" && (m ? _() : S());
199
+ break;
200
+ case "ArrowDown":
201
+ s === "vertical" && _();
202
+ break;
203
+ case "ArrowLeft":
204
+ s === "horizontal" && (m ? S() : _());
205
+ break;
206
+ case "ArrowUp":
207
+ s === "vertical" && S();
208
+ break;
209
+ }
210
+ const L = f % b;
211
+ j[L].ref.current?.focus();
212
+ });
213
+ return /* @__PURE__ */ a.jsx(
214
+ qt,
215
+ {
216
+ scope: o,
217
+ disabled: r,
218
+ direction: n,
219
+ orientation: s,
220
+ children: /* @__PURE__ */ a.jsx(xe.Slot, { scope: o, children: /* @__PURE__ */ a.jsx(
221
+ E.div,
222
+ {
223
+ ...i,
224
+ "data-orientation": s,
225
+ ref: c,
226
+ onKeyDown: r ? void 0 : g
227
+ }
228
+ ) })
229
+ }
230
+ );
231
+ }
232
+ ), V = "AccordionItem", [Kt, he] = U(V), Me = w.forwardRef(
233
+ (e, t) => {
234
+ const { __scopeAccordion: o, value: r, ...n } = e, s = W(V, o), i = Bt(V, o), u = me(o), c = se(), x = r && i.value.includes(r) || !1, p = s.disabled || e.disabled;
235
+ return /* @__PURE__ */ a.jsx(
236
+ Kt,
237
+ {
238
+ scope: o,
239
+ open: x,
240
+ disabled: p,
241
+ triggerId: c,
242
+ children: /* @__PURE__ */ a.jsx(
243
+ Re,
244
+ {
245
+ "data-orientation": s.orientation,
246
+ "data-state": He(x),
247
+ ...u,
248
+ ...n,
249
+ ref: t,
250
+ disabled: p,
251
+ open: x,
252
+ onOpenChange: (m) => {
253
+ m ? i.onItemOpen(r) : i.onItemClose(r);
254
+ }
255
+ }
256
+ )
257
+ }
258
+ );
259
+ }
260
+ );
261
+ Me.displayName = V;
262
+ var Oe = "AccordionHeader", De = w.forwardRef(
263
+ (e, t) => {
264
+ const { __scopeAccordion: o, ...r } = e, n = W(N, o), s = he(Oe, o);
265
+ return /* @__PURE__ */ a.jsx(
266
+ E.h3,
267
+ {
268
+ "data-orientation": n.orientation,
269
+ "data-state": He(s.open),
270
+ "data-disabled": s.disabled ? "" : void 0,
271
+ ...r,
272
+ ref: t
273
+ }
274
+ );
275
+ }
276
+ );
277
+ De.displayName = Oe;
278
+ var ee = "AccordionTrigger", $e = w.forwardRef(
279
+ (e, t) => {
280
+ const { __scopeAccordion: o, ...r } = e, n = W(N, o), s = he(ee, o), i = Vt(ee, o), u = me(o);
281
+ return /* @__PURE__ */ a.jsx(xe.ItemSlot, { scope: o, children: /* @__PURE__ */ a.jsx(
282
+ Dt,
283
+ {
284
+ "aria-disabled": s.open && !i.collapsible || void 0,
285
+ "data-orientation": n.orientation,
286
+ id: s.triggerId,
287
+ ...u,
288
+ ...r,
289
+ ref: t
290
+ }
291
+ ) });
292
+ }
293
+ );
294
+ $e.displayName = ee;
295
+ var ze = "AccordionContent", Le = w.forwardRef(
296
+ (e, t) => {
297
+ const { __scopeAccordion: o, ...r } = e, n = W(N, o), s = he(ze, o), i = me(o);
298
+ return /* @__PURE__ */ a.jsx(
299
+ $t,
300
+ {
301
+ role: "region",
302
+ "aria-labelledby": s.triggerId,
303
+ "data-orientation": n.orientation,
304
+ ...i,
305
+ ...r,
306
+ ref: t,
307
+ style: {
308
+ "--radix-accordion-content-height": "var(--radix-collapsible-content-height)",
309
+ "--radix-accordion-content-width": "var(--radix-collapsible-content-width)",
310
+ ...e.style
311
+ }
312
+ }
313
+ );
314
+ }
315
+ );
316
+ Le.displayName = ze;
317
+ function He(e) {
318
+ return e ? "open" : "closed";
319
+ }
320
+ var Ut = Ee, Wt = Me, Yt = De, Xt = $e, Jt = Le;
321
+ /**
322
+ * @license lucide-react v0.544.0 - ISC
323
+ *
324
+ * This source code is licensed under the ISC license.
325
+ * See the LICENSE file in the root directory of this source tree.
326
+ */
327
+ const Qt = [
328
+ ["rect", { width: "14", height: "8", x: "5", y: "2", rx: "2", key: "wc9tft" }],
329
+ ["rect", { width: "20", height: "8", x: "2", y: "14", rx: "2", key: "w68u3i" }],
330
+ ["path", { d: "M6 18h2", key: "rwmk9e" }],
331
+ ["path", { d: "M12 18h6", key: "aqd8w3" }]
332
+ ], Zt = R("computer", Qt);
333
+ /**
334
+ * @license lucide-react v0.544.0 - ISC
335
+ *
336
+ * This source code is licensed under the ISC license.
337
+ * See the LICENSE file in the root directory of this source tree.
338
+ */
339
+ const ea = [
340
+ ["path", { d: "M12 17v4", key: "1riwvh" }],
341
+ ["path", { d: "m14.305 7.53.923-.382", key: "1mlnsw" }],
342
+ ["path", { d: "m15.228 4.852-.923-.383", key: "82mpwg" }],
343
+ ["path", { d: "m16.852 3.228-.383-.924", key: "ln4sir" }],
344
+ ["path", { d: "m16.852 8.772-.383.923", key: "1dejw0" }],
345
+ ["path", { d: "m19.148 3.228.383-.924", key: "192kgf" }],
346
+ ["path", { d: "m19.53 9.696-.382-.924", key: "fiavlr" }],
347
+ ["path", { d: "m20.772 4.852.924-.383", key: "1j8mgp" }],
348
+ ["path", { d: "m20.772 7.148.924.383", key: "zix9be" }],
349
+ ["path", { d: "M22 13v2a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h7", key: "1tnzv8" }],
350
+ ["path", { d: "M8 21h8", key: "1ev6f3" }],
351
+ ["circle", { cx: "18", cy: "6", r: "3", key: "1h7g24" }]
352
+ ], ta = R("monitor-cog", ea);
353
+ /**
354
+ * @license lucide-react v0.544.0 - ISC
355
+ *
356
+ * This source code is licensed under the ISC license.
357
+ * See the LICENSE file in the root directory of this source tree.
358
+ */
359
+ const aa = [
360
+ [
361
+ "path",
362
+ {
363
+ d: "M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401",
364
+ key: "kfwtm"
365
+ }
366
+ ]
367
+ ], Be = R("moon", aa);
368
+ /**
369
+ * @license lucide-react v0.544.0 - ISC
370
+ *
371
+ * This source code is licensed under the ISC license.
372
+ * See the LICENSE file in the root directory of this source tree.
373
+ */
374
+ const oa = [
375
+ ["rect", { width: "18", height: "18", x: "3", y: "3", rx: "2", key: "afitv7" }],
376
+ ["path", { d: "M9 3v18", key: "fh3hqa" }],
377
+ ["path", { d: "m14 9 3 3-3 3", key: "8010ee" }]
378
+ ], ra = R("panel-left-open", oa);
379
+ /**
380
+ * @license lucide-react v0.544.0 - ISC
381
+ *
382
+ * This source code is licensed under the ISC license.
383
+ * See the LICENSE file in the root directory of this source tree.
384
+ */
385
+ const na = [
386
+ ["rect", { width: "18", height: "18", x: "3", y: "3", rx: "2", key: "afitv7" }],
387
+ ["path", { d: "M15 3v18", key: "14nvp0" }],
388
+ ["path", { d: "m10 15-3-3 3-3", key: "1pgupc" }]
389
+ ], sa = R("panel-right-open", na);
390
+ /**
391
+ * @license lucide-react v0.544.0 - ISC
392
+ *
393
+ * This source code is licensed under the ISC license.
394
+ * See the LICENSE file in the root directory of this source tree.
395
+ */
396
+ const ia = [
397
+ ["path", { d: "M21 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h6", key: "y09zxi" }],
398
+ ["path", { d: "m21 3-9 9", key: "mpx6sq" }],
399
+ ["path", { d: "M15 3h6v6", key: "1q9fwt" }]
400
+ ], la = R("square-arrow-out-up-right", ia);
401
+ /**
402
+ * @license lucide-react v0.544.0 - ISC
403
+ *
404
+ * This source code is licensed under the ISC license.
405
+ * See the LICENSE file in the root directory of this source tree.
406
+ */
407
+ const ca = [
408
+ ["circle", { cx: "12", cy: "12", r: "4", key: "4exip2" }],
409
+ ["path", { d: "M12 2v2", key: "tus03m" }],
410
+ ["path", { d: "M12 20v2", key: "1lh1kg" }],
411
+ ["path", { d: "m4.93 4.93 1.41 1.41", key: "149t6j" }],
412
+ ["path", { d: "m17.66 17.66 1.41 1.41", key: "ptbguv" }],
413
+ ["path", { d: "M2 12h2", key: "1t8f8n" }],
414
+ ["path", { d: "M20 12h2", key: "1q8mjw" }],
415
+ ["path", { d: "m6.34 17.66-1.41 1.41", key: "1m8zz5" }],
416
+ ["path", { d: "m19.07 4.93-1.41 1.41", key: "1shlcs" }]
417
+ ], Ve = R("sun", ca);
418
+ /**
419
+ * @license lucide-react v0.544.0 - ISC
420
+ *
421
+ * This source code is licensed under the ISC license.
422
+ * See the LICENSE file in the root directory of this source tree.
423
+ */
424
+ const da = [
425
+ ["path", { d: "M18 6 6 18", key: "1bl5f8" }],
426
+ ["path", { d: "m6 6 12 12", key: "d8bk6v" }]
427
+ ], ua = R("x", da);
428
+ function pa({ ...e }) {
429
+ return /* @__PURE__ */ a.jsx(Ut, { "data-slot": "accordion", ...e });
430
+ }
431
+ function fa({ className: e, ...t }) {
432
+ return /* @__PURE__ */ a.jsx(
433
+ Wt,
434
+ {
435
+ className: d("border-b last:border-b-0", e),
436
+ "data-slot": "accordion-item",
437
+ ...t
438
+ }
439
+ );
440
+ }
441
+ function xa({ className: e, children: t, ...o }) {
442
+ return /* @__PURE__ */ a.jsx(Yt, { className: "flex", children: /* @__PURE__ */ a.jsxs(
443
+ Xt,
444
+ {
445
+ className: d(
446
+ "focus-visible:border-ring focus-visible:ring-ring/50 flex flex-1 items-start justify-between gap-4 rounded-md py-4 text-left text-sm font-medium transition-all outline-none hover:underline focus-visible:ring-[3px] disabled:pointer-events-none disabled:opacity-50 [&[data-state=open]>svg]:rotate-180",
447
+ e
448
+ ),
449
+ "data-slot": "accordion-trigger",
450
+ ...o,
451
+ children: [
452
+ t,
453
+ /* @__PURE__ */ a.jsx(xt, { className: "text-muted-foreground pointer-events-none size-4 shrink-0 translate-y-0.5 transition-transform duration-200" })
454
+ ]
455
+ }
456
+ ) });
457
+ }
458
+ function ma({ className: e, children: t, ...o }) {
459
+ return /* @__PURE__ */ a.jsx(
460
+ Jt,
461
+ {
462
+ className: "data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down overflow-hidden text-sm",
463
+ "data-slot": "accordion-content",
464
+ ...o,
465
+ children: /* @__PURE__ */ a.jsx("div", { className: d("pt-0 pb-4", e), children: t })
466
+ }
467
+ );
468
+ }
469
+ const ge = ({ children: e, ...t }) => /* @__PURE__ */ a.jsx(pa, { ...t, children: e });
470
+ ge.Item = fa;
471
+ ge.Trigger = xa;
472
+ ge.Content = ma;
473
+ function ha({ className: e, ...t }) {
474
+ return /* @__PURE__ */ a.jsx(
475
+ "div",
476
+ {
477
+ className: d("flex flex-col gap-6 rounded-xl border bg-card py-6 text-card-foreground shadow-sm", e),
478
+ "data-slot": "card",
479
+ ...t
480
+ }
481
+ );
482
+ }
483
+ function ga({ className: e, ...t }) {
484
+ return /* @__PURE__ */ a.jsx(
485
+ "div",
486
+ {
487
+ className: d(
488
+ "@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-1.5 px-6 has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-6",
489
+ e
490
+ ),
491
+ "data-slot": "card-header",
492
+ ...t
493
+ }
494
+ );
495
+ }
496
+ function ba({ className: e, ...t }) {
497
+ return /* @__PURE__ */ a.jsx("div", { className: d("font-semibold leading-none", e), "data-slot": "card-title", ...t });
498
+ }
499
+ function va({ className: e, ...t }) {
500
+ return /* @__PURE__ */ a.jsx("div", { className: d("text-muted-foreground text-sm", e), "data-slot": "card-description", ...t });
501
+ }
502
+ function ja({ className: e, ...t }) {
503
+ return /* @__PURE__ */ a.jsx(
504
+ "div",
505
+ {
506
+ className: d("col-start-2 row-span-2 row-start-1 self-start justify-self-end", e),
507
+ "data-slot": "card-action",
508
+ ...t
509
+ }
510
+ );
511
+ }
512
+ function ya({ className: e, ...t }) {
513
+ return /* @__PURE__ */ a.jsx("div", { className: d("px-6", e), "data-slot": "card-content", ...t });
514
+ }
515
+ function Ca({ className: e, ...t }) {
516
+ return /* @__PURE__ */ a.jsx("div", { className: d("flex items-center px-6 [.border-t]:pt-6", e), "data-slot": "card-footer", ...t });
517
+ }
518
+ const M = ({ children: e, ...t }) => /* @__PURE__ */ a.jsx(ha, { ...t, children: e });
519
+ M.Action = ja;
520
+ M.Content = ya;
521
+ M.Description = va;
522
+ M.Footer = Ca;
523
+ M.Header = ga;
524
+ M.Title = ba;
525
+ function wa({ ...e }) {
526
+ return /* @__PURE__ */ a.jsx(Re, { "data-slot": "collapsible", ...e });
527
+ }
528
+ function Ta({ ...e }) {
529
+ return /* @__PURE__ */ a.jsx(de, { "data-slot": "collapsible-trigger", ...e });
530
+ }
531
+ function Na({ ...e }) {
532
+ return /* @__PURE__ */ a.jsx(pe, { "data-slot": "collapsible-content", ...e });
533
+ }
534
+ const Fe = ({ children: e, ...t }) => /* @__PURE__ */ a.jsx(wa, { ...t, children: e });
535
+ Fe.Trigger = Ta;
536
+ Fe.Content = Na;
537
+ function ka({ className: e, ...t }) {
538
+ return /* @__PURE__ */ a.jsx(
539
+ "div",
540
+ {
541
+ className: d(
542
+ "flex min-w-0 flex-1 flex-col items-center justify-center gap-6 rounded-lg border-dashed p-6 text-center text-balance md:p-12",
543
+ e
544
+ ),
545
+ "data-slot": "empty",
546
+ ...t
547
+ }
548
+ );
549
+ }
550
+ function _a({ className: e, ...t }) {
551
+ return /* @__PURE__ */ a.jsx(
552
+ "div",
553
+ {
554
+ className: d("flex max-w-sm flex-col items-center gap-2 text-center", e),
555
+ "data-slot": "empty-header",
556
+ ...t
557
+ }
558
+ );
559
+ }
560
+ const Aa = G(
561
+ "flex shrink-0 items-center justify-center mb-2 [&_svg]:pointer-events-none [&_svg]:shrink-0",
562
+ {
563
+ variants: {
564
+ variant: {
565
+ default: "bg-transparent",
566
+ icon: "bg-muted text-foreground flex size-10 shrink-0 items-center justify-center rounded-lg [&_svg:not([class*='size-'])]:size-6"
567
+ }
568
+ },
569
+ defaultVariants: {
570
+ variant: "default"
571
+ }
572
+ }
573
+ );
574
+ function Ra({
575
+ className: e,
576
+ variant: t = "default",
577
+ ...o
578
+ }) {
579
+ return /* @__PURE__ */ a.jsx(
580
+ "div",
581
+ {
582
+ className: d(Aa({ variant: t, className: e })),
583
+ "data-slot": "empty-icon",
584
+ "data-variant": t,
585
+ ...o
586
+ }
587
+ );
588
+ }
589
+ function Ea({ className: e, ...t }) {
590
+ return /* @__PURE__ */ a.jsx(
591
+ "div",
592
+ {
593
+ className: d("flex w-full max-w-sm min-w-0 flex-col items-center gap-4 text-sm text-balance", e),
594
+ "data-slot": "empty-content",
595
+ ...t
596
+ }
597
+ );
598
+ }
599
+ const $ = ({ children: e, ...t }) => /* @__PURE__ */ a.jsx(ka, { ...t, children: e }), Ia = ({ children: e, ...t }) => /* @__PURE__ */ a.jsx(St, { "data-slot": "empty-title", level: "3", weight: "medium", ...t, children: e }), Sa = ({ children: e, className: t, ...o }) => /* @__PURE__ */ a.jsx(
600
+ le,
601
+ {
602
+ className: d(
603
+ "text-muted-foreground [&>a:hover]:text-primary [&>a]:underline [&>a]:underline-offset-4",
604
+ t
605
+ ),
606
+ "data-slot": "empty-description",
607
+ size: "sm",
608
+ weight: "medium",
609
+ ...o,
610
+ children: e
611
+ }
612
+ );
613
+ $.Header = _a;
614
+ $.Media = Ra;
615
+ $.Content = Ea;
616
+ $.Title = Ia;
617
+ $.Description = Sa;
618
+ var Pa = "Separator", ye = "horizontal", Ma = ["horizontal", "vertical"], Ge = l.forwardRef((e, t) => {
619
+ const { decorative: o, orientation: r = ye, ...n } = e, s = Oa(r) ? r : ye, u = o ? { role: "none" } : { "aria-orientation": s === "vertical" ? s : void 0, role: "separator" };
620
+ return /* @__PURE__ */ a.jsx(
621
+ E.div,
622
+ {
623
+ "data-orientation": s,
624
+ ...u,
625
+ ...n,
626
+ ref: t
627
+ }
628
+ );
629
+ });
630
+ Ge.displayName = Pa;
631
+ function Oa(e) {
632
+ return Ma.includes(e);
633
+ }
634
+ var Da = Ge;
635
+ function $a({
636
+ className: e,
637
+ orientation: t = "horizontal",
638
+ decorative: o = !0,
639
+ ...r
640
+ }) {
641
+ return /* @__PURE__ */ a.jsx(
642
+ Da,
643
+ {
644
+ className: d(
645
+ "bg-border shrink-0 data-[orientation=horizontal]:h-px data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-px",
646
+ e
647
+ ),
648
+ "data-slot": "separator",
649
+ decorative: o,
650
+ orientation: t,
651
+ ...r
652
+ }
653
+ );
654
+ }
655
+ function dr({ className: e, ...t }) {
656
+ return /* @__PURE__ */ a.jsx("div", { className: d("group/item-group flex flex-col", e), "data-slot": "item-group", role: "list", ...t });
657
+ }
658
+ const za = G(
659
+ "group/item flex items-center border border-transparent text-sm rounded-md transition-colors [a]:hover:bg-accent/50 [a]:transition-colors duration-100 flex-wrap outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]",
660
+ {
661
+ variants: {
662
+ variant: {
663
+ default: "bg-transparent",
664
+ outline: "border-border",
665
+ muted: "bg-muted/50"
666
+ },
667
+ size: {
668
+ default: "p-4 gap-4 ",
669
+ sm: "py-3 px-4 gap-2.5"
670
+ }
671
+ },
672
+ defaultVariants: {
673
+ variant: "default",
674
+ size: "default"
675
+ }
676
+ }
677
+ );
678
+ function La({
679
+ className: e,
680
+ variant: t = "default",
681
+ size: o = "default",
682
+ asChild: r = !1,
683
+ ...n
684
+ }) {
685
+ const s = r ? re : "div";
686
+ return /* @__PURE__ */ a.jsx(
687
+ s,
688
+ {
689
+ className: d(za({ variant: t, size: o, className: e })),
690
+ "data-size": o,
691
+ "data-slot": "item",
692
+ "data-variant": t,
693
+ ...n
694
+ }
695
+ );
696
+ }
697
+ const Ha = G(
698
+ "flex shrink-0 items-center justify-center gap-2 group-has-[[data-slot=item-description]]/item:self-start [&_svg]:pointer-events-none group-has-[[data-slot=item-description]]/item:translate-y-0.5",
699
+ {
700
+ variants: {
701
+ variant: {
702
+ default: "bg-transparent",
703
+ icon: "size-8 border rounded-sm bg-muted [&_svg:not([class*='size-'])]:size-4",
704
+ image: "size-10 rounded-sm overflow-hidden [&_img]:size-full [&_img]:object-cover"
705
+ }
706
+ },
707
+ defaultVariants: {
708
+ variant: "default"
709
+ }
710
+ }
711
+ );
712
+ function Ba({
713
+ className: e,
714
+ variant: t = "default",
715
+ ...o
716
+ }) {
717
+ return /* @__PURE__ */ a.jsx(
718
+ "div",
719
+ {
720
+ className: d(Ha({ variant: t, className: e })),
721
+ "data-slot": "item-media",
722
+ "data-variant": t,
723
+ ...o
724
+ }
725
+ );
726
+ }
727
+ function Va({ className: e, ...t }) {
728
+ return /* @__PURE__ */ a.jsx(
729
+ "div",
730
+ {
731
+ className: d("flex flex-1 flex-col gap-1 [&+[data-slot=item-content]]:flex-none", e),
732
+ "data-slot": "item-content",
733
+ ...t
734
+ }
735
+ );
736
+ }
737
+ function Fa({ className: e, ...t }) {
738
+ return /* @__PURE__ */ a.jsx(
739
+ "div",
740
+ {
741
+ className: d("flex w-fit items-center gap-2 text-sm leading-snug font-medium", e),
742
+ "data-slot": "item-title",
743
+ ...t
744
+ }
745
+ );
746
+ }
747
+ function Ga({ className: e, ...t }) {
748
+ return /* @__PURE__ */ a.jsx(
749
+ "p",
750
+ {
751
+ className: d(
752
+ "text-muted-foreground line-clamp-2 text-sm leading-normal font-normal text-balance",
753
+ "[&>a:hover]:text-primary [&>a]:underline [&>a]:underline-offset-4",
754
+ e
755
+ ),
756
+ "data-slot": "item-description",
757
+ ...t
758
+ }
759
+ );
760
+ }
761
+ function qa({ className: e, ...t }) {
762
+ return /* @__PURE__ */ a.jsx("div", { className: d("flex items-center gap-2", e), "data-slot": "item-actions", ...t });
763
+ }
764
+ function Ka({ className: e, ...t }) {
765
+ return /* @__PURE__ */ a.jsx(
766
+ "div",
767
+ {
768
+ className: d("flex basis-full items-center justify-between gap-2", e),
769
+ "data-slot": "item-header",
770
+ ...t
771
+ }
772
+ );
773
+ }
774
+ function Ua({ className: e, ...t }) {
775
+ return /* @__PURE__ */ a.jsx(
776
+ "div",
777
+ {
778
+ className: d("flex basis-full items-center justify-between gap-2", e),
779
+ "data-slot": "item-footer",
780
+ ...t
781
+ }
782
+ );
783
+ }
784
+ const I = ({ children: e, ...t }) => /* @__PURE__ */ a.jsx(La, { ...t, children: e });
785
+ I.Header = Ka;
786
+ I.Media = Ba;
787
+ I.Content = Va;
788
+ I.Title = Fa;
789
+ I.Description = Ga;
790
+ I.Actions = qa;
791
+ I.Footer = Ua;
792
+ const qe = ({ children: e, ...t }) => /* @__PURE__ */ a.jsx(mt, { ...t, children: e });
793
+ qe.Trigger = ht;
794
+ qe.Content = gt;
795
+ function Wa({ className: e, ...t }) {
796
+ return /* @__PURE__ */ a.jsx("div", { className: "relative w-full overflow-x-auto", "data-slot": "table-container", children: /* @__PURE__ */ a.jsx("table", { className: d("w-full caption-bottom text-sm", e), "data-slot": "table", ...t }) });
797
+ }
798
+ function Ya({ className: e, ...t }) {
799
+ return /* @__PURE__ */ a.jsx("thead", { className: d("[&_tr]:border-b", e), "data-slot": "table-header", ...t });
800
+ }
801
+ function Xa({ className: e, ...t }) {
802
+ return /* @__PURE__ */ a.jsx("tbody", { className: d("[&_tr:last-child]:border-0", e), "data-slot": "table-body", ...t });
803
+ }
804
+ function Ja({ className: e, ...t }) {
805
+ return /* @__PURE__ */ a.jsx(
806
+ "tr",
807
+ {
808
+ className: d("border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted", e),
809
+ "data-slot": "table-row",
810
+ ...t
811
+ }
812
+ );
813
+ }
814
+ function Qa({ className: e, ...t }) {
815
+ return /* @__PURE__ */ a.jsx(
816
+ "th",
817
+ {
818
+ className: d(
819
+ "h-10 whitespace-nowrap px-2 text-left align-middle font-medium text-foreground [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]",
820
+ e
821
+ ),
822
+ "data-slot": "table-head",
823
+ ...t
824
+ }
825
+ );
826
+ }
827
+ function Za({ className: e, ...t }) {
828
+ return /* @__PURE__ */ a.jsx(
829
+ "td",
830
+ {
831
+ className: d(
832
+ "whitespace-nowrap p-2 align-middle [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]",
833
+ e
834
+ ),
835
+ "data-slot": "table-cell",
836
+ ...t
837
+ }
838
+ );
839
+ }
840
+ function eo({ className: e, ...t }) {
841
+ return /* @__PURE__ */ a.jsx("caption", { className: d("mt-4 text-muted-foreground text-sm", e), "data-slot": "table-caption", ...t });
842
+ }
843
+ const O = ({ children: e, ...t }) => /* @__PURE__ */ a.jsx(Wa, { ...t, children: e });
844
+ O.Body = Xa;
845
+ O.Caption = eo;
846
+ O.Cell = Za;
847
+ O.Head = Qa;
848
+ O.Header = Ya;
849
+ O.Row = Ja;
850
+ const to = ({
851
+ children: e,
852
+ className: t,
853
+ position: o = "outside",
854
+ type: r = "unordered",
855
+ variant: n = "muted",
856
+ ...s
857
+ }) => /* @__PURE__ */ a.jsx(
858
+ "ul",
859
+ {
860
+ className: d(
861
+ {
862
+ "list-decimal": r === "ordered",
863
+ "list-disc": r === "unordered",
864
+ "list-none": r === "none"
865
+ },
866
+ {
867
+ "list-inside": o === "inside",
868
+ "list-outside": o === "outside"
869
+ },
870
+ {
871
+ "ml-4": o === "outside" && r === "unordered",
872
+ "ml-6": o === "outside" && r === "ordered"
873
+ },
874
+ {
875
+ "marker:text-foreground": n === "default",
876
+ "marker:text-inherit": n === "inherit",
877
+ "marker:text-muted": n === "muted",
878
+ "marker:text-accent": n === "accent",
879
+ // Action colors
880
+ "marker:text-primary": n === "primary",
881
+ "marker:text-secondary": n === "secondary",
882
+ // Brand color
883
+ "marker:text-brand": n === "brand",
884
+ // Accent colors (rich color variants)
885
+ "marker:text-info": n === "info",
886
+ "marker:text-warning": n === "warning",
887
+ "marker:text-destructive": n === "destructive",
888
+ "marker:text-success": n === "success"
889
+ },
890
+ t
891
+ ),
892
+ ...s,
893
+ children: e
894
+ }
895
+ ), ao = ({ children: e, asChild: t, ...o }) => {
896
+ const r = t ? re : "li";
897
+ return /* @__PURE__ */ a.jsx(r, { role: "listitem", ...o, children: e });
898
+ };
899
+ to.Item = ao;
900
+ const Ce = [
901
+ {
902
+ theme: "light",
903
+ icon: /* @__PURE__ */ a.jsx(Ve, {}),
904
+ label: "Light mode"
905
+ },
906
+ {
907
+ theme: "dark",
908
+ icon: /* @__PURE__ */ a.jsx(Be, {}),
909
+ label: "Dark mode"
910
+ },
911
+ {
912
+ theme: "system",
913
+ icon: /* @__PURE__ */ a.jsx(Zt, {}),
914
+ label: "System theme"
915
+ }
916
+ ], oo = ({ theme: e, setTheme: t, className: o, buttonClassName: r, ...n }) => {
917
+ const s = () => {
918
+ t(e === "light" ? "dark" : e === "dark" ? "system" : "light");
919
+ }, i = Ce.find((c) => c.theme === e)?.icon, u = Ce.find((c) => c.theme === e)?.label;
920
+ return /* @__PURE__ */ a.jsx("span", { className: d(o), ...n, children: /* @__PURE__ */ a.jsxs(it, { className: d("p-1 w-full", r), onClick: s, variant: "unstyled", children: [
921
+ i,
922
+ /* @__PURE__ */ a.jsx(le, { size: "base", truncate: !0, children: u })
923
+ ] }) });
924
+ }, ro = ({
925
+ variant: e = "horizontal",
926
+ theme: t,
927
+ setTheme: o,
928
+ className: r,
929
+ buttonClassName: n,
930
+ ...s
931
+ }) => {
932
+ const i = (u) => t === u ? "text-primary/75" : "text-primary/25 hover:text-primary";
933
+ return e === "stacked" ? /* @__PURE__ */ a.jsx(
934
+ oo,
935
+ {
936
+ buttonClassName: n,
937
+ className: r,
938
+ setTheme: o,
939
+ theme: t,
940
+ ...s
941
+ }
942
+ ) : /* @__PURE__ */ a.jsxs(Ne, { gap: "4", children: [
943
+ /* @__PURE__ */ a.jsxs(C, { children: [
944
+ /* @__PURE__ */ a.jsx(C.Trigger, { children: /* @__PURE__ */ a.jsx(ta, { className: i("system"), onClick: () => o("system"), size: 32 }) }),
945
+ /* @__PURE__ */ a.jsx(C.Content, { children: "Use system theme" })
946
+ ] }),
947
+ /* @__PURE__ */ a.jsxs(C, { children: [
948
+ /* @__PURE__ */ a.jsx(C.Trigger, { children: /* @__PURE__ */ a.jsx(Ve, { className: i("light"), onClick: () => o("light"), size: 32 }) }),
949
+ /* @__PURE__ */ a.jsx(C.Content, { children: "Use light theme" })
950
+ ] }),
951
+ /* @__PURE__ */ a.jsxs(C, { children: [
952
+ /* @__PURE__ */ a.jsx(C.Trigger, { children: /* @__PURE__ */ a.jsx(Be, { className: i("dark"), onClick: () => o("dark"), size: 32 }) }),
953
+ /* @__PURE__ */ a.jsx(C.Content, { children: "Use dark theme" })
954
+ ] })
955
+ ] });
956
+ };
957
+ var [Y, ur] = ne("Tooltip", [
958
+ Te
959
+ ]), X = Te(), Ke = "TooltipProvider", no = 700, te = "tooltip.open", [so, be] = Y(Ke), Ue = (e) => {
960
+ const {
961
+ __scopeTooltip: t,
962
+ delayDuration: o = no,
963
+ skipDelayDuration: r = 300,
964
+ disableHoverableContent: n = !1,
965
+ children: s
966
+ } = e, i = l.useRef(!0), u = l.useRef(!1), c = l.useRef(0);
967
+ return l.useEffect(() => {
968
+ const x = c.current;
969
+ return () => window.clearTimeout(x);
970
+ }, []), /* @__PURE__ */ a.jsx(
971
+ so,
972
+ {
973
+ scope: t,
974
+ isOpenDelayedRef: i,
975
+ delayDuration: o,
976
+ onOpen: l.useCallback(() => {
977
+ window.clearTimeout(c.current), i.current = !1;
978
+ }, []),
979
+ onClose: l.useCallback(() => {
980
+ window.clearTimeout(c.current), c.current = window.setTimeout(
981
+ () => i.current = !0,
982
+ r
983
+ );
984
+ }, [r]),
985
+ isPointerInTransitRef: u,
986
+ onPointerInTransitChange: l.useCallback((x) => {
987
+ u.current = x;
988
+ }, []),
989
+ disableHoverableContent: n,
990
+ children: s
991
+ }
992
+ );
993
+ };
994
+ Ue.displayName = Ke;
995
+ var D = "Tooltip", [io, z] = Y(D), We = (e) => {
996
+ const {
997
+ __scopeTooltip: t,
998
+ children: o,
999
+ open: r,
1000
+ defaultOpen: n,
1001
+ onOpenChange: s,
1002
+ disableHoverableContent: i,
1003
+ delayDuration: u
1004
+ } = e, c = be(D, e.__scopeTooltip), x = X(t), [p, m] = l.useState(null), g = se(), h = l.useRef(0), v = i ?? c.disableHoverableContent, j = u ?? c.delayDuration, y = l.useRef(!1), [b, f] = q({
1005
+ prop: r,
1006
+ defaultProp: n ?? !1,
1007
+ onChange: (L) => {
1008
+ L ? (c.onOpen(), document.dispatchEvent(new CustomEvent(te))) : c.onClose(), s?.(L);
1009
+ },
1010
+ caller: D
1011
+ }), T = l.useMemo(() => b ? y.current ? "delayed-open" : "instant-open" : "closed", [b]), k = l.useCallback(() => {
1012
+ window.clearTimeout(h.current), h.current = 0, y.current = !1, f(!0);
1013
+ }, [f]), _ = l.useCallback(() => {
1014
+ window.clearTimeout(h.current), h.current = 0, f(!1);
1015
+ }, [f]), S = l.useCallback(() => {
1016
+ window.clearTimeout(h.current), h.current = window.setTimeout(() => {
1017
+ y.current = !0, f(!0), h.current = 0;
1018
+ }, j);
1019
+ }, [j, f]);
1020
+ return l.useEffect(() => () => {
1021
+ h.current && (window.clearTimeout(h.current), h.current = 0);
1022
+ }, []), /* @__PURE__ */ a.jsx(bt, { ...x, children: /* @__PURE__ */ a.jsx(
1023
+ io,
1024
+ {
1025
+ scope: t,
1026
+ contentId: g,
1027
+ open: b,
1028
+ stateAttribute: T,
1029
+ trigger: p,
1030
+ onTriggerChange: m,
1031
+ onTriggerEnter: l.useCallback(() => {
1032
+ c.isOpenDelayedRef.current ? S() : k();
1033
+ }, [c.isOpenDelayedRef, S, k]),
1034
+ onTriggerLeave: l.useCallback(() => {
1035
+ v ? _() : (window.clearTimeout(h.current), h.current = 0);
1036
+ }, [_, v]),
1037
+ onOpen: k,
1038
+ onClose: _,
1039
+ disableHoverableContent: v,
1040
+ children: o
1041
+ }
1042
+ ) });
1043
+ };
1044
+ We.displayName = D;
1045
+ var ae = "TooltipTrigger", Ye = l.forwardRef(
1046
+ (e, t) => {
1047
+ const { __scopeTooltip: o, ...r } = e, n = z(ae, o), s = be(ae, o), i = X(o), u = l.useRef(null), c = F(t, u, n.onTriggerChange), x = l.useRef(!1), p = l.useRef(!1), m = l.useCallback(() => x.current = !1, []);
1048
+ return l.useEffect(() => () => document.removeEventListener("pointerup", m), [m]), /* @__PURE__ */ a.jsx(vt, { asChild: !0, ...i, children: /* @__PURE__ */ a.jsx(
1049
+ E.button,
1050
+ {
1051
+ "aria-describedby": n.open ? n.contentId : void 0,
1052
+ "data-state": n.stateAttribute,
1053
+ ...r,
1054
+ ref: c,
1055
+ onPointerMove: A(e.onPointerMove, (g) => {
1056
+ g.pointerType !== "touch" && !p.current && !s.isPointerInTransitRef.current && (n.onTriggerEnter(), p.current = !0);
1057
+ }),
1058
+ onPointerLeave: A(e.onPointerLeave, () => {
1059
+ n.onTriggerLeave(), p.current = !1;
1060
+ }),
1061
+ onPointerDown: A(e.onPointerDown, () => {
1062
+ n.open && n.onClose(), x.current = !0, document.addEventListener("pointerup", m, { once: !0 });
1063
+ }),
1064
+ onFocus: A(e.onFocus, () => {
1065
+ x.current || n.onOpen();
1066
+ }),
1067
+ onBlur: A(e.onBlur, n.onClose),
1068
+ onClick: A(e.onClick, n.onClose)
1069
+ }
1070
+ ) });
1071
+ }
1072
+ );
1073
+ Ye.displayName = ae;
1074
+ var ve = "TooltipPortal", [lo, co] = Y(ve, {
1075
+ forceMount: void 0
1076
+ }), Xe = (e) => {
1077
+ const { __scopeTooltip: t, forceMount: o, children: r, container: n } = e, s = z(ve, t);
1078
+ return /* @__PURE__ */ a.jsx(lo, { scope: t, forceMount: o, children: /* @__PURE__ */ a.jsx(ie, { present: o || s.open, children: /* @__PURE__ */ a.jsx(jt, { asChild: !0, container: n, children: r }) }) });
1079
+ };
1080
+ Xe.displayName = ve;
1081
+ var P = "TooltipContent", Je = l.forwardRef(
1082
+ (e, t) => {
1083
+ const o = co(P, e.__scopeTooltip), { forceMount: r = o.forceMount, side: n = "top", ...s } = e, i = z(P, e.__scopeTooltip);
1084
+ return /* @__PURE__ */ a.jsx(ie, { present: r || i.open, children: i.disableHoverableContent ? /* @__PURE__ */ a.jsx(Qe, { side: n, ...s, ref: t }) : /* @__PURE__ */ a.jsx(uo, { side: n, ...s, ref: t }) });
1085
+ }
1086
+ ), uo = l.forwardRef((e, t) => {
1087
+ const o = z(P, e.__scopeTooltip), r = be(P, e.__scopeTooltip), n = l.useRef(null), s = F(t, n), [i, u] = l.useState(null), { trigger: c, onClose: x } = o, p = n.current, { onPointerInTransitChange: m } = r, g = l.useCallback(() => {
1088
+ u(null), m(!1);
1089
+ }, [m]), h = l.useCallback(
1090
+ (v, j) => {
1091
+ const y = v.currentTarget, b = { x: v.clientX, y: v.clientY }, f = mo(b, y.getBoundingClientRect()), T = ho(b, f), k = go(j.getBoundingClientRect()), _ = vo([...T, ...k]);
1092
+ u(_), m(!0);
1093
+ },
1094
+ [m]
1095
+ );
1096
+ return l.useEffect(() => () => g(), [g]), l.useEffect(() => {
1097
+ if (c && p) {
1098
+ const v = (y) => h(y, p), j = (y) => h(y, c);
1099
+ return c.addEventListener("pointerleave", v), p.addEventListener("pointerleave", j), () => {
1100
+ c.removeEventListener("pointerleave", v), p.removeEventListener("pointerleave", j);
1101
+ };
1102
+ }
1103
+ }, [c, p, h, g]), l.useEffect(() => {
1104
+ if (i) {
1105
+ const v = (j) => {
1106
+ const y = j.target, b = { x: j.clientX, y: j.clientY }, f = c?.contains(y) || p?.contains(y), T = !bo(b, i);
1107
+ f ? g() : T && (g(), x());
1108
+ };
1109
+ return document.addEventListener("pointermove", v), () => document.removeEventListener("pointermove", v);
1110
+ }
1111
+ }, [c, p, i, x, g]), /* @__PURE__ */ a.jsx(Qe, { ...e, ref: s });
1112
+ }), [po, fo] = Y(D, { isInside: !1 }), xo = lt("TooltipContent"), Qe = l.forwardRef(
1113
+ (e, t) => {
1114
+ const {
1115
+ __scopeTooltip: o,
1116
+ children: r,
1117
+ "aria-label": n,
1118
+ onEscapeKeyDown: s,
1119
+ onPointerDownOutside: i,
1120
+ ...u
1121
+ } = e, c = z(P, o), x = X(o), { onClose: p } = c;
1122
+ return l.useEffect(() => (document.addEventListener(te, p), () => document.removeEventListener(te, p)), [p]), l.useEffect(() => {
1123
+ if (c.trigger) {
1124
+ const m = (g) => {
1125
+ g.target?.contains(c.trigger) && p();
1126
+ };
1127
+ return window.addEventListener("scroll", m, { capture: !0 }), () => window.removeEventListener("scroll", m, { capture: !0 });
1128
+ }
1129
+ }, [c.trigger, p]), /* @__PURE__ */ a.jsx(
1130
+ Ct,
1131
+ {
1132
+ asChild: !0,
1133
+ disableOutsidePointerEvents: !1,
1134
+ onEscapeKeyDown: s,
1135
+ onPointerDownOutside: i,
1136
+ onFocusOutside: (m) => m.preventDefault(),
1137
+ onDismiss: p,
1138
+ children: /* @__PURE__ */ a.jsxs(
1139
+ wt,
1140
+ {
1141
+ "data-state": c.stateAttribute,
1142
+ ...x,
1143
+ ...u,
1144
+ ref: t,
1145
+ style: {
1146
+ ...u.style,
1147
+ "--radix-tooltip-content-transform-origin": "var(--radix-popper-transform-origin)",
1148
+ "--radix-tooltip-content-available-width": "var(--radix-popper-available-width)",
1149
+ "--radix-tooltip-content-available-height": "var(--radix-popper-available-height)",
1150
+ "--radix-tooltip-trigger-width": "var(--radix-popper-anchor-width)",
1151
+ "--radix-tooltip-trigger-height": "var(--radix-popper-anchor-height)"
1152
+ },
1153
+ children: [
1154
+ /* @__PURE__ */ a.jsx(xo, { children: r }),
1155
+ /* @__PURE__ */ a.jsx(po, { scope: o, isInside: !0, children: /* @__PURE__ */ a.jsx(Tt, { id: c.contentId, role: "tooltip", children: n || r }) })
1156
+ ]
1157
+ }
1158
+ )
1159
+ }
1160
+ );
1161
+ }
1162
+ );
1163
+ Je.displayName = P;
1164
+ var Ze = "TooltipArrow", et = l.forwardRef(
1165
+ (e, t) => {
1166
+ const { __scopeTooltip: o, ...r } = e, n = X(o);
1167
+ return fo(
1168
+ Ze,
1169
+ o
1170
+ ).isInside ? null : /* @__PURE__ */ a.jsx(yt, { ...n, ...r, ref: t });
1171
+ }
1172
+ );
1173
+ et.displayName = Ze;
1174
+ function mo(e, t) {
1175
+ const o = Math.abs(t.top - e.y), r = Math.abs(t.bottom - e.y), n = Math.abs(t.right - e.x), s = Math.abs(t.left - e.x);
1176
+ switch (Math.min(o, r, n, s)) {
1177
+ case s:
1178
+ return "left";
1179
+ case n:
1180
+ return "right";
1181
+ case o:
1182
+ return "top";
1183
+ case r:
1184
+ return "bottom";
1185
+ default:
1186
+ throw new Error("unreachable");
1187
+ }
1188
+ }
1189
+ function ho(e, t, o = 5) {
1190
+ const r = [];
1191
+ switch (t) {
1192
+ case "top":
1193
+ r.push(
1194
+ { x: e.x - o, y: e.y + o },
1195
+ { x: e.x + o, y: e.y + o }
1196
+ );
1197
+ break;
1198
+ case "bottom":
1199
+ r.push(
1200
+ { x: e.x - o, y: e.y - o },
1201
+ { x: e.x + o, y: e.y - o }
1202
+ );
1203
+ break;
1204
+ case "left":
1205
+ r.push(
1206
+ { x: e.x + o, y: e.y - o },
1207
+ { x: e.x + o, y: e.y + o }
1208
+ );
1209
+ break;
1210
+ case "right":
1211
+ r.push(
1212
+ { x: e.x - o, y: e.y - o },
1213
+ { x: e.x - o, y: e.y + o }
1214
+ );
1215
+ break;
1216
+ }
1217
+ return r;
1218
+ }
1219
+ function go(e) {
1220
+ const { top: t, right: o, bottom: r, left: n } = e;
1221
+ return [
1222
+ { x: n, y: t },
1223
+ { x: o, y: t },
1224
+ { x: o, y: r },
1225
+ { x: n, y: r }
1226
+ ];
1227
+ }
1228
+ function bo(e, t) {
1229
+ const { x: o, y: r } = e;
1230
+ let n = !1;
1231
+ for (let s = 0, i = t.length - 1; s < t.length; i = s++) {
1232
+ const u = t[s], c = t[i], x = u.x, p = u.y, m = c.x, g = c.y;
1233
+ p > r != g > r && o < (m - x) * (r - p) / (g - p) + x && (n = !n);
1234
+ }
1235
+ return n;
1236
+ }
1237
+ function vo(e) {
1238
+ const t = e.slice();
1239
+ return t.sort((o, r) => o.x < r.x ? -1 : o.x > r.x ? 1 : o.y < r.y ? -1 : o.y > r.y ? 1 : 0), jo(t);
1240
+ }
1241
+ function jo(e) {
1242
+ if (e.length <= 1) return e.slice();
1243
+ const t = [];
1244
+ for (let r = 0; r < e.length; r++) {
1245
+ const n = e[r];
1246
+ for (; t.length >= 2; ) {
1247
+ const s = t[t.length - 1], i = t[t.length - 2];
1248
+ if ((s.x - i.x) * (n.y - i.y) >= (s.y - i.y) * (n.x - i.x)) t.pop();
1249
+ else break;
1250
+ }
1251
+ t.push(n);
1252
+ }
1253
+ t.pop();
1254
+ const o = [];
1255
+ for (let r = e.length - 1; r >= 0; r--) {
1256
+ const n = e[r];
1257
+ for (; o.length >= 2; ) {
1258
+ const s = o[o.length - 1], i = o[o.length - 2];
1259
+ if ((s.x - i.x) * (n.y - i.y) >= (s.y - i.y) * (n.x - i.x)) o.pop();
1260
+ else break;
1261
+ }
1262
+ o.push(n);
1263
+ }
1264
+ return o.pop(), t.length === 1 && o.length === 1 && t[0].x === o[0].x && t[0].y === o[0].y ? t : t.concat(o);
1265
+ }
1266
+ var yo = Ue, Co = We, wo = Ye, To = Xe, No = Je, ko = et;
1267
+ function je({ delayDuration: e = 0, ...t }) {
1268
+ return /* @__PURE__ */ a.jsx(yo, { "data-slot": "tooltip-provider", delayDuration: e, ...t });
1269
+ }
1270
+ function tt({ ...e }) {
1271
+ return /* @__PURE__ */ a.jsx(je, { children: /* @__PURE__ */ a.jsx(Co, { "data-slot": "tooltip", ...e }) });
1272
+ }
1273
+ function at({ ...e }) {
1274
+ return /* @__PURE__ */ a.jsx(wo, { "data-slot": "tooltip-trigger", ...e });
1275
+ }
1276
+ function ot({
1277
+ className: e,
1278
+ sideOffset: t = 0,
1279
+ children: o,
1280
+ ...r
1281
+ }) {
1282
+ return /* @__PURE__ */ a.jsx(To, { children: /* @__PURE__ */ a.jsxs(
1283
+ No,
1284
+ {
1285
+ className: d(
1286
+ "bg-foreground text-background animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-fit origin-(--radix-tooltip-content-transform-origin) rounded-md px-3 py-1.5 text-xs text-balance",
1287
+ e
1288
+ ),
1289
+ "data-slot": "tooltip-content",
1290
+ sideOffset: t,
1291
+ ...r,
1292
+ children: [
1293
+ o,
1294
+ /* @__PURE__ */ a.jsx(ko, { className: "bg-foreground fill-foreground z-50 size-2.5 translate-y-[calc(-50%_-_2px)] rotate-45 rounded-[2px]" })
1295
+ ]
1296
+ }
1297
+ ) });
1298
+ }
1299
+ const C = ({ children: e, open: t, onOpenChange: o }) => /* @__PURE__ */ a.jsx(je, { children: /* @__PURE__ */ a.jsx(tt, { onOpenChange: o, open: t, children: e }) }), _o = ({ children: e, cursor: t = "pointer", className: o }) => /* @__PURE__ */ a.jsx(
1300
+ at,
1301
+ {
1302
+ asChild: !0,
1303
+ className: d(
1304
+ t === "arrow" && "cursor-default",
1305
+ t === "pointer" && "cursor-pointer",
1306
+ t === "text" && "cursor-text",
1307
+ t === "not-allowed" && "cursor-not-allowed",
1308
+ o
1309
+ ),
1310
+ children: e
1311
+ }
1312
+ ), Ao = ({ className: e, children: t }) => /* @__PURE__ */ a.jsx(ot, { className: e, children: t });
1313
+ C.Trigger = _o;
1314
+ C.Content = Ao;
1315
+ const pr = ({ children: e, content: t }) => /* @__PURE__ */ a.jsxs(C, { children: [
1316
+ /* @__PURE__ */ a.jsx(C.Trigger, { children: typeof e == "string" ? /* @__PURE__ */ a.jsx("span", { children: e }) : e }),
1317
+ /* @__PURE__ */ a.jsx(C.Content, { children: t })
1318
+ ] });
1319
+ function Ro({ ...e }) {
1320
+ return /* @__PURE__ */ a.jsx(Nt, { "data-slot": "sheet", ...e });
1321
+ }
1322
+ function Eo({ ...e }) {
1323
+ return /* @__PURE__ */ a.jsx(Et, { "data-slot": "sheet-portal", ...e });
1324
+ }
1325
+ function Io({ className: e, ...t }) {
1326
+ return /* @__PURE__ */ a.jsx(
1327
+ It,
1328
+ {
1329
+ className: d(
1330
+ "data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50",
1331
+ e
1332
+ ),
1333
+ "data-slot": "sheet-overlay",
1334
+ ...t
1335
+ }
1336
+ );
1337
+ }
1338
+ function So({
1339
+ className: e,
1340
+ children: t,
1341
+ side: o = "right",
1342
+ ...r
1343
+ }) {
1344
+ return /* @__PURE__ */ a.jsxs(Eo, { children: [
1345
+ /* @__PURE__ */ a.jsx(Io, {}),
1346
+ /* @__PURE__ */ a.jsxs(
1347
+ kt,
1348
+ {
1349
+ className: d(
1350
+ "bg-background data-[state=open]:animate-in data-[state=closed]:animate-out fixed z-50 flex flex-col gap-4 shadow-lg transition ease-in-out data-[state=closed]:duration-300 data-[state=open]:duration-500",
1351
+ o === "right" && "data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right inset-y-0 right-0 h-full w-3/4 border-l sm:max-w-sm",
1352
+ o === "left" && "data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left inset-y-0 left-0 h-full w-3/4 border-r sm:max-w-sm",
1353
+ o === "top" && "data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top inset-x-0 top-0 h-auto border-b",
1354
+ o === "bottom" && "data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom inset-x-0 bottom-0 h-auto border-t",
1355
+ e
1356
+ ),
1357
+ "data-slot": "sheet-content",
1358
+ ...r,
1359
+ children: [
1360
+ t,
1361
+ /* @__PURE__ */ a.jsxs(_t, { className: "ring-offset-background focus:ring-ring data-[state=open]:bg-secondary absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none", children: [
1362
+ /* @__PURE__ */ a.jsx(ua, { className: "size-4" }),
1363
+ /* @__PURE__ */ a.jsx("span", { className: "sr-only", children: "Close" })
1364
+ ] })
1365
+ ]
1366
+ }
1367
+ )
1368
+ ] });
1369
+ }
1370
+ function Po({ className: e, ...t }) {
1371
+ return /* @__PURE__ */ a.jsx("div", { className: d("flex flex-col gap-1.5 p-4", e), "data-slot": "sheet-header", ...t });
1372
+ }
1373
+ function Mo({ className: e, ...t }) {
1374
+ return /* @__PURE__ */ a.jsx(
1375
+ At,
1376
+ {
1377
+ className: d("text-foreground font-semibold", e),
1378
+ "data-slot": "sheet-title",
1379
+ ...t
1380
+ }
1381
+ );
1382
+ }
1383
+ function Oo({ className: e, ...t }) {
1384
+ return /* @__PURE__ */ a.jsx(
1385
+ Rt,
1386
+ {
1387
+ className: d("text-muted-foreground text-sm", e),
1388
+ "data-slot": "sheet-description",
1389
+ ...t
1390
+ }
1391
+ );
1392
+ }
1393
+ const Z = 768;
1394
+ function Do() {
1395
+ const [e, t] = l.useState(void 0);
1396
+ return l.useEffect(() => {
1397
+ const o = window.matchMedia(`(max-width: ${Z - 1}px)`), r = () => {
1398
+ t(window.innerWidth < Z);
1399
+ };
1400
+ return o.addEventListener("change", r), t(window.innerWidth < Z), () => o.removeEventListener("change", r);
1401
+ }, []), !!e;
1402
+ }
1403
+ const $o = "sidebar_state", zo = 60 * 60 * 24 * 7, Lo = "16rem", Ho = "18rem", Bo = "3rem", Vo = "b", rt = l.createContext(null);
1404
+ function J() {
1405
+ const e = l.useContext(rt);
1406
+ if (!e)
1407
+ throw new Error("useSidebar must be used within a SidebarProvider.");
1408
+ return e;
1409
+ }
1410
+ function Fo({
1411
+ defaultOpen: e = !0,
1412
+ open: t,
1413
+ onOpenChange: o,
1414
+ className: r,
1415
+ style: n,
1416
+ children: s,
1417
+ ...i
1418
+ }) {
1419
+ const u = Do(), [c, x] = l.useState(!1), [p, m] = l.useState(e), g = t ?? p, h = l.useCallback(
1420
+ (b) => {
1421
+ const f = typeof b == "function" ? b(g) : b;
1422
+ o ? o(f) : m(f), document.cookie = `${$o}=${f}; path=/; max-age=${zo}`;
1423
+ },
1424
+ [o, g]
1425
+ ), v = l.useCallback(() => u ? x((b) => !b) : h((b) => !b), [u, h]);
1426
+ l.useEffect(() => {
1427
+ const b = (f) => {
1428
+ f.key === Vo && (f.metaKey || f.ctrlKey) && (f.preventDefault(), v());
1429
+ };
1430
+ return window.addEventListener("keydown", b), () => window.removeEventListener("keydown", b);
1431
+ }, [v]);
1432
+ const j = g ? "expanded" : "collapsed", y = l.useMemo(
1433
+ () => ({
1434
+ state: j,
1435
+ open: g,
1436
+ setOpen: h,
1437
+ isMobile: u,
1438
+ openMobile: c,
1439
+ setOpenMobile: x,
1440
+ toggleSidebar: v
1441
+ }),
1442
+ [j, g, h, u, c, v]
1443
+ );
1444
+ return /* @__PURE__ */ a.jsx(rt.Provider, { value: y, children: /* @__PURE__ */ a.jsx(je, { delayDuration: 0, children: /* @__PURE__ */ a.jsx(
1445
+ "div",
1446
+ {
1447
+ className: d("group/sidebar-wrapper has-data-[variant=inset]:bg-sidebar flex min-h-svh w-full", r),
1448
+ "data-slot": "sidebar-wrapper",
1449
+ style: {
1450
+ "--sidebar-width": Lo,
1451
+ "--sidebar-width-icon": Bo,
1452
+ ...n
1453
+ },
1454
+ ...i,
1455
+ children: s
1456
+ }
1457
+ ) }) });
1458
+ }
1459
+ function Go({
1460
+ side: e = "left",
1461
+ variant: t = "sidebar",
1462
+ collapsible: o = "offcanvas",
1463
+ className: r,
1464
+ children: n,
1465
+ ...s
1466
+ }) {
1467
+ const { isMobile: i, state: u, openMobile: c, setOpenMobile: x } = J();
1468
+ return o === "none" ? /* @__PURE__ */ a.jsx(
1469
+ "div",
1470
+ {
1471
+ className: d("bg-sidebar text-sidebar-foreground flex h-full w-(--sidebar-width) flex-col", r),
1472
+ "data-slot": "sidebar",
1473
+ ...s,
1474
+ children: n
1475
+ }
1476
+ ) : i ? /* @__PURE__ */ a.jsx(Ro, { onOpenChange: x, open: c, ...s, children: /* @__PURE__ */ a.jsxs(
1477
+ So,
1478
+ {
1479
+ className: "bg-sidebar text-sidebar-foreground w-(--sidebar-width) p-0 [&>button]:hidden",
1480
+ "data-mobile": "true",
1481
+ "data-sidebar": "sidebar",
1482
+ "data-slot": "sidebar",
1483
+ side: e,
1484
+ style: {
1485
+ "--sidebar-width": Ho
1486
+ },
1487
+ children: [
1488
+ /* @__PURE__ */ a.jsxs(Po, { className: "sr-only", children: [
1489
+ /* @__PURE__ */ a.jsx(Mo, { children: "Sidebar" }),
1490
+ /* @__PURE__ */ a.jsx(Oo, { children: "Displays the mobile sidebar." })
1491
+ ] }),
1492
+ /* @__PURE__ */ a.jsx("div", { className: "flex h-full w-full flex-col", children: n })
1493
+ ]
1494
+ }
1495
+ ) }) : /* @__PURE__ */ a.jsxs(
1496
+ "div",
1497
+ {
1498
+ className: "group peer text-sidebar-foreground hidden md:block",
1499
+ "data-collapsible": u === "collapsed" ? o : "",
1500
+ "data-side": e,
1501
+ "data-slot": "sidebar",
1502
+ "data-state": u,
1503
+ "data-variant": t,
1504
+ children: [
1505
+ /* @__PURE__ */ a.jsx(
1506
+ "div",
1507
+ {
1508
+ className: d(
1509
+ "relative w-(--sidebar-width) bg-transparent transition-[width] duration-200 ease-linear",
1510
+ "group-data-[collapsible=offcanvas]:w-0",
1511
+ "group-data-[side=right]:rotate-180",
1512
+ t === "floating" || t === "inset" ? "group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4)))]" : "group-data-[collapsible=icon]:w-(--sidebar-width-icon)"
1513
+ ),
1514
+ "data-slot": "sidebar-gap"
1515
+ }
1516
+ ),
1517
+ /* @__PURE__ */ a.jsx(
1518
+ "div",
1519
+ {
1520
+ className: d(
1521
+ "fixed inset-y-0 z-10 hidden h-svh w-(--sidebar-width) transition-[left,right,width] duration-200 ease-linear md:flex",
1522
+ e === "left" ? "left-0 group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)]" : "right-0 group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)]",
1523
+ // Adjust the padding for floating and inset variants.
1524
+ t === "floating" || t === "inset" ? "p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4))+2px)]" : "group-data-[collapsible=icon]:w-(--sidebar-width-icon) group-data-[side=left]:border-r group-data-[side=right]:border-l",
1525
+ r
1526
+ ),
1527
+ "data-slot": "sidebar-container",
1528
+ ...s,
1529
+ children: /* @__PURE__ */ a.jsx(
1530
+ "div",
1531
+ {
1532
+ className: "bg-sidebar group-data-[variant=floating]:border-sidebar-border flex h-full w-full flex-col group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:border group-data-[variant=floating]:shadow-sm",
1533
+ "data-sidebar": "sidebar",
1534
+ "data-slot": "sidebar-inner",
1535
+ children: n
1536
+ }
1537
+ )
1538
+ }
1539
+ )
1540
+ ]
1541
+ }
1542
+ );
1543
+ }
1544
+ function qo({ className: e, onClick: t, children: o, ...r }) {
1545
+ const { toggleSidebar: n, open: s } = J();
1546
+ return /* @__PURE__ */ a.jsxs(
1547
+ ct,
1548
+ {
1549
+ className: d("size-7", e),
1550
+ "data-sidebar": "trigger",
1551
+ "data-slot": "sidebar-trigger",
1552
+ onClick: (i) => {
1553
+ t?.(i), n();
1554
+ },
1555
+ size: "icon",
1556
+ variant: "ghost",
1557
+ ...r,
1558
+ children: [
1559
+ s ? /* @__PURE__ */ a.jsx(sa, {}) : /* @__PURE__ */ a.jsx(ra, {}),
1560
+ /* @__PURE__ */ a.jsx("span", { className: "sr-only", children: "Toggle Sidebar" }),
1561
+ s ? o : null
1562
+ ]
1563
+ }
1564
+ );
1565
+ }
1566
+ function Ko({ className: e, ...t }) {
1567
+ const { toggleSidebar: o } = J();
1568
+ return /* @__PURE__ */ a.jsx(
1569
+ "button",
1570
+ {
1571
+ "aria-label": "Toggle Sidebar",
1572
+ className: d(
1573
+ "hover:after:bg-sidebar-border absolute inset-y-0 z-20 hidden w-4 -translate-x-1/2 transition-all ease-linear group-data-[side=left]:-right-4 group-data-[side=right]:left-0 after:absolute after:inset-y-0 after:left-1/2 after:w-[2px] sm:flex",
1574
+ "in-data-[side=left]:cursor-w-resize in-data-[side=right]:cursor-e-resize",
1575
+ "[[data-side=left][data-state=collapsed]_&]:cursor-e-resize [[data-side=right][data-state=collapsed]_&]:cursor-w-resize",
1576
+ "hover:group-data-[collapsible=offcanvas]:bg-sidebar group-data-[collapsible=offcanvas]:translate-x-0 group-data-[collapsible=offcanvas]:after:left-full",
1577
+ "[[data-side=left][data-collapsible=offcanvas]_&]:-right-2",
1578
+ "[[data-side=right][data-collapsible=offcanvas]_&]:-left-2",
1579
+ e
1580
+ ),
1581
+ "data-sidebar": "rail",
1582
+ "data-slot": "sidebar-rail",
1583
+ onClick: o,
1584
+ tabIndex: -1,
1585
+ title: "Toggle Sidebar",
1586
+ ...t
1587
+ }
1588
+ );
1589
+ }
1590
+ function Uo({ className: e, ...t }) {
1591
+ return /* @__PURE__ */ a.jsx(
1592
+ "main",
1593
+ {
1594
+ className: d(
1595
+ "bg-background relative flex w-full flex-1 flex-col",
1596
+ "md:peer-data-[variant=inset]:m-2 md:peer-data-[variant=inset]:ml-0 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow-sm md:peer-data-[variant=inset]:peer-data-[state=collapsed]:ml-2",
1597
+ e
1598
+ ),
1599
+ "data-slot": "sidebar-inset",
1600
+ ...t
1601
+ }
1602
+ );
1603
+ }
1604
+ function Wo({ className: e, ...t }) {
1605
+ return /* @__PURE__ */ a.jsx(
1606
+ "div",
1607
+ {
1608
+ className: d("flex flex-col gap-2 p-2", e),
1609
+ "data-sidebar": "header",
1610
+ "data-slot": "sidebar-header",
1611
+ ...t
1612
+ }
1613
+ );
1614
+ }
1615
+ function Yo({ className: e, ...t }) {
1616
+ return /* @__PURE__ */ a.jsx(
1617
+ "div",
1618
+ {
1619
+ className: d("flex flex-col gap-2 p-2", e),
1620
+ "data-sidebar": "footer",
1621
+ "data-slot": "sidebar-footer",
1622
+ ...t
1623
+ }
1624
+ );
1625
+ }
1626
+ function nt({ className: e, ...t }) {
1627
+ return /* @__PURE__ */ a.jsx(
1628
+ $a,
1629
+ {
1630
+ className: d("bg-sidebar-border mx-2 w-auto", e),
1631
+ "data-sidebar": "separator",
1632
+ "data-slot": "sidebar-separator",
1633
+ ...t
1634
+ }
1635
+ );
1636
+ }
1637
+ function Xo({ className: e, ...t }) {
1638
+ return /* @__PURE__ */ a.jsx(
1639
+ "div",
1640
+ {
1641
+ className: d(
1642
+ "flex min-h-0 flex-1 flex-col gap-2 overflow-auto group-data-[collapsible=icon]:overflow-hidden",
1643
+ e
1644
+ ),
1645
+ "data-sidebar": "content",
1646
+ "data-slot": "sidebar-content",
1647
+ ...t
1648
+ }
1649
+ );
1650
+ }
1651
+ function Jo({ className: e, ...t }) {
1652
+ return /* @__PURE__ */ a.jsx(
1653
+ "div",
1654
+ {
1655
+ className: d("relative flex w-full min-w-0 flex-col p-2", e),
1656
+ "data-sidebar": "group",
1657
+ "data-slot": "sidebar-group",
1658
+ ...t
1659
+ }
1660
+ );
1661
+ }
1662
+ function Qo({ className: e, ...t }) {
1663
+ return /* @__PURE__ */ a.jsx(
1664
+ "div",
1665
+ {
1666
+ className: d("w-full text-sm", e),
1667
+ "data-sidebar": "group-content",
1668
+ "data-slot": "sidebar-group-content",
1669
+ ...t
1670
+ }
1671
+ );
1672
+ }
1673
+ function oe({ className: e, ...t }) {
1674
+ return /* @__PURE__ */ a.jsx(
1675
+ "ul",
1676
+ {
1677
+ className: d("flex w-full min-w-0 flex-col gap-1", e),
1678
+ "data-sidebar": "menu",
1679
+ "data-slot": "sidebar-menu",
1680
+ ...t
1681
+ }
1682
+ );
1683
+ }
1684
+ function H({ className: e, ...t }) {
1685
+ return /* @__PURE__ */ a.jsx(
1686
+ "li",
1687
+ {
1688
+ className: d("group/menu-item relative", e),
1689
+ "data-sidebar": "menu-item",
1690
+ "data-slot": "sidebar-menu-item",
1691
+ ...t
1692
+ }
1693
+ );
1694
+ }
1695
+ const Zo = G(
1696
+ "peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left text-sm outline-hidden ring-sidebar-ring transition-[width,height,padding] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 group-has-data-[sidebar=menu-action]/menu-item:pr-8 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:bg-sidebar-accent data-[active=true]:font-medium data-[active=true]:text-sidebar-accent-foreground data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground group-data-[collapsible=icon]:size-8! group-data-[collapsible=icon]:p-2! [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0",
1697
+ {
1698
+ variants: {
1699
+ variant: {
1700
+ default: "hover:bg-sidebar-accent hover:text-sidebar-accent-foreground",
1701
+ outline: "bg-background shadow-[0_0_0_1px_hsl(var(--sidebar-border))] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground hover:shadow-[0_0_0_1px_hsl(var(--sidebar-accent))]"
1702
+ },
1703
+ size: {
1704
+ default: "h-8 text-sm",
1705
+ sm: "h-7 text-xs",
1706
+ lg: "h-12 text-sm group-data-[collapsible=icon]:p-0!"
1707
+ }
1708
+ },
1709
+ defaultVariants: {
1710
+ variant: "default",
1711
+ size: "default"
1712
+ }
1713
+ }
1714
+ );
1715
+ function B({
1716
+ asChild: e = !1,
1717
+ isActive: t = !1,
1718
+ variant: o = "default",
1719
+ size: r = "default",
1720
+ tooltip: n,
1721
+ className: s,
1722
+ ...i
1723
+ }) {
1724
+ const u = e ? re : "button", { isMobile: c, state: x } = J(), p = /* @__PURE__ */ a.jsx(
1725
+ u,
1726
+ {
1727
+ className: d(Zo({ variant: o, size: r }), s),
1728
+ "data-active": t,
1729
+ "data-sidebar": "menu-button",
1730
+ "data-size": r,
1731
+ "data-slot": "sidebar-menu-button",
1732
+ ...i
1733
+ }
1734
+ );
1735
+ return n ? (typeof n == "string" && (n = {
1736
+ children: n
1737
+ }), /* @__PURE__ */ a.jsxs(tt, { children: [
1738
+ /* @__PURE__ */ a.jsx(at, { asChild: !0, children: p }),
1739
+ /* @__PURE__ */ a.jsx(ot, { align: "center", hidden: x !== "collapsed" || c, side: "right", ...n })
1740
+ ] })) : p;
1741
+ }
1742
+ const st = ({ children: e }) => /* @__PURE__ */ a.jsx(le, { size: "base", truncate: !0, children: e }), er = ({ itemSet: e, activeSlug: t }) => /* @__PURE__ */ a.jsx(a.Fragment, { children: e.links.map((o) => /* @__PURE__ */ a.jsx(H, { className: "hover:cursor-pointer", onClick: o.onClick, children: /* @__PURE__ */ a.jsx(B, { asChild: !0, isActive: t === o.slug, children: /* @__PURE__ */ a.jsxs("span", { children: [
1743
+ /* @__PURE__ */ a.jsx(o.icon, {}),
1744
+ /* @__PURE__ */ a.jsx(st, { children: o.title }),
1745
+ o.external && /* @__PURE__ */ a.jsx(Ne, { children: /* @__PURE__ */ a.jsx(la, { size: 12, strokeWidth: 1.5 }) })
1746
+ ] }) }) }, o.slug)) }), we = ({ itemSets: e, activeSlug: t }) => /* @__PURE__ */ a.jsx(oe, { children: e.map((o, r) => /* @__PURE__ */ a.jsxs(dt, { children: [
1747
+ /* @__PURE__ */ a.jsx(er, { activeSlug: t, itemSet: o }),
1748
+ r < e.length - 1 && /* @__PURE__ */ a.jsx(nt, {})
1749
+ ] }, `item-set-${r}`)) }), tr = ({
1750
+ brandContent: e,
1751
+ brandOnClick: t,
1752
+ activeSlug: o,
1753
+ itemSets: r,
1754
+ bottomItemSets: n = [],
1755
+ theme: s,
1756
+ setTheme: i,
1757
+ ...u
1758
+ }) => /* @__PURE__ */ a.jsxs(Go, { collapsible: "icon", ...u, children: [
1759
+ /* @__PURE__ */ a.jsx(Wo, { children: /* @__PURE__ */ a.jsx(oe, { children: /* @__PURE__ */ a.jsx(H, { children: /* @__PURE__ */ a.jsx(
1760
+ B,
1761
+ {
1762
+ className: t ? "cursor-pointer" : "cursor-default",
1763
+ onClick: t,
1764
+ size: "lg",
1765
+ children: e
1766
+ }
1767
+ ) }) }) }),
1768
+ /* @__PURE__ */ a.jsx(Xo, { children: /* @__PURE__ */ a.jsx(Jo, { children: /* @__PURE__ */ a.jsx(Qo, { children: /* @__PURE__ */ a.jsx(we, { activeSlug: o, itemSets: r }) }) }) }),
1769
+ /* @__PURE__ */ a.jsx(Yo, { className: "mb-4", children: /* @__PURE__ */ a.jsxs(oe, { children: [
1770
+ /* @__PURE__ */ a.jsx(H, { children: /* @__PURE__ */ a.jsx(B, { asChild: !0, children: /* @__PURE__ */ a.jsx(qo, { className: "justify-start font-normal", children: /* @__PURE__ */ a.jsx(st, { children: "Collapse menu" }) }) }) }),
1771
+ /* @__PURE__ */ a.jsx(H, { children: /* @__PURE__ */ a.jsx(B, { asChild: !0, children: /* @__PURE__ */ a.jsx(ro, { buttonClassName: "p-0", setTheme: i, theme: s, variant: "stacked" }) }) }),
1772
+ n.length > 0 && /* @__PURE__ */ a.jsxs(a.Fragment, { children: [
1773
+ /* @__PURE__ */ a.jsx(nt, {}),
1774
+ /* @__PURE__ */ a.jsx(we, { activeSlug: o, itemSets: n })
1775
+ ] })
1776
+ ] }) }),
1777
+ /* @__PURE__ */ a.jsx(Ko, {})
1778
+ ] }), fr = ({ children: e, ...t }) => /* @__PURE__ */ a.jsxs(Fo, { children: [
1779
+ /* @__PURE__ */ a.jsx(tr, { ...t }),
1780
+ /* @__PURE__ */ a.jsx(Uo, { className: "max-w-screen-xl", children: e })
1781
+ ] });
1782
+ export {
1783
+ ge as A,
1784
+ M as C,
1785
+ $ as E,
1786
+ dr as I,
1787
+ st as M,
1788
+ qe as P,
1789
+ qo as S,
1790
+ O as T,
1791
+ ua as X,
1792
+ tr as a,
1793
+ fr as b,
1794
+ $a as c,
1795
+ Fe as d,
1796
+ I as e,
1797
+ Xa as f,
1798
+ eo as g,
1799
+ Za as h,
1800
+ Qa as i,
1801
+ Ya as j,
1802
+ Ja as k,
1803
+ to as l,
1804
+ ro as m,
1805
+ C as n,
1806
+ pr as o
1807
+ };