@trading-game/design-intelligence-layer 0.15.3 → 0.16.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/README.md +41 -3
- package/dist/index.cjs +403 -228
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +37 -5
- package/dist/index.d.ts +37 -5
- package/dist/index.js +501 -318
- package/dist/index.js.map +1 -1
- package/guides/design-system-guide/trading-game-ds-guide.md +2 -1
- package/package.json +1 -1
- package/src/styles.css +7 -2
package/dist/index.cjs
CHANGED
|
@@ -65,7 +65,6 @@ __export(index_exports, {
|
|
|
65
65
|
AccordionItem: () => AccordionItem,
|
|
66
66
|
AccordionTrigger: () => AccordionTrigger,
|
|
67
67
|
Alert: () => Alert,
|
|
68
|
-
AlertDescription: () => AlertDescription,
|
|
69
68
|
AlertDialog: () => AlertDialog,
|
|
70
69
|
AlertDialogAction: () => AlertDialogAction,
|
|
71
70
|
AlertDialogCancel: () => AlertDialogCancel,
|
|
@@ -78,7 +77,6 @@ __export(index_exports, {
|
|
|
78
77
|
AlertDialogPortal: () => AlertDialogPortal,
|
|
79
78
|
AlertDialogTitle: () => AlertDialogTitle,
|
|
80
79
|
AlertDialogTrigger: () => AlertDialogTrigger,
|
|
81
|
-
AlertTitle: () => AlertTitle,
|
|
82
80
|
AspectRatio: () => AspectRatio,
|
|
83
81
|
AuthBlock: () => AuthBlock,
|
|
84
82
|
Avatar: () => Avatar,
|
|
@@ -374,6 +372,7 @@ __export(index_exports, {
|
|
|
374
372
|
TooltipContent: () => TooltipContent,
|
|
375
373
|
TooltipProvider: () => TooltipProvider,
|
|
376
374
|
TooltipTrigger: () => TooltipTrigger,
|
|
375
|
+
alertVariants: () => alertVariants,
|
|
377
376
|
badgeVariants: () => badgeVariants,
|
|
378
377
|
buttonVariants: () => buttonVariants,
|
|
379
378
|
cn: () => cn,
|
|
@@ -467,83 +466,20 @@ function AccordionContent(_a) {
|
|
|
467
466
|
}
|
|
468
467
|
|
|
469
468
|
// components/ui/alert.tsx
|
|
470
|
-
var
|
|
471
|
-
var
|
|
472
|
-
var
|
|
473
|
-
"relative grid w-full grid-cols-[0_1fr] items-start gap-y-0.5 rounded-sm border px-4 py-3 text-sm has-[>svg]:grid-cols-[calc(var(--spacing)*4)_1fr] has-[>svg]:gap-x-3 [&>svg]:size-4 [&>svg]:translate-y-0.5 [&>svg]:text-current",
|
|
474
|
-
{
|
|
475
|
-
variants: {
|
|
476
|
-
variant: {
|
|
477
|
-
info: "bg-transparent text-alert-info-text border-alert-info-border *:data-[slot=alert-description]:text-on-subtle [&>svg]:text-current",
|
|
478
|
-
error: "bg-transparent text-alert-error-text border-alert-error-border *:data-[slot=alert-description]:text-on-subtle [&>svg]:text-current"
|
|
479
|
-
}
|
|
480
|
-
},
|
|
481
|
-
defaultVariants: {
|
|
482
|
-
variant: "info"
|
|
483
|
-
}
|
|
484
|
-
}
|
|
485
|
-
);
|
|
486
|
-
function Alert(_a) {
|
|
487
|
-
var _b = _a, {
|
|
488
|
-
className,
|
|
489
|
-
variant
|
|
490
|
-
} = _b, props = __objRest(_b, [
|
|
491
|
-
"className",
|
|
492
|
-
"variant"
|
|
493
|
-
]);
|
|
494
|
-
return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
|
|
495
|
-
"div",
|
|
496
|
-
__spreadValues({
|
|
497
|
-
"data-slot": "alert",
|
|
498
|
-
role: "alert",
|
|
499
|
-
className: cn(alertVariants({ variant }), className)
|
|
500
|
-
}, props)
|
|
501
|
-
);
|
|
502
|
-
}
|
|
503
|
-
function AlertTitle(_a) {
|
|
504
|
-
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
505
|
-
return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
|
|
506
|
-
"div",
|
|
507
|
-
__spreadValues({
|
|
508
|
-
"data-slot": "alert-title",
|
|
509
|
-
className: cn(
|
|
510
|
-
"col-start-2 line-clamp-1 min-h-4 font-medium tracking-tight",
|
|
511
|
-
className
|
|
512
|
-
)
|
|
513
|
-
}, props)
|
|
514
|
-
);
|
|
515
|
-
}
|
|
516
|
-
function AlertDescription(_a) {
|
|
517
|
-
var _b = _a, {
|
|
518
|
-
className
|
|
519
|
-
} = _b, props = __objRest(_b, [
|
|
520
|
-
"className"
|
|
521
|
-
]);
|
|
522
|
-
return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
|
|
523
|
-
"div",
|
|
524
|
-
__spreadValues({
|
|
525
|
-
"data-slot": "alert-description",
|
|
526
|
-
className: cn(
|
|
527
|
-
"col-start-2 grid justify-items-start gap-1 text-sm [&_p]:leading-relaxed",
|
|
528
|
-
className
|
|
529
|
-
)
|
|
530
|
-
}, props)
|
|
531
|
-
);
|
|
532
|
-
}
|
|
533
|
-
|
|
534
|
-
// components/ui/alert-dialog.tsx
|
|
535
|
-
var import_radix_ui3 = require("radix-ui");
|
|
469
|
+
var React = __toESM(require("react"), 1);
|
|
470
|
+
var import_class_variance_authority2 = require("class-variance-authority");
|
|
471
|
+
var import_lucide_react2 = require("lucide-react");
|
|
536
472
|
|
|
537
473
|
// components/ui/button.tsx
|
|
538
|
-
var
|
|
474
|
+
var import_class_variance_authority = require("class-variance-authority");
|
|
539
475
|
var import_radix_ui2 = require("radix-ui");
|
|
540
476
|
|
|
541
477
|
// components/ui/spinner.tsx
|
|
542
|
-
var
|
|
478
|
+
var import_jsx_runtime2 = require("react/jsx-runtime");
|
|
543
479
|
var PILL_COUNT = 8;
|
|
544
480
|
function Spinner(_a) {
|
|
545
481
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
546
|
-
return /* @__PURE__ */ (0,
|
|
482
|
+
return /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(
|
|
547
483
|
"div",
|
|
548
484
|
__spreadProps(__spreadValues({
|
|
549
485
|
role: "status",
|
|
@@ -551,13 +487,13 @@ function Spinner(_a) {
|
|
|
551
487
|
className: cn("relative inline-block size-4 text-current", className)
|
|
552
488
|
}, props), {
|
|
553
489
|
children: [
|
|
554
|
-
/* @__PURE__ */ (0,
|
|
490
|
+
/* @__PURE__ */ (0, import_jsx_runtime2.jsx)("style", { children: `
|
|
555
491
|
@keyframes spinner-fade {
|
|
556
492
|
0% { opacity: 1; }
|
|
557
493
|
100% { opacity: 0.15; }
|
|
558
494
|
}
|
|
559
495
|
` }),
|
|
560
|
-
Array.from({ length: PILL_COUNT }, (_, i) => /* @__PURE__ */ (0,
|
|
496
|
+
Array.from({ length: PILL_COUNT }, (_, i) => /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
|
|
561
497
|
"span",
|
|
562
498
|
{
|
|
563
499
|
style: {
|
|
@@ -581,8 +517,8 @@ function Spinner(_a) {
|
|
|
581
517
|
}
|
|
582
518
|
|
|
583
519
|
// components/ui/button.tsx
|
|
584
|
-
var
|
|
585
|
-
var buttonVariants = (0,
|
|
520
|
+
var import_jsx_runtime3 = require("react/jsx-runtime");
|
|
521
|
+
var buttonVariants = (0, import_class_variance_authority.cva)(
|
|
586
522
|
"inline-flex shrink-0 items-center justify-center whitespace-nowrap transition-all outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 active:opacity-60 disabled:pointer-events-none disabled:opacity-24 aria-invalid:border-destructive aria-invalid:ring-destructive/20 [&_svg]:pointer-events-none [&_svg]:shrink-0 font-display font-bold",
|
|
587
523
|
{
|
|
588
524
|
variants: {
|
|
@@ -642,7 +578,7 @@ function Button(_a) {
|
|
|
642
578
|
"children"
|
|
643
579
|
]);
|
|
644
580
|
const Comp = asChild ? import_radix_ui2.Slot.Root : "button";
|
|
645
|
-
return /* @__PURE__ */ (0,
|
|
581
|
+
return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
|
|
646
582
|
Comp,
|
|
647
583
|
__spreadProps(__spreadValues({
|
|
648
584
|
"data-slot": "button",
|
|
@@ -655,15 +591,255 @@ function Button(_a) {
|
|
|
655
591
|
),
|
|
656
592
|
"aria-busy": loading || void 0
|
|
657
593
|
}, props), {
|
|
658
|
-
children: loading ? /* @__PURE__ */ (0,
|
|
659
|
-
/* @__PURE__ */ (0,
|
|
660
|
-
/* @__PURE__ */ (0,
|
|
594
|
+
children: loading ? /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)(import_jsx_runtime3.Fragment, { children: [
|
|
595
|
+
/* @__PURE__ */ (0, import_jsx_runtime3.jsx)("span", { className: "invisible inline-flex items-center gap-[inherit]", "aria-hidden": true, children }),
|
|
596
|
+
/* @__PURE__ */ (0, import_jsx_runtime3.jsx)("span", { className: "absolute inset-0 flex items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(Spinner, { className: spinnerSizeMap[size != null ? size : "lg"] }) })
|
|
661
597
|
] }) : children
|
|
662
598
|
})
|
|
663
599
|
);
|
|
664
600
|
}
|
|
665
601
|
|
|
602
|
+
// components/ui/alert.tsx
|
|
603
|
+
var import_jsx_runtime4 = require("react/jsx-runtime");
|
|
604
|
+
var alertVariants = (0, import_class_variance_authority2.cva)(
|
|
605
|
+
"grid w-full rounded-sm",
|
|
606
|
+
{
|
|
607
|
+
variants: {
|
|
608
|
+
variant: {
|
|
609
|
+
default: "bg-prominent border border-border-subtle",
|
|
610
|
+
brand: "bg-primary",
|
|
611
|
+
info: "bg-semantic-info/10",
|
|
612
|
+
warning: "bg-semantic-warning/10",
|
|
613
|
+
danger: "bg-semantic-error/10",
|
|
614
|
+
success: "bg-semantic-win/10"
|
|
615
|
+
},
|
|
616
|
+
layout: {
|
|
617
|
+
// Inline is mobile-first: 3 columns × 2 rows so a long title can wrap and the
|
|
618
|
+
// action button drops below the body. At sm+ (640px) it collapses to a single
|
|
619
|
+
// row of 4 columns (icon · body · action · close).
|
|
620
|
+
inline: "grid-cols-[auto_1fr_auto] grid-rows-[auto_auto] items-start gap-x-3 gap-y-3 px-4 py-4 sm:grid-cols-[auto_1fr_auto_auto] sm:grid-rows-1",
|
|
621
|
+
card: "grid-cols-[auto_1fr_auto] grid-rows-[auto_auto] items-start gap-x-3 gap-y-2 px-4 py-4"
|
|
622
|
+
}
|
|
623
|
+
},
|
|
624
|
+
defaultVariants: {
|
|
625
|
+
variant: "info",
|
|
626
|
+
layout: "inline"
|
|
627
|
+
}
|
|
628
|
+
}
|
|
629
|
+
);
|
|
630
|
+
var SINGLE_LINE_CLASSES = "items-center min-h-12 py-2 gap-y-0";
|
|
631
|
+
var TITLE_CLASSES = {
|
|
632
|
+
default: "text-on-prominent",
|
|
633
|
+
brand: "text-on-primary",
|
|
634
|
+
info: "text-on-prominent",
|
|
635
|
+
warning: "text-on-prominent",
|
|
636
|
+
danger: "text-on-prominent",
|
|
637
|
+
success: "text-on-prominent"
|
|
638
|
+
};
|
|
639
|
+
var ICON_CLASSES = {
|
|
640
|
+
default: "text-on-prominent",
|
|
641
|
+
brand: "text-on-primary",
|
|
642
|
+
info: "text-semantic-info",
|
|
643
|
+
warning: "text-semantic-warning",
|
|
644
|
+
danger: "text-semantic-error",
|
|
645
|
+
success: "text-semantic-win"
|
|
646
|
+
};
|
|
647
|
+
var DESC_CLASSES = {
|
|
648
|
+
default: "text-on-subtle",
|
|
649
|
+
brand: "text-on-primary opacity-80",
|
|
650
|
+
info: "text-on-subtle",
|
|
651
|
+
warning: "text-on-subtle",
|
|
652
|
+
danger: "text-on-subtle",
|
|
653
|
+
success: "text-on-subtle"
|
|
654
|
+
};
|
|
655
|
+
var CLOSE_CLASSES = {
|
|
656
|
+
default: "text-on-subtle opacity-70",
|
|
657
|
+
brand: "text-on-primary opacity-70",
|
|
658
|
+
info: "text-on-subtle opacity-70",
|
|
659
|
+
warning: "text-on-subtle opacity-70",
|
|
660
|
+
danger: "text-on-subtle opacity-70",
|
|
661
|
+
success: "text-on-subtle opacity-70"
|
|
662
|
+
};
|
|
663
|
+
function defaultIconForVariant(variant) {
|
|
664
|
+
switch (variant) {
|
|
665
|
+
case "default":
|
|
666
|
+
return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_lucide_react2.Info, {});
|
|
667
|
+
case "brand":
|
|
668
|
+
return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_lucide_react2.Sparkles, {});
|
|
669
|
+
case "info":
|
|
670
|
+
return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_lucide_react2.Info, {});
|
|
671
|
+
case "warning":
|
|
672
|
+
return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_lucide_react2.AlertTriangle, {});
|
|
673
|
+
case "danger":
|
|
674
|
+
return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_lucide_react2.XCircle, {});
|
|
675
|
+
case "success":
|
|
676
|
+
return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_lucide_react2.CheckCircle2, {});
|
|
677
|
+
}
|
|
678
|
+
}
|
|
679
|
+
function actionButtonVariantFor(variant) {
|
|
680
|
+
return variant === "brand" ? "primary-inverse" : "secondary";
|
|
681
|
+
}
|
|
682
|
+
function Alert(_a) {
|
|
683
|
+
var _b = _a, {
|
|
684
|
+
variant = "info",
|
|
685
|
+
layout = "inline",
|
|
686
|
+
title,
|
|
687
|
+
description,
|
|
688
|
+
icon,
|
|
689
|
+
action,
|
|
690
|
+
actions,
|
|
691
|
+
onDismiss,
|
|
692
|
+
dismissLabel = "Dismiss",
|
|
693
|
+
className
|
|
694
|
+
} = _b, props = __objRest(_b, [
|
|
695
|
+
"variant",
|
|
696
|
+
"layout",
|
|
697
|
+
"title",
|
|
698
|
+
"description",
|
|
699
|
+
"icon",
|
|
700
|
+
"action",
|
|
701
|
+
"actions",
|
|
702
|
+
"onDismiss",
|
|
703
|
+
"dismissLabel",
|
|
704
|
+
"className"
|
|
705
|
+
]);
|
|
706
|
+
if (!title && !description) {
|
|
707
|
+
if (process.env.NODE_ENV !== "production") {
|
|
708
|
+
console.warn(
|
|
709
|
+
"Alert: requires at least one of `title` or `description`. Rendering null."
|
|
710
|
+
);
|
|
711
|
+
}
|
|
712
|
+
return null;
|
|
713
|
+
}
|
|
714
|
+
const isInline = layout === "inline";
|
|
715
|
+
const isSingleLine = isInline && !(title && description);
|
|
716
|
+
const showIcon = icon !== null;
|
|
717
|
+
const resolvedIcon = icon === void 0 ? defaultIconForVariant(variant) : icon;
|
|
718
|
+
const showCloseButton = typeof onDismiss === "function";
|
|
719
|
+
const buttonVariant = actionButtonVariantFor(variant);
|
|
720
|
+
const isAssertive = variant === "danger" || variant === "warning";
|
|
721
|
+
const role = isAssertive ? "alert" : "status";
|
|
722
|
+
const ariaLive = isAssertive ? "assertive" : "polite";
|
|
723
|
+
if (process.env.NODE_ENV !== "production") {
|
|
724
|
+
if (isInline && actions && actions.length > 0) {
|
|
725
|
+
console.warn(
|
|
726
|
+
'Alert: `actions` is ignored when layout="inline". Use `action` instead.'
|
|
727
|
+
);
|
|
728
|
+
}
|
|
729
|
+
if (!isInline && action) {
|
|
730
|
+
console.warn(
|
|
731
|
+
'Alert: `action` is ignored when layout="card". Use `actions` instead.'
|
|
732
|
+
);
|
|
733
|
+
}
|
|
734
|
+
}
|
|
735
|
+
const body = /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("div", { className: "min-w-0", children: [
|
|
736
|
+
title ? /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
|
|
737
|
+
"p",
|
|
738
|
+
{
|
|
739
|
+
className: cn(
|
|
740
|
+
// Mobile-first: 13/11px scale so narrow viewports breathe. sm+ bumps to
|
|
741
|
+
// 14/12px which lines up with the rest of the design system's body sizes.
|
|
742
|
+
"text-[13px] font-semibold leading-snug sm:text-sm",
|
|
743
|
+
TITLE_CLASSES[variant],
|
|
744
|
+
description ? "mb-2" : "mb-0"
|
|
745
|
+
),
|
|
746
|
+
children: title
|
|
747
|
+
}
|
|
748
|
+
) : null,
|
|
749
|
+
description ? /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
|
|
750
|
+
"p",
|
|
751
|
+
{
|
|
752
|
+
className: cn(
|
|
753
|
+
"text-[11px] leading-snug m-0 sm:text-xs",
|
|
754
|
+
DESC_CLASSES[variant]
|
|
755
|
+
),
|
|
756
|
+
children: description
|
|
757
|
+
}
|
|
758
|
+
) : null
|
|
759
|
+
] });
|
|
760
|
+
const closeButton = showCloseButton ? /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
|
|
761
|
+
"button",
|
|
762
|
+
{
|
|
763
|
+
type: "button",
|
|
764
|
+
onClick: onDismiss,
|
|
765
|
+
"aria-label": dismissLabel,
|
|
766
|
+
className: cn(
|
|
767
|
+
"inline-flex shrink-0 items-center justify-center rounded-xs size-6 cursor-pointer outline-none transition-opacity hover:opacity-100 focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 [&_svg]:size-4 [&_svg]:pointer-events-none",
|
|
768
|
+
// tuck the close into the top-right corner for the multi-line cases
|
|
769
|
+
isSingleLine ? "" : "-mt-1 -mr-1",
|
|
770
|
+
CLOSE_CLASSES[variant]
|
|
771
|
+
),
|
|
772
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_lucide_react2.X, {})
|
|
773
|
+
}
|
|
774
|
+
) : null;
|
|
775
|
+
const iconColumn = showIcon ? /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
|
|
776
|
+
"div",
|
|
777
|
+
{
|
|
778
|
+
"aria-hidden": true,
|
|
779
|
+
className: cn(
|
|
780
|
+
"inline-flex shrink-0 size-4 [&_svg]:size-full",
|
|
781
|
+
// 2px nudge (mt-0.5) aligns the 16px icon with the title cap-height
|
|
782
|
+
// in multi-line / card layouts. This is the one exception to the
|
|
783
|
+
// 8-point grid — required for optical typography alignment.
|
|
784
|
+
isSingleLine ? "" : "mt-0.5",
|
|
785
|
+
ICON_CLASSES[variant]
|
|
786
|
+
),
|
|
787
|
+
children: resolvedIcon
|
|
788
|
+
}
|
|
789
|
+
) : null;
|
|
790
|
+
if (isInline) {
|
|
791
|
+
return /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(
|
|
792
|
+
"div",
|
|
793
|
+
__spreadProps(__spreadValues({
|
|
794
|
+
role,
|
|
795
|
+
"aria-live": ariaLive,
|
|
796
|
+
"data-slot": "alert",
|
|
797
|
+
"data-variant": variant,
|
|
798
|
+
"data-layout": "inline",
|
|
799
|
+
className: cn(
|
|
800
|
+
alertVariants({ variant, layout }),
|
|
801
|
+
isSingleLine ? SINGLE_LINE_CLASSES : "",
|
|
802
|
+
className
|
|
803
|
+
)
|
|
804
|
+
}, props), {
|
|
805
|
+
children: [
|
|
806
|
+
iconColumn,
|
|
807
|
+
/* @__PURE__ */ (0, import_jsx_runtime4.jsx)("div", { className: "col-start-2 row-start-1 min-w-0", children: body }),
|
|
808
|
+
/* @__PURE__ */ (0, import_jsx_runtime4.jsx)("div", { className: "col-start-3 row-start-1 sm:col-start-4 sm:row-start-1", children: closeButton }),
|
|
809
|
+
action ? /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("div", { className: "col-start-2 row-start-2 justify-self-start sm:col-start-3 sm:row-start-1 sm:self-center sm:justify-self-end", children: wrapAction(action, buttonVariant) }) : null
|
|
810
|
+
]
|
|
811
|
+
})
|
|
812
|
+
);
|
|
813
|
+
}
|
|
814
|
+
return /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(
|
|
815
|
+
"div",
|
|
816
|
+
__spreadProps(__spreadValues({
|
|
817
|
+
role,
|
|
818
|
+
"aria-live": ariaLive,
|
|
819
|
+
"data-slot": "alert",
|
|
820
|
+
"data-variant": variant,
|
|
821
|
+
"data-layout": "card",
|
|
822
|
+
className: cn(
|
|
823
|
+
alertVariants({ variant, layout }),
|
|
824
|
+
className
|
|
825
|
+
)
|
|
826
|
+
}, props), {
|
|
827
|
+
children: [
|
|
828
|
+
iconColumn,
|
|
829
|
+
/* @__PURE__ */ (0, import_jsx_runtime4.jsx)("div", { className: "col-span-2 col-start-2 row-start-1", children: body }),
|
|
830
|
+
/* @__PURE__ */ (0, import_jsx_runtime4.jsx)("div", { className: "col-start-3 row-start-1", children: closeButton }),
|
|
831
|
+
actions && actions.length > 0 ? /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("div", { className: "col-span-3 col-start-2 row-start-2 mt-2 flex flex-wrap items-center justify-start gap-2", children: actions.slice(0, 2).map((node, i) => /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(React.Fragment, { children: wrapAction(node, buttonVariant) }, i)) }) : null
|
|
832
|
+
]
|
|
833
|
+
})
|
|
834
|
+
);
|
|
835
|
+
}
|
|
836
|
+
function wrapAction(node, variant) {
|
|
837
|
+
if (React.isValidElement(node)) return node;
|
|
838
|
+
return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(Button, { variant, size: "sm", children: node });
|
|
839
|
+
}
|
|
840
|
+
|
|
666
841
|
// components/ui/alert-dialog.tsx
|
|
842
|
+
var import_radix_ui3 = require("radix-ui");
|
|
667
843
|
var import_jsx_runtime5 = require("react/jsx-runtime");
|
|
668
844
|
function AlertDialog(_a) {
|
|
669
845
|
var props = __objRest(_a, []);
|
|
@@ -1008,7 +1184,7 @@ function Badge(_a) {
|
|
|
1008
1184
|
}
|
|
1009
1185
|
|
|
1010
1186
|
// components/ui/breadcrumb.tsx
|
|
1011
|
-
var
|
|
1187
|
+
var import_lucide_react3 = require("lucide-react");
|
|
1012
1188
|
var import_radix_ui7 = require("radix-ui");
|
|
1013
1189
|
var import_jsx_runtime9 = require("react/jsx-runtime");
|
|
1014
1190
|
function Breadcrumb(_a) {
|
|
@@ -1084,7 +1260,7 @@ function BreadcrumbSeparator(_a) {
|
|
|
1084
1260
|
"aria-hidden": "true",
|
|
1085
1261
|
className: cn("[&>svg]:size-3.5", className)
|
|
1086
1262
|
}, props), {
|
|
1087
|
-
children: children != null ? children : /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
|
|
1263
|
+
children: children != null ? children : /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(import_lucide_react3.ChevronRight, {})
|
|
1088
1264
|
})
|
|
1089
1265
|
);
|
|
1090
1266
|
}
|
|
@@ -1103,7 +1279,7 @@ function BreadcrumbEllipsis(_a) {
|
|
|
1103
1279
|
className: cn("flex size-9 items-center justify-center", className)
|
|
1104
1280
|
}, props), {
|
|
1105
1281
|
children: [
|
|
1106
|
-
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
|
|
1282
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)(import_lucide_react3.MoreHorizontal, { className: "size-4" }),
|
|
1107
1283
|
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)("span", { className: "sr-only", children: "More" })
|
|
1108
1284
|
]
|
|
1109
1285
|
})
|
|
@@ -1111,8 +1287,8 @@ function BreadcrumbEllipsis(_a) {
|
|
|
1111
1287
|
}
|
|
1112
1288
|
|
|
1113
1289
|
// components/ui/calendar.tsx
|
|
1114
|
-
var
|
|
1115
|
-
var
|
|
1290
|
+
var React2 = __toESM(require("react"), 1);
|
|
1291
|
+
var import_lucide_react4 = require("lucide-react");
|
|
1116
1292
|
var import_react_day_picker = require("react-day-picker");
|
|
1117
1293
|
var import_jsx_runtime10 = require("react/jsx-runtime");
|
|
1118
1294
|
function Calendar(_a) {
|
|
@@ -1245,17 +1421,17 @@ function Calendar(_a) {
|
|
|
1245
1421
|
Chevron: (_c) => {
|
|
1246
1422
|
var _d = _c, { className: className2, orientation } = _d, props2 = __objRest(_d, ["className", "orientation"]);
|
|
1247
1423
|
if (orientation === "left") {
|
|
1248
|
-
return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
|
|
1424
|
+
return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_lucide_react4.ChevronLeftIcon, __spreadValues({ className: cn("size-4", className2) }, props2));
|
|
1249
1425
|
}
|
|
1250
1426
|
if (orientation === "right") {
|
|
1251
1427
|
return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
|
|
1252
|
-
|
|
1428
|
+
import_lucide_react4.ChevronRightIcon,
|
|
1253
1429
|
__spreadValues({
|
|
1254
1430
|
className: cn("size-4", className2)
|
|
1255
1431
|
}, props2)
|
|
1256
1432
|
);
|
|
1257
1433
|
}
|
|
1258
|
-
return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
|
|
1434
|
+
return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_lucide_react4.ChevronDownIcon, __spreadValues({ className: cn("size-4", className2) }, props2));
|
|
1259
1435
|
},
|
|
1260
1436
|
DayButton: CalendarDayButton,
|
|
1261
1437
|
WeekNumber: (_e) => {
|
|
@@ -1277,8 +1453,8 @@ function CalendarDayButton(_a) {
|
|
|
1277
1453
|
"modifiers"
|
|
1278
1454
|
]);
|
|
1279
1455
|
const defaultClassNames = (0, import_react_day_picker.getDefaultClassNames)();
|
|
1280
|
-
const ref =
|
|
1281
|
-
|
|
1456
|
+
const ref = React2.useRef(null);
|
|
1457
|
+
React2.useEffect(() => {
|
|
1282
1458
|
var _a2;
|
|
1283
1459
|
if (modifiers.focused) (_a2 = ref.current) == null ? void 0 : _a2.focus();
|
|
1284
1460
|
}, [modifiers.focused]);
|
|
@@ -1386,13 +1562,13 @@ function CardFooter(_a) {
|
|
|
1386
1562
|
}
|
|
1387
1563
|
|
|
1388
1564
|
// components/ui/carousel.tsx
|
|
1389
|
-
var
|
|
1565
|
+
var React3 = __toESM(require("react"), 1);
|
|
1390
1566
|
var import_embla_carousel_react = __toESM(require("embla-carousel-react"), 1);
|
|
1391
|
-
var
|
|
1567
|
+
var import_lucide_react5 = require("lucide-react");
|
|
1392
1568
|
var import_jsx_runtime12 = require("react/jsx-runtime");
|
|
1393
|
-
var CarouselContext =
|
|
1569
|
+
var CarouselContext = React3.createContext(null);
|
|
1394
1570
|
function useCarousel() {
|
|
1395
|
-
const context =
|
|
1571
|
+
const context = React3.useContext(CarouselContext);
|
|
1396
1572
|
if (!context) {
|
|
1397
1573
|
throw new Error("useCarousel must be used within a <Carousel />");
|
|
1398
1574
|
}
|
|
@@ -1420,20 +1596,20 @@ function Carousel(_a) {
|
|
|
1420
1596
|
}),
|
|
1421
1597
|
plugins
|
|
1422
1598
|
);
|
|
1423
|
-
const [canScrollPrev, setCanScrollPrev] =
|
|
1424
|
-
const [canScrollNext, setCanScrollNext] =
|
|
1425
|
-
const onSelect =
|
|
1599
|
+
const [canScrollPrev, setCanScrollPrev] = React3.useState(false);
|
|
1600
|
+
const [canScrollNext, setCanScrollNext] = React3.useState(false);
|
|
1601
|
+
const onSelect = React3.useCallback((api2) => {
|
|
1426
1602
|
if (!api2) return;
|
|
1427
1603
|
setCanScrollPrev(api2.canScrollPrev());
|
|
1428
1604
|
setCanScrollNext(api2.canScrollNext());
|
|
1429
1605
|
}, []);
|
|
1430
|
-
const scrollPrev =
|
|
1606
|
+
const scrollPrev = React3.useCallback(() => {
|
|
1431
1607
|
api == null ? void 0 : api.scrollPrev();
|
|
1432
1608
|
}, [api]);
|
|
1433
|
-
const scrollNext =
|
|
1609
|
+
const scrollNext = React3.useCallback(() => {
|
|
1434
1610
|
api == null ? void 0 : api.scrollNext();
|
|
1435
1611
|
}, [api]);
|
|
1436
|
-
const handleKeyDown =
|
|
1612
|
+
const handleKeyDown = React3.useCallback(
|
|
1437
1613
|
(event) => {
|
|
1438
1614
|
if (event.key === "ArrowLeft") {
|
|
1439
1615
|
event.preventDefault();
|
|
@@ -1445,11 +1621,11 @@ function Carousel(_a) {
|
|
|
1445
1621
|
},
|
|
1446
1622
|
[scrollPrev, scrollNext]
|
|
1447
1623
|
);
|
|
1448
|
-
|
|
1624
|
+
React3.useEffect(() => {
|
|
1449
1625
|
if (!api || !setApi) return;
|
|
1450
1626
|
setApi(api);
|
|
1451
1627
|
}, [api, setApi]);
|
|
1452
|
-
|
|
1628
|
+
React3.useEffect(() => {
|
|
1453
1629
|
if (!api) return;
|
|
1454
1630
|
onSelect(api);
|
|
1455
1631
|
api.on("reInit", onSelect);
|
|
@@ -1551,7 +1727,7 @@ function CarouselPrevious(_a) {
|
|
|
1551
1727
|
onClick: scrollPrev
|
|
1552
1728
|
}, props), {
|
|
1553
1729
|
children: [
|
|
1554
|
-
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
|
|
1730
|
+
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_lucide_react5.ArrowLeft, {}),
|
|
1555
1731
|
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)("span", { className: "sr-only", children: "Previous slide" })
|
|
1556
1732
|
]
|
|
1557
1733
|
})
|
|
@@ -1583,7 +1759,7 @@ function CarouselNext(_a) {
|
|
|
1583
1759
|
onClick: scrollNext
|
|
1584
1760
|
}, props), {
|
|
1585
1761
|
children: [
|
|
1586
|
-
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
|
|
1762
|
+
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_lucide_react5.ArrowRight, {}),
|
|
1587
1763
|
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)("span", { className: "sr-only", children: "Next slide" })
|
|
1588
1764
|
]
|
|
1589
1765
|
})
|
|
@@ -1591,13 +1767,13 @@ function CarouselNext(_a) {
|
|
|
1591
1767
|
}
|
|
1592
1768
|
|
|
1593
1769
|
// components/ui/chart.tsx
|
|
1594
|
-
var
|
|
1770
|
+
var React4 = __toESM(require("react"), 1);
|
|
1595
1771
|
var RechartsPrimitive = __toESM(require("recharts"), 1);
|
|
1596
1772
|
var import_jsx_runtime13 = require("react/jsx-runtime");
|
|
1597
1773
|
var THEMES = { light: "" };
|
|
1598
|
-
var ChartContext =
|
|
1774
|
+
var ChartContext = React4.createContext(null);
|
|
1599
1775
|
function useChart() {
|
|
1600
|
-
const context =
|
|
1776
|
+
const context = React4.useContext(ChartContext);
|
|
1601
1777
|
if (!context) {
|
|
1602
1778
|
throw new Error("useChart must be used within a <ChartContainer />");
|
|
1603
1779
|
}
|
|
@@ -1615,7 +1791,7 @@ function ChartContainer(_a) {
|
|
|
1615
1791
|
"children",
|
|
1616
1792
|
"config"
|
|
1617
1793
|
]);
|
|
1618
|
-
const uniqueId =
|
|
1794
|
+
const uniqueId = React4.useId();
|
|
1619
1795
|
const chartId = `chart-${id || uniqueId.replace(/:/g, "")}`;
|
|
1620
1796
|
return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(ChartContext.Provider, { value: { config }, children: /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(
|
|
1621
1797
|
"div",
|
|
@@ -1677,7 +1853,7 @@ function ChartTooltipContent({
|
|
|
1677
1853
|
labelKey
|
|
1678
1854
|
}) {
|
|
1679
1855
|
const { config } = useChart();
|
|
1680
|
-
const tooltipLabel =
|
|
1856
|
+
const tooltipLabel = React4.useMemo(() => {
|
|
1681
1857
|
var _a;
|
|
1682
1858
|
if (hideLabel || !(payload == null ? void 0 : payload.length)) {
|
|
1683
1859
|
return null;
|
|
@@ -1833,7 +2009,7 @@ function getPayloadConfigFromPayload(config, payload, key) {
|
|
|
1833
2009
|
}
|
|
1834
2010
|
|
|
1835
2011
|
// components/ui/checkbox.tsx
|
|
1836
|
-
var
|
|
2012
|
+
var import_lucide_react6 = require("lucide-react");
|
|
1837
2013
|
var import_radix_ui8 = require("radix-ui");
|
|
1838
2014
|
var import_jsx_runtime14 = require("react/jsx-runtime");
|
|
1839
2015
|
function Checkbox(_a) {
|
|
@@ -1856,7 +2032,7 @@ function Checkbox(_a) {
|
|
|
1856
2032
|
{
|
|
1857
2033
|
"data-slot": "checkbox-indicator",
|
|
1858
2034
|
className: "grid place-content-center text-current transition-none",
|
|
1859
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
|
|
2035
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_lucide_react6.CheckIcon, { className: "size-3.5" })
|
|
1860
2036
|
}
|
|
1861
2037
|
)
|
|
1862
2038
|
})
|
|
@@ -1890,12 +2066,12 @@ function CollapsibleContent(_a) {
|
|
|
1890
2066
|
}
|
|
1891
2067
|
|
|
1892
2068
|
// components/ui/combobox.tsx
|
|
1893
|
-
var
|
|
2069
|
+
var React6 = __toESM(require("react"), 1);
|
|
1894
2070
|
var import_react = require("@base-ui/react");
|
|
1895
|
-
var
|
|
2071
|
+
var import_lucide_react7 = require("lucide-react");
|
|
1896
2072
|
|
|
1897
2073
|
// components/ui/input-group.tsx
|
|
1898
|
-
var
|
|
2074
|
+
var React5 = __toESM(require("react"), 1);
|
|
1899
2075
|
var import_class_variance_authority5 = require("class-variance-authority");
|
|
1900
2076
|
|
|
1901
2077
|
// components/ui/input.tsx
|
|
@@ -1963,7 +2139,7 @@ function Textarea(_a) {
|
|
|
1963
2139
|
|
|
1964
2140
|
// components/ui/input-group.tsx
|
|
1965
2141
|
var import_jsx_runtime18 = require("react/jsx-runtime");
|
|
1966
|
-
var InputGroupSizeContext =
|
|
2142
|
+
var InputGroupSizeContext = React5.createContext("md");
|
|
1967
2143
|
var inputGroupVariants = (0, import_class_variance_authority5.cva)(
|
|
1968
2144
|
[
|
|
1969
2145
|
"group/input-group relative flex w-full items-center rounded-sm border border-border-subtle bg-white/5",
|
|
@@ -2125,7 +2301,7 @@ function InputGroupInput(_a) {
|
|
|
2125
2301
|
"className",
|
|
2126
2302
|
"size"
|
|
2127
2303
|
]);
|
|
2128
|
-
const groupSize =
|
|
2304
|
+
const groupSize = React5.useContext(InputGroupSizeContext);
|
|
2129
2305
|
const size = sizeProp != null ? sizeProp : groupSize;
|
|
2130
2306
|
return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
|
|
2131
2307
|
Input,
|
|
@@ -2181,7 +2357,7 @@ function ComboboxTrigger(_a) {
|
|
|
2181
2357
|
children: [
|
|
2182
2358
|
children,
|
|
2183
2359
|
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
|
|
2184
|
-
|
|
2360
|
+
import_lucide_react7.ChevronDownIcon,
|
|
2185
2361
|
{
|
|
2186
2362
|
"data-slot": "combobox-trigger-icon",
|
|
2187
2363
|
className: "pointer-events-none size-4 text-on-subtle"
|
|
@@ -2200,7 +2376,7 @@ function ComboboxClear(_a) {
|
|
|
2200
2376
|
render: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(InputGroupButton, { variant: "secondary", size: "icon-xs" }),
|
|
2201
2377
|
className: cn(className)
|
|
2202
2378
|
}, props), {
|
|
2203
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
|
|
2379
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_lucide_react7.XIcon, { className: "pointer-events-none" })
|
|
2204
2380
|
})
|
|
2205
2381
|
);
|
|
2206
2382
|
}
|
|
@@ -2319,7 +2495,7 @@ function ComboboxItem(_a) {
|
|
|
2319
2495
|
{
|
|
2320
2496
|
"data-slot": "combobox-item-indicator",
|
|
2321
2497
|
render: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("span", { className: "pointer-events-none absolute right-2 flex size-4 items-center justify-center" }),
|
|
2322
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
|
|
2498
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_lucide_react7.CheckIcon, { className: "pointer-events-none size-4 pointer-coarse:size-5" })
|
|
2323
2499
|
}
|
|
2324
2500
|
)
|
|
2325
2501
|
]
|
|
@@ -2428,7 +2604,7 @@ function ComboboxChip(_a) {
|
|
|
2428
2604
|
render: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(Button, { variant: "secondary", size: "icon-xs" }),
|
|
2429
2605
|
className: "-ml-1 opacity-50 hover:opacity-100",
|
|
2430
2606
|
"data-slot": "combobox-chip-remove",
|
|
2431
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
|
|
2607
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_lucide_react7.XIcon, { className: "pointer-events-none" })
|
|
2432
2608
|
}
|
|
2433
2609
|
)
|
|
2434
2610
|
]
|
|
@@ -2452,15 +2628,15 @@ function ComboboxChipsInput(_a) {
|
|
|
2452
2628
|
);
|
|
2453
2629
|
}
|
|
2454
2630
|
function useComboboxAnchor() {
|
|
2455
|
-
return
|
|
2631
|
+
return React6.useRef(null);
|
|
2456
2632
|
}
|
|
2457
2633
|
|
|
2458
2634
|
// components/ui/command.tsx
|
|
2459
2635
|
var import_cmdk = require("cmdk");
|
|
2460
|
-
var
|
|
2636
|
+
var import_lucide_react9 = require("lucide-react");
|
|
2461
2637
|
|
|
2462
2638
|
// components/ui/dialog.tsx
|
|
2463
|
-
var
|
|
2639
|
+
var import_lucide_react8 = require("lucide-react");
|
|
2464
2640
|
var import_radix_ui10 = require("radix-ui");
|
|
2465
2641
|
var import_jsx_runtime20 = require("react/jsx-runtime");
|
|
2466
2642
|
function Dialog(_a) {
|
|
@@ -2525,7 +2701,7 @@ function DialogContent(_a) {
|
|
|
2525
2701
|
"data-slot": "dialog-close",
|
|
2526
2702
|
className: "absolute top-4 right-4 rounded-xs opacity-70 ring-offset-prominent transition-opacity hover:opacity-100 focus:ring-2 focus:ring-ring focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-on-subtle [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
|
|
2527
2703
|
children: [
|
|
2528
|
-
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
2704
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_lucide_react8.XIcon, {}),
|
|
2529
2705
|
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)("span", { className: "sr-only", children: "Close" })
|
|
2530
2706
|
]
|
|
2531
2707
|
}
|
|
@@ -2660,7 +2836,7 @@ function CommandInput(_a) {
|
|
|
2660
2836
|
"data-slot": "command-input-wrapper",
|
|
2661
2837
|
className: "flex h-9 items-center gap-2 border-b px-3",
|
|
2662
2838
|
children: [
|
|
2663
|
-
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
2839
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_lucide_react9.SearchIcon, { className: "size-4 shrink-0 opacity-50" }),
|
|
2664
2840
|
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
2665
2841
|
import_cmdk.Command.Input,
|
|
2666
2842
|
__spreadValues({
|
|
@@ -2769,7 +2945,7 @@ function CommandShortcut(_a) {
|
|
|
2769
2945
|
}
|
|
2770
2946
|
|
|
2771
2947
|
// components/ui/context-menu.tsx
|
|
2772
|
-
var
|
|
2948
|
+
var import_lucide_react10 = require("lucide-react");
|
|
2773
2949
|
var import_radix_ui11 = require("radix-ui");
|
|
2774
2950
|
var import_jsx_runtime22 = require("react/jsx-runtime");
|
|
2775
2951
|
function ContextMenu(_a) {
|
|
@@ -2823,7 +2999,7 @@ function ContextMenuSubTrigger(_a) {
|
|
|
2823
2999
|
}, props), {
|
|
2824
3000
|
children: [
|
|
2825
3001
|
children,
|
|
2826
|
-
/* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
|
|
3002
|
+
/* @__PURE__ */ (0, import_jsx_runtime22.jsx)(import_lucide_react10.ChevronRightIcon, { className: "ml-auto" })
|
|
2827
3003
|
]
|
|
2828
3004
|
})
|
|
2829
3005
|
);
|
|
@@ -2906,7 +3082,7 @@ function ContextMenuCheckboxItem(_a) {
|
|
|
2906
3082
|
checked
|
|
2907
3083
|
}, props), {
|
|
2908
3084
|
children: [
|
|
2909
|
-
/* @__PURE__ */ (0, import_jsx_runtime22.jsx)("span", { className: "pointer-events-none absolute left-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(import_radix_ui11.ContextMenu.ItemIndicator, { children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
|
|
3085
|
+
/* @__PURE__ */ (0, import_jsx_runtime22.jsx)("span", { className: "pointer-events-none absolute left-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(import_radix_ui11.ContextMenu.ItemIndicator, { children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(import_lucide_react10.CheckIcon, { className: "size-4" }) }) }),
|
|
2910
3086
|
children
|
|
2911
3087
|
]
|
|
2912
3088
|
})
|
|
@@ -2930,7 +3106,7 @@ function ContextMenuRadioItem(_a) {
|
|
|
2930
3106
|
)
|
|
2931
3107
|
}, props), {
|
|
2932
3108
|
children: [
|
|
2933
|
-
/* @__PURE__ */ (0, import_jsx_runtime22.jsx)("span", { className: "pointer-events-none absolute left-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(import_radix_ui11.ContextMenu.ItemIndicator, { children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
|
|
3109
|
+
/* @__PURE__ */ (0, import_jsx_runtime22.jsx)("span", { className: "pointer-events-none absolute left-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(import_radix_ui11.ContextMenu.ItemIndicator, { children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(import_lucide_react10.CircleIcon, { className: "size-2 fill-current" }) }) }),
|
|
2934
3110
|
children
|
|
2935
3111
|
]
|
|
2936
3112
|
})
|
|
@@ -3120,7 +3296,7 @@ function DrawerDescription(_a) {
|
|
|
3120
3296
|
}
|
|
3121
3297
|
|
|
3122
3298
|
// components/ui/dropdown-menu.tsx
|
|
3123
|
-
var
|
|
3299
|
+
var import_lucide_react11 = require("lucide-react");
|
|
3124
3300
|
var import_radix_ui13 = require("radix-ui");
|
|
3125
3301
|
var import_jsx_runtime25 = require("react/jsx-runtime");
|
|
3126
3302
|
function DropdownMenu(_a) {
|
|
@@ -3208,7 +3384,7 @@ function DropdownMenuCheckboxItem(_a) {
|
|
|
3208
3384
|
checked
|
|
3209
3385
|
}, props), {
|
|
3210
3386
|
children: [
|
|
3211
|
-
/* @__PURE__ */ (0, import_jsx_runtime25.jsx)("span", { className: "pointer-events-none absolute left-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_radix_ui13.DropdownMenu.ItemIndicator, { children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
|
|
3387
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsx)("span", { className: "pointer-events-none absolute left-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_radix_ui13.DropdownMenu.ItemIndicator, { children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_lucide_react11.CheckIcon, { className: "size-4" }) }) }),
|
|
3212
3388
|
children
|
|
3213
3389
|
]
|
|
3214
3390
|
})
|
|
@@ -3241,7 +3417,7 @@ function DropdownMenuRadioItem(_a) {
|
|
|
3241
3417
|
)
|
|
3242
3418
|
}, props), {
|
|
3243
3419
|
children: [
|
|
3244
|
-
/* @__PURE__ */ (0, import_jsx_runtime25.jsx)("span", { className: "pointer-events-none absolute left-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_radix_ui13.DropdownMenu.ItemIndicator, { children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
|
|
3420
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsx)("span", { className: "pointer-events-none absolute left-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_radix_ui13.DropdownMenu.ItemIndicator, { children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_lucide_react11.CircleIcon, { className: "size-2 fill-current" }) }) }),
|
|
3245
3421
|
children
|
|
3246
3422
|
]
|
|
3247
3423
|
})
|
|
@@ -3324,7 +3500,7 @@ function DropdownMenuSubTrigger(_a) {
|
|
|
3324
3500
|
}, props), {
|
|
3325
3501
|
children: [
|
|
3326
3502
|
children,
|
|
3327
|
-
/* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
|
|
3503
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_lucide_react11.ChevronRightIcon, { className: "ml-auto size-4" })
|
|
3328
3504
|
]
|
|
3329
3505
|
})
|
|
3330
3506
|
);
|
|
@@ -3724,12 +3900,12 @@ function FieldError(_a) {
|
|
|
3724
3900
|
}
|
|
3725
3901
|
|
|
3726
3902
|
// components/ui/form.tsx
|
|
3727
|
-
var
|
|
3903
|
+
var React7 = __toESM(require("react"), 1);
|
|
3728
3904
|
var import_radix_ui16 = require("radix-ui");
|
|
3729
3905
|
var import_react_hook_form = require("react-hook-form");
|
|
3730
3906
|
var import_jsx_runtime30 = require("react/jsx-runtime");
|
|
3731
3907
|
var Form = import_react_hook_form.FormProvider;
|
|
3732
|
-
var FormFieldContext =
|
|
3908
|
+
var FormFieldContext = React7.createContext(
|
|
3733
3909
|
{}
|
|
3734
3910
|
);
|
|
3735
3911
|
var FormField = (_a) => {
|
|
@@ -3737,8 +3913,8 @@ var FormField = (_a) => {
|
|
|
3737
3913
|
return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(FormFieldContext.Provider, { value: { name: props.name }, children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(import_react_hook_form.Controller, __spreadValues({}, props)) });
|
|
3738
3914
|
};
|
|
3739
3915
|
var useFormField = () => {
|
|
3740
|
-
const fieldContext =
|
|
3741
|
-
const itemContext =
|
|
3916
|
+
const fieldContext = React7.useContext(FormFieldContext);
|
|
3917
|
+
const itemContext = React7.useContext(FormItemContext);
|
|
3742
3918
|
const { getFieldState } = (0, import_react_hook_form.useFormContext)();
|
|
3743
3919
|
const formState = (0, import_react_hook_form.useFormState)({ name: fieldContext.name });
|
|
3744
3920
|
const fieldState = getFieldState(fieldContext.name, formState);
|
|
@@ -3754,12 +3930,12 @@ var useFormField = () => {
|
|
|
3754
3930
|
formMessageId: `${id}-form-item-message`
|
|
3755
3931
|
}, fieldState);
|
|
3756
3932
|
};
|
|
3757
|
-
var FormItemContext =
|
|
3933
|
+
var FormItemContext = React7.createContext(
|
|
3758
3934
|
{}
|
|
3759
3935
|
);
|
|
3760
3936
|
function FormItem(_a) {
|
|
3761
3937
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
3762
|
-
const id =
|
|
3938
|
+
const id = React7.useId();
|
|
3763
3939
|
return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(FormItemContext.Provider, { value: { id }, children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
|
|
3764
3940
|
"div",
|
|
3765
3941
|
__spreadValues({
|
|
@@ -3866,9 +4042,9 @@ function HoverCardContent(_a) {
|
|
|
3866
4042
|
}
|
|
3867
4043
|
|
|
3868
4044
|
// components/ui/input-otp.tsx
|
|
3869
|
-
var
|
|
4045
|
+
var React8 = __toESM(require("react"), 1);
|
|
3870
4046
|
var import_input_otp = require("input-otp");
|
|
3871
|
-
var
|
|
4047
|
+
var import_lucide_react12 = require("lucide-react");
|
|
3872
4048
|
var import_jsx_runtime32 = require("react/jsx-runtime");
|
|
3873
4049
|
function InputOTP(_a) {
|
|
3874
4050
|
var _b = _a, {
|
|
@@ -3909,7 +4085,7 @@ function InputOTPSlot(_a) {
|
|
|
3909
4085
|
"className"
|
|
3910
4086
|
]);
|
|
3911
4087
|
var _a2;
|
|
3912
|
-
const inputOTPContext =
|
|
4088
|
+
const inputOTPContext = React8.useContext(import_input_otp.OTPInputContext);
|
|
3913
4089
|
const { char, hasFakeCaret, isActive } = (_a2 = inputOTPContext == null ? void 0 : inputOTPContext.slots[index]) != null ? _a2 : {};
|
|
3914
4090
|
return /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(
|
|
3915
4091
|
"div",
|
|
@@ -3930,7 +4106,7 @@ function InputOTPSlot(_a) {
|
|
|
3930
4106
|
}
|
|
3931
4107
|
function InputOTPSeparator(_a) {
|
|
3932
4108
|
var props = __objRest(_a, []);
|
|
3933
|
-
return /* @__PURE__ */ (0, import_jsx_runtime32.jsx)("div", __spreadProps(__spreadValues({ "data-slot": "input-otp-separator", role: "separator" }, props), { children: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
|
|
4109
|
+
return /* @__PURE__ */ (0, import_jsx_runtime32.jsx)("div", __spreadProps(__spreadValues({ "data-slot": "input-otp-separator", role: "separator" }, props), { children: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(import_lucide_react12.MinusIcon, {}) }));
|
|
3934
4110
|
}
|
|
3935
4111
|
|
|
3936
4112
|
// components/ui/item.tsx
|
|
@@ -4184,7 +4360,7 @@ function Link(_a) {
|
|
|
4184
4360
|
}
|
|
4185
4361
|
|
|
4186
4362
|
// components/ui/menubar.tsx
|
|
4187
|
-
var
|
|
4363
|
+
var import_lucide_react13 = require("lucide-react");
|
|
4188
4364
|
var import_radix_ui20 = require("radix-ui");
|
|
4189
4365
|
var import_jsx_runtime36 = require("react/jsx-runtime");
|
|
4190
4366
|
function Menubar(_a) {
|
|
@@ -4307,7 +4483,7 @@ function MenubarCheckboxItem(_a) {
|
|
|
4307
4483
|
checked
|
|
4308
4484
|
}, props), {
|
|
4309
4485
|
children: [
|
|
4310
|
-
/* @__PURE__ */ (0, import_jsx_runtime36.jsx)("span", { className: "pointer-events-none absolute left-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(import_radix_ui20.Menubar.ItemIndicator, { children: /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
|
|
4486
|
+
/* @__PURE__ */ (0, import_jsx_runtime36.jsx)("span", { className: "pointer-events-none absolute left-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(import_radix_ui20.Menubar.ItemIndicator, { children: /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(import_lucide_react13.CheckIcon, { className: "size-4" }) }) }),
|
|
4311
4487
|
children
|
|
4312
4488
|
]
|
|
4313
4489
|
})
|
|
@@ -4331,7 +4507,7 @@ function MenubarRadioItem(_a) {
|
|
|
4331
4507
|
)
|
|
4332
4508
|
}, props), {
|
|
4333
4509
|
children: [
|
|
4334
|
-
/* @__PURE__ */ (0, import_jsx_runtime36.jsx)("span", { className: "pointer-events-none absolute left-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(import_radix_ui20.Menubar.ItemIndicator, { children: /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
|
|
4510
|
+
/* @__PURE__ */ (0, import_jsx_runtime36.jsx)("span", { className: "pointer-events-none absolute left-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(import_radix_ui20.Menubar.ItemIndicator, { children: /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(import_lucide_react13.CircleIcon, { className: "size-2 fill-current" }) }) }),
|
|
4335
4511
|
children
|
|
4336
4512
|
]
|
|
4337
4513
|
})
|
|
@@ -4414,7 +4590,7 @@ function MenubarSubTrigger(_a) {
|
|
|
4414
4590
|
}, props), {
|
|
4415
4591
|
children: [
|
|
4416
4592
|
children,
|
|
4417
|
-
/* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
|
|
4593
|
+
/* @__PURE__ */ (0, import_jsx_runtime36.jsx)(import_lucide_react13.ChevronRightIcon, { className: "ml-auto h-4 w-4" })
|
|
4418
4594
|
]
|
|
4419
4595
|
})
|
|
4420
4596
|
);
|
|
@@ -4438,7 +4614,7 @@ function MenubarSubContent(_a) {
|
|
|
4438
4614
|
}
|
|
4439
4615
|
|
|
4440
4616
|
// components/ui/native-select.tsx
|
|
4441
|
-
var
|
|
4617
|
+
var import_lucide_react14 = require("lucide-react");
|
|
4442
4618
|
var import_jsx_runtime37 = require("react/jsx-runtime");
|
|
4443
4619
|
function NativeSelect(_a) {
|
|
4444
4620
|
var _b = _a, {
|
|
@@ -4467,7 +4643,7 @@ function NativeSelect(_a) {
|
|
|
4467
4643
|
}, props)
|
|
4468
4644
|
),
|
|
4469
4645
|
/* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
|
|
4470
|
-
|
|
4646
|
+
import_lucide_react14.ChevronDownIcon,
|
|
4471
4647
|
{
|
|
4472
4648
|
className: "pointer-events-none absolute top-1/2 right-3.5 size-4 -translate-y-1/2 text-on-subtle opacity-50 select-none",
|
|
4473
4649
|
"aria-hidden": "true",
|
|
@@ -4544,7 +4720,7 @@ function NavigationButton(_a) {
|
|
|
4544
4720
|
|
|
4545
4721
|
// components/ui/navigation-menu.tsx
|
|
4546
4722
|
var import_class_variance_authority11 = require("class-variance-authority");
|
|
4547
|
-
var
|
|
4723
|
+
var import_lucide_react15 = require("lucide-react");
|
|
4548
4724
|
var import_radix_ui22 = require("radix-ui");
|
|
4549
4725
|
var import_jsx_runtime39 = require("react/jsx-runtime");
|
|
4550
4726
|
function NavigationMenu(_a) {
|
|
@@ -4626,7 +4802,7 @@ function NavigationMenuTrigger(_a) {
|
|
|
4626
4802
|
children,
|
|
4627
4803
|
" ",
|
|
4628
4804
|
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
|
|
4629
|
-
|
|
4805
|
+
import_lucide_react15.ChevronDownIcon,
|
|
4630
4806
|
{
|
|
4631
4807
|
className: "relative top-[1px] ml-1 size-3 transition duration-slow group-data-[state=open]:rotate-180",
|
|
4632
4808
|
"aria-hidden": "true"
|
|
@@ -4717,7 +4893,7 @@ function NavigationMenuIndicator(_a) {
|
|
|
4717
4893
|
}
|
|
4718
4894
|
|
|
4719
4895
|
// components/ui/pagination.tsx
|
|
4720
|
-
var
|
|
4896
|
+
var import_lucide_react16 = require("lucide-react");
|
|
4721
4897
|
var import_jsx_runtime40 = require("react/jsx-runtime");
|
|
4722
4898
|
function Pagination(_a) {
|
|
4723
4899
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
@@ -4779,7 +4955,7 @@ function PaginationPrevious(_a) {
|
|
|
4779
4955
|
} = _b, props = __objRest(_b, [
|
|
4780
4956
|
"className"
|
|
4781
4957
|
]);
|
|
4782
|
-
return /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(Button, { asChild: true, variant: "tertiary", size: "icon-md", className: cn(className), children: /* @__PURE__ */ (0, import_jsx_runtime40.jsx)("a", __spreadProps(__spreadValues({ "aria-label": "Go to previous page", "data-slot": "pagination-link" }, props), { children: /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
|
|
4958
|
+
return /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(Button, { asChild: true, variant: "tertiary", size: "icon-md", className: cn(className), children: /* @__PURE__ */ (0, import_jsx_runtime40.jsx)("a", __spreadProps(__spreadValues({ "aria-label": "Go to previous page", "data-slot": "pagination-link" }, props), { children: /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(import_lucide_react16.ChevronLeftIcon, { className: "size-5" }) })) });
|
|
4783
4959
|
}
|
|
4784
4960
|
function PaginationNext(_a) {
|
|
4785
4961
|
var _b = _a, {
|
|
@@ -4787,7 +4963,7 @@ function PaginationNext(_a) {
|
|
|
4787
4963
|
} = _b, props = __objRest(_b, [
|
|
4788
4964
|
"className"
|
|
4789
4965
|
]);
|
|
4790
|
-
return /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(Button, { asChild: true, variant: "tertiary", size: "icon-md", className: cn(className), children: /* @__PURE__ */ (0, import_jsx_runtime40.jsx)("a", __spreadProps(__spreadValues({ "aria-label": "Go to next page", "data-slot": "pagination-link" }, props), { children: /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
|
|
4966
|
+
return /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(Button, { asChild: true, variant: "tertiary", size: "icon-md", className: cn(className), children: /* @__PURE__ */ (0, import_jsx_runtime40.jsx)("a", __spreadProps(__spreadValues({ "aria-label": "Go to next page", "data-slot": "pagination-link" }, props), { children: /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(import_lucide_react16.ChevronRightIcon, { className: "size-5" }) })) });
|
|
4791
4967
|
}
|
|
4792
4968
|
function PaginationEllipsis(_a) {
|
|
4793
4969
|
var _b = _a, {
|
|
@@ -4803,7 +4979,7 @@ function PaginationEllipsis(_a) {
|
|
|
4803
4979
|
className: cn("flex size-10 items-center justify-center", className)
|
|
4804
4980
|
}, props), {
|
|
4805
4981
|
children: [
|
|
4806
|
-
/* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
|
|
4982
|
+
/* @__PURE__ */ (0, import_jsx_runtime40.jsx)(import_lucide_react16.MoreHorizontalIcon, { className: "size-4" }),
|
|
4807
4983
|
/* @__PURE__ */ (0, import_jsx_runtime40.jsx)("span", { className: "sr-only", children: "More pages" })
|
|
4808
4984
|
]
|
|
4809
4985
|
})
|
|
@@ -4916,7 +5092,7 @@ function Progress(_a) {
|
|
|
4916
5092
|
}
|
|
4917
5093
|
|
|
4918
5094
|
// components/ui/radio-group.tsx
|
|
4919
|
-
var
|
|
5095
|
+
var import_lucide_react17 = require("lucide-react");
|
|
4920
5096
|
var import_radix_ui25 = require("radix-ui");
|
|
4921
5097
|
var import_jsx_runtime43 = require("react/jsx-runtime");
|
|
4922
5098
|
function RadioGroup(_a) {
|
|
@@ -4953,7 +5129,7 @@ function RadioGroupItem(_a) {
|
|
|
4953
5129
|
{
|
|
4954
5130
|
"data-slot": "radio-group-indicator",
|
|
4955
5131
|
className: "relative flex items-center justify-center",
|
|
4956
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
|
|
5132
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(import_lucide_react17.CircleIcon, { className: "absolute top-1/2 left-1/2 size-2 -translate-x-1/2 -translate-y-1/2 fill-primary" })
|
|
4957
5133
|
}
|
|
4958
5134
|
)
|
|
4959
5135
|
})
|
|
@@ -4961,7 +5137,7 @@ function RadioGroupItem(_a) {
|
|
|
4961
5137
|
}
|
|
4962
5138
|
|
|
4963
5139
|
// components/ui/resizable.tsx
|
|
4964
|
-
var
|
|
5140
|
+
var import_lucide_react18 = require("lucide-react");
|
|
4965
5141
|
var ResizablePrimitive = __toESM(require("react-resizable-panels"), 1);
|
|
4966
5142
|
var import_jsx_runtime44 = require("react/jsx-runtime");
|
|
4967
5143
|
function ResizablePanelGroup(_a) {
|
|
@@ -5002,7 +5178,7 @@ function ResizableHandle(_a) {
|
|
|
5002
5178
|
className
|
|
5003
5179
|
)
|
|
5004
5180
|
}, props), {
|
|
5005
|
-
children: withHandle && /* @__PURE__ */ (0, import_jsx_runtime44.jsx)("div", { className: "z-10 flex h-4 w-3 items-center justify-center rounded-xs border bg-border", children: /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
|
|
5181
|
+
children: withHandle && /* @__PURE__ */ (0, import_jsx_runtime44.jsx)("div", { className: "z-10 flex h-4 w-3 items-center justify-center rounded-xs border bg-border", children: /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(import_lucide_react18.GripVerticalIcon, { className: "size-2.5" }) })
|
|
5006
5182
|
})
|
|
5007
5183
|
);
|
|
5008
5184
|
}
|
|
@@ -5071,7 +5247,7 @@ function ScrollBar(_a) {
|
|
|
5071
5247
|
}
|
|
5072
5248
|
|
|
5073
5249
|
// components/ui/select.tsx
|
|
5074
|
-
var
|
|
5250
|
+
var import_lucide_react19 = require("lucide-react");
|
|
5075
5251
|
var import_radix_ui27 = require("radix-ui");
|
|
5076
5252
|
var import_jsx_runtime46 = require("react/jsx-runtime");
|
|
5077
5253
|
function Select(_a) {
|
|
@@ -5112,7 +5288,7 @@ function SelectTrigger(_a) {
|
|
|
5112
5288
|
}, props), {
|
|
5113
5289
|
children: [
|
|
5114
5290
|
children,
|
|
5115
|
-
/* @__PURE__ */ (0, import_jsx_runtime46.jsx)(import_radix_ui27.Select.Icon, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
|
|
5291
|
+
/* @__PURE__ */ (0, import_jsx_runtime46.jsx)(import_radix_ui27.Select.Icon, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(import_lucide_react19.ChevronDownIcon, { className: cn("size-4", readOnly ? "opacity-30" : "opacity-50") }) })
|
|
5116
5292
|
]
|
|
5117
5293
|
})
|
|
5118
5294
|
);
|
|
@@ -5195,7 +5371,7 @@ function SelectItem(_a) {
|
|
|
5195
5371
|
{
|
|
5196
5372
|
"data-slot": "select-item-indicator",
|
|
5197
5373
|
className: "absolute right-2 flex size-3.5 items-center justify-center",
|
|
5198
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(import_radix_ui27.Select.ItemIndicator, { children: /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
|
|
5374
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(import_radix_ui27.Select.ItemIndicator, { children: /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(import_lucide_react19.CheckIcon, { className: "size-4 text-primary" }) })
|
|
5199
5375
|
}
|
|
5200
5376
|
),
|
|
5201
5377
|
/* @__PURE__ */ (0, import_jsx_runtime46.jsx)(import_radix_ui27.Select.ItemText, { children })
|
|
@@ -5232,7 +5408,7 @@ function SelectScrollUpButton(_a) {
|
|
|
5232
5408
|
className
|
|
5233
5409
|
)
|
|
5234
5410
|
}, props), {
|
|
5235
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
|
|
5411
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(import_lucide_react19.ChevronUpIcon, { className: "size-4" })
|
|
5236
5412
|
})
|
|
5237
5413
|
);
|
|
5238
5414
|
}
|
|
@@ -5251,13 +5427,13 @@ function SelectScrollDownButton(_a) {
|
|
|
5251
5427
|
className
|
|
5252
5428
|
)
|
|
5253
5429
|
}, props), {
|
|
5254
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
|
|
5430
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(import_lucide_react19.ChevronDownIcon, { className: "size-4" })
|
|
5255
5431
|
})
|
|
5256
5432
|
);
|
|
5257
5433
|
}
|
|
5258
5434
|
|
|
5259
5435
|
// components/ui/sheet.tsx
|
|
5260
|
-
var
|
|
5436
|
+
var import_lucide_react20 = require("lucide-react");
|
|
5261
5437
|
var import_radix_ui28 = require("radix-ui");
|
|
5262
5438
|
var import_jsx_runtime47 = require("react/jsx-runtime");
|
|
5263
5439
|
function Sheet(_a) {
|
|
@@ -5323,7 +5499,7 @@ function SheetContent(_a) {
|
|
|
5323
5499
|
children: [
|
|
5324
5500
|
children,
|
|
5325
5501
|
showCloseButton && /* @__PURE__ */ (0, import_jsx_runtime47.jsxs)(import_radix_ui28.Dialog.Close, { className: "absolute top-4 right-4 rounded-xs opacity-70 ring-offset-prominent transition-opacity hover:opacity-100 focus:ring-2 focus:ring-ring focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none data-[state=open]:bg-secondary", children: [
|
|
5326
|
-
/* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
|
|
5502
|
+
/* @__PURE__ */ (0, import_jsx_runtime47.jsx)(import_lucide_react20.XIcon, { className: "size-4" }),
|
|
5327
5503
|
/* @__PURE__ */ (0, import_jsx_runtime47.jsx)("span", { className: "sr-only", children: "Close" })
|
|
5328
5504
|
] })
|
|
5329
5505
|
]
|
|
@@ -5381,17 +5557,17 @@ function SheetDescription(_a) {
|
|
|
5381
5557
|
}
|
|
5382
5558
|
|
|
5383
5559
|
// components/ui/sidebar.tsx
|
|
5384
|
-
var
|
|
5560
|
+
var React11 = __toESM(require("react"), 1);
|
|
5385
5561
|
var import_class_variance_authority12 = require("class-variance-authority");
|
|
5386
|
-
var
|
|
5562
|
+
var import_lucide_react21 = require("lucide-react");
|
|
5387
5563
|
var import_radix_ui30 = require("radix-ui");
|
|
5388
5564
|
|
|
5389
5565
|
// hooks/use-mobile.ts
|
|
5390
|
-
var
|
|
5566
|
+
var React9 = __toESM(require("react"), 1);
|
|
5391
5567
|
var MOBILE_BREAKPOINT = 768;
|
|
5392
5568
|
function useIsMobile() {
|
|
5393
|
-
const [isMobile, setIsMobile] =
|
|
5394
|
-
|
|
5569
|
+
const [isMobile, setIsMobile] = React9.useState(void 0);
|
|
5570
|
+
React9.useEffect(() => {
|
|
5395
5571
|
const mql = window.matchMedia(`(max-width: ${MOBILE_BREAKPOINT - 1}px)`);
|
|
5396
5572
|
const onChange = () => {
|
|
5397
5573
|
setIsMobile(window.innerWidth < MOBILE_BREAKPOINT);
|
|
@@ -5417,10 +5593,10 @@ function Skeleton(_a) {
|
|
|
5417
5593
|
}
|
|
5418
5594
|
|
|
5419
5595
|
// components/ui/tooltip.tsx
|
|
5420
|
-
var
|
|
5596
|
+
var React10 = __toESM(require("react"), 1);
|
|
5421
5597
|
var import_radix_ui29 = require("radix-ui");
|
|
5422
5598
|
var import_jsx_runtime49 = require("react/jsx-runtime");
|
|
5423
|
-
var TooltipModeContext =
|
|
5599
|
+
var TooltipModeContext = React10.createContext("tooltip");
|
|
5424
5600
|
function TooltipProvider(_a) {
|
|
5425
5601
|
var _b = _a, {
|
|
5426
5602
|
delayDuration = 0
|
|
@@ -5454,7 +5630,7 @@ function TooltipTrigger(_a) {
|
|
|
5454
5630
|
} = _b, props = __objRest(_b, [
|
|
5455
5631
|
"children"
|
|
5456
5632
|
]);
|
|
5457
|
-
const mode =
|
|
5633
|
+
const mode = React10.useContext(TooltipModeContext);
|
|
5458
5634
|
if (mode === "drawer") {
|
|
5459
5635
|
return /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(DrawerTrigger, __spreadProps(__spreadValues({ "data-slot": "tooltip-trigger" }, props), { children }));
|
|
5460
5636
|
}
|
|
@@ -5476,11 +5652,11 @@ function TooltipContent(_a) {
|
|
|
5476
5652
|
"closeLabel",
|
|
5477
5653
|
"children"
|
|
5478
5654
|
]);
|
|
5479
|
-
const mode =
|
|
5655
|
+
const mode = React10.useContext(TooltipModeContext);
|
|
5480
5656
|
if (mode === "drawer") {
|
|
5481
5657
|
return /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)(DrawerContent, { "data-slot": "tooltip-content", "data-variant": variant, children: [
|
|
5482
|
-
/* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
|
|
5483
|
-
/* @__PURE__ */ (0, import_jsx_runtime49.jsx)("div", { className: cn("
|
|
5658
|
+
/* @__PURE__ */ (0, import_jsx_runtime49.jsx)(DrawerHeader, { children: /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(DrawerTitle, { children: title }) }),
|
|
5659
|
+
/* @__PURE__ */ (0, import_jsx_runtime49.jsx)("div", { className: cn("p-4 text-sm text-on-subtle", className), children }),
|
|
5484
5660
|
/* @__PURE__ */ (0, import_jsx_runtime49.jsx)(DrawerFooter, { children: /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(DrawerClose, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(Button, { variant: "primary", size: "md", children: closeLabel }) }) })
|
|
5485
5661
|
] });
|
|
5486
5662
|
}
|
|
@@ -5514,9 +5690,9 @@ var SIDEBAR_WIDTH = "16rem";
|
|
|
5514
5690
|
var SIDEBAR_WIDTH_MOBILE = "18rem";
|
|
5515
5691
|
var SIDEBAR_WIDTH_ICON = "3rem";
|
|
5516
5692
|
var SIDEBAR_KEYBOARD_SHORTCUT = "b";
|
|
5517
|
-
var SidebarContext =
|
|
5693
|
+
var SidebarContext = React11.createContext(null);
|
|
5518
5694
|
function useSidebar() {
|
|
5519
|
-
const context =
|
|
5695
|
+
const context = React11.useContext(SidebarContext);
|
|
5520
5696
|
if (!context) {
|
|
5521
5697
|
throw new Error("useSidebar must be used within a SidebarProvider.");
|
|
5522
5698
|
}
|
|
@@ -5539,10 +5715,10 @@ function SidebarProvider(_a) {
|
|
|
5539
5715
|
"children"
|
|
5540
5716
|
]);
|
|
5541
5717
|
const isMobile = useIsMobile();
|
|
5542
|
-
const [openMobile, setOpenMobile] =
|
|
5543
|
-
const [_open, _setOpen] =
|
|
5718
|
+
const [openMobile, setOpenMobile] = React11.useState(false);
|
|
5719
|
+
const [_open, _setOpen] = React11.useState(defaultOpen);
|
|
5544
5720
|
const open = openProp != null ? openProp : _open;
|
|
5545
|
-
const setOpen =
|
|
5721
|
+
const setOpen = React11.useCallback(
|
|
5546
5722
|
(value) => {
|
|
5547
5723
|
const openState = typeof value === "function" ? value(open) : value;
|
|
5548
5724
|
if (setOpenProp) {
|
|
@@ -5554,10 +5730,10 @@ function SidebarProvider(_a) {
|
|
|
5554
5730
|
},
|
|
5555
5731
|
[setOpenProp, open]
|
|
5556
5732
|
);
|
|
5557
|
-
const toggleSidebar =
|
|
5733
|
+
const toggleSidebar = React11.useCallback(() => {
|
|
5558
5734
|
return isMobile ? setOpenMobile((open2) => !open2) : setOpen((open2) => !open2);
|
|
5559
5735
|
}, [isMobile, setOpen, setOpenMobile]);
|
|
5560
|
-
|
|
5736
|
+
React11.useEffect(() => {
|
|
5561
5737
|
const handleKeyDown = (event) => {
|
|
5562
5738
|
if (event.key === SIDEBAR_KEYBOARD_SHORTCUT && (event.metaKey || event.ctrlKey)) {
|
|
5563
5739
|
event.preventDefault();
|
|
@@ -5568,7 +5744,7 @@ function SidebarProvider(_a) {
|
|
|
5568
5744
|
return () => window.removeEventListener("keydown", handleKeyDown);
|
|
5569
5745
|
}, [toggleSidebar]);
|
|
5570
5746
|
const state = open ? "expanded" : "collapsed";
|
|
5571
|
-
const contextValue =
|
|
5747
|
+
const contextValue = React11.useMemo(
|
|
5572
5748
|
() => ({
|
|
5573
5749
|
state,
|
|
5574
5750
|
open,
|
|
@@ -5720,7 +5896,7 @@ function SidebarTrigger(_a) {
|
|
|
5720
5896
|
}
|
|
5721
5897
|
}, props), {
|
|
5722
5898
|
children: [
|
|
5723
|
-
/* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
|
|
5899
|
+
/* @__PURE__ */ (0, import_jsx_runtime50.jsx)(import_lucide_react21.PanelLeftIcon, {}),
|
|
5724
5900
|
/* @__PURE__ */ (0, import_jsx_runtime50.jsx)("span", { className: "sr-only", children: "Toggle Sidebar" })
|
|
5725
5901
|
]
|
|
5726
5902
|
})
|
|
@@ -6146,7 +6322,7 @@ function SidebarMenuSubButton(_a) {
|
|
|
6146
6322
|
}
|
|
6147
6323
|
|
|
6148
6324
|
// components/ui/slider.tsx
|
|
6149
|
-
var
|
|
6325
|
+
var React12 = __toESM(require("react"), 1);
|
|
6150
6326
|
var import_radix_ui31 = require("radix-ui");
|
|
6151
6327
|
var import_jsx_runtime51 = require("react/jsx-runtime");
|
|
6152
6328
|
function Slider(_a) {
|
|
@@ -6163,7 +6339,7 @@ function Slider(_a) {
|
|
|
6163
6339
|
"min",
|
|
6164
6340
|
"max"
|
|
6165
6341
|
]);
|
|
6166
|
-
const _values =
|
|
6342
|
+
const _values = React12.useMemo(
|
|
6167
6343
|
() => Array.isArray(value) ? value : Array.isArray(defaultValue) ? defaultValue : [min, max],
|
|
6168
6344
|
[value, defaultValue, min, max]
|
|
6169
6345
|
);
|
|
@@ -6213,7 +6389,7 @@ function Slider(_a) {
|
|
|
6213
6389
|
}
|
|
6214
6390
|
|
|
6215
6391
|
// components/ui/toast.tsx
|
|
6216
|
-
var
|
|
6392
|
+
var import_lucide_react22 = require("lucide-react");
|
|
6217
6393
|
var import_next_themes = require("next-themes");
|
|
6218
6394
|
var import_sonner = require("sonner");
|
|
6219
6395
|
var import_jsx_runtime52 = require("react/jsx-runtime");
|
|
@@ -6230,11 +6406,11 @@ var Toaster = (_a) => {
|
|
|
6230
6406
|
visibleToasts: isMobile ? 1 : 3,
|
|
6231
6407
|
duration: 4e3,
|
|
6232
6408
|
icons: {
|
|
6233
|
-
success: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
|
|
6234
|
-
info: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
|
|
6235
|
-
warning: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
|
|
6236
|
-
error: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
|
|
6237
|
-
loading: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
|
|
6409
|
+
success: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_lucide_react22.CircleCheckIcon, { className: "size-4" }),
|
|
6410
|
+
info: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_lucide_react22.InfoIcon, { className: "size-4" }),
|
|
6411
|
+
warning: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_lucide_react22.TriangleAlertIcon, { className: "size-4" }),
|
|
6412
|
+
error: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_lucide_react22.OctagonXIcon, { className: "size-4" }),
|
|
6413
|
+
loading: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_lucide_react22.Loader2Icon, { className: "size-4 animate-spin" })
|
|
6238
6414
|
},
|
|
6239
6415
|
toastOptions: {
|
|
6240
6416
|
classNames: {
|
|
@@ -6255,8 +6431,8 @@ var Toaster = (_a) => {
|
|
|
6255
6431
|
};
|
|
6256
6432
|
|
|
6257
6433
|
// components/ui/stepper.tsx
|
|
6258
|
-
var
|
|
6259
|
-
var
|
|
6434
|
+
var React13 = __toESM(require("react"), 1);
|
|
6435
|
+
var import_lucide_react23 = require("lucide-react");
|
|
6260
6436
|
var import_jsx_runtime53 = require("react/jsx-runtime");
|
|
6261
6437
|
function clamp(value, min, max) {
|
|
6262
6438
|
return Math.min(Math.max(value, min), max);
|
|
@@ -6291,16 +6467,16 @@ function Stepper({
|
|
|
6291
6467
|
}) {
|
|
6292
6468
|
const { container, buttonSize, iconClass } = stepperSizeConfig[size];
|
|
6293
6469
|
const isControlled = controlledValue !== void 0;
|
|
6294
|
-
const [internalValue, setInternalValue] =
|
|
6470
|
+
const [internalValue, setInternalValue] = React13.useState(
|
|
6295
6471
|
clamp(defaultValue, min, max)
|
|
6296
6472
|
);
|
|
6297
6473
|
const currentValue = isControlled ? controlledValue : internalValue;
|
|
6298
6474
|
const decimalPlaces = getDecimalPlaces(step);
|
|
6299
|
-
const [displayString, setDisplayString] =
|
|
6475
|
+
const [displayString, setDisplayString] = React13.useState(
|
|
6300
6476
|
formatValue(currentValue, decimalPlaces)
|
|
6301
6477
|
);
|
|
6302
|
-
const [isFocused, setIsFocused] =
|
|
6303
|
-
|
|
6478
|
+
const [isFocused, setIsFocused] = React13.useState(false);
|
|
6479
|
+
React13.useEffect(() => {
|
|
6304
6480
|
if (!isFocused) {
|
|
6305
6481
|
setDisplayString(formatValue(currentValue, decimalPlaces));
|
|
6306
6482
|
}
|
|
@@ -6365,7 +6541,7 @@ function Stepper({
|
|
|
6365
6541
|
onClick: handleDecrement,
|
|
6366
6542
|
disabled: disabled || currentValue <= min,
|
|
6367
6543
|
"aria-label": "Decrease value",
|
|
6368
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
|
|
6544
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_lucide_react23.Minus, { className: iconClass })
|
|
6369
6545
|
}
|
|
6370
6546
|
) }),
|
|
6371
6547
|
/* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
|
|
@@ -6400,7 +6576,7 @@ function Stepper({
|
|
|
6400
6576
|
onClick: handleIncrement,
|
|
6401
6577
|
disabled: disabled || currentValue >= max,
|
|
6402
6578
|
"aria-label": "Increase value",
|
|
6403
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
|
|
6579
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_lucide_react23.Plus, { className: iconClass })
|
|
6404
6580
|
}
|
|
6405
6581
|
)
|
|
6406
6582
|
] })
|
|
@@ -6658,7 +6834,7 @@ function TabsContent(_a) {
|
|
|
6658
6834
|
}
|
|
6659
6835
|
|
|
6660
6836
|
// components/ui/ticket-card.tsx
|
|
6661
|
-
var
|
|
6837
|
+
var import_lucide_react24 = require("lucide-react");
|
|
6662
6838
|
var import_jsx_runtime57 = require("react/jsx-runtime");
|
|
6663
6839
|
function formatBalanceValue(raw) {
|
|
6664
6840
|
const match = raw.match(/^(\D*)([\d,]+(?:\.\d+)?)(\D*)$/);
|
|
@@ -6734,7 +6910,7 @@ function TicketCard({
|
|
|
6734
6910
|
}
|
|
6735
6911
|
}
|
|
6736
6912
|
),
|
|
6737
|
-
/* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
|
|
6913
|
+
/* @__PURE__ */ (0, import_jsx_runtime57.jsx)(import_lucide_react24.ArrowRight, { className: "size-4 text-on-primary" }),
|
|
6738
6914
|
/* @__PURE__ */ (0, import_jsx_runtime57.jsx)("span", { className: "text-sm font-semibold text-on-primary", children: stubLabel })
|
|
6739
6915
|
]
|
|
6740
6916
|
}
|
|
@@ -6774,7 +6950,7 @@ function CreditTicketCard({
|
|
|
6774
6950
|
type: "button",
|
|
6775
6951
|
"aria-label": `More info about ${badgeLabel.toLowerCase()}`,
|
|
6776
6952
|
className: "inline-flex shrink-0 items-center justify-center rounded-full text-on-semantic-boost outline-none transition-opacity hover:opacity-70 focus-visible:opacity-70 focus-visible:ring-2 focus-visible:ring-on-semantic-boost/40 cursor-pointer",
|
|
6777
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
|
|
6953
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(import_lucide_react24.Info, { className: "!size-3.5", strokeWidth: 2 })
|
|
6778
6954
|
}
|
|
6779
6955
|
) }),
|
|
6780
6956
|
/* @__PURE__ */ (0, import_jsx_runtime57.jsx)(TooltipContent, { side: badgeInfoSide, align: badgeInfoAlign, title: badgeInfoTitle, closeLabel: badgeInfoCloseLabel, variant: "inverse", className: "max-w-xs whitespace-normal", children: badgeInfo })
|
|
@@ -6859,7 +7035,7 @@ function CreditTicketCard({
|
|
|
6859
7035
|
}
|
|
6860
7036
|
}
|
|
6861
7037
|
),
|
|
6862
|
-
/* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
|
|
7038
|
+
/* @__PURE__ */ (0, import_jsx_runtime57.jsx)(import_lucide_react24.ArrowRight, { className: "size-4 text-on-primary" }),
|
|
6863
7039
|
/* @__PURE__ */ (0, import_jsx_runtime57.jsx)("span", { className: "text-sm font-semibold text-on-primary", children: stubLabel })
|
|
6864
7040
|
]
|
|
6865
7041
|
}
|
|
@@ -6912,10 +7088,10 @@ function Toggle(_a) {
|
|
|
6912
7088
|
}
|
|
6913
7089
|
|
|
6914
7090
|
// components/ui/toggle-group.tsx
|
|
6915
|
-
var
|
|
7091
|
+
var React14 = __toESM(require("react"), 1);
|
|
6916
7092
|
var import_radix_ui35 = require("radix-ui");
|
|
6917
7093
|
var import_jsx_runtime59 = require("react/jsx-runtime");
|
|
6918
|
-
var ToggleGroupContext =
|
|
7094
|
+
var ToggleGroupContext = React14.createContext({
|
|
6919
7095
|
size: "default",
|
|
6920
7096
|
variant: "default",
|
|
6921
7097
|
spacing: 0
|
|
@@ -6963,7 +7139,7 @@ function ToggleGroupItem(_a) {
|
|
|
6963
7139
|
"variant",
|
|
6964
7140
|
"size"
|
|
6965
7141
|
]);
|
|
6966
|
-
const context =
|
|
7142
|
+
const context = React14.useContext(ToggleGroupContext);
|
|
6967
7143
|
return /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(
|
|
6968
7144
|
import_radix_ui35.ToggleGroup.Item,
|
|
6969
7145
|
__spreadProps(__spreadValues({
|
|
@@ -7069,7 +7245,7 @@ function ResultDialog({
|
|
|
7069
7245
|
}
|
|
7070
7246
|
|
|
7071
7247
|
// components/blocks/header-navigation-block.tsx
|
|
7072
|
-
var
|
|
7248
|
+
var import_lucide_react25 = require("lucide-react");
|
|
7073
7249
|
var import_jsx_runtime61 = require("react/jsx-runtime");
|
|
7074
7250
|
function HeaderNavigationBlock({
|
|
7075
7251
|
onBack,
|
|
@@ -7080,7 +7256,7 @@ function HeaderNavigationBlock({
|
|
|
7080
7256
|
}) {
|
|
7081
7257
|
var _a;
|
|
7082
7258
|
return /* @__PURE__ */ (0, import_jsx_runtime61.jsx)("div", { className: "w-full min-w-80 max-w-layout-diagram-small border border-border-subtle rounded-md overflow-hidden bg-prominent", children: /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)("header", { className: "flex items-center gap-2 border-b border-border-subtle bg-prominent px-layout-margin-inline py-3", children: [
|
|
7083
|
-
onBack && /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(NavigationButton, { type: "button", size: "md", "aria-label": "Back", onClick: onBack, children: /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
|
|
7259
|
+
onBack && /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(NavigationButton, { type: "button", size: "md", "aria-label": "Back", onClick: onBack, children: /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(import_lucide_react25.ArrowLeft, { className: "size-5" }) }),
|
|
7084
7260
|
/* @__PURE__ */ (0, import_jsx_runtime61.jsxs)("div", { className: "flex min-w-0 flex-1 items-center justify-center gap-2", children: [
|
|
7085
7261
|
badge && /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(Badge, { variant: (_a = badge.variant) != null ? _a : "fill-warning", size: "sm", children: badge.label }),
|
|
7086
7262
|
/* @__PURE__ */ (0, import_jsx_runtime61.jsx)("span", { className: "font-display font-semibold tabular-nums text-on-prominent", children: balance.amount }),
|
|
@@ -7101,7 +7277,7 @@ function HistoryButton({
|
|
|
7101
7277
|
const label = show ? count > 99 ? "99+" : String(count) : null;
|
|
7102
7278
|
const ariaLabel = ariaLabelOverride != null ? ariaLabelOverride : show ? `Open history, ${count} new` : "Open history";
|
|
7103
7279
|
return /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)("div", { className: "relative inline-flex", children: [
|
|
7104
|
-
/* @__PURE__ */ (0, import_jsx_runtime61.jsx)(NavigationButton, { type: "button", size: "md", "aria-label": ariaLabel, onClick, children: /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
|
|
7280
|
+
/* @__PURE__ */ (0, import_jsx_runtime61.jsx)(NavigationButton, { type: "button", size: "md", "aria-label": ariaLabel, onClick, children: /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(import_lucide_react25.History, { className: "size-5" }) }),
|
|
7105
7281
|
show && /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
|
|
7106
7282
|
"span",
|
|
7107
7283
|
{
|
|
@@ -7160,7 +7336,7 @@ function FAQBlock({
|
|
|
7160
7336
|
}
|
|
7161
7337
|
|
|
7162
7338
|
// components/blocks/hero-block.tsx
|
|
7163
|
-
var
|
|
7339
|
+
var import_lucide_react26 = require("lucide-react");
|
|
7164
7340
|
var import_jsx_runtime63 = require("react/jsx-runtime");
|
|
7165
7341
|
function HeroBlock({
|
|
7166
7342
|
layout = "centered",
|
|
@@ -7180,7 +7356,7 @@ function HeroBlock({
|
|
|
7180
7356
|
] }),
|
|
7181
7357
|
/* @__PURE__ */ (0, import_jsx_runtime63.jsxs)(Button, { size: "sm", onClick: primaryCta.onClick, children: [
|
|
7182
7358
|
primaryCta.label,
|
|
7183
|
-
primaryCta.trailingArrow !== false && /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
|
|
7359
|
+
primaryCta.trailingArrow !== false && /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(import_lucide_react26.ArrowRight, { className: "size-4" })
|
|
7184
7360
|
] })
|
|
7185
7361
|
] }) });
|
|
7186
7362
|
}
|
|
@@ -7216,12 +7392,12 @@ function TaglinePill({
|
|
|
7216
7392
|
label,
|
|
7217
7393
|
suffix && /* @__PURE__ */ (0, import_jsx_runtime63.jsx)("span", { className: "text-on-subtle", children: ` \xB7 ${suffix}` })
|
|
7218
7394
|
] }),
|
|
7219
|
-
/* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
|
|
7395
|
+
/* @__PURE__ */ (0, import_jsx_runtime63.jsx)(import_lucide_react26.ArrowUpRight, { className: "size-4 text-on-subtle shrink-0", "aria-hidden": "true" })
|
|
7220
7396
|
] });
|
|
7221
7397
|
}
|
|
7222
7398
|
|
|
7223
7399
|
// components/blocks/auth-block.tsx
|
|
7224
|
-
var
|
|
7400
|
+
var React15 = __toESM(require("react"), 1);
|
|
7225
7401
|
var import_jsx_runtime64 = require("react/jsx-runtime");
|
|
7226
7402
|
function AuthBlock({
|
|
7227
7403
|
mode,
|
|
@@ -7237,7 +7413,7 @@ function AuthBlock({
|
|
|
7237
7413
|
const ctaText = mode === "sign-in" ? "Sign in" : "Sign up";
|
|
7238
7414
|
const footerPrompt = mode === "sign-in" ? "Don't have an account?" : "Already have an account?";
|
|
7239
7415
|
const footerLinkLabel = mode === "sign-in" ? "Sign up" : "Log in";
|
|
7240
|
-
const [email, setEmail] =
|
|
7416
|
+
const [email, setEmail] = React15.useState("");
|
|
7241
7417
|
return /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)("div", { className: "flex flex-col items-center gap-6 w-full", children: [
|
|
7242
7418
|
/* @__PURE__ */ (0, import_jsx_runtime64.jsxs)("div", { className: "flex items-center gap-2", children: [
|
|
7243
7419
|
/* @__PURE__ */ (0, import_jsx_runtime64.jsx)("img", { src: logoSrc, alt: wordmark, className: "size-8 object-contain" }),
|
|
@@ -7305,12 +7481,12 @@ function ProviderButton({ provider }) {
|
|
|
7305
7481
|
}
|
|
7306
7482
|
|
|
7307
7483
|
// components/blocks/navbar-block.tsx
|
|
7308
|
-
var
|
|
7309
|
-
var
|
|
7484
|
+
var React16 = __toESM(require("react"), 1);
|
|
7485
|
+
var import_lucide_react27 = require("lucide-react");
|
|
7310
7486
|
var import_jsx_runtime65 = require("react/jsx-runtime");
|
|
7311
7487
|
function NavBarBlock({ brand, links, signIn, signUp }) {
|
|
7312
7488
|
var _a, _b, _c, _d;
|
|
7313
|
-
const [mobileMenuOpen, setMobileMenuOpen] =
|
|
7489
|
+
const [mobileMenuOpen, setMobileMenuOpen] = React16.useState(false);
|
|
7314
7490
|
return /* @__PURE__ */ (0, import_jsx_runtime65.jsx)("div", { className: "w-full border border-border-subtle rounded-md overflow-hidden", children: /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("nav", { className: "bg-prominent", children: [
|
|
7315
7491
|
/* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("div", { className: "flex items-center justify-between px-layout-margin-inline py-3", children: [
|
|
7316
7492
|
/* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("div", { className: "flex items-center gap-6", children: [
|
|
@@ -7345,7 +7521,7 @@ function NavBarBlock({ brand, links, signIn, signUp }) {
|
|
|
7345
7521
|
"aria-expanded": mobileMenuOpen,
|
|
7346
7522
|
className: "min-[600px]:hidden",
|
|
7347
7523
|
onClick: () => setMobileMenuOpen((prev) => !prev),
|
|
7348
|
-
children: mobileMenuOpen ? /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
|
|
7524
|
+
children: mobileMenuOpen ? /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(import_lucide_react27.X, { className: "size-4" }) : /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(import_lucide_react27.Menu, { className: "size-4" })
|
|
7349
7525
|
}
|
|
7350
7526
|
)
|
|
7351
7527
|
] }),
|
|
@@ -7370,8 +7546,8 @@ function NavBarBlock({ brand, links, signIn, signUp }) {
|
|
|
7370
7546
|
}
|
|
7371
7547
|
|
|
7372
7548
|
// components/blocks/open-positions-block.tsx
|
|
7373
|
-
var
|
|
7374
|
-
var
|
|
7549
|
+
var React17 = __toESM(require("react"), 1);
|
|
7550
|
+
var import_lucide_react28 = require("lucide-react");
|
|
7375
7551
|
var import_jsx_runtime66 = require("react/jsx-runtime");
|
|
7376
7552
|
function OpenPositionsBlock({
|
|
7377
7553
|
trigger,
|
|
@@ -7388,7 +7564,7 @@ function OpenPositionsBlock({
|
|
|
7388
7564
|
/* @__PURE__ */ (0, import_jsx_runtime66.jsxs)(DrawerContent, { className: "p-0 flex flex-col", children: [
|
|
7389
7565
|
/* @__PURE__ */ (0, import_jsx_runtime66.jsxs)(DrawerHeader, { className: "flex-row items-center justify-between px-4 py-3 shrink-0 text-left", children: [
|
|
7390
7566
|
/* @__PURE__ */ (0, import_jsx_runtime66.jsx)(DrawerTitle, { className: "text-base font-semibold font-display text-on-prominent", children: sheetTitle }),
|
|
7391
|
-
/* @__PURE__ */ (0, import_jsx_runtime66.jsx)(DrawerClose, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(NavigationButton, { size: "sm", "aria-label": "Close", children: /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(
|
|
7567
|
+
/* @__PURE__ */ (0, import_jsx_runtime66.jsx)(DrawerClose, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(NavigationButton, { size: "sm", "aria-label": "Close", children: /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(import_lucide_react28.X, {}) }) })
|
|
7392
7568
|
] }),
|
|
7393
7569
|
/* @__PURE__ */ (0, import_jsx_runtime66.jsx)(Separator, {}),
|
|
7394
7570
|
body
|
|
@@ -7400,7 +7576,7 @@ function OpenPositionsBlock({
|
|
|
7400
7576
|
/* @__PURE__ */ (0, import_jsx_runtime66.jsxs)(SheetContent, { side: "right", showCloseButton: false, className: "p-0 flex flex-col w-80 sm:max-w-xs", children: [
|
|
7401
7577
|
/* @__PURE__ */ (0, import_jsx_runtime66.jsxs)(SheetHeader, { className: "flex-row items-center justify-between px-4 py-3 shrink-0", children: [
|
|
7402
7578
|
/* @__PURE__ */ (0, import_jsx_runtime66.jsx)(SheetTitle, { className: "text-base font-semibold font-display text-on-prominent", children: sheetTitle }),
|
|
7403
|
-
/* @__PURE__ */ (0, import_jsx_runtime66.jsx)(SheetClose, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(NavigationButton, { size: "sm", "aria-label": "Close", children: /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(
|
|
7579
|
+
/* @__PURE__ */ (0, import_jsx_runtime66.jsx)(SheetClose, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(NavigationButton, { size: "sm", "aria-label": "Close", children: /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(import_lucide_react28.X, {}) }) })
|
|
7404
7580
|
] }),
|
|
7405
7581
|
/* @__PURE__ */ (0, import_jsx_runtime66.jsx)(Separator, {}),
|
|
7406
7582
|
body
|
|
@@ -7412,7 +7588,7 @@ function PositionsList({
|
|
|
7412
7588
|
onViewHistory
|
|
7413
7589
|
}) {
|
|
7414
7590
|
return /* @__PURE__ */ (0, import_jsx_runtime66.jsxs)("div", { className: "flex flex-col flex-1 min-h-0", children: [
|
|
7415
|
-
/* @__PURE__ */ (0, import_jsx_runtime66.jsx)(ItemGroup, { className: "min-h-0 overflow-y-auto", children: positions.map((pos, i) => /* @__PURE__ */ (0, import_jsx_runtime66.jsxs)(
|
|
7591
|
+
/* @__PURE__ */ (0, import_jsx_runtime66.jsx)(ItemGroup, { className: "min-h-0 overflow-y-auto", children: positions.map((pos, i) => /* @__PURE__ */ (0, import_jsx_runtime66.jsxs)(React17.Fragment, { children: [
|
|
7416
7592
|
/* @__PURE__ */ (0, import_jsx_runtime66.jsx)(PositionRow, { position: pos }),
|
|
7417
7593
|
i < positions.length - 1 && /* @__PURE__ */ (0, import_jsx_runtime66.jsx)("div", { className: "h-px mx-4 bg-border-subtle" })
|
|
7418
7594
|
] }, i)) }),
|
|
@@ -7470,7 +7646,7 @@ function PnlMeta({ pnl, win, stake }) {
|
|
|
7470
7646
|
}
|
|
7471
7647
|
function DefaultEmptyState({ onViewHistory }) {
|
|
7472
7648
|
return /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(Empty, { className: "flex min-h-0 flex-1 flex-col justify-center border-none rounded-none p-6 text-center", children: /* @__PURE__ */ (0, import_jsx_runtime66.jsxs)(EmptyHeader, { className: "gap-4", children: [
|
|
7473
|
-
/* @__PURE__ */ (0, import_jsx_runtime66.jsx)(EmptyMedia, { children: /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(
|
|
7649
|
+
/* @__PURE__ */ (0, import_jsx_runtime66.jsx)(EmptyMedia, { children: /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(import_lucide_react28.History, { className: "size-8 text-on-subtle" }) }),
|
|
7474
7650
|
/* @__PURE__ */ (0, import_jsx_runtime66.jsx)(EmptyTitle, { className: "text-base leading-6 font-semibold tracking-normal body-md text-on-subtle", children: "No trades yet." }),
|
|
7475
7651
|
/* @__PURE__ */ (0, import_jsx_runtime66.jsx)(Button, { variant: "tertiary", size: "md", onClick: onViewHistory, children: "View transaction history" })
|
|
7476
7652
|
] }) });
|
|
@@ -7482,7 +7658,6 @@ function DefaultEmptyState({ onViewHistory }) {
|
|
|
7482
7658
|
AccordionItem,
|
|
7483
7659
|
AccordionTrigger,
|
|
7484
7660
|
Alert,
|
|
7485
|
-
AlertDescription,
|
|
7486
7661
|
AlertDialog,
|
|
7487
7662
|
AlertDialogAction,
|
|
7488
7663
|
AlertDialogCancel,
|
|
@@ -7495,7 +7670,6 @@ function DefaultEmptyState({ onViewHistory }) {
|
|
|
7495
7670
|
AlertDialogPortal,
|
|
7496
7671
|
AlertDialogTitle,
|
|
7497
7672
|
AlertDialogTrigger,
|
|
7498
|
-
AlertTitle,
|
|
7499
7673
|
AspectRatio,
|
|
7500
7674
|
AuthBlock,
|
|
7501
7675
|
Avatar,
|
|
@@ -7791,6 +7965,7 @@ function DefaultEmptyState({ onViewHistory }) {
|
|
|
7791
7965
|
TooltipContent,
|
|
7792
7966
|
TooltipProvider,
|
|
7793
7967
|
TooltipTrigger,
|
|
7968
|
+
alertVariants,
|
|
7794
7969
|
badgeVariants,
|
|
7795
7970
|
buttonVariants,
|
|
7796
7971
|
cn,
|