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