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