@trading-game/design-intelligence-layer 1.0.7 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +4 -3
- package/README.md +5 -3
- package/dist/index.cjs +922 -627
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +25 -4
- package/dist/index.d.ts +25 -4
- package/dist/index.js +923 -629
- package/dist/index.js.map +1 -1
- package/docs/components/badge.md +21 -4
- package/docs/components/calendar.md +1 -1
- package/docs/components/date-wheel-picker.md +106 -0
- package/docs/components/item.md +25 -7
- package/docs/components/toast.md +2 -2
- package/docs/foundations/colors.md +3 -3
- package/docs/foundations/shape-layout.md +2 -2
- package/guides/brand-voice/trading-game-brand-voice.md +10 -11
- package/package.json +3 -2
- package/src/styles.css +15 -0
- package/guides/rules/design-system-consuming-project.mdc +0 -366
package/dist/index.cjs
CHANGED
|
@@ -139,6 +139,7 @@ __export(index_exports, {
|
|
|
139
139
|
ContextMenuSubContent: () => ContextMenuSubContent,
|
|
140
140
|
ContextMenuSubTrigger: () => ContextMenuSubTrigger,
|
|
141
141
|
ContextMenuTrigger: () => ContextMenuTrigger,
|
|
142
|
+
DateWheelPicker: () => DateWheelPicker,
|
|
142
143
|
Dialog: () => Dialog,
|
|
143
144
|
DialogClose: () => DialogClose,
|
|
144
145
|
DialogContent: () => DialogContent,
|
|
@@ -1269,9 +1270,11 @@ var badgeVariants = (0, import_class_variance_authority4.cva)(
|
|
|
1269
1270
|
"solid-fail": "bg-background-error-solid text-text-on-status-static",
|
|
1270
1271
|
"solid-warning": "bg-background-warning-solid text-text-on-status-static",
|
|
1271
1272
|
// Tint — the Section Message surface tokens, coloured foreground.
|
|
1272
|
-
// Brand tint
|
|
1273
|
-
//
|
|
1274
|
-
|
|
1273
|
+
// Brand tint rides `brand-selected`, the theme-aware selection
|
|
1274
|
+
// family, for the same reason Calendar's range band does: the
|
|
1275
|
+
// static `brand-container` is one value in both themes and sits
|
|
1276
|
+
// near-white on a dark surface.
|
|
1277
|
+
tint: "bg-background-brand-selected border-transparent text-text-brand-selected",
|
|
1275
1278
|
"tint-demo": "bg-background-demo-default border-transparent text-text-demo-default",
|
|
1276
1279
|
"tint-neutral": "bg-background-secondary-surface border-transparent text-text-prominent-default",
|
|
1277
1280
|
"tint-success": "bg-background-success-default border-transparent text-text-success-default",
|
|
@@ -1282,7 +1285,18 @@ var badgeVariants = (0, import_class_variance_authority4.cva)(
|
|
|
1282
1285
|
xs: "type-badge-xs h-5 px-2 py-0.5",
|
|
1283
1286
|
sm: "type-badge-sm h-6 px-2.5 py-0.5",
|
|
1284
1287
|
md: "type-badge-md h-8 px-3 py-1",
|
|
1285
|
-
lg: "type-badge-lg h-10 px-4 py-1.5"
|
|
1288
|
+
lg: "type-badge-lg h-10 px-4 py-1.5",
|
|
1289
|
+
/* `count` is a shape, not a step on the xs/sm/md/lg rail: an
|
|
1290
|
+
18px disc that grows into a pill as digits are added. The
|
|
1291
|
+
padding is deliberately tight (`px-1`): one digit then
|
|
1292
|
+
measures under the 18px min-width, so min-width wins and the
|
|
1293
|
+
disc is a true circle. Widen the padding and a single digit
|
|
1294
|
+
overshoots 18px, turning it back into an oval. `tabular-nums` keeps every digit
|
|
1295
|
+
the same width, so a ticking count only resizes when the
|
|
1296
|
+
digit count changes, not on every update. Callers that pin
|
|
1297
|
+
it over other chrome add their own knockout ring — Badge
|
|
1298
|
+
cannot know what sits behind it. */
|
|
1299
|
+
count: "type-badge-xs min-w-[1.125rem] h-[1.125rem] px-1 tabular-nums"
|
|
1286
1300
|
}
|
|
1287
1301
|
},
|
|
1288
1302
|
defaultVariants: {
|
|
@@ -3336,25 +3350,297 @@ function ContextMenuShortcut(_a) {
|
|
|
3336
3350
|
);
|
|
3337
3351
|
}
|
|
3338
3352
|
|
|
3353
|
+
// components/ui/date-wheel-picker.tsx
|
|
3354
|
+
var React7 = __toESM(require("react"), 1);
|
|
3355
|
+
var import_jsx_runtime23 = require("react/jsx-runtime");
|
|
3356
|
+
var ROW = 40;
|
|
3357
|
+
var VISIBLE_ROWS = 5;
|
|
3358
|
+
var SETTLE_MS = 120;
|
|
3359
|
+
var toParts = (date) => ({
|
|
3360
|
+
y: date.getFullYear(),
|
|
3361
|
+
m: date.getMonth(),
|
|
3362
|
+
d: date.getDate()
|
|
3363
|
+
});
|
|
3364
|
+
var toDate = ({ y, m, d }) => new Date(y, m, d);
|
|
3365
|
+
var daysIn = (y, m) => new Date(y, m + 1, 0).getDate();
|
|
3366
|
+
var dayStart = (date) => new Date(date.getFullYear(), date.getMonth(), date.getDate());
|
|
3367
|
+
function clamp(parts, min, max) {
|
|
3368
|
+
const d = Math.min(parts.d, daysIn(parts.y, parts.m));
|
|
3369
|
+
const date = toDate(__spreadProps(__spreadValues({}, parts), { d }));
|
|
3370
|
+
if (date < min) return toParts(min);
|
|
3371
|
+
if (date > max) return toParts(max);
|
|
3372
|
+
return __spreadProps(__spreadValues({}, parts), { d });
|
|
3373
|
+
}
|
|
3374
|
+
function Wheel({ items, index, onIndexChange, label, className }) {
|
|
3375
|
+
var _a;
|
|
3376
|
+
const ref = React7.useRef(null);
|
|
3377
|
+
const settleTimer = React7.useRef(null);
|
|
3378
|
+
const mounted = React7.useRef(false);
|
|
3379
|
+
const [live, setLive] = React7.useState(index);
|
|
3380
|
+
const scrollToIndex = React7.useCallback((i, smooth) => {
|
|
3381
|
+
var _a2;
|
|
3382
|
+
const el = ref.current;
|
|
3383
|
+
if (!el) return;
|
|
3384
|
+
const reduce = (_a2 = window.matchMedia) == null ? void 0 : _a2.call(window, "(prefers-reduced-motion: reduce)").matches;
|
|
3385
|
+
el.scrollTo({ top: i * ROW, behavior: smooth && !reduce ? "smooth" : "auto" });
|
|
3386
|
+
}, []);
|
|
3387
|
+
React7.useEffect(() => {
|
|
3388
|
+
setLive(index);
|
|
3389
|
+
const el = ref.current;
|
|
3390
|
+
if (el && Math.round(el.scrollTop / ROW) !== index) {
|
|
3391
|
+
scrollToIndex(index, mounted.current);
|
|
3392
|
+
}
|
|
3393
|
+
mounted.current = true;
|
|
3394
|
+
}, [index, items.length, scrollToIndex]);
|
|
3395
|
+
React7.useEffect(
|
|
3396
|
+
() => () => {
|
|
3397
|
+
if (settleTimer.current) clearTimeout(settleTimer.current);
|
|
3398
|
+
},
|
|
3399
|
+
[]
|
|
3400
|
+
);
|
|
3401
|
+
const nearestEnabled = (i) => {
|
|
3402
|
+
var _a2;
|
|
3403
|
+
if (!((_a2 = items[i]) == null ? void 0 : _a2.disabled)) return i;
|
|
3404
|
+
for (let step2 = 1; step2 < items.length; step2++) {
|
|
3405
|
+
if (items[i - step2] && !items[i - step2].disabled) return i - step2;
|
|
3406
|
+
if (items[i + step2] && !items[i + step2].disabled) return i + step2;
|
|
3407
|
+
}
|
|
3408
|
+
return i;
|
|
3409
|
+
};
|
|
3410
|
+
const onScroll = () => {
|
|
3411
|
+
var _a2;
|
|
3412
|
+
const el = ref.current;
|
|
3413
|
+
if (!el) return;
|
|
3414
|
+
const i = Math.max(0, Math.min(items.length - 1, Math.round(el.scrollTop / ROW)));
|
|
3415
|
+
if (i !== live) {
|
|
3416
|
+
setLive(i);
|
|
3417
|
+
(_a2 = navigator.vibrate) == null ? void 0 : _a2.call(navigator, 4);
|
|
3418
|
+
}
|
|
3419
|
+
if (settleTimer.current) clearTimeout(settleTimer.current);
|
|
3420
|
+
settleTimer.current = setTimeout(() => {
|
|
3421
|
+
const target = nearestEnabled(i);
|
|
3422
|
+
if (target !== i) {
|
|
3423
|
+
setLive(target);
|
|
3424
|
+
scrollToIndex(target, true);
|
|
3425
|
+
if (target !== index) onIndexChange(target);
|
|
3426
|
+
} else if (target !== index) onIndexChange(target);
|
|
3427
|
+
}, SETTLE_MS);
|
|
3428
|
+
};
|
|
3429
|
+
const step = (from, delta) => {
|
|
3430
|
+
var _a2;
|
|
3431
|
+
let i = from;
|
|
3432
|
+
for (let n = Math.abs(delta); n > 0; n--) {
|
|
3433
|
+
let next = i + Math.sign(delta);
|
|
3434
|
+
while ((_a2 = items[next]) == null ? void 0 : _a2.disabled) next += Math.sign(delta);
|
|
3435
|
+
if (!items[next]) break;
|
|
3436
|
+
i = next;
|
|
3437
|
+
}
|
|
3438
|
+
return i;
|
|
3439
|
+
};
|
|
3440
|
+
const onKeyDown = (e) => {
|
|
3441
|
+
const last = items.length - 1;
|
|
3442
|
+
let next = null;
|
|
3443
|
+
if (e.key === "ArrowDown") next = step(index, 1);
|
|
3444
|
+
else if (e.key === "ArrowUp") next = step(index, -1);
|
|
3445
|
+
else if (e.key === "PageDown") next = step(index, 5);
|
|
3446
|
+
else if (e.key === "PageUp") next = step(index, -5);
|
|
3447
|
+
else if (e.key === "Home") next = nearestEnabled(0);
|
|
3448
|
+
else if (e.key === "End") next = nearestEnabled(last);
|
|
3449
|
+
if (next === null) return;
|
|
3450
|
+
e.preventDefault();
|
|
3451
|
+
if (next !== index) onIndexChange(next);
|
|
3452
|
+
};
|
|
3453
|
+
const enabled = items.filter((it) => !it.disabled);
|
|
3454
|
+
return /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(
|
|
3455
|
+
"div",
|
|
3456
|
+
{
|
|
3457
|
+
ref,
|
|
3458
|
+
"data-slot": "date-wheel-picker-wheel",
|
|
3459
|
+
role: "spinbutton",
|
|
3460
|
+
tabIndex: 0,
|
|
3461
|
+
"aria-label": label,
|
|
3462
|
+
"aria-valuenow": index,
|
|
3463
|
+
"aria-valuetext": (_a = items[index]) == null ? void 0 : _a.label,
|
|
3464
|
+
"aria-valuemin": items.indexOf(enabled[0]),
|
|
3465
|
+
"aria-valuemax": items.indexOf(enabled[enabled.length - 1]),
|
|
3466
|
+
onScroll,
|
|
3467
|
+
onKeyDown,
|
|
3468
|
+
className: cn(
|
|
3469
|
+
"relative z-10 h-50 min-w-0 snap-y snap-mandatory overflow-y-scroll rounded-md outline-none",
|
|
3470
|
+
"[scrollbar-width:none] [&::-webkit-scrollbar]:hidden",
|
|
3471
|
+
// Rows fade toward the edges so the wheel reads as a drum.
|
|
3472
|
+
"[mask-image:linear-gradient(to_bottom,transparent,black_32%,black_68%,transparent)]",
|
|
3473
|
+
"focus-visible:ring-[3px] focus-visible:ring-ring-focus-strong",
|
|
3474
|
+
className
|
|
3475
|
+
),
|
|
3476
|
+
children: [
|
|
3477
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)("div", { "aria-hidden": true, className: "h-20" }),
|
|
3478
|
+
items.map((item, i) => /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
3479
|
+
"div",
|
|
3480
|
+
{
|
|
3481
|
+
"aria-hidden": true,
|
|
3482
|
+
"data-selected": i === live ? "" : void 0,
|
|
3483
|
+
"data-disabled": item.disabled ? "" : void 0,
|
|
3484
|
+
onClick: () => !item.disabled && scrollToIndex(i, true),
|
|
3485
|
+
className: cn(
|
|
3486
|
+
"type-date-wheel-picker-item flex h-10 cursor-pointer snap-center items-center justify-center whitespace-nowrap tabular-nums select-none",
|
|
3487
|
+
"text-text-subtle-default transition-[color,transform] duration-fast ease-standard motion-reduce:transition-none",
|
|
3488
|
+
"data-selected:scale-[1.04] data-selected:text-text-brand-selected",
|
|
3489
|
+
"data-disabled:cursor-default data-disabled:text-text-disabled-default"
|
|
3490
|
+
),
|
|
3491
|
+
children: item.label
|
|
3492
|
+
},
|
|
3493
|
+
i
|
|
3494
|
+
)),
|
|
3495
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)("div", { "aria-hidden": true, className: "h-20" })
|
|
3496
|
+
]
|
|
3497
|
+
}
|
|
3498
|
+
);
|
|
3499
|
+
}
|
|
3500
|
+
function DateWheelPicker(_a) {
|
|
3501
|
+
var _b = _a, {
|
|
3502
|
+
value,
|
|
3503
|
+
defaultValue,
|
|
3504
|
+
onValueChange,
|
|
3505
|
+
min: minProp,
|
|
3506
|
+
max: maxProp,
|
|
3507
|
+
order = "dmy",
|
|
3508
|
+
monthFormat = "long",
|
|
3509
|
+
locale,
|
|
3510
|
+
className
|
|
3511
|
+
} = _b, props = __objRest(_b, [
|
|
3512
|
+
"value",
|
|
3513
|
+
"defaultValue",
|
|
3514
|
+
"onValueChange",
|
|
3515
|
+
"min",
|
|
3516
|
+
"max",
|
|
3517
|
+
"order",
|
|
3518
|
+
"monthFormat",
|
|
3519
|
+
"locale",
|
|
3520
|
+
"className"
|
|
3521
|
+
]);
|
|
3522
|
+
const min = React7.useMemo(
|
|
3523
|
+
() => dayStart(minProp != null ? minProp : new Date(1900, 0, 1)),
|
|
3524
|
+
[minProp]
|
|
3525
|
+
);
|
|
3526
|
+
const max = React7.useMemo(
|
|
3527
|
+
() => dayStart(maxProp != null ? maxProp : new Date((/* @__PURE__ */ new Date()).getFullYear() + 10, 11, 31)),
|
|
3528
|
+
[maxProp]
|
|
3529
|
+
);
|
|
3530
|
+
const [inner, setInner] = React7.useState(
|
|
3531
|
+
() => clamp(toParts(defaultValue != null ? defaultValue : /* @__PURE__ */ new Date()), min, max)
|
|
3532
|
+
);
|
|
3533
|
+
const parts = value ? clamp(toParts(value), min, max) : clamp(inner, min, max);
|
|
3534
|
+
const commit = (next) => {
|
|
3535
|
+
const c = clamp(next, min, max);
|
|
3536
|
+
if (!value) setInner(c);
|
|
3537
|
+
if (c.y !== parts.y || c.m !== parts.m || c.d !== parts.d) {
|
|
3538
|
+
onValueChange == null ? void 0 : onValueChange(toDate(c));
|
|
3539
|
+
}
|
|
3540
|
+
};
|
|
3541
|
+
const monthNames = React7.useMemo(() => {
|
|
3542
|
+
const fmt = new Intl.DateTimeFormat(locale, {
|
|
3543
|
+
month: monthFormat === "numeric" ? "2-digit" : monthFormat
|
|
3544
|
+
});
|
|
3545
|
+
return Array.from({ length: 12 }, (_, m) => fmt.format(new Date(2e3, m, 1)));
|
|
3546
|
+
}, [locale, monthFormat]);
|
|
3547
|
+
const years = React7.useMemo(() => {
|
|
3548
|
+
const list = [];
|
|
3549
|
+
for (let y = min.getFullYear(); y <= max.getFullYear(); y++) list.push(y);
|
|
3550
|
+
return list;
|
|
3551
|
+
}, [min, max]);
|
|
3552
|
+
const inRange = (y, m, d) => {
|
|
3553
|
+
const date = new Date(y, m, d);
|
|
3554
|
+
return date >= min && date <= max;
|
|
3555
|
+
};
|
|
3556
|
+
const dayItems = Array.from({ length: daysIn(parts.y, parts.m) }, (_, i) => ({
|
|
3557
|
+
label: String(i + 1).padStart(2, "0"),
|
|
3558
|
+
disabled: !inRange(parts.y, parts.m, i + 1)
|
|
3559
|
+
}));
|
|
3560
|
+
const monthItems = monthNames.map((label, m) => ({
|
|
3561
|
+
label,
|
|
3562
|
+
// A month is off only when none of its days are in range.
|
|
3563
|
+
disabled: new Date(parts.y, m, daysIn(parts.y, m)) < min || new Date(parts.y, m, 1) > max
|
|
3564
|
+
}));
|
|
3565
|
+
const yearItems = years.map((y) => ({ label: String(y), disabled: false }));
|
|
3566
|
+
const wheels = {
|
|
3567
|
+
d: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
3568
|
+
Wheel,
|
|
3569
|
+
{
|
|
3570
|
+
label: "Day",
|
|
3571
|
+
items: dayItems,
|
|
3572
|
+
index: parts.d - 1,
|
|
3573
|
+
onIndexChange: (i) => commit(__spreadProps(__spreadValues({}, parts), { d: i + 1 })),
|
|
3574
|
+
className: "flex-[0.8]"
|
|
3575
|
+
},
|
|
3576
|
+
"d"
|
|
3577
|
+
),
|
|
3578
|
+
m: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
3579
|
+
Wheel,
|
|
3580
|
+
{
|
|
3581
|
+
label: "Month",
|
|
3582
|
+
items: monthItems,
|
|
3583
|
+
index: parts.m,
|
|
3584
|
+
onIndexChange: (i) => commit(__spreadProps(__spreadValues({}, parts), { m: i })),
|
|
3585
|
+
className: monthFormat === "long" ? "flex-[1.5]" : "flex-1"
|
|
3586
|
+
},
|
|
3587
|
+
"m"
|
|
3588
|
+
),
|
|
3589
|
+
y: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
3590
|
+
Wheel,
|
|
3591
|
+
{
|
|
3592
|
+
label: "Year",
|
|
3593
|
+
items: yearItems,
|
|
3594
|
+
index: parts.y - years[0],
|
|
3595
|
+
onIndexChange: (i) => commit(__spreadProps(__spreadValues({}, parts), { y: years[i] })),
|
|
3596
|
+
className: "flex-1"
|
|
3597
|
+
},
|
|
3598
|
+
"y"
|
|
3599
|
+
)
|
|
3600
|
+
};
|
|
3601
|
+
return /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(
|
|
3602
|
+
"div",
|
|
3603
|
+
__spreadProps(__spreadValues({
|
|
3604
|
+
"data-slot": "date-wheel-picker",
|
|
3605
|
+
role: "group",
|
|
3606
|
+
"aria-label": "Date",
|
|
3607
|
+
className: cn("relative flex w-full gap-1", className),
|
|
3608
|
+
style: { height: ROW * VISIBLE_ROWS }
|
|
3609
|
+
}, props), {
|
|
3610
|
+
children: [
|
|
3611
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
3612
|
+
"div",
|
|
3613
|
+
{
|
|
3614
|
+
"aria-hidden": true,
|
|
3615
|
+
"data-slot": "date-wheel-picker-band",
|
|
3616
|
+
className: "pointer-events-none absolute inset-x-0 top-20 h-10 rounded-md bg-background-brand-selected"
|
|
3617
|
+
}
|
|
3618
|
+
),
|
|
3619
|
+
order.split("").map((k) => wheels[k])
|
|
3620
|
+
]
|
|
3621
|
+
})
|
|
3622
|
+
);
|
|
3623
|
+
}
|
|
3624
|
+
|
|
3339
3625
|
// components/ui/drawer.tsx
|
|
3340
3626
|
var import_lucide_react14 = require("lucide-react");
|
|
3341
3627
|
var import_vaul = require("vaul");
|
|
3342
|
-
var
|
|
3628
|
+
var import_jsx_runtime24 = require("react/jsx-runtime");
|
|
3343
3629
|
function Drawer(_a) {
|
|
3344
3630
|
var props = __objRest(_a, []);
|
|
3345
|
-
return /* @__PURE__ */ (0,
|
|
3631
|
+
return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_vaul.Drawer.Root, __spreadValues({ "data-slot": "drawer" }, props));
|
|
3346
3632
|
}
|
|
3347
3633
|
function DrawerTrigger(_a) {
|
|
3348
3634
|
var props = __objRest(_a, []);
|
|
3349
|
-
return /* @__PURE__ */ (0,
|
|
3635
|
+
return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_vaul.Drawer.Trigger, __spreadValues({ "data-slot": "drawer-trigger" }, props));
|
|
3350
3636
|
}
|
|
3351
3637
|
function DrawerPortal(_a) {
|
|
3352
3638
|
var props = __objRest(_a, []);
|
|
3353
|
-
return /* @__PURE__ */ (0,
|
|
3639
|
+
return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_vaul.Drawer.Portal, __spreadValues({ "data-slot": "drawer-portal" }, props));
|
|
3354
3640
|
}
|
|
3355
3641
|
function DrawerClose(_a) {
|
|
3356
3642
|
var props = __objRest(_a, []);
|
|
3357
|
-
return /* @__PURE__ */ (0,
|
|
3643
|
+
return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_vaul.Drawer.Close, __spreadValues({ "data-slot": "drawer-close" }, props));
|
|
3358
3644
|
}
|
|
3359
3645
|
function DrawerOverlay(_a) {
|
|
3360
3646
|
var _b = _a, {
|
|
@@ -3362,7 +3648,7 @@ function DrawerOverlay(_a) {
|
|
|
3362
3648
|
} = _b, props = __objRest(_b, [
|
|
3363
3649
|
"className"
|
|
3364
3650
|
]);
|
|
3365
|
-
return /* @__PURE__ */ (0,
|
|
3651
|
+
return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
|
|
3366
3652
|
import_vaul.Drawer.Overlay,
|
|
3367
3653
|
__spreadValues({
|
|
3368
3654
|
"data-slot": "drawer-overlay",
|
|
@@ -3383,9 +3669,9 @@ function DrawerContent(_a) {
|
|
|
3383
3669
|
"children",
|
|
3384
3670
|
"dismiss"
|
|
3385
3671
|
]);
|
|
3386
|
-
return /* @__PURE__ */ (0,
|
|
3387
|
-
/* @__PURE__ */ (0,
|
|
3388
|
-
/* @__PURE__ */ (0,
|
|
3672
|
+
return /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(DrawerPortal, { "data-slot": "drawer-portal", children: [
|
|
3673
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)(DrawerOverlay, {}),
|
|
3674
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(
|
|
3389
3675
|
import_vaul.Drawer.Content,
|
|
3390
3676
|
__spreadProps(__spreadValues({
|
|
3391
3677
|
"data-slot": "drawer-content",
|
|
@@ -3399,13 +3685,13 @@ function DrawerContent(_a) {
|
|
|
3399
3685
|
)
|
|
3400
3686
|
}, props), {
|
|
3401
3687
|
children: [
|
|
3402
|
-
dismiss === "handle" ? /* @__PURE__ */ (0,
|
|
3688
|
+
dismiss === "handle" ? /* @__PURE__ */ (0, import_jsx_runtime24.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_runtime24.jsx)("div", { className: "flex shrink-0 justify-end p-4 pb-0", children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_vaul.Drawer.Close, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
|
|
3403
3689
|
NavigationButton,
|
|
3404
3690
|
{
|
|
3405
3691
|
"data-slot": "drawer-close",
|
|
3406
3692
|
size: "sm",
|
|
3407
3693
|
"aria-label": "Close",
|
|
3408
|
-
children: /* @__PURE__ */ (0,
|
|
3694
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_lucide_react14.XIcon, { className: "size-4" })
|
|
3409
3695
|
}
|
|
3410
3696
|
) }) }),
|
|
3411
3697
|
children
|
|
@@ -3416,7 +3702,7 @@ function DrawerContent(_a) {
|
|
|
3416
3702
|
}
|
|
3417
3703
|
function DrawerHeader(_a) {
|
|
3418
3704
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
3419
|
-
return /* @__PURE__ */ (0,
|
|
3705
|
+
return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
|
|
3420
3706
|
"div",
|
|
3421
3707
|
__spreadValues({
|
|
3422
3708
|
"data-slot": "drawer-header",
|
|
@@ -3429,7 +3715,7 @@ function DrawerHeader(_a) {
|
|
|
3429
3715
|
}
|
|
3430
3716
|
function DrawerFooter(_a) {
|
|
3431
3717
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
3432
|
-
return /* @__PURE__ */ (0,
|
|
3718
|
+
return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
|
|
3433
3719
|
"div",
|
|
3434
3720
|
__spreadValues({
|
|
3435
3721
|
"data-slot": "drawer-footer",
|
|
@@ -3443,7 +3729,7 @@ function DrawerTitle(_a) {
|
|
|
3443
3729
|
} = _b, props = __objRest(_b, [
|
|
3444
3730
|
"className"
|
|
3445
3731
|
]);
|
|
3446
|
-
return /* @__PURE__ */ (0,
|
|
3732
|
+
return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
|
|
3447
3733
|
import_vaul.Drawer.Title,
|
|
3448
3734
|
__spreadValues({
|
|
3449
3735
|
"data-slot": "drawer-title",
|
|
@@ -3457,7 +3743,7 @@ function DrawerDescription(_a) {
|
|
|
3457
3743
|
} = _b, props = __objRest(_b, [
|
|
3458
3744
|
"className"
|
|
3459
3745
|
]);
|
|
3460
|
-
return /* @__PURE__ */ (0,
|
|
3746
|
+
return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
|
|
3461
3747
|
import_vaul.Drawer.Description,
|
|
3462
3748
|
__spreadValues({
|
|
3463
3749
|
"data-slot": "drawer-description",
|
|
@@ -3469,18 +3755,18 @@ function DrawerDescription(_a) {
|
|
|
3469
3755
|
// components/ui/dropdown-menu.tsx
|
|
3470
3756
|
var import_lucide_react15 = require("lucide-react");
|
|
3471
3757
|
var import_radix_ui14 = require("radix-ui");
|
|
3472
|
-
var
|
|
3758
|
+
var import_jsx_runtime25 = require("react/jsx-runtime");
|
|
3473
3759
|
function DropdownMenu(_a) {
|
|
3474
3760
|
var props = __objRest(_a, []);
|
|
3475
|
-
return /* @__PURE__ */ (0,
|
|
3761
|
+
return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_radix_ui14.DropdownMenu.Root, __spreadValues({ "data-slot": "dropdown-menu" }, props));
|
|
3476
3762
|
}
|
|
3477
3763
|
function DropdownMenuPortal(_a) {
|
|
3478
3764
|
var props = __objRest(_a, []);
|
|
3479
|
-
return /* @__PURE__ */ (0,
|
|
3765
|
+
return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_radix_ui14.DropdownMenu.Portal, __spreadValues({ "data-slot": "dropdown-menu-portal" }, props));
|
|
3480
3766
|
}
|
|
3481
3767
|
function DropdownMenuTrigger(_a) {
|
|
3482
3768
|
var props = __objRest(_a, []);
|
|
3483
|
-
return /* @__PURE__ */ (0,
|
|
3769
|
+
return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
|
|
3484
3770
|
import_radix_ui14.DropdownMenu.Trigger,
|
|
3485
3771
|
__spreadValues({
|
|
3486
3772
|
"data-slot": "dropdown-menu-trigger"
|
|
@@ -3495,7 +3781,7 @@ function DropdownMenuContent(_a) {
|
|
|
3495
3781
|
"className",
|
|
3496
3782
|
"sideOffset"
|
|
3497
3783
|
]);
|
|
3498
|
-
return /* @__PURE__ */ (0,
|
|
3784
|
+
return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_radix_ui14.DropdownMenu.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
|
|
3499
3785
|
import_radix_ui14.DropdownMenu.Content,
|
|
3500
3786
|
__spreadValues({
|
|
3501
3787
|
"data-slot": "dropdown-menu-content",
|
|
@@ -3509,7 +3795,7 @@ function DropdownMenuContent(_a) {
|
|
|
3509
3795
|
}
|
|
3510
3796
|
function DropdownMenuGroup(_a) {
|
|
3511
3797
|
var props = __objRest(_a, []);
|
|
3512
|
-
return /* @__PURE__ */ (0,
|
|
3798
|
+
return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_radix_ui14.DropdownMenu.Group, __spreadValues({ "data-slot": "dropdown-menu-group" }, props));
|
|
3513
3799
|
}
|
|
3514
3800
|
function DropdownMenuItem(_a) {
|
|
3515
3801
|
var _b = _a, {
|
|
@@ -3521,7 +3807,7 @@ function DropdownMenuItem(_a) {
|
|
|
3521
3807
|
"inset",
|
|
3522
3808
|
"variant"
|
|
3523
3809
|
]);
|
|
3524
|
-
return /* @__PURE__ */ (0,
|
|
3810
|
+
return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
|
|
3525
3811
|
import_radix_ui14.DropdownMenu.Item,
|
|
3526
3812
|
__spreadValues({
|
|
3527
3813
|
"data-slot": "dropdown-menu-item",
|
|
@@ -3544,7 +3830,7 @@ function DropdownMenuCheckboxItem(_a) {
|
|
|
3544
3830
|
"children",
|
|
3545
3831
|
"checked"
|
|
3546
3832
|
]);
|
|
3547
|
-
return /* @__PURE__ */ (0,
|
|
3833
|
+
return /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(
|
|
3548
3834
|
import_radix_ui14.DropdownMenu.CheckboxItem,
|
|
3549
3835
|
__spreadProps(__spreadValues({
|
|
3550
3836
|
"data-slot": "dropdown-menu-checkbox-item",
|
|
@@ -3555,7 +3841,7 @@ function DropdownMenuCheckboxItem(_a) {
|
|
|
3555
3841
|
checked
|
|
3556
3842
|
}, props), {
|
|
3557
3843
|
children: [
|
|
3558
|
-
/* @__PURE__ */ (0,
|
|
3844
|
+
/* @__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_ui14.DropdownMenu.ItemIndicator, { children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_lucide_react15.CheckIcon, { className: "size-4" }) }) }),
|
|
3559
3845
|
children
|
|
3560
3846
|
]
|
|
3561
3847
|
})
|
|
@@ -3563,7 +3849,7 @@ function DropdownMenuCheckboxItem(_a) {
|
|
|
3563
3849
|
}
|
|
3564
3850
|
function DropdownMenuRadioGroup(_a) {
|
|
3565
3851
|
var props = __objRest(_a, []);
|
|
3566
|
-
return /* @__PURE__ */ (0,
|
|
3852
|
+
return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
|
|
3567
3853
|
import_radix_ui14.DropdownMenu.RadioGroup,
|
|
3568
3854
|
__spreadValues({
|
|
3569
3855
|
"data-slot": "dropdown-menu-radio-group"
|
|
@@ -3578,7 +3864,7 @@ function DropdownMenuRadioItem(_a) {
|
|
|
3578
3864
|
"className",
|
|
3579
3865
|
"children"
|
|
3580
3866
|
]);
|
|
3581
|
-
return /* @__PURE__ */ (0,
|
|
3867
|
+
return /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(
|
|
3582
3868
|
import_radix_ui14.DropdownMenu.RadioItem,
|
|
3583
3869
|
__spreadProps(__spreadValues({
|
|
3584
3870
|
"data-slot": "dropdown-menu-radio-item",
|
|
@@ -3588,7 +3874,7 @@ function DropdownMenuRadioItem(_a) {
|
|
|
3588
3874
|
)
|
|
3589
3875
|
}, props), {
|
|
3590
3876
|
children: [
|
|
3591
|
-
/* @__PURE__ */ (0,
|
|
3877
|
+
/* @__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_ui14.DropdownMenu.ItemIndicator, { children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_lucide_react15.CircleIcon, { className: "size-2 fill-current" }) }) }),
|
|
3592
3878
|
children
|
|
3593
3879
|
]
|
|
3594
3880
|
})
|
|
@@ -3602,7 +3888,7 @@ function DropdownMenuLabel(_a) {
|
|
|
3602
3888
|
"className",
|
|
3603
3889
|
"inset"
|
|
3604
3890
|
]);
|
|
3605
|
-
return /* @__PURE__ */ (0,
|
|
3891
|
+
return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
|
|
3606
3892
|
import_radix_ui14.DropdownMenu.Label,
|
|
3607
3893
|
__spreadValues({
|
|
3608
3894
|
"data-slot": "dropdown-menu-label",
|
|
@@ -3620,7 +3906,7 @@ function DropdownMenuSeparator(_a) {
|
|
|
3620
3906
|
} = _b, props = __objRest(_b, [
|
|
3621
3907
|
"className"
|
|
3622
3908
|
]);
|
|
3623
|
-
return /* @__PURE__ */ (0,
|
|
3909
|
+
return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
|
|
3624
3910
|
import_radix_ui14.DropdownMenu.Separator,
|
|
3625
3911
|
__spreadValues({
|
|
3626
3912
|
"data-slot": "dropdown-menu-separator",
|
|
@@ -3634,7 +3920,7 @@ function DropdownMenuShortcut(_a) {
|
|
|
3634
3920
|
} = _b, props = __objRest(_b, [
|
|
3635
3921
|
"className"
|
|
3636
3922
|
]);
|
|
3637
|
-
return /* @__PURE__ */ (0,
|
|
3923
|
+
return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
|
|
3638
3924
|
"span",
|
|
3639
3925
|
__spreadValues({
|
|
3640
3926
|
"data-slot": "dropdown-menu-shortcut",
|
|
@@ -3647,7 +3933,7 @@ function DropdownMenuShortcut(_a) {
|
|
|
3647
3933
|
}
|
|
3648
3934
|
function DropdownMenuSub(_a) {
|
|
3649
3935
|
var props = __objRest(_a, []);
|
|
3650
|
-
return /* @__PURE__ */ (0,
|
|
3936
|
+
return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_radix_ui14.DropdownMenu.Sub, __spreadValues({ "data-slot": "dropdown-menu-sub" }, props));
|
|
3651
3937
|
}
|
|
3652
3938
|
function DropdownMenuSubTrigger(_a) {
|
|
3653
3939
|
var _b = _a, {
|
|
@@ -3659,7 +3945,7 @@ function DropdownMenuSubTrigger(_a) {
|
|
|
3659
3945
|
"inset",
|
|
3660
3946
|
"children"
|
|
3661
3947
|
]);
|
|
3662
|
-
return /* @__PURE__ */ (0,
|
|
3948
|
+
return /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(
|
|
3663
3949
|
import_radix_ui14.DropdownMenu.SubTrigger,
|
|
3664
3950
|
__spreadProps(__spreadValues({
|
|
3665
3951
|
"data-slot": "dropdown-menu-sub-trigger",
|
|
@@ -3671,7 +3957,7 @@ function DropdownMenuSubTrigger(_a) {
|
|
|
3671
3957
|
}, props), {
|
|
3672
3958
|
children: [
|
|
3673
3959
|
children,
|
|
3674
|
-
/* @__PURE__ */ (0,
|
|
3960
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_lucide_react15.ChevronRightIcon, { className: "ml-auto size-4" })
|
|
3675
3961
|
]
|
|
3676
3962
|
})
|
|
3677
3963
|
);
|
|
@@ -3682,7 +3968,7 @@ function DropdownMenuSubContent(_a) {
|
|
|
3682
3968
|
} = _b, props = __objRest(_b, [
|
|
3683
3969
|
"className"
|
|
3684
3970
|
]);
|
|
3685
|
-
return /* @__PURE__ */ (0,
|
|
3971
|
+
return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
|
|
3686
3972
|
import_radix_ui14.DropdownMenu.SubContent,
|
|
3687
3973
|
__spreadValues({
|
|
3688
3974
|
"data-slot": "dropdown-menu-sub-content",
|
|
@@ -3696,10 +3982,10 @@ function DropdownMenuSubContent(_a) {
|
|
|
3696
3982
|
|
|
3697
3983
|
// components/ui/empty.tsx
|
|
3698
3984
|
var import_class_variance_authority6 = require("class-variance-authority");
|
|
3699
|
-
var
|
|
3985
|
+
var import_jsx_runtime26 = require("react/jsx-runtime");
|
|
3700
3986
|
function Empty(_a) {
|
|
3701
3987
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
3702
|
-
return /* @__PURE__ */ (0,
|
|
3988
|
+
return /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
|
|
3703
3989
|
"div",
|
|
3704
3990
|
__spreadValues({
|
|
3705
3991
|
"data-slot": "empty",
|
|
@@ -3712,7 +3998,7 @@ function Empty(_a) {
|
|
|
3712
3998
|
}
|
|
3713
3999
|
function EmptyHeader(_a) {
|
|
3714
4000
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
3715
|
-
return /* @__PURE__ */ (0,
|
|
4001
|
+
return /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
|
|
3716
4002
|
"div",
|
|
3717
4003
|
__spreadValues({
|
|
3718
4004
|
"data-slot": "empty-header",
|
|
@@ -3745,7 +4031,7 @@ function EmptyMedia(_a) {
|
|
|
3745
4031
|
"className",
|
|
3746
4032
|
"variant"
|
|
3747
4033
|
]);
|
|
3748
|
-
return /* @__PURE__ */ (0,
|
|
4034
|
+
return /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
|
|
3749
4035
|
"div",
|
|
3750
4036
|
__spreadValues({
|
|
3751
4037
|
"data-slot": "empty-icon",
|
|
@@ -3756,7 +4042,7 @@ function EmptyMedia(_a) {
|
|
|
3756
4042
|
}
|
|
3757
4043
|
function EmptyTitle(_a) {
|
|
3758
4044
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
3759
|
-
return /* @__PURE__ */ (0,
|
|
4045
|
+
return /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
|
|
3760
4046
|
"div",
|
|
3761
4047
|
__spreadValues({
|
|
3762
4048
|
"data-slot": "empty-title",
|
|
@@ -3766,7 +4052,7 @@ function EmptyTitle(_a) {
|
|
|
3766
4052
|
}
|
|
3767
4053
|
function EmptyDescription(_a) {
|
|
3768
4054
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
3769
|
-
return /* @__PURE__ */ (0,
|
|
4055
|
+
return /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
|
|
3770
4056
|
"div",
|
|
3771
4057
|
__spreadValues({
|
|
3772
4058
|
"data-slot": "empty-description",
|
|
@@ -3779,7 +4065,7 @@ function EmptyDescription(_a) {
|
|
|
3779
4065
|
}
|
|
3780
4066
|
function EmptyContent(_a) {
|
|
3781
4067
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
3782
|
-
return /* @__PURE__ */ (0,
|
|
4068
|
+
return /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
|
|
3783
4069
|
"div",
|
|
3784
4070
|
__spreadValues({
|
|
3785
4071
|
"data-slot": "empty-content",
|
|
@@ -3792,20 +4078,20 @@ function EmptyContent(_a) {
|
|
|
3792
4078
|
}
|
|
3793
4079
|
|
|
3794
4080
|
// components/ui/field.tsx
|
|
3795
|
-
var
|
|
4081
|
+
var React8 = __toESM(require("react"), 1);
|
|
3796
4082
|
var import_react = require("react");
|
|
3797
4083
|
var import_class_variance_authority7 = require("class-variance-authority");
|
|
3798
4084
|
|
|
3799
4085
|
// components/ui/label.tsx
|
|
3800
4086
|
var import_radix_ui15 = require("radix-ui");
|
|
3801
|
-
var
|
|
4087
|
+
var import_jsx_runtime27 = require("react/jsx-runtime");
|
|
3802
4088
|
function Label(_a) {
|
|
3803
4089
|
var _b = _a, {
|
|
3804
4090
|
className
|
|
3805
4091
|
} = _b, props = __objRest(_b, [
|
|
3806
4092
|
"className"
|
|
3807
4093
|
]);
|
|
3808
|
-
return /* @__PURE__ */ (0,
|
|
4094
|
+
return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
|
|
3809
4095
|
import_radix_ui15.Label.Root,
|
|
3810
4096
|
__spreadValues({
|
|
3811
4097
|
"data-slot": "label",
|
|
@@ -3821,7 +4107,7 @@ function Label(_a) {
|
|
|
3821
4107
|
|
|
3822
4108
|
// components/ui/separator.tsx
|
|
3823
4109
|
var import_radix_ui16 = require("radix-ui");
|
|
3824
|
-
var
|
|
4110
|
+
var import_jsx_runtime28 = require("react/jsx-runtime");
|
|
3825
4111
|
function Separator(_a) {
|
|
3826
4112
|
var _b = _a, {
|
|
3827
4113
|
className,
|
|
@@ -3832,7 +4118,7 @@ function Separator(_a) {
|
|
|
3832
4118
|
"orientation",
|
|
3833
4119
|
"decorative"
|
|
3834
4120
|
]);
|
|
3835
|
-
return /* @__PURE__ */ (0,
|
|
4121
|
+
return /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
|
|
3836
4122
|
import_radix_ui16.Separator.Root,
|
|
3837
4123
|
__spreadValues({
|
|
3838
4124
|
"data-slot": "separator",
|
|
@@ -3847,10 +4133,10 @@ function Separator(_a) {
|
|
|
3847
4133
|
}
|
|
3848
4134
|
|
|
3849
4135
|
// components/ui/field.tsx
|
|
3850
|
-
var
|
|
3851
|
-
var FieldSizeContext =
|
|
4136
|
+
var import_jsx_runtime29 = require("react/jsx-runtime");
|
|
4137
|
+
var FieldSizeContext = React8.createContext("md");
|
|
3852
4138
|
function useFieldSize() {
|
|
3853
|
-
return
|
|
4139
|
+
return React8.useContext(FieldSizeContext);
|
|
3854
4140
|
}
|
|
3855
4141
|
var fieldLabelType = {
|
|
3856
4142
|
sm: "type-field-label-sm",
|
|
@@ -3859,7 +4145,7 @@ var fieldLabelType = {
|
|
|
3859
4145
|
};
|
|
3860
4146
|
function FieldSet(_a) {
|
|
3861
4147
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
3862
|
-
return /* @__PURE__ */ (0,
|
|
4148
|
+
return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
|
|
3863
4149
|
"fieldset",
|
|
3864
4150
|
__spreadValues({
|
|
3865
4151
|
"data-slot": "field-set",
|
|
@@ -3879,7 +4165,7 @@ function FieldLegend(_a) {
|
|
|
3879
4165
|
"className",
|
|
3880
4166
|
"variant"
|
|
3881
4167
|
]);
|
|
3882
|
-
return /* @__PURE__ */ (0,
|
|
4168
|
+
return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
|
|
3883
4169
|
"legend",
|
|
3884
4170
|
__spreadValues({
|
|
3885
4171
|
"data-slot": "field-legend",
|
|
@@ -3896,7 +4182,7 @@ function FieldLegend(_a) {
|
|
|
3896
4182
|
}
|
|
3897
4183
|
function FieldGroup(_a) {
|
|
3898
4184
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
3899
|
-
return /* @__PURE__ */ (0,
|
|
4185
|
+
return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
|
|
3900
4186
|
"div",
|
|
3901
4187
|
__spreadValues({
|
|
3902
4188
|
"data-slot": "field-group",
|
|
@@ -3946,7 +4232,7 @@ function Field(_a) {
|
|
|
3946
4232
|
"orientation",
|
|
3947
4233
|
"size"
|
|
3948
4234
|
]);
|
|
3949
|
-
return /* @__PURE__ */ (0,
|
|
4235
|
+
return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(FieldSizeContext.Provider, { value: size != null ? size : "md", children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
|
|
3950
4236
|
"div",
|
|
3951
4237
|
__spreadValues({
|
|
3952
4238
|
role: "group",
|
|
@@ -3959,7 +4245,7 @@ function Field(_a) {
|
|
|
3959
4245
|
}
|
|
3960
4246
|
function FieldContent(_a) {
|
|
3961
4247
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
3962
|
-
return /* @__PURE__ */ (0,
|
|
4248
|
+
return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
|
|
3963
4249
|
"div",
|
|
3964
4250
|
__spreadValues({
|
|
3965
4251
|
"data-slot": "field-content",
|
|
@@ -3977,7 +4263,7 @@ function FieldLabel(_a) {
|
|
|
3977
4263
|
"className"
|
|
3978
4264
|
]);
|
|
3979
4265
|
const size = useFieldSize();
|
|
3980
|
-
return /* @__PURE__ */ (0,
|
|
4266
|
+
return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
|
|
3981
4267
|
Label,
|
|
3982
4268
|
__spreadValues({
|
|
3983
4269
|
"data-slot": "field-label",
|
|
@@ -3994,7 +4280,7 @@ function FieldLabel(_a) {
|
|
|
3994
4280
|
function FieldTitle(_a) {
|
|
3995
4281
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
3996
4282
|
const size = useFieldSize();
|
|
3997
|
-
return /* @__PURE__ */ (0,
|
|
4283
|
+
return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
|
|
3998
4284
|
"div",
|
|
3999
4285
|
__spreadValues({
|
|
4000
4286
|
"data-slot": "field-label",
|
|
@@ -4008,7 +4294,7 @@ function FieldTitle(_a) {
|
|
|
4008
4294
|
}
|
|
4009
4295
|
function FieldDescription(_a) {
|
|
4010
4296
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
4011
|
-
return /* @__PURE__ */ (0,
|
|
4297
|
+
return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
|
|
4012
4298
|
"p",
|
|
4013
4299
|
__spreadValues({
|
|
4014
4300
|
"data-slot": "field-description",
|
|
@@ -4029,7 +4315,7 @@ function FieldSeparator(_a) {
|
|
|
4029
4315
|
"children",
|
|
4030
4316
|
"className"
|
|
4031
4317
|
]);
|
|
4032
|
-
return /* @__PURE__ */ (0,
|
|
4318
|
+
return /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(
|
|
4033
4319
|
"div",
|
|
4034
4320
|
__spreadProps(__spreadValues({
|
|
4035
4321
|
"data-slot": "field-separator",
|
|
@@ -4040,8 +4326,8 @@ function FieldSeparator(_a) {
|
|
|
4040
4326
|
)
|
|
4041
4327
|
}, props), {
|
|
4042
4328
|
children: [
|
|
4043
|
-
/* @__PURE__ */ (0,
|
|
4044
|
-
children && /* @__PURE__ */ (0,
|
|
4329
|
+
/* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Separator, { className: "absolute inset-0 top-1/2" }),
|
|
4330
|
+
children && /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
|
|
4045
4331
|
"span",
|
|
4046
4332
|
{
|
|
4047
4333
|
className: "relative mx-auto block w-fit bg-background-primary-surface px-2 text-text-subtle-default",
|
|
@@ -4077,14 +4363,14 @@ function FieldError(_a) {
|
|
|
4077
4363
|
if ((uniqueErrors == null ? void 0 : uniqueErrors.length) == 1) {
|
|
4078
4364
|
return (_a2 = uniqueErrors[0]) == null ? void 0 : _a2.message;
|
|
4079
4365
|
}
|
|
4080
|
-
return /* @__PURE__ */ (0,
|
|
4081
|
-
(error, index) => (error == null ? void 0 : error.message) && /* @__PURE__ */ (0,
|
|
4366
|
+
return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("ul", { className: "ml-4 flex list-disc flex-col gap-1", children: uniqueErrors.map(
|
|
4367
|
+
(error, index) => (error == null ? void 0 : error.message) && /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("li", { children: error.message }, index)
|
|
4082
4368
|
) });
|
|
4083
4369
|
}, [children, errors]);
|
|
4084
4370
|
if (!content) {
|
|
4085
4371
|
return null;
|
|
4086
4372
|
}
|
|
4087
|
-
return /* @__PURE__ */ (0,
|
|
4373
|
+
return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
|
|
4088
4374
|
"div",
|
|
4089
4375
|
__spreadProps(__spreadValues({
|
|
4090
4376
|
role: "alert",
|
|
@@ -4098,14 +4384,14 @@ function FieldError(_a) {
|
|
|
4098
4384
|
|
|
4099
4385
|
// components/ui/hover-card.tsx
|
|
4100
4386
|
var import_radix_ui17 = require("radix-ui");
|
|
4101
|
-
var
|
|
4387
|
+
var import_jsx_runtime30 = require("react/jsx-runtime");
|
|
4102
4388
|
function HoverCard(_a) {
|
|
4103
4389
|
var props = __objRest(_a, []);
|
|
4104
|
-
return /* @__PURE__ */ (0,
|
|
4390
|
+
return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(import_radix_ui17.HoverCard.Root, __spreadValues({ "data-slot": "hover-card" }, props));
|
|
4105
4391
|
}
|
|
4106
4392
|
function HoverCardTrigger(_a) {
|
|
4107
4393
|
var props = __objRest(_a, []);
|
|
4108
|
-
return /* @__PURE__ */ (0,
|
|
4394
|
+
return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(import_radix_ui17.HoverCard.Trigger, __spreadValues({ "data-slot": "hover-card-trigger" }, props));
|
|
4109
4395
|
}
|
|
4110
4396
|
function HoverCardContent(_a) {
|
|
4111
4397
|
var _b = _a, {
|
|
@@ -4117,7 +4403,7 @@ function HoverCardContent(_a) {
|
|
|
4117
4403
|
"align",
|
|
4118
4404
|
"sideOffset"
|
|
4119
4405
|
]);
|
|
4120
|
-
return /* @__PURE__ */ (0,
|
|
4406
|
+
return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(import_radix_ui17.HoverCard.Portal, { "data-slot": "hover-card-portal", children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
|
|
4121
4407
|
import_radix_ui17.HoverCard.Content,
|
|
4122
4408
|
__spreadValues({
|
|
4123
4409
|
"data-slot": "hover-card-content",
|
|
@@ -4133,7 +4419,7 @@ function HoverCardContent(_a) {
|
|
|
4133
4419
|
|
|
4134
4420
|
// components/ui/input.tsx
|
|
4135
4421
|
var import_class_variance_authority8 = require("class-variance-authority");
|
|
4136
|
-
var
|
|
4422
|
+
var import_jsx_runtime31 = require("react/jsx-runtime");
|
|
4137
4423
|
var inputVariants = (0, import_class_variance_authority8.cva)(
|
|
4138
4424
|
[
|
|
4139
4425
|
"w-full min-w-0 rounded-xs border font-body transition-[color,box-shadow] outline-none",
|
|
@@ -4204,7 +4490,7 @@ function Input(_a) {
|
|
|
4204
4490
|
]);
|
|
4205
4491
|
const fieldSize = useFieldSize();
|
|
4206
4492
|
const resolvedSize = size != null ? size : fieldSize;
|
|
4207
|
-
return /* @__PURE__ */ (0,
|
|
4493
|
+
return /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
|
|
4208
4494
|
"input",
|
|
4209
4495
|
__spreadValues({
|
|
4210
4496
|
type,
|
|
@@ -4217,14 +4503,14 @@ function Input(_a) {
|
|
|
4217
4503
|
}
|
|
4218
4504
|
|
|
4219
4505
|
// components/ui/input-group.tsx
|
|
4220
|
-
var
|
|
4506
|
+
var React9 = __toESM(require("react"), 1);
|
|
4221
4507
|
var import_class_variance_authority9 = require("class-variance-authority");
|
|
4222
4508
|
|
|
4223
4509
|
// components/ui/textarea.tsx
|
|
4224
|
-
var
|
|
4510
|
+
var import_jsx_runtime32 = require("react/jsx-runtime");
|
|
4225
4511
|
function Textarea(_a) {
|
|
4226
4512
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
4227
|
-
return /* @__PURE__ */ (0,
|
|
4513
|
+
return /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
|
|
4228
4514
|
"textarea",
|
|
4229
4515
|
__spreadValues({
|
|
4230
4516
|
"data-slot": "textarea",
|
|
@@ -4237,9 +4523,9 @@ function Textarea(_a) {
|
|
|
4237
4523
|
}
|
|
4238
4524
|
|
|
4239
4525
|
// components/ui/input-group.tsx
|
|
4240
|
-
var
|
|
4241
|
-
var InputGroupSizeContext =
|
|
4242
|
-
var InputGroupVariantContext =
|
|
4526
|
+
var import_jsx_runtime33 = require("react/jsx-runtime");
|
|
4527
|
+
var InputGroupSizeContext = React9.createContext("md");
|
|
4528
|
+
var InputGroupVariantContext = React9.createContext("default");
|
|
4243
4529
|
var inputGroupVariants = (0, import_class_variance_authority9.cva)(
|
|
4244
4530
|
[
|
|
4245
4531
|
"group/input-group relative flex w-full items-center rounded-xs border",
|
|
@@ -4298,11 +4584,11 @@ function InputGroup(_a) {
|
|
|
4298
4584
|
]);
|
|
4299
4585
|
const fieldSize = useFieldSize();
|
|
4300
4586
|
const resolvedSize = size != null ? size : fieldSize;
|
|
4301
|
-
return /* @__PURE__ */ (0,
|
|
4587
|
+
return /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
|
|
4302
4588
|
InputGroupVariantContext.Provider,
|
|
4303
4589
|
{
|
|
4304
4590
|
value: variant,
|
|
4305
|
-
children: /* @__PURE__ */ (0,
|
|
4591
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(InputGroupSizeContext.Provider, { value: resolvedSize, children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
|
|
4306
4592
|
"div",
|
|
4307
4593
|
__spreadValues({
|
|
4308
4594
|
"data-slot": "input-group",
|
|
@@ -4357,7 +4643,7 @@ function InputGroupAddon(_a) {
|
|
|
4357
4643
|
"className",
|
|
4358
4644
|
"align"
|
|
4359
4645
|
]);
|
|
4360
|
-
return /* @__PURE__ */ (0,
|
|
4646
|
+
return /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
|
|
4361
4647
|
"div",
|
|
4362
4648
|
__spreadValues({
|
|
4363
4649
|
role: "group",
|
|
@@ -4404,7 +4690,7 @@ function InputGroupButton(_a) {
|
|
|
4404
4690
|
"variant",
|
|
4405
4691
|
"size"
|
|
4406
4692
|
]);
|
|
4407
|
-
return /* @__PURE__ */ (0,
|
|
4693
|
+
return /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
|
|
4408
4694
|
Button,
|
|
4409
4695
|
__spreadValues({
|
|
4410
4696
|
type,
|
|
@@ -4417,7 +4703,7 @@ function InputGroupButton(_a) {
|
|
|
4417
4703
|
}
|
|
4418
4704
|
function InputGroupText(_a) {
|
|
4419
4705
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
4420
|
-
return /* @__PURE__ */ (0,
|
|
4706
|
+
return /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
|
|
4421
4707
|
"span",
|
|
4422
4708
|
__spreadValues({
|
|
4423
4709
|
className: cn(
|
|
@@ -4446,11 +4732,11 @@ function InputGroupInput(_a) {
|
|
|
4446
4732
|
"size",
|
|
4447
4733
|
"variant"
|
|
4448
4734
|
]);
|
|
4449
|
-
const groupSize =
|
|
4450
|
-
const groupVariant =
|
|
4735
|
+
const groupSize = React9.useContext(InputGroupSizeContext);
|
|
4736
|
+
const groupVariant = React9.useContext(InputGroupVariantContext);
|
|
4451
4737
|
const size = sizeProp != null ? sizeProp : groupSize;
|
|
4452
4738
|
const variant = variantProp != null ? variantProp : groupVariant;
|
|
4453
|
-
return /* @__PURE__ */ (0,
|
|
4739
|
+
return /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
|
|
4454
4740
|
Input,
|
|
4455
4741
|
__spreadValues({
|
|
4456
4742
|
"data-slot": "input-group-control",
|
|
@@ -4469,7 +4755,7 @@ function InputGroupTextarea(_a) {
|
|
|
4469
4755
|
} = _b, props = __objRest(_b, [
|
|
4470
4756
|
"className"
|
|
4471
4757
|
]);
|
|
4472
|
-
return /* @__PURE__ */ (0,
|
|
4758
|
+
return /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
|
|
4473
4759
|
Textarea,
|
|
4474
4760
|
__spreadValues({
|
|
4475
4761
|
"data-slot": "input-group-control",
|
|
@@ -4482,10 +4768,10 @@ function InputGroupTextarea(_a) {
|
|
|
4482
4768
|
}
|
|
4483
4769
|
|
|
4484
4770
|
// components/ui/input-otp.tsx
|
|
4485
|
-
var
|
|
4771
|
+
var React10 = __toESM(require("react"), 1);
|
|
4486
4772
|
var import_input_otp = require("input-otp");
|
|
4487
4773
|
var import_lucide_react16 = require("lucide-react");
|
|
4488
|
-
var
|
|
4774
|
+
var import_jsx_runtime34 = require("react/jsx-runtime");
|
|
4489
4775
|
function InputOTP(_a) {
|
|
4490
4776
|
var _b = _a, {
|
|
4491
4777
|
className,
|
|
@@ -4494,7 +4780,7 @@ function InputOTP(_a) {
|
|
|
4494
4780
|
"className",
|
|
4495
4781
|
"containerClassName"
|
|
4496
4782
|
]);
|
|
4497
|
-
return /* @__PURE__ */ (0,
|
|
4783
|
+
return /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
|
|
4498
4784
|
import_input_otp.OTPInput,
|
|
4499
4785
|
__spreadValues({
|
|
4500
4786
|
"data-slot": "input-otp",
|
|
@@ -4508,7 +4794,7 @@ function InputOTP(_a) {
|
|
|
4508
4794
|
}
|
|
4509
4795
|
function InputOTPGroup(_a) {
|
|
4510
4796
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
4511
|
-
return /* @__PURE__ */ (0,
|
|
4797
|
+
return /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
|
|
4512
4798
|
"div",
|
|
4513
4799
|
__spreadValues({
|
|
4514
4800
|
"data-slot": "input-otp-group",
|
|
@@ -4525,9 +4811,9 @@ function InputOTPSlot(_a) {
|
|
|
4525
4811
|
"className"
|
|
4526
4812
|
]);
|
|
4527
4813
|
var _a2;
|
|
4528
|
-
const inputOTPContext =
|
|
4814
|
+
const inputOTPContext = React10.useContext(import_input_otp.OTPInputContext);
|
|
4529
4815
|
const { char, hasFakeCaret, isActive } = (_a2 = inputOTPContext == null ? void 0 : inputOTPContext.slots[index]) != null ? _a2 : {};
|
|
4530
|
-
return /* @__PURE__ */ (0,
|
|
4816
|
+
return /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)(
|
|
4531
4817
|
"div",
|
|
4532
4818
|
__spreadProps(__spreadValues({
|
|
4533
4819
|
"data-slot": "input-otp-slot",
|
|
@@ -4539,20 +4825,20 @@ function InputOTPSlot(_a) {
|
|
|
4539
4825
|
}, props), {
|
|
4540
4826
|
children: [
|
|
4541
4827
|
char,
|
|
4542
|
-
hasFakeCaret && /* @__PURE__ */ (0,
|
|
4828
|
+
hasFakeCaret && /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("div", { className: "pointer-events-none absolute inset-0 flex items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("div", { className: "h-4 w-px animate-caret-blink bg-text-prominent-default duration-1000" }) })
|
|
4543
4829
|
]
|
|
4544
4830
|
})
|
|
4545
4831
|
);
|
|
4546
4832
|
}
|
|
4547
4833
|
function InputOTPSeparator(_a) {
|
|
4548
4834
|
var props = __objRest(_a, []);
|
|
4549
|
-
return /* @__PURE__ */ (0,
|
|
4835
|
+
return /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("div", __spreadProps(__spreadValues({ "data-slot": "input-otp-separator", role: "separator" }, props), { children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(import_lucide_react16.MinusIcon, {}) }));
|
|
4550
4836
|
}
|
|
4551
4837
|
|
|
4552
4838
|
// components/ui/item.tsx
|
|
4553
4839
|
var import_class_variance_authority10 = require("class-variance-authority");
|
|
4554
4840
|
var import_radix_ui18 = require("radix-ui");
|
|
4555
|
-
var
|
|
4841
|
+
var import_jsx_runtime35 = require("react/jsx-runtime");
|
|
4556
4842
|
function ItemGroup(_a) {
|
|
4557
4843
|
var _b = _a, {
|
|
4558
4844
|
className,
|
|
@@ -4561,7 +4847,7 @@ function ItemGroup(_a) {
|
|
|
4561
4847
|
"className",
|
|
4562
4848
|
"divider"
|
|
4563
4849
|
]);
|
|
4564
|
-
return /* @__PURE__ */ (0,
|
|
4850
|
+
return /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
|
|
4565
4851
|
"div",
|
|
4566
4852
|
__spreadValues({
|
|
4567
4853
|
role: "list",
|
|
@@ -4594,7 +4880,7 @@ function ItemSeparator(_a) {
|
|
|
4594
4880
|
} = _b, props = __objRest(_b, [
|
|
4595
4881
|
"className"
|
|
4596
4882
|
]);
|
|
4597
|
-
return /* @__PURE__ */ (0,
|
|
4883
|
+
return /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
|
|
4598
4884
|
Separator,
|
|
4599
4885
|
__spreadValues({
|
|
4600
4886
|
"data-slot": "item-separator",
|
|
@@ -4604,12 +4890,21 @@ function ItemSeparator(_a) {
|
|
|
4604
4890
|
);
|
|
4605
4891
|
}
|
|
4606
4892
|
var itemVariants = (0, import_class_variance_authority10.cva)(
|
|
4607
|
-
"group/item type-item-description flex flex-wrap items-center rounded-
|
|
4893
|
+
"group/item type-item-description flex flex-wrap items-center rounded-2xl border border-transparent transition-colors duration-instant outline-none focus-visible:border-ring-focus-default focus-visible:ring-[3px] focus-visible:ring-ring-focus-strong [a]:transition-colors [a]:hover:bg-background-hover-default",
|
|
4608
4894
|
{
|
|
4609
4895
|
variants: {
|
|
4610
4896
|
variant: {
|
|
4611
4897
|
default: "bg-transparent",
|
|
4612
4898
|
outline: "border-border-default-default text-text-prominent-default hover:bg-background-hover-default",
|
|
4899
|
+
/* `fill` is `outline` plus a solid surface: a bordered card that reads
|
|
4900
|
+
as its own plane on the page canvas, the wallet-ledger pattern.
|
|
4901
|
+
Its hover steps primary -> secondary surface like the default Chip,
|
|
4902
|
+
because the shared `background-hover-default` glaze is translucent —
|
|
4903
|
+
laid over a filled row it would let the canvas show through instead
|
|
4904
|
+
of darkening the fill. The `[a]:` rule repeats for the same reason:
|
|
4905
|
+
the base link hover is that same glaze and outranks a plain
|
|
4906
|
+
`hover:` on an anchor. */
|
|
4907
|
+
fill: "bg-background-primary-surface border-border-default-default text-text-prominent-default hover:bg-background-secondary-surface [a]:hover:bg-background-secondary-surface",
|
|
4613
4908
|
muted: "bg-background-secondary-surface"
|
|
4614
4909
|
},
|
|
4615
4910
|
size: {
|
|
@@ -4636,7 +4931,7 @@ function Item(_a) {
|
|
|
4636
4931
|
"asChild"
|
|
4637
4932
|
]);
|
|
4638
4933
|
const Comp = asChild ? import_radix_ui18.Slot.Root : "div";
|
|
4639
|
-
return /* @__PURE__ */ (0,
|
|
4934
|
+
return /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
|
|
4640
4935
|
Comp,
|
|
4641
4936
|
__spreadValues({
|
|
4642
4937
|
"data-slot": "item",
|
|
@@ -4669,7 +4964,7 @@ function ItemMedia(_a) {
|
|
|
4669
4964
|
"className",
|
|
4670
4965
|
"variant"
|
|
4671
4966
|
]);
|
|
4672
|
-
return /* @__PURE__ */ (0,
|
|
4967
|
+
return /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
|
|
4673
4968
|
"div",
|
|
4674
4969
|
__spreadValues({
|
|
4675
4970
|
"data-slot": "item-media",
|
|
@@ -4680,7 +4975,7 @@ function ItemMedia(_a) {
|
|
|
4680
4975
|
}
|
|
4681
4976
|
function ItemContent(_a) {
|
|
4682
4977
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
4683
|
-
return /* @__PURE__ */ (0,
|
|
4978
|
+
return /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
|
|
4684
4979
|
"div",
|
|
4685
4980
|
__spreadValues({
|
|
4686
4981
|
"data-slot": "item-content",
|
|
@@ -4693,7 +4988,7 @@ function ItemContent(_a) {
|
|
|
4693
4988
|
}
|
|
4694
4989
|
function ItemTitle(_a) {
|
|
4695
4990
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
4696
|
-
return /* @__PURE__ */ (0,
|
|
4991
|
+
return /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
|
|
4697
4992
|
"div",
|
|
4698
4993
|
__spreadValues({
|
|
4699
4994
|
"data-slot": "item-title",
|
|
@@ -4706,7 +5001,7 @@ function ItemTitle(_a) {
|
|
|
4706
5001
|
}
|
|
4707
5002
|
function ItemDescription(_a) {
|
|
4708
5003
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
4709
|
-
return /* @__PURE__ */ (0,
|
|
5004
|
+
return /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
|
|
4710
5005
|
"p",
|
|
4711
5006
|
__spreadValues({
|
|
4712
5007
|
"data-slot": "item-description",
|
|
@@ -4720,7 +5015,7 @@ function ItemDescription(_a) {
|
|
|
4720
5015
|
}
|
|
4721
5016
|
function ItemActions(_a) {
|
|
4722
5017
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
4723
|
-
return /* @__PURE__ */ (0,
|
|
5018
|
+
return /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
|
|
4724
5019
|
"div",
|
|
4725
5020
|
__spreadValues({
|
|
4726
5021
|
"data-slot": "item-actions",
|
|
@@ -4730,7 +5025,7 @@ function ItemActions(_a) {
|
|
|
4730
5025
|
}
|
|
4731
5026
|
function ItemHeader(_a) {
|
|
4732
5027
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
4733
|
-
return /* @__PURE__ */ (0,
|
|
5028
|
+
return /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
|
|
4734
5029
|
"div",
|
|
4735
5030
|
__spreadValues({
|
|
4736
5031
|
"data-slot": "item-header",
|
|
@@ -4743,7 +5038,7 @@ function ItemHeader(_a) {
|
|
|
4743
5038
|
}
|
|
4744
5039
|
function ItemFooter(_a) {
|
|
4745
5040
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
4746
|
-
return /* @__PURE__ */ (0,
|
|
5041
|
+
return /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
|
|
4747
5042
|
"div",
|
|
4748
5043
|
__spreadValues({
|
|
4749
5044
|
"data-slot": "item-footer",
|
|
@@ -4758,7 +5053,7 @@ function ItemFooter(_a) {
|
|
|
4758
5053
|
// components/ui/link.tsx
|
|
4759
5054
|
var import_class_variance_authority11 = require("class-variance-authority");
|
|
4760
5055
|
var import_radix_ui19 = require("radix-ui");
|
|
4761
|
-
var
|
|
5056
|
+
var import_jsx_runtime36 = require("react/jsx-runtime");
|
|
4762
5057
|
var linkVariants = (0, import_class_variance_authority11.cva)(
|
|
4763
5058
|
[
|
|
4764
5059
|
"inline-flex shrink-0 items-center gap-1.5 whitespace-nowrap transition-colors outline-none focus-visible:ring-[3px] focus-visible:ring-ring-focus-strong active:opacity-60 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg]:inline font-display normal-case",
|
|
@@ -4800,7 +5095,7 @@ function Link(_a) {
|
|
|
4800
5095
|
"asChild"
|
|
4801
5096
|
]);
|
|
4802
5097
|
const Comp = asChild ? import_radix_ui19.Slot.Root : "a";
|
|
4803
|
-
return /* @__PURE__ */ (0,
|
|
5098
|
+
return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
|
|
4804
5099
|
Comp,
|
|
4805
5100
|
__spreadValues({
|
|
4806
5101
|
"data-slot": "link",
|
|
@@ -4814,14 +5109,14 @@ function Link(_a) {
|
|
|
4814
5109
|
// components/ui/menubar.tsx
|
|
4815
5110
|
var import_lucide_react17 = require("lucide-react");
|
|
4816
5111
|
var import_radix_ui20 = require("radix-ui");
|
|
4817
|
-
var
|
|
5112
|
+
var import_jsx_runtime37 = require("react/jsx-runtime");
|
|
4818
5113
|
function Menubar(_a) {
|
|
4819
5114
|
var _b = _a, {
|
|
4820
5115
|
className
|
|
4821
5116
|
} = _b, props = __objRest(_b, [
|
|
4822
5117
|
"className"
|
|
4823
5118
|
]);
|
|
4824
|
-
return /* @__PURE__ */ (0,
|
|
5119
|
+
return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
|
|
4825
5120
|
import_radix_ui20.Menubar.Root,
|
|
4826
5121
|
__spreadValues({
|
|
4827
5122
|
"data-slot": "menubar",
|
|
@@ -4834,19 +5129,19 @@ function Menubar(_a) {
|
|
|
4834
5129
|
}
|
|
4835
5130
|
function MenubarMenu(_a) {
|
|
4836
5131
|
var props = __objRest(_a, []);
|
|
4837
|
-
return /* @__PURE__ */ (0,
|
|
5132
|
+
return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(import_radix_ui20.Menubar.Menu, __spreadValues({ "data-slot": "menubar-menu" }, props));
|
|
4838
5133
|
}
|
|
4839
5134
|
function MenubarGroup(_a) {
|
|
4840
5135
|
var props = __objRest(_a, []);
|
|
4841
|
-
return /* @__PURE__ */ (0,
|
|
5136
|
+
return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(import_radix_ui20.Menubar.Group, __spreadValues({ "data-slot": "menubar-group" }, props));
|
|
4842
5137
|
}
|
|
4843
5138
|
function MenubarPortal(_a) {
|
|
4844
5139
|
var props = __objRest(_a, []);
|
|
4845
|
-
return /* @__PURE__ */ (0,
|
|
5140
|
+
return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(import_radix_ui20.Menubar.Portal, __spreadValues({ "data-slot": "menubar-portal" }, props));
|
|
4846
5141
|
}
|
|
4847
5142
|
function MenubarRadioGroup(_a) {
|
|
4848
5143
|
var props = __objRest(_a, []);
|
|
4849
|
-
return /* @__PURE__ */ (0,
|
|
5144
|
+
return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(import_radix_ui20.Menubar.RadioGroup, __spreadValues({ "data-slot": "menubar-radio-group" }, props));
|
|
4850
5145
|
}
|
|
4851
5146
|
function MenubarTrigger(_a) {
|
|
4852
5147
|
var _b = _a, {
|
|
@@ -4854,7 +5149,7 @@ function MenubarTrigger(_a) {
|
|
|
4854
5149
|
} = _b, props = __objRest(_b, [
|
|
4855
5150
|
"className"
|
|
4856
5151
|
]);
|
|
4857
|
-
return /* @__PURE__ */ (0,
|
|
5152
|
+
return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
|
|
4858
5153
|
import_radix_ui20.Menubar.Trigger,
|
|
4859
5154
|
__spreadValues({
|
|
4860
5155
|
"data-slot": "menubar-trigger",
|
|
@@ -4877,7 +5172,7 @@ function MenubarContent(_a) {
|
|
|
4877
5172
|
"alignOffset",
|
|
4878
5173
|
"sideOffset"
|
|
4879
5174
|
]);
|
|
4880
|
-
return /* @__PURE__ */ (0,
|
|
5175
|
+
return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(MenubarPortal, { children: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
|
|
4881
5176
|
import_radix_ui20.Menubar.Content,
|
|
4882
5177
|
__spreadValues({
|
|
4883
5178
|
"data-slot": "menubar-content",
|
|
@@ -4901,7 +5196,7 @@ function MenubarItem(_a) {
|
|
|
4901
5196
|
"inset",
|
|
4902
5197
|
"variant"
|
|
4903
5198
|
]);
|
|
4904
|
-
return /* @__PURE__ */ (0,
|
|
5199
|
+
return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
|
|
4905
5200
|
import_radix_ui20.Menubar.Item,
|
|
4906
5201
|
__spreadValues({
|
|
4907
5202
|
"data-slot": "menubar-item",
|
|
@@ -4924,7 +5219,7 @@ function MenubarCheckboxItem(_a) {
|
|
|
4924
5219
|
"children",
|
|
4925
5220
|
"checked"
|
|
4926
5221
|
]);
|
|
4927
|
-
return /* @__PURE__ */ (0,
|
|
5222
|
+
return /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(
|
|
4928
5223
|
import_radix_ui20.Menubar.CheckboxItem,
|
|
4929
5224
|
__spreadProps(__spreadValues({
|
|
4930
5225
|
"data-slot": "menubar-checkbox-item",
|
|
@@ -4935,7 +5230,7 @@ function MenubarCheckboxItem(_a) {
|
|
|
4935
5230
|
checked
|
|
4936
5231
|
}, props), {
|
|
4937
5232
|
children: [
|
|
4938
|
-
/* @__PURE__ */ (0,
|
|
5233
|
+
/* @__PURE__ */ (0, import_jsx_runtime37.jsx)("span", { className: "pointer-events-none absolute left-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(import_radix_ui20.Menubar.ItemIndicator, { children: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(import_lucide_react17.CheckIcon, { className: "size-4" }) }) }),
|
|
4939
5234
|
children
|
|
4940
5235
|
]
|
|
4941
5236
|
})
|
|
@@ -4949,7 +5244,7 @@ function MenubarRadioItem(_a) {
|
|
|
4949
5244
|
"className",
|
|
4950
5245
|
"children"
|
|
4951
5246
|
]);
|
|
4952
|
-
return /* @__PURE__ */ (0,
|
|
5247
|
+
return /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(
|
|
4953
5248
|
import_radix_ui20.Menubar.RadioItem,
|
|
4954
5249
|
__spreadProps(__spreadValues({
|
|
4955
5250
|
"data-slot": "menubar-radio-item",
|
|
@@ -4959,7 +5254,7 @@ function MenubarRadioItem(_a) {
|
|
|
4959
5254
|
)
|
|
4960
5255
|
}, props), {
|
|
4961
5256
|
children: [
|
|
4962
|
-
/* @__PURE__ */ (0,
|
|
5257
|
+
/* @__PURE__ */ (0, import_jsx_runtime37.jsx)("span", { className: "pointer-events-none absolute left-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(import_radix_ui20.Menubar.ItemIndicator, { children: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(import_lucide_react17.CircleIcon, { className: "size-2 fill-current" }) }) }),
|
|
4963
5258
|
children
|
|
4964
5259
|
]
|
|
4965
5260
|
})
|
|
@@ -4973,7 +5268,7 @@ function MenubarLabel(_a) {
|
|
|
4973
5268
|
"className",
|
|
4974
5269
|
"inset"
|
|
4975
5270
|
]);
|
|
4976
|
-
return /* @__PURE__ */ (0,
|
|
5271
|
+
return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
|
|
4977
5272
|
import_radix_ui20.Menubar.Label,
|
|
4978
5273
|
__spreadValues({
|
|
4979
5274
|
"data-slot": "menubar-label",
|
|
@@ -4991,7 +5286,7 @@ function MenubarSeparator(_a) {
|
|
|
4991
5286
|
} = _b, props = __objRest(_b, [
|
|
4992
5287
|
"className"
|
|
4993
5288
|
]);
|
|
4994
|
-
return /* @__PURE__ */ (0,
|
|
5289
|
+
return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
|
|
4995
5290
|
import_radix_ui20.Menubar.Separator,
|
|
4996
5291
|
__spreadValues({
|
|
4997
5292
|
"data-slot": "menubar-separator",
|
|
@@ -5005,7 +5300,7 @@ function MenubarShortcut(_a) {
|
|
|
5005
5300
|
} = _b, props = __objRest(_b, [
|
|
5006
5301
|
"className"
|
|
5007
5302
|
]);
|
|
5008
|
-
return /* @__PURE__ */ (0,
|
|
5303
|
+
return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
|
|
5009
5304
|
"span",
|
|
5010
5305
|
__spreadValues({
|
|
5011
5306
|
"data-slot": "menubar-shortcut",
|
|
@@ -5018,7 +5313,7 @@ function MenubarShortcut(_a) {
|
|
|
5018
5313
|
}
|
|
5019
5314
|
function MenubarSub(_a) {
|
|
5020
5315
|
var props = __objRest(_a, []);
|
|
5021
|
-
return /* @__PURE__ */ (0,
|
|
5316
|
+
return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(import_radix_ui20.Menubar.Sub, __spreadValues({ "data-slot": "menubar-sub" }, props));
|
|
5022
5317
|
}
|
|
5023
5318
|
function MenubarSubTrigger(_a) {
|
|
5024
5319
|
var _b = _a, {
|
|
@@ -5030,7 +5325,7 @@ function MenubarSubTrigger(_a) {
|
|
|
5030
5325
|
"inset",
|
|
5031
5326
|
"children"
|
|
5032
5327
|
]);
|
|
5033
|
-
return /* @__PURE__ */ (0,
|
|
5328
|
+
return /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(
|
|
5034
5329
|
import_radix_ui20.Menubar.SubTrigger,
|
|
5035
5330
|
__spreadProps(__spreadValues({
|
|
5036
5331
|
"data-slot": "menubar-sub-trigger",
|
|
@@ -5042,7 +5337,7 @@ function MenubarSubTrigger(_a) {
|
|
|
5042
5337
|
}, props), {
|
|
5043
5338
|
children: [
|
|
5044
5339
|
children,
|
|
5045
|
-
/* @__PURE__ */ (0,
|
|
5340
|
+
/* @__PURE__ */ (0, import_jsx_runtime37.jsx)(import_lucide_react17.ChevronRightIcon, { className: "ml-auto" })
|
|
5046
5341
|
]
|
|
5047
5342
|
})
|
|
5048
5343
|
);
|
|
@@ -5053,7 +5348,7 @@ function MenubarSubContent(_a) {
|
|
|
5053
5348
|
} = _b, props = __objRest(_b, [
|
|
5054
5349
|
"className"
|
|
5055
5350
|
]);
|
|
5056
|
-
return /* @__PURE__ */ (0,
|
|
5351
|
+
return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
|
|
5057
5352
|
import_radix_ui20.Menubar.SubContent,
|
|
5058
5353
|
__spreadValues({
|
|
5059
5354
|
"data-slot": "menubar-sub-content",
|
|
@@ -5067,7 +5362,7 @@ function MenubarSubContent(_a) {
|
|
|
5067
5362
|
|
|
5068
5363
|
// components/ui/native-select.tsx
|
|
5069
5364
|
var import_lucide_react18 = require("lucide-react");
|
|
5070
|
-
var
|
|
5365
|
+
var import_jsx_runtime38 = require("react/jsx-runtime");
|
|
5071
5366
|
var sizeClasses = {
|
|
5072
5367
|
sm: "type-native-select-sm h-8 py-1",
|
|
5073
5368
|
md: "type-native-select-md h-10 py-2",
|
|
@@ -5083,13 +5378,13 @@ function NativeSelect(_a) {
|
|
|
5083
5378
|
]);
|
|
5084
5379
|
const fieldSize = useFieldSize();
|
|
5085
5380
|
const resolvedSize = size === "default" || size == null ? size == null ? fieldSize : "md" : size;
|
|
5086
|
-
return /* @__PURE__ */ (0,
|
|
5381
|
+
return /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(
|
|
5087
5382
|
"div",
|
|
5088
5383
|
{
|
|
5089
5384
|
className: "group/native-select relative w-fit has-[select:disabled]:text-text-disabled-default",
|
|
5090
5385
|
"data-slot": "native-select-wrapper",
|
|
5091
5386
|
children: [
|
|
5092
|
-
/* @__PURE__ */ (0,
|
|
5387
|
+
/* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
|
|
5093
5388
|
"select",
|
|
5094
5389
|
__spreadValues({
|
|
5095
5390
|
"data-slot": "native-select",
|
|
@@ -5102,7 +5397,7 @@ function NativeSelect(_a) {
|
|
|
5102
5397
|
)
|
|
5103
5398
|
}, props)
|
|
5104
5399
|
),
|
|
5105
|
-
/* @__PURE__ */ (0,
|
|
5400
|
+
/* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
|
|
5106
5401
|
import_lucide_react18.ChevronDownIcon,
|
|
5107
5402
|
{
|
|
5108
5403
|
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",
|
|
@@ -5116,7 +5411,7 @@ function NativeSelect(_a) {
|
|
|
5116
5411
|
}
|
|
5117
5412
|
function NativeSelectOption(_a) {
|
|
5118
5413
|
var props = __objRest(_a, []);
|
|
5119
|
-
return /* @__PURE__ */ (0,
|
|
5414
|
+
return /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("option", __spreadValues({ "data-slot": "native-select-option" }, props));
|
|
5120
5415
|
}
|
|
5121
5416
|
function NativeSelectOptGroup(_a) {
|
|
5122
5417
|
var _b = _a, {
|
|
@@ -5124,7 +5419,7 @@ function NativeSelectOptGroup(_a) {
|
|
|
5124
5419
|
} = _b, props = __objRest(_b, [
|
|
5125
5420
|
"className"
|
|
5126
5421
|
]);
|
|
5127
|
-
return /* @__PURE__ */ (0,
|
|
5422
|
+
return /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
|
|
5128
5423
|
"optgroup",
|
|
5129
5424
|
__spreadValues({
|
|
5130
5425
|
"data-slot": "native-select-optgroup",
|
|
@@ -5137,7 +5432,7 @@ function NativeSelectOptGroup(_a) {
|
|
|
5137
5432
|
var import_class_variance_authority12 = require("class-variance-authority");
|
|
5138
5433
|
var import_lucide_react19 = require("lucide-react");
|
|
5139
5434
|
var import_radix_ui21 = require("radix-ui");
|
|
5140
|
-
var
|
|
5435
|
+
var import_jsx_runtime39 = require("react/jsx-runtime");
|
|
5141
5436
|
function NavigationMenu(_a) {
|
|
5142
5437
|
var _b = _a, {
|
|
5143
5438
|
className,
|
|
@@ -5148,7 +5443,7 @@ function NavigationMenu(_a) {
|
|
|
5148
5443
|
"children",
|
|
5149
5444
|
"viewport"
|
|
5150
5445
|
]);
|
|
5151
|
-
return /* @__PURE__ */ (0,
|
|
5446
|
+
return /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)(
|
|
5152
5447
|
import_radix_ui21.NavigationMenu.Root,
|
|
5153
5448
|
__spreadProps(__spreadValues({
|
|
5154
5449
|
"data-slot": "navigation-menu",
|
|
@@ -5160,7 +5455,7 @@ function NavigationMenu(_a) {
|
|
|
5160
5455
|
}, props), {
|
|
5161
5456
|
children: [
|
|
5162
5457
|
children,
|
|
5163
|
-
viewport && /* @__PURE__ */ (0,
|
|
5458
|
+
viewport && /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(NavigationMenuViewport, {})
|
|
5164
5459
|
]
|
|
5165
5460
|
})
|
|
5166
5461
|
);
|
|
@@ -5171,7 +5466,7 @@ function NavigationMenuList(_a) {
|
|
|
5171
5466
|
} = _b, props = __objRest(_b, [
|
|
5172
5467
|
"className"
|
|
5173
5468
|
]);
|
|
5174
|
-
return /* @__PURE__ */ (0,
|
|
5469
|
+
return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
|
|
5175
5470
|
import_radix_ui21.NavigationMenu.List,
|
|
5176
5471
|
__spreadValues({
|
|
5177
5472
|
"data-slot": "navigation-menu-list",
|
|
@@ -5188,7 +5483,7 @@ function NavigationMenuItem(_a) {
|
|
|
5188
5483
|
} = _b, props = __objRest(_b, [
|
|
5189
5484
|
"className"
|
|
5190
5485
|
]);
|
|
5191
|
-
return /* @__PURE__ */ (0,
|
|
5486
|
+
return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
|
|
5192
5487
|
import_radix_ui21.NavigationMenu.Item,
|
|
5193
5488
|
__spreadValues({
|
|
5194
5489
|
"data-slot": "navigation-menu-item",
|
|
@@ -5207,7 +5502,7 @@ function NavigationMenuTrigger(_a) {
|
|
|
5207
5502
|
"className",
|
|
5208
5503
|
"children"
|
|
5209
5504
|
]);
|
|
5210
|
-
return /* @__PURE__ */ (0,
|
|
5505
|
+
return /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)(
|
|
5211
5506
|
import_radix_ui21.NavigationMenu.Trigger,
|
|
5212
5507
|
__spreadProps(__spreadValues({
|
|
5213
5508
|
"data-slot": "navigation-menu-trigger",
|
|
@@ -5216,7 +5511,7 @@ function NavigationMenuTrigger(_a) {
|
|
|
5216
5511
|
children: [
|
|
5217
5512
|
children,
|
|
5218
5513
|
" ",
|
|
5219
|
-
/* @__PURE__ */ (0,
|
|
5514
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
|
|
5220
5515
|
import_lucide_react19.ChevronDownIcon,
|
|
5221
5516
|
{
|
|
5222
5517
|
className: "relative top-[1px] ml-1 size-3 transition duration-slow group-data-[state=open]:rotate-180",
|
|
@@ -5233,7 +5528,7 @@ function NavigationMenuContent(_a) {
|
|
|
5233
5528
|
} = _b, props = __objRest(_b, [
|
|
5234
5529
|
"className"
|
|
5235
5530
|
]);
|
|
5236
|
-
return /* @__PURE__ */ (0,
|
|
5531
|
+
return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
|
|
5237
5532
|
import_radix_ui21.NavigationMenu.Content,
|
|
5238
5533
|
__spreadValues({
|
|
5239
5534
|
"data-slot": "navigation-menu-content",
|
|
@@ -5251,13 +5546,13 @@ function NavigationMenuViewport(_a) {
|
|
|
5251
5546
|
} = _b, props = __objRest(_b, [
|
|
5252
5547
|
"className"
|
|
5253
5548
|
]);
|
|
5254
|
-
return /* @__PURE__ */ (0,
|
|
5549
|
+
return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
|
|
5255
5550
|
"div",
|
|
5256
5551
|
{
|
|
5257
5552
|
className: cn(
|
|
5258
5553
|
"absolute top-full left-0 isolate z-50 flex justify-center"
|
|
5259
5554
|
),
|
|
5260
|
-
children: /* @__PURE__ */ (0,
|
|
5555
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
|
|
5261
5556
|
import_radix_ui21.NavigationMenu.Viewport,
|
|
5262
5557
|
__spreadValues({
|
|
5263
5558
|
"data-slot": "navigation-menu-viewport",
|
|
@@ -5276,7 +5571,7 @@ function NavigationMenuLink(_a) {
|
|
|
5276
5571
|
} = _b, props = __objRest(_b, [
|
|
5277
5572
|
"className"
|
|
5278
5573
|
]);
|
|
5279
|
-
return /* @__PURE__ */ (0,
|
|
5574
|
+
return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
|
|
5280
5575
|
import_radix_ui21.NavigationMenu.Link,
|
|
5281
5576
|
__spreadValues({
|
|
5282
5577
|
"data-slot": "navigation-menu-link",
|
|
@@ -5293,7 +5588,7 @@ function NavigationMenuIndicator(_a) {
|
|
|
5293
5588
|
} = _b, props = __objRest(_b, [
|
|
5294
5589
|
"className"
|
|
5295
5590
|
]);
|
|
5296
|
-
return /* @__PURE__ */ (0,
|
|
5591
|
+
return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
|
|
5297
5592
|
import_radix_ui21.NavigationMenu.Indicator,
|
|
5298
5593
|
__spreadProps(__spreadValues({
|
|
5299
5594
|
"data-slot": "navigation-menu-indicator",
|
|
@@ -5302,15 +5597,15 @@ function NavigationMenuIndicator(_a) {
|
|
|
5302
5597
|
className
|
|
5303
5598
|
)
|
|
5304
5599
|
}, props), {
|
|
5305
|
-
children: /* @__PURE__ */ (0,
|
|
5600
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("div", { className: "relative top-[60%] h-2 w-2 rotate-45 rounded-tl-sm bg-border-default-default" })
|
|
5306
5601
|
})
|
|
5307
5602
|
);
|
|
5308
5603
|
}
|
|
5309
5604
|
|
|
5310
5605
|
// components/ui/numpad.tsx
|
|
5311
|
-
var
|
|
5606
|
+
var React11 = __toESM(require("react"), 1);
|
|
5312
5607
|
var import_lucide_react20 = require("lucide-react");
|
|
5313
|
-
var
|
|
5608
|
+
var import_jsx_runtime40 = require("react/jsx-runtime");
|
|
5314
5609
|
var LONG_PRESS_MS = 600;
|
|
5315
5610
|
function Numpad(_a) {
|
|
5316
5611
|
var _b = _a, {
|
|
@@ -5326,8 +5621,8 @@ function Numpad(_a) {
|
|
|
5326
5621
|
"decimal",
|
|
5327
5622
|
"disabled"
|
|
5328
5623
|
]);
|
|
5329
|
-
const holdTimer =
|
|
5330
|
-
const longPressFired =
|
|
5624
|
+
const holdTimer = React11.useRef(null);
|
|
5625
|
+
const longPressFired = React11.useRef(false);
|
|
5331
5626
|
const startHold = () => {
|
|
5332
5627
|
longPressFired.current = false;
|
|
5333
5628
|
holdTimer.current = setTimeout(() => {
|
|
@@ -5339,7 +5634,7 @@ function Numpad(_a) {
|
|
|
5339
5634
|
if (holdTimer.current) clearTimeout(holdTimer.current);
|
|
5340
5635
|
holdTimer.current = null;
|
|
5341
5636
|
};
|
|
5342
|
-
|
|
5637
|
+
React11.useEffect(() => cancelHold, []);
|
|
5343
5638
|
const keys = [
|
|
5344
5639
|
"1",
|
|
5345
5640
|
"2",
|
|
@@ -5354,7 +5649,7 @@ function Numpad(_a) {
|
|
|
5354
5649
|
"0",
|
|
5355
5650
|
"backspace"
|
|
5356
5651
|
];
|
|
5357
|
-
return /* @__PURE__ */ (0,
|
|
5652
|
+
return /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
|
|
5358
5653
|
"div",
|
|
5359
5654
|
__spreadProps(__spreadValues({
|
|
5360
5655
|
"data-slot": "numpad",
|
|
@@ -5367,7 +5662,7 @@ function Numpad(_a) {
|
|
|
5367
5662
|
)
|
|
5368
5663
|
}, props), {
|
|
5369
5664
|
children: keys.map(
|
|
5370
|
-
(key, i) => key === null ? /* @__PURE__ */ (0,
|
|
5665
|
+
(key, i) => key === null ? /* @__PURE__ */ (0, import_jsx_runtime40.jsx)("span", { "aria-hidden": true }, `empty-${i}`) : /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
|
|
5371
5666
|
"button",
|
|
5372
5667
|
{
|
|
5373
5668
|
type: "button",
|
|
@@ -5392,7 +5687,7 @@ function Numpad(_a) {
|
|
|
5392
5687
|
}
|
|
5393
5688
|
onKeyPress == null ? void 0 : onKeyPress(key);
|
|
5394
5689
|
},
|
|
5395
|
-
children: key === "backspace" ? /* @__PURE__ */ (0,
|
|
5690
|
+
children: key === "backspace" ? /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(import_lucide_react20.Delete, { className: "size-5.5" }) : key
|
|
5396
5691
|
},
|
|
5397
5692
|
key
|
|
5398
5693
|
)
|
|
@@ -5403,14 +5698,14 @@ function Numpad(_a) {
|
|
|
5403
5698
|
|
|
5404
5699
|
// components/ui/popover.tsx
|
|
5405
5700
|
var import_radix_ui22 = require("radix-ui");
|
|
5406
|
-
var
|
|
5701
|
+
var import_jsx_runtime41 = require("react/jsx-runtime");
|
|
5407
5702
|
function Popover(_a) {
|
|
5408
5703
|
var props = __objRest(_a, []);
|
|
5409
|
-
return /* @__PURE__ */ (0,
|
|
5704
|
+
return /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(import_radix_ui22.Popover.Root, __spreadValues({ "data-slot": "popover" }, props));
|
|
5410
5705
|
}
|
|
5411
5706
|
function PopoverTrigger(_a) {
|
|
5412
5707
|
var props = __objRest(_a, []);
|
|
5413
|
-
return /* @__PURE__ */ (0,
|
|
5708
|
+
return /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(import_radix_ui22.Popover.Trigger, __spreadValues({ "data-slot": "popover-trigger" }, props));
|
|
5414
5709
|
}
|
|
5415
5710
|
function PopoverContent(_a) {
|
|
5416
5711
|
var _b = _a, {
|
|
@@ -5422,7 +5717,7 @@ function PopoverContent(_a) {
|
|
|
5422
5717
|
"align",
|
|
5423
5718
|
"sideOffset"
|
|
5424
5719
|
]);
|
|
5425
|
-
return /* @__PURE__ */ (0,
|
|
5720
|
+
return /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(import_radix_ui22.Popover.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
|
|
5426
5721
|
import_radix_ui22.Popover.Content,
|
|
5427
5722
|
__spreadValues({
|
|
5428
5723
|
"data-slot": "popover-content",
|
|
@@ -5437,11 +5732,11 @@ function PopoverContent(_a) {
|
|
|
5437
5732
|
}
|
|
5438
5733
|
function PopoverAnchor(_a) {
|
|
5439
5734
|
var props = __objRest(_a, []);
|
|
5440
|
-
return /* @__PURE__ */ (0,
|
|
5735
|
+
return /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(import_radix_ui22.Popover.Anchor, __spreadValues({ "data-slot": "popover-anchor" }, props));
|
|
5441
5736
|
}
|
|
5442
5737
|
function PopoverHeader(_a) {
|
|
5443
5738
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
5444
|
-
return /* @__PURE__ */ (0,
|
|
5739
|
+
return /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
|
|
5445
5740
|
"div",
|
|
5446
5741
|
__spreadValues({
|
|
5447
5742
|
"data-slot": "popover-header",
|
|
@@ -5451,7 +5746,7 @@ function PopoverHeader(_a) {
|
|
|
5451
5746
|
}
|
|
5452
5747
|
function PopoverTitle(_a) {
|
|
5453
5748
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
5454
|
-
return /* @__PURE__ */ (0,
|
|
5749
|
+
return /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
|
|
5455
5750
|
"div",
|
|
5456
5751
|
__spreadValues({
|
|
5457
5752
|
"data-slot": "popover-title",
|
|
@@ -5465,7 +5760,7 @@ function PopoverDescription(_a) {
|
|
|
5465
5760
|
} = _b, props = __objRest(_b, [
|
|
5466
5761
|
"className"
|
|
5467
5762
|
]);
|
|
5468
|
-
return /* @__PURE__ */ (0,
|
|
5763
|
+
return /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
|
|
5469
5764
|
"p",
|
|
5470
5765
|
__spreadValues({
|
|
5471
5766
|
"data-slot": "popover-description",
|
|
@@ -5475,9 +5770,9 @@ function PopoverDescription(_a) {
|
|
|
5475
5770
|
}
|
|
5476
5771
|
|
|
5477
5772
|
// components/ui/progress.tsx
|
|
5478
|
-
var
|
|
5773
|
+
var React12 = __toESM(require("react"), 1);
|
|
5479
5774
|
var import_radix_ui23 = require("radix-ui");
|
|
5480
|
-
var
|
|
5775
|
+
var import_jsx_runtime42 = require("react/jsx-runtime");
|
|
5481
5776
|
var BAR_HEIGHTS = {
|
|
5482
5777
|
sm: "h-1",
|
|
5483
5778
|
md: "h-2",
|
|
@@ -5520,11 +5815,11 @@ function Progress(_a) {
|
|
|
5520
5815
|
"onTimerEnd",
|
|
5521
5816
|
"children"
|
|
5522
5817
|
]);
|
|
5523
|
-
const [timerPct, setTimerPct] =
|
|
5818
|
+
const [timerPct, setTimerPct] = React12.useState(
|
|
5524
5819
|
timer != null ? direction === "up" ? 0 : 100 : null
|
|
5525
5820
|
);
|
|
5526
|
-
const endedRef =
|
|
5527
|
-
|
|
5821
|
+
const endedRef = React12.useRef(false);
|
|
5822
|
+
React12.useEffect(() => {
|
|
5528
5823
|
if (timer == null) {
|
|
5529
5824
|
setTimerPct(null);
|
|
5530
5825
|
return;
|
|
@@ -5550,7 +5845,7 @@ function Progress(_a) {
|
|
|
5550
5845
|
const content = typeof children === "function" ? children(pct) : children;
|
|
5551
5846
|
if (variant === "dots") {
|
|
5552
5847
|
const filled = Math.round(pct / 100 * segments);
|
|
5553
|
-
return /* @__PURE__ */ (0,
|
|
5848
|
+
return /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
|
|
5554
5849
|
"div",
|
|
5555
5850
|
__spreadProps(__spreadValues({
|
|
5556
5851
|
"data-slot": "progress",
|
|
@@ -5561,7 +5856,7 @@ function Progress(_a) {
|
|
|
5561
5856
|
"aria-valuenow": pct,
|
|
5562
5857
|
className: cn("flex items-center gap-1", className)
|
|
5563
5858
|
}, props), {
|
|
5564
|
-
children: Array.from({ length: segments }, (_, i) => /* @__PURE__ */ (0,
|
|
5859
|
+
children: Array.from({ length: segments }, (_, i) => /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
|
|
5565
5860
|
"span",
|
|
5566
5861
|
{
|
|
5567
5862
|
"data-slot": "progress-dot",
|
|
@@ -5580,7 +5875,7 @@ function Progress(_a) {
|
|
|
5580
5875
|
if (variant === "ring") {
|
|
5581
5876
|
const { box, r, stroke } = RINGS[size in RINGS ? size : "md"];
|
|
5582
5877
|
const circumference = 2 * Math.PI * r;
|
|
5583
|
-
return /* @__PURE__ */ (0,
|
|
5878
|
+
return /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(
|
|
5584
5879
|
"div",
|
|
5585
5880
|
__spreadProps(__spreadValues({
|
|
5586
5881
|
"data-slot": "progress",
|
|
@@ -5593,14 +5888,14 @@ function Progress(_a) {
|
|
|
5593
5888
|
style: { width: box, height: box }
|
|
5594
5889
|
}, props), {
|
|
5595
5890
|
children: [
|
|
5596
|
-
/* @__PURE__ */ (0,
|
|
5891
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(
|
|
5597
5892
|
"svg",
|
|
5598
5893
|
{
|
|
5599
5894
|
viewBox: `0 0 ${box} ${box}`,
|
|
5600
5895
|
className: "absolute inset-0 -rotate-90",
|
|
5601
5896
|
"aria-hidden": true,
|
|
5602
5897
|
children: [
|
|
5603
|
-
/* @__PURE__ */ (0,
|
|
5898
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
|
|
5604
5899
|
"circle",
|
|
5605
5900
|
{
|
|
5606
5901
|
cx: box / 2,
|
|
@@ -5611,7 +5906,7 @@ function Progress(_a) {
|
|
|
5611
5906
|
strokeWidth: stroke
|
|
5612
5907
|
}
|
|
5613
5908
|
),
|
|
5614
|
-
pct > 0 && /* @__PURE__ */ (0,
|
|
5909
|
+
pct > 0 && /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
|
|
5615
5910
|
"circle",
|
|
5616
5911
|
{
|
|
5617
5912
|
"data-slot": "progress-ring-fill",
|
|
@@ -5632,12 +5927,12 @@ function Progress(_a) {
|
|
|
5632
5927
|
]
|
|
5633
5928
|
}
|
|
5634
5929
|
),
|
|
5635
|
-
content != null && /* @__PURE__ */ (0,
|
|
5930
|
+
content != null && /* @__PURE__ */ (0, import_jsx_runtime42.jsx)("span", { className: "type-progress-value relative text-text-prominent-default", children: content })
|
|
5636
5931
|
]
|
|
5637
5932
|
})
|
|
5638
5933
|
);
|
|
5639
5934
|
}
|
|
5640
|
-
const bar = /* @__PURE__ */ (0,
|
|
5935
|
+
const bar = /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
|
|
5641
5936
|
import_radix_ui23.Progress.Root,
|
|
5642
5937
|
__spreadProps(__spreadValues({
|
|
5643
5938
|
"data-slot": "progress",
|
|
@@ -5651,7 +5946,7 @@ function Progress(_a) {
|
|
|
5651
5946
|
label == null && valueLabel == null && className
|
|
5652
5947
|
)
|
|
5653
5948
|
}, props), {
|
|
5654
|
-
children: /* @__PURE__ */ (0,
|
|
5949
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
|
|
5655
5950
|
import_radix_ui23.Progress.Indicator,
|
|
5656
5951
|
{
|
|
5657
5952
|
"data-slot": "progress-indicator",
|
|
@@ -5665,10 +5960,10 @@ function Progress(_a) {
|
|
|
5665
5960
|
})
|
|
5666
5961
|
);
|
|
5667
5962
|
if (label == null && valueLabel == null) return bar;
|
|
5668
|
-
return /* @__PURE__ */ (0,
|
|
5669
|
-
/* @__PURE__ */ (0,
|
|
5670
|
-
label != null && /* @__PURE__ */ (0,
|
|
5671
|
-
valueLabel != null && /* @__PURE__ */ (0,
|
|
5963
|
+
return /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)("div", { "data-slot": "progress-meter", className: cn("flex w-full flex-col gap-1.5", className), children: [
|
|
5964
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsxs)("div", { className: "flex items-baseline justify-between gap-3", children: [
|
|
5965
|
+
label != null && /* @__PURE__ */ (0, import_jsx_runtime42.jsx)("span", { className: "type-progress-label text-text-prominent-default", children: label }),
|
|
5966
|
+
valueLabel != null && /* @__PURE__ */ (0, import_jsx_runtime42.jsx)("span", { className: "type-progress-label ml-auto text-text-subtle-default tabular-nums", children: valueLabel })
|
|
5672
5967
|
] }),
|
|
5673
5968
|
bar
|
|
5674
5969
|
] });
|
|
@@ -5676,7 +5971,7 @@ function Progress(_a) {
|
|
|
5676
5971
|
|
|
5677
5972
|
// components/ui/profile-photo.tsx
|
|
5678
5973
|
var import_lucide_react21 = require("lucide-react");
|
|
5679
|
-
var
|
|
5974
|
+
var import_jsx_runtime43 = require("react/jsx-runtime");
|
|
5680
5975
|
var BOX = 112;
|
|
5681
5976
|
var PHOTO = 96;
|
|
5682
5977
|
var STROKE = 5;
|
|
@@ -5703,7 +5998,7 @@ function ProfilePhoto(_a) {
|
|
|
5703
5998
|
]);
|
|
5704
5999
|
const pct = Math.min(100, Math.max(0, progress));
|
|
5705
6000
|
const complete = pct >= 100;
|
|
5706
|
-
return /* @__PURE__ */ (0,
|
|
6001
|
+
return /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(
|
|
5707
6002
|
"div",
|
|
5708
6003
|
__spreadProps(__spreadValues({
|
|
5709
6004
|
"data-slot": "profile-photo",
|
|
@@ -5713,14 +6008,14 @@ function ProfilePhoto(_a) {
|
|
|
5713
6008
|
style: { width: BOX, height: BOX }
|
|
5714
6009
|
}, props), {
|
|
5715
6010
|
children: [
|
|
5716
|
-
/* @__PURE__ */ (0,
|
|
6011
|
+
/* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(
|
|
5717
6012
|
"svg",
|
|
5718
6013
|
{
|
|
5719
6014
|
viewBox: `0 0 ${BOX} ${BOX}`,
|
|
5720
6015
|
"aria-hidden": "true",
|
|
5721
6016
|
className: "absolute inset-0 size-full rotate-90",
|
|
5722
6017
|
children: [
|
|
5723
|
-
/* @__PURE__ */ (0,
|
|
6018
|
+
/* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
|
|
5724
6019
|
"circle",
|
|
5725
6020
|
{
|
|
5726
6021
|
cx: BOX / 2,
|
|
@@ -5731,7 +6026,7 @@ function ProfilePhoto(_a) {
|
|
|
5731
6026
|
strokeWidth: STROKE
|
|
5732
6027
|
}
|
|
5733
6028
|
),
|
|
5734
|
-
/* @__PURE__ */ (0,
|
|
6029
|
+
/* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
|
|
5735
6030
|
"circle",
|
|
5736
6031
|
{
|
|
5737
6032
|
"data-slot": "profile-photo-ring",
|
|
@@ -5750,19 +6045,19 @@ function ProfilePhoto(_a) {
|
|
|
5750
6045
|
]
|
|
5751
6046
|
}
|
|
5752
6047
|
),
|
|
5753
|
-
/* @__PURE__ */ (0,
|
|
6048
|
+
/* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
|
|
5754
6049
|
"div",
|
|
5755
6050
|
{
|
|
5756
6051
|
"data-slot": "profile-photo-image",
|
|
5757
6052
|
className: "absolute flex items-center justify-center overflow-hidden rounded-full bg-background-secondary-surface",
|
|
5758
6053
|
style: { inset: INSET },
|
|
5759
|
-
children: src ? /* @__PURE__ */ (0,
|
|
6054
|
+
children: src ? /* @__PURE__ */ (0, import_jsx_runtime43.jsx)("img", { src, alt, className: "size-full object-cover" }) : /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(import_lucide_react21.User, { className: "size-10 text-icon-subtle-default", strokeWidth: 1.5, "aria-hidden": "true" })
|
|
5760
6055
|
}
|
|
5761
6056
|
),
|
|
5762
6057
|
onPhotoChange ? (
|
|
5763
6058
|
// 24px keeps the chip subordinate to the photo; the ::after extends the
|
|
5764
6059
|
// hit area to ~44px so it still meets the touch-target minimum.
|
|
5765
|
-
/* @__PURE__ */ (0,
|
|
6060
|
+
/* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
|
|
5766
6061
|
Button,
|
|
5767
6062
|
{
|
|
5768
6063
|
variant: "primary",
|
|
@@ -5771,11 +6066,11 @@ function ProfilePhoto(_a) {
|
|
|
5771
6066
|
onClick: onPhotoChange,
|
|
5772
6067
|
"data-slot": "profile-photo-camera",
|
|
5773
6068
|
className: "absolute right-0.5 bottom-5 rounded-full border-2 border-prominent after:absolute after:-inset-2.5 after:content-['']",
|
|
5774
|
-
children: /* @__PURE__ */ (0,
|
|
6069
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(import_lucide_react21.Camera, {})
|
|
5775
6070
|
}
|
|
5776
6071
|
)
|
|
5777
6072
|
) : null,
|
|
5778
|
-
status ? /* @__PURE__ */ (0,
|
|
6073
|
+
status ? /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
|
|
5779
6074
|
"div",
|
|
5780
6075
|
{
|
|
5781
6076
|
"data-slot": "profile-photo-status",
|
|
@@ -5791,14 +6086,14 @@ function ProfilePhoto(_a) {
|
|
|
5791
6086
|
// components/ui/radio-group.tsx
|
|
5792
6087
|
var import_lucide_react22 = require("lucide-react");
|
|
5793
6088
|
var import_radix_ui24 = require("radix-ui");
|
|
5794
|
-
var
|
|
6089
|
+
var import_jsx_runtime44 = require("react/jsx-runtime");
|
|
5795
6090
|
function RadioGroup(_a) {
|
|
5796
6091
|
var _b = _a, {
|
|
5797
6092
|
className
|
|
5798
6093
|
} = _b, props = __objRest(_b, [
|
|
5799
6094
|
"className"
|
|
5800
6095
|
]);
|
|
5801
|
-
return /* @__PURE__ */ (0,
|
|
6096
|
+
return /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
|
|
5802
6097
|
import_radix_ui24.RadioGroup.Root,
|
|
5803
6098
|
__spreadValues({
|
|
5804
6099
|
"data-slot": "radio-group",
|
|
@@ -5812,7 +6107,7 @@ function RadioGroupItem(_a) {
|
|
|
5812
6107
|
} = _b, props = __objRest(_b, [
|
|
5813
6108
|
"className"
|
|
5814
6109
|
]);
|
|
5815
|
-
return /* @__PURE__ */ (0,
|
|
6110
|
+
return /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
|
|
5816
6111
|
import_radix_ui24.RadioGroup.Item,
|
|
5817
6112
|
__spreadProps(__spreadValues({
|
|
5818
6113
|
"data-slot": "radio-group-item",
|
|
@@ -5821,12 +6116,12 @@ function RadioGroupItem(_a) {
|
|
|
5821
6116
|
className
|
|
5822
6117
|
)
|
|
5823
6118
|
}, props), {
|
|
5824
|
-
children: /* @__PURE__ */ (0,
|
|
6119
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
|
|
5825
6120
|
import_radix_ui24.RadioGroup.Indicator,
|
|
5826
6121
|
{
|
|
5827
6122
|
"data-slot": "radio-group-indicator",
|
|
5828
6123
|
className: "relative flex items-center justify-center",
|
|
5829
|
-
children: /* @__PURE__ */ (0,
|
|
6124
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime44.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" })
|
|
5830
6125
|
}
|
|
5831
6126
|
)
|
|
5832
6127
|
})
|
|
@@ -5836,14 +6131,14 @@ function RadioGroupItem(_a) {
|
|
|
5836
6131
|
// components/ui/resizable.tsx
|
|
5837
6132
|
var import_lucide_react23 = require("lucide-react");
|
|
5838
6133
|
var ResizablePrimitive = __toESM(require("react-resizable-panels"), 1);
|
|
5839
|
-
var
|
|
6134
|
+
var import_jsx_runtime45 = require("react/jsx-runtime");
|
|
5840
6135
|
function ResizablePanelGroup(_a) {
|
|
5841
6136
|
var _b = _a, {
|
|
5842
6137
|
className
|
|
5843
6138
|
} = _b, props = __objRest(_b, [
|
|
5844
6139
|
"className"
|
|
5845
6140
|
]);
|
|
5846
|
-
return /* @__PURE__ */ (0,
|
|
6141
|
+
return /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(
|
|
5847
6142
|
ResizablePrimitive.Group,
|
|
5848
6143
|
__spreadValues({
|
|
5849
6144
|
"data-slot": "resizable-panel-group",
|
|
@@ -5856,7 +6151,7 @@ function ResizablePanelGroup(_a) {
|
|
|
5856
6151
|
}
|
|
5857
6152
|
function ResizablePanel(_a) {
|
|
5858
6153
|
var props = __objRest(_a, []);
|
|
5859
|
-
return /* @__PURE__ */ (0,
|
|
6154
|
+
return /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(ResizablePrimitive.Panel, __spreadValues({ "data-slot": "resizable-panel" }, props));
|
|
5860
6155
|
}
|
|
5861
6156
|
function ResizableHandle(_a) {
|
|
5862
6157
|
var _b = _a, {
|
|
@@ -5866,7 +6161,7 @@ function ResizableHandle(_a) {
|
|
|
5866
6161
|
"withHandle",
|
|
5867
6162
|
"className"
|
|
5868
6163
|
]);
|
|
5869
|
-
return /* @__PURE__ */ (0,
|
|
6164
|
+
return /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(
|
|
5870
6165
|
ResizablePrimitive.Separator,
|
|
5871
6166
|
__spreadProps(__spreadValues({
|
|
5872
6167
|
"data-slot": "resizable-handle",
|
|
@@ -5875,14 +6170,14 @@ function ResizableHandle(_a) {
|
|
|
5875
6170
|
className
|
|
5876
6171
|
)
|
|
5877
6172
|
}, props), {
|
|
5878
|
-
children: withHandle && /* @__PURE__ */ (0,
|
|
6173
|
+
children: withHandle && /* @__PURE__ */ (0, import_jsx_runtime45.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_runtime45.jsx)(import_lucide_react23.GripVerticalIcon, { className: "size-2.5" }) })
|
|
5879
6174
|
})
|
|
5880
6175
|
);
|
|
5881
6176
|
}
|
|
5882
6177
|
|
|
5883
6178
|
// components/ui/scroll-area.tsx
|
|
5884
6179
|
var import_radix_ui25 = require("radix-ui");
|
|
5885
|
-
var
|
|
6180
|
+
var import_jsx_runtime46 = require("react/jsx-runtime");
|
|
5886
6181
|
function ScrollArea(_a) {
|
|
5887
6182
|
var _b = _a, {
|
|
5888
6183
|
className,
|
|
@@ -5891,14 +6186,14 @@ function ScrollArea(_a) {
|
|
|
5891
6186
|
"className",
|
|
5892
6187
|
"children"
|
|
5893
6188
|
]);
|
|
5894
|
-
return /* @__PURE__ */ (0,
|
|
6189
|
+
return /* @__PURE__ */ (0, import_jsx_runtime46.jsxs)(
|
|
5895
6190
|
import_radix_ui25.ScrollArea.Root,
|
|
5896
6191
|
__spreadProps(__spreadValues({
|
|
5897
6192
|
"data-slot": "scroll-area",
|
|
5898
6193
|
className: cn("relative", className)
|
|
5899
6194
|
}, props), {
|
|
5900
6195
|
children: [
|
|
5901
|
-
/* @__PURE__ */ (0,
|
|
6196
|
+
/* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
|
|
5902
6197
|
import_radix_ui25.ScrollArea.Viewport,
|
|
5903
6198
|
{
|
|
5904
6199
|
"data-slot": "scroll-area-viewport",
|
|
@@ -5906,8 +6201,8 @@ function ScrollArea(_a) {
|
|
|
5906
6201
|
children
|
|
5907
6202
|
}
|
|
5908
6203
|
),
|
|
5909
|
-
/* @__PURE__ */ (0,
|
|
5910
|
-
/* @__PURE__ */ (0,
|
|
6204
|
+
/* @__PURE__ */ (0, import_jsx_runtime46.jsx)(ScrollBar, {}),
|
|
6205
|
+
/* @__PURE__ */ (0, import_jsx_runtime46.jsx)(import_radix_ui25.ScrollArea.Corner, {})
|
|
5911
6206
|
]
|
|
5912
6207
|
})
|
|
5913
6208
|
);
|
|
@@ -5920,7 +6215,7 @@ function ScrollBar(_a) {
|
|
|
5920
6215
|
"className",
|
|
5921
6216
|
"orientation"
|
|
5922
6217
|
]);
|
|
5923
|
-
return /* @__PURE__ */ (0,
|
|
6218
|
+
return /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
|
|
5924
6219
|
import_radix_ui25.ScrollArea.ScrollAreaScrollbar,
|
|
5925
6220
|
__spreadProps(__spreadValues({
|
|
5926
6221
|
"data-slot": "scroll-area-scrollbar",
|
|
@@ -5932,7 +6227,7 @@ function ScrollBar(_a) {
|
|
|
5932
6227
|
className
|
|
5933
6228
|
)
|
|
5934
6229
|
}, props), {
|
|
5935
|
-
children: /* @__PURE__ */ (0,
|
|
6230
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
|
|
5936
6231
|
import_radix_ui25.ScrollArea.ScrollAreaThumb,
|
|
5937
6232
|
{
|
|
5938
6233
|
"data-slot": "scroll-area-thumb",
|
|
@@ -5946,22 +6241,22 @@ function ScrollBar(_a) {
|
|
|
5946
6241
|
// components/ui/sheet.tsx
|
|
5947
6242
|
var import_lucide_react24 = require("lucide-react");
|
|
5948
6243
|
var import_radix_ui26 = require("radix-ui");
|
|
5949
|
-
var
|
|
6244
|
+
var import_jsx_runtime47 = require("react/jsx-runtime");
|
|
5950
6245
|
function Sheet(_a) {
|
|
5951
6246
|
var props = __objRest(_a, []);
|
|
5952
|
-
return /* @__PURE__ */ (0,
|
|
6247
|
+
return /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(import_radix_ui26.Dialog.Root, __spreadValues({ "data-slot": "sheet" }, props));
|
|
5953
6248
|
}
|
|
5954
6249
|
function SheetTrigger(_a) {
|
|
5955
6250
|
var props = __objRest(_a, []);
|
|
5956
|
-
return /* @__PURE__ */ (0,
|
|
6251
|
+
return /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(import_radix_ui26.Dialog.Trigger, __spreadValues({ "data-slot": "sheet-trigger" }, props));
|
|
5957
6252
|
}
|
|
5958
6253
|
function SheetClose(_a) {
|
|
5959
6254
|
var props = __objRest(_a, []);
|
|
5960
|
-
return /* @__PURE__ */ (0,
|
|
6255
|
+
return /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(import_radix_ui26.Dialog.Close, __spreadValues({ "data-slot": "sheet-close" }, props));
|
|
5961
6256
|
}
|
|
5962
6257
|
function SheetPortal(_a) {
|
|
5963
6258
|
var props = __objRest(_a, []);
|
|
5964
|
-
return /* @__PURE__ */ (0,
|
|
6259
|
+
return /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(import_radix_ui26.Dialog.Portal, __spreadValues({ "data-slot": "sheet-portal" }, props));
|
|
5965
6260
|
}
|
|
5966
6261
|
function SheetOverlay(_a) {
|
|
5967
6262
|
var _b = _a, {
|
|
@@ -5969,7 +6264,7 @@ function SheetOverlay(_a) {
|
|
|
5969
6264
|
} = _b, props = __objRest(_b, [
|
|
5970
6265
|
"className"
|
|
5971
6266
|
]);
|
|
5972
|
-
return /* @__PURE__ */ (0,
|
|
6267
|
+
return /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
|
|
5973
6268
|
import_radix_ui26.Dialog.Overlay,
|
|
5974
6269
|
__spreadValues({
|
|
5975
6270
|
"data-slot": "sheet-overlay",
|
|
@@ -5992,9 +6287,9 @@ function SheetContent(_a) {
|
|
|
5992
6287
|
"side",
|
|
5993
6288
|
"showCloseButton"
|
|
5994
6289
|
]);
|
|
5995
|
-
return /* @__PURE__ */ (0,
|
|
5996
|
-
/* @__PURE__ */ (0,
|
|
5997
|
-
/* @__PURE__ */ (0,
|
|
6290
|
+
return /* @__PURE__ */ (0, import_jsx_runtime47.jsxs)(SheetPortal, { children: [
|
|
6291
|
+
/* @__PURE__ */ (0, import_jsx_runtime47.jsx)(SheetOverlay, {}),
|
|
6292
|
+
/* @__PURE__ */ (0, import_jsx_runtime47.jsxs)(
|
|
5998
6293
|
import_radix_ui26.Dialog.Content,
|
|
5999
6294
|
__spreadProps(__spreadValues({
|
|
6000
6295
|
"data-slot": "sheet-content",
|
|
@@ -6009,14 +6304,14 @@ function SheetContent(_a) {
|
|
|
6009
6304
|
}, props), {
|
|
6010
6305
|
children: [
|
|
6011
6306
|
children,
|
|
6012
|
-
showCloseButton && /* @__PURE__ */ (0,
|
|
6307
|
+
showCloseButton && /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(import_radix_ui26.Dialog.Close, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
|
|
6013
6308
|
NavigationButton,
|
|
6014
6309
|
{
|
|
6015
6310
|
"data-slot": "sheet-close",
|
|
6016
6311
|
size: "sm",
|
|
6017
6312
|
"aria-label": "Close",
|
|
6018
6313
|
className: "absolute top-4 right-4",
|
|
6019
|
-
children: /* @__PURE__ */ (0,
|
|
6314
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(import_lucide_react24.XIcon, { className: "size-4" })
|
|
6020
6315
|
}
|
|
6021
6316
|
) })
|
|
6022
6317
|
]
|
|
@@ -6026,7 +6321,7 @@ function SheetContent(_a) {
|
|
|
6026
6321
|
}
|
|
6027
6322
|
function SheetHeader(_a) {
|
|
6028
6323
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
6029
|
-
return /* @__PURE__ */ (0,
|
|
6324
|
+
return /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
|
|
6030
6325
|
"div",
|
|
6031
6326
|
__spreadValues({
|
|
6032
6327
|
"data-slot": "sheet-header",
|
|
@@ -6036,7 +6331,7 @@ function SheetHeader(_a) {
|
|
|
6036
6331
|
}
|
|
6037
6332
|
function SheetFooter(_a) {
|
|
6038
6333
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
6039
|
-
return /* @__PURE__ */ (0,
|
|
6334
|
+
return /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
|
|
6040
6335
|
"div",
|
|
6041
6336
|
__spreadValues({
|
|
6042
6337
|
"data-slot": "sheet-footer",
|
|
@@ -6050,7 +6345,7 @@ function SheetTitle(_a) {
|
|
|
6050
6345
|
} = _b, props = __objRest(_b, [
|
|
6051
6346
|
"className"
|
|
6052
6347
|
]);
|
|
6053
|
-
return /* @__PURE__ */ (0,
|
|
6348
|
+
return /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
|
|
6054
6349
|
import_radix_ui26.Dialog.Title,
|
|
6055
6350
|
__spreadValues({
|
|
6056
6351
|
"data-slot": "sheet-title",
|
|
@@ -6064,7 +6359,7 @@ function SheetDescription(_a) {
|
|
|
6064
6359
|
} = _b, props = __objRest(_b, [
|
|
6065
6360
|
"className"
|
|
6066
6361
|
]);
|
|
6067
|
-
return /* @__PURE__ */ (0,
|
|
6362
|
+
return /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
|
|
6068
6363
|
import_radix_ui26.Dialog.Description,
|
|
6069
6364
|
__spreadValues({
|
|
6070
6365
|
"data-slot": "sheet-description",
|
|
@@ -6074,17 +6369,17 @@ function SheetDescription(_a) {
|
|
|
6074
6369
|
}
|
|
6075
6370
|
|
|
6076
6371
|
// components/ui/sidebar.tsx
|
|
6077
|
-
var
|
|
6372
|
+
var React15 = __toESM(require("react"), 1);
|
|
6078
6373
|
var import_class_variance_authority13 = require("class-variance-authority");
|
|
6079
6374
|
var import_lucide_react25 = require("lucide-react");
|
|
6080
6375
|
var import_radix_ui28 = require("radix-ui");
|
|
6081
6376
|
|
|
6082
6377
|
// hooks/use-mobile.ts
|
|
6083
|
-
var
|
|
6378
|
+
var React13 = __toESM(require("react"), 1);
|
|
6084
6379
|
var MOBILE_BREAKPOINT = 768;
|
|
6085
6380
|
function useIsMobile() {
|
|
6086
|
-
const [isMobile, setIsMobile] =
|
|
6087
|
-
|
|
6381
|
+
const [isMobile, setIsMobile] = React13.useState(void 0);
|
|
6382
|
+
React13.useEffect(() => {
|
|
6088
6383
|
const mql = window.matchMedia(`(max-width: ${MOBILE_BREAKPOINT - 1}px)`);
|
|
6089
6384
|
const onChange = () => {
|
|
6090
6385
|
setIsMobile(window.innerWidth < MOBILE_BREAKPOINT);
|
|
@@ -6097,10 +6392,10 @@ function useIsMobile() {
|
|
|
6097
6392
|
}
|
|
6098
6393
|
|
|
6099
6394
|
// components/ui/skeleton.tsx
|
|
6100
|
-
var
|
|
6395
|
+
var import_jsx_runtime48 = require("react/jsx-runtime");
|
|
6101
6396
|
function Skeleton(_a) {
|
|
6102
6397
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
6103
|
-
return /* @__PURE__ */ (0,
|
|
6398
|
+
return /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
|
|
6104
6399
|
"div",
|
|
6105
6400
|
__spreadValues({
|
|
6106
6401
|
"data-slot": "skeleton",
|
|
@@ -6114,17 +6409,17 @@ function Skeleton(_a) {
|
|
|
6114
6409
|
}
|
|
6115
6410
|
|
|
6116
6411
|
// components/ui/tooltip.tsx
|
|
6117
|
-
var
|
|
6412
|
+
var React14 = __toESM(require("react"), 1);
|
|
6118
6413
|
var import_radix_ui27 = require("radix-ui");
|
|
6119
|
-
var
|
|
6120
|
-
var TooltipModeContext =
|
|
6414
|
+
var import_jsx_runtime49 = require("react/jsx-runtime");
|
|
6415
|
+
var TooltipModeContext = React14.createContext("tooltip");
|
|
6121
6416
|
function TooltipProvider(_a) {
|
|
6122
6417
|
var _b = _a, {
|
|
6123
6418
|
delayDuration = 0
|
|
6124
6419
|
} = _b, props = __objRest(_b, [
|
|
6125
6420
|
"delayDuration"
|
|
6126
6421
|
]);
|
|
6127
|
-
return /* @__PURE__ */ (0,
|
|
6422
|
+
return /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
|
|
6128
6423
|
import_radix_ui27.Tooltip.Provider,
|
|
6129
6424
|
__spreadValues({
|
|
6130
6425
|
"data-slot": "tooltip-provider",
|
|
@@ -6141,9 +6436,9 @@ function Tooltip(_a) {
|
|
|
6141
6436
|
const isMobile = useIsMobile();
|
|
6142
6437
|
const mode = isMobile ? "drawer" : "tooltip";
|
|
6143
6438
|
if (mode === "drawer") {
|
|
6144
|
-
return /* @__PURE__ */ (0,
|
|
6439
|
+
return /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(TooltipModeContext.Provider, { value: "drawer", children: /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(Drawer, { children }) });
|
|
6145
6440
|
}
|
|
6146
|
-
return /* @__PURE__ */ (0,
|
|
6441
|
+
return /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(TooltipModeContext.Provider, { value: "tooltip", children: /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(import_radix_ui27.Tooltip.Root, __spreadProps(__spreadValues({ "data-slot": "tooltip" }, props), { children })) });
|
|
6147
6442
|
}
|
|
6148
6443
|
function TooltipTrigger(_a) {
|
|
6149
6444
|
var _b = _a, {
|
|
@@ -6151,11 +6446,11 @@ function TooltipTrigger(_a) {
|
|
|
6151
6446
|
} = _b, props = __objRest(_b, [
|
|
6152
6447
|
"children"
|
|
6153
6448
|
]);
|
|
6154
|
-
const mode =
|
|
6449
|
+
const mode = React14.useContext(TooltipModeContext);
|
|
6155
6450
|
if (mode === "drawer") {
|
|
6156
|
-
return /* @__PURE__ */ (0,
|
|
6451
|
+
return /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(DrawerTrigger, __spreadProps(__spreadValues({ "data-slot": "tooltip-trigger" }, props), { children }));
|
|
6157
6452
|
}
|
|
6158
|
-
return /* @__PURE__ */ (0,
|
|
6453
|
+
return /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(import_radix_ui27.Tooltip.Trigger, __spreadProps(__spreadValues({ "data-slot": "tooltip-trigger" }, props), { children }));
|
|
6159
6454
|
}
|
|
6160
6455
|
function TooltipContent(_a) {
|
|
6161
6456
|
var _b = _a, {
|
|
@@ -6173,17 +6468,17 @@ function TooltipContent(_a) {
|
|
|
6173
6468
|
"closeLabel",
|
|
6174
6469
|
"children"
|
|
6175
6470
|
]);
|
|
6176
|
-
const mode =
|
|
6471
|
+
const mode = React14.useContext(TooltipModeContext);
|
|
6177
6472
|
if (mode === "drawer") {
|
|
6178
|
-
return /* @__PURE__ */ (0,
|
|
6179
|
-
/* @__PURE__ */ (0,
|
|
6180
|
-
/* @__PURE__ */ (0,
|
|
6181
|
-
/* @__PURE__ */ (0,
|
|
6473
|
+
return /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)(DrawerContent, { "data-slot": "tooltip-content", "data-variant": variant, children: [
|
|
6474
|
+
/* @__PURE__ */ (0, import_jsx_runtime49.jsx)(DrawerHeader, { children: /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(DrawerTitle, { children: title }) }),
|
|
6475
|
+
/* @__PURE__ */ (0, import_jsx_runtime49.jsx)("div", { className: cn("type-drawer-description p-4 text-text-subtle-default", className), children }),
|
|
6476
|
+
/* @__PURE__ */ (0, import_jsx_runtime49.jsx)(DrawerFooter, { children: /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(DrawerClose, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(Button, { variant: "primary", size: "md", children: closeLabel }) }) })
|
|
6182
6477
|
] });
|
|
6183
6478
|
}
|
|
6184
6479
|
const surfaceClasses = variant === "inverse" ? "border border-border-default-default bg-background-primary-surface text-text-prominent-default" : "bg-background-inverse-surface text-text-prominent-inverse";
|
|
6185
6480
|
const arrowClasses = variant === "inverse" ? "fill-background-primary-surface" : "fill-background-inverse-surface";
|
|
6186
|
-
return /* @__PURE__ */ (0,
|
|
6481
|
+
return /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(import_radix_ui27.Tooltip.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)(
|
|
6187
6482
|
import_radix_ui27.Tooltip.Content,
|
|
6188
6483
|
__spreadProps(__spreadValues({
|
|
6189
6484
|
"data-slot": "tooltip-content",
|
|
@@ -6197,23 +6492,23 @@ function TooltipContent(_a) {
|
|
|
6197
6492
|
}, props), {
|
|
6198
6493
|
children: [
|
|
6199
6494
|
children,
|
|
6200
|
-
/* @__PURE__ */ (0,
|
|
6495
|
+
/* @__PURE__ */ (0, import_jsx_runtime49.jsx)(import_radix_ui27.Tooltip.Arrow, { className: arrowClasses })
|
|
6201
6496
|
]
|
|
6202
6497
|
})
|
|
6203
6498
|
) });
|
|
6204
6499
|
}
|
|
6205
6500
|
|
|
6206
6501
|
// components/ui/sidebar.tsx
|
|
6207
|
-
var
|
|
6502
|
+
var import_jsx_runtime50 = require("react/jsx-runtime");
|
|
6208
6503
|
var SIDEBAR_COOKIE_NAME = "sidebar_state";
|
|
6209
6504
|
var SIDEBAR_COOKIE_MAX_AGE = 60 * 60 * 24 * 7;
|
|
6210
6505
|
var SIDEBAR_WIDTH = "16rem";
|
|
6211
6506
|
var SIDEBAR_WIDTH_MOBILE = "18rem";
|
|
6212
6507
|
var SIDEBAR_WIDTH_ICON = "3rem";
|
|
6213
6508
|
var SIDEBAR_KEYBOARD_SHORTCUT = "b";
|
|
6214
|
-
var SidebarContext =
|
|
6509
|
+
var SidebarContext = React15.createContext(null);
|
|
6215
6510
|
function useSidebar() {
|
|
6216
|
-
const context =
|
|
6511
|
+
const context = React15.useContext(SidebarContext);
|
|
6217
6512
|
if (!context) {
|
|
6218
6513
|
throw new Error("useSidebar must be used within a SidebarProvider.");
|
|
6219
6514
|
}
|
|
@@ -6236,10 +6531,10 @@ function SidebarProvider(_a) {
|
|
|
6236
6531
|
"children"
|
|
6237
6532
|
]);
|
|
6238
6533
|
const isMobile = useIsMobile();
|
|
6239
|
-
const [openMobile, setOpenMobile] =
|
|
6240
|
-
const [_open, _setOpen] =
|
|
6534
|
+
const [openMobile, setOpenMobile] = React15.useState(false);
|
|
6535
|
+
const [_open, _setOpen] = React15.useState(defaultOpen);
|
|
6241
6536
|
const open = openProp != null ? openProp : _open;
|
|
6242
|
-
const setOpen =
|
|
6537
|
+
const setOpen = React15.useCallback(
|
|
6243
6538
|
(value) => {
|
|
6244
6539
|
const openState = typeof value === "function" ? value(open) : value;
|
|
6245
6540
|
if (setOpenProp) {
|
|
@@ -6251,10 +6546,10 @@ function SidebarProvider(_a) {
|
|
|
6251
6546
|
},
|
|
6252
6547
|
[setOpenProp, open]
|
|
6253
6548
|
);
|
|
6254
|
-
const toggleSidebar =
|
|
6549
|
+
const toggleSidebar = React15.useCallback(() => {
|
|
6255
6550
|
return isMobile ? setOpenMobile((open2) => !open2) : setOpen((open2) => !open2);
|
|
6256
6551
|
}, [isMobile, setOpen, setOpenMobile]);
|
|
6257
|
-
|
|
6552
|
+
React15.useEffect(() => {
|
|
6258
6553
|
const handleKeyDown = (event) => {
|
|
6259
6554
|
if (event.key === SIDEBAR_KEYBOARD_SHORTCUT && (event.metaKey || event.ctrlKey)) {
|
|
6260
6555
|
event.preventDefault();
|
|
@@ -6265,7 +6560,7 @@ function SidebarProvider(_a) {
|
|
|
6265
6560
|
return () => window.removeEventListener("keydown", handleKeyDown);
|
|
6266
6561
|
}, [toggleSidebar]);
|
|
6267
6562
|
const state = open ? "expanded" : "collapsed";
|
|
6268
|
-
const contextValue =
|
|
6563
|
+
const contextValue = React15.useMemo(
|
|
6269
6564
|
() => ({
|
|
6270
6565
|
state,
|
|
6271
6566
|
open,
|
|
@@ -6277,7 +6572,7 @@ function SidebarProvider(_a) {
|
|
|
6277
6572
|
}),
|
|
6278
6573
|
[state, open, setOpen, isMobile, openMobile, setOpenMobile, toggleSidebar]
|
|
6279
6574
|
);
|
|
6280
|
-
return /* @__PURE__ */ (0,
|
|
6575
|
+
return /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(SidebarContext.Provider, { value: contextValue, children: /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(TooltipProvider, { delayDuration: 0, children: /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
|
|
6281
6576
|
"div",
|
|
6282
6577
|
__spreadProps(__spreadValues({
|
|
6283
6578
|
"data-slot": "sidebar-wrapper",
|
|
@@ -6310,7 +6605,7 @@ function Sidebar(_a) {
|
|
|
6310
6605
|
]);
|
|
6311
6606
|
const { isMobile, state, openMobile, setOpenMobile } = useSidebar();
|
|
6312
6607
|
if (collapsible === "none") {
|
|
6313
|
-
return /* @__PURE__ */ (0,
|
|
6608
|
+
return /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
|
|
6314
6609
|
"div",
|
|
6315
6610
|
__spreadProps(__spreadValues({
|
|
6316
6611
|
"data-slot": "sidebar",
|
|
@@ -6324,7 +6619,7 @@ function Sidebar(_a) {
|
|
|
6324
6619
|
);
|
|
6325
6620
|
}
|
|
6326
6621
|
if (isMobile) {
|
|
6327
|
-
return /* @__PURE__ */ (0,
|
|
6622
|
+
return /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(Sheet, __spreadProps(__spreadValues({ open: openMobile, onOpenChange: setOpenMobile }, props), { children: /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(
|
|
6328
6623
|
SheetContent,
|
|
6329
6624
|
{
|
|
6330
6625
|
"data-sidebar": "sidebar",
|
|
@@ -6336,16 +6631,16 @@ function Sidebar(_a) {
|
|
|
6336
6631
|
},
|
|
6337
6632
|
side,
|
|
6338
6633
|
children: [
|
|
6339
|
-
/* @__PURE__ */ (0,
|
|
6340
|
-
/* @__PURE__ */ (0,
|
|
6341
|
-
/* @__PURE__ */ (0,
|
|
6634
|
+
/* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(SheetHeader, { className: "sr-only", children: [
|
|
6635
|
+
/* @__PURE__ */ (0, import_jsx_runtime50.jsx)(SheetTitle, { children: "Sidebar" }),
|
|
6636
|
+
/* @__PURE__ */ (0, import_jsx_runtime50.jsx)(SheetDescription, { children: "Displays the mobile sidebar." })
|
|
6342
6637
|
] }),
|
|
6343
|
-
/* @__PURE__ */ (0,
|
|
6638
|
+
/* @__PURE__ */ (0, import_jsx_runtime50.jsx)("div", { className: "flex h-full w-full flex-col", children })
|
|
6344
6639
|
]
|
|
6345
6640
|
}
|
|
6346
6641
|
) }));
|
|
6347
6642
|
}
|
|
6348
|
-
return /* @__PURE__ */ (0,
|
|
6643
|
+
return /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(
|
|
6349
6644
|
"div",
|
|
6350
6645
|
{
|
|
6351
6646
|
className: "group peer hidden text-text-prominent-default md:block",
|
|
@@ -6355,7 +6650,7 @@ function Sidebar(_a) {
|
|
|
6355
6650
|
"data-side": side,
|
|
6356
6651
|
"data-slot": "sidebar",
|
|
6357
6652
|
children: [
|
|
6358
|
-
/* @__PURE__ */ (0,
|
|
6653
|
+
/* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
|
|
6359
6654
|
"div",
|
|
6360
6655
|
{
|
|
6361
6656
|
"data-slot": "sidebar-gap",
|
|
@@ -6367,7 +6662,7 @@ function Sidebar(_a) {
|
|
|
6367
6662
|
)
|
|
6368
6663
|
}
|
|
6369
6664
|
),
|
|
6370
|
-
/* @__PURE__ */ (0,
|
|
6665
|
+
/* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
|
|
6371
6666
|
"div",
|
|
6372
6667
|
__spreadProps(__spreadValues({
|
|
6373
6668
|
"data-slot": "sidebar-container",
|
|
@@ -6379,7 +6674,7 @@ function Sidebar(_a) {
|
|
|
6379
6674
|
className
|
|
6380
6675
|
)
|
|
6381
6676
|
}, props), {
|
|
6382
|
-
children: /* @__PURE__ */ (0,
|
|
6677
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
|
|
6383
6678
|
"div",
|
|
6384
6679
|
{
|
|
6385
6680
|
"data-sidebar": "sidebar",
|
|
@@ -6403,7 +6698,7 @@ function SidebarTrigger(_a) {
|
|
|
6403
6698
|
"onClick"
|
|
6404
6699
|
]);
|
|
6405
6700
|
const { toggleSidebar } = useSidebar();
|
|
6406
|
-
return /* @__PURE__ */ (0,
|
|
6701
|
+
return /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(
|
|
6407
6702
|
Button,
|
|
6408
6703
|
__spreadProps(__spreadValues({
|
|
6409
6704
|
"data-sidebar": "trigger",
|
|
@@ -6417,8 +6712,8 @@ function SidebarTrigger(_a) {
|
|
|
6417
6712
|
}
|
|
6418
6713
|
}, props), {
|
|
6419
6714
|
children: [
|
|
6420
|
-
/* @__PURE__ */ (0,
|
|
6421
|
-
/* @__PURE__ */ (0,
|
|
6715
|
+
/* @__PURE__ */ (0, import_jsx_runtime50.jsx)(import_lucide_react25.PanelLeftIcon, {}),
|
|
6716
|
+
/* @__PURE__ */ (0, import_jsx_runtime50.jsx)("span", { className: "sr-only", children: "Toggle Sidebar" })
|
|
6422
6717
|
]
|
|
6423
6718
|
})
|
|
6424
6719
|
);
|
|
@@ -6426,7 +6721,7 @@ function SidebarTrigger(_a) {
|
|
|
6426
6721
|
function SidebarRail(_a) {
|
|
6427
6722
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
6428
6723
|
const { toggleSidebar } = useSidebar();
|
|
6429
|
-
return /* @__PURE__ */ (0,
|
|
6724
|
+
return /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
|
|
6430
6725
|
"button",
|
|
6431
6726
|
__spreadValues({
|
|
6432
6727
|
"data-sidebar": "rail",
|
|
@@ -6449,7 +6744,7 @@ function SidebarRail(_a) {
|
|
|
6449
6744
|
}
|
|
6450
6745
|
function SidebarInset(_a) {
|
|
6451
6746
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
6452
|
-
return /* @__PURE__ */ (0,
|
|
6747
|
+
return /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
|
|
6453
6748
|
"main",
|
|
6454
6749
|
__spreadValues({
|
|
6455
6750
|
"data-slot": "sidebar-inset",
|
|
@@ -6467,7 +6762,7 @@ function SidebarInput(_a) {
|
|
|
6467
6762
|
} = _b, props = __objRest(_b, [
|
|
6468
6763
|
"className"
|
|
6469
6764
|
]);
|
|
6470
|
-
return /* @__PURE__ */ (0,
|
|
6765
|
+
return /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
|
|
6471
6766
|
Input,
|
|
6472
6767
|
__spreadValues({
|
|
6473
6768
|
"data-slot": "sidebar-input",
|
|
@@ -6478,7 +6773,7 @@ function SidebarInput(_a) {
|
|
|
6478
6773
|
}
|
|
6479
6774
|
function SidebarHeader(_a) {
|
|
6480
6775
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
6481
|
-
return /* @__PURE__ */ (0,
|
|
6776
|
+
return /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
|
|
6482
6777
|
"div",
|
|
6483
6778
|
__spreadValues({
|
|
6484
6779
|
"data-slot": "sidebar-header",
|
|
@@ -6492,7 +6787,7 @@ function SidebarHeader(_a) {
|
|
|
6492
6787
|
}
|
|
6493
6788
|
function SidebarFooter(_a) {
|
|
6494
6789
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
6495
|
-
return /* @__PURE__ */ (0,
|
|
6790
|
+
return /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
|
|
6496
6791
|
"div",
|
|
6497
6792
|
__spreadValues({
|
|
6498
6793
|
"data-slot": "sidebar-footer",
|
|
@@ -6510,7 +6805,7 @@ function SidebarSeparator(_a) {
|
|
|
6510
6805
|
} = _b, props = __objRest(_b, [
|
|
6511
6806
|
"className"
|
|
6512
6807
|
]);
|
|
6513
|
-
return /* @__PURE__ */ (0,
|
|
6808
|
+
return /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
|
|
6514
6809
|
Separator,
|
|
6515
6810
|
__spreadValues({
|
|
6516
6811
|
"data-slot": "sidebar-separator",
|
|
@@ -6521,7 +6816,7 @@ function SidebarSeparator(_a) {
|
|
|
6521
6816
|
}
|
|
6522
6817
|
function SidebarContent(_a) {
|
|
6523
6818
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
6524
|
-
return /* @__PURE__ */ (0,
|
|
6819
|
+
return /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
|
|
6525
6820
|
"div",
|
|
6526
6821
|
__spreadValues({
|
|
6527
6822
|
"data-slot": "sidebar-content",
|
|
@@ -6535,7 +6830,7 @@ function SidebarContent(_a) {
|
|
|
6535
6830
|
}
|
|
6536
6831
|
function SidebarGroup(_a) {
|
|
6537
6832
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
6538
|
-
return /* @__PURE__ */ (0,
|
|
6833
|
+
return /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
|
|
6539
6834
|
"div",
|
|
6540
6835
|
__spreadValues({
|
|
6541
6836
|
"data-slot": "sidebar-group",
|
|
@@ -6556,7 +6851,7 @@ function SidebarGroupLabel(_a) {
|
|
|
6556
6851
|
"asChild"
|
|
6557
6852
|
]);
|
|
6558
6853
|
const Comp = asChild ? import_radix_ui28.Slot.Root : "div";
|
|
6559
|
-
return /* @__PURE__ */ (0,
|
|
6854
|
+
return /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
|
|
6560
6855
|
Comp,
|
|
6561
6856
|
__spreadValues({
|
|
6562
6857
|
"data-slot": "sidebar-group-label",
|
|
@@ -6578,7 +6873,7 @@ function SidebarGroupAction(_a) {
|
|
|
6578
6873
|
"asChild"
|
|
6579
6874
|
]);
|
|
6580
6875
|
const Comp = asChild ? import_radix_ui28.Slot.Root : "button";
|
|
6581
|
-
return /* @__PURE__ */ (0,
|
|
6876
|
+
return /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
|
|
6582
6877
|
Comp,
|
|
6583
6878
|
__spreadValues({
|
|
6584
6879
|
"data-slot": "sidebar-group-action",
|
|
@@ -6599,7 +6894,7 @@ function SidebarGroupContent(_a) {
|
|
|
6599
6894
|
} = _b, props = __objRest(_b, [
|
|
6600
6895
|
"className"
|
|
6601
6896
|
]);
|
|
6602
|
-
return /* @__PURE__ */ (0,
|
|
6897
|
+
return /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
|
|
6603
6898
|
"div",
|
|
6604
6899
|
__spreadValues({
|
|
6605
6900
|
"data-slot": "sidebar-group-content",
|
|
@@ -6610,7 +6905,7 @@ function SidebarGroupContent(_a) {
|
|
|
6610
6905
|
}
|
|
6611
6906
|
function SidebarMenu(_a) {
|
|
6612
6907
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
6613
|
-
return /* @__PURE__ */ (0,
|
|
6908
|
+
return /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
|
|
6614
6909
|
"ul",
|
|
6615
6910
|
__spreadValues({
|
|
6616
6911
|
"data-slot": "sidebar-menu",
|
|
@@ -6621,7 +6916,7 @@ function SidebarMenu(_a) {
|
|
|
6621
6916
|
}
|
|
6622
6917
|
function SidebarMenuItem(_a) {
|
|
6623
6918
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
6624
|
-
return /* @__PURE__ */ (0,
|
|
6919
|
+
return /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
|
|
6625
6920
|
"li",
|
|
6626
6921
|
__spreadValues({
|
|
6627
6922
|
"data-slot": "sidebar-menu-item",
|
|
@@ -6668,7 +6963,7 @@ function SidebarMenuButton(_a) {
|
|
|
6668
6963
|
]);
|
|
6669
6964
|
const Comp = asChild ? import_radix_ui28.Slot.Root : "button";
|
|
6670
6965
|
const { isMobile, state } = useSidebar();
|
|
6671
|
-
const button = /* @__PURE__ */ (0,
|
|
6966
|
+
const button = /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
|
|
6672
6967
|
Comp,
|
|
6673
6968
|
__spreadValues({
|
|
6674
6969
|
"data-slot": "sidebar-menu-button",
|
|
@@ -6686,9 +6981,9 @@ function SidebarMenuButton(_a) {
|
|
|
6686
6981
|
children: tooltip
|
|
6687
6982
|
};
|
|
6688
6983
|
}
|
|
6689
|
-
return /* @__PURE__ */ (0,
|
|
6690
|
-
/* @__PURE__ */ (0,
|
|
6691
|
-
/* @__PURE__ */ (0,
|
|
6984
|
+
return /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(Tooltip, { children: [
|
|
6985
|
+
/* @__PURE__ */ (0, import_jsx_runtime50.jsx)(TooltipTrigger, { asChild: true, children: button }),
|
|
6986
|
+
/* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
|
|
6692
6987
|
TooltipContent,
|
|
6693
6988
|
__spreadValues({
|
|
6694
6989
|
side: "right",
|
|
@@ -6709,7 +7004,7 @@ function SidebarMenuAction(_a) {
|
|
|
6709
7004
|
"showOnHover"
|
|
6710
7005
|
]);
|
|
6711
7006
|
const Comp = asChild ? import_radix_ui28.Slot.Root : "button";
|
|
6712
|
-
return /* @__PURE__ */ (0,
|
|
7007
|
+
return /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
|
|
6713
7008
|
Comp,
|
|
6714
7009
|
__spreadValues({
|
|
6715
7010
|
"data-slot": "sidebar-menu-action",
|
|
@@ -6734,7 +7029,7 @@ function SidebarMenuBadge(_a) {
|
|
|
6734
7029
|
} = _b, props = __objRest(_b, [
|
|
6735
7030
|
"className"
|
|
6736
7031
|
]);
|
|
6737
|
-
return /* @__PURE__ */ (0,
|
|
7032
|
+
return /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
|
|
6738
7033
|
"div",
|
|
6739
7034
|
__spreadValues({
|
|
6740
7035
|
"data-slot": "sidebar-menu-badge",
|
|
@@ -6760,7 +7055,7 @@ function SidebarMenuSkeleton(_a) {
|
|
|
6760
7055
|
"showIcon"
|
|
6761
7056
|
]);
|
|
6762
7057
|
const width = "70%";
|
|
6763
|
-
return /* @__PURE__ */ (0,
|
|
7058
|
+
return /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(
|
|
6764
7059
|
"div",
|
|
6765
7060
|
__spreadProps(__spreadValues({
|
|
6766
7061
|
"data-slot": "sidebar-menu-skeleton",
|
|
@@ -6768,14 +7063,14 @@ function SidebarMenuSkeleton(_a) {
|
|
|
6768
7063
|
className: cn("flex h-8 items-center gap-2 rounded-md px-2", className)
|
|
6769
7064
|
}, props), {
|
|
6770
7065
|
children: [
|
|
6771
|
-
showIcon && /* @__PURE__ */ (0,
|
|
7066
|
+
showIcon && /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
|
|
6772
7067
|
Skeleton,
|
|
6773
7068
|
{
|
|
6774
7069
|
className: "size-4 rounded-md",
|
|
6775
7070
|
"data-sidebar": "menu-skeleton-icon"
|
|
6776
7071
|
}
|
|
6777
7072
|
),
|
|
6778
|
-
/* @__PURE__ */ (0,
|
|
7073
|
+
/* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
|
|
6779
7074
|
Skeleton,
|
|
6780
7075
|
{
|
|
6781
7076
|
className: "h-4 max-w-(--skeleton-width) flex-1",
|
|
@@ -6791,7 +7086,7 @@ function SidebarMenuSkeleton(_a) {
|
|
|
6791
7086
|
}
|
|
6792
7087
|
function SidebarMenuSub(_a) {
|
|
6793
7088
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
6794
|
-
return /* @__PURE__ */ (0,
|
|
7089
|
+
return /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
|
|
6795
7090
|
"ul",
|
|
6796
7091
|
__spreadValues({
|
|
6797
7092
|
"data-slot": "sidebar-menu-sub",
|
|
@@ -6810,7 +7105,7 @@ function SidebarMenuSubItem(_a) {
|
|
|
6810
7105
|
} = _b, props = __objRest(_b, [
|
|
6811
7106
|
"className"
|
|
6812
7107
|
]);
|
|
6813
|
-
return /* @__PURE__ */ (0,
|
|
7108
|
+
return /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
|
|
6814
7109
|
"li",
|
|
6815
7110
|
__spreadValues({
|
|
6816
7111
|
"data-slot": "sidebar-menu-sub-item",
|
|
@@ -6832,7 +7127,7 @@ function SidebarMenuSubButton(_a) {
|
|
|
6832
7127
|
"className"
|
|
6833
7128
|
]);
|
|
6834
7129
|
const Comp = asChild ? import_radix_ui28.Slot.Root : "a";
|
|
6835
|
-
return /* @__PURE__ */ (0,
|
|
7130
|
+
return /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
|
|
6836
7131
|
Comp,
|
|
6837
7132
|
__spreadValues({
|
|
6838
7133
|
"data-slot": "sidebar-menu-sub-button",
|
|
@@ -6852,9 +7147,9 @@ function SidebarMenuSubButton(_a) {
|
|
|
6852
7147
|
}
|
|
6853
7148
|
|
|
6854
7149
|
// components/ui/slider.tsx
|
|
6855
|
-
var
|
|
7150
|
+
var React16 = __toESM(require("react"), 1);
|
|
6856
7151
|
var import_radix_ui29 = require("radix-ui");
|
|
6857
|
-
var
|
|
7152
|
+
var import_jsx_runtime51 = require("react/jsx-runtime");
|
|
6858
7153
|
function Slider(_a) {
|
|
6859
7154
|
var _b = _a, {
|
|
6860
7155
|
className,
|
|
@@ -6869,11 +7164,11 @@ function Slider(_a) {
|
|
|
6869
7164
|
"min",
|
|
6870
7165
|
"max"
|
|
6871
7166
|
]);
|
|
6872
|
-
const _values =
|
|
7167
|
+
const _values = React16.useMemo(
|
|
6873
7168
|
() => Array.isArray(value) ? value : Array.isArray(defaultValue) ? defaultValue : [min, max],
|
|
6874
7169
|
[value, defaultValue, min, max]
|
|
6875
7170
|
);
|
|
6876
|
-
return /* @__PURE__ */ (0,
|
|
7171
|
+
return /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)(
|
|
6877
7172
|
import_radix_ui29.Slider.Root,
|
|
6878
7173
|
__spreadProps(__spreadValues({
|
|
6879
7174
|
"data-slot": "slider",
|
|
@@ -6887,7 +7182,7 @@ function Slider(_a) {
|
|
|
6887
7182
|
)
|
|
6888
7183
|
}, props), {
|
|
6889
7184
|
children: [
|
|
6890
|
-
/* @__PURE__ */ (0,
|
|
7185
|
+
/* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
|
|
6891
7186
|
import_radix_ui29.Slider.Track,
|
|
6892
7187
|
{
|
|
6893
7188
|
"data-slot": "slider-track",
|
|
@@ -6896,7 +7191,7 @@ function Slider(_a) {
|
|
|
6896
7191
|
// surface, solid brand fill.
|
|
6897
7192
|
"relative grow overflow-hidden rounded-full bg-background-secondary-surface data-[orientation=horizontal]:h-2 data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-2"
|
|
6898
7193
|
),
|
|
6899
|
-
children: /* @__PURE__ */ (0,
|
|
7194
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
|
|
6900
7195
|
import_radix_ui29.Slider.Range,
|
|
6901
7196
|
{
|
|
6902
7197
|
"data-slot": "slider-range",
|
|
@@ -6907,7 +7202,7 @@ function Slider(_a) {
|
|
|
6907
7202
|
)
|
|
6908
7203
|
}
|
|
6909
7204
|
),
|
|
6910
|
-
Array.from({ length: _values.length }, (_, index) => /* @__PURE__ */ (0,
|
|
7205
|
+
Array.from({ length: _values.length }, (_, index) => /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
|
|
6911
7206
|
import_radix_ui29.Slider.Thumb,
|
|
6912
7207
|
{
|
|
6913
7208
|
"data-slot": "slider-thumb",
|
|
@@ -6921,29 +7216,27 @@ function Slider(_a) {
|
|
|
6921
7216
|
}
|
|
6922
7217
|
|
|
6923
7218
|
// components/ui/toast.tsx
|
|
6924
|
-
var
|
|
7219
|
+
var React17 = __toESM(require("react"), 1);
|
|
6925
7220
|
var import_lucide_react26 = require("lucide-react");
|
|
6926
|
-
var import_next_themes = require("next-themes");
|
|
6927
7221
|
var import_sonner = require("sonner");
|
|
6928
|
-
var
|
|
7222
|
+
var import_jsx_runtime52 = require("react/jsx-runtime");
|
|
6929
7223
|
var Toaster = (_a) => {
|
|
6930
7224
|
var props = __objRest(_a, []);
|
|
6931
|
-
const { theme = "system" } = (0, import_next_themes.useTheme)();
|
|
6932
7225
|
const isMobile = useIsMobile();
|
|
6933
|
-
return /* @__PURE__ */ (0,
|
|
7226
|
+
return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
|
|
6934
7227
|
import_sonner.Toaster,
|
|
6935
7228
|
__spreadValues({
|
|
6936
|
-
theme,
|
|
7229
|
+
theme: "system",
|
|
6937
7230
|
className: "toaster group",
|
|
6938
7231
|
position: isMobile ? "top-center" : "bottom-right",
|
|
6939
7232
|
visibleToasts: isMobile ? 1 : 3,
|
|
6940
7233
|
duration: 4e3,
|
|
6941
7234
|
icons: {
|
|
6942
|
-
success: /* @__PURE__ */ (0,
|
|
6943
|
-
info: /* @__PURE__ */ (0,
|
|
6944
|
-
warning: /* @__PURE__ */ (0,
|
|
6945
|
-
error: /* @__PURE__ */ (0,
|
|
6946
|
-
loading: /* @__PURE__ */ (0,
|
|
7235
|
+
success: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_lucide_react26.CircleCheckIcon, { className: "size-4" }),
|
|
7236
|
+
info: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_lucide_react26.InfoIcon, { className: "size-4" }),
|
|
7237
|
+
warning: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_lucide_react26.TriangleAlertIcon, { className: "size-4" }),
|
|
7238
|
+
error: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_lucide_react26.OctagonXIcon, { className: "size-4" }),
|
|
7239
|
+
loading: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_lucide_react26.Loader2Icon, { className: "size-4 animate-spin" })
|
|
6947
7240
|
},
|
|
6948
7241
|
toastOptions: {
|
|
6949
7242
|
classNames: {
|
|
@@ -6993,30 +7286,30 @@ function ResultSnackbar(_a) {
|
|
|
6993
7286
|
"className"
|
|
6994
7287
|
]);
|
|
6995
7288
|
const isWin = outcome === "win";
|
|
6996
|
-
const [leaving, setLeaving] =
|
|
7289
|
+
const [leaving, setLeaving] = React17.useState(false);
|
|
6997
7290
|
const reduced = usePrefersReducedMotion();
|
|
6998
|
-
const onDismissRef =
|
|
6999
|
-
|
|
7291
|
+
const onDismissRef = React17.useRef(onDismiss);
|
|
7292
|
+
React17.useEffect(() => {
|
|
7000
7293
|
onDismissRef.current = onDismiss;
|
|
7001
7294
|
}, [onDismiss]);
|
|
7002
|
-
const firedRef =
|
|
7003
|
-
const finish =
|
|
7295
|
+
const firedRef = React17.useRef(false);
|
|
7296
|
+
const finish = React17.useCallback(() => {
|
|
7004
7297
|
var _a2;
|
|
7005
7298
|
if (firedRef.current) return;
|
|
7006
7299
|
firedRef.current = true;
|
|
7007
7300
|
(_a2 = onDismissRef.current) == null ? void 0 : _a2.call(onDismissRef);
|
|
7008
7301
|
}, []);
|
|
7009
|
-
|
|
7302
|
+
React17.useEffect(() => {
|
|
7010
7303
|
const leave = window.setTimeout(() => setLeaving(true), durationMs);
|
|
7011
7304
|
return () => window.clearTimeout(leave);
|
|
7012
7305
|
}, [durationMs]);
|
|
7013
|
-
|
|
7306
|
+
React17.useEffect(() => {
|
|
7014
7307
|
if (!leaving) return;
|
|
7015
7308
|
const done = window.setTimeout(finish, reduced ? 0 : RESULT_SNACKBAR_EXIT_MS);
|
|
7016
7309
|
return () => window.clearTimeout(done);
|
|
7017
7310
|
}, [leaving, finish, reduced]);
|
|
7018
|
-
const [display, setDisplay] =
|
|
7019
|
-
|
|
7311
|
+
const [display, setDisplay] = React17.useState(null);
|
|
7312
|
+
React17.useEffect(() => {
|
|
7020
7313
|
if (amountValue === void 0 || reduced || !Number.isFinite(amountValue)) {
|
|
7021
7314
|
setDisplay(null);
|
|
7022
7315
|
return;
|
|
@@ -7041,7 +7334,7 @@ function ResultSnackbar(_a) {
|
|
|
7041
7334
|
const spoken = announcement != null ? announcement : `${isWin ? "Won" : "Lost"} ${amount} ${currency}. ${contractLabel}, ${duration}.`;
|
|
7042
7335
|
const enterOut = leaving ? "out" : "in";
|
|
7043
7336
|
const motionName = `result-snackbar-${enterOut}-${placement}`;
|
|
7044
|
-
return /* @__PURE__ */ (0,
|
|
7337
|
+
return /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)(
|
|
7045
7338
|
"div",
|
|
7046
7339
|
__spreadProps(__spreadValues({
|
|
7047
7340
|
role: "status",
|
|
@@ -7065,8 +7358,8 @@ function ResultSnackbar(_a) {
|
|
|
7065
7358
|
}
|
|
7066
7359
|
}, props), {
|
|
7067
7360
|
children: [
|
|
7068
|
-
/* @__PURE__ */ (0,
|
|
7069
|
-
icon ? /* @__PURE__ */ (0,
|
|
7361
|
+
/* @__PURE__ */ (0, import_jsx_runtime52.jsx)("span", { className: "sr-only", children: spoken }),
|
|
7362
|
+
icon ? /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
|
|
7070
7363
|
"span",
|
|
7071
7364
|
{
|
|
7072
7365
|
"data-slot": "result-snackbar-icon",
|
|
@@ -7077,8 +7370,8 @@ function ResultSnackbar(_a) {
|
|
|
7077
7370
|
children: icon
|
|
7078
7371
|
}
|
|
7079
7372
|
) : null,
|
|
7080
|
-
/* @__PURE__ */ (0,
|
|
7081
|
-
/* @__PURE__ */ (0,
|
|
7373
|
+
/* @__PURE__ */ (0, import_jsx_runtime52.jsxs)("span", { "aria-hidden": true, className: "flex min-w-max flex-col gap-0.5", children: [
|
|
7374
|
+
/* @__PURE__ */ (0, import_jsx_runtime52.jsxs)(
|
|
7082
7375
|
"span",
|
|
7083
7376
|
{
|
|
7084
7377
|
className: cn(
|
|
@@ -7088,17 +7381,17 @@ function ResultSnackbar(_a) {
|
|
|
7088
7381
|
children: [
|
|
7089
7382
|
display != null ? display : amount,
|
|
7090
7383
|
" ",
|
|
7091
|
-
/* @__PURE__ */ (0,
|
|
7384
|
+
/* @__PURE__ */ (0, import_jsx_runtime52.jsx)("span", { className: "type-result-snackbar-currency", children: currency })
|
|
7092
7385
|
]
|
|
7093
7386
|
}
|
|
7094
7387
|
),
|
|
7095
|
-
/* @__PURE__ */ (0,
|
|
7388
|
+
/* @__PURE__ */ (0, import_jsx_runtime52.jsxs)("span", { className: "type-result-snackbar-terms min-w-max text-text-subtle-default", children: [
|
|
7096
7389
|
contractLabel,
|
|
7097
7390
|
" \xB7 ",
|
|
7098
7391
|
duration
|
|
7099
7392
|
] })
|
|
7100
7393
|
] }),
|
|
7101
|
-
/* @__PURE__ */ (0,
|
|
7394
|
+
/* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
|
|
7102
7395
|
"span",
|
|
7103
7396
|
{
|
|
7104
7397
|
"aria-hidden": true,
|
|
@@ -7117,8 +7410,8 @@ function ResultSnackbar(_a) {
|
|
|
7117
7410
|
);
|
|
7118
7411
|
}
|
|
7119
7412
|
function usePrefersReducedMotion() {
|
|
7120
|
-
const [reduced, setReduced] =
|
|
7121
|
-
|
|
7413
|
+
const [reduced, setReduced] = React17.useState(false);
|
|
7414
|
+
React17.useEffect(() => {
|
|
7122
7415
|
const query = window.matchMedia("(prefers-reduced-motion: reduce)");
|
|
7123
7416
|
setReduced(query.matches);
|
|
7124
7417
|
const onChange = (event) => setReduced(event.matches);
|
|
@@ -7129,9 +7422,9 @@ function usePrefersReducedMotion() {
|
|
|
7129
7422
|
}
|
|
7130
7423
|
|
|
7131
7424
|
// components/ui/slide-to-confirm.tsx
|
|
7132
|
-
var
|
|
7425
|
+
var React18 = __toESM(require("react"), 1);
|
|
7133
7426
|
var import_lucide_react27 = require("lucide-react");
|
|
7134
|
-
var
|
|
7427
|
+
var import_jsx_runtime53 = require("react/jsx-runtime");
|
|
7135
7428
|
var CONFIRM_AT = 0.9;
|
|
7136
7429
|
var HANDLE = 46;
|
|
7137
7430
|
var INSET2 = 5;
|
|
@@ -7151,21 +7444,21 @@ function SlideToConfirm(_a) {
|
|
|
7151
7444
|
"confirmed",
|
|
7152
7445
|
"className"
|
|
7153
7446
|
]);
|
|
7154
|
-
const trackRef =
|
|
7155
|
-
const [dragX, setDragX] =
|
|
7156
|
-
const [dragging, setDragging] =
|
|
7157
|
-
const [trackWidth, setTrackWidth] =
|
|
7158
|
-
const [internalConfirmed, setInternalConfirmed] =
|
|
7447
|
+
const trackRef = React18.useRef(null);
|
|
7448
|
+
const [dragX, setDragX] = React18.useState(0);
|
|
7449
|
+
const [dragging, setDragging] = React18.useState(false);
|
|
7450
|
+
const [trackWidth, setTrackWidth] = React18.useState(0);
|
|
7451
|
+
const [internalConfirmed, setInternalConfirmed] = React18.useState(false);
|
|
7159
7452
|
const confirmed = controlledConfirmed != null ? controlledConfirmed : internalConfirmed;
|
|
7160
|
-
const firedRef =
|
|
7161
|
-
|
|
7453
|
+
const firedRef = React18.useRef(false);
|
|
7454
|
+
React18.useEffect(() => {
|
|
7162
7455
|
if (controlledConfirmed === false) {
|
|
7163
7456
|
setInternalConfirmed(false);
|
|
7164
7457
|
setDragX(0);
|
|
7165
7458
|
firedRef.current = false;
|
|
7166
7459
|
}
|
|
7167
7460
|
}, [controlledConfirmed]);
|
|
7168
|
-
|
|
7461
|
+
React18.useEffect(() => {
|
|
7169
7462
|
const track = trackRef.current;
|
|
7170
7463
|
if (!track) return;
|
|
7171
7464
|
const ro = new ResizeObserver(() => setTrackWidth(track.clientWidth));
|
|
@@ -7214,7 +7507,7 @@ function SlideToConfirm(_a) {
|
|
|
7214
7507
|
const fillWidth = dragX === 0 ? 0 : dragX + HANDLE;
|
|
7215
7508
|
const revealWidth = INSET2 + dragX + HANDLE / 2;
|
|
7216
7509
|
const spring = "duration-slow ease-(--primitive-ease-spring)";
|
|
7217
|
-
return /* @__PURE__ */ (0,
|
|
7510
|
+
return /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(
|
|
7218
7511
|
"div",
|
|
7219
7512
|
__spreadProps(__spreadValues({
|
|
7220
7513
|
ref: trackRef,
|
|
@@ -7233,8 +7526,8 @@ function SlideToConfirm(_a) {
|
|
|
7233
7526
|
)
|
|
7234
7527
|
}, props), {
|
|
7235
7528
|
children: [
|
|
7236
|
-
/* @__PURE__ */ (0,
|
|
7237
|
-
/* @__PURE__ */ (0,
|
|
7529
|
+
/* @__PURE__ */ (0, import_jsx_runtime53.jsx)("span", { className: "absolute inset-0 grid place-items-center", children: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("span", { className: "type-slide-to-confirm text-text-subtle-default", children: label }) }),
|
|
7530
|
+
/* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
|
|
7238
7531
|
"span",
|
|
7239
7532
|
{
|
|
7240
7533
|
"aria-hidden": true,
|
|
@@ -7252,7 +7545,7 @@ function SlideToConfirm(_a) {
|
|
|
7252
7545
|
}
|
|
7253
7546
|
}
|
|
7254
7547
|
),
|
|
7255
|
-
/* @__PURE__ */ (0,
|
|
7548
|
+
/* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
|
|
7256
7549
|
"span",
|
|
7257
7550
|
{
|
|
7258
7551
|
"aria-hidden": true,
|
|
@@ -7264,10 +7557,10 @@ function SlideToConfirm(_a) {
|
|
|
7264
7557
|
style: {
|
|
7265
7558
|
clipPath: confirmed ? "inset(0 round 9999px)" : `inset(0 calc(100% - ${revealWidth}px) 0 0 round 9999px)`
|
|
7266
7559
|
},
|
|
7267
|
-
children: /* @__PURE__ */ (0,
|
|
7560
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("span", { className: "type-slide-to-confirm flex items-center gap-2 text-text-on-brand-static", children: confirmed ? confirmedLabel : label })
|
|
7268
7561
|
}
|
|
7269
7562
|
),
|
|
7270
|
-
/* @__PURE__ */ (0,
|
|
7563
|
+
/* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
|
|
7271
7564
|
"span",
|
|
7272
7565
|
{
|
|
7273
7566
|
"data-slot": "slide-to-confirm-handle",
|
|
@@ -7296,7 +7589,7 @@ function SlideToConfirm(_a) {
|
|
|
7296
7589
|
// the keyboard, where dragX never moved.
|
|
7297
7590
|
translate: `${confirmed ? maxTravel : dragX}px -50%`
|
|
7298
7591
|
},
|
|
7299
|
-
children: confirmed ? /* @__PURE__ */ (0,
|
|
7592
|
+
children: confirmed ? /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_lucide_react27.Check, { className: "size-4.5 [animation:slide-confirm-pop_var(--motion-pop)_var(--primitive-ease-overshoot)]" }) : /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_lucide_react27.ArrowRight, { className: "size-4.5" })
|
|
7300
7593
|
}
|
|
7301
7594
|
)
|
|
7302
7595
|
]
|
|
@@ -7305,10 +7598,10 @@ function SlideToConfirm(_a) {
|
|
|
7305
7598
|
}
|
|
7306
7599
|
|
|
7307
7600
|
// components/ui/stepper.tsx
|
|
7308
|
-
var
|
|
7601
|
+
var React19 = __toESM(require("react"), 1);
|
|
7309
7602
|
var import_lucide_react28 = require("lucide-react");
|
|
7310
|
-
var
|
|
7311
|
-
function
|
|
7603
|
+
var import_jsx_runtime54 = require("react/jsx-runtime");
|
|
7604
|
+
function clamp2(value, min, max) {
|
|
7312
7605
|
return Math.min(Math.max(value, min), max);
|
|
7313
7606
|
}
|
|
7314
7607
|
function getDecimalPlaces(n) {
|
|
@@ -7335,16 +7628,16 @@ function Stepper({
|
|
|
7335
7628
|
"aria-label": ariaLabel
|
|
7336
7629
|
}) {
|
|
7337
7630
|
const isControlled = controlledValue !== void 0;
|
|
7338
|
-
const [internalValue, setInternalValue] =
|
|
7339
|
-
|
|
7631
|
+
const [internalValue, setInternalValue] = React19.useState(
|
|
7632
|
+
clamp2(defaultValue, min, max)
|
|
7340
7633
|
);
|
|
7341
7634
|
const currentValue = isControlled ? controlledValue : internalValue;
|
|
7342
7635
|
const decimalPlaces = getDecimalPlaces(step);
|
|
7343
|
-
const [displayString, setDisplayString] =
|
|
7636
|
+
const [displayString, setDisplayString] = React19.useState(
|
|
7344
7637
|
formatValue(currentValue, decimalPlaces)
|
|
7345
7638
|
);
|
|
7346
|
-
const [isFocused, setIsFocused] =
|
|
7347
|
-
|
|
7639
|
+
const [isFocused, setIsFocused] = React19.useState(false);
|
|
7640
|
+
React19.useEffect(() => {
|
|
7348
7641
|
if (!isFocused) {
|
|
7349
7642
|
setDisplayString(formatValue(currentValue, decimalPlaces));
|
|
7350
7643
|
}
|
|
@@ -7357,7 +7650,7 @@ function Stepper({
|
|
|
7357
7650
|
committed = max;
|
|
7358
7651
|
} else {
|
|
7359
7652
|
const rounded = decimalPlaces > 0 ? parseFloat(next.toFixed(decimalPlaces)) : Math.round(next);
|
|
7360
|
-
committed =
|
|
7653
|
+
committed = clamp2(rounded, min, max);
|
|
7361
7654
|
}
|
|
7362
7655
|
if (!isControlled) setInternalValue(committed);
|
|
7363
7656
|
setDisplayString(formatValue(committed, decimalPlaces));
|
|
@@ -7401,7 +7694,7 @@ function Stepper({
|
|
|
7401
7694
|
}
|
|
7402
7695
|
}
|
|
7403
7696
|
}
|
|
7404
|
-
return /* @__PURE__ */ (0,
|
|
7697
|
+
return /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)(
|
|
7405
7698
|
"div",
|
|
7406
7699
|
{
|
|
7407
7700
|
"data-slot": "stepper",
|
|
@@ -7420,7 +7713,7 @@ function Stepper({
|
|
|
7420
7713
|
className
|
|
7421
7714
|
),
|
|
7422
7715
|
children: [
|
|
7423
|
-
label != null && /* @__PURE__ */ (0,
|
|
7716
|
+
label != null && /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
|
|
7424
7717
|
"span",
|
|
7425
7718
|
{
|
|
7426
7719
|
"data-slot": "stepper-label",
|
|
@@ -7431,13 +7724,13 @@ function Stepper({
|
|
|
7431
7724
|
children: label
|
|
7432
7725
|
}
|
|
7433
7726
|
),
|
|
7434
|
-
/* @__PURE__ */ (0,
|
|
7727
|
+
/* @__PURE__ */ (0, import_jsx_runtime54.jsxs)(
|
|
7435
7728
|
"div",
|
|
7436
7729
|
{
|
|
7437
7730
|
"data-slot": "stepper-row",
|
|
7438
7731
|
className: "flex w-full items-center justify-between gap-4",
|
|
7439
7732
|
children: [
|
|
7440
|
-
/* @__PURE__ */ (0,
|
|
7733
|
+
/* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
|
|
7441
7734
|
Button,
|
|
7442
7735
|
{
|
|
7443
7736
|
type: "button",
|
|
@@ -7446,10 +7739,10 @@ function Stepper({
|
|
|
7446
7739
|
onClick: handleDecrement,
|
|
7447
7740
|
disabled: disabled || currentValue <= min,
|
|
7448
7741
|
"aria-label": "Decrease value",
|
|
7449
|
-
children: /* @__PURE__ */ (0,
|
|
7742
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_lucide_react28.Minus, {})
|
|
7450
7743
|
}
|
|
7451
7744
|
),
|
|
7452
|
-
/* @__PURE__ */ (0,
|
|
7745
|
+
/* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
|
|
7453
7746
|
"input",
|
|
7454
7747
|
{
|
|
7455
7748
|
type: "text",
|
|
@@ -7473,7 +7766,7 @@ function Stepper({
|
|
|
7473
7766
|
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"
|
|
7474
7767
|
}
|
|
7475
7768
|
),
|
|
7476
|
-
/* @__PURE__ */ (0,
|
|
7769
|
+
/* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
|
|
7477
7770
|
Button,
|
|
7478
7771
|
{
|
|
7479
7772
|
type: "button",
|
|
@@ -7482,7 +7775,7 @@ function Stepper({
|
|
|
7482
7775
|
onClick: handleIncrement,
|
|
7483
7776
|
disabled: disabled || currentValue >= max,
|
|
7484
7777
|
"aria-label": "Increase value",
|
|
7485
|
-
children: /* @__PURE__ */ (0,
|
|
7778
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_lucide_react28.Plus, {})
|
|
7486
7779
|
}
|
|
7487
7780
|
)
|
|
7488
7781
|
]
|
|
@@ -7494,10 +7787,10 @@ function Stepper({
|
|
|
7494
7787
|
}
|
|
7495
7788
|
|
|
7496
7789
|
// components/ui/steps.tsx
|
|
7497
|
-
var
|
|
7790
|
+
var React20 = __toESM(require("react"), 1);
|
|
7498
7791
|
var import_lucide_react29 = require("lucide-react");
|
|
7499
|
-
var
|
|
7500
|
-
var StepsContext =
|
|
7792
|
+
var import_jsx_runtime55 = require("react/jsx-runtime");
|
|
7793
|
+
var StepsContext = React20.createContext({ shape: "circle", orientation: "horizontal", size: "md" });
|
|
7501
7794
|
function Steps(_a) {
|
|
7502
7795
|
var _b = _a, {
|
|
7503
7796
|
shape = "circle",
|
|
@@ -7512,8 +7805,8 @@ function Steps(_a) {
|
|
|
7512
7805
|
"className",
|
|
7513
7806
|
"children"
|
|
7514
7807
|
]);
|
|
7515
|
-
const steps =
|
|
7516
|
-
return /* @__PURE__ */ (0,
|
|
7808
|
+
const steps = React20.Children.toArray(children);
|
|
7809
|
+
return /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(StepsContext.Provider, { value: { shape, orientation, size }, children: /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
|
|
7517
7810
|
"ol",
|
|
7518
7811
|
__spreadProps(__spreadValues({
|
|
7519
7812
|
"data-slot": "steps",
|
|
@@ -7527,7 +7820,7 @@ function Steps(_a) {
|
|
|
7527
7820
|
)
|
|
7528
7821
|
}, props), {
|
|
7529
7822
|
children: steps.map(
|
|
7530
|
-
(child, index) =>
|
|
7823
|
+
(child, index) => React20.isValidElement(child) ? React20.cloneElement(child, {
|
|
7531
7824
|
index: index + 1,
|
|
7532
7825
|
isFirst: index === 0,
|
|
7533
7826
|
isLast: index === steps.length - 1
|
|
@@ -7558,10 +7851,10 @@ function Step(_a) {
|
|
|
7558
7851
|
"isLast",
|
|
7559
7852
|
"className"
|
|
7560
7853
|
]);
|
|
7561
|
-
const { shape, orientation, size } =
|
|
7854
|
+
const { shape, orientation, size } = React20.useContext(StepsContext);
|
|
7562
7855
|
const horizontal = orientation === "horizontal";
|
|
7563
7856
|
const sm = size === "sm";
|
|
7564
|
-
const indicator = /* @__PURE__ */ (0,
|
|
7857
|
+
const indicator = /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
|
|
7565
7858
|
"span",
|
|
7566
7859
|
{
|
|
7567
7860
|
"data-slot": "step-indicator",
|
|
@@ -7575,11 +7868,11 @@ function Step(_a) {
|
|
|
7575
7868
|
"[&_svg]:pointer-events-none [&_svg]:shrink-0",
|
|
7576
7869
|
sm ? "[&_svg:not([class*='size-'])]:size-3.5" : "[&_svg:not([class*='size-'])]:size-4"
|
|
7577
7870
|
),
|
|
7578
|
-
children: state === "done" ? /* @__PURE__ */ (0,
|
|
7871
|
+
children: state === "done" ? /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(import_lucide_react29.Check, {}) : icon != null ? icon : index
|
|
7579
7872
|
}
|
|
7580
7873
|
);
|
|
7581
7874
|
if (horizontal) {
|
|
7582
|
-
return /* @__PURE__ */ (0,
|
|
7875
|
+
return /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)(
|
|
7583
7876
|
"li",
|
|
7584
7877
|
__spreadProps(__spreadValues({
|
|
7585
7878
|
"data-slot": "step",
|
|
@@ -7588,8 +7881,8 @@ function Step(_a) {
|
|
|
7588
7881
|
className: cn("flex min-w-0 flex-1 flex-col items-center", className)
|
|
7589
7882
|
}, props), {
|
|
7590
7883
|
children: [
|
|
7591
|
-
/* @__PURE__ */ (0,
|
|
7592
|
-
/* @__PURE__ */ (0,
|
|
7884
|
+
/* @__PURE__ */ (0, import_jsx_runtime55.jsxs)("div", { className: "flex w-full items-center", children: [
|
|
7885
|
+
/* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
|
|
7593
7886
|
"span",
|
|
7594
7887
|
{
|
|
7595
7888
|
"aria-hidden": true,
|
|
@@ -7597,10 +7890,10 @@ function Step(_a) {
|
|
|
7597
7890
|
className: cn("h-px flex-1", !isFirst && "bg-border-neutral-default")
|
|
7598
7891
|
}
|
|
7599
7892
|
),
|
|
7600
|
-
/* @__PURE__ */ (0,
|
|
7893
|
+
/* @__PURE__ */ (0, import_jsx_runtime55.jsx)("span", { className: cn(!isFirst && "w-1", "shrink-0") }),
|
|
7601
7894
|
indicator,
|
|
7602
|
-
/* @__PURE__ */ (0,
|
|
7603
|
-
/* @__PURE__ */ (0,
|
|
7895
|
+
/* @__PURE__ */ (0, import_jsx_runtime55.jsx)("span", { className: cn(!isLast && "w-1", "shrink-0") }),
|
|
7896
|
+
/* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
|
|
7604
7897
|
"span",
|
|
7605
7898
|
{
|
|
7606
7899
|
"aria-hidden": true,
|
|
@@ -7609,7 +7902,7 @@ function Step(_a) {
|
|
|
7609
7902
|
}
|
|
7610
7903
|
)
|
|
7611
7904
|
] }),
|
|
7612
|
-
(title != null || description != null) && /* @__PURE__ */ (0,
|
|
7905
|
+
(title != null || description != null) && /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)(
|
|
7613
7906
|
"div",
|
|
7614
7907
|
{
|
|
7615
7908
|
"data-slot": "step-body",
|
|
@@ -7618,7 +7911,7 @@ function Step(_a) {
|
|
|
7618
7911
|
sm ? "mt-1" : "mt-1.5"
|
|
7619
7912
|
),
|
|
7620
7913
|
children: [
|
|
7621
|
-
title != null && /* @__PURE__ */ (0,
|
|
7914
|
+
title != null && /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
|
|
7622
7915
|
"span",
|
|
7623
7916
|
{
|
|
7624
7917
|
className: cn(
|
|
@@ -7628,8 +7921,8 @@ function Step(_a) {
|
|
|
7628
7921
|
children: title
|
|
7629
7922
|
}
|
|
7630
7923
|
),
|
|
7631
|
-
tag != null && /* @__PURE__ */ (0,
|
|
7632
|
-
description != null && /* @__PURE__ */ (0,
|
|
7924
|
+
tag != null && /* @__PURE__ */ (0, import_jsx_runtime55.jsx)("span", { className: "type-steps-tag whitespace-nowrap text-text-brand-selected", children: tag }),
|
|
7925
|
+
description != null && /* @__PURE__ */ (0, import_jsx_runtime55.jsx)("span", { className: "type-steps-description text-text-subtle-default", children: description })
|
|
7633
7926
|
]
|
|
7634
7927
|
}
|
|
7635
7928
|
)
|
|
@@ -7638,7 +7931,7 @@ function Step(_a) {
|
|
|
7638
7931
|
);
|
|
7639
7932
|
}
|
|
7640
7933
|
const hasBody = title != null || description != null;
|
|
7641
|
-
return /* @__PURE__ */ (0,
|
|
7934
|
+
return /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)(
|
|
7642
7935
|
"li",
|
|
7643
7936
|
__spreadProps(__spreadValues({
|
|
7644
7937
|
"data-slot": "step",
|
|
@@ -7655,9 +7948,9 @@ function Step(_a) {
|
|
|
7655
7948
|
)
|
|
7656
7949
|
}, props), {
|
|
7657
7950
|
children: [
|
|
7658
|
-
/* @__PURE__ */ (0,
|
|
7951
|
+
/* @__PURE__ */ (0, import_jsx_runtime55.jsxs)("div", { className: "flex flex-col items-center self-stretch", children: [
|
|
7659
7952
|
indicator,
|
|
7660
|
-
!isLast && /* @__PURE__ */ (0,
|
|
7953
|
+
!isLast && /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
|
|
7661
7954
|
"span",
|
|
7662
7955
|
{
|
|
7663
7956
|
"aria-hidden": true,
|
|
@@ -7666,13 +7959,13 @@ function Step(_a) {
|
|
|
7666
7959
|
}
|
|
7667
7960
|
)
|
|
7668
7961
|
] }),
|
|
7669
|
-
/* @__PURE__ */ (0,
|
|
7962
|
+
/* @__PURE__ */ (0, import_jsx_runtime55.jsxs)(
|
|
7670
7963
|
"div",
|
|
7671
7964
|
{
|
|
7672
7965
|
"data-slot": "step-body",
|
|
7673
7966
|
className: cn("flex min-w-0 flex-col", !isLast && (sm ? "pb-4" : "pb-6")),
|
|
7674
7967
|
children: [
|
|
7675
|
-
title != null && /* @__PURE__ */ (0,
|
|
7968
|
+
title != null && /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)(
|
|
7676
7969
|
"span",
|
|
7677
7970
|
{
|
|
7678
7971
|
className: cn(
|
|
@@ -7681,12 +7974,12 @@ function Step(_a) {
|
|
|
7681
7974
|
),
|
|
7682
7975
|
children: [
|
|
7683
7976
|
title,
|
|
7684
|
-
tag != null && /* @__PURE__ */ (0,
|
|
7977
|
+
tag != null && /* @__PURE__ */ (0, import_jsx_runtime55.jsx)("span", { className: "type-steps-tag ml-2 whitespace-nowrap text-text-brand-selected", children: tag })
|
|
7685
7978
|
]
|
|
7686
7979
|
}
|
|
7687
7980
|
),
|
|
7688
|
-
description != null && /* @__PURE__ */ (0,
|
|
7689
|
-
!hasBody && /* @__PURE__ */ (0,
|
|
7981
|
+
description != null && /* @__PURE__ */ (0, import_jsx_runtime55.jsx)("span", { className: "type-steps-description text-text-subtle-default", children: description }),
|
|
7982
|
+
!hasBody && /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)("span", { className: "sr-only", children: [
|
|
7690
7983
|
"Step ",
|
|
7691
7984
|
index
|
|
7692
7985
|
] })
|
|
@@ -7700,7 +7993,7 @@ function Step(_a) {
|
|
|
7700
7993
|
|
|
7701
7994
|
// components/ui/switch.tsx
|
|
7702
7995
|
var import_radix_ui30 = require("radix-ui");
|
|
7703
|
-
var
|
|
7996
|
+
var import_jsx_runtime56 = require("react/jsx-runtime");
|
|
7704
7997
|
function Switch(_a) {
|
|
7705
7998
|
var _b = _a, {
|
|
7706
7999
|
className,
|
|
@@ -7709,7 +8002,7 @@ function Switch(_a) {
|
|
|
7709
8002
|
"className",
|
|
7710
8003
|
"size"
|
|
7711
8004
|
]);
|
|
7712
|
-
return /* @__PURE__ */ (0,
|
|
8005
|
+
return /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(
|
|
7713
8006
|
import_radix_ui30.Switch.Root,
|
|
7714
8007
|
__spreadProps(__spreadValues({
|
|
7715
8008
|
"data-slot": "switch",
|
|
@@ -7719,7 +8012,7 @@ function Switch(_a) {
|
|
|
7719
8012
|
className
|
|
7720
8013
|
)
|
|
7721
8014
|
}, props), {
|
|
7722
|
-
children: /* @__PURE__ */ (0,
|
|
8015
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(
|
|
7723
8016
|
import_radix_ui30.Switch.Thumb,
|
|
7724
8017
|
{
|
|
7725
8018
|
"data-slot": "switch-thumb",
|
|
@@ -7733,15 +8026,15 @@ function Switch(_a) {
|
|
|
7733
8026
|
}
|
|
7734
8027
|
|
|
7735
8028
|
// components/ui/table.tsx
|
|
7736
|
-
var
|
|
8029
|
+
var import_jsx_runtime57 = require("react/jsx-runtime");
|
|
7737
8030
|
function Table(_a) {
|
|
7738
8031
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
7739
|
-
return /* @__PURE__ */ (0,
|
|
8032
|
+
return /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
|
|
7740
8033
|
"div",
|
|
7741
8034
|
{
|
|
7742
8035
|
"data-slot": "table-container",
|
|
7743
8036
|
className: "relative w-full overflow-x-auto",
|
|
7744
|
-
children: /* @__PURE__ */ (0,
|
|
8037
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
|
|
7745
8038
|
"table",
|
|
7746
8039
|
__spreadValues({
|
|
7747
8040
|
"data-slot": "table",
|
|
@@ -7753,7 +8046,7 @@ function Table(_a) {
|
|
|
7753
8046
|
}
|
|
7754
8047
|
function TableHeader(_a) {
|
|
7755
8048
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
7756
|
-
return /* @__PURE__ */ (0,
|
|
8049
|
+
return /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
|
|
7757
8050
|
"thead",
|
|
7758
8051
|
__spreadValues({
|
|
7759
8052
|
"data-slot": "table-header",
|
|
@@ -7763,7 +8056,7 @@ function TableHeader(_a) {
|
|
|
7763
8056
|
}
|
|
7764
8057
|
function TableBody(_a) {
|
|
7765
8058
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
7766
|
-
return /* @__PURE__ */ (0,
|
|
8059
|
+
return /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
|
|
7767
8060
|
"tbody",
|
|
7768
8061
|
__spreadValues({
|
|
7769
8062
|
"data-slot": "table-body",
|
|
@@ -7773,7 +8066,7 @@ function TableBody(_a) {
|
|
|
7773
8066
|
}
|
|
7774
8067
|
function TableFooter(_a) {
|
|
7775
8068
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
7776
|
-
return /* @__PURE__ */ (0,
|
|
8069
|
+
return /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
|
|
7777
8070
|
"tfoot",
|
|
7778
8071
|
__spreadValues({
|
|
7779
8072
|
"data-slot": "table-footer",
|
|
@@ -7786,7 +8079,7 @@ function TableFooter(_a) {
|
|
|
7786
8079
|
}
|
|
7787
8080
|
function TableRow(_a) {
|
|
7788
8081
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
7789
|
-
return /* @__PURE__ */ (0,
|
|
8082
|
+
return /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
|
|
7790
8083
|
"tr",
|
|
7791
8084
|
__spreadValues({
|
|
7792
8085
|
"data-slot": "table-row",
|
|
@@ -7799,7 +8092,7 @@ function TableRow(_a) {
|
|
|
7799
8092
|
}
|
|
7800
8093
|
function TableHead(_a) {
|
|
7801
8094
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
7802
|
-
return /* @__PURE__ */ (0,
|
|
8095
|
+
return /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
|
|
7803
8096
|
"th",
|
|
7804
8097
|
__spreadValues({
|
|
7805
8098
|
"data-slot": "table-head",
|
|
@@ -7812,7 +8105,7 @@ function TableHead(_a) {
|
|
|
7812
8105
|
}
|
|
7813
8106
|
function TableCell(_a) {
|
|
7814
8107
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
7815
|
-
return /* @__PURE__ */ (0,
|
|
8108
|
+
return /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
|
|
7816
8109
|
"td",
|
|
7817
8110
|
__spreadValues({
|
|
7818
8111
|
"data-slot": "table-cell",
|
|
@@ -7829,7 +8122,7 @@ function TableCaption(_a) {
|
|
|
7829
8122
|
} = _b, props = __objRest(_b, [
|
|
7830
8123
|
"className"
|
|
7831
8124
|
]);
|
|
7832
|
-
return /* @__PURE__ */ (0,
|
|
8125
|
+
return /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
|
|
7833
8126
|
"caption",
|
|
7834
8127
|
__spreadValues({
|
|
7835
8128
|
"data-slot": "table-caption",
|
|
@@ -7841,7 +8134,7 @@ function TableCaption(_a) {
|
|
|
7841
8134
|
// components/ui/tabs.tsx
|
|
7842
8135
|
var import_class_variance_authority14 = require("class-variance-authority");
|
|
7843
8136
|
var import_radix_ui31 = require("radix-ui");
|
|
7844
|
-
var
|
|
8137
|
+
var import_jsx_runtime58 = require("react/jsx-runtime");
|
|
7845
8138
|
function Tabs(_a) {
|
|
7846
8139
|
var _b = _a, {
|
|
7847
8140
|
className,
|
|
@@ -7850,7 +8143,7 @@ function Tabs(_a) {
|
|
|
7850
8143
|
"className",
|
|
7851
8144
|
"orientation"
|
|
7852
8145
|
]);
|
|
7853
|
-
return /* @__PURE__ */ (0,
|
|
8146
|
+
return /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(
|
|
7854
8147
|
import_radix_ui31.Tabs.Root,
|
|
7855
8148
|
__spreadValues({
|
|
7856
8149
|
"data-slot": "tabs",
|
|
@@ -7893,7 +8186,7 @@ function TabsList(_a) {
|
|
|
7893
8186
|
"variant",
|
|
7894
8187
|
"size"
|
|
7895
8188
|
]);
|
|
7896
|
-
return /* @__PURE__ */ (0,
|
|
8189
|
+
return /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(
|
|
7897
8190
|
import_radix_ui31.Tabs.List,
|
|
7898
8191
|
__spreadValues({
|
|
7899
8192
|
"data-slot": "tabs-list",
|
|
@@ -7911,7 +8204,7 @@ function TabsTrigger(_a) {
|
|
|
7911
8204
|
"className",
|
|
7912
8205
|
"iconPosition"
|
|
7913
8206
|
]);
|
|
7914
|
-
return /* @__PURE__ */ (0,
|
|
8207
|
+
return /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(
|
|
7915
8208
|
import_radix_ui31.Tabs.Trigger,
|
|
7916
8209
|
__spreadValues({
|
|
7917
8210
|
"data-slot": "tabs-trigger",
|
|
@@ -7937,7 +8230,7 @@ function TabsContent(_a) {
|
|
|
7937
8230
|
} = _b, props = __objRest(_b, [
|
|
7938
8231
|
"className"
|
|
7939
8232
|
]);
|
|
7940
|
-
return /* @__PURE__ */ (0,
|
|
8233
|
+
return /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(
|
|
7941
8234
|
import_radix_ui31.Tabs.Content,
|
|
7942
8235
|
__spreadValues({
|
|
7943
8236
|
"data-slot": "tabs-content",
|
|
@@ -7949,7 +8242,7 @@ function TabsContent(_a) {
|
|
|
7949
8242
|
// components/ui/toggle.tsx
|
|
7950
8243
|
var import_class_variance_authority15 = require("class-variance-authority");
|
|
7951
8244
|
var import_radix_ui32 = require("radix-ui");
|
|
7952
|
-
var
|
|
8245
|
+
var import_jsx_runtime59 = require("react/jsx-runtime");
|
|
7953
8246
|
var toggleVariants = (0, import_class_variance_authority15.cva)(
|
|
7954
8247
|
"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",
|
|
7955
8248
|
{
|
|
@@ -7973,7 +8266,7 @@ function Toggle(_a) {
|
|
|
7973
8266
|
"className",
|
|
7974
8267
|
"size"
|
|
7975
8268
|
]);
|
|
7976
|
-
return /* @__PURE__ */ (0,
|
|
8269
|
+
return /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(
|
|
7977
8270
|
import_radix_ui32.Toggle.Root,
|
|
7978
8271
|
__spreadValues({
|
|
7979
8272
|
"data-slot": "toggle",
|
|
@@ -7983,10 +8276,10 @@ function Toggle(_a) {
|
|
|
7983
8276
|
}
|
|
7984
8277
|
|
|
7985
8278
|
// components/ui/toggle-group.tsx
|
|
7986
|
-
var
|
|
8279
|
+
var React21 = __toESM(require("react"), 1);
|
|
7987
8280
|
var import_radix_ui33 = require("radix-ui");
|
|
7988
|
-
var
|
|
7989
|
-
var ToggleGroupContext =
|
|
8281
|
+
var import_jsx_runtime60 = require("react/jsx-runtime");
|
|
8282
|
+
var ToggleGroupContext = React21.createContext({
|
|
7990
8283
|
size: "default",
|
|
7991
8284
|
spacing: 0
|
|
7992
8285
|
});
|
|
@@ -8002,7 +8295,7 @@ function ToggleGroup(_a) {
|
|
|
8002
8295
|
"spacing",
|
|
8003
8296
|
"children"
|
|
8004
8297
|
]);
|
|
8005
|
-
return /* @__PURE__ */ (0,
|
|
8298
|
+
return /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(
|
|
8006
8299
|
import_radix_ui33.ToggleGroup.Root,
|
|
8007
8300
|
__spreadProps(__spreadValues({
|
|
8008
8301
|
"data-slot": "toggle-group",
|
|
@@ -8014,7 +8307,7 @@ function ToggleGroup(_a) {
|
|
|
8014
8307
|
className
|
|
8015
8308
|
)
|
|
8016
8309
|
}, props), {
|
|
8017
|
-
children: /* @__PURE__ */ (0,
|
|
8310
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(ToggleGroupContext.Provider, { value: { size, spacing }, children })
|
|
8018
8311
|
})
|
|
8019
8312
|
);
|
|
8020
8313
|
}
|
|
@@ -8028,8 +8321,8 @@ function ToggleGroupItem(_a) {
|
|
|
8028
8321
|
"children",
|
|
8029
8322
|
"size"
|
|
8030
8323
|
]);
|
|
8031
|
-
const context =
|
|
8032
|
-
return /* @__PURE__ */ (0,
|
|
8324
|
+
const context = React21.useContext(ToggleGroupContext);
|
|
8325
|
+
return /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(
|
|
8033
8326
|
import_radix_ui33.ToggleGroup.Item,
|
|
8034
8327
|
__spreadProps(__spreadValues({
|
|
8035
8328
|
"data-slot": "toggle-group-item",
|
|
@@ -8052,7 +8345,7 @@ function ToggleGroupItem(_a) {
|
|
|
8052
8345
|
}
|
|
8053
8346
|
|
|
8054
8347
|
// components/blocks/result-block.tsx
|
|
8055
|
-
var
|
|
8348
|
+
var import_jsx_runtime61 = require("react/jsx-runtime");
|
|
8056
8349
|
var THUMBS_UP_DATA_URL = "data:image/webp;base64,UklGRmYPAABXRUJQVlA4WAoAAAAQAAAAxwAAxwAAQUxQSCcFAAABsIftsylJUsQ5N8sYZHaPbdu2bdu2bfM/27Zte7Mya22rmRnnt8hblfcgcr0RMQH0/zrz37H+mLt2efCjV0+bjwyrrkSno/X3VyKjOEufOGklqC9JhpXG9LRgjILaMmR1ZlbEOAWfzsxGYUyTGuMABGdRpi97ENoo+JKstixB2gA0plCmLHqoifY2J1GmKjMXXJvQrJJRFNO3gra7c1hRdgMUKJjZqskQmgVAviQ18xWCYmdhJdk+FOTuJC2/Jyj4T0oyy6L4soqYftsobgMV2aPg4ZEaygjiwU0aohcFHt6mIDMPvLxVP0w/Ei9u14/dGn7epR5LED/OVQ/dJfBzK+3Y2eE8mVs5TFWBp6Rcuz58/Vw5hlzTlzeVw5cKfH1RN7YL/iBjxTC9J/B3G82YleCxe4P0auhPTY/wB80c7+DzdL1YA/EK3WqhlwV+D2nFLATftcL0y6Zv/UoxB8F3Rzq1BPFtilLoaYHvb+jELAz/N2WNMP1C/LMqsbvCe/c5adQSxDvsxBqhOwT+G43YiXD+vUsKZfpa4P9arBC7LkIkhRhyTf/cg6RQvkwQ4KKsj6wfAcgfSZ+GPhX47841qWEmMqWu7q6uUstusnnMppQZY69DkP293d2lUmbNWK01LbMsy0qlUtaC48BMlVM//KNgzD8YynLMZoBzAichTEdrJ2N1zomIOOfQsjl19OmdK8QmOLZ0xO8xfvkd5TcEKfzFMWQ4LMNLTXPSBvx6LEiiOOxJWUiGzkEDbf1TagDB15SFw3QjBO2dnh6gMYWyYOxOELS5mSI0J1EWiGU00W7hFEE+JhMGPSxouzNJAnYOBQWmSqYTh8ArFYFEAdsHQdf4MT0tboSCfFEhQHcQ1UJssuYJ4luVrN8xbNsxbN8x7BDEd1SyXRBVlawbG0f501IzT2ywTE4JqaUgRwrZKmc4NR/GZ/NUbc7R2SJV61GQNY0sEUa9kM1zZkjNsmHUvBhOzXI2iFGFyI8oyJpCgFm5UziMQhxVyb1B1L0YSs5TQdRU8ma0BpPzScfwdhAjKnk0iKpKDuMQRrwYSM4CFGLNi/7UTKcg64Vslii5O4yaQjC/iVZfWtzvKUw/etMiF5ow6vrAzIGMFLJpkqRKgVbVge24U6BQatpwz1Ko9UI2yelJCRbnzkD+RMHWCtk4pzch7ioOpq4MTDTB1ArZJKcnHe6HFG4xG6cH+3GcNklQFlBdFe5dCrhWyMbJwUocUL2QTVLjhEKuaUJuCaquCczFsdo0pzcR7hcU9KgmjjcdAnq4M3CfUdh1PWA97hQosJoa3CMU+IgasDgHVvOiLwXuDxS6Hi7mDgEzmtCqXvQnwH2Xgh8pZLOEYC8TXM2LvhQYDm5UB+4tCl8JWJU7A+coEQPxu5ci6Mdg9LAoR2DEi6HYya8phtVCNk+FO4Fj8B0NoMvE4FsNfExR9GMwdhtyp0AdgnuC4vh5+rAEx+Ht5LlJFMnnkydXciRuTR5mMpE4ppAtUiBfUSznKWTLFGB1jgVNkgK2SkDjFxQNc7DzoD9eDosbigb9vtG+LXP6InYDRTQbRKNtm+f0xMq5N8lEhLI50UyT4G7KKKoZfQxpzzY5RmIkbtqaZCmyGS1XbUcDxK3od80ITTqdDFN8Dc108qdTxoNFLLU2SyGy03583dLEhuLMRDQ46/zzzTffvPPMPffc88w7fymjfEOzTpwwYUIlt1yu/H15rJXy31fKlXKlnF8pj7tSrvx9uZeIien//v9XfQBWUDggGAoAANAwAJ0BKsgAyAA+kUScS6WjoqUjc5pgsBIJZ278Qi8Hwvc8Z/PndH0L8Y+3P/DeGNhV4uz8do8qx9p5gcZv+s8NH7D/z/YD/PX66ewT/4f6XzifTPsG/rz6Vnrs/cP2Hv11//JFOyneeAW0wbcou/igl1zxho0WRxDimPALaYM6+VrqjKr+SiMnElO878dA3yFCkM+t+whevqvMGhXCcaDwUXXFH4eQ6sCNOis0oDUln4e9M3beAvzbZyUe2sUvdvtjPDFhG8dPxVDA/XZGk1ETr69eacwYnPhuLS56ol4GHT+w+hq85I7EHxvN4n68ZUeC+sDOCSQMpz6m4Fzqzrg9ZyhyQnUfmHqhcGQ/yBDy4W+qjcsBfDq4xpVARzZ2uW47mzNOIigiKz5Tw+mTHb7K5m9lSfmeMPMPpWXhZQVTZawZgxiMdOg3ccW5pccD7hwGCZ0+pV2azLYrT+zGOqIcbr1PYUXPl9LQ8IhKTeyhGBmpdCXdUSSJMKko79zaD//rSyWRpF1MNueAW0v+AAD++5zAAALiasAmBAtMjd3teHxoV/JwSycQb8T24aWw5wWjnP87DL5yaEnvCifBRcW/QYZPObqU0f4fAjw2ZLaVKj7hZoTyQu4dPqH4gTQMcAfv8BCfJ7DObKNJoDat3XoqhZuiW8sQ6GBrRMq9Dkd0xl5ULWfjBCUXzvE+yRWByiMm9GvwsjN6pMTLTAfwDK8x8YHP7IFXmr9Ohbw3lVDYPJKpWXmHeO7wb8vGqU2ThOJXtJ9olH5g1qkVNO7MdAd5FvxU86R1i/SUqzBMrxSAPdTXXmLZu+gveBx/eYqSRNuu0tqHIV9T+mP1xEC5dX+HdTXYA1Pdhk+9yLuHAU2D8bazJuRhexCVychOyXyv+7dpTzpNfrj+lC5dIVyzoW5Fyra3W3dyl1mQ3MrAMiHwf1pV5axectvd4CM+Iu4n1yHfPKGPcrcm/G9+a5dAzXL9YOdbO+GmAYyFR+E0uZd7nFwfW9OvRmg/k1ekfsv4dZEZ45M6yITB/1GMCi872dJHGq4nCKuaCXURhXCNsLy+tpj6YCTt5oJDuG1WXTgI8++c5/4AM/eJFCx0dMaf8Loyp9W/PAHdOZgC2aG4/1/lA3Epa/4hAEPIiuAo3vZyTXO65nn9/A+eLuy/449dgY7gSsrQDrP2Hmh05OsdFBPj+BsefJZAyMS4T6jPsdCNtu6bH4KcFVBwIegQ22lQnlBIG2D4R24k/McwxQQC6sR8c/eJCL6o+anvM+BC4dVih1h5ae/4s1Q6GkFw9gE6+2/rhedXEzoV8TtJ3dLuPi+nRU8XxTZqq/E4ctlcWd0H0aawPjTIcXaxQk36BEC/njKgHlc7c/d4+WQiihb7eG2ng4KVyJHZ3bzK/4I0yU1/ile9IfW342gFB3dUS7yrQxNbRdeoE4f47jSRZD4uP4qpVOWmKtIE31xquU1ep2EeCbLB8UoludUvkjG8U8M3pe7XlyGBYQcgcsn3HFUuPXp/5yXaZR9H9scEjkX6MlhwKI3QGuk8UZborE1j0lt5pNTfq2K6d1/6SoiVNVLSRZ9ry7YQGRhQ48mewSXEEVownN9KTXH5SXUylJLr1jB9KOAhLAGdMfpkFNbgPlU70iYmRw9xYQz1yfvUH6Ul80AcAra/1tvp5kua7H5wgy30feuCKUXQIzcIoIpSuFQ/i7SxQkRCfWQIAsOc0XZmr3/IOBAZKbzIMOlBkoxYtjE95cV04d+6N792Le6VUmArBadYp7BOgqcNfxU4dfBtJ74uDkc6VQRuIpPg478BODjpfsWFA0vlLIKFTdRwVUdJOxBvFnhWwKP0D1apVqohwg0IPDfWP8UVdpVUhGrWYuUTDE2nubQrJ5v+usi24qv+3kysRqQMjDJOqpQkxnigjREutxNfsLY1xUvO2lTqrORSagjcR7pA8924ES/dA1lEZ3ZQ5z1F6nS8Bq2xnTiQ9BqcmJ7zSJd22si8KtuN/siapwQIzTHW63B7xXAKQtKMnUE639KX83BWcVOWGr50CTiUvkK8yDy38AHewCCa/fjhQeHabgNE/0tmbOaN5stn1H/m6qKp0WCbyVA7tKaSaRklqfipnbXoVHMguAGss38eJa3FLWweUAl7rNzHv79GalBMmNgUznun+3m3dWMn5WK/34+LilQXVLXAzuRipKqi3cNMeLO8B+ug7CpRCchBUESkH2ep5anNgdsYR5rfffGhVW3o3VIRyYpN35MK7tlEi/t7OeSTr10CeQQnpcc5pd9K4SdIQCZ5/G9WjwRMnVf0oXJ25OUzYGMakzcjz5vjSV7Fh+UNNjgLnlnM5zdtz8DyB6OlSAA/xFhwY8uyPpMaJBpmJVjNOdEChpZ9QUc+gAz/Awt2ER8coD6OZhX5NUjEKrJvHjOQTeuvCAyJ9CJAHY1HDkY1Saa2/vC8jm+Sc9DiMKg+LJriUFijlLwHEPOluQhWObjSqhybrp1vmS1Mt/KPMDPZyt6Kxox6jMvL/xgGNNE+JaFEcEZ/H/Ws6oWhQT9Qteg2TDkQISuXe+FCmot1BtA3iCJ29VxNMNaWuGXJdmhEfp/ST9UNlxSsfVfbEkqQdBoiUIhK5GZlUF1tOTbgEdr60Ty1S6ZSFLIovKBxheqO5TAGNtbCaJ7nvRkqRaIb+LRL7P/c3EGI4PFCpyNZnNajr3oh7e8M8mufcpqT+DXDSZ1KG56xJQ06T18FfS5s4r6tbLWSbMQO8uH19kYca2lgvljt0gfWU3h7FSWwRDGQGLhWojhmxHZrgtn/gyvw5GGLqjCqwx8KHX/maaRTUYSwWSmwXtS1RBmIDLx1GHCS2ED5ciDx7qn4HOqEzNpwfN/XMYuRmyvMDqb0u1FEQ/NHsDl2yA7MopUtbm7A3rB7jH3+o8Y5Aaq0egHuftsojcTr2yQ2tqnZusSb6vb2Qgf0ZV80OOwJYY35WQr8st1x3UCrKmS3X1TXIlvAUQgwS72DVKESwuab+Nlb2FLU9/UfmZzs1bGi2wfdsiqXt3Da1HGSb/1OAFDj4P5b03Saw9Pf7kplOscrGW93H9ZW1JmNiPNi/OW6hL0I2ZLtM8vQwYylPwdMGln9ZddXNn9HgsnNATObEWO1BfVE3Vx1OqLeOSo8aw5bNxSPfyUFvwV9LIgpeSE+a7JZV0sMm/K6xXubpoIPqa6tXoP/g8/tvZbgguLvKcaYVpiTe4orHUeYbU/VEaQdLW5kGBmCTUU8fSDGjZhUqVp86z4tNdZx3P2C654aOxJW5G3pVcdlqsipHwLgFBUCfcsGTJ0U+svqOD8TEXkbq6DsqXDRuYB94Pz74uM+Zh3xXaDJU48d8SBhfPPEtop5pxU6j3s0czCqev5OjlwuW/ESXLpZiO2Gx24Pwl33O8l/z9VzhVM+sZy7NWzUASRdBsuUPG+PAAAAAAAAAAA=";
|
|
8057
8350
|
var THUMBS_DOWN_DATA_URL = "data:image/webp;base64,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";
|
|
8058
8351
|
function ResultBlock({
|
|
@@ -8069,9 +8362,9 @@ function ResultBlock({
|
|
|
8069
8362
|
const signedAmount = isWin ? `+${amount}` : `\u2212${amount}`;
|
|
8070
8363
|
const amountColorClass = isWin ? "text-semantic-win" : "text-semantic-loss";
|
|
8071
8364
|
const haloBgClass = isWin ? "bg-semantic-win" : "bg-semantic-loss";
|
|
8072
|
-
return /* @__PURE__ */ (0,
|
|
8073
|
-
/* @__PURE__ */ (0,
|
|
8074
|
-
/* @__PURE__ */ (0,
|
|
8365
|
+
return /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)(Card, { className: "w-80 shrink-0 overflow-hidden rounded-md shadow-sm px-5 py-5 items-center gap-3", children: [
|
|
8366
|
+
/* @__PURE__ */ (0, import_jsx_runtime61.jsxs)("div", { className: "relative flex items-center justify-center py-2", children: [
|
|
8367
|
+
/* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
|
|
8075
8368
|
"span",
|
|
8076
8369
|
{
|
|
8077
8370
|
"aria-hidden": true,
|
|
@@ -8079,7 +8372,7 @@ function ResultBlock({
|
|
|
8079
8372
|
className: `absolute size-24 rounded-full blur-2xl opacity-20 ${haloBgClass}`
|
|
8080
8373
|
}
|
|
8081
8374
|
),
|
|
8082
|
-
/* @__PURE__ */ (0,
|
|
8375
|
+
/* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
|
|
8083
8376
|
"img",
|
|
8084
8377
|
{
|
|
8085
8378
|
"data-results-motion": isWin ? "icon-win" : "icon-loss",
|
|
@@ -8089,28 +8382,28 @@ function ResultBlock({
|
|
|
8089
8382
|
}
|
|
8090
8383
|
)
|
|
8091
8384
|
] }),
|
|
8092
|
-
/* @__PURE__ */ (0,
|
|
8093
|
-
/* @__PURE__ */ (0,
|
|
8094
|
-
/* @__PURE__ */ (0,
|
|
8095
|
-
/* @__PURE__ */ (0,
|
|
8385
|
+
/* @__PURE__ */ (0, import_jsx_runtime61.jsx)("p", { className: "text-lg font-semibold text-on-prominent", children: titleText }),
|
|
8386
|
+
/* @__PURE__ */ (0, import_jsx_runtime61.jsxs)("p", { className: `flex items-baseline gap-1.5 ${amountColorClass}`, children: [
|
|
8387
|
+
/* @__PURE__ */ (0, import_jsx_runtime61.jsx)("span", { className: "font-display text-4xl font-semibold tabular-nums tracking-tight", children: signedAmount }),
|
|
8388
|
+
/* @__PURE__ */ (0, import_jsx_runtime61.jsx)("span", { className: "text-lg font-semibold", children: currency })
|
|
8096
8389
|
] }),
|
|
8097
|
-
/* @__PURE__ */ (0,
|
|
8098
|
-
/* @__PURE__ */ (0,
|
|
8390
|
+
/* @__PURE__ */ (0, import_jsx_runtime61.jsxs)("div", { className: "flex items-center gap-2", children: [
|
|
8391
|
+
/* @__PURE__ */ (0, import_jsx_runtime61.jsxs)(Badge, { variant: "tint-neutral", size: "sm", children: [
|
|
8099
8392
|
contractLabel,
|
|
8100
|
-
pickedDigit !== void 0 && /* @__PURE__ */ (0,
|
|
8101
|
-
/* @__PURE__ */ (0,
|
|
8102
|
-
/* @__PURE__ */ (0,
|
|
8393
|
+
pickedDigit !== void 0 && /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)(import_jsx_runtime61.Fragment, { children: [
|
|
8394
|
+
/* @__PURE__ */ (0, import_jsx_runtime61.jsx)("span", { "aria-hidden": true, className: "h-3 w-px bg-border-prominent/40 mx-1" }),
|
|
8395
|
+
/* @__PURE__ */ (0, import_jsx_runtime61.jsx)("span", { className: "tabular-nums", children: pickedDigit })
|
|
8103
8396
|
] })
|
|
8104
8397
|
] }),
|
|
8105
|
-
/* @__PURE__ */ (0,
|
|
8398
|
+
/* @__PURE__ */ (0, import_jsx_runtime61.jsx)(Badge, { variant: "tint-neutral", size: "sm", children: duration })
|
|
8106
8399
|
] }),
|
|
8107
|
-
/* @__PURE__ */ (0,
|
|
8108
|
-
ctaMode === "next-round" && /* @__PURE__ */ (0,
|
|
8109
|
-
ctaMode === "go-again" && /* @__PURE__ */ (0,
|
|
8110
|
-
ctaMode === "conversion" && /* @__PURE__ */ (0,
|
|
8111
|
-
/* @__PURE__ */ (0,
|
|
8112
|
-
/* @__PURE__ */ (0,
|
|
8113
|
-
/* @__PURE__ */ (0,
|
|
8400
|
+
/* @__PURE__ */ (0, import_jsx_runtime61.jsxs)("div", { className: "w-full pt-2", children: [
|
|
8401
|
+
ctaMode === "next-round" && /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(Button, { className: "w-full", children: "Next round" }),
|
|
8402
|
+
ctaMode === "go-again" && /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(Button, { className: "w-full", children: "Go again" }),
|
|
8403
|
+
ctaMode === "conversion" && /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)("div", { className: "w-full flex flex-col gap-3", children: [
|
|
8404
|
+
/* @__PURE__ */ (0, import_jsx_runtime61.jsx)("p", { className: "text-center text-base font-semibold text-on-prominent", children: "Ready to play for real?" }),
|
|
8405
|
+
/* @__PURE__ */ (0, import_jsx_runtime61.jsx)(Button, { className: "w-full", children: "Deposit now" }),
|
|
8406
|
+
/* @__PURE__ */ (0, import_jsx_runtime61.jsx)(Button, { variant: "secondary", className: "w-full", children: "Stay in demo" })
|
|
8114
8407
|
] })
|
|
8115
8408
|
] })
|
|
8116
8409
|
] });
|
|
@@ -8121,21 +8414,21 @@ function ResultDialog({
|
|
|
8121
8414
|
primaryLabel,
|
|
8122
8415
|
secondaryLabel
|
|
8123
8416
|
}) {
|
|
8124
|
-
return /* @__PURE__ */ (0,
|
|
8125
|
-
/* @__PURE__ */ (0,
|
|
8126
|
-
/* @__PURE__ */ (0,
|
|
8127
|
-
/* @__PURE__ */ (0,
|
|
8417
|
+
return /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)(Card, { className: "w-80 shrink-0 overflow-hidden rounded-md shadow-sm px-5 py-6 items-center gap-4", children: [
|
|
8418
|
+
/* @__PURE__ */ (0, import_jsx_runtime61.jsxs)("div", { className: "flex flex-col items-center gap-2 text-center", children: [
|
|
8419
|
+
/* @__PURE__ */ (0, import_jsx_runtime61.jsx)("p", { className: "text-lg font-semibold text-on-prominent", children: title }),
|
|
8420
|
+
/* @__PURE__ */ (0, import_jsx_runtime61.jsx)("p", { className: "text-sm text-on-subtle", children: body })
|
|
8128
8421
|
] }),
|
|
8129
|
-
/* @__PURE__ */ (0,
|
|
8130
|
-
/* @__PURE__ */ (0,
|
|
8131
|
-
/* @__PURE__ */ (0,
|
|
8422
|
+
/* @__PURE__ */ (0, import_jsx_runtime61.jsxs)("div", { className: "w-full flex flex-col gap-2", children: [
|
|
8423
|
+
/* @__PURE__ */ (0, import_jsx_runtime61.jsx)(Button, { className: "w-full", children: primaryLabel }),
|
|
8424
|
+
/* @__PURE__ */ (0, import_jsx_runtime61.jsx)(Button, { variant: "secondary", className: "w-full", children: secondaryLabel })
|
|
8132
8425
|
] })
|
|
8133
8426
|
] });
|
|
8134
8427
|
}
|
|
8135
8428
|
|
|
8136
8429
|
// components/blocks/header-navigation-block.tsx
|
|
8137
8430
|
var import_lucide_react30 = require("lucide-react");
|
|
8138
|
-
var
|
|
8431
|
+
var import_jsx_runtime62 = require("react/jsx-runtime");
|
|
8139
8432
|
function HeaderNavigationBlock({
|
|
8140
8433
|
onBack,
|
|
8141
8434
|
badge,
|
|
@@ -8144,15 +8437,15 @@ function HeaderNavigationBlock({
|
|
|
8144
8437
|
actions
|
|
8145
8438
|
}) {
|
|
8146
8439
|
var _a;
|
|
8147
|
-
return /* @__PURE__ */ (0,
|
|
8148
|
-
onBack && /* @__PURE__ */ (0,
|
|
8149
|
-
/* @__PURE__ */ (0,
|
|
8150
|
-
badge && /* @__PURE__ */ (0,
|
|
8151
|
-
/* @__PURE__ */ (0,
|
|
8152
|
-
/* @__PURE__ */ (0,
|
|
8440
|
+
return /* @__PURE__ */ (0, import_jsx_runtime62.jsx)("div", { className: "w-full min-w-80 max-w-layout-diagram-small rounded-md overflow-hidden bg-prominent", children: /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)("header", { className: "flex items-center gap-2 border-b border-border-subtle bg-prominent px-layout-margin-inline py-3", children: [
|
|
8441
|
+
onBack && /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(NavigationButton, { type: "button", size: "md", "aria-label": "Back", onClick: onBack, children: /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(import_lucide_react30.ArrowLeft, { className: "size-5" }) }),
|
|
8442
|
+
/* @__PURE__ */ (0, import_jsx_runtime62.jsxs)("div", { className: "flex min-w-0 flex-1 items-center justify-center gap-2", children: [
|
|
8443
|
+
badge && /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(Badge, { variant: (_a = badge.variant) != null ? _a : "tint-warning", size: "sm", children: badge.label }),
|
|
8444
|
+
/* @__PURE__ */ (0, import_jsx_runtime62.jsx)("span", { className: "font-display font-semibold tabular-nums text-on-prominent", children: balance.amount }),
|
|
8445
|
+
/* @__PURE__ */ (0, import_jsx_runtime62.jsx)("span", { className: "text-sm text-on-subtle", children: balance.currency })
|
|
8153
8446
|
] }),
|
|
8154
|
-
/* @__PURE__ */ (0,
|
|
8155
|
-
history && /* @__PURE__ */ (0,
|
|
8447
|
+
/* @__PURE__ */ (0, import_jsx_runtime62.jsxs)("div", { className: "flex shrink-0 items-center gap-1", children: [
|
|
8448
|
+
history && /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(HistoryButton, __spreadValues({}, history)),
|
|
8156
8449
|
actions
|
|
8157
8450
|
] })
|
|
8158
8451
|
] }) });
|
|
@@ -8165,13 +8458,14 @@ function HistoryButton({
|
|
|
8165
8458
|
const show = typeof count === "number" && count > 0;
|
|
8166
8459
|
const label = show ? count > 99 ? "99+" : String(count) : null;
|
|
8167
8460
|
const ariaLabel = ariaLabelOverride != null ? ariaLabelOverride : show ? `Open history, ${count} new` : "Open history";
|
|
8168
|
-
return /* @__PURE__ */ (0,
|
|
8169
|
-
/* @__PURE__ */ (0,
|
|
8170
|
-
show && /* @__PURE__ */ (0,
|
|
8171
|
-
|
|
8461
|
+
return /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)("div", { className: "relative inline-flex", children: [
|
|
8462
|
+
/* @__PURE__ */ (0, import_jsx_runtime62.jsx)(NavigationButton, { type: "button", size: "md", "aria-label": ariaLabel, onClick, children: /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(import_lucide_react30.History, { className: "size-5" }) }),
|
|
8463
|
+
show && /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(
|
|
8464
|
+
Badge,
|
|
8172
8465
|
{
|
|
8173
8466
|
"aria-hidden": true,
|
|
8174
|
-
|
|
8467
|
+
size: "count",
|
|
8468
|
+
className: "pointer-events-none absolute -top-0.5 -right-0.5 ring-2 ring-background-primary-canvas",
|
|
8175
8469
|
children: label
|
|
8176
8470
|
}
|
|
8177
8471
|
)
|
|
@@ -8181,7 +8475,7 @@ function HistoryButton({
|
|
|
8181
8475
|
// components/blocks/faq-block.tsx
|
|
8182
8476
|
var import_lucide_react31 = require("lucide-react");
|
|
8183
8477
|
var import_radix_ui34 = require("radix-ui");
|
|
8184
|
-
var
|
|
8478
|
+
var import_jsx_runtime63 = require("react/jsx-runtime");
|
|
8185
8479
|
function FAQBlock({
|
|
8186
8480
|
eyebrow = "FAQ",
|
|
8187
8481
|
title = "Frequently asked questions",
|
|
@@ -8193,34 +8487,34 @@ function FAQBlock({
|
|
|
8193
8487
|
}) {
|
|
8194
8488
|
var _a, _b;
|
|
8195
8489
|
if (layout === "two-column") {
|
|
8196
|
-
return /* @__PURE__ */ (0,
|
|
8197
|
-
/* @__PURE__ */ (0,
|
|
8198
|
-
/* @__PURE__ */ (0,
|
|
8199
|
-
/* @__PURE__ */ (0,
|
|
8200
|
-
intro && /* @__PURE__ */ (0,
|
|
8490
|
+
return /* @__PURE__ */ (0, import_jsx_runtime63.jsx)("div", { className: "@container w-full", children: /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)("div", { className: "flex flex-col @[600px]:flex-row gap-8 @[600px]:gap-12", children: [
|
|
8491
|
+
/* @__PURE__ */ (0, import_jsx_runtime63.jsxs)("div", { className: "flex flex-col gap-4 flex-1 @[600px]:max-w-xs", children: [
|
|
8492
|
+
/* @__PURE__ */ (0, import_jsx_runtime63.jsx)("span", { className: "text-xs font-body font-semibold tracking-widest uppercase text-on-subtle", children: eyebrow }),
|
|
8493
|
+
/* @__PURE__ */ (0, import_jsx_runtime63.jsx)("h2", { className: "text-4xl @[600px]:text-6xl font-semibold font-display text-on-prominent tracking-tight", children: title }),
|
|
8494
|
+
intro && /* @__PURE__ */ (0, import_jsx_runtime63.jsx)("p", { className: "text-base font-body text-on-subtle", children: intro })
|
|
8201
8495
|
] }),
|
|
8202
|
-
/* @__PURE__ */ (0,
|
|
8496
|
+
/* @__PURE__ */ (0, import_jsx_runtime63.jsx)("div", { className: "flex-1", children: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
|
|
8203
8497
|
Accordion,
|
|
8204
8498
|
{
|
|
8205
8499
|
type: "single",
|
|
8206
8500
|
collapsible: true,
|
|
8207
8501
|
defaultValue: defaultValue != null ? defaultValue : (_a = items[0]) == null ? void 0 : _a.value,
|
|
8208
8502
|
className: "w-full",
|
|
8209
|
-
children: items.map(({ value, question, answer }, i) => /* @__PURE__ */ (0,
|
|
8210
|
-
/* @__PURE__ */ (0,
|
|
8503
|
+
children: items.map(({ value, question, answer }, i) => /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)(AccordionItem, { value, children: [
|
|
8504
|
+
/* @__PURE__ */ (0, import_jsx_runtime63.jsx)(import_radix_ui34.Accordion.Header, { className: "flex", children: /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)(
|
|
8211
8505
|
import_radix_ui34.Accordion.Trigger,
|
|
8212
8506
|
{
|
|
8213
8507
|
className: "group flex flex-1 items-center justify-between gap-4 py-5 text-left outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50",
|
|
8214
8508
|
children: [
|
|
8215
|
-
/* @__PURE__ */ (0,
|
|
8216
|
-
/* @__PURE__ */ (0,
|
|
8217
|
-
/* @__PURE__ */ (0,
|
|
8509
|
+
/* @__PURE__ */ (0, import_jsx_runtime63.jsxs)("span", { className: "flex items-baseline gap-4", children: [
|
|
8510
|
+
/* @__PURE__ */ (0, import_jsx_runtime63.jsx)("span", { className: "text-sm font-body text-on-subtle shrink-0 w-6", children: String(i + 1).padStart(2, "0") }),
|
|
8511
|
+
/* @__PURE__ */ (0, import_jsx_runtime63.jsx)("span", { className: "text-lg @[600px]:text-xl font-semibold font-display text-on-prominent", children: question })
|
|
8218
8512
|
] }),
|
|
8219
|
-
/* @__PURE__ */ (0,
|
|
8513
|
+
/* @__PURE__ */ (0, import_jsx_runtime63.jsx)("span", { className: cn(
|
|
8220
8514
|
"shrink-0 size-7 flex items-center justify-center rounded-sm border transition-all duration-200",
|
|
8221
8515
|
"group-data-[state=open]:bg-primary group-data-[state=open]:border-primary",
|
|
8222
8516
|
"group-data-[state=closed]:bg-transparent group-data-[state=closed]:border-border-subtle"
|
|
8223
|
-
), children: /* @__PURE__ */ (0,
|
|
8517
|
+
), children: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(import_lucide_react31.Plus, { className: cn(
|
|
8224
8518
|
"size-4 transition-all duration-200",
|
|
8225
8519
|
"group-data-[state=open]:rotate-45 group-data-[state=open]:text-on-primary",
|
|
8226
8520
|
"group-data-[state=closed]:text-on-prominent"
|
|
@@ -8228,7 +8522,7 @@ function FAQBlock({
|
|
|
8228
8522
|
]
|
|
8229
8523
|
}
|
|
8230
8524
|
) }),
|
|
8231
|
-
/* @__PURE__ */ (0,
|
|
8525
|
+
/* @__PURE__ */ (0, import_jsx_runtime63.jsx)(AccordionContent, { children: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)("p", { className: "text-base font-body text-on-subtle pl-10 pb-4", children: answer }) })
|
|
8232
8526
|
] }, value))
|
|
8233
8527
|
}
|
|
8234
8528
|
) })
|
|
@@ -8239,38 +8533,38 @@ function FAQBlock({
|
|
|
8239
8533
|
const helpCardPaddingClass = layout === "desktop" ? "p-8" : "p-6";
|
|
8240
8534
|
const gapClass = layout === "desktop" ? "gap-12" : "gap-10";
|
|
8241
8535
|
const headerGapClass = layout === "desktop" ? "gap-5" : "gap-4";
|
|
8242
|
-
return /* @__PURE__ */ (0,
|
|
8243
|
-
/* @__PURE__ */ (0,
|
|
8244
|
-
/* @__PURE__ */ (0,
|
|
8245
|
-
/* @__PURE__ */ (0,
|
|
8246
|
-
intro && /* @__PURE__ */ (0,
|
|
8536
|
+
return /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)("div", { className: `w-full flex flex-col ${gapClass}`, children: [
|
|
8537
|
+
/* @__PURE__ */ (0, import_jsx_runtime63.jsxs)("div", { className: `flex flex-col ${headerGapClass} items-center w-full`, children: [
|
|
8538
|
+
/* @__PURE__ */ (0, import_jsx_runtime63.jsx)("span", { className: "text-sm text-on-subtle font-body", children: eyebrow }),
|
|
8539
|
+
/* @__PURE__ */ (0, import_jsx_runtime63.jsx)("h2", { className: headingClass, children: title }),
|
|
8540
|
+
intro && /* @__PURE__ */ (0, import_jsx_runtime63.jsx)("p", { className: "text-lg text-on-subtle font-body text-center", children: intro })
|
|
8247
8541
|
] }),
|
|
8248
|
-
/* @__PURE__ */ (0,
|
|
8542
|
+
/* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
|
|
8249
8543
|
Accordion,
|
|
8250
8544
|
{
|
|
8251
8545
|
type: "single",
|
|
8252
8546
|
collapsible: true,
|
|
8253
8547
|
defaultValue: defaultValue != null ? defaultValue : (_b = items[0]) == null ? void 0 : _b.value,
|
|
8254
8548
|
className: "w-full",
|
|
8255
|
-
children: items.map(({ value, question, answer }) => /* @__PURE__ */ (0,
|
|
8256
|
-
/* @__PURE__ */ (0,
|
|
8257
|
-
/* @__PURE__ */ (0,
|
|
8549
|
+
children: items.map(({ value, question, answer }) => /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)(AccordionItem, { value, children: [
|
|
8550
|
+
/* @__PURE__ */ (0, import_jsx_runtime63.jsx)(AccordionTrigger, { className: "text-base font-medium font-body text-on-prominent hover:no-underline", children: question }),
|
|
8551
|
+
/* @__PURE__ */ (0, import_jsx_runtime63.jsx)(AccordionContent, { children: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)("p", { className: "text-sm text-on-subtle font-body pb-4", children: answer }) })
|
|
8258
8552
|
] }, value))
|
|
8259
8553
|
}
|
|
8260
8554
|
),
|
|
8261
|
-
helpCard && /* @__PURE__ */ (0,
|
|
8262
|
-
/* @__PURE__ */ (0,
|
|
8263
|
-
/* @__PURE__ */ (0,
|
|
8264
|
-
/* @__PURE__ */ (0,
|
|
8555
|
+
helpCard && /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)("div", { className: `flex flex-col gap-6 items-center w-full bg-subtle rounded-xl ${helpCardPaddingClass}`, children: [
|
|
8556
|
+
/* @__PURE__ */ (0, import_jsx_runtime63.jsxs)("div", { className: "flex flex-col gap-2 w-full", children: [
|
|
8557
|
+
/* @__PURE__ */ (0, import_jsx_runtime63.jsx)("h3", { className: helpTitleClass, children: helpCard.title }),
|
|
8558
|
+
/* @__PURE__ */ (0, import_jsx_runtime63.jsx)("p", { className: "text-base text-on-subtle font-body", children: helpCard.body })
|
|
8265
8559
|
] }),
|
|
8266
|
-
/* @__PURE__ */ (0,
|
|
8560
|
+
/* @__PURE__ */ (0, import_jsx_runtime63.jsx)(Button, { size: "sm", onClick: helpCard.onCtaClick, children: helpCard.ctaLabel })
|
|
8267
8561
|
] })
|
|
8268
8562
|
] });
|
|
8269
8563
|
}
|
|
8270
8564
|
|
|
8271
8565
|
// components/blocks/hero-block.tsx
|
|
8272
8566
|
var import_lucide_react32 = require("lucide-react");
|
|
8273
|
-
var
|
|
8567
|
+
var import_jsx_runtime64 = require("react/jsx-runtime");
|
|
8274
8568
|
function HeroBlock({
|
|
8275
8569
|
layout = "centered",
|
|
8276
8570
|
tagline,
|
|
@@ -8281,31 +8575,31 @@ function HeroBlock({
|
|
|
8281
8575
|
image
|
|
8282
8576
|
}) {
|
|
8283
8577
|
if (layout === "centered") {
|
|
8284
|
-
return /* @__PURE__ */ (0,
|
|
8285
|
-
/* @__PURE__ */ (0,
|
|
8286
|
-
tagline && /* @__PURE__ */ (0,
|
|
8287
|
-
/* @__PURE__ */ (0,
|
|
8288
|
-
/* @__PURE__ */ (0,
|
|
8578
|
+
return /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("div", { className: "w-full border border-border-subtle rounded-xl overflow-hidden bg-prominent", children: /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)("div", { className: "flex flex-col items-center justify-center gap-8 px-layout-margin-inline py-24 max-w-2xl mx-auto text-center", children: [
|
|
8579
|
+
/* @__PURE__ */ (0, import_jsx_runtime64.jsxs)("div", { className: "flex flex-col items-center gap-6 w-full", children: [
|
|
8580
|
+
tagline && /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(TaglinePill, __spreadValues({}, tagline)),
|
|
8581
|
+
/* @__PURE__ */ (0, import_jsx_runtime64.jsx)("h1", { className: "text-5xl font-semibold font-display tracking-tight text-on-prominent text-center", children: heading }),
|
|
8582
|
+
/* @__PURE__ */ (0, import_jsx_runtime64.jsx)("p", { className: "text-lg font-body text-on-subtle text-center", children: body })
|
|
8289
8583
|
] }),
|
|
8290
|
-
/* @__PURE__ */ (0,
|
|
8584
|
+
/* @__PURE__ */ (0, import_jsx_runtime64.jsxs)(Button, { size: "sm", onClick: primaryCta.onClick, children: [
|
|
8291
8585
|
primaryCta.label,
|
|
8292
|
-
primaryCta.trailingArrow !== false && /* @__PURE__ */ (0,
|
|
8586
|
+
primaryCta.trailingArrow !== false && /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(import_lucide_react32.ArrowRight, { className: "size-4" })
|
|
8293
8587
|
] })
|
|
8294
8588
|
] }) });
|
|
8295
8589
|
}
|
|
8296
|
-
return /* @__PURE__ */ (0,
|
|
8297
|
-
/* @__PURE__ */ (0,
|
|
8298
|
-
/* @__PURE__ */ (0,
|
|
8299
|
-
tagline && /* @__PURE__ */ (0,
|
|
8300
|
-
/* @__PURE__ */ (0,
|
|
8301
|
-
/* @__PURE__ */ (0,
|
|
8590
|
+
return /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("div", { className: "w-full border border-border-subtle rounded-xl overflow-hidden bg-prominent", children: /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)("div", { className: "flex flex-col min-[600px]:flex-row items-center gap-layout-gutter px-layout-margin-inline py-16 min-[600px]:py-24 max-w-5xl mx-auto", children: [
|
|
8591
|
+
/* @__PURE__ */ (0, import_jsx_runtime64.jsxs)("div", { className: "flex flex-col gap-6 min-[600px]:gap-8 flex-1 min-w-0 items-center min-[600px]:items-start text-center min-[600px]:text-left w-full", children: [
|
|
8592
|
+
/* @__PURE__ */ (0, import_jsx_runtime64.jsxs)("div", { className: "flex flex-col gap-5 min-[600px]:gap-6 items-center min-[600px]:items-start w-full", children: [
|
|
8593
|
+
tagline && /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(TaglinePill, __spreadProps(__spreadValues({}, tagline), { responsive: true })),
|
|
8594
|
+
/* @__PURE__ */ (0, import_jsx_runtime64.jsx)("h1", { className: "text-4xl min-[600px]:text-5xl font-semibold font-display tracking-tight text-on-prominent", children: heading }),
|
|
8595
|
+
/* @__PURE__ */ (0, import_jsx_runtime64.jsx)("p", { className: "text-lg font-body text-on-subtle", children: body })
|
|
8302
8596
|
] }),
|
|
8303
|
-
/* @__PURE__ */ (0,
|
|
8304
|
-
/* @__PURE__ */ (0,
|
|
8305
|
-
secondaryCta && /* @__PURE__ */ (0,
|
|
8597
|
+
/* @__PURE__ */ (0, import_jsx_runtime64.jsxs)("div", { className: "flex items-center justify-center min-[600px]:justify-start gap-2", children: [
|
|
8598
|
+
/* @__PURE__ */ (0, import_jsx_runtime64.jsx)(Button, { size: "sm", onClick: primaryCta.onClick, children: primaryCta.label }),
|
|
8599
|
+
secondaryCta && /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(Button, { variant: "secondary", size: "sm", onClick: secondaryCta.onClick, children: secondaryCta.label })
|
|
8306
8600
|
] })
|
|
8307
8601
|
] }),
|
|
8308
|
-
/* @__PURE__ */ (0,
|
|
8602
|
+
/* @__PURE__ */ (0, import_jsx_runtime64.jsx)("div", { className: "w-full min-[600px]:flex-1 min-[600px]:min-w-0 aspect-square rounded-xl bg-subtle shrink-0", "aria-hidden": "true", children: image })
|
|
8309
8603
|
] }) });
|
|
8310
8604
|
}
|
|
8311
8605
|
function TaglinePill({
|
|
@@ -8313,25 +8607,25 @@ function TaglinePill({
|
|
|
8313
8607
|
suffix,
|
|
8314
8608
|
responsive
|
|
8315
8609
|
}) {
|
|
8316
|
-
return /* @__PURE__ */ (0,
|
|
8317
|
-
/* @__PURE__ */ (0,
|
|
8318
|
-
responsive && suffix ? /* @__PURE__ */ (0,
|
|
8319
|
-
/* @__PURE__ */ (0,
|
|
8610
|
+
return /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)("div", { className: "inline-flex items-center gap-1.5 h-7 px-3 rounded-full border border-border-subtle bg-prominent shadow-sm shrink-0", children: [
|
|
8611
|
+
/* @__PURE__ */ (0, import_jsx_runtime64.jsx)("span", { className: "size-1.5 rounded-full bg-semantic-win shrink-0", "aria-hidden": "true" }),
|
|
8612
|
+
responsive && suffix ? /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)("span", { className: "text-sm font-body text-on-prominent whitespace-nowrap", children: [
|
|
8613
|
+
/* @__PURE__ */ (0, import_jsx_runtime64.jsxs)("span", { className: "hidden min-[600px]:inline", children: [
|
|
8320
8614
|
label,
|
|
8321
|
-
/* @__PURE__ */ (0,
|
|
8615
|
+
/* @__PURE__ */ (0, import_jsx_runtime64.jsx)("span", { className: "text-on-subtle", children: " \xB7 " })
|
|
8322
8616
|
] }),
|
|
8323
|
-
/* @__PURE__ */ (0,
|
|
8324
|
-
] }) : /* @__PURE__ */ (0,
|
|
8617
|
+
/* @__PURE__ */ (0, import_jsx_runtime64.jsx)("span", { className: "text-on-subtle min-[600px]:text-on-prominent", children: suffix })
|
|
8618
|
+
] }) : /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)("span", { className: "text-sm font-body text-on-prominent whitespace-nowrap", children: [
|
|
8325
8619
|
label,
|
|
8326
|
-
suffix && /* @__PURE__ */ (0,
|
|
8620
|
+
suffix && /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("span", { className: "text-on-subtle", children: ` \xB7 ${suffix}` })
|
|
8327
8621
|
] }),
|
|
8328
|
-
/* @__PURE__ */ (0,
|
|
8622
|
+
/* @__PURE__ */ (0, import_jsx_runtime64.jsx)(import_lucide_react32.ArrowUpRight, { className: "size-4 text-on-subtle shrink-0", "aria-hidden": "true" })
|
|
8329
8623
|
] });
|
|
8330
8624
|
}
|
|
8331
8625
|
|
|
8332
8626
|
// components/blocks/auth-block.tsx
|
|
8333
|
-
var
|
|
8334
|
-
var
|
|
8627
|
+
var React22 = __toESM(require("react"), 1);
|
|
8628
|
+
var import_jsx_runtime65 = require("react/jsx-runtime");
|
|
8335
8629
|
function AuthBlock({
|
|
8336
8630
|
mode,
|
|
8337
8631
|
logoSrc,
|
|
@@ -8346,20 +8640,20 @@ function AuthBlock({
|
|
|
8346
8640
|
const ctaText = mode === "sign-in" ? "Sign in" : "Sign up";
|
|
8347
8641
|
const footerPrompt = mode === "sign-in" ? "Don't have an account?" : "Already have an account?";
|
|
8348
8642
|
const footerLinkLabel = mode === "sign-in" ? "Sign up" : "Log in";
|
|
8349
|
-
const [email, setEmail] =
|
|
8350
|
-
return /* @__PURE__ */ (0,
|
|
8351
|
-
/* @__PURE__ */ (0,
|
|
8352
|
-
/* @__PURE__ */ (0,
|
|
8353
|
-
/* @__PURE__ */ (0,
|
|
8643
|
+
const [email, setEmail] = React22.useState("");
|
|
8644
|
+
return /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("div", { className: "flex flex-col items-center gap-6 w-full", children: [
|
|
8645
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("div", { className: "flex items-center gap-2", children: [
|
|
8646
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)("img", { src: logoSrc, alt: wordmark, className: "size-8 object-contain" }),
|
|
8647
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)("span", { className: "font-display font-semibold text-base text-on-prominent tracking-tight", children: wordmark })
|
|
8354
8648
|
] }),
|
|
8355
|
-
/* @__PURE__ */ (0,
|
|
8356
|
-
/* @__PURE__ */ (0,
|
|
8357
|
-
/* @__PURE__ */ (0,
|
|
8358
|
-
/* @__PURE__ */ (0,
|
|
8359
|
-
/* @__PURE__ */ (0,
|
|
8360
|
-
/* @__PURE__ */ (0,
|
|
8649
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)("h2", { className: "text-3xl font-semibold font-display text-on-prominent text-center", children: headingText }),
|
|
8650
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)("div", { className: "flex flex-col gap-3 w-full", children: providers.map((p) => /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(ProviderButton, { provider: p }, p)) }),
|
|
8651
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("div", { className: "flex items-center gap-3 w-full", children: [
|
|
8652
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)("div", { className: "flex-1 h-px bg-border-subtle" }),
|
|
8653
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)("span", { className: "text-sm text-on-subtle font-body", children: "or" }),
|
|
8654
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)("div", { className: "flex-1 h-px bg-border-subtle" })
|
|
8361
8655
|
] }),
|
|
8362
|
-
/* @__PURE__ */ (0,
|
|
8656
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)("div", { className: "flex items-center gap-2 w-full", children: /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
|
|
8363
8657
|
Input,
|
|
8364
8658
|
{
|
|
8365
8659
|
id: `${idPrefix}-email`,
|
|
@@ -8370,60 +8664,60 @@ function AuthBlock({
|
|
|
8370
8664
|
onChange: (e) => setEmail(e.target.value)
|
|
8371
8665
|
}
|
|
8372
8666
|
) }),
|
|
8373
|
-
/* @__PURE__ */ (0,
|
|
8667
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("p", { className: "text-sm text-on-subtle font-body text-left w-full", children: [
|
|
8374
8668
|
termsText,
|
|
8375
8669
|
", you agree to our",
|
|
8376
8670
|
" ",
|
|
8377
|
-
/* @__PURE__ */ (0,
|
|
8671
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)(Link, { size: "sm", href: "#", children: "Terms & Conditions" })
|
|
8378
8672
|
] }),
|
|
8379
|
-
/* @__PURE__ */ (0,
|
|
8380
|
-
/* @__PURE__ */ (0,
|
|
8673
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)(Button, { size: "md", className: "w-full", onClick: () => onSubmit == null ? void 0 : onSubmit({ email }), children: ctaText }),
|
|
8674
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("p", { className: "text-sm text-on-subtle font-body text-center", children: [
|
|
8381
8675
|
footerPrompt,
|
|
8382
8676
|
" ",
|
|
8383
|
-
/* @__PURE__ */ (0,
|
|
8677
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)(Link, { size: "sm", href: crossLinkHref, children: footerLinkLabel })
|
|
8384
8678
|
] })
|
|
8385
8679
|
] });
|
|
8386
8680
|
}
|
|
8387
8681
|
function ProviderButton({ provider }) {
|
|
8388
8682
|
switch (provider) {
|
|
8389
8683
|
case "google":
|
|
8390
|
-
return /* @__PURE__ */ (0,
|
|
8391
|
-
/* @__PURE__ */ (0,
|
|
8392
|
-
/* @__PURE__ */ (0,
|
|
8393
|
-
/* @__PURE__ */ (0,
|
|
8394
|
-
/* @__PURE__ */ (0,
|
|
8395
|
-
/* @__PURE__ */ (0,
|
|
8684
|
+
return /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)(Button, { variant: "secondary", size: "lg", className: "w-full", children: [
|
|
8685
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("svg", { width: "18", height: "18", viewBox: "0 0 18 18", "aria-hidden": "true", fill: "none", className: "shrink-0", children: [
|
|
8686
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)("path", { d: "M17.64 9.205c0-.639-.057-1.252-.164-1.841H9v3.481h4.844a4.14 4.14 0 0 1-1.796 2.716v2.259h2.908c1.702-1.567 2.684-3.875 2.684-6.615Z", fill: "#4285F4" }),
|
|
8687
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)("path", { d: "M9 18c2.43 0 4.467-.806 5.956-2.18l-2.908-2.259c-.806.54-1.837.86-3.048.86-2.344 0-4.328-1.584-5.036-3.711H.957v2.332A8.997 8.997 0 0 0 9 18Z", fill: "#34A853" }),
|
|
8688
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)("path", { d: "M3.964 10.71A5.41 5.41 0 0 1 3.682 9c0-.593.102-1.17.282-1.71V4.958H.957A8.996 8.996 0 0 0 0 9c0 1.452.348 2.827.957 4.042l3.007-2.332Z", fill: "#FBBC05" }),
|
|
8689
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)("path", { d: "M9 3.58c1.321 0 2.508.454 3.44 1.345l2.582-2.58C13.463.891 11.426 0 9 0A8.997 8.997 0 0 0 .957 4.958L3.964 7.29C4.672 5.163 6.656 3.58 9 3.58Z", fill: "#EA4335" })
|
|
8396
8690
|
] }),
|
|
8397
8691
|
"Continue with Google"
|
|
8398
8692
|
] });
|
|
8399
8693
|
case "telegram":
|
|
8400
|
-
return /* @__PURE__ */ (0,
|
|
8401
|
-
/* @__PURE__ */ (0,
|
|
8402
|
-
/* @__PURE__ */ (0,
|
|
8403
|
-
/* @__PURE__ */ (0,
|
|
8404
|
-
/* @__PURE__ */ (0,
|
|
8694
|
+
return /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)(Button, { variant: "secondary", size: "lg", className: "w-full", children: [
|
|
8695
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("svg", { width: "18", height: "18", viewBox: "0 0 18 18", "aria-hidden": "true", fill: "none", className: "shrink-0", children: [
|
|
8696
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)("circle", { cx: "9", cy: "9", r: "9", fill: "#29B6F6" }),
|
|
8697
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)("path", { d: "M13.5 5.25 11.25 13.5l-2.25-3-3 1.5 1.5-5.25 6-1.5Z", fill: "white", opacity: "0.3" }),
|
|
8698
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)("path", { d: "m4.5 8.625 7.5-3-1.125 7.125-2.625-2.25-1.5 1.5.375-3.375Z", fill: "white" })
|
|
8405
8699
|
] }),
|
|
8406
8700
|
"Continue with Telegram"
|
|
8407
8701
|
] });
|
|
8408
8702
|
case "x":
|
|
8409
|
-
return /* @__PURE__ */ (0,
|
|
8410
|
-
/* @__PURE__ */ (0,
|
|
8703
|
+
return /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)(Button, { variant: "secondary", size: "lg", className: "w-full", children: [
|
|
8704
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)("svg", { width: "18", height: "18", viewBox: "0 0 18 18", "aria-hidden": "true", fill: "currentColor", className: "shrink-0", children: /* @__PURE__ */ (0, import_jsx_runtime65.jsx)("path", { d: "M13.955 2.25h2.423L10.977 8.28 17.25 15.75h-4.812l-3.913-5.116-4.477 5.116H1.645l5.703-6.52L1.125 2.25h4.934l3.538 4.678 4.358-4.678Zm-.85 12.105h1.343L5.025 3.627H3.579l9.526 10.728Z" }) }),
|
|
8411
8705
|
"Continue with X (Twitter)"
|
|
8412
8706
|
] });
|
|
8413
8707
|
}
|
|
8414
8708
|
}
|
|
8415
8709
|
|
|
8416
8710
|
// components/blocks/navbar-block.tsx
|
|
8417
|
-
var
|
|
8711
|
+
var React23 = __toESM(require("react"), 1);
|
|
8418
8712
|
var import_lucide_react33 = require("lucide-react");
|
|
8419
|
-
var
|
|
8713
|
+
var import_jsx_runtime66 = require("react/jsx-runtime");
|
|
8420
8714
|
function NavBarBlock({ brand, links, signIn, signUp }) {
|
|
8421
8715
|
var _a, _b, _c, _d;
|
|
8422
|
-
const [mobileMenuOpen, setMobileMenuOpen] =
|
|
8423
|
-
return /* @__PURE__ */ (0,
|
|
8424
|
-
/* @__PURE__ */ (0,
|
|
8425
|
-
/* @__PURE__ */ (0,
|
|
8426
|
-
/* @__PURE__ */ (0,
|
|
8716
|
+
const [mobileMenuOpen, setMobileMenuOpen] = React23.useState(false);
|
|
8717
|
+
return /* @__PURE__ */ (0, import_jsx_runtime66.jsx)("div", { className: "w-full border border-border-subtle rounded-md overflow-hidden", children: /* @__PURE__ */ (0, import_jsx_runtime66.jsxs)("nav", { className: "bg-prominent", children: [
|
|
8718
|
+
/* @__PURE__ */ (0, import_jsx_runtime66.jsxs)("div", { className: "flex items-center justify-between px-layout-margin-inline py-3", children: [
|
|
8719
|
+
/* @__PURE__ */ (0, import_jsx_runtime66.jsxs)("div", { className: "flex items-center gap-6", children: [
|
|
8720
|
+
/* @__PURE__ */ (0, import_jsx_runtime66.jsx)(
|
|
8427
8721
|
"img",
|
|
8428
8722
|
{
|
|
8429
8723
|
src: brand.fullLogoSrc,
|
|
@@ -8431,7 +8725,7 @@ function NavBarBlock({ brand, links, signIn, signUp }) {
|
|
|
8431
8725
|
className: "hidden min-[600px]:block h-7 w-auto shrink-0 object-contain object-left"
|
|
8432
8726
|
}
|
|
8433
8727
|
),
|
|
8434
|
-
/* @__PURE__ */ (0,
|
|
8728
|
+
/* @__PURE__ */ (0, import_jsx_runtime66.jsx)(
|
|
8435
8729
|
"img",
|
|
8436
8730
|
{
|
|
8437
8731
|
src: brand.iconLogoSrc,
|
|
@@ -8439,13 +8733,13 @@ function NavBarBlock({ brand, links, signIn, signUp }) {
|
|
|
8439
8733
|
className: "min-[600px]:hidden size-7 shrink-0 object-contain"
|
|
8440
8734
|
}
|
|
8441
8735
|
),
|
|
8442
|
-
/* @__PURE__ */ (0,
|
|
8736
|
+
/* @__PURE__ */ (0, import_jsx_runtime66.jsx)("div", { className: "hidden min-[600px]:flex items-center gap-1", children: links.map((l) => /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(Button, { variant: "tertiary", size: "sm", onClick: l.onClick, children: l.label }, l.label)) })
|
|
8443
8737
|
] }),
|
|
8444
|
-
/* @__PURE__ */ (0,
|
|
8445
|
-
signIn && /* @__PURE__ */ (0,
|
|
8446
|
-
signUp && /* @__PURE__ */ (0,
|
|
8738
|
+
/* @__PURE__ */ (0, import_jsx_runtime66.jsxs)("div", { className: "hidden min-[600px]:flex items-center gap-2", children: [
|
|
8739
|
+
signIn && /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(Button, { variant: "tertiary", size: "sm", onClick: signIn.onClick, children: (_a = signIn.label) != null ? _a : "Sign in" }),
|
|
8740
|
+
signUp && /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(Button, { size: "sm", onClick: signUp.onClick, children: (_b = signUp.label) != null ? _b : "Sign up" })
|
|
8447
8741
|
] }),
|
|
8448
|
-
/* @__PURE__ */ (0,
|
|
8742
|
+
/* @__PURE__ */ (0, import_jsx_runtime66.jsx)(
|
|
8449
8743
|
Button,
|
|
8450
8744
|
{
|
|
8451
8745
|
variant: "tertiary",
|
|
@@ -8454,12 +8748,12 @@ function NavBarBlock({ brand, links, signIn, signUp }) {
|
|
|
8454
8748
|
"aria-expanded": mobileMenuOpen,
|
|
8455
8749
|
className: "min-[600px]:hidden",
|
|
8456
8750
|
onClick: () => setMobileMenuOpen((prev) => !prev),
|
|
8457
|
-
children: mobileMenuOpen ? /* @__PURE__ */ (0,
|
|
8751
|
+
children: mobileMenuOpen ? /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(import_lucide_react33.X, { className: "size-4" }) : /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(import_lucide_react33.Menu, { className: "size-4" })
|
|
8458
8752
|
}
|
|
8459
8753
|
)
|
|
8460
8754
|
] }),
|
|
8461
|
-
mobileMenuOpen && /* @__PURE__ */ (0,
|
|
8462
|
-
links.map((l) => /* @__PURE__ */ (0,
|
|
8755
|
+
mobileMenuOpen && /* @__PURE__ */ (0, import_jsx_runtime66.jsxs)("div", { className: "min-[600px]:hidden flex flex-col border-t border-border-subtle px-layout-margin-inline py-3 gap-1", children: [
|
|
8756
|
+
links.map((l) => /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(
|
|
8463
8757
|
Button,
|
|
8464
8758
|
{
|
|
8465
8759
|
variant: "tertiary",
|
|
@@ -8470,9 +8764,9 @@ function NavBarBlock({ brand, links, signIn, signUp }) {
|
|
|
8470
8764
|
},
|
|
8471
8765
|
l.label
|
|
8472
8766
|
)),
|
|
8473
|
-
(signIn || signUp) && /* @__PURE__ */ (0,
|
|
8474
|
-
signIn && /* @__PURE__ */ (0,
|
|
8475
|
-
signUp && /* @__PURE__ */ (0,
|
|
8767
|
+
(signIn || signUp) && /* @__PURE__ */ (0, import_jsx_runtime66.jsxs)("div", { className: "flex flex-col gap-2 pt-3 mt-2 border-t border-border-subtle", children: [
|
|
8768
|
+
signIn && /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(Button, { variant: "secondary", size: "sm", className: "w-full", onClick: signIn.onClick, children: (_c = signIn.label) != null ? _c : "Sign in" }),
|
|
8769
|
+
signUp && /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(Button, { size: "sm", className: "w-full", onClick: signUp.onClick, children: (_d = signUp.label) != null ? _d : "Sign up" })
|
|
8476
8770
|
] })
|
|
8477
8771
|
] })
|
|
8478
8772
|
] }) });
|
|
@@ -8480,7 +8774,7 @@ function NavBarBlock({ brand, links, signIn, signUp }) {
|
|
|
8480
8774
|
|
|
8481
8775
|
// components/blocks/open-positions-block.tsx
|
|
8482
8776
|
var import_lucide_react34 = require("lucide-react");
|
|
8483
|
-
var
|
|
8777
|
+
var import_jsx_runtime67 = require("react/jsx-runtime");
|
|
8484
8778
|
function OpenPositionsBlock({
|
|
8485
8779
|
trigger,
|
|
8486
8780
|
sheetTitle = "Positions",
|
|
@@ -8489,28 +8783,28 @@ function OpenPositionsBlock({
|
|
|
8489
8783
|
emptyState
|
|
8490
8784
|
}) {
|
|
8491
8785
|
const isMobile = useIsMobile();
|
|
8492
|
-
const body = positions.length === 0 ? emptyState != null ? emptyState : /* @__PURE__ */ (0,
|
|
8786
|
+
const body = positions.length === 0 ? emptyState != null ? emptyState : /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(DefaultEmptyState, { onViewHistory }) : /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(PositionsList, { positions, onViewHistory });
|
|
8493
8787
|
if (isMobile) {
|
|
8494
|
-
return /* @__PURE__ */ (0,
|
|
8495
|
-
/* @__PURE__ */ (0,
|
|
8496
|
-
/* @__PURE__ */ (0,
|
|
8497
|
-
/* @__PURE__ */ (0,
|
|
8498
|
-
/* @__PURE__ */ (0,
|
|
8499
|
-
/* @__PURE__ */ (0,
|
|
8788
|
+
return /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)(Drawer, { children: [
|
|
8789
|
+
/* @__PURE__ */ (0, import_jsx_runtime67.jsx)(DrawerTrigger, { asChild: true, children: trigger }),
|
|
8790
|
+
/* @__PURE__ */ (0, import_jsx_runtime67.jsxs)(DrawerContent, { className: "p-0 flex flex-col", children: [
|
|
8791
|
+
/* @__PURE__ */ (0, import_jsx_runtime67.jsxs)(DrawerHeader, { className: "flex-row items-center justify-between px-4 py-3 shrink-0 text-left", children: [
|
|
8792
|
+
/* @__PURE__ */ (0, import_jsx_runtime67.jsx)(DrawerTitle, { className: "text-base font-semibold font-display text-on-prominent", children: sheetTitle }),
|
|
8793
|
+
/* @__PURE__ */ (0, import_jsx_runtime67.jsx)(DrawerClose, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(NavigationButton, { size: "sm", "aria-label": "Close", children: /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(import_lucide_react34.X, {}) }) })
|
|
8500
8794
|
] }),
|
|
8501
|
-
/* @__PURE__ */ (0,
|
|
8795
|
+
/* @__PURE__ */ (0, import_jsx_runtime67.jsx)(Separator, {}),
|
|
8502
8796
|
body
|
|
8503
8797
|
] })
|
|
8504
8798
|
] });
|
|
8505
8799
|
}
|
|
8506
|
-
return /* @__PURE__ */ (0,
|
|
8507
|
-
/* @__PURE__ */ (0,
|
|
8508
|
-
/* @__PURE__ */ (0,
|
|
8509
|
-
/* @__PURE__ */ (0,
|
|
8510
|
-
/* @__PURE__ */ (0,
|
|
8511
|
-
/* @__PURE__ */ (0,
|
|
8800
|
+
return /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)(Sheet, { children: [
|
|
8801
|
+
/* @__PURE__ */ (0, import_jsx_runtime67.jsx)(SheetTrigger, { asChild: true, children: trigger }),
|
|
8802
|
+
/* @__PURE__ */ (0, import_jsx_runtime67.jsxs)(SheetContent, { side: "right", showCloseButton: false, className: "p-0 flex flex-col w-80 sm:max-w-xs", children: [
|
|
8803
|
+
/* @__PURE__ */ (0, import_jsx_runtime67.jsxs)(SheetHeader, { className: "flex-row items-center justify-between px-4 py-3 shrink-0", children: [
|
|
8804
|
+
/* @__PURE__ */ (0, import_jsx_runtime67.jsx)(SheetTitle, { className: "text-base font-semibold font-display text-on-prominent", children: sheetTitle }),
|
|
8805
|
+
/* @__PURE__ */ (0, import_jsx_runtime67.jsx)(SheetClose, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(NavigationButton, { size: "sm", "aria-label": "Close", children: /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(import_lucide_react34.X, {}) }) })
|
|
8512
8806
|
] }),
|
|
8513
|
-
/* @__PURE__ */ (0,
|
|
8807
|
+
/* @__PURE__ */ (0, import_jsx_runtime67.jsx)(Separator, {}),
|
|
8514
8808
|
body
|
|
8515
8809
|
] })
|
|
8516
8810
|
] });
|
|
@@ -8519,23 +8813,23 @@ function PositionsList({
|
|
|
8519
8813
|
positions,
|
|
8520
8814
|
onViewHistory
|
|
8521
8815
|
}) {
|
|
8522
|
-
return /* @__PURE__ */ (0,
|
|
8523
|
-
/* @__PURE__ */ (0,
|
|
8524
|
-
/* @__PURE__ */ (0,
|
|
8525
|
-
/* @__PURE__ */ (0,
|
|
8816
|
+
return /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)("div", { className: "flex flex-col flex-1 min-h-0", children: [
|
|
8817
|
+
/* @__PURE__ */ (0, import_jsx_runtime67.jsx)(ItemGroup, { className: "min-h-0 overflow-y-auto", children: positions.map((pos, i) => /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(PositionRow, { position: pos }, i)) }),
|
|
8818
|
+
/* @__PURE__ */ (0, import_jsx_runtime67.jsx)(Separator, {}),
|
|
8819
|
+
/* @__PURE__ */ (0, import_jsx_runtime67.jsx)("div", { className: "shrink-0 flex justify-center py-4", children: /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(Button, { variant: "tertiary", size: "md", onClick: onViewHistory, children: "View trade history" }) })
|
|
8526
8820
|
] });
|
|
8527
8821
|
}
|
|
8528
8822
|
function PositionRow({ position }) {
|
|
8529
8823
|
const { label, suffix } = positionTitleParts(position);
|
|
8530
|
-
return /* @__PURE__ */ (0,
|
|
8531
|
-
/* @__PURE__ */ (0,
|
|
8532
|
-
/* @__PURE__ */ (0,
|
|
8533
|
-
/* @__PURE__ */ (0,
|
|
8534
|
-
suffix && /* @__PURE__ */ (0,
|
|
8824
|
+
return /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)(Item, { size: "sm", children: [
|
|
8825
|
+
/* @__PURE__ */ (0, import_jsx_runtime67.jsxs)(ItemContent, { children: [
|
|
8826
|
+
/* @__PURE__ */ (0, import_jsx_runtime67.jsxs)(ItemTitle, { children: [
|
|
8827
|
+
/* @__PURE__ */ (0, import_jsx_runtime67.jsx)("span", { className: "text-on-prominent", children: label }),
|
|
8828
|
+
suffix && /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("span", { className: "text-on-subtle", children: ` ${suffix}` })
|
|
8535
8829
|
] }),
|
|
8536
|
-
/* @__PURE__ */ (0,
|
|
8830
|
+
/* @__PURE__ */ (0, import_jsx_runtime67.jsx)(MetaNote, { market: position.market, duration: position.duration })
|
|
8537
8831
|
] }),
|
|
8538
|
-
/* @__PURE__ */ (0,
|
|
8832
|
+
/* @__PURE__ */ (0, import_jsx_runtime67.jsx)(ItemActions, { children: /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(PnlMeta, { pnl: position.pnl, win: position.win, stake: position.stake }) })
|
|
8539
8833
|
] });
|
|
8540
8834
|
}
|
|
8541
8835
|
var DIGITS_TYPE_LABEL = {
|
|
@@ -8561,29 +8855,29 @@ function positionTitleParts(p) {
|
|
|
8561
8855
|
}
|
|
8562
8856
|
}
|
|
8563
8857
|
function MetaNote({ market, duration }) {
|
|
8564
|
-
return /* @__PURE__ */ (0,
|
|
8858
|
+
return /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)("span", { className: "text-xs text-on-subtle whitespace-nowrap", children: [
|
|
8565
8859
|
market,
|
|
8566
8860
|
" \xB7 ",
|
|
8567
8861
|
duration
|
|
8568
8862
|
] });
|
|
8569
8863
|
}
|
|
8570
8864
|
function PnlMeta({ pnl, win, stake }) {
|
|
8571
|
-
return /* @__PURE__ */ (0,
|
|
8572
|
-
/* @__PURE__ */ (0,
|
|
8573
|
-
/* @__PURE__ */ (0,
|
|
8865
|
+
return /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)("div", { className: "flex flex-col items-end gap-0.5", children: [
|
|
8866
|
+
/* @__PURE__ */ (0, import_jsx_runtime67.jsx)("span", { className: `font-display font-semibold tabular-nums text-base ${win ? "text-semantic-win" : "text-semantic-loss"}`, children: pnl }),
|
|
8867
|
+
/* @__PURE__ */ (0, import_jsx_runtime67.jsx)("span", { className: "tabular-nums text-xs text-on-subtle", children: stake })
|
|
8574
8868
|
] });
|
|
8575
8869
|
}
|
|
8576
8870
|
function DefaultEmptyState({ onViewHistory }) {
|
|
8577
|
-
return /* @__PURE__ */ (0,
|
|
8578
|
-
/* @__PURE__ */ (0,
|
|
8579
|
-
/* @__PURE__ */ (0,
|
|
8580
|
-
/* @__PURE__ */ (0,
|
|
8871
|
+
return /* @__PURE__ */ (0, import_jsx_runtime67.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_runtime67.jsxs)(EmptyHeader, { className: "gap-4", children: [
|
|
8872
|
+
/* @__PURE__ */ (0, import_jsx_runtime67.jsx)(EmptyMedia, { children: /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(import_lucide_react34.History, { className: "size-8 text-on-subtle" }) }),
|
|
8873
|
+
/* @__PURE__ */ (0, import_jsx_runtime67.jsx)(EmptyTitle, { className: "h6 text-on-subtle", children: "No trades yet." }),
|
|
8874
|
+
/* @__PURE__ */ (0, import_jsx_runtime67.jsx)(Button, { variant: "tertiary", size: "md", onClick: onViewHistory, children: "View trade history" })
|
|
8581
8875
|
] }) });
|
|
8582
8876
|
}
|
|
8583
8877
|
|
|
8584
8878
|
// components/blocks/game-loading-block.tsx
|
|
8585
|
-
var
|
|
8586
|
-
var
|
|
8879
|
+
var React24 = __toESM(require("react"), 1);
|
|
8880
|
+
var import_jsx_runtime68 = require("react/jsx-runtime");
|
|
8587
8881
|
function useSmoothProgress({
|
|
8588
8882
|
checkpoints,
|
|
8589
8883
|
reached,
|
|
@@ -8593,19 +8887,19 @@ function useSmoothProgress({
|
|
|
8593
8887
|
readyLabel = "Ready"
|
|
8594
8888
|
}) {
|
|
8595
8889
|
var _a, _b;
|
|
8596
|
-
const [progress, setProgress] =
|
|
8597
|
-
const [delayed, setDelayed] =
|
|
8598
|
-
const checkpointsRef =
|
|
8599
|
-
const reachedRef =
|
|
8600
|
-
const doneRef =
|
|
8601
|
-
|
|
8890
|
+
const [progress, setProgress] = React24.useState(0);
|
|
8891
|
+
const [delayed, setDelayed] = React24.useState(false);
|
|
8892
|
+
const checkpointsRef = React24.useRef(checkpoints);
|
|
8893
|
+
const reachedRef = React24.useRef(reached);
|
|
8894
|
+
const doneRef = React24.useRef(done);
|
|
8895
|
+
React24.useEffect(() => {
|
|
8602
8896
|
checkpointsRef.current = checkpoints;
|
|
8603
8897
|
reachedRef.current = reached;
|
|
8604
8898
|
doneRef.current = done;
|
|
8605
8899
|
});
|
|
8606
|
-
const progressRef =
|
|
8607
|
-
const lastAdvanceRef =
|
|
8608
|
-
|
|
8900
|
+
const progressRef = React24.useRef(0);
|
|
8901
|
+
const lastAdvanceRef = React24.useRef(0);
|
|
8902
|
+
React24.useEffect(() => {
|
|
8609
8903
|
let raf = 0;
|
|
8610
8904
|
let last = 0;
|
|
8611
8905
|
const tick = (ts) => {
|
|
@@ -8659,14 +8953,14 @@ function GameLoadingBlock({
|
|
|
8659
8953
|
backgroundImageUrl,
|
|
8660
8954
|
className
|
|
8661
8955
|
}) {
|
|
8662
|
-
const [go, setGo] =
|
|
8663
|
-
const [reduced, setReduced] =
|
|
8664
|
-
|
|
8956
|
+
const [go, setGo] = React24.useState(false);
|
|
8957
|
+
const [reduced, setReduced] = React24.useState(false);
|
|
8958
|
+
React24.useEffect(() => {
|
|
8665
8959
|
if (typeof window !== "undefined" && typeof window.matchMedia === "function") {
|
|
8666
8960
|
setReduced(window.matchMedia("(prefers-reduced-motion: reduce)").matches);
|
|
8667
8961
|
}
|
|
8668
8962
|
}, []);
|
|
8669
|
-
|
|
8963
|
+
React24.useEffect(() => {
|
|
8670
8964
|
if (!exiting) return;
|
|
8671
8965
|
const raf = requestAnimationFrame(() => setGo(true));
|
|
8672
8966
|
const timer = setTimeout(() => onExitEnd == null ? void 0 : onExitEnd(), reduced ? 240 : 700);
|
|
@@ -8678,7 +8972,7 @@ function GameLoadingBlock({
|
|
|
8678
8972
|
const isAbsolute = exiting || contained;
|
|
8679
8973
|
const punched = Boolean(logoSrc);
|
|
8680
8974
|
const animate = exiting && go && !reduced;
|
|
8681
|
-
return /* @__PURE__ */ (0,
|
|
8975
|
+
return /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)(
|
|
8682
8976
|
"div",
|
|
8683
8977
|
{
|
|
8684
8978
|
role: "status",
|
|
@@ -8694,7 +8988,7 @@ function GameLoadingBlock({
|
|
|
8694
8988
|
className
|
|
8695
8989
|
),
|
|
8696
8990
|
children: [
|
|
8697
|
-
/* @__PURE__ */ (0,
|
|
8991
|
+
/* @__PURE__ */ (0, import_jsx_runtime68.jsx)(
|
|
8698
8992
|
"div",
|
|
8699
8993
|
{
|
|
8700
8994
|
"aria-hidden": "true",
|
|
@@ -8712,7 +9006,7 @@ function GameLoadingBlock({
|
|
|
8712
9006
|
} : null)
|
|
8713
9007
|
}
|
|
8714
9008
|
),
|
|
8715
|
-
logoSrc && /* @__PURE__ */ (0,
|
|
9009
|
+
logoSrc && /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(
|
|
8716
9010
|
"img",
|
|
8717
9011
|
{
|
|
8718
9012
|
src: logoSrc,
|
|
@@ -8721,16 +9015,16 @@ function GameLoadingBlock({
|
|
|
8721
9015
|
className: cn("game-loader-mark", animate && "game-loader-mark-exit")
|
|
8722
9016
|
}
|
|
8723
9017
|
),
|
|
8724
|
-
!exiting && /* @__PURE__ */ (0,
|
|
8725
|
-
/* @__PURE__ */ (0,
|
|
9018
|
+
!exiting && /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)("div", { className: "absolute bottom-10 left-1/2 flex w-[200px] -translate-x-1/2 flex-col items-start gap-3.5", children: [
|
|
9019
|
+
/* @__PURE__ */ (0, import_jsx_runtime68.jsx)("div", { className: "relative h-2 w-full overflow-hidden rounded-xs bg-background-secondary-surface", children: /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(
|
|
8726
9020
|
"div",
|
|
8727
9021
|
{
|
|
8728
9022
|
className: "absolute inset-y-0 left-0 overflow-hidden rounded-xs bg-background-brand-default",
|
|
8729
9023
|
style: { width: `${progress}%` },
|
|
8730
|
-
children: /* @__PURE__ */ (0,
|
|
9024
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime68.jsx)("span", { "aria-hidden": "true", className: "game-loader-shimmer absolute inset-y-0 left-[-60%] w-[60%]" })
|
|
8731
9025
|
}
|
|
8732
9026
|
) }),
|
|
8733
|
-
/* @__PURE__ */ (0,
|
|
9027
|
+
/* @__PURE__ */ (0, import_jsx_runtime68.jsx)("span", { className: "caption text-text-subtle-default", children: delayed ? "Taking longer than usual\u2026" : label })
|
|
8734
9028
|
] })
|
|
8735
9029
|
]
|
|
8736
9030
|
}
|
|
@@ -8817,6 +9111,7 @@ function GameLoadingBlock({
|
|
|
8817
9111
|
ContextMenuSubContent,
|
|
8818
9112
|
ContextMenuSubTrigger,
|
|
8819
9113
|
ContextMenuTrigger,
|
|
9114
|
+
DateWheelPicker,
|
|
8820
9115
|
Dialog,
|
|
8821
9116
|
DialogClose,
|
|
8822
9117
|
DialogContent,
|