@kinetixui/ui 0.6.4 → 0.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +11 -1
- package/dist/index.js +395 -380
- package/package.json +2 -2
- package/src/components/accordion.tsx +1 -1
- package/src/components/alert-dialog.tsx +2 -2
- package/src/components/app-bar.tsx +1 -1
- package/src/components/audio-player.tsx +3 -0
- package/src/components/badge.tsx +13 -4
- package/src/components/button.tsx +2 -2
- package/src/components/calendar.tsx +9 -5
- package/src/components/checkbox.tsx +1 -1
- package/src/components/circular-progress.tsx +1 -1
- package/src/components/command.tsx +4 -2
- package/src/components/context-menu.tsx +2 -2
- package/src/components/dialog.tsx +3 -3
- package/src/components/drawer.tsx +2 -2
- package/src/components/dropdown-menu.tsx +4 -2
- package/src/components/fab.tsx +1 -1
- package/src/components/file-upload.tsx +1 -1
- package/src/components/hover-card.tsx +1 -1
- package/src/components/image.tsx +2 -2
- package/src/components/inform.tsx +1 -1
- package/src/components/input-group.tsx +2 -2
- package/src/components/input-otp.tsx +3 -3
- package/src/components/input.tsx +2 -2
- package/src/components/label.tsx +1 -1
- package/src/components/list.tsx +1 -1
- package/src/components/menubar.tsx +2 -2
- package/src/components/modal.tsx +2 -2
- package/src/components/navigation-menu.tsx +4 -4
- package/src/components/number-input.tsx +3 -3
- package/src/components/popover.tsx +1 -1
- package/src/components/radio-group.tsx +1 -1
- package/src/components/resizable.tsx +1 -1
- package/src/components/select.tsx +5 -3
- package/src/components/sheet.tsx +3 -3
- package/src/components/sidebar.tsx +5 -5
- package/src/components/slider.tsx +1 -1
- package/src/components/switch.tsx +1 -1
- package/src/components/tabs.tsx +1 -1
- package/src/components/tag.tsx +27 -15
- package/src/components/textarea.tsx +2 -2
- package/src/components/toggle.tsx +1 -1
- package/src/components/tooltip.tsx +1 -1
- package/src/components-behavior.test.tsx +37 -0
- package/tailwind.config.ts +29 -0
package/dist/index.js
CHANGED
|
@@ -20,7 +20,7 @@ var buttonVariants = cva(
|
|
|
20
20
|
"font-sans font-medium whitespace-nowrap select-none",
|
|
21
21
|
"rounded-md transition-colors outline-none",
|
|
22
22
|
"focus-visible:shadow-focus",
|
|
23
|
-
"disabled:pointer-events-none disabled:opacity-
|
|
23
|
+
"disabled:pointer-events-none disabled:opacity-disabled",
|
|
24
24
|
"[&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg]:size-[18px]"
|
|
25
25
|
],
|
|
26
26
|
{
|
|
@@ -59,7 +59,7 @@ var buttonVariants = cva(
|
|
|
59
59
|
Hover: "",
|
|
60
60
|
Focus: "shadow-focus",
|
|
61
61
|
Active: "",
|
|
62
|
-
Disabled: "pointer-events-none opacity-
|
|
62
|
+
Disabled: "pointer-events-none opacity-disabled"
|
|
63
63
|
},
|
|
64
64
|
/** corner style — matches the design source's Corners property */
|
|
65
65
|
corners: {
|
|
@@ -114,7 +114,7 @@ var inputVariants = cva2(
|
|
|
114
114
|
"placeholder:text-muted-foreground",
|
|
115
115
|
"outline-none transition-colors",
|
|
116
116
|
"focus-visible:border-primary focus-visible:shadow-focus",
|
|
117
|
-
"disabled:cursor-not-allowed disabled:opacity-
|
|
117
|
+
"disabled:cursor-not-allowed disabled:opacity-disabled",
|
|
118
118
|
"aria-[invalid=true]:border-destructive aria-[invalid=true]:focus-visible:border-destructive aria-[invalid=true]:focus-visible:shadow-focus-destructive"
|
|
119
119
|
],
|
|
120
120
|
{
|
|
@@ -123,7 +123,7 @@ var inputVariants = cva2(
|
|
|
123
123
|
Default: "",
|
|
124
124
|
Focus: "border-primary shadow-focus",
|
|
125
125
|
Error: "border-destructive",
|
|
126
|
-
Disabled: "opacity-
|
|
126
|
+
Disabled: "opacity-disabled pointer-events-none"
|
|
127
127
|
},
|
|
128
128
|
/** corner style — matches the design source's Corners property */
|
|
129
129
|
corners: {
|
|
@@ -164,7 +164,7 @@ var textareaVariants = cva3(
|
|
|
164
164
|
"placeholder:text-muted-foreground",
|
|
165
165
|
"outline-none transition-colors",
|
|
166
166
|
"focus-visible:border-primary focus-visible:shadow-focus",
|
|
167
|
-
"disabled:cursor-not-allowed disabled:opacity-
|
|
167
|
+
"disabled:cursor-not-allowed disabled:opacity-disabled",
|
|
168
168
|
"aria-[invalid=true]:border-destructive aria-[invalid=true]:focus-visible:border-destructive aria-[invalid=true]:focus-visible:shadow-focus-destructive"
|
|
169
169
|
],
|
|
170
170
|
{
|
|
@@ -173,7 +173,7 @@ var textareaVariants = cva3(
|
|
|
173
173
|
Default: "",
|
|
174
174
|
Focus: "border-primary shadow-focus",
|
|
175
175
|
Error: "border-destructive",
|
|
176
|
-
Disabled: "opacity-
|
|
176
|
+
Disabled: "opacity-disabled pointer-events-none resize-none"
|
|
177
177
|
}
|
|
178
178
|
},
|
|
179
179
|
defaultVariants: { state: "Default" }
|
|
@@ -214,7 +214,7 @@ var AccordionTrigger = React4.forwardRef(({ className, children, ...props }, ref
|
|
|
214
214
|
...props,
|
|
215
215
|
children: [
|
|
216
216
|
children,
|
|
217
|
-
/* @__PURE__ */ jsx4(ChevronDown, { className: "size-4 shrink-0 text-muted-foreground transition-transform duration-
|
|
217
|
+
/* @__PURE__ */ jsx4(ChevronDown, { className: "size-4 shrink-0 text-muted-foreground transition-transform duration-fast" })
|
|
218
218
|
]
|
|
219
219
|
}
|
|
220
220
|
) }));
|
|
@@ -270,7 +270,7 @@ var AlertDialogOverlay = React6.forwardRef(({ className, ...props }, ref) => /*
|
|
|
270
270
|
{
|
|
271
271
|
ref,
|
|
272
272
|
className: cn(
|
|
273
|
-
"fixed inset-0 z-
|
|
273
|
+
"fixed inset-0 z-overlay bg-foreground/40 backdrop-blur-sm data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",
|
|
274
274
|
className
|
|
275
275
|
),
|
|
276
276
|
...props
|
|
@@ -284,7 +284,7 @@ var AlertDialogContent = React6.forwardRef(({ className, ...props }, ref) => /*
|
|
|
284
284
|
{
|
|
285
285
|
ref,
|
|
286
286
|
className: cn(
|
|
287
|
-
"fixed left-1/2 top-1/2 z-
|
|
287
|
+
"fixed left-1/2 top-1/2 z-overlay grid w-full max-w-lg -translate-x-1/2 -translate-y-1/2 gap-4 border bg-background p-6 shadow-lg sm:rounded-xl font-sans",
|
|
288
288
|
"data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95",
|
|
289
289
|
className
|
|
290
290
|
),
|
|
@@ -381,6 +381,8 @@ var AvatarGroup = React7.forwardRef(
|
|
|
381
381
|
AvatarGroup.displayName = "AvatarGroup";
|
|
382
382
|
|
|
383
383
|
// src/components/badge.tsx
|
|
384
|
+
import * as React8 from "react";
|
|
385
|
+
import { Slot as Slot2 } from "@radix-ui/react-slot";
|
|
384
386
|
import { cva as cva5 } from "class-variance-authority";
|
|
385
387
|
import { jsx as jsx8 } from "react/jsx-runtime";
|
|
386
388
|
var badgeVariants = cva5(
|
|
@@ -398,20 +400,24 @@ var badgeVariants = cva5(
|
|
|
398
400
|
defaultVariants: { variant: "default" }
|
|
399
401
|
}
|
|
400
402
|
);
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
403
|
+
var Badge = React8.forwardRef(
|
|
404
|
+
({ className, variant, asChild = false, ...props }, ref) => {
|
|
405
|
+
const Comp = asChild ? Slot2 : "div";
|
|
406
|
+
return /* @__PURE__ */ jsx8(Comp, { ref, className: cn(badgeVariants({ variant }), className), ...props });
|
|
407
|
+
}
|
|
408
|
+
);
|
|
409
|
+
Badge.displayName = "Badge";
|
|
404
410
|
|
|
405
411
|
// src/components/breadcrumb.tsx
|
|
406
|
-
import * as
|
|
407
|
-
import { Slot as
|
|
412
|
+
import * as React9 from "react";
|
|
413
|
+
import { Slot as Slot3 } from "@radix-ui/react-slot";
|
|
408
414
|
import { ChevronRight, MoreHorizontal } from "lucide-react";
|
|
409
415
|
import { jsx as jsx9, jsxs as jsxs4 } from "react/jsx-runtime";
|
|
410
|
-
var Breadcrumb =
|
|
416
|
+
var Breadcrumb = React9.forwardRef(
|
|
411
417
|
({ ...props }, ref) => /* @__PURE__ */ jsx9("nav", { ref, "aria-label": "breadcrumb", className: "font-sans", ...props })
|
|
412
418
|
);
|
|
413
419
|
Breadcrumb.displayName = "Breadcrumb";
|
|
414
|
-
var BreadcrumbList =
|
|
420
|
+
var BreadcrumbList = React9.forwardRef(
|
|
415
421
|
({ className, ...props }, ref) => /* @__PURE__ */ jsx9(
|
|
416
422
|
"ol",
|
|
417
423
|
{
|
|
@@ -422,16 +428,16 @@ var BreadcrumbList = React8.forwardRef(
|
|
|
422
428
|
)
|
|
423
429
|
);
|
|
424
430
|
BreadcrumbList.displayName = "BreadcrumbList";
|
|
425
|
-
var BreadcrumbItem =
|
|
431
|
+
var BreadcrumbItem = React9.forwardRef(
|
|
426
432
|
({ className, ...props }, ref) => /* @__PURE__ */ jsx9("li", { ref, className: cn("inline-flex items-center gap-1.5", className), ...props })
|
|
427
433
|
);
|
|
428
434
|
BreadcrumbItem.displayName = "BreadcrumbItem";
|
|
429
|
-
var BreadcrumbLink =
|
|
430
|
-
const Comp = asChild ?
|
|
435
|
+
var BreadcrumbLink = React9.forwardRef(({ asChild, className, ...props }, ref) => {
|
|
436
|
+
const Comp = asChild ? Slot3 : "a";
|
|
431
437
|
return /* @__PURE__ */ jsx9(Comp, { ref, className: cn("transition-colors hover:text-foreground", className), ...props });
|
|
432
438
|
});
|
|
433
439
|
BreadcrumbLink.displayName = "BreadcrumbLink";
|
|
434
|
-
var BreadcrumbPage =
|
|
440
|
+
var BreadcrumbPage = React9.forwardRef(
|
|
435
441
|
({ className, ...props }, ref) => /* @__PURE__ */ jsx9(
|
|
436
442
|
"span",
|
|
437
443
|
{
|
|
@@ -454,9 +460,9 @@ var BreadcrumbEllipsis = ({ className, ...props }) => /* @__PURE__ */ jsxs4("spa
|
|
|
454
460
|
BreadcrumbEllipsis.displayName = "BreadcrumbEllipsis";
|
|
455
461
|
|
|
456
462
|
// src/components/card.tsx
|
|
457
|
-
import * as
|
|
463
|
+
import * as React10 from "react";
|
|
458
464
|
import { jsx as jsx10 } from "react/jsx-runtime";
|
|
459
|
-
var Card =
|
|
465
|
+
var Card = React10.forwardRef(
|
|
460
466
|
({ className, ...props }, ref) => /* @__PURE__ */ jsx10(
|
|
461
467
|
"div",
|
|
462
468
|
{
|
|
@@ -467,40 +473,40 @@ var Card = React9.forwardRef(
|
|
|
467
473
|
)
|
|
468
474
|
);
|
|
469
475
|
Card.displayName = "Card";
|
|
470
|
-
var CardHeader =
|
|
476
|
+
var CardHeader = React10.forwardRef(
|
|
471
477
|
({ className, ...props }, ref) => /* @__PURE__ */ jsx10("div", { ref, className: cn("flex flex-col space-y-1.5 p-6", className), ...props })
|
|
472
478
|
);
|
|
473
479
|
CardHeader.displayName = "CardHeader";
|
|
474
|
-
var CardTitle =
|
|
480
|
+
var CardTitle = React10.forwardRef(
|
|
475
481
|
({ className, ...props }, ref) => /* @__PURE__ */ jsx10("div", { ref, className: cn("font-semibold leading-none tracking-tight", className), ...props })
|
|
476
482
|
);
|
|
477
483
|
CardTitle.displayName = "CardTitle";
|
|
478
|
-
var CardDescription =
|
|
484
|
+
var CardDescription = React10.forwardRef(
|
|
479
485
|
({ className, ...props }, ref) => /* @__PURE__ */ jsx10("div", { ref, className: cn("text-sm text-muted-foreground", className), ...props })
|
|
480
486
|
);
|
|
481
487
|
CardDescription.displayName = "CardDescription";
|
|
482
|
-
var CardContent =
|
|
488
|
+
var CardContent = React10.forwardRef(
|
|
483
489
|
({ className, ...props }, ref) => /* @__PURE__ */ jsx10("div", { ref, className: cn("p-6 pt-0", className), ...props })
|
|
484
490
|
);
|
|
485
491
|
CardContent.displayName = "CardContent";
|
|
486
|
-
var CardFooter =
|
|
492
|
+
var CardFooter = React10.forwardRef(
|
|
487
493
|
({ className, ...props }, ref) => /* @__PURE__ */ jsx10("div", { ref, className: cn("flex items-center p-6 pt-0", className), ...props })
|
|
488
494
|
);
|
|
489
495
|
CardFooter.displayName = "CardFooter";
|
|
490
496
|
|
|
491
497
|
// src/components/checkbox.tsx
|
|
492
|
-
import * as
|
|
498
|
+
import * as React11 from "react";
|
|
493
499
|
import * as CheckboxPrimitive from "@radix-ui/react-checkbox";
|
|
494
500
|
import { Check, Minus } from "lucide-react";
|
|
495
501
|
import { jsx as jsx11 } from "react/jsx-runtime";
|
|
496
|
-
var Checkbox =
|
|
502
|
+
var Checkbox = React11.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx11(
|
|
497
503
|
CheckboxPrimitive.Root,
|
|
498
504
|
{
|
|
499
505
|
ref,
|
|
500
506
|
className: cn(
|
|
501
507
|
"peer size-[18px] shrink-0 rounded-sm border-2 border-input outline-none transition-colors",
|
|
502
508
|
"focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background",
|
|
503
|
-
"disabled:cursor-not-allowed disabled:opacity-
|
|
509
|
+
"disabled:cursor-not-allowed disabled:opacity-disabled",
|
|
504
510
|
"data-[state=checked]:border-primary data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground",
|
|
505
511
|
"data-[state=indeterminate]:border-primary data-[state=indeterminate]:bg-primary data-[state=indeterminate]:text-primary-foreground",
|
|
506
512
|
"aria-invalid:border-destructive aria-invalid:data-[state=checked]:border-destructive aria-invalid:data-[state=checked]:bg-destructive",
|
|
@@ -519,7 +525,7 @@ var CollapsibleTrigger2 = CollapsiblePrimitive.CollapsibleTrigger;
|
|
|
519
525
|
var CollapsibleContent2 = CollapsiblePrimitive.CollapsibleContent;
|
|
520
526
|
|
|
521
527
|
// src/components/dialog.tsx
|
|
522
|
-
import * as
|
|
528
|
+
import * as React12 from "react";
|
|
523
529
|
import * as DialogPrimitive from "@radix-ui/react-dialog";
|
|
524
530
|
import { X } from "lucide-react";
|
|
525
531
|
import { jsx as jsx12, jsxs as jsxs5 } from "react/jsx-runtime";
|
|
@@ -527,33 +533,33 @@ var Dialog = DialogPrimitive.Root;
|
|
|
527
533
|
var DialogTrigger = DialogPrimitive.Trigger;
|
|
528
534
|
var DialogPortal = DialogPrimitive.Portal;
|
|
529
535
|
var DialogClose = DialogPrimitive.Close;
|
|
530
|
-
var DialogOverlay =
|
|
536
|
+
var DialogOverlay = React12.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx12(
|
|
531
537
|
DialogPrimitive.Overlay,
|
|
532
538
|
{
|
|
533
539
|
ref,
|
|
534
540
|
className: cn(
|
|
535
|
-
"fixed inset-0 z-
|
|
541
|
+
"fixed inset-0 z-overlay bg-foreground/40 backdrop-blur-sm data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",
|
|
536
542
|
className
|
|
537
543
|
),
|
|
538
544
|
...props
|
|
539
545
|
}
|
|
540
546
|
));
|
|
541
547
|
DialogOverlay.displayName = DialogPrimitive.Overlay.displayName;
|
|
542
|
-
var DialogContent =
|
|
548
|
+
var DialogContent = React12.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs5(DialogPortal, { children: [
|
|
543
549
|
/* @__PURE__ */ jsx12(DialogOverlay, {}),
|
|
544
550
|
/* @__PURE__ */ jsxs5(
|
|
545
551
|
DialogPrimitive.Content,
|
|
546
552
|
{
|
|
547
553
|
ref,
|
|
548
554
|
className: cn(
|
|
549
|
-
"fixed left-1/2 top-1/2 z-
|
|
555
|
+
"fixed left-1/2 top-1/2 z-overlay grid w-full max-w-lg -translate-x-1/2 -translate-y-1/2 gap-4 border bg-background p-6 shadow-lg sm:rounded-xl font-sans",
|
|
550
556
|
"data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95",
|
|
551
557
|
className
|
|
552
558
|
),
|
|
553
559
|
...props,
|
|
554
560
|
children: [
|
|
555
561
|
children,
|
|
556
|
-
/* @__PURE__ */ jsxs5(DialogPrimitive.Close, { className: "absolute right-4 top-4 rounded-sm opacity-
|
|
562
|
+
/* @__PURE__ */ jsxs5(DialogPrimitive.Close, { className: "absolute right-4 top-4 rounded-sm opacity-muted transition-opacity hover:opacity-visible focus:outline-none focus:ring-2 focus:ring-ring disabled:pointer-events-none", children: [
|
|
557
563
|
/* @__PURE__ */ jsx12(X, { className: "size-4" }),
|
|
558
564
|
/* @__PURE__ */ jsx12("span", { className: "sr-only", children: "Close" })
|
|
559
565
|
] })
|
|
@@ -572,7 +578,7 @@ var DialogFooter = ({ className, ...props }) => /* @__PURE__ */ jsx12(
|
|
|
572
578
|
}
|
|
573
579
|
);
|
|
574
580
|
DialogFooter.displayName = "DialogFooter";
|
|
575
|
-
var DialogTitle =
|
|
581
|
+
var DialogTitle = React12.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx12(
|
|
576
582
|
DialogPrimitive.Title,
|
|
577
583
|
{
|
|
578
584
|
ref,
|
|
@@ -581,7 +587,7 @@ var DialogTitle = React11.forwardRef(({ className, ...props }, ref) => /* @__PUR
|
|
|
581
587
|
}
|
|
582
588
|
));
|
|
583
589
|
DialogTitle.displayName = DialogPrimitive.Title.displayName;
|
|
584
|
-
var DialogDescription =
|
|
590
|
+
var DialogDescription = React12.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx12(
|
|
585
591
|
DialogPrimitive.Description,
|
|
586
592
|
{
|
|
587
593
|
ref,
|
|
@@ -592,7 +598,7 @@ var DialogDescription = React11.forwardRef(({ className, ...props }, ref) => /*
|
|
|
592
598
|
DialogDescription.displayName = DialogPrimitive.Description.displayName;
|
|
593
599
|
|
|
594
600
|
// src/components/dropdown-menu.tsx
|
|
595
|
-
import * as
|
|
601
|
+
import * as React13 from "react";
|
|
596
602
|
import * as DropdownMenuPrimitive from "@radix-ui/react-dropdown-menu";
|
|
597
603
|
import { Check as Check2, ChevronRight as ChevronRight2, Circle } from "lucide-react";
|
|
598
604
|
import { jsx as jsx13, jsxs as jsxs6 } from "react/jsx-runtime";
|
|
@@ -602,23 +608,23 @@ var DropdownMenuGroup = DropdownMenuPrimitive.Group;
|
|
|
602
608
|
var DropdownMenuPortal = DropdownMenuPrimitive.Portal;
|
|
603
609
|
var DropdownMenuSub = DropdownMenuPrimitive.Sub;
|
|
604
610
|
var DropdownMenuRadioGroup = DropdownMenuPrimitive.RadioGroup;
|
|
605
|
-
var contentCls = "z-
|
|
606
|
-
var itemCls = "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-accent focus:text-accent-foreground focus:ring-1 focus:ring-inset focus:ring-ring data-[disabled]:pointer-events-none data-[disabled]:opacity-
|
|
607
|
-
var DropdownMenuContent =
|
|
611
|
+
var contentCls = "z-overlay min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md font-sans data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95";
|
|
612
|
+
var itemCls = "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-accent focus:text-accent-foreground focus:ring-1 focus:ring-inset focus:ring-ring data-[disabled]:pointer-events-none data-[disabled]:opacity-disabled";
|
|
613
|
+
var DropdownMenuContent = React13.forwardRef(({ className, sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsx13(DropdownMenuPrimitive.Portal, { children: /* @__PURE__ */ jsx13(DropdownMenuPrimitive.Content, { ref, sideOffset, className: cn(contentCls, className), ...props }) }));
|
|
608
614
|
DropdownMenuContent.displayName = DropdownMenuPrimitive.Content.displayName;
|
|
609
|
-
var DropdownMenuItem =
|
|
615
|
+
var DropdownMenuItem = React13.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx13(DropdownMenuPrimitive.Item, { ref, className: cn(itemCls, inset && "pl-8", className), ...props }));
|
|
610
616
|
DropdownMenuItem.displayName = DropdownMenuPrimitive.Item.displayName;
|
|
611
|
-
var DropdownMenuCheckboxItem =
|
|
617
|
+
var DropdownMenuCheckboxItem = React13.forwardRef(({ className, children, checked, ...props }, ref) => /* @__PURE__ */ jsxs6(DropdownMenuPrimitive.CheckboxItem, { ref, className: cn(itemCls, "pl-8", className), checked, ...props, children: [
|
|
612
618
|
/* @__PURE__ */ jsx13("span", { className: "absolute left-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ jsx13(DropdownMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx13(Check2, { className: "size-4" }) }) }),
|
|
613
619
|
children
|
|
614
620
|
] }));
|
|
615
621
|
DropdownMenuCheckboxItem.displayName = DropdownMenuPrimitive.CheckboxItem.displayName;
|
|
616
|
-
var DropdownMenuRadioItem =
|
|
622
|
+
var DropdownMenuRadioItem = React13.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs6(DropdownMenuPrimitive.RadioItem, { ref, className: cn(itemCls, "pl-8", className), ...props, children: [
|
|
617
623
|
/* @__PURE__ */ jsx13("span", { className: "absolute left-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ jsx13(DropdownMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx13(Circle, { className: "size-2 fill-current" }) }) }),
|
|
618
624
|
children
|
|
619
625
|
] }));
|
|
620
626
|
DropdownMenuRadioItem.displayName = DropdownMenuPrimitive.RadioItem.displayName;
|
|
621
|
-
var DropdownMenuLabel =
|
|
627
|
+
var DropdownMenuLabel = React13.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx13(
|
|
622
628
|
DropdownMenuPrimitive.Label,
|
|
623
629
|
{
|
|
624
630
|
ref,
|
|
@@ -627,11 +633,11 @@ var DropdownMenuLabel = React12.forwardRef(({ className, inset, ...props }, ref)
|
|
|
627
633
|
}
|
|
628
634
|
));
|
|
629
635
|
DropdownMenuLabel.displayName = DropdownMenuPrimitive.Label.displayName;
|
|
630
|
-
var DropdownMenuSeparator =
|
|
636
|
+
var DropdownMenuSeparator = React13.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx13(DropdownMenuPrimitive.Separator, { ref, className: cn("-mx-1 my-1 h-px bg-muted", className), ...props }));
|
|
631
637
|
DropdownMenuSeparator.displayName = DropdownMenuPrimitive.Separator.displayName;
|
|
632
638
|
var DropdownMenuShortcut = ({ className, ...props }) => /* @__PURE__ */ jsx13("span", { className: cn("ml-auto text-xs tracking-widest opacity-60", className), ...props });
|
|
633
639
|
DropdownMenuShortcut.displayName = "DropdownMenuShortcut";
|
|
634
|
-
var DropdownMenuSubTrigger =
|
|
640
|
+
var DropdownMenuSubTrigger = React13.forwardRef(({ className, inset, children, ...props }, ref) => /* @__PURE__ */ jsxs6(
|
|
635
641
|
DropdownMenuPrimitive.SubTrigger,
|
|
636
642
|
{
|
|
637
643
|
ref,
|
|
@@ -644,23 +650,23 @@ var DropdownMenuSubTrigger = React12.forwardRef(({ className, inset, children, .
|
|
|
644
650
|
}
|
|
645
651
|
));
|
|
646
652
|
DropdownMenuSubTrigger.displayName = DropdownMenuPrimitive.SubTrigger.displayName;
|
|
647
|
-
var DropdownMenuSubContent =
|
|
653
|
+
var DropdownMenuSubContent = React13.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx13(DropdownMenuPrimitive.SubContent, { ref, className: cn(contentCls, className), ...props }));
|
|
648
654
|
DropdownMenuSubContent.displayName = DropdownMenuPrimitive.SubContent.displayName;
|
|
649
655
|
|
|
650
656
|
// src/components/hover-card.tsx
|
|
651
|
-
import * as
|
|
657
|
+
import * as React14 from "react";
|
|
652
658
|
import * as HoverCardPrimitive from "@radix-ui/react-hover-card";
|
|
653
659
|
import { jsx as jsx14 } from "react/jsx-runtime";
|
|
654
660
|
var HoverCard = HoverCardPrimitive.Root;
|
|
655
661
|
var HoverCardTrigger = HoverCardPrimitive.Trigger;
|
|
656
|
-
var HoverCardContent =
|
|
662
|
+
var HoverCardContent = React14.forwardRef(({ className, align = "center", sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsx14(
|
|
657
663
|
HoverCardPrimitive.Content,
|
|
658
664
|
{
|
|
659
665
|
ref,
|
|
660
666
|
align,
|
|
661
667
|
sideOffset,
|
|
662
668
|
className: cn(
|
|
663
|
-
"z-
|
|
669
|
+
"z-overlay w-64 rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-none font-sans",
|
|
664
670
|
"data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95",
|
|
665
671
|
className
|
|
666
672
|
),
|
|
@@ -670,18 +676,18 @@ var HoverCardContent = React13.forwardRef(({ className, align = "center", sideOf
|
|
|
670
676
|
HoverCardContent.displayName = HoverCardPrimitive.Content.displayName;
|
|
671
677
|
|
|
672
678
|
// src/components/label.tsx
|
|
673
|
-
import * as
|
|
679
|
+
import * as React15 from "react";
|
|
674
680
|
import * as LabelPrimitive from "@radix-ui/react-label";
|
|
675
681
|
import { cva as cva6 } from "class-variance-authority";
|
|
676
682
|
import { jsx as jsx15 } from "react/jsx-runtime";
|
|
677
683
|
var labelVariants = cva6(
|
|
678
|
-
"text-sm font-medium leading-none font-sans peer-disabled:cursor-not-allowed peer-disabled:opacity-
|
|
684
|
+
"text-sm font-medium leading-none font-sans peer-disabled:cursor-not-allowed peer-disabled:opacity-muted"
|
|
679
685
|
);
|
|
680
|
-
var Label2 =
|
|
686
|
+
var Label2 = React15.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx15(LabelPrimitive.Root, { ref, className: cn(labelVariants(), className), ...props }));
|
|
681
687
|
Label2.displayName = LabelPrimitive.Root.displayName;
|
|
682
688
|
|
|
683
689
|
// src/components/pagination.tsx
|
|
684
|
-
import * as
|
|
690
|
+
import * as React16 from "react";
|
|
685
691
|
import { ChevronLeft, ChevronRight as ChevronRight3, MoreHorizontal as MoreHorizontal2 } from "lucide-react";
|
|
686
692
|
import { jsx as jsx16, jsxs as jsxs7 } from "react/jsx-runtime";
|
|
687
693
|
var Pagination = ({ className, ...props }) => /* @__PURE__ */ jsx16(
|
|
@@ -694,11 +700,11 @@ var Pagination = ({ className, ...props }) => /* @__PURE__ */ jsx16(
|
|
|
694
700
|
}
|
|
695
701
|
);
|
|
696
702
|
Pagination.displayName = "Pagination";
|
|
697
|
-
var PaginationContent =
|
|
703
|
+
var PaginationContent = React16.forwardRef(
|
|
698
704
|
({ className, ...props }, ref) => /* @__PURE__ */ jsx16("ul", { ref, className: cn("flex flex-row items-center gap-1", className), ...props })
|
|
699
705
|
);
|
|
700
706
|
PaginationContent.displayName = "PaginationContent";
|
|
701
|
-
var PaginationItem =
|
|
707
|
+
var PaginationItem = React16.forwardRef(
|
|
702
708
|
({ className, ...props }, ref) => /* @__PURE__ */ jsx16("li", { ref, className: cn("", className), ...props })
|
|
703
709
|
);
|
|
704
710
|
PaginationItem.displayName = "PaginationItem";
|
|
@@ -732,20 +738,20 @@ var PaginationEllipsis = ({ className, ...props }) => /* @__PURE__ */ jsxs7("spa
|
|
|
732
738
|
PaginationEllipsis.displayName = "PaginationEllipsis";
|
|
733
739
|
|
|
734
740
|
// src/components/popover.tsx
|
|
735
|
-
import * as
|
|
741
|
+
import * as React17 from "react";
|
|
736
742
|
import * as PopoverPrimitive from "@radix-ui/react-popover";
|
|
737
743
|
import { jsx as jsx17 } from "react/jsx-runtime";
|
|
738
744
|
var Popover = PopoverPrimitive.Root;
|
|
739
745
|
var PopoverTrigger = PopoverPrimitive.Trigger;
|
|
740
746
|
var PopoverAnchor = PopoverPrimitive.Anchor;
|
|
741
|
-
var PopoverContent =
|
|
747
|
+
var PopoverContent = React17.forwardRef(({ className, align = "center", sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsx17(PopoverPrimitive.Portal, { children: /* @__PURE__ */ jsx17(
|
|
742
748
|
PopoverPrimitive.Content,
|
|
743
749
|
{
|
|
744
750
|
ref,
|
|
745
751
|
align,
|
|
746
752
|
sideOffset,
|
|
747
753
|
className: cn(
|
|
748
|
-
"z-
|
|
754
|
+
"z-overlay w-72 rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-none font-sans",
|
|
749
755
|
"data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95",
|
|
750
756
|
"data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",
|
|
751
757
|
className
|
|
@@ -756,10 +762,10 @@ var PopoverContent = React16.forwardRef(({ className, align = "center", sideOffs
|
|
|
756
762
|
PopoverContent.displayName = PopoverPrimitive.Content.displayName;
|
|
757
763
|
|
|
758
764
|
// src/components/progress.tsx
|
|
759
|
-
import * as
|
|
765
|
+
import * as React18 from "react";
|
|
760
766
|
import * as ProgressPrimitive from "@radix-ui/react-progress";
|
|
761
767
|
import { jsx as jsx18 } from "react/jsx-runtime";
|
|
762
|
-
var Progress =
|
|
768
|
+
var Progress = React18.forwardRef(({ className, value, ...props }, ref) => /* @__PURE__ */ jsx18(
|
|
763
769
|
ProgressPrimitive.Root,
|
|
764
770
|
{
|
|
765
771
|
ref,
|
|
@@ -777,20 +783,20 @@ var Progress = React17.forwardRef(({ className, value, ...props }, ref) => /* @_
|
|
|
777
783
|
Progress.displayName = ProgressPrimitive.Root.displayName;
|
|
778
784
|
|
|
779
785
|
// src/components/radio-group.tsx
|
|
780
|
-
import * as
|
|
786
|
+
import * as React19 from "react";
|
|
781
787
|
import * as RadioGroupPrimitive from "@radix-ui/react-radio-group";
|
|
782
788
|
import { Circle as Circle2 } from "lucide-react";
|
|
783
789
|
import { jsx as jsx19 } from "react/jsx-runtime";
|
|
784
|
-
var RadioGroup2 =
|
|
790
|
+
var RadioGroup2 = React19.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx19(RadioGroupPrimitive.Root, { ref, className: cn("grid gap-3", className), ...props }));
|
|
785
791
|
RadioGroup2.displayName = RadioGroupPrimitive.Root.displayName;
|
|
786
|
-
var RadioGroupItem =
|
|
792
|
+
var RadioGroupItem = React19.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx19(
|
|
787
793
|
RadioGroupPrimitive.Item,
|
|
788
794
|
{
|
|
789
795
|
ref,
|
|
790
796
|
className: cn(
|
|
791
797
|
"aspect-square size-[18px] rounded-full border-2 border-input text-primary outline-none transition-colors",
|
|
792
798
|
"focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background",
|
|
793
|
-
"disabled:cursor-not-allowed disabled:opacity-
|
|
799
|
+
"disabled:cursor-not-allowed disabled:opacity-disabled",
|
|
794
800
|
"data-[state=checked]:border-primary",
|
|
795
801
|
"aria-invalid:border-destructive",
|
|
796
802
|
className
|
|
@@ -802,16 +808,16 @@ var RadioGroupItem = React18.forwardRef(({ className, ...props }, ref) => /* @__
|
|
|
802
808
|
RadioGroupItem.displayName = RadioGroupPrimitive.Item.displayName;
|
|
803
809
|
|
|
804
810
|
// src/components/scroll-area.tsx
|
|
805
|
-
import * as
|
|
811
|
+
import * as React20 from "react";
|
|
806
812
|
import * as ScrollAreaPrimitive from "@radix-ui/react-scroll-area";
|
|
807
813
|
import { jsx as jsx20, jsxs as jsxs8 } from "react/jsx-runtime";
|
|
808
|
-
var ScrollArea =
|
|
814
|
+
var ScrollArea = React20.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs8(ScrollAreaPrimitive.Root, { ref, className: cn("relative overflow-hidden", className), ...props, children: [
|
|
809
815
|
/* @__PURE__ */ jsx20(ScrollAreaPrimitive.Viewport, { className: "size-full rounded-[inherit]", children }),
|
|
810
816
|
/* @__PURE__ */ jsx20(ScrollBar, {}),
|
|
811
817
|
/* @__PURE__ */ jsx20(ScrollAreaPrimitive.Corner, {})
|
|
812
818
|
] }));
|
|
813
819
|
ScrollArea.displayName = ScrollAreaPrimitive.Root.displayName;
|
|
814
|
-
var ScrollBar =
|
|
820
|
+
var ScrollBar = React20.forwardRef(({ className, orientation = "vertical", ...props }, ref) => /* @__PURE__ */ jsx20(
|
|
815
821
|
ScrollAreaPrimitive.ScrollAreaScrollbar,
|
|
816
822
|
{
|
|
817
823
|
ref,
|
|
@@ -829,14 +835,14 @@ var ScrollBar = React19.forwardRef(({ className, orientation = "vertical", ...pr
|
|
|
829
835
|
ScrollBar.displayName = ScrollAreaPrimitive.ScrollAreaScrollbar.displayName;
|
|
830
836
|
|
|
831
837
|
// src/components/select.tsx
|
|
832
|
-
import * as
|
|
838
|
+
import * as React21 from "react";
|
|
833
839
|
import * as SelectPrimitive from "@radix-ui/react-select";
|
|
834
840
|
import { Check as Check3, ChevronDown as ChevronDown2, ChevronUp } from "lucide-react";
|
|
835
841
|
import { jsx as jsx21, jsxs as jsxs9 } from "react/jsx-runtime";
|
|
836
842
|
var Select = SelectPrimitive.Root;
|
|
837
843
|
var SelectGroup = SelectPrimitive.Group;
|
|
838
844
|
var SelectValue = SelectPrimitive.Value;
|
|
839
|
-
var SelectTrigger =
|
|
845
|
+
var SelectTrigger = React21.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs9(
|
|
840
846
|
SelectPrimitive.Trigger,
|
|
841
847
|
{
|
|
842
848
|
ref,
|
|
@@ -848,7 +854,7 @@ var SelectTrigger = React20.forwardRef(({ className, children, ...props }, ref)
|
|
|
848
854
|
"focus:border-primary focus:shadow-focus",
|
|
849
855
|
"data-[state=open]:border-primary",
|
|
850
856
|
"aria-[invalid=true]:border-destructive aria-[invalid=true]:focus:border-destructive aria-[invalid=true]:focus:shadow-focus-destructive",
|
|
851
|
-
"disabled:cursor-not-allowed disabled:opacity-
|
|
857
|
+
"disabled:cursor-not-allowed disabled:opacity-disabled",
|
|
852
858
|
className
|
|
853
859
|
),
|
|
854
860
|
...props,
|
|
@@ -859,13 +865,13 @@ var SelectTrigger = React20.forwardRef(({ className, children, ...props }, ref)
|
|
|
859
865
|
}
|
|
860
866
|
));
|
|
861
867
|
SelectTrigger.displayName = SelectPrimitive.Trigger.displayName;
|
|
862
|
-
var SelectContent =
|
|
868
|
+
var SelectContent = React21.forwardRef(({ className, children, position = "popper", ...props }, ref) => /* @__PURE__ */ jsx21(SelectPrimitive.Portal, { children: /* @__PURE__ */ jsxs9(
|
|
863
869
|
SelectPrimitive.Content,
|
|
864
870
|
{
|
|
865
871
|
ref,
|
|
866
872
|
position,
|
|
867
873
|
className: cn(
|
|
868
|
-
"relative z-
|
|
874
|
+
"relative z-overlay max-h-96 min-w-[8rem] overflow-hidden rounded-md border bg-popover text-popover-foreground shadow-md font-sans",
|
|
869
875
|
"data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95",
|
|
870
876
|
position === "popper" && "data-[side=bottom]:translate-y-1 data-[side=top]:-translate-y-1",
|
|
871
877
|
className
|
|
@@ -885,15 +891,15 @@ var SelectContent = React20.forwardRef(({ className, children, position = "poppe
|
|
|
885
891
|
}
|
|
886
892
|
) }));
|
|
887
893
|
SelectContent.displayName = SelectPrimitive.Content.displayName;
|
|
888
|
-
var SelectLabel =
|
|
894
|
+
var SelectLabel = React21.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx21(SelectPrimitive.Label, { ref, className: cn("px-2 py-1.5 text-sm font-semibold", className), ...props }));
|
|
889
895
|
SelectLabel.displayName = SelectPrimitive.Label.displayName;
|
|
890
|
-
var SelectItem =
|
|
896
|
+
var SelectItem = React21.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs9(
|
|
891
897
|
SelectPrimitive.Item,
|
|
892
898
|
{
|
|
893
899
|
ref,
|
|
894
900
|
className: cn(
|
|
895
901
|
"relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none",
|
|
896
|
-
"focus:bg-accent focus:text-accent-foreground focus:ring-1 focus:ring-inset focus:ring-ring data-[disabled]:pointer-events-none data-[disabled]:opacity-
|
|
902
|
+
"focus:bg-accent focus:text-accent-foreground focus:ring-1 focus:ring-inset focus:ring-ring data-[disabled]:pointer-events-none data-[disabled]:opacity-disabled",
|
|
897
903
|
className
|
|
898
904
|
),
|
|
899
905
|
...props,
|
|
@@ -904,14 +910,14 @@ var SelectItem = React20.forwardRef(({ className, children, ...props }, ref) =>
|
|
|
904
910
|
}
|
|
905
911
|
));
|
|
906
912
|
SelectItem.displayName = SelectPrimitive.Item.displayName;
|
|
907
|
-
var SelectSeparator =
|
|
913
|
+
var SelectSeparator = React21.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx21(SelectPrimitive.Separator, { ref, className: cn("-mx-1 my-1 h-px bg-muted", className), ...props }));
|
|
908
914
|
SelectSeparator.displayName = SelectPrimitive.Separator.displayName;
|
|
909
915
|
|
|
910
916
|
// src/components/separator.tsx
|
|
911
|
-
import * as
|
|
917
|
+
import * as React22 from "react";
|
|
912
918
|
import * as SeparatorPrimitive from "@radix-ui/react-separator";
|
|
913
919
|
import { jsx as jsx22 } from "react/jsx-runtime";
|
|
914
|
-
var Separator3 =
|
|
920
|
+
var Separator3 = React22.forwardRef(({ className, orientation = "horizontal", decorative = true, ...props }, ref) => /* @__PURE__ */ jsx22(
|
|
915
921
|
SeparatorPrimitive.Root,
|
|
916
922
|
{
|
|
917
923
|
ref,
|
|
@@ -928,7 +934,7 @@ var Separator3 = React21.forwardRef(({ className, orientation = "horizontal", de
|
|
|
928
934
|
Separator3.displayName = SeparatorPrimitive.Root.displayName;
|
|
929
935
|
|
|
930
936
|
// src/components/sheet.tsx
|
|
931
|
-
import * as
|
|
937
|
+
import * as React23 from "react";
|
|
932
938
|
import * as SheetPrimitive from "@radix-ui/react-dialog";
|
|
933
939
|
import { cva as cva7 } from "class-variance-authority";
|
|
934
940
|
import { X as X2 } from "lucide-react";
|
|
@@ -937,12 +943,12 @@ var Sheet = SheetPrimitive.Root;
|
|
|
937
943
|
var SheetTrigger = SheetPrimitive.Trigger;
|
|
938
944
|
var SheetClose = SheetPrimitive.Close;
|
|
939
945
|
var SheetPortal = SheetPrimitive.Portal;
|
|
940
|
-
var SheetOverlay =
|
|
946
|
+
var SheetOverlay = React23.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx23(
|
|
941
947
|
SheetPrimitive.Overlay,
|
|
942
948
|
{
|
|
943
949
|
ref,
|
|
944
950
|
className: cn(
|
|
945
|
-
"fixed inset-0 z-
|
|
951
|
+
"fixed inset-0 z-overlay bg-foreground/40 backdrop-blur-sm data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",
|
|
946
952
|
className
|
|
947
953
|
),
|
|
948
954
|
...props
|
|
@@ -950,7 +956,7 @@ var SheetOverlay = React22.forwardRef(({ className, ...props }, ref) => /* @__PU
|
|
|
950
956
|
));
|
|
951
957
|
SheetOverlay.displayName = SheetPrimitive.Overlay.displayName;
|
|
952
958
|
var sheetVariants = cva7(
|
|
953
|
-
"fixed z-
|
|
959
|
+
"fixed z-overlay gap-4 bg-background p-6 shadow-lg transition ease-standard data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:duration-base data-[state=open]:duration-slow font-sans",
|
|
954
960
|
{
|
|
955
961
|
variants: {
|
|
956
962
|
side: {
|
|
@@ -963,11 +969,11 @@ var sheetVariants = cva7(
|
|
|
963
969
|
defaultVariants: { side: "right" }
|
|
964
970
|
}
|
|
965
971
|
);
|
|
966
|
-
var SheetContent =
|
|
972
|
+
var SheetContent = React23.forwardRef(({ side = "right", className, children, ...props }, ref) => /* @__PURE__ */ jsxs10(SheetPortal, { children: [
|
|
967
973
|
/* @__PURE__ */ jsx23(SheetOverlay, {}),
|
|
968
974
|
/* @__PURE__ */ jsxs10(SheetPrimitive.Content, { ref, className: cn(sheetVariants({ side }), className), ...props, children: [
|
|
969
975
|
children,
|
|
970
|
-
/* @__PURE__ */ jsxs10(SheetPrimitive.Close, { className: "absolute right-4 top-4 rounded-sm opacity-
|
|
976
|
+
/* @__PURE__ */ jsxs10(SheetPrimitive.Close, { className: "absolute right-4 top-4 rounded-sm opacity-muted transition-opacity hover:opacity-visible focus:outline-none focus:ring-2 focus:ring-ring", children: [
|
|
971
977
|
/* @__PURE__ */ jsx23(X2, { className: "size-4" }),
|
|
972
978
|
/* @__PURE__ */ jsx23("span", { className: "sr-only", children: "Close" })
|
|
973
979
|
] })
|
|
@@ -978,9 +984,9 @@ var SheetHeader = ({ className, ...props }) => /* @__PURE__ */ jsx23("div", { cl
|
|
|
978
984
|
SheetHeader.displayName = "SheetHeader";
|
|
979
985
|
var SheetFooter = ({ className, ...props }) => /* @__PURE__ */ jsx23("div", { className: cn("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2", className), ...props });
|
|
980
986
|
SheetFooter.displayName = "SheetFooter";
|
|
981
|
-
var SheetTitle =
|
|
987
|
+
var SheetTitle = React23.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx23(SheetPrimitive.Title, { ref, className: cn("text-lg font-semibold text-foreground", className), ...props }));
|
|
982
988
|
SheetTitle.displayName = SheetPrimitive.Title.displayName;
|
|
983
|
-
var SheetDescription =
|
|
989
|
+
var SheetDescription = React23.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx23(SheetPrimitive.Description, { ref, className: cn("text-sm text-muted-foreground", className), ...props }));
|
|
984
990
|
SheetDescription.displayName = SheetPrimitive.Description.displayName;
|
|
985
991
|
|
|
986
992
|
// src/components/modal.tsx
|
|
@@ -1017,7 +1023,7 @@ function Modal({
|
|
|
1017
1023
|
DialogPrimitive2.Content,
|
|
1018
1024
|
{
|
|
1019
1025
|
className: cn(
|
|
1020
|
-
"fixed left-1/2 top-1/2 z-
|
|
1026
|
+
"fixed left-1/2 top-1/2 z-overlay flex w-full max-w-[480px] -translate-x-1/2 -translate-y-1/2 flex-col overflow-hidden rounded-xl bg-background font-sans",
|
|
1021
1027
|
"shadow-[0_4px_24px_rgba(0,0,0,0.12)]",
|
|
1022
1028
|
"data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95",
|
|
1023
1029
|
className
|
|
@@ -1028,7 +1034,7 @@ function Modal({
|
|
|
1028
1034
|
/* @__PURE__ */ jsx24(
|
|
1029
1035
|
DialogPrimitive2.Close,
|
|
1030
1036
|
{
|
|
1031
|
-
className: "rounded-sm opacity-
|
|
1037
|
+
className: "rounded-sm opacity-muted outline-none transition-opacity hover:opacity-visible focus-visible:ring-2 focus-visible:ring-ring",
|
|
1032
1038
|
"aria-label": "Close",
|
|
1033
1039
|
children: /* @__PURE__ */ jsx24(X3, { className: "size-5" })
|
|
1034
1040
|
}
|
|
@@ -1066,10 +1072,10 @@ function Skeleton({ className, ...props }) {
|
|
|
1066
1072
|
}
|
|
1067
1073
|
|
|
1068
1074
|
// src/components/slider.tsx
|
|
1069
|
-
import * as
|
|
1075
|
+
import * as React24 from "react";
|
|
1070
1076
|
import * as SliderPrimitive from "@radix-ui/react-slider";
|
|
1071
1077
|
import { jsx as jsx26, jsxs as jsxs12 } from "react/jsx-runtime";
|
|
1072
|
-
var Slider =
|
|
1078
|
+
var Slider = React24.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxs12(
|
|
1073
1079
|
SliderPrimitive.Root,
|
|
1074
1080
|
{
|
|
1075
1081
|
ref,
|
|
@@ -1077,7 +1083,7 @@ var Slider = React23.forwardRef(({ className, ...props }, ref) => /* @__PURE__ *
|
|
|
1077
1083
|
...props,
|
|
1078
1084
|
children: [
|
|
1079
1085
|
/* @__PURE__ */ jsx26(SliderPrimitive.Track, { className: "relative h-1.5 w-full grow overflow-hidden rounded-full bg-muted", children: /* @__PURE__ */ jsx26(SliderPrimitive.Range, { className: "absolute h-full bg-primary" }) }),
|
|
1080
|
-
/* @__PURE__ */ jsx26(SliderPrimitive.Thumb, { className: "block size-4 rounded-full border border-primary/50 bg-background shadow transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-
|
|
1086
|
+
/* @__PURE__ */ jsx26(SliderPrimitive.Thumb, { className: "block size-4 rounded-full border border-primary/50 bg-background shadow transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-disabled" })
|
|
1081
1087
|
]
|
|
1082
1088
|
}
|
|
1083
1089
|
));
|
|
@@ -1106,17 +1112,17 @@ function Toaster({ theme = "system", ...props }) {
|
|
|
1106
1112
|
}
|
|
1107
1113
|
|
|
1108
1114
|
// src/components/switch.tsx
|
|
1109
|
-
import * as
|
|
1115
|
+
import * as React25 from "react";
|
|
1110
1116
|
import * as SwitchPrimitive from "@radix-ui/react-switch";
|
|
1111
1117
|
import { jsx as jsx28 } from "react/jsx-runtime";
|
|
1112
|
-
var Switch =
|
|
1118
|
+
var Switch = React25.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx28(
|
|
1113
1119
|
SwitchPrimitive.Root,
|
|
1114
1120
|
{
|
|
1115
1121
|
ref,
|
|
1116
1122
|
className: cn(
|
|
1117
1123
|
"peer inline-flex h-6 w-12 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent transition-colors",
|
|
1118
1124
|
"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background",
|
|
1119
|
-
"disabled:cursor-not-allowed disabled:opacity-
|
|
1125
|
+
"disabled:cursor-not-allowed disabled:opacity-disabled",
|
|
1120
1126
|
"data-[state=checked]:bg-primary data-[state=unchecked]:bg-tertiary",
|
|
1121
1127
|
className
|
|
1122
1128
|
),
|
|
@@ -1135,7 +1141,8 @@ var Switch = React24.forwardRef(({ className, ...props }, ref) => /* @__PURE__ *
|
|
|
1135
1141
|
Switch.displayName = SwitchPrimitive.Root.displayName;
|
|
1136
1142
|
|
|
1137
1143
|
// src/components/tag.tsx
|
|
1138
|
-
import * as
|
|
1144
|
+
import * as React26 from "react";
|
|
1145
|
+
import { Slot as Slot4, Slottable } from "@radix-ui/react-slot";
|
|
1139
1146
|
import { cva as cva8 } from "class-variance-authority";
|
|
1140
1147
|
import { X as X4 } from "lucide-react";
|
|
1141
1148
|
import { jsx as jsx29, jsxs as jsxs13 } from "react/jsx-runtime";
|
|
@@ -1154,43 +1161,47 @@ var tagVariants = cva8(
|
|
|
1154
1161
|
defaultVariants: { variant: "default" }
|
|
1155
1162
|
}
|
|
1156
1163
|
);
|
|
1157
|
-
var Tag =
|
|
1158
|
-
({ className, variant, onRemove, children, ...props }, ref) =>
|
|
1159
|
-
|
|
1160
|
-
onRemove && /* @__PURE__ */ jsx29(
|
|
1164
|
+
var Tag = React26.forwardRef(
|
|
1165
|
+
({ className, variant, onRemove, children, asChild = false, ...props }, ref) => {
|
|
1166
|
+
const Comp = asChild ? Slot4 : "span";
|
|
1167
|
+
const removeButton = onRemove && /* @__PURE__ */ jsx29(
|
|
1161
1168
|
"button",
|
|
1162
1169
|
{
|
|
1163
1170
|
type: "button",
|
|
1164
1171
|
onClick: onRemove,
|
|
1165
1172
|
"aria-label": "Remove",
|
|
1166
|
-
className: "-mr-0.5 ml-0.5 rounded-[2px] opacity-
|
|
1173
|
+
className: "-mr-0.5 ml-0.5 rounded-[2px] opacity-muted outline-none transition-opacity hover:opacity-visible focus-visible:ring-1 focus-visible:ring-current",
|
|
1167
1174
|
children: /* @__PURE__ */ jsx29(X4, { className: "size-3.5" })
|
|
1168
1175
|
}
|
|
1169
|
-
)
|
|
1170
|
-
|
|
1176
|
+
);
|
|
1177
|
+
return /* @__PURE__ */ jsxs13(Comp, { ref, className: cn(tagVariants({ variant }), className), ...props, children: [
|
|
1178
|
+
asChild ? /* @__PURE__ */ jsx29(Slottable, { children }) : children,
|
|
1179
|
+
removeButton
|
|
1180
|
+
] });
|
|
1181
|
+
}
|
|
1171
1182
|
);
|
|
1172
1183
|
Tag.displayName = "Tag";
|
|
1173
1184
|
|
|
1174
1185
|
// src/components/table.tsx
|
|
1175
|
-
import * as
|
|
1186
|
+
import * as React27 from "react";
|
|
1176
1187
|
import { jsx as jsx30 } from "react/jsx-runtime";
|
|
1177
|
-
var Table =
|
|
1188
|
+
var Table = React27.forwardRef(
|
|
1178
1189
|
({ className, ...props }, ref) => /* @__PURE__ */ jsx30("div", { className: "relative w-full overflow-auto", children: /* @__PURE__ */ jsx30("table", { ref, className: cn("w-full caption-bottom text-sm font-sans", className), ...props }) })
|
|
1179
1190
|
);
|
|
1180
1191
|
Table.displayName = "Table";
|
|
1181
|
-
var TableHeader =
|
|
1192
|
+
var TableHeader = React27.forwardRef(
|
|
1182
1193
|
({ className, ...props }, ref) => /* @__PURE__ */ jsx30("thead", { ref, className: cn("[&_tr]:border-b", className), ...props })
|
|
1183
1194
|
);
|
|
1184
1195
|
TableHeader.displayName = "TableHeader";
|
|
1185
|
-
var TableBody =
|
|
1196
|
+
var TableBody = React27.forwardRef(
|
|
1186
1197
|
({ className, ...props }, ref) => /* @__PURE__ */ jsx30("tbody", { ref, className: cn("[&_tr:last-child]:border-0", className), ...props })
|
|
1187
1198
|
);
|
|
1188
1199
|
TableBody.displayName = "TableBody";
|
|
1189
|
-
var TableFooter =
|
|
1200
|
+
var TableFooter = React27.forwardRef(
|
|
1190
1201
|
({ className, ...props }, ref) => /* @__PURE__ */ jsx30("tfoot", { ref, className: cn("border-t bg-muted/50 font-medium [&>tr]:last:border-b-0", className), ...props })
|
|
1191
1202
|
);
|
|
1192
1203
|
TableFooter.displayName = "TableFooter";
|
|
1193
|
-
var TableRow =
|
|
1204
|
+
var TableRow = React27.forwardRef(
|
|
1194
1205
|
({ className, ...props }, ref) => /* @__PURE__ */ jsx30(
|
|
1195
1206
|
"tr",
|
|
1196
1207
|
{
|
|
@@ -1201,7 +1212,7 @@ var TableRow = React26.forwardRef(
|
|
|
1201
1212
|
)
|
|
1202
1213
|
);
|
|
1203
1214
|
TableRow.displayName = "TableRow";
|
|
1204
|
-
var TableHead =
|
|
1215
|
+
var TableHead = React27.forwardRef(
|
|
1205
1216
|
({ className, ...props }, ref) => /* @__PURE__ */ jsx30(
|
|
1206
1217
|
"th",
|
|
1207
1218
|
{
|
|
@@ -1212,21 +1223,21 @@ var TableHead = React26.forwardRef(
|
|
|
1212
1223
|
)
|
|
1213
1224
|
);
|
|
1214
1225
|
TableHead.displayName = "TableHead";
|
|
1215
|
-
var TableCell =
|
|
1226
|
+
var TableCell = React27.forwardRef(
|
|
1216
1227
|
({ className, ...props }, ref) => /* @__PURE__ */ jsx30("td", { ref, className: cn("p-2 align-middle [&:has([role=checkbox])]:pr-0", className), ...props })
|
|
1217
1228
|
);
|
|
1218
1229
|
TableCell.displayName = "TableCell";
|
|
1219
|
-
var TableCaption =
|
|
1230
|
+
var TableCaption = React27.forwardRef(
|
|
1220
1231
|
({ className, ...props }, ref) => /* @__PURE__ */ jsx30("caption", { ref, className: cn("mt-4 text-sm text-muted-foreground", className), ...props })
|
|
1221
1232
|
);
|
|
1222
1233
|
TableCaption.displayName = "TableCaption";
|
|
1223
1234
|
|
|
1224
1235
|
// src/components/tabs.tsx
|
|
1225
|
-
import * as
|
|
1236
|
+
import * as React28 from "react";
|
|
1226
1237
|
import * as TabsPrimitive from "@radix-ui/react-tabs";
|
|
1227
1238
|
import { jsx as jsx31 } from "react/jsx-runtime";
|
|
1228
1239
|
var Tabs = TabsPrimitive.Root;
|
|
1229
|
-
var TabsList =
|
|
1240
|
+
var TabsList = React28.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx31(
|
|
1230
1241
|
TabsPrimitive.List,
|
|
1231
1242
|
{
|
|
1232
1243
|
ref,
|
|
@@ -1238,14 +1249,14 @@ var TabsList = React27.forwardRef(({ className, ...props }, ref) => /* @__PURE__
|
|
|
1238
1249
|
}
|
|
1239
1250
|
));
|
|
1240
1251
|
TabsList.displayName = TabsPrimitive.List.displayName;
|
|
1241
|
-
var TabsTrigger =
|
|
1252
|
+
var TabsTrigger = React28.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx31(
|
|
1242
1253
|
TabsPrimitive.Trigger,
|
|
1243
1254
|
{
|
|
1244
1255
|
ref,
|
|
1245
1256
|
className: cn(
|
|
1246
1257
|
"inline-flex items-center justify-center whitespace-nowrap rounded-md px-3 py-1 text-sm font-medium transition-all",
|
|
1247
1258
|
"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring",
|
|
1248
|
-
"disabled:pointer-events-none disabled:opacity-
|
|
1259
|
+
"disabled:pointer-events-none disabled:opacity-disabled",
|
|
1249
1260
|
"data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow",
|
|
1250
1261
|
className
|
|
1251
1262
|
),
|
|
@@ -1253,7 +1264,7 @@ var TabsTrigger = React27.forwardRef(({ className, ...props }, ref) => /* @__PUR
|
|
|
1253
1264
|
}
|
|
1254
1265
|
));
|
|
1255
1266
|
TabsTrigger.displayName = TabsPrimitive.Trigger.displayName;
|
|
1256
|
-
var TabsContent =
|
|
1267
|
+
var TabsContent = React28.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx31(
|
|
1257
1268
|
TabsPrimitive.Content,
|
|
1258
1269
|
{
|
|
1259
1270
|
ref,
|
|
@@ -1264,12 +1275,12 @@ var TabsContent = React27.forwardRef(({ className, ...props }, ref) => /* @__PUR
|
|
|
1264
1275
|
TabsContent.displayName = TabsPrimitive.Content.displayName;
|
|
1265
1276
|
|
|
1266
1277
|
// src/components/toggle.tsx
|
|
1267
|
-
import * as
|
|
1278
|
+
import * as React29 from "react";
|
|
1268
1279
|
import * as TogglePrimitive from "@radix-ui/react-toggle";
|
|
1269
1280
|
import { cva as cva9 } from "class-variance-authority";
|
|
1270
1281
|
import { jsx as jsx32 } from "react/jsx-runtime";
|
|
1271
1282
|
var toggleVariants = cva9(
|
|
1272
|
-
"inline-flex items-center justify-center gap-2 rounded-md text-sm font-medium font-sans transition-colors hover:bg-muted hover:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-
|
|
1283
|
+
"inline-flex items-center justify-center gap-2 rounded-md text-sm font-medium font-sans transition-colors hover:bg-muted hover:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-disabled data-[state=on]:bg-accent data-[state=on]:text-accent-foreground data-[state=on]:ring-1 data-[state=on]:ring-inset data-[state=on]:ring-ring [&_svg]:size-4 [&_svg]:shrink-0",
|
|
1273
1284
|
{
|
|
1274
1285
|
variants: {
|
|
1275
1286
|
variant: {
|
|
@@ -1285,21 +1296,21 @@ var toggleVariants = cva9(
|
|
|
1285
1296
|
defaultVariants: { variant: "default", size: "default" }
|
|
1286
1297
|
}
|
|
1287
1298
|
);
|
|
1288
|
-
var Toggle =
|
|
1299
|
+
var Toggle = React29.forwardRef(({ className, variant, size, ...props }, ref) => /* @__PURE__ */ jsx32(TogglePrimitive.Root, { ref, className: cn(toggleVariants({ variant, size }), className), ...props }));
|
|
1289
1300
|
Toggle.displayName = TogglePrimitive.Root.displayName;
|
|
1290
1301
|
|
|
1291
1302
|
// src/components/toggle-group.tsx
|
|
1292
|
-
import * as
|
|
1303
|
+
import * as React30 from "react";
|
|
1293
1304
|
import * as ToggleGroupPrimitive from "@radix-ui/react-toggle-group";
|
|
1294
1305
|
import { jsx as jsx33 } from "react/jsx-runtime";
|
|
1295
|
-
var ToggleGroupContext =
|
|
1306
|
+
var ToggleGroupContext = React30.createContext({
|
|
1296
1307
|
size: "default",
|
|
1297
1308
|
variant: "default"
|
|
1298
1309
|
});
|
|
1299
|
-
var ToggleGroup =
|
|
1310
|
+
var ToggleGroup = React30.forwardRef(({ className, variant, size, children, ...props }, ref) => /* @__PURE__ */ jsx33(ToggleGroupPrimitive.Root, { ref, className: cn("flex items-center gap-1", className), ...props, children: /* @__PURE__ */ jsx33(ToggleGroupContext.Provider, { value: { variant, size }, children }) }));
|
|
1300
1311
|
ToggleGroup.displayName = ToggleGroupPrimitive.Root.displayName;
|
|
1301
|
-
var ToggleGroupItem =
|
|
1302
|
-
const ctx =
|
|
1312
|
+
var ToggleGroupItem = React30.forwardRef(({ className, children, variant, size, ...props }, ref) => {
|
|
1313
|
+
const ctx = React30.useContext(ToggleGroupContext);
|
|
1303
1314
|
return /* @__PURE__ */ jsx33(
|
|
1304
1315
|
ToggleGroupPrimitive.Item,
|
|
1305
1316
|
{
|
|
@@ -1313,19 +1324,19 @@ var ToggleGroupItem = React29.forwardRef(({ className, children, variant, size,
|
|
|
1313
1324
|
ToggleGroupItem.displayName = ToggleGroupPrimitive.Item.displayName;
|
|
1314
1325
|
|
|
1315
1326
|
// src/components/tooltip.tsx
|
|
1316
|
-
import * as
|
|
1327
|
+
import * as React31 from "react";
|
|
1317
1328
|
import * as TooltipPrimitive from "@radix-ui/react-tooltip";
|
|
1318
1329
|
import { jsx as jsx34 } from "react/jsx-runtime";
|
|
1319
1330
|
var TooltipProvider = TooltipPrimitive.Provider;
|
|
1320
1331
|
var Tooltip = TooltipPrimitive.Root;
|
|
1321
1332
|
var TooltipTrigger = TooltipPrimitive.Trigger;
|
|
1322
|
-
var TooltipContent =
|
|
1333
|
+
var TooltipContent = React31.forwardRef(({ className, sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsx34(TooltipPrimitive.Portal, { children: /* @__PURE__ */ jsx34(
|
|
1323
1334
|
TooltipPrimitive.Content,
|
|
1324
1335
|
{
|
|
1325
1336
|
ref,
|
|
1326
1337
|
sideOffset,
|
|
1327
1338
|
className: cn(
|
|
1328
|
-
"z-
|
|
1339
|
+
"z-overlay overflow-hidden rounded-md bg-primary px-3 py-1.5 text-xs text-primary-foreground font-sans",
|
|
1329
1340
|
"animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95",
|
|
1330
1341
|
"data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",
|
|
1331
1342
|
className
|
|
@@ -1351,13 +1362,17 @@ function Calendar({ className, classNames, showOutsideDays = true, ...props }) {
|
|
|
1351
1362
|
month_caption: "flex justify-center pt-1 relative items-center w-full",
|
|
1352
1363
|
caption_label: "text-sm font-medium",
|
|
1353
1364
|
nav: "flex items-center gap-1",
|
|
1365
|
+
// Resting-dim/hover-brighten nav icons — numerically the disabled
|
|
1366
|
+
// value (0.5) but not a disabled state, so left as a literal rather
|
|
1367
|
+
// than forced into --opacity-disabled or --opacity-muted (0.7, which
|
|
1368
|
+
// would change the rendered value).
|
|
1354
1369
|
button_previous: cn(
|
|
1355
1370
|
buttonVariants({ variant: "Outline", size: "icon" }),
|
|
1356
|
-
"absolute left-1 size-7 bg-transparent p-0 opacity-50 hover:opacity-
|
|
1371
|
+
"absolute left-1 size-7 bg-transparent p-0 opacity-50 hover:opacity-visible"
|
|
1357
1372
|
),
|
|
1358
1373
|
button_next: cn(
|
|
1359
1374
|
buttonVariants({ variant: "Outline", size: "icon" }),
|
|
1360
|
-
"absolute right-1 size-7 bg-transparent p-0 opacity-50 hover:opacity-
|
|
1375
|
+
"absolute right-1 size-7 bg-transparent p-0 opacity-50 hover:opacity-visible"
|
|
1361
1376
|
),
|
|
1362
1377
|
month_grid: "w-full border-collapse space-x-1",
|
|
1363
1378
|
weekdays: "flex",
|
|
@@ -1368,19 +1383,19 @@ function Calendar({ className, classNames, showOutsideDays = true, ...props }) {
|
|
|
1368
1383
|
// accent background + corner rounding and hands the primary-colored
|
|
1369
1384
|
// "selected" circle down to `day_button` via a `group` class.
|
|
1370
1385
|
day: cn(
|
|
1371
|
-
"group relative p-0 text-center text-sm focus-within:relative focus-within:z-
|
|
1386
|
+
"group relative p-0 text-center text-sm focus-within:relative focus-within:z-focus aria-selected:bg-accent",
|
|
1372
1387
|
props.mode === "range" ? "" : "aria-selected:rounded-md"
|
|
1373
1388
|
),
|
|
1374
1389
|
day_button: cn(
|
|
1375
1390
|
buttonVariants({ variant: "Ghost", size: "icon" }),
|
|
1376
|
-
"size-8 p-0 font-normal group-aria-selected:opacity-
|
|
1391
|
+
"size-8 p-0 font-normal group-aria-selected:opacity-visible group-data-[selected=true]:bg-primary group-data-[selected=true]:text-primary-foreground group-data-[selected=true]:hover:bg-primary group-data-[selected=true]:hover:text-primary-foreground group-data-[selected=true]:focus:bg-primary group-data-[selected=true]:focus:text-primary-foreground"
|
|
1377
1392
|
),
|
|
1378
1393
|
range_start: "day-range-start rounded-l-md",
|
|
1379
1394
|
range_end: "day-range-end rounded-r-md",
|
|
1380
1395
|
range_middle: "aria-selected:bg-accent aria-selected:text-accent-foreground",
|
|
1381
1396
|
today: "bg-accent text-accent-foreground",
|
|
1382
1397
|
outside: "day-outside text-muted-foreground aria-selected:text-muted-foreground",
|
|
1383
|
-
disabled: "text-muted-foreground opacity-
|
|
1398
|
+
disabled: "text-muted-foreground opacity-disabled",
|
|
1384
1399
|
hidden: "invisible",
|
|
1385
1400
|
...classNames
|
|
1386
1401
|
},
|
|
@@ -1394,34 +1409,34 @@ function Calendar({ className, classNames, showOutsideDays = true, ...props }) {
|
|
|
1394
1409
|
Calendar.displayName = "Calendar";
|
|
1395
1410
|
|
|
1396
1411
|
// src/components/carousel.tsx
|
|
1397
|
-
import * as
|
|
1412
|
+
import * as React32 from "react";
|
|
1398
1413
|
import useEmblaCarousel from "embla-carousel-react";
|
|
1399
1414
|
import { ArrowLeft, ArrowRight } from "lucide-react";
|
|
1400
1415
|
import { jsx as jsx36, jsxs as jsxs14 } from "react/jsx-runtime";
|
|
1401
|
-
var CarouselContext =
|
|
1416
|
+
var CarouselContext = React32.createContext(null);
|
|
1402
1417
|
function useCarousel() {
|
|
1403
|
-
const context =
|
|
1418
|
+
const context = React32.useContext(CarouselContext);
|
|
1404
1419
|
if (!context) throw new Error("useCarousel must be used within a <Carousel />");
|
|
1405
1420
|
return context;
|
|
1406
1421
|
}
|
|
1407
|
-
var Carousel =
|
|
1422
|
+
var Carousel = React32.forwardRef(({ orientation = "horizontal", opts, setApi, plugins, className, children, ...props }, ref) => {
|
|
1408
1423
|
const [carouselRef, api] = useEmblaCarousel(
|
|
1409
1424
|
{ ...opts, axis: orientation === "horizontal" ? "x" : "y" },
|
|
1410
1425
|
plugins
|
|
1411
1426
|
);
|
|
1412
|
-
const [canScrollPrev, setCanScrollPrev] =
|
|
1413
|
-
const [canScrollNext, setCanScrollNext] =
|
|
1414
|
-
const onSelect =
|
|
1427
|
+
const [canScrollPrev, setCanScrollPrev] = React32.useState(false);
|
|
1428
|
+
const [canScrollNext, setCanScrollNext] = React32.useState(false);
|
|
1429
|
+
const onSelect = React32.useCallback((a) => {
|
|
1415
1430
|
if (!a) return;
|
|
1416
1431
|
setCanScrollPrev(a.canScrollPrev());
|
|
1417
1432
|
setCanScrollNext(a.canScrollNext());
|
|
1418
1433
|
}, []);
|
|
1419
|
-
const scrollPrev =
|
|
1420
|
-
const scrollNext =
|
|
1421
|
-
|
|
1434
|
+
const scrollPrev = React32.useCallback(() => api?.scrollPrev(), [api]);
|
|
1435
|
+
const scrollNext = React32.useCallback(() => api?.scrollNext(), [api]);
|
|
1436
|
+
React32.useEffect(() => {
|
|
1422
1437
|
if (api && setApi) setApi(api);
|
|
1423
1438
|
}, [api, setApi]);
|
|
1424
|
-
|
|
1439
|
+
React32.useEffect(() => {
|
|
1425
1440
|
if (!api) return;
|
|
1426
1441
|
onSelect(api);
|
|
1427
1442
|
api.on("reInit", onSelect);
|
|
@@ -1458,7 +1473,7 @@ var Carousel = React31.forwardRef(({ orientation = "horizontal", opts, setApi, p
|
|
|
1458
1473
|
);
|
|
1459
1474
|
});
|
|
1460
1475
|
Carousel.displayName = "Carousel";
|
|
1461
|
-
var CarouselContent =
|
|
1476
|
+
var CarouselContent = React32.forwardRef(
|
|
1462
1477
|
({ className, ...props }, ref) => {
|
|
1463
1478
|
const { carouselRef, orientation } = useCarousel();
|
|
1464
1479
|
return /* @__PURE__ */ jsx36("div", { ref: carouselRef, className: "overflow-hidden", children: /* @__PURE__ */ jsx36(
|
|
@@ -1472,7 +1487,7 @@ var CarouselContent = React31.forwardRef(
|
|
|
1472
1487
|
}
|
|
1473
1488
|
);
|
|
1474
1489
|
CarouselContent.displayName = "CarouselContent";
|
|
1475
|
-
var CarouselItem =
|
|
1490
|
+
var CarouselItem = React32.forwardRef(
|
|
1476
1491
|
({ className, ...props }, ref) => {
|
|
1477
1492
|
const { orientation } = useCarousel();
|
|
1478
1493
|
return /* @__PURE__ */ jsx36(
|
|
@@ -1488,7 +1503,7 @@ var CarouselItem = React31.forwardRef(
|
|
|
1488
1503
|
}
|
|
1489
1504
|
);
|
|
1490
1505
|
CarouselItem.displayName = "CarouselItem";
|
|
1491
|
-
var CarouselPrevious =
|
|
1506
|
+
var CarouselPrevious = React32.forwardRef(
|
|
1492
1507
|
({ className, variant = "Outline", ...props }, ref) => {
|
|
1493
1508
|
const { orientation, scrollPrev, canScrollPrev } = useCarousel();
|
|
1494
1509
|
return /* @__PURE__ */ jsxs14(
|
|
@@ -1514,7 +1529,7 @@ var CarouselPrevious = React31.forwardRef(
|
|
|
1514
1529
|
}
|
|
1515
1530
|
);
|
|
1516
1531
|
CarouselPrevious.displayName = "CarouselPrevious";
|
|
1517
|
-
var CarouselNext =
|
|
1532
|
+
var CarouselNext = React32.forwardRef(
|
|
1518
1533
|
({ className, variant = "Outline", ...props }, ref) => {
|
|
1519
1534
|
const { orientation, scrollNext, canScrollNext } = useCarousel();
|
|
1520
1535
|
return /* @__PURE__ */ jsxs14(
|
|
@@ -1542,17 +1557,17 @@ var CarouselNext = React31.forwardRef(
|
|
|
1542
1557
|
CarouselNext.displayName = "CarouselNext";
|
|
1543
1558
|
|
|
1544
1559
|
// src/components/chart.tsx
|
|
1545
|
-
import * as
|
|
1560
|
+
import * as React33 from "react";
|
|
1546
1561
|
import * as RechartsPrimitive from "recharts";
|
|
1547
1562
|
import { jsx as jsx37, jsxs as jsxs15 } from "react/jsx-runtime";
|
|
1548
1563
|
var THEMES = { light: "", dark: ".dark" };
|
|
1549
|
-
var ChartContext =
|
|
1564
|
+
var ChartContext = React33.createContext(null);
|
|
1550
1565
|
function useChart() {
|
|
1551
|
-
const context =
|
|
1566
|
+
const context = React33.useContext(ChartContext);
|
|
1552
1567
|
if (!context) throw new Error("useChart must be used within a <ChartContainer />");
|
|
1553
1568
|
return context;
|
|
1554
1569
|
}
|
|
1555
|
-
var ChartContainer =
|
|
1570
|
+
var ChartContainer = React33.forwardRef(({
|
|
1556
1571
|
id,
|
|
1557
1572
|
className,
|
|
1558
1573
|
children,
|
|
@@ -1565,11 +1580,11 @@ var ChartContainer = React32.forwardRef(({
|
|
|
1565
1580
|
"aria-label": ariaLabel,
|
|
1566
1581
|
...props
|
|
1567
1582
|
}, ref) => {
|
|
1568
|
-
const uniqueId =
|
|
1583
|
+
const uniqueId = React33.useId();
|
|
1569
1584
|
const chartId = `chart-${id || uniqueId.replace(/:/g, "")}`;
|
|
1570
1585
|
const name = ariaLabel ?? label ?? "Chart";
|
|
1571
|
-
const innerRef =
|
|
1572
|
-
const setRef =
|
|
1586
|
+
const innerRef = React33.useRef(null);
|
|
1587
|
+
const setRef = React33.useCallback(
|
|
1573
1588
|
(node) => {
|
|
1574
1589
|
innerRef.current = node;
|
|
1575
1590
|
if (typeof ref === "function") ref(node);
|
|
@@ -1577,7 +1592,7 @@ var ChartContainer = React32.forwardRef(({
|
|
|
1577
1592
|
},
|
|
1578
1593
|
[ref]
|
|
1579
1594
|
);
|
|
1580
|
-
|
|
1595
|
+
React33.useEffect(() => {
|
|
1581
1596
|
const el = innerRef.current;
|
|
1582
1597
|
if (!el) return;
|
|
1583
1598
|
const scrub = () => {
|
|
@@ -1676,7 +1691,7 @@ ${colorConfig.map(([key, itemConfig]) => {
|
|
|
1676
1691
|
);
|
|
1677
1692
|
};
|
|
1678
1693
|
var ChartTooltip = RechartsPrimitive.Tooltip;
|
|
1679
|
-
var ChartTooltipContent =
|
|
1694
|
+
var ChartTooltipContent = React33.forwardRef(
|
|
1680
1695
|
({ active, payload, className, indicator = "dot", hideLabel = false, hideIndicator = false, label, labelFormatter, formatter }, ref) => {
|
|
1681
1696
|
const { config } = useChart();
|
|
1682
1697
|
if (!active || !payload?.length) return null;
|
|
@@ -1719,7 +1734,7 @@ var ChartTooltipContent = React32.forwardRef(
|
|
|
1719
1734
|
);
|
|
1720
1735
|
ChartTooltipContent.displayName = "ChartTooltipContent";
|
|
1721
1736
|
var ChartLegend = RechartsPrimitive.Legend;
|
|
1722
|
-
var ChartLegendContent =
|
|
1737
|
+
var ChartLegendContent = React33.forwardRef(({ className, payload, verticalAlign = "bottom" }, ref) => {
|
|
1723
1738
|
const { config } = useChart();
|
|
1724
1739
|
if (!payload?.length) return null;
|
|
1725
1740
|
return /* @__PURE__ */ jsx37(
|
|
@@ -1741,11 +1756,11 @@ var ChartLegendContent = React32.forwardRef(({ className, payload, verticalAlign
|
|
|
1741
1756
|
ChartLegendContent.displayName = "ChartLegendContent";
|
|
1742
1757
|
|
|
1743
1758
|
// src/components/command.tsx
|
|
1744
|
-
import * as
|
|
1759
|
+
import * as React34 from "react";
|
|
1745
1760
|
import { Command as CommandPrimitive } from "cmdk";
|
|
1746
1761
|
import { Search } from "lucide-react";
|
|
1747
1762
|
import { jsx as jsx38, jsxs as jsxs16 } from "react/jsx-runtime";
|
|
1748
|
-
var Command =
|
|
1763
|
+
var Command = React34.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx38(
|
|
1749
1764
|
CommandPrimitive,
|
|
1750
1765
|
{
|
|
1751
1766
|
ref,
|
|
@@ -1758,14 +1773,14 @@ var Command = React33.forwardRef(({ className, ...props }, ref) => /* @__PURE__
|
|
|
1758
1773
|
));
|
|
1759
1774
|
Command.displayName = CommandPrimitive.displayName;
|
|
1760
1775
|
var CommandDialog = ({ children, ...props }) => /* @__PURE__ */ jsx38(Dialog, { ...props, children: /* @__PURE__ */ jsx38(DialogContent, { className: "overflow-hidden p-0", children: /* @__PURE__ */ jsx38(Command, { className: "[&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground [&_[cmdk-input-wrapper]_svg]:size-5 [&_[cmdk-input]]:h-12 [&_[cmdk-item]]:px-2 [&_[cmdk-item]]:py-3 [&_[cmdk-item]_svg]:size-5", children }) }) });
|
|
1761
|
-
var CommandInput =
|
|
1776
|
+
var CommandInput = React34.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxs16("div", { className: "flex items-center border-b px-3", "cmdk-input-wrapper": "", children: [
|
|
1762
1777
|
/* @__PURE__ */ jsx38(Search, { className: "mr-2 size-4 shrink-0 opacity-50" }),
|
|
1763
1778
|
/* @__PURE__ */ jsx38(
|
|
1764
1779
|
CommandPrimitive.Input,
|
|
1765
1780
|
{
|
|
1766
1781
|
ref,
|
|
1767
1782
|
className: cn(
|
|
1768
|
-
"flex h-10 w-full rounded-md bg-transparent py-3 text-sm outline-none placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-
|
|
1783
|
+
"flex h-10 w-full rounded-md bg-transparent py-3 text-sm outline-none placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-disabled",
|
|
1769
1784
|
className
|
|
1770
1785
|
),
|
|
1771
1786
|
...props
|
|
@@ -1773,7 +1788,7 @@ var CommandInput = React33.forwardRef(({ className, ...props }, ref) => /* @__PU
|
|
|
1773
1788
|
)
|
|
1774
1789
|
] }));
|
|
1775
1790
|
CommandInput.displayName = CommandPrimitive.Input.displayName;
|
|
1776
|
-
var CommandList =
|
|
1791
|
+
var CommandList = React34.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx38(
|
|
1777
1792
|
CommandPrimitive.List,
|
|
1778
1793
|
{
|
|
1779
1794
|
ref,
|
|
@@ -1782,9 +1797,9 @@ var CommandList = React33.forwardRef(({ className, ...props }, ref) => /* @__PUR
|
|
|
1782
1797
|
}
|
|
1783
1798
|
));
|
|
1784
1799
|
CommandList.displayName = CommandPrimitive.List.displayName;
|
|
1785
|
-
var CommandEmpty =
|
|
1800
|
+
var CommandEmpty = React34.forwardRef((props, ref) => /* @__PURE__ */ jsx38(CommandPrimitive.Empty, { ref, className: "py-6 text-center text-sm", ...props }));
|
|
1786
1801
|
CommandEmpty.displayName = CommandPrimitive.Empty.displayName;
|
|
1787
|
-
var CommandGroup =
|
|
1802
|
+
var CommandGroup = React34.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx38(
|
|
1788
1803
|
CommandPrimitive.Group,
|
|
1789
1804
|
{
|
|
1790
1805
|
ref,
|
|
@@ -1796,14 +1811,14 @@ var CommandGroup = React33.forwardRef(({ className, ...props }, ref) => /* @__PU
|
|
|
1796
1811
|
}
|
|
1797
1812
|
));
|
|
1798
1813
|
CommandGroup.displayName = CommandPrimitive.Group.displayName;
|
|
1799
|
-
var CommandSeparator =
|
|
1814
|
+
var CommandSeparator = React34.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx38(CommandPrimitive.Separator, { ref, className: cn("-mx-1 h-px bg-border", className), ...props }));
|
|
1800
1815
|
CommandSeparator.displayName = CommandPrimitive.Separator.displayName;
|
|
1801
|
-
var CommandItem =
|
|
1816
|
+
var CommandItem = React34.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx38(
|
|
1802
1817
|
CommandPrimitive.Item,
|
|
1803
1818
|
{
|
|
1804
1819
|
ref,
|
|
1805
1820
|
className: cn(
|
|
1806
|
-
"relative flex cursor-default select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none data-[disabled=true]:pointer-events-none data-[selected=true]:bg-accent data-[selected=true]:text-accent-foreground data-[disabled=true]:opacity-
|
|
1821
|
+
"relative flex cursor-default select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none data-[disabled=true]:pointer-events-none data-[selected=true]:bg-accent data-[selected=true]:text-accent-foreground data-[disabled=true]:opacity-disabled [&_svg]:size-4 [&_svg]:shrink-0",
|
|
1807
1822
|
className
|
|
1808
1823
|
),
|
|
1809
1824
|
...props
|
|
@@ -1814,7 +1829,7 @@ var CommandShortcut = ({ className, ...props }) => /* @__PURE__ */ jsx38("span",
|
|
|
1814
1829
|
CommandShortcut.displayName = "CommandShortcut";
|
|
1815
1830
|
|
|
1816
1831
|
// src/components/context-menu.tsx
|
|
1817
|
-
import * as
|
|
1832
|
+
import * as React35 from "react";
|
|
1818
1833
|
import * as ContextMenuPrimitive from "@radix-ui/react-context-menu";
|
|
1819
1834
|
import { Check as Check4, ChevronRight as ChevronRight5, Circle as Circle3 } from "lucide-react";
|
|
1820
1835
|
import { jsx as jsx39, jsxs as jsxs17 } from "react/jsx-runtime";
|
|
@@ -1824,9 +1839,9 @@ var ContextMenuGroup = ContextMenuPrimitive.Group;
|
|
|
1824
1839
|
var ContextMenuPortal = ContextMenuPrimitive.Portal;
|
|
1825
1840
|
var ContextMenuSub = ContextMenuPrimitive.Sub;
|
|
1826
1841
|
var ContextMenuRadioGroup = ContextMenuPrimitive.RadioGroup;
|
|
1827
|
-
var itemCls2 = "relative flex cursor-default select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent focus:text-accent-foreground focus:ring-1 focus:ring-inset focus:ring-ring data-[disabled]:pointer-events-none data-[disabled]:opacity-
|
|
1828
|
-
var contentCls2 = "z-
|
|
1829
|
-
var ContextMenuSubTrigger =
|
|
1842
|
+
var itemCls2 = "relative flex cursor-default select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent focus:text-accent-foreground focus:ring-1 focus:ring-inset focus:ring-ring data-[disabled]:pointer-events-none data-[disabled]:opacity-disabled";
|
|
1843
|
+
var contentCls2 = "z-overlay min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md font-sans data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95";
|
|
1844
|
+
var ContextMenuSubTrigger = React35.forwardRef(({ className, inset, children, ...props }, ref) => /* @__PURE__ */ jsxs17(
|
|
1830
1845
|
ContextMenuPrimitive.SubTrigger,
|
|
1831
1846
|
{
|
|
1832
1847
|
ref,
|
|
@@ -1839,23 +1854,23 @@ var ContextMenuSubTrigger = React34.forwardRef(({ className, inset, children, ..
|
|
|
1839
1854
|
}
|
|
1840
1855
|
));
|
|
1841
1856
|
ContextMenuSubTrigger.displayName = ContextMenuPrimitive.SubTrigger.displayName;
|
|
1842
|
-
var ContextMenuSubContent =
|
|
1857
|
+
var ContextMenuSubContent = React35.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx39(ContextMenuPrimitive.SubContent, { ref, className: cn(contentCls2, className), ...props }));
|
|
1843
1858
|
ContextMenuSubContent.displayName = ContextMenuPrimitive.SubContent.displayName;
|
|
1844
|
-
var ContextMenuContent =
|
|
1859
|
+
var ContextMenuContent = React35.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx39(ContextMenuPrimitive.Portal, { children: /* @__PURE__ */ jsx39(ContextMenuPrimitive.Content, { ref, className: cn(contentCls2, className), ...props }) }));
|
|
1845
1860
|
ContextMenuContent.displayName = ContextMenuPrimitive.Content.displayName;
|
|
1846
|
-
var ContextMenuItem =
|
|
1861
|
+
var ContextMenuItem = React35.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx39(ContextMenuPrimitive.Item, { ref, className: cn(itemCls2, inset && "pl-8", className), ...props }));
|
|
1847
1862
|
ContextMenuItem.displayName = ContextMenuPrimitive.Item.displayName;
|
|
1848
|
-
var ContextMenuCheckboxItem =
|
|
1863
|
+
var ContextMenuCheckboxItem = React35.forwardRef(({ className, children, checked, ...props }, ref) => /* @__PURE__ */ jsxs17(ContextMenuPrimitive.CheckboxItem, { ref, className: cn(itemCls2, "pl-8", className), checked, ...props, children: [
|
|
1849
1864
|
/* @__PURE__ */ jsx39("span", { className: "absolute left-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ jsx39(ContextMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx39(Check4, { className: "size-4" }) }) }),
|
|
1850
1865
|
children
|
|
1851
1866
|
] }));
|
|
1852
1867
|
ContextMenuCheckboxItem.displayName = ContextMenuPrimitive.CheckboxItem.displayName;
|
|
1853
|
-
var ContextMenuRadioItem =
|
|
1868
|
+
var ContextMenuRadioItem = React35.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs17(ContextMenuPrimitive.RadioItem, { ref, className: cn(itemCls2, "pl-8", className), ...props, children: [
|
|
1854
1869
|
/* @__PURE__ */ jsx39("span", { className: "absolute left-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ jsx39(ContextMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx39(Circle3, { className: "size-2 fill-current" }) }) }),
|
|
1855
1870
|
children
|
|
1856
1871
|
] }));
|
|
1857
1872
|
ContextMenuRadioItem.displayName = ContextMenuPrimitive.RadioItem.displayName;
|
|
1858
|
-
var ContextMenuLabel =
|
|
1873
|
+
var ContextMenuLabel = React35.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx39(
|
|
1859
1874
|
ContextMenuPrimitive.Label,
|
|
1860
1875
|
{
|
|
1861
1876
|
ref,
|
|
@@ -1864,13 +1879,13 @@ var ContextMenuLabel = React34.forwardRef(({ className, inset, ...props }, ref)
|
|
|
1864
1879
|
}
|
|
1865
1880
|
));
|
|
1866
1881
|
ContextMenuLabel.displayName = ContextMenuPrimitive.Label.displayName;
|
|
1867
|
-
var ContextMenuSeparator =
|
|
1882
|
+
var ContextMenuSeparator = React35.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx39(ContextMenuPrimitive.Separator, { ref, className: cn("-mx-1 my-1 h-px bg-border", className), ...props }));
|
|
1868
1883
|
ContextMenuSeparator.displayName = ContextMenuPrimitive.Separator.displayName;
|
|
1869
1884
|
var ContextMenuShortcut = ({ className, ...props }) => /* @__PURE__ */ jsx39("span", { className: cn("ml-auto text-xs tracking-widest text-muted-foreground", className), ...props });
|
|
1870
1885
|
ContextMenuShortcut.displayName = "ContextMenuShortcut";
|
|
1871
1886
|
|
|
1872
1887
|
// src/components/data-table.tsx
|
|
1873
|
-
import * as
|
|
1888
|
+
import * as React36 from "react";
|
|
1874
1889
|
import {
|
|
1875
1890
|
createPaginatedRowModel,
|
|
1876
1891
|
createSortedRowModel,
|
|
@@ -1895,7 +1910,7 @@ function DataTable({
|
|
|
1895
1910
|
className,
|
|
1896
1911
|
pageSize = 10
|
|
1897
1912
|
}) {
|
|
1898
|
-
const [sorting, setSorting] =
|
|
1913
|
+
const [sorting, setSorting] = React36.useState([]);
|
|
1899
1914
|
const table = useTable({
|
|
1900
1915
|
features,
|
|
1901
1916
|
data,
|
|
@@ -1917,7 +1932,7 @@ function DataTable({
|
|
|
1917
1932
|
}
|
|
1918
1933
|
|
|
1919
1934
|
// src/components/drawer.tsx
|
|
1920
|
-
import * as
|
|
1935
|
+
import * as React37 from "react";
|
|
1921
1936
|
import { Drawer as DrawerPrimitive } from "vaul";
|
|
1922
1937
|
import { jsx as jsx41, jsxs as jsxs19 } from "react/jsx-runtime";
|
|
1923
1938
|
var Drawer = ({ shouldScaleBackground = true, ...props }) => /* @__PURE__ */ jsx41(DrawerPrimitive.Root, { shouldScaleBackground, ...props });
|
|
@@ -1925,16 +1940,16 @@ Drawer.displayName = "Drawer";
|
|
|
1925
1940
|
var DrawerTrigger = DrawerPrimitive.Trigger;
|
|
1926
1941
|
var DrawerPortal = DrawerPrimitive.Portal;
|
|
1927
1942
|
var DrawerClose = DrawerPrimitive.Close;
|
|
1928
|
-
var DrawerOverlay =
|
|
1943
|
+
var DrawerOverlay = React37.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx41(DrawerPrimitive.Overlay, { ref, className: cn("fixed inset-0 z-overlay bg-foreground/40", className), ...props }));
|
|
1929
1944
|
DrawerOverlay.displayName = DrawerPrimitive.Overlay.displayName;
|
|
1930
|
-
var DrawerContent =
|
|
1945
|
+
var DrawerContent = React37.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs19(DrawerPortal, { children: [
|
|
1931
1946
|
/* @__PURE__ */ jsx41(DrawerOverlay, {}),
|
|
1932
1947
|
/* @__PURE__ */ jsxs19(
|
|
1933
1948
|
DrawerPrimitive.Content,
|
|
1934
1949
|
{
|
|
1935
1950
|
ref,
|
|
1936
1951
|
className: cn(
|
|
1937
|
-
"fixed inset-x-0 bottom-0 z-
|
|
1952
|
+
"fixed inset-x-0 bottom-0 z-overlay mt-24 flex h-auto flex-col rounded-t-[10px] border bg-background font-sans",
|
|
1938
1953
|
className
|
|
1939
1954
|
),
|
|
1940
1955
|
...props,
|
|
@@ -1950,27 +1965,27 @@ var DrawerHeader = ({ className, ...props }) => /* @__PURE__ */ jsx41("div", { c
|
|
|
1950
1965
|
DrawerHeader.displayName = "DrawerHeader";
|
|
1951
1966
|
var DrawerFooter = ({ className, ...props }) => /* @__PURE__ */ jsx41("div", { className: cn("mt-auto flex flex-col gap-2 p-4", className), ...props });
|
|
1952
1967
|
DrawerFooter.displayName = "DrawerFooter";
|
|
1953
|
-
var DrawerTitle =
|
|
1968
|
+
var DrawerTitle = React37.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx41(DrawerPrimitive.Title, { ref, className: cn("text-lg font-semibold leading-none tracking-tight", className), ...props }));
|
|
1954
1969
|
DrawerTitle.displayName = DrawerPrimitive.Title.displayName;
|
|
1955
|
-
var DrawerDescription =
|
|
1970
|
+
var DrawerDescription = React37.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx41(DrawerPrimitive.Description, { ref, className: cn("text-sm text-muted-foreground", className), ...props }));
|
|
1956
1971
|
DrawerDescription.displayName = DrawerPrimitive.Description.displayName;
|
|
1957
1972
|
|
|
1958
1973
|
// src/components/field.tsx
|
|
1959
|
-
import * as
|
|
1960
|
-
import { Slot as
|
|
1974
|
+
import * as React38 from "react";
|
|
1975
|
+
import { Slot as Slot5 } from "@radix-ui/react-slot";
|
|
1961
1976
|
import { CircleAlert, CircleCheck, Info, TriangleAlert } from "lucide-react";
|
|
1962
1977
|
import { cva as cva10 } from "class-variance-authority";
|
|
1963
1978
|
import { jsx as jsx42, jsxs as jsxs20 } from "react/jsx-runtime";
|
|
1964
|
-
var FieldContext =
|
|
1979
|
+
var FieldContext = React38.createContext(null);
|
|
1965
1980
|
function useField() {
|
|
1966
|
-
const ctx =
|
|
1981
|
+
const ctx = React38.useContext(FieldContext);
|
|
1967
1982
|
if (!ctx) throw new Error("Field parts must be used within <Field>");
|
|
1968
1983
|
return ctx;
|
|
1969
1984
|
}
|
|
1970
|
-
var Field =
|
|
1985
|
+
var Field = React38.forwardRef(
|
|
1971
1986
|
({ className, invalid = false, ...props }, ref) => {
|
|
1972
|
-
const id =
|
|
1973
|
-
const value =
|
|
1987
|
+
const id = React38.useId();
|
|
1988
|
+
const value = React38.useMemo(
|
|
1974
1989
|
() => ({ id: `${id}-control`, descriptionId: `${id}-description`, messageId: `${id}-message`, invalid }),
|
|
1975
1990
|
[id, invalid]
|
|
1976
1991
|
);
|
|
@@ -1978,16 +1993,16 @@ var Field = React37.forwardRef(
|
|
|
1978
1993
|
}
|
|
1979
1994
|
);
|
|
1980
1995
|
Field.displayName = "Field";
|
|
1981
|
-
var FieldLabel =
|
|
1996
|
+
var FieldLabel = React38.forwardRef(({ className, ...props }, ref) => {
|
|
1982
1997
|
const { id, invalid } = useField();
|
|
1983
1998
|
return /* @__PURE__ */ jsx42(Label2, { ref, htmlFor: id, className: cn(invalid && "text-destructive", className), ...props });
|
|
1984
1999
|
});
|
|
1985
2000
|
FieldLabel.displayName = "FieldLabel";
|
|
1986
|
-
var FieldControl =
|
|
2001
|
+
var FieldControl = React38.forwardRef(
|
|
1987
2002
|
({ ...props }, ref) => {
|
|
1988
2003
|
const { id, descriptionId, messageId, invalid } = useField();
|
|
1989
2004
|
return /* @__PURE__ */ jsx42(
|
|
1990
|
-
|
|
2005
|
+
Slot5,
|
|
1991
2006
|
{
|
|
1992
2007
|
ref,
|
|
1993
2008
|
id,
|
|
@@ -1999,7 +2014,7 @@ var FieldControl = React37.forwardRef(
|
|
|
1999
2014
|
}
|
|
2000
2015
|
);
|
|
2001
2016
|
FieldControl.displayName = "FieldControl";
|
|
2002
|
-
var FieldDescription =
|
|
2017
|
+
var FieldDescription = React38.forwardRef(
|
|
2003
2018
|
({ className, ...props }, ref) => {
|
|
2004
2019
|
const { descriptionId } = useField();
|
|
2005
2020
|
return /* @__PURE__ */ jsx42("p", { ref, id: descriptionId, className: cn("text-body-sm text-muted-foreground", className), ...props });
|
|
@@ -2023,7 +2038,7 @@ var INTENT_ICON = {
|
|
|
2023
2038
|
success: CircleCheck,
|
|
2024
2039
|
info: Info
|
|
2025
2040
|
};
|
|
2026
|
-
var FieldMessage =
|
|
2041
|
+
var FieldMessage = React38.forwardRef(
|
|
2027
2042
|
({ className, intent = "error", hideIcon, children, ...props }, ref) => {
|
|
2028
2043
|
const { messageId } = useField();
|
|
2029
2044
|
const Icon2 = INTENT_ICON[intent ?? "error"];
|
|
@@ -2037,8 +2052,8 @@ var FieldMessage = React37.forwardRef(
|
|
|
2037
2052
|
FieldMessage.displayName = "FieldMessage";
|
|
2038
2053
|
|
|
2039
2054
|
// src/components/form.tsx
|
|
2040
|
-
import * as
|
|
2041
|
-
import { Slot as
|
|
2055
|
+
import * as React39 from "react";
|
|
2056
|
+
import { Slot as Slot6 } from "@radix-ui/react-slot";
|
|
2042
2057
|
import {
|
|
2043
2058
|
Controller,
|
|
2044
2059
|
FormProvider,
|
|
@@ -2047,13 +2062,13 @@ import {
|
|
|
2047
2062
|
} from "react-hook-form";
|
|
2048
2063
|
import { jsx as jsx43 } from "react/jsx-runtime";
|
|
2049
2064
|
var Form = FormProvider;
|
|
2050
|
-
var FormFieldContext =
|
|
2065
|
+
var FormFieldContext = React39.createContext({});
|
|
2051
2066
|
var FormField = ({
|
|
2052
2067
|
...props
|
|
2053
2068
|
}) => /* @__PURE__ */ jsx43(FormFieldContext.Provider, { value: { name: props.name }, children: /* @__PURE__ */ jsx43(Controller, { ...props }) });
|
|
2054
2069
|
var useFormField = () => {
|
|
2055
|
-
const fieldContext =
|
|
2056
|
-
const itemContext =
|
|
2070
|
+
const fieldContext = React39.useContext(FormFieldContext);
|
|
2071
|
+
const itemContext = React39.useContext(FormItemContext);
|
|
2057
2072
|
const { getFieldState } = useFormContext();
|
|
2058
2073
|
const formState = useFormState({ name: fieldContext.name });
|
|
2059
2074
|
const fieldState = getFieldState(fieldContext.name, formState);
|
|
@@ -2068,23 +2083,23 @@ var useFormField = () => {
|
|
|
2068
2083
|
...fieldState
|
|
2069
2084
|
};
|
|
2070
2085
|
};
|
|
2071
|
-
var FormItemContext =
|
|
2072
|
-
var FormItem =
|
|
2086
|
+
var FormItemContext = React39.createContext({});
|
|
2087
|
+
var FormItem = React39.forwardRef(
|
|
2073
2088
|
({ className, ...props }, ref) => {
|
|
2074
|
-
const id =
|
|
2089
|
+
const id = React39.useId();
|
|
2075
2090
|
return /* @__PURE__ */ jsx43(FormItemContext.Provider, { value: { id }, children: /* @__PURE__ */ jsx43("div", { ref, className: cn("grid gap-2", className), ...props }) });
|
|
2076
2091
|
}
|
|
2077
2092
|
);
|
|
2078
2093
|
FormItem.displayName = "FormItem";
|
|
2079
|
-
var FormLabel =
|
|
2094
|
+
var FormLabel = React39.forwardRef(({ className, ...props }, ref) => {
|
|
2080
2095
|
const { error, formItemId } = useFormField();
|
|
2081
2096
|
return /* @__PURE__ */ jsx43(Label2, { ref, className: cn(error && "text-destructive", className), htmlFor: formItemId, ...props });
|
|
2082
2097
|
});
|
|
2083
2098
|
FormLabel.displayName = "FormLabel";
|
|
2084
|
-
var FormControl =
|
|
2099
|
+
var FormControl = React39.forwardRef(({ ...props }, ref) => {
|
|
2085
2100
|
const { error, formItemId, formDescriptionId, formMessageId } = useFormField();
|
|
2086
2101
|
return /* @__PURE__ */ jsx43(
|
|
2087
|
-
|
|
2102
|
+
Slot6,
|
|
2088
2103
|
{
|
|
2089
2104
|
ref,
|
|
2090
2105
|
id: formItemId,
|
|
@@ -2095,14 +2110,14 @@ var FormControl = React38.forwardRef(({ ...props }, ref) => {
|
|
|
2095
2110
|
);
|
|
2096
2111
|
});
|
|
2097
2112
|
FormControl.displayName = "FormControl";
|
|
2098
|
-
var FormDescription =
|
|
2113
|
+
var FormDescription = React39.forwardRef(
|
|
2099
2114
|
({ className, ...props }, ref) => {
|
|
2100
2115
|
const { formDescriptionId } = useFormField();
|
|
2101
2116
|
return /* @__PURE__ */ jsx43("p", { ref, id: formDescriptionId, className: cn("text-sm text-muted-foreground", className), ...props });
|
|
2102
2117
|
}
|
|
2103
2118
|
);
|
|
2104
2119
|
FormDescription.displayName = "FormDescription";
|
|
2105
|
-
var FormMessage =
|
|
2120
|
+
var FormMessage = React39.forwardRef(
|
|
2106
2121
|
({ className, children, ...props }, ref) => {
|
|
2107
2122
|
const { error, formMessageId } = useFormField();
|
|
2108
2123
|
const body = error ? String(error?.message ?? "") : children;
|
|
@@ -2113,10 +2128,10 @@ var FormMessage = React38.forwardRef(
|
|
|
2113
2128
|
FormMessage.displayName = "FormMessage";
|
|
2114
2129
|
|
|
2115
2130
|
// src/components/input-group.tsx
|
|
2116
|
-
import * as
|
|
2131
|
+
import * as React40 from "react";
|
|
2117
2132
|
import { cva as cva11 } from "class-variance-authority";
|
|
2118
2133
|
import { jsx as jsx44 } from "react/jsx-runtime";
|
|
2119
|
-
var InputGroup =
|
|
2134
|
+
var InputGroup = React40.forwardRef(
|
|
2120
2135
|
({ className, ...props }, ref) => /* @__PURE__ */ jsx44(
|
|
2121
2136
|
"div",
|
|
2122
2137
|
{
|
|
@@ -2126,7 +2141,7 @@ var InputGroup = React39.forwardRef(
|
|
|
2126
2141
|
"flex w-full items-center overflow-hidden rounded-sm border border-input bg-background font-sans transition-colors",
|
|
2127
2142
|
"focus-within:border-primary focus-within:shadow-focus",
|
|
2128
2143
|
"has-[[aria-invalid=true]]:border-destructive has-[[aria-invalid=true]]:focus-within:shadow-focus-destructive",
|
|
2129
|
-
"has-[:disabled]:cursor-not-allowed has-[:disabled]:opacity-
|
|
2144
|
+
"has-[:disabled]:cursor-not-allowed has-[:disabled]:opacity-disabled",
|
|
2130
2145
|
className
|
|
2131
2146
|
),
|
|
2132
2147
|
...props
|
|
@@ -2134,7 +2149,7 @@ var InputGroup = React39.forwardRef(
|
|
|
2134
2149
|
)
|
|
2135
2150
|
);
|
|
2136
2151
|
InputGroup.displayName = "InputGroup";
|
|
2137
|
-
var InputGroupInput =
|
|
2152
|
+
var InputGroupInput = React40.forwardRef(({ className, type = "text", ...props }, ref) => /* @__PURE__ */ jsx44(
|
|
2138
2153
|
"input",
|
|
2139
2154
|
{
|
|
2140
2155
|
ref,
|
|
@@ -2153,9 +2168,9 @@ var addonVariants = cva11("flex shrink-0 items-center gap-2 text-muted-foregroun
|
|
|
2153
2168
|
variants: { align: { start: "pl-3", end: "pr-3" } },
|
|
2154
2169
|
defaultVariants: { align: "start" }
|
|
2155
2170
|
});
|
|
2156
|
-
var InputGroupAddon =
|
|
2171
|
+
var InputGroupAddon = React40.forwardRef(({ className, align, ...props }, ref) => /* @__PURE__ */ jsx44("div", { ref, "data-slot": "input-group-addon", className: cn(addonVariants({ align }), className), ...props }));
|
|
2157
2172
|
InputGroupAddon.displayName = "InputGroupAddon";
|
|
2158
|
-
var InputGroupText =
|
|
2173
|
+
var InputGroupText = React40.forwardRef(
|
|
2159
2174
|
({ className, ...props }, ref) => /* @__PURE__ */ jsx44(
|
|
2160
2175
|
"span",
|
|
2161
2176
|
{
|
|
@@ -2166,7 +2181,7 @@ var InputGroupText = React39.forwardRef(
|
|
|
2166
2181
|
)
|
|
2167
2182
|
);
|
|
2168
2183
|
InputGroupText.displayName = "InputGroupText";
|
|
2169
|
-
var InputGroupButton =
|
|
2184
|
+
var InputGroupButton = React40.forwardRef(({ className, type = "button", ...props }, ref) => /* @__PURE__ */ jsx44(
|
|
2170
2185
|
"button",
|
|
2171
2186
|
{
|
|
2172
2187
|
ref,
|
|
@@ -2174,7 +2189,7 @@ var InputGroupButton = React39.forwardRef(({ className, type = "button", ...prop
|
|
|
2174
2189
|
className: cn(
|
|
2175
2190
|
"flex h-full shrink-0 items-center gap-1.5 self-stretch border-l border-input bg-muted px-3 text-label-md text-foreground",
|
|
2176
2191
|
// base is bg-muted and muted==accent on dark, so the fill is a no-op there — the ring carries it
|
|
2177
|
-
"outline-none transition-colors hover:bg-accent hover:ring-1 hover:ring-inset hover:ring-ring focus-visible:bg-accent focus-visible:ring-1 focus-visible:ring-inset focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-
|
|
2192
|
+
"outline-none transition-colors hover:bg-accent hover:ring-1 hover:ring-inset hover:ring-ring focus-visible:bg-accent focus-visible:ring-1 focus-visible:ring-inset focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-disabled",
|
|
2178
2193
|
"[&_svg]:size-4 [&_svg]:shrink-0",
|
|
2179
2194
|
className
|
|
2180
2195
|
),
|
|
@@ -2184,26 +2199,26 @@ var InputGroupButton = React39.forwardRef(({ className, type = "button", ...prop
|
|
|
2184
2199
|
InputGroupButton.displayName = "InputGroupButton";
|
|
2185
2200
|
|
|
2186
2201
|
// src/components/input-otp.tsx
|
|
2187
|
-
import * as
|
|
2202
|
+
import * as React41 from "react";
|
|
2188
2203
|
import { OTPInput, OTPInputContext } from "input-otp";
|
|
2189
2204
|
import { Minus as Minus2 } from "lucide-react";
|
|
2190
2205
|
import { jsx as jsx45, jsxs as jsxs21 } from "react/jsx-runtime";
|
|
2191
|
-
var InputOTP =
|
|
2206
|
+
var InputOTP = React41.forwardRef(({ className, containerClassName, ...props }, ref) => /* @__PURE__ */ jsx45(
|
|
2192
2207
|
OTPInput,
|
|
2193
2208
|
{
|
|
2194
2209
|
ref,
|
|
2195
|
-
containerClassName: cn("flex items-center gap-2 has-[:disabled]:opacity-
|
|
2210
|
+
containerClassName: cn("flex items-center gap-2 has-[:disabled]:opacity-disabled", containerClassName),
|
|
2196
2211
|
className: cn("disabled:cursor-not-allowed", className),
|
|
2197
2212
|
...props
|
|
2198
2213
|
}
|
|
2199
2214
|
));
|
|
2200
2215
|
InputOTP.displayName = "InputOTP";
|
|
2201
|
-
var InputOTPGroup =
|
|
2216
|
+
var InputOTPGroup = React41.forwardRef(
|
|
2202
2217
|
({ className, ...props }, ref) => /* @__PURE__ */ jsx45("div", { ref, className: cn("flex items-center", className), ...props })
|
|
2203
2218
|
);
|
|
2204
2219
|
InputOTPGroup.displayName = "InputOTPGroup";
|
|
2205
|
-
var InputOTPSlot =
|
|
2206
|
-
const inputOTPContext =
|
|
2220
|
+
var InputOTPSlot = React41.forwardRef(({ index, className, ...props }, ref) => {
|
|
2221
|
+
const inputOTPContext = React41.useContext(OTPInputContext);
|
|
2207
2222
|
const { char, hasFakeCaret, isActive } = inputOTPContext.slots[index] ?? {};
|
|
2208
2223
|
return /* @__PURE__ */ jsxs21(
|
|
2209
2224
|
"div",
|
|
@@ -2211,29 +2226,29 @@ var InputOTPSlot = React40.forwardRef(({ index, className, ...props }, ref) => {
|
|
|
2211
2226
|
ref,
|
|
2212
2227
|
className: cn(
|
|
2213
2228
|
"relative flex size-9 items-center justify-center border-y border-r border-input text-sm shadow-sm transition-all first:rounded-l-md first:border-l last:rounded-r-md",
|
|
2214
|
-
isActive && "z-
|
|
2229
|
+
isActive && "z-docked ring-1 ring-ring",
|
|
2215
2230
|
className
|
|
2216
2231
|
),
|
|
2217
2232
|
...props,
|
|
2218
2233
|
children: [
|
|
2219
2234
|
char,
|
|
2220
|
-
hasFakeCaret && /* @__PURE__ */ jsx45("div", { className: "pointer-events-none absolute inset-0 flex items-center justify-center", children: /* @__PURE__ */ jsx45("div", { className: "h-4 w-px animate-caret-blink bg-foreground duration-
|
|
2235
|
+
hasFakeCaret && /* @__PURE__ */ jsx45("div", { className: "pointer-events-none absolute inset-0 flex items-center justify-center", children: /* @__PURE__ */ jsx45("div", { className: "h-4 w-px animate-caret-blink bg-foreground duration-slower" }) })
|
|
2221
2236
|
]
|
|
2222
2237
|
}
|
|
2223
2238
|
);
|
|
2224
2239
|
});
|
|
2225
2240
|
InputOTPSlot.displayName = "InputOTPSlot";
|
|
2226
|
-
var InputOTPSeparator =
|
|
2241
|
+
var InputOTPSeparator = React41.forwardRef(
|
|
2227
2242
|
({ ...props }, ref) => /* @__PURE__ */ jsx45("div", { ref, role: "separator", ...props, children: /* @__PURE__ */ jsx45(Minus2, { className: "size-4" }) })
|
|
2228
2243
|
);
|
|
2229
2244
|
InputOTPSeparator.displayName = "InputOTPSeparator";
|
|
2230
2245
|
|
|
2231
2246
|
// src/components/password-input.tsx
|
|
2232
|
-
import * as
|
|
2247
|
+
import * as React42 from "react";
|
|
2233
2248
|
import { Eye, EyeOff } from "lucide-react";
|
|
2234
2249
|
import { jsx as jsx46, jsxs as jsxs22 } from "react/jsx-runtime";
|
|
2235
|
-
var PasswordInput =
|
|
2236
|
-
const [visible, setVisible] =
|
|
2250
|
+
var PasswordInput = React42.forwardRef(({ className, ...props }, ref) => {
|
|
2251
|
+
const [visible, setVisible] = React42.useState(false);
|
|
2237
2252
|
return /* @__PURE__ */ jsxs22(InputGroup, { className, children: [
|
|
2238
2253
|
/* @__PURE__ */ jsx46(InputGroupInput, { ref, type: visible ? "text" : "password", ...props }),
|
|
2239
2254
|
/* @__PURE__ */ jsx46(InputGroupAddon, { align: "end", children: /* @__PURE__ */ jsx46(
|
|
@@ -2252,7 +2267,7 @@ var PasswordInput = React41.forwardRef(({ className, ...props }, ref) => {
|
|
|
2252
2267
|
PasswordInput.displayName = "PasswordInput";
|
|
2253
2268
|
|
|
2254
2269
|
// src/components/menubar.tsx
|
|
2255
|
-
import * as
|
|
2270
|
+
import * as React43 from "react";
|
|
2256
2271
|
import * as MenubarPrimitive from "@radix-ui/react-menubar";
|
|
2257
2272
|
import { Check as Check5, ChevronRight as ChevronRight6, Circle as Circle4 } from "lucide-react";
|
|
2258
2273
|
import { jsx as jsx47, jsxs as jsxs23 } from "react/jsx-runtime";
|
|
@@ -2261,9 +2276,9 @@ var MenubarGroup = (props) => /* @__PURE__ */ jsx47(MenubarPrimitive.Group, { ..
|
|
|
2261
2276
|
var MenubarPortal = (props) => /* @__PURE__ */ jsx47(MenubarPrimitive.Portal, { ...props });
|
|
2262
2277
|
var MenubarSub = (props) => /* @__PURE__ */ jsx47(MenubarPrimitive.Sub, { ...props });
|
|
2263
2278
|
var MenubarRadioGroup = (props) => /* @__PURE__ */ jsx47(MenubarPrimitive.RadioGroup, { ...props });
|
|
2264
|
-
var itemCls3 = "relative flex cursor-default select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent focus:text-accent-foreground focus:ring-1 focus:ring-inset focus:ring-ring data-[disabled]:pointer-events-none data-[disabled]:opacity-
|
|
2265
|
-
var contentCls3 = "z-
|
|
2266
|
-
var Menubar =
|
|
2279
|
+
var itemCls3 = "relative flex cursor-default select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent focus:text-accent-foreground focus:ring-1 focus:ring-inset focus:ring-ring data-[disabled]:pointer-events-none data-[disabled]:opacity-disabled";
|
|
2280
|
+
var contentCls3 = "z-overlay min-w-[12rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md font-sans data-[state=open]:animate-in data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95";
|
|
2281
|
+
var Menubar = React43.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx47(
|
|
2267
2282
|
MenubarPrimitive.Root,
|
|
2268
2283
|
{
|
|
2269
2284
|
ref,
|
|
@@ -2272,7 +2287,7 @@ var Menubar = React42.forwardRef(({ className, ...props }, ref) => /* @__PURE__
|
|
|
2272
2287
|
}
|
|
2273
2288
|
));
|
|
2274
2289
|
Menubar.displayName = MenubarPrimitive.Root.displayName;
|
|
2275
|
-
var MenubarTrigger =
|
|
2290
|
+
var MenubarTrigger = React43.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx47(
|
|
2276
2291
|
MenubarPrimitive.Trigger,
|
|
2277
2292
|
{
|
|
2278
2293
|
ref,
|
|
@@ -2284,14 +2299,14 @@ var MenubarTrigger = React42.forwardRef(({ className, ...props }, ref) => /* @__
|
|
|
2284
2299
|
}
|
|
2285
2300
|
));
|
|
2286
2301
|
MenubarTrigger.displayName = MenubarPrimitive.Trigger.displayName;
|
|
2287
|
-
var MenubarSubTrigger =
|
|
2302
|
+
var MenubarSubTrigger = React43.forwardRef(({ className, inset, children, ...props }, ref) => /* @__PURE__ */ jsxs23(MenubarPrimitive.SubTrigger, { ref, className: cn(itemCls3, "data-[state=open]:bg-accent", inset && "pl-8", className), ...props, children: [
|
|
2288
2303
|
children,
|
|
2289
2304
|
/* @__PURE__ */ jsx47(ChevronRight6, { className: "ml-auto size-4" })
|
|
2290
2305
|
] }));
|
|
2291
2306
|
MenubarSubTrigger.displayName = MenubarPrimitive.SubTrigger.displayName;
|
|
2292
|
-
var MenubarSubContent =
|
|
2307
|
+
var MenubarSubContent = React43.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx47(MenubarPrimitive.SubContent, { ref, className: cn(contentCls3, className), ...props }));
|
|
2293
2308
|
MenubarSubContent.displayName = MenubarPrimitive.SubContent.displayName;
|
|
2294
|
-
var MenubarContent =
|
|
2309
|
+
var MenubarContent = React43.forwardRef(({ className, align = "start", alignOffset = -4, sideOffset = 8, ...props }, ref) => /* @__PURE__ */ jsx47(MenubarPrimitive.Portal, { children: /* @__PURE__ */ jsx47(
|
|
2295
2310
|
MenubarPrimitive.Content,
|
|
2296
2311
|
{
|
|
2297
2312
|
ref,
|
|
@@ -2303,36 +2318,36 @@ var MenubarContent = React42.forwardRef(({ className, align = "start", alignOffs
|
|
|
2303
2318
|
}
|
|
2304
2319
|
) }));
|
|
2305
2320
|
MenubarContent.displayName = MenubarPrimitive.Content.displayName;
|
|
2306
|
-
var MenubarItem =
|
|
2321
|
+
var MenubarItem = React43.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx47(MenubarPrimitive.Item, { ref, className: cn(itemCls3, inset && "pl-8", className), ...props }));
|
|
2307
2322
|
MenubarItem.displayName = MenubarPrimitive.Item.displayName;
|
|
2308
|
-
var MenubarCheckboxItem =
|
|
2323
|
+
var MenubarCheckboxItem = React43.forwardRef(({ className, children, checked, ...props }, ref) => /* @__PURE__ */ jsxs23(MenubarPrimitive.CheckboxItem, { ref, className: cn(itemCls3, "pl-8", className), checked, ...props, children: [
|
|
2309
2324
|
/* @__PURE__ */ jsx47("span", { className: "absolute left-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ jsx47(MenubarPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx47(Check5, { className: "size-4" }) }) }),
|
|
2310
2325
|
children
|
|
2311
2326
|
] }));
|
|
2312
2327
|
MenubarCheckboxItem.displayName = MenubarPrimitive.CheckboxItem.displayName;
|
|
2313
|
-
var MenubarRadioItem =
|
|
2328
|
+
var MenubarRadioItem = React43.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs23(MenubarPrimitive.RadioItem, { ref, className: cn(itemCls3, "pl-8", className), ...props, children: [
|
|
2314
2329
|
/* @__PURE__ */ jsx47("span", { className: "absolute left-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ jsx47(MenubarPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx47(Circle4, { className: "size-2 fill-current" }) }) }),
|
|
2315
2330
|
children
|
|
2316
2331
|
] }));
|
|
2317
2332
|
MenubarRadioItem.displayName = MenubarPrimitive.RadioItem.displayName;
|
|
2318
|
-
var MenubarLabel =
|
|
2333
|
+
var MenubarLabel = React43.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx47(MenubarPrimitive.Label, { ref, className: cn("px-2 py-1.5 text-sm font-semibold", inset && "pl-8", className), ...props }));
|
|
2319
2334
|
MenubarLabel.displayName = MenubarPrimitive.Label.displayName;
|
|
2320
|
-
var MenubarSeparator =
|
|
2335
|
+
var MenubarSeparator = React43.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx47(MenubarPrimitive.Separator, { ref, className: cn("-mx-1 my-1 h-px bg-border", className), ...props }));
|
|
2321
2336
|
MenubarSeparator.displayName = MenubarPrimitive.Separator.displayName;
|
|
2322
2337
|
var MenubarShortcut = ({ className, ...props }) => /* @__PURE__ */ jsx47("span", { className: cn("ml-auto text-xs tracking-widest text-muted-foreground", className), ...props });
|
|
2323
2338
|
MenubarShortcut.displayName = "MenubarShortcut";
|
|
2324
2339
|
|
|
2325
2340
|
// src/components/navigation-menu.tsx
|
|
2326
|
-
import * as
|
|
2341
|
+
import * as React44 from "react";
|
|
2327
2342
|
import * as NavigationMenuPrimitive from "@radix-ui/react-navigation-menu";
|
|
2328
2343
|
import { cva as cva12 } from "class-variance-authority";
|
|
2329
2344
|
import { ChevronDown as ChevronDown3 } from "lucide-react";
|
|
2330
2345
|
import { jsx as jsx48, jsxs as jsxs24 } from "react/jsx-runtime";
|
|
2331
|
-
var NavigationMenu =
|
|
2346
|
+
var NavigationMenu = React44.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs24(
|
|
2332
2347
|
NavigationMenuPrimitive.Root,
|
|
2333
2348
|
{
|
|
2334
2349
|
ref,
|
|
2335
|
-
className: cn("relative z-
|
|
2350
|
+
className: cn("relative z-docked flex max-w-max flex-1 items-center justify-center font-sans", className),
|
|
2336
2351
|
...props,
|
|
2337
2352
|
children: [
|
|
2338
2353
|
children,
|
|
@@ -2341,7 +2356,7 @@ var NavigationMenu = React43.forwardRef(({ className, children, ...props }, ref)
|
|
|
2341
2356
|
}
|
|
2342
2357
|
));
|
|
2343
2358
|
NavigationMenu.displayName = NavigationMenuPrimitive.Root.displayName;
|
|
2344
|
-
var NavigationMenuList =
|
|
2359
|
+
var NavigationMenuList = React44.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx48(
|
|
2345
2360
|
NavigationMenuPrimitive.List,
|
|
2346
2361
|
{
|
|
2347
2362
|
ref,
|
|
@@ -2352,20 +2367,20 @@ var NavigationMenuList = React43.forwardRef(({ className, ...props }, ref) => /*
|
|
|
2352
2367
|
NavigationMenuList.displayName = NavigationMenuPrimitive.List.displayName;
|
|
2353
2368
|
var NavigationMenuItem = NavigationMenuPrimitive.Item;
|
|
2354
2369
|
var navigationMenuTriggerStyle = cva12(
|
|
2355
|
-
"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-
|
|
2370
|
+
"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-disabled data-[state=open]:bg-accent/50"
|
|
2356
2371
|
);
|
|
2357
|
-
var NavigationMenuTrigger =
|
|
2372
|
+
var NavigationMenuTrigger = React44.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs24(NavigationMenuPrimitive.Trigger, { ref, className: cn(navigationMenuTriggerStyle(), "group", className), ...props, children: [
|
|
2358
2373
|
children,
|
|
2359
2374
|
/* @__PURE__ */ jsx48(
|
|
2360
2375
|
ChevronDown3,
|
|
2361
2376
|
{
|
|
2362
|
-
className: "relative top-px ml-1 size-3 transition-transform duration-
|
|
2377
|
+
className: "relative top-px ml-1 size-3 transition-transform duration-fast group-data-[state=open]:rotate-180",
|
|
2363
2378
|
"aria-hidden": true
|
|
2364
2379
|
}
|
|
2365
2380
|
)
|
|
2366
2381
|
] }));
|
|
2367
2382
|
NavigationMenuTrigger.displayName = NavigationMenuPrimitive.Trigger.displayName;
|
|
2368
|
-
var NavigationMenuContent =
|
|
2383
|
+
var NavigationMenuContent = React44.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx48(
|
|
2369
2384
|
NavigationMenuPrimitive.Content,
|
|
2370
2385
|
{
|
|
2371
2386
|
ref,
|
|
@@ -2378,7 +2393,7 @@ var NavigationMenuContent = React43.forwardRef(({ className, ...props }, ref) =>
|
|
|
2378
2393
|
));
|
|
2379
2394
|
NavigationMenuContent.displayName = NavigationMenuPrimitive.Content.displayName;
|
|
2380
2395
|
var NavigationMenuLink = NavigationMenuPrimitive.Link;
|
|
2381
|
-
var NavigationMenuViewport =
|
|
2396
|
+
var NavigationMenuViewport = React44.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx48("div", { className: "absolute left-0 top-full flex justify-center", children: /* @__PURE__ */ jsx48(
|
|
2382
2397
|
NavigationMenuPrimitive.Viewport,
|
|
2383
2398
|
{
|
|
2384
2399
|
ref,
|
|
@@ -2390,12 +2405,12 @@ var NavigationMenuViewport = React43.forwardRef(({ className, ...props }, ref) =
|
|
|
2390
2405
|
}
|
|
2391
2406
|
) }));
|
|
2392
2407
|
NavigationMenuViewport.displayName = NavigationMenuPrimitive.Viewport.displayName;
|
|
2393
|
-
var NavigationMenuIndicator =
|
|
2408
|
+
var NavigationMenuIndicator = React44.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx48(
|
|
2394
2409
|
NavigationMenuPrimitive.Indicator,
|
|
2395
2410
|
{
|
|
2396
2411
|
ref,
|
|
2397
2412
|
className: cn(
|
|
2398
|
-
"top-full z-
|
|
2413
|
+
"top-full z-raised flex h-1.5 items-end justify-center overflow-hidden data-[state=visible]:animate-in data-[state=hidden]:animate-out data-[state=hidden]:fade-out data-[state=visible]:fade-in",
|
|
2399
2414
|
className
|
|
2400
2415
|
),
|
|
2401
2416
|
...props,
|
|
@@ -2436,13 +2451,13 @@ var ResizableHandle = ({
|
|
|
2436
2451
|
className
|
|
2437
2452
|
),
|
|
2438
2453
|
...props,
|
|
2439
|
-
children: withHandle && /* @__PURE__ */ jsx49("div", { className: "z-
|
|
2454
|
+
children: withHandle && /* @__PURE__ */ jsx49("div", { className: "z-docked flex h-4 w-3 items-center justify-center rounded-sm border bg-border", children: /* @__PURE__ */ jsx49(GripVertical, { className: "size-2.5" }) })
|
|
2440
2455
|
}
|
|
2441
2456
|
);
|
|
2442
2457
|
|
|
2443
2458
|
// src/components/sidebar.tsx
|
|
2444
|
-
import * as
|
|
2445
|
-
import { Slot as
|
|
2459
|
+
import * as React45 from "react";
|
|
2460
|
+
import { Slot as Slot7 } from "@radix-ui/react-slot";
|
|
2446
2461
|
import { cva as cva13 } from "class-variance-authority";
|
|
2447
2462
|
import { PanelLeft } from "lucide-react";
|
|
2448
2463
|
import { jsx as jsx50, jsxs as jsxs25 } from "react/jsx-runtime";
|
|
@@ -2451,15 +2466,15 @@ var SIDEBAR_WIDTH = "16rem";
|
|
|
2451
2466
|
var SIDEBAR_WIDTH_MOBILE = "18rem";
|
|
2452
2467
|
var SIDEBAR_WIDTH_ICON = "3rem";
|
|
2453
2468
|
var SIDEBAR_KEYBOARD_SHORTCUT = "b";
|
|
2454
|
-
var SidebarContext =
|
|
2469
|
+
var SidebarContext = React45.createContext(null);
|
|
2455
2470
|
function useSidebar() {
|
|
2456
|
-
const context =
|
|
2471
|
+
const context = React45.useContext(SidebarContext);
|
|
2457
2472
|
if (!context) throw new Error("useSidebar must be used within a SidebarProvider.");
|
|
2458
2473
|
return context;
|
|
2459
2474
|
}
|
|
2460
2475
|
function useIsMobile() {
|
|
2461
|
-
const [isMobile, setIsMobile] =
|
|
2462
|
-
|
|
2476
|
+
const [isMobile, setIsMobile] = React45.useState(false);
|
|
2477
|
+
React45.useEffect(() => {
|
|
2463
2478
|
const mql = window.matchMedia("(max-width: 767px)");
|
|
2464
2479
|
const onChange = () => setIsMobile(window.innerWidth < 768);
|
|
2465
2480
|
mql.addEventListener("change", onChange);
|
|
@@ -2468,12 +2483,12 @@ function useIsMobile() {
|
|
|
2468
2483
|
}, []);
|
|
2469
2484
|
return isMobile;
|
|
2470
2485
|
}
|
|
2471
|
-
var SidebarProvider =
|
|
2486
|
+
var SidebarProvider = React45.forwardRef(({ defaultOpen = true, open: openProp, onOpenChange: setOpenProp, className, style, children, ...props }, ref) => {
|
|
2472
2487
|
const isMobile = useIsMobile();
|
|
2473
|
-
const [openMobile, setOpenMobile] =
|
|
2474
|
-
const [_open, _setOpen] =
|
|
2488
|
+
const [openMobile, setOpenMobile] = React45.useState(false);
|
|
2489
|
+
const [_open, _setOpen] = React45.useState(defaultOpen);
|
|
2475
2490
|
const open = openProp ?? _open;
|
|
2476
|
-
const setOpen =
|
|
2491
|
+
const setOpen = React45.useCallback(
|
|
2477
2492
|
(value) => {
|
|
2478
2493
|
const openState = typeof value === "function" ? value(open) : value;
|
|
2479
2494
|
if (setOpenProp) setOpenProp(openState);
|
|
@@ -2482,10 +2497,10 @@ var SidebarProvider = React44.forwardRef(({ defaultOpen = true, open: openProp,
|
|
|
2482
2497
|
},
|
|
2483
2498
|
[setOpenProp, open]
|
|
2484
2499
|
);
|
|
2485
|
-
const toggleSidebar =
|
|
2500
|
+
const toggleSidebar = React45.useCallback(() => {
|
|
2486
2501
|
return isMobile ? setOpenMobile((o) => !o) : setOpen((o) => !o);
|
|
2487
2502
|
}, [isMobile, setOpen]);
|
|
2488
|
-
|
|
2503
|
+
React45.useEffect(() => {
|
|
2489
2504
|
const handleKeyDown = (event) => {
|
|
2490
2505
|
if (event.key === SIDEBAR_KEYBOARD_SHORTCUT && (event.metaKey || event.ctrlKey)) {
|
|
2491
2506
|
event.preventDefault();
|
|
@@ -2496,7 +2511,7 @@ var SidebarProvider = React44.forwardRef(({ defaultOpen = true, open: openProp,
|
|
|
2496
2511
|
return () => window.removeEventListener("keydown", handleKeyDown);
|
|
2497
2512
|
}, [toggleSidebar]);
|
|
2498
2513
|
const state = open ? "expanded" : "collapsed";
|
|
2499
|
-
const contextValue =
|
|
2514
|
+
const contextValue = React45.useMemo(
|
|
2500
2515
|
() => ({ state, open, setOpen, isMobile, openMobile, setOpenMobile, toggleSidebar }),
|
|
2501
2516
|
[state, open, setOpen, isMobile, openMobile, toggleSidebar]
|
|
2502
2517
|
);
|
|
@@ -2512,7 +2527,7 @@ var SidebarProvider = React44.forwardRef(({ defaultOpen = true, open: openProp,
|
|
|
2512
2527
|
) }) });
|
|
2513
2528
|
});
|
|
2514
2529
|
SidebarProvider.displayName = "SidebarProvider";
|
|
2515
|
-
var Sidebar =
|
|
2530
|
+
var Sidebar = React45.forwardRef(({ side = "left", variant = "sidebar", collapsible = "offcanvas", className, children, ...props }, ref) => {
|
|
2516
2531
|
const { isMobile, state, openMobile, setOpenMobile } = useSidebar();
|
|
2517
2532
|
if (collapsible === "none") {
|
|
2518
2533
|
return /* @__PURE__ */ jsx50("div", { ref, className: cn("flex h-full w-[--sidebar-width] flex-col bg-sidebar text-sidebar-foreground", className), ...props, children });
|
|
@@ -2550,7 +2565,7 @@ var Sidebar = React44.forwardRef(({ side = "left", variant = "sidebar", collapsi
|
|
|
2550
2565
|
"div",
|
|
2551
2566
|
{
|
|
2552
2567
|
className: cn(
|
|
2553
|
-
"relative h-svh w-[--sidebar-width] bg-transparent transition-[width] duration-
|
|
2568
|
+
"relative h-svh w-[--sidebar-width] bg-transparent transition-[width] duration-fast ease-linear",
|
|
2554
2569
|
"group-data-[collapsible=offcanvas]:w-0",
|
|
2555
2570
|
variant === "floating" || variant === "inset" ? "group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+theme(spacing.4))]" : "group-data-[collapsible=icon]:w-[--sidebar-width-icon]"
|
|
2556
2571
|
)
|
|
@@ -2560,7 +2575,7 @@ var Sidebar = React44.forwardRef(({ side = "left", variant = "sidebar", collapsi
|
|
|
2560
2575
|
"div",
|
|
2561
2576
|
{
|
|
2562
2577
|
className: cn(
|
|
2563
|
-
"fixed inset-y-0 z-
|
|
2578
|
+
"fixed inset-y-0 z-docked hidden h-svh w-[--sidebar-width] transition-[left,right,width] duration-fast ease-linear md:flex",
|
|
2564
2579
|
side === "left" ? "left-0 group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)]" : "right-0 group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)]",
|
|
2565
2580
|
variant === "floating" || variant === "inset" ? "p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+theme(spacing.4)+2px)]" : "group-data-[collapsible=icon]:w-[--sidebar-width-icon] group-data-[side=left]:border-r group-data-[side=right]:border-l",
|
|
2566
2581
|
className
|
|
@@ -2581,7 +2596,7 @@ var Sidebar = React44.forwardRef(({ side = "left", variant = "sidebar", collapsi
|
|
|
2581
2596
|
);
|
|
2582
2597
|
});
|
|
2583
2598
|
Sidebar.displayName = "Sidebar";
|
|
2584
|
-
var SidebarTrigger =
|
|
2599
|
+
var SidebarTrigger = React45.forwardRef(
|
|
2585
2600
|
({ className, onClick, ...props }, ref) => {
|
|
2586
2601
|
const { toggleSidebar } = useSidebar();
|
|
2587
2602
|
return /* @__PURE__ */ jsxs25(
|
|
@@ -2605,7 +2620,7 @@ var SidebarTrigger = React44.forwardRef(
|
|
|
2605
2620
|
}
|
|
2606
2621
|
);
|
|
2607
2622
|
SidebarTrigger.displayName = "SidebarTrigger";
|
|
2608
|
-
var SidebarInset =
|
|
2623
|
+
var SidebarInset = React45.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx50(
|
|
2609
2624
|
"main",
|
|
2610
2625
|
{
|
|
2611
2626
|
ref,
|
|
@@ -2618,15 +2633,15 @@ var SidebarInset = React44.forwardRef(({ className, ...props }, ref) => /* @__PU
|
|
|
2618
2633
|
}
|
|
2619
2634
|
));
|
|
2620
2635
|
SidebarInset.displayName = "SidebarInset";
|
|
2621
|
-
var SidebarHeader =
|
|
2636
|
+
var SidebarHeader = React45.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx50("div", { ref, "data-sidebar": "header", className: cn("flex flex-col gap-2 p-2", className), ...props }));
|
|
2622
2637
|
SidebarHeader.displayName = "SidebarHeader";
|
|
2623
|
-
var SidebarFooter =
|
|
2638
|
+
var SidebarFooter = React45.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx50("div", { ref, "data-sidebar": "footer", className: cn("flex flex-col gap-2 p-2", className), ...props }));
|
|
2624
2639
|
SidebarFooter.displayName = "SidebarFooter";
|
|
2625
|
-
var SidebarSeparator =
|
|
2640
|
+
var SidebarSeparator = React45.forwardRef(
|
|
2626
2641
|
({ className, ...props }, ref) => /* @__PURE__ */ jsx50(Separator3, { ref, "data-sidebar": "separator", className: cn("mx-2 w-auto bg-sidebar-border", className), ...props })
|
|
2627
2642
|
);
|
|
2628
2643
|
SidebarSeparator.displayName = "SidebarSeparator";
|
|
2629
|
-
var SidebarContent =
|
|
2644
|
+
var SidebarContent = React45.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx50(
|
|
2630
2645
|
"div",
|
|
2631
2646
|
{
|
|
2632
2647
|
ref,
|
|
@@ -2636,18 +2651,18 @@ var SidebarContent = React44.forwardRef(({ className, ...props }, ref) => /* @__
|
|
|
2636
2651
|
}
|
|
2637
2652
|
));
|
|
2638
2653
|
SidebarContent.displayName = "SidebarContent";
|
|
2639
|
-
var SidebarGroup =
|
|
2654
|
+
var SidebarGroup = React45.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx50("div", { ref, "data-sidebar": "group", className: cn("relative flex w-full min-w-0 flex-col p-2", className), ...props }));
|
|
2640
2655
|
SidebarGroup.displayName = "SidebarGroup";
|
|
2641
|
-
var SidebarGroupLabel =
|
|
2642
|
-
const Comp = asChild ?
|
|
2656
|
+
var SidebarGroupLabel = React45.forwardRef(({ className, asChild = false, ...props }, ref) => {
|
|
2657
|
+
const Comp = asChild ? Slot7 : "div";
|
|
2643
2658
|
return /* @__PURE__ */ jsx50(
|
|
2644
2659
|
Comp,
|
|
2645
2660
|
{
|
|
2646
2661
|
ref,
|
|
2647
2662
|
"data-sidebar": "group-label",
|
|
2648
2663
|
className: cn(
|
|
2649
|
-
"flex h-8 shrink-0 items-center rounded-md px-2 text-xs font-medium text-sidebar-foreground/70 outline-none transition-[margin,opacity] duration-
|
|
2650
|
-
"group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-
|
|
2664
|
+
"flex h-8 shrink-0 items-center rounded-md px-2 text-xs font-medium text-sidebar-foreground/70 outline-none transition-[margin,opacity] duration-fast ease-linear focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0",
|
|
2665
|
+
"group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-hidden",
|
|
2651
2666
|
className
|
|
2652
2667
|
),
|
|
2653
2668
|
...props
|
|
@@ -2655,16 +2670,16 @@ var SidebarGroupLabel = React44.forwardRef(({ className, asChild = false, ...pro
|
|
|
2655
2670
|
);
|
|
2656
2671
|
});
|
|
2657
2672
|
SidebarGroupLabel.displayName = "SidebarGroupLabel";
|
|
2658
|
-
var SidebarGroupContent =
|
|
2673
|
+
var SidebarGroupContent = React45.forwardRef(
|
|
2659
2674
|
({ className, ...props }, ref) => /* @__PURE__ */ jsx50("div", { ref, "data-sidebar": "group-content", className: cn("w-full text-sm", className), ...props })
|
|
2660
2675
|
);
|
|
2661
2676
|
SidebarGroupContent.displayName = "SidebarGroupContent";
|
|
2662
|
-
var SidebarMenu =
|
|
2677
|
+
var SidebarMenu = React45.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx50("ul", { ref, "data-sidebar": "menu", className: cn("flex w-full min-w-0 flex-col gap-1", className), ...props }));
|
|
2663
2678
|
SidebarMenu.displayName = "SidebarMenu";
|
|
2664
|
-
var SidebarMenuItem =
|
|
2679
|
+
var SidebarMenuItem = React45.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx50("li", { ref, "data-sidebar": "menu-item", className: cn("group/menu-item relative", className), ...props }));
|
|
2665
2680
|
SidebarMenuItem.displayName = "SidebarMenuItem";
|
|
2666
2681
|
var sidebarMenuButtonVariants = cva13(
|
|
2667
|
-
"peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left text-sm outline-none ring-sidebar-ring transition-[width,height,padding] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-
|
|
2682
|
+
"peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left text-sm outline-none ring-sidebar-ring transition-[width,height,padding] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-disabled group-has-[[data-sidebar=menu-action]]/menu-item:pr-8 aria-disabled:pointer-events-none aria-disabled:opacity-disabled data-[active=true]:bg-sidebar-accent data-[active=true]:font-medium data-[active=true]:text-sidebar-accent-foreground data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground group-data-[collapsible=icon]:!size-8 group-data-[collapsible=icon]:!p-2 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0",
|
|
2668
2683
|
{
|
|
2669
2684
|
variants: {
|
|
2670
2685
|
variant: {
|
|
@@ -2680,8 +2695,8 @@ var sidebarMenuButtonVariants = cva13(
|
|
|
2680
2695
|
defaultVariants: { variant: "default", size: "default" }
|
|
2681
2696
|
}
|
|
2682
2697
|
);
|
|
2683
|
-
var SidebarMenuButton =
|
|
2684
|
-
const Comp = asChild ?
|
|
2698
|
+
var SidebarMenuButton = React45.forwardRef(({ asChild = false, isActive = false, variant = "default", size = "default", tooltip, className, ...props }, ref) => {
|
|
2699
|
+
const Comp = asChild ? Slot7 : "button";
|
|
2685
2700
|
const { isMobile, state } = useSidebar();
|
|
2686
2701
|
const button = /* @__PURE__ */ jsx50(
|
|
2687
2702
|
Comp,
|
|
@@ -2702,21 +2717,21 @@ var SidebarMenuButton = React44.forwardRef(({ asChild = false, isActive = false,
|
|
|
2702
2717
|
] });
|
|
2703
2718
|
});
|
|
2704
2719
|
SidebarMenuButton.displayName = "SidebarMenuButton";
|
|
2705
|
-
var SidebarMenuSkeleton =
|
|
2706
|
-
const width =
|
|
2720
|
+
var SidebarMenuSkeleton = React45.forwardRef(({ className, showIcon = false, ...props }, ref) => {
|
|
2721
|
+
const width = React45.useMemo(() => `${Math.floor(Math.random() * 40) + 50}%`, []);
|
|
2707
2722
|
return /* @__PURE__ */ jsxs25("div", { ref, "data-sidebar": "menu-skeleton", className: cn("flex h-8 items-center gap-2 rounded-md px-2", className), ...props, children: [
|
|
2708
2723
|
showIcon && /* @__PURE__ */ jsx50(Skeleton, { className: "size-4 rounded-md" }),
|
|
2709
2724
|
/* @__PURE__ */ jsx50(Skeleton, { className: "h-4 max-w-[--skeleton-width] flex-1", style: { "--skeleton-width": width } })
|
|
2710
2725
|
] });
|
|
2711
2726
|
});
|
|
2712
2727
|
SidebarMenuSkeleton.displayName = "SidebarMenuSkeleton";
|
|
2713
|
-
var SidebarInput =
|
|
2728
|
+
var SidebarInput = React45.forwardRef(
|
|
2714
2729
|
({ className, ...props }, ref) => /* @__PURE__ */ jsx50(Input, { ref, "data-sidebar": "input", className: cn("h-8 w-full bg-background shadow-none", className), ...props })
|
|
2715
2730
|
);
|
|
2716
2731
|
SidebarInput.displayName = "SidebarInput";
|
|
2717
2732
|
|
|
2718
2733
|
// src/components/audio-player.tsx
|
|
2719
|
-
import * as
|
|
2734
|
+
import * as React46 from "react";
|
|
2720
2735
|
import { Pause, Play, SkipBack, SkipForward } from "lucide-react";
|
|
2721
2736
|
import { jsx as jsx51, jsxs as jsxs26 } from "react/jsx-runtime";
|
|
2722
2737
|
function fmt(t) {
|
|
@@ -2725,12 +2740,12 @@ function fmt(t) {
|
|
|
2725
2740
|
const s = Math.floor(t % 60);
|
|
2726
2741
|
return `${m}:${s.toString().padStart(2, "0")}`;
|
|
2727
2742
|
}
|
|
2728
|
-
var AudioPlayer =
|
|
2743
|
+
var AudioPlayer = React46.forwardRef(
|
|
2729
2744
|
({ src, variant = "full", title, artist, coverSrc, skipBy = 10, onPrev, onNext, className, ...props }, ref) => {
|
|
2730
|
-
const audioRef =
|
|
2731
|
-
const [playing, setPlaying] =
|
|
2732
|
-
const [current, setCurrent] =
|
|
2733
|
-
const [duration, setDuration] =
|
|
2745
|
+
const audioRef = React46.useRef(null);
|
|
2746
|
+
const [playing, setPlaying] = React46.useState(false);
|
|
2747
|
+
const [current, setCurrent] = React46.useState(0);
|
|
2748
|
+
const [duration, setDuration] = React46.useState(0);
|
|
2734
2749
|
const toggle = () => {
|
|
2735
2750
|
const a = audioRef.current;
|
|
2736
2751
|
if (!a) return;
|
|
@@ -2829,9 +2844,9 @@ var AudioPlayer = React45.forwardRef(
|
|
|
2829
2844
|
AudioPlayer.displayName = "AudioPlayer";
|
|
2830
2845
|
|
|
2831
2846
|
// src/components/circular-progress.tsx
|
|
2832
|
-
import * as
|
|
2847
|
+
import * as React47 from "react";
|
|
2833
2848
|
import { jsx as jsx52, jsxs as jsxs27 } from "react/jsx-runtime";
|
|
2834
|
-
var CircularProgress =
|
|
2849
|
+
var CircularProgress = React47.forwardRef(
|
|
2835
2850
|
({ value = 0, size = 48, strokeWidth = 4, showValue = false, label, className, ...props }, ref) => {
|
|
2836
2851
|
const v = Math.max(0, Math.min(100, value));
|
|
2837
2852
|
const r = (size - strokeWidth) / 2;
|
|
@@ -2871,7 +2886,7 @@ var CircularProgress = React46.forwardRef(
|
|
|
2871
2886
|
strokeLinecap: "round",
|
|
2872
2887
|
strokeDasharray: c,
|
|
2873
2888
|
strokeDashoffset: c - v / 100 * c,
|
|
2874
|
-
className: "stroke-primary transition-[stroke-dashoffset] duration-
|
|
2889
|
+
className: "stroke-primary transition-[stroke-dashoffset] duration-base"
|
|
2875
2890
|
}
|
|
2876
2891
|
)
|
|
2877
2892
|
] }),
|
|
@@ -2884,7 +2899,7 @@ var CircularProgress = React46.forwardRef(
|
|
|
2884
2899
|
CircularProgress.displayName = "CircularProgress";
|
|
2885
2900
|
|
|
2886
2901
|
// src/components/image.tsx
|
|
2887
|
-
import * as
|
|
2902
|
+
import * as React48 from "react";
|
|
2888
2903
|
import { ImageOff } from "lucide-react";
|
|
2889
2904
|
import { jsx as jsx53 } from "react/jsx-runtime";
|
|
2890
2905
|
var RATIOS = {
|
|
@@ -2895,11 +2910,11 @@ var RATIOS = {
|
|
|
2895
2910
|
"3:1": 3,
|
|
2896
2911
|
"16:9": 16 / 9
|
|
2897
2912
|
};
|
|
2898
|
-
var Image2 =
|
|
2913
|
+
var Image2 = React48.forwardRef(
|
|
2899
2914
|
({ ratio = "1:1", rounded = true, fallback, className, alt = "", onLoad, onError, ...props }, forwardedRef) => {
|
|
2900
|
-
const [status, setStatus] =
|
|
2901
|
-
const innerRef =
|
|
2902
|
-
const setRef =
|
|
2915
|
+
const [status, setStatus] = React48.useState("loading");
|
|
2916
|
+
const innerRef = React48.useRef(null);
|
|
2917
|
+
const setRef = React48.useCallback(
|
|
2903
2918
|
(node) => {
|
|
2904
2919
|
innerRef.current = node;
|
|
2905
2920
|
if (typeof forwardedRef === "function") forwardedRef(node);
|
|
@@ -2908,7 +2923,7 @@ var Image2 = React47.forwardRef(
|
|
|
2908
2923
|
[forwardedRef]
|
|
2909
2924
|
);
|
|
2910
2925
|
const r = typeof ratio === "number" ? ratio : RATIOS[ratio] ?? 1;
|
|
2911
|
-
|
|
2926
|
+
React48.useEffect(() => {
|
|
2912
2927
|
const img = innerRef.current;
|
|
2913
2928
|
if (!img) return;
|
|
2914
2929
|
if (img.complete) setStatus(img.naturalWidth > 0 ? "loaded" : "error");
|
|
@@ -2928,8 +2943,8 @@ var Image2 = React47.forwardRef(
|
|
|
2928
2943
|
ref: setRef,
|
|
2929
2944
|
alt,
|
|
2930
2945
|
className: cn(
|
|
2931
|
-
"size-full object-cover transition-opacity duration-
|
|
2932
|
-
status === "loaded" ? "opacity-
|
|
2946
|
+
"size-full object-cover transition-opacity duration-base",
|
|
2947
|
+
status === "loaded" ? "opacity-visible" : "opacity-hidden"
|
|
2933
2948
|
),
|
|
2934
2949
|
onLoad: (e) => {
|
|
2935
2950
|
setStatus("loaded");
|
|
@@ -2949,7 +2964,7 @@ var Image2 = React47.forwardRef(
|
|
|
2949
2964
|
Image2.displayName = "Image";
|
|
2950
2965
|
|
|
2951
2966
|
// src/components/inform.tsx
|
|
2952
|
-
import * as
|
|
2967
|
+
import * as React49 from "react";
|
|
2953
2968
|
import { cva as cva14 } from "class-variance-authority";
|
|
2954
2969
|
import { CircleAlert as CircleAlert2, CircleCheck as CircleCheck2, Info as Info2, TriangleAlert as TriangleAlert2, X as X5 } from "lucide-react";
|
|
2955
2970
|
import { jsx as jsx54, jsxs as jsxs28 } from "react/jsx-runtime";
|
|
@@ -2975,7 +2990,7 @@ var ICON = {
|
|
|
2975
2990
|
error: CircleAlert2,
|
|
2976
2991
|
action: Info2
|
|
2977
2992
|
};
|
|
2978
|
-
var Inform =
|
|
2993
|
+
var Inform = React49.forwardRef(
|
|
2979
2994
|
({ className, variant = "information", hideIcon, onDismiss, action, children, ...props }, ref) => {
|
|
2980
2995
|
const Icon2 = ICON[variant ?? "information"];
|
|
2981
2996
|
return /* @__PURE__ */ jsxs28("div", { ref, role: "status", className: cn(informVariants({ variant }), className), ...props, children: [
|
|
@@ -3001,7 +3016,7 @@ var Inform = React48.forwardRef(
|
|
|
3001
3016
|
type: "button",
|
|
3002
3017
|
onClick: onDismiss,
|
|
3003
3018
|
"aria-label": "Dismiss",
|
|
3004
|
-
className: "-m-0.5 shrink-0 rounded-[2px] p-0.5 opacity-
|
|
3019
|
+
className: "-m-0.5 shrink-0 rounded-[2px] p-0.5 opacity-muted outline-none transition-opacity hover:opacity-visible focus-visible:opacity-visible focus-visible:ring-1 focus-visible:ring-current",
|
|
3005
3020
|
children: /* @__PURE__ */ jsx54(X5, { className: "size-3.5" })
|
|
3006
3021
|
}
|
|
3007
3022
|
)
|
|
@@ -3011,7 +3026,7 @@ var Inform = React48.forwardRef(
|
|
|
3011
3026
|
Inform.displayName = "Inform";
|
|
3012
3027
|
|
|
3013
3028
|
// src/components/rating.tsx
|
|
3014
|
-
import * as
|
|
3029
|
+
import * as React50 from "react";
|
|
3015
3030
|
import { Star } from "lucide-react";
|
|
3016
3031
|
import { cva as cva15 } from "class-variance-authority";
|
|
3017
3032
|
import { jsx as jsx55 } from "react/jsx-runtime";
|
|
@@ -3025,10 +3040,10 @@ var starVariants = cva15("transition-colors", {
|
|
|
3025
3040
|
},
|
|
3026
3041
|
defaultVariants: { size: "md" }
|
|
3027
3042
|
});
|
|
3028
|
-
var Rating =
|
|
3043
|
+
var Rating = React50.forwardRef(
|
|
3029
3044
|
({ className, value, defaultValue = 0, max = 5, size, readOnly = false, onChange, ...props }, ref) => {
|
|
3030
|
-
const [internal, setInternal] =
|
|
3031
|
-
const [hovered, setHovered] =
|
|
3045
|
+
const [internal, setInternal] = React50.useState(defaultValue);
|
|
3046
|
+
const [hovered, setHovered] = React50.useState(null);
|
|
3032
3047
|
const current = value ?? internal;
|
|
3033
3048
|
const display = hovered ?? current;
|
|
3034
3049
|
const set = (n) => {
|
|
@@ -3081,7 +3096,7 @@ var Rating = React49.forwardRef(
|
|
|
3081
3096
|
Rating.displayName = "Rating";
|
|
3082
3097
|
|
|
3083
3098
|
// src/components/spinner.tsx
|
|
3084
|
-
import * as
|
|
3099
|
+
import * as React51 from "react";
|
|
3085
3100
|
import { cva as cva16 } from "class-variance-authority";
|
|
3086
3101
|
import { jsx as jsx56 } from "react/jsx-runtime";
|
|
3087
3102
|
var spinnerVariants = cva16("inline-block animate-spin rounded-full border-2 border-current border-t-transparent", {
|
|
@@ -3099,19 +3114,19 @@ var spinnerVariants = cva16("inline-block animate-spin rounded-full border-2 bor
|
|
|
3099
3114
|
},
|
|
3100
3115
|
defaultVariants: { size: "md", variant: "default" }
|
|
3101
3116
|
});
|
|
3102
|
-
var Spinner =
|
|
3117
|
+
var Spinner = React51.forwardRef(
|
|
3103
3118
|
({ className, size, variant, label = "Loading\u2026", ...props }, ref) => /* @__PURE__ */ jsx56("span", { ref, role: "status", "aria-label": label, className: cn(spinnerVariants({ size, variant }), className), ...props, children: /* @__PURE__ */ jsx56("span", { className: "sr-only", children: label }) })
|
|
3104
3119
|
);
|
|
3105
3120
|
Spinner.displayName = "Spinner";
|
|
3106
3121
|
|
|
3107
3122
|
// src/components/list.tsx
|
|
3108
|
-
import * as
|
|
3123
|
+
import * as React52 from "react";
|
|
3109
3124
|
import { jsx as jsx57, jsxs as jsxs29 } from "react/jsx-runtime";
|
|
3110
|
-
var List3 =
|
|
3125
|
+
var List3 = React52.forwardRef(
|
|
3111
3126
|
({ className, ...props }, ref) => /* @__PURE__ */ jsx57("div", { ref, role: "list", className: cn("flex flex-col divide-y divide-border", className), ...props })
|
|
3112
3127
|
);
|
|
3113
3128
|
List3.displayName = "List";
|
|
3114
|
-
var ListItem =
|
|
3129
|
+
var ListItem = React52.forwardRef(
|
|
3115
3130
|
({ className, leading, title, description, trailing, disabled, onSelect, ...props }, ref) => {
|
|
3116
3131
|
const interactive = !!onSelect && !disabled;
|
|
3117
3132
|
return /* @__PURE__ */ jsxs29(
|
|
@@ -3132,7 +3147,7 @@ var ListItem = React51.forwardRef(
|
|
|
3132
3147
|
"flex items-center gap-3 px-3 py-3 font-sans outline-none",
|
|
3133
3148
|
// ring keeps the highlighted row perceptible where the accent fill is <3:1 (dark)
|
|
3134
3149
|
interactive && "cursor-pointer hover:bg-accent hover:ring-1 hover:ring-inset hover:ring-ring focus-visible:bg-accent focus-visible:ring-1 focus-visible:ring-inset focus-visible:ring-ring",
|
|
3135
|
-
disabled && "pointer-events-none opacity-
|
|
3150
|
+
disabled && "pointer-events-none opacity-disabled",
|
|
3136
3151
|
className
|
|
3137
3152
|
),
|
|
3138
3153
|
...props,
|
|
@@ -3151,10 +3166,10 @@ var ListItem = React51.forwardRef(
|
|
|
3151
3166
|
ListItem.displayName = "ListItem";
|
|
3152
3167
|
|
|
3153
3168
|
// src/components/stepper.tsx
|
|
3154
|
-
import * as
|
|
3169
|
+
import * as React53 from "react";
|
|
3155
3170
|
import { Check as Check6 } from "lucide-react";
|
|
3156
3171
|
import { jsx as jsx58, jsxs as jsxs30 } from "react/jsx-runtime";
|
|
3157
|
-
var Stepper =
|
|
3172
|
+
var Stepper = React53.forwardRef(
|
|
3158
3173
|
({ className, steps, current, orientation = "horizontal", ...props }, ref) => {
|
|
3159
3174
|
const vertical = orientation === "vertical";
|
|
3160
3175
|
return /* @__PURE__ */ jsx58("ol", { ref, className: cn("flex font-sans", vertical ? "flex-col" : "w-full items-start", className), ...props, children: steps.map((step, i) => {
|
|
@@ -3205,15 +3220,15 @@ var Stepper = React52.forwardRef(
|
|
|
3205
3220
|
Stepper.displayName = "Stepper";
|
|
3206
3221
|
|
|
3207
3222
|
// src/components/fab.tsx
|
|
3208
|
-
import * as
|
|
3209
|
-
import { Slot as
|
|
3223
|
+
import * as React54 from "react";
|
|
3224
|
+
import { Slot as Slot8 } from "@radix-ui/react-slot";
|
|
3210
3225
|
import { cva as cva17 } from "class-variance-authority";
|
|
3211
3226
|
import { jsx as jsx59 } from "react/jsx-runtime";
|
|
3212
3227
|
var fabVariants = cva17(
|
|
3213
3228
|
[
|
|
3214
3229
|
"inline-flex shrink-0 items-center justify-center gap-2 rounded-full font-sans font-medium",
|
|
3215
3230
|
"shadow-lg outline-none transition-colors",
|
|
3216
|
-
"focus-visible:shadow-focus disabled:pointer-events-none disabled:opacity-
|
|
3231
|
+
"focus-visible:shadow-focus disabled:pointer-events-none disabled:opacity-disabled",
|
|
3217
3232
|
"[&_svg]:pointer-events-none [&_svg]:shrink-0"
|
|
3218
3233
|
],
|
|
3219
3234
|
{
|
|
@@ -3234,9 +3249,9 @@ var fabVariants = cva17(
|
|
|
3234
3249
|
defaultVariants: { variant: "Primary", size: "default", extended: false }
|
|
3235
3250
|
}
|
|
3236
3251
|
);
|
|
3237
|
-
var Fab =
|
|
3252
|
+
var Fab = React54.forwardRef(
|
|
3238
3253
|
({ className, variant, size, extended, asChild = false, ...props }, ref) => {
|
|
3239
|
-
const Comp = asChild ?
|
|
3254
|
+
const Comp = asChild ? Slot8 : "button";
|
|
3240
3255
|
return /* @__PURE__ */ jsx59(
|
|
3241
3256
|
Comp,
|
|
3242
3257
|
{
|
|
@@ -3251,9 +3266,9 @@ var Fab = React53.forwardRef(
|
|
|
3251
3266
|
Fab.displayName = "Fab";
|
|
3252
3267
|
|
|
3253
3268
|
// src/components/tab-bar.tsx
|
|
3254
|
-
import * as
|
|
3269
|
+
import * as React55 from "react";
|
|
3255
3270
|
import { jsx as jsx60, jsxs as jsxs31 } from "react/jsx-runtime";
|
|
3256
|
-
var TabBar =
|
|
3271
|
+
var TabBar = React55.forwardRef(
|
|
3257
3272
|
({ className, children, ...props }, ref) => /* @__PURE__ */ jsx60(
|
|
3258
3273
|
"nav",
|
|
3259
3274
|
{
|
|
@@ -3265,7 +3280,7 @@ var TabBar = React54.forwardRef(
|
|
|
3265
3280
|
)
|
|
3266
3281
|
);
|
|
3267
3282
|
TabBar.displayName = "TabBar";
|
|
3268
|
-
var TabBarItem =
|
|
3283
|
+
var TabBarItem = React55.forwardRef(
|
|
3269
3284
|
({ className, icon, label, active, badge, ...props }, ref) => /* @__PURE__ */ jsxs31(
|
|
3270
3285
|
"button",
|
|
3271
3286
|
{
|
|
@@ -3292,10 +3307,10 @@ var TabBarItem = React54.forwardRef(
|
|
|
3292
3307
|
TabBarItem.displayName = "TabBarItem";
|
|
3293
3308
|
|
|
3294
3309
|
// src/components/navigation-bar.tsx
|
|
3295
|
-
import * as
|
|
3310
|
+
import * as React56 from "react";
|
|
3296
3311
|
import { ChevronLeft as ChevronLeft3 } from "lucide-react";
|
|
3297
3312
|
import { jsx as jsx61, jsxs as jsxs32 } from "react/jsx-runtime";
|
|
3298
|
-
var NavigationBar =
|
|
3313
|
+
var NavigationBar = React56.forwardRef(
|
|
3299
3314
|
({ className, title, infoText, onBack, leading, actions, ...props }, ref) => /* @__PURE__ */ jsxs32(
|
|
3300
3315
|
"header",
|
|
3301
3316
|
{
|
|
@@ -3325,28 +3340,28 @@ var NavigationBar = React55.forwardRef(
|
|
|
3325
3340
|
NavigationBar.displayName = "NavigationBar";
|
|
3326
3341
|
|
|
3327
3342
|
// src/components/app-bar.tsx
|
|
3328
|
-
import * as
|
|
3329
|
-
import { Slot as
|
|
3343
|
+
import * as React57 from "react";
|
|
3344
|
+
import { Slot as Slot9 } from "@radix-ui/react-slot";
|
|
3330
3345
|
import { Menu as Menu2, X as X6 } from "lucide-react";
|
|
3331
3346
|
import { jsx as jsx62, jsxs as jsxs33 } from "react/jsx-runtime";
|
|
3332
|
-
var Ctx =
|
|
3347
|
+
var Ctx = React57.createContext(null);
|
|
3333
3348
|
var useAppBar = () => {
|
|
3334
|
-
const ctx =
|
|
3349
|
+
const ctx = React57.useContext(Ctx);
|
|
3335
3350
|
if (!ctx) throw new Error("AppBar parts must be used within <AppBar>");
|
|
3336
3351
|
return ctx;
|
|
3337
3352
|
};
|
|
3338
|
-
var AppBar =
|
|
3353
|
+
var AppBar = React57.forwardRef(
|
|
3339
3354
|
({ className, children, ...props }, ref) => {
|
|
3340
|
-
const [open, setOpen] =
|
|
3341
|
-
const nav =
|
|
3342
|
-
(c) =>
|
|
3355
|
+
const [open, setOpen] = React57.useState(false);
|
|
3356
|
+
const nav = React57.Children.toArray(children).find(
|
|
3357
|
+
(c) => React57.isValidElement(c) && c.type === AppBarNav
|
|
3343
3358
|
);
|
|
3344
3359
|
return /* @__PURE__ */ jsx62(Ctx.Provider, { value: { open, setOpen }, children: /* @__PURE__ */ jsxs33(
|
|
3345
3360
|
"header",
|
|
3346
3361
|
{
|
|
3347
3362
|
ref,
|
|
3348
3363
|
className: cn(
|
|
3349
|
-
"sticky top-0 z-
|
|
3364
|
+
"sticky top-0 z-sticky w-full border-b border-border bg-background/95 font-sans",
|
|
3350
3365
|
"backdrop-blur supports-[backdrop-filter]:bg-background/75",
|
|
3351
3366
|
className
|
|
3352
3367
|
),
|
|
@@ -3376,7 +3391,7 @@ var AppBar = React56.forwardRef(
|
|
|
3376
3391
|
}
|
|
3377
3392
|
);
|
|
3378
3393
|
AppBar.displayName = "AppBar";
|
|
3379
|
-
var AppBarBrand =
|
|
3394
|
+
var AppBarBrand = React57.forwardRef(
|
|
3380
3395
|
({ className, ...props }, ref) => /* @__PURE__ */ jsx62(
|
|
3381
3396
|
"div",
|
|
3382
3397
|
{
|
|
@@ -3387,13 +3402,13 @@ var AppBarBrand = React56.forwardRef(
|
|
|
3387
3402
|
)
|
|
3388
3403
|
);
|
|
3389
3404
|
AppBarBrand.displayName = "AppBarBrand";
|
|
3390
|
-
var AppBarNav =
|
|
3405
|
+
var AppBarNav = React57.forwardRef(
|
|
3391
3406
|
({ className, ...props }, ref) => /* @__PURE__ */ jsx62("nav", { ref, className: cn("hidden items-center gap-1 md:flex", className), ...props })
|
|
3392
3407
|
);
|
|
3393
3408
|
AppBarNav.displayName = "AppBarNav";
|
|
3394
|
-
var AppBarLink =
|
|
3409
|
+
var AppBarLink = React57.forwardRef(
|
|
3395
3410
|
({ className, active, asChild, ...props }, ref) => {
|
|
3396
|
-
const Comp = asChild ?
|
|
3411
|
+
const Comp = asChild ? Slot9 : "a";
|
|
3397
3412
|
return /* @__PURE__ */ jsx62(
|
|
3398
3413
|
Comp,
|
|
3399
3414
|
{
|
|
@@ -3412,13 +3427,13 @@ var AppBarLink = React56.forwardRef(
|
|
|
3412
3427
|
}
|
|
3413
3428
|
);
|
|
3414
3429
|
AppBarLink.displayName = "AppBarLink";
|
|
3415
|
-
var AppBarActions =
|
|
3430
|
+
var AppBarActions = React57.forwardRef(
|
|
3416
3431
|
({ className, ...props }, ref) => /* @__PURE__ */ jsx62("div", { ref, className: cn("ml-auto flex shrink-0 items-center gap-2", className), ...props })
|
|
3417
3432
|
);
|
|
3418
3433
|
AppBarActions.displayName = "AppBarActions";
|
|
3419
3434
|
|
|
3420
3435
|
// src/components/file-upload.tsx
|
|
3421
|
-
import * as
|
|
3436
|
+
import * as React58 from "react";
|
|
3422
3437
|
import { File, Loader2, TriangleAlert as TriangleAlert3, Upload, X as X7 } from "lucide-react";
|
|
3423
3438
|
import { jsx as jsx63, jsxs as jsxs34 } from "react/jsx-runtime";
|
|
3424
3439
|
function formatBytes(bytes) {
|
|
@@ -3432,10 +3447,10 @@ function formatBytes(bytes) {
|
|
|
3432
3447
|
}
|
|
3433
3448
|
return `${v.toFixed(v < 10 && i > 0 ? 1 : 0)} ${units[i]}`;
|
|
3434
3449
|
}
|
|
3435
|
-
var FileUpload =
|
|
3450
|
+
var FileUpload = React58.forwardRef(
|
|
3436
3451
|
({ className, multiple, accept, disabled, helperText, buttonLabel = "Browse files", files = [], onFilesSelected, onRemove, onRetry, ...props }, ref) => {
|
|
3437
|
-
const inputRef =
|
|
3438
|
-
const [dragging, setDragging] =
|
|
3452
|
+
const inputRef = React58.useRef(null);
|
|
3453
|
+
const [dragging, setDragging] = React58.useState(false);
|
|
3439
3454
|
const pick = (list) => {
|
|
3440
3455
|
if (!list || !list.length) return;
|
|
3441
3456
|
onFilesSelected?.(Array.from(list));
|
|
@@ -3468,7 +3483,7 @@ var FileUpload = React57.forwardRef(
|
|
|
3468
3483
|
"flex flex-col items-center gap-2 rounded-md border border-dashed border-input p-6 text-center outline-none transition-colors",
|
|
3469
3484
|
!disabled && "cursor-pointer hover:bg-accent/50 focus-visible:shadow-focus",
|
|
3470
3485
|
dragging && "border-primary bg-accent",
|
|
3471
|
-
disabled && "pointer-events-none opacity-
|
|
3486
|
+
disabled && "pointer-events-none opacity-disabled"
|
|
3472
3487
|
),
|
|
3473
3488
|
children: [
|
|
3474
3489
|
/* @__PURE__ */ jsx63(Upload, { className: "size-6 text-muted-foreground", "aria-hidden": true }),
|
|
@@ -3549,13 +3564,13 @@ function FileUploadItem({ file, onRemove, onRetry }) {
|
|
|
3549
3564
|
FileUploadItem.displayName = "FileUploadItem";
|
|
3550
3565
|
|
|
3551
3566
|
// src/components/date-picker.tsx
|
|
3552
|
-
import * as
|
|
3567
|
+
import * as React59 from "react";
|
|
3553
3568
|
import { CalendarIcon } from "lucide-react";
|
|
3554
3569
|
import { format } from "date-fns";
|
|
3555
3570
|
import { jsx as jsx64, jsxs as jsxs35 } from "react/jsx-runtime";
|
|
3556
|
-
var DatePicker =
|
|
3571
|
+
var DatePicker = React59.forwardRef(
|
|
3557
3572
|
({ value, onChange, placeholder = "Select date", label, helperText, error, disabled, className, formatStr = "PP", calendarProps }, ref) => {
|
|
3558
|
-
const [open, setOpen] =
|
|
3573
|
+
const [open, setOpen] = React59.useState(false);
|
|
3559
3574
|
return /* @__PURE__ */ jsxs35("div", { className: cn("flex flex-col gap-1.5 font-sans", className), children: [
|
|
3560
3575
|
label && /* @__PURE__ */ jsx64("label", { className: "text-label-md font-medium text-foreground", children: label }),
|
|
3561
3576
|
/* @__PURE__ */ jsxs35(Popover, { open, onOpenChange: setOpen, children: [
|
|
@@ -3593,14 +3608,14 @@ var DatePicker = React58.forwardRef(
|
|
|
3593
3608
|
DatePicker.displayName = "DatePicker";
|
|
3594
3609
|
|
|
3595
3610
|
// src/components/code-block.tsx
|
|
3596
|
-
import * as
|
|
3611
|
+
import * as React60 from "react";
|
|
3597
3612
|
import { Check as Check7, Copy } from "lucide-react";
|
|
3598
3613
|
import { jsx as jsx65, jsxs as jsxs36 } from "react/jsx-runtime";
|
|
3599
|
-
var CodeBlock =
|
|
3614
|
+
var CodeBlock = React60.forwardRef(
|
|
3600
3615
|
({ className, code, language, filename, files, hideCopy, ...props }, ref) => {
|
|
3601
3616
|
const tabs = files && files.length > 0 ? files : [{ name: filename ?? language ?? "", code: code ?? "" }];
|
|
3602
|
-
const [active, setActive] =
|
|
3603
|
-
const [copied, setCopied] =
|
|
3617
|
+
const [active, setActive] = React60.useState(0);
|
|
3618
|
+
const [copied, setCopied] = React60.useState(false);
|
|
3604
3619
|
const current = tabs[active] ?? tabs[0];
|
|
3605
3620
|
const hasHeader = tabs.length > 1 || !!current.name;
|
|
3606
3621
|
const copy = async () => {
|
|
@@ -3656,10 +3671,10 @@ var CodeBlock = React59.forwardRef(
|
|
|
3656
3671
|
CodeBlock.displayName = "CodeBlock";
|
|
3657
3672
|
|
|
3658
3673
|
// src/components/metric.tsx
|
|
3659
|
-
import * as
|
|
3674
|
+
import * as React61 from "react";
|
|
3660
3675
|
import { ArrowDown, ArrowUp } from "lucide-react";
|
|
3661
3676
|
import { jsx as jsx66, jsxs as jsxs37 } from "react/jsx-runtime";
|
|
3662
|
-
var Metric =
|
|
3677
|
+
var Metric = React61.forwardRef(
|
|
3663
3678
|
({ className, label, value, trend, change, icon, chart, ...props }, ref) => /* @__PURE__ */ jsxs37("div", { ref, className: cn("flex flex-col gap-2 rounded-md border border-input p-4 font-sans", className), ...props, children: [
|
|
3664
3679
|
/* @__PURE__ */ jsxs37("div", { className: "flex items-center justify-between", children: [
|
|
3665
3680
|
/* @__PURE__ */ jsx66("p", { className: "text-body-sm text-muted-foreground", children: label }),
|
|
@@ -3690,12 +3705,12 @@ var Metric = React60.forwardRef(
|
|
|
3690
3705
|
Metric.displayName = "Metric";
|
|
3691
3706
|
|
|
3692
3707
|
// src/components/number-input.tsx
|
|
3693
|
-
import * as
|
|
3708
|
+
import * as React62 from "react";
|
|
3694
3709
|
import { Minus as Minus3, Plus } from "lucide-react";
|
|
3695
3710
|
import { jsx as jsx67, jsxs as jsxs38 } from "react/jsx-runtime";
|
|
3696
|
-
var NumberInput =
|
|
3711
|
+
var NumberInput = React62.forwardRef(
|
|
3697
3712
|
({ className, value, defaultValue = 0, min, max, step = 1, onChange, disabled, ...props }, ref) => {
|
|
3698
|
-
const [internal, setInternal] =
|
|
3713
|
+
const [internal, setInternal] = React62.useState(defaultValue);
|
|
3699
3714
|
const current = value ?? internal;
|
|
3700
3715
|
const clamp = (n) => {
|
|
3701
3716
|
let v = n;
|
|
@@ -3713,7 +3728,7 @@ var NumberInput = React61.forwardRef(
|
|
|
3713
3728
|
{
|
|
3714
3729
|
className: cn(
|
|
3715
3730
|
"flex h-10 items-stretch overflow-hidden rounded-md border border-input font-sans focus-within:shadow-focus",
|
|
3716
|
-
disabled && "pointer-events-none opacity-
|
|
3731
|
+
disabled && "pointer-events-none opacity-disabled",
|
|
3717
3732
|
className
|
|
3718
3733
|
),
|
|
3719
3734
|
children: [
|
|
@@ -3724,7 +3739,7 @@ var NumberInput = React61.forwardRef(
|
|
|
3724
3739
|
"aria-label": "Decrease",
|
|
3725
3740
|
disabled: disabled || min != null && current <= min,
|
|
3726
3741
|
onClick: () => set(current - step),
|
|
3727
|
-
className: "flex w-9 shrink-0 items-center justify-center text-muted-foreground outline-none transition-colors hover:bg-accent hover:text-foreground focus-visible:bg-accent focus-visible:text-foreground focus-visible:ring-1 focus-visible:ring-inset focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-
|
|
3742
|
+
className: "flex w-9 shrink-0 items-center justify-center text-muted-foreground outline-none transition-colors hover:bg-accent hover:text-foreground focus-visible:bg-accent focus-visible:text-foreground focus-visible:ring-1 focus-visible:ring-inset focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-disabled",
|
|
3728
3743
|
children: /* @__PURE__ */ jsx67(Minus3, { className: "size-4" })
|
|
3729
3744
|
}
|
|
3730
3745
|
),
|
|
@@ -3754,7 +3769,7 @@ var NumberInput = React61.forwardRef(
|
|
|
3754
3769
|
"aria-label": "Increase",
|
|
3755
3770
|
disabled: disabled || max != null && current >= max,
|
|
3756
3771
|
onClick: () => set(current + step),
|
|
3757
|
-
className: "flex w-9 shrink-0 items-center justify-center text-muted-foreground outline-none transition-colors hover:bg-accent hover:text-foreground focus-visible:bg-accent focus-visible:text-foreground focus-visible:ring-1 focus-visible:ring-inset focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-
|
|
3772
|
+
className: "flex w-9 shrink-0 items-center justify-center text-muted-foreground outline-none transition-colors hover:bg-accent hover:text-foreground focus-visible:bg-accent focus-visible:text-foreground focus-visible:ring-1 focus-visible:ring-inset focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-disabled",
|
|
3758
3773
|
children: /* @__PURE__ */ jsx67(Plus, { className: "size-4" })
|
|
3759
3774
|
}
|
|
3760
3775
|
)
|
|
@@ -3766,9 +3781,9 @@ var NumberInput = React61.forwardRef(
|
|
|
3766
3781
|
NumberInput.displayName = "NumberInput";
|
|
3767
3782
|
|
|
3768
3783
|
// src/components/quote.tsx
|
|
3769
|
-
import * as
|
|
3784
|
+
import * as React63 from "react";
|
|
3770
3785
|
import { jsx as jsx68, jsxs as jsxs39 } from "react/jsx-runtime";
|
|
3771
|
-
var Quote =
|
|
3786
|
+
var Quote = React63.forwardRef(
|
|
3772
3787
|
({ className, author, authorTitle, avatar, children, ...props }, ref) => /* @__PURE__ */ jsxs39("figure", { ref, className: cn("flex flex-col gap-4 font-sans", className), ...props, children: [
|
|
3773
3788
|
/* @__PURE__ */ jsxs39("blockquote", { className: "text-title-md font-medium text-foreground", children: [
|
|
3774
3789
|
"\u201C",
|
|
@@ -3787,20 +3802,20 @@ var Quote = React62.forwardRef(
|
|
|
3787
3802
|
Quote.displayName = "Quote";
|
|
3788
3803
|
|
|
3789
3804
|
// src/components/footer.tsx
|
|
3790
|
-
import * as
|
|
3805
|
+
import * as React64 from "react";
|
|
3791
3806
|
import { jsx as jsx69, jsxs as jsxs40 } from "react/jsx-runtime";
|
|
3792
|
-
var Footer =
|
|
3807
|
+
var Footer = React64.forwardRef(
|
|
3793
3808
|
({ className, children, ...props }, ref) => /* @__PURE__ */ jsx69("footer", { ref, className: cn("w-full border-t border-border bg-background px-6 py-10 font-sans", className), ...props, children })
|
|
3794
3809
|
);
|
|
3795
3810
|
Footer.displayName = "Footer";
|
|
3796
|
-
var FooterColumn =
|
|
3811
|
+
var FooterColumn = React64.forwardRef(
|
|
3797
3812
|
({ className, title, children, ...props }, ref) => /* @__PURE__ */ jsxs40("div", { ref, className: cn("flex flex-col gap-3", className), ...props, children: [
|
|
3798
3813
|
/* @__PURE__ */ jsx69("p", { className: "text-label-md font-medium text-foreground", children: title }),
|
|
3799
3814
|
/* @__PURE__ */ jsx69("div", { className: "flex flex-col gap-2", children })
|
|
3800
3815
|
] })
|
|
3801
3816
|
);
|
|
3802
3817
|
FooterColumn.displayName = "FooterColumn";
|
|
3803
|
-
var FooterLink =
|
|
3818
|
+
var FooterLink = React64.forwardRef(
|
|
3804
3819
|
({ className, ...props }, ref) => /* @__PURE__ */ jsx69(
|
|
3805
3820
|
"a",
|
|
3806
3821
|
{
|
|
@@ -3814,7 +3829,7 @@ var FooterLink = React63.forwardRef(
|
|
|
3814
3829
|
)
|
|
3815
3830
|
);
|
|
3816
3831
|
FooterLink.displayName = "FooterLink";
|
|
3817
|
-
var FooterBottom =
|
|
3832
|
+
var FooterBottom = React64.forwardRef(
|
|
3818
3833
|
({ className, ...props }, ref) => /* @__PURE__ */ jsx69(
|
|
3819
3834
|
"div",
|
|
3820
3835
|
{
|
|
@@ -3830,9 +3845,9 @@ var FooterBottom = React63.forwardRef(
|
|
|
3830
3845
|
FooterBottom.displayName = "FooterBottom";
|
|
3831
3846
|
|
|
3832
3847
|
// src/components/table-of-contents.tsx
|
|
3833
|
-
import * as
|
|
3848
|
+
import * as React65 from "react";
|
|
3834
3849
|
import { jsx as jsx70 } from "react/jsx-runtime";
|
|
3835
|
-
var TableOfContents =
|
|
3850
|
+
var TableOfContents = React65.forwardRef(
|
|
3836
3851
|
({ className, items, active, ...props }, ref) => /* @__PURE__ */ jsx70("nav", { ref, "aria-label": "Table of contents", className: cn("flex flex-col gap-0.5 font-sans", className), ...props, children: items.map((item) => {
|
|
3837
3852
|
const isActive = item.id === active;
|
|
3838
3853
|
return /* @__PURE__ */ jsx70(
|