@greatapps/greatauth-ui 0.3.18 → 0.3.19

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/ui.js CHANGED
@@ -1,1878 +1,493 @@
1
1
  "use client";
2
-
3
- // src/lib/utils.ts
4
- import { clsx } from "clsx";
5
- import { twMerge } from "tailwind-merge";
6
- function cn(...inputs) {
7
- return twMerge(clsx(inputs));
8
- }
9
-
10
- // src/components/ui/button.tsx
11
- import { cva } from "class-variance-authority";
12
- import { Slot } from "radix-ui";
13
- import { jsx } from "react/jsx-runtime";
14
- var buttonVariants = cva(
15
- "focus-visible:border-ring focus-visible:ring-ring/50 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-sm font-medium focus-visible:ring-3 aria-invalid:ring-3 [&_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",
16
- {
17
- variants: {
18
- variant: {
19
- default: "bg-primary text-primary-foreground hover:bg-primary/80",
20
- outline: "border-border bg-background hover:bg-muted hover:text-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50 aria-expanded:bg-muted aria-expanded:text-foreground shadow-xs",
21
- secondary: "bg-secondary text-secondary-foreground hover:bg-secondary/80 aria-expanded:bg-secondary aria-expanded:text-secondary-foreground",
22
- ghost: "hover:bg-muted hover:text-foreground dark:hover:bg-muted/50 aria-expanded:bg-muted aria-expanded:text-foreground",
23
- 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",
24
- link: "text-primary underline-offset-4 hover:underline"
25
- },
26
- size: {
27
- default: "h-9 gap-1.5 px-2.5 in-data-[slot=button-group]:rounded-md has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2",
28
- xs: "h-6 gap-1 rounded-[min(var(--radius-md),8px)] px-2 text-xs in-data-[slot=button-group]:rounded-md has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3",
29
- sm: "h-8 gap-1 rounded-[min(var(--radius-md),10px)] px-2.5 in-data-[slot=button-group]:rounded-md has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5",
30
- lg: "h-10 gap-1.5 px-2.5 has-data-[icon=inline-end]:pr-3 has-data-[icon=inline-start]:pl-3",
31
- icon: "size-9",
32
- "icon-xs": "size-6 rounded-[min(var(--radius-md),8px)] in-data-[slot=button-group]:rounded-md [&_svg:not([class*='size-'])]:size-3",
33
- "icon-sm": "size-8 rounded-[min(var(--radius-md),10px)] in-data-[slot=button-group]:rounded-md",
34
- "icon-lg": "size-10"
35
- }
36
- },
37
- defaultVariants: {
38
- variant: "default",
39
- size: "default"
40
- }
41
- }
42
- );
43
- function Button({
44
- className,
45
- variant = "default",
46
- size = "default",
47
- asChild = false,
48
- ...props
49
- }) {
50
- const Comp = asChild ? Slot.Root : "button";
51
- return /* @__PURE__ */ jsx(
52
- Comp,
53
- {
54
- "data-slot": "button",
55
- "data-variant": variant,
56
- "data-size": size,
57
- className: cn(buttonVariants({ variant, size, className })),
58
- ...props
59
- }
60
- );
61
- }
62
-
63
- // src/components/ui/dialog.tsx
64
- import { Dialog as DialogPrimitive } from "radix-ui";
65
- import { X } from "lucide-react";
66
- import { jsx as jsx2, jsxs } from "react/jsx-runtime";
67
- function Dialog({
68
- ...props
69
- }) {
70
- return /* @__PURE__ */ jsx2(DialogPrimitive.Root, { "data-slot": "dialog", ...props });
71
- }
72
- function DialogTrigger({
73
- ...props
74
- }) {
75
- return /* @__PURE__ */ jsx2(DialogPrimitive.Trigger, { "data-slot": "dialog-trigger", ...props });
76
- }
77
- function DialogPortal({
78
- ...props
79
- }) {
80
- return /* @__PURE__ */ jsx2(DialogPrimitive.Portal, { "data-slot": "dialog-portal", ...props });
81
- }
82
- function DialogClose({
83
- ...props
84
- }) {
85
- return /* @__PURE__ */ jsx2(DialogPrimitive.Close, { "data-slot": "dialog-close", ...props });
86
- }
87
- function DialogOverlay({
88
- className,
89
- ...props
90
- }) {
91
- return /* @__PURE__ */ jsx2(
92
- DialogPrimitive.Overlay,
93
- {
94
- "data-slot": "dialog-overlay",
95
- className: cn("data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 bg-black/10 duration-100 supports-backdrop-filter:backdrop-blur-xs fixed inset-0 isolate z-50", className),
96
- ...props
97
- }
98
- );
99
- }
100
- function DialogContent({
101
- className,
102
- children,
103
- showCloseButton = true,
104
- ...props
105
- }) {
106
- return /* @__PURE__ */ jsxs(DialogPortal, { children: [
107
- /* @__PURE__ */ jsx2(DialogOverlay, {}),
108
- /* @__PURE__ */ jsxs(
109
- DialogPrimitive.Content,
110
- {
111
- "data-slot": "dialog-content",
112
- className: cn(
113
- "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-6 rounded-xl p-6 text-sm ring-1 duration-100 sm:max-w-md fixed top-1/2 left-1/2 z-50 w-full -translate-x-1/2 -translate-y-1/2 outline-none",
114
- className
115
- ),
116
- ...props,
117
- children: [
118
- children,
119
- showCloseButton && /* @__PURE__ */ jsx2(DialogPrimitive.Close, { "data-slot": "dialog-close", asChild: true, children: /* @__PURE__ */ jsxs(Button, { variant: "ghost", className: "absolute top-4 right-4", size: "icon-sm", children: [
120
- /* @__PURE__ */ jsx2(X, {}),
121
- /* @__PURE__ */ jsx2("span", { className: "sr-only", children: "Close" })
122
- ] }) })
123
- ]
124
- }
125
- )
126
- ] });
127
- }
128
- function DialogHeader({ className, ...props }) {
129
- return /* @__PURE__ */ jsx2(
130
- "div",
131
- {
132
- "data-slot": "dialog-header",
133
- className: cn("gap-2 flex flex-col", className),
134
- ...props
135
- }
136
- );
137
- }
138
- function DialogFooter({
139
- className,
140
- children,
141
- ...props
142
- }) {
143
- return /* @__PURE__ */ jsx2(
144
- "div",
145
- {
146
- "data-slot": "dialog-footer",
147
- className: cn(
148
- "flex flex-col-reverse gap-2 sm:flex-row sm:justify-end",
149
- className
150
- ),
151
- ...props,
152
- children
153
- }
154
- );
155
- }
156
- function DialogTitle({
157
- className,
158
- ...props
159
- }) {
160
- return /* @__PURE__ */ jsx2(
161
- DialogPrimitive.Title,
162
- {
163
- "data-slot": "dialog-title",
164
- className: cn("leading-none font-medium", className),
165
- ...props
166
- }
167
- );
168
- }
169
- function DialogDescription({
170
- className,
171
- ...props
172
- }) {
173
- return /* @__PURE__ */ jsx2(
174
- DialogPrimitive.Description,
175
- {
176
- "data-slot": "dialog-description",
177
- className: cn("text-muted-foreground *:[a]:hover:text-foreground text-sm *:[a]:underline *:[a]:underline-offset-3", className),
178
- ...props
179
- }
180
- );
181
- }
182
-
183
- // src/components/ui/alert-dialog.tsx
184
- import { AlertDialog as AlertDialogPrimitive } from "radix-ui";
185
- import { jsx as jsx3, jsxs as jsxs2 } from "react/jsx-runtime";
186
- function AlertDialog({
187
- ...props
188
- }) {
189
- return /* @__PURE__ */ jsx3(AlertDialogPrimitive.Root, { "data-slot": "alert-dialog", ...props });
190
- }
191
- function AlertDialogTrigger({
192
- ...props
193
- }) {
194
- return /* @__PURE__ */ jsx3(AlertDialogPrimitive.Trigger, { "data-slot": "alert-dialog-trigger", ...props });
195
- }
196
- function AlertDialogPortal({
197
- ...props
198
- }) {
199
- return /* @__PURE__ */ jsx3(AlertDialogPrimitive.Portal, { "data-slot": "alert-dialog-portal", ...props });
200
- }
201
- function AlertDialogOverlay({
202
- className,
203
- ...props
204
- }) {
205
- return /* @__PURE__ */ jsx3(
206
- AlertDialogPrimitive.Overlay,
207
- {
208
- "data-slot": "alert-dialog-overlay",
209
- className: cn("data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 bg-black/10 duration-100 supports-backdrop-filter:backdrop-blur-xs fixed inset-0 z-50", className),
210
- ...props
211
- }
212
- );
213
- }
214
- function AlertDialogContent({
215
- className,
216
- size = "default",
217
- ...props
218
- }) {
219
- return /* @__PURE__ */ jsxs2(AlertDialogPortal, { children: [
220
- /* @__PURE__ */ jsx3(AlertDialogOverlay, {}),
221
- /* @__PURE__ */ jsx3(
222
- AlertDialogPrimitive.Content,
223
- {
224
- "data-slot": "alert-dialog-content",
225
- "data-size": size,
226
- className: cn(
227
- "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-6 rounded-xl p-6 ring-1 duration-100 data-[size=default]:max-w-xs data-[size=sm]:max-w-xs data-[size=default]:sm:max-w-lg 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",
228
- className
229
- ),
230
- ...props
231
- }
232
- )
233
- ] });
234
- }
235
- function AlertDialogHeader({
236
- className,
237
- ...props
238
- }) {
239
- return /* @__PURE__ */ jsx3(
240
- "div",
241
- {
242
- "data-slot": "alert-dialog-header",
243
- className: cn("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]", className),
244
- ...props
245
- }
246
- );
247
- }
248
- function AlertDialogFooter({
249
- className,
250
- ...props
251
- }) {
252
- return /* @__PURE__ */ jsx3(
253
- "div",
254
- {
255
- "data-slot": "alert-dialog-footer",
256
- className: cn(
257
- "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",
258
- className
259
- ),
260
- ...props
261
- }
262
- );
263
- }
264
- function AlertDialogTitle({
265
- className,
266
- ...props
267
- }) {
268
- return /* @__PURE__ */ jsx3(
269
- AlertDialogPrimitive.Title,
270
- {
271
- "data-slot": "alert-dialog-title",
272
- className: cn("text-lg font-medium sm:group-data-[size=default]/alert-dialog-content:group-has-data-[slot=alert-dialog-media]/alert-dialog-content:col-start-2", className),
273
- ...props
274
- }
275
- );
276
- }
277
- function AlertDialogDescription({
278
- className,
279
- ...props
280
- }) {
281
- return /* @__PURE__ */ jsx3(
282
- AlertDialogPrimitive.Description,
283
- {
284
- "data-slot": "alert-dialog-description",
285
- className: cn("text-muted-foreground *:[a]:hover:text-foreground text-sm text-balance md:text-pretty *:[a]:underline *:[a]:underline-offset-3", className),
286
- ...props
287
- }
288
- );
289
- }
290
- function AlertDialogAction({
291
- className,
292
- variant = "default",
293
- size = "default",
294
- ...props
295
- }) {
296
- return /* @__PURE__ */ jsx3(Button, { variant, size, asChild: true, children: /* @__PURE__ */ jsx3(
297
- AlertDialogPrimitive.Action,
298
- {
299
- "data-slot": "alert-dialog-action",
300
- className: cn(className),
301
- ...props
302
- }
303
- ) });
304
- }
305
- function AlertDialogCancel({
306
- className,
307
- variant = "outline",
308
- size = "default",
309
- ...props
310
- }) {
311
- return /* @__PURE__ */ jsx3(Button, { variant, size, asChild: true, children: /* @__PURE__ */ jsx3(
312
- AlertDialogPrimitive.Cancel,
313
- {
314
- "data-slot": "alert-dialog-cancel",
315
- className: cn(className),
316
- ...props
317
- }
318
- ) });
319
- }
320
-
321
- // src/components/ui/select.tsx
322
- import { Select as SelectPrimitive } from "radix-ui";
323
- import { ChevronsUpDown, Check, ChevronUp, ChevronDown } from "lucide-react";
324
- import { jsx as jsx4, jsxs as jsxs3 } from "react/jsx-runtime";
325
- function Select({
326
- ...props
327
- }) {
328
- return /* @__PURE__ */ jsx4(SelectPrimitive.Root, { "data-slot": "select", ...props });
329
- }
330
- function SelectGroup({
331
- className,
332
- ...props
333
- }) {
334
- return /* @__PURE__ */ jsx4(
335
- SelectPrimitive.Group,
336
- {
337
- "data-slot": "select-group",
338
- className: cn("scroll-my-1 p-1", className),
339
- ...props
340
- }
341
- );
342
- }
343
- function SelectValue({
344
- ...props
345
- }) {
346
- return /* @__PURE__ */ jsx4(SelectPrimitive.Value, { "data-slot": "select-value", ...props });
347
- }
348
- function SelectTrigger({
349
- className,
350
- size = "default",
351
- children,
352
- ...props
353
- }) {
354
- return /* @__PURE__ */ jsxs3(
355
- SelectPrimitive.Trigger,
356
- {
357
- "data-slot": "select-trigger",
358
- "data-size": size,
359
- className: cn(
360
- "border-input data-placeholder:text-muted-foreground dark:bg-input/30 dark:hover:bg-input/50 focus-visible:border-ring focus-visible:ring-ring/50 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 bg-transparent py-2 pr-2 pl-2.5 text-sm shadow-xs transition-[color,box-shadow] focus-visible:ring-3 aria-invalid:ring-3 data-[size=default]:h-9 data-[size=sm]:h-8 *:data-[slot=select-value]:gap-1.5 [&_svg:not([class*='size-'])]:size-4 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",
361
- className
362
- ),
363
- ...props,
364
- children: [
365
- children,
366
- /* @__PURE__ */ jsx4(SelectPrimitive.Icon, { asChild: true, children: /* @__PURE__ */ jsx4(ChevronsUpDown, { className: "text-muted-foreground size-4 pointer-events-none" }) })
367
- ]
368
- }
369
- );
370
- }
371
- function SelectContent({
372
- className,
373
- children,
374
- position = "item-aligned",
375
- align = "center",
376
- ...props
377
- }) {
378
- return /* @__PURE__ */ jsx4(SelectPrimitive.Portal, { children: /* @__PURE__ */ jsxs3(
379
- SelectPrimitive.Content,
380
- {
381
- "data-slot": "select-content",
382
- "data-align-trigger": position === "item-aligned",
383
- 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-36 rounded-md 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 data-[align-trigger=true]:animate-none", 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),
384
- position,
385
- align,
386
- ...props,
387
- children: [
388
- /* @__PURE__ */ jsx4(SelectScrollUpButton, {}),
389
- /* @__PURE__ */ jsx4(
390
- SelectPrimitive.Viewport,
391
- {
392
- "data-position": position,
393
- className: cn(
394
- "data-[position=popper]:h-(--radix-select-trigger-height) data-[position=popper]:w-full data-[position=popper]:min-w-(--radix-select-trigger-width)",
395
- position === "popper" && ""
396
- ),
397
- children
398
- }
399
- ),
400
- /* @__PURE__ */ jsx4(SelectScrollDownButton, {})
401
- ]
402
- }
403
- ) });
404
- }
405
- function SelectLabel({
406
- className,
407
- ...props
408
- }) {
409
- return /* @__PURE__ */ jsx4(
410
- SelectPrimitive.Label,
411
- {
412
- "data-slot": "select-label",
413
- className: cn("text-muted-foreground px-2 py-1.5 text-xs", className),
414
- ...props
415
- }
416
- );
417
- }
418
- function SelectItem({
419
- className,
420
- children,
421
- ...props
422
- }) {
423
- return /* @__PURE__ */ jsxs3(
424
- SelectPrimitive.Item,
425
- {
426
- "data-slot": "select-item",
427
- className: cn(
428
- "focus:bg-accent focus:text-accent-foreground not-data-[variant=destructive]:focus:**:text-accent-foreground gap-2 rounded-sm py-1.5 pr-8 pl-2 text-sm [&_svg:not([class*='size-'])]:size-4 *:[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",
429
- className
430
- ),
431
- ...props,
432
- children: [
433
- /* @__PURE__ */ jsx4("span", { className: "pointer-events-none absolute right-2 flex size-4 items-center justify-center", children: /* @__PURE__ */ jsx4(SelectPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx4(Check, { className: "pointer-events-none" }) }) }),
434
- /* @__PURE__ */ jsx4(SelectPrimitive.ItemText, { children })
435
- ]
436
- }
437
- );
438
- }
439
- function SelectSeparator({
440
- className,
441
- ...props
442
- }) {
443
- return /* @__PURE__ */ jsx4(
444
- SelectPrimitive.Separator,
445
- {
446
- "data-slot": "select-separator",
447
- className: cn("bg-border -mx-1 my-1 h-px pointer-events-none", className),
448
- ...props
449
- }
450
- );
451
- }
452
- function SelectScrollUpButton({
453
- className,
454
- ...props
455
- }) {
456
- return /* @__PURE__ */ jsx4(
457
- SelectPrimitive.ScrollUpButton,
458
- {
459
- "data-slot": "select-scroll-up-button",
460
- className: cn("bg-popover z-10 flex cursor-default items-center justify-center py-1 [&_svg:not([class*='size-'])]:size-4", className),
461
- ...props,
462
- children: /* @__PURE__ */ jsx4(ChevronUp, {})
463
- }
464
- );
465
- }
466
- function SelectScrollDownButton({
467
- className,
468
- ...props
469
- }) {
470
- return /* @__PURE__ */ jsx4(
471
- SelectPrimitive.ScrollDownButton,
472
- {
473
- "data-slot": "select-scroll-down-button",
474
- className: cn("bg-popover z-10 flex cursor-default items-center justify-center py-1 [&_svg:not([class*='size-'])]:size-4", className),
475
- ...props,
476
- children: /* @__PURE__ */ jsx4(ChevronDown, {})
477
- }
478
- );
479
- }
480
-
481
- // src/components/ui/input.tsx
482
- import { jsx as jsx5 } from "react/jsx-runtime";
483
- function Input({ className, type, ...props }) {
484
- return /* @__PURE__ */ jsx5(
485
- "input",
486
- {
487
- type,
488
- "data-slot": "input",
489
- className: cn(
490
- "dark:bg-input/30 border-input focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:aria-invalid:border-destructive/50 h-9 rounded-md border bg-transparent px-2.5 py-1 text-base shadow-xs transition-[color,box-shadow] file:h-7 file:text-sm file:font-medium focus-visible:ring-3 aria-invalid:ring-3 md:text-sm 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",
491
- className
492
- ),
493
- ...props
494
- }
495
- );
496
- }
497
-
498
- // src/components/ui/label.tsx
499
- import { Label as LabelPrimitive } from "radix-ui";
500
- import { jsx as jsx6 } from "react/jsx-runtime";
501
- function Label({
502
- className,
503
- ...props
504
- }) {
505
- return /* @__PURE__ */ jsx6(
506
- LabelPrimitive.Root,
507
- {
508
- "data-slot": "label",
509
- className: cn(
510
- "gap-2 text-sm 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",
511
- className
512
- ),
513
- ...props
514
- }
515
- );
516
- }
517
-
518
- // src/components/ui/textarea.tsx
519
- import { jsx as jsx7 } from "react/jsx-runtime";
520
- function Textarea({ className, ...props }) {
521
- return /* @__PURE__ */ jsx7(
522
- "textarea",
523
- {
524
- "data-slot": "textarea",
525
- className: cn(
526
- "border-input dark:bg-input/30 focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:aria-invalid:border-destructive/50 rounded-md border bg-transparent px-2.5 py-2 text-base shadow-xs transition-[color,box-shadow] focus-visible:ring-3 aria-invalid:ring-3 md:text-sm placeholder:text-muted-foreground flex field-sizing-content min-h-16 w-full outline-none disabled:cursor-not-allowed disabled:opacity-50",
527
- className
528
- ),
529
- ...props
530
- }
531
- );
532
- }
533
-
534
- // src/components/ui/card.tsx
535
- import { jsx as jsx8 } from "react/jsx-runtime";
536
- function Card({
537
- className,
538
- size = "default",
539
- ...props
540
- }) {
541
- return /* @__PURE__ */ jsx8(
542
- "div",
543
- {
544
- "data-slot": "card",
545
- "data-size": size,
546
- className: cn("ring-foreground/10 bg-card text-card-foreground gap-6 overflow-hidden rounded-xl py-6 text-sm shadow-xs ring-1 has-[>img:first-child]:pt-0 data-[size=sm]:gap-4 data-[size=sm]:py-4 *:[img:first-child]:rounded-t-xl *:[img:last-child]:rounded-b-xl group/card flex flex-col", className),
547
- ...props
548
- }
549
- );
550
- }
551
- function CardHeader({ className, ...props }) {
552
- return /* @__PURE__ */ jsx8(
553
- "div",
554
- {
555
- "data-slot": "card-header",
556
- className: cn(
557
- "gap-1 rounded-t-xl px-6 group-data-[size=sm]/card:px-4 [.border-b]:pb-6 group-data-[size=sm]/card:[.border-b]:pb-4 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]",
558
- className
559
- ),
560
- ...props
561
- }
562
- );
563
- }
564
- function CardTitle({ className, ...props }) {
565
- return /* @__PURE__ */ jsx8(
566
- "div",
567
- {
568
- "data-slot": "card-title",
569
- className: cn("text-base leading-normal font-medium group-data-[size=sm]/card:text-sm", className),
570
- ...props
571
- }
572
- );
573
- }
574
- function CardDescription({ className, ...props }) {
575
- return /* @__PURE__ */ jsx8(
576
- "div",
577
- {
578
- "data-slot": "card-description",
579
- className: cn("text-muted-foreground text-sm", className),
580
- ...props
581
- }
582
- );
583
- }
584
- function CardContent({ className, ...props }) {
585
- return /* @__PURE__ */ jsx8(
586
- "div",
587
- {
588
- "data-slot": "card-content",
589
- className: cn("px-6 group-data-[size=sm]/card:px-4", className),
590
- ...props
591
- }
592
- );
593
- }
594
- function CardFooter({ className, ...props }) {
595
- return /* @__PURE__ */ jsx8(
596
- "div",
597
- {
598
- "data-slot": "card-footer",
599
- className: cn("rounded-b-xl px-6 group-data-[size=sm]/card:px-4 [.border-t]:pt-6 group-data-[size=sm]/card:[.border-t]:pt-4 flex items-center", className),
600
- ...props
601
- }
602
- );
603
- }
604
-
605
- // src/components/ui/badge.tsx
606
- import { cva as cva2 } from "class-variance-authority";
607
- import { Slot as Slot2 } from "radix-ui";
608
- import { jsx as jsx9 } from "react/jsx-runtime";
609
- var badgeVariants = cva2(
610
- "h-5 gap-1 rounded-4xl border border-transparent px-2 py-0.5 text-xs font-medium transition-all has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&>svg]:size-3! 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 overflow-hidden group/badge",
611
- {
612
- variants: {
613
- variant: {
614
- default: "bg-primary text-primary-foreground [a]:hover:bg-primary/80",
615
- secondary: "bg-secondary text-secondary-foreground [a]:hover:bg-secondary/80",
616
- 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",
617
- outline: "border-border text-foreground [a]:hover:bg-muted [a]:hover:text-muted-foreground",
618
- ghost: "hover:bg-muted hover:text-muted-foreground dark:hover:bg-muted/50",
619
- link: "text-primary underline-offset-4 hover:underline"
620
- }
621
- },
622
- defaultVariants: {
623
- variant: "default"
624
- }
625
- }
626
- );
627
- function Badge({
628
- className,
629
- variant = "default",
630
- asChild = false,
631
- ...props
632
- }) {
633
- const Comp = asChild ? Slot2.Root : "span";
634
- return /* @__PURE__ */ jsx9(
635
- Comp,
636
- {
637
- "data-slot": "badge",
638
- "data-variant": variant,
639
- className: cn(badgeVariants({ variant }), className),
640
- ...props
641
- }
642
- );
643
- }
644
-
645
- // src/components/ui/avatar.tsx
646
- import { Avatar as AvatarPrimitive } from "radix-ui";
647
- import { jsx as jsx10 } from "react/jsx-runtime";
648
- function Avatar({
649
- className,
650
- size = "default",
651
- ...props
652
- }) {
653
- return /* @__PURE__ */ jsx10(
654
- AvatarPrimitive.Root,
655
- {
656
- "data-slot": "avatar",
657
- "data-size": size,
658
- className: cn(
659
- "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",
660
- className
661
- ),
662
- ...props
663
- }
664
- );
665
- }
666
- function AvatarImage({
667
- className,
668
- ...props
669
- }) {
670
- return /* @__PURE__ */ jsx10(
671
- AvatarPrimitive.Image,
672
- {
673
- "data-slot": "avatar-image",
674
- className: cn(
675
- "rounded-full aspect-square size-full object-cover",
676
- className
677
- ),
678
- ...props
679
- }
680
- );
681
- }
682
- function AvatarFallback({
683
- className,
684
- ...props
685
- }) {
686
- return /* @__PURE__ */ jsx10(
687
- AvatarPrimitive.Fallback,
688
- {
689
- "data-slot": "avatar-fallback",
690
- className: cn(
691
- "bg-muted text-muted-foreground rounded-full flex size-full items-center justify-center text-sm group-data-[size=sm]/avatar:text-xs",
692
- className
693
- ),
694
- ...props
695
- }
696
- );
697
- }
698
-
699
- // src/components/ui/tooltip.tsx
700
- import { Tooltip as TooltipPrimitive } from "radix-ui";
701
- import { jsx as jsx11, jsxs as jsxs4 } from "react/jsx-runtime";
702
- function TooltipProvider({
703
- delayDuration = 0,
704
- ...props
705
- }) {
706
- return /* @__PURE__ */ jsx11(
707
- TooltipPrimitive.Provider,
708
- {
709
- "data-slot": "tooltip-provider",
710
- delayDuration,
711
- ...props
712
- }
713
- );
714
- }
715
- function Tooltip({
716
- ...props
717
- }) {
718
- return /* @__PURE__ */ jsx11(TooltipPrimitive.Root, { "data-slot": "tooltip", ...props });
719
- }
720
- function TooltipTrigger({
721
- ...props
722
- }) {
723
- return /* @__PURE__ */ jsx11(TooltipPrimitive.Trigger, { "data-slot": "tooltip-trigger", ...props });
724
- }
725
- function TooltipContent({
726
- className,
727
- sideOffset = 0,
728
- children,
729
- ...props
730
- }) {
731
- return /* @__PURE__ */ jsx11(TooltipPrimitive.Portal, { children: /* @__PURE__ */ jsxs4(
732
- TooltipPrimitive.Content,
733
- {
734
- "data-slot": "tooltip-content",
735
- sideOffset,
736
- className: cn(
737
- "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 bg-foreground text-background z-50 w-fit max-w-xs origin-(--radix-tooltip-content-transform-origin)",
738
- className
739
- ),
740
- ...props,
741
- children: [
742
- children,
743
- /* @__PURE__ */ jsx11(TooltipPrimitive.Arrow, { className: "size-2.5 rotate-45 rounded-[2px] bg-foreground fill-foreground z-50 translate-y-[calc(-50%_-_2px)]" })
744
- ]
745
- }
746
- ) });
747
- }
748
-
749
- // src/components/ui/dropdown-menu.tsx
750
- import { DropdownMenu as DropdownMenuPrimitive } from "radix-ui";
751
- import { Check as Check2, ChevronRight } from "lucide-react";
752
- import { jsx as jsx12, jsxs as jsxs5 } from "react/jsx-runtime";
753
- function DropdownMenu({
754
- ...props
755
- }) {
756
- return /* @__PURE__ */ jsx12(DropdownMenuPrimitive.Root, { "data-slot": "dropdown-menu", ...props });
757
- }
758
- function DropdownMenuTrigger({
759
- ...props
760
- }) {
761
- return /* @__PURE__ */ jsx12(
762
- DropdownMenuPrimitive.Trigger,
763
- {
764
- "data-slot": "dropdown-menu-trigger",
765
- ...props
766
- }
767
- );
768
- }
769
- function DropdownMenuContent({
770
- className,
771
- align = "start",
772
- sideOffset = 4,
773
- ...props
774
- }) {
775
- return /* @__PURE__ */ jsx12(DropdownMenuPrimitive.Portal, { children: /* @__PURE__ */ jsx12(
776
- DropdownMenuPrimitive.Content,
777
- {
778
- "data-slot": "dropdown-menu-content",
779
- sideOffset,
780
- align,
781
- 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-md 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),
782
- ...props
783
- }
784
- ) });
785
- }
786
- function DropdownMenuGroup({
787
- ...props
788
- }) {
789
- return /* @__PURE__ */ jsx12(DropdownMenuPrimitive.Group, { "data-slot": "dropdown-menu-group", ...props });
790
- }
791
- function DropdownMenuItem({
792
- className,
793
- inset,
794
- variant = "default",
795
- ...props
796
- }) {
797
- return /* @__PURE__ */ jsx12(
798
- DropdownMenuPrimitive.Item,
799
- {
800
- "data-slot": "dropdown-menu-item",
801
- "data-inset": inset,
802
- "data-variant": variant,
803
- className: cn(
804
- "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 gap-2 rounded-sm px-2 py-1.5 text-sm data-inset:pl-8 [&_svg:not([class*='size-'])]:size-4 group/dropdown-menu-item 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",
805
- className
806
- ),
807
- ...props
808
- }
809
- );
810
- }
811
- function DropdownMenuLabel({
812
- className,
813
- inset,
814
- ...props
815
- }) {
816
- return /* @__PURE__ */ jsx12(
817
- DropdownMenuPrimitive.Label,
818
- {
819
- "data-slot": "dropdown-menu-label",
820
- "data-inset": inset,
821
- className: cn("text-muted-foreground px-2 py-1.5 text-xs font-medium data-inset:pl-8", className),
822
- ...props
823
- }
824
- );
825
- }
826
- function DropdownMenuSeparator({
827
- className,
828
- ...props
829
- }) {
830
- return /* @__PURE__ */ jsx12(
831
- DropdownMenuPrimitive.Separator,
832
- {
833
- "data-slot": "dropdown-menu-separator",
834
- className: cn("bg-border -mx-1 my-1 h-px", className),
835
- ...props
836
- }
837
- );
838
- }
839
-
840
- // src/components/ui/separator.tsx
841
- import { Separator as SeparatorPrimitive } from "radix-ui";
842
- import { jsx as jsx13 } from "react/jsx-runtime";
843
- function Separator({
844
- className,
845
- orientation = "horizontal",
846
- decorative = true,
847
- ...props
848
- }) {
849
- return /* @__PURE__ */ jsx13(
850
- SeparatorPrimitive.Root,
851
- {
852
- "data-slot": "separator",
853
- decorative,
854
- orientation,
855
- className: cn(
856
- "bg-border shrink-0 data-horizontal:h-px data-horizontal:w-full data-vertical:w-px data-vertical:self-stretch",
857
- className
858
- ),
859
- ...props
860
- }
861
- );
862
- }
863
-
864
- // src/components/ui/skeleton.tsx
865
- import { jsx as jsx14 } from "react/jsx-runtime";
866
- function Skeleton({ className, ...props }) {
867
- return /* @__PURE__ */ jsx14(
868
- "div",
869
- {
870
- "data-slot": "skeleton",
871
- className: cn("bg-muted rounded-md animate-pulse", className),
872
- ...props
873
- }
874
- );
875
- }
876
-
877
- // src/components/ui/scroll-area.tsx
878
- import { ScrollArea as ScrollAreaPrimitive } from "radix-ui";
879
- import { jsx as jsx15, jsxs as jsxs6 } from "react/jsx-runtime";
880
- function ScrollArea({
881
- className,
882
- children,
883
- ...props
884
- }) {
885
- return /* @__PURE__ */ jsxs6(
886
- ScrollAreaPrimitive.Root,
887
- {
888
- "data-slot": "scroll-area",
889
- className: cn("relative", className),
890
- ...props,
891
- children: [
892
- /* @__PURE__ */ jsx15(
893
- ScrollAreaPrimitive.Viewport,
894
- {
895
- "data-slot": "scroll-area-viewport",
896
- className: "focus-visible:ring-ring/50 size-full rounded-[inherit] transition-[color,box-shadow] outline-none focus-visible:ring-[3px] focus-visible:outline-1",
897
- children
898
- }
899
- ),
900
- /* @__PURE__ */ jsx15(ScrollBar, {}),
901
- /* @__PURE__ */ jsx15(ScrollAreaPrimitive.Corner, {})
902
- ]
903
- }
904
- );
905
- }
906
- function ScrollBar({
907
- className,
908
- orientation = "vertical",
909
- ...props
910
- }) {
911
- return /* @__PURE__ */ jsx15(
912
- ScrollAreaPrimitive.ScrollAreaScrollbar,
913
- {
914
- "data-slot": "scroll-area-scrollbar",
915
- "data-orientation": orientation,
916
- orientation,
917
- className: cn(
918
- "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",
919
- className
920
- ),
921
- ...props,
922
- children: /* @__PURE__ */ jsx15(
923
- ScrollAreaPrimitive.ScrollAreaThumb,
924
- {
925
- "data-slot": "scroll-area-thumb",
926
- className: "rounded-full bg-border relative flex-1"
927
- }
928
- )
929
- }
930
- );
931
- }
932
-
933
- // src/components/ui/tabs.tsx
934
- import { cva as cva3 } from "class-variance-authority";
935
- import { Tabs as TabsPrimitive } from "radix-ui";
936
- import { jsx as jsx16 } from "react/jsx-runtime";
937
- function Tabs({
938
- className,
939
- orientation = "horizontal",
940
- ...props
941
- }) {
942
- return /* @__PURE__ */ jsx16(
943
- TabsPrimitive.Root,
944
- {
945
- "data-slot": "tabs",
946
- "data-orientation": orientation,
947
- className: cn(
948
- "gap-2 group/tabs flex data-horizontal:flex-col",
949
- className
950
- ),
951
- ...props
952
- }
953
- );
954
- }
955
- var tabsListVariants = cva3(
956
- "rounded-lg p-[3px] group-data-horizontal/tabs:h-9 data-[variant=line]:rounded-none group/tabs-list text-muted-foreground inline-flex w-fit items-center justify-center group-data-vertical/tabs:h-fit group-data-vertical/tabs:flex-col",
957
- {
958
- variants: {
959
- variant: {
960
- default: "bg-muted",
961
- line: "gap-1 bg-transparent"
962
- }
963
- },
964
- defaultVariants: {
965
- variant: "default"
966
- }
967
- }
968
- );
969
- function TabsList({
970
- className,
971
- variant = "default",
972
- ...props
973
- }) {
974
- return /* @__PURE__ */ jsx16(
975
- TabsPrimitive.List,
976
- {
977
- "data-slot": "tabs-list",
978
- "data-variant": variant,
979
- className: cn(tabsListVariants({ variant }), className),
980
- ...props
981
- }
982
- );
983
- }
984
- function TabsTrigger({
985
- className,
986
- ...props
987
- }) {
988
- return /* @__PURE__ */ jsx16(
989
- TabsPrimitive.Trigger,
990
- {
991
- "data-slot": "tabs-trigger",
992
- className: cn(
993
- "gap-1.5 rounded-md border border-transparent px-2 py-1 text-sm font-medium group-data-[variant=default]/tabs-list:data-active:shadow-sm group-data-[variant=line]/tabs-list:data-active:shadow-none [&_svg:not([class*='size-'])]:size-4 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-vertical/tabs:w-full group-data-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",
994
- "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",
995
- "data-active:bg-background dark:data-active:text-foreground dark:data-active:border-input dark:data-active:bg-input/30 data-active:text-foreground",
996
- "after:bg-foreground after:absolute after:opacity-0 after:transition-opacity group-data-horizontal/tabs:after:inset-x-0 group-data-horizontal/tabs:after:bottom-[-5px] group-data-horizontal/tabs:after:h-0.5 group-data-vertical/tabs:after:inset-y-0 group-data-vertical/tabs:after:-right-1 group-data-vertical/tabs:after:w-0.5 group-data-[variant=line]/tabs-list:data-active:after:opacity-100",
997
- className
998
- ),
999
- ...props
1000
- }
1001
- );
1002
- }
1003
- function TabsContent({
1004
- className,
1005
- ...props
1006
- }) {
1007
- return /* @__PURE__ */ jsx16(
1008
- TabsPrimitive.Content,
1009
- {
1010
- "data-slot": "tabs-content",
1011
- className: cn("text-sm flex-1 outline-none", className),
1012
- ...props
1013
- }
1014
- );
1015
- }
1016
-
1017
- // src/components/ui/table.tsx
1018
- import { jsx as jsx17 } from "react/jsx-runtime";
1019
- function Table({ className, ...props }) {
1020
- return /* @__PURE__ */ jsx17("div", { "data-slot": "table-container", className: "relative w-full overflow-x-auto", children: /* @__PURE__ */ jsx17(
1021
- "table",
1022
- {
1023
- "data-slot": "table",
1024
- className: cn("w-full caption-bottom text-sm", className),
1025
- ...props
1026
- }
1027
- ) });
1028
- }
1029
- function TableHeader({ className, ...props }) {
1030
- return /* @__PURE__ */ jsx17(
1031
- "thead",
1032
- {
1033
- "data-slot": "table-header",
1034
- className: cn("[&_tr]:border-b", className),
1035
- ...props
1036
- }
1037
- );
1038
- }
1039
- function TableBody({ className, ...props }) {
1040
- return /* @__PURE__ */ jsx17(
1041
- "tbody",
1042
- {
1043
- "data-slot": "table-body",
1044
- className: cn("[&_tr:last-child]:border-0", className),
1045
- ...props
1046
- }
1047
- );
1048
- }
1049
- function TableFooter({ className, ...props }) {
1050
- return /* @__PURE__ */ jsx17(
1051
- "tfoot",
1052
- {
1053
- "data-slot": "table-footer",
1054
- className: cn("bg-muted/50 border-t font-medium [&>tr]:last:border-b-0", className),
1055
- ...props
1056
- }
1057
- );
1058
- }
1059
- function TableRow({ className, ...props }) {
1060
- return /* @__PURE__ */ jsx17(
1061
- "tr",
1062
- {
1063
- "data-slot": "table-row",
1064
- className: cn("hover:bg-muted/50 data-[state=selected]:bg-muted border-b transition-colors", className),
1065
- ...props
1066
- }
1067
- );
1068
- }
1069
- function TableHead({ className, ...props }) {
1070
- return /* @__PURE__ */ jsx17(
1071
- "th",
1072
- {
1073
- "data-slot": "table-head",
1074
- className: cn("text-foreground h-10 px-2 text-left align-middle font-medium whitespace-nowrap [&:has([role=checkbox])]:pr-0", className),
1075
- ...props
1076
- }
1077
- );
1078
- }
1079
- function TableCell({ className, ...props }) {
1080
- return /* @__PURE__ */ jsx17(
1081
- "td",
1082
- {
1083
- "data-slot": "table-cell",
1084
- className: cn("p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0", className),
1085
- ...props
1086
- }
1087
- );
1088
- }
1089
- function TableCaption({
1090
- className,
1091
- ...props
1092
- }) {
1093
- return /* @__PURE__ */ jsx17(
1094
- "caption",
1095
- {
1096
- "data-slot": "table-caption",
1097
- className: cn("text-muted-foreground mt-4 text-sm", className),
1098
- ...props
1099
- }
1100
- );
1101
- }
1102
-
1103
- // src/components/ui/progress.tsx
1104
- import { Progress as ProgressPrimitive } from "radix-ui";
1105
- import { jsx as jsx18 } from "react/jsx-runtime";
1106
- function Progress({
1107
- className,
1108
- value,
1109
- ...props
1110
- }) {
1111
- return /* @__PURE__ */ jsx18(
1112
- ProgressPrimitive.Root,
1113
- {
1114
- "data-slot": "progress",
1115
- className: cn(
1116
- "bg-muted h-1.5 rounded-full relative flex w-full items-center overflow-x-hidden",
1117
- className
1118
- ),
1119
- ...props,
1120
- children: /* @__PURE__ */ jsx18(
1121
- ProgressPrimitive.Indicator,
1122
- {
1123
- "data-slot": "progress-indicator",
1124
- className: "bg-primary size-full flex-1 transition-all",
1125
- style: { transform: `translateX(-${100 - (value || 0)}%)` }
1126
- }
1127
- )
1128
- }
1129
- );
1130
- }
1131
-
1132
- // src/components/ui/command.tsx
1133
- import { Command as CommandPrimitive } from "cmdk";
1134
- import { Search } from "lucide-react";
1135
- import { jsx as jsx19, jsxs as jsxs7 } from "react/jsx-runtime";
1136
- function Command({
1137
- className,
1138
- ...props
1139
- }) {
1140
- return /* @__PURE__ */ jsx19(
1141
- CommandPrimitive,
1142
- {
1143
- "data-slot": "command",
1144
- className: cn(
1145
- "bg-popover text-popover-foreground rounded-xl p-1 flex size-full flex-col overflow-hidden",
1146
- className
1147
- ),
1148
- ...props
1149
- }
1150
- );
1151
- }
1152
- function CommandInput({
1153
- className,
1154
- ...props
1155
- }) {
1156
- return /* @__PURE__ */ jsxs7("div", { "data-slot": "command-input-wrapper", className: "flex h-9 items-center gap-2 border-b px-3", children: [
1157
- /* @__PURE__ */ jsx19(Search, { className: "size-4 shrink-0 opacity-50" }),
1158
- /* @__PURE__ */ jsx19(
1159
- CommandPrimitive.Input,
1160
- {
1161
- "data-slot": "command-input",
1162
- className: cn(
1163
- "flex h-10 w-full rounded-md bg-transparent py-3 text-sm outline-none placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50",
1164
- className
1165
- ),
1166
- ...props
1167
- }
1168
- )
1169
- ] });
1170
- }
1171
- function CommandList({
1172
- className,
1173
- ...props
1174
- }) {
1175
- return /* @__PURE__ */ jsx19(
1176
- CommandPrimitive.List,
1177
- {
1178
- "data-slot": "command-list",
1179
- className: cn(
1180
- "no-scrollbar max-h-72 scroll-py-1 outline-none overflow-x-hidden overflow-y-auto",
1181
- className
1182
- ),
1183
- ...props
1184
- }
1185
- );
1186
- }
1187
- function CommandEmpty({
1188
- className,
1189
- ...props
1190
- }) {
1191
- return /* @__PURE__ */ jsx19(
1192
- CommandPrimitive.Empty,
1193
- {
1194
- "data-slot": "command-empty",
1195
- className: cn("py-6 text-center text-sm", className),
1196
- ...props
1197
- }
1198
- );
1199
- }
1200
- function CommandGroup({
1201
- className,
1202
- ...props
1203
- }) {
1204
- return /* @__PURE__ */ jsx19(
1205
- CommandPrimitive.Group,
1206
- {
1207
- "data-slot": "command-group",
1208
- className: cn(
1209
- "text-foreground overflow-hidden p-1 **:[[cmdk-group-heading]]:px-2 **:[[cmdk-group-heading]]:py-1.5 **:[[cmdk-group-heading]]:text-xs **:[[cmdk-group-heading]]:font-medium **:[[cmdk-group-heading]]:text-muted-foreground",
1210
- className
1211
- ),
1212
- ...props
1213
- }
1214
- );
1215
- }
1216
- function CommandSeparator({
1217
- className,
1218
- ...props
1219
- }) {
1220
- return /* @__PURE__ */ jsx19(
1221
- CommandPrimitive.Separator,
1222
- {
1223
- "data-slot": "command-separator",
1224
- className: cn("bg-border -mx-1 h-px w-auto", className),
1225
- ...props
1226
- }
1227
- );
1228
- }
1229
- function CommandItem({
1230
- className,
1231
- ...props
1232
- }) {
1233
- return /* @__PURE__ */ jsx19(
1234
- CommandPrimitive.Item,
1235
- {
1236
- "data-slot": "command-item",
1237
- className: cn(
1238
- "data-selected:bg-muted data-selected:text-foreground relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none [&_svg:not([class*='size-'])]:size-4 data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0",
1239
- className
1240
- ),
1241
- ...props
1242
- }
1243
- );
1244
- }
1245
- function CommandShortcut({
1246
- className,
1247
- ...props
1248
- }) {
1249
- return /* @__PURE__ */ jsx19(
1250
- "span",
1251
- {
1252
- "data-slot": "command-shortcut",
1253
- className: cn("text-muted-foreground ml-auto text-xs tracking-widest", className),
1254
- ...props
1255
- }
1256
- );
1257
- }
1258
-
1259
- // src/components/ui/sidebar.tsx
1260
- import * as React from "react";
1261
- import { cva as cva4 } from "class-variance-authority";
1262
- import { Slot as Slot3 } from "radix-ui";
1263
- import { PanelLeft } from "lucide-react";
1264
-
1265
- // src/hooks/use-mobile.ts
1266
- import { useEffect, useState } from "react";
1267
- var MOBILE_BREAKPOINT = 768;
1268
- function useIsMobile() {
1269
- const [isMobile, setIsMobile] = useState(void 0);
1270
- useEffect(() => {
1271
- const mql = window.matchMedia(`(max-width: ${MOBILE_BREAKPOINT - 1}px)`);
1272
- const onChange = () => setIsMobile(window.innerWidth < MOBILE_BREAKPOINT);
1273
- mql.addEventListener("change", onChange);
1274
- setIsMobile(window.innerWidth < MOBILE_BREAKPOINT);
1275
- return () => mql.removeEventListener("change", onChange);
1276
- }, []);
1277
- return !!isMobile;
1278
- }
1279
-
1280
- // src/components/ui/sheet.tsx
1281
- import { Dialog as SheetPrimitive } from "radix-ui";
1282
- import { X as X2 } from "lucide-react";
1283
- import { jsx as jsx20, jsxs as jsxs8 } from "react/jsx-runtime";
1284
- function Sheet({ ...props }) {
1285
- return /* @__PURE__ */ jsx20(SheetPrimitive.Root, { "data-slot": "sheet", ...props });
1286
- }
1287
- function SheetTrigger({
1288
- ...props
1289
- }) {
1290
- return /* @__PURE__ */ jsx20(SheetPrimitive.Trigger, { "data-slot": "sheet-trigger", ...props });
1291
- }
1292
- function SheetClose({
1293
- ...props
1294
- }) {
1295
- return /* @__PURE__ */ jsx20(SheetPrimitive.Close, { "data-slot": "sheet-close", ...props });
1296
- }
1297
- function SheetPortal({
1298
- ...props
1299
- }) {
1300
- return /* @__PURE__ */ jsx20(SheetPrimitive.Portal, { "data-slot": "sheet-portal", ...props });
1301
- }
1302
- function SheetOverlay({
1303
- className,
1304
- ...props
1305
- }) {
1306
- return /* @__PURE__ */ jsx20(
1307
- SheetPrimitive.Overlay,
2
+ import {
3
+ AlertDialog,
4
+ AlertDialogAction,
5
+ AlertDialogCancel,
6
+ AlertDialogContent,
7
+ AlertDialogDescription,
8
+ AlertDialogFooter,
9
+ AlertDialogHeader,
10
+ AlertDialogOverlay,
11
+ AlertDialogPortal,
12
+ AlertDialogTitle,
13
+ AlertDialogTrigger,
14
+ Avatar,
15
+ AvatarFallback,
16
+ AvatarImage,
17
+ Badge,
18
+ Breadcrumb,
19
+ BreadcrumbItem,
20
+ BreadcrumbLink,
21
+ BreadcrumbList,
22
+ BreadcrumbPage,
23
+ BreadcrumbSeparator,
24
+ Button,
25
+ Collapsible,
26
+ CollapsibleContent,
27
+ CollapsibleTrigger,
28
+ Dialog,
29
+ DialogClose,
30
+ DialogContent,
31
+ DialogDescription,
32
+ DialogFooter,
33
+ DialogHeader,
34
+ DialogOverlay,
35
+ DialogPortal,
36
+ DialogTitle,
37
+ DialogTrigger,
38
+ DropdownMenu,
39
+ DropdownMenuContent,
40
+ DropdownMenuGroup,
41
+ DropdownMenuItem,
42
+ DropdownMenuLabel,
43
+ DropdownMenuSeparator,
44
+ DropdownMenuTrigger,
45
+ Input,
46
+ Label,
47
+ Select,
48
+ SelectContent,
49
+ SelectGroup,
50
+ SelectItem,
51
+ SelectLabel,
52
+ SelectScrollDownButton,
53
+ SelectScrollUpButton,
54
+ SelectSeparator,
55
+ SelectTrigger,
56
+ SelectValue,
57
+ Separator,
58
+ Sheet,
59
+ SheetClose,
60
+ SheetContent,
61
+ SheetDescription,
62
+ SheetFooter,
63
+ SheetHeader,
64
+ SheetTitle,
65
+ SheetTrigger,
66
+ Sidebar,
67
+ SidebarContent,
68
+ SidebarFooter,
69
+ SidebarGroup,
70
+ SidebarGroupContent,
71
+ SidebarGroupLabel,
72
+ SidebarHeader,
73
+ SidebarInset,
74
+ SidebarMenu,
75
+ SidebarMenuButton,
76
+ SidebarMenuItem,
77
+ SidebarMenuSub,
78
+ SidebarMenuSubButton,
79
+ SidebarMenuSubItem,
80
+ SidebarProvider,
81
+ SidebarRail,
82
+ SidebarSeparator,
83
+ SidebarTrigger,
84
+ Skeleton,
85
+ Slider,
86
+ Table,
87
+ TableBody,
88
+ TableCaption,
89
+ TableCell,
90
+ TableFooter,
91
+ TableHead,
92
+ TableHeader,
93
+ TableRow,
94
+ Tooltip,
95
+ TooltipContent,
96
+ TooltipProvider,
97
+ TooltipTrigger,
98
+ badgeVariants,
99
+ buttonVariants,
100
+ cn,
101
+ useSidebar
102
+ } from "./chunk-OS2C4IWR.js";
103
+
104
+ // src/components/ui/textarea.tsx
105
+ import { jsx } from "react/jsx-runtime";
106
+ function Textarea({ className, ...props }) {
107
+ return /* @__PURE__ */ jsx(
108
+ "textarea",
1308
109
  {
1309
- "data-slot": "sheet-overlay",
1310
- className: cn("data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 bg-black/10 duration-100 data-ending-style:opacity-0 data-starting-style:opacity-0 supports-backdrop-filter:backdrop-blur-xs fixed inset-0 z-50", className),
110
+ "data-slot": "textarea",
111
+ className: cn(
112
+ "border-input dark:bg-input/30 focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:aria-invalid:border-destructive/50 rounded-md border bg-transparent px-2.5 py-2 text-base shadow-xs transition-[color,box-shadow] focus-visible:ring-3 aria-invalid:ring-3 md:text-sm placeholder:text-muted-foreground flex field-sizing-content min-h-16 w-full outline-none disabled:cursor-not-allowed disabled:opacity-50",
113
+ className
114
+ ),
1311
115
  ...props
1312
116
  }
1313
117
  );
1314
118
  }
1315
- function SheetContent({
119
+
120
+ // src/components/ui/card.tsx
121
+ import { jsx as jsx2 } from "react/jsx-runtime";
122
+ function Card({
1316
123
  className,
1317
- children,
1318
- side = "right",
1319
- showCloseButton = true,
124
+ size = "default",
1320
125
  ...props
1321
126
  }) {
1322
- return /* @__PURE__ */ jsxs8(SheetPortal, { children: [
1323
- /* @__PURE__ */ jsx20(SheetOverlay, {}),
1324
- /* @__PURE__ */ jsxs8(
1325
- SheetPrimitive.Content,
1326
- {
1327
- "data-slot": "sheet-content",
1328
- "data-side": side,
1329
- 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 gap-4 bg-clip-padding text-sm 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),
1330
- ...props,
1331
- children: [
1332
- children,
1333
- showCloseButton && /* @__PURE__ */ jsx20(SheetPrimitive.Close, { "data-slot": "sheet-close", asChild: true, children: /* @__PURE__ */ jsxs8(Button, { variant: "ghost", className: "absolute top-4 right-4", size: "icon-sm", children: [
1334
- /* @__PURE__ */ jsx20(X2, {}),
1335
- /* @__PURE__ */ jsx20("span", { className: "sr-only", children: "Close" })
1336
- ] }) })
1337
- ]
1338
- }
1339
- )
1340
- ] });
1341
- }
1342
- function SheetHeader({ className, ...props }) {
1343
- return /* @__PURE__ */ jsx20(
127
+ return /* @__PURE__ */ jsx2(
1344
128
  "div",
1345
129
  {
1346
- "data-slot": "sheet-header",
1347
- className: cn("gap-1.5 p-4 flex flex-col", className),
130
+ "data-slot": "card",
131
+ "data-size": size,
132
+ className: cn("ring-foreground/10 bg-card text-card-foreground gap-6 overflow-hidden rounded-xl py-6 text-sm shadow-xs ring-1 has-[>img:first-child]:pt-0 data-[size=sm]:gap-4 data-[size=sm]:py-4 *:[img:first-child]:rounded-t-xl *:[img:last-child]:rounded-b-xl group/card flex flex-col", className),
1348
133
  ...props
1349
134
  }
1350
135
  );
1351
136
  }
1352
- function SheetFooter({ className, ...props }) {
1353
- return /* @__PURE__ */ jsx20(
137
+ function CardHeader({ className, ...props }) {
138
+ return /* @__PURE__ */ jsx2(
1354
139
  "div",
1355
140
  {
1356
- "data-slot": "sheet-footer",
1357
- className: cn("gap-2 p-4 mt-auto flex flex-col", className),
141
+ "data-slot": "card-header",
142
+ className: cn(
143
+ "gap-1 rounded-t-xl px-6 group-data-[size=sm]/card:px-4 [.border-b]:pb-6 group-data-[size=sm]/card:[.border-b]:pb-4 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]",
144
+ className
145
+ ),
1358
146
  ...props
1359
147
  }
1360
148
  );
1361
149
  }
1362
- function SheetTitle({
1363
- className,
1364
- ...props
1365
- }) {
1366
- return /* @__PURE__ */ jsx20(
1367
- SheetPrimitive.Title,
150
+ function CardTitle({ className, ...props }) {
151
+ return /* @__PURE__ */ jsx2(
152
+ "div",
1368
153
  {
1369
- "data-slot": "sheet-title",
1370
- className: cn("text-foreground font-medium", className),
154
+ "data-slot": "card-title",
155
+ className: cn("text-base leading-normal font-medium group-data-[size=sm]/card:text-sm", className),
1371
156
  ...props
1372
157
  }
1373
158
  );
1374
159
  }
1375
- function SheetDescription({
1376
- className,
1377
- ...props
1378
- }) {
1379
- return /* @__PURE__ */ jsx20(
1380
- SheetPrimitive.Description,
160
+ function CardDescription({ className, ...props }) {
161
+ return /* @__PURE__ */ jsx2(
162
+ "div",
1381
163
  {
1382
- "data-slot": "sheet-description",
164
+ "data-slot": "card-description",
1383
165
  className: cn("text-muted-foreground text-sm", className),
1384
166
  ...props
1385
167
  }
1386
168
  );
1387
169
  }
1388
-
1389
- // src/components/ui/sidebar.tsx
1390
- import { jsx as jsx21, jsxs as jsxs9 } from "react/jsx-runtime";
1391
- var SIDEBAR_STORAGE_KEY = "sidebar_state";
1392
- var SIDEBAR_WIDTH = "16rem";
1393
- var SIDEBAR_WIDTH_MOBILE = "18rem";
1394
- var SIDEBAR_WIDTH_ICON = "3.5rem";
1395
- var SIDEBAR_KEYBOARD_SHORTCUT = "b";
1396
- var SidebarContext = React.createContext(null);
1397
- function useSidebar() {
1398
- const context = React.useContext(SidebarContext);
1399
- if (!context) {
1400
- throw new Error("useSidebar must be used within a SidebarProvider.");
1401
- }
1402
- return context;
170
+ function CardContent({ className, ...props }) {
171
+ return /* @__PURE__ */ jsx2(
172
+ "div",
173
+ {
174
+ "data-slot": "card-content",
175
+ className: cn("px-6 group-data-[size=sm]/card:px-4", className),
176
+ ...props
177
+ }
178
+ );
1403
179
  }
1404
- function SidebarProvider({
1405
- defaultOpen = true,
1406
- open: openProp,
1407
- onOpenChange: setOpenProp,
1408
- className,
1409
- style,
1410
- children,
1411
- ...props
1412
- }) {
1413
- const isMobile = useIsMobile();
1414
- const [openMobile, setOpenMobile] = React.useState(false);
1415
- const [_open, _setOpen] = React.useState(() => {
1416
- if (typeof window === "undefined") return defaultOpen;
1417
- const stored = localStorage.getItem(SIDEBAR_STORAGE_KEY);
1418
- if (stored === "true") return true;
1419
- if (stored === "false") return false;
1420
- return defaultOpen;
1421
- });
1422
- const open = openProp ?? _open;
1423
- const setOpen = React.useCallback(
1424
- (value) => {
1425
- const openState = typeof value === "function" ? value(open) : value;
1426
- if (setOpenProp) {
1427
- setOpenProp(openState);
1428
- } else {
1429
- _setOpen(openState);
1430
- }
1431
- try {
1432
- localStorage.setItem(SIDEBAR_STORAGE_KEY, String(openState));
1433
- } catch {
1434
- }
1435
- },
1436
- [setOpenProp, open]
1437
- );
1438
- const toggleSidebar = React.useCallback(() => {
1439
- return isMobile ? setOpenMobile((open2) => !open2) : setOpen((open2) => !open2);
1440
- }, [isMobile, setOpen, setOpenMobile]);
1441
- React.useEffect(() => {
1442
- const handleKeyDown = (event) => {
1443
- if (event.key === SIDEBAR_KEYBOARD_SHORTCUT && (event.metaKey || event.ctrlKey)) {
1444
- event.preventDefault();
1445
- toggleSidebar();
1446
- }
1447
- };
1448
- window.addEventListener("keydown", handleKeyDown);
1449
- return () => window.removeEventListener("keydown", handleKeyDown);
1450
- }, [toggleSidebar]);
1451
- const state = open ? "expanded" : "collapsed";
1452
- const contextValue = React.useMemo(
1453
- () => ({
1454
- state,
1455
- open,
1456
- setOpen,
1457
- isMobile,
1458
- openMobile,
1459
- setOpenMobile,
1460
- toggleSidebar
1461
- }),
1462
- [state, open, setOpen, isMobile, openMobile, setOpenMobile, toggleSidebar]
1463
- );
1464
- return /* @__PURE__ */ jsx21(SidebarContext.Provider, { value: contextValue, children: /* @__PURE__ */ jsx21(
180
+ function CardFooter({ className, ...props }) {
181
+ return /* @__PURE__ */ jsx2(
1465
182
  "div",
1466
183
  {
1467
- "data-slot": "sidebar-wrapper",
1468
- style: {
1469
- "--sidebar-width": SIDEBAR_WIDTH,
1470
- "--sidebar-width-icon": SIDEBAR_WIDTH_ICON,
1471
- ...style
1472
- },
1473
- className: cn(
1474
- "group/sidebar-wrapper has-data-[variant=inset]:bg-sidebar flex min-h-svh w-full",
1475
- className
1476
- ),
1477
- ...props,
1478
- children
184
+ "data-slot": "card-footer",
185
+ className: cn("rounded-b-xl px-6 group-data-[size=sm]/card:px-4 [.border-t]:pt-6 group-data-[size=sm]/card:[.border-t]:pt-4 flex items-center", className),
186
+ ...props
1479
187
  }
1480
- ) });
188
+ );
1481
189
  }
1482
- function Sidebar({
1483
- side = "left",
1484
- variant = "sidebar",
1485
- collapsible = "offcanvas",
190
+
191
+ // src/components/ui/scroll-area.tsx
192
+ import { ScrollArea as ScrollAreaPrimitive } from "radix-ui";
193
+ import { jsx as jsx3, jsxs } from "react/jsx-runtime";
194
+ function ScrollArea({
1486
195
  className,
1487
196
  children,
1488
- dir,
1489
197
  ...props
1490
198
  }) {
1491
- const { isMobile, state, openMobile, setOpenMobile } = useSidebar();
1492
- if (collapsible === "none") {
1493
- return /* @__PURE__ */ jsx21(
1494
- "div",
1495
- {
1496
- "data-slot": "sidebar",
1497
- className: cn(
1498
- "bg-sidebar text-sidebar-foreground flex h-full w-(--sidebar-width) flex-col",
1499
- className
1500
- ),
1501
- ...props,
1502
- children
1503
- }
1504
- );
1505
- }
1506
- if (isMobile) {
1507
- return /* @__PURE__ */ jsx21(Sheet, { open: openMobile, onOpenChange: setOpenMobile, ...props, children: /* @__PURE__ */ jsxs9(
1508
- SheetContent,
1509
- {
1510
- dir,
1511
- "data-sidebar": "sidebar",
1512
- "data-slot": "sidebar",
1513
- "data-mobile": "true",
1514
- className: "bg-sidebar text-sidebar-foreground w-(--sidebar-width) p-0 [&>button]:hidden",
1515
- style: {
1516
- "--sidebar-width": SIDEBAR_WIDTH_MOBILE
1517
- },
1518
- side,
1519
- children: [
1520
- /* @__PURE__ */ jsxs9(SheetHeader, { className: "sr-only", children: [
1521
- /* @__PURE__ */ jsx21(SheetTitle, { children: "Sidebar" }),
1522
- /* @__PURE__ */ jsx21(SheetDescription, { children: "Displays the mobile sidebar." })
1523
- ] }),
1524
- /* @__PURE__ */ jsx21("div", { className: "flex h-full w-full flex-col", children })
1525
- ]
1526
- }
1527
- ) });
1528
- }
1529
- return /* @__PURE__ */ jsxs9(
1530
- "div",
199
+ return /* @__PURE__ */ jsxs(
200
+ ScrollAreaPrimitive.Root,
1531
201
  {
1532
- className: "group peer text-sidebar-foreground hidden md:block",
1533
- "data-state": state,
1534
- "data-collapsible": state === "collapsed" ? collapsible : "",
1535
- "data-variant": variant,
1536
- "data-side": side,
1537
- "data-slot": "sidebar",
202
+ "data-slot": "scroll-area",
203
+ className: cn("relative", className),
204
+ ...props,
1538
205
  children: [
1539
- /* @__PURE__ */ jsx21(
1540
- "div",
206
+ /* @__PURE__ */ jsx3(
207
+ ScrollAreaPrimitive.Viewport,
1541
208
  {
1542
- "data-slot": "sidebar-gap",
1543
- className: cn(
1544
- "transition-[width] duration-200 ease-linear relative w-(--sidebar-width) bg-transparent",
1545
- "group-data-[collapsible=offcanvas]:w-0",
1546
- "group-data-[side=right]:rotate-180",
1547
- variant === "floating" || variant === "inset" ? "group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4)))]" : "group-data-[collapsible=icon]:w-(--sidebar-width-icon)"
1548
- )
209
+ "data-slot": "scroll-area-viewport",
210
+ className: "focus-visible:ring-ring/50 size-full rounded-[inherit] transition-[color,box-shadow] outline-none focus-visible:ring-[3px] focus-visible:outline-1",
211
+ children
1549
212
  }
1550
213
  ),
1551
- /* @__PURE__ */ jsx21(
1552
- "div",
1553
- {
1554
- "data-slot": "sidebar-container",
1555
- "data-side": side,
1556
- className: cn(
1557
- "fixed inset-y-0 z-10 hidden h-svh w-(--sidebar-width) transition-[left,right,width] duration-200 ease-linear data-[side=left]:left-0 data-[side=left]:group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)] data-[side=right]:right-0 data-[side=right]:group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)] md:flex",
1558
- // Adjust the padding for floating and inset variants.
1559
- 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",
1560
- className
1561
- ),
1562
- ...props,
1563
- children: /* @__PURE__ */ jsx21(
1564
- "div",
1565
- {
1566
- "data-sidebar": "sidebar",
1567
- "data-slot": "sidebar-inner",
1568
- 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",
1569
- children
1570
- }
1571
- )
1572
- }
1573
- )
214
+ /* @__PURE__ */ jsx3(ScrollBar, {}),
215
+ /* @__PURE__ */ jsx3(ScrollAreaPrimitive.Corner, {})
1574
216
  ]
1575
217
  }
1576
218
  );
1577
219
  }
1578
- function SidebarTrigger({
220
+ function ScrollBar({
1579
221
  className,
1580
- onClick,
222
+ orientation = "vertical",
1581
223
  ...props
1582
224
  }) {
1583
- const { toggleSidebar } = useSidebar();
1584
- return /* @__PURE__ */ jsxs9(
1585
- Button,
225
+ return /* @__PURE__ */ jsx3(
226
+ ScrollAreaPrimitive.ScrollAreaScrollbar,
1586
227
  {
1587
- "data-sidebar": "trigger",
1588
- "data-slot": "sidebar-trigger",
1589
- variant: "ghost",
1590
- size: "icon-sm",
1591
- className: cn(className),
1592
- onClick: (event) => {
1593
- onClick?.(event);
1594
- toggleSidebar();
1595
- },
1596
- ...props,
1597
- children: [
1598
- /* @__PURE__ */ jsx21(PanelLeft, {}),
1599
- /* @__PURE__ */ jsx21("span", { className: "sr-only", children: "Toggle Sidebar" })
1600
- ]
1601
- }
1602
- );
1603
- }
1604
- function SidebarRail({ className, ...props }) {
1605
- const { toggleSidebar } = useSidebar();
1606
- return /* @__PURE__ */ jsx21(
1607
- "button",
1608
- {
1609
- "data-sidebar": "rail",
1610
- "data-slot": "sidebar-rail",
1611
- "aria-label": "Toggle Sidebar",
1612
- tabIndex: -1,
1613
- onClick: toggleSidebar,
1614
- title: "Toggle Sidebar",
228
+ "data-slot": "scroll-area-scrollbar",
229
+ "data-orientation": orientation,
230
+ orientation,
1615
231
  className: cn(
1616
- "hover:after:bg-sidebar-border absolute inset-y-0 z-20 hidden w-4 transition-all ease-linear group-data-[side=left]:-right-4 group-data-[side=right]:left-0 after:absolute after:inset-y-0 after:start-1/2 after:w-[2px] sm:flex ltr:-translate-x-1/2 rtl:-translate-x-1/2",
1617
- "in-data-[side=left]:cursor-w-resize in-data-[side=right]:cursor-e-resize",
1618
- "[[data-side=left][data-state=collapsed]_&]:cursor-e-resize [[data-side=right][data-state=collapsed]_&]:cursor-w-resize",
1619
- "hover:group-data-[collapsible=offcanvas]:bg-sidebar group-data-[collapsible=offcanvas]:translate-x-0 group-data-[collapsible=offcanvas]:after:left-full",
1620
- "[[data-side=left][data-collapsible=offcanvas]_&]:-right-2",
1621
- "[[data-side=right][data-collapsible=offcanvas]_&]:-left-2",
232
+ "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",
1622
233
  className
1623
234
  ),
1624
- ...props
235
+ ...props,
236
+ children: /* @__PURE__ */ jsx3(
237
+ ScrollAreaPrimitive.ScrollAreaThumb,
238
+ {
239
+ "data-slot": "scroll-area-thumb",
240
+ className: "rounded-full bg-border relative flex-1"
241
+ }
242
+ )
1625
243
  }
1626
244
  );
1627
245
  }
1628
- function SidebarInset({ className, ...props }) {
1629
- return /* @__PURE__ */ jsx21(
1630
- "main",
246
+
247
+ // src/components/ui/tabs.tsx
248
+ import { cva } from "class-variance-authority";
249
+ import { Tabs as TabsPrimitive } from "radix-ui";
250
+ import { jsx as jsx4 } from "react/jsx-runtime";
251
+ function Tabs({
252
+ className,
253
+ orientation = "horizontal",
254
+ ...props
255
+ }) {
256
+ return /* @__PURE__ */ jsx4(
257
+ TabsPrimitive.Root,
1631
258
  {
1632
- "data-slot": "sidebar-inset",
259
+ "data-slot": "tabs",
260
+ "data-orientation": orientation,
1633
261
  className: cn(
1634
- "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",
262
+ "gap-2 group/tabs flex data-horizontal:flex-col",
1635
263
  className
1636
264
  ),
1637
265
  ...props
1638
266
  }
1639
267
  );
1640
268
  }
1641
- function SidebarHeader({ className, ...props }) {
1642
- return /* @__PURE__ */ jsx21(
1643
- "div",
269
+ var tabsListVariants = cva(
270
+ "rounded-lg p-[3px] group-data-horizontal/tabs:h-9 data-[variant=line]:rounded-none group/tabs-list text-muted-foreground inline-flex w-fit items-center justify-center group-data-vertical/tabs:h-fit group-data-vertical/tabs:flex-col",
271
+ {
272
+ variants: {
273
+ variant: {
274
+ default: "bg-muted",
275
+ line: "gap-1 bg-transparent"
276
+ }
277
+ },
278
+ defaultVariants: {
279
+ variant: "default"
280
+ }
281
+ }
282
+ );
283
+ function TabsList({
284
+ className,
285
+ variant = "default",
286
+ ...props
287
+ }) {
288
+ return /* @__PURE__ */ jsx4(
289
+ TabsPrimitive.List,
1644
290
  {
1645
- "data-slot": "sidebar-header",
1646
- "data-sidebar": "header",
1647
- className: cn("gap-2 p-2 flex flex-col", className),
291
+ "data-slot": "tabs-list",
292
+ "data-variant": variant,
293
+ className: cn(tabsListVariants({ variant }), className),
1648
294
  ...props
1649
295
  }
1650
296
  );
1651
297
  }
1652
- function SidebarFooter({ className, ...props }) {
1653
- return /* @__PURE__ */ jsx21(
1654
- "div",
298
+ function TabsTrigger({
299
+ className,
300
+ ...props
301
+ }) {
302
+ return /* @__PURE__ */ jsx4(
303
+ TabsPrimitive.Trigger,
1655
304
  {
1656
- "data-slot": "sidebar-footer",
1657
- "data-sidebar": "footer",
1658
- className: cn("gap-2 p-2 flex flex-col", className),
305
+ "data-slot": "tabs-trigger",
306
+ className: cn(
307
+ "gap-1.5 rounded-md border border-transparent px-2 py-1 text-sm font-medium group-data-[variant=default]/tabs-list:data-active:shadow-sm group-data-[variant=line]/tabs-list:data-active:shadow-none [&_svg:not([class*='size-'])]:size-4 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-vertical/tabs:w-full group-data-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",
308
+ "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",
309
+ "data-active:bg-background dark:data-active:text-foreground dark:data-active:border-input dark:data-active:bg-input/30 data-active:text-foreground",
310
+ "after:bg-foreground after:absolute after:opacity-0 after:transition-opacity group-data-horizontal/tabs:after:inset-x-0 group-data-horizontal/tabs:after:bottom-[-5px] group-data-horizontal/tabs:after:h-0.5 group-data-vertical/tabs:after:inset-y-0 group-data-vertical/tabs:after:-right-1 group-data-vertical/tabs:after:w-0.5 group-data-[variant=line]/tabs-list:data-active:after:opacity-100",
311
+ className
312
+ ),
1659
313
  ...props
1660
314
  }
1661
315
  );
1662
316
  }
1663
- function SidebarSeparator({
317
+ function TabsContent({
1664
318
  className,
1665
319
  ...props
1666
320
  }) {
1667
- return /* @__PURE__ */ jsx21(
1668
- Separator,
321
+ return /* @__PURE__ */ jsx4(
322
+ TabsPrimitive.Content,
1669
323
  {
1670
- "data-slot": "sidebar-separator",
1671
- "data-sidebar": "separator",
1672
- className: cn("bg-sidebar-border mx-2 w-auto", className),
324
+ "data-slot": "tabs-content",
325
+ className: cn("text-sm flex-1 outline-none", className),
1673
326
  ...props
1674
327
  }
1675
328
  );
1676
329
  }
1677
- function SidebarContent({ className, ...props }) {
1678
- return /* @__PURE__ */ jsx21(
1679
- "div",
330
+
331
+ // src/components/ui/progress.tsx
332
+ import { Progress as ProgressPrimitive } from "radix-ui";
333
+ import { jsx as jsx5 } from "react/jsx-runtime";
334
+ function Progress({
335
+ className,
336
+ value,
337
+ ...props
338
+ }) {
339
+ return /* @__PURE__ */ jsx5(
340
+ ProgressPrimitive.Root,
1680
341
  {
1681
- "data-slot": "sidebar-content",
1682
- "data-sidebar": "content",
342
+ "data-slot": "progress",
1683
343
  className: cn(
1684
- "no-scrollbar gap-2 flex min-h-0 flex-1 flex-col overflow-auto group-data-[collapsible=icon]:overflow-hidden",
344
+ "bg-muted h-1.5 rounded-full relative flex w-full items-center overflow-x-hidden",
1685
345
  className
1686
346
  ),
1687
- ...props
347
+ ...props,
348
+ children: /* @__PURE__ */ jsx5(
349
+ ProgressPrimitive.Indicator,
350
+ {
351
+ "data-slot": "progress-indicator",
352
+ className: "bg-primary size-full flex-1 transition-all",
353
+ style: { transform: `translateX(-${100 - (value || 0)}%)` }
354
+ }
355
+ )
1688
356
  }
1689
357
  );
1690
358
  }
1691
- function SidebarGroup({ className, ...props }) {
1692
- return /* @__PURE__ */ jsx21(
1693
- "div",
359
+
360
+ // src/components/ui/command.tsx
361
+ import { Command as CommandPrimitive } from "cmdk";
362
+ import { Search } from "lucide-react";
363
+ import { jsx as jsx6, jsxs as jsxs2 } from "react/jsx-runtime";
364
+ function Command({
365
+ className,
366
+ ...props
367
+ }) {
368
+ return /* @__PURE__ */ jsx6(
369
+ CommandPrimitive,
1694
370
  {
1695
- "data-slot": "sidebar-group",
1696
- "data-sidebar": "group",
371
+ "data-slot": "command",
1697
372
  className: cn(
1698
- "p-2 relative flex w-full min-w-0 flex-col",
373
+ "bg-popover text-popover-foreground rounded-xl p-1 flex size-full flex-col overflow-hidden",
1699
374
  className
1700
375
  ),
1701
376
  ...props
1702
377
  }
1703
378
  );
1704
379
  }
1705
- function SidebarGroupLabel({
380
+ function CommandInput({
381
+ className,
382
+ ...props
383
+ }) {
384
+ return /* @__PURE__ */ jsxs2("div", { "data-slot": "command-input-wrapper", className: "flex h-9 items-center gap-2 border-b px-3", children: [
385
+ /* @__PURE__ */ jsx6(Search, { className: "size-4 shrink-0 opacity-50" }),
386
+ /* @__PURE__ */ jsx6(
387
+ CommandPrimitive.Input,
388
+ {
389
+ "data-slot": "command-input",
390
+ className: cn(
391
+ "flex h-10 w-full rounded-md bg-transparent py-3 text-sm outline-none placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50",
392
+ className
393
+ ),
394
+ ...props
395
+ }
396
+ )
397
+ ] });
398
+ }
399
+ function CommandList({
1706
400
  className,
1707
- asChild = false,
1708
401
  ...props
1709
402
  }) {
1710
- const Comp = asChild ? Slot3.Root : "div";
1711
- return /* @__PURE__ */ jsx21(
1712
- Comp,
403
+ return /* @__PURE__ */ jsx6(
404
+ CommandPrimitive.List,
1713
405
  {
1714
- "data-slot": "sidebar-group-label",
1715
- "data-sidebar": "group-label",
406
+ "data-slot": "command-list",
1716
407
  className: cn(
1717
- "text-sidebar-foreground/70 ring-sidebar-ring h-8 rounded-md px-2 text-xs font-medium 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",
408
+ "no-scrollbar max-h-72 scroll-py-1 outline-none overflow-x-hidden overflow-y-auto",
1718
409
  className
1719
410
  ),
1720
411
  ...props
1721
412
  }
1722
413
  );
1723
414
  }
1724
- function SidebarGroupContent({
415
+ function CommandEmpty({
1725
416
  className,
1726
417
  ...props
1727
418
  }) {
1728
- return /* @__PURE__ */ jsx21(
1729
- "div",
1730
- {
1731
- "data-slot": "sidebar-group-content",
1732
- "data-sidebar": "group-content",
1733
- className: cn("text-sm w-full", className),
1734
- ...props
1735
- }
1736
- );
1737
- }
1738
- function SidebarMenu({ className, ...props }) {
1739
- return /* @__PURE__ */ jsx21(
1740
- "ul",
1741
- {
1742
- "data-slot": "sidebar-menu",
1743
- "data-sidebar": "menu",
1744
- className: cn("gap-1 flex w-full min-w-0 flex-col", className),
1745
- ...props
1746
- }
1747
- );
1748
- }
1749
- function SidebarMenuItem({ className, ...props }) {
1750
- return /* @__PURE__ */ jsx21(
1751
- "li",
419
+ return /* @__PURE__ */ jsx6(
420
+ CommandPrimitive.Empty,
1752
421
  {
1753
- "data-slot": "sidebar-menu-item",
1754
- "data-sidebar": "menu-item",
1755
- className: cn("group/menu-item relative", className),
422
+ "data-slot": "command-empty",
423
+ className: cn("py-6 text-center text-sm", className),
1756
424
  ...props
1757
425
  }
1758
426
  );
1759
427
  }
1760
- var sidebarMenuButtonVariants = cva4(
1761
- "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-md p-2 text-left text-sm 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 group/menu-button 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",
1762
- {
1763
- variants: {
1764
- variant: {
1765
- default: "hover:bg-sidebar-accent hover:text-sidebar-accent-foreground",
1766
- 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))]"
1767
- },
1768
- size: {
1769
- default: "h-8 text-sm",
1770
- sm: "h-7 text-xs",
1771
- lg: "h-12 text-sm group-data-[collapsible=icon]:p-0!"
1772
- }
1773
- },
1774
- defaultVariants: {
1775
- variant: "default",
1776
- size: "default"
1777
- }
1778
- }
1779
- );
1780
- function SidebarMenuButton({
1781
- asChild = false,
1782
- isActive = false,
1783
- variant = "default",
1784
- size = "default",
1785
- tooltip,
428
+ function CommandGroup({
1786
429
  className,
1787
430
  ...props
1788
431
  }) {
1789
- const Comp = asChild ? Slot3.Root : "button";
1790
- const { isMobile, state } = useSidebar();
1791
- const button = /* @__PURE__ */ jsx21(
1792
- Comp,
432
+ return /* @__PURE__ */ jsx6(
433
+ CommandPrimitive.Group,
1793
434
  {
1794
- "data-slot": "sidebar-menu-button",
1795
- "data-sidebar": "menu-button",
1796
- "data-size": size,
1797
- "data-active": isActive,
1798
- className: cn(sidebarMenuButtonVariants({ variant, size }), className),
435
+ "data-slot": "command-group",
436
+ className: cn(
437
+ "text-foreground overflow-hidden p-1 **:[[cmdk-group-heading]]:px-2 **:[[cmdk-group-heading]]:py-1.5 **:[[cmdk-group-heading]]:text-xs **:[[cmdk-group-heading]]:font-medium **:[[cmdk-group-heading]]:text-muted-foreground",
438
+ className
439
+ ),
1799
440
  ...props
1800
441
  }
1801
442
  );
1802
- if (!tooltip) {
1803
- return button;
1804
- }
1805
- if (typeof tooltip === "string") {
1806
- tooltip = {
1807
- children: tooltip
1808
- };
1809
- }
1810
- return /* @__PURE__ */ jsxs9(Tooltip, { children: [
1811
- /* @__PURE__ */ jsx21(TooltipTrigger, { asChild: true, children: button }),
1812
- /* @__PURE__ */ jsx21(
1813
- TooltipContent,
1814
- {
1815
- side: "right",
1816
- align: "center",
1817
- hidden: state !== "collapsed" || isMobile,
1818
- ...tooltip
1819
- }
1820
- )
1821
- ] });
1822
443
  }
1823
- function SidebarMenuSub({ className, ...props }) {
1824
- return /* @__PURE__ */ jsx21(
1825
- "ul",
444
+ function CommandSeparator({
445
+ className,
446
+ ...props
447
+ }) {
448
+ return /* @__PURE__ */ jsx6(
449
+ CommandPrimitive.Separator,
1826
450
  {
1827
- "data-slot": "sidebar-menu-sub",
1828
- "data-sidebar": "menu-sub",
1829
- 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),
451
+ "data-slot": "command-separator",
452
+ className: cn("bg-border -mx-1 h-px w-auto", className),
1830
453
  ...props
1831
454
  }
1832
455
  );
1833
456
  }
1834
- function SidebarMenuSubItem({
457
+ function CommandItem({
1835
458
  className,
1836
459
  ...props
1837
460
  }) {
1838
- return /* @__PURE__ */ jsx21(
1839
- "li",
461
+ return /* @__PURE__ */ jsx6(
462
+ CommandPrimitive.Item,
1840
463
  {
1841
- "data-slot": "sidebar-menu-sub-item",
1842
- "data-sidebar": "menu-sub-item",
1843
- className: cn("group/menu-sub-item relative", className),
464
+ "data-slot": "command-item",
465
+ className: cn(
466
+ "data-selected:bg-muted data-selected:text-foreground relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none [&_svg:not([class*='size-'])]:size-4 data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0",
467
+ className
468
+ ),
1844
469
  ...props
1845
470
  }
1846
471
  );
1847
472
  }
1848
- function SidebarMenuSubButton({
1849
- asChild = false,
1850
- size = "md",
1851
- isActive = false,
473
+ function CommandShortcut({
1852
474
  className,
1853
475
  ...props
1854
476
  }) {
1855
- const Comp = asChild ? Slot3.Root : "a";
1856
- return /* @__PURE__ */ jsx21(
1857
- Comp,
477
+ return /* @__PURE__ */ jsx6(
478
+ "span",
1858
479
  {
1859
- "data-slot": "sidebar-menu-sub-button",
1860
- "data-sidebar": "menu-sub-button",
1861
- "data-size": size,
1862
- "data-active": isActive,
1863
- className: cn(
1864
- "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-sm 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",
1865
- className
1866
- ),
480
+ "data-slot": "command-shortcut",
481
+ className: cn("text-muted-foreground ml-auto text-xs tracking-widest", className),
1867
482
  ...props
1868
483
  }
1869
484
  );
1870
485
  }
1871
486
 
1872
487
  // src/components/ui/alert.tsx
1873
- import { cva as cva5 } from "class-variance-authority";
1874
- import { jsx as jsx22 } from "react/jsx-runtime";
1875
- var alertVariants = cva5("grid gap-0.5 rounded-lg border px-4 py-3 text-left text-sm has-data-[slot=alert-action]:relative has-data-[slot=alert-action]:pr-18 has-[>svg]:grid-cols-[auto_1fr] has-[>svg]:gap-x-2.5 *:[svg]:row-span-2 *:[svg]:translate-y-0.5 *:[svg]:text-current *:[svg:not([class*='size-'])]:size-4 w-full relative group/alert", {
488
+ import { cva as cva2 } from "class-variance-authority";
489
+ import { jsx as jsx7 } from "react/jsx-runtime";
490
+ var alertVariants = cva2("grid gap-0.5 rounded-lg border px-4 py-3 text-left text-sm has-data-[slot=alert-action]:relative has-data-[slot=alert-action]:pr-18 has-[>svg]:grid-cols-[auto_1fr] has-[>svg]:gap-x-2.5 *:[svg]:row-span-2 *:[svg]:translate-y-0.5 *:[svg]:text-current *:[svg:not([class*='size-'])]:size-4 w-full relative group/alert", {
1876
491
  variants: {
1877
492
  variant: {
1878
493
  default: "bg-card text-card-foreground",
@@ -1888,7 +503,7 @@ function Alert({
1888
503
  variant,
1889
504
  ...props
1890
505
  }) {
1891
- return /* @__PURE__ */ jsx22(
506
+ return /* @__PURE__ */ jsx7(
1892
507
  "div",
1893
508
  {
1894
509
  "data-slot": "alert",
@@ -1899,7 +514,7 @@ function Alert({
1899
514
  );
1900
515
  }
1901
516
  function AlertTitle({ className, ...props }) {
1902
- return /* @__PURE__ */ jsx22(
517
+ return /* @__PURE__ */ jsx7(
1903
518
  "div",
1904
519
  {
1905
520
  "data-slot": "alert-title",
@@ -1915,7 +530,7 @@ function AlertDescription({
1915
530
  className,
1916
531
  ...props
1917
532
  }) {
1918
- return /* @__PURE__ */ jsx22(
533
+ return /* @__PURE__ */ jsx7(
1919
534
  "div",
1920
535
  {
1921
536
  "data-slot": "alert-description",
@@ -1928,135 +543,15 @@ function AlertDescription({
1928
543
  );
1929
544
  }
1930
545
 
1931
- // src/components/ui/breadcrumb.tsx
1932
- import { Slot as Slot4 } from "radix-ui";
1933
- import { ChevronRight as ChevronRight2, MoreHorizontal } from "lucide-react";
1934
- import { jsx as jsx23, jsxs as jsxs10 } from "react/jsx-runtime";
1935
- function Breadcrumb({ className, ...props }) {
1936
- return /* @__PURE__ */ jsx23(
1937
- "nav",
1938
- {
1939
- "aria-label": "breadcrumb",
1940
- "data-slot": "breadcrumb",
1941
- className: cn(className),
1942
- ...props
1943
- }
1944
- );
1945
- }
1946
- function BreadcrumbList({ className, ...props }) {
1947
- return /* @__PURE__ */ jsx23(
1948
- "ol",
1949
- {
1950
- "data-slot": "breadcrumb-list",
1951
- className: cn(
1952
- "text-muted-foreground gap-1.5 text-sm sm:gap-2.5 flex flex-wrap items-center wrap-break-word",
1953
- className
1954
- ),
1955
- ...props
1956
- }
1957
- );
1958
- }
1959
- function BreadcrumbItem({ className, ...props }) {
1960
- return /* @__PURE__ */ jsx23(
1961
- "li",
1962
- {
1963
- "data-slot": "breadcrumb-item",
1964
- className: cn("gap-1.5 inline-flex items-center", className),
1965
- ...props
1966
- }
1967
- );
1968
- }
1969
- function BreadcrumbLink({
1970
- asChild,
1971
- className,
1972
- ...props
1973
- }) {
1974
- const Comp = asChild ? Slot4.Root : "a";
1975
- return /* @__PURE__ */ jsx23(
1976
- Comp,
1977
- {
1978
- "data-slot": "breadcrumb-link",
1979
- className: cn("hover:text-foreground transition-colors", className),
1980
- ...props
1981
- }
1982
- );
1983
- }
1984
- function BreadcrumbPage({ className, ...props }) {
1985
- return /* @__PURE__ */ jsx23(
1986
- "span",
1987
- {
1988
- "data-slot": "breadcrumb-page",
1989
- role: "link",
1990
- "aria-disabled": "true",
1991
- "aria-current": "page",
1992
- className: cn("text-foreground font-normal", className),
1993
- ...props
1994
- }
1995
- );
1996
- }
1997
- function BreadcrumbSeparator({
1998
- children,
1999
- className,
2000
- ...props
2001
- }) {
2002
- return /* @__PURE__ */ jsx23(
2003
- "li",
2004
- {
2005
- "data-slot": "breadcrumb-separator",
2006
- role: "presentation",
2007
- "aria-hidden": "true",
2008
- className: cn("[&>svg]:size-3.5", className),
2009
- ...props,
2010
- children: children ?? /* @__PURE__ */ jsx23(ChevronRight2, {})
2011
- }
2012
- );
2013
- }
2014
-
2015
- // src/components/ui/collapsible.tsx
2016
- import { Collapsible as CollapsiblePrimitive } from "radix-ui";
2017
- import { jsx as jsx24 } from "react/jsx-runtime";
2018
- function Collapsible({
2019
- ...props
2020
- }) {
2021
- return /* @__PURE__ */ jsx24(CollapsiblePrimitive.Root, { "data-slot": "collapsible", ...props });
2022
- }
2023
- function CollapsibleTrigger({
2024
- ...props
2025
- }) {
2026
- return /* @__PURE__ */ jsx24(
2027
- CollapsiblePrimitive.CollapsibleTrigger,
2028
- {
2029
- "data-slot": "collapsible-trigger",
2030
- ...props
2031
- }
2032
- );
2033
- }
2034
- function CollapsibleContent({
2035
- className,
2036
- ...props
2037
- }) {
2038
- return /* @__PURE__ */ jsx24(
2039
- CollapsiblePrimitive.CollapsibleContent,
2040
- {
2041
- "data-slot": "collapsible-content",
2042
- className: cn(
2043
- "overflow-hidden data-[state=closed]:animate-collapsible-up data-[state=open]:animate-collapsible-down",
2044
- className
2045
- ),
2046
- ...props
2047
- }
2048
- );
2049
- }
2050
-
2051
546
  // src/components/ui/checkbox.tsx
2052
547
  import { Checkbox as CheckboxPrimitive } from "radix-ui";
2053
- import { Check as Check3 } from "lucide-react";
2054
- import { jsx as jsx25 } from "react/jsx-runtime";
548
+ import { Check } from "lucide-react";
549
+ import { jsx as jsx8 } from "react/jsx-runtime";
2055
550
  function Checkbox({
2056
551
  className,
2057
552
  ...props
2058
553
  }) {
2059
- return /* @__PURE__ */ jsx25(
554
+ return /* @__PURE__ */ jsx8(
2060
555
  CheckboxPrimitive.Root,
2061
556
  {
2062
557
  "data-slot": "checkbox",
@@ -2065,13 +560,13 @@ function Checkbox({
2065
560
  className
2066
561
  ),
2067
562
  ...props,
2068
- children: /* @__PURE__ */ jsx25(
563
+ children: /* @__PURE__ */ jsx8(
2069
564
  CheckboxPrimitive.Indicator,
2070
565
  {
2071
566
  "data-slot": "checkbox-indicator",
2072
567
  className: "[&>svg]:size-3.5 grid place-content-center text-current transition-none",
2073
- children: /* @__PURE__ */ jsx25(
2074
- Check3,
568
+ children: /* @__PURE__ */ jsx8(
569
+ Check,
2075
570
  {}
2076
571
  )
2077
572
  }
@@ -2082,16 +577,16 @@ function Checkbox({
2082
577
 
2083
578
  // src/components/ui/popover.tsx
2084
579
  import { Popover as PopoverPrimitive } from "radix-ui";
2085
- import { jsx as jsx26 } from "react/jsx-runtime";
580
+ import { jsx as jsx9 } from "react/jsx-runtime";
2086
581
  function Popover({
2087
582
  ...props
2088
583
  }) {
2089
- return /* @__PURE__ */ jsx26(PopoverPrimitive.Root, { "data-slot": "popover", ...props });
584
+ return /* @__PURE__ */ jsx9(PopoverPrimitive.Root, { "data-slot": "popover", ...props });
2090
585
  }
2091
586
  function PopoverTrigger({
2092
587
  ...props
2093
588
  }) {
2094
- return /* @__PURE__ */ jsx26(PopoverPrimitive.Trigger, { "data-slot": "popover-trigger", ...props });
589
+ return /* @__PURE__ */ jsx9(PopoverPrimitive.Trigger, { "data-slot": "popover-trigger", ...props });
2095
590
  }
2096
591
  function PopoverContent({
2097
592
  className,
@@ -2099,7 +594,7 @@ function PopoverContent({
2099
594
  sideOffset = 4,
2100
595
  ...props
2101
596
  }) {
2102
- return /* @__PURE__ */ jsx26(PopoverPrimitive.Portal, { children: /* @__PURE__ */ jsx26(
597
+ return /* @__PURE__ */ jsx9(PopoverPrimitive.Portal, { children: /* @__PURE__ */ jsx9(
2103
598
  PopoverPrimitive.Content,
2104
599
  {
2105
600
  "data-slot": "popover-content",
@@ -2116,10 +611,10 @@ function PopoverContent({
2116
611
  function PopoverAnchor({
2117
612
  ...props
2118
613
  }) {
2119
- return /* @__PURE__ */ jsx26(PopoverPrimitive.Anchor, { "data-slot": "popover-anchor", ...props });
614
+ return /* @__PURE__ */ jsx9(PopoverPrimitive.Anchor, { "data-slot": "popover-anchor", ...props });
2120
615
  }
2121
616
  function PopoverHeader({ className, ...props }) {
2122
- return /* @__PURE__ */ jsx26(
617
+ return /* @__PURE__ */ jsx9(
2123
618
  "div",
2124
619
  {
2125
620
  "data-slot": "popover-header",
@@ -2129,7 +624,7 @@ function PopoverHeader({ className, ...props }) {
2129
624
  );
2130
625
  }
2131
626
  function PopoverTitle({ className, ...props }) {
2132
- return /* @__PURE__ */ jsx26(
627
+ return /* @__PURE__ */ jsx9(
2133
628
  "div",
2134
629
  {
2135
630
  "data-slot": "popover-title",
@@ -2142,7 +637,7 @@ function PopoverDescription({
2142
637
  className,
2143
638
  ...props
2144
639
  }) {
2145
- return /* @__PURE__ */ jsx26(
640
+ return /* @__PURE__ */ jsx9(
2146
641
  "p",
2147
642
  {
2148
643
  "data-slot": "popover-description",
@@ -2154,13 +649,13 @@ function PopoverDescription({
2154
649
 
2155
650
  // src/components/ui/accordion.tsx
2156
651
  import { Accordion as AccordionPrimitive } from "radix-ui";
2157
- import { ChevronDown as ChevronDown2, ChevronUp as ChevronUp2 } from "lucide-react";
2158
- import { jsx as jsx27, jsxs as jsxs11 } from "react/jsx-runtime";
652
+ import { ChevronDown, ChevronUp } from "lucide-react";
653
+ import { jsx as jsx10, jsxs as jsxs3 } from "react/jsx-runtime";
2159
654
  function Accordion({
2160
655
  className,
2161
656
  ...props
2162
657
  }) {
2163
- return /* @__PURE__ */ jsx27(
658
+ return /* @__PURE__ */ jsx10(
2164
659
  AccordionPrimitive.Root,
2165
660
  {
2166
661
  "data-slot": "accordion",
@@ -2173,7 +668,7 @@ function AccordionItem({
2173
668
  className,
2174
669
  ...props
2175
670
  }) {
2176
- return /* @__PURE__ */ jsx27(
671
+ return /* @__PURE__ */ jsx10(
2177
672
  AccordionPrimitive.Item,
2178
673
  {
2179
674
  "data-slot": "accordion-item",
@@ -2187,7 +682,7 @@ function AccordionTrigger({
2187
682
  children,
2188
683
  ...props
2189
684
  }) {
2190
- return /* @__PURE__ */ jsx27(AccordionPrimitive.Header, { className: "flex", children: /* @__PURE__ */ jsxs11(
685
+ return /* @__PURE__ */ jsx10(AccordionPrimitive.Header, { className: "flex", children: /* @__PURE__ */ jsxs3(
2191
686
  AccordionPrimitive.Trigger,
2192
687
  {
2193
688
  "data-slot": "accordion-trigger",
@@ -2198,8 +693,8 @@ function AccordionTrigger({
2198
693
  ...props,
2199
694
  children: [
2200
695
  children,
2201
- /* @__PURE__ */ jsx27(ChevronDown2, { "data-slot": "accordion-trigger-icon", className: "pointer-events-none shrink-0 group-aria-expanded/accordion-trigger:hidden" }),
2202
- /* @__PURE__ */ jsx27(ChevronUp2, { "data-slot": "accordion-trigger-icon", className: "pointer-events-none hidden shrink-0 group-aria-expanded/accordion-trigger:inline" })
696
+ /* @__PURE__ */ jsx10(ChevronDown, { "data-slot": "accordion-trigger-icon", className: "pointer-events-none shrink-0 group-aria-expanded/accordion-trigger:hidden" }),
697
+ /* @__PURE__ */ jsx10(ChevronUp, { "data-slot": "accordion-trigger-icon", className: "pointer-events-none hidden shrink-0 group-aria-expanded/accordion-trigger:inline" })
2203
698
  ]
2204
699
  }
2205
700
  ) });
@@ -2209,13 +704,13 @@ function AccordionContent({
2209
704
  children,
2210
705
  ...props
2211
706
  }) {
2212
- return /* @__PURE__ */ jsx27(
707
+ return /* @__PURE__ */ jsx10(
2213
708
  AccordionPrimitive.Content,
2214
709
  {
2215
710
  "data-slot": "accordion-content",
2216
711
  className: "data-open:animate-accordion-down data-closed:animate-accordion-up text-sm overflow-hidden",
2217
712
  ...props,
2218
- children: /* @__PURE__ */ jsx27(
713
+ children: /* @__PURE__ */ jsx10(
2219
714
  "div",
2220
715
  {
2221
716
  className: cn(
@@ -2231,27 +726,27 @@ function AccordionContent({
2231
726
 
2232
727
  // src/components/ui/aspect-ratio.tsx
2233
728
  import { AspectRatio as AspectRatioPrimitive } from "radix-ui";
2234
- import { jsx as jsx28 } from "react/jsx-runtime";
729
+ import { jsx as jsx11 } from "react/jsx-runtime";
2235
730
  function AspectRatio({
2236
731
  ...props
2237
732
  }) {
2238
- return /* @__PURE__ */ jsx28(AspectRatioPrimitive.Root, { "data-slot": "aspect-ratio", ...props });
733
+ return /* @__PURE__ */ jsx11(AspectRatioPrimitive.Root, { "data-slot": "aspect-ratio", ...props });
2239
734
  }
2240
735
 
2241
736
  // src/components/ui/context-menu.tsx
2242
737
  import { ContextMenu as ContextMenuPrimitive } from "radix-ui";
2243
- import { ChevronRight as ChevronRight3, Check as Check4 } from "lucide-react";
2244
- import { jsx as jsx29, jsxs as jsxs12 } from "react/jsx-runtime";
738
+ import { ChevronRight, Check as Check2 } from "lucide-react";
739
+ import { jsx as jsx12, jsxs as jsxs4 } from "react/jsx-runtime";
2245
740
  function ContextMenu({
2246
741
  ...props
2247
742
  }) {
2248
- return /* @__PURE__ */ jsx29(ContextMenuPrimitive.Root, { "data-slot": "context-menu", ...props });
743
+ return /* @__PURE__ */ jsx12(ContextMenuPrimitive.Root, { "data-slot": "context-menu", ...props });
2249
744
  }
2250
745
  function ContextMenuTrigger({
2251
746
  className,
2252
747
  ...props
2253
748
  }) {
2254
- return /* @__PURE__ */ jsx29(
749
+ return /* @__PURE__ */ jsx12(
2255
750
  ContextMenuPrimitive.Trigger,
2256
751
  {
2257
752
  "data-slot": "context-menu-trigger",
@@ -2263,22 +758,22 @@ function ContextMenuTrigger({
2263
758
  function ContextMenuGroup({
2264
759
  ...props
2265
760
  }) {
2266
- return /* @__PURE__ */ jsx29(ContextMenuPrimitive.Group, { "data-slot": "context-menu-group", ...props });
761
+ return /* @__PURE__ */ jsx12(ContextMenuPrimitive.Group, { "data-slot": "context-menu-group", ...props });
2267
762
  }
2268
763
  function ContextMenuPortal({
2269
764
  ...props
2270
765
  }) {
2271
- return /* @__PURE__ */ jsx29(ContextMenuPrimitive.Portal, { "data-slot": "context-menu-portal", ...props });
766
+ return /* @__PURE__ */ jsx12(ContextMenuPrimitive.Portal, { "data-slot": "context-menu-portal", ...props });
2272
767
  }
2273
768
  function ContextMenuSub({
2274
769
  ...props
2275
770
  }) {
2276
- return /* @__PURE__ */ jsx29(ContextMenuPrimitive.Sub, { "data-slot": "context-menu-sub", ...props });
771
+ return /* @__PURE__ */ jsx12(ContextMenuPrimitive.Sub, { "data-slot": "context-menu-sub", ...props });
2277
772
  }
2278
773
  function ContextMenuRadioGroup({
2279
774
  ...props
2280
775
  }) {
2281
- return /* @__PURE__ */ jsx29(
776
+ return /* @__PURE__ */ jsx12(
2282
777
  ContextMenuPrimitive.RadioGroup,
2283
778
  {
2284
779
  "data-slot": "context-menu-radio-group",
@@ -2290,7 +785,7 @@ function ContextMenuContent({
2290
785
  className,
2291
786
  ...props
2292
787
  }) {
2293
- return /* @__PURE__ */ jsx29(ContextMenuPrimitive.Portal, { children: /* @__PURE__ */ jsx29(
788
+ return /* @__PURE__ */ jsx12(ContextMenuPrimitive.Portal, { children: /* @__PURE__ */ jsx12(
2294
789
  ContextMenuPrimitive.Content,
2295
790
  {
2296
791
  "data-slot": "context-menu-content",
@@ -2305,7 +800,7 @@ function ContextMenuItem({
2305
800
  variant = "default",
2306
801
  ...props
2307
802
  }) {
2308
- return /* @__PURE__ */ jsx29(
803
+ return /* @__PURE__ */ jsx12(
2309
804
  ContextMenuPrimitive.Item,
2310
805
  {
2311
806
  "data-slot": "context-menu-item",
@@ -2325,7 +820,7 @@ function ContextMenuSubTrigger({
2325
820
  children,
2326
821
  ...props
2327
822
  }) {
2328
- return /* @__PURE__ */ jsxs12(
823
+ return /* @__PURE__ */ jsxs4(
2329
824
  ContextMenuPrimitive.SubTrigger,
2330
825
  {
2331
826
  "data-slot": "context-menu-sub-trigger",
@@ -2337,7 +832,7 @@ function ContextMenuSubTrigger({
2337
832
  ...props,
2338
833
  children: [
2339
834
  children,
2340
- /* @__PURE__ */ jsx29(ChevronRight3, { className: "ml-auto" })
835
+ /* @__PURE__ */ jsx12(ChevronRight, { className: "ml-auto" })
2341
836
  ]
2342
837
  }
2343
838
  );
@@ -2346,7 +841,7 @@ function ContextMenuSubContent({
2346
841
  className,
2347
842
  ...props
2348
843
  }) {
2349
- return /* @__PURE__ */ jsx29(
844
+ return /* @__PURE__ */ jsx12(
2350
845
  ContextMenuPrimitive.SubContent,
2351
846
  {
2352
847
  "data-slot": "context-menu-sub-content",
@@ -2362,7 +857,7 @@ function ContextMenuCheckboxItem({
2362
857
  inset,
2363
858
  ...props
2364
859
  }) {
2365
- return /* @__PURE__ */ jsxs12(
860
+ return /* @__PURE__ */ jsxs4(
2366
861
  ContextMenuPrimitive.CheckboxItem,
2367
862
  {
2368
863
  "data-slot": "context-menu-checkbox-item",
@@ -2374,7 +869,7 @@ function ContextMenuCheckboxItem({
2374
869
  checked,
2375
870
  ...props,
2376
871
  children: [
2377
- /* @__PURE__ */ jsx29("span", { className: "absolute right-2 pointer-events-none", children: /* @__PURE__ */ jsx29(ContextMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx29(Check4, {}) }) }),
872
+ /* @__PURE__ */ jsx12("span", { className: "absolute right-2 pointer-events-none", children: /* @__PURE__ */ jsx12(ContextMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx12(Check2, {}) }) }),
2378
873
  children
2379
874
  ]
2380
875
  }
@@ -2386,7 +881,7 @@ function ContextMenuRadioItem({
2386
881
  inset,
2387
882
  ...props
2388
883
  }) {
2389
- return /* @__PURE__ */ jsxs12(
884
+ return /* @__PURE__ */ jsxs4(
2390
885
  ContextMenuPrimitive.RadioItem,
2391
886
  {
2392
887
  "data-slot": "context-menu-radio-item",
@@ -2397,7 +892,7 @@ function ContextMenuRadioItem({
2397
892
  ),
2398
893
  ...props,
2399
894
  children: [
2400
- /* @__PURE__ */ jsx29("span", { className: "absolute right-2 pointer-events-none", children: /* @__PURE__ */ jsx29(ContextMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx29(Check4, {}) }) }),
895
+ /* @__PURE__ */ jsx12("span", { className: "absolute right-2 pointer-events-none", children: /* @__PURE__ */ jsx12(ContextMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx12(Check2, {}) }) }),
2401
896
  children
2402
897
  ]
2403
898
  }
@@ -2408,7 +903,7 @@ function ContextMenuLabel({
2408
903
  inset,
2409
904
  ...props
2410
905
  }) {
2411
- return /* @__PURE__ */ jsx29(
906
+ return /* @__PURE__ */ jsx12(
2412
907
  ContextMenuPrimitive.Label,
2413
908
  {
2414
909
  "data-slot": "context-menu-label",
@@ -2422,7 +917,7 @@ function ContextMenuSeparator({
2422
917
  className,
2423
918
  ...props
2424
919
  }) {
2425
- return /* @__PURE__ */ jsx29(
920
+ return /* @__PURE__ */ jsx12(
2426
921
  ContextMenuPrimitive.Separator,
2427
922
  {
2428
923
  "data-slot": "context-menu-separator",
@@ -2435,7 +930,7 @@ function ContextMenuShortcut({
2435
930
  className,
2436
931
  ...props
2437
932
  }) {
2438
- return /* @__PURE__ */ jsx29(
933
+ return /* @__PURE__ */ jsx12(
2439
934
  "span",
2440
935
  {
2441
936
  "data-slot": "context-menu-shortcut",
@@ -2447,16 +942,16 @@ function ContextMenuShortcut({
2447
942
 
2448
943
  // src/components/ui/hover-card.tsx
2449
944
  import { HoverCard as HoverCardPrimitive } from "radix-ui";
2450
- import { jsx as jsx30 } from "react/jsx-runtime";
945
+ import { jsx as jsx13 } from "react/jsx-runtime";
2451
946
  function HoverCard({
2452
947
  ...props
2453
948
  }) {
2454
- return /* @__PURE__ */ jsx30(HoverCardPrimitive.Root, { "data-slot": "hover-card", ...props });
949
+ return /* @__PURE__ */ jsx13(HoverCardPrimitive.Root, { "data-slot": "hover-card", ...props });
2455
950
  }
2456
951
  function HoverCardTrigger({
2457
952
  ...props
2458
953
  }) {
2459
- return /* @__PURE__ */ jsx30(HoverCardPrimitive.Trigger, { "data-slot": "hover-card-trigger", ...props });
954
+ return /* @__PURE__ */ jsx13(HoverCardPrimitive.Trigger, { "data-slot": "hover-card-trigger", ...props });
2460
955
  }
2461
956
  function HoverCardContent({
2462
957
  className,
@@ -2464,7 +959,7 @@ function HoverCardContent({
2464
959
  sideOffset = 4,
2465
960
  ...props
2466
961
  }) {
2467
- return /* @__PURE__ */ jsx30(HoverCardPrimitive.Portal, { "data-slot": "hover-card-portal", children: /* @__PURE__ */ jsx30(
962
+ return /* @__PURE__ */ jsx13(HoverCardPrimitive.Portal, { "data-slot": "hover-card-portal", children: /* @__PURE__ */ jsx13(
2468
963
  HoverCardPrimitive.Content,
2469
964
  {
2470
965
  "data-slot": "hover-card-content",
@@ -2481,13 +976,13 @@ function HoverCardContent({
2481
976
 
2482
977
  // src/components/ui/menubar.tsx
2483
978
  import { Menubar as MenubarPrimitive } from "radix-ui";
2484
- import { Check as Check5, ChevronRight as ChevronRight4 } from "lucide-react";
2485
- import { jsx as jsx31, jsxs as jsxs13 } from "react/jsx-runtime";
979
+ import { Check as Check3, ChevronRight as ChevronRight2 } from "lucide-react";
980
+ import { jsx as jsx14, jsxs as jsxs5 } from "react/jsx-runtime";
2486
981
  function Menubar({
2487
982
  className,
2488
983
  ...props
2489
984
  }) {
2490
- return /* @__PURE__ */ jsx31(
985
+ return /* @__PURE__ */ jsx14(
2491
986
  MenubarPrimitive.Root,
2492
987
  {
2493
988
  "data-slot": "menubar",
@@ -2499,28 +994,28 @@ function Menubar({
2499
994
  function MenubarMenu({
2500
995
  ...props
2501
996
  }) {
2502
- return /* @__PURE__ */ jsx31(MenubarPrimitive.Menu, { "data-slot": "menubar-menu", ...props });
997
+ return /* @__PURE__ */ jsx14(MenubarPrimitive.Menu, { "data-slot": "menubar-menu", ...props });
2503
998
  }
2504
999
  function MenubarGroup({
2505
1000
  ...props
2506
1001
  }) {
2507
- return /* @__PURE__ */ jsx31(MenubarPrimitive.Group, { "data-slot": "menubar-group", ...props });
1002
+ return /* @__PURE__ */ jsx14(MenubarPrimitive.Group, { "data-slot": "menubar-group", ...props });
2508
1003
  }
2509
1004
  function MenubarPortal({
2510
1005
  ...props
2511
1006
  }) {
2512
- return /* @__PURE__ */ jsx31(MenubarPrimitive.Portal, { "data-slot": "menubar-portal", ...props });
1007
+ return /* @__PURE__ */ jsx14(MenubarPrimitive.Portal, { "data-slot": "menubar-portal", ...props });
2513
1008
  }
2514
1009
  function MenubarRadioGroup({
2515
1010
  ...props
2516
1011
  }) {
2517
- return /* @__PURE__ */ jsx31(MenubarPrimitive.RadioGroup, { "data-slot": "menubar-radio-group", ...props });
1012
+ return /* @__PURE__ */ jsx14(MenubarPrimitive.RadioGroup, { "data-slot": "menubar-radio-group", ...props });
2518
1013
  }
2519
1014
  function MenubarTrigger({
2520
1015
  className,
2521
1016
  ...props
2522
1017
  }) {
2523
- return /* @__PURE__ */ jsx31(
1018
+ return /* @__PURE__ */ jsx14(
2524
1019
  MenubarPrimitive.Trigger,
2525
1020
  {
2526
1021
  "data-slot": "menubar-trigger",
@@ -2539,7 +1034,7 @@ function MenubarContent({
2539
1034
  sideOffset = 8,
2540
1035
  ...props
2541
1036
  }) {
2542
- return /* @__PURE__ */ jsx31(MenubarPortal, { children: /* @__PURE__ */ jsx31(
1037
+ return /* @__PURE__ */ jsx14(MenubarPortal, { children: /* @__PURE__ */ jsx14(
2543
1038
  MenubarPrimitive.Content,
2544
1039
  {
2545
1040
  "data-slot": "menubar-content",
@@ -2557,7 +1052,7 @@ function MenubarItem({
2557
1052
  variant = "default",
2558
1053
  ...props
2559
1054
  }) {
2560
- return /* @__PURE__ */ jsx31(
1055
+ return /* @__PURE__ */ jsx14(
2561
1056
  MenubarPrimitive.Item,
2562
1057
  {
2563
1058
  "data-slot": "menubar-item",
@@ -2578,7 +1073,7 @@ function MenubarCheckboxItem({
2578
1073
  inset,
2579
1074
  ...props
2580
1075
  }) {
2581
- return /* @__PURE__ */ jsxs13(
1076
+ return /* @__PURE__ */ jsxs5(
2582
1077
  MenubarPrimitive.CheckboxItem,
2583
1078
  {
2584
1079
  "data-slot": "menubar-checkbox-item",
@@ -2590,7 +1085,7 @@ function MenubarCheckboxItem({
2590
1085
  checked,
2591
1086
  ...props,
2592
1087
  children: [
2593
- /* @__PURE__ */ jsx31("span", { className: "left-2 size-4 [&_svg:not([class*='size-'])]:size-4 pointer-events-none absolute flex items-center justify-center", children: /* @__PURE__ */ jsx31(MenubarPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx31(Check5, {}) }) }),
1088
+ /* @__PURE__ */ jsx14("span", { className: "left-2 size-4 [&_svg:not([class*='size-'])]:size-4 pointer-events-none absolute flex items-center justify-center", children: /* @__PURE__ */ jsx14(MenubarPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx14(Check3, {}) }) }),
2594
1089
  children
2595
1090
  ]
2596
1091
  }
@@ -2602,7 +1097,7 @@ function MenubarRadioItem({
2602
1097
  inset,
2603
1098
  ...props
2604
1099
  }) {
2605
- return /* @__PURE__ */ jsxs13(
1100
+ return /* @__PURE__ */ jsxs5(
2606
1101
  MenubarPrimitive.RadioItem,
2607
1102
  {
2608
1103
  "data-slot": "menubar-radio-item",
@@ -2613,7 +1108,7 @@ function MenubarRadioItem({
2613
1108
  ),
2614
1109
  ...props,
2615
1110
  children: [
2616
- /* @__PURE__ */ jsx31("span", { className: "left-2 size-4 [&_svg:not([class*='size-'])]:size-4 pointer-events-none absolute flex items-center justify-center", children: /* @__PURE__ */ jsx31(MenubarPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx31(Check5, {}) }) }),
1111
+ /* @__PURE__ */ jsx14("span", { className: "left-2 size-4 [&_svg:not([class*='size-'])]:size-4 pointer-events-none absolute flex items-center justify-center", children: /* @__PURE__ */ jsx14(MenubarPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx14(Check3, {}) }) }),
2617
1112
  children
2618
1113
  ]
2619
1114
  }
@@ -2624,7 +1119,7 @@ function MenubarLabel({
2624
1119
  inset,
2625
1120
  ...props
2626
1121
  }) {
2627
- return /* @__PURE__ */ jsx31(
1122
+ return /* @__PURE__ */ jsx14(
2628
1123
  MenubarPrimitive.Label,
2629
1124
  {
2630
1125
  "data-slot": "menubar-label",
@@ -2638,7 +1133,7 @@ function MenubarSeparator({
2638
1133
  className,
2639
1134
  ...props
2640
1135
  }) {
2641
- return /* @__PURE__ */ jsx31(
1136
+ return /* @__PURE__ */ jsx14(
2642
1137
  MenubarPrimitive.Separator,
2643
1138
  {
2644
1139
  "data-slot": "menubar-separator",
@@ -2651,7 +1146,7 @@ function MenubarShortcut({
2651
1146
  className,
2652
1147
  ...props
2653
1148
  }) {
2654
- return /* @__PURE__ */ jsx31(
1149
+ return /* @__PURE__ */ jsx14(
2655
1150
  "span",
2656
1151
  {
2657
1152
  "data-slot": "menubar-shortcut",
@@ -2663,7 +1158,7 @@ function MenubarShortcut({
2663
1158
  function MenubarSub({
2664
1159
  ...props
2665
1160
  }) {
2666
- return /* @__PURE__ */ jsx31(MenubarPrimitive.Sub, { "data-slot": "menubar-sub", ...props });
1161
+ return /* @__PURE__ */ jsx14(MenubarPrimitive.Sub, { "data-slot": "menubar-sub", ...props });
2667
1162
  }
2668
1163
  function MenubarSubTrigger({
2669
1164
  className,
@@ -2671,7 +1166,7 @@ function MenubarSubTrigger({
2671
1166
  children,
2672
1167
  ...props
2673
1168
  }) {
2674
- return /* @__PURE__ */ jsxs13(
1169
+ return /* @__PURE__ */ jsxs5(
2675
1170
  MenubarPrimitive.SubTrigger,
2676
1171
  {
2677
1172
  "data-slot": "menubar-sub-trigger",
@@ -2683,7 +1178,7 @@ function MenubarSubTrigger({
2683
1178
  ...props,
2684
1179
  children: [
2685
1180
  children,
2686
- /* @__PURE__ */ jsx31(ChevronRight4, { className: "ml-auto size-4" })
1181
+ /* @__PURE__ */ jsx14(ChevronRight2, { className: "ml-auto size-4" })
2687
1182
  ]
2688
1183
  }
2689
1184
  );
@@ -2692,7 +1187,7 @@ function MenubarSubContent({
2692
1187
  className,
2693
1188
  ...props
2694
1189
  }) {
2695
- return /* @__PURE__ */ jsx31(
1190
+ return /* @__PURE__ */ jsx14(
2696
1191
  MenubarPrimitive.SubContent,
2697
1192
  {
2698
1193
  "data-slot": "menubar-sub-content",
@@ -2703,17 +1198,17 @@ function MenubarSubContent({
2703
1198
  }
2704
1199
 
2705
1200
  // src/components/ui/navigation-menu.tsx
2706
- import { cva as cva6 } from "class-variance-authority";
1201
+ import { cva as cva3 } from "class-variance-authority";
2707
1202
  import { NavigationMenu as NavigationMenuPrimitive } from "radix-ui";
2708
- import { ChevronDown as ChevronDown3 } from "lucide-react";
2709
- import { jsx as jsx32, jsxs as jsxs14 } from "react/jsx-runtime";
1203
+ import { ChevronDown as ChevronDown2 } from "lucide-react";
1204
+ import { jsx as jsx15, jsxs as jsxs6 } from "react/jsx-runtime";
2710
1205
  function NavigationMenu({
2711
1206
  className,
2712
1207
  children,
2713
1208
  viewport = true,
2714
1209
  ...props
2715
1210
  }) {
2716
- return /* @__PURE__ */ jsxs14(
1211
+ return /* @__PURE__ */ jsxs6(
2717
1212
  NavigationMenuPrimitive.Root,
2718
1213
  {
2719
1214
  "data-slot": "navigation-menu",
@@ -2725,7 +1220,7 @@ function NavigationMenu({
2725
1220
  ...props,
2726
1221
  children: [
2727
1222
  children,
2728
- viewport && /* @__PURE__ */ jsx32(NavigationMenuViewport, {})
1223
+ viewport && /* @__PURE__ */ jsx15(NavigationMenuViewport, {})
2729
1224
  ]
2730
1225
  }
2731
1226
  );
@@ -2734,7 +1229,7 @@ function NavigationMenuList({
2734
1229
  className,
2735
1230
  ...props
2736
1231
  }) {
2737
- return /* @__PURE__ */ jsx32(
1232
+ return /* @__PURE__ */ jsx15(
2738
1233
  NavigationMenuPrimitive.List,
2739
1234
  {
2740
1235
  "data-slot": "navigation-menu-list",
@@ -2750,7 +1245,7 @@ function NavigationMenuItem({
2750
1245
  className,
2751
1246
  ...props
2752
1247
  }) {
2753
- return /* @__PURE__ */ jsx32(
1248
+ return /* @__PURE__ */ jsx15(
2754
1249
  NavigationMenuPrimitive.Item,
2755
1250
  {
2756
1251
  "data-slot": "navigation-menu-item",
@@ -2759,7 +1254,7 @@ function NavigationMenuItem({
2759
1254
  }
2760
1255
  );
2761
1256
  }
2762
- var navigationMenuTriggerStyle = cva6(
1257
+ var navigationMenuTriggerStyle = cva3(
2763
1258
  "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/50 data-popup-open:bg-muted/50 data-popup-open:hover:bg-muted rounded-md px-4 py-2 text-sm font-medium transition-all focus-visible:ring-3 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"
2764
1259
  );
2765
1260
  function NavigationMenuTrigger({
@@ -2767,7 +1262,7 @@ function NavigationMenuTrigger({
2767
1262
  children,
2768
1263
  ...props
2769
1264
  }) {
2770
- return /* @__PURE__ */ jsxs14(
1265
+ return /* @__PURE__ */ jsxs6(
2771
1266
  NavigationMenuPrimitive.Trigger,
2772
1267
  {
2773
1268
  "data-slot": "navigation-menu-trigger",
@@ -2776,7 +1271,7 @@ function NavigationMenuTrigger({
2776
1271
  children: [
2777
1272
  children,
2778
1273
  " ",
2779
- /* @__PURE__ */ jsx32(ChevronDown3, { className: "relative top-px 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" })
1274
+ /* @__PURE__ */ jsx15(ChevronDown2, { className: "relative top-px 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" })
2780
1275
  ]
2781
1276
  }
2782
1277
  );
@@ -2785,7 +1280,7 @@ function NavigationMenuContent({
2785
1280
  className,
2786
1281
  ...props
2787
1282
  }) {
2788
- return /* @__PURE__ */ jsx32(
1283
+ return /* @__PURE__ */ jsx15(
2789
1284
  NavigationMenuPrimitive.Content,
2790
1285
  {
2791
1286
  "data-slot": "navigation-menu-content",
@@ -2801,13 +1296,13 @@ function NavigationMenuViewport({
2801
1296
  className,
2802
1297
  ...props
2803
1298
  }) {
2804
- return /* @__PURE__ */ jsx32(
1299
+ return /* @__PURE__ */ jsx15(
2805
1300
  "div",
2806
1301
  {
2807
1302
  className: cn(
2808
1303
  "absolute top-full left-0 isolate z-50 flex justify-center"
2809
1304
  ),
2810
- children: /* @__PURE__ */ jsx32(
1305
+ children: /* @__PURE__ */ jsx15(
2811
1306
  NavigationMenuPrimitive.Viewport,
2812
1307
  {
2813
1308
  "data-slot": "navigation-menu-viewport",
@@ -2825,7 +1320,7 @@ function NavigationMenuLink({
2825
1320
  className,
2826
1321
  ...props
2827
1322
  }) {
2828
- return /* @__PURE__ */ jsx32(
1323
+ return /* @__PURE__ */ jsx15(
2829
1324
  NavigationMenuPrimitive.Link,
2830
1325
  {
2831
1326
  "data-slot": "navigation-menu-link",
@@ -2838,7 +1333,7 @@ function NavigationMenuIndicator({
2838
1333
  className,
2839
1334
  ...props
2840
1335
  }) {
2841
- return /* @__PURE__ */ jsx32(
1336
+ return /* @__PURE__ */ jsx15(
2842
1337
  NavigationMenuPrimitive.Indicator,
2843
1338
  {
2844
1339
  "data-slot": "navigation-menu-indicator",
@@ -2847,16 +1342,16 @@ function NavigationMenuIndicator({
2847
1342
  className
2848
1343
  ),
2849
1344
  ...props,
2850
- children: /* @__PURE__ */ jsx32("div", { className: "bg-border rounded-tl-sm shadow-md relative top-[60%] h-2 w-2 rotate-45" })
1345
+ children: /* @__PURE__ */ jsx15("div", { className: "bg-border rounded-tl-sm shadow-md relative top-[60%] h-2 w-2 rotate-45" })
2851
1346
  }
2852
1347
  );
2853
1348
  }
2854
1349
 
2855
1350
  // src/components/ui/pagination.tsx
2856
- import { ChevronLeft, ChevronRight as ChevronRight5, MoreHorizontal as MoreHorizontal2 } from "lucide-react";
2857
- import { jsx as jsx33, jsxs as jsxs15 } from "react/jsx-runtime";
1351
+ import { ChevronLeft, ChevronRight as ChevronRight3, MoreHorizontal } from "lucide-react";
1352
+ import { jsx as jsx16, jsxs as jsxs7 } from "react/jsx-runtime";
2858
1353
  function Pagination({ className, ...props }) {
2859
- return /* @__PURE__ */ jsx33(
1354
+ return /* @__PURE__ */ jsx16(
2860
1355
  "nav",
2861
1356
  {
2862
1357
  role: "navigation",
@@ -2874,7 +1369,7 @@ function PaginationContent({
2874
1369
  className,
2875
1370
  ...props
2876
1371
  }) {
2877
- return /* @__PURE__ */ jsx33(
1372
+ return /* @__PURE__ */ jsx16(
2878
1373
  "ul",
2879
1374
  {
2880
1375
  "data-slot": "pagination-content",
@@ -2884,7 +1379,7 @@ function PaginationContent({
2884
1379
  );
2885
1380
  }
2886
1381
  function PaginationItem({ ...props }) {
2887
- return /* @__PURE__ */ jsx33("li", { "data-slot": "pagination-item", ...props });
1382
+ return /* @__PURE__ */ jsx16("li", { "data-slot": "pagination-item", ...props });
2888
1383
  }
2889
1384
  function PaginationLink({
2890
1385
  className,
@@ -2892,14 +1387,14 @@ function PaginationLink({
2892
1387
  size = "icon",
2893
1388
  ...props
2894
1389
  }) {
2895
- return /* @__PURE__ */ jsx33(
1390
+ return /* @__PURE__ */ jsx16(
2896
1391
  Button,
2897
1392
  {
2898
1393
  asChild: true,
2899
1394
  variant: isActive ? "outline" : "ghost",
2900
1395
  size,
2901
1396
  className: cn(className),
2902
- children: /* @__PURE__ */ jsx33(
1397
+ children: /* @__PURE__ */ jsx16(
2903
1398
  "a",
2904
1399
  {
2905
1400
  "aria-current": isActive ? "page" : void 0,
@@ -2916,7 +1411,7 @@ function PaginationPrevious({
2916
1411
  text = "Previous",
2917
1412
  ...props
2918
1413
  }) {
2919
- return /* @__PURE__ */ jsxs15(
1414
+ return /* @__PURE__ */ jsxs7(
2920
1415
  PaginationLink,
2921
1416
  {
2922
1417
  "aria-label": "Go to previous page",
@@ -2924,8 +1419,8 @@ function PaginationPrevious({
2924
1419
  ...props,
2925
1420
  size: "default",
2926
1421
  children: [
2927
- /* @__PURE__ */ jsx33(ChevronLeft, { "data-icon": "inline-start" }),
2928
- /* @__PURE__ */ jsx33("span", { className: "hidden sm:block", children: text })
1422
+ /* @__PURE__ */ jsx16(ChevronLeft, { "data-icon": "inline-start" }),
1423
+ /* @__PURE__ */ jsx16("span", { className: "hidden sm:block", children: text })
2929
1424
  ]
2930
1425
  }
2931
1426
  );
@@ -2935,7 +1430,7 @@ function PaginationNext({
2935
1430
  text = "Next",
2936
1431
  ...props
2937
1432
  }) {
2938
- return /* @__PURE__ */ jsxs15(
1433
+ return /* @__PURE__ */ jsxs7(
2939
1434
  PaginationLink,
2940
1435
  {
2941
1436
  "aria-label": "Go to next page",
@@ -2943,8 +1438,8 @@ function PaginationNext({
2943
1438
  ...props,
2944
1439
  size: "default",
2945
1440
  children: [
2946
- /* @__PURE__ */ jsx33("span", { className: "hidden sm:block", children: text }),
2947
- /* @__PURE__ */ jsx33(ChevronRight5, { "data-icon": "inline-end" })
1441
+ /* @__PURE__ */ jsx16("span", { className: "hidden sm:block", children: text }),
1442
+ /* @__PURE__ */ jsx16(ChevronRight3, { "data-icon": "inline-end" })
2948
1443
  ]
2949
1444
  }
2950
1445
  );
@@ -2953,7 +1448,7 @@ function PaginationEllipsis({
2953
1448
  className,
2954
1449
  ...props
2955
1450
  }) {
2956
- return /* @__PURE__ */ jsxs15(
1451
+ return /* @__PURE__ */ jsxs7(
2957
1452
  "span",
2958
1453
  {
2959
1454
  "aria-hidden": true,
@@ -2964,8 +1459,8 @@ function PaginationEllipsis({
2964
1459
  ),
2965
1460
  ...props,
2966
1461
  children: [
2967
- /* @__PURE__ */ jsx33(MoreHorizontal2, {}),
2968
- /* @__PURE__ */ jsx33("span", { className: "sr-only", children: "More pages" })
1462
+ /* @__PURE__ */ jsx16(MoreHorizontal, {}),
1463
+ /* @__PURE__ */ jsx16("span", { className: "sr-only", children: "More pages" })
2969
1464
  ]
2970
1465
  }
2971
1466
  );
@@ -2973,12 +1468,12 @@ function PaginationEllipsis({
2973
1468
 
2974
1469
  // src/components/ui/radio-group.tsx
2975
1470
  import { RadioGroup as RadioGroupPrimitive } from "radix-ui";
2976
- import { jsx as jsx34 } from "react/jsx-runtime";
1471
+ import { jsx as jsx17 } from "react/jsx-runtime";
2977
1472
  function RadioGroup({
2978
1473
  className,
2979
1474
  ...props
2980
1475
  }) {
2981
- return /* @__PURE__ */ jsx34(
1476
+ return /* @__PURE__ */ jsx17(
2982
1477
  RadioGroupPrimitive.Root,
2983
1478
  {
2984
1479
  "data-slot": "radio-group",
@@ -2991,7 +1486,7 @@ function RadioGroupItem({
2991
1486
  className,
2992
1487
  ...props
2993
1488
  }) {
2994
- return /* @__PURE__ */ jsx34(
1489
+ return /* @__PURE__ */ jsx17(
2995
1490
  RadioGroupPrimitive.Item,
2996
1491
  {
2997
1492
  "data-slot": "radio-group-item",
@@ -3000,84 +1495,27 @@ function RadioGroupItem({
3000
1495
  className
3001
1496
  ),
3002
1497
  ...props,
3003
- children: /* @__PURE__ */ jsx34(
1498
+ children: /* @__PURE__ */ jsx17(
3004
1499
  RadioGroupPrimitive.Indicator,
3005
1500
  {
3006
1501
  "data-slot": "radio-group-indicator",
3007
1502
  className: "flex size-4 items-center justify-center",
3008
- children: /* @__PURE__ */ jsx34("span", { className: "bg-primary-foreground absolute top-1/2 left-1/2 size-2 -translate-x-1/2 -translate-y-1/2 rounded-full" })
1503
+ children: /* @__PURE__ */ jsx17("span", { className: "bg-primary-foreground absolute top-1/2 left-1/2 size-2 -translate-x-1/2 -translate-y-1/2 rounded-full" })
3009
1504
  }
3010
1505
  )
3011
1506
  }
3012
1507
  );
3013
1508
  }
3014
1509
 
3015
- // src/components/ui/slider.tsx
3016
- import * as React2 from "react";
3017
- import { Slider as SliderPrimitive } from "radix-ui";
3018
- import { jsx as jsx35, jsxs as jsxs16 } from "react/jsx-runtime";
3019
- function Slider({
3020
- className,
3021
- defaultValue,
3022
- value,
3023
- min = 0,
3024
- max = 100,
3025
- ...props
3026
- }) {
3027
- const _values = React2.useMemo(
3028
- () => Array.isArray(value) ? value : Array.isArray(defaultValue) ? defaultValue : [min, max],
3029
- [value, defaultValue, min, max]
3030
- );
3031
- return /* @__PURE__ */ jsxs16(
3032
- SliderPrimitive.Root,
3033
- {
3034
- "data-slot": "slider",
3035
- defaultValue,
3036
- value,
3037
- min,
3038
- max,
3039
- className: cn(
3040
- "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",
3041
- className
3042
- ),
3043
- ...props,
3044
- children: [
3045
- /* @__PURE__ */ jsx35(
3046
- SliderPrimitive.Track,
3047
- {
3048
- "data-slot": "slider-track",
3049
- className: "bg-muted rounded-full data-horizontal:h-1.5 data-vertical:w-1.5 relative grow overflow-hidden data-horizontal:w-full data-vertical:h-full",
3050
- children: /* @__PURE__ */ jsx35(
3051
- SliderPrimitive.Range,
3052
- {
3053
- "data-slot": "slider-range",
3054
- className: "bg-primary absolute select-none data-horizontal:h-full data-vertical:w-full"
3055
- }
3056
- )
3057
- }
3058
- ),
3059
- Array.from({ length: _values.length }, (_, index) => /* @__PURE__ */ jsx35(
3060
- SliderPrimitive.Thumb,
3061
- {
3062
- "data-slot": "slider-thumb",
3063
- className: "border-primary ring-ring/50 size-4 rounded-full border bg-white shadow-sm transition-[color,box-shadow] hover:ring-4 focus-visible:ring-4 focus-visible:outline-hidden block shrink-0 select-none disabled:pointer-events-none disabled:opacity-50"
3064
- },
3065
- index
3066
- ))
3067
- ]
3068
- }
3069
- );
3070
- }
3071
-
3072
1510
  // src/components/ui/switch.tsx
3073
1511
  import { Switch as SwitchPrimitive } from "radix-ui";
3074
- import { jsx as jsx36 } from "react/jsx-runtime";
1512
+ import { jsx as jsx18 } from "react/jsx-runtime";
3075
1513
  function Switch({
3076
1514
  className,
3077
1515
  size = "default",
3078
1516
  ...props
3079
1517
  }) {
3080
- return /* @__PURE__ */ jsx36(
1518
+ return /* @__PURE__ */ jsx18(
3081
1519
  SwitchPrimitive.Root,
3082
1520
  {
3083
1521
  "data-slot": "switch",
@@ -3087,7 +1525,7 @@ function Switch({
3087
1525
  className
3088
1526
  ),
3089
1527
  ...props,
3090
- children: /* @__PURE__ */ jsx36(
1528
+ children: /* @__PURE__ */ jsx18(
3091
1529
  SwitchPrimitive.Thumb,
3092
1530
  {
3093
1531
  "data-slot": "switch-thumb",
@@ -3099,10 +1537,10 @@ function Switch({
3099
1537
  }
3100
1538
 
3101
1539
  // src/components/ui/toggle.tsx
3102
- import { cva as cva7 } from "class-variance-authority";
1540
+ import { cva as cva4 } from "class-variance-authority";
3103
1541
  import { Toggle as TogglePrimitive } from "radix-ui";
3104
- import { jsx as jsx37 } from "react/jsx-runtime";
3105
- var toggleVariants = cva7(
1542
+ import { jsx as jsx19 } from "react/jsx-runtime";
1543
+ var toggleVariants = cva4(
3106
1544
  "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 gap-1 rounded-md text-sm font-medium transition-[color,box-shadow] [&_svg:not([class*='size-'])]:size-4 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",
3107
1545
  {
3108
1546
  variants: {
@@ -3128,7 +1566,7 @@ function Toggle({
3128
1566
  size = "default",
3129
1567
  ...props
3130
1568
  }) {
3131
- return /* @__PURE__ */ jsx37(
1569
+ return /* @__PURE__ */ jsx19(
3132
1570
  TogglePrimitive.Root,
3133
1571
  {
3134
1572
  "data-slot": "toggle",
@@ -3139,10 +1577,10 @@ function Toggle({
3139
1577
  }
3140
1578
 
3141
1579
  // src/components/ui/toggle-group.tsx
3142
- import * as React3 from "react";
1580
+ import * as React from "react";
3143
1581
  import { ToggleGroup as ToggleGroupPrimitive } from "radix-ui";
3144
- import { jsx as jsx38 } from "react/jsx-runtime";
3145
- var ToggleGroupContext = React3.createContext({
1582
+ import { jsx as jsx20 } from "react/jsx-runtime";
1583
+ var ToggleGroupContext = React.createContext({
3146
1584
  size: "default",
3147
1585
  variant: "default",
3148
1586
  spacing: 0,
@@ -3157,7 +1595,7 @@ function ToggleGroup({
3157
1595
  children,
3158
1596
  ...props
3159
1597
  }) {
3160
- return /* @__PURE__ */ jsx38(
1598
+ return /* @__PURE__ */ jsx20(
3161
1599
  ToggleGroupPrimitive.Root,
3162
1600
  {
3163
1601
  "data-slot": "toggle-group",
@@ -3171,7 +1609,7 @@ function ToggleGroup({
3171
1609
  className
3172
1610
  ),
3173
1611
  ...props,
3174
- children: /* @__PURE__ */ jsx38(
1612
+ children: /* @__PURE__ */ jsx20(
3175
1613
  ToggleGroupContext.Provider,
3176
1614
  {
3177
1615
  value: { variant, size, spacing, orientation },
@@ -3188,8 +1626,8 @@ function ToggleGroupItem({
3188
1626
  size = "default",
3189
1627
  ...props
3190
1628
  }) {
3191
- const context = React3.useContext(ToggleGroupContext);
3192
- return /* @__PURE__ */ jsx38(
1629
+ const context = React.useContext(ToggleGroupContext);
1630
+ return /* @__PURE__ */ jsx20(
3193
1631
  ToggleGroupPrimitive.Item,
3194
1632
  {
3195
1633
  "data-slot": "toggle-group-item",
@@ -3212,32 +1650,32 @@ function ToggleGroupItem({
3212
1650
 
3213
1651
  // src/components/ui/drawer.tsx
3214
1652
  import { Drawer as DrawerPrimitive } from "vaul";
3215
- import { jsx as jsx39, jsxs as jsxs17 } from "react/jsx-runtime";
1653
+ import { jsx as jsx21, jsxs as jsxs8 } from "react/jsx-runtime";
3216
1654
  function Drawer({
3217
1655
  ...props
3218
1656
  }) {
3219
- return /* @__PURE__ */ jsx39(DrawerPrimitive.Root, { "data-slot": "drawer", ...props });
1657
+ return /* @__PURE__ */ jsx21(DrawerPrimitive.Root, { "data-slot": "drawer", ...props });
3220
1658
  }
3221
1659
  function DrawerTrigger({
3222
1660
  ...props
3223
1661
  }) {
3224
- return /* @__PURE__ */ jsx39(DrawerPrimitive.Trigger, { "data-slot": "drawer-trigger", ...props });
1662
+ return /* @__PURE__ */ jsx21(DrawerPrimitive.Trigger, { "data-slot": "drawer-trigger", ...props });
3225
1663
  }
3226
1664
  function DrawerPortal({
3227
1665
  ...props
3228
1666
  }) {
3229
- return /* @__PURE__ */ jsx39(DrawerPrimitive.Portal, { "data-slot": "drawer-portal", ...props });
1667
+ return /* @__PURE__ */ jsx21(DrawerPrimitive.Portal, { "data-slot": "drawer-portal", ...props });
3230
1668
  }
3231
1669
  function DrawerClose({
3232
1670
  ...props
3233
1671
  }) {
3234
- return /* @__PURE__ */ jsx39(DrawerPrimitive.Close, { "data-slot": "drawer-close", ...props });
1672
+ return /* @__PURE__ */ jsx21(DrawerPrimitive.Close, { "data-slot": "drawer-close", ...props });
3235
1673
  }
3236
1674
  function DrawerOverlay({
3237
1675
  className,
3238
1676
  ...props
3239
1677
  }) {
3240
- return /* @__PURE__ */ jsx39(
1678
+ return /* @__PURE__ */ jsx21(
3241
1679
  DrawerPrimitive.Overlay,
3242
1680
  {
3243
1681
  "data-slot": "drawer-overlay",
@@ -3251,9 +1689,9 @@ function DrawerContent({
3251
1689
  children,
3252
1690
  ...props
3253
1691
  }) {
3254
- return /* @__PURE__ */ jsxs17(DrawerPortal, { "data-slot": "drawer-portal", children: [
3255
- /* @__PURE__ */ jsx39(DrawerOverlay, {}),
3256
- /* @__PURE__ */ jsxs17(
1692
+ return /* @__PURE__ */ jsxs8(DrawerPortal, { "data-slot": "drawer-portal", children: [
1693
+ /* @__PURE__ */ jsx21(DrawerOverlay, {}),
1694
+ /* @__PURE__ */ jsxs8(
3257
1695
  DrawerPrimitive.Content,
3258
1696
  {
3259
1697
  "data-slot": "drawer-content",
@@ -3263,7 +1701,7 @@ function DrawerContent({
3263
1701
  ),
3264
1702
  ...props,
3265
1703
  children: [
3266
- /* @__PURE__ */ jsx39("div", { className: "bg-muted mt-4 h-1.5 w-[100px] rounded-full mx-auto hidden shrink-0 group-data-[vaul-drawer-direction=bottom]/drawer-content:block" }),
1704
+ /* @__PURE__ */ jsx21("div", { className: "bg-muted mt-4 h-1.5 w-[100px] rounded-full mx-auto hidden shrink-0 group-data-[vaul-drawer-direction=bottom]/drawer-content:block" }),
3267
1705
  children
3268
1706
  ]
3269
1707
  }
@@ -3271,7 +1709,7 @@ function DrawerContent({
3271
1709
  ] });
3272
1710
  }
3273
1711
  function DrawerHeader({ className, ...props }) {
3274
- return /* @__PURE__ */ jsx39(
1712
+ return /* @__PURE__ */ jsx21(
3275
1713
  "div",
3276
1714
  {
3277
1715
  "data-slot": "drawer-header",
@@ -3281,7 +1719,7 @@ function DrawerHeader({ className, ...props }) {
3281
1719
  );
3282
1720
  }
3283
1721
  function DrawerFooter({ className, ...props }) {
3284
- return /* @__PURE__ */ jsx39(
1722
+ return /* @__PURE__ */ jsx21(
3285
1723
  "div",
3286
1724
  {
3287
1725
  "data-slot": "drawer-footer",
@@ -3294,7 +1732,7 @@ function DrawerTitle({
3294
1732
  className,
3295
1733
  ...props
3296
1734
  }) {
3297
- return /* @__PURE__ */ jsx39(
1735
+ return /* @__PURE__ */ jsx21(
3298
1736
  DrawerPrimitive.Title,
3299
1737
  {
3300
1738
  "data-slot": "drawer-title",
@@ -3307,7 +1745,7 @@ function DrawerDescription({
3307
1745
  className,
3308
1746
  ...props
3309
1747
  }) {
3310
- return /* @__PURE__ */ jsx39(
1748
+ return /* @__PURE__ */ jsx21(
3311
1749
  DrawerPrimitive.Description,
3312
1750
  {
3313
1751
  "data-slot": "drawer-description",
@@ -3318,16 +1756,16 @@ function DrawerDescription({
3318
1756
  }
3319
1757
 
3320
1758
  // src/components/ui/input-otp.tsx
3321
- import * as React4 from "react";
1759
+ import * as React2 from "react";
3322
1760
  import { OTPInput, OTPInputContext } from "input-otp";
3323
1761
  import { Minus } from "lucide-react";
3324
- import { jsx as jsx40, jsxs as jsxs18 } from "react/jsx-runtime";
1762
+ import { jsx as jsx22, jsxs as jsxs9 } from "react/jsx-runtime";
3325
1763
  function InputOTP({
3326
1764
  className,
3327
1765
  containerClassName,
3328
1766
  ...props
3329
1767
  }) {
3330
- return /* @__PURE__ */ jsx40(
1768
+ return /* @__PURE__ */ jsx22(
3331
1769
  OTPInput,
3332
1770
  {
3333
1771
  "data-slot": "input-otp",
@@ -3345,7 +1783,7 @@ function InputOTP({
3345
1783
  );
3346
1784
  }
3347
1785
  function InputOTPGroup({ className, ...props }) {
3348
- return /* @__PURE__ */ jsx40(
1786
+ return /* @__PURE__ */ jsx22(
3349
1787
  "div",
3350
1788
  {
3351
1789
  "data-slot": "input-otp-group",
@@ -3359,9 +1797,9 @@ function InputOTPSlot({
3359
1797
  className,
3360
1798
  ...props
3361
1799
  }) {
3362
- const inputOTPContext = React4.useContext(OTPInputContext);
1800
+ const inputOTPContext = React2.useContext(OTPInputContext);
3363
1801
  const { char, hasFakeCaret, isActive } = inputOTPContext?.slots[index] ?? {};
3364
- return /* @__PURE__ */ jsxs18(
1802
+ return /* @__PURE__ */ jsxs9(
3365
1803
  "div",
3366
1804
  {
3367
1805
  "data-slot": "input-otp-slot",
@@ -3373,20 +1811,20 @@ function InputOTPSlot({
3373
1811
  ...props,
3374
1812
  children: [
3375
1813
  char,
3376
- hasFakeCaret && /* @__PURE__ */ jsx40("div", { className: "pointer-events-none absolute inset-0 flex items-center justify-center", children: /* @__PURE__ */ jsx40("div", { className: "animate-caret-blink bg-foreground h-4 w-px duration-1000" }) })
1814
+ hasFakeCaret && /* @__PURE__ */ jsx22("div", { className: "pointer-events-none absolute inset-0 flex items-center justify-center", children: /* @__PURE__ */ jsx22("div", { className: "animate-caret-blink bg-foreground h-4 w-px duration-1000" }) })
3377
1815
  ]
3378
1816
  }
3379
1817
  );
3380
1818
  }
3381
1819
  function InputOTPSeparator({ ...props }) {
3382
- return /* @__PURE__ */ jsx40(
1820
+ return /* @__PURE__ */ jsx22(
3383
1821
  "div",
3384
1822
  {
3385
1823
  "data-slot": "input-otp-separator",
3386
1824
  className: "[&_svg:not([class*='size-'])]:size-4 flex items-center",
3387
1825
  role: "separator",
3388
1826
  ...props,
3389
- children: /* @__PURE__ */ jsx40(Minus, {})
1827
+ children: /* @__PURE__ */ jsx22(Minus, {})
3390
1828
  }
3391
1829
  );
3392
1830
  }
@@ -3395,20 +1833,20 @@ function InputOTPSeparator({ ...props }) {
3395
1833
  import { useTheme } from "next-themes";
3396
1834
  import { Toaster as Sonner } from "sonner";
3397
1835
  import { CircleCheck, Info, AlertTriangle, AlertOctagon, Loader2 } from "lucide-react";
3398
- import { jsx as jsx41 } from "react/jsx-runtime";
1836
+ import { jsx as jsx23 } from "react/jsx-runtime";
3399
1837
  var Toaster = ({ ...props }) => {
3400
1838
  const { theme = "system" } = useTheme();
3401
- return /* @__PURE__ */ jsx41(
1839
+ return /* @__PURE__ */ jsx23(
3402
1840
  Sonner,
3403
1841
  {
3404
1842
  theme,
3405
1843
  className: "toaster group",
3406
1844
  icons: {
3407
- success: /* @__PURE__ */ jsx41(CircleCheck, { className: "size-4" }),
3408
- info: /* @__PURE__ */ jsx41(Info, { className: "size-4" }),
3409
- warning: /* @__PURE__ */ jsx41(AlertTriangle, { className: "size-4" }),
3410
- error: /* @__PURE__ */ jsx41(AlertOctagon, { className: "size-4" }),
3411
- loading: /* @__PURE__ */ jsx41(Loader2, { className: "size-4 animate-spin" })
1845
+ success: /* @__PURE__ */ jsx23(CircleCheck, { className: "size-4" }),
1846
+ info: /* @__PURE__ */ jsx23(Info, { className: "size-4" }),
1847
+ warning: /* @__PURE__ */ jsx23(AlertTriangle, { className: "size-4" }),
1848
+ error: /* @__PURE__ */ jsx23(AlertOctagon, { className: "size-4" }),
1849
+ loading: /* @__PURE__ */ jsx23(Loader2, { className: "size-4 animate-spin" })
3412
1850
  },
3413
1851
  style: {
3414
1852
  "--normal-bg": "var(--popover)",