@trading-game/design-intelligence-layer 1.0.3 → 1.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +17 -12
- package/README.md +5 -2
- package/dist/index.cjs +801 -460
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +72 -12
- package/dist/index.d.ts +72 -12
- package/dist/index.js +884 -547
- package/dist/index.js.map +1 -1
- package/docs/components/accordion.md +1 -1
- package/docs/components/button.md +6 -1
- package/docs/components/carousel.md +13 -1
- package/docs/components/command.md +1 -1
- package/docs/components/context-menu.md +1 -1
- package/docs/components/dropdown-menu.md +1 -1
- package/docs/components/native-select.md +1 -1
- package/docs/components/navigation-button.md +2 -2
- package/docs/components/pagination.md +40 -1
- package/docs/components/slide-to-confirm.md +1 -1
- package/docs/components/slider.md +1 -1
- package/docs/components/switch.md +1 -1
- package/docs/components/textarea.md +1 -1
- package/docs/components/toast.md +90 -0
- package/docs/components/toggle.md +1 -1
- package/docs/foundations/colors.md +14 -6
- package/docs/foundations/shape-layout.md +1 -1
- package/docs/foundations/typography.md +2 -2
- package/docs/patterns/menus.md +1 -1
- package/guides/rules/design-system-consuming-project.mdc +45 -3
- package/package.json +1 -1
- package/src/styles.css +143 -7
package/dist/index.js
CHANGED
|
@@ -75,7 +75,7 @@ function AccordionTrigger(_a) {
|
|
|
75
75
|
__spreadProps(__spreadValues({
|
|
76
76
|
"data-slot": "accordion-trigger",
|
|
77
77
|
className: cn(
|
|
78
|
-
"flex flex-1 items-start justify-between gap-4 rounded-md py-4 text-left type-accordion-trigger transition-all outline-none hover:underline focus-visible:border-ring-focus-default focus-visible:ring-[3px] focus-visible:ring-ring-focus-strong disabled:pointer-events-none disabled:
|
|
78
|
+
"flex flex-1 items-start justify-between gap-4 rounded-md py-4 text-left type-accordion-trigger transition-all outline-none hover:underline focus-visible:border-ring-focus-default focus-visible:ring-[3px] focus-visible:ring-ring-focus-strong disabled:pointer-events-none disabled:text-text-disabled-default [&[data-state=open]>svg]:rotate-180",
|
|
79
79
|
className
|
|
80
80
|
)
|
|
81
81
|
}, props), {
|
|
@@ -157,44 +157,53 @@ function Spinner(_a) {
|
|
|
157
157
|
// components/ui/button.tsx
|
|
158
158
|
import { Fragment, jsx as jsx3, jsxs as jsxs2 } from "react/jsx-runtime";
|
|
159
159
|
var buttonVariants = cva(
|
|
160
|
-
"inline-flex shrink-0 items-center justify-center whitespace-nowrap transition-[color,border-color,opacity,box-shadow,transform] outline-none focus-visible:border-ring-focus-default focus-visible:ring-[3px] focus-visible:ring-ring-focus-strong active:opacity-60 disabled:pointer-events-none
|
|
160
|
+
"inline-flex shrink-0 items-center justify-center whitespace-nowrap transition-[color,border-color,opacity,box-shadow,transform] outline-none focus-visible:border-ring-focus-default focus-visible:ring-[3px] focus-visible:ring-ring-focus-strong active:opacity-60 disabled:pointer-events-none aria-invalid:border-border-error-default aria-invalid:ring-ring-error-soft [&_svg]:pointer-events-none [&_svg]:shrink-0 font-display",
|
|
161
161
|
{
|
|
162
162
|
variants: {
|
|
163
163
|
variant: {
|
|
164
164
|
// Primary brand blue (#2323FF)
|
|
165
|
-
primary: "bg-background-brand-default text-text-on-brand-static hover:bg-background-brand-hover active:bg-background-brand-pressed active:opacity-100",
|
|
165
|
+
primary: "bg-background-brand-default text-text-on-brand-static hover:bg-background-brand-hover active:bg-background-brand-pressed active:opacity-100 disabled:[background-image:linear-gradient(var(--background-disabled-default),var(--background-disabled-default))] disabled:text-text-disabled-default",
|
|
166
166
|
// Primary Inverse — white bg + blue text; for use on dark/coloured surfaces
|
|
167
167
|
// On-brand family — for buttons standing on a brand-coloured surface
|
|
168
168
|
// (NOT theme inverses): white pill with primary ink, white outline,
|
|
169
169
|
// white text. All static, because the brand panel is the same in
|
|
170
170
|
// both themes.
|
|
171
|
-
"primary-on-brand": "bg-background-static-white text-text-brand-default hover:bg-background-static-white-wash",
|
|
171
|
+
"primary-on-brand": "bg-background-static-white text-text-brand-default hover:bg-background-static-white-wash disabled:bg-(--primitive-white-alpha-24) disabled:text-text-on-brand-disabled-default",
|
|
172
172
|
// Secondary — the design file's white-surface pill: card surface,
|
|
173
|
-
//
|
|
174
|
-
//
|
|
175
|
-
|
|
173
|
+
// prominent ink, hover swaps to the secondary surface (one lift up),
|
|
174
|
+
// press dims via the shared active state.
|
|
175
|
+
//
|
|
176
|
+
// The edge is 1.5px on `border-control-default`, not the shared 1px
|
|
177
|
+
// hairline. The white fill separates from the canvas by only 1.06:1,
|
|
178
|
+
// so the border — not the fill — is what contains the 16px semibold
|
|
179
|
+
// label; at 1px on the shared hairline it read as detached from both.
|
|
180
|
+
// `secondary-on-brand` matches the width and the *subtlety*
|
|
181
|
+
// (white-alpha-32 = 1.84:1 on brand, against 1.71:1 here) so both
|
|
182
|
+
// read as the same quiet edge. Its contrast is higher only because it
|
|
183
|
+
// has no fill behind it — there, the border IS the button.
|
|
184
|
+
secondary: "bg-background-primary-surface border-[1.5px] border-border-control-default text-text-prominent-default hover:bg-background-secondary-surface disabled:[background-image:linear-gradient(var(--background-disabled-default),var(--background-disabled-default))] disabled:border-border-disabled-default disabled:text-text-disabled-default",
|
|
176
185
|
// Secondary Inverse — white border + white text; for use on dark/coloured surfaces
|
|
177
|
-
"secondary-on-brand": "bg-transparent border border-
|
|
178
|
-
tertiary: "bg-transparent text-text-prominent-default hover:bg-background-hover-default",
|
|
186
|
+
"secondary-on-brand": "bg-transparent border-[1.5px] border-(--primitive-white-alpha-32) text-text-on-brand-static hover:bg-(--primitive-white-alpha-8) disabled:border-(--primitive-white-alpha-16) disabled:text-text-on-brand-disabled-default",
|
|
187
|
+
tertiary: "bg-transparent text-text-prominent-default hover:bg-background-hover-default disabled:text-text-disabled-default",
|
|
179
188
|
// Tertiary Inverse — transparent + white text/icon; for use on dark/coloured surfaces
|
|
180
|
-
"tertiary-on-brand": "bg-transparent text-text-on-brand-static hover:bg-(--primitive-white-alpha-8)",
|
|
189
|
+
"tertiary-on-brand": "bg-transparent text-text-on-brand-static hover:bg-(--primitive-white-alpha-8) disabled:text-text-on-brand-disabled-default",
|
|
181
190
|
// Frosted — the tinted-glass family, one look per surface:
|
|
182
191
|
// `frosted` sits on page surfaces (brand-selected tint + brand ink,
|
|
183
192
|
// hover/pressed via the state-layer glazes stacked over the solid
|
|
184
193
|
// fill); `frosted-on-brand` is the white frost for coloured/art
|
|
185
194
|
// surfaces (hover thickens the frost, press thins it).
|
|
186
|
-
frosted: "bg-background-brand-selected text-text-brand-selected active:opacity-100 hover:[background-image:linear-gradient(var(--background-hover-default),var(--background-hover-default))] active:[background-image:linear-gradient(var(--background-pressed-default),var(--background-pressed-default))]",
|
|
187
|
-
"frosted-on-brand": "bg-(--primitive-white-alpha-24) backdrop-blur-md
|
|
195
|
+
frosted: "bg-background-brand-selected text-text-brand-selected active:opacity-100 hover:[background-image:linear-gradient(var(--background-hover-default),var(--background-hover-default))] active:[background-image:linear-gradient(var(--background-pressed-default),var(--background-pressed-default))] disabled:[background-image:linear-gradient(var(--background-disabled-default),var(--background-disabled-default))] disabled:text-text-disabled-default",
|
|
196
|
+
"frosted-on-brand": "bg-(--primitive-white-alpha-24) backdrop-blur-md text-text-on-brand-static hover:bg-(--primitive-white-alpha-32) active:bg-(--primitive-white-alpha-16) active:opacity-100 disabled:bg-(--primitive-white-alpha-8) disabled:text-text-on-brand-disabled-default",
|
|
188
197
|
/* @deprecated aliases — shimmer became the `shimmer` boolean prop;
|
|
189
198
|
the inverse names became the on-brand family; `glass` became
|
|
190
199
|
`frosted-on-brand`. Deleted at v1.0. */
|
|
191
|
-
glass: "bg-(--primitive-white-alpha-24) backdrop-blur-md border border-(--primitive-white-alpha-24) text-text-on-brand-static hover:bg-(--primitive-white-alpha-32) active:bg-(--primitive-white-alpha-16) active:opacity-100",
|
|
200
|
+
glass: "bg-(--primitive-white-alpha-24) backdrop-blur-md border border-(--primitive-white-alpha-24) text-text-on-brand-static hover:bg-(--primitive-white-alpha-32) active:bg-(--primitive-white-alpha-16) active:opacity-100 disabled:bg-(--primitive-white-alpha-8) disabled:text-text-on-brand-disabled-default",
|
|
192
201
|
"primary-shimmer": "relative overflow-hidden bg-background-brand-default text-text-on-brand-static hover:bg-background-brand-hover active:bg-background-brand-pressed active:opacity-100",
|
|
193
202
|
"primary-on-brand-shimmer": "relative overflow-hidden bg-background-static-white text-text-brand-default hover:bg-background-static-white-wash",
|
|
194
203
|
"primary-inverse": "bg-background-static-white text-text-brand-container-static hover:bg-background-static-white-wash",
|
|
195
204
|
"primary-inverse-shimmer": "relative overflow-hidden bg-background-static-white text-text-brand-container-static hover:bg-background-static-white-wash",
|
|
196
205
|
"secondary-inverse": "bg-transparent border border-background-static-white text-text-on-brand-static hover:bg-(--primitive-white-alpha-8)",
|
|
197
|
-
"tertiary-inverse": "bg-transparent text-text-on-brand-static hover:bg-(--primitive-white-alpha-8)"
|
|
206
|
+
"tertiary-inverse": "bg-transparent text-text-on-brand-static hover:bg-(--primitive-white-alpha-8) disabled:text-text-on-brand-disabled-default"
|
|
198
207
|
},
|
|
199
208
|
size: {
|
|
200
209
|
// One primitive type step per size (16/14/12) and padding-x = half
|
|
@@ -301,16 +310,16 @@ import { Slot as Slot2 } from "radix-ui";
|
|
|
301
310
|
import { jsx as jsx4 } from "react/jsx-runtime";
|
|
302
311
|
var navigationButtonVariants = cva2(
|
|
303
312
|
// Icon-only nav control — circular like every icon button in the system.
|
|
304
|
-
"inline-flex shrink-0 items-center justify-center rounded-full transition-all duration-fast ease-standard outline-none focus-visible:ring-[3px] focus-visible:ring-ring-focus-strong active:opacity-60 disabled:pointer-events-none disabled:
|
|
313
|
+
"inline-flex shrink-0 items-center justify-center rounded-full transition-all duration-fast ease-standard outline-none focus-visible:ring-[3px] focus-visible:ring-ring-focus-strong active:opacity-60 disabled:pointer-events-none disabled:[background-image:linear-gradient(var(--background-disabled-default),var(--background-disabled-default))] disabled:text-text-disabled-default [&_svg]:pointer-events-none [&_svg]:shrink-0",
|
|
305
314
|
{
|
|
306
315
|
variants: {
|
|
307
316
|
variant: {
|
|
308
317
|
default: "bg-background-hover-default text-icon-prominent-default hover:bg-background-pressed-default",
|
|
309
318
|
// Frosted circle for art/hero/brand surfaces — same recipe as
|
|
310
319
|
// Button's frosted-on-brand: hover thickens the frost, press thins it.
|
|
311
|
-
"frosted-on-brand": "bg-(--primitive-white-alpha-24) backdrop-blur-md
|
|
320
|
+
"frosted-on-brand": "bg-(--primitive-white-alpha-24) backdrop-blur-md text-text-on-brand-static hover:bg-(--primitive-white-alpha-32) active:bg-(--primitive-white-alpha-16) active:opacity-100",
|
|
312
321
|
/* @deprecated — renamed to frosted-on-brand. Deleted at v1.0. */
|
|
313
|
-
glass: "bg-(--primitive-white-alpha-24) backdrop-blur-md
|
|
322
|
+
glass: "bg-(--primitive-white-alpha-24) backdrop-blur-md text-text-on-brand-static hover:bg-(--primitive-white-alpha-32) active:bg-(--primitive-white-alpha-16) active:opacity-100"
|
|
314
323
|
},
|
|
315
324
|
size: {
|
|
316
325
|
lg: "size-12 [&_svg:not([class*='size-'])]:size-6",
|
|
@@ -1448,7 +1457,7 @@ function SelectTrigger(_a) {
|
|
|
1448
1457
|
"data-readonly": readOnly ? "" : void 0,
|
|
1449
1458
|
className: cn(
|
|
1450
1459
|
selectTriggerType[size],
|
|
1451
|
-
"flex w-fit items-center justify-between gap-2 rounded-xs border border-border-default-default bg-background-primary-surface text-text-prominent-default appearance-none whitespace-nowrap transition-[color,box-shadow] outline-none focus-visible:border-ring-focus-default focus-visible:ring-[3px] focus-visible:ring-ring-focus-soft disabled:cursor-not-allowed disabled:
|
|
1460
|
+
"flex w-fit items-center justify-between gap-2 rounded-xs border border-border-default-default bg-background-primary-surface text-text-prominent-default appearance-none whitespace-nowrap transition-[color,box-shadow] outline-none focus-visible:border-ring-focus-default focus-visible:ring-[3px] focus-visible:ring-ring-focus-soft disabled:cursor-not-allowed disabled:text-text-disabled-default disabled:[background-image:linear-gradient(var(--background-disabled-default),var(--background-disabled-default))] aria-invalid:border-border-error-default aria-invalid:ring-ring-error-soft data-[placeholder]:text-text-subtle-default data-[size=sm]:h-8 data-[size=sm]:px-3 data-[size=sm]:py-1 data-[size=md]:h-10 data-[size=md]:px-3 data-[size=md]:py-1 data-[size=lg]:h-12 data-[size=lg]:px-4 data-[size=lg]:py-2 *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-2 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 [&_svg:not([class*='text-'])]:text-icon-subtle-default data-[readonly]:cursor-default data-[readonly]:opacity-100",
|
|
1452
1461
|
className
|
|
1453
1462
|
)
|
|
1454
1463
|
}, props), {
|
|
@@ -1547,7 +1556,7 @@ function SelectItem(_a) {
|
|
|
1547
1556
|
__spreadProps(__spreadValues({
|
|
1548
1557
|
"data-slot": "select-item",
|
|
1549
1558
|
className: cn(
|
|
1550
|
-
"relative flex w-full cursor-default items-center gap-2 type-menu-item rounded-md py-1.5 pr-8 pl-2 outline-hidden select-none focus:bg-background-hover-default focus:text-text-prominent-default data-[state=checked]:text-text-brand-selected data-[disabled]:pointer-events-none data-[disabled]:
|
|
1559
|
+
"relative flex w-full cursor-default items-center gap-2 type-menu-item rounded-md py-1.5 pr-8 pl-2 outline-hidden select-none focus:bg-background-hover-default focus:text-text-prominent-default data-[state=checked]:text-text-brand-selected data-[disabled]:pointer-events-none data-[disabled]:text-text-disabled-default [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 [&_svg:not([class*='text-'])]:text-icon-subtle-default *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2",
|
|
1551
1560
|
className
|
|
1552
1561
|
)
|
|
1553
1562
|
}, props), {
|
|
@@ -1668,12 +1677,12 @@ function Calendar(_a) {
|
|
|
1668
1677
|
),
|
|
1669
1678
|
button_previous: cn(
|
|
1670
1679
|
buttonVariants({ variant: buttonVariant }),
|
|
1671
|
-
"pointer-events-auto size-(--cell-size) p-0 select-none aria-disabled:
|
|
1680
|
+
"pointer-events-auto size-(--cell-size) p-0 select-none aria-disabled:[background-image:linear-gradient(var(--background-disabled-default),var(--background-disabled-default))] disabled:text-text-disabled-default",
|
|
1672
1681
|
defaultClassNames.button_previous
|
|
1673
1682
|
),
|
|
1674
1683
|
button_next: cn(
|
|
1675
1684
|
buttonVariants({ variant: buttonVariant }),
|
|
1676
|
-
"pointer-events-auto size-(--cell-size) p-0 select-none aria-disabled:
|
|
1685
|
+
"pointer-events-auto size-(--cell-size) p-0 select-none aria-disabled:[background-image:linear-gradient(var(--background-disabled-default),var(--background-disabled-default))] disabled:text-text-disabled-default",
|
|
1677
1686
|
defaultClassNames.button_next
|
|
1678
1687
|
),
|
|
1679
1688
|
month_caption: cn(
|
|
@@ -1952,13 +1961,230 @@ function CardFooter(_a) {
|
|
|
1952
1961
|
}
|
|
1953
1962
|
|
|
1954
1963
|
// components/ui/carousel.tsx
|
|
1955
|
-
import * as
|
|
1964
|
+
import * as React6 from "react";
|
|
1956
1965
|
import useEmblaCarousel from "embla-carousel-react";
|
|
1957
1966
|
import { ArrowLeft, ArrowRight } from "lucide-react";
|
|
1967
|
+
|
|
1968
|
+
// components/ui/pagination.tsx
|
|
1969
|
+
import * as React5 from "react";
|
|
1970
|
+
import {
|
|
1971
|
+
ChevronLeftIcon as ChevronLeftIcon2,
|
|
1972
|
+
ChevronRightIcon as ChevronRightIcon2,
|
|
1973
|
+
MoreHorizontalIcon
|
|
1974
|
+
} from "lucide-react";
|
|
1958
1975
|
import { jsx as jsx16, jsxs as jsxs10 } from "react/jsx-runtime";
|
|
1959
|
-
|
|
1976
|
+
function Pagination(_a) {
|
|
1977
|
+
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
1978
|
+
return /* @__PURE__ */ jsx16(
|
|
1979
|
+
"nav",
|
|
1980
|
+
__spreadValues({
|
|
1981
|
+
role: "navigation",
|
|
1982
|
+
"aria-label": "pagination",
|
|
1983
|
+
"data-slot": "pagination",
|
|
1984
|
+
className: cn("mx-auto flex w-full justify-center", className)
|
|
1985
|
+
}, props)
|
|
1986
|
+
);
|
|
1987
|
+
}
|
|
1988
|
+
function PaginationContent(_a) {
|
|
1989
|
+
var _b = _a, {
|
|
1990
|
+
className
|
|
1991
|
+
} = _b, props = __objRest(_b, [
|
|
1992
|
+
"className"
|
|
1993
|
+
]);
|
|
1994
|
+
return /* @__PURE__ */ jsx16(
|
|
1995
|
+
"ul",
|
|
1996
|
+
__spreadValues({
|
|
1997
|
+
"data-slot": "pagination-content",
|
|
1998
|
+
className: cn("flex flex-row items-center gap-1", className)
|
|
1999
|
+
}, props)
|
|
2000
|
+
);
|
|
2001
|
+
}
|
|
2002
|
+
function PaginationItem(_a) {
|
|
2003
|
+
var props = __objRest(_a, []);
|
|
2004
|
+
return /* @__PURE__ */ jsx16("li", __spreadValues({ "data-slot": "pagination-item" }, props));
|
|
2005
|
+
}
|
|
2006
|
+
function PaginationLink(_a) {
|
|
2007
|
+
var _b = _a, {
|
|
2008
|
+
className,
|
|
2009
|
+
isActive
|
|
2010
|
+
} = _b, props = __objRest(_b, [
|
|
2011
|
+
"className",
|
|
2012
|
+
"isActive"
|
|
2013
|
+
]);
|
|
2014
|
+
return /* @__PURE__ */ jsx16(
|
|
2015
|
+
"a",
|
|
2016
|
+
__spreadValues({
|
|
2017
|
+
"aria-current": isActive ? "page" : void 0,
|
|
2018
|
+
"data-slot": "pagination-link",
|
|
2019
|
+
"data-active": isActive,
|
|
2020
|
+
className: cn(
|
|
2021
|
+
"type-pagination inline-flex shrink-0 items-center justify-center size-10 rounded-full font-display whitespace-nowrap transition-[color,background-color,border-color] outline-none border focus-visible:ring-[3px] focus-visible:ring-ring-focus-strong",
|
|
2022
|
+
isActive ? "bg-background-brand-selected border-border-brand-selected text-text-brand-selected" : "bg-transparent border-transparent text-text-prominent-default hover:bg-background-hover-default",
|
|
2023
|
+
className
|
|
2024
|
+
)
|
|
2025
|
+
}, props)
|
|
2026
|
+
);
|
|
2027
|
+
}
|
|
2028
|
+
function PaginationPrevious(_a) {
|
|
2029
|
+
var _b = _a, {
|
|
2030
|
+
className
|
|
2031
|
+
} = _b, props = __objRest(_b, [
|
|
2032
|
+
"className"
|
|
2033
|
+
]);
|
|
2034
|
+
return /* @__PURE__ */ jsx16(Button, { asChild: true, variant: "tertiary", size: "icon-md", className: cn(className), children: /* @__PURE__ */ jsx16("a", __spreadProps(__spreadValues({ "aria-label": "Go to previous page", "data-slot": "pagination-link" }, props), { children: /* @__PURE__ */ jsx16(ChevronLeftIcon2, { className: "size-5" }) })) });
|
|
2035
|
+
}
|
|
2036
|
+
function PaginationNext(_a) {
|
|
2037
|
+
var _b = _a, {
|
|
2038
|
+
className
|
|
2039
|
+
} = _b, props = __objRest(_b, [
|
|
2040
|
+
"className"
|
|
2041
|
+
]);
|
|
2042
|
+
return /* @__PURE__ */ jsx16(Button, { asChild: true, variant: "tertiary", size: "icon-md", className: cn(className), children: /* @__PURE__ */ jsx16("a", __spreadProps(__spreadValues({ "aria-label": "Go to next page", "data-slot": "pagination-link" }, props), { children: /* @__PURE__ */ jsx16(ChevronRightIcon2, { className: "size-5" }) })) });
|
|
2043
|
+
}
|
|
2044
|
+
function PaginationEllipsis(_a) {
|
|
2045
|
+
var _b = _a, {
|
|
2046
|
+
className
|
|
2047
|
+
} = _b, props = __objRest(_b, [
|
|
2048
|
+
"className"
|
|
2049
|
+
]);
|
|
2050
|
+
return /* @__PURE__ */ jsxs10(
|
|
2051
|
+
"span",
|
|
2052
|
+
__spreadProps(__spreadValues({
|
|
2053
|
+
"aria-hidden": true,
|
|
2054
|
+
"data-slot": "pagination-ellipsis",
|
|
2055
|
+
className: cn("flex size-10 items-center justify-center", className)
|
|
2056
|
+
}, props), {
|
|
2057
|
+
children: [
|
|
2058
|
+
/* @__PURE__ */ jsx16(MoreHorizontalIcon, { className: "size-4" }),
|
|
2059
|
+
/* @__PURE__ */ jsx16("span", { className: "sr-only", children: "More pages" })
|
|
2060
|
+
]
|
|
2061
|
+
})
|
|
2062
|
+
);
|
|
2063
|
+
}
|
|
2064
|
+
var INDICATOR_WIDTHS = {
|
|
2065
|
+
sm: "w-4",
|
|
2066
|
+
md: "w-6",
|
|
2067
|
+
lg: "w-8"
|
|
2068
|
+
};
|
|
2069
|
+
var ACTIVE_DOT_WIDTHS = {
|
|
2070
|
+
sm: "w-4",
|
|
2071
|
+
md: "w-5",
|
|
2072
|
+
lg: "w-6"
|
|
2073
|
+
};
|
|
2074
|
+
var DOT_SIZES = {
|
|
2075
|
+
sm: "size-1.5",
|
|
2076
|
+
md: "size-2",
|
|
2077
|
+
lg: "size-2.5"
|
|
2078
|
+
};
|
|
2079
|
+
function useIndicatorPages(total) {
|
|
2080
|
+
return React5.useMemo(
|
|
2081
|
+
() => Array.from({ length: Math.max(0, total) }, (_, i) => i),
|
|
2082
|
+
[total]
|
|
2083
|
+
);
|
|
2084
|
+
}
|
|
2085
|
+
function PaginationDots(_a) {
|
|
2086
|
+
var _b = _a, {
|
|
2087
|
+
className,
|
|
2088
|
+
page,
|
|
2089
|
+
total,
|
|
2090
|
+
onPageChange,
|
|
2091
|
+
size = "md",
|
|
2092
|
+
label = "Pagination"
|
|
2093
|
+
} = _b, props = __objRest(_b, [
|
|
2094
|
+
"className",
|
|
2095
|
+
"page",
|
|
2096
|
+
"total",
|
|
2097
|
+
"onPageChange",
|
|
2098
|
+
"size",
|
|
2099
|
+
"label"
|
|
2100
|
+
]);
|
|
2101
|
+
const pages = useIndicatorPages(total);
|
|
2102
|
+
return /* @__PURE__ */ jsx16(
|
|
2103
|
+
"nav",
|
|
2104
|
+
__spreadProps(__spreadValues({
|
|
2105
|
+
role: "navigation",
|
|
2106
|
+
"aria-label": label,
|
|
2107
|
+
"data-slot": "pagination-dots",
|
|
2108
|
+
className: cn("flex items-center justify-center gap-1", className)
|
|
2109
|
+
}, props), {
|
|
2110
|
+
children: pages.map((i) => {
|
|
2111
|
+
const active = i === page;
|
|
2112
|
+
return /* @__PURE__ */ jsx16(
|
|
2113
|
+
"button",
|
|
2114
|
+
{
|
|
2115
|
+
type: "button",
|
|
2116
|
+
"data-slot": "pagination-dot",
|
|
2117
|
+
"data-active": active || void 0,
|
|
2118
|
+
"aria-current": active ? "page" : void 0,
|
|
2119
|
+
"aria-label": `Go to page ${i + 1}`,
|
|
2120
|
+
onClick: () => onPageChange == null ? void 0 : onPageChange(i),
|
|
2121
|
+
className: cn(
|
|
2122
|
+
"rounded-full outline-none transition-[width,background-color] duration-base ease-standard",
|
|
2123
|
+
"focus-visible:ring-[3px] focus-visible:ring-ring-focus-strong",
|
|
2124
|
+
active ? cn("h-1.5 bg-background-brand-default", ACTIVE_DOT_WIDTHS[size]) : cn(DOT_SIZES[size], "bg-background-secondary-surface hover:bg-background-brand-selected")
|
|
2125
|
+
)
|
|
2126
|
+
},
|
|
2127
|
+
i
|
|
2128
|
+
);
|
|
2129
|
+
})
|
|
2130
|
+
})
|
|
2131
|
+
);
|
|
2132
|
+
}
|
|
2133
|
+
function PaginationBar(_a) {
|
|
2134
|
+
var _b = _a, {
|
|
2135
|
+
className,
|
|
2136
|
+
page,
|
|
2137
|
+
total,
|
|
2138
|
+
onPageChange,
|
|
2139
|
+
size = "md",
|
|
2140
|
+
label = "Pagination"
|
|
2141
|
+
} = _b, props = __objRest(_b, [
|
|
2142
|
+
"className",
|
|
2143
|
+
"page",
|
|
2144
|
+
"total",
|
|
2145
|
+
"onPageChange",
|
|
2146
|
+
"size",
|
|
2147
|
+
"label"
|
|
2148
|
+
]);
|
|
2149
|
+
const pages = useIndicatorPages(total);
|
|
2150
|
+
return /* @__PURE__ */ jsx16(
|
|
2151
|
+
"nav",
|
|
2152
|
+
__spreadProps(__spreadValues({
|
|
2153
|
+
role: "navigation",
|
|
2154
|
+
"aria-label": label,
|
|
2155
|
+
"data-slot": "pagination-bar",
|
|
2156
|
+
className: cn("flex items-center justify-center gap-1", className)
|
|
2157
|
+
}, props), {
|
|
2158
|
+
children: pages.map((i) => {
|
|
2159
|
+
const active = i === page;
|
|
2160
|
+
return /* @__PURE__ */ jsx16(
|
|
2161
|
+
"button",
|
|
2162
|
+
{
|
|
2163
|
+
type: "button",
|
|
2164
|
+
"data-slot": "pagination-segment",
|
|
2165
|
+
"data-active": active || void 0,
|
|
2166
|
+
"aria-current": active ? "page" : void 0,
|
|
2167
|
+
"aria-label": `Go to page ${i + 1}`,
|
|
2168
|
+
onClick: () => onPageChange == null ? void 0 : onPageChange(i),
|
|
2169
|
+
className: cn(
|
|
2170
|
+
"h-1 rounded-full outline-none transition-colors duration-base ease-standard",
|
|
2171
|
+
INDICATOR_WIDTHS[size],
|
|
2172
|
+
"focus-visible:ring-[3px] focus-visible:ring-ring-focus-strong",
|
|
2173
|
+
active ? "bg-background-brand-default" : "bg-background-secondary-surface hover:bg-background-brand-selected"
|
|
2174
|
+
)
|
|
2175
|
+
},
|
|
2176
|
+
i
|
|
2177
|
+
);
|
|
2178
|
+
})
|
|
2179
|
+
})
|
|
2180
|
+
);
|
|
2181
|
+
}
|
|
2182
|
+
|
|
2183
|
+
// components/ui/carousel.tsx
|
|
2184
|
+
import { jsx as jsx17, jsxs as jsxs11 } from "react/jsx-runtime";
|
|
2185
|
+
var CarouselContext = React6.createContext(null);
|
|
1960
2186
|
function useCarousel() {
|
|
1961
|
-
const context =
|
|
2187
|
+
const context = React6.useContext(CarouselContext);
|
|
1962
2188
|
if (!context) {
|
|
1963
2189
|
throw new Error("useCarousel must be used within a <Carousel />");
|
|
1964
2190
|
}
|
|
@@ -1986,20 +2212,27 @@ function Carousel(_a) {
|
|
|
1986
2212
|
}),
|
|
1987
2213
|
plugins
|
|
1988
2214
|
);
|
|
1989
|
-
const [canScrollPrev, setCanScrollPrev] =
|
|
1990
|
-
const [canScrollNext, setCanScrollNext] =
|
|
1991
|
-
const
|
|
2215
|
+
const [canScrollPrev, setCanScrollPrev] = React6.useState(false);
|
|
2216
|
+
const [canScrollNext, setCanScrollNext] = React6.useState(false);
|
|
2217
|
+
const [selectedIndex, setSelectedIndex] = React6.useState(0);
|
|
2218
|
+
const [slideCount, setSlideCount] = React6.useState(0);
|
|
2219
|
+
const onSelect = React6.useCallback((api2) => {
|
|
1992
2220
|
if (!api2) return;
|
|
1993
2221
|
setCanScrollPrev(api2.canScrollPrev());
|
|
1994
2222
|
setCanScrollNext(api2.canScrollNext());
|
|
2223
|
+
setSelectedIndex(api2.selectedScrollSnap());
|
|
2224
|
+
setSlideCount(api2.scrollSnapList().length);
|
|
1995
2225
|
}, []);
|
|
1996
|
-
const scrollPrev =
|
|
2226
|
+
const scrollPrev = React6.useCallback(() => {
|
|
1997
2227
|
api == null ? void 0 : api.scrollPrev();
|
|
1998
2228
|
}, [api]);
|
|
1999
|
-
const scrollNext =
|
|
2229
|
+
const scrollNext = React6.useCallback(() => {
|
|
2000
2230
|
api == null ? void 0 : api.scrollNext();
|
|
2001
2231
|
}, [api]);
|
|
2002
|
-
const
|
|
2232
|
+
const scrollTo = React6.useCallback((index) => {
|
|
2233
|
+
api == null ? void 0 : api.scrollTo(index);
|
|
2234
|
+
}, [api]);
|
|
2235
|
+
const handleKeyDown = React6.useCallback(
|
|
2003
2236
|
(event) => {
|
|
2004
2237
|
if (event.key === "ArrowLeft") {
|
|
2005
2238
|
event.preventDefault();
|
|
@@ -2011,11 +2244,11 @@ function Carousel(_a) {
|
|
|
2011
2244
|
},
|
|
2012
2245
|
[scrollPrev, scrollNext]
|
|
2013
2246
|
);
|
|
2014
|
-
|
|
2247
|
+
React6.useEffect(() => {
|
|
2015
2248
|
if (!api || !setApi) return;
|
|
2016
2249
|
setApi(api);
|
|
2017
2250
|
}, [api, setApi]);
|
|
2018
|
-
|
|
2251
|
+
React6.useEffect(() => {
|
|
2019
2252
|
if (!api) return;
|
|
2020
2253
|
onSelect(api);
|
|
2021
2254
|
api.on("reInit", onSelect);
|
|
@@ -2024,7 +2257,7 @@ function Carousel(_a) {
|
|
|
2024
2257
|
api == null ? void 0 : api.off("select", onSelect);
|
|
2025
2258
|
};
|
|
2026
2259
|
}, [api, onSelect]);
|
|
2027
|
-
return /* @__PURE__ */
|
|
2260
|
+
return /* @__PURE__ */ jsx17(
|
|
2028
2261
|
CarouselContext.Provider,
|
|
2029
2262
|
{
|
|
2030
2263
|
value: {
|
|
@@ -2035,9 +2268,12 @@ function Carousel(_a) {
|
|
|
2035
2268
|
scrollPrev,
|
|
2036
2269
|
scrollNext,
|
|
2037
2270
|
canScrollPrev,
|
|
2038
|
-
canScrollNext
|
|
2271
|
+
canScrollNext,
|
|
2272
|
+
selectedIndex,
|
|
2273
|
+
slideCount,
|
|
2274
|
+
scrollTo
|
|
2039
2275
|
},
|
|
2040
|
-
children: /* @__PURE__ */
|
|
2276
|
+
children: /* @__PURE__ */ jsx17(
|
|
2041
2277
|
"div",
|
|
2042
2278
|
__spreadProps(__spreadValues({
|
|
2043
2279
|
onKeyDownCapture: handleKeyDown,
|
|
@@ -2055,13 +2291,13 @@ function Carousel(_a) {
|
|
|
2055
2291
|
function CarouselContent(_a) {
|
|
2056
2292
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
2057
2293
|
const { carouselRef, orientation } = useCarousel();
|
|
2058
|
-
return /* @__PURE__ */
|
|
2294
|
+
return /* @__PURE__ */ jsx17(
|
|
2059
2295
|
"div",
|
|
2060
2296
|
{
|
|
2061
2297
|
ref: carouselRef,
|
|
2062
2298
|
className: "overflow-hidden",
|
|
2063
2299
|
"data-slot": "carousel-content",
|
|
2064
|
-
children: /* @__PURE__ */
|
|
2300
|
+
children: /* @__PURE__ */ jsx17(
|
|
2065
2301
|
"div",
|
|
2066
2302
|
__spreadValues({
|
|
2067
2303
|
className: cn(
|
|
@@ -2077,7 +2313,7 @@ function CarouselContent(_a) {
|
|
|
2077
2313
|
function CarouselItem(_a) {
|
|
2078
2314
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
2079
2315
|
const { orientation } = useCarousel();
|
|
2080
|
-
return /* @__PURE__ */
|
|
2316
|
+
return /* @__PURE__ */ jsx17(
|
|
2081
2317
|
"div",
|
|
2082
2318
|
__spreadValues({
|
|
2083
2319
|
role: "group",
|
|
@@ -2102,7 +2338,7 @@ function CarouselPrevious(_a) {
|
|
|
2102
2338
|
"size"
|
|
2103
2339
|
]);
|
|
2104
2340
|
const { orientation, scrollPrev, canScrollPrev } = useCarousel();
|
|
2105
|
-
return /* @__PURE__ */
|
|
2341
|
+
return /* @__PURE__ */ jsxs11(
|
|
2106
2342
|
Button,
|
|
2107
2343
|
__spreadProps(__spreadValues({
|
|
2108
2344
|
"data-slot": "carousel-previous",
|
|
@@ -2117,8 +2353,8 @@ function CarouselPrevious(_a) {
|
|
|
2117
2353
|
onClick: scrollPrev
|
|
2118
2354
|
}, props), {
|
|
2119
2355
|
children: [
|
|
2120
|
-
/* @__PURE__ */
|
|
2121
|
-
/* @__PURE__ */
|
|
2356
|
+
/* @__PURE__ */ jsx17(ArrowLeft, {}),
|
|
2357
|
+
/* @__PURE__ */ jsx17("span", { className: "sr-only", children: "Previous slide" })
|
|
2122
2358
|
]
|
|
2123
2359
|
})
|
|
2124
2360
|
);
|
|
@@ -2134,7 +2370,7 @@ function CarouselNext(_a) {
|
|
|
2134
2370
|
"size"
|
|
2135
2371
|
]);
|
|
2136
2372
|
const { orientation, scrollNext, canScrollNext } = useCarousel();
|
|
2137
|
-
return /* @__PURE__ */
|
|
2373
|
+
return /* @__PURE__ */ jsxs11(
|
|
2138
2374
|
Button,
|
|
2139
2375
|
__spreadProps(__spreadValues({
|
|
2140
2376
|
"data-slot": "carousel-next",
|
|
@@ -2149,16 +2385,34 @@ function CarouselNext(_a) {
|
|
|
2149
2385
|
onClick: scrollNext
|
|
2150
2386
|
}, props), {
|
|
2151
2387
|
children: [
|
|
2152
|
-
/* @__PURE__ */
|
|
2153
|
-
/* @__PURE__ */
|
|
2388
|
+
/* @__PURE__ */ jsx17(ArrowRight, {}),
|
|
2389
|
+
/* @__PURE__ */ jsx17("span", { className: "sr-only", children: "Next slide" })
|
|
2154
2390
|
]
|
|
2155
2391
|
})
|
|
2156
2392
|
);
|
|
2157
2393
|
}
|
|
2394
|
+
function CarouselDots(_a) {
|
|
2395
|
+
var _b = _a, {
|
|
2396
|
+
variant = "dots"
|
|
2397
|
+
} = _b, props = __objRest(_b, [
|
|
2398
|
+
"variant"
|
|
2399
|
+
]);
|
|
2400
|
+
const { selectedIndex, slideCount, scrollTo } = useCarousel();
|
|
2401
|
+
const Indicator = variant === "bar" ? PaginationBar : PaginationDots;
|
|
2402
|
+
return /* @__PURE__ */ jsx17(
|
|
2403
|
+
Indicator,
|
|
2404
|
+
__spreadValues({
|
|
2405
|
+
page: selectedIndex,
|
|
2406
|
+
total: slideCount,
|
|
2407
|
+
onPageChange: scrollTo,
|
|
2408
|
+
label: "Carousel position"
|
|
2409
|
+
}, props)
|
|
2410
|
+
);
|
|
2411
|
+
}
|
|
2158
2412
|
|
|
2159
2413
|
// components/ui/chip.tsx
|
|
2160
2414
|
import { cva as cva5 } from "class-variance-authority";
|
|
2161
|
-
import { jsx as
|
|
2415
|
+
import { jsx as jsx18 } from "react/jsx-runtime";
|
|
2162
2416
|
var chipVariants = cva5(
|
|
2163
2417
|
"inline-flex w-fit items-center justify-center rounded-full font-body whitespace-nowrap transition-colors outline-none focus-visible:border-ring-focus-default focus-visible:ring-[3px] focus-visible:ring-ring-focus-strong disabled:pointer-events-none disabled:border disabled:border-border-default-default disabled:bg-transparent disabled:text-text-disabled-default",
|
|
2164
2418
|
{
|
|
@@ -2175,7 +2429,7 @@ var chipVariants = cva5(
|
|
|
2175
2429
|
);
|
|
2176
2430
|
function Chip(_a) {
|
|
2177
2431
|
var _b = _a, { children, selected = false, variant = "default", size, className, disabled } = _b, props = __objRest(_b, ["children", "selected", "variant", "size", "className", "disabled"]);
|
|
2178
|
-
return /* @__PURE__ */
|
|
2432
|
+
return /* @__PURE__ */ jsx18(
|
|
2179
2433
|
"button",
|
|
2180
2434
|
__spreadProps(__spreadValues({
|
|
2181
2435
|
type: "button",
|
|
@@ -2199,28 +2453,28 @@ function Chip(_a) {
|
|
|
2199
2453
|
// components/ui/checkbox.tsx
|
|
2200
2454
|
import { CheckIcon as CheckIcon2 } from "lucide-react";
|
|
2201
2455
|
import { Checkbox as CheckboxPrimitive } from "radix-ui";
|
|
2202
|
-
import { jsx as
|
|
2456
|
+
import { jsx as jsx19 } from "react/jsx-runtime";
|
|
2203
2457
|
function Checkbox(_a) {
|
|
2204
2458
|
var _b = _a, {
|
|
2205
2459
|
className
|
|
2206
2460
|
} = _b, props = __objRest(_b, [
|
|
2207
2461
|
"className"
|
|
2208
2462
|
]);
|
|
2209
|
-
return /* @__PURE__ */
|
|
2463
|
+
return /* @__PURE__ */ jsx19(
|
|
2210
2464
|
CheckboxPrimitive.Root,
|
|
2211
2465
|
__spreadProps(__spreadValues({
|
|
2212
2466
|
"data-slot": "checkbox",
|
|
2213
2467
|
className: cn(
|
|
2214
|
-
"peer size-4 shrink-0 rounded-2xs border border-border-default-default bg-background-primary-surface transition-colors outline-none focus-visible:border-ring-focus-default focus-visible:ring-[3px] focus-visible:ring-ring-focus-strong disabled:cursor-not-allowed disabled:
|
|
2468
|
+
"peer size-4 shrink-0 rounded-2xs border border-border-default-default bg-background-primary-surface transition-colors outline-none focus-visible:border-ring-focus-default focus-visible:ring-[3px] focus-visible:ring-ring-focus-strong disabled:cursor-not-allowed disabled:border-border-default-default disabled:text-text-disabled-default data-[state=checked]:border-transparent data-[state=checked]:bg-background-brand-default data-[state=checked]:text-text-on-brand-static",
|
|
2215
2469
|
className
|
|
2216
2470
|
)
|
|
2217
2471
|
}, props), {
|
|
2218
|
-
children: /* @__PURE__ */
|
|
2472
|
+
children: /* @__PURE__ */ jsx19(
|
|
2219
2473
|
CheckboxPrimitive.Indicator,
|
|
2220
2474
|
{
|
|
2221
2475
|
"data-slot": "checkbox-indicator",
|
|
2222
2476
|
className: "grid place-content-center text-current transition-none",
|
|
2223
|
-
children: /* @__PURE__ */
|
|
2477
|
+
children: /* @__PURE__ */ jsx19(CheckIcon2, { className: "size-3.5" })
|
|
2224
2478
|
}
|
|
2225
2479
|
)
|
|
2226
2480
|
})
|
|
@@ -2234,22 +2488,22 @@ import { SearchIcon } from "lucide-react";
|
|
|
2234
2488
|
// components/ui/dialog.tsx
|
|
2235
2489
|
import { XIcon } from "lucide-react";
|
|
2236
2490
|
import { Dialog as DialogPrimitive } from "radix-ui";
|
|
2237
|
-
import { jsx as
|
|
2491
|
+
import { jsx as jsx20, jsxs as jsxs12 } from "react/jsx-runtime";
|
|
2238
2492
|
function Dialog(_a) {
|
|
2239
2493
|
var props = __objRest(_a, []);
|
|
2240
|
-
return /* @__PURE__ */
|
|
2494
|
+
return /* @__PURE__ */ jsx20(DialogPrimitive.Root, __spreadValues({ "data-slot": "dialog" }, props));
|
|
2241
2495
|
}
|
|
2242
2496
|
function DialogTrigger(_a) {
|
|
2243
2497
|
var props = __objRest(_a, []);
|
|
2244
|
-
return /* @__PURE__ */
|
|
2498
|
+
return /* @__PURE__ */ jsx20(DialogPrimitive.Trigger, __spreadValues({ "data-slot": "dialog-trigger" }, props));
|
|
2245
2499
|
}
|
|
2246
2500
|
function DialogPortal(_a) {
|
|
2247
2501
|
var props = __objRest(_a, []);
|
|
2248
|
-
return /* @__PURE__ */
|
|
2502
|
+
return /* @__PURE__ */ jsx20(DialogPrimitive.Portal, __spreadValues({ "data-slot": "dialog-portal" }, props));
|
|
2249
2503
|
}
|
|
2250
2504
|
function DialogClose(_a) {
|
|
2251
2505
|
var props = __objRest(_a, []);
|
|
2252
|
-
return /* @__PURE__ */
|
|
2506
|
+
return /* @__PURE__ */ jsx20(DialogPrimitive.Close, __spreadValues({ "data-slot": "dialog-close" }, props));
|
|
2253
2507
|
}
|
|
2254
2508
|
function DialogOverlay(_a) {
|
|
2255
2509
|
var _b = _a, {
|
|
@@ -2257,7 +2511,7 @@ function DialogOverlay(_a) {
|
|
|
2257
2511
|
} = _b, props = __objRest(_b, [
|
|
2258
2512
|
"className"
|
|
2259
2513
|
]);
|
|
2260
|
-
return /* @__PURE__ */
|
|
2514
|
+
return /* @__PURE__ */ jsx20(
|
|
2261
2515
|
DialogPrimitive.Overlay,
|
|
2262
2516
|
__spreadValues({
|
|
2263
2517
|
"data-slot": "dialog-overlay",
|
|
@@ -2278,9 +2532,9 @@ function DialogContent(_a) {
|
|
|
2278
2532
|
"children",
|
|
2279
2533
|
"showCloseButton"
|
|
2280
2534
|
]);
|
|
2281
|
-
return /* @__PURE__ */
|
|
2282
|
-
/* @__PURE__ */
|
|
2283
|
-
/* @__PURE__ */
|
|
2535
|
+
return /* @__PURE__ */ jsxs12(DialogPortal, { "data-slot": "dialog-portal", children: [
|
|
2536
|
+
/* @__PURE__ */ jsx20(DialogOverlay, {}),
|
|
2537
|
+
/* @__PURE__ */ jsxs12(
|
|
2284
2538
|
DialogPrimitive.Content,
|
|
2285
2539
|
__spreadProps(__spreadValues({
|
|
2286
2540
|
"data-slot": "dialog-content",
|
|
@@ -2291,14 +2545,14 @@ function DialogContent(_a) {
|
|
|
2291
2545
|
}, props), {
|
|
2292
2546
|
children: [
|
|
2293
2547
|
children,
|
|
2294
|
-
showCloseButton && /* @__PURE__ */
|
|
2548
|
+
showCloseButton && /* @__PURE__ */ jsx20(DialogPrimitive.Close, { asChild: true, children: /* @__PURE__ */ jsx20(
|
|
2295
2549
|
NavigationButton,
|
|
2296
2550
|
{
|
|
2297
2551
|
"data-slot": "dialog-close",
|
|
2298
2552
|
size: "sm",
|
|
2299
2553
|
"aria-label": "Close",
|
|
2300
2554
|
className: "absolute top-4 right-4",
|
|
2301
|
-
children: /* @__PURE__ */
|
|
2555
|
+
children: /* @__PURE__ */ jsx20(XIcon, { className: "size-4" })
|
|
2302
2556
|
}
|
|
2303
2557
|
) })
|
|
2304
2558
|
]
|
|
@@ -2308,7 +2562,7 @@ function DialogContent(_a) {
|
|
|
2308
2562
|
}
|
|
2309
2563
|
function DialogHeader(_a) {
|
|
2310
2564
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
2311
|
-
return /* @__PURE__ */
|
|
2565
|
+
return /* @__PURE__ */ jsx20(
|
|
2312
2566
|
"div",
|
|
2313
2567
|
__spreadValues({
|
|
2314
2568
|
"data-slot": "dialog-header",
|
|
@@ -2326,7 +2580,7 @@ function DialogFooter(_a) {
|
|
|
2326
2580
|
"showCloseButton",
|
|
2327
2581
|
"children"
|
|
2328
2582
|
]);
|
|
2329
|
-
return /* @__PURE__ */
|
|
2583
|
+
return /* @__PURE__ */ jsxs12(
|
|
2330
2584
|
"div",
|
|
2331
2585
|
__spreadProps(__spreadValues({
|
|
2332
2586
|
"data-slot": "dialog-footer",
|
|
@@ -2337,7 +2591,7 @@ function DialogFooter(_a) {
|
|
|
2337
2591
|
}, props), {
|
|
2338
2592
|
children: [
|
|
2339
2593
|
children,
|
|
2340
|
-
showCloseButton && /* @__PURE__ */
|
|
2594
|
+
showCloseButton && /* @__PURE__ */ jsx20(DialogPrimitive.Close, { asChild: true, children: /* @__PURE__ */ jsx20(Button, { variant: "secondary", size: "md", children: "Close" }) })
|
|
2341
2595
|
]
|
|
2342
2596
|
})
|
|
2343
2597
|
);
|
|
@@ -2348,7 +2602,7 @@ function DialogTitle(_a) {
|
|
|
2348
2602
|
} = _b, props = __objRest(_b, [
|
|
2349
2603
|
"className"
|
|
2350
2604
|
]);
|
|
2351
|
-
return /* @__PURE__ */
|
|
2605
|
+
return /* @__PURE__ */ jsx20(
|
|
2352
2606
|
DialogPrimitive.Title,
|
|
2353
2607
|
__spreadValues({
|
|
2354
2608
|
"data-slot": "dialog-title",
|
|
@@ -2362,7 +2616,7 @@ function DialogDescription(_a) {
|
|
|
2362
2616
|
} = _b, props = __objRest(_b, [
|
|
2363
2617
|
"className"
|
|
2364
2618
|
]);
|
|
2365
|
-
return /* @__PURE__ */
|
|
2619
|
+
return /* @__PURE__ */ jsx20(
|
|
2366
2620
|
DialogPrimitive.Description,
|
|
2367
2621
|
__spreadValues({
|
|
2368
2622
|
"data-slot": "dialog-description",
|
|
@@ -2372,14 +2626,14 @@ function DialogDescription(_a) {
|
|
|
2372
2626
|
}
|
|
2373
2627
|
|
|
2374
2628
|
// components/ui/command.tsx
|
|
2375
|
-
import { jsx as
|
|
2629
|
+
import { jsx as jsx21, jsxs as jsxs13 } from "react/jsx-runtime";
|
|
2376
2630
|
function Command(_a) {
|
|
2377
2631
|
var _b = _a, {
|
|
2378
2632
|
className
|
|
2379
2633
|
} = _b, props = __objRest(_b, [
|
|
2380
2634
|
"className"
|
|
2381
2635
|
]);
|
|
2382
|
-
return /* @__PURE__ */
|
|
2636
|
+
return /* @__PURE__ */ jsx21(
|
|
2383
2637
|
CommandPrimitive,
|
|
2384
2638
|
__spreadValues({
|
|
2385
2639
|
"data-slot": "command",
|
|
@@ -2404,17 +2658,17 @@ function CommandDialog(_a) {
|
|
|
2404
2658
|
"className",
|
|
2405
2659
|
"showCloseButton"
|
|
2406
2660
|
]);
|
|
2407
|
-
return /* @__PURE__ */
|
|
2408
|
-
/* @__PURE__ */
|
|
2409
|
-
/* @__PURE__ */
|
|
2410
|
-
/* @__PURE__ */
|
|
2661
|
+
return /* @__PURE__ */ jsxs13(Dialog, __spreadProps(__spreadValues({}, props), { children: [
|
|
2662
|
+
/* @__PURE__ */ jsxs13(DialogHeader, { className: "sr-only", children: [
|
|
2663
|
+
/* @__PURE__ */ jsx21(DialogTitle, { children: title }),
|
|
2664
|
+
/* @__PURE__ */ jsx21(DialogDescription, { children: description })
|
|
2411
2665
|
] }),
|
|
2412
|
-
/* @__PURE__ */
|
|
2666
|
+
/* @__PURE__ */ jsx21(
|
|
2413
2667
|
DialogContent,
|
|
2414
2668
|
{
|
|
2415
2669
|
className: cn("overflow-hidden p-0", className),
|
|
2416
2670
|
showCloseButton,
|
|
2417
|
-
children: /* @__PURE__ */
|
|
2671
|
+
children: /* @__PURE__ */ jsx21(Command, { className: "**:data-[slot=command-input-wrapper]:h-12 [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-text-subtle-default [&_[cmdk-group]]:px-2 [&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0 [&_[cmdk-input-wrapper]_svg]:h-5 [&_[cmdk-input-wrapper]_svg]:w-5 [&_[cmdk-input]]:h-12 [&_[cmdk-item]]:px-2 [&_[cmdk-item]]:py-3 [&_[cmdk-item]_svg]:h-5 [&_[cmdk-item]_svg]:w-5", children })
|
|
2418
2672
|
}
|
|
2419
2673
|
)
|
|
2420
2674
|
] }));
|
|
@@ -2425,19 +2679,19 @@ function CommandInput(_a) {
|
|
|
2425
2679
|
} = _b, props = __objRest(_b, [
|
|
2426
2680
|
"className"
|
|
2427
2681
|
]);
|
|
2428
|
-
return /* @__PURE__ */
|
|
2682
|
+
return /* @__PURE__ */ jsxs13(
|
|
2429
2683
|
"div",
|
|
2430
2684
|
{
|
|
2431
2685
|
"data-slot": "command-input-wrapper",
|
|
2432
2686
|
className: "flex h-9 items-center gap-2 border-b border-border-default-default px-3",
|
|
2433
2687
|
children: [
|
|
2434
|
-
/* @__PURE__ */
|
|
2435
|
-
/* @__PURE__ */
|
|
2688
|
+
/* @__PURE__ */ jsx21(SearchIcon, { className: "size-4 shrink-0 text-icon-subtle-default" }),
|
|
2689
|
+
/* @__PURE__ */ jsx21(
|
|
2436
2690
|
CommandPrimitive.Input,
|
|
2437
2691
|
__spreadValues({
|
|
2438
2692
|
"data-slot": "command-input",
|
|
2439
2693
|
className: cn(
|
|
2440
|
-
"type-menu-item flex h-10 w-full rounded-md bg-transparent py-3 outline-hidden placeholder:text-text-subtle-default disabled:cursor-not-allowed disabled:
|
|
2694
|
+
"type-menu-item flex h-10 w-full rounded-md bg-transparent py-3 outline-hidden placeholder:text-text-subtle-default disabled:cursor-not-allowed disabled:text-text-disabled-default",
|
|
2441
2695
|
className
|
|
2442
2696
|
)
|
|
2443
2697
|
}, props)
|
|
@@ -2452,7 +2706,7 @@ function CommandList(_a) {
|
|
|
2452
2706
|
} = _b, props = __objRest(_b, [
|
|
2453
2707
|
"className"
|
|
2454
2708
|
]);
|
|
2455
|
-
return /* @__PURE__ */
|
|
2709
|
+
return /* @__PURE__ */ jsx21(
|
|
2456
2710
|
CommandPrimitive.List,
|
|
2457
2711
|
__spreadValues({
|
|
2458
2712
|
"data-slot": "command-list",
|
|
@@ -2465,7 +2719,7 @@ function CommandList(_a) {
|
|
|
2465
2719
|
}
|
|
2466
2720
|
function CommandEmpty(_a) {
|
|
2467
2721
|
var props = __objRest(_a, []);
|
|
2468
|
-
return /* @__PURE__ */
|
|
2722
|
+
return /* @__PURE__ */ jsx21(
|
|
2469
2723
|
CommandPrimitive.Empty,
|
|
2470
2724
|
__spreadValues({
|
|
2471
2725
|
"data-slot": "command-empty",
|
|
@@ -2479,7 +2733,7 @@ function CommandGroup(_a) {
|
|
|
2479
2733
|
} = _b, props = __objRest(_b, [
|
|
2480
2734
|
"className"
|
|
2481
2735
|
]);
|
|
2482
|
-
return /* @__PURE__ */
|
|
2736
|
+
return /* @__PURE__ */ jsx21(
|
|
2483
2737
|
CommandPrimitive.Group,
|
|
2484
2738
|
__spreadValues({
|
|
2485
2739
|
"data-slot": "command-group",
|
|
@@ -2496,7 +2750,7 @@ function CommandSeparator(_a) {
|
|
|
2496
2750
|
} = _b, props = __objRest(_b, [
|
|
2497
2751
|
"className"
|
|
2498
2752
|
]);
|
|
2499
|
-
return /* @__PURE__ */
|
|
2753
|
+
return /* @__PURE__ */ jsx21(
|
|
2500
2754
|
CommandPrimitive.Separator,
|
|
2501
2755
|
__spreadValues({
|
|
2502
2756
|
"data-slot": "command-separator",
|
|
@@ -2510,12 +2764,12 @@ function CommandItem(_a) {
|
|
|
2510
2764
|
} = _b, props = __objRest(_b, [
|
|
2511
2765
|
"className"
|
|
2512
2766
|
]);
|
|
2513
|
-
return /* @__PURE__ */
|
|
2767
|
+
return /* @__PURE__ */ jsx21(
|
|
2514
2768
|
CommandPrimitive.Item,
|
|
2515
2769
|
__spreadValues({
|
|
2516
2770
|
"data-slot": "command-item",
|
|
2517
2771
|
className: cn(
|
|
2518
|
-
"type-menu-item relative flex cursor-default items-center gap-2 rounded-md px-2 py-1.5 outline-hidden select-none data-[disabled=true]:pointer-events-none data-[disabled=true]:
|
|
2772
|
+
"type-menu-item relative flex cursor-default items-center gap-2 rounded-md px-2 py-1.5 outline-hidden select-none data-[disabled=true]:pointer-events-none data-[disabled=true]:text-text-disabled-default data-[selected=true]:bg-background-hover-default data-[selected=true]:text-text-prominent-default [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 [&_svg:not([class*='text-'])]:text-icon-subtle-default",
|
|
2519
2773
|
className
|
|
2520
2774
|
)
|
|
2521
2775
|
}, props)
|
|
@@ -2527,7 +2781,7 @@ function CommandShortcut(_a) {
|
|
|
2527
2781
|
} = _b, props = __objRest(_b, [
|
|
2528
2782
|
"className"
|
|
2529
2783
|
]);
|
|
2530
|
-
return /* @__PURE__ */
|
|
2784
|
+
return /* @__PURE__ */ jsx21(
|
|
2531
2785
|
"span",
|
|
2532
2786
|
__spreadValues({
|
|
2533
2787
|
"data-slot": "command-shortcut",
|
|
@@ -2540,32 +2794,32 @@ function CommandShortcut(_a) {
|
|
|
2540
2794
|
}
|
|
2541
2795
|
|
|
2542
2796
|
// components/ui/context-menu.tsx
|
|
2543
|
-
import { CheckIcon as CheckIcon3, ChevronRightIcon as
|
|
2797
|
+
import { CheckIcon as CheckIcon3, ChevronRightIcon as ChevronRightIcon3, CircleIcon } from "lucide-react";
|
|
2544
2798
|
import { ContextMenu as ContextMenuPrimitive } from "radix-ui";
|
|
2545
|
-
import { jsx as
|
|
2799
|
+
import { jsx as jsx22, jsxs as jsxs14 } from "react/jsx-runtime";
|
|
2546
2800
|
function ContextMenu(_a) {
|
|
2547
2801
|
var props = __objRest(_a, []);
|
|
2548
|
-
return /* @__PURE__ */
|
|
2802
|
+
return /* @__PURE__ */ jsx22(ContextMenuPrimitive.Root, __spreadValues({ "data-slot": "context-menu" }, props));
|
|
2549
2803
|
}
|
|
2550
2804
|
function ContextMenuTrigger(_a) {
|
|
2551
2805
|
var props = __objRest(_a, []);
|
|
2552
|
-
return /* @__PURE__ */
|
|
2806
|
+
return /* @__PURE__ */ jsx22(ContextMenuPrimitive.Trigger, __spreadValues({ "data-slot": "context-menu-trigger" }, props));
|
|
2553
2807
|
}
|
|
2554
2808
|
function ContextMenuGroup(_a) {
|
|
2555
2809
|
var props = __objRest(_a, []);
|
|
2556
|
-
return /* @__PURE__ */
|
|
2810
|
+
return /* @__PURE__ */ jsx22(ContextMenuPrimitive.Group, __spreadValues({ "data-slot": "context-menu-group" }, props));
|
|
2557
2811
|
}
|
|
2558
2812
|
function ContextMenuPortal(_a) {
|
|
2559
2813
|
var props = __objRest(_a, []);
|
|
2560
|
-
return /* @__PURE__ */
|
|
2814
|
+
return /* @__PURE__ */ jsx22(ContextMenuPrimitive.Portal, __spreadValues({ "data-slot": "context-menu-portal" }, props));
|
|
2561
2815
|
}
|
|
2562
2816
|
function ContextMenuSub(_a) {
|
|
2563
2817
|
var props = __objRest(_a, []);
|
|
2564
|
-
return /* @__PURE__ */
|
|
2818
|
+
return /* @__PURE__ */ jsx22(ContextMenuPrimitive.Sub, __spreadValues({ "data-slot": "context-menu-sub" }, props));
|
|
2565
2819
|
}
|
|
2566
2820
|
function ContextMenuRadioGroup(_a) {
|
|
2567
2821
|
var props = __objRest(_a, []);
|
|
2568
|
-
return /* @__PURE__ */
|
|
2822
|
+
return /* @__PURE__ */ jsx22(
|
|
2569
2823
|
ContextMenuPrimitive.RadioGroup,
|
|
2570
2824
|
__spreadValues({
|
|
2571
2825
|
"data-slot": "context-menu-radio-group"
|
|
@@ -2582,7 +2836,7 @@ function ContextMenuSubTrigger(_a) {
|
|
|
2582
2836
|
"inset",
|
|
2583
2837
|
"children"
|
|
2584
2838
|
]);
|
|
2585
|
-
return /* @__PURE__ */
|
|
2839
|
+
return /* @__PURE__ */ jsxs14(
|
|
2586
2840
|
ContextMenuPrimitive.SubTrigger,
|
|
2587
2841
|
__spreadProps(__spreadValues({
|
|
2588
2842
|
"data-slot": "context-menu-sub-trigger",
|
|
@@ -2594,7 +2848,7 @@ function ContextMenuSubTrigger(_a) {
|
|
|
2594
2848
|
}, props), {
|
|
2595
2849
|
children: [
|
|
2596
2850
|
children,
|
|
2597
|
-
/* @__PURE__ */
|
|
2851
|
+
/* @__PURE__ */ jsx22(ChevronRightIcon3, { className: "ml-auto" })
|
|
2598
2852
|
]
|
|
2599
2853
|
})
|
|
2600
2854
|
);
|
|
@@ -2605,7 +2859,7 @@ function ContextMenuSubContent(_a) {
|
|
|
2605
2859
|
} = _b, props = __objRest(_b, [
|
|
2606
2860
|
"className"
|
|
2607
2861
|
]);
|
|
2608
|
-
return /* @__PURE__ */
|
|
2862
|
+
return /* @__PURE__ */ jsx22(
|
|
2609
2863
|
ContextMenuPrimitive.SubContent,
|
|
2610
2864
|
__spreadValues({
|
|
2611
2865
|
"data-slot": "context-menu-sub-content",
|
|
@@ -2622,7 +2876,7 @@ function ContextMenuContent(_a) {
|
|
|
2622
2876
|
} = _b, props = __objRest(_b, [
|
|
2623
2877
|
"className"
|
|
2624
2878
|
]);
|
|
2625
|
-
return /* @__PURE__ */
|
|
2879
|
+
return /* @__PURE__ */ jsx22(ContextMenuPrimitive.Portal, { children: /* @__PURE__ */ jsx22(
|
|
2626
2880
|
ContextMenuPrimitive.Content,
|
|
2627
2881
|
__spreadValues({
|
|
2628
2882
|
"data-slot": "context-menu-content",
|
|
@@ -2643,14 +2897,14 @@ function ContextMenuItem(_a) {
|
|
|
2643
2897
|
"inset",
|
|
2644
2898
|
"variant"
|
|
2645
2899
|
]);
|
|
2646
|
-
return /* @__PURE__ */
|
|
2900
|
+
return /* @__PURE__ */ jsx22(
|
|
2647
2901
|
ContextMenuPrimitive.Item,
|
|
2648
2902
|
__spreadValues({
|
|
2649
2903
|
"data-slot": "context-menu-item",
|
|
2650
2904
|
"data-inset": inset,
|
|
2651
2905
|
"data-variant": variant,
|
|
2652
2906
|
className: cn(
|
|
2653
|
-
"relative flex cursor-default items-center gap-2 type-menu-item rounded-md px-2 py-1.5 outline-hidden select-none focus:bg-background-hover-default focus:text-text-prominent-default data-[disabled]:pointer-events-none data-[disabled]:
|
|
2907
|
+
"relative flex cursor-default items-center gap-2 type-menu-item rounded-md px-2 py-1.5 outline-hidden select-none focus:bg-background-hover-default focus:text-text-prominent-default data-[disabled]:pointer-events-none data-[disabled]:text-text-disabled-default data-[inset]:pl-8 data-[variant=destructive]:text-text-error-default data-[variant=destructive]:focus:bg-background-error-default data-[variant=destructive]:focus:text-text-error-default [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 [&_svg:not([class*='text-'])]:text-icon-subtle-default data-[variant=destructive]:*:[svg]:text-text-error-default!",
|
|
2654
2908
|
className
|
|
2655
2909
|
)
|
|
2656
2910
|
}, props)
|
|
@@ -2666,18 +2920,18 @@ function ContextMenuCheckboxItem(_a) {
|
|
|
2666
2920
|
"children",
|
|
2667
2921
|
"checked"
|
|
2668
2922
|
]);
|
|
2669
|
-
return /* @__PURE__ */
|
|
2923
|
+
return /* @__PURE__ */ jsxs14(
|
|
2670
2924
|
ContextMenuPrimitive.CheckboxItem,
|
|
2671
2925
|
__spreadProps(__spreadValues({
|
|
2672
2926
|
"data-slot": "context-menu-checkbox-item",
|
|
2673
2927
|
className: cn(
|
|
2674
|
-
"relative flex cursor-default items-center gap-2 type-menu-item rounded-md py-1.5 pr-2 pl-8 outline-hidden select-none focus:bg-background-hover-default focus:text-text-prominent-default data-[disabled]:pointer-events-none data-[disabled]:
|
|
2928
|
+
"relative flex cursor-default items-center gap-2 type-menu-item rounded-md py-1.5 pr-2 pl-8 outline-hidden select-none focus:bg-background-hover-default focus:text-text-prominent-default data-[disabled]:pointer-events-none data-[disabled]:text-text-disabled-default [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
|
|
2675
2929
|
className
|
|
2676
2930
|
),
|
|
2677
2931
|
checked
|
|
2678
2932
|
}, props), {
|
|
2679
2933
|
children: [
|
|
2680
|
-
/* @__PURE__ */
|
|
2934
|
+
/* @__PURE__ */ jsx22("span", { className: "pointer-events-none absolute left-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ jsx22(ContextMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx22(CheckIcon3, { className: "size-4" }) }) }),
|
|
2681
2935
|
children
|
|
2682
2936
|
]
|
|
2683
2937
|
})
|
|
@@ -2691,17 +2945,17 @@ function ContextMenuRadioItem(_a) {
|
|
|
2691
2945
|
"className",
|
|
2692
2946
|
"children"
|
|
2693
2947
|
]);
|
|
2694
|
-
return /* @__PURE__ */
|
|
2948
|
+
return /* @__PURE__ */ jsxs14(
|
|
2695
2949
|
ContextMenuPrimitive.RadioItem,
|
|
2696
2950
|
__spreadProps(__spreadValues({
|
|
2697
2951
|
"data-slot": "context-menu-radio-item",
|
|
2698
2952
|
className: cn(
|
|
2699
|
-
"relative flex cursor-default items-center gap-2 type-menu-item rounded-md py-1.5 pr-2 pl-8 outline-hidden select-none focus:bg-background-hover-default focus:text-text-prominent-default data-[disabled]:pointer-events-none data-[disabled]:
|
|
2953
|
+
"relative flex cursor-default items-center gap-2 type-menu-item rounded-md py-1.5 pr-2 pl-8 outline-hidden select-none focus:bg-background-hover-default focus:text-text-prominent-default data-[disabled]:pointer-events-none data-[disabled]:text-text-disabled-default [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
|
|
2700
2954
|
className
|
|
2701
2955
|
)
|
|
2702
2956
|
}, props), {
|
|
2703
2957
|
children: [
|
|
2704
|
-
/* @__PURE__ */
|
|
2958
|
+
/* @__PURE__ */ jsx22("span", { className: "pointer-events-none absolute left-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ jsx22(ContextMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx22(CircleIcon, { className: "size-2 fill-current" }) }) }),
|
|
2705
2959
|
children
|
|
2706
2960
|
]
|
|
2707
2961
|
})
|
|
@@ -2715,7 +2969,7 @@ function ContextMenuLabel(_a) {
|
|
|
2715
2969
|
"className",
|
|
2716
2970
|
"inset"
|
|
2717
2971
|
]);
|
|
2718
|
-
return /* @__PURE__ */
|
|
2972
|
+
return /* @__PURE__ */ jsx22(
|
|
2719
2973
|
ContextMenuPrimitive.Label,
|
|
2720
2974
|
__spreadValues({
|
|
2721
2975
|
"data-slot": "context-menu-label",
|
|
@@ -2733,7 +2987,7 @@ function ContextMenuSeparator(_a) {
|
|
|
2733
2987
|
} = _b, props = __objRest(_b, [
|
|
2734
2988
|
"className"
|
|
2735
2989
|
]);
|
|
2736
|
-
return /* @__PURE__ */
|
|
2990
|
+
return /* @__PURE__ */ jsx22(
|
|
2737
2991
|
ContextMenuPrimitive.Separator,
|
|
2738
2992
|
__spreadValues({
|
|
2739
2993
|
"data-slot": "context-menu-separator",
|
|
@@ -2747,7 +3001,7 @@ function ContextMenuShortcut(_a) {
|
|
|
2747
3001
|
} = _b, props = __objRest(_b, [
|
|
2748
3002
|
"className"
|
|
2749
3003
|
]);
|
|
2750
|
-
return /* @__PURE__ */
|
|
3004
|
+
return /* @__PURE__ */ jsx22(
|
|
2751
3005
|
"span",
|
|
2752
3006
|
__spreadValues({
|
|
2753
3007
|
"data-slot": "context-menu-shortcut",
|
|
@@ -2761,22 +3015,22 @@ function ContextMenuShortcut(_a) {
|
|
|
2761
3015
|
|
|
2762
3016
|
// components/ui/drawer.tsx
|
|
2763
3017
|
import { Drawer as DrawerPrimitive } from "vaul";
|
|
2764
|
-
import { jsx as
|
|
3018
|
+
import { jsx as jsx23, jsxs as jsxs15 } from "react/jsx-runtime";
|
|
2765
3019
|
function Drawer(_a) {
|
|
2766
3020
|
var props = __objRest(_a, []);
|
|
2767
|
-
return /* @__PURE__ */
|
|
3021
|
+
return /* @__PURE__ */ jsx23(DrawerPrimitive.Root, __spreadValues({ "data-slot": "drawer" }, props));
|
|
2768
3022
|
}
|
|
2769
3023
|
function DrawerTrigger(_a) {
|
|
2770
3024
|
var props = __objRest(_a, []);
|
|
2771
|
-
return /* @__PURE__ */
|
|
3025
|
+
return /* @__PURE__ */ jsx23(DrawerPrimitive.Trigger, __spreadValues({ "data-slot": "drawer-trigger" }, props));
|
|
2772
3026
|
}
|
|
2773
3027
|
function DrawerPortal(_a) {
|
|
2774
3028
|
var props = __objRest(_a, []);
|
|
2775
|
-
return /* @__PURE__ */
|
|
3029
|
+
return /* @__PURE__ */ jsx23(DrawerPrimitive.Portal, __spreadValues({ "data-slot": "drawer-portal" }, props));
|
|
2776
3030
|
}
|
|
2777
3031
|
function DrawerClose(_a) {
|
|
2778
3032
|
var props = __objRest(_a, []);
|
|
2779
|
-
return /* @__PURE__ */
|
|
3033
|
+
return /* @__PURE__ */ jsx23(DrawerPrimitive.Close, __spreadValues({ "data-slot": "drawer-close" }, props));
|
|
2780
3034
|
}
|
|
2781
3035
|
function DrawerOverlay(_a) {
|
|
2782
3036
|
var _b = _a, {
|
|
@@ -2784,7 +3038,7 @@ function DrawerOverlay(_a) {
|
|
|
2784
3038
|
} = _b, props = __objRest(_b, [
|
|
2785
3039
|
"className"
|
|
2786
3040
|
]);
|
|
2787
|
-
return /* @__PURE__ */
|
|
3041
|
+
return /* @__PURE__ */ jsx23(
|
|
2788
3042
|
DrawerPrimitive.Overlay,
|
|
2789
3043
|
__spreadValues({
|
|
2790
3044
|
"data-slot": "drawer-overlay",
|
|
@@ -2803,9 +3057,9 @@ function DrawerContent(_a) {
|
|
|
2803
3057
|
"className",
|
|
2804
3058
|
"children"
|
|
2805
3059
|
]);
|
|
2806
|
-
return /* @__PURE__ */
|
|
2807
|
-
/* @__PURE__ */
|
|
2808
|
-
/* @__PURE__ */
|
|
3060
|
+
return /* @__PURE__ */ jsxs15(DrawerPortal, { "data-slot": "drawer-portal", children: [
|
|
3061
|
+
/* @__PURE__ */ jsx23(DrawerOverlay, {}),
|
|
3062
|
+
/* @__PURE__ */ jsxs15(
|
|
2809
3063
|
DrawerPrimitive.Content,
|
|
2810
3064
|
__spreadProps(__spreadValues({
|
|
2811
3065
|
"data-slot": "drawer-content",
|
|
@@ -2819,7 +3073,7 @@ function DrawerContent(_a) {
|
|
|
2819
3073
|
)
|
|
2820
3074
|
}, props), {
|
|
2821
3075
|
children: [
|
|
2822
|
-
/* @__PURE__ */
|
|
3076
|
+
/* @__PURE__ */ jsx23("div", { className: "mx-auto mt-4 hidden h-2 w-[100px] shrink-0 rounded-full bg-border-default-default group-data-[vaul-drawer-direction=bottom]/drawer-content:block" }),
|
|
2823
3077
|
children
|
|
2824
3078
|
]
|
|
2825
3079
|
})
|
|
@@ -2828,7 +3082,7 @@ function DrawerContent(_a) {
|
|
|
2828
3082
|
}
|
|
2829
3083
|
function DrawerHeader(_a) {
|
|
2830
3084
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
2831
|
-
return /* @__PURE__ */
|
|
3085
|
+
return /* @__PURE__ */ jsx23(
|
|
2832
3086
|
"div",
|
|
2833
3087
|
__spreadValues({
|
|
2834
3088
|
"data-slot": "drawer-header",
|
|
@@ -2841,7 +3095,7 @@ function DrawerHeader(_a) {
|
|
|
2841
3095
|
}
|
|
2842
3096
|
function DrawerFooter(_a) {
|
|
2843
3097
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
2844
|
-
return /* @__PURE__ */
|
|
3098
|
+
return /* @__PURE__ */ jsx23(
|
|
2845
3099
|
"div",
|
|
2846
3100
|
__spreadValues({
|
|
2847
3101
|
"data-slot": "drawer-footer",
|
|
@@ -2855,7 +3109,7 @@ function DrawerTitle(_a) {
|
|
|
2855
3109
|
} = _b, props = __objRest(_b, [
|
|
2856
3110
|
"className"
|
|
2857
3111
|
]);
|
|
2858
|
-
return /* @__PURE__ */
|
|
3112
|
+
return /* @__PURE__ */ jsx23(
|
|
2859
3113
|
DrawerPrimitive.Title,
|
|
2860
3114
|
__spreadValues({
|
|
2861
3115
|
"data-slot": "drawer-title",
|
|
@@ -2869,7 +3123,7 @@ function DrawerDescription(_a) {
|
|
|
2869
3123
|
} = _b, props = __objRest(_b, [
|
|
2870
3124
|
"className"
|
|
2871
3125
|
]);
|
|
2872
|
-
return /* @__PURE__ */
|
|
3126
|
+
return /* @__PURE__ */ jsx23(
|
|
2873
3127
|
DrawerPrimitive.Description,
|
|
2874
3128
|
__spreadValues({
|
|
2875
3129
|
"data-slot": "drawer-description",
|
|
@@ -2879,20 +3133,20 @@ function DrawerDescription(_a) {
|
|
|
2879
3133
|
}
|
|
2880
3134
|
|
|
2881
3135
|
// components/ui/dropdown-menu.tsx
|
|
2882
|
-
import { CheckIcon as CheckIcon4, ChevronRightIcon as
|
|
3136
|
+
import { CheckIcon as CheckIcon4, ChevronRightIcon as ChevronRightIcon4, CircleIcon as CircleIcon2 } from "lucide-react";
|
|
2883
3137
|
import { DropdownMenu as DropdownMenuPrimitive } from "radix-ui";
|
|
2884
|
-
import { jsx as
|
|
3138
|
+
import { jsx as jsx24, jsxs as jsxs16 } from "react/jsx-runtime";
|
|
2885
3139
|
function DropdownMenu(_a) {
|
|
2886
3140
|
var props = __objRest(_a, []);
|
|
2887
|
-
return /* @__PURE__ */
|
|
3141
|
+
return /* @__PURE__ */ jsx24(DropdownMenuPrimitive.Root, __spreadValues({ "data-slot": "dropdown-menu" }, props));
|
|
2888
3142
|
}
|
|
2889
3143
|
function DropdownMenuPortal(_a) {
|
|
2890
3144
|
var props = __objRest(_a, []);
|
|
2891
|
-
return /* @__PURE__ */
|
|
3145
|
+
return /* @__PURE__ */ jsx24(DropdownMenuPrimitive.Portal, __spreadValues({ "data-slot": "dropdown-menu-portal" }, props));
|
|
2892
3146
|
}
|
|
2893
3147
|
function DropdownMenuTrigger(_a) {
|
|
2894
3148
|
var props = __objRest(_a, []);
|
|
2895
|
-
return /* @__PURE__ */
|
|
3149
|
+
return /* @__PURE__ */ jsx24(
|
|
2896
3150
|
DropdownMenuPrimitive.Trigger,
|
|
2897
3151
|
__spreadValues({
|
|
2898
3152
|
"data-slot": "dropdown-menu-trigger"
|
|
@@ -2907,7 +3161,7 @@ function DropdownMenuContent(_a) {
|
|
|
2907
3161
|
"className",
|
|
2908
3162
|
"sideOffset"
|
|
2909
3163
|
]);
|
|
2910
|
-
return /* @__PURE__ */
|
|
3164
|
+
return /* @__PURE__ */ jsx24(DropdownMenuPrimitive.Portal, { children: /* @__PURE__ */ jsx24(
|
|
2911
3165
|
DropdownMenuPrimitive.Content,
|
|
2912
3166
|
__spreadValues({
|
|
2913
3167
|
"data-slot": "dropdown-menu-content",
|
|
@@ -2921,7 +3175,7 @@ function DropdownMenuContent(_a) {
|
|
|
2921
3175
|
}
|
|
2922
3176
|
function DropdownMenuGroup(_a) {
|
|
2923
3177
|
var props = __objRest(_a, []);
|
|
2924
|
-
return /* @__PURE__ */
|
|
3178
|
+
return /* @__PURE__ */ jsx24(DropdownMenuPrimitive.Group, __spreadValues({ "data-slot": "dropdown-menu-group" }, props));
|
|
2925
3179
|
}
|
|
2926
3180
|
function DropdownMenuItem(_a) {
|
|
2927
3181
|
var _b = _a, {
|
|
@@ -2933,14 +3187,14 @@ function DropdownMenuItem(_a) {
|
|
|
2933
3187
|
"inset",
|
|
2934
3188
|
"variant"
|
|
2935
3189
|
]);
|
|
2936
|
-
return /* @__PURE__ */
|
|
3190
|
+
return /* @__PURE__ */ jsx24(
|
|
2937
3191
|
DropdownMenuPrimitive.Item,
|
|
2938
3192
|
__spreadValues({
|
|
2939
3193
|
"data-slot": "dropdown-menu-item",
|
|
2940
3194
|
"data-inset": inset,
|
|
2941
3195
|
"data-variant": variant,
|
|
2942
3196
|
className: cn(
|
|
2943
|
-
"relative flex cursor-default items-center gap-2 type-menu-item rounded-md px-2 py-1.5 outline-hidden select-none focus:bg-background-hover-default focus:text-text-prominent-default data-[disabled]:pointer-events-none data-[disabled]:
|
|
3197
|
+
"relative flex cursor-default items-center gap-2 type-menu-item rounded-md px-2 py-1.5 outline-hidden select-none focus:bg-background-hover-default focus:text-text-prominent-default data-[disabled]:pointer-events-none data-[disabled]:text-text-disabled-default data-[inset]:pl-8 data-[variant=destructive]:text-text-error-default data-[variant=destructive]:focus:bg-background-error-default data-[variant=destructive]:focus:text-text-error-default [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 [&_svg:not([class*='text-'])]:text-icon-subtle-default data-[variant=destructive]:*:[svg]:text-text-error-default!",
|
|
2944
3198
|
className
|
|
2945
3199
|
)
|
|
2946
3200
|
}, props)
|
|
@@ -2956,18 +3210,18 @@ function DropdownMenuCheckboxItem(_a) {
|
|
|
2956
3210
|
"children",
|
|
2957
3211
|
"checked"
|
|
2958
3212
|
]);
|
|
2959
|
-
return /* @__PURE__ */
|
|
3213
|
+
return /* @__PURE__ */ jsxs16(
|
|
2960
3214
|
DropdownMenuPrimitive.CheckboxItem,
|
|
2961
3215
|
__spreadProps(__spreadValues({
|
|
2962
3216
|
"data-slot": "dropdown-menu-checkbox-item",
|
|
2963
3217
|
className: cn(
|
|
2964
|
-
"relative flex cursor-default items-center gap-2 type-menu-item rounded-md py-1.5 pr-2 pl-8 outline-hidden select-none focus:bg-background-hover-default focus:text-text-prominent-default data-[disabled]:pointer-events-none data-[disabled]:
|
|
3218
|
+
"relative flex cursor-default items-center gap-2 type-menu-item rounded-md py-1.5 pr-2 pl-8 outline-hidden select-none focus:bg-background-hover-default focus:text-text-prominent-default data-[disabled]:pointer-events-none data-[disabled]:text-text-disabled-default [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
|
|
2965
3219
|
className
|
|
2966
3220
|
),
|
|
2967
3221
|
checked
|
|
2968
3222
|
}, props), {
|
|
2969
3223
|
children: [
|
|
2970
|
-
/* @__PURE__ */
|
|
3224
|
+
/* @__PURE__ */ jsx24("span", { className: "pointer-events-none absolute left-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ jsx24(DropdownMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx24(CheckIcon4, { className: "size-4" }) }) }),
|
|
2971
3225
|
children
|
|
2972
3226
|
]
|
|
2973
3227
|
})
|
|
@@ -2975,7 +3229,7 @@ function DropdownMenuCheckboxItem(_a) {
|
|
|
2975
3229
|
}
|
|
2976
3230
|
function DropdownMenuRadioGroup(_a) {
|
|
2977
3231
|
var props = __objRest(_a, []);
|
|
2978
|
-
return /* @__PURE__ */
|
|
3232
|
+
return /* @__PURE__ */ jsx24(
|
|
2979
3233
|
DropdownMenuPrimitive.RadioGroup,
|
|
2980
3234
|
__spreadValues({
|
|
2981
3235
|
"data-slot": "dropdown-menu-radio-group"
|
|
@@ -2990,17 +3244,17 @@ function DropdownMenuRadioItem(_a) {
|
|
|
2990
3244
|
"className",
|
|
2991
3245
|
"children"
|
|
2992
3246
|
]);
|
|
2993
|
-
return /* @__PURE__ */
|
|
3247
|
+
return /* @__PURE__ */ jsxs16(
|
|
2994
3248
|
DropdownMenuPrimitive.RadioItem,
|
|
2995
3249
|
__spreadProps(__spreadValues({
|
|
2996
3250
|
"data-slot": "dropdown-menu-radio-item",
|
|
2997
3251
|
className: cn(
|
|
2998
|
-
"relative flex cursor-default items-center gap-2 type-menu-item rounded-md py-1.5 pr-2 pl-8 outline-hidden select-none focus:bg-background-hover-default focus:text-text-prominent-default data-[disabled]:pointer-events-none data-[disabled]:
|
|
3252
|
+
"relative flex cursor-default items-center gap-2 type-menu-item rounded-md py-1.5 pr-2 pl-8 outline-hidden select-none focus:bg-background-hover-default focus:text-text-prominent-default data-[disabled]:pointer-events-none data-[disabled]:text-text-disabled-default [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
|
|
2999
3253
|
className
|
|
3000
3254
|
)
|
|
3001
3255
|
}, props), {
|
|
3002
3256
|
children: [
|
|
3003
|
-
/* @__PURE__ */
|
|
3257
|
+
/* @__PURE__ */ jsx24("span", { className: "pointer-events-none absolute left-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ jsx24(DropdownMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx24(CircleIcon2, { className: "size-2 fill-current" }) }) }),
|
|
3004
3258
|
children
|
|
3005
3259
|
]
|
|
3006
3260
|
})
|
|
@@ -3014,7 +3268,7 @@ function DropdownMenuLabel(_a) {
|
|
|
3014
3268
|
"className",
|
|
3015
3269
|
"inset"
|
|
3016
3270
|
]);
|
|
3017
|
-
return /* @__PURE__ */
|
|
3271
|
+
return /* @__PURE__ */ jsx24(
|
|
3018
3272
|
DropdownMenuPrimitive.Label,
|
|
3019
3273
|
__spreadValues({
|
|
3020
3274
|
"data-slot": "dropdown-menu-label",
|
|
@@ -3032,7 +3286,7 @@ function DropdownMenuSeparator(_a) {
|
|
|
3032
3286
|
} = _b, props = __objRest(_b, [
|
|
3033
3287
|
"className"
|
|
3034
3288
|
]);
|
|
3035
|
-
return /* @__PURE__ */
|
|
3289
|
+
return /* @__PURE__ */ jsx24(
|
|
3036
3290
|
DropdownMenuPrimitive.Separator,
|
|
3037
3291
|
__spreadValues({
|
|
3038
3292
|
"data-slot": "dropdown-menu-separator",
|
|
@@ -3046,7 +3300,7 @@ function DropdownMenuShortcut(_a) {
|
|
|
3046
3300
|
} = _b, props = __objRest(_b, [
|
|
3047
3301
|
"className"
|
|
3048
3302
|
]);
|
|
3049
|
-
return /* @__PURE__ */
|
|
3303
|
+
return /* @__PURE__ */ jsx24(
|
|
3050
3304
|
"span",
|
|
3051
3305
|
__spreadValues({
|
|
3052
3306
|
"data-slot": "dropdown-menu-shortcut",
|
|
@@ -3059,7 +3313,7 @@ function DropdownMenuShortcut(_a) {
|
|
|
3059
3313
|
}
|
|
3060
3314
|
function DropdownMenuSub(_a) {
|
|
3061
3315
|
var props = __objRest(_a, []);
|
|
3062
|
-
return /* @__PURE__ */
|
|
3316
|
+
return /* @__PURE__ */ jsx24(DropdownMenuPrimitive.Sub, __spreadValues({ "data-slot": "dropdown-menu-sub" }, props));
|
|
3063
3317
|
}
|
|
3064
3318
|
function DropdownMenuSubTrigger(_a) {
|
|
3065
3319
|
var _b = _a, {
|
|
@@ -3071,7 +3325,7 @@ function DropdownMenuSubTrigger(_a) {
|
|
|
3071
3325
|
"inset",
|
|
3072
3326
|
"children"
|
|
3073
3327
|
]);
|
|
3074
|
-
return /* @__PURE__ */
|
|
3328
|
+
return /* @__PURE__ */ jsxs16(
|
|
3075
3329
|
DropdownMenuPrimitive.SubTrigger,
|
|
3076
3330
|
__spreadProps(__spreadValues({
|
|
3077
3331
|
"data-slot": "dropdown-menu-sub-trigger",
|
|
@@ -3083,7 +3337,7 @@ function DropdownMenuSubTrigger(_a) {
|
|
|
3083
3337
|
}, props), {
|
|
3084
3338
|
children: [
|
|
3085
3339
|
children,
|
|
3086
|
-
/* @__PURE__ */
|
|
3340
|
+
/* @__PURE__ */ jsx24(ChevronRightIcon4, { className: "ml-auto size-4" })
|
|
3087
3341
|
]
|
|
3088
3342
|
})
|
|
3089
3343
|
);
|
|
@@ -3094,7 +3348,7 @@ function DropdownMenuSubContent(_a) {
|
|
|
3094
3348
|
} = _b, props = __objRest(_b, [
|
|
3095
3349
|
"className"
|
|
3096
3350
|
]);
|
|
3097
|
-
return /* @__PURE__ */
|
|
3351
|
+
return /* @__PURE__ */ jsx24(
|
|
3098
3352
|
DropdownMenuPrimitive.SubContent,
|
|
3099
3353
|
__spreadValues({
|
|
3100
3354
|
"data-slot": "dropdown-menu-sub-content",
|
|
@@ -3108,10 +3362,10 @@ function DropdownMenuSubContent(_a) {
|
|
|
3108
3362
|
|
|
3109
3363
|
// components/ui/empty.tsx
|
|
3110
3364
|
import { cva as cva6 } from "class-variance-authority";
|
|
3111
|
-
import { jsx as
|
|
3365
|
+
import { jsx as jsx25 } from "react/jsx-runtime";
|
|
3112
3366
|
function Empty(_a) {
|
|
3113
3367
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
3114
|
-
return /* @__PURE__ */
|
|
3368
|
+
return /* @__PURE__ */ jsx25(
|
|
3115
3369
|
"div",
|
|
3116
3370
|
__spreadValues({
|
|
3117
3371
|
"data-slot": "empty",
|
|
@@ -3124,7 +3378,7 @@ function Empty(_a) {
|
|
|
3124
3378
|
}
|
|
3125
3379
|
function EmptyHeader(_a) {
|
|
3126
3380
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
3127
|
-
return /* @__PURE__ */
|
|
3381
|
+
return /* @__PURE__ */ jsx25(
|
|
3128
3382
|
"div",
|
|
3129
3383
|
__spreadValues({
|
|
3130
3384
|
"data-slot": "empty-header",
|
|
@@ -3157,7 +3411,7 @@ function EmptyMedia(_a) {
|
|
|
3157
3411
|
"className",
|
|
3158
3412
|
"variant"
|
|
3159
3413
|
]);
|
|
3160
|
-
return /* @__PURE__ */
|
|
3414
|
+
return /* @__PURE__ */ jsx25(
|
|
3161
3415
|
"div",
|
|
3162
3416
|
__spreadValues({
|
|
3163
3417
|
"data-slot": "empty-icon",
|
|
@@ -3168,7 +3422,7 @@ function EmptyMedia(_a) {
|
|
|
3168
3422
|
}
|
|
3169
3423
|
function EmptyTitle(_a) {
|
|
3170
3424
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
3171
|
-
return /* @__PURE__ */
|
|
3425
|
+
return /* @__PURE__ */ jsx25(
|
|
3172
3426
|
"div",
|
|
3173
3427
|
__spreadValues({
|
|
3174
3428
|
"data-slot": "empty-title",
|
|
@@ -3178,7 +3432,7 @@ function EmptyTitle(_a) {
|
|
|
3178
3432
|
}
|
|
3179
3433
|
function EmptyDescription(_a) {
|
|
3180
3434
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
3181
|
-
return /* @__PURE__ */
|
|
3435
|
+
return /* @__PURE__ */ jsx25(
|
|
3182
3436
|
"div",
|
|
3183
3437
|
__spreadValues({
|
|
3184
3438
|
"data-slot": "empty-description",
|
|
@@ -3191,7 +3445,7 @@ function EmptyDescription(_a) {
|
|
|
3191
3445
|
}
|
|
3192
3446
|
function EmptyContent(_a) {
|
|
3193
3447
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
3194
|
-
return /* @__PURE__ */
|
|
3448
|
+
return /* @__PURE__ */ jsx25(
|
|
3195
3449
|
"div",
|
|
3196
3450
|
__spreadValues({
|
|
3197
3451
|
"data-slot": "empty-content",
|
|
@@ -3204,27 +3458,27 @@ function EmptyContent(_a) {
|
|
|
3204
3458
|
}
|
|
3205
3459
|
|
|
3206
3460
|
// components/ui/field.tsx
|
|
3207
|
-
import * as
|
|
3208
|
-
import { useMemo } from "react";
|
|
3461
|
+
import * as React7 from "react";
|
|
3462
|
+
import { useMemo as useMemo2 } from "react";
|
|
3209
3463
|
import { cva as cva7 } from "class-variance-authority";
|
|
3210
3464
|
|
|
3211
3465
|
// components/ui/label.tsx
|
|
3212
3466
|
import { Label as LabelPrimitive } from "radix-ui";
|
|
3213
|
-
import { jsx as
|
|
3467
|
+
import { jsx as jsx26 } from "react/jsx-runtime";
|
|
3214
3468
|
function Label(_a) {
|
|
3215
3469
|
var _b = _a, {
|
|
3216
3470
|
className
|
|
3217
3471
|
} = _b, props = __objRest(_b, [
|
|
3218
3472
|
"className"
|
|
3219
3473
|
]);
|
|
3220
|
-
return /* @__PURE__ */
|
|
3474
|
+
return /* @__PURE__ */ jsx26(
|
|
3221
3475
|
LabelPrimitive.Root,
|
|
3222
3476
|
__spreadValues({
|
|
3223
3477
|
"data-slot": "label",
|
|
3224
3478
|
className: cn(
|
|
3225
3479
|
// Colour is inherited on purpose: a Field marked data-invalid paints its
|
|
3226
3480
|
// subtree error-red, and the label follows.
|
|
3227
|
-
"type-label flex items-center gap-2 select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:
|
|
3481
|
+
"type-label flex items-center gap-2 select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:text-text-disabled-default peer-disabled:cursor-not-allowed peer-disabled:text-text-disabled-default",
|
|
3228
3482
|
className
|
|
3229
3483
|
)
|
|
3230
3484
|
}, props)
|
|
@@ -3233,7 +3487,7 @@ function Label(_a) {
|
|
|
3233
3487
|
|
|
3234
3488
|
// components/ui/separator.tsx
|
|
3235
3489
|
import { Separator as SeparatorPrimitive } from "radix-ui";
|
|
3236
|
-
import { jsx as
|
|
3490
|
+
import { jsx as jsx27 } from "react/jsx-runtime";
|
|
3237
3491
|
function Separator(_a) {
|
|
3238
3492
|
var _b = _a, {
|
|
3239
3493
|
className,
|
|
@@ -3244,7 +3498,7 @@ function Separator(_a) {
|
|
|
3244
3498
|
"orientation",
|
|
3245
3499
|
"decorative"
|
|
3246
3500
|
]);
|
|
3247
|
-
return /* @__PURE__ */
|
|
3501
|
+
return /* @__PURE__ */ jsx27(
|
|
3248
3502
|
SeparatorPrimitive.Root,
|
|
3249
3503
|
__spreadValues({
|
|
3250
3504
|
"data-slot": "separator",
|
|
@@ -3259,10 +3513,10 @@ function Separator(_a) {
|
|
|
3259
3513
|
}
|
|
3260
3514
|
|
|
3261
3515
|
// components/ui/field.tsx
|
|
3262
|
-
import { jsx as
|
|
3263
|
-
var FieldSizeContext =
|
|
3516
|
+
import { jsx as jsx28, jsxs as jsxs17 } from "react/jsx-runtime";
|
|
3517
|
+
var FieldSizeContext = React7.createContext("md");
|
|
3264
3518
|
function useFieldSize() {
|
|
3265
|
-
return
|
|
3519
|
+
return React7.useContext(FieldSizeContext);
|
|
3266
3520
|
}
|
|
3267
3521
|
var fieldLabelType = {
|
|
3268
3522
|
sm: "type-field-label-sm",
|
|
@@ -3271,7 +3525,7 @@ var fieldLabelType = {
|
|
|
3271
3525
|
};
|
|
3272
3526
|
function FieldSet(_a) {
|
|
3273
3527
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
3274
|
-
return /* @__PURE__ */
|
|
3528
|
+
return /* @__PURE__ */ jsx28(
|
|
3275
3529
|
"fieldset",
|
|
3276
3530
|
__spreadValues({
|
|
3277
3531
|
"data-slot": "field-set",
|
|
@@ -3291,7 +3545,7 @@ function FieldLegend(_a) {
|
|
|
3291
3545
|
"className",
|
|
3292
3546
|
"variant"
|
|
3293
3547
|
]);
|
|
3294
|
-
return /* @__PURE__ */
|
|
3548
|
+
return /* @__PURE__ */ jsx28(
|
|
3295
3549
|
"legend",
|
|
3296
3550
|
__spreadValues({
|
|
3297
3551
|
"data-slot": "field-legend",
|
|
@@ -3308,7 +3562,7 @@ function FieldLegend(_a) {
|
|
|
3308
3562
|
}
|
|
3309
3563
|
function FieldGroup(_a) {
|
|
3310
3564
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
3311
|
-
return /* @__PURE__ */
|
|
3565
|
+
return /* @__PURE__ */ jsx28(
|
|
3312
3566
|
"div",
|
|
3313
3567
|
__spreadValues({
|
|
3314
3568
|
"data-slot": "field-group",
|
|
@@ -3358,7 +3612,7 @@ function Field(_a) {
|
|
|
3358
3612
|
"orientation",
|
|
3359
3613
|
"size"
|
|
3360
3614
|
]);
|
|
3361
|
-
return /* @__PURE__ */
|
|
3615
|
+
return /* @__PURE__ */ jsx28(FieldSizeContext.Provider, { value: size != null ? size : "md", children: /* @__PURE__ */ jsx28(
|
|
3362
3616
|
"div",
|
|
3363
3617
|
__spreadValues({
|
|
3364
3618
|
role: "group",
|
|
@@ -3371,7 +3625,7 @@ function Field(_a) {
|
|
|
3371
3625
|
}
|
|
3372
3626
|
function FieldContent(_a) {
|
|
3373
3627
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
3374
|
-
return /* @__PURE__ */
|
|
3628
|
+
return /* @__PURE__ */ jsx28(
|
|
3375
3629
|
"div",
|
|
3376
3630
|
__spreadValues({
|
|
3377
3631
|
"data-slot": "field-content",
|
|
@@ -3389,13 +3643,13 @@ function FieldLabel(_a) {
|
|
|
3389
3643
|
"className"
|
|
3390
3644
|
]);
|
|
3391
3645
|
const size = useFieldSize();
|
|
3392
|
-
return /* @__PURE__ */
|
|
3646
|
+
return /* @__PURE__ */ jsx28(
|
|
3393
3647
|
Label,
|
|
3394
3648
|
__spreadValues({
|
|
3395
3649
|
"data-slot": "field-label",
|
|
3396
3650
|
className: cn(
|
|
3397
3651
|
fieldLabelType[size],
|
|
3398
|
-
"group/field-label peer/field-label flex w-fit gap-2 leading-snug group-data-[disabled=true]/field:
|
|
3652
|
+
"group/field-label peer/field-label flex w-fit gap-2 leading-snug group-data-[disabled=true]/field:text-text-disabled-default",
|
|
3399
3653
|
"has-[>[data-slot=field]]:w-full has-[>[data-slot=field]]:flex-col has-[>[data-slot=field]]:rounded-md has-[>[data-slot=field]]:border has-[>[data-slot=field]]:border-border-default-default [&>*]:data-[slot=field]:p-4",
|
|
3400
3654
|
"has-data-[state=checked]:border-border-brand-selected has-data-[state=checked]:bg-background-brand-selected",
|
|
3401
3655
|
className
|
|
@@ -3406,13 +3660,13 @@ function FieldLabel(_a) {
|
|
|
3406
3660
|
function FieldTitle(_a) {
|
|
3407
3661
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
3408
3662
|
const size = useFieldSize();
|
|
3409
|
-
return /* @__PURE__ */
|
|
3663
|
+
return /* @__PURE__ */ jsx28(
|
|
3410
3664
|
"div",
|
|
3411
3665
|
__spreadValues({
|
|
3412
3666
|
"data-slot": "field-label",
|
|
3413
3667
|
className: cn(
|
|
3414
3668
|
fieldLabelType[size],
|
|
3415
|
-
"flex w-fit items-center gap-2 group-data-[disabled=true]/field:
|
|
3669
|
+
"flex w-fit items-center gap-2 group-data-[disabled=true]/field:text-text-disabled-default",
|
|
3416
3670
|
className
|
|
3417
3671
|
)
|
|
3418
3672
|
}, props)
|
|
@@ -3420,7 +3674,7 @@ function FieldTitle(_a) {
|
|
|
3420
3674
|
}
|
|
3421
3675
|
function FieldDescription(_a) {
|
|
3422
3676
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
3423
|
-
return /* @__PURE__ */
|
|
3677
|
+
return /* @__PURE__ */ jsx28(
|
|
3424
3678
|
"p",
|
|
3425
3679
|
__spreadValues({
|
|
3426
3680
|
"data-slot": "field-description",
|
|
@@ -3441,7 +3695,7 @@ function FieldSeparator(_a) {
|
|
|
3441
3695
|
"children",
|
|
3442
3696
|
"className"
|
|
3443
3697
|
]);
|
|
3444
|
-
return /* @__PURE__ */
|
|
3698
|
+
return /* @__PURE__ */ jsxs17(
|
|
3445
3699
|
"div",
|
|
3446
3700
|
__spreadProps(__spreadValues({
|
|
3447
3701
|
"data-slot": "field-separator",
|
|
@@ -3452,8 +3706,8 @@ function FieldSeparator(_a) {
|
|
|
3452
3706
|
)
|
|
3453
3707
|
}, props), {
|
|
3454
3708
|
children: [
|
|
3455
|
-
/* @__PURE__ */
|
|
3456
|
-
children && /* @__PURE__ */
|
|
3709
|
+
/* @__PURE__ */ jsx28(Separator, { className: "absolute inset-0 top-1/2" }),
|
|
3710
|
+
children && /* @__PURE__ */ jsx28(
|
|
3457
3711
|
"span",
|
|
3458
3712
|
{
|
|
3459
3713
|
className: "relative mx-auto block w-fit bg-background-primary-surface px-2 text-text-subtle-default",
|
|
@@ -3475,7 +3729,7 @@ function FieldError(_a) {
|
|
|
3475
3729
|
"children",
|
|
3476
3730
|
"errors"
|
|
3477
3731
|
]);
|
|
3478
|
-
const content =
|
|
3732
|
+
const content = useMemo2(() => {
|
|
3479
3733
|
var _a2;
|
|
3480
3734
|
if (children) {
|
|
3481
3735
|
return children;
|
|
@@ -3489,14 +3743,14 @@ function FieldError(_a) {
|
|
|
3489
3743
|
if ((uniqueErrors == null ? void 0 : uniqueErrors.length) == 1) {
|
|
3490
3744
|
return (_a2 = uniqueErrors[0]) == null ? void 0 : _a2.message;
|
|
3491
3745
|
}
|
|
3492
|
-
return /* @__PURE__ */
|
|
3493
|
-
(error, index) => (error == null ? void 0 : error.message) && /* @__PURE__ */
|
|
3746
|
+
return /* @__PURE__ */ jsx28("ul", { className: "ml-4 flex list-disc flex-col gap-1", children: uniqueErrors.map(
|
|
3747
|
+
(error, index) => (error == null ? void 0 : error.message) && /* @__PURE__ */ jsx28("li", { children: error.message }, index)
|
|
3494
3748
|
) });
|
|
3495
3749
|
}, [children, errors]);
|
|
3496
3750
|
if (!content) {
|
|
3497
3751
|
return null;
|
|
3498
3752
|
}
|
|
3499
|
-
return /* @__PURE__ */
|
|
3753
|
+
return /* @__PURE__ */ jsx28(
|
|
3500
3754
|
"div",
|
|
3501
3755
|
__spreadProps(__spreadValues({
|
|
3502
3756
|
role: "alert",
|
|
@@ -3510,14 +3764,14 @@ function FieldError(_a) {
|
|
|
3510
3764
|
|
|
3511
3765
|
// components/ui/hover-card.tsx
|
|
3512
3766
|
import { HoverCard as HoverCardPrimitive } from "radix-ui";
|
|
3513
|
-
import { jsx as
|
|
3767
|
+
import { jsx as jsx29 } from "react/jsx-runtime";
|
|
3514
3768
|
function HoverCard(_a) {
|
|
3515
3769
|
var props = __objRest(_a, []);
|
|
3516
|
-
return /* @__PURE__ */
|
|
3770
|
+
return /* @__PURE__ */ jsx29(HoverCardPrimitive.Root, __spreadValues({ "data-slot": "hover-card" }, props));
|
|
3517
3771
|
}
|
|
3518
3772
|
function HoverCardTrigger(_a) {
|
|
3519
3773
|
var props = __objRest(_a, []);
|
|
3520
|
-
return /* @__PURE__ */
|
|
3774
|
+
return /* @__PURE__ */ jsx29(HoverCardPrimitive.Trigger, __spreadValues({ "data-slot": "hover-card-trigger" }, props));
|
|
3521
3775
|
}
|
|
3522
3776
|
function HoverCardContent(_a) {
|
|
3523
3777
|
var _b = _a, {
|
|
@@ -3529,7 +3783,7 @@ function HoverCardContent(_a) {
|
|
|
3529
3783
|
"align",
|
|
3530
3784
|
"sideOffset"
|
|
3531
3785
|
]);
|
|
3532
|
-
return /* @__PURE__ */
|
|
3786
|
+
return /* @__PURE__ */ jsx29(HoverCardPrimitive.Portal, { "data-slot": "hover-card-portal", children: /* @__PURE__ */ jsx29(
|
|
3533
3787
|
HoverCardPrimitive.Content,
|
|
3534
3788
|
__spreadValues({
|
|
3535
3789
|
"data-slot": "hover-card-content",
|
|
@@ -3545,15 +3799,18 @@ function HoverCardContent(_a) {
|
|
|
3545
3799
|
|
|
3546
3800
|
// components/ui/input.tsx
|
|
3547
3801
|
import { cva as cva8 } from "class-variance-authority";
|
|
3548
|
-
import { jsx as
|
|
3802
|
+
import { jsx as jsx30 } from "react/jsx-runtime";
|
|
3549
3803
|
var inputVariants = cva8(
|
|
3550
3804
|
[
|
|
3551
3805
|
"w-full min-w-0 rounded-xs border font-body transition-[color,box-shadow] outline-none",
|
|
3552
3806
|
"file:inline-flex file:border-0 file:bg-transparent file:font-medium",
|
|
3553
|
-
"disabled:pointer-events-none disabled:cursor-not-allowed disabled:
|
|
3807
|
+
"disabled:pointer-events-none disabled:cursor-not-allowed disabled:text-text-disabled-default disabled:[background-image:linear-gradient(var(--background-disabled-default),var(--background-disabled-default))]",
|
|
3554
3808
|
// Read-only stays focusable and selectable (users copy codes/amounts);
|
|
3555
|
-
// only the surface flattens.
|
|
3556
|
-
|
|
3809
|
+
// only the surface flattens. Matched on the [readonly] attribute, not the
|
|
3810
|
+
// `:read-only` pseudo-class — that also matches disabled inputs, which
|
|
3811
|
+
// would hand disabled the read-only surface and erase the two states'
|
|
3812
|
+
// difference.
|
|
3813
|
+
"[&[readonly]]:border-transparent [&[readonly]]:bg-background-secondary-surface",
|
|
3557
3814
|
"focus-visible:ring-[3px]",
|
|
3558
3815
|
"aria-invalid:border-border-error-default aria-invalid:ring-ring-error-soft"
|
|
3559
3816
|
].join(" "),
|
|
@@ -3574,7 +3831,7 @@ var inputVariants = cva8(
|
|
|
3574
3831
|
"on-brand": [
|
|
3575
3832
|
"border-(--primitive-white-alpha-24) bg-(--primitive-black-alpha-32) text-text-on-brand-static",
|
|
3576
3833
|
"file:text-text-on-brand-static",
|
|
3577
|
-
"placeholder:text-
|
|
3834
|
+
"placeholder:text-text-on-brand-subtle-static",
|
|
3578
3835
|
"selection:bg-background-static-white selection:text-text-brand-container-static",
|
|
3579
3836
|
"focus-visible:border-background-static-white focus-visible:ring-(--primitive-white-alpha-40)"
|
|
3580
3837
|
].join(" "),
|
|
@@ -3582,7 +3839,7 @@ var inputVariants = cva8(
|
|
|
3582
3839
|
inverse: [
|
|
3583
3840
|
"border-(--primitive-white-alpha-24) bg-(--primitive-black-alpha-32) text-text-on-brand-static",
|
|
3584
3841
|
"file:text-text-on-brand-static",
|
|
3585
|
-
"placeholder:text-
|
|
3842
|
+
"placeholder:text-text-on-brand-subtle-static",
|
|
3586
3843
|
"selection:bg-background-static-white selection:text-text-brand-container-static",
|
|
3587
3844
|
"focus-visible:border-background-static-white focus-visible:ring-(--primitive-white-alpha-40)"
|
|
3588
3845
|
].join(" ")
|
|
@@ -3613,7 +3870,7 @@ function Input(_a) {
|
|
|
3613
3870
|
]);
|
|
3614
3871
|
const fieldSize = useFieldSize();
|
|
3615
3872
|
const resolvedSize = size != null ? size : fieldSize;
|
|
3616
|
-
return /* @__PURE__ */
|
|
3873
|
+
return /* @__PURE__ */ jsx30(
|
|
3617
3874
|
"input",
|
|
3618
3875
|
__spreadValues({
|
|
3619
3876
|
type,
|
|
@@ -3626,19 +3883,19 @@ function Input(_a) {
|
|
|
3626
3883
|
}
|
|
3627
3884
|
|
|
3628
3885
|
// components/ui/input-group.tsx
|
|
3629
|
-
import * as
|
|
3886
|
+
import * as React8 from "react";
|
|
3630
3887
|
import { cva as cva9 } from "class-variance-authority";
|
|
3631
3888
|
|
|
3632
3889
|
// components/ui/textarea.tsx
|
|
3633
|
-
import { jsx as
|
|
3890
|
+
import { jsx as jsx31 } from "react/jsx-runtime";
|
|
3634
3891
|
function Textarea(_a) {
|
|
3635
3892
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
3636
|
-
return /* @__PURE__ */
|
|
3893
|
+
return /* @__PURE__ */ jsx31(
|
|
3637
3894
|
"textarea",
|
|
3638
3895
|
__spreadValues({
|
|
3639
3896
|
"data-slot": "textarea",
|
|
3640
3897
|
className: cn(
|
|
3641
|
-
"type-textarea flex field-sizing-content min-h-16 w-full rounded-xs border border-border-default-default bg-background-primary-surface px-3 py-2 text-text-prominent-default font-body transition-[color,box-shadow] outline-none placeholder:text-text-subtle-default selection:bg-background-brand-default selection:text-text-on-brand-static focus-visible:border-ring-focus-default focus-visible:ring-[3px] focus-visible:ring-ring-focus-soft disabled:cursor-not-allowed disabled:
|
|
3898
|
+
"type-textarea flex field-sizing-content min-h-16 w-full rounded-xs border border-border-default-default bg-background-primary-surface px-3 py-2 text-text-prominent-default font-body transition-[color,box-shadow] outline-none placeholder:text-text-subtle-default selection:bg-background-brand-default selection:text-text-on-brand-static focus-visible:border-ring-focus-default focus-visible:ring-[3px] focus-visible:ring-ring-focus-soft disabled:cursor-not-allowed disabled:text-text-disabled-default disabled:[background-image:linear-gradient(var(--background-disabled-default),var(--background-disabled-default))] aria-invalid:border-border-error-default aria-invalid:ring-ring-error-soft",
|
|
3642
3899
|
className
|
|
3643
3900
|
)
|
|
3644
3901
|
}, props)
|
|
@@ -3646,9 +3903,9 @@ function Textarea(_a) {
|
|
|
3646
3903
|
}
|
|
3647
3904
|
|
|
3648
3905
|
// components/ui/input-group.tsx
|
|
3649
|
-
import { jsx as
|
|
3650
|
-
var InputGroupSizeContext =
|
|
3651
|
-
var InputGroupVariantContext =
|
|
3906
|
+
import { jsx as jsx32 } from "react/jsx-runtime";
|
|
3907
|
+
var InputGroupSizeContext = React8.createContext("md");
|
|
3908
|
+
var InputGroupVariantContext = React8.createContext("default");
|
|
3652
3909
|
var inputGroupVariants = cva9(
|
|
3653
3910
|
[
|
|
3654
3911
|
"group/input-group relative flex w-full items-center rounded-xs border",
|
|
@@ -3707,11 +3964,11 @@ function InputGroup(_a) {
|
|
|
3707
3964
|
]);
|
|
3708
3965
|
const fieldSize = useFieldSize();
|
|
3709
3966
|
const resolvedSize = size != null ? size : fieldSize;
|
|
3710
|
-
return /* @__PURE__ */
|
|
3967
|
+
return /* @__PURE__ */ jsx32(
|
|
3711
3968
|
InputGroupVariantContext.Provider,
|
|
3712
3969
|
{
|
|
3713
3970
|
value: variant,
|
|
3714
|
-
children: /* @__PURE__ */
|
|
3971
|
+
children: /* @__PURE__ */ jsx32(InputGroupSizeContext.Provider, { value: resolvedSize, children: /* @__PURE__ */ jsx32(
|
|
3715
3972
|
"div",
|
|
3716
3973
|
__spreadValues({
|
|
3717
3974
|
"data-slot": "input-group",
|
|
@@ -3727,10 +3984,15 @@ function InputGroup(_a) {
|
|
|
3727
3984
|
var inputGroupAddonVariants = cva9(
|
|
3728
3985
|
[
|
|
3729
3986
|
"flex h-auto cursor-text items-center justify-center gap-2 py-1.5 text-text-subtle-default select-none",
|
|
3730
|
-
// Swap addon text/icon colour when inside an on-brand group.
|
|
3731
|
-
|
|
3732
|
-
|
|
3733
|
-
"group-data-[
|
|
3987
|
+
// Swap addon text/icon colour when inside an on-brand group. On brand the
|
|
3988
|
+
// ink ladder inverts — white down through the alpha rungs — so this is the
|
|
3989
|
+
// semantic subtle rung, not a hand-rolled primitive.
|
|
3990
|
+
"group-data-[variant=on-brand]/input-group:text-text-on-brand-subtle-static",
|
|
3991
|
+
"group-data-[variant=inverse]/input-group:text-text-on-brand-subtle-static",
|
|
3992
|
+
"group-data-[disabled=true]/input-group:has-disabled:text-text-disabled-default",
|
|
3993
|
+
// …but on brand the neutral disabled ink has no contrast, so the on-brand
|
|
3994
|
+
// rung wins there.
|
|
3995
|
+
"group-data-[variant=on-brand]/input-group:group-data-[disabled=true]/input-group:has-disabled:text-text-on-brand-disabled-default",
|
|
3734
3996
|
"[&>kbd]:rounded-[calc(var(--radius)-5px)]",
|
|
3735
3997
|
// Text size inherits the group's --input-* ladder (set on the group in CSS).
|
|
3736
3998
|
"group-data-[size=sm]/input-group:py-1",
|
|
@@ -3761,7 +4023,7 @@ function InputGroupAddon(_a) {
|
|
|
3761
4023
|
"className",
|
|
3762
4024
|
"align"
|
|
3763
4025
|
]);
|
|
3764
|
-
return /* @__PURE__ */
|
|
4026
|
+
return /* @__PURE__ */ jsx32(
|
|
3765
4027
|
"div",
|
|
3766
4028
|
__spreadValues({
|
|
3767
4029
|
role: "group",
|
|
@@ -3808,7 +4070,7 @@ function InputGroupButton(_a) {
|
|
|
3808
4070
|
"variant",
|
|
3809
4071
|
"size"
|
|
3810
4072
|
]);
|
|
3811
|
-
return /* @__PURE__ */
|
|
4073
|
+
return /* @__PURE__ */ jsx32(
|
|
3812
4074
|
Button,
|
|
3813
4075
|
__spreadValues({
|
|
3814
4076
|
type,
|
|
@@ -3821,14 +4083,15 @@ function InputGroupButton(_a) {
|
|
|
3821
4083
|
}
|
|
3822
4084
|
function InputGroupText(_a) {
|
|
3823
4085
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
3824
|
-
return /* @__PURE__ */
|
|
4086
|
+
return /* @__PURE__ */ jsx32(
|
|
3825
4087
|
"span",
|
|
3826
4088
|
__spreadValues({
|
|
3827
4089
|
className: cn(
|
|
3828
4090
|
"flex items-center gap-2 text-text-subtle-default",
|
|
3829
|
-
// Swap text/icon colour when inside an on-brand group
|
|
3830
|
-
|
|
3831
|
-
"group-data-[variant=
|
|
4091
|
+
// Swap text/icon colour when inside an on-brand group — the on-brand
|
|
4092
|
+
// subtle rung, not a hand-rolled primitive.
|
|
4093
|
+
"group-data-[variant=on-brand]/input-group:text-text-on-brand-subtle-static",
|
|
4094
|
+
"group-data-[variant=inverse]/input-group:text-text-on-brand-subtle-static",
|
|
3832
4095
|
// Text size inherits the group's --input-* ladder; icons track it.
|
|
3833
4096
|
"group-data-[size=sm]/input-group:[&_svg:not([class*='size-'])]:size-3.5",
|
|
3834
4097
|
"group-data-[size=md]/input-group:[&_svg:not([class*='size-'])]:size-4",
|
|
@@ -3849,11 +4112,11 @@ function InputGroupInput(_a) {
|
|
|
3849
4112
|
"size",
|
|
3850
4113
|
"variant"
|
|
3851
4114
|
]);
|
|
3852
|
-
const groupSize =
|
|
3853
|
-
const groupVariant =
|
|
4115
|
+
const groupSize = React8.useContext(InputGroupSizeContext);
|
|
4116
|
+
const groupVariant = React8.useContext(InputGroupVariantContext);
|
|
3854
4117
|
const size = sizeProp != null ? sizeProp : groupSize;
|
|
3855
4118
|
const variant = variantProp != null ? variantProp : groupVariant;
|
|
3856
|
-
return /* @__PURE__ */
|
|
4119
|
+
return /* @__PURE__ */ jsx32(
|
|
3857
4120
|
Input,
|
|
3858
4121
|
__spreadValues({
|
|
3859
4122
|
"data-slot": "input-group-control",
|
|
@@ -3872,7 +4135,7 @@ function InputGroupTextarea(_a) {
|
|
|
3872
4135
|
} = _b, props = __objRest(_b, [
|
|
3873
4136
|
"className"
|
|
3874
4137
|
]);
|
|
3875
|
-
return /* @__PURE__ */
|
|
4138
|
+
return /* @__PURE__ */ jsx32(
|
|
3876
4139
|
Textarea,
|
|
3877
4140
|
__spreadValues({
|
|
3878
4141
|
"data-slot": "input-group-control",
|
|
@@ -3885,10 +4148,10 @@ function InputGroupTextarea(_a) {
|
|
|
3885
4148
|
}
|
|
3886
4149
|
|
|
3887
4150
|
// components/ui/input-otp.tsx
|
|
3888
|
-
import * as
|
|
4151
|
+
import * as React9 from "react";
|
|
3889
4152
|
import { OTPInput, OTPInputContext } from "input-otp";
|
|
3890
4153
|
import { MinusIcon } from "lucide-react";
|
|
3891
|
-
import { jsx as
|
|
4154
|
+
import { jsx as jsx33, jsxs as jsxs18 } from "react/jsx-runtime";
|
|
3892
4155
|
function InputOTP(_a) {
|
|
3893
4156
|
var _b = _a, {
|
|
3894
4157
|
className,
|
|
@@ -3897,12 +4160,12 @@ function InputOTP(_a) {
|
|
|
3897
4160
|
"className",
|
|
3898
4161
|
"containerClassName"
|
|
3899
4162
|
]);
|
|
3900
|
-
return /* @__PURE__ */
|
|
4163
|
+
return /* @__PURE__ */ jsx33(
|
|
3901
4164
|
OTPInput,
|
|
3902
4165
|
__spreadValues({
|
|
3903
4166
|
"data-slot": "input-otp",
|
|
3904
4167
|
containerClassName: cn(
|
|
3905
|
-
"flex items-center gap-2 has-disabled:
|
|
4168
|
+
"flex items-center gap-2 has-disabled:text-text-disabled-default",
|
|
3906
4169
|
containerClassName
|
|
3907
4170
|
),
|
|
3908
4171
|
className: cn("disabled:cursor-not-allowed", className)
|
|
@@ -3911,7 +4174,7 @@ function InputOTP(_a) {
|
|
|
3911
4174
|
}
|
|
3912
4175
|
function InputOTPGroup(_a) {
|
|
3913
4176
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
3914
|
-
return /* @__PURE__ */
|
|
4177
|
+
return /* @__PURE__ */ jsx33(
|
|
3915
4178
|
"div",
|
|
3916
4179
|
__spreadValues({
|
|
3917
4180
|
"data-slot": "input-otp-group",
|
|
@@ -3928,9 +4191,9 @@ function InputOTPSlot(_a) {
|
|
|
3928
4191
|
"className"
|
|
3929
4192
|
]);
|
|
3930
4193
|
var _a2;
|
|
3931
|
-
const inputOTPContext =
|
|
4194
|
+
const inputOTPContext = React9.useContext(OTPInputContext);
|
|
3932
4195
|
const { char, hasFakeCaret, isActive } = (_a2 = inputOTPContext == null ? void 0 : inputOTPContext.slots[index]) != null ? _a2 : {};
|
|
3933
|
-
return /* @__PURE__ */
|
|
4196
|
+
return /* @__PURE__ */ jsxs18(
|
|
3934
4197
|
"div",
|
|
3935
4198
|
__spreadProps(__spreadValues({
|
|
3936
4199
|
"data-slot": "input-otp-slot",
|
|
@@ -3942,20 +4205,20 @@ function InputOTPSlot(_a) {
|
|
|
3942
4205
|
}, props), {
|
|
3943
4206
|
children: [
|
|
3944
4207
|
char,
|
|
3945
|
-
hasFakeCaret && /* @__PURE__ */
|
|
4208
|
+
hasFakeCaret && /* @__PURE__ */ jsx33("div", { className: "pointer-events-none absolute inset-0 flex items-center justify-center", children: /* @__PURE__ */ jsx33("div", { className: "h-4 w-px animate-caret-blink bg-text-prominent-default duration-1000" }) })
|
|
3946
4209
|
]
|
|
3947
4210
|
})
|
|
3948
4211
|
);
|
|
3949
4212
|
}
|
|
3950
4213
|
function InputOTPSeparator(_a) {
|
|
3951
4214
|
var props = __objRest(_a, []);
|
|
3952
|
-
return /* @__PURE__ */
|
|
4215
|
+
return /* @__PURE__ */ jsx33("div", __spreadProps(__spreadValues({ "data-slot": "input-otp-separator", role: "separator" }, props), { children: /* @__PURE__ */ jsx33(MinusIcon, {}) }));
|
|
3953
4216
|
}
|
|
3954
4217
|
|
|
3955
4218
|
// components/ui/item.tsx
|
|
3956
4219
|
import { cva as cva10 } from "class-variance-authority";
|
|
3957
4220
|
import { Slot as Slot6 } from "radix-ui";
|
|
3958
|
-
import { jsx as
|
|
4221
|
+
import { jsx as jsx34 } from "react/jsx-runtime";
|
|
3959
4222
|
function ItemGroup(_a) {
|
|
3960
4223
|
var _b = _a, {
|
|
3961
4224
|
className,
|
|
@@ -3964,7 +4227,7 @@ function ItemGroup(_a) {
|
|
|
3964
4227
|
"className",
|
|
3965
4228
|
"divider"
|
|
3966
4229
|
]);
|
|
3967
|
-
return /* @__PURE__ */
|
|
4230
|
+
return /* @__PURE__ */ jsx34(
|
|
3968
4231
|
"div",
|
|
3969
4232
|
__spreadValues({
|
|
3970
4233
|
role: "list",
|
|
@@ -3997,7 +4260,7 @@ function ItemSeparator(_a) {
|
|
|
3997
4260
|
} = _b, props = __objRest(_b, [
|
|
3998
4261
|
"className"
|
|
3999
4262
|
]);
|
|
4000
|
-
return /* @__PURE__ */
|
|
4263
|
+
return /* @__PURE__ */ jsx34(
|
|
4001
4264
|
Separator,
|
|
4002
4265
|
__spreadValues({
|
|
4003
4266
|
"data-slot": "item-separator",
|
|
@@ -4039,7 +4302,7 @@ function Item(_a) {
|
|
|
4039
4302
|
"asChild"
|
|
4040
4303
|
]);
|
|
4041
4304
|
const Comp = asChild ? Slot6.Root : "div";
|
|
4042
|
-
return /* @__PURE__ */
|
|
4305
|
+
return /* @__PURE__ */ jsx34(
|
|
4043
4306
|
Comp,
|
|
4044
4307
|
__spreadValues({
|
|
4045
4308
|
"data-slot": "item",
|
|
@@ -4072,7 +4335,7 @@ function ItemMedia(_a) {
|
|
|
4072
4335
|
"className",
|
|
4073
4336
|
"variant"
|
|
4074
4337
|
]);
|
|
4075
|
-
return /* @__PURE__ */
|
|
4338
|
+
return /* @__PURE__ */ jsx34(
|
|
4076
4339
|
"div",
|
|
4077
4340
|
__spreadValues({
|
|
4078
4341
|
"data-slot": "item-media",
|
|
@@ -4083,7 +4346,7 @@ function ItemMedia(_a) {
|
|
|
4083
4346
|
}
|
|
4084
4347
|
function ItemContent(_a) {
|
|
4085
4348
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
4086
|
-
return /* @__PURE__ */
|
|
4349
|
+
return /* @__PURE__ */ jsx34(
|
|
4087
4350
|
"div",
|
|
4088
4351
|
__spreadValues({
|
|
4089
4352
|
"data-slot": "item-content",
|
|
@@ -4096,7 +4359,7 @@ function ItemContent(_a) {
|
|
|
4096
4359
|
}
|
|
4097
4360
|
function ItemTitle(_a) {
|
|
4098
4361
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
4099
|
-
return /* @__PURE__ */
|
|
4362
|
+
return /* @__PURE__ */ jsx34(
|
|
4100
4363
|
"div",
|
|
4101
4364
|
__spreadValues({
|
|
4102
4365
|
"data-slot": "item-title",
|
|
@@ -4109,7 +4372,7 @@ function ItemTitle(_a) {
|
|
|
4109
4372
|
}
|
|
4110
4373
|
function ItemDescription(_a) {
|
|
4111
4374
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
4112
|
-
return /* @__PURE__ */
|
|
4375
|
+
return /* @__PURE__ */ jsx34(
|
|
4113
4376
|
"p",
|
|
4114
4377
|
__spreadValues({
|
|
4115
4378
|
"data-slot": "item-description",
|
|
@@ -4123,7 +4386,7 @@ function ItemDescription(_a) {
|
|
|
4123
4386
|
}
|
|
4124
4387
|
function ItemActions(_a) {
|
|
4125
4388
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
4126
|
-
return /* @__PURE__ */
|
|
4389
|
+
return /* @__PURE__ */ jsx34(
|
|
4127
4390
|
"div",
|
|
4128
4391
|
__spreadValues({
|
|
4129
4392
|
"data-slot": "item-actions",
|
|
@@ -4133,7 +4396,7 @@ function ItemActions(_a) {
|
|
|
4133
4396
|
}
|
|
4134
4397
|
function ItemHeader(_a) {
|
|
4135
4398
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
4136
|
-
return /* @__PURE__ */
|
|
4399
|
+
return /* @__PURE__ */ jsx34(
|
|
4137
4400
|
"div",
|
|
4138
4401
|
__spreadValues({
|
|
4139
4402
|
"data-slot": "item-header",
|
|
@@ -4146,7 +4409,7 @@ function ItemHeader(_a) {
|
|
|
4146
4409
|
}
|
|
4147
4410
|
function ItemFooter(_a) {
|
|
4148
4411
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
4149
|
-
return /* @__PURE__ */
|
|
4412
|
+
return /* @__PURE__ */ jsx34(
|
|
4150
4413
|
"div",
|
|
4151
4414
|
__spreadValues({
|
|
4152
4415
|
"data-slot": "item-footer",
|
|
@@ -4161,7 +4424,7 @@ function ItemFooter(_a) {
|
|
|
4161
4424
|
// components/ui/link.tsx
|
|
4162
4425
|
import { cva as cva11 } from "class-variance-authority";
|
|
4163
4426
|
import { Slot as Slot7 } from "radix-ui";
|
|
4164
|
-
import { jsx as
|
|
4427
|
+
import { jsx as jsx35 } from "react/jsx-runtime";
|
|
4165
4428
|
var linkVariants = cva11(
|
|
4166
4429
|
[
|
|
4167
4430
|
"inline-flex shrink-0 items-center gap-1.5 whitespace-nowrap transition-colors outline-none focus-visible:ring-[3px] focus-visible:ring-ring-focus-strong active:opacity-60 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg]:inline font-display normal-case",
|
|
@@ -4203,7 +4466,7 @@ function Link(_a) {
|
|
|
4203
4466
|
"asChild"
|
|
4204
4467
|
]);
|
|
4205
4468
|
const Comp = asChild ? Slot7.Root : "a";
|
|
4206
|
-
return /* @__PURE__ */
|
|
4469
|
+
return /* @__PURE__ */ jsx35(
|
|
4207
4470
|
Comp,
|
|
4208
4471
|
__spreadValues({
|
|
4209
4472
|
"data-slot": "link",
|
|
@@ -4215,16 +4478,16 @@ function Link(_a) {
|
|
|
4215
4478
|
}
|
|
4216
4479
|
|
|
4217
4480
|
// components/ui/menubar.tsx
|
|
4218
|
-
import { CheckIcon as CheckIcon5, ChevronRightIcon as
|
|
4481
|
+
import { CheckIcon as CheckIcon5, ChevronRightIcon as ChevronRightIcon5, CircleIcon as CircleIcon3 } from "lucide-react";
|
|
4219
4482
|
import { Menubar as MenubarPrimitive } from "radix-ui";
|
|
4220
|
-
import { jsx as
|
|
4483
|
+
import { jsx as jsx36, jsxs as jsxs19 } from "react/jsx-runtime";
|
|
4221
4484
|
function Menubar(_a) {
|
|
4222
4485
|
var _b = _a, {
|
|
4223
4486
|
className
|
|
4224
4487
|
} = _b, props = __objRest(_b, [
|
|
4225
4488
|
"className"
|
|
4226
4489
|
]);
|
|
4227
|
-
return /* @__PURE__ */
|
|
4490
|
+
return /* @__PURE__ */ jsx36(
|
|
4228
4491
|
MenubarPrimitive.Root,
|
|
4229
4492
|
__spreadValues({
|
|
4230
4493
|
"data-slot": "menubar",
|
|
@@ -4237,19 +4500,19 @@ function Menubar(_a) {
|
|
|
4237
4500
|
}
|
|
4238
4501
|
function MenubarMenu(_a) {
|
|
4239
4502
|
var props = __objRest(_a, []);
|
|
4240
|
-
return /* @__PURE__ */
|
|
4503
|
+
return /* @__PURE__ */ jsx36(MenubarPrimitive.Menu, __spreadValues({ "data-slot": "menubar-menu" }, props));
|
|
4241
4504
|
}
|
|
4242
4505
|
function MenubarGroup(_a) {
|
|
4243
4506
|
var props = __objRest(_a, []);
|
|
4244
|
-
return /* @__PURE__ */
|
|
4507
|
+
return /* @__PURE__ */ jsx36(MenubarPrimitive.Group, __spreadValues({ "data-slot": "menubar-group" }, props));
|
|
4245
4508
|
}
|
|
4246
4509
|
function MenubarPortal(_a) {
|
|
4247
4510
|
var props = __objRest(_a, []);
|
|
4248
|
-
return /* @__PURE__ */
|
|
4511
|
+
return /* @__PURE__ */ jsx36(MenubarPrimitive.Portal, __spreadValues({ "data-slot": "menubar-portal" }, props));
|
|
4249
4512
|
}
|
|
4250
4513
|
function MenubarRadioGroup(_a) {
|
|
4251
4514
|
var props = __objRest(_a, []);
|
|
4252
|
-
return /* @__PURE__ */
|
|
4515
|
+
return /* @__PURE__ */ jsx36(MenubarPrimitive.RadioGroup, __spreadValues({ "data-slot": "menubar-radio-group" }, props));
|
|
4253
4516
|
}
|
|
4254
4517
|
function MenubarTrigger(_a) {
|
|
4255
4518
|
var _b = _a, {
|
|
@@ -4257,7 +4520,7 @@ function MenubarTrigger(_a) {
|
|
|
4257
4520
|
} = _b, props = __objRest(_b, [
|
|
4258
4521
|
"className"
|
|
4259
4522
|
]);
|
|
4260
|
-
return /* @__PURE__ */
|
|
4523
|
+
return /* @__PURE__ */ jsx36(
|
|
4261
4524
|
MenubarPrimitive.Trigger,
|
|
4262
4525
|
__spreadValues({
|
|
4263
4526
|
"data-slot": "menubar-trigger",
|
|
@@ -4280,7 +4543,7 @@ function MenubarContent(_a) {
|
|
|
4280
4543
|
"alignOffset",
|
|
4281
4544
|
"sideOffset"
|
|
4282
4545
|
]);
|
|
4283
|
-
return /* @__PURE__ */
|
|
4546
|
+
return /* @__PURE__ */ jsx36(MenubarPortal, { children: /* @__PURE__ */ jsx36(
|
|
4284
4547
|
MenubarPrimitive.Content,
|
|
4285
4548
|
__spreadValues({
|
|
4286
4549
|
"data-slot": "menubar-content",
|
|
@@ -4304,14 +4567,14 @@ function MenubarItem(_a) {
|
|
|
4304
4567
|
"inset",
|
|
4305
4568
|
"variant"
|
|
4306
4569
|
]);
|
|
4307
|
-
return /* @__PURE__ */
|
|
4570
|
+
return /* @__PURE__ */ jsx36(
|
|
4308
4571
|
MenubarPrimitive.Item,
|
|
4309
4572
|
__spreadValues({
|
|
4310
4573
|
"data-slot": "menubar-item",
|
|
4311
4574
|
"data-inset": inset,
|
|
4312
4575
|
"data-variant": variant,
|
|
4313
4576
|
className: cn(
|
|
4314
|
-
"relative flex cursor-default items-center gap-2 type-menu-item rounded-md px-2 py-1.5 outline-hidden select-none hover:bg-background-hover-default hover:text-text-prominent-default focus:bg-background-hover-default focus:text-text-prominent-default data-[disabled]:pointer-events-none data-[disabled]:
|
|
4577
|
+
"relative flex cursor-default items-center gap-2 type-menu-item rounded-md px-2 py-1.5 outline-hidden select-none hover:bg-background-hover-default hover:text-text-prominent-default focus:bg-background-hover-default focus:text-text-prominent-default data-[disabled]:pointer-events-none data-[disabled]:text-text-disabled-default data-[inset]:pl-8 data-[variant=destructive]:text-text-error-default data-[variant=destructive]:focus:bg-background-error-default data-[variant=destructive]:focus:text-text-error-default [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 [&_svg:not([class*='text-'])]:text-icon-subtle-default data-[variant=destructive]:*:[svg]:text-text-error-default!",
|
|
4315
4578
|
className
|
|
4316
4579
|
)
|
|
4317
4580
|
}, props)
|
|
@@ -4327,18 +4590,18 @@ function MenubarCheckboxItem(_a) {
|
|
|
4327
4590
|
"children",
|
|
4328
4591
|
"checked"
|
|
4329
4592
|
]);
|
|
4330
|
-
return /* @__PURE__ */
|
|
4593
|
+
return /* @__PURE__ */ jsxs19(
|
|
4331
4594
|
MenubarPrimitive.CheckboxItem,
|
|
4332
4595
|
__spreadProps(__spreadValues({
|
|
4333
4596
|
"data-slot": "menubar-checkbox-item",
|
|
4334
4597
|
className: cn(
|
|
4335
|
-
"relative flex cursor-default items-center gap-2 type-menu-item rounded-md py-1.5 pr-2 pl-8 outline-hidden select-none hover:bg-background-hover-default hover:text-text-prominent-default focus:bg-background-hover-default focus:text-text-prominent-default data-[disabled]:pointer-events-none data-[disabled]:
|
|
4598
|
+
"relative flex cursor-default items-center gap-2 type-menu-item rounded-md py-1.5 pr-2 pl-8 outline-hidden select-none hover:bg-background-hover-default hover:text-text-prominent-default focus:bg-background-hover-default focus:text-text-prominent-default data-[disabled]:pointer-events-none data-[disabled]:text-text-disabled-default [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
|
|
4336
4599
|
className
|
|
4337
4600
|
),
|
|
4338
4601
|
checked
|
|
4339
4602
|
}, props), {
|
|
4340
4603
|
children: [
|
|
4341
|
-
/* @__PURE__ */
|
|
4604
|
+
/* @__PURE__ */ jsx36("span", { className: "pointer-events-none absolute left-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ jsx36(MenubarPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx36(CheckIcon5, { className: "size-4" }) }) }),
|
|
4342
4605
|
children
|
|
4343
4606
|
]
|
|
4344
4607
|
})
|
|
@@ -4352,17 +4615,17 @@ function MenubarRadioItem(_a) {
|
|
|
4352
4615
|
"className",
|
|
4353
4616
|
"children"
|
|
4354
4617
|
]);
|
|
4355
|
-
return /* @__PURE__ */
|
|
4618
|
+
return /* @__PURE__ */ jsxs19(
|
|
4356
4619
|
MenubarPrimitive.RadioItem,
|
|
4357
4620
|
__spreadProps(__spreadValues({
|
|
4358
4621
|
"data-slot": "menubar-radio-item",
|
|
4359
4622
|
className: cn(
|
|
4360
|
-
"relative flex cursor-default items-center gap-2 type-menu-item rounded-md py-1.5 pr-2 pl-8 outline-hidden select-none hover:bg-background-hover-default hover:text-text-prominent-default focus:bg-background-hover-default focus:text-text-prominent-default data-[disabled]:pointer-events-none data-[disabled]:
|
|
4623
|
+
"relative flex cursor-default items-center gap-2 type-menu-item rounded-md py-1.5 pr-2 pl-8 outline-hidden select-none hover:bg-background-hover-default hover:text-text-prominent-default focus:bg-background-hover-default focus:text-text-prominent-default data-[disabled]:pointer-events-none data-[disabled]:text-text-disabled-default [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
|
|
4361
4624
|
className
|
|
4362
4625
|
)
|
|
4363
4626
|
}, props), {
|
|
4364
4627
|
children: [
|
|
4365
|
-
/* @__PURE__ */
|
|
4628
|
+
/* @__PURE__ */ jsx36("span", { className: "pointer-events-none absolute left-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ jsx36(MenubarPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx36(CircleIcon3, { className: "size-2 fill-current" }) }) }),
|
|
4366
4629
|
children
|
|
4367
4630
|
]
|
|
4368
4631
|
})
|
|
@@ -4376,7 +4639,7 @@ function MenubarLabel(_a) {
|
|
|
4376
4639
|
"className",
|
|
4377
4640
|
"inset"
|
|
4378
4641
|
]);
|
|
4379
|
-
return /* @__PURE__ */
|
|
4642
|
+
return /* @__PURE__ */ jsx36(
|
|
4380
4643
|
MenubarPrimitive.Label,
|
|
4381
4644
|
__spreadValues({
|
|
4382
4645
|
"data-slot": "menubar-label",
|
|
@@ -4394,7 +4657,7 @@ function MenubarSeparator(_a) {
|
|
|
4394
4657
|
} = _b, props = __objRest(_b, [
|
|
4395
4658
|
"className"
|
|
4396
4659
|
]);
|
|
4397
|
-
return /* @__PURE__ */
|
|
4660
|
+
return /* @__PURE__ */ jsx36(
|
|
4398
4661
|
MenubarPrimitive.Separator,
|
|
4399
4662
|
__spreadValues({
|
|
4400
4663
|
"data-slot": "menubar-separator",
|
|
@@ -4408,7 +4671,7 @@ function MenubarShortcut(_a) {
|
|
|
4408
4671
|
} = _b, props = __objRest(_b, [
|
|
4409
4672
|
"className"
|
|
4410
4673
|
]);
|
|
4411
|
-
return /* @__PURE__ */
|
|
4674
|
+
return /* @__PURE__ */ jsx36(
|
|
4412
4675
|
"span",
|
|
4413
4676
|
__spreadValues({
|
|
4414
4677
|
"data-slot": "menubar-shortcut",
|
|
@@ -4421,7 +4684,7 @@ function MenubarShortcut(_a) {
|
|
|
4421
4684
|
}
|
|
4422
4685
|
function MenubarSub(_a) {
|
|
4423
4686
|
var props = __objRest(_a, []);
|
|
4424
|
-
return /* @__PURE__ */
|
|
4687
|
+
return /* @__PURE__ */ jsx36(MenubarPrimitive.Sub, __spreadValues({ "data-slot": "menubar-sub" }, props));
|
|
4425
4688
|
}
|
|
4426
4689
|
function MenubarSubTrigger(_a) {
|
|
4427
4690
|
var _b = _a, {
|
|
@@ -4433,7 +4696,7 @@ function MenubarSubTrigger(_a) {
|
|
|
4433
4696
|
"inset",
|
|
4434
4697
|
"children"
|
|
4435
4698
|
]);
|
|
4436
|
-
return /* @__PURE__ */
|
|
4699
|
+
return /* @__PURE__ */ jsxs19(
|
|
4437
4700
|
MenubarPrimitive.SubTrigger,
|
|
4438
4701
|
__spreadProps(__spreadValues({
|
|
4439
4702
|
"data-slot": "menubar-sub-trigger",
|
|
@@ -4445,7 +4708,7 @@ function MenubarSubTrigger(_a) {
|
|
|
4445
4708
|
}, props), {
|
|
4446
4709
|
children: [
|
|
4447
4710
|
children,
|
|
4448
|
-
/* @__PURE__ */
|
|
4711
|
+
/* @__PURE__ */ jsx36(ChevronRightIcon5, { className: "ml-auto" })
|
|
4449
4712
|
]
|
|
4450
4713
|
})
|
|
4451
4714
|
);
|
|
@@ -4456,7 +4719,7 @@ function MenubarSubContent(_a) {
|
|
|
4456
4719
|
} = _b, props = __objRest(_b, [
|
|
4457
4720
|
"className"
|
|
4458
4721
|
]);
|
|
4459
|
-
return /* @__PURE__ */
|
|
4722
|
+
return /* @__PURE__ */ jsx36(
|
|
4460
4723
|
MenubarPrimitive.SubContent,
|
|
4461
4724
|
__spreadValues({
|
|
4462
4725
|
"data-slot": "menubar-sub-content",
|
|
@@ -4470,7 +4733,7 @@ function MenubarSubContent(_a) {
|
|
|
4470
4733
|
|
|
4471
4734
|
// components/ui/native-select.tsx
|
|
4472
4735
|
import { ChevronDownIcon as ChevronDownIcon4 } from "lucide-react";
|
|
4473
|
-
import { jsx as
|
|
4736
|
+
import { jsx as jsx37, jsxs as jsxs20 } from "react/jsx-runtime";
|
|
4474
4737
|
var sizeClasses = {
|
|
4475
4738
|
sm: "type-native-select-sm h-8 py-1",
|
|
4476
4739
|
md: "type-native-select-md h-10 py-2",
|
|
@@ -4486,26 +4749,26 @@ function NativeSelect(_a) {
|
|
|
4486
4749
|
]);
|
|
4487
4750
|
const fieldSize = useFieldSize();
|
|
4488
4751
|
const resolvedSize = size === "default" || size == null ? size == null ? fieldSize : "md" : size;
|
|
4489
|
-
return /* @__PURE__ */
|
|
4752
|
+
return /* @__PURE__ */ jsxs20(
|
|
4490
4753
|
"div",
|
|
4491
4754
|
{
|
|
4492
|
-
className: "group/native-select relative w-fit has-[select:disabled]:
|
|
4755
|
+
className: "group/native-select relative w-fit has-[select:disabled]:text-text-disabled-default",
|
|
4493
4756
|
"data-slot": "native-select-wrapper",
|
|
4494
4757
|
children: [
|
|
4495
|
-
/* @__PURE__ */
|
|
4758
|
+
/* @__PURE__ */ jsx37(
|
|
4496
4759
|
"select",
|
|
4497
4760
|
__spreadValues({
|
|
4498
4761
|
"data-slot": "native-select",
|
|
4499
4762
|
"data-size": resolvedSize,
|
|
4500
4763
|
className: cn(
|
|
4501
|
-
"w-full min-w-0 appearance-none rounded-xs border border-border-default-default bg-background-primary-surface px-3 pr-9 text-text-prominent-default transition-[color,box-shadow] outline-none selection:bg-background-brand-default selection:text-text-on-brand-static disabled:pointer-events-none disabled:cursor-not-allowed",
|
|
4764
|
+
"w-full min-w-0 appearance-none rounded-xs border border-border-default-default bg-background-primary-surface px-3 pr-9 text-text-prominent-default transition-[color,box-shadow] outline-none selection:bg-background-brand-default selection:text-text-on-brand-static disabled:pointer-events-none disabled:cursor-not-allowed disabled:[background-image:linear-gradient(var(--background-disabled-default),var(--background-disabled-default))]",
|
|
4502
4765
|
"focus-visible:border-ring-focus-default focus-visible:ring-[3px] focus-visible:ring-ring-focus-soft",
|
|
4503
4766
|
sizeClasses[resolvedSize],
|
|
4504
4767
|
className
|
|
4505
4768
|
)
|
|
4506
4769
|
}, props)
|
|
4507
4770
|
),
|
|
4508
|
-
/* @__PURE__ */
|
|
4771
|
+
/* @__PURE__ */ jsx37(
|
|
4509
4772
|
ChevronDownIcon4,
|
|
4510
4773
|
{
|
|
4511
4774
|
className: "pointer-events-none absolute top-1/2 right-3.5 size-4 -translate-y-1/2 text-icon-subtle-default select-none",
|
|
@@ -4519,7 +4782,7 @@ function NativeSelect(_a) {
|
|
|
4519
4782
|
}
|
|
4520
4783
|
function NativeSelectOption(_a) {
|
|
4521
4784
|
var props = __objRest(_a, []);
|
|
4522
|
-
return /* @__PURE__ */
|
|
4785
|
+
return /* @__PURE__ */ jsx37("option", __spreadValues({ "data-slot": "native-select-option" }, props));
|
|
4523
4786
|
}
|
|
4524
4787
|
function NativeSelectOptGroup(_a) {
|
|
4525
4788
|
var _b = _a, {
|
|
@@ -4527,7 +4790,7 @@ function NativeSelectOptGroup(_a) {
|
|
|
4527
4790
|
} = _b, props = __objRest(_b, [
|
|
4528
4791
|
"className"
|
|
4529
4792
|
]);
|
|
4530
|
-
return /* @__PURE__ */
|
|
4793
|
+
return /* @__PURE__ */ jsx37(
|
|
4531
4794
|
"optgroup",
|
|
4532
4795
|
__spreadValues({
|
|
4533
4796
|
"data-slot": "native-select-optgroup",
|
|
@@ -4540,7 +4803,7 @@ function NativeSelectOptGroup(_a) {
|
|
|
4540
4803
|
import { cva as cva12 } from "class-variance-authority";
|
|
4541
4804
|
import { ChevronDownIcon as ChevronDownIcon5 } from "lucide-react";
|
|
4542
4805
|
import { NavigationMenu as NavigationMenuPrimitive } from "radix-ui";
|
|
4543
|
-
import { jsx as
|
|
4806
|
+
import { jsx as jsx38, jsxs as jsxs21 } from "react/jsx-runtime";
|
|
4544
4807
|
function NavigationMenu(_a) {
|
|
4545
4808
|
var _b = _a, {
|
|
4546
4809
|
className,
|
|
@@ -4551,7 +4814,7 @@ function NavigationMenu(_a) {
|
|
|
4551
4814
|
"children",
|
|
4552
4815
|
"viewport"
|
|
4553
4816
|
]);
|
|
4554
|
-
return /* @__PURE__ */
|
|
4817
|
+
return /* @__PURE__ */ jsxs21(
|
|
4555
4818
|
NavigationMenuPrimitive.Root,
|
|
4556
4819
|
__spreadProps(__spreadValues({
|
|
4557
4820
|
"data-slot": "navigation-menu",
|
|
@@ -4563,7 +4826,7 @@ function NavigationMenu(_a) {
|
|
|
4563
4826
|
}, props), {
|
|
4564
4827
|
children: [
|
|
4565
4828
|
children,
|
|
4566
|
-
viewport && /* @__PURE__ */
|
|
4829
|
+
viewport && /* @__PURE__ */ jsx38(NavigationMenuViewport, {})
|
|
4567
4830
|
]
|
|
4568
4831
|
})
|
|
4569
4832
|
);
|
|
@@ -4574,7 +4837,7 @@ function NavigationMenuList(_a) {
|
|
|
4574
4837
|
} = _b, props = __objRest(_b, [
|
|
4575
4838
|
"className"
|
|
4576
4839
|
]);
|
|
4577
|
-
return /* @__PURE__ */
|
|
4840
|
+
return /* @__PURE__ */ jsx38(
|
|
4578
4841
|
NavigationMenuPrimitive.List,
|
|
4579
4842
|
__spreadValues({
|
|
4580
4843
|
"data-slot": "navigation-menu-list",
|
|
@@ -4591,7 +4854,7 @@ function NavigationMenuItem(_a) {
|
|
|
4591
4854
|
} = _b, props = __objRest(_b, [
|
|
4592
4855
|
"className"
|
|
4593
4856
|
]);
|
|
4594
|
-
return /* @__PURE__ */
|
|
4857
|
+
return /* @__PURE__ */ jsx38(
|
|
4595
4858
|
NavigationMenuPrimitive.Item,
|
|
4596
4859
|
__spreadValues({
|
|
4597
4860
|
"data-slot": "navigation-menu-item",
|
|
@@ -4600,7 +4863,7 @@ function NavigationMenuItem(_a) {
|
|
|
4600
4863
|
);
|
|
4601
4864
|
}
|
|
4602
4865
|
var navigationMenuTriggerStyle = cva12(
|
|
4603
|
-
"group type-menu-trigger inline-flex h-10 w-max items-center justify-center rounded-md bg-background-primary-surface px-4 py-2 transition-[color,box-shadow] outline-none hover:bg-background-hover-default hover:text-text-prominent-default focus:bg-background-hover-default focus:text-text-prominent-default focus-visible:ring-[3px] focus-visible:ring-ring-focus-strong focus-visible:outline-1 disabled:pointer-events-none disabled:
|
|
4866
|
+
"group type-menu-trigger inline-flex h-10 w-max items-center justify-center rounded-md bg-background-primary-surface px-4 py-2 transition-[color,box-shadow] outline-none hover:bg-background-hover-default hover:text-text-prominent-default focus:bg-background-hover-default focus:text-text-prominent-default focus-visible:ring-[3px] focus-visible:ring-ring-focus-strong focus-visible:outline-1 disabled:pointer-events-none disabled:text-text-disabled-default data-[state=open]:bg-background-hover-default data-[state=open]:text-text-prominent-default data-[state=open]:hover:bg-background-hover-default data-[state=open]:focus:bg-background-hover-default"
|
|
4604
4867
|
);
|
|
4605
4868
|
function NavigationMenuTrigger(_a) {
|
|
4606
4869
|
var _b = _a, {
|
|
@@ -4610,7 +4873,7 @@ function NavigationMenuTrigger(_a) {
|
|
|
4610
4873
|
"className",
|
|
4611
4874
|
"children"
|
|
4612
4875
|
]);
|
|
4613
|
-
return /* @__PURE__ */
|
|
4876
|
+
return /* @__PURE__ */ jsxs21(
|
|
4614
4877
|
NavigationMenuPrimitive.Trigger,
|
|
4615
4878
|
__spreadProps(__spreadValues({
|
|
4616
4879
|
"data-slot": "navigation-menu-trigger",
|
|
@@ -4619,7 +4882,7 @@ function NavigationMenuTrigger(_a) {
|
|
|
4619
4882
|
children: [
|
|
4620
4883
|
children,
|
|
4621
4884
|
" ",
|
|
4622
|
-
/* @__PURE__ */
|
|
4885
|
+
/* @__PURE__ */ jsx38(
|
|
4623
4886
|
ChevronDownIcon5,
|
|
4624
4887
|
{
|
|
4625
4888
|
className: "relative top-[1px] ml-1 size-3 transition duration-slow group-data-[state=open]:rotate-180",
|
|
@@ -4636,7 +4899,7 @@ function NavigationMenuContent(_a) {
|
|
|
4636
4899
|
} = _b, props = __objRest(_b, [
|
|
4637
4900
|
"className"
|
|
4638
4901
|
]);
|
|
4639
|
-
return /* @__PURE__ */
|
|
4902
|
+
return /* @__PURE__ */ jsx38(
|
|
4640
4903
|
NavigationMenuPrimitive.Content,
|
|
4641
4904
|
__spreadValues({
|
|
4642
4905
|
"data-slot": "navigation-menu-content",
|
|
@@ -4654,13 +4917,13 @@ function NavigationMenuViewport(_a) {
|
|
|
4654
4917
|
} = _b, props = __objRest(_b, [
|
|
4655
4918
|
"className"
|
|
4656
4919
|
]);
|
|
4657
|
-
return /* @__PURE__ */
|
|
4920
|
+
return /* @__PURE__ */ jsx38(
|
|
4658
4921
|
"div",
|
|
4659
4922
|
{
|
|
4660
4923
|
className: cn(
|
|
4661
4924
|
"absolute top-full left-0 isolate z-50 flex justify-center"
|
|
4662
4925
|
),
|
|
4663
|
-
children: /* @__PURE__ */
|
|
4926
|
+
children: /* @__PURE__ */ jsx38(
|
|
4664
4927
|
NavigationMenuPrimitive.Viewport,
|
|
4665
4928
|
__spreadValues({
|
|
4666
4929
|
"data-slot": "navigation-menu-viewport",
|
|
@@ -4679,7 +4942,7 @@ function NavigationMenuLink(_a) {
|
|
|
4679
4942
|
} = _b, props = __objRest(_b, [
|
|
4680
4943
|
"className"
|
|
4681
4944
|
]);
|
|
4682
|
-
return /* @__PURE__ */
|
|
4945
|
+
return /* @__PURE__ */ jsx38(
|
|
4683
4946
|
NavigationMenuPrimitive.Link,
|
|
4684
4947
|
__spreadValues({
|
|
4685
4948
|
"data-slot": "navigation-menu-link",
|
|
@@ -4696,7 +4959,7 @@ function NavigationMenuIndicator(_a) {
|
|
|
4696
4959
|
} = _b, props = __objRest(_b, [
|
|
4697
4960
|
"className"
|
|
4698
4961
|
]);
|
|
4699
|
-
return /* @__PURE__ */
|
|
4962
|
+
return /* @__PURE__ */ jsx38(
|
|
4700
4963
|
NavigationMenuPrimitive.Indicator,
|
|
4701
4964
|
__spreadProps(__spreadValues({
|
|
4702
4965
|
"data-slot": "navigation-menu-indicator",
|
|
@@ -4705,15 +4968,15 @@ function NavigationMenuIndicator(_a) {
|
|
|
4705
4968
|
className
|
|
4706
4969
|
)
|
|
4707
4970
|
}, props), {
|
|
4708
|
-
children: /* @__PURE__ */
|
|
4971
|
+
children: /* @__PURE__ */ jsx38("div", { className: "relative top-[60%] h-2 w-2 rotate-45 rounded-tl-sm bg-border-default-default" })
|
|
4709
4972
|
})
|
|
4710
4973
|
);
|
|
4711
4974
|
}
|
|
4712
4975
|
|
|
4713
4976
|
// components/ui/numpad.tsx
|
|
4714
|
-
import * as
|
|
4977
|
+
import * as React10 from "react";
|
|
4715
4978
|
import { Delete } from "lucide-react";
|
|
4716
|
-
import { jsx as
|
|
4979
|
+
import { jsx as jsx39 } from "react/jsx-runtime";
|
|
4717
4980
|
var LONG_PRESS_MS = 600;
|
|
4718
4981
|
function Numpad(_a) {
|
|
4719
4982
|
var _b = _a, {
|
|
@@ -4729,8 +4992,8 @@ function Numpad(_a) {
|
|
|
4729
4992
|
"decimal",
|
|
4730
4993
|
"disabled"
|
|
4731
4994
|
]);
|
|
4732
|
-
const holdTimer =
|
|
4733
|
-
const longPressFired =
|
|
4995
|
+
const holdTimer = React10.useRef(null);
|
|
4996
|
+
const longPressFired = React10.useRef(false);
|
|
4734
4997
|
const startHold = () => {
|
|
4735
4998
|
longPressFired.current = false;
|
|
4736
4999
|
holdTimer.current = setTimeout(() => {
|
|
@@ -4742,7 +5005,7 @@ function Numpad(_a) {
|
|
|
4742
5005
|
if (holdTimer.current) clearTimeout(holdTimer.current);
|
|
4743
5006
|
holdTimer.current = null;
|
|
4744
5007
|
};
|
|
4745
|
-
|
|
5008
|
+
React10.useEffect(() => cancelHold, []);
|
|
4746
5009
|
const keys = [
|
|
4747
5010
|
"1",
|
|
4748
5011
|
"2",
|
|
@@ -4757,7 +5020,7 @@ function Numpad(_a) {
|
|
|
4757
5020
|
"0",
|
|
4758
5021
|
"backspace"
|
|
4759
5022
|
];
|
|
4760
|
-
return /* @__PURE__ */
|
|
5023
|
+
return /* @__PURE__ */ jsx39(
|
|
4761
5024
|
"div",
|
|
4762
5025
|
__spreadProps(__spreadValues({
|
|
4763
5026
|
"data-slot": "numpad",
|
|
@@ -4765,12 +5028,12 @@ function Numpad(_a) {
|
|
|
4765
5028
|
"aria-label": "Number pad",
|
|
4766
5029
|
className: cn(
|
|
4767
5030
|
"grid w-full grid-cols-3 gap-1",
|
|
4768
|
-
disabled && "pointer-events-none
|
|
5031
|
+
disabled && "pointer-events-none [background-image:linear-gradient(var(--background-disabled-default),var(--background-disabled-default))] text-text-disabled-default",
|
|
4769
5032
|
className
|
|
4770
5033
|
)
|
|
4771
5034
|
}, props), {
|
|
4772
5035
|
children: keys.map(
|
|
4773
|
-
(key, i) => key === null ? /* @__PURE__ */
|
|
5036
|
+
(key, i) => key === null ? /* @__PURE__ */ jsx39("span", { "aria-hidden": true }, `empty-${i}`) : /* @__PURE__ */ jsx39(
|
|
4774
5037
|
"button",
|
|
4775
5038
|
{
|
|
4776
5039
|
type: "button",
|
|
@@ -4795,7 +5058,7 @@ function Numpad(_a) {
|
|
|
4795
5058
|
}
|
|
4796
5059
|
onKeyPress == null ? void 0 : onKeyPress(key);
|
|
4797
5060
|
},
|
|
4798
|
-
children: key === "backspace" ? /* @__PURE__ */
|
|
5061
|
+
children: key === "backspace" ? /* @__PURE__ */ jsx39(Delete, { className: "size-5.5" }) : key
|
|
4799
5062
|
},
|
|
4800
5063
|
key
|
|
4801
5064
|
)
|
|
@@ -4804,102 +5067,6 @@ function Numpad(_a) {
|
|
|
4804
5067
|
);
|
|
4805
5068
|
}
|
|
4806
5069
|
|
|
4807
|
-
// components/ui/pagination.tsx
|
|
4808
|
-
import {
|
|
4809
|
-
ChevronLeftIcon as ChevronLeftIcon2,
|
|
4810
|
-
ChevronRightIcon as ChevronRightIcon5,
|
|
4811
|
-
MoreHorizontalIcon
|
|
4812
|
-
} from "lucide-react";
|
|
4813
|
-
import { jsx as jsx39, jsxs as jsxs21 } from "react/jsx-runtime";
|
|
4814
|
-
function Pagination(_a) {
|
|
4815
|
-
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
4816
|
-
return /* @__PURE__ */ jsx39(
|
|
4817
|
-
"nav",
|
|
4818
|
-
__spreadValues({
|
|
4819
|
-
role: "navigation",
|
|
4820
|
-
"aria-label": "pagination",
|
|
4821
|
-
"data-slot": "pagination",
|
|
4822
|
-
className: cn("mx-auto flex w-full justify-center", className)
|
|
4823
|
-
}, props)
|
|
4824
|
-
);
|
|
4825
|
-
}
|
|
4826
|
-
function PaginationContent(_a) {
|
|
4827
|
-
var _b = _a, {
|
|
4828
|
-
className
|
|
4829
|
-
} = _b, props = __objRest(_b, [
|
|
4830
|
-
"className"
|
|
4831
|
-
]);
|
|
4832
|
-
return /* @__PURE__ */ jsx39(
|
|
4833
|
-
"ul",
|
|
4834
|
-
__spreadValues({
|
|
4835
|
-
"data-slot": "pagination-content",
|
|
4836
|
-
className: cn("flex flex-row items-center gap-1", className)
|
|
4837
|
-
}, props)
|
|
4838
|
-
);
|
|
4839
|
-
}
|
|
4840
|
-
function PaginationItem(_a) {
|
|
4841
|
-
var props = __objRest(_a, []);
|
|
4842
|
-
return /* @__PURE__ */ jsx39("li", __spreadValues({ "data-slot": "pagination-item" }, props));
|
|
4843
|
-
}
|
|
4844
|
-
function PaginationLink(_a) {
|
|
4845
|
-
var _b = _a, {
|
|
4846
|
-
className,
|
|
4847
|
-
isActive
|
|
4848
|
-
} = _b, props = __objRest(_b, [
|
|
4849
|
-
"className",
|
|
4850
|
-
"isActive"
|
|
4851
|
-
]);
|
|
4852
|
-
return /* @__PURE__ */ jsx39(
|
|
4853
|
-
"a",
|
|
4854
|
-
__spreadValues({
|
|
4855
|
-
"aria-current": isActive ? "page" : void 0,
|
|
4856
|
-
"data-slot": "pagination-link",
|
|
4857
|
-
"data-active": isActive,
|
|
4858
|
-
className: cn(
|
|
4859
|
-
"type-pagination inline-flex shrink-0 items-center justify-center size-10 rounded-full font-display whitespace-nowrap transition-[color,background-color,border-color] outline-none border focus-visible:ring-[3px] focus-visible:ring-ring-focus-strong",
|
|
4860
|
-
isActive ? "bg-background-brand-selected border-border-brand-selected text-text-brand-selected" : "bg-transparent border-transparent text-text-prominent-default hover:bg-background-hover-default",
|
|
4861
|
-
className
|
|
4862
|
-
)
|
|
4863
|
-
}, props)
|
|
4864
|
-
);
|
|
4865
|
-
}
|
|
4866
|
-
function PaginationPrevious(_a) {
|
|
4867
|
-
var _b = _a, {
|
|
4868
|
-
className
|
|
4869
|
-
} = _b, props = __objRest(_b, [
|
|
4870
|
-
"className"
|
|
4871
|
-
]);
|
|
4872
|
-
return /* @__PURE__ */ jsx39(Button, { asChild: true, variant: "tertiary", size: "icon-md", className: cn(className), children: /* @__PURE__ */ jsx39("a", __spreadProps(__spreadValues({ "aria-label": "Go to previous page", "data-slot": "pagination-link" }, props), { children: /* @__PURE__ */ jsx39(ChevronLeftIcon2, { className: "size-5" }) })) });
|
|
4873
|
-
}
|
|
4874
|
-
function PaginationNext(_a) {
|
|
4875
|
-
var _b = _a, {
|
|
4876
|
-
className
|
|
4877
|
-
} = _b, props = __objRest(_b, [
|
|
4878
|
-
"className"
|
|
4879
|
-
]);
|
|
4880
|
-
return /* @__PURE__ */ jsx39(Button, { asChild: true, variant: "tertiary", size: "icon-md", className: cn(className), children: /* @__PURE__ */ jsx39("a", __spreadProps(__spreadValues({ "aria-label": "Go to next page", "data-slot": "pagination-link" }, props), { children: /* @__PURE__ */ jsx39(ChevronRightIcon5, { className: "size-5" }) })) });
|
|
4881
|
-
}
|
|
4882
|
-
function PaginationEllipsis(_a) {
|
|
4883
|
-
var _b = _a, {
|
|
4884
|
-
className
|
|
4885
|
-
} = _b, props = __objRest(_b, [
|
|
4886
|
-
"className"
|
|
4887
|
-
]);
|
|
4888
|
-
return /* @__PURE__ */ jsxs21(
|
|
4889
|
-
"span",
|
|
4890
|
-
__spreadProps(__spreadValues({
|
|
4891
|
-
"aria-hidden": true,
|
|
4892
|
-
"data-slot": "pagination-ellipsis",
|
|
4893
|
-
className: cn("flex size-10 items-center justify-center", className)
|
|
4894
|
-
}, props), {
|
|
4895
|
-
children: [
|
|
4896
|
-
/* @__PURE__ */ jsx39(MoreHorizontalIcon, { className: "size-4" }),
|
|
4897
|
-
/* @__PURE__ */ jsx39("span", { className: "sr-only", children: "More pages" })
|
|
4898
|
-
]
|
|
4899
|
-
})
|
|
4900
|
-
);
|
|
4901
|
-
}
|
|
4902
|
-
|
|
4903
5070
|
// components/ui/popover.tsx
|
|
4904
5071
|
import { Popover as PopoverPrimitive } from "radix-ui";
|
|
4905
5072
|
import { jsx as jsx40 } from "react/jsx-runtime";
|
|
@@ -4974,7 +5141,7 @@ function PopoverDescription(_a) {
|
|
|
4974
5141
|
}
|
|
4975
5142
|
|
|
4976
5143
|
// components/ui/progress.tsx
|
|
4977
|
-
import * as
|
|
5144
|
+
import * as React11 from "react";
|
|
4978
5145
|
import { Progress as ProgressPrimitive } from "radix-ui";
|
|
4979
5146
|
import { jsx as jsx41, jsxs as jsxs22 } from "react/jsx-runtime";
|
|
4980
5147
|
var BAR_HEIGHTS = {
|
|
@@ -5019,11 +5186,11 @@ function Progress(_a) {
|
|
|
5019
5186
|
"onTimerEnd",
|
|
5020
5187
|
"children"
|
|
5021
5188
|
]);
|
|
5022
|
-
const [timerPct, setTimerPct] =
|
|
5189
|
+
const [timerPct, setTimerPct] = React11.useState(
|
|
5023
5190
|
timer != null ? direction === "up" ? 0 : 100 : null
|
|
5024
5191
|
);
|
|
5025
|
-
const endedRef =
|
|
5026
|
-
|
|
5192
|
+
const endedRef = React11.useRef(false);
|
|
5193
|
+
React11.useEffect(() => {
|
|
5027
5194
|
if (timer == null) {
|
|
5028
5195
|
setTimerPct(null);
|
|
5029
5196
|
return;
|
|
@@ -5316,7 +5483,7 @@ function RadioGroupItem(_a) {
|
|
|
5316
5483
|
__spreadProps(__spreadValues({
|
|
5317
5484
|
"data-slot": "radio-group-item",
|
|
5318
5485
|
className: cn(
|
|
5319
|
-
"aspect-square size-4 shrink-0 rounded-full border border-border-default-default bg-background-primary-surface transition-[color,box-shadow] outline-none focus-visible:border-ring-focus-default focus-visible:ring-[3px] focus-visible:ring-ring-focus-strong data-[state=checked]:border-border-brand-selected disabled:cursor-not-allowed disabled:
|
|
5486
|
+
"aspect-square size-4 shrink-0 rounded-full border border-border-default-default bg-background-primary-surface transition-[color,box-shadow] outline-none focus-visible:border-ring-focus-default focus-visible:ring-[3px] focus-visible:ring-ring-focus-strong data-[state=checked]:border-border-brand-selected disabled:cursor-not-allowed disabled:border-border-default-default disabled:text-text-disabled-default aria-invalid:border-border-error-default aria-invalid:ring-ring-error-soft",
|
|
5320
5487
|
className
|
|
5321
5488
|
)
|
|
5322
5489
|
}, props), {
|
|
@@ -5573,17 +5740,17 @@ function SheetDescription(_a) {
|
|
|
5573
5740
|
}
|
|
5574
5741
|
|
|
5575
5742
|
// components/ui/sidebar.tsx
|
|
5576
|
-
import * as
|
|
5743
|
+
import * as React14 from "react";
|
|
5577
5744
|
import { cva as cva13 } from "class-variance-authority";
|
|
5578
5745
|
import { PanelLeftIcon } from "lucide-react";
|
|
5579
5746
|
import { Slot as Slot8 } from "radix-ui";
|
|
5580
5747
|
|
|
5581
5748
|
// hooks/use-mobile.ts
|
|
5582
|
-
import * as
|
|
5749
|
+
import * as React12 from "react";
|
|
5583
5750
|
var MOBILE_BREAKPOINT = 768;
|
|
5584
5751
|
function useIsMobile() {
|
|
5585
|
-
const [isMobile, setIsMobile] =
|
|
5586
|
-
|
|
5752
|
+
const [isMobile, setIsMobile] = React12.useState(void 0);
|
|
5753
|
+
React12.useEffect(() => {
|
|
5587
5754
|
const mql = window.matchMedia(`(max-width: ${MOBILE_BREAKPOINT - 1}px)`);
|
|
5588
5755
|
const onChange = () => {
|
|
5589
5756
|
setIsMobile(window.innerWidth < MOBILE_BREAKPOINT);
|
|
@@ -5613,10 +5780,10 @@ function Skeleton(_a) {
|
|
|
5613
5780
|
}
|
|
5614
5781
|
|
|
5615
5782
|
// components/ui/tooltip.tsx
|
|
5616
|
-
import * as
|
|
5783
|
+
import * as React13 from "react";
|
|
5617
5784
|
import { Tooltip as TooltipPrimitive } from "radix-ui";
|
|
5618
5785
|
import { jsx as jsx48, jsxs as jsxs26 } from "react/jsx-runtime";
|
|
5619
|
-
var TooltipModeContext =
|
|
5786
|
+
var TooltipModeContext = React13.createContext("tooltip");
|
|
5620
5787
|
function TooltipProvider(_a) {
|
|
5621
5788
|
var _b = _a, {
|
|
5622
5789
|
delayDuration = 0
|
|
@@ -5650,7 +5817,7 @@ function TooltipTrigger(_a) {
|
|
|
5650
5817
|
} = _b, props = __objRest(_b, [
|
|
5651
5818
|
"children"
|
|
5652
5819
|
]);
|
|
5653
|
-
const mode =
|
|
5820
|
+
const mode = React13.useContext(TooltipModeContext);
|
|
5654
5821
|
if (mode === "drawer") {
|
|
5655
5822
|
return /* @__PURE__ */ jsx48(DrawerTrigger, __spreadProps(__spreadValues({ "data-slot": "tooltip-trigger" }, props), { children }));
|
|
5656
5823
|
}
|
|
@@ -5672,7 +5839,7 @@ function TooltipContent(_a) {
|
|
|
5672
5839
|
"closeLabel",
|
|
5673
5840
|
"children"
|
|
5674
5841
|
]);
|
|
5675
|
-
const mode =
|
|
5842
|
+
const mode = React13.useContext(TooltipModeContext);
|
|
5676
5843
|
if (mode === "drawer") {
|
|
5677
5844
|
return /* @__PURE__ */ jsxs26(DrawerContent, { "data-slot": "tooltip-content", "data-variant": variant, children: [
|
|
5678
5845
|
/* @__PURE__ */ jsx48(DrawerHeader, { children: /* @__PURE__ */ jsx48(DrawerTitle, { children: title }) }),
|
|
@@ -5710,9 +5877,9 @@ var SIDEBAR_WIDTH = "16rem";
|
|
|
5710
5877
|
var SIDEBAR_WIDTH_MOBILE = "18rem";
|
|
5711
5878
|
var SIDEBAR_WIDTH_ICON = "3rem";
|
|
5712
5879
|
var SIDEBAR_KEYBOARD_SHORTCUT = "b";
|
|
5713
|
-
var SidebarContext =
|
|
5880
|
+
var SidebarContext = React14.createContext(null);
|
|
5714
5881
|
function useSidebar() {
|
|
5715
|
-
const context =
|
|
5882
|
+
const context = React14.useContext(SidebarContext);
|
|
5716
5883
|
if (!context) {
|
|
5717
5884
|
throw new Error("useSidebar must be used within a SidebarProvider.");
|
|
5718
5885
|
}
|
|
@@ -5735,10 +5902,10 @@ function SidebarProvider(_a) {
|
|
|
5735
5902
|
"children"
|
|
5736
5903
|
]);
|
|
5737
5904
|
const isMobile = useIsMobile();
|
|
5738
|
-
const [openMobile, setOpenMobile] =
|
|
5739
|
-
const [_open, _setOpen] =
|
|
5905
|
+
const [openMobile, setOpenMobile] = React14.useState(false);
|
|
5906
|
+
const [_open, _setOpen] = React14.useState(defaultOpen);
|
|
5740
5907
|
const open = openProp != null ? openProp : _open;
|
|
5741
|
-
const setOpen =
|
|
5908
|
+
const setOpen = React14.useCallback(
|
|
5742
5909
|
(value) => {
|
|
5743
5910
|
const openState = typeof value === "function" ? value(open) : value;
|
|
5744
5911
|
if (setOpenProp) {
|
|
@@ -5750,10 +5917,10 @@ function SidebarProvider(_a) {
|
|
|
5750
5917
|
},
|
|
5751
5918
|
[setOpenProp, open]
|
|
5752
5919
|
);
|
|
5753
|
-
const toggleSidebar =
|
|
5920
|
+
const toggleSidebar = React14.useCallback(() => {
|
|
5754
5921
|
return isMobile ? setOpenMobile((open2) => !open2) : setOpen((open2) => !open2);
|
|
5755
5922
|
}, [isMobile, setOpen, setOpenMobile]);
|
|
5756
|
-
|
|
5923
|
+
React14.useEffect(() => {
|
|
5757
5924
|
const handleKeyDown = (event) => {
|
|
5758
5925
|
if (event.key === SIDEBAR_KEYBOARD_SHORTCUT && (event.metaKey || event.ctrlKey)) {
|
|
5759
5926
|
event.preventDefault();
|
|
@@ -5764,7 +5931,7 @@ function SidebarProvider(_a) {
|
|
|
5764
5931
|
return () => window.removeEventListener("keydown", handleKeyDown);
|
|
5765
5932
|
}, [toggleSidebar]);
|
|
5766
5933
|
const state = open ? "expanded" : "collapsed";
|
|
5767
|
-
const contextValue =
|
|
5934
|
+
const contextValue = React14.useMemo(
|
|
5768
5935
|
() => ({
|
|
5769
5936
|
state,
|
|
5770
5937
|
open,
|
|
@@ -6130,7 +6297,7 @@ function SidebarMenuItem(_a) {
|
|
|
6130
6297
|
);
|
|
6131
6298
|
}
|
|
6132
6299
|
var sidebarMenuButtonVariants = cva13(
|
|
6133
|
-
"peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-sm p-2 text-left text-text-prominent-default ring-ring-focus-default outline-hidden transition-[width,height,padding] group-has-data-[sidebar=menu-action]/menu-item:pr-8 group-data-[collapsible=icon]:size-8! group-data-[collapsible=icon]:p-2! hover:bg-background-hover-default hover:text-text-brand-hover focus-visible:ring-2 active:bg-background-hover-default active:text-text-brand-hover disabled:pointer-events-none disabled:
|
|
6300
|
+
"peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-sm p-2 text-left text-text-prominent-default ring-ring-focus-default outline-hidden transition-[width,height,padding] group-has-data-[sidebar=menu-action]/menu-item:pr-8 group-data-[collapsible=icon]:size-8! group-data-[collapsible=icon]:p-2! hover:bg-background-hover-default hover:text-text-brand-hover focus-visible:ring-2 active:bg-background-hover-default active:text-text-brand-hover disabled:pointer-events-none disabled:text-text-disabled-default aria-disabled:pointer-events-none aria-disabled:text-text-disabled-default data-[active=true]:bg-background-brand-selected data-[active=true]:text-text-brand-selected data-[active=true]:hover:bg-background-brand-selected data-[active=true]:hover:text-text-brand-selected data-[state=open]:hover:bg-background-hover-default data-[state=open]:hover:text-text-brand-hover [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0 data-[active=true]:[&>svg]:text-text-brand-selected",
|
|
6134
6301
|
{
|
|
6135
6302
|
variants: {
|
|
6136
6303
|
variant: {
|
|
@@ -6339,7 +6506,7 @@ function SidebarMenuSubButton(_a) {
|
|
|
6339
6506
|
"data-size": size,
|
|
6340
6507
|
"data-active": isActive,
|
|
6341
6508
|
className: cn(
|
|
6342
|
-
"flex h-7 min-w-0 -translate-x-px items-center gap-2 overflow-hidden rounded-sm px-2 text-text-prominent-default ring-ring-focus-default outline-hidden hover:bg-background-hover-default hover:text-text-brand-hover focus-visible:ring-2 active:bg-background-hover-default active:text-text-brand-hover disabled:pointer-events-none disabled:
|
|
6509
|
+
"flex h-7 min-w-0 -translate-x-px items-center gap-2 overflow-hidden rounded-sm px-2 text-text-prominent-default ring-ring-focus-default outline-hidden hover:bg-background-hover-default hover:text-text-brand-hover focus-visible:ring-2 active:bg-background-hover-default active:text-text-brand-hover disabled:pointer-events-none disabled:text-text-disabled-default aria-disabled:pointer-events-none aria-disabled:text-text-disabled-default [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0 data-[active=true]:[&>svg]:text-text-brand-selected",
|
|
6343
6510
|
"data-[active=true]:bg-background-brand-selected data-[active=true]:text-text-brand-selected",
|
|
6344
6511
|
size === "sm" && "type-sidebar-menu-sm",
|
|
6345
6512
|
size === "md" && "type-sidebar-menu",
|
|
@@ -6351,7 +6518,7 @@ function SidebarMenuSubButton(_a) {
|
|
|
6351
6518
|
}
|
|
6352
6519
|
|
|
6353
6520
|
// components/ui/slider.tsx
|
|
6354
|
-
import * as
|
|
6521
|
+
import * as React15 from "react";
|
|
6355
6522
|
import { Slider as SliderPrimitive } from "radix-ui";
|
|
6356
6523
|
import { jsx as jsx50, jsxs as jsxs28 } from "react/jsx-runtime";
|
|
6357
6524
|
function Slider(_a) {
|
|
@@ -6368,7 +6535,7 @@ function Slider(_a) {
|
|
|
6368
6535
|
"min",
|
|
6369
6536
|
"max"
|
|
6370
6537
|
]);
|
|
6371
|
-
const _values =
|
|
6538
|
+
const _values = React15.useMemo(
|
|
6372
6539
|
() => Array.isArray(value) ? value : Array.isArray(defaultValue) ? defaultValue : [min, max],
|
|
6373
6540
|
[value, defaultValue, min, max]
|
|
6374
6541
|
);
|
|
@@ -6381,7 +6548,7 @@ function Slider(_a) {
|
|
|
6381
6548
|
min,
|
|
6382
6549
|
max,
|
|
6383
6550
|
className: cn(
|
|
6384
|
-
"relative flex w-full touch-none items-center select-none data-[disabled]:
|
|
6551
|
+
"relative flex w-full touch-none items-center select-none data-[disabled]:[background-image:linear-gradient(var(--background-disabled-default),var(--background-disabled-default))] data-[disabled]:text-text-disabled-default data-[orientation=vertical]:h-full data-[orientation=vertical]:min-h-44 data-[orientation=vertical]:w-auto data-[orientation=vertical]:flex-col",
|
|
6385
6552
|
className
|
|
6386
6553
|
)
|
|
6387
6554
|
}, props), {
|
|
@@ -6420,6 +6587,7 @@ function Slider(_a) {
|
|
|
6420
6587
|
}
|
|
6421
6588
|
|
|
6422
6589
|
// components/ui/toast.tsx
|
|
6590
|
+
import * as React16 from "react";
|
|
6423
6591
|
import {
|
|
6424
6592
|
CircleCheckIcon,
|
|
6425
6593
|
InfoIcon,
|
|
@@ -6429,7 +6597,7 @@ import {
|
|
|
6429
6597
|
} from "lucide-react";
|
|
6430
6598
|
import { useTheme } from "next-themes";
|
|
6431
6599
|
import { Toaster as Sonner, toast } from "sonner";
|
|
6432
|
-
import { jsx as jsx51 } from "react/jsx-runtime";
|
|
6600
|
+
import { jsx as jsx51, jsxs as jsxs29 } from "react/jsx-runtime";
|
|
6433
6601
|
var Toaster = (_a) => {
|
|
6434
6602
|
var props = __objRest(_a, []);
|
|
6435
6603
|
const { theme = "system" } = useTheme();
|
|
@@ -6466,11 +6634,176 @@ var Toaster = (_a) => {
|
|
|
6466
6634
|
}, props)
|
|
6467
6635
|
);
|
|
6468
6636
|
};
|
|
6637
|
+
var RESULT_SNACKBAR_EXIT_MS = 350;
|
|
6638
|
+
var RESULT_SNACKBAR_ICON_DELAY_MS = 150;
|
|
6639
|
+
function ResultSnackbar(_a) {
|
|
6640
|
+
var _b = _a, {
|
|
6641
|
+
outcome,
|
|
6642
|
+
amount,
|
|
6643
|
+
currency,
|
|
6644
|
+
contractLabel,
|
|
6645
|
+
duration,
|
|
6646
|
+
icon,
|
|
6647
|
+
amountValue,
|
|
6648
|
+
placement = "top",
|
|
6649
|
+
durationMs = 2500,
|
|
6650
|
+
onDismiss,
|
|
6651
|
+
announcement,
|
|
6652
|
+
className
|
|
6653
|
+
} = _b, props = __objRest(_b, [
|
|
6654
|
+
"outcome",
|
|
6655
|
+
"amount",
|
|
6656
|
+
"currency",
|
|
6657
|
+
"contractLabel",
|
|
6658
|
+
"duration",
|
|
6659
|
+
"icon",
|
|
6660
|
+
"amountValue",
|
|
6661
|
+
"placement",
|
|
6662
|
+
"durationMs",
|
|
6663
|
+
"onDismiss",
|
|
6664
|
+
"announcement",
|
|
6665
|
+
"className"
|
|
6666
|
+
]);
|
|
6667
|
+
const isWin = outcome === "win";
|
|
6668
|
+
const [leaving, setLeaving] = React16.useState(false);
|
|
6669
|
+
const reduced = usePrefersReducedMotion();
|
|
6670
|
+
const onDismissRef = React16.useRef(onDismiss);
|
|
6671
|
+
React16.useEffect(() => {
|
|
6672
|
+
onDismissRef.current = onDismiss;
|
|
6673
|
+
}, [onDismiss]);
|
|
6674
|
+
const firedRef = React16.useRef(false);
|
|
6675
|
+
const finish = React16.useCallback(() => {
|
|
6676
|
+
var _a2;
|
|
6677
|
+
if (firedRef.current) return;
|
|
6678
|
+
firedRef.current = true;
|
|
6679
|
+
(_a2 = onDismissRef.current) == null ? void 0 : _a2.call(onDismissRef);
|
|
6680
|
+
}, []);
|
|
6681
|
+
React16.useEffect(() => {
|
|
6682
|
+
const leave = window.setTimeout(() => setLeaving(true), durationMs);
|
|
6683
|
+
return () => window.clearTimeout(leave);
|
|
6684
|
+
}, [durationMs]);
|
|
6685
|
+
React16.useEffect(() => {
|
|
6686
|
+
if (!leaving) return;
|
|
6687
|
+
const done = window.setTimeout(finish, reduced ? 0 : RESULT_SNACKBAR_EXIT_MS);
|
|
6688
|
+
return () => window.clearTimeout(done);
|
|
6689
|
+
}, [leaving, finish, reduced]);
|
|
6690
|
+
const [display, setDisplay] = React16.useState(null);
|
|
6691
|
+
React16.useEffect(() => {
|
|
6692
|
+
if (amountValue === void 0 || reduced || !Number.isFinite(amountValue)) {
|
|
6693
|
+
setDisplay(null);
|
|
6694
|
+
return;
|
|
6695
|
+
}
|
|
6696
|
+
const total = isWin ? 500 : 250;
|
|
6697
|
+
const sign = isWin ? "+" : "\u2212";
|
|
6698
|
+
const startedAt = performance.now();
|
|
6699
|
+
let frame = 0;
|
|
6700
|
+
const step = (now) => {
|
|
6701
|
+
const t = Math.min(1, (now - startedAt) / total);
|
|
6702
|
+
const eased = 1 - Math.pow(1 - t, 3);
|
|
6703
|
+
if (t < 1) {
|
|
6704
|
+
setDisplay(`${sign}${(amountValue * eased).toFixed(2)}`);
|
|
6705
|
+
frame = requestAnimationFrame(step);
|
|
6706
|
+
} else {
|
|
6707
|
+
setDisplay(null);
|
|
6708
|
+
}
|
|
6709
|
+
};
|
|
6710
|
+
frame = requestAnimationFrame(step);
|
|
6711
|
+
return () => cancelAnimationFrame(frame);
|
|
6712
|
+
}, [amountValue, isWin, reduced]);
|
|
6713
|
+
const spoken = announcement != null ? announcement : `${isWin ? "Won" : "Lost"} ${amount} ${currency}. ${contractLabel}, ${duration}.`;
|
|
6714
|
+
const enterOut = leaving ? "out" : "in";
|
|
6715
|
+
const motionName = `result-snackbar-${enterOut}-${placement}`;
|
|
6716
|
+
return /* @__PURE__ */ jsxs29(
|
|
6717
|
+
"div",
|
|
6718
|
+
__spreadProps(__spreadValues({
|
|
6719
|
+
role: "status",
|
|
6720
|
+
"aria-live": "polite",
|
|
6721
|
+
"data-slot": "result-snackbar",
|
|
6722
|
+
"data-outcome": outcome,
|
|
6723
|
+
"data-leaving": leaving || void 0,
|
|
6724
|
+
className: cn(
|
|
6725
|
+
// Floating chrome, the same surface family as Bottom Navigation —
|
|
6726
|
+
// it floats over live chart content, so it frosts what is behind it
|
|
6727
|
+
// and carries the sanctioned chrome lift.
|
|
6728
|
+
"pointer-events-none absolute z-40 flex w-max items-center gap-3 overflow-hidden",
|
|
6729
|
+
"rounded-2xl border border-(--border-chrome-default) bg-(--background-chrome-default)",
|
|
6730
|
+
"[backdrop-filter:blur(20px)_saturate(1.4)]",
|
|
6731
|
+
"[box-shadow:var(--shadow-chrome-default),inset_0_1px_0_var(--chrome-highlight-default)]",
|
|
6732
|
+
"py-2 pr-4 pl-2 whitespace-nowrap",
|
|
6733
|
+
className
|
|
6734
|
+
),
|
|
6735
|
+
style: {
|
|
6736
|
+
animation: reduced ? `result-snackbar-fade var(--motion-overlay-close) var(--ease-standard) ${leaving ? "reverse forwards" : "forwards"}` : `${motionName} ${RESULT_SNACKBAR_EXIT_MS}ms var(--primitive-ease-overshoot) forwards`
|
|
6737
|
+
}
|
|
6738
|
+
}, props), {
|
|
6739
|
+
children: [
|
|
6740
|
+
/* @__PURE__ */ jsx51("span", { className: "sr-only", children: spoken }),
|
|
6741
|
+
icon ? /* @__PURE__ */ jsx51(
|
|
6742
|
+
"span",
|
|
6743
|
+
{
|
|
6744
|
+
"data-slot": "result-snackbar-icon",
|
|
6745
|
+
className: "flex size-10 flex-none items-center justify-center",
|
|
6746
|
+
style: reduced ? void 0 : {
|
|
6747
|
+
animation: `result-snackbar-icon-${outcome} var(--motion-pop) var(--primitive-ease-overshoot) ${RESULT_SNACKBAR_ICON_DELAY_MS}ms both`
|
|
6748
|
+
},
|
|
6749
|
+
children: icon
|
|
6750
|
+
}
|
|
6751
|
+
) : null,
|
|
6752
|
+
/* @__PURE__ */ jsxs29("span", { "aria-hidden": true, className: "flex min-w-max flex-col gap-0.5", children: [
|
|
6753
|
+
/* @__PURE__ */ jsxs29(
|
|
6754
|
+
"span",
|
|
6755
|
+
{
|
|
6756
|
+
className: cn(
|
|
6757
|
+
"type-result-snackbar-amount min-w-max",
|
|
6758
|
+
isWin ? "text-text-success-default" : "text-text-error-default"
|
|
6759
|
+
),
|
|
6760
|
+
children: [
|
|
6761
|
+
display != null ? display : amount,
|
|
6762
|
+
" ",
|
|
6763
|
+
/* @__PURE__ */ jsx51("span", { className: "type-result-snackbar-currency", children: currency })
|
|
6764
|
+
]
|
|
6765
|
+
}
|
|
6766
|
+
),
|
|
6767
|
+
/* @__PURE__ */ jsxs29("span", { className: "type-result-snackbar-terms min-w-max text-text-subtle-default", children: [
|
|
6768
|
+
contractLabel,
|
|
6769
|
+
" \xB7 ",
|
|
6770
|
+
duration
|
|
6771
|
+
] })
|
|
6772
|
+
] }),
|
|
6773
|
+
/* @__PURE__ */ jsx51(
|
|
6774
|
+
"span",
|
|
6775
|
+
{
|
|
6776
|
+
"aria-hidden": true,
|
|
6777
|
+
"data-slot": "result-snackbar-drain",
|
|
6778
|
+
className: cn(
|
|
6779
|
+
"absolute bottom-0 left-0 h-1 w-full origin-left",
|
|
6780
|
+
isWin ? "bg-background-success-solid" : "bg-background-error-solid"
|
|
6781
|
+
),
|
|
6782
|
+
style: reduced ? { transform: "scaleX(0)" } : {
|
|
6783
|
+
animation: `result-snackbar-drain ${durationMs}ms var(--ease-linear) forwards`
|
|
6784
|
+
}
|
|
6785
|
+
}
|
|
6786
|
+
)
|
|
6787
|
+
]
|
|
6788
|
+
})
|
|
6789
|
+
);
|
|
6790
|
+
}
|
|
6791
|
+
function usePrefersReducedMotion() {
|
|
6792
|
+
const [reduced, setReduced] = React16.useState(false);
|
|
6793
|
+
React16.useEffect(() => {
|
|
6794
|
+
const query = window.matchMedia("(prefers-reduced-motion: reduce)");
|
|
6795
|
+
setReduced(query.matches);
|
|
6796
|
+
const onChange = (event) => setReduced(event.matches);
|
|
6797
|
+
query.addEventListener("change", onChange);
|
|
6798
|
+
return () => query.removeEventListener("change", onChange);
|
|
6799
|
+
}, []);
|
|
6800
|
+
return reduced;
|
|
6801
|
+
}
|
|
6469
6802
|
|
|
6470
6803
|
// components/ui/slide-to-confirm.tsx
|
|
6471
|
-
import * as
|
|
6804
|
+
import * as React17 from "react";
|
|
6472
6805
|
import { ArrowRight as ArrowRight2, Check } from "lucide-react";
|
|
6473
|
-
import { jsx as jsx52, jsxs as
|
|
6806
|
+
import { jsx as jsx52, jsxs as jsxs30 } from "react/jsx-runtime";
|
|
6474
6807
|
var CONFIRM_AT = 0.9;
|
|
6475
6808
|
var HANDLE = 46;
|
|
6476
6809
|
var INSET2 = 5;
|
|
@@ -6490,21 +6823,21 @@ function SlideToConfirm(_a) {
|
|
|
6490
6823
|
"confirmed",
|
|
6491
6824
|
"className"
|
|
6492
6825
|
]);
|
|
6493
|
-
const trackRef =
|
|
6494
|
-
const [dragX, setDragX] =
|
|
6495
|
-
const [dragging, setDragging] =
|
|
6496
|
-
const [trackWidth, setTrackWidth] =
|
|
6497
|
-
const [internalConfirmed, setInternalConfirmed] =
|
|
6826
|
+
const trackRef = React17.useRef(null);
|
|
6827
|
+
const [dragX, setDragX] = React17.useState(0);
|
|
6828
|
+
const [dragging, setDragging] = React17.useState(false);
|
|
6829
|
+
const [trackWidth, setTrackWidth] = React17.useState(0);
|
|
6830
|
+
const [internalConfirmed, setInternalConfirmed] = React17.useState(false);
|
|
6498
6831
|
const confirmed = controlledConfirmed != null ? controlledConfirmed : internalConfirmed;
|
|
6499
|
-
const firedRef =
|
|
6500
|
-
|
|
6832
|
+
const firedRef = React17.useRef(false);
|
|
6833
|
+
React17.useEffect(() => {
|
|
6501
6834
|
if (controlledConfirmed === false) {
|
|
6502
6835
|
setInternalConfirmed(false);
|
|
6503
6836
|
setDragX(0);
|
|
6504
6837
|
firedRef.current = false;
|
|
6505
6838
|
}
|
|
6506
6839
|
}, [controlledConfirmed]);
|
|
6507
|
-
|
|
6840
|
+
React17.useEffect(() => {
|
|
6508
6841
|
const track = trackRef.current;
|
|
6509
6842
|
if (!track) return;
|
|
6510
6843
|
const ro = new ResizeObserver(() => setTrackWidth(track.clientWidth));
|
|
@@ -6553,7 +6886,7 @@ function SlideToConfirm(_a) {
|
|
|
6553
6886
|
const fillWidth = dragX === 0 ? 0 : dragX + HANDLE;
|
|
6554
6887
|
const revealWidth = INSET2 + dragX + HANDLE / 2;
|
|
6555
6888
|
const spring = "duration-slow ease-(--primitive-ease-spring)";
|
|
6556
|
-
return /* @__PURE__ */
|
|
6889
|
+
return /* @__PURE__ */ jsxs30(
|
|
6557
6890
|
"div",
|
|
6558
6891
|
__spreadProps(__spreadValues({
|
|
6559
6892
|
ref: trackRef,
|
|
@@ -6566,7 +6899,7 @@ function SlideToConfirm(_a) {
|
|
|
6566
6899
|
onKeyDown: handleKeyDown,
|
|
6567
6900
|
className: cn(
|
|
6568
6901
|
"relative h-14 w-full touch-none overflow-hidden rounded-full bg-background-secondary-surface select-none",
|
|
6569
|
-
disabled && "pointer-events-none
|
|
6902
|
+
disabled && "pointer-events-none [background-image:linear-gradient(var(--background-disabled-default),var(--background-disabled-default))] text-text-disabled-default",
|
|
6570
6903
|
"outline-none focus-visible:ring-[3px] focus-visible:ring-ring-focus-strong",
|
|
6571
6904
|
className
|
|
6572
6905
|
)
|
|
@@ -6644,9 +6977,9 @@ function SlideToConfirm(_a) {
|
|
|
6644
6977
|
}
|
|
6645
6978
|
|
|
6646
6979
|
// components/ui/stepper.tsx
|
|
6647
|
-
import * as
|
|
6980
|
+
import * as React18 from "react";
|
|
6648
6981
|
import { Minus, Plus } from "lucide-react";
|
|
6649
|
-
import { jsx as jsx53, jsxs as
|
|
6982
|
+
import { jsx as jsx53, jsxs as jsxs31 } from "react/jsx-runtime";
|
|
6650
6983
|
function clamp(value, min, max) {
|
|
6651
6984
|
return Math.min(Math.max(value, min), max);
|
|
6652
6985
|
}
|
|
@@ -6674,16 +7007,16 @@ function Stepper({
|
|
|
6674
7007
|
"aria-label": ariaLabel
|
|
6675
7008
|
}) {
|
|
6676
7009
|
const isControlled = controlledValue !== void 0;
|
|
6677
|
-
const [internalValue, setInternalValue] =
|
|
7010
|
+
const [internalValue, setInternalValue] = React18.useState(
|
|
6678
7011
|
clamp(defaultValue, min, max)
|
|
6679
7012
|
);
|
|
6680
7013
|
const currentValue = isControlled ? controlledValue : internalValue;
|
|
6681
7014
|
const decimalPlaces = getDecimalPlaces(step);
|
|
6682
|
-
const [displayString, setDisplayString] =
|
|
7015
|
+
const [displayString, setDisplayString] = React18.useState(
|
|
6683
7016
|
formatValue(currentValue, decimalPlaces)
|
|
6684
7017
|
);
|
|
6685
|
-
const [isFocused, setIsFocused] =
|
|
6686
|
-
|
|
7018
|
+
const [isFocused, setIsFocused] = React18.useState(false);
|
|
7019
|
+
React18.useEffect(() => {
|
|
6687
7020
|
if (!isFocused) {
|
|
6688
7021
|
setDisplayString(formatValue(currentValue, decimalPlaces));
|
|
6689
7022
|
}
|
|
@@ -6733,7 +7066,7 @@ function Stepper({
|
|
|
6733
7066
|
}
|
|
6734
7067
|
}
|
|
6735
7068
|
}
|
|
6736
|
-
return /* @__PURE__ */
|
|
7069
|
+
return /* @__PURE__ */ jsxs31(
|
|
6737
7070
|
"div",
|
|
6738
7071
|
{
|
|
6739
7072
|
"data-slot": "stepper",
|
|
@@ -6760,7 +7093,7 @@ function Stepper({
|
|
|
6760
7093
|
children: /* @__PURE__ */ jsx53(Minus, {})
|
|
6761
7094
|
}
|
|
6762
7095
|
),
|
|
6763
|
-
/* @__PURE__ */
|
|
7096
|
+
/* @__PURE__ */ jsxs31("div", { className: "flex min-w-0 flex-col items-center", children: [
|
|
6764
7097
|
label != null && /* @__PURE__ */ jsx53(
|
|
6765
7098
|
"span",
|
|
6766
7099
|
{
|
|
@@ -6813,10 +7146,10 @@ function Stepper({
|
|
|
6813
7146
|
}
|
|
6814
7147
|
|
|
6815
7148
|
// components/ui/steps.tsx
|
|
6816
|
-
import * as
|
|
7149
|
+
import * as React19 from "react";
|
|
6817
7150
|
import { Check as Check2 } from "lucide-react";
|
|
6818
|
-
import { jsx as jsx54, jsxs as
|
|
6819
|
-
var StepsContext =
|
|
7151
|
+
import { jsx as jsx54, jsxs as jsxs32 } from "react/jsx-runtime";
|
|
7152
|
+
var StepsContext = React19.createContext({ shape: "circle", orientation: "horizontal", size: "md" });
|
|
6820
7153
|
function Steps(_a) {
|
|
6821
7154
|
var _b = _a, {
|
|
6822
7155
|
shape = "circle",
|
|
@@ -6831,7 +7164,7 @@ function Steps(_a) {
|
|
|
6831
7164
|
"className",
|
|
6832
7165
|
"children"
|
|
6833
7166
|
]);
|
|
6834
|
-
const steps =
|
|
7167
|
+
const steps = React19.Children.toArray(children);
|
|
6835
7168
|
return /* @__PURE__ */ jsx54(StepsContext.Provider, { value: { shape, orientation, size }, children: /* @__PURE__ */ jsx54(
|
|
6836
7169
|
"ol",
|
|
6837
7170
|
__spreadProps(__spreadValues({
|
|
@@ -6846,7 +7179,7 @@ function Steps(_a) {
|
|
|
6846
7179
|
)
|
|
6847
7180
|
}, props), {
|
|
6848
7181
|
children: steps.map(
|
|
6849
|
-
(child, index) =>
|
|
7182
|
+
(child, index) => React19.isValidElement(child) ? React19.cloneElement(child, {
|
|
6850
7183
|
index: index + 1,
|
|
6851
7184
|
isFirst: index === 0,
|
|
6852
7185
|
isLast: index === steps.length - 1
|
|
@@ -6877,7 +7210,7 @@ function Step(_a) {
|
|
|
6877
7210
|
"isLast",
|
|
6878
7211
|
"className"
|
|
6879
7212
|
]);
|
|
6880
|
-
const { shape, orientation, size } =
|
|
7213
|
+
const { shape, orientation, size } = React19.useContext(StepsContext);
|
|
6881
7214
|
const horizontal = orientation === "horizontal";
|
|
6882
7215
|
const sm = size === "sm";
|
|
6883
7216
|
const indicator = /* @__PURE__ */ jsx54(
|
|
@@ -6898,7 +7231,7 @@ function Step(_a) {
|
|
|
6898
7231
|
}
|
|
6899
7232
|
);
|
|
6900
7233
|
if (horizontal) {
|
|
6901
|
-
return /* @__PURE__ */
|
|
7234
|
+
return /* @__PURE__ */ jsxs32(
|
|
6902
7235
|
"li",
|
|
6903
7236
|
__spreadProps(__spreadValues({
|
|
6904
7237
|
"data-slot": "step",
|
|
@@ -6907,7 +7240,7 @@ function Step(_a) {
|
|
|
6907
7240
|
className: cn("flex min-w-0 flex-1 flex-col items-center", className)
|
|
6908
7241
|
}, props), {
|
|
6909
7242
|
children: [
|
|
6910
|
-
/* @__PURE__ */
|
|
7243
|
+
/* @__PURE__ */ jsxs32("div", { className: "flex w-full items-center", children: [
|
|
6911
7244
|
/* @__PURE__ */ jsx54(
|
|
6912
7245
|
"span",
|
|
6913
7246
|
{
|
|
@@ -6928,7 +7261,7 @@ function Step(_a) {
|
|
|
6928
7261
|
}
|
|
6929
7262
|
)
|
|
6930
7263
|
] }),
|
|
6931
|
-
(title != null || description != null) && /* @__PURE__ */
|
|
7264
|
+
(title != null || description != null) && /* @__PURE__ */ jsxs32(
|
|
6932
7265
|
"div",
|
|
6933
7266
|
{
|
|
6934
7267
|
"data-slot": "step-body",
|
|
@@ -6957,7 +7290,7 @@ function Step(_a) {
|
|
|
6957
7290
|
);
|
|
6958
7291
|
}
|
|
6959
7292
|
const hasBody = title != null || description != null;
|
|
6960
|
-
return /* @__PURE__ */
|
|
7293
|
+
return /* @__PURE__ */ jsxs32(
|
|
6961
7294
|
"li",
|
|
6962
7295
|
__spreadProps(__spreadValues({
|
|
6963
7296
|
"data-slot": "step",
|
|
@@ -6974,7 +7307,7 @@ function Step(_a) {
|
|
|
6974
7307
|
)
|
|
6975
7308
|
}, props), {
|
|
6976
7309
|
children: [
|
|
6977
|
-
/* @__PURE__ */
|
|
7310
|
+
/* @__PURE__ */ jsxs32("div", { className: "flex flex-col items-center self-stretch", children: [
|
|
6978
7311
|
indicator,
|
|
6979
7312
|
!isLast && /* @__PURE__ */ jsx54(
|
|
6980
7313
|
"span",
|
|
@@ -6985,13 +7318,13 @@ function Step(_a) {
|
|
|
6985
7318
|
}
|
|
6986
7319
|
)
|
|
6987
7320
|
] }),
|
|
6988
|
-
/* @__PURE__ */
|
|
7321
|
+
/* @__PURE__ */ jsxs32(
|
|
6989
7322
|
"div",
|
|
6990
7323
|
{
|
|
6991
7324
|
"data-slot": "step-body",
|
|
6992
7325
|
className: cn("flex min-w-0 flex-col", !isLast && (sm ? "pb-4" : "pb-6")),
|
|
6993
7326
|
children: [
|
|
6994
|
-
title != null && /* @__PURE__ */
|
|
7327
|
+
title != null && /* @__PURE__ */ jsxs32(
|
|
6995
7328
|
"span",
|
|
6996
7329
|
{
|
|
6997
7330
|
className: cn(
|
|
@@ -7005,7 +7338,7 @@ function Step(_a) {
|
|
|
7005
7338
|
}
|
|
7006
7339
|
),
|
|
7007
7340
|
description != null && /* @__PURE__ */ jsx54("span", { className: "type-steps-description text-text-subtle-default", children: description }),
|
|
7008
|
-
!hasBody && /* @__PURE__ */
|
|
7341
|
+
!hasBody && /* @__PURE__ */ jsxs32("span", { className: "sr-only", children: [
|
|
7009
7342
|
"Step ",
|
|
7010
7343
|
index
|
|
7011
7344
|
] })
|
|
@@ -7034,7 +7367,7 @@ function Switch(_a) {
|
|
|
7034
7367
|
"data-slot": "switch",
|
|
7035
7368
|
"data-size": size,
|
|
7036
7369
|
className: cn(
|
|
7037
|
-
"peer group/switch inline-flex shrink-0 items-center rounded-full border border-transparent p-[3px] transition-all outline-none focus-visible:border-ring-focus-default focus-visible:ring-[3px] focus-visible:ring-ring-focus-strong disabled:cursor-not-allowed disabled:
|
|
7370
|
+
"peer group/switch inline-flex shrink-0 items-center rounded-full border border-transparent p-[3px] transition-all outline-none focus-visible:border-ring-focus-default focus-visible:ring-[3px] focus-visible:ring-ring-focus-strong disabled:cursor-not-allowed disabled:border-border-default-default disabled:text-text-disabled-default data-[size=default]:h-6 data-[size=default]:w-11 data-[size=sm]:h-5 data-[size=sm]:w-9 data-[state=checked]:bg-background-brand-default data-[state=unchecked]:bg-border-default-default",
|
|
7038
7371
|
className
|
|
7039
7372
|
)
|
|
7040
7373
|
}, props), {
|
|
@@ -7236,7 +7569,7 @@ function TabsTrigger(_a) {
|
|
|
7236
7569
|
"data-slot": "tabs-trigger",
|
|
7237
7570
|
"data-icon-position": iconPosition,
|
|
7238
7571
|
className: cn(
|
|
7239
|
-
"relative inline-flex h-[calc(100%-1px)] flex-1 items-center justify-center gap-1.5 rounded-md border border-transparent px-3 py-1 whitespace-nowrap text-text-subtle-default transition-all group-data-[orientation=vertical]/tabs:w-full group-data-[orientation=vertical]/tabs:justify-start hover:bg-background-hover-default hover:text-text-prominent-default focus-visible:border-ring-focus-default focus-visible:ring-[3px] focus-visible:ring-ring-focus-strong focus-visible:outline-1 focus-visible:outline-ring-focus-default disabled:pointer-events-none disabled:
|
|
7572
|
+
"relative inline-flex h-[calc(100%-1px)] flex-1 items-center justify-center gap-1.5 rounded-md border border-transparent px-3 py-1 whitespace-nowrap text-text-subtle-default transition-all group-data-[orientation=vertical]/tabs:w-full group-data-[orientation=vertical]/tabs:justify-start hover:bg-background-hover-default hover:text-text-prominent-default focus-visible:border-ring-focus-default focus-visible:ring-[3px] focus-visible:ring-ring-focus-strong focus-visible:outline-1 focus-visible:outline-ring-focus-default disabled:pointer-events-none disabled:text-text-disabled-default group-data-[variant=default]/tabs-list:data-[state=active]:shadow-none group-data-[variant=line]/tabs-list:data-[state=active]:shadow-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
|
|
7240
7573
|
"group-data-[size=sm]/tabs-list:gap-1 group-data-[size=sm]/tabs-list:rounded-sm group-data-[size=sm]/tabs-list:px-2",
|
|
7241
7574
|
"group-data-[size=lg]/tabs-list:gap-2 group-data-[size=lg]/tabs-list:rounded-lg group-data-[size=lg]/tabs-list:px-4",
|
|
7242
7575
|
"group-data-[variant=line]/tabs-list:bg-transparent group-data-[variant=line]/tabs-list:hover:bg-transparent group-data-[variant=line]/tabs-list:hover:text-text-brand-hover group-data-[variant=line]/tabs-list:data-[state=active]:bg-transparent group-data-[variant=line]/tabs-list:data-[state=active]:border-transparent",
|
|
@@ -7270,7 +7603,7 @@ import { cva as cva15 } from "class-variance-authority";
|
|
|
7270
7603
|
import { Toggle as TogglePrimitive } from "radix-ui";
|
|
7271
7604
|
import { jsx as jsx58 } from "react/jsx-runtime";
|
|
7272
7605
|
var toggleVariants = cva15(
|
|
7273
|
-
"type-toggle inline-flex items-center justify-center gap-2 rounded-md border border-border-default-default bg-background-primary-surface text-text-prominent-default whitespace-nowrap transition-[color,background-color,border-color,box-shadow] outline-none hover:bg-background-secondary-surface active:bg-background-secondary-wash focus-visible:border-ring-focus-default focus-visible:ring-[3px] focus-visible:ring-ring-focus-strong disabled:pointer-events-none disabled:
|
|
7606
|
+
"type-toggle inline-flex items-center justify-center gap-2 rounded-md border border-border-default-default bg-background-primary-surface text-text-prominent-default whitespace-nowrap transition-[color,background-color,border-color,box-shadow] outline-none hover:bg-background-secondary-surface active:bg-background-secondary-wash focus-visible:border-ring-focus-default focus-visible:ring-[3px] focus-visible:ring-ring-focus-strong disabled:pointer-events-none disabled:border-border-default-default disabled:text-text-disabled-default aria-invalid:border-border-error-default aria-invalid:ring-ring-error-soft data-[state=on]:border-transparent data-[state=on]:bg-background-brand-default data-[state=on]:text-text-on-brand-static [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
|
|
7274
7607
|
{
|
|
7275
7608
|
variants: {
|
|
7276
7609
|
size: {
|
|
@@ -7302,10 +7635,10 @@ function Toggle(_a) {
|
|
|
7302
7635
|
}
|
|
7303
7636
|
|
|
7304
7637
|
// components/ui/toggle-group.tsx
|
|
7305
|
-
import * as
|
|
7638
|
+
import * as React20 from "react";
|
|
7306
7639
|
import { ToggleGroup as ToggleGroupPrimitive } from "radix-ui";
|
|
7307
7640
|
import { jsx as jsx59 } from "react/jsx-runtime";
|
|
7308
|
-
var ToggleGroupContext =
|
|
7641
|
+
var ToggleGroupContext = React20.createContext({
|
|
7309
7642
|
size: "default",
|
|
7310
7643
|
spacing: 0
|
|
7311
7644
|
});
|
|
@@ -7347,7 +7680,7 @@ function ToggleGroupItem(_a) {
|
|
|
7347
7680
|
"children",
|
|
7348
7681
|
"size"
|
|
7349
7682
|
]);
|
|
7350
|
-
const context =
|
|
7683
|
+
const context = React20.useContext(ToggleGroupContext);
|
|
7351
7684
|
return /* @__PURE__ */ jsx59(
|
|
7352
7685
|
ToggleGroupPrimitive.Item,
|
|
7353
7686
|
__spreadProps(__spreadValues({
|
|
@@ -7371,7 +7704,7 @@ function ToggleGroupItem(_a) {
|
|
|
7371
7704
|
}
|
|
7372
7705
|
|
|
7373
7706
|
// components/blocks/result-block.tsx
|
|
7374
|
-
import { Fragment as Fragment3, jsx as jsx60, jsxs as
|
|
7707
|
+
import { Fragment as Fragment3, jsx as jsx60, jsxs as jsxs33 } from "react/jsx-runtime";
|
|
7375
7708
|
var THUMBS_UP_DATA_URL = "data:image/webp;base64,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";
|
|
7376
7709
|
var THUMBS_DOWN_DATA_URL = "data:image/webp;base64,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";
|
|
7377
7710
|
function ResultBlock({
|
|
@@ -7388,8 +7721,8 @@ function ResultBlock({
|
|
|
7388
7721
|
const signedAmount = isWin ? `+${amount}` : `\u2212${amount}`;
|
|
7389
7722
|
const amountColorClass = isWin ? "text-semantic-win" : "text-semantic-loss";
|
|
7390
7723
|
const haloBgClass = isWin ? "bg-semantic-win" : "bg-semantic-loss";
|
|
7391
|
-
return /* @__PURE__ */
|
|
7392
|
-
/* @__PURE__ */
|
|
7724
|
+
return /* @__PURE__ */ jsxs33(Card, { className: "w-80 shrink-0 overflow-hidden rounded-md shadow-sm px-5 py-5 items-center gap-3", children: [
|
|
7725
|
+
/* @__PURE__ */ jsxs33("div", { className: "relative flex items-center justify-center py-2", children: [
|
|
7393
7726
|
/* @__PURE__ */ jsx60(
|
|
7394
7727
|
"span",
|
|
7395
7728
|
{
|
|
@@ -7409,24 +7742,24 @@ function ResultBlock({
|
|
|
7409
7742
|
)
|
|
7410
7743
|
] }),
|
|
7411
7744
|
/* @__PURE__ */ jsx60("p", { className: "text-lg font-semibold text-on-prominent", children: titleText }),
|
|
7412
|
-
/* @__PURE__ */
|
|
7745
|
+
/* @__PURE__ */ jsxs33("p", { className: `flex items-baseline gap-1.5 ${amountColorClass}`, children: [
|
|
7413
7746
|
/* @__PURE__ */ jsx60("span", { className: "font-display text-4xl font-semibold tabular-nums tracking-tight", children: signedAmount }),
|
|
7414
7747
|
/* @__PURE__ */ jsx60("span", { className: "text-lg font-semibold", children: currency })
|
|
7415
7748
|
] }),
|
|
7416
|
-
/* @__PURE__ */
|
|
7417
|
-
/* @__PURE__ */
|
|
7749
|
+
/* @__PURE__ */ jsxs33("div", { className: "flex items-center gap-2", children: [
|
|
7750
|
+
/* @__PURE__ */ jsxs33(Badge, { variant: "tint-neutral", size: "sm", children: [
|
|
7418
7751
|
contractLabel,
|
|
7419
|
-
pickedDigit !== void 0 && /* @__PURE__ */
|
|
7752
|
+
pickedDigit !== void 0 && /* @__PURE__ */ jsxs33(Fragment3, { children: [
|
|
7420
7753
|
/* @__PURE__ */ jsx60("span", { "aria-hidden": true, className: "h-3 w-px bg-border-prominent/40 mx-1" }),
|
|
7421
7754
|
/* @__PURE__ */ jsx60("span", { className: "tabular-nums", children: pickedDigit })
|
|
7422
7755
|
] })
|
|
7423
7756
|
] }),
|
|
7424
7757
|
/* @__PURE__ */ jsx60(Badge, { variant: "tint-neutral", size: "sm", children: duration })
|
|
7425
7758
|
] }),
|
|
7426
|
-
/* @__PURE__ */
|
|
7759
|
+
/* @__PURE__ */ jsxs33("div", { className: "w-full pt-2", children: [
|
|
7427
7760
|
ctaMode === "next-round" && /* @__PURE__ */ jsx60(Button, { className: "w-full", children: "Next round" }),
|
|
7428
7761
|
ctaMode === "go-again" && /* @__PURE__ */ jsx60(Button, { className: "w-full", children: "Go again" }),
|
|
7429
|
-
ctaMode === "conversion" && /* @__PURE__ */
|
|
7762
|
+
ctaMode === "conversion" && /* @__PURE__ */ jsxs33("div", { className: "w-full flex flex-col gap-3", children: [
|
|
7430
7763
|
/* @__PURE__ */ jsx60("p", { className: "text-center text-base font-semibold text-on-prominent", children: "Ready to play for real?" }),
|
|
7431
7764
|
/* @__PURE__ */ jsx60(Button, { className: "w-full", children: "Deposit now" }),
|
|
7432
7765
|
/* @__PURE__ */ jsx60(Button, { variant: "secondary", className: "w-full", children: "Stay in demo" })
|
|
@@ -7440,12 +7773,12 @@ function ResultDialog({
|
|
|
7440
7773
|
primaryLabel,
|
|
7441
7774
|
secondaryLabel
|
|
7442
7775
|
}) {
|
|
7443
|
-
return /* @__PURE__ */
|
|
7444
|
-
/* @__PURE__ */
|
|
7776
|
+
return /* @__PURE__ */ jsxs33(Card, { className: "w-80 shrink-0 overflow-hidden rounded-md shadow-sm px-5 py-6 items-center gap-4", children: [
|
|
7777
|
+
/* @__PURE__ */ jsxs33("div", { className: "flex flex-col items-center gap-2 text-center", children: [
|
|
7445
7778
|
/* @__PURE__ */ jsx60("p", { className: "text-lg font-semibold text-on-prominent", children: title }),
|
|
7446
7779
|
/* @__PURE__ */ jsx60("p", { className: "text-sm text-on-subtle", children: body })
|
|
7447
7780
|
] }),
|
|
7448
|
-
/* @__PURE__ */
|
|
7781
|
+
/* @__PURE__ */ jsxs33("div", { className: "w-full flex flex-col gap-2", children: [
|
|
7449
7782
|
/* @__PURE__ */ jsx60(Button, { className: "w-full", children: primaryLabel }),
|
|
7450
7783
|
/* @__PURE__ */ jsx60(Button, { variant: "secondary", className: "w-full", children: secondaryLabel })
|
|
7451
7784
|
] })
|
|
@@ -7454,7 +7787,7 @@ function ResultDialog({
|
|
|
7454
7787
|
|
|
7455
7788
|
// components/blocks/header-navigation-block.tsx
|
|
7456
7789
|
import { ArrowLeft as ArrowLeft2, History } from "lucide-react";
|
|
7457
|
-
import { jsx as jsx61, jsxs as
|
|
7790
|
+
import { jsx as jsx61, jsxs as jsxs34 } from "react/jsx-runtime";
|
|
7458
7791
|
function HeaderNavigationBlock({
|
|
7459
7792
|
onBack,
|
|
7460
7793
|
badge,
|
|
@@ -7463,14 +7796,14 @@ function HeaderNavigationBlock({
|
|
|
7463
7796
|
actions
|
|
7464
7797
|
}) {
|
|
7465
7798
|
var _a;
|
|
7466
|
-
return /* @__PURE__ */ jsx61("div", { className: "w-full min-w-80 max-w-layout-diagram-small rounded-md overflow-hidden bg-prominent", children: /* @__PURE__ */
|
|
7799
|
+
return /* @__PURE__ */ jsx61("div", { className: "w-full min-w-80 max-w-layout-diagram-small rounded-md overflow-hidden bg-prominent", children: /* @__PURE__ */ jsxs34("header", { className: "flex items-center gap-2 border-b border-border-subtle bg-prominent px-layout-margin-inline py-3", children: [
|
|
7467
7800
|
onBack && /* @__PURE__ */ jsx61(NavigationButton, { type: "button", size: "md", "aria-label": "Back", onClick: onBack, children: /* @__PURE__ */ jsx61(ArrowLeft2, { className: "size-5" }) }),
|
|
7468
|
-
/* @__PURE__ */
|
|
7801
|
+
/* @__PURE__ */ jsxs34("div", { className: "flex min-w-0 flex-1 items-center justify-center gap-2", children: [
|
|
7469
7802
|
badge && /* @__PURE__ */ jsx61(Badge, { variant: (_a = badge.variant) != null ? _a : "tint-warning", size: "sm", children: badge.label }),
|
|
7470
7803
|
/* @__PURE__ */ jsx61("span", { className: "font-display font-semibold tabular-nums text-on-prominent", children: balance.amount }),
|
|
7471
7804
|
/* @__PURE__ */ jsx61("span", { className: "text-sm text-on-subtle", children: balance.currency })
|
|
7472
7805
|
] }),
|
|
7473
|
-
/* @__PURE__ */
|
|
7806
|
+
/* @__PURE__ */ jsxs34("div", { className: "flex shrink-0 items-center gap-1", children: [
|
|
7474
7807
|
history && /* @__PURE__ */ jsx61(HistoryButton, __spreadValues({}, history)),
|
|
7475
7808
|
actions
|
|
7476
7809
|
] })
|
|
@@ -7484,7 +7817,7 @@ function HistoryButton({
|
|
|
7484
7817
|
const show = typeof count === "number" && count > 0;
|
|
7485
7818
|
const label = show ? count > 99 ? "99+" : String(count) : null;
|
|
7486
7819
|
const ariaLabel = ariaLabelOverride != null ? ariaLabelOverride : show ? `Open history, ${count} new` : "Open history";
|
|
7487
|
-
return /* @__PURE__ */
|
|
7820
|
+
return /* @__PURE__ */ jsxs34("div", { className: "relative inline-flex", children: [
|
|
7488
7821
|
/* @__PURE__ */ jsx61(NavigationButton, { type: "button", size: "md", "aria-label": ariaLabel, onClick, children: /* @__PURE__ */ jsx61(History, { className: "size-5" }) }),
|
|
7489
7822
|
show && /* @__PURE__ */ jsx61(
|
|
7490
7823
|
"span",
|
|
@@ -7500,7 +7833,7 @@ function HistoryButton({
|
|
|
7500
7833
|
// components/blocks/faq-block.tsx
|
|
7501
7834
|
import { Plus as Plus2 } from "lucide-react";
|
|
7502
7835
|
import { Accordion as AccordionPrimitive2 } from "radix-ui";
|
|
7503
|
-
import { jsx as jsx62, jsxs as
|
|
7836
|
+
import { jsx as jsx62, jsxs as jsxs35 } from "react/jsx-runtime";
|
|
7504
7837
|
function FAQBlock({
|
|
7505
7838
|
eyebrow = "FAQ",
|
|
7506
7839
|
title = "Frequently asked questions",
|
|
@@ -7512,8 +7845,8 @@ function FAQBlock({
|
|
|
7512
7845
|
}) {
|
|
7513
7846
|
var _a, _b;
|
|
7514
7847
|
if (layout === "two-column") {
|
|
7515
|
-
return /* @__PURE__ */ jsx62("div", { className: "@container w-full", children: /* @__PURE__ */
|
|
7516
|
-
/* @__PURE__ */
|
|
7848
|
+
return /* @__PURE__ */ jsx62("div", { className: "@container w-full", children: /* @__PURE__ */ jsxs35("div", { className: "flex flex-col @[600px]:flex-row gap-8 @[600px]:gap-12", children: [
|
|
7849
|
+
/* @__PURE__ */ jsxs35("div", { className: "flex flex-col gap-4 flex-1 @[600px]:max-w-xs", children: [
|
|
7517
7850
|
/* @__PURE__ */ jsx62("span", { className: "text-xs font-body font-semibold tracking-widest uppercase text-on-subtle", children: eyebrow }),
|
|
7518
7851
|
/* @__PURE__ */ jsx62("h2", { className: "text-4xl @[600px]:text-6xl font-semibold font-display text-on-prominent tracking-tight", children: title }),
|
|
7519
7852
|
intro && /* @__PURE__ */ jsx62("p", { className: "text-base font-body text-on-subtle", children: intro })
|
|
@@ -7525,13 +7858,13 @@ function FAQBlock({
|
|
|
7525
7858
|
collapsible: true,
|
|
7526
7859
|
defaultValue: defaultValue != null ? defaultValue : (_a = items[0]) == null ? void 0 : _a.value,
|
|
7527
7860
|
className: "w-full",
|
|
7528
|
-
children: items.map(({ value, question, answer }, i) => /* @__PURE__ */
|
|
7529
|
-
/* @__PURE__ */ jsx62(AccordionPrimitive2.Header, { className: "flex", children: /* @__PURE__ */
|
|
7861
|
+
children: items.map(({ value, question, answer }, i) => /* @__PURE__ */ jsxs35(AccordionItem, { value, children: [
|
|
7862
|
+
/* @__PURE__ */ jsx62(AccordionPrimitive2.Header, { className: "flex", children: /* @__PURE__ */ jsxs35(
|
|
7530
7863
|
AccordionPrimitive2.Trigger,
|
|
7531
7864
|
{
|
|
7532
7865
|
className: "group flex flex-1 items-center justify-between gap-4 py-5 text-left outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50",
|
|
7533
7866
|
children: [
|
|
7534
|
-
/* @__PURE__ */
|
|
7867
|
+
/* @__PURE__ */ jsxs35("span", { className: "flex items-baseline gap-4", children: [
|
|
7535
7868
|
/* @__PURE__ */ jsx62("span", { className: "text-sm font-body text-on-subtle shrink-0 w-6", children: String(i + 1).padStart(2, "0") }),
|
|
7536
7869
|
/* @__PURE__ */ jsx62("span", { className: "text-lg @[600px]:text-xl font-semibold font-display text-on-prominent", children: question })
|
|
7537
7870
|
] }),
|
|
@@ -7558,8 +7891,8 @@ function FAQBlock({
|
|
|
7558
7891
|
const helpCardPaddingClass = layout === "desktop" ? "p-8" : "p-6";
|
|
7559
7892
|
const gapClass = layout === "desktop" ? "gap-12" : "gap-10";
|
|
7560
7893
|
const headerGapClass = layout === "desktop" ? "gap-5" : "gap-4";
|
|
7561
|
-
return /* @__PURE__ */
|
|
7562
|
-
/* @__PURE__ */
|
|
7894
|
+
return /* @__PURE__ */ jsxs35("div", { className: `w-full flex flex-col ${gapClass}`, children: [
|
|
7895
|
+
/* @__PURE__ */ jsxs35("div", { className: `flex flex-col ${headerGapClass} items-center w-full`, children: [
|
|
7563
7896
|
/* @__PURE__ */ jsx62("span", { className: "text-sm text-on-subtle font-body", children: eyebrow }),
|
|
7564
7897
|
/* @__PURE__ */ jsx62("h2", { className: headingClass, children: title }),
|
|
7565
7898
|
intro && /* @__PURE__ */ jsx62("p", { className: "text-lg text-on-subtle font-body text-center", children: intro })
|
|
@@ -7571,14 +7904,14 @@ function FAQBlock({
|
|
|
7571
7904
|
collapsible: true,
|
|
7572
7905
|
defaultValue: defaultValue != null ? defaultValue : (_b = items[0]) == null ? void 0 : _b.value,
|
|
7573
7906
|
className: "w-full",
|
|
7574
|
-
children: items.map(({ value, question, answer }) => /* @__PURE__ */
|
|
7907
|
+
children: items.map(({ value, question, answer }) => /* @__PURE__ */ jsxs35(AccordionItem, { value, children: [
|
|
7575
7908
|
/* @__PURE__ */ jsx62(AccordionTrigger, { className: "text-base font-medium font-body text-on-prominent hover:no-underline", children: question }),
|
|
7576
7909
|
/* @__PURE__ */ jsx62(AccordionContent, { children: /* @__PURE__ */ jsx62("p", { className: "text-sm text-on-subtle font-body pb-4", children: answer }) })
|
|
7577
7910
|
] }, value))
|
|
7578
7911
|
}
|
|
7579
7912
|
),
|
|
7580
|
-
helpCard && /* @__PURE__ */
|
|
7581
|
-
/* @__PURE__ */
|
|
7913
|
+
helpCard && /* @__PURE__ */ jsxs35("div", { className: `flex flex-col gap-6 items-center w-full bg-subtle rounded-xl ${helpCardPaddingClass}`, children: [
|
|
7914
|
+
/* @__PURE__ */ jsxs35("div", { className: "flex flex-col gap-2 w-full", children: [
|
|
7582
7915
|
/* @__PURE__ */ jsx62("h3", { className: helpTitleClass, children: helpCard.title }),
|
|
7583
7916
|
/* @__PURE__ */ jsx62("p", { className: "text-base text-on-subtle font-body", children: helpCard.body })
|
|
7584
7917
|
] }),
|
|
@@ -7589,7 +7922,7 @@ function FAQBlock({
|
|
|
7589
7922
|
|
|
7590
7923
|
// components/blocks/hero-block.tsx
|
|
7591
7924
|
import { ArrowRight as ArrowRight3, ArrowUpRight } from "lucide-react";
|
|
7592
|
-
import { jsx as jsx63, jsxs as
|
|
7925
|
+
import { jsx as jsx63, jsxs as jsxs36 } from "react/jsx-runtime";
|
|
7593
7926
|
function HeroBlock({
|
|
7594
7927
|
layout = "centered",
|
|
7595
7928
|
tagline,
|
|
@@ -7600,26 +7933,26 @@ function HeroBlock({
|
|
|
7600
7933
|
image
|
|
7601
7934
|
}) {
|
|
7602
7935
|
if (layout === "centered") {
|
|
7603
|
-
return /* @__PURE__ */ jsx63("div", { className: "w-full border border-border-subtle rounded-xl overflow-hidden bg-prominent", children: /* @__PURE__ */
|
|
7604
|
-
/* @__PURE__ */
|
|
7936
|
+
return /* @__PURE__ */ jsx63("div", { className: "w-full border border-border-subtle rounded-xl overflow-hidden bg-prominent", children: /* @__PURE__ */ jsxs36("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: [
|
|
7937
|
+
/* @__PURE__ */ jsxs36("div", { className: "flex flex-col items-center gap-6 w-full", children: [
|
|
7605
7938
|
tagline && /* @__PURE__ */ jsx63(TaglinePill, __spreadValues({}, tagline)),
|
|
7606
7939
|
/* @__PURE__ */ jsx63("h1", { className: "text-5xl font-semibold font-display tracking-tight text-on-prominent text-center", children: heading }),
|
|
7607
7940
|
/* @__PURE__ */ jsx63("p", { className: "text-lg font-body text-on-subtle text-center", children: body })
|
|
7608
7941
|
] }),
|
|
7609
|
-
/* @__PURE__ */
|
|
7942
|
+
/* @__PURE__ */ jsxs36(Button, { size: "sm", onClick: primaryCta.onClick, children: [
|
|
7610
7943
|
primaryCta.label,
|
|
7611
7944
|
primaryCta.trailingArrow !== false && /* @__PURE__ */ jsx63(ArrowRight3, { className: "size-4" })
|
|
7612
7945
|
] })
|
|
7613
7946
|
] }) });
|
|
7614
7947
|
}
|
|
7615
|
-
return /* @__PURE__ */ jsx63("div", { className: "w-full border border-border-subtle rounded-xl overflow-hidden bg-prominent", children: /* @__PURE__ */
|
|
7616
|
-
/* @__PURE__ */
|
|
7617
|
-
/* @__PURE__ */
|
|
7948
|
+
return /* @__PURE__ */ jsx63("div", { className: "w-full border border-border-subtle rounded-xl overflow-hidden bg-prominent", children: /* @__PURE__ */ jsxs36("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: [
|
|
7949
|
+
/* @__PURE__ */ jsxs36("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: [
|
|
7950
|
+
/* @__PURE__ */ jsxs36("div", { className: "flex flex-col gap-5 min-[600px]:gap-6 items-center min-[600px]:items-start w-full", children: [
|
|
7618
7951
|
tagline && /* @__PURE__ */ jsx63(TaglinePill, __spreadProps(__spreadValues({}, tagline), { responsive: true })),
|
|
7619
7952
|
/* @__PURE__ */ jsx63("h1", { className: "text-4xl min-[600px]:text-5xl font-semibold font-display tracking-tight text-on-prominent", children: heading }),
|
|
7620
7953
|
/* @__PURE__ */ jsx63("p", { className: "text-lg font-body text-on-subtle", children: body })
|
|
7621
7954
|
] }),
|
|
7622
|
-
/* @__PURE__ */
|
|
7955
|
+
/* @__PURE__ */ jsxs36("div", { className: "flex items-center justify-center min-[600px]:justify-start gap-2", children: [
|
|
7623
7956
|
/* @__PURE__ */ jsx63(Button, { size: "sm", onClick: primaryCta.onClick, children: primaryCta.label }),
|
|
7624
7957
|
secondaryCta && /* @__PURE__ */ jsx63(Button, { variant: "secondary", size: "sm", onClick: secondaryCta.onClick, children: secondaryCta.label })
|
|
7625
7958
|
] })
|
|
@@ -7632,15 +7965,15 @@ function TaglinePill({
|
|
|
7632
7965
|
suffix,
|
|
7633
7966
|
responsive
|
|
7634
7967
|
}) {
|
|
7635
|
-
return /* @__PURE__ */
|
|
7968
|
+
return /* @__PURE__ */ jsxs36("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: [
|
|
7636
7969
|
/* @__PURE__ */ jsx63("span", { className: "size-1.5 rounded-full bg-semantic-win shrink-0", "aria-hidden": "true" }),
|
|
7637
|
-
responsive && suffix ? /* @__PURE__ */
|
|
7638
|
-
/* @__PURE__ */
|
|
7970
|
+
responsive && suffix ? /* @__PURE__ */ jsxs36("span", { className: "text-sm font-body text-on-prominent whitespace-nowrap", children: [
|
|
7971
|
+
/* @__PURE__ */ jsxs36("span", { className: "hidden min-[600px]:inline", children: [
|
|
7639
7972
|
label,
|
|
7640
7973
|
/* @__PURE__ */ jsx63("span", { className: "text-on-subtle", children: " \xB7 " })
|
|
7641
7974
|
] }),
|
|
7642
7975
|
/* @__PURE__ */ jsx63("span", { className: "text-on-subtle min-[600px]:text-on-prominent", children: suffix })
|
|
7643
|
-
] }) : /* @__PURE__ */
|
|
7976
|
+
] }) : /* @__PURE__ */ jsxs36("span", { className: "text-sm font-body text-on-prominent whitespace-nowrap", children: [
|
|
7644
7977
|
label,
|
|
7645
7978
|
suffix && /* @__PURE__ */ jsx63("span", { className: "text-on-subtle", children: ` \xB7 ${suffix}` })
|
|
7646
7979
|
] }),
|
|
@@ -7649,8 +7982,8 @@ function TaglinePill({
|
|
|
7649
7982
|
}
|
|
7650
7983
|
|
|
7651
7984
|
// components/blocks/auth-block.tsx
|
|
7652
|
-
import * as
|
|
7653
|
-
import { jsx as jsx64, jsxs as
|
|
7985
|
+
import * as React21 from "react";
|
|
7986
|
+
import { jsx as jsx64, jsxs as jsxs37 } from "react/jsx-runtime";
|
|
7654
7987
|
function AuthBlock({
|
|
7655
7988
|
mode,
|
|
7656
7989
|
logoSrc,
|
|
@@ -7665,15 +7998,15 @@ function AuthBlock({
|
|
|
7665
7998
|
const ctaText = mode === "sign-in" ? "Sign in" : "Sign up";
|
|
7666
7999
|
const footerPrompt = mode === "sign-in" ? "Don't have an account?" : "Already have an account?";
|
|
7667
8000
|
const footerLinkLabel = mode === "sign-in" ? "Sign up" : "Log in";
|
|
7668
|
-
const [email, setEmail] =
|
|
7669
|
-
return /* @__PURE__ */
|
|
7670
|
-
/* @__PURE__ */
|
|
8001
|
+
const [email, setEmail] = React21.useState("");
|
|
8002
|
+
return /* @__PURE__ */ jsxs37("div", { className: "flex flex-col items-center gap-6 w-full", children: [
|
|
8003
|
+
/* @__PURE__ */ jsxs37("div", { className: "flex items-center gap-2", children: [
|
|
7671
8004
|
/* @__PURE__ */ jsx64("img", { src: logoSrc, alt: wordmark, className: "size-8 object-contain" }),
|
|
7672
8005
|
/* @__PURE__ */ jsx64("span", { className: "font-display font-semibold text-base text-on-prominent tracking-tight", children: wordmark })
|
|
7673
8006
|
] }),
|
|
7674
8007
|
/* @__PURE__ */ jsx64("h2", { className: "text-3xl font-semibold font-display text-on-prominent text-center", children: headingText }),
|
|
7675
8008
|
/* @__PURE__ */ jsx64("div", { className: "flex flex-col gap-3 w-full", children: providers.map((p) => /* @__PURE__ */ jsx64(ProviderButton, { provider: p }, p)) }),
|
|
7676
|
-
/* @__PURE__ */
|
|
8009
|
+
/* @__PURE__ */ jsxs37("div", { className: "flex items-center gap-3 w-full", children: [
|
|
7677
8010
|
/* @__PURE__ */ jsx64("div", { className: "flex-1 h-px bg-border-subtle" }),
|
|
7678
8011
|
/* @__PURE__ */ jsx64("span", { className: "text-sm text-on-subtle font-body", children: "or" }),
|
|
7679
8012
|
/* @__PURE__ */ jsx64("div", { className: "flex-1 h-px bg-border-subtle" })
|
|
@@ -7689,14 +8022,14 @@ function AuthBlock({
|
|
|
7689
8022
|
onChange: (e) => setEmail(e.target.value)
|
|
7690
8023
|
}
|
|
7691
8024
|
) }),
|
|
7692
|
-
/* @__PURE__ */
|
|
8025
|
+
/* @__PURE__ */ jsxs37("p", { className: "text-sm text-on-subtle font-body text-left w-full", children: [
|
|
7693
8026
|
termsText,
|
|
7694
8027
|
", you agree to our",
|
|
7695
8028
|
" ",
|
|
7696
8029
|
/* @__PURE__ */ jsx64(Link, { size: "sm", href: "#", children: "Terms & Conditions" })
|
|
7697
8030
|
] }),
|
|
7698
8031
|
/* @__PURE__ */ jsx64(Button, { size: "md", className: "w-full", onClick: () => onSubmit == null ? void 0 : onSubmit({ email }), children: ctaText }),
|
|
7699
|
-
/* @__PURE__ */
|
|
8032
|
+
/* @__PURE__ */ jsxs37("p", { className: "text-sm text-on-subtle font-body text-center", children: [
|
|
7700
8033
|
footerPrompt,
|
|
7701
8034
|
" ",
|
|
7702
8035
|
/* @__PURE__ */ jsx64(Link, { size: "sm", href: crossLinkHref, children: footerLinkLabel })
|
|
@@ -7706,8 +8039,8 @@ function AuthBlock({
|
|
|
7706
8039
|
function ProviderButton({ provider }) {
|
|
7707
8040
|
switch (provider) {
|
|
7708
8041
|
case "google":
|
|
7709
|
-
return /* @__PURE__ */
|
|
7710
|
-
/* @__PURE__ */
|
|
8042
|
+
return /* @__PURE__ */ jsxs37(Button, { variant: "secondary", size: "lg", className: "w-full", children: [
|
|
8043
|
+
/* @__PURE__ */ jsxs37("svg", { width: "18", height: "18", viewBox: "0 0 18 18", "aria-hidden": "true", fill: "none", className: "shrink-0", children: [
|
|
7711
8044
|
/* @__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" }),
|
|
7712
8045
|
/* @__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" }),
|
|
7713
8046
|
/* @__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" }),
|
|
@@ -7716,8 +8049,8 @@ function ProviderButton({ provider }) {
|
|
|
7716
8049
|
"Continue with Google"
|
|
7717
8050
|
] });
|
|
7718
8051
|
case "telegram":
|
|
7719
|
-
return /* @__PURE__ */
|
|
7720
|
-
/* @__PURE__ */
|
|
8052
|
+
return /* @__PURE__ */ jsxs37(Button, { variant: "secondary", size: "lg", className: "w-full", children: [
|
|
8053
|
+
/* @__PURE__ */ jsxs37("svg", { width: "18", height: "18", viewBox: "0 0 18 18", "aria-hidden": "true", fill: "none", className: "shrink-0", children: [
|
|
7721
8054
|
/* @__PURE__ */ jsx64("circle", { cx: "9", cy: "9", r: "9", fill: "#29B6F6" }),
|
|
7722
8055
|
/* @__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" }),
|
|
7723
8056
|
/* @__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" })
|
|
@@ -7725,7 +8058,7 @@ function ProviderButton({ provider }) {
|
|
|
7725
8058
|
"Continue with Telegram"
|
|
7726
8059
|
] });
|
|
7727
8060
|
case "x":
|
|
7728
|
-
return /* @__PURE__ */
|
|
8061
|
+
return /* @__PURE__ */ jsxs37(Button, { variant: "secondary", size: "lg", className: "w-full", children: [
|
|
7729
8062
|
/* @__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" }) }),
|
|
7730
8063
|
"Continue with X (Twitter)"
|
|
7731
8064
|
] });
|
|
@@ -7733,15 +8066,15 @@ function ProviderButton({ provider }) {
|
|
|
7733
8066
|
}
|
|
7734
8067
|
|
|
7735
8068
|
// components/blocks/navbar-block.tsx
|
|
7736
|
-
import * as
|
|
8069
|
+
import * as React22 from "react";
|
|
7737
8070
|
import { Menu, X as X3 } from "lucide-react";
|
|
7738
|
-
import { jsx as jsx65, jsxs as
|
|
8071
|
+
import { jsx as jsx65, jsxs as jsxs38 } from "react/jsx-runtime";
|
|
7739
8072
|
function NavBarBlock({ brand, links, signIn, signUp }) {
|
|
7740
8073
|
var _a, _b, _c, _d;
|
|
7741
|
-
const [mobileMenuOpen, setMobileMenuOpen] =
|
|
7742
|
-
return /* @__PURE__ */ jsx65("div", { className: "w-full border border-border-subtle rounded-md overflow-hidden", children: /* @__PURE__ */
|
|
7743
|
-
/* @__PURE__ */
|
|
7744
|
-
/* @__PURE__ */
|
|
8074
|
+
const [mobileMenuOpen, setMobileMenuOpen] = React22.useState(false);
|
|
8075
|
+
return /* @__PURE__ */ jsx65("div", { className: "w-full border border-border-subtle rounded-md overflow-hidden", children: /* @__PURE__ */ jsxs38("nav", { className: "bg-prominent", children: [
|
|
8076
|
+
/* @__PURE__ */ jsxs38("div", { className: "flex items-center justify-between px-layout-margin-inline py-3", children: [
|
|
8077
|
+
/* @__PURE__ */ jsxs38("div", { className: "flex items-center gap-6", children: [
|
|
7745
8078
|
/* @__PURE__ */ jsx65(
|
|
7746
8079
|
"img",
|
|
7747
8080
|
{
|
|
@@ -7760,7 +8093,7 @@ function NavBarBlock({ brand, links, signIn, signUp }) {
|
|
|
7760
8093
|
),
|
|
7761
8094
|
/* @__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)) })
|
|
7762
8095
|
] }),
|
|
7763
|
-
/* @__PURE__ */
|
|
8096
|
+
/* @__PURE__ */ jsxs38("div", { className: "hidden min-[600px]:flex items-center gap-2", children: [
|
|
7764
8097
|
signIn && /* @__PURE__ */ jsx65(Button, { variant: "tertiary", size: "sm", onClick: signIn.onClick, children: (_a = signIn.label) != null ? _a : "Sign in" }),
|
|
7765
8098
|
signUp && /* @__PURE__ */ jsx65(Button, { size: "sm", onClick: signUp.onClick, children: (_b = signUp.label) != null ? _b : "Sign up" })
|
|
7766
8099
|
] }),
|
|
@@ -7777,7 +8110,7 @@ function NavBarBlock({ brand, links, signIn, signUp }) {
|
|
|
7777
8110
|
}
|
|
7778
8111
|
)
|
|
7779
8112
|
] }),
|
|
7780
|
-
mobileMenuOpen && /* @__PURE__ */
|
|
8113
|
+
mobileMenuOpen && /* @__PURE__ */ jsxs38("div", { className: "min-[600px]:hidden flex flex-col border-t border-border-subtle px-layout-margin-inline py-3 gap-1", children: [
|
|
7781
8114
|
links.map((l) => /* @__PURE__ */ jsx65(
|
|
7782
8115
|
Button,
|
|
7783
8116
|
{
|
|
@@ -7789,7 +8122,7 @@ function NavBarBlock({ brand, links, signIn, signUp }) {
|
|
|
7789
8122
|
},
|
|
7790
8123
|
l.label
|
|
7791
8124
|
)),
|
|
7792
|
-
(signIn || signUp) && /* @__PURE__ */
|
|
8125
|
+
(signIn || signUp) && /* @__PURE__ */ jsxs38("div", { className: "flex flex-col gap-2 pt-3 mt-2 border-t border-border-subtle", children: [
|
|
7793
8126
|
signIn && /* @__PURE__ */ jsx65(Button, { variant: "secondary", size: "sm", className: "w-full", onClick: signIn.onClick, children: (_c = signIn.label) != null ? _c : "Sign in" }),
|
|
7794
8127
|
signUp && /* @__PURE__ */ jsx65(Button, { size: "sm", className: "w-full", onClick: signUp.onClick, children: (_d = signUp.label) != null ? _d : "Sign up" })
|
|
7795
8128
|
] })
|
|
@@ -7799,7 +8132,7 @@ function NavBarBlock({ brand, links, signIn, signUp }) {
|
|
|
7799
8132
|
|
|
7800
8133
|
// components/blocks/open-positions-block.tsx
|
|
7801
8134
|
import { History as History2, X as X4 } from "lucide-react";
|
|
7802
|
-
import { jsx as jsx66, jsxs as
|
|
8135
|
+
import { jsx as jsx66, jsxs as jsxs39 } from "react/jsx-runtime";
|
|
7803
8136
|
function OpenPositionsBlock({
|
|
7804
8137
|
trigger,
|
|
7805
8138
|
sheetTitle = "Positions",
|
|
@@ -7810,10 +8143,10 @@ function OpenPositionsBlock({
|
|
|
7810
8143
|
const isMobile = useIsMobile();
|
|
7811
8144
|
const body = positions.length === 0 ? emptyState != null ? emptyState : /* @__PURE__ */ jsx66(DefaultEmptyState, { onViewHistory }) : /* @__PURE__ */ jsx66(PositionsList, { positions, onViewHistory });
|
|
7812
8145
|
if (isMobile) {
|
|
7813
|
-
return /* @__PURE__ */
|
|
8146
|
+
return /* @__PURE__ */ jsxs39(Drawer, { children: [
|
|
7814
8147
|
/* @__PURE__ */ jsx66(DrawerTrigger, { asChild: true, children: trigger }),
|
|
7815
|
-
/* @__PURE__ */
|
|
7816
|
-
/* @__PURE__ */
|
|
8148
|
+
/* @__PURE__ */ jsxs39(DrawerContent, { className: "p-0 flex flex-col", children: [
|
|
8149
|
+
/* @__PURE__ */ jsxs39(DrawerHeader, { className: "flex-row items-center justify-between px-4 py-3 shrink-0 text-left", children: [
|
|
7817
8150
|
/* @__PURE__ */ jsx66(DrawerTitle, { className: "text-base font-semibold font-display text-on-prominent", children: sheetTitle }),
|
|
7818
8151
|
/* @__PURE__ */ jsx66(DrawerClose, { asChild: true, children: /* @__PURE__ */ jsx66(NavigationButton, { size: "sm", "aria-label": "Close", children: /* @__PURE__ */ jsx66(X4, {}) }) })
|
|
7819
8152
|
] }),
|
|
@@ -7822,10 +8155,10 @@ function OpenPositionsBlock({
|
|
|
7822
8155
|
] })
|
|
7823
8156
|
] });
|
|
7824
8157
|
}
|
|
7825
|
-
return /* @__PURE__ */
|
|
8158
|
+
return /* @__PURE__ */ jsxs39(Sheet, { children: [
|
|
7826
8159
|
/* @__PURE__ */ jsx66(SheetTrigger, { asChild: true, children: trigger }),
|
|
7827
|
-
/* @__PURE__ */
|
|
7828
|
-
/* @__PURE__ */
|
|
8160
|
+
/* @__PURE__ */ jsxs39(SheetContent, { side: "right", showCloseButton: false, className: "p-0 flex flex-col w-80 sm:max-w-xs", children: [
|
|
8161
|
+
/* @__PURE__ */ jsxs39(SheetHeader, { className: "flex-row items-center justify-between px-4 py-3 shrink-0", children: [
|
|
7829
8162
|
/* @__PURE__ */ jsx66(SheetTitle, { className: "text-base font-semibold font-display text-on-prominent", children: sheetTitle }),
|
|
7830
8163
|
/* @__PURE__ */ jsx66(SheetClose, { asChild: true, children: /* @__PURE__ */ jsx66(NavigationButton, { size: "sm", "aria-label": "Close", children: /* @__PURE__ */ jsx66(X4, {}) }) })
|
|
7831
8164
|
] }),
|
|
@@ -7838,7 +8171,7 @@ function PositionsList({
|
|
|
7838
8171
|
positions,
|
|
7839
8172
|
onViewHistory
|
|
7840
8173
|
}) {
|
|
7841
|
-
return /* @__PURE__ */
|
|
8174
|
+
return /* @__PURE__ */ jsxs39("div", { className: "flex flex-col flex-1 min-h-0", children: [
|
|
7842
8175
|
/* @__PURE__ */ jsx66(ItemGroup, { className: "min-h-0 overflow-y-auto", children: positions.map((pos, i) => /* @__PURE__ */ jsx66(PositionRow, { position: pos }, i)) }),
|
|
7843
8176
|
/* @__PURE__ */ jsx66(Separator, {}),
|
|
7844
8177
|
/* @__PURE__ */ jsx66("div", { className: "shrink-0 flex justify-center py-4", children: /* @__PURE__ */ jsx66(Button, { variant: "tertiary", size: "md", onClick: onViewHistory, children: "View trade history" }) })
|
|
@@ -7846,9 +8179,9 @@ function PositionsList({
|
|
|
7846
8179
|
}
|
|
7847
8180
|
function PositionRow({ position }) {
|
|
7848
8181
|
const { label, suffix } = positionTitleParts(position);
|
|
7849
|
-
return /* @__PURE__ */
|
|
7850
|
-
/* @__PURE__ */
|
|
7851
|
-
/* @__PURE__ */
|
|
8182
|
+
return /* @__PURE__ */ jsxs39(Item, { size: "sm", children: [
|
|
8183
|
+
/* @__PURE__ */ jsxs39(ItemContent, { children: [
|
|
8184
|
+
/* @__PURE__ */ jsxs39(ItemTitle, { children: [
|
|
7852
8185
|
/* @__PURE__ */ jsx66("span", { className: "text-on-prominent", children: label }),
|
|
7853
8186
|
suffix && /* @__PURE__ */ jsx66("span", { className: "text-on-subtle", children: ` ${suffix}` })
|
|
7854
8187
|
] }),
|
|
@@ -7880,20 +8213,20 @@ function positionTitleParts(p) {
|
|
|
7880
8213
|
}
|
|
7881
8214
|
}
|
|
7882
8215
|
function MetaNote({ market, duration }) {
|
|
7883
|
-
return /* @__PURE__ */
|
|
8216
|
+
return /* @__PURE__ */ jsxs39("span", { className: "text-xs text-on-subtle whitespace-nowrap", children: [
|
|
7884
8217
|
market,
|
|
7885
8218
|
" \xB7 ",
|
|
7886
8219
|
duration
|
|
7887
8220
|
] });
|
|
7888
8221
|
}
|
|
7889
8222
|
function PnlMeta({ pnl, win, stake }) {
|
|
7890
|
-
return /* @__PURE__ */
|
|
8223
|
+
return /* @__PURE__ */ jsxs39("div", { className: "flex flex-col items-end gap-0.5", children: [
|
|
7891
8224
|
/* @__PURE__ */ jsx66("span", { className: `font-display font-semibold tabular-nums text-base ${win ? "text-semantic-win" : "text-semantic-loss"}`, children: pnl }),
|
|
7892
8225
|
/* @__PURE__ */ jsx66("span", { className: "tabular-nums text-xs text-on-subtle", children: stake })
|
|
7893
8226
|
] });
|
|
7894
8227
|
}
|
|
7895
8228
|
function DefaultEmptyState({ onViewHistory }) {
|
|
7896
|
-
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__ */
|
|
8229
|
+
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__ */ jsxs39(EmptyHeader, { className: "gap-4", children: [
|
|
7897
8230
|
/* @__PURE__ */ jsx66(EmptyMedia, { children: /* @__PURE__ */ jsx66(History2, { className: "size-8 text-on-subtle" }) }),
|
|
7898
8231
|
/* @__PURE__ */ jsx66(EmptyTitle, { className: "h6 text-on-subtle", children: "No trades yet." }),
|
|
7899
8232
|
/* @__PURE__ */ jsx66(Button, { variant: "tertiary", size: "md", onClick: onViewHistory, children: "View trade history" })
|
|
@@ -7901,8 +8234,8 @@ function DefaultEmptyState({ onViewHistory }) {
|
|
|
7901
8234
|
}
|
|
7902
8235
|
|
|
7903
8236
|
// components/blocks/game-loading-block.tsx
|
|
7904
|
-
import * as
|
|
7905
|
-
import { jsx as jsx67, jsxs as
|
|
8237
|
+
import * as React23 from "react";
|
|
8238
|
+
import { jsx as jsx67, jsxs as jsxs40 } from "react/jsx-runtime";
|
|
7906
8239
|
function useSmoothProgress({
|
|
7907
8240
|
checkpoints,
|
|
7908
8241
|
reached,
|
|
@@ -7912,19 +8245,19 @@ function useSmoothProgress({
|
|
|
7912
8245
|
readyLabel = "Ready"
|
|
7913
8246
|
}) {
|
|
7914
8247
|
var _a, _b;
|
|
7915
|
-
const [progress, setProgress] =
|
|
7916
|
-
const [delayed, setDelayed] =
|
|
7917
|
-
const checkpointsRef =
|
|
7918
|
-
const reachedRef =
|
|
7919
|
-
const doneRef =
|
|
7920
|
-
|
|
8248
|
+
const [progress, setProgress] = React23.useState(0);
|
|
8249
|
+
const [delayed, setDelayed] = React23.useState(false);
|
|
8250
|
+
const checkpointsRef = React23.useRef(checkpoints);
|
|
8251
|
+
const reachedRef = React23.useRef(reached);
|
|
8252
|
+
const doneRef = React23.useRef(done);
|
|
8253
|
+
React23.useEffect(() => {
|
|
7921
8254
|
checkpointsRef.current = checkpoints;
|
|
7922
8255
|
reachedRef.current = reached;
|
|
7923
8256
|
doneRef.current = done;
|
|
7924
8257
|
});
|
|
7925
|
-
const progressRef =
|
|
7926
|
-
const lastAdvanceRef =
|
|
7927
|
-
|
|
8258
|
+
const progressRef = React23.useRef(0);
|
|
8259
|
+
const lastAdvanceRef = React23.useRef(0);
|
|
8260
|
+
React23.useEffect(() => {
|
|
7928
8261
|
let raf = 0;
|
|
7929
8262
|
let last = 0;
|
|
7930
8263
|
const tick = (ts) => {
|
|
@@ -7978,14 +8311,14 @@ function GameLoadingBlock({
|
|
|
7978
8311
|
backgroundImageUrl,
|
|
7979
8312
|
className
|
|
7980
8313
|
}) {
|
|
7981
|
-
const [go, setGo] =
|
|
7982
|
-
const [reduced, setReduced] =
|
|
7983
|
-
|
|
8314
|
+
const [go, setGo] = React23.useState(false);
|
|
8315
|
+
const [reduced, setReduced] = React23.useState(false);
|
|
8316
|
+
React23.useEffect(() => {
|
|
7984
8317
|
if (typeof window !== "undefined" && typeof window.matchMedia === "function") {
|
|
7985
8318
|
setReduced(window.matchMedia("(prefers-reduced-motion: reduce)").matches);
|
|
7986
8319
|
}
|
|
7987
8320
|
}, []);
|
|
7988
|
-
|
|
8321
|
+
React23.useEffect(() => {
|
|
7989
8322
|
if (!exiting) return;
|
|
7990
8323
|
const raf = requestAnimationFrame(() => setGo(true));
|
|
7991
8324
|
const timer = setTimeout(() => onExitEnd == null ? void 0 : onExitEnd(), reduced ? 240 : 520);
|
|
@@ -7995,7 +8328,7 @@ function GameLoadingBlock({
|
|
|
7995
8328
|
};
|
|
7996
8329
|
}, [exiting, reduced, onExitEnd]);
|
|
7997
8330
|
const isAbsolute = exiting || contained;
|
|
7998
|
-
return /* @__PURE__ */
|
|
8331
|
+
return /* @__PURE__ */ jsxs40(
|
|
7999
8332
|
"div",
|
|
8000
8333
|
{
|
|
8001
8334
|
role: "status",
|
|
@@ -8026,7 +8359,7 @@ function GameLoadingBlock({
|
|
|
8026
8359
|
children: /* @__PURE__ */ jsx67("path", { d: MONOGRAM_D })
|
|
8027
8360
|
}
|
|
8028
8361
|
),
|
|
8029
|
-
!exiting && /* @__PURE__ */
|
|
8362
|
+
!exiting && /* @__PURE__ */ jsxs40("div", { className: "flex w-[200px] flex-col items-start gap-3.5", children: [
|
|
8030
8363
|
/* @__PURE__ */ jsx67("div", { className: "relative h-2 w-full overflow-hidden rounded-xs bg-on-primary/25", children: /* @__PURE__ */ jsx67(
|
|
8031
8364
|
"div",
|
|
8032
8365
|
{
|
|
@@ -8091,6 +8424,7 @@ export {
|
|
|
8091
8424
|
CardTitle,
|
|
8092
8425
|
Carousel,
|
|
8093
8426
|
CarouselContent,
|
|
8427
|
+
CarouselDots,
|
|
8094
8428
|
CarouselItem,
|
|
8095
8429
|
CarouselNext,
|
|
8096
8430
|
CarouselPrevious,
|
|
@@ -8233,7 +8567,9 @@ export {
|
|
|
8233
8567
|
Numpad,
|
|
8234
8568
|
OpenPositionsBlock,
|
|
8235
8569
|
Pagination,
|
|
8570
|
+
PaginationBar,
|
|
8236
8571
|
PaginationContent,
|
|
8572
|
+
PaginationDots,
|
|
8237
8573
|
PaginationEllipsis,
|
|
8238
8574
|
PaginationItem,
|
|
8239
8575
|
PaginationLink,
|
|
@@ -8255,6 +8591,7 @@ export {
|
|
|
8255
8591
|
ResizablePanelGroup,
|
|
8256
8592
|
ResultBlock,
|
|
8257
8593
|
ResultDialog,
|
|
8594
|
+
ResultSnackbar,
|
|
8258
8595
|
ScrollArea,
|
|
8259
8596
|
ScrollBar,
|
|
8260
8597
|
SectionMessage,
|