@trading-game/design-intelligence-layer 0.15.4 → 0.16.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +41 -3
- package/dist/index.cjs +401 -226
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +37 -5
- package/dist/index.d.ts +37 -5
- package/dist/index.js +499 -316
- package/dist/index.js.map +1 -1
- package/guides/design-system-guide/trading-game-ds-guide.md +2 -1
- package/package.json +1 -1
- package/src/styles.css +7 -2
package/dist/index.js
CHANGED
|
@@ -106,79 +106,23 @@ function AccordionContent(_a) {
|
|
|
106
106
|
}
|
|
107
107
|
|
|
108
108
|
// components/ui/alert.tsx
|
|
109
|
-
import
|
|
110
|
-
import {
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
},
|
|
120
|
-
defaultVariants: {
|
|
121
|
-
variant: "info"
|
|
122
|
-
}
|
|
123
|
-
}
|
|
124
|
-
);
|
|
125
|
-
function Alert(_a) {
|
|
126
|
-
var _b = _a, {
|
|
127
|
-
className,
|
|
128
|
-
variant
|
|
129
|
-
} = _b, props = __objRest(_b, [
|
|
130
|
-
"className",
|
|
131
|
-
"variant"
|
|
132
|
-
]);
|
|
133
|
-
return /* @__PURE__ */ jsx2(
|
|
134
|
-
"div",
|
|
135
|
-
__spreadValues({
|
|
136
|
-
"data-slot": "alert",
|
|
137
|
-
role: "alert",
|
|
138
|
-
className: cn(alertVariants({ variant }), className)
|
|
139
|
-
}, props)
|
|
140
|
-
);
|
|
141
|
-
}
|
|
142
|
-
function AlertTitle(_a) {
|
|
143
|
-
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
144
|
-
return /* @__PURE__ */ jsx2(
|
|
145
|
-
"div",
|
|
146
|
-
__spreadValues({
|
|
147
|
-
"data-slot": "alert-title",
|
|
148
|
-
className: cn(
|
|
149
|
-
"col-start-2 line-clamp-1 min-h-4 font-medium tracking-tight",
|
|
150
|
-
className
|
|
151
|
-
)
|
|
152
|
-
}, props)
|
|
153
|
-
);
|
|
154
|
-
}
|
|
155
|
-
function AlertDescription(_a) {
|
|
156
|
-
var _b = _a, {
|
|
157
|
-
className
|
|
158
|
-
} = _b, props = __objRest(_b, [
|
|
159
|
-
"className"
|
|
160
|
-
]);
|
|
161
|
-
return /* @__PURE__ */ jsx2(
|
|
162
|
-
"div",
|
|
163
|
-
__spreadValues({
|
|
164
|
-
"data-slot": "alert-description",
|
|
165
|
-
className: cn(
|
|
166
|
-
"col-start-2 grid justify-items-start gap-1 text-sm [&_p]:leading-relaxed",
|
|
167
|
-
className
|
|
168
|
-
)
|
|
169
|
-
}, props)
|
|
170
|
-
);
|
|
171
|
-
}
|
|
172
|
-
|
|
173
|
-
// components/ui/alert-dialog.tsx
|
|
174
|
-
import { AlertDialog as AlertDialogPrimitive } from "radix-ui";
|
|
109
|
+
import * as React from "react";
|
|
110
|
+
import { cva as cva2 } from "class-variance-authority";
|
|
111
|
+
import {
|
|
112
|
+
AlertTriangle,
|
|
113
|
+
CheckCircle2,
|
|
114
|
+
Info,
|
|
115
|
+
Sparkles,
|
|
116
|
+
X,
|
|
117
|
+
XCircle
|
|
118
|
+
} from "lucide-react";
|
|
175
119
|
|
|
176
120
|
// components/ui/button.tsx
|
|
177
|
-
import { cva
|
|
121
|
+
import { cva } from "class-variance-authority";
|
|
178
122
|
import { Slot } from "radix-ui";
|
|
179
123
|
|
|
180
124
|
// components/ui/spinner.tsx
|
|
181
|
-
import { jsx as
|
|
125
|
+
import { jsx as jsx2, jsxs as jsxs2 } from "react/jsx-runtime";
|
|
182
126
|
var PILL_COUNT = 8;
|
|
183
127
|
function Spinner(_a) {
|
|
184
128
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
@@ -190,13 +134,13 @@ function Spinner(_a) {
|
|
|
190
134
|
className: cn("relative inline-block size-4 text-current", className)
|
|
191
135
|
}, props), {
|
|
192
136
|
children: [
|
|
193
|
-
/* @__PURE__ */
|
|
137
|
+
/* @__PURE__ */ jsx2("style", { children: `
|
|
194
138
|
@keyframes spinner-fade {
|
|
195
139
|
0% { opacity: 1; }
|
|
196
140
|
100% { opacity: 0.15; }
|
|
197
141
|
}
|
|
198
142
|
` }),
|
|
199
|
-
Array.from({ length: PILL_COUNT }, (_, i) => /* @__PURE__ */
|
|
143
|
+
Array.from({ length: PILL_COUNT }, (_, i) => /* @__PURE__ */ jsx2(
|
|
200
144
|
"span",
|
|
201
145
|
{
|
|
202
146
|
style: {
|
|
@@ -220,8 +164,8 @@ function Spinner(_a) {
|
|
|
220
164
|
}
|
|
221
165
|
|
|
222
166
|
// components/ui/button.tsx
|
|
223
|
-
import { Fragment, jsx as
|
|
224
|
-
var buttonVariants =
|
|
167
|
+
import { Fragment, jsx as jsx3, jsxs as jsxs3 } from "react/jsx-runtime";
|
|
168
|
+
var buttonVariants = cva(
|
|
225
169
|
"inline-flex shrink-0 items-center justify-center whitespace-nowrap transition-all outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 active:opacity-60 disabled:pointer-events-none disabled:opacity-24 aria-invalid:border-destructive aria-invalid:ring-destructive/20 [&_svg]:pointer-events-none [&_svg]:shrink-0 font-display font-bold",
|
|
226
170
|
{
|
|
227
171
|
variants: {
|
|
@@ -281,7 +225,7 @@ function Button(_a) {
|
|
|
281
225
|
"children"
|
|
282
226
|
]);
|
|
283
227
|
const Comp = asChild ? Slot.Root : "button";
|
|
284
|
-
return /* @__PURE__ */
|
|
228
|
+
return /* @__PURE__ */ jsx3(
|
|
285
229
|
Comp,
|
|
286
230
|
__spreadProps(__spreadValues({
|
|
287
231
|
"data-slot": "button",
|
|
@@ -295,15 +239,255 @@ function Button(_a) {
|
|
|
295
239
|
"aria-busy": loading || void 0
|
|
296
240
|
}, props), {
|
|
297
241
|
children: loading ? /* @__PURE__ */ jsxs3(Fragment, { children: [
|
|
298
|
-
/* @__PURE__ */
|
|
299
|
-
/* @__PURE__ */
|
|
242
|
+
/* @__PURE__ */ jsx3("span", { className: "invisible inline-flex items-center gap-[inherit]", "aria-hidden": true, children }),
|
|
243
|
+
/* @__PURE__ */ jsx3("span", { className: "absolute inset-0 flex items-center justify-center", children: /* @__PURE__ */ jsx3(Spinner, { className: spinnerSizeMap[size != null ? size : "lg"] }) })
|
|
300
244
|
] }) : children
|
|
301
245
|
})
|
|
302
246
|
);
|
|
303
247
|
}
|
|
304
248
|
|
|
249
|
+
// components/ui/alert.tsx
|
|
250
|
+
import { jsx as jsx4, jsxs as jsxs4 } from "react/jsx-runtime";
|
|
251
|
+
var alertVariants = cva2(
|
|
252
|
+
"grid w-full rounded-sm",
|
|
253
|
+
{
|
|
254
|
+
variants: {
|
|
255
|
+
variant: {
|
|
256
|
+
default: "bg-prominent border border-border-subtle",
|
|
257
|
+
brand: "bg-primary",
|
|
258
|
+
info: "bg-semantic-info/10",
|
|
259
|
+
warning: "bg-semantic-warning/10",
|
|
260
|
+
danger: "bg-semantic-error/10",
|
|
261
|
+
success: "bg-semantic-win/10"
|
|
262
|
+
},
|
|
263
|
+
layout: {
|
|
264
|
+
// Inline is mobile-first: 3 columns × 2 rows so a long title can wrap and the
|
|
265
|
+
// action button drops below the body. At sm+ (640px) it collapses to a single
|
|
266
|
+
// row of 4 columns (icon · body · action · close).
|
|
267
|
+
inline: "grid-cols-[auto_1fr_auto] grid-rows-[auto_auto] items-start gap-x-3 gap-y-3 px-4 py-4 sm:grid-cols-[auto_1fr_auto_auto] sm:grid-rows-1",
|
|
268
|
+
card: "grid-cols-[auto_1fr_auto] grid-rows-[auto_auto] items-start gap-x-3 gap-y-2 px-4 py-4"
|
|
269
|
+
}
|
|
270
|
+
},
|
|
271
|
+
defaultVariants: {
|
|
272
|
+
variant: "info",
|
|
273
|
+
layout: "inline"
|
|
274
|
+
}
|
|
275
|
+
}
|
|
276
|
+
);
|
|
277
|
+
var SINGLE_LINE_CLASSES = "items-center min-h-12 py-2 gap-y-0";
|
|
278
|
+
var TITLE_CLASSES = {
|
|
279
|
+
default: "text-on-prominent",
|
|
280
|
+
brand: "text-on-primary",
|
|
281
|
+
info: "text-on-prominent",
|
|
282
|
+
warning: "text-on-prominent",
|
|
283
|
+
danger: "text-on-prominent",
|
|
284
|
+
success: "text-on-prominent"
|
|
285
|
+
};
|
|
286
|
+
var ICON_CLASSES = {
|
|
287
|
+
default: "text-on-prominent",
|
|
288
|
+
brand: "text-on-primary",
|
|
289
|
+
info: "text-semantic-info",
|
|
290
|
+
warning: "text-semantic-warning",
|
|
291
|
+
danger: "text-semantic-error",
|
|
292
|
+
success: "text-semantic-win"
|
|
293
|
+
};
|
|
294
|
+
var DESC_CLASSES = {
|
|
295
|
+
default: "text-on-subtle",
|
|
296
|
+
brand: "text-on-primary opacity-80",
|
|
297
|
+
info: "text-on-subtle",
|
|
298
|
+
warning: "text-on-subtle",
|
|
299
|
+
danger: "text-on-subtle",
|
|
300
|
+
success: "text-on-subtle"
|
|
301
|
+
};
|
|
302
|
+
var CLOSE_CLASSES = {
|
|
303
|
+
default: "text-on-subtle opacity-70",
|
|
304
|
+
brand: "text-on-primary opacity-70",
|
|
305
|
+
info: "text-on-subtle opacity-70",
|
|
306
|
+
warning: "text-on-subtle opacity-70",
|
|
307
|
+
danger: "text-on-subtle opacity-70",
|
|
308
|
+
success: "text-on-subtle opacity-70"
|
|
309
|
+
};
|
|
310
|
+
function defaultIconForVariant(variant) {
|
|
311
|
+
switch (variant) {
|
|
312
|
+
case "default":
|
|
313
|
+
return /* @__PURE__ */ jsx4(Info, {});
|
|
314
|
+
case "brand":
|
|
315
|
+
return /* @__PURE__ */ jsx4(Sparkles, {});
|
|
316
|
+
case "info":
|
|
317
|
+
return /* @__PURE__ */ jsx4(Info, {});
|
|
318
|
+
case "warning":
|
|
319
|
+
return /* @__PURE__ */ jsx4(AlertTriangle, {});
|
|
320
|
+
case "danger":
|
|
321
|
+
return /* @__PURE__ */ jsx4(XCircle, {});
|
|
322
|
+
case "success":
|
|
323
|
+
return /* @__PURE__ */ jsx4(CheckCircle2, {});
|
|
324
|
+
}
|
|
325
|
+
}
|
|
326
|
+
function actionButtonVariantFor(variant) {
|
|
327
|
+
return variant === "brand" ? "primary-inverse" : "secondary";
|
|
328
|
+
}
|
|
329
|
+
function Alert(_a) {
|
|
330
|
+
var _b = _a, {
|
|
331
|
+
variant = "info",
|
|
332
|
+
layout = "inline",
|
|
333
|
+
title,
|
|
334
|
+
description,
|
|
335
|
+
icon,
|
|
336
|
+
action,
|
|
337
|
+
actions,
|
|
338
|
+
onDismiss,
|
|
339
|
+
dismissLabel = "Dismiss",
|
|
340
|
+
className
|
|
341
|
+
} = _b, props = __objRest(_b, [
|
|
342
|
+
"variant",
|
|
343
|
+
"layout",
|
|
344
|
+
"title",
|
|
345
|
+
"description",
|
|
346
|
+
"icon",
|
|
347
|
+
"action",
|
|
348
|
+
"actions",
|
|
349
|
+
"onDismiss",
|
|
350
|
+
"dismissLabel",
|
|
351
|
+
"className"
|
|
352
|
+
]);
|
|
353
|
+
if (!title && !description) {
|
|
354
|
+
if (process.env.NODE_ENV !== "production") {
|
|
355
|
+
console.warn(
|
|
356
|
+
"Alert: requires at least one of `title` or `description`. Rendering null."
|
|
357
|
+
);
|
|
358
|
+
}
|
|
359
|
+
return null;
|
|
360
|
+
}
|
|
361
|
+
const isInline = layout === "inline";
|
|
362
|
+
const isSingleLine = isInline && !(title && description);
|
|
363
|
+
const showIcon = icon !== null;
|
|
364
|
+
const resolvedIcon = icon === void 0 ? defaultIconForVariant(variant) : icon;
|
|
365
|
+
const showCloseButton = typeof onDismiss === "function";
|
|
366
|
+
const buttonVariant = actionButtonVariantFor(variant);
|
|
367
|
+
const isAssertive = variant === "danger" || variant === "warning";
|
|
368
|
+
const role = isAssertive ? "alert" : "status";
|
|
369
|
+
const ariaLive = isAssertive ? "assertive" : "polite";
|
|
370
|
+
if (process.env.NODE_ENV !== "production") {
|
|
371
|
+
if (isInline && actions && actions.length > 0) {
|
|
372
|
+
console.warn(
|
|
373
|
+
'Alert: `actions` is ignored when layout="inline". Use `action` instead.'
|
|
374
|
+
);
|
|
375
|
+
}
|
|
376
|
+
if (!isInline && action) {
|
|
377
|
+
console.warn(
|
|
378
|
+
'Alert: `action` is ignored when layout="card". Use `actions` instead.'
|
|
379
|
+
);
|
|
380
|
+
}
|
|
381
|
+
}
|
|
382
|
+
const body = /* @__PURE__ */ jsxs4("div", { className: "min-w-0", children: [
|
|
383
|
+
title ? /* @__PURE__ */ jsx4(
|
|
384
|
+
"p",
|
|
385
|
+
{
|
|
386
|
+
className: cn(
|
|
387
|
+
// Mobile-first: 13/11px scale so narrow viewports breathe. sm+ bumps to
|
|
388
|
+
// 14/12px which lines up with the rest of the design system's body sizes.
|
|
389
|
+
"text-[13px] font-semibold leading-snug sm:text-sm",
|
|
390
|
+
TITLE_CLASSES[variant],
|
|
391
|
+
description ? "mb-2" : "mb-0"
|
|
392
|
+
),
|
|
393
|
+
children: title
|
|
394
|
+
}
|
|
395
|
+
) : null,
|
|
396
|
+
description ? /* @__PURE__ */ jsx4(
|
|
397
|
+
"p",
|
|
398
|
+
{
|
|
399
|
+
className: cn(
|
|
400
|
+
"text-[11px] leading-snug m-0 sm:text-xs",
|
|
401
|
+
DESC_CLASSES[variant]
|
|
402
|
+
),
|
|
403
|
+
children: description
|
|
404
|
+
}
|
|
405
|
+
) : null
|
|
406
|
+
] });
|
|
407
|
+
const closeButton = showCloseButton ? /* @__PURE__ */ jsx4(
|
|
408
|
+
"button",
|
|
409
|
+
{
|
|
410
|
+
type: "button",
|
|
411
|
+
onClick: onDismiss,
|
|
412
|
+
"aria-label": dismissLabel,
|
|
413
|
+
className: cn(
|
|
414
|
+
"inline-flex shrink-0 items-center justify-center rounded-xs size-6 cursor-pointer outline-none transition-opacity hover:opacity-100 focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 [&_svg]:size-4 [&_svg]:pointer-events-none",
|
|
415
|
+
// tuck the close into the top-right corner for the multi-line cases
|
|
416
|
+
isSingleLine ? "" : "-mt-1 -mr-1",
|
|
417
|
+
CLOSE_CLASSES[variant]
|
|
418
|
+
),
|
|
419
|
+
children: /* @__PURE__ */ jsx4(X, {})
|
|
420
|
+
}
|
|
421
|
+
) : null;
|
|
422
|
+
const iconColumn = showIcon ? /* @__PURE__ */ jsx4(
|
|
423
|
+
"div",
|
|
424
|
+
{
|
|
425
|
+
"aria-hidden": true,
|
|
426
|
+
className: cn(
|
|
427
|
+
"inline-flex shrink-0 size-4 [&_svg]:size-full",
|
|
428
|
+
// 2px nudge (mt-0.5) aligns the 16px icon with the title cap-height
|
|
429
|
+
// in multi-line / card layouts. This is the one exception to the
|
|
430
|
+
// 8-point grid — required for optical typography alignment.
|
|
431
|
+
isSingleLine ? "" : "mt-0.5",
|
|
432
|
+
ICON_CLASSES[variant]
|
|
433
|
+
),
|
|
434
|
+
children: resolvedIcon
|
|
435
|
+
}
|
|
436
|
+
) : null;
|
|
437
|
+
if (isInline) {
|
|
438
|
+
return /* @__PURE__ */ jsxs4(
|
|
439
|
+
"div",
|
|
440
|
+
__spreadProps(__spreadValues({
|
|
441
|
+
role,
|
|
442
|
+
"aria-live": ariaLive,
|
|
443
|
+
"data-slot": "alert",
|
|
444
|
+
"data-variant": variant,
|
|
445
|
+
"data-layout": "inline",
|
|
446
|
+
className: cn(
|
|
447
|
+
alertVariants({ variant, layout }),
|
|
448
|
+
isSingleLine ? SINGLE_LINE_CLASSES : "",
|
|
449
|
+
className
|
|
450
|
+
)
|
|
451
|
+
}, props), {
|
|
452
|
+
children: [
|
|
453
|
+
iconColumn,
|
|
454
|
+
/* @__PURE__ */ jsx4("div", { className: "col-start-2 row-start-1 min-w-0", children: body }),
|
|
455
|
+
/* @__PURE__ */ jsx4("div", { className: "col-start-3 row-start-1 sm:col-start-4 sm:row-start-1", children: closeButton }),
|
|
456
|
+
action ? /* @__PURE__ */ jsx4("div", { className: "col-start-2 row-start-2 justify-self-start sm:col-start-3 sm:row-start-1 sm:self-center sm:justify-self-end", children: wrapAction(action, buttonVariant) }) : null
|
|
457
|
+
]
|
|
458
|
+
})
|
|
459
|
+
);
|
|
460
|
+
}
|
|
461
|
+
return /* @__PURE__ */ jsxs4(
|
|
462
|
+
"div",
|
|
463
|
+
__spreadProps(__spreadValues({
|
|
464
|
+
role,
|
|
465
|
+
"aria-live": ariaLive,
|
|
466
|
+
"data-slot": "alert",
|
|
467
|
+
"data-variant": variant,
|
|
468
|
+
"data-layout": "card",
|
|
469
|
+
className: cn(
|
|
470
|
+
alertVariants({ variant, layout }),
|
|
471
|
+
className
|
|
472
|
+
)
|
|
473
|
+
}, props), {
|
|
474
|
+
children: [
|
|
475
|
+
iconColumn,
|
|
476
|
+
/* @__PURE__ */ jsx4("div", { className: "col-span-2 col-start-2 row-start-1", children: body }),
|
|
477
|
+
/* @__PURE__ */ jsx4("div", { className: "col-start-3 row-start-1", children: closeButton }),
|
|
478
|
+
actions && actions.length > 0 ? /* @__PURE__ */ jsx4("div", { className: "col-span-3 col-start-2 row-start-2 mt-2 flex flex-wrap items-center justify-start gap-2", children: actions.slice(0, 2).map((node, i) => /* @__PURE__ */ jsx4(React.Fragment, { children: wrapAction(node, buttonVariant) }, i)) }) : null
|
|
479
|
+
]
|
|
480
|
+
})
|
|
481
|
+
);
|
|
482
|
+
}
|
|
483
|
+
function wrapAction(node, variant) {
|
|
484
|
+
if (React.isValidElement(node)) return node;
|
|
485
|
+
return /* @__PURE__ */ jsx4(Button, { variant, size: "sm", children: node });
|
|
486
|
+
}
|
|
487
|
+
|
|
305
488
|
// components/ui/alert-dialog.tsx
|
|
306
|
-
import {
|
|
489
|
+
import { AlertDialog as AlertDialogPrimitive } from "radix-ui";
|
|
490
|
+
import { jsx as jsx5, jsxs as jsxs5 } from "react/jsx-runtime";
|
|
307
491
|
function AlertDialog(_a) {
|
|
308
492
|
var props = __objRest(_a, []);
|
|
309
493
|
return /* @__PURE__ */ jsx5(AlertDialogPrimitive.Root, __spreadValues({ "data-slot": "alert-dialog" }, props));
|
|
@@ -341,7 +525,7 @@ function AlertDialogContent(_a) {
|
|
|
341
525
|
"className",
|
|
342
526
|
"size"
|
|
343
527
|
]);
|
|
344
|
-
return /* @__PURE__ */
|
|
528
|
+
return /* @__PURE__ */ jsxs5(AlertDialogPortal, { children: [
|
|
345
529
|
/* @__PURE__ */ jsx5(AlertDialogOverlay, {}),
|
|
346
530
|
/* @__PURE__ */ jsx5(
|
|
347
531
|
AlertDialogPrimitive.Content,
|
|
@@ -649,7 +833,7 @@ function Badge(_a) {
|
|
|
649
833
|
// components/ui/breadcrumb.tsx
|
|
650
834
|
import { ChevronRight, MoreHorizontal } from "lucide-react";
|
|
651
835
|
import { Slot as Slot3 } from "radix-ui";
|
|
652
|
-
import { jsx as jsx9, jsxs as
|
|
836
|
+
import { jsx as jsx9, jsxs as jsxs6 } from "react/jsx-runtime";
|
|
653
837
|
function Breadcrumb(_a) {
|
|
654
838
|
var props = __objRest(_a, []);
|
|
655
839
|
return /* @__PURE__ */ jsx9("nav", __spreadValues({ "aria-label": "breadcrumb", "data-slot": "breadcrumb" }, props));
|
|
@@ -733,7 +917,7 @@ function BreadcrumbEllipsis(_a) {
|
|
|
733
917
|
} = _b, props = __objRest(_b, [
|
|
734
918
|
"className"
|
|
735
919
|
]);
|
|
736
|
-
return /* @__PURE__ */
|
|
920
|
+
return /* @__PURE__ */ jsxs6(
|
|
737
921
|
"span",
|
|
738
922
|
__spreadProps(__spreadValues({
|
|
739
923
|
"data-slot": "breadcrumb-ellipsis",
|
|
@@ -750,7 +934,7 @@ function BreadcrumbEllipsis(_a) {
|
|
|
750
934
|
}
|
|
751
935
|
|
|
752
936
|
// components/ui/calendar.tsx
|
|
753
|
-
import * as
|
|
937
|
+
import * as React2 from "react";
|
|
754
938
|
import {
|
|
755
939
|
ChevronDownIcon as ChevronDownIcon2,
|
|
756
940
|
ChevronLeftIcon,
|
|
@@ -923,8 +1107,8 @@ function CalendarDayButton(_a) {
|
|
|
923
1107
|
"modifiers"
|
|
924
1108
|
]);
|
|
925
1109
|
const defaultClassNames = getDefaultClassNames();
|
|
926
|
-
const ref =
|
|
927
|
-
|
|
1110
|
+
const ref = React2.useRef(null);
|
|
1111
|
+
React2.useEffect(() => {
|
|
928
1112
|
var _a2;
|
|
929
1113
|
if (modifiers.focused) (_a2 = ref.current) == null ? void 0 : _a2.focus();
|
|
930
1114
|
}, [modifiers.focused]);
|
|
@@ -1032,13 +1216,13 @@ function CardFooter(_a) {
|
|
|
1032
1216
|
}
|
|
1033
1217
|
|
|
1034
1218
|
// components/ui/carousel.tsx
|
|
1035
|
-
import * as
|
|
1219
|
+
import * as React3 from "react";
|
|
1036
1220
|
import useEmblaCarousel from "embla-carousel-react";
|
|
1037
1221
|
import { ArrowLeft, ArrowRight } from "lucide-react";
|
|
1038
|
-
import { jsx as jsx12, jsxs as
|
|
1039
|
-
var CarouselContext =
|
|
1222
|
+
import { jsx as jsx12, jsxs as jsxs7 } from "react/jsx-runtime";
|
|
1223
|
+
var CarouselContext = React3.createContext(null);
|
|
1040
1224
|
function useCarousel() {
|
|
1041
|
-
const context =
|
|
1225
|
+
const context = React3.useContext(CarouselContext);
|
|
1042
1226
|
if (!context) {
|
|
1043
1227
|
throw new Error("useCarousel must be used within a <Carousel />");
|
|
1044
1228
|
}
|
|
@@ -1066,20 +1250,20 @@ function Carousel(_a) {
|
|
|
1066
1250
|
}),
|
|
1067
1251
|
plugins
|
|
1068
1252
|
);
|
|
1069
|
-
const [canScrollPrev, setCanScrollPrev] =
|
|
1070
|
-
const [canScrollNext, setCanScrollNext] =
|
|
1071
|
-
const onSelect =
|
|
1253
|
+
const [canScrollPrev, setCanScrollPrev] = React3.useState(false);
|
|
1254
|
+
const [canScrollNext, setCanScrollNext] = React3.useState(false);
|
|
1255
|
+
const onSelect = React3.useCallback((api2) => {
|
|
1072
1256
|
if (!api2) return;
|
|
1073
1257
|
setCanScrollPrev(api2.canScrollPrev());
|
|
1074
1258
|
setCanScrollNext(api2.canScrollNext());
|
|
1075
1259
|
}, []);
|
|
1076
|
-
const scrollPrev =
|
|
1260
|
+
const scrollPrev = React3.useCallback(() => {
|
|
1077
1261
|
api == null ? void 0 : api.scrollPrev();
|
|
1078
1262
|
}, [api]);
|
|
1079
|
-
const scrollNext =
|
|
1263
|
+
const scrollNext = React3.useCallback(() => {
|
|
1080
1264
|
api == null ? void 0 : api.scrollNext();
|
|
1081
1265
|
}, [api]);
|
|
1082
|
-
const handleKeyDown =
|
|
1266
|
+
const handleKeyDown = React3.useCallback(
|
|
1083
1267
|
(event) => {
|
|
1084
1268
|
if (event.key === "ArrowLeft") {
|
|
1085
1269
|
event.preventDefault();
|
|
@@ -1091,11 +1275,11 @@ function Carousel(_a) {
|
|
|
1091
1275
|
},
|
|
1092
1276
|
[scrollPrev, scrollNext]
|
|
1093
1277
|
);
|
|
1094
|
-
|
|
1278
|
+
React3.useEffect(() => {
|
|
1095
1279
|
if (!api || !setApi) return;
|
|
1096
1280
|
setApi(api);
|
|
1097
1281
|
}, [api, setApi]);
|
|
1098
|
-
|
|
1282
|
+
React3.useEffect(() => {
|
|
1099
1283
|
if (!api) return;
|
|
1100
1284
|
onSelect(api);
|
|
1101
1285
|
api.on("reInit", onSelect);
|
|
@@ -1182,7 +1366,7 @@ function CarouselPrevious(_a) {
|
|
|
1182
1366
|
"size"
|
|
1183
1367
|
]);
|
|
1184
1368
|
const { orientation, scrollPrev, canScrollPrev } = useCarousel();
|
|
1185
|
-
return /* @__PURE__ */
|
|
1369
|
+
return /* @__PURE__ */ jsxs7(
|
|
1186
1370
|
Button,
|
|
1187
1371
|
__spreadProps(__spreadValues({
|
|
1188
1372
|
"data-slot": "carousel-previous",
|
|
@@ -1214,7 +1398,7 @@ function CarouselNext(_a) {
|
|
|
1214
1398
|
"size"
|
|
1215
1399
|
]);
|
|
1216
1400
|
const { orientation, scrollNext, canScrollNext } = useCarousel();
|
|
1217
|
-
return /* @__PURE__ */
|
|
1401
|
+
return /* @__PURE__ */ jsxs7(
|
|
1218
1402
|
Button,
|
|
1219
1403
|
__spreadProps(__spreadValues({
|
|
1220
1404
|
"data-slot": "carousel-next",
|
|
@@ -1237,13 +1421,13 @@ function CarouselNext(_a) {
|
|
|
1237
1421
|
}
|
|
1238
1422
|
|
|
1239
1423
|
// components/ui/chart.tsx
|
|
1240
|
-
import * as
|
|
1424
|
+
import * as React4 from "react";
|
|
1241
1425
|
import * as RechartsPrimitive from "recharts";
|
|
1242
|
-
import { Fragment as
|
|
1426
|
+
import { Fragment as Fragment3, jsx as jsx13, jsxs as jsxs8 } from "react/jsx-runtime";
|
|
1243
1427
|
var THEMES = { light: "" };
|
|
1244
|
-
var ChartContext =
|
|
1428
|
+
var ChartContext = React4.createContext(null);
|
|
1245
1429
|
function useChart() {
|
|
1246
|
-
const context =
|
|
1430
|
+
const context = React4.useContext(ChartContext);
|
|
1247
1431
|
if (!context) {
|
|
1248
1432
|
throw new Error("useChart must be used within a <ChartContainer />");
|
|
1249
1433
|
}
|
|
@@ -1261,9 +1445,9 @@ function ChartContainer(_a) {
|
|
|
1261
1445
|
"children",
|
|
1262
1446
|
"config"
|
|
1263
1447
|
]);
|
|
1264
|
-
const uniqueId =
|
|
1448
|
+
const uniqueId = React4.useId();
|
|
1265
1449
|
const chartId = `chart-${id || uniqueId.replace(/:/g, "")}`;
|
|
1266
|
-
return /* @__PURE__ */ jsx13(ChartContext.Provider, { value: { config }, children: /* @__PURE__ */
|
|
1450
|
+
return /* @__PURE__ */ jsx13(ChartContext.Provider, { value: { config }, children: /* @__PURE__ */ jsxs8(
|
|
1267
1451
|
"div",
|
|
1268
1452
|
__spreadProps(__spreadValues({
|
|
1269
1453
|
"data-slot": "chart",
|
|
@@ -1323,7 +1507,7 @@ function ChartTooltipContent({
|
|
|
1323
1507
|
labelKey
|
|
1324
1508
|
}) {
|
|
1325
1509
|
const { config } = useChart();
|
|
1326
|
-
const tooltipLabel =
|
|
1510
|
+
const tooltipLabel = React4.useMemo(() => {
|
|
1327
1511
|
var _a;
|
|
1328
1512
|
if (hideLabel || !(payload == null ? void 0 : payload.length)) {
|
|
1329
1513
|
return null;
|
|
@@ -1352,7 +1536,7 @@ function ChartTooltipContent({
|
|
|
1352
1536
|
return null;
|
|
1353
1537
|
}
|
|
1354
1538
|
const nestLabel = payload.length === 1 && indicator !== "dot";
|
|
1355
|
-
return /* @__PURE__ */
|
|
1539
|
+
return /* @__PURE__ */ jsxs8(
|
|
1356
1540
|
"div",
|
|
1357
1541
|
{
|
|
1358
1542
|
className: cn(
|
|
@@ -1372,7 +1556,7 @@ function ChartTooltipContent({
|
|
|
1372
1556
|
"flex w-full flex-wrap items-stretch gap-2 [&>svg]:h-2.5 [&>svg]:w-2.5 [&>svg]:text-on-subtle",
|
|
1373
1557
|
indicator === "dot" && "items-center"
|
|
1374
1558
|
),
|
|
1375
|
-
children: formatter && (item == null ? void 0 : item.value) !== void 0 && item.name ? formatter(item.value, item.name, item, index, item.payload) : /* @__PURE__ */
|
|
1559
|
+
children: formatter && (item == null ? void 0 : item.value) !== void 0 && item.name ? formatter(item.value, item.name, item, index, item.payload) : /* @__PURE__ */ jsxs8(Fragment3, { children: [
|
|
1376
1560
|
(itemConfig == null ? void 0 : itemConfig.icon) ? /* @__PURE__ */ jsx13(itemConfig.icon, {}) : !hideIndicator && /* @__PURE__ */ jsx13(
|
|
1377
1561
|
"div",
|
|
1378
1562
|
{
|
|
@@ -1391,7 +1575,7 @@ function ChartTooltipContent({
|
|
|
1391
1575
|
}
|
|
1392
1576
|
}
|
|
1393
1577
|
),
|
|
1394
|
-
/* @__PURE__ */
|
|
1578
|
+
/* @__PURE__ */ jsxs8(
|
|
1395
1579
|
"div",
|
|
1396
1580
|
{
|
|
1397
1581
|
className: cn(
|
|
@@ -1399,7 +1583,7 @@ function ChartTooltipContent({
|
|
|
1399
1583
|
nestLabel ? "items-end" : "items-center"
|
|
1400
1584
|
),
|
|
1401
1585
|
children: [
|
|
1402
|
-
/* @__PURE__ */
|
|
1586
|
+
/* @__PURE__ */ jsxs8("div", { className: "grid gap-1.5", children: [
|
|
1403
1587
|
nestLabel ? tooltipLabel : null,
|
|
1404
1588
|
/* @__PURE__ */ jsx13("span", { className: "text-on-subtle", children: (itemConfig == null ? void 0 : itemConfig.label) || item.name })
|
|
1405
1589
|
] }),
|
|
@@ -1439,7 +1623,7 @@ function ChartLegendContent({
|
|
|
1439
1623
|
children: payload.filter((item) => item.type !== "none").map((item) => {
|
|
1440
1624
|
const key = `${nameKey || item.dataKey || "value"}`;
|
|
1441
1625
|
const itemConfig = getPayloadConfigFromPayload(config, item, key);
|
|
1442
|
-
return /* @__PURE__ */
|
|
1626
|
+
return /* @__PURE__ */ jsxs8(
|
|
1443
1627
|
"div",
|
|
1444
1628
|
{
|
|
1445
1629
|
className: cn(
|
|
@@ -1536,12 +1720,12 @@ function CollapsibleContent(_a) {
|
|
|
1536
1720
|
}
|
|
1537
1721
|
|
|
1538
1722
|
// components/ui/combobox.tsx
|
|
1539
|
-
import * as
|
|
1723
|
+
import * as React6 from "react";
|
|
1540
1724
|
import { Combobox as ComboboxPrimitive } from "@base-ui/react";
|
|
1541
1725
|
import { CheckIcon as CheckIcon2, ChevronDownIcon as ChevronDownIcon3, XIcon } from "lucide-react";
|
|
1542
1726
|
|
|
1543
1727
|
// components/ui/input-group.tsx
|
|
1544
|
-
import * as
|
|
1728
|
+
import * as React5 from "react";
|
|
1545
1729
|
import { cva as cva5 } from "class-variance-authority";
|
|
1546
1730
|
|
|
1547
1731
|
// components/ui/input.tsx
|
|
@@ -1609,7 +1793,7 @@ function Textarea(_a) {
|
|
|
1609
1793
|
|
|
1610
1794
|
// components/ui/input-group.tsx
|
|
1611
1795
|
import { jsx as jsx18 } from "react/jsx-runtime";
|
|
1612
|
-
var InputGroupSizeContext =
|
|
1796
|
+
var InputGroupSizeContext = React5.createContext("md");
|
|
1613
1797
|
var inputGroupVariants = cva5(
|
|
1614
1798
|
[
|
|
1615
1799
|
"group/input-group relative flex w-full items-center rounded-sm border border-border-subtle bg-white/5",
|
|
@@ -1771,7 +1955,7 @@ function InputGroupInput(_a) {
|
|
|
1771
1955
|
"className",
|
|
1772
1956
|
"size"
|
|
1773
1957
|
]);
|
|
1774
|
-
const groupSize =
|
|
1958
|
+
const groupSize = React5.useContext(InputGroupSizeContext);
|
|
1775
1959
|
const size = sizeProp != null ? sizeProp : groupSize;
|
|
1776
1960
|
return /* @__PURE__ */ jsx18(
|
|
1777
1961
|
Input,
|
|
@@ -1804,7 +1988,7 @@ function InputGroupTextarea(_a) {
|
|
|
1804
1988
|
}
|
|
1805
1989
|
|
|
1806
1990
|
// components/ui/combobox.tsx
|
|
1807
|
-
import { jsx as jsx19, jsxs as
|
|
1991
|
+
import { jsx as jsx19, jsxs as jsxs9 } from "react/jsx-runtime";
|
|
1808
1992
|
var Combobox = ComboboxPrimitive.Root;
|
|
1809
1993
|
function ComboboxValue(_a) {
|
|
1810
1994
|
var props = __objRest(_a, []);
|
|
@@ -1818,7 +2002,7 @@ function ComboboxTrigger(_a) {
|
|
|
1818
2002
|
"className",
|
|
1819
2003
|
"children"
|
|
1820
2004
|
]);
|
|
1821
|
-
return /* @__PURE__ */
|
|
2005
|
+
return /* @__PURE__ */ jsxs9(
|
|
1822
2006
|
ComboboxPrimitive.Trigger,
|
|
1823
2007
|
__spreadProps(__spreadValues({
|
|
1824
2008
|
"data-slot": "combobox-trigger",
|
|
@@ -1864,14 +2048,14 @@ function ComboboxInput(_a) {
|
|
|
1864
2048
|
"showTrigger",
|
|
1865
2049
|
"showClear"
|
|
1866
2050
|
]);
|
|
1867
|
-
return /* @__PURE__ */
|
|
2051
|
+
return /* @__PURE__ */ jsxs9(InputGroup, { className: cn("w-auto", className), children: [
|
|
1868
2052
|
/* @__PURE__ */ jsx19(
|
|
1869
2053
|
ComboboxPrimitive.Input,
|
|
1870
2054
|
__spreadValues({
|
|
1871
2055
|
render: /* @__PURE__ */ jsx19(InputGroupInput, { disabled })
|
|
1872
2056
|
}, props)
|
|
1873
2057
|
),
|
|
1874
|
-
/* @__PURE__ */
|
|
2058
|
+
/* @__PURE__ */ jsxs9(InputGroupAddon, { align: "inline-end", children: [
|
|
1875
2059
|
showTrigger && /* @__PURE__ */ jsx19(
|
|
1876
2060
|
InputGroupButton,
|
|
1877
2061
|
{
|
|
@@ -1949,7 +2133,7 @@ function ComboboxItem(_a) {
|
|
|
1949
2133
|
"className",
|
|
1950
2134
|
"children"
|
|
1951
2135
|
]);
|
|
1952
|
-
return /* @__PURE__ */
|
|
2136
|
+
return /* @__PURE__ */ jsxs9(
|
|
1953
2137
|
ComboboxPrimitive.Item,
|
|
1954
2138
|
__spreadProps(__spreadValues({
|
|
1955
2139
|
"data-slot": "combobox-item",
|
|
@@ -2057,7 +2241,7 @@ function ComboboxChip(_a) {
|
|
|
2057
2241
|
"children",
|
|
2058
2242
|
"showRemove"
|
|
2059
2243
|
]);
|
|
2060
|
-
return /* @__PURE__ */
|
|
2244
|
+
return /* @__PURE__ */ jsxs9(
|
|
2061
2245
|
ComboboxPrimitive.Chip,
|
|
2062
2246
|
__spreadProps(__spreadValues({
|
|
2063
2247
|
"data-slot": "combobox-chip",
|
|
@@ -2098,7 +2282,7 @@ function ComboboxChipsInput(_a) {
|
|
|
2098
2282
|
);
|
|
2099
2283
|
}
|
|
2100
2284
|
function useComboboxAnchor() {
|
|
2101
|
-
return
|
|
2285
|
+
return React6.useRef(null);
|
|
2102
2286
|
}
|
|
2103
2287
|
|
|
2104
2288
|
// components/ui/command.tsx
|
|
@@ -2108,7 +2292,7 @@ import { SearchIcon } from "lucide-react";
|
|
|
2108
2292
|
// components/ui/dialog.tsx
|
|
2109
2293
|
import { XIcon as XIcon2 } from "lucide-react";
|
|
2110
2294
|
import { Dialog as DialogPrimitive } from "radix-ui";
|
|
2111
|
-
import { jsx as jsx20, jsxs as
|
|
2295
|
+
import { jsx as jsx20, jsxs as jsxs10 } from "react/jsx-runtime";
|
|
2112
2296
|
function Dialog(_a) {
|
|
2113
2297
|
var props = __objRest(_a, []);
|
|
2114
2298
|
return /* @__PURE__ */ jsx20(DialogPrimitive.Root, __spreadValues({ "data-slot": "dialog" }, props));
|
|
@@ -2152,9 +2336,9 @@ function DialogContent(_a) {
|
|
|
2152
2336
|
"children",
|
|
2153
2337
|
"showCloseButton"
|
|
2154
2338
|
]);
|
|
2155
|
-
return /* @__PURE__ */
|
|
2339
|
+
return /* @__PURE__ */ jsxs10(DialogPortal, { "data-slot": "dialog-portal", children: [
|
|
2156
2340
|
/* @__PURE__ */ jsx20(DialogOverlay, {}),
|
|
2157
|
-
/* @__PURE__ */
|
|
2341
|
+
/* @__PURE__ */ jsxs10(
|
|
2158
2342
|
DialogPrimitive.Content,
|
|
2159
2343
|
__spreadProps(__spreadValues({
|
|
2160
2344
|
"data-slot": "dialog-content",
|
|
@@ -2165,7 +2349,7 @@ function DialogContent(_a) {
|
|
|
2165
2349
|
}, props), {
|
|
2166
2350
|
children: [
|
|
2167
2351
|
children,
|
|
2168
|
-
showCloseButton && /* @__PURE__ */
|
|
2352
|
+
showCloseButton && /* @__PURE__ */ jsxs10(
|
|
2169
2353
|
DialogPrimitive.Close,
|
|
2170
2354
|
{
|
|
2171
2355
|
"data-slot": "dialog-close",
|
|
@@ -2201,7 +2385,7 @@ function DialogFooter(_a) {
|
|
|
2201
2385
|
"showCloseButton",
|
|
2202
2386
|
"children"
|
|
2203
2387
|
]);
|
|
2204
|
-
return /* @__PURE__ */
|
|
2388
|
+
return /* @__PURE__ */ jsxs10(
|
|
2205
2389
|
"div",
|
|
2206
2390
|
__spreadProps(__spreadValues({
|
|
2207
2391
|
"data-slot": "dialog-footer",
|
|
@@ -2247,7 +2431,7 @@ function DialogDescription(_a) {
|
|
|
2247
2431
|
}
|
|
2248
2432
|
|
|
2249
2433
|
// components/ui/command.tsx
|
|
2250
|
-
import { jsx as jsx21, jsxs as
|
|
2434
|
+
import { jsx as jsx21, jsxs as jsxs11 } from "react/jsx-runtime";
|
|
2251
2435
|
function Command(_a) {
|
|
2252
2436
|
var _b = _a, {
|
|
2253
2437
|
className
|
|
@@ -2279,8 +2463,8 @@ function CommandDialog(_a) {
|
|
|
2279
2463
|
"className",
|
|
2280
2464
|
"showCloseButton"
|
|
2281
2465
|
]);
|
|
2282
|
-
return /* @__PURE__ */
|
|
2283
|
-
/* @__PURE__ */
|
|
2466
|
+
return /* @__PURE__ */ jsxs11(Dialog, __spreadProps(__spreadValues({}, props), { children: [
|
|
2467
|
+
/* @__PURE__ */ jsxs11(DialogHeader, { className: "sr-only", children: [
|
|
2284
2468
|
/* @__PURE__ */ jsx21(DialogTitle, { children: title }),
|
|
2285
2469
|
/* @__PURE__ */ jsx21(DialogDescription, { children: description })
|
|
2286
2470
|
] }),
|
|
@@ -2300,7 +2484,7 @@ function CommandInput(_a) {
|
|
|
2300
2484
|
} = _b, props = __objRest(_b, [
|
|
2301
2485
|
"className"
|
|
2302
2486
|
]);
|
|
2303
|
-
return /* @__PURE__ */
|
|
2487
|
+
return /* @__PURE__ */ jsxs11(
|
|
2304
2488
|
"div",
|
|
2305
2489
|
{
|
|
2306
2490
|
"data-slot": "command-input-wrapper",
|
|
@@ -2417,7 +2601,7 @@ function CommandShortcut(_a) {
|
|
|
2417
2601
|
// components/ui/context-menu.tsx
|
|
2418
2602
|
import { CheckIcon as CheckIcon3, ChevronRightIcon as ChevronRightIcon2, CircleIcon } from "lucide-react";
|
|
2419
2603
|
import { ContextMenu as ContextMenuPrimitive } from "radix-ui";
|
|
2420
|
-
import { jsx as jsx22, jsxs as
|
|
2604
|
+
import { jsx as jsx22, jsxs as jsxs12 } from "react/jsx-runtime";
|
|
2421
2605
|
function ContextMenu(_a) {
|
|
2422
2606
|
var props = __objRest(_a, []);
|
|
2423
2607
|
return /* @__PURE__ */ jsx22(ContextMenuPrimitive.Root, __spreadValues({ "data-slot": "context-menu" }, props));
|
|
@@ -2457,7 +2641,7 @@ function ContextMenuSubTrigger(_a) {
|
|
|
2457
2641
|
"inset",
|
|
2458
2642
|
"children"
|
|
2459
2643
|
]);
|
|
2460
|
-
return /* @__PURE__ */
|
|
2644
|
+
return /* @__PURE__ */ jsxs12(
|
|
2461
2645
|
ContextMenuPrimitive.SubTrigger,
|
|
2462
2646
|
__spreadProps(__spreadValues({
|
|
2463
2647
|
"data-slot": "context-menu-sub-trigger",
|
|
@@ -2541,7 +2725,7 @@ function ContextMenuCheckboxItem(_a) {
|
|
|
2541
2725
|
"children",
|
|
2542
2726
|
"checked"
|
|
2543
2727
|
]);
|
|
2544
|
-
return /* @__PURE__ */
|
|
2728
|
+
return /* @__PURE__ */ jsxs12(
|
|
2545
2729
|
ContextMenuPrimitive.CheckboxItem,
|
|
2546
2730
|
__spreadProps(__spreadValues({
|
|
2547
2731
|
"data-slot": "context-menu-checkbox-item",
|
|
@@ -2566,7 +2750,7 @@ function ContextMenuRadioItem(_a) {
|
|
|
2566
2750
|
"className",
|
|
2567
2751
|
"children"
|
|
2568
2752
|
]);
|
|
2569
|
-
return /* @__PURE__ */
|
|
2753
|
+
return /* @__PURE__ */ jsxs12(
|
|
2570
2754
|
ContextMenuPrimitive.RadioItem,
|
|
2571
2755
|
__spreadProps(__spreadValues({
|
|
2572
2756
|
"data-slot": "context-menu-radio-item",
|
|
@@ -2648,7 +2832,7 @@ var useDirection = Direction.useDirection;
|
|
|
2648
2832
|
|
|
2649
2833
|
// components/ui/drawer.tsx
|
|
2650
2834
|
import { Drawer as DrawerPrimitive } from "vaul";
|
|
2651
|
-
import { jsx as jsx24, jsxs as
|
|
2835
|
+
import { jsx as jsx24, jsxs as jsxs13 } from "react/jsx-runtime";
|
|
2652
2836
|
function Drawer(_a) {
|
|
2653
2837
|
var props = __objRest(_a, []);
|
|
2654
2838
|
return /* @__PURE__ */ jsx24(DrawerPrimitive.Root, __spreadValues({ "data-slot": "drawer" }, props));
|
|
@@ -2690,9 +2874,9 @@ function DrawerContent(_a) {
|
|
|
2690
2874
|
"className",
|
|
2691
2875
|
"children"
|
|
2692
2876
|
]);
|
|
2693
|
-
return /* @__PURE__ */
|
|
2877
|
+
return /* @__PURE__ */ jsxs13(DrawerPortal, { "data-slot": "drawer-portal", children: [
|
|
2694
2878
|
/* @__PURE__ */ jsx24(DrawerOverlay, {}),
|
|
2695
|
-
/* @__PURE__ */
|
|
2879
|
+
/* @__PURE__ */ jsxs13(
|
|
2696
2880
|
DrawerPrimitive.Content,
|
|
2697
2881
|
__spreadProps(__spreadValues({
|
|
2698
2882
|
"data-slot": "drawer-content",
|
|
@@ -2768,7 +2952,7 @@ function DrawerDescription(_a) {
|
|
|
2768
2952
|
// components/ui/dropdown-menu.tsx
|
|
2769
2953
|
import { CheckIcon as CheckIcon4, ChevronRightIcon as ChevronRightIcon3, CircleIcon as CircleIcon2 } from "lucide-react";
|
|
2770
2954
|
import { DropdownMenu as DropdownMenuPrimitive } from "radix-ui";
|
|
2771
|
-
import { jsx as jsx25, jsxs as
|
|
2955
|
+
import { jsx as jsx25, jsxs as jsxs14 } from "react/jsx-runtime";
|
|
2772
2956
|
function DropdownMenu(_a) {
|
|
2773
2957
|
var props = __objRest(_a, []);
|
|
2774
2958
|
return /* @__PURE__ */ jsx25(DropdownMenuPrimitive.Root, __spreadValues({ "data-slot": "dropdown-menu" }, props));
|
|
@@ -2843,7 +3027,7 @@ function DropdownMenuCheckboxItem(_a) {
|
|
|
2843
3027
|
"children",
|
|
2844
3028
|
"checked"
|
|
2845
3029
|
]);
|
|
2846
|
-
return /* @__PURE__ */
|
|
3030
|
+
return /* @__PURE__ */ jsxs14(
|
|
2847
3031
|
DropdownMenuPrimitive.CheckboxItem,
|
|
2848
3032
|
__spreadProps(__spreadValues({
|
|
2849
3033
|
"data-slot": "dropdown-menu-checkbox-item",
|
|
@@ -2877,7 +3061,7 @@ function DropdownMenuRadioItem(_a) {
|
|
|
2877
3061
|
"className",
|
|
2878
3062
|
"children"
|
|
2879
3063
|
]);
|
|
2880
|
-
return /* @__PURE__ */
|
|
3064
|
+
return /* @__PURE__ */ jsxs14(
|
|
2881
3065
|
DropdownMenuPrimitive.RadioItem,
|
|
2882
3066
|
__spreadProps(__spreadValues({
|
|
2883
3067
|
"data-slot": "dropdown-menu-radio-item",
|
|
@@ -2958,7 +3142,7 @@ function DropdownMenuSubTrigger(_a) {
|
|
|
2958
3142
|
"inset",
|
|
2959
3143
|
"children"
|
|
2960
3144
|
]);
|
|
2961
|
-
return /* @__PURE__ */
|
|
3145
|
+
return /* @__PURE__ */ jsxs14(
|
|
2962
3146
|
DropdownMenuPrimitive.SubTrigger,
|
|
2963
3147
|
__spreadProps(__spreadValues({
|
|
2964
3148
|
"data-slot": "dropdown-menu-sub-trigger",
|
|
@@ -3143,7 +3327,7 @@ function Separator(_a) {
|
|
|
3143
3327
|
}
|
|
3144
3328
|
|
|
3145
3329
|
// components/ui/field.tsx
|
|
3146
|
-
import { jsx as jsx29, jsxs as
|
|
3330
|
+
import { jsx as jsx29, jsxs as jsxs15 } from "react/jsx-runtime";
|
|
3147
3331
|
function FieldSet(_a) {
|
|
3148
3332
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
3149
3333
|
return /* @__PURE__ */ jsx29(
|
|
@@ -3302,7 +3486,7 @@ function FieldSeparator(_a) {
|
|
|
3302
3486
|
"children",
|
|
3303
3487
|
"className"
|
|
3304
3488
|
]);
|
|
3305
|
-
return /* @__PURE__ */
|
|
3489
|
+
return /* @__PURE__ */ jsxs15(
|
|
3306
3490
|
"div",
|
|
3307
3491
|
__spreadProps(__spreadValues({
|
|
3308
3492
|
"data-slot": "field-separator",
|
|
@@ -3370,7 +3554,7 @@ function FieldError(_a) {
|
|
|
3370
3554
|
}
|
|
3371
3555
|
|
|
3372
3556
|
// components/ui/form.tsx
|
|
3373
|
-
import * as
|
|
3557
|
+
import * as React7 from "react";
|
|
3374
3558
|
import { Slot as Slot4 } from "radix-ui";
|
|
3375
3559
|
import {
|
|
3376
3560
|
Controller,
|
|
@@ -3380,7 +3564,7 @@ import {
|
|
|
3380
3564
|
} from "react-hook-form";
|
|
3381
3565
|
import { jsx as jsx30 } from "react/jsx-runtime";
|
|
3382
3566
|
var Form = FormProvider;
|
|
3383
|
-
var FormFieldContext =
|
|
3567
|
+
var FormFieldContext = React7.createContext(
|
|
3384
3568
|
{}
|
|
3385
3569
|
);
|
|
3386
3570
|
var FormField = (_a) => {
|
|
@@ -3388,8 +3572,8 @@ var FormField = (_a) => {
|
|
|
3388
3572
|
return /* @__PURE__ */ jsx30(FormFieldContext.Provider, { value: { name: props.name }, children: /* @__PURE__ */ jsx30(Controller, __spreadValues({}, props)) });
|
|
3389
3573
|
};
|
|
3390
3574
|
var useFormField = () => {
|
|
3391
|
-
const fieldContext =
|
|
3392
|
-
const itemContext =
|
|
3575
|
+
const fieldContext = React7.useContext(FormFieldContext);
|
|
3576
|
+
const itemContext = React7.useContext(FormItemContext);
|
|
3393
3577
|
const { getFieldState } = useFormContext();
|
|
3394
3578
|
const formState = useFormState({ name: fieldContext.name });
|
|
3395
3579
|
const fieldState = getFieldState(fieldContext.name, formState);
|
|
@@ -3405,12 +3589,12 @@ var useFormField = () => {
|
|
|
3405
3589
|
formMessageId: `${id}-form-item-message`
|
|
3406
3590
|
}, fieldState);
|
|
3407
3591
|
};
|
|
3408
|
-
var FormItemContext =
|
|
3592
|
+
var FormItemContext = React7.createContext(
|
|
3409
3593
|
{}
|
|
3410
3594
|
);
|
|
3411
3595
|
function FormItem(_a) {
|
|
3412
3596
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
3413
|
-
const id =
|
|
3597
|
+
const id = React7.useId();
|
|
3414
3598
|
return /* @__PURE__ */ jsx30(FormItemContext.Provider, { value: { id }, children: /* @__PURE__ */ jsx30(
|
|
3415
3599
|
"div",
|
|
3416
3600
|
__spreadValues({
|
|
@@ -3517,10 +3701,10 @@ function HoverCardContent(_a) {
|
|
|
3517
3701
|
}
|
|
3518
3702
|
|
|
3519
3703
|
// components/ui/input-otp.tsx
|
|
3520
|
-
import * as
|
|
3704
|
+
import * as React8 from "react";
|
|
3521
3705
|
import { OTPInput, OTPInputContext } from "input-otp";
|
|
3522
3706
|
import { MinusIcon } from "lucide-react";
|
|
3523
|
-
import { jsx as jsx32, jsxs as
|
|
3707
|
+
import { jsx as jsx32, jsxs as jsxs16 } from "react/jsx-runtime";
|
|
3524
3708
|
function InputOTP(_a) {
|
|
3525
3709
|
var _b = _a, {
|
|
3526
3710
|
className,
|
|
@@ -3560,9 +3744,9 @@ function InputOTPSlot(_a) {
|
|
|
3560
3744
|
"className"
|
|
3561
3745
|
]);
|
|
3562
3746
|
var _a2;
|
|
3563
|
-
const inputOTPContext =
|
|
3747
|
+
const inputOTPContext = React8.useContext(OTPInputContext);
|
|
3564
3748
|
const { char, hasFakeCaret, isActive } = (_a2 = inputOTPContext == null ? void 0 : inputOTPContext.slots[index]) != null ? _a2 : {};
|
|
3565
|
-
return /* @__PURE__ */
|
|
3749
|
+
return /* @__PURE__ */ jsxs16(
|
|
3566
3750
|
"div",
|
|
3567
3751
|
__spreadProps(__spreadValues({
|
|
3568
3752
|
"data-slot": "input-otp-slot",
|
|
@@ -3837,7 +4021,7 @@ function Link(_a) {
|
|
|
3837
4021
|
// components/ui/menubar.tsx
|
|
3838
4022
|
import { CheckIcon as CheckIcon5, ChevronRightIcon as ChevronRightIcon4, CircleIcon as CircleIcon3 } from "lucide-react";
|
|
3839
4023
|
import { Menubar as MenubarPrimitive } from "radix-ui";
|
|
3840
|
-
import { jsx as jsx36, jsxs as
|
|
4024
|
+
import { jsx as jsx36, jsxs as jsxs17 } from "react/jsx-runtime";
|
|
3841
4025
|
function Menubar(_a) {
|
|
3842
4026
|
var _b = _a, {
|
|
3843
4027
|
className
|
|
@@ -3947,7 +4131,7 @@ function MenubarCheckboxItem(_a) {
|
|
|
3947
4131
|
"children",
|
|
3948
4132
|
"checked"
|
|
3949
4133
|
]);
|
|
3950
|
-
return /* @__PURE__ */
|
|
4134
|
+
return /* @__PURE__ */ jsxs17(
|
|
3951
4135
|
MenubarPrimitive.CheckboxItem,
|
|
3952
4136
|
__spreadProps(__spreadValues({
|
|
3953
4137
|
"data-slot": "menubar-checkbox-item",
|
|
@@ -3972,7 +4156,7 @@ function MenubarRadioItem(_a) {
|
|
|
3972
4156
|
"className",
|
|
3973
4157
|
"children"
|
|
3974
4158
|
]);
|
|
3975
|
-
return /* @__PURE__ */
|
|
4159
|
+
return /* @__PURE__ */ jsxs17(
|
|
3976
4160
|
MenubarPrimitive.RadioItem,
|
|
3977
4161
|
__spreadProps(__spreadValues({
|
|
3978
4162
|
"data-slot": "menubar-radio-item",
|
|
@@ -4053,7 +4237,7 @@ function MenubarSubTrigger(_a) {
|
|
|
4053
4237
|
"inset",
|
|
4054
4238
|
"children"
|
|
4055
4239
|
]);
|
|
4056
|
-
return /* @__PURE__ */
|
|
4240
|
+
return /* @__PURE__ */ jsxs17(
|
|
4057
4241
|
MenubarPrimitive.SubTrigger,
|
|
4058
4242
|
__spreadProps(__spreadValues({
|
|
4059
4243
|
"data-slot": "menubar-sub-trigger",
|
|
@@ -4090,7 +4274,7 @@ function MenubarSubContent(_a) {
|
|
|
4090
4274
|
|
|
4091
4275
|
// components/ui/native-select.tsx
|
|
4092
4276
|
import { ChevronDownIcon as ChevronDownIcon4 } from "lucide-react";
|
|
4093
|
-
import { jsx as jsx37, jsxs as
|
|
4277
|
+
import { jsx as jsx37, jsxs as jsxs18 } from "react/jsx-runtime";
|
|
4094
4278
|
function NativeSelect(_a) {
|
|
4095
4279
|
var _b = _a, {
|
|
4096
4280
|
className,
|
|
@@ -4099,7 +4283,7 @@ function NativeSelect(_a) {
|
|
|
4099
4283
|
"className",
|
|
4100
4284
|
"size"
|
|
4101
4285
|
]);
|
|
4102
|
-
return /* @__PURE__ */
|
|
4286
|
+
return /* @__PURE__ */ jsxs18(
|
|
4103
4287
|
"div",
|
|
4104
4288
|
{
|
|
4105
4289
|
className: "group/native-select relative w-fit has-[select:disabled]:opacity-50",
|
|
@@ -4197,7 +4381,7 @@ function NavigationButton(_a) {
|
|
|
4197
4381
|
import { cva as cva11 } from "class-variance-authority";
|
|
4198
4382
|
import { ChevronDownIcon as ChevronDownIcon5 } from "lucide-react";
|
|
4199
4383
|
import { NavigationMenu as NavigationMenuPrimitive } from "radix-ui";
|
|
4200
|
-
import { jsx as jsx39, jsxs as
|
|
4384
|
+
import { jsx as jsx39, jsxs as jsxs19 } from "react/jsx-runtime";
|
|
4201
4385
|
function NavigationMenu(_a) {
|
|
4202
4386
|
var _b = _a, {
|
|
4203
4387
|
className,
|
|
@@ -4208,7 +4392,7 @@ function NavigationMenu(_a) {
|
|
|
4208
4392
|
"children",
|
|
4209
4393
|
"viewport"
|
|
4210
4394
|
]);
|
|
4211
|
-
return /* @__PURE__ */
|
|
4395
|
+
return /* @__PURE__ */ jsxs19(
|
|
4212
4396
|
NavigationMenuPrimitive.Root,
|
|
4213
4397
|
__spreadProps(__spreadValues({
|
|
4214
4398
|
"data-slot": "navigation-menu",
|
|
@@ -4267,7 +4451,7 @@ function NavigationMenuTrigger(_a) {
|
|
|
4267
4451
|
"className",
|
|
4268
4452
|
"children"
|
|
4269
4453
|
]);
|
|
4270
|
-
return /* @__PURE__ */
|
|
4454
|
+
return /* @__PURE__ */ jsxs19(
|
|
4271
4455
|
NavigationMenuPrimitive.Trigger,
|
|
4272
4456
|
__spreadProps(__spreadValues({
|
|
4273
4457
|
"data-slot": "navigation-menu-trigger",
|
|
@@ -4373,7 +4557,7 @@ import {
|
|
|
4373
4557
|
ChevronRightIcon as ChevronRightIcon5,
|
|
4374
4558
|
MoreHorizontalIcon
|
|
4375
4559
|
} from "lucide-react";
|
|
4376
|
-
import { jsx as jsx40, jsxs as
|
|
4560
|
+
import { jsx as jsx40, jsxs as jsxs20 } from "react/jsx-runtime";
|
|
4377
4561
|
function Pagination(_a) {
|
|
4378
4562
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
4379
4563
|
return /* @__PURE__ */ jsx40(
|
|
@@ -4450,7 +4634,7 @@ function PaginationEllipsis(_a) {
|
|
|
4450
4634
|
} = _b, props = __objRest(_b, [
|
|
4451
4635
|
"className"
|
|
4452
4636
|
]);
|
|
4453
|
-
return /* @__PURE__ */
|
|
4637
|
+
return /* @__PURE__ */ jsxs20(
|
|
4454
4638
|
"span",
|
|
4455
4639
|
__spreadProps(__spreadValues({
|
|
4456
4640
|
"aria-hidden": true,
|
|
@@ -4664,7 +4848,7 @@ function ResizableHandle(_a) {
|
|
|
4664
4848
|
|
|
4665
4849
|
// components/ui/scroll-area.tsx
|
|
4666
4850
|
import { ScrollArea as ScrollAreaPrimitive } from "radix-ui";
|
|
4667
|
-
import { jsx as jsx45, jsxs as
|
|
4851
|
+
import { jsx as jsx45, jsxs as jsxs21 } from "react/jsx-runtime";
|
|
4668
4852
|
function ScrollArea(_a) {
|
|
4669
4853
|
var _b = _a, {
|
|
4670
4854
|
className,
|
|
@@ -4673,7 +4857,7 @@ function ScrollArea(_a) {
|
|
|
4673
4857
|
"className",
|
|
4674
4858
|
"children"
|
|
4675
4859
|
]);
|
|
4676
|
-
return /* @__PURE__ */
|
|
4860
|
+
return /* @__PURE__ */ jsxs21(
|
|
4677
4861
|
ScrollAreaPrimitive.Root,
|
|
4678
4862
|
__spreadProps(__spreadValues({
|
|
4679
4863
|
"data-slot": "scroll-area",
|
|
@@ -4728,7 +4912,7 @@ function ScrollBar(_a) {
|
|
|
4728
4912
|
// components/ui/select.tsx
|
|
4729
4913
|
import { CheckIcon as CheckIcon6, ChevronDownIcon as ChevronDownIcon6, ChevronUpIcon } from "lucide-react";
|
|
4730
4914
|
import { Select as SelectPrimitive } from "radix-ui";
|
|
4731
|
-
import { jsx as jsx46, jsxs as
|
|
4915
|
+
import { jsx as jsx46, jsxs as jsxs22 } from "react/jsx-runtime";
|
|
4732
4916
|
function Select(_a) {
|
|
4733
4917
|
var props = __objRest(_a, []);
|
|
4734
4918
|
return /* @__PURE__ */ jsx46(SelectPrimitive.Root, __spreadValues({ "data-slot": "select" }, props));
|
|
@@ -4753,7 +4937,7 @@ function SelectTrigger(_a) {
|
|
|
4753
4937
|
"readOnly",
|
|
4754
4938
|
"children"
|
|
4755
4939
|
]);
|
|
4756
|
-
return /* @__PURE__ */
|
|
4940
|
+
return /* @__PURE__ */ jsxs22(
|
|
4757
4941
|
SelectPrimitive.Trigger,
|
|
4758
4942
|
__spreadProps(__spreadValues({
|
|
4759
4943
|
"data-slot": "select-trigger",
|
|
@@ -4784,7 +4968,7 @@ function SelectContent(_a) {
|
|
|
4784
4968
|
"position",
|
|
4785
4969
|
"align"
|
|
4786
4970
|
]);
|
|
4787
|
-
return /* @__PURE__ */ jsx46(SelectPrimitive.Portal, { children: /* @__PURE__ */
|
|
4971
|
+
return /* @__PURE__ */ jsx46(SelectPrimitive.Portal, { children: /* @__PURE__ */ jsxs22(
|
|
4788
4972
|
SelectPrimitive.Content,
|
|
4789
4973
|
__spreadProps(__spreadValues({
|
|
4790
4974
|
"data-slot": "select-content",
|
|
@@ -4835,7 +5019,7 @@ function SelectItem(_a) {
|
|
|
4835
5019
|
"className",
|
|
4836
5020
|
"children"
|
|
4837
5021
|
]);
|
|
4838
|
-
return /* @__PURE__ */
|
|
5022
|
+
return /* @__PURE__ */ jsxs22(
|
|
4839
5023
|
SelectPrimitive.Item,
|
|
4840
5024
|
__spreadProps(__spreadValues({
|
|
4841
5025
|
"data-slot": "select-item",
|
|
@@ -4914,7 +5098,7 @@ function SelectScrollDownButton(_a) {
|
|
|
4914
5098
|
// components/ui/sheet.tsx
|
|
4915
5099
|
import { XIcon as XIcon3 } from "lucide-react";
|
|
4916
5100
|
import { Dialog as SheetPrimitive } from "radix-ui";
|
|
4917
|
-
import { jsx as jsx47, jsxs as
|
|
5101
|
+
import { jsx as jsx47, jsxs as jsxs23 } from "react/jsx-runtime";
|
|
4918
5102
|
function Sheet(_a) {
|
|
4919
5103
|
var props = __objRest(_a, []);
|
|
4920
5104
|
return /* @__PURE__ */ jsx47(SheetPrimitive.Root, __spreadValues({ "data-slot": "sheet" }, props));
|
|
@@ -4960,9 +5144,9 @@ function SheetContent(_a) {
|
|
|
4960
5144
|
"side",
|
|
4961
5145
|
"showCloseButton"
|
|
4962
5146
|
]);
|
|
4963
|
-
return /* @__PURE__ */
|
|
5147
|
+
return /* @__PURE__ */ jsxs23(SheetPortal, { children: [
|
|
4964
5148
|
/* @__PURE__ */ jsx47(SheetOverlay, {}),
|
|
4965
|
-
/* @__PURE__ */
|
|
5149
|
+
/* @__PURE__ */ jsxs23(
|
|
4966
5150
|
SheetPrimitive.Content,
|
|
4967
5151
|
__spreadProps(__spreadValues({
|
|
4968
5152
|
"data-slot": "sheet-content",
|
|
@@ -4977,7 +5161,7 @@ function SheetContent(_a) {
|
|
|
4977
5161
|
}, props), {
|
|
4978
5162
|
children: [
|
|
4979
5163
|
children,
|
|
4980
|
-
showCloseButton && /* @__PURE__ */
|
|
5164
|
+
showCloseButton && /* @__PURE__ */ jsxs23(SheetPrimitive.Close, { className: "absolute top-4 right-4 rounded-xs opacity-70 ring-offset-prominent transition-opacity hover:opacity-100 focus:ring-2 focus:ring-ring focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none data-[state=open]:bg-secondary", children: [
|
|
4981
5165
|
/* @__PURE__ */ jsx47(XIcon3, { className: "size-4" }),
|
|
4982
5166
|
/* @__PURE__ */ jsx47("span", { className: "sr-only", children: "Close" })
|
|
4983
5167
|
] })
|
|
@@ -5036,17 +5220,17 @@ function SheetDescription(_a) {
|
|
|
5036
5220
|
}
|
|
5037
5221
|
|
|
5038
5222
|
// components/ui/sidebar.tsx
|
|
5039
|
-
import * as
|
|
5223
|
+
import * as React11 from "react";
|
|
5040
5224
|
import { cva as cva12 } from "class-variance-authority";
|
|
5041
5225
|
import { PanelLeftIcon } from "lucide-react";
|
|
5042
5226
|
import { Slot as Slot8 } from "radix-ui";
|
|
5043
5227
|
|
|
5044
5228
|
// hooks/use-mobile.ts
|
|
5045
|
-
import * as
|
|
5229
|
+
import * as React9 from "react";
|
|
5046
5230
|
var MOBILE_BREAKPOINT = 768;
|
|
5047
5231
|
function useIsMobile() {
|
|
5048
|
-
const [isMobile, setIsMobile] =
|
|
5049
|
-
|
|
5232
|
+
const [isMobile, setIsMobile] = React9.useState(void 0);
|
|
5233
|
+
React9.useEffect(() => {
|
|
5050
5234
|
const mql = window.matchMedia(`(max-width: ${MOBILE_BREAKPOINT - 1}px)`);
|
|
5051
5235
|
const onChange = () => {
|
|
5052
5236
|
setIsMobile(window.innerWidth < MOBILE_BREAKPOINT);
|
|
@@ -5072,10 +5256,10 @@ function Skeleton(_a) {
|
|
|
5072
5256
|
}
|
|
5073
5257
|
|
|
5074
5258
|
// components/ui/tooltip.tsx
|
|
5075
|
-
import * as
|
|
5259
|
+
import * as React10 from "react";
|
|
5076
5260
|
import { Tooltip as TooltipPrimitive } from "radix-ui";
|
|
5077
|
-
import { jsx as jsx49, jsxs as
|
|
5078
|
-
var TooltipModeContext =
|
|
5261
|
+
import { jsx as jsx49, jsxs as jsxs24 } from "react/jsx-runtime";
|
|
5262
|
+
var TooltipModeContext = React10.createContext("tooltip");
|
|
5079
5263
|
function TooltipProvider(_a) {
|
|
5080
5264
|
var _b = _a, {
|
|
5081
5265
|
delayDuration = 0
|
|
@@ -5109,7 +5293,7 @@ function TooltipTrigger(_a) {
|
|
|
5109
5293
|
} = _b, props = __objRest(_b, [
|
|
5110
5294
|
"children"
|
|
5111
5295
|
]);
|
|
5112
|
-
const mode =
|
|
5296
|
+
const mode = React10.useContext(TooltipModeContext);
|
|
5113
5297
|
if (mode === "drawer") {
|
|
5114
5298
|
return /* @__PURE__ */ jsx49(DrawerTrigger, __spreadProps(__spreadValues({ "data-slot": "tooltip-trigger" }, props), { children }));
|
|
5115
5299
|
}
|
|
@@ -5131,9 +5315,9 @@ function TooltipContent(_a) {
|
|
|
5131
5315
|
"closeLabel",
|
|
5132
5316
|
"children"
|
|
5133
5317
|
]);
|
|
5134
|
-
const mode =
|
|
5318
|
+
const mode = React10.useContext(TooltipModeContext);
|
|
5135
5319
|
if (mode === "drawer") {
|
|
5136
|
-
return /* @__PURE__ */
|
|
5320
|
+
return /* @__PURE__ */ jsxs24(DrawerContent, { "data-slot": "tooltip-content", "data-variant": variant, children: [
|
|
5137
5321
|
/* @__PURE__ */ jsx49(DrawerHeader, { children: /* @__PURE__ */ jsx49(DrawerTitle, { children: title }) }),
|
|
5138
5322
|
/* @__PURE__ */ jsx49("div", { className: cn("p-4 text-sm text-on-subtle", className), children }),
|
|
5139
5323
|
/* @__PURE__ */ jsx49(DrawerFooter, { children: /* @__PURE__ */ jsx49(DrawerClose, { asChild: true, children: /* @__PURE__ */ jsx49(Button, { variant: "primary", size: "md", children: closeLabel }) }) })
|
|
@@ -5141,7 +5325,7 @@ function TooltipContent(_a) {
|
|
|
5141
5325
|
}
|
|
5142
5326
|
const surfaceClasses = variant === "inverse" ? "bg-prominent text-on-prominent shadow-sm" : "bg-primary text-on-primary";
|
|
5143
5327
|
const arrowClasses = variant === "inverse" ? "fill-prominent" : "fill-primary";
|
|
5144
|
-
return /* @__PURE__ */ jsx49(TooltipPrimitive.Portal, { children: /* @__PURE__ */
|
|
5328
|
+
return /* @__PURE__ */ jsx49(TooltipPrimitive.Portal, { children: /* @__PURE__ */ jsxs24(
|
|
5145
5329
|
TooltipPrimitive.Content,
|
|
5146
5330
|
__spreadProps(__spreadValues({
|
|
5147
5331
|
"data-slot": "tooltip-content",
|
|
@@ -5162,16 +5346,16 @@ function TooltipContent(_a) {
|
|
|
5162
5346
|
}
|
|
5163
5347
|
|
|
5164
5348
|
// components/ui/sidebar.tsx
|
|
5165
|
-
import { jsx as jsx50, jsxs as
|
|
5349
|
+
import { jsx as jsx50, jsxs as jsxs25 } from "react/jsx-runtime";
|
|
5166
5350
|
var SIDEBAR_COOKIE_NAME = "sidebar_state";
|
|
5167
5351
|
var SIDEBAR_COOKIE_MAX_AGE = 60 * 60 * 24 * 7;
|
|
5168
5352
|
var SIDEBAR_WIDTH = "16rem";
|
|
5169
5353
|
var SIDEBAR_WIDTH_MOBILE = "18rem";
|
|
5170
5354
|
var SIDEBAR_WIDTH_ICON = "3rem";
|
|
5171
5355
|
var SIDEBAR_KEYBOARD_SHORTCUT = "b";
|
|
5172
|
-
var SidebarContext =
|
|
5356
|
+
var SidebarContext = React11.createContext(null);
|
|
5173
5357
|
function useSidebar() {
|
|
5174
|
-
const context =
|
|
5358
|
+
const context = React11.useContext(SidebarContext);
|
|
5175
5359
|
if (!context) {
|
|
5176
5360
|
throw new Error("useSidebar must be used within a SidebarProvider.");
|
|
5177
5361
|
}
|
|
@@ -5194,10 +5378,10 @@ function SidebarProvider(_a) {
|
|
|
5194
5378
|
"children"
|
|
5195
5379
|
]);
|
|
5196
5380
|
const isMobile = useIsMobile();
|
|
5197
|
-
const [openMobile, setOpenMobile] =
|
|
5198
|
-
const [_open, _setOpen] =
|
|
5381
|
+
const [openMobile, setOpenMobile] = React11.useState(false);
|
|
5382
|
+
const [_open, _setOpen] = React11.useState(defaultOpen);
|
|
5199
5383
|
const open = openProp != null ? openProp : _open;
|
|
5200
|
-
const setOpen =
|
|
5384
|
+
const setOpen = React11.useCallback(
|
|
5201
5385
|
(value) => {
|
|
5202
5386
|
const openState = typeof value === "function" ? value(open) : value;
|
|
5203
5387
|
if (setOpenProp) {
|
|
@@ -5209,10 +5393,10 @@ function SidebarProvider(_a) {
|
|
|
5209
5393
|
},
|
|
5210
5394
|
[setOpenProp, open]
|
|
5211
5395
|
);
|
|
5212
|
-
const toggleSidebar =
|
|
5396
|
+
const toggleSidebar = React11.useCallback(() => {
|
|
5213
5397
|
return isMobile ? setOpenMobile((open2) => !open2) : setOpen((open2) => !open2);
|
|
5214
5398
|
}, [isMobile, setOpen, setOpenMobile]);
|
|
5215
|
-
|
|
5399
|
+
React11.useEffect(() => {
|
|
5216
5400
|
const handleKeyDown = (event) => {
|
|
5217
5401
|
if (event.key === SIDEBAR_KEYBOARD_SHORTCUT && (event.metaKey || event.ctrlKey)) {
|
|
5218
5402
|
event.preventDefault();
|
|
@@ -5223,7 +5407,7 @@ function SidebarProvider(_a) {
|
|
|
5223
5407
|
return () => window.removeEventListener("keydown", handleKeyDown);
|
|
5224
5408
|
}, [toggleSidebar]);
|
|
5225
5409
|
const state = open ? "expanded" : "collapsed";
|
|
5226
|
-
const contextValue =
|
|
5410
|
+
const contextValue = React11.useMemo(
|
|
5227
5411
|
() => ({
|
|
5228
5412
|
state,
|
|
5229
5413
|
open,
|
|
@@ -5282,7 +5466,7 @@ function Sidebar(_a) {
|
|
|
5282
5466
|
);
|
|
5283
5467
|
}
|
|
5284
5468
|
if (isMobile) {
|
|
5285
|
-
return /* @__PURE__ */ jsx50(Sheet, __spreadProps(__spreadValues({ open: openMobile, onOpenChange: setOpenMobile }, props), { children: /* @__PURE__ */
|
|
5469
|
+
return /* @__PURE__ */ jsx50(Sheet, __spreadProps(__spreadValues({ open: openMobile, onOpenChange: setOpenMobile }, props), { children: /* @__PURE__ */ jsxs25(
|
|
5286
5470
|
SheetContent,
|
|
5287
5471
|
{
|
|
5288
5472
|
"data-sidebar": "sidebar",
|
|
@@ -5294,7 +5478,7 @@ function Sidebar(_a) {
|
|
|
5294
5478
|
},
|
|
5295
5479
|
side,
|
|
5296
5480
|
children: [
|
|
5297
|
-
/* @__PURE__ */
|
|
5481
|
+
/* @__PURE__ */ jsxs25(SheetHeader, { className: "sr-only", children: [
|
|
5298
5482
|
/* @__PURE__ */ jsx50(SheetTitle, { children: "Sidebar" }),
|
|
5299
5483
|
/* @__PURE__ */ jsx50(SheetDescription, { children: "Displays the mobile sidebar." })
|
|
5300
5484
|
] }),
|
|
@@ -5303,7 +5487,7 @@ function Sidebar(_a) {
|
|
|
5303
5487
|
}
|
|
5304
5488
|
) }));
|
|
5305
5489
|
}
|
|
5306
|
-
return /* @__PURE__ */
|
|
5490
|
+
return /* @__PURE__ */ jsxs25(
|
|
5307
5491
|
"div",
|
|
5308
5492
|
{
|
|
5309
5493
|
className: "group peer hidden text-sidebar-foreground md:block",
|
|
@@ -5361,7 +5545,7 @@ function SidebarTrigger(_a) {
|
|
|
5361
5545
|
"onClick"
|
|
5362
5546
|
]);
|
|
5363
5547
|
const { toggleSidebar } = useSidebar();
|
|
5364
|
-
return /* @__PURE__ */
|
|
5548
|
+
return /* @__PURE__ */ jsxs25(
|
|
5365
5549
|
Button,
|
|
5366
5550
|
__spreadProps(__spreadValues({
|
|
5367
5551
|
"data-sidebar": "trigger",
|
|
@@ -5635,7 +5819,7 @@ function SidebarMenuButton(_a) {
|
|
|
5635
5819
|
children: tooltip
|
|
5636
5820
|
};
|
|
5637
5821
|
}
|
|
5638
|
-
return /* @__PURE__ */
|
|
5822
|
+
return /* @__PURE__ */ jsxs25(Tooltip2, { children: [
|
|
5639
5823
|
/* @__PURE__ */ jsx50(TooltipTrigger, { asChild: true, children: button }),
|
|
5640
5824
|
/* @__PURE__ */ jsx50(
|
|
5641
5825
|
TooltipContent,
|
|
@@ -5709,7 +5893,7 @@ function SidebarMenuSkeleton(_a) {
|
|
|
5709
5893
|
"showIcon"
|
|
5710
5894
|
]);
|
|
5711
5895
|
const width = "70%";
|
|
5712
|
-
return /* @__PURE__ */
|
|
5896
|
+
return /* @__PURE__ */ jsxs25(
|
|
5713
5897
|
"div",
|
|
5714
5898
|
__spreadProps(__spreadValues({
|
|
5715
5899
|
"data-slot": "sidebar-menu-skeleton",
|
|
@@ -5801,9 +5985,9 @@ function SidebarMenuSubButton(_a) {
|
|
|
5801
5985
|
}
|
|
5802
5986
|
|
|
5803
5987
|
// components/ui/slider.tsx
|
|
5804
|
-
import * as
|
|
5988
|
+
import * as React12 from "react";
|
|
5805
5989
|
import { Slider as SliderPrimitive } from "radix-ui";
|
|
5806
|
-
import { jsx as jsx51, jsxs as
|
|
5990
|
+
import { jsx as jsx51, jsxs as jsxs26 } from "react/jsx-runtime";
|
|
5807
5991
|
function Slider(_a) {
|
|
5808
5992
|
var _b = _a, {
|
|
5809
5993
|
className,
|
|
@@ -5818,11 +6002,11 @@ function Slider(_a) {
|
|
|
5818
6002
|
"min",
|
|
5819
6003
|
"max"
|
|
5820
6004
|
]);
|
|
5821
|
-
const _values =
|
|
6005
|
+
const _values = React12.useMemo(
|
|
5822
6006
|
() => Array.isArray(value) ? value : Array.isArray(defaultValue) ? defaultValue : [min, max],
|
|
5823
6007
|
[value, defaultValue, min, max]
|
|
5824
6008
|
);
|
|
5825
|
-
return /* @__PURE__ */
|
|
6009
|
+
return /* @__PURE__ */ jsxs26(
|
|
5826
6010
|
SliderPrimitive.Root,
|
|
5827
6011
|
__spreadProps(__spreadValues({
|
|
5828
6012
|
"data-slot": "slider",
|
|
@@ -5916,9 +6100,9 @@ var Toaster = (_a) => {
|
|
|
5916
6100
|
};
|
|
5917
6101
|
|
|
5918
6102
|
// components/ui/stepper.tsx
|
|
5919
|
-
import * as
|
|
6103
|
+
import * as React13 from "react";
|
|
5920
6104
|
import { Minus, Plus } from "lucide-react";
|
|
5921
|
-
import { jsx as jsx53, jsxs as
|
|
6105
|
+
import { jsx as jsx53, jsxs as jsxs27 } from "react/jsx-runtime";
|
|
5922
6106
|
function clamp(value, min, max) {
|
|
5923
6107
|
return Math.min(Math.max(value, min), max);
|
|
5924
6108
|
}
|
|
@@ -5952,16 +6136,16 @@ function Stepper({
|
|
|
5952
6136
|
}) {
|
|
5953
6137
|
const { container, buttonSize, iconClass } = stepperSizeConfig[size];
|
|
5954
6138
|
const isControlled = controlledValue !== void 0;
|
|
5955
|
-
const [internalValue, setInternalValue] =
|
|
6139
|
+
const [internalValue, setInternalValue] = React13.useState(
|
|
5956
6140
|
clamp(defaultValue, min, max)
|
|
5957
6141
|
);
|
|
5958
6142
|
const currentValue = isControlled ? controlledValue : internalValue;
|
|
5959
6143
|
const decimalPlaces = getDecimalPlaces(step);
|
|
5960
|
-
const [displayString, setDisplayString] =
|
|
6144
|
+
const [displayString, setDisplayString] = React13.useState(
|
|
5961
6145
|
formatValue(currentValue, decimalPlaces)
|
|
5962
6146
|
);
|
|
5963
|
-
const [isFocused, setIsFocused] =
|
|
5964
|
-
|
|
6147
|
+
const [isFocused, setIsFocused] = React13.useState(false);
|
|
6148
|
+
React13.useEffect(() => {
|
|
5965
6149
|
if (!isFocused) {
|
|
5966
6150
|
setDisplayString(formatValue(currentValue, decimalPlaces));
|
|
5967
6151
|
}
|
|
@@ -6011,7 +6195,7 @@ function Stepper({
|
|
|
6011
6195
|
}
|
|
6012
6196
|
}
|
|
6013
6197
|
}
|
|
6014
|
-
return /* @__PURE__ */
|
|
6198
|
+
return /* @__PURE__ */ jsxs27(
|
|
6015
6199
|
InputGroup,
|
|
6016
6200
|
{
|
|
6017
6201
|
"data-slot": "stepper",
|
|
@@ -6051,7 +6235,7 @@ function Stepper({
|
|
|
6051
6235
|
className: "text-center [appearance:textfield] [&::-webkit-inner-spin-button]:appearance-none [&::-webkit-outer-spin-button]:appearance-none"
|
|
6052
6236
|
}
|
|
6053
6237
|
),
|
|
6054
|
-
/* @__PURE__ */
|
|
6238
|
+
/* @__PURE__ */ jsxs27(InputGroupAddon, { align: "inline-end", children: [
|
|
6055
6239
|
/* @__PURE__ */ jsx53(InputGroupText, { className: "font-normal text-on-subtle", children: "USDT" }),
|
|
6056
6240
|
/* @__PURE__ */ jsx53(
|
|
6057
6241
|
InputGroupButton,
|
|
@@ -6319,8 +6503,8 @@ function TabsContent(_a) {
|
|
|
6319
6503
|
}
|
|
6320
6504
|
|
|
6321
6505
|
// components/ui/ticket-card.tsx
|
|
6322
|
-
import { ArrowRight as ArrowRight2, Info } from "lucide-react";
|
|
6323
|
-
import { Fragment as
|
|
6506
|
+
import { ArrowRight as ArrowRight2, Info as Info2 } from "lucide-react";
|
|
6507
|
+
import { Fragment as Fragment4, jsx as jsx57, jsxs as jsxs28 } from "react/jsx-runtime";
|
|
6324
6508
|
function formatBalanceValue(raw) {
|
|
6325
6509
|
const match = raw.match(/^(\D*)([\d,]+(?:\.\d+)?)(\D*)$/);
|
|
6326
6510
|
if (!match) return raw;
|
|
@@ -6344,14 +6528,14 @@ function TicketCard({
|
|
|
6344
6528
|
stubDisabled = false,
|
|
6345
6529
|
compact = false
|
|
6346
6530
|
}) {
|
|
6347
|
-
return /* @__PURE__ */ jsx57("div", { className: cn("flex w-full flex-col gap-2", className), children: /* @__PURE__ */
|
|
6348
|
-
/* @__PURE__ */
|
|
6531
|
+
return /* @__PURE__ */ jsx57("div", { className: cn("flex w-full flex-col gap-2", className), children: /* @__PURE__ */ jsxs28("div", { className: "relative flex h-20 w-full items-stretch justify-between rounded-sm bg-subtle", children: [
|
|
6532
|
+
/* @__PURE__ */ jsxs28("div", { className: cn("flex flex-1 items-center overflow-hidden", compact ? "gap-2 px-2" : "gap-4 px-4"), children: [
|
|
6349
6533
|
icon && /* @__PURE__ */ jsx57("div", { className: "flex size-10 shrink-0 items-center justify-center rounded-full border-2 border-primary text-primary", children: icon }),
|
|
6350
|
-
/* @__PURE__ */
|
|
6534
|
+
/* @__PURE__ */ jsxs28("div", { className: "flex h-11 flex-col justify-center gap-1 whitespace-nowrap", children: [
|
|
6351
6535
|
/* @__PURE__ */ jsx57("p", { className: "text-xs text-on-subtle", children: label }),
|
|
6352
|
-
/* @__PURE__ */
|
|
6536
|
+
/* @__PURE__ */ jsxs28("p", { className: "leading-none", children: [
|
|
6353
6537
|
/* @__PURE__ */ jsx57("span", { className: "text-[20px] font-bold text-on-prominent", children: formatBalanceValue(value) }),
|
|
6354
|
-
currency && /* @__PURE__ */
|
|
6538
|
+
currency && /* @__PURE__ */ jsxs28(Fragment4, { children: [
|
|
6355
6539
|
" ",
|
|
6356
6540
|
/* @__PURE__ */ jsx57("span", { className: "text-sm text-on-subtle", children: currency })
|
|
6357
6541
|
] })
|
|
@@ -6371,7 +6555,7 @@ function TicketCard({
|
|
|
6371
6555
|
}
|
|
6372
6556
|
}
|
|
6373
6557
|
),
|
|
6374
|
-
/* @__PURE__ */
|
|
6558
|
+
/* @__PURE__ */ jsxs28(
|
|
6375
6559
|
"button",
|
|
6376
6560
|
{
|
|
6377
6561
|
type: "button",
|
|
@@ -6422,30 +6606,30 @@ function CreditTicketCard({
|
|
|
6422
6606
|
badgeInfoCloseLabel,
|
|
6423
6607
|
compact = false
|
|
6424
6608
|
}) {
|
|
6425
|
-
return /* @__PURE__ */ jsx57("div", { className: cn("flex w-full flex-col gap-2", className), children: /* @__PURE__ */
|
|
6609
|
+
return /* @__PURE__ */ jsx57("div", { className: cn("flex w-full flex-col gap-2", className), children: /* @__PURE__ */ jsxs28("div", { className: "relative flex w-full items-stretch justify-between rounded-sm bg-subtle", children: [
|
|
6426
6610
|
(() => {
|
|
6427
6611
|
const badgeText = badgeValue || badgeCurrency ? `${badgeLabel}: ${badgeValue}${badgeCurrency ? ` ${badgeCurrency}` : ""}` : badgeLabel;
|
|
6428
|
-
const creditBadge = /* @__PURE__ */
|
|
6612
|
+
const creditBadge = /* @__PURE__ */ jsxs28(Badge, { variant: "fill-credit", size: "sm", className: "!gap-1 !font-medium !tracking-normal", children: [
|
|
6429
6613
|
badgeIcon,
|
|
6430
6614
|
badgeText,
|
|
6431
|
-
badgeInfo && /* @__PURE__ */ jsx57(TooltipProvider, { children: /* @__PURE__ */
|
|
6615
|
+
badgeInfo && /* @__PURE__ */ jsx57(TooltipProvider, { children: /* @__PURE__ */ jsxs28(Tooltip2, { children: [
|
|
6432
6616
|
/* @__PURE__ */ jsx57(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsx57(
|
|
6433
6617
|
"button",
|
|
6434
6618
|
{
|
|
6435
6619
|
type: "button",
|
|
6436
6620
|
"aria-label": `More info about ${badgeLabel.toLowerCase()}`,
|
|
6437
6621
|
className: "inline-flex shrink-0 items-center justify-center rounded-full text-on-semantic-boost outline-none transition-opacity hover:opacity-70 focus-visible:opacity-70 focus-visible:ring-2 focus-visible:ring-on-semantic-boost/40 cursor-pointer",
|
|
6438
|
-
children: /* @__PURE__ */ jsx57(
|
|
6622
|
+
children: /* @__PURE__ */ jsx57(Info2, { className: "!size-3.5", strokeWidth: 2 })
|
|
6439
6623
|
}
|
|
6440
6624
|
) }),
|
|
6441
6625
|
/* @__PURE__ */ jsx57(TooltipContent, { side: badgeInfoSide, align: badgeInfoAlign, title: badgeInfoTitle, closeLabel: badgeInfoCloseLabel, variant: "inverse", className: "max-w-xs whitespace-normal", children: badgeInfo })
|
|
6442
6626
|
] }) })
|
|
6443
6627
|
] });
|
|
6444
|
-
const labelValue = /* @__PURE__ */
|
|
6628
|
+
const labelValue = /* @__PURE__ */ jsxs28("div", { className: "flex h-11 flex-col justify-center gap-1 whitespace-nowrap", children: [
|
|
6445
6629
|
/* @__PURE__ */ jsx57("p", { className: "text-xs text-on-subtle", children: label }),
|
|
6446
|
-
/* @__PURE__ */
|
|
6630
|
+
/* @__PURE__ */ jsxs28("p", { className: "leading-none", children: [
|
|
6447
6631
|
/* @__PURE__ */ jsx57("span", { className: "text-[20px] font-bold text-on-prominent", children: formatBalanceValue(value) }),
|
|
6448
|
-
currency && /* @__PURE__ */
|
|
6632
|
+
currency && /* @__PURE__ */ jsxs28(Fragment4, { children: [
|
|
6449
6633
|
" ",
|
|
6450
6634
|
/* @__PURE__ */ jsx57("span", { className: "text-sm text-on-subtle", children: currency })
|
|
6451
6635
|
] })
|
|
@@ -6458,20 +6642,20 @@ function CreditTicketCard({
|
|
|
6458
6642
|
"flex flex-1 overflow-hidden",
|
|
6459
6643
|
compact ? "flex-col gap-2 px-2 py-4" : "items-center gap-4 px-4 py-4"
|
|
6460
6644
|
),
|
|
6461
|
-
children: compact ? /* @__PURE__ */
|
|
6462
|
-
/* @__PURE__ */
|
|
6645
|
+
children: compact ? /* @__PURE__ */ jsxs28("div", { className: "flex flex-1 flex-col gap-2", children: [
|
|
6646
|
+
/* @__PURE__ */ jsxs28("div", { className: "flex items-center gap-2", children: [
|
|
6463
6647
|
icon && /* @__PURE__ */ jsx57("div", { className: "flex size-10 shrink-0 items-center justify-center rounded-full border-2 border-primary text-primary", children: icon }),
|
|
6464
6648
|
labelValue
|
|
6465
6649
|
] }),
|
|
6466
6650
|
/* @__PURE__ */ jsx57("div", { className: "flex", children: icon ? /* @__PURE__ */ jsx57("div", { className: "flex w-10 shrink-0 justify-start", children: /* @__PURE__ */ jsx57("div", { className: "w-max", children: creditBadge }) }) : creditBadge })
|
|
6467
|
-
] }) : /* @__PURE__ */
|
|
6651
|
+
] }) : /* @__PURE__ */ jsxs28(Fragment4, { children: [
|
|
6468
6652
|
icon && /* @__PURE__ */ jsx57("div", { className: "flex size-10 shrink-0 items-center justify-center rounded-full border-2 border-primary text-primary", children: icon }),
|
|
6469
|
-
/* @__PURE__ */
|
|
6653
|
+
/* @__PURE__ */ jsxs28("div", { className: "flex flex-col gap-1 whitespace-nowrap", children: [
|
|
6470
6654
|
/* @__PURE__ */ jsx57("p", { className: "text-xs text-on-subtle", children: label }),
|
|
6471
|
-
/* @__PURE__ */
|
|
6472
|
-
/* @__PURE__ */
|
|
6655
|
+
/* @__PURE__ */ jsxs28("div", { className: "flex items-center gap-4", children: [
|
|
6656
|
+
/* @__PURE__ */ jsxs28("p", { className: "leading-none", children: [
|
|
6473
6657
|
/* @__PURE__ */ jsx57("span", { className: "text-[20px] font-bold text-on-prominent", children: formatBalanceValue(value) }),
|
|
6474
|
-
currency && /* @__PURE__ */
|
|
6658
|
+
currency && /* @__PURE__ */ jsxs28(Fragment4, { children: [
|
|
6475
6659
|
" ",
|
|
6476
6660
|
/* @__PURE__ */ jsx57("span", { className: "text-sm text-on-subtle", children: currency })
|
|
6477
6661
|
] })
|
|
@@ -6496,7 +6680,7 @@ function CreditTicketCard({
|
|
|
6496
6680
|
}
|
|
6497
6681
|
}
|
|
6498
6682
|
),
|
|
6499
|
-
/* @__PURE__ */
|
|
6683
|
+
/* @__PURE__ */ jsxs28(
|
|
6500
6684
|
"button",
|
|
6501
6685
|
{
|
|
6502
6686
|
type: "button",
|
|
@@ -6573,10 +6757,10 @@ function Toggle(_a) {
|
|
|
6573
6757
|
}
|
|
6574
6758
|
|
|
6575
6759
|
// components/ui/toggle-group.tsx
|
|
6576
|
-
import * as
|
|
6760
|
+
import * as React14 from "react";
|
|
6577
6761
|
import { ToggleGroup as ToggleGroupPrimitive } from "radix-ui";
|
|
6578
6762
|
import { jsx as jsx59 } from "react/jsx-runtime";
|
|
6579
|
-
var ToggleGroupContext =
|
|
6763
|
+
var ToggleGroupContext = React14.createContext({
|
|
6580
6764
|
size: "default",
|
|
6581
6765
|
variant: "default",
|
|
6582
6766
|
spacing: 0
|
|
@@ -6624,7 +6808,7 @@ function ToggleGroupItem(_a) {
|
|
|
6624
6808
|
"variant",
|
|
6625
6809
|
"size"
|
|
6626
6810
|
]);
|
|
6627
|
-
const context =
|
|
6811
|
+
const context = React14.useContext(ToggleGroupContext);
|
|
6628
6812
|
return /* @__PURE__ */ jsx59(
|
|
6629
6813
|
ToggleGroupPrimitive.Item,
|
|
6630
6814
|
__spreadProps(__spreadValues({
|
|
@@ -6648,7 +6832,7 @@ function ToggleGroupItem(_a) {
|
|
|
6648
6832
|
}
|
|
6649
6833
|
|
|
6650
6834
|
// components/blocks/result-block.tsx
|
|
6651
|
-
import { Fragment as
|
|
6835
|
+
import { Fragment as Fragment5, jsx as jsx60, jsxs as jsxs29 } from "react/jsx-runtime";
|
|
6652
6836
|
var THUMBS_UP_DATA_URL = "data:image/webp;base64,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";
|
|
6653
6837
|
var THUMBS_DOWN_DATA_URL = "data:image/webp;base64,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";
|
|
6654
6838
|
function ResultBlock({
|
|
@@ -6665,8 +6849,8 @@ function ResultBlock({
|
|
|
6665
6849
|
const signedAmount = isWin ? `+${amount}` : `\u2212${amount}`;
|
|
6666
6850
|
const amountColorClass = isWin ? "text-semantic-win" : "text-semantic-loss";
|
|
6667
6851
|
const haloBgClass = isWin ? "bg-semantic-win" : "bg-semantic-loss";
|
|
6668
|
-
return /* @__PURE__ */
|
|
6669
|
-
/* @__PURE__ */
|
|
6852
|
+
return /* @__PURE__ */ jsxs29(Card, { className: "w-80 shrink-0 overflow-hidden rounded-md shadow-sm px-5 py-5 items-center gap-3", children: [
|
|
6853
|
+
/* @__PURE__ */ jsxs29("div", { className: "relative flex items-center justify-center py-2", children: [
|
|
6670
6854
|
/* @__PURE__ */ jsx60(
|
|
6671
6855
|
"span",
|
|
6672
6856
|
{
|
|
@@ -6686,24 +6870,24 @@ function ResultBlock({
|
|
|
6686
6870
|
)
|
|
6687
6871
|
] }),
|
|
6688
6872
|
/* @__PURE__ */ jsx60("p", { className: "text-lg font-semibold text-on-prominent", children: titleText }),
|
|
6689
|
-
/* @__PURE__ */
|
|
6873
|
+
/* @__PURE__ */ jsxs29("p", { className: `flex items-baseline gap-1.5 ${amountColorClass}`, children: [
|
|
6690
6874
|
/* @__PURE__ */ jsx60("span", { className: "font-display text-4xl font-bold tabular-nums tracking-tight", children: signedAmount }),
|
|
6691
6875
|
/* @__PURE__ */ jsx60("span", { className: "text-lg font-semibold", children: currency })
|
|
6692
6876
|
] }),
|
|
6693
|
-
/* @__PURE__ */
|
|
6694
|
-
/* @__PURE__ */
|
|
6877
|
+
/* @__PURE__ */ jsxs29("div", { className: "flex items-center gap-2", children: [
|
|
6878
|
+
/* @__PURE__ */ jsxs29(Badge, { variant: "standard", size: "sm", children: [
|
|
6695
6879
|
contractLabel,
|
|
6696
|
-
pickedDigit !== void 0 && /* @__PURE__ */
|
|
6880
|
+
pickedDigit !== void 0 && /* @__PURE__ */ jsxs29(Fragment5, { children: [
|
|
6697
6881
|
/* @__PURE__ */ jsx60("span", { "aria-hidden": true, className: "h-3 w-px bg-border-prominent/40 mx-1" }),
|
|
6698
6882
|
/* @__PURE__ */ jsx60("span", { className: "tabular-nums", children: pickedDigit })
|
|
6699
6883
|
] })
|
|
6700
6884
|
] }),
|
|
6701
6885
|
/* @__PURE__ */ jsx60(Badge, { variant: "standard", size: "sm", children: duration })
|
|
6702
6886
|
] }),
|
|
6703
|
-
/* @__PURE__ */
|
|
6887
|
+
/* @__PURE__ */ jsxs29("div", { className: "w-full pt-2", children: [
|
|
6704
6888
|
ctaMode === "next-round" && /* @__PURE__ */ jsx60(Button, { className: "w-full", children: "Next round" }),
|
|
6705
6889
|
ctaMode === "go-again" && /* @__PURE__ */ jsx60(Button, { className: "w-full", children: "Go again" }),
|
|
6706
|
-
ctaMode === "conversion" && /* @__PURE__ */
|
|
6890
|
+
ctaMode === "conversion" && /* @__PURE__ */ jsxs29("div", { className: "w-full flex flex-col gap-3", children: [
|
|
6707
6891
|
/* @__PURE__ */ jsx60("p", { className: "text-center text-base font-semibold text-on-prominent", children: "Ready to play for real?" }),
|
|
6708
6892
|
/* @__PURE__ */ jsx60(Button, { className: "w-full", children: "Deposit now" }),
|
|
6709
6893
|
/* @__PURE__ */ jsx60(Button, { variant: "secondary", className: "w-full", children: "Stay in demo" })
|
|
@@ -6717,12 +6901,12 @@ function ResultDialog({
|
|
|
6717
6901
|
primaryLabel,
|
|
6718
6902
|
secondaryLabel
|
|
6719
6903
|
}) {
|
|
6720
|
-
return /* @__PURE__ */
|
|
6721
|
-
/* @__PURE__ */
|
|
6904
|
+
return /* @__PURE__ */ jsxs29(Card, { className: "w-80 shrink-0 overflow-hidden rounded-md shadow-sm px-5 py-6 items-center gap-4", children: [
|
|
6905
|
+
/* @__PURE__ */ jsxs29("div", { className: "flex flex-col items-center gap-2 text-center", children: [
|
|
6722
6906
|
/* @__PURE__ */ jsx60("p", { className: "text-lg font-semibold text-on-prominent", children: title }),
|
|
6723
6907
|
/* @__PURE__ */ jsx60("p", { className: "text-sm text-on-subtle", children: body })
|
|
6724
6908
|
] }),
|
|
6725
|
-
/* @__PURE__ */
|
|
6909
|
+
/* @__PURE__ */ jsxs29("div", { className: "w-full flex flex-col gap-2", children: [
|
|
6726
6910
|
/* @__PURE__ */ jsx60(Button, { className: "w-full", children: primaryLabel }),
|
|
6727
6911
|
/* @__PURE__ */ jsx60(Button, { variant: "secondary", className: "w-full", children: secondaryLabel })
|
|
6728
6912
|
] })
|
|
@@ -6731,7 +6915,7 @@ function ResultDialog({
|
|
|
6731
6915
|
|
|
6732
6916
|
// components/blocks/header-navigation-block.tsx
|
|
6733
6917
|
import { ArrowLeft as ArrowLeft2, History } from "lucide-react";
|
|
6734
|
-
import { jsx as jsx61, jsxs as
|
|
6918
|
+
import { jsx as jsx61, jsxs as jsxs30 } from "react/jsx-runtime";
|
|
6735
6919
|
function HeaderNavigationBlock({
|
|
6736
6920
|
onBack,
|
|
6737
6921
|
badge,
|
|
@@ -6740,14 +6924,14 @@ function HeaderNavigationBlock({
|
|
|
6740
6924
|
actions
|
|
6741
6925
|
}) {
|
|
6742
6926
|
var _a;
|
|
6743
|
-
return /* @__PURE__ */ jsx61("div", { className: "w-full min-w-80 max-w-layout-diagram-small border border-border-subtle rounded-md overflow-hidden bg-prominent", children: /* @__PURE__ */
|
|
6927
|
+
return /* @__PURE__ */ jsx61("div", { className: "w-full min-w-80 max-w-layout-diagram-small border border-border-subtle rounded-md overflow-hidden bg-prominent", children: /* @__PURE__ */ jsxs30("header", { className: "flex items-center gap-2 border-b border-border-subtle bg-prominent px-layout-margin-inline py-3", children: [
|
|
6744
6928
|
onBack && /* @__PURE__ */ jsx61(NavigationButton, { type: "button", size: "md", "aria-label": "Back", onClick: onBack, children: /* @__PURE__ */ jsx61(ArrowLeft2, { className: "size-5" }) }),
|
|
6745
|
-
/* @__PURE__ */
|
|
6929
|
+
/* @__PURE__ */ jsxs30("div", { className: "flex min-w-0 flex-1 items-center justify-center gap-2", children: [
|
|
6746
6930
|
badge && /* @__PURE__ */ jsx61(Badge, { variant: (_a = badge.variant) != null ? _a : "fill-warning", size: "sm", children: badge.label }),
|
|
6747
6931
|
/* @__PURE__ */ jsx61("span", { className: "font-display font-semibold tabular-nums text-on-prominent", children: balance.amount }),
|
|
6748
6932
|
/* @__PURE__ */ jsx61("span", { className: "text-sm text-on-subtle", children: balance.currency })
|
|
6749
6933
|
] }),
|
|
6750
|
-
/* @__PURE__ */
|
|
6934
|
+
/* @__PURE__ */ jsxs30("div", { className: "flex shrink-0 items-center gap-1", children: [
|
|
6751
6935
|
history && /* @__PURE__ */ jsx61(HistoryButton, __spreadValues({}, history)),
|
|
6752
6936
|
actions
|
|
6753
6937
|
] })
|
|
@@ -6761,7 +6945,7 @@ function HistoryButton({
|
|
|
6761
6945
|
const show = typeof count === "number" && count > 0;
|
|
6762
6946
|
const label = show ? count > 99 ? "99+" : String(count) : null;
|
|
6763
6947
|
const ariaLabel = ariaLabelOverride != null ? ariaLabelOverride : show ? `Open history, ${count} new` : "Open history";
|
|
6764
|
-
return /* @__PURE__ */
|
|
6948
|
+
return /* @__PURE__ */ jsxs30("div", { className: "relative inline-flex", children: [
|
|
6765
6949
|
/* @__PURE__ */ jsx61(NavigationButton, { type: "button", size: "md", "aria-label": ariaLabel, onClick, children: /* @__PURE__ */ jsx61(History, { className: "size-5" }) }),
|
|
6766
6950
|
show && /* @__PURE__ */ jsx61(
|
|
6767
6951
|
"span",
|
|
@@ -6775,7 +6959,7 @@ function HistoryButton({
|
|
|
6775
6959
|
}
|
|
6776
6960
|
|
|
6777
6961
|
// components/blocks/faq-block.tsx
|
|
6778
|
-
import { jsx as jsx62, jsxs as
|
|
6962
|
+
import { jsx as jsx62, jsxs as jsxs31 } from "react/jsx-runtime";
|
|
6779
6963
|
function FAQBlock({
|
|
6780
6964
|
eyebrow = "FAQ Section",
|
|
6781
6965
|
title = "Frequently asked questions",
|
|
@@ -6791,8 +6975,8 @@ function FAQBlock({
|
|
|
6791
6975
|
const helpCardPaddingClass = layout === "desktop" ? "p-8" : "p-6";
|
|
6792
6976
|
const gapClass = layout === "desktop" ? "gap-12" : "gap-10";
|
|
6793
6977
|
const headerGapClass = layout === "desktop" ? "gap-5" : "gap-4";
|
|
6794
|
-
return /* @__PURE__ */
|
|
6795
|
-
/* @__PURE__ */
|
|
6978
|
+
return /* @__PURE__ */ jsxs31("div", { className: `w-full flex flex-col ${gapClass}`, children: [
|
|
6979
|
+
/* @__PURE__ */ jsxs31("div", { className: `flex flex-col ${headerGapClass} items-center w-full`, children: [
|
|
6796
6980
|
/* @__PURE__ */ jsx62("span", { className: "text-sm text-on-subtle font-body", children: eyebrow }),
|
|
6797
6981
|
/* @__PURE__ */ jsx62("h2", { className: headingClass, children: title }),
|
|
6798
6982
|
intro && /* @__PURE__ */ jsx62("p", { className: "text-lg text-on-subtle font-body text-center", children: intro })
|
|
@@ -6804,14 +6988,14 @@ function FAQBlock({
|
|
|
6804
6988
|
collapsible: true,
|
|
6805
6989
|
defaultValue: defaultValue != null ? defaultValue : (_a = items[0]) == null ? void 0 : _a.value,
|
|
6806
6990
|
className: "w-full",
|
|
6807
|
-
children: items.map(({ value, question, answer }) => /* @__PURE__ */
|
|
6991
|
+
children: items.map(({ value, question, answer }) => /* @__PURE__ */ jsxs31(AccordionItem, { value, children: [
|
|
6808
6992
|
/* @__PURE__ */ jsx62(AccordionTrigger, { className: "text-base font-medium font-body text-on-prominent hover:no-underline", children: question }),
|
|
6809
6993
|
/* @__PURE__ */ jsx62(AccordionContent, { children: /* @__PURE__ */ jsx62("p", { className: "text-sm text-on-subtle font-body pb-4", children: answer }) })
|
|
6810
6994
|
] }, value))
|
|
6811
6995
|
}
|
|
6812
6996
|
),
|
|
6813
|
-
helpCard && /* @__PURE__ */
|
|
6814
|
-
/* @__PURE__ */
|
|
6997
|
+
helpCard && /* @__PURE__ */ jsxs31("div", { className: `flex flex-col gap-6 items-center w-full bg-subtle rounded-xl ${helpCardPaddingClass}`, children: [
|
|
6998
|
+
/* @__PURE__ */ jsxs31("div", { className: "flex flex-col gap-2 w-full", children: [
|
|
6815
6999
|
/* @__PURE__ */ jsx62("h3", { className: helpTitleClass, children: helpCard.title }),
|
|
6816
7000
|
/* @__PURE__ */ jsx62("p", { className: "text-base text-on-subtle font-body", children: helpCard.body })
|
|
6817
7001
|
] }),
|
|
@@ -6822,7 +7006,7 @@ function FAQBlock({
|
|
|
6822
7006
|
|
|
6823
7007
|
// components/blocks/hero-block.tsx
|
|
6824
7008
|
import { ArrowRight as ArrowRight3, ArrowUpRight } from "lucide-react";
|
|
6825
|
-
import { jsx as jsx63, jsxs as
|
|
7009
|
+
import { jsx as jsx63, jsxs as jsxs32 } from "react/jsx-runtime";
|
|
6826
7010
|
function HeroBlock({
|
|
6827
7011
|
layout = "centered",
|
|
6828
7012
|
tagline,
|
|
@@ -6833,26 +7017,26 @@ function HeroBlock({
|
|
|
6833
7017
|
image
|
|
6834
7018
|
}) {
|
|
6835
7019
|
if (layout === "centered") {
|
|
6836
|
-
return /* @__PURE__ */ jsx63("div", { className: "w-full border border-border-subtle rounded-xl overflow-hidden bg-prominent", children: /* @__PURE__ */
|
|
6837
|
-
/* @__PURE__ */
|
|
7020
|
+
return /* @__PURE__ */ jsx63("div", { className: "w-full border border-border-subtle rounded-xl overflow-hidden bg-prominent", children: /* @__PURE__ */ jsxs32("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: [
|
|
7021
|
+
/* @__PURE__ */ jsxs32("div", { className: "flex flex-col items-center gap-6 w-full", children: [
|
|
6838
7022
|
tagline && /* @__PURE__ */ jsx63(TaglinePill, __spreadValues({}, tagline)),
|
|
6839
7023
|
/* @__PURE__ */ jsx63("h1", { className: "text-5xl font-semibold font-display tracking-tight text-on-prominent text-center", children: heading }),
|
|
6840
7024
|
/* @__PURE__ */ jsx63("p", { className: "text-lg font-body text-on-subtle text-center", children: body })
|
|
6841
7025
|
] }),
|
|
6842
|
-
/* @__PURE__ */
|
|
7026
|
+
/* @__PURE__ */ jsxs32(Button, { size: "sm", onClick: primaryCta.onClick, children: [
|
|
6843
7027
|
primaryCta.label,
|
|
6844
7028
|
primaryCta.trailingArrow !== false && /* @__PURE__ */ jsx63(ArrowRight3, { className: "size-4" })
|
|
6845
7029
|
] })
|
|
6846
7030
|
] }) });
|
|
6847
7031
|
}
|
|
6848
|
-
return /* @__PURE__ */ jsx63("div", { className: "w-full border border-border-subtle rounded-xl overflow-hidden bg-prominent", children: /* @__PURE__ */
|
|
6849
|
-
/* @__PURE__ */
|
|
6850
|
-
/* @__PURE__ */
|
|
7032
|
+
return /* @__PURE__ */ jsx63("div", { className: "w-full border border-border-subtle rounded-xl overflow-hidden bg-prominent", children: /* @__PURE__ */ jsxs32("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: [
|
|
7033
|
+
/* @__PURE__ */ jsxs32("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: [
|
|
7034
|
+
/* @__PURE__ */ jsxs32("div", { className: "flex flex-col gap-5 min-[600px]:gap-6 items-center min-[600px]:items-start w-full", children: [
|
|
6851
7035
|
tagline && /* @__PURE__ */ jsx63(TaglinePill, __spreadProps(__spreadValues({}, tagline), { responsive: true })),
|
|
6852
7036
|
/* @__PURE__ */ jsx63("h1", { className: "text-4xl min-[600px]:text-5xl font-semibold font-display tracking-tight text-on-prominent", children: heading }),
|
|
6853
7037
|
/* @__PURE__ */ jsx63("p", { className: "text-lg font-body text-on-subtle", children: body })
|
|
6854
7038
|
] }),
|
|
6855
|
-
/* @__PURE__ */
|
|
7039
|
+
/* @__PURE__ */ jsxs32("div", { className: "flex items-center justify-center min-[600px]:justify-start gap-2", children: [
|
|
6856
7040
|
/* @__PURE__ */ jsx63(Button, { size: "sm", onClick: primaryCta.onClick, children: primaryCta.label }),
|
|
6857
7041
|
secondaryCta && /* @__PURE__ */ jsx63(Button, { variant: "secondary", size: "sm", onClick: secondaryCta.onClick, children: secondaryCta.label })
|
|
6858
7042
|
] })
|
|
@@ -6865,15 +7049,15 @@ function TaglinePill({
|
|
|
6865
7049
|
suffix,
|
|
6866
7050
|
responsive
|
|
6867
7051
|
}) {
|
|
6868
|
-
return /* @__PURE__ */
|
|
7052
|
+
return /* @__PURE__ */ jsxs32("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: [
|
|
6869
7053
|
/* @__PURE__ */ jsx63("span", { className: "size-1.5 rounded-full bg-semantic-win shrink-0", "aria-hidden": "true" }),
|
|
6870
|
-
responsive && suffix ? /* @__PURE__ */
|
|
6871
|
-
/* @__PURE__ */
|
|
7054
|
+
responsive && suffix ? /* @__PURE__ */ jsxs32("span", { className: "text-sm font-body text-on-prominent whitespace-nowrap", children: [
|
|
7055
|
+
/* @__PURE__ */ jsxs32("span", { className: "hidden min-[600px]:inline", children: [
|
|
6872
7056
|
label,
|
|
6873
7057
|
/* @__PURE__ */ jsx63("span", { className: "text-on-subtle", children: " \xB7 " })
|
|
6874
7058
|
] }),
|
|
6875
7059
|
/* @__PURE__ */ jsx63("span", { className: "text-on-subtle min-[600px]:text-on-prominent", children: suffix })
|
|
6876
|
-
] }) : /* @__PURE__ */
|
|
7060
|
+
] }) : /* @__PURE__ */ jsxs32("span", { className: "text-sm font-body text-on-prominent whitespace-nowrap", children: [
|
|
6877
7061
|
label,
|
|
6878
7062
|
suffix && /* @__PURE__ */ jsx63("span", { className: "text-on-subtle", children: ` \xB7 ${suffix}` })
|
|
6879
7063
|
] }),
|
|
@@ -6882,8 +7066,8 @@ function TaglinePill({
|
|
|
6882
7066
|
}
|
|
6883
7067
|
|
|
6884
7068
|
// components/blocks/auth-block.tsx
|
|
6885
|
-
import * as
|
|
6886
|
-
import { jsx as jsx64, jsxs as
|
|
7069
|
+
import * as React15 from "react";
|
|
7070
|
+
import { jsx as jsx64, jsxs as jsxs33 } from "react/jsx-runtime";
|
|
6887
7071
|
function AuthBlock({
|
|
6888
7072
|
mode,
|
|
6889
7073
|
logoSrc,
|
|
@@ -6898,15 +7082,15 @@ function AuthBlock({
|
|
|
6898
7082
|
const ctaText = mode === "sign-in" ? "Sign in" : "Sign up";
|
|
6899
7083
|
const footerPrompt = mode === "sign-in" ? "Don't have an account?" : "Already have an account?";
|
|
6900
7084
|
const footerLinkLabel = mode === "sign-in" ? "Sign up" : "Log in";
|
|
6901
|
-
const [email, setEmail] =
|
|
6902
|
-
return /* @__PURE__ */
|
|
6903
|
-
/* @__PURE__ */
|
|
7085
|
+
const [email, setEmail] = React15.useState("");
|
|
7086
|
+
return /* @__PURE__ */ jsxs33("div", { className: "flex flex-col items-center gap-6 w-full", children: [
|
|
7087
|
+
/* @__PURE__ */ jsxs33("div", { className: "flex items-center gap-2", children: [
|
|
6904
7088
|
/* @__PURE__ */ jsx64("img", { src: logoSrc, alt: wordmark, className: "size-8 object-contain" }),
|
|
6905
7089
|
/* @__PURE__ */ jsx64("span", { className: "font-display font-semibold text-base text-on-prominent tracking-tight", children: wordmark })
|
|
6906
7090
|
] }),
|
|
6907
7091
|
/* @__PURE__ */ jsx64("h2", { className: "text-3xl font-bold font-display text-on-prominent text-center", children: headingText }),
|
|
6908
7092
|
/* @__PURE__ */ jsx64("div", { className: "flex flex-col gap-3 w-full", children: providers.map((p) => /* @__PURE__ */ jsx64(ProviderButton, { provider: p }, p)) }),
|
|
6909
|
-
/* @__PURE__ */
|
|
7093
|
+
/* @__PURE__ */ jsxs33("div", { className: "flex items-center gap-3 w-full", children: [
|
|
6910
7094
|
/* @__PURE__ */ jsx64("div", { className: "flex-1 h-px bg-border-subtle" }),
|
|
6911
7095
|
/* @__PURE__ */ jsx64("span", { className: "text-sm text-on-subtle font-body", children: "or" }),
|
|
6912
7096
|
/* @__PURE__ */ jsx64("div", { className: "flex-1 h-px bg-border-subtle" })
|
|
@@ -6922,14 +7106,14 @@ function AuthBlock({
|
|
|
6922
7106
|
onChange: (e) => setEmail(e.target.value)
|
|
6923
7107
|
}
|
|
6924
7108
|
) }),
|
|
6925
|
-
/* @__PURE__ */
|
|
7109
|
+
/* @__PURE__ */ jsxs33("p", { className: "text-sm text-on-subtle font-body text-left w-full", children: [
|
|
6926
7110
|
termsText,
|
|
6927
7111
|
", you agree to our",
|
|
6928
7112
|
" ",
|
|
6929
7113
|
/* @__PURE__ */ jsx64(Link, { size: "sm", href: "#", children: "Terms & Conditions" })
|
|
6930
7114
|
] }),
|
|
6931
7115
|
/* @__PURE__ */ jsx64(Button, { size: "md", className: "w-full", onClick: () => onSubmit == null ? void 0 : onSubmit({ email }), children: ctaText }),
|
|
6932
|
-
/* @__PURE__ */
|
|
7116
|
+
/* @__PURE__ */ jsxs33("p", { className: "text-sm text-on-subtle font-body text-center", children: [
|
|
6933
7117
|
footerPrompt,
|
|
6934
7118
|
" ",
|
|
6935
7119
|
/* @__PURE__ */ jsx64(Link, { size: "sm", href: crossLinkHref, children: footerLinkLabel })
|
|
@@ -6939,8 +7123,8 @@ function AuthBlock({
|
|
|
6939
7123
|
function ProviderButton({ provider }) {
|
|
6940
7124
|
switch (provider) {
|
|
6941
7125
|
case "google":
|
|
6942
|
-
return /* @__PURE__ */
|
|
6943
|
-
/* @__PURE__ */
|
|
7126
|
+
return /* @__PURE__ */ jsxs33(Button, { variant: "secondary", size: "lg", className: "w-full", children: [
|
|
7127
|
+
/* @__PURE__ */ jsxs33("svg", { width: "18", height: "18", viewBox: "0 0 18 18", "aria-hidden": "true", fill: "none", className: "shrink-0", children: [
|
|
6944
7128
|
/* @__PURE__ */ jsx64("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" }),
|
|
6945
7129
|
/* @__PURE__ */ jsx64("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" }),
|
|
6946
7130
|
/* @__PURE__ */ jsx64("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" }),
|
|
@@ -6949,8 +7133,8 @@ function ProviderButton({ provider }) {
|
|
|
6949
7133
|
"Continue with Google"
|
|
6950
7134
|
] });
|
|
6951
7135
|
case "telegram":
|
|
6952
|
-
return /* @__PURE__ */
|
|
6953
|
-
/* @__PURE__ */
|
|
7136
|
+
return /* @__PURE__ */ jsxs33(Button, { variant: "secondary", size: "lg", className: "w-full", children: [
|
|
7137
|
+
/* @__PURE__ */ jsxs33("svg", { width: "18", height: "18", viewBox: "0 0 18 18", "aria-hidden": "true", fill: "none", className: "shrink-0", children: [
|
|
6954
7138
|
/* @__PURE__ */ jsx64("circle", { cx: "9", cy: "9", r: "9", fill: "#29B6F6" }),
|
|
6955
7139
|
/* @__PURE__ */ jsx64("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" }),
|
|
6956
7140
|
/* @__PURE__ */ jsx64("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" })
|
|
@@ -6958,7 +7142,7 @@ function ProviderButton({ provider }) {
|
|
|
6958
7142
|
"Continue with Telegram"
|
|
6959
7143
|
] });
|
|
6960
7144
|
case "x":
|
|
6961
|
-
return /* @__PURE__ */
|
|
7145
|
+
return /* @__PURE__ */ jsxs33(Button, { variant: "secondary", size: "lg", className: "w-full", children: [
|
|
6962
7146
|
/* @__PURE__ */ jsx64("svg", { width: "18", height: "18", viewBox: "0 0 18 18", "aria-hidden": "true", fill: "currentColor", className: "shrink-0", children: /* @__PURE__ */ jsx64("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" }) }),
|
|
6963
7147
|
"Continue with X (Twitter)"
|
|
6964
7148
|
] });
|
|
@@ -6966,15 +7150,15 @@ function ProviderButton({ provider }) {
|
|
|
6966
7150
|
}
|
|
6967
7151
|
|
|
6968
7152
|
// components/blocks/navbar-block.tsx
|
|
6969
|
-
import * as
|
|
6970
|
-
import { Menu, X } from "lucide-react";
|
|
6971
|
-
import { jsx as jsx65, jsxs as
|
|
7153
|
+
import * as React16 from "react";
|
|
7154
|
+
import { Menu, X as X2 } from "lucide-react";
|
|
7155
|
+
import { jsx as jsx65, jsxs as jsxs34 } from "react/jsx-runtime";
|
|
6972
7156
|
function NavBarBlock({ brand, links, signIn, signUp }) {
|
|
6973
7157
|
var _a, _b, _c, _d;
|
|
6974
|
-
const [mobileMenuOpen, setMobileMenuOpen] =
|
|
6975
|
-
return /* @__PURE__ */ jsx65("div", { className: "w-full border border-border-subtle rounded-md overflow-hidden", children: /* @__PURE__ */
|
|
6976
|
-
/* @__PURE__ */
|
|
6977
|
-
/* @__PURE__ */
|
|
7158
|
+
const [mobileMenuOpen, setMobileMenuOpen] = React16.useState(false);
|
|
7159
|
+
return /* @__PURE__ */ jsx65("div", { className: "w-full border border-border-subtle rounded-md overflow-hidden", children: /* @__PURE__ */ jsxs34("nav", { className: "bg-prominent", children: [
|
|
7160
|
+
/* @__PURE__ */ jsxs34("div", { className: "flex items-center justify-between px-layout-margin-inline py-3", children: [
|
|
7161
|
+
/* @__PURE__ */ jsxs34("div", { className: "flex items-center gap-6", children: [
|
|
6978
7162
|
/* @__PURE__ */ jsx65(
|
|
6979
7163
|
"img",
|
|
6980
7164
|
{
|
|
@@ -6993,7 +7177,7 @@ function NavBarBlock({ brand, links, signIn, signUp }) {
|
|
|
6993
7177
|
),
|
|
6994
7178
|
/* @__PURE__ */ jsx65("div", { className: "hidden min-[600px]:flex items-center gap-1", children: links.map((l) => /* @__PURE__ */ jsx65(Button, { variant: "tertiary", size: "sm", onClick: l.onClick, children: l.label }, l.label)) })
|
|
6995
7179
|
] }),
|
|
6996
|
-
/* @__PURE__ */
|
|
7180
|
+
/* @__PURE__ */ jsxs34("div", { className: "hidden min-[600px]:flex items-center gap-2", children: [
|
|
6997
7181
|
signIn && /* @__PURE__ */ jsx65(Button, { variant: "tertiary", size: "sm", onClick: signIn.onClick, children: (_a = signIn.label) != null ? _a : "Sign in" }),
|
|
6998
7182
|
signUp && /* @__PURE__ */ jsx65(Button, { size: "sm", onClick: signUp.onClick, children: (_b = signUp.label) != null ? _b : "Sign up" })
|
|
6999
7183
|
] }),
|
|
@@ -7006,11 +7190,11 @@ function NavBarBlock({ brand, links, signIn, signUp }) {
|
|
|
7006
7190
|
"aria-expanded": mobileMenuOpen,
|
|
7007
7191
|
className: "min-[600px]:hidden",
|
|
7008
7192
|
onClick: () => setMobileMenuOpen((prev) => !prev),
|
|
7009
|
-
children: mobileMenuOpen ? /* @__PURE__ */ jsx65(
|
|
7193
|
+
children: mobileMenuOpen ? /* @__PURE__ */ jsx65(X2, { className: "size-4" }) : /* @__PURE__ */ jsx65(Menu, { className: "size-4" })
|
|
7010
7194
|
}
|
|
7011
7195
|
)
|
|
7012
7196
|
] }),
|
|
7013
|
-
mobileMenuOpen && /* @__PURE__ */
|
|
7197
|
+
mobileMenuOpen && /* @__PURE__ */ jsxs34("div", { className: "min-[600px]:hidden flex flex-col border-t border-border-subtle px-layout-margin-inline py-3 gap-1", children: [
|
|
7014
7198
|
links.map((l) => /* @__PURE__ */ jsx65(
|
|
7015
7199
|
Button,
|
|
7016
7200
|
{
|
|
@@ -7022,7 +7206,7 @@ function NavBarBlock({ brand, links, signIn, signUp }) {
|
|
|
7022
7206
|
},
|
|
7023
7207
|
l.label
|
|
7024
7208
|
)),
|
|
7025
|
-
(signIn || signUp) && /* @__PURE__ */
|
|
7209
|
+
(signIn || signUp) && /* @__PURE__ */ jsxs34("div", { className: "flex flex-col gap-2 pt-3 mt-2 border-t border-border-subtle", children: [
|
|
7026
7210
|
signIn && /* @__PURE__ */ jsx65(Button, { variant: "secondary", size: "sm", className: "w-full", onClick: signIn.onClick, children: (_c = signIn.label) != null ? _c : "Sign in" }),
|
|
7027
7211
|
signUp && /* @__PURE__ */ jsx65(Button, { size: "sm", className: "w-full", onClick: signUp.onClick, children: (_d = signUp.label) != null ? _d : "Sign up" })
|
|
7028
7212
|
] })
|
|
@@ -7031,9 +7215,9 @@ function NavBarBlock({ brand, links, signIn, signUp }) {
|
|
|
7031
7215
|
}
|
|
7032
7216
|
|
|
7033
7217
|
// components/blocks/open-positions-block.tsx
|
|
7034
|
-
import * as
|
|
7035
|
-
import { History as History2, X as
|
|
7036
|
-
import { jsx as jsx66, jsxs as
|
|
7218
|
+
import * as React17 from "react";
|
|
7219
|
+
import { History as History2, X as X3 } from "lucide-react";
|
|
7220
|
+
import { jsx as jsx66, jsxs as jsxs35 } from "react/jsx-runtime";
|
|
7037
7221
|
function OpenPositionsBlock({
|
|
7038
7222
|
trigger,
|
|
7039
7223
|
sheetTitle = "Positions",
|
|
@@ -7044,24 +7228,24 @@ function OpenPositionsBlock({
|
|
|
7044
7228
|
const isMobile = useIsMobile();
|
|
7045
7229
|
const body = positions.length === 0 ? emptyState != null ? emptyState : /* @__PURE__ */ jsx66(DefaultEmptyState, { onViewHistory }) : /* @__PURE__ */ jsx66(PositionsList, { positions, onViewHistory });
|
|
7046
7230
|
if (isMobile) {
|
|
7047
|
-
return /* @__PURE__ */
|
|
7231
|
+
return /* @__PURE__ */ jsxs35(Drawer, { children: [
|
|
7048
7232
|
/* @__PURE__ */ jsx66(DrawerTrigger, { asChild: true, children: trigger }),
|
|
7049
|
-
/* @__PURE__ */
|
|
7050
|
-
/* @__PURE__ */
|
|
7233
|
+
/* @__PURE__ */ jsxs35(DrawerContent, { className: "p-0 flex flex-col", children: [
|
|
7234
|
+
/* @__PURE__ */ jsxs35(DrawerHeader, { className: "flex-row items-center justify-between px-4 py-3 shrink-0 text-left", children: [
|
|
7051
7235
|
/* @__PURE__ */ jsx66(DrawerTitle, { className: "text-base font-semibold font-display text-on-prominent", children: sheetTitle }),
|
|
7052
|
-
/* @__PURE__ */ jsx66(DrawerClose, { asChild: true, children: /* @__PURE__ */ jsx66(NavigationButton, { size: "sm", "aria-label": "Close", children: /* @__PURE__ */ jsx66(
|
|
7236
|
+
/* @__PURE__ */ jsx66(DrawerClose, { asChild: true, children: /* @__PURE__ */ jsx66(NavigationButton, { size: "sm", "aria-label": "Close", children: /* @__PURE__ */ jsx66(X3, {}) }) })
|
|
7053
7237
|
] }),
|
|
7054
7238
|
/* @__PURE__ */ jsx66(Separator, {}),
|
|
7055
7239
|
body
|
|
7056
7240
|
] })
|
|
7057
7241
|
] });
|
|
7058
7242
|
}
|
|
7059
|
-
return /* @__PURE__ */
|
|
7243
|
+
return /* @__PURE__ */ jsxs35(Sheet, { children: [
|
|
7060
7244
|
/* @__PURE__ */ jsx66(SheetTrigger, { asChild: true, children: trigger }),
|
|
7061
|
-
/* @__PURE__ */
|
|
7062
|
-
/* @__PURE__ */
|
|
7245
|
+
/* @__PURE__ */ jsxs35(SheetContent, { side: "right", showCloseButton: false, className: "p-0 flex flex-col w-80 sm:max-w-xs", children: [
|
|
7246
|
+
/* @__PURE__ */ jsxs35(SheetHeader, { className: "flex-row items-center justify-between px-4 py-3 shrink-0", children: [
|
|
7063
7247
|
/* @__PURE__ */ jsx66(SheetTitle, { className: "text-base font-semibold font-display text-on-prominent", children: sheetTitle }),
|
|
7064
|
-
/* @__PURE__ */ jsx66(SheetClose, { asChild: true, children: /* @__PURE__ */ jsx66(NavigationButton, { size: "sm", "aria-label": "Close", children: /* @__PURE__ */ jsx66(
|
|
7248
|
+
/* @__PURE__ */ jsx66(SheetClose, { asChild: true, children: /* @__PURE__ */ jsx66(NavigationButton, { size: "sm", "aria-label": "Close", children: /* @__PURE__ */ jsx66(X3, {}) }) })
|
|
7065
7249
|
] }),
|
|
7066
7250
|
/* @__PURE__ */ jsx66(Separator, {}),
|
|
7067
7251
|
body
|
|
@@ -7072,8 +7256,8 @@ function PositionsList({
|
|
|
7072
7256
|
positions,
|
|
7073
7257
|
onViewHistory
|
|
7074
7258
|
}) {
|
|
7075
|
-
return /* @__PURE__ */
|
|
7076
|
-
/* @__PURE__ */ jsx66(ItemGroup, { className: "min-h-0 overflow-y-auto", children: positions.map((pos, i) => /* @__PURE__ */
|
|
7259
|
+
return /* @__PURE__ */ jsxs35("div", { className: "flex flex-col flex-1 min-h-0", children: [
|
|
7260
|
+
/* @__PURE__ */ jsx66(ItemGroup, { className: "min-h-0 overflow-y-auto", children: positions.map((pos, i) => /* @__PURE__ */ jsxs35(React17.Fragment, { children: [
|
|
7077
7261
|
/* @__PURE__ */ jsx66(PositionRow, { position: pos }),
|
|
7078
7262
|
i < positions.length - 1 && /* @__PURE__ */ jsx66("div", { className: "h-px mx-4 bg-border-subtle" })
|
|
7079
7263
|
] }, i)) }),
|
|
@@ -7083,9 +7267,9 @@ function PositionsList({
|
|
|
7083
7267
|
}
|
|
7084
7268
|
function PositionRow({ position }) {
|
|
7085
7269
|
const { label, suffix } = positionTitleParts(position);
|
|
7086
|
-
return /* @__PURE__ */
|
|
7087
|
-
/* @__PURE__ */
|
|
7088
|
-
/* @__PURE__ */
|
|
7270
|
+
return /* @__PURE__ */ jsxs35(Item, { size: "sm", children: [
|
|
7271
|
+
/* @__PURE__ */ jsxs35(ItemContent, { children: [
|
|
7272
|
+
/* @__PURE__ */ jsxs35(ItemTitle, { children: [
|
|
7089
7273
|
/* @__PURE__ */ jsx66("span", { className: "text-on-prominent", children: label }),
|
|
7090
7274
|
suffix && /* @__PURE__ */ jsx66("span", { className: "text-on-subtle", children: ` ${suffix}` })
|
|
7091
7275
|
] }),
|
|
@@ -7117,20 +7301,20 @@ function positionTitleParts(p) {
|
|
|
7117
7301
|
}
|
|
7118
7302
|
}
|
|
7119
7303
|
function MetaNote({ market, duration }) {
|
|
7120
|
-
return /* @__PURE__ */
|
|
7304
|
+
return /* @__PURE__ */ jsxs35("span", { className: "text-xs text-on-subtle whitespace-nowrap", children: [
|
|
7121
7305
|
market,
|
|
7122
7306
|
" \xB7 ",
|
|
7123
7307
|
duration
|
|
7124
7308
|
] });
|
|
7125
7309
|
}
|
|
7126
7310
|
function PnlMeta({ pnl, win, stake }) {
|
|
7127
|
-
return /* @__PURE__ */
|
|
7311
|
+
return /* @__PURE__ */ jsxs35("div", { className: "flex flex-col items-end gap-0.5", children: [
|
|
7128
7312
|
/* @__PURE__ */ jsx66("span", { className: `font-display font-bold tabular-nums text-base ${win ? "text-semantic-win" : "text-semantic-loss"}`, children: pnl }),
|
|
7129
7313
|
/* @__PURE__ */ jsx66("span", { className: "tabular-nums text-xs text-on-subtle", children: stake })
|
|
7130
7314
|
] });
|
|
7131
7315
|
}
|
|
7132
7316
|
function DefaultEmptyState({ onViewHistory }) {
|
|
7133
|
-
return /* @__PURE__ */ jsx66(Empty, { className: "flex min-h-0 flex-1 flex-col justify-center border-none rounded-none p-6 text-center", children: /* @__PURE__ */
|
|
7317
|
+
return /* @__PURE__ */ jsx66(Empty, { className: "flex min-h-0 flex-1 flex-col justify-center border-none rounded-none p-6 text-center", children: /* @__PURE__ */ jsxs35(EmptyHeader, { className: "gap-4", children: [
|
|
7134
7318
|
/* @__PURE__ */ jsx66(EmptyMedia, { children: /* @__PURE__ */ jsx66(History2, { className: "size-8 text-on-subtle" }) }),
|
|
7135
7319
|
/* @__PURE__ */ jsx66(EmptyTitle, { className: "text-base leading-6 font-semibold tracking-normal body-md text-on-subtle", children: "No trades yet." }),
|
|
7136
7320
|
/* @__PURE__ */ jsx66(Button, { variant: "tertiary", size: "md", onClick: onViewHistory, children: "View transaction history" })
|
|
@@ -7142,7 +7326,6 @@ export {
|
|
|
7142
7326
|
AccordionItem,
|
|
7143
7327
|
AccordionTrigger,
|
|
7144
7328
|
Alert,
|
|
7145
|
-
AlertDescription,
|
|
7146
7329
|
AlertDialog,
|
|
7147
7330
|
AlertDialogAction,
|
|
7148
7331
|
AlertDialogCancel,
|
|
@@ -7155,7 +7338,6 @@ export {
|
|
|
7155
7338
|
AlertDialogPortal,
|
|
7156
7339
|
AlertDialogTitle,
|
|
7157
7340
|
AlertDialogTrigger,
|
|
7158
|
-
AlertTitle,
|
|
7159
7341
|
AspectRatio,
|
|
7160
7342
|
AuthBlock,
|
|
7161
7343
|
Avatar,
|
|
@@ -7451,6 +7633,7 @@ export {
|
|
|
7451
7633
|
TooltipContent,
|
|
7452
7634
|
TooltipProvider,
|
|
7453
7635
|
TooltipTrigger,
|
|
7636
|
+
alertVariants,
|
|
7454
7637
|
badgeVariants,
|
|
7455
7638
|
buttonVariants,
|
|
7456
7639
|
cn,
|