@journal-ds/react 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs ADDED
@@ -0,0 +1,3913 @@
1
+ 'use strict';
2
+
3
+ var clsx = require('clsx');
4
+ var tailwindMerge = require('tailwind-merge');
5
+ var AccordionPrimitive = require('@radix-ui/react-accordion');
6
+ var lucideReact = require('lucide-react');
7
+ var jsxRuntime = require('react/jsx-runtime');
8
+ var classVarianceAuthority = require('class-variance-authority');
9
+ var AlertDialogPrimitive = require('@radix-ui/react-alert-dialog');
10
+ var reactSlot = require('@radix-ui/react-slot');
11
+ var AspectRatioPrimitive = require('@radix-ui/react-aspect-ratio');
12
+ var AvatarPrimitive = require('@radix-ui/react-avatar');
13
+ var React2 = require('react');
14
+ var reactDayPicker = require('react-day-picker');
15
+ var useEmblaCarousel = require('embla-carousel-react');
16
+ var CheckboxPrimitive = require('@radix-ui/react-checkbox');
17
+ var CollapsiblePrimitive = require('@radix-ui/react-collapsible');
18
+ var cmdk = require('cmdk');
19
+ var DialogPrimitive = require('@radix-ui/react-dialog');
20
+ var ContextMenuPrimitive = require('@radix-ui/react-context-menu');
21
+ var vaul = require('vaul');
22
+ var DropdownMenuPrimitive = require('@radix-ui/react-dropdown-menu');
23
+ var reactHookForm = require('react-hook-form');
24
+ var LabelPrimitive = require('@radix-ui/react-label');
25
+ var HoverCardPrimitive = require('@radix-ui/react-hover-card');
26
+ var inputOtp = require('input-otp');
27
+ var MenubarPrimitive = require('@radix-ui/react-menubar');
28
+ var NavigationMenuPrimitive = require('@radix-ui/react-navigation-menu');
29
+ var PopoverPrimitive = require('@radix-ui/react-popover');
30
+ var ProgressPrimitive = require('@radix-ui/react-progress');
31
+ var RadioGroupPrimitive = require('@radix-ui/react-radio-group');
32
+ var ResizablePrimitive = require('react-resizable-panels');
33
+ var ScrollAreaPrimitive = require('@radix-ui/react-scroll-area');
34
+ var SelectPrimitive = require('@radix-ui/react-select');
35
+ var SeparatorPrimitive = require('@radix-ui/react-separator');
36
+ var SliderPrimitive = require('@radix-ui/react-slider');
37
+ var sonner = require('sonner');
38
+ var SwitchPrimitive = require('@radix-ui/react-switch');
39
+ var TabsPrimitive = require('@radix-ui/react-tabs');
40
+ var ToastPrimitives = require('@radix-ui/react-toast');
41
+ var TogglePrimitive = require('@radix-ui/react-toggle');
42
+ var ToggleGroupPrimitive = require('@radix-ui/react-toggle-group');
43
+ var TooltipPrimitive = require('@radix-ui/react-tooltip');
44
+
45
+ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
46
+
47
+ function _interopNamespace(e) {
48
+ if (e && e.__esModule) return e;
49
+ var n = Object.create(null);
50
+ if (e) {
51
+ Object.keys(e).forEach(function (k) {
52
+ if (k !== 'default') {
53
+ var d = Object.getOwnPropertyDescriptor(e, k);
54
+ Object.defineProperty(n, k, d.get ? d : {
55
+ enumerable: true,
56
+ get: function () { return e[k]; }
57
+ });
58
+ }
59
+ });
60
+ }
61
+ n.default = e;
62
+ return Object.freeze(n);
63
+ }
64
+
65
+ var AccordionPrimitive__namespace = /*#__PURE__*/_interopNamespace(AccordionPrimitive);
66
+ var AlertDialogPrimitive__namespace = /*#__PURE__*/_interopNamespace(AlertDialogPrimitive);
67
+ var AspectRatioPrimitive__namespace = /*#__PURE__*/_interopNamespace(AspectRatioPrimitive);
68
+ var AvatarPrimitive__namespace = /*#__PURE__*/_interopNamespace(AvatarPrimitive);
69
+ var React2__namespace = /*#__PURE__*/_interopNamespace(React2);
70
+ var useEmblaCarousel__default = /*#__PURE__*/_interopDefault(useEmblaCarousel);
71
+ var CheckboxPrimitive__namespace = /*#__PURE__*/_interopNamespace(CheckboxPrimitive);
72
+ var CollapsiblePrimitive__namespace = /*#__PURE__*/_interopNamespace(CollapsiblePrimitive);
73
+ var DialogPrimitive__namespace = /*#__PURE__*/_interopNamespace(DialogPrimitive);
74
+ var ContextMenuPrimitive__namespace = /*#__PURE__*/_interopNamespace(ContextMenuPrimitive);
75
+ var DropdownMenuPrimitive__namespace = /*#__PURE__*/_interopNamespace(DropdownMenuPrimitive);
76
+ var LabelPrimitive__namespace = /*#__PURE__*/_interopNamespace(LabelPrimitive);
77
+ var HoverCardPrimitive__namespace = /*#__PURE__*/_interopNamespace(HoverCardPrimitive);
78
+ var MenubarPrimitive__namespace = /*#__PURE__*/_interopNamespace(MenubarPrimitive);
79
+ var NavigationMenuPrimitive__namespace = /*#__PURE__*/_interopNamespace(NavigationMenuPrimitive);
80
+ var PopoverPrimitive__namespace = /*#__PURE__*/_interopNamespace(PopoverPrimitive);
81
+ var ProgressPrimitive__namespace = /*#__PURE__*/_interopNamespace(ProgressPrimitive);
82
+ var RadioGroupPrimitive__namespace = /*#__PURE__*/_interopNamespace(RadioGroupPrimitive);
83
+ var ResizablePrimitive__namespace = /*#__PURE__*/_interopNamespace(ResizablePrimitive);
84
+ var ScrollAreaPrimitive__namespace = /*#__PURE__*/_interopNamespace(ScrollAreaPrimitive);
85
+ var SelectPrimitive__namespace = /*#__PURE__*/_interopNamespace(SelectPrimitive);
86
+ var SeparatorPrimitive__namespace = /*#__PURE__*/_interopNamespace(SeparatorPrimitive);
87
+ var SliderPrimitive__namespace = /*#__PURE__*/_interopNamespace(SliderPrimitive);
88
+ var SwitchPrimitive__namespace = /*#__PURE__*/_interopNamespace(SwitchPrimitive);
89
+ var TabsPrimitive__namespace = /*#__PURE__*/_interopNamespace(TabsPrimitive);
90
+ var ToastPrimitives__namespace = /*#__PURE__*/_interopNamespace(ToastPrimitives);
91
+ var TogglePrimitive__namespace = /*#__PURE__*/_interopNamespace(TogglePrimitive);
92
+ var ToggleGroupPrimitive__namespace = /*#__PURE__*/_interopNamespace(ToggleGroupPrimitive);
93
+ var TooltipPrimitive__namespace = /*#__PURE__*/_interopNamespace(TooltipPrimitive);
94
+
95
+ // src/lib/utils.ts
96
+ function cn(...inputs) {
97
+ return tailwindMerge.twMerge(clsx.clsx(inputs));
98
+ }
99
+ function Accordion({
100
+ ...props
101
+ }) {
102
+ return /* @__PURE__ */ jsxRuntime.jsx(AccordionPrimitive__namespace.Root, { "data-slot": "accordion", ...props });
103
+ }
104
+ function AccordionItem({
105
+ className,
106
+ ...props
107
+ }) {
108
+ return /* @__PURE__ */ jsxRuntime.jsx(
109
+ AccordionPrimitive__namespace.Item,
110
+ {
111
+ "data-slot": "accordion-item",
112
+ className: cn("border-b last:border-b-0", className),
113
+ ...props
114
+ }
115
+ );
116
+ }
117
+ function AccordionTrigger({
118
+ className,
119
+ children,
120
+ ...props
121
+ }) {
122
+ return /* @__PURE__ */ jsxRuntime.jsx(AccordionPrimitive__namespace.Header, { className: "flex", children: /* @__PURE__ */ jsxRuntime.jsxs(
123
+ AccordionPrimitive__namespace.Trigger,
124
+ {
125
+ "data-slot": "accordion-trigger",
126
+ className: cn(
127
+ "focus-visible:border-ring focus-visible:ring-ring/50 flex flex-1 items-start justify-between gap-4 rounded-md py-4 text-left text-sm font-medium transition-all outline-none hover:underline focus-visible:ring-[3px] disabled:pointer-events-none disabled:opacity-50 [&[data-state=open]>svg]:rotate-180",
128
+ className
129
+ ),
130
+ ...props,
131
+ children: [
132
+ children,
133
+ /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronDownIcon, { className: "text-muted-foreground pointer-events-none size-4 shrink-0 translate-y-0.5 transition-transform duration-200" })
134
+ ]
135
+ }
136
+ ) });
137
+ }
138
+ function AccordionContent({
139
+ className,
140
+ children,
141
+ ...props
142
+ }) {
143
+ return /* @__PURE__ */ jsxRuntime.jsx(
144
+ AccordionPrimitive__namespace.Content,
145
+ {
146
+ "data-slot": "accordion-content",
147
+ className: "data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down overflow-hidden text-sm",
148
+ ...props,
149
+ children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("pt-0 pb-4", className), children })
150
+ }
151
+ );
152
+ }
153
+ var alertVariants = classVarianceAuthority.cva(
154
+ "relative w-full rounded-lg border px-4 py-3 text-sm grid has-[>svg]:grid-cols-[calc(var(--spacing)*4)_1fr] grid-cols-[0_1fr] has-[>svg]:gap-x-3 gap-y-0.5 items-start [&>svg]:size-4 [&>svg]:translate-y-0.5 [&>svg]:text-current",
155
+ {
156
+ variants: {
157
+ variant: {
158
+ default: "bg-card text-card-foreground",
159
+ destructive: "text-destructive bg-card [&>svg]:text-current *:data-[slot=alert-description]:text-destructive/90"
160
+ }
161
+ },
162
+ defaultVariants: {
163
+ variant: "default"
164
+ }
165
+ }
166
+ );
167
+ function Alert({
168
+ className,
169
+ variant,
170
+ ...props
171
+ }) {
172
+ return /* @__PURE__ */ jsxRuntime.jsx(
173
+ "div",
174
+ {
175
+ "data-slot": "alert",
176
+ role: "alert",
177
+ className: cn(alertVariants({ variant }), className),
178
+ ...props
179
+ }
180
+ );
181
+ }
182
+ function AlertTitle({ className, ...props }) {
183
+ return /* @__PURE__ */ jsxRuntime.jsx(
184
+ "div",
185
+ {
186
+ "data-slot": "alert-title",
187
+ className: cn(
188
+ "col-start-2 line-clamp-1 min-h-4 font-medium tracking-tight",
189
+ className
190
+ ),
191
+ ...props
192
+ }
193
+ );
194
+ }
195
+ function AlertDescription({
196
+ className,
197
+ ...props
198
+ }) {
199
+ return /* @__PURE__ */ jsxRuntime.jsx(
200
+ "div",
201
+ {
202
+ "data-slot": "alert-description",
203
+ className: cn(
204
+ "text-muted-foreground col-start-2 grid justify-items-start gap-1 text-sm [&_p]:leading-relaxed",
205
+ className
206
+ ),
207
+ ...props
208
+ }
209
+ );
210
+ }
211
+ var buttonVariants = classVarianceAuthority.cva(
212
+ "inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",
213
+ {
214
+ variants: {
215
+ variant: {
216
+ default: "bg-primary text-primary-foreground shadow-xs hover:bg-primary/90",
217
+ destructive: "bg-destructive text-white shadow-xs hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60",
218
+ outline: "border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50",
219
+ secondary: "bg-secondary text-secondary-foreground shadow-xs hover:bg-secondary/80",
220
+ ghost: "hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50",
221
+ link: "text-primary underline-offset-4 hover:underline"
222
+ },
223
+ size: {
224
+ default: "h-9 px-4 py-2 has-[>svg]:px-3",
225
+ sm: "h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5",
226
+ lg: "h-10 rounded-md px-6 has-[>svg]:px-4",
227
+ icon: "size-9"
228
+ }
229
+ },
230
+ defaultVariants: {
231
+ variant: "default",
232
+ size: "default"
233
+ }
234
+ }
235
+ );
236
+ function Button({
237
+ className,
238
+ variant,
239
+ size,
240
+ asChild = false,
241
+ ...props
242
+ }) {
243
+ const Comp = asChild ? reactSlot.Slot : "button";
244
+ return /* @__PURE__ */ jsxRuntime.jsx(
245
+ Comp,
246
+ {
247
+ "data-slot": "button",
248
+ className: cn(buttonVariants({ variant, size, className })),
249
+ ...props
250
+ }
251
+ );
252
+ }
253
+ function AlertDialog({
254
+ ...props
255
+ }) {
256
+ return /* @__PURE__ */ jsxRuntime.jsx(AlertDialogPrimitive__namespace.Root, { "data-slot": "alert-dialog", ...props });
257
+ }
258
+ function AlertDialogTrigger({
259
+ ...props
260
+ }) {
261
+ return /* @__PURE__ */ jsxRuntime.jsx(AlertDialogPrimitive__namespace.Trigger, { "data-slot": "alert-dialog-trigger", ...props });
262
+ }
263
+ function AlertDialogPortal({
264
+ ...props
265
+ }) {
266
+ return /* @__PURE__ */ jsxRuntime.jsx(AlertDialogPrimitive__namespace.Portal, { "data-slot": "alert-dialog-portal", ...props });
267
+ }
268
+ function AlertDialogOverlay({
269
+ className,
270
+ ...props
271
+ }) {
272
+ return /* @__PURE__ */ jsxRuntime.jsx(
273
+ AlertDialogPrimitive__namespace.Overlay,
274
+ {
275
+ "data-slot": "alert-dialog-overlay",
276
+ className: cn(
277
+ "data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50",
278
+ className
279
+ ),
280
+ ...props
281
+ }
282
+ );
283
+ }
284
+ function AlertDialogContent({
285
+ className,
286
+ ...props
287
+ }) {
288
+ return /* @__PURE__ */ jsxRuntime.jsxs(AlertDialogPortal, { children: [
289
+ /* @__PURE__ */ jsxRuntime.jsx(AlertDialogOverlay, {}),
290
+ /* @__PURE__ */ jsxRuntime.jsx(
291
+ AlertDialogPrimitive__namespace.Content,
292
+ {
293
+ "data-slot": "alert-dialog-content",
294
+ className: cn(
295
+ "bg-background 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 fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border p-6 shadow-lg duration-200 sm:max-w-lg",
296
+ className
297
+ ),
298
+ ...props
299
+ }
300
+ )
301
+ ] });
302
+ }
303
+ function AlertDialogHeader({
304
+ className,
305
+ ...props
306
+ }) {
307
+ return /* @__PURE__ */ jsxRuntime.jsx(
308
+ "div",
309
+ {
310
+ "data-slot": "alert-dialog-header",
311
+ className: cn("flex flex-col gap-2 text-center sm:text-left", className),
312
+ ...props
313
+ }
314
+ );
315
+ }
316
+ function AlertDialogFooter({
317
+ className,
318
+ ...props
319
+ }) {
320
+ return /* @__PURE__ */ jsxRuntime.jsx(
321
+ "div",
322
+ {
323
+ "data-slot": "alert-dialog-footer",
324
+ className: cn(
325
+ "flex flex-col-reverse gap-2 sm:flex-row sm:justify-end",
326
+ className
327
+ ),
328
+ ...props
329
+ }
330
+ );
331
+ }
332
+ function AlertDialogTitle({
333
+ className,
334
+ ...props
335
+ }) {
336
+ return /* @__PURE__ */ jsxRuntime.jsx(
337
+ AlertDialogPrimitive__namespace.Title,
338
+ {
339
+ "data-slot": "alert-dialog-title",
340
+ className: cn("text-lg font-semibold", className),
341
+ ...props
342
+ }
343
+ );
344
+ }
345
+ function AlertDialogDescription({
346
+ className,
347
+ ...props
348
+ }) {
349
+ return /* @__PURE__ */ jsxRuntime.jsx(
350
+ AlertDialogPrimitive__namespace.Description,
351
+ {
352
+ "data-slot": "alert-dialog-description",
353
+ className: cn("text-muted-foreground text-sm", className),
354
+ ...props
355
+ }
356
+ );
357
+ }
358
+ function AlertDialogAction({
359
+ className,
360
+ ...props
361
+ }) {
362
+ return /* @__PURE__ */ jsxRuntime.jsx(
363
+ AlertDialogPrimitive__namespace.Action,
364
+ {
365
+ className: cn(buttonVariants(), className),
366
+ ...props
367
+ }
368
+ );
369
+ }
370
+ function AlertDialogCancel({
371
+ className,
372
+ ...props
373
+ }) {
374
+ return /* @__PURE__ */ jsxRuntime.jsx(
375
+ AlertDialogPrimitive__namespace.Cancel,
376
+ {
377
+ className: cn(buttonVariants({ variant: "outline" }), className),
378
+ ...props
379
+ }
380
+ );
381
+ }
382
+ function AspectRatio({
383
+ ...props
384
+ }) {
385
+ return /* @__PURE__ */ jsxRuntime.jsx(AspectRatioPrimitive__namespace.Root, { "data-slot": "aspect-ratio", ...props });
386
+ }
387
+ function Avatar({
388
+ className,
389
+ ...props
390
+ }) {
391
+ return /* @__PURE__ */ jsxRuntime.jsx(
392
+ AvatarPrimitive__namespace.Root,
393
+ {
394
+ "data-slot": "avatar",
395
+ className: cn(
396
+ "relative flex size-8 shrink-0 overflow-hidden rounded-full",
397
+ className
398
+ ),
399
+ ...props
400
+ }
401
+ );
402
+ }
403
+ function AvatarImage({
404
+ className,
405
+ ...props
406
+ }) {
407
+ return /* @__PURE__ */ jsxRuntime.jsx(
408
+ AvatarPrimitive__namespace.Image,
409
+ {
410
+ "data-slot": "avatar-image",
411
+ className: cn("aspect-square size-full", className),
412
+ ...props
413
+ }
414
+ );
415
+ }
416
+ function AvatarFallback({
417
+ className,
418
+ ...props
419
+ }) {
420
+ return /* @__PURE__ */ jsxRuntime.jsx(
421
+ AvatarPrimitive__namespace.Fallback,
422
+ {
423
+ "data-slot": "avatar-fallback",
424
+ className: cn(
425
+ "bg-muted flex size-full items-center justify-center rounded-full",
426
+ className
427
+ ),
428
+ ...props
429
+ }
430
+ );
431
+ }
432
+ var badgeVariants = classVarianceAuthority.cva(
433
+ "inline-flex items-center justify-center rounded-md border px-2 py-0.5 text-xs font-medium w-fit whitespace-nowrap shrink-0 [&>svg]:size-3 gap-1 [&>svg]:pointer-events-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive transition-[color,box-shadow] overflow-hidden",
434
+ {
435
+ variants: {
436
+ variant: {
437
+ default: "border-transparent bg-primary text-primary-foreground [a&]:hover:bg-primary/90",
438
+ secondary: "border-transparent bg-secondary text-secondary-foreground [a&]:hover:bg-secondary/90",
439
+ destructive: "border-transparent bg-destructive text-white [a&]:hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60",
440
+ outline: "text-foreground [a&]:hover:bg-accent [a&]:hover:text-accent-foreground"
441
+ }
442
+ },
443
+ defaultVariants: {
444
+ variant: "default"
445
+ }
446
+ }
447
+ );
448
+ function Badge({
449
+ className,
450
+ variant,
451
+ asChild = false,
452
+ ...props
453
+ }) {
454
+ const Comp = asChild ? reactSlot.Slot : "span";
455
+ return /* @__PURE__ */ jsxRuntime.jsx(
456
+ Comp,
457
+ {
458
+ "data-slot": "badge",
459
+ className: cn(badgeVariants({ variant }), className),
460
+ ...props
461
+ }
462
+ );
463
+ }
464
+ function Breadcrumb({ ...props }) {
465
+ return /* @__PURE__ */ jsxRuntime.jsx("nav", { "aria-label": "breadcrumb", "data-slot": "breadcrumb", ...props });
466
+ }
467
+ function BreadcrumbList({ className, ...props }) {
468
+ return /* @__PURE__ */ jsxRuntime.jsx(
469
+ "ol",
470
+ {
471
+ "data-slot": "breadcrumb-list",
472
+ className: cn(
473
+ "text-muted-foreground flex flex-wrap items-center gap-1.5 text-sm break-words sm:gap-2.5",
474
+ className
475
+ ),
476
+ ...props
477
+ }
478
+ );
479
+ }
480
+ function BreadcrumbItem({ className, ...props }) {
481
+ return /* @__PURE__ */ jsxRuntime.jsx(
482
+ "li",
483
+ {
484
+ "data-slot": "breadcrumb-item",
485
+ className: cn("inline-flex items-center gap-1.5", className),
486
+ ...props
487
+ }
488
+ );
489
+ }
490
+ function BreadcrumbLink({
491
+ asChild,
492
+ className,
493
+ ...props
494
+ }) {
495
+ const Comp = asChild ? reactSlot.Slot : "a";
496
+ return /* @__PURE__ */ jsxRuntime.jsx(
497
+ Comp,
498
+ {
499
+ "data-slot": "breadcrumb-link",
500
+ className: cn("hover:text-foreground transition-colors", className),
501
+ ...props
502
+ }
503
+ );
504
+ }
505
+ function BreadcrumbPage({ className, ...props }) {
506
+ return /* @__PURE__ */ jsxRuntime.jsx(
507
+ "span",
508
+ {
509
+ "data-slot": "breadcrumb-page",
510
+ role: "link",
511
+ "aria-disabled": "true",
512
+ "aria-current": "page",
513
+ className: cn("text-foreground font-normal", className),
514
+ ...props
515
+ }
516
+ );
517
+ }
518
+ function BreadcrumbSeparator({
519
+ children,
520
+ className,
521
+ ...props
522
+ }) {
523
+ return /* @__PURE__ */ jsxRuntime.jsx(
524
+ "li",
525
+ {
526
+ "data-slot": "breadcrumb-separator",
527
+ role: "presentation",
528
+ "aria-hidden": "true",
529
+ className: cn("[&>svg]:size-3.5", className),
530
+ ...props,
531
+ children: children ?? /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronRight, {})
532
+ }
533
+ );
534
+ }
535
+ function BreadcrumbEllipsis({
536
+ className,
537
+ ...props
538
+ }) {
539
+ return /* @__PURE__ */ jsxRuntime.jsxs(
540
+ "span",
541
+ {
542
+ "data-slot": "breadcrumb-ellipsis",
543
+ role: "presentation",
544
+ "aria-hidden": "true",
545
+ className: cn("flex size-9 items-center justify-center", className),
546
+ ...props,
547
+ children: [
548
+ /* @__PURE__ */ jsxRuntime.jsx(lucideReact.MoreHorizontal, { className: "size-4" }),
549
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "sr-only", children: "More" })
550
+ ]
551
+ }
552
+ );
553
+ }
554
+ function Calendar({
555
+ className,
556
+ classNames,
557
+ showOutsideDays = true,
558
+ captionLayout = "label",
559
+ buttonVariant = "ghost",
560
+ formatters,
561
+ components,
562
+ ...props
563
+ }) {
564
+ const defaultClassNames = reactDayPicker.getDefaultClassNames();
565
+ return /* @__PURE__ */ jsxRuntime.jsx(
566
+ reactDayPicker.DayPicker,
567
+ {
568
+ showOutsideDays,
569
+ className: cn(
570
+ "bg-background group/calendar p-3 [--cell-size:--spacing(8)] [[data-slot=card-content]_&]:bg-transparent [[data-slot=popover-content]_&]:bg-transparent",
571
+ String.raw`rtl:**:[.rdp-button\_next>svg]:rotate-180`,
572
+ String.raw`rtl:**:[.rdp-button\_previous>svg]:rotate-180`,
573
+ className
574
+ ),
575
+ captionLayout,
576
+ formatters: {
577
+ formatMonthDropdown: (date) => date.toLocaleString("default", { month: "short" }),
578
+ ...formatters
579
+ },
580
+ classNames: {
581
+ root: cn("w-fit", defaultClassNames.root),
582
+ months: cn(
583
+ "flex gap-4 flex-col md:flex-row relative",
584
+ defaultClassNames.months
585
+ ),
586
+ month: cn("flex flex-col w-full gap-4", defaultClassNames.month),
587
+ nav: cn(
588
+ "flex items-center gap-1 w-full absolute top-0 inset-x-0 justify-between",
589
+ defaultClassNames.nav
590
+ ),
591
+ button_previous: cn(
592
+ buttonVariants({ variant: buttonVariant }),
593
+ "size-(--cell-size) aria-disabled:opacity-50 p-0 select-none",
594
+ defaultClassNames.button_previous
595
+ ),
596
+ button_next: cn(
597
+ buttonVariants({ variant: buttonVariant }),
598
+ "size-(--cell-size) aria-disabled:opacity-50 p-0 select-none",
599
+ defaultClassNames.button_next
600
+ ),
601
+ month_caption: cn(
602
+ "flex items-center justify-center h-(--cell-size) w-full px-(--cell-size)",
603
+ defaultClassNames.month_caption
604
+ ),
605
+ dropdowns: cn(
606
+ "w-full flex items-center text-sm font-medium justify-center h-(--cell-size) gap-1.5",
607
+ defaultClassNames.dropdowns
608
+ ),
609
+ dropdown_root: cn(
610
+ "relative has-focus:border-ring border border-input shadow-xs has-focus:ring-ring/50 has-focus:ring-[3px] rounded-md",
611
+ defaultClassNames.dropdown_root
612
+ ),
613
+ dropdown: cn(
614
+ "absolute bg-popover inset-0 opacity-0",
615
+ defaultClassNames.dropdown
616
+ ),
617
+ caption_label: cn(
618
+ "select-none font-medium",
619
+ captionLayout === "label" ? "text-sm" : "rounded-md pl-2 pr-1 flex items-center gap-1 text-sm h-8 [&>svg]:text-muted-foreground [&>svg]:size-3.5",
620
+ defaultClassNames.caption_label
621
+ ),
622
+ table: "w-full border-collapse",
623
+ weekdays: cn("flex", defaultClassNames.weekdays),
624
+ weekday: cn(
625
+ "text-muted-foreground rounded-md flex-1 font-normal text-[0.8rem] select-none",
626
+ defaultClassNames.weekday
627
+ ),
628
+ week: cn("flex w-full mt-2", defaultClassNames.week),
629
+ week_number_header: cn(
630
+ "select-none w-(--cell-size)",
631
+ defaultClassNames.week_number_header
632
+ ),
633
+ week_number: cn(
634
+ "text-[0.8rem] select-none text-muted-foreground",
635
+ defaultClassNames.week_number
636
+ ),
637
+ day: cn(
638
+ "relative w-full h-full p-0 text-center [&:first-child[data-selected=true]_button]:rounded-l-md [&:last-child[data-selected=true]_button]:rounded-r-md group/day aspect-square select-none",
639
+ defaultClassNames.day
640
+ ),
641
+ range_start: cn(
642
+ "rounded-l-md bg-accent",
643
+ defaultClassNames.range_start
644
+ ),
645
+ range_middle: cn("rounded-none", defaultClassNames.range_middle),
646
+ range_end: cn("rounded-r-md bg-accent", defaultClassNames.range_end),
647
+ today: cn(
648
+ "bg-accent text-accent-foreground rounded-md data-[selected=true]:rounded-none",
649
+ defaultClassNames.today
650
+ ),
651
+ outside: cn(
652
+ "text-muted-foreground aria-selected:text-muted-foreground",
653
+ defaultClassNames.outside
654
+ ),
655
+ disabled: cn(
656
+ "text-muted-foreground opacity-50",
657
+ defaultClassNames.disabled
658
+ ),
659
+ hidden: cn("invisible", defaultClassNames.hidden),
660
+ ...classNames
661
+ },
662
+ components: {
663
+ Root: ({ className: className2, rootRef, ...props2 }) => {
664
+ return /* @__PURE__ */ jsxRuntime.jsx(
665
+ "div",
666
+ {
667
+ "data-slot": "calendar",
668
+ ref: rootRef,
669
+ className: cn(className2),
670
+ ...props2
671
+ }
672
+ );
673
+ },
674
+ Chevron: ({ className: className2, orientation, ...props2 }) => {
675
+ if (orientation === "left") {
676
+ return /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronLeftIcon, { className: cn("size-4", className2), ...props2 });
677
+ }
678
+ if (orientation === "right") {
679
+ return /* @__PURE__ */ jsxRuntime.jsx(
680
+ lucideReact.ChevronRightIcon,
681
+ {
682
+ className: cn("size-4", className2),
683
+ ...props2
684
+ }
685
+ );
686
+ }
687
+ return /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronDownIcon, { className: cn("size-4", className2), ...props2 });
688
+ },
689
+ DayButton: CalendarDayButton,
690
+ WeekNumber: ({ children, ...props2 }) => {
691
+ return /* @__PURE__ */ jsxRuntime.jsx("td", { ...props2, children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex size-(--cell-size) items-center justify-center text-center", children }) });
692
+ },
693
+ ...components
694
+ },
695
+ ...props
696
+ }
697
+ );
698
+ }
699
+ function CalendarDayButton({
700
+ className,
701
+ day,
702
+ modifiers,
703
+ ...props
704
+ }) {
705
+ const defaultClassNames = reactDayPicker.getDefaultClassNames();
706
+ const ref = React2__namespace.useRef(null);
707
+ React2__namespace.useEffect(() => {
708
+ if (modifiers.focused) ref.current?.focus();
709
+ }, [modifiers.focused]);
710
+ return /* @__PURE__ */ jsxRuntime.jsx(
711
+ Button,
712
+ {
713
+ ref,
714
+ variant: "ghost",
715
+ size: "icon",
716
+ "data-day": day.date.toLocaleDateString(),
717
+ "data-selected-single": modifiers.selected && !modifiers.range_start && !modifiers.range_end && !modifiers.range_middle,
718
+ "data-range-start": modifiers.range_start,
719
+ "data-range-end": modifiers.range_end,
720
+ "data-range-middle": modifiers.range_middle,
721
+ className: cn(
722
+ "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 dark:hover:text-accent-foreground flex aspect-square size-auto w-full min-w-(--cell-size) flex-col gap-1 leading-none font-normal group-data-[focused=true]/day:relative group-data-[focused=true]/day:z-10 group-data-[focused=true]/day:ring-[3px] data-[range-end=true]:rounded-md data-[range-end=true]:rounded-r-md data-[range-middle=true]:rounded-none data-[range-start=true]:rounded-md data-[range-start=true]:rounded-l-md [&>span]:text-xs [&>span]:opacity-70",
723
+ defaultClassNames.day,
724
+ className
725
+ ),
726
+ ...props
727
+ }
728
+ );
729
+ }
730
+ function Card({ className, ...props }) {
731
+ return /* @__PURE__ */ jsxRuntime.jsx(
732
+ "div",
733
+ {
734
+ "data-slot": "card",
735
+ className: cn(
736
+ "bg-card text-card-foreground flex flex-col gap-6 rounded-xl border py-6 shadow-sm",
737
+ className
738
+ ),
739
+ ...props
740
+ }
741
+ );
742
+ }
743
+ function CardHeader({ className, ...props }) {
744
+ return /* @__PURE__ */ jsxRuntime.jsx(
745
+ "div",
746
+ {
747
+ "data-slot": "card-header",
748
+ className: cn(
749
+ "@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-1.5 px-6 has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-6",
750
+ className
751
+ ),
752
+ ...props
753
+ }
754
+ );
755
+ }
756
+ function CardTitle({ className, ...props }) {
757
+ return /* @__PURE__ */ jsxRuntime.jsx(
758
+ "div",
759
+ {
760
+ "data-slot": "card-title",
761
+ className: cn("leading-none font-semibold", className),
762
+ ...props
763
+ }
764
+ );
765
+ }
766
+ function CardDescription({ className, ...props }) {
767
+ return /* @__PURE__ */ jsxRuntime.jsx(
768
+ "div",
769
+ {
770
+ "data-slot": "card-description",
771
+ className: cn("text-muted-foreground text-sm", className),
772
+ ...props
773
+ }
774
+ );
775
+ }
776
+ function CardAction({ className, ...props }) {
777
+ return /* @__PURE__ */ jsxRuntime.jsx(
778
+ "div",
779
+ {
780
+ "data-slot": "card-action",
781
+ className: cn(
782
+ "col-start-2 row-span-2 row-start-1 self-start justify-self-end",
783
+ className
784
+ ),
785
+ ...props
786
+ }
787
+ );
788
+ }
789
+ function CardContent({ className, ...props }) {
790
+ return /* @__PURE__ */ jsxRuntime.jsx(
791
+ "div",
792
+ {
793
+ "data-slot": "card-content",
794
+ className: cn("px-6", className),
795
+ ...props
796
+ }
797
+ );
798
+ }
799
+ function CardFooter({ className, ...props }) {
800
+ return /* @__PURE__ */ jsxRuntime.jsx(
801
+ "div",
802
+ {
803
+ "data-slot": "card-footer",
804
+ className: cn("flex items-center px-6 [.border-t]:pt-6", className),
805
+ ...props
806
+ }
807
+ );
808
+ }
809
+ var CarouselContext = React2__namespace.createContext(null);
810
+ function useCarousel() {
811
+ const context = React2__namespace.useContext(CarouselContext);
812
+ if (!context) {
813
+ throw new Error("useCarousel must be used within a <Carousel />");
814
+ }
815
+ return context;
816
+ }
817
+ function Carousel({
818
+ orientation = "horizontal",
819
+ opts,
820
+ setApi,
821
+ plugins,
822
+ className,
823
+ children,
824
+ ...props
825
+ }) {
826
+ const [carouselRef, api] = useEmblaCarousel__default.default(
827
+ {
828
+ ...opts,
829
+ axis: orientation === "horizontal" ? "x" : "y"
830
+ },
831
+ plugins
832
+ );
833
+ const [canScrollPrev, setCanScrollPrev] = React2__namespace.useState(false);
834
+ const [canScrollNext, setCanScrollNext] = React2__namespace.useState(false);
835
+ const onSelect = React2__namespace.useCallback((api2) => {
836
+ if (!api2) return;
837
+ setCanScrollPrev(api2.canScrollPrev());
838
+ setCanScrollNext(api2.canScrollNext());
839
+ }, []);
840
+ const scrollPrev = React2__namespace.useCallback(() => {
841
+ api?.scrollPrev();
842
+ }, [api]);
843
+ const scrollNext = React2__namespace.useCallback(() => {
844
+ api?.scrollNext();
845
+ }, [api]);
846
+ const handleKeyDown = React2__namespace.useCallback(
847
+ (event) => {
848
+ if (event.key === "ArrowLeft") {
849
+ event.preventDefault();
850
+ scrollPrev();
851
+ } else if (event.key === "ArrowRight") {
852
+ event.preventDefault();
853
+ scrollNext();
854
+ }
855
+ },
856
+ [scrollPrev, scrollNext]
857
+ );
858
+ React2__namespace.useEffect(() => {
859
+ if (!api || !setApi) return;
860
+ setApi(api);
861
+ }, [api, setApi]);
862
+ React2__namespace.useEffect(() => {
863
+ if (!api) return;
864
+ onSelect(api);
865
+ api.on("reInit", onSelect);
866
+ api.on("select", onSelect);
867
+ return () => {
868
+ api?.off("select", onSelect);
869
+ };
870
+ }, [api, onSelect]);
871
+ return /* @__PURE__ */ jsxRuntime.jsx(
872
+ CarouselContext.Provider,
873
+ {
874
+ value: {
875
+ carouselRef,
876
+ api,
877
+ opts,
878
+ orientation: orientation || (opts?.axis === "y" ? "vertical" : "horizontal"),
879
+ scrollPrev,
880
+ scrollNext,
881
+ canScrollPrev,
882
+ canScrollNext
883
+ },
884
+ children: /* @__PURE__ */ jsxRuntime.jsx(
885
+ "div",
886
+ {
887
+ onKeyDownCapture: handleKeyDown,
888
+ className: cn("relative", className),
889
+ role: "region",
890
+ "aria-roledescription": "carousel",
891
+ "data-slot": "carousel",
892
+ ...props,
893
+ children
894
+ }
895
+ )
896
+ }
897
+ );
898
+ }
899
+ function CarouselContent({ className, ...props }) {
900
+ const { carouselRef, orientation } = useCarousel();
901
+ return /* @__PURE__ */ jsxRuntime.jsx(
902
+ "div",
903
+ {
904
+ ref: carouselRef,
905
+ className: "overflow-hidden",
906
+ "data-slot": "carousel-content",
907
+ children: /* @__PURE__ */ jsxRuntime.jsx(
908
+ "div",
909
+ {
910
+ className: cn(
911
+ "flex",
912
+ orientation === "horizontal" ? "-ml-4" : "-mt-4 flex-col",
913
+ className
914
+ ),
915
+ ...props
916
+ }
917
+ )
918
+ }
919
+ );
920
+ }
921
+ function CarouselItem({ className, ...props }) {
922
+ const { orientation } = useCarousel();
923
+ return /* @__PURE__ */ jsxRuntime.jsx(
924
+ "div",
925
+ {
926
+ role: "group",
927
+ "aria-roledescription": "slide",
928
+ "data-slot": "carousel-item",
929
+ className: cn(
930
+ "min-w-0 shrink-0 grow-0 basis-full",
931
+ orientation === "horizontal" ? "pl-4" : "pt-4",
932
+ className
933
+ ),
934
+ ...props
935
+ }
936
+ );
937
+ }
938
+ function CarouselPrevious({
939
+ className,
940
+ variant = "outline",
941
+ size = "icon",
942
+ ...props
943
+ }) {
944
+ const { orientation, scrollPrev, canScrollPrev } = useCarousel();
945
+ return /* @__PURE__ */ jsxRuntime.jsxs(
946
+ Button,
947
+ {
948
+ "data-slot": "carousel-previous",
949
+ variant,
950
+ size,
951
+ className: cn(
952
+ "absolute size-8 rounded-full",
953
+ orientation === "horizontal" ? "top-1/2 -left-12 -translate-y-1/2" : "-top-12 left-1/2 -translate-x-1/2 rotate-90",
954
+ className
955
+ ),
956
+ disabled: !canScrollPrev,
957
+ onClick: scrollPrev,
958
+ ...props,
959
+ children: [
960
+ /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ArrowLeft, {}),
961
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "sr-only", children: "Previous slide" })
962
+ ]
963
+ }
964
+ );
965
+ }
966
+ function CarouselNext({
967
+ className,
968
+ variant = "outline",
969
+ size = "icon",
970
+ ...props
971
+ }) {
972
+ const { orientation, scrollNext, canScrollNext } = useCarousel();
973
+ return /* @__PURE__ */ jsxRuntime.jsxs(
974
+ Button,
975
+ {
976
+ "data-slot": "carousel-next",
977
+ variant,
978
+ size,
979
+ className: cn(
980
+ "absolute size-8 rounded-full",
981
+ orientation === "horizontal" ? "top-1/2 -right-12 -translate-y-1/2" : "-bottom-12 left-1/2 -translate-x-1/2 rotate-90",
982
+ className
983
+ ),
984
+ disabled: !canScrollNext,
985
+ onClick: scrollNext,
986
+ ...props,
987
+ children: [
988
+ /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ArrowRight, {}),
989
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "sr-only", children: "Next slide" })
990
+ ]
991
+ }
992
+ );
993
+ }
994
+ function Checkbox({
995
+ className,
996
+ ...props
997
+ }) {
998
+ return /* @__PURE__ */ jsxRuntime.jsx(
999
+ CheckboxPrimitive__namespace.Root,
1000
+ {
1001
+ "data-slot": "checkbox",
1002
+ className: cn(
1003
+ "peer border-input dark:bg-input/30 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground dark:data-[state=checked]:bg-primary data-[state=checked]:border-primary focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive size-4 shrink-0 rounded-[4px] border shadow-xs transition-shadow outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50",
1004
+ className
1005
+ ),
1006
+ ...props,
1007
+ children: /* @__PURE__ */ jsxRuntime.jsx(
1008
+ CheckboxPrimitive__namespace.Indicator,
1009
+ {
1010
+ "data-slot": "checkbox-indicator",
1011
+ className: "flex items-center justify-center text-current transition-none",
1012
+ children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.CheckIcon, { className: "size-3.5" })
1013
+ }
1014
+ )
1015
+ }
1016
+ );
1017
+ }
1018
+ function Collapsible({
1019
+ ...props
1020
+ }) {
1021
+ return /* @__PURE__ */ jsxRuntime.jsx(CollapsiblePrimitive__namespace.Root, { "data-slot": "collapsible", ...props });
1022
+ }
1023
+ function CollapsibleTrigger2({
1024
+ ...props
1025
+ }) {
1026
+ return /* @__PURE__ */ jsxRuntime.jsx(
1027
+ CollapsiblePrimitive__namespace.CollapsibleTrigger,
1028
+ {
1029
+ "data-slot": "collapsible-trigger",
1030
+ ...props
1031
+ }
1032
+ );
1033
+ }
1034
+ function CollapsibleContent2({
1035
+ ...props
1036
+ }) {
1037
+ return /* @__PURE__ */ jsxRuntime.jsx(
1038
+ CollapsiblePrimitive__namespace.CollapsibleContent,
1039
+ {
1040
+ "data-slot": "collapsible-content",
1041
+ ...props
1042
+ }
1043
+ );
1044
+ }
1045
+ function Dialog({
1046
+ ...props
1047
+ }) {
1048
+ return /* @__PURE__ */ jsxRuntime.jsx(DialogPrimitive__namespace.Root, { "data-slot": "dialog", ...props });
1049
+ }
1050
+ function DialogTrigger({
1051
+ ...props
1052
+ }) {
1053
+ return /* @__PURE__ */ jsxRuntime.jsx(DialogPrimitive__namespace.Trigger, { "data-slot": "dialog-trigger", ...props });
1054
+ }
1055
+ function DialogPortal({
1056
+ ...props
1057
+ }) {
1058
+ return /* @__PURE__ */ jsxRuntime.jsx(DialogPrimitive__namespace.Portal, { "data-slot": "dialog-portal", ...props });
1059
+ }
1060
+ function DialogClose({
1061
+ ...props
1062
+ }) {
1063
+ return /* @__PURE__ */ jsxRuntime.jsx(DialogPrimitive__namespace.Close, { "data-slot": "dialog-close", ...props });
1064
+ }
1065
+ function DialogOverlay({
1066
+ className,
1067
+ ...props
1068
+ }) {
1069
+ return /* @__PURE__ */ jsxRuntime.jsx(
1070
+ DialogPrimitive__namespace.Overlay,
1071
+ {
1072
+ "data-slot": "dialog-overlay",
1073
+ className: cn(
1074
+ "data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50",
1075
+ className
1076
+ ),
1077
+ ...props
1078
+ }
1079
+ );
1080
+ }
1081
+ function DialogContent({
1082
+ className,
1083
+ children,
1084
+ showCloseButton = true,
1085
+ ...props
1086
+ }) {
1087
+ return /* @__PURE__ */ jsxRuntime.jsxs(DialogPortal, { "data-slot": "dialog-portal", children: [
1088
+ /* @__PURE__ */ jsxRuntime.jsx(DialogOverlay, {}),
1089
+ /* @__PURE__ */ jsxRuntime.jsxs(
1090
+ DialogPrimitive__namespace.Content,
1091
+ {
1092
+ "data-slot": "dialog-content",
1093
+ className: cn(
1094
+ "bg-background 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 fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border p-6 shadow-lg duration-200 sm:max-w-lg",
1095
+ className
1096
+ ),
1097
+ ...props,
1098
+ children: [
1099
+ children,
1100
+ showCloseButton && /* @__PURE__ */ jsxRuntime.jsxs(
1101
+ DialogPrimitive__namespace.Close,
1102
+ {
1103
+ "data-slot": "dialog-close",
1104
+ className: "ring-offset-background focus:ring-ring data-[state=open]:bg-accent data-[state=open]:text-muted-foreground absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
1105
+ children: [
1106
+ /* @__PURE__ */ jsxRuntime.jsx(lucideReact.XIcon, {}),
1107
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "sr-only", children: "Close" })
1108
+ ]
1109
+ }
1110
+ )
1111
+ ]
1112
+ }
1113
+ )
1114
+ ] });
1115
+ }
1116
+ function DialogHeader({ className, ...props }) {
1117
+ return /* @__PURE__ */ jsxRuntime.jsx(
1118
+ "div",
1119
+ {
1120
+ "data-slot": "dialog-header",
1121
+ className: cn("flex flex-col gap-2 text-center sm:text-left", className),
1122
+ ...props
1123
+ }
1124
+ );
1125
+ }
1126
+ function DialogFooter({ className, ...props }) {
1127
+ return /* @__PURE__ */ jsxRuntime.jsx(
1128
+ "div",
1129
+ {
1130
+ "data-slot": "dialog-footer",
1131
+ className: cn(
1132
+ "flex flex-col-reverse gap-2 sm:flex-row sm:justify-end",
1133
+ className
1134
+ ),
1135
+ ...props
1136
+ }
1137
+ );
1138
+ }
1139
+ function DialogTitle({
1140
+ className,
1141
+ ...props
1142
+ }) {
1143
+ return /* @__PURE__ */ jsxRuntime.jsx(
1144
+ DialogPrimitive__namespace.Title,
1145
+ {
1146
+ "data-slot": "dialog-title",
1147
+ className: cn("text-lg leading-none font-semibold", className),
1148
+ ...props
1149
+ }
1150
+ );
1151
+ }
1152
+ function DialogDescription({
1153
+ className,
1154
+ ...props
1155
+ }) {
1156
+ return /* @__PURE__ */ jsxRuntime.jsx(
1157
+ DialogPrimitive__namespace.Description,
1158
+ {
1159
+ "data-slot": "dialog-description",
1160
+ className: cn("text-muted-foreground text-sm", className),
1161
+ ...props
1162
+ }
1163
+ );
1164
+ }
1165
+ function Command({
1166
+ className,
1167
+ ...props
1168
+ }) {
1169
+ return /* @__PURE__ */ jsxRuntime.jsx(
1170
+ cmdk.Command,
1171
+ {
1172
+ "data-slot": "command",
1173
+ className: cn(
1174
+ "bg-popover text-popover-foreground flex h-full w-full flex-col overflow-hidden rounded-md",
1175
+ className
1176
+ ),
1177
+ ...props
1178
+ }
1179
+ );
1180
+ }
1181
+ function CommandDialog({
1182
+ title = "Command Palette",
1183
+ description = "Search for a command to run...",
1184
+ children,
1185
+ className,
1186
+ showCloseButton = true,
1187
+ commandProps,
1188
+ ...props
1189
+ }) {
1190
+ return /* @__PURE__ */ jsxRuntime.jsxs(Dialog, { ...props, children: [
1191
+ /* @__PURE__ */ jsxRuntime.jsxs(DialogHeader, { className: "sr-only", children: [
1192
+ /* @__PURE__ */ jsxRuntime.jsx(DialogTitle, { children: title }),
1193
+ /* @__PURE__ */ jsxRuntime.jsx(DialogDescription, { children: description })
1194
+ ] }),
1195
+ /* @__PURE__ */ jsxRuntime.jsx(
1196
+ DialogContent,
1197
+ {
1198
+ className: cn("overflow-hidden p-0", className),
1199
+ showCloseButton,
1200
+ children: /* @__PURE__ */ jsxRuntime.jsx(Command, { className: "[&_[cmdk-group-heading]]:text-muted-foreground **:data-[slot=command-input-wrapper]:h-12 [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group]]:px-2 [&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0 [&_[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", ...commandProps, children })
1201
+ }
1202
+ )
1203
+ ] });
1204
+ }
1205
+ function CommandInput({
1206
+ className,
1207
+ ...props
1208
+ }) {
1209
+ return /* @__PURE__ */ jsxRuntime.jsxs(
1210
+ "div",
1211
+ {
1212
+ "data-slot": "command-input-wrapper",
1213
+ className: "flex h-9 items-center gap-2 border-b px-3",
1214
+ children: [
1215
+ /* @__PURE__ */ jsxRuntime.jsx(lucideReact.SearchIcon, { className: "size-4 shrink-0 opacity-50" }),
1216
+ /* @__PURE__ */ jsxRuntime.jsx(
1217
+ cmdk.Command.Input,
1218
+ {
1219
+ "data-slot": "command-input",
1220
+ className: cn(
1221
+ "placeholder:text-muted-foreground flex h-10 w-full rounded-md bg-transparent py-3 text-sm outline-hidden disabled:cursor-not-allowed disabled:opacity-50",
1222
+ className
1223
+ ),
1224
+ ...props
1225
+ }
1226
+ )
1227
+ ]
1228
+ }
1229
+ );
1230
+ }
1231
+ function CommandList({
1232
+ className,
1233
+ ...props
1234
+ }) {
1235
+ return /* @__PURE__ */ jsxRuntime.jsx(
1236
+ cmdk.Command.List,
1237
+ {
1238
+ "data-slot": "command-list",
1239
+ className: cn(
1240
+ "max-h-[300px] scroll-py-1 overflow-x-hidden overflow-y-auto",
1241
+ className
1242
+ ),
1243
+ ...props
1244
+ }
1245
+ );
1246
+ }
1247
+ function CommandEmpty({
1248
+ ...props
1249
+ }) {
1250
+ return /* @__PURE__ */ jsxRuntime.jsx(
1251
+ cmdk.Command.Empty,
1252
+ {
1253
+ "data-slot": "command-empty",
1254
+ className: "py-6 text-center text-sm",
1255
+ ...props
1256
+ }
1257
+ );
1258
+ }
1259
+ function CommandGroup({
1260
+ className,
1261
+ ...props
1262
+ }) {
1263
+ return /* @__PURE__ */ jsxRuntime.jsx(
1264
+ cmdk.Command.Group,
1265
+ {
1266
+ "data-slot": "command-group",
1267
+ className: cn(
1268
+ "text-foreground [&_[cmdk-group-heading]]:text-muted-foreground overflow-hidden p-1 [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium",
1269
+ className
1270
+ ),
1271
+ ...props
1272
+ }
1273
+ );
1274
+ }
1275
+ function CommandSeparator({
1276
+ className,
1277
+ ...props
1278
+ }) {
1279
+ return /* @__PURE__ */ jsxRuntime.jsx(
1280
+ cmdk.Command.Separator,
1281
+ {
1282
+ "data-slot": "command-separator",
1283
+ className: cn("bg-border -mx-1 h-px", className),
1284
+ ...props
1285
+ }
1286
+ );
1287
+ }
1288
+ function CommandItem({
1289
+ className,
1290
+ ...props
1291
+ }) {
1292
+ return /* @__PURE__ */ jsxRuntime.jsx(
1293
+ cmdk.Command.Item,
1294
+ {
1295
+ "data-slot": "command-item",
1296
+ className: cn(
1297
+ "data-[selected=true]:bg-accent data-[selected=true]:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
1298
+ className
1299
+ ),
1300
+ ...props
1301
+ }
1302
+ );
1303
+ }
1304
+ function CommandShortcut({
1305
+ className,
1306
+ ...props
1307
+ }) {
1308
+ return /* @__PURE__ */ jsxRuntime.jsx(
1309
+ "span",
1310
+ {
1311
+ "data-slot": "command-shortcut",
1312
+ className: cn(
1313
+ "text-muted-foreground ml-auto text-xs tracking-widest",
1314
+ className
1315
+ ),
1316
+ ...props
1317
+ }
1318
+ );
1319
+ }
1320
+ function ContextMenu({
1321
+ ...props
1322
+ }) {
1323
+ return /* @__PURE__ */ jsxRuntime.jsx(ContextMenuPrimitive__namespace.Root, { "data-slot": "context-menu", ...props });
1324
+ }
1325
+ function ContextMenuTrigger({
1326
+ ...props
1327
+ }) {
1328
+ return /* @__PURE__ */ jsxRuntime.jsx(ContextMenuPrimitive__namespace.Trigger, { "data-slot": "context-menu-trigger", ...props });
1329
+ }
1330
+ function ContextMenuGroup({
1331
+ ...props
1332
+ }) {
1333
+ return /* @__PURE__ */ jsxRuntime.jsx(ContextMenuPrimitive__namespace.Group, { "data-slot": "context-menu-group", ...props });
1334
+ }
1335
+ function ContextMenuPortal({
1336
+ ...props
1337
+ }) {
1338
+ return /* @__PURE__ */ jsxRuntime.jsx(ContextMenuPrimitive__namespace.Portal, { "data-slot": "context-menu-portal", ...props });
1339
+ }
1340
+ function ContextMenuSub({
1341
+ ...props
1342
+ }) {
1343
+ return /* @__PURE__ */ jsxRuntime.jsx(ContextMenuPrimitive__namespace.Sub, { "data-slot": "context-menu-sub", ...props });
1344
+ }
1345
+ function ContextMenuRadioGroup({
1346
+ ...props
1347
+ }) {
1348
+ return /* @__PURE__ */ jsxRuntime.jsx(
1349
+ ContextMenuPrimitive__namespace.RadioGroup,
1350
+ {
1351
+ "data-slot": "context-menu-radio-group",
1352
+ ...props
1353
+ }
1354
+ );
1355
+ }
1356
+ function ContextMenuSubTrigger({
1357
+ className,
1358
+ inset,
1359
+ children,
1360
+ ...props
1361
+ }) {
1362
+ return /* @__PURE__ */ jsxRuntime.jsxs(
1363
+ ContextMenuPrimitive__namespace.SubTrigger,
1364
+ {
1365
+ "data-slot": "context-menu-sub-trigger",
1366
+ "data-inset": inset,
1367
+ className: cn(
1368
+ "focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground flex cursor-default items-center rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[inset]:pl-8 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
1369
+ className
1370
+ ),
1371
+ ...props,
1372
+ children: [
1373
+ children,
1374
+ /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronRightIcon, { className: "ml-auto" })
1375
+ ]
1376
+ }
1377
+ );
1378
+ }
1379
+ function ContextMenuSubContent({
1380
+ className,
1381
+ ...props
1382
+ }) {
1383
+ return /* @__PURE__ */ jsxRuntime.jsx(
1384
+ ContextMenuPrimitive__namespace.SubContent,
1385
+ {
1386
+ "data-slot": "context-menu-sub-content",
1387
+ className: cn(
1388
+ "bg-popover 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 z-50 min-w-[8rem] origin-(--radix-context-menu-content-transform-origin) overflow-hidden rounded-md border p-1 shadow-lg",
1389
+ className
1390
+ ),
1391
+ ...props
1392
+ }
1393
+ );
1394
+ }
1395
+ function ContextMenuContent({
1396
+ className,
1397
+ ...props
1398
+ }) {
1399
+ return /* @__PURE__ */ jsxRuntime.jsx(ContextMenuPrimitive__namespace.Portal, { children: /* @__PURE__ */ jsxRuntime.jsx(
1400
+ ContextMenuPrimitive__namespace.Content,
1401
+ {
1402
+ "data-slot": "context-menu-content",
1403
+ className: cn(
1404
+ "bg-popover 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 z-50 max-h-(--radix-context-menu-content-available-height) min-w-[8rem] origin-(--radix-context-menu-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border p-1 shadow-md",
1405
+ className
1406
+ ),
1407
+ ...props
1408
+ }
1409
+ ) });
1410
+ }
1411
+ function ContextMenuItem({
1412
+ className,
1413
+ inset,
1414
+ variant = "default",
1415
+ ...props
1416
+ }) {
1417
+ return /* @__PURE__ */ jsxRuntime.jsx(
1418
+ ContextMenuPrimitive__namespace.Item,
1419
+ {
1420
+ "data-slot": "context-menu-item",
1421
+ "data-inset": inset,
1422
+ "data-variant": variant,
1423
+ className: cn(
1424
+ "focus:bg-accent focus:text-accent-foreground data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 dark:data-[variant=destructive]:focus:bg-destructive/20 data-[variant=destructive]:focus:text-destructive data-[variant=destructive]:*:[svg]:!text-destructive [&_svg:not([class*='text-'])]:text-muted-foreground relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[inset]:pl-8 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
1425
+ className
1426
+ ),
1427
+ ...props
1428
+ }
1429
+ );
1430
+ }
1431
+ function ContextMenuCheckboxItem({
1432
+ className,
1433
+ children,
1434
+ checked,
1435
+ ...props
1436
+ }) {
1437
+ return /* @__PURE__ */ jsxRuntime.jsxs(
1438
+ ContextMenuPrimitive__namespace.CheckboxItem,
1439
+ {
1440
+ "data-slot": "context-menu-checkbox-item",
1441
+ className: cn(
1442
+ "focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center gap-2 rounded-sm py-1.5 pr-2 pl-8 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
1443
+ className
1444
+ ),
1445
+ checked,
1446
+ ...props,
1447
+ children: [
1448
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "pointer-events-none absolute left-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ jsxRuntime.jsx(ContextMenuPrimitive__namespace.ItemIndicator, { children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.CheckIcon, { className: "size-4" }) }) }),
1449
+ children
1450
+ ]
1451
+ }
1452
+ );
1453
+ }
1454
+ function ContextMenuRadioItem({
1455
+ className,
1456
+ children,
1457
+ ...props
1458
+ }) {
1459
+ return /* @__PURE__ */ jsxRuntime.jsxs(
1460
+ ContextMenuPrimitive__namespace.RadioItem,
1461
+ {
1462
+ "data-slot": "context-menu-radio-item",
1463
+ className: cn(
1464
+ "focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center gap-2 rounded-sm py-1.5 pr-2 pl-8 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
1465
+ className
1466
+ ),
1467
+ ...props,
1468
+ children: [
1469
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "pointer-events-none absolute left-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ jsxRuntime.jsx(ContextMenuPrimitive__namespace.ItemIndicator, { children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.CircleIcon, { className: "size-2 fill-current" }) }) }),
1470
+ children
1471
+ ]
1472
+ }
1473
+ );
1474
+ }
1475
+ function ContextMenuLabel({
1476
+ className,
1477
+ inset,
1478
+ ...props
1479
+ }) {
1480
+ return /* @__PURE__ */ jsxRuntime.jsx(
1481
+ ContextMenuPrimitive__namespace.Label,
1482
+ {
1483
+ "data-slot": "context-menu-label",
1484
+ "data-inset": inset,
1485
+ className: cn(
1486
+ "text-foreground px-2 py-1.5 text-sm font-medium data-[inset]:pl-8",
1487
+ className
1488
+ ),
1489
+ ...props
1490
+ }
1491
+ );
1492
+ }
1493
+ function ContextMenuSeparator({
1494
+ className,
1495
+ ...props
1496
+ }) {
1497
+ return /* @__PURE__ */ jsxRuntime.jsx(
1498
+ ContextMenuPrimitive__namespace.Separator,
1499
+ {
1500
+ "data-slot": "context-menu-separator",
1501
+ className: cn("bg-border -mx-1 my-1 h-px", className),
1502
+ ...props
1503
+ }
1504
+ );
1505
+ }
1506
+ function ContextMenuShortcut({
1507
+ className,
1508
+ ...props
1509
+ }) {
1510
+ return /* @__PURE__ */ jsxRuntime.jsx(
1511
+ "span",
1512
+ {
1513
+ "data-slot": "context-menu-shortcut",
1514
+ className: cn(
1515
+ "text-muted-foreground ml-auto text-xs tracking-widest",
1516
+ className
1517
+ ),
1518
+ ...props
1519
+ }
1520
+ );
1521
+ }
1522
+ function Drawer({
1523
+ ...props
1524
+ }) {
1525
+ return /* @__PURE__ */ jsxRuntime.jsx(vaul.Drawer.Root, { "data-slot": "drawer", ...props });
1526
+ }
1527
+ function DrawerTrigger({
1528
+ ...props
1529
+ }) {
1530
+ return /* @__PURE__ */ jsxRuntime.jsx(vaul.Drawer.Trigger, { "data-slot": "drawer-trigger", ...props });
1531
+ }
1532
+ function DrawerPortal({
1533
+ ...props
1534
+ }) {
1535
+ return /* @__PURE__ */ jsxRuntime.jsx(vaul.Drawer.Portal, { "data-slot": "drawer-portal", ...props });
1536
+ }
1537
+ function DrawerClose({
1538
+ ...props
1539
+ }) {
1540
+ return /* @__PURE__ */ jsxRuntime.jsx(vaul.Drawer.Close, { "data-slot": "drawer-close", ...props });
1541
+ }
1542
+ function DrawerOverlay({
1543
+ className,
1544
+ ...props
1545
+ }) {
1546
+ return /* @__PURE__ */ jsxRuntime.jsx(
1547
+ vaul.Drawer.Overlay,
1548
+ {
1549
+ "data-slot": "drawer-overlay",
1550
+ className: cn(
1551
+ "data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50",
1552
+ className
1553
+ ),
1554
+ ...props
1555
+ }
1556
+ );
1557
+ }
1558
+ function DrawerContent({
1559
+ className,
1560
+ children,
1561
+ ...props
1562
+ }) {
1563
+ return /* @__PURE__ */ jsxRuntime.jsxs(DrawerPortal, { "data-slot": "drawer-portal", children: [
1564
+ /* @__PURE__ */ jsxRuntime.jsx(DrawerOverlay, {}),
1565
+ /* @__PURE__ */ jsxRuntime.jsxs(
1566
+ vaul.Drawer.Content,
1567
+ {
1568
+ "data-slot": "drawer-content",
1569
+ className: cn(
1570
+ "group/drawer-content bg-background fixed z-50 flex h-auto flex-col",
1571
+ "data-[vaul-drawer-direction=top]:inset-x-0 data-[vaul-drawer-direction=top]:top-0 data-[vaul-drawer-direction=top]:mb-24 data-[vaul-drawer-direction=top]:max-h-[80vh] data-[vaul-drawer-direction=top]:rounded-b-lg data-[vaul-drawer-direction=top]:border-b",
1572
+ "data-[vaul-drawer-direction=bottom]:inset-x-0 data-[vaul-drawer-direction=bottom]:bottom-0 data-[vaul-drawer-direction=bottom]:mt-24 data-[vaul-drawer-direction=bottom]:max-h-[80vh] data-[vaul-drawer-direction=bottom]:rounded-t-lg data-[vaul-drawer-direction=bottom]:border-t",
1573
+ "data-[vaul-drawer-direction=right]:inset-y-0 data-[vaul-drawer-direction=right]:right-0 data-[vaul-drawer-direction=right]:w-3/4 data-[vaul-drawer-direction=right]:border-l data-[vaul-drawer-direction=right]:sm:max-w-sm",
1574
+ "data-[vaul-drawer-direction=left]:inset-y-0 data-[vaul-drawer-direction=left]:left-0 data-[vaul-drawer-direction=left]:w-3/4 data-[vaul-drawer-direction=left]:border-r data-[vaul-drawer-direction=left]:sm:max-w-sm",
1575
+ className
1576
+ ),
1577
+ ...props,
1578
+ children: [
1579
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "bg-muted mx-auto mt-4 hidden h-2 w-[100px] shrink-0 rounded-full group-data-[vaul-drawer-direction=bottom]/drawer-content:block" }),
1580
+ children
1581
+ ]
1582
+ }
1583
+ )
1584
+ ] });
1585
+ }
1586
+ function DrawerHeader({ className, ...props }) {
1587
+ return /* @__PURE__ */ jsxRuntime.jsx(
1588
+ "div",
1589
+ {
1590
+ "data-slot": "drawer-header",
1591
+ className: cn(
1592
+ "flex flex-col gap-0.5 p-4 group-data-[vaul-drawer-direction=bottom]/drawer-content:text-center group-data-[vaul-drawer-direction=top]/drawer-content:text-center md:gap-1.5 md:text-left",
1593
+ className
1594
+ ),
1595
+ ...props
1596
+ }
1597
+ );
1598
+ }
1599
+ function DrawerFooter({ className, ...props }) {
1600
+ return /* @__PURE__ */ jsxRuntime.jsx(
1601
+ "div",
1602
+ {
1603
+ "data-slot": "drawer-footer",
1604
+ className: cn("mt-auto flex flex-col gap-2 p-4", className),
1605
+ ...props
1606
+ }
1607
+ );
1608
+ }
1609
+ function DrawerTitle({
1610
+ className,
1611
+ ...props
1612
+ }) {
1613
+ return /* @__PURE__ */ jsxRuntime.jsx(
1614
+ vaul.Drawer.Title,
1615
+ {
1616
+ "data-slot": "drawer-title",
1617
+ className: cn("text-foreground font-semibold", className),
1618
+ ...props
1619
+ }
1620
+ );
1621
+ }
1622
+ function DrawerDescription({
1623
+ className,
1624
+ ...props
1625
+ }) {
1626
+ return /* @__PURE__ */ jsxRuntime.jsx(
1627
+ vaul.Drawer.Description,
1628
+ {
1629
+ "data-slot": "drawer-description",
1630
+ className: cn("text-muted-foreground text-sm", className),
1631
+ ...props
1632
+ }
1633
+ );
1634
+ }
1635
+ function DropdownMenu({
1636
+ ...props
1637
+ }) {
1638
+ return /* @__PURE__ */ jsxRuntime.jsx(DropdownMenuPrimitive__namespace.Root, { "data-slot": "dropdown-menu", ...props });
1639
+ }
1640
+ function DropdownMenuPortal({
1641
+ ...props
1642
+ }) {
1643
+ return /* @__PURE__ */ jsxRuntime.jsx(DropdownMenuPrimitive__namespace.Portal, { "data-slot": "dropdown-menu-portal", ...props });
1644
+ }
1645
+ function DropdownMenuTrigger({
1646
+ ...props
1647
+ }) {
1648
+ return /* @__PURE__ */ jsxRuntime.jsx(
1649
+ DropdownMenuPrimitive__namespace.Trigger,
1650
+ {
1651
+ "data-slot": "dropdown-menu-trigger",
1652
+ ...props
1653
+ }
1654
+ );
1655
+ }
1656
+ function DropdownMenuContent({
1657
+ className,
1658
+ sideOffset = 4,
1659
+ ...props
1660
+ }) {
1661
+ return /* @__PURE__ */ jsxRuntime.jsx(DropdownMenuPrimitive__namespace.Portal, { children: /* @__PURE__ */ jsxRuntime.jsx(
1662
+ DropdownMenuPrimitive__namespace.Content,
1663
+ {
1664
+ "data-slot": "dropdown-menu-content",
1665
+ sideOffset,
1666
+ className: cn(
1667
+ "bg-popover 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 z-50 max-h-(--radix-dropdown-menu-content-available-height) min-w-[8rem] origin-(--radix-dropdown-menu-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border p-1 shadow-md",
1668
+ className
1669
+ ),
1670
+ ...props
1671
+ }
1672
+ ) });
1673
+ }
1674
+ function DropdownMenuGroup({
1675
+ ...props
1676
+ }) {
1677
+ return /* @__PURE__ */ jsxRuntime.jsx(DropdownMenuPrimitive__namespace.Group, { "data-slot": "dropdown-menu-group", ...props });
1678
+ }
1679
+ function DropdownMenuItem({
1680
+ className,
1681
+ inset,
1682
+ variant = "default",
1683
+ ...props
1684
+ }) {
1685
+ return /* @__PURE__ */ jsxRuntime.jsx(
1686
+ DropdownMenuPrimitive__namespace.Item,
1687
+ {
1688
+ "data-slot": "dropdown-menu-item",
1689
+ "data-inset": inset,
1690
+ "data-variant": variant,
1691
+ className: cn(
1692
+ "focus:bg-accent focus:text-accent-foreground data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 dark:data-[variant=destructive]:focus:bg-destructive/20 data-[variant=destructive]:focus:text-destructive data-[variant=destructive]:*:[svg]:!text-destructive [&_svg:not([class*='text-'])]:text-muted-foreground relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[inset]:pl-8 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
1693
+ className
1694
+ ),
1695
+ ...props
1696
+ }
1697
+ );
1698
+ }
1699
+ function DropdownMenuCheckboxItem({
1700
+ className,
1701
+ children,
1702
+ checked,
1703
+ ...props
1704
+ }) {
1705
+ return /* @__PURE__ */ jsxRuntime.jsxs(
1706
+ DropdownMenuPrimitive__namespace.CheckboxItem,
1707
+ {
1708
+ "data-slot": "dropdown-menu-checkbox-item",
1709
+ className: cn(
1710
+ "focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center gap-2 rounded-sm py-1.5 pr-2 pl-8 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
1711
+ className
1712
+ ),
1713
+ checked,
1714
+ ...props,
1715
+ children: [
1716
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "pointer-events-none absolute left-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ jsxRuntime.jsx(DropdownMenuPrimitive__namespace.ItemIndicator, { children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.CheckIcon, { className: "size-4" }) }) }),
1717
+ children
1718
+ ]
1719
+ }
1720
+ );
1721
+ }
1722
+ function DropdownMenuRadioGroup({
1723
+ ...props
1724
+ }) {
1725
+ return /* @__PURE__ */ jsxRuntime.jsx(
1726
+ DropdownMenuPrimitive__namespace.RadioGroup,
1727
+ {
1728
+ "data-slot": "dropdown-menu-radio-group",
1729
+ ...props
1730
+ }
1731
+ );
1732
+ }
1733
+ function DropdownMenuRadioItem({
1734
+ className,
1735
+ children,
1736
+ ...props
1737
+ }) {
1738
+ return /* @__PURE__ */ jsxRuntime.jsxs(
1739
+ DropdownMenuPrimitive__namespace.RadioItem,
1740
+ {
1741
+ "data-slot": "dropdown-menu-radio-item",
1742
+ className: cn(
1743
+ "focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center gap-2 rounded-sm py-1.5 pr-2 pl-8 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
1744
+ className
1745
+ ),
1746
+ ...props,
1747
+ children: [
1748
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "pointer-events-none absolute left-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ jsxRuntime.jsx(DropdownMenuPrimitive__namespace.ItemIndicator, { children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.CircleIcon, { className: "size-2 fill-current" }) }) }),
1749
+ children
1750
+ ]
1751
+ }
1752
+ );
1753
+ }
1754
+ function DropdownMenuLabel({
1755
+ className,
1756
+ inset,
1757
+ ...props
1758
+ }) {
1759
+ return /* @__PURE__ */ jsxRuntime.jsx(
1760
+ DropdownMenuPrimitive__namespace.Label,
1761
+ {
1762
+ "data-slot": "dropdown-menu-label",
1763
+ "data-inset": inset,
1764
+ className: cn(
1765
+ "px-2 py-1.5 text-sm font-medium data-[inset]:pl-8",
1766
+ className
1767
+ ),
1768
+ ...props
1769
+ }
1770
+ );
1771
+ }
1772
+ function DropdownMenuSeparator({
1773
+ className,
1774
+ ...props
1775
+ }) {
1776
+ return /* @__PURE__ */ jsxRuntime.jsx(
1777
+ DropdownMenuPrimitive__namespace.Separator,
1778
+ {
1779
+ "data-slot": "dropdown-menu-separator",
1780
+ className: cn("bg-border -mx-1 my-1 h-px", className),
1781
+ ...props
1782
+ }
1783
+ );
1784
+ }
1785
+ function DropdownMenuShortcut({
1786
+ className,
1787
+ ...props
1788
+ }) {
1789
+ return /* @__PURE__ */ jsxRuntime.jsx(
1790
+ "span",
1791
+ {
1792
+ "data-slot": "dropdown-menu-shortcut",
1793
+ className: cn(
1794
+ "text-muted-foreground ml-auto text-xs tracking-widest",
1795
+ className
1796
+ ),
1797
+ ...props
1798
+ }
1799
+ );
1800
+ }
1801
+ function DropdownMenuSub({
1802
+ ...props
1803
+ }) {
1804
+ return /* @__PURE__ */ jsxRuntime.jsx(DropdownMenuPrimitive__namespace.Sub, { "data-slot": "dropdown-menu-sub", ...props });
1805
+ }
1806
+ function DropdownMenuSubTrigger({
1807
+ className,
1808
+ inset,
1809
+ children,
1810
+ ...props
1811
+ }) {
1812
+ return /* @__PURE__ */ jsxRuntime.jsxs(
1813
+ DropdownMenuPrimitive__namespace.SubTrigger,
1814
+ {
1815
+ "data-slot": "dropdown-menu-sub-trigger",
1816
+ "data-inset": inset,
1817
+ className: cn(
1818
+ "focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground flex cursor-default items-center rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[inset]:pl-8",
1819
+ className
1820
+ ),
1821
+ ...props,
1822
+ children: [
1823
+ children,
1824
+ /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronRightIcon, { className: "ml-auto size-4" })
1825
+ ]
1826
+ }
1827
+ );
1828
+ }
1829
+ function DropdownMenuSubContent({
1830
+ className,
1831
+ ...props
1832
+ }) {
1833
+ return /* @__PURE__ */ jsxRuntime.jsx(
1834
+ DropdownMenuPrimitive__namespace.SubContent,
1835
+ {
1836
+ "data-slot": "dropdown-menu-sub-content",
1837
+ className: cn(
1838
+ "bg-popover 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 z-50 min-w-[8rem] origin-(--radix-dropdown-menu-content-transform-origin) overflow-hidden rounded-md border p-1 shadow-lg",
1839
+ className
1840
+ ),
1841
+ ...props
1842
+ }
1843
+ );
1844
+ }
1845
+ function Label3({
1846
+ className,
1847
+ ...props
1848
+ }) {
1849
+ return /* @__PURE__ */ jsxRuntime.jsx(
1850
+ LabelPrimitive__namespace.Root,
1851
+ {
1852
+ "data-slot": "label",
1853
+ className: cn(
1854
+ "flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50",
1855
+ className
1856
+ ),
1857
+ ...props
1858
+ }
1859
+ );
1860
+ }
1861
+ var Form = reactHookForm.FormProvider;
1862
+ var FormFieldContext = React2__namespace.createContext(
1863
+ {}
1864
+ );
1865
+ var FormField = ({
1866
+ ...props
1867
+ }) => {
1868
+ return /* @__PURE__ */ jsxRuntime.jsx(FormFieldContext.Provider, { value: { name: props.name }, children: /* @__PURE__ */ jsxRuntime.jsx(reactHookForm.Controller, { ...props }) });
1869
+ };
1870
+ var useFormField = () => {
1871
+ const fieldContext = React2__namespace.useContext(FormFieldContext);
1872
+ const itemContext = React2__namespace.useContext(FormItemContext);
1873
+ const { getFieldState } = reactHookForm.useFormContext();
1874
+ const formState = reactHookForm.useFormState({ name: fieldContext.name });
1875
+ const fieldState = getFieldState(fieldContext.name, formState);
1876
+ if (!fieldContext) {
1877
+ throw new Error("useFormField should be used within <FormField>");
1878
+ }
1879
+ const { id } = itemContext;
1880
+ return {
1881
+ id,
1882
+ name: fieldContext.name,
1883
+ formItemId: `${id}-form-item`,
1884
+ formDescriptionId: `${id}-form-item-description`,
1885
+ formMessageId: `${id}-form-item-message`,
1886
+ ...fieldState
1887
+ };
1888
+ };
1889
+ var FormItemContext = React2__namespace.createContext(
1890
+ {}
1891
+ );
1892
+ function FormItem({ className, ...props }) {
1893
+ const id = React2__namespace.useId();
1894
+ return /* @__PURE__ */ jsxRuntime.jsx(FormItemContext.Provider, { value: { id }, children: /* @__PURE__ */ jsxRuntime.jsx(
1895
+ "div",
1896
+ {
1897
+ "data-slot": "form-item",
1898
+ className: cn("grid gap-2", className),
1899
+ ...props
1900
+ }
1901
+ ) });
1902
+ }
1903
+ function FormLabel({
1904
+ className,
1905
+ ...props
1906
+ }) {
1907
+ const { error, formItemId } = useFormField();
1908
+ return /* @__PURE__ */ jsxRuntime.jsx(
1909
+ Label3,
1910
+ {
1911
+ "data-slot": "form-label",
1912
+ "data-error": !!error,
1913
+ className: cn("data-[error=true]:text-destructive", className),
1914
+ htmlFor: formItemId,
1915
+ ...props
1916
+ }
1917
+ );
1918
+ }
1919
+ function FormControl({ ...props }) {
1920
+ const { error, formItemId, formDescriptionId, formMessageId } = useFormField();
1921
+ return /* @__PURE__ */ jsxRuntime.jsx(
1922
+ reactSlot.Slot,
1923
+ {
1924
+ "data-slot": "form-control",
1925
+ id: formItemId,
1926
+ "aria-describedby": !error ? `${formDescriptionId}` : `${formDescriptionId} ${formMessageId}`,
1927
+ "aria-invalid": !!error,
1928
+ ...props
1929
+ }
1930
+ );
1931
+ }
1932
+ function FormDescription({ className, ...props }) {
1933
+ const { formDescriptionId } = useFormField();
1934
+ return /* @__PURE__ */ jsxRuntime.jsx(
1935
+ "p",
1936
+ {
1937
+ "data-slot": "form-description",
1938
+ id: formDescriptionId,
1939
+ className: cn("text-muted-foreground text-sm", className),
1940
+ ...props
1941
+ }
1942
+ );
1943
+ }
1944
+ function FormMessage({ className, ...props }) {
1945
+ const { error, formMessageId } = useFormField();
1946
+ const body = error ? String(error?.message ?? "") : props.children;
1947
+ if (!body) {
1948
+ return null;
1949
+ }
1950
+ return /* @__PURE__ */ jsxRuntime.jsx(
1951
+ "p",
1952
+ {
1953
+ "data-slot": "form-message",
1954
+ id: formMessageId,
1955
+ className: cn("text-destructive text-sm", className),
1956
+ ...props,
1957
+ children: body
1958
+ }
1959
+ );
1960
+ }
1961
+ function HoverCard({
1962
+ ...props
1963
+ }) {
1964
+ return /* @__PURE__ */ jsxRuntime.jsx(HoverCardPrimitive__namespace.Root, { "data-slot": "hover-card", ...props });
1965
+ }
1966
+ function HoverCardTrigger({
1967
+ ...props
1968
+ }) {
1969
+ return /* @__PURE__ */ jsxRuntime.jsx(HoverCardPrimitive__namespace.Trigger, { "data-slot": "hover-card-trigger", ...props });
1970
+ }
1971
+ function HoverCardContent({
1972
+ className,
1973
+ align = "center",
1974
+ sideOffset = 4,
1975
+ ...props
1976
+ }) {
1977
+ return /* @__PURE__ */ jsxRuntime.jsx(HoverCardPrimitive__namespace.Portal, { "data-slot": "hover-card-portal", children: /* @__PURE__ */ jsxRuntime.jsx(
1978
+ HoverCardPrimitive__namespace.Content,
1979
+ {
1980
+ "data-slot": "hover-card-content",
1981
+ align,
1982
+ sideOffset,
1983
+ className: cn(
1984
+ "bg-popover 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 z-50 w-64 origin-(--radix-hover-card-content-transform-origin) rounded-md border p-4 shadow-md outline-hidden",
1985
+ className
1986
+ ),
1987
+ ...props
1988
+ }
1989
+ ) });
1990
+ }
1991
+ function Input({ className, type, ...props }) {
1992
+ return /* @__PURE__ */ jsxRuntime.jsx(
1993
+ "input",
1994
+ {
1995
+ type,
1996
+ "data-slot": "input",
1997
+ className: cn(
1998
+ "file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-input flex h-9 w-full min-w-0 rounded-md border bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",
1999
+ "focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]",
2000
+ "aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",
2001
+ className
2002
+ ),
2003
+ ...props
2004
+ }
2005
+ );
2006
+ }
2007
+ function InputOTP({
2008
+ className,
2009
+ containerClassName,
2010
+ ...props
2011
+ }) {
2012
+ return /* @__PURE__ */ jsxRuntime.jsx(
2013
+ inputOtp.OTPInput,
2014
+ {
2015
+ "data-slot": "input-otp",
2016
+ containerClassName: cn(
2017
+ "flex items-center gap-2 has-disabled:opacity-50",
2018
+ containerClassName
2019
+ ),
2020
+ className: cn("disabled:cursor-not-allowed", className),
2021
+ ...props
2022
+ }
2023
+ );
2024
+ }
2025
+ function InputOTPGroup({ className, ...props }) {
2026
+ return /* @__PURE__ */ jsxRuntime.jsx(
2027
+ "div",
2028
+ {
2029
+ "data-slot": "input-otp-group",
2030
+ className: cn("flex items-center", className),
2031
+ ...props
2032
+ }
2033
+ );
2034
+ }
2035
+ function InputOTPSlot({
2036
+ index,
2037
+ className,
2038
+ ...props
2039
+ }) {
2040
+ const inputOTPContext = React2__namespace.useContext(inputOtp.OTPInputContext);
2041
+ const { char, hasFakeCaret, isActive } = inputOTPContext?.slots[index] ?? {};
2042
+ return /* @__PURE__ */ jsxRuntime.jsxs(
2043
+ "div",
2044
+ {
2045
+ "data-slot": "input-otp-slot",
2046
+ "data-active": isActive,
2047
+ className: cn(
2048
+ "data-[active=true]:border-ring data-[active=true]:ring-ring/50 data-[active=true]:aria-invalid:ring-destructive/20 dark:data-[active=true]:aria-invalid:ring-destructive/40 aria-invalid:border-destructive data-[active=true]:aria-invalid:border-destructive dark:bg-input/30 border-input relative flex h-9 w-9 items-center justify-center border-y border-r text-sm shadow-xs transition-all outline-none first:rounded-l-md first:border-l last:rounded-r-md data-[active=true]:z-10 data-[active=true]:ring-[3px]",
2049
+ className
2050
+ ),
2051
+ ...props,
2052
+ children: [
2053
+ char,
2054
+ hasFakeCaret && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "pointer-events-none absolute inset-0 flex items-center justify-center", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "animate-caret-blink bg-foreground h-4 w-px duration-1000" }) })
2055
+ ]
2056
+ }
2057
+ );
2058
+ }
2059
+ function InputOTPSeparator({ ...props }) {
2060
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { "data-slot": "input-otp-separator", role: "separator", ...props, children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.MinusIcon, {}) });
2061
+ }
2062
+ function Menubar({
2063
+ className,
2064
+ ...props
2065
+ }) {
2066
+ return /* @__PURE__ */ jsxRuntime.jsx(
2067
+ MenubarPrimitive__namespace.Root,
2068
+ {
2069
+ "data-slot": "menubar",
2070
+ className: cn(
2071
+ "bg-background flex h-9 items-center gap-1 rounded-md border p-1 shadow-xs",
2072
+ className
2073
+ ),
2074
+ ...props
2075
+ }
2076
+ );
2077
+ }
2078
+ function MenubarMenu({
2079
+ ...props
2080
+ }) {
2081
+ return /* @__PURE__ */ jsxRuntime.jsx(MenubarPrimitive__namespace.Menu, { "data-slot": "menubar-menu", ...props });
2082
+ }
2083
+ function MenubarGroup({
2084
+ ...props
2085
+ }) {
2086
+ return /* @__PURE__ */ jsxRuntime.jsx(MenubarPrimitive__namespace.Group, { "data-slot": "menubar-group", ...props });
2087
+ }
2088
+ function MenubarPortal({
2089
+ ...props
2090
+ }) {
2091
+ return /* @__PURE__ */ jsxRuntime.jsx(MenubarPrimitive__namespace.Portal, { "data-slot": "menubar-portal", ...props });
2092
+ }
2093
+ function MenubarRadioGroup({
2094
+ ...props
2095
+ }) {
2096
+ return /* @__PURE__ */ jsxRuntime.jsx(MenubarPrimitive__namespace.RadioGroup, { "data-slot": "menubar-radio-group", ...props });
2097
+ }
2098
+ function MenubarTrigger({
2099
+ className,
2100
+ ...props
2101
+ }) {
2102
+ return /* @__PURE__ */ jsxRuntime.jsx(
2103
+ MenubarPrimitive__namespace.Trigger,
2104
+ {
2105
+ "data-slot": "menubar-trigger",
2106
+ className: cn(
2107
+ "focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground flex items-center rounded-sm px-2 py-1 text-sm font-medium outline-hidden select-none",
2108
+ className
2109
+ ),
2110
+ ...props
2111
+ }
2112
+ );
2113
+ }
2114
+ function MenubarContent({
2115
+ className,
2116
+ align = "start",
2117
+ alignOffset = -4,
2118
+ sideOffset = 8,
2119
+ ...props
2120
+ }) {
2121
+ return /* @__PURE__ */ jsxRuntime.jsx(MenubarPortal, { children: /* @__PURE__ */ jsxRuntime.jsx(
2122
+ MenubarPrimitive__namespace.Content,
2123
+ {
2124
+ "data-slot": "menubar-content",
2125
+ align,
2126
+ alignOffset,
2127
+ sideOffset,
2128
+ className: cn(
2129
+ "bg-popover text-popover-foreground 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 z-50 min-w-[12rem] origin-(--radix-menubar-content-transform-origin) overflow-hidden rounded-md border p-1 shadow-md",
2130
+ className
2131
+ ),
2132
+ ...props
2133
+ }
2134
+ ) });
2135
+ }
2136
+ function MenubarItem({
2137
+ className,
2138
+ inset,
2139
+ variant = "default",
2140
+ ...props
2141
+ }) {
2142
+ return /* @__PURE__ */ jsxRuntime.jsx(
2143
+ MenubarPrimitive__namespace.Item,
2144
+ {
2145
+ "data-slot": "menubar-item",
2146
+ "data-inset": inset,
2147
+ "data-variant": variant,
2148
+ className: cn(
2149
+ "focus:bg-accent focus:text-accent-foreground data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 dark:data-[variant=destructive]:focus:bg-destructive/20 data-[variant=destructive]:focus:text-destructive data-[variant=destructive]:*:[svg]:!text-destructive [&_svg:not([class*='text-'])]:text-muted-foreground relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[inset]:pl-8 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
2150
+ className
2151
+ ),
2152
+ ...props
2153
+ }
2154
+ );
2155
+ }
2156
+ function MenubarCheckboxItem({
2157
+ className,
2158
+ children,
2159
+ checked,
2160
+ ...props
2161
+ }) {
2162
+ return /* @__PURE__ */ jsxRuntime.jsxs(
2163
+ MenubarPrimitive__namespace.CheckboxItem,
2164
+ {
2165
+ "data-slot": "menubar-checkbox-item",
2166
+ className: cn(
2167
+ "focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center gap-2 rounded-xs py-1.5 pr-2 pl-8 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
2168
+ className
2169
+ ),
2170
+ checked,
2171
+ ...props,
2172
+ children: [
2173
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "pointer-events-none absolute left-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ jsxRuntime.jsx(MenubarPrimitive__namespace.ItemIndicator, { children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.CheckIcon, { className: "size-4" }) }) }),
2174
+ children
2175
+ ]
2176
+ }
2177
+ );
2178
+ }
2179
+ function MenubarRadioItem({
2180
+ className,
2181
+ children,
2182
+ ...props
2183
+ }) {
2184
+ return /* @__PURE__ */ jsxRuntime.jsxs(
2185
+ MenubarPrimitive__namespace.RadioItem,
2186
+ {
2187
+ "data-slot": "menubar-radio-item",
2188
+ className: cn(
2189
+ "focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center gap-2 rounded-xs py-1.5 pr-2 pl-8 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
2190
+ className
2191
+ ),
2192
+ ...props,
2193
+ children: [
2194
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "pointer-events-none absolute left-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ jsxRuntime.jsx(MenubarPrimitive__namespace.ItemIndicator, { children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.CircleIcon, { className: "size-2 fill-current" }) }) }),
2195
+ children
2196
+ ]
2197
+ }
2198
+ );
2199
+ }
2200
+ function MenubarLabel({
2201
+ className,
2202
+ inset,
2203
+ ...props
2204
+ }) {
2205
+ return /* @__PURE__ */ jsxRuntime.jsx(
2206
+ MenubarPrimitive__namespace.Label,
2207
+ {
2208
+ "data-slot": "menubar-label",
2209
+ "data-inset": inset,
2210
+ className: cn(
2211
+ "px-2 py-1.5 text-sm font-medium data-[inset]:pl-8",
2212
+ className
2213
+ ),
2214
+ ...props
2215
+ }
2216
+ );
2217
+ }
2218
+ function MenubarSeparator({
2219
+ className,
2220
+ ...props
2221
+ }) {
2222
+ return /* @__PURE__ */ jsxRuntime.jsx(
2223
+ MenubarPrimitive__namespace.Separator,
2224
+ {
2225
+ "data-slot": "menubar-separator",
2226
+ className: cn("bg-border -mx-1 my-1 h-px", className),
2227
+ ...props
2228
+ }
2229
+ );
2230
+ }
2231
+ function MenubarShortcut({
2232
+ className,
2233
+ ...props
2234
+ }) {
2235
+ return /* @__PURE__ */ jsxRuntime.jsx(
2236
+ "span",
2237
+ {
2238
+ "data-slot": "menubar-shortcut",
2239
+ className: cn(
2240
+ "text-muted-foreground ml-auto text-xs tracking-widest",
2241
+ className
2242
+ ),
2243
+ ...props
2244
+ }
2245
+ );
2246
+ }
2247
+ function MenubarSub({
2248
+ ...props
2249
+ }) {
2250
+ return /* @__PURE__ */ jsxRuntime.jsx(MenubarPrimitive__namespace.Sub, { "data-slot": "menubar-sub", ...props });
2251
+ }
2252
+ function MenubarSubTrigger({
2253
+ className,
2254
+ inset,
2255
+ children,
2256
+ ...props
2257
+ }) {
2258
+ return /* @__PURE__ */ jsxRuntime.jsxs(
2259
+ MenubarPrimitive__namespace.SubTrigger,
2260
+ {
2261
+ "data-slot": "menubar-sub-trigger",
2262
+ "data-inset": inset,
2263
+ className: cn(
2264
+ "focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground flex cursor-default items-center rounded-sm px-2 py-1.5 text-sm outline-none select-none data-[inset]:pl-8",
2265
+ className
2266
+ ),
2267
+ ...props,
2268
+ children: [
2269
+ children,
2270
+ /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronRightIcon, { className: "ml-auto h-4 w-4" })
2271
+ ]
2272
+ }
2273
+ );
2274
+ }
2275
+ function MenubarSubContent({
2276
+ className,
2277
+ ...props
2278
+ }) {
2279
+ return /* @__PURE__ */ jsxRuntime.jsx(
2280
+ MenubarPrimitive__namespace.SubContent,
2281
+ {
2282
+ "data-slot": "menubar-sub-content",
2283
+ className: cn(
2284
+ "bg-popover 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 z-50 min-w-[8rem] origin-(--radix-menubar-content-transform-origin) overflow-hidden rounded-md border p-1 shadow-lg",
2285
+ className
2286
+ ),
2287
+ ...props
2288
+ }
2289
+ );
2290
+ }
2291
+ function NavigationMenu({
2292
+ className,
2293
+ children,
2294
+ viewport = true,
2295
+ ...props
2296
+ }) {
2297
+ return /* @__PURE__ */ jsxRuntime.jsxs(
2298
+ NavigationMenuPrimitive__namespace.Root,
2299
+ {
2300
+ "data-slot": "navigation-menu",
2301
+ "data-viewport": viewport,
2302
+ className: cn(
2303
+ "group/navigation-menu relative flex max-w-max flex-1 items-center justify-center",
2304
+ className
2305
+ ),
2306
+ ...props,
2307
+ children: [
2308
+ children,
2309
+ viewport && /* @__PURE__ */ jsxRuntime.jsx(NavigationMenuViewport, {})
2310
+ ]
2311
+ }
2312
+ );
2313
+ }
2314
+ function NavigationMenuList({
2315
+ className,
2316
+ ...props
2317
+ }) {
2318
+ return /* @__PURE__ */ jsxRuntime.jsx(
2319
+ NavigationMenuPrimitive__namespace.List,
2320
+ {
2321
+ "data-slot": "navigation-menu-list",
2322
+ className: cn(
2323
+ "group flex flex-1 list-none items-center justify-center gap-1",
2324
+ className
2325
+ ),
2326
+ ...props
2327
+ }
2328
+ );
2329
+ }
2330
+ function NavigationMenuItem({
2331
+ className,
2332
+ ...props
2333
+ }) {
2334
+ return /* @__PURE__ */ jsxRuntime.jsx(
2335
+ NavigationMenuPrimitive__namespace.Item,
2336
+ {
2337
+ "data-slot": "navigation-menu-item",
2338
+ className: cn("relative", className),
2339
+ ...props
2340
+ }
2341
+ );
2342
+ }
2343
+ var navigationMenuTriggerStyle = classVarianceAuthority.cva(
2344
+ "group inline-flex h-9 w-max items-center justify-center rounded-md bg-background px-4 py-2 text-sm font-medium hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground disabled:pointer-events-none disabled:opacity-50 data-[state=open]:hover:bg-accent data-[state=open]:text-accent-foreground data-[state=open]:focus:bg-accent data-[state=open]:bg-accent/50 focus-visible:ring-ring/50 outline-none transition-[color,box-shadow] focus-visible:ring-[3px] focus-visible:outline-1"
2345
+ );
2346
+ function NavigationMenuTrigger({
2347
+ className,
2348
+ children,
2349
+ ...props
2350
+ }) {
2351
+ return /* @__PURE__ */ jsxRuntime.jsxs(
2352
+ NavigationMenuPrimitive__namespace.Trigger,
2353
+ {
2354
+ "data-slot": "navigation-menu-trigger",
2355
+ className: cn(navigationMenuTriggerStyle(), "group", className),
2356
+ ...props,
2357
+ children: [
2358
+ children,
2359
+ " ",
2360
+ /* @__PURE__ */ jsxRuntime.jsx(
2361
+ lucideReact.ChevronDownIcon,
2362
+ {
2363
+ className: "relative top-[1px] ml-1 size-3 transition duration-300 group-data-[state=open]:rotate-180",
2364
+ "aria-hidden": "true"
2365
+ }
2366
+ )
2367
+ ]
2368
+ }
2369
+ );
2370
+ }
2371
+ function NavigationMenuContent({
2372
+ className,
2373
+ ...props
2374
+ }) {
2375
+ return /* @__PURE__ */ jsxRuntime.jsx(
2376
+ NavigationMenuPrimitive__namespace.Content,
2377
+ {
2378
+ "data-slot": "navigation-menu-content",
2379
+ className: cn(
2380
+ "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 top-0 left-0 w-full p-2 pr-2.5 md:absolute md:w-auto",
2381
+ "group-data-[viewport=false]/navigation-menu:bg-popover group-data-[viewport=false]/navigation-menu:text-popover-foreground group-data-[viewport=false]/navigation-menu:data-[state=open]:animate-in group-data-[viewport=false]/navigation-menu:data-[state=closed]:animate-out group-data-[viewport=false]/navigation-menu:data-[state=closed]:zoom-out-95 group-data-[viewport=false]/navigation-menu:data-[state=open]:zoom-in-95 group-data-[viewport=false]/navigation-menu:data-[state=open]:fade-in-0 group-data-[viewport=false]/navigation-menu:data-[state=closed]:fade-out-0 group-data-[viewport=false]/navigation-menu:top-full group-data-[viewport=false]/navigation-menu:mt-1.5 group-data-[viewport=false]/navigation-menu:overflow-hidden group-data-[viewport=false]/navigation-menu:rounded-md group-data-[viewport=false]/navigation-menu:border group-data-[viewport=false]/navigation-menu:shadow group-data-[viewport=false]/navigation-menu:duration-200 **:data-[slot=navigation-menu-link]:focus:ring-0 **:data-[slot=navigation-menu-link]:focus:outline-none",
2382
+ className
2383
+ ),
2384
+ ...props
2385
+ }
2386
+ );
2387
+ }
2388
+ function NavigationMenuViewport({
2389
+ className,
2390
+ ...props
2391
+ }) {
2392
+ return /* @__PURE__ */ jsxRuntime.jsx(
2393
+ "div",
2394
+ {
2395
+ className: cn(
2396
+ "absolute top-full left-0 isolate z-50 flex justify-center"
2397
+ ),
2398
+ children: /* @__PURE__ */ jsxRuntime.jsx(
2399
+ NavigationMenuPrimitive__namespace.Viewport,
2400
+ {
2401
+ "data-slot": "navigation-menu-viewport",
2402
+ className: cn(
2403
+ "origin-top-center bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-90 relative mt-1.5 h-[var(--radix-navigation-menu-viewport-height)] w-full overflow-hidden rounded-md border shadow md:w-[var(--radix-navigation-menu-viewport-width)]",
2404
+ className
2405
+ ),
2406
+ ...props
2407
+ }
2408
+ )
2409
+ }
2410
+ );
2411
+ }
2412
+ function NavigationMenuLink({
2413
+ className,
2414
+ ...props
2415
+ }) {
2416
+ return /* @__PURE__ */ jsxRuntime.jsx(
2417
+ NavigationMenuPrimitive__namespace.Link,
2418
+ {
2419
+ "data-slot": "navigation-menu-link",
2420
+ className: cn(
2421
+ "data-[active=true]:focus:bg-accent data-[active=true]:hover:bg-accent data-[active=true]:bg-accent/50 data-[active=true]:text-accent-foreground hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground focus-visible:ring-ring/50 [&_svg:not([class*='text-'])]:text-muted-foreground flex flex-col gap-1 rounded-sm p-2 text-sm transition-all outline-none focus-visible:ring-[3px] focus-visible:outline-1 [&_svg:not([class*='size-'])]:size-4",
2422
+ className
2423
+ ),
2424
+ ...props
2425
+ }
2426
+ );
2427
+ }
2428
+ function NavigationMenuIndicator({
2429
+ className,
2430
+ ...props
2431
+ }) {
2432
+ return /* @__PURE__ */ jsxRuntime.jsx(
2433
+ NavigationMenuPrimitive__namespace.Indicator,
2434
+ {
2435
+ "data-slot": "navigation-menu-indicator",
2436
+ className: cn(
2437
+ "data-[state=visible]:animate-in data-[state=hidden]:animate-out data-[state=hidden]:fade-out data-[state=visible]:fade-in top-full z-[1] flex h-1.5 items-end justify-center overflow-hidden",
2438
+ className
2439
+ ),
2440
+ ...props,
2441
+ children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "bg-border relative top-[60%] h-2 w-2 rotate-45 rounded-tl-sm shadow-md" })
2442
+ }
2443
+ );
2444
+ }
2445
+ function Pagination({ className, ...props }) {
2446
+ return /* @__PURE__ */ jsxRuntime.jsx(
2447
+ "nav",
2448
+ {
2449
+ role: "navigation",
2450
+ "aria-label": "pagination",
2451
+ "data-slot": "pagination",
2452
+ className: cn("mx-auto flex w-full justify-center", className),
2453
+ ...props
2454
+ }
2455
+ );
2456
+ }
2457
+ function PaginationContent({
2458
+ className,
2459
+ ...props
2460
+ }) {
2461
+ return /* @__PURE__ */ jsxRuntime.jsx(
2462
+ "ul",
2463
+ {
2464
+ "data-slot": "pagination-content",
2465
+ className: cn("flex flex-row items-center gap-1", className),
2466
+ ...props
2467
+ }
2468
+ );
2469
+ }
2470
+ function PaginationItem({ ...props }) {
2471
+ return /* @__PURE__ */ jsxRuntime.jsx("li", { "data-slot": "pagination-item", ...props });
2472
+ }
2473
+ function PaginationLink({
2474
+ className,
2475
+ isActive,
2476
+ size = "icon",
2477
+ ...props
2478
+ }) {
2479
+ return /* @__PURE__ */ jsxRuntime.jsx(
2480
+ "a",
2481
+ {
2482
+ "aria-current": isActive ? "page" : void 0,
2483
+ "data-slot": "pagination-link",
2484
+ "data-active": isActive,
2485
+ className: cn(
2486
+ buttonVariants({
2487
+ variant: isActive ? "outline" : "ghost",
2488
+ size
2489
+ }),
2490
+ className
2491
+ ),
2492
+ ...props
2493
+ }
2494
+ );
2495
+ }
2496
+ function PaginationPrevious({
2497
+ className,
2498
+ ...props
2499
+ }) {
2500
+ return /* @__PURE__ */ jsxRuntime.jsxs(
2501
+ PaginationLink,
2502
+ {
2503
+ "aria-label": "Go to previous page",
2504
+ size: "default",
2505
+ className: cn("gap-1 px-2.5 sm:pl-2.5", className),
2506
+ ...props,
2507
+ children: [
2508
+ /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronLeftIcon, {}),
2509
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "hidden sm:block", children: "Previous" })
2510
+ ]
2511
+ }
2512
+ );
2513
+ }
2514
+ function PaginationNext({
2515
+ className,
2516
+ ...props
2517
+ }) {
2518
+ return /* @__PURE__ */ jsxRuntime.jsxs(
2519
+ PaginationLink,
2520
+ {
2521
+ "aria-label": "Go to next page",
2522
+ size: "default",
2523
+ className: cn("gap-1 px-2.5 sm:pr-2.5", className),
2524
+ ...props,
2525
+ children: [
2526
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "hidden sm:block", children: "Next" }),
2527
+ /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronRightIcon, {})
2528
+ ]
2529
+ }
2530
+ );
2531
+ }
2532
+ function PaginationEllipsis({
2533
+ className,
2534
+ ...props
2535
+ }) {
2536
+ return /* @__PURE__ */ jsxRuntime.jsxs(
2537
+ "span",
2538
+ {
2539
+ "aria-hidden": true,
2540
+ "data-slot": "pagination-ellipsis",
2541
+ className: cn("flex size-9 items-center justify-center", className),
2542
+ ...props,
2543
+ children: [
2544
+ /* @__PURE__ */ jsxRuntime.jsx(lucideReact.MoreHorizontalIcon, { className: "size-4" }),
2545
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "sr-only", children: "More pages" })
2546
+ ]
2547
+ }
2548
+ );
2549
+ }
2550
+ function Popover({
2551
+ ...props
2552
+ }) {
2553
+ return /* @__PURE__ */ jsxRuntime.jsx(PopoverPrimitive__namespace.Root, { "data-slot": "popover", ...props });
2554
+ }
2555
+ function PopoverTrigger({
2556
+ ...props
2557
+ }) {
2558
+ return /* @__PURE__ */ jsxRuntime.jsx(PopoverPrimitive__namespace.Trigger, { "data-slot": "popover-trigger", ...props });
2559
+ }
2560
+ function PopoverContent({
2561
+ className,
2562
+ align = "center",
2563
+ sideOffset = 4,
2564
+ ...props
2565
+ }) {
2566
+ return /* @__PURE__ */ jsxRuntime.jsx(PopoverPrimitive__namespace.Portal, { children: /* @__PURE__ */ jsxRuntime.jsx(
2567
+ PopoverPrimitive__namespace.Content,
2568
+ {
2569
+ "data-slot": "popover-content",
2570
+ align,
2571
+ sideOffset,
2572
+ className: cn(
2573
+ "bg-popover 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 z-50 w-72 origin-(--radix-popover-content-transform-origin) rounded-md border p-4 shadow-md outline-hidden",
2574
+ className
2575
+ ),
2576
+ ...props
2577
+ }
2578
+ ) });
2579
+ }
2580
+ function PopoverAnchor({
2581
+ ...props
2582
+ }) {
2583
+ return /* @__PURE__ */ jsxRuntime.jsx(PopoverPrimitive__namespace.Anchor, { "data-slot": "popover-anchor", ...props });
2584
+ }
2585
+ function Progress({
2586
+ className,
2587
+ value,
2588
+ ...props
2589
+ }) {
2590
+ return /* @__PURE__ */ jsxRuntime.jsx(
2591
+ ProgressPrimitive__namespace.Root,
2592
+ {
2593
+ "data-slot": "progress",
2594
+ className: cn(
2595
+ "bg-primary/20 relative h-2 w-full overflow-hidden rounded-full",
2596
+ className
2597
+ ),
2598
+ ...props,
2599
+ children: /* @__PURE__ */ jsxRuntime.jsx(
2600
+ ProgressPrimitive__namespace.Indicator,
2601
+ {
2602
+ "data-slot": "progress-indicator",
2603
+ className: "bg-primary h-full w-full flex-1 transition-all",
2604
+ style: { transform: `translateX(-${100 - (value || 0)}%)` }
2605
+ }
2606
+ )
2607
+ }
2608
+ );
2609
+ }
2610
+ function RadioGroup4({
2611
+ className,
2612
+ ...props
2613
+ }) {
2614
+ return /* @__PURE__ */ jsxRuntime.jsx(
2615
+ RadioGroupPrimitive__namespace.Root,
2616
+ {
2617
+ "data-slot": "radio-group",
2618
+ className: cn("grid gap-3", className),
2619
+ ...props
2620
+ }
2621
+ );
2622
+ }
2623
+ function RadioGroupItem({
2624
+ className,
2625
+ ...props
2626
+ }) {
2627
+ return /* @__PURE__ */ jsxRuntime.jsx(
2628
+ RadioGroupPrimitive__namespace.Item,
2629
+ {
2630
+ "data-slot": "radio-group-item",
2631
+ className: cn(
2632
+ "border-input text-primary focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:bg-input/30 aspect-square size-4 shrink-0 rounded-full border shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50",
2633
+ className
2634
+ ),
2635
+ ...props,
2636
+ children: /* @__PURE__ */ jsxRuntime.jsx(
2637
+ RadioGroupPrimitive__namespace.Indicator,
2638
+ {
2639
+ "data-slot": "radio-group-indicator",
2640
+ className: "relative flex items-center justify-center",
2641
+ children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.CircleIcon, { className: "fill-primary absolute top-1/2 left-1/2 size-2 -translate-x-1/2 -translate-y-1/2" })
2642
+ }
2643
+ )
2644
+ }
2645
+ );
2646
+ }
2647
+ function ResizablePanelGroup({
2648
+ className,
2649
+ ...props
2650
+ }) {
2651
+ return /* @__PURE__ */ jsxRuntime.jsx(
2652
+ ResizablePrimitive__namespace.PanelGroup,
2653
+ {
2654
+ "data-slot": "resizable-panel-group",
2655
+ className: cn(
2656
+ "flex h-full w-full data-[panel-group-direction=vertical]:flex-col",
2657
+ className
2658
+ ),
2659
+ ...props
2660
+ }
2661
+ );
2662
+ }
2663
+ function ResizablePanel({
2664
+ ...props
2665
+ }) {
2666
+ return /* @__PURE__ */ jsxRuntime.jsx(ResizablePrimitive__namespace.Panel, { "data-slot": "resizable-panel", ...props });
2667
+ }
2668
+ function ResizableHandle({
2669
+ withHandle,
2670
+ className,
2671
+ ...props
2672
+ }) {
2673
+ return /* @__PURE__ */ jsxRuntime.jsx(
2674
+ ResizablePrimitive__namespace.PanelResizeHandle,
2675
+ {
2676
+ "data-slot": "resizable-handle",
2677
+ className: cn(
2678
+ "bg-border focus-visible:ring-ring relative flex w-px items-center justify-center after:absolute after:inset-y-0 after:left-1/2 after:w-1 after:-translate-x-1/2 focus-visible:ring-1 focus-visible:ring-offset-1 focus-visible:outline-hidden data-[panel-group-direction=vertical]:h-px data-[panel-group-direction=vertical]:w-full data-[panel-group-direction=vertical]:after:left-0 data-[panel-group-direction=vertical]:after:h-1 data-[panel-group-direction=vertical]:after:w-full data-[panel-group-direction=vertical]:after:translate-x-0 data-[panel-group-direction=vertical]:after:-translate-y-1/2 [&[data-panel-group-direction=vertical]>div]:rotate-90",
2679
+ className
2680
+ ),
2681
+ ...props,
2682
+ children: withHandle && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "bg-border z-10 flex h-4 w-3 items-center justify-center rounded-xs border", children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.GripVerticalIcon, { className: "size-2.5" }) })
2683
+ }
2684
+ );
2685
+ }
2686
+ function ScrollArea({
2687
+ className,
2688
+ children,
2689
+ ...props
2690
+ }) {
2691
+ return /* @__PURE__ */ jsxRuntime.jsxs(
2692
+ ScrollAreaPrimitive__namespace.Root,
2693
+ {
2694
+ "data-slot": "scroll-area",
2695
+ className: cn("relative", className),
2696
+ ...props,
2697
+ children: [
2698
+ /* @__PURE__ */ jsxRuntime.jsx(
2699
+ ScrollAreaPrimitive__namespace.Viewport,
2700
+ {
2701
+ "data-slot": "scroll-area-viewport",
2702
+ className: "focus-visible:ring-ring/50 size-full rounded-[inherit] transition-[color,box-shadow] outline-none focus-visible:ring-[3px] focus-visible:outline-1",
2703
+ children
2704
+ }
2705
+ ),
2706
+ /* @__PURE__ */ jsxRuntime.jsx(ScrollBar, {}),
2707
+ /* @__PURE__ */ jsxRuntime.jsx(ScrollAreaPrimitive__namespace.Corner, {})
2708
+ ]
2709
+ }
2710
+ );
2711
+ }
2712
+ function ScrollBar({
2713
+ className,
2714
+ orientation = "vertical",
2715
+ ...props
2716
+ }) {
2717
+ return /* @__PURE__ */ jsxRuntime.jsx(
2718
+ ScrollAreaPrimitive__namespace.ScrollAreaScrollbar,
2719
+ {
2720
+ "data-slot": "scroll-area-scrollbar",
2721
+ orientation,
2722
+ className: cn(
2723
+ "flex touch-none p-px transition-colors select-none",
2724
+ orientation === "vertical" && "h-full w-2.5 border-l border-l-transparent",
2725
+ orientation === "horizontal" && "h-2.5 flex-col border-t border-t-transparent",
2726
+ className
2727
+ ),
2728
+ ...props,
2729
+ children: /* @__PURE__ */ jsxRuntime.jsx(
2730
+ ScrollAreaPrimitive__namespace.ScrollAreaThumb,
2731
+ {
2732
+ "data-slot": "scroll-area-thumb",
2733
+ className: "bg-border relative flex-1 rounded-full"
2734
+ }
2735
+ )
2736
+ }
2737
+ );
2738
+ }
2739
+ function Select({
2740
+ ...props
2741
+ }) {
2742
+ return /* @__PURE__ */ jsxRuntime.jsx(SelectPrimitive__namespace.Root, { "data-slot": "select", ...props });
2743
+ }
2744
+ function SelectGroup({
2745
+ ...props
2746
+ }) {
2747
+ return /* @__PURE__ */ jsxRuntime.jsx(SelectPrimitive__namespace.Group, { "data-slot": "select-group", ...props });
2748
+ }
2749
+ function SelectValue({
2750
+ ...props
2751
+ }) {
2752
+ return /* @__PURE__ */ jsxRuntime.jsx(SelectPrimitive__namespace.Value, { "data-slot": "select-value", ...props });
2753
+ }
2754
+ function SelectTrigger({
2755
+ className,
2756
+ size = "default",
2757
+ children,
2758
+ ...props
2759
+ }) {
2760
+ return /* @__PURE__ */ jsxRuntime.jsxs(
2761
+ SelectPrimitive__namespace.Trigger,
2762
+ {
2763
+ "data-slot": "select-trigger",
2764
+ "data-size": size,
2765
+ className: cn(
2766
+ "border-input data-[placeholder]:text-muted-foreground [&_svg:not([class*='text-'])]:text-muted-foreground focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:bg-input/30 dark:hover:bg-input/50 flex w-fit items-center justify-between gap-2 rounded-md border bg-transparent px-3 py-2 text-sm whitespace-nowrap shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 data-[size=default]:h-9 data-[size=sm]:h-8 *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-2 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
2767
+ className
2768
+ ),
2769
+ ...props,
2770
+ children: [
2771
+ children,
2772
+ /* @__PURE__ */ jsxRuntime.jsx(SelectPrimitive__namespace.Icon, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronDownIcon, { className: "size-4 opacity-50" }) })
2773
+ ]
2774
+ }
2775
+ );
2776
+ }
2777
+ function SelectContent({
2778
+ className,
2779
+ children,
2780
+ position = "popper",
2781
+ ...props
2782
+ }) {
2783
+ return /* @__PURE__ */ jsxRuntime.jsx(SelectPrimitive__namespace.Portal, { children: /* @__PURE__ */ jsxRuntime.jsxs(
2784
+ SelectPrimitive__namespace.Content,
2785
+ {
2786
+ "data-slot": "select-content",
2787
+ className: cn(
2788
+ "bg-popover 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 relative z-50 max-h-(--radix-select-content-available-height) min-w-[8rem] origin-(--radix-select-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border shadow-md",
2789
+ 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",
2790
+ className
2791
+ ),
2792
+ position,
2793
+ ...props,
2794
+ children: [
2795
+ /* @__PURE__ */ jsxRuntime.jsx(SelectScrollUpButton, {}),
2796
+ /* @__PURE__ */ jsxRuntime.jsx(
2797
+ SelectPrimitive__namespace.Viewport,
2798
+ {
2799
+ className: cn(
2800
+ "p-1",
2801
+ position === "popper" && "h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)] scroll-my-1"
2802
+ ),
2803
+ children
2804
+ }
2805
+ ),
2806
+ /* @__PURE__ */ jsxRuntime.jsx(SelectScrollDownButton, {})
2807
+ ]
2808
+ }
2809
+ ) });
2810
+ }
2811
+ function SelectLabel({
2812
+ className,
2813
+ ...props
2814
+ }) {
2815
+ return /* @__PURE__ */ jsxRuntime.jsx(
2816
+ SelectPrimitive__namespace.Label,
2817
+ {
2818
+ "data-slot": "select-label",
2819
+ className: cn("text-muted-foreground px-2 py-1.5 text-xs", className),
2820
+ ...props
2821
+ }
2822
+ );
2823
+ }
2824
+ function SelectItem({
2825
+ className,
2826
+ children,
2827
+ ...props
2828
+ }) {
2829
+ return /* @__PURE__ */ jsxRuntime.jsxs(
2830
+ SelectPrimitive__namespace.Item,
2831
+ {
2832
+ "data-slot": "select-item",
2833
+ className: cn(
2834
+ "focus:bg-accent focus:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground relative flex w-full cursor-default items-center gap-2 rounded-sm py-1.5 pr-8 pl-2 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2",
2835
+ className
2836
+ ),
2837
+ ...props,
2838
+ children: [
2839
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "absolute right-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ jsxRuntime.jsx(SelectPrimitive__namespace.ItemIndicator, { children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.CheckIcon, { className: "size-4" }) }) }),
2840
+ /* @__PURE__ */ jsxRuntime.jsx(SelectPrimitive__namespace.ItemText, { children })
2841
+ ]
2842
+ }
2843
+ );
2844
+ }
2845
+ function SelectSeparator({
2846
+ className,
2847
+ ...props
2848
+ }) {
2849
+ return /* @__PURE__ */ jsxRuntime.jsx(
2850
+ SelectPrimitive__namespace.Separator,
2851
+ {
2852
+ "data-slot": "select-separator",
2853
+ className: cn("bg-border pointer-events-none -mx-1 my-1 h-px", className),
2854
+ ...props
2855
+ }
2856
+ );
2857
+ }
2858
+ function SelectScrollUpButton({
2859
+ className,
2860
+ ...props
2861
+ }) {
2862
+ return /* @__PURE__ */ jsxRuntime.jsx(
2863
+ SelectPrimitive__namespace.ScrollUpButton,
2864
+ {
2865
+ "data-slot": "select-scroll-up-button",
2866
+ className: cn(
2867
+ "flex cursor-default items-center justify-center py-1",
2868
+ className
2869
+ ),
2870
+ ...props,
2871
+ children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronUpIcon, { className: "size-4" })
2872
+ }
2873
+ );
2874
+ }
2875
+ function SelectScrollDownButton({
2876
+ className,
2877
+ ...props
2878
+ }) {
2879
+ return /* @__PURE__ */ jsxRuntime.jsx(
2880
+ SelectPrimitive__namespace.ScrollDownButton,
2881
+ {
2882
+ "data-slot": "select-scroll-down-button",
2883
+ className: cn(
2884
+ "flex cursor-default items-center justify-center py-1",
2885
+ className
2886
+ ),
2887
+ ...props,
2888
+ children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronDownIcon, { className: "size-4" })
2889
+ }
2890
+ );
2891
+ }
2892
+ function Separator5({
2893
+ className,
2894
+ orientation = "horizontal",
2895
+ decorative = true,
2896
+ ...props
2897
+ }) {
2898
+ return /* @__PURE__ */ jsxRuntime.jsx(
2899
+ SeparatorPrimitive__namespace.Root,
2900
+ {
2901
+ "data-slot": "separator",
2902
+ decorative,
2903
+ orientation,
2904
+ className: cn(
2905
+ "bg-border shrink-0 data-[orientation=horizontal]:h-px data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-px",
2906
+ className
2907
+ ),
2908
+ ...props
2909
+ }
2910
+ );
2911
+ }
2912
+ function Sheet({ ...props }) {
2913
+ return /* @__PURE__ */ jsxRuntime.jsx(DialogPrimitive__namespace.Root, { "data-slot": "sheet", ...props });
2914
+ }
2915
+ function SheetTrigger({
2916
+ ...props
2917
+ }) {
2918
+ return /* @__PURE__ */ jsxRuntime.jsx(DialogPrimitive__namespace.Trigger, { "data-slot": "sheet-trigger", ...props });
2919
+ }
2920
+ function SheetClose({
2921
+ ...props
2922
+ }) {
2923
+ return /* @__PURE__ */ jsxRuntime.jsx(DialogPrimitive__namespace.Close, { "data-slot": "sheet-close", ...props });
2924
+ }
2925
+ function SheetPortal({
2926
+ ...props
2927
+ }) {
2928
+ return /* @__PURE__ */ jsxRuntime.jsx(DialogPrimitive__namespace.Portal, { "data-slot": "sheet-portal", ...props });
2929
+ }
2930
+ function SheetOverlay({
2931
+ className,
2932
+ ...props
2933
+ }) {
2934
+ return /* @__PURE__ */ jsxRuntime.jsx(
2935
+ DialogPrimitive__namespace.Overlay,
2936
+ {
2937
+ "data-slot": "sheet-overlay",
2938
+ className: cn(
2939
+ "data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50",
2940
+ className
2941
+ ),
2942
+ ...props
2943
+ }
2944
+ );
2945
+ }
2946
+ function SheetContent({
2947
+ className,
2948
+ children,
2949
+ side = "right",
2950
+ ...props
2951
+ }) {
2952
+ return /* @__PURE__ */ jsxRuntime.jsxs(SheetPortal, { children: [
2953
+ /* @__PURE__ */ jsxRuntime.jsx(SheetOverlay, {}),
2954
+ /* @__PURE__ */ jsxRuntime.jsxs(
2955
+ DialogPrimitive__namespace.Content,
2956
+ {
2957
+ "data-slot": "sheet-content",
2958
+ className: cn(
2959
+ "bg-background data-[state=open]:animate-in data-[state=closed]:animate-out fixed z-50 flex flex-col gap-4 shadow-lg transition ease-in-out data-[state=closed]:duration-300 data-[state=open]:duration-500",
2960
+ side === "right" && "data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right inset-y-0 right-0 h-full w-3/4 border-l sm:max-w-sm",
2961
+ side === "left" && "data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left inset-y-0 left-0 h-full w-3/4 border-r sm:max-w-sm",
2962
+ side === "top" && "data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top inset-x-0 top-0 h-auto border-b",
2963
+ side === "bottom" && "data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom inset-x-0 bottom-0 h-auto border-t",
2964
+ className
2965
+ ),
2966
+ ...props,
2967
+ children: [
2968
+ children,
2969
+ /* @__PURE__ */ jsxRuntime.jsxs(DialogPrimitive__namespace.Close, { className: "ring-offset-background focus:ring-ring data-[state=open]:bg-secondary absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none", children: [
2970
+ /* @__PURE__ */ jsxRuntime.jsx(lucideReact.XIcon, { className: "size-4" }),
2971
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "sr-only", children: "Close" })
2972
+ ] })
2973
+ ]
2974
+ }
2975
+ )
2976
+ ] });
2977
+ }
2978
+ function SheetHeader({ className, ...props }) {
2979
+ return /* @__PURE__ */ jsxRuntime.jsx(
2980
+ "div",
2981
+ {
2982
+ "data-slot": "sheet-header",
2983
+ className: cn("flex flex-col gap-1.5 p-4", className),
2984
+ ...props
2985
+ }
2986
+ );
2987
+ }
2988
+ function SheetFooter({ className, ...props }) {
2989
+ return /* @__PURE__ */ jsxRuntime.jsx(
2990
+ "div",
2991
+ {
2992
+ "data-slot": "sheet-footer",
2993
+ className: cn("mt-auto flex flex-col gap-2 p-4", className),
2994
+ ...props
2995
+ }
2996
+ );
2997
+ }
2998
+ function SheetTitle({
2999
+ className,
3000
+ ...props
3001
+ }) {
3002
+ return /* @__PURE__ */ jsxRuntime.jsx(
3003
+ DialogPrimitive__namespace.Title,
3004
+ {
3005
+ "data-slot": "sheet-title",
3006
+ className: cn("text-foreground font-semibold", className),
3007
+ ...props
3008
+ }
3009
+ );
3010
+ }
3011
+ function SheetDescription({
3012
+ className,
3013
+ ...props
3014
+ }) {
3015
+ return /* @__PURE__ */ jsxRuntime.jsx(
3016
+ DialogPrimitive__namespace.Description,
3017
+ {
3018
+ "data-slot": "sheet-description",
3019
+ className: cn("text-muted-foreground text-sm", className),
3020
+ ...props
3021
+ }
3022
+ );
3023
+ }
3024
+ function Skeleton({ className, ...props }) {
3025
+ return /* @__PURE__ */ jsxRuntime.jsx(
3026
+ "div",
3027
+ {
3028
+ "data-slot": "skeleton",
3029
+ className: cn("bg-accent animate-pulse rounded-md", className),
3030
+ ...props
3031
+ }
3032
+ );
3033
+ }
3034
+ function Slider({
3035
+ className,
3036
+ defaultValue,
3037
+ value,
3038
+ min = 0,
3039
+ max = 100,
3040
+ ...props
3041
+ }) {
3042
+ const _values = React2__namespace.useMemo(
3043
+ () => Array.isArray(value) ? value : Array.isArray(defaultValue) ? defaultValue : [min, max],
3044
+ [value, defaultValue, min, max]
3045
+ );
3046
+ return /* @__PURE__ */ jsxRuntime.jsxs(
3047
+ SliderPrimitive__namespace.Root,
3048
+ {
3049
+ "data-slot": "slider",
3050
+ defaultValue,
3051
+ value,
3052
+ min,
3053
+ max,
3054
+ className: cn(
3055
+ "relative flex w-full touch-none items-center select-none data-[disabled]:opacity-50 data-[orientation=vertical]:h-full data-[orientation=vertical]:min-h-44 data-[orientation=vertical]:w-auto data-[orientation=vertical]:flex-col",
3056
+ className
3057
+ ),
3058
+ ...props,
3059
+ children: [
3060
+ /* @__PURE__ */ jsxRuntime.jsx(
3061
+ SliderPrimitive__namespace.Track,
3062
+ {
3063
+ "data-slot": "slider-track",
3064
+ className: cn(
3065
+ "bg-muted relative grow overflow-hidden rounded-full data-[orientation=horizontal]:h-1.5 data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-1.5"
3066
+ ),
3067
+ children: /* @__PURE__ */ jsxRuntime.jsx(
3068
+ SliderPrimitive__namespace.Range,
3069
+ {
3070
+ "data-slot": "slider-range",
3071
+ className: cn(
3072
+ "bg-primary absolute data-[orientation=horizontal]:h-full data-[orientation=vertical]:w-full"
3073
+ )
3074
+ }
3075
+ )
3076
+ }
3077
+ ),
3078
+ Array.from({ length: _values.length }, (_2, index) => /* @__PURE__ */ jsxRuntime.jsx(
3079
+ SliderPrimitive__namespace.Thumb,
3080
+ {
3081
+ "data-slot": "slider-thumb",
3082
+ className: "border-primary bg-background ring-ring/50 block size-4 shrink-0 rounded-full border shadow-sm transition-[color,box-shadow] hover:ring-4 focus-visible:ring-4 focus-visible:outline-hidden disabled:pointer-events-none disabled:opacity-50"
3083
+ },
3084
+ index
3085
+ ))
3086
+ ]
3087
+ }
3088
+ );
3089
+ }
3090
+ var M = (e, i, s, u, m, a, l, h) => {
3091
+ let d = document.documentElement, w = ["light", "dark"];
3092
+ function p(n) {
3093
+ (Array.isArray(e) ? e : [e]).forEach((y) => {
3094
+ let k = y === "class", S = k && a ? m.map((f) => a[f] || f) : m;
3095
+ k ? (d.classList.remove(...S), d.classList.add(a && a[n] ? a[n] : n)) : d.setAttribute(y, n);
3096
+ }), R(n);
3097
+ }
3098
+ function R(n) {
3099
+ h && w.includes(n) && (d.style.colorScheme = n);
3100
+ }
3101
+ function c() {
3102
+ return window.matchMedia("(prefers-color-scheme: dark)").matches ? "dark" : "light";
3103
+ }
3104
+ if (u) p(u);
3105
+ else try {
3106
+ let n = localStorage.getItem(i) || s, y = l && n === "system" ? c() : n;
3107
+ p(y);
3108
+ } catch (n) {
3109
+ }
3110
+ };
3111
+ var x = React2__namespace.createContext(void 0);
3112
+ var U = { setTheme: (e) => {
3113
+ }, themes: [] };
3114
+ var z = () => {
3115
+ var e;
3116
+ return (e = React2__namespace.useContext(x)) != null ? e : U;
3117
+ };
3118
+ React2__namespace.memo(({ forcedTheme: e, storageKey: i, attribute: s, enableSystem: u, enableColorScheme: m, defaultTheme: a, value: l, themes: h, nonce: d, scriptProps: w }) => {
3119
+ let p = JSON.stringify([s, i, a, e, h, l, u, m]).slice(1, -1);
3120
+ return React2__namespace.createElement("script", { ...w, suppressHydrationWarning: true, nonce: typeof window == "undefined" ? d : "", dangerouslySetInnerHTML: { __html: `(${M.toString()})(${p})` } });
3121
+ });
3122
+ var Toaster = ({ ...props }) => {
3123
+ const { theme = "system" } = z();
3124
+ return /* @__PURE__ */ jsxRuntime.jsx(
3125
+ sonner.Toaster,
3126
+ {
3127
+ theme,
3128
+ className: "toaster group",
3129
+ style: {
3130
+ "--normal-bg": "var(--popover)",
3131
+ "--normal-text": "var(--popover-foreground)",
3132
+ "--normal-border": "var(--border)"
3133
+ },
3134
+ ...props
3135
+ }
3136
+ );
3137
+ };
3138
+ function Switch({
3139
+ className,
3140
+ ...props
3141
+ }) {
3142
+ return /* @__PURE__ */ jsxRuntime.jsx(
3143
+ SwitchPrimitive__namespace.Root,
3144
+ {
3145
+ "data-slot": "switch",
3146
+ className: cn(
3147
+ "peer data-[state=checked]:bg-primary data-[state=unchecked]:bg-input focus-visible:border-ring focus-visible:ring-ring/50 dark:data-[state=unchecked]:bg-input/80 inline-flex h-[1.15rem] w-8 shrink-0 items-center rounded-full border border-transparent shadow-xs transition-all outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50",
3148
+ className
3149
+ ),
3150
+ ...props,
3151
+ children: /* @__PURE__ */ jsxRuntime.jsx(
3152
+ SwitchPrimitive__namespace.Thumb,
3153
+ {
3154
+ "data-slot": "switch-thumb",
3155
+ className: cn(
3156
+ "bg-background dark:data-[state=unchecked]:bg-foreground dark:data-[state=checked]:bg-primary-foreground pointer-events-none block size-4 rounded-full ring-0 transition-transform data-[state=checked]:translate-x-[calc(100%-2px)] data-[state=unchecked]:translate-x-0"
3157
+ )
3158
+ }
3159
+ )
3160
+ }
3161
+ );
3162
+ }
3163
+ function Table({ className, ...props }) {
3164
+ return /* @__PURE__ */ jsxRuntime.jsx(
3165
+ "div",
3166
+ {
3167
+ "data-slot": "table-container",
3168
+ className: "relative w-full overflow-x-auto",
3169
+ children: /* @__PURE__ */ jsxRuntime.jsx(
3170
+ "table",
3171
+ {
3172
+ "data-slot": "table",
3173
+ className: cn("w-full caption-bottom text-sm", className),
3174
+ ...props
3175
+ }
3176
+ )
3177
+ }
3178
+ );
3179
+ }
3180
+ function TableHeader({ className, ...props }) {
3181
+ return /* @__PURE__ */ jsxRuntime.jsx(
3182
+ "thead",
3183
+ {
3184
+ "data-slot": "table-header",
3185
+ className: cn("[&_tr]:border-b", className),
3186
+ ...props
3187
+ }
3188
+ );
3189
+ }
3190
+ function TableBody({ className, ...props }) {
3191
+ return /* @__PURE__ */ jsxRuntime.jsx(
3192
+ "tbody",
3193
+ {
3194
+ "data-slot": "table-body",
3195
+ className: cn("[&_tr:last-child]:border-0", className),
3196
+ ...props
3197
+ }
3198
+ );
3199
+ }
3200
+ function TableFooter({ className, ...props }) {
3201
+ return /* @__PURE__ */ jsxRuntime.jsx(
3202
+ "tfoot",
3203
+ {
3204
+ "data-slot": "table-footer",
3205
+ className: cn(
3206
+ "bg-muted/50 border-t font-medium [&>tr]:last:border-b-0",
3207
+ className
3208
+ ),
3209
+ ...props
3210
+ }
3211
+ );
3212
+ }
3213
+ function TableRow({ className, ...props }) {
3214
+ return /* @__PURE__ */ jsxRuntime.jsx(
3215
+ "tr",
3216
+ {
3217
+ "data-slot": "table-row",
3218
+ className: cn(
3219
+ "hover:bg-muted/50 data-[state=selected]:bg-muted border-b transition-colors",
3220
+ className
3221
+ ),
3222
+ ...props
3223
+ }
3224
+ );
3225
+ }
3226
+ function TableHead({ className, ...props }) {
3227
+ return /* @__PURE__ */ jsxRuntime.jsx(
3228
+ "th",
3229
+ {
3230
+ "data-slot": "table-head",
3231
+ className: cn(
3232
+ "text-foreground h-10 px-2 text-left align-middle font-medium whitespace-nowrap [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]",
3233
+ className
3234
+ ),
3235
+ ...props
3236
+ }
3237
+ );
3238
+ }
3239
+ function TableCell({ className, ...props }) {
3240
+ return /* @__PURE__ */ jsxRuntime.jsx(
3241
+ "td",
3242
+ {
3243
+ "data-slot": "table-cell",
3244
+ className: cn(
3245
+ "p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]",
3246
+ className
3247
+ ),
3248
+ ...props
3249
+ }
3250
+ );
3251
+ }
3252
+ function TableCaption({
3253
+ className,
3254
+ ...props
3255
+ }) {
3256
+ return /* @__PURE__ */ jsxRuntime.jsx(
3257
+ "caption",
3258
+ {
3259
+ "data-slot": "table-caption",
3260
+ className: cn("text-muted-foreground mt-4 text-sm", className),
3261
+ ...props
3262
+ }
3263
+ );
3264
+ }
3265
+ function Tabs({
3266
+ className,
3267
+ ...props
3268
+ }) {
3269
+ return /* @__PURE__ */ jsxRuntime.jsx(
3270
+ TabsPrimitive__namespace.Root,
3271
+ {
3272
+ "data-slot": "tabs",
3273
+ className: cn("flex flex-col gap-2", className),
3274
+ ...props
3275
+ }
3276
+ );
3277
+ }
3278
+ function TabsList({
3279
+ className,
3280
+ ...props
3281
+ }) {
3282
+ return /* @__PURE__ */ jsxRuntime.jsx(
3283
+ TabsPrimitive__namespace.List,
3284
+ {
3285
+ "data-slot": "tabs-list",
3286
+ className: cn(
3287
+ "bg-muted text-muted-foreground inline-flex h-9 w-fit items-center justify-center rounded-lg p-[3px]",
3288
+ className
3289
+ ),
3290
+ ...props
3291
+ }
3292
+ );
3293
+ }
3294
+ function TabsTrigger({
3295
+ className,
3296
+ ...props
3297
+ }) {
3298
+ return /* @__PURE__ */ jsxRuntime.jsx(
3299
+ TabsPrimitive__namespace.Trigger,
3300
+ {
3301
+ "data-slot": "tabs-trigger",
3302
+ className: cn(
3303
+ "data-[state=active]:bg-background dark:data-[state=active]:text-foreground focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:outline-ring dark:data-[state=active]:border-input dark:data-[state=active]:bg-input/30 text-foreground dark:text-muted-foreground inline-flex h-[calc(100%-1px)] flex-1 items-center justify-center gap-1.5 rounded-md border border-transparent px-2 py-1 text-sm font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:ring-[3px] focus-visible:outline-1 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:shadow-sm [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
3304
+ className
3305
+ ),
3306
+ ...props
3307
+ }
3308
+ );
3309
+ }
3310
+ function TabsContent({
3311
+ className,
3312
+ ...props
3313
+ }) {
3314
+ return /* @__PURE__ */ jsxRuntime.jsx(
3315
+ TabsPrimitive__namespace.Content,
3316
+ {
3317
+ "data-slot": "tabs-content",
3318
+ className: cn("flex-1 outline-none", className),
3319
+ ...props
3320
+ }
3321
+ );
3322
+ }
3323
+ function Textarea({ className, ...props }) {
3324
+ return /* @__PURE__ */ jsxRuntime.jsx(
3325
+ "textarea",
3326
+ {
3327
+ "data-slot": "textarea",
3328
+ className: cn(
3329
+ "border-input placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:bg-input/30 flex field-sizing-content min-h-16 w-full rounded-md border bg-transparent px-3 py-2 text-base shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",
3330
+ className
3331
+ ),
3332
+ ...props
3333
+ }
3334
+ );
3335
+ }
3336
+ var ToastProvider = ToastPrimitives__namespace.Provider;
3337
+ var ToastViewport = React2__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
3338
+ ToastPrimitives__namespace.Viewport,
3339
+ {
3340
+ ref,
3341
+ className: cn(
3342
+ "fixed top-0 z-[100] flex max-h-screen w-full flex-col-reverse p-4 sm:bottom-0 sm:right-0 sm:top-auto sm:flex-col md:max-w-[420px]",
3343
+ className
3344
+ ),
3345
+ ...props
3346
+ }
3347
+ ));
3348
+ ToastViewport.displayName = ToastPrimitives__namespace.Viewport.displayName;
3349
+ var toastVariants = classVarianceAuthority.cva(
3350
+ "group pointer-events-auto relative flex w-full items-center justify-between space-x-2 overflow-hidden rounded-md border p-4 pr-6 shadow-lg transition-all data-[swipe=cancel]:translate-x-0 data-[swipe=end]:translate-x-[var(--radix-toast-swipe-end-x)] data-[swipe=move]:translate-x-[var(--radix-toast-swipe-move-x)] data-[swipe=move]:transition-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[swipe=end]:animate-out data-[state=closed]:fade-out-80 data-[state=closed]:slide-out-to-right-full data-[state=open]:slide-in-from-top-full data-[state=open]:sm:slide-in-from-bottom-full",
3351
+ {
3352
+ variants: {
3353
+ variant: {
3354
+ default: "border bg-background text-foreground",
3355
+ destructive: "destructive group border-destructive bg-destructive text-destructive-foreground"
3356
+ }
3357
+ },
3358
+ defaultVariants: {
3359
+ variant: "default"
3360
+ }
3361
+ }
3362
+ );
3363
+ var Toast = React2__namespace.forwardRef(({ className, variant, ...props }, ref) => {
3364
+ return /* @__PURE__ */ jsxRuntime.jsx(
3365
+ ToastPrimitives__namespace.Root,
3366
+ {
3367
+ ref,
3368
+ className: cn(toastVariants({ variant }), className),
3369
+ ...props
3370
+ }
3371
+ );
3372
+ });
3373
+ Toast.displayName = ToastPrimitives__namespace.Root.displayName;
3374
+ var ToastAction = React2__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
3375
+ ToastPrimitives__namespace.Action,
3376
+ {
3377
+ ref,
3378
+ className: cn(
3379
+ "inline-flex h-8 shrink-0 items-center justify-center rounded-md border bg-transparent px-3 text-sm font-medium transition-colors hover:bg-secondary focus:outline-none focus:ring-1 focus:ring-ring disabled:pointer-events-none disabled:opacity-50 group-[.destructive]:border-muted/40 group-[.destructive]:hover:border-destructive/30 group-[.destructive]:hover:bg-destructive group-[.destructive]:hover:text-destructive-foreground group-[.destructive]:focus:ring-destructive",
3380
+ className
3381
+ ),
3382
+ ...props
3383
+ }
3384
+ ));
3385
+ ToastAction.displayName = ToastPrimitives__namespace.Action.displayName;
3386
+ var ToastClose = React2__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
3387
+ ToastPrimitives__namespace.Close,
3388
+ {
3389
+ ref,
3390
+ className: cn(
3391
+ "absolute right-1 top-1 rounded-md p-1 text-foreground/50 opacity-0 transition-opacity hover:text-foreground focus:opacity-100 focus:outline-none focus:ring-1 group-hover:opacity-100 group-[.destructive]:text-red-300 group-[.destructive]:hover:text-red-50 group-[.destructive]:focus:ring-red-400 group-[.destructive]:focus:ring-offset-red-600",
3392
+ className
3393
+ ),
3394
+ "toast-close": "",
3395
+ ...props,
3396
+ children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.X, { className: "h-4 w-4" })
3397
+ }
3398
+ ));
3399
+ ToastClose.displayName = ToastPrimitives__namespace.Close.displayName;
3400
+ var ToastTitle = React2__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
3401
+ ToastPrimitives__namespace.Title,
3402
+ {
3403
+ ref,
3404
+ className: cn("text-sm font-semibold [&+div]:text-xs", className),
3405
+ ...props
3406
+ }
3407
+ ));
3408
+ ToastTitle.displayName = ToastPrimitives__namespace.Title.displayName;
3409
+ var ToastDescription = React2__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
3410
+ ToastPrimitives__namespace.Description,
3411
+ {
3412
+ ref,
3413
+ className: cn("text-sm opacity-90", className),
3414
+ ...props
3415
+ }
3416
+ ));
3417
+ ToastDescription.displayName = ToastPrimitives__namespace.Description.displayName;
3418
+ var toggleVariants = classVarianceAuthority.cva(
3419
+ "inline-flex items-center justify-center gap-2 rounded-md text-sm font-medium hover:bg-muted hover:text-muted-foreground disabled:pointer-events-none disabled:opacity-50 data-[state=on]:bg-accent data-[state=on]:text-accent-foreground [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 [&_svg]:shrink-0 focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] outline-none transition-[color,box-shadow] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive whitespace-nowrap",
3420
+ {
3421
+ variants: {
3422
+ variant: {
3423
+ default: "bg-transparent",
3424
+ outline: "border border-input bg-transparent shadow-xs hover:bg-accent hover:text-accent-foreground"
3425
+ },
3426
+ size: {
3427
+ default: "h-9 px-2 min-w-9",
3428
+ sm: "h-8 px-1.5 min-w-8",
3429
+ lg: "h-10 px-2.5 min-w-10"
3430
+ }
3431
+ },
3432
+ defaultVariants: {
3433
+ variant: "default",
3434
+ size: "default"
3435
+ }
3436
+ }
3437
+ );
3438
+ function Toggle({
3439
+ className,
3440
+ variant,
3441
+ size,
3442
+ ...props
3443
+ }) {
3444
+ return /* @__PURE__ */ jsxRuntime.jsx(
3445
+ TogglePrimitive__namespace.Root,
3446
+ {
3447
+ "data-slot": "toggle",
3448
+ className: cn(toggleVariants({ variant, size, className })),
3449
+ ...props
3450
+ }
3451
+ );
3452
+ }
3453
+ var ToggleGroupContext = React2__namespace.createContext({
3454
+ size: "default",
3455
+ variant: "default"
3456
+ });
3457
+ function ToggleGroup({
3458
+ className,
3459
+ variant,
3460
+ size,
3461
+ children,
3462
+ ...props
3463
+ }) {
3464
+ return /* @__PURE__ */ jsxRuntime.jsx(
3465
+ ToggleGroupPrimitive__namespace.Root,
3466
+ {
3467
+ "data-slot": "toggle-group",
3468
+ "data-variant": variant,
3469
+ "data-size": size,
3470
+ className: cn(
3471
+ "group/toggle-group flex w-fit items-center rounded-md data-[variant=outline]:shadow-xs",
3472
+ className
3473
+ ),
3474
+ ...props,
3475
+ children: /* @__PURE__ */ jsxRuntime.jsx(ToggleGroupContext.Provider, { value: { variant, size }, children })
3476
+ }
3477
+ );
3478
+ }
3479
+ function ToggleGroupItem({
3480
+ className,
3481
+ children,
3482
+ variant,
3483
+ size,
3484
+ ...props
3485
+ }) {
3486
+ const context = React2__namespace.useContext(ToggleGroupContext);
3487
+ return /* @__PURE__ */ jsxRuntime.jsx(
3488
+ ToggleGroupPrimitive__namespace.Item,
3489
+ {
3490
+ "data-slot": "toggle-group-item",
3491
+ "data-variant": context.variant || variant,
3492
+ "data-size": context.size || size,
3493
+ className: cn(
3494
+ toggleVariants({
3495
+ variant: context.variant || variant,
3496
+ size: context.size || size
3497
+ }),
3498
+ "min-w-0 flex-1 shrink-0 rounded-none shadow-none first:rounded-l-md last:rounded-r-md focus:z-10 focus-visible:z-10 data-[variant=outline]:border-l-0 data-[variant=outline]:first:border-l",
3499
+ className
3500
+ ),
3501
+ ...props,
3502
+ children
3503
+ }
3504
+ );
3505
+ }
3506
+ function TooltipProvider({
3507
+ delayDuration = 0,
3508
+ ...props
3509
+ }) {
3510
+ return /* @__PURE__ */ jsxRuntime.jsx(
3511
+ TooltipPrimitive__namespace.Provider,
3512
+ {
3513
+ "data-slot": "tooltip-provider",
3514
+ delayDuration,
3515
+ ...props
3516
+ }
3517
+ );
3518
+ }
3519
+ function Tooltip({
3520
+ ...props
3521
+ }) {
3522
+ return /* @__PURE__ */ jsxRuntime.jsx(TooltipProvider, { children: /* @__PURE__ */ jsxRuntime.jsx(TooltipPrimitive__namespace.Root, { "data-slot": "tooltip", ...props }) });
3523
+ }
3524
+ function TooltipTrigger({
3525
+ ...props
3526
+ }) {
3527
+ return /* @__PURE__ */ jsxRuntime.jsx(TooltipPrimitive__namespace.Trigger, { "data-slot": "tooltip-trigger", ...props });
3528
+ }
3529
+ function TooltipContent({
3530
+ className,
3531
+ sideOffset = 0,
3532
+ children,
3533
+ ...props
3534
+ }) {
3535
+ return /* @__PURE__ */ jsxRuntime.jsx(TooltipPrimitive__namespace.Portal, { children: /* @__PURE__ */ jsxRuntime.jsxs(
3536
+ TooltipPrimitive__namespace.Content,
3537
+ {
3538
+ "data-slot": "tooltip-content",
3539
+ sideOffset,
3540
+ className: cn(
3541
+ "bg-primary text-primary-foreground 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 z-50 w-fit origin-(--radix-tooltip-content-transform-origin) rounded-md px-3 py-1.5 text-xs text-balance",
3542
+ className
3543
+ ),
3544
+ ...props,
3545
+ children: [
3546
+ children,
3547
+ /* @__PURE__ */ jsxRuntime.jsx(TooltipPrimitive__namespace.Arrow, { className: "bg-primary fill-primary z-50 size-2.5 translate-y-[calc(-50%_-_2px)] rotate-45 rounded-[2px]" })
3548
+ ]
3549
+ }
3550
+ ) });
3551
+ }
3552
+ var TOAST_LIMIT = 1;
3553
+ var TOAST_REMOVE_DELAY = 1e6;
3554
+ var count = 0;
3555
+ function genId() {
3556
+ count = (count + 1) % Number.MAX_SAFE_INTEGER;
3557
+ return count.toString();
3558
+ }
3559
+ var toastTimeouts = /* @__PURE__ */ new Map();
3560
+ var addToRemoveQueue = (toastId) => {
3561
+ if (toastTimeouts.has(toastId)) {
3562
+ return;
3563
+ }
3564
+ const timeout = setTimeout(() => {
3565
+ toastTimeouts.delete(toastId);
3566
+ dispatch({
3567
+ type: "REMOVE_TOAST",
3568
+ toastId
3569
+ });
3570
+ }, TOAST_REMOVE_DELAY);
3571
+ toastTimeouts.set(toastId, timeout);
3572
+ };
3573
+ var reducer = (state, action) => {
3574
+ switch (action.type) {
3575
+ case "ADD_TOAST":
3576
+ return {
3577
+ ...state,
3578
+ toasts: [action.toast, ...state.toasts].slice(0, TOAST_LIMIT)
3579
+ };
3580
+ case "UPDATE_TOAST":
3581
+ return {
3582
+ ...state,
3583
+ toasts: state.toasts.map(
3584
+ (t2) => t2.id === action.toast.id ? { ...t2, ...action.toast } : t2
3585
+ )
3586
+ };
3587
+ case "DISMISS_TOAST": {
3588
+ const { toastId } = action;
3589
+ if (toastId) {
3590
+ addToRemoveQueue(toastId);
3591
+ } else {
3592
+ state.toasts.forEach((toast2) => {
3593
+ addToRemoveQueue(toast2.id);
3594
+ });
3595
+ }
3596
+ return {
3597
+ ...state,
3598
+ toasts: state.toasts.map(
3599
+ (t2) => t2.id === toastId || toastId === void 0 ? {
3600
+ ...t2,
3601
+ open: false
3602
+ } : t2
3603
+ )
3604
+ };
3605
+ }
3606
+ case "REMOVE_TOAST":
3607
+ if (action.toastId === void 0) {
3608
+ return {
3609
+ ...state,
3610
+ toasts: []
3611
+ };
3612
+ }
3613
+ return {
3614
+ ...state,
3615
+ toasts: state.toasts.filter((t2) => t2.id !== action.toastId)
3616
+ };
3617
+ }
3618
+ };
3619
+ var listeners = [];
3620
+ var memoryState = { toasts: [] };
3621
+ function dispatch(action) {
3622
+ memoryState = reducer(memoryState, action);
3623
+ listeners.forEach((listener) => {
3624
+ listener(memoryState);
3625
+ });
3626
+ }
3627
+ function toast({ ...props }) {
3628
+ const id = genId();
3629
+ const update = (props2) => dispatch({
3630
+ type: "UPDATE_TOAST",
3631
+ toast: { ...props2, id }
3632
+ });
3633
+ const dismiss = () => dispatch({ type: "DISMISS_TOAST", toastId: id });
3634
+ dispatch({
3635
+ type: "ADD_TOAST",
3636
+ toast: {
3637
+ ...props,
3638
+ id,
3639
+ open: true,
3640
+ onOpenChange: (open) => {
3641
+ if (!open) dismiss();
3642
+ }
3643
+ }
3644
+ });
3645
+ return {
3646
+ id,
3647
+ dismiss,
3648
+ update
3649
+ };
3650
+ }
3651
+ function useToast() {
3652
+ const [state, setState] = React2__namespace.useState(memoryState);
3653
+ React2__namespace.useEffect(() => {
3654
+ listeners.push(setState);
3655
+ return () => {
3656
+ const index = listeners.indexOf(setState);
3657
+ if (index > -1) {
3658
+ listeners.splice(index, 1);
3659
+ }
3660
+ };
3661
+ }, [state]);
3662
+ return {
3663
+ ...state,
3664
+ toast,
3665
+ dismiss: (toastId) => dispatch({ type: "DISMISS_TOAST", toastId })
3666
+ };
3667
+ }
3668
+ var MOBILE_BREAKPOINT = 768;
3669
+ function useIsMobile() {
3670
+ const [isMobile, setIsMobile] = React2__namespace.useState(void 0);
3671
+ React2__namespace.useEffect(() => {
3672
+ const mql = window.matchMedia(`(max-width: ${MOBILE_BREAKPOINT - 1}px)`);
3673
+ const onChange = () => {
3674
+ setIsMobile(window.innerWidth < MOBILE_BREAKPOINT);
3675
+ };
3676
+ mql.addEventListener("change", onChange);
3677
+ setIsMobile(window.innerWidth < MOBILE_BREAKPOINT);
3678
+ return () => mql.removeEventListener("change", onChange);
3679
+ }, []);
3680
+ return !!isMobile;
3681
+ }
3682
+
3683
+ // src/index.ts
3684
+ var VERSION = "1.0.0";
3685
+
3686
+ exports.Accordion = Accordion;
3687
+ exports.AccordionContent = AccordionContent;
3688
+ exports.AccordionItem = AccordionItem;
3689
+ exports.AccordionTrigger = AccordionTrigger;
3690
+ exports.Alert = Alert;
3691
+ exports.AlertDescription = AlertDescription;
3692
+ exports.AlertDialog = AlertDialog;
3693
+ exports.AlertDialogAction = AlertDialogAction;
3694
+ exports.AlertDialogCancel = AlertDialogCancel;
3695
+ exports.AlertDialogContent = AlertDialogContent;
3696
+ exports.AlertDialogDescription = AlertDialogDescription;
3697
+ exports.AlertDialogFooter = AlertDialogFooter;
3698
+ exports.AlertDialogHeader = AlertDialogHeader;
3699
+ exports.AlertDialogOverlay = AlertDialogOverlay;
3700
+ exports.AlertDialogPortal = AlertDialogPortal;
3701
+ exports.AlertDialogTitle = AlertDialogTitle;
3702
+ exports.AlertDialogTrigger = AlertDialogTrigger;
3703
+ exports.AlertTitle = AlertTitle;
3704
+ exports.AspectRatio = AspectRatio;
3705
+ exports.Avatar = Avatar;
3706
+ exports.AvatarFallback = AvatarFallback;
3707
+ exports.AvatarImage = AvatarImage;
3708
+ exports.Badge = Badge;
3709
+ exports.Breadcrumb = Breadcrumb;
3710
+ exports.BreadcrumbEllipsis = BreadcrumbEllipsis;
3711
+ exports.BreadcrumbItem = BreadcrumbItem;
3712
+ exports.BreadcrumbLink = BreadcrumbLink;
3713
+ exports.BreadcrumbList = BreadcrumbList;
3714
+ exports.BreadcrumbPage = BreadcrumbPage;
3715
+ exports.BreadcrumbSeparator = BreadcrumbSeparator;
3716
+ exports.Button = Button;
3717
+ exports.Calendar = Calendar;
3718
+ exports.CalendarDayButton = CalendarDayButton;
3719
+ exports.Card = Card;
3720
+ exports.CardAction = CardAction;
3721
+ exports.CardContent = CardContent;
3722
+ exports.CardDescription = CardDescription;
3723
+ exports.CardFooter = CardFooter;
3724
+ exports.CardHeader = CardHeader;
3725
+ exports.CardTitle = CardTitle;
3726
+ exports.Carousel = Carousel;
3727
+ exports.CarouselContent = CarouselContent;
3728
+ exports.CarouselItem = CarouselItem;
3729
+ exports.CarouselNext = CarouselNext;
3730
+ exports.CarouselPrevious = CarouselPrevious;
3731
+ exports.Checkbox = Checkbox;
3732
+ exports.Collapsible = Collapsible;
3733
+ exports.CollapsibleContent = CollapsibleContent2;
3734
+ exports.CollapsibleTrigger = CollapsibleTrigger2;
3735
+ exports.Command = Command;
3736
+ exports.CommandDialog = CommandDialog;
3737
+ exports.CommandEmpty = CommandEmpty;
3738
+ exports.CommandGroup = CommandGroup;
3739
+ exports.CommandInput = CommandInput;
3740
+ exports.CommandItem = CommandItem;
3741
+ exports.CommandList = CommandList;
3742
+ exports.CommandSeparator = CommandSeparator;
3743
+ exports.CommandShortcut = CommandShortcut;
3744
+ exports.ContextMenu = ContextMenu;
3745
+ exports.ContextMenuCheckboxItem = ContextMenuCheckboxItem;
3746
+ exports.ContextMenuContent = ContextMenuContent;
3747
+ exports.ContextMenuGroup = ContextMenuGroup;
3748
+ exports.ContextMenuItem = ContextMenuItem;
3749
+ exports.ContextMenuLabel = ContextMenuLabel;
3750
+ exports.ContextMenuPortal = ContextMenuPortal;
3751
+ exports.ContextMenuRadioGroup = ContextMenuRadioGroup;
3752
+ exports.ContextMenuRadioItem = ContextMenuRadioItem;
3753
+ exports.ContextMenuSeparator = ContextMenuSeparator;
3754
+ exports.ContextMenuShortcut = ContextMenuShortcut;
3755
+ exports.ContextMenuSub = ContextMenuSub;
3756
+ exports.ContextMenuSubContent = ContextMenuSubContent;
3757
+ exports.ContextMenuSubTrigger = ContextMenuSubTrigger;
3758
+ exports.ContextMenuTrigger = ContextMenuTrigger;
3759
+ exports.Dialog = Dialog;
3760
+ exports.DialogClose = DialogClose;
3761
+ exports.DialogContent = DialogContent;
3762
+ exports.DialogDescription = DialogDescription;
3763
+ exports.DialogFooter = DialogFooter;
3764
+ exports.DialogHeader = DialogHeader;
3765
+ exports.DialogOverlay = DialogOverlay;
3766
+ exports.DialogPortal = DialogPortal;
3767
+ exports.DialogTitle = DialogTitle;
3768
+ exports.DialogTrigger = DialogTrigger;
3769
+ exports.Drawer = Drawer;
3770
+ exports.DrawerClose = DrawerClose;
3771
+ exports.DrawerContent = DrawerContent;
3772
+ exports.DrawerDescription = DrawerDescription;
3773
+ exports.DrawerFooter = DrawerFooter;
3774
+ exports.DrawerHeader = DrawerHeader;
3775
+ exports.DrawerOverlay = DrawerOverlay;
3776
+ exports.DrawerPortal = DrawerPortal;
3777
+ exports.DrawerTitle = DrawerTitle;
3778
+ exports.DrawerTrigger = DrawerTrigger;
3779
+ exports.DropdownMenu = DropdownMenu;
3780
+ exports.DropdownMenuCheckboxItem = DropdownMenuCheckboxItem;
3781
+ exports.DropdownMenuContent = DropdownMenuContent;
3782
+ exports.DropdownMenuGroup = DropdownMenuGroup;
3783
+ exports.DropdownMenuItem = DropdownMenuItem;
3784
+ exports.DropdownMenuLabel = DropdownMenuLabel;
3785
+ exports.DropdownMenuPortal = DropdownMenuPortal;
3786
+ exports.DropdownMenuRadioGroup = DropdownMenuRadioGroup;
3787
+ exports.DropdownMenuRadioItem = DropdownMenuRadioItem;
3788
+ exports.DropdownMenuSeparator = DropdownMenuSeparator;
3789
+ exports.DropdownMenuShortcut = DropdownMenuShortcut;
3790
+ exports.DropdownMenuSub = DropdownMenuSub;
3791
+ exports.DropdownMenuSubContent = DropdownMenuSubContent;
3792
+ exports.DropdownMenuSubTrigger = DropdownMenuSubTrigger;
3793
+ exports.DropdownMenuTrigger = DropdownMenuTrigger;
3794
+ exports.Form = Form;
3795
+ exports.FormControl = FormControl;
3796
+ exports.FormDescription = FormDescription;
3797
+ exports.FormField = FormField;
3798
+ exports.FormItem = FormItem;
3799
+ exports.FormLabel = FormLabel;
3800
+ exports.FormMessage = FormMessage;
3801
+ exports.HoverCard = HoverCard;
3802
+ exports.HoverCardContent = HoverCardContent;
3803
+ exports.HoverCardTrigger = HoverCardTrigger;
3804
+ exports.Input = Input;
3805
+ exports.InputOTP = InputOTP;
3806
+ exports.InputOTPGroup = InputOTPGroup;
3807
+ exports.InputOTPSeparator = InputOTPSeparator;
3808
+ exports.InputOTPSlot = InputOTPSlot;
3809
+ exports.Label = Label3;
3810
+ exports.Menubar = Menubar;
3811
+ exports.MenubarCheckboxItem = MenubarCheckboxItem;
3812
+ exports.MenubarContent = MenubarContent;
3813
+ exports.MenubarGroup = MenubarGroup;
3814
+ exports.MenubarItem = MenubarItem;
3815
+ exports.MenubarLabel = MenubarLabel;
3816
+ exports.MenubarMenu = MenubarMenu;
3817
+ exports.MenubarPortal = MenubarPortal;
3818
+ exports.MenubarRadioGroup = MenubarRadioGroup;
3819
+ exports.MenubarRadioItem = MenubarRadioItem;
3820
+ exports.MenubarSeparator = MenubarSeparator;
3821
+ exports.MenubarShortcut = MenubarShortcut;
3822
+ exports.MenubarSub = MenubarSub;
3823
+ exports.MenubarSubContent = MenubarSubContent;
3824
+ exports.MenubarSubTrigger = MenubarSubTrigger;
3825
+ exports.MenubarTrigger = MenubarTrigger;
3826
+ exports.NavigationMenu = NavigationMenu;
3827
+ exports.NavigationMenuContent = NavigationMenuContent;
3828
+ exports.NavigationMenuIndicator = NavigationMenuIndicator;
3829
+ exports.NavigationMenuItem = NavigationMenuItem;
3830
+ exports.NavigationMenuLink = NavigationMenuLink;
3831
+ exports.NavigationMenuList = NavigationMenuList;
3832
+ exports.NavigationMenuTrigger = NavigationMenuTrigger;
3833
+ exports.NavigationMenuViewport = NavigationMenuViewport;
3834
+ exports.Pagination = Pagination;
3835
+ exports.PaginationContent = PaginationContent;
3836
+ exports.PaginationEllipsis = PaginationEllipsis;
3837
+ exports.PaginationItem = PaginationItem;
3838
+ exports.PaginationLink = PaginationLink;
3839
+ exports.PaginationNext = PaginationNext;
3840
+ exports.PaginationPrevious = PaginationPrevious;
3841
+ exports.Popover = Popover;
3842
+ exports.PopoverAnchor = PopoverAnchor;
3843
+ exports.PopoverContent = PopoverContent;
3844
+ exports.PopoverTrigger = PopoverTrigger;
3845
+ exports.Progress = Progress;
3846
+ exports.RadioGroup = RadioGroup4;
3847
+ exports.RadioGroupItem = RadioGroupItem;
3848
+ exports.ResizableHandle = ResizableHandle;
3849
+ exports.ResizablePanel = ResizablePanel;
3850
+ exports.ResizablePanelGroup = ResizablePanelGroup;
3851
+ exports.ScrollArea = ScrollArea;
3852
+ exports.ScrollBar = ScrollBar;
3853
+ exports.Select = Select;
3854
+ exports.SelectContent = SelectContent;
3855
+ exports.SelectGroup = SelectGroup;
3856
+ exports.SelectItem = SelectItem;
3857
+ exports.SelectLabel = SelectLabel;
3858
+ exports.SelectScrollDownButton = SelectScrollDownButton;
3859
+ exports.SelectScrollUpButton = SelectScrollUpButton;
3860
+ exports.SelectSeparator = SelectSeparator;
3861
+ exports.SelectTrigger = SelectTrigger;
3862
+ exports.SelectValue = SelectValue;
3863
+ exports.Separator = Separator5;
3864
+ exports.Sheet = Sheet;
3865
+ exports.SheetClose = SheetClose;
3866
+ exports.SheetContent = SheetContent;
3867
+ exports.SheetDescription = SheetDescription;
3868
+ exports.SheetFooter = SheetFooter;
3869
+ exports.SheetHeader = SheetHeader;
3870
+ exports.SheetTitle = SheetTitle;
3871
+ exports.SheetTrigger = SheetTrigger;
3872
+ exports.Skeleton = Skeleton;
3873
+ exports.Slider = Slider;
3874
+ exports.Switch = Switch;
3875
+ exports.Table = Table;
3876
+ exports.TableBody = TableBody;
3877
+ exports.TableCaption = TableCaption;
3878
+ exports.TableCell = TableCell;
3879
+ exports.TableFooter = TableFooter;
3880
+ exports.TableHead = TableHead;
3881
+ exports.TableHeader = TableHeader;
3882
+ exports.TableRow = TableRow;
3883
+ exports.Tabs = Tabs;
3884
+ exports.TabsContent = TabsContent;
3885
+ exports.TabsList = TabsList;
3886
+ exports.TabsTrigger = TabsTrigger;
3887
+ exports.Textarea = Textarea;
3888
+ exports.Toast = Toast;
3889
+ exports.ToastAction = ToastAction;
3890
+ exports.ToastClose = ToastClose;
3891
+ exports.ToastDescription = ToastDescription;
3892
+ exports.ToastProvider = ToastProvider;
3893
+ exports.ToastTitle = ToastTitle;
3894
+ exports.ToastViewport = ToastViewport;
3895
+ exports.Toaster = Toaster;
3896
+ exports.Toggle = Toggle;
3897
+ exports.ToggleGroup = ToggleGroup;
3898
+ exports.ToggleGroupItem = ToggleGroupItem;
3899
+ exports.Tooltip = Tooltip;
3900
+ exports.TooltipContent = TooltipContent;
3901
+ exports.TooltipProvider = TooltipProvider;
3902
+ exports.TooltipTrigger = TooltipTrigger;
3903
+ exports.VERSION = VERSION;
3904
+ exports.badgeVariants = badgeVariants;
3905
+ exports.buttonVariants = buttonVariants;
3906
+ exports.cn = cn;
3907
+ exports.navigationMenuTriggerStyle = navigationMenuTriggerStyle;
3908
+ exports.toggleVariants = toggleVariants;
3909
+ exports.useFormField = useFormField;
3910
+ exports.useIsMobile = useIsMobile;
3911
+ exports.useToast = useToast;
3912
+ //# sourceMappingURL=index.cjs.map
3913
+ //# sourceMappingURL=index.cjs.map