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