@otfdashkit/ui 0.1.2 → 0.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +775 -539
- package/dist/index.mjs +639 -408
- package/package.json +1 -1
- package/src/index.ts +5 -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.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
var clsx = require('clsx');
|
|
4
4
|
var tailwindMerge = require('tailwind-merge');
|
|
5
|
-
var
|
|
5
|
+
var React136 = require('react');
|
|
6
6
|
var AccordionPrimitive = require('@radix-ui/react-accordion');
|
|
7
7
|
var lucideReact = require('lucide-react');
|
|
8
8
|
var jsxRuntime = require('react/jsx-runtime');
|
|
@@ -84,7 +84,7 @@ function _interopNamespace(e) {
|
|
|
84
84
|
return Object.freeze(n);
|
|
85
85
|
}
|
|
86
86
|
|
|
87
|
-
var
|
|
87
|
+
var React136__namespace = /*#__PURE__*/_interopNamespace(React136);
|
|
88
88
|
var AccordionPrimitive__namespace = /*#__PURE__*/_interopNamespace(AccordionPrimitive);
|
|
89
89
|
var AlertDialogPrimitive__namespace = /*#__PURE__*/_interopNamespace(AlertDialogPrimitive);
|
|
90
90
|
var AspectRatioPrimitive__namespace = /*#__PURE__*/_interopNamespace(AspectRatioPrimitive);
|
|
@@ -124,7 +124,7 @@ function cn(...inputs) {
|
|
|
124
124
|
return tailwindMerge.twMerge(clsx.clsx(inputs));
|
|
125
125
|
}
|
|
126
126
|
var Accordion = AccordionPrimitive__namespace.Root;
|
|
127
|
-
var AccordionItem =
|
|
127
|
+
var AccordionItem = React136__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
128
128
|
AccordionPrimitive__namespace.Item,
|
|
129
129
|
{
|
|
130
130
|
ref,
|
|
@@ -133,7 +133,7 @@ var AccordionItem = React131__namespace.forwardRef(({ className, ...props }, ref
|
|
|
133
133
|
}
|
|
134
134
|
));
|
|
135
135
|
AccordionItem.displayName = "AccordionItem";
|
|
136
|
-
var AccordionTrigger =
|
|
136
|
+
var AccordionTrigger = React136__namespace.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(AccordionPrimitive__namespace.Header, { className: "flex", children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
137
137
|
AccordionPrimitive__namespace.Trigger,
|
|
138
138
|
{
|
|
139
139
|
ref,
|
|
@@ -149,7 +149,7 @@ var AccordionTrigger = React131__namespace.forwardRef(({ className, children, ..
|
|
|
149
149
|
}
|
|
150
150
|
) }));
|
|
151
151
|
AccordionTrigger.displayName = AccordionPrimitive__namespace.Trigger.displayName;
|
|
152
|
-
var AccordionContent =
|
|
152
|
+
var AccordionContent = React136__namespace.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
153
153
|
AccordionPrimitive__namespace.Content,
|
|
154
154
|
{
|
|
155
155
|
ref,
|
|
@@ -181,7 +181,7 @@ var buttonVariants = classVarianceAuthority.cva(
|
|
|
181
181
|
defaultVariants: { variant: "default", size: "default" }
|
|
182
182
|
}
|
|
183
183
|
);
|
|
184
|
-
var Button =
|
|
184
|
+
var Button = React136__namespace.default.forwardRef(
|
|
185
185
|
({ className, variant, size, asChild = false, ...props }, ref) => {
|
|
186
186
|
const Comp = asChild ? reactSlot.Slot : "button";
|
|
187
187
|
return /* @__PURE__ */ jsxRuntime.jsx(Comp, { className: cn(buttonVariants({ variant, size }), className), ref, ...props });
|
|
@@ -191,7 +191,7 @@ Button.displayName = "Button";
|
|
|
191
191
|
var AlertDialog = AlertDialogPrimitive__namespace.Root;
|
|
192
192
|
var AlertDialogTrigger = AlertDialogPrimitive__namespace.Trigger;
|
|
193
193
|
var AlertDialogPortal = AlertDialogPrimitive__namespace.Portal;
|
|
194
|
-
var AlertDialogOverlay =
|
|
194
|
+
var AlertDialogOverlay = React136__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
195
195
|
AlertDialogPrimitive__namespace.Overlay,
|
|
196
196
|
{
|
|
197
197
|
className: cn(
|
|
@@ -203,7 +203,7 @@ var AlertDialogOverlay = React131__namespace.forwardRef(({ className, ...props }
|
|
|
203
203
|
}
|
|
204
204
|
));
|
|
205
205
|
AlertDialogOverlay.displayName = AlertDialogPrimitive__namespace.Overlay.displayName;
|
|
206
|
-
var AlertDialogContent =
|
|
206
|
+
var AlertDialogContent = React136__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(AlertDialogPortal, { children: [
|
|
207
207
|
/* @__PURE__ */ jsxRuntime.jsx(AlertDialogOverlay, {}),
|
|
208
208
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
209
209
|
AlertDialogPrimitive__namespace.Content,
|
|
@@ -246,7 +246,7 @@ var AlertDialogFooter = ({
|
|
|
246
246
|
}
|
|
247
247
|
);
|
|
248
248
|
AlertDialogFooter.displayName = "AlertDialogFooter";
|
|
249
|
-
var AlertDialogTitle =
|
|
249
|
+
var AlertDialogTitle = React136__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
250
250
|
AlertDialogPrimitive__namespace.Title,
|
|
251
251
|
{
|
|
252
252
|
ref,
|
|
@@ -255,7 +255,7 @@ var AlertDialogTitle = React131__namespace.forwardRef(({ className, ...props },
|
|
|
255
255
|
}
|
|
256
256
|
));
|
|
257
257
|
AlertDialogTitle.displayName = AlertDialogPrimitive__namespace.Title.displayName;
|
|
258
|
-
var AlertDialogDescription =
|
|
258
|
+
var AlertDialogDescription = React136__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
259
259
|
AlertDialogPrimitive__namespace.Description,
|
|
260
260
|
{
|
|
261
261
|
ref,
|
|
@@ -264,7 +264,7 @@ var AlertDialogDescription = React131__namespace.forwardRef(({ className, ...pro
|
|
|
264
264
|
}
|
|
265
265
|
));
|
|
266
266
|
AlertDialogDescription.displayName = AlertDialogPrimitive__namespace.Description.displayName;
|
|
267
|
-
var AlertDialogAction =
|
|
267
|
+
var AlertDialogAction = React136__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
268
268
|
AlertDialogPrimitive__namespace.Action,
|
|
269
269
|
{
|
|
270
270
|
ref,
|
|
@@ -273,7 +273,7 @@ var AlertDialogAction = React131__namespace.forwardRef(({ className, ...props },
|
|
|
273
273
|
}
|
|
274
274
|
));
|
|
275
275
|
AlertDialogAction.displayName = AlertDialogPrimitive__namespace.Action.displayName;
|
|
276
|
-
var AlertDialogCancel =
|
|
276
|
+
var AlertDialogCancel = React136__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
277
277
|
AlertDialogPrimitive__namespace.Cancel,
|
|
278
278
|
{
|
|
279
279
|
ref,
|
|
@@ -300,7 +300,7 @@ var alertVariants = classVarianceAuthority.cva(
|
|
|
300
300
|
}
|
|
301
301
|
}
|
|
302
302
|
);
|
|
303
|
-
var Alert =
|
|
303
|
+
var Alert = React136__namespace.forwardRef(({ className, variant, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
304
304
|
"div",
|
|
305
305
|
{
|
|
306
306
|
ref,
|
|
@@ -310,7 +310,7 @@ var Alert = React131__namespace.forwardRef(({ className, variant, ...props }, re
|
|
|
310
310
|
}
|
|
311
311
|
));
|
|
312
312
|
Alert.displayName = "Alert";
|
|
313
|
-
var AlertTitle =
|
|
313
|
+
var AlertTitle = React136__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
314
314
|
"h5",
|
|
315
315
|
{
|
|
316
316
|
ref,
|
|
@@ -319,7 +319,7 @@ var AlertTitle = React131__namespace.forwardRef(({ className, ...props }, ref) =
|
|
|
319
319
|
}
|
|
320
320
|
));
|
|
321
321
|
AlertTitle.displayName = "AlertTitle";
|
|
322
|
-
var AlertDescription =
|
|
322
|
+
var AlertDescription = React136__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
323
323
|
"div",
|
|
324
324
|
{
|
|
325
325
|
ref,
|
|
@@ -329,7 +329,7 @@ var AlertDescription = React131__namespace.forwardRef(({ className, ...props },
|
|
|
329
329
|
));
|
|
330
330
|
AlertDescription.displayName = "AlertDescription";
|
|
331
331
|
var AspectRatio = AspectRatioPrimitive__namespace.Root;
|
|
332
|
-
var Avatar =
|
|
332
|
+
var Avatar = React136__namespace.default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
333
333
|
AvatarPrimitive__namespace.Root,
|
|
334
334
|
{
|
|
335
335
|
ref,
|
|
@@ -338,9 +338,9 @@ var Avatar = React131__namespace.default.forwardRef(({ className, ...props }, re
|
|
|
338
338
|
}
|
|
339
339
|
));
|
|
340
340
|
Avatar.displayName = AvatarPrimitive__namespace.Root.displayName;
|
|
341
|
-
var AvatarImage =
|
|
341
|
+
var AvatarImage = React136__namespace.default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(AvatarPrimitive__namespace.Image, { ref, className: cn("aspect-square h-full w-full object-cover", className), ...props }));
|
|
342
342
|
AvatarImage.displayName = AvatarPrimitive__namespace.Image.displayName;
|
|
343
|
-
var AvatarFallback =
|
|
343
|
+
var AvatarFallback = React136__namespace.default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
344
344
|
AvatarPrimitive__namespace.Fallback,
|
|
345
345
|
{
|
|
346
346
|
ref,
|
|
@@ -349,15 +349,15 @@ var AvatarFallback = React131__namespace.default.forwardRef(({ className, ...pro
|
|
|
349
349
|
}
|
|
350
350
|
));
|
|
351
351
|
AvatarFallback.displayName = AvatarPrimitive__namespace.Fallback.displayName;
|
|
352
|
-
var AvatarGroup =
|
|
352
|
+
var AvatarGroup = React136__namespace.default.forwardRef(
|
|
353
353
|
({ className, max = 4, size = 32, spacing, renderOverflow, children, ...props }, ref) => {
|
|
354
|
-
const items =
|
|
354
|
+
const items = React136__namespace.default.Children.toArray(children).filter(React136__namespace.default.isValidElement);
|
|
355
355
|
const overlap = spacing ?? Math.round(size / 3);
|
|
356
356
|
const visible = items.slice(0, max);
|
|
357
357
|
const remaining = Math.max(0, items.length - max);
|
|
358
358
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { ref, className: cn("flex items-center", className), "data-slot": "avatar-group", ...props, children: [
|
|
359
359
|
visible.map(
|
|
360
|
-
(child, i) =>
|
|
360
|
+
(child, i) => React136__namespace.default.cloneElement(child, {
|
|
361
361
|
key: child.key ?? i,
|
|
362
362
|
style: {
|
|
363
363
|
width: size,
|
|
@@ -563,8 +563,8 @@ function CalendarDayButton({
|
|
|
563
563
|
...props
|
|
564
564
|
}) {
|
|
565
565
|
const defaultClassNames = reactDayPicker.getDefaultClassNames();
|
|
566
|
-
const ref =
|
|
567
|
-
|
|
566
|
+
const ref = React136__namespace.useRef(null);
|
|
567
|
+
React136__namespace.useEffect(() => {
|
|
568
568
|
if (modifiers.focused) ref.current?.focus();
|
|
569
569
|
}, [modifiers.focused]);
|
|
570
570
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -587,7 +587,7 @@ function CalendarDayButton({
|
|
|
587
587
|
}
|
|
588
588
|
);
|
|
589
589
|
}
|
|
590
|
-
var Card =
|
|
590
|
+
var Card = React136__namespace.default.forwardRef(
|
|
591
591
|
({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
592
592
|
"div",
|
|
593
593
|
{
|
|
@@ -598,35 +598,35 @@ var Card = React131__namespace.default.forwardRef(
|
|
|
598
598
|
)
|
|
599
599
|
);
|
|
600
600
|
Card.displayName = "Card";
|
|
601
|
-
var CardHeader =
|
|
601
|
+
var CardHeader = React136__namespace.default.forwardRef(
|
|
602
602
|
({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx("div", { ref, className: cn("flex flex-col space-y-1.5 p-6", className), ...props })
|
|
603
603
|
);
|
|
604
604
|
CardHeader.displayName = "CardHeader";
|
|
605
|
-
var CardTitle =
|
|
605
|
+
var CardTitle = React136__namespace.default.forwardRef(
|
|
606
606
|
({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx("div", { ref, className: cn("font-semibold leading-none tracking-tight", className), ...props })
|
|
607
607
|
);
|
|
608
608
|
CardTitle.displayName = "CardTitle";
|
|
609
|
-
var CardDescription =
|
|
609
|
+
var CardDescription = React136__namespace.default.forwardRef(
|
|
610
610
|
({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx("div", { ref, className: cn("text-sm text-muted-foreground", className), ...props })
|
|
611
611
|
);
|
|
612
612
|
CardDescription.displayName = "CardDescription";
|
|
613
|
-
var CardContent =
|
|
613
|
+
var CardContent = React136__namespace.default.forwardRef(
|
|
614
614
|
({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx("div", { ref, className: cn("p-6 pt-0", className), ...props })
|
|
615
615
|
);
|
|
616
616
|
CardContent.displayName = "CardContent";
|
|
617
|
-
var CardFooter =
|
|
617
|
+
var CardFooter = React136__namespace.default.forwardRef(
|
|
618
618
|
({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx("div", { ref, className: cn("flex items-center p-6 pt-0", className), ...props })
|
|
619
619
|
);
|
|
620
620
|
CardFooter.displayName = "CardFooter";
|
|
621
|
-
var CarouselContext =
|
|
621
|
+
var CarouselContext = React136__namespace.createContext(null);
|
|
622
622
|
function useCarousel() {
|
|
623
|
-
const context =
|
|
623
|
+
const context = React136__namespace.useContext(CarouselContext);
|
|
624
624
|
if (!context) {
|
|
625
625
|
throw new Error("useCarousel must be used within a <Carousel />");
|
|
626
626
|
}
|
|
627
627
|
return context;
|
|
628
628
|
}
|
|
629
|
-
var Carousel =
|
|
629
|
+
var Carousel = React136__namespace.forwardRef(
|
|
630
630
|
({
|
|
631
631
|
orientation = "horizontal",
|
|
632
632
|
opts,
|
|
@@ -643,22 +643,22 @@ var Carousel = React131__namespace.forwardRef(
|
|
|
643
643
|
},
|
|
644
644
|
plugins
|
|
645
645
|
);
|
|
646
|
-
const [canScrollPrev, setCanScrollPrev] =
|
|
647
|
-
const [canScrollNext, setCanScrollNext] =
|
|
648
|
-
const onSelect =
|
|
646
|
+
const [canScrollPrev, setCanScrollPrev] = React136__namespace.useState(false);
|
|
647
|
+
const [canScrollNext, setCanScrollNext] = React136__namespace.useState(false);
|
|
648
|
+
const onSelect = React136__namespace.useCallback((api2) => {
|
|
649
649
|
if (!api2) {
|
|
650
650
|
return;
|
|
651
651
|
}
|
|
652
652
|
setCanScrollPrev(api2.canScrollPrev());
|
|
653
653
|
setCanScrollNext(api2.canScrollNext());
|
|
654
654
|
}, []);
|
|
655
|
-
const scrollPrev =
|
|
655
|
+
const scrollPrev = React136__namespace.useCallback(() => {
|
|
656
656
|
api?.scrollPrev();
|
|
657
657
|
}, [api]);
|
|
658
|
-
const scrollNext =
|
|
658
|
+
const scrollNext = React136__namespace.useCallback(() => {
|
|
659
659
|
api?.scrollNext();
|
|
660
660
|
}, [api]);
|
|
661
|
-
const handleKeyDown =
|
|
661
|
+
const handleKeyDown = React136__namespace.useCallback(
|
|
662
662
|
(event) => {
|
|
663
663
|
if (event.key === "ArrowLeft") {
|
|
664
664
|
event.preventDefault();
|
|
@@ -670,13 +670,13 @@ var Carousel = React131__namespace.forwardRef(
|
|
|
670
670
|
},
|
|
671
671
|
[scrollPrev, scrollNext]
|
|
672
672
|
);
|
|
673
|
-
|
|
673
|
+
React136__namespace.useEffect(() => {
|
|
674
674
|
if (!api || !setApi) {
|
|
675
675
|
return;
|
|
676
676
|
}
|
|
677
677
|
setApi(api);
|
|
678
678
|
}, [api, setApi]);
|
|
679
|
-
|
|
679
|
+
React136__namespace.useEffect(() => {
|
|
680
680
|
if (!api) {
|
|
681
681
|
return;
|
|
682
682
|
}
|
|
@@ -717,7 +717,7 @@ var Carousel = React131__namespace.forwardRef(
|
|
|
717
717
|
}
|
|
718
718
|
);
|
|
719
719
|
Carousel.displayName = "Carousel";
|
|
720
|
-
var CarouselContent =
|
|
720
|
+
var CarouselContent = React136__namespace.forwardRef(({ className, ...props }, ref) => {
|
|
721
721
|
const { carouselRef, orientation } = useCarousel();
|
|
722
722
|
return /* @__PURE__ */ jsxRuntime.jsx("div", { ref: carouselRef, className: "overflow-hidden", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
723
723
|
"div",
|
|
@@ -733,7 +733,7 @@ var CarouselContent = React131__namespace.forwardRef(({ className, ...props }, r
|
|
|
733
733
|
) });
|
|
734
734
|
});
|
|
735
735
|
CarouselContent.displayName = "CarouselContent";
|
|
736
|
-
var CarouselItem =
|
|
736
|
+
var CarouselItem = React136__namespace.forwardRef(({ className, ...props }, ref) => {
|
|
737
737
|
const { orientation } = useCarousel();
|
|
738
738
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
739
739
|
"div",
|
|
@@ -751,7 +751,7 @@ var CarouselItem = React131__namespace.forwardRef(({ className, ...props }, ref)
|
|
|
751
751
|
);
|
|
752
752
|
});
|
|
753
753
|
CarouselItem.displayName = "CarouselItem";
|
|
754
|
-
var CarouselPrevious =
|
|
754
|
+
var CarouselPrevious = React136__namespace.forwardRef(({ className, variant = "outline", size = "icon", ...props }, ref) => {
|
|
755
755
|
const { orientation, scrollPrev, canScrollPrev } = useCarousel();
|
|
756
756
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
757
757
|
Button,
|
|
@@ -775,7 +775,7 @@ var CarouselPrevious = React131__namespace.forwardRef(({ className, variant = "o
|
|
|
775
775
|
);
|
|
776
776
|
});
|
|
777
777
|
CarouselPrevious.displayName = "CarouselPrevious";
|
|
778
|
-
var CarouselNext =
|
|
778
|
+
var CarouselNext = React136__namespace.forwardRef(({ className, variant = "outline", size = "icon", ...props }, ref) => {
|
|
779
779
|
const { orientation, scrollNext, canScrollNext } = useCarousel();
|
|
780
780
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
781
781
|
Button,
|
|
@@ -799,17 +799,173 @@ var CarouselNext = React131__namespace.forwardRef(({ className, variant = "outli
|
|
|
799
799
|
);
|
|
800
800
|
});
|
|
801
801
|
CarouselNext.displayName = "CarouselNext";
|
|
802
|
+
var SIZE = {
|
|
803
|
+
sm: { price: "text-sm", compare: "text-xs" },
|
|
804
|
+
md: { price: "text-lg", compare: "text-sm" },
|
|
805
|
+
lg: { price: "text-2xl", compare: "text-base" }
|
|
806
|
+
};
|
|
807
|
+
function formatMoney(minor, currency, locale) {
|
|
808
|
+
return new Intl.NumberFormat(locale, { style: "currency", currency }).format(minor / 100);
|
|
809
|
+
}
|
|
810
|
+
var PriceTag = React136__namespace.default.forwardRef(
|
|
811
|
+
({ amount, compareAt, currency = "USD", locale = "en-US", size = "md", showDiscount = true, className, ...props }, ref) => {
|
|
812
|
+
const onSale = compareAt !== void 0 && compareAt > amount;
|
|
813
|
+
const pct = onSale ? Math.round((1 - amount / compareAt) * 100) : 0;
|
|
814
|
+
const s = SIZE[size];
|
|
815
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("span", { ref, className: cn("inline-flex items-baseline gap-2 font-sans tabular-nums", className), ...props, children: [
|
|
816
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: cn("font-semibold tracking-tight text-foreground", s.price), children: formatMoney(amount, currency, locale) }),
|
|
817
|
+
onSale && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
818
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: cn("text-muted-foreground line-through", s.compare), children: formatMoney(compareAt, currency, locale) }),
|
|
819
|
+
showDiscount && /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "rounded-full bg-destructive/10 px-2 py-0.5 text-xs font-semibold text-destructive", children: [
|
|
820
|
+
"\u2212",
|
|
821
|
+
pct,
|
|
822
|
+
"%"
|
|
823
|
+
] })
|
|
824
|
+
] })
|
|
825
|
+
] });
|
|
826
|
+
}
|
|
827
|
+
);
|
|
828
|
+
PriceTag.displayName = "PriceTag";
|
|
829
|
+
var QuantityStepper = React136__namespace.default.forwardRef(
|
|
830
|
+
({
|
|
831
|
+
value: valueProp,
|
|
832
|
+
defaultValue = 1,
|
|
833
|
+
onValueChange,
|
|
834
|
+
min = 1,
|
|
835
|
+
max = 99,
|
|
836
|
+
step = 1,
|
|
837
|
+
size = "md",
|
|
838
|
+
disabled = false,
|
|
839
|
+
className,
|
|
840
|
+
"aria-label": ariaLabel = "Quantity",
|
|
841
|
+
...props
|
|
842
|
+
}, ref) => {
|
|
843
|
+
const isControlled = valueProp !== void 0;
|
|
844
|
+
const [internal, setInternal] = React136__namespace.default.useState(defaultValue);
|
|
845
|
+
const value = isControlled ? valueProp : internal;
|
|
846
|
+
const commit = (next) => {
|
|
847
|
+
const clamped = Math.max(min, Math.min(max, next));
|
|
848
|
+
if (!isControlled) setInternal(clamped);
|
|
849
|
+
onValueChange?.(clamped);
|
|
850
|
+
};
|
|
851
|
+
const dim = size === "sm" ? "h-7 w-7" : "h-9 w-9";
|
|
852
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
853
|
+
"div",
|
|
854
|
+
{
|
|
855
|
+
ref,
|
|
856
|
+
role: "group",
|
|
857
|
+
"aria-label": ariaLabel,
|
|
858
|
+
className: cn("inline-flex items-center rounded-md border border-input", className),
|
|
859
|
+
...props,
|
|
860
|
+
children: [
|
|
861
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
862
|
+
Button,
|
|
863
|
+
{
|
|
864
|
+
type: "button",
|
|
865
|
+
variant: "ghost",
|
|
866
|
+
size: "icon",
|
|
867
|
+
className: cn("rounded-r-none", dim),
|
|
868
|
+
disabled: disabled || value <= min,
|
|
869
|
+
onClick: () => commit(value - step),
|
|
870
|
+
"aria-label": "Decrease quantity",
|
|
871
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Minus, { className: "h-4 w-4" })
|
|
872
|
+
}
|
|
873
|
+
),
|
|
874
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
875
|
+
"span",
|
|
876
|
+
{
|
|
877
|
+
"aria-live": "polite",
|
|
878
|
+
className: cn("select-none text-center text-sm font-medium tabular-nums", size === "sm" ? "min-w-7" : "min-w-8"),
|
|
879
|
+
children: value
|
|
880
|
+
}
|
|
881
|
+
),
|
|
882
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
883
|
+
Button,
|
|
884
|
+
{
|
|
885
|
+
type: "button",
|
|
886
|
+
variant: "ghost",
|
|
887
|
+
size: "icon",
|
|
888
|
+
className: cn("rounded-l-none", dim),
|
|
889
|
+
disabled: disabled || value >= max,
|
|
890
|
+
onClick: () => commit(value + step),
|
|
891
|
+
"aria-label": "Increase quantity",
|
|
892
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Plus, { className: "h-4 w-4" })
|
|
893
|
+
}
|
|
894
|
+
)
|
|
895
|
+
]
|
|
896
|
+
}
|
|
897
|
+
);
|
|
898
|
+
}
|
|
899
|
+
);
|
|
900
|
+
QuantityStepper.displayName = "QuantityStepper";
|
|
901
|
+
var CartLineItem = React136__namespace.default.forwardRef(
|
|
902
|
+
({
|
|
903
|
+
image,
|
|
904
|
+
title,
|
|
905
|
+
variant,
|
|
906
|
+
price,
|
|
907
|
+
compareAt,
|
|
908
|
+
currency = "USD",
|
|
909
|
+
quantity,
|
|
910
|
+
onQuantityChange,
|
|
911
|
+
onRemove,
|
|
912
|
+
minQuantity = 1,
|
|
913
|
+
maxQuantity = 99,
|
|
914
|
+
className,
|
|
915
|
+
...props
|
|
916
|
+
}, ref) => {
|
|
917
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
918
|
+
"div",
|
|
919
|
+
{
|
|
920
|
+
ref,
|
|
921
|
+
className: cn("flex items-center gap-4 rounded-lg border border-border bg-card p-3", className),
|
|
922
|
+
...props,
|
|
923
|
+
children: [
|
|
924
|
+
image && /* @__PURE__ */ jsxRuntime.jsx("img", { src: image, alt: "", className: "h-16 w-16 flex-none rounded-md object-cover" }),
|
|
925
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex min-w-0 flex-1 flex-col gap-1", children: [
|
|
926
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "truncate font-medium text-card-foreground", children: title }),
|
|
927
|
+
variant && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "truncate text-sm text-muted-foreground", children: variant }),
|
|
928
|
+
/* @__PURE__ */ jsxRuntime.jsx(PriceTag, { amount: price, compareAt, currency, size: "sm" })
|
|
929
|
+
] }),
|
|
930
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
931
|
+
QuantityStepper,
|
|
932
|
+
{
|
|
933
|
+
value: quantity,
|
|
934
|
+
min: minQuantity,
|
|
935
|
+
max: maxQuantity,
|
|
936
|
+
onValueChange: onQuantityChange,
|
|
937
|
+
size: "sm"
|
|
938
|
+
}
|
|
939
|
+
),
|
|
940
|
+
onRemove && /* @__PURE__ */ jsxRuntime.jsx(
|
|
941
|
+
Button,
|
|
942
|
+
{
|
|
943
|
+
type: "button",
|
|
944
|
+
variant: "ghost",
|
|
945
|
+
size: "icon",
|
|
946
|
+
className: "h-8 w-8 text-muted-foreground hover:text-destructive",
|
|
947
|
+
onClick: onRemove,
|
|
948
|
+
"aria-label": `Remove ${title}`,
|
|
949
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.X, { className: "h-4 w-4" })
|
|
950
|
+
}
|
|
951
|
+
)
|
|
952
|
+
]
|
|
953
|
+
}
|
|
954
|
+
);
|
|
955
|
+
}
|
|
956
|
+
);
|
|
957
|
+
CartLineItem.displayName = "CartLineItem";
|
|
802
958
|
var THEMES = { light: "", dark: ".dark" };
|
|
803
|
-
var ChartContext =
|
|
959
|
+
var ChartContext = React136__namespace.createContext(null);
|
|
804
960
|
function useChart() {
|
|
805
|
-
const context =
|
|
961
|
+
const context = React136__namespace.useContext(ChartContext);
|
|
806
962
|
if (!context) {
|
|
807
963
|
throw new Error("useChart must be used within a <ChartContainer />");
|
|
808
964
|
}
|
|
809
965
|
return context;
|
|
810
966
|
}
|
|
811
|
-
var ChartContainer =
|
|
812
|
-
const uniqueId =
|
|
967
|
+
var ChartContainer = React136__namespace.forwardRef(({ id, className, children, config, ...props }, ref) => {
|
|
968
|
+
const uniqueId = React136__namespace.useId();
|
|
813
969
|
const chartId = `chart-${id || uniqueId.replace(/:/g, "")}`;
|
|
814
970
|
return /* @__PURE__ */ jsxRuntime.jsx(ChartContext.Provider, { value: { config }, children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
815
971
|
"div",
|
|
@@ -855,7 +1011,7 @@ ${colorConfig.map(([key, itemConfig]) => {
|
|
|
855
1011
|
);
|
|
856
1012
|
};
|
|
857
1013
|
var ChartTooltip = RechartsPrimitive__namespace.Tooltip;
|
|
858
|
-
var ChartTooltipContent =
|
|
1014
|
+
var ChartTooltipContent = React136__namespace.forwardRef(
|
|
859
1015
|
({
|
|
860
1016
|
active,
|
|
861
1017
|
payload,
|
|
@@ -872,7 +1028,7 @@ var ChartTooltipContent = React131__namespace.forwardRef(
|
|
|
872
1028
|
labelKey
|
|
873
1029
|
}, ref) => {
|
|
874
1030
|
const { config } = useChart();
|
|
875
|
-
const tooltipLabel =
|
|
1031
|
+
const tooltipLabel = React136__namespace.useMemo(() => {
|
|
876
1032
|
if (hideLabel || !payload?.length) {
|
|
877
1033
|
return null;
|
|
878
1034
|
}
|
|
@@ -968,7 +1124,7 @@ var ChartTooltipContent = React131__namespace.forwardRef(
|
|
|
968
1124
|
);
|
|
969
1125
|
ChartTooltipContent.displayName = "ChartTooltip";
|
|
970
1126
|
var ChartLegend = RechartsPrimitive__namespace.Legend;
|
|
971
|
-
var ChartLegendContent =
|
|
1127
|
+
var ChartLegendContent = React136__namespace.forwardRef(
|
|
972
1128
|
({ className, hideIcon = false, payload, verticalAlign = "bottom", nameKey }, ref) => {
|
|
973
1129
|
const { config } = useChart();
|
|
974
1130
|
if (!payload?.length) {
|
|
@@ -1026,7 +1182,7 @@ function getPayloadConfigFromPayload(config, payload, key) {
|
|
|
1026
1182
|
}
|
|
1027
1183
|
return configLabelKey in config ? config[configLabelKey] : config[key];
|
|
1028
1184
|
}
|
|
1029
|
-
var Checkbox =
|
|
1185
|
+
var Checkbox = React136__namespace.default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
1030
1186
|
CheckboxPrimitive__namespace.Root,
|
|
1031
1187
|
{
|
|
1032
1188
|
ref,
|
|
@@ -1066,7 +1222,7 @@ function detectTheme(node) {
|
|
|
1066
1222
|
}
|
|
1067
1223
|
return document.documentElement.classList.contains("dark") ? "dark" : "light";
|
|
1068
1224
|
}
|
|
1069
|
-
var CodeBlock =
|
|
1225
|
+
var CodeBlock = React136__namespace.default.forwardRef(
|
|
1070
1226
|
({
|
|
1071
1227
|
code,
|
|
1072
1228
|
language = "tsx",
|
|
@@ -1077,10 +1233,10 @@ var CodeBlock = React131__namespace.default.forwardRef(
|
|
|
1077
1233
|
className,
|
|
1078
1234
|
...props
|
|
1079
1235
|
}, ref) => {
|
|
1080
|
-
const containerRef =
|
|
1081
|
-
const [html, setHtml] =
|
|
1082
|
-
const [copied, setCopied] =
|
|
1083
|
-
|
|
1236
|
+
const containerRef = React136__namespace.default.useRef(null);
|
|
1237
|
+
const [html, setHtml] = React136__namespace.default.useState(null);
|
|
1238
|
+
const [copied, setCopied] = React136__namespace.default.useState(false);
|
|
1239
|
+
React136__namespace.default.useEffect(() => {
|
|
1084
1240
|
let cancelled = false;
|
|
1085
1241
|
getHighlighter().then((hl) => {
|
|
1086
1242
|
if (cancelled) return;
|
|
@@ -1095,7 +1251,7 @@ var CodeBlock = React131__namespace.default.forwardRef(
|
|
|
1095
1251
|
cancelled = true;
|
|
1096
1252
|
};
|
|
1097
1253
|
}, [code, language, theme]);
|
|
1098
|
-
const onCopy =
|
|
1254
|
+
const onCopy = React136__namespace.default.useCallback(async () => {
|
|
1099
1255
|
try {
|
|
1100
1256
|
await navigator.clipboard.writeText(code);
|
|
1101
1257
|
setCopied(true);
|
|
@@ -1103,7 +1259,7 @@ var CodeBlock = React131__namespace.default.forwardRef(
|
|
|
1103
1259
|
} catch {
|
|
1104
1260
|
}
|
|
1105
1261
|
}, [code]);
|
|
1106
|
-
const lines =
|
|
1262
|
+
const lines = React136__namespace.default.useMemo(() => code.split("\n"), [code]);
|
|
1107
1263
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1108
1264
|
"div",
|
|
1109
1265
|
{
|
|
@@ -1171,7 +1327,7 @@ var Dialog = DialogPrimitive__namespace.Root;
|
|
|
1171
1327
|
var DialogTrigger = DialogPrimitive__namespace.Trigger;
|
|
1172
1328
|
var DialogPortal = DialogPrimitive__namespace.Portal;
|
|
1173
1329
|
var DialogClose = DialogPrimitive__namespace.Close;
|
|
1174
|
-
var DialogOverlay =
|
|
1330
|
+
var DialogOverlay = React136__namespace.default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
1175
1331
|
DialogPrimitive__namespace.Overlay,
|
|
1176
1332
|
{
|
|
1177
1333
|
ref,
|
|
@@ -1185,7 +1341,7 @@ var DialogOverlay = React131__namespace.default.forwardRef(({ className, ...prop
|
|
|
1185
1341
|
}
|
|
1186
1342
|
));
|
|
1187
1343
|
DialogOverlay.displayName = DialogPrimitive__namespace.Overlay.displayName;
|
|
1188
|
-
var DialogContent =
|
|
1344
|
+
var DialogContent = React136__namespace.default.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(DialogPortal, { children: [
|
|
1189
1345
|
/* @__PURE__ */ jsxRuntime.jsx(DialogOverlay, {}),
|
|
1190
1346
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
1191
1347
|
DialogPrimitive__namespace.Content,
|
|
@@ -1215,7 +1371,7 @@ var DialogHeader = ({ className, ...props }) => /* @__PURE__ */ jsxRuntime.jsx("
|
|
|
1215
1371
|
DialogHeader.displayName = "DialogHeader";
|
|
1216
1372
|
var DialogFooter = ({ className, ...props }) => /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2", className), ...props });
|
|
1217
1373
|
DialogFooter.displayName = "DialogFooter";
|
|
1218
|
-
var DialogTitle =
|
|
1374
|
+
var DialogTitle = React136__namespace.default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
1219
1375
|
DialogPrimitive__namespace.Title,
|
|
1220
1376
|
{
|
|
1221
1377
|
ref,
|
|
@@ -1224,7 +1380,7 @@ var DialogTitle = React131__namespace.default.forwardRef(({ className, ...props
|
|
|
1224
1380
|
}
|
|
1225
1381
|
));
|
|
1226
1382
|
DialogTitle.displayName = DialogPrimitive__namespace.Title.displayName;
|
|
1227
|
-
var DialogDescription =
|
|
1383
|
+
var DialogDescription = React136__namespace.default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
1228
1384
|
DialogPrimitive__namespace.Description,
|
|
1229
1385
|
{
|
|
1230
1386
|
ref,
|
|
@@ -1233,7 +1389,7 @@ var DialogDescription = React131__namespace.default.forwardRef(({ className, ...
|
|
|
1233
1389
|
}
|
|
1234
1390
|
));
|
|
1235
1391
|
DialogDescription.displayName = DialogPrimitive__namespace.Description.displayName;
|
|
1236
|
-
var Command =
|
|
1392
|
+
var Command = React136__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
1237
1393
|
cmdk.Command,
|
|
1238
1394
|
{
|
|
1239
1395
|
ref,
|
|
@@ -1248,7 +1404,7 @@ Command.displayName = cmdk.Command.displayName;
|
|
|
1248
1404
|
var CommandDialog = ({ children, ...props }) => {
|
|
1249
1405
|
return /* @__PURE__ */ jsxRuntime.jsx(Dialog, { ...props, children: /* @__PURE__ */ jsxRuntime.jsx(DialogContent, { className: "overflow-hidden p-0", children: /* @__PURE__ */ jsxRuntime.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 }) }) });
|
|
1250
1406
|
};
|
|
1251
|
-
var CommandInput =
|
|
1407
|
+
var CommandInput = React136__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center border-b px-3", "cmdk-input-wrapper": "", children: [
|
|
1252
1408
|
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.Search, { className: "mr-2 h-4 w-4 shrink-0 opacity-50" }),
|
|
1253
1409
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1254
1410
|
cmdk.Command.Input,
|
|
@@ -1263,7 +1419,7 @@ var CommandInput = React131__namespace.forwardRef(({ className, ...props }, ref)
|
|
|
1263
1419
|
)
|
|
1264
1420
|
] }));
|
|
1265
1421
|
CommandInput.displayName = cmdk.Command.Input.displayName;
|
|
1266
|
-
var CommandList =
|
|
1422
|
+
var CommandList = React136__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
1267
1423
|
cmdk.Command.List,
|
|
1268
1424
|
{
|
|
1269
1425
|
ref,
|
|
@@ -1272,7 +1428,7 @@ var CommandList = React131__namespace.forwardRef(({ className, ...props }, ref)
|
|
|
1272
1428
|
}
|
|
1273
1429
|
));
|
|
1274
1430
|
CommandList.displayName = cmdk.Command.List.displayName;
|
|
1275
|
-
var CommandEmpty =
|
|
1431
|
+
var CommandEmpty = React136__namespace.forwardRef((props, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
1276
1432
|
cmdk.Command.Empty,
|
|
1277
1433
|
{
|
|
1278
1434
|
ref,
|
|
@@ -1281,7 +1437,7 @@ var CommandEmpty = React131__namespace.forwardRef((props, ref) => /* @__PURE__ *
|
|
|
1281
1437
|
}
|
|
1282
1438
|
));
|
|
1283
1439
|
CommandEmpty.displayName = cmdk.Command.Empty.displayName;
|
|
1284
|
-
var CommandGroup =
|
|
1440
|
+
var CommandGroup = React136__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
1285
1441
|
cmdk.Command.Group,
|
|
1286
1442
|
{
|
|
1287
1443
|
ref,
|
|
@@ -1293,7 +1449,7 @@ var CommandGroup = React131__namespace.forwardRef(({ className, ...props }, ref)
|
|
|
1293
1449
|
}
|
|
1294
1450
|
));
|
|
1295
1451
|
CommandGroup.displayName = cmdk.Command.Group.displayName;
|
|
1296
|
-
var CommandSeparator =
|
|
1452
|
+
var CommandSeparator = React136__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
1297
1453
|
cmdk.Command.Separator,
|
|
1298
1454
|
{
|
|
1299
1455
|
ref,
|
|
@@ -1302,7 +1458,7 @@ var CommandSeparator = React131__namespace.forwardRef(({ className, ...props },
|
|
|
1302
1458
|
}
|
|
1303
1459
|
));
|
|
1304
1460
|
CommandSeparator.displayName = cmdk.Command.Separator.displayName;
|
|
1305
|
-
var CommandItem =
|
|
1461
|
+
var CommandItem = React136__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
1306
1462
|
cmdk.Command.Item,
|
|
1307
1463
|
{
|
|
1308
1464
|
ref,
|
|
@@ -1330,7 +1486,7 @@ var CommandShortcut = ({
|
|
|
1330
1486
|
);
|
|
1331
1487
|
};
|
|
1332
1488
|
CommandShortcut.displayName = "CommandShortcut";
|
|
1333
|
-
var Comparison =
|
|
1489
|
+
var Comparison = React136__namespace.default.forwardRef(
|
|
1334
1490
|
({
|
|
1335
1491
|
before,
|
|
1336
1492
|
after,
|
|
@@ -1346,10 +1502,10 @@ var Comparison = React131__namespace.default.forwardRef(
|
|
|
1346
1502
|
...props
|
|
1347
1503
|
}, ref) => {
|
|
1348
1504
|
const isControlled = valueProp !== void 0;
|
|
1349
|
-
const [internal, setInternal] =
|
|
1505
|
+
const [internal, setInternal] = React136__namespace.default.useState(defaultValue);
|
|
1350
1506
|
const value = Math.max(0, Math.min(100, isControlled ? valueProp : internal));
|
|
1351
|
-
const containerRef =
|
|
1352
|
-
const commit =
|
|
1507
|
+
const containerRef = React136__namespace.default.useRef(null);
|
|
1508
|
+
const commit = React136__namespace.default.useCallback(
|
|
1353
1509
|
(next) => {
|
|
1354
1510
|
const clamped = Math.max(0, Math.min(100, next));
|
|
1355
1511
|
if (!isControlled) setInternal(clamped);
|
|
@@ -1357,7 +1513,7 @@ var Comparison = React131__namespace.default.forwardRef(
|
|
|
1357
1513
|
},
|
|
1358
1514
|
[isControlled, onValueChange]
|
|
1359
1515
|
);
|
|
1360
|
-
const updateFromPointer =
|
|
1516
|
+
const updateFromPointer = React136__namespace.default.useCallback(
|
|
1361
1517
|
(clientX, clientY) => {
|
|
1362
1518
|
const el = containerRef.current;
|
|
1363
1519
|
if (!el) return;
|
|
@@ -1480,30 +1636,30 @@ var ContextMenuSub = ContextMenuPrimitive__namespace.Sub;
|
|
|
1480
1636
|
var ContextMenuRadioGroup = ContextMenuPrimitive__namespace.RadioGroup;
|
|
1481
1637
|
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";
|
|
1482
1638
|
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";
|
|
1483
|
-
var ContextMenuContent =
|
|
1639
|
+
var ContextMenuContent = React136__namespace.default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(ContextMenuPrimitive__namespace.Portal, { children: /* @__PURE__ */ jsxRuntime.jsx(ContextMenuPrimitive__namespace.Content, { ref, className: cn(contentStyle, className), ...props }) }));
|
|
1484
1640
|
ContextMenuContent.displayName = ContextMenuPrimitive__namespace.Content.displayName;
|
|
1485
|
-
var ContextMenuItem =
|
|
1641
|
+
var ContextMenuItem = React136__namespace.default.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(ContextMenuPrimitive__namespace.Item, { ref, className: cn(itemStyle, inset && "pl-8", className), ...props }));
|
|
1486
1642
|
ContextMenuItem.displayName = ContextMenuPrimitive__namespace.Item.displayName;
|
|
1487
|
-
var ContextMenuCheckboxItem =
|
|
1643
|
+
var ContextMenuCheckboxItem = React136__namespace.default.forwardRef(({ className, children, checked, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(ContextMenuPrimitive__namespace.CheckboxItem, { ref, className: cn(itemStyle, "pl-8", className), checked, ...props, children: [
|
|
1488
1644
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsxRuntime.jsx(ContextMenuPrimitive__namespace.ItemIndicator, { children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Check, { className: "h-4 w-4" }) }) }),
|
|
1489
1645
|
children
|
|
1490
1646
|
] }));
|
|
1491
1647
|
ContextMenuCheckboxItem.displayName = ContextMenuPrimitive__namespace.CheckboxItem.displayName;
|
|
1492
|
-
var ContextMenuRadioItem =
|
|
1648
|
+
var ContextMenuRadioItem = React136__namespace.default.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(ContextMenuPrimitive__namespace.RadioItem, { ref, className: cn(itemStyle, "pl-8", className), ...props, children: [
|
|
1493
1649
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsxRuntime.jsx(ContextMenuPrimitive__namespace.ItemIndicator, { children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Circle, { className: "h-2 w-2 fill-current" }) }) }),
|
|
1494
1650
|
children
|
|
1495
1651
|
] }));
|
|
1496
1652
|
ContextMenuRadioItem.displayName = ContextMenuPrimitive__namespace.RadioItem.displayName;
|
|
1497
|
-
var ContextMenuLabel =
|
|
1653
|
+
var ContextMenuLabel = React136__namespace.default.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(ContextMenuPrimitive__namespace.Label, { ref, className: cn("px-2 py-1.5 text-xs font-semibold text-[hsl(var(--muted-foreground))]", inset && "pl-8", className), ...props }));
|
|
1498
1654
|
ContextMenuLabel.displayName = ContextMenuPrimitive__namespace.Label.displayName;
|
|
1499
|
-
var ContextMenuSeparator =
|
|
1655
|
+
var ContextMenuSeparator = React136__namespace.default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(ContextMenuPrimitive__namespace.Separator, { ref, className: cn("-mx-1 my-1 h-px bg-[hsl(var(--muted))]", className), ...props }));
|
|
1500
1656
|
ContextMenuSeparator.displayName = ContextMenuPrimitive__namespace.Separator.displayName;
|
|
1501
|
-
var ContextMenuSubTrigger =
|
|
1657
|
+
var ContextMenuSubTrigger = React136__namespace.default.forwardRef(({ className, inset, children, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(ContextMenuPrimitive__namespace.SubTrigger, { ref, className: cn(itemStyle, inset && "pl-8", className), ...props, children: [
|
|
1502
1658
|
children,
|
|
1503
1659
|
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronRight, { className: "ml-auto h-4 w-4" })
|
|
1504
1660
|
] }));
|
|
1505
1661
|
ContextMenuSubTrigger.displayName = ContextMenuPrimitive__namespace.SubTrigger.displayName;
|
|
1506
|
-
var ContextMenuSubContent =
|
|
1662
|
+
var ContextMenuSubContent = React136__namespace.default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(ContextMenuPrimitive__namespace.SubContent, { ref, className: cn(contentStyle, className), ...props }));
|
|
1507
1663
|
ContextMenuSubContent.displayName = ContextMenuPrimitive__namespace.SubContent.displayName;
|
|
1508
1664
|
var ContextMenuShortcut = ({ className, ...props }) => /* @__PURE__ */ jsxRuntime.jsx("span", { className: cn("ml-auto text-xs tracking-widest opacity-60", className), ...props });
|
|
1509
1665
|
var Drawer = ({
|
|
@@ -1520,7 +1676,7 @@ Drawer.displayName = "Drawer";
|
|
|
1520
1676
|
var DrawerTrigger = vaul.Drawer.Trigger;
|
|
1521
1677
|
var DrawerPortal = vaul.Drawer.Portal;
|
|
1522
1678
|
var DrawerClose = vaul.Drawer.Close;
|
|
1523
|
-
var DrawerOverlay =
|
|
1679
|
+
var DrawerOverlay = React136__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
1524
1680
|
vaul.Drawer.Overlay,
|
|
1525
1681
|
{
|
|
1526
1682
|
ref,
|
|
@@ -1529,7 +1685,7 @@ var DrawerOverlay = React131__namespace.forwardRef(({ className, ...props }, ref
|
|
|
1529
1685
|
}
|
|
1530
1686
|
));
|
|
1531
1687
|
DrawerOverlay.displayName = vaul.Drawer.Overlay.displayName;
|
|
1532
|
-
var DrawerContent =
|
|
1688
|
+
var DrawerContent = React136__namespace.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(DrawerPortal, { children: [
|
|
1533
1689
|
/* @__PURE__ */ jsxRuntime.jsx(DrawerOverlay, {}),
|
|
1534
1690
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
1535
1691
|
vaul.Drawer.Content,
|
|
@@ -1570,7 +1726,7 @@ var DrawerFooter = ({
|
|
|
1570
1726
|
}
|
|
1571
1727
|
);
|
|
1572
1728
|
DrawerFooter.displayName = "DrawerFooter";
|
|
1573
|
-
var DrawerTitle =
|
|
1729
|
+
var DrawerTitle = React136__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
1574
1730
|
vaul.Drawer.Title,
|
|
1575
1731
|
{
|
|
1576
1732
|
ref,
|
|
@@ -1582,7 +1738,7 @@ var DrawerTitle = React131__namespace.forwardRef(({ className, ...props }, ref)
|
|
|
1582
1738
|
}
|
|
1583
1739
|
));
|
|
1584
1740
|
DrawerTitle.displayName = vaul.Drawer.Title.displayName;
|
|
1585
|
-
var DrawerDescription =
|
|
1741
|
+
var DrawerDescription = React136__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
1586
1742
|
vaul.Drawer.Description,
|
|
1587
1743
|
{
|
|
1588
1744
|
ref,
|
|
@@ -1607,36 +1763,65 @@ var itemStyle2 = cn(
|
|
|
1607
1763
|
"focus:bg-[hsl(var(--accent))] focus:text-[hsl(var(--accent-foreground))]",
|
|
1608
1764
|
"data-[disabled]:pointer-events-none data-[disabled]:opacity-50"
|
|
1609
1765
|
);
|
|
1610
|
-
var DropdownMenuContent =
|
|
1766
|
+
var DropdownMenuContent = React136__namespace.default.forwardRef(({ className, sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(DropdownMenuPrimitive__namespace.Portal, { children: /* @__PURE__ */ jsxRuntime.jsx(DropdownMenuPrimitive__namespace.Content, { ref, sideOffset, className: cn(contentStyle2, className), ...props }) }));
|
|
1611
1767
|
DropdownMenuContent.displayName = DropdownMenuPrimitive__namespace.Content.displayName;
|
|
1612
|
-
var DropdownMenuItem =
|
|
1768
|
+
var DropdownMenuItem = React136__namespace.default.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(DropdownMenuPrimitive__namespace.Item, { ref, className: cn(itemStyle2, inset && "pl-8", className), ...props }));
|
|
1613
1769
|
DropdownMenuItem.displayName = DropdownMenuPrimitive__namespace.Item.displayName;
|
|
1614
|
-
var DropdownMenuCheckboxItem =
|
|
1770
|
+
var DropdownMenuCheckboxItem = React136__namespace.default.forwardRef(({ className, children, checked, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(DropdownMenuPrimitive__namespace.CheckboxItem, { ref, className: cn(itemStyle2, "pl-8", className), checked, ...props, children: [
|
|
1615
1771
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsxRuntime.jsx(DropdownMenuPrimitive__namespace.ItemIndicator, { children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Check, { className: "h-4 w-4" }) }) }),
|
|
1616
1772
|
children
|
|
1617
1773
|
] }));
|
|
1618
1774
|
DropdownMenuCheckboxItem.displayName = DropdownMenuPrimitive__namespace.CheckboxItem.displayName;
|
|
1619
|
-
var DropdownMenuRadioItem =
|
|
1775
|
+
var DropdownMenuRadioItem = React136__namespace.default.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(DropdownMenuPrimitive__namespace.RadioItem, { ref, className: cn(itemStyle2, "pl-8", className), ...props, children: [
|
|
1620
1776
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsxRuntime.jsx(DropdownMenuPrimitive__namespace.ItemIndicator, { children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Circle, { className: "h-2 w-2 fill-current" }) }) }),
|
|
1621
1777
|
children
|
|
1622
1778
|
] }));
|
|
1623
1779
|
DropdownMenuRadioItem.displayName = DropdownMenuPrimitive__namespace.RadioItem.displayName;
|
|
1624
|
-
var DropdownMenuLabel =
|
|
1780
|
+
var DropdownMenuLabel = React136__namespace.default.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(DropdownMenuPrimitive__namespace.Label, { ref, className: cn("px-2 py-1.5 text-xs font-semibold text-[hsl(var(--muted-foreground))]", inset && "pl-8", className), ...props }));
|
|
1625
1781
|
DropdownMenuLabel.displayName = DropdownMenuPrimitive__namespace.Label.displayName;
|
|
1626
|
-
var DropdownMenuSeparator =
|
|
1782
|
+
var DropdownMenuSeparator = React136__namespace.default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(DropdownMenuPrimitive__namespace.Separator, { ref, className: cn("-mx-1 my-1 h-px bg-[hsl(var(--muted))]", className), ...props }));
|
|
1627
1783
|
DropdownMenuSeparator.displayName = DropdownMenuPrimitive__namespace.Separator.displayName;
|
|
1628
|
-
var DropdownMenuSubTrigger =
|
|
1784
|
+
var DropdownMenuSubTrigger = React136__namespace.default.forwardRef(({ className, inset, children, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(DropdownMenuPrimitive__namespace.SubTrigger, { ref, className: cn(itemStyle2, inset && "pl-8", "data-[state=open]:bg-[hsl(var(--accent))]", className), ...props, children: [
|
|
1629
1785
|
children,
|
|
1630
1786
|
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronRight, { className: "ml-auto h-4 w-4" })
|
|
1631
1787
|
] }));
|
|
1632
1788
|
DropdownMenuSubTrigger.displayName = DropdownMenuPrimitive__namespace.SubTrigger.displayName;
|
|
1633
|
-
var DropdownMenuSubContent =
|
|
1789
|
+
var DropdownMenuSubContent = React136__namespace.default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(DropdownMenuPrimitive__namespace.SubContent, { ref, className: cn(contentStyle2, className), ...props }));
|
|
1634
1790
|
DropdownMenuSubContent.displayName = DropdownMenuPrimitive__namespace.SubContent.displayName;
|
|
1635
1791
|
var DropdownMenuShortcut = ({ className, ...props }) => /* @__PURE__ */ jsxRuntime.jsx("span", { className: cn("ml-auto text-xs tracking-widest opacity-60", className), ...props });
|
|
1636
1792
|
DropdownMenuShortcut.displayName = "DropdownMenuShortcut";
|
|
1793
|
+
var EmptyCart = React136__namespace.default.forwardRef(
|
|
1794
|
+
({
|
|
1795
|
+
title = "Your cart is empty",
|
|
1796
|
+
description = "Browse the catalog and add something you love.",
|
|
1797
|
+
actionLabel = "Continue shopping",
|
|
1798
|
+
onAction,
|
|
1799
|
+
icon,
|
|
1800
|
+
className,
|
|
1801
|
+
...props
|
|
1802
|
+
}, ref) => {
|
|
1803
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1804
|
+
"div",
|
|
1805
|
+
{
|
|
1806
|
+
ref,
|
|
1807
|
+
className: cn("flex flex-col items-center justify-center gap-4 px-6 py-12 text-center", className),
|
|
1808
|
+
...props,
|
|
1809
|
+
children: [
|
|
1810
|
+
/* @__PURE__ */ jsxRuntime.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__ */ jsxRuntime.jsx(lucideReact.ShoppingCart, { className: "h-6 w-6", strokeWidth: 1.5 }) }),
|
|
1811
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col gap-1", children: [
|
|
1812
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-base font-semibold text-foreground", children: title }),
|
|
1813
|
+
description && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "max-w-xs text-sm text-muted-foreground", children: description })
|
|
1814
|
+
] }),
|
|
1815
|
+
actionLabel && onAction && /* @__PURE__ */ jsxRuntime.jsx(Button, { onClick: onAction, className: "mt-1", children: actionLabel })
|
|
1816
|
+
]
|
|
1817
|
+
}
|
|
1818
|
+
);
|
|
1819
|
+
}
|
|
1820
|
+
);
|
|
1821
|
+
EmptyCart.displayName = "EmptyCart";
|
|
1637
1822
|
var HoverCard = HoverCardPrimitive__namespace.Root;
|
|
1638
1823
|
var HoverCardTrigger = HoverCardPrimitive__namespace.Trigger;
|
|
1639
|
-
var HoverCardContent =
|
|
1824
|
+
var HoverCardContent = React136__namespace.forwardRef(({ className, align = "center", sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
1640
1825
|
HoverCardPrimitive__namespace.Content,
|
|
1641
1826
|
{
|
|
1642
1827
|
ref,
|
|
@@ -1650,7 +1835,7 @@ var HoverCardContent = React131__namespace.forwardRef(({ className, align = "cen
|
|
|
1650
1835
|
}
|
|
1651
1836
|
));
|
|
1652
1837
|
HoverCardContent.displayName = HoverCardPrimitive__namespace.Content.displayName;
|
|
1653
|
-
var InputOTP =
|
|
1838
|
+
var InputOTP = React136__namespace.forwardRef(({ className, containerClassName, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
1654
1839
|
inputOtp.OTPInput,
|
|
1655
1840
|
{
|
|
1656
1841
|
ref,
|
|
@@ -1663,10 +1848,10 @@ var InputOTP = React131__namespace.forwardRef(({ className, containerClassName,
|
|
|
1663
1848
|
}
|
|
1664
1849
|
));
|
|
1665
1850
|
InputOTP.displayName = "InputOTP";
|
|
1666
|
-
var InputOTPGroup =
|
|
1851
|
+
var InputOTPGroup = React136__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx("div", { ref, className: cn("flex items-center", className), ...props }));
|
|
1667
1852
|
InputOTPGroup.displayName = "InputOTPGroup";
|
|
1668
|
-
var InputOTPSlot =
|
|
1669
|
-
const inputOTPContext =
|
|
1853
|
+
var InputOTPSlot = React136__namespace.forwardRef(({ index, className, ...props }, ref) => {
|
|
1854
|
+
const inputOTPContext = React136__namespace.useContext(inputOtp.OTPInputContext);
|
|
1670
1855
|
const { char, hasFakeCaret, isActive } = inputOTPContext.slots[index];
|
|
1671
1856
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1672
1857
|
"div",
|
|
@@ -1686,9 +1871,9 @@ var InputOTPSlot = React131__namespace.forwardRef(({ index, className, ...props
|
|
|
1686
1871
|
);
|
|
1687
1872
|
});
|
|
1688
1873
|
InputOTPSlot.displayName = "InputOTPSlot";
|
|
1689
|
-
var InputOTPSeparator =
|
|
1874
|
+
var InputOTPSeparator = React136__namespace.forwardRef(({ ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx("div", { ref, role: "separator", ...props, children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Minus, {}) }));
|
|
1690
1875
|
InputOTPSeparator.displayName = "InputOTPSeparator";
|
|
1691
|
-
var Input =
|
|
1876
|
+
var Input = React136__namespace.default.forwardRef(
|
|
1692
1877
|
({ className, type, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
1693
1878
|
"input",
|
|
1694
1879
|
{
|
|
@@ -1710,7 +1895,7 @@ Input.displayName = "Input";
|
|
|
1710
1895
|
var labelVariants = classVarianceAuthority.cva(
|
|
1711
1896
|
"text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70"
|
|
1712
1897
|
);
|
|
1713
|
-
var Label3 =
|
|
1898
|
+
var Label3 = React136__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
1714
1899
|
LabelPrimitive__namespace.Root,
|
|
1715
1900
|
{
|
|
1716
1901
|
ref,
|
|
@@ -1719,7 +1904,7 @@ var Label3 = React131__namespace.forwardRef(({ className, ...props }, ref) => /*
|
|
|
1719
1904
|
}
|
|
1720
1905
|
));
|
|
1721
1906
|
Label3.displayName = LabelPrimitive__namespace.Root.displayName;
|
|
1722
|
-
var LogoCarousel =
|
|
1907
|
+
var LogoCarousel = React136__namespace.default.forwardRef(
|
|
1723
1908
|
({
|
|
1724
1909
|
className,
|
|
1725
1910
|
logos,
|
|
@@ -1813,7 +1998,7 @@ var SPEED_DURATION = {
|
|
|
1813
1998
|
normal: "40s",
|
|
1814
1999
|
fast: "20s"
|
|
1815
2000
|
};
|
|
1816
|
-
var Marquee =
|
|
2001
|
+
var Marquee = React136__namespace.default.forwardRef(
|
|
1817
2002
|
({
|
|
1818
2003
|
children,
|
|
1819
2004
|
speed = "normal",
|
|
@@ -1877,7 +2062,7 @@ function MenubarSub({
|
|
|
1877
2062
|
}) {
|
|
1878
2063
|
return /* @__PURE__ */ jsxRuntime.jsx(MenubarPrimitive__namespace.Sub, { "data-slot": "menubar-sub", ...props });
|
|
1879
2064
|
}
|
|
1880
|
-
var Menubar =
|
|
2065
|
+
var Menubar = React136__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
1881
2066
|
MenubarPrimitive__namespace.Root,
|
|
1882
2067
|
{
|
|
1883
2068
|
ref,
|
|
@@ -1889,7 +2074,7 @@ var Menubar = React131__namespace.forwardRef(({ className, ...props }, ref) => /
|
|
|
1889
2074
|
}
|
|
1890
2075
|
));
|
|
1891
2076
|
Menubar.displayName = MenubarPrimitive__namespace.Root.displayName;
|
|
1892
|
-
var MenubarTrigger =
|
|
2077
|
+
var MenubarTrigger = React136__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
1893
2078
|
MenubarPrimitive__namespace.Trigger,
|
|
1894
2079
|
{
|
|
1895
2080
|
ref,
|
|
@@ -1901,7 +2086,7 @@ var MenubarTrigger = React131__namespace.forwardRef(({ className, ...props }, re
|
|
|
1901
2086
|
}
|
|
1902
2087
|
));
|
|
1903
2088
|
MenubarTrigger.displayName = MenubarPrimitive__namespace.Trigger.displayName;
|
|
1904
|
-
var MenubarSubTrigger =
|
|
2089
|
+
var MenubarSubTrigger = React136__namespace.forwardRef(({ className, inset, children, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1905
2090
|
MenubarPrimitive__namespace.SubTrigger,
|
|
1906
2091
|
{
|
|
1907
2092
|
ref,
|
|
@@ -1918,7 +2103,7 @@ var MenubarSubTrigger = React131__namespace.forwardRef(({ className, inset, chil
|
|
|
1918
2103
|
}
|
|
1919
2104
|
));
|
|
1920
2105
|
MenubarSubTrigger.displayName = MenubarPrimitive__namespace.SubTrigger.displayName;
|
|
1921
|
-
var MenubarSubContent =
|
|
2106
|
+
var MenubarSubContent = React136__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
1922
2107
|
MenubarPrimitive__namespace.SubContent,
|
|
1923
2108
|
{
|
|
1924
2109
|
ref,
|
|
@@ -1930,7 +2115,7 @@ var MenubarSubContent = React131__namespace.forwardRef(({ className, ...props },
|
|
|
1930
2115
|
}
|
|
1931
2116
|
));
|
|
1932
2117
|
MenubarSubContent.displayName = MenubarPrimitive__namespace.SubContent.displayName;
|
|
1933
|
-
var MenubarContent =
|
|
2118
|
+
var MenubarContent = React136__namespace.forwardRef(
|
|
1934
2119
|
({ className, align = "start", alignOffset = -4, sideOffset = 8, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(MenubarPrimitive__namespace.Portal, { children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
1935
2120
|
MenubarPrimitive__namespace.Content,
|
|
1936
2121
|
{
|
|
@@ -1947,7 +2132,7 @@ var MenubarContent = React131__namespace.forwardRef(
|
|
|
1947
2132
|
) })
|
|
1948
2133
|
);
|
|
1949
2134
|
MenubarContent.displayName = MenubarPrimitive__namespace.Content.displayName;
|
|
1950
|
-
var MenubarItem =
|
|
2135
|
+
var MenubarItem = React136__namespace.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
1951
2136
|
MenubarPrimitive__namespace.Item,
|
|
1952
2137
|
{
|
|
1953
2138
|
ref,
|
|
@@ -1960,7 +2145,7 @@ var MenubarItem = React131__namespace.forwardRef(({ className, inset, ...props }
|
|
|
1960
2145
|
}
|
|
1961
2146
|
));
|
|
1962
2147
|
MenubarItem.displayName = MenubarPrimitive__namespace.Item.displayName;
|
|
1963
|
-
var MenubarCheckboxItem =
|
|
2148
|
+
var MenubarCheckboxItem = React136__namespace.forwardRef(({ className, children, checked, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1964
2149
|
MenubarPrimitive__namespace.CheckboxItem,
|
|
1965
2150
|
{
|
|
1966
2151
|
ref,
|
|
@@ -1977,7 +2162,7 @@ var MenubarCheckboxItem = React131__namespace.forwardRef(({ className, children,
|
|
|
1977
2162
|
}
|
|
1978
2163
|
));
|
|
1979
2164
|
MenubarCheckboxItem.displayName = MenubarPrimitive__namespace.CheckboxItem.displayName;
|
|
1980
|
-
var MenubarRadioItem =
|
|
2165
|
+
var MenubarRadioItem = React136__namespace.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1981
2166
|
MenubarPrimitive__namespace.RadioItem,
|
|
1982
2167
|
{
|
|
1983
2168
|
ref,
|
|
@@ -1993,7 +2178,7 @@ var MenubarRadioItem = React131__namespace.forwardRef(({ className, children, ..
|
|
|
1993
2178
|
}
|
|
1994
2179
|
));
|
|
1995
2180
|
MenubarRadioItem.displayName = MenubarPrimitive__namespace.RadioItem.displayName;
|
|
1996
|
-
var MenubarLabel =
|
|
2181
|
+
var MenubarLabel = React136__namespace.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
1997
2182
|
MenubarPrimitive__namespace.Label,
|
|
1998
2183
|
{
|
|
1999
2184
|
ref,
|
|
@@ -2006,7 +2191,7 @@ var MenubarLabel = React131__namespace.forwardRef(({ className, inset, ...props
|
|
|
2006
2191
|
}
|
|
2007
2192
|
));
|
|
2008
2193
|
MenubarLabel.displayName = MenubarPrimitive__namespace.Label.displayName;
|
|
2009
|
-
var MenubarSeparator =
|
|
2194
|
+
var MenubarSeparator = React136__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
2010
2195
|
MenubarPrimitive__namespace.Separator,
|
|
2011
2196
|
{
|
|
2012
2197
|
ref,
|
|
@@ -2031,7 +2216,7 @@ var MenubarShortcut = ({
|
|
|
2031
2216
|
);
|
|
2032
2217
|
};
|
|
2033
2218
|
MenubarShortcut.displayname = "MenubarShortcut";
|
|
2034
|
-
var NavigationMenu =
|
|
2219
|
+
var NavigationMenu = React136__namespace.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
2035
2220
|
NavigationMenuPrimitive__namespace.Root,
|
|
2036
2221
|
{
|
|
2037
2222
|
ref,
|
|
@@ -2047,7 +2232,7 @@ var NavigationMenu = React131__namespace.forwardRef(({ className, children, ...p
|
|
|
2047
2232
|
}
|
|
2048
2233
|
));
|
|
2049
2234
|
NavigationMenu.displayName = NavigationMenuPrimitive__namespace.Root.displayName;
|
|
2050
|
-
var NavigationMenuList =
|
|
2235
|
+
var NavigationMenuList = React136__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
2051
2236
|
NavigationMenuPrimitive__namespace.List,
|
|
2052
2237
|
{
|
|
2053
2238
|
ref,
|
|
@@ -2063,7 +2248,7 @@ var NavigationMenuItem = NavigationMenuPrimitive__namespace.Item;
|
|
|
2063
2248
|
var navigationMenuTriggerStyle = classVarianceAuthority.cva(
|
|
2064
2249
|
"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"
|
|
2065
2250
|
);
|
|
2066
|
-
var NavigationMenuTrigger =
|
|
2251
|
+
var NavigationMenuTrigger = React136__namespace.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
2067
2252
|
NavigationMenuPrimitive__namespace.Trigger,
|
|
2068
2253
|
{
|
|
2069
2254
|
ref,
|
|
@@ -2083,7 +2268,7 @@ var NavigationMenuTrigger = React131__namespace.forwardRef(({ className, childre
|
|
|
2083
2268
|
}
|
|
2084
2269
|
));
|
|
2085
2270
|
NavigationMenuTrigger.displayName = NavigationMenuPrimitive__namespace.Trigger.displayName;
|
|
2086
|
-
var NavigationMenuContent =
|
|
2271
|
+
var NavigationMenuContent = React136__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
2087
2272
|
NavigationMenuPrimitive__namespace.Content,
|
|
2088
2273
|
{
|
|
2089
2274
|
ref,
|
|
@@ -2096,7 +2281,7 @@ var NavigationMenuContent = React131__namespace.forwardRef(({ className, ...prop
|
|
|
2096
2281
|
));
|
|
2097
2282
|
NavigationMenuContent.displayName = NavigationMenuPrimitive__namespace.Content.displayName;
|
|
2098
2283
|
var NavigationMenuLink = NavigationMenuPrimitive__namespace.Link;
|
|
2099
|
-
var NavigationMenuViewport =
|
|
2284
|
+
var NavigationMenuViewport = React136__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("absolute left-0 top-full flex justify-center"), children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
2100
2285
|
NavigationMenuPrimitive__namespace.Viewport,
|
|
2101
2286
|
{
|
|
2102
2287
|
className: cn(
|
|
@@ -2108,7 +2293,7 @@ var NavigationMenuViewport = React131__namespace.forwardRef(({ className, ...pro
|
|
|
2108
2293
|
}
|
|
2109
2294
|
) }));
|
|
2110
2295
|
NavigationMenuViewport.displayName = NavigationMenuPrimitive__namespace.Viewport.displayName;
|
|
2111
|
-
var NavigationMenuIndicator =
|
|
2296
|
+
var NavigationMenuIndicator = React136__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
2112
2297
|
NavigationMenuPrimitive__namespace.Indicator,
|
|
2113
2298
|
{
|
|
2114
2299
|
ref,
|
|
@@ -2131,7 +2316,7 @@ var Pagination = ({ className, ...props }) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
|
2131
2316
|
}
|
|
2132
2317
|
);
|
|
2133
2318
|
Pagination.displayName = "Pagination";
|
|
2134
|
-
var PaginationContent =
|
|
2319
|
+
var PaginationContent = React136__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
2135
2320
|
"ul",
|
|
2136
2321
|
{
|
|
2137
2322
|
ref,
|
|
@@ -2140,7 +2325,7 @@ var PaginationContent = React131__namespace.forwardRef(({ className, ...props },
|
|
|
2140
2325
|
}
|
|
2141
2326
|
));
|
|
2142
2327
|
PaginationContent.displayName = "PaginationContent";
|
|
2143
|
-
var PaginationItem =
|
|
2328
|
+
var PaginationItem = React136__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx("li", { ref, className: cn("", className), ...props }));
|
|
2144
2329
|
PaginationItem.displayName = "PaginationItem";
|
|
2145
2330
|
var PaginationLink = ({
|
|
2146
2331
|
className,
|
|
@@ -2215,7 +2400,7 @@ PaginationEllipsis.displayName = "PaginationEllipsis";
|
|
|
2215
2400
|
var Popover = PopoverPrimitive__namespace.Root;
|
|
2216
2401
|
var PopoverTrigger = PopoverPrimitive__namespace.Trigger;
|
|
2217
2402
|
var PopoverAnchor = PopoverPrimitive__namespace.Anchor;
|
|
2218
|
-
var PopoverContent =
|
|
2403
|
+
var PopoverContent = React136__namespace.default.forwardRef(({ className, align = "center", sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(PopoverPrimitive__namespace.Portal, { children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
2219
2404
|
PopoverPrimitive__namespace.Content,
|
|
2220
2405
|
{
|
|
2221
2406
|
ref,
|
|
@@ -2232,7 +2417,7 @@ var PopoverContent = React131__namespace.default.forwardRef(({ className, align
|
|
|
2232
2417
|
}
|
|
2233
2418
|
) }));
|
|
2234
2419
|
PopoverContent.displayName = PopoverPrimitive__namespace.Content.displayName;
|
|
2235
|
-
var Progress =
|
|
2420
|
+
var Progress = React136__namespace.default.forwardRef(({ className, value, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
2236
2421
|
ProgressPrimitive__namespace.Root,
|
|
2237
2422
|
{
|
|
2238
2423
|
ref,
|
|
@@ -2248,7 +2433,7 @@ var Progress = React131__namespace.default.forwardRef(({ className, value, ...pr
|
|
|
2248
2433
|
}
|
|
2249
2434
|
));
|
|
2250
2435
|
Progress.displayName = ProgressPrimitive__namespace.Root.displayName;
|
|
2251
|
-
var QrCode =
|
|
2436
|
+
var QrCode = React136__namespace.default.forwardRef(
|
|
2252
2437
|
({
|
|
2253
2438
|
value,
|
|
2254
2439
|
size = 192,
|
|
@@ -2305,9 +2490,9 @@ var QrCode = React131__namespace.default.forwardRef(
|
|
|
2305
2490
|
}
|
|
2306
2491
|
);
|
|
2307
2492
|
QrCode.displayName = "QrCode";
|
|
2308
|
-
var RadioGroup4 =
|
|
2493
|
+
var RadioGroup4 = React136__namespace.default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(RadioGroupPrimitive__namespace.Root, { className: cn("grid gap-2", className), ref, ...props }));
|
|
2309
2494
|
RadioGroup4.displayName = RadioGroupPrimitive__namespace.Root.displayName;
|
|
2310
|
-
var RadioGroupItem =
|
|
2495
|
+
var RadioGroupItem = React136__namespace.default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
2311
2496
|
RadioGroupPrimitive__namespace.Item,
|
|
2312
2497
|
{
|
|
2313
2498
|
ref,
|
|
@@ -2322,12 +2507,12 @@ var RadioGroupItem = React131__namespace.default.forwardRef(({ className, ...pro
|
|
|
2322
2507
|
}
|
|
2323
2508
|
));
|
|
2324
2509
|
RadioGroupItem.displayName = RadioGroupPrimitive__namespace.Item.displayName;
|
|
2325
|
-
var
|
|
2510
|
+
var SIZE2 = {
|
|
2326
2511
|
sm: "h-4 w-4",
|
|
2327
2512
|
md: "h-5 w-5",
|
|
2328
2513
|
lg: "h-6 w-6"
|
|
2329
2514
|
};
|
|
2330
|
-
var Rating =
|
|
2515
|
+
var Rating = React136__namespace.default.forwardRef(
|
|
2331
2516
|
({
|
|
2332
2517
|
value: valueProp,
|
|
2333
2518
|
defaultValue = 0,
|
|
@@ -2343,10 +2528,10 @@ var Rating = React131__namespace.default.forwardRef(
|
|
|
2343
2528
|
...props
|
|
2344
2529
|
}, ref) => {
|
|
2345
2530
|
const isControlled = valueProp !== void 0;
|
|
2346
|
-
const [internal, setInternal] =
|
|
2531
|
+
const [internal, setInternal] = React136__namespace.default.useState(defaultValue);
|
|
2347
2532
|
const value = isControlled ? valueProp : internal;
|
|
2348
2533
|
const step = allowHalf ? 0.5 : 1;
|
|
2349
|
-
const commit =
|
|
2534
|
+
const commit = React136__namespace.default.useCallback(
|
|
2350
2535
|
(next) => {
|
|
2351
2536
|
const clamped = Math.max(0, Math.min(max, next));
|
|
2352
2537
|
if (!isControlled) setInternal(clamped);
|
|
@@ -2393,13 +2578,13 @@ var Rating = React131__namespace.default.forwardRef(
|
|
|
2393
2578
|
children: Array.from({ length: max }).map((_, i) => {
|
|
2394
2579
|
const fillPercent = Math.max(0, Math.min(1, value - i)) * 100;
|
|
2395
2580
|
const Icon2 = /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "relative inline-block leading-none", children: [
|
|
2396
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: cn("block text-muted-foreground/40",
|
|
2581
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: cn("block text-muted-foreground/40", SIZE2[size]), children: emptyIcon ?? /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Star, { className: "h-full w-full", strokeWidth: 1.5 }) }),
|
|
2397
2582
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2398
2583
|
"span",
|
|
2399
2584
|
{
|
|
2400
2585
|
className: cn(
|
|
2401
2586
|
"absolute inset-0 overflow-hidden text-[hsl(var(--primary))]",
|
|
2402
|
-
|
|
2587
|
+
SIZE2[size]
|
|
2403
2588
|
),
|
|
2404
2589
|
style: { width: `${fillPercent}%` },
|
|
2405
2590
|
"aria-hidden": "true",
|
|
@@ -2460,7 +2645,7 @@ var ResizableHandle = ({
|
|
|
2460
2645
|
children: withHandle && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "z-10 flex h-4 w-3 items-center justify-center rounded-sm border bg-border", children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.GripVertical, { className: "h-2.5 w-2.5" }) })
|
|
2461
2646
|
}
|
|
2462
2647
|
);
|
|
2463
|
-
var ScrollArea =
|
|
2648
|
+
var ScrollArea = React136__namespace.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
2464
2649
|
ScrollAreaPrimitive__namespace.Root,
|
|
2465
2650
|
{
|
|
2466
2651
|
ref,
|
|
@@ -2474,7 +2659,7 @@ var ScrollArea = React131__namespace.forwardRef(({ className, children, ...props
|
|
|
2474
2659
|
}
|
|
2475
2660
|
));
|
|
2476
2661
|
ScrollArea.displayName = ScrollAreaPrimitive__namespace.Root.displayName;
|
|
2477
|
-
var ScrollBar =
|
|
2662
|
+
var ScrollBar = React136__namespace.forwardRef(({ className, orientation = "vertical", ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
2478
2663
|
ScrollAreaPrimitive__namespace.ScrollAreaScrollbar,
|
|
2479
2664
|
{
|
|
2480
2665
|
ref,
|
|
@@ -2493,7 +2678,7 @@ ScrollBar.displayName = ScrollAreaPrimitive__namespace.ScrollAreaScrollbar.displ
|
|
|
2493
2678
|
var Select = SelectPrimitive__namespace.Root;
|
|
2494
2679
|
var SelectGroup = SelectPrimitive__namespace.Group;
|
|
2495
2680
|
var SelectValue = SelectPrimitive__namespace.Value;
|
|
2496
|
-
var SelectTrigger =
|
|
2681
|
+
var SelectTrigger = React136__namespace.default.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
2497
2682
|
SelectPrimitive__namespace.Trigger,
|
|
2498
2683
|
{
|
|
2499
2684
|
ref,
|
|
@@ -2513,7 +2698,7 @@ var SelectTrigger = React131__namespace.default.forwardRef(({ className, childre
|
|
|
2513
2698
|
}
|
|
2514
2699
|
));
|
|
2515
2700
|
SelectTrigger.displayName = SelectPrimitive__namespace.Trigger.displayName;
|
|
2516
|
-
var SelectScrollUpButton =
|
|
2701
|
+
var SelectScrollUpButton = React136__namespace.default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
2517
2702
|
SelectPrimitive__namespace.ScrollUpButton,
|
|
2518
2703
|
{
|
|
2519
2704
|
ref,
|
|
@@ -2523,7 +2708,7 @@ var SelectScrollUpButton = React131__namespace.default.forwardRef(({ className,
|
|
|
2523
2708
|
}
|
|
2524
2709
|
));
|
|
2525
2710
|
SelectScrollUpButton.displayName = SelectPrimitive__namespace.ScrollUpButton.displayName;
|
|
2526
|
-
var SelectScrollDownButton =
|
|
2711
|
+
var SelectScrollDownButton = React136__namespace.default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
2527
2712
|
SelectPrimitive__namespace.ScrollDownButton,
|
|
2528
2713
|
{
|
|
2529
2714
|
ref,
|
|
@@ -2533,7 +2718,7 @@ var SelectScrollDownButton = React131__namespace.default.forwardRef(({ className
|
|
|
2533
2718
|
}
|
|
2534
2719
|
));
|
|
2535
2720
|
SelectScrollDownButton.displayName = SelectPrimitive__namespace.ScrollDownButton.displayName;
|
|
2536
|
-
var SelectContent =
|
|
2721
|
+
var SelectContent = React136__namespace.default.forwardRef(({ className, children, position = "popper", ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(SelectPrimitive__namespace.Portal, { children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
2537
2722
|
SelectPrimitive__namespace.Content,
|
|
2538
2723
|
{
|
|
2539
2724
|
ref,
|
|
@@ -2560,7 +2745,7 @@ var SelectContent = React131__namespace.default.forwardRef(({ className, childre
|
|
|
2560
2745
|
}
|
|
2561
2746
|
) }));
|
|
2562
2747
|
SelectContent.displayName = SelectPrimitive__namespace.Content.displayName;
|
|
2563
|
-
var SelectLabel =
|
|
2748
|
+
var SelectLabel = React136__namespace.default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
2564
2749
|
SelectPrimitive__namespace.Label,
|
|
2565
2750
|
{
|
|
2566
2751
|
ref,
|
|
@@ -2569,7 +2754,7 @@ var SelectLabel = React131__namespace.default.forwardRef(({ className, ...props
|
|
|
2569
2754
|
}
|
|
2570
2755
|
));
|
|
2571
2756
|
SelectLabel.displayName = SelectPrimitive__namespace.Label.displayName;
|
|
2572
|
-
var SelectItem =
|
|
2757
|
+
var SelectItem = React136__namespace.default.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
2573
2758
|
SelectPrimitive__namespace.Item,
|
|
2574
2759
|
{
|
|
2575
2760
|
ref,
|
|
@@ -2587,7 +2772,7 @@ var SelectItem = React131__namespace.default.forwardRef(({ className, children,
|
|
|
2587
2772
|
}
|
|
2588
2773
|
));
|
|
2589
2774
|
SelectItem.displayName = SelectPrimitive__namespace.Item.displayName;
|
|
2590
|
-
var SelectSeparator =
|
|
2775
|
+
var SelectSeparator = React136__namespace.default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
2591
2776
|
SelectPrimitive__namespace.Separator,
|
|
2592
2777
|
{
|
|
2593
2778
|
ref,
|
|
@@ -2596,7 +2781,7 @@ var SelectSeparator = React131__namespace.default.forwardRef(({ className, ...pr
|
|
|
2596
2781
|
}
|
|
2597
2782
|
));
|
|
2598
2783
|
SelectSeparator.displayName = SelectPrimitive__namespace.Separator.displayName;
|
|
2599
|
-
var Separator6 =
|
|
2784
|
+
var Separator6 = React136__namespace.default.forwardRef(({ className, orientation = "horizontal", decorative = true, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
2600
2785
|
SeparatorPrimitive__namespace.Root,
|
|
2601
2786
|
{
|
|
2602
2787
|
ref,
|
|
@@ -2615,7 +2800,7 @@ var Sheet = DialogPrimitive__namespace.Root;
|
|
|
2615
2800
|
var SheetTrigger = DialogPrimitive__namespace.Trigger;
|
|
2616
2801
|
var SheetClose = DialogPrimitive__namespace.Close;
|
|
2617
2802
|
var SheetPortal = DialogPrimitive__namespace.Portal;
|
|
2618
|
-
var SheetOverlay =
|
|
2803
|
+
var SheetOverlay = React136__namespace.default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
2619
2804
|
DialogPrimitive__namespace.Overlay,
|
|
2620
2805
|
{
|
|
2621
2806
|
ref,
|
|
@@ -2643,7 +2828,7 @@ var sheetVariants = classVarianceAuthority.cva(
|
|
|
2643
2828
|
defaultVariants: { side: "right" }
|
|
2644
2829
|
}
|
|
2645
2830
|
);
|
|
2646
|
-
var SheetContent =
|
|
2831
|
+
var SheetContent = React136__namespace.default.forwardRef(({ side = "right", className, children, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(SheetPortal, { children: [
|
|
2647
2832
|
/* @__PURE__ */ jsxRuntime.jsx(SheetOverlay, {}),
|
|
2648
2833
|
/* @__PURE__ */ jsxRuntime.jsxs(DialogPrimitive__namespace.Content, { ref, className: cn(sheetVariants({ side }), className), ...props, children: [
|
|
2649
2834
|
/* @__PURE__ */ jsxRuntime.jsxs(DialogPrimitive__namespace.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: [
|
|
@@ -2656,9 +2841,9 @@ var SheetContent = React131__namespace.default.forwardRef(({ side = "right", cla
|
|
|
2656
2841
|
SheetContent.displayName = DialogPrimitive__namespace.Content.displayName;
|
|
2657
2842
|
var SheetHeader = ({ className, ...props }) => /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("flex flex-col space-y-2 text-center sm:text-left", className), ...props });
|
|
2658
2843
|
var SheetFooter = ({ className, ...props }) => /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2", className), ...props });
|
|
2659
|
-
var SheetTitle =
|
|
2844
|
+
var SheetTitle = React136__namespace.default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(DialogPrimitive__namespace.Title, { ref, className: cn("text-lg font-semibold", className), ...props }));
|
|
2660
2845
|
SheetTitle.displayName = DialogPrimitive__namespace.Title.displayName;
|
|
2661
|
-
var SheetDescription =
|
|
2846
|
+
var SheetDescription = React136__namespace.default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(DialogPrimitive__namespace.Description, { ref, className: cn("text-sm text-[hsl(var(--muted-foreground))]", className), ...props }));
|
|
2662
2847
|
SheetDescription.displayName = DialogPrimitive__namespace.Description.displayName;
|
|
2663
2848
|
function Skeleton({ className, ...props }) {
|
|
2664
2849
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -2669,7 +2854,7 @@ function Skeleton({ className, ...props }) {
|
|
|
2669
2854
|
}
|
|
2670
2855
|
);
|
|
2671
2856
|
}
|
|
2672
|
-
var Slider =
|
|
2857
|
+
var Slider = React136__namespace.default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
2673
2858
|
SliderPrimitive__namespace.Root,
|
|
2674
2859
|
{
|
|
2675
2860
|
ref,
|
|
@@ -2693,7 +2878,7 @@ function Spinner({ className, ...props }) {
|
|
|
2693
2878
|
}
|
|
2694
2879
|
);
|
|
2695
2880
|
}
|
|
2696
|
-
var Switch =
|
|
2881
|
+
var Switch = React136__namespace.default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
2697
2882
|
SwitchPrimitive__namespace.Root,
|
|
2698
2883
|
{
|
|
2699
2884
|
ref,
|
|
@@ -2719,7 +2904,7 @@ var Switch = React131__namespace.default.forwardRef(({ className, ...props }, re
|
|
|
2719
2904
|
}
|
|
2720
2905
|
));
|
|
2721
2906
|
Switch.displayName = SwitchPrimitive__namespace.Root.displayName;
|
|
2722
|
-
var Table =
|
|
2907
|
+
var Table = React136__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx("div", { className: "relative w-full overflow-auto", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
2723
2908
|
"table",
|
|
2724
2909
|
{
|
|
2725
2910
|
ref,
|
|
@@ -2728,9 +2913,9 @@ var Table = React131__namespace.forwardRef(({ className, ...props }, ref) => /*
|
|
|
2728
2913
|
}
|
|
2729
2914
|
) }));
|
|
2730
2915
|
Table.displayName = "Table";
|
|
2731
|
-
var TableHeader =
|
|
2916
|
+
var TableHeader = React136__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx("thead", { ref, className: cn("[&_tr]:border-b", className), ...props }));
|
|
2732
2917
|
TableHeader.displayName = "TableHeader";
|
|
2733
|
-
var TableBody =
|
|
2918
|
+
var TableBody = React136__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
2734
2919
|
"tbody",
|
|
2735
2920
|
{
|
|
2736
2921
|
ref,
|
|
@@ -2739,7 +2924,7 @@ var TableBody = React131__namespace.forwardRef(({ className, ...props }, ref) =>
|
|
|
2739
2924
|
}
|
|
2740
2925
|
));
|
|
2741
2926
|
TableBody.displayName = "TableBody";
|
|
2742
|
-
var TableFooter =
|
|
2927
|
+
var TableFooter = React136__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
2743
2928
|
"tfoot",
|
|
2744
2929
|
{
|
|
2745
2930
|
ref,
|
|
@@ -2751,7 +2936,7 @@ var TableFooter = React131__namespace.forwardRef(({ className, ...props }, ref)
|
|
|
2751
2936
|
}
|
|
2752
2937
|
));
|
|
2753
2938
|
TableFooter.displayName = "TableFooter";
|
|
2754
|
-
var TableRow =
|
|
2939
|
+
var TableRow = React136__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
2755
2940
|
"tr",
|
|
2756
2941
|
{
|
|
2757
2942
|
ref,
|
|
@@ -2763,7 +2948,7 @@ var TableRow = React131__namespace.forwardRef(({ className, ...props }, ref) =>
|
|
|
2763
2948
|
}
|
|
2764
2949
|
));
|
|
2765
2950
|
TableRow.displayName = "TableRow";
|
|
2766
|
-
var TableHead =
|
|
2951
|
+
var TableHead = React136__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
2767
2952
|
"th",
|
|
2768
2953
|
{
|
|
2769
2954
|
ref,
|
|
@@ -2775,7 +2960,7 @@ var TableHead = React131__namespace.forwardRef(({ className, ...props }, ref) =>
|
|
|
2775
2960
|
}
|
|
2776
2961
|
));
|
|
2777
2962
|
TableHead.displayName = "TableHead";
|
|
2778
|
-
var TableCell =
|
|
2963
|
+
var TableCell = React136__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
2779
2964
|
"td",
|
|
2780
2965
|
{
|
|
2781
2966
|
ref,
|
|
@@ -2787,7 +2972,7 @@ var TableCell = React131__namespace.forwardRef(({ className, ...props }, ref) =>
|
|
|
2787
2972
|
}
|
|
2788
2973
|
));
|
|
2789
2974
|
TableCell.displayName = "TableCell";
|
|
2790
|
-
var TableCaption =
|
|
2975
|
+
var TableCaption = React136__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
2791
2976
|
"caption",
|
|
2792
2977
|
{
|
|
2793
2978
|
ref,
|
|
@@ -2797,7 +2982,7 @@ var TableCaption = React131__namespace.forwardRef(({ className, ...props }, ref)
|
|
|
2797
2982
|
));
|
|
2798
2983
|
TableCaption.displayName = "TableCaption";
|
|
2799
2984
|
var Tabs = TabsPrimitive__namespace.Root;
|
|
2800
|
-
var TabsList =
|
|
2985
|
+
var TabsList = React136__namespace.default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
2801
2986
|
TabsPrimitive__namespace.List,
|
|
2802
2987
|
{
|
|
2803
2988
|
ref,
|
|
@@ -2809,7 +2994,7 @@ var TabsList = React131__namespace.default.forwardRef(({ className, ...props },
|
|
|
2809
2994
|
}
|
|
2810
2995
|
));
|
|
2811
2996
|
TabsList.displayName = TabsPrimitive__namespace.List.displayName;
|
|
2812
|
-
var TabsTrigger =
|
|
2997
|
+
var TabsTrigger = React136__namespace.default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
2813
2998
|
TabsPrimitive__namespace.Trigger,
|
|
2814
2999
|
{
|
|
2815
3000
|
ref,
|
|
@@ -2824,7 +3009,7 @@ var TabsTrigger = React131__namespace.default.forwardRef(({ className, ...props
|
|
|
2824
3009
|
}
|
|
2825
3010
|
));
|
|
2826
3011
|
TabsTrigger.displayName = TabsPrimitive__namespace.Trigger.displayName;
|
|
2827
|
-
var TabsContent =
|
|
3012
|
+
var TabsContent = React136__namespace.default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
2828
3013
|
TabsPrimitive__namespace.Content,
|
|
2829
3014
|
{
|
|
2830
3015
|
ref,
|
|
@@ -2836,7 +3021,7 @@ var TabsContent = React131__namespace.default.forwardRef(({ className, ...props
|
|
|
2836
3021
|
}
|
|
2837
3022
|
));
|
|
2838
3023
|
TabsContent.displayName = TabsPrimitive__namespace.Content.displayName;
|
|
2839
|
-
var Textarea =
|
|
3024
|
+
var Textarea = React136__namespace.default.forwardRef(
|
|
2840
3025
|
({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
2841
3026
|
"textarea",
|
|
2842
3027
|
{
|
|
@@ -2854,7 +3039,7 @@ var Textarea = React131__namespace.default.forwardRef(
|
|
|
2854
3039
|
)
|
|
2855
3040
|
);
|
|
2856
3041
|
Textarea.displayName = "Textarea";
|
|
2857
|
-
var TextureCard =
|
|
3042
|
+
var TextureCard = React136__namespace.forwardRef(
|
|
2858
3043
|
({ children, className, padding = true, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
2859
3044
|
"div",
|
|
2860
3045
|
{
|
|
@@ -2871,15 +3056,15 @@ var TextureCard = React131__namespace.forwardRef(
|
|
|
2871
3056
|
)
|
|
2872
3057
|
);
|
|
2873
3058
|
TextureCard.displayName = "TextureCard";
|
|
2874
|
-
var TextureCardHeader =
|
|
3059
|
+
var TextureCardHeader = React136__namespace.forwardRef(
|
|
2875
3060
|
({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx("div", { ref, className: cn("flex flex-col gap-1.5 mb-4", className), ...props })
|
|
2876
3061
|
);
|
|
2877
3062
|
TextureCardHeader.displayName = "TextureCardHeader";
|
|
2878
|
-
var TextureCardTitle =
|
|
3063
|
+
var TextureCardTitle = React136__namespace.forwardRef(
|
|
2879
3064
|
({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx("h3", { ref, className: cn("font-semibold text-base leading-tight tracking-tight text-foreground", className), ...props })
|
|
2880
3065
|
);
|
|
2881
3066
|
TextureCardTitle.displayName = "TextureCardTitle";
|
|
2882
|
-
var TextureCardDescription =
|
|
3067
|
+
var TextureCardDescription = React136__namespace.forwardRef(
|
|
2883
3068
|
({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx("p", { ref, className: cn("text-sm text-muted-foreground", className), ...props })
|
|
2884
3069
|
);
|
|
2885
3070
|
TextureCardDescription.displayName = "TextureCardDescription";
|
|
@@ -2903,7 +3088,7 @@ var toggleVariants = classVarianceAuthority.cva(
|
|
|
2903
3088
|
}
|
|
2904
3089
|
}
|
|
2905
3090
|
);
|
|
2906
|
-
var Toggle =
|
|
3091
|
+
var Toggle = React136__namespace.forwardRef(({ className, variant, size, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
2907
3092
|
TogglePrimitive__namespace.Root,
|
|
2908
3093
|
{
|
|
2909
3094
|
ref,
|
|
@@ -2912,11 +3097,11 @@ var Toggle = React131__namespace.forwardRef(({ className, variant, size, ...prop
|
|
|
2912
3097
|
}
|
|
2913
3098
|
));
|
|
2914
3099
|
Toggle.displayName = TogglePrimitive__namespace.Root.displayName;
|
|
2915
|
-
var ToggleGroupContext =
|
|
3100
|
+
var ToggleGroupContext = React136__namespace.createContext({
|
|
2916
3101
|
size: "default",
|
|
2917
3102
|
variant: "default"
|
|
2918
3103
|
});
|
|
2919
|
-
var ToggleGroup =
|
|
3104
|
+
var ToggleGroup = React136__namespace.forwardRef(({ className, variant, size, children, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
2920
3105
|
ToggleGroupPrimitive__namespace.Root,
|
|
2921
3106
|
{
|
|
2922
3107
|
ref,
|
|
@@ -2926,8 +3111,8 @@ var ToggleGroup = React131__namespace.forwardRef(({ className, variant, size, ch
|
|
|
2926
3111
|
}
|
|
2927
3112
|
));
|
|
2928
3113
|
ToggleGroup.displayName = ToggleGroupPrimitive__namespace.Root.displayName;
|
|
2929
|
-
var ToggleGroupItem =
|
|
2930
|
-
const context =
|
|
3114
|
+
var ToggleGroupItem = React136__namespace.forwardRef(({ className, children, variant, size, ...props }, ref) => {
|
|
3115
|
+
const context = React136__namespace.useContext(ToggleGroupContext);
|
|
2931
3116
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
2932
3117
|
ToggleGroupPrimitive__namespace.Item,
|
|
2933
3118
|
{
|
|
@@ -2948,7 +3133,7 @@ ToggleGroupItem.displayName = ToggleGroupPrimitive__namespace.Item.displayName;
|
|
|
2948
3133
|
var TooltipProvider = TooltipPrimitive__namespace.Provider;
|
|
2949
3134
|
var Tooltip2 = TooltipPrimitive__namespace.Root;
|
|
2950
3135
|
var TooltipTrigger = TooltipPrimitive__namespace.Trigger;
|
|
2951
|
-
var TooltipContent =
|
|
3136
|
+
var TooltipContent = React136__namespace.default.forwardRef(({ className, sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(TooltipPrimitive__namespace.Portal, { children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
2952
3137
|
TooltipPrimitive__namespace.Content,
|
|
2953
3138
|
{
|
|
2954
3139
|
ref,
|
|
@@ -2964,6 +3149,52 @@ var TooltipContent = React131__namespace.default.forwardRef(({ className, sideOf
|
|
|
2964
3149
|
}
|
|
2965
3150
|
) }));
|
|
2966
3151
|
TooltipContent.displayName = TooltipPrimitive__namespace.Content.displayName;
|
|
3152
|
+
var VariantPicker = React136__namespace.default.forwardRef(
|
|
3153
|
+
({ label, options, value: valueProp, defaultValue, onValueChange, className, ...props }, ref) => {
|
|
3154
|
+
const isControlled = valueProp !== void 0;
|
|
3155
|
+
const [internal, setInternal] = React136__namespace.default.useState(defaultValue);
|
|
3156
|
+
const value = isControlled ? valueProp : internal;
|
|
3157
|
+
const select = (v) => {
|
|
3158
|
+
if (!isControlled) setInternal(v);
|
|
3159
|
+
onValueChange?.(v);
|
|
3160
|
+
};
|
|
3161
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { ref, role: "radiogroup", "aria-label": label, className: cn("flex flex-col gap-2", className), ...props, children: [
|
|
3162
|
+
label && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-xs font-semibold uppercase tracking-wide text-muted-foreground", children: label }),
|
|
3163
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-wrap gap-2", children: options.map((opt) => {
|
|
3164
|
+
const selected = value === opt.value;
|
|
3165
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
3166
|
+
"button",
|
|
3167
|
+
{
|
|
3168
|
+
type: "button",
|
|
3169
|
+
role: "radio",
|
|
3170
|
+
"aria-checked": selected,
|
|
3171
|
+
disabled: opt.disabled,
|
|
3172
|
+
onClick: () => select(opt.value),
|
|
3173
|
+
className: cn(
|
|
3174
|
+
"inline-flex items-center gap-2 rounded-md border px-3 py-1.5 text-sm font-medium transition-colors",
|
|
3175
|
+
"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",
|
|
3176
|
+
selected ? "border-primary bg-primary/10 text-[hsl(var(--primary))]" : "border-border hover:bg-accent hover:text-accent-foreground",
|
|
3177
|
+
opt.disabled && "cursor-not-allowed text-muted-foreground line-through opacity-50"
|
|
3178
|
+
),
|
|
3179
|
+
children: [
|
|
3180
|
+
opt.swatch && /* @__PURE__ */ jsxRuntime.jsx(
|
|
3181
|
+
"span",
|
|
3182
|
+
{
|
|
3183
|
+
"aria-hidden": "true",
|
|
3184
|
+
className: "h-4 w-4 rounded-full border border-border",
|
|
3185
|
+
style: { backgroundColor: opt.swatch }
|
|
3186
|
+
}
|
|
3187
|
+
),
|
|
3188
|
+
opt.label
|
|
3189
|
+
]
|
|
3190
|
+
},
|
|
3191
|
+
opt.value
|
|
3192
|
+
);
|
|
3193
|
+
}) })
|
|
3194
|
+
] });
|
|
3195
|
+
}
|
|
3196
|
+
);
|
|
3197
|
+
VariantPicker.displayName = "VariantPicker";
|
|
2967
3198
|
var bannerVariants = classVarianceAuthority.cva(
|
|
2968
3199
|
"relative flex items-start gap-3 rounded-lg border px-4 py-3.5 text-sm transition-all",
|
|
2969
3200
|
{
|
|
@@ -3060,8 +3291,8 @@ function Banner({
|
|
|
3060
3291
|
className,
|
|
3061
3292
|
children
|
|
3062
3293
|
}) {
|
|
3063
|
-
const [dismissed, setDismissed] =
|
|
3064
|
-
const [exiting, setExiting] =
|
|
3294
|
+
const [dismissed, setDismissed] = React136__namespace.default.useState(false);
|
|
3295
|
+
const [exiting, setExiting] = React136__namespace.default.useState(false);
|
|
3065
3296
|
const handleDismiss = () => {
|
|
3066
3297
|
setExiting(true);
|
|
3067
3298
|
setTimeout(() => {
|
|
@@ -3122,7 +3353,7 @@ function BreadcrumbSeparator({ className }) {
|
|
|
3122
3353
|
return /* @__PURE__ */ jsxRuntime.jsx("li", { role: "presentation", "aria-hidden": "true", className: cn("flex items-center text-[hsl(var(--muted-foreground))]", className), children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronRight, { className: "h-3.5 w-3.5" }) });
|
|
3123
3354
|
}
|
|
3124
3355
|
function Breadcrumb({ children, className }) {
|
|
3125
|
-
const items =
|
|
3356
|
+
const items = React136__namespace.default.Children.toArray(children);
|
|
3126
3357
|
const withSeparators = [];
|
|
3127
3358
|
items.forEach((item, i) => {
|
|
3128
3359
|
withSeparators.push(item);
|
|
@@ -3152,8 +3383,8 @@ function CommandItem2({ icon, label, description, shortcut, active, onClick, cla
|
|
|
3152
3383
|
);
|
|
3153
3384
|
}
|
|
3154
3385
|
function EditableCell({ value: initial, onSave }) {
|
|
3155
|
-
const [editing, setEditing] =
|
|
3156
|
-
const [val, setVal] =
|
|
3386
|
+
const [editing, setEditing] = React136__namespace.default.useState(false);
|
|
3387
|
+
const [val, setVal] = React136__namespace.default.useState(String(initial ?? ""));
|
|
3157
3388
|
const commit = () => {
|
|
3158
3389
|
onSave(val);
|
|
3159
3390
|
setEditing(false);
|
|
@@ -3184,10 +3415,10 @@ var selectionCol = () => ({
|
|
|
3184
3415
|
enableResizing: false
|
|
3185
3416
|
});
|
|
3186
3417
|
function DataGrid({ columns, data: initialData, onDataChange, editable, className }) {
|
|
3187
|
-
const [data, setData] =
|
|
3188
|
-
const [rowSelection, setRowSelection] =
|
|
3418
|
+
const [data, setData] = React136__namespace.default.useState(initialData);
|
|
3419
|
+
const [rowSelection, setRowSelection] = React136__namespace.default.useState({});
|
|
3189
3420
|
const columnResizeMode = "onChange";
|
|
3190
|
-
const editableColumns =
|
|
3421
|
+
const editableColumns = React136__namespace.default.useMemo(() => {
|
|
3191
3422
|
if (!editable) return columns;
|
|
3192
3423
|
return columns.map((col) => ({
|
|
3193
3424
|
...col,
|
|
@@ -3206,7 +3437,7 @@ function DataGrid({ columns, data: initialData, onDataChange, editable, classNam
|
|
|
3206
3437
|
)
|
|
3207
3438
|
}));
|
|
3208
3439
|
}, [columns, data, editable, onDataChange]);
|
|
3209
|
-
const allColumns =
|
|
3440
|
+
const allColumns = React136__namespace.default.useMemo(() => [selectionCol(), ...editableColumns], [editableColumns]);
|
|
3210
3441
|
const table = reactTable.useReactTable({
|
|
3211
3442
|
data,
|
|
3212
3443
|
columns: allColumns,
|
|
@@ -3277,7 +3508,7 @@ function DataTableToolbar({ table, searchColumn }) {
|
|
|
3277
3508
|
) });
|
|
3278
3509
|
}
|
|
3279
3510
|
function DataTable({ columns, data, pageSize = 10, searchable, searchColumn, loading }) {
|
|
3280
|
-
const [sorting, setSorting] =
|
|
3511
|
+
const [sorting, setSorting] = React136__namespace.default.useState([]);
|
|
3281
3512
|
const table = reactTable.useReactTable({
|
|
3282
3513
|
data,
|
|
3283
3514
|
columns,
|
|
@@ -3302,7 +3533,7 @@ function DataTable({ columns, data, pageSize = 10, searchable, searchColumn, loa
|
|
|
3302
3533
|
/* @__PURE__ */ jsxRuntime.jsx(DataTablePagination, { table })
|
|
3303
3534
|
] });
|
|
3304
3535
|
}
|
|
3305
|
-
var EmptyStateIcon =
|
|
3536
|
+
var EmptyStateIcon = React136__namespace.default.forwardRef(
|
|
3306
3537
|
({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.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 })
|
|
3307
3538
|
);
|
|
3308
3539
|
EmptyStateIcon.displayName = "EmptyStateIcon";
|
|
@@ -3417,7 +3648,7 @@ function Persona({ name, subtitle, src, size = "md", badge, className }) {
|
|
|
3417
3648
|
] })
|
|
3418
3649
|
] });
|
|
3419
3650
|
}
|
|
3420
|
-
var PropertyList =
|
|
3651
|
+
var PropertyList = React136__namespace.default.forwardRef(
|
|
3421
3652
|
({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx("dl", { ref, className: cn("divide-y divide-[hsl(var(--border))]", className), ...props })
|
|
3422
3653
|
);
|
|
3423
3654
|
PropertyList.displayName = "PropertyList";
|
|
@@ -3503,7 +3734,7 @@ function StructuredListItem({ left, title, description, right, onClick, classNam
|
|
|
3503
3734
|
}
|
|
3504
3735
|
);
|
|
3505
3736
|
}
|
|
3506
|
-
var StructuredList =
|
|
3737
|
+
var StructuredList = React136__namespace.default.forwardRef(
|
|
3507
3738
|
({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx("div", { ref, className: cn("space-y-4", className), ...props })
|
|
3508
3739
|
);
|
|
3509
3740
|
StructuredList.displayName = "StructuredList";
|
|
@@ -3513,7 +3744,7 @@ var dotColors = {
|
|
|
3513
3744
|
error: "bg-red-500",
|
|
3514
3745
|
warning: "bg-yellow-500"
|
|
3515
3746
|
};
|
|
3516
|
-
var TimelineContent =
|
|
3747
|
+
var TimelineContent = React136__namespace.default.forwardRef(
|
|
3517
3748
|
({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx("div", { ref, className: cn("pb-1", className), ...props })
|
|
3518
3749
|
);
|
|
3519
3750
|
TimelineContent.displayName = "TimelineContent";
|
|
@@ -3536,9 +3767,9 @@ function TimelineItem({ icon, title, description, timestamp, variant = "default"
|
|
|
3536
3767
|
] });
|
|
3537
3768
|
}
|
|
3538
3769
|
function Timeline({ children, className }) {
|
|
3539
|
-
const items =
|
|
3770
|
+
const items = React136__namespace.default.Children.toArray(children);
|
|
3540
3771
|
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("", className), children: items.map(
|
|
3541
|
-
(child, i) =>
|
|
3772
|
+
(child, i) => React136__namespace.default.isValidElement(child) ? React136__namespace.default.cloneElement(child, { isLast: i === items.length - 1 }) : child
|
|
3542
3773
|
) });
|
|
3543
3774
|
}
|
|
3544
3775
|
var INITIAL_MESSAGES = [
|
|
@@ -3563,8 +3794,8 @@ function ChatBubble({ msg }) {
|
|
|
3563
3794
|
] });
|
|
3564
3795
|
}
|
|
3565
3796
|
function ChatDetail({ className }) {
|
|
3566
|
-
const [messages, setMessages] =
|
|
3567
|
-
const [input, setInput] =
|
|
3797
|
+
const [messages, setMessages] = React136.useState(INITIAL_MESSAGES);
|
|
3798
|
+
const [input, setInput] = React136.useState("");
|
|
3568
3799
|
const send = () => {
|
|
3569
3800
|
if (!input.trim()) return;
|
|
3570
3801
|
const now = (/* @__PURE__ */ new Date()).toLocaleTimeString([], { hour: "2-digit", minute: "2-digit" });
|
|
@@ -3597,9 +3828,9 @@ function ChatDetail({ className }) {
|
|
|
3597
3828
|
}
|
|
3598
3829
|
var REACTIONS = ["\u{1F60A}", "\u{1F610}", "\u{1F615}", "\u{1F621}", "\u{1F929}"];
|
|
3599
3830
|
function FeedbackModal({ onSubmit, className }) {
|
|
3600
|
-
const [reaction, setReaction] =
|
|
3601
|
-
const [text, setText] =
|
|
3602
|
-
const [submitted, setSubmitted] =
|
|
3831
|
+
const [reaction, setReaction] = React136.useState("");
|
|
3832
|
+
const [text, setText] = React136.useState("");
|
|
3833
|
+
const [submitted, setSubmitted] = React136.useState(false);
|
|
3603
3834
|
const handleSubmit = () => {
|
|
3604
3835
|
onSubmit?.({ reaction, text });
|
|
3605
3836
|
setSubmitted(true);
|
|
@@ -3722,7 +3953,7 @@ function FileRow({ file, onDelete }) {
|
|
|
3722
3953
|
] });
|
|
3723
3954
|
}
|
|
3724
3955
|
function FilesList({ className }) {
|
|
3725
|
-
const [files, setFiles] =
|
|
3956
|
+
const [files, setFiles] = React136__namespace.default.useState(FILES2);
|
|
3726
3957
|
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("rounded-md border border-[hsl(var(--border))] overflow-hidden", className), children: /* @__PURE__ */ jsxRuntime.jsxs("table", { className: "w-full", children: [
|
|
3727
3958
|
/* @__PURE__ */ jsxRuntime.jsx("thead", { className: "bg-[hsl(var(--muted)/0.5)]", children: /* @__PURE__ */ jsxRuntime.jsx("tr", { children: ["Name", "Type", "Size", "Modified", ""].map((h) => /* @__PURE__ */ jsxRuntime.jsx("th", { className: "px-4 py-2.5 text-left text-xs font-medium text-[hsl(var(--muted-foreground))]", children: h }, h)) }) }),
|
|
3728
3959
|
/* @__PURE__ */ jsxRuntime.jsx("tbody", { children: files.map((f) => /* @__PURE__ */ jsxRuntime.jsx(FileRow, { file: f, onDelete: () => setFiles((fs) => fs.filter((x) => x.id !== f.id)) }, f.id)) })
|
|
@@ -3735,7 +3966,7 @@ function IntegrationCard({
|
|
|
3735
3966
|
connected = false,
|
|
3736
3967
|
className
|
|
3737
3968
|
}) {
|
|
3738
|
-
const [isConnected, setIsConnected] =
|
|
3969
|
+
const [isConnected, setIsConnected] = React136.useState(connected);
|
|
3739
3970
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("flex items-center gap-4 rounded-md border border-[hsl(var(--border))] bg-[hsl(var(--card))] p-4", className), children: [
|
|
3740
3971
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex h-10 w-10 shrink-0 items-center justify-center rounded-md bg-[hsl(var(--muted))] text-[hsl(var(--muted-foreground))]", children: icon ?? /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-base font-bold", children: name[0] }) }),
|
|
3741
3972
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex-1 min-w-0", children: [
|
|
@@ -3769,9 +4000,9 @@ var PENDING = [
|
|
|
3769
4000
|
{ email: "sam@startup.io", role: "Viewer" }
|
|
3770
4001
|
];
|
|
3771
4002
|
function InviteModal({ className }) {
|
|
3772
|
-
const [email, setEmail] =
|
|
3773
|
-
const [role, setRole] =
|
|
3774
|
-
const [pending, setPending] =
|
|
4003
|
+
const [email, setEmail] = React136.useState("");
|
|
4004
|
+
const [role, setRole] = React136.useState("Member");
|
|
4005
|
+
const [pending, setPending] = React136.useState(PENDING);
|
|
3775
4006
|
const invite = () => {
|
|
3776
4007
|
if (!email.trim()) return;
|
|
3777
4008
|
setPending((p) => [...p, { email: email.trim(), role }]);
|
|
@@ -3818,9 +4049,9 @@ var INITIAL_TAGS = [
|
|
|
3818
4049
|
{ id: "4", name: "Research", color: "bg-purple-500" }
|
|
3819
4050
|
];
|
|
3820
4051
|
function ManageTagsModal({ className }) {
|
|
3821
|
-
const [tags, setTags] =
|
|
3822
|
-
const [newTag, setNewTag] =
|
|
3823
|
-
const [colorIdx, setColorIdx] =
|
|
4052
|
+
const [tags, setTags] = React136.useState(INITIAL_TAGS);
|
|
4053
|
+
const [newTag, setNewTag] = React136.useState("");
|
|
4054
|
+
const [colorIdx, setColorIdx] = React136.useState(0);
|
|
3824
4055
|
const addTag = () => {
|
|
3825
4056
|
if (!newTag.trim()) return;
|
|
3826
4057
|
const id = `tag-${Date.now()}`;
|
|
@@ -4022,13 +4253,13 @@ function Heatmap({
|
|
|
4022
4253
|
showLegend = true,
|
|
4023
4254
|
formatTooltip
|
|
4024
4255
|
}) {
|
|
4025
|
-
const valueByDate =
|
|
4256
|
+
const valueByDate = React136.useMemo(() => {
|
|
4026
4257
|
const m = /* @__PURE__ */ new Map();
|
|
4027
4258
|
for (const d of data) m.set(d.date, d.value);
|
|
4028
4259
|
return m;
|
|
4029
4260
|
}, [data]);
|
|
4030
|
-
const max =
|
|
4031
|
-
const grid =
|
|
4261
|
+
const max = React136.useMemo(() => Math.max(1, ...data.map((d) => d.value)), [data]);
|
|
4262
|
+
const grid = React136.useMemo(() => {
|
|
4032
4263
|
const end = startOfWeek(endDate);
|
|
4033
4264
|
end.setDate(end.getDate() + 6);
|
|
4034
4265
|
const cols = [];
|
|
@@ -4046,7 +4277,7 @@ function Heatmap({
|
|
|
4046
4277
|
}
|
|
4047
4278
|
return cols;
|
|
4048
4279
|
}, [endDate, weeks, valueByDate]);
|
|
4049
|
-
const monthLabels =
|
|
4280
|
+
const monthLabels = React136.useMemo(() => {
|
|
4050
4281
|
const labels = [];
|
|
4051
4282
|
let lastMonth = -1;
|
|
4052
4283
|
grid.forEach((col, i) => {
|
|
@@ -4217,9 +4448,9 @@ function apply(mode) {
|
|
|
4217
4448
|
document.documentElement.classList.toggle("dark", isDark);
|
|
4218
4449
|
}
|
|
4219
4450
|
function ThemeSwitch({ defaultMode, onChange, className, variant = "segmented" }) {
|
|
4220
|
-
const [mode, setMode] =
|
|
4221
|
-
const didMount =
|
|
4222
|
-
|
|
4451
|
+
const [mode, setMode] = React136__namespace.default.useState(() => defaultMode ?? readInitial());
|
|
4452
|
+
const didMount = React136__namespace.default.useRef(false);
|
|
4453
|
+
React136__namespace.default.useEffect(() => {
|
|
4223
4454
|
if (!didMount.current) {
|
|
4224
4455
|
didMount.current = true;
|
|
4225
4456
|
return;
|
|
@@ -4231,7 +4462,7 @@ function ThemeSwitch({ defaultMode, onChange, className, variant = "segmented" }
|
|
|
4231
4462
|
}
|
|
4232
4463
|
onChange?.(mode);
|
|
4233
4464
|
}, [mode, onChange]);
|
|
4234
|
-
|
|
4465
|
+
React136__namespace.default.useEffect(() => {
|
|
4235
4466
|
if (mode !== "system" || typeof window === "undefined") return;
|
|
4236
4467
|
const mql = window.matchMedia("(prefers-color-scheme: dark)");
|
|
4237
4468
|
const handler = () => apply("system");
|
|
@@ -4322,7 +4553,7 @@ function FloatingActionButton({
|
|
|
4322
4553
|
position = "bottom-right",
|
|
4323
4554
|
className
|
|
4324
4555
|
}) {
|
|
4325
|
-
const [open, setOpen] =
|
|
4556
|
+
const [open, setOpen] = React136__namespace.default.useState(false);
|
|
4326
4557
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
4327
4558
|
"div",
|
|
4328
4559
|
{
|
|
@@ -4363,7 +4594,7 @@ function FloatingActionButton({
|
|
|
4363
4594
|
] }),
|
|
4364
4595
|
sections.length > 0 && /* @__PURE__ */ jsxRuntime.jsx(Separator6, {})
|
|
4365
4596
|
] }),
|
|
4366
|
-
sections.length > 0 && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "px-3 py-2.5 space-y-3", children: sections.map((section, i) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
4597
|
+
sections.length > 0 && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "px-3 py-2.5 space-y-3", children: sections.map((section, i) => /* @__PURE__ */ jsxRuntime.jsxs(React136__namespace.default.Fragment, { children: [
|
|
4367
4598
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
4368
4599
|
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-[9px] font-semibold uppercase tracking-widest text-muted-foreground mb-1.5", children: section.label }),
|
|
4369
4600
|
section.content
|
|
@@ -4405,7 +4636,7 @@ function applyTheme(val) {
|
|
|
4405
4636
|
}
|
|
4406
4637
|
}
|
|
4407
4638
|
function PaletteSwatches({ options = DEFAULT_THEME_OPTIONS }) {
|
|
4408
|
-
const [activeValue, setActiveValue] =
|
|
4639
|
+
const [activeValue, setActiveValue] = React136__namespace.default.useState(readStoredTheme);
|
|
4409
4640
|
const activeOption = options.find((o) => o.value === activeValue) ?? options[0];
|
|
4410
4641
|
const handleSelect = (value) => {
|
|
4411
4642
|
setActiveValue(value);
|
|
@@ -4482,7 +4713,7 @@ function NotifRow({ label, description, checked, onChange }) {
|
|
|
4482
4713
|
] });
|
|
4483
4714
|
}
|
|
4484
4715
|
function NotificationSettings({ className }) {
|
|
4485
|
-
const [states, setStates] =
|
|
4716
|
+
const [states, setStates] = React136.useState(
|
|
4486
4717
|
Object.fromEntries(NOTIFICATIONS.map((n) => [n.id, n.default]))
|
|
4487
4718
|
);
|
|
4488
4719
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("rounded-md border border-[hsl(var(--border))] bg-[hsl(var(--card))] p-6", className), children: [
|
|
@@ -4502,16 +4733,16 @@ function NotificationSettings({ className }) {
|
|
|
4502
4733
|
)) })
|
|
4503
4734
|
] });
|
|
4504
4735
|
}
|
|
4505
|
-
var SidebarCtx =
|
|
4736
|
+
var SidebarCtx = React136.createContext({
|
|
4506
4737
|
collapsed: false,
|
|
4507
4738
|
toggleCollapsed: () => {
|
|
4508
4739
|
}
|
|
4509
4740
|
});
|
|
4510
4741
|
function useSidebar() {
|
|
4511
|
-
return
|
|
4742
|
+
return React136.useContext(SidebarCtx);
|
|
4512
4743
|
}
|
|
4513
4744
|
function SidebarRoot({ children, storageKey = "sidebar-collapsed", defaultCollapsed = false, className }) {
|
|
4514
|
-
const [collapsed, setCollapsed] =
|
|
4745
|
+
const [collapsed, setCollapsed] = React136.useState(() => {
|
|
4515
4746
|
if (typeof window === "undefined") return defaultCollapsed;
|
|
4516
4747
|
try {
|
|
4517
4748
|
return JSON.parse(localStorage.getItem(storageKey) ?? String(defaultCollapsed));
|
|
@@ -4519,7 +4750,7 @@ function SidebarRoot({ children, storageKey = "sidebar-collapsed", defaultCollap
|
|
|
4519
4750
|
return defaultCollapsed;
|
|
4520
4751
|
}
|
|
4521
4752
|
});
|
|
4522
|
-
const toggleCollapsed =
|
|
4753
|
+
const toggleCollapsed = React136.useCallback(() => {
|
|
4523
4754
|
setCollapsed((v) => {
|
|
4524
4755
|
const next = !v;
|
|
4525
4756
|
try {
|
|
@@ -4647,7 +4878,7 @@ function OrgMenu({
|
|
|
4647
4878
|
onCreateOrg,
|
|
4648
4879
|
className
|
|
4649
4880
|
}) {
|
|
4650
|
-
const [internalId, setInternalId] =
|
|
4881
|
+
const [internalId, setInternalId] = React136.useState(defaultOrgId ?? ORGS[0]?.id ?? "1");
|
|
4651
4882
|
const activeId = currentOrgId ?? internalId;
|
|
4652
4883
|
const current = ORGS.find((o) => o.id === activeId) ?? ORGS[0];
|
|
4653
4884
|
const { collapsed } = useSidebar();
|
|
@@ -4696,7 +4927,7 @@ var ROLES = [
|
|
|
4696
4927
|
{ value: "viewer", label: "Viewer", description: "Read-only access" }
|
|
4697
4928
|
];
|
|
4698
4929
|
function RolesMenu({ value = "member", onChange, className }) {
|
|
4699
|
-
const [role, setRole] =
|
|
4930
|
+
const [role, setRole] = React136.useState(value);
|
|
4700
4931
|
const current = ROLES.find((r) => r.value === role) ?? ROLES[0];
|
|
4701
4932
|
const handleChange = (v) => {
|
|
4702
4933
|
setRole(v);
|
|
@@ -4726,8 +4957,8 @@ var USERS = [
|
|
|
4726
4957
|
{ id: "6", name: "Mike Liu", email: "mike@acme.com", initials: "ML" }
|
|
4727
4958
|
];
|
|
4728
4959
|
function SelectUsersModal({ onConfirm, className }) {
|
|
4729
|
-
const [query, setQuery] =
|
|
4730
|
-
const [selected, setSelected] =
|
|
4960
|
+
const [query, setQuery] = React136.useState("");
|
|
4961
|
+
const [selected, setSelected] = React136.useState(/* @__PURE__ */ new Set());
|
|
4731
4962
|
const filtered = USERS.filter(
|
|
4732
4963
|
(u) => u.name.toLowerCase().includes(query.toLowerCase()) || u.email.toLowerCase().includes(query.toLowerCase())
|
|
4733
4964
|
);
|
|
@@ -4937,7 +5168,7 @@ function SidebarLayoutSearch({
|
|
|
4937
5168
|
children,
|
|
4938
5169
|
className
|
|
4939
5170
|
}) {
|
|
4940
|
-
const [query, setQuery] =
|
|
5171
|
+
const [query, setQuery] = React136.useState("");
|
|
4941
5172
|
const filtered = ALL_ITEMS.filter((i) => i.label.toLowerCase().includes(query.toLowerCase()));
|
|
4942
5173
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("flex h-[600px] overflow-hidden rounded-md border border-[hsl(var(--border))] bg-[hsl(var(--background))]", className), children: [
|
|
4943
5174
|
/* @__PURE__ */ jsxRuntime.jsxs("aside", { className: "flex w-60 flex-col border-r border-[hsl(var(--border))] bg-[hsl(var(--card))]", children: [
|
|
@@ -5028,7 +5259,7 @@ function TaskRow({ task, onToggle }) {
|
|
|
5028
5259
|
] });
|
|
5029
5260
|
}
|
|
5030
5261
|
function SortableTaskList({ className }) {
|
|
5031
|
-
const [tasks, setTasks] =
|
|
5262
|
+
const [tasks, setTasks] = React136.useState(TASKS);
|
|
5032
5263
|
const toggle = (id) => setTasks((ts) => ts.map((t) => t.id === id ? { ...t, done: !t.done } : t));
|
|
5033
5264
|
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("rounded-md border border-[hsl(var(--border))] bg-[hsl(var(--card))] p-4 space-y-4", className), children: SECTIONS.map((section) => {
|
|
5034
5265
|
const items = tasks.filter((t) => t.status === section);
|
|
@@ -5082,8 +5313,8 @@ function StackedLayoutTabs({
|
|
|
5082
5313
|
children,
|
|
5083
5314
|
className
|
|
5084
5315
|
}) {
|
|
5085
|
-
const [activeTab, setActiveTab] =
|
|
5086
|
-
const [activeNav, setActiveNav] =
|
|
5316
|
+
const [activeTab, setActiveTab] = React136.useState(0);
|
|
5317
|
+
const [activeNav, setActiveNav] = React136.useState(0);
|
|
5087
5318
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("flex h-[600px] flex-col overflow-hidden rounded-md border border-[hsl(var(--border))] bg-[hsl(var(--background))]", className), children: [
|
|
5088
5319
|
/* @__PURE__ */ jsxRuntime.jsxs("nav", { className: "flex h-14 items-center gap-6 border-b border-[hsl(var(--border))] bg-[hsl(var(--card))] px-4", children: [
|
|
5089
5320
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "font-semibold text-sm shrink-0", children: brandName }),
|
|
@@ -5226,8 +5457,8 @@ var MEMBERS = [
|
|
|
5226
5457
|
];
|
|
5227
5458
|
var roleVariant = (role) => role === "Owner" ? "default" : role === "Admin" ? "secondary" : "outline";
|
|
5228
5459
|
function WorkspaceMembers({ className }) {
|
|
5229
|
-
const [query, setQuery] =
|
|
5230
|
-
const [members, setMembers] =
|
|
5460
|
+
const [query, setQuery] = React136.useState("");
|
|
5461
|
+
const [members, setMembers] = React136.useState(MEMBERS);
|
|
5231
5462
|
const filtered = members.filter(
|
|
5232
5463
|
(m) => m.name.toLowerCase().includes(query.toLowerCase()) || m.email.toLowerCase().includes(query.toLowerCase())
|
|
5233
5464
|
);
|
|
@@ -5281,8 +5512,8 @@ function BulkActions({ count, actions, onClear, className }) {
|
|
|
5281
5512
|
] });
|
|
5282
5513
|
}
|
|
5283
5514
|
function useCommandBar() {
|
|
5284
|
-
const [open, setOpen] =
|
|
5285
|
-
|
|
5515
|
+
const [open, setOpen] = React136__namespace.default.useState(false);
|
|
5516
|
+
React136__namespace.default.useEffect(() => {
|
|
5286
5517
|
const handler = (e) => {
|
|
5287
5518
|
if ((e.metaKey || e.ctrlKey) && e.key === "k") {
|
|
5288
5519
|
e.preventDefault();
|
|
@@ -5322,12 +5553,12 @@ function CommandBarItem({ icon, label, shortcut, onSelect, active, className })
|
|
|
5322
5553
|
);
|
|
5323
5554
|
}
|
|
5324
5555
|
function CommandBar({ open, onOpenChange, children, placeholder = "Search commands...", onSearch }) {
|
|
5325
|
-
const [query, setQuery] =
|
|
5556
|
+
const [query, setQuery] = React136__namespace.default.useState("");
|
|
5326
5557
|
const handleSearch = (v) => {
|
|
5327
5558
|
setQuery(v);
|
|
5328
5559
|
onSearch?.(v);
|
|
5329
5560
|
};
|
|
5330
|
-
const items =
|
|
5561
|
+
const items = React136__namespace.default.useRef(null);
|
|
5331
5562
|
const handleKeyDown = (e) => {
|
|
5332
5563
|
if (e.key === "Escape") {
|
|
5333
5564
|
onOpenChange(false);
|
|
@@ -5368,10 +5599,10 @@ function CommandBar({ open, onOpenChange, children, placeholder = "Search comman
|
|
|
5368
5599
|
var textOps = ["contains", "equals", "starts with"];
|
|
5369
5600
|
var numOps = ["=", ">", "<", ">=", "<="];
|
|
5370
5601
|
function AddFilterPopover({ filters, onAdd }) {
|
|
5371
|
-
const [open, setOpen] =
|
|
5372
|
-
const [key, setKey] =
|
|
5373
|
-
const [op, setOp] =
|
|
5374
|
-
const [val, setVal] =
|
|
5602
|
+
const [open, setOpen] = React136__namespace.default.useState(false);
|
|
5603
|
+
const [key, setKey] = React136__namespace.default.useState("");
|
|
5604
|
+
const [op, setOp] = React136__namespace.default.useState("");
|
|
5605
|
+
const [val, setVal] = React136__namespace.default.useState("");
|
|
5375
5606
|
const def = filters.find((f) => f.key === key);
|
|
5376
5607
|
const ops = def?.type === "number" ? numOps : textOps;
|
|
5377
5608
|
const handleAdd = () => {
|
|
@@ -5483,7 +5714,7 @@ function formatColumnSubLabel(date, scale) {
|
|
|
5483
5714
|
function snapDate(date, scale) {
|
|
5484
5715
|
return startOfScale(date, scale);
|
|
5485
5716
|
}
|
|
5486
|
-
var Gantt =
|
|
5717
|
+
var Gantt = React136__namespace.default.forwardRef(
|
|
5487
5718
|
({
|
|
5488
5719
|
items,
|
|
5489
5720
|
scale = "days",
|
|
@@ -5501,7 +5732,7 @@ var Gantt = React131__namespace.default.forwardRef(
|
|
|
5501
5732
|
}, ref) => {
|
|
5502
5733
|
const interactive = !!onItemMove || !!onItemResize;
|
|
5503
5734
|
const columnWidth = DEFAULT_COLUMN_WIDTH[scale];
|
|
5504
|
-
const viewport =
|
|
5735
|
+
const viewport = React136__namespace.default.useMemo(() => {
|
|
5505
5736
|
const earliest = startDate ?? (items.length ? new Date(Math.min(...items.map((i) => i.start.getTime()))) : /* @__PURE__ */ new Date());
|
|
5506
5737
|
const latest = endDate ?? (items.length ? new Date(Math.max(...items.map((i) => i.end.getTime()))) : dateFns.addDays(/* @__PURE__ */ new Date(), 14));
|
|
5507
5738
|
return {
|
|
@@ -5511,7 +5742,7 @@ var Gantt = React131__namespace.default.forwardRef(
|
|
|
5511
5742
|
}, [items, startDate, endDate, scale]);
|
|
5512
5743
|
const colCount = totalColumns(viewport.start, viewport.end, scale);
|
|
5513
5744
|
const timelineWidth = colCount * columnWidth;
|
|
5514
|
-
const grouped =
|
|
5745
|
+
const grouped = React136__namespace.default.useMemo(() => {
|
|
5515
5746
|
const map = /* @__PURE__ */ new Map();
|
|
5516
5747
|
for (const it of items) {
|
|
5517
5748
|
const k = it.group ?? void 0;
|
|
@@ -5521,7 +5752,7 @@ var Gantt = React131__namespace.default.forwardRef(
|
|
|
5521
5752
|
return Array.from(map.entries());
|
|
5522
5753
|
}, [items]);
|
|
5523
5754
|
const hasGroups = grouped.some(([k]) => k !== void 0);
|
|
5524
|
-
const [collapsed, setCollapsed] =
|
|
5755
|
+
const [collapsed, setCollapsed] = React136__namespace.default.useState(() => /* @__PURE__ */ new Set());
|
|
5525
5756
|
const toggleGroup = (key) => {
|
|
5526
5757
|
setCollapsed((prev) => {
|
|
5527
5758
|
const next = new Set(prev);
|
|
@@ -5530,7 +5761,7 @@ var Gantt = React131__namespace.default.forwardRef(
|
|
|
5530
5761
|
return next;
|
|
5531
5762
|
});
|
|
5532
5763
|
};
|
|
5533
|
-
const rows =
|
|
5764
|
+
const rows = React136__namespace.default.useMemo(() => {
|
|
5534
5765
|
const out = [];
|
|
5535
5766
|
for (const [groupKey, list] of grouped) {
|
|
5536
5767
|
if (groupKey !== void 0) {
|
|
@@ -5541,21 +5772,21 @@ var Gantt = React131__namespace.default.forwardRef(
|
|
|
5541
5772
|
}
|
|
5542
5773
|
return out;
|
|
5543
5774
|
}, [grouped, collapsed]);
|
|
5544
|
-
const itemRowIndex =
|
|
5775
|
+
const itemRowIndex = React136__namespace.default.useMemo(() => {
|
|
5545
5776
|
const m = /* @__PURE__ */ new Map();
|
|
5546
5777
|
rows.forEach((r, i) => {
|
|
5547
5778
|
if (r.kind === "item") m.set(r.item.id, i);
|
|
5548
5779
|
});
|
|
5549
5780
|
return m;
|
|
5550
5781
|
}, [rows]);
|
|
5551
|
-
const todayOffsetPx =
|
|
5782
|
+
const todayOffsetPx = React136__namespace.default.useMemo(() => {
|
|
5552
5783
|
if (!showToday) return null;
|
|
5553
5784
|
const now = /* @__PURE__ */ new Date();
|
|
5554
5785
|
const u = unitsBetween(viewport.start, now, scale);
|
|
5555
5786
|
if (u < 0 || u > colCount) return null;
|
|
5556
5787
|
return u * columnWidth;
|
|
5557
5788
|
}, [showToday, viewport.start, scale, colCount, columnWidth]);
|
|
5558
|
-
const columnDates =
|
|
5789
|
+
const columnDates = React136__namespace.default.useMemo(() => {
|
|
5559
5790
|
return Array.from(
|
|
5560
5791
|
{ length: colCount },
|
|
5561
5792
|
(_, i) => addUnits(viewport.start, i, scale)
|
|
@@ -5779,12 +6010,12 @@ function GanttBar({
|
|
|
5779
6010
|
}) {
|
|
5780
6011
|
const color = item.color ?? DEFAULT_COLOR2;
|
|
5781
6012
|
const progress = Math.max(0, Math.min(100, item.progress ?? 0));
|
|
5782
|
-
const [previewLeftDelta, setPreviewLeftDelta] =
|
|
5783
|
-
const [previewRightDelta, setPreviewRightDelta] =
|
|
5784
|
-
const dragMode =
|
|
5785
|
-
const startX =
|
|
5786
|
-
const longPressTimer =
|
|
5787
|
-
const moved =
|
|
6013
|
+
const [previewLeftDelta, setPreviewLeftDelta] = React136__namespace.default.useState(0);
|
|
6014
|
+
const [previewRightDelta, setPreviewRightDelta] = React136__namespace.default.useState(0);
|
|
6015
|
+
const dragMode = React136__namespace.default.useRef(null);
|
|
6016
|
+
const startX = React136__namespace.default.useRef(0);
|
|
6017
|
+
const longPressTimer = React136__namespace.default.useRef(null);
|
|
6018
|
+
const moved = React136__namespace.default.useRef(false);
|
|
5788
6019
|
const baseLeft = unitsBetween(viewportStart, item.start, scale) * columnWidth;
|
|
5789
6020
|
const baseRight = unitsBetween(viewportStart, item.end, scale) * columnWidth;
|
|
5790
6021
|
const baseWidth = Math.max(columnWidth * 0.25, baseRight - baseLeft);
|
|
@@ -5990,7 +6221,7 @@ function DependencyLayer({
|
|
|
5990
6221
|
timelineWidth,
|
|
5991
6222
|
totalHeight
|
|
5992
6223
|
}) {
|
|
5993
|
-
const itemById =
|
|
6224
|
+
const itemById = React136__namespace.default.useMemo(() => {
|
|
5994
6225
|
const m = /* @__PURE__ */ new Map();
|
|
5995
6226
|
for (const it of items) m.set(it.id, it);
|
|
5996
6227
|
return m;
|
|
@@ -6089,9 +6320,9 @@ function KanbanColumn({ column, isOver }) {
|
|
|
6089
6320
|
] });
|
|
6090
6321
|
}
|
|
6091
6322
|
function Kanban({ columns: initialColumns, onMoveCard, className }) {
|
|
6092
|
-
const [cols, setCols] =
|
|
6093
|
-
const [activeCard, setActiveCard] =
|
|
6094
|
-
const [overColId, setOverColId] =
|
|
6323
|
+
const [cols, setCols] = React136__namespace.default.useState(initialColumns);
|
|
6324
|
+
const [activeCard, setActiveCard] = React136__namespace.default.useState(null);
|
|
6325
|
+
const [overColId, setOverColId] = React136__namespace.default.useState(null);
|
|
6095
6326
|
const sensors = core.useSensors(core.useSensor(core.PointerSensor, { activationConstraint: { distance: 5 } }));
|
|
6096
6327
|
const findColByCard = (cardId) => cols.find((c) => c.cards.some((card) => card.id === cardId));
|
|
6097
6328
|
const onDragStart = ({ active }) => {
|
|
@@ -6160,10 +6391,10 @@ function ToolbarButton({
|
|
|
6160
6391
|
] });
|
|
6161
6392
|
}
|
|
6162
6393
|
function LinkPopover({ editor }) {
|
|
6163
|
-
const [open, setOpen] =
|
|
6164
|
-
const [url, setUrl] =
|
|
6394
|
+
const [open, setOpen] = React136__namespace.default.useState(false);
|
|
6395
|
+
const [url, setUrl] = React136__namespace.default.useState("");
|
|
6165
6396
|
const isActive = editor.isActive("link");
|
|
6166
|
-
|
|
6397
|
+
React136__namespace.default.useEffect(() => {
|
|
6167
6398
|
if (!open) return;
|
|
6168
6399
|
const current = editor.getAttributes("link")?.href;
|
|
6169
6400
|
setUrl(current ?? "");
|
|
@@ -6628,7 +6859,7 @@ var proseClasses = cn(
|
|
|
6628
6859
|
// Selected cells in tables
|
|
6629
6860
|
"[&_.selectedCell]:bg-[hsl(var(--accent))]/40"
|
|
6630
6861
|
);
|
|
6631
|
-
var RichEditor =
|
|
6862
|
+
var RichEditor = React136__namespace.default.forwardRef(
|
|
6632
6863
|
function RichEditor2({
|
|
6633
6864
|
value,
|
|
6634
6865
|
defaultValue,
|
|
@@ -6642,12 +6873,12 @@ var RichEditor = React131__namespace.default.forwardRef(
|
|
|
6642
6873
|
}, ref) {
|
|
6643
6874
|
const isControlled = value !== void 0;
|
|
6644
6875
|
const initialContent = isControlled ? value ?? "" : defaultValue ?? "";
|
|
6645
|
-
const debounceRef =
|
|
6646
|
-
const onChangeRef =
|
|
6647
|
-
|
|
6876
|
+
const debounceRef = React136__namespace.default.useRef(null);
|
|
6877
|
+
const onChangeRef = React136__namespace.default.useRef(onChange);
|
|
6878
|
+
React136__namespace.default.useEffect(() => {
|
|
6648
6879
|
onChangeRef.current = onChange;
|
|
6649
6880
|
}, [onChange]);
|
|
6650
|
-
const [charCount, setCharCount] =
|
|
6881
|
+
const [charCount, setCharCount] = React136__namespace.default.useState(0);
|
|
6651
6882
|
const editor = react$1.useEditor({
|
|
6652
6883
|
editable,
|
|
6653
6884
|
content: initialContent,
|
|
@@ -6690,18 +6921,18 @@ var RichEditor = React131__namespace.default.forwardRef(
|
|
|
6690
6921
|
}, 100);
|
|
6691
6922
|
}
|
|
6692
6923
|
});
|
|
6693
|
-
|
|
6924
|
+
React136__namespace.default.useEffect(() => {
|
|
6694
6925
|
if (!editor || !isControlled) return;
|
|
6695
6926
|
const current = editor.getHTML();
|
|
6696
6927
|
if ((value ?? "") !== current) {
|
|
6697
6928
|
editor.commands.setContent(value ?? "", { emitUpdate: false });
|
|
6698
6929
|
}
|
|
6699
6930
|
}, [editor, isControlled, value]);
|
|
6700
|
-
|
|
6931
|
+
React136__namespace.default.useEffect(() => {
|
|
6701
6932
|
if (!editor) return;
|
|
6702
6933
|
if (editor.isEditable !== editable) editor.setEditable(editable);
|
|
6703
6934
|
}, [editor, editable]);
|
|
6704
|
-
|
|
6935
|
+
React136__namespace.default.useEffect(() => {
|
|
6705
6936
|
return () => {
|
|
6706
6937
|
if (debounceRef.current) clearTimeout(debounceRef.current);
|
|
6707
6938
|
};
|
|
@@ -6799,10 +7030,10 @@ function ToggleButtonGroup(props) {
|
|
|
6799
7030
|
props.onChange(val);
|
|
6800
7031
|
}
|
|
6801
7032
|
};
|
|
6802
|
-
return /* @__PURE__ */ jsxRuntime.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:
|
|
6803
|
-
if (!
|
|
7033
|
+
return /* @__PURE__ */ jsxRuntime.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: React136__namespace.default.Children.map(children, (child) => {
|
|
7034
|
+
if (!React136__namespace.default.isValidElement(child)) return child;
|
|
6804
7035
|
const tb = child;
|
|
6805
|
-
return
|
|
7036
|
+
return React136__namespace.default.cloneElement(tb, {
|
|
6806
7037
|
pressed: isPressed(tb.props.value),
|
|
6807
7038
|
onClick: () => handleClick(tb.props.value)
|
|
6808
7039
|
});
|
|
@@ -7086,24 +7317,24 @@ function Beacon({ color = "primary", size = "md", children, className }) {
|
|
|
7086
7317
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "absolute -top-1 -right-1 flex", children: /* @__PURE__ */ jsxRuntime.jsx(BeaconDot, { color, size }) })
|
|
7087
7318
|
] });
|
|
7088
7319
|
}
|
|
7089
|
-
var TourContext =
|
|
7320
|
+
var TourContext = React136.createContext(null);
|
|
7090
7321
|
function useTour() {
|
|
7091
|
-
const ctx =
|
|
7322
|
+
const ctx = React136.useContext(TourContext);
|
|
7092
7323
|
if (!ctx) throw new Error("useTour must be used within <Tour>");
|
|
7093
7324
|
return ctx;
|
|
7094
7325
|
}
|
|
7095
7326
|
function Tour({ totalSteps, children }) {
|
|
7096
|
-
const [currentStep, setCurrentStep] =
|
|
7097
|
-
const [isActive, setIsActive] =
|
|
7098
|
-
const stop =
|
|
7099
|
-
const start =
|
|
7327
|
+
const [currentStep, setCurrentStep] = React136.useState(0);
|
|
7328
|
+
const [isActive, setIsActive] = React136.useState(false);
|
|
7329
|
+
const stop = React136.useCallback(() => setIsActive(false), []);
|
|
7330
|
+
const start = React136.useCallback(() => {
|
|
7100
7331
|
setCurrentStep(0);
|
|
7101
7332
|
setIsActive(true);
|
|
7102
7333
|
}, []);
|
|
7103
|
-
const next =
|
|
7104
|
-
const prev =
|
|
7105
|
-
const goTo =
|
|
7106
|
-
|
|
7334
|
+
const next = React136.useCallback(() => setCurrentStep((s) => Math.min(s + 1, totalSteps - 1)), [totalSteps]);
|
|
7335
|
+
const prev = React136.useCallback(() => setCurrentStep((s) => Math.max(s - 1, 0)), []);
|
|
7336
|
+
const goTo = React136.useCallback((step) => setCurrentStep(Math.max(0, Math.min(step, totalSteps - 1))), [totalSteps]);
|
|
7337
|
+
React136.useEffect(() => {
|
|
7107
7338
|
if (!isActive) return;
|
|
7108
7339
|
const onKey = (e) => {
|
|
7109
7340
|
if (e.key === "Escape") stop();
|
|
@@ -7151,13 +7382,13 @@ function TourStep({ step, title, description, placement = "bottom", children })
|
|
|
7151
7382
|
] })
|
|
7152
7383
|
] });
|
|
7153
7384
|
}
|
|
7154
|
-
var ChecklistContext =
|
|
7385
|
+
var ChecklistContext = React136.createContext(null);
|
|
7155
7386
|
function useChecklist() {
|
|
7156
|
-
const ctx =
|
|
7387
|
+
const ctx = React136.useContext(ChecklistContext);
|
|
7157
7388
|
if (!ctx) throw new Error("<ChecklistItem> must be used inside <Checklist>");
|
|
7158
7389
|
return ctx;
|
|
7159
7390
|
}
|
|
7160
|
-
var Checklist =
|
|
7391
|
+
var Checklist = React136__namespace.default.forwardRef(
|
|
7161
7392
|
({
|
|
7162
7393
|
title = "Getting started",
|
|
7163
7394
|
description,
|
|
@@ -7171,32 +7402,32 @@ var Checklist = React131__namespace.default.forwardRef(
|
|
|
7171
7402
|
children,
|
|
7172
7403
|
...props
|
|
7173
7404
|
}, ref) => {
|
|
7174
|
-
const [internalCompleted, setInternalCompleted] =
|
|
7175
|
-
const [open, setOpen] =
|
|
7176
|
-
const completedFiredRef =
|
|
7405
|
+
const [internalCompleted, setInternalCompleted] = React136.useState({});
|
|
7406
|
+
const [open, setOpen] = React136.useState(defaultOpen);
|
|
7407
|
+
const completedFiredRef = React136__namespace.default.useRef(false);
|
|
7177
7408
|
const isControlled = controlledCompleted !== void 0;
|
|
7178
7409
|
const completed = isControlled ? controlledCompleted : internalCompleted;
|
|
7179
|
-
const setCompleted =
|
|
7410
|
+
const setCompleted = React136.useCallback(
|
|
7180
7411
|
(id, value) => {
|
|
7181
7412
|
if (!isControlled) setInternalCompleted((prev) => ({ ...prev, [id]: value }));
|
|
7182
7413
|
onItemChange?.(id, value);
|
|
7183
7414
|
},
|
|
7184
7415
|
[isControlled, onItemChange]
|
|
7185
7416
|
);
|
|
7186
|
-
const total =
|
|
7417
|
+
const total = React136.useMemo(() => {
|
|
7187
7418
|
let n = 0;
|
|
7188
|
-
|
|
7189
|
-
if (
|
|
7419
|
+
React136__namespace.default.Children.forEach(children, (child) => {
|
|
7420
|
+
if (React136__namespace.default.isValidElement(child) && child.type.displayName === "ChecklistItem") {
|
|
7190
7421
|
n++;
|
|
7191
7422
|
}
|
|
7192
7423
|
});
|
|
7193
7424
|
return n;
|
|
7194
7425
|
}, [children]);
|
|
7195
|
-
const doneCount =
|
|
7426
|
+
const doneCount = React136.useMemo(
|
|
7196
7427
|
() => Object.values(completed).filter(Boolean).length,
|
|
7197
7428
|
[completed]
|
|
7198
7429
|
);
|
|
7199
|
-
|
|
7430
|
+
React136__namespace.default.useEffect(() => {
|
|
7200
7431
|
if (!completedFiredRef.current && total > 0 && doneCount >= total) {
|
|
7201
7432
|
completedFiredRef.current = true;
|
|
7202
7433
|
onComplete?.();
|
|
@@ -7257,11 +7488,11 @@ var Checklist = React131__namespace.default.forwardRef(
|
|
|
7257
7488
|
}
|
|
7258
7489
|
);
|
|
7259
7490
|
Checklist.displayName = "Checklist";
|
|
7260
|
-
var ChecklistItem =
|
|
7491
|
+
var ChecklistItem = React136__namespace.default.forwardRef(
|
|
7261
7492
|
({ id, title, description, action, onActivate, className, ...props }, ref) => {
|
|
7262
7493
|
const { completed, setCompleted } = useChecklist();
|
|
7263
7494
|
const done = !!completed[id];
|
|
7264
|
-
const toggle =
|
|
7495
|
+
const toggle = React136.useCallback(() => {
|
|
7265
7496
|
setCompleted(id, !done);
|
|
7266
7497
|
}, [id, done, setCompleted]);
|
|
7267
7498
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
@@ -7340,9 +7571,9 @@ function IntroDisclosure({
|
|
|
7340
7571
|
finishLabel = "Get started"
|
|
7341
7572
|
}) {
|
|
7342
7573
|
const isControlled = controlledOpen !== void 0;
|
|
7343
|
-
const [internalOpen, setInternalOpen] =
|
|
7344
|
-
const [step, setStep] =
|
|
7345
|
-
|
|
7574
|
+
const [internalOpen, setInternalOpen] = React136.useState(false);
|
|
7575
|
+
const [step, setStep] = React136.useState(0);
|
|
7576
|
+
React136.useEffect(() => {
|
|
7346
7577
|
if (isControlled) return;
|
|
7347
7578
|
if (typeof window === "undefined") return;
|
|
7348
7579
|
if (!storageKey) {
|
|
@@ -7355,19 +7586,19 @@ function IntroDisclosure({
|
|
|
7355
7586
|
const isOpen = isControlled ? controlledOpen : internalOpen;
|
|
7356
7587
|
const total = steps.length;
|
|
7357
7588
|
const isLast = step === total - 1;
|
|
7358
|
-
const close =
|
|
7589
|
+
const close = React136.useCallback(() => {
|
|
7359
7590
|
if (!isControlled) {
|
|
7360
7591
|
setInternalOpen(false);
|
|
7361
7592
|
if (storageKey && typeof window !== "undefined") window.localStorage.setItem(storageKey, "1");
|
|
7362
7593
|
}
|
|
7363
7594
|
onOpenChange?.(false);
|
|
7364
7595
|
}, [isControlled, onOpenChange, storageKey]);
|
|
7365
|
-
const next =
|
|
7596
|
+
const next = React136.useCallback(() => {
|
|
7366
7597
|
if (isLast) close();
|
|
7367
7598
|
else setStep((s) => s + 1);
|
|
7368
7599
|
}, [isLast, close]);
|
|
7369
|
-
const prev =
|
|
7370
|
-
|
|
7600
|
+
const prev = React136.useCallback(() => setStep((s) => Math.max(0, s - 1)), []);
|
|
7601
|
+
React136.useEffect(() => {
|
|
7371
7602
|
if (!isOpen) return;
|
|
7372
7603
|
const onKey = (e) => {
|
|
7373
7604
|
if (e.key === "Escape") close();
|
|
@@ -7377,7 +7608,7 @@ function IntroDisclosure({
|
|
|
7377
7608
|
window.addEventListener("keydown", onKey);
|
|
7378
7609
|
return () => window.removeEventListener("keydown", onKey);
|
|
7379
7610
|
}, [isOpen, close, next, prev]);
|
|
7380
|
-
const current =
|
|
7611
|
+
const current = React136.useMemo(() => steps[Math.min(step, total - 1)], [steps, step, total]);
|
|
7381
7612
|
if (!isOpen || total === 0 || !current) return null;
|
|
7382
7613
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
7383
7614
|
"div",
|
|
@@ -7557,9 +7788,9 @@ function CalendarGrid({ year, month, selected, onSelect }) {
|
|
|
7557
7788
|
] });
|
|
7558
7789
|
}
|
|
7559
7790
|
function DatePicker({ value, onChange, placeholder = "Pick a date", disabled, className }) {
|
|
7560
|
-
const [open, setOpen] =
|
|
7791
|
+
const [open, setOpen] = React136.useState(false);
|
|
7561
7792
|
const now = value ?? /* @__PURE__ */ new Date();
|
|
7562
|
-
const [view, setView] =
|
|
7793
|
+
const [view, setView] = React136.useState({ year: now.getFullYear(), month: now.getMonth() });
|
|
7563
7794
|
function navigate(delta) {
|
|
7564
7795
|
setView((v) => {
|
|
7565
7796
|
const date = new Date(v.year, v.month + delta);
|
|
@@ -7605,7 +7836,7 @@ function Field({ label, description, error, required, children, className }) {
|
|
|
7605
7836
|
error && /* @__PURE__ */ jsxRuntime.jsx(FieldError, { children: error })
|
|
7606
7837
|
] });
|
|
7607
7838
|
}
|
|
7608
|
-
var FieldLabel =
|
|
7839
|
+
var FieldLabel = React136__namespace.default.forwardRef(
|
|
7609
7840
|
({ className, required, children, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
7610
7841
|
"label",
|
|
7611
7842
|
{
|
|
@@ -7620,7 +7851,7 @@ var FieldLabel = React131__namespace.default.forwardRef(
|
|
|
7620
7851
|
)
|
|
7621
7852
|
);
|
|
7622
7853
|
FieldLabel.displayName = "FieldLabel";
|
|
7623
|
-
var FieldDescription =
|
|
7854
|
+
var FieldDescription = React136__namespace.default.forwardRef(
|
|
7624
7855
|
({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
7625
7856
|
"p",
|
|
7626
7857
|
{
|
|
@@ -7631,7 +7862,7 @@ var FieldDescription = React131__namespace.default.forwardRef(
|
|
|
7631
7862
|
)
|
|
7632
7863
|
);
|
|
7633
7864
|
FieldDescription.displayName = "FieldDescription";
|
|
7634
|
-
var FieldError =
|
|
7865
|
+
var FieldError = React136__namespace.default.forwardRef(
|
|
7635
7866
|
({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
7636
7867
|
"p",
|
|
7637
7868
|
{
|
|
@@ -7732,7 +7963,7 @@ function defaultFor(format3, showAlpha) {
|
|
|
7732
7963
|
if (format3 === "rgb") return showAlpha ? "rgba(59, 130, 246, 1)" : "rgb(59, 130, 246)";
|
|
7733
7964
|
return showAlpha ? "hsla(217, 91%, 60%, 1)" : "hsl(217, 91%, 60%)";
|
|
7734
7965
|
}
|
|
7735
|
-
var ColorPicker =
|
|
7966
|
+
var ColorPicker = React136__namespace.default.forwardRef(
|
|
7736
7967
|
({
|
|
7737
7968
|
value: valueProp,
|
|
7738
7969
|
defaultValue,
|
|
@@ -7747,21 +7978,21 @@ var ColorPicker = React131__namespace.default.forwardRef(
|
|
|
7747
7978
|
}, ref) => {
|
|
7748
7979
|
const fallback = defaultValue ?? defaultFor(format3, showAlpha);
|
|
7749
7980
|
const isControlled = valueProp !== void 0;
|
|
7750
|
-
const [internal, setInternal] =
|
|
7981
|
+
const [internal, setInternal] = React136__namespace.default.useState(fallback);
|
|
7751
7982
|
const value = isControlled ? valueProp : internal;
|
|
7752
|
-
const [draft, setDraft] =
|
|
7753
|
-
const [draftValid, setDraftValid] =
|
|
7754
|
-
|
|
7983
|
+
const [draft, setDraft] = React136__namespace.default.useState(value);
|
|
7984
|
+
const [draftValid, setDraftValid] = React136__namespace.default.useState(true);
|
|
7985
|
+
React136__namespace.default.useEffect(() => {
|
|
7755
7986
|
setDraft(value);
|
|
7756
7987
|
setDraftValid(true);
|
|
7757
7988
|
}, [value]);
|
|
7758
|
-
const [eyeDropperSupported, setEyeDropperSupported] =
|
|
7759
|
-
|
|
7989
|
+
const [eyeDropperSupported, setEyeDropperSupported] = React136__namespace.default.useState(false);
|
|
7990
|
+
React136__namespace.default.useEffect(() => {
|
|
7760
7991
|
if (typeof window !== "undefined" && "EyeDropper" in window) {
|
|
7761
7992
|
setEyeDropperSupported(true);
|
|
7762
7993
|
}
|
|
7763
7994
|
}, []);
|
|
7764
|
-
const commit =
|
|
7995
|
+
const commit = React136__namespace.default.useCallback(
|
|
7765
7996
|
(next) => {
|
|
7766
7997
|
if (!isControlled) setInternal(next);
|
|
7767
7998
|
onValueChange?.(next);
|
|
@@ -7924,8 +8155,8 @@ function filterBySize(files, maxSize) {
|
|
|
7924
8155
|
return maxSize ? files.filter((f) => f.size <= maxSize) : files;
|
|
7925
8156
|
}
|
|
7926
8157
|
function FileUpload({ accept, multiple, maxSize, onFiles, className, disabled }) {
|
|
7927
|
-
const inputRef =
|
|
7928
|
-
const [dragging, setDragging] =
|
|
8158
|
+
const inputRef = React136.useRef(null);
|
|
8159
|
+
const [dragging, setDragging] = React136.useState(false);
|
|
7929
8160
|
function handleFiles(raw) {
|
|
7930
8161
|
if (!raw) return;
|
|
7931
8162
|
const files = filterBySize(Array.from(raw), maxSize);
|
|
@@ -7998,15 +8229,15 @@ function FileUploadPreview({ files, onRemove, className }) {
|
|
|
7998
8229
|
] })
|
|
7999
8230
|
] }, i)) });
|
|
8000
8231
|
}
|
|
8001
|
-
var FloatingLabelInput =
|
|
8232
|
+
var FloatingLabelInput = React136__namespace.default.forwardRef(
|
|
8002
8233
|
({ label, error, hint, wrapperClassName, className, id, value, defaultValue, onFocus, onBlur, onChange, ...props }, ref) => {
|
|
8003
|
-
const autoId =
|
|
8234
|
+
const autoId = React136.useId();
|
|
8004
8235
|
const inputId = id ?? autoId;
|
|
8005
8236
|
const errorId = error ? `${inputId}-error` : void 0;
|
|
8006
8237
|
const hintId = hint ? `${inputId}-hint` : void 0;
|
|
8007
8238
|
const describedBy = [errorId, hintId].filter(Boolean).join(" ") || void 0;
|
|
8008
|
-
const [focused, setFocused] =
|
|
8009
|
-
const [filled, setFilled] =
|
|
8239
|
+
const [focused, setFocused] = React136.useState(false);
|
|
8240
|
+
const [filled, setFilled] = React136.useState(() => {
|
|
8010
8241
|
if (value !== void 0 && value !== null && value !== "") return true;
|
|
8011
8242
|
if (defaultValue !== void 0 && defaultValue !== null && defaultValue !== "") return true;
|
|
8012
8243
|
return false;
|
|
@@ -8082,7 +8313,7 @@ function FormField(props) {
|
|
|
8082
8313
|
function FormItem({ className, ...props }) {
|
|
8083
8314
|
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("flex flex-col gap-1.5", className), ...props });
|
|
8084
8315
|
}
|
|
8085
|
-
var FormLabel =
|
|
8316
|
+
var FormLabel = React136__namespace.default.forwardRef(
|
|
8086
8317
|
({ className, error, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
8087
8318
|
"label",
|
|
8088
8319
|
{
|
|
@@ -8097,9 +8328,9 @@ var FormLabel = React131__namespace.default.forwardRef(
|
|
|
8097
8328
|
)
|
|
8098
8329
|
);
|
|
8099
8330
|
FormLabel.displayName = "FormLabel";
|
|
8100
|
-
var FormControl =
|
|
8331
|
+
var FormControl = React136__namespace.default.forwardRef(
|
|
8101
8332
|
({ ...props }, ref) => {
|
|
8102
|
-
const id =
|
|
8333
|
+
const id = React136.useId();
|
|
8103
8334
|
return /* @__PURE__ */ jsxRuntime.jsx("div", { ref, id, ...props });
|
|
8104
8335
|
}
|
|
8105
8336
|
);
|
|
@@ -8122,7 +8353,7 @@ function ObjectField({
|
|
|
8122
8353
|
children,
|
|
8123
8354
|
className
|
|
8124
8355
|
}) {
|
|
8125
|
-
const [open, setOpen] =
|
|
8356
|
+
const [open, setOpen] = React136.useState(defaultOpen);
|
|
8126
8357
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("rounded-md border border-[hsl(var(--border))] overflow-hidden", className), children: [
|
|
8127
8358
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
8128
8359
|
"div",
|
|
@@ -8154,9 +8385,9 @@ function getStrength(value) {
|
|
|
8154
8385
|
if (score <= 3) return { level: "medium", width: "w-2/3", color: "bg-yellow-500" };
|
|
8155
8386
|
return { level: "strong", width: "w-full", color: "bg-green-500" };
|
|
8156
8387
|
}
|
|
8157
|
-
var PasswordInput =
|
|
8388
|
+
var PasswordInput = React136__namespace.default.forwardRef(
|
|
8158
8389
|
({ className, strength, ...props }, ref) => {
|
|
8159
|
-
const [show, setShow] =
|
|
8390
|
+
const [show, setShow] = React136.useState(false);
|
|
8160
8391
|
const value = String(props.value ?? "");
|
|
8161
8392
|
const str = getStrength(value);
|
|
8162
8393
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col gap-1.5", children: [
|
|
@@ -8189,9 +8420,9 @@ var PasswordInput = React131__namespace.default.forwardRef(
|
|
|
8189
8420
|
}
|
|
8190
8421
|
);
|
|
8191
8422
|
PasswordInput.displayName = "PasswordInput";
|
|
8192
|
-
var SearchInput =
|
|
8423
|
+
var SearchInput = React136__namespace.default.forwardRef(
|
|
8193
8424
|
({ className, shortcut, onClear, onChange, value: valueProp, defaultValue, ...props }, ref) => {
|
|
8194
|
-
const [internalValue, setInternalValue] =
|
|
8425
|
+
const [internalValue, setInternalValue] = React136.useState(defaultValue ?? "");
|
|
8195
8426
|
const isControlled = valueProp !== void 0;
|
|
8196
8427
|
const value = isControlled ? String(valueProp) : String(internalValue);
|
|
8197
8428
|
function handleChange(e) {
|
|
@@ -8234,14 +8465,14 @@ var SearchInput = React131__namespace.default.forwardRef(
|
|
|
8234
8465
|
}
|
|
8235
8466
|
);
|
|
8236
8467
|
SearchInput.displayName = "SearchInput";
|
|
8237
|
-
var StepFormContext =
|
|
8468
|
+
var StepFormContext = React136.createContext(null);
|
|
8238
8469
|
function useStepForm() {
|
|
8239
|
-
const ctx =
|
|
8470
|
+
const ctx = React136.useContext(StepFormContext);
|
|
8240
8471
|
if (!ctx) throw new Error("useStepForm must be used within StepForm");
|
|
8241
8472
|
return ctx;
|
|
8242
8473
|
}
|
|
8243
8474
|
function StepForm({ steps, onSubmit, children, className }) {
|
|
8244
|
-
const [currentStep, setCurrentStep] =
|
|
8475
|
+
const [currentStep, setCurrentStep] = React136.useState(0);
|
|
8245
8476
|
const totalSteps = steps.length;
|
|
8246
8477
|
const ctx = {
|
|
8247
8478
|
currentStep,
|
|
@@ -8252,7 +8483,7 @@ function StepForm({ steps, onSubmit, children, className }) {
|
|
|
8252
8483
|
isFirst: currentStep === 0,
|
|
8253
8484
|
isLast: currentStep === totalSteps - 1
|
|
8254
8485
|
};
|
|
8255
|
-
const childArray =
|
|
8486
|
+
const childArray = React136__namespace.default.Children.toArray(children);
|
|
8256
8487
|
const currentChild = childArray[currentStep];
|
|
8257
8488
|
return /* @__PURE__ */ jsxRuntime.jsx(StepFormContext.Provider, { value: ctx, children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("flex flex-col gap-6", className), children: [
|
|
8258
8489
|
/* @__PURE__ */ jsxRuntime.jsx(StepIndicator, { steps, currentStep }),
|
|
@@ -8261,7 +8492,7 @@ function StepForm({ steps, onSubmit, children, className }) {
|
|
|
8261
8492
|
] }) });
|
|
8262
8493
|
}
|
|
8263
8494
|
function StepIndicator({ steps, currentStep }) {
|
|
8264
|
-
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex items-center gap-2", children: steps.map((label, i) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
8495
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex items-center gap-2", children: steps.map((label, i) => /* @__PURE__ */ jsxRuntime.jsxs(React136__namespace.default.Fragment, { children: [
|
|
8265
8496
|
i > 0 && /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("h-px flex-1 bg-[hsl(var(--border))]", i <= currentStep && "bg-[hsl(var(--primary))]") }),
|
|
8266
8497
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col items-center gap-1", children: [
|
|
8267
8498
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: cn(
|
|
@@ -8290,7 +8521,7 @@ function StepFormNavigation({ onSubmit, submitLabel = "Submit" }) {
|
|
|
8290
8521
|
isLast ? /* @__PURE__ */ jsxRuntime.jsx(Button, { type: "button", onClick: onSubmit, children: submitLabel }) : /* @__PURE__ */ jsxRuntime.jsx(Button, { type: "button", onClick: next, children: "Next" })
|
|
8291
8522
|
] });
|
|
8292
8523
|
}
|
|
8293
|
-
var Tags =
|
|
8524
|
+
var Tags = React136__namespace.default.forwardRef(
|
|
8294
8525
|
({
|
|
8295
8526
|
value: valueProp,
|
|
8296
8527
|
defaultValue,
|
|
@@ -8306,25 +8537,25 @@ var Tags = React131__namespace.default.forwardRef(
|
|
|
8306
8537
|
...props
|
|
8307
8538
|
}, ref) => {
|
|
8308
8539
|
const isControlled = valueProp !== void 0;
|
|
8309
|
-
const [internal, setInternal] =
|
|
8540
|
+
const [internal, setInternal] = React136__namespace.default.useState(defaultValue ?? []);
|
|
8310
8541
|
const tags = isControlled ? valueProp : internal;
|
|
8311
|
-
const [input, setInput] =
|
|
8312
|
-
const [error, setError] =
|
|
8313
|
-
const [focused, setFocused] =
|
|
8314
|
-
const [activeIndex, setActiveIndex] =
|
|
8315
|
-
const inputRef =
|
|
8316
|
-
const containerRef =
|
|
8317
|
-
|
|
8542
|
+
const [input, setInput] = React136__namespace.default.useState("");
|
|
8543
|
+
const [error, setError] = React136__namespace.default.useState(null);
|
|
8544
|
+
const [focused, setFocused] = React136__namespace.default.useState(false);
|
|
8545
|
+
const [activeIndex, setActiveIndex] = React136__namespace.default.useState(0);
|
|
8546
|
+
const inputRef = React136__namespace.default.useRef(null);
|
|
8547
|
+
const containerRef = React136__namespace.default.useRef(null);
|
|
8548
|
+
React136__namespace.default.useImperativeHandle(ref, () => containerRef.current);
|
|
8318
8549
|
const atMax = maxTags !== void 0 && tags.length >= maxTags;
|
|
8319
8550
|
const inputDisabled = disabled || atMax;
|
|
8320
|
-
const commit =
|
|
8551
|
+
const commit = React136__namespace.default.useCallback(
|
|
8321
8552
|
(next) => {
|
|
8322
8553
|
if (!isControlled) setInternal(next);
|
|
8323
8554
|
onValueChange?.(next);
|
|
8324
8555
|
},
|
|
8325
8556
|
[isControlled, onValueChange]
|
|
8326
8557
|
);
|
|
8327
|
-
const addTag =
|
|
8558
|
+
const addTag = React136__namespace.default.useCallback(
|
|
8328
8559
|
(raw) => {
|
|
8329
8560
|
const tag = raw.trim();
|
|
8330
8561
|
if (!tag) return false;
|
|
@@ -8350,20 +8581,20 @@ var Tags = React131__namespace.default.forwardRef(
|
|
|
8350
8581
|
},
|
|
8351
8582
|
[tags, allowDuplicates, validate, atMax, commit]
|
|
8352
8583
|
);
|
|
8353
|
-
const removeTag =
|
|
8584
|
+
const removeTag = React136__namespace.default.useCallback(
|
|
8354
8585
|
(index) => {
|
|
8355
8586
|
commit(tags.filter((_, i) => i !== index));
|
|
8356
8587
|
setError(null);
|
|
8357
8588
|
},
|
|
8358
8589
|
[tags, commit]
|
|
8359
8590
|
);
|
|
8360
|
-
const filteredSuggestions =
|
|
8591
|
+
const filteredSuggestions = React136__namespace.default.useMemo(() => {
|
|
8361
8592
|
if (!suggestions || !input.trim()) return [];
|
|
8362
8593
|
const q = input.trim().toLowerCase();
|
|
8363
8594
|
return suggestions.filter((s) => s.toLowerCase().includes(q)).filter((s) => allowDuplicates || !tags.includes(s)).slice(0, 8);
|
|
8364
8595
|
}, [suggestions, input, tags, allowDuplicates]);
|
|
8365
8596
|
const showPopover = focused && !inputDisabled && filteredSuggestions.length > 0;
|
|
8366
|
-
|
|
8597
|
+
React136__namespace.default.useEffect(() => {
|
|
8367
8598
|
if (activeIndex >= filteredSuggestions.length) setActiveIndex(0);
|
|
8368
8599
|
}, [filteredSuggestions.length, activeIndex]);
|
|
8369
8600
|
const handleKeyDown = (e) => {
|
|
@@ -8505,7 +8736,7 @@ var Tags = React131__namespace.default.forwardRef(
|
|
|
8505
8736
|
}
|
|
8506
8737
|
);
|
|
8507
8738
|
Tags.displayName = "Tags";
|
|
8508
|
-
var AppShellCtx =
|
|
8739
|
+
var AppShellCtx = React136__namespace.default.createContext({
|
|
8509
8740
|
collapsed: false,
|
|
8510
8741
|
setCollapsed: () => {
|
|
8511
8742
|
},
|
|
@@ -8513,12 +8744,12 @@ var AppShellCtx = React131__namespace.default.createContext({
|
|
|
8513
8744
|
setMobileOpen: () => {
|
|
8514
8745
|
}
|
|
8515
8746
|
});
|
|
8516
|
-
var useAppShell = () =>
|
|
8517
|
-
var AppShell =
|
|
8747
|
+
var useAppShell = () => React136__namespace.default.useContext(AppShellCtx);
|
|
8748
|
+
var AppShell = React136__namespace.default.forwardRef(
|
|
8518
8749
|
({ className, defaultCollapsed = false, children, ...props }, ref) => {
|
|
8519
|
-
const [collapsed, setCollapsed] =
|
|
8520
|
-
const [mobileOpen, setMobileOpen] =
|
|
8521
|
-
|
|
8750
|
+
const [collapsed, setCollapsed] = React136__namespace.default.useState(defaultCollapsed);
|
|
8751
|
+
const [mobileOpen, setMobileOpen] = React136__namespace.default.useState(false);
|
|
8752
|
+
React136__namespace.default.useEffect(() => {
|
|
8522
8753
|
const handleClick = (e) => {
|
|
8523
8754
|
const target = e.target;
|
|
8524
8755
|
if (target.closest("a[href]") || target.closest("[data-mobile-close]")) {
|
|
@@ -8549,7 +8780,7 @@ var AppShell = React131__namespace.default.forwardRef(
|
|
|
8549
8780
|
}
|
|
8550
8781
|
);
|
|
8551
8782
|
AppShell.displayName = "AppShell";
|
|
8552
|
-
var AppShellSidebar =
|
|
8783
|
+
var AppShellSidebar = React136__namespace.default.forwardRef(
|
|
8553
8784
|
({ className, ...props }, ref) => {
|
|
8554
8785
|
const { mobileOpen } = useAppShell();
|
|
8555
8786
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -8570,11 +8801,11 @@ var AppShellSidebar = React131__namespace.default.forwardRef(
|
|
|
8570
8801
|
}
|
|
8571
8802
|
);
|
|
8572
8803
|
AppShellSidebar.displayName = "AppShellSidebar";
|
|
8573
|
-
var AppShellMain =
|
|
8804
|
+
var AppShellMain = React136__namespace.default.forwardRef(
|
|
8574
8805
|
({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx("div", { ref, className: cn("flex-1 min-w-0 flex flex-col overflow-auto", className), ...props })
|
|
8575
8806
|
);
|
|
8576
8807
|
AppShellMain.displayName = "AppShellMain";
|
|
8577
|
-
var MobileSidebarTrigger =
|
|
8808
|
+
var MobileSidebarTrigger = React136__namespace.default.forwardRef(
|
|
8578
8809
|
({ className, ...props }, ref) => {
|
|
8579
8810
|
const { mobileOpen, setMobileOpen } = useAppShell();
|
|
8580
8811
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -8603,7 +8834,7 @@ var sizeMap5 = {
|
|
|
8603
8834
|
xl: "max-w-screen-xl",
|
|
8604
8835
|
full: "max-w-full"
|
|
8605
8836
|
};
|
|
8606
|
-
var Container =
|
|
8837
|
+
var Container = React136__namespace.default.forwardRef(
|
|
8607
8838
|
({ className, size = "lg", noPadding = false, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
8608
8839
|
"div",
|
|
8609
8840
|
{
|
|
@@ -8619,7 +8850,7 @@ var Container = React131__namespace.default.forwardRef(
|
|
|
8619
8850
|
)
|
|
8620
8851
|
);
|
|
8621
8852
|
Container.displayName = "Container";
|
|
8622
|
-
var Navbar =
|
|
8853
|
+
var Navbar = React136__namespace.default.forwardRef(
|
|
8623
8854
|
({ className, sticky = false, border = true, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
8624
8855
|
"nav",
|
|
8625
8856
|
{
|
|
@@ -8635,7 +8866,7 @@ var Navbar = React131__namespace.default.forwardRef(
|
|
|
8635
8866
|
)
|
|
8636
8867
|
);
|
|
8637
8868
|
Navbar.displayName = "Navbar";
|
|
8638
|
-
var NavbarBrand =
|
|
8869
|
+
var NavbarBrand = React136__namespace.default.forwardRef(
|
|
8639
8870
|
({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx("div", { ref, className: cn("flex items-center gap-2 px-4 shrink-0", className), ...props })
|
|
8640
8871
|
);
|
|
8641
8872
|
NavbarBrand.displayName = "NavbarBrand";
|
|
@@ -8644,7 +8875,7 @@ var alignMap = {
|
|
|
8644
8875
|
center: "justify-center flex-1",
|
|
8645
8876
|
end: "justify-end ml-auto"
|
|
8646
8877
|
};
|
|
8647
|
-
var NavbarContent =
|
|
8878
|
+
var NavbarContent = React136__namespace.default.forwardRef(
|
|
8648
8879
|
({ className, align = "start", ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
8649
8880
|
"div",
|
|
8650
8881
|
{
|
|
@@ -8655,11 +8886,11 @@ var NavbarContent = React131__namespace.default.forwardRef(
|
|
|
8655
8886
|
)
|
|
8656
8887
|
);
|
|
8657
8888
|
NavbarContent.displayName = "NavbarContent";
|
|
8658
|
-
var NavbarItem =
|
|
8889
|
+
var NavbarItem = React136__namespace.default.forwardRef(
|
|
8659
8890
|
({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx("div", { ref, className: cn("flex items-center", className), ...props })
|
|
8660
8891
|
);
|
|
8661
8892
|
NavbarItem.displayName = "NavbarItem";
|
|
8662
|
-
var Page =
|
|
8893
|
+
var Page = React136__namespace.default.forwardRef(
|
|
8663
8894
|
({ className, maxWidth, style, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
8664
8895
|
"div",
|
|
8665
8896
|
{
|
|
@@ -8671,7 +8902,7 @@ var Page = React131__namespace.default.forwardRef(
|
|
|
8671
8902
|
)
|
|
8672
8903
|
);
|
|
8673
8904
|
Page.displayName = "Page";
|
|
8674
|
-
var PageHeader =
|
|
8905
|
+
var PageHeader = React136__namespace.default.forwardRef(
|
|
8675
8906
|
({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
8676
8907
|
"div",
|
|
8677
8908
|
{
|
|
@@ -8682,7 +8913,7 @@ var PageHeader = React131__namespace.default.forwardRef(
|
|
|
8682
8913
|
)
|
|
8683
8914
|
);
|
|
8684
8915
|
PageHeader.displayName = "PageHeader";
|
|
8685
|
-
var PageTitle =
|
|
8916
|
+
var PageTitle = React136__namespace.default.forwardRef(
|
|
8686
8917
|
({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
8687
8918
|
"h1",
|
|
8688
8919
|
{
|
|
@@ -8693,19 +8924,19 @@ var PageTitle = React131__namespace.default.forwardRef(
|
|
|
8693
8924
|
)
|
|
8694
8925
|
);
|
|
8695
8926
|
PageTitle.displayName = "PageTitle";
|
|
8696
|
-
var PageDescription =
|
|
8927
|
+
var PageDescription = React136__namespace.default.forwardRef(
|
|
8697
8928
|
({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx("p", { ref, className: cn("text-sm text-[hsl(var(--muted-foreground))] mt-1", className), ...props })
|
|
8698
8929
|
);
|
|
8699
8930
|
PageDescription.displayName = "PageDescription";
|
|
8700
|
-
var PageActions =
|
|
8931
|
+
var PageActions = React136__namespace.default.forwardRef(
|
|
8701
8932
|
({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx("div", { ref, className: cn("flex items-center gap-2 shrink-0", className), ...props })
|
|
8702
8933
|
);
|
|
8703
8934
|
PageActions.displayName = "PageActions";
|
|
8704
|
-
var PageBody =
|
|
8935
|
+
var PageBody = React136__namespace.default.forwardRef(
|
|
8705
8936
|
({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx("div", { ref, className: cn("flex-1 p-6 flex flex-col gap-6", className), ...props })
|
|
8706
8937
|
);
|
|
8707
8938
|
PageBody.displayName = "PageBody";
|
|
8708
|
-
var ResizeBox =
|
|
8939
|
+
var ResizeBox = React136__namespace.default.forwardRef(
|
|
8709
8940
|
({ className, resize = "both", minWidth = 100, minHeight = 100, style, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
8710
8941
|
"div",
|
|
8711
8942
|
{
|
|
@@ -8722,7 +8953,7 @@ var HandleIcon = () => /* @__PURE__ */ jsxRuntime.jsxs("svg", { width: "10", hei
|
|
|
8722
8953
|
/* @__PURE__ */ jsxRuntime.jsx("path", { d: "M8 5L5 8", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round" }),
|
|
8723
8954
|
/* @__PURE__ */ jsxRuntime.jsx("path", { d: "M8 8L8 8", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round" })
|
|
8724
8955
|
] });
|
|
8725
|
-
var ResizeHandle =
|
|
8956
|
+
var ResizeHandle = React136__namespace.default.forwardRef(
|
|
8726
8957
|
({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
8727
8958
|
"div",
|
|
8728
8959
|
{
|
|
@@ -8738,16 +8969,16 @@ var ResizeHandle = React131__namespace.default.forwardRef(
|
|
|
8738
8969
|
)
|
|
8739
8970
|
);
|
|
8740
8971
|
ResizeHandle.displayName = "ResizeHandle";
|
|
8741
|
-
var SidebarCtx2 =
|
|
8742
|
-
var useSidebarCtx = () =>
|
|
8972
|
+
var SidebarCtx2 = React136__namespace.default.createContext({ collapsed: false });
|
|
8973
|
+
var useSidebarCtx = () => React136__namespace.default.useContext(SidebarCtx2);
|
|
8743
8974
|
var makeSlot = (name, cls) => {
|
|
8744
|
-
const C =
|
|
8975
|
+
const C = React136__namespace.default.forwardRef(
|
|
8745
8976
|
({ className, ...p }, ref) => /* @__PURE__ */ jsxRuntime.jsx("div", { ref, className: cn(cls, className), ...p })
|
|
8746
8977
|
);
|
|
8747
8978
|
C.displayName = name;
|
|
8748
8979
|
return C;
|
|
8749
8980
|
};
|
|
8750
|
-
var Sidebar2 =
|
|
8981
|
+
var Sidebar2 = React136__namespace.default.forwardRef(
|
|
8751
8982
|
({ className, collapsed = false, onCollapse, width = "240px", style, children, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(SidebarCtx2.Provider, { value: { collapsed }, children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
8752
8983
|
"div",
|
|
8753
8984
|
{
|
|
@@ -8775,7 +9006,7 @@ var SidebarContent = makeSlot("SidebarContent", "flex-1 overflow-y-auto py-2");
|
|
|
8775
9006
|
var SidebarFooter2 = makeSlot("SidebarFooter", "px-3 py-3 border-t border-[hsl(var(--border))] shrink-0");
|
|
8776
9007
|
var SidebarGroup = makeSlot("SidebarGroup", "mb-2");
|
|
8777
9008
|
var SidebarSeparator2 = makeSlot("SidebarSeparator", "h-px bg-[hsl(var(--border))] mx-3 my-2");
|
|
8778
|
-
var SidebarGroupLabel =
|
|
9009
|
+
var SidebarGroupLabel = React136__namespace.default.forwardRef(
|
|
8779
9010
|
({ className, ...props }, ref) => {
|
|
8780
9011
|
const { collapsed } = useSidebarCtx();
|
|
8781
9012
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -8789,7 +9020,7 @@ var SidebarGroupLabel = React131__namespace.default.forwardRef(
|
|
|
8789
9020
|
}
|
|
8790
9021
|
);
|
|
8791
9022
|
SidebarGroupLabel.displayName = "SidebarGroupLabel";
|
|
8792
|
-
var SidebarItem2 =
|
|
9023
|
+
var SidebarItem2 = React136__namespace.default.forwardRef(
|
|
8793
9024
|
({ className, icon, label, active, href, badge, onClick, ...props }, ref) => {
|
|
8794
9025
|
const { collapsed } = useSidebarCtx();
|
|
8795
9026
|
const cls = cn(
|
|
@@ -8808,11 +9039,11 @@ var SidebarItem2 = React131__namespace.default.forwardRef(
|
|
|
8808
9039
|
}
|
|
8809
9040
|
);
|
|
8810
9041
|
SidebarItem2.displayName = "SidebarItem";
|
|
8811
|
-
var SplitPage =
|
|
9042
|
+
var SplitPage = React136__namespace.default.forwardRef(
|
|
8812
9043
|
({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx("div", { ref, className: cn("flex h-full w-full overflow-hidden", className), ...props })
|
|
8813
9044
|
);
|
|
8814
9045
|
SplitPage.displayName = "SplitPage";
|
|
8815
|
-
var SplitPageList =
|
|
9046
|
+
var SplitPageList = React136__namespace.default.forwardRef(
|
|
8816
9047
|
({ className, width = "320px", style, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
8817
9048
|
"div",
|
|
8818
9049
|
{
|
|
@@ -8824,7 +9055,7 @@ var SplitPageList = React131__namespace.default.forwardRef(
|
|
|
8824
9055
|
)
|
|
8825
9056
|
);
|
|
8826
9057
|
SplitPageList.displayName = "SplitPageList";
|
|
8827
|
-
var SplitPageDetail =
|
|
9058
|
+
var SplitPageDetail = React136__namespace.default.forwardRef(
|
|
8828
9059
|
({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx("div", { ref, className: cn("flex-1 min-w-0 h-full overflow-auto", className), ...props })
|
|
8829
9060
|
);
|
|
8830
9061
|
SplitPageDetail.displayName = "SplitPageDetail";
|
|
@@ -8849,7 +9080,7 @@ var justifyMap = {
|
|
|
8849
9080
|
around: "justify-around",
|
|
8850
9081
|
evenly: "justify-evenly"
|
|
8851
9082
|
};
|
|
8852
|
-
var Stack =
|
|
9083
|
+
var Stack = React136__namespace.default.forwardRef(
|
|
8853
9084
|
({ className, gap, direction = "col", align, justify, wrap, style, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
8854
9085
|
"div",
|
|
8855
9086
|
{
|
|
@@ -8868,15 +9099,15 @@ var Stack = React131__namespace.default.forwardRef(
|
|
|
8868
9099
|
)
|
|
8869
9100
|
);
|
|
8870
9101
|
Stack.displayName = "Stack";
|
|
8871
|
-
var HStack =
|
|
9102
|
+
var HStack = React136__namespace.default.forwardRef(
|
|
8872
9103
|
(props, ref) => /* @__PURE__ */ jsxRuntime.jsx(Stack, { ref, direction: "row", ...props })
|
|
8873
9104
|
);
|
|
8874
9105
|
HStack.displayName = "HStack";
|
|
8875
|
-
var VStack =
|
|
9106
|
+
var VStack = React136__namespace.default.forwardRef(
|
|
8876
9107
|
(props, ref) => /* @__PURE__ */ jsxRuntime.jsx(Stack, { ref, direction: "col", ...props })
|
|
8877
9108
|
);
|
|
8878
9109
|
VStack.displayName = "VStack";
|
|
8879
|
-
var PageLayout =
|
|
9110
|
+
var PageLayout = React136__namespace.default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
8880
9111
|
"div",
|
|
8881
9112
|
{
|
|
8882
9113
|
ref,
|
|
@@ -8886,7 +9117,7 @@ var PageLayout = React131__namespace.default.forwardRef(({ className, ...props }
|
|
|
8886
9117
|
}
|
|
8887
9118
|
));
|
|
8888
9119
|
PageLayout.displayName = "PageLayout";
|
|
8889
|
-
var PageHeader2 =
|
|
9120
|
+
var PageHeader2 = React136__namespace.default.forwardRef(
|
|
8890
9121
|
({ className, title, description, actions, back, children }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
8891
9122
|
"div",
|
|
8892
9123
|
{
|
|
@@ -8908,7 +9139,7 @@ var PageHeader2 = React131__namespace.default.forwardRef(
|
|
|
8908
9139
|
)
|
|
8909
9140
|
);
|
|
8910
9141
|
PageHeader2.displayName = "PageHeader";
|
|
8911
|
-
var PageContainer =
|
|
9142
|
+
var PageContainer = React136__namespace.default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
8912
9143
|
"div",
|
|
8913
9144
|
{
|
|
8914
9145
|
ref,
|
|
@@ -8922,7 +9153,7 @@ var PageContainer = React131__namespace.default.forwardRef(({ className, ...prop
|
|
|
8922
9153
|
}
|
|
8923
9154
|
));
|
|
8924
9155
|
PageContainer.displayName = "PageContainer";
|
|
8925
|
-
var PageMain =
|
|
9156
|
+
var PageMain = React136__namespace.default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
8926
9157
|
"div",
|
|
8927
9158
|
{
|
|
8928
9159
|
ref,
|
|
@@ -8937,7 +9168,7 @@ var PageMain = React131__namespace.default.forwardRef(({ className, ...props },
|
|
|
8937
9168
|
}
|
|
8938
9169
|
));
|
|
8939
9170
|
PageMain.displayName = "PageMain";
|
|
8940
|
-
var CommandPaletteCtx =
|
|
9171
|
+
var CommandPaletteCtx = React136.createContext({
|
|
8941
9172
|
open: false,
|
|
8942
9173
|
setOpen: () => {
|
|
8943
9174
|
},
|
|
@@ -8947,9 +9178,9 @@ var CommandPaletteCtx = React131.createContext({
|
|
|
8947
9178
|
function CommandPaletteProvider({
|
|
8948
9179
|
children
|
|
8949
9180
|
}) {
|
|
8950
|
-
const [open, setOpen] =
|
|
8951
|
-
const toggle =
|
|
8952
|
-
|
|
9181
|
+
const [open, setOpen] = React136.useState(false);
|
|
9182
|
+
const toggle = React136.useCallback(() => setOpen((v) => !v), []);
|
|
9183
|
+
React136.useEffect(() => {
|
|
8953
9184
|
const down = (e) => {
|
|
8954
9185
|
if (e.key === "k" && (e.metaKey || e.ctrlKey) || e.key === "/") {
|
|
8955
9186
|
if (e.key === "/" && e.target.tagName !== "BODY") return;
|
|
@@ -8963,7 +9194,7 @@ function CommandPaletteProvider({
|
|
|
8963
9194
|
return /* @__PURE__ */ jsxRuntime.jsx(CommandPaletteCtx.Provider, { value: { open, setOpen, toggle }, children });
|
|
8964
9195
|
}
|
|
8965
9196
|
function useCommandPalette() {
|
|
8966
|
-
return
|
|
9197
|
+
return React136.useContext(CommandPaletteCtx);
|
|
8967
9198
|
}
|
|
8968
9199
|
function CommandPalette({
|
|
8969
9200
|
open,
|
|
@@ -9071,7 +9302,7 @@ function CommandPalette({
|
|
|
9071
9302
|
)
|
|
9072
9303
|
] });
|
|
9073
9304
|
}
|
|
9074
|
-
var HotkeysCtx =
|
|
9305
|
+
var HotkeysCtx = React136.createContext({
|
|
9075
9306
|
hotkeys: [],
|
|
9076
9307
|
registerHotkeys: () => () => {
|
|
9077
9308
|
}
|
|
@@ -9094,16 +9325,16 @@ function HotkeysProvider({
|
|
|
9094
9325
|
children,
|
|
9095
9326
|
hotkeys: initialHotkeys = []
|
|
9096
9327
|
}) {
|
|
9097
|
-
const [hotkeys, setHotkeys] =
|
|
9098
|
-
const seqRef =
|
|
9099
|
-
const seqTimerRef =
|
|
9100
|
-
const registerHotkeys =
|
|
9328
|
+
const [hotkeys, setHotkeys] = React136.useState(initialHotkeys);
|
|
9329
|
+
const seqRef = React136.useRef([]);
|
|
9330
|
+
const seqTimerRef = React136.useRef(null);
|
|
9331
|
+
const registerHotkeys = React136.useCallback((newHotkeys) => {
|
|
9101
9332
|
setHotkeys((prev) => [...prev, ...newHotkeys]);
|
|
9102
9333
|
return () => {
|
|
9103
9334
|
setHotkeys((prev) => prev.filter((h) => !newHotkeys.includes(h)));
|
|
9104
9335
|
};
|
|
9105
9336
|
}, []);
|
|
9106
|
-
|
|
9337
|
+
React136.useEffect(() => {
|
|
9107
9338
|
const handleKeyDown = (e) => {
|
|
9108
9339
|
const target = e.target;
|
|
9109
9340
|
if (target.tagName === "INPUT" || target.tagName === "TEXTAREA" || target.tagName === "SELECT" || target.isContentEditable) {
|
|
@@ -9143,14 +9374,14 @@ function HotkeysProvider({
|
|
|
9143
9374
|
return /* @__PURE__ */ jsxRuntime.jsx(HotkeysCtx.Provider, { value: { hotkeys, registerHotkeys }, children });
|
|
9144
9375
|
}
|
|
9145
9376
|
function useHotkeys() {
|
|
9146
|
-
return
|
|
9377
|
+
return React136.useContext(HotkeysCtx);
|
|
9147
9378
|
}
|
|
9148
9379
|
function HelpSheet({
|
|
9149
9380
|
open,
|
|
9150
9381
|
onClose
|
|
9151
9382
|
}) {
|
|
9152
9383
|
const { hotkeys } = useHotkeys();
|
|
9153
|
-
|
|
9384
|
+
React136.useEffect(() => {
|
|
9154
9385
|
const handleEsc = (e) => {
|
|
9155
9386
|
if (e.key === "Escape" && open) onClose();
|
|
9156
9387
|
};
|
|
@@ -9304,9 +9535,9 @@ function ToastItem({ toast: t, onDismiss }) {
|
|
|
9304
9535
|
);
|
|
9305
9536
|
}
|
|
9306
9537
|
function Toaster() {
|
|
9307
|
-
const [toasts, setToasts] =
|
|
9308
|
-
const timers =
|
|
9309
|
-
const dismiss =
|
|
9538
|
+
const [toasts, setToasts] = React136.useState([]);
|
|
9539
|
+
const timers = React136.useRef(/* @__PURE__ */ new Map());
|
|
9540
|
+
const dismiss = React136.useCallback((id) => {
|
|
9310
9541
|
setToasts(
|
|
9311
9542
|
(prev) => prev.map((t) => t.id === id ? { ...t, visible: false } : t)
|
|
9312
9543
|
);
|
|
@@ -9319,7 +9550,7 @@ function Toaster() {
|
|
|
9319
9550
|
timers.current.delete(id);
|
|
9320
9551
|
}
|
|
9321
9552
|
}, []);
|
|
9322
|
-
|
|
9553
|
+
React136.useEffect(() => {
|
|
9323
9554
|
const unsubToast = toastEmitter.onToast((event) => {
|
|
9324
9555
|
setToasts((prev) => {
|
|
9325
9556
|
const next = [
|
|
@@ -9368,7 +9599,7 @@ var directionClasses = {
|
|
|
9368
9599
|
bl: "bg-gradient-to-bl",
|
|
9369
9600
|
l: "bg-gradient-to-l"
|
|
9370
9601
|
};
|
|
9371
|
-
var GradientHeading =
|
|
9602
|
+
var GradientHeading = React136__namespace.default.forwardRef(
|
|
9372
9603
|
({
|
|
9373
9604
|
as: Tag = "h2",
|
|
9374
9605
|
preset = "primary",
|
|
@@ -9414,7 +9645,7 @@ function formatNumber(value, decimals, format3, locale) {
|
|
|
9414
9645
|
}
|
|
9415
9646
|
return decimals > 0 ? value.toFixed(decimals) : String(Math.round(value));
|
|
9416
9647
|
}
|
|
9417
|
-
var AnimatedNumber =
|
|
9648
|
+
var AnimatedNumber = React136__namespace.default.forwardRef(
|
|
9418
9649
|
({
|
|
9419
9650
|
value,
|
|
9420
9651
|
from = 0,
|
|
@@ -9429,12 +9660,12 @@ var AnimatedNumber = React131__namespace.default.forwardRef(
|
|
|
9429
9660
|
className,
|
|
9430
9661
|
...props
|
|
9431
9662
|
}, ref) => {
|
|
9432
|
-
const [displayed, setDisplayed] =
|
|
9433
|
-
const rafRef =
|
|
9434
|
-
const startTimeRef =
|
|
9435
|
-
const containerRef =
|
|
9436
|
-
const hasStarted =
|
|
9437
|
-
const runAnimation =
|
|
9663
|
+
const [displayed, setDisplayed] = React136.useState(autoStart ? from : value);
|
|
9664
|
+
const rafRef = React136.useRef(null);
|
|
9665
|
+
const startTimeRef = React136.useRef(null);
|
|
9666
|
+
const containerRef = React136.useRef(null);
|
|
9667
|
+
const hasStarted = React136.useRef(false);
|
|
9668
|
+
const runAnimation = React136__namespace.default.useCallback(
|
|
9438
9669
|
(startFrom) => {
|
|
9439
9670
|
if (rafRef.current !== null) cancelAnimationFrame(rafRef.current);
|
|
9440
9671
|
startTimeRef.current = null;
|
|
@@ -9457,7 +9688,7 @@ var AnimatedNumber = React131__namespace.default.forwardRef(
|
|
|
9457
9688
|
},
|
|
9458
9689
|
[value, duration, easing]
|
|
9459
9690
|
);
|
|
9460
|
-
|
|
9691
|
+
React136.useEffect(() => {
|
|
9461
9692
|
if (!autoStart) return void 0;
|
|
9462
9693
|
if (typeof IntersectionObserver !== "undefined") {
|
|
9463
9694
|
const el = containerRef.current;
|
|
@@ -9478,11 +9709,11 @@ var AnimatedNumber = React131__namespace.default.forwardRef(
|
|
|
9478
9709
|
return void 0;
|
|
9479
9710
|
}
|
|
9480
9711
|
}, []);
|
|
9481
|
-
|
|
9712
|
+
React136.useEffect(() => {
|
|
9482
9713
|
if (!hasStarted.current) return;
|
|
9483
9714
|
runAnimation(displayed);
|
|
9484
9715
|
}, [value]);
|
|
9485
|
-
|
|
9716
|
+
React136.useEffect(() => {
|
|
9486
9717
|
return () => {
|
|
9487
9718
|
if (rafRef.current !== null) cancelAnimationFrame(rafRef.current);
|
|
9488
9719
|
};
|
|
@@ -9522,9 +9753,9 @@ function TextReveal({
|
|
|
9522
9753
|
className,
|
|
9523
9754
|
style
|
|
9524
9755
|
}) {
|
|
9525
|
-
const [revealed, setRevealed] =
|
|
9526
|
-
const containerRef =
|
|
9527
|
-
|
|
9756
|
+
const [revealed, setRevealed] = React136.useState(false);
|
|
9757
|
+
const containerRef = React136.useRef(null);
|
|
9758
|
+
React136.useEffect(() => {
|
|
9528
9759
|
if (!autoStart) return void 0;
|
|
9529
9760
|
const el = containerRef.current;
|
|
9530
9761
|
if (!el) return void 0;
|
|
@@ -9546,7 +9777,7 @@ function TextReveal({
|
|
|
9546
9777
|
}
|
|
9547
9778
|
}, [autoStart, delay]);
|
|
9548
9779
|
const units = mode === "chars" ? text.split("") : mode === "words" ? text.split(" ") : [text];
|
|
9549
|
-
return
|
|
9780
|
+
return React136__namespace.default.createElement(
|
|
9550
9781
|
Tag,
|
|
9551
9782
|
{
|
|
9552
9783
|
ref: containerRef,
|
|
@@ -9586,16 +9817,16 @@ function Typewriter({
|
|
|
9586
9817
|
className,
|
|
9587
9818
|
style
|
|
9588
9819
|
}) {
|
|
9589
|
-
const [display, setDisplay] =
|
|
9590
|
-
const [phase, setPhase] =
|
|
9591
|
-
const [wordIdx, setWordIdx] =
|
|
9592
|
-
const [cursorVisible, setCursorVisible] =
|
|
9593
|
-
const timerRef =
|
|
9594
|
-
|
|
9820
|
+
const [display, setDisplay] = React136.useState("");
|
|
9821
|
+
const [phase, setPhase] = React136.useState("typing");
|
|
9822
|
+
const [wordIdx, setWordIdx] = React136.useState(0);
|
|
9823
|
+
const [cursorVisible, setCursorVisible] = React136.useState(true);
|
|
9824
|
+
const timerRef = React136.useRef(null);
|
|
9825
|
+
React136.useEffect(() => {
|
|
9595
9826
|
const id = setInterval(() => setCursorVisible((v) => !v), 530);
|
|
9596
9827
|
return () => clearInterval(id);
|
|
9597
9828
|
}, []);
|
|
9598
|
-
|
|
9829
|
+
React136.useEffect(() => {
|
|
9599
9830
|
if (!words.length) return void 0;
|
|
9600
9831
|
const word = words[wordIdx] ?? "";
|
|
9601
9832
|
if (phase === "typing") {
|
|
@@ -9626,7 +9857,7 @@ function Typewriter({
|
|
|
9626
9857
|
if (timerRef.current) clearTimeout(timerRef.current);
|
|
9627
9858
|
};
|
|
9628
9859
|
}, [display, phase, wordIdx, words, typeSpeed, deleteSpeed, pauseAfter, loop]);
|
|
9629
|
-
return
|
|
9860
|
+
return React136__namespace.default.createElement(
|
|
9630
9861
|
Tag,
|
|
9631
9862
|
{
|
|
9632
9863
|
"data-slot": "typewriter",
|
|
@@ -9665,9 +9896,9 @@ var headingVariants = classVarianceAuthority.cva("font-heading tracking-tight te
|
|
|
9665
9896
|
},
|
|
9666
9897
|
defaultVariants: { size: "lg", tone: "default" }
|
|
9667
9898
|
});
|
|
9668
|
-
var Heading =
|
|
9899
|
+
var Heading = React136__namespace.default.forwardRef(
|
|
9669
9900
|
({ as: Tag = "h2", size, tone, className, ...props }, ref) => {
|
|
9670
|
-
return
|
|
9901
|
+
return React136__namespace.default.createElement(Tag, {
|
|
9671
9902
|
ref,
|
|
9672
9903
|
"data-slot": "heading",
|
|
9673
9904
|
className: cn(headingVariants({ size, tone }), className),
|
|
@@ -9697,9 +9928,9 @@ var bodyVariants = classVarianceAuthority.cva("font-sans", {
|
|
|
9697
9928
|
},
|
|
9698
9929
|
defaultVariants: { size: "md", tone: "default", weight: "normal" }
|
|
9699
9930
|
});
|
|
9700
|
-
var Body =
|
|
9931
|
+
var Body = React136__namespace.default.forwardRef(
|
|
9701
9932
|
({ as: Tag = "p", size, tone, weight, className, ...props }, ref) => {
|
|
9702
|
-
return
|
|
9933
|
+
return React136__namespace.default.createElement(Tag, {
|
|
9703
9934
|
ref,
|
|
9704
9935
|
"data-slot": "body",
|
|
9705
9936
|
className: cn(bodyVariants({ size, tone, weight }), className),
|
|
@@ -9718,7 +9949,7 @@ var captionVariants = classVarianceAuthority.cva("font-sans text-[11px] font-sem
|
|
|
9718
9949
|
},
|
|
9719
9950
|
defaultVariants: { tone: "default" }
|
|
9720
9951
|
});
|
|
9721
|
-
var Caption =
|
|
9952
|
+
var Caption = React136__namespace.default.forwardRef(
|
|
9722
9953
|
({ tone, className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
9723
9954
|
"span",
|
|
9724
9955
|
{
|
|
@@ -9730,7 +9961,7 @@ var Caption = React131__namespace.default.forwardRef(
|
|
|
9730
9961
|
)
|
|
9731
9962
|
);
|
|
9732
9963
|
Caption.displayName = "Caption";
|
|
9733
|
-
var Code3 =
|
|
9964
|
+
var Code3 = React136__namespace.default.forwardRef(
|
|
9734
9965
|
({ block, className, children, ...props }, ref) => {
|
|
9735
9966
|
if (block) {
|
|
9736
9967
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -9782,7 +10013,7 @@ var presetStyles = {
|
|
|
9782
10013
|
},
|
|
9783
10014
|
custom: {}
|
|
9784
10015
|
};
|
|
9785
|
-
var GradientBackground =
|
|
10016
|
+
var GradientBackground = React136__namespace.default.forwardRef(
|
|
9786
10017
|
({
|
|
9787
10018
|
fixed = false,
|
|
9788
10019
|
preset = "slate",
|
|
@@ -9841,7 +10072,7 @@ var DEFAULT_COLORS4 = [
|
|
|
9841
10072
|
"hsl(280 100% 70% / 0.25)",
|
|
9842
10073
|
"hsl(217 33% 17% / 0.4)"
|
|
9843
10074
|
];
|
|
9844
|
-
var AnimatedGradient =
|
|
10075
|
+
var AnimatedGradient = React136__namespace.default.forwardRef(
|
|
9845
10076
|
({
|
|
9846
10077
|
colors = DEFAULT_COLORS4,
|
|
9847
10078
|
speed = 1,
|
|
@@ -9852,7 +10083,7 @@ var AnimatedGradient = React131__namespace.default.forwardRef(
|
|
|
9852
10083
|
style,
|
|
9853
10084
|
...props
|
|
9854
10085
|
}, ref) => {
|
|
9855
|
-
const idRef =
|
|
10086
|
+
const idRef = React136.useRef(`ag-${Math.random().toString(36).slice(2, 7)}`);
|
|
9856
10087
|
idRef.current;
|
|
9857
10088
|
const [c0 = DEFAULT_COLORS4[0], c1 = DEFAULT_COLORS4[1], c2 = DEFAULT_COLORS4[2]] = colors;
|
|
9858
10089
|
const duration0 = (12 / speed).toFixed(1);
|
|
@@ -9960,7 +10191,7 @@ var AnimatedGradient = React131__namespace.default.forwardRef(
|
|
|
9960
10191
|
}
|
|
9961
10192
|
);
|
|
9962
10193
|
AnimatedGradient.displayName = "AnimatedGradient";
|
|
9963
|
-
var DottedBackground =
|
|
10194
|
+
var DottedBackground = React136__namespace.default.forwardRef(
|
|
9964
10195
|
({
|
|
9965
10196
|
color,
|
|
9966
10197
|
dotSize = 1,
|
|
@@ -10007,7 +10238,7 @@ var DottedBackground = React131__namespace.default.forwardRef(
|
|
|
10007
10238
|
}
|
|
10008
10239
|
);
|
|
10009
10240
|
DottedBackground.displayName = "DottedBackground";
|
|
10010
|
-
var NoiseBackground =
|
|
10241
|
+
var NoiseBackground = React136__namespace.default.forwardRef(
|
|
10011
10242
|
({
|
|
10012
10243
|
opacity = 0.04,
|
|
10013
10244
|
frequency = 0.65,
|
|
@@ -10103,7 +10334,7 @@ var DEFAULT_COLORS5 = [
|
|
|
10103
10334
|
[0.55, 0.3, 0.95]
|
|
10104
10335
|
// chart-3 violet
|
|
10105
10336
|
];
|
|
10106
|
-
var HeroShaderA =
|
|
10337
|
+
var HeroShaderA = React136__namespace.default.forwardRef(
|
|
10107
10338
|
({
|
|
10108
10339
|
className,
|
|
10109
10340
|
colors = DEFAULT_COLORS5,
|
|
@@ -10114,11 +10345,11 @@ var HeroShaderA = React131__namespace.default.forwardRef(
|
|
|
10114
10345
|
style,
|
|
10115
10346
|
...props
|
|
10116
10347
|
}, ref) => {
|
|
10117
|
-
const wrapRef =
|
|
10118
|
-
const canvasRef =
|
|
10119
|
-
const fallbackRef =
|
|
10120
|
-
|
|
10121
|
-
|
|
10348
|
+
const wrapRef = React136.useRef(null);
|
|
10349
|
+
const canvasRef = React136.useRef(null);
|
|
10350
|
+
const fallbackRef = React136.useRef(false);
|
|
10351
|
+
React136__namespace.default.useImperativeHandle(ref, () => wrapRef.current);
|
|
10352
|
+
React136.useEffect(() => {
|
|
10122
10353
|
if (typeof window === "undefined") return;
|
|
10123
10354
|
const reduceMotion = window.matchMedia("(prefers-reduced-motion: reduce)").matches;
|
|
10124
10355
|
const canvas = canvasRef.current;
|
|
@@ -10254,7 +10485,7 @@ var HeroShaderA = React131__namespace.default.forwardRef(
|
|
|
10254
10485
|
}
|
|
10255
10486
|
);
|
|
10256
10487
|
HeroShaderA.displayName = "HeroShaderA";
|
|
10257
|
-
var ScrollHeader =
|
|
10488
|
+
var ScrollHeader = React136__namespace.default.forwardRef(
|
|
10258
10489
|
({
|
|
10259
10490
|
title,
|
|
10260
10491
|
subtitle,
|
|
@@ -10266,8 +10497,8 @@ var ScrollHeader = React131__namespace.default.forwardRef(
|
|
|
10266
10497
|
sticky = true,
|
|
10267
10498
|
className
|
|
10268
10499
|
}, ref) => {
|
|
10269
|
-
const [scrolled, setScrolled] =
|
|
10270
|
-
|
|
10500
|
+
const [scrolled, setScrolled] = React136.useState(false);
|
|
10501
|
+
React136.useEffect(() => {
|
|
10271
10502
|
const container = scrollRef?.current ?? window;
|
|
10272
10503
|
const handleScroll = () => {
|
|
10273
10504
|
const scrollY = container === window ? window.scrollY : container.scrollTop;
|
|
@@ -10341,7 +10572,7 @@ var DEFAULT_TRANSITION = {
|
|
|
10341
10572
|
ease: [0.16, 1, 0.3, 1]
|
|
10342
10573
|
// ease-out-expo (BezierDefinition)
|
|
10343
10574
|
};
|
|
10344
|
-
var FadeIn =
|
|
10575
|
+
var FadeIn = React136__namespace.default.forwardRef(
|
|
10345
10576
|
({ delay = 0, duration, children, ...props }, ref) => {
|
|
10346
10577
|
const transition = {
|
|
10347
10578
|
...DEFAULT_TRANSITION,
|
|
@@ -10369,7 +10600,7 @@ var DIRECTION_PRESET_MAP = {
|
|
|
10369
10600
|
left: "slideLeft",
|
|
10370
10601
|
right: "slideRight"
|
|
10371
10602
|
};
|
|
10372
|
-
var SlideIn =
|
|
10603
|
+
var SlideIn = React136__namespace.default.forwardRef(
|
|
10373
10604
|
({ direction = "up", delay = 0, duration, children, ...props }, ref) => {
|
|
10374
10605
|
const preset = MOTION_PRESETS[DIRECTION_PRESET_MAP[direction]];
|
|
10375
10606
|
const transition = {
|
|
@@ -10392,7 +10623,7 @@ var SlideIn = React131__namespace.default.forwardRef(
|
|
|
10392
10623
|
}
|
|
10393
10624
|
);
|
|
10394
10625
|
SlideIn.displayName = "SlideIn";
|
|
10395
|
-
var ScaleIn =
|
|
10626
|
+
var ScaleIn = React136__namespace.default.forwardRef(
|
|
10396
10627
|
({ delay = 0, duration, children, ...props }, ref) => {
|
|
10397
10628
|
const transition = {
|
|
10398
10629
|
...DEFAULT_TRANSITION,
|
|
@@ -10415,7 +10646,7 @@ var ScaleIn = React131__namespace.default.forwardRef(
|
|
|
10415
10646
|
);
|
|
10416
10647
|
ScaleIn.displayName = "ScaleIn";
|
|
10417
10648
|
function Reveal({ preset = "fadeIn", delay = 0, once = true, children, className }) {
|
|
10418
|
-
const ref =
|
|
10649
|
+
const ref = React136.useRef(null);
|
|
10419
10650
|
const isInView = react.useInView(ref, { once });
|
|
10420
10651
|
const variants = MOTION_PRESETS[preset];
|
|
10421
10652
|
const transition = { ...DEFAULT_TRANSITION, delay };
|
|
@@ -10433,7 +10664,7 @@ function Reveal({ preset = "fadeIn", delay = 0, once = true, children, className
|
|
|
10433
10664
|
);
|
|
10434
10665
|
}
|
|
10435
10666
|
function Stagger({ staggerDelay = 0.05, preset = "fadeIn", children, className, once = true }) {
|
|
10436
|
-
const ref =
|
|
10667
|
+
const ref = React136.useRef(null);
|
|
10437
10668
|
const isInView = react.useInView(ref, { once });
|
|
10438
10669
|
const childVariants = MOTION_PRESETS[preset];
|
|
10439
10670
|
const containerVariants = {
|
|
@@ -10456,19 +10687,19 @@ function Stagger({ staggerDelay = 0.05, preset = "fadeIn", children, className,
|
|
|
10456
10687
|
initial: "hidden",
|
|
10457
10688
|
animate: isInView ? "visible" : "hidden",
|
|
10458
10689
|
className,
|
|
10459
|
-
children:
|
|
10690
|
+
children: React136__namespace.default.Children.map(children, (child, i) => /* @__PURE__ */ jsxRuntime.jsx(react.motion.div, { variants: itemVariants, children: child }, i))
|
|
10460
10691
|
}
|
|
10461
10692
|
);
|
|
10462
10693
|
}
|
|
10463
|
-
var Morph =
|
|
10694
|
+
var Morph = React136__namespace.default.forwardRef(
|
|
10464
10695
|
({ layoutId, children, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(react.motion.div, { ref, layoutId, layout: true, ...props, children })
|
|
10465
10696
|
);
|
|
10466
10697
|
Morph.displayName = "Morph";
|
|
10467
10698
|
var rippleCounter = 0;
|
|
10468
|
-
var Ripple =
|
|
10699
|
+
var Ripple = React136__namespace.default.forwardRef(
|
|
10469
10700
|
({ color = "currentColor", duration = 0.6, children, style, ...props }, ref) => {
|
|
10470
|
-
const [ripples, setRipples] =
|
|
10471
|
-
const handlePointerDown =
|
|
10701
|
+
const [ripples, setRipples] = React136.useState([]);
|
|
10702
|
+
const handlePointerDown = React136.useCallback(
|
|
10472
10703
|
(e) => {
|
|
10473
10704
|
const rect = e.currentTarget.getBoundingClientRect();
|
|
10474
10705
|
const x = e.clientX - rect.left;
|
|
@@ -10479,7 +10710,7 @@ var Ripple = React131__namespace.default.forwardRef(
|
|
|
10479
10710
|
},
|
|
10480
10711
|
[]
|
|
10481
10712
|
);
|
|
10482
|
-
const removeRipple =
|
|
10713
|
+
const removeRipple = React136.useCallback((key) => {
|
|
10483
10714
|
setRipples((prev) => prev.filter((r) => r.key !== key));
|
|
10484
10715
|
}, []);
|
|
10485
10716
|
const rippleTransition = {
|
|
@@ -10521,9 +10752,9 @@ var Ripple = React131__namespace.default.forwardRef(
|
|
|
10521
10752
|
}
|
|
10522
10753
|
);
|
|
10523
10754
|
Ripple.displayName = "Ripple";
|
|
10524
|
-
var Parallax =
|
|
10755
|
+
var Parallax = React136__namespace.default.forwardRef(
|
|
10525
10756
|
({ offset = 50, scrollRef, children, style, ...props }, ref) => {
|
|
10526
|
-
const innerRef =
|
|
10757
|
+
const innerRef = React136.useRef(null);
|
|
10527
10758
|
const resolvedRef = ref ?? innerRef;
|
|
10528
10759
|
const { scrollYProgress } = react.useScroll({
|
|
10529
10760
|
target: resolvedRef,
|
|
@@ -10544,13 +10775,13 @@ var Parallax = React131__namespace.default.forwardRef(
|
|
|
10544
10775
|
);
|
|
10545
10776
|
Parallax.displayName = "Parallax";
|
|
10546
10777
|
function useLayoutId(key) {
|
|
10547
|
-
const id =
|
|
10778
|
+
const id = React136.useId();
|
|
10548
10779
|
return `${key}-${id}`;
|
|
10549
10780
|
}
|
|
10550
10781
|
function Transition({ show = true, children, mode = "wait" }) {
|
|
10551
10782
|
return /* @__PURE__ */ jsxRuntime.jsx(react.AnimatePresence, { mode, children: show ? children : null });
|
|
10552
10783
|
}
|
|
10553
|
-
var DataList =
|
|
10784
|
+
var DataList = React136__namespace.default.forwardRef(
|
|
10554
10785
|
({ divided = true, bordered = true, className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
10555
10786
|
"ul",
|
|
10556
10787
|
{
|
|
@@ -10567,7 +10798,7 @@ var DataList = React131__namespace.default.forwardRef(
|
|
|
10567
10798
|
)
|
|
10568
10799
|
);
|
|
10569
10800
|
DataList.displayName = "DataList";
|
|
10570
|
-
var DataListItem =
|
|
10801
|
+
var DataListItem = React136__namespace.default.forwardRef(
|
|
10571
10802
|
({ left, title, description, right, interactive, onSelect, className, children, ...props }, ref) => {
|
|
10572
10803
|
const clickable = interactive || !!onSelect;
|
|
10573
10804
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
@@ -10627,7 +10858,7 @@ function getWeekDays(date, weekStartsOn) {
|
|
|
10627
10858
|
const start = dateFns.startOfWeek(date, { weekStartsOn });
|
|
10628
10859
|
return Array.from({ length: 7 }, (_, i) => dateFns.addDays(start, i));
|
|
10629
10860
|
}
|
|
10630
|
-
var EventCalendar =
|
|
10861
|
+
var EventCalendar = React136__namespace.default.forwardRef(
|
|
10631
10862
|
({
|
|
10632
10863
|
events,
|
|
10633
10864
|
view: viewProp,
|
|
@@ -10642,20 +10873,20 @@ var EventCalendar = React131__namespace.default.forwardRef(
|
|
|
10642
10873
|
className,
|
|
10643
10874
|
...props
|
|
10644
10875
|
}, ref) => {
|
|
10645
|
-
const [internalView, setInternalView] =
|
|
10876
|
+
const [internalView, setInternalView] = React136__namespace.default.useState("month");
|
|
10646
10877
|
const view = viewProp ?? internalView;
|
|
10647
|
-
const commitView =
|
|
10878
|
+
const commitView = React136__namespace.default.useCallback(
|
|
10648
10879
|
(next) => {
|
|
10649
10880
|
if (viewProp === void 0) setInternalView(next);
|
|
10650
10881
|
onViewChange?.(next);
|
|
10651
10882
|
},
|
|
10652
10883
|
[viewProp, onViewChange]
|
|
10653
10884
|
);
|
|
10654
|
-
const [internalDate, setInternalDate] =
|
|
10885
|
+
const [internalDate, setInternalDate] = React136__namespace.default.useState(
|
|
10655
10886
|
() => defaultDate ?? /* @__PURE__ */ new Date()
|
|
10656
10887
|
);
|
|
10657
10888
|
const date = dateProp ?? internalDate;
|
|
10658
|
-
const commitDate =
|
|
10889
|
+
const commitDate = React136__namespace.default.useCallback(
|
|
10659
10890
|
(next) => {
|
|
10660
10891
|
if (dateProp === void 0) setInternalDate(next);
|
|
10661
10892
|
onDateChange?.(next);
|
|
@@ -10681,7 +10912,7 @@ var EventCalendar = React131__namespace.default.forwardRef(
|
|
|
10681
10912
|
handleToday();
|
|
10682
10913
|
}
|
|
10683
10914
|
};
|
|
10684
|
-
const headerLabel =
|
|
10915
|
+
const headerLabel = React136__namespace.default.useMemo(() => {
|
|
10685
10916
|
if (view === "month") return dateFns.format(date, "MMMM yyyy");
|
|
10686
10917
|
if (view === "week") {
|
|
10687
10918
|
const start = dateFns.startOfWeek(date, { weekStartsOn });
|
|
@@ -10830,11 +11061,11 @@ function MonthView({
|
|
|
10830
11061
|
onEventCreate,
|
|
10831
11062
|
onDayPick
|
|
10832
11063
|
}) {
|
|
10833
|
-
const cells =
|
|
11064
|
+
const cells = React136__namespace.default.useMemo(
|
|
10834
11065
|
() => getMonthMatrix(date, weekStartsOn),
|
|
10835
11066
|
[date, weekStartsOn]
|
|
10836
11067
|
);
|
|
10837
|
-
const weekdayLabels =
|
|
11068
|
+
const weekdayLabels = React136__namespace.default.useMemo(() => {
|
|
10838
11069
|
const start = dateFns.startOfWeek(/* @__PURE__ */ new Date(), { weekStartsOn });
|
|
10839
11070
|
return Array.from({ length: 7 }, (_, i) => dateFns.format(dateFns.addDays(start, i), "EEE"));
|
|
10840
11071
|
}, [weekStartsOn]);
|
|
@@ -10981,7 +11212,7 @@ function HourGrid({
|
|
|
10981
11212
|
onEventCreate,
|
|
10982
11213
|
onEventResize
|
|
10983
11214
|
}) {
|
|
10984
|
-
const hours =
|
|
11215
|
+
const hours = React136__namespace.default.useMemo(() => Array.from({ length: 24 }, (_, i) => i), []);
|
|
10985
11216
|
const today = /* @__PURE__ */ new Date();
|
|
10986
11217
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
10987
11218
|
"div",
|
|
@@ -11035,7 +11266,7 @@ function DayColumn({
|
|
|
11035
11266
|
onEventResize,
|
|
11036
11267
|
showHeader
|
|
11037
11268
|
}) {
|
|
11038
|
-
const bodyRef =
|
|
11269
|
+
const bodyRef = React136__namespace.default.useRef(null);
|
|
11039
11270
|
const handleEmptyClick = (e) => {
|
|
11040
11271
|
if (e.target.closest("[data-event-block]")) return;
|
|
11041
11272
|
if (!onEventCreate) return;
|
|
@@ -11116,10 +11347,10 @@ function EventBlock({ event, day, onClick, onResize }) {
|
|
|
11116
11347
|
dateFns.differenceInMinutes(visibleEnd, visibleStart)
|
|
11117
11348
|
);
|
|
11118
11349
|
const top = startMinutes / 60 * HOUR_ROW_PX;
|
|
11119
|
-
const [resizingDelta, setResizingDelta] =
|
|
11350
|
+
const [resizingDelta, setResizingDelta] = React136__namespace.default.useState(0);
|
|
11120
11351
|
const height = durationMinutes / 60 * HOUR_ROW_PX + resizingDelta;
|
|
11121
|
-
const isResizing =
|
|
11122
|
-
const startY =
|
|
11352
|
+
const isResizing = React136__namespace.default.useRef(false);
|
|
11353
|
+
const startY = React136__namespace.default.useRef(0);
|
|
11123
11354
|
const handleResizePointerDown = (e) => {
|
|
11124
11355
|
if (!onResize) return;
|
|
11125
11356
|
e.preventDefault();
|
|
@@ -11208,7 +11439,7 @@ function WeekView({
|
|
|
11208
11439
|
onEventCreate,
|
|
11209
11440
|
onEventResize
|
|
11210
11441
|
}) {
|
|
11211
|
-
const days =
|
|
11442
|
+
const days = React136__namespace.default.useMemo(
|
|
11212
11443
|
() => getWeekDays(date, weekStartsOn),
|
|
11213
11444
|
[date, weekStartsOn]
|
|
11214
11445
|
);
|
|
@@ -11241,7 +11472,7 @@ function DayView({
|
|
|
11241
11472
|
}
|
|
11242
11473
|
) });
|
|
11243
11474
|
}
|
|
11244
|
-
var GridList =
|
|
11475
|
+
var GridList = React136__namespace.default.forwardRef(
|
|
11245
11476
|
({ minItemWidth = 240, gap = 1, className, style, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
11246
11477
|
"ul",
|
|
11247
11478
|
{
|
|
@@ -11258,7 +11489,7 @@ var GridList = React131__namespace.default.forwardRef(
|
|
|
11258
11489
|
)
|
|
11259
11490
|
);
|
|
11260
11491
|
GridList.displayName = "GridList";
|
|
11261
|
-
var GridListItem =
|
|
11492
|
+
var GridListItem = React136__namespace.default.forwardRef(
|
|
11262
11493
|
({ interactive, onSelect, className, ...props }, ref) => {
|
|
11263
11494
|
const clickable = interactive || !!onSelect;
|
|
11264
11495
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -11329,7 +11560,7 @@ async function extractCroppedDataUrl(image, crop, format3, quality) {
|
|
|
11329
11560
|
const mime = format3 === "jpeg" ? "image/jpeg" : format3 === "webp" ? "image/webp" : "image/png";
|
|
11330
11561
|
return canvas.toDataURL(mime, quality);
|
|
11331
11562
|
}
|
|
11332
|
-
var ImageCrop =
|
|
11563
|
+
var ImageCrop = React136__namespace.default.forwardRef(
|
|
11333
11564
|
({
|
|
11334
11565
|
src,
|
|
11335
11566
|
aspect,
|
|
@@ -11344,13 +11575,13 @@ var ImageCrop = React131__namespace.default.forwardRef(
|
|
|
11344
11575
|
className,
|
|
11345
11576
|
...props
|
|
11346
11577
|
}, ref) => {
|
|
11347
|
-
const [crop, setCrop] =
|
|
11348
|
-
const imgRef =
|
|
11349
|
-
const timerRef =
|
|
11350
|
-
|
|
11578
|
+
const [crop, setCrop] = React136__namespace.default.useState(void 0);
|
|
11579
|
+
const imgRef = React136__namespace.default.useRef(null);
|
|
11580
|
+
const timerRef = React136__namespace.default.useRef(null);
|
|
11581
|
+
React136__namespace.default.useEffect(() => {
|
|
11351
11582
|
setCrop(void 0);
|
|
11352
11583
|
}, [src]);
|
|
11353
|
-
|
|
11584
|
+
React136__namespace.default.useEffect(() => {
|
|
11354
11585
|
return () => {
|
|
11355
11586
|
if (timerRef.current) clearTimeout(timerRef.current);
|
|
11356
11587
|
};
|
|
@@ -11575,7 +11806,7 @@ function TreeRow({
|
|
|
11575
11806
|
}
|
|
11576
11807
|
);
|
|
11577
11808
|
}
|
|
11578
|
-
var Tree =
|
|
11809
|
+
var Tree = React136__namespace.default.forwardRef(
|
|
11579
11810
|
({
|
|
11580
11811
|
data,
|
|
11581
11812
|
defaultExpandedIds,
|
|
@@ -11591,21 +11822,21 @@ var Tree = React131__namespace.default.forwardRef(
|
|
|
11591
11822
|
...props
|
|
11592
11823
|
}, ref) => {
|
|
11593
11824
|
const isControlled = expandedIds !== void 0;
|
|
11594
|
-
const [internalExpanded, setInternalExpanded] =
|
|
11825
|
+
const [internalExpanded, setInternalExpanded] = React136__namespace.default.useState(
|
|
11595
11826
|
() => new Set(defaultExpandedIds ?? [])
|
|
11596
11827
|
);
|
|
11597
|
-
const expandedSet =
|
|
11828
|
+
const expandedSet = React136__namespace.default.useMemo(
|
|
11598
11829
|
() => isControlled ? new Set(expandedIds) : internalExpanded,
|
|
11599
11830
|
[isControlled, expandedIds, internalExpanded]
|
|
11600
11831
|
);
|
|
11601
|
-
const commitExpanded =
|
|
11832
|
+
const commitExpanded = React136__namespace.default.useCallback(
|
|
11602
11833
|
(next) => {
|
|
11603
11834
|
if (!isControlled) setInternalExpanded(next);
|
|
11604
11835
|
onExpandedChange?.(Array.from(next));
|
|
11605
11836
|
},
|
|
11606
11837
|
[isControlled, onExpandedChange]
|
|
11607
11838
|
);
|
|
11608
|
-
const toggle =
|
|
11839
|
+
const toggle = React136__namespace.default.useCallback(
|
|
11609
11840
|
(id) => {
|
|
11610
11841
|
const next = new Set(expandedSet);
|
|
11611
11842
|
if (next.has(id)) next.delete(id);
|
|
@@ -11614,7 +11845,7 @@ var Tree = React131__namespace.default.forwardRef(
|
|
|
11614
11845
|
},
|
|
11615
11846
|
[expandedSet, commitExpanded]
|
|
11616
11847
|
);
|
|
11617
|
-
const expand =
|
|
11848
|
+
const expand = React136__namespace.default.useCallback(
|
|
11618
11849
|
(id) => {
|
|
11619
11850
|
if (expandedSet.has(id)) return;
|
|
11620
11851
|
const next = new Set(expandedSet);
|
|
@@ -11623,7 +11854,7 @@ var Tree = React131__namespace.default.forwardRef(
|
|
|
11623
11854
|
},
|
|
11624
11855
|
[expandedSet, commitExpanded]
|
|
11625
11856
|
);
|
|
11626
|
-
const collapse =
|
|
11857
|
+
const collapse = React136__namespace.default.useCallback(
|
|
11627
11858
|
(id) => {
|
|
11628
11859
|
if (!expandedSet.has(id)) return;
|
|
11629
11860
|
const next = new Set(expandedSet);
|
|
@@ -11632,27 +11863,27 @@ var Tree = React131__namespace.default.forwardRef(
|
|
|
11632
11863
|
},
|
|
11633
11864
|
[expandedSet, commitExpanded]
|
|
11634
11865
|
);
|
|
11635
|
-
const rows =
|
|
11866
|
+
const rows = React136__namespace.default.useMemo(
|
|
11636
11867
|
() => flatten(data, expandedSet),
|
|
11637
11868
|
[data, expandedSet]
|
|
11638
11869
|
);
|
|
11639
|
-
const [focusedId, setFocusedId] =
|
|
11870
|
+
const [focusedId, setFocusedId] = React136__namespace.default.useState(
|
|
11640
11871
|
() => selectedId ?? data[0]?.id ?? null
|
|
11641
11872
|
);
|
|
11642
|
-
const rowRefs =
|
|
11643
|
-
const registerRef =
|
|
11873
|
+
const rowRefs = React136__namespace.default.useRef(/* @__PURE__ */ new Map());
|
|
11874
|
+
const registerRef = React136__namespace.default.useCallback(
|
|
11644
11875
|
(id, el) => {
|
|
11645
11876
|
if (el) rowRefs.current.set(id, el);
|
|
11646
11877
|
else rowRefs.current.delete(id);
|
|
11647
11878
|
},
|
|
11648
11879
|
[]
|
|
11649
11880
|
);
|
|
11650
|
-
const moveFocus =
|
|
11881
|
+
const moveFocus = React136__namespace.default.useCallback((id) => {
|
|
11651
11882
|
setFocusedId(id);
|
|
11652
11883
|
const el = rowRefs.current.get(id);
|
|
11653
11884
|
el?.focus();
|
|
11654
11885
|
}, []);
|
|
11655
|
-
const onRowKeyDown =
|
|
11886
|
+
const onRowKeyDown = React136__namespace.default.useCallback(
|
|
11656
11887
|
(e, row) => {
|
|
11657
11888
|
const idx = rows.findIndex((r) => r.node.id === row.node.id);
|
|
11658
11889
|
if (idx === -1) return;
|
|
@@ -11702,11 +11933,11 @@ var Tree = React131__namespace.default.forwardRef(
|
|
|
11702
11933
|
core.useSensor(core.PointerSensor, { activationConstraint: { distance: 5 } }),
|
|
11703
11934
|
core.useSensor(core.KeyboardSensor)
|
|
11704
11935
|
);
|
|
11705
|
-
const [activeDragId, setActiveDragId] =
|
|
11706
|
-
const handleDragStart =
|
|
11936
|
+
const [activeDragId, setActiveDragId] = React136__namespace.default.useState(null);
|
|
11937
|
+
const handleDragStart = React136__namespace.default.useCallback((e) => {
|
|
11707
11938
|
setActiveDragId(String(e.active.id));
|
|
11708
11939
|
}, []);
|
|
11709
|
-
const handleDragEnd =
|
|
11940
|
+
const handleDragEnd = React136__namespace.default.useCallback(
|
|
11710
11941
|
(e) => {
|
|
11711
11942
|
setActiveDragId(null);
|
|
11712
11943
|
const { active, over } = e;
|
|
@@ -11722,8 +11953,8 @@ var Tree = React131__namespace.default.forwardRef(
|
|
|
11722
11953
|
},
|
|
11723
11954
|
[onMove]
|
|
11724
11955
|
);
|
|
11725
|
-
const handleDragCancel =
|
|
11726
|
-
const scrollerRef =
|
|
11956
|
+
const handleDragCancel = React136__namespace.default.useCallback(() => setActiveDragId(null), []);
|
|
11957
|
+
const scrollerRef = React136__namespace.default.useRef(null);
|
|
11727
11958
|
const virtualizer = reactVirtual.useVirtualizer({
|
|
11728
11959
|
count: virtualize ? rows.length : 0,
|
|
11729
11960
|
getScrollElement: () => scrollerRef.current,
|
|
@@ -11825,7 +12056,7 @@ async function exitFs() {
|
|
|
11825
12056
|
if (d.exitFullscreen) return void d.exitFullscreen();
|
|
11826
12057
|
if (d.webkitExitFullscreen) return void d.webkitExitFullscreen();
|
|
11827
12058
|
}
|
|
11828
|
-
var VideoPlayer =
|
|
12059
|
+
var VideoPlayer = React136__namespace.default.forwardRef(
|
|
11829
12060
|
({
|
|
11830
12061
|
src,
|
|
11831
12062
|
poster,
|
|
@@ -11842,33 +12073,33 @@ var VideoPlayer = React131__namespace.default.forwardRef(
|
|
|
11842
12073
|
muted: mutedProp,
|
|
11843
12074
|
...videoProps
|
|
11844
12075
|
}, ref) => {
|
|
11845
|
-
const containerRef =
|
|
11846
|
-
const videoRef =
|
|
11847
|
-
const hideTimerRef =
|
|
11848
|
-
const [isPlaying, setIsPlaying] =
|
|
11849
|
-
const [hasPlayed, setHasPlayed] =
|
|
11850
|
-
const [currentTime, setCurrentTime] =
|
|
11851
|
-
const [duration, setDuration] =
|
|
11852
|
-
const [buffered, setBuffered] =
|
|
11853
|
-
const [volume, setVolume] =
|
|
11854
|
-
const [isMuted, setIsMuted] =
|
|
11855
|
-
const [isFullscreen, setIsFullscreen] =
|
|
11856
|
-
const [showControls, setShowControls] =
|
|
11857
|
-
|
|
11858
|
-
|
|
12076
|
+
const containerRef = React136__namespace.default.useRef(null);
|
|
12077
|
+
const videoRef = React136__namespace.default.useRef(null);
|
|
12078
|
+
const hideTimerRef = React136__namespace.default.useRef(null);
|
|
12079
|
+
const [isPlaying, setIsPlaying] = React136__namespace.default.useState(false);
|
|
12080
|
+
const [hasPlayed, setHasPlayed] = React136__namespace.default.useState(Boolean(autoPlay));
|
|
12081
|
+
const [currentTime, setCurrentTime] = React136__namespace.default.useState(0);
|
|
12082
|
+
const [duration, setDuration] = React136__namespace.default.useState(0);
|
|
12083
|
+
const [buffered, setBuffered] = React136__namespace.default.useState(0);
|
|
12084
|
+
const [volume, setVolume] = React136__namespace.default.useState(1);
|
|
12085
|
+
const [isMuted, setIsMuted] = React136__namespace.default.useState(Boolean(mutedProp ?? autoPlay));
|
|
12086
|
+
const [isFullscreen, setIsFullscreen] = React136__namespace.default.useState(false);
|
|
12087
|
+
const [showControls, setShowControls] = React136__namespace.default.useState(true);
|
|
12088
|
+
React136__namespace.default.useImperativeHandle(ref, () => containerRef.current);
|
|
12089
|
+
React136__namespace.default.useEffect(() => {
|
|
11859
12090
|
const v = videoRef.current;
|
|
11860
12091
|
if (!v) return;
|
|
11861
12092
|
v.volume = volume;
|
|
11862
12093
|
v.muted = isMuted;
|
|
11863
12094
|
}, [volume, isMuted]);
|
|
11864
|
-
const showAndScheduleHide =
|
|
12095
|
+
const showAndScheduleHide = React136__namespace.default.useCallback(() => {
|
|
11865
12096
|
setShowControls(true);
|
|
11866
12097
|
if (hideTimerRef.current) clearTimeout(hideTimerRef.current);
|
|
11867
12098
|
if (isPlaying) {
|
|
11868
12099
|
hideTimerRef.current = setTimeout(() => setShowControls(false), 3e3);
|
|
11869
12100
|
}
|
|
11870
12101
|
}, [isPlaying]);
|
|
11871
|
-
|
|
12102
|
+
React136__namespace.default.useEffect(() => {
|
|
11872
12103
|
if (!isPlaying) {
|
|
11873
12104
|
if (hideTimerRef.current) clearTimeout(hideTimerRef.current);
|
|
11874
12105
|
setShowControls(true);
|
|
@@ -11879,7 +12110,7 @@ var VideoPlayer = React131__namespace.default.forwardRef(
|
|
|
11879
12110
|
if (hideTimerRef.current) clearTimeout(hideTimerRef.current);
|
|
11880
12111
|
};
|
|
11881
12112
|
}, [isPlaying]);
|
|
11882
|
-
|
|
12113
|
+
React136__namespace.default.useEffect(() => {
|
|
11883
12114
|
const onFsChange = () => setIsFullscreen(isFullscreenActive());
|
|
11884
12115
|
document.addEventListener("fullscreenchange", onFsChange);
|
|
11885
12116
|
document.addEventListener("webkitfullscreenchange", onFsChange);
|
|
@@ -11888,7 +12119,7 @@ var VideoPlayer = React131__namespace.default.forwardRef(
|
|
|
11888
12119
|
document.removeEventListener("webkitfullscreenchange", onFsChange);
|
|
11889
12120
|
};
|
|
11890
12121
|
}, []);
|
|
11891
|
-
const togglePlay =
|
|
12122
|
+
const togglePlay = React136__namespace.default.useCallback(() => {
|
|
11892
12123
|
const v = videoRef.current;
|
|
11893
12124
|
if (!v) return;
|
|
11894
12125
|
if (v.paused) {
|
|
@@ -11897,22 +12128,22 @@ var VideoPlayer = React131__namespace.default.forwardRef(
|
|
|
11897
12128
|
v.pause();
|
|
11898
12129
|
}
|
|
11899
12130
|
}, []);
|
|
11900
|
-
const toggleMute =
|
|
12131
|
+
const toggleMute = React136__namespace.default.useCallback(() => {
|
|
11901
12132
|
setIsMuted((m) => !m);
|
|
11902
12133
|
}, []);
|
|
11903
|
-
const toggleFullscreen =
|
|
12134
|
+
const toggleFullscreen = React136__namespace.default.useCallback(() => {
|
|
11904
12135
|
const el = containerRef.current;
|
|
11905
12136
|
if (!el) return;
|
|
11906
12137
|
if (isFullscreenActive()) void exitFs();
|
|
11907
12138
|
else void requestFs(el);
|
|
11908
12139
|
}, []);
|
|
11909
|
-
const seekTo =
|
|
12140
|
+
const seekTo = React136__namespace.default.useCallback((time) => {
|
|
11910
12141
|
const v = videoRef.current;
|
|
11911
12142
|
if (!v) return;
|
|
11912
12143
|
const clamped = Math.max(0, Math.min(v.duration || 0, time));
|
|
11913
12144
|
v.currentTime = clamped;
|
|
11914
12145
|
}, []);
|
|
11915
|
-
const seekBy =
|
|
12146
|
+
const seekBy = React136__namespace.default.useCallback(
|
|
11916
12147
|
(delta) => {
|
|
11917
12148
|
seekTo((videoRef.current?.currentTime ?? 0) + delta);
|
|
11918
12149
|
},
|
|
@@ -12260,7 +12491,7 @@ function Combobox({
|
|
|
12260
12491
|
className,
|
|
12261
12492
|
contentWidth = "trigger"
|
|
12262
12493
|
}) {
|
|
12263
|
-
const [open, setOpen] =
|
|
12494
|
+
const [open, setOpen] = React136__namespace.default.useState(false);
|
|
12264
12495
|
const selected = options.find((o) => o.value === value);
|
|
12265
12496
|
return /* @__PURE__ */ jsxRuntime.jsxs(Popover, { open, onOpenChange: setOpen, children: [
|
|
12266
12497
|
/* @__PURE__ */ jsxRuntime.jsx(PopoverTrigger, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
@@ -12354,9 +12585,9 @@ function ColorSchemeSelect({
|
|
|
12354
12585
|
className
|
|
12355
12586
|
}) {
|
|
12356
12587
|
const fallback = defaultValue ?? options[0]?.value ?? "";
|
|
12357
|
-
const [value, setValue] =
|
|
12358
|
-
const didMount =
|
|
12359
|
-
|
|
12588
|
+
const [value, setValue] = React136__namespace.default.useState(() => readInitial2(fallback));
|
|
12589
|
+
const didMount = React136__namespace.default.useRef(false);
|
|
12590
|
+
React136__namespace.default.useEffect(() => {
|
|
12360
12591
|
if (!didMount.current) {
|
|
12361
12592
|
didMount.current = true;
|
|
12362
12593
|
return;
|
|
@@ -12401,10 +12632,10 @@ function SidebarResizer({
|
|
|
12401
12632
|
onWidthChange,
|
|
12402
12633
|
className
|
|
12403
12634
|
}) {
|
|
12404
|
-
const [isDragging, setIsDragging] =
|
|
12405
|
-
const startX =
|
|
12406
|
-
const startWidth =
|
|
12407
|
-
|
|
12635
|
+
const [isDragging, setIsDragging] = React136.useState(false);
|
|
12636
|
+
const startX = React136.useRef(0);
|
|
12637
|
+
const startWidth = React136.useRef(defaultWidth);
|
|
12638
|
+
React136.useEffect(() => {
|
|
12408
12639
|
if (typeof window === "undefined") return;
|
|
12409
12640
|
try {
|
|
12410
12641
|
const stored = localStorage.getItem(storageKey);
|
|
@@ -12416,7 +12647,7 @@ function SidebarResizer({
|
|
|
12416
12647
|
} catch {
|
|
12417
12648
|
}
|
|
12418
12649
|
}, [storageKey, min, max, onWidthChange]);
|
|
12419
|
-
const handlePointerDown =
|
|
12650
|
+
const handlePointerDown = React136.useCallback(
|
|
12420
12651
|
(e) => {
|
|
12421
12652
|
e.preventDefault();
|
|
12422
12653
|
e.currentTarget.setPointerCapture(e.pointerId);
|
|
@@ -12429,7 +12660,7 @@ function SidebarResizer({
|
|
|
12429
12660
|
},
|
|
12430
12661
|
[]
|
|
12431
12662
|
);
|
|
12432
|
-
const handlePointerMove =
|
|
12663
|
+
const handlePointerMove = React136.useCallback(
|
|
12433
12664
|
(e) => {
|
|
12434
12665
|
if (!isDragging) return;
|
|
12435
12666
|
const delta = e.clientX - startX.current;
|
|
@@ -12442,7 +12673,7 @@ function SidebarResizer({
|
|
|
12442
12673
|
},
|
|
12443
12674
|
[isDragging, min, max, onWidthChange]
|
|
12444
12675
|
);
|
|
12445
|
-
const handlePointerUp =
|
|
12676
|
+
const handlePointerUp = React136.useCallback(
|
|
12446
12677
|
(e) => {
|
|
12447
12678
|
if (!isDragging) return;
|
|
12448
12679
|
setIsDragging(false);
|
|
@@ -12480,10 +12711,10 @@ function getInitials(name) {
|
|
|
12480
12711
|
}
|
|
12481
12712
|
function WorkspacesMenu({ workspaces, current, onSelect, className }) {
|
|
12482
12713
|
const { collapsed } = useSidebar();
|
|
12483
|
-
const [open, setOpen] =
|
|
12484
|
-
const ref =
|
|
12714
|
+
const [open, setOpen] = React136.useState(false);
|
|
12715
|
+
const ref = React136.useRef(null);
|
|
12485
12716
|
const currentWorkspace = workspaces.find((w) => w.id === current);
|
|
12486
|
-
|
|
12717
|
+
React136.useEffect(() => {
|
|
12487
12718
|
if (!open) return;
|
|
12488
12719
|
function handleClickOutside(e) {
|
|
12489
12720
|
if (ref.current && !ref.current.contains(e.target)) {
|
|
@@ -12566,9 +12797,9 @@ function getInitials2(name) {
|
|
|
12566
12797
|
}
|
|
12567
12798
|
function AppShellUserMenu({ name, email, avatar, onSignOut, onProfile, onSettings, className }) {
|
|
12568
12799
|
const { collapsed } = useSidebar();
|
|
12569
|
-
const [open, setOpen] =
|
|
12570
|
-
const ref =
|
|
12571
|
-
|
|
12800
|
+
const [open, setOpen] = React136.useState(false);
|
|
12801
|
+
const ref = React136.useRef(null);
|
|
12802
|
+
React136.useEffect(() => {
|
|
12572
12803
|
if (!open) return;
|
|
12573
12804
|
function handleClickOutside(e) {
|
|
12574
12805
|
if (ref.current && !ref.current.contains(e.target)) {
|
|
@@ -12895,6 +13126,7 @@ exports.CarouselContent = CarouselContent;
|
|
|
12895
13126
|
exports.CarouselItem = CarouselItem;
|
|
12896
13127
|
exports.CarouselNext = CarouselNext;
|
|
12897
13128
|
exports.CarouselPrevious = CarouselPrevious;
|
|
13129
|
+
exports.CartLineItem = CartLineItem;
|
|
12898
13130
|
exports.ChartContainer = ChartContainer;
|
|
12899
13131
|
exports.ChartLegend = ChartLegend;
|
|
12900
13132
|
exports.ChartLegendContent = ChartLegendContent;
|
|
@@ -12992,6 +13224,7 @@ exports.DropdownMenuSub = DropdownMenuSub;
|
|
|
12992
13224
|
exports.DropdownMenuSubContent = DropdownMenuSubContent;
|
|
12993
13225
|
exports.DropdownMenuSubTrigger = DropdownMenuSubTrigger;
|
|
12994
13226
|
exports.DropdownMenuTrigger = DropdownMenuTrigger;
|
|
13227
|
+
exports.EmptyCart = EmptyCart;
|
|
12995
13228
|
exports.EmptyState = EmptyState;
|
|
12996
13229
|
exports.EmptyStateIcon = EmptyStateIcon;
|
|
12997
13230
|
exports.EventCalendar = EventCalendar;
|
|
@@ -13115,10 +13348,12 @@ exports.Popover = Popover;
|
|
|
13115
13348
|
exports.PopoverAnchor = PopoverAnchor;
|
|
13116
13349
|
exports.PopoverContent = PopoverContent;
|
|
13117
13350
|
exports.PopoverTrigger = PopoverTrigger;
|
|
13351
|
+
exports.PriceTag = PriceTag;
|
|
13118
13352
|
exports.Progress = Progress;
|
|
13119
13353
|
exports.PropertyItem = PropertyItem;
|
|
13120
13354
|
exports.PropertyList = PropertyList;
|
|
13121
13355
|
exports.QrCode = QrCode;
|
|
13356
|
+
exports.QuantityStepper = QuantityStepper;
|
|
13122
13357
|
exports.RadioGroup = RadioGroup4;
|
|
13123
13358
|
exports.RadioGroupItem = RadioGroupItem;
|
|
13124
13359
|
exports.Rating = Rating;
|
|
@@ -13241,6 +13476,7 @@ exports.Tree = Tree;
|
|
|
13241
13476
|
exports.Typewriter = Typewriter;
|
|
13242
13477
|
exports.UserMenu = UserMenu;
|
|
13243
13478
|
exports.VStack = VStack;
|
|
13479
|
+
exports.VariantPicker = VariantPicker;
|
|
13244
13480
|
exports.VideoPlayer = VideoPlayer;
|
|
13245
13481
|
exports.WorkspaceMembers = WorkspaceMembers;
|
|
13246
13482
|
exports.WorkspacesMenu = WorkspacesMenu;
|