@privateers/ui 0.1.0 → 0.2.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 +2919 -365
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +309 -10
- package/dist/index.d.ts +309 -10
- package/dist/index.js +2746 -363
- package/dist/index.js.map +1 -1
- package/dist/tailwind/preset.cjs +44 -0
- package/dist/tailwind/preset.cjs.map +1 -1
- package/dist/tailwind/preset.js +44 -0
- package/dist/tailwind/preset.js.map +1 -1
- package/package.json +5 -1
package/dist/index.js
CHANGED
|
@@ -1,15 +1,217 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { Accordion as Accordion$1, AspectRatio as AspectRatio$1, Collapsible as Collapsible$1, Popover as Popover$1, NavigationMenu as NavigationMenu$1, Dialog as Dialog$1, ContextMenu as ContextMenu$1, HoverCard as HoverCard$1, Avatar as Avatar$1, Slot, Checkbox as Checkbox$1, Label as Label$1, Progress as Progress$1, RadioGroup as RadioGroup$1, ScrollArea as ScrollArea$1, Separator as Separator$1, Slider as Slider$1, Switch as Switch$1, Tabs as Tabs$1, Select as Select$1, AlertDialog as AlertDialog$1, DropdownMenu as DropdownMenu$1, Tooltip as Tooltip$1 } from 'radix-ui';
|
|
2
|
+
import { ChevronDown, ChevronRight, MoreHorizontal, ChevronLeft, CheckIcon, Calendar as Calendar$1, Circle, X, PanelLeft, Loader2, ChevronDownIcon, ChevronUpIcon, XIcon, Search, Check, ChevronRightIcon } from 'lucide-react';
|
|
3
3
|
import { clsx } from 'clsx';
|
|
4
4
|
import { twMerge } from 'tailwind-merge';
|
|
5
|
-
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
6
|
-
import {
|
|
5
|
+
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
6
|
+
import { cva } from 'class-variance-authority';
|
|
7
|
+
import { DayPicker } from 'react-day-picker';
|
|
8
|
+
import * as React2 from 'react';
|
|
7
9
|
import { useMemo } from 'react';
|
|
10
|
+
import { format } from 'date-fns';
|
|
11
|
+
import { Command as Command$1 } from 'cmdk';
|
|
8
12
|
|
|
9
|
-
// src/components/primitives/
|
|
13
|
+
// src/components/primitives/accordion.tsx
|
|
10
14
|
function cn(...inputs) {
|
|
11
15
|
return twMerge(clsx(inputs));
|
|
12
16
|
}
|
|
17
|
+
var Accordion = Accordion$1.Root;
|
|
18
|
+
function AccordionItem({
|
|
19
|
+
className,
|
|
20
|
+
...props
|
|
21
|
+
}) {
|
|
22
|
+
return /* @__PURE__ */ jsx(
|
|
23
|
+
Accordion$1.Item,
|
|
24
|
+
{
|
|
25
|
+
"data-slot": "accordion-item",
|
|
26
|
+
className: cn("border-b", className),
|
|
27
|
+
...props
|
|
28
|
+
}
|
|
29
|
+
);
|
|
30
|
+
}
|
|
31
|
+
function AccordionTrigger({
|
|
32
|
+
className,
|
|
33
|
+
children,
|
|
34
|
+
...props
|
|
35
|
+
}) {
|
|
36
|
+
return /* @__PURE__ */ jsx(Accordion$1.Header, { className: "flex", children: /* @__PURE__ */ jsxs(
|
|
37
|
+
Accordion$1.Trigger,
|
|
38
|
+
{
|
|
39
|
+
"data-slot": "accordion-trigger",
|
|
40
|
+
className: cn(
|
|
41
|
+
"flex flex-1 items-center justify-between py-4 text-sm font-medium transition-all hover:underline text-left",
|
|
42
|
+
"[&[data-state=open]>svg]:rotate-180",
|
|
43
|
+
className
|
|
44
|
+
),
|
|
45
|
+
...props,
|
|
46
|
+
children: [
|
|
47
|
+
children,
|
|
48
|
+
/* @__PURE__ */ jsx(ChevronDown, { className: "size-4 shrink-0 text-muted-foreground transition-transform duration-200" })
|
|
49
|
+
]
|
|
50
|
+
}
|
|
51
|
+
) });
|
|
52
|
+
}
|
|
53
|
+
function AccordionContent({
|
|
54
|
+
className,
|
|
55
|
+
children,
|
|
56
|
+
...props
|
|
57
|
+
}) {
|
|
58
|
+
return /* @__PURE__ */ jsx(
|
|
59
|
+
Accordion$1.Content,
|
|
60
|
+
{
|
|
61
|
+
"data-slot": "accordion-content",
|
|
62
|
+
className: "overflow-hidden text-sm data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down",
|
|
63
|
+
...props,
|
|
64
|
+
children: /* @__PURE__ */ jsx("div", { className: cn("pb-4 pt-0", className), children })
|
|
65
|
+
}
|
|
66
|
+
);
|
|
67
|
+
}
|
|
68
|
+
var AspectRatio = AspectRatio$1.Root;
|
|
69
|
+
function Avatar({
|
|
70
|
+
className,
|
|
71
|
+
...props
|
|
72
|
+
}) {
|
|
73
|
+
return /* @__PURE__ */ jsx(
|
|
74
|
+
Avatar$1.Root,
|
|
75
|
+
{
|
|
76
|
+
"data-slot": "avatar",
|
|
77
|
+
className: cn(
|
|
78
|
+
"relative flex size-10 shrink-0 overflow-hidden rounded-full",
|
|
79
|
+
className
|
|
80
|
+
),
|
|
81
|
+
...props
|
|
82
|
+
}
|
|
83
|
+
);
|
|
84
|
+
}
|
|
85
|
+
function AvatarImage({
|
|
86
|
+
className,
|
|
87
|
+
...props
|
|
88
|
+
}) {
|
|
89
|
+
return /* @__PURE__ */ jsx(
|
|
90
|
+
Avatar$1.Image,
|
|
91
|
+
{
|
|
92
|
+
"data-slot": "avatar-image",
|
|
93
|
+
className: cn("aspect-square size-full", className),
|
|
94
|
+
...props
|
|
95
|
+
}
|
|
96
|
+
);
|
|
97
|
+
}
|
|
98
|
+
function AvatarFallback({
|
|
99
|
+
className,
|
|
100
|
+
...props
|
|
101
|
+
}) {
|
|
102
|
+
return /* @__PURE__ */ jsx(
|
|
103
|
+
Avatar$1.Fallback,
|
|
104
|
+
{
|
|
105
|
+
"data-slot": "avatar-fallback",
|
|
106
|
+
className: cn(
|
|
107
|
+
"flex size-full items-center justify-center rounded-full bg-muted text-sm font-medium",
|
|
108
|
+
className
|
|
109
|
+
),
|
|
110
|
+
...props
|
|
111
|
+
}
|
|
112
|
+
);
|
|
113
|
+
}
|
|
114
|
+
function Breadcrumb({
|
|
115
|
+
...props
|
|
116
|
+
}) {
|
|
117
|
+
return /* @__PURE__ */ jsx("nav", { "aria-label": "breadcrumb", "data-slot": "breadcrumb", ...props });
|
|
118
|
+
}
|
|
119
|
+
function BreadcrumbList({
|
|
120
|
+
className,
|
|
121
|
+
...props
|
|
122
|
+
}) {
|
|
123
|
+
return /* @__PURE__ */ jsx(
|
|
124
|
+
"ol",
|
|
125
|
+
{
|
|
126
|
+
"data-slot": "breadcrumb-list",
|
|
127
|
+
className: cn(
|
|
128
|
+
"flex flex-wrap items-center gap-1.5 break-words text-sm text-muted-foreground sm:gap-2.5",
|
|
129
|
+
className
|
|
130
|
+
),
|
|
131
|
+
...props
|
|
132
|
+
}
|
|
133
|
+
);
|
|
134
|
+
}
|
|
135
|
+
function BreadcrumbItem({
|
|
136
|
+
className,
|
|
137
|
+
...props
|
|
138
|
+
}) {
|
|
139
|
+
return /* @__PURE__ */ jsx(
|
|
140
|
+
"li",
|
|
141
|
+
{
|
|
142
|
+
"data-slot": "breadcrumb-item",
|
|
143
|
+
className: cn("inline-flex items-center gap-1.5", className),
|
|
144
|
+
...props
|
|
145
|
+
}
|
|
146
|
+
);
|
|
147
|
+
}
|
|
148
|
+
function BreadcrumbLink({
|
|
149
|
+
asChild,
|
|
150
|
+
className,
|
|
151
|
+
...props
|
|
152
|
+
}) {
|
|
153
|
+
const Comp = asChild ? Slot.Root : "a";
|
|
154
|
+
return /* @__PURE__ */ jsx(
|
|
155
|
+
Comp,
|
|
156
|
+
{
|
|
157
|
+
"data-slot": "breadcrumb-link",
|
|
158
|
+
className: cn("transition-colors hover:text-foreground", className),
|
|
159
|
+
...props
|
|
160
|
+
}
|
|
161
|
+
);
|
|
162
|
+
}
|
|
163
|
+
function BreadcrumbPage({
|
|
164
|
+
className,
|
|
165
|
+
...props
|
|
166
|
+
}) {
|
|
167
|
+
return /* @__PURE__ */ jsx(
|
|
168
|
+
"span",
|
|
169
|
+
{
|
|
170
|
+
"data-slot": "breadcrumb-page",
|
|
171
|
+
role: "link",
|
|
172
|
+
"aria-disabled": "true",
|
|
173
|
+
"aria-current": "page",
|
|
174
|
+
className: cn("font-normal text-foreground", className),
|
|
175
|
+
...props
|
|
176
|
+
}
|
|
177
|
+
);
|
|
178
|
+
}
|
|
179
|
+
function BreadcrumbSeparator({
|
|
180
|
+
children,
|
|
181
|
+
className,
|
|
182
|
+
...props
|
|
183
|
+
}) {
|
|
184
|
+
return /* @__PURE__ */ jsx(
|
|
185
|
+
"li",
|
|
186
|
+
{
|
|
187
|
+
"data-slot": "breadcrumb-separator",
|
|
188
|
+
role: "presentation",
|
|
189
|
+
"aria-hidden": "true",
|
|
190
|
+
className: cn("[&>svg]:size-3.5", className),
|
|
191
|
+
...props,
|
|
192
|
+
children: children ?? /* @__PURE__ */ jsx(ChevronRight, {})
|
|
193
|
+
}
|
|
194
|
+
);
|
|
195
|
+
}
|
|
196
|
+
function BreadcrumbEllipsis({
|
|
197
|
+
className,
|
|
198
|
+
...props
|
|
199
|
+
}) {
|
|
200
|
+
return /* @__PURE__ */ jsxs(
|
|
201
|
+
"span",
|
|
202
|
+
{
|
|
203
|
+
"data-slot": "breadcrumb-ellipsis",
|
|
204
|
+
role: "presentation",
|
|
205
|
+
"aria-hidden": "true",
|
|
206
|
+
className: cn("flex size-9 items-center justify-center", className),
|
|
207
|
+
...props,
|
|
208
|
+
children: [
|
|
209
|
+
/* @__PURE__ */ jsx(MoreHorizontal, { className: "size-4" }),
|
|
210
|
+
/* @__PURE__ */ jsx("span", { className: "sr-only", children: "More" })
|
|
211
|
+
]
|
|
212
|
+
}
|
|
213
|
+
);
|
|
214
|
+
}
|
|
13
215
|
var buttonVariants = cva(
|
|
14
216
|
"focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:aria-invalid:border-destructive/50 rounded-md border border-transparent bg-clip-padding text-sm font-medium focus-visible:ring-[3px] aria-invalid:ring-[3px] [&_svg:not([class*='size-'])]:size-4 inline-flex items-center justify-center whitespace-nowrap transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none shrink-0 [&_svg]:shrink-0 outline-none group/button select-none",
|
|
15
217
|
{
|
|
@@ -174,687 +376,2680 @@ function CardFooter({ className, ...props }) {
|
|
|
174
376
|
}
|
|
175
377
|
);
|
|
176
378
|
}
|
|
177
|
-
function
|
|
379
|
+
function Calendar({
|
|
380
|
+
className,
|
|
381
|
+
classNames,
|
|
382
|
+
showOutsideDays = true,
|
|
383
|
+
...props
|
|
384
|
+
}) {
|
|
178
385
|
return /* @__PURE__ */ jsx(
|
|
179
|
-
|
|
386
|
+
DayPicker,
|
|
180
387
|
{
|
|
181
|
-
|
|
182
|
-
"
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
388
|
+
showOutsideDays,
|
|
389
|
+
className: cn("p-3 rounded-lg border shadow-sm relative", className),
|
|
390
|
+
classNames: {
|
|
391
|
+
// Container structure
|
|
392
|
+
months: "flex flex-col sm:flex-row gap-4",
|
|
393
|
+
month: "flex flex-col gap-4",
|
|
394
|
+
month_caption: "flex justify-center pt-1 relative items-center h-7",
|
|
395
|
+
caption_label: "text-sm font-medium",
|
|
396
|
+
// Navigation - buttons inside the container
|
|
397
|
+
nav: "flex items-center justify-between absolute inset-x-0 top-3 px-3",
|
|
398
|
+
button_previous: cn(
|
|
399
|
+
buttonVariants({ variant: "outline" }),
|
|
400
|
+
"h-7 w-7 bg-transparent p-0 hover:bg-accent hover:text-accent-foreground"
|
|
401
|
+
),
|
|
402
|
+
button_next: cn(
|
|
403
|
+
buttonVariants({ variant: "outline" }),
|
|
404
|
+
"h-7 w-7 bg-transparent p-0 hover:bg-accent hover:text-accent-foreground"
|
|
405
|
+
),
|
|
406
|
+
// Calendar grid
|
|
407
|
+
month_grid: "w-full border-collapse",
|
|
408
|
+
weekdays: "flex",
|
|
409
|
+
weekday: "text-muted-foreground rounded-md w-8 font-normal text-[0.8rem] text-center",
|
|
410
|
+
week: "flex w-full mt-2",
|
|
411
|
+
// Day cells (v9: 'day' is the cell, 'day_button' is the button inside)
|
|
412
|
+
day: cn(
|
|
413
|
+
"relative h-8 w-8 p-0 text-center text-sm focus-within:relative focus-within:z-20",
|
|
414
|
+
"[&:has([aria-selected])]:bg-accent [&:has([aria-selected].outside)]:bg-accent/50",
|
|
415
|
+
props.mode === "range" ? "[&:has(>.range_end)]:rounded-r-md [&:has(>.range_start)]:rounded-l-md first:[&:has([aria-selected])]:rounded-l-md last:[&:has([aria-selected])]:rounded-r-md" : "[&:has([aria-selected])]:rounded-md"
|
|
416
|
+
),
|
|
417
|
+
day_button: cn(
|
|
418
|
+
buttonVariants({ variant: "ghost" }),
|
|
419
|
+
"h-8 w-8 p-0 font-normal aria-selected:opacity-100",
|
|
420
|
+
"aria-selected:bg-primary aria-selected:text-primary-foreground"
|
|
421
|
+
),
|
|
422
|
+
// Selection states (v9 names)
|
|
423
|
+
range_start: "range_start",
|
|
424
|
+
range_end: "range_end",
|
|
425
|
+
range_middle: "aria-selected:bg-accent aria-selected:text-accent-foreground",
|
|
426
|
+
selected: "bg-primary text-primary-foreground hover:bg-primary hover:text-primary-foreground focus:bg-primary focus:text-primary-foreground rounded-md",
|
|
427
|
+
today: "bg-accent text-accent-foreground rounded-md",
|
|
428
|
+
outside: "text-muted-foreground opacity-50 aria-selected:bg-accent/50 aria-selected:text-muted-foreground",
|
|
429
|
+
disabled: "text-muted-foreground opacity-50",
|
|
430
|
+
hidden: "invisible",
|
|
431
|
+
...classNames
|
|
432
|
+
},
|
|
433
|
+
components: {
|
|
434
|
+
Chevron: ({ orientation }) => orientation === "left" ? /* @__PURE__ */ jsx(ChevronLeft, { className: "h-4 w-4" }) : /* @__PURE__ */ jsx(ChevronRight, { className: "h-4 w-4" })
|
|
435
|
+
},
|
|
187
436
|
...props
|
|
188
437
|
}
|
|
189
438
|
);
|
|
190
439
|
}
|
|
191
|
-
|
|
440
|
+
Calendar.displayName = "Calendar";
|
|
441
|
+
function Checkbox({
|
|
442
|
+
className,
|
|
443
|
+
...props
|
|
444
|
+
}) {
|
|
192
445
|
return /* @__PURE__ */ jsx(
|
|
193
|
-
|
|
446
|
+
Checkbox$1.Root,
|
|
194
447
|
{
|
|
195
|
-
"data-slot": "
|
|
448
|
+
"data-slot": "checkbox",
|
|
196
449
|
className: cn(
|
|
197
|
-
"border-input
|
|
450
|
+
"peer border-input data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground 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",
|
|
198
451
|
className
|
|
199
452
|
),
|
|
200
|
-
...props
|
|
453
|
+
...props,
|
|
454
|
+
children: /* @__PURE__ */ jsx(
|
|
455
|
+
Checkbox$1.Indicator,
|
|
456
|
+
{
|
|
457
|
+
"data-slot": "checkbox-indicator",
|
|
458
|
+
className: cn("flex items-center justify-center text-current"),
|
|
459
|
+
children: /* @__PURE__ */ jsx(CheckIcon, { className: "size-3.5" })
|
|
460
|
+
}
|
|
461
|
+
)
|
|
201
462
|
}
|
|
202
463
|
);
|
|
203
464
|
}
|
|
204
|
-
|
|
465
|
+
var Collapsible = Collapsible$1.Root;
|
|
466
|
+
var CollapsibleTrigger = Collapsible$1.Trigger;
|
|
467
|
+
var CollapsibleContent = Collapsible$1.Content;
|
|
468
|
+
var containerVariants = cva("mx-auto w-full px-4 sm:px-6 lg:px-8", {
|
|
469
|
+
variants: {
|
|
470
|
+
size: {
|
|
471
|
+
sm: "max-w-screen-sm",
|
|
472
|
+
md: "max-w-screen-md",
|
|
473
|
+
lg: "max-w-screen-lg",
|
|
474
|
+
xl: "max-w-screen-xl",
|
|
475
|
+
"2xl": "max-w-screen-2xl",
|
|
476
|
+
full: "max-w-full",
|
|
477
|
+
prose: "max-w-prose"
|
|
478
|
+
},
|
|
479
|
+
center: {
|
|
480
|
+
true: "flex flex-col items-center",
|
|
481
|
+
false: ""
|
|
482
|
+
}
|
|
483
|
+
},
|
|
484
|
+
defaultVariants: {
|
|
485
|
+
size: "xl",
|
|
486
|
+
center: false
|
|
487
|
+
}
|
|
488
|
+
});
|
|
489
|
+
function Container({
|
|
205
490
|
className,
|
|
491
|
+
size,
|
|
492
|
+
center,
|
|
493
|
+
asChild = false,
|
|
206
494
|
...props
|
|
207
495
|
}) {
|
|
496
|
+
const Comp = asChild ? Slot.Root : "div";
|
|
208
497
|
return /* @__PURE__ */ jsx(
|
|
209
|
-
|
|
498
|
+
Comp,
|
|
210
499
|
{
|
|
211
|
-
"data-slot": "
|
|
212
|
-
className: cn(
|
|
213
|
-
"gap-2 text-sm leading-none font-medium group-data-[disabled=true]:opacity-50 peer-disabled:opacity-50 flex items-center select-none group-data-[disabled=true]:pointer-events-none peer-disabled:cursor-not-allowed",
|
|
214
|
-
className
|
|
215
|
-
),
|
|
500
|
+
"data-slot": "container",
|
|
501
|
+
className: cn(containerVariants({ size, center }), className),
|
|
216
502
|
...props
|
|
217
503
|
}
|
|
218
504
|
);
|
|
219
505
|
}
|
|
220
|
-
|
|
506
|
+
var Popover = Popover$1.Root;
|
|
507
|
+
var PopoverTrigger = Popover$1.Trigger;
|
|
508
|
+
var PopoverAnchor = Popover$1.Anchor;
|
|
509
|
+
var PopoverClose = Popover$1.Close;
|
|
510
|
+
function PopoverContent({
|
|
221
511
|
className,
|
|
222
|
-
|
|
223
|
-
|
|
512
|
+
align = "center",
|
|
513
|
+
sideOffset = 4,
|
|
224
514
|
...props
|
|
225
515
|
}) {
|
|
226
|
-
return /* @__PURE__ */ jsx(
|
|
227
|
-
|
|
516
|
+
return /* @__PURE__ */ jsx(Popover$1.Portal, { children: /* @__PURE__ */ jsx(
|
|
517
|
+
Popover$1.Content,
|
|
228
518
|
{
|
|
229
|
-
"data-slot": "
|
|
230
|
-
|
|
231
|
-
|
|
519
|
+
"data-slot": "popover-content",
|
|
520
|
+
align,
|
|
521
|
+
sideOffset,
|
|
232
522
|
className: cn(
|
|
233
|
-
"
|
|
523
|
+
"z-50 w-72 rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-none",
|
|
524
|
+
"data-[state=open]:animate-in data-[state=closed]:animate-out",
|
|
525
|
+
"data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",
|
|
526
|
+
"data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95",
|
|
527
|
+
"data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2",
|
|
528
|
+
"data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",
|
|
234
529
|
className
|
|
235
530
|
),
|
|
236
531
|
...props
|
|
237
532
|
}
|
|
238
|
-
);
|
|
533
|
+
) });
|
|
239
534
|
}
|
|
240
|
-
function
|
|
241
|
-
|
|
535
|
+
function DatePicker({
|
|
536
|
+
date,
|
|
537
|
+
onDateChange,
|
|
538
|
+
placeholder = "Pick a date",
|
|
539
|
+
className,
|
|
540
|
+
disabled = false
|
|
242
541
|
}) {
|
|
243
|
-
|
|
542
|
+
const [selectedDate, setSelectedDate] = React2.useState(date);
|
|
543
|
+
const handleSelect = (newDate) => {
|
|
544
|
+
setSelectedDate(newDate);
|
|
545
|
+
onDateChange?.(newDate);
|
|
546
|
+
};
|
|
547
|
+
return /* @__PURE__ */ jsxs(Popover, { children: [
|
|
548
|
+
/* @__PURE__ */ jsx(PopoverTrigger, { asChild: true, children: /* @__PURE__ */ jsxs(
|
|
549
|
+
Button,
|
|
550
|
+
{
|
|
551
|
+
variant: "outline",
|
|
552
|
+
disabled,
|
|
553
|
+
className: cn(
|
|
554
|
+
"w-[240px] justify-start text-left font-normal",
|
|
555
|
+
!selectedDate && "text-muted-foreground",
|
|
556
|
+
className
|
|
557
|
+
),
|
|
558
|
+
children: [
|
|
559
|
+
/* @__PURE__ */ jsx(Calendar$1, { className: "mr-2 h-4 w-4" }),
|
|
560
|
+
selectedDate ? format(selectedDate, "PPP") : /* @__PURE__ */ jsx("span", { children: placeholder })
|
|
561
|
+
]
|
|
562
|
+
}
|
|
563
|
+
) }),
|
|
564
|
+
/* @__PURE__ */ jsx(PopoverContent, { className: "w-auto p-0", align: "start", children: /* @__PURE__ */ jsx(
|
|
565
|
+
Calendar,
|
|
566
|
+
{
|
|
567
|
+
mode: "single",
|
|
568
|
+
selected: selectedDate,
|
|
569
|
+
onSelect: handleSelect,
|
|
570
|
+
initialFocus: true
|
|
571
|
+
}
|
|
572
|
+
) })
|
|
573
|
+
] });
|
|
244
574
|
}
|
|
245
|
-
function
|
|
575
|
+
function DateRangePicker({
|
|
576
|
+
from,
|
|
577
|
+
to,
|
|
578
|
+
onRangeChange,
|
|
579
|
+
placeholder = "Pick a date range",
|
|
580
|
+
className,
|
|
581
|
+
disabled = false
|
|
582
|
+
}) {
|
|
583
|
+
const [dateRange, setDateRange] = React2.useState({ from, to });
|
|
584
|
+
const handleSelect = (range) => {
|
|
585
|
+
const newRange = range || { from: void 0, to: void 0 };
|
|
586
|
+
setDateRange(newRange);
|
|
587
|
+
onRangeChange?.(newRange);
|
|
588
|
+
};
|
|
589
|
+
return /* @__PURE__ */ jsxs(Popover, { children: [
|
|
590
|
+
/* @__PURE__ */ jsx(PopoverTrigger, { asChild: true, children: /* @__PURE__ */ jsxs(
|
|
591
|
+
Button,
|
|
592
|
+
{
|
|
593
|
+
variant: "outline",
|
|
594
|
+
disabled,
|
|
595
|
+
className: cn(
|
|
596
|
+
"w-[300px] justify-start text-left font-normal",
|
|
597
|
+
!dateRange.from && "text-muted-foreground",
|
|
598
|
+
className
|
|
599
|
+
),
|
|
600
|
+
children: [
|
|
601
|
+
/* @__PURE__ */ jsx(Calendar$1, { className: "mr-2 h-4 w-4" }),
|
|
602
|
+
dateRange.from ? dateRange.to ? /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
603
|
+
format(dateRange.from, "LLL dd, y"),
|
|
604
|
+
" -",
|
|
605
|
+
" ",
|
|
606
|
+
format(dateRange.to, "LLL dd, y")
|
|
607
|
+
] }) : format(dateRange.from, "LLL dd, y") : /* @__PURE__ */ jsx("span", { children: placeholder })
|
|
608
|
+
]
|
|
609
|
+
}
|
|
610
|
+
) }),
|
|
611
|
+
/* @__PURE__ */ jsx(PopoverContent, { className: "w-auto p-0", align: "start", children: /* @__PURE__ */ jsx(
|
|
612
|
+
Calendar,
|
|
613
|
+
{
|
|
614
|
+
mode: "range",
|
|
615
|
+
defaultMonth: dateRange.from,
|
|
616
|
+
selected: dateRange,
|
|
617
|
+
onSelect: handleSelect,
|
|
618
|
+
numberOfMonths: 2,
|
|
619
|
+
initialFocus: true
|
|
620
|
+
}
|
|
621
|
+
) })
|
|
622
|
+
] });
|
|
623
|
+
}
|
|
624
|
+
var gridVariants = cva("grid", {
|
|
625
|
+
variants: {
|
|
626
|
+
cols: {
|
|
627
|
+
1: "grid-cols-1",
|
|
628
|
+
2: "grid-cols-2",
|
|
629
|
+
3: "grid-cols-3",
|
|
630
|
+
4: "grid-cols-4",
|
|
631
|
+
5: "grid-cols-5",
|
|
632
|
+
6: "grid-cols-6",
|
|
633
|
+
7: "grid-cols-7",
|
|
634
|
+
8: "grid-cols-8",
|
|
635
|
+
9: "grid-cols-9",
|
|
636
|
+
10: "grid-cols-10",
|
|
637
|
+
11: "grid-cols-11",
|
|
638
|
+
12: "grid-cols-12",
|
|
639
|
+
none: "grid-cols-none"
|
|
640
|
+
},
|
|
641
|
+
rows: {
|
|
642
|
+
1: "grid-rows-1",
|
|
643
|
+
2: "grid-rows-2",
|
|
644
|
+
3: "grid-rows-3",
|
|
645
|
+
4: "grid-rows-4",
|
|
646
|
+
5: "grid-rows-5",
|
|
647
|
+
6: "grid-rows-6",
|
|
648
|
+
none: "grid-rows-none"
|
|
649
|
+
},
|
|
650
|
+
gap: {
|
|
651
|
+
0: "gap-0",
|
|
652
|
+
1: "gap-1",
|
|
653
|
+
2: "gap-2",
|
|
654
|
+
3: "gap-3",
|
|
655
|
+
4: "gap-4",
|
|
656
|
+
5: "gap-5",
|
|
657
|
+
6: "gap-6",
|
|
658
|
+
8: "gap-8",
|
|
659
|
+
10: "gap-10",
|
|
660
|
+
12: "gap-12"
|
|
661
|
+
},
|
|
662
|
+
align: {
|
|
663
|
+
start: "items-start",
|
|
664
|
+
center: "items-center",
|
|
665
|
+
end: "items-end",
|
|
666
|
+
stretch: "items-stretch",
|
|
667
|
+
baseline: "items-baseline"
|
|
668
|
+
},
|
|
669
|
+
justify: {
|
|
670
|
+
start: "justify-items-start",
|
|
671
|
+
center: "justify-items-center",
|
|
672
|
+
end: "justify-items-end",
|
|
673
|
+
stretch: "justify-items-stretch"
|
|
674
|
+
}
|
|
675
|
+
},
|
|
676
|
+
defaultVariants: {
|
|
677
|
+
cols: 1,
|
|
678
|
+
gap: 4,
|
|
679
|
+
align: "stretch",
|
|
680
|
+
justify: "stretch"
|
|
681
|
+
}
|
|
682
|
+
});
|
|
683
|
+
function Grid({
|
|
246
684
|
className,
|
|
685
|
+
cols,
|
|
686
|
+
rows,
|
|
687
|
+
gap,
|
|
688
|
+
align,
|
|
689
|
+
justify,
|
|
690
|
+
asChild = false,
|
|
247
691
|
...props
|
|
248
692
|
}) {
|
|
693
|
+
const Comp = asChild ? Slot.Root : "div";
|
|
249
694
|
return /* @__PURE__ */ jsx(
|
|
250
|
-
|
|
695
|
+
Comp,
|
|
251
696
|
{
|
|
252
|
-
"data-slot": "
|
|
253
|
-
className: cn(
|
|
697
|
+
"data-slot": "grid",
|
|
698
|
+
className: cn(gridVariants({ cols, rows, gap, align, justify }), className),
|
|
254
699
|
...props
|
|
255
700
|
}
|
|
256
701
|
);
|
|
257
702
|
}
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
703
|
+
var gridItemVariants = cva("", {
|
|
704
|
+
variants: {
|
|
705
|
+
colSpan: {
|
|
706
|
+
1: "col-span-1",
|
|
707
|
+
2: "col-span-2",
|
|
708
|
+
3: "col-span-3",
|
|
709
|
+
4: "col-span-4",
|
|
710
|
+
5: "col-span-5",
|
|
711
|
+
6: "col-span-6",
|
|
712
|
+
7: "col-span-7",
|
|
713
|
+
8: "col-span-8",
|
|
714
|
+
9: "col-span-9",
|
|
715
|
+
10: "col-span-10",
|
|
716
|
+
11: "col-span-11",
|
|
717
|
+
12: "col-span-12",
|
|
718
|
+
full: "col-span-full"
|
|
719
|
+
},
|
|
720
|
+
rowSpan: {
|
|
721
|
+
1: "row-span-1",
|
|
722
|
+
2: "row-span-2",
|
|
723
|
+
3: "row-span-3",
|
|
724
|
+
4: "row-span-4",
|
|
725
|
+
5: "row-span-5",
|
|
726
|
+
6: "row-span-6",
|
|
727
|
+
full: "row-span-full"
|
|
728
|
+
}
|
|
729
|
+
}
|
|
730
|
+
});
|
|
731
|
+
function GridItem({
|
|
264
732
|
className,
|
|
265
|
-
|
|
266
|
-
|
|
733
|
+
colSpan,
|
|
734
|
+
rowSpan,
|
|
735
|
+
asChild = false,
|
|
267
736
|
...props
|
|
268
737
|
}) {
|
|
269
|
-
|
|
270
|
-
|
|
738
|
+
const Comp = asChild ? Slot.Root : "div";
|
|
739
|
+
return /* @__PURE__ */ jsx(
|
|
740
|
+
Comp,
|
|
271
741
|
{
|
|
272
|
-
"data-slot": "
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
"border-input data-[placeholder]:text-muted-foreground dark:bg-input/30 dark:hover:bg-input/50 focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:aria-invalid:border-destructive/50 gap-1.5 rounded-md border bg-transparent py-2 pr-2 pl-2.5 text-sm shadow-xs transition-[color,box-shadow] focus-visible:ring-[3px] aria-invalid:ring-[3px] data-[size=default]:h-9 data-[size=sm]:h-8 *:data-[slot=select-value]:flex *:data-[slot=select-value]:gap-1.5 [&_svg:not([class*='size-'])]:size-4 flex w-fit items-center justify-between whitespace-nowrap outline-none disabled:cursor-not-allowed disabled:opacity-50 *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center [&_svg]:pointer-events-none [&_svg]:shrink-0",
|
|
276
|
-
className
|
|
277
|
-
),
|
|
278
|
-
...props,
|
|
279
|
-
children: [
|
|
280
|
-
children,
|
|
281
|
-
/* @__PURE__ */ jsx(Select$1.Icon, { asChild: true, children: /* @__PURE__ */ jsx(ChevronDownIcon, { className: "text-muted-foreground size-4 pointer-events-none" }) })
|
|
282
|
-
]
|
|
742
|
+
"data-slot": "grid-item",
|
|
743
|
+
className: cn(gridItemVariants({ colSpan, rowSpan }), className),
|
|
744
|
+
...props
|
|
283
745
|
}
|
|
284
746
|
);
|
|
285
747
|
}
|
|
286
|
-
function
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
position = "item-aligned",
|
|
290
|
-
align = "center",
|
|
291
|
-
...props
|
|
292
|
-
}) {
|
|
293
|
-
return /* @__PURE__ */ jsx(Select$1.Portal, { children: /* @__PURE__ */ jsxs(
|
|
294
|
-
Select$1.Content,
|
|
748
|
+
function Input({ className, type, ...props }) {
|
|
749
|
+
return /* @__PURE__ */ jsx(
|
|
750
|
+
"input",
|
|
295
751
|
{
|
|
296
|
-
|
|
297
|
-
"data-
|
|
298
|
-
className: cn(
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
/* @__PURE__ */ jsx(SelectScrollUpButton, {}),
|
|
304
|
-
/* @__PURE__ */ jsx(
|
|
305
|
-
Select$1.Viewport,
|
|
306
|
-
{
|
|
307
|
-
"data-position": position,
|
|
308
|
-
className: cn(
|
|
309
|
-
"data-[position=popper]:h-[var(--radix-select-trigger-height)] data-[position=popper]:w-full data-[position=popper]:min-w-[var(--radix-select-trigger-width)]",
|
|
310
|
-
position === "popper" && ""
|
|
311
|
-
),
|
|
312
|
-
children
|
|
313
|
-
}
|
|
314
|
-
),
|
|
315
|
-
/* @__PURE__ */ jsx(SelectScrollDownButton, {})
|
|
316
|
-
]
|
|
752
|
+
type,
|
|
753
|
+
"data-slot": "input",
|
|
754
|
+
className: cn(
|
|
755
|
+
"dark:bg-input/30 border-input focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:aria-invalid:border-destructive/50 h-9 rounded-md border bg-transparent px-2.5 py-1 text-base shadow-xs transition-[color,box-shadow] file:h-7 file:text-sm file:font-medium focus-visible:ring-[3px] aria-invalid:ring-[3px] md:text-sm file:text-foreground placeholder:text-muted-foreground w-full min-w-0 outline-none file:inline-flex file:border-0 file:bg-transparent disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50",
|
|
756
|
+
className
|
|
757
|
+
),
|
|
758
|
+
...props
|
|
317
759
|
}
|
|
318
|
-
)
|
|
760
|
+
);
|
|
319
761
|
}
|
|
320
|
-
function
|
|
762
|
+
function Label({
|
|
321
763
|
className,
|
|
322
764
|
...props
|
|
323
765
|
}) {
|
|
324
766
|
return /* @__PURE__ */ jsx(
|
|
325
|
-
|
|
767
|
+
Label$1.Root,
|
|
326
768
|
{
|
|
327
|
-
"data-slot": "
|
|
328
|
-
className: cn(
|
|
769
|
+
"data-slot": "label",
|
|
770
|
+
className: cn(
|
|
771
|
+
"gap-2 text-sm leading-none font-medium group-data-[disabled=true]:opacity-50 peer-disabled:opacity-50 flex items-center select-none group-data-[disabled=true]:pointer-events-none peer-disabled:cursor-not-allowed",
|
|
772
|
+
className
|
|
773
|
+
),
|
|
329
774
|
...props
|
|
330
775
|
}
|
|
331
776
|
);
|
|
332
777
|
}
|
|
333
|
-
function
|
|
778
|
+
function NavigationMenu({
|
|
334
779
|
className,
|
|
335
780
|
children,
|
|
336
781
|
...props
|
|
337
782
|
}) {
|
|
338
783
|
return /* @__PURE__ */ jsxs(
|
|
339
|
-
|
|
784
|
+
NavigationMenu$1.Root,
|
|
340
785
|
{
|
|
341
|
-
"data-slot": "
|
|
786
|
+
"data-slot": "navigation-menu",
|
|
342
787
|
className: cn(
|
|
343
|
-
"
|
|
788
|
+
"relative z-10 flex max-w-max flex-1 items-center justify-center",
|
|
344
789
|
className
|
|
345
790
|
),
|
|
346
791
|
...props,
|
|
347
792
|
children: [
|
|
348
|
-
|
|
349
|
-
/* @__PURE__ */ jsx(
|
|
793
|
+
children,
|
|
794
|
+
/* @__PURE__ */ jsx(NavigationMenuViewport, {})
|
|
350
795
|
]
|
|
351
796
|
}
|
|
352
797
|
);
|
|
353
798
|
}
|
|
354
|
-
function
|
|
799
|
+
function NavigationMenuList({
|
|
355
800
|
className,
|
|
356
801
|
...props
|
|
357
802
|
}) {
|
|
358
803
|
return /* @__PURE__ */ jsx(
|
|
359
|
-
|
|
804
|
+
NavigationMenu$1.List,
|
|
360
805
|
{
|
|
361
|
-
"data-slot": "
|
|
362
|
-
className: cn(
|
|
806
|
+
"data-slot": "navigation-menu-list",
|
|
807
|
+
className: cn(
|
|
808
|
+
"group flex flex-1 list-none items-center justify-center space-x-1",
|
|
809
|
+
className
|
|
810
|
+
),
|
|
363
811
|
...props
|
|
364
812
|
}
|
|
365
813
|
);
|
|
366
814
|
}
|
|
367
|
-
|
|
815
|
+
var NavigationMenuItem = NavigationMenu$1.Item;
|
|
816
|
+
var navigationMenuTriggerStyle = cva(
|
|
817
|
+
"group inline-flex h-9 w-max items-center justify-center rounded-md bg-background px-4 py-2 text-sm font-medium transition-colors hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground focus:outline-none disabled:pointer-events-none disabled:opacity-50 data-[active]:bg-accent/50 data-[state=open]:bg-accent/50"
|
|
818
|
+
);
|
|
819
|
+
function NavigationMenuTrigger({
|
|
368
820
|
className,
|
|
821
|
+
children,
|
|
369
822
|
...props
|
|
370
823
|
}) {
|
|
371
|
-
return /* @__PURE__ */
|
|
372
|
-
|
|
824
|
+
return /* @__PURE__ */ jsxs(
|
|
825
|
+
NavigationMenu$1.Trigger,
|
|
373
826
|
{
|
|
374
|
-
"data-slot": "
|
|
375
|
-
className: cn(
|
|
827
|
+
"data-slot": "navigation-menu-trigger",
|
|
828
|
+
className: cn(navigationMenuTriggerStyle(), "group", className),
|
|
376
829
|
...props,
|
|
377
|
-
children:
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
830
|
+
children: [
|
|
831
|
+
children,
|
|
832
|
+
" ",
|
|
833
|
+
/* @__PURE__ */ jsx(
|
|
834
|
+
ChevronDown,
|
|
835
|
+
{
|
|
836
|
+
className: "relative top-[1px] ml-1 h-3 w-3 transition duration-300 group-data-[state=open]:rotate-180",
|
|
837
|
+
"aria-hidden": "true"
|
|
838
|
+
}
|
|
839
|
+
)
|
|
840
|
+
]
|
|
381
841
|
}
|
|
382
842
|
);
|
|
383
843
|
}
|
|
384
|
-
function
|
|
844
|
+
function NavigationMenuContent({
|
|
385
845
|
className,
|
|
386
846
|
...props
|
|
387
847
|
}) {
|
|
388
848
|
return /* @__PURE__ */ jsx(
|
|
389
|
-
|
|
849
|
+
NavigationMenu$1.Content,
|
|
390
850
|
{
|
|
391
|
-
"data-slot": "
|
|
392
|
-
className: cn(
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
)
|
|
851
|
+
"data-slot": "navigation-menu-content",
|
|
852
|
+
className: cn(
|
|
853
|
+
"left-0 top-0 w-full data-[motion^=from-]:animate-in data-[motion^=to-]:animate-out data-[motion^=from-]:fade-in data-[motion^=to-]:fade-out data-[motion=from-end]:slide-in-from-right-52 data-[motion=from-start]:slide-in-from-left-52 data-[motion=to-end]:slide-out-to-right-52 data-[motion=to-start]:slide-out-to-left-52 md:absolute md:w-auto",
|
|
854
|
+
className
|
|
855
|
+
),
|
|
856
|
+
...props
|
|
398
857
|
}
|
|
399
858
|
);
|
|
400
859
|
}
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
860
|
+
var NavigationMenuLink = NavigationMenu$1.Link;
|
|
861
|
+
function NavigationMenuViewport({
|
|
862
|
+
className,
|
|
863
|
+
...props
|
|
864
|
+
}) {
|
|
865
|
+
return /* @__PURE__ */ jsx("div", { className: cn("absolute left-0 top-full flex justify-center"), children: /* @__PURE__ */ jsx(
|
|
866
|
+
NavigationMenu$1.Viewport,
|
|
404
867
|
{
|
|
405
|
-
"data-slot": "
|
|
406
|
-
role: "group",
|
|
868
|
+
"data-slot": "navigation-menu-viewport",
|
|
407
869
|
className: cn(
|
|
408
|
-
"
|
|
870
|
+
"origin-top-center relative mt-1.5 h-[var(--radix-navigation-menu-viewport-height)] w-full overflow-hidden rounded-md border bg-popover text-popover-foreground shadow data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-90 md:w-[var(--radix-navigation-menu-viewport-width)]",
|
|
409
871
|
className
|
|
410
872
|
),
|
|
411
873
|
...props
|
|
412
874
|
}
|
|
413
|
-
);
|
|
875
|
+
) });
|
|
414
876
|
}
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
877
|
+
function NavigationMenuIndicator({
|
|
878
|
+
className,
|
|
879
|
+
...props
|
|
880
|
+
}) {
|
|
881
|
+
return /* @__PURE__ */ jsx(
|
|
882
|
+
NavigationMenu$1.Indicator,
|
|
883
|
+
{
|
|
884
|
+
"data-slot": "navigation-menu-indicator",
|
|
885
|
+
className: cn(
|
|
886
|
+
"top-full z-[1] flex h-1.5 items-end justify-center overflow-hidden data-[state=visible]:animate-in data-[state=hidden]:animate-out data-[state=hidden]:fade-out data-[state=visible]:fade-in",
|
|
887
|
+
className
|
|
888
|
+
),
|
|
889
|
+
...props,
|
|
890
|
+
children: /* @__PURE__ */ jsx("div", { className: "relative top-[60%] h-2 w-2 rotate-45 rounded-tl-sm bg-border shadow-md" })
|
|
428
891
|
}
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
function
|
|
892
|
+
);
|
|
893
|
+
}
|
|
894
|
+
function Pagination({
|
|
432
895
|
className,
|
|
433
|
-
align = "inline-start",
|
|
434
896
|
...props
|
|
435
897
|
}) {
|
|
436
898
|
return /* @__PURE__ */ jsx(
|
|
437
|
-
"
|
|
899
|
+
"nav",
|
|
438
900
|
{
|
|
439
|
-
role: "
|
|
440
|
-
"
|
|
441
|
-
"data-
|
|
442
|
-
className: cn(
|
|
443
|
-
onClick: (e) => {
|
|
444
|
-
if (e.target.closest("button")) {
|
|
445
|
-
return;
|
|
446
|
-
}
|
|
447
|
-
e.currentTarget.parentElement?.querySelector("input")?.focus();
|
|
448
|
-
},
|
|
901
|
+
role: "navigation",
|
|
902
|
+
"aria-label": "pagination",
|
|
903
|
+
"data-slot": "pagination",
|
|
904
|
+
className: cn("mx-auto flex w-full justify-center", className),
|
|
449
905
|
...props
|
|
450
906
|
}
|
|
451
907
|
);
|
|
452
908
|
}
|
|
453
|
-
|
|
454
|
-
"gap-2 text-sm shadow-none flex items-center",
|
|
455
|
-
{
|
|
456
|
-
variants: {
|
|
457
|
-
size: {
|
|
458
|
-
xs: "h-6 gap-1 rounded-[calc(var(--radius)-5px)] px-1.5 [&>svg:not([class*='size-'])]:size-3.5",
|
|
459
|
-
sm: "",
|
|
460
|
-
"icon-xs": "size-6 rounded-[calc(var(--radius)-5px)] p-0 has-[>svg]:p-0",
|
|
461
|
-
"icon-sm": "size-8 p-0 has-[>svg]:p-0"
|
|
462
|
-
}
|
|
463
|
-
},
|
|
464
|
-
defaultVariants: {
|
|
465
|
-
size: "xs"
|
|
466
|
-
}
|
|
467
|
-
}
|
|
468
|
-
);
|
|
469
|
-
function InputGroupButton({
|
|
909
|
+
function PaginationContent({
|
|
470
910
|
className,
|
|
471
|
-
type = "button",
|
|
472
|
-
variant = "ghost",
|
|
473
|
-
size = "xs",
|
|
474
911
|
...props
|
|
475
912
|
}) {
|
|
476
913
|
return /* @__PURE__ */ jsx(
|
|
477
|
-
|
|
914
|
+
"ul",
|
|
478
915
|
{
|
|
479
|
-
|
|
480
|
-
"
|
|
481
|
-
variant,
|
|
482
|
-
className: cn(inputGroupButtonVariants({ size }), className),
|
|
916
|
+
"data-slot": "pagination-content",
|
|
917
|
+
className: cn("flex flex-row items-center gap-1", className),
|
|
483
918
|
...props
|
|
484
919
|
}
|
|
485
920
|
);
|
|
486
921
|
}
|
|
487
|
-
function
|
|
922
|
+
function PaginationItem({
|
|
923
|
+
...props
|
|
924
|
+
}) {
|
|
925
|
+
return /* @__PURE__ */ jsx("li", { "data-slot": "pagination-item", ...props });
|
|
926
|
+
}
|
|
927
|
+
function PaginationLink({
|
|
928
|
+
className,
|
|
929
|
+
isActive,
|
|
930
|
+
...props
|
|
931
|
+
}) {
|
|
488
932
|
return /* @__PURE__ */ jsx(
|
|
489
|
-
"
|
|
933
|
+
"button",
|
|
490
934
|
{
|
|
935
|
+
"aria-current": isActive ? "page" : void 0,
|
|
936
|
+
"data-slot": "pagination-link",
|
|
491
937
|
className: cn(
|
|
492
|
-
|
|
938
|
+
buttonVariants({
|
|
939
|
+
variant: isActive ? "outline" : "ghost",
|
|
940
|
+
size: "icon"
|
|
941
|
+
}),
|
|
493
942
|
className
|
|
494
943
|
),
|
|
495
944
|
...props
|
|
496
945
|
}
|
|
497
946
|
);
|
|
498
947
|
}
|
|
499
|
-
function
|
|
948
|
+
function PaginationPrevious({
|
|
500
949
|
className,
|
|
501
950
|
...props
|
|
502
951
|
}) {
|
|
503
|
-
return /* @__PURE__ */
|
|
504
|
-
|
|
952
|
+
return /* @__PURE__ */ jsxs(
|
|
953
|
+
PaginationLink,
|
|
505
954
|
{
|
|
506
|
-
"
|
|
507
|
-
|
|
508
|
-
|
|
955
|
+
"aria-label": "Go to previous page",
|
|
956
|
+
"data-slot": "pagination-previous",
|
|
957
|
+
className: cn("gap-1 pl-2.5", className),
|
|
958
|
+
...props,
|
|
959
|
+
children: [
|
|
960
|
+
/* @__PURE__ */ jsx(ChevronLeft, { className: "size-4" }),
|
|
961
|
+
/* @__PURE__ */ jsx("span", { children: "Previous" })
|
|
962
|
+
]
|
|
509
963
|
}
|
|
510
964
|
);
|
|
511
965
|
}
|
|
512
|
-
function
|
|
966
|
+
function PaginationNext({
|
|
513
967
|
className,
|
|
514
968
|
...props
|
|
515
969
|
}) {
|
|
516
|
-
return /* @__PURE__ */
|
|
517
|
-
|
|
970
|
+
return /* @__PURE__ */ jsxs(
|
|
971
|
+
PaginationLink,
|
|
518
972
|
{
|
|
519
|
-
"
|
|
520
|
-
|
|
521
|
-
|
|
973
|
+
"aria-label": "Go to next page",
|
|
974
|
+
"data-slot": "pagination-next",
|
|
975
|
+
className: cn("gap-1 pr-2.5", className),
|
|
976
|
+
...props,
|
|
977
|
+
children: [
|
|
978
|
+
/* @__PURE__ */ jsx("span", { children: "Next" }),
|
|
979
|
+
/* @__PURE__ */ jsx(ChevronRight, { className: "size-4" })
|
|
980
|
+
]
|
|
522
981
|
}
|
|
523
982
|
);
|
|
524
983
|
}
|
|
525
|
-
function
|
|
984
|
+
function PaginationEllipsis({
|
|
985
|
+
className,
|
|
986
|
+
...props
|
|
987
|
+
}) {
|
|
988
|
+
return /* @__PURE__ */ jsxs(
|
|
989
|
+
"span",
|
|
990
|
+
{
|
|
991
|
+
"aria-hidden": true,
|
|
992
|
+
"data-slot": "pagination-ellipsis",
|
|
993
|
+
className: cn("flex size-9 items-center justify-center", className),
|
|
994
|
+
...props,
|
|
995
|
+
children: [
|
|
996
|
+
/* @__PURE__ */ jsx(MoreHorizontal, { className: "size-4" }),
|
|
997
|
+
/* @__PURE__ */ jsx("span", { className: "sr-only", children: "More pages" })
|
|
998
|
+
]
|
|
999
|
+
}
|
|
1000
|
+
);
|
|
1001
|
+
}
|
|
1002
|
+
function Progress({
|
|
1003
|
+
className,
|
|
1004
|
+
value,
|
|
1005
|
+
...props
|
|
1006
|
+
}) {
|
|
526
1007
|
return /* @__PURE__ */ jsx(
|
|
527
|
-
|
|
1008
|
+
Progress$1.Root,
|
|
528
1009
|
{
|
|
529
|
-
"data-slot": "
|
|
530
|
-
className: cn(
|
|
531
|
-
|
|
1010
|
+
"data-slot": "progress",
|
|
1011
|
+
className: cn(
|
|
1012
|
+
"relative h-2 w-full overflow-hidden rounded-full bg-primary/20",
|
|
1013
|
+
className
|
|
1014
|
+
),
|
|
1015
|
+
...props,
|
|
1016
|
+
children: /* @__PURE__ */ jsx(
|
|
1017
|
+
Progress$1.Indicator,
|
|
1018
|
+
{
|
|
1019
|
+
"data-slot": "progress-indicator",
|
|
1020
|
+
className: "h-full w-full flex-1 bg-primary transition-all",
|
|
1021
|
+
style: { transform: `translateX(-${100 - (value || 0)}%)` }
|
|
1022
|
+
}
|
|
1023
|
+
)
|
|
532
1024
|
}
|
|
533
1025
|
);
|
|
534
1026
|
}
|
|
535
|
-
function
|
|
1027
|
+
function RadioGroup({
|
|
536
1028
|
className,
|
|
537
|
-
variant = "legend",
|
|
538
1029
|
...props
|
|
539
1030
|
}) {
|
|
540
1031
|
return /* @__PURE__ */ jsx(
|
|
541
|
-
|
|
1032
|
+
RadioGroup$1.Root,
|
|
542
1033
|
{
|
|
543
|
-
"data-slot": "
|
|
544
|
-
"
|
|
545
|
-
className: cn("mb-3 font-medium data-[variant=label]:text-sm data-[variant=legend]:text-base", className),
|
|
1034
|
+
"data-slot": "radio-group",
|
|
1035
|
+
className: cn("grid gap-2", className),
|
|
546
1036
|
...props
|
|
547
1037
|
}
|
|
548
1038
|
);
|
|
549
1039
|
}
|
|
550
|
-
function
|
|
1040
|
+
function RadioGroupItem({
|
|
1041
|
+
className,
|
|
1042
|
+
...props
|
|
1043
|
+
}) {
|
|
551
1044
|
return /* @__PURE__ */ jsx(
|
|
552
|
-
|
|
1045
|
+
RadioGroup$1.Item,
|
|
553
1046
|
{
|
|
554
|
-
"data-slot": "
|
|
1047
|
+
"data-slot": "radio-group-item",
|
|
555
1048
|
className: cn(
|
|
556
|
-
"
|
|
1049
|
+
"aspect-square size-4 rounded-full border border-primary text-primary shadow-xs",
|
|
1050
|
+
"focus:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background",
|
|
1051
|
+
"disabled:cursor-not-allowed disabled:opacity-50",
|
|
557
1052
|
className
|
|
558
1053
|
),
|
|
559
|
-
...props
|
|
1054
|
+
...props,
|
|
1055
|
+
children: /* @__PURE__ */ jsx(RadioGroup$1.Indicator, { className: "flex items-center justify-center", children: /* @__PURE__ */ jsx(Circle, { className: "size-2.5 fill-current text-current" }) })
|
|
560
1056
|
}
|
|
561
1057
|
);
|
|
562
1058
|
}
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
1059
|
+
function ScrollArea({
|
|
1060
|
+
className,
|
|
1061
|
+
children,
|
|
1062
|
+
...props
|
|
1063
|
+
}) {
|
|
1064
|
+
return /* @__PURE__ */ jsxs(
|
|
1065
|
+
ScrollArea$1.Root,
|
|
1066
|
+
{
|
|
1067
|
+
"data-slot": "scroll-area",
|
|
1068
|
+
className: cn("relative overflow-hidden", className),
|
|
1069
|
+
...props,
|
|
1070
|
+
children: [
|
|
1071
|
+
/* @__PURE__ */ jsx(ScrollArea$1.Viewport, { className: "h-full w-full rounded-[inherit]", children }),
|
|
1072
|
+
/* @__PURE__ */ jsx(ScrollBar, {}),
|
|
1073
|
+
/* @__PURE__ */ jsx(ScrollArea$1.Corner, {})
|
|
1074
|
+
]
|
|
569
1075
|
}
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
}
|
|
574
|
-
});
|
|
575
|
-
function Field({
|
|
1076
|
+
);
|
|
1077
|
+
}
|
|
1078
|
+
function ScrollBar({
|
|
576
1079
|
className,
|
|
577
1080
|
orientation = "vertical",
|
|
578
1081
|
...props
|
|
579
1082
|
}) {
|
|
580
1083
|
return /* @__PURE__ */ jsx(
|
|
581
|
-
|
|
1084
|
+
ScrollArea$1.Scrollbar,
|
|
582
1085
|
{
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
|
|
1086
|
+
"data-slot": "scroll-bar",
|
|
1087
|
+
orientation,
|
|
1088
|
+
className: cn(
|
|
1089
|
+
"flex touch-none select-none transition-colors",
|
|
1090
|
+
orientation === "vertical" && "h-full w-2.5 border-l border-l-transparent p-[1px]",
|
|
1091
|
+
orientation === "horizontal" && "h-2.5 flex-col border-t border-t-transparent p-[1px]",
|
|
1092
|
+
className
|
|
1093
|
+
),
|
|
1094
|
+
...props,
|
|
1095
|
+
children: /* @__PURE__ */ jsx(ScrollArea$1.Thumb, { className: "relative flex-1 rounded-full bg-border" })
|
|
588
1096
|
}
|
|
589
1097
|
);
|
|
590
1098
|
}
|
|
591
|
-
function
|
|
1099
|
+
function Separator({
|
|
1100
|
+
className,
|
|
1101
|
+
orientation = "horizontal",
|
|
1102
|
+
decorative = true,
|
|
1103
|
+
...props
|
|
1104
|
+
}) {
|
|
592
1105
|
return /* @__PURE__ */ jsx(
|
|
593
|
-
|
|
1106
|
+
Separator$1.Root,
|
|
594
1107
|
{
|
|
595
|
-
"data-slot": "
|
|
1108
|
+
"data-slot": "separator",
|
|
1109
|
+
decorative,
|
|
1110
|
+
orientation,
|
|
596
1111
|
className: cn(
|
|
597
|
-
"
|
|
1112
|
+
"bg-border shrink-0 data-[orientation=horizontal]:h-px data-[orientation=horizontal]:w-full data-[orientation=vertical]:w-px data-[orientation=vertical]:self-stretch",
|
|
598
1113
|
className
|
|
599
1114
|
),
|
|
600
1115
|
...props
|
|
601
1116
|
}
|
|
602
1117
|
);
|
|
603
1118
|
}
|
|
604
|
-
|
|
1119
|
+
var Sheet = Dialog$1.Root;
|
|
1120
|
+
var SheetTrigger = Dialog$1.Trigger;
|
|
1121
|
+
var SheetClose = Dialog$1.Close;
|
|
1122
|
+
var SheetPortal = Dialog$1.Portal;
|
|
1123
|
+
function SheetOverlay({
|
|
605
1124
|
className,
|
|
606
1125
|
...props
|
|
607
1126
|
}) {
|
|
608
1127
|
return /* @__PURE__ */ jsx(
|
|
609
|
-
|
|
1128
|
+
Dialog$1.Overlay,
|
|
610
1129
|
{
|
|
611
|
-
"data-slot": "
|
|
1130
|
+
"data-slot": "sheet-overlay",
|
|
612
1131
|
className: cn(
|
|
613
|
-
"
|
|
614
|
-
"
|
|
1132
|
+
"fixed inset-0 z-50 bg-black/80",
|
|
1133
|
+
"data-[state=open]:animate-in data-[state=closed]:animate-out",
|
|
1134
|
+
"data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",
|
|
615
1135
|
className
|
|
616
1136
|
),
|
|
617
1137
|
...props
|
|
618
1138
|
}
|
|
619
1139
|
);
|
|
620
1140
|
}
|
|
621
|
-
|
|
1141
|
+
var sheetVariants = cva(
|
|
1142
|
+
"fixed z-50 gap-4 bg-background p-6 shadow-lg transition ease-in-out data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:duration-300 data-[state=open]:duration-500",
|
|
1143
|
+
{
|
|
1144
|
+
variants: {
|
|
1145
|
+
side: {
|
|
1146
|
+
top: "inset-x-0 top-0 border-b data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top",
|
|
1147
|
+
bottom: "inset-x-0 bottom-0 border-t data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom",
|
|
1148
|
+
left: "inset-y-0 left-0 h-full w-3/4 border-r data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left sm:max-w-sm",
|
|
1149
|
+
right: "inset-y-0 right-0 h-full w-3/4 border-l data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right sm:max-w-sm"
|
|
1150
|
+
}
|
|
1151
|
+
},
|
|
1152
|
+
defaultVariants: {
|
|
1153
|
+
side: "right"
|
|
1154
|
+
}
|
|
1155
|
+
}
|
|
1156
|
+
);
|
|
1157
|
+
function SheetContent({
|
|
1158
|
+
side = "right",
|
|
1159
|
+
className,
|
|
1160
|
+
children,
|
|
1161
|
+
...props
|
|
1162
|
+
}) {
|
|
1163
|
+
return /* @__PURE__ */ jsxs(SheetPortal, { children: [
|
|
1164
|
+
/* @__PURE__ */ jsx(SheetOverlay, {}),
|
|
1165
|
+
/* @__PURE__ */ jsxs(
|
|
1166
|
+
Dialog$1.Content,
|
|
1167
|
+
{
|
|
1168
|
+
"data-slot": "sheet-content",
|
|
1169
|
+
className: cn(sheetVariants({ side }), className),
|
|
1170
|
+
...props,
|
|
1171
|
+
children: [
|
|
1172
|
+
/* @__PURE__ */ jsxs(Dialog$1.Close, { className: "absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-secondary", children: [
|
|
1173
|
+
/* @__PURE__ */ jsx(X, { className: "size-4" }),
|
|
1174
|
+
/* @__PURE__ */ jsx("span", { className: "sr-only", children: "Close" })
|
|
1175
|
+
] }),
|
|
1176
|
+
children
|
|
1177
|
+
]
|
|
1178
|
+
}
|
|
1179
|
+
)
|
|
1180
|
+
] });
|
|
1181
|
+
}
|
|
1182
|
+
function SheetHeader({
|
|
1183
|
+
className,
|
|
1184
|
+
...props
|
|
1185
|
+
}) {
|
|
622
1186
|
return /* @__PURE__ */ jsx(
|
|
623
1187
|
"div",
|
|
624
1188
|
{
|
|
625
|
-
"data-slot": "
|
|
626
|
-
className: cn(
|
|
627
|
-
"gap-2 text-sm font-medium group-data-[disabled=true]/field:opacity-50 flex w-fit items-center leading-snug",
|
|
628
|
-
className
|
|
629
|
-
),
|
|
1189
|
+
"data-slot": "sheet-header",
|
|
1190
|
+
className: cn("flex flex-col space-y-2 text-center sm:text-left", className),
|
|
630
1191
|
...props
|
|
631
1192
|
}
|
|
632
1193
|
);
|
|
633
1194
|
}
|
|
634
|
-
function
|
|
1195
|
+
function SheetFooter({
|
|
1196
|
+
className,
|
|
1197
|
+
...props
|
|
1198
|
+
}) {
|
|
635
1199
|
return /* @__PURE__ */ jsx(
|
|
636
|
-
"
|
|
1200
|
+
"div",
|
|
637
1201
|
{
|
|
638
|
-
"data-slot": "
|
|
1202
|
+
"data-slot": "sheet-footer",
|
|
639
1203
|
className: cn(
|
|
640
|
-
"
|
|
641
|
-
"last:mt-0 nth-last-2:-mt-1",
|
|
642
|
-
"[&>a:hover]:text-primary [&>a]:underline [&>a]:underline-offset-4",
|
|
1204
|
+
"flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",
|
|
643
1205
|
className
|
|
644
1206
|
),
|
|
645
1207
|
...props
|
|
646
1208
|
}
|
|
647
1209
|
);
|
|
648
1210
|
}
|
|
649
|
-
function
|
|
1211
|
+
function SheetTitle({
|
|
1212
|
+
className,
|
|
1213
|
+
...props
|
|
1214
|
+
}) {
|
|
1215
|
+
return /* @__PURE__ */ jsx(
|
|
1216
|
+
Dialog$1.Title,
|
|
1217
|
+
{
|
|
1218
|
+
"data-slot": "sheet-title",
|
|
1219
|
+
className: cn("text-lg font-semibold text-foreground", className),
|
|
1220
|
+
...props
|
|
1221
|
+
}
|
|
1222
|
+
);
|
|
1223
|
+
}
|
|
1224
|
+
function SheetDescription({
|
|
1225
|
+
className,
|
|
1226
|
+
...props
|
|
1227
|
+
}) {
|
|
1228
|
+
return /* @__PURE__ */ jsx(
|
|
1229
|
+
Dialog$1.Description,
|
|
1230
|
+
{
|
|
1231
|
+
"data-slot": "sheet-description",
|
|
1232
|
+
className: cn("text-sm text-muted-foreground", className),
|
|
1233
|
+
...props
|
|
1234
|
+
}
|
|
1235
|
+
);
|
|
1236
|
+
}
|
|
1237
|
+
var SIDEBAR_WIDTH = "16rem";
|
|
1238
|
+
var SIDEBAR_WIDTH_MOBILE = "18rem";
|
|
1239
|
+
var SIDEBAR_WIDTH_ICON = "3rem";
|
|
1240
|
+
var SidebarContext = React2.createContext(null);
|
|
1241
|
+
function useSidebar() {
|
|
1242
|
+
const context = React2.useContext(SidebarContext);
|
|
1243
|
+
if (!context) {
|
|
1244
|
+
throw new Error("useSidebar must be used within a SidebarProvider");
|
|
1245
|
+
}
|
|
1246
|
+
return context;
|
|
1247
|
+
}
|
|
1248
|
+
function SidebarProvider({
|
|
1249
|
+
defaultOpen = true,
|
|
1250
|
+
open: openProp,
|
|
1251
|
+
onOpenChange: setOpenProp,
|
|
1252
|
+
className,
|
|
1253
|
+
style,
|
|
650
1254
|
children,
|
|
1255
|
+
...props
|
|
1256
|
+
}) {
|
|
1257
|
+
const [openMobile, setOpenMobile] = React2.useState(false);
|
|
1258
|
+
const [isMobile, setIsMobile] = React2.useState(false);
|
|
1259
|
+
const [_open, _setOpen] = React2.useState(defaultOpen);
|
|
1260
|
+
const open = openProp ?? _open;
|
|
1261
|
+
const setOpen = React2.useCallback(
|
|
1262
|
+
(value) => {
|
|
1263
|
+
const openState = typeof value === "function" ? value(open) : value;
|
|
1264
|
+
if (setOpenProp) {
|
|
1265
|
+
setOpenProp(openState);
|
|
1266
|
+
} else {
|
|
1267
|
+
_setOpen(openState);
|
|
1268
|
+
}
|
|
1269
|
+
},
|
|
1270
|
+
[setOpenProp, open]
|
|
1271
|
+
);
|
|
1272
|
+
React2.useEffect(() => {
|
|
1273
|
+
const checkMobile = () => setIsMobile(window.innerWidth < 768);
|
|
1274
|
+
checkMobile();
|
|
1275
|
+
window.addEventListener("resize", checkMobile);
|
|
1276
|
+
return () => window.removeEventListener("resize", checkMobile);
|
|
1277
|
+
}, []);
|
|
1278
|
+
const toggleSidebar = React2.useCallback(() => {
|
|
1279
|
+
return isMobile ? setOpenMobile((o) => !o) : setOpen((o) => !o);
|
|
1280
|
+
}, [isMobile, setOpen]);
|
|
1281
|
+
const state = open ? "expanded" : "collapsed";
|
|
1282
|
+
const contextValue = React2.useMemo(
|
|
1283
|
+
() => ({
|
|
1284
|
+
state,
|
|
1285
|
+
open,
|
|
1286
|
+
setOpen,
|
|
1287
|
+
isMobile,
|
|
1288
|
+
openMobile,
|
|
1289
|
+
setOpenMobile,
|
|
1290
|
+
toggleSidebar
|
|
1291
|
+
}),
|
|
1292
|
+
[state, open, setOpen, isMobile, openMobile, toggleSidebar]
|
|
1293
|
+
);
|
|
1294
|
+
return /* @__PURE__ */ jsx(SidebarContext.Provider, { value: contextValue, children: /* @__PURE__ */ jsx(
|
|
1295
|
+
"div",
|
|
1296
|
+
{
|
|
1297
|
+
style: {
|
|
1298
|
+
"--sidebar-width": SIDEBAR_WIDTH,
|
|
1299
|
+
"--sidebar-width-icon": SIDEBAR_WIDTH_ICON,
|
|
1300
|
+
...style
|
|
1301
|
+
},
|
|
1302
|
+
className: cn(
|
|
1303
|
+
"group/sidebar-wrapper flex min-h-svh w-full has-[[data-variant=inset]]:bg-sidebar",
|
|
1304
|
+
className
|
|
1305
|
+
),
|
|
1306
|
+
...props,
|
|
1307
|
+
children
|
|
1308
|
+
}
|
|
1309
|
+
) });
|
|
1310
|
+
}
|
|
1311
|
+
function Sidebar({
|
|
1312
|
+
side = "left",
|
|
1313
|
+
variant = "sidebar",
|
|
1314
|
+
collapsible = "offcanvas",
|
|
651
1315
|
className,
|
|
1316
|
+
children,
|
|
652
1317
|
...props
|
|
653
1318
|
}) {
|
|
1319
|
+
const { isMobile, state, openMobile, setOpenMobile } = useSidebar();
|
|
1320
|
+
if (collapsible === "none") {
|
|
1321
|
+
return /* @__PURE__ */ jsx(
|
|
1322
|
+
"div",
|
|
1323
|
+
{
|
|
1324
|
+
"data-slot": "sidebar",
|
|
1325
|
+
className: cn(
|
|
1326
|
+
"flex h-full w-[--sidebar-width] flex-col bg-sidebar text-sidebar-foreground",
|
|
1327
|
+
className
|
|
1328
|
+
),
|
|
1329
|
+
...props,
|
|
1330
|
+
children
|
|
1331
|
+
}
|
|
1332
|
+
);
|
|
1333
|
+
}
|
|
1334
|
+
if (isMobile) {
|
|
1335
|
+
return /* @__PURE__ */ jsx(Sheet, { open: openMobile, onOpenChange: setOpenMobile, children: /* @__PURE__ */ jsx(
|
|
1336
|
+
SheetContent,
|
|
1337
|
+
{
|
|
1338
|
+
"data-sidebar": "sidebar",
|
|
1339
|
+
"data-mobile": "true",
|
|
1340
|
+
className: "w-[--sidebar-width] bg-sidebar p-0 text-sidebar-foreground [&>button]:hidden",
|
|
1341
|
+
style: { "--sidebar-width": SIDEBAR_WIDTH_MOBILE },
|
|
1342
|
+
side,
|
|
1343
|
+
children: /* @__PURE__ */ jsx("div", { className: "flex h-full w-full flex-col", children })
|
|
1344
|
+
}
|
|
1345
|
+
) });
|
|
1346
|
+
}
|
|
654
1347
|
return /* @__PURE__ */ jsxs(
|
|
655
1348
|
"div",
|
|
656
1349
|
{
|
|
657
|
-
"data-
|
|
658
|
-
"data-
|
|
659
|
-
|
|
660
|
-
|
|
1350
|
+
"data-state": state,
|
|
1351
|
+
"data-collapsible": state === "collapsed" ? collapsible : "",
|
|
1352
|
+
"data-variant": variant,
|
|
1353
|
+
"data-side": side,
|
|
1354
|
+
"data-slot": "sidebar",
|
|
1355
|
+
className: "group peer hidden md:block",
|
|
661
1356
|
children: [
|
|
662
|
-
/* @__PURE__ */ jsx(
|
|
663
|
-
|
|
664
|
-
"span",
|
|
1357
|
+
/* @__PURE__ */ jsx(
|
|
1358
|
+
"div",
|
|
665
1359
|
{
|
|
666
|
-
className:
|
|
667
|
-
|
|
668
|
-
|
|
1360
|
+
className: cn(
|
|
1361
|
+
"duration-200 relative h-svh w-[--sidebar-width] bg-transparent transition-[width] ease-linear",
|
|
1362
|
+
"group-data-[collapsible=offcanvas]:w-0",
|
|
1363
|
+
"group-data-[side=right]:rotate-180",
|
|
1364
|
+
variant === "floating" || variant === "inset" ? "group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)_+_theme(spacing.4))]" : "group-data-[collapsible=icon]:w-[--sidebar-width-icon]"
|
|
1365
|
+
)
|
|
1366
|
+
}
|
|
1367
|
+
),
|
|
1368
|
+
/* @__PURE__ */ jsx(
|
|
1369
|
+
"div",
|
|
1370
|
+
{
|
|
1371
|
+
className: cn(
|
|
1372
|
+
"duration-200 fixed inset-y-0 z-10 hidden h-svh w-[--sidebar-width] transition-[left,right,width] ease-linear md:flex",
|
|
1373
|
+
side === "left" ? "left-0 group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)]" : "right-0 group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)]",
|
|
1374
|
+
variant === "floating" || variant === "inset" ? "p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)_+_theme(spacing.4)_+2px)]" : "group-data-[collapsible=icon]:w-[--sidebar-width-icon] group-data-[side=left]:border-r group-data-[side=right]:border-l",
|
|
1375
|
+
className
|
|
1376
|
+
),
|
|
1377
|
+
...props,
|
|
1378
|
+
children: /* @__PURE__ */ jsx(
|
|
1379
|
+
"div",
|
|
1380
|
+
{
|
|
1381
|
+
"data-sidebar": "sidebar",
|
|
1382
|
+
className: "flex h-full w-full flex-col bg-sidebar group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:border group-data-[variant=floating]:border-sidebar-border group-data-[variant=floating]:shadow",
|
|
1383
|
+
children
|
|
1384
|
+
}
|
|
1385
|
+
)
|
|
669
1386
|
}
|
|
670
1387
|
)
|
|
671
1388
|
]
|
|
672
1389
|
}
|
|
673
1390
|
);
|
|
674
1391
|
}
|
|
675
|
-
function
|
|
1392
|
+
function SidebarTrigger({
|
|
676
1393
|
className,
|
|
677
|
-
|
|
678
|
-
errors,
|
|
1394
|
+
onClick,
|
|
679
1395
|
...props
|
|
680
1396
|
}) {
|
|
681
|
-
const
|
|
682
|
-
|
|
683
|
-
|
|
1397
|
+
const { toggleSidebar } = useSidebar();
|
|
1398
|
+
return /* @__PURE__ */ jsxs(
|
|
1399
|
+
Button,
|
|
1400
|
+
{
|
|
1401
|
+
"data-sidebar": "trigger",
|
|
1402
|
+
"data-slot": "sidebar-trigger",
|
|
1403
|
+
variant: "ghost",
|
|
1404
|
+
size: "icon",
|
|
1405
|
+
className: cn("h-7 w-7", className),
|
|
1406
|
+
onClick: (event) => {
|
|
1407
|
+
onClick?.(event);
|
|
1408
|
+
toggleSidebar();
|
|
1409
|
+
},
|
|
1410
|
+
...props,
|
|
1411
|
+
children: [
|
|
1412
|
+
/* @__PURE__ */ jsx(PanelLeft, {}),
|
|
1413
|
+
/* @__PURE__ */ jsx("span", { className: "sr-only", children: "Toggle Sidebar" })
|
|
1414
|
+
]
|
|
684
1415
|
}
|
|
685
|
-
|
|
686
|
-
|
|
1416
|
+
);
|
|
1417
|
+
}
|
|
1418
|
+
function SidebarHeader({ className, ...props }) {
|
|
1419
|
+
return /* @__PURE__ */ jsx(
|
|
1420
|
+
"div",
|
|
1421
|
+
{
|
|
1422
|
+
"data-slot": "sidebar-header",
|
|
1423
|
+
className: cn("flex flex-col gap-2 p-2", className),
|
|
1424
|
+
...props
|
|
687
1425
|
}
|
|
688
|
-
|
|
689
|
-
|
|
690
|
-
|
|
691
|
-
|
|
692
|
-
|
|
1426
|
+
);
|
|
1427
|
+
}
|
|
1428
|
+
function SidebarFooter({ className, ...props }) {
|
|
1429
|
+
return /* @__PURE__ */ jsx(
|
|
1430
|
+
"div",
|
|
1431
|
+
{
|
|
1432
|
+
"data-slot": "sidebar-footer",
|
|
1433
|
+
className: cn("flex flex-col gap-2 p-2", className),
|
|
1434
|
+
...props
|
|
693
1435
|
}
|
|
694
|
-
|
|
695
|
-
|
|
696
|
-
|
|
697
|
-
}, [children, errors]);
|
|
698
|
-
if (!content) {
|
|
699
|
-
return null;
|
|
700
|
-
}
|
|
1436
|
+
);
|
|
1437
|
+
}
|
|
1438
|
+
function SidebarContent({ className, ...props }) {
|
|
701
1439
|
return /* @__PURE__ */ jsx(
|
|
702
1440
|
"div",
|
|
703
1441
|
{
|
|
704
|
-
|
|
705
|
-
|
|
706
|
-
|
|
707
|
-
|
|
708
|
-
|
|
1442
|
+
"data-slot": "sidebar-content",
|
|
1443
|
+
className: cn(
|
|
1444
|
+
"flex min-h-0 flex-1 flex-col gap-2 overflow-auto group-data-[collapsible=icon]:overflow-hidden",
|
|
1445
|
+
className
|
|
1446
|
+
),
|
|
1447
|
+
...props
|
|
1448
|
+
}
|
|
1449
|
+
);
|
|
1450
|
+
}
|
|
1451
|
+
function SidebarGroup({ className, ...props }) {
|
|
1452
|
+
return /* @__PURE__ */ jsx(
|
|
1453
|
+
"div",
|
|
1454
|
+
{
|
|
1455
|
+
"data-slot": "sidebar-group",
|
|
1456
|
+
className: cn("relative flex w-full min-w-0 flex-col p-2", className),
|
|
1457
|
+
...props
|
|
1458
|
+
}
|
|
1459
|
+
);
|
|
1460
|
+
}
|
|
1461
|
+
function SidebarGroupLabel({
|
|
1462
|
+
className,
|
|
1463
|
+
asChild = false,
|
|
1464
|
+
...props
|
|
1465
|
+
}) {
|
|
1466
|
+
const Comp = asChild ? React2.Fragment : "div";
|
|
1467
|
+
return /* @__PURE__ */ jsx(
|
|
1468
|
+
Comp,
|
|
1469
|
+
{
|
|
1470
|
+
"data-slot": "sidebar-group-label",
|
|
1471
|
+
className: cn(
|
|
1472
|
+
"duration-200 flex h-8 shrink-0 items-center rounded-md px-2 text-xs font-medium text-sidebar-foreground/70 outline-none ring-sidebar-ring transition-[margin,opa] ease-linear focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0",
|
|
1473
|
+
"group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0",
|
|
1474
|
+
className
|
|
1475
|
+
),
|
|
1476
|
+
...props
|
|
1477
|
+
}
|
|
1478
|
+
);
|
|
1479
|
+
}
|
|
1480
|
+
function SidebarGroupContent({
|
|
1481
|
+
className,
|
|
1482
|
+
...props
|
|
1483
|
+
}) {
|
|
1484
|
+
return /* @__PURE__ */ jsx(
|
|
1485
|
+
"div",
|
|
1486
|
+
{
|
|
1487
|
+
"data-slot": "sidebar-group-content",
|
|
1488
|
+
className: cn("w-full text-sm", className),
|
|
1489
|
+
...props
|
|
1490
|
+
}
|
|
1491
|
+
);
|
|
1492
|
+
}
|
|
1493
|
+
function SidebarMenu({ className, ...props }) {
|
|
1494
|
+
return /* @__PURE__ */ jsx(
|
|
1495
|
+
"ul",
|
|
1496
|
+
{
|
|
1497
|
+
"data-slot": "sidebar-menu",
|
|
1498
|
+
className: cn("flex w-full min-w-0 flex-col gap-1", className),
|
|
1499
|
+
...props
|
|
1500
|
+
}
|
|
1501
|
+
);
|
|
1502
|
+
}
|
|
1503
|
+
function SidebarMenuItem({ className, ...props }) {
|
|
1504
|
+
return /* @__PURE__ */ jsx(
|
|
1505
|
+
"li",
|
|
1506
|
+
{
|
|
1507
|
+
"data-slot": "sidebar-menu-item",
|
|
1508
|
+
className: cn("group/menu-item relative", className),
|
|
1509
|
+
...props
|
|
1510
|
+
}
|
|
1511
|
+
);
|
|
1512
|
+
}
|
|
1513
|
+
var sidebarMenuButtonVariants = cva(
|
|
1514
|
+
"peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left text-sm outline-none ring-sidebar-ring transition-[width,height,padding] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 group-has-[[data-sidebar=menu-action]]/menu-item:pr-8 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:bg-sidebar-accent data-[active=true]:font-medium data-[active=true]:text-sidebar-accent-foreground data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground group-data-[collapsible=icon]:!size-8 group-data-[collapsible=icon]:!p-2 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0",
|
|
1515
|
+
{
|
|
1516
|
+
variants: {
|
|
1517
|
+
variant: {
|
|
1518
|
+
default: "hover:bg-sidebar-accent hover:text-sidebar-accent-foreground",
|
|
1519
|
+
outline: "bg-background shadow-[0_0_0_1px_hsl(var(--sidebar-border))] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground hover:shadow-[0_0_0_1px_hsl(var(--sidebar-accent))]"
|
|
1520
|
+
},
|
|
1521
|
+
size: {
|
|
1522
|
+
default: "h-8 text-sm",
|
|
1523
|
+
sm: "h-7 text-xs",
|
|
1524
|
+
lg: "h-12 text-sm group-data-[collapsible=icon]:!p-0"
|
|
1525
|
+
}
|
|
1526
|
+
},
|
|
1527
|
+
defaultVariants: {
|
|
1528
|
+
variant: "default",
|
|
1529
|
+
size: "default"
|
|
1530
|
+
}
|
|
1531
|
+
}
|
|
1532
|
+
);
|
|
1533
|
+
function SidebarMenuButton({
|
|
1534
|
+
asChild = false,
|
|
1535
|
+
isActive = false,
|
|
1536
|
+
variant = "default",
|
|
1537
|
+
size = "default",
|
|
1538
|
+
tooltip,
|
|
1539
|
+
className,
|
|
1540
|
+
...props
|
|
1541
|
+
}) {
|
|
1542
|
+
const Comp = asChild ? React2.Fragment : "button";
|
|
1543
|
+
const button = /* @__PURE__ */ jsx(
|
|
1544
|
+
Comp,
|
|
1545
|
+
{
|
|
1546
|
+
"data-slot": "sidebar-menu-button",
|
|
1547
|
+
"data-size": size,
|
|
1548
|
+
"data-active": isActive,
|
|
1549
|
+
className: cn(sidebarMenuButtonVariants({ variant, size }), className),
|
|
1550
|
+
...props
|
|
1551
|
+
}
|
|
1552
|
+
);
|
|
1553
|
+
return button;
|
|
1554
|
+
}
|
|
1555
|
+
function Slider({
|
|
1556
|
+
className,
|
|
1557
|
+
defaultValue,
|
|
1558
|
+
value,
|
|
1559
|
+
min = 0,
|
|
1560
|
+
max = 100,
|
|
1561
|
+
...props
|
|
1562
|
+
}) {
|
|
1563
|
+
const _values = value ?? defaultValue ?? [min, max];
|
|
1564
|
+
return /* @__PURE__ */ jsxs(
|
|
1565
|
+
Slider$1.Root,
|
|
1566
|
+
{
|
|
1567
|
+
"data-slot": "slider",
|
|
1568
|
+
defaultValue,
|
|
1569
|
+
value,
|
|
1570
|
+
min,
|
|
1571
|
+
max,
|
|
1572
|
+
className: cn(
|
|
1573
|
+
"relative flex w-full touch-none select-none items-center",
|
|
1574
|
+
className
|
|
1575
|
+
),
|
|
1576
|
+
...props,
|
|
1577
|
+
children: [
|
|
1578
|
+
/* @__PURE__ */ jsx(
|
|
1579
|
+
Slider$1.Track,
|
|
1580
|
+
{
|
|
1581
|
+
"data-slot": "slider-track",
|
|
1582
|
+
className: "relative h-1.5 w-full grow overflow-hidden rounded-full bg-primary/20",
|
|
1583
|
+
children: /* @__PURE__ */ jsx(
|
|
1584
|
+
Slider$1.Range,
|
|
1585
|
+
{
|
|
1586
|
+
"data-slot": "slider-range",
|
|
1587
|
+
className: "absolute h-full bg-primary"
|
|
1588
|
+
}
|
|
1589
|
+
)
|
|
1590
|
+
}
|
|
1591
|
+
),
|
|
1592
|
+
Array.from({ length: _values.length }, (_, index) => /* @__PURE__ */ jsx(
|
|
1593
|
+
Slider$1.Thumb,
|
|
1594
|
+
{
|
|
1595
|
+
"data-slot": "slider-thumb",
|
|
1596
|
+
className: "block size-4 rounded-full border border-primary/50 bg-background shadow transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50"
|
|
1597
|
+
},
|
|
1598
|
+
index
|
|
1599
|
+
))
|
|
1600
|
+
]
|
|
1601
|
+
}
|
|
1602
|
+
);
|
|
1603
|
+
}
|
|
1604
|
+
function Skeleton({
|
|
1605
|
+
className,
|
|
1606
|
+
...props
|
|
1607
|
+
}) {
|
|
1608
|
+
return /* @__PURE__ */ jsx(
|
|
1609
|
+
"div",
|
|
1610
|
+
{
|
|
1611
|
+
"data-slot": "skeleton",
|
|
1612
|
+
className: cn(
|
|
1613
|
+
"bg-muted animate-pulse rounded-md",
|
|
1614
|
+
className
|
|
1615
|
+
),
|
|
1616
|
+
...props
|
|
1617
|
+
}
|
|
1618
|
+
);
|
|
1619
|
+
}
|
|
1620
|
+
var stackVariants = cva("flex", {
|
|
1621
|
+
variants: {
|
|
1622
|
+
direction: {
|
|
1623
|
+
row: "flex-row",
|
|
1624
|
+
column: "flex-col",
|
|
1625
|
+
"row-reverse": "flex-row-reverse",
|
|
1626
|
+
"column-reverse": "flex-col-reverse"
|
|
1627
|
+
},
|
|
1628
|
+
align: {
|
|
1629
|
+
start: "items-start",
|
|
1630
|
+
center: "items-center",
|
|
1631
|
+
end: "items-end",
|
|
1632
|
+
stretch: "items-stretch",
|
|
1633
|
+
baseline: "items-baseline"
|
|
1634
|
+
},
|
|
1635
|
+
justify: {
|
|
1636
|
+
start: "justify-start",
|
|
1637
|
+
center: "justify-center",
|
|
1638
|
+
end: "justify-end",
|
|
1639
|
+
between: "justify-between",
|
|
1640
|
+
around: "justify-around",
|
|
1641
|
+
evenly: "justify-evenly"
|
|
1642
|
+
},
|
|
1643
|
+
wrap: {
|
|
1644
|
+
wrap: "flex-wrap",
|
|
1645
|
+
nowrap: "flex-nowrap",
|
|
1646
|
+
"wrap-reverse": "flex-wrap-reverse"
|
|
1647
|
+
},
|
|
1648
|
+
gap: {
|
|
1649
|
+
0: "gap-0",
|
|
1650
|
+
1: "gap-1",
|
|
1651
|
+
2: "gap-2",
|
|
1652
|
+
3: "gap-3",
|
|
1653
|
+
4: "gap-4",
|
|
1654
|
+
5: "gap-5",
|
|
1655
|
+
6: "gap-6",
|
|
1656
|
+
8: "gap-8",
|
|
1657
|
+
10: "gap-10",
|
|
1658
|
+
12: "gap-12"
|
|
1659
|
+
}
|
|
1660
|
+
},
|
|
1661
|
+
defaultVariants: {
|
|
1662
|
+
direction: "column",
|
|
1663
|
+
align: "stretch",
|
|
1664
|
+
justify: "start",
|
|
1665
|
+
wrap: "nowrap",
|
|
1666
|
+
gap: 4
|
|
1667
|
+
}
|
|
1668
|
+
});
|
|
1669
|
+
function Stack({
|
|
1670
|
+
className,
|
|
1671
|
+
direction,
|
|
1672
|
+
align,
|
|
1673
|
+
justify,
|
|
1674
|
+
wrap,
|
|
1675
|
+
gap,
|
|
1676
|
+
asChild = false,
|
|
1677
|
+
...props
|
|
1678
|
+
}) {
|
|
1679
|
+
const Comp = asChild ? Slot.Root : "div";
|
|
1680
|
+
return /* @__PURE__ */ jsx(
|
|
1681
|
+
Comp,
|
|
1682
|
+
{
|
|
1683
|
+
"data-slot": "stack",
|
|
1684
|
+
className: cn(stackVariants({ direction, align, justify, wrap, gap }), className),
|
|
1685
|
+
...props
|
|
1686
|
+
}
|
|
1687
|
+
);
|
|
1688
|
+
}
|
|
1689
|
+
function VStack(props) {
|
|
1690
|
+
return /* @__PURE__ */ jsx(Stack, { direction: "column", ...props });
|
|
1691
|
+
}
|
|
1692
|
+
function HStack(props) {
|
|
1693
|
+
return /* @__PURE__ */ jsx(Stack, { direction: "row", ...props });
|
|
1694
|
+
}
|
|
1695
|
+
var spinnerVariants = cva("animate-spin text-muted-foreground", {
|
|
1696
|
+
variants: {
|
|
1697
|
+
size: {
|
|
1698
|
+
default: "size-6",
|
|
1699
|
+
xs: "size-3",
|
|
1700
|
+
sm: "size-4",
|
|
1701
|
+
lg: "size-8",
|
|
1702
|
+
xl: "size-12"
|
|
1703
|
+
}
|
|
1704
|
+
},
|
|
1705
|
+
defaultVariants: {
|
|
1706
|
+
size: "default"
|
|
1707
|
+
}
|
|
1708
|
+
});
|
|
1709
|
+
function Spinner({
|
|
1710
|
+
className,
|
|
1711
|
+
size,
|
|
1712
|
+
...props
|
|
1713
|
+
}) {
|
|
1714
|
+
return /* @__PURE__ */ jsx(
|
|
1715
|
+
Loader2,
|
|
1716
|
+
{
|
|
1717
|
+
"data-slot": "spinner",
|
|
1718
|
+
className: cn(spinnerVariants({ size }), className),
|
|
1719
|
+
...props
|
|
1720
|
+
}
|
|
1721
|
+
);
|
|
1722
|
+
}
|
|
1723
|
+
function Switch({
|
|
1724
|
+
className,
|
|
1725
|
+
...props
|
|
1726
|
+
}) {
|
|
1727
|
+
return /* @__PURE__ */ jsx(
|
|
1728
|
+
Switch$1.Root,
|
|
1729
|
+
{
|
|
1730
|
+
"data-slot": "switch",
|
|
1731
|
+
className: cn(
|
|
1732
|
+
"peer inline-flex h-5 w-9 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent shadow-xs transition-colors",
|
|
1733
|
+
"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background",
|
|
1734
|
+
"disabled:cursor-not-allowed disabled:opacity-50",
|
|
1735
|
+
"data-[state=checked]:bg-primary data-[state=unchecked]:bg-input",
|
|
1736
|
+
className
|
|
1737
|
+
),
|
|
1738
|
+
...props,
|
|
1739
|
+
children: /* @__PURE__ */ jsx(
|
|
1740
|
+
Switch$1.Thumb,
|
|
1741
|
+
{
|
|
1742
|
+
"data-slot": "switch-thumb",
|
|
1743
|
+
className: cn(
|
|
1744
|
+
"pointer-events-none block size-4 rounded-full bg-background shadow-lg ring-0 transition-transform",
|
|
1745
|
+
"data-[state=checked]:translate-x-4 data-[state=unchecked]:translate-x-0"
|
|
1746
|
+
)
|
|
1747
|
+
}
|
|
1748
|
+
)
|
|
1749
|
+
}
|
|
1750
|
+
);
|
|
1751
|
+
}
|
|
1752
|
+
function Table({
|
|
1753
|
+
className,
|
|
1754
|
+
...props
|
|
1755
|
+
}) {
|
|
1756
|
+
return /* @__PURE__ */ jsx("div", { className: "relative w-full overflow-auto", children: /* @__PURE__ */ jsx(
|
|
1757
|
+
"table",
|
|
1758
|
+
{
|
|
1759
|
+
"data-slot": "table",
|
|
1760
|
+
className: cn("w-full caption-bottom text-sm", className),
|
|
1761
|
+
...props
|
|
1762
|
+
}
|
|
1763
|
+
) });
|
|
1764
|
+
}
|
|
1765
|
+
function TableHeader({
|
|
1766
|
+
className,
|
|
1767
|
+
...props
|
|
1768
|
+
}) {
|
|
1769
|
+
return /* @__PURE__ */ jsx(
|
|
1770
|
+
"thead",
|
|
1771
|
+
{
|
|
1772
|
+
"data-slot": "table-header",
|
|
1773
|
+
className: cn("[&_tr]:border-b", className),
|
|
1774
|
+
...props
|
|
1775
|
+
}
|
|
1776
|
+
);
|
|
1777
|
+
}
|
|
1778
|
+
function TableBody({
|
|
1779
|
+
className,
|
|
1780
|
+
...props
|
|
1781
|
+
}) {
|
|
1782
|
+
return /* @__PURE__ */ jsx(
|
|
1783
|
+
"tbody",
|
|
1784
|
+
{
|
|
1785
|
+
"data-slot": "table-body",
|
|
1786
|
+
className: cn("[&_tr:last-child]:border-0", className),
|
|
1787
|
+
...props
|
|
1788
|
+
}
|
|
1789
|
+
);
|
|
1790
|
+
}
|
|
1791
|
+
function TableFooter({
|
|
1792
|
+
className,
|
|
1793
|
+
...props
|
|
1794
|
+
}) {
|
|
1795
|
+
return /* @__PURE__ */ jsx(
|
|
1796
|
+
"tfoot",
|
|
1797
|
+
{
|
|
1798
|
+
"data-slot": "table-footer",
|
|
1799
|
+
className: cn(
|
|
1800
|
+
"border-t bg-muted/50 font-medium [&>tr]:last:border-b-0",
|
|
1801
|
+
className
|
|
1802
|
+
),
|
|
1803
|
+
...props
|
|
1804
|
+
}
|
|
1805
|
+
);
|
|
1806
|
+
}
|
|
1807
|
+
function TableRow({
|
|
1808
|
+
className,
|
|
1809
|
+
...props
|
|
1810
|
+
}) {
|
|
1811
|
+
return /* @__PURE__ */ jsx(
|
|
1812
|
+
"tr",
|
|
1813
|
+
{
|
|
1814
|
+
"data-slot": "table-row",
|
|
1815
|
+
className: cn(
|
|
1816
|
+
"border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted",
|
|
1817
|
+
className
|
|
1818
|
+
),
|
|
1819
|
+
...props
|
|
1820
|
+
}
|
|
1821
|
+
);
|
|
1822
|
+
}
|
|
1823
|
+
function TableHead({
|
|
1824
|
+
className,
|
|
1825
|
+
...props
|
|
1826
|
+
}) {
|
|
1827
|
+
return /* @__PURE__ */ jsx(
|
|
1828
|
+
"th",
|
|
1829
|
+
{
|
|
1830
|
+
"data-slot": "table-head",
|
|
1831
|
+
className: cn(
|
|
1832
|
+
"h-10 px-2 text-left align-middle font-medium text-muted-foreground [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]",
|
|
1833
|
+
className
|
|
1834
|
+
),
|
|
1835
|
+
...props
|
|
1836
|
+
}
|
|
1837
|
+
);
|
|
1838
|
+
}
|
|
1839
|
+
function TableCell({
|
|
1840
|
+
className,
|
|
1841
|
+
...props
|
|
1842
|
+
}) {
|
|
1843
|
+
return /* @__PURE__ */ jsx(
|
|
1844
|
+
"td",
|
|
1845
|
+
{
|
|
1846
|
+
"data-slot": "table-cell",
|
|
1847
|
+
className: cn(
|
|
1848
|
+
"p-2 align-middle [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]",
|
|
1849
|
+
className
|
|
1850
|
+
),
|
|
1851
|
+
...props
|
|
1852
|
+
}
|
|
1853
|
+
);
|
|
1854
|
+
}
|
|
1855
|
+
function TableCaption({
|
|
1856
|
+
className,
|
|
1857
|
+
...props
|
|
1858
|
+
}) {
|
|
1859
|
+
return /* @__PURE__ */ jsx(
|
|
1860
|
+
"caption",
|
|
1861
|
+
{
|
|
1862
|
+
"data-slot": "table-caption",
|
|
1863
|
+
className: cn("mt-4 text-sm text-muted-foreground", className),
|
|
1864
|
+
...props
|
|
1865
|
+
}
|
|
1866
|
+
);
|
|
1867
|
+
}
|
|
1868
|
+
function Tabs({
|
|
1869
|
+
className,
|
|
1870
|
+
...props
|
|
1871
|
+
}) {
|
|
1872
|
+
return /* @__PURE__ */ jsx(
|
|
1873
|
+
Tabs$1.Root,
|
|
1874
|
+
{
|
|
1875
|
+
"data-slot": "tabs",
|
|
1876
|
+
className: cn("flex flex-col gap-2", className),
|
|
1877
|
+
...props
|
|
1878
|
+
}
|
|
1879
|
+
);
|
|
1880
|
+
}
|
|
1881
|
+
function TabsList({
|
|
1882
|
+
className,
|
|
1883
|
+
...props
|
|
1884
|
+
}) {
|
|
1885
|
+
return /* @__PURE__ */ jsx(
|
|
1886
|
+
Tabs$1.List,
|
|
1887
|
+
{
|
|
1888
|
+
"data-slot": "tabs-list",
|
|
1889
|
+
className: cn(
|
|
1890
|
+
"bg-muted text-muted-foreground inline-flex h-10 items-center justify-center rounded-lg p-1",
|
|
1891
|
+
className
|
|
1892
|
+
),
|
|
1893
|
+
...props
|
|
1894
|
+
}
|
|
1895
|
+
);
|
|
1896
|
+
}
|
|
1897
|
+
function TabsTrigger({
|
|
1898
|
+
className,
|
|
1899
|
+
...props
|
|
1900
|
+
}) {
|
|
1901
|
+
return /* @__PURE__ */ jsx(
|
|
1902
|
+
Tabs$1.Trigger,
|
|
1903
|
+
{
|
|
1904
|
+
"data-slot": "tabs-trigger",
|
|
1905
|
+
className: cn(
|
|
1906
|
+
"ring-offset-background focus-visible:ring-ring data-[state=active]:bg-background data-[state=active]:text-foreground inline-flex items-center justify-center whitespace-nowrap rounded-md px-3 py-1.5 text-sm font-medium transition-all focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:outline-none disabled:pointer-events-none disabled:opacity-50 data-[state=active]:shadow-sm",
|
|
1907
|
+
className
|
|
1908
|
+
),
|
|
1909
|
+
...props
|
|
1910
|
+
}
|
|
1911
|
+
);
|
|
1912
|
+
}
|
|
1913
|
+
function TabsContent({
|
|
1914
|
+
className,
|
|
1915
|
+
...props
|
|
1916
|
+
}) {
|
|
1917
|
+
return /* @__PURE__ */ jsx(
|
|
1918
|
+
Tabs$1.Content,
|
|
1919
|
+
{
|
|
1920
|
+
"data-slot": "tabs-content",
|
|
1921
|
+
className: cn(
|
|
1922
|
+
"ring-offset-background focus-visible:ring-ring mt-2 focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:outline-none",
|
|
1923
|
+
className
|
|
1924
|
+
),
|
|
1925
|
+
...props
|
|
1926
|
+
}
|
|
1927
|
+
);
|
|
1928
|
+
}
|
|
1929
|
+
function Textarea({ className, ...props }) {
|
|
1930
|
+
return /* @__PURE__ */ jsx(
|
|
1931
|
+
"textarea",
|
|
1932
|
+
{
|
|
1933
|
+
"data-slot": "textarea",
|
|
1934
|
+
className: cn(
|
|
1935
|
+
"border-input dark:bg-input/30 focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:aria-invalid:border-destructive/50 rounded-md border bg-transparent px-2.5 py-2 text-base shadow-xs transition-[color,box-shadow] focus-visible:ring-[3px] aria-invalid:ring-[3px] md:text-sm placeholder:text-muted-foreground flex field-sizing-content min-h-16 w-full outline-none disabled:cursor-not-allowed disabled:opacity-50",
|
|
1936
|
+
className
|
|
1937
|
+
),
|
|
1938
|
+
...props
|
|
1939
|
+
}
|
|
1940
|
+
);
|
|
1941
|
+
}
|
|
1942
|
+
function Select({
|
|
1943
|
+
...props
|
|
1944
|
+
}) {
|
|
1945
|
+
return /* @__PURE__ */ jsx(Select$1.Root, { "data-slot": "select", ...props });
|
|
1946
|
+
}
|
|
1947
|
+
function SelectGroup({
|
|
1948
|
+
className,
|
|
1949
|
+
...props
|
|
1950
|
+
}) {
|
|
1951
|
+
return /* @__PURE__ */ jsx(
|
|
1952
|
+
Select$1.Group,
|
|
1953
|
+
{
|
|
1954
|
+
"data-slot": "select-group",
|
|
1955
|
+
className: cn("scroll-my-1 p-1", className),
|
|
1956
|
+
...props
|
|
1957
|
+
}
|
|
1958
|
+
);
|
|
1959
|
+
}
|
|
1960
|
+
function SelectValue({
|
|
1961
|
+
...props
|
|
1962
|
+
}) {
|
|
1963
|
+
return /* @__PURE__ */ jsx(Select$1.Value, { "data-slot": "select-value", ...props });
|
|
1964
|
+
}
|
|
1965
|
+
function SelectTrigger({
|
|
1966
|
+
className,
|
|
1967
|
+
size = "default",
|
|
1968
|
+
children,
|
|
1969
|
+
...props
|
|
1970
|
+
}) {
|
|
1971
|
+
return /* @__PURE__ */ jsxs(
|
|
1972
|
+
Select$1.Trigger,
|
|
1973
|
+
{
|
|
1974
|
+
"data-slot": "select-trigger",
|
|
1975
|
+
"data-size": size,
|
|
1976
|
+
className: cn(
|
|
1977
|
+
"border-input data-[placeholder]:text-muted-foreground dark:bg-input/30 dark:hover:bg-input/50 focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:aria-invalid:border-destructive/50 gap-1.5 rounded-md border bg-transparent py-2 pr-2 pl-2.5 text-sm shadow-xs transition-[color,box-shadow] focus-visible:ring-[3px] aria-invalid:ring-[3px] data-[size=default]:h-9 data-[size=sm]:h-8 *:data-[slot=select-value]:flex *:data-[slot=select-value]:gap-1.5 [&_svg:not([class*='size-'])]:size-4 flex w-fit items-center justify-between whitespace-nowrap outline-none disabled:cursor-not-allowed disabled:opacity-50 *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center [&_svg]:pointer-events-none [&_svg]:shrink-0",
|
|
1978
|
+
className
|
|
1979
|
+
),
|
|
1980
|
+
...props,
|
|
1981
|
+
children: [
|
|
1982
|
+
children,
|
|
1983
|
+
/* @__PURE__ */ jsx(Select$1.Icon, { asChild: true, children: /* @__PURE__ */ jsx(ChevronDownIcon, { className: "text-muted-foreground size-4 pointer-events-none" }) })
|
|
1984
|
+
]
|
|
1985
|
+
}
|
|
1986
|
+
);
|
|
1987
|
+
}
|
|
1988
|
+
function SelectContent({
|
|
1989
|
+
className,
|
|
1990
|
+
children,
|
|
1991
|
+
position = "item-aligned",
|
|
1992
|
+
align = "center",
|
|
1993
|
+
...props
|
|
1994
|
+
}) {
|
|
1995
|
+
return /* @__PURE__ */ jsx(Select$1.Portal, { children: /* @__PURE__ */ jsxs(
|
|
1996
|
+
Select$1.Content,
|
|
1997
|
+
{
|
|
1998
|
+
"data-slot": "select-content",
|
|
1999
|
+
"data-align-trigger": position === "item-aligned",
|
|
2000
|
+
className: cn("bg-popover text-popover-foreground data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-95 data-open:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 ring-foreground/10 min-w-36 rounded-md shadow-md ring-1 duration-100 relative z-50 max-h-(--radix-select-content-available-height) origin-(--radix-select-content-transform-origin) overflow-x-hidden overflow-y-auto data-[align-trigger=true]:animate-none", position === "popper" && "data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1", className),
|
|
2001
|
+
position,
|
|
2002
|
+
align,
|
|
2003
|
+
...props,
|
|
2004
|
+
children: [
|
|
2005
|
+
/* @__PURE__ */ jsx(SelectScrollUpButton, {}),
|
|
2006
|
+
/* @__PURE__ */ jsx(
|
|
2007
|
+
Select$1.Viewport,
|
|
2008
|
+
{
|
|
2009
|
+
"data-position": position,
|
|
2010
|
+
className: cn(
|
|
2011
|
+
"data-[position=popper]:h-[var(--radix-select-trigger-height)] data-[position=popper]:w-full data-[position=popper]:min-w-[var(--radix-select-trigger-width)]",
|
|
2012
|
+
position === "popper" && ""
|
|
2013
|
+
),
|
|
2014
|
+
children
|
|
2015
|
+
}
|
|
2016
|
+
),
|
|
2017
|
+
/* @__PURE__ */ jsx(SelectScrollDownButton, {})
|
|
2018
|
+
]
|
|
2019
|
+
}
|
|
2020
|
+
) });
|
|
2021
|
+
}
|
|
2022
|
+
function SelectLabel({
|
|
2023
|
+
className,
|
|
2024
|
+
...props
|
|
2025
|
+
}) {
|
|
2026
|
+
return /* @__PURE__ */ jsx(
|
|
2027
|
+
Select$1.Label,
|
|
2028
|
+
{
|
|
2029
|
+
"data-slot": "select-label",
|
|
2030
|
+
className: cn("text-muted-foreground px-2 py-1.5 text-xs", className),
|
|
2031
|
+
...props
|
|
2032
|
+
}
|
|
2033
|
+
);
|
|
2034
|
+
}
|
|
2035
|
+
function SelectItem({
|
|
2036
|
+
className,
|
|
2037
|
+
children,
|
|
2038
|
+
...props
|
|
2039
|
+
}) {
|
|
2040
|
+
return /* @__PURE__ */ jsxs(
|
|
2041
|
+
Select$1.Item,
|
|
2042
|
+
{
|
|
2043
|
+
"data-slot": "select-item",
|
|
2044
|
+
className: cn(
|
|
2045
|
+
"focus:bg-accent focus:text-accent-foreground not-data-[variant=destructive]:focus:**:text-accent-foreground gap-2 rounded-sm py-1.5 pr-8 pl-2 text-sm [&_svg:not([class*='size-'])]:size-4 *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2 relative flex w-full cursor-default items-center outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0",
|
|
2046
|
+
className
|
|
2047
|
+
),
|
|
2048
|
+
...props,
|
|
2049
|
+
children: [
|
|
2050
|
+
/* @__PURE__ */ jsx("span", { className: "pointer-events-none absolute right-2 flex size-4 items-center justify-center", children: /* @__PURE__ */ jsx(Select$1.ItemIndicator, { children: /* @__PURE__ */ jsx(CheckIcon, { className: "pointer-events-none" }) }) }),
|
|
2051
|
+
/* @__PURE__ */ jsx(Select$1.ItemText, { children })
|
|
2052
|
+
]
|
|
2053
|
+
}
|
|
2054
|
+
);
|
|
2055
|
+
}
|
|
2056
|
+
function SelectSeparator({
|
|
2057
|
+
className,
|
|
2058
|
+
...props
|
|
2059
|
+
}) {
|
|
2060
|
+
return /* @__PURE__ */ jsx(
|
|
2061
|
+
Select$1.Separator,
|
|
2062
|
+
{
|
|
2063
|
+
"data-slot": "select-separator",
|
|
2064
|
+
className: cn("bg-border -mx-1 my-1 h-px pointer-events-none", className),
|
|
2065
|
+
...props
|
|
2066
|
+
}
|
|
2067
|
+
);
|
|
2068
|
+
}
|
|
2069
|
+
function SelectScrollUpButton({
|
|
2070
|
+
className,
|
|
2071
|
+
...props
|
|
2072
|
+
}) {
|
|
2073
|
+
return /* @__PURE__ */ jsx(
|
|
2074
|
+
Select$1.ScrollUpButton,
|
|
2075
|
+
{
|
|
2076
|
+
"data-slot": "select-scroll-up-button",
|
|
2077
|
+
className: cn("bg-popover z-10 flex cursor-default items-center justify-center py-1 [&_svg:not([class*='size-'])]:size-4", className),
|
|
2078
|
+
...props,
|
|
2079
|
+
children: /* @__PURE__ */ jsx(
|
|
2080
|
+
ChevronUpIcon,
|
|
2081
|
+
{}
|
|
2082
|
+
)
|
|
2083
|
+
}
|
|
2084
|
+
);
|
|
2085
|
+
}
|
|
2086
|
+
function SelectScrollDownButton({
|
|
2087
|
+
className,
|
|
2088
|
+
...props
|
|
2089
|
+
}) {
|
|
2090
|
+
return /* @__PURE__ */ jsx(
|
|
2091
|
+
Select$1.ScrollDownButton,
|
|
2092
|
+
{
|
|
2093
|
+
"data-slot": "select-scroll-down-button",
|
|
2094
|
+
className: cn("bg-popover z-10 flex cursor-default items-center justify-center py-1 [&_svg:not([class*='size-'])]:size-4", className),
|
|
2095
|
+
...props,
|
|
2096
|
+
children: /* @__PURE__ */ jsx(
|
|
2097
|
+
ChevronDownIcon,
|
|
2098
|
+
{}
|
|
2099
|
+
)
|
|
2100
|
+
}
|
|
2101
|
+
);
|
|
2102
|
+
}
|
|
2103
|
+
function InputGroup({ className, ...props }) {
|
|
2104
|
+
return /* @__PURE__ */ jsx(
|
|
2105
|
+
"div",
|
|
2106
|
+
{
|
|
2107
|
+
"data-slot": "input-group",
|
|
2108
|
+
role: "group",
|
|
2109
|
+
className: cn(
|
|
2110
|
+
"border-input dark:bg-input/30 has-[[data-slot=input-group-control]:focus-visible]:border-ring has-[[data-slot=input-group-control]:focus-visible]:ring-ring/50 has-[[data-slot][aria-invalid=true]]:ring-destructive/20 has-[[data-slot][aria-invalid=true]]:border-destructive dark:has-[[data-slot][aria-invalid=true]]:ring-destructive/40 h-9 rounded-md border shadow-xs transition-[color,box-shadow] has-[[data-slot=input-group-control]:focus-visible]:ring-[3px] has-[[data-slot][aria-invalid=true]]:ring-[3px] has-[>[data-align=block-end]]:h-auto has-[>[data-align=block-end]]:flex-col has-[>[data-align=block-start]]:h-auto has-[>[data-align=block-start]]:flex-col has-[>[data-align=block-end]]:[&>input]:pt-3 has-[>[data-align=block-start]]:[&>input]:pb-3 has-[>[data-align=inline-end]]:[&>input]:pr-1.5 has-[>[data-align=inline-start]]:[&>input]:pl-1.5 [[data-slot=combobox-content]_&]:focus-within:border-inherit [[data-slot=combobox-content]_&]:focus-within:ring-0 group/input-group relative flex w-full min-w-0 items-center outline-none has-[>textarea]:h-auto",
|
|
2111
|
+
className
|
|
2112
|
+
),
|
|
2113
|
+
...props
|
|
2114
|
+
}
|
|
2115
|
+
);
|
|
2116
|
+
}
|
|
2117
|
+
var inputGroupAddonVariants = cva(
|
|
2118
|
+
"text-muted-foreground h-auto gap-2 py-1.5 text-sm font-medium group-data-[disabled=true]/input-group:opacity-50 [&>kbd]:rounded-[calc(var(--radius)-5px)] [&>svg:not([class*='size-'])]:size-4 flex cursor-text items-center justify-center select-none",
|
|
2119
|
+
{
|
|
2120
|
+
variants: {
|
|
2121
|
+
align: {
|
|
2122
|
+
"inline-start": "pl-2 has-[>button]:ml-[-0.25rem] has-[>kbd]:ml-[-0.15rem] order-first",
|
|
2123
|
+
"inline-end": "pr-2 has-[>button]:mr-[-0.25rem] has-[>kbd]:mr-[-0.15rem] order-last",
|
|
2124
|
+
"block-start": "px-2.5 pt-2 group-has-[>input]/input-group:pt-2 [.border-b]:pb-2 order-first w-full justify-start",
|
|
2125
|
+
"block-end": "px-2.5 pb-2 group-has-[>input]/input-group:pb-2 [.border-t]:pt-2 order-last w-full justify-start"
|
|
2126
|
+
}
|
|
2127
|
+
},
|
|
2128
|
+
defaultVariants: {
|
|
2129
|
+
align: "inline-start"
|
|
2130
|
+
}
|
|
2131
|
+
}
|
|
2132
|
+
);
|
|
2133
|
+
function InputGroupAddon({
|
|
2134
|
+
className,
|
|
2135
|
+
align = "inline-start",
|
|
2136
|
+
...props
|
|
2137
|
+
}) {
|
|
2138
|
+
return /* @__PURE__ */ jsx(
|
|
2139
|
+
"div",
|
|
2140
|
+
{
|
|
2141
|
+
role: "group",
|
|
2142
|
+
"data-slot": "input-group-addon",
|
|
2143
|
+
"data-align": align,
|
|
2144
|
+
className: cn(inputGroupAddonVariants({ align }), className),
|
|
2145
|
+
onClick: (e) => {
|
|
2146
|
+
if (e.target.closest("button")) {
|
|
2147
|
+
return;
|
|
2148
|
+
}
|
|
2149
|
+
e.currentTarget.parentElement?.querySelector("input")?.focus();
|
|
2150
|
+
},
|
|
2151
|
+
...props
|
|
2152
|
+
}
|
|
2153
|
+
);
|
|
2154
|
+
}
|
|
2155
|
+
var inputGroupButtonVariants = cva(
|
|
2156
|
+
"gap-2 text-sm shadow-none flex items-center",
|
|
2157
|
+
{
|
|
2158
|
+
variants: {
|
|
2159
|
+
size: {
|
|
2160
|
+
xs: "h-6 gap-1 rounded-[calc(var(--radius)-5px)] px-1.5 [&>svg:not([class*='size-'])]:size-3.5",
|
|
2161
|
+
sm: "",
|
|
2162
|
+
"icon-xs": "size-6 rounded-[calc(var(--radius)-5px)] p-0 has-[>svg]:p-0",
|
|
2163
|
+
"icon-sm": "size-8 p-0 has-[>svg]:p-0"
|
|
2164
|
+
}
|
|
2165
|
+
},
|
|
2166
|
+
defaultVariants: {
|
|
2167
|
+
size: "xs"
|
|
2168
|
+
}
|
|
2169
|
+
}
|
|
2170
|
+
);
|
|
2171
|
+
function InputGroupButton({
|
|
2172
|
+
className,
|
|
2173
|
+
type = "button",
|
|
2174
|
+
variant = "ghost",
|
|
2175
|
+
size = "xs",
|
|
2176
|
+
...props
|
|
2177
|
+
}) {
|
|
2178
|
+
return /* @__PURE__ */ jsx(
|
|
2179
|
+
Button,
|
|
2180
|
+
{
|
|
2181
|
+
type,
|
|
2182
|
+
"data-size": size,
|
|
2183
|
+
variant,
|
|
2184
|
+
className: cn(inputGroupButtonVariants({ size }), className),
|
|
2185
|
+
...props
|
|
2186
|
+
}
|
|
2187
|
+
);
|
|
2188
|
+
}
|
|
2189
|
+
function InputGroupText({ className, ...props }) {
|
|
2190
|
+
return /* @__PURE__ */ jsx(
|
|
2191
|
+
"span",
|
|
2192
|
+
{
|
|
2193
|
+
className: cn(
|
|
2194
|
+
"text-muted-foreground gap-2 text-sm [&_svg:not([class*='size-'])]:size-4 flex items-center [&_svg]:pointer-events-none",
|
|
2195
|
+
className
|
|
2196
|
+
),
|
|
2197
|
+
...props
|
|
2198
|
+
}
|
|
2199
|
+
);
|
|
2200
|
+
}
|
|
2201
|
+
function InputGroupInput({
|
|
2202
|
+
className,
|
|
2203
|
+
...props
|
|
2204
|
+
}) {
|
|
2205
|
+
return /* @__PURE__ */ jsx(
|
|
2206
|
+
Input,
|
|
2207
|
+
{
|
|
2208
|
+
"data-slot": "input-group-control",
|
|
2209
|
+
className: cn("rounded-none border-0 bg-transparent shadow-none ring-0 focus-visible:ring-0 aria-invalid:ring-0 dark:bg-transparent flex-1", className),
|
|
2210
|
+
...props
|
|
2211
|
+
}
|
|
2212
|
+
);
|
|
2213
|
+
}
|
|
2214
|
+
function InputGroupTextarea({
|
|
2215
|
+
className,
|
|
2216
|
+
...props
|
|
2217
|
+
}) {
|
|
2218
|
+
return /* @__PURE__ */ jsx(
|
|
2219
|
+
Textarea,
|
|
2220
|
+
{
|
|
2221
|
+
"data-slot": "input-group-control",
|
|
2222
|
+
className: cn("rounded-none border-0 bg-transparent py-2 shadow-none ring-0 focus-visible:ring-0 aria-invalid:ring-0 dark:bg-transparent flex-1 resize-none", className),
|
|
2223
|
+
...props
|
|
2224
|
+
}
|
|
2225
|
+
);
|
|
2226
|
+
}
|
|
2227
|
+
function FieldSet({ className, ...props }) {
|
|
2228
|
+
return /* @__PURE__ */ jsx(
|
|
2229
|
+
"fieldset",
|
|
2230
|
+
{
|
|
2231
|
+
"data-slot": "field-set",
|
|
2232
|
+
className: cn("gap-6 has-[>[data-slot=checkbox-group]]:gap-3 has-[>[data-slot=radio-group]]:gap-3 flex flex-col", className),
|
|
2233
|
+
...props
|
|
2234
|
+
}
|
|
2235
|
+
);
|
|
2236
|
+
}
|
|
2237
|
+
function FieldLegend({
|
|
2238
|
+
className,
|
|
2239
|
+
variant = "legend",
|
|
2240
|
+
...props
|
|
2241
|
+
}) {
|
|
2242
|
+
return /* @__PURE__ */ jsx(
|
|
2243
|
+
"legend",
|
|
2244
|
+
{
|
|
2245
|
+
"data-slot": "field-legend",
|
|
2246
|
+
"data-variant": variant,
|
|
2247
|
+
className: cn("mb-3 font-medium data-[variant=label]:text-sm data-[variant=legend]:text-base", className),
|
|
2248
|
+
...props
|
|
2249
|
+
}
|
|
2250
|
+
);
|
|
2251
|
+
}
|
|
2252
|
+
function FieldGroup({ className, ...props }) {
|
|
2253
|
+
return /* @__PURE__ */ jsx(
|
|
2254
|
+
"div",
|
|
2255
|
+
{
|
|
2256
|
+
"data-slot": "field-group",
|
|
2257
|
+
className: cn(
|
|
2258
|
+
"gap-7 data-[slot=checkbox-group]:gap-3 [&>[data-slot=field-group]]:gap-4 group/field-group @container/field-group flex w-full flex-col",
|
|
2259
|
+
className
|
|
2260
|
+
),
|
|
2261
|
+
...props
|
|
2262
|
+
}
|
|
2263
|
+
);
|
|
2264
|
+
}
|
|
2265
|
+
var fieldVariants = cva("data-[invalid=true]:text-destructive gap-3 group/field flex w-full", {
|
|
2266
|
+
variants: {
|
|
2267
|
+
orientation: {
|
|
2268
|
+
vertical: "flex-col [&>*]:w-full [&>.sr-only]:w-auto",
|
|
2269
|
+
horizontal: "flex-row items-center [&>[data-slot=field-label]]:flex-auto has-[>[data-slot=field-content]]:items-start has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radio]]:mt-px",
|
|
2270
|
+
responsive: "flex-col [&>*]:w-full [&>.sr-only]:w-auto @md/field-group:flex-row @md/field-group:items-center @md/field-group:[&>*]:w-auto @md/field-group:[&>[data-slot=field-label]]:flex-auto @md/field-group:has-[>[data-slot=field-content]]:items-start @md/field-group:has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radio]]:mt-px"
|
|
2271
|
+
}
|
|
2272
|
+
},
|
|
2273
|
+
defaultVariants: {
|
|
2274
|
+
orientation: "vertical"
|
|
2275
|
+
}
|
|
2276
|
+
});
|
|
2277
|
+
function Field({
|
|
2278
|
+
className,
|
|
2279
|
+
orientation = "vertical",
|
|
2280
|
+
...props
|
|
2281
|
+
}) {
|
|
2282
|
+
return /* @__PURE__ */ jsx(
|
|
2283
|
+
"div",
|
|
2284
|
+
{
|
|
2285
|
+
role: "group",
|
|
2286
|
+
"data-slot": "field",
|
|
2287
|
+
"data-orientation": orientation,
|
|
2288
|
+
className: cn(fieldVariants({ orientation }), className),
|
|
2289
|
+
...props
|
|
2290
|
+
}
|
|
2291
|
+
);
|
|
2292
|
+
}
|
|
2293
|
+
function FieldContent({ className, ...props }) {
|
|
2294
|
+
return /* @__PURE__ */ jsx(
|
|
2295
|
+
"div",
|
|
2296
|
+
{
|
|
2297
|
+
"data-slot": "field-content",
|
|
2298
|
+
className: cn(
|
|
2299
|
+
"gap-1 group/field-content flex flex-1 flex-col leading-snug",
|
|
2300
|
+
className
|
|
2301
|
+
),
|
|
2302
|
+
...props
|
|
2303
|
+
}
|
|
2304
|
+
);
|
|
2305
|
+
}
|
|
2306
|
+
function FieldLabel({
|
|
2307
|
+
className,
|
|
2308
|
+
...props
|
|
2309
|
+
}) {
|
|
2310
|
+
return /* @__PURE__ */ jsx(
|
|
2311
|
+
Label,
|
|
2312
|
+
{
|
|
2313
|
+
"data-slot": "field-label",
|
|
2314
|
+
className: cn(
|
|
2315
|
+
"has-data-checked:bg-primary/5 has-data-checked:border-primary dark:has-data-checked:bg-primary/10 gap-2 group-data-[disabled=true]/field:opacity-50 has-[>[data-slot=field]]:rounded-md has-[>[data-slot=field]]:border [&>*]:data-[slot=field]:p-3 group/field-label peer/field-label flex w-fit leading-snug",
|
|
2316
|
+
"has-[>[data-slot=field]]:w-full has-[>[data-slot=field]]:flex-col",
|
|
2317
|
+
className
|
|
2318
|
+
),
|
|
2319
|
+
...props
|
|
2320
|
+
}
|
|
2321
|
+
);
|
|
2322
|
+
}
|
|
2323
|
+
function FieldTitle({ className, ...props }) {
|
|
2324
|
+
return /* @__PURE__ */ jsx(
|
|
2325
|
+
"div",
|
|
2326
|
+
{
|
|
2327
|
+
"data-slot": "field-label",
|
|
2328
|
+
className: cn(
|
|
2329
|
+
"gap-2 text-sm font-medium group-data-[disabled=true]/field:opacity-50 flex w-fit items-center leading-snug",
|
|
2330
|
+
className
|
|
2331
|
+
),
|
|
2332
|
+
...props
|
|
2333
|
+
}
|
|
2334
|
+
);
|
|
2335
|
+
}
|
|
2336
|
+
function FieldDescription({ className, ...props }) {
|
|
2337
|
+
return /* @__PURE__ */ jsx(
|
|
2338
|
+
"p",
|
|
2339
|
+
{
|
|
2340
|
+
"data-slot": "field-description",
|
|
2341
|
+
className: cn(
|
|
2342
|
+
"text-muted-foreground text-left text-sm [[data-variant=legend]+&]:-mt-1.5 leading-normal font-normal group-has-[[data-orientation=horizontal]]/field:text-balance",
|
|
2343
|
+
"last:mt-0 nth-last-2:-mt-1",
|
|
2344
|
+
"[&>a:hover]:text-primary [&>a]:underline [&>a]:underline-offset-4",
|
|
2345
|
+
className
|
|
2346
|
+
),
|
|
2347
|
+
...props
|
|
2348
|
+
}
|
|
2349
|
+
);
|
|
2350
|
+
}
|
|
2351
|
+
function FieldSeparator({
|
|
2352
|
+
children,
|
|
2353
|
+
className,
|
|
2354
|
+
...props
|
|
2355
|
+
}) {
|
|
2356
|
+
return /* @__PURE__ */ jsxs(
|
|
2357
|
+
"div",
|
|
2358
|
+
{
|
|
2359
|
+
"data-slot": "field-separator",
|
|
2360
|
+
"data-content": !!children,
|
|
2361
|
+
className: cn("-my-2 h-5 text-sm group-data-[variant=outline]/field-group:-mb-2 relative", className),
|
|
2362
|
+
...props,
|
|
2363
|
+
children: [
|
|
2364
|
+
/* @__PURE__ */ jsx(Separator, { className: "absolute inset-0 top-1/2" }),
|
|
2365
|
+
children && /* @__PURE__ */ jsx(
|
|
2366
|
+
"span",
|
|
2367
|
+
{
|
|
2368
|
+
className: "text-muted-foreground px-2 bg-background relative mx-auto block w-fit",
|
|
2369
|
+
"data-slot": "field-separator-content",
|
|
2370
|
+
children
|
|
2371
|
+
}
|
|
2372
|
+
)
|
|
2373
|
+
]
|
|
2374
|
+
}
|
|
2375
|
+
);
|
|
2376
|
+
}
|
|
2377
|
+
function FieldError({
|
|
2378
|
+
className,
|
|
2379
|
+
children,
|
|
2380
|
+
errors,
|
|
2381
|
+
...props
|
|
2382
|
+
}) {
|
|
2383
|
+
const content = useMemo(() => {
|
|
2384
|
+
if (children) {
|
|
2385
|
+
return children;
|
|
2386
|
+
}
|
|
2387
|
+
if (!errors?.length) {
|
|
2388
|
+
return null;
|
|
2389
|
+
}
|
|
2390
|
+
const uniqueErrors = [
|
|
2391
|
+
...new Map(errors.map((error) => [error?.message, error])).values()
|
|
2392
|
+
];
|
|
2393
|
+
if (uniqueErrors?.length == 1) {
|
|
2394
|
+
return uniqueErrors[0]?.message;
|
|
2395
|
+
}
|
|
2396
|
+
return /* @__PURE__ */ jsx("ul", { className: "ml-4 flex list-disc flex-col gap-1", children: uniqueErrors.map(
|
|
2397
|
+
(error, index) => error?.message && /* @__PURE__ */ jsx("li", { children: error.message }, index)
|
|
2398
|
+
) });
|
|
2399
|
+
}, [children, errors]);
|
|
2400
|
+
if (!content) {
|
|
2401
|
+
return null;
|
|
2402
|
+
}
|
|
2403
|
+
return /* @__PURE__ */ jsx(
|
|
2404
|
+
"div",
|
|
2405
|
+
{
|
|
2406
|
+
role: "alert",
|
|
2407
|
+
"data-slot": "field-error",
|
|
2408
|
+
className: cn("text-destructive text-sm font-normal", className),
|
|
2409
|
+
...props,
|
|
2410
|
+
children: content
|
|
2411
|
+
}
|
|
2412
|
+
);
|
|
2413
|
+
}
|
|
2414
|
+
var alertVariants = cva(
|
|
2415
|
+
"relative w-full rounded-lg border px-4 py-3 text-sm [&>svg+div]:translate-y-[-3px] [&>svg]:absolute [&>svg]:left-4 [&>svg]:top-4 [&>svg]:text-foreground [&>svg~*]:pl-7",
|
|
2416
|
+
{
|
|
2417
|
+
variants: {
|
|
2418
|
+
variant: {
|
|
2419
|
+
default: "bg-background text-foreground",
|
|
2420
|
+
destructive: "border-destructive/50 text-destructive dark:border-destructive [&>svg]:text-destructive",
|
|
2421
|
+
success: "border-green-500/50 bg-green-50 text-green-700 dark:border-green-500 dark:bg-green-950 dark:text-green-300 [&>svg]:text-green-600 dark:[&>svg]:text-green-400",
|
|
2422
|
+
warning: "border-yellow-500/50 bg-yellow-50 text-yellow-700 dark:border-yellow-500 dark:bg-yellow-950 dark:text-yellow-300 [&>svg]:text-yellow-600 dark:[&>svg]:text-yellow-400",
|
|
2423
|
+
info: "border-blue-500/50 bg-blue-50 text-blue-700 dark:border-blue-500 dark:bg-blue-950 dark:text-blue-300 [&>svg]:text-blue-600 dark:[&>svg]:text-blue-400"
|
|
2424
|
+
}
|
|
2425
|
+
},
|
|
2426
|
+
defaultVariants: {
|
|
2427
|
+
variant: "default"
|
|
2428
|
+
}
|
|
2429
|
+
}
|
|
2430
|
+
);
|
|
2431
|
+
function Alert({
|
|
2432
|
+
className,
|
|
2433
|
+
variant,
|
|
2434
|
+
...props
|
|
2435
|
+
}) {
|
|
2436
|
+
return /* @__PURE__ */ jsx(
|
|
2437
|
+
"div",
|
|
2438
|
+
{
|
|
2439
|
+
"data-slot": "alert",
|
|
2440
|
+
role: "alert",
|
|
2441
|
+
className: cn(alertVariants({ variant }), className),
|
|
2442
|
+
...props
|
|
2443
|
+
}
|
|
2444
|
+
);
|
|
2445
|
+
}
|
|
2446
|
+
function AlertTitle({
|
|
2447
|
+
className,
|
|
2448
|
+
...props
|
|
2449
|
+
}) {
|
|
2450
|
+
return /* @__PURE__ */ jsx(
|
|
2451
|
+
"h5",
|
|
2452
|
+
{
|
|
2453
|
+
"data-slot": "alert-title",
|
|
2454
|
+
className: cn("mb-1 font-medium leading-none tracking-tight", className),
|
|
2455
|
+
...props
|
|
2456
|
+
}
|
|
2457
|
+
);
|
|
2458
|
+
}
|
|
2459
|
+
function AlertDescription({
|
|
2460
|
+
className,
|
|
2461
|
+
...props
|
|
2462
|
+
}) {
|
|
2463
|
+
return /* @__PURE__ */ jsx(
|
|
2464
|
+
"div",
|
|
2465
|
+
{
|
|
2466
|
+
"data-slot": "alert-description",
|
|
2467
|
+
className: cn("text-sm [&_p]:leading-relaxed", className),
|
|
2468
|
+
...props
|
|
2469
|
+
}
|
|
2470
|
+
);
|
|
2471
|
+
}
|
|
2472
|
+
function AlertDialog({
|
|
2473
|
+
...props
|
|
2474
|
+
}) {
|
|
2475
|
+
return /* @__PURE__ */ jsx(AlertDialog$1.Root, { "data-slot": "alert-dialog", ...props });
|
|
2476
|
+
}
|
|
2477
|
+
function AlertDialogTrigger({
|
|
2478
|
+
...props
|
|
2479
|
+
}) {
|
|
2480
|
+
return /* @__PURE__ */ jsx(AlertDialog$1.Trigger, { "data-slot": "alert-dialog-trigger", ...props });
|
|
2481
|
+
}
|
|
2482
|
+
function AlertDialogPortal({
|
|
2483
|
+
...props
|
|
2484
|
+
}) {
|
|
2485
|
+
return /* @__PURE__ */ jsx(AlertDialog$1.Portal, { "data-slot": "alert-dialog-portal", ...props });
|
|
2486
|
+
}
|
|
2487
|
+
function AlertDialogOverlay({
|
|
2488
|
+
className,
|
|
2489
|
+
...props
|
|
2490
|
+
}) {
|
|
2491
|
+
return /* @__PURE__ */ jsx(
|
|
2492
|
+
AlertDialog$1.Overlay,
|
|
2493
|
+
{
|
|
2494
|
+
"data-slot": "alert-dialog-overlay",
|
|
2495
|
+
className: cn("data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 bg-black/10 duration-100 supports-backdrop-filter:backdrop-blur-xs fixed inset-0 z-50", className),
|
|
2496
|
+
...props
|
|
2497
|
+
}
|
|
2498
|
+
);
|
|
2499
|
+
}
|
|
2500
|
+
function AlertDialogContent({
|
|
2501
|
+
className,
|
|
2502
|
+
size = "default",
|
|
2503
|
+
...props
|
|
2504
|
+
}) {
|
|
2505
|
+
return /* @__PURE__ */ jsxs(AlertDialogPortal, { children: [
|
|
2506
|
+
/* @__PURE__ */ jsx(AlertDialogOverlay, {}),
|
|
2507
|
+
/* @__PURE__ */ jsx(
|
|
2508
|
+
AlertDialog$1.Content,
|
|
2509
|
+
{
|
|
2510
|
+
"data-slot": "alert-dialog-content",
|
|
2511
|
+
"data-size": size,
|
|
2512
|
+
className: cn(
|
|
2513
|
+
"data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-95 data-open:zoom-in-95 bg-background ring-foreground/10 gap-6 rounded-xl p-6 ring-1 duration-100 data-[size=default]:max-w-xs data-[size=sm]:max-w-xs data-[size=default]:sm:max-w-lg group/alert-dialog-content fixed top-1/2 left-1/2 z-50 grid w-full -translate-x-1/2 -translate-y-1/2 outline-none",
|
|
2514
|
+
className
|
|
2515
|
+
),
|
|
2516
|
+
...props
|
|
2517
|
+
}
|
|
2518
|
+
)
|
|
2519
|
+
] });
|
|
2520
|
+
}
|
|
2521
|
+
function AlertDialogHeader({
|
|
2522
|
+
className,
|
|
2523
|
+
...props
|
|
2524
|
+
}) {
|
|
2525
|
+
return /* @__PURE__ */ jsx(
|
|
2526
|
+
"div",
|
|
2527
|
+
{
|
|
2528
|
+
"data-slot": "alert-dialog-header",
|
|
2529
|
+
className: cn("grid grid-rows-[auto_1fr] place-items-center gap-1.5 text-center has-data-[slot=alert-dialog-media]:grid-rows-[auto_auto_1fr] has-data-[slot=alert-dialog-media]:gap-x-6 sm:group-data-[size=default]/alert-dialog-content:place-items-start sm:group-data-[size=default]/alert-dialog-content:text-left sm:group-data-[size=default]/alert-dialog-content:has-data-[slot=alert-dialog-media]:grid-rows-[auto_1fr]", className),
|
|
2530
|
+
...props
|
|
2531
|
+
}
|
|
2532
|
+
);
|
|
2533
|
+
}
|
|
2534
|
+
function AlertDialogFooter({
|
|
2535
|
+
className,
|
|
2536
|
+
...props
|
|
2537
|
+
}) {
|
|
2538
|
+
return /* @__PURE__ */ jsx(
|
|
2539
|
+
"div",
|
|
2540
|
+
{
|
|
2541
|
+
"data-slot": "alert-dialog-footer",
|
|
2542
|
+
className: cn(
|
|
2543
|
+
"flex flex-col-reverse gap-2 group-data-[size=sm]/alert-dialog-content:grid group-data-[size=sm]/alert-dialog-content:grid-cols-2 sm:flex-row sm:justify-end",
|
|
2544
|
+
className
|
|
2545
|
+
),
|
|
2546
|
+
...props
|
|
2547
|
+
}
|
|
2548
|
+
);
|
|
2549
|
+
}
|
|
2550
|
+
function AlertDialogMedia({
|
|
2551
|
+
className,
|
|
2552
|
+
...props
|
|
2553
|
+
}) {
|
|
2554
|
+
return /* @__PURE__ */ jsx(
|
|
2555
|
+
"div",
|
|
2556
|
+
{
|
|
2557
|
+
"data-slot": "alert-dialog-media",
|
|
2558
|
+
className: cn("bg-muted mb-2 inline-flex size-16 items-center justify-center rounded-md sm:group-data-[size=default]/alert-dialog-content:row-span-2 *:[svg:not([class*='size-'])]:size-8", className),
|
|
2559
|
+
...props
|
|
2560
|
+
}
|
|
2561
|
+
);
|
|
2562
|
+
}
|
|
2563
|
+
function AlertDialogTitle({
|
|
2564
|
+
className,
|
|
2565
|
+
...props
|
|
2566
|
+
}) {
|
|
2567
|
+
return /* @__PURE__ */ jsx(
|
|
2568
|
+
AlertDialog$1.Title,
|
|
2569
|
+
{
|
|
2570
|
+
"data-slot": "alert-dialog-title",
|
|
2571
|
+
className: cn("text-lg font-medium sm:group-data-[size=default]/alert-dialog-content:group-has-data-[slot=alert-dialog-media]/alert-dialog-content:col-start-2", className),
|
|
2572
|
+
...props
|
|
2573
|
+
}
|
|
2574
|
+
);
|
|
2575
|
+
}
|
|
2576
|
+
function AlertDialogDescription({
|
|
2577
|
+
className,
|
|
2578
|
+
...props
|
|
2579
|
+
}) {
|
|
2580
|
+
return /* @__PURE__ */ jsx(
|
|
2581
|
+
AlertDialog$1.Description,
|
|
2582
|
+
{
|
|
2583
|
+
"data-slot": "alert-dialog-description",
|
|
2584
|
+
className: cn("text-muted-foreground *:[a]:hover:text-foreground text-sm text-balance md:text-pretty *:[a]:underline *:[a]:underline-offset-3", className),
|
|
2585
|
+
...props
|
|
2586
|
+
}
|
|
2587
|
+
);
|
|
2588
|
+
}
|
|
2589
|
+
function AlertDialogAction({
|
|
2590
|
+
className,
|
|
2591
|
+
variant = "default",
|
|
2592
|
+
size = "default",
|
|
2593
|
+
...props
|
|
2594
|
+
}) {
|
|
2595
|
+
return /* @__PURE__ */ jsx(Button, { variant, size, asChild: true, children: /* @__PURE__ */ jsx(
|
|
2596
|
+
AlertDialog$1.Action,
|
|
2597
|
+
{
|
|
2598
|
+
"data-slot": "alert-dialog-action",
|
|
2599
|
+
className: cn(className),
|
|
2600
|
+
...props
|
|
2601
|
+
}
|
|
2602
|
+
) });
|
|
2603
|
+
}
|
|
2604
|
+
function AlertDialogCancel({
|
|
2605
|
+
className,
|
|
2606
|
+
variant = "outline",
|
|
2607
|
+
size = "default",
|
|
2608
|
+
...props
|
|
2609
|
+
}) {
|
|
2610
|
+
return /* @__PURE__ */ jsx(Button, { variant, size, asChild: true, children: /* @__PURE__ */ jsx(
|
|
2611
|
+
AlertDialog$1.Cancel,
|
|
2612
|
+
{
|
|
2613
|
+
"data-slot": "alert-dialog-cancel",
|
|
2614
|
+
className: cn(className),
|
|
2615
|
+
...props
|
|
2616
|
+
}
|
|
2617
|
+
) });
|
|
2618
|
+
}
|
|
2619
|
+
function Dialog({
|
|
2620
|
+
...props
|
|
2621
|
+
}) {
|
|
2622
|
+
return /* @__PURE__ */ jsx(Dialog$1.Root, { "data-slot": "dialog", ...props });
|
|
2623
|
+
}
|
|
2624
|
+
function DialogTrigger({
|
|
2625
|
+
...props
|
|
2626
|
+
}) {
|
|
2627
|
+
return /* @__PURE__ */ jsx(Dialog$1.Trigger, { "data-slot": "dialog-trigger", ...props });
|
|
2628
|
+
}
|
|
2629
|
+
function DialogPortal({
|
|
2630
|
+
...props
|
|
2631
|
+
}) {
|
|
2632
|
+
return /* @__PURE__ */ jsx(Dialog$1.Portal, { "data-slot": "dialog-portal", ...props });
|
|
2633
|
+
}
|
|
2634
|
+
function DialogClose({
|
|
2635
|
+
...props
|
|
2636
|
+
}) {
|
|
2637
|
+
return /* @__PURE__ */ jsx(Dialog$1.Close, { "data-slot": "dialog-close", ...props });
|
|
2638
|
+
}
|
|
2639
|
+
function DialogOverlay({
|
|
2640
|
+
className,
|
|
2641
|
+
...props
|
|
2642
|
+
}) {
|
|
2643
|
+
return /* @__PURE__ */ jsx(
|
|
2644
|
+
Dialog$1.Overlay,
|
|
2645
|
+
{
|
|
2646
|
+
"data-slot": "dialog-overlay",
|
|
2647
|
+
className: cn(
|
|
2648
|
+
"data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 bg-black/50 fixed inset-0 z-50",
|
|
2649
|
+
className
|
|
2650
|
+
),
|
|
2651
|
+
...props
|
|
2652
|
+
}
|
|
2653
|
+
);
|
|
2654
|
+
}
|
|
2655
|
+
function DialogContent({
|
|
2656
|
+
className,
|
|
2657
|
+
children,
|
|
2658
|
+
...props
|
|
2659
|
+
}) {
|
|
2660
|
+
return /* @__PURE__ */ jsxs(DialogPortal, { children: [
|
|
2661
|
+
/* @__PURE__ */ jsx(DialogOverlay, {}),
|
|
2662
|
+
/* @__PURE__ */ jsxs(
|
|
2663
|
+
Dialog$1.Content,
|
|
2664
|
+
{
|
|
2665
|
+
"data-slot": "dialog-content",
|
|
2666
|
+
className: cn(
|
|
2667
|
+
"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 bg-background fixed top-1/2 left-1/2 z-50 grid w-full max-w-lg -translate-x-1/2 -translate-y-1/2 gap-4 rounded-xl border p-6 shadow-lg duration-200",
|
|
2668
|
+
className
|
|
2669
|
+
),
|
|
2670
|
+
...props,
|
|
2671
|
+
children: [
|
|
2672
|
+
children,
|
|
2673
|
+
/* @__PURE__ */ jsxs(
|
|
2674
|
+
Dialog$1.Close,
|
|
2675
|
+
{
|
|
2676
|
+
"data-slot": "dialog-close-button",
|
|
2677
|
+
className: "ring-offset-background focus:ring-ring data-[state=open]:bg-accent data-[state=open]:text-muted-foreground absolute top-4 right-4 rounded-sm opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-none disabled:pointer-events-none",
|
|
2678
|
+
children: [
|
|
2679
|
+
/* @__PURE__ */ jsx(XIcon, { className: "size-4" }),
|
|
2680
|
+
/* @__PURE__ */ jsx("span", { className: "sr-only", children: "Close" })
|
|
2681
|
+
]
|
|
2682
|
+
}
|
|
2683
|
+
)
|
|
2684
|
+
]
|
|
2685
|
+
}
|
|
2686
|
+
)
|
|
2687
|
+
] });
|
|
2688
|
+
}
|
|
2689
|
+
function DialogHeader({
|
|
2690
|
+
className,
|
|
2691
|
+
...props
|
|
2692
|
+
}) {
|
|
2693
|
+
return /* @__PURE__ */ jsx(
|
|
2694
|
+
"div",
|
|
2695
|
+
{
|
|
2696
|
+
"data-slot": "dialog-header",
|
|
2697
|
+
className: cn("flex flex-col gap-1.5 text-center sm:text-left", className),
|
|
2698
|
+
...props
|
|
2699
|
+
}
|
|
2700
|
+
);
|
|
2701
|
+
}
|
|
2702
|
+
function DialogFooter({
|
|
2703
|
+
className,
|
|
2704
|
+
...props
|
|
2705
|
+
}) {
|
|
2706
|
+
return /* @__PURE__ */ jsx(
|
|
2707
|
+
"div",
|
|
2708
|
+
{
|
|
2709
|
+
"data-slot": "dialog-footer",
|
|
2710
|
+
className: cn(
|
|
2711
|
+
"flex flex-col-reverse gap-2 sm:flex-row sm:justify-end",
|
|
2712
|
+
className
|
|
2713
|
+
),
|
|
2714
|
+
...props
|
|
2715
|
+
}
|
|
2716
|
+
);
|
|
2717
|
+
}
|
|
2718
|
+
function DialogTitle({
|
|
2719
|
+
className,
|
|
2720
|
+
...props
|
|
2721
|
+
}) {
|
|
2722
|
+
return /* @__PURE__ */ jsx(
|
|
2723
|
+
Dialog$1.Title,
|
|
2724
|
+
{
|
|
2725
|
+
"data-slot": "dialog-title",
|
|
2726
|
+
className: cn("text-lg font-semibold leading-none tracking-tight", className),
|
|
2727
|
+
...props
|
|
2728
|
+
}
|
|
2729
|
+
);
|
|
2730
|
+
}
|
|
2731
|
+
function DialogDescription({
|
|
2732
|
+
className,
|
|
2733
|
+
...props
|
|
2734
|
+
}) {
|
|
2735
|
+
return /* @__PURE__ */ jsx(
|
|
2736
|
+
Dialog$1.Description,
|
|
2737
|
+
{
|
|
2738
|
+
"data-slot": "dialog-description",
|
|
2739
|
+
className: cn("text-muted-foreground text-sm", className),
|
|
2740
|
+
...props
|
|
2741
|
+
}
|
|
2742
|
+
);
|
|
2743
|
+
}
|
|
2744
|
+
function Command({
|
|
2745
|
+
className,
|
|
2746
|
+
...props
|
|
2747
|
+
}) {
|
|
2748
|
+
return /* @__PURE__ */ jsx(
|
|
2749
|
+
Command$1,
|
|
2750
|
+
{
|
|
2751
|
+
"data-slot": "command",
|
|
2752
|
+
className: cn(
|
|
2753
|
+
"flex h-full w-full flex-col overflow-hidden rounded-md bg-popover text-popover-foreground",
|
|
2754
|
+
className
|
|
2755
|
+
),
|
|
2756
|
+
...props
|
|
2757
|
+
}
|
|
2758
|
+
);
|
|
2759
|
+
}
|
|
2760
|
+
function CommandDialog({
|
|
2761
|
+
children,
|
|
2762
|
+
...props
|
|
2763
|
+
}) {
|
|
2764
|
+
return /* @__PURE__ */ jsx(Dialog, { ...props, children: /* @__PURE__ */ jsxs(DialogContent, { className: "overflow-hidden p-0", children: [
|
|
2765
|
+
/* @__PURE__ */ jsx(DialogTitle, { className: "sr-only", children: "Command" }),
|
|
2766
|
+
/* @__PURE__ */ jsx(Command, { className: "[&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground [&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0 [&_[cmdk-group]]:px-2 [&_[cmdk-input-wrapper]_svg]:h-5 [&_[cmdk-input-wrapper]_svg]:w-5 [&_[cmdk-input]]:h-12 [&_[cmdk-item]]:px-2 [&_[cmdk-item]]:py-3 [&_[cmdk-item]_svg]:h-5 [&_[cmdk-item]_svg]:w-5", children })
|
|
2767
|
+
] }) });
|
|
2768
|
+
}
|
|
2769
|
+
function CommandInput({
|
|
2770
|
+
className,
|
|
2771
|
+
...props
|
|
2772
|
+
}) {
|
|
2773
|
+
return /* @__PURE__ */ jsxs("div", { className: "flex items-center border-b px-3", "cmdk-input-wrapper": "", children: [
|
|
2774
|
+
/* @__PURE__ */ jsx(Search, { className: "mr-2 h-4 w-4 shrink-0 opacity-50" }),
|
|
2775
|
+
/* @__PURE__ */ jsx(
|
|
2776
|
+
Command$1.Input,
|
|
2777
|
+
{
|
|
2778
|
+
"data-slot": "command-input",
|
|
2779
|
+
className: cn(
|
|
2780
|
+
"flex h-10 w-full rounded-md bg-transparent py-3 text-sm outline-none placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50",
|
|
2781
|
+
className
|
|
2782
|
+
),
|
|
2783
|
+
...props
|
|
2784
|
+
}
|
|
2785
|
+
)
|
|
2786
|
+
] });
|
|
2787
|
+
}
|
|
2788
|
+
function CommandList({
|
|
2789
|
+
className,
|
|
2790
|
+
...props
|
|
2791
|
+
}) {
|
|
2792
|
+
return /* @__PURE__ */ jsx(
|
|
2793
|
+
Command$1.List,
|
|
2794
|
+
{
|
|
2795
|
+
"data-slot": "command-list",
|
|
2796
|
+
className: cn("max-h-[300px] overflow-y-auto overflow-x-hidden", className),
|
|
2797
|
+
...props
|
|
2798
|
+
}
|
|
2799
|
+
);
|
|
2800
|
+
}
|
|
2801
|
+
function CommandEmpty({
|
|
2802
|
+
...props
|
|
2803
|
+
}) {
|
|
2804
|
+
return /* @__PURE__ */ jsx(
|
|
2805
|
+
Command$1.Empty,
|
|
2806
|
+
{
|
|
2807
|
+
"data-slot": "command-empty",
|
|
2808
|
+
className: "py-6 text-center text-sm",
|
|
2809
|
+
...props
|
|
2810
|
+
}
|
|
2811
|
+
);
|
|
2812
|
+
}
|
|
2813
|
+
function CommandGroup({
|
|
2814
|
+
className,
|
|
2815
|
+
...props
|
|
2816
|
+
}) {
|
|
2817
|
+
return /* @__PURE__ */ jsx(
|
|
2818
|
+
Command$1.Group,
|
|
2819
|
+
{
|
|
2820
|
+
"data-slot": "command-group",
|
|
2821
|
+
className: cn(
|
|
2822
|
+
"overflow-hidden p-1 text-foreground [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground",
|
|
2823
|
+
className
|
|
2824
|
+
),
|
|
2825
|
+
...props
|
|
709
2826
|
}
|
|
710
2827
|
);
|
|
711
2828
|
}
|
|
712
|
-
function
|
|
713
|
-
|
|
714
|
-
}) {
|
|
715
|
-
return /* @__PURE__ */ jsx(AlertDialog$1.Root, { "data-slot": "alert-dialog", ...props });
|
|
716
|
-
}
|
|
717
|
-
function AlertDialogTrigger({
|
|
2829
|
+
function CommandSeparator({
|
|
2830
|
+
className,
|
|
718
2831
|
...props
|
|
719
2832
|
}) {
|
|
720
|
-
return /* @__PURE__ */ jsx(
|
|
2833
|
+
return /* @__PURE__ */ jsx(
|
|
2834
|
+
Command$1.Separator,
|
|
2835
|
+
{
|
|
2836
|
+
"data-slot": "command-separator",
|
|
2837
|
+
className: cn("-mx-1 h-px bg-border", className),
|
|
2838
|
+
...props
|
|
2839
|
+
}
|
|
2840
|
+
);
|
|
721
2841
|
}
|
|
722
|
-
function
|
|
2842
|
+
function CommandItem({
|
|
2843
|
+
className,
|
|
723
2844
|
...props
|
|
724
2845
|
}) {
|
|
725
|
-
return /* @__PURE__ */ jsx(
|
|
2846
|
+
return /* @__PURE__ */ jsx(
|
|
2847
|
+
Command$1.Item,
|
|
2848
|
+
{
|
|
2849
|
+
"data-slot": "command-item",
|
|
2850
|
+
className: cn(
|
|
2851
|
+
"relative flex cursor-default gap-2 select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none data-[disabled=true]:pointer-events-none data-[selected=true]:bg-accent data-[selected=true]:text-accent-foreground data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",
|
|
2852
|
+
className
|
|
2853
|
+
),
|
|
2854
|
+
...props
|
|
2855
|
+
}
|
|
2856
|
+
);
|
|
726
2857
|
}
|
|
727
|
-
function
|
|
2858
|
+
function CommandShortcut({
|
|
728
2859
|
className,
|
|
729
2860
|
...props
|
|
730
2861
|
}) {
|
|
731
2862
|
return /* @__PURE__ */ jsx(
|
|
732
|
-
|
|
2863
|
+
"span",
|
|
733
2864
|
{
|
|
734
|
-
"data-slot": "
|
|
735
|
-
className: cn(
|
|
2865
|
+
"data-slot": "command-shortcut",
|
|
2866
|
+
className: cn(
|
|
2867
|
+
"ml-auto text-xs tracking-widest text-muted-foreground",
|
|
2868
|
+
className
|
|
2869
|
+
),
|
|
736
2870
|
...props
|
|
737
2871
|
}
|
|
738
2872
|
);
|
|
739
2873
|
}
|
|
740
|
-
|
|
2874
|
+
var ContextMenu = ContextMenu$1.Root;
|
|
2875
|
+
var ContextMenuTrigger = ContextMenu$1.Trigger;
|
|
2876
|
+
var ContextMenuGroup = ContextMenu$1.Group;
|
|
2877
|
+
var ContextMenuPortal = ContextMenu$1.Portal;
|
|
2878
|
+
var ContextMenuSub = ContextMenu$1.Sub;
|
|
2879
|
+
var ContextMenuRadioGroup = ContextMenu$1.RadioGroup;
|
|
2880
|
+
function ContextMenuSubTrigger({
|
|
741
2881
|
className,
|
|
742
|
-
|
|
2882
|
+
inset,
|
|
2883
|
+
children,
|
|
743
2884
|
...props
|
|
744
2885
|
}) {
|
|
745
|
-
return /* @__PURE__ */ jsxs(
|
|
746
|
-
|
|
747
|
-
|
|
748
|
-
|
|
749
|
-
|
|
750
|
-
"data-
|
|
751
|
-
"
|
|
752
|
-
className
|
|
753
|
-
|
|
754
|
-
|
|
755
|
-
|
|
756
|
-
|
|
757
|
-
|
|
758
|
-
|
|
759
|
-
|
|
2886
|
+
return /* @__PURE__ */ jsxs(
|
|
2887
|
+
ContextMenu$1.SubTrigger,
|
|
2888
|
+
{
|
|
2889
|
+
"data-slot": "context-menu-sub-trigger",
|
|
2890
|
+
className: cn(
|
|
2891
|
+
"flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground",
|
|
2892
|
+
inset && "pl-8",
|
|
2893
|
+
className
|
|
2894
|
+
),
|
|
2895
|
+
...props,
|
|
2896
|
+
children: [
|
|
2897
|
+
children,
|
|
2898
|
+
/* @__PURE__ */ jsx(ChevronRight, { className: "ml-auto h-4 w-4" })
|
|
2899
|
+
]
|
|
2900
|
+
}
|
|
2901
|
+
);
|
|
760
2902
|
}
|
|
761
|
-
function
|
|
2903
|
+
function ContextMenuSubContent({
|
|
762
2904
|
className,
|
|
763
2905
|
...props
|
|
764
2906
|
}) {
|
|
765
2907
|
return /* @__PURE__ */ jsx(
|
|
766
|
-
|
|
2908
|
+
ContextMenu$1.SubContent,
|
|
767
2909
|
{
|
|
768
|
-
"data-slot": "
|
|
769
|
-
className: cn(
|
|
2910
|
+
"data-slot": "context-menu-sub-content",
|
|
2911
|
+
className: cn(
|
|
2912
|
+
"z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-lg",
|
|
2913
|
+
"data-[state=open]:animate-in data-[state=closed]:animate-out",
|
|
2914
|
+
"data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",
|
|
2915
|
+
"data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95",
|
|
2916
|
+
"data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2",
|
|
2917
|
+
"data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",
|
|
2918
|
+
className
|
|
2919
|
+
),
|
|
770
2920
|
...props
|
|
771
2921
|
}
|
|
772
2922
|
);
|
|
773
2923
|
}
|
|
774
|
-
function
|
|
2924
|
+
function ContextMenuContent({
|
|
775
2925
|
className,
|
|
776
2926
|
...props
|
|
777
2927
|
}) {
|
|
778
|
-
return /* @__PURE__ */ jsx(
|
|
779
|
-
|
|
2928
|
+
return /* @__PURE__ */ jsx(ContextMenu$1.Portal, { children: /* @__PURE__ */ jsx(
|
|
2929
|
+
ContextMenu$1.Content,
|
|
780
2930
|
{
|
|
781
|
-
"data-slot": "
|
|
2931
|
+
"data-slot": "context-menu-content",
|
|
782
2932
|
className: cn(
|
|
783
|
-
"
|
|
2933
|
+
"z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md",
|
|
2934
|
+
"data-[state=open]:animate-in data-[state=closed]:animate-out",
|
|
2935
|
+
"data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",
|
|
2936
|
+
"data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95",
|
|
2937
|
+
"data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2",
|
|
2938
|
+
"data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",
|
|
784
2939
|
className
|
|
785
2940
|
),
|
|
786
2941
|
...props
|
|
787
2942
|
}
|
|
788
|
-
);
|
|
2943
|
+
) });
|
|
789
2944
|
}
|
|
790
|
-
function
|
|
2945
|
+
function ContextMenuItem({
|
|
791
2946
|
className,
|
|
2947
|
+
inset,
|
|
792
2948
|
...props
|
|
793
2949
|
}) {
|
|
794
2950
|
return /* @__PURE__ */ jsx(
|
|
795
|
-
|
|
2951
|
+
ContextMenu$1.Item,
|
|
796
2952
|
{
|
|
797
|
-
"data-slot": "
|
|
798
|
-
className: cn(
|
|
2953
|
+
"data-slot": "context-menu-item",
|
|
2954
|
+
className: cn(
|
|
2955
|
+
"relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
|
|
2956
|
+
inset && "pl-8",
|
|
2957
|
+
className
|
|
2958
|
+
),
|
|
799
2959
|
...props
|
|
800
2960
|
}
|
|
801
2961
|
);
|
|
802
2962
|
}
|
|
803
|
-
function
|
|
2963
|
+
function ContextMenuCheckboxItem({
|
|
804
2964
|
className,
|
|
2965
|
+
children,
|
|
2966
|
+
checked,
|
|
805
2967
|
...props
|
|
806
2968
|
}) {
|
|
807
|
-
return /* @__PURE__ */
|
|
808
|
-
|
|
2969
|
+
return /* @__PURE__ */ jsxs(
|
|
2970
|
+
ContextMenu$1.CheckboxItem,
|
|
809
2971
|
{
|
|
810
|
-
"data-slot": "
|
|
811
|
-
className: cn(
|
|
812
|
-
|
|
2972
|
+
"data-slot": "context-menu-checkbox-item",
|
|
2973
|
+
className: cn(
|
|
2974
|
+
"relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
|
|
2975
|
+
className
|
|
2976
|
+
),
|
|
2977
|
+
checked,
|
|
2978
|
+
...props,
|
|
2979
|
+
children: [
|
|
2980
|
+
/* @__PURE__ */ jsx("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsx(ContextMenu$1.ItemIndicator, { children: /* @__PURE__ */ jsx(Check, { className: "h-4 w-4" }) }) }),
|
|
2981
|
+
children
|
|
2982
|
+
]
|
|
813
2983
|
}
|
|
814
2984
|
);
|
|
815
2985
|
}
|
|
816
|
-
function
|
|
2986
|
+
function ContextMenuRadioItem({
|
|
2987
|
+
className,
|
|
2988
|
+
children,
|
|
2989
|
+
...props
|
|
2990
|
+
}) {
|
|
2991
|
+
return /* @__PURE__ */ jsxs(
|
|
2992
|
+
ContextMenu$1.RadioItem,
|
|
2993
|
+
{
|
|
2994
|
+
"data-slot": "context-menu-radio-item",
|
|
2995
|
+
className: cn(
|
|
2996
|
+
"relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
|
|
2997
|
+
className
|
|
2998
|
+
),
|
|
2999
|
+
...props,
|
|
3000
|
+
children: [
|
|
3001
|
+
/* @__PURE__ */ jsx("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsx(ContextMenu$1.ItemIndicator, { children: /* @__PURE__ */ jsx(Circle, { className: "h-4 w-4 fill-current" }) }) }),
|
|
3002
|
+
children
|
|
3003
|
+
]
|
|
3004
|
+
}
|
|
3005
|
+
);
|
|
3006
|
+
}
|
|
3007
|
+
function ContextMenuLabel({
|
|
817
3008
|
className,
|
|
3009
|
+
inset,
|
|
818
3010
|
...props
|
|
819
3011
|
}) {
|
|
820
3012
|
return /* @__PURE__ */ jsx(
|
|
821
|
-
|
|
3013
|
+
ContextMenu$1.Label,
|
|
822
3014
|
{
|
|
823
|
-
"data-slot": "
|
|
824
|
-
className: cn(
|
|
3015
|
+
"data-slot": "context-menu-label",
|
|
3016
|
+
className: cn(
|
|
3017
|
+
"px-2 py-1.5 text-sm font-semibold text-foreground",
|
|
3018
|
+
inset && "pl-8",
|
|
3019
|
+
className
|
|
3020
|
+
),
|
|
825
3021
|
...props
|
|
826
3022
|
}
|
|
827
3023
|
);
|
|
828
3024
|
}
|
|
829
|
-
function
|
|
3025
|
+
function ContextMenuSeparator({
|
|
830
3026
|
className,
|
|
831
|
-
variant = "default",
|
|
832
|
-
size = "default",
|
|
833
3027
|
...props
|
|
834
3028
|
}) {
|
|
835
|
-
return /* @__PURE__ */ jsx(
|
|
836
|
-
|
|
3029
|
+
return /* @__PURE__ */ jsx(
|
|
3030
|
+
ContextMenu$1.Separator,
|
|
837
3031
|
{
|
|
838
|
-
"data-slot": "
|
|
839
|
-
className: cn(className),
|
|
3032
|
+
"data-slot": "context-menu-separator",
|
|
3033
|
+
className: cn("-mx-1 my-1 h-px bg-border", className),
|
|
840
3034
|
...props
|
|
841
3035
|
}
|
|
842
|
-
)
|
|
3036
|
+
);
|
|
843
3037
|
}
|
|
844
|
-
function
|
|
3038
|
+
function ContextMenuShortcut({
|
|
845
3039
|
className,
|
|
846
|
-
variant = "outline",
|
|
847
|
-
size = "default",
|
|
848
3040
|
...props
|
|
849
3041
|
}) {
|
|
850
|
-
return /* @__PURE__ */ jsx(
|
|
851
|
-
|
|
3042
|
+
return /* @__PURE__ */ jsx(
|
|
3043
|
+
"span",
|
|
852
3044
|
{
|
|
853
|
-
"data-slot": "
|
|
854
|
-
className: cn(
|
|
3045
|
+
"data-slot": "context-menu-shortcut",
|
|
3046
|
+
className: cn(
|
|
3047
|
+
"ml-auto text-xs tracking-widest text-muted-foreground",
|
|
3048
|
+
className
|
|
3049
|
+
),
|
|
855
3050
|
...props
|
|
856
3051
|
}
|
|
857
|
-
)
|
|
3052
|
+
);
|
|
858
3053
|
}
|
|
859
3054
|
function DropdownMenu({
|
|
860
3055
|
...props
|
|
@@ -1076,7 +3271,195 @@ function DropdownMenuSubContent({
|
|
|
1076
3271
|
}
|
|
1077
3272
|
);
|
|
1078
3273
|
}
|
|
3274
|
+
var HoverCard = HoverCard$1.Root;
|
|
3275
|
+
var HoverCardTrigger = HoverCard$1.Trigger;
|
|
3276
|
+
function HoverCardContent({
|
|
3277
|
+
className,
|
|
3278
|
+
align = "center",
|
|
3279
|
+
sideOffset = 4,
|
|
3280
|
+
...props
|
|
3281
|
+
}) {
|
|
3282
|
+
return /* @__PURE__ */ jsx(HoverCard$1.Portal, { children: /* @__PURE__ */ jsx(
|
|
3283
|
+
HoverCard$1.Content,
|
|
3284
|
+
{
|
|
3285
|
+
"data-slot": "hover-card-content",
|
|
3286
|
+
align,
|
|
3287
|
+
sideOffset,
|
|
3288
|
+
className: cn(
|
|
3289
|
+
"z-50 w-64 rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-none",
|
|
3290
|
+
"data-[state=open]:animate-in data-[state=closed]:animate-out",
|
|
3291
|
+
"data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",
|
|
3292
|
+
"data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95",
|
|
3293
|
+
"data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2",
|
|
3294
|
+
"data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",
|
|
3295
|
+
className
|
|
3296
|
+
),
|
|
3297
|
+
...props
|
|
3298
|
+
}
|
|
3299
|
+
) });
|
|
3300
|
+
}
|
|
3301
|
+
var ToastContext = React2.createContext(null);
|
|
3302
|
+
var toastVariants = cva(
|
|
3303
|
+
"group pointer-events-auto relative flex w-full items-center justify-between gap-4 overflow-hidden rounded-lg border p-4 shadow-lg transition-all data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-80 data-[state=closed]:slide-out-to-right-full data-[state=open]:slide-in-from-top-full",
|
|
3304
|
+
{
|
|
3305
|
+
variants: {
|
|
3306
|
+
variant: {
|
|
3307
|
+
default: "bg-card text-card-foreground border border-input shadow-md ring-1 ring-border/50",
|
|
3308
|
+
destructive: "bg-destructive/10 border-destructive/50 text-destructive",
|
|
3309
|
+
success: "bg-green-50 border-green-200 text-green-800 dark:bg-green-950/50 dark:border-green-800 dark:text-green-200"
|
|
3310
|
+
}
|
|
3311
|
+
},
|
|
3312
|
+
defaultVariants: {
|
|
3313
|
+
variant: "default"
|
|
3314
|
+
}
|
|
3315
|
+
}
|
|
3316
|
+
);
|
|
3317
|
+
function ToastProvider({
|
|
3318
|
+
children
|
|
3319
|
+
}) {
|
|
3320
|
+
const [toasts, setToasts] = React2.useState([]);
|
|
3321
|
+
const addToast = React2.useCallback((toast) => {
|
|
3322
|
+
const id = Math.random().toString(36).substring(2, 9);
|
|
3323
|
+
setToasts((prev) => [...prev, { ...toast, id }]);
|
|
3324
|
+
const duration = toast.duration ?? 5e3;
|
|
3325
|
+
if (duration > 0) {
|
|
3326
|
+
setTimeout(() => {
|
|
3327
|
+
setToasts((prev) => prev.filter((t) => t.id !== id));
|
|
3328
|
+
}, duration);
|
|
3329
|
+
}
|
|
3330
|
+
}, []);
|
|
3331
|
+
const removeToast = React2.useCallback((id) => {
|
|
3332
|
+
setToasts((prev) => prev.filter((t) => t.id !== id));
|
|
3333
|
+
}, []);
|
|
3334
|
+
return /* @__PURE__ */ jsxs(ToastContext.Provider, { value: { toasts, addToast, removeToast }, children: [
|
|
3335
|
+
children,
|
|
3336
|
+
/* @__PURE__ */ jsx(ToastViewport, { children: toasts.map((toast) => /* @__PURE__ */ jsx(Toast, { ...toast, onClose: () => removeToast(toast.id) }, toast.id)) })
|
|
3337
|
+
] });
|
|
3338
|
+
}
|
|
3339
|
+
function useToast() {
|
|
3340
|
+
const context = React2.useContext(ToastContext);
|
|
3341
|
+
if (!context) {
|
|
3342
|
+
throw new Error("useToast must be used within a ToastProvider");
|
|
3343
|
+
}
|
|
3344
|
+
return context;
|
|
3345
|
+
}
|
|
3346
|
+
function ToastViewport({
|
|
3347
|
+
className,
|
|
3348
|
+
...props
|
|
3349
|
+
}) {
|
|
3350
|
+
return /* @__PURE__ */ jsx(
|
|
3351
|
+
"div",
|
|
3352
|
+
{
|
|
3353
|
+
"data-slot": "toast-viewport",
|
|
3354
|
+
className: cn(
|
|
3355
|
+
"fixed top-0 right-0 z-[100] flex max-h-screen w-full flex-col-reverse gap-2 p-4 sm:top-auto sm:bottom-0 sm:flex-col md:max-w-[420px]",
|
|
3356
|
+
className
|
|
3357
|
+
),
|
|
3358
|
+
...props
|
|
3359
|
+
}
|
|
3360
|
+
);
|
|
3361
|
+
}
|
|
3362
|
+
function Toast({
|
|
3363
|
+
className,
|
|
3364
|
+
variant,
|
|
3365
|
+
title,
|
|
3366
|
+
description,
|
|
3367
|
+
onClose,
|
|
3368
|
+
...props
|
|
3369
|
+
}) {
|
|
3370
|
+
return /* @__PURE__ */ jsxs(
|
|
3371
|
+
"div",
|
|
3372
|
+
{
|
|
3373
|
+
"data-slot": "toast",
|
|
3374
|
+
"data-state": "open",
|
|
3375
|
+
className: cn(toastVariants({ variant }), className),
|
|
3376
|
+
...props,
|
|
3377
|
+
children: [
|
|
3378
|
+
/* @__PURE__ */ jsxs("div", { className: "grid gap-1", children: [
|
|
3379
|
+
title && /* @__PURE__ */ jsx("div", { "data-slot": "toast-title", className: "text-sm font-semibold", children: title }),
|
|
3380
|
+
description && /* @__PURE__ */ jsx("div", { "data-slot": "toast-description", className: "text-sm opacity-90", children: description })
|
|
3381
|
+
] }),
|
|
3382
|
+
onClose && /* @__PURE__ */ jsx(
|
|
3383
|
+
"button",
|
|
3384
|
+
{
|
|
3385
|
+
"data-slot": "toast-close",
|
|
3386
|
+
onClick: onClose,
|
|
3387
|
+
className: "absolute top-2 right-2 rounded-md p-1 opacity-0 transition-opacity group-hover:opacity-100 focus:opacity-100 focus:ring-2 focus:outline-none",
|
|
3388
|
+
children: /* @__PURE__ */ jsx(XIcon, { className: "size-4" })
|
|
3389
|
+
}
|
|
3390
|
+
)
|
|
3391
|
+
]
|
|
3392
|
+
}
|
|
3393
|
+
);
|
|
3394
|
+
}
|
|
3395
|
+
function ToastTitle({
|
|
3396
|
+
className,
|
|
3397
|
+
...props
|
|
3398
|
+
}) {
|
|
3399
|
+
return /* @__PURE__ */ jsx(
|
|
3400
|
+
"div",
|
|
3401
|
+
{
|
|
3402
|
+
"data-slot": "toast-title",
|
|
3403
|
+
className: cn("text-sm font-semibold", className),
|
|
3404
|
+
...props
|
|
3405
|
+
}
|
|
3406
|
+
);
|
|
3407
|
+
}
|
|
3408
|
+
function ToastDescription({
|
|
3409
|
+
className,
|
|
3410
|
+
...props
|
|
3411
|
+
}) {
|
|
3412
|
+
return /* @__PURE__ */ jsx(
|
|
3413
|
+
"div",
|
|
3414
|
+
{
|
|
3415
|
+
"data-slot": "toast-description",
|
|
3416
|
+
className: cn("text-sm opacity-90", className),
|
|
3417
|
+
...props
|
|
3418
|
+
}
|
|
3419
|
+
);
|
|
3420
|
+
}
|
|
3421
|
+
function TooltipProvider({
|
|
3422
|
+
delayDuration = 0,
|
|
3423
|
+
...props
|
|
3424
|
+
}) {
|
|
3425
|
+
return /* @__PURE__ */ jsx(
|
|
3426
|
+
Tooltip$1.Provider,
|
|
3427
|
+
{
|
|
3428
|
+
"data-slot": "tooltip-provider",
|
|
3429
|
+
delayDuration,
|
|
3430
|
+
...props
|
|
3431
|
+
}
|
|
3432
|
+
);
|
|
3433
|
+
}
|
|
3434
|
+
function Tooltip({
|
|
3435
|
+
...props
|
|
3436
|
+
}) {
|
|
3437
|
+
return /* @__PURE__ */ jsx(Tooltip$1.Root, { "data-slot": "tooltip", ...props });
|
|
3438
|
+
}
|
|
3439
|
+
function TooltipTrigger({
|
|
3440
|
+
...props
|
|
3441
|
+
}) {
|
|
3442
|
+
return /* @__PURE__ */ jsx(Tooltip$1.Trigger, { "data-slot": "tooltip-trigger", ...props });
|
|
3443
|
+
}
|
|
3444
|
+
function TooltipContent({
|
|
3445
|
+
className,
|
|
3446
|
+
sideOffset = 4,
|
|
3447
|
+
...props
|
|
3448
|
+
}) {
|
|
3449
|
+
return /* @__PURE__ */ jsx(Tooltip$1.Portal, { children: /* @__PURE__ */ jsx(
|
|
3450
|
+
Tooltip$1.Content,
|
|
3451
|
+
{
|
|
3452
|
+
"data-slot": "tooltip-content",
|
|
3453
|
+
sideOffset,
|
|
3454
|
+
className: cn(
|
|
3455
|
+
"bg-primary text-primary-foreground data-[state=delayed-open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=delayed-open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=delayed-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-w-xs rounded-md px-3 py-1.5 text-sm text-balance",
|
|
3456
|
+
className
|
|
3457
|
+
),
|
|
3458
|
+
...props
|
|
3459
|
+
}
|
|
3460
|
+
) });
|
|
3461
|
+
}
|
|
1079
3462
|
|
|
1080
|
-
export { AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogMedia, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, Badge, Button, Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, Field, FieldContent, FieldDescription, FieldError, FieldGroup, FieldLabel, FieldLegend, FieldSeparator, FieldSet, FieldTitle, Input, InputGroup, InputGroupAddon, InputGroupButton, InputGroupInput, InputGroupText, InputGroupTextarea, Label, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Separator, Textarea, badgeVariants, buttonVariants, cn };
|
|
3463
|
+
export { Accordion, AccordionContent, AccordionItem, AccordionTrigger, Alert, AlertDescription, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogMedia, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, AlertTitle, AspectRatio, Avatar, AvatarFallback, AvatarImage, Badge, Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, Button, Calendar, Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Checkbox, Collapsible, CollapsibleContent, CollapsibleTrigger, Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut, Container, ContextMenu, ContextMenuCheckboxItem, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuLabel, ContextMenuPortal, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuSeparator, ContextMenuShortcut, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger, DatePicker, DateRangePicker, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, Field, FieldContent, FieldDescription, FieldError, FieldGroup, FieldLabel, FieldLegend, FieldSeparator, FieldSet, FieldTitle, Grid, GridItem, HStack, HoverCard, HoverCardContent, HoverCardTrigger, Input, InputGroup, InputGroupAddon, InputGroupButton, InputGroupInput, InputGroupText, InputGroupTextarea, Label, NavigationMenu, NavigationMenuContent, NavigationMenuIndicator, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuTrigger, NavigationMenuViewport, Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious, Popover, PopoverAnchor, PopoverClose, PopoverContent, PopoverTrigger, Progress, RadioGroup, RadioGroupItem, ScrollArea, ScrollBar, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Separator, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetOverlay, SheetPortal, SheetTitle, SheetTrigger, Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarMenu, SidebarMenuButton, SidebarMenuItem, SidebarProvider, SidebarTrigger, Skeleton, Slider, Spinner, Stack, Switch, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tabs, TabsContent, TabsList, TabsTrigger, Textarea, Toast, ToastDescription, ToastProvider, ToastTitle, ToastViewport, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, VStack, alertVariants, badgeVariants, buttonVariants, cn, containerVariants, gridItemVariants, gridVariants, navigationMenuTriggerStyle, sheetVariants, sidebarMenuButtonVariants, spinnerVariants, stackVariants, toastVariants, useSidebar, useToast };
|
|
1081
3464
|
//# sourceMappingURL=index.js.map
|
|
1082
3465
|
//# sourceMappingURL=index.js.map
|