@otfdashkit/ui 0.1.2 → 0.1.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -4
- package/dist/index.js +1139 -542
- package/dist/index.mjs +1001 -411
- package/package.json +1 -1
- package/src/index.ts +7 -1
- package/src/primitives/Button/Button.tsx +2 -131
- package/src/primitives/button.tsx +52 -0
- package/src/primitives/cart-line-item.tsx +81 -0
- package/src/primitives/empty-cart.tsx +52 -0
- package/src/primitives/price-tag.tsx +62 -0
- package/src/primitives/quantity-stepper.tsx +92 -0
- package/src/primitives/variant-picker.tsx +74 -0
package/dist/index.mjs
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { clsx } from 'clsx';
|
|
2
2
|
import { twMerge } from 'tailwind-merge';
|
|
3
|
-
import * as
|
|
4
|
-
import
|
|
3
|
+
import * as React137 from 'react';
|
|
4
|
+
import React137__default, { createContext, useState, useCallback, useMemo, useId, useRef, useEffect, useContext } from 'react';
|
|
5
5
|
import * as AccordionPrimitive from '@radix-ui/react-accordion';
|
|
6
|
-
import { ChevronDown, ArrowLeft, ArrowRight,
|
|
6
|
+
import { ChevronDown, ArrowLeft, ArrowRight, Minus, Plus, X, Check, Copy, Search, GripVertical, Circle, ChevronRight, ShoppingCart, Star, ChevronUp, Pipette, EyeOff, Eye, Menu, ChevronLeft, Play, Pause, VolumeX, Volume1, Volume2, Layers, Minimize, Maximize, Heading1, Heading2, Heading3, Bold, Italic, Underline, Code, List, ListOrdered, Quote, Code2, Undo2, Redo2, Link, Table as Table$2, ArrowUpToLine, ArrowDownToLine, ArrowLeftToLine, ArrowRightToLine, Trash2, ChevronLeftIcon, ChevronRightIcon, ChevronDownIcon, MoreHorizontal, Loader2Icon, ArrowUp, ArrowDown, ArrowUpDown, Loader2, TrendingUp, TrendingDown, Send, Pencil, Sun, Moon, Monitor, Palette, LayoutDashboard, FolderOpen, Users, Settings, Bell, BarChart2, CreditCard, HelpCircle, Calendar as Calendar$1, User, LogOut, Upload, ChevronsUpDown, Info, XCircle, AlertTriangle, CheckCircle2, FileText, Archive, Film, FileCode, Image, File, Download, Columns3, CheckCircle } from 'lucide-react';
|
|
7
7
|
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
8
8
|
import * as AlertDialogPrimitive from '@radix-ui/react-alert-dialog';
|
|
9
9
|
import { Slot } from '@radix-ui/react-slot';
|
|
@@ -62,16 +62,16 @@ import * as z from 'zod';
|
|
|
62
62
|
import { HexAlphaColorPicker, HexColorPicker, RgbStringColorPicker, HslStringColorPicker } from 'react-colorful';
|
|
63
63
|
import { motion, useScroll, useTransform, useInView, AnimatePresence } from 'motion/react';
|
|
64
64
|
export { AnimatePresence, motion, useInView, useMotionValue, useScroll, useSpring, useTransform } from 'motion/react';
|
|
65
|
+
import { useVirtualizer } from '@tanstack/react-virtual';
|
|
65
66
|
import ReactCrop, { centerCrop, makeAspectCrop } from 'react-image-crop';
|
|
66
67
|
import 'react-image-crop/dist/ReactCrop.css';
|
|
67
|
-
import { useVirtualizer } from '@tanstack/react-virtual';
|
|
68
68
|
|
|
69
69
|
// src/utils/cn.ts
|
|
70
70
|
function cn(...inputs) {
|
|
71
71
|
return twMerge(clsx(inputs));
|
|
72
72
|
}
|
|
73
73
|
var Accordion = AccordionPrimitive.Root;
|
|
74
|
-
var AccordionItem =
|
|
74
|
+
var AccordionItem = React137.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
75
75
|
AccordionPrimitive.Item,
|
|
76
76
|
{
|
|
77
77
|
ref,
|
|
@@ -80,7 +80,7 @@ var AccordionItem = React131.forwardRef(({ className, ...props }, ref) => /* @__
|
|
|
80
80
|
}
|
|
81
81
|
));
|
|
82
82
|
AccordionItem.displayName = "AccordionItem";
|
|
83
|
-
var AccordionTrigger =
|
|
83
|
+
var AccordionTrigger = React137.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsx(AccordionPrimitive.Header, { className: "flex", children: /* @__PURE__ */ jsxs(
|
|
84
84
|
AccordionPrimitive.Trigger,
|
|
85
85
|
{
|
|
86
86
|
ref,
|
|
@@ -96,7 +96,7 @@ var AccordionTrigger = React131.forwardRef(({ className, children, ...props }, r
|
|
|
96
96
|
}
|
|
97
97
|
) }));
|
|
98
98
|
AccordionTrigger.displayName = AccordionPrimitive.Trigger.displayName;
|
|
99
|
-
var AccordionContent =
|
|
99
|
+
var AccordionContent = React137.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
100
100
|
AccordionPrimitive.Content,
|
|
101
101
|
{
|
|
102
102
|
ref,
|
|
@@ -116,29 +116,67 @@ var buttonVariants = cva(
|
|
|
116
116
|
outline: "border border-border bg-transparent hover:bg-accent hover:text-accent-foreground",
|
|
117
117
|
ghost: "hover:bg-accent hover:text-accent-foreground",
|
|
118
118
|
destructive: "bg-destructive text-destructive-foreground hover:bg-destructive/90",
|
|
119
|
-
link: "text-primary underline-offset-4 hover:underline"
|
|
119
|
+
link: "text-primary underline-offset-4 hover:underline",
|
|
120
|
+
gradient: [
|
|
121
|
+
"bg-gradient-to-b from-primary to-[hsl(var(--primary)/0.8)]",
|
|
122
|
+
"text-primary-foreground",
|
|
123
|
+
"shadow-[0_1px_0_0_rgba(255,255,255,0.1)_inset,0_-1px_0_0_rgba(0,0,0,0.25)_inset]",
|
|
124
|
+
"hover:from-[hsl(var(--primary)/0.9)] hover:to-[hsl(var(--primary)/0.7)]",
|
|
125
|
+
"active:from-[hsl(var(--primary)/0.8)] active:to-[hsl(var(--primary)/0.6)]"
|
|
126
|
+
].join(" "),
|
|
127
|
+
texture: [
|
|
128
|
+
"relative border border-border/40",
|
|
129
|
+
"bg-gradient-to-b from-card to-[hsl(var(--card)/0.9)]",
|
|
130
|
+
"text-foreground",
|
|
131
|
+
"shadow-[0_0_0_1px_hsl(var(--border)/0.2)_inset]",
|
|
132
|
+
"hover:border-border/60 hover:bg-accent",
|
|
133
|
+
"active:shadow-none"
|
|
134
|
+
].join(" "),
|
|
135
|
+
// Loud by design: keep for primary CTAs. The sweep keyframe ships in themes/base.css.
|
|
136
|
+
shimmer: [
|
|
137
|
+
"relative isolate overflow-hidden",
|
|
138
|
+
"bg-primary text-primary-foreground",
|
|
139
|
+
"shadow-[0_1px_0_rgba(255,255,255,0.18)_inset,0_-1px_0_rgba(0,0,0,0.25)_inset]",
|
|
140
|
+
"hover:bg-primary/95",
|
|
141
|
+
"before:absolute before:inset-[-1px] before:rounded-[inherit] before:-z-10",
|
|
142
|
+
"before:bg-[conic-gradient(from_0deg,transparent_0deg,transparent_70deg,rgba(255,255,255,0.55)_90deg,transparent_110deg,transparent_360deg)]",
|
|
143
|
+
"before:animate-[shimmer-rotate_2.6s_linear_infinite] motion-reduce:before:animate-none",
|
|
144
|
+
"after:absolute after:inset-0 after:rounded-[inherit] after:pointer-events-none",
|
|
145
|
+
"after:bg-[linear-gradient(115deg,transparent_30%,rgba(255,255,255,0.22)_50%,transparent_70%)]",
|
|
146
|
+
"after:translate-x-[-120%] hover:after:translate-x-[120%] after:transition-transform after:duration-[900ms] after:ease-out"
|
|
147
|
+
].join(" ")
|
|
120
148
|
},
|
|
121
149
|
size: {
|
|
122
150
|
sm: "h-8 px-3 text-xs",
|
|
123
151
|
default: "h-9 px-4 py-2",
|
|
124
152
|
lg: "h-11 px-6 text-base",
|
|
125
|
-
|
|
153
|
+
xl: "h-12 px-8 text-base",
|
|
154
|
+
icon: "h-9 w-9",
|
|
155
|
+
"icon-sm": "h-7 w-7 p-0 text-xs"
|
|
126
156
|
}
|
|
127
157
|
},
|
|
128
158
|
defaultVariants: { variant: "default", size: "default" }
|
|
129
159
|
}
|
|
130
160
|
);
|
|
131
|
-
var Button =
|
|
161
|
+
var Button = React137__default.forwardRef(
|
|
132
162
|
({ className, variant, size, asChild = false, ...props }, ref) => {
|
|
133
163
|
const Comp = asChild ? Slot : "button";
|
|
134
164
|
return /* @__PURE__ */ jsx(Comp, { className: cn(buttonVariants({ variant, size }), className), ref, ...props });
|
|
135
165
|
}
|
|
136
166
|
);
|
|
137
167
|
Button.displayName = "Button";
|
|
168
|
+
var IconButton = React137__default.forwardRef(
|
|
169
|
+
({ icon, label, size = "default", variant = "ghost", className, asChild = false, ...props }, ref) => {
|
|
170
|
+
const Comp = asChild ? Slot : "button";
|
|
171
|
+
const sizeClass = size === "sm" ? "h-7 w-7" : size === "lg" ? "h-10 w-10" : "h-9 w-9";
|
|
172
|
+
return /* @__PURE__ */ jsx(Comp, { ref, "aria-label": label, className: cn(buttonVariants({ variant }), sizeClass, "p-0 shrink-0", className), ...props, children: icon });
|
|
173
|
+
}
|
|
174
|
+
);
|
|
175
|
+
IconButton.displayName = "IconButton";
|
|
138
176
|
var AlertDialog = AlertDialogPrimitive.Root;
|
|
139
177
|
var AlertDialogTrigger = AlertDialogPrimitive.Trigger;
|
|
140
178
|
var AlertDialogPortal = AlertDialogPrimitive.Portal;
|
|
141
|
-
var AlertDialogOverlay =
|
|
179
|
+
var AlertDialogOverlay = React137.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
142
180
|
AlertDialogPrimitive.Overlay,
|
|
143
181
|
{
|
|
144
182
|
className: cn(
|
|
@@ -150,7 +188,7 @@ var AlertDialogOverlay = React131.forwardRef(({ className, ...props }, ref) => /
|
|
|
150
188
|
}
|
|
151
189
|
));
|
|
152
190
|
AlertDialogOverlay.displayName = AlertDialogPrimitive.Overlay.displayName;
|
|
153
|
-
var AlertDialogContent =
|
|
191
|
+
var AlertDialogContent = React137.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxs(AlertDialogPortal, { children: [
|
|
154
192
|
/* @__PURE__ */ jsx(AlertDialogOverlay, {}),
|
|
155
193
|
/* @__PURE__ */ jsx(
|
|
156
194
|
AlertDialogPrimitive.Content,
|
|
@@ -193,7 +231,7 @@ var AlertDialogFooter = ({
|
|
|
193
231
|
}
|
|
194
232
|
);
|
|
195
233
|
AlertDialogFooter.displayName = "AlertDialogFooter";
|
|
196
|
-
var AlertDialogTitle =
|
|
234
|
+
var AlertDialogTitle = React137.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
197
235
|
AlertDialogPrimitive.Title,
|
|
198
236
|
{
|
|
199
237
|
ref,
|
|
@@ -202,7 +240,7 @@ var AlertDialogTitle = React131.forwardRef(({ className, ...props }, ref) => /*
|
|
|
202
240
|
}
|
|
203
241
|
));
|
|
204
242
|
AlertDialogTitle.displayName = AlertDialogPrimitive.Title.displayName;
|
|
205
|
-
var AlertDialogDescription =
|
|
243
|
+
var AlertDialogDescription = React137.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
206
244
|
AlertDialogPrimitive.Description,
|
|
207
245
|
{
|
|
208
246
|
ref,
|
|
@@ -211,7 +249,7 @@ var AlertDialogDescription = React131.forwardRef(({ className, ...props }, ref)
|
|
|
211
249
|
}
|
|
212
250
|
));
|
|
213
251
|
AlertDialogDescription.displayName = AlertDialogPrimitive.Description.displayName;
|
|
214
|
-
var AlertDialogAction =
|
|
252
|
+
var AlertDialogAction = React137.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
215
253
|
AlertDialogPrimitive.Action,
|
|
216
254
|
{
|
|
217
255
|
ref,
|
|
@@ -220,7 +258,7 @@ var AlertDialogAction = React131.forwardRef(({ className, ...props }, ref) => /*
|
|
|
220
258
|
}
|
|
221
259
|
));
|
|
222
260
|
AlertDialogAction.displayName = AlertDialogPrimitive.Action.displayName;
|
|
223
|
-
var AlertDialogCancel =
|
|
261
|
+
var AlertDialogCancel = React137.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
224
262
|
AlertDialogPrimitive.Cancel,
|
|
225
263
|
{
|
|
226
264
|
ref,
|
|
@@ -247,7 +285,7 @@ var alertVariants = cva(
|
|
|
247
285
|
}
|
|
248
286
|
}
|
|
249
287
|
);
|
|
250
|
-
var Alert =
|
|
288
|
+
var Alert = React137.forwardRef(({ className, variant, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
251
289
|
"div",
|
|
252
290
|
{
|
|
253
291
|
ref,
|
|
@@ -257,7 +295,7 @@ var Alert = React131.forwardRef(({ className, variant, ...props }, ref) => /* @_
|
|
|
257
295
|
}
|
|
258
296
|
));
|
|
259
297
|
Alert.displayName = "Alert";
|
|
260
|
-
var AlertTitle =
|
|
298
|
+
var AlertTitle = React137.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
261
299
|
"h5",
|
|
262
300
|
{
|
|
263
301
|
ref,
|
|
@@ -266,7 +304,7 @@ var AlertTitle = React131.forwardRef(({ className, ...props }, ref) => /* @__PUR
|
|
|
266
304
|
}
|
|
267
305
|
));
|
|
268
306
|
AlertTitle.displayName = "AlertTitle";
|
|
269
|
-
var AlertDescription =
|
|
307
|
+
var AlertDescription = React137.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
270
308
|
"div",
|
|
271
309
|
{
|
|
272
310
|
ref,
|
|
@@ -276,7 +314,7 @@ var AlertDescription = React131.forwardRef(({ className, ...props }, ref) => /*
|
|
|
276
314
|
));
|
|
277
315
|
AlertDescription.displayName = "AlertDescription";
|
|
278
316
|
var AspectRatio = AspectRatioPrimitive.Root;
|
|
279
|
-
var Avatar =
|
|
317
|
+
var Avatar = React137__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
280
318
|
AvatarPrimitive.Root,
|
|
281
319
|
{
|
|
282
320
|
ref,
|
|
@@ -285,9 +323,9 @@ var Avatar = React131__default.forwardRef(({ className, ...props }, ref) => /* @
|
|
|
285
323
|
}
|
|
286
324
|
));
|
|
287
325
|
Avatar.displayName = AvatarPrimitive.Root.displayName;
|
|
288
|
-
var AvatarImage =
|
|
326
|
+
var AvatarImage = React137__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(AvatarPrimitive.Image, { ref, className: cn("aspect-square h-full w-full object-cover", className), ...props }));
|
|
289
327
|
AvatarImage.displayName = AvatarPrimitive.Image.displayName;
|
|
290
|
-
var AvatarFallback =
|
|
328
|
+
var AvatarFallback = React137__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
291
329
|
AvatarPrimitive.Fallback,
|
|
292
330
|
{
|
|
293
331
|
ref,
|
|
@@ -296,15 +334,15 @@ var AvatarFallback = React131__default.forwardRef(({ className, ...props }, ref)
|
|
|
296
334
|
}
|
|
297
335
|
));
|
|
298
336
|
AvatarFallback.displayName = AvatarPrimitive.Fallback.displayName;
|
|
299
|
-
var AvatarGroup =
|
|
337
|
+
var AvatarGroup = React137__default.forwardRef(
|
|
300
338
|
({ className, max = 4, size = 32, spacing, renderOverflow, children, ...props }, ref) => {
|
|
301
|
-
const items =
|
|
339
|
+
const items = React137__default.Children.toArray(children).filter(React137__default.isValidElement);
|
|
302
340
|
const overlap = spacing ?? Math.round(size / 3);
|
|
303
341
|
const visible = items.slice(0, max);
|
|
304
342
|
const remaining = Math.max(0, items.length - max);
|
|
305
343
|
return /* @__PURE__ */ jsxs("div", { ref, className: cn("flex items-center", className), "data-slot": "avatar-group", ...props, children: [
|
|
306
344
|
visible.map(
|
|
307
|
-
(child, i) =>
|
|
345
|
+
(child, i) => React137__default.cloneElement(child, {
|
|
308
346
|
key: child.key ?? i,
|
|
309
347
|
style: {
|
|
310
348
|
width: size,
|
|
@@ -510,8 +548,8 @@ function CalendarDayButton({
|
|
|
510
548
|
...props
|
|
511
549
|
}) {
|
|
512
550
|
const defaultClassNames = getDefaultClassNames();
|
|
513
|
-
const ref =
|
|
514
|
-
|
|
551
|
+
const ref = React137.useRef(null);
|
|
552
|
+
React137.useEffect(() => {
|
|
515
553
|
if (modifiers.focused) ref.current?.focus();
|
|
516
554
|
}, [modifiers.focused]);
|
|
517
555
|
return /* @__PURE__ */ jsx(
|
|
@@ -534,7 +572,7 @@ function CalendarDayButton({
|
|
|
534
572
|
}
|
|
535
573
|
);
|
|
536
574
|
}
|
|
537
|
-
var Card =
|
|
575
|
+
var Card = React137__default.forwardRef(
|
|
538
576
|
({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
539
577
|
"div",
|
|
540
578
|
{
|
|
@@ -545,35 +583,35 @@ var Card = React131__default.forwardRef(
|
|
|
545
583
|
)
|
|
546
584
|
);
|
|
547
585
|
Card.displayName = "Card";
|
|
548
|
-
var CardHeader =
|
|
586
|
+
var CardHeader = React137__default.forwardRef(
|
|
549
587
|
({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn("flex flex-col space-y-1.5 p-6", className), ...props })
|
|
550
588
|
);
|
|
551
589
|
CardHeader.displayName = "CardHeader";
|
|
552
|
-
var CardTitle =
|
|
590
|
+
var CardTitle = React137__default.forwardRef(
|
|
553
591
|
({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn("font-semibold leading-none tracking-tight", className), ...props })
|
|
554
592
|
);
|
|
555
593
|
CardTitle.displayName = "CardTitle";
|
|
556
|
-
var CardDescription =
|
|
594
|
+
var CardDescription = React137__default.forwardRef(
|
|
557
595
|
({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn("text-sm text-muted-foreground", className), ...props })
|
|
558
596
|
);
|
|
559
597
|
CardDescription.displayName = "CardDescription";
|
|
560
|
-
var CardContent =
|
|
598
|
+
var CardContent = React137__default.forwardRef(
|
|
561
599
|
({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn("p-6 pt-0", className), ...props })
|
|
562
600
|
);
|
|
563
601
|
CardContent.displayName = "CardContent";
|
|
564
|
-
var CardFooter =
|
|
602
|
+
var CardFooter = React137__default.forwardRef(
|
|
565
603
|
({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn("flex items-center p-6 pt-0", className), ...props })
|
|
566
604
|
);
|
|
567
605
|
CardFooter.displayName = "CardFooter";
|
|
568
|
-
var CarouselContext =
|
|
606
|
+
var CarouselContext = React137.createContext(null);
|
|
569
607
|
function useCarousel() {
|
|
570
|
-
const context =
|
|
608
|
+
const context = React137.useContext(CarouselContext);
|
|
571
609
|
if (!context) {
|
|
572
610
|
throw new Error("useCarousel must be used within a <Carousel />");
|
|
573
611
|
}
|
|
574
612
|
return context;
|
|
575
613
|
}
|
|
576
|
-
var Carousel =
|
|
614
|
+
var Carousel = React137.forwardRef(
|
|
577
615
|
({
|
|
578
616
|
orientation = "horizontal",
|
|
579
617
|
opts,
|
|
@@ -590,22 +628,22 @@ var Carousel = React131.forwardRef(
|
|
|
590
628
|
},
|
|
591
629
|
plugins
|
|
592
630
|
);
|
|
593
|
-
const [canScrollPrev, setCanScrollPrev] =
|
|
594
|
-
const [canScrollNext, setCanScrollNext] =
|
|
595
|
-
const onSelect =
|
|
631
|
+
const [canScrollPrev, setCanScrollPrev] = React137.useState(false);
|
|
632
|
+
const [canScrollNext, setCanScrollNext] = React137.useState(false);
|
|
633
|
+
const onSelect = React137.useCallback((api2) => {
|
|
596
634
|
if (!api2) {
|
|
597
635
|
return;
|
|
598
636
|
}
|
|
599
637
|
setCanScrollPrev(api2.canScrollPrev());
|
|
600
638
|
setCanScrollNext(api2.canScrollNext());
|
|
601
639
|
}, []);
|
|
602
|
-
const scrollPrev =
|
|
640
|
+
const scrollPrev = React137.useCallback(() => {
|
|
603
641
|
api?.scrollPrev();
|
|
604
642
|
}, [api]);
|
|
605
|
-
const scrollNext =
|
|
643
|
+
const scrollNext = React137.useCallback(() => {
|
|
606
644
|
api?.scrollNext();
|
|
607
645
|
}, [api]);
|
|
608
|
-
const handleKeyDown =
|
|
646
|
+
const handleKeyDown = React137.useCallback(
|
|
609
647
|
(event) => {
|
|
610
648
|
if (event.key === "ArrowLeft") {
|
|
611
649
|
event.preventDefault();
|
|
@@ -617,13 +655,13 @@ var Carousel = React131.forwardRef(
|
|
|
617
655
|
},
|
|
618
656
|
[scrollPrev, scrollNext]
|
|
619
657
|
);
|
|
620
|
-
|
|
658
|
+
React137.useEffect(() => {
|
|
621
659
|
if (!api || !setApi) {
|
|
622
660
|
return;
|
|
623
661
|
}
|
|
624
662
|
setApi(api);
|
|
625
663
|
}, [api, setApi]);
|
|
626
|
-
|
|
664
|
+
React137.useEffect(() => {
|
|
627
665
|
if (!api) {
|
|
628
666
|
return;
|
|
629
667
|
}
|
|
@@ -664,7 +702,7 @@ var Carousel = React131.forwardRef(
|
|
|
664
702
|
}
|
|
665
703
|
);
|
|
666
704
|
Carousel.displayName = "Carousel";
|
|
667
|
-
var CarouselContent =
|
|
705
|
+
var CarouselContent = React137.forwardRef(({ className, ...props }, ref) => {
|
|
668
706
|
const { carouselRef, orientation } = useCarousel();
|
|
669
707
|
return /* @__PURE__ */ jsx("div", { ref: carouselRef, className: "overflow-hidden", children: /* @__PURE__ */ jsx(
|
|
670
708
|
"div",
|
|
@@ -680,7 +718,7 @@ var CarouselContent = React131.forwardRef(({ className, ...props }, ref) => {
|
|
|
680
718
|
) });
|
|
681
719
|
});
|
|
682
720
|
CarouselContent.displayName = "CarouselContent";
|
|
683
|
-
var CarouselItem =
|
|
721
|
+
var CarouselItem = React137.forwardRef(({ className, ...props }, ref) => {
|
|
684
722
|
const { orientation } = useCarousel();
|
|
685
723
|
return /* @__PURE__ */ jsx(
|
|
686
724
|
"div",
|
|
@@ -698,7 +736,7 @@ var CarouselItem = React131.forwardRef(({ className, ...props }, ref) => {
|
|
|
698
736
|
);
|
|
699
737
|
});
|
|
700
738
|
CarouselItem.displayName = "CarouselItem";
|
|
701
|
-
var CarouselPrevious =
|
|
739
|
+
var CarouselPrevious = React137.forwardRef(({ className, variant = "outline", size = "icon", ...props }, ref) => {
|
|
702
740
|
const { orientation, scrollPrev, canScrollPrev } = useCarousel();
|
|
703
741
|
return /* @__PURE__ */ jsxs(
|
|
704
742
|
Button,
|
|
@@ -722,7 +760,7 @@ var CarouselPrevious = React131.forwardRef(({ className, variant = "outline", si
|
|
|
722
760
|
);
|
|
723
761
|
});
|
|
724
762
|
CarouselPrevious.displayName = "CarouselPrevious";
|
|
725
|
-
var CarouselNext =
|
|
763
|
+
var CarouselNext = React137.forwardRef(({ className, variant = "outline", size = "icon", ...props }, ref) => {
|
|
726
764
|
const { orientation, scrollNext, canScrollNext } = useCarousel();
|
|
727
765
|
return /* @__PURE__ */ jsxs(
|
|
728
766
|
Button,
|
|
@@ -746,17 +784,173 @@ var CarouselNext = React131.forwardRef(({ className, variant = "outline", size =
|
|
|
746
784
|
);
|
|
747
785
|
});
|
|
748
786
|
CarouselNext.displayName = "CarouselNext";
|
|
787
|
+
var SIZE = {
|
|
788
|
+
sm: { price: "text-sm", compare: "text-xs" },
|
|
789
|
+
md: { price: "text-lg", compare: "text-sm" },
|
|
790
|
+
lg: { price: "text-2xl", compare: "text-base" }
|
|
791
|
+
};
|
|
792
|
+
function formatMoney(minor, currency, locale) {
|
|
793
|
+
return new Intl.NumberFormat(locale, { style: "currency", currency }).format(minor / 100);
|
|
794
|
+
}
|
|
795
|
+
var PriceTag = React137__default.forwardRef(
|
|
796
|
+
({ amount, compareAt, currency = "USD", locale = "en-US", size = "md", showDiscount = true, className, ...props }, ref) => {
|
|
797
|
+
const onSale = compareAt !== void 0 && compareAt > amount;
|
|
798
|
+
const pct = onSale ? Math.round((1 - amount / compareAt) * 100) : 0;
|
|
799
|
+
const s = SIZE[size];
|
|
800
|
+
return /* @__PURE__ */ jsxs("span", { ref, className: cn("inline-flex items-baseline gap-2 font-sans tabular-nums", className), ...props, children: [
|
|
801
|
+
/* @__PURE__ */ jsx("span", { className: cn("font-semibold tracking-tight text-foreground", s.price), children: formatMoney(amount, currency, locale) }),
|
|
802
|
+
onSale && /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
803
|
+
/* @__PURE__ */ jsx("span", { className: cn("text-muted-foreground line-through", s.compare), children: formatMoney(compareAt, currency, locale) }),
|
|
804
|
+
showDiscount && /* @__PURE__ */ jsxs("span", { className: "rounded-full bg-destructive/10 px-2 py-0.5 text-xs font-semibold text-destructive", children: [
|
|
805
|
+
"\u2212",
|
|
806
|
+
pct,
|
|
807
|
+
"%"
|
|
808
|
+
] })
|
|
809
|
+
] })
|
|
810
|
+
] });
|
|
811
|
+
}
|
|
812
|
+
);
|
|
813
|
+
PriceTag.displayName = "PriceTag";
|
|
814
|
+
var QuantityStepper = React137__default.forwardRef(
|
|
815
|
+
({
|
|
816
|
+
value: valueProp,
|
|
817
|
+
defaultValue = 1,
|
|
818
|
+
onValueChange,
|
|
819
|
+
min = 1,
|
|
820
|
+
max = 99,
|
|
821
|
+
step = 1,
|
|
822
|
+
size = "md",
|
|
823
|
+
disabled = false,
|
|
824
|
+
className,
|
|
825
|
+
"aria-label": ariaLabel = "Quantity",
|
|
826
|
+
...props
|
|
827
|
+
}, ref) => {
|
|
828
|
+
const isControlled = valueProp !== void 0;
|
|
829
|
+
const [internal, setInternal] = React137__default.useState(defaultValue);
|
|
830
|
+
const value = isControlled ? valueProp : internal;
|
|
831
|
+
const commit = (next) => {
|
|
832
|
+
const clamped = Math.max(min, Math.min(max, next));
|
|
833
|
+
if (!isControlled) setInternal(clamped);
|
|
834
|
+
onValueChange?.(clamped);
|
|
835
|
+
};
|
|
836
|
+
const dim = size === "sm" ? "h-7 w-7" : "h-9 w-9";
|
|
837
|
+
return /* @__PURE__ */ jsxs(
|
|
838
|
+
"div",
|
|
839
|
+
{
|
|
840
|
+
ref,
|
|
841
|
+
role: "group",
|
|
842
|
+
"aria-label": ariaLabel,
|
|
843
|
+
className: cn("inline-flex items-center rounded-md border border-input", className),
|
|
844
|
+
...props,
|
|
845
|
+
children: [
|
|
846
|
+
/* @__PURE__ */ jsx(
|
|
847
|
+
Button,
|
|
848
|
+
{
|
|
849
|
+
type: "button",
|
|
850
|
+
variant: "ghost",
|
|
851
|
+
size: "icon",
|
|
852
|
+
className: cn("rounded-r-none", dim),
|
|
853
|
+
disabled: disabled || value <= min,
|
|
854
|
+
onClick: () => commit(value - step),
|
|
855
|
+
"aria-label": "Decrease quantity",
|
|
856
|
+
children: /* @__PURE__ */ jsx(Minus, { className: "h-4 w-4" })
|
|
857
|
+
}
|
|
858
|
+
),
|
|
859
|
+
/* @__PURE__ */ jsx(
|
|
860
|
+
"span",
|
|
861
|
+
{
|
|
862
|
+
"aria-live": "polite",
|
|
863
|
+
className: cn("select-none text-center text-sm font-medium tabular-nums", size === "sm" ? "min-w-7" : "min-w-8"),
|
|
864
|
+
children: value
|
|
865
|
+
}
|
|
866
|
+
),
|
|
867
|
+
/* @__PURE__ */ jsx(
|
|
868
|
+
Button,
|
|
869
|
+
{
|
|
870
|
+
type: "button",
|
|
871
|
+
variant: "ghost",
|
|
872
|
+
size: "icon",
|
|
873
|
+
className: cn("rounded-l-none", dim),
|
|
874
|
+
disabled: disabled || value >= max,
|
|
875
|
+
onClick: () => commit(value + step),
|
|
876
|
+
"aria-label": "Increase quantity",
|
|
877
|
+
children: /* @__PURE__ */ jsx(Plus, { className: "h-4 w-4" })
|
|
878
|
+
}
|
|
879
|
+
)
|
|
880
|
+
]
|
|
881
|
+
}
|
|
882
|
+
);
|
|
883
|
+
}
|
|
884
|
+
);
|
|
885
|
+
QuantityStepper.displayName = "QuantityStepper";
|
|
886
|
+
var CartLineItem = React137__default.forwardRef(
|
|
887
|
+
({
|
|
888
|
+
image,
|
|
889
|
+
title,
|
|
890
|
+
variant,
|
|
891
|
+
price,
|
|
892
|
+
compareAt,
|
|
893
|
+
currency = "USD",
|
|
894
|
+
quantity,
|
|
895
|
+
onQuantityChange,
|
|
896
|
+
onRemove,
|
|
897
|
+
minQuantity = 1,
|
|
898
|
+
maxQuantity = 99,
|
|
899
|
+
className,
|
|
900
|
+
...props
|
|
901
|
+
}, ref) => {
|
|
902
|
+
return /* @__PURE__ */ jsxs(
|
|
903
|
+
"div",
|
|
904
|
+
{
|
|
905
|
+
ref,
|
|
906
|
+
className: cn("flex items-center gap-4 rounded-lg border border-border bg-card p-3", className),
|
|
907
|
+
...props,
|
|
908
|
+
children: [
|
|
909
|
+
image && /* @__PURE__ */ jsx("img", { src: image, alt: "", className: "h-16 w-16 flex-none rounded-md object-cover" }),
|
|
910
|
+
/* @__PURE__ */ jsxs("div", { className: "flex min-w-0 flex-1 flex-col gap-1", children: [
|
|
911
|
+
/* @__PURE__ */ jsx("span", { className: "truncate font-medium text-card-foreground", children: title }),
|
|
912
|
+
variant && /* @__PURE__ */ jsx("span", { className: "truncate text-sm text-muted-foreground", children: variant }),
|
|
913
|
+
/* @__PURE__ */ jsx(PriceTag, { amount: price, compareAt, currency, size: "sm" })
|
|
914
|
+
] }),
|
|
915
|
+
/* @__PURE__ */ jsx(
|
|
916
|
+
QuantityStepper,
|
|
917
|
+
{
|
|
918
|
+
value: quantity,
|
|
919
|
+
min: minQuantity,
|
|
920
|
+
max: maxQuantity,
|
|
921
|
+
onValueChange: onQuantityChange,
|
|
922
|
+
size: "sm"
|
|
923
|
+
}
|
|
924
|
+
),
|
|
925
|
+
onRemove && /* @__PURE__ */ jsx(
|
|
926
|
+
Button,
|
|
927
|
+
{
|
|
928
|
+
type: "button",
|
|
929
|
+
variant: "ghost",
|
|
930
|
+
size: "icon",
|
|
931
|
+
className: "h-8 w-8 text-muted-foreground hover:text-destructive",
|
|
932
|
+
onClick: onRemove,
|
|
933
|
+
"aria-label": `Remove ${title}`,
|
|
934
|
+
children: /* @__PURE__ */ jsx(X, { className: "h-4 w-4" })
|
|
935
|
+
}
|
|
936
|
+
)
|
|
937
|
+
]
|
|
938
|
+
}
|
|
939
|
+
);
|
|
940
|
+
}
|
|
941
|
+
);
|
|
942
|
+
CartLineItem.displayName = "CartLineItem";
|
|
749
943
|
var THEMES = { light: "", dark: ".dark" };
|
|
750
|
-
var ChartContext =
|
|
944
|
+
var ChartContext = React137.createContext(null);
|
|
751
945
|
function useChart() {
|
|
752
|
-
const context =
|
|
946
|
+
const context = React137.useContext(ChartContext);
|
|
753
947
|
if (!context) {
|
|
754
948
|
throw new Error("useChart must be used within a <ChartContainer />");
|
|
755
949
|
}
|
|
756
950
|
return context;
|
|
757
951
|
}
|
|
758
|
-
var ChartContainer =
|
|
759
|
-
const uniqueId =
|
|
952
|
+
var ChartContainer = React137.forwardRef(({ id, className, children, config, ...props }, ref) => {
|
|
953
|
+
const uniqueId = React137.useId();
|
|
760
954
|
const chartId = `chart-${id || uniqueId.replace(/:/g, "")}`;
|
|
761
955
|
return /* @__PURE__ */ jsx(ChartContext.Provider, { value: { config }, children: /* @__PURE__ */ jsxs(
|
|
762
956
|
"div",
|
|
@@ -802,7 +996,7 @@ ${colorConfig.map(([key, itemConfig]) => {
|
|
|
802
996
|
);
|
|
803
997
|
};
|
|
804
998
|
var ChartTooltip = RechartsPrimitive.Tooltip;
|
|
805
|
-
var ChartTooltipContent =
|
|
999
|
+
var ChartTooltipContent = React137.forwardRef(
|
|
806
1000
|
({
|
|
807
1001
|
active,
|
|
808
1002
|
payload,
|
|
@@ -819,7 +1013,7 @@ var ChartTooltipContent = React131.forwardRef(
|
|
|
819
1013
|
labelKey
|
|
820
1014
|
}, ref) => {
|
|
821
1015
|
const { config } = useChart();
|
|
822
|
-
const tooltipLabel =
|
|
1016
|
+
const tooltipLabel = React137.useMemo(() => {
|
|
823
1017
|
if (hideLabel || !payload?.length) {
|
|
824
1018
|
return null;
|
|
825
1019
|
}
|
|
@@ -915,7 +1109,7 @@ var ChartTooltipContent = React131.forwardRef(
|
|
|
915
1109
|
);
|
|
916
1110
|
ChartTooltipContent.displayName = "ChartTooltip";
|
|
917
1111
|
var ChartLegend = RechartsPrimitive.Legend;
|
|
918
|
-
var ChartLegendContent =
|
|
1112
|
+
var ChartLegendContent = React137.forwardRef(
|
|
919
1113
|
({ className, hideIcon = false, payload, verticalAlign = "bottom", nameKey }, ref) => {
|
|
920
1114
|
const { config } = useChart();
|
|
921
1115
|
if (!payload?.length) {
|
|
@@ -973,7 +1167,7 @@ function getPayloadConfigFromPayload(config, payload, key) {
|
|
|
973
1167
|
}
|
|
974
1168
|
return configLabelKey in config ? config[configLabelKey] : config[key];
|
|
975
1169
|
}
|
|
976
|
-
var Checkbox =
|
|
1170
|
+
var Checkbox = React137__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
977
1171
|
CheckboxPrimitive.Root,
|
|
978
1172
|
{
|
|
979
1173
|
ref,
|
|
@@ -1013,7 +1207,7 @@ function detectTheme(node) {
|
|
|
1013
1207
|
}
|
|
1014
1208
|
return document.documentElement.classList.contains("dark") ? "dark" : "light";
|
|
1015
1209
|
}
|
|
1016
|
-
var CodeBlock =
|
|
1210
|
+
var CodeBlock = React137__default.forwardRef(
|
|
1017
1211
|
({
|
|
1018
1212
|
code,
|
|
1019
1213
|
language = "tsx",
|
|
@@ -1024,10 +1218,10 @@ var CodeBlock = React131__default.forwardRef(
|
|
|
1024
1218
|
className,
|
|
1025
1219
|
...props
|
|
1026
1220
|
}, ref) => {
|
|
1027
|
-
const containerRef =
|
|
1028
|
-
const [html, setHtml] =
|
|
1029
|
-
const [copied, setCopied] =
|
|
1030
|
-
|
|
1221
|
+
const containerRef = React137__default.useRef(null);
|
|
1222
|
+
const [html, setHtml] = React137__default.useState(null);
|
|
1223
|
+
const [copied, setCopied] = React137__default.useState(false);
|
|
1224
|
+
React137__default.useEffect(() => {
|
|
1031
1225
|
let cancelled = false;
|
|
1032
1226
|
getHighlighter().then((hl) => {
|
|
1033
1227
|
if (cancelled) return;
|
|
@@ -1042,7 +1236,7 @@ var CodeBlock = React131__default.forwardRef(
|
|
|
1042
1236
|
cancelled = true;
|
|
1043
1237
|
};
|
|
1044
1238
|
}, [code, language, theme]);
|
|
1045
|
-
const onCopy =
|
|
1239
|
+
const onCopy = React137__default.useCallback(async () => {
|
|
1046
1240
|
try {
|
|
1047
1241
|
await navigator.clipboard.writeText(code);
|
|
1048
1242
|
setCopied(true);
|
|
@@ -1050,7 +1244,7 @@ var CodeBlock = React131__default.forwardRef(
|
|
|
1050
1244
|
} catch {
|
|
1051
1245
|
}
|
|
1052
1246
|
}, [code]);
|
|
1053
|
-
const lines =
|
|
1247
|
+
const lines = React137__default.useMemo(() => code.split("\n"), [code]);
|
|
1054
1248
|
return /* @__PURE__ */ jsxs(
|
|
1055
1249
|
"div",
|
|
1056
1250
|
{
|
|
@@ -1118,7 +1312,7 @@ var Dialog = DialogPrimitive.Root;
|
|
|
1118
1312
|
var DialogTrigger = DialogPrimitive.Trigger;
|
|
1119
1313
|
var DialogPortal = DialogPrimitive.Portal;
|
|
1120
1314
|
var DialogClose = DialogPrimitive.Close;
|
|
1121
|
-
var DialogOverlay =
|
|
1315
|
+
var DialogOverlay = React137__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
1122
1316
|
DialogPrimitive.Overlay,
|
|
1123
1317
|
{
|
|
1124
1318
|
ref,
|
|
@@ -1132,7 +1326,7 @@ var DialogOverlay = React131__default.forwardRef(({ className, ...props }, ref)
|
|
|
1132
1326
|
}
|
|
1133
1327
|
));
|
|
1134
1328
|
DialogOverlay.displayName = DialogPrimitive.Overlay.displayName;
|
|
1135
|
-
var DialogContent =
|
|
1329
|
+
var DialogContent = React137__default.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs(DialogPortal, { children: [
|
|
1136
1330
|
/* @__PURE__ */ jsx(DialogOverlay, {}),
|
|
1137
1331
|
/* @__PURE__ */ jsxs(
|
|
1138
1332
|
DialogPrimitive.Content,
|
|
@@ -1162,7 +1356,7 @@ var DialogHeader = ({ className, ...props }) => /* @__PURE__ */ jsx("div", { cla
|
|
|
1162
1356
|
DialogHeader.displayName = "DialogHeader";
|
|
1163
1357
|
var DialogFooter = ({ className, ...props }) => /* @__PURE__ */ jsx("div", { className: cn("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2", className), ...props });
|
|
1164
1358
|
DialogFooter.displayName = "DialogFooter";
|
|
1165
|
-
var DialogTitle =
|
|
1359
|
+
var DialogTitle = React137__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
1166
1360
|
DialogPrimitive.Title,
|
|
1167
1361
|
{
|
|
1168
1362
|
ref,
|
|
@@ -1171,7 +1365,7 @@ var DialogTitle = React131__default.forwardRef(({ className, ...props }, ref) =>
|
|
|
1171
1365
|
}
|
|
1172
1366
|
));
|
|
1173
1367
|
DialogTitle.displayName = DialogPrimitive.Title.displayName;
|
|
1174
|
-
var DialogDescription =
|
|
1368
|
+
var DialogDescription = React137__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
1175
1369
|
DialogPrimitive.Description,
|
|
1176
1370
|
{
|
|
1177
1371
|
ref,
|
|
@@ -1180,7 +1374,7 @@ var DialogDescription = React131__default.forwardRef(({ className, ...props }, r
|
|
|
1180
1374
|
}
|
|
1181
1375
|
));
|
|
1182
1376
|
DialogDescription.displayName = DialogPrimitive.Description.displayName;
|
|
1183
|
-
var Command =
|
|
1377
|
+
var Command = React137.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
1184
1378
|
Command$1,
|
|
1185
1379
|
{
|
|
1186
1380
|
ref,
|
|
@@ -1195,7 +1389,7 @@ Command.displayName = Command$1.displayName;
|
|
|
1195
1389
|
var CommandDialog = ({ children, ...props }) => {
|
|
1196
1390
|
return /* @__PURE__ */ jsx(Dialog, { ...props, children: /* @__PURE__ */ jsx(DialogContent, { className: "overflow-hidden p-0", children: /* @__PURE__ */ jsx(Command, { className: "[&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground [&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0 [&_[cmdk-group]]:px-2 [&_[cmdk-input-wrapper]_svg]:h-5 [&_[cmdk-input-wrapper]_svg]:w-5 [&_[cmdk-input]]:h-12 [&_[cmdk-item]]:px-2 [&_[cmdk-item]]:py-3 [&_[cmdk-item]_svg]:h-5 [&_[cmdk-item]_svg]:w-5", children }) }) });
|
|
1197
1391
|
};
|
|
1198
|
-
var CommandInput =
|
|
1392
|
+
var CommandInput = React137.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxs("div", { className: "flex items-center border-b px-3", "cmdk-input-wrapper": "", children: [
|
|
1199
1393
|
/* @__PURE__ */ jsx(Search, { className: "mr-2 h-4 w-4 shrink-0 opacity-50" }),
|
|
1200
1394
|
/* @__PURE__ */ jsx(
|
|
1201
1395
|
Command$1.Input,
|
|
@@ -1210,7 +1404,7 @@ var CommandInput = React131.forwardRef(({ className, ...props }, ref) => /* @__P
|
|
|
1210
1404
|
)
|
|
1211
1405
|
] }));
|
|
1212
1406
|
CommandInput.displayName = Command$1.Input.displayName;
|
|
1213
|
-
var CommandList =
|
|
1407
|
+
var CommandList = React137.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
1214
1408
|
Command$1.List,
|
|
1215
1409
|
{
|
|
1216
1410
|
ref,
|
|
@@ -1219,7 +1413,7 @@ var CommandList = React131.forwardRef(({ className, ...props }, ref) => /* @__PU
|
|
|
1219
1413
|
}
|
|
1220
1414
|
));
|
|
1221
1415
|
CommandList.displayName = Command$1.List.displayName;
|
|
1222
|
-
var CommandEmpty =
|
|
1416
|
+
var CommandEmpty = React137.forwardRef((props, ref) => /* @__PURE__ */ jsx(
|
|
1223
1417
|
Command$1.Empty,
|
|
1224
1418
|
{
|
|
1225
1419
|
ref,
|
|
@@ -1228,7 +1422,7 @@ var CommandEmpty = React131.forwardRef((props, ref) => /* @__PURE__ */ jsx(
|
|
|
1228
1422
|
}
|
|
1229
1423
|
));
|
|
1230
1424
|
CommandEmpty.displayName = Command$1.Empty.displayName;
|
|
1231
|
-
var CommandGroup =
|
|
1425
|
+
var CommandGroup = React137.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
1232
1426
|
Command$1.Group,
|
|
1233
1427
|
{
|
|
1234
1428
|
ref,
|
|
@@ -1240,7 +1434,7 @@ var CommandGroup = React131.forwardRef(({ className, ...props }, ref) => /* @__P
|
|
|
1240
1434
|
}
|
|
1241
1435
|
));
|
|
1242
1436
|
CommandGroup.displayName = Command$1.Group.displayName;
|
|
1243
|
-
var CommandSeparator =
|
|
1437
|
+
var CommandSeparator = React137.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
1244
1438
|
Command$1.Separator,
|
|
1245
1439
|
{
|
|
1246
1440
|
ref,
|
|
@@ -1249,7 +1443,7 @@ var CommandSeparator = React131.forwardRef(({ className, ...props }, ref) => /*
|
|
|
1249
1443
|
}
|
|
1250
1444
|
));
|
|
1251
1445
|
CommandSeparator.displayName = Command$1.Separator.displayName;
|
|
1252
|
-
var CommandItem =
|
|
1446
|
+
var CommandItem = React137.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
1253
1447
|
Command$1.Item,
|
|
1254
1448
|
{
|
|
1255
1449
|
ref,
|
|
@@ -1277,7 +1471,7 @@ var CommandShortcut = ({
|
|
|
1277
1471
|
);
|
|
1278
1472
|
};
|
|
1279
1473
|
CommandShortcut.displayName = "CommandShortcut";
|
|
1280
|
-
var Comparison =
|
|
1474
|
+
var Comparison = React137__default.forwardRef(
|
|
1281
1475
|
({
|
|
1282
1476
|
before,
|
|
1283
1477
|
after,
|
|
@@ -1293,10 +1487,10 @@ var Comparison = React131__default.forwardRef(
|
|
|
1293
1487
|
...props
|
|
1294
1488
|
}, ref) => {
|
|
1295
1489
|
const isControlled = valueProp !== void 0;
|
|
1296
|
-
const [internal, setInternal] =
|
|
1490
|
+
const [internal, setInternal] = React137__default.useState(defaultValue);
|
|
1297
1491
|
const value = Math.max(0, Math.min(100, isControlled ? valueProp : internal));
|
|
1298
|
-
const containerRef =
|
|
1299
|
-
const commit =
|
|
1492
|
+
const containerRef = React137__default.useRef(null);
|
|
1493
|
+
const commit = React137__default.useCallback(
|
|
1300
1494
|
(next) => {
|
|
1301
1495
|
const clamped = Math.max(0, Math.min(100, next));
|
|
1302
1496
|
if (!isControlled) setInternal(clamped);
|
|
@@ -1304,7 +1498,7 @@ var Comparison = React131__default.forwardRef(
|
|
|
1304
1498
|
},
|
|
1305
1499
|
[isControlled, onValueChange]
|
|
1306
1500
|
);
|
|
1307
|
-
const updateFromPointer =
|
|
1501
|
+
const updateFromPointer = React137__default.useCallback(
|
|
1308
1502
|
(clientX, clientY) => {
|
|
1309
1503
|
const el = containerRef.current;
|
|
1310
1504
|
if (!el) return;
|
|
@@ -1427,30 +1621,30 @@ var ContextMenuSub = ContextMenuPrimitive.Sub;
|
|
|
1427
1621
|
var ContextMenuRadioGroup = ContextMenuPrimitive.RadioGroup;
|
|
1428
1622
|
var contentStyle = "z-50 min-w-[8rem] overflow-hidden rounded-md border border-[hsl(var(--border))] bg-[hsl(var(--popover))] p-1 text-[hsl(var(--popover-foreground))] shadow-md animate-in fade-in-80";
|
|
1429
1623
|
var itemStyle = "relative flex cursor-default select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none transition-colors focus:bg-[hsl(var(--accent))] focus:text-[hsl(var(--accent-foreground))] data-[disabled]:pointer-events-none data-[disabled]:opacity-50";
|
|
1430
|
-
var ContextMenuContent =
|
|
1624
|
+
var ContextMenuContent = React137__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(ContextMenuPrimitive.Portal, { children: /* @__PURE__ */ jsx(ContextMenuPrimitive.Content, { ref, className: cn(contentStyle, className), ...props }) }));
|
|
1431
1625
|
ContextMenuContent.displayName = ContextMenuPrimitive.Content.displayName;
|
|
1432
|
-
var ContextMenuItem =
|
|
1626
|
+
var ContextMenuItem = React137__default.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx(ContextMenuPrimitive.Item, { ref, className: cn(itemStyle, inset && "pl-8", className), ...props }));
|
|
1433
1627
|
ContextMenuItem.displayName = ContextMenuPrimitive.Item.displayName;
|
|
1434
|
-
var ContextMenuCheckboxItem =
|
|
1628
|
+
var ContextMenuCheckboxItem = React137__default.forwardRef(({ className, children, checked, ...props }, ref) => /* @__PURE__ */ jsxs(ContextMenuPrimitive.CheckboxItem, { ref, className: cn(itemStyle, "pl-8", className), checked, ...props, children: [
|
|
1435
1629
|
/* @__PURE__ */ jsx("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsx(ContextMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx(Check, { className: "h-4 w-4" }) }) }),
|
|
1436
1630
|
children
|
|
1437
1631
|
] }));
|
|
1438
1632
|
ContextMenuCheckboxItem.displayName = ContextMenuPrimitive.CheckboxItem.displayName;
|
|
1439
|
-
var ContextMenuRadioItem =
|
|
1633
|
+
var ContextMenuRadioItem = React137__default.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs(ContextMenuPrimitive.RadioItem, { ref, className: cn(itemStyle, "pl-8", className), ...props, children: [
|
|
1440
1634
|
/* @__PURE__ */ jsx("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsx(ContextMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx(Circle, { className: "h-2 w-2 fill-current" }) }) }),
|
|
1441
1635
|
children
|
|
1442
1636
|
] }));
|
|
1443
1637
|
ContextMenuRadioItem.displayName = ContextMenuPrimitive.RadioItem.displayName;
|
|
1444
|
-
var ContextMenuLabel =
|
|
1638
|
+
var ContextMenuLabel = React137__default.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx(ContextMenuPrimitive.Label, { ref, className: cn("px-2 py-1.5 text-xs font-semibold text-[hsl(var(--muted-foreground))]", inset && "pl-8", className), ...props }));
|
|
1445
1639
|
ContextMenuLabel.displayName = ContextMenuPrimitive.Label.displayName;
|
|
1446
|
-
var ContextMenuSeparator =
|
|
1640
|
+
var ContextMenuSeparator = React137__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(ContextMenuPrimitive.Separator, { ref, className: cn("-mx-1 my-1 h-px bg-[hsl(var(--muted))]", className), ...props }));
|
|
1447
1641
|
ContextMenuSeparator.displayName = ContextMenuPrimitive.Separator.displayName;
|
|
1448
|
-
var ContextMenuSubTrigger =
|
|
1642
|
+
var ContextMenuSubTrigger = React137__default.forwardRef(({ className, inset, children, ...props }, ref) => /* @__PURE__ */ jsxs(ContextMenuPrimitive.SubTrigger, { ref, className: cn(itemStyle, inset && "pl-8", className), ...props, children: [
|
|
1449
1643
|
children,
|
|
1450
1644
|
/* @__PURE__ */ jsx(ChevronRight, { className: "ml-auto h-4 w-4" })
|
|
1451
1645
|
] }));
|
|
1452
1646
|
ContextMenuSubTrigger.displayName = ContextMenuPrimitive.SubTrigger.displayName;
|
|
1453
|
-
var ContextMenuSubContent =
|
|
1647
|
+
var ContextMenuSubContent = React137__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(ContextMenuPrimitive.SubContent, { ref, className: cn(contentStyle, className), ...props }));
|
|
1454
1648
|
ContextMenuSubContent.displayName = ContextMenuPrimitive.SubContent.displayName;
|
|
1455
1649
|
var ContextMenuShortcut = ({ className, ...props }) => /* @__PURE__ */ jsx("span", { className: cn("ml-auto text-xs tracking-widest opacity-60", className), ...props });
|
|
1456
1650
|
var Drawer = ({
|
|
@@ -1467,7 +1661,7 @@ Drawer.displayName = "Drawer";
|
|
|
1467
1661
|
var DrawerTrigger = Drawer$1.Trigger;
|
|
1468
1662
|
var DrawerPortal = Drawer$1.Portal;
|
|
1469
1663
|
var DrawerClose = Drawer$1.Close;
|
|
1470
|
-
var DrawerOverlay =
|
|
1664
|
+
var DrawerOverlay = React137.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
1471
1665
|
Drawer$1.Overlay,
|
|
1472
1666
|
{
|
|
1473
1667
|
ref,
|
|
@@ -1476,7 +1670,7 @@ var DrawerOverlay = React131.forwardRef(({ className, ...props }, ref) => /* @__
|
|
|
1476
1670
|
}
|
|
1477
1671
|
));
|
|
1478
1672
|
DrawerOverlay.displayName = Drawer$1.Overlay.displayName;
|
|
1479
|
-
var DrawerContent =
|
|
1673
|
+
var DrawerContent = React137.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs(DrawerPortal, { children: [
|
|
1480
1674
|
/* @__PURE__ */ jsx(DrawerOverlay, {}),
|
|
1481
1675
|
/* @__PURE__ */ jsxs(
|
|
1482
1676
|
Drawer$1.Content,
|
|
@@ -1517,7 +1711,7 @@ var DrawerFooter = ({
|
|
|
1517
1711
|
}
|
|
1518
1712
|
);
|
|
1519
1713
|
DrawerFooter.displayName = "DrawerFooter";
|
|
1520
|
-
var DrawerTitle =
|
|
1714
|
+
var DrawerTitle = React137.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
1521
1715
|
Drawer$1.Title,
|
|
1522
1716
|
{
|
|
1523
1717
|
ref,
|
|
@@ -1529,7 +1723,7 @@ var DrawerTitle = React131.forwardRef(({ className, ...props }, ref) => /* @__PU
|
|
|
1529
1723
|
}
|
|
1530
1724
|
));
|
|
1531
1725
|
DrawerTitle.displayName = Drawer$1.Title.displayName;
|
|
1532
|
-
var DrawerDescription =
|
|
1726
|
+
var DrawerDescription = React137.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
1533
1727
|
Drawer$1.Description,
|
|
1534
1728
|
{
|
|
1535
1729
|
ref,
|
|
@@ -1554,36 +1748,65 @@ var itemStyle2 = cn(
|
|
|
1554
1748
|
"focus:bg-[hsl(var(--accent))] focus:text-[hsl(var(--accent-foreground))]",
|
|
1555
1749
|
"data-[disabled]:pointer-events-none data-[disabled]:opacity-50"
|
|
1556
1750
|
);
|
|
1557
|
-
var DropdownMenuContent =
|
|
1751
|
+
var DropdownMenuContent = React137__default.forwardRef(({ className, sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsx(DropdownMenuPrimitive.Portal, { children: /* @__PURE__ */ jsx(DropdownMenuPrimitive.Content, { ref, sideOffset, className: cn(contentStyle2, className), ...props }) }));
|
|
1558
1752
|
DropdownMenuContent.displayName = DropdownMenuPrimitive.Content.displayName;
|
|
1559
|
-
var DropdownMenuItem =
|
|
1753
|
+
var DropdownMenuItem = React137__default.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx(DropdownMenuPrimitive.Item, { ref, className: cn(itemStyle2, inset && "pl-8", className), ...props }));
|
|
1560
1754
|
DropdownMenuItem.displayName = DropdownMenuPrimitive.Item.displayName;
|
|
1561
|
-
var DropdownMenuCheckboxItem =
|
|
1755
|
+
var DropdownMenuCheckboxItem = React137__default.forwardRef(({ className, children, checked, ...props }, ref) => /* @__PURE__ */ jsxs(DropdownMenuPrimitive.CheckboxItem, { ref, className: cn(itemStyle2, "pl-8", className), checked, ...props, children: [
|
|
1562
1756
|
/* @__PURE__ */ jsx("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsx(DropdownMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx(Check, { className: "h-4 w-4" }) }) }),
|
|
1563
1757
|
children
|
|
1564
1758
|
] }));
|
|
1565
1759
|
DropdownMenuCheckboxItem.displayName = DropdownMenuPrimitive.CheckboxItem.displayName;
|
|
1566
|
-
var DropdownMenuRadioItem =
|
|
1760
|
+
var DropdownMenuRadioItem = React137__default.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs(DropdownMenuPrimitive.RadioItem, { ref, className: cn(itemStyle2, "pl-8", className), ...props, children: [
|
|
1567
1761
|
/* @__PURE__ */ jsx("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsx(DropdownMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx(Circle, { className: "h-2 w-2 fill-current" }) }) }),
|
|
1568
1762
|
children
|
|
1569
1763
|
] }));
|
|
1570
1764
|
DropdownMenuRadioItem.displayName = DropdownMenuPrimitive.RadioItem.displayName;
|
|
1571
|
-
var DropdownMenuLabel =
|
|
1765
|
+
var DropdownMenuLabel = React137__default.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx(DropdownMenuPrimitive.Label, { ref, className: cn("px-2 py-1.5 text-xs font-semibold text-[hsl(var(--muted-foreground))]", inset && "pl-8", className), ...props }));
|
|
1572
1766
|
DropdownMenuLabel.displayName = DropdownMenuPrimitive.Label.displayName;
|
|
1573
|
-
var DropdownMenuSeparator =
|
|
1767
|
+
var DropdownMenuSeparator = React137__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(DropdownMenuPrimitive.Separator, { ref, className: cn("-mx-1 my-1 h-px bg-[hsl(var(--muted))]", className), ...props }));
|
|
1574
1768
|
DropdownMenuSeparator.displayName = DropdownMenuPrimitive.Separator.displayName;
|
|
1575
|
-
var DropdownMenuSubTrigger =
|
|
1769
|
+
var DropdownMenuSubTrigger = React137__default.forwardRef(({ className, inset, children, ...props }, ref) => /* @__PURE__ */ jsxs(DropdownMenuPrimitive.SubTrigger, { ref, className: cn(itemStyle2, inset && "pl-8", "data-[state=open]:bg-[hsl(var(--accent))]", className), ...props, children: [
|
|
1576
1770
|
children,
|
|
1577
1771
|
/* @__PURE__ */ jsx(ChevronRight, { className: "ml-auto h-4 w-4" })
|
|
1578
1772
|
] }));
|
|
1579
1773
|
DropdownMenuSubTrigger.displayName = DropdownMenuPrimitive.SubTrigger.displayName;
|
|
1580
|
-
var DropdownMenuSubContent =
|
|
1774
|
+
var DropdownMenuSubContent = React137__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(DropdownMenuPrimitive.SubContent, { ref, className: cn(contentStyle2, className), ...props }));
|
|
1581
1775
|
DropdownMenuSubContent.displayName = DropdownMenuPrimitive.SubContent.displayName;
|
|
1582
1776
|
var DropdownMenuShortcut = ({ className, ...props }) => /* @__PURE__ */ jsx("span", { className: cn("ml-auto text-xs tracking-widest opacity-60", className), ...props });
|
|
1583
1777
|
DropdownMenuShortcut.displayName = "DropdownMenuShortcut";
|
|
1778
|
+
var EmptyCart = React137__default.forwardRef(
|
|
1779
|
+
({
|
|
1780
|
+
title = "Your cart is empty",
|
|
1781
|
+
description = "Browse the catalog and add something you love.",
|
|
1782
|
+
actionLabel = "Continue shopping",
|
|
1783
|
+
onAction,
|
|
1784
|
+
icon,
|
|
1785
|
+
className,
|
|
1786
|
+
...props
|
|
1787
|
+
}, ref) => {
|
|
1788
|
+
return /* @__PURE__ */ jsxs(
|
|
1789
|
+
"div",
|
|
1790
|
+
{
|
|
1791
|
+
ref,
|
|
1792
|
+
className: cn("flex flex-col items-center justify-center gap-4 px-6 py-12 text-center", className),
|
|
1793
|
+
...props,
|
|
1794
|
+
children: [
|
|
1795
|
+
/* @__PURE__ */ jsx("div", { className: "flex h-14 w-14 items-center justify-center rounded-full bg-[hsl(var(--muted))] text-[hsl(var(--muted-foreground))]", children: icon ?? /* @__PURE__ */ jsx(ShoppingCart, { className: "h-6 w-6", strokeWidth: 1.5 }) }),
|
|
1796
|
+
/* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-1", children: [
|
|
1797
|
+
/* @__PURE__ */ jsx("span", { className: "text-base font-semibold text-foreground", children: title }),
|
|
1798
|
+
description && /* @__PURE__ */ jsx("span", { className: "max-w-xs text-sm text-muted-foreground", children: description })
|
|
1799
|
+
] }),
|
|
1800
|
+
actionLabel && onAction && /* @__PURE__ */ jsx(Button, { onClick: onAction, className: "mt-1", children: actionLabel })
|
|
1801
|
+
]
|
|
1802
|
+
}
|
|
1803
|
+
);
|
|
1804
|
+
}
|
|
1805
|
+
);
|
|
1806
|
+
EmptyCart.displayName = "EmptyCart";
|
|
1584
1807
|
var HoverCard = HoverCardPrimitive.Root;
|
|
1585
1808
|
var HoverCardTrigger = HoverCardPrimitive.Trigger;
|
|
1586
|
-
var HoverCardContent =
|
|
1809
|
+
var HoverCardContent = React137.forwardRef(({ className, align = "center", sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
1587
1810
|
HoverCardPrimitive.Content,
|
|
1588
1811
|
{
|
|
1589
1812
|
ref,
|
|
@@ -1597,7 +1820,7 @@ var HoverCardContent = React131.forwardRef(({ className, align = "center", sideO
|
|
|
1597
1820
|
}
|
|
1598
1821
|
));
|
|
1599
1822
|
HoverCardContent.displayName = HoverCardPrimitive.Content.displayName;
|
|
1600
|
-
var InputOTP =
|
|
1823
|
+
var InputOTP = React137.forwardRef(({ className, containerClassName, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
1601
1824
|
OTPInput,
|
|
1602
1825
|
{
|
|
1603
1826
|
ref,
|
|
@@ -1610,10 +1833,10 @@ var InputOTP = React131.forwardRef(({ className, containerClassName, ...props },
|
|
|
1610
1833
|
}
|
|
1611
1834
|
));
|
|
1612
1835
|
InputOTP.displayName = "InputOTP";
|
|
1613
|
-
var InputOTPGroup =
|
|
1836
|
+
var InputOTPGroup = React137.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn("flex items-center", className), ...props }));
|
|
1614
1837
|
InputOTPGroup.displayName = "InputOTPGroup";
|
|
1615
|
-
var InputOTPSlot =
|
|
1616
|
-
const inputOTPContext =
|
|
1838
|
+
var InputOTPSlot = React137.forwardRef(({ index, className, ...props }, ref) => {
|
|
1839
|
+
const inputOTPContext = React137.useContext(OTPInputContext);
|
|
1617
1840
|
const { char, hasFakeCaret, isActive } = inputOTPContext.slots[index];
|
|
1618
1841
|
return /* @__PURE__ */ jsxs(
|
|
1619
1842
|
"div",
|
|
@@ -1633,9 +1856,9 @@ var InputOTPSlot = React131.forwardRef(({ index, className, ...props }, ref) =>
|
|
|
1633
1856
|
);
|
|
1634
1857
|
});
|
|
1635
1858
|
InputOTPSlot.displayName = "InputOTPSlot";
|
|
1636
|
-
var InputOTPSeparator =
|
|
1859
|
+
var InputOTPSeparator = React137.forwardRef(({ ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, role: "separator", ...props, children: /* @__PURE__ */ jsx(Minus, {}) }));
|
|
1637
1860
|
InputOTPSeparator.displayName = "InputOTPSeparator";
|
|
1638
|
-
var Input =
|
|
1861
|
+
var Input = React137__default.forwardRef(
|
|
1639
1862
|
({ className, type, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
1640
1863
|
"input",
|
|
1641
1864
|
{
|
|
@@ -1657,7 +1880,7 @@ Input.displayName = "Input";
|
|
|
1657
1880
|
var labelVariants = cva(
|
|
1658
1881
|
"text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70"
|
|
1659
1882
|
);
|
|
1660
|
-
var Label3 =
|
|
1883
|
+
var Label3 = React137.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
1661
1884
|
LabelPrimitive.Root,
|
|
1662
1885
|
{
|
|
1663
1886
|
ref,
|
|
@@ -1666,7 +1889,7 @@ var Label3 = React131.forwardRef(({ className, ...props }, ref) => /* @__PURE__
|
|
|
1666
1889
|
}
|
|
1667
1890
|
));
|
|
1668
1891
|
Label3.displayName = LabelPrimitive.Root.displayName;
|
|
1669
|
-
var LogoCarousel =
|
|
1892
|
+
var LogoCarousel = React137__default.forwardRef(
|
|
1670
1893
|
({
|
|
1671
1894
|
className,
|
|
1672
1895
|
logos,
|
|
@@ -1760,7 +1983,7 @@ var SPEED_DURATION = {
|
|
|
1760
1983
|
normal: "40s",
|
|
1761
1984
|
fast: "20s"
|
|
1762
1985
|
};
|
|
1763
|
-
var Marquee =
|
|
1986
|
+
var Marquee = React137__default.forwardRef(
|
|
1764
1987
|
({
|
|
1765
1988
|
children,
|
|
1766
1989
|
speed = "normal",
|
|
@@ -1824,7 +2047,7 @@ function MenubarSub({
|
|
|
1824
2047
|
}) {
|
|
1825
2048
|
return /* @__PURE__ */ jsx(MenubarPrimitive.Sub, { "data-slot": "menubar-sub", ...props });
|
|
1826
2049
|
}
|
|
1827
|
-
var Menubar =
|
|
2050
|
+
var Menubar = React137.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
1828
2051
|
MenubarPrimitive.Root,
|
|
1829
2052
|
{
|
|
1830
2053
|
ref,
|
|
@@ -1836,7 +2059,7 @@ var Menubar = React131.forwardRef(({ className, ...props }, ref) => /* @__PURE__
|
|
|
1836
2059
|
}
|
|
1837
2060
|
));
|
|
1838
2061
|
Menubar.displayName = MenubarPrimitive.Root.displayName;
|
|
1839
|
-
var MenubarTrigger =
|
|
2062
|
+
var MenubarTrigger = React137.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
1840
2063
|
MenubarPrimitive.Trigger,
|
|
1841
2064
|
{
|
|
1842
2065
|
ref,
|
|
@@ -1848,7 +2071,7 @@ var MenubarTrigger = React131.forwardRef(({ className, ...props }, ref) => /* @_
|
|
|
1848
2071
|
}
|
|
1849
2072
|
));
|
|
1850
2073
|
MenubarTrigger.displayName = MenubarPrimitive.Trigger.displayName;
|
|
1851
|
-
var MenubarSubTrigger =
|
|
2074
|
+
var MenubarSubTrigger = React137.forwardRef(({ className, inset, children, ...props }, ref) => /* @__PURE__ */ jsxs(
|
|
1852
2075
|
MenubarPrimitive.SubTrigger,
|
|
1853
2076
|
{
|
|
1854
2077
|
ref,
|
|
@@ -1865,7 +2088,7 @@ var MenubarSubTrigger = React131.forwardRef(({ className, inset, children, ...pr
|
|
|
1865
2088
|
}
|
|
1866
2089
|
));
|
|
1867
2090
|
MenubarSubTrigger.displayName = MenubarPrimitive.SubTrigger.displayName;
|
|
1868
|
-
var MenubarSubContent =
|
|
2091
|
+
var MenubarSubContent = React137.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
1869
2092
|
MenubarPrimitive.SubContent,
|
|
1870
2093
|
{
|
|
1871
2094
|
ref,
|
|
@@ -1877,7 +2100,7 @@ var MenubarSubContent = React131.forwardRef(({ className, ...props }, ref) => /*
|
|
|
1877
2100
|
}
|
|
1878
2101
|
));
|
|
1879
2102
|
MenubarSubContent.displayName = MenubarPrimitive.SubContent.displayName;
|
|
1880
|
-
var MenubarContent =
|
|
2103
|
+
var MenubarContent = React137.forwardRef(
|
|
1881
2104
|
({ className, align = "start", alignOffset = -4, sideOffset = 8, ...props }, ref) => /* @__PURE__ */ jsx(MenubarPrimitive.Portal, { children: /* @__PURE__ */ jsx(
|
|
1882
2105
|
MenubarPrimitive.Content,
|
|
1883
2106
|
{
|
|
@@ -1894,7 +2117,7 @@ var MenubarContent = React131.forwardRef(
|
|
|
1894
2117
|
) })
|
|
1895
2118
|
);
|
|
1896
2119
|
MenubarContent.displayName = MenubarPrimitive.Content.displayName;
|
|
1897
|
-
var MenubarItem =
|
|
2120
|
+
var MenubarItem = React137.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
1898
2121
|
MenubarPrimitive.Item,
|
|
1899
2122
|
{
|
|
1900
2123
|
ref,
|
|
@@ -1907,7 +2130,7 @@ var MenubarItem = React131.forwardRef(({ className, inset, ...props }, ref) => /
|
|
|
1907
2130
|
}
|
|
1908
2131
|
));
|
|
1909
2132
|
MenubarItem.displayName = MenubarPrimitive.Item.displayName;
|
|
1910
|
-
var MenubarCheckboxItem =
|
|
2133
|
+
var MenubarCheckboxItem = React137.forwardRef(({ className, children, checked, ...props }, ref) => /* @__PURE__ */ jsxs(
|
|
1911
2134
|
MenubarPrimitive.CheckboxItem,
|
|
1912
2135
|
{
|
|
1913
2136
|
ref,
|
|
@@ -1924,7 +2147,7 @@ var MenubarCheckboxItem = React131.forwardRef(({ className, children, checked, .
|
|
|
1924
2147
|
}
|
|
1925
2148
|
));
|
|
1926
2149
|
MenubarCheckboxItem.displayName = MenubarPrimitive.CheckboxItem.displayName;
|
|
1927
|
-
var MenubarRadioItem =
|
|
2150
|
+
var MenubarRadioItem = React137.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs(
|
|
1928
2151
|
MenubarPrimitive.RadioItem,
|
|
1929
2152
|
{
|
|
1930
2153
|
ref,
|
|
@@ -1940,7 +2163,7 @@ var MenubarRadioItem = React131.forwardRef(({ className, children, ...props }, r
|
|
|
1940
2163
|
}
|
|
1941
2164
|
));
|
|
1942
2165
|
MenubarRadioItem.displayName = MenubarPrimitive.RadioItem.displayName;
|
|
1943
|
-
var MenubarLabel =
|
|
2166
|
+
var MenubarLabel = React137.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
1944
2167
|
MenubarPrimitive.Label,
|
|
1945
2168
|
{
|
|
1946
2169
|
ref,
|
|
@@ -1953,7 +2176,7 @@ var MenubarLabel = React131.forwardRef(({ className, inset, ...props }, ref) =>
|
|
|
1953
2176
|
}
|
|
1954
2177
|
));
|
|
1955
2178
|
MenubarLabel.displayName = MenubarPrimitive.Label.displayName;
|
|
1956
|
-
var MenubarSeparator =
|
|
2179
|
+
var MenubarSeparator = React137.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
1957
2180
|
MenubarPrimitive.Separator,
|
|
1958
2181
|
{
|
|
1959
2182
|
ref,
|
|
@@ -1978,7 +2201,7 @@ var MenubarShortcut = ({
|
|
|
1978
2201
|
);
|
|
1979
2202
|
};
|
|
1980
2203
|
MenubarShortcut.displayname = "MenubarShortcut";
|
|
1981
|
-
var NavigationMenu =
|
|
2204
|
+
var NavigationMenu = React137.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs(
|
|
1982
2205
|
NavigationMenuPrimitive.Root,
|
|
1983
2206
|
{
|
|
1984
2207
|
ref,
|
|
@@ -1994,7 +2217,7 @@ var NavigationMenu = React131.forwardRef(({ className, children, ...props }, ref
|
|
|
1994
2217
|
}
|
|
1995
2218
|
));
|
|
1996
2219
|
NavigationMenu.displayName = NavigationMenuPrimitive.Root.displayName;
|
|
1997
|
-
var NavigationMenuList =
|
|
2220
|
+
var NavigationMenuList = React137.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
1998
2221
|
NavigationMenuPrimitive.List,
|
|
1999
2222
|
{
|
|
2000
2223
|
ref,
|
|
@@ -2010,7 +2233,7 @@ var NavigationMenuItem = NavigationMenuPrimitive.Item;
|
|
|
2010
2233
|
var navigationMenuTriggerStyle = cva(
|
|
2011
2234
|
"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"
|
|
2012
2235
|
);
|
|
2013
|
-
var NavigationMenuTrigger =
|
|
2236
|
+
var NavigationMenuTrigger = React137.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs(
|
|
2014
2237
|
NavigationMenuPrimitive.Trigger,
|
|
2015
2238
|
{
|
|
2016
2239
|
ref,
|
|
@@ -2030,7 +2253,7 @@ var NavigationMenuTrigger = React131.forwardRef(({ className, children, ...props
|
|
|
2030
2253
|
}
|
|
2031
2254
|
));
|
|
2032
2255
|
NavigationMenuTrigger.displayName = NavigationMenuPrimitive.Trigger.displayName;
|
|
2033
|
-
var NavigationMenuContent =
|
|
2256
|
+
var NavigationMenuContent = React137.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
2034
2257
|
NavigationMenuPrimitive.Content,
|
|
2035
2258
|
{
|
|
2036
2259
|
ref,
|
|
@@ -2043,7 +2266,7 @@ var NavigationMenuContent = React131.forwardRef(({ className, ...props }, ref) =
|
|
|
2043
2266
|
));
|
|
2044
2267
|
NavigationMenuContent.displayName = NavigationMenuPrimitive.Content.displayName;
|
|
2045
2268
|
var NavigationMenuLink = NavigationMenuPrimitive.Link;
|
|
2046
|
-
var NavigationMenuViewport =
|
|
2269
|
+
var NavigationMenuViewport = React137.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { className: cn("absolute left-0 top-full flex justify-center"), children: /* @__PURE__ */ jsx(
|
|
2047
2270
|
NavigationMenuPrimitive.Viewport,
|
|
2048
2271
|
{
|
|
2049
2272
|
className: cn(
|
|
@@ -2055,7 +2278,7 @@ var NavigationMenuViewport = React131.forwardRef(({ className, ...props }, ref)
|
|
|
2055
2278
|
}
|
|
2056
2279
|
) }));
|
|
2057
2280
|
NavigationMenuViewport.displayName = NavigationMenuPrimitive.Viewport.displayName;
|
|
2058
|
-
var NavigationMenuIndicator =
|
|
2281
|
+
var NavigationMenuIndicator = React137.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
2059
2282
|
NavigationMenuPrimitive.Indicator,
|
|
2060
2283
|
{
|
|
2061
2284
|
ref,
|
|
@@ -2078,7 +2301,7 @@ var Pagination = ({ className, ...props }) => /* @__PURE__ */ jsx(
|
|
|
2078
2301
|
}
|
|
2079
2302
|
);
|
|
2080
2303
|
Pagination.displayName = "Pagination";
|
|
2081
|
-
var PaginationContent =
|
|
2304
|
+
var PaginationContent = React137.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
2082
2305
|
"ul",
|
|
2083
2306
|
{
|
|
2084
2307
|
ref,
|
|
@@ -2087,7 +2310,7 @@ var PaginationContent = React131.forwardRef(({ className, ...props }, ref) => /*
|
|
|
2087
2310
|
}
|
|
2088
2311
|
));
|
|
2089
2312
|
PaginationContent.displayName = "PaginationContent";
|
|
2090
|
-
var PaginationItem =
|
|
2313
|
+
var PaginationItem = React137.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx("li", { ref, className: cn("", className), ...props }));
|
|
2091
2314
|
PaginationItem.displayName = "PaginationItem";
|
|
2092
2315
|
var PaginationLink = ({
|
|
2093
2316
|
className,
|
|
@@ -2162,7 +2385,7 @@ PaginationEllipsis.displayName = "PaginationEllipsis";
|
|
|
2162
2385
|
var Popover = PopoverPrimitive.Root;
|
|
2163
2386
|
var PopoverTrigger = PopoverPrimitive.Trigger;
|
|
2164
2387
|
var PopoverAnchor = PopoverPrimitive.Anchor;
|
|
2165
|
-
var PopoverContent =
|
|
2388
|
+
var PopoverContent = React137__default.forwardRef(({ className, align = "center", sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsx(PopoverPrimitive.Portal, { children: /* @__PURE__ */ jsx(
|
|
2166
2389
|
PopoverPrimitive.Content,
|
|
2167
2390
|
{
|
|
2168
2391
|
ref,
|
|
@@ -2179,7 +2402,7 @@ var PopoverContent = React131__default.forwardRef(({ className, align = "center"
|
|
|
2179
2402
|
}
|
|
2180
2403
|
) }));
|
|
2181
2404
|
PopoverContent.displayName = PopoverPrimitive.Content.displayName;
|
|
2182
|
-
var Progress =
|
|
2405
|
+
var Progress = React137__default.forwardRef(({ className, value, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
2183
2406
|
ProgressPrimitive.Root,
|
|
2184
2407
|
{
|
|
2185
2408
|
ref,
|
|
@@ -2195,7 +2418,7 @@ var Progress = React131__default.forwardRef(({ className, value, ...props }, ref
|
|
|
2195
2418
|
}
|
|
2196
2419
|
));
|
|
2197
2420
|
Progress.displayName = ProgressPrimitive.Root.displayName;
|
|
2198
|
-
var QrCode =
|
|
2421
|
+
var QrCode = React137__default.forwardRef(
|
|
2199
2422
|
({
|
|
2200
2423
|
value,
|
|
2201
2424
|
size = 192,
|
|
@@ -2252,9 +2475,9 @@ var QrCode = React131__default.forwardRef(
|
|
|
2252
2475
|
}
|
|
2253
2476
|
);
|
|
2254
2477
|
QrCode.displayName = "QrCode";
|
|
2255
|
-
var RadioGroup4 =
|
|
2478
|
+
var RadioGroup4 = React137__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(RadioGroupPrimitive.Root, { className: cn("grid gap-2", className), ref, ...props }));
|
|
2256
2479
|
RadioGroup4.displayName = RadioGroupPrimitive.Root.displayName;
|
|
2257
|
-
var RadioGroupItem =
|
|
2480
|
+
var RadioGroupItem = React137__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
2258
2481
|
RadioGroupPrimitive.Item,
|
|
2259
2482
|
{
|
|
2260
2483
|
ref,
|
|
@@ -2269,12 +2492,12 @@ var RadioGroupItem = React131__default.forwardRef(({ className, ...props }, ref)
|
|
|
2269
2492
|
}
|
|
2270
2493
|
));
|
|
2271
2494
|
RadioGroupItem.displayName = RadioGroupPrimitive.Item.displayName;
|
|
2272
|
-
var
|
|
2495
|
+
var SIZE2 = {
|
|
2273
2496
|
sm: "h-4 w-4",
|
|
2274
2497
|
md: "h-5 w-5",
|
|
2275
2498
|
lg: "h-6 w-6"
|
|
2276
2499
|
};
|
|
2277
|
-
var Rating =
|
|
2500
|
+
var Rating = React137__default.forwardRef(
|
|
2278
2501
|
({
|
|
2279
2502
|
value: valueProp,
|
|
2280
2503
|
defaultValue = 0,
|
|
@@ -2290,10 +2513,10 @@ var Rating = React131__default.forwardRef(
|
|
|
2290
2513
|
...props
|
|
2291
2514
|
}, ref) => {
|
|
2292
2515
|
const isControlled = valueProp !== void 0;
|
|
2293
|
-
const [internal, setInternal] =
|
|
2516
|
+
const [internal, setInternal] = React137__default.useState(defaultValue);
|
|
2294
2517
|
const value = isControlled ? valueProp : internal;
|
|
2295
2518
|
const step = allowHalf ? 0.5 : 1;
|
|
2296
|
-
const commit =
|
|
2519
|
+
const commit = React137__default.useCallback(
|
|
2297
2520
|
(next) => {
|
|
2298
2521
|
const clamped = Math.max(0, Math.min(max, next));
|
|
2299
2522
|
if (!isControlled) setInternal(clamped);
|
|
@@ -2340,13 +2563,13 @@ var Rating = React131__default.forwardRef(
|
|
|
2340
2563
|
children: Array.from({ length: max }).map((_, i) => {
|
|
2341
2564
|
const fillPercent = Math.max(0, Math.min(1, value - i)) * 100;
|
|
2342
2565
|
const Icon2 = /* @__PURE__ */ jsxs("span", { className: "relative inline-block leading-none", children: [
|
|
2343
|
-
/* @__PURE__ */ jsx("span", { className: cn("block text-muted-foreground/40",
|
|
2566
|
+
/* @__PURE__ */ jsx("span", { className: cn("block text-muted-foreground/40", SIZE2[size]), children: emptyIcon ?? /* @__PURE__ */ jsx(Star, { className: "h-full w-full", strokeWidth: 1.5 }) }),
|
|
2344
2567
|
/* @__PURE__ */ jsx(
|
|
2345
2568
|
"span",
|
|
2346
2569
|
{
|
|
2347
2570
|
className: cn(
|
|
2348
2571
|
"absolute inset-0 overflow-hidden text-[hsl(var(--primary))]",
|
|
2349
|
-
|
|
2572
|
+
SIZE2[size]
|
|
2350
2573
|
),
|
|
2351
2574
|
style: { width: `${fillPercent}%` },
|
|
2352
2575
|
"aria-hidden": "true",
|
|
@@ -2407,7 +2630,7 @@ var ResizableHandle = ({
|
|
|
2407
2630
|
children: withHandle && /* @__PURE__ */ jsx("div", { className: "z-10 flex h-4 w-3 items-center justify-center rounded-sm border bg-border", children: /* @__PURE__ */ jsx(GripVertical, { className: "h-2.5 w-2.5" }) })
|
|
2408
2631
|
}
|
|
2409
2632
|
);
|
|
2410
|
-
var ScrollArea =
|
|
2633
|
+
var ScrollArea = React137.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs(
|
|
2411
2634
|
ScrollAreaPrimitive.Root,
|
|
2412
2635
|
{
|
|
2413
2636
|
ref,
|
|
@@ -2421,7 +2644,7 @@ var ScrollArea = React131.forwardRef(({ className, children, ...props }, ref) =>
|
|
|
2421
2644
|
}
|
|
2422
2645
|
));
|
|
2423
2646
|
ScrollArea.displayName = ScrollAreaPrimitive.Root.displayName;
|
|
2424
|
-
var ScrollBar =
|
|
2647
|
+
var ScrollBar = React137.forwardRef(({ className, orientation = "vertical", ...props }, ref) => /* @__PURE__ */ jsx(
|
|
2425
2648
|
ScrollAreaPrimitive.ScrollAreaScrollbar,
|
|
2426
2649
|
{
|
|
2427
2650
|
ref,
|
|
@@ -2440,7 +2663,7 @@ ScrollBar.displayName = ScrollAreaPrimitive.ScrollAreaScrollbar.displayName;
|
|
|
2440
2663
|
var Select = SelectPrimitive.Root;
|
|
2441
2664
|
var SelectGroup = SelectPrimitive.Group;
|
|
2442
2665
|
var SelectValue = SelectPrimitive.Value;
|
|
2443
|
-
var SelectTrigger =
|
|
2666
|
+
var SelectTrigger = React137__default.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs(
|
|
2444
2667
|
SelectPrimitive.Trigger,
|
|
2445
2668
|
{
|
|
2446
2669
|
ref,
|
|
@@ -2460,7 +2683,7 @@ var SelectTrigger = React131__default.forwardRef(({ className, children, ...prop
|
|
|
2460
2683
|
}
|
|
2461
2684
|
));
|
|
2462
2685
|
SelectTrigger.displayName = SelectPrimitive.Trigger.displayName;
|
|
2463
|
-
var SelectScrollUpButton =
|
|
2686
|
+
var SelectScrollUpButton = React137__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
2464
2687
|
SelectPrimitive.ScrollUpButton,
|
|
2465
2688
|
{
|
|
2466
2689
|
ref,
|
|
@@ -2470,7 +2693,7 @@ var SelectScrollUpButton = React131__default.forwardRef(({ className, ...props }
|
|
|
2470
2693
|
}
|
|
2471
2694
|
));
|
|
2472
2695
|
SelectScrollUpButton.displayName = SelectPrimitive.ScrollUpButton.displayName;
|
|
2473
|
-
var SelectScrollDownButton =
|
|
2696
|
+
var SelectScrollDownButton = React137__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
2474
2697
|
SelectPrimitive.ScrollDownButton,
|
|
2475
2698
|
{
|
|
2476
2699
|
ref,
|
|
@@ -2480,7 +2703,7 @@ var SelectScrollDownButton = React131__default.forwardRef(({ className, ...props
|
|
|
2480
2703
|
}
|
|
2481
2704
|
));
|
|
2482
2705
|
SelectScrollDownButton.displayName = SelectPrimitive.ScrollDownButton.displayName;
|
|
2483
|
-
var SelectContent =
|
|
2706
|
+
var SelectContent = React137__default.forwardRef(({ className, children, position = "popper", ...props }, ref) => /* @__PURE__ */ jsx(SelectPrimitive.Portal, { children: /* @__PURE__ */ jsxs(
|
|
2484
2707
|
SelectPrimitive.Content,
|
|
2485
2708
|
{
|
|
2486
2709
|
ref,
|
|
@@ -2507,7 +2730,7 @@ var SelectContent = React131__default.forwardRef(({ className, children, positio
|
|
|
2507
2730
|
}
|
|
2508
2731
|
) }));
|
|
2509
2732
|
SelectContent.displayName = SelectPrimitive.Content.displayName;
|
|
2510
|
-
var SelectLabel =
|
|
2733
|
+
var SelectLabel = React137__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
2511
2734
|
SelectPrimitive.Label,
|
|
2512
2735
|
{
|
|
2513
2736
|
ref,
|
|
@@ -2516,7 +2739,7 @@ var SelectLabel = React131__default.forwardRef(({ className, ...props }, ref) =>
|
|
|
2516
2739
|
}
|
|
2517
2740
|
));
|
|
2518
2741
|
SelectLabel.displayName = SelectPrimitive.Label.displayName;
|
|
2519
|
-
var SelectItem =
|
|
2742
|
+
var SelectItem = React137__default.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs(
|
|
2520
2743
|
SelectPrimitive.Item,
|
|
2521
2744
|
{
|
|
2522
2745
|
ref,
|
|
@@ -2534,7 +2757,7 @@ var SelectItem = React131__default.forwardRef(({ className, children, ...props }
|
|
|
2534
2757
|
}
|
|
2535
2758
|
));
|
|
2536
2759
|
SelectItem.displayName = SelectPrimitive.Item.displayName;
|
|
2537
|
-
var SelectSeparator =
|
|
2760
|
+
var SelectSeparator = React137__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
2538
2761
|
SelectPrimitive.Separator,
|
|
2539
2762
|
{
|
|
2540
2763
|
ref,
|
|
@@ -2543,7 +2766,7 @@ var SelectSeparator = React131__default.forwardRef(({ className, ...props }, ref
|
|
|
2543
2766
|
}
|
|
2544
2767
|
));
|
|
2545
2768
|
SelectSeparator.displayName = SelectPrimitive.Separator.displayName;
|
|
2546
|
-
var Separator6 =
|
|
2769
|
+
var Separator6 = React137__default.forwardRef(({ className, orientation = "horizontal", decorative = true, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
2547
2770
|
SeparatorPrimitive.Root,
|
|
2548
2771
|
{
|
|
2549
2772
|
ref,
|
|
@@ -2562,7 +2785,7 @@ var Sheet = DialogPrimitive.Root;
|
|
|
2562
2785
|
var SheetTrigger = DialogPrimitive.Trigger;
|
|
2563
2786
|
var SheetClose = DialogPrimitive.Close;
|
|
2564
2787
|
var SheetPortal = DialogPrimitive.Portal;
|
|
2565
|
-
var SheetOverlay =
|
|
2788
|
+
var SheetOverlay = React137__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
2566
2789
|
DialogPrimitive.Overlay,
|
|
2567
2790
|
{
|
|
2568
2791
|
ref,
|
|
@@ -2590,7 +2813,7 @@ var sheetVariants = cva(
|
|
|
2590
2813
|
defaultVariants: { side: "right" }
|
|
2591
2814
|
}
|
|
2592
2815
|
);
|
|
2593
|
-
var SheetContent =
|
|
2816
|
+
var SheetContent = React137__default.forwardRef(({ side = "right", className, children, ...props }, ref) => /* @__PURE__ */ jsxs(SheetPortal, { children: [
|
|
2594
2817
|
/* @__PURE__ */ jsx(SheetOverlay, {}),
|
|
2595
2818
|
/* @__PURE__ */ jsxs(DialogPrimitive.Content, { ref, className: cn(sheetVariants({ side }), className), ...props, children: [
|
|
2596
2819
|
/* @__PURE__ */ jsxs(DialogPrimitive.Close, { className: "absolute right-4 top-4 rounded-sm opacity-70 hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-[hsl(var(--ring))]", children: [
|
|
@@ -2603,9 +2826,9 @@ var SheetContent = React131__default.forwardRef(({ side = "right", className, ch
|
|
|
2603
2826
|
SheetContent.displayName = DialogPrimitive.Content.displayName;
|
|
2604
2827
|
var SheetHeader = ({ className, ...props }) => /* @__PURE__ */ jsx("div", { className: cn("flex flex-col space-y-2 text-center sm:text-left", className), ...props });
|
|
2605
2828
|
var SheetFooter = ({ className, ...props }) => /* @__PURE__ */ jsx("div", { className: cn("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2", className), ...props });
|
|
2606
|
-
var SheetTitle =
|
|
2829
|
+
var SheetTitle = React137__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(DialogPrimitive.Title, { ref, className: cn("text-lg font-semibold", className), ...props }));
|
|
2607
2830
|
SheetTitle.displayName = DialogPrimitive.Title.displayName;
|
|
2608
|
-
var SheetDescription =
|
|
2831
|
+
var SheetDescription = React137__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(DialogPrimitive.Description, { ref, className: cn("text-sm text-[hsl(var(--muted-foreground))]", className), ...props }));
|
|
2609
2832
|
SheetDescription.displayName = DialogPrimitive.Description.displayName;
|
|
2610
2833
|
function Skeleton({ className, ...props }) {
|
|
2611
2834
|
return /* @__PURE__ */ jsx(
|
|
@@ -2616,7 +2839,7 @@ function Skeleton({ className, ...props }) {
|
|
|
2616
2839
|
}
|
|
2617
2840
|
);
|
|
2618
2841
|
}
|
|
2619
|
-
var Slider =
|
|
2842
|
+
var Slider = React137__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxs(
|
|
2620
2843
|
SliderPrimitive.Root,
|
|
2621
2844
|
{
|
|
2622
2845
|
ref,
|
|
@@ -2640,7 +2863,7 @@ function Spinner({ className, ...props }) {
|
|
|
2640
2863
|
}
|
|
2641
2864
|
);
|
|
2642
2865
|
}
|
|
2643
|
-
var Switch =
|
|
2866
|
+
var Switch = React137__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
2644
2867
|
SwitchPrimitive.Root,
|
|
2645
2868
|
{
|
|
2646
2869
|
ref,
|
|
@@ -2666,7 +2889,7 @@ var Switch = React131__default.forwardRef(({ className, ...props }, ref) => /* @
|
|
|
2666
2889
|
}
|
|
2667
2890
|
));
|
|
2668
2891
|
Switch.displayName = SwitchPrimitive.Root.displayName;
|
|
2669
|
-
var Table =
|
|
2892
|
+
var Table = React137.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { className: "relative w-full overflow-auto", children: /* @__PURE__ */ jsx(
|
|
2670
2893
|
"table",
|
|
2671
2894
|
{
|
|
2672
2895
|
ref,
|
|
@@ -2675,9 +2898,9 @@ var Table = React131.forwardRef(({ className, ...props }, ref) => /* @__PURE__ *
|
|
|
2675
2898
|
}
|
|
2676
2899
|
) }));
|
|
2677
2900
|
Table.displayName = "Table";
|
|
2678
|
-
var TableHeader =
|
|
2901
|
+
var TableHeader = React137.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx("thead", { ref, className: cn("[&_tr]:border-b", className), ...props }));
|
|
2679
2902
|
TableHeader.displayName = "TableHeader";
|
|
2680
|
-
var TableBody =
|
|
2903
|
+
var TableBody = React137.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
2681
2904
|
"tbody",
|
|
2682
2905
|
{
|
|
2683
2906
|
ref,
|
|
@@ -2686,7 +2909,7 @@ var TableBody = React131.forwardRef(({ className, ...props }, ref) => /* @__PURE
|
|
|
2686
2909
|
}
|
|
2687
2910
|
));
|
|
2688
2911
|
TableBody.displayName = "TableBody";
|
|
2689
|
-
var TableFooter =
|
|
2912
|
+
var TableFooter = React137.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
2690
2913
|
"tfoot",
|
|
2691
2914
|
{
|
|
2692
2915
|
ref,
|
|
@@ -2698,7 +2921,7 @@ var TableFooter = React131.forwardRef(({ className, ...props }, ref) => /* @__PU
|
|
|
2698
2921
|
}
|
|
2699
2922
|
));
|
|
2700
2923
|
TableFooter.displayName = "TableFooter";
|
|
2701
|
-
var TableRow =
|
|
2924
|
+
var TableRow = React137.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
2702
2925
|
"tr",
|
|
2703
2926
|
{
|
|
2704
2927
|
ref,
|
|
@@ -2710,7 +2933,7 @@ var TableRow = React131.forwardRef(({ className, ...props }, ref) => /* @__PURE_
|
|
|
2710
2933
|
}
|
|
2711
2934
|
));
|
|
2712
2935
|
TableRow.displayName = "TableRow";
|
|
2713
|
-
var TableHead =
|
|
2936
|
+
var TableHead = React137.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
2714
2937
|
"th",
|
|
2715
2938
|
{
|
|
2716
2939
|
ref,
|
|
@@ -2722,7 +2945,7 @@ var TableHead = React131.forwardRef(({ className, ...props }, ref) => /* @__PURE
|
|
|
2722
2945
|
}
|
|
2723
2946
|
));
|
|
2724
2947
|
TableHead.displayName = "TableHead";
|
|
2725
|
-
var TableCell =
|
|
2948
|
+
var TableCell = React137.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
2726
2949
|
"td",
|
|
2727
2950
|
{
|
|
2728
2951
|
ref,
|
|
@@ -2734,7 +2957,7 @@ var TableCell = React131.forwardRef(({ className, ...props }, ref) => /* @__PURE
|
|
|
2734
2957
|
}
|
|
2735
2958
|
));
|
|
2736
2959
|
TableCell.displayName = "TableCell";
|
|
2737
|
-
var TableCaption =
|
|
2960
|
+
var TableCaption = React137.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
2738
2961
|
"caption",
|
|
2739
2962
|
{
|
|
2740
2963
|
ref,
|
|
@@ -2744,7 +2967,7 @@ var TableCaption = React131.forwardRef(({ className, ...props }, ref) => /* @__P
|
|
|
2744
2967
|
));
|
|
2745
2968
|
TableCaption.displayName = "TableCaption";
|
|
2746
2969
|
var Tabs = TabsPrimitive.Root;
|
|
2747
|
-
var TabsList =
|
|
2970
|
+
var TabsList = React137__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
2748
2971
|
TabsPrimitive.List,
|
|
2749
2972
|
{
|
|
2750
2973
|
ref,
|
|
@@ -2756,7 +2979,7 @@ var TabsList = React131__default.forwardRef(({ className, ...props }, ref) => /*
|
|
|
2756
2979
|
}
|
|
2757
2980
|
));
|
|
2758
2981
|
TabsList.displayName = TabsPrimitive.List.displayName;
|
|
2759
|
-
var TabsTrigger =
|
|
2982
|
+
var TabsTrigger = React137__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
2760
2983
|
TabsPrimitive.Trigger,
|
|
2761
2984
|
{
|
|
2762
2985
|
ref,
|
|
@@ -2771,7 +2994,7 @@ var TabsTrigger = React131__default.forwardRef(({ className, ...props }, ref) =>
|
|
|
2771
2994
|
}
|
|
2772
2995
|
));
|
|
2773
2996
|
TabsTrigger.displayName = TabsPrimitive.Trigger.displayName;
|
|
2774
|
-
var TabsContent =
|
|
2997
|
+
var TabsContent = React137__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
2775
2998
|
TabsPrimitive.Content,
|
|
2776
2999
|
{
|
|
2777
3000
|
ref,
|
|
@@ -2783,7 +3006,7 @@ var TabsContent = React131__default.forwardRef(({ className, ...props }, ref) =>
|
|
|
2783
3006
|
}
|
|
2784
3007
|
));
|
|
2785
3008
|
TabsContent.displayName = TabsPrimitive.Content.displayName;
|
|
2786
|
-
var Textarea =
|
|
3009
|
+
var Textarea = React137__default.forwardRef(
|
|
2787
3010
|
({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
2788
3011
|
"textarea",
|
|
2789
3012
|
{
|
|
@@ -2801,7 +3024,7 @@ var Textarea = React131__default.forwardRef(
|
|
|
2801
3024
|
)
|
|
2802
3025
|
);
|
|
2803
3026
|
Textarea.displayName = "Textarea";
|
|
2804
|
-
var TextureCard =
|
|
3027
|
+
var TextureCard = React137.forwardRef(
|
|
2805
3028
|
({ children, className, padding = true, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
2806
3029
|
"div",
|
|
2807
3030
|
{
|
|
@@ -2818,15 +3041,15 @@ var TextureCard = React131.forwardRef(
|
|
|
2818
3041
|
)
|
|
2819
3042
|
);
|
|
2820
3043
|
TextureCard.displayName = "TextureCard";
|
|
2821
|
-
var TextureCardHeader =
|
|
3044
|
+
var TextureCardHeader = React137.forwardRef(
|
|
2822
3045
|
({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn("flex flex-col gap-1.5 mb-4", className), ...props })
|
|
2823
3046
|
);
|
|
2824
3047
|
TextureCardHeader.displayName = "TextureCardHeader";
|
|
2825
|
-
var TextureCardTitle =
|
|
3048
|
+
var TextureCardTitle = React137.forwardRef(
|
|
2826
3049
|
({ className, ...props }, ref) => /* @__PURE__ */ jsx("h3", { ref, className: cn("font-semibold text-base leading-tight tracking-tight text-foreground", className), ...props })
|
|
2827
3050
|
);
|
|
2828
3051
|
TextureCardTitle.displayName = "TextureCardTitle";
|
|
2829
|
-
var TextureCardDescription =
|
|
3052
|
+
var TextureCardDescription = React137.forwardRef(
|
|
2830
3053
|
({ className, ...props }, ref) => /* @__PURE__ */ jsx("p", { ref, className: cn("text-sm text-muted-foreground", className), ...props })
|
|
2831
3054
|
);
|
|
2832
3055
|
TextureCardDescription.displayName = "TextureCardDescription";
|
|
@@ -2850,7 +3073,7 @@ var toggleVariants = cva(
|
|
|
2850
3073
|
}
|
|
2851
3074
|
}
|
|
2852
3075
|
);
|
|
2853
|
-
var Toggle =
|
|
3076
|
+
var Toggle = React137.forwardRef(({ className, variant, size, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
2854
3077
|
TogglePrimitive.Root,
|
|
2855
3078
|
{
|
|
2856
3079
|
ref,
|
|
@@ -2859,11 +3082,11 @@ var Toggle = React131.forwardRef(({ className, variant, size, ...props }, ref) =
|
|
|
2859
3082
|
}
|
|
2860
3083
|
));
|
|
2861
3084
|
Toggle.displayName = TogglePrimitive.Root.displayName;
|
|
2862
|
-
var ToggleGroupContext =
|
|
3085
|
+
var ToggleGroupContext = React137.createContext({
|
|
2863
3086
|
size: "default",
|
|
2864
3087
|
variant: "default"
|
|
2865
3088
|
});
|
|
2866
|
-
var ToggleGroup =
|
|
3089
|
+
var ToggleGroup = React137.forwardRef(({ className, variant, size, children, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
2867
3090
|
ToggleGroupPrimitive.Root,
|
|
2868
3091
|
{
|
|
2869
3092
|
ref,
|
|
@@ -2873,8 +3096,8 @@ var ToggleGroup = React131.forwardRef(({ className, variant, size, children, ...
|
|
|
2873
3096
|
}
|
|
2874
3097
|
));
|
|
2875
3098
|
ToggleGroup.displayName = ToggleGroupPrimitive.Root.displayName;
|
|
2876
|
-
var ToggleGroupItem =
|
|
2877
|
-
const context =
|
|
3099
|
+
var ToggleGroupItem = React137.forwardRef(({ className, children, variant, size, ...props }, ref) => {
|
|
3100
|
+
const context = React137.useContext(ToggleGroupContext);
|
|
2878
3101
|
return /* @__PURE__ */ jsx(
|
|
2879
3102
|
ToggleGroupPrimitive.Item,
|
|
2880
3103
|
{
|
|
@@ -2895,7 +3118,7 @@ ToggleGroupItem.displayName = ToggleGroupPrimitive.Item.displayName;
|
|
|
2895
3118
|
var TooltipProvider = TooltipPrimitive.Provider;
|
|
2896
3119
|
var Tooltip2 = TooltipPrimitive.Root;
|
|
2897
3120
|
var TooltipTrigger = TooltipPrimitive.Trigger;
|
|
2898
|
-
var TooltipContent =
|
|
3121
|
+
var TooltipContent = React137__default.forwardRef(({ className, sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsx(TooltipPrimitive.Portal, { children: /* @__PURE__ */ jsx(
|
|
2899
3122
|
TooltipPrimitive.Content,
|
|
2900
3123
|
{
|
|
2901
3124
|
ref,
|
|
@@ -2911,6 +3134,52 @@ var TooltipContent = React131__default.forwardRef(({ className, sideOffset = 4,
|
|
|
2911
3134
|
}
|
|
2912
3135
|
) }));
|
|
2913
3136
|
TooltipContent.displayName = TooltipPrimitive.Content.displayName;
|
|
3137
|
+
var VariantPicker = React137__default.forwardRef(
|
|
3138
|
+
({ label, options, value: valueProp, defaultValue, onValueChange, className, ...props }, ref) => {
|
|
3139
|
+
const isControlled = valueProp !== void 0;
|
|
3140
|
+
const [internal, setInternal] = React137__default.useState(defaultValue);
|
|
3141
|
+
const value = isControlled ? valueProp : internal;
|
|
3142
|
+
const select = (v) => {
|
|
3143
|
+
if (!isControlled) setInternal(v);
|
|
3144
|
+
onValueChange?.(v);
|
|
3145
|
+
};
|
|
3146
|
+
return /* @__PURE__ */ jsxs("div", { ref, role: "radiogroup", "aria-label": label, className: cn("flex flex-col gap-2", className), ...props, children: [
|
|
3147
|
+
label && /* @__PURE__ */ jsx("span", { className: "text-xs font-semibold uppercase tracking-wide text-muted-foreground", children: label }),
|
|
3148
|
+
/* @__PURE__ */ jsx("div", { className: "flex flex-wrap gap-2", children: options.map((opt) => {
|
|
3149
|
+
const selected = value === opt.value;
|
|
3150
|
+
return /* @__PURE__ */ jsxs(
|
|
3151
|
+
"button",
|
|
3152
|
+
{
|
|
3153
|
+
type: "button",
|
|
3154
|
+
role: "radio",
|
|
3155
|
+
"aria-checked": selected,
|
|
3156
|
+
disabled: opt.disabled,
|
|
3157
|
+
onClick: () => select(opt.value),
|
|
3158
|
+
className: cn(
|
|
3159
|
+
"inline-flex items-center gap-2 rounded-md border px-3 py-1.5 text-sm font-medium transition-colors",
|
|
3160
|
+
"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",
|
|
3161
|
+
selected ? "border-primary bg-primary/10 text-[hsl(var(--primary))]" : "border-border hover:bg-accent hover:text-accent-foreground",
|
|
3162
|
+
opt.disabled && "cursor-not-allowed text-muted-foreground line-through opacity-50"
|
|
3163
|
+
),
|
|
3164
|
+
children: [
|
|
3165
|
+
opt.swatch && /* @__PURE__ */ jsx(
|
|
3166
|
+
"span",
|
|
3167
|
+
{
|
|
3168
|
+
"aria-hidden": "true",
|
|
3169
|
+
className: "h-4 w-4 rounded-full border border-border",
|
|
3170
|
+
style: { backgroundColor: opt.swatch }
|
|
3171
|
+
}
|
|
3172
|
+
),
|
|
3173
|
+
opt.label
|
|
3174
|
+
]
|
|
3175
|
+
},
|
|
3176
|
+
opt.value
|
|
3177
|
+
);
|
|
3178
|
+
}) })
|
|
3179
|
+
] });
|
|
3180
|
+
}
|
|
3181
|
+
);
|
|
3182
|
+
VariantPicker.displayName = "VariantPicker";
|
|
2914
3183
|
var bannerVariants = cva(
|
|
2915
3184
|
"relative flex items-start gap-3 rounded-lg border px-4 py-3.5 text-sm transition-all",
|
|
2916
3185
|
{
|
|
@@ -3007,8 +3276,8 @@ function Banner({
|
|
|
3007
3276
|
className,
|
|
3008
3277
|
children
|
|
3009
3278
|
}) {
|
|
3010
|
-
const [dismissed, setDismissed] =
|
|
3011
|
-
const [exiting, setExiting] =
|
|
3279
|
+
const [dismissed, setDismissed] = React137__default.useState(false);
|
|
3280
|
+
const [exiting, setExiting] = React137__default.useState(false);
|
|
3012
3281
|
const handleDismiss = () => {
|
|
3013
3282
|
setExiting(true);
|
|
3014
3283
|
setTimeout(() => {
|
|
@@ -3069,7 +3338,7 @@ function BreadcrumbSeparator({ className }) {
|
|
|
3069
3338
|
return /* @__PURE__ */ jsx("li", { role: "presentation", "aria-hidden": "true", className: cn("flex items-center text-[hsl(var(--muted-foreground))]", className), children: /* @__PURE__ */ jsx(ChevronRight, { className: "h-3.5 w-3.5" }) });
|
|
3070
3339
|
}
|
|
3071
3340
|
function Breadcrumb({ children, className }) {
|
|
3072
|
-
const items =
|
|
3341
|
+
const items = React137__default.Children.toArray(children);
|
|
3073
3342
|
const withSeparators = [];
|
|
3074
3343
|
items.forEach((item, i) => {
|
|
3075
3344
|
withSeparators.push(item);
|
|
@@ -3099,8 +3368,8 @@ function CommandItem2({ icon, label, description, shortcut, active, onClick, cla
|
|
|
3099
3368
|
);
|
|
3100
3369
|
}
|
|
3101
3370
|
function EditableCell({ value: initial, onSave }) {
|
|
3102
|
-
const [editing, setEditing] =
|
|
3103
|
-
const [val, setVal] =
|
|
3371
|
+
const [editing, setEditing] = React137__default.useState(false);
|
|
3372
|
+
const [val, setVal] = React137__default.useState(String(initial ?? ""));
|
|
3104
3373
|
const commit = () => {
|
|
3105
3374
|
onSave(val);
|
|
3106
3375
|
setEditing(false);
|
|
@@ -3131,10 +3400,10 @@ var selectionCol = () => ({
|
|
|
3131
3400
|
enableResizing: false
|
|
3132
3401
|
});
|
|
3133
3402
|
function DataGrid({ columns, data: initialData, onDataChange, editable, className }) {
|
|
3134
|
-
const [data, setData] =
|
|
3135
|
-
const [rowSelection, setRowSelection] =
|
|
3403
|
+
const [data, setData] = React137__default.useState(initialData);
|
|
3404
|
+
const [rowSelection, setRowSelection] = React137__default.useState({});
|
|
3136
3405
|
const columnResizeMode = "onChange";
|
|
3137
|
-
const editableColumns =
|
|
3406
|
+
const editableColumns = React137__default.useMemo(() => {
|
|
3138
3407
|
if (!editable) return columns;
|
|
3139
3408
|
return columns.map((col) => ({
|
|
3140
3409
|
...col,
|
|
@@ -3153,7 +3422,7 @@ function DataGrid({ columns, data: initialData, onDataChange, editable, classNam
|
|
|
3153
3422
|
)
|
|
3154
3423
|
}));
|
|
3155
3424
|
}, [columns, data, editable, onDataChange]);
|
|
3156
|
-
const allColumns =
|
|
3425
|
+
const allColumns = React137__default.useMemo(() => [selectionCol(), ...editableColumns], [editableColumns]);
|
|
3157
3426
|
const table = useReactTable({
|
|
3158
3427
|
data,
|
|
3159
3428
|
columns: allColumns,
|
|
@@ -3224,7 +3493,7 @@ function DataTableToolbar({ table, searchColumn }) {
|
|
|
3224
3493
|
) });
|
|
3225
3494
|
}
|
|
3226
3495
|
function DataTable({ columns, data, pageSize = 10, searchable, searchColumn, loading }) {
|
|
3227
|
-
const [sorting, setSorting] =
|
|
3496
|
+
const [sorting, setSorting] = React137__default.useState([]);
|
|
3228
3497
|
const table = useReactTable({
|
|
3229
3498
|
data,
|
|
3230
3499
|
columns,
|
|
@@ -3249,7 +3518,7 @@ function DataTable({ columns, data, pageSize = 10, searchable, searchColumn, loa
|
|
|
3249
3518
|
/* @__PURE__ */ jsx(DataTablePagination, { table })
|
|
3250
3519
|
] });
|
|
3251
3520
|
}
|
|
3252
|
-
var EmptyStateIcon =
|
|
3521
|
+
var EmptyStateIcon = React137__default.forwardRef(
|
|
3253
3522
|
({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn("flex h-12 w-12 items-center justify-center rounded-full bg-[hsl(var(--muted))] text-[hsl(var(--muted-foreground))]", className), ...props })
|
|
3254
3523
|
);
|
|
3255
3524
|
EmptyStateIcon.displayName = "EmptyStateIcon";
|
|
@@ -3364,7 +3633,7 @@ function Persona({ name, subtitle, src, size = "md", badge, className }) {
|
|
|
3364
3633
|
] })
|
|
3365
3634
|
] });
|
|
3366
3635
|
}
|
|
3367
|
-
var PropertyList =
|
|
3636
|
+
var PropertyList = React137__default.forwardRef(
|
|
3368
3637
|
({ className, ...props }, ref) => /* @__PURE__ */ jsx("dl", { ref, className: cn("divide-y divide-[hsl(var(--border))]", className), ...props })
|
|
3369
3638
|
);
|
|
3370
3639
|
PropertyList.displayName = "PropertyList";
|
|
@@ -3450,7 +3719,7 @@ function StructuredListItem({ left, title, description, right, onClick, classNam
|
|
|
3450
3719
|
}
|
|
3451
3720
|
);
|
|
3452
3721
|
}
|
|
3453
|
-
var StructuredList =
|
|
3722
|
+
var StructuredList = React137__default.forwardRef(
|
|
3454
3723
|
({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn("space-y-4", className), ...props })
|
|
3455
3724
|
);
|
|
3456
3725
|
StructuredList.displayName = "StructuredList";
|
|
@@ -3460,7 +3729,7 @@ var dotColors = {
|
|
|
3460
3729
|
error: "bg-red-500",
|
|
3461
3730
|
warning: "bg-yellow-500"
|
|
3462
3731
|
};
|
|
3463
|
-
var TimelineContent =
|
|
3732
|
+
var TimelineContent = React137__default.forwardRef(
|
|
3464
3733
|
({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn("pb-1", className), ...props })
|
|
3465
3734
|
);
|
|
3466
3735
|
TimelineContent.displayName = "TimelineContent";
|
|
@@ -3483,9 +3752,9 @@ function TimelineItem({ icon, title, description, timestamp, variant = "default"
|
|
|
3483
3752
|
] });
|
|
3484
3753
|
}
|
|
3485
3754
|
function Timeline({ children, className }) {
|
|
3486
|
-
const items =
|
|
3755
|
+
const items = React137__default.Children.toArray(children);
|
|
3487
3756
|
return /* @__PURE__ */ jsx("div", { className: cn("", className), children: items.map(
|
|
3488
|
-
(child, i) =>
|
|
3757
|
+
(child, i) => React137__default.isValidElement(child) ? React137__default.cloneElement(child, { isLast: i === items.length - 1 }) : child
|
|
3489
3758
|
) });
|
|
3490
3759
|
}
|
|
3491
3760
|
var INITIAL_MESSAGES = [
|
|
@@ -3669,7 +3938,7 @@ function FileRow({ file, onDelete }) {
|
|
|
3669
3938
|
] });
|
|
3670
3939
|
}
|
|
3671
3940
|
function FilesList({ className }) {
|
|
3672
|
-
const [files, setFiles] =
|
|
3941
|
+
const [files, setFiles] = React137__default.useState(FILES2);
|
|
3673
3942
|
return /* @__PURE__ */ jsx("div", { className: cn("rounded-md border border-[hsl(var(--border))] overflow-hidden", className), children: /* @__PURE__ */ jsxs("table", { className: "w-full", children: [
|
|
3674
3943
|
/* @__PURE__ */ jsx("thead", { className: "bg-[hsl(var(--muted)/0.5)]", children: /* @__PURE__ */ jsx("tr", { children: ["Name", "Type", "Size", "Modified", ""].map((h) => /* @__PURE__ */ jsx("th", { className: "px-4 py-2.5 text-left text-xs font-medium text-[hsl(var(--muted-foreground))]", children: h }, h)) }) }),
|
|
3675
3944
|
/* @__PURE__ */ jsx("tbody", { children: files.map((f) => /* @__PURE__ */ jsx(FileRow, { file: f, onDelete: () => setFiles((fs) => fs.filter((x) => x.id !== f.id)) }, f.id)) })
|
|
@@ -4164,9 +4433,9 @@ function apply(mode) {
|
|
|
4164
4433
|
document.documentElement.classList.toggle("dark", isDark);
|
|
4165
4434
|
}
|
|
4166
4435
|
function ThemeSwitch({ defaultMode, onChange, className, variant = "segmented" }) {
|
|
4167
|
-
const [mode, setMode] =
|
|
4168
|
-
const didMount =
|
|
4169
|
-
|
|
4436
|
+
const [mode, setMode] = React137__default.useState(() => defaultMode ?? readInitial());
|
|
4437
|
+
const didMount = React137__default.useRef(false);
|
|
4438
|
+
React137__default.useEffect(() => {
|
|
4170
4439
|
if (!didMount.current) {
|
|
4171
4440
|
didMount.current = true;
|
|
4172
4441
|
return;
|
|
@@ -4178,7 +4447,7 @@ function ThemeSwitch({ defaultMode, onChange, className, variant = "segmented" }
|
|
|
4178
4447
|
}
|
|
4179
4448
|
onChange?.(mode);
|
|
4180
4449
|
}, [mode, onChange]);
|
|
4181
|
-
|
|
4450
|
+
React137__default.useEffect(() => {
|
|
4182
4451
|
if (mode !== "system" || typeof window === "undefined") return;
|
|
4183
4452
|
const mql = window.matchMedia("(prefers-color-scheme: dark)");
|
|
4184
4453
|
const handler = () => apply("system");
|
|
@@ -4269,7 +4538,7 @@ function FloatingActionButton({
|
|
|
4269
4538
|
position = "bottom-right",
|
|
4270
4539
|
className
|
|
4271
4540
|
}) {
|
|
4272
|
-
const [open, setOpen] =
|
|
4541
|
+
const [open, setOpen] = React137__default.useState(false);
|
|
4273
4542
|
return /* @__PURE__ */ jsx(
|
|
4274
4543
|
"div",
|
|
4275
4544
|
{
|
|
@@ -4310,7 +4579,7 @@ function FloatingActionButton({
|
|
|
4310
4579
|
] }),
|
|
4311
4580
|
sections.length > 0 && /* @__PURE__ */ jsx(Separator6, {})
|
|
4312
4581
|
] }),
|
|
4313
|
-
sections.length > 0 && /* @__PURE__ */ jsx("div", { className: "px-3 py-2.5 space-y-3", children: sections.map((section, i) => /* @__PURE__ */ jsxs(
|
|
4582
|
+
sections.length > 0 && /* @__PURE__ */ jsx("div", { className: "px-3 py-2.5 space-y-3", children: sections.map((section, i) => /* @__PURE__ */ jsxs(React137__default.Fragment, { children: [
|
|
4314
4583
|
/* @__PURE__ */ jsxs("div", { children: [
|
|
4315
4584
|
/* @__PURE__ */ jsx("p", { className: "text-[9px] font-semibold uppercase tracking-widest text-muted-foreground mb-1.5", children: section.label }),
|
|
4316
4585
|
section.content
|
|
@@ -4352,7 +4621,7 @@ function applyTheme(val) {
|
|
|
4352
4621
|
}
|
|
4353
4622
|
}
|
|
4354
4623
|
function PaletteSwatches({ options = DEFAULT_THEME_OPTIONS }) {
|
|
4355
|
-
const [activeValue, setActiveValue] =
|
|
4624
|
+
const [activeValue, setActiveValue] = React137__default.useState(readStoredTheme);
|
|
4356
4625
|
const activeOption = options.find((o) => o.value === activeValue) ?? options[0];
|
|
4357
4626
|
const handleSelect = (value) => {
|
|
4358
4627
|
setActiveValue(value);
|
|
@@ -5228,8 +5497,8 @@ function BulkActions({ count, actions, onClear, className }) {
|
|
|
5228
5497
|
] });
|
|
5229
5498
|
}
|
|
5230
5499
|
function useCommandBar() {
|
|
5231
|
-
const [open, setOpen] =
|
|
5232
|
-
|
|
5500
|
+
const [open, setOpen] = React137__default.useState(false);
|
|
5501
|
+
React137__default.useEffect(() => {
|
|
5233
5502
|
const handler = (e) => {
|
|
5234
5503
|
if ((e.metaKey || e.ctrlKey) && e.key === "k") {
|
|
5235
5504
|
e.preventDefault();
|
|
@@ -5269,12 +5538,12 @@ function CommandBarItem({ icon, label, shortcut, onSelect, active, className })
|
|
|
5269
5538
|
);
|
|
5270
5539
|
}
|
|
5271
5540
|
function CommandBar({ open, onOpenChange, children, placeholder = "Search commands...", onSearch }) {
|
|
5272
|
-
const [query, setQuery] =
|
|
5541
|
+
const [query, setQuery] = React137__default.useState("");
|
|
5273
5542
|
const handleSearch = (v) => {
|
|
5274
5543
|
setQuery(v);
|
|
5275
5544
|
onSearch?.(v);
|
|
5276
5545
|
};
|
|
5277
|
-
const items =
|
|
5546
|
+
const items = React137__default.useRef(null);
|
|
5278
5547
|
const handleKeyDown = (e) => {
|
|
5279
5548
|
if (e.key === "Escape") {
|
|
5280
5549
|
onOpenChange(false);
|
|
@@ -5315,10 +5584,10 @@ function CommandBar({ open, onOpenChange, children, placeholder = "Search comman
|
|
|
5315
5584
|
var textOps = ["contains", "equals", "starts with"];
|
|
5316
5585
|
var numOps = ["=", ">", "<", ">=", "<="];
|
|
5317
5586
|
function AddFilterPopover({ filters, onAdd }) {
|
|
5318
|
-
const [open, setOpen] =
|
|
5319
|
-
const [key, setKey] =
|
|
5320
|
-
const [op, setOp] =
|
|
5321
|
-
const [val, setVal] =
|
|
5587
|
+
const [open, setOpen] = React137__default.useState(false);
|
|
5588
|
+
const [key, setKey] = React137__default.useState("");
|
|
5589
|
+
const [op, setOp] = React137__default.useState("");
|
|
5590
|
+
const [val, setVal] = React137__default.useState("");
|
|
5322
5591
|
const def = filters.find((f) => f.key === key);
|
|
5323
5592
|
const ops = def?.type === "number" ? numOps : textOps;
|
|
5324
5593
|
const handleAdd = () => {
|
|
@@ -5430,7 +5699,7 @@ function formatColumnSubLabel(date, scale) {
|
|
|
5430
5699
|
function snapDate(date, scale) {
|
|
5431
5700
|
return startOfScale(date, scale);
|
|
5432
5701
|
}
|
|
5433
|
-
var Gantt =
|
|
5702
|
+
var Gantt = React137__default.forwardRef(
|
|
5434
5703
|
({
|
|
5435
5704
|
items,
|
|
5436
5705
|
scale = "days",
|
|
@@ -5448,7 +5717,7 @@ var Gantt = React131__default.forwardRef(
|
|
|
5448
5717
|
}, ref) => {
|
|
5449
5718
|
const interactive = !!onItemMove || !!onItemResize;
|
|
5450
5719
|
const columnWidth = DEFAULT_COLUMN_WIDTH[scale];
|
|
5451
|
-
const viewport =
|
|
5720
|
+
const viewport = React137__default.useMemo(() => {
|
|
5452
5721
|
const earliest = startDate ?? (items.length ? new Date(Math.min(...items.map((i) => i.start.getTime()))) : /* @__PURE__ */ new Date());
|
|
5453
5722
|
const latest = endDate ?? (items.length ? new Date(Math.max(...items.map((i) => i.end.getTime()))) : addDays(/* @__PURE__ */ new Date(), 14));
|
|
5454
5723
|
return {
|
|
@@ -5458,7 +5727,7 @@ var Gantt = React131__default.forwardRef(
|
|
|
5458
5727
|
}, [items, startDate, endDate, scale]);
|
|
5459
5728
|
const colCount = totalColumns(viewport.start, viewport.end, scale);
|
|
5460
5729
|
const timelineWidth = colCount * columnWidth;
|
|
5461
|
-
const grouped =
|
|
5730
|
+
const grouped = React137__default.useMemo(() => {
|
|
5462
5731
|
const map = /* @__PURE__ */ new Map();
|
|
5463
5732
|
for (const it of items) {
|
|
5464
5733
|
const k = it.group ?? void 0;
|
|
@@ -5468,7 +5737,7 @@ var Gantt = React131__default.forwardRef(
|
|
|
5468
5737
|
return Array.from(map.entries());
|
|
5469
5738
|
}, [items]);
|
|
5470
5739
|
const hasGroups = grouped.some(([k]) => k !== void 0);
|
|
5471
|
-
const [collapsed, setCollapsed] =
|
|
5740
|
+
const [collapsed, setCollapsed] = React137__default.useState(() => /* @__PURE__ */ new Set());
|
|
5472
5741
|
const toggleGroup = (key) => {
|
|
5473
5742
|
setCollapsed((prev) => {
|
|
5474
5743
|
const next = new Set(prev);
|
|
@@ -5477,7 +5746,7 @@ var Gantt = React131__default.forwardRef(
|
|
|
5477
5746
|
return next;
|
|
5478
5747
|
});
|
|
5479
5748
|
};
|
|
5480
|
-
const rows =
|
|
5749
|
+
const rows = React137__default.useMemo(() => {
|
|
5481
5750
|
const out = [];
|
|
5482
5751
|
for (const [groupKey, list] of grouped) {
|
|
5483
5752
|
if (groupKey !== void 0) {
|
|
@@ -5488,21 +5757,21 @@ var Gantt = React131__default.forwardRef(
|
|
|
5488
5757
|
}
|
|
5489
5758
|
return out;
|
|
5490
5759
|
}, [grouped, collapsed]);
|
|
5491
|
-
const itemRowIndex =
|
|
5760
|
+
const itemRowIndex = React137__default.useMemo(() => {
|
|
5492
5761
|
const m = /* @__PURE__ */ new Map();
|
|
5493
5762
|
rows.forEach((r, i) => {
|
|
5494
5763
|
if (r.kind === "item") m.set(r.item.id, i);
|
|
5495
5764
|
});
|
|
5496
5765
|
return m;
|
|
5497
5766
|
}, [rows]);
|
|
5498
|
-
const todayOffsetPx =
|
|
5767
|
+
const todayOffsetPx = React137__default.useMemo(() => {
|
|
5499
5768
|
if (!showToday) return null;
|
|
5500
5769
|
const now = /* @__PURE__ */ new Date();
|
|
5501
5770
|
const u = unitsBetween(viewport.start, now, scale);
|
|
5502
5771
|
if (u < 0 || u > colCount) return null;
|
|
5503
5772
|
return u * columnWidth;
|
|
5504
5773
|
}, [showToday, viewport.start, scale, colCount, columnWidth]);
|
|
5505
|
-
const columnDates =
|
|
5774
|
+
const columnDates = React137__default.useMemo(() => {
|
|
5506
5775
|
return Array.from(
|
|
5507
5776
|
{ length: colCount },
|
|
5508
5777
|
(_, i) => addUnits(viewport.start, i, scale)
|
|
@@ -5726,12 +5995,12 @@ function GanttBar({
|
|
|
5726
5995
|
}) {
|
|
5727
5996
|
const color = item.color ?? DEFAULT_COLOR2;
|
|
5728
5997
|
const progress = Math.max(0, Math.min(100, item.progress ?? 0));
|
|
5729
|
-
const [previewLeftDelta, setPreviewLeftDelta] =
|
|
5730
|
-
const [previewRightDelta, setPreviewRightDelta] =
|
|
5731
|
-
const dragMode =
|
|
5732
|
-
const startX =
|
|
5733
|
-
const longPressTimer =
|
|
5734
|
-
const moved =
|
|
5998
|
+
const [previewLeftDelta, setPreviewLeftDelta] = React137__default.useState(0);
|
|
5999
|
+
const [previewRightDelta, setPreviewRightDelta] = React137__default.useState(0);
|
|
6000
|
+
const dragMode = React137__default.useRef(null);
|
|
6001
|
+
const startX = React137__default.useRef(0);
|
|
6002
|
+
const longPressTimer = React137__default.useRef(null);
|
|
6003
|
+
const moved = React137__default.useRef(false);
|
|
5735
6004
|
const baseLeft = unitsBetween(viewportStart, item.start, scale) * columnWidth;
|
|
5736
6005
|
const baseRight = unitsBetween(viewportStart, item.end, scale) * columnWidth;
|
|
5737
6006
|
const baseWidth = Math.max(columnWidth * 0.25, baseRight - baseLeft);
|
|
@@ -5937,7 +6206,7 @@ function DependencyLayer({
|
|
|
5937
6206
|
timelineWidth,
|
|
5938
6207
|
totalHeight
|
|
5939
6208
|
}) {
|
|
5940
|
-
const itemById =
|
|
6209
|
+
const itemById = React137__default.useMemo(() => {
|
|
5941
6210
|
const m = /* @__PURE__ */ new Map();
|
|
5942
6211
|
for (const it of items) m.set(it.id, it);
|
|
5943
6212
|
return m;
|
|
@@ -6036,9 +6305,9 @@ function KanbanColumn({ column, isOver }) {
|
|
|
6036
6305
|
] });
|
|
6037
6306
|
}
|
|
6038
6307
|
function Kanban({ columns: initialColumns, onMoveCard, className }) {
|
|
6039
|
-
const [cols, setCols] =
|
|
6040
|
-
const [activeCard, setActiveCard] =
|
|
6041
|
-
const [overColId, setOverColId] =
|
|
6308
|
+
const [cols, setCols] = React137__default.useState(initialColumns);
|
|
6309
|
+
const [activeCard, setActiveCard] = React137__default.useState(null);
|
|
6310
|
+
const [overColId, setOverColId] = React137__default.useState(null);
|
|
6042
6311
|
const sensors = useSensors(useSensor(PointerSensor, { activationConstraint: { distance: 5 } }));
|
|
6043
6312
|
const findColByCard = (cardId) => cols.find((c) => c.cards.some((card) => card.id === cardId));
|
|
6044
6313
|
const onDragStart = ({ active }) => {
|
|
@@ -6107,10 +6376,10 @@ function ToolbarButton({
|
|
|
6107
6376
|
] });
|
|
6108
6377
|
}
|
|
6109
6378
|
function LinkPopover({ editor }) {
|
|
6110
|
-
const [open, setOpen] =
|
|
6111
|
-
const [url, setUrl] =
|
|
6379
|
+
const [open, setOpen] = React137__default.useState(false);
|
|
6380
|
+
const [url, setUrl] = React137__default.useState("");
|
|
6112
6381
|
const isActive = editor.isActive("link");
|
|
6113
|
-
|
|
6382
|
+
React137__default.useEffect(() => {
|
|
6114
6383
|
if (!open) return;
|
|
6115
6384
|
const current = editor.getAttributes("link")?.href;
|
|
6116
6385
|
setUrl(current ?? "");
|
|
@@ -6575,7 +6844,7 @@ var proseClasses = cn(
|
|
|
6575
6844
|
// Selected cells in tables
|
|
6576
6845
|
"[&_.selectedCell]:bg-[hsl(var(--accent))]/40"
|
|
6577
6846
|
);
|
|
6578
|
-
var RichEditor =
|
|
6847
|
+
var RichEditor = React137__default.forwardRef(
|
|
6579
6848
|
function RichEditor2({
|
|
6580
6849
|
value,
|
|
6581
6850
|
defaultValue,
|
|
@@ -6589,12 +6858,12 @@ var RichEditor = React131__default.forwardRef(
|
|
|
6589
6858
|
}, ref) {
|
|
6590
6859
|
const isControlled = value !== void 0;
|
|
6591
6860
|
const initialContent = isControlled ? value ?? "" : defaultValue ?? "";
|
|
6592
|
-
const debounceRef =
|
|
6593
|
-
const onChangeRef =
|
|
6594
|
-
|
|
6861
|
+
const debounceRef = React137__default.useRef(null);
|
|
6862
|
+
const onChangeRef = React137__default.useRef(onChange);
|
|
6863
|
+
React137__default.useEffect(() => {
|
|
6595
6864
|
onChangeRef.current = onChange;
|
|
6596
6865
|
}, [onChange]);
|
|
6597
|
-
const [charCount, setCharCount] =
|
|
6866
|
+
const [charCount, setCharCount] = React137__default.useState(0);
|
|
6598
6867
|
const editor = useEditor({
|
|
6599
6868
|
editable,
|
|
6600
6869
|
content: initialContent,
|
|
@@ -6637,18 +6906,18 @@ var RichEditor = React131__default.forwardRef(
|
|
|
6637
6906
|
}, 100);
|
|
6638
6907
|
}
|
|
6639
6908
|
});
|
|
6640
|
-
|
|
6909
|
+
React137__default.useEffect(() => {
|
|
6641
6910
|
if (!editor || !isControlled) return;
|
|
6642
6911
|
const current = editor.getHTML();
|
|
6643
6912
|
if ((value ?? "") !== current) {
|
|
6644
6913
|
editor.commands.setContent(value ?? "", { emitUpdate: false });
|
|
6645
6914
|
}
|
|
6646
6915
|
}, [editor, isControlled, value]);
|
|
6647
|
-
|
|
6916
|
+
React137__default.useEffect(() => {
|
|
6648
6917
|
if (!editor) return;
|
|
6649
6918
|
if (editor.isEditable !== editable) editor.setEditable(editable);
|
|
6650
6919
|
}, [editor, editable]);
|
|
6651
|
-
|
|
6920
|
+
React137__default.useEffect(() => {
|
|
6652
6921
|
return () => {
|
|
6653
6922
|
if (debounceRef.current) clearTimeout(debounceRef.current);
|
|
6654
6923
|
};
|
|
@@ -6746,10 +7015,10 @@ function ToggleButtonGroup(props) {
|
|
|
6746
7015
|
props.onChange(val);
|
|
6747
7016
|
}
|
|
6748
7017
|
};
|
|
6749
|
-
return /* @__PURE__ */ jsx("div", { className: cn("inline-flex items-center gap-1 rounded-md border border-[hsl(var(--border))] bg-[hsl(var(--muted)/0.4)] p-0.5", className), children:
|
|
6750
|
-
if (!
|
|
7018
|
+
return /* @__PURE__ */ jsx("div", { className: cn("inline-flex items-center gap-1 rounded-md border border-[hsl(var(--border))] bg-[hsl(var(--muted)/0.4)] p-0.5", className), children: React137__default.Children.map(children, (child) => {
|
|
7019
|
+
if (!React137__default.isValidElement(child)) return child;
|
|
6751
7020
|
const tb = child;
|
|
6752
|
-
return
|
|
7021
|
+
return React137__default.cloneElement(tb, {
|
|
6753
7022
|
pressed: isPressed(tb.props.value),
|
|
6754
7023
|
onClick: () => handleClick(tb.props.value)
|
|
6755
7024
|
});
|
|
@@ -7104,7 +7373,7 @@ function useChecklist() {
|
|
|
7104
7373
|
if (!ctx) throw new Error("<ChecklistItem> must be used inside <Checklist>");
|
|
7105
7374
|
return ctx;
|
|
7106
7375
|
}
|
|
7107
|
-
var Checklist =
|
|
7376
|
+
var Checklist = React137__default.forwardRef(
|
|
7108
7377
|
({
|
|
7109
7378
|
title = "Getting started",
|
|
7110
7379
|
description,
|
|
@@ -7120,7 +7389,7 @@ var Checklist = React131__default.forwardRef(
|
|
|
7120
7389
|
}, ref) => {
|
|
7121
7390
|
const [internalCompleted, setInternalCompleted] = useState({});
|
|
7122
7391
|
const [open, setOpen] = useState(defaultOpen);
|
|
7123
|
-
const completedFiredRef =
|
|
7392
|
+
const completedFiredRef = React137__default.useRef(false);
|
|
7124
7393
|
const isControlled = controlledCompleted !== void 0;
|
|
7125
7394
|
const completed = isControlled ? controlledCompleted : internalCompleted;
|
|
7126
7395
|
const setCompleted = useCallback(
|
|
@@ -7132,8 +7401,8 @@ var Checklist = React131__default.forwardRef(
|
|
|
7132
7401
|
);
|
|
7133
7402
|
const total = useMemo(() => {
|
|
7134
7403
|
let n = 0;
|
|
7135
|
-
|
|
7136
|
-
if (
|
|
7404
|
+
React137__default.Children.forEach(children, (child) => {
|
|
7405
|
+
if (React137__default.isValidElement(child) && child.type.displayName === "ChecklistItem") {
|
|
7137
7406
|
n++;
|
|
7138
7407
|
}
|
|
7139
7408
|
});
|
|
@@ -7143,7 +7412,7 @@ var Checklist = React131__default.forwardRef(
|
|
|
7143
7412
|
() => Object.values(completed).filter(Boolean).length,
|
|
7144
7413
|
[completed]
|
|
7145
7414
|
);
|
|
7146
|
-
|
|
7415
|
+
React137__default.useEffect(() => {
|
|
7147
7416
|
if (!completedFiredRef.current && total > 0 && doneCount >= total) {
|
|
7148
7417
|
completedFiredRef.current = true;
|
|
7149
7418
|
onComplete?.();
|
|
@@ -7204,7 +7473,7 @@ var Checklist = React131__default.forwardRef(
|
|
|
7204
7473
|
}
|
|
7205
7474
|
);
|
|
7206
7475
|
Checklist.displayName = "Checklist";
|
|
7207
|
-
var ChecklistItem =
|
|
7476
|
+
var ChecklistItem = React137__default.forwardRef(
|
|
7208
7477
|
({ id, title, description, action, onActivate, className, ...props }, ref) => {
|
|
7209
7478
|
const { completed, setCompleted } = useChecklist();
|
|
7210
7479
|
const done = !!completed[id];
|
|
@@ -7552,7 +7821,7 @@ function Field({ label, description, error, required, children, className }) {
|
|
|
7552
7821
|
error && /* @__PURE__ */ jsx(FieldError, { children: error })
|
|
7553
7822
|
] });
|
|
7554
7823
|
}
|
|
7555
|
-
var FieldLabel =
|
|
7824
|
+
var FieldLabel = React137__default.forwardRef(
|
|
7556
7825
|
({ className, required, children, ...props }, ref) => /* @__PURE__ */ jsxs(
|
|
7557
7826
|
"label",
|
|
7558
7827
|
{
|
|
@@ -7567,7 +7836,7 @@ var FieldLabel = React131__default.forwardRef(
|
|
|
7567
7836
|
)
|
|
7568
7837
|
);
|
|
7569
7838
|
FieldLabel.displayName = "FieldLabel";
|
|
7570
|
-
var FieldDescription =
|
|
7839
|
+
var FieldDescription = React137__default.forwardRef(
|
|
7571
7840
|
({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
7572
7841
|
"p",
|
|
7573
7842
|
{
|
|
@@ -7578,7 +7847,7 @@ var FieldDescription = React131__default.forwardRef(
|
|
|
7578
7847
|
)
|
|
7579
7848
|
);
|
|
7580
7849
|
FieldDescription.displayName = "FieldDescription";
|
|
7581
|
-
var FieldError =
|
|
7850
|
+
var FieldError = React137__default.forwardRef(
|
|
7582
7851
|
({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
7583
7852
|
"p",
|
|
7584
7853
|
{
|
|
@@ -7679,7 +7948,7 @@ function defaultFor(format3, showAlpha) {
|
|
|
7679
7948
|
if (format3 === "rgb") return showAlpha ? "rgba(59, 130, 246, 1)" : "rgb(59, 130, 246)";
|
|
7680
7949
|
return showAlpha ? "hsla(217, 91%, 60%, 1)" : "hsl(217, 91%, 60%)";
|
|
7681
7950
|
}
|
|
7682
|
-
var ColorPicker =
|
|
7951
|
+
var ColorPicker = React137__default.forwardRef(
|
|
7683
7952
|
({
|
|
7684
7953
|
value: valueProp,
|
|
7685
7954
|
defaultValue,
|
|
@@ -7694,21 +7963,21 @@ var ColorPicker = React131__default.forwardRef(
|
|
|
7694
7963
|
}, ref) => {
|
|
7695
7964
|
const fallback = defaultValue ?? defaultFor(format3, showAlpha);
|
|
7696
7965
|
const isControlled = valueProp !== void 0;
|
|
7697
|
-
const [internal, setInternal] =
|
|
7966
|
+
const [internal, setInternal] = React137__default.useState(fallback);
|
|
7698
7967
|
const value = isControlled ? valueProp : internal;
|
|
7699
|
-
const [draft, setDraft] =
|
|
7700
|
-
const [draftValid, setDraftValid] =
|
|
7701
|
-
|
|
7968
|
+
const [draft, setDraft] = React137__default.useState(value);
|
|
7969
|
+
const [draftValid, setDraftValid] = React137__default.useState(true);
|
|
7970
|
+
React137__default.useEffect(() => {
|
|
7702
7971
|
setDraft(value);
|
|
7703
7972
|
setDraftValid(true);
|
|
7704
7973
|
}, [value]);
|
|
7705
|
-
const [eyeDropperSupported, setEyeDropperSupported] =
|
|
7706
|
-
|
|
7974
|
+
const [eyeDropperSupported, setEyeDropperSupported] = React137__default.useState(false);
|
|
7975
|
+
React137__default.useEffect(() => {
|
|
7707
7976
|
if (typeof window !== "undefined" && "EyeDropper" in window) {
|
|
7708
7977
|
setEyeDropperSupported(true);
|
|
7709
7978
|
}
|
|
7710
7979
|
}, []);
|
|
7711
|
-
const commit =
|
|
7980
|
+
const commit = React137__default.useCallback(
|
|
7712
7981
|
(next) => {
|
|
7713
7982
|
if (!isControlled) setInternal(next);
|
|
7714
7983
|
onValueChange?.(next);
|
|
@@ -7945,7 +8214,7 @@ function FileUploadPreview({ files, onRemove, className }) {
|
|
|
7945
8214
|
] })
|
|
7946
8215
|
] }, i)) });
|
|
7947
8216
|
}
|
|
7948
|
-
var FloatingLabelInput =
|
|
8217
|
+
var FloatingLabelInput = React137__default.forwardRef(
|
|
7949
8218
|
({ label, error, hint, wrapperClassName, className, id, value, defaultValue, onFocus, onBlur, onChange, ...props }, ref) => {
|
|
7950
8219
|
const autoId = useId();
|
|
7951
8220
|
const inputId = id ?? autoId;
|
|
@@ -8029,7 +8298,7 @@ function FormField(props) {
|
|
|
8029
8298
|
function FormItem({ className, ...props }) {
|
|
8030
8299
|
return /* @__PURE__ */ jsx("div", { className: cn("flex flex-col gap-1.5", className), ...props });
|
|
8031
8300
|
}
|
|
8032
|
-
var FormLabel =
|
|
8301
|
+
var FormLabel = React137__default.forwardRef(
|
|
8033
8302
|
({ className, error, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
8034
8303
|
"label",
|
|
8035
8304
|
{
|
|
@@ -8044,7 +8313,7 @@ var FormLabel = React131__default.forwardRef(
|
|
|
8044
8313
|
)
|
|
8045
8314
|
);
|
|
8046
8315
|
FormLabel.displayName = "FormLabel";
|
|
8047
|
-
var FormControl =
|
|
8316
|
+
var FormControl = React137__default.forwardRef(
|
|
8048
8317
|
({ ...props }, ref) => {
|
|
8049
8318
|
const id = useId();
|
|
8050
8319
|
return /* @__PURE__ */ jsx("div", { ref, id, ...props });
|
|
@@ -8101,7 +8370,7 @@ function getStrength(value) {
|
|
|
8101
8370
|
if (score <= 3) return { level: "medium", width: "w-2/3", color: "bg-yellow-500" };
|
|
8102
8371
|
return { level: "strong", width: "w-full", color: "bg-green-500" };
|
|
8103
8372
|
}
|
|
8104
|
-
var PasswordInput =
|
|
8373
|
+
var PasswordInput = React137__default.forwardRef(
|
|
8105
8374
|
({ className, strength, ...props }, ref) => {
|
|
8106
8375
|
const [show, setShow] = useState(false);
|
|
8107
8376
|
const value = String(props.value ?? "");
|
|
@@ -8136,7 +8405,7 @@ var PasswordInput = React131__default.forwardRef(
|
|
|
8136
8405
|
}
|
|
8137
8406
|
);
|
|
8138
8407
|
PasswordInput.displayName = "PasswordInput";
|
|
8139
|
-
var SearchInput =
|
|
8408
|
+
var SearchInput = React137__default.forwardRef(
|
|
8140
8409
|
({ className, shortcut, onClear, onChange, value: valueProp, defaultValue, ...props }, ref) => {
|
|
8141
8410
|
const [internalValue, setInternalValue] = useState(defaultValue ?? "");
|
|
8142
8411
|
const isControlled = valueProp !== void 0;
|
|
@@ -8199,7 +8468,7 @@ function StepForm({ steps, onSubmit, children, className }) {
|
|
|
8199
8468
|
isFirst: currentStep === 0,
|
|
8200
8469
|
isLast: currentStep === totalSteps - 1
|
|
8201
8470
|
};
|
|
8202
|
-
const childArray =
|
|
8471
|
+
const childArray = React137__default.Children.toArray(children);
|
|
8203
8472
|
const currentChild = childArray[currentStep];
|
|
8204
8473
|
return /* @__PURE__ */ jsx(StepFormContext.Provider, { value: ctx, children: /* @__PURE__ */ jsxs("div", { className: cn("flex flex-col gap-6", className), children: [
|
|
8205
8474
|
/* @__PURE__ */ jsx(StepIndicator, { steps, currentStep }),
|
|
@@ -8208,7 +8477,7 @@ function StepForm({ steps, onSubmit, children, className }) {
|
|
|
8208
8477
|
] }) });
|
|
8209
8478
|
}
|
|
8210
8479
|
function StepIndicator({ steps, currentStep }) {
|
|
8211
|
-
return /* @__PURE__ */ jsx("div", { className: "flex items-center gap-2", children: steps.map((label, i) => /* @__PURE__ */ jsxs(
|
|
8480
|
+
return /* @__PURE__ */ jsx("div", { className: "flex items-center gap-2", children: steps.map((label, i) => /* @__PURE__ */ jsxs(React137__default.Fragment, { children: [
|
|
8212
8481
|
i > 0 && /* @__PURE__ */ jsx("div", { className: cn("h-px flex-1 bg-[hsl(var(--border))]", i <= currentStep && "bg-[hsl(var(--primary))]") }),
|
|
8213
8482
|
/* @__PURE__ */ jsxs("div", { className: "flex flex-col items-center gap-1", children: [
|
|
8214
8483
|
/* @__PURE__ */ jsx("div", { className: cn(
|
|
@@ -8237,7 +8506,7 @@ function StepFormNavigation({ onSubmit, submitLabel = "Submit" }) {
|
|
|
8237
8506
|
isLast ? /* @__PURE__ */ jsx(Button, { type: "button", onClick: onSubmit, children: submitLabel }) : /* @__PURE__ */ jsx(Button, { type: "button", onClick: next, children: "Next" })
|
|
8238
8507
|
] });
|
|
8239
8508
|
}
|
|
8240
|
-
var Tags =
|
|
8509
|
+
var Tags = React137__default.forwardRef(
|
|
8241
8510
|
({
|
|
8242
8511
|
value: valueProp,
|
|
8243
8512
|
defaultValue,
|
|
@@ -8253,25 +8522,25 @@ var Tags = React131__default.forwardRef(
|
|
|
8253
8522
|
...props
|
|
8254
8523
|
}, ref) => {
|
|
8255
8524
|
const isControlled = valueProp !== void 0;
|
|
8256
|
-
const [internal, setInternal] =
|
|
8525
|
+
const [internal, setInternal] = React137__default.useState(defaultValue ?? []);
|
|
8257
8526
|
const tags = isControlled ? valueProp : internal;
|
|
8258
|
-
const [input, setInput] =
|
|
8259
|
-
const [error, setError] =
|
|
8260
|
-
const [focused, setFocused] =
|
|
8261
|
-
const [activeIndex, setActiveIndex] =
|
|
8262
|
-
const inputRef =
|
|
8263
|
-
const containerRef =
|
|
8264
|
-
|
|
8527
|
+
const [input, setInput] = React137__default.useState("");
|
|
8528
|
+
const [error, setError] = React137__default.useState(null);
|
|
8529
|
+
const [focused, setFocused] = React137__default.useState(false);
|
|
8530
|
+
const [activeIndex, setActiveIndex] = React137__default.useState(0);
|
|
8531
|
+
const inputRef = React137__default.useRef(null);
|
|
8532
|
+
const containerRef = React137__default.useRef(null);
|
|
8533
|
+
React137__default.useImperativeHandle(ref, () => containerRef.current);
|
|
8265
8534
|
const atMax = maxTags !== void 0 && tags.length >= maxTags;
|
|
8266
8535
|
const inputDisabled = disabled || atMax;
|
|
8267
|
-
const commit =
|
|
8536
|
+
const commit = React137__default.useCallback(
|
|
8268
8537
|
(next) => {
|
|
8269
8538
|
if (!isControlled) setInternal(next);
|
|
8270
8539
|
onValueChange?.(next);
|
|
8271
8540
|
},
|
|
8272
8541
|
[isControlled, onValueChange]
|
|
8273
8542
|
);
|
|
8274
|
-
const addTag =
|
|
8543
|
+
const addTag = React137__default.useCallback(
|
|
8275
8544
|
(raw) => {
|
|
8276
8545
|
const tag = raw.trim();
|
|
8277
8546
|
if (!tag) return false;
|
|
@@ -8297,20 +8566,20 @@ var Tags = React131__default.forwardRef(
|
|
|
8297
8566
|
},
|
|
8298
8567
|
[tags, allowDuplicates, validate, atMax, commit]
|
|
8299
8568
|
);
|
|
8300
|
-
const removeTag =
|
|
8569
|
+
const removeTag = React137__default.useCallback(
|
|
8301
8570
|
(index) => {
|
|
8302
8571
|
commit(tags.filter((_, i) => i !== index));
|
|
8303
8572
|
setError(null);
|
|
8304
8573
|
},
|
|
8305
8574
|
[tags, commit]
|
|
8306
8575
|
);
|
|
8307
|
-
const filteredSuggestions =
|
|
8576
|
+
const filteredSuggestions = React137__default.useMemo(() => {
|
|
8308
8577
|
if (!suggestions || !input.trim()) return [];
|
|
8309
8578
|
const q = input.trim().toLowerCase();
|
|
8310
8579
|
return suggestions.filter((s) => s.toLowerCase().includes(q)).filter((s) => allowDuplicates || !tags.includes(s)).slice(0, 8);
|
|
8311
8580
|
}, [suggestions, input, tags, allowDuplicates]);
|
|
8312
8581
|
const showPopover = focused && !inputDisabled && filteredSuggestions.length > 0;
|
|
8313
|
-
|
|
8582
|
+
React137__default.useEffect(() => {
|
|
8314
8583
|
if (activeIndex >= filteredSuggestions.length) setActiveIndex(0);
|
|
8315
8584
|
}, [filteredSuggestions.length, activeIndex]);
|
|
8316
8585
|
const handleKeyDown = (e) => {
|
|
@@ -8452,7 +8721,7 @@ var Tags = React131__default.forwardRef(
|
|
|
8452
8721
|
}
|
|
8453
8722
|
);
|
|
8454
8723
|
Tags.displayName = "Tags";
|
|
8455
|
-
var AppShellCtx =
|
|
8724
|
+
var AppShellCtx = React137__default.createContext({
|
|
8456
8725
|
collapsed: false,
|
|
8457
8726
|
setCollapsed: () => {
|
|
8458
8727
|
},
|
|
@@ -8460,12 +8729,12 @@ var AppShellCtx = React131__default.createContext({
|
|
|
8460
8729
|
setMobileOpen: () => {
|
|
8461
8730
|
}
|
|
8462
8731
|
});
|
|
8463
|
-
var useAppShell = () =>
|
|
8464
|
-
var AppShell =
|
|
8732
|
+
var useAppShell = () => React137__default.useContext(AppShellCtx);
|
|
8733
|
+
var AppShell = React137__default.forwardRef(
|
|
8465
8734
|
({ className, defaultCollapsed = false, children, ...props }, ref) => {
|
|
8466
|
-
const [collapsed, setCollapsed] =
|
|
8467
|
-
const [mobileOpen, setMobileOpen] =
|
|
8468
|
-
|
|
8735
|
+
const [collapsed, setCollapsed] = React137__default.useState(defaultCollapsed);
|
|
8736
|
+
const [mobileOpen, setMobileOpen] = React137__default.useState(false);
|
|
8737
|
+
React137__default.useEffect(() => {
|
|
8469
8738
|
const handleClick = (e) => {
|
|
8470
8739
|
const target = e.target;
|
|
8471
8740
|
if (target.closest("a[href]") || target.closest("[data-mobile-close]")) {
|
|
@@ -8496,7 +8765,7 @@ var AppShell = React131__default.forwardRef(
|
|
|
8496
8765
|
}
|
|
8497
8766
|
);
|
|
8498
8767
|
AppShell.displayName = "AppShell";
|
|
8499
|
-
var AppShellSidebar =
|
|
8768
|
+
var AppShellSidebar = React137__default.forwardRef(
|
|
8500
8769
|
({ className, ...props }, ref) => {
|
|
8501
8770
|
const { mobileOpen } = useAppShell();
|
|
8502
8771
|
return /* @__PURE__ */ jsx(
|
|
@@ -8517,11 +8786,11 @@ var AppShellSidebar = React131__default.forwardRef(
|
|
|
8517
8786
|
}
|
|
8518
8787
|
);
|
|
8519
8788
|
AppShellSidebar.displayName = "AppShellSidebar";
|
|
8520
|
-
var AppShellMain =
|
|
8789
|
+
var AppShellMain = React137__default.forwardRef(
|
|
8521
8790
|
({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn("flex-1 min-w-0 flex flex-col overflow-auto", className), ...props })
|
|
8522
8791
|
);
|
|
8523
8792
|
AppShellMain.displayName = "AppShellMain";
|
|
8524
|
-
var MobileSidebarTrigger =
|
|
8793
|
+
var MobileSidebarTrigger = React137__default.forwardRef(
|
|
8525
8794
|
({ className, ...props }, ref) => {
|
|
8526
8795
|
const { mobileOpen, setMobileOpen } = useAppShell();
|
|
8527
8796
|
return /* @__PURE__ */ jsx(
|
|
@@ -8550,7 +8819,7 @@ var sizeMap5 = {
|
|
|
8550
8819
|
xl: "max-w-screen-xl",
|
|
8551
8820
|
full: "max-w-full"
|
|
8552
8821
|
};
|
|
8553
|
-
var Container =
|
|
8822
|
+
var Container = React137__default.forwardRef(
|
|
8554
8823
|
({ className, size = "lg", noPadding = false, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
8555
8824
|
"div",
|
|
8556
8825
|
{
|
|
@@ -8566,7 +8835,7 @@ var Container = React131__default.forwardRef(
|
|
|
8566
8835
|
)
|
|
8567
8836
|
);
|
|
8568
8837
|
Container.displayName = "Container";
|
|
8569
|
-
var Navbar =
|
|
8838
|
+
var Navbar = React137__default.forwardRef(
|
|
8570
8839
|
({ className, sticky = false, border = true, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
8571
8840
|
"nav",
|
|
8572
8841
|
{
|
|
@@ -8582,7 +8851,7 @@ var Navbar = React131__default.forwardRef(
|
|
|
8582
8851
|
)
|
|
8583
8852
|
);
|
|
8584
8853
|
Navbar.displayName = "Navbar";
|
|
8585
|
-
var NavbarBrand =
|
|
8854
|
+
var NavbarBrand = React137__default.forwardRef(
|
|
8586
8855
|
({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn("flex items-center gap-2 px-4 shrink-0", className), ...props })
|
|
8587
8856
|
);
|
|
8588
8857
|
NavbarBrand.displayName = "NavbarBrand";
|
|
@@ -8591,7 +8860,7 @@ var alignMap = {
|
|
|
8591
8860
|
center: "justify-center flex-1",
|
|
8592
8861
|
end: "justify-end ml-auto"
|
|
8593
8862
|
};
|
|
8594
|
-
var NavbarContent =
|
|
8863
|
+
var NavbarContent = React137__default.forwardRef(
|
|
8595
8864
|
({ className, align = "start", ...props }, ref) => /* @__PURE__ */ jsx(
|
|
8596
8865
|
"div",
|
|
8597
8866
|
{
|
|
@@ -8602,11 +8871,11 @@ var NavbarContent = React131__default.forwardRef(
|
|
|
8602
8871
|
)
|
|
8603
8872
|
);
|
|
8604
8873
|
NavbarContent.displayName = "NavbarContent";
|
|
8605
|
-
var NavbarItem =
|
|
8874
|
+
var NavbarItem = React137__default.forwardRef(
|
|
8606
8875
|
({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn("flex items-center", className), ...props })
|
|
8607
8876
|
);
|
|
8608
8877
|
NavbarItem.displayName = "NavbarItem";
|
|
8609
|
-
var Page =
|
|
8878
|
+
var Page = React137__default.forwardRef(
|
|
8610
8879
|
({ className, maxWidth, style, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
8611
8880
|
"div",
|
|
8612
8881
|
{
|
|
@@ -8618,7 +8887,7 @@ var Page = React131__default.forwardRef(
|
|
|
8618
8887
|
)
|
|
8619
8888
|
);
|
|
8620
8889
|
Page.displayName = "Page";
|
|
8621
|
-
var PageHeader =
|
|
8890
|
+
var PageHeader = React137__default.forwardRef(
|
|
8622
8891
|
({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
8623
8892
|
"div",
|
|
8624
8893
|
{
|
|
@@ -8629,7 +8898,7 @@ var PageHeader = React131__default.forwardRef(
|
|
|
8629
8898
|
)
|
|
8630
8899
|
);
|
|
8631
8900
|
PageHeader.displayName = "PageHeader";
|
|
8632
|
-
var PageTitle =
|
|
8901
|
+
var PageTitle = React137__default.forwardRef(
|
|
8633
8902
|
({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
8634
8903
|
"h1",
|
|
8635
8904
|
{
|
|
@@ -8640,19 +8909,19 @@ var PageTitle = React131__default.forwardRef(
|
|
|
8640
8909
|
)
|
|
8641
8910
|
);
|
|
8642
8911
|
PageTitle.displayName = "PageTitle";
|
|
8643
|
-
var PageDescription =
|
|
8912
|
+
var PageDescription = React137__default.forwardRef(
|
|
8644
8913
|
({ className, ...props }, ref) => /* @__PURE__ */ jsx("p", { ref, className: cn("text-sm text-[hsl(var(--muted-foreground))] mt-1", className), ...props })
|
|
8645
8914
|
);
|
|
8646
8915
|
PageDescription.displayName = "PageDescription";
|
|
8647
|
-
var PageActions =
|
|
8916
|
+
var PageActions = React137__default.forwardRef(
|
|
8648
8917
|
({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn("flex items-center gap-2 shrink-0", className), ...props })
|
|
8649
8918
|
);
|
|
8650
8919
|
PageActions.displayName = "PageActions";
|
|
8651
|
-
var PageBody =
|
|
8920
|
+
var PageBody = React137__default.forwardRef(
|
|
8652
8921
|
({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn("flex-1 p-6 flex flex-col gap-6", className), ...props })
|
|
8653
8922
|
);
|
|
8654
8923
|
PageBody.displayName = "PageBody";
|
|
8655
|
-
var ResizeBox =
|
|
8924
|
+
var ResizeBox = React137__default.forwardRef(
|
|
8656
8925
|
({ className, resize = "both", minWidth = 100, minHeight = 100, style, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
8657
8926
|
"div",
|
|
8658
8927
|
{
|
|
@@ -8669,7 +8938,7 @@ var HandleIcon = () => /* @__PURE__ */ jsxs("svg", { width: "10", height: "10",
|
|
|
8669
8938
|
/* @__PURE__ */ jsx("path", { d: "M8 5L5 8", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round" }),
|
|
8670
8939
|
/* @__PURE__ */ jsx("path", { d: "M8 8L8 8", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round" })
|
|
8671
8940
|
] });
|
|
8672
|
-
var ResizeHandle =
|
|
8941
|
+
var ResizeHandle = React137__default.forwardRef(
|
|
8673
8942
|
({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
8674
8943
|
"div",
|
|
8675
8944
|
{
|
|
@@ -8685,16 +8954,16 @@ var ResizeHandle = React131__default.forwardRef(
|
|
|
8685
8954
|
)
|
|
8686
8955
|
);
|
|
8687
8956
|
ResizeHandle.displayName = "ResizeHandle";
|
|
8688
|
-
var SidebarCtx2 =
|
|
8689
|
-
var useSidebarCtx = () =>
|
|
8957
|
+
var SidebarCtx2 = React137__default.createContext({ collapsed: false });
|
|
8958
|
+
var useSidebarCtx = () => React137__default.useContext(SidebarCtx2);
|
|
8690
8959
|
var makeSlot = (name, cls) => {
|
|
8691
|
-
const C =
|
|
8960
|
+
const C = React137__default.forwardRef(
|
|
8692
8961
|
({ className, ...p }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn(cls, className), ...p })
|
|
8693
8962
|
);
|
|
8694
8963
|
C.displayName = name;
|
|
8695
8964
|
return C;
|
|
8696
8965
|
};
|
|
8697
|
-
var Sidebar2 =
|
|
8966
|
+
var Sidebar2 = React137__default.forwardRef(
|
|
8698
8967
|
({ className, collapsed = false, onCollapse, width = "240px", style, children, ...props }, ref) => /* @__PURE__ */ jsx(SidebarCtx2.Provider, { value: { collapsed }, children: /* @__PURE__ */ jsxs(
|
|
8699
8968
|
"div",
|
|
8700
8969
|
{
|
|
@@ -8722,7 +8991,7 @@ var SidebarContent = makeSlot("SidebarContent", "flex-1 overflow-y-auto py-2");
|
|
|
8722
8991
|
var SidebarFooter2 = makeSlot("SidebarFooter", "px-3 py-3 border-t border-[hsl(var(--border))] shrink-0");
|
|
8723
8992
|
var SidebarGroup = makeSlot("SidebarGroup", "mb-2");
|
|
8724
8993
|
var SidebarSeparator2 = makeSlot("SidebarSeparator", "h-px bg-[hsl(var(--border))] mx-3 my-2");
|
|
8725
|
-
var SidebarGroupLabel =
|
|
8994
|
+
var SidebarGroupLabel = React137__default.forwardRef(
|
|
8726
8995
|
({ className, ...props }, ref) => {
|
|
8727
8996
|
const { collapsed } = useSidebarCtx();
|
|
8728
8997
|
return /* @__PURE__ */ jsx(
|
|
@@ -8736,7 +9005,7 @@ var SidebarGroupLabel = React131__default.forwardRef(
|
|
|
8736
9005
|
}
|
|
8737
9006
|
);
|
|
8738
9007
|
SidebarGroupLabel.displayName = "SidebarGroupLabel";
|
|
8739
|
-
var SidebarItem2 =
|
|
9008
|
+
var SidebarItem2 = React137__default.forwardRef(
|
|
8740
9009
|
({ className, icon, label, active, href, badge, onClick, ...props }, ref) => {
|
|
8741
9010
|
const { collapsed } = useSidebarCtx();
|
|
8742
9011
|
const cls = cn(
|
|
@@ -8755,11 +9024,11 @@ var SidebarItem2 = React131__default.forwardRef(
|
|
|
8755
9024
|
}
|
|
8756
9025
|
);
|
|
8757
9026
|
SidebarItem2.displayName = "SidebarItem";
|
|
8758
|
-
var SplitPage =
|
|
9027
|
+
var SplitPage = React137__default.forwardRef(
|
|
8759
9028
|
({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn("flex h-full w-full overflow-hidden", className), ...props })
|
|
8760
9029
|
);
|
|
8761
9030
|
SplitPage.displayName = "SplitPage";
|
|
8762
|
-
var SplitPageList =
|
|
9031
|
+
var SplitPageList = React137__default.forwardRef(
|
|
8763
9032
|
({ className, width = "320px", style, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
8764
9033
|
"div",
|
|
8765
9034
|
{
|
|
@@ -8771,7 +9040,7 @@ var SplitPageList = React131__default.forwardRef(
|
|
|
8771
9040
|
)
|
|
8772
9041
|
);
|
|
8773
9042
|
SplitPageList.displayName = "SplitPageList";
|
|
8774
|
-
var SplitPageDetail =
|
|
9043
|
+
var SplitPageDetail = React137__default.forwardRef(
|
|
8775
9044
|
({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn("flex-1 min-w-0 h-full overflow-auto", className), ...props })
|
|
8776
9045
|
);
|
|
8777
9046
|
SplitPageDetail.displayName = "SplitPageDetail";
|
|
@@ -8796,7 +9065,7 @@ var justifyMap = {
|
|
|
8796
9065
|
around: "justify-around",
|
|
8797
9066
|
evenly: "justify-evenly"
|
|
8798
9067
|
};
|
|
8799
|
-
var Stack =
|
|
9068
|
+
var Stack = React137__default.forwardRef(
|
|
8800
9069
|
({ className, gap, direction = "col", align, justify, wrap, style, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
8801
9070
|
"div",
|
|
8802
9071
|
{
|
|
@@ -8815,15 +9084,15 @@ var Stack = React131__default.forwardRef(
|
|
|
8815
9084
|
)
|
|
8816
9085
|
);
|
|
8817
9086
|
Stack.displayName = "Stack";
|
|
8818
|
-
var HStack =
|
|
9087
|
+
var HStack = React137__default.forwardRef(
|
|
8819
9088
|
(props, ref) => /* @__PURE__ */ jsx(Stack, { ref, direction: "row", ...props })
|
|
8820
9089
|
);
|
|
8821
9090
|
HStack.displayName = "HStack";
|
|
8822
|
-
var VStack =
|
|
9091
|
+
var VStack = React137__default.forwardRef(
|
|
8823
9092
|
(props, ref) => /* @__PURE__ */ jsx(Stack, { ref, direction: "col", ...props })
|
|
8824
9093
|
);
|
|
8825
9094
|
VStack.displayName = "VStack";
|
|
8826
|
-
var PageLayout =
|
|
9095
|
+
var PageLayout = React137__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
8827
9096
|
"div",
|
|
8828
9097
|
{
|
|
8829
9098
|
ref,
|
|
@@ -8833,7 +9102,7 @@ var PageLayout = React131__default.forwardRef(({ className, ...props }, ref) =>
|
|
|
8833
9102
|
}
|
|
8834
9103
|
));
|
|
8835
9104
|
PageLayout.displayName = "PageLayout";
|
|
8836
|
-
var PageHeader2 =
|
|
9105
|
+
var PageHeader2 = React137__default.forwardRef(
|
|
8837
9106
|
({ className, title, description, actions, back, children }, ref) => /* @__PURE__ */ jsxs(
|
|
8838
9107
|
"div",
|
|
8839
9108
|
{
|
|
@@ -8855,7 +9124,7 @@ var PageHeader2 = React131__default.forwardRef(
|
|
|
8855
9124
|
)
|
|
8856
9125
|
);
|
|
8857
9126
|
PageHeader2.displayName = "PageHeader";
|
|
8858
|
-
var PageContainer =
|
|
9127
|
+
var PageContainer = React137__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
8859
9128
|
"div",
|
|
8860
9129
|
{
|
|
8861
9130
|
ref,
|
|
@@ -8869,7 +9138,7 @@ var PageContainer = React131__default.forwardRef(({ className, ...props }, ref)
|
|
|
8869
9138
|
}
|
|
8870
9139
|
));
|
|
8871
9140
|
PageContainer.displayName = "PageContainer";
|
|
8872
|
-
var PageMain =
|
|
9141
|
+
var PageMain = React137__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
8873
9142
|
"div",
|
|
8874
9143
|
{
|
|
8875
9144
|
ref,
|
|
@@ -9315,7 +9584,7 @@ var directionClasses = {
|
|
|
9315
9584
|
bl: "bg-gradient-to-bl",
|
|
9316
9585
|
l: "bg-gradient-to-l"
|
|
9317
9586
|
};
|
|
9318
|
-
var GradientHeading =
|
|
9587
|
+
var GradientHeading = React137__default.forwardRef(
|
|
9319
9588
|
({
|
|
9320
9589
|
as: Tag = "h2",
|
|
9321
9590
|
preset = "primary",
|
|
@@ -9361,7 +9630,7 @@ function formatNumber(value, decimals, format3, locale) {
|
|
|
9361
9630
|
}
|
|
9362
9631
|
return decimals > 0 ? value.toFixed(decimals) : String(Math.round(value));
|
|
9363
9632
|
}
|
|
9364
|
-
var AnimatedNumber =
|
|
9633
|
+
var AnimatedNumber = React137__default.forwardRef(
|
|
9365
9634
|
({
|
|
9366
9635
|
value,
|
|
9367
9636
|
from = 0,
|
|
@@ -9381,7 +9650,7 @@ var AnimatedNumber = React131__default.forwardRef(
|
|
|
9381
9650
|
const startTimeRef = useRef(null);
|
|
9382
9651
|
const containerRef = useRef(null);
|
|
9383
9652
|
const hasStarted = useRef(false);
|
|
9384
|
-
const runAnimation =
|
|
9653
|
+
const runAnimation = React137__default.useCallback(
|
|
9385
9654
|
(startFrom) => {
|
|
9386
9655
|
if (rafRef.current !== null) cancelAnimationFrame(rafRef.current);
|
|
9387
9656
|
startTimeRef.current = null;
|
|
@@ -9493,7 +9762,7 @@ function TextReveal({
|
|
|
9493
9762
|
}
|
|
9494
9763
|
}, [autoStart, delay]);
|
|
9495
9764
|
const units = mode === "chars" ? text.split("") : mode === "words" ? text.split(" ") : [text];
|
|
9496
|
-
return
|
|
9765
|
+
return React137__default.createElement(
|
|
9497
9766
|
Tag,
|
|
9498
9767
|
{
|
|
9499
9768
|
ref: containerRef,
|
|
@@ -9573,7 +9842,7 @@ function Typewriter({
|
|
|
9573
9842
|
if (timerRef.current) clearTimeout(timerRef.current);
|
|
9574
9843
|
};
|
|
9575
9844
|
}, [display, phase, wordIdx, words, typeSpeed, deleteSpeed, pauseAfter, loop]);
|
|
9576
|
-
return
|
|
9845
|
+
return React137__default.createElement(
|
|
9577
9846
|
Tag,
|
|
9578
9847
|
{
|
|
9579
9848
|
"data-slot": "typewriter",
|
|
@@ -9612,9 +9881,9 @@ var headingVariants = cva("font-heading tracking-tight text-foreground", {
|
|
|
9612
9881
|
},
|
|
9613
9882
|
defaultVariants: { size: "lg", tone: "default" }
|
|
9614
9883
|
});
|
|
9615
|
-
var Heading =
|
|
9884
|
+
var Heading = React137__default.forwardRef(
|
|
9616
9885
|
({ as: Tag = "h2", size, tone, className, ...props }, ref) => {
|
|
9617
|
-
return
|
|
9886
|
+
return React137__default.createElement(Tag, {
|
|
9618
9887
|
ref,
|
|
9619
9888
|
"data-slot": "heading",
|
|
9620
9889
|
className: cn(headingVariants({ size, tone }), className),
|
|
@@ -9644,9 +9913,9 @@ var bodyVariants = cva("font-sans", {
|
|
|
9644
9913
|
},
|
|
9645
9914
|
defaultVariants: { size: "md", tone: "default", weight: "normal" }
|
|
9646
9915
|
});
|
|
9647
|
-
var Body =
|
|
9916
|
+
var Body = React137__default.forwardRef(
|
|
9648
9917
|
({ as: Tag = "p", size, tone, weight, className, ...props }, ref) => {
|
|
9649
|
-
return
|
|
9918
|
+
return React137__default.createElement(Tag, {
|
|
9650
9919
|
ref,
|
|
9651
9920
|
"data-slot": "body",
|
|
9652
9921
|
className: cn(bodyVariants({ size, tone, weight }), className),
|
|
@@ -9665,7 +9934,7 @@ var captionVariants = cva("font-sans text-[11px] font-semibold uppercase trackin
|
|
|
9665
9934
|
},
|
|
9666
9935
|
defaultVariants: { tone: "default" }
|
|
9667
9936
|
});
|
|
9668
|
-
var Caption =
|
|
9937
|
+
var Caption = React137__default.forwardRef(
|
|
9669
9938
|
({ tone, className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
9670
9939
|
"span",
|
|
9671
9940
|
{
|
|
@@ -9677,7 +9946,7 @@ var Caption = React131__default.forwardRef(
|
|
|
9677
9946
|
)
|
|
9678
9947
|
);
|
|
9679
9948
|
Caption.displayName = "Caption";
|
|
9680
|
-
var Code3 =
|
|
9949
|
+
var Code3 = React137__default.forwardRef(
|
|
9681
9950
|
({ block, className, children, ...props }, ref) => {
|
|
9682
9951
|
if (block) {
|
|
9683
9952
|
return /* @__PURE__ */ jsx(
|
|
@@ -9729,7 +9998,7 @@ var presetStyles = {
|
|
|
9729
9998
|
},
|
|
9730
9999
|
custom: {}
|
|
9731
10000
|
};
|
|
9732
|
-
var GradientBackground =
|
|
10001
|
+
var GradientBackground = React137__default.forwardRef(
|
|
9733
10002
|
({
|
|
9734
10003
|
fixed = false,
|
|
9735
10004
|
preset = "slate",
|
|
@@ -9788,7 +10057,7 @@ var DEFAULT_COLORS4 = [
|
|
|
9788
10057
|
"hsl(280 100% 70% / 0.25)",
|
|
9789
10058
|
"hsl(217 33% 17% / 0.4)"
|
|
9790
10059
|
];
|
|
9791
|
-
var AnimatedGradient =
|
|
10060
|
+
var AnimatedGradient = React137__default.forwardRef(
|
|
9792
10061
|
({
|
|
9793
10062
|
colors = DEFAULT_COLORS4,
|
|
9794
10063
|
speed = 1,
|
|
@@ -9907,7 +10176,7 @@ var AnimatedGradient = React131__default.forwardRef(
|
|
|
9907
10176
|
}
|
|
9908
10177
|
);
|
|
9909
10178
|
AnimatedGradient.displayName = "AnimatedGradient";
|
|
9910
|
-
var DottedBackground =
|
|
10179
|
+
var DottedBackground = React137__default.forwardRef(
|
|
9911
10180
|
({
|
|
9912
10181
|
color,
|
|
9913
10182
|
dotSize = 1,
|
|
@@ -9954,7 +10223,7 @@ var DottedBackground = React131__default.forwardRef(
|
|
|
9954
10223
|
}
|
|
9955
10224
|
);
|
|
9956
10225
|
DottedBackground.displayName = "DottedBackground";
|
|
9957
|
-
var NoiseBackground =
|
|
10226
|
+
var NoiseBackground = React137__default.forwardRef(
|
|
9958
10227
|
({
|
|
9959
10228
|
opacity = 0.04,
|
|
9960
10229
|
frequency = 0.65,
|
|
@@ -10050,7 +10319,7 @@ var DEFAULT_COLORS5 = [
|
|
|
10050
10319
|
[0.55, 0.3, 0.95]
|
|
10051
10320
|
// chart-3 violet
|
|
10052
10321
|
];
|
|
10053
|
-
var HeroShaderA =
|
|
10322
|
+
var HeroShaderA = React137__default.forwardRef(
|
|
10054
10323
|
({
|
|
10055
10324
|
className,
|
|
10056
10325
|
colors = DEFAULT_COLORS5,
|
|
@@ -10064,7 +10333,7 @@ var HeroShaderA = React131__default.forwardRef(
|
|
|
10064
10333
|
const wrapRef = useRef(null);
|
|
10065
10334
|
const canvasRef = useRef(null);
|
|
10066
10335
|
const fallbackRef = useRef(false);
|
|
10067
|
-
|
|
10336
|
+
React137__default.useImperativeHandle(ref, () => wrapRef.current);
|
|
10068
10337
|
useEffect(() => {
|
|
10069
10338
|
if (typeof window === "undefined") return;
|
|
10070
10339
|
const reduceMotion = window.matchMedia("(prefers-reduced-motion: reduce)").matches;
|
|
@@ -10201,7 +10470,7 @@ var HeroShaderA = React131__default.forwardRef(
|
|
|
10201
10470
|
}
|
|
10202
10471
|
);
|
|
10203
10472
|
HeroShaderA.displayName = "HeroShaderA";
|
|
10204
|
-
var ScrollHeader =
|
|
10473
|
+
var ScrollHeader = React137__default.forwardRef(
|
|
10205
10474
|
({
|
|
10206
10475
|
title,
|
|
10207
10476
|
subtitle,
|
|
@@ -10288,7 +10557,7 @@ var DEFAULT_TRANSITION = {
|
|
|
10288
10557
|
ease: [0.16, 1, 0.3, 1]
|
|
10289
10558
|
// ease-out-expo (BezierDefinition)
|
|
10290
10559
|
};
|
|
10291
|
-
var FadeIn =
|
|
10560
|
+
var FadeIn = React137__default.forwardRef(
|
|
10292
10561
|
({ delay = 0, duration, children, ...props }, ref) => {
|
|
10293
10562
|
const transition = {
|
|
10294
10563
|
...DEFAULT_TRANSITION,
|
|
@@ -10316,7 +10585,7 @@ var DIRECTION_PRESET_MAP = {
|
|
|
10316
10585
|
left: "slideLeft",
|
|
10317
10586
|
right: "slideRight"
|
|
10318
10587
|
};
|
|
10319
|
-
var SlideIn =
|
|
10588
|
+
var SlideIn = React137__default.forwardRef(
|
|
10320
10589
|
({ direction = "up", delay = 0, duration, children, ...props }, ref) => {
|
|
10321
10590
|
const preset = MOTION_PRESETS[DIRECTION_PRESET_MAP[direction]];
|
|
10322
10591
|
const transition = {
|
|
@@ -10339,7 +10608,7 @@ var SlideIn = React131__default.forwardRef(
|
|
|
10339
10608
|
}
|
|
10340
10609
|
);
|
|
10341
10610
|
SlideIn.displayName = "SlideIn";
|
|
10342
|
-
var ScaleIn =
|
|
10611
|
+
var ScaleIn = React137__default.forwardRef(
|
|
10343
10612
|
({ delay = 0, duration, children, ...props }, ref) => {
|
|
10344
10613
|
const transition = {
|
|
10345
10614
|
...DEFAULT_TRANSITION,
|
|
@@ -10403,16 +10672,16 @@ function Stagger({ staggerDelay = 0.05, preset = "fadeIn", children, className,
|
|
|
10403
10672
|
initial: "hidden",
|
|
10404
10673
|
animate: isInView ? "visible" : "hidden",
|
|
10405
10674
|
className,
|
|
10406
|
-
children:
|
|
10675
|
+
children: React137__default.Children.map(children, (child, i) => /* @__PURE__ */ jsx(motion.div, { variants: itemVariants, children: child }, i))
|
|
10407
10676
|
}
|
|
10408
10677
|
);
|
|
10409
10678
|
}
|
|
10410
|
-
var Morph =
|
|
10679
|
+
var Morph = React137__default.forwardRef(
|
|
10411
10680
|
({ layoutId, children, ...props }, ref) => /* @__PURE__ */ jsx(motion.div, { ref, layoutId, layout: true, ...props, children })
|
|
10412
10681
|
);
|
|
10413
10682
|
Morph.displayName = "Morph";
|
|
10414
10683
|
var rippleCounter = 0;
|
|
10415
|
-
var Ripple =
|
|
10684
|
+
var Ripple = React137__default.forwardRef(
|
|
10416
10685
|
({ color = "currentColor", duration = 0.6, children, style, ...props }, ref) => {
|
|
10417
10686
|
const [ripples, setRipples] = useState([]);
|
|
10418
10687
|
const handlePointerDown = useCallback(
|
|
@@ -10468,7 +10737,7 @@ var Ripple = React131__default.forwardRef(
|
|
|
10468
10737
|
}
|
|
10469
10738
|
);
|
|
10470
10739
|
Ripple.displayName = "Ripple";
|
|
10471
|
-
var Parallax =
|
|
10740
|
+
var Parallax = React137__default.forwardRef(
|
|
10472
10741
|
({ offset = 50, scrollRef, children, style, ...props }, ref) => {
|
|
10473
10742
|
const innerRef = useRef(null);
|
|
10474
10743
|
const resolvedRef = ref ?? innerRef;
|
|
@@ -10497,7 +10766,328 @@ function useLayoutId(key) {
|
|
|
10497
10766
|
function Transition({ show = true, children, mode = "wait" }) {
|
|
10498
10767
|
return /* @__PURE__ */ jsx(AnimatePresence, { mode, children: show ? children : null });
|
|
10499
10768
|
}
|
|
10500
|
-
|
|
10769
|
+
function Checkbox2({
|
|
10770
|
+
checked,
|
|
10771
|
+
onCheckedChange,
|
|
10772
|
+
className
|
|
10773
|
+
}) {
|
|
10774
|
+
return /* @__PURE__ */ jsx(
|
|
10775
|
+
"input",
|
|
10776
|
+
{
|
|
10777
|
+
type: "checkbox",
|
|
10778
|
+
checked: checked === true,
|
|
10779
|
+
ref: (el) => {
|
|
10780
|
+
if (el) el.indeterminate = checked === "indeterminate";
|
|
10781
|
+
},
|
|
10782
|
+
onChange: (e) => onCheckedChange(e.target.checked),
|
|
10783
|
+
className: cn(
|
|
10784
|
+
"h-4 w-4 rounded border border-input accent-primary cursor-pointer",
|
|
10785
|
+
"focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-1",
|
|
10786
|
+
className
|
|
10787
|
+
)
|
|
10788
|
+
}
|
|
10789
|
+
);
|
|
10790
|
+
}
|
|
10791
|
+
function SortIcon({ dir }) {
|
|
10792
|
+
if (dir === "asc") return /* @__PURE__ */ jsx(ArrowUp, { className: "h-3.5 w-3.5 shrink-0" });
|
|
10793
|
+
if (dir === "desc") return /* @__PURE__ */ jsx(ArrowDown, { className: "h-3.5 w-3.5 shrink-0" });
|
|
10794
|
+
return /* @__PURE__ */ jsx(ArrowUpDown, { className: "h-3.5 w-3.5 shrink-0 opacity-30" });
|
|
10795
|
+
}
|
|
10796
|
+
function ColumnVisibilityDropdown({
|
|
10797
|
+
columns,
|
|
10798
|
+
visibility,
|
|
10799
|
+
onVisibilityChange
|
|
10800
|
+
}) {
|
|
10801
|
+
const [open, setOpen] = useState(false);
|
|
10802
|
+
return /* @__PURE__ */ jsxs("div", { className: "relative", children: [
|
|
10803
|
+
/* @__PURE__ */ jsxs(
|
|
10804
|
+
"button",
|
|
10805
|
+
{
|
|
10806
|
+
onClick: () => setOpen((v) => !v),
|
|
10807
|
+
className: cn(
|
|
10808
|
+
"inline-flex items-center gap-1.5 rounded-md border border-border px-2.5 py-1.5 text-xs font-medium",
|
|
10809
|
+
"bg-transparent text-muted-foreground hover:bg-accent hover:text-accent-foreground",
|
|
10810
|
+
"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring",
|
|
10811
|
+
"transition-colors"
|
|
10812
|
+
),
|
|
10813
|
+
children: [
|
|
10814
|
+
/* @__PURE__ */ jsx(Columns3, { className: "h-3.5 w-3.5" }),
|
|
10815
|
+
"Columns",
|
|
10816
|
+
/* @__PURE__ */ jsx(ChevronDown, { className: "h-3 w-3" })
|
|
10817
|
+
]
|
|
10818
|
+
}
|
|
10819
|
+
),
|
|
10820
|
+
open && /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
10821
|
+
/* @__PURE__ */ jsx("div", { className: "fixed inset-0 z-10", onClick: () => setOpen(false) }),
|
|
10822
|
+
/* @__PURE__ */ jsx("div", { className: "absolute right-0 top-full mt-1 z-20 min-w-[140px] rounded-md border border-border bg-popover shadow-lg py-1", children: columns.map((col) => /* @__PURE__ */ jsxs(
|
|
10823
|
+
"label",
|
|
10824
|
+
{
|
|
10825
|
+
className: "flex items-center gap-2 px-3 py-1.5 text-xs text-foreground hover:bg-accent cursor-pointer",
|
|
10826
|
+
children: [
|
|
10827
|
+
/* @__PURE__ */ jsx(
|
|
10828
|
+
"input",
|
|
10829
|
+
{
|
|
10830
|
+
type: "checkbox",
|
|
10831
|
+
className: "h-3.5 w-3.5 accent-primary",
|
|
10832
|
+
checked: visibility[col.id] !== false,
|
|
10833
|
+
onChange: (e) => onVisibilityChange(col.id, e.target.checked)
|
|
10834
|
+
}
|
|
10835
|
+
),
|
|
10836
|
+
col.label
|
|
10837
|
+
]
|
|
10838
|
+
},
|
|
10839
|
+
col.id
|
|
10840
|
+
)) })
|
|
10841
|
+
] })
|
|
10842
|
+
] });
|
|
10843
|
+
}
|
|
10844
|
+
function SkeletonRow({ cols }) {
|
|
10845
|
+
return /* @__PURE__ */ jsx("tr", { className: "border-t border-border", children: Array.from({ length: cols }, (_, i) => /* @__PURE__ */ jsx("td", { className: "px-3 py-2.5", children: /* @__PURE__ */ jsx(
|
|
10846
|
+
"div",
|
|
10847
|
+
{
|
|
10848
|
+
className: "h-4 rounded bg-gradient-to-r from-muted via-muted/50 to-muted bg-[length:400%_100%] animate-[shimmer_2s_ease-in-out_infinite]",
|
|
10849
|
+
style: { width: `${60 + Math.random() * 30}%` }
|
|
10850
|
+
}
|
|
10851
|
+
) }, i)) });
|
|
10852
|
+
}
|
|
10853
|
+
function DataGrid2({
|
|
10854
|
+
columns,
|
|
10855
|
+
data,
|
|
10856
|
+
selectable = false,
|
|
10857
|
+
onSelectionChange,
|
|
10858
|
+
sortable = true,
|
|
10859
|
+
columnVisibility: showColumnVisibility = false,
|
|
10860
|
+
resizable = true,
|
|
10861
|
+
filterable = false,
|
|
10862
|
+
virtual = false,
|
|
10863
|
+
virtualHeight = 480,
|
|
10864
|
+
rowHeight = 40,
|
|
10865
|
+
emptyState,
|
|
10866
|
+
loading = false,
|
|
10867
|
+
skeletonRows = 5,
|
|
10868
|
+
className,
|
|
10869
|
+
onRowClick
|
|
10870
|
+
}) {
|
|
10871
|
+
const [rowSelection, setRowSelection] = useState({});
|
|
10872
|
+
const [sorting, setSorting] = useState([]);
|
|
10873
|
+
const [columnFilters, setColumnFilters] = useState([]);
|
|
10874
|
+
const [colVisibility, setColVisibility] = useState({});
|
|
10875
|
+
const scrollContainerRef = React137__default.useRef(null);
|
|
10876
|
+
const selectionColumn = useMemo(
|
|
10877
|
+
() => ({
|
|
10878
|
+
id: "_select",
|
|
10879
|
+
size: 40,
|
|
10880
|
+
enableResizing: false,
|
|
10881
|
+
enableSorting: false,
|
|
10882
|
+
header: ({ table: table2 }) => /* @__PURE__ */ jsx(
|
|
10883
|
+
Checkbox2,
|
|
10884
|
+
{
|
|
10885
|
+
checked: table2.getIsAllPageRowsSelected() ? true : table2.getIsSomePageRowsSelected() ? "indeterminate" : false,
|
|
10886
|
+
onCheckedChange: (v) => table2.toggleAllPageRowsSelected(v)
|
|
10887
|
+
}
|
|
10888
|
+
),
|
|
10889
|
+
cell: ({ row }) => /* @__PURE__ */ jsx(
|
|
10890
|
+
Checkbox2,
|
|
10891
|
+
{
|
|
10892
|
+
checked: row.getIsSelected(),
|
|
10893
|
+
onCheckedChange: (v) => row.toggleSelected(v)
|
|
10894
|
+
}
|
|
10895
|
+
)
|
|
10896
|
+
}),
|
|
10897
|
+
[]
|
|
10898
|
+
);
|
|
10899
|
+
const allColumns = useMemo(
|
|
10900
|
+
() => selectable ? [selectionColumn, ...columns] : columns,
|
|
10901
|
+
[selectable, selectionColumn, columns]
|
|
10902
|
+
);
|
|
10903
|
+
const table = useReactTable({
|
|
10904
|
+
data,
|
|
10905
|
+
columns: allColumns,
|
|
10906
|
+
columnResizeMode: "onChange",
|
|
10907
|
+
state: {
|
|
10908
|
+
rowSelection,
|
|
10909
|
+
sorting,
|
|
10910
|
+
columnFilters,
|
|
10911
|
+
columnVisibility: colVisibility
|
|
10912
|
+
},
|
|
10913
|
+
onRowSelectionChange: (updater) => {
|
|
10914
|
+
const next = typeof updater === "function" ? updater(rowSelection) : updater;
|
|
10915
|
+
setRowSelection(next);
|
|
10916
|
+
if (onSelectionChange) {
|
|
10917
|
+
const selectedRows = Object.keys(next).filter((k) => next[k]).map((k) => data[Number(k)]).filter(Boolean);
|
|
10918
|
+
onSelectionChange(selectedRows);
|
|
10919
|
+
}
|
|
10920
|
+
},
|
|
10921
|
+
onSortingChange: setSorting,
|
|
10922
|
+
onColumnFiltersChange: setColumnFilters,
|
|
10923
|
+
onColumnVisibilityChange: setColVisibility,
|
|
10924
|
+
getCoreRowModel: getCoreRowModel(),
|
|
10925
|
+
getSortedRowModel: sortable ? getSortedRowModel() : void 0,
|
|
10926
|
+
getFilteredRowModel: filterable ? getFilteredRowModel() : void 0,
|
|
10927
|
+
enableColumnResizing: resizable,
|
|
10928
|
+
enableRowSelection: selectable
|
|
10929
|
+
});
|
|
10930
|
+
const { rows } = table.getRowModel();
|
|
10931
|
+
const virtualizer = useVirtualizer({
|
|
10932
|
+
count: virtual ? rows.length : 0,
|
|
10933
|
+
getScrollElement: () => scrollContainerRef.current,
|
|
10934
|
+
estimateSize: () => rowHeight,
|
|
10935
|
+
overscan: 10
|
|
10936
|
+
});
|
|
10937
|
+
const visibleColumnDefs = table.getAllLeafColumns().filter((c) => c.id !== "_select" && c.getIsVisible());
|
|
10938
|
+
const columnVisibilityItems = visibleColumnDefs.map((c) => ({
|
|
10939
|
+
id: c.id,
|
|
10940
|
+
label: typeof c.columnDef.header === "string" ? c.columnDef.header : c.id
|
|
10941
|
+
}));
|
|
10942
|
+
const renderRows = () => {
|
|
10943
|
+
if (loading) {
|
|
10944
|
+
return Array.from({ length: skeletonRows }, (_, i) => /* @__PURE__ */ jsx(SkeletonRow, { cols: allColumns.length }, i));
|
|
10945
|
+
}
|
|
10946
|
+
if (rows.length === 0) {
|
|
10947
|
+
return /* @__PURE__ */ jsx("tr", { children: /* @__PURE__ */ jsx(
|
|
10948
|
+
"td",
|
|
10949
|
+
{
|
|
10950
|
+
colSpan: allColumns.length,
|
|
10951
|
+
className: "py-16 text-center text-sm text-muted-foreground",
|
|
10952
|
+
children: emptyState ?? "No results."
|
|
10953
|
+
}
|
|
10954
|
+
) });
|
|
10955
|
+
}
|
|
10956
|
+
if (virtual) {
|
|
10957
|
+
const virtualItems = virtualizer.getVirtualItems();
|
|
10958
|
+
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
10959
|
+
virtualItems.length > 0 && /* @__PURE__ */ jsx("tr", { style: { height: virtualItems[0].start }, children: /* @__PURE__ */ jsx("td", { colSpan: allColumns.length }) }),
|
|
10960
|
+
virtualItems.map((vRow) => {
|
|
10961
|
+
const row = rows[vRow.index];
|
|
10962
|
+
return /* @__PURE__ */ jsx(
|
|
10963
|
+
"tr",
|
|
10964
|
+
{
|
|
10965
|
+
"data-index": vRow.index,
|
|
10966
|
+
className: cn(
|
|
10967
|
+
"border-t border-border transition-colors",
|
|
10968
|
+
onRowClick && "cursor-pointer",
|
|
10969
|
+
row.getIsSelected() ? "bg-primary/5" : "hover:bg-accent/40"
|
|
10970
|
+
),
|
|
10971
|
+
onClick: () => onRowClick?.(row.original),
|
|
10972
|
+
children: row.getVisibleCells().map((cell) => /* @__PURE__ */ jsx(
|
|
10973
|
+
"td",
|
|
10974
|
+
{
|
|
10975
|
+
style: { width: cell.column.getSize() },
|
|
10976
|
+
className: "px-3 py-2 text-sm border-r border-border last:border-r-0 truncate max-w-0",
|
|
10977
|
+
children: flexRender(cell.column.columnDef.cell, cell.getContext())
|
|
10978
|
+
},
|
|
10979
|
+
cell.id
|
|
10980
|
+
))
|
|
10981
|
+
},
|
|
10982
|
+
row.id
|
|
10983
|
+
);
|
|
10984
|
+
}),
|
|
10985
|
+
virtualItems.length > 0 && /* @__PURE__ */ jsx(
|
|
10986
|
+
"tr",
|
|
10987
|
+
{
|
|
10988
|
+
style: {
|
|
10989
|
+
height: virtualizer.getTotalSize() - (virtualItems[virtualItems.length - 1]?.end ?? 0)
|
|
10990
|
+
},
|
|
10991
|
+
children: /* @__PURE__ */ jsx("td", { colSpan: allColumns.length })
|
|
10992
|
+
}
|
|
10993
|
+
)
|
|
10994
|
+
] });
|
|
10995
|
+
}
|
|
10996
|
+
return rows.map((row) => /* @__PURE__ */ jsx(
|
|
10997
|
+
"tr",
|
|
10998
|
+
{
|
|
10999
|
+
className: cn(
|
|
11000
|
+
"border-t border-border transition-colors",
|
|
11001
|
+
onRowClick && "cursor-pointer",
|
|
11002
|
+
row.getIsSelected() ? "bg-primary/5" : "hover:bg-accent/40"
|
|
11003
|
+
),
|
|
11004
|
+
onClick: () => onRowClick?.(row.original),
|
|
11005
|
+
children: row.getVisibleCells().map((cell) => /* @__PURE__ */ jsx(
|
|
11006
|
+
"td",
|
|
11007
|
+
{
|
|
11008
|
+
style: { width: cell.column.getSize() },
|
|
11009
|
+
className: "px-3 py-2 text-sm border-r border-border last:border-r-0 truncate max-w-0",
|
|
11010
|
+
children: flexRender(cell.column.columnDef.cell, cell.getContext())
|
|
11011
|
+
},
|
|
11012
|
+
cell.id
|
|
11013
|
+
))
|
|
11014
|
+
},
|
|
11015
|
+
row.id
|
|
11016
|
+
));
|
|
11017
|
+
};
|
|
11018
|
+
return /* @__PURE__ */ jsxs("div", { "data-slot": "data-grid", className: cn("flex flex-col gap-2", className), children: [
|
|
11019
|
+
showColumnVisibility && /* @__PURE__ */ jsx("div", { className: "flex items-center justify-end gap-2", children: /* @__PURE__ */ jsx(
|
|
11020
|
+
ColumnVisibilityDropdown,
|
|
11021
|
+
{
|
|
11022
|
+
columns: columnVisibilityItems,
|
|
11023
|
+
visibility: colVisibility,
|
|
11024
|
+
onVisibilityChange: (id, visible) => setColVisibility((prev) => ({ ...prev, [id]: visible }))
|
|
11025
|
+
}
|
|
11026
|
+
) }),
|
|
11027
|
+
/* @__PURE__ */ jsx(
|
|
11028
|
+
"div",
|
|
11029
|
+
{
|
|
11030
|
+
ref: virtual ? scrollContainerRef : void 0,
|
|
11031
|
+
className: "overflow-auto rounded-md border border-border",
|
|
11032
|
+
style: virtual ? { height: virtualHeight } : void 0,
|
|
11033
|
+
children: /* @__PURE__ */ jsxs(
|
|
11034
|
+
"table",
|
|
11035
|
+
{
|
|
11036
|
+
className: "w-full text-sm",
|
|
11037
|
+
style: { width: table.getCenterTotalSize() },
|
|
11038
|
+
children: [
|
|
11039
|
+
/* @__PURE__ */ jsx("thead", { className: "sticky top-0 z-10 bg-muted/60 backdrop-blur-sm", children: table.getHeaderGroups().map((hg) => /* @__PURE__ */ jsx("tr", { children: hg.headers.map((h) => /* @__PURE__ */ jsxs(
|
|
11040
|
+
"th",
|
|
11041
|
+
{
|
|
11042
|
+
style: { width: h.getSize() },
|
|
11043
|
+
className: "relative px-3 py-2.5 text-left text-xs font-semibold text-muted-foreground uppercase tracking-wider border-r border-border last:border-r-0 whitespace-nowrap",
|
|
11044
|
+
children: [
|
|
11045
|
+
/* @__PURE__ */ jsxs(
|
|
11046
|
+
"div",
|
|
11047
|
+
{
|
|
11048
|
+
className: cn(
|
|
11049
|
+
"flex items-center gap-1.5 select-none",
|
|
11050
|
+
h.column.getCanSort() && "cursor-pointer hover:text-foreground transition-colors"
|
|
11051
|
+
),
|
|
11052
|
+
onClick: h.column.getCanSort() ? h.column.getToggleSortingHandler() : void 0,
|
|
11053
|
+
children: [
|
|
11054
|
+
h.isPlaceholder ? null : flexRender(h.column.columnDef.header, h.getContext()),
|
|
11055
|
+
h.column.getCanSort() && /* @__PURE__ */ jsx(SortIcon, { dir: h.column.getIsSorted() })
|
|
11056
|
+
]
|
|
11057
|
+
}
|
|
11058
|
+
),
|
|
11059
|
+
h.column.getCanResize() && /* @__PURE__ */ jsx(
|
|
11060
|
+
"div",
|
|
11061
|
+
{
|
|
11062
|
+
onMouseDown: h.getResizeHandler(),
|
|
11063
|
+
onTouchStart: h.getResizeHandler(),
|
|
11064
|
+
className: cn(
|
|
11065
|
+
"absolute right-0 top-0 h-full w-1 cursor-col-resize touch-none select-none",
|
|
11066
|
+
"hover:bg-primary/40",
|
|
11067
|
+
h.column.getIsResizing() && "bg-primary/60"
|
|
11068
|
+
)
|
|
11069
|
+
}
|
|
11070
|
+
)
|
|
11071
|
+
]
|
|
11072
|
+
},
|
|
11073
|
+
h.id
|
|
11074
|
+
)) }, hg.id)) }),
|
|
11075
|
+
/* @__PURE__ */ jsx("tbody", { children: renderRows() })
|
|
11076
|
+
]
|
|
11077
|
+
}
|
|
11078
|
+
)
|
|
11079
|
+
}
|
|
11080
|
+
),
|
|
11081
|
+
selectable && Object.keys(rowSelection).length > 0 && /* @__PURE__ */ jsxs("p", { className: "text-xs text-muted-foreground", children: [
|
|
11082
|
+
Object.keys(rowSelection).filter((k) => rowSelection[k]).length,
|
|
11083
|
+
" of",
|
|
11084
|
+
" ",
|
|
11085
|
+
data.length,
|
|
11086
|
+
" row(s) selected"
|
|
11087
|
+
] })
|
|
11088
|
+
] });
|
|
11089
|
+
}
|
|
11090
|
+
var DataList = React137__default.forwardRef(
|
|
10501
11091
|
({ divided = true, bordered = true, className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
10502
11092
|
"ul",
|
|
10503
11093
|
{
|
|
@@ -10514,7 +11104,7 @@ var DataList = React131__default.forwardRef(
|
|
|
10514
11104
|
)
|
|
10515
11105
|
);
|
|
10516
11106
|
DataList.displayName = "DataList";
|
|
10517
|
-
var DataListItem =
|
|
11107
|
+
var DataListItem = React137__default.forwardRef(
|
|
10518
11108
|
({ left, title, description, right, interactive, onSelect, className, children, ...props }, ref) => {
|
|
10519
11109
|
const clickable = interactive || !!onSelect;
|
|
10520
11110
|
return /* @__PURE__ */ jsxs(
|
|
@@ -10574,7 +11164,7 @@ function getWeekDays(date, weekStartsOn) {
|
|
|
10574
11164
|
const start = startOfWeek$1(date, { weekStartsOn });
|
|
10575
11165
|
return Array.from({ length: 7 }, (_, i) => addDays(start, i));
|
|
10576
11166
|
}
|
|
10577
|
-
var EventCalendar =
|
|
11167
|
+
var EventCalendar = React137__default.forwardRef(
|
|
10578
11168
|
({
|
|
10579
11169
|
events,
|
|
10580
11170
|
view: viewProp,
|
|
@@ -10589,20 +11179,20 @@ var EventCalendar = React131__default.forwardRef(
|
|
|
10589
11179
|
className,
|
|
10590
11180
|
...props
|
|
10591
11181
|
}, ref) => {
|
|
10592
|
-
const [internalView, setInternalView] =
|
|
11182
|
+
const [internalView, setInternalView] = React137__default.useState("month");
|
|
10593
11183
|
const view = viewProp ?? internalView;
|
|
10594
|
-
const commitView =
|
|
11184
|
+
const commitView = React137__default.useCallback(
|
|
10595
11185
|
(next) => {
|
|
10596
11186
|
if (viewProp === void 0) setInternalView(next);
|
|
10597
11187
|
onViewChange?.(next);
|
|
10598
11188
|
},
|
|
10599
11189
|
[viewProp, onViewChange]
|
|
10600
11190
|
);
|
|
10601
|
-
const [internalDate, setInternalDate] =
|
|
11191
|
+
const [internalDate, setInternalDate] = React137__default.useState(
|
|
10602
11192
|
() => defaultDate ?? /* @__PURE__ */ new Date()
|
|
10603
11193
|
);
|
|
10604
11194
|
const date = dateProp ?? internalDate;
|
|
10605
|
-
const commitDate =
|
|
11195
|
+
const commitDate = React137__default.useCallback(
|
|
10606
11196
|
(next) => {
|
|
10607
11197
|
if (dateProp === void 0) setInternalDate(next);
|
|
10608
11198
|
onDateChange?.(next);
|
|
@@ -10628,7 +11218,7 @@ var EventCalendar = React131__default.forwardRef(
|
|
|
10628
11218
|
handleToday();
|
|
10629
11219
|
}
|
|
10630
11220
|
};
|
|
10631
|
-
const headerLabel =
|
|
11221
|
+
const headerLabel = React137__default.useMemo(() => {
|
|
10632
11222
|
if (view === "month") return format(date, "MMMM yyyy");
|
|
10633
11223
|
if (view === "week") {
|
|
10634
11224
|
const start = startOfWeek$1(date, { weekStartsOn });
|
|
@@ -10777,11 +11367,11 @@ function MonthView({
|
|
|
10777
11367
|
onEventCreate,
|
|
10778
11368
|
onDayPick
|
|
10779
11369
|
}) {
|
|
10780
|
-
const cells =
|
|
11370
|
+
const cells = React137__default.useMemo(
|
|
10781
11371
|
() => getMonthMatrix(date, weekStartsOn),
|
|
10782
11372
|
[date, weekStartsOn]
|
|
10783
11373
|
);
|
|
10784
|
-
const weekdayLabels =
|
|
11374
|
+
const weekdayLabels = React137__default.useMemo(() => {
|
|
10785
11375
|
const start = startOfWeek$1(/* @__PURE__ */ new Date(), { weekStartsOn });
|
|
10786
11376
|
return Array.from({ length: 7 }, (_, i) => format(addDays(start, i), "EEE"));
|
|
10787
11377
|
}, [weekStartsOn]);
|
|
@@ -10928,7 +11518,7 @@ function HourGrid({
|
|
|
10928
11518
|
onEventCreate,
|
|
10929
11519
|
onEventResize
|
|
10930
11520
|
}) {
|
|
10931
|
-
const hours =
|
|
11521
|
+
const hours = React137__default.useMemo(() => Array.from({ length: 24 }, (_, i) => i), []);
|
|
10932
11522
|
const today = /* @__PURE__ */ new Date();
|
|
10933
11523
|
return /* @__PURE__ */ jsxs(
|
|
10934
11524
|
"div",
|
|
@@ -10982,7 +11572,7 @@ function DayColumn({
|
|
|
10982
11572
|
onEventResize,
|
|
10983
11573
|
showHeader
|
|
10984
11574
|
}) {
|
|
10985
|
-
const bodyRef =
|
|
11575
|
+
const bodyRef = React137__default.useRef(null);
|
|
10986
11576
|
const handleEmptyClick = (e) => {
|
|
10987
11577
|
if (e.target.closest("[data-event-block]")) return;
|
|
10988
11578
|
if (!onEventCreate) return;
|
|
@@ -11063,10 +11653,10 @@ function EventBlock({ event, day, onClick, onResize }) {
|
|
|
11063
11653
|
differenceInMinutes(visibleEnd, visibleStart)
|
|
11064
11654
|
);
|
|
11065
11655
|
const top = startMinutes / 60 * HOUR_ROW_PX;
|
|
11066
|
-
const [resizingDelta, setResizingDelta] =
|
|
11656
|
+
const [resizingDelta, setResizingDelta] = React137__default.useState(0);
|
|
11067
11657
|
const height = durationMinutes / 60 * HOUR_ROW_PX + resizingDelta;
|
|
11068
|
-
const isResizing =
|
|
11069
|
-
const startY =
|
|
11658
|
+
const isResizing = React137__default.useRef(false);
|
|
11659
|
+
const startY = React137__default.useRef(0);
|
|
11070
11660
|
const handleResizePointerDown = (e) => {
|
|
11071
11661
|
if (!onResize) return;
|
|
11072
11662
|
e.preventDefault();
|
|
@@ -11155,7 +11745,7 @@ function WeekView({
|
|
|
11155
11745
|
onEventCreate,
|
|
11156
11746
|
onEventResize
|
|
11157
11747
|
}) {
|
|
11158
|
-
const days =
|
|
11748
|
+
const days = React137__default.useMemo(
|
|
11159
11749
|
() => getWeekDays(date, weekStartsOn),
|
|
11160
11750
|
[date, weekStartsOn]
|
|
11161
11751
|
);
|
|
@@ -11188,7 +11778,7 @@ function DayView({
|
|
|
11188
11778
|
}
|
|
11189
11779
|
) });
|
|
11190
11780
|
}
|
|
11191
|
-
var GridList =
|
|
11781
|
+
var GridList = React137__default.forwardRef(
|
|
11192
11782
|
({ minItemWidth = 240, gap = 1, className, style, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
11193
11783
|
"ul",
|
|
11194
11784
|
{
|
|
@@ -11205,7 +11795,7 @@ var GridList = React131__default.forwardRef(
|
|
|
11205
11795
|
)
|
|
11206
11796
|
);
|
|
11207
11797
|
GridList.displayName = "GridList";
|
|
11208
|
-
var GridListItem =
|
|
11798
|
+
var GridListItem = React137__default.forwardRef(
|
|
11209
11799
|
({ interactive, onSelect, className, ...props }, ref) => {
|
|
11210
11800
|
const clickable = interactive || !!onSelect;
|
|
11211
11801
|
return /* @__PURE__ */ jsx(
|
|
@@ -11276,7 +11866,7 @@ async function extractCroppedDataUrl(image, crop, format3, quality) {
|
|
|
11276
11866
|
const mime = format3 === "jpeg" ? "image/jpeg" : format3 === "webp" ? "image/webp" : "image/png";
|
|
11277
11867
|
return canvas.toDataURL(mime, quality);
|
|
11278
11868
|
}
|
|
11279
|
-
var ImageCrop =
|
|
11869
|
+
var ImageCrop = React137__default.forwardRef(
|
|
11280
11870
|
({
|
|
11281
11871
|
src,
|
|
11282
11872
|
aspect,
|
|
@@ -11291,13 +11881,13 @@ var ImageCrop = React131__default.forwardRef(
|
|
|
11291
11881
|
className,
|
|
11292
11882
|
...props
|
|
11293
11883
|
}, ref) => {
|
|
11294
|
-
const [crop, setCrop] =
|
|
11295
|
-
const imgRef =
|
|
11296
|
-
const timerRef =
|
|
11297
|
-
|
|
11884
|
+
const [crop, setCrop] = React137__default.useState(void 0);
|
|
11885
|
+
const imgRef = React137__default.useRef(null);
|
|
11886
|
+
const timerRef = React137__default.useRef(null);
|
|
11887
|
+
React137__default.useEffect(() => {
|
|
11298
11888
|
setCrop(void 0);
|
|
11299
11889
|
}, [src]);
|
|
11300
|
-
|
|
11890
|
+
React137__default.useEffect(() => {
|
|
11301
11891
|
return () => {
|
|
11302
11892
|
if (timerRef.current) clearTimeout(timerRef.current);
|
|
11303
11893
|
};
|
|
@@ -11522,7 +12112,7 @@ function TreeRow({
|
|
|
11522
12112
|
}
|
|
11523
12113
|
);
|
|
11524
12114
|
}
|
|
11525
|
-
var Tree =
|
|
12115
|
+
var Tree = React137__default.forwardRef(
|
|
11526
12116
|
({
|
|
11527
12117
|
data,
|
|
11528
12118
|
defaultExpandedIds,
|
|
@@ -11538,21 +12128,21 @@ var Tree = React131__default.forwardRef(
|
|
|
11538
12128
|
...props
|
|
11539
12129
|
}, ref) => {
|
|
11540
12130
|
const isControlled = expandedIds !== void 0;
|
|
11541
|
-
const [internalExpanded, setInternalExpanded] =
|
|
12131
|
+
const [internalExpanded, setInternalExpanded] = React137__default.useState(
|
|
11542
12132
|
() => new Set(defaultExpandedIds ?? [])
|
|
11543
12133
|
);
|
|
11544
|
-
const expandedSet =
|
|
12134
|
+
const expandedSet = React137__default.useMemo(
|
|
11545
12135
|
() => isControlled ? new Set(expandedIds) : internalExpanded,
|
|
11546
12136
|
[isControlled, expandedIds, internalExpanded]
|
|
11547
12137
|
);
|
|
11548
|
-
const commitExpanded =
|
|
12138
|
+
const commitExpanded = React137__default.useCallback(
|
|
11549
12139
|
(next) => {
|
|
11550
12140
|
if (!isControlled) setInternalExpanded(next);
|
|
11551
12141
|
onExpandedChange?.(Array.from(next));
|
|
11552
12142
|
},
|
|
11553
12143
|
[isControlled, onExpandedChange]
|
|
11554
12144
|
);
|
|
11555
|
-
const toggle =
|
|
12145
|
+
const toggle = React137__default.useCallback(
|
|
11556
12146
|
(id) => {
|
|
11557
12147
|
const next = new Set(expandedSet);
|
|
11558
12148
|
if (next.has(id)) next.delete(id);
|
|
@@ -11561,7 +12151,7 @@ var Tree = React131__default.forwardRef(
|
|
|
11561
12151
|
},
|
|
11562
12152
|
[expandedSet, commitExpanded]
|
|
11563
12153
|
);
|
|
11564
|
-
const expand =
|
|
12154
|
+
const expand = React137__default.useCallback(
|
|
11565
12155
|
(id) => {
|
|
11566
12156
|
if (expandedSet.has(id)) return;
|
|
11567
12157
|
const next = new Set(expandedSet);
|
|
@@ -11570,7 +12160,7 @@ var Tree = React131__default.forwardRef(
|
|
|
11570
12160
|
},
|
|
11571
12161
|
[expandedSet, commitExpanded]
|
|
11572
12162
|
);
|
|
11573
|
-
const collapse =
|
|
12163
|
+
const collapse = React137__default.useCallback(
|
|
11574
12164
|
(id) => {
|
|
11575
12165
|
if (!expandedSet.has(id)) return;
|
|
11576
12166
|
const next = new Set(expandedSet);
|
|
@@ -11579,27 +12169,27 @@ var Tree = React131__default.forwardRef(
|
|
|
11579
12169
|
},
|
|
11580
12170
|
[expandedSet, commitExpanded]
|
|
11581
12171
|
);
|
|
11582
|
-
const rows =
|
|
12172
|
+
const rows = React137__default.useMemo(
|
|
11583
12173
|
() => flatten(data, expandedSet),
|
|
11584
12174
|
[data, expandedSet]
|
|
11585
12175
|
);
|
|
11586
|
-
const [focusedId, setFocusedId] =
|
|
12176
|
+
const [focusedId, setFocusedId] = React137__default.useState(
|
|
11587
12177
|
() => selectedId ?? data[0]?.id ?? null
|
|
11588
12178
|
);
|
|
11589
|
-
const rowRefs =
|
|
11590
|
-
const registerRef =
|
|
12179
|
+
const rowRefs = React137__default.useRef(/* @__PURE__ */ new Map());
|
|
12180
|
+
const registerRef = React137__default.useCallback(
|
|
11591
12181
|
(id, el) => {
|
|
11592
12182
|
if (el) rowRefs.current.set(id, el);
|
|
11593
12183
|
else rowRefs.current.delete(id);
|
|
11594
12184
|
},
|
|
11595
12185
|
[]
|
|
11596
12186
|
);
|
|
11597
|
-
const moveFocus =
|
|
12187
|
+
const moveFocus = React137__default.useCallback((id) => {
|
|
11598
12188
|
setFocusedId(id);
|
|
11599
12189
|
const el = rowRefs.current.get(id);
|
|
11600
12190
|
el?.focus();
|
|
11601
12191
|
}, []);
|
|
11602
|
-
const onRowKeyDown =
|
|
12192
|
+
const onRowKeyDown = React137__default.useCallback(
|
|
11603
12193
|
(e, row) => {
|
|
11604
12194
|
const idx = rows.findIndex((r) => r.node.id === row.node.id);
|
|
11605
12195
|
if (idx === -1) return;
|
|
@@ -11649,11 +12239,11 @@ var Tree = React131__default.forwardRef(
|
|
|
11649
12239
|
useSensor(PointerSensor, { activationConstraint: { distance: 5 } }),
|
|
11650
12240
|
useSensor(KeyboardSensor)
|
|
11651
12241
|
);
|
|
11652
|
-
const [activeDragId, setActiveDragId] =
|
|
11653
|
-
const handleDragStart =
|
|
12242
|
+
const [activeDragId, setActiveDragId] = React137__default.useState(null);
|
|
12243
|
+
const handleDragStart = React137__default.useCallback((e) => {
|
|
11654
12244
|
setActiveDragId(String(e.active.id));
|
|
11655
12245
|
}, []);
|
|
11656
|
-
const handleDragEnd =
|
|
12246
|
+
const handleDragEnd = React137__default.useCallback(
|
|
11657
12247
|
(e) => {
|
|
11658
12248
|
setActiveDragId(null);
|
|
11659
12249
|
const { active, over } = e;
|
|
@@ -11669,8 +12259,8 @@ var Tree = React131__default.forwardRef(
|
|
|
11669
12259
|
},
|
|
11670
12260
|
[onMove]
|
|
11671
12261
|
);
|
|
11672
|
-
const handleDragCancel =
|
|
11673
|
-
const scrollerRef =
|
|
12262
|
+
const handleDragCancel = React137__default.useCallback(() => setActiveDragId(null), []);
|
|
12263
|
+
const scrollerRef = React137__default.useRef(null);
|
|
11674
12264
|
const virtualizer = useVirtualizer({
|
|
11675
12265
|
count: virtualize ? rows.length : 0,
|
|
11676
12266
|
getScrollElement: () => scrollerRef.current,
|
|
@@ -11772,7 +12362,7 @@ async function exitFs() {
|
|
|
11772
12362
|
if (d.exitFullscreen) return void d.exitFullscreen();
|
|
11773
12363
|
if (d.webkitExitFullscreen) return void d.webkitExitFullscreen();
|
|
11774
12364
|
}
|
|
11775
|
-
var VideoPlayer =
|
|
12365
|
+
var VideoPlayer = React137__default.forwardRef(
|
|
11776
12366
|
({
|
|
11777
12367
|
src,
|
|
11778
12368
|
poster,
|
|
@@ -11789,33 +12379,33 @@ var VideoPlayer = React131__default.forwardRef(
|
|
|
11789
12379
|
muted: mutedProp,
|
|
11790
12380
|
...videoProps
|
|
11791
12381
|
}, ref) => {
|
|
11792
|
-
const containerRef =
|
|
11793
|
-
const videoRef =
|
|
11794
|
-
const hideTimerRef =
|
|
11795
|
-
const [isPlaying, setIsPlaying] =
|
|
11796
|
-
const [hasPlayed, setHasPlayed] =
|
|
11797
|
-
const [currentTime, setCurrentTime] =
|
|
11798
|
-
const [duration, setDuration] =
|
|
11799
|
-
const [buffered, setBuffered] =
|
|
11800
|
-
const [volume, setVolume] =
|
|
11801
|
-
const [isMuted, setIsMuted] =
|
|
11802
|
-
const [isFullscreen, setIsFullscreen] =
|
|
11803
|
-
const [showControls, setShowControls] =
|
|
11804
|
-
|
|
11805
|
-
|
|
12382
|
+
const containerRef = React137__default.useRef(null);
|
|
12383
|
+
const videoRef = React137__default.useRef(null);
|
|
12384
|
+
const hideTimerRef = React137__default.useRef(null);
|
|
12385
|
+
const [isPlaying, setIsPlaying] = React137__default.useState(false);
|
|
12386
|
+
const [hasPlayed, setHasPlayed] = React137__default.useState(Boolean(autoPlay));
|
|
12387
|
+
const [currentTime, setCurrentTime] = React137__default.useState(0);
|
|
12388
|
+
const [duration, setDuration] = React137__default.useState(0);
|
|
12389
|
+
const [buffered, setBuffered] = React137__default.useState(0);
|
|
12390
|
+
const [volume, setVolume] = React137__default.useState(1);
|
|
12391
|
+
const [isMuted, setIsMuted] = React137__default.useState(Boolean(mutedProp ?? autoPlay));
|
|
12392
|
+
const [isFullscreen, setIsFullscreen] = React137__default.useState(false);
|
|
12393
|
+
const [showControls, setShowControls] = React137__default.useState(true);
|
|
12394
|
+
React137__default.useImperativeHandle(ref, () => containerRef.current);
|
|
12395
|
+
React137__default.useEffect(() => {
|
|
11806
12396
|
const v = videoRef.current;
|
|
11807
12397
|
if (!v) return;
|
|
11808
12398
|
v.volume = volume;
|
|
11809
12399
|
v.muted = isMuted;
|
|
11810
12400
|
}, [volume, isMuted]);
|
|
11811
|
-
const showAndScheduleHide =
|
|
12401
|
+
const showAndScheduleHide = React137__default.useCallback(() => {
|
|
11812
12402
|
setShowControls(true);
|
|
11813
12403
|
if (hideTimerRef.current) clearTimeout(hideTimerRef.current);
|
|
11814
12404
|
if (isPlaying) {
|
|
11815
12405
|
hideTimerRef.current = setTimeout(() => setShowControls(false), 3e3);
|
|
11816
12406
|
}
|
|
11817
12407
|
}, [isPlaying]);
|
|
11818
|
-
|
|
12408
|
+
React137__default.useEffect(() => {
|
|
11819
12409
|
if (!isPlaying) {
|
|
11820
12410
|
if (hideTimerRef.current) clearTimeout(hideTimerRef.current);
|
|
11821
12411
|
setShowControls(true);
|
|
@@ -11826,7 +12416,7 @@ var VideoPlayer = React131__default.forwardRef(
|
|
|
11826
12416
|
if (hideTimerRef.current) clearTimeout(hideTimerRef.current);
|
|
11827
12417
|
};
|
|
11828
12418
|
}, [isPlaying]);
|
|
11829
|
-
|
|
12419
|
+
React137__default.useEffect(() => {
|
|
11830
12420
|
const onFsChange = () => setIsFullscreen(isFullscreenActive());
|
|
11831
12421
|
document.addEventListener("fullscreenchange", onFsChange);
|
|
11832
12422
|
document.addEventListener("webkitfullscreenchange", onFsChange);
|
|
@@ -11835,7 +12425,7 @@ var VideoPlayer = React131__default.forwardRef(
|
|
|
11835
12425
|
document.removeEventListener("webkitfullscreenchange", onFsChange);
|
|
11836
12426
|
};
|
|
11837
12427
|
}, []);
|
|
11838
|
-
const togglePlay =
|
|
12428
|
+
const togglePlay = React137__default.useCallback(() => {
|
|
11839
12429
|
const v = videoRef.current;
|
|
11840
12430
|
if (!v) return;
|
|
11841
12431
|
if (v.paused) {
|
|
@@ -11844,22 +12434,22 @@ var VideoPlayer = React131__default.forwardRef(
|
|
|
11844
12434
|
v.pause();
|
|
11845
12435
|
}
|
|
11846
12436
|
}, []);
|
|
11847
|
-
const toggleMute =
|
|
12437
|
+
const toggleMute = React137__default.useCallback(() => {
|
|
11848
12438
|
setIsMuted((m) => !m);
|
|
11849
12439
|
}, []);
|
|
11850
|
-
const toggleFullscreen =
|
|
12440
|
+
const toggleFullscreen = React137__default.useCallback(() => {
|
|
11851
12441
|
const el = containerRef.current;
|
|
11852
12442
|
if (!el) return;
|
|
11853
12443
|
if (isFullscreenActive()) void exitFs();
|
|
11854
12444
|
else void requestFs(el);
|
|
11855
12445
|
}, []);
|
|
11856
|
-
const seekTo =
|
|
12446
|
+
const seekTo = React137__default.useCallback((time) => {
|
|
11857
12447
|
const v = videoRef.current;
|
|
11858
12448
|
if (!v) return;
|
|
11859
12449
|
const clamped = Math.max(0, Math.min(v.duration || 0, time));
|
|
11860
12450
|
v.currentTime = clamped;
|
|
11861
12451
|
}, []);
|
|
11862
|
-
const seekBy =
|
|
12452
|
+
const seekBy = React137__default.useCallback(
|
|
11863
12453
|
(delta) => {
|
|
11864
12454
|
seekTo((videoRef.current?.currentTime ?? 0) + delta);
|
|
11865
12455
|
},
|
|
@@ -12207,7 +12797,7 @@ function Combobox({
|
|
|
12207
12797
|
className,
|
|
12208
12798
|
contentWidth = "trigger"
|
|
12209
12799
|
}) {
|
|
12210
|
-
const [open, setOpen] =
|
|
12800
|
+
const [open, setOpen] = React137__default.useState(false);
|
|
12211
12801
|
const selected = options.find((o) => o.value === value);
|
|
12212
12802
|
return /* @__PURE__ */ jsxs(Popover, { open, onOpenChange: setOpen, children: [
|
|
12213
12803
|
/* @__PURE__ */ jsx(PopoverTrigger, { asChild: true, children: /* @__PURE__ */ jsxs(
|
|
@@ -12301,9 +12891,9 @@ function ColorSchemeSelect({
|
|
|
12301
12891
|
className
|
|
12302
12892
|
}) {
|
|
12303
12893
|
const fallback = defaultValue ?? options[0]?.value ?? "";
|
|
12304
|
-
const [value, setValue] =
|
|
12305
|
-
const didMount =
|
|
12306
|
-
|
|
12894
|
+
const [value, setValue] = React137__default.useState(() => readInitial2(fallback));
|
|
12895
|
+
const didMount = React137__default.useRef(false);
|
|
12896
|
+
React137__default.useEffect(() => {
|
|
12307
12897
|
if (!didMount.current) {
|
|
12308
12898
|
didMount.current = true;
|
|
12309
12899
|
return;
|
|
@@ -12749,6 +13339,6 @@ function SortableNav({ items, onReorder, className }) {
|
|
|
12749
13339
|
return /* @__PURE__ */ jsx(DndContext, { sensors, collisionDetection: closestCenter, onDragEnd: handleDragEnd, children: /* @__PURE__ */ jsx(SortableContext, { items: items.map((i) => i.id), strategy: verticalListSortingStrategy, children: /* @__PURE__ */ jsx("nav", { "data-slot": "sortable-nav", className: cn("space-y-0.5 px-2 py-1", className), children: items.map((item) => /* @__PURE__ */ jsx(SortableNavItemWrapper, { item }, item.id)) }) }) });
|
|
12750
13340
|
}
|
|
12751
13341
|
|
|
12752
|
-
export { Accordion, AccordionContent, AccordionItem, AccordionTrigger, ActivityHeatmap, Alert, AlertDescription, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, AlertTitle, AnimatedGradient, AnimatedNumber, AppShell, AppShellMain, AppShellSidebar, AppShellUserMenu, Sidebar as AppSidebar, AreaChart, ArrayField, AspectRatio, AutoForm, Avatar, AvatarFallback, AvatarGroup, AvatarImage, Badge, Banner, BarChart, BarList, Beacon, BillingStatus, Body, Breadcrumb, BreadcrumbItem, BreadcrumbPage, BreadcrumbSeparator, BulkActions, Button, Calendar, CalendarDayButton, Caption, Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Carousel, CarouselContent, CarouselItem, CarouselNext, CarouselPrevious, ChartContainer, ChartLegend, ChartLegendContent, ChartStyle, ChartTooltip, ChartTooltipContent, ChatDetail, Checkbox, Checklist, ChecklistItem, Code3 as Code, CodeBlock, Collapsible, CollapsibleContent2 as CollapsibleContent, CollapsibleTrigger2 as CollapsibleTrigger, ColorPicker, ColorSchemeSelect, Combobox, Command, CommandBar, CommandBarEmpty, CommandBarGroup, CommandBarItem, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandItem2 as CommandListItem, CommandPalette, CommandPaletteProvider, CommandSeparator, CommandShortcut, Comparison, Container, ContextMenu, ContextMenuCheckboxItem, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuLabel, ContextMenuPortal, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuSeparator, ContextMenuShortcut, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger, DEFAULT_THEME_OPTIONS, DEFAULT_TRANSITION, DataGrid, DataList, DataListItem, DataTable, DataTableColumnHeader, DataTablePagination, DataTableToolbar, DatePicker, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DottedBackground, Drawer, DrawerClose, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerOverlay, DrawerPortal, DrawerTitle, DrawerTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, EmptyState, EmptyStateIcon, EventCalendar, FadeIn, FeedbackModal, Field, FieldDescription, FieldError, FieldLabel, FileCards, FileUpload, FileUploadPreview, FilesList, FilterBadge, FilterItem, Filters, FloatingActionButton, FloatingLabelInput, FloatingThemePicker, FormControl, FormDescription, FormField, FormItem, FormLabel, FormMessage, Gantt, GradientBackground, GradientHeading, GridList, GridListItem, HStack, Heading, Heatmap, HelpSheet, HeroShaderA, HotkeyBadge, Hotkeys, HotkeysProvider, HoverCard, HoverCardContent, HoverCardTrigger, IconBadge, ImageCrop, Input, InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot, IntegrationCard, IntroDisclosure, InviteModal, Kanban, KanbanCard, KanbanColumn, Label3 as Label, LineChart, LoadingOverlay, LogoCarousel, MOTION_PRESETS, ManageTagsModal, Marquee, Menubar, MenubarCheckboxItem, MenubarContent, MenubarGroup, MenubarItem, MenubarLabel, MenubarMenu, MenubarPortal, MenubarRadioGroup, MenubarRadioItem, MenubarSeparator, MenubarShortcut, MenubarSub, MenubarSubContent, MenubarSubTrigger, MenubarTrigger, MessagesCard, MetricCard, MetricCardWithButton, MetricCardWithIcon, MobileSidebarTrigger, Morph, Navbar, NavbarBrand, NavbarContent, NavbarItem, NavigationMenu, NavigationMenuContent, NavigationMenuIndicator, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuTrigger, NavigationMenuViewport, NoiseBackground, NotificationSettings, ObjectField, OrgMenu, Page, PageActions, PageBody, PageContainer, PageDescription, PageHeader, PageLayout, PageMain, PageTitle, Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious, PaletteSwatches, Parallax, PasswordInput, Persona, Popover, PopoverAnchor, PopoverContent, PopoverTrigger, Progress, PropertyItem, PropertyList, QrCode, RadioGroup4 as RadioGroup, RadioGroupItem, Rating, ResizableHandle, ResizablePanel, ResizablePanelGroup, ResizeBox, ResizeHandle, Reveal, RichEditor, Ripple, RolesMenu, ScaleIn, ScrollArea, ScrollBar, ScrollHeader, SearchInput, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectUsersModal, SelectValue, Separator6 as Separator, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetOverlay, SheetPortal, SheetTitle, SheetTrigger, AppShell2 as Shell, Sidebar2 as Sidebar, SidebarContent, SidebarFooter2 as SidebarFooter, SidebarGroup, SidebarGroupLabel, SidebarHeader2 as SidebarHeader, SidebarItem2 as SidebarItem, SidebarLayoutDashboard, SidebarLayoutGroups, SidebarLayoutMinimal, SidebarLayoutSearch, SidebarLayoutUser, SidebarResizer, SidebarSeparator2 as SidebarSeparator, Skeleton, SlideIn, Slider, SortableNav, SortableTaskList, Sparkline, Spinner, SplitPage, SplitPageDetail, SplitPageList, Stack, StackedLayoutBranded, StackedLayoutTabs, Stagger, Stat, StatGroup, StepForm, StepFormNavigation, StepFormStep, Stepper, StepperStep, StructuredList, StructuredListItem, StructuredListSection, Switch, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tabs, TabsContent, TabsList, TabsTrigger, Tags, TaskCard, TaskCardWithLabels, TextReveal, Textarea, TextureCard, TextureCardDescription, TextureCardHeader, TextureCardTitle, ThemeSwitch, Timeline, TimelineConnector, TimelineContent, TimelineItem, Toaster, Toggle, ToggleButton, ToggleButtonGroup, ToggleGroup, ToggleGroupItem, Tooltip2 as Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, Tour, TourStep, Transition, Tree, Typewriter, UserMenu, VStack, VideoPlayer, WorkspaceMembers, WorkspacesMenu, badgeVariants, buttonVariants, cn, navigationMenuTriggerStyle, toastFn as toast, toastEmitter, toggleVariants, useAppShell, useCommandBar, useCommandPalette, useHotkeys, useLayoutId, useSidebar, useTour };
|
|
13342
|
+
export { Accordion, AccordionContent, AccordionItem, AccordionTrigger, ActivityHeatmap, DataGrid2 as AdvancedDataGrid, Alert, AlertDescription, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, AlertTitle, AnimatedGradient, AnimatedNumber, AppShell, AppShellMain, AppShellSidebar, AppShellUserMenu, Sidebar as AppSidebar, AreaChart, ArrayField, AspectRatio, AutoForm, Avatar, AvatarFallback, AvatarGroup, AvatarImage, Badge, Banner, BarChart, BarList, Beacon, BillingStatus, Body, Breadcrumb, BreadcrumbItem, BreadcrumbPage, BreadcrumbSeparator, BulkActions, Button, Calendar, CalendarDayButton, Caption, Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Carousel, CarouselContent, CarouselItem, CarouselNext, CarouselPrevious, CartLineItem, ChartContainer, ChartLegend, ChartLegendContent, ChartStyle, ChartTooltip, ChartTooltipContent, ChatDetail, Checkbox, Checklist, ChecklistItem, Code3 as Code, CodeBlock, Collapsible, CollapsibleContent2 as CollapsibleContent, CollapsibleTrigger2 as CollapsibleTrigger, ColorPicker, ColorSchemeSelect, Combobox, Command, CommandBar, CommandBarEmpty, CommandBarGroup, CommandBarItem, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandItem2 as CommandListItem, CommandPalette, CommandPaletteProvider, CommandSeparator, CommandShortcut, Comparison, Container, ContextMenu, ContextMenuCheckboxItem, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuLabel, ContextMenuPortal, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuSeparator, ContextMenuShortcut, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger, DEFAULT_THEME_OPTIONS, DEFAULT_TRANSITION, DataGrid, DataList, DataListItem, DataTable, DataTableColumnHeader, DataTablePagination, DataTableToolbar, DatePicker, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DottedBackground, Drawer, DrawerClose, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerOverlay, DrawerPortal, DrawerTitle, DrawerTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, EmptyCart, EmptyState, EmptyStateIcon, EventCalendar, FadeIn, FeedbackModal, Field, FieldDescription, FieldError, FieldLabel, FileCards, FileUpload, FileUploadPreview, FilesList, FilterBadge, FilterItem, Filters, FloatingActionButton, FloatingLabelInput, FloatingThemePicker, FormControl, FormDescription, FormField, FormItem, FormLabel, FormMessage, Gantt, GradientBackground, GradientHeading, GridList, GridListItem, HStack, Heading, Heatmap, HelpSheet, HeroShaderA, HotkeyBadge, Hotkeys, HotkeysProvider, HoverCard, HoverCardContent, HoverCardTrigger, IconBadge, IconButton, ImageCrop, Input, InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot, IntegrationCard, IntroDisclosure, InviteModal, Kanban, KanbanCard, KanbanColumn, Label3 as Label, LineChart, LoadingOverlay, LogoCarousel, MOTION_PRESETS, ManageTagsModal, Marquee, Menubar, MenubarCheckboxItem, MenubarContent, MenubarGroup, MenubarItem, MenubarLabel, MenubarMenu, MenubarPortal, MenubarRadioGroup, MenubarRadioItem, MenubarSeparator, MenubarShortcut, MenubarSub, MenubarSubContent, MenubarSubTrigger, MenubarTrigger, MessagesCard, MetricCard, MetricCardWithButton, MetricCardWithIcon, MobileSidebarTrigger, Morph, Navbar, NavbarBrand, NavbarContent, NavbarItem, NavigationMenu, NavigationMenuContent, NavigationMenuIndicator, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuTrigger, NavigationMenuViewport, NoiseBackground, NotificationSettings, ObjectField, OrgMenu, Page, PageActions, PageBody, PageContainer, PageDescription, PageHeader, PageLayout, PageMain, PageTitle, Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious, PaletteSwatches, Parallax, PasswordInput, Persona, Popover, PopoverAnchor, PopoverContent, PopoverTrigger, PriceTag, Progress, PropertyItem, PropertyList, QrCode, QuantityStepper, RadioGroup4 as RadioGroup, RadioGroupItem, Rating, ResizableHandle, ResizablePanel, ResizablePanelGroup, ResizeBox, ResizeHandle, Reveal, RichEditor, Ripple, RolesMenu, ScaleIn, ScrollArea, ScrollBar, ScrollHeader, SearchInput, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectUsersModal, SelectValue, Separator6 as Separator, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetOverlay, SheetPortal, SheetTitle, SheetTrigger, AppShell2 as Shell, Sidebar2 as Sidebar, SidebarContent, SidebarFooter2 as SidebarFooter, SidebarGroup, SidebarGroupLabel, SidebarHeader2 as SidebarHeader, SidebarItem2 as SidebarItem, SidebarLayoutDashboard, SidebarLayoutGroups, SidebarLayoutMinimal, SidebarLayoutSearch, SidebarLayoutUser, SidebarResizer, SidebarSeparator2 as SidebarSeparator, Skeleton, SlideIn, Slider, SortableNav, SortableTaskList, Sparkline, Spinner, SplitPage, SplitPageDetail, SplitPageList, Stack, StackedLayoutBranded, StackedLayoutTabs, Stagger, Stat, StatGroup, StepForm, StepFormNavigation, StepFormStep, Stepper, StepperStep, StructuredList, StructuredListItem, StructuredListSection, Switch, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tabs, TabsContent, TabsList, TabsTrigger, Tags, TaskCard, TaskCardWithLabels, TextReveal, Textarea, TextureCard, TextureCardDescription, TextureCardHeader, TextureCardTitle, ThemeSwitch, Timeline, TimelineConnector, TimelineContent, TimelineItem, Toaster, Toggle, ToggleButton, ToggleButtonGroup, ToggleGroup, ToggleGroupItem, Tooltip2 as Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, Tour, TourStep, Transition, Tree, Typewriter, UserMenu, VStack, VariantPicker, VideoPlayer, WorkspaceMembers, WorkspacesMenu, badgeVariants, buttonVariants, cn, navigationMenuTriggerStyle, toastFn as toast, toastEmitter, toggleVariants, useAppShell, useCommandBar, useCommandPalette, useHotkeys, useLayoutId, useSidebar, useTour };
|
|
12753
13343
|
//# sourceMappingURL=index.mjs.map
|
|
12754
13344
|
//# sourceMappingURL=index.mjs.map
|