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