@blips/ui 0.0.1

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