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