@sntxindu/ui 1.0.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.
package/dist/index.js ADDED
@@ -0,0 +1,4709 @@
1
+ 'use strict';
2
+
3
+ var radixUi = require('radix-ui');
4
+ var clsx = require('clsx');
5
+ var tailwindMerge = require('tailwind-merge');
6
+ var lucideReact = require('lucide-react');
7
+ var jsxRuntime = require('react/jsx-runtime');
8
+ var classVarianceAuthority = require('class-variance-authority');
9
+ var React2 = require('react');
10
+ var reactDayPicker = require('react-day-picker');
11
+ var useEmblaCarousel = require('embla-carousel-react');
12
+ var RechartsPrimitive = require('recharts');
13
+ var react = require('@base-ui/react');
14
+ var cmdk = require('cmdk');
15
+ var vaul = require('vaul');
16
+ var inputOtp = require('input-otp');
17
+ var reactResizablePanels = require('react-resizable-panels');
18
+ var nextThemes = require('next-themes');
19
+ var sonner = require('sonner');
20
+
21
+ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
22
+
23
+ function _interopNamespace(e) {
24
+ if (e && e.__esModule) return e;
25
+ var n = Object.create(null);
26
+ if (e) {
27
+ Object.keys(e).forEach(function (k) {
28
+ if (k !== 'default') {
29
+ var d = Object.getOwnPropertyDescriptor(e, k);
30
+ Object.defineProperty(n, k, d.get ? d : {
31
+ enumerable: true,
32
+ get: function () { return e[k]; }
33
+ });
34
+ }
35
+ });
36
+ }
37
+ n.default = e;
38
+ return Object.freeze(n);
39
+ }
40
+
41
+ var React2__namespace = /*#__PURE__*/_interopNamespace(React2);
42
+ var useEmblaCarousel__default = /*#__PURE__*/_interopDefault(useEmblaCarousel);
43
+ var RechartsPrimitive__namespace = /*#__PURE__*/_interopNamespace(RechartsPrimitive);
44
+
45
+ // src/components/ui/accordion.tsx
46
+ function cn(...inputs) {
47
+ return tailwindMerge.twMerge(clsx.clsx(inputs));
48
+ }
49
+ function Accordion({
50
+ className,
51
+ ...props
52
+ }) {
53
+ return /* @__PURE__ */ jsxRuntime.jsx(
54
+ radixUi.Accordion.Root,
55
+ {
56
+ "data-slot": "accordion",
57
+ className: cn("overflow-hidden rounded-md border flex w-full flex-col", className),
58
+ ...props
59
+ }
60
+ );
61
+ }
62
+ function AccordionItem({
63
+ className,
64
+ ...props
65
+ }) {
66
+ return /* @__PURE__ */ jsxRuntime.jsx(
67
+ radixUi.Accordion.Item,
68
+ {
69
+ "data-slot": "accordion-item",
70
+ className: cn("data-open:bg-muted/50 not-last:border-b", className),
71
+ ...props
72
+ }
73
+ );
74
+ }
75
+ function AccordionTrigger({
76
+ className,
77
+ children,
78
+ ...props
79
+ }) {
80
+ return /* @__PURE__ */ jsxRuntime.jsx(radixUi.Accordion.Header, { className: "flex", children: /* @__PURE__ */ jsxRuntime.jsxs(
81
+ radixUi.Accordion.Trigger,
82
+ {
83
+ "data-slot": "accordion-trigger",
84
+ className: cn(
85
+ "**:data-[slot=accordion-trigger-icon]:text-muted-foreground gap-6 p-2 text-left text-xs/relaxed font-medium hover:underline **:data-[slot=accordion-trigger-icon]:ml-auto **:data-[slot=accordion-trigger-icon]:size-4 group/accordion-trigger relative flex flex-1 items-start justify-between border border-transparent transition-all outline-none disabled:pointer-events-none disabled:opacity-50",
86
+ className
87
+ ),
88
+ ...props,
89
+ children: [
90
+ children,
91
+ /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronDownIcon, { "data-slot": "accordion-trigger-icon", className: "pointer-events-none shrink-0 group-aria-expanded/accordion-trigger:hidden" }),
92
+ /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronUpIcon, { "data-slot": "accordion-trigger-icon", className: "pointer-events-none hidden shrink-0 group-aria-expanded/accordion-trigger:inline" })
93
+ ]
94
+ }
95
+ ) });
96
+ }
97
+ function AccordionContent({
98
+ className,
99
+ children,
100
+ ...props
101
+ }) {
102
+ return /* @__PURE__ */ jsxRuntime.jsx(
103
+ radixUi.Accordion.Content,
104
+ {
105
+ "data-slot": "accordion-content",
106
+ className: "data-open:animate-accordion-down data-closed:animate-accordion-up px-2 text-xs/relaxed overflow-hidden",
107
+ ...props,
108
+ children: /* @__PURE__ */ jsxRuntime.jsx(
109
+ "div",
110
+ {
111
+ className: cn(
112
+ "pt-0 pb-4 [&_a]:hover:text-foreground h-(--radix-accordion-content-height) [&_a]:underline [&_a]:underline-offset-3 [&_p:not(:last-child)]:mb-4",
113
+ className
114
+ ),
115
+ children
116
+ }
117
+ )
118
+ }
119
+ );
120
+ }
121
+ var alertVariants = classVarianceAuthority.cva("grid gap-0.5 rounded-lg border px-2 py-1.5 text-left text-xs/relaxed has-data-[slot=alert-action]:relative has-data-[slot=alert-action]:pr-18 has-[>svg]:grid-cols-[auto_1fr] has-[>svg]:gap-x-1.5 *:[svg]:row-span-2 *:[svg]:translate-y-0.5 *:[svg]:text-current *:[svg:not([class*='size-'])]:size-3.5 w-full relative group/alert", {
122
+ variants: {
123
+ variant: {
124
+ default: "bg-card text-card-foreground",
125
+ destructive: "text-destructive bg-card *:data-[slot=alert-description]:text-destructive/90 *:[svg]:text-current"
126
+ }
127
+ },
128
+ defaultVariants: {
129
+ variant: "default"
130
+ }
131
+ });
132
+ function Alert({
133
+ className,
134
+ variant,
135
+ ...props
136
+ }) {
137
+ return /* @__PURE__ */ jsxRuntime.jsx(
138
+ "div",
139
+ {
140
+ "data-slot": "alert",
141
+ role: "alert",
142
+ className: cn(alertVariants({ variant }), className),
143
+ ...props
144
+ }
145
+ );
146
+ }
147
+ function AlertTitle({ className, ...props }) {
148
+ return /* @__PURE__ */ jsxRuntime.jsx(
149
+ "div",
150
+ {
151
+ "data-slot": "alert-title",
152
+ className: cn(
153
+ "font-medium group-has-[>svg]/alert:col-start-2 [&_a]:hover:text-foreground [&_a]:underline [&_a]:underline-offset-3",
154
+ className
155
+ ),
156
+ ...props
157
+ }
158
+ );
159
+ }
160
+ function AlertDescription({
161
+ className,
162
+ ...props
163
+ }) {
164
+ return /* @__PURE__ */ jsxRuntime.jsx(
165
+ "div",
166
+ {
167
+ "data-slot": "alert-description",
168
+ className: cn(
169
+ "text-muted-foreground text-xs/relaxed text-balance md:text-pretty [&_p:not(:last-child)]:mb-4 [&_a]:hover:text-foreground [&_a]:underline [&_a]:underline-offset-3",
170
+ className
171
+ ),
172
+ ...props
173
+ }
174
+ );
175
+ }
176
+ var buttonVariants = classVarianceAuthority.cva(
177
+ "focus-visible:border-ring focus-visible:ring-ring/30 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:aria-invalid:border-destructive/50 rounded-md border border-transparent bg-clip-padding text-xs/relaxed font-medium focus-visible:ring-[2px] aria-invalid:ring-[2px] [&_svg:not([class*='size-'])]:size-4 inline-flex items-center justify-center whitespace-nowrap transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none shrink-0 [&_svg]:shrink-0 outline-none group/button select-none",
178
+ {
179
+ variants: {
180
+ variant: {
181
+ default: "bg-primary text-primary-foreground hover:bg-primary/80",
182
+ outline: "border-border dark:bg-input/30 hover:bg-input/50 hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground",
183
+ secondary: "bg-secondary text-secondary-foreground hover:bg-secondary/80 aria-expanded:bg-secondary aria-expanded:text-secondary-foreground",
184
+ ghost: "hover:bg-muted hover:text-foreground dark:hover:bg-muted/50 aria-expanded:bg-muted aria-expanded:text-foreground",
185
+ destructive: "bg-destructive/10 hover:bg-destructive/20 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/20 text-destructive focus-visible:border-destructive/40 dark:hover:bg-destructive/30",
186
+ link: "text-primary underline-offset-4 hover:underline"
187
+ },
188
+ size: {
189
+ default: "h-7 gap-1 px-2 text-xs/relaxed has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3.5",
190
+ xs: "h-5 gap-1 rounded-sm px-2 text-[0.625rem] has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-2.5",
191
+ sm: "h-6 gap-1 px-2 text-xs/relaxed has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3",
192
+ lg: "h-8 gap-1 px-2.5 text-xs/relaxed has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2 [&_svg:not([class*='size-'])]:size-4",
193
+ icon: "size-7 [&_svg:not([class*='size-'])]:size-3.5",
194
+ "icon-xs": "size-5 rounded-sm [&_svg:not([class*='size-'])]:size-2.5",
195
+ "icon-sm": "size-6 [&_svg:not([class*='size-'])]:size-3",
196
+ "icon-lg": "size-8 [&_svg:not([class*='size-'])]:size-4"
197
+ }
198
+ },
199
+ defaultVariants: {
200
+ variant: "default",
201
+ size: "default"
202
+ }
203
+ }
204
+ );
205
+ function Button({
206
+ className,
207
+ variant = "default",
208
+ size = "default",
209
+ asChild = false,
210
+ ...props
211
+ }) {
212
+ const Comp = asChild ? radixUi.Slot.Root : "button";
213
+ return /* @__PURE__ */ jsxRuntime.jsx(
214
+ Comp,
215
+ {
216
+ "data-slot": "button",
217
+ "data-variant": variant,
218
+ "data-size": size,
219
+ className: cn(buttonVariants({ variant, size, className })),
220
+ ...props
221
+ }
222
+ );
223
+ }
224
+ function AlertDialog({
225
+ ...props
226
+ }) {
227
+ return /* @__PURE__ */ jsxRuntime.jsx(radixUi.AlertDialog.Root, { "data-slot": "alert-dialog", ...props });
228
+ }
229
+ function AlertDialogTrigger({
230
+ ...props
231
+ }) {
232
+ return /* @__PURE__ */ jsxRuntime.jsx(radixUi.AlertDialog.Trigger, { "data-slot": "alert-dialog-trigger", ...props });
233
+ }
234
+ function AlertDialogPortal({
235
+ ...props
236
+ }) {
237
+ return /* @__PURE__ */ jsxRuntime.jsx(radixUi.AlertDialog.Portal, { "data-slot": "alert-dialog-portal", ...props });
238
+ }
239
+ function AlertDialogOverlay({
240
+ className,
241
+ ...props
242
+ }) {
243
+ return /* @__PURE__ */ jsxRuntime.jsx(
244
+ radixUi.AlertDialog.Overlay,
245
+ {
246
+ "data-slot": "alert-dialog-overlay",
247
+ className: cn("data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 bg-black/80 duration-100 supports-backdrop-filter:backdrop-blur-xs fixed inset-0 z-50", className),
248
+ ...props
249
+ }
250
+ );
251
+ }
252
+ function AlertDialogContent({
253
+ className,
254
+ size = "default",
255
+ ...props
256
+ }) {
257
+ return /* @__PURE__ */ jsxRuntime.jsxs(AlertDialogPortal, { children: [
258
+ /* @__PURE__ */ jsxRuntime.jsx(AlertDialogOverlay, {}),
259
+ /* @__PURE__ */ jsxRuntime.jsx(
260
+ radixUi.AlertDialog.Content,
261
+ {
262
+ "data-slot": "alert-dialog-content",
263
+ "data-size": size,
264
+ className: cn(
265
+ "data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-95 data-open:zoom-in-95 bg-background ring-foreground/10 gap-3 rounded-xl p-4 ring-1 duration-100 data-[size=default]:max-w-xs data-[size=sm]:max-w-64 data-[size=default]:sm:max-w-sm group/alert-dialog-content fixed top-1/2 left-1/2 z-50 grid w-full -translate-x-1/2 -translate-y-1/2 outline-none",
266
+ className
267
+ ),
268
+ ...props
269
+ }
270
+ )
271
+ ] });
272
+ }
273
+ function AlertDialogHeader({
274
+ className,
275
+ ...props
276
+ }) {
277
+ return /* @__PURE__ */ jsxRuntime.jsx(
278
+ "div",
279
+ {
280
+ "data-slot": "alert-dialog-header",
281
+ className: cn("grid grid-rows-[auto_1fr] place-items-center gap-1 text-center has-data-[slot=alert-dialog-media]:grid-rows-[auto_auto_1fr] has-data-[slot=alert-dialog-media]:gap-x-4 sm:group-data-[size=default]/alert-dialog-content:place-items-start sm:group-data-[size=default]/alert-dialog-content:text-left sm:group-data-[size=default]/alert-dialog-content:has-data-[slot=alert-dialog-media]:grid-rows-[auto_1fr]", className),
282
+ ...props
283
+ }
284
+ );
285
+ }
286
+ function AlertDialogFooter({
287
+ className,
288
+ ...props
289
+ }) {
290
+ return /* @__PURE__ */ jsxRuntime.jsx(
291
+ "div",
292
+ {
293
+ "data-slot": "alert-dialog-footer",
294
+ className: cn(
295
+ "flex flex-col-reverse gap-2 group-data-[size=sm]/alert-dialog-content:grid group-data-[size=sm]/alert-dialog-content:grid-cols-2 sm:flex-row sm:justify-end",
296
+ className
297
+ ),
298
+ ...props
299
+ }
300
+ );
301
+ }
302
+ function AlertDialogTitle({
303
+ className,
304
+ ...props
305
+ }) {
306
+ return /* @__PURE__ */ jsxRuntime.jsx(
307
+ radixUi.AlertDialog.Title,
308
+ {
309
+ "data-slot": "alert-dialog-title",
310
+ className: cn("text-sm font-medium sm:group-data-[size=default]/alert-dialog-content:group-has-data-[slot=alert-dialog-media]/alert-dialog-content:col-start-2", className),
311
+ ...props
312
+ }
313
+ );
314
+ }
315
+ function AlertDialogDescription({
316
+ className,
317
+ ...props
318
+ }) {
319
+ return /* @__PURE__ */ jsxRuntime.jsx(
320
+ radixUi.AlertDialog.Description,
321
+ {
322
+ "data-slot": "alert-dialog-description",
323
+ className: cn("text-muted-foreground *:[a]:hover:text-foreground text-xs/relaxed text-balance md:text-pretty *:[a]:underline *:[a]:underline-offset-3", className),
324
+ ...props
325
+ }
326
+ );
327
+ }
328
+ function AlertDialogAction({
329
+ className,
330
+ variant = "default",
331
+ size = "default",
332
+ ...props
333
+ }) {
334
+ return /* @__PURE__ */ jsxRuntime.jsx(Button, { variant, size, asChild: true, children: /* @__PURE__ */ jsxRuntime.jsx(
335
+ radixUi.AlertDialog.Action,
336
+ {
337
+ "data-slot": "alert-dialog-action",
338
+ className: cn(className),
339
+ ...props
340
+ }
341
+ ) });
342
+ }
343
+ function AlertDialogCancel({
344
+ className,
345
+ variant = "outline",
346
+ size = "default",
347
+ ...props
348
+ }) {
349
+ return /* @__PURE__ */ jsxRuntime.jsx(Button, { variant, size, asChild: true, children: /* @__PURE__ */ jsxRuntime.jsx(
350
+ radixUi.AlertDialog.Cancel,
351
+ {
352
+ "data-slot": "alert-dialog-cancel",
353
+ className: cn(className),
354
+ ...props
355
+ }
356
+ ) });
357
+ }
358
+ function AspectRatio({
359
+ ...props
360
+ }) {
361
+ return /* @__PURE__ */ jsxRuntime.jsx(radixUi.AspectRatio.Root, { "data-slot": "aspect-ratio", ...props });
362
+ }
363
+ function Avatar({
364
+ className,
365
+ size = "default",
366
+ ...props
367
+ }) {
368
+ return /* @__PURE__ */ jsxRuntime.jsx(
369
+ radixUi.Avatar.Root,
370
+ {
371
+ "data-slot": "avatar",
372
+ "data-size": size,
373
+ className: cn(
374
+ "size-8 rounded-full after:rounded-full data-[size=lg]:size-10 data-[size=sm]:size-6 after:border-border group/avatar relative flex shrink-0 select-none after:absolute after:inset-0 after:border after:mix-blend-darken dark:after:mix-blend-lighten",
375
+ className
376
+ ),
377
+ ...props
378
+ }
379
+ );
380
+ }
381
+ function AvatarImage({
382
+ className,
383
+ ...props
384
+ }) {
385
+ return /* @__PURE__ */ jsxRuntime.jsx(
386
+ radixUi.Avatar.Image,
387
+ {
388
+ "data-slot": "avatar-image",
389
+ className: cn(
390
+ "rounded-full aspect-square size-full object-cover",
391
+ className
392
+ ),
393
+ ...props
394
+ }
395
+ );
396
+ }
397
+ function AvatarFallback({
398
+ className,
399
+ ...props
400
+ }) {
401
+ return /* @__PURE__ */ jsxRuntime.jsx(
402
+ radixUi.Avatar.Fallback,
403
+ {
404
+ "data-slot": "avatar-fallback",
405
+ className: cn(
406
+ "bg-muted text-muted-foreground rounded-full flex size-full items-center justify-center text-sm group-data-[size=sm]/avatar:text-xs",
407
+ className
408
+ ),
409
+ ...props
410
+ }
411
+ );
412
+ }
413
+ var badgeVariants = classVarianceAuthority.cva(
414
+ "h-5 gap-1 rounded-full border border-transparent px-2 py-0.5 text-[0.625rem] font-medium transition-all has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&>svg]:size-2.5! inline-flex items-center justify-center w-fit whitespace-nowrap shrink-0 [&>svg]:pointer-events-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive transition-colors overflow-hidden group/badge",
415
+ {
416
+ variants: {
417
+ variant: {
418
+ default: "bg-primary text-primary-foreground [a]:hover:bg-primary/80",
419
+ secondary: "bg-secondary text-secondary-foreground [a]:hover:bg-secondary/80",
420
+ destructive: "bg-destructive/10 [a]:hover:bg-destructive/20 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 text-destructive dark:bg-destructive/20",
421
+ outline: "border-border text-foreground [a]:hover:bg-muted [a]:hover:text-muted-foreground bg-input/20 dark:bg-input/30",
422
+ ghost: "hover:bg-muted hover:text-muted-foreground dark:hover:bg-muted/50",
423
+ link: "text-primary underline-offset-4 hover:underline"
424
+ }
425
+ },
426
+ defaultVariants: {
427
+ variant: "default"
428
+ }
429
+ }
430
+ );
431
+ function Badge({
432
+ className,
433
+ variant = "default",
434
+ asChild = false,
435
+ ...props
436
+ }) {
437
+ const Comp = asChild ? radixUi.Slot.Root : "span";
438
+ return /* @__PURE__ */ jsxRuntime.jsx(
439
+ Comp,
440
+ {
441
+ "data-slot": "badge",
442
+ "data-variant": variant,
443
+ className: cn(badgeVariants({ variant }), className),
444
+ ...props
445
+ }
446
+ );
447
+ }
448
+ function Breadcrumb({ className, ...props }) {
449
+ return /* @__PURE__ */ jsxRuntime.jsx(
450
+ "nav",
451
+ {
452
+ "aria-label": "breadcrumb",
453
+ "data-slot": "breadcrumb",
454
+ className: cn(className),
455
+ ...props
456
+ }
457
+ );
458
+ }
459
+ function BreadcrumbList({ className, ...props }) {
460
+ return /* @__PURE__ */ jsxRuntime.jsx(
461
+ "ol",
462
+ {
463
+ "data-slot": "breadcrumb-list",
464
+ className: cn(
465
+ "text-muted-foreground gap-1.5 text-xs/relaxed flex flex-wrap items-center break-words",
466
+ className
467
+ ),
468
+ ...props
469
+ }
470
+ );
471
+ }
472
+ function BreadcrumbItem({ className, ...props }) {
473
+ return /* @__PURE__ */ jsxRuntime.jsx(
474
+ "li",
475
+ {
476
+ "data-slot": "breadcrumb-item",
477
+ className: cn("gap-1 inline-flex items-center", className),
478
+ ...props
479
+ }
480
+ );
481
+ }
482
+ function BreadcrumbLink({
483
+ asChild,
484
+ className,
485
+ ...props
486
+ }) {
487
+ const Comp = asChild ? radixUi.Slot.Root : "a";
488
+ return /* @__PURE__ */ jsxRuntime.jsx(
489
+ Comp,
490
+ {
491
+ "data-slot": "breadcrumb-link",
492
+ className: cn("hover:text-foreground transition-colors", className),
493
+ ...props
494
+ }
495
+ );
496
+ }
497
+ function BreadcrumbPage({ className, ...props }) {
498
+ return /* @__PURE__ */ jsxRuntime.jsx(
499
+ "span",
500
+ {
501
+ "data-slot": "breadcrumb-page",
502
+ role: "link",
503
+ "aria-disabled": "true",
504
+ "aria-current": "page",
505
+ className: cn("text-foreground font-normal", className),
506
+ ...props
507
+ }
508
+ );
509
+ }
510
+ function BreadcrumbSeparator({
511
+ children,
512
+ className,
513
+ ...props
514
+ }) {
515
+ return /* @__PURE__ */ jsxRuntime.jsx(
516
+ "li",
517
+ {
518
+ "data-slot": "breadcrumb-separator",
519
+ role: "presentation",
520
+ "aria-hidden": "true",
521
+ className: cn("[&>svg]:size-3.5", className),
522
+ ...props,
523
+ children: children ?? /* @__PURE__ */ jsxRuntime.jsx(
524
+ lucideReact.ChevronRightIcon,
525
+ {}
526
+ )
527
+ }
528
+ );
529
+ }
530
+ function BreadcrumbEllipsis({
531
+ className,
532
+ ...props
533
+ }) {
534
+ return /* @__PURE__ */ jsxRuntime.jsxs(
535
+ "span",
536
+ {
537
+ "data-slot": "breadcrumb-ellipsis",
538
+ role: "presentation",
539
+ "aria-hidden": "true",
540
+ className: cn(
541
+ "size-4 [&>svg]:size-3.5 flex items-center justify-center",
542
+ className
543
+ ),
544
+ ...props,
545
+ children: [
546
+ /* @__PURE__ */ jsxRuntime.jsx(
547
+ lucideReact.MoreHorizontalIcon,
548
+ {}
549
+ ),
550
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "sr-only", children: "More" })
551
+ ]
552
+ }
553
+ );
554
+ }
555
+ function Separator({
556
+ className,
557
+ orientation = "horizontal",
558
+ decorative = true,
559
+ ...props
560
+ }) {
561
+ return /* @__PURE__ */ jsxRuntime.jsx(
562
+ radixUi.Separator.Root,
563
+ {
564
+ "data-slot": "separator",
565
+ decorative,
566
+ orientation,
567
+ className: cn(
568
+ "bg-border shrink-0 data-[orientation=horizontal]:h-px data-[orientation=horizontal]:w-full data-[orientation=vertical]:w-px data-[orientation=vertical]:self-stretch",
569
+ className
570
+ ),
571
+ ...props
572
+ }
573
+ );
574
+ }
575
+ var buttonGroupVariants = classVarianceAuthority.cva(
576
+ "has-[>[data-slot=button-group]]:gap-2 has-[select[aria-hidden=true]:last-child]:[&>[data-slot=select-trigger]:last-of-type]:rounded-r-md flex w-fit items-stretch [&>*]:focus-visible:z-10 [&>*]:focus-visible:relative [&>[data-slot=select-trigger]:not([class*='w-'])]:w-fit [&>input]:flex-1",
577
+ {
578
+ variants: {
579
+ orientation: {
580
+ horizontal: "[&>[data-slot]:not(:has(~[data-slot]))]:rounded-r-md! [&>*:not(:first-child)]:rounded-l-none [&>*:not(:first-child)]:border-l-0 [&>*:not(:last-child)]:rounded-r-none",
581
+ vertical: "[&>[data-slot]:not(:has(~[data-slot]))]:rounded-b-md! flex-col [&>*:not(:first-child)]:rounded-t-none [&>*:not(:first-child)]:border-t-0 [&>*:not(:last-child)]:rounded-b-none"
582
+ }
583
+ },
584
+ defaultVariants: {
585
+ orientation: "horizontal"
586
+ }
587
+ }
588
+ );
589
+ function ButtonGroup({
590
+ className,
591
+ orientation,
592
+ ...props
593
+ }) {
594
+ return /* @__PURE__ */ jsxRuntime.jsx(
595
+ "div",
596
+ {
597
+ role: "group",
598
+ "data-slot": "button-group",
599
+ "data-orientation": orientation,
600
+ className: cn(buttonGroupVariants({ orientation }), className),
601
+ ...props
602
+ }
603
+ );
604
+ }
605
+ function Calendar({
606
+ className,
607
+ classNames,
608
+ showOutsideDays = true,
609
+ captionLayout = "label",
610
+ buttonVariant = "ghost",
611
+ formatters,
612
+ components,
613
+ ...props
614
+ }) {
615
+ const defaultClassNames = reactDayPicker.getDefaultClassNames();
616
+ return /* @__PURE__ */ jsxRuntime.jsx(
617
+ reactDayPicker.DayPicker,
618
+ {
619
+ showOutsideDays,
620
+ className: cn(
621
+ "p-3 [--cell-radius:var(--radius-md)] [--cell-size:--spacing(6)] bg-background group/calendar [[data-slot=card-content]_&]:bg-transparent [[data-slot=popover-content]_&]:bg-transparent",
622
+ String.raw`rtl:**:[.rdp-button\_next>svg]:rotate-180`,
623
+ String.raw`rtl:**:[.rdp-button\_previous>svg]:rotate-180`,
624
+ className
625
+ ),
626
+ captionLayout,
627
+ formatters: {
628
+ formatMonthDropdown: (date) => date.toLocaleString("default", { month: "short" }),
629
+ ...formatters
630
+ },
631
+ classNames: {
632
+ root: cn("w-fit", defaultClassNames.root),
633
+ months: cn(
634
+ "flex gap-4 flex-col md:flex-row relative",
635
+ defaultClassNames.months
636
+ ),
637
+ month: cn("flex flex-col w-full gap-4", defaultClassNames.month),
638
+ nav: cn(
639
+ "flex items-center gap-1 w-full absolute top-0 inset-x-0 justify-between",
640
+ defaultClassNames.nav
641
+ ),
642
+ button_previous: cn(
643
+ buttonVariants({ variant: buttonVariant }),
644
+ "size-(--cell-size) aria-disabled:opacity-50 p-0 select-none",
645
+ defaultClassNames.button_previous
646
+ ),
647
+ button_next: cn(
648
+ buttonVariants({ variant: buttonVariant }),
649
+ "size-(--cell-size) aria-disabled:opacity-50 p-0 select-none",
650
+ defaultClassNames.button_next
651
+ ),
652
+ month_caption: cn(
653
+ "flex items-center justify-center h-(--cell-size) w-full px-(--cell-size)",
654
+ defaultClassNames.month_caption
655
+ ),
656
+ dropdowns: cn(
657
+ "w-full flex items-center text-sm font-medium justify-center h-(--cell-size) gap-1.5",
658
+ defaultClassNames.dropdowns
659
+ ),
660
+ dropdown_root: cn(
661
+ "relative cn-calendar-dropdown-root rounded-(--cell-radius)",
662
+ defaultClassNames.dropdown_root
663
+ ),
664
+ dropdown: cn(
665
+ "absolute bg-popover inset-0 opacity-0",
666
+ defaultClassNames.dropdown
667
+ ),
668
+ caption_label: cn(
669
+ "select-none font-medium",
670
+ captionLayout === "label" ? "text-sm" : "cn-calendar-caption-label rounded-(--cell-radius) flex items-center gap-1 text-sm [&>svg]:text-muted-foreground [&>svg]:size-3.5",
671
+ defaultClassNames.caption_label
672
+ ),
673
+ table: "w-full border-collapse",
674
+ weekdays: cn("flex", defaultClassNames.weekdays),
675
+ weekday: cn(
676
+ "text-muted-foreground rounded-(--cell-radius) flex-1 font-normal text-[0.8rem] select-none",
677
+ defaultClassNames.weekday
678
+ ),
679
+ week: cn("flex w-full mt-2", defaultClassNames.week),
680
+ week_number_header: cn(
681
+ "select-none w-(--cell-size)",
682
+ defaultClassNames.week_number_header
683
+ ),
684
+ week_number: cn(
685
+ "text-[0.8rem] select-none text-muted-foreground",
686
+ defaultClassNames.week_number
687
+ ),
688
+ day: cn(
689
+ "relative w-full rounded-(--cell-radius) h-full p-0 text-center [&:last-child[data-selected=true]_button]:rounded-r-(--cell-radius) group/day aspect-square select-none",
690
+ props.showWeekNumber ? "[&:nth-child(2)[data-selected=true]_button]:rounded-l-(--cell-radius)" : "[&:first-child[data-selected=true]_button]:rounded-l-(--cell-radius)",
691
+ defaultClassNames.day
692
+ ),
693
+ range_start: cn(
694
+ "rounded-l-(--cell-radius) bg-muted elative after:bg-muted after:absolute after:inset-y-0 after:w-4 after:right-0 -z-0 isolate",
695
+ defaultClassNames.range_start
696
+ ),
697
+ range_middle: cn("rounded-none", defaultClassNames.range_middle),
698
+ range_end: cn(
699
+ "rounded-r-(--cell-radius) bg-muted relative after:bg-muted-200 after:absolute after:inset-y-0 after:w-4 after:left-0 -z-0 isolate",
700
+ defaultClassNames.range_end
701
+ ),
702
+ today: cn(
703
+ "bg-muted text-foreground rounded-(--cell-radius) data-[selected=true]:rounded-none",
704
+ defaultClassNames.today
705
+ ),
706
+ outside: cn(
707
+ "text-muted-foreground aria-selected:text-muted-foreground",
708
+ defaultClassNames.outside
709
+ ),
710
+ disabled: cn(
711
+ "text-muted-foreground opacity-50",
712
+ defaultClassNames.disabled
713
+ ),
714
+ hidden: cn("invisible", defaultClassNames.hidden),
715
+ ...classNames
716
+ },
717
+ components: {
718
+ Root: ({ className: className2, rootRef, ...props2 }) => {
719
+ return /* @__PURE__ */ jsxRuntime.jsx(
720
+ "div",
721
+ {
722
+ "data-slot": "calendar",
723
+ ref: rootRef,
724
+ className: cn(className2),
725
+ ...props2
726
+ }
727
+ );
728
+ },
729
+ Chevron: ({ className: className2, orientation, ...props2 }) => {
730
+ if (orientation === "left") {
731
+ return /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronLeftIcon, { className: cn("size-4", className2), ...props2 });
732
+ }
733
+ if (orientation === "right") {
734
+ return /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronRightIcon, { className: cn("size-4", className2), ...props2 });
735
+ }
736
+ return /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronDownIcon, { className: cn("size-4", className2), ...props2 });
737
+ },
738
+ DayButton: CalendarDayButton,
739
+ WeekNumber: ({ children, ...props2 }) => {
740
+ return /* @__PURE__ */ jsxRuntime.jsx("td", { ...props2, children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex size-(--cell-size) items-center justify-center text-center", children }) });
741
+ },
742
+ ...components
743
+ },
744
+ ...props
745
+ }
746
+ );
747
+ }
748
+ function CalendarDayButton({
749
+ className,
750
+ day,
751
+ modifiers,
752
+ ...props
753
+ }) {
754
+ const defaultClassNames = reactDayPicker.getDefaultClassNames();
755
+ const ref = React2__namespace.useRef(null);
756
+ React2__namespace.useEffect(() => {
757
+ if (modifiers.focused) ref.current?.focus();
758
+ }, [modifiers.focused]);
759
+ return /* @__PURE__ */ jsxRuntime.jsx(
760
+ Button,
761
+ {
762
+ ref,
763
+ variant: "ghost",
764
+ size: "icon",
765
+ "data-day": day.date.toLocaleDateString(),
766
+ "data-selected-single": modifiers.selected && !modifiers.range_start && !modifiers.range_end && !modifiers.range_middle,
767
+ "data-range-start": modifiers.range_start,
768
+ "data-range-end": modifiers.range_end,
769
+ "data-range-middle": modifiers.range_middle,
770
+ className: cn(
771
+ "data-[selected-single=true]:bg-primary data-[selected-single=true]:text-primary-foreground data-[range-middle=true]:bg-muted data-[range-middle=true]:text-foreground data-[range-start=true]:bg-primary data-[range-start=true]:text-primary-foreground data-[range-end=true]:bg-primary data-[range-end=true]:text-primary-foreground group-data-[focused=true]/day:border-ring group-data-[focused=true]/day:ring-ring/50 dark:hover:text-foreground relative isolate z-10 flex aspect-square size-auto w-full min-w-(--cell-size) flex-col gap-1 border-0 leading-none font-normal group-data-[focused=true]/day:relative group-data-[focused=true]/day:z-10 group-data-[focused=true]/day:ring-[3px] data-[range-end=true]:rounded-(--cell-radius) data-[range-end=true]:rounded-r-(--cell-radius) data-[range-middle=true]:rounded-none data-[range-start=true]:rounded-(--cell-radius) data-[range-start=true]:rounded-l-(--cell-radius) [&>span]:text-xs [&>span]:opacity-70",
772
+ defaultClassNames.day,
773
+ className
774
+ ),
775
+ ...props
776
+ }
777
+ );
778
+ }
779
+ function Card({
780
+ className,
781
+ size = "default",
782
+ ...props
783
+ }) {
784
+ return /* @__PURE__ */ jsxRuntime.jsx(
785
+ "div",
786
+ {
787
+ "data-slot": "card",
788
+ "data-size": size,
789
+ className: cn("ring-foreground/10 bg-card text-card-foreground gap-4 overflow-hidden rounded-lg py-4 text-xs/relaxed ring-1 has-[>img:first-child]:pt-0 data-[size=sm]:gap-3 data-[size=sm]:py-3 *:[img:first-child]:rounded-t-lg *:[img:last-child]:rounded-b-lg group/card flex flex-col", className),
790
+ ...props
791
+ }
792
+ );
793
+ }
794
+ function CardHeader({ className, ...props }) {
795
+ return /* @__PURE__ */ jsxRuntime.jsx(
796
+ "div",
797
+ {
798
+ "data-slot": "card-header",
799
+ className: cn(
800
+ "gap-1 rounded-t-lg px-4 group-data-[size=sm]/card:px-3 [.border-b]:pb-4 group-data-[size=sm]/card:[.border-b]:pb-3 group/card-header @container/card-header grid auto-rows-min items-start has-data-[slot=card-action]:grid-cols-[1fr_auto] has-data-[slot=card-description]:grid-rows-[auto_auto]",
801
+ className
802
+ ),
803
+ ...props
804
+ }
805
+ );
806
+ }
807
+ function CardTitle({ className, ...props }) {
808
+ return /* @__PURE__ */ jsxRuntime.jsx(
809
+ "div",
810
+ {
811
+ "data-slot": "card-title",
812
+ className: cn("text-sm font-medium", className),
813
+ ...props
814
+ }
815
+ );
816
+ }
817
+ function CardDescription({ className, ...props }) {
818
+ return /* @__PURE__ */ jsxRuntime.jsx(
819
+ "div",
820
+ {
821
+ "data-slot": "card-description",
822
+ className: cn("text-muted-foreground text-xs/relaxed", className),
823
+ ...props
824
+ }
825
+ );
826
+ }
827
+ function CardContent({ className, ...props }) {
828
+ return /* @__PURE__ */ jsxRuntime.jsx(
829
+ "div",
830
+ {
831
+ "data-slot": "card-content",
832
+ className: cn("px-4 group-data-[size=sm]/card:px-3", className),
833
+ ...props
834
+ }
835
+ );
836
+ }
837
+ function CardFooter({ className, ...props }) {
838
+ return /* @__PURE__ */ jsxRuntime.jsx(
839
+ "div",
840
+ {
841
+ "data-slot": "card-footer",
842
+ className: cn("rounded-b-lg px-4 group-data-[size=sm]/card:px-3 [.border-t]:pt-4 group-data-[size=sm]/card:[.border-t]:pt-3 flex items-center", className),
843
+ ...props
844
+ }
845
+ );
846
+ }
847
+ var CarouselContext = React2__namespace.createContext(null);
848
+ function useCarousel() {
849
+ const context = React2__namespace.useContext(CarouselContext);
850
+ if (!context) {
851
+ throw new Error("useCarousel must be used within a <Carousel />");
852
+ }
853
+ return context;
854
+ }
855
+ function Carousel({
856
+ orientation = "horizontal",
857
+ opts,
858
+ setApi,
859
+ plugins,
860
+ className,
861
+ children,
862
+ ...props
863
+ }) {
864
+ const [carouselRef, api] = useEmblaCarousel__default.default(
865
+ {
866
+ ...opts,
867
+ axis: orientation === "horizontal" ? "x" : "y"
868
+ },
869
+ plugins
870
+ );
871
+ const [canScrollPrev, setCanScrollPrev] = React2__namespace.useState(false);
872
+ const [canScrollNext, setCanScrollNext] = React2__namespace.useState(false);
873
+ const onSelect = React2__namespace.useCallback((api2) => {
874
+ if (!api2) return;
875
+ setCanScrollPrev(api2.canScrollPrev());
876
+ setCanScrollNext(api2.canScrollNext());
877
+ }, []);
878
+ const scrollPrev = React2__namespace.useCallback(() => {
879
+ api?.scrollPrev();
880
+ }, [api]);
881
+ const scrollNext = React2__namespace.useCallback(() => {
882
+ api?.scrollNext();
883
+ }, [api]);
884
+ const handleKeyDown = React2__namespace.useCallback(
885
+ (event) => {
886
+ if (event.key === "ArrowLeft") {
887
+ event.preventDefault();
888
+ scrollPrev();
889
+ } else if (event.key === "ArrowRight") {
890
+ event.preventDefault();
891
+ scrollNext();
892
+ }
893
+ },
894
+ [scrollPrev, scrollNext]
895
+ );
896
+ React2__namespace.useEffect(() => {
897
+ if (!api || !setApi) return;
898
+ setApi(api);
899
+ }, [api, setApi]);
900
+ React2__namespace.useEffect(() => {
901
+ if (!api) return;
902
+ onSelect(api);
903
+ api.on("reInit", onSelect);
904
+ api.on("select", onSelect);
905
+ return () => {
906
+ api?.off("select", onSelect);
907
+ };
908
+ }, [api, onSelect]);
909
+ return /* @__PURE__ */ jsxRuntime.jsx(
910
+ CarouselContext.Provider,
911
+ {
912
+ value: {
913
+ carouselRef,
914
+ api,
915
+ opts,
916
+ orientation: orientation || (opts?.axis === "y" ? "vertical" : "horizontal"),
917
+ scrollPrev,
918
+ scrollNext,
919
+ canScrollPrev,
920
+ canScrollNext
921
+ },
922
+ children: /* @__PURE__ */ jsxRuntime.jsx(
923
+ "div",
924
+ {
925
+ onKeyDownCapture: handleKeyDown,
926
+ className: cn("relative", className),
927
+ role: "region",
928
+ "aria-roledescription": "carousel",
929
+ "data-slot": "carousel",
930
+ ...props,
931
+ children
932
+ }
933
+ )
934
+ }
935
+ );
936
+ }
937
+ function CarouselContent({ className, ...props }) {
938
+ const { carouselRef, orientation } = useCarousel();
939
+ return /* @__PURE__ */ jsxRuntime.jsx(
940
+ "div",
941
+ {
942
+ ref: carouselRef,
943
+ className: "overflow-hidden",
944
+ "data-slot": "carousel-content",
945
+ children: /* @__PURE__ */ jsxRuntime.jsx(
946
+ "div",
947
+ {
948
+ className: cn(
949
+ "flex",
950
+ orientation === "horizontal" ? "-ml-4" : "-mt-4 flex-col",
951
+ className
952
+ ),
953
+ ...props
954
+ }
955
+ )
956
+ }
957
+ );
958
+ }
959
+ function CarouselItem({ className, ...props }) {
960
+ const { orientation } = useCarousel();
961
+ return /* @__PURE__ */ jsxRuntime.jsx(
962
+ "div",
963
+ {
964
+ role: "group",
965
+ "aria-roledescription": "slide",
966
+ "data-slot": "carousel-item",
967
+ className: cn(
968
+ "min-w-0 shrink-0 grow-0 basis-full",
969
+ orientation === "horizontal" ? "pl-4" : "pt-4",
970
+ className
971
+ ),
972
+ ...props
973
+ }
974
+ );
975
+ }
976
+ function CarouselPrevious({
977
+ className,
978
+ variant = "outline",
979
+ size = "icon-sm",
980
+ ...props
981
+ }) {
982
+ const { orientation, scrollPrev, canScrollPrev } = useCarousel();
983
+ return /* @__PURE__ */ jsxRuntime.jsxs(
984
+ Button,
985
+ {
986
+ "data-slot": "carousel-previous",
987
+ variant,
988
+ size,
989
+ className: cn(
990
+ "rounded-full absolute touch-manipulation",
991
+ orientation === "horizontal" ? "top-1/2 -left-12 -translate-y-1/2" : "-top-12 left-1/2 -translate-x-1/2 rotate-90",
992
+ className
993
+ ),
994
+ disabled: !canScrollPrev,
995
+ onClick: scrollPrev,
996
+ ...props,
997
+ children: [
998
+ /* @__PURE__ */ jsxRuntime.jsx(
999
+ lucideReact.ChevronLeftIcon,
1000
+ {}
1001
+ ),
1002
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "sr-only", children: "Previous slide" })
1003
+ ]
1004
+ }
1005
+ );
1006
+ }
1007
+ function CarouselNext({
1008
+ className,
1009
+ variant = "outline",
1010
+ size = "icon-sm",
1011
+ ...props
1012
+ }) {
1013
+ const { orientation, scrollNext, canScrollNext } = useCarousel();
1014
+ return /* @__PURE__ */ jsxRuntime.jsxs(
1015
+ Button,
1016
+ {
1017
+ "data-slot": "carousel-next",
1018
+ variant,
1019
+ size,
1020
+ className: cn(
1021
+ "rounded-full absolute touch-manipulation",
1022
+ orientation === "horizontal" ? "top-1/2 -right-12 -translate-y-1/2" : "-bottom-12 left-1/2 -translate-x-1/2 rotate-90",
1023
+ className
1024
+ ),
1025
+ disabled: !canScrollNext,
1026
+ onClick: scrollNext,
1027
+ ...props,
1028
+ children: [
1029
+ /* @__PURE__ */ jsxRuntime.jsx(
1030
+ lucideReact.ChevronRightIcon,
1031
+ {}
1032
+ ),
1033
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "sr-only", children: "Next slide" })
1034
+ ]
1035
+ }
1036
+ );
1037
+ }
1038
+ var THEMES = { light: "", dark: ".dark" };
1039
+ var ChartContext = React2__namespace.createContext(null);
1040
+ function useChart() {
1041
+ const context = React2__namespace.useContext(ChartContext);
1042
+ if (!context) {
1043
+ throw new Error("useChart must be used within a <ChartContainer />");
1044
+ }
1045
+ return context;
1046
+ }
1047
+ function ChartContainer({
1048
+ id,
1049
+ className,
1050
+ children,
1051
+ config,
1052
+ ...props
1053
+ }) {
1054
+ const uniqueId = React2__namespace.useId();
1055
+ const chartId = `chart-${id || uniqueId.replace(/:/g, "")}`;
1056
+ return /* @__PURE__ */ jsxRuntime.jsx(ChartContext.Provider, { value: { config }, children: /* @__PURE__ */ jsxRuntime.jsxs(
1057
+ "div",
1058
+ {
1059
+ "data-slot": "chart",
1060
+ "data-chart": chartId,
1061
+ className: cn(
1062
+ "[&_.recharts-cartesian-axis-tick_text]:fill-muted-foreground [&_.recharts-cartesian-grid_line[stroke='#ccc']]:stroke-border/50 [&_.recharts-curve.recharts-tooltip-cursor]:stroke-border [&_.recharts-polar-grid_[stroke='#ccc']]:stroke-border [&_.recharts-radial-bar-background-sector]:fill-muted [&_.recharts-rectangle.recharts-tooltip-cursor]:fill-muted [&_.recharts-reference-line_[stroke='#ccc']]:stroke-border flex aspect-video justify-center text-xs [&_.recharts-dot[stroke='#fff']]:stroke-transparent [&_.recharts-layer]:outline-hidden [&_.recharts-sector]:outline-hidden [&_.recharts-sector[stroke='#fff']]:stroke-transparent [&_.recharts-surface]:outline-hidden",
1063
+ className
1064
+ ),
1065
+ ...props,
1066
+ children: [
1067
+ /* @__PURE__ */ jsxRuntime.jsx(ChartStyle, { id: chartId, config }),
1068
+ /* @__PURE__ */ jsxRuntime.jsx(RechartsPrimitive__namespace.ResponsiveContainer, { children })
1069
+ ]
1070
+ }
1071
+ ) });
1072
+ }
1073
+ var ChartStyle = ({ id, config }) => {
1074
+ const colorConfig = Object.entries(config).filter(
1075
+ ([, config2]) => config2.theme || config2.color
1076
+ );
1077
+ if (!colorConfig.length) {
1078
+ return null;
1079
+ }
1080
+ return /* @__PURE__ */ jsxRuntime.jsx(
1081
+ "style",
1082
+ {
1083
+ dangerouslySetInnerHTML: {
1084
+ __html: Object.entries(THEMES).map(
1085
+ ([theme, prefix]) => `
1086
+ ${prefix} [data-chart=${id}] {
1087
+ ${colorConfig.map(([key, itemConfig]) => {
1088
+ const color = itemConfig.theme?.[theme] || itemConfig.color;
1089
+ return color ? ` --color-${key}: ${color};` : null;
1090
+ }).join("\n")}
1091
+ }
1092
+ `
1093
+ ).join("\n")
1094
+ }
1095
+ }
1096
+ );
1097
+ };
1098
+ var ChartTooltip = RechartsPrimitive__namespace.Tooltip;
1099
+ function ChartTooltipContent({
1100
+ active,
1101
+ payload,
1102
+ className,
1103
+ indicator = "dot",
1104
+ hideLabel = false,
1105
+ hideIndicator = false,
1106
+ label,
1107
+ labelFormatter,
1108
+ labelClassName,
1109
+ formatter,
1110
+ color,
1111
+ nameKey,
1112
+ labelKey
1113
+ }) {
1114
+ const { config } = useChart();
1115
+ const tooltipLabel = React2__namespace.useMemo(() => {
1116
+ if (hideLabel || !payload?.length) {
1117
+ return null;
1118
+ }
1119
+ const [item] = payload;
1120
+ const key = `${labelKey || item?.dataKey || item?.name || "value"}`;
1121
+ const itemConfig = getPayloadConfigFromPayload(config, item, key);
1122
+ const value = !labelKey && typeof label === "string" ? config[label]?.label || label : itemConfig?.label;
1123
+ if (labelFormatter) {
1124
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("font-medium", labelClassName), children: labelFormatter(value, payload) });
1125
+ }
1126
+ if (!value) {
1127
+ return null;
1128
+ }
1129
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("font-medium", labelClassName), children: value });
1130
+ }, [
1131
+ label,
1132
+ labelFormatter,
1133
+ payload,
1134
+ hideLabel,
1135
+ labelClassName,
1136
+ config,
1137
+ labelKey
1138
+ ]);
1139
+ if (!active || !payload?.length) {
1140
+ return null;
1141
+ }
1142
+ const nestLabel = payload.length === 1 && indicator !== "dot";
1143
+ return /* @__PURE__ */ jsxRuntime.jsxs(
1144
+ "div",
1145
+ {
1146
+ className: cn(
1147
+ "border-border/50 bg-background gap-1.5 rounded-lg border px-2.5 py-1.5 text-xs/relaxed shadow-xl grid min-w-[8rem] items-start",
1148
+ className
1149
+ ),
1150
+ children: [
1151
+ !nestLabel ? tooltipLabel : null,
1152
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "grid gap-1.5", children: payload.filter((item) => item.type !== "none").map((item, index) => {
1153
+ const key = `${nameKey || item.name || item.dataKey || "value"}`;
1154
+ const itemConfig = getPayloadConfigFromPayload(config, item, key);
1155
+ const indicatorColor = color || item.payload.fill || item.color;
1156
+ return /* @__PURE__ */ jsxRuntime.jsx(
1157
+ "div",
1158
+ {
1159
+ className: cn(
1160
+ "[&>svg]:text-muted-foreground flex w-full flex-wrap items-stretch gap-2 [&>svg]:h-2.5 [&>svg]:w-2.5",
1161
+ indicator === "dot" && "items-center"
1162
+ ),
1163
+ children: formatter && item?.value !== void 0 && item.name ? formatter(item.value, item.name, item, index, item.payload) : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
1164
+ itemConfig?.icon ? /* @__PURE__ */ jsxRuntime.jsx(itemConfig.icon, {}) : !hideIndicator && /* @__PURE__ */ jsxRuntime.jsx(
1165
+ "div",
1166
+ {
1167
+ className: cn(
1168
+ "shrink-0 rounded-[2px] border-(--color-border) bg-(--color-bg)",
1169
+ {
1170
+ "h-2.5 w-2.5": indicator === "dot",
1171
+ "w-1": indicator === "line",
1172
+ "w-0 border-[1.5px] border-dashed bg-transparent": indicator === "dashed",
1173
+ "my-0.5": nestLabel && indicator === "dashed"
1174
+ }
1175
+ ),
1176
+ style: {
1177
+ "--color-bg": indicatorColor,
1178
+ "--color-border": indicatorColor
1179
+ }
1180
+ }
1181
+ ),
1182
+ /* @__PURE__ */ jsxRuntime.jsxs(
1183
+ "div",
1184
+ {
1185
+ className: cn(
1186
+ "flex flex-1 justify-between leading-none",
1187
+ nestLabel ? "items-end" : "items-center"
1188
+ ),
1189
+ children: [
1190
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid gap-1.5", children: [
1191
+ nestLabel ? tooltipLabel : null,
1192
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-muted-foreground", children: itemConfig?.label || item.name })
1193
+ ] }),
1194
+ item.value && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-foreground font-mono font-medium tabular-nums", children: item.value.toLocaleString() })
1195
+ ]
1196
+ }
1197
+ )
1198
+ ] })
1199
+ },
1200
+ item.dataKey
1201
+ );
1202
+ }) })
1203
+ ]
1204
+ }
1205
+ );
1206
+ }
1207
+ var ChartLegend = RechartsPrimitive__namespace.Legend;
1208
+ function ChartLegendContent({
1209
+ className,
1210
+ hideIcon = false,
1211
+ payload,
1212
+ verticalAlign = "bottom",
1213
+ nameKey
1214
+ }) {
1215
+ const { config } = useChart();
1216
+ if (!payload?.length) {
1217
+ return null;
1218
+ }
1219
+ return /* @__PURE__ */ jsxRuntime.jsx(
1220
+ "div",
1221
+ {
1222
+ className: cn(
1223
+ "flex items-center justify-center gap-4",
1224
+ verticalAlign === "top" ? "pb-3" : "pt-3",
1225
+ className
1226
+ ),
1227
+ children: payload.filter((item) => item.type !== "none").map((item) => {
1228
+ const key = `${nameKey || item.dataKey || "value"}`;
1229
+ const itemConfig = getPayloadConfigFromPayload(config, item, key);
1230
+ return /* @__PURE__ */ jsxRuntime.jsxs(
1231
+ "div",
1232
+ {
1233
+ className: cn(
1234
+ "[&>svg]:text-muted-foreground flex items-center gap-1.5 [&>svg]:h-3 [&>svg]:w-3"
1235
+ ),
1236
+ children: [
1237
+ itemConfig?.icon && !hideIcon ? /* @__PURE__ */ jsxRuntime.jsx(itemConfig.icon, {}) : /* @__PURE__ */ jsxRuntime.jsx(
1238
+ "div",
1239
+ {
1240
+ className: "h-2 w-2 shrink-0 rounded-[2px]",
1241
+ style: {
1242
+ backgroundColor: item.color
1243
+ }
1244
+ }
1245
+ ),
1246
+ itemConfig?.label
1247
+ ]
1248
+ },
1249
+ item.value
1250
+ );
1251
+ })
1252
+ }
1253
+ );
1254
+ }
1255
+ function getPayloadConfigFromPayload(config, payload, key) {
1256
+ if (typeof payload !== "object" || payload === null) {
1257
+ return void 0;
1258
+ }
1259
+ const payloadPayload = "payload" in payload && typeof payload.payload === "object" && payload.payload !== null ? payload.payload : void 0;
1260
+ let configLabelKey = key;
1261
+ if (key in payload && typeof payload[key] === "string") {
1262
+ configLabelKey = payload[key];
1263
+ } else if (payloadPayload && key in payloadPayload && typeof payloadPayload[key] === "string") {
1264
+ configLabelKey = payloadPayload[key];
1265
+ }
1266
+ return configLabelKey in config ? config[configLabelKey] : config[key];
1267
+ }
1268
+ function Checkbox({
1269
+ className,
1270
+ ...props
1271
+ }) {
1272
+ return /* @__PURE__ */ jsxRuntime.jsx(
1273
+ radixUi.Checkbox.Root,
1274
+ {
1275
+ "data-slot": "checkbox",
1276
+ className: cn(
1277
+ "border-input dark:bg-input/30 data-checked:bg-primary data-checked:text-primary-foreground dark:data-checked:bg-primary data-checked:border-primary aria-invalid:aria-checked:border-primary aria-invalid:border-destructive dark:aria-invalid:border-destructive/50 focus-visible:border-ring focus-visible:ring-ring/30 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 flex size-4 items-center justify-center rounded-[4px] border transition-shadow group-has-disabled/field:opacity-50 focus-visible:ring-[2px] aria-invalid:ring-[2px] peer relative shrink-0 outline-none after:absolute after:-inset-x-3 after:-inset-y-2 disabled:cursor-not-allowed disabled:opacity-50",
1278
+ className
1279
+ ),
1280
+ ...props,
1281
+ children: /* @__PURE__ */ jsxRuntime.jsx(
1282
+ radixUi.Checkbox.Indicator,
1283
+ {
1284
+ "data-slot": "checkbox-indicator",
1285
+ className: "[&>svg]:size-3.5 grid place-content-center text-current transition-none",
1286
+ children: /* @__PURE__ */ jsxRuntime.jsx(
1287
+ lucideReact.CheckIcon,
1288
+ {}
1289
+ )
1290
+ }
1291
+ )
1292
+ }
1293
+ );
1294
+ }
1295
+ function Collapsible({
1296
+ ...props
1297
+ }) {
1298
+ return /* @__PURE__ */ jsxRuntime.jsx(radixUi.Collapsible.Root, { "data-slot": "collapsible", ...props });
1299
+ }
1300
+ function CollapsibleTrigger({
1301
+ ...props
1302
+ }) {
1303
+ return /* @__PURE__ */ jsxRuntime.jsx(
1304
+ radixUi.Collapsible.CollapsibleTrigger,
1305
+ {
1306
+ "data-slot": "collapsible-trigger",
1307
+ ...props
1308
+ }
1309
+ );
1310
+ }
1311
+ function CollapsibleContent({
1312
+ ...props
1313
+ }) {
1314
+ return /* @__PURE__ */ jsxRuntime.jsx(
1315
+ radixUi.Collapsible.CollapsibleContent,
1316
+ {
1317
+ "data-slot": "collapsible-content",
1318
+ ...props
1319
+ }
1320
+ );
1321
+ }
1322
+ function Input({ className, type, ...props }) {
1323
+ return /* @__PURE__ */ jsxRuntime.jsx(
1324
+ "input",
1325
+ {
1326
+ type,
1327
+ "data-slot": "input",
1328
+ className: cn(
1329
+ "bg-input/20 dark:bg-input/30 border-input focus-visible:border-ring focus-visible:ring-ring/30 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:aria-invalid:border-destructive/50 h-7 rounded-md border px-2 py-0.5 text-sm transition-colors file:h-6 file:text-xs/relaxed file:font-medium focus-visible:ring-[2px] aria-invalid:ring-[2px] md:text-xs/relaxed file:text-foreground placeholder:text-muted-foreground w-full min-w-0 outline-none file:inline-flex file:border-0 file:bg-transparent disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50",
1330
+ className
1331
+ ),
1332
+ ...props
1333
+ }
1334
+ );
1335
+ }
1336
+ function Textarea({ className, ...props }) {
1337
+ return /* @__PURE__ */ jsxRuntime.jsx(
1338
+ "textarea",
1339
+ {
1340
+ "data-slot": "textarea",
1341
+ className: cn(
1342
+ "border-input bg-input/20 dark:bg-input/30 focus-visible:border-ring focus-visible:ring-ring/30 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:aria-invalid:border-destructive/50 resize-none rounded-md border px-2 py-2 text-sm transition-colors focus-visible:ring-[2px] aria-invalid:ring-[2px] md:text-xs/relaxed placeholder:text-muted-foreground flex field-sizing-content min-h-16 w-full outline-none disabled:cursor-not-allowed disabled:opacity-50",
1343
+ className
1344
+ ),
1345
+ ...props
1346
+ }
1347
+ );
1348
+ }
1349
+ function InputGroup({ className, ...props }) {
1350
+ return /* @__PURE__ */ jsxRuntime.jsx(
1351
+ "div",
1352
+ {
1353
+ "data-slot": "input-group",
1354
+ role: "group",
1355
+ className: cn(
1356
+ "border-input bg-input/20 dark:bg-input/30 has-[[data-slot=input-group-control]:focus-visible]:border-ring has-[[data-slot=input-group-control]:focus-visible]:ring-ring/30 has-[[data-slot][aria-invalid=true]]:ring-destructive/20 has-[[data-slot][aria-invalid=true]]:border-destructive dark:has-[[data-slot][aria-invalid=true]]:ring-destructive/40 h-7 rounded-md border transition-colors has-data-[align=block-end]:rounded-md has-data-[align=block-start]:rounded-md has-[[data-slot=input-group-control]:focus-visible]:ring-[2px] has-[[data-slot][aria-invalid=true]]:ring-[2px] has-[textarea]:rounded-md has-[>[data-align=block-end]]:h-auto has-[>[data-align=block-end]]:flex-col has-[>[data-align=block-start]]:h-auto has-[>[data-align=block-start]]:flex-col has-[>[data-align=block-end]]:[&>input]:pt-3 has-[>[data-align=block-start]]:[&>input]:pb-3 has-[>[data-align=inline-end]]:[&>input]:pr-1.5 has-[>[data-align=inline-start]]:[&>input]:pl-1.5 [[data-slot=combobox-content]_&]:focus-within:border-inherit [[data-slot=combobox-content]_&]:focus-within:ring-0 group/input-group relative flex w-full min-w-0 items-center outline-none has-[>textarea]:h-auto",
1357
+ className
1358
+ ),
1359
+ ...props
1360
+ }
1361
+ );
1362
+ }
1363
+ var inputGroupAddonVariants = classVarianceAuthority.cva(
1364
+ "text-muted-foreground **:data-[slot=kbd]:bg-muted-foreground/10 h-auto gap-1 py-2 text-xs/relaxed font-medium group-data-[disabled=true]/input-group:opacity-50 **:data-[slot=kbd]:rounded-[calc(var(--radius-sm)-2px)] **:data-[slot=kbd]:px-1 **:data-[slot=kbd]:text-[0.625rem] [&>svg:not([class*='size-'])]:size-3.5 flex cursor-text items-center justify-center select-none",
1365
+ {
1366
+ variants: {
1367
+ align: {
1368
+ "inline-start": "pl-2 has-[>button]:ml-[-0.275rem] has-[>kbd]:ml-[-0.275rem] order-first",
1369
+ "inline-end": "pr-2 has-[>button]:mr-[-0.275rem] has-[>kbd]:mr-[-0.275rem] order-last",
1370
+ "block-start": "px-2 pt-2 group-has-[>input]/input-group:pt-2 [.border-b]:pb-2 order-first w-full justify-start",
1371
+ "block-end": "px-2 pb-2 group-has-[>input]/input-group:pb-2 [.border-t]:pt-2 order-last w-full justify-start"
1372
+ }
1373
+ },
1374
+ defaultVariants: {
1375
+ align: "inline-start"
1376
+ }
1377
+ }
1378
+ );
1379
+ function InputGroupAddon({
1380
+ className,
1381
+ align = "inline-start",
1382
+ ...props
1383
+ }) {
1384
+ return /* @__PURE__ */ jsxRuntime.jsx(
1385
+ "div",
1386
+ {
1387
+ role: "group",
1388
+ "data-slot": "input-group-addon",
1389
+ "data-align": align,
1390
+ className: cn(inputGroupAddonVariants({ align }), className),
1391
+ onClick: (e) => {
1392
+ if (e.target.closest("button")) {
1393
+ return;
1394
+ }
1395
+ e.currentTarget.parentElement?.querySelector("input")?.focus();
1396
+ },
1397
+ ...props
1398
+ }
1399
+ );
1400
+ }
1401
+ classVarianceAuthority.cva(
1402
+ "gap-2 rounded-md text-xs/relaxed shadow-none flex items-center",
1403
+ {
1404
+ variants: {
1405
+ size: {
1406
+ xs: "h-5 gap-1 rounded-[calc(var(--radius-sm)-2px)] px-1 [&>svg:not([class*='size-'])]:size-3",
1407
+ sm: "",
1408
+ "icon-xs": "size-6 p-0 has-[>svg]:p-0",
1409
+ "icon-sm": "size-8 p-0 has-[>svg]:p-0"
1410
+ }
1411
+ },
1412
+ defaultVariants: {
1413
+ size: "xs"
1414
+ }
1415
+ }
1416
+ );
1417
+ var Combobox = react.Combobox.Root;
1418
+ function Dialog({
1419
+ ...props
1420
+ }) {
1421
+ return /* @__PURE__ */ jsxRuntime.jsx(radixUi.Dialog.Root, { "data-slot": "dialog", ...props });
1422
+ }
1423
+ function DialogTrigger({
1424
+ ...props
1425
+ }) {
1426
+ return /* @__PURE__ */ jsxRuntime.jsx(radixUi.Dialog.Trigger, { "data-slot": "dialog-trigger", ...props });
1427
+ }
1428
+ function DialogPortal({
1429
+ ...props
1430
+ }) {
1431
+ return /* @__PURE__ */ jsxRuntime.jsx(radixUi.Dialog.Portal, { "data-slot": "dialog-portal", ...props });
1432
+ }
1433
+ function DialogOverlay({
1434
+ className,
1435
+ ...props
1436
+ }) {
1437
+ return /* @__PURE__ */ jsxRuntime.jsx(
1438
+ radixUi.Dialog.Overlay,
1439
+ {
1440
+ "data-slot": "dialog-overlay",
1441
+ className: cn("data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 bg-black/80 duration-100 supports-backdrop-filter:backdrop-blur-xs fixed inset-0 isolate z-50", className),
1442
+ ...props
1443
+ }
1444
+ );
1445
+ }
1446
+ function DialogContent({
1447
+ className,
1448
+ children,
1449
+ showCloseButton = true,
1450
+ ...props
1451
+ }) {
1452
+ return /* @__PURE__ */ jsxRuntime.jsxs(DialogPortal, { children: [
1453
+ /* @__PURE__ */ jsxRuntime.jsx(DialogOverlay, {}),
1454
+ /* @__PURE__ */ jsxRuntime.jsxs(
1455
+ radixUi.Dialog.Content,
1456
+ {
1457
+ "data-slot": "dialog-content",
1458
+ className: cn(
1459
+ "bg-background data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-95 data-open:zoom-in-95 ring-foreground/10 grid max-w-[calc(100%-2rem)] gap-4 rounded-xl p-4 text-xs/relaxed ring-1 duration-100 sm:max-w-sm fixed top-1/2 left-1/2 z-50 w-full -translate-x-1/2 -translate-y-1/2",
1460
+ className
1461
+ ),
1462
+ ...props,
1463
+ children: [
1464
+ children,
1465
+ showCloseButton && /* @__PURE__ */ jsxRuntime.jsx(radixUi.Dialog.Close, { "data-slot": "dialog-close", asChild: true, children: /* @__PURE__ */ jsxRuntime.jsxs(Button, { variant: "ghost", className: "absolute top-2 right-2", size: "icon-sm", children: [
1466
+ /* @__PURE__ */ jsxRuntime.jsx(
1467
+ lucideReact.XIcon,
1468
+ {}
1469
+ ),
1470
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "sr-only", children: "Close" })
1471
+ ] }) })
1472
+ ]
1473
+ }
1474
+ )
1475
+ ] });
1476
+ }
1477
+ function DialogHeader({ className, ...props }) {
1478
+ return /* @__PURE__ */ jsxRuntime.jsx(
1479
+ "div",
1480
+ {
1481
+ "data-slot": "dialog-header",
1482
+ className: cn("gap-1 flex flex-col", className),
1483
+ ...props
1484
+ }
1485
+ );
1486
+ }
1487
+ function DialogFooter({
1488
+ className,
1489
+ showCloseButton = false,
1490
+ children,
1491
+ ...props
1492
+ }) {
1493
+ return /* @__PURE__ */ jsxRuntime.jsxs(
1494
+ "div",
1495
+ {
1496
+ "data-slot": "dialog-footer",
1497
+ className: cn(
1498
+ "gap-2 flex flex-col-reverse gap-2 sm:flex-row sm:justify-end",
1499
+ className
1500
+ ),
1501
+ ...props,
1502
+ children: [
1503
+ children,
1504
+ showCloseButton && /* @__PURE__ */ jsxRuntime.jsx(radixUi.Dialog.Close, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsx(Button, { variant: "outline", children: "Close" }) })
1505
+ ]
1506
+ }
1507
+ );
1508
+ }
1509
+ function DialogTitle({
1510
+ className,
1511
+ ...props
1512
+ }) {
1513
+ return /* @__PURE__ */ jsxRuntime.jsx(
1514
+ radixUi.Dialog.Title,
1515
+ {
1516
+ "data-slot": "dialog-title",
1517
+ className: cn("text-sm font-medium", className),
1518
+ ...props
1519
+ }
1520
+ );
1521
+ }
1522
+ function DialogDescription({
1523
+ className,
1524
+ ...props
1525
+ }) {
1526
+ return /* @__PURE__ */ jsxRuntime.jsx(
1527
+ radixUi.Dialog.Description,
1528
+ {
1529
+ "data-slot": "dialog-description",
1530
+ className: cn("text-muted-foreground *:[a]:hover:text-foreground text-xs/relaxed *:[a]:underline *:[a]:underline-offset-3", className),
1531
+ ...props
1532
+ }
1533
+ );
1534
+ }
1535
+ function Command({
1536
+ className,
1537
+ ...props
1538
+ }) {
1539
+ return /* @__PURE__ */ jsxRuntime.jsx(
1540
+ cmdk.Command,
1541
+ {
1542
+ "data-slot": "command",
1543
+ className: cn(
1544
+ "bg-popover text-popover-foreground rounded-xl p-1 flex size-full flex-col overflow-hidden",
1545
+ className
1546
+ ),
1547
+ ...props
1548
+ }
1549
+ );
1550
+ }
1551
+ function CommandDialog({
1552
+ title = "Command Palette",
1553
+ description = "Search for a command to run...",
1554
+ children,
1555
+ className,
1556
+ showCloseButton = false,
1557
+ ...props
1558
+ }) {
1559
+ return /* @__PURE__ */ jsxRuntime.jsxs(Dialog, { ...props, children: [
1560
+ /* @__PURE__ */ jsxRuntime.jsxs(DialogHeader, { className: "sr-only", children: [
1561
+ /* @__PURE__ */ jsxRuntime.jsx(DialogTitle, { children: title }),
1562
+ /* @__PURE__ */ jsxRuntime.jsx(DialogDescription, { children: description })
1563
+ ] }),
1564
+ /* @__PURE__ */ jsxRuntime.jsx(
1565
+ DialogContent,
1566
+ {
1567
+ className: cn("rounded-xl! p-0 overflow-hidden p-0", className),
1568
+ showCloseButton,
1569
+ children
1570
+ }
1571
+ )
1572
+ ] });
1573
+ }
1574
+ function CommandInput({
1575
+ className,
1576
+ ...props
1577
+ }) {
1578
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { "data-slot": "command-input-wrapper", className: "p-1 pb-0", children: /* @__PURE__ */ jsxRuntime.jsxs(InputGroup, { className: "bg-input/20 dark:bg-input/30 h-8!", children: [
1579
+ /* @__PURE__ */ jsxRuntime.jsx(
1580
+ cmdk.Command.Input,
1581
+ {
1582
+ "data-slot": "command-input",
1583
+ className: cn(
1584
+ "w-full text-xs/relaxed outline-hidden disabled:cursor-not-allowed disabled:opacity-50",
1585
+ className
1586
+ ),
1587
+ ...props
1588
+ }
1589
+ ),
1590
+ /* @__PURE__ */ jsxRuntime.jsx(InputGroupAddon, { children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.SearchIcon, { className: "size-3.5 shrink-0 opacity-50" }) })
1591
+ ] }) });
1592
+ }
1593
+ function CommandList({
1594
+ className,
1595
+ ...props
1596
+ }) {
1597
+ return /* @__PURE__ */ jsxRuntime.jsx(
1598
+ cmdk.Command.List,
1599
+ {
1600
+ "data-slot": "command-list",
1601
+ className: cn(
1602
+ "no-scrollbar max-h-72 scroll-py-1 outline-none overflow-x-hidden overflow-y-auto",
1603
+ className
1604
+ ),
1605
+ ...props
1606
+ }
1607
+ );
1608
+ }
1609
+ function CommandEmpty({
1610
+ className,
1611
+ ...props
1612
+ }) {
1613
+ return /* @__PURE__ */ jsxRuntime.jsx(
1614
+ cmdk.Command.Empty,
1615
+ {
1616
+ "data-slot": "command-empty",
1617
+ className: cn("py-6 text-center text-xs/relaxed", className),
1618
+ ...props
1619
+ }
1620
+ );
1621
+ }
1622
+ function CommandGroup({
1623
+ className,
1624
+ ...props
1625
+ }) {
1626
+ return /* @__PURE__ */ jsxRuntime.jsx(
1627
+ cmdk.Command.Group,
1628
+ {
1629
+ "data-slot": "command-group",
1630
+ className: cn("text-foreground [&_[cmdk-group-heading]]:text-muted-foreground overflow-hidden p-1 [&_[cmdk-group-heading]]:px-2.5 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium", className),
1631
+ ...props
1632
+ }
1633
+ );
1634
+ }
1635
+ function CommandSeparator({
1636
+ className,
1637
+ ...props
1638
+ }) {
1639
+ return /* @__PURE__ */ jsxRuntime.jsx(
1640
+ cmdk.Command.Separator,
1641
+ {
1642
+ "data-slot": "command-separator",
1643
+ className: cn("bg-border/50 -mx-1 my-1 h-px", className),
1644
+ ...props
1645
+ }
1646
+ );
1647
+ }
1648
+ function CommandItem({
1649
+ className,
1650
+ children,
1651
+ ...props
1652
+ }) {
1653
+ return /* @__PURE__ */ jsxRuntime.jsxs(
1654
+ cmdk.Command.Item,
1655
+ {
1656
+ "data-slot": "command-item",
1657
+ className: cn(
1658
+ "data-selected:bg-muted data-selected:text-foreground data-selected:*:[svg]:text-foreground relative flex min-h-7 cursor-default items-center gap-2 rounded-md px-2.5 py-1.5 text-xs/relaxed outline-hidden select-none [&_svg:not([class*='size-'])]:size-3.5 [[data-slot=dialog-content]_&]:rounded-md group/command-item data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0",
1659
+ className
1660
+ ),
1661
+ ...props,
1662
+ children: [
1663
+ children,
1664
+ /* @__PURE__ */ jsxRuntime.jsx(lucideReact.CheckIcon, { className: "ml-auto opacity-0 group-has-[[data-slot=command-shortcut]]/command-item:hidden group-data-[checked=true]/command-item:opacity-100" })
1665
+ ]
1666
+ }
1667
+ );
1668
+ }
1669
+ function CommandShortcut({
1670
+ className,
1671
+ ...props
1672
+ }) {
1673
+ return /* @__PURE__ */ jsxRuntime.jsx(
1674
+ "span",
1675
+ {
1676
+ "data-slot": "command-shortcut",
1677
+ className: cn("text-muted-foreground group-data-selected/command-item:text-foreground ml-auto text-[0.625rem] tracking-widest", className),
1678
+ ...props
1679
+ }
1680
+ );
1681
+ }
1682
+ function ContextMenu({
1683
+ ...props
1684
+ }) {
1685
+ return /* @__PURE__ */ jsxRuntime.jsx(radixUi.ContextMenu.Root, { "data-slot": "context-menu", ...props });
1686
+ }
1687
+ function ContextMenuTrigger({
1688
+ className,
1689
+ ...props
1690
+ }) {
1691
+ return /* @__PURE__ */ jsxRuntime.jsx(
1692
+ radixUi.ContextMenu.Trigger,
1693
+ {
1694
+ "data-slot": "context-menu-trigger",
1695
+ className: cn("select-none", className),
1696
+ ...props
1697
+ }
1698
+ );
1699
+ }
1700
+ function ContextMenuGroup({
1701
+ ...props
1702
+ }) {
1703
+ return /* @__PURE__ */ jsxRuntime.jsx(radixUi.ContextMenu.Group, { "data-slot": "context-menu-group", ...props });
1704
+ }
1705
+ function ContextMenuPortal({
1706
+ ...props
1707
+ }) {
1708
+ return /* @__PURE__ */ jsxRuntime.jsx(radixUi.ContextMenu.Portal, { "data-slot": "context-menu-portal", ...props });
1709
+ }
1710
+ function ContextMenuSub({
1711
+ ...props
1712
+ }) {
1713
+ return /* @__PURE__ */ jsxRuntime.jsx(radixUi.ContextMenu.Sub, { "data-slot": "context-menu-sub", ...props });
1714
+ }
1715
+ function ContextMenuRadioGroup({
1716
+ ...props
1717
+ }) {
1718
+ return /* @__PURE__ */ jsxRuntime.jsx(
1719
+ radixUi.ContextMenu.RadioGroup,
1720
+ {
1721
+ "data-slot": "context-menu-radio-group",
1722
+ ...props
1723
+ }
1724
+ );
1725
+ }
1726
+ function ContextMenuContent({
1727
+ className,
1728
+ ...props
1729
+ }) {
1730
+ return /* @__PURE__ */ jsxRuntime.jsx(radixUi.ContextMenu.Portal, { children: /* @__PURE__ */ jsxRuntime.jsx(
1731
+ radixUi.ContextMenu.Content,
1732
+ {
1733
+ "data-slot": "context-menu-content",
1734
+ className: cn("data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-95 data-open:zoom-in-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 ring-foreground/10 bg-popover text-popover-foreground min-w-32 rounded-lg p-1 shadow-md ring-1 duration-100 z-50 max-h-(--radix-context-menu-content-available-height) origin-(--radix-context-menu-content-transform-origin) overflow-x-hidden overflow-y-auto", className),
1735
+ ...props
1736
+ }
1737
+ ) });
1738
+ }
1739
+ function ContextMenuItem({
1740
+ className,
1741
+ inset,
1742
+ variant = "default",
1743
+ ...props
1744
+ }) {
1745
+ return /* @__PURE__ */ jsxRuntime.jsx(
1746
+ radixUi.ContextMenu.Item,
1747
+ {
1748
+ "data-slot": "context-menu-item",
1749
+ "data-inset": inset,
1750
+ "data-variant": variant,
1751
+ className: cn(
1752
+ "focus:bg-accent focus:text-accent-foreground data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 dark:data-[variant=destructive]:focus:bg-destructive/20 data-[variant=destructive]:focus:text-destructive data-[variant=destructive]:*:[svg]:text-destructive not-data-[variant=destructive]:focus:**:text-accent-foreground min-h-7 gap-2 rounded-md px-2 py-1 text-xs/relaxed [&_svg:not([class*='size-'])]:size-3.5 group/context-menu-item relative flex cursor-default items-center outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[inset]:pl-8 [&_svg]:pointer-events-none [&_svg]:shrink-0",
1753
+ className
1754
+ ),
1755
+ ...props
1756
+ }
1757
+ );
1758
+ }
1759
+ function ContextMenuSubTrigger({
1760
+ className,
1761
+ inset,
1762
+ children,
1763
+ ...props
1764
+ }) {
1765
+ return /* @__PURE__ */ jsxRuntime.jsxs(
1766
+ radixUi.ContextMenu.SubTrigger,
1767
+ {
1768
+ "data-slot": "context-menu-sub-trigger",
1769
+ "data-inset": inset,
1770
+ className: cn(
1771
+ "focus:bg-accent focus:text-accent-foreground data-open:bg-accent data-open:text-accent-foreground not-data-[variant=destructive]:focus:**:text-accent-foreground min-h-7 gap-2 rounded-md px-2 py-1 text-xs [&_svg:not([class*='size-'])]:size-3.5 flex cursor-default items-center outline-hidden select-none data-[inset]:pl-8 [&_svg]:pointer-events-none [&_svg]:shrink-0",
1772
+ className
1773
+ ),
1774
+ ...props,
1775
+ children: [
1776
+ children,
1777
+ /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronRightIcon, { className: "ml-auto" })
1778
+ ]
1779
+ }
1780
+ );
1781
+ }
1782
+ function ContextMenuSubContent({
1783
+ className,
1784
+ ...props
1785
+ }) {
1786
+ return /* @__PURE__ */ jsxRuntime.jsx(
1787
+ radixUi.ContextMenu.SubContent,
1788
+ {
1789
+ "data-slot": "context-menu-sub-content",
1790
+ className: cn("data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-95 data-open:zoom-in-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 ring-foreground/10 bg-popover text-popover-foreground min-w-32 rounded-lg p-1 shadow-md ring-1 duration-100 z-50 origin-(--radix-context-menu-content-transform-origin) overflow-hidden", className),
1791
+ ...props
1792
+ }
1793
+ );
1794
+ }
1795
+ function ContextMenuCheckboxItem({
1796
+ className,
1797
+ children,
1798
+ checked,
1799
+ ...props
1800
+ }) {
1801
+ return /* @__PURE__ */ jsxRuntime.jsxs(
1802
+ radixUi.ContextMenu.CheckboxItem,
1803
+ {
1804
+ "data-slot": "context-menu-checkbox-item",
1805
+ className: cn(
1806
+ "focus:bg-accent focus:text-accent-foreground focus:**:text-accent-foreground min-h-7 gap-2 rounded-md py-1.5 pr-8 pl-2 text-xs [&_svg:not([class*='size-'])]:size-3.5 relative flex cursor-default items-center outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0",
1807
+ className
1808
+ ),
1809
+ checked,
1810
+ ...props,
1811
+ children: [
1812
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "pointer-events-none absolute right-2 flex items-center justify-center pointer-events-none", children: /* @__PURE__ */ jsxRuntime.jsx(radixUi.ContextMenu.ItemIndicator, { children: /* @__PURE__ */ jsxRuntime.jsx(
1813
+ lucideReact.CheckIcon,
1814
+ {}
1815
+ ) }) }),
1816
+ children
1817
+ ]
1818
+ }
1819
+ );
1820
+ }
1821
+ function ContextMenuRadioItem({
1822
+ className,
1823
+ children,
1824
+ ...props
1825
+ }) {
1826
+ return /* @__PURE__ */ jsxRuntime.jsxs(
1827
+ radixUi.ContextMenu.RadioItem,
1828
+ {
1829
+ "data-slot": "context-menu-radio-item",
1830
+ className: cn(
1831
+ "focus:bg-accent focus:text-accent-foreground focus:**:text-accent-foreground min-h-7 gap-2 rounded-md py-1.5 pr-8 pl-2 text-xs [&_svg:not([class*='size-'])]:size-3.5 relative flex cursor-default items-center outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0",
1832
+ className
1833
+ ),
1834
+ ...props,
1835
+ children: [
1836
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "pointer-events-none absolute right-2 flex items-center justify-center pointer-events-none", children: /* @__PURE__ */ jsxRuntime.jsx(radixUi.ContextMenu.ItemIndicator, { children: /* @__PURE__ */ jsxRuntime.jsx(
1837
+ lucideReact.CheckIcon,
1838
+ {}
1839
+ ) }) }),
1840
+ children
1841
+ ]
1842
+ }
1843
+ );
1844
+ }
1845
+ function ContextMenuLabel({
1846
+ className,
1847
+ inset,
1848
+ ...props
1849
+ }) {
1850
+ return /* @__PURE__ */ jsxRuntime.jsx(
1851
+ radixUi.ContextMenu.Label,
1852
+ {
1853
+ "data-slot": "context-menu-label",
1854
+ "data-inset": inset,
1855
+ className: cn("text-muted-foreground px-2 py-1.5 text-xs data-[inset]:pl-8", className),
1856
+ ...props
1857
+ }
1858
+ );
1859
+ }
1860
+ function ContextMenuSeparator({
1861
+ className,
1862
+ ...props
1863
+ }) {
1864
+ return /* @__PURE__ */ jsxRuntime.jsx(
1865
+ radixUi.ContextMenu.Separator,
1866
+ {
1867
+ "data-slot": "context-menu-separator",
1868
+ className: cn("bg-border/50 -mx-1 my-1 h-px", className),
1869
+ ...props
1870
+ }
1871
+ );
1872
+ }
1873
+ function ContextMenuShortcut({
1874
+ className,
1875
+ ...props
1876
+ }) {
1877
+ return /* @__PURE__ */ jsxRuntime.jsx(
1878
+ "span",
1879
+ {
1880
+ "data-slot": "context-menu-shortcut",
1881
+ className: cn("text-muted-foreground group-focus/context-menu-item:text-accent-foreground ml-auto text-[0.625rem] tracking-widest", className),
1882
+ ...props
1883
+ }
1884
+ );
1885
+ }
1886
+ function Drawer({
1887
+ ...props
1888
+ }) {
1889
+ return /* @__PURE__ */ jsxRuntime.jsx(vaul.Drawer.Root, { "data-slot": "drawer", ...props });
1890
+ }
1891
+ function DrawerTrigger({
1892
+ ...props
1893
+ }) {
1894
+ return /* @__PURE__ */ jsxRuntime.jsx(vaul.Drawer.Trigger, { "data-slot": "drawer-trigger", ...props });
1895
+ }
1896
+ function DrawerPortal({
1897
+ ...props
1898
+ }) {
1899
+ return /* @__PURE__ */ jsxRuntime.jsx(vaul.Drawer.Portal, { "data-slot": "drawer-portal", ...props });
1900
+ }
1901
+ function DrawerClose({
1902
+ ...props
1903
+ }) {
1904
+ return /* @__PURE__ */ jsxRuntime.jsx(vaul.Drawer.Close, { "data-slot": "drawer-close", ...props });
1905
+ }
1906
+ function DrawerOverlay({
1907
+ className,
1908
+ ...props
1909
+ }) {
1910
+ return /* @__PURE__ */ jsxRuntime.jsx(
1911
+ vaul.Drawer.Overlay,
1912
+ {
1913
+ "data-slot": "drawer-overlay",
1914
+ className: cn("data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 bg-black/80 supports-backdrop-filter:backdrop-blur-xs fixed inset-0 z-50", className),
1915
+ ...props
1916
+ }
1917
+ );
1918
+ }
1919
+ function DrawerContent({
1920
+ className,
1921
+ children,
1922
+ ...props
1923
+ }) {
1924
+ return /* @__PURE__ */ jsxRuntime.jsxs(DrawerPortal, { "data-slot": "drawer-portal", children: [
1925
+ /* @__PURE__ */ jsxRuntime.jsx(DrawerOverlay, {}),
1926
+ /* @__PURE__ */ jsxRuntime.jsxs(
1927
+ vaul.Drawer.Content,
1928
+ {
1929
+ "data-slot": "drawer-content",
1930
+ className: cn(
1931
+ "before:bg-background relative flex h-auto flex-col bg-transparent p-2 text-xs/relaxed before:absolute before:inset-2 before:-z-10 before:rounded-xl data-[vaul-drawer-direction=bottom]:inset-x-0 data-[vaul-drawer-direction=bottom]:bottom-0 data-[vaul-drawer-direction=bottom]:mt-24 data-[vaul-drawer-direction=bottom]:max-h-[80vh] data-[vaul-drawer-direction=left]:inset-y-0 data-[vaul-drawer-direction=left]:left-0 data-[vaul-drawer-direction=left]:w-3/4 data-[vaul-drawer-direction=right]:inset-y-0 data-[vaul-drawer-direction=right]:right-0 data-[vaul-drawer-direction=right]:w-3/4 data-[vaul-drawer-direction=top]:inset-x-0 data-[vaul-drawer-direction=top]:top-0 data-[vaul-drawer-direction=top]:mb-24 data-[vaul-drawer-direction=top]:max-h-[80vh] data-[vaul-drawer-direction=left]:sm:max-w-sm data-[vaul-drawer-direction=right]:sm:max-w-sm group/drawer-content fixed z-50",
1932
+ className
1933
+ ),
1934
+ ...props,
1935
+ children: [
1936
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "bg-muted mx-auto mt-4 hidden h-1.5 w-[100px] shrink-0 rounded-full group-data-[vaul-drawer-direction=bottom]/drawer-content:block bg-muted mx-auto hidden shrink-0 group-data-[vaul-drawer-direction=bottom]/drawer-content:block" }),
1937
+ children
1938
+ ]
1939
+ }
1940
+ )
1941
+ ] });
1942
+ }
1943
+ function DrawerHeader({ className, ...props }) {
1944
+ return /* @__PURE__ */ jsxRuntime.jsx(
1945
+ "div",
1946
+ {
1947
+ "data-slot": "drawer-header",
1948
+ className: cn("gap-1 p-4 group-data-[vaul-drawer-direction=bottom]/drawer-content:text-center group-data-[vaul-drawer-direction=top]/drawer-content:text-center md:text-left flex flex-col", className),
1949
+ ...props
1950
+ }
1951
+ );
1952
+ }
1953
+ function DrawerFooter({ className, ...props }) {
1954
+ return /* @__PURE__ */ jsxRuntime.jsx(
1955
+ "div",
1956
+ {
1957
+ "data-slot": "drawer-footer",
1958
+ className: cn("gap-2 p-4 mt-auto flex flex-col", className),
1959
+ ...props
1960
+ }
1961
+ );
1962
+ }
1963
+ function DrawerTitle({
1964
+ className,
1965
+ ...props
1966
+ }) {
1967
+ return /* @__PURE__ */ jsxRuntime.jsx(
1968
+ vaul.Drawer.Title,
1969
+ {
1970
+ "data-slot": "drawer-title",
1971
+ className: cn("text-foreground text-sm font-medium", className),
1972
+ ...props
1973
+ }
1974
+ );
1975
+ }
1976
+ function DrawerDescription({
1977
+ className,
1978
+ ...props
1979
+ }) {
1980
+ return /* @__PURE__ */ jsxRuntime.jsx(
1981
+ vaul.Drawer.Description,
1982
+ {
1983
+ "data-slot": "drawer-description",
1984
+ className: cn("text-muted-foreground text-xs/relaxed", className),
1985
+ ...props
1986
+ }
1987
+ );
1988
+ }
1989
+ function DropdownMenu({
1990
+ ...props
1991
+ }) {
1992
+ return /* @__PURE__ */ jsxRuntime.jsx(radixUi.DropdownMenu.Root, { "data-slot": "dropdown-menu", ...props });
1993
+ }
1994
+ function DropdownMenuPortal({
1995
+ ...props
1996
+ }) {
1997
+ return /* @__PURE__ */ jsxRuntime.jsx(radixUi.DropdownMenu.Portal, { "data-slot": "dropdown-menu-portal", ...props });
1998
+ }
1999
+ function DropdownMenuTrigger({
2000
+ ...props
2001
+ }) {
2002
+ return /* @__PURE__ */ jsxRuntime.jsx(
2003
+ radixUi.DropdownMenu.Trigger,
2004
+ {
2005
+ "data-slot": "dropdown-menu-trigger",
2006
+ ...props
2007
+ }
2008
+ );
2009
+ }
2010
+ function DropdownMenuContent({
2011
+ className,
2012
+ align = "start",
2013
+ sideOffset = 4,
2014
+ ...props
2015
+ }) {
2016
+ return /* @__PURE__ */ jsxRuntime.jsx(radixUi.DropdownMenu.Portal, { children: /* @__PURE__ */ jsxRuntime.jsx(
2017
+ radixUi.DropdownMenu.Content,
2018
+ {
2019
+ "data-slot": "dropdown-menu-content",
2020
+ sideOffset,
2021
+ align,
2022
+ className: cn("data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-95 data-open:zoom-in-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 ring-foreground/10 bg-popover text-popover-foreground min-w-32 rounded-lg p-1 shadow-md ring-1 duration-100 z-50 max-h-(--radix-dropdown-menu-content-available-height) w-(--radix-dropdown-menu-trigger-width) origin-(--radix-dropdown-menu-content-transform-origin) overflow-x-hidden overflow-y-auto data-[state=closed]:overflow-hidden", className),
2023
+ ...props
2024
+ }
2025
+ ) });
2026
+ }
2027
+ function DropdownMenuGroup({
2028
+ ...props
2029
+ }) {
2030
+ return /* @__PURE__ */ jsxRuntime.jsx(radixUi.DropdownMenu.Group, { "data-slot": "dropdown-menu-group", ...props });
2031
+ }
2032
+ function DropdownMenuItem({
2033
+ className,
2034
+ inset,
2035
+ variant = "default",
2036
+ ...props
2037
+ }) {
2038
+ return /* @__PURE__ */ jsxRuntime.jsx(
2039
+ radixUi.DropdownMenu.Item,
2040
+ {
2041
+ "data-slot": "dropdown-menu-item",
2042
+ "data-inset": inset,
2043
+ "data-variant": variant,
2044
+ className: cn(
2045
+ "focus:bg-accent focus:text-accent-foreground data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 dark:data-[variant=destructive]:focus:bg-destructive/20 data-[variant=destructive]:focus:text-destructive data-[variant=destructive]:*:[svg]:text-destructive not-data-[variant=destructive]:focus:**:text-accent-foreground min-h-7 gap-2 rounded-md px-2 py-1 text-xs/relaxed [&_svg:not([class*='size-'])]:size-3.5 group/dropdown-menu-item relative flex cursor-default items-center outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[inset]:pl-8 [&_svg]:pointer-events-none [&_svg]:shrink-0",
2046
+ className
2047
+ ),
2048
+ ...props
2049
+ }
2050
+ );
2051
+ }
2052
+ function DropdownMenuCheckboxItem({
2053
+ className,
2054
+ children,
2055
+ checked,
2056
+ ...props
2057
+ }) {
2058
+ return /* @__PURE__ */ jsxRuntime.jsxs(
2059
+ radixUi.DropdownMenu.CheckboxItem,
2060
+ {
2061
+ "data-slot": "dropdown-menu-checkbox-item",
2062
+ className: cn(
2063
+ "focus:bg-accent focus:text-accent-foreground focus:**:text-accent-foreground min-h-7 gap-2 rounded-md py-1.5 pr-8 pl-2 text-xs [&_svg:not([class*='size-'])]:size-3.5 relative flex cursor-default items-center outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0",
2064
+ className
2065
+ ),
2066
+ checked,
2067
+ ...props,
2068
+ children: [
2069
+ /* @__PURE__ */ jsxRuntime.jsx(
2070
+ "span",
2071
+ {
2072
+ className: "pointer-events-none absolute right-2 flex items-center justify-center pointer-events-none",
2073
+ "data-slot": "dropdown-menu-checkbox-item-indicator",
2074
+ children: /* @__PURE__ */ jsxRuntime.jsx(radixUi.DropdownMenu.ItemIndicator, { children: /* @__PURE__ */ jsxRuntime.jsx(
2075
+ lucideReact.CheckIcon,
2076
+ {}
2077
+ ) })
2078
+ }
2079
+ ),
2080
+ children
2081
+ ]
2082
+ }
2083
+ );
2084
+ }
2085
+ function DropdownMenuRadioGroup({
2086
+ ...props
2087
+ }) {
2088
+ return /* @__PURE__ */ jsxRuntime.jsx(
2089
+ radixUi.DropdownMenu.RadioGroup,
2090
+ {
2091
+ "data-slot": "dropdown-menu-radio-group",
2092
+ ...props
2093
+ }
2094
+ );
2095
+ }
2096
+ function DropdownMenuRadioItem({
2097
+ className,
2098
+ children,
2099
+ ...props
2100
+ }) {
2101
+ return /* @__PURE__ */ jsxRuntime.jsxs(
2102
+ radixUi.DropdownMenu.RadioItem,
2103
+ {
2104
+ "data-slot": "dropdown-menu-radio-item",
2105
+ className: cn(
2106
+ "focus:bg-accent focus:text-accent-foreground focus:**:text-accent-foreground min-h-7 gap-2 rounded-md py-1.5 pr-8 pl-2 text-xs [&_svg:not([class*='size-'])]:size-3.5 relative flex cursor-default items-center outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0",
2107
+ className
2108
+ ),
2109
+ ...props,
2110
+ children: [
2111
+ /* @__PURE__ */ jsxRuntime.jsx(
2112
+ "span",
2113
+ {
2114
+ className: "pointer-events-none absolute right-2 flex items-center justify-center pointer-events-none",
2115
+ "data-slot": "dropdown-menu-radio-item-indicator",
2116
+ children: /* @__PURE__ */ jsxRuntime.jsx(radixUi.DropdownMenu.ItemIndicator, { children: /* @__PURE__ */ jsxRuntime.jsx(
2117
+ lucideReact.CheckIcon,
2118
+ {}
2119
+ ) })
2120
+ }
2121
+ ),
2122
+ children
2123
+ ]
2124
+ }
2125
+ );
2126
+ }
2127
+ function DropdownMenuLabel({
2128
+ className,
2129
+ inset,
2130
+ ...props
2131
+ }) {
2132
+ return /* @__PURE__ */ jsxRuntime.jsx(
2133
+ radixUi.DropdownMenu.Label,
2134
+ {
2135
+ "data-slot": "dropdown-menu-label",
2136
+ "data-inset": inset,
2137
+ className: cn("text-muted-foreground px-2 py-1.5 text-xs data-[inset]:pl-8", className),
2138
+ ...props
2139
+ }
2140
+ );
2141
+ }
2142
+ function DropdownMenuSeparator({
2143
+ className,
2144
+ ...props
2145
+ }) {
2146
+ return /* @__PURE__ */ jsxRuntime.jsx(
2147
+ radixUi.DropdownMenu.Separator,
2148
+ {
2149
+ "data-slot": "dropdown-menu-separator",
2150
+ className: cn("bg-border/50 -mx-1 my-1 h-px", className),
2151
+ ...props
2152
+ }
2153
+ );
2154
+ }
2155
+ function DropdownMenuShortcut({
2156
+ className,
2157
+ ...props
2158
+ }) {
2159
+ return /* @__PURE__ */ jsxRuntime.jsx(
2160
+ "span",
2161
+ {
2162
+ "data-slot": "dropdown-menu-shortcut",
2163
+ className: cn("text-muted-foreground group-focus/dropdown-menu-item:text-accent-foreground ml-auto text-[0.625rem] tracking-widest", className),
2164
+ ...props
2165
+ }
2166
+ );
2167
+ }
2168
+ function DropdownMenuSub({
2169
+ ...props
2170
+ }) {
2171
+ return /* @__PURE__ */ jsxRuntime.jsx(radixUi.DropdownMenu.Sub, { "data-slot": "dropdown-menu-sub", ...props });
2172
+ }
2173
+ function DropdownMenuSubTrigger({
2174
+ className,
2175
+ inset,
2176
+ children,
2177
+ ...props
2178
+ }) {
2179
+ return /* @__PURE__ */ jsxRuntime.jsxs(
2180
+ radixUi.DropdownMenu.SubTrigger,
2181
+ {
2182
+ "data-slot": "dropdown-menu-sub-trigger",
2183
+ "data-inset": inset,
2184
+ className: cn(
2185
+ "focus:bg-accent focus:text-accent-foreground data-open:bg-accent data-open:text-accent-foreground not-data-[variant=destructive]:focus:**:text-accent-foreground min-h-7 gap-2 rounded-md px-2 py-1 text-xs [&_svg:not([class*='size-'])]:size-3.5 flex cursor-default items-center outline-hidden select-none data-[inset]:pl-8 [&_svg]:pointer-events-none [&_svg]:shrink-0",
2186
+ className
2187
+ ),
2188
+ ...props,
2189
+ children: [
2190
+ children,
2191
+ /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronRightIcon, { className: "ml-auto" })
2192
+ ]
2193
+ }
2194
+ );
2195
+ }
2196
+ function DropdownMenuSubContent({
2197
+ className,
2198
+ ...props
2199
+ }) {
2200
+ return /* @__PURE__ */ jsxRuntime.jsx(
2201
+ radixUi.DropdownMenu.SubContent,
2202
+ {
2203
+ "data-slot": "dropdown-menu-sub-content",
2204
+ className: cn("data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-95 data-open:zoom-in-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 ring-foreground/10 bg-popover text-popover-foreground min-w-32 rounded-lg p-1 shadow-md ring-1 duration-100 z-50 origin-(--radix-dropdown-menu-content-transform-origin) overflow-hidden", className),
2205
+ ...props
2206
+ }
2207
+ );
2208
+ }
2209
+ function Empty({ className, ...props }) {
2210
+ return /* @__PURE__ */ jsxRuntime.jsx(
2211
+ "div",
2212
+ {
2213
+ "data-slot": "empty",
2214
+ className: cn(
2215
+ "gap-4 rounded-xl border-dashed p-6 flex w-full min-w-0 flex-1 flex-col items-center justify-center text-center text-balance",
2216
+ className
2217
+ ),
2218
+ ...props
2219
+ }
2220
+ );
2221
+ }
2222
+ classVarianceAuthority.cva(
2223
+ "mb-2 flex shrink-0 items-center justify-center [&_svg]:pointer-events-none [&_svg]:shrink-0",
2224
+ {
2225
+ variants: {
2226
+ variant: {
2227
+ default: "bg-transparent",
2228
+ icon: "bg-muted text-foreground flex size-8 shrink-0 items-center justify-center rounded-md [&_svg:not([class*='size-'])]:size-4"
2229
+ }
2230
+ },
2231
+ defaultVariants: {
2232
+ variant: "default"
2233
+ }
2234
+ }
2235
+ );
2236
+ function Label({
2237
+ className,
2238
+ ...props
2239
+ }) {
2240
+ return /* @__PURE__ */ jsxRuntime.jsx(
2241
+ radixUi.Label.Root,
2242
+ {
2243
+ "data-slot": "label",
2244
+ className: cn(
2245
+ "gap-2 text-xs/relaxed leading-none font-medium group-data-[disabled=true]:opacity-50 peer-disabled:opacity-50 flex items-center select-none group-data-[disabled=true]:pointer-events-none peer-disabled:cursor-not-allowed",
2246
+ className
2247
+ ),
2248
+ ...props
2249
+ }
2250
+ );
2251
+ }
2252
+ function FieldGroup({ className, ...props }) {
2253
+ return /* @__PURE__ */ jsxRuntime.jsx(
2254
+ "div",
2255
+ {
2256
+ "data-slot": "field-group",
2257
+ className: cn(
2258
+ "gap-4 data-[slot=checkbox-group]:gap-3 [&>[data-slot=field-group]]:gap-4 group/field-group @container/field-group flex w-full flex-col",
2259
+ className
2260
+ ),
2261
+ ...props
2262
+ }
2263
+ );
2264
+ }
2265
+ var fieldVariants = classVarianceAuthority.cva("data-[invalid=true]:text-destructive gap-2 group/field flex w-full", {
2266
+ variants: {
2267
+ orientation: {
2268
+ vertical: "flex-col [&>*]:w-full [&>.sr-only]:w-auto",
2269
+ horizontal: "flex-row items-center [&>[data-slot=field-label]]:flex-auto has-[>[data-slot=field-content]]:items-start has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radio]]:mt-px",
2270
+ responsive: "flex-col [&>*]:w-full [&>.sr-only]:w-auto @md/field-group:flex-row @md/field-group:items-center @md/field-group:[&>*]:w-auto @md/field-group:[&>[data-slot=field-label]]:flex-auto @md/field-group:has-[>[data-slot=field-content]]:items-start @md/field-group:has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radio]]:mt-px"
2271
+ }
2272
+ },
2273
+ defaultVariants: {
2274
+ orientation: "vertical"
2275
+ }
2276
+ });
2277
+ function Field({
2278
+ className,
2279
+ orientation = "vertical",
2280
+ ...props
2281
+ }) {
2282
+ return /* @__PURE__ */ jsxRuntime.jsx(
2283
+ "div",
2284
+ {
2285
+ role: "group",
2286
+ "data-slot": "field",
2287
+ "data-orientation": orientation,
2288
+ className: cn(fieldVariants({ orientation }), className),
2289
+ ...props
2290
+ }
2291
+ );
2292
+ }
2293
+ function FieldLabel({
2294
+ className,
2295
+ ...props
2296
+ }) {
2297
+ return /* @__PURE__ */ jsxRuntime.jsx(
2298
+ Label,
2299
+ {
2300
+ "data-slot": "field-label",
2301
+ className: cn(
2302
+ "has-data-checked:bg-primary/5 dark:has-data-checked:bg-primary/10 gap-2 group-data-[disabled=true]/field:opacity-50 has-[>[data-slot=field]]:rounded-md has-[>[data-slot=field]]:border [&>*]:data-[slot=field]:p-2 group/field-label peer/field-label flex w-fit leading-snug",
2303
+ "has-[>[data-slot=field]]:w-full has-[>[data-slot=field]]:flex-col",
2304
+ className
2305
+ ),
2306
+ ...props
2307
+ }
2308
+ );
2309
+ }
2310
+ function FieldDescription({ className, ...props }) {
2311
+ return /* @__PURE__ */ jsxRuntime.jsx(
2312
+ "p",
2313
+ {
2314
+ "data-slot": "field-description",
2315
+ className: cn(
2316
+ "text-muted-foreground text-left text-xs/relaxed [[data-variant=legend]+&]:-mt-1.5 leading-normal font-normal group-has-[[data-orientation=horizontal]]/field:text-balance",
2317
+ "last:mt-0 nth-last-2:-mt-1",
2318
+ "[&>a:hover]:text-primary [&>a]:underline [&>a]:underline-offset-4",
2319
+ className
2320
+ ),
2321
+ ...props
2322
+ }
2323
+ );
2324
+ }
2325
+ function FieldError({
2326
+ className,
2327
+ children,
2328
+ errors,
2329
+ ...props
2330
+ }) {
2331
+ const content = React2.useMemo(() => {
2332
+ if (children) {
2333
+ return children;
2334
+ }
2335
+ if (!errors?.length) {
2336
+ return null;
2337
+ }
2338
+ const uniqueErrors = [
2339
+ ...new Map(errors.map((error) => [error?.message, error])).values()
2340
+ ];
2341
+ if (uniqueErrors?.length == 1) {
2342
+ return uniqueErrors[0]?.message;
2343
+ }
2344
+ return /* @__PURE__ */ jsxRuntime.jsx("ul", { className: "ml-4 flex list-disc flex-col gap-1", children: uniqueErrors.map(
2345
+ (error, index) => error?.message && /* @__PURE__ */ jsxRuntime.jsx("li", { children: error.message }, index)
2346
+ ) });
2347
+ }, [children, errors]);
2348
+ if (!content) {
2349
+ return null;
2350
+ }
2351
+ return /* @__PURE__ */ jsxRuntime.jsx(
2352
+ "div",
2353
+ {
2354
+ role: "alert",
2355
+ "data-slot": "field-error",
2356
+ className: cn("text-destructive text-xs/relaxed font-normal", className),
2357
+ ...props,
2358
+ children: content
2359
+ }
2360
+ );
2361
+ }
2362
+ function HoverCard({
2363
+ ...props
2364
+ }) {
2365
+ return /* @__PURE__ */ jsxRuntime.jsx(radixUi.HoverCard.Root, { "data-slot": "hover-card", ...props });
2366
+ }
2367
+ function HoverCardTrigger({
2368
+ ...props
2369
+ }) {
2370
+ return /* @__PURE__ */ jsxRuntime.jsx(radixUi.HoverCard.Trigger, { "data-slot": "hover-card-trigger", ...props });
2371
+ }
2372
+ function HoverCardContent({
2373
+ className,
2374
+ align = "center",
2375
+ sideOffset = 4,
2376
+ ...props
2377
+ }) {
2378
+ return /* @__PURE__ */ jsxRuntime.jsx(radixUi.HoverCard.Portal, { "data-slot": "hover-card-portal", children: /* @__PURE__ */ jsxRuntime.jsx(
2379
+ radixUi.HoverCard.Content,
2380
+ {
2381
+ "data-slot": "hover-card-content",
2382
+ align,
2383
+ sideOffset,
2384
+ className: cn(
2385
+ "data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-95 data-open:zoom-in-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 ring-foreground/10 bg-popover text-popover-foreground w-72 rounded-lg p-2.5 text-xs/relaxed shadow-md ring-1 duration-100 z-50 origin-(--radix-hover-card-content-transform-origin) outline-hidden",
2386
+ className
2387
+ ),
2388
+ ...props
2389
+ }
2390
+ ) });
2391
+ }
2392
+ function InputOTP({
2393
+ className,
2394
+ containerClassName,
2395
+ ...props
2396
+ }) {
2397
+ return /* @__PURE__ */ jsxRuntime.jsx(
2398
+ inputOtp.OTPInput,
2399
+ {
2400
+ "data-slot": "input-otp",
2401
+ containerClassName: cn(
2402
+ "cn-input-otp flex items-center has-disabled:opacity-50",
2403
+ containerClassName
2404
+ ),
2405
+ spellCheck: false,
2406
+ className: cn(
2407
+ "disabled:cursor-not-allowed",
2408
+ className
2409
+ ),
2410
+ ...props
2411
+ }
2412
+ );
2413
+ }
2414
+ function InputOTPGroup({ className, ...props }) {
2415
+ return /* @__PURE__ */ jsxRuntime.jsx(
2416
+ "div",
2417
+ {
2418
+ "data-slot": "input-otp-group",
2419
+ className: cn("has-aria-invalid:ring-destructive/20 dark:has-aria-invalid:ring-destructive/40 has-aria-invalid:border-destructive rounded-md has-aria-invalid:ring-[2px] flex items-center", className),
2420
+ ...props
2421
+ }
2422
+ );
2423
+ }
2424
+ function InputOTPSlot({
2425
+ index,
2426
+ className,
2427
+ ...props
2428
+ }) {
2429
+ const inputOTPContext = React2__namespace.useContext(inputOtp.OTPInputContext);
2430
+ const { char, hasFakeCaret, isActive } = inputOTPContext?.slots[index] ?? {};
2431
+ return /* @__PURE__ */ jsxRuntime.jsxs(
2432
+ "div",
2433
+ {
2434
+ "data-slot": "input-otp-slot",
2435
+ "data-active": isActive,
2436
+ className: cn(
2437
+ "bg-input/20 dark:bg-input/30 border-input data-[active=true]:border-ring data-[active=true]:ring-ring/30 data-[active=true]:aria-invalid:ring-destructive/20 dark:data-[active=true]:aria-invalid:ring-destructive/40 aria-invalid:border-destructive data-[active=true]:aria-invalid:border-destructive size-7 border-y border-r text-xs/relaxed transition-all outline-none first:rounded-l-md first:border-l last:rounded-r-md data-[active=true]:ring-[2px] relative flex items-center justify-center data-[active=true]:z-10",
2438
+ className
2439
+ ),
2440
+ ...props,
2441
+ children: [
2442
+ char,
2443
+ hasFakeCaret && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "pointer-events-none absolute inset-0 flex items-center justify-center", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "animate-caret-blink bg-foreground h-4 w-px duration-1000 bg-foreground h-4 w-px" }) })
2444
+ ]
2445
+ }
2446
+ );
2447
+ }
2448
+ function InputOTPSeparator({ ...props }) {
2449
+ return /* @__PURE__ */ jsxRuntime.jsx(
2450
+ "div",
2451
+ {
2452
+ "data-slot": "input-otp-separator",
2453
+ className: "[&_svg:not([class*='size-'])]:size-4 flex items-center",
2454
+ role: "separator",
2455
+ ...props,
2456
+ children: /* @__PURE__ */ jsxRuntime.jsx(
2457
+ lucideReact.MinusIcon,
2458
+ {}
2459
+ )
2460
+ }
2461
+ );
2462
+ }
2463
+ var itemVariants = classVarianceAuthority.cva(
2464
+ "[a]:hover:bg-muted rounded-md border text-xs/relaxed w-full group/item focus-visible:border-ring focus-visible:ring-ring/50 flex items-center flex-wrap outline-none transition-colors duration-100 focus-visible:ring-[3px] [a]:transition-colors",
2465
+ {
2466
+ variants: {
2467
+ variant: {
2468
+ default: "border-transparent",
2469
+ outline: "border-border",
2470
+ muted: "bg-muted/50 border-transparent"
2471
+ },
2472
+ size: {
2473
+ default: "gap-2.5 px-3 py-2.5",
2474
+ sm: "gap-2.5 px-3 py-2.5",
2475
+ xs: "gap-2.5 px-2.5 py-2 [[data-slot=dropdown-menu-content]_&]:p-0"
2476
+ }
2477
+ },
2478
+ defaultVariants: {
2479
+ variant: "default",
2480
+ size: "default"
2481
+ }
2482
+ }
2483
+ );
2484
+ function Item({
2485
+ className,
2486
+ variant = "default",
2487
+ size = "default",
2488
+ asChild = false,
2489
+ ...props
2490
+ }) {
2491
+ const Comp = asChild ? radixUi.Slot.Root : "div";
2492
+ return /* @__PURE__ */ jsxRuntime.jsx(
2493
+ Comp,
2494
+ {
2495
+ "data-slot": "item",
2496
+ "data-variant": variant,
2497
+ "data-size": size,
2498
+ className: cn(itemVariants({ variant, size, className })),
2499
+ ...props
2500
+ }
2501
+ );
2502
+ }
2503
+ classVarianceAuthority.cva(
2504
+ "gap-2 group-has-[[data-slot=item-description]]/item:translate-y-0.5 group-has-[[data-slot=item-description]]/item:self-start flex shrink-0 items-center justify-center [&_svg]:pointer-events-none",
2505
+ {
2506
+ variants: {
2507
+ variant: {
2508
+ default: "bg-transparent",
2509
+ icon: "[&_svg:not([class*='size-'])]:size-4",
2510
+ image: "size-8 overflow-hidden rounded-sm group-data-[size=sm]/item:size-8 group-data-[size=xs]/item:size-6 [&_img]:size-full [&_img]:object-cover"
2511
+ }
2512
+ },
2513
+ defaultVariants: {
2514
+ variant: "default"
2515
+ }
2516
+ }
2517
+ );
2518
+ function Kbd({ className, ...props }) {
2519
+ return /* @__PURE__ */ jsxRuntime.jsx(
2520
+ "kbd",
2521
+ {
2522
+ "data-slot": "kbd",
2523
+ className: cn(
2524
+ "bg-muted text-muted-foreground [[data-slot=tooltip-content]_&]:bg-background/20 [[data-slot=tooltip-content]_&]:text-background dark:[[data-slot=tooltip-content]_&]:bg-background/10 h-5 w-fit min-w-5 gap-1 rounded-xs px-1 font-sans text-[0.625rem] font-medium [&_svg:not([class*='size-'])]:size-3 pointer-events-none inline-flex items-center justify-center select-none",
2525
+ className
2526
+ ),
2527
+ ...props
2528
+ }
2529
+ );
2530
+ }
2531
+ function Menubar({
2532
+ className,
2533
+ ...props
2534
+ }) {
2535
+ return /* @__PURE__ */ jsxRuntime.jsx(
2536
+ radixUi.Menubar.Root,
2537
+ {
2538
+ "data-slot": "menubar",
2539
+ className: cn("bg-background h-9 rounded-md border p-1 flex items-center", className),
2540
+ ...props
2541
+ }
2542
+ );
2543
+ }
2544
+ function MenubarMenu({
2545
+ ...props
2546
+ }) {
2547
+ return /* @__PURE__ */ jsxRuntime.jsx(radixUi.Menubar.Menu, { "data-slot": "menubar-menu", ...props });
2548
+ }
2549
+ function MenubarGroup({
2550
+ ...props
2551
+ }) {
2552
+ return /* @__PURE__ */ jsxRuntime.jsx(radixUi.Menubar.Group, { "data-slot": "menubar-group", ...props });
2553
+ }
2554
+ function MenubarPortal({
2555
+ ...props
2556
+ }) {
2557
+ return /* @__PURE__ */ jsxRuntime.jsx(radixUi.Menubar.Portal, { "data-slot": "menubar-portal", ...props });
2558
+ }
2559
+ function MenubarRadioGroup({
2560
+ ...props
2561
+ }) {
2562
+ return /* @__PURE__ */ jsxRuntime.jsx(radixUi.Menubar.RadioGroup, { "data-slot": "menubar-radio-group", ...props });
2563
+ }
2564
+ function MenubarTrigger({
2565
+ className,
2566
+ ...props
2567
+ }) {
2568
+ return /* @__PURE__ */ jsxRuntime.jsx(
2569
+ radixUi.Menubar.Trigger,
2570
+ {
2571
+ "data-slot": "menubar-trigger",
2572
+ className: cn(
2573
+ "hover:bg-muted aria-expanded:bg-muted rounded-[calc(var(--radius-sm)-2px)] px-2 py-[calc(--spacing(0.875))] text-xs/relaxed font-medium flex items-center outline-hidden select-none",
2574
+ className
2575
+ ),
2576
+ ...props
2577
+ }
2578
+ );
2579
+ }
2580
+ function MenubarContent({
2581
+ className,
2582
+ align = "start",
2583
+ alignOffset = -4,
2584
+ sideOffset = 8,
2585
+ ...props
2586
+ }) {
2587
+ return /* @__PURE__ */ jsxRuntime.jsx(MenubarPortal, { children: /* @__PURE__ */ jsxRuntime.jsx(
2588
+ radixUi.Menubar.Content,
2589
+ {
2590
+ "data-slot": "menubar-content",
2591
+ align,
2592
+ alignOffset,
2593
+ sideOffset,
2594
+ className: cn("bg-popover text-popover-foreground data-open:animate-in data-open:fade-in-0 data-open:zoom-in-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 ring-foreground/10 min-w-32 rounded-lg p-1 shadow-md ring-1 duration-100 z-50 origin-(--radix-menubar-content-transform-origin) overflow-hidden", className),
2595
+ ...props
2596
+ }
2597
+ ) });
2598
+ }
2599
+ function MenubarItem({
2600
+ className,
2601
+ inset,
2602
+ variant = "default",
2603
+ ...props
2604
+ }) {
2605
+ return /* @__PURE__ */ jsxRuntime.jsx(
2606
+ radixUi.Menubar.Item,
2607
+ {
2608
+ "data-slot": "menubar-item",
2609
+ "data-inset": inset,
2610
+ "data-variant": variant,
2611
+ className: cn(
2612
+ "focus:bg-accent focus:text-accent-foreground data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 dark:data-[variant=destructive]:focus:bg-destructive/20 data-[variant=destructive]:focus:text-destructive data-[variant=destructive]:*:[svg]:!text-destructive not-data-[variant=destructive]:focus:**:text-accent-foreground min-h-7 gap-2 rounded-md px-2 py-1 text-xs/relaxed data-[disabled]:opacity-50 data-[inset]:pl-8 [&_svg:not([class*='size-'])]:size-3.5 group/menubar-item relative flex cursor-default items-center outline-hidden select-none data-[disabled]:pointer-events-none [&_svg]:pointer-events-none [&_svg]:shrink-0",
2613
+ className
2614
+ ),
2615
+ ...props
2616
+ }
2617
+ );
2618
+ }
2619
+ function MenubarCheckboxItem({
2620
+ className,
2621
+ children,
2622
+ checked,
2623
+ ...props
2624
+ }) {
2625
+ return /* @__PURE__ */ jsxRuntime.jsxs(
2626
+ radixUi.Menubar.CheckboxItem,
2627
+ {
2628
+ "data-slot": "menubar-checkbox-item",
2629
+ className: cn(
2630
+ "focus:bg-accent focus:text-accent-foreground focus:**:text-accent-foreground min-h-7 gap-2 rounded-md py-1.5 pr-2 pl-8 text-xs data-disabled:opacity-50 relative flex cursor-default items-center outline-hidden select-none data-disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:shrink-0",
2631
+ className
2632
+ ),
2633
+ checked,
2634
+ ...props,
2635
+ children: [
2636
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "left-2 size-4 [&_svg:not([class*='size-'])]:size-4 pointer-events-none absolute flex items-center justify-center", children: /* @__PURE__ */ jsxRuntime.jsx(radixUi.Menubar.ItemIndicator, { children: /* @__PURE__ */ jsxRuntime.jsx(
2637
+ lucideReact.CheckIcon,
2638
+ {}
2639
+ ) }) }),
2640
+ children
2641
+ ]
2642
+ }
2643
+ );
2644
+ }
2645
+ function MenubarRadioItem({
2646
+ className,
2647
+ children,
2648
+ ...props
2649
+ }) {
2650
+ return /* @__PURE__ */ jsxRuntime.jsxs(
2651
+ radixUi.Menubar.RadioItem,
2652
+ {
2653
+ "data-slot": "menubar-radio-item",
2654
+ className: cn(
2655
+ "focus:bg-accent focus:text-accent-foreground focus:**:text-accent-foreground min-h-7 gap-2 rounded-md py-1.5 pr-2 pl-8 text-xs data-disabled:opacity-50 [&_svg:not([class*='size-'])]:size-3.5 relative flex cursor-default items-center outline-hidden select-none data-disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:shrink-0",
2656
+ className
2657
+ ),
2658
+ ...props,
2659
+ children: [
2660
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "left-2 size-4 [&_svg:not([class*='size-'])]:size-4 pointer-events-none absolute flex items-center justify-center", children: /* @__PURE__ */ jsxRuntime.jsx(radixUi.Menubar.ItemIndicator, { children: /* @__PURE__ */ jsxRuntime.jsx(
2661
+ lucideReact.CheckIcon,
2662
+ {}
2663
+ ) }) }),
2664
+ children
2665
+ ]
2666
+ }
2667
+ );
2668
+ }
2669
+ function MenubarLabel({
2670
+ className,
2671
+ inset,
2672
+ ...props
2673
+ }) {
2674
+ return /* @__PURE__ */ jsxRuntime.jsx(
2675
+ radixUi.Menubar.Label,
2676
+ {
2677
+ "data-slot": "menubar-label",
2678
+ "data-inset": inset,
2679
+ className: cn("text-muted-foreground px-2 py-1.5 text-xs data-[inset]:pl-8", className),
2680
+ ...props
2681
+ }
2682
+ );
2683
+ }
2684
+ function MenubarSeparator({
2685
+ className,
2686
+ ...props
2687
+ }) {
2688
+ return /* @__PURE__ */ jsxRuntime.jsx(
2689
+ radixUi.Menubar.Separator,
2690
+ {
2691
+ "data-slot": "menubar-separator",
2692
+ className: cn("bg-border/50 -mx-1 my-1 h-px -mx-1 my-1 h-px", className),
2693
+ ...props
2694
+ }
2695
+ );
2696
+ }
2697
+ function MenubarShortcut({
2698
+ className,
2699
+ ...props
2700
+ }) {
2701
+ return /* @__PURE__ */ jsxRuntime.jsx(
2702
+ "span",
2703
+ {
2704
+ "data-slot": "menubar-shortcut",
2705
+ className: cn("text-muted-foreground group-focus/menubar-item:text-accent-foreground text-[0.625rem] tracking-widest ml-auto", className),
2706
+ ...props
2707
+ }
2708
+ );
2709
+ }
2710
+ function MenubarSub({
2711
+ ...props
2712
+ }) {
2713
+ return /* @__PURE__ */ jsxRuntime.jsx(radixUi.Menubar.Sub, { "data-slot": "menubar-sub", ...props });
2714
+ }
2715
+ function MenubarSubTrigger({
2716
+ className,
2717
+ inset,
2718
+ children,
2719
+ ...props
2720
+ }) {
2721
+ return /* @__PURE__ */ jsxRuntime.jsxs(
2722
+ radixUi.Menubar.SubTrigger,
2723
+ {
2724
+ "data-slot": "menubar-sub-trigger",
2725
+ "data-inset": inset,
2726
+ className: cn(
2727
+ "focus:bg-accent focus:text-accent-foreground data-open:bg-accent data-open:text-accent-foreground not-data-[variant=destructive]:focus:**:text-accent-foreground min-h-7 gap-2 rounded-md px-2 py-1 text-xs data-[inset]:pl-8 [&_svg:not([class*='size-'])]:size-3.5 flex cursor-default items-center outline-none select-none",
2728
+ className
2729
+ ),
2730
+ ...props,
2731
+ children: [
2732
+ children,
2733
+ /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronRightIcon, { className: "ml-auto size-4" })
2734
+ ]
2735
+ }
2736
+ );
2737
+ }
2738
+ function MenubarSubContent({
2739
+ className,
2740
+ ...props
2741
+ }) {
2742
+ return /* @__PURE__ */ jsxRuntime.jsx(
2743
+ radixUi.Menubar.SubContent,
2744
+ {
2745
+ "data-slot": "menubar-sub-content",
2746
+ className: cn("bg-popover text-popover-foreground data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-95 data-open:zoom-in-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 ring-foreground/10 min-w-32 rounded-lg p-1 shadow-md ring-1 duration-100 z-50 origin-(--radix-menubar-content-transform-origin) overflow-hidden", className),
2747
+ ...props
2748
+ }
2749
+ );
2750
+ }
2751
+ function NavigationMenu({
2752
+ className,
2753
+ children,
2754
+ viewport = true,
2755
+ ...props
2756
+ }) {
2757
+ return /* @__PURE__ */ jsxRuntime.jsxs(
2758
+ radixUi.NavigationMenu.Root,
2759
+ {
2760
+ "data-slot": "navigation-menu",
2761
+ "data-viewport": viewport,
2762
+ className: cn(
2763
+ "max-w-max group/navigation-menu relative flex max-w-max flex-1 items-center justify-center",
2764
+ className
2765
+ ),
2766
+ ...props,
2767
+ children: [
2768
+ children,
2769
+ viewport && /* @__PURE__ */ jsxRuntime.jsx(NavigationMenuViewport, {})
2770
+ ]
2771
+ }
2772
+ );
2773
+ }
2774
+ function NavigationMenuList({
2775
+ className,
2776
+ ...props
2777
+ }) {
2778
+ return /* @__PURE__ */ jsxRuntime.jsx(
2779
+ radixUi.NavigationMenu.List,
2780
+ {
2781
+ "data-slot": "navigation-menu-list",
2782
+ className: cn(
2783
+ "gap-0 group flex flex-1 list-none items-center justify-center",
2784
+ className
2785
+ ),
2786
+ ...props
2787
+ }
2788
+ );
2789
+ }
2790
+ function NavigationMenuItem({
2791
+ className,
2792
+ ...props
2793
+ }) {
2794
+ return /* @__PURE__ */ jsxRuntime.jsx(
2795
+ radixUi.NavigationMenu.Item,
2796
+ {
2797
+ "data-slot": "navigation-menu-item",
2798
+ className: cn("relative", className),
2799
+ ...props
2800
+ }
2801
+ );
2802
+ }
2803
+ var navigationMenuTriggerStyle = classVarianceAuthority.cva(
2804
+ "bg-background hover:bg-muted focus:bg-muted data-open:hover:bg-muted data-open:focus:bg-muted data-open:bg-muted/50 focus-visible:ring-ring/30 data-popup-open:bg-muted/50 data-popup-open:hover:bg-muted rounded-md px-2.5 py-1.5 text-xs/relaxed font-medium transition-all focus-visible:ring-[2px] focus-visible:outline-1 disabled:opacity-50 group/navigation-menu-trigger inline-flex h-9 w-max items-center justify-center disabled:pointer-events-none outline-none"
2805
+ );
2806
+ function NavigationMenuTrigger({
2807
+ className,
2808
+ children,
2809
+ ...props
2810
+ }) {
2811
+ return /* @__PURE__ */ jsxRuntime.jsxs(
2812
+ radixUi.NavigationMenu.Trigger,
2813
+ {
2814
+ "data-slot": "navigation-menu-trigger",
2815
+ className: cn(navigationMenuTriggerStyle(), "group", className),
2816
+ ...props,
2817
+ children: [
2818
+ children,
2819
+ " ",
2820
+ /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronDownIcon, { className: "relative top-[1px] ml-1 size-3 transition duration-300 group-data-open/navigation-menu-trigger:rotate-180 group-data-popup-open/navigation-menu-trigger:rotate-180", "aria-hidden": "true" })
2821
+ ]
2822
+ }
2823
+ );
2824
+ }
2825
+ function NavigationMenuContent({
2826
+ className,
2827
+ ...props
2828
+ }) {
2829
+ return /* @__PURE__ */ jsxRuntime.jsx(
2830
+ radixUi.NavigationMenu.Content,
2831
+ {
2832
+ "data-slot": "navigation-menu-content",
2833
+ className: cn(
2834
+ "data-[motion^=from-]:animate-in data-[motion^=to-]:animate-out data-[motion^=from-]:fade-in data-[motion^=to-]:fade-out data-[motion=from-end]:slide-in-from-right-52 data-[motion=from-start]:slide-in-from-left-52 data-[motion=to-end]:slide-out-to-right-52 data-[motion=to-start]:slide-out-to-left-52 group-data-[viewport=false]/navigation-menu:bg-popover group-data-[viewport=false]/navigation-menu:text-popover-foreground group-data-[viewport=false]/navigation-menu:data-open:animate-in group-data-[viewport=false]/navigation-menu:data-closed:animate-out group-data-[viewport=false]/navigation-menu:data-closed:zoom-out-95 group-data-[viewport=false]/navigation-menu:data-open:zoom-in-95 group-data-[viewport=false]/navigation-menu:data-open:fade-in-0 group-data-[viewport=false]/navigation-menu:data-closed:fade-out-0 group-data-[viewport=false]/navigation-menu:ring-foreground/10 p-1.5 ease-[cubic-bezier(0.22,1,0.36,1)] group-data-[viewport=false]/navigation-menu:rounded-xl group-data-[viewport=false]/navigation-menu:shadow-md group-data-[viewport=false]/navigation-menu:ring-1 group-data-[viewport=false]/navigation-menu:duration-300 top-0 left-0 w-full group-data-[viewport=false]/navigation-menu:top-full group-data-[viewport=false]/navigation-menu:mt-1.5 group-data-[viewport=false]/navigation-menu:overflow-hidden **:data-[slot=navigation-menu-link]:focus:ring-0 **:data-[slot=navigation-menu-link]:focus:outline-none md:absolute md:w-auto",
2835
+ className
2836
+ ),
2837
+ ...props
2838
+ }
2839
+ );
2840
+ }
2841
+ function NavigationMenuViewport({
2842
+ className,
2843
+ ...props
2844
+ }) {
2845
+ return /* @__PURE__ */ jsxRuntime.jsx(
2846
+ "div",
2847
+ {
2848
+ className: cn(
2849
+ "absolute top-full left-0 isolate z-50 flex justify-center"
2850
+ ),
2851
+ children: /* @__PURE__ */ jsxRuntime.jsx(
2852
+ radixUi.NavigationMenu.Viewport,
2853
+ {
2854
+ "data-slot": "navigation-menu-viewport",
2855
+ className: cn(
2856
+ "bg-popover text-popover-foreground data-open:animate-in data-closed:animate-out data-closed:zoom-out-95 data-open:zoom-in-90 ring-foreground/10 rounded-xl shadow-md ring-1 duration-100 origin-top-center relative mt-1.5 h-[var(--radix-navigation-menu-viewport-height)] w-full overflow-hidden md:w-[var(--radix-navigation-menu-viewport-width)]",
2857
+ className
2858
+ ),
2859
+ ...props
2860
+ }
2861
+ )
2862
+ }
2863
+ );
2864
+ }
2865
+ function NavigationMenuLink({
2866
+ className,
2867
+ ...props
2868
+ }) {
2869
+ return /* @__PURE__ */ jsxRuntime.jsx(
2870
+ radixUi.NavigationMenu.Link,
2871
+ {
2872
+ "data-slot": "navigation-menu-link",
2873
+ className: cn("data-[active=true]:focus:bg-muted data-[active=true]:hover:bg-muted data-[active=true]:bg-muted/50 focus-visible:ring-ring/30 hover:bg-muted focus:bg-muted flex items-center gap-1.5 rounded-lg p-2 text-xs/relaxed transition-all outline-none focus-visible:ring-[2px] focus-visible:outline-1 [&_svg:not([class*='size-'])]:size-4", className),
2874
+ ...props
2875
+ }
2876
+ );
2877
+ }
2878
+ function NavigationMenuIndicator({
2879
+ className,
2880
+ ...props
2881
+ }) {
2882
+ return /* @__PURE__ */ jsxRuntime.jsx(
2883
+ radixUi.NavigationMenu.Indicator,
2884
+ {
2885
+ "data-slot": "navigation-menu-indicator",
2886
+ className: cn(
2887
+ "data-[state=visible]:animate-in data-[state=hidden]:animate-out data-[state=hidden]:fade-out data-[state=visible]:fade-in top-full z-[1] flex h-1.5 items-end justify-center overflow-hidden",
2888
+ className
2889
+ ),
2890
+ ...props,
2891
+ children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "bg-border rounded-tl-sm shadow-md relative top-[60%] h-2 w-2 rotate-45" })
2892
+ }
2893
+ );
2894
+ }
2895
+ function Pagination({ className, ...props }) {
2896
+ return /* @__PURE__ */ jsxRuntime.jsx(
2897
+ "nav",
2898
+ {
2899
+ role: "navigation",
2900
+ "aria-label": "pagination",
2901
+ "data-slot": "pagination",
2902
+ className: cn(
2903
+ "mx-auto flex w-full justify-center",
2904
+ className
2905
+ ),
2906
+ ...props
2907
+ }
2908
+ );
2909
+ }
2910
+ function PaginationContent({
2911
+ className,
2912
+ ...props
2913
+ }) {
2914
+ return /* @__PURE__ */ jsxRuntime.jsx(
2915
+ "ul",
2916
+ {
2917
+ "data-slot": "pagination-content",
2918
+ className: cn("gap-0.5 flex items-center", className),
2919
+ ...props
2920
+ }
2921
+ );
2922
+ }
2923
+ function PaginationItem({ ...props }) {
2924
+ return /* @__PURE__ */ jsxRuntime.jsx("li", { "data-slot": "pagination-item", ...props });
2925
+ }
2926
+ function PaginationLink({
2927
+ className,
2928
+ isActive,
2929
+ size = "icon",
2930
+ ...props
2931
+ }) {
2932
+ return /* @__PURE__ */ jsxRuntime.jsx(
2933
+ Button,
2934
+ {
2935
+ asChild: true,
2936
+ variant: isActive ? "outline" : "ghost",
2937
+ size,
2938
+ className: cn(className),
2939
+ children: /* @__PURE__ */ jsxRuntime.jsx(
2940
+ "a",
2941
+ {
2942
+ "aria-current": isActive ? "page" : void 0,
2943
+ "data-slot": "pagination-link",
2944
+ "data-active": isActive,
2945
+ ...props
2946
+ }
2947
+ )
2948
+ }
2949
+ );
2950
+ }
2951
+ function PaginationPrevious({
2952
+ className,
2953
+ ...props
2954
+ }) {
2955
+ return /* @__PURE__ */ jsxRuntime.jsxs(
2956
+ PaginationLink,
2957
+ {
2958
+ "aria-label": "Go to previous page",
2959
+ size: "default",
2960
+ className: cn("pl-2!", className),
2961
+ ...props,
2962
+ children: [
2963
+ /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronLeftIcon, { "data-icon": "inline-start" }),
2964
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "hidden sm:block", children: "Previous" })
2965
+ ]
2966
+ }
2967
+ );
2968
+ }
2969
+ function PaginationNext({
2970
+ className,
2971
+ ...props
2972
+ }) {
2973
+ return /* @__PURE__ */ jsxRuntime.jsxs(
2974
+ PaginationLink,
2975
+ {
2976
+ "aria-label": "Go to next page",
2977
+ size: "default",
2978
+ className: cn("pr-2!", className),
2979
+ ...props,
2980
+ children: [
2981
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "hidden sm:block", children: "Next" }),
2982
+ /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronRightIcon, { "data-icon": "inline-end" })
2983
+ ]
2984
+ }
2985
+ );
2986
+ }
2987
+ function PaginationEllipsis({
2988
+ className,
2989
+ ...props
2990
+ }) {
2991
+ return /* @__PURE__ */ jsxRuntime.jsxs(
2992
+ "span",
2993
+ {
2994
+ "aria-hidden": true,
2995
+ "data-slot": "pagination-ellipsis",
2996
+ className: cn(
2997
+ "size-7 items-center justify-center [&_svg:not([class*='size-'])]:size-3.5 flex items-center justify-center",
2998
+ className
2999
+ ),
3000
+ ...props,
3001
+ children: [
3002
+ /* @__PURE__ */ jsxRuntime.jsx(
3003
+ lucideReact.MoreHorizontalIcon,
3004
+ {}
3005
+ ),
3006
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "sr-only", children: "More pages" })
3007
+ ]
3008
+ }
3009
+ );
3010
+ }
3011
+ function Popover({
3012
+ ...props
3013
+ }) {
3014
+ return /* @__PURE__ */ jsxRuntime.jsx(radixUi.Popover.Root, { "data-slot": "popover", ...props });
3015
+ }
3016
+ function PopoverTrigger({
3017
+ ...props
3018
+ }) {
3019
+ return /* @__PURE__ */ jsxRuntime.jsx(radixUi.Popover.Trigger, { "data-slot": "popover-trigger", ...props });
3020
+ }
3021
+ function PopoverContent({
3022
+ className,
3023
+ align = "center",
3024
+ sideOffset = 4,
3025
+ ...props
3026
+ }) {
3027
+ return /* @__PURE__ */ jsxRuntime.jsx(radixUi.Popover.Portal, { children: /* @__PURE__ */ jsxRuntime.jsx(
3028
+ radixUi.Popover.Content,
3029
+ {
3030
+ "data-slot": "popover-content",
3031
+ align,
3032
+ sideOffset,
3033
+ className: cn(
3034
+ "bg-popover text-popover-foreground data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-95 data-open:zoom-in-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 ring-foreground/10 flex flex-col gap-4 rounded-lg p-2.5 text-xs shadow-md ring-1 duration-100 z-50 w-72 origin-(--radix-popover-content-transform-origin) outline-hidden",
3035
+ className
3036
+ ),
3037
+ ...props
3038
+ }
3039
+ ) });
3040
+ }
3041
+ function Progress({
3042
+ className,
3043
+ value,
3044
+ ...props
3045
+ }) {
3046
+ return /* @__PURE__ */ jsxRuntime.jsx(
3047
+ radixUi.Progress.Root,
3048
+ {
3049
+ "data-slot": "progress",
3050
+ className: cn(
3051
+ "bg-muted h-1 rounded-md relative flex w-full items-center overflow-x-hidden",
3052
+ className
3053
+ ),
3054
+ ...props,
3055
+ children: /* @__PURE__ */ jsxRuntime.jsx(
3056
+ radixUi.Progress.Indicator,
3057
+ {
3058
+ "data-slot": "progress-indicator",
3059
+ className: "bg-primary size-full flex-1 transition-all",
3060
+ style: { transform: `translateX(-${100 - (value || 0)}%)` }
3061
+ }
3062
+ )
3063
+ }
3064
+ );
3065
+ }
3066
+ function RadioGroup({
3067
+ className,
3068
+ ...props
3069
+ }) {
3070
+ return /* @__PURE__ */ jsxRuntime.jsx(
3071
+ radixUi.RadioGroup.Root,
3072
+ {
3073
+ "data-slot": "radio-group",
3074
+ className: cn("grid gap-3 w-full", className),
3075
+ ...props
3076
+ }
3077
+ );
3078
+ }
3079
+ function RadioGroupItem({
3080
+ className,
3081
+ ...props
3082
+ }) {
3083
+ return /* @__PURE__ */ jsxRuntime.jsx(
3084
+ radixUi.RadioGroup.Item,
3085
+ {
3086
+ "data-slot": "radio-group-item",
3087
+ className: cn(
3088
+ "border-input text-primary dark:bg-input/30 focus-visible:border-ring focus-visible:ring-ring/30 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:aria-invalid:border-destructive/50 data-checked:bg-primary data-checked:border-primary flex size-4 rounded-full transition-none focus-visible:ring-[2px] aria-invalid:ring-[2px] group/radio-group-item peer relative aspect-square shrink-0 border outline-none after:absolute after:-inset-x-3 after:-inset-y-2 disabled:cursor-not-allowed disabled:opacity-50",
3089
+ className
3090
+ ),
3091
+ ...props,
3092
+ children: /* @__PURE__ */ jsxRuntime.jsx(
3093
+ radixUi.RadioGroup.Indicator,
3094
+ {
3095
+ "data-slot": "radio-group-indicator",
3096
+ className: "group-aria-invalid/radio-group-item:text-destructive flex size-4 items-center justify-center text-white",
3097
+ children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.CircleIcon, { className: "absolute top-1/2 left-1/2 size-2 -translate-x-1/2 -translate-y-1/2 fill-current" })
3098
+ }
3099
+ )
3100
+ }
3101
+ );
3102
+ }
3103
+ var ResizablePanelGroup = reactResizablePanels.Group;
3104
+ var ResizablePanel = reactResizablePanels.Panel;
3105
+ function ResizableHandle({
3106
+ withHandle,
3107
+ className,
3108
+ ...props
3109
+ }) {
3110
+ return /* @__PURE__ */ jsxRuntime.jsx(
3111
+ reactResizablePanels.Separator,
3112
+ {
3113
+ "data-slot": "resizable-handle",
3114
+ className: cn(
3115
+ "bg-border focus-visible:ring-ring relative flex w-px items-center justify-center after:absolute after:inset-y-0 after:left-1/2 after:w-1 after:-translate-x-1/2 focus-visible:ring-1 focus-visible:ring-offset-1 focus-visible:outline-hidden data-[panel-group-direction=vertical]:h-px data-[panel-group-direction=vertical]:w-full data-[panel-group-direction=vertical]:after:left-0 data-[panel-group-direction=vertical]:after:h-1 data-[panel-group-direction=vertical]:after:w-full data-[panel-group-direction=vertical]:after:translate-x-0 data-[panel-group-direction=vertical]:after:-translate-y-1/2 [&[data-panel-group-direction=vertical]>div]:rotate-90",
3116
+ className
3117
+ ),
3118
+ ...props,
3119
+ children: withHandle && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "bg-border h-6 w-1 rounded-lg z-10 flex shrink-0" })
3120
+ }
3121
+ );
3122
+ }
3123
+ function ScrollArea({
3124
+ className,
3125
+ children,
3126
+ ...props
3127
+ }) {
3128
+ return /* @__PURE__ */ jsxRuntime.jsxs(
3129
+ radixUi.ScrollArea.Root,
3130
+ {
3131
+ "data-slot": "scroll-area",
3132
+ className: cn("relative", className),
3133
+ ...props,
3134
+ children: [
3135
+ /* @__PURE__ */ jsxRuntime.jsx(
3136
+ radixUi.ScrollArea.Viewport,
3137
+ {
3138
+ "data-slot": "scroll-area-viewport",
3139
+ className: "focus-visible:ring-ring/50 size-full rounded-[inherit] transition-[color,box-shadow] outline-none focus-visible:ring-[3px] focus-visible:outline-1",
3140
+ children
3141
+ }
3142
+ ),
3143
+ /* @__PURE__ */ jsxRuntime.jsx(ScrollBar, {}),
3144
+ /* @__PURE__ */ jsxRuntime.jsx(radixUi.ScrollArea.Corner, {})
3145
+ ]
3146
+ }
3147
+ );
3148
+ }
3149
+ function ScrollBar({
3150
+ className,
3151
+ orientation = "vertical",
3152
+ ...props
3153
+ }) {
3154
+ return /* @__PURE__ */ jsxRuntime.jsx(
3155
+ radixUi.ScrollArea.ScrollAreaScrollbar,
3156
+ {
3157
+ "data-slot": "scroll-area-scrollbar",
3158
+ "data-orientation": orientation,
3159
+ orientation,
3160
+ className: cn(
3161
+ "data-horizontal:h-2.5 data-horizontal:flex-col data-horizontal:border-t data-horizontal:border-t-transparent data-vertical:h-full data-vertical:w-2.5 data-vertical:border-l data-vertical:border-l-transparent flex touch-none p-px transition-colors select-none",
3162
+ className
3163
+ ),
3164
+ ...props,
3165
+ children: /* @__PURE__ */ jsxRuntime.jsx(
3166
+ radixUi.ScrollArea.ScrollAreaThumb,
3167
+ {
3168
+ "data-slot": "scroll-area-thumb",
3169
+ className: "rounded-full bg-border relative flex-1"
3170
+ }
3171
+ )
3172
+ }
3173
+ );
3174
+ }
3175
+ function Select({
3176
+ ...props
3177
+ }) {
3178
+ return /* @__PURE__ */ jsxRuntime.jsx(radixUi.Select.Root, { "data-slot": "select", ...props });
3179
+ }
3180
+ function SelectGroup({
3181
+ className,
3182
+ ...props
3183
+ }) {
3184
+ return /* @__PURE__ */ jsxRuntime.jsx(
3185
+ radixUi.Select.Group,
3186
+ {
3187
+ "data-slot": "select-group",
3188
+ className: cn("scroll-my-1 p-1", className),
3189
+ ...props
3190
+ }
3191
+ );
3192
+ }
3193
+ function SelectValue({
3194
+ ...props
3195
+ }) {
3196
+ return /* @__PURE__ */ jsxRuntime.jsx(radixUi.Select.Value, { "data-slot": "select-value", ...props });
3197
+ }
3198
+ function SelectTrigger({
3199
+ className,
3200
+ size = "default",
3201
+ children,
3202
+ ...props
3203
+ }) {
3204
+ return /* @__PURE__ */ jsxRuntime.jsxs(
3205
+ radixUi.Select.Trigger,
3206
+ {
3207
+ "data-slot": "select-trigger",
3208
+ "data-size": size,
3209
+ className: cn(
3210
+ "border-input data-[placeholder]:text-muted-foreground bg-input/20 dark:bg-input/30 dark:hover:bg-input/50 focus-visible:border-ring focus-visible:ring-ring/30 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:aria-invalid:border-destructive/50 gap-1.5 rounded-md border px-2 py-1.5 text-xs/relaxed transition-colors focus-visible:ring-[2px] aria-invalid:ring-[2px] data-[size=default]:h-7 data-[size=sm]:h-6 *:data-[slot=select-value]:flex *:data-[slot=select-value]:gap-1.5 [&_svg:not([class*='size-'])]:size-3.5 flex w-fit items-center justify-between whitespace-nowrap outline-none disabled:cursor-not-allowed disabled:opacity-50 *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center [&_svg]:pointer-events-none [&_svg]:shrink-0",
3211
+ className
3212
+ ),
3213
+ ...props,
3214
+ children: [
3215
+ children,
3216
+ /* @__PURE__ */ jsxRuntime.jsx(radixUi.Select.Icon, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronDownIcon, { className: "text-muted-foreground size-3.5 pointer-events-none" }) })
3217
+ ]
3218
+ }
3219
+ );
3220
+ }
3221
+ function SelectContent({
3222
+ className,
3223
+ children,
3224
+ position = "item-aligned",
3225
+ align = "center",
3226
+ ...props
3227
+ }) {
3228
+ return /* @__PURE__ */ jsxRuntime.jsx(radixUi.Select.Portal, { children: /* @__PURE__ */ jsxRuntime.jsxs(
3229
+ radixUi.Select.Content,
3230
+ {
3231
+ "data-slot": "select-content",
3232
+ className: cn("bg-popover text-popover-foreground data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-95 data-open:zoom-in-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 ring-foreground/10 min-w-32 rounded-lg shadow-md ring-1 duration-100 relative z-50 max-h-(--radix-select-content-available-height) origin-(--radix-select-content-transform-origin) overflow-x-hidden overflow-y-auto", position === "popper" && "data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1", className),
3233
+ position,
3234
+ align,
3235
+ ...props,
3236
+ children: [
3237
+ /* @__PURE__ */ jsxRuntime.jsx(SelectScrollUpButton, {}),
3238
+ /* @__PURE__ */ jsxRuntime.jsx(
3239
+ radixUi.Select.Viewport,
3240
+ {
3241
+ "data-position": position,
3242
+ className: cn(
3243
+ "data-[position=popper]:h-[var(--radix-select-trigger-height)] data-[position=popper]:w-full data-[position=popper]:min-w-[var(--radix-select-trigger-width)]",
3244
+ position === "popper" && ""
3245
+ ),
3246
+ children
3247
+ }
3248
+ ),
3249
+ /* @__PURE__ */ jsxRuntime.jsx(SelectScrollDownButton, {})
3250
+ ]
3251
+ }
3252
+ ) });
3253
+ }
3254
+ function SelectLabel({
3255
+ className,
3256
+ ...props
3257
+ }) {
3258
+ return /* @__PURE__ */ jsxRuntime.jsx(
3259
+ radixUi.Select.Label,
3260
+ {
3261
+ "data-slot": "select-label",
3262
+ className: cn("text-muted-foreground px-2 py-1.5 text-xs", className),
3263
+ ...props
3264
+ }
3265
+ );
3266
+ }
3267
+ function SelectItem({
3268
+ className,
3269
+ children,
3270
+ ...props
3271
+ }) {
3272
+ return /* @__PURE__ */ jsxRuntime.jsxs(
3273
+ radixUi.Select.Item,
3274
+ {
3275
+ "data-slot": "select-item",
3276
+ className: cn(
3277
+ "focus:bg-accent focus:text-accent-foreground not-data-[variant=destructive]:focus:**:text-accent-foreground min-h-7 gap-2 rounded-md px-2 py-1 text-xs/relaxed [&_svg:not([class*='size-'])]:size-3.5 *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2 relative flex w-full cursor-default items-center outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0",
3278
+ className
3279
+ ),
3280
+ ...props,
3281
+ children: [
3282
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "pointer-events-none absolute right-2 flex items-center justify-center", children: /* @__PURE__ */ jsxRuntime.jsx(radixUi.Select.ItemIndicator, { children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.CheckIcon, { className: "pointer-events-none" }) }) }),
3283
+ /* @__PURE__ */ jsxRuntime.jsx(radixUi.Select.ItemText, { children })
3284
+ ]
3285
+ }
3286
+ );
3287
+ }
3288
+ function SelectSeparator({
3289
+ className,
3290
+ ...props
3291
+ }) {
3292
+ return /* @__PURE__ */ jsxRuntime.jsx(
3293
+ radixUi.Select.Separator,
3294
+ {
3295
+ "data-slot": "select-separator",
3296
+ className: cn("bg-border/50 -mx-1 my-1 h-px pointer-events-none", className),
3297
+ ...props
3298
+ }
3299
+ );
3300
+ }
3301
+ function SelectScrollUpButton({
3302
+ className,
3303
+ ...props
3304
+ }) {
3305
+ return /* @__PURE__ */ jsxRuntime.jsx(
3306
+ radixUi.Select.ScrollUpButton,
3307
+ {
3308
+ "data-slot": "select-scroll-up-button",
3309
+ className: cn("bg-popover z-10 flex cursor-default items-center justify-center py-1 [&_svg:not([class*='size-'])]:size-3.5", className),
3310
+ ...props,
3311
+ children: /* @__PURE__ */ jsxRuntime.jsx(
3312
+ lucideReact.ChevronUpIcon,
3313
+ {}
3314
+ )
3315
+ }
3316
+ );
3317
+ }
3318
+ function SelectScrollDownButton({
3319
+ className,
3320
+ ...props
3321
+ }) {
3322
+ return /* @__PURE__ */ jsxRuntime.jsx(
3323
+ radixUi.Select.ScrollDownButton,
3324
+ {
3325
+ "data-slot": "select-scroll-down-button",
3326
+ className: cn("bg-popover z-10 flex cursor-default items-center justify-center py-1 [&_svg:not([class*='size-'])]:size-3.5", className),
3327
+ ...props,
3328
+ children: /* @__PURE__ */ jsxRuntime.jsx(
3329
+ lucideReact.ChevronDownIcon,
3330
+ {}
3331
+ )
3332
+ }
3333
+ );
3334
+ }
3335
+ function Sheet({ ...props }) {
3336
+ return /* @__PURE__ */ jsxRuntime.jsx(radixUi.Dialog.Root, { "data-slot": "sheet", ...props });
3337
+ }
3338
+ function SheetTrigger({
3339
+ ...props
3340
+ }) {
3341
+ return /* @__PURE__ */ jsxRuntime.jsx(radixUi.Dialog.Trigger, { "data-slot": "sheet-trigger", ...props });
3342
+ }
3343
+ function SheetClose({
3344
+ ...props
3345
+ }) {
3346
+ return /* @__PURE__ */ jsxRuntime.jsx(radixUi.Dialog.Close, { "data-slot": "sheet-close", ...props });
3347
+ }
3348
+ function SheetPortal({
3349
+ ...props
3350
+ }) {
3351
+ return /* @__PURE__ */ jsxRuntime.jsx(radixUi.Dialog.Portal, { "data-slot": "sheet-portal", ...props });
3352
+ }
3353
+ function SheetOverlay({
3354
+ className,
3355
+ ...props
3356
+ }) {
3357
+ return /* @__PURE__ */ jsxRuntime.jsx(
3358
+ radixUi.Dialog.Overlay,
3359
+ {
3360
+ "data-slot": "sheet-overlay",
3361
+ className: cn("data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 bg-black/80 duration-100 data-ending-style:opacity-0 data-starting-style:opacity-0 supports-backdrop-filter:backdrop-blur-xs fixed inset-0 z-50", className),
3362
+ ...props
3363
+ }
3364
+ );
3365
+ }
3366
+ function SheetContent({
3367
+ className,
3368
+ children,
3369
+ side = "right",
3370
+ showCloseButton = true,
3371
+ ...props
3372
+ }) {
3373
+ return /* @__PURE__ */ jsxRuntime.jsxs(SheetPortal, { children: [
3374
+ /* @__PURE__ */ jsxRuntime.jsx(SheetOverlay, {}),
3375
+ /* @__PURE__ */ jsxRuntime.jsxs(
3376
+ radixUi.Dialog.Content,
3377
+ {
3378
+ "data-slot": "sheet-content",
3379
+ "data-side": side,
3380
+ className: cn("bg-background data-open:animate-in data-closed:animate-out data-[side=right]:data-closed:slide-out-to-right-10 data-[side=right]:data-open:slide-in-from-right-10 data-[side=left]:data-closed:slide-out-to-left-10 data-[side=left]:data-open:slide-in-from-left-10 data-[side=top]:data-closed:slide-out-to-top-10 data-[side=top]:data-open:slide-in-from-top-10 data-closed:fade-out-0 data-open:fade-in-0 data-[side=bottom]:data-closed:slide-out-to-bottom-10 data-[side=bottom]:data-open:slide-in-from-bottom-10 fixed z-50 flex flex-col bg-clip-padding text-xs/relaxed shadow-lg transition duration-200 ease-in-out data-[side=bottom]:inset-x-0 data-[side=bottom]:bottom-0 data-[side=bottom]:h-auto data-[side=bottom]:border-t data-[side=left]:inset-y-0 data-[side=left]:left-0 data-[side=left]:h-full data-[side=left]:w-3/4 data-[side=left]:border-r data-[side=right]:inset-y-0 data-[side=right]:right-0 data-[side=right]:h-full data-[side=right]:w-3/4 data-[side=right]:border-l data-[side=top]:inset-x-0 data-[side=top]:top-0 data-[side=top]:h-auto data-[side=top]:border-b data-[side=left]:sm:max-w-sm data-[side=right]:sm:max-w-sm", className),
3381
+ ...props,
3382
+ children: [
3383
+ children,
3384
+ showCloseButton && /* @__PURE__ */ jsxRuntime.jsx(radixUi.Dialog.Close, { "data-slot": "sheet-close", asChild: true, children: /* @__PURE__ */ jsxRuntime.jsxs(Button, { variant: "ghost", className: "absolute top-4 right-4", size: "icon-sm", children: [
3385
+ /* @__PURE__ */ jsxRuntime.jsx(
3386
+ lucideReact.XIcon,
3387
+ {}
3388
+ ),
3389
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "sr-only", children: "Close" })
3390
+ ] }) })
3391
+ ]
3392
+ }
3393
+ )
3394
+ ] });
3395
+ }
3396
+ function SheetHeader({ className, ...props }) {
3397
+ return /* @__PURE__ */ jsxRuntime.jsx(
3398
+ "div",
3399
+ {
3400
+ "data-slot": "sheet-header",
3401
+ className: cn("gap-1.5 p-6 flex flex-col", className),
3402
+ ...props
3403
+ }
3404
+ );
3405
+ }
3406
+ function SheetFooter({ className, ...props }) {
3407
+ return /* @__PURE__ */ jsxRuntime.jsx(
3408
+ "div",
3409
+ {
3410
+ "data-slot": "sheet-footer",
3411
+ className: cn("gap-2 p-6 mt-auto flex flex-col", className),
3412
+ ...props
3413
+ }
3414
+ );
3415
+ }
3416
+ function SheetTitle({
3417
+ className,
3418
+ ...props
3419
+ }) {
3420
+ return /* @__PURE__ */ jsxRuntime.jsx(
3421
+ radixUi.Dialog.Title,
3422
+ {
3423
+ "data-slot": "sheet-title",
3424
+ className: cn("text-foreground text-sm font-medium", className),
3425
+ ...props
3426
+ }
3427
+ );
3428
+ }
3429
+ function SheetDescription({
3430
+ className,
3431
+ ...props
3432
+ }) {
3433
+ return /* @__PURE__ */ jsxRuntime.jsx(
3434
+ radixUi.Dialog.Description,
3435
+ {
3436
+ "data-slot": "sheet-description",
3437
+ className: cn("text-muted-foreground text-xs/relaxed", className),
3438
+ ...props
3439
+ }
3440
+ );
3441
+ }
3442
+ function Skeleton({ className, ...props }) {
3443
+ return /* @__PURE__ */ jsxRuntime.jsx(
3444
+ "div",
3445
+ {
3446
+ "data-slot": "skeleton",
3447
+ className: cn("bg-muted rounded-md animate-pulse", className),
3448
+ ...props
3449
+ }
3450
+ );
3451
+ }
3452
+ function TooltipProvider({
3453
+ delayDuration = 0,
3454
+ ...props
3455
+ }) {
3456
+ return /* @__PURE__ */ jsxRuntime.jsx(
3457
+ radixUi.Tooltip.Provider,
3458
+ {
3459
+ "data-slot": "tooltip-provider",
3460
+ delayDuration,
3461
+ ...props
3462
+ }
3463
+ );
3464
+ }
3465
+ function Tooltip2({
3466
+ ...props
3467
+ }) {
3468
+ return /* @__PURE__ */ jsxRuntime.jsx(TooltipProvider, { children: /* @__PURE__ */ jsxRuntime.jsx(radixUi.Tooltip.Root, { "data-slot": "tooltip", ...props }) });
3469
+ }
3470
+ function TooltipTrigger({
3471
+ ...props
3472
+ }) {
3473
+ return /* @__PURE__ */ jsxRuntime.jsx(radixUi.Tooltip.Trigger, { "data-slot": "tooltip-trigger", ...props });
3474
+ }
3475
+ function TooltipContent({
3476
+ className,
3477
+ sideOffset = 0,
3478
+ children,
3479
+ ...props
3480
+ }) {
3481
+ return /* @__PURE__ */ jsxRuntime.jsx(radixUi.Tooltip.Portal, { children: /* @__PURE__ */ jsxRuntime.jsxs(
3482
+ radixUi.Tooltip.Content,
3483
+ {
3484
+ "data-slot": "tooltip-content",
3485
+ sideOffset,
3486
+ className: cn(
3487
+ "data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-[state=delayed-open]:animate-in data-[state=delayed-open]:fade-in-0 data-[state=delayed-open]:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-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 rounded-md px-3 py-1.5 text-xs **:data-[slot=kbd]:rounded-md bg-foreground text-background z-50 w-fit max-w-xs origin-(--radix-tooltip-content-transform-origin)",
3488
+ className
3489
+ ),
3490
+ ...props,
3491
+ children: [
3492
+ children,
3493
+ /* @__PURE__ */ jsxRuntime.jsx(radixUi.Tooltip.Arrow, { className: "size-2.5 translate-y-[calc(-50%_-_2px)] rotate-45 rounded-[2px] bg-foreground fill-foreground z-50 translate-y-[calc(-50%_-_2px)]" })
3494
+ ]
3495
+ }
3496
+ ) });
3497
+ }
3498
+ var MOBILE_BREAKPOINT = 768;
3499
+ function useIsMobile() {
3500
+ const [isMobile, setIsMobile] = React2__namespace.useState(void 0);
3501
+ React2__namespace.useEffect(() => {
3502
+ const mql = window.matchMedia(`(max-width: ${MOBILE_BREAKPOINT - 1}px)`);
3503
+ const onChange = () => {
3504
+ setIsMobile(window.innerWidth < MOBILE_BREAKPOINT);
3505
+ };
3506
+ mql.addEventListener("change", onChange);
3507
+ setIsMobile(window.innerWidth < MOBILE_BREAKPOINT);
3508
+ return () => mql.removeEventListener("change", onChange);
3509
+ }, []);
3510
+ return !!isMobile;
3511
+ }
3512
+ var SIDEBAR_COOKIE_NAME = "sidebar_state";
3513
+ var SIDEBAR_COOKIE_MAX_AGE = 60 * 60 * 24 * 7;
3514
+ var SIDEBAR_WIDTH = "16rem";
3515
+ var SIDEBAR_WIDTH_MOBILE = "18rem";
3516
+ var SIDEBAR_WIDTH_ICON = "3rem";
3517
+ var SIDEBAR_KEYBOARD_SHORTCUT = "b";
3518
+ var SidebarContext = React2__namespace.createContext(null);
3519
+ function useSidebar() {
3520
+ const context = React2__namespace.useContext(SidebarContext);
3521
+ if (!context) {
3522
+ throw new Error("useSidebar must be used within a SidebarProvider.");
3523
+ }
3524
+ return context;
3525
+ }
3526
+ function SidebarProvider({
3527
+ defaultOpen = true,
3528
+ open: openProp,
3529
+ onOpenChange: setOpenProp,
3530
+ className,
3531
+ style,
3532
+ children,
3533
+ ...props
3534
+ }) {
3535
+ const isMobile = useIsMobile();
3536
+ const [openMobile, setOpenMobile] = React2__namespace.useState(false);
3537
+ const [_open, _setOpen] = React2__namespace.useState(defaultOpen);
3538
+ const open = openProp ?? _open;
3539
+ const setOpen = React2__namespace.useCallback(
3540
+ (value) => {
3541
+ const openState = typeof value === "function" ? value(open) : value;
3542
+ if (setOpenProp) {
3543
+ setOpenProp(openState);
3544
+ } else {
3545
+ _setOpen(openState);
3546
+ }
3547
+ document.cookie = `${SIDEBAR_COOKIE_NAME}=${openState}; path=/; max-age=${SIDEBAR_COOKIE_MAX_AGE}`;
3548
+ },
3549
+ [setOpenProp, open]
3550
+ );
3551
+ const toggleSidebar = React2__namespace.useCallback(() => {
3552
+ return isMobile ? setOpenMobile((open2) => !open2) : setOpen((open2) => !open2);
3553
+ }, [isMobile, setOpen, setOpenMobile]);
3554
+ React2__namespace.useEffect(() => {
3555
+ const handleKeyDown = (event) => {
3556
+ if (event.key === SIDEBAR_KEYBOARD_SHORTCUT && (event.metaKey || event.ctrlKey)) {
3557
+ event.preventDefault();
3558
+ toggleSidebar();
3559
+ }
3560
+ };
3561
+ window.addEventListener("keydown", handleKeyDown);
3562
+ return () => window.removeEventListener("keydown", handleKeyDown);
3563
+ }, [toggleSidebar]);
3564
+ const state = open ? "expanded" : "collapsed";
3565
+ const contextValue = React2__namespace.useMemo(
3566
+ () => ({
3567
+ state,
3568
+ open,
3569
+ setOpen,
3570
+ isMobile,
3571
+ openMobile,
3572
+ setOpenMobile,
3573
+ toggleSidebar
3574
+ }),
3575
+ [state, open, setOpen, isMobile, openMobile, setOpenMobile, toggleSidebar]
3576
+ );
3577
+ return /* @__PURE__ */ jsxRuntime.jsx(SidebarContext.Provider, { value: contextValue, children: /* @__PURE__ */ jsxRuntime.jsx(
3578
+ "div",
3579
+ {
3580
+ "data-slot": "sidebar-wrapper",
3581
+ style: {
3582
+ "--sidebar-width": SIDEBAR_WIDTH,
3583
+ "--sidebar-width-icon": SIDEBAR_WIDTH_ICON,
3584
+ ...style
3585
+ },
3586
+ className: cn(
3587
+ "group/sidebar-wrapper has-data-[variant=inset]:bg-sidebar flex min-h-svh w-full",
3588
+ className
3589
+ ),
3590
+ ...props,
3591
+ children
3592
+ }
3593
+ ) });
3594
+ }
3595
+ function Sidebar({
3596
+ side = "left",
3597
+ variant = "sidebar",
3598
+ collapsible = "offExamples",
3599
+ className,
3600
+ children,
3601
+ ...props
3602
+ }) {
3603
+ const { isMobile, state, openMobile, setOpenMobile } = useSidebar();
3604
+ if (collapsible === "none") {
3605
+ return /* @__PURE__ */ jsxRuntime.jsx(
3606
+ "div",
3607
+ {
3608
+ "data-slot": "sidebar",
3609
+ className: cn(
3610
+ "bg-sidebar text-sidebar-foreground flex h-full w-(--sidebar-width) flex-col",
3611
+ className
3612
+ ),
3613
+ ...props,
3614
+ children
3615
+ }
3616
+ );
3617
+ }
3618
+ if (isMobile) {
3619
+ return /* @__PURE__ */ jsxRuntime.jsx(Sheet, { open: openMobile, onOpenChange: setOpenMobile, ...props, children: /* @__PURE__ */ jsxRuntime.jsxs(
3620
+ SheetContent,
3621
+ {
3622
+ "data-sidebar": "sidebar",
3623
+ "data-slot": "sidebar",
3624
+ "data-mobile": "true",
3625
+ className: "bg-sidebar text-sidebar-foreground w-(--sidebar-width) p-0 [&>button]:hidden",
3626
+ style: {
3627
+ "--sidebar-width": SIDEBAR_WIDTH_MOBILE
3628
+ },
3629
+ side,
3630
+ children: [
3631
+ /* @__PURE__ */ jsxRuntime.jsxs(SheetHeader, { className: "sr-only", children: [
3632
+ /* @__PURE__ */ jsxRuntime.jsx(SheetTitle, { children: "Sidebar" }),
3633
+ /* @__PURE__ */ jsxRuntime.jsx(SheetDescription, { children: "Displays the mobile sidebar." })
3634
+ ] }),
3635
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex h-full w-full flex-col", children })
3636
+ ]
3637
+ }
3638
+ ) });
3639
+ }
3640
+ return /* @__PURE__ */ jsxRuntime.jsxs(
3641
+ "div",
3642
+ {
3643
+ className: "group peer text-sidebar-foreground hidden md:block",
3644
+ "data-state": state,
3645
+ "data-collapsible": state === "collapsed" ? collapsible : "",
3646
+ "data-variant": variant,
3647
+ "data-side": side,
3648
+ "data-slot": "sidebar",
3649
+ children: [
3650
+ /* @__PURE__ */ jsxRuntime.jsx(
3651
+ "div",
3652
+ {
3653
+ "data-slot": "sidebar-gap",
3654
+ className: cn(
3655
+ "transition-[width] duration-200 ease-linear relative w-(--sidebar-width) bg-transparent",
3656
+ "group-data-[collapsible=offExamples]:w-0",
3657
+ "group-data-[side=right]:rotate-180",
3658
+ variant === "floating" || variant === "inset" ? "group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4)))]" : "group-data-[collapsible=icon]:w-(--sidebar-width-icon)"
3659
+ )
3660
+ }
3661
+ ),
3662
+ /* @__PURE__ */ jsxRuntime.jsx(
3663
+ "div",
3664
+ {
3665
+ "data-slot": "sidebar-container",
3666
+ className: cn(
3667
+ "fixed inset-y-0 z-10 hidden h-svh w-(--sidebar-width) transition-[left,right,width] duration-200 ease-linear md:flex",
3668
+ side === "left" ? "left-0 group-data-[collapsible=offExamples]:left-[calc(var(--sidebar-width)*-1)]" : "right-0 group-data-[collapsible=offExamples]:right-[calc(var(--sidebar-width)*-1)]",
3669
+ // Adjust the padding for floating and inset variants.
3670
+ variant === "floating" || variant === "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",
3671
+ className
3672
+ ),
3673
+ ...props,
3674
+ children: /* @__PURE__ */ jsxRuntime.jsx(
3675
+ "div",
3676
+ {
3677
+ "data-sidebar": "sidebar",
3678
+ "data-slot": "sidebar-inner",
3679
+ className: "bg-sidebar group-data-[variant=floating]:ring-sidebar-border group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:shadow-sm group-data-[variant=floating]:ring-1 flex size-full flex-col",
3680
+ children
3681
+ }
3682
+ )
3683
+ }
3684
+ )
3685
+ ]
3686
+ }
3687
+ );
3688
+ }
3689
+ function SidebarTrigger({
3690
+ className,
3691
+ onClick,
3692
+ ...props
3693
+ }) {
3694
+ const { toggleSidebar } = useSidebar();
3695
+ return /* @__PURE__ */ jsxRuntime.jsxs(
3696
+ Button,
3697
+ {
3698
+ "data-sidebar": "trigger",
3699
+ "data-slot": "sidebar-trigger",
3700
+ variant: "ghost",
3701
+ size: "icon-sm",
3702
+ className: cn(className),
3703
+ onClick: (event) => {
3704
+ onClick?.(event);
3705
+ toggleSidebar();
3706
+ },
3707
+ ...props,
3708
+ children: [
3709
+ /* @__PURE__ */ jsxRuntime.jsx(
3710
+ lucideReact.PanelLeftIcon,
3711
+ {}
3712
+ ),
3713
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "sr-only", children: "Toggle Sidebar" })
3714
+ ]
3715
+ }
3716
+ );
3717
+ }
3718
+ function SidebarRail({ className, ...props }) {
3719
+ const { toggleSidebar } = useSidebar();
3720
+ return /* @__PURE__ */ jsxRuntime.jsx(
3721
+ "button",
3722
+ {
3723
+ "data-sidebar": "rail",
3724
+ "data-slot": "sidebar-rail",
3725
+ "aria-label": "Toggle Sidebar",
3726
+ tabIndex: -1,
3727
+ onClick: toggleSidebar,
3728
+ title: "Toggle Sidebar",
3729
+ className: cn(
3730
+ "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",
3731
+ "in-data-[side=left]:cursor-w-resize in-data-[side=right]:cursor-e-resize",
3732
+ "[[data-side=left][data-state=collapsed]_&]:cursor-e-resize [[data-side=right][data-state=collapsed]_&]:cursor-w-resize",
3733
+ "hover:group-data-[collapsible=offExamples]:bg-sidebar group-data-[collapsible=offExamples]:translate-x-0 group-data-[collapsible=offExamples]:after:left-full",
3734
+ "[[data-side=left][data-collapsible=offExamples]_&]:-right-2",
3735
+ "[[data-side=right][data-collapsible=offExamples]_&]:-left-2",
3736
+ className
3737
+ ),
3738
+ ...props
3739
+ }
3740
+ );
3741
+ }
3742
+ function SidebarInset({ className, ...props }) {
3743
+ return /* @__PURE__ */ jsxRuntime.jsx(
3744
+ "main",
3745
+ {
3746
+ "data-slot": "sidebar-inset",
3747
+ className: cn(
3748
+ "bg-background 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 relative flex w-full flex-1 flex-col",
3749
+ className
3750
+ ),
3751
+ ...props
3752
+ }
3753
+ );
3754
+ }
3755
+ function SidebarInput({
3756
+ className,
3757
+ ...props
3758
+ }) {
3759
+ return /* @__PURE__ */ jsxRuntime.jsx(
3760
+ Input,
3761
+ {
3762
+ "data-slot": "sidebar-input",
3763
+ "data-sidebar": "input",
3764
+ className: cn("bg-muted/20 dark:bg-muted/30 border-input h-8 w-full", className),
3765
+ ...props
3766
+ }
3767
+ );
3768
+ }
3769
+ function SidebarHeader({ className, ...props }) {
3770
+ return /* @__PURE__ */ jsxRuntime.jsx(
3771
+ "div",
3772
+ {
3773
+ "data-slot": "sidebar-header",
3774
+ "data-sidebar": "header",
3775
+ className: cn("gap-2 p-2 flex flex-col", className),
3776
+ ...props
3777
+ }
3778
+ );
3779
+ }
3780
+ function SidebarFooter({ className, ...props }) {
3781
+ return /* @__PURE__ */ jsxRuntime.jsx(
3782
+ "div",
3783
+ {
3784
+ "data-slot": "sidebar-footer",
3785
+ "data-sidebar": "footer",
3786
+ className: cn("gap-2 p-2 flex flex-col", className),
3787
+ ...props
3788
+ }
3789
+ );
3790
+ }
3791
+ function SidebarSeparator({
3792
+ className,
3793
+ ...props
3794
+ }) {
3795
+ return /* @__PURE__ */ jsxRuntime.jsx(
3796
+ Separator,
3797
+ {
3798
+ "data-slot": "sidebar-separator",
3799
+ "data-sidebar": "separator",
3800
+ className: cn("bg-sidebar-border mx-2 w-auto", className),
3801
+ ...props
3802
+ }
3803
+ );
3804
+ }
3805
+ function SidebarContent({ className, ...props }) {
3806
+ return /* @__PURE__ */ jsxRuntime.jsx(
3807
+ "div",
3808
+ {
3809
+ "data-slot": "sidebar-content",
3810
+ "data-sidebar": "content",
3811
+ className: cn(
3812
+ "no-scrollbar gap-0 flex min-h-0 flex-1 flex-col overflow-auto group-data-[collapsible=icon]:overflow-hidden",
3813
+ className
3814
+ ),
3815
+ ...props
3816
+ }
3817
+ );
3818
+ }
3819
+ function SidebarGroup({ className, ...props }) {
3820
+ return /* @__PURE__ */ jsxRuntime.jsx(
3821
+ "div",
3822
+ {
3823
+ "data-slot": "sidebar-group",
3824
+ "data-sidebar": "group",
3825
+ className: cn(
3826
+ "px-2 py-1 relative flex w-full min-w-0 flex-col",
3827
+ className
3828
+ ),
3829
+ ...props
3830
+ }
3831
+ );
3832
+ }
3833
+ function SidebarGroupLabel({
3834
+ className,
3835
+ asChild = false,
3836
+ ...props
3837
+ }) {
3838
+ const Comp = asChild ? radixUi.Slot.Root : "div";
3839
+ return /* @__PURE__ */ jsxRuntime.jsx(
3840
+ Comp,
3841
+ {
3842
+ "data-slot": "sidebar-group-label",
3843
+ "data-sidebar": "group-label",
3844
+ className: cn(
3845
+ "text-sidebar-foreground/70 ring-sidebar-ring h-8 rounded-md px-2 text-xs transition-[margin,opacity] duration-200 ease-linear group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0 focus-visible:ring-2 [&>svg]:size-4 flex shrink-0 items-center outline-hidden [&>svg]:shrink-0",
3846
+ className
3847
+ ),
3848
+ ...props
3849
+ }
3850
+ );
3851
+ }
3852
+ function SidebarGroupAction({
3853
+ className,
3854
+ asChild = false,
3855
+ ...props
3856
+ }) {
3857
+ const Comp = asChild ? radixUi.Slot.Root : "button";
3858
+ return /* @__PURE__ */ jsxRuntime.jsx(
3859
+ Comp,
3860
+ {
3861
+ "data-slot": "sidebar-group-action",
3862
+ "data-sidebar": "group-action",
3863
+ className: cn(
3864
+ "text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground absolute top-3.5 right-3 w-5 rounded-md p-0 focus-visible:ring-2 [&>svg]:size-4 flex aspect-square items-center justify-center outline-hidden transition-transform group-data-[collapsible=icon]:hidden after:absolute after:-inset-2 md:after:hidden [&>svg]:shrink-0",
3865
+ className
3866
+ ),
3867
+ ...props
3868
+ }
3869
+ );
3870
+ }
3871
+ function SidebarGroupContent({
3872
+ className,
3873
+ ...props
3874
+ }) {
3875
+ return /* @__PURE__ */ jsxRuntime.jsx(
3876
+ "div",
3877
+ {
3878
+ "data-slot": "sidebar-group-content",
3879
+ "data-sidebar": "group-content",
3880
+ className: cn("text-xs w-full", className),
3881
+ ...props
3882
+ }
3883
+ );
3884
+ }
3885
+ function SidebarMenu({ className, ...props }) {
3886
+ return /* @__PURE__ */ jsxRuntime.jsx(
3887
+ "ul",
3888
+ {
3889
+ "data-slot": "sidebar-menu",
3890
+ "data-sidebar": "menu",
3891
+ className: cn("gap-px flex w-full min-w-0 flex-col", className),
3892
+ ...props
3893
+ }
3894
+ );
3895
+ }
3896
+ function SidebarMenuItem({ className, ...props }) {
3897
+ return /* @__PURE__ */ jsxRuntime.jsx(
3898
+ "li",
3899
+ {
3900
+ "data-slot": "sidebar-menu-item",
3901
+ "data-sidebar": "menu-item",
3902
+ className: cn("group/menu-item relative", className),
3903
+ ...props
3904
+ }
3905
+ );
3906
+ }
3907
+ var sidebarMenuButtonVariants = classVarianceAuthority.cva(
3908
+ "ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground active:bg-sidebar-accent active:text-sidebar-accent-foreground data-active:bg-sidebar-accent data-active:text-sidebar-accent-foreground data-open:hover:bg-sidebar-accent data-open:hover:text-sidebar-accent-foreground gap-2 rounded-[calc(var(--radius-sm)+2px)] p-2 text-left text-xs transition-[width,height,padding] group-has-data-[sidebar=menu-action]/menu-item:pr-8 group-data-[collapsible=icon]:size-8! group-data-[collapsible=icon]:p-2! focus-visible:ring-2 data-active:font-medium peer/menu-button flex w-full items-center overflow-hidden outline-hidden disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 [&>span:last-child]:truncate [&_svg]:size-4 [&_svg]:shrink-0",
3909
+ {
3910
+ variants: {
3911
+ variant: {
3912
+ default: "hover:bg-sidebar-accent hover:text-sidebar-accent-foreground",
3913
+ outline: "bg-background hover:bg-sidebar-accent hover:text-sidebar-accent-foreground shadow-[0_0_0_1px_hsl(var(--sidebar-border))] hover:shadow-[0_0_0_1px_hsl(var(--sidebar-accent))]"
3914
+ },
3915
+ size: {
3916
+ default: "h-8 text-xs",
3917
+ sm: "h-7 text-xs",
3918
+ lg: "h-12 text-xs group-data-[collapsible=icon]:p-0!"
3919
+ }
3920
+ },
3921
+ defaultVariants: {
3922
+ variant: "default",
3923
+ size: "default"
3924
+ }
3925
+ }
3926
+ );
3927
+ function SidebarMenuButton({
3928
+ asChild = false,
3929
+ isActive = false,
3930
+ variant = "default",
3931
+ size = "default",
3932
+ tooltip,
3933
+ className,
3934
+ ...props
3935
+ }) {
3936
+ const Comp = asChild ? radixUi.Slot.Root : "button";
3937
+ const { isMobile, state } = useSidebar();
3938
+ const button = /* @__PURE__ */ jsxRuntime.jsx(
3939
+ Comp,
3940
+ {
3941
+ "data-slot": "sidebar-menu-button",
3942
+ "data-sidebar": "menu-button",
3943
+ "data-size": size,
3944
+ "data-active": isActive,
3945
+ className: cn(sidebarMenuButtonVariants({ variant, size }), className),
3946
+ ...props
3947
+ }
3948
+ );
3949
+ if (!tooltip) {
3950
+ return button;
3951
+ }
3952
+ if (typeof tooltip === "string") {
3953
+ tooltip = {
3954
+ children: tooltip
3955
+ };
3956
+ }
3957
+ return /* @__PURE__ */ jsxRuntime.jsxs(Tooltip2, { children: [
3958
+ /* @__PURE__ */ jsxRuntime.jsx(TooltipTrigger, { asChild: true, children: button }),
3959
+ /* @__PURE__ */ jsxRuntime.jsx(
3960
+ TooltipContent,
3961
+ {
3962
+ side: "right",
3963
+ align: "center",
3964
+ hidden: state !== "collapsed" || isMobile,
3965
+ ...tooltip
3966
+ }
3967
+ )
3968
+ ] });
3969
+ }
3970
+ function SidebarMenuAction({
3971
+ className,
3972
+ asChild = false,
3973
+ showOnHover = false,
3974
+ ...props
3975
+ }) {
3976
+ const Comp = asChild ? radixUi.Slot.Root : "button";
3977
+ return /* @__PURE__ */ jsxRuntime.jsx(
3978
+ Comp,
3979
+ {
3980
+ "data-slot": "sidebar-menu-action",
3981
+ "data-sidebar": "menu-action",
3982
+ className: cn(
3983
+ "text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground peer-hover/menu-button:text-sidebar-accent-foreground absolute top-1.5 right-1 aspect-square w-5 rounded-[calc(var(--radius-sm)-2px)] p-0 peer-data-[size=default]/menu-button:top-1.5 peer-data-[size=lg]/menu-button:top-2.5 peer-data-[size=sm]/menu-button:top-1 focus-visible:ring-2 [&>svg]:size-4 flex items-center justify-center outline-hidden transition-transform group-data-[collapsible=icon]:hidden after:absolute after:-inset-2 md:after:hidden [&>svg]:shrink-0",
3984
+ showOnHover && "peer-data-active/menu-button:text-sidebar-accent-foreground group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100 data-open:opacity-100 md:opacity-0",
3985
+ className
3986
+ ),
3987
+ ...props
3988
+ }
3989
+ );
3990
+ }
3991
+ function SidebarMenuBadge({
3992
+ className,
3993
+ ...props
3994
+ }) {
3995
+ return /* @__PURE__ */ jsxRuntime.jsx(
3996
+ "div",
3997
+ {
3998
+ "data-slot": "sidebar-menu-badge",
3999
+ "data-sidebar": "menu-badge",
4000
+ className: cn(
4001
+ "text-sidebar-foreground peer-hover/menu-button:text-sidebar-accent-foreground peer-data-active/menu-button:text-sidebar-accent-foreground pointer-events-none absolute right-1 flex h-5 min-w-5 rounded-[calc(var(--radius-sm)-2px)] px-1 text-xs font-medium peer-data-[size=default]/menu-button:top-1.5 peer-data-[size=lg]/menu-button:top-2.5 peer-data-[size=sm]/menu-button:top-1 flex items-center justify-center tabular-nums select-none group-data-[collapsible=icon]:hidden",
4002
+ className
4003
+ ),
4004
+ ...props
4005
+ }
4006
+ );
4007
+ }
4008
+ function SidebarMenuSkeleton({
4009
+ className,
4010
+ showIcon = false,
4011
+ ...props
4012
+ }) {
4013
+ const [width] = React2__namespace.useState(() => {
4014
+ return `${Math.floor(Math.random() * 40) + 50}%`;
4015
+ });
4016
+ return /* @__PURE__ */ jsxRuntime.jsxs(
4017
+ "div",
4018
+ {
4019
+ "data-slot": "sidebar-menu-skeleton",
4020
+ "data-sidebar": "menu-skeleton",
4021
+ className: cn("h-8 gap-2 rounded-md px-2 flex items-center", className),
4022
+ ...props,
4023
+ children: [
4024
+ showIcon && /* @__PURE__ */ jsxRuntime.jsx(
4025
+ Skeleton,
4026
+ {
4027
+ className: "size-4 rounded-md",
4028
+ "data-sidebar": "menu-skeleton-icon"
4029
+ }
4030
+ ),
4031
+ /* @__PURE__ */ jsxRuntime.jsx(
4032
+ Skeleton,
4033
+ {
4034
+ className: "h-4 max-w-(--skeleton-width) flex-1",
4035
+ "data-sidebar": "menu-skeleton-text",
4036
+ style: {
4037
+ "--skeleton-width": width
4038
+ }
4039
+ }
4040
+ )
4041
+ ]
4042
+ }
4043
+ );
4044
+ }
4045
+ function SidebarMenuSub({ className, ...props }) {
4046
+ return /* @__PURE__ */ jsxRuntime.jsx(
4047
+ "ul",
4048
+ {
4049
+ "data-slot": "sidebar-menu-sub",
4050
+ "data-sidebar": "menu-sub",
4051
+ className: cn("border-sidebar-border mx-3.5 translate-x-px gap-1 border-l px-2.5 py-0.5 group-data-[collapsible=icon]:hidden flex min-w-0 flex-col", className),
4052
+ ...props
4053
+ }
4054
+ );
4055
+ }
4056
+ function SidebarMenuSubItem({
4057
+ className,
4058
+ ...props
4059
+ }) {
4060
+ return /* @__PURE__ */ jsxRuntime.jsx(
4061
+ "li",
4062
+ {
4063
+ "data-slot": "sidebar-menu-sub-item",
4064
+ "data-sidebar": "menu-sub-item",
4065
+ className: cn("group/menu-sub-item relative", className),
4066
+ ...props
4067
+ }
4068
+ );
4069
+ }
4070
+ function SidebarMenuSubButton({
4071
+ asChild = false,
4072
+ size = "md",
4073
+ isActive = false,
4074
+ className,
4075
+ ...props
4076
+ }) {
4077
+ const Comp = asChild ? radixUi.Slot.Root : "a";
4078
+ return /* @__PURE__ */ jsxRuntime.jsx(
4079
+ Comp,
4080
+ {
4081
+ "data-slot": "sidebar-menu-sub-button",
4082
+ "data-sidebar": "menu-sub-button",
4083
+ "data-size": size,
4084
+ "data-active": isActive,
4085
+ className: cn(
4086
+ "text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground active:bg-sidebar-accent active:text-sidebar-accent-foreground [&>svg]:text-sidebar-accent-foreground data-active:bg-sidebar-accent data-active:text-sidebar-accent-foreground h-7 gap-2 rounded-md px-2 focus-visible:ring-2 data-[size=md]:text-xs data-[size=sm]:text-xs [&>svg]:size-4 flex min-w-0 -translate-x-px items-center overflow-hidden outline-hidden group-data-[collapsible=icon]:hidden disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 [&>span:last-child]:truncate [&>svg]:shrink-0",
4087
+ className
4088
+ ),
4089
+ ...props
4090
+ }
4091
+ );
4092
+ }
4093
+ function Slider({
4094
+ className,
4095
+ defaultValue,
4096
+ value,
4097
+ min = 0,
4098
+ max = 100,
4099
+ ...props
4100
+ }) {
4101
+ const _values = React2__namespace.useMemo(
4102
+ () => Array.isArray(value) ? value : Array.isArray(defaultValue) ? defaultValue : [min, max],
4103
+ [value, defaultValue, min, max]
4104
+ );
4105
+ return /* @__PURE__ */ jsxRuntime.jsxs(
4106
+ radixUi.Slider.Root,
4107
+ {
4108
+ "data-slot": "slider",
4109
+ defaultValue,
4110
+ value,
4111
+ min,
4112
+ max,
4113
+ className: cn(
4114
+ "data-vertical:min-h-40 relative flex w-full touch-none items-center select-none data-disabled:opacity-50 data-vertical:h-full data-vertical:w-auto data-vertical:flex-col",
4115
+ className
4116
+ ),
4117
+ ...props,
4118
+ children: [
4119
+ /* @__PURE__ */ jsxRuntime.jsx(
4120
+ radixUi.Slider.Track,
4121
+ {
4122
+ "data-slot": "slider-track",
4123
+ className: "bg-muted rounded-md data-horizontal:h-3 data-horizontal:w-full data-vertical:h-full data-vertical:w-3 bg-muted relative grow overflow-hidden data-horizontal:w-full data-vertical:h-full",
4124
+ children: /* @__PURE__ */ jsxRuntime.jsx(
4125
+ radixUi.Slider.Range,
4126
+ {
4127
+ "data-slot": "slider-range",
4128
+ className: "bg-primary absolute select-none data-horizontal:h-full data-vertical:w-full"
4129
+ }
4130
+ )
4131
+ }
4132
+ ),
4133
+ Array.from({ length: _values.length }, (_, index) => /* @__PURE__ */ jsxRuntime.jsx(
4134
+ radixUi.Slider.Thumb,
4135
+ {
4136
+ "data-slot": "slider-thumb",
4137
+ className: "border-primary ring-ring/30 size-4 rounded-md border bg-white shadow-sm transition-colors hover:ring-4 focus-visible:ring-4 focus-visible:outline-hidden block shrink-0 select-none disabled:pointer-events-none disabled:opacity-50"
4138
+ },
4139
+ index
4140
+ ))
4141
+ ]
4142
+ }
4143
+ );
4144
+ }
4145
+ function Spinner({ className, ...props }) {
4146
+ return /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Loader2Icon, { role: "status", "aria-label": "Loading", className: cn("size-4 animate-spin", className), ...props });
4147
+ }
4148
+ function Switch({
4149
+ className,
4150
+ size = "default",
4151
+ ...props
4152
+ }) {
4153
+ return /* @__PURE__ */ jsxRuntime.jsx(
4154
+ radixUi.Switch.Root,
4155
+ {
4156
+ "data-slot": "switch",
4157
+ "data-size": size,
4158
+ className: cn(
4159
+ "data-checked:bg-primary data-unchecked:bg-input focus-visible:border-ring focus-visible:ring-ring/30 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:aria-invalid:border-destructive/50 dark:data-unchecked:bg-input/80 shrink-0 rounded-full border border-transparent focus-visible:ring-[2px] aria-invalid:ring-[2px] data-[size=default]:h-[16.6px] data-[size=default]:w-[28px] data-[size=sm]:h-[14px] data-[size=sm]:w-[24px] peer group/switch relative inline-flex items-center transition-all outline-none after:absolute after:-inset-x-3 after:-inset-y-2 data-disabled:cursor-not-allowed data-disabled:opacity-50",
4160
+ className
4161
+ ),
4162
+ ...props,
4163
+ children: /* @__PURE__ */ jsxRuntime.jsx(
4164
+ radixUi.Switch.Thumb,
4165
+ {
4166
+ "data-slot": "switch-thumb",
4167
+ className: "bg-background dark:data-unchecked:bg-foreground dark:data-checked:bg-primary-foreground rounded-full group-data-[size=default]/switch:size-3.5 group-data-[size=sm]/switch:size-3 group-data-[size=default]/switch:data-checked:translate-x-[calc(100%-2px)] group-data-[size=sm]/switch:data-checked:translate-x-[calc(100%-2px)] group-data-[size=default]/switch:data-unchecked:translate-x-0 group-data-[size=sm]/switch:data-unchecked:translate-x-0 pointer-events-none block ring-0 transition-transform"
4168
+ }
4169
+ )
4170
+ }
4171
+ );
4172
+ }
4173
+ function Table({ className, ...props }) {
4174
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { "data-slot": "table-container", className: "relative w-full overflow-x-auto", children: /* @__PURE__ */ jsxRuntime.jsx(
4175
+ "table",
4176
+ {
4177
+ "data-slot": "table",
4178
+ className: cn("w-full caption-bottom text-xs", className),
4179
+ ...props
4180
+ }
4181
+ ) });
4182
+ }
4183
+ function TableHeader({ className, ...props }) {
4184
+ return /* @__PURE__ */ jsxRuntime.jsx(
4185
+ "thead",
4186
+ {
4187
+ "data-slot": "table-header",
4188
+ className: cn("[&_tr]:border-b", className),
4189
+ ...props
4190
+ }
4191
+ );
4192
+ }
4193
+ function TableBody({ className, ...props }) {
4194
+ return /* @__PURE__ */ jsxRuntime.jsx(
4195
+ "tbody",
4196
+ {
4197
+ "data-slot": "table-body",
4198
+ className: cn("[&_tr:last-child]:border-0", className),
4199
+ ...props
4200
+ }
4201
+ );
4202
+ }
4203
+ function TableFooter({ className, ...props }) {
4204
+ return /* @__PURE__ */ jsxRuntime.jsx(
4205
+ "tfoot",
4206
+ {
4207
+ "data-slot": "table-footer",
4208
+ className: cn("bg-muted/50 border-t font-medium [&>tr]:last:border-b-0", className),
4209
+ ...props
4210
+ }
4211
+ );
4212
+ }
4213
+ function TableRow({ className, ...props }) {
4214
+ return /* @__PURE__ */ jsxRuntime.jsx(
4215
+ "tr",
4216
+ {
4217
+ "data-slot": "table-row",
4218
+ className: cn("hover:bg-muted/50 data-[state=selected]:bg-muted border-b transition-colors", className),
4219
+ ...props
4220
+ }
4221
+ );
4222
+ }
4223
+ function TableHead({ className, ...props }) {
4224
+ return /* @__PURE__ */ jsxRuntime.jsx(
4225
+ "th",
4226
+ {
4227
+ "data-slot": "table-head",
4228
+ className: cn("text-foreground h-10 px-2 text-left align-middle font-medium whitespace-nowrap [&:has([role=checkbox])]:pr-0", className),
4229
+ ...props
4230
+ }
4231
+ );
4232
+ }
4233
+ function TableCell({ className, ...props }) {
4234
+ return /* @__PURE__ */ jsxRuntime.jsx(
4235
+ "td",
4236
+ {
4237
+ "data-slot": "table-cell",
4238
+ className: cn("p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0", className),
4239
+ ...props
4240
+ }
4241
+ );
4242
+ }
4243
+ function TableCaption({
4244
+ className,
4245
+ ...props
4246
+ }) {
4247
+ return /* @__PURE__ */ jsxRuntime.jsx(
4248
+ "caption",
4249
+ {
4250
+ "data-slot": "table-caption",
4251
+ className: cn("text-muted-foreground mt-4 text-xs", className),
4252
+ ...props
4253
+ }
4254
+ );
4255
+ }
4256
+ function Tabs({
4257
+ className,
4258
+ orientation = "horizontal",
4259
+ ...props
4260
+ }) {
4261
+ return /* @__PURE__ */ jsxRuntime.jsx(
4262
+ radixUi.Tabs.Root,
4263
+ {
4264
+ "data-slot": "tabs",
4265
+ "data-orientation": orientation,
4266
+ className: cn(
4267
+ "gap-2 group/tabs flex data-[orientation=horizontal]:flex-col",
4268
+ className
4269
+ ),
4270
+ ...props
4271
+ }
4272
+ );
4273
+ }
4274
+ var tabsListVariants = classVarianceAuthority.cva(
4275
+ "rounded-lg p-[3px] group-data-horizontal/tabs:h-8 data-[variant=line]:rounded-none group/tabs-list text-muted-foreground inline-flex w-fit items-center justify-center group-data-[orientation=vertical]/tabs:h-fit group-data-[orientation=vertical]/tabs:flex-col",
4276
+ {
4277
+ variants: {
4278
+ variant: {
4279
+ default: "bg-muted",
4280
+ line: "gap-1 bg-transparent"
4281
+ }
4282
+ },
4283
+ defaultVariants: {
4284
+ variant: "default"
4285
+ }
4286
+ }
4287
+ );
4288
+ function TabsList({
4289
+ className,
4290
+ variant = "default",
4291
+ ...props
4292
+ }) {
4293
+ return /* @__PURE__ */ jsxRuntime.jsx(
4294
+ radixUi.Tabs.List,
4295
+ {
4296
+ "data-slot": "tabs-list",
4297
+ "data-variant": variant,
4298
+ className: cn(tabsListVariants({ variant }), className),
4299
+ ...props
4300
+ }
4301
+ );
4302
+ }
4303
+ function TabsTrigger({
4304
+ className,
4305
+ ...props
4306
+ }) {
4307
+ return /* @__PURE__ */ jsxRuntime.jsx(
4308
+ radixUi.Tabs.Trigger,
4309
+ {
4310
+ "data-slot": "tabs-trigger",
4311
+ className: cn(
4312
+ "gap-1.5 rounded-md border border-transparent px-1.5 py-0.5 text-xs font-medium group-data-vertical/tabs:py-[calc(--spacing(1.25))] [&_svg:not([class*='size-'])]:size-3.5 focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:outline-ring text-foreground/60 hover:text-foreground dark:text-muted-foreground dark:hover:text-foreground relative inline-flex h-[calc(100%-1px)] flex-1 items-center justify-center whitespace-nowrap transition-all group-data-[orientation=vertical]/tabs:w-full group-data-[orientation=vertical]/tabs:justify-start focus-visible:ring-[3px] focus-visible:outline-1 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0",
4313
+ "group-data-[variant=line]/tabs-list:bg-transparent group-data-[variant=line]/tabs-list:data-active:bg-transparent dark:group-data-[variant=line]/tabs-list:data-active:border-transparent dark:group-data-[variant=line]/tabs-list:data-active:bg-transparent",
4314
+ "data-active:bg-background dark:data-active:text-foreground dark:data-active:border-input dark:data-active:bg-input/30 data-active:text-foreground",
4315
+ "after:bg-foreground after:absolute after:opacity-0 after:transition-opacity group-data-[orientation=horizontal]/tabs:after:inset-x-0 group-data-[orientation=horizontal]/tabs:after:bottom-[-5px] group-data-[orientation=horizontal]/tabs:after:h-0.5 group-data-[orientation=vertical]/tabs:after:inset-y-0 group-data-[orientation=vertical]/tabs:after:-right-1 group-data-[orientation=vertical]/tabs:after:w-0.5 group-data-[variant=line]/tabs-list:data-active:after:opacity-100",
4316
+ className
4317
+ ),
4318
+ ...props
4319
+ }
4320
+ );
4321
+ }
4322
+ function TabsContent({
4323
+ className,
4324
+ ...props
4325
+ }) {
4326
+ return /* @__PURE__ */ jsxRuntime.jsx(
4327
+ radixUi.Tabs.Content,
4328
+ {
4329
+ "data-slot": "tabs-content",
4330
+ className: cn("text-xs/relaxed flex-1 outline-none", className),
4331
+ ...props
4332
+ }
4333
+ );
4334
+ }
4335
+ var toggleVariants = classVarianceAuthority.cva(
4336
+ "hover:text-foreground aria-pressed:bg-muted focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive data-[state=on]:bg-muted gap-1 rounded-md text-xs font-medium transition-all [&_svg:not([class*='size-'])]:size-3.5 group/toggle hover:bg-muted inline-flex items-center justify-center whitespace-nowrap outline-none focus-visible:ring-[3px] disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0",
4337
+ {
4338
+ variants: {
4339
+ variant: {
4340
+ default: "bg-transparent",
4341
+ outline: "border-input hover:bg-muted border bg-transparent"
4342
+ },
4343
+ size: {
4344
+ default: "h-7 min-w-7 px-2",
4345
+ sm: "h-6 min-w-6 rounded-[min(var(--radius-md),8px)] px-1.5 text-[0.625rem] [&_svg:not([class*='size-'])]:size-3",
4346
+ lg: "h-8 min-w-8 px-2"
4347
+ }
4348
+ },
4349
+ defaultVariants: {
4350
+ variant: "default",
4351
+ size: "default"
4352
+ }
4353
+ }
4354
+ );
4355
+ function Toggle({
4356
+ className,
4357
+ variant = "default",
4358
+ size = "default",
4359
+ ...props
4360
+ }) {
4361
+ return /* @__PURE__ */ jsxRuntime.jsx(
4362
+ radixUi.Toggle.Root,
4363
+ {
4364
+ "data-slot": "toggle",
4365
+ className: cn(toggleVariants({ variant, size, className })),
4366
+ ...props
4367
+ }
4368
+ );
4369
+ }
4370
+ var ToggleGroupContext = React2__namespace.createContext({
4371
+ size: "default",
4372
+ variant: "default",
4373
+ spacing: 0,
4374
+ orientation: "horizontal"
4375
+ });
4376
+ function ToggleGroup({
4377
+ className,
4378
+ variant,
4379
+ size,
4380
+ spacing = 0,
4381
+ orientation = "horizontal",
4382
+ children,
4383
+ ...props
4384
+ }) {
4385
+ return /* @__PURE__ */ jsxRuntime.jsx(
4386
+ radixUi.ToggleGroup.Root,
4387
+ {
4388
+ "data-slot": "toggle-group",
4389
+ "data-variant": variant,
4390
+ "data-size": size,
4391
+ "data-spacing": spacing,
4392
+ "data-orientation": orientation,
4393
+ style: { "--gap": spacing },
4394
+ className: cn(
4395
+ "rounded-md data-[size=sm]:rounded-[min(var(--radius-md),8px)] group/toggle-group flex w-fit flex-row items-center gap-[--spacing(var(--gap))] data-[orientation=vertical]:flex-col data-[orientation=vertical]:items-stretch",
4396
+ className
4397
+ ),
4398
+ ...props,
4399
+ children: /* @__PURE__ */ jsxRuntime.jsx(
4400
+ ToggleGroupContext.Provider,
4401
+ {
4402
+ value: { variant, size, spacing, orientation },
4403
+ children
4404
+ }
4405
+ )
4406
+ }
4407
+ );
4408
+ }
4409
+ function ToggleGroupItem({
4410
+ className,
4411
+ children,
4412
+ variant = "default",
4413
+ size = "default",
4414
+ ...props
4415
+ }) {
4416
+ const context = React2__namespace.useContext(ToggleGroupContext);
4417
+ return /* @__PURE__ */ jsxRuntime.jsx(
4418
+ radixUi.ToggleGroup.Item,
4419
+ {
4420
+ "data-slot": "toggle-group-item",
4421
+ "data-variant": context.variant || variant,
4422
+ "data-size": context.size || size,
4423
+ "data-spacing": context.spacing,
4424
+ className: cn(
4425
+ "group-data-[spacing=0]/toggle-group:rounded-none group-data-[spacing=0]/toggle-group:px-2 group-data-horizontal/toggle-group:data-[spacing=0]:first:rounded-l-md group-data-vertical/toggle-group:data-[spacing=0]:first:rounded-t-md group-data-horizontal/toggle-group:data-[spacing=0]:last:rounded-r-md group-data-vertical/toggle-group:data-[spacing=0]:last:rounded-b-md shrink-0 focus:z-10 focus-visible:z-10 group-data-horizontal/toggle-group:data-[spacing=0]:data-[variant=outline]:border-l-0 group-data-vertical/toggle-group:data-[spacing=0]:data-[variant=outline]:border-t-0 group-data-horizontal/toggle-group:data-[spacing=0]:data-[variant=outline]:first:border-l group-data-vertical/toggle-group:data-[spacing=0]:data-[variant=outline]:first:border-t",
4426
+ toggleVariants({
4427
+ variant: context.variant || variant,
4428
+ size: context.size || size
4429
+ }),
4430
+ className
4431
+ ),
4432
+ ...props,
4433
+ children
4434
+ }
4435
+ );
4436
+ }
4437
+ var Toaster = ({ ...props }) => {
4438
+ const { theme = "system" } = nextThemes.useTheme();
4439
+ return /* @__PURE__ */ jsxRuntime.jsx(
4440
+ sonner.Toaster,
4441
+ {
4442
+ theme,
4443
+ className: "toaster group",
4444
+ icons: {
4445
+ success: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.CircleCheckIcon, { className: "size-4" }),
4446
+ info: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.InfoIcon, { className: "size-4" }),
4447
+ warning: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.TriangleAlertIcon, { className: "size-4" }),
4448
+ error: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.OctagonXIcon, { className: "size-4" }),
4449
+ loading: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Loader2Icon, { className: "size-4 animate-spin" })
4450
+ },
4451
+ style: {
4452
+ "--normal-bg": "var(--popover)",
4453
+ "--normal-text": "var(--popover-foreground)",
4454
+ "--normal-border": "var(--border)",
4455
+ "--border-radius": "var(--radius)"
4456
+ },
4457
+ toastOptions: {
4458
+ classNames: {
4459
+ toast: "cn-toast"
4460
+ }
4461
+ },
4462
+ ...props
4463
+ }
4464
+ );
4465
+ };
4466
+
4467
+ exports.Accordion = Accordion;
4468
+ exports.AccordionContent = AccordionContent;
4469
+ exports.AccordionItem = AccordionItem;
4470
+ exports.AccordionTrigger = AccordionTrigger;
4471
+ exports.Alert = Alert;
4472
+ exports.AlertDescription = AlertDescription;
4473
+ exports.AlertDialog = AlertDialog;
4474
+ exports.AlertDialogAction = AlertDialogAction;
4475
+ exports.AlertDialogCancel = AlertDialogCancel;
4476
+ exports.AlertDialogContent = AlertDialogContent;
4477
+ exports.AlertDialogDescription = AlertDialogDescription;
4478
+ exports.AlertDialogFooter = AlertDialogFooter;
4479
+ exports.AlertDialogHeader = AlertDialogHeader;
4480
+ exports.AlertDialogTitle = AlertDialogTitle;
4481
+ exports.AlertDialogTrigger = AlertDialogTrigger;
4482
+ exports.AlertTitle = AlertTitle;
4483
+ exports.AspectRatio = AspectRatio;
4484
+ exports.Avatar = Avatar;
4485
+ exports.AvatarFallback = AvatarFallback;
4486
+ exports.AvatarImage = AvatarImage;
4487
+ exports.Badge = Badge;
4488
+ exports.Breadcrumb = Breadcrumb;
4489
+ exports.BreadcrumbEllipsis = BreadcrumbEllipsis;
4490
+ exports.BreadcrumbItem = BreadcrumbItem;
4491
+ exports.BreadcrumbLink = BreadcrumbLink;
4492
+ exports.BreadcrumbList = BreadcrumbList;
4493
+ exports.BreadcrumbPage = BreadcrumbPage;
4494
+ exports.BreadcrumbSeparator = BreadcrumbSeparator;
4495
+ exports.Button = Button;
4496
+ exports.ButtonGroup = ButtonGroup;
4497
+ exports.Calendar = Calendar;
4498
+ exports.Card = Card;
4499
+ exports.CardContent = CardContent;
4500
+ exports.CardDescription = CardDescription;
4501
+ exports.CardFooter = CardFooter;
4502
+ exports.CardHeader = CardHeader;
4503
+ exports.CardTitle = CardTitle;
4504
+ exports.Carousel = Carousel;
4505
+ exports.CarouselContent = CarouselContent;
4506
+ exports.CarouselItem = CarouselItem;
4507
+ exports.CarouselNext = CarouselNext;
4508
+ exports.CarouselPrevious = CarouselPrevious;
4509
+ exports.ChartContainer = ChartContainer;
4510
+ exports.ChartLegend = ChartLegend;
4511
+ exports.ChartLegendContent = ChartLegendContent;
4512
+ exports.ChartStyle = ChartStyle;
4513
+ exports.ChartTooltip = ChartTooltip;
4514
+ exports.ChartTooltipContent = ChartTooltipContent;
4515
+ exports.Checkbox = Checkbox;
4516
+ exports.Collapsible = Collapsible;
4517
+ exports.CollapsibleContent = CollapsibleContent;
4518
+ exports.CollapsibleTrigger = CollapsibleTrigger;
4519
+ exports.Combobox = Combobox;
4520
+ exports.Command = Command;
4521
+ exports.CommandDialog = CommandDialog;
4522
+ exports.CommandEmpty = CommandEmpty;
4523
+ exports.CommandGroup = CommandGroup;
4524
+ exports.CommandInput = CommandInput;
4525
+ exports.CommandItem = CommandItem;
4526
+ exports.CommandList = CommandList;
4527
+ exports.CommandSeparator = CommandSeparator;
4528
+ exports.CommandShortcut = CommandShortcut;
4529
+ exports.ContextMenu = ContextMenu;
4530
+ exports.ContextMenuCheckboxItem = ContextMenuCheckboxItem;
4531
+ exports.ContextMenuContent = ContextMenuContent;
4532
+ exports.ContextMenuGroup = ContextMenuGroup;
4533
+ exports.ContextMenuItem = ContextMenuItem;
4534
+ exports.ContextMenuLabel = ContextMenuLabel;
4535
+ exports.ContextMenuPortal = ContextMenuPortal;
4536
+ exports.ContextMenuRadioGroup = ContextMenuRadioGroup;
4537
+ exports.ContextMenuRadioItem = ContextMenuRadioItem;
4538
+ exports.ContextMenuSeparator = ContextMenuSeparator;
4539
+ exports.ContextMenuShortcut = ContextMenuShortcut;
4540
+ exports.ContextMenuSub = ContextMenuSub;
4541
+ exports.ContextMenuSubContent = ContextMenuSubContent;
4542
+ exports.ContextMenuSubTrigger = ContextMenuSubTrigger;
4543
+ exports.ContextMenuTrigger = ContextMenuTrigger;
4544
+ exports.Dialog = Dialog;
4545
+ exports.DialogContent = DialogContent;
4546
+ exports.DialogDescription = DialogDescription;
4547
+ exports.DialogFooter = DialogFooter;
4548
+ exports.DialogHeader = DialogHeader;
4549
+ exports.DialogTitle = DialogTitle;
4550
+ exports.DialogTrigger = DialogTrigger;
4551
+ exports.Drawer = Drawer;
4552
+ exports.DrawerClose = DrawerClose;
4553
+ exports.DrawerContent = DrawerContent;
4554
+ exports.DrawerDescription = DrawerDescription;
4555
+ exports.DrawerFooter = DrawerFooter;
4556
+ exports.DrawerHeader = DrawerHeader;
4557
+ exports.DrawerTitle = DrawerTitle;
4558
+ exports.DrawerTrigger = DrawerTrigger;
4559
+ exports.DropdownMenu = DropdownMenu;
4560
+ exports.DropdownMenuCheckboxItem = DropdownMenuCheckboxItem;
4561
+ exports.DropdownMenuContent = DropdownMenuContent;
4562
+ exports.DropdownMenuGroup = DropdownMenuGroup;
4563
+ exports.DropdownMenuItem = DropdownMenuItem;
4564
+ exports.DropdownMenuLabel = DropdownMenuLabel;
4565
+ exports.DropdownMenuPortal = DropdownMenuPortal;
4566
+ exports.DropdownMenuRadioGroup = DropdownMenuRadioGroup;
4567
+ exports.DropdownMenuRadioItem = DropdownMenuRadioItem;
4568
+ exports.DropdownMenuSeparator = DropdownMenuSeparator;
4569
+ exports.DropdownMenuShortcut = DropdownMenuShortcut;
4570
+ exports.DropdownMenuSub = DropdownMenuSub;
4571
+ exports.DropdownMenuSubContent = DropdownMenuSubContent;
4572
+ exports.DropdownMenuSubTrigger = DropdownMenuSubTrigger;
4573
+ exports.DropdownMenuTrigger = DropdownMenuTrigger;
4574
+ exports.Empty = Empty;
4575
+ exports.Field = Field;
4576
+ exports.FieldDescription = FieldDescription;
4577
+ exports.FieldError = FieldError;
4578
+ exports.FieldGroup = FieldGroup;
4579
+ exports.FieldLabel = FieldLabel;
4580
+ exports.HoverCard = HoverCard;
4581
+ exports.HoverCardContent = HoverCardContent;
4582
+ exports.HoverCardTrigger = HoverCardTrigger;
4583
+ exports.Input = Input;
4584
+ exports.InputGroup = InputGroup;
4585
+ exports.InputOTP = InputOTP;
4586
+ exports.InputOTPGroup = InputOTPGroup;
4587
+ exports.InputOTPSeparator = InputOTPSeparator;
4588
+ exports.InputOTPSlot = InputOTPSlot;
4589
+ exports.Item = Item;
4590
+ exports.Kbd = Kbd;
4591
+ exports.Label = Label;
4592
+ exports.Menubar = Menubar;
4593
+ exports.MenubarCheckboxItem = MenubarCheckboxItem;
4594
+ exports.MenubarContent = MenubarContent;
4595
+ exports.MenubarGroup = MenubarGroup;
4596
+ exports.MenubarItem = MenubarItem;
4597
+ exports.MenubarLabel = MenubarLabel;
4598
+ exports.MenubarMenu = MenubarMenu;
4599
+ exports.MenubarPortal = MenubarPortal;
4600
+ exports.MenubarRadioGroup = MenubarRadioGroup;
4601
+ exports.MenubarRadioItem = MenubarRadioItem;
4602
+ exports.MenubarSeparator = MenubarSeparator;
4603
+ exports.MenubarShortcut = MenubarShortcut;
4604
+ exports.MenubarSub = MenubarSub;
4605
+ exports.MenubarSubContent = MenubarSubContent;
4606
+ exports.MenubarSubTrigger = MenubarSubTrigger;
4607
+ exports.MenubarTrigger = MenubarTrigger;
4608
+ exports.NavigationMenu = NavigationMenu;
4609
+ exports.NavigationMenuContent = NavigationMenuContent;
4610
+ exports.NavigationMenuIndicator = NavigationMenuIndicator;
4611
+ exports.NavigationMenuItem = NavigationMenuItem;
4612
+ exports.NavigationMenuLink = NavigationMenuLink;
4613
+ exports.NavigationMenuList = NavigationMenuList;
4614
+ exports.NavigationMenuTrigger = NavigationMenuTrigger;
4615
+ exports.NavigationMenuViewport = NavigationMenuViewport;
4616
+ exports.Pagination = Pagination;
4617
+ exports.PaginationContent = PaginationContent;
4618
+ exports.PaginationEllipsis = PaginationEllipsis;
4619
+ exports.PaginationItem = PaginationItem;
4620
+ exports.PaginationLink = PaginationLink;
4621
+ exports.PaginationNext = PaginationNext;
4622
+ exports.PaginationPrevious = PaginationPrevious;
4623
+ exports.Popover = Popover;
4624
+ exports.PopoverContent = PopoverContent;
4625
+ exports.PopoverTrigger = PopoverTrigger;
4626
+ exports.Progress = Progress;
4627
+ exports.RadioGroup = RadioGroup;
4628
+ exports.RadioGroupItem = RadioGroupItem;
4629
+ exports.ResizableHandle = ResizableHandle;
4630
+ exports.ResizablePanel = ResizablePanel;
4631
+ exports.ResizablePanelGroup = ResizablePanelGroup;
4632
+ exports.ScrollArea = ScrollArea;
4633
+ exports.ScrollBar = ScrollBar;
4634
+ exports.Select = Select;
4635
+ exports.SelectContent = SelectContent;
4636
+ exports.SelectGroup = SelectGroup;
4637
+ exports.SelectItem = SelectItem;
4638
+ exports.SelectLabel = SelectLabel;
4639
+ exports.SelectScrollDownButton = SelectScrollDownButton;
4640
+ exports.SelectScrollUpButton = SelectScrollUpButton;
4641
+ exports.SelectSeparator = SelectSeparator;
4642
+ exports.SelectTrigger = SelectTrigger;
4643
+ exports.SelectValue = SelectValue;
4644
+ exports.Separator = Separator;
4645
+ exports.Sheet = Sheet;
4646
+ exports.SheetClose = SheetClose;
4647
+ exports.SheetContent = SheetContent;
4648
+ exports.SheetDescription = SheetDescription;
4649
+ exports.SheetFooter = SheetFooter;
4650
+ exports.SheetHeader = SheetHeader;
4651
+ exports.SheetTitle = SheetTitle;
4652
+ exports.SheetTrigger = SheetTrigger;
4653
+ exports.Sidebar = Sidebar;
4654
+ exports.SidebarContent = SidebarContent;
4655
+ exports.SidebarFooter = SidebarFooter;
4656
+ exports.SidebarGroup = SidebarGroup;
4657
+ exports.SidebarGroupAction = SidebarGroupAction;
4658
+ exports.SidebarGroupContent = SidebarGroupContent;
4659
+ exports.SidebarGroupLabel = SidebarGroupLabel;
4660
+ exports.SidebarHeader = SidebarHeader;
4661
+ exports.SidebarInput = SidebarInput;
4662
+ exports.SidebarInset = SidebarInset;
4663
+ exports.SidebarMenu = SidebarMenu;
4664
+ exports.SidebarMenuAction = SidebarMenuAction;
4665
+ exports.SidebarMenuBadge = SidebarMenuBadge;
4666
+ exports.SidebarMenuButton = SidebarMenuButton;
4667
+ exports.SidebarMenuItem = SidebarMenuItem;
4668
+ exports.SidebarMenuSkeleton = SidebarMenuSkeleton;
4669
+ exports.SidebarMenuSub = SidebarMenuSub;
4670
+ exports.SidebarMenuSubButton = SidebarMenuSubButton;
4671
+ exports.SidebarMenuSubItem = SidebarMenuSubItem;
4672
+ exports.SidebarProvider = SidebarProvider;
4673
+ exports.SidebarRail = SidebarRail;
4674
+ exports.SidebarSeparator = SidebarSeparator;
4675
+ exports.SidebarTrigger = SidebarTrigger;
4676
+ exports.Skeleton = Skeleton;
4677
+ exports.Slider = Slider;
4678
+ exports.Spinner = Spinner;
4679
+ exports.Switch = Switch;
4680
+ exports.Table = Table;
4681
+ exports.TableBody = TableBody;
4682
+ exports.TableCaption = TableCaption;
4683
+ exports.TableCell = TableCell;
4684
+ exports.TableFooter = TableFooter;
4685
+ exports.TableHead = TableHead;
4686
+ exports.TableHeader = TableHeader;
4687
+ exports.TableRow = TableRow;
4688
+ exports.Tabs = Tabs;
4689
+ exports.TabsContent = TabsContent;
4690
+ exports.TabsList = TabsList;
4691
+ exports.TabsTrigger = TabsTrigger;
4692
+ exports.Textarea = Textarea;
4693
+ exports.Toaster = Toaster;
4694
+ exports.Toggle = Toggle;
4695
+ exports.ToggleGroup = ToggleGroup;
4696
+ exports.ToggleGroupItem = ToggleGroupItem;
4697
+ exports.Tooltip = Tooltip2;
4698
+ exports.TooltipContent = TooltipContent;
4699
+ exports.TooltipProvider = TooltipProvider;
4700
+ exports.TooltipTrigger = TooltipTrigger;
4701
+ exports.badgeVariants = badgeVariants;
4702
+ exports.buttonVariants = buttonVariants;
4703
+ exports.cn = cn;
4704
+ exports.navigationMenuTriggerStyle = navigationMenuTriggerStyle;
4705
+ exports.toggleVariants = toggleVariants;
4706
+ exports.useIsMobile = useIsMobile;
4707
+ exports.useSidebar = useSidebar;
4708
+ //# sourceMappingURL=index.js.map
4709
+ //# sourceMappingURL=index.js.map