@kinetixui/ui 0.12.0 → 0.13.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 +21 -1
- package/dist/index.js +634 -621
- package/package.json +3 -2
- package/src/components/alert.tsx +1 -1
- package/src/components/app-bar.tsx +2 -2
- package/src/components/dialog.tsx +3 -2
- package/src/components/direction-provider.tsx +27 -0
- package/src/components/drawer.tsx +1 -1
- package/src/components/dropdown-menu.tsx +9 -9
- package/src/components/input-group.tsx +2 -2
- package/src/components/kanban-board.tsx +2 -1
- package/src/components/native-select.tsx +2 -2
- package/src/components/select.tsx +2 -2
- package/src/components/sheet.tsx +5 -2
- package/src/index.ts +4 -0
package/dist/index.js
CHANGED
|
@@ -235,7 +235,7 @@ import * as React5 from "react";
|
|
|
235
235
|
import { cva as cva4 } from "class-variance-authority";
|
|
236
236
|
import { jsx as jsx5 } from "react/jsx-runtime";
|
|
237
237
|
var alertVariants = cva4(
|
|
238
|
-
"relative w-full rounded-lg border px-4 py-3 text-sm font-sans [&>svg+div]:translate-y-[-3px] [&>svg]:absolute [&>svg]:
|
|
238
|
+
"relative w-full rounded-lg border px-4 py-3 text-sm font-sans [&>svg+div]:translate-y-[-3px] [&>svg]:absolute [&>svg]:start-4 [&>svg]:top-4 [&>svg]:text-foreground [&>svg~*]:ps-7",
|
|
239
239
|
{
|
|
240
240
|
variants: {
|
|
241
241
|
variant: {
|
|
@@ -337,11 +337,18 @@ AlertDialogCancel.displayName = AlertDialogPrimitive.Cancel.displayName;
|
|
|
337
337
|
import * as AspectRatioPrimitive from "@radix-ui/react-aspect-ratio";
|
|
338
338
|
var AspectRatio = AspectRatioPrimitive.Root;
|
|
339
339
|
|
|
340
|
+
// src/components/direction-provider.tsx
|
|
341
|
+
import { DirectionProvider as RadixDirectionProvider } from "@radix-ui/react-direction";
|
|
342
|
+
import { jsx as jsx7 } from "react/jsx-runtime";
|
|
343
|
+
function KinetixDirectionProvider({ dir, children }) {
|
|
344
|
+
return /* @__PURE__ */ jsx7(RadixDirectionProvider, { dir, children });
|
|
345
|
+
}
|
|
346
|
+
|
|
340
347
|
// src/components/avatar.tsx
|
|
341
348
|
import * as React7 from "react";
|
|
342
349
|
import * as AvatarPrimitive from "@radix-ui/react-avatar";
|
|
343
|
-
import { jsx as
|
|
344
|
-
var Avatar = React7.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
350
|
+
import { jsx as jsx8, jsxs as jsxs3 } from "react/jsx-runtime";
|
|
351
|
+
var Avatar = React7.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx8(
|
|
345
352
|
AvatarPrimitive.Root,
|
|
346
353
|
{
|
|
347
354
|
ref,
|
|
@@ -350,9 +357,9 @@ var Avatar = React7.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
|
350
357
|
}
|
|
351
358
|
));
|
|
352
359
|
Avatar.displayName = AvatarPrimitive.Root.displayName;
|
|
353
|
-
var AvatarImage = React7.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
360
|
+
var AvatarImage = React7.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx8(AvatarPrimitive.Image, { ref, className: cn("aspect-square size-full", className), ...props }));
|
|
354
361
|
AvatarImage.displayName = AvatarPrimitive.Image.displayName;
|
|
355
|
-
var AvatarFallback = React7.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
362
|
+
var AvatarFallback = React7.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx8(
|
|
356
363
|
AvatarPrimitive.Fallback,
|
|
357
364
|
{
|
|
358
365
|
ref,
|
|
@@ -370,8 +377,8 @@ var AvatarGroup = React7.forwardRef(
|
|
|
370
377
|
const visible = max ? items.slice(0, max) : items;
|
|
371
378
|
const overflow = max ? items.length - max : 0;
|
|
372
379
|
return /* @__PURE__ */ jsxs3("div", { ref, className: cn("flex -space-x-2", className), ...props, children: [
|
|
373
|
-
visible.map((child, i) => /* @__PURE__ */
|
|
374
|
-
overflow > 0 && /* @__PURE__ */
|
|
380
|
+
visible.map((child, i) => /* @__PURE__ */ jsx8("div", { className: "rounded-full ring-2 ring-background", children: child }, i)),
|
|
381
|
+
overflow > 0 && /* @__PURE__ */ jsx8("div", { className: "rounded-full ring-2 ring-background", children: /* @__PURE__ */ jsx8(Avatar, { children: /* @__PURE__ */ jsxs3(AvatarFallback, { children: [
|
|
375
382
|
"+",
|
|
376
383
|
overflow
|
|
377
384
|
] }) }) })
|
|
@@ -384,7 +391,7 @@ AvatarGroup.displayName = "AvatarGroup";
|
|
|
384
391
|
import * as React8 from "react";
|
|
385
392
|
import { Slot as Slot2 } from "@radix-ui/react-slot";
|
|
386
393
|
import { cva as cva5 } from "class-variance-authority";
|
|
387
|
-
import { jsx as
|
|
394
|
+
import { jsx as jsx9 } from "react/jsx-runtime";
|
|
388
395
|
var badgeVariants = cva5(
|
|
389
396
|
"inline-flex items-center rounded-full px-2.5 py-1 text-xs font-medium font-sans tracking-[0.5px] transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2",
|
|
390
397
|
{
|
|
@@ -403,7 +410,7 @@ var badgeVariants = cva5(
|
|
|
403
410
|
var Badge = React8.forwardRef(
|
|
404
411
|
({ className, variant, asChild = false, ...props }, ref) => {
|
|
405
412
|
const Comp = asChild ? Slot2 : "div";
|
|
406
|
-
return /* @__PURE__ */
|
|
413
|
+
return /* @__PURE__ */ jsx9(Comp, { ref, className: cn(badgeVariants({ variant }), className), ...props });
|
|
407
414
|
}
|
|
408
415
|
);
|
|
409
416
|
Badge.displayName = "Badge";
|
|
@@ -412,13 +419,13 @@ Badge.displayName = "Badge";
|
|
|
412
419
|
import * as React9 from "react";
|
|
413
420
|
import { Slot as Slot3 } from "@radix-ui/react-slot";
|
|
414
421
|
import { ChevronRight, MoreHorizontal } from "lucide-react";
|
|
415
|
-
import { jsx as
|
|
422
|
+
import { jsx as jsx10, jsxs as jsxs4 } from "react/jsx-runtime";
|
|
416
423
|
var Breadcrumb = React9.forwardRef(
|
|
417
|
-
({ ...props }, ref) => /* @__PURE__ */
|
|
424
|
+
({ ...props }, ref) => /* @__PURE__ */ jsx10("nav", { ref, "aria-label": "breadcrumb", className: "font-sans", ...props })
|
|
418
425
|
);
|
|
419
426
|
Breadcrumb.displayName = "Breadcrumb";
|
|
420
427
|
var BreadcrumbList = React9.forwardRef(
|
|
421
|
-
({ className, ...props }, ref) => /* @__PURE__ */
|
|
428
|
+
({ className, ...props }, ref) => /* @__PURE__ */ jsx10(
|
|
422
429
|
"ol",
|
|
423
430
|
{
|
|
424
431
|
ref,
|
|
@@ -429,16 +436,16 @@ var BreadcrumbList = React9.forwardRef(
|
|
|
429
436
|
);
|
|
430
437
|
BreadcrumbList.displayName = "BreadcrumbList";
|
|
431
438
|
var BreadcrumbItem = React9.forwardRef(
|
|
432
|
-
({ className, ...props }, ref) => /* @__PURE__ */
|
|
439
|
+
({ className, ...props }, ref) => /* @__PURE__ */ jsx10("li", { ref, className: cn("inline-flex items-center gap-1.5", className), ...props })
|
|
433
440
|
);
|
|
434
441
|
BreadcrumbItem.displayName = "BreadcrumbItem";
|
|
435
442
|
var BreadcrumbLink = React9.forwardRef(({ asChild, className, ...props }, ref) => {
|
|
436
443
|
const Comp = asChild ? Slot3 : "a";
|
|
437
|
-
return /* @__PURE__ */
|
|
444
|
+
return /* @__PURE__ */ jsx10(Comp, { ref, className: cn("transition-colors hover:text-foreground", className), ...props });
|
|
438
445
|
});
|
|
439
446
|
BreadcrumbLink.displayName = "BreadcrumbLink";
|
|
440
447
|
var BreadcrumbPage = React9.forwardRef(
|
|
441
|
-
({ className, ...props }, ref) => /* @__PURE__ */
|
|
448
|
+
({ className, ...props }, ref) => /* @__PURE__ */ jsx10(
|
|
442
449
|
"span",
|
|
443
450
|
{
|
|
444
451
|
ref,
|
|
@@ -451,19 +458,19 @@ var BreadcrumbPage = React9.forwardRef(
|
|
|
451
458
|
)
|
|
452
459
|
);
|
|
453
460
|
BreadcrumbPage.displayName = "BreadcrumbPage";
|
|
454
|
-
var BreadcrumbSeparator = ({ children, className, ...props }) => /* @__PURE__ */
|
|
461
|
+
var BreadcrumbSeparator = ({ children, className, ...props }) => /* @__PURE__ */ jsx10("li", { role: "presentation", "aria-hidden": true, className: cn("[&>svg]:size-3.5", className), ...props, children: children ?? /* @__PURE__ */ jsx10(ChevronRight, {}) });
|
|
455
462
|
BreadcrumbSeparator.displayName = "BreadcrumbSeparator";
|
|
456
463
|
var BreadcrumbEllipsis = ({ className, ...props }) => /* @__PURE__ */ jsxs4("span", { role: "presentation", "aria-hidden": true, className: cn("flex size-9 items-center justify-center", className), ...props, children: [
|
|
457
|
-
/* @__PURE__ */
|
|
458
|
-
/* @__PURE__ */
|
|
464
|
+
/* @__PURE__ */ jsx10(MoreHorizontal, { className: "size-4" }),
|
|
465
|
+
/* @__PURE__ */ jsx10("span", { className: "sr-only", children: "More" })
|
|
459
466
|
] });
|
|
460
467
|
BreadcrumbEllipsis.displayName = "BreadcrumbEllipsis";
|
|
461
468
|
|
|
462
469
|
// src/components/card.tsx
|
|
463
470
|
import * as React10 from "react";
|
|
464
|
-
import { jsx as
|
|
471
|
+
import { jsx as jsx11 } from "react/jsx-runtime";
|
|
465
472
|
var Card = React10.forwardRef(
|
|
466
|
-
({ className, ...props }, ref) => /* @__PURE__ */
|
|
473
|
+
({ className, ...props }, ref) => /* @__PURE__ */ jsx11(
|
|
467
474
|
"div",
|
|
468
475
|
{
|
|
469
476
|
ref,
|
|
@@ -474,23 +481,23 @@ var Card = React10.forwardRef(
|
|
|
474
481
|
);
|
|
475
482
|
Card.displayName = "Card";
|
|
476
483
|
var CardHeader = React10.forwardRef(
|
|
477
|
-
({ className, ...props }, ref) => /* @__PURE__ */
|
|
484
|
+
({ className, ...props }, ref) => /* @__PURE__ */ jsx11("div", { ref, className: cn("flex flex-col space-y-1.5 p-6", className), ...props })
|
|
478
485
|
);
|
|
479
486
|
CardHeader.displayName = "CardHeader";
|
|
480
487
|
var CardTitle = React10.forwardRef(
|
|
481
|
-
({ className, ...props }, ref) => /* @__PURE__ */
|
|
488
|
+
({ className, ...props }, ref) => /* @__PURE__ */ jsx11("div", { ref, className: cn("font-semibold leading-none tracking-tight", className), ...props })
|
|
482
489
|
);
|
|
483
490
|
CardTitle.displayName = "CardTitle";
|
|
484
491
|
var CardDescription = React10.forwardRef(
|
|
485
|
-
({ className, ...props }, ref) => /* @__PURE__ */
|
|
492
|
+
({ className, ...props }, ref) => /* @__PURE__ */ jsx11("div", { ref, className: cn("text-sm text-muted-foreground", className), ...props })
|
|
486
493
|
);
|
|
487
494
|
CardDescription.displayName = "CardDescription";
|
|
488
495
|
var CardContent = React10.forwardRef(
|
|
489
|
-
({ className, ...props }, ref) => /* @__PURE__ */
|
|
496
|
+
({ className, ...props }, ref) => /* @__PURE__ */ jsx11("div", { ref, className: cn("p-6 pt-0", className), ...props })
|
|
490
497
|
);
|
|
491
498
|
CardContent.displayName = "CardContent";
|
|
492
499
|
var CardFooter = React10.forwardRef(
|
|
493
|
-
({ className, ...props }, ref) => /* @__PURE__ */
|
|
500
|
+
({ className, ...props }, ref) => /* @__PURE__ */ jsx11("div", { ref, className: cn("flex items-center p-6 pt-0", className), ...props })
|
|
494
501
|
);
|
|
495
502
|
CardFooter.displayName = "CardFooter";
|
|
496
503
|
|
|
@@ -498,8 +505,8 @@ CardFooter.displayName = "CardFooter";
|
|
|
498
505
|
import * as React11 from "react";
|
|
499
506
|
import * as CheckboxPrimitive from "@radix-ui/react-checkbox";
|
|
500
507
|
import { Check, Minus } from "lucide-react";
|
|
501
|
-
import { jsx as
|
|
502
|
-
var Checkbox = React11.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
508
|
+
import { jsx as jsx12 } from "react/jsx-runtime";
|
|
509
|
+
var Checkbox = React11.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx12(
|
|
503
510
|
CheckboxPrimitive.Root,
|
|
504
511
|
{
|
|
505
512
|
ref,
|
|
@@ -513,7 +520,7 @@ var Checkbox = React11.forwardRef(({ className, ...props }, ref) => /* @__PURE__
|
|
|
513
520
|
className
|
|
514
521
|
),
|
|
515
522
|
...props,
|
|
516
|
-
children: /* @__PURE__ */
|
|
523
|
+
children: /* @__PURE__ */ jsx12(CheckboxPrimitive.Indicator, { className: "flex items-center justify-center text-current", children: props.checked === "indeterminate" ? /* @__PURE__ */ jsx12(Minus, { className: "size-3" }) : /* @__PURE__ */ jsx12(Check, { className: "size-3", strokeWidth: 3 }) })
|
|
517
524
|
}
|
|
518
525
|
));
|
|
519
526
|
Checkbox.displayName = CheckboxPrimitive.Root.displayName;
|
|
@@ -528,12 +535,12 @@ var CollapsibleContent2 = CollapsiblePrimitive.CollapsibleContent;
|
|
|
528
535
|
import * as React12 from "react";
|
|
529
536
|
import * as DialogPrimitive from "@radix-ui/react-dialog";
|
|
530
537
|
import { X } from "lucide-react";
|
|
531
|
-
import { jsx as
|
|
538
|
+
import { jsx as jsx13, jsxs as jsxs5 } from "react/jsx-runtime";
|
|
532
539
|
var Dialog = DialogPrimitive.Root;
|
|
533
540
|
var DialogTrigger = DialogPrimitive.Trigger;
|
|
534
541
|
var DialogPortal = DialogPrimitive.Portal;
|
|
535
542
|
var DialogClose = DialogPrimitive.Close;
|
|
536
|
-
var DialogOverlay = React12.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
543
|
+
var DialogOverlay = React12.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx13(
|
|
537
544
|
DialogPrimitive.Overlay,
|
|
538
545
|
{
|
|
539
546
|
ref,
|
|
@@ -546,12 +553,13 @@ var DialogOverlay = React12.forwardRef(({ className, ...props }, ref) => /* @__P
|
|
|
546
553
|
));
|
|
547
554
|
DialogOverlay.displayName = DialogPrimitive.Overlay.displayName;
|
|
548
555
|
var DialogContent = React12.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs5(DialogPortal, { children: [
|
|
549
|
-
/* @__PURE__ */
|
|
556
|
+
/* @__PURE__ */ jsx13(DialogOverlay, {}),
|
|
550
557
|
/* @__PURE__ */ jsxs5(
|
|
551
558
|
DialogPrimitive.Content,
|
|
552
559
|
{
|
|
553
560
|
ref,
|
|
554
561
|
className: cn(
|
|
562
|
+
// rtl-ok: centering trick (left-1/2 + -translate-x-1/2), direction-agnostic by construction
|
|
555
563
|
"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",
|
|
556
564
|
"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",
|
|
557
565
|
className
|
|
@@ -559,18 +567,18 @@ var DialogContent = React12.forwardRef(({ className, children, ...props }, ref)
|
|
|
559
567
|
...props,
|
|
560
568
|
children: [
|
|
561
569
|
children,
|
|
562
|
-
/* @__PURE__ */ jsxs5(DialogPrimitive.Close, { className: "absolute
|
|
563
|
-
/* @__PURE__ */
|
|
564
|
-
/* @__PURE__ */
|
|
570
|
+
/* @__PURE__ */ jsxs5(DialogPrimitive.Close, { className: "absolute end-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: [
|
|
571
|
+
/* @__PURE__ */ jsx13(X, { className: "size-4" }),
|
|
572
|
+
/* @__PURE__ */ jsx13("span", { className: "sr-only", children: "Close" })
|
|
565
573
|
] })
|
|
566
574
|
]
|
|
567
575
|
}
|
|
568
576
|
)
|
|
569
577
|
] }));
|
|
570
578
|
DialogContent.displayName = DialogPrimitive.Content.displayName;
|
|
571
|
-
var DialogHeader = ({ className, ...props }) => /* @__PURE__ */
|
|
579
|
+
var DialogHeader = ({ className, ...props }) => /* @__PURE__ */ jsx13("div", { className: cn("flex flex-col space-y-1.5 text-center sm:text-start", className), ...props });
|
|
572
580
|
DialogHeader.displayName = "DialogHeader";
|
|
573
|
-
var DialogFooter = ({ className, ...props }) => /* @__PURE__ */
|
|
581
|
+
var DialogFooter = ({ className, ...props }) => /* @__PURE__ */ jsx13(
|
|
574
582
|
"div",
|
|
575
583
|
{
|
|
576
584
|
className: cn("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2", className),
|
|
@@ -578,7 +586,7 @@ var DialogFooter = ({ className, ...props }) => /* @__PURE__ */ jsx12(
|
|
|
578
586
|
}
|
|
579
587
|
);
|
|
580
588
|
DialogFooter.displayName = "DialogFooter";
|
|
581
|
-
var DialogTitle = React12.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
589
|
+
var DialogTitle = React12.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx13(
|
|
582
590
|
DialogPrimitive.Title,
|
|
583
591
|
{
|
|
584
592
|
ref,
|
|
@@ -587,7 +595,7 @@ var DialogTitle = React12.forwardRef(({ className, ...props }, ref) => /* @__PUR
|
|
|
587
595
|
}
|
|
588
596
|
));
|
|
589
597
|
DialogTitle.displayName = DialogPrimitive.Title.displayName;
|
|
590
|
-
var DialogDescription = React12.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
598
|
+
var DialogDescription = React12.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx13(
|
|
591
599
|
DialogPrimitive.Description,
|
|
592
600
|
{
|
|
593
601
|
ref,
|
|
@@ -601,7 +609,7 @@ DialogDescription.displayName = DialogPrimitive.Description.displayName;
|
|
|
601
609
|
import * as React13 from "react";
|
|
602
610
|
import * as DropdownMenuPrimitive from "@radix-ui/react-dropdown-menu";
|
|
603
611
|
import { Check as Check2, ChevronRight as ChevronRight2, Circle } from "lucide-react";
|
|
604
|
-
import { jsx as
|
|
612
|
+
import { jsx as jsx14, jsxs as jsxs6 } from "react/jsx-runtime";
|
|
605
613
|
var DropdownMenu = DropdownMenuPrimitive.Root;
|
|
606
614
|
var DropdownMenuTrigger = DropdownMenuPrimitive.Trigger;
|
|
607
615
|
var DropdownMenuGroup = DropdownMenuPrimitive.Group;
|
|
@@ -610,56 +618,56 @@ var DropdownMenuSub = DropdownMenuPrimitive.Sub;
|
|
|
610
618
|
var DropdownMenuRadioGroup = DropdownMenuPrimitive.RadioGroup;
|
|
611
619
|
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
620
|
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__ */
|
|
621
|
+
var DropdownMenuContent = React13.forwardRef(({ className, sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsx14(DropdownMenuPrimitive.Portal, { children: /* @__PURE__ */ jsx14(DropdownMenuPrimitive.Content, { ref, sideOffset, className: cn(contentCls, className), ...props }) }));
|
|
614
622
|
DropdownMenuContent.displayName = DropdownMenuPrimitive.Content.displayName;
|
|
615
|
-
var DropdownMenuItem = React13.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */
|
|
623
|
+
var DropdownMenuItem = React13.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx14(DropdownMenuPrimitive.Item, { ref, className: cn(itemCls, inset && "ps-8", className), ...props }));
|
|
616
624
|
DropdownMenuItem.displayName = DropdownMenuPrimitive.Item.displayName;
|
|
617
|
-
var DropdownMenuCheckboxItem = React13.forwardRef(({ className, children, checked, ...props }, ref) => /* @__PURE__ */ jsxs6(DropdownMenuPrimitive.CheckboxItem, { ref, className: cn(itemCls, "
|
|
618
|
-
/* @__PURE__ */
|
|
625
|
+
var DropdownMenuCheckboxItem = React13.forwardRef(({ className, children, checked, ...props }, ref) => /* @__PURE__ */ jsxs6(DropdownMenuPrimitive.CheckboxItem, { ref, className: cn(itemCls, "ps-8", className), checked, ...props, children: [
|
|
626
|
+
/* @__PURE__ */ jsx14("span", { className: "absolute start-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ jsx14(DropdownMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx14(Check2, { className: "size-4" }) }) }),
|
|
619
627
|
children
|
|
620
628
|
] }));
|
|
621
629
|
DropdownMenuCheckboxItem.displayName = DropdownMenuPrimitive.CheckboxItem.displayName;
|
|
622
|
-
var DropdownMenuRadioItem = React13.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs6(DropdownMenuPrimitive.RadioItem, { ref, className: cn(itemCls, "
|
|
623
|
-
/* @__PURE__ */
|
|
630
|
+
var DropdownMenuRadioItem = React13.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs6(DropdownMenuPrimitive.RadioItem, { ref, className: cn(itemCls, "ps-8", className), ...props, children: [
|
|
631
|
+
/* @__PURE__ */ jsx14("span", { className: "absolute start-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ jsx14(DropdownMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx14(Circle, { className: "size-2 fill-current" }) }) }),
|
|
624
632
|
children
|
|
625
633
|
] }));
|
|
626
634
|
DropdownMenuRadioItem.displayName = DropdownMenuPrimitive.RadioItem.displayName;
|
|
627
|
-
var DropdownMenuLabel = React13.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */
|
|
635
|
+
var DropdownMenuLabel = React13.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx14(
|
|
628
636
|
DropdownMenuPrimitive.Label,
|
|
629
637
|
{
|
|
630
638
|
ref,
|
|
631
|
-
className: cn("px-2 py-1.5 text-sm font-semibold", inset && "
|
|
639
|
+
className: cn("px-2 py-1.5 text-sm font-semibold", inset && "ps-8", className),
|
|
632
640
|
...props
|
|
633
641
|
}
|
|
634
642
|
));
|
|
635
643
|
DropdownMenuLabel.displayName = DropdownMenuPrimitive.Label.displayName;
|
|
636
|
-
var DropdownMenuSeparator = React13.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
644
|
+
var DropdownMenuSeparator = React13.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx14(DropdownMenuPrimitive.Separator, { ref, className: cn("-mx-1 my-1 h-px bg-muted", className), ...props }));
|
|
637
645
|
DropdownMenuSeparator.displayName = DropdownMenuPrimitive.Separator.displayName;
|
|
638
|
-
var DropdownMenuShortcut = ({ className, ...props }) => /* @__PURE__ */
|
|
646
|
+
var DropdownMenuShortcut = ({ className, ...props }) => /* @__PURE__ */ jsx14("span", { className: cn("ms-auto text-xs tracking-widest opacity-60", className), ...props });
|
|
639
647
|
DropdownMenuShortcut.displayName = "DropdownMenuShortcut";
|
|
640
648
|
var DropdownMenuSubTrigger = React13.forwardRef(({ className, inset, children, ...props }, ref) => /* @__PURE__ */ jsxs6(
|
|
641
649
|
DropdownMenuPrimitive.SubTrigger,
|
|
642
650
|
{
|
|
643
651
|
ref,
|
|
644
|
-
className: cn(itemCls, "data-[state=open]:bg-accent", inset && "
|
|
652
|
+
className: cn(itemCls, "data-[state=open]:bg-accent", inset && "ps-8", className),
|
|
645
653
|
...props,
|
|
646
654
|
children: [
|
|
647
655
|
children,
|
|
648
|
-
/* @__PURE__ */
|
|
656
|
+
/* @__PURE__ */ jsx14(ChevronRight2, { className: "ms-auto size-4 rtl:-scale-x-100" })
|
|
649
657
|
]
|
|
650
658
|
}
|
|
651
659
|
));
|
|
652
660
|
DropdownMenuSubTrigger.displayName = DropdownMenuPrimitive.SubTrigger.displayName;
|
|
653
|
-
var DropdownMenuSubContent = React13.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
661
|
+
var DropdownMenuSubContent = React13.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx14(DropdownMenuPrimitive.SubContent, { ref, className: cn(contentCls, className), ...props }));
|
|
654
662
|
DropdownMenuSubContent.displayName = DropdownMenuPrimitive.SubContent.displayName;
|
|
655
663
|
|
|
656
664
|
// src/components/hover-card.tsx
|
|
657
665
|
import * as React14 from "react";
|
|
658
666
|
import * as HoverCardPrimitive from "@radix-ui/react-hover-card";
|
|
659
|
-
import { jsx as
|
|
667
|
+
import { jsx as jsx15 } from "react/jsx-runtime";
|
|
660
668
|
var HoverCard = HoverCardPrimitive.Root;
|
|
661
669
|
var HoverCardTrigger = HoverCardPrimitive.Trigger;
|
|
662
|
-
var HoverCardContent = React14.forwardRef(({ className, align = "center", sideOffset = 4, ...props }, ref) => /* @__PURE__ */
|
|
670
|
+
var HoverCardContent = React14.forwardRef(({ className, align = "center", sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsx15(
|
|
663
671
|
HoverCardPrimitive.Content,
|
|
664
672
|
{
|
|
665
673
|
ref,
|
|
@@ -679,18 +687,18 @@ HoverCardContent.displayName = HoverCardPrimitive.Content.displayName;
|
|
|
679
687
|
import * as React15 from "react";
|
|
680
688
|
import * as LabelPrimitive from "@radix-ui/react-label";
|
|
681
689
|
import { cva as cva6 } from "class-variance-authority";
|
|
682
|
-
import { jsx as
|
|
690
|
+
import { jsx as jsx16 } from "react/jsx-runtime";
|
|
683
691
|
var labelVariants = cva6(
|
|
684
692
|
"text-sm font-medium leading-none font-sans peer-disabled:cursor-not-allowed peer-disabled:opacity-muted"
|
|
685
693
|
);
|
|
686
|
-
var Label2 = React15.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
694
|
+
var Label2 = React15.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx16(LabelPrimitive.Root, { ref, className: cn(labelVariants(), className), ...props }));
|
|
687
695
|
Label2.displayName = LabelPrimitive.Root.displayName;
|
|
688
696
|
|
|
689
697
|
// src/components/pagination.tsx
|
|
690
698
|
import * as React16 from "react";
|
|
691
699
|
import { ChevronLeft, ChevronRight as ChevronRight3, MoreHorizontal as MoreHorizontal2 } from "lucide-react";
|
|
692
|
-
import { jsx as
|
|
693
|
-
var Pagination = ({ className, ...props }) => /* @__PURE__ */
|
|
700
|
+
import { jsx as jsx17, jsxs as jsxs7 } from "react/jsx-runtime";
|
|
701
|
+
var Pagination = ({ className, ...props }) => /* @__PURE__ */ jsx17(
|
|
694
702
|
"nav",
|
|
695
703
|
{
|
|
696
704
|
role: "navigation",
|
|
@@ -701,14 +709,14 @@ var Pagination = ({ className, ...props }) => /* @__PURE__ */ jsx16(
|
|
|
701
709
|
);
|
|
702
710
|
Pagination.displayName = "Pagination";
|
|
703
711
|
var PaginationContent = React16.forwardRef(
|
|
704
|
-
({ className, ...props }, ref) => /* @__PURE__ */
|
|
712
|
+
({ className, ...props }, ref) => /* @__PURE__ */ jsx17("ul", { ref, className: cn("flex flex-row items-center gap-1", className), ...props })
|
|
705
713
|
);
|
|
706
714
|
PaginationContent.displayName = "PaginationContent";
|
|
707
715
|
var PaginationItem = React16.forwardRef(
|
|
708
|
-
({ className, ...props }, ref) => /* @__PURE__ */
|
|
716
|
+
({ className, ...props }, ref) => /* @__PURE__ */ jsx17("li", { ref, className: cn("", className), ...props })
|
|
709
717
|
);
|
|
710
718
|
PaginationItem.displayName = "PaginationItem";
|
|
711
|
-
var PaginationLink = ({ className, isActive, ...props }) => /* @__PURE__ */
|
|
719
|
+
var PaginationLink = ({ className, isActive, ...props }) => /* @__PURE__ */ jsx17(
|
|
712
720
|
"a",
|
|
713
721
|
{
|
|
714
722
|
"aria-current": isActive ? "page" : void 0,
|
|
@@ -722,29 +730,29 @@ var PaginationLink = ({ className, isActive, ...props }) => /* @__PURE__ */ jsx1
|
|
|
722
730
|
);
|
|
723
731
|
PaginationLink.displayName = "PaginationLink";
|
|
724
732
|
var PaginationPrevious = ({ className, ...props }) => /* @__PURE__ */ jsxs7(PaginationLink, { "aria-label": "Go to previous page", className: cn("w-auto gap-1 px-2.5", className), ...props, children: [
|
|
725
|
-
/* @__PURE__ */
|
|
726
|
-
/* @__PURE__ */
|
|
733
|
+
/* @__PURE__ */ jsx17(ChevronLeft, { className: "size-4" }),
|
|
734
|
+
/* @__PURE__ */ jsx17("span", { children: "Previous" })
|
|
727
735
|
] });
|
|
728
736
|
PaginationPrevious.displayName = "PaginationPrevious";
|
|
729
737
|
var PaginationNext = ({ className, ...props }) => /* @__PURE__ */ jsxs7(PaginationLink, { "aria-label": "Go to next page", className: cn("w-auto gap-1 px-2.5", className), ...props, children: [
|
|
730
|
-
/* @__PURE__ */
|
|
731
|
-
/* @__PURE__ */
|
|
738
|
+
/* @__PURE__ */ jsx17("span", { children: "Next" }),
|
|
739
|
+
/* @__PURE__ */ jsx17(ChevronRight3, { className: "size-4" })
|
|
732
740
|
] });
|
|
733
741
|
PaginationNext.displayName = "PaginationNext";
|
|
734
742
|
var PaginationEllipsis = ({ className, ...props }) => /* @__PURE__ */ jsxs7("span", { "aria-hidden": true, className: cn("flex size-9 items-center justify-center", className), ...props, children: [
|
|
735
|
-
/* @__PURE__ */
|
|
736
|
-
/* @__PURE__ */
|
|
743
|
+
/* @__PURE__ */ jsx17(MoreHorizontal2, { className: "size-4" }),
|
|
744
|
+
/* @__PURE__ */ jsx17("span", { className: "sr-only", children: "More pages" })
|
|
737
745
|
] });
|
|
738
746
|
PaginationEllipsis.displayName = "PaginationEllipsis";
|
|
739
747
|
|
|
740
748
|
// src/components/popover.tsx
|
|
741
749
|
import * as React17 from "react";
|
|
742
750
|
import * as PopoverPrimitive from "@radix-ui/react-popover";
|
|
743
|
-
import { jsx as
|
|
751
|
+
import { jsx as jsx18 } from "react/jsx-runtime";
|
|
744
752
|
var Popover = PopoverPrimitive.Root;
|
|
745
753
|
var PopoverTrigger = PopoverPrimitive.Trigger;
|
|
746
754
|
var PopoverAnchor = PopoverPrimitive.Anchor;
|
|
747
|
-
var PopoverContent = React17.forwardRef(({ className, align = "center", sideOffset = 4, ...props }, ref) => /* @__PURE__ */
|
|
755
|
+
var PopoverContent = React17.forwardRef(({ className, align = "center", sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsx18(PopoverPrimitive.Portal, { children: /* @__PURE__ */ jsx18(
|
|
748
756
|
PopoverPrimitive.Content,
|
|
749
757
|
{
|
|
750
758
|
ref,
|
|
@@ -764,14 +772,14 @@ PopoverContent.displayName = PopoverPrimitive.Content.displayName;
|
|
|
764
772
|
// src/components/progress.tsx
|
|
765
773
|
import * as React18 from "react";
|
|
766
774
|
import * as ProgressPrimitive from "@radix-ui/react-progress";
|
|
767
|
-
import { jsx as
|
|
768
|
-
var Progress = React18.forwardRef(({ className, value, ...props }, ref) => /* @__PURE__ */
|
|
775
|
+
import { jsx as jsx19 } from "react/jsx-runtime";
|
|
776
|
+
var Progress = React18.forwardRef(({ className, value, ...props }, ref) => /* @__PURE__ */ jsx19(
|
|
769
777
|
ProgressPrimitive.Root,
|
|
770
778
|
{
|
|
771
779
|
ref,
|
|
772
780
|
className: cn("relative h-2 w-full overflow-hidden rounded-full bg-muted", className),
|
|
773
781
|
...props,
|
|
774
|
-
children: /* @__PURE__ */
|
|
782
|
+
children: /* @__PURE__ */ jsx19(
|
|
775
783
|
ProgressPrimitive.Indicator,
|
|
776
784
|
{
|
|
777
785
|
className: "size-full flex-1 bg-primary transition-transform",
|
|
@@ -786,10 +794,10 @@ Progress.displayName = ProgressPrimitive.Root.displayName;
|
|
|
786
794
|
import * as React19 from "react";
|
|
787
795
|
import * as RadioGroupPrimitive from "@radix-ui/react-radio-group";
|
|
788
796
|
import { Circle as Circle2 } from "lucide-react";
|
|
789
|
-
import { jsx as
|
|
790
|
-
var RadioGroup2 = React19.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
797
|
+
import { jsx as jsx20 } from "react/jsx-runtime";
|
|
798
|
+
var RadioGroup2 = React19.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx20(RadioGroupPrimitive.Root, { ref, className: cn("grid gap-3", className), ...props }));
|
|
791
799
|
RadioGroup2.displayName = RadioGroupPrimitive.Root.displayName;
|
|
792
|
-
var RadioGroupItem = React19.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
800
|
+
var RadioGroupItem = React19.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx20(
|
|
793
801
|
RadioGroupPrimitive.Item,
|
|
794
802
|
{
|
|
795
803
|
ref,
|
|
@@ -802,7 +810,7 @@ var RadioGroupItem = React19.forwardRef(({ className, ...props }, ref) => /* @__
|
|
|
802
810
|
className
|
|
803
811
|
),
|
|
804
812
|
...props,
|
|
805
|
-
children: /* @__PURE__ */
|
|
813
|
+
children: /* @__PURE__ */ jsx20(RadioGroupPrimitive.Indicator, { className: "flex items-center justify-center", children: /* @__PURE__ */ jsx20(Circle2, { className: "size-2.5 fill-primary text-primary" }) })
|
|
806
814
|
}
|
|
807
815
|
));
|
|
808
816
|
RadioGroupItem.displayName = RadioGroupPrimitive.Item.displayName;
|
|
@@ -810,14 +818,14 @@ RadioGroupItem.displayName = RadioGroupPrimitive.Item.displayName;
|
|
|
810
818
|
// src/components/scroll-area.tsx
|
|
811
819
|
import * as React20 from "react";
|
|
812
820
|
import * as ScrollAreaPrimitive from "@radix-ui/react-scroll-area";
|
|
813
|
-
import { jsx as
|
|
821
|
+
import { jsx as jsx21, jsxs as jsxs8 } from "react/jsx-runtime";
|
|
814
822
|
var ScrollArea = React20.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs8(ScrollAreaPrimitive.Root, { ref, className: cn("relative overflow-hidden", className), ...props, children: [
|
|
815
|
-
/* @__PURE__ */
|
|
816
|
-
/* @__PURE__ */
|
|
817
|
-
/* @__PURE__ */
|
|
823
|
+
/* @__PURE__ */ jsx21(ScrollAreaPrimitive.Viewport, { className: "size-full rounded-[inherit]", children }),
|
|
824
|
+
/* @__PURE__ */ jsx21(ScrollBar, {}),
|
|
825
|
+
/* @__PURE__ */ jsx21(ScrollAreaPrimitive.Corner, {})
|
|
818
826
|
] }));
|
|
819
827
|
ScrollArea.displayName = ScrollAreaPrimitive.Root.displayName;
|
|
820
|
-
var ScrollBar = React20.forwardRef(({ className, orientation = "vertical", ...props }, ref) => /* @__PURE__ */
|
|
828
|
+
var ScrollBar = React20.forwardRef(({ className, orientation = "vertical", ...props }, ref) => /* @__PURE__ */ jsx21(
|
|
821
829
|
ScrollAreaPrimitive.ScrollAreaScrollbar,
|
|
822
830
|
{
|
|
823
831
|
ref,
|
|
@@ -829,7 +837,7 @@ var ScrollBar = React20.forwardRef(({ className, orientation = "vertical", ...pr
|
|
|
829
837
|
className
|
|
830
838
|
),
|
|
831
839
|
...props,
|
|
832
|
-
children: /* @__PURE__ */
|
|
840
|
+
children: /* @__PURE__ */ jsx21(ScrollAreaPrimitive.ScrollAreaThumb, { className: "relative flex-1 rounded-full bg-border" })
|
|
833
841
|
}
|
|
834
842
|
));
|
|
835
843
|
ScrollBar.displayName = ScrollAreaPrimitive.ScrollAreaScrollbar.displayName;
|
|
@@ -838,7 +846,7 @@ ScrollBar.displayName = ScrollAreaPrimitive.ScrollAreaScrollbar.displayName;
|
|
|
838
846
|
import * as React21 from "react";
|
|
839
847
|
import * as SelectPrimitive from "@radix-ui/react-select";
|
|
840
848
|
import { Check as Check3, ChevronDown as ChevronDown2, ChevronUp } from "lucide-react";
|
|
841
|
-
import { jsx as
|
|
849
|
+
import { jsx as jsx22, jsxs as jsxs9 } from "react/jsx-runtime";
|
|
842
850
|
var Select = SelectPrimitive.Root;
|
|
843
851
|
var SelectGroup = SelectPrimitive.Group;
|
|
844
852
|
var SelectValue = SelectPrimitive.Value;
|
|
@@ -860,12 +868,12 @@ var SelectTrigger = React21.forwardRef(({ className, children, ...props }, ref)
|
|
|
860
868
|
...props,
|
|
861
869
|
children: [
|
|
862
870
|
children,
|
|
863
|
-
/* @__PURE__ */
|
|
871
|
+
/* @__PURE__ */ jsx22(SelectPrimitive.Icon, { asChild: true, children: /* @__PURE__ */ jsx22(ChevronDown2, { className: "size-4 shrink-0 opacity-60" }) })
|
|
864
872
|
]
|
|
865
873
|
}
|
|
866
874
|
));
|
|
867
875
|
SelectTrigger.displayName = SelectPrimitive.Trigger.displayName;
|
|
868
|
-
var SelectContent = React21.forwardRef(({ className, children, position = "popper", ...props }, ref) => /* @__PURE__ */
|
|
876
|
+
var SelectContent = React21.forwardRef(({ className, children, position = "popper", ...props }, ref) => /* @__PURE__ */ jsx22(SelectPrimitive.Portal, { children: /* @__PURE__ */ jsxs9(
|
|
869
877
|
SelectPrimitive.Content,
|
|
870
878
|
{
|
|
871
879
|
ref,
|
|
@@ -878,46 +886,46 @@ var SelectContent = React21.forwardRef(({ className, children, position = "poppe
|
|
|
878
886
|
),
|
|
879
887
|
...props,
|
|
880
888
|
children: [
|
|
881
|
-
/* @__PURE__ */
|
|
882
|
-
/* @__PURE__ */
|
|
889
|
+
/* @__PURE__ */ jsx22(SelectPrimitive.ScrollUpButton, { className: "flex h-6 items-center justify-center", children: /* @__PURE__ */ jsx22(ChevronUp, { className: "size-4" }) }),
|
|
890
|
+
/* @__PURE__ */ jsx22(
|
|
883
891
|
SelectPrimitive.Viewport,
|
|
884
892
|
{
|
|
885
893
|
className: cn("p-1", position === "popper" && "h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]"),
|
|
886
894
|
children
|
|
887
895
|
}
|
|
888
896
|
),
|
|
889
|
-
/* @__PURE__ */
|
|
897
|
+
/* @__PURE__ */ jsx22(SelectPrimitive.ScrollDownButton, { className: "flex h-6 items-center justify-center", children: /* @__PURE__ */ jsx22(ChevronDown2, { className: "size-4" }) })
|
|
890
898
|
]
|
|
891
899
|
}
|
|
892
900
|
) }));
|
|
893
901
|
SelectContent.displayName = SelectPrimitive.Content.displayName;
|
|
894
|
-
var SelectLabel = React21.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
902
|
+
var SelectLabel = React21.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx22(SelectPrimitive.Label, { ref, className: cn("px-2 py-1.5 text-sm font-semibold", className), ...props }));
|
|
895
903
|
SelectLabel.displayName = SelectPrimitive.Label.displayName;
|
|
896
904
|
var SelectItem = React21.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs9(
|
|
897
905
|
SelectPrimitive.Item,
|
|
898
906
|
{
|
|
899
907
|
ref,
|
|
900
908
|
className: cn(
|
|
901
|
-
"relative flex w-full cursor-default select-none items-center rounded-sm py-1.5
|
|
909
|
+
"relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 ps-8 pe-2 text-sm outline-none",
|
|
902
910
|
"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",
|
|
903
911
|
className
|
|
904
912
|
),
|
|
905
913
|
...props,
|
|
906
914
|
children: [
|
|
907
|
-
/* @__PURE__ */
|
|
908
|
-
/* @__PURE__ */
|
|
915
|
+
/* @__PURE__ */ jsx22("span", { className: "absolute start-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ jsx22(SelectPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx22(Check3, { className: "size-4" }) }) }),
|
|
916
|
+
/* @__PURE__ */ jsx22(SelectPrimitive.ItemText, { children })
|
|
909
917
|
]
|
|
910
918
|
}
|
|
911
919
|
));
|
|
912
920
|
SelectItem.displayName = SelectPrimitive.Item.displayName;
|
|
913
|
-
var SelectSeparator = React21.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
921
|
+
var SelectSeparator = React21.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx22(SelectPrimitive.Separator, { ref, className: cn("-mx-1 my-1 h-px bg-muted", className), ...props }));
|
|
914
922
|
SelectSeparator.displayName = SelectPrimitive.Separator.displayName;
|
|
915
923
|
|
|
916
924
|
// src/components/separator.tsx
|
|
917
925
|
import * as React22 from "react";
|
|
918
926
|
import * as SeparatorPrimitive from "@radix-ui/react-separator";
|
|
919
|
-
import { jsx as
|
|
920
|
-
var Separator3 = React22.forwardRef(({ className, orientation = "horizontal", decorative = true, ...props }, ref) => /* @__PURE__ */
|
|
927
|
+
import { jsx as jsx23 } from "react/jsx-runtime";
|
|
928
|
+
var Separator3 = React22.forwardRef(({ className, orientation = "horizontal", decorative = true, ...props }, ref) => /* @__PURE__ */ jsx23(
|
|
921
929
|
SeparatorPrimitive.Root,
|
|
922
930
|
{
|
|
923
931
|
ref,
|
|
@@ -938,12 +946,12 @@ import * as React23 from "react";
|
|
|
938
946
|
import * as SheetPrimitive from "@radix-ui/react-dialog";
|
|
939
947
|
import { cva as cva7 } from "class-variance-authority";
|
|
940
948
|
import { X as X2 } from "lucide-react";
|
|
941
|
-
import { jsx as
|
|
949
|
+
import { jsx as jsx24, jsxs as jsxs10 } from "react/jsx-runtime";
|
|
942
950
|
var Sheet = SheetPrimitive.Root;
|
|
943
951
|
var SheetTrigger = SheetPrimitive.Trigger;
|
|
944
952
|
var SheetClose = SheetPrimitive.Close;
|
|
945
953
|
var SheetPortal = SheetPrimitive.Portal;
|
|
946
|
-
var SheetOverlay = React23.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
954
|
+
var SheetOverlay = React23.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx24(
|
|
947
955
|
SheetPrimitive.Overlay,
|
|
948
956
|
{
|
|
949
957
|
ref,
|
|
@@ -959,40 +967,43 @@ var sheetVariants = cva7(
|
|
|
959
967
|
"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",
|
|
960
968
|
{
|
|
961
969
|
variants: {
|
|
970
|
+
// rtl-ok-start: `side` picks a physical screen edge on purpose (a caller-chosen
|
|
971
|
+
// slide-in direction, not text-direction-relative) — left/right stay physical.
|
|
962
972
|
side: {
|
|
963
973
|
top: "inset-x-0 top-0 border-b data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top",
|
|
964
974
|
bottom: "inset-x-0 bottom-0 border-t data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom",
|
|
965
975
|
left: "inset-y-0 left-0 h-full w-3/4 border-r data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left sm:max-w-sm",
|
|
966
976
|
right: "inset-y-0 right-0 h-full w-3/4 border-l data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right sm:max-w-sm"
|
|
967
977
|
}
|
|
978
|
+
// rtl-ok-end
|
|
968
979
|
},
|
|
969
980
|
defaultVariants: { side: "right" }
|
|
970
981
|
}
|
|
971
982
|
);
|
|
972
983
|
var SheetContent = React23.forwardRef(({ side = "right", className, children, ...props }, ref) => /* @__PURE__ */ jsxs10(SheetPortal, { children: [
|
|
973
|
-
/* @__PURE__ */
|
|
984
|
+
/* @__PURE__ */ jsx24(SheetOverlay, {}),
|
|
974
985
|
/* @__PURE__ */ jsxs10(SheetPrimitive.Content, { ref, className: cn(sheetVariants({ side }), className), ...props, children: [
|
|
975
986
|
children,
|
|
976
|
-
/* @__PURE__ */ jsxs10(SheetPrimitive.Close, { className: "absolute
|
|
977
|
-
/* @__PURE__ */
|
|
978
|
-
/* @__PURE__ */
|
|
987
|
+
/* @__PURE__ */ jsxs10(SheetPrimitive.Close, { className: "absolute end-4 top-4 rounded-sm opacity-muted transition-opacity hover:opacity-visible focus:outline-none focus:ring-2 focus:ring-ring", children: [
|
|
988
|
+
/* @__PURE__ */ jsx24(X2, { className: "size-4" }),
|
|
989
|
+
/* @__PURE__ */ jsx24("span", { className: "sr-only", children: "Close" })
|
|
979
990
|
] })
|
|
980
991
|
] })
|
|
981
992
|
] }));
|
|
982
993
|
SheetContent.displayName = SheetPrimitive.Content.displayName;
|
|
983
|
-
var SheetHeader = ({ className, ...props }) => /* @__PURE__ */
|
|
994
|
+
var SheetHeader = ({ className, ...props }) => /* @__PURE__ */ jsx24("div", { className: cn("flex flex-col space-y-2 text-center sm:text-start", className), ...props });
|
|
984
995
|
SheetHeader.displayName = "SheetHeader";
|
|
985
|
-
var SheetFooter = ({ className, ...props }) => /* @__PURE__ */
|
|
996
|
+
var SheetFooter = ({ className, ...props }) => /* @__PURE__ */ jsx24("div", { className: cn("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2", className), ...props });
|
|
986
997
|
SheetFooter.displayName = "SheetFooter";
|
|
987
|
-
var SheetTitle = React23.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
998
|
+
var SheetTitle = React23.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx24(SheetPrimitive.Title, { ref, className: cn("text-lg font-semibold text-foreground", className), ...props }));
|
|
988
999
|
SheetTitle.displayName = SheetPrimitive.Title.displayName;
|
|
989
|
-
var SheetDescription = React23.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
1000
|
+
var SheetDescription = React23.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx24(SheetPrimitive.Description, { ref, className: cn("text-sm text-muted-foreground", className), ...props }));
|
|
990
1001
|
SheetDescription.displayName = SheetPrimitive.Description.displayName;
|
|
991
1002
|
|
|
992
1003
|
// src/components/modal.tsx
|
|
993
1004
|
import * as DialogPrimitive2 from "@radix-ui/react-dialog";
|
|
994
1005
|
import { X as X3 } from "lucide-react";
|
|
995
|
-
import { jsx as
|
|
1006
|
+
import { jsx as jsx25, jsxs as jsxs11 } from "react/jsx-runtime";
|
|
996
1007
|
var DEFAULT_ACTION = {
|
|
997
1008
|
Info: "Got it",
|
|
998
1009
|
Confirmation: "Confirm",
|
|
@@ -1016,9 +1027,9 @@ function Modal({
|
|
|
1016
1027
|
}) {
|
|
1017
1028
|
const showCancel = type !== "Info";
|
|
1018
1029
|
return /* @__PURE__ */ jsxs11(Dialog, { open, defaultOpen, onOpenChange, children: [
|
|
1019
|
-
trigger && /* @__PURE__ */
|
|
1030
|
+
trigger && /* @__PURE__ */ jsx25(DialogTrigger, { asChild: true, children: trigger }),
|
|
1020
1031
|
/* @__PURE__ */ jsxs11(DialogPortal, { children: [
|
|
1021
|
-
/* @__PURE__ */
|
|
1032
|
+
/* @__PURE__ */ jsx25(DialogOverlay, {}),
|
|
1022
1033
|
/* @__PURE__ */ jsxs11(
|
|
1023
1034
|
DialogPrimitive2.Content,
|
|
1024
1035
|
{
|
|
@@ -1030,25 +1041,25 @@ function Modal({
|
|
|
1030
1041
|
),
|
|
1031
1042
|
children: [
|
|
1032
1043
|
/* @__PURE__ */ jsxs11("header", { className: "flex items-center justify-between px-6 pb-3 pt-5", children: [
|
|
1033
|
-
/* @__PURE__ */
|
|
1034
|
-
/* @__PURE__ */
|
|
1044
|
+
/* @__PURE__ */ jsx25(DialogPrimitive2.Title, { className: "min-w-0 flex-1 text-[18px] font-semibold leading-6 text-foreground", children: title }),
|
|
1045
|
+
/* @__PURE__ */ jsx25(
|
|
1035
1046
|
DialogPrimitive2.Close,
|
|
1036
1047
|
{
|
|
1037
1048
|
className: "rounded-sm opacity-muted outline-none transition-opacity hover:opacity-visible focus-visible:ring-2 focus-visible:ring-ring",
|
|
1038
1049
|
"aria-label": "Close",
|
|
1039
|
-
children: /* @__PURE__ */
|
|
1050
|
+
children: /* @__PURE__ */ jsx25(X3, { className: "size-5" })
|
|
1040
1051
|
}
|
|
1041
1052
|
)
|
|
1042
1053
|
] }),
|
|
1043
|
-
/* @__PURE__ */
|
|
1054
|
+
/* @__PURE__ */ jsx25("div", { className: "h-px w-full bg-border" }),
|
|
1044
1055
|
/* @__PURE__ */ jsxs11("div", { className: "px-6 py-5", children: [
|
|
1045
|
-
description && /* @__PURE__ */
|
|
1056
|
+
description && /* @__PURE__ */ jsx25(DialogPrimitive2.Description, { className: "text-[14px] leading-5 tracking-[0.25px] text-muted-foreground", children: description }),
|
|
1046
1057
|
children
|
|
1047
1058
|
] }),
|
|
1048
|
-
/* @__PURE__ */
|
|
1059
|
+
/* @__PURE__ */ jsx25("div", { className: "h-px w-full bg-border" }),
|
|
1049
1060
|
/* @__PURE__ */ jsxs11("footer", { className: "flex items-center justify-end gap-3 px-6 py-4", children: [
|
|
1050
|
-
showCancel && /* @__PURE__ */
|
|
1051
|
-
/* @__PURE__ */
|
|
1061
|
+
showCancel && /* @__PURE__ */ jsx25(DialogPrimitive2.Close, { asChild: true, children: /* @__PURE__ */ jsx25(Button, { variant: "Outline", size: "lg", onClick: onCancel, children: cancelLabel }) }),
|
|
1062
|
+
/* @__PURE__ */ jsx25(DialogPrimitive2.Close, { asChild: true, children: /* @__PURE__ */ jsx25(
|
|
1052
1063
|
Button,
|
|
1053
1064
|
{
|
|
1054
1065
|
variant: type === "Destructive" ? "Destructive" : "Primary",
|
|
@@ -1066,15 +1077,15 @@ function Modal({
|
|
|
1066
1077
|
}
|
|
1067
1078
|
|
|
1068
1079
|
// src/components/skeleton.tsx
|
|
1069
|
-
import { jsx as
|
|
1080
|
+
import { jsx as jsx26 } from "react/jsx-runtime";
|
|
1070
1081
|
function Skeleton({ className, ...props }) {
|
|
1071
|
-
return /* @__PURE__ */
|
|
1082
|
+
return /* @__PURE__ */ jsx26("div", { className: cn("animate-pulse rounded-md bg-muted", className), ...props });
|
|
1072
1083
|
}
|
|
1073
1084
|
|
|
1074
1085
|
// src/components/slider.tsx
|
|
1075
1086
|
import * as React24 from "react";
|
|
1076
1087
|
import * as SliderPrimitive from "@radix-ui/react-slider";
|
|
1077
|
-
import { jsx as
|
|
1088
|
+
import { jsx as jsx27, jsxs as jsxs12 } from "react/jsx-runtime";
|
|
1078
1089
|
var Slider = React24.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxs12(
|
|
1079
1090
|
SliderPrimitive.Root,
|
|
1080
1091
|
{
|
|
@@ -1082,8 +1093,8 @@ var Slider = React24.forwardRef(({ className, ...props }, ref) => /* @__PURE__ *
|
|
|
1082
1093
|
className: cn("relative flex w-full touch-none select-none items-center", className),
|
|
1083
1094
|
...props,
|
|
1084
1095
|
children: [
|
|
1085
|
-
/* @__PURE__ */
|
|
1086
|
-
/* @__PURE__ */
|
|
1096
|
+
/* @__PURE__ */ jsx27(SliderPrimitive.Track, { className: "relative h-1.5 w-full grow overflow-hidden rounded-full bg-muted", children: /* @__PURE__ */ jsx27(SliderPrimitive.Range, { className: "absolute h-full bg-primary" }) }),
|
|
1097
|
+
/* @__PURE__ */ jsx27(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" })
|
|
1087
1098
|
]
|
|
1088
1099
|
}
|
|
1089
1100
|
));
|
|
@@ -1091,9 +1102,9 @@ Slider.displayName = SliderPrimitive.Root.displayName;
|
|
|
1091
1102
|
|
|
1092
1103
|
// src/components/sonner.tsx
|
|
1093
1104
|
import { Toaster as Sonner, toast } from "sonner";
|
|
1094
|
-
import { jsx as
|
|
1105
|
+
import { jsx as jsx28 } from "react/jsx-runtime";
|
|
1095
1106
|
function Toaster({ theme = "system", ...props }) {
|
|
1096
|
-
return /* @__PURE__ */
|
|
1107
|
+
return /* @__PURE__ */ jsx28(
|
|
1097
1108
|
Sonner,
|
|
1098
1109
|
{
|
|
1099
1110
|
theme,
|
|
@@ -1114,8 +1125,8 @@ function Toaster({ theme = "system", ...props }) {
|
|
|
1114
1125
|
// src/components/switch.tsx
|
|
1115
1126
|
import * as React25 from "react";
|
|
1116
1127
|
import * as SwitchPrimitive from "@radix-ui/react-switch";
|
|
1117
|
-
import { jsx as
|
|
1118
|
-
var Switch = React25.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
1128
|
+
import { jsx as jsx29 } from "react/jsx-runtime";
|
|
1129
|
+
var Switch = React25.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx29(
|
|
1119
1130
|
SwitchPrimitive.Root,
|
|
1120
1131
|
{
|
|
1121
1132
|
ref,
|
|
@@ -1127,7 +1138,7 @@ var Switch = React25.forwardRef(({ className, ...props }, ref) => /* @__PURE__ *
|
|
|
1127
1138
|
className
|
|
1128
1139
|
),
|
|
1129
1140
|
...props,
|
|
1130
|
-
children: /* @__PURE__ */
|
|
1141
|
+
children: /* @__PURE__ */ jsx29(
|
|
1131
1142
|
SwitchPrimitive.Thumb,
|
|
1132
1143
|
{
|
|
1133
1144
|
className: cn(
|
|
@@ -1145,7 +1156,7 @@ import * as React26 from "react";
|
|
|
1145
1156
|
import { Slot as Slot4, Slottable } from "@radix-ui/react-slot";
|
|
1146
1157
|
import { cva as cva8 } from "class-variance-authority";
|
|
1147
1158
|
import { X as X4 } from "lucide-react";
|
|
1148
|
-
import { jsx as
|
|
1159
|
+
import { jsx as jsx30, jsxs as jsxs13 } from "react/jsx-runtime";
|
|
1149
1160
|
var tagVariants = cva8(
|
|
1150
1161
|
"inline-flex items-center gap-1 rounded-sm px-2 py-1 text-xs font-medium font-sans tracking-[0.5px]",
|
|
1151
1162
|
{
|
|
@@ -1164,18 +1175,18 @@ var tagVariants = cva8(
|
|
|
1164
1175
|
var Tag = React26.forwardRef(
|
|
1165
1176
|
({ className, variant, onRemove, children, asChild = false, ...props }, ref) => {
|
|
1166
1177
|
const Comp = asChild ? Slot4 : "span";
|
|
1167
|
-
const removeButton = onRemove && /* @__PURE__ */
|
|
1178
|
+
const removeButton = onRemove && /* @__PURE__ */ jsx30(
|
|
1168
1179
|
"button",
|
|
1169
1180
|
{
|
|
1170
1181
|
type: "button",
|
|
1171
1182
|
onClick: onRemove,
|
|
1172
1183
|
"aria-label": "Remove",
|
|
1173
1184
|
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",
|
|
1174
|
-
children: /* @__PURE__ */
|
|
1185
|
+
children: /* @__PURE__ */ jsx30(X4, { className: "size-3.5" })
|
|
1175
1186
|
}
|
|
1176
1187
|
);
|
|
1177
1188
|
return /* @__PURE__ */ jsxs13(Comp, { ref, className: cn(tagVariants({ variant }), className), ...props, children: [
|
|
1178
|
-
asChild ? /* @__PURE__ */
|
|
1189
|
+
asChild ? /* @__PURE__ */ jsx30(Slottable, { children }) : children,
|
|
1179
1190
|
removeButton
|
|
1180
1191
|
] });
|
|
1181
1192
|
}
|
|
@@ -1184,25 +1195,25 @@ Tag.displayName = "Tag";
|
|
|
1184
1195
|
|
|
1185
1196
|
// src/components/table.tsx
|
|
1186
1197
|
import * as React27 from "react";
|
|
1187
|
-
import { jsx as
|
|
1198
|
+
import { jsx as jsx31 } from "react/jsx-runtime";
|
|
1188
1199
|
var Table = React27.forwardRef(
|
|
1189
|
-
({ className, ...props }, ref) => /* @__PURE__ */
|
|
1200
|
+
({ className, ...props }, ref) => /* @__PURE__ */ jsx31("div", { className: "relative w-full overflow-auto", children: /* @__PURE__ */ jsx31("table", { ref, className: cn("w-full caption-bottom text-sm font-sans", className), ...props }) })
|
|
1190
1201
|
);
|
|
1191
1202
|
Table.displayName = "Table";
|
|
1192
1203
|
var TableHeader = React27.forwardRef(
|
|
1193
|
-
({ className, ...props }, ref) => /* @__PURE__ */
|
|
1204
|
+
({ className, ...props }, ref) => /* @__PURE__ */ jsx31("thead", { ref, className: cn("[&_tr]:border-b", className), ...props })
|
|
1194
1205
|
);
|
|
1195
1206
|
TableHeader.displayName = "TableHeader";
|
|
1196
1207
|
var TableBody = React27.forwardRef(
|
|
1197
|
-
({ className, ...props }, ref) => /* @__PURE__ */
|
|
1208
|
+
({ className, ...props }, ref) => /* @__PURE__ */ jsx31("tbody", { ref, className: cn("[&_tr:last-child]:border-0", className), ...props })
|
|
1198
1209
|
);
|
|
1199
1210
|
TableBody.displayName = "TableBody";
|
|
1200
1211
|
var TableFooter = React27.forwardRef(
|
|
1201
|
-
({ className, ...props }, ref) => /* @__PURE__ */
|
|
1212
|
+
({ className, ...props }, ref) => /* @__PURE__ */ jsx31("tfoot", { ref, className: cn("border-t bg-muted/50 font-medium [&>tr]:last:border-b-0", className), ...props })
|
|
1202
1213
|
);
|
|
1203
1214
|
TableFooter.displayName = "TableFooter";
|
|
1204
1215
|
var TableRow = React27.forwardRef(
|
|
1205
|
-
({ className, ...props }, ref) => /* @__PURE__ */
|
|
1216
|
+
({ className, ...props }, ref) => /* @__PURE__ */ jsx31(
|
|
1206
1217
|
"tr",
|
|
1207
1218
|
{
|
|
1208
1219
|
ref,
|
|
@@ -1213,7 +1224,7 @@ var TableRow = React27.forwardRef(
|
|
|
1213
1224
|
);
|
|
1214
1225
|
TableRow.displayName = "TableRow";
|
|
1215
1226
|
var TableHead = React27.forwardRef(
|
|
1216
|
-
({ className, ...props }, ref) => /* @__PURE__ */
|
|
1227
|
+
({ className, ...props }, ref) => /* @__PURE__ */ jsx31(
|
|
1217
1228
|
"th",
|
|
1218
1229
|
{
|
|
1219
1230
|
ref,
|
|
@@ -1224,20 +1235,20 @@ var TableHead = React27.forwardRef(
|
|
|
1224
1235
|
);
|
|
1225
1236
|
TableHead.displayName = "TableHead";
|
|
1226
1237
|
var TableCell = React27.forwardRef(
|
|
1227
|
-
({ className, ...props }, ref) => /* @__PURE__ */
|
|
1238
|
+
({ className, ...props }, ref) => /* @__PURE__ */ jsx31("td", { ref, className: cn("p-2 align-middle [&:has([role=checkbox])]:pr-0", className), ...props })
|
|
1228
1239
|
);
|
|
1229
1240
|
TableCell.displayName = "TableCell";
|
|
1230
1241
|
var TableCaption = React27.forwardRef(
|
|
1231
|
-
({ className, ...props }, ref) => /* @__PURE__ */
|
|
1242
|
+
({ className, ...props }, ref) => /* @__PURE__ */ jsx31("caption", { ref, className: cn("mt-4 text-sm text-muted-foreground", className), ...props })
|
|
1232
1243
|
);
|
|
1233
1244
|
TableCaption.displayName = "TableCaption";
|
|
1234
1245
|
|
|
1235
1246
|
// src/components/tabs.tsx
|
|
1236
1247
|
import * as React28 from "react";
|
|
1237
1248
|
import * as TabsPrimitive from "@radix-ui/react-tabs";
|
|
1238
|
-
import { jsx as
|
|
1249
|
+
import { jsx as jsx32 } from "react/jsx-runtime";
|
|
1239
1250
|
var Tabs = TabsPrimitive.Root;
|
|
1240
|
-
var TabsList = React28.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
1251
|
+
var TabsList = React28.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx32(
|
|
1241
1252
|
TabsPrimitive.List,
|
|
1242
1253
|
{
|
|
1243
1254
|
ref,
|
|
@@ -1249,7 +1260,7 @@ var TabsList = React28.forwardRef(({ className, ...props }, ref) => /* @__PURE__
|
|
|
1249
1260
|
}
|
|
1250
1261
|
));
|
|
1251
1262
|
TabsList.displayName = TabsPrimitive.List.displayName;
|
|
1252
|
-
var TabsTrigger = React28.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
1263
|
+
var TabsTrigger = React28.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx32(
|
|
1253
1264
|
TabsPrimitive.Trigger,
|
|
1254
1265
|
{
|
|
1255
1266
|
ref,
|
|
@@ -1264,7 +1275,7 @@ var TabsTrigger = React28.forwardRef(({ className, ...props }, ref) => /* @__PUR
|
|
|
1264
1275
|
}
|
|
1265
1276
|
));
|
|
1266
1277
|
TabsTrigger.displayName = TabsPrimitive.Trigger.displayName;
|
|
1267
|
-
var TabsContent = React28.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
1278
|
+
var TabsContent = React28.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx32(
|
|
1268
1279
|
TabsPrimitive.Content,
|
|
1269
1280
|
{
|
|
1270
1281
|
ref,
|
|
@@ -1278,7 +1289,7 @@ TabsContent.displayName = TabsPrimitive.Content.displayName;
|
|
|
1278
1289
|
import * as React29 from "react";
|
|
1279
1290
|
import * as TogglePrimitive from "@radix-ui/react-toggle";
|
|
1280
1291
|
import { cva as cva9 } from "class-variance-authority";
|
|
1281
|
-
import { jsx as
|
|
1292
|
+
import { jsx as jsx33 } from "react/jsx-runtime";
|
|
1282
1293
|
var toggleVariants = cva9(
|
|
1283
1294
|
"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",
|
|
1284
1295
|
{
|
|
@@ -1296,22 +1307,22 @@ var toggleVariants = cva9(
|
|
|
1296
1307
|
defaultVariants: { variant: "default", size: "default" }
|
|
1297
1308
|
}
|
|
1298
1309
|
);
|
|
1299
|
-
var Toggle = React29.forwardRef(({ className, variant, size, ...props }, ref) => /* @__PURE__ */
|
|
1310
|
+
var Toggle = React29.forwardRef(({ className, variant, size, ...props }, ref) => /* @__PURE__ */ jsx33(TogglePrimitive.Root, { ref, className: cn(toggleVariants({ variant, size }), className), ...props }));
|
|
1300
1311
|
Toggle.displayName = TogglePrimitive.Root.displayName;
|
|
1301
1312
|
|
|
1302
1313
|
// src/components/toggle-group.tsx
|
|
1303
1314
|
import * as React30 from "react";
|
|
1304
1315
|
import * as ToggleGroupPrimitive from "@radix-ui/react-toggle-group";
|
|
1305
|
-
import { jsx as
|
|
1316
|
+
import { jsx as jsx34 } from "react/jsx-runtime";
|
|
1306
1317
|
var ToggleGroupContext = React30.createContext({
|
|
1307
1318
|
size: "default",
|
|
1308
1319
|
variant: "default"
|
|
1309
1320
|
});
|
|
1310
|
-
var ToggleGroup = React30.forwardRef(({ className, variant, size, children, ...props }, ref) => /* @__PURE__ */
|
|
1321
|
+
var ToggleGroup = React30.forwardRef(({ className, variant, size, children, ...props }, ref) => /* @__PURE__ */ jsx34(ToggleGroupPrimitive.Root, { ref, className: cn("flex items-center gap-1", className), ...props, children: /* @__PURE__ */ jsx34(ToggleGroupContext.Provider, { value: { variant, size }, children }) }));
|
|
1311
1322
|
ToggleGroup.displayName = ToggleGroupPrimitive.Root.displayName;
|
|
1312
1323
|
var ToggleGroupItem = React30.forwardRef(({ className, children, variant, size, ...props }, ref) => {
|
|
1313
1324
|
const ctx = React30.useContext(ToggleGroupContext);
|
|
1314
|
-
return /* @__PURE__ */
|
|
1325
|
+
return /* @__PURE__ */ jsx34(
|
|
1315
1326
|
ToggleGroupPrimitive.Item,
|
|
1316
1327
|
{
|
|
1317
1328
|
ref,
|
|
@@ -1326,11 +1337,11 @@ ToggleGroupItem.displayName = ToggleGroupPrimitive.Item.displayName;
|
|
|
1326
1337
|
// src/components/tooltip.tsx
|
|
1327
1338
|
import * as React31 from "react";
|
|
1328
1339
|
import * as TooltipPrimitive from "@radix-ui/react-tooltip";
|
|
1329
|
-
import { jsx as
|
|
1340
|
+
import { jsx as jsx35 } from "react/jsx-runtime";
|
|
1330
1341
|
var TooltipProvider = TooltipPrimitive.Provider;
|
|
1331
1342
|
var Tooltip = TooltipPrimitive.Root;
|
|
1332
1343
|
var TooltipTrigger = TooltipPrimitive.Trigger;
|
|
1333
|
-
var TooltipContent = React31.forwardRef(({ className, sideOffset = 4, ...props }, ref) => /* @__PURE__ */
|
|
1344
|
+
var TooltipContent = React31.forwardRef(({ className, sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsx35(TooltipPrimitive.Portal, { children: /* @__PURE__ */ jsx35(
|
|
1334
1345
|
TooltipPrimitive.Content,
|
|
1335
1346
|
{
|
|
1336
1347
|
ref,
|
|
@@ -1349,9 +1360,9 @@ TooltipContent.displayName = TooltipPrimitive.Content.displayName;
|
|
|
1349
1360
|
// src/components/calendar.tsx
|
|
1350
1361
|
import { ChevronLeft as ChevronLeft2, ChevronRight as ChevronRight4 } from "lucide-react";
|
|
1351
1362
|
import { DayPicker } from "react-day-picker";
|
|
1352
|
-
import { jsx as
|
|
1363
|
+
import { jsx as jsx36 } from "react/jsx-runtime";
|
|
1353
1364
|
function Calendar({ className, classNames, showOutsideDays = true, ...props }) {
|
|
1354
|
-
return /* @__PURE__ */
|
|
1365
|
+
return /* @__PURE__ */ jsx36(
|
|
1355
1366
|
DayPicker,
|
|
1356
1367
|
{
|
|
1357
1368
|
showOutsideDays,
|
|
@@ -1400,7 +1411,7 @@ function Calendar({ className, classNames, showOutsideDays = true, ...props }) {
|
|
|
1400
1411
|
...classNames
|
|
1401
1412
|
},
|
|
1402
1413
|
components: {
|
|
1403
|
-
Chevron: ({ orientation, className: chevronClassName }) => orientation === "right" ? /* @__PURE__ */
|
|
1414
|
+
Chevron: ({ orientation, className: chevronClassName }) => orientation === "right" ? /* @__PURE__ */ jsx36(ChevronRight4, { className: cn("size-4", chevronClassName) }) : /* @__PURE__ */ jsx36(ChevronLeft2, { className: cn("size-4", chevronClassName) })
|
|
1404
1415
|
},
|
|
1405
1416
|
...props
|
|
1406
1417
|
}
|
|
@@ -1412,7 +1423,7 @@ Calendar.displayName = "Calendar";
|
|
|
1412
1423
|
import * as React32 from "react";
|
|
1413
1424
|
import useEmblaCarousel from "embla-carousel-react";
|
|
1414
1425
|
import { ArrowLeft, ArrowRight } from "lucide-react";
|
|
1415
|
-
import { jsx as
|
|
1426
|
+
import { jsx as jsx37, jsxs as jsxs14 } from "react/jsx-runtime";
|
|
1416
1427
|
var CarouselContext = React32.createContext(null);
|
|
1417
1428
|
function useCarousel() {
|
|
1418
1429
|
const context = React32.useContext(CarouselContext);
|
|
@@ -1445,11 +1456,11 @@ var Carousel = React32.forwardRef(({ orientation = "horizontal", opts, setApi, p
|
|
|
1445
1456
|
api?.off("select", onSelect);
|
|
1446
1457
|
};
|
|
1447
1458
|
}, [api, onSelect]);
|
|
1448
|
-
return /* @__PURE__ */
|
|
1459
|
+
return /* @__PURE__ */ jsx37(
|
|
1449
1460
|
CarouselContext.Provider,
|
|
1450
1461
|
{
|
|
1451
1462
|
value: { carouselRef, api, opts, orientation, scrollPrev, scrollNext, canScrollPrev, canScrollNext },
|
|
1452
|
-
children: /* @__PURE__ */
|
|
1463
|
+
children: /* @__PURE__ */ jsx37(
|
|
1453
1464
|
"div",
|
|
1454
1465
|
{
|
|
1455
1466
|
ref,
|
|
@@ -1476,7 +1487,7 @@ Carousel.displayName = "Carousel";
|
|
|
1476
1487
|
var CarouselContent = React32.forwardRef(
|
|
1477
1488
|
({ className, ...props }, ref) => {
|
|
1478
1489
|
const { carouselRef, orientation } = useCarousel();
|
|
1479
|
-
return /* @__PURE__ */
|
|
1490
|
+
return /* @__PURE__ */ jsx37("div", { ref: carouselRef, className: "overflow-hidden", children: /* @__PURE__ */ jsx37(
|
|
1480
1491
|
"div",
|
|
1481
1492
|
{
|
|
1482
1493
|
ref,
|
|
@@ -1490,7 +1501,7 @@ CarouselContent.displayName = "CarouselContent";
|
|
|
1490
1501
|
var CarouselItem = React32.forwardRef(
|
|
1491
1502
|
({ className, ...props }, ref) => {
|
|
1492
1503
|
const { orientation } = useCarousel();
|
|
1493
|
-
return /* @__PURE__ */
|
|
1504
|
+
return /* @__PURE__ */ jsx37(
|
|
1494
1505
|
"div",
|
|
1495
1506
|
{
|
|
1496
1507
|
ref,
|
|
@@ -1521,8 +1532,8 @@ var CarouselPrevious = React32.forwardRef(
|
|
|
1521
1532
|
onClick: scrollPrev,
|
|
1522
1533
|
...props,
|
|
1523
1534
|
children: [
|
|
1524
|
-
/* @__PURE__ */
|
|
1525
|
-
/* @__PURE__ */
|
|
1535
|
+
/* @__PURE__ */ jsx37(ArrowLeft, { className: "size-4" }),
|
|
1536
|
+
/* @__PURE__ */ jsx37("span", { className: "sr-only", children: "Previous slide" })
|
|
1526
1537
|
]
|
|
1527
1538
|
}
|
|
1528
1539
|
);
|
|
@@ -1547,8 +1558,8 @@ var CarouselNext = React32.forwardRef(
|
|
|
1547
1558
|
onClick: scrollNext,
|
|
1548
1559
|
...props,
|
|
1549
1560
|
children: [
|
|
1550
|
-
/* @__PURE__ */
|
|
1551
|
-
/* @__PURE__ */
|
|
1561
|
+
/* @__PURE__ */ jsx37(ArrowRight, { className: "size-4" }),
|
|
1562
|
+
/* @__PURE__ */ jsx37("span", { className: "sr-only", children: "Next slide" })
|
|
1552
1563
|
]
|
|
1553
1564
|
}
|
|
1554
1565
|
);
|
|
@@ -1559,7 +1570,7 @@ CarouselNext.displayName = "CarouselNext";
|
|
|
1559
1570
|
// src/components/chart.tsx
|
|
1560
1571
|
import * as React33 from "react";
|
|
1561
1572
|
import * as RechartsPrimitive from "recharts";
|
|
1562
|
-
import { jsx as
|
|
1573
|
+
import { jsx as jsx38, jsxs as jsxs15 } from "react/jsx-runtime";
|
|
1563
1574
|
var THEMES = { light: "", dark: ".dark" };
|
|
1564
1575
|
var ChartContext = React33.createContext(null);
|
|
1565
1576
|
function useChart() {
|
|
@@ -1604,7 +1615,7 @@ var ChartContainer = React33.forwardRef(({
|
|
|
1604
1615
|
mo.observe(el, { childList: true, subtree: true });
|
|
1605
1616
|
return () => mo.disconnect();
|
|
1606
1617
|
}, [name]);
|
|
1607
|
-
return /* @__PURE__ */
|
|
1618
|
+
return /* @__PURE__ */ jsx38(ChartContext.Provider, { value: { config }, children: /* @__PURE__ */ jsxs15(
|
|
1608
1619
|
"div",
|
|
1609
1620
|
{
|
|
1610
1621
|
"data-chart": chartId,
|
|
@@ -1617,9 +1628,9 @@ var ChartContainer = React33.forwardRef(({
|
|
|
1617
1628
|
),
|
|
1618
1629
|
...props,
|
|
1619
1630
|
children: [
|
|
1620
|
-
/* @__PURE__ */
|
|
1621
|
-
state ? /* @__PURE__ */
|
|
1622
|
-
srTable && !state ? /* @__PURE__ */
|
|
1631
|
+
/* @__PURE__ */ jsx38(ChartStyle, { id: chartId, config }),
|
|
1632
|
+
state ? /* @__PURE__ */ jsx38(ChartState, { state, message: stateMessage }) : /* @__PURE__ */ jsx38(RechartsPrimitive.ResponsiveContainer, { children }),
|
|
1633
|
+
srTable && !state ? /* @__PURE__ */ jsx38(ChartSrTable, { ...srTable }) : null
|
|
1623
1634
|
]
|
|
1624
1635
|
}
|
|
1625
1636
|
) });
|
|
@@ -1643,15 +1654,15 @@ function ChartState({
|
|
|
1643
1654
|
state === "error" ? "border-destructive/40 text-destructive" : "border-border text-muted-foreground"
|
|
1644
1655
|
),
|
|
1645
1656
|
children: [
|
|
1646
|
-
state === "loading" ? /* @__PURE__ */
|
|
1657
|
+
state === "loading" ? /* @__PURE__ */ jsx38("div", { "aria-hidden": true, className: "flex w-full max-w-[220px] items-end justify-between gap-1.5", children: [40, 72, 56, 88, 48, 64, 80].map((h, i) => /* @__PURE__ */ jsx38(
|
|
1647
1658
|
"span",
|
|
1648
1659
|
{
|
|
1649
1660
|
className: "w-full animate-pulse rounded-sm bg-muted",
|
|
1650
1661
|
style: { height: `${h}px`, animationDelay: `${i * 90}ms` }
|
|
1651
1662
|
},
|
|
1652
1663
|
i
|
|
1653
|
-
)) }) : /* @__PURE__ */
|
|
1654
|
-
/* @__PURE__ */
|
|
1664
|
+
)) }) : /* @__PURE__ */ jsx38("svg", { "aria-hidden": true, viewBox: "0 0 24 24", className: "size-5", fill: "none", stroke: "currentColor", strokeWidth: 1.5, children: state === "empty" ? /* @__PURE__ */ jsx38("path", { d: "M3 3v18h18M7 15l4-4 3 3 5-6", strokeLinecap: "round", strokeLinejoin: "round" }) : /* @__PURE__ */ jsx38("path", { d: "M12 9v4m0 4h.01M10.3 3.86 1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.7 3.86a2 2 0 0 0-3.42 0Z", strokeLinecap: "round", strokeLinejoin: "round" }) }),
|
|
1665
|
+
/* @__PURE__ */ jsx38("span", { children: message ?? STATE_COPY[state] })
|
|
1655
1666
|
]
|
|
1656
1667
|
}
|
|
1657
1668
|
);
|
|
@@ -1661,8 +1672,8 @@ function ChartSrTable({
|
|
|
1661
1672
|
rows
|
|
1662
1673
|
}) {
|
|
1663
1674
|
return /* @__PURE__ */ jsxs15("table", { className: "sr-only", children: [
|
|
1664
|
-
/* @__PURE__ */
|
|
1665
|
-
/* @__PURE__ */
|
|
1675
|
+
/* @__PURE__ */ jsx38("thead", { children: /* @__PURE__ */ jsx38("tr", { children: columns.map((c, i) => /* @__PURE__ */ jsx38("th", { scope: "col", children: c }, i)) }) }),
|
|
1676
|
+
/* @__PURE__ */ jsx38("tbody", { children: rows.map((r, i) => /* @__PURE__ */ jsx38("tr", { children: r.map((cell, j) => /* @__PURE__ */ jsx38("td", { children: cell }, j)) }, i)) })
|
|
1666
1677
|
] });
|
|
1667
1678
|
}
|
|
1668
1679
|
var cssIdent = (s) => String(s).replace(/[^\w-]/g, "");
|
|
@@ -1671,7 +1682,7 @@ var ChartStyle = ({ id, config }) => {
|
|
|
1671
1682
|
const colorConfig = Object.entries(config).filter(([, c]) => c.theme || c.color);
|
|
1672
1683
|
if (!colorConfig.length) return null;
|
|
1673
1684
|
const chartSelector = cssIdent(id);
|
|
1674
|
-
return /* @__PURE__ */
|
|
1685
|
+
return /* @__PURE__ */ jsx38(
|
|
1675
1686
|
"style",
|
|
1676
1687
|
{
|
|
1677
1688
|
dangerouslySetInnerHTML: {
|
|
@@ -1704,13 +1715,13 @@ var ChartTooltipContent = React33.forwardRef(
|
|
|
1704
1715
|
className
|
|
1705
1716
|
),
|
|
1706
1717
|
children: [
|
|
1707
|
-
!hideLabel && /* @__PURE__ */
|
|
1708
|
-
/* @__PURE__ */
|
|
1718
|
+
!hideLabel && /* @__PURE__ */ jsx38("div", { className: "font-medium", children: labelFormatter ? labelFormatter(label, payload) : label }),
|
|
1719
|
+
/* @__PURE__ */ jsx38("div", { className: "grid gap-1.5", children: payload.map((item, i) => {
|
|
1709
1720
|
const key = `${item.name || item.dataKey || "value"}`;
|
|
1710
1721
|
const itemConfig = config[key];
|
|
1711
1722
|
const indicatorColor = item.payload?.fill || item.color;
|
|
1712
1723
|
return /* @__PURE__ */ jsxs15("div", { className: "flex w-full items-center gap-2", children: [
|
|
1713
|
-
!hideIndicator && /* @__PURE__ */
|
|
1724
|
+
!hideIndicator && /* @__PURE__ */ jsx38(
|
|
1714
1725
|
"div",
|
|
1715
1726
|
{
|
|
1716
1727
|
className: cn("shrink-0 rounded-[2px]", {
|
|
@@ -1722,8 +1733,8 @@ var ChartTooltipContent = React33.forwardRef(
|
|
|
1722
1733
|
}
|
|
1723
1734
|
),
|
|
1724
1735
|
/* @__PURE__ */ jsxs15("div", { className: "flex flex-1 justify-between leading-none", children: [
|
|
1725
|
-
/* @__PURE__ */
|
|
1726
|
-
item.value != null && /* @__PURE__ */
|
|
1736
|
+
/* @__PURE__ */ jsx38("span", { className: "text-muted-foreground", children: itemConfig?.label || item.name }),
|
|
1737
|
+
item.value != null && /* @__PURE__ */ jsx38("span", { className: "font-mono font-medium tabular-nums text-foreground", children: formatter ? formatter(item.value, item.name, item, i, payload) : item.value.toLocaleString() })
|
|
1727
1738
|
] })
|
|
1728
1739
|
] }, key + i);
|
|
1729
1740
|
}) })
|
|
@@ -1737,7 +1748,7 @@ var ChartLegend = RechartsPrimitive.Legend;
|
|
|
1737
1748
|
var ChartLegendContent = React33.forwardRef(({ className, payload, verticalAlign = "bottom" }, ref) => {
|
|
1738
1749
|
const { config } = useChart();
|
|
1739
1750
|
if (!payload?.length) return null;
|
|
1740
|
-
return /* @__PURE__ */
|
|
1751
|
+
return /* @__PURE__ */ jsx38(
|
|
1741
1752
|
"div",
|
|
1742
1753
|
{
|
|
1743
1754
|
ref,
|
|
@@ -1746,7 +1757,7 @@ var ChartLegendContent = React33.forwardRef(({ className, payload, verticalAlign
|
|
|
1746
1757
|
const key = `${item.dataKey || "value"}`;
|
|
1747
1758
|
const itemConfig = config[key];
|
|
1748
1759
|
return /* @__PURE__ */ jsxs15("div", { className: "flex items-center gap-1.5", children: [
|
|
1749
|
-
/* @__PURE__ */
|
|
1760
|
+
/* @__PURE__ */ jsx38("div", { className: "size-2 shrink-0 rounded-[2px]", style: { backgroundColor: item.color } }),
|
|
1750
1761
|
itemConfig?.label || item.value
|
|
1751
1762
|
] }, item.value);
|
|
1752
1763
|
})
|
|
@@ -1759,8 +1770,8 @@ ChartLegendContent.displayName = "ChartLegendContent";
|
|
|
1759
1770
|
import * as React34 from "react";
|
|
1760
1771
|
import { Command as CommandPrimitive } from "cmdk";
|
|
1761
1772
|
import { Search } from "lucide-react";
|
|
1762
|
-
import { jsx as
|
|
1763
|
-
var Command = React34.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
1773
|
+
import { jsx as jsx39, jsxs as jsxs16 } from "react/jsx-runtime";
|
|
1774
|
+
var Command = React34.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx39(
|
|
1764
1775
|
CommandPrimitive,
|
|
1765
1776
|
{
|
|
1766
1777
|
ref,
|
|
@@ -1772,10 +1783,10 @@ var Command = React34.forwardRef(({ className, ...props }, ref) => /* @__PURE__
|
|
|
1772
1783
|
}
|
|
1773
1784
|
));
|
|
1774
1785
|
Command.displayName = CommandPrimitive.displayName;
|
|
1775
|
-
var CommandDialog = ({ children, ...props }) => /* @__PURE__ */
|
|
1786
|
+
var CommandDialog = ({ children, ...props }) => /* @__PURE__ */ jsx39(Dialog, { ...props, children: /* @__PURE__ */ jsx39(DialogContent, { className: "overflow-hidden p-0", children: /* @__PURE__ */ jsx39(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 }) }) });
|
|
1776
1787
|
var CommandInput = React34.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxs16("div", { className: "flex items-center border-b px-3", "cmdk-input-wrapper": "", children: [
|
|
1777
|
-
/* @__PURE__ */
|
|
1778
|
-
/* @__PURE__ */
|
|
1788
|
+
/* @__PURE__ */ jsx39(Search, { className: "mr-2 size-4 shrink-0 opacity-50" }),
|
|
1789
|
+
/* @__PURE__ */ jsx39(
|
|
1779
1790
|
CommandPrimitive.Input,
|
|
1780
1791
|
{
|
|
1781
1792
|
ref,
|
|
@@ -1788,7 +1799,7 @@ var CommandInput = React34.forwardRef(({ className, ...props }, ref) => /* @__PU
|
|
|
1788
1799
|
)
|
|
1789
1800
|
] }));
|
|
1790
1801
|
CommandInput.displayName = CommandPrimitive.Input.displayName;
|
|
1791
|
-
var CommandList = React34.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
1802
|
+
var CommandList = React34.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx39(
|
|
1792
1803
|
CommandPrimitive.List,
|
|
1793
1804
|
{
|
|
1794
1805
|
ref,
|
|
@@ -1797,9 +1808,9 @@ var CommandList = React34.forwardRef(({ className, ...props }, ref) => /* @__PUR
|
|
|
1797
1808
|
}
|
|
1798
1809
|
));
|
|
1799
1810
|
CommandList.displayName = CommandPrimitive.List.displayName;
|
|
1800
|
-
var CommandEmpty = React34.forwardRef((props, ref) => /* @__PURE__ */
|
|
1811
|
+
var CommandEmpty = React34.forwardRef((props, ref) => /* @__PURE__ */ jsx39(CommandPrimitive.Empty, { ref, className: "py-6 text-center text-sm", ...props }));
|
|
1801
1812
|
CommandEmpty.displayName = CommandPrimitive.Empty.displayName;
|
|
1802
|
-
var CommandGroup = React34.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
1813
|
+
var CommandGroup = React34.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx39(
|
|
1803
1814
|
CommandPrimitive.Group,
|
|
1804
1815
|
{
|
|
1805
1816
|
ref,
|
|
@@ -1811,9 +1822,9 @@ var CommandGroup = React34.forwardRef(({ className, ...props }, ref) => /* @__PU
|
|
|
1811
1822
|
}
|
|
1812
1823
|
));
|
|
1813
1824
|
CommandGroup.displayName = CommandPrimitive.Group.displayName;
|
|
1814
|
-
var CommandSeparator = React34.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
1825
|
+
var CommandSeparator = React34.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx39(CommandPrimitive.Separator, { ref, className: cn("-mx-1 h-px bg-border", className), ...props }));
|
|
1815
1826
|
CommandSeparator.displayName = CommandPrimitive.Separator.displayName;
|
|
1816
|
-
var CommandItem = React34.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
1827
|
+
var CommandItem = React34.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx39(
|
|
1817
1828
|
CommandPrimitive.Item,
|
|
1818
1829
|
{
|
|
1819
1830
|
ref,
|
|
@@ -1825,14 +1836,14 @@ var CommandItem = React34.forwardRef(({ className, ...props }, ref) => /* @__PUR
|
|
|
1825
1836
|
}
|
|
1826
1837
|
));
|
|
1827
1838
|
CommandItem.displayName = CommandPrimitive.Item.displayName;
|
|
1828
|
-
var CommandShortcut = ({ className, ...props }) => /* @__PURE__ */
|
|
1839
|
+
var CommandShortcut = ({ className, ...props }) => /* @__PURE__ */ jsx39("span", { className: cn("ml-auto text-xs tracking-widest text-muted-foreground", className), ...props });
|
|
1829
1840
|
CommandShortcut.displayName = "CommandShortcut";
|
|
1830
1841
|
|
|
1831
1842
|
// src/components/context-menu.tsx
|
|
1832
1843
|
import * as React35 from "react";
|
|
1833
1844
|
import * as ContextMenuPrimitive from "@radix-ui/react-context-menu";
|
|
1834
1845
|
import { Check as Check4, ChevronRight as ChevronRight5, Circle as Circle3 } from "lucide-react";
|
|
1835
|
-
import { jsx as
|
|
1846
|
+
import { jsx as jsx40, jsxs as jsxs17 } from "react/jsx-runtime";
|
|
1836
1847
|
var ContextMenu = ContextMenuPrimitive.Root;
|
|
1837
1848
|
var ContextMenuTrigger = ContextMenuPrimitive.Trigger;
|
|
1838
1849
|
var ContextMenuGroup = ContextMenuPrimitive.Group;
|
|
@@ -1849,28 +1860,28 @@ var ContextMenuSubTrigger = React35.forwardRef(({ className, inset, children, ..
|
|
|
1849
1860
|
...props,
|
|
1850
1861
|
children: [
|
|
1851
1862
|
children,
|
|
1852
|
-
/* @__PURE__ */
|
|
1863
|
+
/* @__PURE__ */ jsx40(ChevronRight5, { className: "ml-auto size-4" })
|
|
1853
1864
|
]
|
|
1854
1865
|
}
|
|
1855
1866
|
));
|
|
1856
1867
|
ContextMenuSubTrigger.displayName = ContextMenuPrimitive.SubTrigger.displayName;
|
|
1857
|
-
var ContextMenuSubContent = React35.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
1868
|
+
var ContextMenuSubContent = React35.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx40(ContextMenuPrimitive.SubContent, { ref, className: cn(contentCls2, className), ...props }));
|
|
1858
1869
|
ContextMenuSubContent.displayName = ContextMenuPrimitive.SubContent.displayName;
|
|
1859
|
-
var ContextMenuContent = React35.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
1870
|
+
var ContextMenuContent = React35.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx40(ContextMenuPrimitive.Portal, { children: /* @__PURE__ */ jsx40(ContextMenuPrimitive.Content, { ref, className: cn(contentCls2, className), ...props }) }));
|
|
1860
1871
|
ContextMenuContent.displayName = ContextMenuPrimitive.Content.displayName;
|
|
1861
|
-
var ContextMenuItem = React35.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */
|
|
1872
|
+
var ContextMenuItem = React35.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx40(ContextMenuPrimitive.Item, { ref, className: cn(itemCls2, inset && "pl-8", className), ...props }));
|
|
1862
1873
|
ContextMenuItem.displayName = ContextMenuPrimitive.Item.displayName;
|
|
1863
1874
|
var ContextMenuCheckboxItem = React35.forwardRef(({ className, children, checked, ...props }, ref) => /* @__PURE__ */ jsxs17(ContextMenuPrimitive.CheckboxItem, { ref, className: cn(itemCls2, "pl-8", className), checked, ...props, children: [
|
|
1864
|
-
/* @__PURE__ */
|
|
1875
|
+
/* @__PURE__ */ jsx40("span", { className: "absolute left-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ jsx40(ContextMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx40(Check4, { className: "size-4" }) }) }),
|
|
1865
1876
|
children
|
|
1866
1877
|
] }));
|
|
1867
1878
|
ContextMenuCheckboxItem.displayName = ContextMenuPrimitive.CheckboxItem.displayName;
|
|
1868
1879
|
var ContextMenuRadioItem = React35.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs17(ContextMenuPrimitive.RadioItem, { ref, className: cn(itemCls2, "pl-8", className), ...props, children: [
|
|
1869
|
-
/* @__PURE__ */
|
|
1880
|
+
/* @__PURE__ */ jsx40("span", { className: "absolute left-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ jsx40(ContextMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx40(Circle3, { className: "size-2 fill-current" }) }) }),
|
|
1870
1881
|
children
|
|
1871
1882
|
] }));
|
|
1872
1883
|
ContextMenuRadioItem.displayName = ContextMenuPrimitive.RadioItem.displayName;
|
|
1873
|
-
var ContextMenuLabel = React35.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */
|
|
1884
|
+
var ContextMenuLabel = React35.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx40(
|
|
1874
1885
|
ContextMenuPrimitive.Label,
|
|
1875
1886
|
{
|
|
1876
1887
|
ref,
|
|
@@ -1879,9 +1890,9 @@ var ContextMenuLabel = React35.forwardRef(({ className, inset, ...props }, ref)
|
|
|
1879
1890
|
}
|
|
1880
1891
|
));
|
|
1881
1892
|
ContextMenuLabel.displayName = ContextMenuPrimitive.Label.displayName;
|
|
1882
|
-
var ContextMenuSeparator = React35.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
1893
|
+
var ContextMenuSeparator = React35.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx40(ContextMenuPrimitive.Separator, { ref, className: cn("-mx-1 my-1 h-px bg-border", className), ...props }));
|
|
1883
1894
|
ContextMenuSeparator.displayName = ContextMenuPrimitive.Separator.displayName;
|
|
1884
|
-
var ContextMenuShortcut = ({ className, ...props }) => /* @__PURE__ */
|
|
1895
|
+
var ContextMenuShortcut = ({ className, ...props }) => /* @__PURE__ */ jsx40("span", { className: cn("ml-auto text-xs tracking-widest text-muted-foreground", className), ...props });
|
|
1885
1896
|
ContextMenuShortcut.displayName = "ContextMenuShortcut";
|
|
1886
1897
|
|
|
1887
1898
|
// src/components/data-table.tsx
|
|
@@ -1896,7 +1907,7 @@ import {
|
|
|
1896
1907
|
tableFeatures,
|
|
1897
1908
|
useTable
|
|
1898
1909
|
} from "@tanstack/react-table";
|
|
1899
|
-
import { jsx as
|
|
1910
|
+
import { jsx as jsx41, jsxs as jsxs18 } from "react/jsx-runtime";
|
|
1900
1911
|
var features = tableFeatures({
|
|
1901
1912
|
rowSortingFeature,
|
|
1902
1913
|
rowPaginationFeature,
|
|
@@ -1920,13 +1931,13 @@ function DataTable({
|
|
|
1920
1931
|
initialState: { pagination: { pageIndex: 0, pageSize } }
|
|
1921
1932
|
});
|
|
1922
1933
|
return /* @__PURE__ */ jsxs18("div", { className: cn("space-y-3", className), children: [
|
|
1923
|
-
/* @__PURE__ */
|
|
1924
|
-
/* @__PURE__ */
|
|
1925
|
-
/* @__PURE__ */
|
|
1934
|
+
/* @__PURE__ */ jsx41("div", { className: "rounded-md border", children: /* @__PURE__ */ jsxs18(Table, { children: [
|
|
1935
|
+
/* @__PURE__ */ jsx41(TableHeader, { children: table.getHeaderGroups().map((hg) => /* @__PURE__ */ jsx41(TableRow, { children: hg.headers.map((header) => /* @__PURE__ */ jsx41(TableHead, { children: header.isPlaceholder ? null : flexRender(header.column.columnDef.header, header.getContext()) }, header.id)) }, hg.id)) }),
|
|
1936
|
+
/* @__PURE__ */ jsx41(TableBody, { children: table.getRowModel().rows.length ? table.getRowModel().rows.map((row) => /* @__PURE__ */ jsx41(TableRow, { children: row.getAllCells().map((cell) => /* @__PURE__ */ jsx41(TableCell, { children: flexRender(cell.column.columnDef.cell, cell.getContext()) }, cell.id)) }, row.id)) : /* @__PURE__ */ jsx41(TableRow, { children: /* @__PURE__ */ jsx41(TableCell, { colSpan: columns.length, className: "h-24 text-center", children: "No results." }) }) })
|
|
1926
1937
|
] }) }),
|
|
1927
1938
|
/* @__PURE__ */ jsxs18("div", { className: "flex items-center justify-end gap-2", children: [
|
|
1928
|
-
/* @__PURE__ */
|
|
1929
|
-
/* @__PURE__ */
|
|
1939
|
+
/* @__PURE__ */ jsx41(Button, { variant: "Outline", size: "sm", onClick: () => table.previousPage(), disabled: !table.getCanPreviousPage(), children: "Previous" }),
|
|
1940
|
+
/* @__PURE__ */ jsx41(Button, { variant: "Outline", size: "sm", onClick: () => table.nextPage(), disabled: !table.getCanNextPage(), children: "Next" })
|
|
1930
1941
|
] })
|
|
1931
1942
|
] });
|
|
1932
1943
|
}
|
|
@@ -1934,16 +1945,16 @@ function DataTable({
|
|
|
1934
1945
|
// src/components/drawer.tsx
|
|
1935
1946
|
import * as React37 from "react";
|
|
1936
1947
|
import { Drawer as DrawerPrimitive } from "vaul";
|
|
1937
|
-
import { jsx as
|
|
1938
|
-
var Drawer = ({ shouldScaleBackground = true, ...props }) => /* @__PURE__ */
|
|
1948
|
+
import { jsx as jsx42, jsxs as jsxs19 } from "react/jsx-runtime";
|
|
1949
|
+
var Drawer = ({ shouldScaleBackground = true, ...props }) => /* @__PURE__ */ jsx42(DrawerPrimitive.Root, { shouldScaleBackground, ...props });
|
|
1939
1950
|
Drawer.displayName = "Drawer";
|
|
1940
1951
|
var DrawerTrigger = DrawerPrimitive.Trigger;
|
|
1941
1952
|
var DrawerPortal = DrawerPrimitive.Portal;
|
|
1942
1953
|
var DrawerClose = DrawerPrimitive.Close;
|
|
1943
|
-
var DrawerOverlay = React37.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
1954
|
+
var DrawerOverlay = React37.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx42(DrawerPrimitive.Overlay, { ref, className: cn("fixed inset-0 z-overlay bg-foreground/40", className), ...props }));
|
|
1944
1955
|
DrawerOverlay.displayName = DrawerPrimitive.Overlay.displayName;
|
|
1945
1956
|
var DrawerContent = React37.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs19(DrawerPortal, { children: [
|
|
1946
|
-
/* @__PURE__ */
|
|
1957
|
+
/* @__PURE__ */ jsx42(DrawerOverlay, {}),
|
|
1947
1958
|
/* @__PURE__ */ jsxs19(
|
|
1948
1959
|
DrawerPrimitive.Content,
|
|
1949
1960
|
{
|
|
@@ -1954,20 +1965,20 @@ var DrawerContent = React37.forwardRef(({ className, children, ...props }, ref)
|
|
|
1954
1965
|
),
|
|
1955
1966
|
...props,
|
|
1956
1967
|
children: [
|
|
1957
|
-
/* @__PURE__ */
|
|
1968
|
+
/* @__PURE__ */ jsx42("div", { className: "mx-auto mt-4 h-2 w-[100px] rounded-full bg-muted" }),
|
|
1958
1969
|
children
|
|
1959
1970
|
]
|
|
1960
1971
|
}
|
|
1961
1972
|
)
|
|
1962
1973
|
] }));
|
|
1963
1974
|
DrawerContent.displayName = "DrawerContent";
|
|
1964
|
-
var DrawerHeader = ({ className, ...props }) => /* @__PURE__ */
|
|
1975
|
+
var DrawerHeader = ({ className, ...props }) => /* @__PURE__ */ jsx42("div", { className: cn("grid gap-1.5 p-4 text-center sm:text-start", className), ...props });
|
|
1965
1976
|
DrawerHeader.displayName = "DrawerHeader";
|
|
1966
|
-
var DrawerFooter = ({ className, ...props }) => /* @__PURE__ */
|
|
1977
|
+
var DrawerFooter = ({ className, ...props }) => /* @__PURE__ */ jsx42("div", { className: cn("mt-auto flex flex-col gap-2 p-4", className), ...props });
|
|
1967
1978
|
DrawerFooter.displayName = "DrawerFooter";
|
|
1968
|
-
var DrawerTitle = React37.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
1979
|
+
var DrawerTitle = React37.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx42(DrawerPrimitive.Title, { ref, className: cn("text-lg font-semibold leading-none tracking-tight", className), ...props }));
|
|
1969
1980
|
DrawerTitle.displayName = DrawerPrimitive.Title.displayName;
|
|
1970
|
-
var DrawerDescription = React37.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
1981
|
+
var DrawerDescription = React37.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx42(DrawerPrimitive.Description, { ref, className: cn("text-sm text-muted-foreground", className), ...props }));
|
|
1971
1982
|
DrawerDescription.displayName = DrawerPrimitive.Description.displayName;
|
|
1972
1983
|
|
|
1973
1984
|
// src/components/field.tsx
|
|
@@ -1975,7 +1986,7 @@ import * as React38 from "react";
|
|
|
1975
1986
|
import { Slot as Slot5 } from "@radix-ui/react-slot";
|
|
1976
1987
|
import { CircleAlert, CircleCheck, Info, TriangleAlert } from "lucide-react";
|
|
1977
1988
|
import { cva as cva10 } from "class-variance-authority";
|
|
1978
|
-
import { jsx as
|
|
1989
|
+
import { jsx as jsx43, jsxs as jsxs20 } from "react/jsx-runtime";
|
|
1979
1990
|
var FieldContext = React38.createContext(null);
|
|
1980
1991
|
function useField() {
|
|
1981
1992
|
const ctx = React38.useContext(FieldContext);
|
|
@@ -1989,19 +2000,19 @@ var Field = React38.forwardRef(
|
|
|
1989
2000
|
() => ({ id: `${id}-control`, descriptionId: `${id}-description`, messageId: `${id}-message`, invalid }),
|
|
1990
2001
|
[id, invalid]
|
|
1991
2002
|
);
|
|
1992
|
-
return /* @__PURE__ */
|
|
2003
|
+
return /* @__PURE__ */ jsx43(FieldContext.Provider, { value, children: /* @__PURE__ */ jsx43("div", { ref, "data-invalid": invalid || void 0, className: cn("grid gap-1.5", className), ...props }) });
|
|
1993
2004
|
}
|
|
1994
2005
|
);
|
|
1995
2006
|
Field.displayName = "Field";
|
|
1996
2007
|
var FieldLabel = React38.forwardRef(({ className, ...props }, ref) => {
|
|
1997
2008
|
const { id, invalid } = useField();
|
|
1998
|
-
return /* @__PURE__ */
|
|
2009
|
+
return /* @__PURE__ */ jsx43(Label2, { ref, htmlFor: id, className: cn(invalid && "text-destructive", className), ...props });
|
|
1999
2010
|
});
|
|
2000
2011
|
FieldLabel.displayName = "FieldLabel";
|
|
2001
2012
|
var FieldControl = React38.forwardRef(
|
|
2002
2013
|
({ ...props }, ref) => {
|
|
2003
2014
|
const { id, descriptionId, messageId, invalid } = useField();
|
|
2004
|
-
return /* @__PURE__ */
|
|
2015
|
+
return /* @__PURE__ */ jsx43(
|
|
2005
2016
|
Slot5,
|
|
2006
2017
|
{
|
|
2007
2018
|
ref,
|
|
@@ -2017,7 +2028,7 @@ FieldControl.displayName = "FieldControl";
|
|
|
2017
2028
|
var FieldDescription = React38.forwardRef(
|
|
2018
2029
|
({ className, ...props }, ref) => {
|
|
2019
2030
|
const { descriptionId } = useField();
|
|
2020
|
-
return /* @__PURE__ */
|
|
2031
|
+
return /* @__PURE__ */ jsx43("p", { ref, id: descriptionId, className: cn("text-body-sm text-muted-foreground", className), ...props });
|
|
2021
2032
|
}
|
|
2022
2033
|
);
|
|
2023
2034
|
FieldDescription.displayName = "FieldDescription";
|
|
@@ -2044,8 +2055,8 @@ var FieldMessage = React38.forwardRef(
|
|
|
2044
2055
|
const Icon2 = INTENT_ICON[intent ?? "error"];
|
|
2045
2056
|
if (!children) return null;
|
|
2046
2057
|
return /* @__PURE__ */ jsxs20("p", { ref, id: messageId, className: cn(messageVariants({ intent }), className), ...props, children: [
|
|
2047
|
-
!hideIcon && /* @__PURE__ */
|
|
2048
|
-
/* @__PURE__ */
|
|
2058
|
+
!hideIcon && /* @__PURE__ */ jsx43(Icon2, {}),
|
|
2059
|
+
/* @__PURE__ */ jsx43("span", { children })
|
|
2049
2060
|
] });
|
|
2050
2061
|
}
|
|
2051
2062
|
);
|
|
@@ -2060,12 +2071,12 @@ import {
|
|
|
2060
2071
|
useFormContext,
|
|
2061
2072
|
useFormState
|
|
2062
2073
|
} from "react-hook-form";
|
|
2063
|
-
import { jsx as
|
|
2074
|
+
import { jsx as jsx44 } from "react/jsx-runtime";
|
|
2064
2075
|
var Form = FormProvider;
|
|
2065
2076
|
var FormFieldContext = React39.createContext({});
|
|
2066
2077
|
var FormField = ({
|
|
2067
2078
|
...props
|
|
2068
|
-
}) => /* @__PURE__ */
|
|
2079
|
+
}) => /* @__PURE__ */ jsx44(FormFieldContext.Provider, { value: { name: props.name }, children: /* @__PURE__ */ jsx44(Controller, { ...props }) });
|
|
2069
2080
|
var useFormField = () => {
|
|
2070
2081
|
const fieldContext = React39.useContext(FormFieldContext);
|
|
2071
2082
|
const itemContext = React39.useContext(FormItemContext);
|
|
@@ -2087,18 +2098,18 @@ var FormItemContext = React39.createContext({});
|
|
|
2087
2098
|
var FormItem = React39.forwardRef(
|
|
2088
2099
|
({ className, ...props }, ref) => {
|
|
2089
2100
|
const id = React39.useId();
|
|
2090
|
-
return /* @__PURE__ */
|
|
2101
|
+
return /* @__PURE__ */ jsx44(FormItemContext.Provider, { value: { id }, children: /* @__PURE__ */ jsx44("div", { ref, className: cn("grid gap-2", className), ...props }) });
|
|
2091
2102
|
}
|
|
2092
2103
|
);
|
|
2093
2104
|
FormItem.displayName = "FormItem";
|
|
2094
2105
|
var FormLabel = React39.forwardRef(({ className, ...props }, ref) => {
|
|
2095
2106
|
const { error, formItemId } = useFormField();
|
|
2096
|
-
return /* @__PURE__ */
|
|
2107
|
+
return /* @__PURE__ */ jsx44(Label2, { ref, className: cn(error && "text-destructive", className), htmlFor: formItemId, ...props });
|
|
2097
2108
|
});
|
|
2098
2109
|
FormLabel.displayName = "FormLabel";
|
|
2099
2110
|
var FormControl = React39.forwardRef(({ ...props }, ref) => {
|
|
2100
2111
|
const { error, formItemId, formDescriptionId, formMessageId } = useFormField();
|
|
2101
|
-
return /* @__PURE__ */
|
|
2112
|
+
return /* @__PURE__ */ jsx44(
|
|
2102
2113
|
Slot6,
|
|
2103
2114
|
{
|
|
2104
2115
|
ref,
|
|
@@ -2113,7 +2124,7 @@ FormControl.displayName = "FormControl";
|
|
|
2113
2124
|
var FormDescription = React39.forwardRef(
|
|
2114
2125
|
({ className, ...props }, ref) => {
|
|
2115
2126
|
const { formDescriptionId } = useFormField();
|
|
2116
|
-
return /* @__PURE__ */
|
|
2127
|
+
return /* @__PURE__ */ jsx44("p", { ref, id: formDescriptionId, className: cn("text-sm text-muted-foreground", className), ...props });
|
|
2117
2128
|
}
|
|
2118
2129
|
);
|
|
2119
2130
|
FormDescription.displayName = "FormDescription";
|
|
@@ -2122,7 +2133,7 @@ var FormMessage = React39.forwardRef(
|
|
|
2122
2133
|
const { error, formMessageId } = useFormField();
|
|
2123
2134
|
const body = error ? String(error?.message ?? "") : children;
|
|
2124
2135
|
if (!body) return null;
|
|
2125
|
-
return /* @__PURE__ */
|
|
2136
|
+
return /* @__PURE__ */ jsx44("p", { ref, id: formMessageId, className: cn("text-sm font-medium text-destructive", className), ...props, children: body });
|
|
2126
2137
|
}
|
|
2127
2138
|
);
|
|
2128
2139
|
FormMessage.displayName = "FormMessage";
|
|
@@ -2130,9 +2141,9 @@ FormMessage.displayName = "FormMessage";
|
|
|
2130
2141
|
// src/components/input-group.tsx
|
|
2131
2142
|
import * as React40 from "react";
|
|
2132
2143
|
import { cva as cva11 } from "class-variance-authority";
|
|
2133
|
-
import { jsx as
|
|
2144
|
+
import { jsx as jsx45 } from "react/jsx-runtime";
|
|
2134
2145
|
var InputGroup = React40.forwardRef(
|
|
2135
|
-
({ className, ...props }, ref) => /* @__PURE__ */
|
|
2146
|
+
({ className, ...props }, ref) => /* @__PURE__ */ jsx45(
|
|
2136
2147
|
"div",
|
|
2137
2148
|
{
|
|
2138
2149
|
ref,
|
|
@@ -2149,7 +2160,7 @@ var InputGroup = React40.forwardRef(
|
|
|
2149
2160
|
)
|
|
2150
2161
|
);
|
|
2151
2162
|
InputGroup.displayName = "InputGroup";
|
|
2152
|
-
var InputGroupInput = React40.forwardRef(({ className, type = "text", ...props }, ref) => /* @__PURE__ */
|
|
2163
|
+
var InputGroupInput = React40.forwardRef(({ className, type = "text", ...props }, ref) => /* @__PURE__ */ jsx45(
|
|
2153
2164
|
"input",
|
|
2154
2165
|
{
|
|
2155
2166
|
ref,
|
|
@@ -2165,13 +2176,13 @@ var InputGroupInput = React40.forwardRef(({ className, type = "text", ...props }
|
|
|
2165
2176
|
));
|
|
2166
2177
|
InputGroupInput.displayName = "InputGroupInput";
|
|
2167
2178
|
var addonVariants = cva11("flex shrink-0 items-center gap-2 text-muted-foreground [&_svg]:size-4 [&_svg]:shrink-0", {
|
|
2168
|
-
variants: { align: { start: "
|
|
2179
|
+
variants: { align: { start: "ps-3", end: "pe-3" } },
|
|
2169
2180
|
defaultVariants: { align: "start" }
|
|
2170
2181
|
});
|
|
2171
|
-
var InputGroupAddon = React40.forwardRef(({ className, align, ...props }, ref) => /* @__PURE__ */
|
|
2182
|
+
var InputGroupAddon = React40.forwardRef(({ className, align, ...props }, ref) => /* @__PURE__ */ jsx45("div", { ref, "data-slot": "input-group-addon", className: cn(addonVariants({ align }), className), ...props }));
|
|
2172
2183
|
InputGroupAddon.displayName = "InputGroupAddon";
|
|
2173
2184
|
var InputGroupText = React40.forwardRef(
|
|
2174
|
-
({ className, ...props }, ref) => /* @__PURE__ */
|
|
2185
|
+
({ className, ...props }, ref) => /* @__PURE__ */ jsx45(
|
|
2175
2186
|
"span",
|
|
2176
2187
|
{
|
|
2177
2188
|
ref,
|
|
@@ -2181,13 +2192,13 @@ var InputGroupText = React40.forwardRef(
|
|
|
2181
2192
|
)
|
|
2182
2193
|
);
|
|
2183
2194
|
InputGroupText.displayName = "InputGroupText";
|
|
2184
|
-
var InputGroupButton = React40.forwardRef(({ className, type = "button", ...props }, ref) => /* @__PURE__ */
|
|
2195
|
+
var InputGroupButton = React40.forwardRef(({ className, type = "button", ...props }, ref) => /* @__PURE__ */ jsx45(
|
|
2185
2196
|
"button",
|
|
2186
2197
|
{
|
|
2187
2198
|
ref,
|
|
2188
2199
|
type,
|
|
2189
2200
|
className: cn(
|
|
2190
|
-
"flex h-full shrink-0 items-center gap-1.5 self-stretch border-
|
|
2201
|
+
"flex h-full shrink-0 items-center gap-1.5 self-stretch border-s border-input bg-muted px-3 text-label-md text-foreground",
|
|
2191
2202
|
// base is bg-muted and muted==accent on dark, so the fill is a no-op there — the ring carries it
|
|
2192
2203
|
"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",
|
|
2193
2204
|
"[&_svg]:size-4 [&_svg]:shrink-0",
|
|
@@ -2202,8 +2213,8 @@ InputGroupButton.displayName = "InputGroupButton";
|
|
|
2202
2213
|
import * as React41 from "react";
|
|
2203
2214
|
import { OTPInput, OTPInputContext } from "input-otp";
|
|
2204
2215
|
import { Minus as Minus2 } from "lucide-react";
|
|
2205
|
-
import { jsx as
|
|
2206
|
-
var InputOTP = React41.forwardRef(({ className, containerClassName, ...props }, ref) => /* @__PURE__ */
|
|
2216
|
+
import { jsx as jsx46, jsxs as jsxs21 } from "react/jsx-runtime";
|
|
2217
|
+
var InputOTP = React41.forwardRef(({ className, containerClassName, ...props }, ref) => /* @__PURE__ */ jsx46(
|
|
2207
2218
|
OTPInput,
|
|
2208
2219
|
{
|
|
2209
2220
|
ref,
|
|
@@ -2214,7 +2225,7 @@ var InputOTP = React41.forwardRef(({ className, containerClassName, ...props },
|
|
|
2214
2225
|
));
|
|
2215
2226
|
InputOTP.displayName = "InputOTP";
|
|
2216
2227
|
var InputOTPGroup = React41.forwardRef(
|
|
2217
|
-
({ className, ...props }, ref) => /* @__PURE__ */
|
|
2228
|
+
({ className, ...props }, ref) => /* @__PURE__ */ jsx46("div", { ref, className: cn("flex items-center", className), ...props })
|
|
2218
2229
|
);
|
|
2219
2230
|
InputOTPGroup.displayName = "InputOTPGroup";
|
|
2220
2231
|
var InputOTPSlot = React41.forwardRef(({ index, className, ...props }, ref) => {
|
|
@@ -2232,26 +2243,26 @@ var InputOTPSlot = React41.forwardRef(({ index, className, ...props }, ref) => {
|
|
|
2232
2243
|
...props,
|
|
2233
2244
|
children: [
|
|
2234
2245
|
char,
|
|
2235
|
-
hasFakeCaret && /* @__PURE__ */
|
|
2246
|
+
hasFakeCaret && /* @__PURE__ */ jsx46("div", { className: "pointer-events-none absolute inset-0 flex items-center justify-center", children: /* @__PURE__ */ jsx46("div", { className: "h-4 w-px animate-caret-blink bg-foreground duration-slower" }) })
|
|
2236
2247
|
]
|
|
2237
2248
|
}
|
|
2238
2249
|
);
|
|
2239
2250
|
});
|
|
2240
2251
|
InputOTPSlot.displayName = "InputOTPSlot";
|
|
2241
2252
|
var InputOTPSeparator = React41.forwardRef(
|
|
2242
|
-
({ ...props }, ref) => /* @__PURE__ */
|
|
2253
|
+
({ ...props }, ref) => /* @__PURE__ */ jsx46("div", { ref, role: "separator", ...props, children: /* @__PURE__ */ jsx46(Minus2, { className: "size-4" }) })
|
|
2243
2254
|
);
|
|
2244
2255
|
InputOTPSeparator.displayName = "InputOTPSeparator";
|
|
2245
2256
|
|
|
2246
2257
|
// src/components/password-input.tsx
|
|
2247
2258
|
import * as React42 from "react";
|
|
2248
2259
|
import { Eye, EyeOff } from "lucide-react";
|
|
2249
|
-
import { jsx as
|
|
2260
|
+
import { jsx as jsx47, jsxs as jsxs22 } from "react/jsx-runtime";
|
|
2250
2261
|
var PasswordInput = React42.forwardRef(({ className, ...props }, ref) => {
|
|
2251
2262
|
const [visible, setVisible] = React42.useState(false);
|
|
2252
2263
|
return /* @__PURE__ */ jsxs22(InputGroup, { className, children: [
|
|
2253
|
-
/* @__PURE__ */
|
|
2254
|
-
/* @__PURE__ */
|
|
2264
|
+
/* @__PURE__ */ jsx47(InputGroupInput, { ref, type: visible ? "text" : "password", ...props }),
|
|
2265
|
+
/* @__PURE__ */ jsx47(InputGroupAddon, { align: "end", children: /* @__PURE__ */ jsx47(
|
|
2255
2266
|
"button",
|
|
2256
2267
|
{
|
|
2257
2268
|
type: "button",
|
|
@@ -2259,7 +2270,7 @@ var PasswordInput = React42.forwardRef(({ className, ...props }, ref) => {
|
|
|
2259
2270
|
"aria-pressed": visible,
|
|
2260
2271
|
onClick: () => setVisible((v) => !v),
|
|
2261
2272
|
className: cn("rounded-[2px] outline-none transition-colors hover:text-foreground focus-visible:text-foreground"),
|
|
2262
|
-
children: visible ? /* @__PURE__ */
|
|
2273
|
+
children: visible ? /* @__PURE__ */ jsx47(EyeOff, {}) : /* @__PURE__ */ jsx47(Eye, {})
|
|
2263
2274
|
}
|
|
2264
2275
|
) })
|
|
2265
2276
|
] });
|
|
@@ -2270,15 +2281,15 @@ PasswordInput.displayName = "PasswordInput";
|
|
|
2270
2281
|
import * as React43 from "react";
|
|
2271
2282
|
import * as MenubarPrimitive from "@radix-ui/react-menubar";
|
|
2272
2283
|
import { Check as Check5, ChevronRight as ChevronRight6, Circle as Circle4 } from "lucide-react";
|
|
2273
|
-
import { jsx as
|
|
2274
|
-
var MenubarMenu = (props) => /* @__PURE__ */
|
|
2275
|
-
var MenubarGroup = (props) => /* @__PURE__ */
|
|
2276
|
-
var MenubarPortal = (props) => /* @__PURE__ */
|
|
2277
|
-
var MenubarSub = (props) => /* @__PURE__ */
|
|
2278
|
-
var MenubarRadioGroup = (props) => /* @__PURE__ */
|
|
2284
|
+
import { jsx as jsx48, jsxs as jsxs23 } from "react/jsx-runtime";
|
|
2285
|
+
var MenubarMenu = (props) => /* @__PURE__ */ jsx48(MenubarPrimitive.Menu, { ...props });
|
|
2286
|
+
var MenubarGroup = (props) => /* @__PURE__ */ jsx48(MenubarPrimitive.Group, { ...props });
|
|
2287
|
+
var MenubarPortal = (props) => /* @__PURE__ */ jsx48(MenubarPrimitive.Portal, { ...props });
|
|
2288
|
+
var MenubarSub = (props) => /* @__PURE__ */ jsx48(MenubarPrimitive.Sub, { ...props });
|
|
2289
|
+
var MenubarRadioGroup = (props) => /* @__PURE__ */ jsx48(MenubarPrimitive.RadioGroup, { ...props });
|
|
2279
2290
|
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
2291
|
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__ */
|
|
2292
|
+
var Menubar = React43.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx48(
|
|
2282
2293
|
MenubarPrimitive.Root,
|
|
2283
2294
|
{
|
|
2284
2295
|
ref,
|
|
@@ -2287,7 +2298,7 @@ var Menubar = React43.forwardRef(({ className, ...props }, ref) => /* @__PURE__
|
|
|
2287
2298
|
}
|
|
2288
2299
|
));
|
|
2289
2300
|
Menubar.displayName = MenubarPrimitive.Root.displayName;
|
|
2290
|
-
var MenubarTrigger = React43.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
2301
|
+
var MenubarTrigger = React43.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx48(
|
|
2291
2302
|
MenubarPrimitive.Trigger,
|
|
2292
2303
|
{
|
|
2293
2304
|
ref,
|
|
@@ -2301,12 +2312,12 @@ var MenubarTrigger = React43.forwardRef(({ className, ...props }, ref) => /* @__
|
|
|
2301
2312
|
MenubarTrigger.displayName = MenubarPrimitive.Trigger.displayName;
|
|
2302
2313
|
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: [
|
|
2303
2314
|
children,
|
|
2304
|
-
/* @__PURE__ */
|
|
2315
|
+
/* @__PURE__ */ jsx48(ChevronRight6, { className: "ml-auto size-4" })
|
|
2305
2316
|
] }));
|
|
2306
2317
|
MenubarSubTrigger.displayName = MenubarPrimitive.SubTrigger.displayName;
|
|
2307
|
-
var MenubarSubContent = React43.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
2318
|
+
var MenubarSubContent = React43.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx48(MenubarPrimitive.SubContent, { ref, className: cn(contentCls3, className), ...props }));
|
|
2308
2319
|
MenubarSubContent.displayName = MenubarPrimitive.SubContent.displayName;
|
|
2309
|
-
var MenubarContent = React43.forwardRef(({ className, align = "start", alignOffset = -4, sideOffset = 8, ...props }, ref) => /* @__PURE__ */
|
|
2320
|
+
var MenubarContent = React43.forwardRef(({ className, align = "start", alignOffset = -4, sideOffset = 8, ...props }, ref) => /* @__PURE__ */ jsx48(MenubarPrimitive.Portal, { children: /* @__PURE__ */ jsx48(
|
|
2310
2321
|
MenubarPrimitive.Content,
|
|
2311
2322
|
{
|
|
2312
2323
|
ref,
|
|
@@ -2318,23 +2329,23 @@ var MenubarContent = React43.forwardRef(({ className, align = "start", alignOffs
|
|
|
2318
2329
|
}
|
|
2319
2330
|
) }));
|
|
2320
2331
|
MenubarContent.displayName = MenubarPrimitive.Content.displayName;
|
|
2321
|
-
var MenubarItem = React43.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */
|
|
2332
|
+
var MenubarItem = React43.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx48(MenubarPrimitive.Item, { ref, className: cn(itemCls3, inset && "pl-8", className), ...props }));
|
|
2322
2333
|
MenubarItem.displayName = MenubarPrimitive.Item.displayName;
|
|
2323
2334
|
var MenubarCheckboxItem = React43.forwardRef(({ className, children, checked, ...props }, ref) => /* @__PURE__ */ jsxs23(MenubarPrimitive.CheckboxItem, { ref, className: cn(itemCls3, "pl-8", className), checked, ...props, children: [
|
|
2324
|
-
/* @__PURE__ */
|
|
2335
|
+
/* @__PURE__ */ jsx48("span", { className: "absolute left-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ jsx48(MenubarPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx48(Check5, { className: "size-4" }) }) }),
|
|
2325
2336
|
children
|
|
2326
2337
|
] }));
|
|
2327
2338
|
MenubarCheckboxItem.displayName = MenubarPrimitive.CheckboxItem.displayName;
|
|
2328
2339
|
var MenubarRadioItem = React43.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs23(MenubarPrimitive.RadioItem, { ref, className: cn(itemCls3, "pl-8", className), ...props, children: [
|
|
2329
|
-
/* @__PURE__ */
|
|
2340
|
+
/* @__PURE__ */ jsx48("span", { className: "absolute left-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ jsx48(MenubarPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx48(Circle4, { className: "size-2 fill-current" }) }) }),
|
|
2330
2341
|
children
|
|
2331
2342
|
] }));
|
|
2332
2343
|
MenubarRadioItem.displayName = MenubarPrimitive.RadioItem.displayName;
|
|
2333
|
-
var MenubarLabel = React43.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */
|
|
2344
|
+
var MenubarLabel = React43.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx48(MenubarPrimitive.Label, { ref, className: cn("px-2 py-1.5 text-sm font-semibold", inset && "pl-8", className), ...props }));
|
|
2334
2345
|
MenubarLabel.displayName = MenubarPrimitive.Label.displayName;
|
|
2335
|
-
var MenubarSeparator = React43.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
2346
|
+
var MenubarSeparator = React43.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx48(MenubarPrimitive.Separator, { ref, className: cn("-mx-1 my-1 h-px bg-border", className), ...props }));
|
|
2336
2347
|
MenubarSeparator.displayName = MenubarPrimitive.Separator.displayName;
|
|
2337
|
-
var MenubarShortcut = ({ className, ...props }) => /* @__PURE__ */
|
|
2348
|
+
var MenubarShortcut = ({ className, ...props }) => /* @__PURE__ */ jsx48("span", { className: cn("ml-auto text-xs tracking-widest text-muted-foreground", className), ...props });
|
|
2338
2349
|
MenubarShortcut.displayName = "MenubarShortcut";
|
|
2339
2350
|
|
|
2340
2351
|
// src/components/navigation-menu.tsx
|
|
@@ -2342,7 +2353,7 @@ import * as React44 from "react";
|
|
|
2342
2353
|
import * as NavigationMenuPrimitive from "@radix-ui/react-navigation-menu";
|
|
2343
2354
|
import { cva as cva12 } from "class-variance-authority";
|
|
2344
2355
|
import { ChevronDown as ChevronDown3 } from "lucide-react";
|
|
2345
|
-
import { jsx as
|
|
2356
|
+
import { jsx as jsx49, jsxs as jsxs24 } from "react/jsx-runtime";
|
|
2346
2357
|
var NavigationMenu = React44.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs24(
|
|
2347
2358
|
NavigationMenuPrimitive.Root,
|
|
2348
2359
|
{
|
|
@@ -2351,12 +2362,12 @@ var NavigationMenu = React44.forwardRef(({ className, children, ...props }, ref)
|
|
|
2351
2362
|
...props,
|
|
2352
2363
|
children: [
|
|
2353
2364
|
children,
|
|
2354
|
-
/* @__PURE__ */
|
|
2365
|
+
/* @__PURE__ */ jsx49(NavigationMenuViewport, {})
|
|
2355
2366
|
]
|
|
2356
2367
|
}
|
|
2357
2368
|
));
|
|
2358
2369
|
NavigationMenu.displayName = NavigationMenuPrimitive.Root.displayName;
|
|
2359
|
-
var NavigationMenuList = React44.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
2370
|
+
var NavigationMenuList = React44.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx49(
|
|
2360
2371
|
NavigationMenuPrimitive.List,
|
|
2361
2372
|
{
|
|
2362
2373
|
ref,
|
|
@@ -2371,7 +2382,7 @@ var navigationMenuTriggerStyle = cva12(
|
|
|
2371
2382
|
);
|
|
2372
2383
|
var NavigationMenuTrigger = React44.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs24(NavigationMenuPrimitive.Trigger, { ref, className: cn(navigationMenuTriggerStyle(), "group", className), ...props, children: [
|
|
2373
2384
|
children,
|
|
2374
|
-
/* @__PURE__ */
|
|
2385
|
+
/* @__PURE__ */ jsx49(
|
|
2375
2386
|
ChevronDown3,
|
|
2376
2387
|
{
|
|
2377
2388
|
className: "relative top-px ml-1 size-3 transition-transform duration-fast group-data-[state=open]:rotate-180",
|
|
@@ -2380,7 +2391,7 @@ var NavigationMenuTrigger = React44.forwardRef(({ className, children, ...props
|
|
|
2380
2391
|
)
|
|
2381
2392
|
] }));
|
|
2382
2393
|
NavigationMenuTrigger.displayName = NavigationMenuPrimitive.Trigger.displayName;
|
|
2383
|
-
var NavigationMenuContent = React44.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
2394
|
+
var NavigationMenuContent = React44.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx49(
|
|
2384
2395
|
NavigationMenuPrimitive.Content,
|
|
2385
2396
|
{
|
|
2386
2397
|
ref,
|
|
@@ -2393,7 +2404,7 @@ var NavigationMenuContent = React44.forwardRef(({ className, ...props }, ref) =>
|
|
|
2393
2404
|
));
|
|
2394
2405
|
NavigationMenuContent.displayName = NavigationMenuPrimitive.Content.displayName;
|
|
2395
2406
|
var NavigationMenuLink = NavigationMenuPrimitive.Link;
|
|
2396
|
-
var NavigationMenuViewport = React44.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
2407
|
+
var NavigationMenuViewport = React44.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx49("div", { className: "absolute left-0 top-full flex justify-center", children: /* @__PURE__ */ jsx49(
|
|
2397
2408
|
NavigationMenuPrimitive.Viewport,
|
|
2398
2409
|
{
|
|
2399
2410
|
ref,
|
|
@@ -2405,7 +2416,7 @@ var NavigationMenuViewport = React44.forwardRef(({ className, ...props }, ref) =
|
|
|
2405
2416
|
}
|
|
2406
2417
|
) }));
|
|
2407
2418
|
NavigationMenuViewport.displayName = NavigationMenuPrimitive.Viewport.displayName;
|
|
2408
|
-
var NavigationMenuIndicator = React44.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
2419
|
+
var NavigationMenuIndicator = React44.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx49(
|
|
2409
2420
|
NavigationMenuPrimitive.Indicator,
|
|
2410
2421
|
{
|
|
2411
2422
|
ref,
|
|
@@ -2414,7 +2425,7 @@ var NavigationMenuIndicator = React44.forwardRef(({ className, ...props }, ref)
|
|
|
2414
2425
|
className
|
|
2415
2426
|
),
|
|
2416
2427
|
...props,
|
|
2417
|
-
children: /* @__PURE__ */
|
|
2428
|
+
children: /* @__PURE__ */ jsx49("div", { className: "relative top-[60%] size-2 rotate-45 rounded-tl-sm bg-border shadow-md" })
|
|
2418
2429
|
}
|
|
2419
2430
|
));
|
|
2420
2431
|
NavigationMenuIndicator.displayName = NavigationMenuPrimitive.Indicator.displayName;
|
|
@@ -2422,15 +2433,15 @@ NavigationMenuIndicator.displayName = NavigationMenuPrimitive.Indicator.displayN
|
|
|
2422
2433
|
// src/components/resizable.tsx
|
|
2423
2434
|
import { GripVertical } from "lucide-react";
|
|
2424
2435
|
import * as ResizablePrimitive from "react-resizable-panels";
|
|
2425
|
-
import { jsx as
|
|
2426
|
-
var ResizablePanelGroup = ({ className, direction = "horizontal", ...props }) => /* @__PURE__ */
|
|
2436
|
+
import { jsx as jsx50 } from "react/jsx-runtime";
|
|
2437
|
+
var ResizablePanelGroup = ({ className, direction = "horizontal", ...props }) => /* @__PURE__ */ jsx50(ResizablePrimitive.Group, { className: cn("flex h-full w-full", className), orientation: direction, ...props });
|
|
2427
2438
|
var asPercent = (value) => typeof value === "number" ? `${value}%` : value;
|
|
2428
2439
|
var ResizablePanel = ({
|
|
2429
2440
|
defaultSize,
|
|
2430
2441
|
minSize,
|
|
2431
2442
|
maxSize,
|
|
2432
2443
|
...props
|
|
2433
|
-
}) => /* @__PURE__ */
|
|
2444
|
+
}) => /* @__PURE__ */ jsx50(
|
|
2434
2445
|
ResizablePrimitive.Panel,
|
|
2435
2446
|
{
|
|
2436
2447
|
defaultSize: asPercent(defaultSize),
|
|
@@ -2443,7 +2454,7 @@ var ResizableHandle = ({
|
|
|
2443
2454
|
withHandle,
|
|
2444
2455
|
className,
|
|
2445
2456
|
...props
|
|
2446
|
-
}) => /* @__PURE__ */
|
|
2457
|
+
}) => /* @__PURE__ */ jsx50(
|
|
2447
2458
|
ResizablePrimitive.Separator,
|
|
2448
2459
|
{
|
|
2449
2460
|
className: cn(
|
|
@@ -2451,7 +2462,7 @@ var ResizableHandle = ({
|
|
|
2451
2462
|
className
|
|
2452
2463
|
),
|
|
2453
2464
|
...props,
|
|
2454
|
-
children: withHandle && /* @__PURE__ */
|
|
2465
|
+
children: withHandle && /* @__PURE__ */ jsx50("div", { className: "z-docked flex h-4 w-3 items-center justify-center rounded-sm border bg-border", children: /* @__PURE__ */ jsx50(GripVertical, { className: "size-2.5" }) })
|
|
2455
2466
|
}
|
|
2456
2467
|
);
|
|
2457
2468
|
|
|
@@ -2460,7 +2471,7 @@ import * as React45 from "react";
|
|
|
2460
2471
|
import { Slot as Slot7 } from "@radix-ui/react-slot";
|
|
2461
2472
|
import { cva as cva13 } from "class-variance-authority";
|
|
2462
2473
|
import { PanelLeft } from "lucide-react";
|
|
2463
|
-
import { jsx as
|
|
2474
|
+
import { jsx as jsx51, jsxs as jsxs25 } from "react/jsx-runtime";
|
|
2464
2475
|
var SIDEBAR_COOKIE_NAME = "sidebar:state";
|
|
2465
2476
|
var SIDEBAR_WIDTH = "16rem";
|
|
2466
2477
|
var SIDEBAR_WIDTH_MOBILE = "18rem";
|
|
@@ -2515,7 +2526,7 @@ var SidebarProvider = React45.forwardRef(({ defaultOpen = true, open: openProp,
|
|
|
2515
2526
|
() => ({ state, open, setOpen, isMobile, openMobile, setOpenMobile, toggleSidebar }),
|
|
2516
2527
|
[state, open, setOpen, isMobile, openMobile, toggleSidebar]
|
|
2517
2528
|
);
|
|
2518
|
-
return /* @__PURE__ */
|
|
2529
|
+
return /* @__PURE__ */ jsx51(SidebarContext.Provider, { value: contextValue, children: /* @__PURE__ */ jsx51(TooltipProvider, { delayDuration: 0, children: /* @__PURE__ */ jsx51(
|
|
2519
2530
|
"div",
|
|
2520
2531
|
{
|
|
2521
2532
|
ref,
|
|
@@ -2530,10 +2541,10 @@ SidebarProvider.displayName = "SidebarProvider";
|
|
|
2530
2541
|
var Sidebar = React45.forwardRef(({ side = "left", variant = "sidebar", collapsible = "offcanvas", className, children, ...props }, ref) => {
|
|
2531
2542
|
const { isMobile, state, openMobile, setOpenMobile } = useSidebar();
|
|
2532
2543
|
if (collapsible === "none") {
|
|
2533
|
-
return /* @__PURE__ */
|
|
2544
|
+
return /* @__PURE__ */ jsx51("div", { ref, className: cn("flex h-full w-[--sidebar-width] flex-col bg-sidebar text-sidebar-foreground", className), ...props, children });
|
|
2534
2545
|
}
|
|
2535
2546
|
if (isMobile) {
|
|
2536
|
-
return /* @__PURE__ */
|
|
2547
|
+
return /* @__PURE__ */ jsx51(Sheet, { open: openMobile, onOpenChange: setOpenMobile, ...props, children: /* @__PURE__ */ jsxs25(
|
|
2537
2548
|
SheetContent,
|
|
2538
2549
|
{
|
|
2539
2550
|
"data-sidebar": "sidebar",
|
|
@@ -2543,10 +2554,10 @@ var Sidebar = React45.forwardRef(({ side = "left", variant = "sidebar", collapsi
|
|
|
2543
2554
|
side,
|
|
2544
2555
|
children: [
|
|
2545
2556
|
/* @__PURE__ */ jsxs25(SheetHeader, { className: "sr-only", children: [
|
|
2546
|
-
/* @__PURE__ */
|
|
2547
|
-
/* @__PURE__ */
|
|
2557
|
+
/* @__PURE__ */ jsx51(SheetTitle, { children: "Sidebar" }),
|
|
2558
|
+
/* @__PURE__ */ jsx51(SheetDescription, { children: "Displays the mobile sidebar." })
|
|
2548
2559
|
] }),
|
|
2549
|
-
/* @__PURE__ */
|
|
2560
|
+
/* @__PURE__ */ jsx51("div", { className: "flex h-full w-full flex-col", children })
|
|
2550
2561
|
]
|
|
2551
2562
|
}
|
|
2552
2563
|
) });
|
|
@@ -2561,7 +2572,7 @@ var Sidebar = React45.forwardRef(({ side = "left", variant = "sidebar", collapsi
|
|
|
2561
2572
|
"data-variant": variant,
|
|
2562
2573
|
"data-side": side,
|
|
2563
2574
|
children: [
|
|
2564
|
-
/* @__PURE__ */
|
|
2575
|
+
/* @__PURE__ */ jsx51(
|
|
2565
2576
|
"div",
|
|
2566
2577
|
{
|
|
2567
2578
|
className: cn(
|
|
@@ -2571,7 +2582,7 @@ var Sidebar = React45.forwardRef(({ side = "left", variant = "sidebar", collapsi
|
|
|
2571
2582
|
)
|
|
2572
2583
|
}
|
|
2573
2584
|
),
|
|
2574
|
-
/* @__PURE__ */
|
|
2585
|
+
/* @__PURE__ */ jsx51(
|
|
2575
2586
|
"div",
|
|
2576
2587
|
{
|
|
2577
2588
|
className: cn(
|
|
@@ -2581,7 +2592,7 @@ var Sidebar = React45.forwardRef(({ side = "left", variant = "sidebar", collapsi
|
|
|
2581
2592
|
className
|
|
2582
2593
|
),
|
|
2583
2594
|
...props,
|
|
2584
|
-
children: /* @__PURE__ */
|
|
2595
|
+
children: /* @__PURE__ */ jsx51(
|
|
2585
2596
|
"div",
|
|
2586
2597
|
{
|
|
2587
2598
|
"data-sidebar": "sidebar",
|
|
@@ -2612,15 +2623,15 @@ var SidebarTrigger = React45.forwardRef(
|
|
|
2612
2623
|
},
|
|
2613
2624
|
...props,
|
|
2614
2625
|
children: [
|
|
2615
|
-
/* @__PURE__ */
|
|
2616
|
-
/* @__PURE__ */
|
|
2626
|
+
/* @__PURE__ */ jsx51(PanelLeft, {}),
|
|
2627
|
+
/* @__PURE__ */ jsx51("span", { className: "sr-only", children: "Toggle Sidebar" })
|
|
2617
2628
|
]
|
|
2618
2629
|
}
|
|
2619
2630
|
);
|
|
2620
2631
|
}
|
|
2621
2632
|
);
|
|
2622
2633
|
SidebarTrigger.displayName = "SidebarTrigger";
|
|
2623
|
-
var SidebarInset = React45.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
2634
|
+
var SidebarInset = React45.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx51(
|
|
2624
2635
|
"main",
|
|
2625
2636
|
{
|
|
2626
2637
|
ref,
|
|
@@ -2633,15 +2644,15 @@ var SidebarInset = React45.forwardRef(({ className, ...props }, ref) => /* @__PU
|
|
|
2633
2644
|
}
|
|
2634
2645
|
));
|
|
2635
2646
|
SidebarInset.displayName = "SidebarInset";
|
|
2636
|
-
var SidebarHeader = React45.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
2647
|
+
var SidebarHeader = React45.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx51("div", { ref, "data-sidebar": "header", className: cn("flex flex-col gap-2 p-2", className), ...props }));
|
|
2637
2648
|
SidebarHeader.displayName = "SidebarHeader";
|
|
2638
|
-
var SidebarFooter = React45.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
2649
|
+
var SidebarFooter = React45.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx51("div", { ref, "data-sidebar": "footer", className: cn("flex flex-col gap-2 p-2", className), ...props }));
|
|
2639
2650
|
SidebarFooter.displayName = "SidebarFooter";
|
|
2640
2651
|
var SidebarSeparator = React45.forwardRef(
|
|
2641
|
-
({ className, ...props }, ref) => /* @__PURE__ */
|
|
2652
|
+
({ className, ...props }, ref) => /* @__PURE__ */ jsx51(Separator3, { ref, "data-sidebar": "separator", className: cn("mx-2 w-auto bg-sidebar-border", className), ...props })
|
|
2642
2653
|
);
|
|
2643
2654
|
SidebarSeparator.displayName = "SidebarSeparator";
|
|
2644
|
-
var SidebarContent = React45.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
2655
|
+
var SidebarContent = React45.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx51(
|
|
2645
2656
|
"div",
|
|
2646
2657
|
{
|
|
2647
2658
|
ref,
|
|
@@ -2651,11 +2662,11 @@ var SidebarContent = React45.forwardRef(({ className, ...props }, ref) => /* @__
|
|
|
2651
2662
|
}
|
|
2652
2663
|
));
|
|
2653
2664
|
SidebarContent.displayName = "SidebarContent";
|
|
2654
|
-
var SidebarGroup = React45.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
2665
|
+
var SidebarGroup = React45.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx51("div", { ref, "data-sidebar": "group", className: cn("relative flex w-full min-w-0 flex-col p-2", className), ...props }));
|
|
2655
2666
|
SidebarGroup.displayName = "SidebarGroup";
|
|
2656
2667
|
var SidebarGroupLabel = React45.forwardRef(({ className, asChild = false, ...props }, ref) => {
|
|
2657
2668
|
const Comp = asChild ? Slot7 : "div";
|
|
2658
|
-
return /* @__PURE__ */
|
|
2669
|
+
return /* @__PURE__ */ jsx51(
|
|
2659
2670
|
Comp,
|
|
2660
2671
|
{
|
|
2661
2672
|
ref,
|
|
@@ -2671,12 +2682,12 @@ var SidebarGroupLabel = React45.forwardRef(({ className, asChild = false, ...pro
|
|
|
2671
2682
|
});
|
|
2672
2683
|
SidebarGroupLabel.displayName = "SidebarGroupLabel";
|
|
2673
2684
|
var SidebarGroupContent = React45.forwardRef(
|
|
2674
|
-
({ className, ...props }, ref) => /* @__PURE__ */
|
|
2685
|
+
({ className, ...props }, ref) => /* @__PURE__ */ jsx51("div", { ref, "data-sidebar": "group-content", className: cn("w-full text-sm", className), ...props })
|
|
2675
2686
|
);
|
|
2676
2687
|
SidebarGroupContent.displayName = "SidebarGroupContent";
|
|
2677
|
-
var SidebarMenu = React45.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
2688
|
+
var SidebarMenu = React45.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx51("ul", { ref, "data-sidebar": "menu", className: cn("flex w-full min-w-0 flex-col gap-1", className), ...props }));
|
|
2678
2689
|
SidebarMenu.displayName = "SidebarMenu";
|
|
2679
|
-
var SidebarMenuItem = React45.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
2690
|
+
var SidebarMenuItem = React45.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx51("li", { ref, "data-sidebar": "menu-item", className: cn("group/menu-item relative", className), ...props }));
|
|
2680
2691
|
SidebarMenuItem.displayName = "SidebarMenuItem";
|
|
2681
2692
|
var sidebarMenuButtonVariants = cva13(
|
|
2682
2693
|
"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",
|
|
@@ -2698,7 +2709,7 @@ var sidebarMenuButtonVariants = cva13(
|
|
|
2698
2709
|
var SidebarMenuButton = React45.forwardRef(({ asChild = false, isActive = false, variant = "default", size = "default", tooltip, className, ...props }, ref) => {
|
|
2699
2710
|
const Comp = asChild ? Slot7 : "button";
|
|
2700
2711
|
const { isMobile, state } = useSidebar();
|
|
2701
|
-
const button = /* @__PURE__ */
|
|
2712
|
+
const button = /* @__PURE__ */ jsx51(
|
|
2702
2713
|
Comp,
|
|
2703
2714
|
{
|
|
2704
2715
|
ref,
|
|
@@ -2712,28 +2723,28 @@ var SidebarMenuButton = React45.forwardRef(({ asChild = false, isActive = false,
|
|
|
2712
2723
|
if (!tooltip) return button;
|
|
2713
2724
|
const tooltipProps = typeof tooltip === "string" ? { children: tooltip } : tooltip;
|
|
2714
2725
|
return /* @__PURE__ */ jsxs25(Tooltip, { children: [
|
|
2715
|
-
/* @__PURE__ */
|
|
2716
|
-
/* @__PURE__ */
|
|
2726
|
+
/* @__PURE__ */ jsx51(TooltipTrigger, { asChild: true, children: button }),
|
|
2727
|
+
/* @__PURE__ */ jsx51(TooltipContent, { side: "right", align: "center", hidden: state !== "collapsed" || isMobile, ...tooltipProps })
|
|
2717
2728
|
] });
|
|
2718
2729
|
});
|
|
2719
2730
|
SidebarMenuButton.displayName = "SidebarMenuButton";
|
|
2720
2731
|
var SidebarMenuSkeleton = React45.forwardRef(({ className, showIcon = false, ...props }, ref) => {
|
|
2721
2732
|
const width = React45.useMemo(() => `${Math.floor(Math.random() * 40) + 50}%`, []);
|
|
2722
2733
|
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: [
|
|
2723
|
-
showIcon && /* @__PURE__ */
|
|
2724
|
-
/* @__PURE__ */
|
|
2734
|
+
showIcon && /* @__PURE__ */ jsx51(Skeleton, { className: "size-4 rounded-md" }),
|
|
2735
|
+
/* @__PURE__ */ jsx51(Skeleton, { className: "h-4 max-w-[--skeleton-width] flex-1", style: { "--skeleton-width": width } })
|
|
2725
2736
|
] });
|
|
2726
2737
|
});
|
|
2727
2738
|
SidebarMenuSkeleton.displayName = "SidebarMenuSkeleton";
|
|
2728
2739
|
var SidebarInput = React45.forwardRef(
|
|
2729
|
-
({ className, ...props }, ref) => /* @__PURE__ */
|
|
2740
|
+
({ className, ...props }, ref) => /* @__PURE__ */ jsx51(Input, { ref, "data-sidebar": "input", className: cn("h-8 w-full bg-background shadow-none", className), ...props })
|
|
2730
2741
|
);
|
|
2731
2742
|
SidebarInput.displayName = "SidebarInput";
|
|
2732
2743
|
|
|
2733
2744
|
// src/components/audio-player.tsx
|
|
2734
2745
|
import * as React46 from "react";
|
|
2735
2746
|
import { Pause, Play, SkipBack, SkipForward } from "lucide-react";
|
|
2736
|
-
import { jsx as
|
|
2747
|
+
import { jsx as jsx52, jsxs as jsxs26 } from "react/jsx-runtime";
|
|
2737
2748
|
function fmt(t) {
|
|
2738
2749
|
if (!Number.isFinite(t)) return "0:00";
|
|
2739
2750
|
const m = Math.floor(t / 60);
|
|
@@ -2757,7 +2768,7 @@ var AudioPlayer = React46.forwardRef(
|
|
|
2757
2768
|
if (a) a.currentTime = Math.max(0, Math.min(duration || 0, t));
|
|
2758
2769
|
};
|
|
2759
2770
|
const skip = (delta) => seek(current + delta);
|
|
2760
|
-
const audio = /* @__PURE__ */
|
|
2771
|
+
const audio = /* @__PURE__ */ jsx52(
|
|
2761
2772
|
"audio",
|
|
2762
2773
|
{
|
|
2763
2774
|
ref: audioRef,
|
|
@@ -2770,7 +2781,7 @@ var AudioPlayer = React46.forwardRef(
|
|
|
2770
2781
|
onEnded: () => setPlaying(false)
|
|
2771
2782
|
}
|
|
2772
2783
|
);
|
|
2773
|
-
const PlayPause = ({ size = 44 }) => /* @__PURE__ */
|
|
2784
|
+
const PlayPause = ({ size = 44 }) => /* @__PURE__ */ jsx52(
|
|
2774
2785
|
"button",
|
|
2775
2786
|
{
|
|
2776
2787
|
type: "button",
|
|
@@ -2778,7 +2789,7 @@ var AudioPlayer = React46.forwardRef(
|
|
|
2778
2789
|
"aria-label": playing ? "Pause" : "Play",
|
|
2779
2790
|
className: "grid shrink-0 place-items-center rounded-full bg-primary text-primary-foreground outline-none transition-transform hover:scale-105 focus-visible:shadow-focus",
|
|
2780
2791
|
style: { width: size, height: size },
|
|
2781
|
-
children: playing ? /* @__PURE__ */
|
|
2792
|
+
children: playing ? /* @__PURE__ */ jsx52(Pause, { className: "size-1/3 fill-current" }) : /* @__PURE__ */ jsx52(Play, { className: "size-1/3 translate-x-px fill-current" })
|
|
2782
2793
|
}
|
|
2783
2794
|
);
|
|
2784
2795
|
const iconBtn = "grid size-8 shrink-0 place-items-center rounded-full text-muted-foreground outline-none transition-colors hover:bg-muted hover:text-foreground focus-visible:text-foreground disabled:opacity-40 [&>svg]:size-4";
|
|
@@ -2795,14 +2806,14 @@ var AudioPlayer = React46.forwardRef(
|
|
|
2795
2806
|
...props,
|
|
2796
2807
|
children: [
|
|
2797
2808
|
audio,
|
|
2798
|
-
coverSrc ? /* @__PURE__ */
|
|
2809
|
+
coverSrc ? /* @__PURE__ */ jsx52("img", { src: coverSrc, alt: "", className: "size-10 shrink-0 rounded-full object-cover" }) : /* @__PURE__ */ jsx52("div", { className: "size-10 shrink-0 rounded-full bg-muted" }),
|
|
2799
2810
|
/* @__PURE__ */ jsxs26("div", { className: "min-w-0 flex-1", children: [
|
|
2800
|
-
/* @__PURE__ */
|
|
2801
|
-
artist && /* @__PURE__ */
|
|
2811
|
+
/* @__PURE__ */ jsx52("p", { className: "truncate text-label-md font-semibold text-foreground", children: title ?? "Audio" }),
|
|
2812
|
+
artist && /* @__PURE__ */ jsx52("p", { className: "truncate text-body-sm text-muted-foreground", children: artist })
|
|
2802
2813
|
] }),
|
|
2803
|
-
/* @__PURE__ */
|
|
2804
|
-
/* @__PURE__ */
|
|
2805
|
-
/* @__PURE__ */
|
|
2814
|
+
/* @__PURE__ */ jsx52("button", { type: "button", onClick: () => skip(skipBy), "aria-label": `Forward ${skipBy}s`, className: iconBtn, children: /* @__PURE__ */ jsx52(SkipForward, {}) }),
|
|
2815
|
+
/* @__PURE__ */ jsx52(PlayPause, { size: 36 }),
|
|
2816
|
+
/* @__PURE__ */ jsx52("div", { className: "absolute inset-x-0 bottom-0 h-1 bg-muted", children: /* @__PURE__ */ jsx52("div", { className: "h-full bg-primary transition-[width]", style: { width: `${pct}%` } }) })
|
|
2806
2817
|
]
|
|
2807
2818
|
}
|
|
2808
2819
|
);
|
|
@@ -2815,7 +2826,7 @@ var AudioPlayer = React46.forwardRef(
|
|
|
2815
2826
|
...props,
|
|
2816
2827
|
children: [
|
|
2817
2828
|
audio,
|
|
2818
|
-
/* @__PURE__ */
|
|
2829
|
+
/* @__PURE__ */ jsx52(
|
|
2819
2830
|
Slider,
|
|
2820
2831
|
{
|
|
2821
2832
|
value: [current],
|
|
@@ -2826,15 +2837,15 @@ var AudioPlayer = React46.forwardRef(
|
|
|
2826
2837
|
}
|
|
2827
2838
|
),
|
|
2828
2839
|
/* @__PURE__ */ jsxs26("div", { className: "flex justify-between text-body-sm text-muted-foreground", children: [
|
|
2829
|
-
/* @__PURE__ */
|
|
2830
|
-
/* @__PURE__ */
|
|
2840
|
+
/* @__PURE__ */ jsx52("span", { children: fmt(current) }),
|
|
2841
|
+
/* @__PURE__ */ jsx52("span", { children: fmt(duration) })
|
|
2831
2842
|
] }),
|
|
2832
2843
|
/* @__PURE__ */ jsxs26("div", { className: "mt-1 flex items-center justify-center gap-3", children: [
|
|
2833
|
-
/* @__PURE__ */
|
|
2834
|
-
/* @__PURE__ */
|
|
2835
|
-
/* @__PURE__ */
|
|
2836
|
-
/* @__PURE__ */
|
|
2837
|
-
/* @__PURE__ */
|
|
2844
|
+
/* @__PURE__ */ jsx52("button", { type: "button", onClick: onPrev, disabled: !onPrev, "aria-label": "Previous track", className: iconBtn, children: /* @__PURE__ */ jsx52(SkipBack, { className: "fill-current" }) }),
|
|
2845
|
+
/* @__PURE__ */ jsx52("button", { type: "button", onClick: () => skip(-skipBy), "aria-label": `Back ${skipBy}s`, className: iconBtn, children: /* @__PURE__ */ jsx52(SkipBack, {}) }),
|
|
2846
|
+
/* @__PURE__ */ jsx52(PlayPause, {}),
|
|
2847
|
+
/* @__PURE__ */ jsx52("button", { type: "button", onClick: () => skip(skipBy), "aria-label": `Forward ${skipBy}s`, className: iconBtn, children: /* @__PURE__ */ jsx52(SkipForward, {}) }),
|
|
2848
|
+
/* @__PURE__ */ jsx52("button", { type: "button", onClick: onNext, disabled: !onNext, "aria-label": "Next track", className: iconBtn, children: /* @__PURE__ */ jsx52(SkipForward, { className: "fill-current" }) })
|
|
2838
2849
|
] })
|
|
2839
2850
|
]
|
|
2840
2851
|
}
|
|
@@ -2845,7 +2856,7 @@ AudioPlayer.displayName = "AudioPlayer";
|
|
|
2845
2856
|
|
|
2846
2857
|
// src/components/circular-progress.tsx
|
|
2847
2858
|
import * as React47 from "react";
|
|
2848
|
-
import { jsx as
|
|
2859
|
+
import { jsx as jsx53, jsxs as jsxs27 } from "react/jsx-runtime";
|
|
2849
2860
|
var CircularProgress = React47.forwardRef(
|
|
2850
2861
|
({ value = 0, size = 48, strokeWidth = 4, showValue = false, label, className, ...props }, ref) => {
|
|
2851
2862
|
const v = Math.max(0, Math.min(100, value));
|
|
@@ -2864,7 +2875,7 @@ var CircularProgress = React47.forwardRef(
|
|
|
2864
2875
|
...props,
|
|
2865
2876
|
children: [
|
|
2866
2877
|
/* @__PURE__ */ jsxs27("svg", { width: size, height: size, className: "-rotate-90", "aria-hidden": true, children: [
|
|
2867
|
-
/* @__PURE__ */
|
|
2878
|
+
/* @__PURE__ */ jsx53(
|
|
2868
2879
|
"circle",
|
|
2869
2880
|
{
|
|
2870
2881
|
cx: size / 2,
|
|
@@ -2875,7 +2886,7 @@ var CircularProgress = React47.forwardRef(
|
|
|
2875
2886
|
className: "stroke-muted"
|
|
2876
2887
|
}
|
|
2877
2888
|
),
|
|
2878
|
-
/* @__PURE__ */
|
|
2889
|
+
/* @__PURE__ */ jsx53(
|
|
2879
2890
|
"circle",
|
|
2880
2891
|
{
|
|
2881
2892
|
cx: size / 2,
|
|
@@ -2890,7 +2901,7 @@ var CircularProgress = React47.forwardRef(
|
|
|
2890
2901
|
}
|
|
2891
2902
|
)
|
|
2892
2903
|
] }),
|
|
2893
|
-
(showValue || label != null) && /* @__PURE__ */
|
|
2904
|
+
(showValue || label != null) && /* @__PURE__ */ jsx53("span", { className: "absolute text-label-md text-foreground", children: label ?? `${Math.round(v)}%` })
|
|
2894
2905
|
]
|
|
2895
2906
|
}
|
|
2896
2907
|
);
|
|
@@ -2901,7 +2912,7 @@ CircularProgress.displayName = "CircularProgress";
|
|
|
2901
2912
|
// src/components/image.tsx
|
|
2902
2913
|
import * as React48 from "react";
|
|
2903
2914
|
import { ImageOff } from "lucide-react";
|
|
2904
|
-
import { jsx as
|
|
2915
|
+
import { jsx as jsx54 } from "react/jsx-runtime";
|
|
2905
2916
|
var RATIOS = {
|
|
2906
2917
|
"1:1": 1,
|
|
2907
2918
|
"3:2": 3 / 2,
|
|
@@ -2928,7 +2939,7 @@ var Image2 = React48.forwardRef(
|
|
|
2928
2939
|
if (!img) return;
|
|
2929
2940
|
if (img.complete) setStatus(img.naturalWidth > 0 ? "loaded" : "error");
|
|
2930
2941
|
}, [props.src]);
|
|
2931
|
-
return /* @__PURE__ */
|
|
2942
|
+
return /* @__PURE__ */ jsx54(
|
|
2932
2943
|
"div",
|
|
2933
2944
|
{
|
|
2934
2945
|
className: cn(
|
|
@@ -2937,7 +2948,7 @@ var Image2 = React48.forwardRef(
|
|
|
2937
2948
|
className
|
|
2938
2949
|
),
|
|
2939
2950
|
style: { aspectRatio: r },
|
|
2940
|
-
children: status === "error" ? /* @__PURE__ */
|
|
2951
|
+
children: status === "error" ? /* @__PURE__ */ jsx54("div", { className: "absolute inset-0 grid place-items-center text-muted-foreground", children: fallback ?? /* @__PURE__ */ jsx54(ImageOff, { className: "size-6" }) }) : /* @__PURE__ */ jsx54(
|
|
2941
2952
|
"img",
|
|
2942
2953
|
{
|
|
2943
2954
|
ref: setRef,
|
|
@@ -2967,7 +2978,7 @@ Image2.displayName = "Image";
|
|
|
2967
2978
|
import * as React49 from "react";
|
|
2968
2979
|
import { cva as cva14 } from "class-variance-authority";
|
|
2969
2980
|
import { CircleAlert as CircleAlert2, CircleCheck as CircleCheck2, Info as Info2, TriangleAlert as TriangleAlert2, X as X5 } from "lucide-react";
|
|
2970
|
-
import { jsx as
|
|
2981
|
+
import { jsx as jsx55, jsxs as jsxs28 } from "react/jsx-runtime";
|
|
2971
2982
|
var informVariants = cva14(
|
|
2972
2983
|
"flex items-start gap-2.5 rounded-md p-3 text-body-sm font-sans [&>svg]:mt-0.5 [&>svg]:size-4 [&>svg]:shrink-0",
|
|
2973
2984
|
{
|
|
@@ -2994,9 +3005,9 @@ var Inform = React49.forwardRef(
|
|
|
2994
3005
|
({ className, variant = "information", hideIcon, onDismiss, action, children, ...props }, ref) => {
|
|
2995
3006
|
const Icon2 = ICON[variant ?? "information"];
|
|
2996
3007
|
return /* @__PURE__ */ jsxs28("div", { ref, role: "status", className: cn(informVariants({ variant }), className), ...props, children: [
|
|
2997
|
-
!hideIcon && /* @__PURE__ */
|
|
3008
|
+
!hideIcon && /* @__PURE__ */ jsx55(Icon2, {}),
|
|
2998
3009
|
/* @__PURE__ */ jsxs28("div", { className: "min-w-0 flex-1", children: [
|
|
2999
|
-
/* @__PURE__ */
|
|
3010
|
+
/* @__PURE__ */ jsx55("p", { className: "[&:not(:only-child)]:mb-2", children }),
|
|
3000
3011
|
action && /* @__PURE__ */ jsxs28(
|
|
3001
3012
|
"button",
|
|
3002
3013
|
{
|
|
@@ -3010,14 +3021,14 @@ var Inform = React49.forwardRef(
|
|
|
3010
3021
|
}
|
|
3011
3022
|
)
|
|
3012
3023
|
] }),
|
|
3013
|
-
onDismiss && /* @__PURE__ */
|
|
3024
|
+
onDismiss && /* @__PURE__ */ jsx55(
|
|
3014
3025
|
"button",
|
|
3015
3026
|
{
|
|
3016
3027
|
type: "button",
|
|
3017
3028
|
onClick: onDismiss,
|
|
3018
3029
|
"aria-label": "Dismiss",
|
|
3019
3030
|
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",
|
|
3020
|
-
children: /* @__PURE__ */
|
|
3031
|
+
children: /* @__PURE__ */ jsx55(X5, { className: "size-3.5" })
|
|
3021
3032
|
}
|
|
3022
3033
|
)
|
|
3023
3034
|
] });
|
|
@@ -3029,7 +3040,7 @@ Inform.displayName = "Inform";
|
|
|
3029
3040
|
import * as React50 from "react";
|
|
3030
3041
|
import { Star } from "lucide-react";
|
|
3031
3042
|
import { cva as cva15 } from "class-variance-authority";
|
|
3032
|
-
import { jsx as
|
|
3043
|
+
import { jsx as jsx56 } from "react/jsx-runtime";
|
|
3033
3044
|
var starVariants = cva15("transition-colors", {
|
|
3034
3045
|
variants: {
|
|
3035
3046
|
size: {
|
|
@@ -3051,7 +3062,7 @@ var Rating = React50.forwardRef(
|
|
|
3051
3062
|
setInternal(n);
|
|
3052
3063
|
onChange?.(n);
|
|
3053
3064
|
};
|
|
3054
|
-
return /* @__PURE__ */
|
|
3065
|
+
return /* @__PURE__ */ jsx56(
|
|
3055
3066
|
"div",
|
|
3056
3067
|
{
|
|
3057
3068
|
ref,
|
|
@@ -3063,7 +3074,7 @@ var Rating = React50.forwardRef(
|
|
|
3063
3074
|
children: Array.from({ length: max }, (_, i) => {
|
|
3064
3075
|
const n = i + 1;
|
|
3065
3076
|
const filled = n <= display;
|
|
3066
|
-
return /* @__PURE__ */
|
|
3077
|
+
return /* @__PURE__ */ jsx56(
|
|
3067
3078
|
"button",
|
|
3068
3079
|
{
|
|
3069
3080
|
type: "button",
|
|
@@ -3076,7 +3087,7 @@ var Rating = React50.forwardRef(
|
|
|
3076
3087
|
"rounded-[2px] outline-none disabled:cursor-default",
|
|
3077
3088
|
!readOnly && "cursor-pointer focus-visible:ring-2 focus-visible:ring-ring"
|
|
3078
3089
|
),
|
|
3079
|
-
children: /* @__PURE__ */
|
|
3090
|
+
children: /* @__PURE__ */ jsx56(
|
|
3080
3091
|
Star,
|
|
3081
3092
|
{
|
|
3082
3093
|
className: cn(
|
|
@@ -3098,7 +3109,7 @@ Rating.displayName = "Rating";
|
|
|
3098
3109
|
// src/components/spinner.tsx
|
|
3099
3110
|
import * as React51 from "react";
|
|
3100
3111
|
import { cva as cva16 } from "class-variance-authority";
|
|
3101
|
-
import { jsx as
|
|
3112
|
+
import { jsx as jsx57 } from "react/jsx-runtime";
|
|
3102
3113
|
var spinnerVariants = cva16("inline-block animate-spin rounded-full border-2 border-current border-t-transparent", {
|
|
3103
3114
|
variants: {
|
|
3104
3115
|
size: {
|
|
@@ -3115,15 +3126,15 @@ var spinnerVariants = cva16("inline-block animate-spin rounded-full border-2 bor
|
|
|
3115
3126
|
defaultVariants: { size: "md", variant: "default" }
|
|
3116
3127
|
});
|
|
3117
3128
|
var Spinner = React51.forwardRef(
|
|
3118
|
-
({ className, size, variant, label = "Loading\u2026", ...props }, ref) => /* @__PURE__ */
|
|
3129
|
+
({ className, size, variant, label = "Loading\u2026", ...props }, ref) => /* @__PURE__ */ jsx57("span", { ref, role: "status", "aria-label": label, className: cn(spinnerVariants({ size, variant }), className), ...props, children: /* @__PURE__ */ jsx57("span", { className: "sr-only", children: label }) })
|
|
3119
3130
|
);
|
|
3120
3131
|
Spinner.displayName = "Spinner";
|
|
3121
3132
|
|
|
3122
3133
|
// src/components/list.tsx
|
|
3123
3134
|
import * as React52 from "react";
|
|
3124
|
-
import { jsx as
|
|
3135
|
+
import { jsx as jsx58, jsxs as jsxs29 } from "react/jsx-runtime";
|
|
3125
3136
|
var List3 = React52.forwardRef(
|
|
3126
|
-
({ className, ...props }, ref) => /* @__PURE__ */
|
|
3137
|
+
({ className, ...props }, ref) => /* @__PURE__ */ jsx58("div", { ref, role: "list", className: cn("flex flex-col divide-y divide-border", className), ...props })
|
|
3127
3138
|
);
|
|
3128
3139
|
List3.displayName = "List";
|
|
3129
3140
|
var ListItem = React52.forwardRef(
|
|
@@ -3152,12 +3163,12 @@ var ListItem = React52.forwardRef(
|
|
|
3152
3163
|
),
|
|
3153
3164
|
...props,
|
|
3154
3165
|
children: [
|
|
3155
|
-
leading && /* @__PURE__ */
|
|
3166
|
+
leading && /* @__PURE__ */ jsx58("div", { className: "flex shrink-0 items-center justify-center", children: leading }),
|
|
3156
3167
|
/* @__PURE__ */ jsxs29("div", { className: "min-w-0 flex-1", children: [
|
|
3157
|
-
/* @__PURE__ */
|
|
3158
|
-
description && /* @__PURE__ */
|
|
3168
|
+
/* @__PURE__ */ jsx58("div", { className: "truncate text-body-md text-foreground", children: title }),
|
|
3169
|
+
description && /* @__PURE__ */ jsx58("div", { className: "truncate text-body-sm text-muted-foreground", children: description })
|
|
3159
3170
|
] }),
|
|
3160
|
-
trailing && /* @__PURE__ */
|
|
3171
|
+
trailing && /* @__PURE__ */ jsx58("div", { className: "flex shrink-0 items-center gap-2", children: trailing })
|
|
3161
3172
|
]
|
|
3162
3173
|
}
|
|
3163
3174
|
);
|
|
@@ -3168,11 +3179,11 @@ ListItem.displayName = "ListItem";
|
|
|
3168
3179
|
// src/components/stepper.tsx
|
|
3169
3180
|
import * as React53 from "react";
|
|
3170
3181
|
import { Check as Check6 } from "lucide-react";
|
|
3171
|
-
import { jsx as
|
|
3182
|
+
import { jsx as jsx59, jsxs as jsxs30 } from "react/jsx-runtime";
|
|
3172
3183
|
var Stepper = React53.forwardRef(
|
|
3173
3184
|
({ className, steps, current, orientation = "horizontal", ...props }, ref) => {
|
|
3174
3185
|
const vertical = orientation === "vertical";
|
|
3175
|
-
return /* @__PURE__ */
|
|
3186
|
+
return /* @__PURE__ */ jsx59("ol", { ref, className: cn("flex font-sans", vertical ? "flex-col" : "w-full items-start", className), ...props, children: steps.map((step, i) => {
|
|
3176
3187
|
const status = i < current ? "complete" : i === current ? "current" : "upcoming";
|
|
3177
3188
|
const isLast = i === steps.length - 1;
|
|
3178
3189
|
return /* @__PURE__ */ jsxs30(
|
|
@@ -3182,7 +3193,7 @@ var Stepper = React53.forwardRef(
|
|
|
3182
3193
|
"aria-current": status === "current" ? "step" : void 0,
|
|
3183
3194
|
children: [
|
|
3184
3195
|
/* @__PURE__ */ jsxs30("div", { className: cn("flex items-center", vertical ? "flex-col" : "w-full"), children: [
|
|
3185
|
-
/* @__PURE__ */
|
|
3196
|
+
/* @__PURE__ */ jsx59(
|
|
3186
3197
|
"span",
|
|
3187
3198
|
{
|
|
3188
3199
|
className: cn(
|
|
@@ -3191,10 +3202,10 @@ var Stepper = React53.forwardRef(
|
|
|
3191
3202
|
status === "current" && "border-2 border-primary text-primary",
|
|
3192
3203
|
status === "upcoming" && "border border-input text-muted-foreground"
|
|
3193
3204
|
),
|
|
3194
|
-
children: status === "complete" ? /* @__PURE__ */
|
|
3205
|
+
children: status === "complete" ? /* @__PURE__ */ jsx59(Check6, { className: "size-4" }) : i + 1
|
|
3195
3206
|
}
|
|
3196
3207
|
),
|
|
3197
|
-
!isLast && /* @__PURE__ */
|
|
3208
|
+
!isLast && /* @__PURE__ */ jsx59(
|
|
3198
3209
|
"span",
|
|
3199
3210
|
{
|
|
3200
3211
|
"aria-hidden": true,
|
|
@@ -3207,8 +3218,8 @@ var Stepper = React53.forwardRef(
|
|
|
3207
3218
|
)
|
|
3208
3219
|
] }),
|
|
3209
3220
|
/* @__PURE__ */ jsxs30("div", { className: cn(vertical && "pb-6"), children: [
|
|
3210
|
-
/* @__PURE__ */
|
|
3211
|
-
step.description && /* @__PURE__ */
|
|
3221
|
+
/* @__PURE__ */ jsx59("p", { className: cn("text-label-md font-medium", status === "upcoming" ? "text-muted-foreground" : "text-foreground"), children: step.label }),
|
|
3222
|
+
step.description && /* @__PURE__ */ jsx59("p", { className: "text-body-sm text-muted-foreground", children: step.description })
|
|
3212
3223
|
] })
|
|
3213
3224
|
]
|
|
3214
3225
|
},
|
|
@@ -3223,7 +3234,7 @@ Stepper.displayName = "Stepper";
|
|
|
3223
3234
|
import * as React54 from "react";
|
|
3224
3235
|
import { Slot as Slot8 } from "@radix-ui/react-slot";
|
|
3225
3236
|
import { cva as cva17 } from "class-variance-authority";
|
|
3226
|
-
import { jsx as
|
|
3237
|
+
import { jsx as jsx60 } from "react/jsx-runtime";
|
|
3227
3238
|
var fabVariants = cva17(
|
|
3228
3239
|
[
|
|
3229
3240
|
"inline-flex shrink-0 items-center justify-center gap-2 rounded-full font-sans font-medium",
|
|
@@ -3252,7 +3263,7 @@ var fabVariants = cva17(
|
|
|
3252
3263
|
var Fab = React54.forwardRef(
|
|
3253
3264
|
({ className, variant, size, extended, asChild = false, ...props }, ref) => {
|
|
3254
3265
|
const Comp = asChild ? Slot8 : "button";
|
|
3255
|
-
return /* @__PURE__ */
|
|
3266
|
+
return /* @__PURE__ */ jsx60(
|
|
3256
3267
|
Comp,
|
|
3257
3268
|
{
|
|
3258
3269
|
ref,
|
|
@@ -3267,9 +3278,9 @@ Fab.displayName = "Fab";
|
|
|
3267
3278
|
|
|
3268
3279
|
// src/components/tab-bar.tsx
|
|
3269
3280
|
import * as React55 from "react";
|
|
3270
|
-
import { jsx as
|
|
3281
|
+
import { jsx as jsx61, jsxs as jsxs31 } from "react/jsx-runtime";
|
|
3271
3282
|
var TabBar = React55.forwardRef(
|
|
3272
|
-
({ className, children, ...props }, ref) => /* @__PURE__ */
|
|
3283
|
+
({ className, children, ...props }, ref) => /* @__PURE__ */ jsx61(
|
|
3273
3284
|
"nav",
|
|
3274
3285
|
{
|
|
3275
3286
|
ref,
|
|
@@ -3297,9 +3308,9 @@ var TabBarItem = React55.forwardRef(
|
|
|
3297
3308
|
children: [
|
|
3298
3309
|
/* @__PURE__ */ jsxs31("span", { className: "relative [&_svg]:size-6", children: [
|
|
3299
3310
|
icon,
|
|
3300
|
-
badge && /* @__PURE__ */
|
|
3311
|
+
badge && /* @__PURE__ */ jsx61("span", { className: "absolute -right-1.5 -top-1 flex h-4 min-w-4 items-center justify-center rounded-full bg-destructive px-1 text-[10px] font-medium text-destructive-foreground", children: badge })
|
|
3301
3312
|
] }),
|
|
3302
|
-
/* @__PURE__ */
|
|
3313
|
+
/* @__PURE__ */ jsx61("span", { className: "font-medium", children: label })
|
|
3303
3314
|
]
|
|
3304
3315
|
}
|
|
3305
3316
|
)
|
|
@@ -3309,7 +3320,7 @@ TabBarItem.displayName = "TabBarItem";
|
|
|
3309
3320
|
// src/components/navigation-bar.tsx
|
|
3310
3321
|
import * as React56 from "react";
|
|
3311
3322
|
import { ChevronLeft as ChevronLeft3 } from "lucide-react";
|
|
3312
|
-
import { jsx as
|
|
3323
|
+
import { jsx as jsx62, jsxs as jsxs32 } from "react/jsx-runtime";
|
|
3313
3324
|
var NavigationBar = React56.forwardRef(
|
|
3314
3325
|
({ className, title, infoText, onBack, leading, actions, ...props }, ref) => /* @__PURE__ */ jsxs32(
|
|
3315
3326
|
"header",
|
|
@@ -3318,21 +3329,21 @@ var NavigationBar = React56.forwardRef(
|
|
|
3318
3329
|
className: cn("flex h-14 w-full items-center gap-2 border-b border-border bg-background px-2 font-sans", className),
|
|
3319
3330
|
...props,
|
|
3320
3331
|
children: [
|
|
3321
|
-
/* @__PURE__ */
|
|
3332
|
+
/* @__PURE__ */ jsx62("div", { className: "flex min-w-9 shrink-0 items-center", children: leading ?? (onBack && /* @__PURE__ */ jsx62(
|
|
3322
3333
|
"button",
|
|
3323
3334
|
{
|
|
3324
3335
|
type: "button",
|
|
3325
3336
|
onClick: onBack,
|
|
3326
3337
|
"aria-label": "Back",
|
|
3327
3338
|
className: "flex size-9 items-center justify-center rounded-full text-foreground 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",
|
|
3328
|
-
children: /* @__PURE__ */
|
|
3339
|
+
children: /* @__PURE__ */ jsx62(ChevronLeft3, { className: "size-5" })
|
|
3329
3340
|
}
|
|
3330
3341
|
)) }),
|
|
3331
3342
|
/* @__PURE__ */ jsxs32("div", { className: "min-w-0 flex-1", children: [
|
|
3332
|
-
/* @__PURE__ */
|
|
3333
|
-
infoText && /* @__PURE__ */
|
|
3343
|
+
/* @__PURE__ */ jsx62("p", { className: "truncate text-body-lg font-medium text-foreground", children: title }),
|
|
3344
|
+
infoText && /* @__PURE__ */ jsx62("p", { className: "truncate text-body-sm text-muted-foreground", children: infoText })
|
|
3334
3345
|
] }),
|
|
3335
|
-
actions && /* @__PURE__ */
|
|
3346
|
+
actions && /* @__PURE__ */ jsx62("div", { className: "flex shrink-0 items-center gap-1", children: actions })
|
|
3336
3347
|
]
|
|
3337
3348
|
}
|
|
3338
3349
|
)
|
|
@@ -3343,7 +3354,7 @@ NavigationBar.displayName = "NavigationBar";
|
|
|
3343
3354
|
import * as React57 from "react";
|
|
3344
3355
|
import { Slot as Slot9 } from "@radix-ui/react-slot";
|
|
3345
3356
|
import { Menu as Menu2, X as X6 } from "lucide-react";
|
|
3346
|
-
import { jsx as
|
|
3357
|
+
import { jsx as jsx63, jsxs as jsxs33 } from "react/jsx-runtime";
|
|
3347
3358
|
var Ctx = React57.createContext(null);
|
|
3348
3359
|
var useAppBar = () => {
|
|
3349
3360
|
const ctx = React57.useContext(Ctx);
|
|
@@ -3356,7 +3367,7 @@ var AppBar = React57.forwardRef(
|
|
|
3356
3367
|
const nav = React57.Children.toArray(children).find(
|
|
3357
3368
|
(c) => React57.isValidElement(c) && c.type === AppBarNav
|
|
3358
3369
|
);
|
|
3359
|
-
return /* @__PURE__ */
|
|
3370
|
+
return /* @__PURE__ */ jsx63(Ctx.Provider, { value: { open, setOpen }, children: /* @__PURE__ */ jsxs33(
|
|
3360
3371
|
"header",
|
|
3361
3372
|
{
|
|
3362
3373
|
ref,
|
|
@@ -3369,7 +3380,7 @@ var AppBar = React57.forwardRef(
|
|
|
3369
3380
|
children: [
|
|
3370
3381
|
/* @__PURE__ */ jsxs33("div", { className: "mx-auto flex h-14 max-w-screen-2xl items-center gap-4 px-4", children: [
|
|
3371
3382
|
children,
|
|
3372
|
-
nav && /* @__PURE__ */
|
|
3383
|
+
nav && /* @__PURE__ */ jsx63(
|
|
3373
3384
|
"button",
|
|
3374
3385
|
{
|
|
3375
3386
|
type: "button",
|
|
@@ -3377,14 +3388,14 @@ var AppBar = React57.forwardRef(
|
|
|
3377
3388
|
"aria-expanded": open,
|
|
3378
3389
|
onClick: () => setOpen((o) => !o),
|
|
3379
3390
|
className: cn(
|
|
3380
|
-
"
|
|
3391
|
+
"ms-auto inline-flex size-9 items-center justify-center rounded-md text-foreground outline-none transition-colors md:hidden",
|
|
3381
3392
|
"hover:bg-accent focus-visible:ring-2 focus-visible:ring-ring"
|
|
3382
3393
|
),
|
|
3383
|
-
children: open ? /* @__PURE__ */
|
|
3394
|
+
children: open ? /* @__PURE__ */ jsx63(X6, { className: "size-5" }) : /* @__PURE__ */ jsx63(Menu2, { className: "size-5" })
|
|
3384
3395
|
}
|
|
3385
3396
|
)
|
|
3386
3397
|
] }),
|
|
3387
|
-
nav && open && /* @__PURE__ */
|
|
3398
|
+
nav && open && /* @__PURE__ */ jsx63("nav", { className: "flex flex-col gap-1 border-t border-border p-2 md:hidden", children: nav.props.children })
|
|
3388
3399
|
]
|
|
3389
3400
|
}
|
|
3390
3401
|
) });
|
|
@@ -3392,7 +3403,7 @@ var AppBar = React57.forwardRef(
|
|
|
3392
3403
|
);
|
|
3393
3404
|
AppBar.displayName = "AppBar";
|
|
3394
3405
|
var AppBarBrand = React57.forwardRef(
|
|
3395
|
-
({ className, ...props }, ref) => /* @__PURE__ */
|
|
3406
|
+
({ className, ...props }, ref) => /* @__PURE__ */ jsx63(
|
|
3396
3407
|
"div",
|
|
3397
3408
|
{
|
|
3398
3409
|
ref,
|
|
@@ -3403,13 +3414,13 @@ var AppBarBrand = React57.forwardRef(
|
|
|
3403
3414
|
);
|
|
3404
3415
|
AppBarBrand.displayName = "AppBarBrand";
|
|
3405
3416
|
var AppBarNav = React57.forwardRef(
|
|
3406
|
-
({ className, ...props }, ref) => /* @__PURE__ */
|
|
3417
|
+
({ className, ...props }, ref) => /* @__PURE__ */ jsx63("nav", { ref, className: cn("hidden items-center gap-1 md:flex", className), ...props })
|
|
3407
3418
|
);
|
|
3408
3419
|
AppBarNav.displayName = "AppBarNav";
|
|
3409
3420
|
var AppBarLink = React57.forwardRef(
|
|
3410
3421
|
({ className, active, asChild, ...props }, ref) => {
|
|
3411
3422
|
const Comp = asChild ? Slot9 : "a";
|
|
3412
|
-
return /* @__PURE__ */
|
|
3423
|
+
return /* @__PURE__ */ jsx63(
|
|
3413
3424
|
Comp,
|
|
3414
3425
|
{
|
|
3415
3426
|
ref,
|
|
@@ -3428,14 +3439,14 @@ var AppBarLink = React57.forwardRef(
|
|
|
3428
3439
|
);
|
|
3429
3440
|
AppBarLink.displayName = "AppBarLink";
|
|
3430
3441
|
var AppBarActions = React57.forwardRef(
|
|
3431
|
-
({ className, ...props }, ref) => /* @__PURE__ */
|
|
3442
|
+
({ className, ...props }, ref) => /* @__PURE__ */ jsx63("div", { ref, className: cn("ms-auto flex shrink-0 items-center gap-2", className), ...props })
|
|
3432
3443
|
);
|
|
3433
3444
|
AppBarActions.displayName = "AppBarActions";
|
|
3434
3445
|
|
|
3435
3446
|
// src/components/file-upload.tsx
|
|
3436
3447
|
import * as React58 from "react";
|
|
3437
3448
|
import { File, Loader2, TriangleAlert as TriangleAlert3, Upload, X as X7 } from "lucide-react";
|
|
3438
|
-
import { jsx as
|
|
3449
|
+
import { jsx as jsx64, jsxs as jsxs34 } from "react/jsx-runtime";
|
|
3439
3450
|
function formatBytes(bytes) {
|
|
3440
3451
|
if (!bytes) return "";
|
|
3441
3452
|
const units = ["B", "KB", "MB", "GB"];
|
|
@@ -3486,13 +3497,13 @@ var FileUpload = React58.forwardRef(
|
|
|
3486
3497
|
disabled && "pointer-events-none opacity-disabled"
|
|
3487
3498
|
),
|
|
3488
3499
|
children: [
|
|
3489
|
-
/* @__PURE__ */
|
|
3500
|
+
/* @__PURE__ */ jsx64(Upload, { className: "size-6 text-muted-foreground", "aria-hidden": true }),
|
|
3490
3501
|
/* @__PURE__ */ jsxs34("p", { className: "text-body-sm text-muted-foreground", children: [
|
|
3491
3502
|
"Drag & drop ",
|
|
3492
3503
|
multiple ? "files" : "a file",
|
|
3493
3504
|
" here, or"
|
|
3494
3505
|
] }),
|
|
3495
|
-
/* @__PURE__ */
|
|
3506
|
+
/* @__PURE__ */ jsx64(
|
|
3496
3507
|
Button,
|
|
3497
3508
|
{
|
|
3498
3509
|
type: "button",
|
|
@@ -3506,8 +3517,8 @@ var FileUpload = React58.forwardRef(
|
|
|
3506
3517
|
children: buttonLabel
|
|
3507
3518
|
}
|
|
3508
3519
|
),
|
|
3509
|
-
helperText && /* @__PURE__ */
|
|
3510
|
-
/* @__PURE__ */
|
|
3520
|
+
helperText && /* @__PURE__ */ jsx64("p", { className: "text-body-sm text-muted-foreground", children: helperText }),
|
|
3521
|
+
/* @__PURE__ */ jsx64(
|
|
3511
3522
|
"input",
|
|
3512
3523
|
{
|
|
3513
3524
|
ref: inputRef,
|
|
@@ -3525,7 +3536,7 @@ var FileUpload = React58.forwardRef(
|
|
|
3525
3536
|
]
|
|
3526
3537
|
}
|
|
3527
3538
|
),
|
|
3528
|
-
files.length > 0 && /* @__PURE__ */
|
|
3539
|
+
files.length > 0 && /* @__PURE__ */ jsx64("ul", { className: "flex flex-col gap-2", children: files.map((f) => /* @__PURE__ */ jsx64(FileUploadItem, { file: f, onRemove, onRetry }, f.id)) })
|
|
3529
3540
|
] });
|
|
3530
3541
|
}
|
|
3531
3542
|
);
|
|
@@ -3534,13 +3545,13 @@ function FileUploadItem({ file, onRemove, onRetry }) {
|
|
|
3534
3545
|
const isError = file.status === "error";
|
|
3535
3546
|
const isLoading = file.status === "loading";
|
|
3536
3547
|
return /* @__PURE__ */ jsxs34("li", { className: cn("flex items-center gap-2.5 rounded-md border p-2.5 text-body-sm", isError ? "border-destructive bg-destructive/5" : "border-input"), children: [
|
|
3537
|
-
isLoading ? /* @__PURE__ */
|
|
3548
|
+
isLoading ? /* @__PURE__ */ jsx64(Loader2, { className: "size-4 shrink-0 animate-spin text-muted-foreground", "aria-hidden": true }) : isError ? /* @__PURE__ */ jsx64(TriangleAlert3, { className: "size-4 shrink-0 text-destructive", "aria-hidden": true }) : /* @__PURE__ */ jsx64(File, { className: "size-4 shrink-0 text-muted-foreground", "aria-hidden": true }),
|
|
3538
3549
|
/* @__PURE__ */ jsxs34("div", { className: "min-w-0 flex-1", children: [
|
|
3539
|
-
/* @__PURE__ */
|
|
3540
|
-
isError && file.error ? /* @__PURE__ */
|
|
3541
|
-
isLoading && typeof file.progress === "number" && /* @__PURE__ */
|
|
3550
|
+
/* @__PURE__ */ jsx64("p", { className: "truncate text-foreground", children: file.name }),
|
|
3551
|
+
isError && file.error ? /* @__PURE__ */ jsx64("p", { className: "text-destructive", children: file.error }) : /* @__PURE__ */ jsx64("p", { className: "text-muted-foreground", children: formatBytes(file.size) }),
|
|
3552
|
+
isLoading && typeof file.progress === "number" && /* @__PURE__ */ jsx64("div", { className: "mt-1 h-1 w-full overflow-hidden rounded-full bg-muted", children: /* @__PURE__ */ jsx64("div", { className: "h-full bg-primary transition-[width]", style: { width: `${Math.max(0, Math.min(100, file.progress))}%` } }) })
|
|
3542
3553
|
] }),
|
|
3543
|
-
isError && onRetry && /* @__PURE__ */
|
|
3554
|
+
isError && onRetry && /* @__PURE__ */ jsx64(
|
|
3544
3555
|
"button",
|
|
3545
3556
|
{
|
|
3546
3557
|
type: "button",
|
|
@@ -3549,14 +3560,14 @@ function FileUploadItem({ file, onRemove, onRetry }) {
|
|
|
3549
3560
|
children: "Retry"
|
|
3550
3561
|
}
|
|
3551
3562
|
),
|
|
3552
|
-
onRemove && /* @__PURE__ */
|
|
3563
|
+
onRemove && /* @__PURE__ */ jsx64(
|
|
3553
3564
|
"button",
|
|
3554
3565
|
{
|
|
3555
3566
|
type: "button",
|
|
3556
3567
|
onClick: () => onRemove(file.id),
|
|
3557
3568
|
"aria-label": `Remove ${file.name}`,
|
|
3558
3569
|
className: "shrink-0 rounded-[2px] p-0.5 text-muted-foreground outline-none transition-colors hover:text-foreground focus-visible:ring-1 focus-visible:ring-current",
|
|
3559
|
-
children: /* @__PURE__ */
|
|
3570
|
+
children: /* @__PURE__ */ jsx64(X7, { className: "size-3.5" })
|
|
3560
3571
|
}
|
|
3561
3572
|
)
|
|
3562
3573
|
] });
|
|
@@ -3567,14 +3578,14 @@ FileUploadItem.displayName = "FileUploadItem";
|
|
|
3567
3578
|
import * as React59 from "react";
|
|
3568
3579
|
import { CalendarIcon } from "lucide-react";
|
|
3569
3580
|
import { format } from "date-fns";
|
|
3570
|
-
import { jsx as
|
|
3581
|
+
import { jsx as jsx65, jsxs as jsxs35 } from "react/jsx-runtime";
|
|
3571
3582
|
var DatePicker = React59.forwardRef(
|
|
3572
3583
|
({ value, onChange, placeholder = "Select date", label, helperText, error, disabled, className, formatStr = "PP", calendarProps }, ref) => {
|
|
3573
3584
|
const [open, setOpen] = React59.useState(false);
|
|
3574
3585
|
return /* @__PURE__ */ jsxs35("div", { className: cn("flex flex-col gap-1.5 font-sans", className), children: [
|
|
3575
|
-
label && /* @__PURE__ */
|
|
3586
|
+
label && /* @__PURE__ */ jsx65("label", { className: "text-label-md font-medium text-foreground", children: label }),
|
|
3576
3587
|
/* @__PURE__ */ jsxs35(Popover, { open, onOpenChange: setOpen, children: [
|
|
3577
|
-
/* @__PURE__ */
|
|
3588
|
+
/* @__PURE__ */ jsx65(PopoverTrigger, { asChild: true, children: /* @__PURE__ */ jsxs35(
|
|
3578
3589
|
Button,
|
|
3579
3590
|
{
|
|
3580
3591
|
ref,
|
|
@@ -3583,12 +3594,12 @@ var DatePicker = React59.forwardRef(
|
|
|
3583
3594
|
disabled,
|
|
3584
3595
|
className: cn("w-full justify-start px-3 font-normal", !value && "text-muted-foreground", error && "border-destructive text-destructive"),
|
|
3585
3596
|
children: [
|
|
3586
|
-
/* @__PURE__ */
|
|
3597
|
+
/* @__PURE__ */ jsx65(CalendarIcon, { className: "size-4" }),
|
|
3587
3598
|
value ? format(value, formatStr) : placeholder
|
|
3588
3599
|
]
|
|
3589
3600
|
}
|
|
3590
3601
|
) }),
|
|
3591
|
-
/* @__PURE__ */
|
|
3602
|
+
/* @__PURE__ */ jsx65(PopoverContent, { className: "w-auto p-0", align: "start", children: /* @__PURE__ */ jsx65(
|
|
3592
3603
|
Calendar,
|
|
3593
3604
|
{
|
|
3594
3605
|
mode: "single",
|
|
@@ -3601,7 +3612,7 @@ var DatePicker = React59.forwardRef(
|
|
|
3601
3612
|
}
|
|
3602
3613
|
) })
|
|
3603
3614
|
] }),
|
|
3604
|
-
helperText && /* @__PURE__ */
|
|
3615
|
+
helperText && /* @__PURE__ */ jsx65("p", { className: cn("text-body-sm", error ? "text-destructive" : "text-muted-foreground"), children: helperText })
|
|
3605
3616
|
] });
|
|
3606
3617
|
}
|
|
3607
3618
|
);
|
|
@@ -3610,7 +3621,7 @@ DatePicker.displayName = "DatePicker";
|
|
|
3610
3621
|
// src/components/code-block.tsx
|
|
3611
3622
|
import * as React60 from "react";
|
|
3612
3623
|
import { Check as Check7, Copy } from "lucide-react";
|
|
3613
|
-
import { jsx as
|
|
3624
|
+
import { jsx as jsx66, jsxs as jsxs36 } from "react/jsx-runtime";
|
|
3614
3625
|
var CodeBlock = React60.forwardRef(
|
|
3615
3626
|
({ className, code, language, filename, files, hideCopy, ...props }, ref) => {
|
|
3616
3627
|
const tabs = files && files.length > 0 ? files : [{ name: filename ?? language ?? "", code: code ?? "" }];
|
|
@@ -3628,7 +3639,7 @@ var CodeBlock = React60.forwardRef(
|
|
|
3628
3639
|
};
|
|
3629
3640
|
return /* @__PURE__ */ jsxs36("div", { ref, className: cn("overflow-hidden rounded-md border border-input bg-muted font-sans", className), ...props, children: [
|
|
3630
3641
|
hasHeader && /* @__PURE__ */ jsxs36("div", { className: "flex items-center justify-between border-b border-input bg-background px-2", children: [
|
|
3631
|
-
/* @__PURE__ */
|
|
3642
|
+
/* @__PURE__ */ jsx66("div", { className: "flex", children: tabs.map((t, i) => /* @__PURE__ */ jsx66(
|
|
3632
3643
|
"button",
|
|
3633
3644
|
{
|
|
3634
3645
|
type: "button",
|
|
@@ -3641,29 +3652,29 @@ var CodeBlock = React60.forwardRef(
|
|
|
3641
3652
|
},
|
|
3642
3653
|
t.name || i
|
|
3643
3654
|
)) }),
|
|
3644
|
-
!hideCopy && /* @__PURE__ */
|
|
3655
|
+
!hideCopy && /* @__PURE__ */ jsx66(
|
|
3645
3656
|
"button",
|
|
3646
3657
|
{
|
|
3647
3658
|
type: "button",
|
|
3648
3659
|
onClick: copy,
|
|
3649
3660
|
"aria-label": "Copy code",
|
|
3650
3661
|
className: "rounded-[2px] p-1.5 text-muted-foreground outline-none transition-colors hover:text-foreground focus-visible:ring-1 focus-visible:ring-current",
|
|
3651
|
-
children: copied ? /* @__PURE__ */
|
|
3662
|
+
children: copied ? /* @__PURE__ */ jsx66(Check7, { className: "size-4" }) : /* @__PURE__ */ jsx66(Copy, { className: "size-4" })
|
|
3652
3663
|
}
|
|
3653
3664
|
)
|
|
3654
3665
|
] }),
|
|
3655
3666
|
/* @__PURE__ */ jsxs36("div", { className: "relative", children: [
|
|
3656
|
-
!hasHeader && !hideCopy && /* @__PURE__ */
|
|
3667
|
+
!hasHeader && !hideCopy && /* @__PURE__ */ jsx66(
|
|
3657
3668
|
"button",
|
|
3658
3669
|
{
|
|
3659
3670
|
type: "button",
|
|
3660
3671
|
onClick: copy,
|
|
3661
3672
|
"aria-label": "Copy code",
|
|
3662
3673
|
className: "absolute right-2 top-2 rounded-[2px] p-1.5 text-muted-foreground outline-none transition-colors hover:text-foreground focus-visible:ring-1 focus-visible:ring-current",
|
|
3663
|
-
children: copied ? /* @__PURE__ */
|
|
3674
|
+
children: copied ? /* @__PURE__ */ jsx66(Check7, { className: "size-4" }) : /* @__PURE__ */ jsx66(Copy, { className: "size-4" })
|
|
3664
3675
|
}
|
|
3665
3676
|
),
|
|
3666
|
-
/* @__PURE__ */
|
|
3677
|
+
/* @__PURE__ */ jsx66("pre", { className: "overflow-x-auto p-4 text-body-sm text-foreground", children: /* @__PURE__ */ jsx66("code", { children: current.code }) })
|
|
3667
3678
|
] })
|
|
3668
3679
|
] });
|
|
3669
3680
|
}
|
|
@@ -3673,15 +3684,15 @@ CodeBlock.displayName = "CodeBlock";
|
|
|
3673
3684
|
// src/components/metric.tsx
|
|
3674
3685
|
import * as React61 from "react";
|
|
3675
3686
|
import { ArrowDown, ArrowUp } from "lucide-react";
|
|
3676
|
-
import { jsx as
|
|
3687
|
+
import { jsx as jsx67, jsxs as jsxs37 } from "react/jsx-runtime";
|
|
3677
3688
|
var Metric = React61.forwardRef(
|
|
3678
3689
|
({ 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: [
|
|
3679
3690
|
/* @__PURE__ */ jsxs37("div", { className: "flex items-center justify-between", children: [
|
|
3680
|
-
/* @__PURE__ */
|
|
3681
|
-
icon && /* @__PURE__ */
|
|
3691
|
+
/* @__PURE__ */ jsx67("p", { className: "text-body-sm text-muted-foreground", children: label }),
|
|
3692
|
+
icon && /* @__PURE__ */ jsx67("span", { className: "text-muted-foreground [&_svg]:size-5", children: icon })
|
|
3682
3693
|
] }),
|
|
3683
3694
|
/* @__PURE__ */ jsxs37("div", { className: "flex items-end justify-between gap-2", children: [
|
|
3684
|
-
/* @__PURE__ */
|
|
3695
|
+
/* @__PURE__ */ jsx67("p", { className: "text-headline-sm font-medium text-foreground", children: value }),
|
|
3685
3696
|
trend && /* @__PURE__ */ jsxs37(
|
|
3686
3697
|
"span",
|
|
3687
3698
|
{
|
|
@@ -3692,14 +3703,14 @@ var Metric = React61.forwardRef(
|
|
|
3692
3703
|
trend === "neutral" && "text-muted-foreground"
|
|
3693
3704
|
),
|
|
3694
3705
|
children: [
|
|
3695
|
-
trend === "up" && /* @__PURE__ */
|
|
3696
|
-
trend === "down" && /* @__PURE__ */
|
|
3706
|
+
trend === "up" && /* @__PURE__ */ jsx67(ArrowUp, { className: "size-3.5" }),
|
|
3707
|
+
trend === "down" && /* @__PURE__ */ jsx67(ArrowDown, { className: "size-3.5" }),
|
|
3697
3708
|
change
|
|
3698
3709
|
]
|
|
3699
3710
|
}
|
|
3700
3711
|
)
|
|
3701
3712
|
] }),
|
|
3702
|
-
chart && /* @__PURE__ */
|
|
3713
|
+
chart && /* @__PURE__ */ jsx67("div", { className: "mt-1", children: chart })
|
|
3703
3714
|
] })
|
|
3704
3715
|
);
|
|
3705
3716
|
Metric.displayName = "Metric";
|
|
@@ -3707,7 +3718,7 @@ Metric.displayName = "Metric";
|
|
|
3707
3718
|
// src/components/number-input.tsx
|
|
3708
3719
|
import * as React62 from "react";
|
|
3709
3720
|
import { Minus as Minus3, Plus } from "lucide-react";
|
|
3710
|
-
import { jsx as
|
|
3721
|
+
import { jsx as jsx68, jsxs as jsxs38 } from "react/jsx-runtime";
|
|
3711
3722
|
var NumberInput = React62.forwardRef(
|
|
3712
3723
|
({ className, value, defaultValue = 0, min, max, step = 1, onChange, disabled, ...props }, ref) => {
|
|
3713
3724
|
const [internal, setInternal] = React62.useState(defaultValue);
|
|
@@ -3732,7 +3743,7 @@ var NumberInput = React62.forwardRef(
|
|
|
3732
3743
|
className
|
|
3733
3744
|
),
|
|
3734
3745
|
children: [
|
|
3735
|
-
/* @__PURE__ */
|
|
3746
|
+
/* @__PURE__ */ jsx68(
|
|
3736
3747
|
"button",
|
|
3737
3748
|
{
|
|
3738
3749
|
type: "button",
|
|
@@ -3740,10 +3751,10 @@ var NumberInput = React62.forwardRef(
|
|
|
3740
3751
|
disabled: disabled || min != null && current <= min,
|
|
3741
3752
|
onClick: () => set(current - step),
|
|
3742
3753
|
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",
|
|
3743
|
-
children: /* @__PURE__ */
|
|
3754
|
+
children: /* @__PURE__ */ jsx68(Minus3, { className: "size-4" })
|
|
3744
3755
|
}
|
|
3745
3756
|
),
|
|
3746
|
-
/* @__PURE__ */
|
|
3757
|
+
/* @__PURE__ */ jsx68(
|
|
3747
3758
|
"input",
|
|
3748
3759
|
{
|
|
3749
3760
|
ref,
|
|
@@ -3762,7 +3773,7 @@ var NumberInput = React62.forwardRef(
|
|
|
3762
3773
|
...props
|
|
3763
3774
|
}
|
|
3764
3775
|
),
|
|
3765
|
-
/* @__PURE__ */
|
|
3776
|
+
/* @__PURE__ */ jsx68(
|
|
3766
3777
|
"button",
|
|
3767
3778
|
{
|
|
3768
3779
|
type: "button",
|
|
@@ -3770,7 +3781,7 @@ var NumberInput = React62.forwardRef(
|
|
|
3770
3781
|
disabled: disabled || max != null && current >= max,
|
|
3771
3782
|
onClick: () => set(current + step),
|
|
3772
3783
|
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",
|
|
3773
|
-
children: /* @__PURE__ */
|
|
3784
|
+
children: /* @__PURE__ */ jsx68(Plus, { className: "size-4" })
|
|
3774
3785
|
}
|
|
3775
3786
|
)
|
|
3776
3787
|
]
|
|
@@ -3782,7 +3793,7 @@ NumberInput.displayName = "NumberInput";
|
|
|
3782
3793
|
|
|
3783
3794
|
// src/components/quote.tsx
|
|
3784
3795
|
import * as React63 from "react";
|
|
3785
|
-
import { jsx as
|
|
3796
|
+
import { jsx as jsx69, jsxs as jsxs39 } from "react/jsx-runtime";
|
|
3786
3797
|
var Quote = React63.forwardRef(
|
|
3787
3798
|
({ className, author, authorTitle, avatar, children, ...props }, ref) => /* @__PURE__ */ jsxs39("figure", { ref, className: cn("flex flex-col gap-4 font-sans", className), ...props, children: [
|
|
3788
3799
|
/* @__PURE__ */ jsxs39("blockquote", { className: "text-title-md font-medium text-foreground", children: [
|
|
@@ -3793,8 +3804,8 @@ var Quote = React63.forwardRef(
|
|
|
3793
3804
|
(author || authorTitle) && /* @__PURE__ */ jsxs39("figcaption", { className: "flex items-center gap-3", children: [
|
|
3794
3805
|
avatar,
|
|
3795
3806
|
/* @__PURE__ */ jsxs39("div", { children: [
|
|
3796
|
-
author && /* @__PURE__ */
|
|
3797
|
-
authorTitle && /* @__PURE__ */
|
|
3807
|
+
author && /* @__PURE__ */ jsx69("p", { className: "text-body-md font-medium text-foreground", children: author }),
|
|
3808
|
+
authorTitle && /* @__PURE__ */ jsx69("p", { className: "text-body-sm text-muted-foreground", children: authorTitle })
|
|
3798
3809
|
] })
|
|
3799
3810
|
] })
|
|
3800
3811
|
] })
|
|
@@ -3803,20 +3814,20 @@ Quote.displayName = "Quote";
|
|
|
3803
3814
|
|
|
3804
3815
|
// src/components/footer.tsx
|
|
3805
3816
|
import * as React64 from "react";
|
|
3806
|
-
import { jsx as
|
|
3817
|
+
import { jsx as jsx70, jsxs as jsxs40 } from "react/jsx-runtime";
|
|
3807
3818
|
var Footer = React64.forwardRef(
|
|
3808
|
-
({ className, children, ...props }, ref) => /* @__PURE__ */
|
|
3819
|
+
({ className, children, ...props }, ref) => /* @__PURE__ */ jsx70("footer", { ref, className: cn("w-full border-t border-border bg-background px-6 py-10 font-sans", className), ...props, children })
|
|
3809
3820
|
);
|
|
3810
3821
|
Footer.displayName = "Footer";
|
|
3811
3822
|
var FooterColumn = React64.forwardRef(
|
|
3812
3823
|
({ className, title, children, ...props }, ref) => /* @__PURE__ */ jsxs40("div", { ref, className: cn("flex flex-col gap-3", className), ...props, children: [
|
|
3813
|
-
/* @__PURE__ */
|
|
3814
|
-
/* @__PURE__ */
|
|
3824
|
+
/* @__PURE__ */ jsx70("p", { className: "text-label-md font-medium text-foreground", children: title }),
|
|
3825
|
+
/* @__PURE__ */ jsx70("div", { className: "flex flex-col gap-2", children })
|
|
3815
3826
|
] })
|
|
3816
3827
|
);
|
|
3817
3828
|
FooterColumn.displayName = "FooterColumn";
|
|
3818
3829
|
var FooterLink = React64.forwardRef(
|
|
3819
|
-
({ className, ...props }, ref) => /* @__PURE__ */
|
|
3830
|
+
({ className, ...props }, ref) => /* @__PURE__ */ jsx70(
|
|
3820
3831
|
"a",
|
|
3821
3832
|
{
|
|
3822
3833
|
ref,
|
|
@@ -3830,7 +3841,7 @@ var FooterLink = React64.forwardRef(
|
|
|
3830
3841
|
);
|
|
3831
3842
|
FooterLink.displayName = "FooterLink";
|
|
3832
3843
|
var FooterBottom = React64.forwardRef(
|
|
3833
|
-
({ className, ...props }, ref) => /* @__PURE__ */
|
|
3844
|
+
({ className, ...props }, ref) => /* @__PURE__ */ jsx70(
|
|
3834
3845
|
"div",
|
|
3835
3846
|
{
|
|
3836
3847
|
ref,
|
|
@@ -3846,11 +3857,11 @@ FooterBottom.displayName = "FooterBottom";
|
|
|
3846
3857
|
|
|
3847
3858
|
// src/components/table-of-contents.tsx
|
|
3848
3859
|
import * as React65 from "react";
|
|
3849
|
-
import { jsx as
|
|
3860
|
+
import { jsx as jsx71 } from "react/jsx-runtime";
|
|
3850
3861
|
var TableOfContents = React65.forwardRef(
|
|
3851
|
-
({ className, items, active, ...props }, ref) => /* @__PURE__ */
|
|
3862
|
+
({ className, items, active, ...props }, ref) => /* @__PURE__ */ jsx71("nav", { ref, "aria-label": "Table of contents", className: cn("flex flex-col gap-0.5 font-sans", className), ...props, children: items.map((item) => {
|
|
3852
3863
|
const isActive = item.id === active;
|
|
3853
|
-
return /* @__PURE__ */
|
|
3864
|
+
return /* @__PURE__ */ jsx71(
|
|
3854
3865
|
"a",
|
|
3855
3866
|
{
|
|
3856
3867
|
href: `#${item.id}`,
|
|
@@ -3871,10 +3882,10 @@ TableOfContents.displayName = "TableOfContents";
|
|
|
3871
3882
|
// src/components/kbd.tsx
|
|
3872
3883
|
import * as React66 from "react";
|
|
3873
3884
|
import { Slot as Slot10 } from "@radix-ui/react-slot";
|
|
3874
|
-
import { jsx as
|
|
3885
|
+
import { jsx as jsx72 } from "react/jsx-runtime";
|
|
3875
3886
|
var Kbd = React66.forwardRef(({ className, asChild = false, ...props }, ref) => {
|
|
3876
3887
|
const Comp = asChild ? Slot10 : "kbd";
|
|
3877
|
-
return /* @__PURE__ */
|
|
3888
|
+
return /* @__PURE__ */ jsx72(
|
|
3878
3889
|
Comp,
|
|
3879
3890
|
{
|
|
3880
3891
|
ref,
|
|
@@ -3887,15 +3898,15 @@ var Kbd = React66.forwardRef(({ className, asChild = false, ...props }, ref) =>
|
|
|
3887
3898
|
);
|
|
3888
3899
|
});
|
|
3889
3900
|
Kbd.displayName = "Kbd";
|
|
3890
|
-
var KbdGroup = React66.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
3901
|
+
var KbdGroup = React66.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx72("kbd", { ref, className: cn("inline-flex items-center gap-1", className), ...props }));
|
|
3891
3902
|
KbdGroup.displayName = "KbdGroup";
|
|
3892
3903
|
|
|
3893
3904
|
// src/components/empty.tsx
|
|
3894
3905
|
import * as React67 from "react";
|
|
3895
3906
|
import { cva as cva18 } from "class-variance-authority";
|
|
3896
|
-
import { jsx as
|
|
3907
|
+
import { jsx as jsx73 } from "react/jsx-runtime";
|
|
3897
3908
|
var Empty = React67.forwardRef(
|
|
3898
|
-
({ className, ...props }, ref) => /* @__PURE__ */
|
|
3909
|
+
({ className, ...props }, ref) => /* @__PURE__ */ jsx73(
|
|
3899
3910
|
"div",
|
|
3900
3911
|
{
|
|
3901
3912
|
ref,
|
|
@@ -3906,7 +3917,7 @@ var Empty = React67.forwardRef(
|
|
|
3906
3917
|
);
|
|
3907
3918
|
Empty.displayName = "Empty";
|
|
3908
3919
|
var EmptyHeader = React67.forwardRef(
|
|
3909
|
-
({ className, ...props }, ref) => /* @__PURE__ */
|
|
3920
|
+
({ className, ...props }, ref) => /* @__PURE__ */ jsx73("div", { ref, className: cn("flex max-w-sm flex-col items-center gap-2", className), ...props })
|
|
3910
3921
|
);
|
|
3911
3922
|
EmptyHeader.displayName = "EmptyHeader";
|
|
3912
3923
|
var emptyMediaVariants = cva18("flex shrink-0 items-center justify-center", {
|
|
@@ -3920,27 +3931,27 @@ var emptyMediaVariants = cva18("flex shrink-0 items-center justify-center", {
|
|
|
3920
3931
|
defaultVariants: { variant: "default" }
|
|
3921
3932
|
});
|
|
3922
3933
|
var EmptyMedia = React67.forwardRef(
|
|
3923
|
-
({ className, variant, ...props }, ref) => /* @__PURE__ */
|
|
3934
|
+
({ className, variant, ...props }, ref) => /* @__PURE__ */ jsx73("div", { ref, className: cn(emptyMediaVariants({ variant }), className), ...props })
|
|
3924
3935
|
);
|
|
3925
3936
|
EmptyMedia.displayName = "EmptyMedia";
|
|
3926
3937
|
var EmptyTitle = React67.forwardRef(
|
|
3927
|
-
({ className, ...props }, ref) => /* @__PURE__ */
|
|
3938
|
+
({ className, ...props }, ref) => /* @__PURE__ */ jsx73("p", { ref, className: cn("text-title-sm font-medium text-foreground", className), ...props })
|
|
3928
3939
|
);
|
|
3929
3940
|
EmptyTitle.displayName = "EmptyTitle";
|
|
3930
3941
|
var EmptyDescription = React67.forwardRef(
|
|
3931
|
-
({ className, ...props }, ref) => /* @__PURE__ */
|
|
3942
|
+
({ className, ...props }, ref) => /* @__PURE__ */ jsx73("p", { ref, className: cn("text-body-sm text-muted-foreground", className), ...props })
|
|
3932
3943
|
);
|
|
3933
3944
|
EmptyDescription.displayName = "EmptyDescription";
|
|
3934
3945
|
var EmptyContent = React67.forwardRef(
|
|
3935
|
-
({ className, ...props }, ref) => /* @__PURE__ */
|
|
3946
|
+
({ className, ...props }, ref) => /* @__PURE__ */ jsx73("div", { ref, className: cn("flex flex-col items-center gap-3", className), ...props })
|
|
3936
3947
|
);
|
|
3937
3948
|
EmptyContent.displayName = "EmptyContent";
|
|
3938
3949
|
|
|
3939
3950
|
// src/components/button-group.tsx
|
|
3940
3951
|
import * as React68 from "react";
|
|
3941
|
-
import { jsx as
|
|
3952
|
+
import { jsx as jsx74 } from "react/jsx-runtime";
|
|
3942
3953
|
var ButtonGroup = React68.forwardRef(
|
|
3943
|
-
({ className, orientation = "horizontal", ...props }, ref) => /* @__PURE__ */
|
|
3954
|
+
({ className, orientation = "horizontal", ...props }, ref) => /* @__PURE__ */ jsx74(
|
|
3944
3955
|
"div",
|
|
3945
3956
|
{
|
|
3946
3957
|
ref,
|
|
@@ -3957,7 +3968,7 @@ var ButtonGroup = React68.forwardRef(
|
|
|
3957
3968
|
);
|
|
3958
3969
|
ButtonGroup.displayName = "ButtonGroup";
|
|
3959
3970
|
var ButtonGroupSeparator = React68.forwardRef(
|
|
3960
|
-
({ className, orientation = "vertical", ...props }, ref) => /* @__PURE__ */
|
|
3971
|
+
({ className, orientation = "vertical", ...props }, ref) => /* @__PURE__ */ jsx74(
|
|
3961
3972
|
"div",
|
|
3962
3973
|
{
|
|
3963
3974
|
ref,
|
|
@@ -3970,7 +3981,7 @@ var ButtonGroupSeparator = React68.forwardRef(
|
|
|
3970
3981
|
);
|
|
3971
3982
|
ButtonGroupSeparator.displayName = "ButtonGroupSeparator";
|
|
3972
3983
|
var ButtonGroupText = React68.forwardRef(
|
|
3973
|
-
({ className, ...props }, ref) => /* @__PURE__ */
|
|
3984
|
+
({ className, ...props }, ref) => /* @__PURE__ */ jsx74(
|
|
3974
3985
|
"span",
|
|
3975
3986
|
{
|
|
3976
3987
|
ref,
|
|
@@ -3988,10 +3999,10 @@ ButtonGroupText.displayName = "ButtonGroupText";
|
|
|
3988
3999
|
import * as React69 from "react";
|
|
3989
4000
|
import { ChevronDown as ChevronDown4 } from "lucide-react";
|
|
3990
4001
|
import { cva as cva19 } from "class-variance-authority";
|
|
3991
|
-
import { jsx as
|
|
4002
|
+
import { jsx as jsx75, jsxs as jsxs41 } from "react/jsx-runtime";
|
|
3992
4003
|
var nativeSelectVariants = cva19(
|
|
3993
4004
|
[
|
|
3994
|
-
"flex w-full appearance-none border border-input bg-background px-3 py-3
|
|
4005
|
+
"flex w-full appearance-none border border-input bg-background px-3 py-3 pe-9",
|
|
3995
4006
|
"font-sans text-[14px] leading-5 tracking-[0.25px] text-foreground",
|
|
3996
4007
|
"outline-none transition-colors",
|
|
3997
4008
|
"focus-visible:border-primary focus-visible:shadow-focus",
|
|
@@ -4018,7 +4029,7 @@ var nativeSelectVariants = cva19(
|
|
|
4018
4029
|
);
|
|
4019
4030
|
var NativeSelect = React69.forwardRef(
|
|
4020
4031
|
({ className, state, corners, disabled, "aria-invalid": ariaInvalid, children, ...props }, ref) => /* @__PURE__ */ jsxs41("div", { className: "relative", children: [
|
|
4021
|
-
/* @__PURE__ */
|
|
4032
|
+
/* @__PURE__ */ jsx75(
|
|
4022
4033
|
"select",
|
|
4023
4034
|
{
|
|
4024
4035
|
ref,
|
|
@@ -4031,24 +4042,24 @@ var NativeSelect = React69.forwardRef(
|
|
|
4031
4042
|
children
|
|
4032
4043
|
}
|
|
4033
4044
|
),
|
|
4034
|
-
/* @__PURE__ */
|
|
4045
|
+
/* @__PURE__ */ jsx75(ChevronDown4, { className: "pointer-events-none absolute end-3 top-1/2 size-4 -translate-y-1/2 text-muted-foreground" })
|
|
4035
4046
|
] })
|
|
4036
4047
|
);
|
|
4037
4048
|
NativeSelect.displayName = "NativeSelect";
|
|
4038
4049
|
var NativeSelectOption = React69.forwardRef(
|
|
4039
|
-
({ ...props }, ref) => /* @__PURE__ */
|
|
4050
|
+
({ ...props }, ref) => /* @__PURE__ */ jsx75("option", { ref, ...props })
|
|
4040
4051
|
);
|
|
4041
4052
|
NativeSelectOption.displayName = "NativeSelectOption";
|
|
4042
4053
|
var NativeSelectOptGroup = React69.forwardRef(
|
|
4043
|
-
({ ...props }, ref) => /* @__PURE__ */
|
|
4054
|
+
({ ...props }, ref) => /* @__PURE__ */ jsx75("optgroup", { ref, ...props })
|
|
4044
4055
|
);
|
|
4045
4056
|
NativeSelectOptGroup.displayName = "NativeSelectOptGroup";
|
|
4046
4057
|
|
|
4047
4058
|
// src/components/description-list.tsx
|
|
4048
4059
|
import * as React70 from "react";
|
|
4049
|
-
import { jsx as
|
|
4060
|
+
import { jsx as jsx76, jsxs as jsxs42 } from "react/jsx-runtime";
|
|
4050
4061
|
var DescriptionList = React70.forwardRef(
|
|
4051
|
-
({ className, ...props }, ref) => /* @__PURE__ */
|
|
4062
|
+
({ className, ...props }, ref) => /* @__PURE__ */ jsx76(
|
|
4052
4063
|
"dl",
|
|
4053
4064
|
{
|
|
4054
4065
|
ref,
|
|
@@ -4066,7 +4077,7 @@ var DescriptionListItem = React70.forwardRef(
|
|
|
4066
4077
|
className: cn("gap-3 px-3.5 py-2.5", layout === "row" ? "flex items-baseline" : "flex flex-col", className),
|
|
4067
4078
|
...props,
|
|
4068
4079
|
children: [
|
|
4069
|
-
/* @__PURE__ */
|
|
4080
|
+
/* @__PURE__ */ jsx76(
|
|
4070
4081
|
"dt",
|
|
4071
4082
|
{
|
|
4072
4083
|
className: cn(
|
|
@@ -4076,7 +4087,7 @@ var DescriptionListItem = React70.forwardRef(
|
|
|
4076
4087
|
children: term
|
|
4077
4088
|
}
|
|
4078
4089
|
),
|
|
4079
|
-
/* @__PURE__ */
|
|
4090
|
+
/* @__PURE__ */ jsx76("dd", { className: "min-w-0 text-body-sm text-foreground", children })
|
|
4080
4091
|
]
|
|
4081
4092
|
}
|
|
4082
4093
|
)
|
|
@@ -4087,7 +4098,7 @@ DescriptionListItem.displayName = "DescriptionListItem";
|
|
|
4087
4098
|
import * as React71 from "react";
|
|
4088
4099
|
import { cva as cva20 } from "class-variance-authority";
|
|
4089
4100
|
import { CircleAlert as CircleAlert3, CircleCheck as CircleCheck3, Info as Info3, TriangleAlert as TriangleAlert4, X as X8 } from "lucide-react";
|
|
4090
|
-
import { jsx as
|
|
4101
|
+
import { jsx as jsx77, jsxs as jsxs43 } from "react/jsx-runtime";
|
|
4091
4102
|
var bannerVariants = cva20(
|
|
4092
4103
|
"flex w-full items-start gap-2.5 border-b px-4 py-3 text-body-sm font-sans [&>svg]:mt-0.5 [&>svg]:size-4 [&>svg]:shrink-0",
|
|
4093
4104
|
{
|
|
@@ -4118,10 +4129,10 @@ var Banner = React71.forwardRef(
|
|
|
4118
4129
|
({ className, variant = "information", sticky, hideIcon, onDismiss, action, children, ...props }, ref) => {
|
|
4119
4130
|
const Icon2 = ICON2[variant ?? "information"];
|
|
4120
4131
|
return /* @__PURE__ */ jsxs43("div", { ref, role: "banner", className: cn(bannerVariants({ variant, sticky }), className), ...props, children: [
|
|
4121
|
-
!hideIcon && /* @__PURE__ */
|
|
4132
|
+
!hideIcon && /* @__PURE__ */ jsx77(Icon2, {}),
|
|
4122
4133
|
/* @__PURE__ */ jsxs43("div", { className: "mx-auto flex min-w-0 max-w-4xl flex-1 flex-wrap items-center justify-center gap-x-3 gap-y-1 text-center", children: [
|
|
4123
|
-
/* @__PURE__ */
|
|
4124
|
-
action && /* @__PURE__ */
|
|
4134
|
+
/* @__PURE__ */ jsx77("span", { children }),
|
|
4135
|
+
action && /* @__PURE__ */ jsx77(
|
|
4125
4136
|
"button",
|
|
4126
4137
|
{
|
|
4127
4138
|
type: "button",
|
|
@@ -4131,14 +4142,14 @@ var Banner = React71.forwardRef(
|
|
|
4131
4142
|
}
|
|
4132
4143
|
)
|
|
4133
4144
|
] }),
|
|
4134
|
-
onDismiss && /* @__PURE__ */
|
|
4145
|
+
onDismiss && /* @__PURE__ */ jsx77(
|
|
4135
4146
|
"button",
|
|
4136
4147
|
{
|
|
4137
4148
|
type: "button",
|
|
4138
4149
|
onClick: onDismiss,
|
|
4139
4150
|
"aria-label": "Dismiss",
|
|
4140
4151
|
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",
|
|
4141
|
-
children: /* @__PURE__ */
|
|
4152
|
+
children: /* @__PURE__ */ jsx77(X8, { className: "size-3.5" })
|
|
4142
4153
|
}
|
|
4143
4154
|
)
|
|
4144
4155
|
] });
|
|
@@ -4149,8 +4160,8 @@ Banner.displayName = "Banner";
|
|
|
4149
4160
|
// src/components/segmented-control.tsx
|
|
4150
4161
|
import * as React72 from "react";
|
|
4151
4162
|
import * as ToggleGroupPrimitive2 from "@radix-ui/react-toggle-group";
|
|
4152
|
-
import { jsx as
|
|
4153
|
-
var SegmentedControl = React72.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
4163
|
+
import { jsx as jsx78 } from "react/jsx-runtime";
|
|
4164
|
+
var SegmentedControl = React72.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx78(
|
|
4154
4165
|
ToggleGroupPrimitive2.Root,
|
|
4155
4166
|
{
|
|
4156
4167
|
ref,
|
|
@@ -4160,7 +4171,7 @@ var SegmentedControl = React72.forwardRef(({ className, ...props }, ref) => /* @
|
|
|
4160
4171
|
}
|
|
4161
4172
|
));
|
|
4162
4173
|
SegmentedControl.displayName = "SegmentedControl";
|
|
4163
|
-
var SegmentedControlItem = React72.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
4174
|
+
var SegmentedControlItem = React72.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx78(
|
|
4164
4175
|
ToggleGroupPrimitive2.Item,
|
|
4165
4176
|
{
|
|
4166
4177
|
ref,
|
|
@@ -4178,30 +4189,30 @@ SegmentedControlItem.displayName = "SegmentedControlItem";
|
|
|
4178
4189
|
|
|
4179
4190
|
// src/components/timeline.tsx
|
|
4180
4191
|
import * as React73 from "react";
|
|
4181
|
-
import { jsx as
|
|
4192
|
+
import { jsx as jsx79, jsxs as jsxs44 } from "react/jsx-runtime";
|
|
4182
4193
|
var Body = ({ item, align }) => /* @__PURE__ */ jsxs44("div", { className: cn("pb-6", align === "right" && "text-right"), children: [
|
|
4183
|
-
item.time && /* @__PURE__ */
|
|
4184
|
-
/* @__PURE__ */
|
|
4185
|
-
item.content && /* @__PURE__ */
|
|
4194
|
+
item.time && /* @__PURE__ */ jsx79("p", { className: "text-label-sm text-muted-foreground", children: item.time }),
|
|
4195
|
+
/* @__PURE__ */ jsx79("p", { className: "text-label-md font-medium text-foreground", children: item.title }),
|
|
4196
|
+
item.content && /* @__PURE__ */ jsx79("div", { className: "text-body-sm text-muted-foreground", children: item.content })
|
|
4186
4197
|
] });
|
|
4187
4198
|
var Rail = ({ item, isLast }) => /* @__PURE__ */ jsxs44("div", { className: "flex flex-col items-center", children: [
|
|
4188
|
-
/* @__PURE__ */
|
|
4189
|
-
!isLast && /* @__PURE__ */
|
|
4199
|
+
/* @__PURE__ */ jsx79("span", { className: "flex size-2.5 shrink-0 items-center justify-center rounded-full bg-primary", children: item.icon }),
|
|
4200
|
+
!isLast && /* @__PURE__ */ jsx79("span", { "aria-hidden": true, className: "my-1 w-px flex-1 bg-border" })
|
|
4190
4201
|
] });
|
|
4191
4202
|
var Timeline = React73.forwardRef(
|
|
4192
|
-
({ className, items, alternating = false, ...props }, ref) => /* @__PURE__ */
|
|
4203
|
+
({ className, items, alternating = false, ...props }, ref) => /* @__PURE__ */ jsx79("ol", { ref, className: cn("flex flex-col font-sans", className), ...props, children: items.map((item, i) => {
|
|
4193
4204
|
const isLast = i === items.length - 1;
|
|
4194
4205
|
if (!alternating) {
|
|
4195
4206
|
return /* @__PURE__ */ jsxs44("li", { className: "grid grid-cols-[auto_1fr] gap-x-3", children: [
|
|
4196
|
-
/* @__PURE__ */
|
|
4197
|
-
/* @__PURE__ */
|
|
4207
|
+
/* @__PURE__ */ jsx79(Rail, { item, isLast }),
|
|
4208
|
+
/* @__PURE__ */ jsx79(Body, { item, align: "left" })
|
|
4198
4209
|
] }, i);
|
|
4199
4210
|
}
|
|
4200
4211
|
const onRight = i % 2 === 0;
|
|
4201
4212
|
return /* @__PURE__ */ jsxs44("li", { className: "grid grid-cols-[1fr_auto_1fr] gap-x-4", children: [
|
|
4202
|
-
onRight ? /* @__PURE__ */
|
|
4203
|
-
/* @__PURE__ */
|
|
4204
|
-
onRight ? /* @__PURE__ */
|
|
4213
|
+
onRight ? /* @__PURE__ */ jsx79("div", {}) : /* @__PURE__ */ jsx79(Body, { item, align: "right" }),
|
|
4214
|
+
/* @__PURE__ */ jsx79(Rail, { item, isLast }),
|
|
4215
|
+
onRight ? /* @__PURE__ */ jsx79(Body, { item, align: "left" }) : /* @__PURE__ */ jsx79("div", {})
|
|
4205
4216
|
] }, i);
|
|
4206
4217
|
}) })
|
|
4207
4218
|
);
|
|
@@ -4209,9 +4220,9 @@ Timeline.displayName = "Timeline";
|
|
|
4209
4220
|
|
|
4210
4221
|
// src/components/marquee.tsx
|
|
4211
4222
|
import * as React74 from "react";
|
|
4212
|
-
import { jsx as
|
|
4223
|
+
import { jsx as jsx80, jsxs as jsxs45 } from "react/jsx-runtime";
|
|
4213
4224
|
var Marquee = React74.forwardRef(
|
|
4214
|
-
({ className, children, durationSeconds = 32, pauseOnHover = true, style, ...props }, ref) => /* @__PURE__ */
|
|
4225
|
+
({ className, children, durationSeconds = 32, pauseOnHover = true, style, ...props }, ref) => /* @__PURE__ */ jsx80(
|
|
4215
4226
|
"div",
|
|
4216
4227
|
{
|
|
4217
4228
|
ref,
|
|
@@ -4230,8 +4241,8 @@ var Marquee = React74.forwardRef(
|
|
|
4230
4241
|
pauseOnHover && "group-hover:[animation-play-state:paused]"
|
|
4231
4242
|
),
|
|
4232
4243
|
children: [
|
|
4233
|
-
/* @__PURE__ */
|
|
4234
|
-
/* @__PURE__ */
|
|
4244
|
+
/* @__PURE__ */ jsx80("div", { className: "flex shrink-0 items-center", children }),
|
|
4245
|
+
/* @__PURE__ */ jsx80("div", { "aria-hidden": "true", className: "flex shrink-0 items-center", children })
|
|
4235
4246
|
]
|
|
4236
4247
|
}
|
|
4237
4248
|
)
|
|
@@ -4244,7 +4255,7 @@ Marquee.displayName = "Marquee";
|
|
|
4244
4255
|
import * as React75 from "react";
|
|
4245
4256
|
import * as SliderPrimitive2 from "@radix-ui/react-slider";
|
|
4246
4257
|
import { GripVertical as GripVertical2 } from "lucide-react";
|
|
4247
|
-
import { jsx as
|
|
4258
|
+
import { jsx as jsx81, jsxs as jsxs46 } from "react/jsx-runtime";
|
|
4248
4259
|
var ComparisonSlider = React75.forwardRef(
|
|
4249
4260
|
({ className, before, after, beforeLabel, afterLabel, value, defaultValue = 50, onValueChange, ...props }, ref) => {
|
|
4250
4261
|
const [internal, setInternal] = React75.useState(defaultValue);
|
|
@@ -4265,9 +4276,9 @@ var ComparisonSlider = React75.forwardRef(
|
|
|
4265
4276
|
),
|
|
4266
4277
|
...props,
|
|
4267
4278
|
children: [
|
|
4268
|
-
/* @__PURE__ */
|
|
4269
|
-
/* @__PURE__ */
|
|
4270
|
-
/* @__PURE__ */
|
|
4279
|
+
/* @__PURE__ */ jsx81("div", { className: "absolute inset-0", children: before }),
|
|
4280
|
+
/* @__PURE__ */ jsx81("div", { className: "absolute inset-0 overflow-hidden", style: { clipPath: `inset(0 0 0 ${current}%)` }, children: after }),
|
|
4281
|
+
/* @__PURE__ */ jsx81(
|
|
4271
4282
|
"div",
|
|
4272
4283
|
{
|
|
4273
4284
|
"aria-hidden": true,
|
|
@@ -4275,8 +4286,8 @@ var ComparisonSlider = React75.forwardRef(
|
|
|
4275
4286
|
style: { left: `${current}%` }
|
|
4276
4287
|
}
|
|
4277
4288
|
),
|
|
4278
|
-
beforeLabel && /* @__PURE__ */
|
|
4279
|
-
afterLabel && /* @__PURE__ */
|
|
4289
|
+
beforeLabel && /* @__PURE__ */ jsx81("span", { className: "absolute left-2 top-2 rounded bg-background/80 px-2 py-0.5 text-label-sm text-foreground backdrop-blur-sm", children: beforeLabel }),
|
|
4290
|
+
afterLabel && /* @__PURE__ */ jsx81("span", { className: "absolute right-2 top-2 rounded bg-background/80 px-2 py-0.5 text-label-sm text-foreground backdrop-blur-sm", children: afterLabel }),
|
|
4280
4291
|
/* @__PURE__ */ jsxs46(
|
|
4281
4292
|
SliderPrimitive2.Root,
|
|
4282
4293
|
{
|
|
@@ -4286,13 +4297,13 @@ var ComparisonSlider = React75.forwardRef(
|
|
|
4286
4297
|
step: 0.1,
|
|
4287
4298
|
className: "absolute inset-0 flex touch-none items-center",
|
|
4288
4299
|
children: [
|
|
4289
|
-
/* @__PURE__ */
|
|
4290
|
-
/* @__PURE__ */
|
|
4300
|
+
/* @__PURE__ */ jsx81(SliderPrimitive2.Track, { className: "relative h-full w-full grow bg-transparent", children: /* @__PURE__ */ jsx81(SliderPrimitive2.Range, { className: "absolute h-full bg-transparent" }) }),
|
|
4301
|
+
/* @__PURE__ */ jsx81(
|
|
4291
4302
|
SliderPrimitive2.Thumb,
|
|
4292
4303
|
{
|
|
4293
4304
|
"aria-label": "Comparison position",
|
|
4294
4305
|
className: "flex size-8 shrink-0 items-center justify-center rounded-full border-2 border-background bg-background/90 text-foreground shadow-md outline-none focus-visible:ring-2 focus-visible:ring-ring",
|
|
4295
|
-
children: /* @__PURE__ */
|
|
4306
|
+
children: /* @__PURE__ */ jsx81(GripVertical2, { className: "size-4" })
|
|
4296
4307
|
}
|
|
4297
4308
|
)
|
|
4298
4309
|
]
|
|
@@ -4307,7 +4318,7 @@ ComparisonSlider.displayName = "ComparisonSlider";
|
|
|
4307
4318
|
|
|
4308
4319
|
// src/components/page-header.tsx
|
|
4309
4320
|
import * as React76 from "react";
|
|
4310
|
-
import { jsx as
|
|
4321
|
+
import { jsx as jsx82, jsxs as jsxs47 } from "react/jsx-runtime";
|
|
4311
4322
|
var PageHeader = React76.forwardRef(
|
|
4312
4323
|
({ className, title, description, breadcrumb, actions, tabs, ...props }, ref) => /* @__PURE__ */ jsxs47(
|
|
4313
4324
|
"div",
|
|
@@ -4316,15 +4327,15 @@ var PageHeader = React76.forwardRef(
|
|
|
4316
4327
|
className: cn("flex flex-col gap-4 border-b border-border pb-6 font-sans", className),
|
|
4317
4328
|
...props,
|
|
4318
4329
|
children: [
|
|
4319
|
-
breadcrumb && /* @__PURE__ */
|
|
4330
|
+
breadcrumb && /* @__PURE__ */ jsx82("div", { className: "text-body-sm", children: breadcrumb }),
|
|
4320
4331
|
/* @__PURE__ */ jsxs47("div", { className: "flex flex-wrap items-start justify-between gap-4", children: [
|
|
4321
4332
|
/* @__PURE__ */ jsxs47("div", { className: "flex min-w-0 flex-col gap-1", children: [
|
|
4322
|
-
/* @__PURE__ */
|
|
4323
|
-
description && /* @__PURE__ */
|
|
4333
|
+
/* @__PURE__ */ jsx82("h1", { className: "text-headline-sm font-medium text-foreground", children: title }),
|
|
4334
|
+
description && /* @__PURE__ */ jsx82("p", { className: "text-body-md text-muted-foreground", children: description })
|
|
4324
4335
|
] }),
|
|
4325
|
-
actions && /* @__PURE__ */
|
|
4336
|
+
actions && /* @__PURE__ */ jsx82("div", { className: "flex shrink-0 flex-wrap items-center gap-2", children: actions })
|
|
4326
4337
|
] }),
|
|
4327
|
-
tabs && /* @__PURE__ */
|
|
4338
|
+
tabs && /* @__PURE__ */ jsx82("div", { className: "-mb-6", children: tabs })
|
|
4328
4339
|
]
|
|
4329
4340
|
}
|
|
4330
4341
|
)
|
|
@@ -4334,10 +4345,10 @@ PageHeader.displayName = "PageHeader";
|
|
|
4334
4345
|
// src/components/notification-center.tsx
|
|
4335
4346
|
import * as React77 from "react";
|
|
4336
4347
|
import { Bell } from "lucide-react";
|
|
4337
|
-
import { jsx as
|
|
4348
|
+
import { jsx as jsx83, jsxs as jsxs48 } from "react/jsx-runtime";
|
|
4338
4349
|
var NotificationCenter = Popover;
|
|
4339
4350
|
var NotificationCenterTrigger = React77.forwardRef(
|
|
4340
|
-
({ className, unreadCount = 0, children, ...props }, ref) => /* @__PURE__ */
|
|
4351
|
+
({ className, unreadCount = 0, children, ...props }, ref) => /* @__PURE__ */ jsx83(PopoverTrigger, { asChild: true, children: /* @__PURE__ */ jsxs48(
|
|
4341
4352
|
Button,
|
|
4342
4353
|
{
|
|
4343
4354
|
ref,
|
|
@@ -4347,8 +4358,8 @@ var NotificationCenterTrigger = React77.forwardRef(
|
|
|
4347
4358
|
className: cn("relative", className),
|
|
4348
4359
|
...props,
|
|
4349
4360
|
children: [
|
|
4350
|
-
children ?? /* @__PURE__ */
|
|
4351
|
-
unreadCount > 0 && /* @__PURE__ */
|
|
4361
|
+
children ?? /* @__PURE__ */ jsx83(Bell, { className: "size-5" }),
|
|
4362
|
+
unreadCount > 0 && /* @__PURE__ */ jsx83("span", { className: "absolute right-1.5 top-1.5 flex size-2 rounded-full bg-destructive ring-2 ring-background" })
|
|
4352
4363
|
]
|
|
4353
4364
|
}
|
|
4354
4365
|
) })
|
|
@@ -4357,8 +4368,8 @@ NotificationCenterTrigger.displayName = "NotificationCenterTrigger";
|
|
|
4357
4368
|
var NotificationCenterContent = React77.forwardRef(
|
|
4358
4369
|
({ className, onMarkAllRead, children, align = "end", ...props }, ref) => /* @__PURE__ */ jsxs48(PopoverContent, { ref, align, className: cn("w-80 p-0", className), ...props, children: [
|
|
4359
4370
|
/* @__PURE__ */ jsxs48("div", { className: "flex items-center justify-between border-b border-border px-4 py-3", children: [
|
|
4360
|
-
/* @__PURE__ */
|
|
4361
|
-
onMarkAllRead && /* @__PURE__ */
|
|
4371
|
+
/* @__PURE__ */ jsx83("p", { className: "text-title-sm font-medium text-foreground", children: "Notifications" }),
|
|
4372
|
+
onMarkAllRead && /* @__PURE__ */ jsx83(
|
|
4362
4373
|
"button",
|
|
4363
4374
|
{
|
|
4364
4375
|
type: "button",
|
|
@@ -4368,7 +4379,7 @@ var NotificationCenterContent = React77.forwardRef(
|
|
|
4368
4379
|
}
|
|
4369
4380
|
)
|
|
4370
4381
|
] }),
|
|
4371
|
-
/* @__PURE__ */
|
|
4382
|
+
/* @__PURE__ */ jsx83("div", { className: "flex max-h-80 flex-col divide-y divide-border overflow-y-auto", children })
|
|
4372
4383
|
] })
|
|
4373
4384
|
);
|
|
4374
4385
|
NotificationCenterContent.displayName = "NotificationCenterContent";
|
|
@@ -4395,11 +4406,11 @@ var NotificationItem = React77.forwardRef(
|
|
|
4395
4406
|
),
|
|
4396
4407
|
...props,
|
|
4397
4408
|
children: [
|
|
4398
|
-
/* @__PURE__ */
|
|
4409
|
+
/* @__PURE__ */ jsx83("span", { className: cn("mt-1.5 size-2 shrink-0 rounded-full", unread ? "bg-primary" : "bg-transparent") }),
|
|
4399
4410
|
/* @__PURE__ */ jsxs48("div", { className: "min-w-0 flex-1", children: [
|
|
4400
|
-
/* @__PURE__ */
|
|
4401
|
-
description && /* @__PURE__ */
|
|
4402
|
-
time && /* @__PURE__ */
|
|
4411
|
+
/* @__PURE__ */ jsx83("p", { className: cn("truncate text-body-sm", unread ? "font-medium text-foreground" : "text-muted-foreground"), children: title }),
|
|
4412
|
+
description && /* @__PURE__ */ jsx83("p", { className: "truncate text-body-sm text-muted-foreground", children: description }),
|
|
4413
|
+
time && /* @__PURE__ */ jsx83("p", { className: "mt-0.5 text-label-sm text-muted-foreground", children: time })
|
|
4403
4414
|
] })
|
|
4404
4415
|
]
|
|
4405
4416
|
}
|
|
@@ -4411,7 +4422,7 @@ NotificationItem.displayName = "NotificationItem";
|
|
|
4411
4422
|
// src/components/tree-view.tsx
|
|
4412
4423
|
import * as React78 from "react";
|
|
4413
4424
|
import { ChevronRight as ChevronRight7 } from "lucide-react";
|
|
4414
|
-
import { jsx as
|
|
4425
|
+
import { jsx as jsx84, jsxs as jsxs49 } from "react/jsx-runtime";
|
|
4415
4426
|
var TreeViewContext = React78.createContext(null);
|
|
4416
4427
|
function useTreeViewContext() {
|
|
4417
4428
|
const ctx = React78.useContext(TreeViewContext);
|
|
@@ -4468,7 +4479,7 @@ var TreeView = React78.forwardRef(
|
|
|
4468
4479
|
setTabbableValue,
|
|
4469
4480
|
firstValueRef
|
|
4470
4481
|
};
|
|
4471
|
-
return /* @__PURE__ */
|
|
4482
|
+
return /* @__PURE__ */ jsx84(
|
|
4472
4483
|
"div",
|
|
4473
4484
|
{
|
|
4474
4485
|
ref,
|
|
@@ -4476,7 +4487,7 @@ var TreeView = React78.forwardRef(
|
|
|
4476
4487
|
"aria-multiselectable": checkable || void 0,
|
|
4477
4488
|
className: cn("flex flex-col font-sans", className),
|
|
4478
4489
|
...props,
|
|
4479
|
-
children: /* @__PURE__ */
|
|
4490
|
+
children: /* @__PURE__ */ jsx84(TreeViewContext.Provider, { value: contextValue, children: /* @__PURE__ */ jsx84(TreeLevelContext.Provider, { value: 0, children }) })
|
|
4480
4491
|
}
|
|
4481
4492
|
);
|
|
4482
4493
|
}
|
|
@@ -4574,7 +4585,7 @@ var TreeItem = React78.forwardRef(
|
|
|
4574
4585
|
"focus-visible:ring-1 focus-visible:ring-inset focus-visible:ring-ring"
|
|
4575
4586
|
),
|
|
4576
4587
|
children: [
|
|
4577
|
-
hasChildren ? /* @__PURE__ */
|
|
4588
|
+
hasChildren ? /* @__PURE__ */ jsx84(
|
|
4578
4589
|
ChevronRight7,
|
|
4579
4590
|
{
|
|
4580
4591
|
className: cn("size-4 shrink-0 text-muted-foreground transition-transform", expanded && "rotate-90"),
|
|
@@ -4583,8 +4594,8 @@ var TreeItem = React78.forwardRef(
|
|
|
4583
4594
|
ctx.toggleExpanded(value);
|
|
4584
4595
|
}
|
|
4585
4596
|
}
|
|
4586
|
-
) : /* @__PURE__ */
|
|
4587
|
-
ctx.checkable && /* @__PURE__ */
|
|
4597
|
+
) : /* @__PURE__ */ jsx84("span", { className: "size-4 shrink-0" }),
|
|
4598
|
+
ctx.checkable && /* @__PURE__ */ jsx84(
|
|
4588
4599
|
Checkbox,
|
|
4589
4600
|
{
|
|
4590
4601
|
checked: isChecked,
|
|
@@ -4594,11 +4605,11 @@ var TreeItem = React78.forwardRef(
|
|
|
4594
4605
|
}
|
|
4595
4606
|
),
|
|
4596
4607
|
icon,
|
|
4597
|
-
/* @__PURE__ */
|
|
4608
|
+
/* @__PURE__ */ jsx84("span", { className: "truncate", children: label })
|
|
4598
4609
|
]
|
|
4599
4610
|
}
|
|
4600
4611
|
),
|
|
4601
|
-
hasChildren && expanded && /* @__PURE__ */
|
|
4612
|
+
hasChildren && expanded && /* @__PURE__ */ jsx84("div", { role: "group", children: /* @__PURE__ */ jsx84(TreeLevelContext.Provider, { value: level + 1, children }) })
|
|
4602
4613
|
]
|
|
4603
4614
|
}
|
|
4604
4615
|
);
|
|
@@ -4609,7 +4620,7 @@ TreeItem.displayName = "TreeItem";
|
|
|
4609
4620
|
// src/components/multi-select.tsx
|
|
4610
4621
|
import * as React79 from "react";
|
|
4611
4622
|
import { Check as Check8 } from "lucide-react";
|
|
4612
|
-
import { jsx as
|
|
4623
|
+
import { jsx as jsx85, jsxs as jsxs50 } from "react/jsx-runtime";
|
|
4613
4624
|
var MultiSelect = React79.forwardRef(
|
|
4614
4625
|
({ className, options, value, defaultValue = [], onValueChange, placeholder = "Select\u2026", creatable = false, ...props }, ref) => {
|
|
4615
4626
|
const [internal, setInternal] = React79.useState(defaultValue);
|
|
@@ -4627,7 +4638,7 @@ var MultiSelect = React79.forwardRef(
|
|
|
4627
4638
|
const canCreate = creatable && trimmed.length > 0 && !options.some((o) => o.label.toLowerCase() === trimmed.toLowerCase());
|
|
4628
4639
|
const visibleOptions = creatable ? options.filter((o) => o.label.toLowerCase().includes(trimmed.toLowerCase())) : options;
|
|
4629
4640
|
return /* @__PURE__ */ jsxs50(Popover, { open, onOpenChange: setOpen, children: [
|
|
4630
|
-
/* @__PURE__ */
|
|
4641
|
+
/* @__PURE__ */ jsx85(PopoverAnchor, { asChild: true, children: /* @__PURE__ */ jsxs50(
|
|
4631
4642
|
"div",
|
|
4632
4643
|
{
|
|
4633
4644
|
ref,
|
|
@@ -4650,21 +4661,21 @@ var MultiSelect = React79.forwardRef(
|
|
|
4650
4661
|
),
|
|
4651
4662
|
...props,
|
|
4652
4663
|
children: [
|
|
4653
|
-
current.length === 0 && /* @__PURE__ */
|
|
4654
|
-
current.map((v) => /* @__PURE__ */
|
|
4664
|
+
current.length === 0 && /* @__PURE__ */ jsx85("span", { className: "text-body-sm text-muted-foreground", children: placeholder }),
|
|
4665
|
+
current.map((v) => /* @__PURE__ */ jsx85(Tag, { variant: "secondary", onRemove: () => remove(v), onClick: (e) => e.stopPropagation(), children: labelFor(v) }, v))
|
|
4655
4666
|
]
|
|
4656
4667
|
}
|
|
4657
4668
|
) }),
|
|
4658
|
-
/* @__PURE__ */
|
|
4669
|
+
/* @__PURE__ */ jsx85(
|
|
4659
4670
|
PopoverContent,
|
|
4660
4671
|
{
|
|
4661
4672
|
align: "start",
|
|
4662
4673
|
className: "w-[var(--radix-popover-trigger-width)] p-0",
|
|
4663
4674
|
onOpenAutoFocus: (e) => e.preventDefault(),
|
|
4664
4675
|
children: /* @__PURE__ */ jsxs50(Command, { shouldFilter: !creatable, children: [
|
|
4665
|
-
/* @__PURE__ */
|
|
4676
|
+
/* @__PURE__ */ jsx85(CommandInput, { placeholder: "Search\u2026", value: query, onValueChange: setQuery }),
|
|
4666
4677
|
/* @__PURE__ */ jsxs50(CommandList, { children: [
|
|
4667
|
-
/* @__PURE__ */
|
|
4678
|
+
/* @__PURE__ */ jsx85(CommandEmpty, { children: canCreate ? /* @__PURE__ */ jsxs50(
|
|
4668
4679
|
"button",
|
|
4669
4680
|
{
|
|
4670
4681
|
type: "button",
|
|
@@ -4680,8 +4691,8 @@ var MultiSelect = React79.forwardRef(
|
|
|
4680
4691
|
]
|
|
4681
4692
|
}
|
|
4682
4693
|
) : "No results." }),
|
|
4683
|
-
/* @__PURE__ */
|
|
4684
|
-
/* @__PURE__ */
|
|
4694
|
+
/* @__PURE__ */ jsx85(CommandGroup, { children: visibleOptions.map((option) => /* @__PURE__ */ jsxs50(CommandItem, { value: option.label, onSelect: () => toggle(option.value), children: [
|
|
4695
|
+
/* @__PURE__ */ jsx85(Check8, { className: cn("size-4", current.includes(option.value) ? "opacity-100" : "opacity-0") }),
|
|
4685
4696
|
option.label
|
|
4686
4697
|
] }, option.value)) })
|
|
4687
4698
|
] })
|
|
@@ -4696,14 +4707,14 @@ MultiSelect.displayName = "MultiSelect";
|
|
|
4696
4707
|
// src/components/message-bubble.tsx
|
|
4697
4708
|
import * as React80 from "react";
|
|
4698
4709
|
import { Check as Check9, CheckCheck } from "lucide-react";
|
|
4699
|
-
import { jsx as
|
|
4710
|
+
import { jsx as jsx86, jsxs as jsxs51 } from "react/jsx-runtime";
|
|
4700
4711
|
var MessageBubble = React80.forwardRef(
|
|
4701
4712
|
({ className, variant = "received", timestamp, status, grouped = false, avatar, children, ...props }, ref) => {
|
|
4702
4713
|
const sent = variant === "sent";
|
|
4703
4714
|
return /* @__PURE__ */ jsxs51("div", { ref, className: cn("flex items-end gap-2 font-sans", sent && "flex-row-reverse", className), ...props, children: [
|
|
4704
|
-
avatar && !sent && /* @__PURE__ */
|
|
4715
|
+
avatar && !sent && /* @__PURE__ */ jsx86("div", { className: "shrink-0 self-end", children: avatar }),
|
|
4705
4716
|
/* @__PURE__ */ jsxs51("div", { className: cn("flex max-w-[75%] flex-col gap-1", sent ? "items-end" : "items-start"), children: [
|
|
4706
|
-
/* @__PURE__ */
|
|
4717
|
+
/* @__PURE__ */ jsx86(
|
|
4707
4718
|
"div",
|
|
4708
4719
|
{
|
|
4709
4720
|
className: cn(
|
|
@@ -4717,7 +4728,7 @@ var MessageBubble = React80.forwardRef(
|
|
|
4717
4728
|
),
|
|
4718
4729
|
(timestamp || sent && status) && /* @__PURE__ */ jsxs51("div", { className: "flex items-center gap-1 px-1 text-label-sm text-muted-foreground", children: [
|
|
4719
4730
|
timestamp,
|
|
4720
|
-
sent && status && /* @__PURE__ */
|
|
4731
|
+
sent && status && /* @__PURE__ */ jsx86("span", { className: cn(status === "read" && "text-primary"), children: status === "sent" ? /* @__PURE__ */ jsx86(Check9, { className: "size-3.5" }) : /* @__PURE__ */ jsx86(CheckCheck, { className: "size-3.5" }) })
|
|
4721
4732
|
] })
|
|
4722
4733
|
] })
|
|
4723
4734
|
] });
|
|
@@ -4725,7 +4736,7 @@ var MessageBubble = React80.forwardRef(
|
|
|
4725
4736
|
);
|
|
4726
4737
|
MessageBubble.displayName = "MessageBubble";
|
|
4727
4738
|
var TypingIndicator = React80.forwardRef(
|
|
4728
|
-
({ className, ...props }, ref) => /* @__PURE__ */
|
|
4739
|
+
({ className, ...props }, ref) => /* @__PURE__ */ jsx86(
|
|
4729
4740
|
"div",
|
|
4730
4741
|
{
|
|
4731
4742
|
ref,
|
|
@@ -4733,7 +4744,7 @@ var TypingIndicator = React80.forwardRef(
|
|
|
4733
4744
|
"aria-label": "Typing",
|
|
4734
4745
|
className: cn("flex w-fit items-center gap-1 rounded-2xl bg-muted px-3.5 py-2.5", className),
|
|
4735
4746
|
...props,
|
|
4736
|
-
children: [0, 1, 2].map((i) => /* @__PURE__ */
|
|
4747
|
+
children: [0, 1, 2].map((i) => /* @__PURE__ */ jsx86(
|
|
4737
4748
|
"span",
|
|
4738
4749
|
{
|
|
4739
4750
|
"aria-hidden": true,
|
|
@@ -4750,7 +4761,7 @@ TypingIndicator.displayName = "TypingIndicator";
|
|
|
4750
4761
|
// src/components/tour.tsx
|
|
4751
4762
|
import * as React81 from "react";
|
|
4752
4763
|
import { createPortal } from "react-dom";
|
|
4753
|
-
import { Fragment, jsx as
|
|
4764
|
+
import { Fragment, jsx as jsx87, jsxs as jsxs52 } from "react/jsx-runtime";
|
|
4754
4765
|
var SPOTLIGHT_PADDING = 8;
|
|
4755
4766
|
var Tour = ({
|
|
4756
4767
|
steps,
|
|
@@ -4810,7 +4821,7 @@ var Tour = ({
|
|
|
4810
4821
|
} : { top: "50%", left: "50%", transform: "translate(-50%, -50%)" };
|
|
4811
4822
|
return createPortal(
|
|
4812
4823
|
/* @__PURE__ */ jsxs52(Fragment, { children: [
|
|
4813
|
-
/* @__PURE__ */
|
|
4824
|
+
/* @__PURE__ */ jsx87(
|
|
4814
4825
|
"div",
|
|
4815
4826
|
{
|
|
4816
4827
|
"aria-hidden": true,
|
|
@@ -4826,8 +4837,8 @@ var Tour = ({
|
|
|
4826
4837
|
className: "fixed z-overlay w-80 rounded-lg border border-border bg-popover p-4 font-sans text-popover-foreground shadow-lg transition-all duration-fast",
|
|
4827
4838
|
style: cardStyle,
|
|
4828
4839
|
children: [
|
|
4829
|
-
/* @__PURE__ */
|
|
4830
|
-
/* @__PURE__ */
|
|
4840
|
+
/* @__PURE__ */ jsx87("p", { className: "text-title-sm font-medium text-foreground", children: step.title }),
|
|
4841
|
+
/* @__PURE__ */ jsx87("div", { className: "mt-1.5 text-body-sm text-muted-foreground", children: step.content }),
|
|
4831
4842
|
/* @__PURE__ */ jsxs52("div", { className: "mt-4 flex items-center justify-between", children: [
|
|
4832
4843
|
/* @__PURE__ */ jsxs52("span", { className: "text-label-sm text-muted-foreground", children: [
|
|
4833
4844
|
stepIndex + 1,
|
|
@@ -4835,11 +4846,11 @@ var Tour = ({
|
|
|
4835
4846
|
steps.length
|
|
4836
4847
|
] }),
|
|
4837
4848
|
/* @__PURE__ */ jsxs52("div", { className: "flex items-center gap-2", children: [
|
|
4838
|
-
!isFirst && /* @__PURE__ */
|
|
4849
|
+
!isFirst && /* @__PURE__ */ jsx87(Button, { variant: "Ghost", size: "sm", onClick: () => onStepIndexChange(stepIndex - 1), children: backLabel }),
|
|
4839
4850
|
!isLast ? /* @__PURE__ */ jsxs52(Fragment, { children: [
|
|
4840
|
-
/* @__PURE__ */
|
|
4841
|
-
/* @__PURE__ */
|
|
4842
|
-
] }) : /* @__PURE__ */
|
|
4851
|
+
/* @__PURE__ */ jsx87(Button, { variant: "Link", size: "sm", onClick: () => onOpenChange(false), children: skipLabel }),
|
|
4852
|
+
/* @__PURE__ */ jsx87(Button, { size: "sm", onClick: () => onStepIndexChange(stepIndex + 1), children: nextLabel })
|
|
4853
|
+
] }) : /* @__PURE__ */ jsx87(Button, { size: "sm", onClick: () => onOpenChange(false), children: doneLabel })
|
|
4843
4854
|
] })
|
|
4844
4855
|
] })
|
|
4845
4856
|
]
|
|
@@ -4852,7 +4863,7 @@ var Tour = ({
|
|
|
4852
4863
|
|
|
4853
4864
|
// src/components/virtual-list.tsx
|
|
4854
4865
|
import * as React82 from "react";
|
|
4855
|
-
import { jsx as
|
|
4866
|
+
import { jsx as jsx88 } from "react/jsx-runtime";
|
|
4856
4867
|
function VirtualList({
|
|
4857
4868
|
items,
|
|
4858
4869
|
itemHeight,
|
|
@@ -4883,7 +4894,7 @@ function VirtualList({
|
|
|
4883
4894
|
const visibleCount = Math.ceil(viewportHeight / itemHeight) + overscan * 2;
|
|
4884
4895
|
const endIndex = Math.min(items.length, startIndex + Math.max(visibleCount, 0));
|
|
4885
4896
|
const visibleItems = items.slice(startIndex, endIndex);
|
|
4886
|
-
return /* @__PURE__ */
|
|
4897
|
+
return /* @__PURE__ */ jsx88(
|
|
4887
4898
|
"div",
|
|
4888
4899
|
{
|
|
4889
4900
|
ref: containerRef,
|
|
@@ -4895,9 +4906,9 @@ function VirtualList({
|
|
|
4895
4906
|
setScrollTop(e.currentTarget.scrollTop);
|
|
4896
4907
|
},
|
|
4897
4908
|
...props,
|
|
4898
|
-
children: /* @__PURE__ */
|
|
4909
|
+
children: /* @__PURE__ */ jsx88("div", { style: { height: totalHeight, position: "relative" }, children: visibleItems.map((item, i) => {
|
|
4899
4910
|
const index = startIndex + i;
|
|
4900
|
-
return /* @__PURE__ */
|
|
4911
|
+
return /* @__PURE__ */ jsx88(
|
|
4901
4912
|
"div",
|
|
4902
4913
|
{
|
|
4903
4914
|
role: "listitem",
|
|
@@ -4913,7 +4924,7 @@ function VirtualList({
|
|
|
4913
4924
|
|
|
4914
4925
|
// src/components/data-grid.tsx
|
|
4915
4926
|
import * as React83 from "react";
|
|
4916
|
-
import { jsx as
|
|
4927
|
+
import { jsx as jsx89, jsxs as jsxs53 } from "react/jsx-runtime";
|
|
4917
4928
|
var DEFAULT_WIDTH = 160;
|
|
4918
4929
|
var DEFAULT_MIN_WIDTH = 60;
|
|
4919
4930
|
var DEFAULT_ROW_HEIGHT = 40;
|
|
@@ -5025,7 +5036,7 @@ function DataGrid({
|
|
|
5025
5036
|
column.onCellEdit?.(row, rowIndex, value);
|
|
5026
5037
|
setEditing(null);
|
|
5027
5038
|
}
|
|
5028
|
-
return /* @__PURE__ */
|
|
5039
|
+
return /* @__PURE__ */ jsx89(
|
|
5029
5040
|
"div",
|
|
5030
5041
|
{
|
|
5031
5042
|
ref: containerRef,
|
|
@@ -5034,7 +5045,7 @@ function DataGrid({
|
|
|
5034
5045
|
style: { height },
|
|
5035
5046
|
onScroll: (e) => setScrollTop(e.currentTarget.scrollTop),
|
|
5036
5047
|
children: /* @__PURE__ */ jsxs53("div", { style: { width: totalWidth, minWidth: "100%" }, children: [
|
|
5037
|
-
/* @__PURE__ */
|
|
5048
|
+
/* @__PURE__ */ jsx89("div", { role: "row", className: "sticky top-0 z-[2] flex border-b bg-background", children: renderedColumns.map((column) => {
|
|
5038
5049
|
const width = widths[column.id] ?? column.width ?? DEFAULT_WIDTH;
|
|
5039
5050
|
const pinnedStyle = column.pinned === "left" ? { position: "sticky", left: leftOffsets[column.id], zIndex: 3 } : column.pinned === "right" ? { position: "sticky", right: rightOffsets[column.id], zIndex: 3 } : {};
|
|
5040
5051
|
const isSorted = sort?.columnId === column.id;
|
|
@@ -5070,9 +5081,9 @@ function DataGrid({
|
|
|
5070
5081
|
),
|
|
5071
5082
|
style: { width, ...pinnedStyle },
|
|
5072
5083
|
children: [
|
|
5073
|
-
/* @__PURE__ */
|
|
5074
|
-
column.sortable && isSorted && /* @__PURE__ */
|
|
5075
|
-
/* @__PURE__ */
|
|
5084
|
+
/* @__PURE__ */ jsx89("span", { className: "truncate", children: column.header }),
|
|
5085
|
+
column.sortable && isSorted && /* @__PURE__ */ jsx89("span", { "aria-hidden": "true", className: "text-xs", children: sort.direction === "asc" ? "\u25B2" : "\u25BC" }),
|
|
5086
|
+
/* @__PURE__ */ jsx89(
|
|
5076
5087
|
"div",
|
|
5077
5088
|
{
|
|
5078
5089
|
onPointerDown: (e) => {
|
|
@@ -5087,9 +5098,9 @@ function DataGrid({
|
|
|
5087
5098
|
column.id
|
|
5088
5099
|
);
|
|
5089
5100
|
}) }),
|
|
5090
|
-
/* @__PURE__ */
|
|
5101
|
+
/* @__PURE__ */ jsx89("div", { style: { height: totalHeight, position: "relative" }, children: visibleRows.map((row, i) => {
|
|
5091
5102
|
const rowIndex = startIndex + i;
|
|
5092
|
-
return /* @__PURE__ */
|
|
5103
|
+
return /* @__PURE__ */ jsx89(
|
|
5093
5104
|
"div",
|
|
5094
5105
|
{
|
|
5095
5106
|
role: "row",
|
|
@@ -5099,14 +5110,14 @@ function DataGrid({
|
|
|
5099
5110
|
const width = widths[column.id] ?? column.width ?? DEFAULT_WIDTH;
|
|
5100
5111
|
const pinnedStyle = column.pinned === "left" ? { position: "sticky", left: leftOffsets[column.id], zIndex: 1 } : column.pinned === "right" ? { position: "sticky", right: rightOffsets[column.id], zIndex: 1 } : {};
|
|
5101
5112
|
const isEditing = editing?.rowIndex === rowIndex && editing.columnId === column.id;
|
|
5102
|
-
return /* @__PURE__ */
|
|
5113
|
+
return /* @__PURE__ */ jsx89(
|
|
5103
5114
|
"div",
|
|
5104
5115
|
{
|
|
5105
5116
|
role: "gridcell",
|
|
5106
5117
|
onDoubleClick: () => column.editable && setEditing({ rowIndex, columnId: column.id }),
|
|
5107
5118
|
className: cn("flex shrink-0 items-center px-2", column.pinned && "bg-background"),
|
|
5108
5119
|
style: { width, ...pinnedStyle },
|
|
5109
|
-
children: isEditing ? /* @__PURE__ */
|
|
5120
|
+
children: isEditing ? /* @__PURE__ */ jsx89(
|
|
5110
5121
|
"input",
|
|
5111
5122
|
{
|
|
5112
5123
|
autoFocus: true,
|
|
@@ -5118,7 +5129,7 @@ function DataGrid({
|
|
|
5118
5129
|
},
|
|
5119
5130
|
onBlur: (e) => commitEdit(column, row, rowIndex, e.currentTarget.value)
|
|
5120
5131
|
}
|
|
5121
|
-
) : /* @__PURE__ */
|
|
5132
|
+
) : /* @__PURE__ */ jsx89("span", { className: "truncate", children: column.cell(row, rowIndex) })
|
|
5122
5133
|
},
|
|
5123
5134
|
column.id
|
|
5124
5135
|
);
|
|
@@ -5135,7 +5146,7 @@ function DataGrid({
|
|
|
5135
5146
|
// src/components/json-viewer.tsx
|
|
5136
5147
|
import * as React84 from "react";
|
|
5137
5148
|
import { Check as Check10, ChevronRight as ChevronRight8, Copy as Copy2 } from "lucide-react";
|
|
5138
|
-
import { Fragment as Fragment2, jsx as
|
|
5149
|
+
import { Fragment as Fragment2, jsx as jsx90, jsxs as jsxs54 } from "react/jsx-runtime";
|
|
5139
5150
|
var JsonViewer = React84.forwardRef(
|
|
5140
5151
|
({ data, expandDepth = 1, hideCopy, className, ...props }, ref) => {
|
|
5141
5152
|
const [copied, setCopied] = React84.useState(false);
|
|
@@ -5154,17 +5165,17 @@ var JsonViewer = React84.forwardRef(
|
|
|
5154
5165
|
className: cn("relative overflow-auto rounded-md border bg-muted/30 p-3 font-mono text-xs", className),
|
|
5155
5166
|
...props,
|
|
5156
5167
|
children: [
|
|
5157
|
-
!hideCopy && /* @__PURE__ */
|
|
5168
|
+
!hideCopy && /* @__PURE__ */ jsx90(
|
|
5158
5169
|
"button",
|
|
5159
5170
|
{
|
|
5160
5171
|
type: "button",
|
|
5161
5172
|
onClick: copy,
|
|
5162
5173
|
"aria-label": "Copy JSON",
|
|
5163
5174
|
className: "absolute right-2 top-2 inline-flex size-6 items-center justify-center rounded-sm text-muted-foreground hover:bg-accent hover:text-foreground",
|
|
5164
|
-
children: copied ? /* @__PURE__ */
|
|
5175
|
+
children: copied ? /* @__PURE__ */ jsx90(Check10, { className: "size-3.5" }) : /* @__PURE__ */ jsx90(Copy2, { className: "size-3.5" })
|
|
5165
5176
|
}
|
|
5166
5177
|
),
|
|
5167
|
-
/* @__PURE__ */
|
|
5178
|
+
/* @__PURE__ */ jsx90("div", { role: "tree", children: /* @__PURE__ */ jsx90(JsonNode, { value: data, depth: 0, expandDepth, isLast: true }) })
|
|
5168
5179
|
]
|
|
5169
5180
|
}
|
|
5170
5181
|
);
|
|
@@ -5186,8 +5197,8 @@ function JsonNode({
|
|
|
5186
5197
|
JSON.stringify(name),
|
|
5187
5198
|
": "
|
|
5188
5199
|
] }),
|
|
5189
|
-
/* @__PURE__ */
|
|
5190
|
-
!isLast && /* @__PURE__ */
|
|
5200
|
+
/* @__PURE__ */ jsx90(JsonPrimitive, { value }),
|
|
5201
|
+
!isLast && /* @__PURE__ */ jsx90("span", { className: "text-muted-foreground", children: "," })
|
|
5191
5202
|
] });
|
|
5192
5203
|
}
|
|
5193
5204
|
const isArray = Array.isArray(value);
|
|
@@ -5204,19 +5215,19 @@ function JsonNode({
|
|
|
5204
5215
|
openBracket,
|
|
5205
5216
|
closeBracket
|
|
5206
5217
|
] }),
|
|
5207
|
-
!isLast && /* @__PURE__ */
|
|
5218
|
+
!isLast && /* @__PURE__ */ jsx90("span", { className: "text-muted-foreground", children: "," })
|
|
5208
5219
|
] });
|
|
5209
5220
|
}
|
|
5210
5221
|
return /* @__PURE__ */ jsxs54("div", { role: "treeitem", "aria-expanded": expanded, children: [
|
|
5211
5222
|
/* @__PURE__ */ jsxs54("div", { style: { paddingLeft: depth * 16 }, className: "flex items-start gap-1", children: [
|
|
5212
|
-
/* @__PURE__ */
|
|
5223
|
+
/* @__PURE__ */ jsx90(
|
|
5213
5224
|
"button",
|
|
5214
5225
|
{
|
|
5215
5226
|
type: "button",
|
|
5216
5227
|
onClick: () => setExpanded((e) => !e),
|
|
5217
5228
|
"aria-label": expanded ? "Collapse" : "Expand",
|
|
5218
5229
|
className: "mt-0.5 inline-flex size-4 shrink-0 items-center justify-center text-muted-foreground hover:text-foreground",
|
|
5219
|
-
children: /* @__PURE__ */
|
|
5230
|
+
children: /* @__PURE__ */ jsx90(ChevronRight8, { className: cn("size-3 transition-transform", expanded && "rotate-90") })
|
|
5220
5231
|
}
|
|
5221
5232
|
),
|
|
5222
5233
|
/* @__PURE__ */ jsxs54("span", { children: [
|
|
@@ -5224,7 +5235,7 @@ function JsonNode({
|
|
|
5224
5235
|
JSON.stringify(name),
|
|
5225
5236
|
": "
|
|
5226
5237
|
] }),
|
|
5227
|
-
/* @__PURE__ */
|
|
5238
|
+
/* @__PURE__ */ jsx90("span", { children: openBracket }),
|
|
5228
5239
|
!expanded && /* @__PURE__ */ jsxs54("span", { className: "text-muted-foreground", children: [
|
|
5229
5240
|
" ",
|
|
5230
5241
|
entries.length,
|
|
@@ -5233,12 +5244,12 @@ function JsonNode({
|
|
|
5233
5244
|
entries.length === 1 ? "" : "s",
|
|
5234
5245
|
" "
|
|
5235
5246
|
] }),
|
|
5236
|
-
!expanded && /* @__PURE__ */
|
|
5237
|
-
!expanded && !isLast && /* @__PURE__ */
|
|
5247
|
+
!expanded && /* @__PURE__ */ jsx90("span", { children: closeBracket }),
|
|
5248
|
+
!expanded && !isLast && /* @__PURE__ */ jsx90("span", { className: "text-muted-foreground", children: "," })
|
|
5238
5249
|
] })
|
|
5239
5250
|
] }),
|
|
5240
5251
|
expanded && /* @__PURE__ */ jsxs54(Fragment2, { children: [
|
|
5241
|
-
entries.map(([key, val], i) => /* @__PURE__ */
|
|
5252
|
+
entries.map(([key, val], i) => /* @__PURE__ */ jsx90(
|
|
5242
5253
|
JsonNode,
|
|
5243
5254
|
{
|
|
5244
5255
|
name: isArray ? void 0 : key,
|
|
@@ -5250,24 +5261,24 @@ function JsonNode({
|
|
|
5250
5261
|
key
|
|
5251
5262
|
)),
|
|
5252
5263
|
/* @__PURE__ */ jsxs54("div", { style: { paddingLeft: depth * 16 }, children: [
|
|
5253
|
-
/* @__PURE__ */
|
|
5254
|
-
!isLast && /* @__PURE__ */
|
|
5264
|
+
/* @__PURE__ */ jsx90("span", { children: closeBracket }),
|
|
5265
|
+
!isLast && /* @__PURE__ */ jsx90("span", { className: "text-muted-foreground", children: "," })
|
|
5255
5266
|
] })
|
|
5256
5267
|
] })
|
|
5257
5268
|
] });
|
|
5258
5269
|
}
|
|
5259
5270
|
function JsonPrimitive({ value }) {
|
|
5260
|
-
if (value === null) return /* @__PURE__ */
|
|
5261
|
-
if (value === void 0) return /* @__PURE__ */
|
|
5262
|
-
if (typeof value === "string") return /* @__PURE__ */
|
|
5263
|
-
if (typeof value === "number") return /* @__PURE__ */
|
|
5264
|
-
if (typeof value === "boolean") return /* @__PURE__ */
|
|
5265
|
-
return /* @__PURE__ */
|
|
5271
|
+
if (value === null) return /* @__PURE__ */ jsx90("span", { className: "italic text-muted-foreground", children: "null" });
|
|
5272
|
+
if (value === void 0) return /* @__PURE__ */ jsx90("span", { className: "italic text-muted-foreground", children: "undefined" });
|
|
5273
|
+
if (typeof value === "string") return /* @__PURE__ */ jsx90("span", { className: "text-success", children: JSON.stringify(value) });
|
|
5274
|
+
if (typeof value === "number") return /* @__PURE__ */ jsx90("span", { className: "text-info", children: value });
|
|
5275
|
+
if (typeof value === "boolean") return /* @__PURE__ */ jsx90("span", { className: "text-warning", children: String(value) });
|
|
5276
|
+
return /* @__PURE__ */ jsx90("span", { children: String(value) });
|
|
5266
5277
|
}
|
|
5267
5278
|
|
|
5268
5279
|
// src/components/diff-viewer.tsx
|
|
5269
5280
|
import * as React85 from "react";
|
|
5270
|
-
import { jsx as
|
|
5281
|
+
import { jsx as jsx91, jsxs as jsxs55 } from "react/jsx-runtime";
|
|
5271
5282
|
function computeLineDiff(oldText, newText) {
|
|
5272
5283
|
const oldLines = oldText.split("\n");
|
|
5273
5284
|
const newLines = newText.split("\n");
|
|
@@ -5308,20 +5319,20 @@ function computeLineDiff(oldText, newText) {
|
|
|
5308
5319
|
var DiffViewer = React85.forwardRef(
|
|
5309
5320
|
({ oldText, newText, mode = "unified", oldLabel = "Before", newLabel = "After", className, ...props }, ref) => {
|
|
5310
5321
|
const ops = React85.useMemo(() => computeLineDiff(oldText, newText), [oldText, newText]);
|
|
5311
|
-
return /* @__PURE__ */
|
|
5322
|
+
return /* @__PURE__ */ jsx91("div", { ref, className: cn("overflow-auto rounded-md border font-mono text-xs", className), ...props, children: mode === "split" ? /* @__PURE__ */ jsx91(SplitDiff, { ops, oldLabel, newLabel }) : /* @__PURE__ */ jsx91(UnifiedDiff, { ops }) });
|
|
5312
5323
|
}
|
|
5313
5324
|
);
|
|
5314
5325
|
DiffViewer.displayName = "DiffViewer";
|
|
5315
5326
|
function UnifiedDiff({ ops }) {
|
|
5316
|
-
return /* @__PURE__ */
|
|
5327
|
+
return /* @__PURE__ */ jsx91("div", { role: "table", children: ops.map((op, i) => /* @__PURE__ */ jsxs55(
|
|
5317
5328
|
"div",
|
|
5318
5329
|
{
|
|
5319
5330
|
role: "row",
|
|
5320
5331
|
className: cn("flex", op.type === "add" && "bg-success/10", op.type === "remove" && "bg-destructive/10"),
|
|
5321
5332
|
children: [
|
|
5322
|
-
/* @__PURE__ */
|
|
5323
|
-
/* @__PURE__ */
|
|
5324
|
-
/* @__PURE__ */
|
|
5333
|
+
/* @__PURE__ */ jsx91("span", { className: "w-9 shrink-0 select-none border-r px-1.5 text-right text-muted-foreground", children: op.type !== "add" ? op.oldLine : "" }),
|
|
5334
|
+
/* @__PURE__ */ jsx91("span", { className: "w-9 shrink-0 select-none border-r px-1.5 text-right text-muted-foreground", children: op.type !== "remove" ? op.newLine : "" }),
|
|
5335
|
+
/* @__PURE__ */ jsx91(
|
|
5325
5336
|
"span",
|
|
5326
5337
|
{
|
|
5327
5338
|
className: cn(
|
|
@@ -5332,7 +5343,7 @@ function UnifiedDiff({ ops }) {
|
|
|
5332
5343
|
children: op.type === "add" ? "+" : op.type === "remove" ? "\u2212" : ""
|
|
5333
5344
|
}
|
|
5334
5345
|
),
|
|
5335
|
-
/* @__PURE__ */
|
|
5346
|
+
/* @__PURE__ */ jsx91("span", { className: "min-w-0 flex-1 whitespace-pre px-1", children: op.text })
|
|
5336
5347
|
]
|
|
5337
5348
|
},
|
|
5338
5349
|
i
|
|
@@ -5341,17 +5352,17 @@ function UnifiedDiff({ ops }) {
|
|
|
5341
5352
|
function SplitDiff({ ops, oldLabel, newLabel }) {
|
|
5342
5353
|
return /* @__PURE__ */ jsxs55("div", { role: "table", children: [
|
|
5343
5354
|
/* @__PURE__ */ jsxs55("div", { className: "flex border-b bg-muted/40 text-muted-foreground", children: [
|
|
5344
|
-
/* @__PURE__ */
|
|
5345
|
-
/* @__PURE__ */
|
|
5355
|
+
/* @__PURE__ */ jsx91("div", { className: "flex-1 px-2 py-1", children: oldLabel }),
|
|
5356
|
+
/* @__PURE__ */ jsx91("div", { className: "flex-1 border-l px-2 py-1", children: newLabel })
|
|
5346
5357
|
] }),
|
|
5347
5358
|
ops.map((op, i) => /* @__PURE__ */ jsxs55("div", { role: "row", className: "flex", children: [
|
|
5348
5359
|
/* @__PURE__ */ jsxs55("div", { className: cn("flex flex-1 items-start", op.type === "remove" && "bg-destructive/10"), children: [
|
|
5349
|
-
/* @__PURE__ */
|
|
5350
|
-
/* @__PURE__ */
|
|
5360
|
+
/* @__PURE__ */ jsx91("span", { className: "w-9 shrink-0 select-none px-1.5 text-right text-muted-foreground", children: op.type !== "add" ? op.oldLine : "" }),
|
|
5361
|
+
/* @__PURE__ */ jsx91("span", { className: "min-w-0 flex-1 whitespace-pre px-1", children: op.type !== "add" ? op.text : "" })
|
|
5351
5362
|
] }),
|
|
5352
5363
|
/* @__PURE__ */ jsxs55("div", { className: cn("flex flex-1 items-start border-l", op.type === "add" && "bg-success/10"), children: [
|
|
5353
|
-
/* @__PURE__ */
|
|
5354
|
-
/* @__PURE__ */
|
|
5364
|
+
/* @__PURE__ */ jsx91("span", { className: "w-9 shrink-0 select-none px-1.5 text-right text-muted-foreground", children: op.type !== "remove" ? op.newLine : "" }),
|
|
5365
|
+
/* @__PURE__ */ jsx91("span", { className: "min-w-0 flex-1 whitespace-pre px-1", children: op.type !== "remove" ? op.text : "" })
|
|
5355
5366
|
] })
|
|
5356
5367
|
] }, i))
|
|
5357
5368
|
] });
|
|
@@ -5361,7 +5372,7 @@ function SplitDiff({ ops, oldLabel, newLabel }) {
|
|
|
5361
5372
|
import * as React86 from "react";
|
|
5362
5373
|
import * as SliderPrimitive3 from "@radix-ui/react-slider";
|
|
5363
5374
|
import { Pipette } from "lucide-react";
|
|
5364
|
-
import { jsx as
|
|
5375
|
+
import { jsx as jsx92, jsxs as jsxs56 } from "react/jsx-runtime";
|
|
5365
5376
|
var clamp = (v, min, max) => Math.min(max, Math.max(min, v));
|
|
5366
5377
|
function hexToRgba(hex) {
|
|
5367
5378
|
const h = hex.replace("#", "");
|
|
@@ -5495,7 +5506,7 @@ var ColorPicker = React86.forwardRef(
|
|
|
5495
5506
|
}
|
|
5496
5507
|
};
|
|
5497
5508
|
return /* @__PURE__ */ jsxs56("div", { ref, className: cn("flex w-64 flex-col gap-3 font-sans", className), ...props, children: [
|
|
5498
|
-
/* @__PURE__ */
|
|
5509
|
+
/* @__PURE__ */ jsx92(
|
|
5499
5510
|
"div",
|
|
5500
5511
|
{
|
|
5501
5512
|
ref: squareRef,
|
|
@@ -5512,7 +5523,7 @@ var ColorPicker = React86.forwardRef(
|
|
|
5512
5523
|
backgroundColor: `hsl(${h} 100% 50%)`,
|
|
5513
5524
|
backgroundImage: "linear-gradient(to top, #000, transparent), linear-gradient(to right, #fff, transparent)"
|
|
5514
5525
|
},
|
|
5515
|
-
children: /* @__PURE__ */
|
|
5526
|
+
children: /* @__PURE__ */ jsx92(
|
|
5516
5527
|
"div",
|
|
5517
5528
|
{
|
|
5518
5529
|
className: "absolute size-3.5 -translate-x-1/2 translate-y-1/2 rounded-full border-2 border-white shadow",
|
|
@@ -5532,7 +5543,7 @@ var ColorPicker = React86.forwardRef(
|
|
|
5532
5543
|
"aria-label": "Hue",
|
|
5533
5544
|
className: "relative flex h-4 w-full touch-none select-none items-center",
|
|
5534
5545
|
children: [
|
|
5535
|
-
/* @__PURE__ */
|
|
5546
|
+
/* @__PURE__ */ jsx92(
|
|
5536
5547
|
SliderPrimitive3.Track,
|
|
5537
5548
|
{
|
|
5538
5549
|
className: "relative h-3 w-full grow rounded-full",
|
|
@@ -5541,7 +5552,7 @@ var ColorPicker = React86.forwardRef(
|
|
|
5541
5552
|
}
|
|
5542
5553
|
}
|
|
5543
5554
|
),
|
|
5544
|
-
/* @__PURE__ */
|
|
5555
|
+
/* @__PURE__ */ jsx92(SliderPrimitive3.Thumb, { className: "block size-4 rounded-full border-2 border-white bg-background shadow focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring" })
|
|
5545
5556
|
]
|
|
5546
5557
|
}
|
|
5547
5558
|
),
|
|
@@ -5556,7 +5567,7 @@ var ColorPicker = React86.forwardRef(
|
|
|
5556
5567
|
"aria-label": "Alpha",
|
|
5557
5568
|
className: "relative flex h-4 w-full touch-none select-none items-center",
|
|
5558
5569
|
children: [
|
|
5559
|
-
/* @__PURE__ */
|
|
5570
|
+
/* @__PURE__ */ jsx92(
|
|
5560
5571
|
SliderPrimitive3.Track,
|
|
5561
5572
|
{
|
|
5562
5573
|
className: "relative h-3 w-full grow overflow-hidden rounded-full",
|
|
@@ -5564,7 +5575,7 @@ var ColorPicker = React86.forwardRef(
|
|
|
5564
5575
|
backgroundImage: "conic-gradient(#0000001a 90deg, transparent 90deg 180deg, #0000001a 180deg 270deg, transparent 270deg)",
|
|
5565
5576
|
backgroundSize: "8px 8px"
|
|
5566
5577
|
},
|
|
5567
|
-
children: /* @__PURE__ */
|
|
5578
|
+
children: /* @__PURE__ */ jsx92(
|
|
5568
5579
|
"div",
|
|
5569
5580
|
{
|
|
5570
5581
|
className: "absolute inset-0",
|
|
@@ -5573,12 +5584,12 @@ var ColorPicker = React86.forwardRef(
|
|
|
5573
5584
|
)
|
|
5574
5585
|
}
|
|
5575
5586
|
),
|
|
5576
|
-
/* @__PURE__ */
|
|
5587
|
+
/* @__PURE__ */ jsx92(SliderPrimitive3.Thumb, { className: "block size-4 rounded-full border-2 border-white bg-background shadow focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring" })
|
|
5577
5588
|
]
|
|
5578
5589
|
}
|
|
5579
5590
|
),
|
|
5580
5591
|
/* @__PURE__ */ jsxs56("div", { className: "flex items-center gap-2", children: [
|
|
5581
|
-
/* @__PURE__ */
|
|
5592
|
+
/* @__PURE__ */ jsx92(
|
|
5582
5593
|
"div",
|
|
5583
5594
|
{
|
|
5584
5595
|
className: "size-8 shrink-0 rounded-md border",
|
|
@@ -5586,14 +5597,14 @@ var ColorPicker = React86.forwardRef(
|
|
|
5586
5597
|
backgroundImage: "conic-gradient(#0000001a 90deg, transparent 90deg 180deg, #0000001a 180deg 270deg, transparent 270deg), linear-gradient(hsl(0 0% 0% / 0), hsl(0 0% 0% / 0))",
|
|
5587
5598
|
backgroundSize: "8px 8px"
|
|
5588
5599
|
},
|
|
5589
|
-
children: /* @__PURE__ */
|
|
5600
|
+
children: /* @__PURE__ */ jsx92("div", { className: "size-full rounded-md", style: { backgroundColor: value } })
|
|
5590
5601
|
}
|
|
5591
5602
|
),
|
|
5592
5603
|
/* @__PURE__ */ jsxs56("div", { className: "flex flex-1 items-center gap-1", children: [
|
|
5593
|
-
/* @__PURE__ */
|
|
5594
|
-
/* @__PURE__ */
|
|
5604
|
+
/* @__PURE__ */ jsx92("span", { className: "text-muted-foreground", children: "#" }),
|
|
5605
|
+
/* @__PURE__ */ jsx92(HexField, { value, alpha, onCommit: onChange })
|
|
5595
5606
|
] }),
|
|
5596
|
-
supportsEyeDropper && /* @__PURE__ */
|
|
5607
|
+
supportsEyeDropper && /* @__PURE__ */ jsx92(
|
|
5597
5608
|
Button,
|
|
5598
5609
|
{
|
|
5599
5610
|
type: "button",
|
|
@@ -5601,11 +5612,11 @@ var ColorPicker = React86.forwardRef(
|
|
|
5601
5612
|
size: "icon",
|
|
5602
5613
|
"aria-label": "Pick color from screen",
|
|
5603
5614
|
onClick: pickFromScreen,
|
|
5604
|
-
children: /* @__PURE__ */
|
|
5615
|
+
children: /* @__PURE__ */ jsx92(Pipette, { className: "size-4" })
|
|
5605
5616
|
}
|
|
5606
5617
|
)
|
|
5607
5618
|
] }),
|
|
5608
|
-
swatches && swatches.length > 0 && /* @__PURE__ */
|
|
5619
|
+
swatches && swatches.length > 0 && /* @__PURE__ */ jsx92("div", { className: "flex flex-wrap gap-1.5", children: swatches.map((sw) => /* @__PURE__ */ jsx92(
|
|
5609
5620
|
"button",
|
|
5610
5621
|
{
|
|
5611
5622
|
type: "button",
|
|
@@ -5638,7 +5649,7 @@ function HexField({
|
|
|
5638
5649
|
setDraft(value.replace("#", "").toUpperCase());
|
|
5639
5650
|
}
|
|
5640
5651
|
};
|
|
5641
|
-
return /* @__PURE__ */
|
|
5652
|
+
return /* @__PURE__ */ jsx92(
|
|
5642
5653
|
Input,
|
|
5643
5654
|
{
|
|
5644
5655
|
value: draft,
|
|
@@ -5678,11 +5689,12 @@ import {
|
|
|
5678
5689
|
verticalListSortingStrategy
|
|
5679
5690
|
} from "@dnd-kit/sortable";
|
|
5680
5691
|
import { CSS } from "@dnd-kit/utilities";
|
|
5681
|
-
import {
|
|
5692
|
+
import { tokens } from "@kinetixui/tokens";
|
|
5693
|
+
import { jsx as jsx93, jsxs as jsxs57 } from "react/jsx-runtime";
|
|
5682
5694
|
var KanbanBoard = React87.forwardRef(
|
|
5683
5695
|
({ columns, onColumnsChange, className, ...props }, ref) => {
|
|
5684
5696
|
const sensors = useSensors(
|
|
5685
|
-
useSensor(PointerSensor, { activationConstraint: { distance:
|
|
5697
|
+
useSensor(PointerSensor, { activationConstraint: { distance: tokens.interaction.drag.threshold } }),
|
|
5686
5698
|
useSensor(KeyboardSensor, { coordinateGetter: sortableKeyboardCoordinates })
|
|
5687
5699
|
);
|
|
5688
5700
|
const [activeCard, setActiveCard] = React87.useState(null);
|
|
@@ -5782,8 +5794,8 @@ var KanbanBoard = React87.forwardRef(
|
|
|
5782
5794
|
lastOverId.current = null;
|
|
5783
5795
|
},
|
|
5784
5796
|
children: [
|
|
5785
|
-
/* @__PURE__ */
|
|
5786
|
-
/* @__PURE__ */
|
|
5797
|
+
/* @__PURE__ */ jsx93("div", { ref, role: "group", className: cn("flex items-start gap-4 overflow-x-auto font-sans", className), ...props, children: columns.map((column) => /* @__PURE__ */ jsx93(KanbanColumnView, { column }, column.id)) }),
|
|
5798
|
+
/* @__PURE__ */ jsx93(DragOverlay, { children: activeCard ? /* @__PURE__ */ jsx93(KanbanCardView, { card: activeCard }) : null })
|
|
5787
5799
|
]
|
|
5788
5800
|
}
|
|
5789
5801
|
);
|
|
@@ -5794,10 +5806,10 @@ function KanbanColumnView({ column }) {
|
|
|
5794
5806
|
const { setNodeRef } = useDroppable({ id: column.id });
|
|
5795
5807
|
return /* @__PURE__ */ jsxs57("div", { className: "flex w-64 shrink-0 flex-col gap-2 rounded-md border bg-muted/30 p-2", children: [
|
|
5796
5808
|
/* @__PURE__ */ jsxs57("div", { className: "flex items-center justify-between px-1 py-1", children: [
|
|
5797
|
-
/* @__PURE__ */
|
|
5798
|
-
/* @__PURE__ */
|
|
5809
|
+
/* @__PURE__ */ jsx93("span", { className: "text-sm font-medium text-foreground", children: column.title }),
|
|
5810
|
+
/* @__PURE__ */ jsx93("span", { className: "text-xs text-muted-foreground", children: column.cards.length })
|
|
5799
5811
|
] }),
|
|
5800
|
-
/* @__PURE__ */
|
|
5812
|
+
/* @__PURE__ */ jsx93(SortableContext, { items: column.cards.map((c) => c.id), strategy: verticalListSortingStrategy, children: /* @__PURE__ */ jsx93("div", { ref: setNodeRef, className: "flex min-h-10 flex-col gap-2", children: column.cards.map((card) => /* @__PURE__ */ jsx93(SortableKanbanCard, { card }, card.id)) }) })
|
|
5801
5813
|
] });
|
|
5802
5814
|
}
|
|
5803
5815
|
function SortableKanbanCard({ card }) {
|
|
@@ -5807,16 +5819,16 @@ function SortableKanbanCard({ card }) {
|
|
|
5807
5819
|
transition,
|
|
5808
5820
|
opacity: isDragging ? 0.4 : 1
|
|
5809
5821
|
};
|
|
5810
|
-
return /* @__PURE__ */
|
|
5822
|
+
return /* @__PURE__ */ jsx93("div", { ref: setNodeRef, style, ...attributes, ...listeners, children: /* @__PURE__ */ jsx93(KanbanCardView, { card }) });
|
|
5811
5823
|
}
|
|
5812
5824
|
function KanbanCardView({ card }) {
|
|
5813
|
-
return /* @__PURE__ */
|
|
5825
|
+
return /* @__PURE__ */ jsx93("div", { className: "cursor-grab touch-none rounded-md border bg-background p-3 text-sm text-foreground shadow-sm outline-none active:cursor-grabbing focus-visible:ring-1 focus-visible:ring-ring", children: card.content });
|
|
5814
5826
|
}
|
|
5815
5827
|
|
|
5816
5828
|
// src/components/markdown-editor.tsx
|
|
5817
5829
|
import * as React88 from "react";
|
|
5818
5830
|
import { Bold, Code, Eye as Eye2, EyeOff as EyeOff2, Heading2, Italic, Link as LinkIcon, List as List4, ListOrdered, Quote as Quote2 } from "lucide-react";
|
|
5819
|
-
import { jsx as
|
|
5831
|
+
import { jsx as jsx94, jsxs as jsxs58 } from "react/jsx-runtime";
|
|
5820
5832
|
function wrapSelection(text, start, end, before, after, placeholder) {
|
|
5821
5833
|
const selected = text.slice(start, end) || placeholder;
|
|
5822
5834
|
const next = text.slice(0, start) + before + selected + after + text.slice(end);
|
|
@@ -5950,27 +5962,27 @@ var MarkdownEditor = React88.forwardRef(
|
|
|
5950
5962
|
};
|
|
5951
5963
|
return /* @__PURE__ */ jsxs58("div", { ref, className: cn("overflow-hidden rounded-md border font-sans", className), ...props, children: [
|
|
5952
5964
|
/* @__PURE__ */ jsxs58("div", { role: "toolbar", "aria-label": "Formatting", className: "flex items-center gap-0.5 border-b bg-muted/40 p-1", children: [
|
|
5953
|
-
/* @__PURE__ */
|
|
5954
|
-
/* @__PURE__ */
|
|
5955
|
-
/* @__PURE__ */
|
|
5956
|
-
/* @__PURE__ */
|
|
5957
|
-
/* @__PURE__ */
|
|
5958
|
-
/* @__PURE__ */
|
|
5959
|
-
/* @__PURE__ */
|
|
5960
|
-
/* @__PURE__ */
|
|
5961
|
-
/* @__PURE__ */
|
|
5965
|
+
/* @__PURE__ */ jsx94(ToolbarButton, { label: "Bold", onClick: () => applyInline("**", "**", "bold text"), children: /* @__PURE__ */ jsx94(Bold, { className: "size-4" }) }),
|
|
5966
|
+
/* @__PURE__ */ jsx94(ToolbarButton, { label: "Italic", onClick: () => applyInline("*", "*", "italic text"), children: /* @__PURE__ */ jsx94(Italic, { className: "size-4" }) }),
|
|
5967
|
+
/* @__PURE__ */ jsx94(ToolbarButton, { label: "Heading", onClick: () => applyLinePrefix(() => "## "), children: /* @__PURE__ */ jsx94(Heading2, { className: "size-4" }) }),
|
|
5968
|
+
/* @__PURE__ */ jsx94(ToolbarButton, { label: "Link", onClick: () => applyInline("[", "](https://)", "link text"), children: /* @__PURE__ */ jsx94(LinkIcon, { className: "size-4" }) }),
|
|
5969
|
+
/* @__PURE__ */ jsx94(ToolbarButton, { label: "Bulleted list", onClick: () => applyLinePrefix(() => "- "), children: /* @__PURE__ */ jsx94(List4, { className: "size-4" }) }),
|
|
5970
|
+
/* @__PURE__ */ jsx94(ToolbarButton, { label: "Numbered list", onClick: () => applyLinePrefix((i) => `${i + 1}. `), children: /* @__PURE__ */ jsx94(ListOrdered, { className: "size-4" }) }),
|
|
5971
|
+
/* @__PURE__ */ jsx94(ToolbarButton, { label: "Code", onClick: () => applyInline("`", "`", "code"), children: /* @__PURE__ */ jsx94(Code, { className: "size-4" }) }),
|
|
5972
|
+
/* @__PURE__ */ jsx94(ToolbarButton, { label: "Quote", onClick: () => applyLinePrefix(() => "> "), children: /* @__PURE__ */ jsx94(Quote2, { className: "size-4" }) }),
|
|
5973
|
+
/* @__PURE__ */ jsx94(
|
|
5962
5974
|
ToolbarButton,
|
|
5963
5975
|
{
|
|
5964
5976
|
label: showPreview ? "Hide preview" : "Show preview",
|
|
5965
5977
|
onClick: () => setShowPreview((v) => !v),
|
|
5966
5978
|
active: showPreview,
|
|
5967
5979
|
className: "ml-auto",
|
|
5968
|
-
children: showPreview ? /* @__PURE__ */
|
|
5980
|
+
children: showPreview ? /* @__PURE__ */ jsx94(EyeOff2, { className: "size-4" }) : /* @__PURE__ */ jsx94(Eye2, { className: "size-4" })
|
|
5969
5981
|
}
|
|
5970
5982
|
)
|
|
5971
5983
|
] }),
|
|
5972
5984
|
/* @__PURE__ */ jsxs58("div", { className: cn("grid", showPreview && "grid-cols-2 divide-x"), children: [
|
|
5973
|
-
/* @__PURE__ */
|
|
5985
|
+
/* @__PURE__ */ jsx94(
|
|
5974
5986
|
Textarea,
|
|
5975
5987
|
{
|
|
5976
5988
|
ref: textareaRef,
|
|
@@ -5981,7 +5993,7 @@ var MarkdownEditor = React88.forwardRef(
|
|
|
5981
5993
|
className: "resize-none rounded-none border-0 font-mono text-[13px] focus-visible:border-transparent focus-visible:shadow-none"
|
|
5982
5994
|
}
|
|
5983
5995
|
),
|
|
5984
|
-
showPreview && /* @__PURE__ */
|
|
5996
|
+
showPreview && /* @__PURE__ */ jsx94(
|
|
5985
5997
|
"div",
|
|
5986
5998
|
{
|
|
5987
5999
|
className: "overflow-auto p-3 text-sm [&_a]:text-primary [&_a]:underline [&_blockquote]:border-l-2 [&_blockquote]:border-border [&_blockquote]:pl-3 [&_blockquote]:text-muted-foreground [&_code]:rounded-sm [&_code]:bg-muted [&_code]:px-1 [&_code]:py-0.5 [&_code]:font-mono [&_code]:text-[0.9em] [&_h1]:text-xl [&_h1]:font-semibold [&_h2]:text-lg [&_h2]:font-semibold [&_h3]:font-semibold [&_li]:ml-5 [&_ol]:list-decimal [&_p]:mb-2 [&_pre]:overflow-auto [&_pre]:rounded-sm [&_pre]:bg-muted [&_pre]:p-2 [&_ul]:list-disc",
|
|
@@ -6000,7 +6012,7 @@ function ToolbarButton({
|
|
|
6000
6012
|
className,
|
|
6001
6013
|
children
|
|
6002
6014
|
}) {
|
|
6003
|
-
return /* @__PURE__ */
|
|
6015
|
+
return /* @__PURE__ */ jsx94(
|
|
6004
6016
|
"button",
|
|
6005
6017
|
{
|
|
6006
6018
|
type: "button",
|
|
@@ -6194,6 +6206,7 @@ export {
|
|
|
6194
6206
|
KanbanBoard,
|
|
6195
6207
|
Kbd,
|
|
6196
6208
|
KbdGroup,
|
|
6209
|
+
KinetixDirectionProvider,
|
|
6197
6210
|
Label2 as Label,
|
|
6198
6211
|
List3 as List,
|
|
6199
6212
|
ListItem,
|