@trading-game/design-intelligence-layer 1.0.4 → 1.0.6
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/AGENTS.md +3 -3
- package/README.md +1 -1
- package/dist/index.cjs +176 -138
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +40 -10
- package/dist/index.d.ts +40 -10
- package/dist/index.js +126 -88
- package/dist/index.js.map +1 -1
- package/docs/components/badge.md +2 -0
- package/docs/components/button.md +4 -2
- package/docs/components/checkbox.md +1 -1
- package/docs/components/drawer.md +13 -3
- package/docs/components/native-select.md +1 -1
- package/docs/components/radio-group.md +1 -1
- package/docs/components/stepper.md +2 -1
- package/docs/components/switch.md +1 -1
- package/docs/components/toggle.md +1 -1
- package/docs/foundations/colors.md +3 -3
- package/package.json +1 -1
- package/src/styles.css +165 -28
package/dist/index.cjs
CHANGED
|
@@ -496,7 +496,7 @@ var buttonVariants = (0, import_class_variance_authority.cva)(
|
|
|
496
496
|
variants: {
|
|
497
497
|
variant: {
|
|
498
498
|
// Primary brand blue (#2323FF)
|
|
499
|
-
primary: "bg-background-brand-default text-text-on-brand-static hover:bg-background-brand-hover active:bg-background-brand-pressed active:opacity-100 disabled:
|
|
499
|
+
primary: "bg-background-brand-default text-text-on-brand-static hover:bg-background-brand-hover active:bg-background-brand-pressed active:opacity-100 disabled:opacity-(--opacity-disabled)",
|
|
500
500
|
// Primary Inverse — white bg + blue text; for use on dark/coloured surfaces
|
|
501
501
|
// On-brand family — for buttons standing on a brand-coloured surface
|
|
502
502
|
// (NOT theme inverses): white pill with primary ink, white outline,
|
|
@@ -515,7 +515,7 @@ var buttonVariants = (0, import_class_variance_authority.cva)(
|
|
|
515
515
|
// (white-alpha-32 = 1.84:1 on brand, against 1.71:1 here) so both
|
|
516
516
|
// read as the same quiet edge. Its contrast is higher only because it
|
|
517
517
|
// has no fill behind it — there, the border IS the button.
|
|
518
|
-
secondary: "bg-background-primary-surface border-[1.5px] border-border-control-default text-text-prominent-default hover:bg-background-secondary-surface
|
|
518
|
+
secondary: "button-disabled-secondary bg-background-primary-surface border-[1.5px] border-border-control-default text-text-prominent-default hover:bg-background-secondary-surface",
|
|
519
519
|
// Secondary Inverse — white border + white text; for use on dark/coloured surfaces
|
|
520
520
|
"secondary-on-brand": "bg-transparent border-[1.5px] border-(--primitive-white-alpha-32) text-text-on-brand-static hover:bg-(--primitive-white-alpha-8) disabled:border-(--primitive-white-alpha-16) disabled:text-text-on-brand-disabled-default",
|
|
521
521
|
tertiary: "bg-transparent text-text-prominent-default hover:bg-background-hover-default disabled:text-text-disabled-default",
|
|
@@ -526,7 +526,7 @@ var buttonVariants = (0, import_class_variance_authority.cva)(
|
|
|
526
526
|
// hover/pressed via the state-layer glazes stacked over the solid
|
|
527
527
|
// fill); `frosted-on-brand` is the white frost for coloured/art
|
|
528
528
|
// surfaces (hover thickens the frost, press thins it).
|
|
529
|
-
frosted: "bg-background-brand-selected text-text-brand-selected active:opacity-100 hover:[background-image:linear-gradient(var(--background-hover-default),var(--background-hover-default))] active:[background-image:linear-gradient(var(--background-pressed-default),var(--background-pressed-default))] disabled:
|
|
529
|
+
frosted: "bg-background-brand-selected text-text-brand-selected active:opacity-100 hover:[background-image:linear-gradient(var(--background-hover-default),var(--background-hover-default))] active:[background-image:linear-gradient(var(--background-pressed-default),var(--background-pressed-default))] disabled:opacity-(--opacity-disabled-frosted)",
|
|
530
530
|
"frosted-on-brand": "bg-(--primitive-white-alpha-24) backdrop-blur-md text-text-on-brand-static hover:bg-(--primitive-white-alpha-32) active:bg-(--primitive-white-alpha-16) active:opacity-100 disabled:bg-(--primitive-white-alpha-8) disabled:text-text-on-brand-disabled-default",
|
|
531
531
|
/* @deprecated aliases — shimmer became the `shimmer` boolean prop;
|
|
532
532
|
the inverse names became the on-brand family; `glass` became
|
|
@@ -2788,7 +2788,7 @@ function Checkbox(_a) {
|
|
|
2788
2788
|
__spreadProps(__spreadValues({
|
|
2789
2789
|
"data-slot": "checkbox",
|
|
2790
2790
|
className: cn(
|
|
2791
|
-
"peer size-4 shrink-0 rounded-2xs border border-border-default-default bg-background-primary-surface transition-colors outline-none focus-visible:border-ring-focus-default focus-visible:ring-[3px] focus-visible:ring-ring-focus-strong disabled:cursor-not-allowed disabled:
|
|
2791
|
+
"peer size-4 shrink-0 rounded-2xs border border-border-default-default bg-background-primary-surface transition-colors outline-none focus-visible:border-ring-focus-default focus-visible:ring-[3px] focus-visible:ring-ring-focus-strong disabled:cursor-not-allowed disabled:opacity-(--opacity-disabled) data-[state=checked]:border-transparent data-[state=checked]:bg-background-brand-default data-[state=checked]:text-text-on-brand-static",
|
|
2792
2792
|
className
|
|
2793
2793
|
)
|
|
2794
2794
|
}, props), {
|
|
@@ -3337,6 +3337,7 @@ function ContextMenuShortcut(_a) {
|
|
|
3337
3337
|
}
|
|
3338
3338
|
|
|
3339
3339
|
// components/ui/drawer.tsx
|
|
3340
|
+
var import_lucide_react14 = require("lucide-react");
|
|
3340
3341
|
var import_vaul = require("vaul");
|
|
3341
3342
|
var import_jsx_runtime23 = require("react/jsx-runtime");
|
|
3342
3343
|
function Drawer(_a) {
|
|
@@ -3375,10 +3376,12 @@ function DrawerOverlay(_a) {
|
|
|
3375
3376
|
function DrawerContent(_a) {
|
|
3376
3377
|
var _b = _a, {
|
|
3377
3378
|
className,
|
|
3378
|
-
children
|
|
3379
|
+
children,
|
|
3380
|
+
dismiss = "handle"
|
|
3379
3381
|
} = _b, props = __objRest(_b, [
|
|
3380
3382
|
"className",
|
|
3381
|
-
"children"
|
|
3383
|
+
"children",
|
|
3384
|
+
"dismiss"
|
|
3382
3385
|
]);
|
|
3383
3386
|
return /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(DrawerPortal, { "data-slot": "drawer-portal", children: [
|
|
3384
3387
|
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(DrawerOverlay, {}),
|
|
@@ -3396,7 +3399,15 @@ function DrawerContent(_a) {
|
|
|
3396
3399
|
)
|
|
3397
3400
|
}, props), {
|
|
3398
3401
|
children: [
|
|
3399
|
-
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)("div", { className: "mx-auto mt-4 hidden h-2 w-[100px] shrink-0 rounded-full bg-border-default-default group-data-[vaul-drawer-direction=bottom]/drawer-content:block" }),
|
|
3402
|
+
dismiss === "handle" ? /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("div", { className: "mx-auto mt-4 hidden h-2 w-[100px] shrink-0 rounded-full bg-border-default-default group-data-[vaul-drawer-direction=bottom]/drawer-content:block" }) : /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("div", { className: "flex shrink-0 justify-end p-4 pb-0", children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_vaul.Drawer.Close, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
3403
|
+
NavigationButton,
|
|
3404
|
+
{
|
|
3405
|
+
"data-slot": "drawer-close",
|
|
3406
|
+
size: "sm",
|
|
3407
|
+
"aria-label": "Close",
|
|
3408
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_lucide_react14.XIcon, { className: "size-4" })
|
|
3409
|
+
}
|
|
3410
|
+
) }) }),
|
|
3400
3411
|
children
|
|
3401
3412
|
]
|
|
3402
3413
|
})
|
|
@@ -3456,7 +3467,7 @@ function DrawerDescription(_a) {
|
|
|
3456
3467
|
}
|
|
3457
3468
|
|
|
3458
3469
|
// components/ui/dropdown-menu.tsx
|
|
3459
|
-
var
|
|
3470
|
+
var import_lucide_react15 = require("lucide-react");
|
|
3460
3471
|
var import_radix_ui14 = require("radix-ui");
|
|
3461
3472
|
var import_jsx_runtime24 = require("react/jsx-runtime");
|
|
3462
3473
|
function DropdownMenu(_a) {
|
|
@@ -3544,7 +3555,7 @@ function DropdownMenuCheckboxItem(_a) {
|
|
|
3544
3555
|
checked
|
|
3545
3556
|
}, props), {
|
|
3546
3557
|
children: [
|
|
3547
|
-
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)("span", { className: "pointer-events-none absolute left-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_radix_ui14.DropdownMenu.ItemIndicator, { children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
|
|
3558
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)("span", { className: "pointer-events-none absolute left-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_radix_ui14.DropdownMenu.ItemIndicator, { children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_lucide_react15.CheckIcon, { className: "size-4" }) }) }),
|
|
3548
3559
|
children
|
|
3549
3560
|
]
|
|
3550
3561
|
})
|
|
@@ -3577,7 +3588,7 @@ function DropdownMenuRadioItem(_a) {
|
|
|
3577
3588
|
)
|
|
3578
3589
|
}, props), {
|
|
3579
3590
|
children: [
|
|
3580
|
-
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)("span", { className: "pointer-events-none absolute left-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_radix_ui14.DropdownMenu.ItemIndicator, { children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
|
|
3591
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)("span", { className: "pointer-events-none absolute left-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_radix_ui14.DropdownMenu.ItemIndicator, { children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_lucide_react15.CircleIcon, { className: "size-2 fill-current" }) }) }),
|
|
3581
3592
|
children
|
|
3582
3593
|
]
|
|
3583
3594
|
})
|
|
@@ -3660,7 +3671,7 @@ function DropdownMenuSubTrigger(_a) {
|
|
|
3660
3671
|
}, props), {
|
|
3661
3672
|
children: [
|
|
3662
3673
|
children,
|
|
3663
|
-
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
|
|
3674
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_lucide_react15.ChevronRightIcon, { className: "ml-auto size-4" })
|
|
3664
3675
|
]
|
|
3665
3676
|
})
|
|
3666
3677
|
);
|
|
@@ -4473,7 +4484,7 @@ function InputGroupTextarea(_a) {
|
|
|
4473
4484
|
// components/ui/input-otp.tsx
|
|
4474
4485
|
var React9 = __toESM(require("react"), 1);
|
|
4475
4486
|
var import_input_otp = require("input-otp");
|
|
4476
|
-
var
|
|
4487
|
+
var import_lucide_react16 = require("lucide-react");
|
|
4477
4488
|
var import_jsx_runtime33 = require("react/jsx-runtime");
|
|
4478
4489
|
function InputOTP(_a) {
|
|
4479
4490
|
var _b = _a, {
|
|
@@ -4535,7 +4546,7 @@ function InputOTPSlot(_a) {
|
|
|
4535
4546
|
}
|
|
4536
4547
|
function InputOTPSeparator(_a) {
|
|
4537
4548
|
var props = __objRest(_a, []);
|
|
4538
|
-
return /* @__PURE__ */ (0, import_jsx_runtime33.jsx)("div", __spreadProps(__spreadValues({ "data-slot": "input-otp-separator", role: "separator" }, props), { children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
|
|
4549
|
+
return /* @__PURE__ */ (0, import_jsx_runtime33.jsx)("div", __spreadProps(__spreadValues({ "data-slot": "input-otp-separator", role: "separator" }, props), { children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(import_lucide_react16.MinusIcon, {}) }));
|
|
4539
4550
|
}
|
|
4540
4551
|
|
|
4541
4552
|
// components/ui/item.tsx
|
|
@@ -4801,7 +4812,7 @@ function Link(_a) {
|
|
|
4801
4812
|
}
|
|
4802
4813
|
|
|
4803
4814
|
// components/ui/menubar.tsx
|
|
4804
|
-
var
|
|
4815
|
+
var import_lucide_react17 = require("lucide-react");
|
|
4805
4816
|
var import_radix_ui20 = require("radix-ui");
|
|
4806
4817
|
var import_jsx_runtime36 = require("react/jsx-runtime");
|
|
4807
4818
|
function Menubar(_a) {
|
|
@@ -4924,7 +4935,7 @@ function MenubarCheckboxItem(_a) {
|
|
|
4924
4935
|
checked
|
|
4925
4936
|
}, props), {
|
|
4926
4937
|
children: [
|
|
4927
|
-
/* @__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)(
|
|
4938
|
+
/* @__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_react17.CheckIcon, { className: "size-4" }) }) }),
|
|
4928
4939
|
children
|
|
4929
4940
|
]
|
|
4930
4941
|
})
|
|
@@ -4948,7 +4959,7 @@ function MenubarRadioItem(_a) {
|
|
|
4948
4959
|
)
|
|
4949
4960
|
}, props), {
|
|
4950
4961
|
children: [
|
|
4951
|
-
/* @__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)(
|
|
4962
|
+
/* @__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_react17.CircleIcon, { className: "size-2 fill-current" }) }) }),
|
|
4952
4963
|
children
|
|
4953
4964
|
]
|
|
4954
4965
|
})
|
|
@@ -5031,7 +5042,7 @@ function MenubarSubTrigger(_a) {
|
|
|
5031
5042
|
}, props), {
|
|
5032
5043
|
children: [
|
|
5033
5044
|
children,
|
|
5034
|
-
/* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
|
|
5045
|
+
/* @__PURE__ */ (0, import_jsx_runtime36.jsx)(import_lucide_react17.ChevronRightIcon, { className: "ml-auto" })
|
|
5035
5046
|
]
|
|
5036
5047
|
})
|
|
5037
5048
|
);
|
|
@@ -5055,7 +5066,7 @@ function MenubarSubContent(_a) {
|
|
|
5055
5066
|
}
|
|
5056
5067
|
|
|
5057
5068
|
// components/ui/native-select.tsx
|
|
5058
|
-
var
|
|
5069
|
+
var import_lucide_react18 = require("lucide-react");
|
|
5059
5070
|
var import_jsx_runtime37 = require("react/jsx-runtime");
|
|
5060
5071
|
var sizeClasses = {
|
|
5061
5072
|
sm: "type-native-select-sm h-8 py-1",
|
|
@@ -5084,7 +5095,7 @@ function NativeSelect(_a) {
|
|
|
5084
5095
|
"data-slot": "native-select",
|
|
5085
5096
|
"data-size": resolvedSize,
|
|
5086
5097
|
className: cn(
|
|
5087
|
-
"w-full min-w-0 appearance-none rounded-xs border border-border-default-default bg-background-primary-surface px-3 pr-9 text-text-prominent-default transition-[color,box-shadow] outline-none selection:bg-background-brand-default selection:text-text-on-brand-static disabled:pointer-events-none disabled:cursor-not-allowed disabled:[background-image:linear-gradient(var(--background-disabled-default),var(--background-disabled-default))]",
|
|
5098
|
+
"w-full min-w-0 appearance-none rounded-xs border border-border-default-default bg-background-primary-surface px-3 pr-9 text-text-prominent-default transition-[color,box-shadow] outline-none disabled:text-text-disabled-default selection:bg-background-brand-default selection:text-text-on-brand-static disabled:pointer-events-none disabled:cursor-not-allowed disabled:[background-image:linear-gradient(var(--background-disabled-default),var(--background-disabled-default))]",
|
|
5088
5099
|
"focus-visible:border-ring-focus-default focus-visible:ring-[3px] focus-visible:ring-ring-focus-soft",
|
|
5089
5100
|
sizeClasses[resolvedSize],
|
|
5090
5101
|
className
|
|
@@ -5092,9 +5103,9 @@ function NativeSelect(_a) {
|
|
|
5092
5103
|
}, props)
|
|
5093
5104
|
),
|
|
5094
5105
|
/* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
|
|
5095
|
-
|
|
5106
|
+
import_lucide_react18.ChevronDownIcon,
|
|
5096
5107
|
{
|
|
5097
|
-
className: "pointer-events-none absolute top-1/2 right-3.5 size-4 -translate-y-1/2 text-icon-subtle-default select-none",
|
|
5108
|
+
className: "pointer-events-none absolute top-1/2 right-3.5 size-4 -translate-y-1/2 text-icon-subtle-default select-none group-has-[select:disabled]/native-select:text-icon-disabled-default",
|
|
5098
5109
|
"aria-hidden": "true",
|
|
5099
5110
|
"data-slot": "native-select-icon"
|
|
5100
5111
|
}
|
|
@@ -5124,7 +5135,7 @@ function NativeSelectOptGroup(_a) {
|
|
|
5124
5135
|
|
|
5125
5136
|
// components/ui/navigation-menu.tsx
|
|
5126
5137
|
var import_class_variance_authority12 = require("class-variance-authority");
|
|
5127
|
-
var
|
|
5138
|
+
var import_lucide_react19 = require("lucide-react");
|
|
5128
5139
|
var import_radix_ui21 = require("radix-ui");
|
|
5129
5140
|
var import_jsx_runtime38 = require("react/jsx-runtime");
|
|
5130
5141
|
function NavigationMenu(_a) {
|
|
@@ -5206,7 +5217,7 @@ function NavigationMenuTrigger(_a) {
|
|
|
5206
5217
|
children,
|
|
5207
5218
|
" ",
|
|
5208
5219
|
/* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
|
|
5209
|
-
|
|
5220
|
+
import_lucide_react19.ChevronDownIcon,
|
|
5210
5221
|
{
|
|
5211
5222
|
className: "relative top-[1px] ml-1 size-3 transition duration-slow group-data-[state=open]:rotate-180",
|
|
5212
5223
|
"aria-hidden": "true"
|
|
@@ -5298,7 +5309,7 @@ function NavigationMenuIndicator(_a) {
|
|
|
5298
5309
|
|
|
5299
5310
|
// components/ui/numpad.tsx
|
|
5300
5311
|
var React10 = __toESM(require("react"), 1);
|
|
5301
|
-
var
|
|
5312
|
+
var import_lucide_react20 = require("lucide-react");
|
|
5302
5313
|
var import_jsx_runtime39 = require("react/jsx-runtime");
|
|
5303
5314
|
var LONG_PRESS_MS = 600;
|
|
5304
5315
|
function Numpad(_a) {
|
|
@@ -5381,7 +5392,7 @@ function Numpad(_a) {
|
|
|
5381
5392
|
}
|
|
5382
5393
|
onKeyPress == null ? void 0 : onKeyPress(key);
|
|
5383
5394
|
},
|
|
5384
|
-
children: key === "backspace" ? /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
|
|
5395
|
+
children: key === "backspace" ? /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(import_lucide_react20.Delete, { className: "size-5.5" }) : key
|
|
5385
5396
|
},
|
|
5386
5397
|
key
|
|
5387
5398
|
)
|
|
@@ -5664,7 +5675,7 @@ function Progress(_a) {
|
|
|
5664
5675
|
}
|
|
5665
5676
|
|
|
5666
5677
|
// components/ui/profile-photo.tsx
|
|
5667
|
-
var
|
|
5678
|
+
var import_lucide_react21 = require("lucide-react");
|
|
5668
5679
|
var import_jsx_runtime42 = require("react/jsx-runtime");
|
|
5669
5680
|
var BOX = 112;
|
|
5670
5681
|
var PHOTO = 96;
|
|
@@ -5745,7 +5756,7 @@ function ProfilePhoto(_a) {
|
|
|
5745
5756
|
"data-slot": "profile-photo-image",
|
|
5746
5757
|
className: "absolute flex items-center justify-center overflow-hidden rounded-full bg-background-secondary-surface",
|
|
5747
5758
|
style: { inset: INSET },
|
|
5748
|
-
children: src ? /* @__PURE__ */ (0, import_jsx_runtime42.jsx)("img", { src, alt, className: "size-full object-cover" }) : /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
|
|
5759
|
+
children: src ? /* @__PURE__ */ (0, import_jsx_runtime42.jsx)("img", { src, alt, className: "size-full object-cover" }) : /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(import_lucide_react21.User, { className: "size-10 text-icon-subtle-default", strokeWidth: 1.5, "aria-hidden": "true" })
|
|
5749
5760
|
}
|
|
5750
5761
|
),
|
|
5751
5762
|
onPhotoChange ? (
|
|
@@ -5760,7 +5771,7 @@ function ProfilePhoto(_a) {
|
|
|
5760
5771
|
onClick: onPhotoChange,
|
|
5761
5772
|
"data-slot": "profile-photo-camera",
|
|
5762
5773
|
className: "absolute right-0.5 bottom-5 rounded-full border-2 border-prominent after:absolute after:-inset-2.5 after:content-['']",
|
|
5763
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
|
|
5774
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(import_lucide_react21.Camera, {})
|
|
5764
5775
|
}
|
|
5765
5776
|
)
|
|
5766
5777
|
) : null,
|
|
@@ -5778,7 +5789,7 @@ function ProfilePhoto(_a) {
|
|
|
5778
5789
|
}
|
|
5779
5790
|
|
|
5780
5791
|
// components/ui/radio-group.tsx
|
|
5781
|
-
var
|
|
5792
|
+
var import_lucide_react22 = require("lucide-react");
|
|
5782
5793
|
var import_radix_ui24 = require("radix-ui");
|
|
5783
5794
|
var import_jsx_runtime43 = require("react/jsx-runtime");
|
|
5784
5795
|
function RadioGroup(_a) {
|
|
@@ -5806,7 +5817,7 @@ function RadioGroupItem(_a) {
|
|
|
5806
5817
|
__spreadProps(__spreadValues({
|
|
5807
5818
|
"data-slot": "radio-group-item",
|
|
5808
5819
|
className: cn(
|
|
5809
|
-
"aspect-square size-4 shrink-0 rounded-full border border-border-default-default bg-background-primary-surface transition-[color,box-shadow] outline-none focus-visible:border-ring-focus-default focus-visible:ring-[3px] focus-visible:ring-ring-focus-strong data-[state=checked]:border-border-brand-selected disabled:cursor-not-allowed disabled:
|
|
5820
|
+
"aspect-square size-4 shrink-0 rounded-full border border-border-default-default bg-background-primary-surface transition-[color,box-shadow] outline-none focus-visible:border-ring-focus-default focus-visible:ring-[3px] focus-visible:ring-ring-focus-strong data-[state=checked]:border-border-brand-selected disabled:cursor-not-allowed disabled:opacity-(--opacity-disabled) aria-invalid:border-border-error-default aria-invalid:ring-ring-error-soft",
|
|
5810
5821
|
className
|
|
5811
5822
|
)
|
|
5812
5823
|
}, props), {
|
|
@@ -5815,7 +5826,7 @@ function RadioGroupItem(_a) {
|
|
|
5815
5826
|
{
|
|
5816
5827
|
"data-slot": "radio-group-indicator",
|
|
5817
5828
|
className: "relative flex items-center justify-center",
|
|
5818
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
|
|
5829
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(import_lucide_react22.CircleIcon, { className: "absolute top-1/2 left-1/2 size-2 -translate-x-1/2 -translate-y-1/2 fill-text-brand-selected text-background-brand-default" })
|
|
5819
5830
|
}
|
|
5820
5831
|
)
|
|
5821
5832
|
})
|
|
@@ -5823,7 +5834,7 @@ function RadioGroupItem(_a) {
|
|
|
5823
5834
|
}
|
|
5824
5835
|
|
|
5825
5836
|
// components/ui/resizable.tsx
|
|
5826
|
-
var
|
|
5837
|
+
var import_lucide_react23 = require("lucide-react");
|
|
5827
5838
|
var ResizablePrimitive = __toESM(require("react-resizable-panels"), 1);
|
|
5828
5839
|
var import_jsx_runtime44 = require("react/jsx-runtime");
|
|
5829
5840
|
function ResizablePanelGroup(_a) {
|
|
@@ -5864,7 +5875,7 @@ function ResizableHandle(_a) {
|
|
|
5864
5875
|
className
|
|
5865
5876
|
)
|
|
5866
5877
|
}, props), {
|
|
5867
|
-
children: withHandle && /* @__PURE__ */ (0, import_jsx_runtime44.jsx)("div", { className: "z-10 flex h-4 w-3 items-center justify-center rounded-xs border border-border-default-default bg-border-default-default text-icon-subtle-default", children: /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
|
|
5878
|
+
children: withHandle && /* @__PURE__ */ (0, import_jsx_runtime44.jsx)("div", { className: "z-10 flex h-4 w-3 items-center justify-center rounded-xs border border-border-default-default bg-border-default-default text-icon-subtle-default", children: /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(import_lucide_react23.GripVerticalIcon, { className: "size-2.5" }) })
|
|
5868
5879
|
})
|
|
5869
5880
|
);
|
|
5870
5881
|
}
|
|
@@ -5933,7 +5944,7 @@ function ScrollBar(_a) {
|
|
|
5933
5944
|
}
|
|
5934
5945
|
|
|
5935
5946
|
// components/ui/sheet.tsx
|
|
5936
|
-
var
|
|
5947
|
+
var import_lucide_react24 = require("lucide-react");
|
|
5937
5948
|
var import_radix_ui26 = require("radix-ui");
|
|
5938
5949
|
var import_jsx_runtime46 = require("react/jsx-runtime");
|
|
5939
5950
|
function Sheet(_a) {
|
|
@@ -6005,7 +6016,7 @@ function SheetContent(_a) {
|
|
|
6005
6016
|
size: "sm",
|
|
6006
6017
|
"aria-label": "Close",
|
|
6007
6018
|
className: "absolute top-4 right-4",
|
|
6008
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
|
|
6019
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(import_lucide_react24.XIcon, { className: "size-4" })
|
|
6009
6020
|
}
|
|
6010
6021
|
) })
|
|
6011
6022
|
]
|
|
@@ -6065,7 +6076,7 @@ function SheetDescription(_a) {
|
|
|
6065
6076
|
// components/ui/sidebar.tsx
|
|
6066
6077
|
var React14 = __toESM(require("react"), 1);
|
|
6067
6078
|
var import_class_variance_authority13 = require("class-variance-authority");
|
|
6068
|
-
var
|
|
6079
|
+
var import_lucide_react25 = require("lucide-react");
|
|
6069
6080
|
var import_radix_ui28 = require("radix-ui");
|
|
6070
6081
|
|
|
6071
6082
|
// hooks/use-mobile.ts
|
|
@@ -6406,7 +6417,7 @@ function SidebarTrigger(_a) {
|
|
|
6406
6417
|
}
|
|
6407
6418
|
}, props), {
|
|
6408
6419
|
children: [
|
|
6409
|
-
/* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
|
|
6420
|
+
/* @__PURE__ */ (0, import_jsx_runtime49.jsx)(import_lucide_react25.PanelLeftIcon, {}),
|
|
6410
6421
|
/* @__PURE__ */ (0, import_jsx_runtime49.jsx)("span", { className: "sr-only", children: "Toggle Sidebar" })
|
|
6411
6422
|
]
|
|
6412
6423
|
})
|
|
@@ -6911,7 +6922,7 @@ function Slider(_a) {
|
|
|
6911
6922
|
|
|
6912
6923
|
// components/ui/toast.tsx
|
|
6913
6924
|
var React16 = __toESM(require("react"), 1);
|
|
6914
|
-
var
|
|
6925
|
+
var import_lucide_react26 = require("lucide-react");
|
|
6915
6926
|
var import_next_themes = require("next-themes");
|
|
6916
6927
|
var import_sonner = require("sonner");
|
|
6917
6928
|
var import_jsx_runtime51 = require("react/jsx-runtime");
|
|
@@ -6928,11 +6939,11 @@ var Toaster = (_a) => {
|
|
|
6928
6939
|
visibleToasts: isMobile ? 1 : 3,
|
|
6929
6940
|
duration: 4e3,
|
|
6930
6941
|
icons: {
|
|
6931
|
-
success: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
|
|
6932
|
-
info: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
|
|
6933
|
-
warning: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
|
|
6934
|
-
error: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
|
|
6935
|
-
loading: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
|
|
6942
|
+
success: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_lucide_react26.CircleCheckIcon, { className: "size-4" }),
|
|
6943
|
+
info: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_lucide_react26.InfoIcon, { className: "size-4" }),
|
|
6944
|
+
warning: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_lucide_react26.TriangleAlertIcon, { className: "size-4" }),
|
|
6945
|
+
error: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_lucide_react26.OctagonXIcon, { className: "size-4" }),
|
|
6946
|
+
loading: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_lucide_react26.Loader2Icon, { className: "size-4 animate-spin" })
|
|
6936
6947
|
},
|
|
6937
6948
|
toastOptions: {
|
|
6938
6949
|
classNames: {
|
|
@@ -7119,7 +7130,7 @@ function usePrefersReducedMotion() {
|
|
|
7119
7130
|
|
|
7120
7131
|
// components/ui/slide-to-confirm.tsx
|
|
7121
7132
|
var React17 = __toESM(require("react"), 1);
|
|
7122
|
-
var
|
|
7133
|
+
var import_lucide_react27 = require("lucide-react");
|
|
7123
7134
|
var import_jsx_runtime52 = require("react/jsx-runtime");
|
|
7124
7135
|
var CONFIRM_AT = 0.9;
|
|
7125
7136
|
var HANDLE = 46;
|
|
@@ -7285,7 +7296,7 @@ function SlideToConfirm(_a) {
|
|
|
7285
7296
|
// the keyboard, where dragX never moved.
|
|
7286
7297
|
translate: `${confirmed ? maxTravel : dragX}px -50%`
|
|
7287
7298
|
},
|
|
7288
|
-
children: confirmed ? /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
|
|
7299
|
+
children: confirmed ? /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_lucide_react27.Check, { className: "size-4.5 [animation:slide-confirm-pop_var(--motion-pop)_var(--primitive-ease-overshoot)]" }) : /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_lucide_react27.ArrowRight, { className: "size-4.5" })
|
|
7289
7300
|
}
|
|
7290
7301
|
)
|
|
7291
7302
|
]
|
|
@@ -7295,7 +7306,7 @@ function SlideToConfirm(_a) {
|
|
|
7295
7306
|
|
|
7296
7307
|
// components/ui/stepper.tsx
|
|
7297
7308
|
var React18 = __toESM(require("react"), 1);
|
|
7298
|
-
var
|
|
7309
|
+
var import_lucide_react28 = require("lucide-react");
|
|
7299
7310
|
var import_jsx_runtime53 = require("react/jsx-runtime");
|
|
7300
7311
|
function clamp(value, min, max) {
|
|
7301
7312
|
return Math.min(Math.max(value, min), max);
|
|
@@ -7389,7 +7400,11 @@ function Stepper({
|
|
|
7389
7400
|
"data-slot": "stepper",
|
|
7390
7401
|
"data-disabled": disabled || void 0,
|
|
7391
7402
|
className: cn(
|
|
7392
|
-
|
|
7403
|
+
// Two rows: the label spans the control, then the -/value/+ row sits
|
|
7404
|
+
// under it with a 4px gap. The label is deliberately NOT inside the
|
|
7405
|
+
// value column — nesting it there makes the buttons centre against the
|
|
7406
|
+
// label+value stack, which drops them below the number.
|
|
7407
|
+
"flex w-full flex-col gap-1",
|
|
7393
7408
|
// No opacity here on purpose. The +/- are Buttons and already carry
|
|
7394
7409
|
// their own disabled treatment; dimming the wrapper too multiplied
|
|
7395
7410
|
// with theirs (24% × 24% ≈ 6%) and made them all but invisible.
|
|
@@ -7398,63 +7413,72 @@ function Stepper({
|
|
|
7398
7413
|
className
|
|
7399
7414
|
),
|
|
7400
7415
|
children: [
|
|
7401
|
-
/* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
|
|
7402
|
-
|
|
7416
|
+
label != null && /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
|
|
7417
|
+
"span",
|
|
7403
7418
|
{
|
|
7404
|
-
|
|
7405
|
-
|
|
7406
|
-
|
|
7407
|
-
|
|
7408
|
-
|
|
7409
|
-
|
|
7410
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_lucide_react27.Minus, {})
|
|
7419
|
+
"data-slot": "stepper-label",
|
|
7420
|
+
className: cn(
|
|
7421
|
+
"type-stepper-stake-label text-center",
|
|
7422
|
+
disabled ? "text-text-disabled-default" : "text-text-subtle-default"
|
|
7423
|
+
),
|
|
7424
|
+
children: label
|
|
7411
7425
|
}
|
|
7412
7426
|
),
|
|
7413
|
-
/* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(
|
|
7414
|
-
|
|
7415
|
-
"span",
|
|
7416
|
-
{
|
|
7417
|
-
className: cn(
|
|
7418
|
-
"type-stepper-stake-label",
|
|
7419
|
-
disabled ? "text-text-disabled-default" : "text-text-subtle-default"
|
|
7420
|
-
),
|
|
7421
|
-
children: label
|
|
7422
|
-
}
|
|
7423
|
-
),
|
|
7424
|
-
/* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
|
|
7425
|
-
"input",
|
|
7426
|
-
{
|
|
7427
|
-
type: "text",
|
|
7428
|
-
inputMode: "decimal",
|
|
7429
|
-
role: "spinbutton",
|
|
7430
|
-
"aria-valuemin": min === -Infinity ? void 0 : min,
|
|
7431
|
-
"aria-valuemax": max === Infinity ? void 0 : max,
|
|
7432
|
-
"aria-valuenow": currentValue,
|
|
7433
|
-
"aria-label": ariaLabel,
|
|
7434
|
-
value: displayString,
|
|
7435
|
-
onChange: handleInputChange,
|
|
7436
|
-
onBlur: handleBlur,
|
|
7437
|
-
onFocus: handleFocus,
|
|
7438
|
-
onKeyDown: handleKeyDown,
|
|
7439
|
-
disabled,
|
|
7440
|
-
placeholder,
|
|
7441
|
-
id,
|
|
7442
|
-
name,
|
|
7443
|
-
size: Math.max(displayString.length, 1),
|
|
7444
|
-
className: "type-stepper-stake-amount w-full min-w-0 border-0 bg-transparent text-center text-text-prominent-default outline-none disabled:text-text-disabled-default [appearance:textfield] [&::-webkit-inner-spin-button]:appearance-none [&::-webkit-outer-spin-button]:appearance-none"
|
|
7445
|
-
}
|
|
7446
|
-
)
|
|
7447
|
-
] }),
|
|
7448
|
-
/* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
|
|
7449
|
-
Button,
|
|
7427
|
+
/* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(
|
|
7428
|
+
"div",
|
|
7450
7429
|
{
|
|
7451
|
-
|
|
7452
|
-
|
|
7453
|
-
|
|
7454
|
-
|
|
7455
|
-
|
|
7456
|
-
|
|
7457
|
-
|
|
7430
|
+
"data-slot": "stepper-row",
|
|
7431
|
+
className: "flex w-full items-center justify-between gap-4",
|
|
7432
|
+
children: [
|
|
7433
|
+
/* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
|
|
7434
|
+
Button,
|
|
7435
|
+
{
|
|
7436
|
+
type: "button",
|
|
7437
|
+
variant: "frosted",
|
|
7438
|
+
size: "icon-lg",
|
|
7439
|
+
onClick: handleDecrement,
|
|
7440
|
+
disabled: disabled || currentValue <= min,
|
|
7441
|
+
"aria-label": "Decrease value",
|
|
7442
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_lucide_react28.Minus, {})
|
|
7443
|
+
}
|
|
7444
|
+
),
|
|
7445
|
+
/* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
|
|
7446
|
+
"input",
|
|
7447
|
+
{
|
|
7448
|
+
type: "text",
|
|
7449
|
+
inputMode: "decimal",
|
|
7450
|
+
role: "spinbutton",
|
|
7451
|
+
"aria-valuemin": min === -Infinity ? void 0 : min,
|
|
7452
|
+
"aria-valuemax": max === Infinity ? void 0 : max,
|
|
7453
|
+
"aria-valuenow": currentValue,
|
|
7454
|
+
"aria-label": ariaLabel,
|
|
7455
|
+
value: displayString,
|
|
7456
|
+
onChange: handleInputChange,
|
|
7457
|
+
onBlur: handleBlur,
|
|
7458
|
+
onFocus: handleFocus,
|
|
7459
|
+
onKeyDown: handleKeyDown,
|
|
7460
|
+
disabled,
|
|
7461
|
+
placeholder,
|
|
7462
|
+
id,
|
|
7463
|
+
name,
|
|
7464
|
+
size: Math.max(displayString.length, 1),
|
|
7465
|
+
"data-slot": "stepper-value",
|
|
7466
|
+
className: "type-stepper-stake-amount min-w-0 flex-1 border-0 bg-transparent text-center text-text-prominent-default outline-none disabled:text-text-disabled-default [appearance:textfield] [&::-webkit-inner-spin-button]:appearance-none [&::-webkit-outer-spin-button]:appearance-none"
|
|
7467
|
+
}
|
|
7468
|
+
),
|
|
7469
|
+
/* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
|
|
7470
|
+
Button,
|
|
7471
|
+
{
|
|
7472
|
+
type: "button",
|
|
7473
|
+
variant: "frosted",
|
|
7474
|
+
size: "icon-lg",
|
|
7475
|
+
onClick: handleIncrement,
|
|
7476
|
+
disabled: disabled || currentValue >= max,
|
|
7477
|
+
"aria-label": "Increase value",
|
|
7478
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_lucide_react28.Plus, {})
|
|
7479
|
+
}
|
|
7480
|
+
)
|
|
7481
|
+
]
|
|
7458
7482
|
}
|
|
7459
7483
|
)
|
|
7460
7484
|
]
|
|
@@ -7464,7 +7488,7 @@ function Stepper({
|
|
|
7464
7488
|
|
|
7465
7489
|
// components/ui/steps.tsx
|
|
7466
7490
|
var React19 = __toESM(require("react"), 1);
|
|
7467
|
-
var
|
|
7491
|
+
var import_lucide_react29 = require("lucide-react");
|
|
7468
7492
|
var import_jsx_runtime54 = require("react/jsx-runtime");
|
|
7469
7493
|
var StepsContext = React19.createContext({ shape: "circle", orientation: "horizontal", size: "md" });
|
|
7470
7494
|
function Steps(_a) {
|
|
@@ -7544,7 +7568,7 @@ function Step(_a) {
|
|
|
7544
7568
|
"[&_svg]:pointer-events-none [&_svg]:shrink-0",
|
|
7545
7569
|
sm ? "[&_svg:not([class*='size-'])]:size-3.5" : "[&_svg:not([class*='size-'])]:size-4"
|
|
7546
7570
|
),
|
|
7547
|
-
children: state === "done" ? /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
|
|
7571
|
+
children: state === "done" ? /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_lucide_react29.Check, {}) : icon != null ? icon : index
|
|
7548
7572
|
}
|
|
7549
7573
|
);
|
|
7550
7574
|
if (horizontal) {
|
|
@@ -7684,7 +7708,7 @@ function Switch(_a) {
|
|
|
7684
7708
|
"data-slot": "switch",
|
|
7685
7709
|
"data-size": size,
|
|
7686
7710
|
className: cn(
|
|
7687
|
-
"peer group/switch inline-flex shrink-0 items-center rounded-full border border-transparent p-[3px] transition-all outline-none focus-visible:border-ring-focus-default focus-visible:ring-[3px] focus-visible:ring-ring-focus-strong disabled:cursor-not-allowed disabled:
|
|
7711
|
+
"peer group/switch inline-flex shrink-0 items-center rounded-full border border-transparent p-[3px] transition-all outline-none focus-visible:border-ring-focus-default focus-visible:ring-[3px] focus-visible:ring-ring-focus-strong disabled:cursor-not-allowed disabled:opacity-(--opacity-disabled) data-[size=default]:h-6 data-[size=default]:w-11 data-[size=sm]:h-5 data-[size=sm]:w-9 data-[state=checked]:bg-background-brand-default data-[state=unchecked]:bg-border-default-default",
|
|
7688
7712
|
className
|
|
7689
7713
|
)
|
|
7690
7714
|
}, props), {
|
|
@@ -7920,7 +7944,7 @@ var import_class_variance_authority15 = require("class-variance-authority");
|
|
|
7920
7944
|
var import_radix_ui32 = require("radix-ui");
|
|
7921
7945
|
var import_jsx_runtime58 = require("react/jsx-runtime");
|
|
7922
7946
|
var toggleVariants = (0, import_class_variance_authority15.cva)(
|
|
7923
|
-
"type-toggle inline-flex items-center justify-center gap-2 rounded-md border border-border-default-default bg-background-primary-surface text-text-prominent-default whitespace-nowrap transition-[color,background-color,border-color,box-shadow] outline-none hover:bg-background-secondary-surface active:bg-background-secondary-wash focus-visible:border-ring-focus-default focus-visible:ring-[3px] focus-visible:ring-ring-focus-strong disabled:pointer-events-none disabled:
|
|
7947
|
+
"type-toggle inline-flex items-center justify-center gap-2 rounded-md border border-border-default-default bg-background-primary-surface text-text-prominent-default whitespace-nowrap transition-[color,background-color,border-color,box-shadow] outline-none hover:bg-background-secondary-surface active:bg-background-secondary-wash focus-visible:border-ring-focus-default focus-visible:ring-[3px] focus-visible:ring-ring-focus-strong disabled:pointer-events-none disabled:opacity-(--opacity-disabled) aria-invalid:border-border-error-default aria-invalid:ring-ring-error-soft data-[state=on]:border-transparent data-[state=on]:bg-background-brand-default data-[state=on]:text-text-on-brand-static [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
|
|
7924
7948
|
{
|
|
7925
7949
|
variants: {
|
|
7926
7950
|
size: {
|
|
@@ -8103,7 +8127,7 @@ function ResultDialog({
|
|
|
8103
8127
|
}
|
|
8104
8128
|
|
|
8105
8129
|
// components/blocks/header-navigation-block.tsx
|
|
8106
|
-
var
|
|
8130
|
+
var import_lucide_react30 = require("lucide-react");
|
|
8107
8131
|
var import_jsx_runtime61 = require("react/jsx-runtime");
|
|
8108
8132
|
function HeaderNavigationBlock({
|
|
8109
8133
|
onBack,
|
|
@@ -8114,7 +8138,7 @@ function HeaderNavigationBlock({
|
|
|
8114
8138
|
}) {
|
|
8115
8139
|
var _a;
|
|
8116
8140
|
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: [
|
|
8117
|
-
onBack && /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(NavigationButton, { type: "button", size: "md", "aria-label": "Back", onClick: onBack, children: /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
|
|
8141
|
+
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_react30.ArrowLeft, { className: "size-5" }) }),
|
|
8118
8142
|
/* @__PURE__ */ (0, import_jsx_runtime61.jsxs)("div", { className: "flex min-w-0 flex-1 items-center justify-center gap-2", children: [
|
|
8119
8143
|
badge && /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(Badge, { variant: (_a = badge.variant) != null ? _a : "tint-warning", size: "sm", children: badge.label }),
|
|
8120
8144
|
/* @__PURE__ */ (0, import_jsx_runtime61.jsx)("span", { className: "font-display font-semibold tabular-nums text-on-prominent", children: balance.amount }),
|
|
@@ -8135,7 +8159,7 @@ function HistoryButton({
|
|
|
8135
8159
|
const label = show ? count > 99 ? "99+" : String(count) : null;
|
|
8136
8160
|
const ariaLabel = ariaLabelOverride != null ? ariaLabelOverride : show ? `Open history, ${count} new` : "Open history";
|
|
8137
8161
|
return /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)("div", { className: "relative inline-flex", children: [
|
|
8138
|
-
/* @__PURE__ */ (0, import_jsx_runtime61.jsx)(NavigationButton, { type: "button", size: "md", "aria-label": ariaLabel, onClick, children: /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
|
|
8162
|
+
/* @__PURE__ */ (0, import_jsx_runtime61.jsx)(NavigationButton, { type: "button", size: "md", "aria-label": ariaLabel, onClick, children: /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(import_lucide_react30.History, { className: "size-5" }) }),
|
|
8139
8163
|
show && /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
|
|
8140
8164
|
"span",
|
|
8141
8165
|
{
|
|
@@ -8148,7 +8172,7 @@ function HistoryButton({
|
|
|
8148
8172
|
}
|
|
8149
8173
|
|
|
8150
8174
|
// components/blocks/faq-block.tsx
|
|
8151
|
-
var
|
|
8175
|
+
var import_lucide_react31 = require("lucide-react");
|
|
8152
8176
|
var import_radix_ui34 = require("radix-ui");
|
|
8153
8177
|
var import_jsx_runtime62 = require("react/jsx-runtime");
|
|
8154
8178
|
function FAQBlock({
|
|
@@ -8189,7 +8213,7 @@ function FAQBlock({
|
|
|
8189
8213
|
"shrink-0 size-7 flex items-center justify-center rounded-sm border transition-all duration-200",
|
|
8190
8214
|
"group-data-[state=open]:bg-primary group-data-[state=open]:border-primary",
|
|
8191
8215
|
"group-data-[state=closed]:bg-transparent group-data-[state=closed]:border-border-subtle"
|
|
8192
|
-
), children: /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(
|
|
8216
|
+
), children: /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(import_lucide_react31.Plus, { className: cn(
|
|
8193
8217
|
"size-4 transition-all duration-200",
|
|
8194
8218
|
"group-data-[state=open]:rotate-45 group-data-[state=open]:text-on-primary",
|
|
8195
8219
|
"group-data-[state=closed]:text-on-prominent"
|
|
@@ -8238,7 +8262,7 @@ function FAQBlock({
|
|
|
8238
8262
|
}
|
|
8239
8263
|
|
|
8240
8264
|
// components/blocks/hero-block.tsx
|
|
8241
|
-
var
|
|
8265
|
+
var import_lucide_react32 = require("lucide-react");
|
|
8242
8266
|
var import_jsx_runtime63 = require("react/jsx-runtime");
|
|
8243
8267
|
function HeroBlock({
|
|
8244
8268
|
layout = "centered",
|
|
@@ -8258,7 +8282,7 @@ function HeroBlock({
|
|
|
8258
8282
|
] }),
|
|
8259
8283
|
/* @__PURE__ */ (0, import_jsx_runtime63.jsxs)(Button, { size: "sm", onClick: primaryCta.onClick, children: [
|
|
8260
8284
|
primaryCta.label,
|
|
8261
|
-
primaryCta.trailingArrow !== false && /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
|
|
8285
|
+
primaryCta.trailingArrow !== false && /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(import_lucide_react32.ArrowRight, { className: "size-4" })
|
|
8262
8286
|
] })
|
|
8263
8287
|
] }) });
|
|
8264
8288
|
}
|
|
@@ -8294,7 +8318,7 @@ function TaglinePill({
|
|
|
8294
8318
|
label,
|
|
8295
8319
|
suffix && /* @__PURE__ */ (0, import_jsx_runtime63.jsx)("span", { className: "text-on-subtle", children: ` \xB7 ${suffix}` })
|
|
8296
8320
|
] }),
|
|
8297
|
-
/* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
|
|
8321
|
+
/* @__PURE__ */ (0, import_jsx_runtime63.jsx)(import_lucide_react32.ArrowUpRight, { className: "size-4 text-on-subtle shrink-0", "aria-hidden": "true" })
|
|
8298
8322
|
] });
|
|
8299
8323
|
}
|
|
8300
8324
|
|
|
@@ -8384,7 +8408,7 @@ function ProviderButton({ provider }) {
|
|
|
8384
8408
|
|
|
8385
8409
|
// components/blocks/navbar-block.tsx
|
|
8386
8410
|
var React22 = __toESM(require("react"), 1);
|
|
8387
|
-
var
|
|
8411
|
+
var import_lucide_react33 = require("lucide-react");
|
|
8388
8412
|
var import_jsx_runtime65 = require("react/jsx-runtime");
|
|
8389
8413
|
function NavBarBlock({ brand, links, signIn, signUp }) {
|
|
8390
8414
|
var _a, _b, _c, _d;
|
|
@@ -8423,7 +8447,7 @@ function NavBarBlock({ brand, links, signIn, signUp }) {
|
|
|
8423
8447
|
"aria-expanded": mobileMenuOpen,
|
|
8424
8448
|
className: "min-[600px]:hidden",
|
|
8425
8449
|
onClick: () => setMobileMenuOpen((prev) => !prev),
|
|
8426
|
-
children: mobileMenuOpen ? /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
|
|
8450
|
+
children: mobileMenuOpen ? /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(import_lucide_react33.X, { className: "size-4" }) : /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(import_lucide_react33.Menu, { className: "size-4" })
|
|
8427
8451
|
}
|
|
8428
8452
|
)
|
|
8429
8453
|
] }),
|
|
@@ -8448,7 +8472,7 @@ function NavBarBlock({ brand, links, signIn, signUp }) {
|
|
|
8448
8472
|
}
|
|
8449
8473
|
|
|
8450
8474
|
// components/blocks/open-positions-block.tsx
|
|
8451
|
-
var
|
|
8475
|
+
var import_lucide_react34 = require("lucide-react");
|
|
8452
8476
|
var import_jsx_runtime66 = require("react/jsx-runtime");
|
|
8453
8477
|
function OpenPositionsBlock({
|
|
8454
8478
|
trigger,
|
|
@@ -8465,7 +8489,7 @@ function OpenPositionsBlock({
|
|
|
8465
8489
|
/* @__PURE__ */ (0, import_jsx_runtime66.jsxs)(DrawerContent, { className: "p-0 flex flex-col", children: [
|
|
8466
8490
|
/* @__PURE__ */ (0, import_jsx_runtime66.jsxs)(DrawerHeader, { className: "flex-row items-center justify-between px-4 py-3 shrink-0 text-left", children: [
|
|
8467
8491
|
/* @__PURE__ */ (0, import_jsx_runtime66.jsx)(DrawerTitle, { className: "text-base font-semibold font-display text-on-prominent", children: sheetTitle }),
|
|
8468
|
-
/* @__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)(
|
|
8492
|
+
/* @__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_react34.X, {}) }) })
|
|
8469
8493
|
] }),
|
|
8470
8494
|
/* @__PURE__ */ (0, import_jsx_runtime66.jsx)(Separator, {}),
|
|
8471
8495
|
body
|
|
@@ -8477,7 +8501,7 @@ function OpenPositionsBlock({
|
|
|
8477
8501
|
/* @__PURE__ */ (0, import_jsx_runtime66.jsxs)(SheetContent, { side: "right", showCloseButton: false, className: "p-0 flex flex-col w-80 sm:max-w-xs", children: [
|
|
8478
8502
|
/* @__PURE__ */ (0, import_jsx_runtime66.jsxs)(SheetHeader, { className: "flex-row items-center justify-between px-4 py-3 shrink-0", children: [
|
|
8479
8503
|
/* @__PURE__ */ (0, import_jsx_runtime66.jsx)(SheetTitle, { className: "text-base font-semibold font-display text-on-prominent", children: sheetTitle }),
|
|
8480
|
-
/* @__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)(
|
|
8504
|
+
/* @__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_react34.X, {}) }) })
|
|
8481
8505
|
] }),
|
|
8482
8506
|
/* @__PURE__ */ (0, import_jsx_runtime66.jsx)(Separator, {}),
|
|
8483
8507
|
body
|
|
@@ -8544,7 +8568,7 @@ function PnlMeta({ pnl, win, stake }) {
|
|
|
8544
8568
|
}
|
|
8545
8569
|
function DefaultEmptyState({ onViewHistory }) {
|
|
8546
8570
|
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: [
|
|
8547
|
-
/* @__PURE__ */ (0, import_jsx_runtime66.jsx)(EmptyMedia, { children: /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(
|
|
8571
|
+
/* @__PURE__ */ (0, import_jsx_runtime66.jsx)(EmptyMedia, { children: /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(import_lucide_react34.History, { className: "size-8 text-on-subtle" }) }),
|
|
8548
8572
|
/* @__PURE__ */ (0, import_jsx_runtime66.jsx)(EmptyTitle, { className: "h6 text-on-subtle", children: "No trades yet." }),
|
|
8549
8573
|
/* @__PURE__ */ (0, import_jsx_runtime66.jsx)(Button, { variant: "tertiary", size: "md", onClick: onViewHistory, children: "View trade history" })
|
|
8550
8574
|
] }) });
|
|
@@ -8617,7 +8641,6 @@ function useSmoothProgress({
|
|
|
8617
8641
|
const label = done && progress >= 99.5 ? readyLabel : (_b = (_a = checkpoints[idx]) == null ? void 0 : _a.label) != null ? _b : readyLabel;
|
|
8618
8642
|
return { progress, label, delayed, complete: done && progress >= 100 };
|
|
8619
8643
|
}
|
|
8620
|
-
var MONOGRAM_D = "M513.51,265.27l12.26-58.98H183.8l-12.26,58.98h105.29l-46.92,225.76,29.68-.85c1.65-.05,40.84-1.34,87-18.36,64.47-23.76,111.8-66.23,136.88-122.83l15.77-35.6h-139.02l-12.26,58.98h58.44l-6.31,6.26c-3.16,3.14-6.56,6.2-10.11,9.12-14.15,11.63-31.27,21.29-50.86,28.7-10.01,3.79-20.64,6.97-31.57,9.45l-5.55,1.26,33.65-161.89h177.86Z";
|
|
8621
8644
|
function GameLoadingBlock({
|
|
8622
8645
|
progress = 0,
|
|
8623
8646
|
label = "",
|
|
@@ -8625,6 +8648,7 @@ function GameLoadingBlock({
|
|
|
8625
8648
|
exiting = false,
|
|
8626
8649
|
onExitEnd,
|
|
8627
8650
|
contained = false,
|
|
8651
|
+
logoSrc,
|
|
8628
8652
|
backgroundImageUrl,
|
|
8629
8653
|
className
|
|
8630
8654
|
}) {
|
|
@@ -8638,13 +8662,15 @@ function GameLoadingBlock({
|
|
|
8638
8662
|
React23.useEffect(() => {
|
|
8639
8663
|
if (!exiting) return;
|
|
8640
8664
|
const raf = requestAnimationFrame(() => setGo(true));
|
|
8641
|
-
const timer = setTimeout(() => onExitEnd == null ? void 0 : onExitEnd(), reduced ? 240 :
|
|
8665
|
+
const timer = setTimeout(() => onExitEnd == null ? void 0 : onExitEnd(), reduced ? 240 : 700);
|
|
8642
8666
|
return () => {
|
|
8643
8667
|
cancelAnimationFrame(raf);
|
|
8644
8668
|
clearTimeout(timer);
|
|
8645
8669
|
};
|
|
8646
8670
|
}, [exiting, reduced, onExitEnd]);
|
|
8647
8671
|
const isAbsolute = exiting || contained;
|
|
8672
|
+
const punched = Boolean(logoSrc);
|
|
8673
|
+
const animate = exiting && go && !reduced;
|
|
8648
8674
|
return /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)(
|
|
8649
8675
|
"div",
|
|
8650
8676
|
{
|
|
@@ -8653,39 +8679,51 @@ function GameLoadingBlock({
|
|
|
8653
8679
|
"aria-label": "Loading game",
|
|
8654
8680
|
"data-slot": "game-loading-block",
|
|
8655
8681
|
className: cn(
|
|
8656
|
-
"z-50 inset-0
|
|
8682
|
+
"z-50 inset-0 overflow-hidden",
|
|
8657
8683
|
isAbsolute ? "absolute" : "fixed",
|
|
8658
|
-
//
|
|
8659
|
-
!
|
|
8660
|
-
|
|
8661
|
-
exiting && (reduced ? "transition-opacity duration-200" : "transition-opacity duration-[180ms] delay-[260ms]"),
|
|
8662
|
-
exiting && go ? "opacity-0" : "opacity-100",
|
|
8684
|
+
// Reduced motion, and the no-mark fallback, fade the whole layer.
|
|
8685
|
+
exiting && (reduced || !punched) && "transition-opacity duration-200",
|
|
8686
|
+
exiting && go && (reduced || !punched) ? "opacity-0" : "opacity-100",
|
|
8663
8687
|
className
|
|
8664
8688
|
),
|
|
8665
|
-
style: backgroundImageUrl ? { backgroundImage: `url(${backgroundImageUrl})` } : void 0,
|
|
8666
8689
|
children: [
|
|
8667
8690
|
/* @__PURE__ */ (0, import_jsx_runtime67.jsx)(
|
|
8668
|
-
"
|
|
8691
|
+
"div",
|
|
8692
|
+
{
|
|
8693
|
+
"aria-hidden": "true",
|
|
8694
|
+
"data-slot": "game-loading-backdrop",
|
|
8695
|
+
className: cn(
|
|
8696
|
+
"game-loader-field",
|
|
8697
|
+
punched && "game-loader-punch",
|
|
8698
|
+
animate && punched && "game-loader-field-exit"
|
|
8699
|
+
),
|
|
8700
|
+
style: __spreadValues(__spreadValues({}, logoSrc ? { "--game-loader-mark": `url(${logoSrc})` } : null), backgroundImageUrl ? {
|
|
8701
|
+
backgroundImage: `url(${backgroundImageUrl})`,
|
|
8702
|
+
backgroundSize: "cover",
|
|
8703
|
+
backgroundPosition: "center",
|
|
8704
|
+
backgroundRepeat: "no-repeat"
|
|
8705
|
+
} : null)
|
|
8706
|
+
}
|
|
8707
|
+
),
|
|
8708
|
+
logoSrc && /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(
|
|
8709
|
+
"img",
|
|
8669
8710
|
{
|
|
8670
|
-
|
|
8671
|
-
|
|
8672
|
-
viewBox: "0 0 697.31 697.31",
|
|
8673
|
-
xmlns: "http://www.w3.org/2000/svg",
|
|
8711
|
+
src: logoSrc,
|
|
8712
|
+
alt: "",
|
|
8674
8713
|
"aria-hidden": "true",
|
|
8675
|
-
className: cn("game-loader-mark
|
|
8676
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("path", { d: MONOGRAM_D })
|
|
8714
|
+
className: cn("game-loader-mark", animate && "game-loader-mark-exit")
|
|
8677
8715
|
}
|
|
8678
8716
|
),
|
|
8679
|
-
!exiting && /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)("div", { className: "flex w-[200px] flex-col items-start gap-3.5", children: [
|
|
8680
|
-
/* @__PURE__ */ (0, import_jsx_runtime67.jsx)("div", { className: "relative h-2 w-full overflow-hidden rounded-xs bg-
|
|
8717
|
+
!exiting && /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)("div", { className: "absolute bottom-10 left-1/2 flex w-[200px] -translate-x-1/2 flex-col items-start gap-3.5", children: [
|
|
8718
|
+
/* @__PURE__ */ (0, import_jsx_runtime67.jsx)("div", { className: "relative h-2 w-full overflow-hidden rounded-xs bg-background-secondary-surface", children: /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(
|
|
8681
8719
|
"div",
|
|
8682
8720
|
{
|
|
8683
|
-
className: "absolute inset-y-0 left-0 overflow-hidden rounded-xs bg-
|
|
8721
|
+
className: "absolute inset-y-0 left-0 overflow-hidden rounded-xs bg-background-brand-default",
|
|
8684
8722
|
style: { width: `${progress}%` },
|
|
8685
8723
|
children: /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("span", { "aria-hidden": "true", className: "game-loader-shimmer absolute inset-y-0 left-[-60%] w-[60%]" })
|
|
8686
8724
|
}
|
|
8687
8725
|
) }),
|
|
8688
|
-
/* @__PURE__ */ (0, import_jsx_runtime67.jsx)("span", { className: "caption text-
|
|
8726
|
+
/* @__PURE__ */ (0, import_jsx_runtime67.jsx)("span", { className: "caption text-text-subtle-default", children: delayed ? "Taking longer than usual\u2026" : label })
|
|
8689
8727
|
] })
|
|
8690
8728
|
]
|
|
8691
8729
|
}
|