@fluid-app/ui-primitives 0.1.4 → 0.1.6

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 DELETED
@@ -1,2401 +0,0 @@
1
- import { clsx } from 'clsx';
2
- import { twMerge } from 'tailwind-merge';
3
- import { zodResolver } from '@hookform/resolvers/zod';
4
- import { FormProvider, useForm, Controller, useFormContext, useFormState } from 'react-hook-form';
5
- import * as React15 from 'react';
6
- import { createContext, useContext } from 'react';
7
- import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
8
- import * as AccordionPrimitive from '@radix-ui/react-accordion';
9
- import { X, ChevronDown, ChevronRight, ChevronLeft, CalendarIcon, Check, Circle, ChevronLeftIcon, ChevronRightIcon, MoreHorizontalIcon, CircleIcon, ChevronUp, Loader2Icon, OctagonXIcon, TriangleAlertIcon, InfoIcon, CircleCheckIcon, LoaderIcon } from 'lucide-react';
10
- import { cva } from 'class-variance-authority';
11
- import { AlertDialog as AlertDialog$1, Avatar as Avatar$1, Slot as Slot$1, RadioGroup } from 'radix-ui';
12
- import { Slot } from '@radix-ui/react-slot';
13
- import { DayPicker } from 'react-day-picker';
14
- import * as RechartsPrimitive from 'recharts';
15
- import * as CollapsiblePrimitive from '@radix-ui/react-collapsible';
16
- import * as PopoverPrimitive from '@radix-ui/react-popover';
17
- import * as SheetPrimitive from '@radix-ui/react-dialog';
18
- import * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu';
19
- import * as LabelPrimitive from '@radix-ui/react-label';
20
- import * as TogglePrimitive from '@radix-ui/react-toggle';
21
- import * as SelectPrimitive from '@radix-ui/react-select';
22
- import * as SeparatorPrimitive from '@radix-ui/react-separator';
23
- import * as SliderPrimitive from '@radix-ui/react-slider';
24
- import { Toaster as Toaster$1 } from 'sonner';
25
- import * as SwitchPrimitive from '@radix-ui/react-switch';
26
- import * as TabsPrimitive from '@radix-ui/react-tabs';
27
- import * as ToggleGroupPrimitive from '@radix-ui/react-toggle-group';
28
- import * as TooltipPrimitive from '@radix-ui/react-tooltip';
29
-
30
- // src/lib/utils.ts
31
- function cn(...inputs) {
32
- return twMerge(clsx(inputs));
33
- }
34
- function useZodForm(schema, options) {
35
- "use no memo";
36
- const zodResolverFn = zodResolver;
37
- const resolver = zodResolverFn(schema);
38
- return useForm({ ...options, resolver });
39
- }
40
- var PortalContainerContext = createContext(
41
- void 0
42
- );
43
- function PortalContainerProvider({
44
- children,
45
- container
46
- }) {
47
- return /* @__PURE__ */ jsx(PortalContainerContext.Provider, { value: container ?? void 0, children });
48
- }
49
- function usePortalContainer() {
50
- return useContext(PortalContainerContext);
51
- }
52
- function Accordion({
53
- className,
54
- ...props
55
- }) {
56
- return /* @__PURE__ */ jsx(
57
- AccordionPrimitive.Root,
58
- {
59
- "data-slot": "accordion",
60
- className: cn("cn-accordion flex w-full flex-col", className),
61
- ...props
62
- }
63
- );
64
- }
65
- function AccordionItem({
66
- className,
67
- ...props
68
- }) {
69
- return /* @__PURE__ */ jsx(
70
- AccordionPrimitive.Item,
71
- {
72
- "data-slot": "accordion-item",
73
- className: cn("cn-accordion-item", className),
74
- ...props
75
- }
76
- );
77
- }
78
- function AccordionTrigger({
79
- className,
80
- children,
81
- ...props
82
- }) {
83
- return /* @__PURE__ */ jsx(AccordionPrimitive.Header, { className: "flex", children: /* @__PURE__ */ jsxs(
84
- AccordionPrimitive.Trigger,
85
- {
86
- "data-slot": "accordion-trigger",
87
- className: cn(
88
- "cn-accordion-trigger 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",
89
- className
90
- ),
91
- ...props,
92
- children: [
93
- children,
94
- /* @__PURE__ */ jsx(ChevronDown, { className: "cn-accordion-trigger-icon pointer-events-none shrink-0 transition-transform duration-200 group-aria-expanded/accordion-trigger:rotate-180" })
95
- ]
96
- }
97
- ) });
98
- }
99
- function AccordionContent({
100
- className,
101
- children,
102
- ...props
103
- }) {
104
- return /* @__PURE__ */ jsx(
105
- AccordionPrimitive.Content,
106
- {
107
- "data-slot": "accordion-content",
108
- className: "cn-accordion-content overflow-hidden",
109
- ...props,
110
- children: /* @__PURE__ */ jsx(
111
- "div",
112
- {
113
- className: cn(
114
- "cn-accordion-content-inner [&_a]:hover:text-foreground h-(--radix-accordion-content-height) [&_a]:underline [&_a]:underline-offset-3 [&_p:not(:last-child)]:mb-4",
115
- className
116
- ),
117
- children
118
- }
119
- )
120
- }
121
- );
122
- }
123
- var alertVariants = cva(
124
- "relative grid h-full w-full grid-cols-[0_1fr] items-start gap-y-0.5 rounded-lg border px-4 py-3 text-sm has-[>svg]:grid-cols-[calc(var(--spacing)*4)_1fr] has-[>svg]:gap-x-3 [&>svg]:size-4 [&>svg]:translate-y-0.5 [&>svg]:text-current",
125
- {
126
- variants: {
127
- variant: {
128
- default: "bg-card text-card-foreground",
129
- destructive: "bg-card text-destructive *:data-[slot=alert-description]:text-destructive/90 [&>svg]:text-current"
130
- }
131
- },
132
- defaultVariants: {
133
- variant: "default"
134
- }
135
- }
136
- );
137
- function Alert({
138
- className,
139
- variant,
140
- ...props
141
- }) {
142
- return /* @__PURE__ */ jsx(
143
- "div",
144
- {
145
- "data-slot": "alert",
146
- role: "alert",
147
- className: cn(alertVariants({ variant }), className),
148
- ...props
149
- }
150
- );
151
- }
152
- function AlertTitle({ className, ...props }) {
153
- return /* @__PURE__ */ jsx(
154
- "div",
155
- {
156
- "data-slot": "alert-title",
157
- className: cn(
158
- "col-start-2 line-clamp-1 min-h-4 font-medium tracking-tight",
159
- className
160
- ),
161
- ...props
162
- }
163
- );
164
- }
165
- function AlertDescription({
166
- className,
167
- ...props
168
- }) {
169
- return /* @__PURE__ */ jsx(
170
- "div",
171
- {
172
- "data-slot": "alert-description",
173
- className: cn(
174
- "text-muted-foreground col-start-2 grid justify-items-start gap-1 text-sm [&_p]:leading-relaxed",
175
- className
176
- ),
177
- ...props
178
- }
179
- );
180
- }
181
- var buttonVariants = cva(
182
- "focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 inline-flex shrink-0 items-center justify-center gap-2 rounded-md text-sm font-medium whitespace-nowrap transition-all outline-none focus-visible:ring-[3px] disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
183
- {
184
- variants: {
185
- variant: {
186
- default: "bg-primary text-primary-foreground hover:bg-primary/90",
187
- destructive: "bg-destructive text-destructive-foreground hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:bg-destructive/60 dark:focus-visible:ring-destructive/40",
188
- outline: "bg-background hover:bg-accent hover:text-accent-foreground dark:border-input dark:bg-input/30 dark:hover:bg-input/50 border shadow-xs",
189
- secondary: "bg-secondary text-secondary-foreground hover:bg-secondary/80",
190
- ghost: "hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50",
191
- link: "text-primary underline-offset-4 hover:underline"
192
- },
193
- size: {
194
- default: "h-9 px-4 py-2 has-[>svg]:px-3",
195
- sm: "h-8 gap-1.5 rounded-md px-3 has-[>svg]:px-2.5",
196
- lg: "h-10 rounded-md px-6 has-[>svg]:px-4",
197
- xl: "h-11 rounded-md px-8 has-[>svg]:px-5",
198
- icon: "size-9",
199
- "icon-xs": "size-6",
200
- "icon-sm": "size-8",
201
- "icon-lg": "size-10"
202
- }
203
- },
204
- defaultVariants: {
205
- variant: "default",
206
- size: "default"
207
- }
208
- }
209
- );
210
- function Button({
211
- className,
212
- variant,
213
- size,
214
- asChild = false,
215
- ...props
216
- }) {
217
- const Comp = asChild ? Slot : "button";
218
- return /* @__PURE__ */ jsx(
219
- Comp,
220
- {
221
- "data-slot": "button",
222
- className: cn(buttonVariants({ variant, size, className })),
223
- ...props
224
- }
225
- );
226
- }
227
- function AlertDialog({
228
- ...props
229
- }) {
230
- return /* @__PURE__ */ jsx(AlertDialog$1.Root, { "data-slot": "alert-dialog", ...props });
231
- }
232
- function AlertDialogTrigger({
233
- ...props
234
- }) {
235
- return /* @__PURE__ */ jsx(AlertDialog$1.Trigger, { "data-slot": "alert-dialog-trigger", ...props });
236
- }
237
- function AlertDialogPortal({
238
- ...props
239
- }) {
240
- const portalContainer = usePortalContainer();
241
- return /* @__PURE__ */ jsx(
242
- AlertDialog$1.Portal,
243
- {
244
- "data-slot": "alert-dialog-portal",
245
- container: portalContainer,
246
- ...props
247
- }
248
- );
249
- }
250
- function AlertDialogOverlay({
251
- className,
252
- ...props
253
- }) {
254
- return /* @__PURE__ */ jsx(
255
- AlertDialog$1.Overlay,
256
- {
257
- "data-slot": "alert-dialog-overlay",
258
- className: cn(
259
- "data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:animate-in data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50",
260
- className
261
- ),
262
- ...props
263
- }
264
- );
265
- }
266
- function AlertDialogContent({
267
- className,
268
- size = "default",
269
- ...props
270
- }) {
271
- return /* @__PURE__ */ jsxs(AlertDialogPortal, { children: [
272
- /* @__PURE__ */ jsx(AlertDialogOverlay, {}),
273
- /* @__PURE__ */ jsx(
274
- AlertDialog$1.Content,
275
- {
276
- "data-slot": "alert-dialog-content",
277
- "data-size": size,
278
- className: cn(
279
- "group/alert-dialog-content bg-background data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95 fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border p-6 shadow-lg duration-200 data-[size=sm]:max-w-xs data-[size=default]:sm:max-w-lg",
280
- className
281
- ),
282
- ...props
283
- }
284
- )
285
- ] });
286
- }
287
- function AlertDialogHeader({
288
- className,
289
- ...props
290
- }) {
291
- return /* @__PURE__ */ jsx(
292
- "div",
293
- {
294
- "data-slot": "alert-dialog-header",
295
- className: cn(
296
- "grid grid-rows-[auto_1fr] place-items-center gap-1.5 text-center has-data-[slot=alert-dialog-media]:grid-rows-[auto_auto_1fr] has-data-[slot=alert-dialog-media]:gap-x-6 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]",
297
- className
298
- ),
299
- ...props
300
- }
301
- );
302
- }
303
- function AlertDialogFooter({
304
- className,
305
- ...props
306
- }) {
307
- return /* @__PURE__ */ jsx(
308
- "div",
309
- {
310
- "data-slot": "alert-dialog-footer",
311
- className: cn(
312
- "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",
313
- className
314
- ),
315
- ...props
316
- }
317
- );
318
- }
319
- function AlertDialogTitle({
320
- className,
321
- ...props
322
- }) {
323
- return /* @__PURE__ */ jsx(
324
- AlertDialog$1.Title,
325
- {
326
- "data-slot": "alert-dialog-title",
327
- className: cn(
328
- "text-lg font-semibold sm:group-data-[size=default]/alert-dialog-content:group-has-data-[slot=alert-dialog-media]/alert-dialog-content:col-start-2",
329
- className
330
- ),
331
- ...props
332
- }
333
- );
334
- }
335
- function AlertDialogDescription({
336
- className,
337
- ...props
338
- }) {
339
- return /* @__PURE__ */ jsx(
340
- AlertDialog$1.Description,
341
- {
342
- "data-slot": "alert-dialog-description",
343
- className: cn("text-muted-foreground text-sm", className),
344
- ...props
345
- }
346
- );
347
- }
348
- function AlertDialogMedia({
349
- className,
350
- ...props
351
- }) {
352
- return /* @__PURE__ */ jsx(
353
- "div",
354
- {
355
- "data-slot": "alert-dialog-media",
356
- className: cn(
357
- "bg-muted mb-2 inline-flex size-16 items-center justify-center rounded-md sm:group-data-[size=default]/alert-dialog-content:row-span-2 *:[svg:not([class*='size-'])]:size-8",
358
- className
359
- ),
360
- ...props
361
- }
362
- );
363
- }
364
- function AlertDialogAction({
365
- className,
366
- variant = "default",
367
- size = "default",
368
- ...props
369
- }) {
370
- return /* @__PURE__ */ jsx(Button, { variant, size, asChild: true, children: /* @__PURE__ */ jsx(
371
- AlertDialog$1.Action,
372
- {
373
- "data-slot": "alert-dialog-action",
374
- className: cn(className),
375
- ...props
376
- }
377
- ) });
378
- }
379
- function AlertDialogCancel({
380
- className,
381
- variant = "outline",
382
- size = "default",
383
- ...props
384
- }) {
385
- return /* @__PURE__ */ jsx(Button, { variant, size, asChild: true, children: /* @__PURE__ */ jsx(
386
- AlertDialog$1.Cancel,
387
- {
388
- "data-slot": "alert-dialog-cancel",
389
- className: cn(className),
390
- ...props
391
- }
392
- ) });
393
- }
394
- function Avatar({
395
- className,
396
- size = "default",
397
- ...props
398
- }) {
399
- return /* @__PURE__ */ jsx(
400
- Avatar$1.Root,
401
- {
402
- "data-slot": "avatar",
403
- "data-size": size,
404
- className: cn(
405
- "group/avatar relative flex size-8 shrink-0 overflow-hidden rounded-full select-none data-[size=lg]:size-10 data-[size=sm]:size-6",
406
- className
407
- ),
408
- ...props
409
- }
410
- );
411
- }
412
- function AvatarImage({
413
- className,
414
- ...props
415
- }) {
416
- return /* @__PURE__ */ jsx(
417
- Avatar$1.Image,
418
- {
419
- "data-slot": "avatar-image",
420
- className: cn("aspect-square size-full", className),
421
- ...props
422
- }
423
- );
424
- }
425
- function AvatarFallback({
426
- className,
427
- ...props
428
- }) {
429
- return /* @__PURE__ */ jsx(
430
- Avatar$1.Fallback,
431
- {
432
- "data-slot": "avatar-fallback",
433
- className: cn(
434
- "bg-muted text-muted-foreground flex size-full items-center justify-center rounded-full text-sm group-data-[size=sm]/avatar:text-xs",
435
- className
436
- ),
437
- ...props
438
- }
439
- );
440
- }
441
- function AvatarBadge({ className, ...props }) {
442
- return /* @__PURE__ */ jsx(
443
- "span",
444
- {
445
- "data-slot": "avatar-badge",
446
- className: cn(
447
- "bg-primary text-primary-foreground ring-background absolute right-0 bottom-0 z-10 inline-flex items-center justify-center rounded-full ring-2 select-none",
448
- "group-data-[size=sm]/avatar:size-2 group-data-[size=sm]/avatar:[&>svg]:hidden",
449
- "group-data-[size=default]/avatar:size-2.5 group-data-[size=default]/avatar:[&>svg]:size-2",
450
- "group-data-[size=lg]/avatar:size-3 group-data-[size=lg]/avatar:[&>svg]:size-2",
451
- className
452
- ),
453
- ...props
454
- }
455
- );
456
- }
457
- function AvatarGroup({ className, ...props }) {
458
- return /* @__PURE__ */ jsx(
459
- "div",
460
- {
461
- "data-slot": "avatar-group",
462
- className: cn(
463
- "group/avatar-group *:data-[slot=avatar]:ring-background flex -space-x-2 *:data-[slot=avatar]:ring-2",
464
- className
465
- ),
466
- ...props
467
- }
468
- );
469
- }
470
- function AvatarGroupCount({
471
- className,
472
- ...props
473
- }) {
474
- return /* @__PURE__ */ jsx(
475
- "div",
476
- {
477
- "data-slot": "avatar-group-count",
478
- className: cn(
479
- "bg-muted text-muted-foreground ring-background relative flex size-8 shrink-0 items-center justify-center rounded-full text-sm ring-2 group-has-data-[size=lg]/avatar-group:size-10 group-has-data-[size=sm]/avatar-group:size-6 [&>svg]:size-4 group-has-data-[size=lg]/avatar-group:[&>svg]:size-5 group-has-data-[size=sm]/avatar-group:[&>svg]:size-3",
480
- className
481
- ),
482
- ...props
483
- }
484
- );
485
- }
486
- var badgeVariants = cva(
487
- "focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 inline-flex w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-full border border-transparent px-2 py-0.5 text-xs font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:ring-[3px] [&>svg]:pointer-events-none [&>svg]:size-3",
488
- {
489
- variants: {
490
- variant: {
491
- default: "bg-primary text-primary-foreground [a&]:hover:bg-primary/90",
492
- secondary: "bg-secondary text-secondary-foreground [a&]:hover:bg-secondary/90",
493
- destructive: "bg-destructive focus-visible:ring-destructive/20 dark:bg-destructive/60 dark:focus-visible:ring-destructive/40 [a&]:hover:bg-destructive/90 text-white",
494
- outline: "border-border text-foreground [a&]:hover:bg-accent [a&]:hover:text-accent-foreground",
495
- ghost: "[a&]:hover:bg-accent [a&]:hover:text-accent-foreground",
496
- link: "text-primary underline-offset-4 [a&]:hover:underline"
497
- }
498
- },
499
- defaultVariants: {
500
- variant: "default"
501
- }
502
- }
503
- );
504
- function Badge({
505
- className,
506
- variant = "default",
507
- asChild = false,
508
- ...props
509
- }) {
510
- const Comp = asChild ? Slot$1.Root : "span";
511
- return /* @__PURE__ */ jsx(
512
- Comp,
513
- {
514
- "data-slot": "badge",
515
- "data-variant": variant,
516
- className: cn(badgeVariants({ variant }), className),
517
- ...props
518
- }
519
- );
520
- }
521
- function Calendar({
522
- className,
523
- classNames,
524
- showOutsideDays = true,
525
- ...props
526
- }) {
527
- return /* @__PURE__ */ jsx(
528
- DayPicker,
529
- {
530
- showOutsideDays,
531
- className: cn("p-3", className),
532
- classNames: {
533
- months: "flex flex-col sm:flex-row space-y-4 sm:space-x-4 sm:space-y-0",
534
- month: "space-y-4",
535
- caption: "flex justify-center pt-1 relative items-center",
536
- caption_label: "text-sm font-medium",
537
- nav: "space-x-1 flex items-center",
538
- nav_button: cn(
539
- buttonVariants({ variant: "ghost" }),
540
- "h-7 w-7 justify-center bg-transparent p-0 opacity-50 hover:opacity-100"
541
- ),
542
- nav_button_previous: "absolute left-1",
543
- nav_button_next: "absolute right-1",
544
- table: "w-full border-collapse space-y-1",
545
- head_row: "flex",
546
- head_cell: "text-muted-foreground rounded-md w-9 font-normal text-[0.8rem]",
547
- row: "flex w-full mt-2",
548
- cell: "h-9 w-9 text-center text-sm p-0 relative [&:has([aria-selected].day-range-end)]:rounded-r-md [&:has([aria-selected].day-outside)]:bg-accent/50 [&:has([aria-selected])]:bg-accent first:[&:has([aria-selected])]:rounded-l-md last:[&:has([aria-selected])]:rounded-r-md focus-within:relative focus-within:z-20",
549
- day: cn(
550
- buttonVariants({ variant: "ghost" }),
551
- "h-9 w-9 justify-center p-0 font-normal aria-selected:opacity-100"
552
- ),
553
- day_range_end: "day-range-end",
554
- day_selected: "bg-primary text-primary-foreground hover:bg-primary hover:text-primary-foreground focus:bg-primary focus:text-primary-foreground",
555
- day_today: "bg-accent text-accent-foreground",
556
- day_outside: "day-outside text-muted-foreground aria-selected:bg-accent/50 aria-selected:text-muted-foreground",
557
- day_disabled: "text-muted-foreground opacity-50",
558
- day_range_middle: "aria-selected:bg-accent aria-selected:text-accent-foreground",
559
- day_hidden: "invisible",
560
- ...classNames
561
- },
562
- components: {
563
- IconLeft: ({ className: iconClassName, ...iconProps }) => /* @__PURE__ */ jsx(
564
- ChevronLeft,
565
- {
566
- className: cn("h-4 w-4", iconClassName),
567
- ...iconProps
568
- }
569
- ),
570
- IconRight: ({ className: iconClassName, ...iconProps }) => /* @__PURE__ */ jsx(
571
- ChevronRight,
572
- {
573
- className: cn("h-4 w-4", iconClassName),
574
- ...iconProps
575
- }
576
- )
577
- },
578
- ...props
579
- }
580
- );
581
- }
582
- Calendar.displayName = "Calendar";
583
- function Card({ className, ...props }) {
584
- return /* @__PURE__ */ jsx(
585
- "div",
586
- {
587
- "data-slot": "card",
588
- className: cn(
589
- "bg-card text-card-foreground flex h-full flex-col gap-6 rounded-xl border py-6 shadow-sm",
590
- className
591
- ),
592
- ...props
593
- }
594
- );
595
- }
596
- function CardHeader({ className, ...props }) {
597
- return /* @__PURE__ */ jsx(
598
- "div",
599
- {
600
- "data-slot": "card-header",
601
- className: cn(
602
- "@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-2 px-6 has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-6",
603
- className
604
- ),
605
- ...props
606
- }
607
- );
608
- }
609
- function CardTitle({ className, ...props }) {
610
- return /* @__PURE__ */ jsx(
611
- "div",
612
- {
613
- "data-slot": "card-title",
614
- className: cn("leading-none font-semibold", className),
615
- ...props
616
- }
617
- );
618
- }
619
- function CardDescription({ className, ...props }) {
620
- return /* @__PURE__ */ jsx(
621
- "div",
622
- {
623
- "data-slot": "card-description",
624
- className: cn("text-muted-foreground text-sm", className),
625
- ...props
626
- }
627
- );
628
- }
629
- function CardAction({ className, ...props }) {
630
- return /* @__PURE__ */ jsx(
631
- "div",
632
- {
633
- "data-slot": "card-action",
634
- className: cn(
635
- "col-start-2 row-span-2 row-start-1 self-start justify-self-end",
636
- className
637
- ),
638
- ...props
639
- }
640
- );
641
- }
642
- function CardContent({ className, ...props }) {
643
- return /* @__PURE__ */ jsx(
644
- "div",
645
- {
646
- "data-slot": "card-content",
647
- className: cn("px-6", className),
648
- ...props
649
- }
650
- );
651
- }
652
- function CardFooter({ className, ...props }) {
653
- return /* @__PURE__ */ jsx(
654
- "div",
655
- {
656
- "data-slot": "card-footer",
657
- className: cn("flex items-center px-6 [.border-t]:pt-6", className),
658
- ...props
659
- }
660
- );
661
- }
662
- var THEMES = { light: "", dark: ".dark" };
663
- var ChartContext = React15.createContext(null);
664
- function useChart() {
665
- const context = React15.useContext(ChartContext);
666
- if (!context) {
667
- throw new Error("useChart must be used within a <ChartContainer />");
668
- }
669
- return context;
670
- }
671
- function ChartContainer({
672
- id,
673
- className,
674
- children,
675
- config,
676
- ...props
677
- }) {
678
- const uniqueId = React15.useId();
679
- const chartId = `chart-${id || uniqueId.replace(/:/g, "")}`;
680
- return /* @__PURE__ */ jsx(ChartContext.Provider, { value: { config }, children: /* @__PURE__ */ jsxs(
681
- "div",
682
- {
683
- "data-slot": "chart",
684
- "data-chart": chartId,
685
- className: cn(
686
- "[&_.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",
687
- className
688
- ),
689
- ...props,
690
- children: [
691
- /* @__PURE__ */ jsx(ChartStyle, { id: chartId, config }),
692
- /* @__PURE__ */ jsx(RechartsPrimitive.ResponsiveContainer, { children })
693
- ]
694
- }
695
- ) });
696
- }
697
- var ChartStyle = ({ id, config }) => {
698
- const colorConfig = Object.entries(config).filter(
699
- ([, cfg]) => cfg.theme || cfg.color
700
- );
701
- if (!colorConfig.length) {
702
- return null;
703
- }
704
- return /* @__PURE__ */ jsx(
705
- "style",
706
- {
707
- dangerouslySetInnerHTML: {
708
- __html: Object.entries(THEMES).map(
709
- ([theme, prefix]) => `
710
- ${prefix} [data-chart=${id}] {
711
- ${colorConfig.map(([key, itemConfig]) => {
712
- const color = itemConfig.theme?.[theme] || itemConfig.color;
713
- return color ? ` --color-${key}: ${color};` : null;
714
- }).join("\n")}
715
- }
716
- `
717
- ).join("\n")
718
- }
719
- }
720
- );
721
- };
722
- var ChartTooltip = RechartsPrimitive.Tooltip;
723
- function ChartTooltipContent({
724
- active,
725
- payload,
726
- className,
727
- indicator = "dot",
728
- hideLabel = false,
729
- hideIndicator = false,
730
- label,
731
- labelFormatter,
732
- labelClassName,
733
- formatter,
734
- color,
735
- nameKey,
736
- labelKey
737
- }) {
738
- const { config } = useChart();
739
- const tooltipLabel = React15.useMemo(() => {
740
- if (hideLabel || !payload?.length) {
741
- return null;
742
- }
743
- const [item] = payload;
744
- const key = `${labelKey || item?.dataKey || item?.name || "value"}`;
745
- const itemConfig = getPayloadConfigFromPayload(config, item, key);
746
- const value = !labelKey && typeof label === "string" ? config[label]?.label || label : itemConfig?.label;
747
- if (labelFormatter) {
748
- return /* @__PURE__ */ jsx("div", { className: cn("font-medium", labelClassName), children: labelFormatter(value, payload) });
749
- }
750
- if (!value) {
751
- return null;
752
- }
753
- return /* @__PURE__ */ jsx("div", { className: cn("font-medium", labelClassName), children: value });
754
- }, [
755
- label,
756
- labelFormatter,
757
- payload,
758
- hideLabel,
759
- labelClassName,
760
- config,
761
- labelKey
762
- ]);
763
- if (!active || !payload?.length) {
764
- return null;
765
- }
766
- const nestLabel = payload.length === 1 && indicator !== "dot";
767
- return /* @__PURE__ */ jsxs(
768
- "div",
769
- {
770
- className: cn(
771
- "border-border/50 bg-background grid min-w-[8rem] items-start gap-1.5 rounded-lg border px-2.5 py-1.5 text-xs shadow-xl",
772
- className
773
- ),
774
- children: [
775
- !nestLabel ? tooltipLabel : null,
776
- /* @__PURE__ */ jsx("div", { className: "grid gap-1.5", children: payload.filter((item) => item.type !== "none").map((item, index) => {
777
- const key = `${nameKey || item.name || item.dataKey || "value"}`;
778
- const itemConfig = getPayloadConfigFromPayload(config, item, key);
779
- const indicatorColor = color || item.payload.fill || item.color;
780
- return /* @__PURE__ */ jsx(
781
- "div",
782
- {
783
- className: cn(
784
- "[&>svg]:text-muted-foreground flex w-full flex-wrap items-stretch gap-2 [&>svg]:h-2.5 [&>svg]:w-2.5",
785
- indicator === "dot" && "items-center"
786
- ),
787
- children: formatter && item?.value !== void 0 && item.name ? formatter(item.value, item.name, item, index, item.payload) : /* @__PURE__ */ jsxs(Fragment, { children: [
788
- itemConfig?.icon ? /* @__PURE__ */ jsx(itemConfig.icon, {}) : !hideIndicator && /* @__PURE__ */ jsx(
789
- "div",
790
- {
791
- className: cn(
792
- "shrink-0 rounded-[2px] border-(--color-border) bg-(--color-bg)",
793
- {
794
- "h-2.5 w-2.5": indicator === "dot",
795
- "w-1": indicator === "line",
796
- "w-0 border-[1.5px] border-dashed bg-transparent": indicator === "dashed",
797
- "my-0.5": nestLabel && indicator === "dashed"
798
- }
799
- ),
800
- style: {
801
- "--color-bg": indicatorColor,
802
- "--color-border": indicatorColor
803
- }
804
- }
805
- ),
806
- /* @__PURE__ */ jsxs(
807
- "div",
808
- {
809
- className: cn(
810
- "flex flex-1 justify-between leading-none",
811
- nestLabel ? "items-end" : "items-center"
812
- ),
813
- children: [
814
- /* @__PURE__ */ jsxs("div", { className: "grid gap-1.5", children: [
815
- nestLabel ? tooltipLabel : null,
816
- /* @__PURE__ */ jsx("span", { className: "text-muted-foreground", children: itemConfig?.label || item.name })
817
- ] }),
818
- item.value && /* @__PURE__ */ jsx("span", { className: "text-foreground font-mono font-medium tabular-nums", children: item.value.toLocaleString() })
819
- ]
820
- }
821
- )
822
- ] })
823
- },
824
- item.dataKey
825
- );
826
- }) })
827
- ]
828
- }
829
- );
830
- }
831
- var ChartLegend = RechartsPrimitive.Legend;
832
- function ChartLegendContent({
833
- className,
834
- hideIcon = false,
835
- payload,
836
- verticalAlign = "bottom",
837
- nameKey
838
- }) {
839
- const { config } = useChart();
840
- if (!payload?.length) {
841
- return null;
842
- }
843
- return /* @__PURE__ */ jsx(
844
- "div",
845
- {
846
- className: cn(
847
- "flex items-center justify-center gap-4",
848
- verticalAlign === "top" ? "pb-3" : "pt-3",
849
- className
850
- ),
851
- children: payload.filter((item) => item.type !== "none").map((item) => {
852
- const key = `${nameKey || item.dataKey || "value"}`;
853
- const itemConfig = getPayloadConfigFromPayload(config, item, key);
854
- return /* @__PURE__ */ jsxs(
855
- "div",
856
- {
857
- className: cn(
858
- "[&>svg]:text-muted-foreground flex items-center gap-1.5 [&>svg]:h-3 [&>svg]:w-3"
859
- ),
860
- children: [
861
- itemConfig?.icon && !hideIcon ? /* @__PURE__ */ jsx(itemConfig.icon, {}) : /* @__PURE__ */ jsx(
862
- "div",
863
- {
864
- className: "h-2 w-2 shrink-0 rounded-[2px]",
865
- style: { backgroundColor: item.color }
866
- }
867
- ),
868
- itemConfig?.label
869
- ]
870
- },
871
- item.value
872
- );
873
- })
874
- }
875
- );
876
- }
877
- function getPayloadConfigFromPayload(config, payload, key) {
878
- if (typeof payload !== "object" || payload === null) {
879
- return void 0;
880
- }
881
- const payloadPayload = "payload" in payload && typeof payload.payload === "object" && payload.payload !== null ? payload.payload : void 0;
882
- let configLabelKey = key;
883
- if (key in payload && typeof payload[key] === "string") {
884
- configLabelKey = payload[key];
885
- } else if (payloadPayload && key in payloadPayload && typeof payloadPayload[key] === "string") {
886
- configLabelKey = payloadPayload[key];
887
- }
888
- return configLabelKey in config ? config[configLabelKey] : config[key];
889
- }
890
- function Collapsible({
891
- ...props
892
- }) {
893
- return /* @__PURE__ */ jsx(CollapsiblePrimitive.Root, { "data-slot": "collapsible", ...props });
894
- }
895
- function CollapsibleTrigger2({
896
- ...props
897
- }) {
898
- return /* @__PURE__ */ jsx(
899
- CollapsiblePrimitive.CollapsibleTrigger,
900
- {
901
- "data-slot": "collapsible-trigger",
902
- ...props
903
- }
904
- );
905
- }
906
- function CollapsibleContent2({
907
- ...props
908
- }) {
909
- return /* @__PURE__ */ jsx(
910
- CollapsiblePrimitive.CollapsibleContent,
911
- {
912
- "data-slot": "collapsible-content",
913
- ...props
914
- }
915
- );
916
- }
917
- function Popover({
918
- ...props
919
- }) {
920
- return /* @__PURE__ */ jsx(PopoverPrimitive.Root, { "data-slot": "popover", ...props });
921
- }
922
- function PopoverTrigger({
923
- ...props
924
- }) {
925
- return /* @__PURE__ */ jsx(PopoverPrimitive.Trigger, { "data-slot": "popover-trigger", ...props });
926
- }
927
- function PopoverContent({
928
- className,
929
- align = "center",
930
- sideOffset = 4,
931
- ...props
932
- }) {
933
- const portalContainer = usePortalContainer();
934
- return /* @__PURE__ */ jsx(PopoverPrimitive.Portal, { container: portalContainer, children: /* @__PURE__ */ jsx(
935
- PopoverPrimitive.Content,
936
- {
937
- "data-slot": "popover-content",
938
- align,
939
- sideOffset,
940
- className: cn(
941
- "cn-popover-content z-50 w-72 origin-(--radix-popover-content-transform-origin) outline-hidden",
942
- className
943
- ),
944
- ...props
945
- }
946
- ) });
947
- }
948
- function PopoverAnchor({
949
- ...props
950
- }) {
951
- return /* @__PURE__ */ jsx(PopoverPrimitive.Anchor, { "data-slot": "popover-anchor", ...props });
952
- }
953
- function PopoverHeader({ className, ...props }) {
954
- return /* @__PURE__ */ jsx(
955
- "div",
956
- {
957
- "data-slot": "popover-header",
958
- className: cn("cn-popover-header", className),
959
- ...props
960
- }
961
- );
962
- }
963
- function PopoverTitle({ className, ...props }) {
964
- return /* @__PURE__ */ jsx(
965
- "div",
966
- {
967
- "data-slot": "popover-title",
968
- className: cn("cn-popover-title", className),
969
- ...props
970
- }
971
- );
972
- }
973
- function PopoverDescription({
974
- className,
975
- ...props
976
- }) {
977
- return /* @__PURE__ */ jsx(
978
- "p",
979
- {
980
- "data-slot": "popover-description",
981
- className: cn("cn-popover-description", className),
982
- ...props
983
- }
984
- );
985
- }
986
- var defaultFormatDate = (date) => new Intl.DateTimeFormat(void 0, {
987
- month: "long",
988
- day: "numeric",
989
- year: "numeric"
990
- }).format(date);
991
- function DatePicker({
992
- value,
993
- onChange,
994
- placeholder = "Pick a date",
995
- formatDate = defaultFormatDate,
996
- disabled,
997
- className,
998
- calendarProps
999
- }) {
1000
- const [open, setOpen] = React15.useState(false);
1001
- return /* @__PURE__ */ jsxs(Popover, { open, onOpenChange: setOpen, children: [
1002
- /* @__PURE__ */ jsx(PopoverTrigger, { asChild: true, children: /* @__PURE__ */ jsxs(
1003
- Button,
1004
- {
1005
- "data-slot": "date-picker",
1006
- variant: "outline",
1007
- disabled,
1008
- className: cn(
1009
- "w-full justify-start text-left font-normal",
1010
- !value && "text-muted-foreground",
1011
- className
1012
- ),
1013
- children: [
1014
- /* @__PURE__ */ jsx(CalendarIcon, { className: "mr-2 size-4" }),
1015
- value ? formatDate(value) : /* @__PURE__ */ jsx("span", { children: placeholder })
1016
- ]
1017
- }
1018
- ) }),
1019
- /* @__PURE__ */ jsx(PopoverContent, { className: "w-auto p-0", align: "start", children: /* @__PURE__ */ jsx(
1020
- Calendar,
1021
- {
1022
- mode: "single",
1023
- selected: value,
1024
- onSelect: (date) => {
1025
- onChange?.(date);
1026
- setOpen(false);
1027
- },
1028
- initialFocus: true,
1029
- ...calendarProps
1030
- }
1031
- ) })
1032
- ] });
1033
- }
1034
- function Dialog({
1035
- ...props
1036
- }) {
1037
- return /* @__PURE__ */ jsx(SheetPrimitive.Root, { "data-slot": "dialog", ...props });
1038
- }
1039
- function DialogTrigger({
1040
- ...props
1041
- }) {
1042
- return /* @__PURE__ */ jsx(SheetPrimitive.Trigger, { "data-slot": "dialog-trigger", ...props });
1043
- }
1044
- function DialogPortal({
1045
- ...props
1046
- }) {
1047
- const portalContainer = usePortalContainer();
1048
- return /* @__PURE__ */ jsx(
1049
- SheetPrimitive.Portal,
1050
- {
1051
- "data-slot": "dialog-portal",
1052
- container: portalContainer,
1053
- ...props
1054
- }
1055
- );
1056
- }
1057
- function DialogClose({
1058
- ...props
1059
- }) {
1060
- return /* @__PURE__ */ jsx(SheetPrimitive.Close, { "data-slot": "dialog-close", ...props });
1061
- }
1062
- function DialogOverlay({
1063
- className,
1064
- ...props
1065
- }) {
1066
- return /* @__PURE__ */ jsx(
1067
- SheetPrimitive.Overlay,
1068
- {
1069
- "data-slot": "dialog-overlay",
1070
- className: cn(
1071
- "data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:animate-in data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-gray-900/70 backdrop-blur-sm",
1072
- className
1073
- ),
1074
- ...props
1075
- }
1076
- );
1077
- }
1078
- function DialogContent({
1079
- className,
1080
- children,
1081
- showCloseButton = true,
1082
- overlayClassName,
1083
- ...props
1084
- }) {
1085
- return /* @__PURE__ */ jsxs(DialogPortal, { "data-slot": "dialog-portal", children: [
1086
- /* @__PURE__ */ jsx(DialogOverlay, { className: overlayClassName }),
1087
- /* @__PURE__ */ jsxs(
1088
- SheetPrimitive.Content,
1089
- {
1090
- "data-slot": "dialog-content",
1091
- className: cn(
1092
- "bg-background data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95 fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-6 rounded-lg border p-6 shadow-lg duration-200 sm:max-w-lg",
1093
- className
1094
- ),
1095
- ...props,
1096
- children: [
1097
- children,
1098
- showCloseButton && /* @__PURE__ */ jsxs(
1099
- SheetPrimitive.Close,
1100
- {
1101
- "data-slot": "dialog-close",
1102
- className: "ring-offset-background focus:ring-ring data-[state=open]:bg-accent data-[state=open]:text-muted-foreground absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
1103
- children: [
1104
- /* @__PURE__ */ jsx(X, {}),
1105
- /* @__PURE__ */ jsx("span", { className: "sr-only", children: "Close" })
1106
- ]
1107
- }
1108
- )
1109
- ]
1110
- }
1111
- )
1112
- ] });
1113
- }
1114
- function DialogHeader({ className, ...props }) {
1115
- return /* @__PURE__ */ jsx(
1116
- "div",
1117
- {
1118
- "data-slot": "dialog-header",
1119
- className: cn("flex flex-col gap-2 text-center sm:text-left", className),
1120
- ...props
1121
- }
1122
- );
1123
- }
1124
- function DialogFooter({ className, ...props }) {
1125
- return /* @__PURE__ */ jsx(
1126
- "div",
1127
- {
1128
- "data-slot": "dialog-footer",
1129
- className: cn(
1130
- "flex flex-col-reverse gap-2 sm:flex-row sm:justify-end",
1131
- className
1132
- ),
1133
- ...props
1134
- }
1135
- );
1136
- }
1137
- function DialogTitle({
1138
- className,
1139
- ...props
1140
- }) {
1141
- return /* @__PURE__ */ jsx(
1142
- SheetPrimitive.Title,
1143
- {
1144
- "data-slot": "dialog-title",
1145
- className: cn("text-lg leading-none font-semibold", className),
1146
- ...props
1147
- }
1148
- );
1149
- }
1150
- function DialogDescription({
1151
- className,
1152
- ...props
1153
- }) {
1154
- return /* @__PURE__ */ jsx(
1155
- SheetPrimitive.Description,
1156
- {
1157
- "data-slot": "dialog-description",
1158
- className: cn("text-muted-foreground text-sm", className),
1159
- ...props
1160
- }
1161
- );
1162
- }
1163
- function DropdownMenu({
1164
- ...props
1165
- }) {
1166
- return /* @__PURE__ */ jsx(DropdownMenuPrimitive.Root, { "data-slot": "dropdown-menu", ...props });
1167
- }
1168
- function DropdownMenuPortal({
1169
- ...props
1170
- }) {
1171
- return /* @__PURE__ */ jsx(DropdownMenuPrimitive.Portal, { "data-slot": "dropdown-menu-portal", ...props });
1172
- }
1173
- function DropdownMenuTrigger({
1174
- ...props
1175
- }) {
1176
- return /* @__PURE__ */ jsx(
1177
- DropdownMenuPrimitive.Trigger,
1178
- {
1179
- "data-slot": "dropdown-menu-trigger",
1180
- ...props
1181
- }
1182
- );
1183
- }
1184
- function DropdownMenuContent({
1185
- className,
1186
- sideOffset = 4,
1187
- ...props
1188
- }) {
1189
- const portalContainer = usePortalContainer();
1190
- return /* @__PURE__ */ jsx(DropdownMenuPrimitive.Portal, { container: portalContainer, children: /* @__PURE__ */ jsx(
1191
- DropdownMenuPrimitive.Content,
1192
- {
1193
- "data-slot": "dropdown-menu-content",
1194
- sideOffset,
1195
- className: cn(
1196
- "bg-popover text-popover-foreground 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 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95 z-50 max-h-(--radix-dropdown-menu-content-available-height) min-w-[8rem] origin-(--radix-dropdown-menu-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border p-1 shadow-md",
1197
- className
1198
- ),
1199
- ...props
1200
- }
1201
- ) });
1202
- }
1203
- function DropdownMenuGroup({
1204
- ...props
1205
- }) {
1206
- return /* @__PURE__ */ jsx(DropdownMenuPrimitive.Group, { "data-slot": "dropdown-menu-group", ...props });
1207
- }
1208
- function DropdownMenuItem({
1209
- className,
1210
- inset,
1211
- variant = "default",
1212
- ...props
1213
- }) {
1214
- return /* @__PURE__ */ jsx(
1215
- DropdownMenuPrimitive.Item,
1216
- {
1217
- "data-slot": "dropdown-menu-item",
1218
- "data-inset": inset,
1219
- "data-variant": variant,
1220
- className: cn(
1221
- "focus:bg-accent focus:text-accent-foreground data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 data-[variant=destructive]:focus:text-destructive dark:data-[variant=destructive]:focus:bg-destructive/20 [&_svg:not([class*='text-'])]:text-muted-foreground data-[variant=destructive]:*:[svg]:!text-destructive relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[inset]:pl-8 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
1222
- className
1223
- ),
1224
- ...props
1225
- }
1226
- );
1227
- }
1228
- function DropdownMenuCheckboxItem({
1229
- className,
1230
- children,
1231
- ...props
1232
- }) {
1233
- return /* @__PURE__ */ jsxs(
1234
- DropdownMenuPrimitive.CheckboxItem,
1235
- {
1236
- "data-slot": "dropdown-menu-checkbox-item",
1237
- className: cn(
1238
- "focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center gap-2 rounded-sm py-1.5 pr-2 pl-8 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
1239
- className
1240
- ),
1241
- ...props,
1242
- children: [
1243
- /* @__PURE__ */ jsx("span", { className: "pointer-events-none absolute left-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ jsx(DropdownMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx(Check, { className: "size-4" }) }) }),
1244
- children
1245
- ]
1246
- }
1247
- );
1248
- }
1249
- function DropdownMenuRadioGroup({
1250
- ...props
1251
- }) {
1252
- return /* @__PURE__ */ jsx(
1253
- DropdownMenuPrimitive.RadioGroup,
1254
- {
1255
- "data-slot": "dropdown-menu-radio-group",
1256
- ...props
1257
- }
1258
- );
1259
- }
1260
- function DropdownMenuRadioItem({
1261
- className,
1262
- children,
1263
- ...props
1264
- }) {
1265
- return /* @__PURE__ */ jsxs(
1266
- DropdownMenuPrimitive.RadioItem,
1267
- {
1268
- "data-slot": "dropdown-menu-radio-item",
1269
- className: cn(
1270
- "focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center gap-2 rounded-sm py-1.5 pr-2 pl-8 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
1271
- className
1272
- ),
1273
- ...props,
1274
- children: [
1275
- /* @__PURE__ */ jsx("span", { className: "pointer-events-none absolute left-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ jsx(DropdownMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx(Circle, { className: "size-2 fill-current" }) }) }),
1276
- children
1277
- ]
1278
- }
1279
- );
1280
- }
1281
- function DropdownMenuLabel({
1282
- className,
1283
- inset,
1284
- ...props
1285
- }) {
1286
- return /* @__PURE__ */ jsx(
1287
- DropdownMenuPrimitive.Label,
1288
- {
1289
- "data-slot": "dropdown-menu-label",
1290
- "data-inset": inset,
1291
- className: cn(
1292
- "px-2 py-1.5 text-sm font-medium data-[inset]:pl-8",
1293
- className
1294
- ),
1295
- ...props
1296
- }
1297
- );
1298
- }
1299
- function DropdownMenuSeparator({
1300
- className,
1301
- ...props
1302
- }) {
1303
- return /* @__PURE__ */ jsx(
1304
- DropdownMenuPrimitive.Separator,
1305
- {
1306
- "data-slot": "dropdown-menu-separator",
1307
- className: cn("bg-border -mx-1 my-1 h-px", className),
1308
- ...props
1309
- }
1310
- );
1311
- }
1312
- function DropdownMenuShortcut({
1313
- className,
1314
- ...props
1315
- }) {
1316
- return /* @__PURE__ */ jsx(
1317
- "span",
1318
- {
1319
- "data-slot": "dropdown-menu-shortcut",
1320
- className: cn(
1321
- "text-muted-foreground ml-auto text-xs tracking-widest",
1322
- className
1323
- ),
1324
- ...props
1325
- }
1326
- );
1327
- }
1328
- function DropdownMenuSub({
1329
- ...props
1330
- }) {
1331
- return /* @__PURE__ */ jsx(DropdownMenuPrimitive.Sub, { "data-slot": "dropdown-menu-sub", ...props });
1332
- }
1333
- function DropdownMenuSubTrigger({
1334
- className,
1335
- inset,
1336
- children,
1337
- ...props
1338
- }) {
1339
- return /* @__PURE__ */ jsxs(
1340
- DropdownMenuPrimitive.SubTrigger,
1341
- {
1342
- "data-slot": "dropdown-menu-sub-trigger",
1343
- "data-inset": inset,
1344
- className: cn(
1345
- "focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[inset]:pl-8 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
1346
- className
1347
- ),
1348
- ...props,
1349
- children: [
1350
- children,
1351
- /* @__PURE__ */ jsx(ChevronRight, { className: "ml-auto size-4" })
1352
- ]
1353
- }
1354
- );
1355
- }
1356
- function DropdownMenuSubContent({
1357
- className,
1358
- ...props
1359
- }) {
1360
- return /* @__PURE__ */ jsx(
1361
- DropdownMenuPrimitive.SubContent,
1362
- {
1363
- "data-slot": "dropdown-menu-sub-content",
1364
- className: cn(
1365
- "bg-popover text-popover-foreground 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 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95 z-50 min-w-[8rem] origin-(--radix-dropdown-menu-content-transform-origin) overflow-hidden rounded-md border p-1 shadow-lg",
1366
- className
1367
- ),
1368
- ...props
1369
- }
1370
- );
1371
- }
1372
- function Label2({
1373
- className,
1374
- ...props
1375
- }) {
1376
- return /* @__PURE__ */ jsx(
1377
- LabelPrimitive.Root,
1378
- {
1379
- "data-slot": "label",
1380
- className: cn(
1381
- "flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50",
1382
- className
1383
- ),
1384
- ...props
1385
- }
1386
- );
1387
- }
1388
- var Form = FormProvider;
1389
- var FormFieldContext = React15.createContext(
1390
- {}
1391
- );
1392
- var FormField = ({
1393
- ...props
1394
- }) => {
1395
- return /* @__PURE__ */ jsx(FormFieldContext.Provider, { value: { name: props.name }, children: /* @__PURE__ */ jsx(Controller, { ...props }) });
1396
- };
1397
- var useFormField = () => {
1398
- const fieldContext = React15.useContext(FormFieldContext);
1399
- const itemContext = React15.useContext(FormItemContext);
1400
- const { getFieldState } = useFormContext();
1401
- const formState = useFormState({ name: fieldContext.name });
1402
- const fieldState = getFieldState(fieldContext.name, formState);
1403
- if (!fieldContext.name) {
1404
- throw new Error("useFormField should be used within <FormField>");
1405
- }
1406
- const { id } = itemContext;
1407
- if (!id) {
1408
- throw new Error("useFormField should be used within <FormItem>");
1409
- }
1410
- return {
1411
- id,
1412
- name: fieldContext.name,
1413
- formItemId: `${id}-form-item`,
1414
- formDescriptionId: `${id}-form-item-description`,
1415
- formMessageId: `${id}-form-item-message`,
1416
- ...fieldState
1417
- };
1418
- };
1419
- var FormItemContext = React15.createContext(
1420
- {}
1421
- );
1422
- function FormItem({ className, ...props }) {
1423
- const id = React15.useId();
1424
- return /* @__PURE__ */ jsx(FormItemContext.Provider, { value: { id }, children: /* @__PURE__ */ jsx(
1425
- "div",
1426
- {
1427
- "data-slot": "form-item",
1428
- className: cn("grid gap-2", className),
1429
- ...props
1430
- }
1431
- ) });
1432
- }
1433
- function FormLabel({
1434
- className,
1435
- ...props
1436
- }) {
1437
- const { error, formItemId } = useFormField();
1438
- return /* @__PURE__ */ jsx(
1439
- Label2,
1440
- {
1441
- "data-slot": "form-label",
1442
- "data-error": !!error,
1443
- className: cn("data-[error=true]:text-destructive", className),
1444
- htmlFor: formItemId,
1445
- ...props
1446
- }
1447
- );
1448
- }
1449
- function FormControl({ ...props }) {
1450
- const { error, formItemId, formDescriptionId, formMessageId } = useFormField();
1451
- return /* @__PURE__ */ jsx(
1452
- Slot$1.Root,
1453
- {
1454
- "data-slot": "form-control",
1455
- id: formItemId,
1456
- "aria-describedby": !error ? `${formDescriptionId}` : `${formDescriptionId} ${formMessageId}`,
1457
- "aria-invalid": !!error,
1458
- ...props
1459
- }
1460
- );
1461
- }
1462
- function FormDescription({ className, ...props }) {
1463
- const { formDescriptionId } = useFormField();
1464
- return /* @__PURE__ */ jsx(
1465
- "p",
1466
- {
1467
- "data-slot": "form-description",
1468
- id: formDescriptionId,
1469
- className: cn("text-muted-foreground text-sm", className),
1470
- ...props
1471
- }
1472
- );
1473
- }
1474
- function FormMessage({ className, ...props }) {
1475
- const { error, formMessageId } = useFormField();
1476
- const body = error ? String(error?.message ?? "") : props.children;
1477
- if (!body) {
1478
- return null;
1479
- }
1480
- return /* @__PURE__ */ jsx(
1481
- "p",
1482
- {
1483
- "data-slot": "form-message",
1484
- id: formMessageId,
1485
- className: cn("text-destructive text-sm", className),
1486
- ...props,
1487
- children: body
1488
- }
1489
- );
1490
- }
1491
- function IconButton({
1492
- icon: Icon2,
1493
- className,
1494
- variant = "ghost",
1495
- size = "icon",
1496
- isActive,
1497
- ...props
1498
- }) {
1499
- return /* @__PURE__ */ jsx(
1500
- Button,
1501
- {
1502
- variant,
1503
- size,
1504
- "data-active": isActive,
1505
- className: cn(isActive && "bg-accent text-accent-foreground", className),
1506
- ...props,
1507
- children: /* @__PURE__ */ jsx(Icon2, {})
1508
- }
1509
- );
1510
- }
1511
- var toggleVariants = cva(
1512
- "focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 data-[state=on]:bg-accent data-[state=on]:text-accent-foreground dark:aria-invalid:ring-destructive/40 inline-flex shrink-0 items-center justify-center gap-2 rounded-md text-sm font-medium whitespace-nowrap transition-all outline-none focus-visible:ring-[3px] disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
1513
- {
1514
- variants: {
1515
- variant: {
1516
- default: "bg-primary text-primary-foreground hover:bg-primary/90",
1517
- destructive: "bg-destructive hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:bg-destructive/60 dark:focus-visible:ring-destructive/40 text-white",
1518
- outline: "bg-background hover:bg-accent hover:text-accent-foreground dark:border-input dark:bg-input/30 dark:hover:bg-input/50 border shadow-xs",
1519
- secondary: "bg-secondary text-secondary-foreground hover:bg-secondary/80",
1520
- ghost: "hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50",
1521
- link: "text-primary underline-offset-4 hover:underline"
1522
- },
1523
- size: {
1524
- default: "h-9 px-4 py-2 has-[>svg]:px-3",
1525
- sm: "h-8 gap-1.5 rounded-md px-3 has-[>svg]:px-2.5",
1526
- lg: "h-10 rounded-md px-6 has-[>svg]:px-4",
1527
- icon: "size-9",
1528
- "icon-xs": "size-6",
1529
- "icon-sm": "size-8",
1530
- "icon-lg": "size-10"
1531
- }
1532
- },
1533
- defaultVariants: {
1534
- variant: "default",
1535
- size: "default"
1536
- }
1537
- }
1538
- );
1539
- function Toggle({
1540
- className,
1541
- variant = "default",
1542
- size = "default",
1543
- ...props
1544
- }) {
1545
- return /* @__PURE__ */ jsx(
1546
- TogglePrimitive.Root,
1547
- {
1548
- "data-slot": "toggle",
1549
- className: cn(toggleVariants({ variant, size, className })),
1550
- ...props
1551
- }
1552
- );
1553
- }
1554
- function IconToggle({
1555
- icon: Icon2,
1556
- variant = "ghost",
1557
- size = "icon",
1558
- ...props
1559
- }) {
1560
- return /* @__PURE__ */ jsx(Toggle, { variant, size, ...props, children: /* @__PURE__ */ jsx(Icon2, {}) });
1561
- }
1562
- function Input({ className, type, ...props }) {
1563
- return /* @__PURE__ */ jsx(
1564
- "input",
1565
- {
1566
- type,
1567
- "data-slot": "input",
1568
- className: cn(
1569
- "border-input selection:bg-primary selection:text-primary-foreground file:text-foreground placeholder:text-muted-foreground dark:bg-input/30 h-9 w-full min-w-0 rounded-md border bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",
1570
- "focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]",
1571
- "aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40",
1572
- className
1573
- ),
1574
- ...props
1575
- }
1576
- );
1577
- }
1578
- function Pagination({ className, ...props }) {
1579
- return /* @__PURE__ */ jsx(
1580
- "nav",
1581
- {
1582
- "aria-label": "pagination",
1583
- "data-slot": "pagination",
1584
- className: cn("mx-auto flex w-full justify-center", className),
1585
- ...props
1586
- }
1587
- );
1588
- }
1589
- function PaginationContent({
1590
- className,
1591
- ...props
1592
- }) {
1593
- return /* @__PURE__ */ jsx(
1594
- "ul",
1595
- {
1596
- "data-slot": "pagination-content",
1597
- className: cn("flex flex-row items-center gap-1", className),
1598
- ...props
1599
- }
1600
- );
1601
- }
1602
- function PaginationItem({ ...props }) {
1603
- return /* @__PURE__ */ jsx("li", { "data-slot": "pagination-item", ...props });
1604
- }
1605
- function PaginationLink({
1606
- className,
1607
- isActive,
1608
- size = "icon",
1609
- ...props
1610
- }) {
1611
- return /* @__PURE__ */ jsx(
1612
- "a",
1613
- {
1614
- "aria-current": isActive ? "page" : void 0,
1615
- "data-slot": "pagination-link",
1616
- "data-active": isActive,
1617
- className: cn(
1618
- buttonVariants({
1619
- variant: isActive ? "outline" : "ghost",
1620
- size
1621
- }),
1622
- className
1623
- ),
1624
- ...props
1625
- }
1626
- );
1627
- }
1628
- function PaginationPrevious({
1629
- className,
1630
- ...props
1631
- }) {
1632
- return /* @__PURE__ */ jsxs(
1633
- PaginationLink,
1634
- {
1635
- "aria-label": "Go to previous page",
1636
- size: "default",
1637
- className: cn("gap-1 px-2.5 sm:pl-2.5", className),
1638
- ...props,
1639
- children: [
1640
- /* @__PURE__ */ jsx(ChevronLeftIcon, {}),
1641
- /* @__PURE__ */ jsx("span", { className: "hidden sm:block", children: "Previous" })
1642
- ]
1643
- }
1644
- );
1645
- }
1646
- function PaginationNext({
1647
- className,
1648
- ...props
1649
- }) {
1650
- return /* @__PURE__ */ jsxs(
1651
- PaginationLink,
1652
- {
1653
- "aria-label": "Go to next page",
1654
- size: "default",
1655
- className: cn("gap-1 px-2.5 sm:pr-2.5", className),
1656
- ...props,
1657
- children: [
1658
- /* @__PURE__ */ jsx("span", { className: "hidden sm:block", children: "Next" }),
1659
- /* @__PURE__ */ jsx(ChevronRightIcon, {})
1660
- ]
1661
- }
1662
- );
1663
- }
1664
- function PaginationEllipsis({
1665
- className,
1666
- ...props
1667
- }) {
1668
- return /* @__PURE__ */ jsxs(
1669
- "span",
1670
- {
1671
- "aria-hidden": true,
1672
- "data-slot": "pagination-ellipsis",
1673
- className: cn("flex size-9 items-center justify-center", className),
1674
- ...props,
1675
- children: [
1676
- /* @__PURE__ */ jsx(MoreHorizontalIcon, { className: "size-4" }),
1677
- /* @__PURE__ */ jsx("span", { className: "sr-only", children: "More pages" })
1678
- ]
1679
- }
1680
- );
1681
- }
1682
- function RadioGroup2({
1683
- className,
1684
- ...props
1685
- }) {
1686
- return /* @__PURE__ */ jsx(
1687
- RadioGroup.Root,
1688
- {
1689
- "data-slot": "radio-group",
1690
- className: cn("grid gap-3", className),
1691
- ...props
1692
- }
1693
- );
1694
- }
1695
- function RadioGroupItem({
1696
- className,
1697
- ...props
1698
- }) {
1699
- return /* @__PURE__ */ jsx(
1700
- RadioGroup.Item,
1701
- {
1702
- "data-slot": "radio-group-item",
1703
- className: cn(
1704
- "border-input text-primary focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:bg-input/30 dark:aria-invalid:ring-destructive/40 aspect-square size-4 shrink-0 rounded-full border shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50",
1705
- className
1706
- ),
1707
- ...props,
1708
- children: /* @__PURE__ */ jsx(
1709
- RadioGroup.Indicator,
1710
- {
1711
- "data-slot": "radio-group-indicator",
1712
- className: "relative flex items-center justify-center",
1713
- children: /* @__PURE__ */ jsx(CircleIcon, { className: "fill-primary absolute top-1/2 left-1/2 size-2 -translate-x-1/2 -translate-y-1/2" })
1714
- }
1715
- )
1716
- }
1717
- );
1718
- }
1719
- function Select({
1720
- ...props
1721
- }) {
1722
- return /* @__PURE__ */ jsx(SelectPrimitive.Root, { "data-slot": "select", ...props });
1723
- }
1724
- function SelectGroup({
1725
- ...props
1726
- }) {
1727
- return /* @__PURE__ */ jsx(SelectPrimitive.Group, { "data-slot": "select-group", ...props });
1728
- }
1729
- function SelectValue({
1730
- ...props
1731
- }) {
1732
- return /* @__PURE__ */ jsx(SelectPrimitive.Value, { "data-slot": "select-value", ...props });
1733
- }
1734
- function SelectTrigger({
1735
- className,
1736
- size = "default",
1737
- children,
1738
- ...props
1739
- }) {
1740
- return /* @__PURE__ */ jsxs(
1741
- SelectPrimitive.Trigger,
1742
- {
1743
- "data-slot": "select-trigger",
1744
- "data-size": size,
1745
- className: cn(
1746
- "border-input focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 data-[placeholder]:text-muted-foreground dark:bg-input/30 dark:hover:bg-input/50 dark:aria-invalid:ring-destructive/40 [&_svg:not([class*='text-'])]:text-muted-foreground flex w-fit items-center justify-between gap-2 rounded-md border bg-transparent px-3 py-2 text-sm whitespace-nowrap shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 data-[size=default]:h-9 data-[size=sm]:h-8 *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-2 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
1747
- className
1748
- ),
1749
- ...props,
1750
- children: [
1751
- children,
1752
- /* @__PURE__ */ jsx(SelectPrimitive.Icon, { asChild: true, children: /* @__PURE__ */ jsx(ChevronDown, { className: "size-4 opacity-50" }) })
1753
- ]
1754
- }
1755
- );
1756
- }
1757
- function SelectContent({
1758
- className,
1759
- children,
1760
- position = "popper",
1761
- align = "center",
1762
- ...props
1763
- }) {
1764
- const portalContainer = usePortalContainer();
1765
- return /* @__PURE__ */ jsx(SelectPrimitive.Portal, { container: portalContainer, children: /* @__PURE__ */ jsxs(
1766
- SelectPrimitive.Content,
1767
- {
1768
- "data-slot": "select-content",
1769
- className: cn(
1770
- "bg-popover text-popover-foreground 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 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95 relative z-50 max-h-(--radix-select-content-available-height) min-w-[8rem] origin-(--radix-select-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border shadow-md",
1771
- 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",
1772
- className
1773
- ),
1774
- position,
1775
- align,
1776
- ...props,
1777
- children: [
1778
- /* @__PURE__ */ jsx(SelectScrollUpButton, {}),
1779
- /* @__PURE__ */ jsx(
1780
- SelectPrimitive.Viewport,
1781
- {
1782
- className: cn(
1783
- "p-1",
1784
- position === "popper" && "h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)] scroll-my-1"
1785
- ),
1786
- children
1787
- }
1788
- ),
1789
- /* @__PURE__ */ jsx(SelectScrollDownButton, {})
1790
- ]
1791
- }
1792
- ) });
1793
- }
1794
- function SelectLabel({
1795
- className,
1796
- ...props
1797
- }) {
1798
- return /* @__PURE__ */ jsx(
1799
- SelectPrimitive.Label,
1800
- {
1801
- "data-slot": "select-label",
1802
- className: cn("text-muted-foreground px-2 py-1.5 text-xs", className),
1803
- ...props
1804
- }
1805
- );
1806
- }
1807
- function SelectItem({
1808
- className,
1809
- children,
1810
- ...props
1811
- }) {
1812
- return /* @__PURE__ */ jsxs(
1813
- SelectPrimitive.Item,
1814
- {
1815
- "data-slot": "select-item",
1816
- className: cn(
1817
- "focus:bg-accent focus:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground relative flex w-full cursor-default items-center gap-2 rounded-sm py-1.5 pr-8 pl-2 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2",
1818
- className
1819
- ),
1820
- ...props,
1821
- children: [
1822
- /* @__PURE__ */ jsx("span", { className: "absolute right-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ jsx(SelectPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx(Check, { className: "size-4" }) }) }),
1823
- /* @__PURE__ */ jsx(SelectPrimitive.ItemText, { children })
1824
- ]
1825
- }
1826
- );
1827
- }
1828
- function SelectSeparator({
1829
- className,
1830
- ...props
1831
- }) {
1832
- return /* @__PURE__ */ jsx(
1833
- SelectPrimitive.Separator,
1834
- {
1835
- "data-slot": "select-separator",
1836
- className: cn("bg-border pointer-events-none -mx-1 my-1 h-px", className),
1837
- ...props
1838
- }
1839
- );
1840
- }
1841
- function SelectScrollUpButton({
1842
- className,
1843
- ...props
1844
- }) {
1845
- return /* @__PURE__ */ jsx(
1846
- SelectPrimitive.ScrollUpButton,
1847
- {
1848
- "data-slot": "select-scroll-up-button",
1849
- className: cn(
1850
- "flex cursor-default items-center justify-center py-1",
1851
- className
1852
- ),
1853
- ...props,
1854
- children: /* @__PURE__ */ jsx(ChevronUp, { className: "size-4" })
1855
- }
1856
- );
1857
- }
1858
- function SelectScrollDownButton({
1859
- className,
1860
- ...props
1861
- }) {
1862
- return /* @__PURE__ */ jsx(
1863
- SelectPrimitive.ScrollDownButton,
1864
- {
1865
- "data-slot": "select-scroll-down-button",
1866
- className: cn(
1867
- "flex cursor-default items-center justify-center py-1",
1868
- className
1869
- ),
1870
- ...props,
1871
- children: /* @__PURE__ */ jsx(ChevronDown, { className: "size-4" })
1872
- }
1873
- );
1874
- }
1875
- var Separator3 = React15.forwardRef(
1876
- ({ className, orientation = "horizontal", decorative = true, ...props }, ref) => /* @__PURE__ */ jsx(
1877
- SeparatorPrimitive.Root,
1878
- {
1879
- ref,
1880
- decorative,
1881
- orientation,
1882
- className: cn(
1883
- "shrink-0 bg-gray-200",
1884
- orientation === "horizontal" ? "h-px w-full" : "h-full w-px",
1885
- className
1886
- ),
1887
- ...props
1888
- }
1889
- )
1890
- );
1891
- Separator3.displayName = SeparatorPrimitive.Root.displayName;
1892
- var Sheet = SheetPrimitive.Root;
1893
- var SheetTrigger = SheetPrimitive.Trigger;
1894
- var SheetClose = SheetPrimitive.Close;
1895
- function SheetPortal(props) {
1896
- const portalContainer = usePortalContainer();
1897
- return /* @__PURE__ */ jsx(SheetPrimitive.Portal, { container: portalContainer, ...props });
1898
- }
1899
- var SheetOverlay = React15.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
1900
- SheetPrimitive.Overlay,
1901
- {
1902
- className: cn(
1903
- "data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:animate-in data-[state=open]:fade-in-0 fixed inset-0 z-[1040] bg-black/80",
1904
- className
1905
- ),
1906
- ...props,
1907
- ref
1908
- }
1909
- ));
1910
- SheetOverlay.displayName = SheetPrimitive.Overlay.displayName;
1911
- var sheetVariants = cva(
1912
- "bg-background data-[state=closed]:animate-out data-[state=open]:animate-in fixed z-[1050] gap-4 p-6 shadow-lg transition ease-in-out data-[state=closed]:duration-300 data-[state=open]:duration-500",
1913
- {
1914
- variants: {
1915
- side: {
1916
- top: "data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top inset-x-0 top-0 border-b",
1917
- bottom: "data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom inset-x-0 bottom-0 border-t",
1918
- left: "data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left inset-y-0 left-0 h-full w-full border-r sm:max-w-sm",
1919
- right: "data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right inset-y-0 right-0 h-full w-3/4 border-l sm:max-w-sm"
1920
- }
1921
- },
1922
- defaultVariants: {
1923
- side: "right"
1924
- }
1925
- }
1926
- );
1927
- var SheetContent = React15.forwardRef(({ side = "right", className, children, ...props }, ref) => /* @__PURE__ */ jsxs(SheetPortal, { children: [
1928
- /* @__PURE__ */ jsx(SheetOverlay, {}),
1929
- /* @__PURE__ */ jsxs(
1930
- SheetPrimitive.Content,
1931
- {
1932
- ref,
1933
- className: cn(sheetVariants({ side }), className),
1934
- ...props,
1935
- children: [
1936
- /* @__PURE__ */ jsxs(SheetPrimitive.Close, { className: "ring-offset-background focus:ring-ring data-[state=open]:bg-secondary absolute top-4 right-4 rounded-sm opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", children: [
1937
- /* @__PURE__ */ jsx(X, {}),
1938
- /* @__PURE__ */ jsx("span", { className: "sr-only", children: "Close" })
1939
- ] }),
1940
- children
1941
- ]
1942
- }
1943
- )
1944
- ] }));
1945
- SheetContent.displayName = SheetPrimitive.Content.displayName;
1946
- function SheetHeader({ className, ...props }) {
1947
- return /* @__PURE__ */ jsx(
1948
- "div",
1949
- {
1950
- className: cn(
1951
- "flex flex-col space-y-2 text-center sm:text-left",
1952
- className
1953
- ),
1954
- ...props
1955
- }
1956
- );
1957
- }
1958
- function SheetFooter({ className, ...props }) {
1959
- return /* @__PURE__ */ jsx(
1960
- "div",
1961
- {
1962
- className: cn(
1963
- "flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",
1964
- className
1965
- ),
1966
- ...props
1967
- }
1968
- );
1969
- }
1970
- var SheetTitle = React15.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
1971
- SheetPrimitive.Title,
1972
- {
1973
- ref,
1974
- className: cn("text-foreground text-lg font-semibold", className),
1975
- ...props
1976
- }
1977
- ));
1978
- SheetTitle.displayName = SheetPrimitive.Title.displayName;
1979
- var SheetDescription = React15.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
1980
- SheetPrimitive.Description,
1981
- {
1982
- ref,
1983
- className: cn("text-muted-foreground text-sm", className),
1984
- ...props
1985
- }
1986
- ));
1987
- SheetDescription.displayName = SheetPrimitive.Description.displayName;
1988
- function Skeleton({
1989
- className,
1990
- ...props
1991
- }) {
1992
- return /* @__PURE__ */ jsx(
1993
- "div",
1994
- {
1995
- className: cn("bg-muted animate-pulse rounded-md", className),
1996
- ...props
1997
- }
1998
- );
1999
- }
2000
- var Slider = React15.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxs(
2001
- SliderPrimitive.Root,
2002
- {
2003
- ref,
2004
- className: cn(
2005
- "relative flex w-full touch-none items-center select-none",
2006
- className
2007
- ),
2008
- ...props,
2009
- children: [
2010
- /* @__PURE__ */ jsx(SliderPrimitive.Track, { className: "relative h-2 w-full grow overflow-hidden rounded-full bg-gray-200", children: /* @__PURE__ */ jsx(SliderPrimitive.Range, { className: "bg-primary absolute h-full" }) }),
2011
- /* @__PURE__ */ jsx(SliderPrimitive.Thumb, { className: "border-primary bg-background ring-offset-background focus-visible:ring-ring block h-5 w-5 rounded-full border-2 transition-colors focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:outline-none disabled:pointer-events-none disabled:opacity-50" })
2012
- ]
2013
- }
2014
- ));
2015
- Slider.displayName = SliderPrimitive.Root.displayName;
2016
- function Toaster({ theme = "system", ...props }) {
2017
- return /* @__PURE__ */ jsx(
2018
- Toaster$1,
2019
- {
2020
- theme,
2021
- className: "toaster group",
2022
- icons: {
2023
- success: /* @__PURE__ */ jsx(CircleCheckIcon, { className: "size-4" }),
2024
- info: /* @__PURE__ */ jsx(InfoIcon, { className: "size-4" }),
2025
- warning: /* @__PURE__ */ jsx(TriangleAlertIcon, { className: "size-4" }),
2026
- error: /* @__PURE__ */ jsx(OctagonXIcon, { className: "size-4" }),
2027
- loading: /* @__PURE__ */ jsx(Loader2Icon, { className: "size-4 animate-spin" })
2028
- },
2029
- style: {
2030
- "--normal-bg": "var(--popover)",
2031
- "--normal-text": "var(--popover-foreground)",
2032
- "--normal-border": "var(--border)",
2033
- "--success-bg": "var(--popover)",
2034
- "--success-text": "var(--popover-foreground)",
2035
- "--success-border": "var(--border)",
2036
- "--error-bg": "var(--popover)",
2037
- "--error-text": "var(--popover-foreground)",
2038
- "--error-border": "var(--border)",
2039
- "--warning-bg": "var(--popover)",
2040
- "--warning-text": "var(--popover-foreground)",
2041
- "--warning-border": "var(--border)",
2042
- "--info-bg": "var(--popover)",
2043
- "--info-text": "var(--popover-foreground)",
2044
- "--info-border": "var(--border)",
2045
- "--border-radius": "var(--radius)"
2046
- },
2047
- ...props
2048
- }
2049
- );
2050
- }
2051
- function Spinner({ className, ...props }) {
2052
- return /* @__PURE__ */ jsx(
2053
- LoaderIcon,
2054
- {
2055
- "data-slot": "spinner",
2056
- role: "status",
2057
- "aria-label": "Loading",
2058
- className: cn("size-4 animate-spin", className),
2059
- ...props
2060
- }
2061
- );
2062
- }
2063
- function SpinnerWithText({
2064
- text = "Loading...",
2065
- variant = "inline",
2066
- className
2067
- }) {
2068
- return /* @__PURE__ */ jsx(
2069
- "div",
2070
- {
2071
- className: cn(
2072
- "flex items-center justify-center self-stretch py-10",
2073
- variant === "page" && "h-[60vh]",
2074
- className
2075
- ),
2076
- children: /* @__PURE__ */ jsxs("div", { className: "flex flex-col items-center justify-start gap-4", children: [
2077
- /* @__PURE__ */ jsx("div", { className: "relative h-8 w-8", children: /* @__PURE__ */ jsxs(
2078
- "svg",
2079
- {
2080
- width: "32",
2081
- height: "33",
2082
- viewBox: "0 0 32 33",
2083
- fill: "none",
2084
- xmlns: "http://www.w3.org/2000/svg",
2085
- className: "animate-spin",
2086
- children: [
2087
- /* @__PURE__ */ jsx(
2088
- "path",
2089
- {
2090
- d: "M30 16.5C30 18.3385 29.6379 20.159 28.9343 21.8576C28.2308 23.5561 27.1995 25.0995 25.8995 26.3995C24.5995 27.6995 23.0561 28.7307 21.3576 29.4343C19.659 30.1379 17.8385 30.5 16 30.5C14.1615 30.5 12.341 30.1379 10.6424 29.4343C8.94387 28.7307 7.40052 27.6995 6.1005 26.3995C4.80048 25.0995 3.76925 23.5561 3.06569 21.8576C2.36212 20.159 2 18.3385 2 16.5C2 14.6615 2.36212 12.841 3.06569 11.1424C3.76926 9.44387 4.80049 7.90052 6.10051 6.6005C7.40053 5.30048 8.94388 4.26925 10.6424 3.56568C12.341 2.86212 14.1615 2.5 16 2.5C17.8385 2.5 19.659 2.86212 21.3576 3.56569C23.0561 4.26925 24.5995 5.30049 25.8995 6.60051C27.1995 7.90053 28.2308 9.44388 28.9343 11.1424C29.6379 12.841 30 14.6615 30 16.5L30 16.5Z",
2091
- stroke: "#F5F6F9",
2092
- strokeWidth: "4",
2093
- strokeLinecap: "round",
2094
- strokeLinejoin: "round"
2095
- }
2096
- ),
2097
- /* @__PURE__ */ jsx(
2098
- "path",
2099
- {
2100
- d: "M16 2.5C17.8385 2.5 19.659 2.86212 21.3576 3.56569C23.0561 4.26925 24.5995 5.30049 25.8995 6.60051C27.1995 7.90053 28.2308 9.44388 28.9343 11.1424C29.6379 12.841 30 14.6615 30 16.5",
2101
- stroke: "#155DFC",
2102
- strokeWidth: "4",
2103
- strokeLinecap: "round",
2104
- strokeLinejoin: "round"
2105
- }
2106
- )
2107
- ]
2108
- }
2109
- ) }),
2110
- text && /* @__PURE__ */ jsx("div", { className: "text-center text-sm leading-tight font-medium text-slate-700", children: text })
2111
- ] })
2112
- }
2113
- );
2114
- }
2115
- var Switch = React15.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
2116
- SwitchPrimitive.Root,
2117
- {
2118
- className: cn(
2119
- "peer focus-visible:ring-ring focus-visible:ring-offset-background data-[state=checked]:bg-primary relative inline-flex h-6 w-11 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent transition-colors focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:outline-hidden disabled:cursor-not-allowed disabled:opacity-50 data-[state=unchecked]:bg-gray-200",
2120
- className
2121
- ),
2122
- ...props,
2123
- ref,
2124
- children: /* @__PURE__ */ jsx(
2125
- SwitchPrimitive.Thumb,
2126
- {
2127
- className: cn(
2128
- "pointer-events-none absolute left-0 block h-5 w-5 rounded-full bg-white shadow-lg ring-0 transition-transform duration-200 data-[state=checked]:translate-x-5 data-[state=unchecked]:translate-x-0"
2129
- )
2130
- }
2131
- )
2132
- }
2133
- ));
2134
- Switch.displayName = SwitchPrimitive.Root.displayName;
2135
- function Table({ className, ...props }) {
2136
- return /* @__PURE__ */ jsx(
2137
- "div",
2138
- {
2139
- "data-slot": "table-container",
2140
- className: "relative w-full overflow-x-auto",
2141
- children: /* @__PURE__ */ jsx(
2142
- "table",
2143
- {
2144
- "data-slot": "table",
2145
- className: cn("w-full caption-bottom text-sm", className),
2146
- ...props
2147
- }
2148
- )
2149
- }
2150
- );
2151
- }
2152
- function TableHeader({ className, ...props }) {
2153
- return /* @__PURE__ */ jsx(
2154
- "thead",
2155
- {
2156
- "data-slot": "table-header",
2157
- className: cn("[&_tr]:border-b", className),
2158
- ...props
2159
- }
2160
- );
2161
- }
2162
- function TableBody({ className, ...props }) {
2163
- return /* @__PURE__ */ jsx(
2164
- "tbody",
2165
- {
2166
- "data-slot": "table-body",
2167
- className: cn("[&_tr:last-child]:border-0", className),
2168
- ...props
2169
- }
2170
- );
2171
- }
2172
- function TableFooter({ className, ...props }) {
2173
- return /* @__PURE__ */ jsx(
2174
- "tfoot",
2175
- {
2176
- "data-slot": "table-footer",
2177
- className: cn(
2178
- "bg-muted/50 border-t font-medium [&>tr]:last:border-b-0",
2179
- className
2180
- ),
2181
- ...props
2182
- }
2183
- );
2184
- }
2185
- function TableRow({ className, ...props }) {
2186
- return /* @__PURE__ */ jsx(
2187
- "tr",
2188
- {
2189
- "data-slot": "table-row",
2190
- className: cn(
2191
- "hover:bg-muted/50 data-[state=selected]:bg-muted border-b transition-colors",
2192
- className
2193
- ),
2194
- ...props
2195
- }
2196
- );
2197
- }
2198
- function TableHead({ className, ...props }) {
2199
- return /* @__PURE__ */ jsx(
2200
- "th",
2201
- {
2202
- "data-slot": "table-head",
2203
- className: cn(
2204
- "text-foreground h-10 px-2 text-left align-middle font-medium whitespace-nowrap [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]",
2205
- className
2206
- ),
2207
- ...props
2208
- }
2209
- );
2210
- }
2211
- function TableCell({ className, ...props }) {
2212
- return /* @__PURE__ */ jsx(
2213
- "td",
2214
- {
2215
- "data-slot": "table-cell",
2216
- className: cn(
2217
- "p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]",
2218
- className
2219
- ),
2220
- ...props
2221
- }
2222
- );
2223
- }
2224
- function TableCaption({
2225
- className,
2226
- ...props
2227
- }) {
2228
- return /* @__PURE__ */ jsx(
2229
- "caption",
2230
- {
2231
- "data-slot": "table-caption",
2232
- className: cn("text-muted-foreground mt-4 text-sm", className),
2233
- ...props
2234
- }
2235
- );
2236
- }
2237
- function Tabs({
2238
- className,
2239
- ...props
2240
- }) {
2241
- return /* @__PURE__ */ jsx(
2242
- TabsPrimitive.Root,
2243
- {
2244
- "data-slot": "tabs",
2245
- className: cn("flex flex-col gap-2", className),
2246
- ...props
2247
- }
2248
- );
2249
- }
2250
- function TabsList({
2251
- className,
2252
- ...props
2253
- }) {
2254
- return /* @__PURE__ */ jsx(
2255
- TabsPrimitive.List,
2256
- {
2257
- "data-slot": "tabs-list",
2258
- className: cn(
2259
- "bg-muted text-muted-foreground inline-flex h-9 w-fit items-center justify-center rounded-lg p-[3px]",
2260
- className
2261
- ),
2262
- ...props
2263
- }
2264
- );
2265
- }
2266
- function TabsTrigger({
2267
- className,
2268
- ...props
2269
- }) {
2270
- return /* @__PURE__ */ jsx(
2271
- TabsPrimitive.Trigger,
2272
- {
2273
- "data-slot": "tabs-trigger",
2274
- className: cn(
2275
- "text-foreground focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:outline-ring data-[state=active]:bg-background dark:text-muted-foreground dark:data-[state=active]:border-input dark:data-[state=active]:bg-input/30 dark:data-[state=active]:text-foreground inline-flex h-[calc(100%-1px)] flex-1 items-center justify-center gap-1.5 rounded-md border border-transparent px-2 py-1 text-sm font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:ring-[3px] focus-visible:outline-1 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:shadow-sm [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
2276
- className
2277
- ),
2278
- ...props
2279
- }
2280
- );
2281
- }
2282
- function TabsContent({
2283
- className,
2284
- ...props
2285
- }) {
2286
- return /* @__PURE__ */ jsx(
2287
- TabsPrimitive.Content,
2288
- {
2289
- "data-slot": "tabs-content",
2290
- className: cn("flex-1 outline-none", className),
2291
- ...props
2292
- }
2293
- );
2294
- }
2295
- function Textarea({ className, ...props }) {
2296
- return /* @__PURE__ */ jsx(
2297
- "textarea",
2298
- {
2299
- "data-slot": "textarea",
2300
- className: cn(
2301
- "border-input placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:bg-input/30 dark:aria-invalid:ring-destructive/40 flex field-sizing-content min-h-16 w-full rounded-md border bg-transparent px-3 py-2 text-base shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",
2302
- className
2303
- ),
2304
- ...props
2305
- }
2306
- );
2307
- }
2308
- var ToggleGroupContext = React15.createContext({
2309
- size: "default",
2310
- variant: "default",
2311
- spacing: 0,
2312
- orientation: "horizontal"
2313
- });
2314
- function ToggleGroup({
2315
- className,
2316
- variant,
2317
- size,
2318
- spacing = 0,
2319
- orientation = "horizontal",
2320
- children,
2321
- ...props
2322
- }) {
2323
- return /* @__PURE__ */ jsx(
2324
- ToggleGroupPrimitive.Root,
2325
- {
2326
- "data-slot": "toggle-group",
2327
- "data-variant": variant,
2328
- "data-size": size,
2329
- "data-spacing": spacing,
2330
- "data-orientation": orientation,
2331
- style: { "--gap": spacing },
2332
- className: cn(
2333
- "cn-toggle-group group/toggle-group flex w-fit flex-row items-center gap-[--spacing(var(--gap))] data-[orientation=vertical]:flex-col data-[orientation=vertical]:items-stretch",
2334
- className
2335
- ),
2336
- ...props,
2337
- children: /* @__PURE__ */ jsx(
2338
- ToggleGroupContext.Provider,
2339
- {
2340
- value: { variant, size, spacing, orientation },
2341
- children
2342
- }
2343
- )
2344
- }
2345
- );
2346
- }
2347
- function ToggleGroupItem({
2348
- className,
2349
- children,
2350
- variant = "default",
2351
- size = "default",
2352
- ...props
2353
- }) {
2354
- const context = React15.useContext(ToggleGroupContext);
2355
- return /* @__PURE__ */ jsx(
2356
- ToggleGroupPrimitive.Item,
2357
- {
2358
- "data-slot": "toggle-group-item",
2359
- "data-variant": context.variant || variant,
2360
- "data-size": context.size || size,
2361
- "data-spacing": context.spacing,
2362
- className: cn(
2363
- "cn-toggle-group-item 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",
2364
- toggleVariants({
2365
- variant: context.variant || variant,
2366
- size: context.size || size
2367
- }),
2368
- className
2369
- ),
2370
- ...props,
2371
- children
2372
- }
2373
- );
2374
- }
2375
- var TooltipProvider = TooltipPrimitive.Provider;
2376
- function Tooltip2(props) {
2377
- return /* @__PURE__ */ jsx(TooltipPrimitive.Root, { ...props });
2378
- }
2379
- var TooltipTrigger = TooltipPrimitive.Trigger;
2380
- function TooltipContent({
2381
- className,
2382
- sideOffset = 4,
2383
- ...props
2384
- }) {
2385
- const portalContainer = usePortalContainer();
2386
- return /* @__PURE__ */ jsx(TooltipPrimitive.Portal, { container: portalContainer, children: /* @__PURE__ */ jsx(
2387
- TooltipPrimitive.Content,
2388
- {
2389
- sideOffset,
2390
- className: cn(
2391
- "animate-in bg-popover text-popover-foreground fade-in-0 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 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 z-50 overflow-hidden rounded-md border px-3 py-1.5 text-sm shadow-md",
2392
- className
2393
- ),
2394
- ...props
2395
- }
2396
- ) });
2397
- }
2398
-
2399
- export { Accordion, AccordionContent, AccordionItem, AccordionTrigger, Alert, AlertDescription, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogMedia, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, AlertTitle, Avatar, AvatarBadge, AvatarFallback, AvatarGroup, AvatarGroupCount, AvatarImage, Badge, Button, Calendar, Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, ChartContainer, ChartLegend, ChartLegendContent, ChartStyle, ChartTooltip, ChartTooltipContent, Collapsible, CollapsibleContent2 as CollapsibleContent, CollapsibleTrigger2 as CollapsibleTrigger, DatePicker, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, Form, FormControl, FormDescription, FormField, FormItem, FormLabel, FormMessage, IconButton, IconToggle, Input, Label2 as Label, Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious, Popover, PopoverAnchor, PopoverContent, PopoverDescription, PopoverHeader, PopoverTitle, PopoverTrigger, PortalContainerProvider, RadioGroup2 as RadioGroup, RadioGroupItem, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Separator3 as Separator, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetOverlay, SheetPortal, SheetTitle, SheetTrigger, Skeleton, Slider, Spinner, SpinnerWithText, Switch, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tabs, TabsContent, TabsList, TabsTrigger, Textarea, Toaster, Toggle, ToggleGroup, ToggleGroupItem, Tooltip2 as Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, badgeVariants, buttonVariants, cn, toggleVariants, useFormField, useZodForm };
2400
- //# sourceMappingURL=index.js.map
2401
- //# sourceMappingURL=index.js.map