@still-forest/canopy 0.39.4 → 0.40.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,1807 +0,0 @@
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
- };