crm-project-ui 0.1.8 → 0.1.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +2775 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.css +236 -0
- package/dist/index.css.map +1 -0
- package/dist/index.d.cts +503 -0
- package/dist/index.d.ts +503 -0
- package/dist/index.js +2775 -0
- package/dist/index.js.map +1 -0
- package/package.json +1 -2
package/dist/index.js
ADDED
|
@@ -0,0 +1,2775 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
// src/components/ui/accordion/index.tsx
|
|
4
|
+
import { ChevronDown } from "lucide-react";
|
|
5
|
+
import * as React from "react";
|
|
6
|
+
|
|
7
|
+
// src/lib/utils.ts
|
|
8
|
+
import { clsx } from "clsx";
|
|
9
|
+
import { twMerge } from "tailwind-merge";
|
|
10
|
+
function cn(...inputs) {
|
|
11
|
+
return twMerge(clsx(inputs));
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
// src/components/ui/accordion/index.tsx
|
|
15
|
+
import * as AccordionPrimitive from "@radix-ui/react-accordion";
|
|
16
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
17
|
+
var Accordion = AccordionPrimitive.Root;
|
|
18
|
+
var AccordionItem = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
19
|
+
AccordionPrimitive.Item,
|
|
20
|
+
{
|
|
21
|
+
className: cn("border-b", className),
|
|
22
|
+
ref,
|
|
23
|
+
...props
|
|
24
|
+
}
|
|
25
|
+
));
|
|
26
|
+
AccordionItem.displayName = "AccordionItem";
|
|
27
|
+
var AccordionTrigger = React.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsx(AccordionPrimitive.Header, { className: "flex", children: /* @__PURE__ */ jsxs(
|
|
28
|
+
AccordionPrimitive.Trigger,
|
|
29
|
+
{
|
|
30
|
+
className: cn(
|
|
31
|
+
"flex flex-1 items-center justify-between py-4 text-left text-sm font-medium transition-all hover:underline [&[data-state=open]>svg]:rotate-180",
|
|
32
|
+
className
|
|
33
|
+
),
|
|
34
|
+
ref,
|
|
35
|
+
...props,
|
|
36
|
+
children: [
|
|
37
|
+
children,
|
|
38
|
+
/* @__PURE__ */ jsx(ChevronDown, { className: "text-muted-foreground h-4 w-4 shrink-0 transition-transform duration-200" })
|
|
39
|
+
]
|
|
40
|
+
}
|
|
41
|
+
) }));
|
|
42
|
+
AccordionTrigger.displayName = AccordionPrimitive.Trigger.displayName;
|
|
43
|
+
var AccordionContent = React.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
44
|
+
AccordionPrimitive.Content,
|
|
45
|
+
{
|
|
46
|
+
className: "data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down overflow-hidden text-sm",
|
|
47
|
+
ref,
|
|
48
|
+
...props,
|
|
49
|
+
children: /* @__PURE__ */ jsx("div", { className: cn("pt-0 pb-4", className), children })
|
|
50
|
+
}
|
|
51
|
+
));
|
|
52
|
+
AccordionContent.displayName = AccordionPrimitive.Content.displayName;
|
|
53
|
+
|
|
54
|
+
// src/components/ui/alert/index.tsx
|
|
55
|
+
import { cva } from "class-variance-authority";
|
|
56
|
+
import * as React2 from "react";
|
|
57
|
+
import { jsx as jsx2 } from "react/jsx-runtime";
|
|
58
|
+
var alertVariants = cva(
|
|
59
|
+
"relative w-full rounded-lg border px-4 py-3 text-sm [&>svg+div]:translate-y-[-3px] [&>svg]:absolute [&>svg]:left-4 [&>svg]:top-4 [&>svg]:text-foreground [&>svg~*]:pl-7",
|
|
60
|
+
{
|
|
61
|
+
variants: {
|
|
62
|
+
variant: {
|
|
63
|
+
default: "bg-background text-foreground",
|
|
64
|
+
destructive: "border-destructive/50 text-destructive dark:border-destructive [&>svg]:text-destructive"
|
|
65
|
+
}
|
|
66
|
+
},
|
|
67
|
+
defaultVariants: {
|
|
68
|
+
variant: "default"
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
);
|
|
72
|
+
var Alert = React2.forwardRef(({ className, variant, ...props }, ref) => /* @__PURE__ */ jsx2(
|
|
73
|
+
"div",
|
|
74
|
+
{
|
|
75
|
+
className: cn(alertVariants({ variant }), className),
|
|
76
|
+
ref,
|
|
77
|
+
role: "alert",
|
|
78
|
+
...props
|
|
79
|
+
}
|
|
80
|
+
));
|
|
81
|
+
Alert.displayName = "Alert";
|
|
82
|
+
var AlertTitle = React2.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx2(
|
|
83
|
+
"h5",
|
|
84
|
+
{
|
|
85
|
+
className: cn("mb-1 leading-none font-medium tracking-tight", className),
|
|
86
|
+
ref,
|
|
87
|
+
...props
|
|
88
|
+
}
|
|
89
|
+
));
|
|
90
|
+
AlertTitle.displayName = "AlertTitle";
|
|
91
|
+
var AlertDescription = React2.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx2(
|
|
92
|
+
"div",
|
|
93
|
+
{
|
|
94
|
+
className: cn("text-sm [&_p]:leading-relaxed", className),
|
|
95
|
+
ref,
|
|
96
|
+
...props
|
|
97
|
+
}
|
|
98
|
+
));
|
|
99
|
+
AlertDescription.displayName = "AlertDescription";
|
|
100
|
+
|
|
101
|
+
// src/components/ui/alert-dialog/index.tsx
|
|
102
|
+
import * as React4 from "react";
|
|
103
|
+
|
|
104
|
+
// src/components/ui/button/index.tsx
|
|
105
|
+
import { cva as cva2 } from "class-variance-authority";
|
|
106
|
+
import * as React3 from "react";
|
|
107
|
+
import { Slot } from "@radix-ui/react-slot";
|
|
108
|
+
import { jsx as jsx3 } from "react/jsx-runtime";
|
|
109
|
+
var buttonVariants = cva2(
|
|
110
|
+
"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",
|
|
111
|
+
{
|
|
112
|
+
variants: {
|
|
113
|
+
variant: {
|
|
114
|
+
default: "bg-primary text-primary-foreground shadow hover:bg-primary/90",
|
|
115
|
+
destructive: "bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90",
|
|
116
|
+
outline: "border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground",
|
|
117
|
+
secondary: "bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80",
|
|
118
|
+
ghost: "hover:bg-accent hover:text-accent-foreground",
|
|
119
|
+
link: "text-primary underline-offset-4 hover:underline"
|
|
120
|
+
},
|
|
121
|
+
size: {
|
|
122
|
+
default: "h-9 px-4 py-2",
|
|
123
|
+
sm: "h-8 rounded-md px-3 text-xs",
|
|
124
|
+
lg: "h-10 rounded-md px-8",
|
|
125
|
+
icon: "h-9 w-9"
|
|
126
|
+
}
|
|
127
|
+
},
|
|
128
|
+
defaultVariants: {
|
|
129
|
+
variant: "default",
|
|
130
|
+
size: "default"
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
);
|
|
134
|
+
var Button = React3.forwardRef(
|
|
135
|
+
({ className, variant, size, asChild = false, ...props }, ref) => {
|
|
136
|
+
const Comp = asChild ? Slot : "button";
|
|
137
|
+
return /* @__PURE__ */ jsx3(
|
|
138
|
+
Comp,
|
|
139
|
+
{
|
|
140
|
+
className: cn(buttonVariants({ variant, size, className })),
|
|
141
|
+
ref,
|
|
142
|
+
...props
|
|
143
|
+
}
|
|
144
|
+
);
|
|
145
|
+
}
|
|
146
|
+
);
|
|
147
|
+
Button.displayName = "Button";
|
|
148
|
+
|
|
149
|
+
// src/components/ui/alert-dialog/index.tsx
|
|
150
|
+
import * as AlertDialogPrimitive from "@radix-ui/react-alert-dialog";
|
|
151
|
+
import { jsx as jsx4, jsxs as jsxs2 } from "react/jsx-runtime";
|
|
152
|
+
var AlertDialog = AlertDialogPrimitive.Root;
|
|
153
|
+
var AlertDialogTrigger = AlertDialogPrimitive.Trigger;
|
|
154
|
+
var AlertDialogPortal = AlertDialogPrimitive.Portal;
|
|
155
|
+
var AlertDialogOverlay = React4.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx4(
|
|
156
|
+
AlertDialogPrimitive.Overlay,
|
|
157
|
+
{
|
|
158
|
+
className: cn(
|
|
159
|
+
"data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/80",
|
|
160
|
+
className
|
|
161
|
+
),
|
|
162
|
+
...props,
|
|
163
|
+
ref
|
|
164
|
+
}
|
|
165
|
+
));
|
|
166
|
+
AlertDialogOverlay.displayName = AlertDialogPrimitive.Overlay.displayName;
|
|
167
|
+
var AlertDialogContent = React4.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxs2(AlertDialogPortal, { children: [
|
|
168
|
+
/* @__PURE__ */ jsx4(AlertDialogOverlay, {}),
|
|
169
|
+
/* @__PURE__ */ jsx4(
|
|
170
|
+
AlertDialogPrimitive.Content,
|
|
171
|
+
{
|
|
172
|
+
className: cn(
|
|
173
|
+
"bg-background data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] fixed top-[50%] left-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border p-6 shadow-lg duration-200 sm:rounded-lg",
|
|
174
|
+
className
|
|
175
|
+
),
|
|
176
|
+
ref,
|
|
177
|
+
...props
|
|
178
|
+
}
|
|
179
|
+
)
|
|
180
|
+
] }));
|
|
181
|
+
AlertDialogContent.displayName = AlertDialogPrimitive.Content.displayName;
|
|
182
|
+
var AlertDialogHeader = ({
|
|
183
|
+
className,
|
|
184
|
+
...props
|
|
185
|
+
}) => /* @__PURE__ */ jsx4(
|
|
186
|
+
"div",
|
|
187
|
+
{
|
|
188
|
+
className: cn(
|
|
189
|
+
"flex flex-col space-y-2 text-center sm:text-left",
|
|
190
|
+
className
|
|
191
|
+
),
|
|
192
|
+
...props
|
|
193
|
+
}
|
|
194
|
+
);
|
|
195
|
+
AlertDialogHeader.displayName = "AlertDialogHeader";
|
|
196
|
+
var AlertDialogFooter = ({
|
|
197
|
+
className,
|
|
198
|
+
...props
|
|
199
|
+
}) => /* @__PURE__ */ jsx4(
|
|
200
|
+
"div",
|
|
201
|
+
{
|
|
202
|
+
className: cn(
|
|
203
|
+
"flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",
|
|
204
|
+
className
|
|
205
|
+
),
|
|
206
|
+
...props
|
|
207
|
+
}
|
|
208
|
+
);
|
|
209
|
+
AlertDialogFooter.displayName = "AlertDialogFooter";
|
|
210
|
+
var AlertDialogTitle = React4.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx4(
|
|
211
|
+
AlertDialogPrimitive.Title,
|
|
212
|
+
{
|
|
213
|
+
className: cn("text-lg font-semibold", className),
|
|
214
|
+
ref,
|
|
215
|
+
...props
|
|
216
|
+
}
|
|
217
|
+
));
|
|
218
|
+
AlertDialogTitle.displayName = AlertDialogPrimitive.Title.displayName;
|
|
219
|
+
var AlertDialogDescription = React4.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx4(
|
|
220
|
+
AlertDialogPrimitive.Description,
|
|
221
|
+
{
|
|
222
|
+
className: cn("text-muted-foreground text-sm", className),
|
|
223
|
+
ref,
|
|
224
|
+
...props
|
|
225
|
+
}
|
|
226
|
+
));
|
|
227
|
+
AlertDialogDescription.displayName = AlertDialogPrimitive.Description.displayName;
|
|
228
|
+
var AlertDialogAction = React4.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx4(
|
|
229
|
+
AlertDialogPrimitive.Action,
|
|
230
|
+
{
|
|
231
|
+
className: cn(buttonVariants(), className),
|
|
232
|
+
ref,
|
|
233
|
+
...props
|
|
234
|
+
}
|
|
235
|
+
));
|
|
236
|
+
AlertDialogAction.displayName = AlertDialogPrimitive.Action.displayName;
|
|
237
|
+
var AlertDialogCancel = React4.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx4(
|
|
238
|
+
AlertDialogPrimitive.Cancel,
|
|
239
|
+
{
|
|
240
|
+
className: cn(
|
|
241
|
+
buttonVariants({ variant: "outline" }),
|
|
242
|
+
"mt-2 sm:mt-0",
|
|
243
|
+
className
|
|
244
|
+
),
|
|
245
|
+
ref,
|
|
246
|
+
...props
|
|
247
|
+
}
|
|
248
|
+
));
|
|
249
|
+
AlertDialogCancel.displayName = AlertDialogPrimitive.Cancel.displayName;
|
|
250
|
+
|
|
251
|
+
// src/components/ui/avatar/index.tsx
|
|
252
|
+
import * as React5 from "react";
|
|
253
|
+
import * as AvatarPrimitive from "@radix-ui/react-avatar";
|
|
254
|
+
import { jsx as jsx5 } from "react/jsx-runtime";
|
|
255
|
+
var Avatar = React5.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx5(
|
|
256
|
+
AvatarPrimitive.Root,
|
|
257
|
+
{
|
|
258
|
+
className: cn(
|
|
259
|
+
"relative flex h-10 w-10 shrink-0 overflow-hidden rounded-full",
|
|
260
|
+
className
|
|
261
|
+
),
|
|
262
|
+
ref,
|
|
263
|
+
...props
|
|
264
|
+
}
|
|
265
|
+
));
|
|
266
|
+
Avatar.displayName = AvatarPrimitive.Root.displayName;
|
|
267
|
+
var AvatarImage = React5.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx5(
|
|
268
|
+
AvatarPrimitive.Image,
|
|
269
|
+
{
|
|
270
|
+
className: cn("aspect-square h-full w-full", className),
|
|
271
|
+
ref,
|
|
272
|
+
...props
|
|
273
|
+
}
|
|
274
|
+
));
|
|
275
|
+
AvatarImage.displayName = AvatarPrimitive.Image.displayName;
|
|
276
|
+
var AvatarFallback = React5.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx5(
|
|
277
|
+
AvatarPrimitive.Fallback,
|
|
278
|
+
{
|
|
279
|
+
className: cn(
|
|
280
|
+
"bg-muted flex h-full w-full items-center justify-center rounded-full",
|
|
281
|
+
className
|
|
282
|
+
),
|
|
283
|
+
ref,
|
|
284
|
+
...props
|
|
285
|
+
}
|
|
286
|
+
));
|
|
287
|
+
AvatarFallback.displayName = AvatarPrimitive.Fallback.displayName;
|
|
288
|
+
|
|
289
|
+
// src/components/ui/badge/index.tsx
|
|
290
|
+
import { cva as cva3 } from "class-variance-authority";
|
|
291
|
+
import { jsx as jsx6 } from "react/jsx-runtime";
|
|
292
|
+
var badgeVariants = cva3(
|
|
293
|
+
"inline-flex items-center rounded-md border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2",
|
|
294
|
+
{
|
|
295
|
+
variants: {
|
|
296
|
+
variant: {
|
|
297
|
+
default: "border-transparent bg-primary text-primary-foreground shadow hover:bg-primary/80",
|
|
298
|
+
secondary: "border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80",
|
|
299
|
+
destructive: "border-transparent bg-destructive text-destructive-foreground shadow hover:bg-destructive/80",
|
|
300
|
+
outline: "text-foreground"
|
|
301
|
+
}
|
|
302
|
+
},
|
|
303
|
+
defaultVariants: {
|
|
304
|
+
variant: "default"
|
|
305
|
+
}
|
|
306
|
+
}
|
|
307
|
+
);
|
|
308
|
+
function Badge({ className, variant, ...props }) {
|
|
309
|
+
return /* @__PURE__ */ jsx6("div", { className: cn(badgeVariants({ variant }), className), ...props });
|
|
310
|
+
}
|
|
311
|
+
|
|
312
|
+
// src/components/ui/breadcrumb/index.tsx
|
|
313
|
+
import { ChevronRight, MoreHorizontal } from "lucide-react";
|
|
314
|
+
import * as React6 from "react";
|
|
315
|
+
import { Slot as Slot2 } from "@radix-ui/react-slot";
|
|
316
|
+
import { jsx as jsx7, jsxs as jsxs3 } from "react/jsx-runtime";
|
|
317
|
+
var Breadcrumb = React6.forwardRef(({ ...props }, ref) => /* @__PURE__ */ jsx7("nav", { "aria-label": "breadcrumb", ref, ...props }));
|
|
318
|
+
Breadcrumb.displayName = "Breadcrumb";
|
|
319
|
+
var BreadcrumbList = React6.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx7(
|
|
320
|
+
"ol",
|
|
321
|
+
{
|
|
322
|
+
className: cn(
|
|
323
|
+
"text-muted-foreground flex flex-wrap items-center gap-1.5 text-sm wrap-break-word sm:gap-2.5",
|
|
324
|
+
className
|
|
325
|
+
),
|
|
326
|
+
ref,
|
|
327
|
+
...props
|
|
328
|
+
}
|
|
329
|
+
));
|
|
330
|
+
BreadcrumbList.displayName = "BreadcrumbList";
|
|
331
|
+
var BreadcrumbItem = React6.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx7(
|
|
332
|
+
"li",
|
|
333
|
+
{
|
|
334
|
+
className: cn("inline-flex items-center gap-1.5", className),
|
|
335
|
+
ref,
|
|
336
|
+
...props
|
|
337
|
+
}
|
|
338
|
+
));
|
|
339
|
+
BreadcrumbItem.displayName = "BreadcrumbItem";
|
|
340
|
+
var BreadcrumbLink = React6.forwardRef(({ asChild, className, ...props }, ref) => {
|
|
341
|
+
const Comp = asChild ? Slot2 : "a";
|
|
342
|
+
return /* @__PURE__ */ jsx7(
|
|
343
|
+
Comp,
|
|
344
|
+
{
|
|
345
|
+
className: cn("hover:text-foreground transition-colors", className),
|
|
346
|
+
ref,
|
|
347
|
+
...props
|
|
348
|
+
}
|
|
349
|
+
);
|
|
350
|
+
});
|
|
351
|
+
BreadcrumbLink.displayName = "BreadcrumbLink";
|
|
352
|
+
var BreadcrumbPage = React6.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx7(
|
|
353
|
+
"span",
|
|
354
|
+
{
|
|
355
|
+
"aria-current": "page",
|
|
356
|
+
"aria-disabled": "true",
|
|
357
|
+
className: cn("text-foreground font-normal", className),
|
|
358
|
+
ref,
|
|
359
|
+
role: "link",
|
|
360
|
+
...props
|
|
361
|
+
}
|
|
362
|
+
));
|
|
363
|
+
BreadcrumbPage.displayName = "BreadcrumbPage";
|
|
364
|
+
var BreadcrumbSeparator = ({
|
|
365
|
+
children,
|
|
366
|
+
className,
|
|
367
|
+
...props
|
|
368
|
+
}) => /* @__PURE__ */ jsx7(
|
|
369
|
+
"li",
|
|
370
|
+
{
|
|
371
|
+
"aria-hidden": "true",
|
|
372
|
+
className: cn("[&>svg]:h-3.5 [&>svg]:w-3.5", className),
|
|
373
|
+
role: "presentation",
|
|
374
|
+
...props,
|
|
375
|
+
children: children ?? /* @__PURE__ */ jsx7(ChevronRight, {})
|
|
376
|
+
}
|
|
377
|
+
);
|
|
378
|
+
BreadcrumbSeparator.displayName = "BreadcrumbSeparator";
|
|
379
|
+
var BreadcrumbEllipsis = ({
|
|
380
|
+
className,
|
|
381
|
+
...props
|
|
382
|
+
}) => /* @__PURE__ */ jsxs3(
|
|
383
|
+
"span",
|
|
384
|
+
{
|
|
385
|
+
"aria-hidden": "true",
|
|
386
|
+
className: cn("flex h-9 w-9 items-center justify-center", className),
|
|
387
|
+
role: "presentation",
|
|
388
|
+
...props,
|
|
389
|
+
children: [
|
|
390
|
+
/* @__PURE__ */ jsx7(MoreHorizontal, { className: "h-4 w-4" }),
|
|
391
|
+
/* @__PURE__ */ jsx7("span", { className: "sr-only", children: "More" })
|
|
392
|
+
]
|
|
393
|
+
}
|
|
394
|
+
);
|
|
395
|
+
BreadcrumbEllipsis.displayName = "BreadcrumbElipssis";
|
|
396
|
+
|
|
397
|
+
// src/components/ui/calendar/index.tsx
|
|
398
|
+
import {
|
|
399
|
+
ChevronDownIcon,
|
|
400
|
+
ChevronLeftIcon,
|
|
401
|
+
ChevronRightIcon
|
|
402
|
+
} from "lucide-react";
|
|
403
|
+
import * as React7 from "react";
|
|
404
|
+
import { DayPicker, getDefaultClassNames } from "react-day-picker";
|
|
405
|
+
import { jsx as jsx8 } from "react/jsx-runtime";
|
|
406
|
+
function Calendar({
|
|
407
|
+
className,
|
|
408
|
+
classNames,
|
|
409
|
+
showOutsideDays = true,
|
|
410
|
+
captionLayout = "label",
|
|
411
|
+
buttonVariant = "ghost",
|
|
412
|
+
formatters,
|
|
413
|
+
components,
|
|
414
|
+
...props
|
|
415
|
+
}) {
|
|
416
|
+
const defaultClassNames = getDefaultClassNames();
|
|
417
|
+
return /* @__PURE__ */ jsx8(
|
|
418
|
+
DayPicker,
|
|
419
|
+
{
|
|
420
|
+
className: cn(
|
|
421
|
+
"bg-background group/calendar p-3 [--cell-size:2rem] in-data-[slot=card-content]:bg-transparent in-data-[slot=popover-content]:bg-transparent",
|
|
422
|
+
String.raw`rtl:**:[.rdp-button\_next>svg]:rotate-180`,
|
|
423
|
+
String.raw`rtl:**:[.rdp-button\_previous>svg]:rotate-180`,
|
|
424
|
+
className
|
|
425
|
+
),
|
|
426
|
+
classNames: {
|
|
427
|
+
root: cn("w-fit", defaultClassNames.root),
|
|
428
|
+
months: cn(
|
|
429
|
+
"relative flex flex-col gap-4 md:flex-row",
|
|
430
|
+
defaultClassNames.months
|
|
431
|
+
),
|
|
432
|
+
month: cn("flex w-full flex-col gap-4", defaultClassNames.month),
|
|
433
|
+
nav: cn(
|
|
434
|
+
"absolute inset-x-0 top-0 flex w-full items-center justify-between gap-1",
|
|
435
|
+
defaultClassNames.nav
|
|
436
|
+
),
|
|
437
|
+
button_previous: cn(
|
|
438
|
+
buttonVariants({ variant: buttonVariant }),
|
|
439
|
+
"h-[--cell-size] w-[--cell-size] select-none p-0 aria-disabled:opacity-50",
|
|
440
|
+
defaultClassNames.button_previous
|
|
441
|
+
),
|
|
442
|
+
button_next: cn(
|
|
443
|
+
buttonVariants({ variant: buttonVariant }),
|
|
444
|
+
"h-[--cell-size] w-[--cell-size] select-none p-0 aria-disabled:opacity-50",
|
|
445
|
+
defaultClassNames.button_next
|
|
446
|
+
),
|
|
447
|
+
month_caption: cn(
|
|
448
|
+
"flex h-[--cell-size] w-full items-center justify-center px-[--cell-size]",
|
|
449
|
+
defaultClassNames.month_caption
|
|
450
|
+
),
|
|
451
|
+
dropdowns: cn(
|
|
452
|
+
"flex h-[--cell-size] w-full items-center justify-center gap-1.5 text-sm font-medium",
|
|
453
|
+
defaultClassNames.dropdowns
|
|
454
|
+
),
|
|
455
|
+
dropdown_root: cn(
|
|
456
|
+
"has-focus:border-ring border-input shadow-xs has-focus:ring-ring/50 has-focus:ring-[3px] relative rounded-md border",
|
|
457
|
+
defaultClassNames.dropdown_root
|
|
458
|
+
),
|
|
459
|
+
dropdown: cn(
|
|
460
|
+
"bg-popover absolute inset-0 opacity-0",
|
|
461
|
+
defaultClassNames.dropdown
|
|
462
|
+
),
|
|
463
|
+
caption_label: cn(
|
|
464
|
+
"select-none font-medium",
|
|
465
|
+
captionLayout === "label" ? "text-sm" : "[&>svg]:text-muted-foreground flex h-8 items-center gap-1 rounded-md pl-2 pr-1 text-sm [&>svg]:size-3.5",
|
|
466
|
+
defaultClassNames.caption_label
|
|
467
|
+
),
|
|
468
|
+
table: "w-full border-collapse",
|
|
469
|
+
weekdays: cn("flex", defaultClassNames.weekdays),
|
|
470
|
+
weekday: cn(
|
|
471
|
+
"text-muted-foreground flex-1 select-none rounded-md text-[0.8rem] font-normal",
|
|
472
|
+
defaultClassNames.weekday
|
|
473
|
+
),
|
|
474
|
+
week: cn("mt-2 flex w-full", defaultClassNames.week),
|
|
475
|
+
week_number_header: cn(
|
|
476
|
+
"w-[--cell-size] select-none",
|
|
477
|
+
defaultClassNames.week_number_header
|
|
478
|
+
),
|
|
479
|
+
week_number: cn(
|
|
480
|
+
"text-muted-foreground select-none text-[0.8rem]",
|
|
481
|
+
defaultClassNames.week_number
|
|
482
|
+
),
|
|
483
|
+
day: cn(
|
|
484
|
+
"group/day relative aspect-square h-full w-full select-none p-0 text-center [&:first-child[data-selected=true]_button]:rounded-l-md [&:last-child[data-selected=true]_button]:rounded-r-md",
|
|
485
|
+
defaultClassNames.day
|
|
486
|
+
),
|
|
487
|
+
range_start: cn(
|
|
488
|
+
"bg-accent rounded-l-md",
|
|
489
|
+
defaultClassNames.range_start
|
|
490
|
+
),
|
|
491
|
+
range_middle: cn("rounded-none", defaultClassNames.range_middle),
|
|
492
|
+
range_end: cn("bg-accent rounded-r-md", defaultClassNames.range_end),
|
|
493
|
+
today: cn(
|
|
494
|
+
"bg-accent text-accent-foreground rounded-md data-[selected=true]:rounded-none",
|
|
495
|
+
defaultClassNames.today
|
|
496
|
+
),
|
|
497
|
+
outside: cn(
|
|
498
|
+
"text-muted-foreground aria-selected:text-muted-foreground",
|
|
499
|
+
defaultClassNames.outside
|
|
500
|
+
),
|
|
501
|
+
disabled: cn(
|
|
502
|
+
"text-muted-foreground opacity-50",
|
|
503
|
+
defaultClassNames.disabled
|
|
504
|
+
),
|
|
505
|
+
hidden: cn("invisible", defaultClassNames.hidden),
|
|
506
|
+
...classNames
|
|
507
|
+
},
|
|
508
|
+
components: {
|
|
509
|
+
Root: ({ className: className2, rootRef, ...props2 }) => {
|
|
510
|
+
return /* @__PURE__ */ jsx8(
|
|
511
|
+
"div",
|
|
512
|
+
{
|
|
513
|
+
className: cn(className2),
|
|
514
|
+
"data-slot": "calendar",
|
|
515
|
+
ref: rootRef,
|
|
516
|
+
...props2
|
|
517
|
+
}
|
|
518
|
+
);
|
|
519
|
+
},
|
|
520
|
+
Chevron: ({ className: className2, orientation, ...props2 }) => {
|
|
521
|
+
if (orientation === "left") {
|
|
522
|
+
return /* @__PURE__ */ jsx8(ChevronLeftIcon, { className: cn("size-4", className2), ...props2 });
|
|
523
|
+
}
|
|
524
|
+
if (orientation === "right") {
|
|
525
|
+
return /* @__PURE__ */ jsx8(
|
|
526
|
+
ChevronRightIcon,
|
|
527
|
+
{
|
|
528
|
+
className: cn("size-4", className2),
|
|
529
|
+
...props2
|
|
530
|
+
}
|
|
531
|
+
);
|
|
532
|
+
}
|
|
533
|
+
return /* @__PURE__ */ jsx8(ChevronDownIcon, { className: cn("size-4", className2), ...props2 });
|
|
534
|
+
},
|
|
535
|
+
DayButton: CalendarDayButton,
|
|
536
|
+
WeekNumber: ({ children, ...props2 }) => {
|
|
537
|
+
return /* @__PURE__ */ jsx8("td", { ...props2, children: /* @__PURE__ */ jsx8("div", { className: "flex size-[--cell-size] items-center justify-center text-center", children }) });
|
|
538
|
+
},
|
|
539
|
+
...components
|
|
540
|
+
},
|
|
541
|
+
formatters: {
|
|
542
|
+
formatMonthDropdown: (date) => date.toLocaleString("default", { month: "short" }),
|
|
543
|
+
...formatters
|
|
544
|
+
},
|
|
545
|
+
captionLayout,
|
|
546
|
+
showOutsideDays,
|
|
547
|
+
...props
|
|
548
|
+
}
|
|
549
|
+
);
|
|
550
|
+
}
|
|
551
|
+
function CalendarDayButton({
|
|
552
|
+
className,
|
|
553
|
+
day,
|
|
554
|
+
modifiers,
|
|
555
|
+
...props
|
|
556
|
+
}) {
|
|
557
|
+
const defaultClassNames = getDefaultClassNames();
|
|
558
|
+
const ref = React7.useRef(null);
|
|
559
|
+
React7.useEffect(() => {
|
|
560
|
+
if (modifiers.focused) ref.current?.focus();
|
|
561
|
+
}, [modifiers.focused]);
|
|
562
|
+
return /* @__PURE__ */ jsx8(
|
|
563
|
+
Button,
|
|
564
|
+
{
|
|
565
|
+
className: cn(
|
|
566
|
+
"data-[selected-single=true]:bg-primary data-[selected-single=true]:text-primary-foreground data-[range-middle=true]:bg-accent data-[range-middle=true]:text-accent-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 flex aspect-square h-auto w-full min-w-[--cell-size] flex-col gap-1 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-md data-[range-middle=true]:rounded-none data-[range-start=true]:rounded-md [&>span]:text-xs [&>span]:opacity-70",
|
|
567
|
+
defaultClassNames.day,
|
|
568
|
+
className
|
|
569
|
+
),
|
|
570
|
+
"data-selected-single": modifiers.selected && !modifiers.range_start && !modifiers.range_end && !modifiers.range_middle,
|
|
571
|
+
"data-day": day.date.toLocaleDateString(),
|
|
572
|
+
"data-range-end": modifiers.range_end,
|
|
573
|
+
"data-range-middle": modifiers.range_middle,
|
|
574
|
+
"data-range-start": modifiers.range_start,
|
|
575
|
+
ref,
|
|
576
|
+
size: "icon",
|
|
577
|
+
variant: "ghost",
|
|
578
|
+
...props
|
|
579
|
+
}
|
|
580
|
+
);
|
|
581
|
+
}
|
|
582
|
+
|
|
583
|
+
// src/components/ui/card/index.tsx
|
|
584
|
+
import * as React8 from "react";
|
|
585
|
+
import { jsx as jsx9 } from "react/jsx-runtime";
|
|
586
|
+
var Card = React8.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx9(
|
|
587
|
+
"div",
|
|
588
|
+
{
|
|
589
|
+
className: cn(
|
|
590
|
+
"bg-card text-card-foreground rounded-xl border shadow",
|
|
591
|
+
className
|
|
592
|
+
),
|
|
593
|
+
ref,
|
|
594
|
+
...props
|
|
595
|
+
}
|
|
596
|
+
));
|
|
597
|
+
Card.displayName = "Card";
|
|
598
|
+
var CardHeader = React8.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx9(
|
|
599
|
+
"div",
|
|
600
|
+
{
|
|
601
|
+
className: cn("flex flex-col space-y-1.5 p-6", className),
|
|
602
|
+
ref,
|
|
603
|
+
...props
|
|
604
|
+
}
|
|
605
|
+
));
|
|
606
|
+
CardHeader.displayName = "CardHeader";
|
|
607
|
+
var CardTitle = React8.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx9(
|
|
608
|
+
"div",
|
|
609
|
+
{
|
|
610
|
+
className: cn("leading-none font-semibold tracking-tight", className),
|
|
611
|
+
ref,
|
|
612
|
+
...props
|
|
613
|
+
}
|
|
614
|
+
));
|
|
615
|
+
CardTitle.displayName = "CardTitle";
|
|
616
|
+
var CardDescription = React8.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx9(
|
|
617
|
+
"div",
|
|
618
|
+
{
|
|
619
|
+
className: cn("text-muted-foreground text-sm", className),
|
|
620
|
+
ref,
|
|
621
|
+
...props
|
|
622
|
+
}
|
|
623
|
+
));
|
|
624
|
+
CardDescription.displayName = "CardDescription";
|
|
625
|
+
var CardContent = React8.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx9("div", { className: cn("p-6 pt-0", className), ref, ...props }));
|
|
626
|
+
CardContent.displayName = "CardContent";
|
|
627
|
+
var CardFooter = React8.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx9(
|
|
628
|
+
"div",
|
|
629
|
+
{
|
|
630
|
+
className: cn("flex items-center p-6 pt-0", className),
|
|
631
|
+
ref,
|
|
632
|
+
...props
|
|
633
|
+
}
|
|
634
|
+
));
|
|
635
|
+
CardFooter.displayName = "CardFooter";
|
|
636
|
+
|
|
637
|
+
// src/components/ui/carousel/index.tsx
|
|
638
|
+
import useEmblaCarousel from "embla-carousel-react";
|
|
639
|
+
import { ArrowLeft, ArrowRight } from "lucide-react";
|
|
640
|
+
import * as React9 from "react";
|
|
641
|
+
import { jsx as jsx10, jsxs as jsxs4 } from "react/jsx-runtime";
|
|
642
|
+
var CarouselContext = React9.createContext(null);
|
|
643
|
+
function useCarousel() {
|
|
644
|
+
const context = React9.useContext(CarouselContext);
|
|
645
|
+
if (!context) {
|
|
646
|
+
throw new Error("useCarousel must be used within a <Carousel />");
|
|
647
|
+
}
|
|
648
|
+
return context;
|
|
649
|
+
}
|
|
650
|
+
var Carousel = React9.forwardRef(
|
|
651
|
+
({
|
|
652
|
+
orientation = "horizontal",
|
|
653
|
+
opts,
|
|
654
|
+
setApi,
|
|
655
|
+
plugins,
|
|
656
|
+
className,
|
|
657
|
+
children,
|
|
658
|
+
...props
|
|
659
|
+
}, ref) => {
|
|
660
|
+
const [carouselRef, api] = useEmblaCarousel(
|
|
661
|
+
{
|
|
662
|
+
...opts,
|
|
663
|
+
axis: orientation === "horizontal" ? "x" : "y"
|
|
664
|
+
},
|
|
665
|
+
plugins
|
|
666
|
+
);
|
|
667
|
+
const [canScrollPrev, setCanScrollPrev] = React9.useState(false);
|
|
668
|
+
const [canScrollNext, setCanScrollNext] = React9.useState(false);
|
|
669
|
+
const onSelect = React9.useCallback((api2) => {
|
|
670
|
+
if (!api2) {
|
|
671
|
+
return;
|
|
672
|
+
}
|
|
673
|
+
setCanScrollPrev(api2.canScrollPrev());
|
|
674
|
+
setCanScrollNext(api2.canScrollNext());
|
|
675
|
+
}, []);
|
|
676
|
+
const scrollPrev = React9.useCallback(() => {
|
|
677
|
+
api?.scrollPrev();
|
|
678
|
+
}, [api]);
|
|
679
|
+
const scrollNext = React9.useCallback(() => {
|
|
680
|
+
api?.scrollNext();
|
|
681
|
+
}, [api]);
|
|
682
|
+
const handleKeyDown = React9.useCallback(
|
|
683
|
+
(event) => {
|
|
684
|
+
if (event.key === "ArrowLeft") {
|
|
685
|
+
event.preventDefault();
|
|
686
|
+
scrollPrev();
|
|
687
|
+
} else if (event.key === "ArrowRight") {
|
|
688
|
+
event.preventDefault();
|
|
689
|
+
scrollNext();
|
|
690
|
+
}
|
|
691
|
+
},
|
|
692
|
+
[scrollPrev, scrollNext]
|
|
693
|
+
);
|
|
694
|
+
React9.useEffect(() => {
|
|
695
|
+
if (!api || !setApi) {
|
|
696
|
+
return;
|
|
697
|
+
}
|
|
698
|
+
setApi(api);
|
|
699
|
+
}, [api, setApi]);
|
|
700
|
+
React9.useEffect(() => {
|
|
701
|
+
if (!api) {
|
|
702
|
+
return;
|
|
703
|
+
}
|
|
704
|
+
onSelect(api);
|
|
705
|
+
api.on("reInit", onSelect);
|
|
706
|
+
api.on("select", onSelect);
|
|
707
|
+
return () => {
|
|
708
|
+
api?.off("select", onSelect);
|
|
709
|
+
};
|
|
710
|
+
}, [api, onSelect]);
|
|
711
|
+
return /* @__PURE__ */ jsx10(
|
|
712
|
+
CarouselContext.Provider,
|
|
713
|
+
{
|
|
714
|
+
value: {
|
|
715
|
+
carouselRef,
|
|
716
|
+
api,
|
|
717
|
+
opts,
|
|
718
|
+
orientation: orientation || (opts?.axis === "y" ? "vertical" : "horizontal"),
|
|
719
|
+
scrollPrev,
|
|
720
|
+
scrollNext,
|
|
721
|
+
canScrollPrev,
|
|
722
|
+
canScrollNext
|
|
723
|
+
},
|
|
724
|
+
children: /* @__PURE__ */ jsx10(
|
|
725
|
+
"div",
|
|
726
|
+
{
|
|
727
|
+
"aria-roledescription": "carousel",
|
|
728
|
+
className: cn("relative", className),
|
|
729
|
+
onKeyDownCapture: handleKeyDown,
|
|
730
|
+
ref,
|
|
731
|
+
role: "region",
|
|
732
|
+
...props,
|
|
733
|
+
children
|
|
734
|
+
}
|
|
735
|
+
)
|
|
736
|
+
}
|
|
737
|
+
);
|
|
738
|
+
}
|
|
739
|
+
);
|
|
740
|
+
Carousel.displayName = "Carousel";
|
|
741
|
+
var CarouselContent = React9.forwardRef(({ className, ...props }, ref) => {
|
|
742
|
+
const { carouselRef, orientation } = useCarousel();
|
|
743
|
+
return /* @__PURE__ */ jsx10("div", { className: "overflow-hidden", ref: carouselRef, children: /* @__PURE__ */ jsx10(
|
|
744
|
+
"div",
|
|
745
|
+
{
|
|
746
|
+
className: cn(
|
|
747
|
+
"flex",
|
|
748
|
+
orientation === "horizontal" ? "-ml-4" : "-mt-4 flex-col",
|
|
749
|
+
className
|
|
750
|
+
),
|
|
751
|
+
ref,
|
|
752
|
+
...props
|
|
753
|
+
}
|
|
754
|
+
) });
|
|
755
|
+
});
|
|
756
|
+
CarouselContent.displayName = "CarouselContent";
|
|
757
|
+
var CarouselItem = React9.forwardRef(({ className, ...props }, ref) => {
|
|
758
|
+
const { orientation } = useCarousel();
|
|
759
|
+
return /* @__PURE__ */ jsx10(
|
|
760
|
+
"div",
|
|
761
|
+
{
|
|
762
|
+
className: cn(
|
|
763
|
+
"min-w-0 shrink-0 grow-0 basis-full",
|
|
764
|
+
orientation === "horizontal" ? "pl-4" : "pt-4",
|
|
765
|
+
className
|
|
766
|
+
),
|
|
767
|
+
"aria-roledescription": "slide",
|
|
768
|
+
ref,
|
|
769
|
+
role: "group",
|
|
770
|
+
...props
|
|
771
|
+
}
|
|
772
|
+
);
|
|
773
|
+
});
|
|
774
|
+
CarouselItem.displayName = "CarouselItem";
|
|
775
|
+
var CarouselPrevious = React9.forwardRef(({ className, variant = "outline", size = "icon", ...props }, ref) => {
|
|
776
|
+
const { orientation, scrollPrev, canScrollPrev } = useCarousel();
|
|
777
|
+
return /* @__PURE__ */ jsxs4(
|
|
778
|
+
Button,
|
|
779
|
+
{
|
|
780
|
+
className: cn(
|
|
781
|
+
"absolute h-8 w-8 rounded-full",
|
|
782
|
+
orientation === "horizontal" ? "top-1/2 -left-12 -translate-y-1/2" : "-top-12 left-1/2 -translate-x-1/2 rotate-90",
|
|
783
|
+
className
|
|
784
|
+
),
|
|
785
|
+
disabled: !canScrollPrev,
|
|
786
|
+
onClick: scrollPrev,
|
|
787
|
+
ref,
|
|
788
|
+
size,
|
|
789
|
+
variant,
|
|
790
|
+
...props,
|
|
791
|
+
children: [
|
|
792
|
+
/* @__PURE__ */ jsx10(ArrowLeft, { className: "h-4 w-4" }),
|
|
793
|
+
/* @__PURE__ */ jsx10("span", { className: "sr-only", children: "Previous slide" })
|
|
794
|
+
]
|
|
795
|
+
}
|
|
796
|
+
);
|
|
797
|
+
});
|
|
798
|
+
CarouselPrevious.displayName = "CarouselPrevious";
|
|
799
|
+
var CarouselNext = React9.forwardRef(({ className, variant = "outline", size = "icon", ...props }, ref) => {
|
|
800
|
+
const { orientation, scrollNext, canScrollNext } = useCarousel();
|
|
801
|
+
return /* @__PURE__ */ jsxs4(
|
|
802
|
+
Button,
|
|
803
|
+
{
|
|
804
|
+
className: cn(
|
|
805
|
+
"absolute h-8 w-8 rounded-full",
|
|
806
|
+
orientation === "horizontal" ? "top-1/2 -right-12 -translate-y-1/2" : "-bottom-12 left-1/2 -translate-x-1/2 rotate-90",
|
|
807
|
+
className
|
|
808
|
+
),
|
|
809
|
+
disabled: !canScrollNext,
|
|
810
|
+
onClick: scrollNext,
|
|
811
|
+
ref,
|
|
812
|
+
size,
|
|
813
|
+
variant,
|
|
814
|
+
...props,
|
|
815
|
+
children: [
|
|
816
|
+
/* @__PURE__ */ jsx10(ArrowRight, { className: "h-4 w-4" }),
|
|
817
|
+
/* @__PURE__ */ jsx10("span", { className: "sr-only", children: "Next slide" })
|
|
818
|
+
]
|
|
819
|
+
}
|
|
820
|
+
);
|
|
821
|
+
});
|
|
822
|
+
CarouselNext.displayName = "CarouselNext";
|
|
823
|
+
|
|
824
|
+
// src/components/ui/checkbox/index.tsx
|
|
825
|
+
import { Check } from "lucide-react";
|
|
826
|
+
import * as React10 from "react";
|
|
827
|
+
import * as CheckboxPrimitive from "@radix-ui/react-checkbox";
|
|
828
|
+
import { jsx as jsx11 } from "react/jsx-runtime";
|
|
829
|
+
var Checkbox = React10.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx11(
|
|
830
|
+
CheckboxPrimitive.Root,
|
|
831
|
+
{
|
|
832
|
+
className: cn(
|
|
833
|
+
"peer border-primary focus-visible:ring-ring data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground grid h-4 w-4 shrink-0 place-content-center rounded-sm border shadow focus-visible:ring-1 focus-visible:outline-none disabled:cursor-not-allowed disabled:opacity-50",
|
|
834
|
+
className
|
|
835
|
+
),
|
|
836
|
+
ref,
|
|
837
|
+
...props,
|
|
838
|
+
children: /* @__PURE__ */ jsx11(
|
|
839
|
+
CheckboxPrimitive.Indicator,
|
|
840
|
+
{
|
|
841
|
+
className: cn("grid place-content-center text-current"),
|
|
842
|
+
children: /* @__PURE__ */ jsx11(Check, { className: "h-4 w-4" })
|
|
843
|
+
}
|
|
844
|
+
)
|
|
845
|
+
}
|
|
846
|
+
));
|
|
847
|
+
Checkbox.displayName = CheckboxPrimitive.Root.displayName;
|
|
848
|
+
|
|
849
|
+
// src/components/ui/collapsible/index.tsx
|
|
850
|
+
import * as CollapsiblePrimitive from "@radix-ui/react-collapsible";
|
|
851
|
+
var Collapsible = CollapsiblePrimitive.Root;
|
|
852
|
+
var CollapsibleTrigger2 = CollapsiblePrimitive.CollapsibleTrigger;
|
|
853
|
+
var CollapsibleContent2 = CollapsiblePrimitive.CollapsibleContent;
|
|
854
|
+
|
|
855
|
+
// src/components/ui/command/index.tsx
|
|
856
|
+
import { Command as CommandPrimitive } from "cmdk";
|
|
857
|
+
import { Search } from "lucide-react";
|
|
858
|
+
import * as React12 from "react";
|
|
859
|
+
|
|
860
|
+
// src/components/ui/dialog/index.tsx
|
|
861
|
+
import { X } from "lucide-react";
|
|
862
|
+
import * as React11 from "react";
|
|
863
|
+
import * as DialogPrimitive from "@radix-ui/react-dialog";
|
|
864
|
+
import { jsx as jsx12, jsxs as jsxs5 } from "react/jsx-runtime";
|
|
865
|
+
var Dialog = DialogPrimitive.Root;
|
|
866
|
+
var DialogTrigger = DialogPrimitive.Trigger;
|
|
867
|
+
var DialogPortal = DialogPrimitive.Portal;
|
|
868
|
+
var DialogClose = DialogPrimitive.Close;
|
|
869
|
+
var DialogOverlay = React11.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx12(
|
|
870
|
+
DialogPrimitive.Overlay,
|
|
871
|
+
{
|
|
872
|
+
className: cn(
|
|
873
|
+
"data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/80",
|
|
874
|
+
className
|
|
875
|
+
),
|
|
876
|
+
ref,
|
|
877
|
+
...props
|
|
878
|
+
}
|
|
879
|
+
));
|
|
880
|
+
DialogOverlay.displayName = DialogPrimitive.Overlay.displayName;
|
|
881
|
+
var DialogContent = React11.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs5(DialogPortal, { children: [
|
|
882
|
+
/* @__PURE__ */ jsx12(DialogOverlay, {}),
|
|
883
|
+
/* @__PURE__ */ jsxs5(
|
|
884
|
+
DialogPrimitive.Content,
|
|
885
|
+
{
|
|
886
|
+
className: cn(
|
|
887
|
+
"bg-background data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] fixed top-[50%] left-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border p-6 shadow-lg duration-200 sm:rounded-lg",
|
|
888
|
+
className
|
|
889
|
+
),
|
|
890
|
+
ref,
|
|
891
|
+
...props,
|
|
892
|
+
children: [
|
|
893
|
+
children,
|
|
894
|
+
/* @__PURE__ */ jsxs5(DialogPrimitive.Close, { className: "ring-offset-background focus:ring-ring data-[state=open]:bg-accent data-[state=open]:text-muted-foreground absolute top-4 right-4 rounded-sm opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-none disabled:pointer-events-none", children: [
|
|
895
|
+
/* @__PURE__ */ jsx12(X, { className: "h-4 w-4" }),
|
|
896
|
+
/* @__PURE__ */ jsx12("span", { className: "sr-only", children: "Close" })
|
|
897
|
+
] })
|
|
898
|
+
]
|
|
899
|
+
}
|
|
900
|
+
)
|
|
901
|
+
] }));
|
|
902
|
+
DialogContent.displayName = DialogPrimitive.Content.displayName;
|
|
903
|
+
var DialogHeader = ({
|
|
904
|
+
className,
|
|
905
|
+
...props
|
|
906
|
+
}) => /* @__PURE__ */ jsx12(
|
|
907
|
+
"div",
|
|
908
|
+
{
|
|
909
|
+
className: cn(
|
|
910
|
+
"flex flex-col space-y-1.5 text-center sm:text-left",
|
|
911
|
+
className
|
|
912
|
+
),
|
|
913
|
+
...props
|
|
914
|
+
}
|
|
915
|
+
);
|
|
916
|
+
DialogHeader.displayName = "DialogHeader";
|
|
917
|
+
var DialogFooter = ({
|
|
918
|
+
className,
|
|
919
|
+
...props
|
|
920
|
+
}) => /* @__PURE__ */ jsx12(
|
|
921
|
+
"div",
|
|
922
|
+
{
|
|
923
|
+
className: cn(
|
|
924
|
+
"flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",
|
|
925
|
+
className
|
|
926
|
+
),
|
|
927
|
+
...props
|
|
928
|
+
}
|
|
929
|
+
);
|
|
930
|
+
DialogFooter.displayName = "DialogFooter";
|
|
931
|
+
var DialogTitle = React11.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx12(
|
|
932
|
+
DialogPrimitive.Title,
|
|
933
|
+
{
|
|
934
|
+
className: cn(
|
|
935
|
+
"text-lg leading-none font-semibold tracking-tight",
|
|
936
|
+
className
|
|
937
|
+
),
|
|
938
|
+
ref,
|
|
939
|
+
...props
|
|
940
|
+
}
|
|
941
|
+
));
|
|
942
|
+
DialogTitle.displayName = DialogPrimitive.Title.displayName;
|
|
943
|
+
var DialogDescription = React11.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx12(
|
|
944
|
+
DialogPrimitive.Description,
|
|
945
|
+
{
|
|
946
|
+
className: cn("text-muted-foreground text-sm", className),
|
|
947
|
+
ref,
|
|
948
|
+
...props
|
|
949
|
+
}
|
|
950
|
+
));
|
|
951
|
+
DialogDescription.displayName = DialogPrimitive.Description.displayName;
|
|
952
|
+
|
|
953
|
+
// src/components/ui/command/index.tsx
|
|
954
|
+
import { jsx as jsx13, jsxs as jsxs6 } from "react/jsx-runtime";
|
|
955
|
+
var Command = React12.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx13(
|
|
956
|
+
CommandPrimitive,
|
|
957
|
+
{
|
|
958
|
+
className: cn(
|
|
959
|
+
"bg-popover text-popover-foreground flex h-full w-full flex-col overflow-hidden rounded-md",
|
|
960
|
+
className
|
|
961
|
+
),
|
|
962
|
+
ref,
|
|
963
|
+
...props
|
|
964
|
+
}
|
|
965
|
+
));
|
|
966
|
+
Command.displayName = CommandPrimitive.displayName;
|
|
967
|
+
var CommandDialog = ({ children, ...props }) => {
|
|
968
|
+
return /* @__PURE__ */ jsx13(Dialog, { ...props, children: /* @__PURE__ */ jsx13(DialogContent, { className: "overflow-hidden p-0", children: /* @__PURE__ */ jsx13(Command, { className: "**:[[cmdk-group-heading]]:text-muted-foreground [&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0 [&_[cmdk-input-wrapper]_svg]:h-5 [&_[cmdk-input-wrapper]_svg]:w-5 [&_[cmdk-item]_svg]:h-5 [&_[cmdk-item]_svg]:w-5 **:[[cmdk-group-heading]]:px-2 **:[[cmdk-group-heading]]:font-medium **:[[cmdk-group]]:px-2 **:[[cmdk-input]]:h-12 **:[[cmdk-item]]:px-2 **:[[cmdk-item]]:py-3", children }) }) });
|
|
969
|
+
};
|
|
970
|
+
var CommandInput = React12.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxs6("div", { className: "flex items-center border-b px-3", children: [
|
|
971
|
+
/* @__PURE__ */ jsx13(Search, { className: "mr-2 h-4 w-4 shrink-0 opacity-50" }),
|
|
972
|
+
/* @__PURE__ */ jsx13(
|
|
973
|
+
CommandPrimitive.Input,
|
|
974
|
+
{
|
|
975
|
+
className: cn(
|
|
976
|
+
"placeholder:text-muted-foreground flex h-10 w-full rounded-md bg-transparent py-3 text-sm outline-none disabled:cursor-not-allowed disabled:opacity-50",
|
|
977
|
+
className
|
|
978
|
+
),
|
|
979
|
+
ref,
|
|
980
|
+
...props
|
|
981
|
+
}
|
|
982
|
+
)
|
|
983
|
+
] }));
|
|
984
|
+
CommandInput.displayName = CommandPrimitive.Input.displayName;
|
|
985
|
+
var CommandList = React12.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx13(
|
|
986
|
+
CommandPrimitive.List,
|
|
987
|
+
{
|
|
988
|
+
className: cn("max-h-[300px] overflow-x-hidden overflow-y-auto", className),
|
|
989
|
+
ref,
|
|
990
|
+
...props
|
|
991
|
+
}
|
|
992
|
+
));
|
|
993
|
+
CommandList.displayName = CommandPrimitive.List.displayName;
|
|
994
|
+
var CommandEmpty = React12.forwardRef((props, ref) => /* @__PURE__ */ jsx13(
|
|
995
|
+
CommandPrimitive.Empty,
|
|
996
|
+
{
|
|
997
|
+
className: "py-6 text-center text-sm",
|
|
998
|
+
ref,
|
|
999
|
+
...props
|
|
1000
|
+
}
|
|
1001
|
+
));
|
|
1002
|
+
CommandEmpty.displayName = CommandPrimitive.Empty.displayName;
|
|
1003
|
+
var CommandGroup = React12.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx13(
|
|
1004
|
+
CommandPrimitive.Group,
|
|
1005
|
+
{
|
|
1006
|
+
className: cn(
|
|
1007
|
+
"text-foreground **:[[cmdk-group-heading]]:text-muted-foreground overflow-hidden p-1 **:[[cmdk-group-heading]]:px-2 **:[[cmdk-group-heading]]:py-1.5 **:[[cmdk-group-heading]]:text-xs **:[[cmdk-group-heading]]:font-medium",
|
|
1008
|
+
className
|
|
1009
|
+
),
|
|
1010
|
+
ref,
|
|
1011
|
+
...props
|
|
1012
|
+
}
|
|
1013
|
+
));
|
|
1014
|
+
CommandGroup.displayName = CommandPrimitive.Group.displayName;
|
|
1015
|
+
var CommandSeparator = React12.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx13(
|
|
1016
|
+
CommandPrimitive.Separator,
|
|
1017
|
+
{
|
|
1018
|
+
className: cn("bg-border -mx-1 h-px", className),
|
|
1019
|
+
ref,
|
|
1020
|
+
...props
|
|
1021
|
+
}
|
|
1022
|
+
));
|
|
1023
|
+
CommandSeparator.displayName = CommandPrimitive.Separator.displayName;
|
|
1024
|
+
var CommandItem = React12.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx13(
|
|
1025
|
+
CommandPrimitive.Item,
|
|
1026
|
+
{
|
|
1027
|
+
className: cn(
|
|
1028
|
+
"data-[selected=true]:bg-accent data-[selected=true]:text-accent-foreground relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none select-none data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",
|
|
1029
|
+
className
|
|
1030
|
+
),
|
|
1031
|
+
ref,
|
|
1032
|
+
...props
|
|
1033
|
+
}
|
|
1034
|
+
));
|
|
1035
|
+
CommandItem.displayName = CommandPrimitive.Item.displayName;
|
|
1036
|
+
var CommandShortcut = ({
|
|
1037
|
+
className,
|
|
1038
|
+
...props
|
|
1039
|
+
}) => {
|
|
1040
|
+
return /* @__PURE__ */ jsx13(
|
|
1041
|
+
"span",
|
|
1042
|
+
{
|
|
1043
|
+
className: cn(
|
|
1044
|
+
"text-muted-foreground ml-auto text-xs tracking-widest",
|
|
1045
|
+
className
|
|
1046
|
+
),
|
|
1047
|
+
...props
|
|
1048
|
+
}
|
|
1049
|
+
);
|
|
1050
|
+
};
|
|
1051
|
+
CommandShortcut.displayName = "CommandShortcut";
|
|
1052
|
+
|
|
1053
|
+
// src/components/ui/context-menu/index.tsx
|
|
1054
|
+
import { Check as Check2, ChevronRight as ChevronRight2, Circle } from "lucide-react";
|
|
1055
|
+
import * as React13 from "react";
|
|
1056
|
+
import * as ContextMenuPrimitive from "@radix-ui/react-context-menu";
|
|
1057
|
+
import { jsx as jsx14, jsxs as jsxs7 } from "react/jsx-runtime";
|
|
1058
|
+
var ContextMenu = ContextMenuPrimitive.Root;
|
|
1059
|
+
var ContextMenuTrigger = ContextMenuPrimitive.Trigger;
|
|
1060
|
+
var ContextMenuGroup = ContextMenuPrimitive.Group;
|
|
1061
|
+
var ContextMenuPortal = ContextMenuPrimitive.Portal;
|
|
1062
|
+
var ContextMenuSub = ContextMenuPrimitive.Sub;
|
|
1063
|
+
var ContextMenuRadioGroup = ContextMenuPrimitive.RadioGroup;
|
|
1064
|
+
var ContextMenuSubTrigger = React13.forwardRef(({ className, inset, children, ...props }, ref) => /* @__PURE__ */ jsxs7(
|
|
1065
|
+
ContextMenuPrimitive.SubTrigger,
|
|
1066
|
+
{
|
|
1067
|
+
className: cn(
|
|
1068
|
+
"focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground flex cursor-default items-center rounded-sm px-2 py-1.5 text-sm outline-none select-none",
|
|
1069
|
+
inset && "pl-8",
|
|
1070
|
+
className
|
|
1071
|
+
),
|
|
1072
|
+
ref,
|
|
1073
|
+
...props,
|
|
1074
|
+
children: [
|
|
1075
|
+
children,
|
|
1076
|
+
/* @__PURE__ */ jsx14(ChevronRight2, { className: "ml-auto h-4 w-4" })
|
|
1077
|
+
]
|
|
1078
|
+
}
|
|
1079
|
+
));
|
|
1080
|
+
ContextMenuSubTrigger.displayName = ContextMenuPrimitive.SubTrigger.displayName;
|
|
1081
|
+
var ContextMenuSubContent = React13.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx14(
|
|
1082
|
+
ContextMenuPrimitive.SubContent,
|
|
1083
|
+
{
|
|
1084
|
+
className: cn(
|
|
1085
|
+
"bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 min-w-[8rem] origin-[--radix-context-menu-content-transform-origin] overflow-hidden rounded-md border p-1 shadow-lg",
|
|
1086
|
+
className
|
|
1087
|
+
),
|
|
1088
|
+
ref,
|
|
1089
|
+
...props
|
|
1090
|
+
}
|
|
1091
|
+
));
|
|
1092
|
+
ContextMenuSubContent.displayName = ContextMenuPrimitive.SubContent.displayName;
|
|
1093
|
+
var ContextMenuContent = React13.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx14(ContextMenuPrimitive.Portal, { children: /* @__PURE__ */ jsx14(
|
|
1094
|
+
ContextMenuPrimitive.Content,
|
|
1095
|
+
{
|
|
1096
|
+
className: cn(
|
|
1097
|
+
"bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 max-h-[--radix-context-menu-content-available-height] min-w-[8rem] origin-[--radix-context-menu-content-transform-origin] overflow-x-hidden overflow-y-auto rounded-md border p-1 shadow-md",
|
|
1098
|
+
className
|
|
1099
|
+
),
|
|
1100
|
+
ref,
|
|
1101
|
+
...props
|
|
1102
|
+
}
|
|
1103
|
+
) }));
|
|
1104
|
+
ContextMenuContent.displayName = ContextMenuPrimitive.Content.displayName;
|
|
1105
|
+
var ContextMenuItem = React13.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx14(
|
|
1106
|
+
ContextMenuPrimitive.Item,
|
|
1107
|
+
{
|
|
1108
|
+
className: cn(
|
|
1109
|
+
"focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center rounded-sm px-2 py-1.5 text-sm outline-none select-none data-disabled:pointer-events-none data-disabled:opacity-50",
|
|
1110
|
+
inset && "pl-8",
|
|
1111
|
+
className
|
|
1112
|
+
),
|
|
1113
|
+
ref,
|
|
1114
|
+
...props
|
|
1115
|
+
}
|
|
1116
|
+
));
|
|
1117
|
+
ContextMenuItem.displayName = ContextMenuPrimitive.Item.displayName;
|
|
1118
|
+
var ContextMenuCheckboxItem = React13.forwardRef(({ className, children, checked, ...props }, ref) => /* @__PURE__ */ jsxs7(
|
|
1119
|
+
ContextMenuPrimitive.CheckboxItem,
|
|
1120
|
+
{
|
|
1121
|
+
className: cn(
|
|
1122
|
+
"focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center rounded-sm py-1.5 pr-2 pl-8 text-sm outline-none select-none data-disabled:pointer-events-none data-disabled:opacity-50",
|
|
1123
|
+
className
|
|
1124
|
+
),
|
|
1125
|
+
checked,
|
|
1126
|
+
ref,
|
|
1127
|
+
...props,
|
|
1128
|
+
children: [
|
|
1129
|
+
/* @__PURE__ */ jsx14("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsx14(ContextMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx14(Check2, { className: "h-4 w-4" }) }) }),
|
|
1130
|
+
children
|
|
1131
|
+
]
|
|
1132
|
+
}
|
|
1133
|
+
));
|
|
1134
|
+
ContextMenuCheckboxItem.displayName = ContextMenuPrimitive.CheckboxItem.displayName;
|
|
1135
|
+
var ContextMenuRadioItem = React13.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs7(
|
|
1136
|
+
ContextMenuPrimitive.RadioItem,
|
|
1137
|
+
{
|
|
1138
|
+
className: cn(
|
|
1139
|
+
"focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center rounded-sm py-1.5 pr-2 pl-8 text-sm outline-none select-none data-disabled:pointer-events-none data-disabled:opacity-50",
|
|
1140
|
+
className
|
|
1141
|
+
),
|
|
1142
|
+
ref,
|
|
1143
|
+
...props,
|
|
1144
|
+
children: [
|
|
1145
|
+
/* @__PURE__ */ jsx14("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsx14(ContextMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx14(Circle, { className: "h-4 w-4 fill-current" }) }) }),
|
|
1146
|
+
children
|
|
1147
|
+
]
|
|
1148
|
+
}
|
|
1149
|
+
));
|
|
1150
|
+
ContextMenuRadioItem.displayName = ContextMenuPrimitive.RadioItem.displayName;
|
|
1151
|
+
var ContextMenuLabel = React13.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx14(
|
|
1152
|
+
ContextMenuPrimitive.Label,
|
|
1153
|
+
{
|
|
1154
|
+
className: cn(
|
|
1155
|
+
"text-foreground px-2 py-1.5 text-sm font-semibold",
|
|
1156
|
+
inset && "pl-8",
|
|
1157
|
+
className
|
|
1158
|
+
),
|
|
1159
|
+
ref,
|
|
1160
|
+
...props
|
|
1161
|
+
}
|
|
1162
|
+
));
|
|
1163
|
+
ContextMenuLabel.displayName = ContextMenuPrimitive.Label.displayName;
|
|
1164
|
+
var ContextMenuSeparator = React13.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx14(
|
|
1165
|
+
ContextMenuPrimitive.Separator,
|
|
1166
|
+
{
|
|
1167
|
+
className: cn("bg-border -mx-1 my-1 h-px", className),
|
|
1168
|
+
ref,
|
|
1169
|
+
...props
|
|
1170
|
+
}
|
|
1171
|
+
));
|
|
1172
|
+
ContextMenuSeparator.displayName = ContextMenuPrimitive.Separator.displayName;
|
|
1173
|
+
var ContextMenuShortcut = ({
|
|
1174
|
+
className,
|
|
1175
|
+
...props
|
|
1176
|
+
}) => {
|
|
1177
|
+
return /* @__PURE__ */ jsx14(
|
|
1178
|
+
"span",
|
|
1179
|
+
{
|
|
1180
|
+
className: cn(
|
|
1181
|
+
"text-muted-foreground ml-auto text-xs tracking-widest",
|
|
1182
|
+
className
|
|
1183
|
+
),
|
|
1184
|
+
...props
|
|
1185
|
+
}
|
|
1186
|
+
);
|
|
1187
|
+
};
|
|
1188
|
+
ContextMenuShortcut.displayName = "ContextMenuShortcut";
|
|
1189
|
+
|
|
1190
|
+
// src/components/ui/drawer/index.tsx
|
|
1191
|
+
import * as React14 from "react";
|
|
1192
|
+
import { Drawer as DrawerPrimitive } from "vaul";
|
|
1193
|
+
import { jsx as jsx15, jsxs as jsxs8 } from "react/jsx-runtime";
|
|
1194
|
+
var Drawer = ({
|
|
1195
|
+
shouldScaleBackground = true,
|
|
1196
|
+
...props
|
|
1197
|
+
}) => /* @__PURE__ */ jsx15(
|
|
1198
|
+
DrawerPrimitive.Root,
|
|
1199
|
+
{
|
|
1200
|
+
shouldScaleBackground,
|
|
1201
|
+
...props
|
|
1202
|
+
}
|
|
1203
|
+
);
|
|
1204
|
+
Drawer.displayName = "Drawer";
|
|
1205
|
+
var DrawerTrigger = DrawerPrimitive.Trigger;
|
|
1206
|
+
var DrawerPortal = DrawerPrimitive.Portal;
|
|
1207
|
+
var DrawerClose = DrawerPrimitive.Close;
|
|
1208
|
+
var DrawerOverlay = React14.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx15(
|
|
1209
|
+
DrawerPrimitive.Overlay,
|
|
1210
|
+
{
|
|
1211
|
+
className: cn("fixed inset-0 z-50 bg-black/80", className),
|
|
1212
|
+
ref,
|
|
1213
|
+
...props
|
|
1214
|
+
}
|
|
1215
|
+
));
|
|
1216
|
+
DrawerOverlay.displayName = DrawerPrimitive.Overlay.displayName;
|
|
1217
|
+
var DrawerContent = React14.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs8(DrawerPortal, { children: [
|
|
1218
|
+
/* @__PURE__ */ jsx15(DrawerOverlay, {}),
|
|
1219
|
+
/* @__PURE__ */ jsxs8(
|
|
1220
|
+
DrawerPrimitive.Content,
|
|
1221
|
+
{
|
|
1222
|
+
className: cn(
|
|
1223
|
+
"bg-background fixed inset-x-0 bottom-0 z-50 mt-24 flex h-auto flex-col rounded-t-[10px] border",
|
|
1224
|
+
className
|
|
1225
|
+
),
|
|
1226
|
+
ref,
|
|
1227
|
+
...props,
|
|
1228
|
+
children: [
|
|
1229
|
+
/* @__PURE__ */ jsx15("div", { className: "bg-muted mx-auto mt-4 h-2 w-[100px] rounded-full" }),
|
|
1230
|
+
children
|
|
1231
|
+
]
|
|
1232
|
+
}
|
|
1233
|
+
)
|
|
1234
|
+
] }));
|
|
1235
|
+
DrawerContent.displayName = "DrawerContent";
|
|
1236
|
+
var DrawerHeader = ({
|
|
1237
|
+
className,
|
|
1238
|
+
...props
|
|
1239
|
+
}) => /* @__PURE__ */ jsx15(
|
|
1240
|
+
"div",
|
|
1241
|
+
{
|
|
1242
|
+
className: cn("grid gap-1.5 p-4 text-center sm:text-left", className),
|
|
1243
|
+
...props
|
|
1244
|
+
}
|
|
1245
|
+
);
|
|
1246
|
+
DrawerHeader.displayName = "DrawerHeader";
|
|
1247
|
+
var DrawerFooter = ({
|
|
1248
|
+
className,
|
|
1249
|
+
...props
|
|
1250
|
+
}) => /* @__PURE__ */ jsx15(
|
|
1251
|
+
"div",
|
|
1252
|
+
{
|
|
1253
|
+
className: cn("mt-auto flex flex-col gap-2 p-4", className),
|
|
1254
|
+
...props
|
|
1255
|
+
}
|
|
1256
|
+
);
|
|
1257
|
+
DrawerFooter.displayName = "DrawerFooter";
|
|
1258
|
+
var DrawerTitle = React14.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx15(
|
|
1259
|
+
DrawerPrimitive.Title,
|
|
1260
|
+
{
|
|
1261
|
+
className: cn(
|
|
1262
|
+
"text-lg leading-none font-semibold tracking-tight",
|
|
1263
|
+
className
|
|
1264
|
+
),
|
|
1265
|
+
ref,
|
|
1266
|
+
...props
|
|
1267
|
+
}
|
|
1268
|
+
));
|
|
1269
|
+
DrawerTitle.displayName = DrawerPrimitive.Title.displayName;
|
|
1270
|
+
var DrawerDescription = React14.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx15(
|
|
1271
|
+
DrawerPrimitive.Description,
|
|
1272
|
+
{
|
|
1273
|
+
className: cn("text-muted-foreground text-sm", className),
|
|
1274
|
+
ref,
|
|
1275
|
+
...props
|
|
1276
|
+
}
|
|
1277
|
+
));
|
|
1278
|
+
DrawerDescription.displayName = DrawerPrimitive.Description.displayName;
|
|
1279
|
+
|
|
1280
|
+
// src/components/ui/dropdown-menu/index.tsx
|
|
1281
|
+
import { Check as Check3, ChevronRight as ChevronRight3, Circle as Circle2 } from "lucide-react";
|
|
1282
|
+
import * as React15 from "react";
|
|
1283
|
+
import * as DropdownMenuPrimitive from "@radix-ui/react-dropdown-menu";
|
|
1284
|
+
import { jsx as jsx16, jsxs as jsxs9 } from "react/jsx-runtime";
|
|
1285
|
+
var DropdownMenu = DropdownMenuPrimitive.Root;
|
|
1286
|
+
var DropdownMenuTrigger = DropdownMenuPrimitive.Trigger;
|
|
1287
|
+
var DropdownMenuGroup = DropdownMenuPrimitive.Group;
|
|
1288
|
+
var DropdownMenuPortal = DropdownMenuPrimitive.Portal;
|
|
1289
|
+
var DropdownMenuSub = DropdownMenuPrimitive.Sub;
|
|
1290
|
+
var DropdownMenuRadioGroup = DropdownMenuPrimitive.RadioGroup;
|
|
1291
|
+
var DropdownMenuSubTrigger = React15.forwardRef(({ className, inset, children, ...props }, ref) => /* @__PURE__ */ jsxs9(
|
|
1292
|
+
DropdownMenuPrimitive.SubTrigger,
|
|
1293
|
+
{
|
|
1294
|
+
className: cn(
|
|
1295
|
+
"focus:bg-accent data-[state=open]:bg-accent flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none select-none [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",
|
|
1296
|
+
inset && "pl-8",
|
|
1297
|
+
className
|
|
1298
|
+
),
|
|
1299
|
+
ref,
|
|
1300
|
+
...props,
|
|
1301
|
+
children: [
|
|
1302
|
+
children,
|
|
1303
|
+
/* @__PURE__ */ jsx16(ChevronRight3, { className: "ml-auto" })
|
|
1304
|
+
]
|
|
1305
|
+
}
|
|
1306
|
+
));
|
|
1307
|
+
DropdownMenuSubTrigger.displayName = DropdownMenuPrimitive.SubTrigger.displayName;
|
|
1308
|
+
var DropdownMenuSubContent = React15.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx16(
|
|
1309
|
+
DropdownMenuPrimitive.SubContent,
|
|
1310
|
+
{
|
|
1311
|
+
className: cn(
|
|
1312
|
+
"bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 min-w-[8rem] origin-[--radix-dropdown-menu-content-transform-origin] overflow-hidden rounded-md border p-1 shadow-lg",
|
|
1313
|
+
className
|
|
1314
|
+
),
|
|
1315
|
+
ref,
|
|
1316
|
+
...props
|
|
1317
|
+
}
|
|
1318
|
+
));
|
|
1319
|
+
DropdownMenuSubContent.displayName = DropdownMenuPrimitive.SubContent.displayName;
|
|
1320
|
+
var DropdownMenuContent = React15.forwardRef(({ className, sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsx16(DropdownMenuPrimitive.Portal, { children: /* @__PURE__ */ jsx16(
|
|
1321
|
+
DropdownMenuPrimitive.Content,
|
|
1322
|
+
{
|
|
1323
|
+
className: cn(
|
|
1324
|
+
"bg-popover text-popover-foreground z-50 max-h-(--radix-dropdown-menu-content-available-height) min-w-[8rem] overflow-x-hidden overflow-y-auto rounded-md border p-1 shadow-md",
|
|
1325
|
+
"data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 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 origin-[--radix-dropdown-menu-content-transform-origin]",
|
|
1326
|
+
className
|
|
1327
|
+
),
|
|
1328
|
+
ref,
|
|
1329
|
+
sideOffset,
|
|
1330
|
+
...props
|
|
1331
|
+
}
|
|
1332
|
+
) }));
|
|
1333
|
+
DropdownMenuContent.displayName = DropdownMenuPrimitive.Content.displayName;
|
|
1334
|
+
var DropdownMenuItem = React15.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx16(
|
|
1335
|
+
DropdownMenuPrimitive.Item,
|
|
1336
|
+
{
|
|
1337
|
+
className: cn(
|
|
1338
|
+
"focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm transition-colors outline-none select-none data-disabled:pointer-events-none data-disabled:opacity-50 [&>svg]:size-4 [&>svg]:shrink-0",
|
|
1339
|
+
inset && "pl-8",
|
|
1340
|
+
className
|
|
1341
|
+
),
|
|
1342
|
+
ref,
|
|
1343
|
+
...props
|
|
1344
|
+
}
|
|
1345
|
+
));
|
|
1346
|
+
DropdownMenuItem.displayName = DropdownMenuPrimitive.Item.displayName;
|
|
1347
|
+
var DropdownMenuCheckboxItem = React15.forwardRef(({ className, children, checked, ...props }, ref) => /* @__PURE__ */ jsxs9(
|
|
1348
|
+
DropdownMenuPrimitive.CheckboxItem,
|
|
1349
|
+
{
|
|
1350
|
+
className: cn(
|
|
1351
|
+
"focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center rounded-sm py-1.5 pr-2 pl-8 text-sm transition-colors outline-none select-none data-disabled:pointer-events-none data-disabled:opacity-50",
|
|
1352
|
+
className
|
|
1353
|
+
),
|
|
1354
|
+
checked,
|
|
1355
|
+
ref,
|
|
1356
|
+
...props,
|
|
1357
|
+
children: [
|
|
1358
|
+
/* @__PURE__ */ jsx16("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsx16(DropdownMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx16(Check3, { className: "h-4 w-4" }) }) }),
|
|
1359
|
+
children
|
|
1360
|
+
]
|
|
1361
|
+
}
|
|
1362
|
+
));
|
|
1363
|
+
DropdownMenuCheckboxItem.displayName = DropdownMenuPrimitive.CheckboxItem.displayName;
|
|
1364
|
+
var DropdownMenuRadioItem = React15.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs9(
|
|
1365
|
+
DropdownMenuPrimitive.RadioItem,
|
|
1366
|
+
{
|
|
1367
|
+
className: cn(
|
|
1368
|
+
"focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center rounded-sm py-1.5 pr-2 pl-8 text-sm transition-colors outline-none select-none data-disabled:pointer-events-none data-disabled:opacity-50",
|
|
1369
|
+
className
|
|
1370
|
+
),
|
|
1371
|
+
ref,
|
|
1372
|
+
...props,
|
|
1373
|
+
children: [
|
|
1374
|
+
/* @__PURE__ */ jsx16("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsx16(DropdownMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx16(Circle2, { className: "h-2 w-2 fill-current" }) }) }),
|
|
1375
|
+
children
|
|
1376
|
+
]
|
|
1377
|
+
}
|
|
1378
|
+
));
|
|
1379
|
+
DropdownMenuRadioItem.displayName = DropdownMenuPrimitive.RadioItem.displayName;
|
|
1380
|
+
var DropdownMenuLabel = React15.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx16(
|
|
1381
|
+
DropdownMenuPrimitive.Label,
|
|
1382
|
+
{
|
|
1383
|
+
className: cn(
|
|
1384
|
+
"px-2 py-1.5 text-sm font-semibold",
|
|
1385
|
+
inset && "pl-8",
|
|
1386
|
+
className
|
|
1387
|
+
),
|
|
1388
|
+
ref,
|
|
1389
|
+
...props
|
|
1390
|
+
}
|
|
1391
|
+
));
|
|
1392
|
+
DropdownMenuLabel.displayName = DropdownMenuPrimitive.Label.displayName;
|
|
1393
|
+
var DropdownMenuSeparator = React15.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx16(
|
|
1394
|
+
DropdownMenuPrimitive.Separator,
|
|
1395
|
+
{
|
|
1396
|
+
className: cn("bg-muted -mx-1 my-1 h-px", className),
|
|
1397
|
+
ref,
|
|
1398
|
+
...props
|
|
1399
|
+
}
|
|
1400
|
+
));
|
|
1401
|
+
DropdownMenuSeparator.displayName = DropdownMenuPrimitive.Separator.displayName;
|
|
1402
|
+
var DropdownMenuShortcut = ({
|
|
1403
|
+
className,
|
|
1404
|
+
...props
|
|
1405
|
+
}) => {
|
|
1406
|
+
return /* @__PURE__ */ jsx16(
|
|
1407
|
+
"span",
|
|
1408
|
+
{
|
|
1409
|
+
className: cn("ml-auto text-xs tracking-widest opacity-60", className),
|
|
1410
|
+
...props
|
|
1411
|
+
}
|
|
1412
|
+
);
|
|
1413
|
+
};
|
|
1414
|
+
DropdownMenuShortcut.displayName = "DropdownMenuShortcut";
|
|
1415
|
+
|
|
1416
|
+
// src/components/ui/form/index.tsx
|
|
1417
|
+
import * as React17 from "react";
|
|
1418
|
+
import {
|
|
1419
|
+
Controller,
|
|
1420
|
+
FormProvider,
|
|
1421
|
+
useFormContext
|
|
1422
|
+
} from "react-hook-form";
|
|
1423
|
+
|
|
1424
|
+
// src/components/ui/label/index.tsx
|
|
1425
|
+
import { cva as cva4 } from "class-variance-authority";
|
|
1426
|
+
import * as React16 from "react";
|
|
1427
|
+
import * as LabelPrimitive from "@radix-ui/react-label";
|
|
1428
|
+
import { jsx as jsx17 } from "react/jsx-runtime";
|
|
1429
|
+
var labelVariants = cva4(
|
|
1430
|
+
"text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70"
|
|
1431
|
+
);
|
|
1432
|
+
var Label3 = React16.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx17(
|
|
1433
|
+
LabelPrimitive.Root,
|
|
1434
|
+
{
|
|
1435
|
+
className: cn(labelVariants(), className),
|
|
1436
|
+
ref,
|
|
1437
|
+
...props
|
|
1438
|
+
}
|
|
1439
|
+
));
|
|
1440
|
+
Label3.displayName = LabelPrimitive.Root.displayName;
|
|
1441
|
+
|
|
1442
|
+
// src/components/ui/form/index.tsx
|
|
1443
|
+
import { Slot as Slot3 } from "@radix-ui/react-slot";
|
|
1444
|
+
import { jsx as jsx18 } from "react/jsx-runtime";
|
|
1445
|
+
var Form = FormProvider;
|
|
1446
|
+
var FormFieldContext = React17.createContext(null);
|
|
1447
|
+
var FormField = ({
|
|
1448
|
+
...props
|
|
1449
|
+
}) => {
|
|
1450
|
+
return /* @__PURE__ */ jsx18(FormFieldContext.Provider, { value: { name: props.name }, children: /* @__PURE__ */ jsx18(Controller, { ...props }) });
|
|
1451
|
+
};
|
|
1452
|
+
var useFormField = () => {
|
|
1453
|
+
const fieldContext = React17.useContext(FormFieldContext);
|
|
1454
|
+
const itemContext = React17.useContext(FormItemContext);
|
|
1455
|
+
const { getFieldState, formState } = useFormContext();
|
|
1456
|
+
if (!fieldContext) {
|
|
1457
|
+
throw new Error("useFormField should be used within <FormField>");
|
|
1458
|
+
}
|
|
1459
|
+
if (!itemContext) {
|
|
1460
|
+
throw new Error("useFormField should be used within <FormItem>");
|
|
1461
|
+
}
|
|
1462
|
+
const fieldState = getFieldState(fieldContext.name, formState);
|
|
1463
|
+
const { id: id2 } = itemContext;
|
|
1464
|
+
return {
|
|
1465
|
+
id: id2,
|
|
1466
|
+
name: fieldContext.name,
|
|
1467
|
+
formItemId: `${id2}-form-item`,
|
|
1468
|
+
formDescriptionId: `${id2}-form-item-description`,
|
|
1469
|
+
formMessageId: `${id2}-form-item-message`,
|
|
1470
|
+
...fieldState
|
|
1471
|
+
};
|
|
1472
|
+
};
|
|
1473
|
+
var FormItemContext = React17.createContext(null);
|
|
1474
|
+
var FormItem = React17.forwardRef(({ className, ...props }, ref) => {
|
|
1475
|
+
const id2 = React17.useId();
|
|
1476
|
+
return /* @__PURE__ */ jsx18(FormItemContext.Provider, { value: { id: id2 }, children: /* @__PURE__ */ jsx18("div", { className: cn("space-y-2", className), ref, ...props }) });
|
|
1477
|
+
});
|
|
1478
|
+
FormItem.displayName = "FormItem";
|
|
1479
|
+
var FormLabel = React17.forwardRef(({ className, ...props }, ref) => {
|
|
1480
|
+
const { error, formItemId } = useFormField();
|
|
1481
|
+
return /* @__PURE__ */ jsx18(
|
|
1482
|
+
Label3,
|
|
1483
|
+
{
|
|
1484
|
+
className: cn(error && "text-destructive", className),
|
|
1485
|
+
htmlFor: formItemId,
|
|
1486
|
+
ref,
|
|
1487
|
+
...props
|
|
1488
|
+
}
|
|
1489
|
+
);
|
|
1490
|
+
});
|
|
1491
|
+
FormLabel.displayName = "FormLabel";
|
|
1492
|
+
var FormControl = React17.forwardRef(({ ...props }, ref) => {
|
|
1493
|
+
const { error, formItemId, formDescriptionId, formMessageId } = useFormField();
|
|
1494
|
+
return /* @__PURE__ */ jsx18(
|
|
1495
|
+
Slot3,
|
|
1496
|
+
{
|
|
1497
|
+
"aria-describedby": !error ? `${formDescriptionId}` : `${formDescriptionId} ${formMessageId}`,
|
|
1498
|
+
"aria-invalid": !!error,
|
|
1499
|
+
id: formItemId,
|
|
1500
|
+
ref,
|
|
1501
|
+
...props
|
|
1502
|
+
}
|
|
1503
|
+
);
|
|
1504
|
+
});
|
|
1505
|
+
FormControl.displayName = "FormControl";
|
|
1506
|
+
var FormDescription = React17.forwardRef(({ className, ...props }, ref) => {
|
|
1507
|
+
const { formDescriptionId } = useFormField();
|
|
1508
|
+
return /* @__PURE__ */ jsx18(
|
|
1509
|
+
"p",
|
|
1510
|
+
{
|
|
1511
|
+
className: cn("text-muted-foreground text-[0.8rem]", className),
|
|
1512
|
+
id: formDescriptionId,
|
|
1513
|
+
ref,
|
|
1514
|
+
...props
|
|
1515
|
+
}
|
|
1516
|
+
);
|
|
1517
|
+
});
|
|
1518
|
+
FormDescription.displayName = "FormDescription";
|
|
1519
|
+
var FormMessage = React17.forwardRef(({ className, children, ...props }, ref) => {
|
|
1520
|
+
const { error, formMessageId } = useFormField();
|
|
1521
|
+
const body = error ? String(error?.message ?? "") : children;
|
|
1522
|
+
if (!body) {
|
|
1523
|
+
return null;
|
|
1524
|
+
}
|
|
1525
|
+
return /* @__PURE__ */ jsx18(
|
|
1526
|
+
"p",
|
|
1527
|
+
{
|
|
1528
|
+
className: cn("text-destructive text-[0.8rem] font-medium", className),
|
|
1529
|
+
id: formMessageId,
|
|
1530
|
+
ref,
|
|
1531
|
+
...props,
|
|
1532
|
+
children: body
|
|
1533
|
+
}
|
|
1534
|
+
);
|
|
1535
|
+
});
|
|
1536
|
+
FormMessage.displayName = "FormMessage";
|
|
1537
|
+
|
|
1538
|
+
// src/components/ui/hover-card/index.tsx
|
|
1539
|
+
import * as React18 from "react";
|
|
1540
|
+
import * as HoverCardPrimitive from "@radix-ui/react-hover-card";
|
|
1541
|
+
import { jsx as jsx19 } from "react/jsx-runtime";
|
|
1542
|
+
var HoverCard = HoverCardPrimitive.Root;
|
|
1543
|
+
var HoverCardTrigger = HoverCardPrimitive.Trigger;
|
|
1544
|
+
var HoverCardContent = React18.forwardRef(({ className, align = "center", sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsx19(
|
|
1545
|
+
HoverCardPrimitive.Content,
|
|
1546
|
+
{
|
|
1547
|
+
className: cn(
|
|
1548
|
+
"bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-64 origin-[--radix-hover-card-content-transform-origin] rounded-md border p-4 shadow-md outline-none",
|
|
1549
|
+
className
|
|
1550
|
+
),
|
|
1551
|
+
align,
|
|
1552
|
+
ref,
|
|
1553
|
+
sideOffset,
|
|
1554
|
+
...props
|
|
1555
|
+
}
|
|
1556
|
+
));
|
|
1557
|
+
HoverCardContent.displayName = HoverCardPrimitive.Content.displayName;
|
|
1558
|
+
|
|
1559
|
+
// src/components/ui/input/index.tsx
|
|
1560
|
+
import * as React19 from "react";
|
|
1561
|
+
import { jsx as jsx20 } from "react/jsx-runtime";
|
|
1562
|
+
var Input = React19.forwardRef(
|
|
1563
|
+
({ className, type, ...props }, ref) => {
|
|
1564
|
+
return /* @__PURE__ */ jsx20(
|
|
1565
|
+
"input",
|
|
1566
|
+
{
|
|
1567
|
+
className: cn(
|
|
1568
|
+
"border-input file:text-foreground placeholder:text-muted-foreground focus-visible:ring-ring flex h-9 w-full rounded-md border bg-transparent px-3 py-1 text-base shadow-sm transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium focus-visible:ring-1 focus-visible:outline-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",
|
|
1569
|
+
className
|
|
1570
|
+
),
|
|
1571
|
+
ref,
|
|
1572
|
+
type,
|
|
1573
|
+
...props
|
|
1574
|
+
}
|
|
1575
|
+
);
|
|
1576
|
+
}
|
|
1577
|
+
);
|
|
1578
|
+
Input.displayName = "Input";
|
|
1579
|
+
|
|
1580
|
+
// src/components/ui/menubar/index.tsx
|
|
1581
|
+
import { Check as Check4, ChevronRight as ChevronRight4, Circle as Circle3 } from "lucide-react";
|
|
1582
|
+
import * as React20 from "react";
|
|
1583
|
+
import * as MenubarPrimitive from "@radix-ui/react-menubar";
|
|
1584
|
+
import { jsx as jsx21, jsxs as jsxs10 } from "react/jsx-runtime";
|
|
1585
|
+
function MenubarMenu({
|
|
1586
|
+
...props
|
|
1587
|
+
}) {
|
|
1588
|
+
return /* @__PURE__ */ jsx21(MenubarPrimitive.Menu, { ...props });
|
|
1589
|
+
}
|
|
1590
|
+
function MenubarGroup({
|
|
1591
|
+
...props
|
|
1592
|
+
}) {
|
|
1593
|
+
return /* @__PURE__ */ jsx21(MenubarPrimitive.Group, { ...props });
|
|
1594
|
+
}
|
|
1595
|
+
function MenubarPortal({
|
|
1596
|
+
...props
|
|
1597
|
+
}) {
|
|
1598
|
+
return /* @__PURE__ */ jsx21(MenubarPrimitive.Portal, { ...props });
|
|
1599
|
+
}
|
|
1600
|
+
function MenubarRadioGroup({
|
|
1601
|
+
...props
|
|
1602
|
+
}) {
|
|
1603
|
+
return /* @__PURE__ */ jsx21(MenubarPrimitive.RadioGroup, { ...props });
|
|
1604
|
+
}
|
|
1605
|
+
function MenubarSub({
|
|
1606
|
+
...props
|
|
1607
|
+
}) {
|
|
1608
|
+
return /* @__PURE__ */ jsx21(MenubarPrimitive.Sub, { "data-slot": "menubar-sub", ...props });
|
|
1609
|
+
}
|
|
1610
|
+
var Menubar = React20.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx21(
|
|
1611
|
+
MenubarPrimitive.Root,
|
|
1612
|
+
{
|
|
1613
|
+
className: cn(
|
|
1614
|
+
"bg-background flex h-9 items-center space-x-1 rounded-md border p-1 shadow-sm",
|
|
1615
|
+
className
|
|
1616
|
+
),
|
|
1617
|
+
ref,
|
|
1618
|
+
...props
|
|
1619
|
+
}
|
|
1620
|
+
));
|
|
1621
|
+
Menubar.displayName = MenubarPrimitive.Root.displayName;
|
|
1622
|
+
var MenubarTrigger = React20.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx21(
|
|
1623
|
+
MenubarPrimitive.Trigger,
|
|
1624
|
+
{
|
|
1625
|
+
className: cn(
|
|
1626
|
+
"focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground flex cursor-default items-center rounded-sm px-3 py-1 text-sm font-medium outline-none select-none",
|
|
1627
|
+
className
|
|
1628
|
+
),
|
|
1629
|
+
ref,
|
|
1630
|
+
...props
|
|
1631
|
+
}
|
|
1632
|
+
));
|
|
1633
|
+
MenubarTrigger.displayName = MenubarPrimitive.Trigger.displayName;
|
|
1634
|
+
var MenubarSubTrigger = React20.forwardRef(({ className, inset, children, ...props }, ref) => /* @__PURE__ */ jsxs10(
|
|
1635
|
+
MenubarPrimitive.SubTrigger,
|
|
1636
|
+
{
|
|
1637
|
+
className: cn(
|
|
1638
|
+
"focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground flex cursor-default items-center rounded-sm px-2 py-1.5 text-sm outline-none select-none",
|
|
1639
|
+
inset && "pl-8",
|
|
1640
|
+
className
|
|
1641
|
+
),
|
|
1642
|
+
ref,
|
|
1643
|
+
...props,
|
|
1644
|
+
children: [
|
|
1645
|
+
children,
|
|
1646
|
+
/* @__PURE__ */ jsx21(ChevronRight4, { className: "ml-auto h-4 w-4" })
|
|
1647
|
+
]
|
|
1648
|
+
}
|
|
1649
|
+
));
|
|
1650
|
+
MenubarSubTrigger.displayName = MenubarPrimitive.SubTrigger.displayName;
|
|
1651
|
+
var MenubarSubContent = React20.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx21(
|
|
1652
|
+
MenubarPrimitive.SubContent,
|
|
1653
|
+
{
|
|
1654
|
+
className: cn(
|
|
1655
|
+
"bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 min-w-[8rem] origin-[--radix-menubar-content-transform-origin] overflow-hidden rounded-md border p-1 shadow-lg",
|
|
1656
|
+
className
|
|
1657
|
+
),
|
|
1658
|
+
ref,
|
|
1659
|
+
...props
|
|
1660
|
+
}
|
|
1661
|
+
));
|
|
1662
|
+
MenubarSubContent.displayName = MenubarPrimitive.SubContent.displayName;
|
|
1663
|
+
var MenubarContent = React20.forwardRef(
|
|
1664
|
+
({ className, align = "start", alignOffset = -4, sideOffset = 8, ...props }, ref) => /* @__PURE__ */ jsx21(MenubarPrimitive.Portal, { children: /* @__PURE__ */ jsx21(
|
|
1665
|
+
MenubarPrimitive.Content,
|
|
1666
|
+
{
|
|
1667
|
+
className: cn(
|
|
1668
|
+
"bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 min-w-[12rem] origin-[--radix-menubar-content-transform-origin] overflow-hidden rounded-md border p-1 shadow-md",
|
|
1669
|
+
className
|
|
1670
|
+
),
|
|
1671
|
+
align,
|
|
1672
|
+
alignOffset,
|
|
1673
|
+
ref,
|
|
1674
|
+
sideOffset,
|
|
1675
|
+
...props
|
|
1676
|
+
}
|
|
1677
|
+
) })
|
|
1678
|
+
);
|
|
1679
|
+
MenubarContent.displayName = MenubarPrimitive.Content.displayName;
|
|
1680
|
+
var MenubarItem = React20.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx21(
|
|
1681
|
+
MenubarPrimitive.Item,
|
|
1682
|
+
{
|
|
1683
|
+
className: cn(
|
|
1684
|
+
"focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center rounded-sm px-2 py-1.5 text-sm outline-none select-none data-disabled:pointer-events-none data-disabled:opacity-50",
|
|
1685
|
+
inset && "pl-8",
|
|
1686
|
+
className
|
|
1687
|
+
),
|
|
1688
|
+
ref,
|
|
1689
|
+
...props
|
|
1690
|
+
}
|
|
1691
|
+
));
|
|
1692
|
+
MenubarItem.displayName = MenubarPrimitive.Item.displayName;
|
|
1693
|
+
var MenubarCheckboxItem = React20.forwardRef(({ className, children, checked, ...props }, ref) => /* @__PURE__ */ jsxs10(
|
|
1694
|
+
MenubarPrimitive.CheckboxItem,
|
|
1695
|
+
{
|
|
1696
|
+
className: cn(
|
|
1697
|
+
"focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center rounded-sm py-1.5 pr-2 pl-8 text-sm outline-none select-none data-disabled:pointer-events-none data-disabled:opacity-50",
|
|
1698
|
+
className
|
|
1699
|
+
),
|
|
1700
|
+
checked,
|
|
1701
|
+
ref,
|
|
1702
|
+
...props,
|
|
1703
|
+
children: [
|
|
1704
|
+
/* @__PURE__ */ jsx21("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsx21(MenubarPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx21(Check4, { className: "h-4 w-4" }) }) }),
|
|
1705
|
+
children
|
|
1706
|
+
]
|
|
1707
|
+
}
|
|
1708
|
+
));
|
|
1709
|
+
MenubarCheckboxItem.displayName = MenubarPrimitive.CheckboxItem.displayName;
|
|
1710
|
+
var MenubarRadioItem = React20.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs10(
|
|
1711
|
+
MenubarPrimitive.RadioItem,
|
|
1712
|
+
{
|
|
1713
|
+
className: cn(
|
|
1714
|
+
"focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center rounded-sm py-1.5 pr-2 pl-8 text-sm outline-none select-none data-disabled:pointer-events-none data-disabled:opacity-50",
|
|
1715
|
+
className
|
|
1716
|
+
),
|
|
1717
|
+
ref,
|
|
1718
|
+
...props,
|
|
1719
|
+
children: [
|
|
1720
|
+
/* @__PURE__ */ jsx21("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsx21(MenubarPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx21(Circle3, { className: "h-4 w-4 fill-current" }) }) }),
|
|
1721
|
+
children
|
|
1722
|
+
]
|
|
1723
|
+
}
|
|
1724
|
+
));
|
|
1725
|
+
MenubarRadioItem.displayName = MenubarPrimitive.RadioItem.displayName;
|
|
1726
|
+
var MenubarLabel = React20.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx21(
|
|
1727
|
+
MenubarPrimitive.Label,
|
|
1728
|
+
{
|
|
1729
|
+
className: cn(
|
|
1730
|
+
"px-2 py-1.5 text-sm font-semibold",
|
|
1731
|
+
inset && "pl-8",
|
|
1732
|
+
className
|
|
1733
|
+
),
|
|
1734
|
+
ref,
|
|
1735
|
+
...props
|
|
1736
|
+
}
|
|
1737
|
+
));
|
|
1738
|
+
MenubarLabel.displayName = MenubarPrimitive.Label.displayName;
|
|
1739
|
+
var MenubarSeparator = React20.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx21(
|
|
1740
|
+
MenubarPrimitive.Separator,
|
|
1741
|
+
{
|
|
1742
|
+
className: cn("bg-muted -mx-1 my-1 h-px", className),
|
|
1743
|
+
ref,
|
|
1744
|
+
...props
|
|
1745
|
+
}
|
|
1746
|
+
));
|
|
1747
|
+
MenubarSeparator.displayName = MenubarPrimitive.Separator.displayName;
|
|
1748
|
+
var MenubarShortcut = ({
|
|
1749
|
+
className,
|
|
1750
|
+
...props
|
|
1751
|
+
}) => {
|
|
1752
|
+
return /* @__PURE__ */ jsx21(
|
|
1753
|
+
"span",
|
|
1754
|
+
{
|
|
1755
|
+
className: cn(
|
|
1756
|
+
"text-muted-foreground ml-auto text-xs tracking-widest",
|
|
1757
|
+
className
|
|
1758
|
+
),
|
|
1759
|
+
...props
|
|
1760
|
+
}
|
|
1761
|
+
);
|
|
1762
|
+
};
|
|
1763
|
+
MenubarShortcut.displayname = "MenubarShortcut";
|
|
1764
|
+
|
|
1765
|
+
// src/components/ui/navigation-menu/index.tsx
|
|
1766
|
+
import { cva as cva5 } from "class-variance-authority";
|
|
1767
|
+
import { ChevronDown as ChevronDown2 } from "lucide-react";
|
|
1768
|
+
import * as React21 from "react";
|
|
1769
|
+
import * as NavigationMenuPrimitive from "@radix-ui/react-navigation-menu";
|
|
1770
|
+
import { jsx as jsx22, jsxs as jsxs11 } from "react/jsx-runtime";
|
|
1771
|
+
var NavigationMenu = React21.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs11(
|
|
1772
|
+
NavigationMenuPrimitive.Root,
|
|
1773
|
+
{
|
|
1774
|
+
className: cn(
|
|
1775
|
+
"relative z-10 flex max-w-max flex-1 items-center justify-center",
|
|
1776
|
+
className
|
|
1777
|
+
),
|
|
1778
|
+
ref,
|
|
1779
|
+
...props,
|
|
1780
|
+
children: [
|
|
1781
|
+
children,
|
|
1782
|
+
/* @__PURE__ */ jsx22(NavigationMenuViewport, {})
|
|
1783
|
+
]
|
|
1784
|
+
}
|
|
1785
|
+
));
|
|
1786
|
+
NavigationMenu.displayName = NavigationMenuPrimitive.Root.displayName;
|
|
1787
|
+
var NavigationMenuList = React21.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx22(
|
|
1788
|
+
NavigationMenuPrimitive.List,
|
|
1789
|
+
{
|
|
1790
|
+
className: cn(
|
|
1791
|
+
"group flex flex-1 list-none items-center justify-center space-x-1",
|
|
1792
|
+
className
|
|
1793
|
+
),
|
|
1794
|
+
ref,
|
|
1795
|
+
...props
|
|
1796
|
+
}
|
|
1797
|
+
));
|
|
1798
|
+
NavigationMenuList.displayName = NavigationMenuPrimitive.List.displayName;
|
|
1799
|
+
var NavigationMenuItem = NavigationMenuPrimitive.Item;
|
|
1800
|
+
var navigationMenuTriggerStyle = cva5(
|
|
1801
|
+
"group inline-flex h-9 w-max items-center justify-center rounded-md bg-background px-4 py-2 text-sm font-medium transition-colors hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground focus:outline-none disabled:pointer-events-none disabled:opacity-50 data-[state=open]:text-accent-foreground data-[state=open]:bg-accent/50 data-[state=open]:hover:bg-accent data-[state=open]:focus:bg-accent"
|
|
1802
|
+
);
|
|
1803
|
+
var NavigationMenuTrigger = React21.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs11(
|
|
1804
|
+
NavigationMenuPrimitive.Trigger,
|
|
1805
|
+
{
|
|
1806
|
+
className: cn(navigationMenuTriggerStyle(), "group", className),
|
|
1807
|
+
ref,
|
|
1808
|
+
...props,
|
|
1809
|
+
children: [
|
|
1810
|
+
children,
|
|
1811
|
+
" ",
|
|
1812
|
+
/* @__PURE__ */ jsx22(
|
|
1813
|
+
ChevronDown2,
|
|
1814
|
+
{
|
|
1815
|
+
"aria-hidden": "true",
|
|
1816
|
+
className: "relative top-px ml-1 h-3 w-3 transition duration-300 group-data-[state=open]:rotate-180"
|
|
1817
|
+
}
|
|
1818
|
+
)
|
|
1819
|
+
]
|
|
1820
|
+
}
|
|
1821
|
+
));
|
|
1822
|
+
NavigationMenuTrigger.displayName = NavigationMenuPrimitive.Trigger.displayName;
|
|
1823
|
+
var NavigationMenuContent = React21.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx22(
|
|
1824
|
+
NavigationMenuPrimitive.Content,
|
|
1825
|
+
{
|
|
1826
|
+
className: cn(
|
|
1827
|
+
"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 top-0 left-0 w-full md:absolute md:w-auto",
|
|
1828
|
+
className
|
|
1829
|
+
),
|
|
1830
|
+
ref,
|
|
1831
|
+
...props
|
|
1832
|
+
}
|
|
1833
|
+
));
|
|
1834
|
+
NavigationMenuContent.displayName = NavigationMenuPrimitive.Content.displayName;
|
|
1835
|
+
var NavigationMenuLink = NavigationMenuPrimitive.Link;
|
|
1836
|
+
var NavigationMenuViewport = React21.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx22("div", { className: cn("absolute top-full left-0 flex justify-center"), children: /* @__PURE__ */ jsx22(
|
|
1837
|
+
NavigationMenuPrimitive.Viewport,
|
|
1838
|
+
{
|
|
1839
|
+
className: cn(
|
|
1840
|
+
"origin-top-center bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-90 relative mt-1.5 h-(--radix-navigation-menu-viewport-height) w-full overflow-hidden rounded-md border shadow md:w-[var(--radix-navigation-menu-viewport-width)]",
|
|
1841
|
+
className
|
|
1842
|
+
),
|
|
1843
|
+
ref,
|
|
1844
|
+
...props
|
|
1845
|
+
}
|
|
1846
|
+
) }));
|
|
1847
|
+
NavigationMenuViewport.displayName = NavigationMenuPrimitive.Viewport.displayName;
|
|
1848
|
+
var NavigationMenuIndicator = React21.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx22(
|
|
1849
|
+
NavigationMenuPrimitive.Indicator,
|
|
1850
|
+
{
|
|
1851
|
+
className: cn(
|
|
1852
|
+
"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",
|
|
1853
|
+
className
|
|
1854
|
+
),
|
|
1855
|
+
ref,
|
|
1856
|
+
...props,
|
|
1857
|
+
children: /* @__PURE__ */ jsx22("div", { className: "bg-border relative top-[60%] h-2 w-2 rotate-45 rounded-tl-sm shadow-md" })
|
|
1858
|
+
}
|
|
1859
|
+
));
|
|
1860
|
+
NavigationMenuIndicator.displayName = NavigationMenuPrimitive.Indicator.displayName;
|
|
1861
|
+
|
|
1862
|
+
// src/components/ui/pagination/index.tsx
|
|
1863
|
+
import { ChevronLeft, ChevronRight as ChevronRight5, MoreHorizontal as MoreHorizontal2 } from "lucide-react";
|
|
1864
|
+
import * as React22 from "react";
|
|
1865
|
+
import { jsx as jsx23, jsxs as jsxs12 } from "react/jsx-runtime";
|
|
1866
|
+
var Pagination = ({ className, ...props }) => /* @__PURE__ */ jsx23(
|
|
1867
|
+
"nav",
|
|
1868
|
+
{
|
|
1869
|
+
"aria-label": "pagination",
|
|
1870
|
+
className: cn("mx-auto flex w-full justify-center", className),
|
|
1871
|
+
role: "navigation",
|
|
1872
|
+
...props
|
|
1873
|
+
}
|
|
1874
|
+
);
|
|
1875
|
+
Pagination.displayName = "Pagination";
|
|
1876
|
+
var PaginationContent = React22.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx23(
|
|
1877
|
+
"ul",
|
|
1878
|
+
{
|
|
1879
|
+
className: cn("flex flex-row items-center gap-1", className),
|
|
1880
|
+
ref,
|
|
1881
|
+
...props
|
|
1882
|
+
}
|
|
1883
|
+
));
|
|
1884
|
+
PaginationContent.displayName = "PaginationContent";
|
|
1885
|
+
var PaginationItem = React22.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx23("li", { className: cn("", className), ref, ...props }));
|
|
1886
|
+
PaginationItem.displayName = "PaginationItem";
|
|
1887
|
+
var PaginationLink = ({
|
|
1888
|
+
className,
|
|
1889
|
+
isActive,
|
|
1890
|
+
size = "icon",
|
|
1891
|
+
...props
|
|
1892
|
+
}) => /* @__PURE__ */ jsx23(
|
|
1893
|
+
"a",
|
|
1894
|
+
{
|
|
1895
|
+
className: cn(
|
|
1896
|
+
buttonVariants({
|
|
1897
|
+
variant: isActive ? "outline" : "ghost",
|
|
1898
|
+
size
|
|
1899
|
+
}),
|
|
1900
|
+
className
|
|
1901
|
+
),
|
|
1902
|
+
"aria-current": isActive ? "page" : void 0,
|
|
1903
|
+
...props
|
|
1904
|
+
}
|
|
1905
|
+
);
|
|
1906
|
+
PaginationLink.displayName = "PaginationLink";
|
|
1907
|
+
var PaginationPrevious = ({
|
|
1908
|
+
className,
|
|
1909
|
+
...props
|
|
1910
|
+
}) => /* @__PURE__ */ jsxs12(
|
|
1911
|
+
PaginationLink,
|
|
1912
|
+
{
|
|
1913
|
+
"aria-label": "Go to previous page",
|
|
1914
|
+
className: cn("gap-1 pl-2.5", className),
|
|
1915
|
+
size: "default",
|
|
1916
|
+
...props,
|
|
1917
|
+
children: [
|
|
1918
|
+
/* @__PURE__ */ jsx23(ChevronLeft, { className: "h-4 w-4" }),
|
|
1919
|
+
/* @__PURE__ */ jsx23("span", { children: "Previous" })
|
|
1920
|
+
]
|
|
1921
|
+
}
|
|
1922
|
+
);
|
|
1923
|
+
PaginationPrevious.displayName = "PaginationPrevious";
|
|
1924
|
+
var PaginationNext = ({
|
|
1925
|
+
className,
|
|
1926
|
+
...props
|
|
1927
|
+
}) => /* @__PURE__ */ jsxs12(
|
|
1928
|
+
PaginationLink,
|
|
1929
|
+
{
|
|
1930
|
+
"aria-label": "Go to next page",
|
|
1931
|
+
className: cn("gap-1 pr-2.5", className),
|
|
1932
|
+
size: "default",
|
|
1933
|
+
...props,
|
|
1934
|
+
children: [
|
|
1935
|
+
/* @__PURE__ */ jsx23("span", { children: "Next" }),
|
|
1936
|
+
/* @__PURE__ */ jsx23(ChevronRight5, { className: "h-4 w-4" })
|
|
1937
|
+
]
|
|
1938
|
+
}
|
|
1939
|
+
);
|
|
1940
|
+
PaginationNext.displayName = "PaginationNext";
|
|
1941
|
+
var PaginationEllipsis = ({
|
|
1942
|
+
className,
|
|
1943
|
+
...props
|
|
1944
|
+
}) => /* @__PURE__ */ jsxs12(
|
|
1945
|
+
"span",
|
|
1946
|
+
{
|
|
1947
|
+
className: cn("flex h-9 w-9 items-center justify-center", className),
|
|
1948
|
+
"aria-hidden": true,
|
|
1949
|
+
...props,
|
|
1950
|
+
children: [
|
|
1951
|
+
/* @__PURE__ */ jsx23(MoreHorizontal2, { className: "h-4 w-4" }),
|
|
1952
|
+
/* @__PURE__ */ jsx23("span", { className: "sr-only", children: "More pages" })
|
|
1953
|
+
]
|
|
1954
|
+
}
|
|
1955
|
+
);
|
|
1956
|
+
PaginationEllipsis.displayName = "PaginationEllipsis";
|
|
1957
|
+
|
|
1958
|
+
// src/components/ui/popover/index.tsx
|
|
1959
|
+
import * as React23 from "react";
|
|
1960
|
+
import * as PopoverPrimitive from "@radix-ui/react-popover";
|
|
1961
|
+
import { jsx as jsx24 } from "react/jsx-runtime";
|
|
1962
|
+
var Popover = PopoverPrimitive.Root;
|
|
1963
|
+
var PopoverTrigger = PopoverPrimitive.Trigger;
|
|
1964
|
+
var PopoverAnchor = PopoverPrimitive.Anchor;
|
|
1965
|
+
var PopoverContent = React23.forwardRef(({ className, align = "center", sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsx24(PopoverPrimitive.Portal, { children: /* @__PURE__ */ jsx24(
|
|
1966
|
+
PopoverPrimitive.Content,
|
|
1967
|
+
{
|
|
1968
|
+
className: cn(
|
|
1969
|
+
"bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-72 origin-[--radix-popover-content-transform-origin] rounded-md border p-4 shadow-md outline-none",
|
|
1970
|
+
className
|
|
1971
|
+
),
|
|
1972
|
+
align,
|
|
1973
|
+
ref,
|
|
1974
|
+
sideOffset,
|
|
1975
|
+
...props
|
|
1976
|
+
}
|
|
1977
|
+
) }));
|
|
1978
|
+
PopoverContent.displayName = PopoverPrimitive.Content.displayName;
|
|
1979
|
+
|
|
1980
|
+
// src/components/ui/progress/index.tsx
|
|
1981
|
+
import * as React24 from "react";
|
|
1982
|
+
import * as ProgressPrimitive from "@radix-ui/react-progress";
|
|
1983
|
+
import { jsx as jsx25 } from "react/jsx-runtime";
|
|
1984
|
+
var Progress = React24.forwardRef(({ className, value, ...props }, ref) => /* @__PURE__ */ jsx25(
|
|
1985
|
+
ProgressPrimitive.Root,
|
|
1986
|
+
{
|
|
1987
|
+
className: cn(
|
|
1988
|
+
"bg-primary/20 relative h-2 w-full overflow-hidden rounded-full",
|
|
1989
|
+
className
|
|
1990
|
+
),
|
|
1991
|
+
ref,
|
|
1992
|
+
...props,
|
|
1993
|
+
children: /* @__PURE__ */ jsx25(
|
|
1994
|
+
ProgressPrimitive.Indicator,
|
|
1995
|
+
{
|
|
1996
|
+
className: "bg-primary h-full w-full flex-1 transition-all",
|
|
1997
|
+
style: { transform: `translateX(-${100 - (value || 0)}%)` }
|
|
1998
|
+
}
|
|
1999
|
+
)
|
|
2000
|
+
}
|
|
2001
|
+
));
|
|
2002
|
+
Progress.displayName = ProgressPrimitive.Root.displayName;
|
|
2003
|
+
|
|
2004
|
+
// src/components/ui/radio-group/index.tsx
|
|
2005
|
+
import { Circle as Circle4 } from "lucide-react";
|
|
2006
|
+
import * as React25 from "react";
|
|
2007
|
+
import * as RadioGroupPrimitive from "@radix-ui/react-radio-group";
|
|
2008
|
+
import { jsx as jsx26 } from "react/jsx-runtime";
|
|
2009
|
+
var RadioGroup4 = React25.forwardRef(({ className, ...props }, ref) => {
|
|
2010
|
+
return /* @__PURE__ */ jsx26(
|
|
2011
|
+
RadioGroupPrimitive.Root,
|
|
2012
|
+
{
|
|
2013
|
+
className: cn("grid gap-2", className),
|
|
2014
|
+
...props,
|
|
2015
|
+
ref
|
|
2016
|
+
}
|
|
2017
|
+
);
|
|
2018
|
+
});
|
|
2019
|
+
RadioGroup4.displayName = RadioGroupPrimitive.Root.displayName;
|
|
2020
|
+
var RadioGroupItem = React25.forwardRef(({ className, ...props }, ref) => {
|
|
2021
|
+
return /* @__PURE__ */ jsx26(
|
|
2022
|
+
RadioGroupPrimitive.Item,
|
|
2023
|
+
{
|
|
2024
|
+
className: cn(
|
|
2025
|
+
"border-primary text-primary focus-visible:ring-ring aspect-square h-4 w-4 rounded-full border shadow focus:outline-none focus-visible:ring-1 disabled:cursor-not-allowed disabled:opacity-50",
|
|
2026
|
+
className
|
|
2027
|
+
),
|
|
2028
|
+
ref,
|
|
2029
|
+
...props,
|
|
2030
|
+
children: /* @__PURE__ */ jsx26(RadioGroupPrimitive.Indicator, { className: "flex items-center justify-center", children: /* @__PURE__ */ jsx26(Circle4, { className: "fill-primary h-3.5 w-3.5" }) })
|
|
2031
|
+
}
|
|
2032
|
+
);
|
|
2033
|
+
});
|
|
2034
|
+
RadioGroupItem.displayName = RadioGroupPrimitive.Item.displayName;
|
|
2035
|
+
|
|
2036
|
+
// src/components/ui/scroll-area/index.tsx
|
|
2037
|
+
import * as React26 from "react";
|
|
2038
|
+
import * as ScrollAreaPrimitive from "@radix-ui/react-scroll-area";
|
|
2039
|
+
import { jsx as jsx27, jsxs as jsxs13 } from "react/jsx-runtime";
|
|
2040
|
+
var ScrollArea = React26.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs13(
|
|
2041
|
+
ScrollAreaPrimitive.Root,
|
|
2042
|
+
{
|
|
2043
|
+
className: cn("relative overflow-hidden", className),
|
|
2044
|
+
ref,
|
|
2045
|
+
...props,
|
|
2046
|
+
children: [
|
|
2047
|
+
/* @__PURE__ */ jsx27(ScrollAreaPrimitive.Viewport, { className: "h-full w-full rounded-[inherit]", children }),
|
|
2048
|
+
/* @__PURE__ */ jsx27(ScrollBar, {}),
|
|
2049
|
+
/* @__PURE__ */ jsx27(ScrollAreaPrimitive.Corner, {})
|
|
2050
|
+
]
|
|
2051
|
+
}
|
|
2052
|
+
));
|
|
2053
|
+
ScrollArea.displayName = ScrollAreaPrimitive.Root.displayName;
|
|
2054
|
+
var ScrollBar = React26.forwardRef(({ className, orientation = "vertical", ...props }, ref) => /* @__PURE__ */ jsx27(
|
|
2055
|
+
ScrollAreaPrimitive.ScrollAreaScrollbar,
|
|
2056
|
+
{
|
|
2057
|
+
className: cn(
|
|
2058
|
+
"flex touch-none transition-colors select-none",
|
|
2059
|
+
orientation === "vertical" && "h-full w-2.5 border-l border-l-transparent p-px",
|
|
2060
|
+
orientation === "horizontal" && "h-2.5 flex-col border-t border-t-transparent p-px",
|
|
2061
|
+
className
|
|
2062
|
+
),
|
|
2063
|
+
orientation,
|
|
2064
|
+
ref,
|
|
2065
|
+
...props,
|
|
2066
|
+
children: /* @__PURE__ */ jsx27(ScrollAreaPrimitive.ScrollAreaThumb, { className: "bg-border relative flex-1 rounded-full" })
|
|
2067
|
+
}
|
|
2068
|
+
));
|
|
2069
|
+
ScrollBar.displayName = ScrollAreaPrimitive.ScrollAreaScrollbar.displayName;
|
|
2070
|
+
|
|
2071
|
+
// src/components/ui/select/index.tsx
|
|
2072
|
+
import { Check as Check5, ChevronDown as ChevronDown3, ChevronUp } from "lucide-react";
|
|
2073
|
+
import * as React27 from "react";
|
|
2074
|
+
import * as SelectPrimitive from "@radix-ui/react-select";
|
|
2075
|
+
import { jsx as jsx28, jsxs as jsxs14 } from "react/jsx-runtime";
|
|
2076
|
+
var Select = SelectPrimitive.Root;
|
|
2077
|
+
var SelectGroup = SelectPrimitive.Group;
|
|
2078
|
+
var SelectValue = SelectPrimitive.Value;
|
|
2079
|
+
var SelectTrigger = React27.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs14(
|
|
2080
|
+
SelectPrimitive.Trigger,
|
|
2081
|
+
{
|
|
2082
|
+
className: cn(
|
|
2083
|
+
"border-input ring-offset-background data-placeholder:text-muted-foreground focus:ring-ring flex h-9 w-full items-center justify-between rounded-md border bg-transparent px-3 py-2 text-sm whitespace-nowrap shadow-sm focus:ring-1 focus:outline-none disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1",
|
|
2084
|
+
className
|
|
2085
|
+
),
|
|
2086
|
+
ref,
|
|
2087
|
+
...props,
|
|
2088
|
+
children: [
|
|
2089
|
+
children,
|
|
2090
|
+
/* @__PURE__ */ jsx28(SelectPrimitive.Icon, { asChild: true, children: /* @__PURE__ */ jsx28(ChevronDown3, { className: "h-4 w-4 opacity-50" }) })
|
|
2091
|
+
]
|
|
2092
|
+
}
|
|
2093
|
+
));
|
|
2094
|
+
SelectTrigger.displayName = SelectPrimitive.Trigger.displayName;
|
|
2095
|
+
var SelectScrollUpButton = React27.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx28(
|
|
2096
|
+
SelectPrimitive.ScrollUpButton,
|
|
2097
|
+
{
|
|
2098
|
+
className: cn(
|
|
2099
|
+
"flex cursor-default items-center justify-center py-1",
|
|
2100
|
+
className
|
|
2101
|
+
),
|
|
2102
|
+
ref,
|
|
2103
|
+
...props,
|
|
2104
|
+
children: /* @__PURE__ */ jsx28(ChevronUp, { className: "h-4 w-4" })
|
|
2105
|
+
}
|
|
2106
|
+
));
|
|
2107
|
+
SelectScrollUpButton.displayName = SelectPrimitive.ScrollUpButton.displayName;
|
|
2108
|
+
var SelectScrollDownButton = React27.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx28(
|
|
2109
|
+
SelectPrimitive.ScrollDownButton,
|
|
2110
|
+
{
|
|
2111
|
+
className: cn(
|
|
2112
|
+
"flex cursor-default items-center justify-center py-1",
|
|
2113
|
+
className
|
|
2114
|
+
),
|
|
2115
|
+
ref,
|
|
2116
|
+
...props,
|
|
2117
|
+
children: /* @__PURE__ */ jsx28(ChevronDown3, { className: "h-4 w-4" })
|
|
2118
|
+
}
|
|
2119
|
+
));
|
|
2120
|
+
SelectScrollDownButton.displayName = SelectPrimitive.ScrollDownButton.displayName;
|
|
2121
|
+
var SelectContent = React27.forwardRef(({ className, children, position = "popper", ...props }, ref) => /* @__PURE__ */ jsx28(SelectPrimitive.Portal, { children: /* @__PURE__ */ jsxs14(
|
|
2122
|
+
SelectPrimitive.Content,
|
|
2123
|
+
{
|
|
2124
|
+
className: cn(
|
|
2125
|
+
"bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 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 relative z-50 max-h-[--radix-select-content-available-height] min-w-[8rem] origin-[--radix-select-content-transform-origin] overflow-x-hidden overflow-y-auto rounded-md border shadow-md",
|
|
2126
|
+
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",
|
|
2127
|
+
className
|
|
2128
|
+
),
|
|
2129
|
+
position,
|
|
2130
|
+
ref,
|
|
2131
|
+
...props,
|
|
2132
|
+
children: [
|
|
2133
|
+
/* @__PURE__ */ jsx28(SelectScrollUpButton, {}),
|
|
2134
|
+
/* @__PURE__ */ jsx28(
|
|
2135
|
+
SelectPrimitive.Viewport,
|
|
2136
|
+
{
|
|
2137
|
+
className: cn(
|
|
2138
|
+
"p-1",
|
|
2139
|
+
position === "popper" && "h-(--radix-select-trigger-height) w-full min-w-(--radix-select-trigger-width)"
|
|
2140
|
+
),
|
|
2141
|
+
children
|
|
2142
|
+
}
|
|
2143
|
+
),
|
|
2144
|
+
/* @__PURE__ */ jsx28(SelectScrollDownButton, {})
|
|
2145
|
+
]
|
|
2146
|
+
}
|
|
2147
|
+
) }));
|
|
2148
|
+
SelectContent.displayName = SelectPrimitive.Content.displayName;
|
|
2149
|
+
var SelectLabel = React27.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx28(
|
|
2150
|
+
SelectPrimitive.Label,
|
|
2151
|
+
{
|
|
2152
|
+
className: cn("px-2 py-1.5 text-sm font-semibold", className),
|
|
2153
|
+
ref,
|
|
2154
|
+
...props
|
|
2155
|
+
}
|
|
2156
|
+
));
|
|
2157
|
+
SelectLabel.displayName = SelectPrimitive.Label.displayName;
|
|
2158
|
+
var SelectItem = React27.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs14(
|
|
2159
|
+
SelectPrimitive.Item,
|
|
2160
|
+
{
|
|
2161
|
+
className: cn(
|
|
2162
|
+
"focus:bg-accent focus:text-accent-foreground relative flex w-full cursor-default items-center rounded-sm py-1.5 pr-8 pl-2 text-sm outline-none select-none data-disabled:pointer-events-none data-disabled:opacity-50",
|
|
2163
|
+
className
|
|
2164
|
+
),
|
|
2165
|
+
ref,
|
|
2166
|
+
...props,
|
|
2167
|
+
children: [
|
|
2168
|
+
/* @__PURE__ */ jsx28("span", { className: "absolute right-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsx28(SelectPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx28(Check5, { className: "h-4 w-4" }) }) }),
|
|
2169
|
+
/* @__PURE__ */ jsx28(SelectPrimitive.ItemText, { children })
|
|
2170
|
+
]
|
|
2171
|
+
}
|
|
2172
|
+
));
|
|
2173
|
+
SelectItem.displayName = SelectPrimitive.Item.displayName;
|
|
2174
|
+
var SelectSeparator = React27.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx28(
|
|
2175
|
+
SelectPrimitive.Separator,
|
|
2176
|
+
{
|
|
2177
|
+
className: cn("bg-muted -mx-1 my-1 h-px", className),
|
|
2178
|
+
ref,
|
|
2179
|
+
...props
|
|
2180
|
+
}
|
|
2181
|
+
));
|
|
2182
|
+
SelectSeparator.displayName = SelectPrimitive.Separator.displayName;
|
|
2183
|
+
|
|
2184
|
+
// src/components/ui/separator/index.tsx
|
|
2185
|
+
import * as React28 from "react";
|
|
2186
|
+
import * as SeparatorPrimitive from "@radix-ui/react-separator";
|
|
2187
|
+
import { jsx as jsx29 } from "react/jsx-runtime";
|
|
2188
|
+
var Separator5 = React28.forwardRef(
|
|
2189
|
+
({ className, orientation = "horizontal", decorative = true, ...props }, ref) => /* @__PURE__ */ jsx29(
|
|
2190
|
+
SeparatorPrimitive.Root,
|
|
2191
|
+
{
|
|
2192
|
+
className: cn(
|
|
2193
|
+
"bg-border shrink-0",
|
|
2194
|
+
orientation === "horizontal" ? "h-[1px] w-full" : "h-full w-[1px]",
|
|
2195
|
+
className
|
|
2196
|
+
),
|
|
2197
|
+
decorative,
|
|
2198
|
+
orientation,
|
|
2199
|
+
ref,
|
|
2200
|
+
...props
|
|
2201
|
+
}
|
|
2202
|
+
)
|
|
2203
|
+
);
|
|
2204
|
+
Separator5.displayName = SeparatorPrimitive.Root.displayName;
|
|
2205
|
+
|
|
2206
|
+
// src/components/ui/sheet/index.tsx
|
|
2207
|
+
import { cva as cva6 } from "class-variance-authority";
|
|
2208
|
+
import { X as X2 } from "lucide-react";
|
|
2209
|
+
import * as React29 from "react";
|
|
2210
|
+
import * as SheetPrimitive from "@radix-ui/react-dialog";
|
|
2211
|
+
import { jsx as jsx30, jsxs as jsxs15 } from "react/jsx-runtime";
|
|
2212
|
+
var Sheet = SheetPrimitive.Root;
|
|
2213
|
+
var SheetTrigger = SheetPrimitive.Trigger;
|
|
2214
|
+
var SheetClose = SheetPrimitive.Close;
|
|
2215
|
+
var SheetPortal = SheetPrimitive.Portal;
|
|
2216
|
+
var SheetOverlay = React29.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx30(
|
|
2217
|
+
SheetPrimitive.Overlay,
|
|
2218
|
+
{
|
|
2219
|
+
className: cn(
|
|
2220
|
+
"data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/80",
|
|
2221
|
+
className
|
|
2222
|
+
),
|
|
2223
|
+
...props,
|
|
2224
|
+
ref
|
|
2225
|
+
}
|
|
2226
|
+
));
|
|
2227
|
+
SheetOverlay.displayName = SheetPrimitive.Overlay.displayName;
|
|
2228
|
+
var sheetVariants = cva6(
|
|
2229
|
+
"fixed z-50 gap-4 bg-background p-6 shadow-lg transition ease-in-out data-[state=closed]:duration-300 data-[state=open]:duration-500 data-[state=open]:animate-in data-[state=closed]:animate-out",
|
|
2230
|
+
{
|
|
2231
|
+
variants: {
|
|
2232
|
+
side: {
|
|
2233
|
+
top: "inset-x-0 top-0 border-b data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top",
|
|
2234
|
+
bottom: "inset-x-0 bottom-0 border-t data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom",
|
|
2235
|
+
left: "inset-y-0 left-0 h-full w-3/4 border-r data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left sm:max-w-sm",
|
|
2236
|
+
right: "inset-y-0 right-0 h-full w-3/4 border-l data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right sm:max-w-sm"
|
|
2237
|
+
}
|
|
2238
|
+
},
|
|
2239
|
+
defaultVariants: {
|
|
2240
|
+
side: "right"
|
|
2241
|
+
}
|
|
2242
|
+
}
|
|
2243
|
+
);
|
|
2244
|
+
var SheetContent = React29.forwardRef(({ side = "right", className, children, ...props }, ref) => /* @__PURE__ */ jsxs15(SheetPortal, { children: [
|
|
2245
|
+
/* @__PURE__ */ jsx30(SheetOverlay, {}),
|
|
2246
|
+
/* @__PURE__ */ jsxs15(
|
|
2247
|
+
SheetPrimitive.Content,
|
|
2248
|
+
{
|
|
2249
|
+
className: cn(sheetVariants({ side }), className),
|
|
2250
|
+
ref,
|
|
2251
|
+
...props,
|
|
2252
|
+
children: [
|
|
2253
|
+
/* @__PURE__ */ jsxs15(SheetPrimitive.Close, { className: "ring-offset-background focus:ring-ring data-[state=open]:bg-secondary absolute top-4 right-4 rounded-sm opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-none disabled:pointer-events-none", children: [
|
|
2254
|
+
/* @__PURE__ */ jsx30(X2, { className: "h-4 w-4" }),
|
|
2255
|
+
/* @__PURE__ */ jsx30("span", { className: "sr-only", children: "Close" })
|
|
2256
|
+
] }),
|
|
2257
|
+
children
|
|
2258
|
+
]
|
|
2259
|
+
}
|
|
2260
|
+
)
|
|
2261
|
+
] }));
|
|
2262
|
+
SheetContent.displayName = SheetPrimitive.Content.displayName;
|
|
2263
|
+
var SheetHeader = ({
|
|
2264
|
+
className,
|
|
2265
|
+
...props
|
|
2266
|
+
}) => /* @__PURE__ */ jsx30(
|
|
2267
|
+
"div",
|
|
2268
|
+
{
|
|
2269
|
+
className: cn(
|
|
2270
|
+
"flex flex-col space-y-2 text-center sm:text-left",
|
|
2271
|
+
className
|
|
2272
|
+
),
|
|
2273
|
+
...props
|
|
2274
|
+
}
|
|
2275
|
+
);
|
|
2276
|
+
SheetHeader.displayName = "SheetHeader";
|
|
2277
|
+
var SheetFooter = ({
|
|
2278
|
+
className,
|
|
2279
|
+
...props
|
|
2280
|
+
}) => /* @__PURE__ */ jsx30(
|
|
2281
|
+
"div",
|
|
2282
|
+
{
|
|
2283
|
+
className: cn(
|
|
2284
|
+
"flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",
|
|
2285
|
+
className
|
|
2286
|
+
),
|
|
2287
|
+
...props
|
|
2288
|
+
}
|
|
2289
|
+
);
|
|
2290
|
+
SheetFooter.displayName = "SheetFooter";
|
|
2291
|
+
var SheetTitle = React29.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx30(
|
|
2292
|
+
SheetPrimitive.Title,
|
|
2293
|
+
{
|
|
2294
|
+
className: cn("text-foreground text-lg font-semibold", className),
|
|
2295
|
+
ref,
|
|
2296
|
+
...props
|
|
2297
|
+
}
|
|
2298
|
+
));
|
|
2299
|
+
SheetTitle.displayName = SheetPrimitive.Title.displayName;
|
|
2300
|
+
var SheetDescription = React29.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx30(
|
|
2301
|
+
SheetPrimitive.Description,
|
|
2302
|
+
{
|
|
2303
|
+
className: cn("text-muted-foreground text-sm", className),
|
|
2304
|
+
ref,
|
|
2305
|
+
...props
|
|
2306
|
+
}
|
|
2307
|
+
));
|
|
2308
|
+
SheetDescription.displayName = SheetPrimitive.Description.displayName;
|
|
2309
|
+
|
|
2310
|
+
// src/components/ui/skeleton/index.tsx
|
|
2311
|
+
import { jsx as jsx31 } from "react/jsx-runtime";
|
|
2312
|
+
function Skeleton({
|
|
2313
|
+
className,
|
|
2314
|
+
...props
|
|
2315
|
+
}) {
|
|
2316
|
+
return /* @__PURE__ */ jsx31(
|
|
2317
|
+
"div",
|
|
2318
|
+
{
|
|
2319
|
+
className: cn("bg-primary/10 animate-pulse rounded-md", className),
|
|
2320
|
+
...props
|
|
2321
|
+
}
|
|
2322
|
+
);
|
|
2323
|
+
}
|
|
2324
|
+
|
|
2325
|
+
// src/components/ui/slider/index.tsx
|
|
2326
|
+
import * as React30 from "react";
|
|
2327
|
+
import * as SliderPrimitive from "@radix-ui/react-slider";
|
|
2328
|
+
import { jsx as jsx32, jsxs as jsxs16 } from "react/jsx-runtime";
|
|
2329
|
+
var Slider = React30.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxs16(
|
|
2330
|
+
SliderPrimitive.Root,
|
|
2331
|
+
{
|
|
2332
|
+
className: cn(
|
|
2333
|
+
"relative flex w-full touch-none items-center select-none",
|
|
2334
|
+
className
|
|
2335
|
+
),
|
|
2336
|
+
ref,
|
|
2337
|
+
...props,
|
|
2338
|
+
children: [
|
|
2339
|
+
/* @__PURE__ */ jsx32(SliderPrimitive.Track, { className: "bg-primary/20 relative h-1.5 w-full grow overflow-hidden rounded-full", children: /* @__PURE__ */ jsx32(SliderPrimitive.Range, { className: "bg-primary absolute h-full" }) }),
|
|
2340
|
+
/* @__PURE__ */ jsx32(SliderPrimitive.Thumb, { className: "border-primary/50 bg-background focus-visible:ring-ring block h-4 w-4 rounded-full border shadow transition-colors focus-visible:ring-1 focus-visible:outline-none disabled:pointer-events-none disabled:opacity-50" })
|
|
2341
|
+
]
|
|
2342
|
+
}
|
|
2343
|
+
));
|
|
2344
|
+
Slider.displayName = SliderPrimitive.Root.displayName;
|
|
2345
|
+
|
|
2346
|
+
// src/components/ui/spinner/index.tsx
|
|
2347
|
+
import { Loader2Icon } from "lucide-react";
|
|
2348
|
+
import { jsx as jsx33 } from "react/jsx-runtime";
|
|
2349
|
+
function Spinner({ className, ...props }) {
|
|
2350
|
+
return /* @__PURE__ */ jsx33(
|
|
2351
|
+
Loader2Icon,
|
|
2352
|
+
{
|
|
2353
|
+
"aria-label": "Loading",
|
|
2354
|
+
className: cn("size-4 animate-spin", className),
|
|
2355
|
+
role: "status",
|
|
2356
|
+
...props
|
|
2357
|
+
}
|
|
2358
|
+
);
|
|
2359
|
+
}
|
|
2360
|
+
|
|
2361
|
+
// src/components/ui/switch/index.tsx
|
|
2362
|
+
import * as React31 from "react";
|
|
2363
|
+
import * as SwitchPrimitives from "@radix-ui/react-switch";
|
|
2364
|
+
import { jsx as jsx34 } from "react/jsx-runtime";
|
|
2365
|
+
var Switch = React31.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx34(
|
|
2366
|
+
SwitchPrimitives.Root,
|
|
2367
|
+
{
|
|
2368
|
+
className: cn(
|
|
2369
|
+
"peer focus-visible:ring-ring focus-visible:ring-offset-background data-[state=checked]:bg-primary data-[state=unchecked]:bg-input inline-flex h-5 w-9 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent shadow-sm transition-colors focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:outline-none disabled:cursor-not-allowed disabled:opacity-50",
|
|
2370
|
+
className
|
|
2371
|
+
),
|
|
2372
|
+
...props,
|
|
2373
|
+
ref,
|
|
2374
|
+
children: /* @__PURE__ */ jsx34(
|
|
2375
|
+
SwitchPrimitives.Thumb,
|
|
2376
|
+
{
|
|
2377
|
+
className: cn(
|
|
2378
|
+
"bg-background pointer-events-none block h-4 w-4 rounded-full shadow-lg ring-0 transition-transform data-[state=checked]:translate-x-4 data-[state=unchecked]:translate-x-0"
|
|
2379
|
+
)
|
|
2380
|
+
}
|
|
2381
|
+
)
|
|
2382
|
+
}
|
|
2383
|
+
));
|
|
2384
|
+
Switch.displayName = SwitchPrimitives.Root.displayName;
|
|
2385
|
+
|
|
2386
|
+
// src/components/ui/tabs/index.tsx
|
|
2387
|
+
import * as React32 from "react";
|
|
2388
|
+
import * as TabsPrimitive from "@radix-ui/react-tabs";
|
|
2389
|
+
import { jsx as jsx35 } from "react/jsx-runtime";
|
|
2390
|
+
var Tabs = TabsPrimitive.Root;
|
|
2391
|
+
var TabsList = React32.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx35(
|
|
2392
|
+
TabsPrimitive.List,
|
|
2393
|
+
{
|
|
2394
|
+
className: cn(
|
|
2395
|
+
"bg-muted text-muted-foreground inline-flex h-9 items-center justify-center rounded-lg p-1",
|
|
2396
|
+
className
|
|
2397
|
+
),
|
|
2398
|
+
ref,
|
|
2399
|
+
...props
|
|
2400
|
+
}
|
|
2401
|
+
));
|
|
2402
|
+
TabsList.displayName = TabsPrimitive.List.displayName;
|
|
2403
|
+
var TabsTrigger = React32.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx35(
|
|
2404
|
+
TabsPrimitive.Trigger,
|
|
2405
|
+
{
|
|
2406
|
+
className: cn(
|
|
2407
|
+
"ring-offset-background focus-visible:ring-ring data-[state=active]:bg-background data-[state=active]:text-foreground inline-flex items-center justify-center rounded-md px-3 py-1 text-sm font-medium whitespace-nowrap transition-all focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:outline-none disabled:pointer-events-none disabled:opacity-50 data-[state=active]:shadow",
|
|
2408
|
+
className
|
|
2409
|
+
),
|
|
2410
|
+
ref,
|
|
2411
|
+
...props
|
|
2412
|
+
}
|
|
2413
|
+
));
|
|
2414
|
+
TabsTrigger.displayName = TabsPrimitive.Trigger.displayName;
|
|
2415
|
+
var TabsContent = React32.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx35(
|
|
2416
|
+
TabsPrimitive.Content,
|
|
2417
|
+
{
|
|
2418
|
+
className: cn(
|
|
2419
|
+
"ring-offset-background focus-visible:ring-ring mt-2 focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:outline-none",
|
|
2420
|
+
className
|
|
2421
|
+
),
|
|
2422
|
+
ref,
|
|
2423
|
+
...props
|
|
2424
|
+
}
|
|
2425
|
+
));
|
|
2426
|
+
TabsContent.displayName = TabsPrimitive.Content.displayName;
|
|
2427
|
+
|
|
2428
|
+
// src/components/ui/textarea/index.tsx
|
|
2429
|
+
import * as React33 from "react";
|
|
2430
|
+
import { jsx as jsx36 } from "react/jsx-runtime";
|
|
2431
|
+
var Textarea = React33.forwardRef(({ className, ...props }, ref) => {
|
|
2432
|
+
return /* @__PURE__ */ jsx36(
|
|
2433
|
+
"textarea",
|
|
2434
|
+
{
|
|
2435
|
+
className: cn(
|
|
2436
|
+
"border-input placeholder:text-muted-foreground focus-visible:ring-ring flex min-h-[60px] w-full rounded-md border bg-transparent px-3 py-2 text-base shadow-sm focus-visible:ring-1 focus-visible:outline-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",
|
|
2437
|
+
className
|
|
2438
|
+
),
|
|
2439
|
+
ref,
|
|
2440
|
+
...props
|
|
2441
|
+
}
|
|
2442
|
+
);
|
|
2443
|
+
});
|
|
2444
|
+
Textarea.displayName = "Textarea";
|
|
2445
|
+
|
|
2446
|
+
// src/components/ui/toaster/index.tsx
|
|
2447
|
+
import { Toaster as ToasterComponent } from "sonner";
|
|
2448
|
+
import { jsx as jsx37 } from "react/jsx-runtime";
|
|
2449
|
+
var Toaster = () => {
|
|
2450
|
+
return /* @__PURE__ */ jsx37(ToasterComponent, {});
|
|
2451
|
+
};
|
|
2452
|
+
|
|
2453
|
+
// src/components/ui/toggle/index.tsx
|
|
2454
|
+
import { cva as cva7 } from "class-variance-authority";
|
|
2455
|
+
import * as React34 from "react";
|
|
2456
|
+
import * as TogglePrimitive from "@radix-ui/react-toggle";
|
|
2457
|
+
import { jsx as jsx38 } from "react/jsx-runtime";
|
|
2458
|
+
var toggleVariants = cva7(
|
|
2459
|
+
"inline-flex items-center justify-center gap-2 rounded-md text-sm font-medium transition-colors hover:bg-muted hover:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 data-[state=on]:bg-accent data-[state=on]:text-accent-foreground [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",
|
|
2460
|
+
{
|
|
2461
|
+
variants: {
|
|
2462
|
+
variant: {
|
|
2463
|
+
default: "bg-transparent",
|
|
2464
|
+
outline: "border border-input bg-transparent shadow-sm hover:bg-accent hover:text-accent-foreground"
|
|
2465
|
+
},
|
|
2466
|
+
size: {
|
|
2467
|
+
default: "h-9 px-2 min-w-9",
|
|
2468
|
+
sm: "h-8 px-1.5 min-w-8",
|
|
2469
|
+
lg: "h-10 px-2.5 min-w-10"
|
|
2470
|
+
}
|
|
2471
|
+
},
|
|
2472
|
+
defaultVariants: {
|
|
2473
|
+
variant: "default",
|
|
2474
|
+
size: "default"
|
|
2475
|
+
}
|
|
2476
|
+
}
|
|
2477
|
+
);
|
|
2478
|
+
var Toggle = React34.forwardRef(({ className, variant, size, ...props }, ref) => /* @__PURE__ */ jsx38(
|
|
2479
|
+
TogglePrimitive.Root,
|
|
2480
|
+
{
|
|
2481
|
+
className: cn(toggleVariants({ variant, size, className })),
|
|
2482
|
+
ref,
|
|
2483
|
+
...props
|
|
2484
|
+
}
|
|
2485
|
+
));
|
|
2486
|
+
Toggle.displayName = TogglePrimitive.Root.displayName;
|
|
2487
|
+
|
|
2488
|
+
// src/components/ui/tooltip/index.tsx
|
|
2489
|
+
import * as React35 from "react";
|
|
2490
|
+
import * as TooltipPrimitive from "@radix-ui/react-tooltip";
|
|
2491
|
+
import { jsx as jsx39 } from "react/jsx-runtime";
|
|
2492
|
+
var TooltipProvider = TooltipPrimitive.Provider;
|
|
2493
|
+
var Tooltip = TooltipPrimitive.Root;
|
|
2494
|
+
var TooltipTrigger = TooltipPrimitive.Trigger;
|
|
2495
|
+
var TooltipContent = React35.forwardRef(({ className, sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsx39(TooltipPrimitive.Portal, { children: /* @__PURE__ */ jsx39(
|
|
2496
|
+
TooltipPrimitive.Content,
|
|
2497
|
+
{
|
|
2498
|
+
className: cn(
|
|
2499
|
+
"bg-primary text-primary-foreground animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=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 z-50 origin-[--radix-tooltip-content-transform-origin] overflow-hidden rounded-md px-3 py-1.5 text-xs",
|
|
2500
|
+
className
|
|
2501
|
+
),
|
|
2502
|
+
ref,
|
|
2503
|
+
sideOffset,
|
|
2504
|
+
...props
|
|
2505
|
+
}
|
|
2506
|
+
) }));
|
|
2507
|
+
TooltipContent.displayName = TooltipPrimitive.Content.displayName;
|
|
2508
|
+
|
|
2509
|
+
// src/hooks/use-auto-focus.ts
|
|
2510
|
+
import { useLayoutEffect } from "react";
|
|
2511
|
+
import { useIsMounted } from "usehooks-ts";
|
|
2512
|
+
function useAutoFocus({ ref, enabled = true }) {
|
|
2513
|
+
const isMounted = useIsMounted();
|
|
2514
|
+
useLayoutEffect(() => {
|
|
2515
|
+
if (!enabled || isMounted()) return;
|
|
2516
|
+
ref.current?.focus();
|
|
2517
|
+
}, [ref, enabled, isMounted]);
|
|
2518
|
+
}
|
|
2519
|
+
|
|
2520
|
+
// src/hooks/use-mobile.ts
|
|
2521
|
+
import * as React36 from "react";
|
|
2522
|
+
var MOBILE_BREAKPOINT = 768;
|
|
2523
|
+
function useIsMobile() {
|
|
2524
|
+
const [isMobile, setIsMobile] = React36.useState(void 0);
|
|
2525
|
+
React36.useEffect(() => {
|
|
2526
|
+
const mql = window.matchMedia(`(max-width: ${MOBILE_BREAKPOINT - 1}px)`);
|
|
2527
|
+
const onChange = () => {
|
|
2528
|
+
setIsMobile(window.innerWidth < MOBILE_BREAKPOINT);
|
|
2529
|
+
};
|
|
2530
|
+
mql.addEventListener("change", onChange);
|
|
2531
|
+
setIsMobile(window.innerWidth < MOBILE_BREAKPOINT);
|
|
2532
|
+
return () => mql.removeEventListener("change", onChange);
|
|
2533
|
+
}, []);
|
|
2534
|
+
return !!isMobile;
|
|
2535
|
+
}
|
|
2536
|
+
|
|
2537
|
+
// src/hooks/use-shortcuts.ts
|
|
2538
|
+
function isModifierMatch(event, modifiers = {}) {
|
|
2539
|
+
if (Array.isArray(modifiers))
|
|
2540
|
+
return modifiers.some((modifier) => isModifierMatch(event, modifier));
|
|
2541
|
+
return event.metaKey === !!modifiers.meta && event.shiftKey === !!modifiers.shift && event.altKey === !!modifiers.alt && event.ctrlKey === !!modifiers.ctrl;
|
|
2542
|
+
}
|
|
2543
|
+
function isEnabled(shortcut) {
|
|
2544
|
+
if (shortcut.enabled === void 0) return true;
|
|
2545
|
+
return typeof shortcut.enabled === "function" ? shortcut.enabled() : shortcut.enabled;
|
|
2546
|
+
}
|
|
2547
|
+
function useShortcuts(definitions) {
|
|
2548
|
+
function executeShortcut(event) {
|
|
2549
|
+
const matchedShortcut = definitions.find(
|
|
2550
|
+
(shortcut) => isEnabled(shortcut) && shortcut.keys.includes(event.key) && isModifierMatch(event, shortcut.modifiers)
|
|
2551
|
+
);
|
|
2552
|
+
if (!matchedShortcut) return false;
|
|
2553
|
+
if (matchedShortcut.preventDefault !== false) event.preventDefault();
|
|
2554
|
+
matchedShortcut.handler(event);
|
|
2555
|
+
return true;
|
|
2556
|
+
}
|
|
2557
|
+
return {
|
|
2558
|
+
executeShortcut
|
|
2559
|
+
};
|
|
2560
|
+
}
|
|
2561
|
+
|
|
2562
|
+
// src/hooks/use-uid.ts
|
|
2563
|
+
import { useState as useState3 } from "react";
|
|
2564
|
+
var id = 0;
|
|
2565
|
+
function useUid(prefix) {
|
|
2566
|
+
const [uid] = useState3(() => `tui-${prefix}:${++id}`);
|
|
2567
|
+
return uid;
|
|
2568
|
+
}
|
|
2569
|
+
export {
|
|
2570
|
+
Accordion,
|
|
2571
|
+
AccordionContent,
|
|
2572
|
+
AccordionItem,
|
|
2573
|
+
AccordionTrigger,
|
|
2574
|
+
Alert,
|
|
2575
|
+
AlertDescription,
|
|
2576
|
+
AlertDialog,
|
|
2577
|
+
AlertDialogAction,
|
|
2578
|
+
AlertDialogCancel,
|
|
2579
|
+
AlertDialogContent,
|
|
2580
|
+
AlertDialogDescription,
|
|
2581
|
+
AlertDialogFooter,
|
|
2582
|
+
AlertDialogHeader,
|
|
2583
|
+
AlertDialogOverlay,
|
|
2584
|
+
AlertDialogPortal,
|
|
2585
|
+
AlertDialogTitle,
|
|
2586
|
+
AlertDialogTrigger,
|
|
2587
|
+
AlertTitle,
|
|
2588
|
+
Avatar,
|
|
2589
|
+
AvatarFallback,
|
|
2590
|
+
AvatarImage,
|
|
2591
|
+
Badge,
|
|
2592
|
+
Breadcrumb,
|
|
2593
|
+
BreadcrumbEllipsis,
|
|
2594
|
+
BreadcrumbItem,
|
|
2595
|
+
BreadcrumbLink,
|
|
2596
|
+
BreadcrumbList,
|
|
2597
|
+
BreadcrumbPage,
|
|
2598
|
+
BreadcrumbSeparator,
|
|
2599
|
+
Button,
|
|
2600
|
+
Calendar,
|
|
2601
|
+
CalendarDayButton,
|
|
2602
|
+
Card,
|
|
2603
|
+
CardContent,
|
|
2604
|
+
CardDescription,
|
|
2605
|
+
CardFooter,
|
|
2606
|
+
CardHeader,
|
|
2607
|
+
CardTitle,
|
|
2608
|
+
Carousel,
|
|
2609
|
+
CarouselContent,
|
|
2610
|
+
CarouselItem,
|
|
2611
|
+
CarouselNext,
|
|
2612
|
+
CarouselPrevious,
|
|
2613
|
+
Checkbox,
|
|
2614
|
+
Collapsible,
|
|
2615
|
+
CollapsibleContent2 as CollapsibleContent,
|
|
2616
|
+
CollapsibleTrigger2 as CollapsibleTrigger,
|
|
2617
|
+
Command,
|
|
2618
|
+
CommandDialog,
|
|
2619
|
+
CommandEmpty,
|
|
2620
|
+
CommandGroup,
|
|
2621
|
+
CommandInput,
|
|
2622
|
+
CommandItem,
|
|
2623
|
+
CommandList,
|
|
2624
|
+
CommandSeparator,
|
|
2625
|
+
CommandShortcut,
|
|
2626
|
+
ContextMenu,
|
|
2627
|
+
ContextMenuCheckboxItem,
|
|
2628
|
+
ContextMenuContent,
|
|
2629
|
+
ContextMenuGroup,
|
|
2630
|
+
ContextMenuItem,
|
|
2631
|
+
ContextMenuLabel,
|
|
2632
|
+
ContextMenuPortal,
|
|
2633
|
+
ContextMenuRadioGroup,
|
|
2634
|
+
ContextMenuRadioItem,
|
|
2635
|
+
ContextMenuSeparator,
|
|
2636
|
+
ContextMenuShortcut,
|
|
2637
|
+
ContextMenuSub,
|
|
2638
|
+
ContextMenuSubContent,
|
|
2639
|
+
ContextMenuSubTrigger,
|
|
2640
|
+
ContextMenuTrigger,
|
|
2641
|
+
Dialog,
|
|
2642
|
+
DialogClose,
|
|
2643
|
+
DialogContent,
|
|
2644
|
+
DialogDescription,
|
|
2645
|
+
DialogFooter,
|
|
2646
|
+
DialogHeader,
|
|
2647
|
+
DialogOverlay,
|
|
2648
|
+
DialogPortal,
|
|
2649
|
+
DialogTitle,
|
|
2650
|
+
DialogTrigger,
|
|
2651
|
+
Drawer,
|
|
2652
|
+
DrawerClose,
|
|
2653
|
+
DrawerContent,
|
|
2654
|
+
DrawerDescription,
|
|
2655
|
+
DrawerFooter,
|
|
2656
|
+
DrawerHeader,
|
|
2657
|
+
DrawerOverlay,
|
|
2658
|
+
DrawerPortal,
|
|
2659
|
+
DrawerTitle,
|
|
2660
|
+
DrawerTrigger,
|
|
2661
|
+
DropdownMenu,
|
|
2662
|
+
DropdownMenuCheckboxItem,
|
|
2663
|
+
DropdownMenuContent,
|
|
2664
|
+
DropdownMenuGroup,
|
|
2665
|
+
DropdownMenuItem,
|
|
2666
|
+
DropdownMenuLabel,
|
|
2667
|
+
DropdownMenuPortal,
|
|
2668
|
+
DropdownMenuRadioGroup,
|
|
2669
|
+
DropdownMenuRadioItem,
|
|
2670
|
+
DropdownMenuSeparator,
|
|
2671
|
+
DropdownMenuShortcut,
|
|
2672
|
+
DropdownMenuSub,
|
|
2673
|
+
DropdownMenuSubContent,
|
|
2674
|
+
DropdownMenuSubTrigger,
|
|
2675
|
+
DropdownMenuTrigger,
|
|
2676
|
+
Form,
|
|
2677
|
+
FormControl,
|
|
2678
|
+
FormDescription,
|
|
2679
|
+
FormField,
|
|
2680
|
+
FormItem,
|
|
2681
|
+
FormLabel,
|
|
2682
|
+
FormMessage,
|
|
2683
|
+
HoverCard,
|
|
2684
|
+
HoverCardContent,
|
|
2685
|
+
HoverCardTrigger,
|
|
2686
|
+
Input,
|
|
2687
|
+
Label3 as Label,
|
|
2688
|
+
Menubar,
|
|
2689
|
+
MenubarCheckboxItem,
|
|
2690
|
+
MenubarContent,
|
|
2691
|
+
MenubarGroup,
|
|
2692
|
+
MenubarItem,
|
|
2693
|
+
MenubarLabel,
|
|
2694
|
+
MenubarMenu,
|
|
2695
|
+
MenubarPortal,
|
|
2696
|
+
MenubarRadioGroup,
|
|
2697
|
+
MenubarRadioItem,
|
|
2698
|
+
MenubarSeparator,
|
|
2699
|
+
MenubarShortcut,
|
|
2700
|
+
MenubarSub,
|
|
2701
|
+
MenubarSubContent,
|
|
2702
|
+
MenubarSubTrigger,
|
|
2703
|
+
MenubarTrigger,
|
|
2704
|
+
NavigationMenu,
|
|
2705
|
+
NavigationMenuContent,
|
|
2706
|
+
NavigationMenuIndicator,
|
|
2707
|
+
NavigationMenuItem,
|
|
2708
|
+
NavigationMenuLink,
|
|
2709
|
+
NavigationMenuList,
|
|
2710
|
+
NavigationMenuTrigger,
|
|
2711
|
+
NavigationMenuViewport,
|
|
2712
|
+
Pagination,
|
|
2713
|
+
PaginationContent,
|
|
2714
|
+
PaginationEllipsis,
|
|
2715
|
+
PaginationItem,
|
|
2716
|
+
PaginationLink,
|
|
2717
|
+
PaginationNext,
|
|
2718
|
+
PaginationPrevious,
|
|
2719
|
+
Popover,
|
|
2720
|
+
PopoverAnchor,
|
|
2721
|
+
PopoverContent,
|
|
2722
|
+
PopoverTrigger,
|
|
2723
|
+
Progress,
|
|
2724
|
+
RadioGroup4 as RadioGroup,
|
|
2725
|
+
RadioGroupItem,
|
|
2726
|
+
ScrollArea,
|
|
2727
|
+
ScrollBar,
|
|
2728
|
+
Select,
|
|
2729
|
+
SelectContent,
|
|
2730
|
+
SelectGroup,
|
|
2731
|
+
SelectItem,
|
|
2732
|
+
SelectLabel,
|
|
2733
|
+
SelectScrollDownButton,
|
|
2734
|
+
SelectScrollUpButton,
|
|
2735
|
+
SelectSeparator,
|
|
2736
|
+
SelectTrigger,
|
|
2737
|
+
SelectValue,
|
|
2738
|
+
Separator5 as Separator,
|
|
2739
|
+
Sheet,
|
|
2740
|
+
SheetClose,
|
|
2741
|
+
SheetContent,
|
|
2742
|
+
SheetDescription,
|
|
2743
|
+
SheetFooter,
|
|
2744
|
+
SheetHeader,
|
|
2745
|
+
SheetOverlay,
|
|
2746
|
+
SheetPortal,
|
|
2747
|
+
SheetTitle,
|
|
2748
|
+
SheetTrigger,
|
|
2749
|
+
Skeleton,
|
|
2750
|
+
Slider,
|
|
2751
|
+
Spinner,
|
|
2752
|
+
Switch,
|
|
2753
|
+
Tabs,
|
|
2754
|
+
TabsContent,
|
|
2755
|
+
TabsList,
|
|
2756
|
+
TabsTrigger,
|
|
2757
|
+
Textarea,
|
|
2758
|
+
Toaster,
|
|
2759
|
+
Toggle,
|
|
2760
|
+
Tooltip,
|
|
2761
|
+
TooltipContent,
|
|
2762
|
+
TooltipProvider,
|
|
2763
|
+
TooltipTrigger,
|
|
2764
|
+
badgeVariants,
|
|
2765
|
+
buttonVariants,
|
|
2766
|
+
cn,
|
|
2767
|
+
navigationMenuTriggerStyle,
|
|
2768
|
+
toggleVariants,
|
|
2769
|
+
useAutoFocus,
|
|
2770
|
+
useFormField,
|
|
2771
|
+
useIsMobile,
|
|
2772
|
+
useShortcuts,
|
|
2773
|
+
useUid
|
|
2774
|
+
};
|
|
2775
|
+
//# sourceMappingURL=index.js.map
|