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