@trading-game/design-intelligence-layer 0.15.4 → 0.16.1
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 +89 -5
- package/dist/index.cjs +390 -227
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +38 -6
- package/dist/index.d.ts +38 -6
- package/dist/index.js +486 -316
- package/dist/index.js.map +1 -1
- package/guides/design-system-guide/trading-game-ds-guide.md +6 -3
- package/package.json +1 -1
- package/src/styles.css +18 -5
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,239 @@ 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
|
+
info: "bg-semantic-info/10",
|
|
610
|
+
warning: "bg-semantic-warning/10",
|
|
611
|
+
danger: "bg-semantic-error/10",
|
|
612
|
+
success: "bg-semantic-win/10"
|
|
613
|
+
},
|
|
614
|
+
layout: {
|
|
615
|
+
// Inline is mobile-first: 3 columns × 2 rows so a long title can wrap and the
|
|
616
|
+
// action button drops below the body. At sm+ (640px) it collapses to a single
|
|
617
|
+
// row of 4 columns (icon · body · action · close).
|
|
618
|
+
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",
|
|
619
|
+
card: "grid-cols-[auto_1fr_auto] grid-rows-[auto_auto] items-start gap-x-3 gap-y-2 px-4 py-4"
|
|
620
|
+
}
|
|
621
|
+
},
|
|
622
|
+
defaultVariants: {
|
|
623
|
+
variant: "info",
|
|
624
|
+
layout: "inline"
|
|
625
|
+
}
|
|
626
|
+
}
|
|
627
|
+
);
|
|
628
|
+
var SINGLE_LINE_CLASSES = "items-center min-h-12 py-2 gap-y-0";
|
|
629
|
+
var TITLE_CLASSES = {
|
|
630
|
+
info: "text-on-prominent",
|
|
631
|
+
warning: "text-on-prominent",
|
|
632
|
+
danger: "text-on-prominent",
|
|
633
|
+
success: "text-on-prominent"
|
|
634
|
+
};
|
|
635
|
+
var ICON_CLASSES = {
|
|
636
|
+
info: "text-semantic-info",
|
|
637
|
+
warning: "text-semantic-warning",
|
|
638
|
+
danger: "text-semantic-error",
|
|
639
|
+
success: "text-semantic-win"
|
|
640
|
+
};
|
|
641
|
+
var DESC_CLASSES = {
|
|
642
|
+
info: "text-on-subtle",
|
|
643
|
+
warning: "text-on-subtle",
|
|
644
|
+
danger: "text-on-subtle",
|
|
645
|
+
success: "text-on-subtle"
|
|
646
|
+
};
|
|
647
|
+
var CLOSE_CLASSES = {
|
|
648
|
+
info: "text-on-subtle opacity-70",
|
|
649
|
+
warning: "text-on-subtle opacity-70",
|
|
650
|
+
danger: "text-on-subtle opacity-70",
|
|
651
|
+
success: "text-on-subtle opacity-70"
|
|
652
|
+
};
|
|
653
|
+
function defaultIconForVariant(variant) {
|
|
654
|
+
switch (variant) {
|
|
655
|
+
case "info":
|
|
656
|
+
return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_lucide_react2.Info, {});
|
|
657
|
+
case "warning":
|
|
658
|
+
return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_lucide_react2.AlertTriangle, {});
|
|
659
|
+
case "danger":
|
|
660
|
+
return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_lucide_react2.XCircle, {});
|
|
661
|
+
case "success":
|
|
662
|
+
return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_lucide_react2.CheckCircle2, {});
|
|
663
|
+
}
|
|
664
|
+
}
|
|
665
|
+
function Alert(_a) {
|
|
666
|
+
var _b = _a, {
|
|
667
|
+
variant = "info",
|
|
668
|
+
layout = "inline",
|
|
669
|
+
title,
|
|
670
|
+
description,
|
|
671
|
+
icon,
|
|
672
|
+
action,
|
|
673
|
+
actions,
|
|
674
|
+
onDismiss,
|
|
675
|
+
dismissLabel = "Dismiss",
|
|
676
|
+
className
|
|
677
|
+
} = _b, props = __objRest(_b, [
|
|
678
|
+
"variant",
|
|
679
|
+
"layout",
|
|
680
|
+
"title",
|
|
681
|
+
"description",
|
|
682
|
+
"icon",
|
|
683
|
+
"action",
|
|
684
|
+
"actions",
|
|
685
|
+
"onDismiss",
|
|
686
|
+
"dismissLabel",
|
|
687
|
+
"className"
|
|
688
|
+
]);
|
|
689
|
+
if (!title && !description) {
|
|
690
|
+
if (process.env.NODE_ENV !== "production") {
|
|
691
|
+
console.warn(
|
|
692
|
+
"Alert: requires at least one of `title` or `description`. Rendering null."
|
|
693
|
+
);
|
|
694
|
+
}
|
|
695
|
+
return null;
|
|
696
|
+
}
|
|
697
|
+
const isInline = layout === "inline";
|
|
698
|
+
const isSingleLine = isInline && !(title && description);
|
|
699
|
+
const showIcon = icon !== null;
|
|
700
|
+
const resolvedIcon = icon === void 0 ? defaultIconForVariant(variant) : icon;
|
|
701
|
+
const showCloseButton = typeof onDismiss === "function";
|
|
702
|
+
const buttonVariant = "secondary";
|
|
703
|
+
const isAssertive = variant === "danger" || variant === "warning";
|
|
704
|
+
const role = isAssertive ? "alert" : "status";
|
|
705
|
+
const ariaLive = isAssertive ? "assertive" : "polite";
|
|
706
|
+
if (process.env.NODE_ENV !== "production") {
|
|
707
|
+
if (isInline && actions && actions.length > 0) {
|
|
708
|
+
console.warn(
|
|
709
|
+
'Alert: `actions` is ignored when layout="inline". Use `action` instead.'
|
|
710
|
+
);
|
|
711
|
+
}
|
|
712
|
+
if (!isInline && action) {
|
|
713
|
+
console.warn(
|
|
714
|
+
'Alert: `action` is ignored when layout="card". Use `actions` instead.'
|
|
715
|
+
);
|
|
716
|
+
}
|
|
717
|
+
}
|
|
718
|
+
const body = /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("div", { className: "min-w-0", children: [
|
|
719
|
+
title ? /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
|
|
720
|
+
"p",
|
|
721
|
+
{
|
|
722
|
+
className: cn(
|
|
723
|
+
// Mobile-first: 13/11px scale so narrow viewports breathe. sm+ bumps to
|
|
724
|
+
// 14/12px which lines up with the rest of the design system's body sizes.
|
|
725
|
+
"text-[13px] font-semibold leading-snug sm:text-sm",
|
|
726
|
+
TITLE_CLASSES[variant],
|
|
727
|
+
description ? "mb-2" : "mb-0"
|
|
728
|
+
),
|
|
729
|
+
children: title
|
|
730
|
+
}
|
|
731
|
+
) : null,
|
|
732
|
+
description ? /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
|
|
733
|
+
"p",
|
|
734
|
+
{
|
|
735
|
+
className: cn(
|
|
736
|
+
"text-[11px] leading-snug m-0 sm:text-xs",
|
|
737
|
+
DESC_CLASSES[variant]
|
|
738
|
+
),
|
|
739
|
+
children: description
|
|
740
|
+
}
|
|
741
|
+
) : null
|
|
742
|
+
] });
|
|
743
|
+
const closeButton = showCloseButton ? /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
|
|
744
|
+
"button",
|
|
745
|
+
{
|
|
746
|
+
type: "button",
|
|
747
|
+
onClick: onDismiss,
|
|
748
|
+
"aria-label": dismissLabel,
|
|
749
|
+
className: cn(
|
|
750
|
+
"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",
|
|
751
|
+
// tuck the close into the top-right corner for the multi-line cases
|
|
752
|
+
isSingleLine ? "" : "-mt-1 -mr-1",
|
|
753
|
+
CLOSE_CLASSES[variant]
|
|
754
|
+
),
|
|
755
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_lucide_react2.X, {})
|
|
756
|
+
}
|
|
757
|
+
) : null;
|
|
758
|
+
const iconColumn = showIcon ? /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
|
|
759
|
+
"div",
|
|
760
|
+
{
|
|
761
|
+
"aria-hidden": true,
|
|
762
|
+
className: cn(
|
|
763
|
+
"inline-flex shrink-0 size-4 [&_svg]:size-full",
|
|
764
|
+
// Single-line: grid is items-center so the icon centers automatically.
|
|
765
|
+
// Multi-line / card: top-aligned with the title cap-height via a 2px
|
|
766
|
+
// (mt-0.5) optical nudge so the icon reads as introducing the message
|
|
767
|
+
// header, not floating between title and description.
|
|
768
|
+
isSingleLine ? "" : "mt-0.5",
|
|
769
|
+
ICON_CLASSES[variant]
|
|
770
|
+
),
|
|
771
|
+
children: resolvedIcon
|
|
772
|
+
}
|
|
773
|
+
) : null;
|
|
774
|
+
if (isInline) {
|
|
775
|
+
return /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(
|
|
776
|
+
"div",
|
|
777
|
+
__spreadProps(__spreadValues({
|
|
778
|
+
role,
|
|
779
|
+
"aria-live": ariaLive,
|
|
780
|
+
"data-slot": "alert",
|
|
781
|
+
"data-variant": variant,
|
|
782
|
+
"data-layout": "inline",
|
|
783
|
+
className: cn(
|
|
784
|
+
alertVariants({ variant, layout }),
|
|
785
|
+
isSingleLine ? SINGLE_LINE_CLASSES : "",
|
|
786
|
+
className
|
|
787
|
+
)
|
|
788
|
+
}, props), {
|
|
789
|
+
children: [
|
|
790
|
+
iconColumn,
|
|
791
|
+
/* @__PURE__ */ (0, import_jsx_runtime4.jsx)("div", { className: "col-start-2 row-start-1 min-w-0", children: body }),
|
|
792
|
+
/* @__PURE__ */ (0, import_jsx_runtime4.jsx)("div", { className: "col-start-3 row-start-1 sm:col-start-4 sm:row-start-1", children: closeButton }),
|
|
793
|
+
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
|
|
794
|
+
]
|
|
795
|
+
})
|
|
796
|
+
);
|
|
797
|
+
}
|
|
798
|
+
return /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(
|
|
799
|
+
"div",
|
|
800
|
+
__spreadProps(__spreadValues({
|
|
801
|
+
role,
|
|
802
|
+
"aria-live": ariaLive,
|
|
803
|
+
"data-slot": "alert",
|
|
804
|
+
"data-variant": variant,
|
|
805
|
+
"data-layout": "card",
|
|
806
|
+
className: cn(
|
|
807
|
+
alertVariants({ variant, layout }),
|
|
808
|
+
className
|
|
809
|
+
)
|
|
810
|
+
}, props), {
|
|
811
|
+
children: [
|
|
812
|
+
iconColumn,
|
|
813
|
+
/* @__PURE__ */ (0, import_jsx_runtime4.jsx)("div", { className: "col-span-2 col-start-2 row-start-1", children: body }),
|
|
814
|
+
/* @__PURE__ */ (0, import_jsx_runtime4.jsx)("div", { className: "col-start-3 row-start-1", children: closeButton }),
|
|
815
|
+
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
|
|
816
|
+
]
|
|
817
|
+
})
|
|
818
|
+
);
|
|
819
|
+
}
|
|
820
|
+
function wrapAction(node, variant) {
|
|
821
|
+
if (React.isValidElement(node)) return node;
|
|
822
|
+
return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(Button, { variant, size: "sm", children: node });
|
|
823
|
+
}
|
|
824
|
+
|
|
666
825
|
// components/ui/alert-dialog.tsx
|
|
826
|
+
var import_radix_ui3 = require("radix-ui");
|
|
667
827
|
var import_jsx_runtime5 = require("react/jsx-runtime");
|
|
668
828
|
function AlertDialog(_a) {
|
|
669
829
|
var props = __objRest(_a, []);
|
|
@@ -966,6 +1126,10 @@ var badgeVariants = (0, import_class_variance_authority3.cva)(
|
|
|
966
1126
|
"fill-fail": "bg-semantic-loss/10 border-transparent text-semantic-loss",
|
|
967
1127
|
"fill-warning": "bg-semantic-warning/10 border-transparent text-semantic-warning",
|
|
968
1128
|
"fill-credit": "bg-semantic-boost-surface border-transparent text-on-semantic-boost !text-xs !font-semibold",
|
|
1129
|
+
// Demo / test-mode flag — opaque light-peach surface + red-orange text.
|
|
1130
|
+
// Uses --semantic-demo-surface (a solid color-mix of demo @ 10% with white)
|
|
1131
|
+
// so the badge looks identical on any background.
|
|
1132
|
+
"fill-demo": "bg-semantic-demo-surface border-transparent text-semantic-demo",
|
|
969
1133
|
// Ghost (transparent)
|
|
970
1134
|
ghost: "bg-transparent border-transparent text-primary [a&]:hover:bg-secondary-hover [a&]:hover:text-primary",
|
|
971
1135
|
"ghost-success": "bg-transparent border-transparent text-semantic-win [a&]:hover:bg-semantic-win/10 [a&]:hover:text-semantic-win",
|
|
@@ -1008,7 +1172,7 @@ function Badge(_a) {
|
|
|
1008
1172
|
}
|
|
1009
1173
|
|
|
1010
1174
|
// components/ui/breadcrumb.tsx
|
|
1011
|
-
var
|
|
1175
|
+
var import_lucide_react3 = require("lucide-react");
|
|
1012
1176
|
var import_radix_ui7 = require("radix-ui");
|
|
1013
1177
|
var import_jsx_runtime9 = require("react/jsx-runtime");
|
|
1014
1178
|
function Breadcrumb(_a) {
|
|
@@ -1084,7 +1248,7 @@ function BreadcrumbSeparator(_a) {
|
|
|
1084
1248
|
"aria-hidden": "true",
|
|
1085
1249
|
className: cn("[&>svg]:size-3.5", className)
|
|
1086
1250
|
}, props), {
|
|
1087
|
-
children: children != null ? children : /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
|
|
1251
|
+
children: children != null ? children : /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(import_lucide_react3.ChevronRight, {})
|
|
1088
1252
|
})
|
|
1089
1253
|
);
|
|
1090
1254
|
}
|
|
@@ -1103,7 +1267,7 @@ function BreadcrumbEllipsis(_a) {
|
|
|
1103
1267
|
className: cn("flex size-9 items-center justify-center", className)
|
|
1104
1268
|
}, props), {
|
|
1105
1269
|
children: [
|
|
1106
|
-
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
|
|
1270
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)(import_lucide_react3.MoreHorizontal, { className: "size-4" }),
|
|
1107
1271
|
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)("span", { className: "sr-only", children: "More" })
|
|
1108
1272
|
]
|
|
1109
1273
|
})
|
|
@@ -1111,8 +1275,8 @@ function BreadcrumbEllipsis(_a) {
|
|
|
1111
1275
|
}
|
|
1112
1276
|
|
|
1113
1277
|
// components/ui/calendar.tsx
|
|
1114
|
-
var
|
|
1115
|
-
var
|
|
1278
|
+
var React2 = __toESM(require("react"), 1);
|
|
1279
|
+
var import_lucide_react4 = require("lucide-react");
|
|
1116
1280
|
var import_react_day_picker = require("react-day-picker");
|
|
1117
1281
|
var import_jsx_runtime10 = require("react/jsx-runtime");
|
|
1118
1282
|
function Calendar(_a) {
|
|
@@ -1245,17 +1409,17 @@ function Calendar(_a) {
|
|
|
1245
1409
|
Chevron: (_c) => {
|
|
1246
1410
|
var _d = _c, { className: className2, orientation } = _d, props2 = __objRest(_d, ["className", "orientation"]);
|
|
1247
1411
|
if (orientation === "left") {
|
|
1248
|
-
return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
|
|
1412
|
+
return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_lucide_react4.ChevronLeftIcon, __spreadValues({ className: cn("size-4", className2) }, props2));
|
|
1249
1413
|
}
|
|
1250
1414
|
if (orientation === "right") {
|
|
1251
1415
|
return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
|
|
1252
|
-
|
|
1416
|
+
import_lucide_react4.ChevronRightIcon,
|
|
1253
1417
|
__spreadValues({
|
|
1254
1418
|
className: cn("size-4", className2)
|
|
1255
1419
|
}, props2)
|
|
1256
1420
|
);
|
|
1257
1421
|
}
|
|
1258
|
-
return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
|
|
1422
|
+
return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_lucide_react4.ChevronDownIcon, __spreadValues({ className: cn("size-4", className2) }, props2));
|
|
1259
1423
|
},
|
|
1260
1424
|
DayButton: CalendarDayButton,
|
|
1261
1425
|
WeekNumber: (_e) => {
|
|
@@ -1277,8 +1441,8 @@ function CalendarDayButton(_a) {
|
|
|
1277
1441
|
"modifiers"
|
|
1278
1442
|
]);
|
|
1279
1443
|
const defaultClassNames = (0, import_react_day_picker.getDefaultClassNames)();
|
|
1280
|
-
const ref =
|
|
1281
|
-
|
|
1444
|
+
const ref = React2.useRef(null);
|
|
1445
|
+
React2.useEffect(() => {
|
|
1282
1446
|
var _a2;
|
|
1283
1447
|
if (modifiers.focused) (_a2 = ref.current) == null ? void 0 : _a2.focus();
|
|
1284
1448
|
}, [modifiers.focused]);
|
|
@@ -1386,13 +1550,13 @@ function CardFooter(_a) {
|
|
|
1386
1550
|
}
|
|
1387
1551
|
|
|
1388
1552
|
// components/ui/carousel.tsx
|
|
1389
|
-
var
|
|
1553
|
+
var React3 = __toESM(require("react"), 1);
|
|
1390
1554
|
var import_embla_carousel_react = __toESM(require("embla-carousel-react"), 1);
|
|
1391
|
-
var
|
|
1555
|
+
var import_lucide_react5 = require("lucide-react");
|
|
1392
1556
|
var import_jsx_runtime12 = require("react/jsx-runtime");
|
|
1393
|
-
var CarouselContext =
|
|
1557
|
+
var CarouselContext = React3.createContext(null);
|
|
1394
1558
|
function useCarousel() {
|
|
1395
|
-
const context =
|
|
1559
|
+
const context = React3.useContext(CarouselContext);
|
|
1396
1560
|
if (!context) {
|
|
1397
1561
|
throw new Error("useCarousel must be used within a <Carousel />");
|
|
1398
1562
|
}
|
|
@@ -1420,20 +1584,20 @@ function Carousel(_a) {
|
|
|
1420
1584
|
}),
|
|
1421
1585
|
plugins
|
|
1422
1586
|
);
|
|
1423
|
-
const [canScrollPrev, setCanScrollPrev] =
|
|
1424
|
-
const [canScrollNext, setCanScrollNext] =
|
|
1425
|
-
const onSelect =
|
|
1587
|
+
const [canScrollPrev, setCanScrollPrev] = React3.useState(false);
|
|
1588
|
+
const [canScrollNext, setCanScrollNext] = React3.useState(false);
|
|
1589
|
+
const onSelect = React3.useCallback((api2) => {
|
|
1426
1590
|
if (!api2) return;
|
|
1427
1591
|
setCanScrollPrev(api2.canScrollPrev());
|
|
1428
1592
|
setCanScrollNext(api2.canScrollNext());
|
|
1429
1593
|
}, []);
|
|
1430
|
-
const scrollPrev =
|
|
1594
|
+
const scrollPrev = React3.useCallback(() => {
|
|
1431
1595
|
api == null ? void 0 : api.scrollPrev();
|
|
1432
1596
|
}, [api]);
|
|
1433
|
-
const scrollNext =
|
|
1597
|
+
const scrollNext = React3.useCallback(() => {
|
|
1434
1598
|
api == null ? void 0 : api.scrollNext();
|
|
1435
1599
|
}, [api]);
|
|
1436
|
-
const handleKeyDown =
|
|
1600
|
+
const handleKeyDown = React3.useCallback(
|
|
1437
1601
|
(event) => {
|
|
1438
1602
|
if (event.key === "ArrowLeft") {
|
|
1439
1603
|
event.preventDefault();
|
|
@@ -1445,11 +1609,11 @@ function Carousel(_a) {
|
|
|
1445
1609
|
},
|
|
1446
1610
|
[scrollPrev, scrollNext]
|
|
1447
1611
|
);
|
|
1448
|
-
|
|
1612
|
+
React3.useEffect(() => {
|
|
1449
1613
|
if (!api || !setApi) return;
|
|
1450
1614
|
setApi(api);
|
|
1451
1615
|
}, [api, setApi]);
|
|
1452
|
-
|
|
1616
|
+
React3.useEffect(() => {
|
|
1453
1617
|
if (!api) return;
|
|
1454
1618
|
onSelect(api);
|
|
1455
1619
|
api.on("reInit", onSelect);
|
|
@@ -1551,7 +1715,7 @@ function CarouselPrevious(_a) {
|
|
|
1551
1715
|
onClick: scrollPrev
|
|
1552
1716
|
}, props), {
|
|
1553
1717
|
children: [
|
|
1554
|
-
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
|
|
1718
|
+
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_lucide_react5.ArrowLeft, {}),
|
|
1555
1719
|
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)("span", { className: "sr-only", children: "Previous slide" })
|
|
1556
1720
|
]
|
|
1557
1721
|
})
|
|
@@ -1583,7 +1747,7 @@ function CarouselNext(_a) {
|
|
|
1583
1747
|
onClick: scrollNext
|
|
1584
1748
|
}, props), {
|
|
1585
1749
|
children: [
|
|
1586
|
-
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
|
|
1750
|
+
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_lucide_react5.ArrowRight, {}),
|
|
1587
1751
|
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)("span", { className: "sr-only", children: "Next slide" })
|
|
1588
1752
|
]
|
|
1589
1753
|
})
|
|
@@ -1591,13 +1755,13 @@ function CarouselNext(_a) {
|
|
|
1591
1755
|
}
|
|
1592
1756
|
|
|
1593
1757
|
// components/ui/chart.tsx
|
|
1594
|
-
var
|
|
1758
|
+
var React4 = __toESM(require("react"), 1);
|
|
1595
1759
|
var RechartsPrimitive = __toESM(require("recharts"), 1);
|
|
1596
1760
|
var import_jsx_runtime13 = require("react/jsx-runtime");
|
|
1597
1761
|
var THEMES = { light: "" };
|
|
1598
|
-
var ChartContext =
|
|
1762
|
+
var ChartContext = React4.createContext(null);
|
|
1599
1763
|
function useChart() {
|
|
1600
|
-
const context =
|
|
1764
|
+
const context = React4.useContext(ChartContext);
|
|
1601
1765
|
if (!context) {
|
|
1602
1766
|
throw new Error("useChart must be used within a <ChartContainer />");
|
|
1603
1767
|
}
|
|
@@ -1615,7 +1779,7 @@ function ChartContainer(_a) {
|
|
|
1615
1779
|
"children",
|
|
1616
1780
|
"config"
|
|
1617
1781
|
]);
|
|
1618
|
-
const uniqueId =
|
|
1782
|
+
const uniqueId = React4.useId();
|
|
1619
1783
|
const chartId = `chart-${id || uniqueId.replace(/:/g, "")}`;
|
|
1620
1784
|
return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(ChartContext.Provider, { value: { config }, children: /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(
|
|
1621
1785
|
"div",
|
|
@@ -1677,7 +1841,7 @@ function ChartTooltipContent({
|
|
|
1677
1841
|
labelKey
|
|
1678
1842
|
}) {
|
|
1679
1843
|
const { config } = useChart();
|
|
1680
|
-
const tooltipLabel =
|
|
1844
|
+
const tooltipLabel = React4.useMemo(() => {
|
|
1681
1845
|
var _a;
|
|
1682
1846
|
if (hideLabel || !(payload == null ? void 0 : payload.length)) {
|
|
1683
1847
|
return null;
|
|
@@ -1833,7 +1997,7 @@ function getPayloadConfigFromPayload(config, payload, key) {
|
|
|
1833
1997
|
}
|
|
1834
1998
|
|
|
1835
1999
|
// components/ui/checkbox.tsx
|
|
1836
|
-
var
|
|
2000
|
+
var import_lucide_react6 = require("lucide-react");
|
|
1837
2001
|
var import_radix_ui8 = require("radix-ui");
|
|
1838
2002
|
var import_jsx_runtime14 = require("react/jsx-runtime");
|
|
1839
2003
|
function Checkbox(_a) {
|
|
@@ -1856,7 +2020,7 @@ function Checkbox(_a) {
|
|
|
1856
2020
|
{
|
|
1857
2021
|
"data-slot": "checkbox-indicator",
|
|
1858
2022
|
className: "grid place-content-center text-current transition-none",
|
|
1859
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
|
|
2023
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_lucide_react6.CheckIcon, { className: "size-3.5" })
|
|
1860
2024
|
}
|
|
1861
2025
|
)
|
|
1862
2026
|
})
|
|
@@ -1890,12 +2054,12 @@ function CollapsibleContent(_a) {
|
|
|
1890
2054
|
}
|
|
1891
2055
|
|
|
1892
2056
|
// components/ui/combobox.tsx
|
|
1893
|
-
var
|
|
2057
|
+
var React6 = __toESM(require("react"), 1);
|
|
1894
2058
|
var import_react = require("@base-ui/react");
|
|
1895
|
-
var
|
|
2059
|
+
var import_lucide_react7 = require("lucide-react");
|
|
1896
2060
|
|
|
1897
2061
|
// components/ui/input-group.tsx
|
|
1898
|
-
var
|
|
2062
|
+
var React5 = __toESM(require("react"), 1);
|
|
1899
2063
|
var import_class_variance_authority5 = require("class-variance-authority");
|
|
1900
2064
|
|
|
1901
2065
|
// components/ui/input.tsx
|
|
@@ -1963,7 +2127,7 @@ function Textarea(_a) {
|
|
|
1963
2127
|
|
|
1964
2128
|
// components/ui/input-group.tsx
|
|
1965
2129
|
var import_jsx_runtime18 = require("react/jsx-runtime");
|
|
1966
|
-
var InputGroupSizeContext =
|
|
2130
|
+
var InputGroupSizeContext = React5.createContext("md");
|
|
1967
2131
|
var inputGroupVariants = (0, import_class_variance_authority5.cva)(
|
|
1968
2132
|
[
|
|
1969
2133
|
"group/input-group relative flex w-full items-center rounded-sm border border-border-subtle bg-white/5",
|
|
@@ -2125,7 +2289,7 @@ function InputGroupInput(_a) {
|
|
|
2125
2289
|
"className",
|
|
2126
2290
|
"size"
|
|
2127
2291
|
]);
|
|
2128
|
-
const groupSize =
|
|
2292
|
+
const groupSize = React5.useContext(InputGroupSizeContext);
|
|
2129
2293
|
const size = sizeProp != null ? sizeProp : groupSize;
|
|
2130
2294
|
return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
|
|
2131
2295
|
Input,
|
|
@@ -2181,7 +2345,7 @@ function ComboboxTrigger(_a) {
|
|
|
2181
2345
|
children: [
|
|
2182
2346
|
children,
|
|
2183
2347
|
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
|
|
2184
|
-
|
|
2348
|
+
import_lucide_react7.ChevronDownIcon,
|
|
2185
2349
|
{
|
|
2186
2350
|
"data-slot": "combobox-trigger-icon",
|
|
2187
2351
|
className: "pointer-events-none size-4 text-on-subtle"
|
|
@@ -2200,7 +2364,7 @@ function ComboboxClear(_a) {
|
|
|
2200
2364
|
render: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(InputGroupButton, { variant: "secondary", size: "icon-xs" }),
|
|
2201
2365
|
className: cn(className)
|
|
2202
2366
|
}, props), {
|
|
2203
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
|
|
2367
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_lucide_react7.XIcon, { className: "pointer-events-none" })
|
|
2204
2368
|
})
|
|
2205
2369
|
);
|
|
2206
2370
|
}
|
|
@@ -2319,7 +2483,7 @@ function ComboboxItem(_a) {
|
|
|
2319
2483
|
{
|
|
2320
2484
|
"data-slot": "combobox-item-indicator",
|
|
2321
2485
|
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)(
|
|
2486
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_lucide_react7.CheckIcon, { className: "pointer-events-none size-4 pointer-coarse:size-5" })
|
|
2323
2487
|
}
|
|
2324
2488
|
)
|
|
2325
2489
|
]
|
|
@@ -2428,7 +2592,7 @@ function ComboboxChip(_a) {
|
|
|
2428
2592
|
render: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(Button, { variant: "secondary", size: "icon-xs" }),
|
|
2429
2593
|
className: "-ml-1 opacity-50 hover:opacity-100",
|
|
2430
2594
|
"data-slot": "combobox-chip-remove",
|
|
2431
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
|
|
2595
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_lucide_react7.XIcon, { className: "pointer-events-none" })
|
|
2432
2596
|
}
|
|
2433
2597
|
)
|
|
2434
2598
|
]
|
|
@@ -2452,15 +2616,15 @@ function ComboboxChipsInput(_a) {
|
|
|
2452
2616
|
);
|
|
2453
2617
|
}
|
|
2454
2618
|
function useComboboxAnchor() {
|
|
2455
|
-
return
|
|
2619
|
+
return React6.useRef(null);
|
|
2456
2620
|
}
|
|
2457
2621
|
|
|
2458
2622
|
// components/ui/command.tsx
|
|
2459
2623
|
var import_cmdk = require("cmdk");
|
|
2460
|
-
var
|
|
2624
|
+
var import_lucide_react9 = require("lucide-react");
|
|
2461
2625
|
|
|
2462
2626
|
// components/ui/dialog.tsx
|
|
2463
|
-
var
|
|
2627
|
+
var import_lucide_react8 = require("lucide-react");
|
|
2464
2628
|
var import_radix_ui10 = require("radix-ui");
|
|
2465
2629
|
var import_jsx_runtime20 = require("react/jsx-runtime");
|
|
2466
2630
|
function Dialog(_a) {
|
|
@@ -2525,7 +2689,7 @@ function DialogContent(_a) {
|
|
|
2525
2689
|
"data-slot": "dialog-close",
|
|
2526
2690
|
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
2691
|
children: [
|
|
2528
|
-
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
2692
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_lucide_react8.XIcon, {}),
|
|
2529
2693
|
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)("span", { className: "sr-only", children: "Close" })
|
|
2530
2694
|
]
|
|
2531
2695
|
}
|
|
@@ -2660,7 +2824,7 @@ function CommandInput(_a) {
|
|
|
2660
2824
|
"data-slot": "command-input-wrapper",
|
|
2661
2825
|
className: "flex h-9 items-center gap-2 border-b px-3",
|
|
2662
2826
|
children: [
|
|
2663
|
-
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
2827
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_lucide_react9.SearchIcon, { className: "size-4 shrink-0 opacity-50" }),
|
|
2664
2828
|
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
2665
2829
|
import_cmdk.Command.Input,
|
|
2666
2830
|
__spreadValues({
|
|
@@ -2769,7 +2933,7 @@ function CommandShortcut(_a) {
|
|
|
2769
2933
|
}
|
|
2770
2934
|
|
|
2771
2935
|
// components/ui/context-menu.tsx
|
|
2772
|
-
var
|
|
2936
|
+
var import_lucide_react10 = require("lucide-react");
|
|
2773
2937
|
var import_radix_ui11 = require("radix-ui");
|
|
2774
2938
|
var import_jsx_runtime22 = require("react/jsx-runtime");
|
|
2775
2939
|
function ContextMenu(_a) {
|
|
@@ -2823,7 +2987,7 @@ function ContextMenuSubTrigger(_a) {
|
|
|
2823
2987
|
}, props), {
|
|
2824
2988
|
children: [
|
|
2825
2989
|
children,
|
|
2826
|
-
/* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
|
|
2990
|
+
/* @__PURE__ */ (0, import_jsx_runtime22.jsx)(import_lucide_react10.ChevronRightIcon, { className: "ml-auto" })
|
|
2827
2991
|
]
|
|
2828
2992
|
})
|
|
2829
2993
|
);
|
|
@@ -2906,7 +3070,7 @@ function ContextMenuCheckboxItem(_a) {
|
|
|
2906
3070
|
checked
|
|
2907
3071
|
}, props), {
|
|
2908
3072
|
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)(
|
|
3073
|
+
/* @__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
3074
|
children
|
|
2911
3075
|
]
|
|
2912
3076
|
})
|
|
@@ -2930,7 +3094,7 @@ function ContextMenuRadioItem(_a) {
|
|
|
2930
3094
|
)
|
|
2931
3095
|
}, props), {
|
|
2932
3096
|
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)(
|
|
3097
|
+
/* @__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
3098
|
children
|
|
2935
3099
|
]
|
|
2936
3100
|
})
|
|
@@ -3120,7 +3284,7 @@ function DrawerDescription(_a) {
|
|
|
3120
3284
|
}
|
|
3121
3285
|
|
|
3122
3286
|
// components/ui/dropdown-menu.tsx
|
|
3123
|
-
var
|
|
3287
|
+
var import_lucide_react11 = require("lucide-react");
|
|
3124
3288
|
var import_radix_ui13 = require("radix-ui");
|
|
3125
3289
|
var import_jsx_runtime25 = require("react/jsx-runtime");
|
|
3126
3290
|
function DropdownMenu(_a) {
|
|
@@ -3208,7 +3372,7 @@ function DropdownMenuCheckboxItem(_a) {
|
|
|
3208
3372
|
checked
|
|
3209
3373
|
}, props), {
|
|
3210
3374
|
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)(
|
|
3375
|
+
/* @__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
3376
|
children
|
|
3213
3377
|
]
|
|
3214
3378
|
})
|
|
@@ -3241,7 +3405,7 @@ function DropdownMenuRadioItem(_a) {
|
|
|
3241
3405
|
)
|
|
3242
3406
|
}, props), {
|
|
3243
3407
|
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)(
|
|
3408
|
+
/* @__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
3409
|
children
|
|
3246
3410
|
]
|
|
3247
3411
|
})
|
|
@@ -3324,7 +3488,7 @@ function DropdownMenuSubTrigger(_a) {
|
|
|
3324
3488
|
}, props), {
|
|
3325
3489
|
children: [
|
|
3326
3490
|
children,
|
|
3327
|
-
/* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
|
|
3491
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_lucide_react11.ChevronRightIcon, { className: "ml-auto size-4" })
|
|
3328
3492
|
]
|
|
3329
3493
|
})
|
|
3330
3494
|
);
|
|
@@ -3724,12 +3888,12 @@ function FieldError(_a) {
|
|
|
3724
3888
|
}
|
|
3725
3889
|
|
|
3726
3890
|
// components/ui/form.tsx
|
|
3727
|
-
var
|
|
3891
|
+
var React7 = __toESM(require("react"), 1);
|
|
3728
3892
|
var import_radix_ui16 = require("radix-ui");
|
|
3729
3893
|
var import_react_hook_form = require("react-hook-form");
|
|
3730
3894
|
var import_jsx_runtime30 = require("react/jsx-runtime");
|
|
3731
3895
|
var Form = import_react_hook_form.FormProvider;
|
|
3732
|
-
var FormFieldContext =
|
|
3896
|
+
var FormFieldContext = React7.createContext(
|
|
3733
3897
|
{}
|
|
3734
3898
|
);
|
|
3735
3899
|
var FormField = (_a) => {
|
|
@@ -3737,8 +3901,8 @@ var FormField = (_a) => {
|
|
|
3737
3901
|
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
3902
|
};
|
|
3739
3903
|
var useFormField = () => {
|
|
3740
|
-
const fieldContext =
|
|
3741
|
-
const itemContext =
|
|
3904
|
+
const fieldContext = React7.useContext(FormFieldContext);
|
|
3905
|
+
const itemContext = React7.useContext(FormItemContext);
|
|
3742
3906
|
const { getFieldState } = (0, import_react_hook_form.useFormContext)();
|
|
3743
3907
|
const formState = (0, import_react_hook_form.useFormState)({ name: fieldContext.name });
|
|
3744
3908
|
const fieldState = getFieldState(fieldContext.name, formState);
|
|
@@ -3754,12 +3918,12 @@ var useFormField = () => {
|
|
|
3754
3918
|
formMessageId: `${id}-form-item-message`
|
|
3755
3919
|
}, fieldState);
|
|
3756
3920
|
};
|
|
3757
|
-
var FormItemContext =
|
|
3921
|
+
var FormItemContext = React7.createContext(
|
|
3758
3922
|
{}
|
|
3759
3923
|
);
|
|
3760
3924
|
function FormItem(_a) {
|
|
3761
3925
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
3762
|
-
const id =
|
|
3926
|
+
const id = React7.useId();
|
|
3763
3927
|
return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(FormItemContext.Provider, { value: { id }, children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
|
|
3764
3928
|
"div",
|
|
3765
3929
|
__spreadValues({
|
|
@@ -3866,9 +4030,9 @@ function HoverCardContent(_a) {
|
|
|
3866
4030
|
}
|
|
3867
4031
|
|
|
3868
4032
|
// components/ui/input-otp.tsx
|
|
3869
|
-
var
|
|
4033
|
+
var React8 = __toESM(require("react"), 1);
|
|
3870
4034
|
var import_input_otp = require("input-otp");
|
|
3871
|
-
var
|
|
4035
|
+
var import_lucide_react12 = require("lucide-react");
|
|
3872
4036
|
var import_jsx_runtime32 = require("react/jsx-runtime");
|
|
3873
4037
|
function InputOTP(_a) {
|
|
3874
4038
|
var _b = _a, {
|
|
@@ -3909,7 +4073,7 @@ function InputOTPSlot(_a) {
|
|
|
3909
4073
|
"className"
|
|
3910
4074
|
]);
|
|
3911
4075
|
var _a2;
|
|
3912
|
-
const inputOTPContext =
|
|
4076
|
+
const inputOTPContext = React8.useContext(import_input_otp.OTPInputContext);
|
|
3913
4077
|
const { char, hasFakeCaret, isActive } = (_a2 = inputOTPContext == null ? void 0 : inputOTPContext.slots[index]) != null ? _a2 : {};
|
|
3914
4078
|
return /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(
|
|
3915
4079
|
"div",
|
|
@@ -3930,7 +4094,7 @@ function InputOTPSlot(_a) {
|
|
|
3930
4094
|
}
|
|
3931
4095
|
function InputOTPSeparator(_a) {
|
|
3932
4096
|
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)(
|
|
4097
|
+
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
4098
|
}
|
|
3935
4099
|
|
|
3936
4100
|
// components/ui/item.tsx
|
|
@@ -4184,7 +4348,7 @@ function Link(_a) {
|
|
|
4184
4348
|
}
|
|
4185
4349
|
|
|
4186
4350
|
// components/ui/menubar.tsx
|
|
4187
|
-
var
|
|
4351
|
+
var import_lucide_react13 = require("lucide-react");
|
|
4188
4352
|
var import_radix_ui20 = require("radix-ui");
|
|
4189
4353
|
var import_jsx_runtime36 = require("react/jsx-runtime");
|
|
4190
4354
|
function Menubar(_a) {
|
|
@@ -4307,7 +4471,7 @@ function MenubarCheckboxItem(_a) {
|
|
|
4307
4471
|
checked
|
|
4308
4472
|
}, props), {
|
|
4309
4473
|
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)(
|
|
4474
|
+
/* @__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
4475
|
children
|
|
4312
4476
|
]
|
|
4313
4477
|
})
|
|
@@ -4331,7 +4495,7 @@ function MenubarRadioItem(_a) {
|
|
|
4331
4495
|
)
|
|
4332
4496
|
}, props), {
|
|
4333
4497
|
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)(
|
|
4498
|
+
/* @__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
4499
|
children
|
|
4336
4500
|
]
|
|
4337
4501
|
})
|
|
@@ -4414,7 +4578,7 @@ function MenubarSubTrigger(_a) {
|
|
|
4414
4578
|
}, props), {
|
|
4415
4579
|
children: [
|
|
4416
4580
|
children,
|
|
4417
|
-
/* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
|
|
4581
|
+
/* @__PURE__ */ (0, import_jsx_runtime36.jsx)(import_lucide_react13.ChevronRightIcon, { className: "ml-auto h-4 w-4" })
|
|
4418
4582
|
]
|
|
4419
4583
|
})
|
|
4420
4584
|
);
|
|
@@ -4438,7 +4602,7 @@ function MenubarSubContent(_a) {
|
|
|
4438
4602
|
}
|
|
4439
4603
|
|
|
4440
4604
|
// components/ui/native-select.tsx
|
|
4441
|
-
var
|
|
4605
|
+
var import_lucide_react14 = require("lucide-react");
|
|
4442
4606
|
var import_jsx_runtime37 = require("react/jsx-runtime");
|
|
4443
4607
|
function NativeSelect(_a) {
|
|
4444
4608
|
var _b = _a, {
|
|
@@ -4467,7 +4631,7 @@ function NativeSelect(_a) {
|
|
|
4467
4631
|
}, props)
|
|
4468
4632
|
),
|
|
4469
4633
|
/* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
|
|
4470
|
-
|
|
4634
|
+
import_lucide_react14.ChevronDownIcon,
|
|
4471
4635
|
{
|
|
4472
4636
|
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
4637
|
"aria-hidden": "true",
|
|
@@ -4544,7 +4708,7 @@ function NavigationButton(_a) {
|
|
|
4544
4708
|
|
|
4545
4709
|
// components/ui/navigation-menu.tsx
|
|
4546
4710
|
var import_class_variance_authority11 = require("class-variance-authority");
|
|
4547
|
-
var
|
|
4711
|
+
var import_lucide_react15 = require("lucide-react");
|
|
4548
4712
|
var import_radix_ui22 = require("radix-ui");
|
|
4549
4713
|
var import_jsx_runtime39 = require("react/jsx-runtime");
|
|
4550
4714
|
function NavigationMenu(_a) {
|
|
@@ -4626,7 +4790,7 @@ function NavigationMenuTrigger(_a) {
|
|
|
4626
4790
|
children,
|
|
4627
4791
|
" ",
|
|
4628
4792
|
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
|
|
4629
|
-
|
|
4793
|
+
import_lucide_react15.ChevronDownIcon,
|
|
4630
4794
|
{
|
|
4631
4795
|
className: "relative top-[1px] ml-1 size-3 transition duration-slow group-data-[state=open]:rotate-180",
|
|
4632
4796
|
"aria-hidden": "true"
|
|
@@ -4717,7 +4881,7 @@ function NavigationMenuIndicator(_a) {
|
|
|
4717
4881
|
}
|
|
4718
4882
|
|
|
4719
4883
|
// components/ui/pagination.tsx
|
|
4720
|
-
var
|
|
4884
|
+
var import_lucide_react16 = require("lucide-react");
|
|
4721
4885
|
var import_jsx_runtime40 = require("react/jsx-runtime");
|
|
4722
4886
|
function Pagination(_a) {
|
|
4723
4887
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
@@ -4779,7 +4943,7 @@ function PaginationPrevious(_a) {
|
|
|
4779
4943
|
} = _b, props = __objRest(_b, [
|
|
4780
4944
|
"className"
|
|
4781
4945
|
]);
|
|
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)(
|
|
4946
|
+
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
4947
|
}
|
|
4784
4948
|
function PaginationNext(_a) {
|
|
4785
4949
|
var _b = _a, {
|
|
@@ -4787,7 +4951,7 @@ function PaginationNext(_a) {
|
|
|
4787
4951
|
} = _b, props = __objRest(_b, [
|
|
4788
4952
|
"className"
|
|
4789
4953
|
]);
|
|
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)(
|
|
4954
|
+
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
4955
|
}
|
|
4792
4956
|
function PaginationEllipsis(_a) {
|
|
4793
4957
|
var _b = _a, {
|
|
@@ -4803,7 +4967,7 @@ function PaginationEllipsis(_a) {
|
|
|
4803
4967
|
className: cn("flex size-10 items-center justify-center", className)
|
|
4804
4968
|
}, props), {
|
|
4805
4969
|
children: [
|
|
4806
|
-
/* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
|
|
4970
|
+
/* @__PURE__ */ (0, import_jsx_runtime40.jsx)(import_lucide_react16.MoreHorizontalIcon, { className: "size-4" }),
|
|
4807
4971
|
/* @__PURE__ */ (0, import_jsx_runtime40.jsx)("span", { className: "sr-only", children: "More pages" })
|
|
4808
4972
|
]
|
|
4809
4973
|
})
|
|
@@ -4916,7 +5080,7 @@ function Progress(_a) {
|
|
|
4916
5080
|
}
|
|
4917
5081
|
|
|
4918
5082
|
// components/ui/radio-group.tsx
|
|
4919
|
-
var
|
|
5083
|
+
var import_lucide_react17 = require("lucide-react");
|
|
4920
5084
|
var import_radix_ui25 = require("radix-ui");
|
|
4921
5085
|
var import_jsx_runtime43 = require("react/jsx-runtime");
|
|
4922
5086
|
function RadioGroup(_a) {
|
|
@@ -4953,7 +5117,7 @@ function RadioGroupItem(_a) {
|
|
|
4953
5117
|
{
|
|
4954
5118
|
"data-slot": "radio-group-indicator",
|
|
4955
5119
|
className: "relative flex items-center justify-center",
|
|
4956
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
|
|
5120
|
+
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
5121
|
}
|
|
4958
5122
|
)
|
|
4959
5123
|
})
|
|
@@ -4961,7 +5125,7 @@ function RadioGroupItem(_a) {
|
|
|
4961
5125
|
}
|
|
4962
5126
|
|
|
4963
5127
|
// components/ui/resizable.tsx
|
|
4964
|
-
var
|
|
5128
|
+
var import_lucide_react18 = require("lucide-react");
|
|
4965
5129
|
var ResizablePrimitive = __toESM(require("react-resizable-panels"), 1);
|
|
4966
5130
|
var import_jsx_runtime44 = require("react/jsx-runtime");
|
|
4967
5131
|
function ResizablePanelGroup(_a) {
|
|
@@ -5002,7 +5166,7 @@ function ResizableHandle(_a) {
|
|
|
5002
5166
|
className
|
|
5003
5167
|
)
|
|
5004
5168
|
}, 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)(
|
|
5169
|
+
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
5170
|
})
|
|
5007
5171
|
);
|
|
5008
5172
|
}
|
|
@@ -5071,7 +5235,7 @@ function ScrollBar(_a) {
|
|
|
5071
5235
|
}
|
|
5072
5236
|
|
|
5073
5237
|
// components/ui/select.tsx
|
|
5074
|
-
var
|
|
5238
|
+
var import_lucide_react19 = require("lucide-react");
|
|
5075
5239
|
var import_radix_ui27 = require("radix-ui");
|
|
5076
5240
|
var import_jsx_runtime46 = require("react/jsx-runtime");
|
|
5077
5241
|
function Select(_a) {
|
|
@@ -5112,7 +5276,7 @@ function SelectTrigger(_a) {
|
|
|
5112
5276
|
}, props), {
|
|
5113
5277
|
children: [
|
|
5114
5278
|
children,
|
|
5115
|
-
/* @__PURE__ */ (0, import_jsx_runtime46.jsx)(import_radix_ui27.Select.Icon, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
|
|
5279
|
+
/* @__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
5280
|
]
|
|
5117
5281
|
})
|
|
5118
5282
|
);
|
|
@@ -5195,7 +5359,7 @@ function SelectItem(_a) {
|
|
|
5195
5359
|
{
|
|
5196
5360
|
"data-slot": "select-item-indicator",
|
|
5197
5361
|
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)(
|
|
5362
|
+
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
5363
|
}
|
|
5200
5364
|
),
|
|
5201
5365
|
/* @__PURE__ */ (0, import_jsx_runtime46.jsx)(import_radix_ui27.Select.ItemText, { children })
|
|
@@ -5232,7 +5396,7 @@ function SelectScrollUpButton(_a) {
|
|
|
5232
5396
|
className
|
|
5233
5397
|
)
|
|
5234
5398
|
}, props), {
|
|
5235
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
|
|
5399
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(import_lucide_react19.ChevronUpIcon, { className: "size-4" })
|
|
5236
5400
|
})
|
|
5237
5401
|
);
|
|
5238
5402
|
}
|
|
@@ -5251,13 +5415,13 @@ function SelectScrollDownButton(_a) {
|
|
|
5251
5415
|
className
|
|
5252
5416
|
)
|
|
5253
5417
|
}, props), {
|
|
5254
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
|
|
5418
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(import_lucide_react19.ChevronDownIcon, { className: "size-4" })
|
|
5255
5419
|
})
|
|
5256
5420
|
);
|
|
5257
5421
|
}
|
|
5258
5422
|
|
|
5259
5423
|
// components/ui/sheet.tsx
|
|
5260
|
-
var
|
|
5424
|
+
var import_lucide_react20 = require("lucide-react");
|
|
5261
5425
|
var import_radix_ui28 = require("radix-ui");
|
|
5262
5426
|
var import_jsx_runtime47 = require("react/jsx-runtime");
|
|
5263
5427
|
function Sheet(_a) {
|
|
@@ -5323,7 +5487,7 @@ function SheetContent(_a) {
|
|
|
5323
5487
|
children: [
|
|
5324
5488
|
children,
|
|
5325
5489
|
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)(
|
|
5490
|
+
/* @__PURE__ */ (0, import_jsx_runtime47.jsx)(import_lucide_react20.XIcon, { className: "size-4" }),
|
|
5327
5491
|
/* @__PURE__ */ (0, import_jsx_runtime47.jsx)("span", { className: "sr-only", children: "Close" })
|
|
5328
5492
|
] })
|
|
5329
5493
|
]
|
|
@@ -5381,17 +5545,17 @@ function SheetDescription(_a) {
|
|
|
5381
5545
|
}
|
|
5382
5546
|
|
|
5383
5547
|
// components/ui/sidebar.tsx
|
|
5384
|
-
var
|
|
5548
|
+
var React11 = __toESM(require("react"), 1);
|
|
5385
5549
|
var import_class_variance_authority12 = require("class-variance-authority");
|
|
5386
|
-
var
|
|
5550
|
+
var import_lucide_react21 = require("lucide-react");
|
|
5387
5551
|
var import_radix_ui30 = require("radix-ui");
|
|
5388
5552
|
|
|
5389
5553
|
// hooks/use-mobile.ts
|
|
5390
|
-
var
|
|
5554
|
+
var React9 = __toESM(require("react"), 1);
|
|
5391
5555
|
var MOBILE_BREAKPOINT = 768;
|
|
5392
5556
|
function useIsMobile() {
|
|
5393
|
-
const [isMobile, setIsMobile] =
|
|
5394
|
-
|
|
5557
|
+
const [isMobile, setIsMobile] = React9.useState(void 0);
|
|
5558
|
+
React9.useEffect(() => {
|
|
5395
5559
|
const mql = window.matchMedia(`(max-width: ${MOBILE_BREAKPOINT - 1}px)`);
|
|
5396
5560
|
const onChange = () => {
|
|
5397
5561
|
setIsMobile(window.innerWidth < MOBILE_BREAKPOINT);
|
|
@@ -5417,10 +5581,10 @@ function Skeleton(_a) {
|
|
|
5417
5581
|
}
|
|
5418
5582
|
|
|
5419
5583
|
// components/ui/tooltip.tsx
|
|
5420
|
-
var
|
|
5584
|
+
var React10 = __toESM(require("react"), 1);
|
|
5421
5585
|
var import_radix_ui29 = require("radix-ui");
|
|
5422
5586
|
var import_jsx_runtime49 = require("react/jsx-runtime");
|
|
5423
|
-
var TooltipModeContext =
|
|
5587
|
+
var TooltipModeContext = React10.createContext("tooltip");
|
|
5424
5588
|
function TooltipProvider(_a) {
|
|
5425
5589
|
var _b = _a, {
|
|
5426
5590
|
delayDuration = 0
|
|
@@ -5454,7 +5618,7 @@ function TooltipTrigger(_a) {
|
|
|
5454
5618
|
} = _b, props = __objRest(_b, [
|
|
5455
5619
|
"children"
|
|
5456
5620
|
]);
|
|
5457
|
-
const mode =
|
|
5621
|
+
const mode = React10.useContext(TooltipModeContext);
|
|
5458
5622
|
if (mode === "drawer") {
|
|
5459
5623
|
return /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(DrawerTrigger, __spreadProps(__spreadValues({ "data-slot": "tooltip-trigger" }, props), { children }));
|
|
5460
5624
|
}
|
|
@@ -5476,7 +5640,7 @@ function TooltipContent(_a) {
|
|
|
5476
5640
|
"closeLabel",
|
|
5477
5641
|
"children"
|
|
5478
5642
|
]);
|
|
5479
|
-
const mode =
|
|
5643
|
+
const mode = React10.useContext(TooltipModeContext);
|
|
5480
5644
|
if (mode === "drawer") {
|
|
5481
5645
|
return /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)(DrawerContent, { "data-slot": "tooltip-content", "data-variant": variant, children: [
|
|
5482
5646
|
/* @__PURE__ */ (0, import_jsx_runtime49.jsx)(DrawerHeader, { children: /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(DrawerTitle, { children: title }) }),
|
|
@@ -5514,9 +5678,9 @@ var SIDEBAR_WIDTH = "16rem";
|
|
|
5514
5678
|
var SIDEBAR_WIDTH_MOBILE = "18rem";
|
|
5515
5679
|
var SIDEBAR_WIDTH_ICON = "3rem";
|
|
5516
5680
|
var SIDEBAR_KEYBOARD_SHORTCUT = "b";
|
|
5517
|
-
var SidebarContext =
|
|
5681
|
+
var SidebarContext = React11.createContext(null);
|
|
5518
5682
|
function useSidebar() {
|
|
5519
|
-
const context =
|
|
5683
|
+
const context = React11.useContext(SidebarContext);
|
|
5520
5684
|
if (!context) {
|
|
5521
5685
|
throw new Error("useSidebar must be used within a SidebarProvider.");
|
|
5522
5686
|
}
|
|
@@ -5539,10 +5703,10 @@ function SidebarProvider(_a) {
|
|
|
5539
5703
|
"children"
|
|
5540
5704
|
]);
|
|
5541
5705
|
const isMobile = useIsMobile();
|
|
5542
|
-
const [openMobile, setOpenMobile] =
|
|
5543
|
-
const [_open, _setOpen] =
|
|
5706
|
+
const [openMobile, setOpenMobile] = React11.useState(false);
|
|
5707
|
+
const [_open, _setOpen] = React11.useState(defaultOpen);
|
|
5544
5708
|
const open = openProp != null ? openProp : _open;
|
|
5545
|
-
const setOpen =
|
|
5709
|
+
const setOpen = React11.useCallback(
|
|
5546
5710
|
(value) => {
|
|
5547
5711
|
const openState = typeof value === "function" ? value(open) : value;
|
|
5548
5712
|
if (setOpenProp) {
|
|
@@ -5554,10 +5718,10 @@ function SidebarProvider(_a) {
|
|
|
5554
5718
|
},
|
|
5555
5719
|
[setOpenProp, open]
|
|
5556
5720
|
);
|
|
5557
|
-
const toggleSidebar =
|
|
5721
|
+
const toggleSidebar = React11.useCallback(() => {
|
|
5558
5722
|
return isMobile ? setOpenMobile((open2) => !open2) : setOpen((open2) => !open2);
|
|
5559
5723
|
}, [isMobile, setOpen, setOpenMobile]);
|
|
5560
|
-
|
|
5724
|
+
React11.useEffect(() => {
|
|
5561
5725
|
const handleKeyDown = (event) => {
|
|
5562
5726
|
if (event.key === SIDEBAR_KEYBOARD_SHORTCUT && (event.metaKey || event.ctrlKey)) {
|
|
5563
5727
|
event.preventDefault();
|
|
@@ -5568,7 +5732,7 @@ function SidebarProvider(_a) {
|
|
|
5568
5732
|
return () => window.removeEventListener("keydown", handleKeyDown);
|
|
5569
5733
|
}, [toggleSidebar]);
|
|
5570
5734
|
const state = open ? "expanded" : "collapsed";
|
|
5571
|
-
const contextValue =
|
|
5735
|
+
const contextValue = React11.useMemo(
|
|
5572
5736
|
() => ({
|
|
5573
5737
|
state,
|
|
5574
5738
|
open,
|
|
@@ -5720,7 +5884,7 @@ function SidebarTrigger(_a) {
|
|
|
5720
5884
|
}
|
|
5721
5885
|
}, props), {
|
|
5722
5886
|
children: [
|
|
5723
|
-
/* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
|
|
5887
|
+
/* @__PURE__ */ (0, import_jsx_runtime50.jsx)(import_lucide_react21.PanelLeftIcon, {}),
|
|
5724
5888
|
/* @__PURE__ */ (0, import_jsx_runtime50.jsx)("span", { className: "sr-only", children: "Toggle Sidebar" })
|
|
5725
5889
|
]
|
|
5726
5890
|
})
|
|
@@ -6146,7 +6310,7 @@ function SidebarMenuSubButton(_a) {
|
|
|
6146
6310
|
}
|
|
6147
6311
|
|
|
6148
6312
|
// components/ui/slider.tsx
|
|
6149
|
-
var
|
|
6313
|
+
var React12 = __toESM(require("react"), 1);
|
|
6150
6314
|
var import_radix_ui31 = require("radix-ui");
|
|
6151
6315
|
var import_jsx_runtime51 = require("react/jsx-runtime");
|
|
6152
6316
|
function Slider(_a) {
|
|
@@ -6163,7 +6327,7 @@ function Slider(_a) {
|
|
|
6163
6327
|
"min",
|
|
6164
6328
|
"max"
|
|
6165
6329
|
]);
|
|
6166
|
-
const _values =
|
|
6330
|
+
const _values = React12.useMemo(
|
|
6167
6331
|
() => Array.isArray(value) ? value : Array.isArray(defaultValue) ? defaultValue : [min, max],
|
|
6168
6332
|
[value, defaultValue, min, max]
|
|
6169
6333
|
);
|
|
@@ -6213,7 +6377,7 @@ function Slider(_a) {
|
|
|
6213
6377
|
}
|
|
6214
6378
|
|
|
6215
6379
|
// components/ui/toast.tsx
|
|
6216
|
-
var
|
|
6380
|
+
var import_lucide_react22 = require("lucide-react");
|
|
6217
6381
|
var import_next_themes = require("next-themes");
|
|
6218
6382
|
var import_sonner = require("sonner");
|
|
6219
6383
|
var import_jsx_runtime52 = require("react/jsx-runtime");
|
|
@@ -6230,11 +6394,11 @@ var Toaster = (_a) => {
|
|
|
6230
6394
|
visibleToasts: isMobile ? 1 : 3,
|
|
6231
6395
|
duration: 4e3,
|
|
6232
6396
|
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)(
|
|
6397
|
+
success: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_lucide_react22.CircleCheckIcon, { className: "size-4" }),
|
|
6398
|
+
info: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_lucide_react22.InfoIcon, { className: "size-4" }),
|
|
6399
|
+
warning: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_lucide_react22.TriangleAlertIcon, { className: "size-4" }),
|
|
6400
|
+
error: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_lucide_react22.OctagonXIcon, { className: "size-4" }),
|
|
6401
|
+
loading: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_lucide_react22.Loader2Icon, { className: "size-4 animate-spin" })
|
|
6238
6402
|
},
|
|
6239
6403
|
toastOptions: {
|
|
6240
6404
|
classNames: {
|
|
@@ -6255,8 +6419,8 @@ var Toaster = (_a) => {
|
|
|
6255
6419
|
};
|
|
6256
6420
|
|
|
6257
6421
|
// components/ui/stepper.tsx
|
|
6258
|
-
var
|
|
6259
|
-
var
|
|
6422
|
+
var React13 = __toESM(require("react"), 1);
|
|
6423
|
+
var import_lucide_react23 = require("lucide-react");
|
|
6260
6424
|
var import_jsx_runtime53 = require("react/jsx-runtime");
|
|
6261
6425
|
function clamp(value, min, max) {
|
|
6262
6426
|
return Math.min(Math.max(value, min), max);
|
|
@@ -6291,16 +6455,16 @@ function Stepper({
|
|
|
6291
6455
|
}) {
|
|
6292
6456
|
const { container, buttonSize, iconClass } = stepperSizeConfig[size];
|
|
6293
6457
|
const isControlled = controlledValue !== void 0;
|
|
6294
|
-
const [internalValue, setInternalValue] =
|
|
6458
|
+
const [internalValue, setInternalValue] = React13.useState(
|
|
6295
6459
|
clamp(defaultValue, min, max)
|
|
6296
6460
|
);
|
|
6297
6461
|
const currentValue = isControlled ? controlledValue : internalValue;
|
|
6298
6462
|
const decimalPlaces = getDecimalPlaces(step);
|
|
6299
|
-
const [displayString, setDisplayString] =
|
|
6463
|
+
const [displayString, setDisplayString] = React13.useState(
|
|
6300
6464
|
formatValue(currentValue, decimalPlaces)
|
|
6301
6465
|
);
|
|
6302
|
-
const [isFocused, setIsFocused] =
|
|
6303
|
-
|
|
6466
|
+
const [isFocused, setIsFocused] = React13.useState(false);
|
|
6467
|
+
React13.useEffect(() => {
|
|
6304
6468
|
if (!isFocused) {
|
|
6305
6469
|
setDisplayString(formatValue(currentValue, decimalPlaces));
|
|
6306
6470
|
}
|
|
@@ -6365,7 +6529,7 @@ function Stepper({
|
|
|
6365
6529
|
onClick: handleDecrement,
|
|
6366
6530
|
disabled: disabled || currentValue <= min,
|
|
6367
6531
|
"aria-label": "Decrease value",
|
|
6368
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
|
|
6532
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_lucide_react23.Minus, { className: iconClass })
|
|
6369
6533
|
}
|
|
6370
6534
|
) }),
|
|
6371
6535
|
/* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
|
|
@@ -6400,7 +6564,7 @@ function Stepper({
|
|
|
6400
6564
|
onClick: handleIncrement,
|
|
6401
6565
|
disabled: disabled || currentValue >= max,
|
|
6402
6566
|
"aria-label": "Increase value",
|
|
6403
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
|
|
6567
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_lucide_react23.Plus, { className: iconClass })
|
|
6404
6568
|
}
|
|
6405
6569
|
)
|
|
6406
6570
|
] })
|
|
@@ -6658,7 +6822,7 @@ function TabsContent(_a) {
|
|
|
6658
6822
|
}
|
|
6659
6823
|
|
|
6660
6824
|
// components/ui/ticket-card.tsx
|
|
6661
|
-
var
|
|
6825
|
+
var import_lucide_react24 = require("lucide-react");
|
|
6662
6826
|
var import_jsx_runtime57 = require("react/jsx-runtime");
|
|
6663
6827
|
function formatBalanceValue(raw) {
|
|
6664
6828
|
const match = raw.match(/^(\D*)([\d,]+(?:\.\d+)?)(\D*)$/);
|
|
@@ -6734,7 +6898,7 @@ function TicketCard({
|
|
|
6734
6898
|
}
|
|
6735
6899
|
}
|
|
6736
6900
|
),
|
|
6737
|
-
/* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
|
|
6901
|
+
/* @__PURE__ */ (0, import_jsx_runtime57.jsx)(import_lucide_react24.ArrowRight, { className: "size-4 text-on-primary" }),
|
|
6738
6902
|
/* @__PURE__ */ (0, import_jsx_runtime57.jsx)("span", { className: "text-sm font-semibold text-on-primary", children: stubLabel })
|
|
6739
6903
|
]
|
|
6740
6904
|
}
|
|
@@ -6774,7 +6938,7 @@ function CreditTicketCard({
|
|
|
6774
6938
|
type: "button",
|
|
6775
6939
|
"aria-label": `More info about ${badgeLabel.toLowerCase()}`,
|
|
6776
6940
|
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)(
|
|
6941
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(import_lucide_react24.Info, { className: "!size-3.5", strokeWidth: 2 })
|
|
6778
6942
|
}
|
|
6779
6943
|
) }),
|
|
6780
6944
|
/* @__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 +7023,7 @@ function CreditTicketCard({
|
|
|
6859
7023
|
}
|
|
6860
7024
|
}
|
|
6861
7025
|
),
|
|
6862
|
-
/* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
|
|
7026
|
+
/* @__PURE__ */ (0, import_jsx_runtime57.jsx)(import_lucide_react24.ArrowRight, { className: "size-4 text-on-primary" }),
|
|
6863
7027
|
/* @__PURE__ */ (0, import_jsx_runtime57.jsx)("span", { className: "text-sm font-semibold text-on-primary", children: stubLabel })
|
|
6864
7028
|
]
|
|
6865
7029
|
}
|
|
@@ -6912,10 +7076,10 @@ function Toggle(_a) {
|
|
|
6912
7076
|
}
|
|
6913
7077
|
|
|
6914
7078
|
// components/ui/toggle-group.tsx
|
|
6915
|
-
var
|
|
7079
|
+
var React14 = __toESM(require("react"), 1);
|
|
6916
7080
|
var import_radix_ui35 = require("radix-ui");
|
|
6917
7081
|
var import_jsx_runtime59 = require("react/jsx-runtime");
|
|
6918
|
-
var ToggleGroupContext =
|
|
7082
|
+
var ToggleGroupContext = React14.createContext({
|
|
6919
7083
|
size: "default",
|
|
6920
7084
|
variant: "default",
|
|
6921
7085
|
spacing: 0
|
|
@@ -6963,7 +7127,7 @@ function ToggleGroupItem(_a) {
|
|
|
6963
7127
|
"variant",
|
|
6964
7128
|
"size"
|
|
6965
7129
|
]);
|
|
6966
|
-
const context =
|
|
7130
|
+
const context = React14.useContext(ToggleGroupContext);
|
|
6967
7131
|
return /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(
|
|
6968
7132
|
import_radix_ui35.ToggleGroup.Item,
|
|
6969
7133
|
__spreadProps(__spreadValues({
|
|
@@ -7069,7 +7233,7 @@ function ResultDialog({
|
|
|
7069
7233
|
}
|
|
7070
7234
|
|
|
7071
7235
|
// components/blocks/header-navigation-block.tsx
|
|
7072
|
-
var
|
|
7236
|
+
var import_lucide_react25 = require("lucide-react");
|
|
7073
7237
|
var import_jsx_runtime61 = require("react/jsx-runtime");
|
|
7074
7238
|
function HeaderNavigationBlock({
|
|
7075
7239
|
onBack,
|
|
@@ -7079,8 +7243,8 @@ function HeaderNavigationBlock({
|
|
|
7079
7243
|
actions
|
|
7080
7244
|
}) {
|
|
7081
7245
|
var _a;
|
|
7082
|
-
return /* @__PURE__ */ (0, import_jsx_runtime61.jsx)("div", { className: "w-full min-w-80 max-w-layout-diagram-small
|
|
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)(
|
|
7246
|
+
return /* @__PURE__ */ (0, import_jsx_runtime61.jsx)("div", { className: "w-full min-w-80 max-w-layout-diagram-small 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: [
|
|
7247
|
+
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
7248
|
/* @__PURE__ */ (0, import_jsx_runtime61.jsxs)("div", { className: "flex min-w-0 flex-1 items-center justify-center gap-2", children: [
|
|
7085
7249
|
badge && /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(Badge, { variant: (_a = badge.variant) != null ? _a : "fill-warning", size: "sm", children: badge.label }),
|
|
7086
7250
|
/* @__PURE__ */ (0, import_jsx_runtime61.jsx)("span", { className: "font-display font-semibold tabular-nums text-on-prominent", children: balance.amount }),
|
|
@@ -7101,7 +7265,7 @@ function HistoryButton({
|
|
|
7101
7265
|
const label = show ? count > 99 ? "99+" : String(count) : null;
|
|
7102
7266
|
const ariaLabel = ariaLabelOverride != null ? ariaLabelOverride : show ? `Open history, ${count} new` : "Open history";
|
|
7103
7267
|
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)(
|
|
7268
|
+
/* @__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
7269
|
show && /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
|
|
7106
7270
|
"span",
|
|
7107
7271
|
{
|
|
@@ -7160,7 +7324,7 @@ function FAQBlock({
|
|
|
7160
7324
|
}
|
|
7161
7325
|
|
|
7162
7326
|
// components/blocks/hero-block.tsx
|
|
7163
|
-
var
|
|
7327
|
+
var import_lucide_react26 = require("lucide-react");
|
|
7164
7328
|
var import_jsx_runtime63 = require("react/jsx-runtime");
|
|
7165
7329
|
function HeroBlock({
|
|
7166
7330
|
layout = "centered",
|
|
@@ -7180,7 +7344,7 @@ function HeroBlock({
|
|
|
7180
7344
|
] }),
|
|
7181
7345
|
/* @__PURE__ */ (0, import_jsx_runtime63.jsxs)(Button, { size: "sm", onClick: primaryCta.onClick, children: [
|
|
7182
7346
|
primaryCta.label,
|
|
7183
|
-
primaryCta.trailingArrow !== false && /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
|
|
7347
|
+
primaryCta.trailingArrow !== false && /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(import_lucide_react26.ArrowRight, { className: "size-4" })
|
|
7184
7348
|
] })
|
|
7185
7349
|
] }) });
|
|
7186
7350
|
}
|
|
@@ -7216,12 +7380,12 @@ function TaglinePill({
|
|
|
7216
7380
|
label,
|
|
7217
7381
|
suffix && /* @__PURE__ */ (0, import_jsx_runtime63.jsx)("span", { className: "text-on-subtle", children: ` \xB7 ${suffix}` })
|
|
7218
7382
|
] }),
|
|
7219
|
-
/* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
|
|
7383
|
+
/* @__PURE__ */ (0, import_jsx_runtime63.jsx)(import_lucide_react26.ArrowUpRight, { className: "size-4 text-on-subtle shrink-0", "aria-hidden": "true" })
|
|
7220
7384
|
] });
|
|
7221
7385
|
}
|
|
7222
7386
|
|
|
7223
7387
|
// components/blocks/auth-block.tsx
|
|
7224
|
-
var
|
|
7388
|
+
var React15 = __toESM(require("react"), 1);
|
|
7225
7389
|
var import_jsx_runtime64 = require("react/jsx-runtime");
|
|
7226
7390
|
function AuthBlock({
|
|
7227
7391
|
mode,
|
|
@@ -7237,7 +7401,7 @@ function AuthBlock({
|
|
|
7237
7401
|
const ctaText = mode === "sign-in" ? "Sign in" : "Sign up";
|
|
7238
7402
|
const footerPrompt = mode === "sign-in" ? "Don't have an account?" : "Already have an account?";
|
|
7239
7403
|
const footerLinkLabel = mode === "sign-in" ? "Sign up" : "Log in";
|
|
7240
|
-
const [email, setEmail] =
|
|
7404
|
+
const [email, setEmail] = React15.useState("");
|
|
7241
7405
|
return /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)("div", { className: "flex flex-col items-center gap-6 w-full", children: [
|
|
7242
7406
|
/* @__PURE__ */ (0, import_jsx_runtime64.jsxs)("div", { className: "flex items-center gap-2", children: [
|
|
7243
7407
|
/* @__PURE__ */ (0, import_jsx_runtime64.jsx)("img", { src: logoSrc, alt: wordmark, className: "size-8 object-contain" }),
|
|
@@ -7305,12 +7469,12 @@ function ProviderButton({ provider }) {
|
|
|
7305
7469
|
}
|
|
7306
7470
|
|
|
7307
7471
|
// components/blocks/navbar-block.tsx
|
|
7308
|
-
var
|
|
7309
|
-
var
|
|
7472
|
+
var React16 = __toESM(require("react"), 1);
|
|
7473
|
+
var import_lucide_react27 = require("lucide-react");
|
|
7310
7474
|
var import_jsx_runtime65 = require("react/jsx-runtime");
|
|
7311
7475
|
function NavBarBlock({ brand, links, signIn, signUp }) {
|
|
7312
7476
|
var _a, _b, _c, _d;
|
|
7313
|
-
const [mobileMenuOpen, setMobileMenuOpen] =
|
|
7477
|
+
const [mobileMenuOpen, setMobileMenuOpen] = React16.useState(false);
|
|
7314
7478
|
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
7479
|
/* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("div", { className: "flex items-center justify-between px-layout-margin-inline py-3", children: [
|
|
7316
7480
|
/* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("div", { className: "flex items-center gap-6", children: [
|
|
@@ -7345,7 +7509,7 @@ function NavBarBlock({ brand, links, signIn, signUp }) {
|
|
|
7345
7509
|
"aria-expanded": mobileMenuOpen,
|
|
7346
7510
|
className: "min-[600px]:hidden",
|
|
7347
7511
|
onClick: () => setMobileMenuOpen((prev) => !prev),
|
|
7348
|
-
children: mobileMenuOpen ? /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
|
|
7512
|
+
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
7513
|
}
|
|
7350
7514
|
)
|
|
7351
7515
|
] }),
|
|
@@ -7370,8 +7534,8 @@ function NavBarBlock({ brand, links, signIn, signUp }) {
|
|
|
7370
7534
|
}
|
|
7371
7535
|
|
|
7372
7536
|
// components/blocks/open-positions-block.tsx
|
|
7373
|
-
var
|
|
7374
|
-
var
|
|
7537
|
+
var React17 = __toESM(require("react"), 1);
|
|
7538
|
+
var import_lucide_react28 = require("lucide-react");
|
|
7375
7539
|
var import_jsx_runtime66 = require("react/jsx-runtime");
|
|
7376
7540
|
function OpenPositionsBlock({
|
|
7377
7541
|
trigger,
|
|
@@ -7388,7 +7552,7 @@ function OpenPositionsBlock({
|
|
|
7388
7552
|
/* @__PURE__ */ (0, import_jsx_runtime66.jsxs)(DrawerContent, { className: "p-0 flex flex-col", children: [
|
|
7389
7553
|
/* @__PURE__ */ (0, import_jsx_runtime66.jsxs)(DrawerHeader, { className: "flex-row items-center justify-between px-4 py-3 shrink-0 text-left", children: [
|
|
7390
7554
|
/* @__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)(
|
|
7555
|
+
/* @__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
7556
|
] }),
|
|
7393
7557
|
/* @__PURE__ */ (0, import_jsx_runtime66.jsx)(Separator, {}),
|
|
7394
7558
|
body
|
|
@@ -7400,7 +7564,7 @@ function OpenPositionsBlock({
|
|
|
7400
7564
|
/* @__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
7565
|
/* @__PURE__ */ (0, import_jsx_runtime66.jsxs)(SheetHeader, { className: "flex-row items-center justify-between px-4 py-3 shrink-0", children: [
|
|
7402
7566
|
/* @__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)(
|
|
7567
|
+
/* @__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
7568
|
] }),
|
|
7405
7569
|
/* @__PURE__ */ (0, import_jsx_runtime66.jsx)(Separator, {}),
|
|
7406
7570
|
body
|
|
@@ -7412,7 +7576,7 @@ function PositionsList({
|
|
|
7412
7576
|
onViewHistory
|
|
7413
7577
|
}) {
|
|
7414
7578
|
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)(
|
|
7579
|
+
/* @__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
7580
|
/* @__PURE__ */ (0, import_jsx_runtime66.jsx)(PositionRow, { position: pos }),
|
|
7417
7581
|
i < positions.length - 1 && /* @__PURE__ */ (0, import_jsx_runtime66.jsx)("div", { className: "h-px mx-4 bg-border-subtle" })
|
|
7418
7582
|
] }, i)) }),
|
|
@@ -7470,7 +7634,7 @@ function PnlMeta({ pnl, win, stake }) {
|
|
|
7470
7634
|
}
|
|
7471
7635
|
function DefaultEmptyState({ onViewHistory }) {
|
|
7472
7636
|
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)(
|
|
7637
|
+
/* @__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
7638
|
/* @__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
7639
|
/* @__PURE__ */ (0, import_jsx_runtime66.jsx)(Button, { variant: "tertiary", size: "md", onClick: onViewHistory, children: "View transaction history" })
|
|
7476
7640
|
] }) });
|
|
@@ -7482,7 +7646,6 @@ function DefaultEmptyState({ onViewHistory }) {
|
|
|
7482
7646
|
AccordionItem,
|
|
7483
7647
|
AccordionTrigger,
|
|
7484
7648
|
Alert,
|
|
7485
|
-
AlertDescription,
|
|
7486
7649
|
AlertDialog,
|
|
7487
7650
|
AlertDialogAction,
|
|
7488
7651
|
AlertDialogCancel,
|
|
@@ -7495,7 +7658,6 @@ function DefaultEmptyState({ onViewHistory }) {
|
|
|
7495
7658
|
AlertDialogPortal,
|
|
7496
7659
|
AlertDialogTitle,
|
|
7497
7660
|
AlertDialogTrigger,
|
|
7498
|
-
AlertTitle,
|
|
7499
7661
|
AspectRatio,
|
|
7500
7662
|
AuthBlock,
|
|
7501
7663
|
Avatar,
|
|
@@ -7791,6 +7953,7 @@ function DefaultEmptyState({ onViewHistory }) {
|
|
|
7791
7953
|
TooltipContent,
|
|
7792
7954
|
TooltipProvider,
|
|
7793
7955
|
TooltipTrigger,
|
|
7956
|
+
alertVariants,
|
|
7794
7957
|
badgeVariants,
|
|
7795
7958
|
buttonVariants,
|
|
7796
7959
|
cn,
|