@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/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:opacity-24 [&[data-state=open]>svg]:rotate-180",
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 disabled:opacity-24 aria-invalid:border-border-error-default aria-invalid:ring-ring-error-soft [&_svg]:pointer-events-none [&_svg]:shrink-0 font-display",
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
- // hairline border, prominent ink. Hover swaps to the secondary
174
- // surface (one lift up), press dims via the shared active state.
175
- secondary: "bg-background-primary-surface border border-border-default-default text-text-prominent-default hover:bg-background-secondary-surface",
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-background-static-white text-text-on-brand-static hover:bg-(--primitive-white-alpha-8)",
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 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",
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:opacity-24 [&_svg]:pointer-events-none [&_svg]:shrink-0",
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 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",
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 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"
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:opacity-24 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",
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]:opacity-24 [&_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",
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:opacity-24",
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:opacity-24",
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 React5 from "react";
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
- var CarouselContext = React5.createContext(null);
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 = React5.useContext(CarouselContext);
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] = React5.useState(false);
1990
- const [canScrollNext, setCanScrollNext] = React5.useState(false);
1991
- const onSelect = React5.useCallback((api2) => {
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 = React5.useCallback(() => {
2226
+ const scrollPrev = React6.useCallback(() => {
1997
2227
  api == null ? void 0 : api.scrollPrev();
1998
2228
  }, [api]);
1999
- const scrollNext = React5.useCallback(() => {
2229
+ const scrollNext = React6.useCallback(() => {
2000
2230
  api == null ? void 0 : api.scrollNext();
2001
2231
  }, [api]);
2002
- const handleKeyDown = React5.useCallback(
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
- React5.useEffect(() => {
2247
+ React6.useEffect(() => {
2015
2248
  if (!api || !setApi) return;
2016
2249
  setApi(api);
2017
2250
  }, [api, setApi]);
2018
- React5.useEffect(() => {
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__ */ jsx16(
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__ */ jsx16(
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__ */ jsx16(
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__ */ jsx16(
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__ */ jsx16(
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__ */ jsxs10(
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__ */ jsx16(ArrowLeft, {}),
2121
- /* @__PURE__ */ jsx16("span", { className: "sr-only", children: "Previous slide" })
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__ */ jsxs10(
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__ */ jsx16(ArrowRight, {}),
2153
- /* @__PURE__ */ jsx16("span", { className: "sr-only", children: "Next slide" })
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 jsx17 } from "react/jsx-runtime";
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__ */ jsx17(
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 jsx18 } from "react/jsx-runtime";
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__ */ jsx18(
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:opacity-24 data-[state=checked]:border-transparent data-[state=checked]:bg-background-brand-default data-[state=checked]:text-text-on-brand-static",
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__ */ jsx18(
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__ */ jsx18(CheckIcon2, { className: "size-3.5" })
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 jsx19, jsxs as jsxs11 } from "react/jsx-runtime";
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__ */ jsx19(DialogPrimitive.Root, __spreadValues({ "data-slot": "dialog" }, props));
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__ */ jsx19(DialogPrimitive.Trigger, __spreadValues({ "data-slot": "dialog-trigger" }, props));
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__ */ jsx19(DialogPrimitive.Portal, __spreadValues({ "data-slot": "dialog-portal" }, props));
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__ */ jsx19(DialogPrimitive.Close, __spreadValues({ "data-slot": "dialog-close" }, props));
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__ */ jsx19(
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__ */ jsxs11(DialogPortal, { "data-slot": "dialog-portal", children: [
2282
- /* @__PURE__ */ jsx19(DialogOverlay, {}),
2283
- /* @__PURE__ */ jsxs11(
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__ */ jsx19(DialogPrimitive.Close, { asChild: true, children: /* @__PURE__ */ jsx19(
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__ */ jsx19(XIcon, { className: "size-4" })
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__ */ jsx19(
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__ */ jsxs11(
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__ */ jsx19(DialogPrimitive.Close, { asChild: true, children: /* @__PURE__ */ jsx19(Button, { variant: "secondary", size: "md", children: "Close" }) })
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__ */ jsx19(
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__ */ jsx19(
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 jsx20, jsxs as jsxs12 } from "react/jsx-runtime";
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__ */ jsx20(
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__ */ jsxs12(Dialog, __spreadProps(__spreadValues({}, props), { children: [
2408
- /* @__PURE__ */ jsxs12(DialogHeader, { className: "sr-only", children: [
2409
- /* @__PURE__ */ jsx20(DialogTitle, { children: title }),
2410
- /* @__PURE__ */ jsx20(DialogDescription, { children: description })
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__ */ jsx20(
2666
+ /* @__PURE__ */ jsx21(
2413
2667
  DialogContent,
2414
2668
  {
2415
2669
  className: cn("overflow-hidden p-0", className),
2416
2670
  showCloseButton,
2417
- children: /* @__PURE__ */ jsx20(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 })
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__ */ jsxs12(
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__ */ jsx20(SearchIcon, { className: "size-4 shrink-0 text-icon-subtle-default" }),
2435
- /* @__PURE__ */ jsx20(
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:opacity-24",
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__ */ jsx20(
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__ */ jsx20(
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__ */ jsx20(
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__ */ jsx20(
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__ */ jsx20(
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]:opacity-24 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",
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__ */ jsx20(
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 ChevronRightIcon2, CircleIcon } from "lucide-react";
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 jsx21, jsxs as jsxs13 } from "react/jsx-runtime";
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__ */ jsx21(ContextMenuPrimitive.Root, __spreadValues({ "data-slot": "context-menu" }, props));
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__ */ jsx21(ContextMenuPrimitive.Trigger, __spreadValues({ "data-slot": "context-menu-trigger" }, props));
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__ */ jsx21(ContextMenuPrimitive.Group, __spreadValues({ "data-slot": "context-menu-group" }, props));
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__ */ jsx21(ContextMenuPrimitive.Portal, __spreadValues({ "data-slot": "context-menu-portal" }, props));
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__ */ jsx21(ContextMenuPrimitive.Sub, __spreadValues({ "data-slot": "context-menu-sub" }, props));
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__ */ jsx21(
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__ */ jsxs13(
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__ */ jsx21(ChevronRightIcon2, { className: "ml-auto" })
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__ */ jsx21(
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__ */ jsx21(ContextMenuPrimitive.Portal, { children: /* @__PURE__ */ jsx21(
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__ */ jsx21(
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]:opacity-24 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!",
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__ */ jsxs13(
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]:opacity-24 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
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__ */ jsx21("span", { className: "pointer-events-none absolute left-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ jsx21(ContextMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx21(CheckIcon3, { className: "size-4" }) }) }),
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__ */ jsxs13(
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]:opacity-24 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
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__ */ jsx21("span", { className: "pointer-events-none absolute left-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ jsx21(ContextMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx21(CircleIcon, { className: "size-2 fill-current" }) }) }),
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__ */ jsx21(
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__ */ jsx21(
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__ */ jsx21(
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 jsx22, jsxs as jsxs14 } from "react/jsx-runtime";
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__ */ jsx22(DrawerPrimitive.Root, __spreadValues({ "data-slot": "drawer" }, props));
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__ */ jsx22(DrawerPrimitive.Trigger, __spreadValues({ "data-slot": "drawer-trigger" }, props));
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__ */ jsx22(DrawerPrimitive.Portal, __spreadValues({ "data-slot": "drawer-portal" }, props));
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__ */ jsx22(DrawerPrimitive.Close, __spreadValues({ "data-slot": "drawer-close" }, props));
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__ */ jsx22(
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__ */ jsxs14(DrawerPortal, { "data-slot": "drawer-portal", children: [
2807
- /* @__PURE__ */ jsx22(DrawerOverlay, {}),
2808
- /* @__PURE__ */ jsxs14(
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__ */ jsx22("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" }),
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__ */ jsx22(
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__ */ jsx22(
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__ */ jsx22(
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__ */ jsx22(
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 ChevronRightIcon3, CircleIcon as CircleIcon2 } from "lucide-react";
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 jsx23, jsxs as jsxs15 } from "react/jsx-runtime";
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__ */ jsx23(DropdownMenuPrimitive.Root, __spreadValues({ "data-slot": "dropdown-menu" }, props));
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__ */ jsx23(DropdownMenuPrimitive.Portal, __spreadValues({ "data-slot": "dropdown-menu-portal" }, props));
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__ */ jsx23(
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__ */ jsx23(DropdownMenuPrimitive.Portal, { children: /* @__PURE__ */ jsx23(
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__ */ jsx23(DropdownMenuPrimitive.Group, __spreadValues({ "data-slot": "dropdown-menu-group" }, props));
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__ */ jsx23(
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]:opacity-24 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!",
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__ */ jsxs15(
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]:opacity-24 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
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__ */ jsx23("span", { className: "pointer-events-none absolute left-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ jsx23(DropdownMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx23(CheckIcon4, { className: "size-4" }) }) }),
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__ */ jsx23(
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__ */ jsxs15(
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]:opacity-24 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
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__ */ jsx23("span", { className: "pointer-events-none absolute left-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ jsx23(DropdownMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx23(CircleIcon2, { className: "size-2 fill-current" }) }) }),
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__ */ jsx23(
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__ */ jsx23(
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__ */ jsx23(
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__ */ jsx23(DropdownMenuPrimitive.Sub, __spreadValues({ "data-slot": "dropdown-menu-sub" }, props));
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__ */ jsxs15(
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__ */ jsx23(ChevronRightIcon3, { className: "ml-auto size-4" })
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__ */ jsx23(
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 jsx24 } from "react/jsx-runtime";
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__ */ jsx24(
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__ */ jsx24(
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__ */ jsx24(
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__ */ jsx24(
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__ */ jsx24(
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__ */ jsx24(
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 React6 from "react";
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 jsx25 } from "react/jsx-runtime";
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__ */ jsx25(
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]:opacity-24 peer-disabled:cursor-not-allowed peer-disabled:opacity-24",
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 jsx26 } from "react/jsx-runtime";
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__ */ jsx26(
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 jsx27, jsxs as jsxs16 } from "react/jsx-runtime";
3263
- var FieldSizeContext = React6.createContext("md");
3516
+ import { jsx as jsx28, jsxs as jsxs17 } from "react/jsx-runtime";
3517
+ var FieldSizeContext = React7.createContext("md");
3264
3518
  function useFieldSize() {
3265
- return React6.useContext(FieldSizeContext);
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__ */ jsx27(
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__ */ jsx27(
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__ */ jsx27(
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__ */ jsx27(FieldSizeContext.Provider, { value: size != null ? size : "md", children: /* @__PURE__ */ jsx27(
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__ */ jsx27(
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__ */ jsx27(
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:opacity-24",
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__ */ jsx27(
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:opacity-24",
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__ */ jsx27(
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__ */ jsxs16(
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__ */ jsx27(Separator, { className: "absolute inset-0 top-1/2" }),
3456
- children && /* @__PURE__ */ jsx27(
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 = useMemo(() => {
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__ */ jsx27("ul", { className: "ml-4 flex list-disc flex-col gap-1", children: uniqueErrors.map(
3493
- (error, index) => (error == null ? void 0 : error.message) && /* @__PURE__ */ jsx27("li", { children: error.message }, index)
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__ */ jsx27(
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 jsx28 } from "react/jsx-runtime";
3767
+ import { jsx as jsx29 } from "react/jsx-runtime";
3514
3768
  function HoverCard(_a) {
3515
3769
  var props = __objRest(_a, []);
3516
- return /* @__PURE__ */ jsx28(HoverCardPrimitive.Root, __spreadValues({ "data-slot": "hover-card" }, props));
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__ */ jsx28(HoverCardPrimitive.Trigger, __spreadValues({ "data-slot": "hover-card-trigger" }, props));
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__ */ jsx28(HoverCardPrimitive.Portal, { "data-slot": "hover-card-portal", children: /* @__PURE__ */ jsx28(
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 jsx29 } from "react/jsx-runtime";
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:opacity-24",
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
- "read-only:border-transparent read-only:bg-background-secondary-surface",
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-(--primitive-white-alpha-50)",
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-(--primitive-white-alpha-50)",
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__ */ jsx29(
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 React7 from "react";
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 jsx30 } from "react/jsx-runtime";
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__ */ jsx30(
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:opacity-24 aria-invalid:border-border-error-default aria-invalid:ring-ring-error-soft",
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 jsx31 } from "react/jsx-runtime";
3650
- var InputGroupSizeContext = React7.createContext("md");
3651
- var InputGroupVariantContext = React7.createContext("default");
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__ */ jsx31(
3967
+ return /* @__PURE__ */ jsx32(
3711
3968
  InputGroupVariantContext.Provider,
3712
3969
  {
3713
3970
  value: variant,
3714
- children: /* @__PURE__ */ jsx31(InputGroupSizeContext.Provider, { value: resolvedSize, children: /* @__PURE__ */ jsx31(
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
- "group-data-[variant=on-brand]/input-group:text-(--primitive-white-alpha-64)",
3732
- "group-data-[variant=inverse]/input-group:text-(--primitive-white-alpha-64)",
3733
- "group-data-[disabled=true]/input-group:opacity-24",
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__ */ jsx31(
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__ */ jsx31(
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__ */ jsx31(
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
- "group-data-[variant=on-brand]/input-group:text-(--primitive-white-alpha-64)",
3831
- "group-data-[variant=inverse]/input-group:text-(--primitive-white-alpha-64)",
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 = React7.useContext(InputGroupSizeContext);
3853
- const groupVariant = React7.useContext(InputGroupVariantContext);
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__ */ jsx31(
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__ */ jsx31(
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 React8 from "react";
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 jsx32, jsxs as jsxs17 } from "react/jsx-runtime";
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__ */ jsx32(
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:opacity-24",
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__ */ jsx32(
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 = React8.useContext(OTPInputContext);
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__ */ jsxs17(
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__ */ jsx32("div", { className: "pointer-events-none absolute inset-0 flex items-center justify-center", children: /* @__PURE__ */ jsx32("div", { className: "h-4 w-px animate-caret-blink bg-text-prominent-default duration-1000" }) })
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__ */ jsx32("div", __spreadProps(__spreadValues({ "data-slot": "input-otp-separator", role: "separator" }, props), { children: /* @__PURE__ */ jsx32(MinusIcon, {}) }));
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 jsx33 } from "react/jsx-runtime";
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__ */ jsx33(
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__ */ jsx33(
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__ */ jsx33(
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__ */ jsx33(
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__ */ jsx33(
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__ */ jsx33(
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__ */ jsx33(
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__ */ jsx33(
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__ */ jsx33(
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__ */ jsx33(
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 jsx34 } from "react/jsx-runtime";
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__ */ jsx34(
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 ChevronRightIcon4, CircleIcon as CircleIcon3 } from "lucide-react";
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 jsx35, jsxs as jsxs18 } from "react/jsx-runtime";
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__ */ jsx35(
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__ */ jsx35(MenubarPrimitive.Menu, __spreadValues({ "data-slot": "menubar-menu" }, props));
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__ */ jsx35(MenubarPrimitive.Group, __spreadValues({ "data-slot": "menubar-group" }, props));
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__ */ jsx35(MenubarPrimitive.Portal, __spreadValues({ "data-slot": "menubar-portal" }, props));
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__ */ jsx35(MenubarPrimitive.RadioGroup, __spreadValues({ "data-slot": "menubar-radio-group" }, props));
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__ */ jsx35(
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__ */ jsx35(MenubarPortal, { children: /* @__PURE__ */ jsx35(
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__ */ jsx35(
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]:opacity-24 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!",
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__ */ jsxs18(
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]:opacity-24 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
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__ */ jsx35("span", { className: "pointer-events-none absolute left-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ jsx35(MenubarPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx35(CheckIcon5, { className: "size-4" }) }) }),
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__ */ jsxs18(
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]:opacity-24 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
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__ */ jsx35("span", { className: "pointer-events-none absolute left-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ jsx35(MenubarPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx35(CircleIcon3, { className: "size-2 fill-current" }) }) }),
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__ */ jsx35(
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__ */ jsx35(
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__ */ jsx35(
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__ */ jsx35(MenubarPrimitive.Sub, __spreadValues({ "data-slot": "menubar-sub" }, props));
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__ */ jsxs18(
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__ */ jsx35(ChevronRightIcon4, { className: "ml-auto" })
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__ */ jsx35(
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 jsx36, jsxs as jsxs19 } from "react/jsx-runtime";
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__ */ jsxs19(
4752
+ return /* @__PURE__ */ jsxs20(
4490
4753
  "div",
4491
4754
  {
4492
- className: "group/native-select relative w-fit has-[select:disabled]:opacity-24",
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__ */ jsx36(
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__ */ jsx36(
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__ */ jsx36("option", __spreadValues({ "data-slot": "native-select-option" }, props));
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__ */ jsx36(
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 jsx37, jsxs as jsxs20 } from "react/jsx-runtime";
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__ */ jsxs20(
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__ */ jsx37(NavigationMenuViewport, {})
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__ */ jsx37(
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__ */ jsx37(
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:opacity-24 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"
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__ */ jsxs20(
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__ */ jsx37(
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__ */ jsx37(
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__ */ jsx37(
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__ */ jsx37(
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__ */ jsx37(
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__ */ jsx37(
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__ */ jsx37("div", { className: "relative top-[60%] h-2 w-2 rotate-45 rounded-tl-sm bg-border-default-default" })
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 React9 from "react";
4977
+ import * as React10 from "react";
4715
4978
  import { Delete } from "lucide-react";
4716
- import { jsx as jsx38 } from "react/jsx-runtime";
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 = React9.useRef(null);
4733
- const longPressFired = React9.useRef(false);
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
- React9.useEffect(() => cancelHold, []);
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__ */ jsx38(
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 opacity-24",
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__ */ jsx38("span", { "aria-hidden": true }, `empty-${i}`) : /* @__PURE__ */ jsx38(
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__ */ jsx38(Delete, { className: "size-5.5" }) : key
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 React10 from "react";
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] = React10.useState(
5189
+ const [timerPct, setTimerPct] = React11.useState(
5023
5190
  timer != null ? direction === "up" ? 0 : 100 : null
5024
5191
  );
5025
- const endedRef = React10.useRef(false);
5026
- React10.useEffect(() => {
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:opacity-24 aria-invalid:border-border-error-default aria-invalid:ring-ring-error-soft",
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 React13 from "react";
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 React11 from "react";
5749
+ import * as React12 from "react";
5583
5750
  var MOBILE_BREAKPOINT = 768;
5584
5751
  function useIsMobile() {
5585
- const [isMobile, setIsMobile] = React11.useState(void 0);
5586
- React11.useEffect(() => {
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 React12 from "react";
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 = React12.createContext("tooltip");
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 = React12.useContext(TooltipModeContext);
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 = React12.useContext(TooltipModeContext);
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 = React13.createContext(null);
5880
+ var SidebarContext = React14.createContext(null);
5714
5881
  function useSidebar() {
5715
- const context = React13.useContext(SidebarContext);
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] = React13.useState(false);
5739
- const [_open, _setOpen] = React13.useState(defaultOpen);
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 = React13.useCallback(
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 = React13.useCallback(() => {
5920
+ const toggleSidebar = React14.useCallback(() => {
5754
5921
  return isMobile ? setOpenMobile((open2) => !open2) : setOpen((open2) => !open2);
5755
5922
  }, [isMobile, setOpen, setOpenMobile]);
5756
- React13.useEffect(() => {
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 = React13.useMemo(
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:opacity-24 aria-disabled:pointer-events-none aria-disabled:opacity-24 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",
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:opacity-24 aria-disabled:pointer-events-none aria-disabled:opacity-24 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0 data-[active=true]:[&>svg]:text-text-brand-selected",
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 React14 from "react";
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 = React14.useMemo(
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]:opacity-24 data-[orientation=vertical]:h-full data-[orientation=vertical]:min-h-44 data-[orientation=vertical]:w-auto data-[orientation=vertical]:flex-col",
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 React15 from "react";
6804
+ import * as React17 from "react";
6472
6805
  import { ArrowRight as ArrowRight2, Check } from "lucide-react";
6473
- import { jsx as jsx52, jsxs as jsxs29 } from "react/jsx-runtime";
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 = React15.useRef(null);
6494
- const [dragX, setDragX] = React15.useState(0);
6495
- const [dragging, setDragging] = React15.useState(false);
6496
- const [trackWidth, setTrackWidth] = React15.useState(0);
6497
- const [internalConfirmed, setInternalConfirmed] = React15.useState(false);
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 = React15.useRef(false);
6500
- React15.useEffect(() => {
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
- React15.useEffect(() => {
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__ */ jsxs29(
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 opacity-24",
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 React16 from "react";
6980
+ import * as React18 from "react";
6648
6981
  import { Minus, Plus } from "lucide-react";
6649
- import { jsx as jsx53, jsxs as jsxs30 } from "react/jsx-runtime";
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] = React16.useState(
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] = React16.useState(
7015
+ const [displayString, setDisplayString] = React18.useState(
6683
7016
  formatValue(currentValue, decimalPlaces)
6684
7017
  );
6685
- const [isFocused, setIsFocused] = React16.useState(false);
6686
- React16.useEffect(() => {
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__ */ jsxs30(
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__ */ jsxs30("div", { className: "flex min-w-0 flex-col items-center", children: [
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 React17 from "react";
7149
+ import * as React19 from "react";
6817
7150
  import { Check as Check2 } from "lucide-react";
6818
- import { jsx as jsx54, jsxs as jsxs31 } from "react/jsx-runtime";
6819
- var StepsContext = React17.createContext({ shape: "circle", orientation: "horizontal", size: "md" });
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 = React17.Children.toArray(children);
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) => React17.isValidElement(child) ? React17.cloneElement(child, {
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 } = React17.useContext(StepsContext);
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__ */ jsxs31(
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__ */ jsxs31("div", { className: "flex w-full items-center", children: [
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__ */ jsxs31(
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__ */ jsxs31(
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__ */ jsxs31("div", { className: "flex flex-col items-center self-stretch", children: [
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__ */ jsxs31(
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__ */ jsxs31(
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__ */ jsxs31("span", { className: "sr-only", children: [
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:opacity-24 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",
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:opacity-24 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",
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:opacity-24 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",
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 React18 from "react";
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 = React18.createContext({
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 = React18.useContext(ToggleGroupContext);
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 jsxs32 } from "react/jsx-runtime";
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__ */ jsxs32(Card, { className: "w-80 shrink-0 overflow-hidden rounded-md shadow-sm px-5 py-5 items-center gap-3", children: [
7392
- /* @__PURE__ */ jsxs32("div", { className: "relative flex items-center justify-center py-2", children: [
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__ */ jsxs32("p", { className: `flex items-baseline gap-1.5 ${amountColorClass}`, children: [
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__ */ jsxs32("div", { className: "flex items-center gap-2", children: [
7417
- /* @__PURE__ */ jsxs32(Badge, { variant: "tint-neutral", size: "sm", children: [
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__ */ jsxs32(Fragment3, { children: [
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__ */ jsxs32("div", { className: "w-full pt-2", children: [
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__ */ jsxs32("div", { className: "w-full flex flex-col gap-3", children: [
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__ */ jsxs32(Card, { className: "w-80 shrink-0 overflow-hidden rounded-md shadow-sm px-5 py-6 items-center gap-4", children: [
7444
- /* @__PURE__ */ jsxs32("div", { className: "flex flex-col items-center gap-2 text-center", children: [
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__ */ jsxs32("div", { className: "w-full flex flex-col gap-2", children: [
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 jsxs33 } from "react/jsx-runtime";
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__ */ jsxs33("header", { className: "flex items-center gap-2 border-b border-border-subtle bg-prominent px-layout-margin-inline py-3", children: [
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__ */ jsxs33("div", { className: "flex min-w-0 flex-1 items-center justify-center gap-2", children: [
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__ */ jsxs33("div", { className: "flex shrink-0 items-center gap-1", children: [
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__ */ jsxs33("div", { className: "relative inline-flex", children: [
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 jsxs34 } from "react/jsx-runtime";
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__ */ jsxs34("div", { className: "flex flex-col @[600px]:flex-row gap-8 @[600px]:gap-12", children: [
7516
- /* @__PURE__ */ jsxs34("div", { className: "flex flex-col gap-4 flex-1 @[600px]:max-w-xs", children: [
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__ */ jsxs34(AccordionItem, { value, children: [
7529
- /* @__PURE__ */ jsx62(AccordionPrimitive2.Header, { className: "flex", children: /* @__PURE__ */ jsxs34(
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__ */ jsxs34("span", { className: "flex items-baseline gap-4", children: [
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__ */ jsxs34("div", { className: `w-full flex flex-col ${gapClass}`, children: [
7562
- /* @__PURE__ */ jsxs34("div", { className: `flex flex-col ${headerGapClass} items-center w-full`, children: [
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__ */ jsxs34(AccordionItem, { value, children: [
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__ */ jsxs34("div", { className: `flex flex-col gap-6 items-center w-full bg-subtle rounded-xl ${helpCardPaddingClass}`, children: [
7581
- /* @__PURE__ */ jsxs34("div", { className: "flex flex-col gap-2 w-full", children: [
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 jsxs35 } from "react/jsx-runtime";
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__ */ jsxs35("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: [
7604
- /* @__PURE__ */ jsxs35("div", { className: "flex flex-col items-center gap-6 w-full", children: [
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__ */ jsxs35(Button, { size: "sm", onClick: primaryCta.onClick, children: [
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__ */ jsxs35("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: [
7616
- /* @__PURE__ */ jsxs35("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: [
7617
- /* @__PURE__ */ jsxs35("div", { className: "flex flex-col gap-5 min-[600px]:gap-6 items-center min-[600px]:items-start w-full", children: [
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__ */ jsxs35("div", { className: "flex items-center justify-center min-[600px]:justify-start gap-2", children: [
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__ */ jsxs35("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: [
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__ */ jsxs35("span", { className: "text-sm font-body text-on-prominent whitespace-nowrap", children: [
7638
- /* @__PURE__ */ jsxs35("span", { className: "hidden min-[600px]:inline", children: [
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__ */ jsxs35("span", { className: "text-sm font-body text-on-prominent whitespace-nowrap", children: [
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 React19 from "react";
7653
- import { jsx as jsx64, jsxs as jsxs36 } from "react/jsx-runtime";
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] = React19.useState("");
7669
- return /* @__PURE__ */ jsxs36("div", { className: "flex flex-col items-center gap-6 w-full", children: [
7670
- /* @__PURE__ */ jsxs36("div", { className: "flex items-center gap-2", children: [
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__ */ jsxs36("div", { className: "flex items-center gap-3 w-full", children: [
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__ */ jsxs36("p", { className: "text-sm text-on-subtle font-body text-left w-full", children: [
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__ */ jsxs36("p", { className: "text-sm text-on-subtle font-body text-center", children: [
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__ */ jsxs36(Button, { variant: "secondary", size: "lg", className: "w-full", children: [
7710
- /* @__PURE__ */ jsxs36("svg", { width: "18", height: "18", viewBox: "0 0 18 18", "aria-hidden": "true", fill: "none", className: "shrink-0", children: [
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__ */ jsxs36(Button, { variant: "secondary", size: "lg", className: "w-full", children: [
7720
- /* @__PURE__ */ jsxs36("svg", { width: "18", height: "18", viewBox: "0 0 18 18", "aria-hidden": "true", fill: "none", className: "shrink-0", children: [
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__ */ jsxs36(Button, { variant: "secondary", size: "lg", className: "w-full", children: [
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 React20 from "react";
8069
+ import * as React22 from "react";
7737
8070
  import { Menu, X as X3 } from "lucide-react";
7738
- import { jsx as jsx65, jsxs as jsxs37 } from "react/jsx-runtime";
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] = React20.useState(false);
7742
- return /* @__PURE__ */ jsx65("div", { className: "w-full border border-border-subtle rounded-md overflow-hidden", children: /* @__PURE__ */ jsxs37("nav", { className: "bg-prominent", children: [
7743
- /* @__PURE__ */ jsxs37("div", { className: "flex items-center justify-between px-layout-margin-inline py-3", children: [
7744
- /* @__PURE__ */ jsxs37("div", { className: "flex items-center gap-6", children: [
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__ */ jsxs37("div", { className: "hidden min-[600px]:flex items-center gap-2", children: [
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__ */ jsxs37("div", { className: "min-[600px]:hidden flex flex-col border-t border-border-subtle px-layout-margin-inline py-3 gap-1", children: [
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__ */ jsxs37("div", { className: "flex flex-col gap-2 pt-3 mt-2 border-t border-border-subtle", children: [
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 jsxs38 } from "react/jsx-runtime";
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__ */ jsxs38(Drawer, { children: [
8146
+ return /* @__PURE__ */ jsxs39(Drawer, { children: [
7814
8147
  /* @__PURE__ */ jsx66(DrawerTrigger, { asChild: true, children: trigger }),
7815
- /* @__PURE__ */ jsxs38(DrawerContent, { className: "p-0 flex flex-col", children: [
7816
- /* @__PURE__ */ jsxs38(DrawerHeader, { className: "flex-row items-center justify-between px-4 py-3 shrink-0 text-left", children: [
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__ */ jsxs38(Sheet, { children: [
8158
+ return /* @__PURE__ */ jsxs39(Sheet, { children: [
7826
8159
  /* @__PURE__ */ jsx66(SheetTrigger, { asChild: true, children: trigger }),
7827
- /* @__PURE__ */ jsxs38(SheetContent, { side: "right", showCloseButton: false, className: "p-0 flex flex-col w-80 sm:max-w-xs", children: [
7828
- /* @__PURE__ */ jsxs38(SheetHeader, { className: "flex-row items-center justify-between px-4 py-3 shrink-0", children: [
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__ */ jsxs38("div", { className: "flex flex-col flex-1 min-h-0", children: [
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__ */ jsxs38(Item, { size: "sm", children: [
7850
- /* @__PURE__ */ jsxs38(ItemContent, { children: [
7851
- /* @__PURE__ */ jsxs38(ItemTitle, { children: [
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__ */ jsxs38("span", { className: "text-xs text-on-subtle whitespace-nowrap", children: [
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__ */ jsxs38("div", { className: "flex flex-col items-end gap-0.5", children: [
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__ */ jsxs38(EmptyHeader, { className: "gap-4", children: [
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 React21 from "react";
7905
- import { jsx as jsx67, jsxs as jsxs39 } from "react/jsx-runtime";
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] = React21.useState(0);
7916
- const [delayed, setDelayed] = React21.useState(false);
7917
- const checkpointsRef = React21.useRef(checkpoints);
7918
- const reachedRef = React21.useRef(reached);
7919
- const doneRef = React21.useRef(done);
7920
- React21.useEffect(() => {
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 = React21.useRef(0);
7926
- const lastAdvanceRef = React21.useRef(0);
7927
- React21.useEffect(() => {
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] = React21.useState(false);
7982
- const [reduced, setReduced] = React21.useState(false);
7983
- React21.useEffect(() => {
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
- React21.useEffect(() => {
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__ */ jsxs39(
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__ */ jsxs39("div", { className: "flex w-[200px] flex-col items-start gap-3.5", children: [
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,