@trading-game/design-intelligence-layer 1.0.3 → 1.0.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +17 -12
- package/README.md +5 -2
- package/dist/index.cjs +801 -460
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +72 -12
- package/dist/index.d.ts +72 -12
- package/dist/index.js +884 -547
- package/dist/index.js.map +1 -1
- package/docs/components/accordion.md +1 -1
- package/docs/components/badge.md +2 -0
- package/docs/components/button.md +6 -1
- package/docs/components/carousel.md +13 -1
- package/docs/components/command.md +1 -1
- package/docs/components/context-menu.md +1 -1
- package/docs/components/dropdown-menu.md +1 -1
- package/docs/components/native-select.md +1 -1
- package/docs/components/navigation-button.md +2 -2
- package/docs/components/pagination.md +40 -1
- package/docs/components/slide-to-confirm.md +1 -1
- package/docs/components/slider.md +1 -1
- package/docs/components/switch.md +1 -1
- package/docs/components/textarea.md +1 -1
- package/docs/components/toast.md +90 -0
- package/docs/components/toggle.md +1 -1
- package/docs/foundations/colors.md +15 -7
- package/docs/foundations/shape-layout.md +1 -1
- package/docs/foundations/typography.md +2 -2
- package/docs/patterns/menus.md +1 -1
- package/guides/rules/design-system-consuming-project.mdc +45 -3
- package/package.json +1 -1
- package/src/styles.css +148 -7
package/dist/index.cjs
CHANGED
|
@@ -109,6 +109,7 @@ __export(index_exports, {
|
|
|
109
109
|
CardTitle: () => CardTitle,
|
|
110
110
|
Carousel: () => Carousel,
|
|
111
111
|
CarouselContent: () => CarouselContent,
|
|
112
|
+
CarouselDots: () => CarouselDots,
|
|
112
113
|
CarouselItem: () => CarouselItem,
|
|
113
114
|
CarouselNext: () => CarouselNext,
|
|
114
115
|
CarouselPrevious: () => CarouselPrevious,
|
|
@@ -251,7 +252,9 @@ __export(index_exports, {
|
|
|
251
252
|
Numpad: () => Numpad,
|
|
252
253
|
OpenPositionsBlock: () => OpenPositionsBlock,
|
|
253
254
|
Pagination: () => Pagination,
|
|
255
|
+
PaginationBar: () => PaginationBar,
|
|
254
256
|
PaginationContent: () => PaginationContent,
|
|
257
|
+
PaginationDots: () => PaginationDots,
|
|
255
258
|
PaginationEllipsis: () => PaginationEllipsis,
|
|
256
259
|
PaginationItem: () => PaginationItem,
|
|
257
260
|
PaginationLink: () => PaginationLink,
|
|
@@ -273,6 +276,7 @@ __export(index_exports, {
|
|
|
273
276
|
ResizablePanelGroup: () => ResizablePanelGroup,
|
|
274
277
|
ResultBlock: () => ResultBlock,
|
|
275
278
|
ResultDialog: () => ResultDialog,
|
|
279
|
+
ResultSnackbar: () => ResultSnackbar,
|
|
276
280
|
ScrollArea: () => ScrollArea,
|
|
277
281
|
ScrollBar: () => ScrollBar,
|
|
278
282
|
SectionMessage: () => SectionMessage,
|
|
@@ -411,7 +415,7 @@ function AccordionTrigger(_a) {
|
|
|
411
415
|
__spreadProps(__spreadValues({
|
|
412
416
|
"data-slot": "accordion-trigger",
|
|
413
417
|
className: cn(
|
|
414
|
-
"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:
|
|
418
|
+
"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",
|
|
415
419
|
className
|
|
416
420
|
)
|
|
417
421
|
}, props), {
|
|
@@ -487,44 +491,53 @@ function Spinner(_a) {
|
|
|
487
491
|
// components/ui/button.tsx
|
|
488
492
|
var import_jsx_runtime3 = require("react/jsx-runtime");
|
|
489
493
|
var buttonVariants = (0, import_class_variance_authority.cva)(
|
|
490
|
-
"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
|
|
494
|
+
"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",
|
|
491
495
|
{
|
|
492
496
|
variants: {
|
|
493
497
|
variant: {
|
|
494
498
|
// Primary brand blue (#2323FF)
|
|
495
|
-
primary: "bg-background-brand-default text-text-on-brand-static hover:bg-background-brand-hover active:bg-background-brand-pressed active:opacity-100",
|
|
499
|
+
primary: "bg-background-brand-default text-text-on-brand-static hover:bg-background-brand-hover active:bg-background-brand-pressed active:opacity-100 disabled:[background-image:linear-gradient(var(--background-disabled-default),var(--background-disabled-default))] disabled:text-text-disabled-default",
|
|
496
500
|
// Primary Inverse — white bg + blue text; for use on dark/coloured surfaces
|
|
497
501
|
// On-brand family — for buttons standing on a brand-coloured surface
|
|
498
502
|
// (NOT theme inverses): white pill with primary ink, white outline,
|
|
499
503
|
// white text. All static, because the brand panel is the same in
|
|
500
504
|
// both themes.
|
|
501
|
-
"primary-on-brand": "bg-background-static-white text-text-brand-default hover:bg-background-static-white-wash",
|
|
505
|
+
"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",
|
|
502
506
|
// Secondary — the design file's white-surface pill: card surface,
|
|
503
|
-
//
|
|
504
|
-
//
|
|
505
|
-
|
|
507
|
+
// prominent ink, hover swaps to the secondary surface (one lift up),
|
|
508
|
+
// press dims via the shared active state.
|
|
509
|
+
//
|
|
510
|
+
// The edge is 1.5px on `border-control-default`, not the shared 1px
|
|
511
|
+
// hairline. The white fill separates from the canvas by only 1.06:1,
|
|
512
|
+
// so the border — not the fill — is what contains the 16px semibold
|
|
513
|
+
// label; at 1px on the shared hairline it read as detached from both.
|
|
514
|
+
// `secondary-on-brand` matches the width and the *subtlety*
|
|
515
|
+
// (white-alpha-32 = 1.84:1 on brand, against 1.71:1 here) so both
|
|
516
|
+
// read as the same quiet edge. Its contrast is higher only because it
|
|
517
|
+
// has no fill behind it — there, the border IS the button.
|
|
518
|
+
secondary: "bg-background-primary-surface border-[1.5px] border-border-control-default text-text-prominent-default hover:bg-background-secondary-surface disabled:[background-image:linear-gradient(var(--background-disabled-default),var(--background-disabled-default))] disabled:border-border-disabled-default disabled:text-text-disabled-default",
|
|
506
519
|
// Secondary Inverse — white border + white text; for use on dark/coloured surfaces
|
|
507
|
-
"secondary-on-brand": "bg-transparent border border-
|
|
508
|
-
tertiary: "bg-transparent text-text-prominent-default hover:bg-background-hover-default",
|
|
520
|
+
"secondary-on-brand": "bg-transparent border-[1.5px] border-(--primitive-white-alpha-32) text-text-on-brand-static hover:bg-(--primitive-white-alpha-8) disabled:border-(--primitive-white-alpha-16) disabled:text-text-on-brand-disabled-default",
|
|
521
|
+
tertiary: "bg-transparent text-text-prominent-default hover:bg-background-hover-default disabled:text-text-disabled-default",
|
|
509
522
|
// Tertiary Inverse — transparent + white text/icon; for use on dark/coloured surfaces
|
|
510
|
-
"tertiary-on-brand": "bg-transparent text-text-on-brand-static hover:bg-(--primitive-white-alpha-8)",
|
|
523
|
+
"tertiary-on-brand": "bg-transparent text-text-on-brand-static hover:bg-(--primitive-white-alpha-8) disabled:text-text-on-brand-disabled-default",
|
|
511
524
|
// Frosted — the tinted-glass family, one look per surface:
|
|
512
525
|
// `frosted` sits on page surfaces (brand-selected tint + brand ink,
|
|
513
526
|
// hover/pressed via the state-layer glazes stacked over the solid
|
|
514
527
|
// fill); `frosted-on-brand` is the white frost for coloured/art
|
|
515
528
|
// surfaces (hover thickens the frost, press thins it).
|
|
516
|
-
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))]",
|
|
517
|
-
"frosted-on-brand": "bg-(--primitive-white-alpha-24) backdrop-blur-md
|
|
529
|
+
frosted: "bg-background-brand-selected text-text-brand-selected active:opacity-100 hover:[background-image:linear-gradient(var(--background-hover-default),var(--background-hover-default))] active:[background-image:linear-gradient(var(--background-pressed-default),var(--background-pressed-default))] disabled:[background-image:linear-gradient(var(--background-disabled-default),var(--background-disabled-default))] disabled:text-text-disabled-default",
|
|
530
|
+
"frosted-on-brand": "bg-(--primitive-white-alpha-24) backdrop-blur-md text-text-on-brand-static hover:bg-(--primitive-white-alpha-32) active:bg-(--primitive-white-alpha-16) active:opacity-100 disabled:bg-(--primitive-white-alpha-8) disabled:text-text-on-brand-disabled-default",
|
|
518
531
|
/* @deprecated aliases — shimmer became the `shimmer` boolean prop;
|
|
519
532
|
the inverse names became the on-brand family; `glass` became
|
|
520
533
|
`frosted-on-brand`. Deleted at v1.0. */
|
|
521
|
-
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",
|
|
534
|
+
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",
|
|
522
535
|
"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",
|
|
523
536
|
"primary-on-brand-shimmer": "relative overflow-hidden bg-background-static-white text-text-brand-default hover:bg-background-static-white-wash",
|
|
524
537
|
"primary-inverse": "bg-background-static-white text-text-brand-container-static hover:bg-background-static-white-wash",
|
|
525
538
|
"primary-inverse-shimmer": "relative overflow-hidden bg-background-static-white text-text-brand-container-static hover:bg-background-static-white-wash",
|
|
526
539
|
"secondary-inverse": "bg-transparent border border-background-static-white text-text-on-brand-static hover:bg-(--primitive-white-alpha-8)",
|
|
527
|
-
"tertiary-inverse": "bg-transparent text-text-on-brand-static hover:bg-(--primitive-white-alpha-8)"
|
|
540
|
+
"tertiary-inverse": "bg-transparent text-text-on-brand-static hover:bg-(--primitive-white-alpha-8) disabled:text-text-on-brand-disabled-default"
|
|
528
541
|
},
|
|
529
542
|
size: {
|
|
530
543
|
// One primitive type step per size (16/14/12) and padding-x = half
|
|
@@ -631,16 +644,16 @@ var import_radix_ui3 = require("radix-ui");
|
|
|
631
644
|
var import_jsx_runtime4 = require("react/jsx-runtime");
|
|
632
645
|
var navigationButtonVariants = (0, import_class_variance_authority2.cva)(
|
|
633
646
|
// Icon-only nav control — circular like every icon button in the system.
|
|
634
|
-
"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:
|
|
647
|
+
"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",
|
|
635
648
|
{
|
|
636
649
|
variants: {
|
|
637
650
|
variant: {
|
|
638
651
|
default: "bg-background-hover-default text-icon-prominent-default hover:bg-background-pressed-default",
|
|
639
652
|
// Frosted circle for art/hero/brand surfaces — same recipe as
|
|
640
653
|
// Button's frosted-on-brand: hover thickens the frost, press thins it.
|
|
641
|
-
"frosted-on-brand": "bg-(--primitive-white-alpha-24) backdrop-blur-md
|
|
654
|
+
"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",
|
|
642
655
|
/* @deprecated — renamed to frosted-on-brand. Deleted at v1.0. */
|
|
643
|
-
glass: "bg-(--primitive-white-alpha-24) backdrop-blur-md
|
|
656
|
+
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"
|
|
644
657
|
},
|
|
645
658
|
size: {
|
|
646
659
|
lg: "size-12 [&_svg:not([class*='size-'])]:size-6",
|
|
@@ -1771,7 +1784,7 @@ function SelectTrigger(_a) {
|
|
|
1771
1784
|
"data-readonly": readOnly ? "" : void 0,
|
|
1772
1785
|
className: cn(
|
|
1773
1786
|
selectTriggerType[size],
|
|
1774
|
-
"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:
|
|
1787
|
+
"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",
|
|
1775
1788
|
className
|
|
1776
1789
|
)
|
|
1777
1790
|
}, props), {
|
|
@@ -1870,7 +1883,7 @@ function SelectItem(_a) {
|
|
|
1870
1883
|
__spreadProps(__spreadValues({
|
|
1871
1884
|
"data-slot": "select-item",
|
|
1872
1885
|
className: cn(
|
|
1873
|
-
"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]:
|
|
1886
|
+
"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",
|
|
1874
1887
|
className
|
|
1875
1888
|
)
|
|
1876
1889
|
}, props), {
|
|
@@ -1991,12 +2004,12 @@ function Calendar(_a) {
|
|
|
1991
2004
|
),
|
|
1992
2005
|
button_previous: cn(
|
|
1993
2006
|
buttonVariants({ variant: buttonVariant }),
|
|
1994
|
-
"pointer-events-auto size-(--cell-size) p-0 select-none aria-disabled:
|
|
2007
|
+
"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",
|
|
1995
2008
|
defaultClassNames.button_previous
|
|
1996
2009
|
),
|
|
1997
2010
|
button_next: cn(
|
|
1998
2011
|
buttonVariants({ variant: buttonVariant }),
|
|
1999
|
-
"pointer-events-auto size-(--cell-size) p-0 select-none aria-disabled:
|
|
2012
|
+
"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",
|
|
2000
2013
|
defaultClassNames.button_next
|
|
2001
2014
|
),
|
|
2002
2015
|
month_caption: cn(
|
|
@@ -2275,13 +2288,226 @@ function CardFooter(_a) {
|
|
|
2275
2288
|
}
|
|
2276
2289
|
|
|
2277
2290
|
// components/ui/carousel.tsx
|
|
2278
|
-
var
|
|
2291
|
+
var React6 = __toESM(require("react"), 1);
|
|
2279
2292
|
var import_embla_carousel_react = __toESM(require("embla-carousel-react"), 1);
|
|
2293
|
+
var import_lucide_react9 = require("lucide-react");
|
|
2294
|
+
|
|
2295
|
+
// components/ui/pagination.tsx
|
|
2296
|
+
var React5 = __toESM(require("react"), 1);
|
|
2280
2297
|
var import_lucide_react8 = require("lucide-react");
|
|
2281
2298
|
var import_jsx_runtime16 = require("react/jsx-runtime");
|
|
2282
|
-
|
|
2299
|
+
function Pagination(_a) {
|
|
2300
|
+
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
2301
|
+
return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
|
|
2302
|
+
"nav",
|
|
2303
|
+
__spreadValues({
|
|
2304
|
+
role: "navigation",
|
|
2305
|
+
"aria-label": "pagination",
|
|
2306
|
+
"data-slot": "pagination",
|
|
2307
|
+
className: cn("mx-auto flex w-full justify-center", className)
|
|
2308
|
+
}, props)
|
|
2309
|
+
);
|
|
2310
|
+
}
|
|
2311
|
+
function PaginationContent(_a) {
|
|
2312
|
+
var _b = _a, {
|
|
2313
|
+
className
|
|
2314
|
+
} = _b, props = __objRest(_b, [
|
|
2315
|
+
"className"
|
|
2316
|
+
]);
|
|
2317
|
+
return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
|
|
2318
|
+
"ul",
|
|
2319
|
+
__spreadValues({
|
|
2320
|
+
"data-slot": "pagination-content",
|
|
2321
|
+
className: cn("flex flex-row items-center gap-1", className)
|
|
2322
|
+
}, props)
|
|
2323
|
+
);
|
|
2324
|
+
}
|
|
2325
|
+
function PaginationItem(_a) {
|
|
2326
|
+
var props = __objRest(_a, []);
|
|
2327
|
+
return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("li", __spreadValues({ "data-slot": "pagination-item" }, props));
|
|
2328
|
+
}
|
|
2329
|
+
function PaginationLink(_a) {
|
|
2330
|
+
var _b = _a, {
|
|
2331
|
+
className,
|
|
2332
|
+
isActive
|
|
2333
|
+
} = _b, props = __objRest(_b, [
|
|
2334
|
+
"className",
|
|
2335
|
+
"isActive"
|
|
2336
|
+
]);
|
|
2337
|
+
return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
|
|
2338
|
+
"a",
|
|
2339
|
+
__spreadValues({
|
|
2340
|
+
"aria-current": isActive ? "page" : void 0,
|
|
2341
|
+
"data-slot": "pagination-link",
|
|
2342
|
+
"data-active": isActive,
|
|
2343
|
+
className: cn(
|
|
2344
|
+
"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",
|
|
2345
|
+
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",
|
|
2346
|
+
className
|
|
2347
|
+
)
|
|
2348
|
+
}, props)
|
|
2349
|
+
);
|
|
2350
|
+
}
|
|
2351
|
+
function PaginationPrevious(_a) {
|
|
2352
|
+
var _b = _a, {
|
|
2353
|
+
className
|
|
2354
|
+
} = _b, props = __objRest(_b, [
|
|
2355
|
+
"className"
|
|
2356
|
+
]);
|
|
2357
|
+
return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(Button, { asChild: true, variant: "tertiary", size: "icon-md", className: cn(className), children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("a", __spreadProps(__spreadValues({ "aria-label": "Go to previous page", "data-slot": "pagination-link" }, props), { children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(import_lucide_react8.ChevronLeftIcon, { className: "size-5" }) })) });
|
|
2358
|
+
}
|
|
2359
|
+
function PaginationNext(_a) {
|
|
2360
|
+
var _b = _a, {
|
|
2361
|
+
className
|
|
2362
|
+
} = _b, props = __objRest(_b, [
|
|
2363
|
+
"className"
|
|
2364
|
+
]);
|
|
2365
|
+
return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(Button, { asChild: true, variant: "tertiary", size: "icon-md", className: cn(className), children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("a", __spreadProps(__spreadValues({ "aria-label": "Go to next page", "data-slot": "pagination-link" }, props), { children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(import_lucide_react8.ChevronRightIcon, { className: "size-5" }) })) });
|
|
2366
|
+
}
|
|
2367
|
+
function PaginationEllipsis(_a) {
|
|
2368
|
+
var _b = _a, {
|
|
2369
|
+
className
|
|
2370
|
+
} = _b, props = __objRest(_b, [
|
|
2371
|
+
"className"
|
|
2372
|
+
]);
|
|
2373
|
+
return /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(
|
|
2374
|
+
"span",
|
|
2375
|
+
__spreadProps(__spreadValues({
|
|
2376
|
+
"aria-hidden": true,
|
|
2377
|
+
"data-slot": "pagination-ellipsis",
|
|
2378
|
+
className: cn("flex size-10 items-center justify-center", className)
|
|
2379
|
+
}, props), {
|
|
2380
|
+
children: [
|
|
2381
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)(import_lucide_react8.MoreHorizontalIcon, { className: "size-4" }),
|
|
2382
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)("span", { className: "sr-only", children: "More pages" })
|
|
2383
|
+
]
|
|
2384
|
+
})
|
|
2385
|
+
);
|
|
2386
|
+
}
|
|
2387
|
+
var INDICATOR_WIDTHS = {
|
|
2388
|
+
sm: "w-4",
|
|
2389
|
+
md: "w-6",
|
|
2390
|
+
lg: "w-8"
|
|
2391
|
+
};
|
|
2392
|
+
var ACTIVE_DOT_WIDTHS = {
|
|
2393
|
+
sm: "w-4",
|
|
2394
|
+
md: "w-5",
|
|
2395
|
+
lg: "w-6"
|
|
2396
|
+
};
|
|
2397
|
+
var DOT_SIZES = {
|
|
2398
|
+
sm: "size-1.5",
|
|
2399
|
+
md: "size-2",
|
|
2400
|
+
lg: "size-2.5"
|
|
2401
|
+
};
|
|
2402
|
+
function useIndicatorPages(total) {
|
|
2403
|
+
return React5.useMemo(
|
|
2404
|
+
() => Array.from({ length: Math.max(0, total) }, (_, i) => i),
|
|
2405
|
+
[total]
|
|
2406
|
+
);
|
|
2407
|
+
}
|
|
2408
|
+
function PaginationDots(_a) {
|
|
2409
|
+
var _b = _a, {
|
|
2410
|
+
className,
|
|
2411
|
+
page,
|
|
2412
|
+
total,
|
|
2413
|
+
onPageChange,
|
|
2414
|
+
size = "md",
|
|
2415
|
+
label = "Pagination"
|
|
2416
|
+
} = _b, props = __objRest(_b, [
|
|
2417
|
+
"className",
|
|
2418
|
+
"page",
|
|
2419
|
+
"total",
|
|
2420
|
+
"onPageChange",
|
|
2421
|
+
"size",
|
|
2422
|
+
"label"
|
|
2423
|
+
]);
|
|
2424
|
+
const pages = useIndicatorPages(total);
|
|
2425
|
+
return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
|
|
2426
|
+
"nav",
|
|
2427
|
+
__spreadProps(__spreadValues({
|
|
2428
|
+
role: "navigation",
|
|
2429
|
+
"aria-label": label,
|
|
2430
|
+
"data-slot": "pagination-dots",
|
|
2431
|
+
className: cn("flex items-center justify-center gap-1", className)
|
|
2432
|
+
}, props), {
|
|
2433
|
+
children: pages.map((i) => {
|
|
2434
|
+
const active = i === page;
|
|
2435
|
+
return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
|
|
2436
|
+
"button",
|
|
2437
|
+
{
|
|
2438
|
+
type: "button",
|
|
2439
|
+
"data-slot": "pagination-dot",
|
|
2440
|
+
"data-active": active || void 0,
|
|
2441
|
+
"aria-current": active ? "page" : void 0,
|
|
2442
|
+
"aria-label": `Go to page ${i + 1}`,
|
|
2443
|
+
onClick: () => onPageChange == null ? void 0 : onPageChange(i),
|
|
2444
|
+
className: cn(
|
|
2445
|
+
"rounded-full outline-none transition-[width,background-color] duration-base ease-standard",
|
|
2446
|
+
"focus-visible:ring-[3px] focus-visible:ring-ring-focus-strong",
|
|
2447
|
+
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")
|
|
2448
|
+
)
|
|
2449
|
+
},
|
|
2450
|
+
i
|
|
2451
|
+
);
|
|
2452
|
+
})
|
|
2453
|
+
})
|
|
2454
|
+
);
|
|
2455
|
+
}
|
|
2456
|
+
function PaginationBar(_a) {
|
|
2457
|
+
var _b = _a, {
|
|
2458
|
+
className,
|
|
2459
|
+
page,
|
|
2460
|
+
total,
|
|
2461
|
+
onPageChange,
|
|
2462
|
+
size = "md",
|
|
2463
|
+
label = "Pagination"
|
|
2464
|
+
} = _b, props = __objRest(_b, [
|
|
2465
|
+
"className",
|
|
2466
|
+
"page",
|
|
2467
|
+
"total",
|
|
2468
|
+
"onPageChange",
|
|
2469
|
+
"size",
|
|
2470
|
+
"label"
|
|
2471
|
+
]);
|
|
2472
|
+
const pages = useIndicatorPages(total);
|
|
2473
|
+
return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
|
|
2474
|
+
"nav",
|
|
2475
|
+
__spreadProps(__spreadValues({
|
|
2476
|
+
role: "navigation",
|
|
2477
|
+
"aria-label": label,
|
|
2478
|
+
"data-slot": "pagination-bar",
|
|
2479
|
+
className: cn("flex items-center justify-center gap-1", className)
|
|
2480
|
+
}, props), {
|
|
2481
|
+
children: pages.map((i) => {
|
|
2482
|
+
const active = i === page;
|
|
2483
|
+
return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
|
|
2484
|
+
"button",
|
|
2485
|
+
{
|
|
2486
|
+
type: "button",
|
|
2487
|
+
"data-slot": "pagination-segment",
|
|
2488
|
+
"data-active": active || void 0,
|
|
2489
|
+
"aria-current": active ? "page" : void 0,
|
|
2490
|
+
"aria-label": `Go to page ${i + 1}`,
|
|
2491
|
+
onClick: () => onPageChange == null ? void 0 : onPageChange(i),
|
|
2492
|
+
className: cn(
|
|
2493
|
+
"h-1 rounded-full outline-none transition-colors duration-base ease-standard",
|
|
2494
|
+
INDICATOR_WIDTHS[size],
|
|
2495
|
+
"focus-visible:ring-[3px] focus-visible:ring-ring-focus-strong",
|
|
2496
|
+
active ? "bg-background-brand-default" : "bg-background-secondary-surface hover:bg-background-brand-selected"
|
|
2497
|
+
)
|
|
2498
|
+
},
|
|
2499
|
+
i
|
|
2500
|
+
);
|
|
2501
|
+
})
|
|
2502
|
+
})
|
|
2503
|
+
);
|
|
2504
|
+
}
|
|
2505
|
+
|
|
2506
|
+
// components/ui/carousel.tsx
|
|
2507
|
+
var import_jsx_runtime17 = require("react/jsx-runtime");
|
|
2508
|
+
var CarouselContext = React6.createContext(null);
|
|
2283
2509
|
function useCarousel() {
|
|
2284
|
-
const context =
|
|
2510
|
+
const context = React6.useContext(CarouselContext);
|
|
2285
2511
|
if (!context) {
|
|
2286
2512
|
throw new Error("useCarousel must be used within a <Carousel />");
|
|
2287
2513
|
}
|
|
@@ -2309,20 +2535,27 @@ function Carousel(_a) {
|
|
|
2309
2535
|
}),
|
|
2310
2536
|
plugins
|
|
2311
2537
|
);
|
|
2312
|
-
const [canScrollPrev, setCanScrollPrev] =
|
|
2313
|
-
const [canScrollNext, setCanScrollNext] =
|
|
2314
|
-
const
|
|
2538
|
+
const [canScrollPrev, setCanScrollPrev] = React6.useState(false);
|
|
2539
|
+
const [canScrollNext, setCanScrollNext] = React6.useState(false);
|
|
2540
|
+
const [selectedIndex, setSelectedIndex] = React6.useState(0);
|
|
2541
|
+
const [slideCount, setSlideCount] = React6.useState(0);
|
|
2542
|
+
const onSelect = React6.useCallback((api2) => {
|
|
2315
2543
|
if (!api2) return;
|
|
2316
2544
|
setCanScrollPrev(api2.canScrollPrev());
|
|
2317
2545
|
setCanScrollNext(api2.canScrollNext());
|
|
2546
|
+
setSelectedIndex(api2.selectedScrollSnap());
|
|
2547
|
+
setSlideCount(api2.scrollSnapList().length);
|
|
2318
2548
|
}, []);
|
|
2319
|
-
const scrollPrev =
|
|
2549
|
+
const scrollPrev = React6.useCallback(() => {
|
|
2320
2550
|
api == null ? void 0 : api.scrollPrev();
|
|
2321
2551
|
}, [api]);
|
|
2322
|
-
const scrollNext =
|
|
2552
|
+
const scrollNext = React6.useCallback(() => {
|
|
2323
2553
|
api == null ? void 0 : api.scrollNext();
|
|
2324
2554
|
}, [api]);
|
|
2325
|
-
const
|
|
2555
|
+
const scrollTo = React6.useCallback((index) => {
|
|
2556
|
+
api == null ? void 0 : api.scrollTo(index);
|
|
2557
|
+
}, [api]);
|
|
2558
|
+
const handleKeyDown = React6.useCallback(
|
|
2326
2559
|
(event) => {
|
|
2327
2560
|
if (event.key === "ArrowLeft") {
|
|
2328
2561
|
event.preventDefault();
|
|
@@ -2334,11 +2567,11 @@ function Carousel(_a) {
|
|
|
2334
2567
|
},
|
|
2335
2568
|
[scrollPrev, scrollNext]
|
|
2336
2569
|
);
|
|
2337
|
-
|
|
2570
|
+
React6.useEffect(() => {
|
|
2338
2571
|
if (!api || !setApi) return;
|
|
2339
2572
|
setApi(api);
|
|
2340
2573
|
}, [api, setApi]);
|
|
2341
|
-
|
|
2574
|
+
React6.useEffect(() => {
|
|
2342
2575
|
if (!api) return;
|
|
2343
2576
|
onSelect(api);
|
|
2344
2577
|
api.on("reInit", onSelect);
|
|
@@ -2347,7 +2580,7 @@ function Carousel(_a) {
|
|
|
2347
2580
|
api == null ? void 0 : api.off("select", onSelect);
|
|
2348
2581
|
};
|
|
2349
2582
|
}, [api, onSelect]);
|
|
2350
|
-
return /* @__PURE__ */ (0,
|
|
2583
|
+
return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
|
|
2351
2584
|
CarouselContext.Provider,
|
|
2352
2585
|
{
|
|
2353
2586
|
value: {
|
|
@@ -2358,9 +2591,12 @@ function Carousel(_a) {
|
|
|
2358
2591
|
scrollPrev,
|
|
2359
2592
|
scrollNext,
|
|
2360
2593
|
canScrollPrev,
|
|
2361
|
-
canScrollNext
|
|
2594
|
+
canScrollNext,
|
|
2595
|
+
selectedIndex,
|
|
2596
|
+
slideCount,
|
|
2597
|
+
scrollTo
|
|
2362
2598
|
},
|
|
2363
|
-
children: /* @__PURE__ */ (0,
|
|
2599
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
|
|
2364
2600
|
"div",
|
|
2365
2601
|
__spreadProps(__spreadValues({
|
|
2366
2602
|
onKeyDownCapture: handleKeyDown,
|
|
@@ -2378,13 +2614,13 @@ function Carousel(_a) {
|
|
|
2378
2614
|
function CarouselContent(_a) {
|
|
2379
2615
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
2380
2616
|
const { carouselRef, orientation } = useCarousel();
|
|
2381
|
-
return /* @__PURE__ */ (0,
|
|
2617
|
+
return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
|
|
2382
2618
|
"div",
|
|
2383
2619
|
{
|
|
2384
2620
|
ref: carouselRef,
|
|
2385
2621
|
className: "overflow-hidden",
|
|
2386
2622
|
"data-slot": "carousel-content",
|
|
2387
|
-
children: /* @__PURE__ */ (0,
|
|
2623
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
|
|
2388
2624
|
"div",
|
|
2389
2625
|
__spreadValues({
|
|
2390
2626
|
className: cn(
|
|
@@ -2400,7 +2636,7 @@ function CarouselContent(_a) {
|
|
|
2400
2636
|
function CarouselItem(_a) {
|
|
2401
2637
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
2402
2638
|
const { orientation } = useCarousel();
|
|
2403
|
-
return /* @__PURE__ */ (0,
|
|
2639
|
+
return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
|
|
2404
2640
|
"div",
|
|
2405
2641
|
__spreadValues({
|
|
2406
2642
|
role: "group",
|
|
@@ -2425,7 +2661,7 @@ function CarouselPrevious(_a) {
|
|
|
2425
2661
|
"size"
|
|
2426
2662
|
]);
|
|
2427
2663
|
const { orientation, scrollPrev, canScrollPrev } = useCarousel();
|
|
2428
|
-
return /* @__PURE__ */ (0,
|
|
2664
|
+
return /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(
|
|
2429
2665
|
Button,
|
|
2430
2666
|
__spreadProps(__spreadValues({
|
|
2431
2667
|
"data-slot": "carousel-previous",
|
|
@@ -2440,8 +2676,8 @@ function CarouselPrevious(_a) {
|
|
|
2440
2676
|
onClick: scrollPrev
|
|
2441
2677
|
}, props), {
|
|
2442
2678
|
children: [
|
|
2443
|
-
/* @__PURE__ */ (0,
|
|
2444
|
-
/* @__PURE__ */ (0,
|
|
2679
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)(import_lucide_react9.ArrowLeft, {}),
|
|
2680
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)("span", { className: "sr-only", children: "Previous slide" })
|
|
2445
2681
|
]
|
|
2446
2682
|
})
|
|
2447
2683
|
);
|
|
@@ -2457,7 +2693,7 @@ function CarouselNext(_a) {
|
|
|
2457
2693
|
"size"
|
|
2458
2694
|
]);
|
|
2459
2695
|
const { orientation, scrollNext, canScrollNext } = useCarousel();
|
|
2460
|
-
return /* @__PURE__ */ (0,
|
|
2696
|
+
return /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(
|
|
2461
2697
|
Button,
|
|
2462
2698
|
__spreadProps(__spreadValues({
|
|
2463
2699
|
"data-slot": "carousel-next",
|
|
@@ -2472,16 +2708,34 @@ function CarouselNext(_a) {
|
|
|
2472
2708
|
onClick: scrollNext
|
|
2473
2709
|
}, props), {
|
|
2474
2710
|
children: [
|
|
2475
|
-
/* @__PURE__ */ (0,
|
|
2476
|
-
/* @__PURE__ */ (0,
|
|
2711
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)(import_lucide_react9.ArrowRight, {}),
|
|
2712
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)("span", { className: "sr-only", children: "Next slide" })
|
|
2477
2713
|
]
|
|
2478
2714
|
})
|
|
2479
2715
|
);
|
|
2480
2716
|
}
|
|
2717
|
+
function CarouselDots(_a) {
|
|
2718
|
+
var _b = _a, {
|
|
2719
|
+
variant = "dots"
|
|
2720
|
+
} = _b, props = __objRest(_b, [
|
|
2721
|
+
"variant"
|
|
2722
|
+
]);
|
|
2723
|
+
const { selectedIndex, slideCount, scrollTo } = useCarousel();
|
|
2724
|
+
const Indicator = variant === "bar" ? PaginationBar : PaginationDots;
|
|
2725
|
+
return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
|
|
2726
|
+
Indicator,
|
|
2727
|
+
__spreadValues({
|
|
2728
|
+
page: selectedIndex,
|
|
2729
|
+
total: slideCount,
|
|
2730
|
+
onPageChange: scrollTo,
|
|
2731
|
+
label: "Carousel position"
|
|
2732
|
+
}, props)
|
|
2733
|
+
);
|
|
2734
|
+
}
|
|
2481
2735
|
|
|
2482
2736
|
// components/ui/chip.tsx
|
|
2483
2737
|
var import_class_variance_authority5 = require("class-variance-authority");
|
|
2484
|
-
var
|
|
2738
|
+
var import_jsx_runtime18 = require("react/jsx-runtime");
|
|
2485
2739
|
var chipVariants = (0, import_class_variance_authority5.cva)(
|
|
2486
2740
|
"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",
|
|
2487
2741
|
{
|
|
@@ -2498,7 +2752,7 @@ var chipVariants = (0, import_class_variance_authority5.cva)(
|
|
|
2498
2752
|
);
|
|
2499
2753
|
function Chip(_a) {
|
|
2500
2754
|
var _b = _a, { children, selected = false, variant = "default", size, className, disabled } = _b, props = __objRest(_b, ["children", "selected", "variant", "size", "className", "disabled"]);
|
|
2501
|
-
return /* @__PURE__ */ (0,
|
|
2755
|
+
return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
|
|
2502
2756
|
"button",
|
|
2503
2757
|
__spreadProps(__spreadValues({
|
|
2504
2758
|
type: "button",
|
|
@@ -2520,30 +2774,30 @@ function Chip(_a) {
|
|
|
2520
2774
|
}
|
|
2521
2775
|
|
|
2522
2776
|
// components/ui/checkbox.tsx
|
|
2523
|
-
var
|
|
2777
|
+
var import_lucide_react10 = require("lucide-react");
|
|
2524
2778
|
var import_radix_ui11 = require("radix-ui");
|
|
2525
|
-
var
|
|
2779
|
+
var import_jsx_runtime19 = require("react/jsx-runtime");
|
|
2526
2780
|
function Checkbox(_a) {
|
|
2527
2781
|
var _b = _a, {
|
|
2528
2782
|
className
|
|
2529
2783
|
} = _b, props = __objRest(_b, [
|
|
2530
2784
|
"className"
|
|
2531
2785
|
]);
|
|
2532
|
-
return /* @__PURE__ */ (0,
|
|
2786
|
+
return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
|
|
2533
2787
|
import_radix_ui11.Checkbox.Root,
|
|
2534
2788
|
__spreadProps(__spreadValues({
|
|
2535
2789
|
"data-slot": "checkbox",
|
|
2536
2790
|
className: cn(
|
|
2537
|
-
"peer size-4 shrink-0 rounded-2xs border border-border-default-default bg-background-primary-surface transition-colors outline-none focus-visible:border-ring-focus-default focus-visible:ring-[3px] focus-visible:ring-ring-focus-strong disabled:cursor-not-allowed disabled:
|
|
2791
|
+
"peer size-4 shrink-0 rounded-2xs border border-border-default-default bg-background-primary-surface transition-colors outline-none focus-visible:border-ring-focus-default focus-visible:ring-[3px] focus-visible:ring-ring-focus-strong disabled:cursor-not-allowed disabled: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",
|
|
2538
2792
|
className
|
|
2539
2793
|
)
|
|
2540
2794
|
}, props), {
|
|
2541
|
-
children: /* @__PURE__ */ (0,
|
|
2795
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
|
|
2542
2796
|
import_radix_ui11.Checkbox.Indicator,
|
|
2543
2797
|
{
|
|
2544
2798
|
"data-slot": "checkbox-indicator",
|
|
2545
2799
|
className: "grid place-content-center text-current transition-none",
|
|
2546
|
-
children: /* @__PURE__ */ (0,
|
|
2800
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_lucide_react10.CheckIcon, { className: "size-3.5" })
|
|
2547
2801
|
}
|
|
2548
2802
|
)
|
|
2549
2803
|
})
|
|
@@ -2552,27 +2806,27 @@ function Checkbox(_a) {
|
|
|
2552
2806
|
|
|
2553
2807
|
// components/ui/command.tsx
|
|
2554
2808
|
var import_cmdk = require("cmdk");
|
|
2555
|
-
var
|
|
2809
|
+
var import_lucide_react12 = require("lucide-react");
|
|
2556
2810
|
|
|
2557
2811
|
// components/ui/dialog.tsx
|
|
2558
|
-
var
|
|
2812
|
+
var import_lucide_react11 = require("lucide-react");
|
|
2559
2813
|
var import_radix_ui12 = require("radix-ui");
|
|
2560
|
-
var
|
|
2814
|
+
var import_jsx_runtime20 = require("react/jsx-runtime");
|
|
2561
2815
|
function Dialog(_a) {
|
|
2562
2816
|
var props = __objRest(_a, []);
|
|
2563
|
-
return /* @__PURE__ */ (0,
|
|
2817
|
+
return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_radix_ui12.Dialog.Root, __spreadValues({ "data-slot": "dialog" }, props));
|
|
2564
2818
|
}
|
|
2565
2819
|
function DialogTrigger(_a) {
|
|
2566
2820
|
var props = __objRest(_a, []);
|
|
2567
|
-
return /* @__PURE__ */ (0,
|
|
2821
|
+
return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_radix_ui12.Dialog.Trigger, __spreadValues({ "data-slot": "dialog-trigger" }, props));
|
|
2568
2822
|
}
|
|
2569
2823
|
function DialogPortal(_a) {
|
|
2570
2824
|
var props = __objRest(_a, []);
|
|
2571
|
-
return /* @__PURE__ */ (0,
|
|
2825
|
+
return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_radix_ui12.Dialog.Portal, __spreadValues({ "data-slot": "dialog-portal" }, props));
|
|
2572
2826
|
}
|
|
2573
2827
|
function DialogClose(_a) {
|
|
2574
2828
|
var props = __objRest(_a, []);
|
|
2575
|
-
return /* @__PURE__ */ (0,
|
|
2829
|
+
return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_radix_ui12.Dialog.Close, __spreadValues({ "data-slot": "dialog-close" }, props));
|
|
2576
2830
|
}
|
|
2577
2831
|
function DialogOverlay(_a) {
|
|
2578
2832
|
var _b = _a, {
|
|
@@ -2580,7 +2834,7 @@ function DialogOverlay(_a) {
|
|
|
2580
2834
|
} = _b, props = __objRest(_b, [
|
|
2581
2835
|
"className"
|
|
2582
2836
|
]);
|
|
2583
|
-
return /* @__PURE__ */ (0,
|
|
2837
|
+
return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
2584
2838
|
import_radix_ui12.Dialog.Overlay,
|
|
2585
2839
|
__spreadValues({
|
|
2586
2840
|
"data-slot": "dialog-overlay",
|
|
@@ -2601,9 +2855,9 @@ function DialogContent(_a) {
|
|
|
2601
2855
|
"children",
|
|
2602
2856
|
"showCloseButton"
|
|
2603
2857
|
]);
|
|
2604
|
-
return /* @__PURE__ */ (0,
|
|
2605
|
-
/* @__PURE__ */ (0,
|
|
2606
|
-
/* @__PURE__ */ (0,
|
|
2858
|
+
return /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(DialogPortal, { "data-slot": "dialog-portal", children: [
|
|
2859
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(DialogOverlay, {}),
|
|
2860
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(
|
|
2607
2861
|
import_radix_ui12.Dialog.Content,
|
|
2608
2862
|
__spreadProps(__spreadValues({
|
|
2609
2863
|
"data-slot": "dialog-content",
|
|
@@ -2614,14 +2868,14 @@ function DialogContent(_a) {
|
|
|
2614
2868
|
}, props), {
|
|
2615
2869
|
children: [
|
|
2616
2870
|
children,
|
|
2617
|
-
showCloseButton && /* @__PURE__ */ (0,
|
|
2871
|
+
showCloseButton && /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_radix_ui12.Dialog.Close, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
2618
2872
|
NavigationButton,
|
|
2619
2873
|
{
|
|
2620
2874
|
"data-slot": "dialog-close",
|
|
2621
2875
|
size: "sm",
|
|
2622
2876
|
"aria-label": "Close",
|
|
2623
2877
|
className: "absolute top-4 right-4",
|
|
2624
|
-
children: /* @__PURE__ */ (0,
|
|
2878
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_lucide_react11.XIcon, { className: "size-4" })
|
|
2625
2879
|
}
|
|
2626
2880
|
) })
|
|
2627
2881
|
]
|
|
@@ -2631,7 +2885,7 @@ function DialogContent(_a) {
|
|
|
2631
2885
|
}
|
|
2632
2886
|
function DialogHeader(_a) {
|
|
2633
2887
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
2634
|
-
return /* @__PURE__ */ (0,
|
|
2888
|
+
return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
2635
2889
|
"div",
|
|
2636
2890
|
__spreadValues({
|
|
2637
2891
|
"data-slot": "dialog-header",
|
|
@@ -2649,7 +2903,7 @@ function DialogFooter(_a) {
|
|
|
2649
2903
|
"showCloseButton",
|
|
2650
2904
|
"children"
|
|
2651
2905
|
]);
|
|
2652
|
-
return /* @__PURE__ */ (0,
|
|
2906
|
+
return /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(
|
|
2653
2907
|
"div",
|
|
2654
2908
|
__spreadProps(__spreadValues({
|
|
2655
2909
|
"data-slot": "dialog-footer",
|
|
@@ -2660,7 +2914,7 @@ function DialogFooter(_a) {
|
|
|
2660
2914
|
}, props), {
|
|
2661
2915
|
children: [
|
|
2662
2916
|
children,
|
|
2663
|
-
showCloseButton && /* @__PURE__ */ (0,
|
|
2917
|
+
showCloseButton && /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_radix_ui12.Dialog.Close, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(Button, { variant: "secondary", size: "md", children: "Close" }) })
|
|
2664
2918
|
]
|
|
2665
2919
|
})
|
|
2666
2920
|
);
|
|
@@ -2671,7 +2925,7 @@ function DialogTitle(_a) {
|
|
|
2671
2925
|
} = _b, props = __objRest(_b, [
|
|
2672
2926
|
"className"
|
|
2673
2927
|
]);
|
|
2674
|
-
return /* @__PURE__ */ (0,
|
|
2928
|
+
return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
2675
2929
|
import_radix_ui12.Dialog.Title,
|
|
2676
2930
|
__spreadValues({
|
|
2677
2931
|
"data-slot": "dialog-title",
|
|
@@ -2685,7 +2939,7 @@ function DialogDescription(_a) {
|
|
|
2685
2939
|
} = _b, props = __objRest(_b, [
|
|
2686
2940
|
"className"
|
|
2687
2941
|
]);
|
|
2688
|
-
return /* @__PURE__ */ (0,
|
|
2942
|
+
return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
2689
2943
|
import_radix_ui12.Dialog.Description,
|
|
2690
2944
|
__spreadValues({
|
|
2691
2945
|
"data-slot": "dialog-description",
|
|
@@ -2695,14 +2949,14 @@ function DialogDescription(_a) {
|
|
|
2695
2949
|
}
|
|
2696
2950
|
|
|
2697
2951
|
// components/ui/command.tsx
|
|
2698
|
-
var
|
|
2952
|
+
var import_jsx_runtime21 = require("react/jsx-runtime");
|
|
2699
2953
|
function Command(_a) {
|
|
2700
2954
|
var _b = _a, {
|
|
2701
2955
|
className
|
|
2702
2956
|
} = _b, props = __objRest(_b, [
|
|
2703
2957
|
"className"
|
|
2704
2958
|
]);
|
|
2705
|
-
return /* @__PURE__ */ (0,
|
|
2959
|
+
return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
2706
2960
|
import_cmdk.Command,
|
|
2707
2961
|
__spreadValues({
|
|
2708
2962
|
"data-slot": "command",
|
|
@@ -2727,17 +2981,17 @@ function CommandDialog(_a) {
|
|
|
2727
2981
|
"className",
|
|
2728
2982
|
"showCloseButton"
|
|
2729
2983
|
]);
|
|
2730
|
-
return /* @__PURE__ */ (0,
|
|
2731
|
-
/* @__PURE__ */ (0,
|
|
2732
|
-
/* @__PURE__ */ (0,
|
|
2733
|
-
/* @__PURE__ */ (0,
|
|
2984
|
+
return /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(Dialog, __spreadProps(__spreadValues({}, props), { children: [
|
|
2985
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(DialogHeader, { className: "sr-only", children: [
|
|
2986
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(DialogTitle, { children: title }),
|
|
2987
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(DialogDescription, { children: description })
|
|
2734
2988
|
] }),
|
|
2735
|
-
/* @__PURE__ */ (0,
|
|
2989
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
2736
2990
|
DialogContent,
|
|
2737
2991
|
{
|
|
2738
2992
|
className: cn("overflow-hidden p-0", className),
|
|
2739
2993
|
showCloseButton,
|
|
2740
|
-
children: /* @__PURE__ */ (0,
|
|
2994
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(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 })
|
|
2741
2995
|
}
|
|
2742
2996
|
)
|
|
2743
2997
|
] }));
|
|
@@ -2748,19 +3002,19 @@ function CommandInput(_a) {
|
|
|
2748
3002
|
} = _b, props = __objRest(_b, [
|
|
2749
3003
|
"className"
|
|
2750
3004
|
]);
|
|
2751
|
-
return /* @__PURE__ */ (0,
|
|
3005
|
+
return /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(
|
|
2752
3006
|
"div",
|
|
2753
3007
|
{
|
|
2754
3008
|
"data-slot": "command-input-wrapper",
|
|
2755
3009
|
className: "flex h-9 items-center gap-2 border-b border-border-default-default px-3",
|
|
2756
3010
|
children: [
|
|
2757
|
-
/* @__PURE__ */ (0,
|
|
2758
|
-
/* @__PURE__ */ (0,
|
|
3011
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_lucide_react12.SearchIcon, { className: "size-4 shrink-0 text-icon-subtle-default" }),
|
|
3012
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
2759
3013
|
import_cmdk.Command.Input,
|
|
2760
3014
|
__spreadValues({
|
|
2761
3015
|
"data-slot": "command-input",
|
|
2762
3016
|
className: cn(
|
|
2763
|
-
"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:
|
|
3017
|
+
"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",
|
|
2764
3018
|
className
|
|
2765
3019
|
)
|
|
2766
3020
|
}, props)
|
|
@@ -2775,7 +3029,7 @@ function CommandList(_a) {
|
|
|
2775
3029
|
} = _b, props = __objRest(_b, [
|
|
2776
3030
|
"className"
|
|
2777
3031
|
]);
|
|
2778
|
-
return /* @__PURE__ */ (0,
|
|
3032
|
+
return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
2779
3033
|
import_cmdk.Command.List,
|
|
2780
3034
|
__spreadValues({
|
|
2781
3035
|
"data-slot": "command-list",
|
|
@@ -2788,7 +3042,7 @@ function CommandList(_a) {
|
|
|
2788
3042
|
}
|
|
2789
3043
|
function CommandEmpty(_a) {
|
|
2790
3044
|
var props = __objRest(_a, []);
|
|
2791
|
-
return /* @__PURE__ */ (0,
|
|
3045
|
+
return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
2792
3046
|
import_cmdk.Command.Empty,
|
|
2793
3047
|
__spreadValues({
|
|
2794
3048
|
"data-slot": "command-empty",
|
|
@@ -2802,7 +3056,7 @@ function CommandGroup(_a) {
|
|
|
2802
3056
|
} = _b, props = __objRest(_b, [
|
|
2803
3057
|
"className"
|
|
2804
3058
|
]);
|
|
2805
|
-
return /* @__PURE__ */ (0,
|
|
3059
|
+
return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
2806
3060
|
import_cmdk.Command.Group,
|
|
2807
3061
|
__spreadValues({
|
|
2808
3062
|
"data-slot": "command-group",
|
|
@@ -2819,7 +3073,7 @@ function CommandSeparator(_a) {
|
|
|
2819
3073
|
} = _b, props = __objRest(_b, [
|
|
2820
3074
|
"className"
|
|
2821
3075
|
]);
|
|
2822
|
-
return /* @__PURE__ */ (0,
|
|
3076
|
+
return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
2823
3077
|
import_cmdk.Command.Separator,
|
|
2824
3078
|
__spreadValues({
|
|
2825
3079
|
"data-slot": "command-separator",
|
|
@@ -2833,12 +3087,12 @@ function CommandItem(_a) {
|
|
|
2833
3087
|
} = _b, props = __objRest(_b, [
|
|
2834
3088
|
"className"
|
|
2835
3089
|
]);
|
|
2836
|
-
return /* @__PURE__ */ (0,
|
|
3090
|
+
return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
2837
3091
|
import_cmdk.Command.Item,
|
|
2838
3092
|
__spreadValues({
|
|
2839
3093
|
"data-slot": "command-item",
|
|
2840
3094
|
className: cn(
|
|
2841
|
-
"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]:
|
|
3095
|
+
"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",
|
|
2842
3096
|
className
|
|
2843
3097
|
)
|
|
2844
3098
|
}, props)
|
|
@@ -2850,7 +3104,7 @@ function CommandShortcut(_a) {
|
|
|
2850
3104
|
} = _b, props = __objRest(_b, [
|
|
2851
3105
|
"className"
|
|
2852
3106
|
]);
|
|
2853
|
-
return /* @__PURE__ */ (0,
|
|
3107
|
+
return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
2854
3108
|
"span",
|
|
2855
3109
|
__spreadValues({
|
|
2856
3110
|
"data-slot": "command-shortcut",
|
|
@@ -2863,32 +3117,32 @@ function CommandShortcut(_a) {
|
|
|
2863
3117
|
}
|
|
2864
3118
|
|
|
2865
3119
|
// components/ui/context-menu.tsx
|
|
2866
|
-
var
|
|
3120
|
+
var import_lucide_react13 = require("lucide-react");
|
|
2867
3121
|
var import_radix_ui13 = require("radix-ui");
|
|
2868
|
-
var
|
|
3122
|
+
var import_jsx_runtime22 = require("react/jsx-runtime");
|
|
2869
3123
|
function ContextMenu(_a) {
|
|
2870
3124
|
var props = __objRest(_a, []);
|
|
2871
|
-
return /* @__PURE__ */ (0,
|
|
3125
|
+
return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(import_radix_ui13.ContextMenu.Root, __spreadValues({ "data-slot": "context-menu" }, props));
|
|
2872
3126
|
}
|
|
2873
3127
|
function ContextMenuTrigger(_a) {
|
|
2874
3128
|
var props = __objRest(_a, []);
|
|
2875
|
-
return /* @__PURE__ */ (0,
|
|
3129
|
+
return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(import_radix_ui13.ContextMenu.Trigger, __spreadValues({ "data-slot": "context-menu-trigger" }, props));
|
|
2876
3130
|
}
|
|
2877
3131
|
function ContextMenuGroup(_a) {
|
|
2878
3132
|
var props = __objRest(_a, []);
|
|
2879
|
-
return /* @__PURE__ */ (0,
|
|
3133
|
+
return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(import_radix_ui13.ContextMenu.Group, __spreadValues({ "data-slot": "context-menu-group" }, props));
|
|
2880
3134
|
}
|
|
2881
3135
|
function ContextMenuPortal(_a) {
|
|
2882
3136
|
var props = __objRest(_a, []);
|
|
2883
|
-
return /* @__PURE__ */ (0,
|
|
3137
|
+
return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(import_radix_ui13.ContextMenu.Portal, __spreadValues({ "data-slot": "context-menu-portal" }, props));
|
|
2884
3138
|
}
|
|
2885
3139
|
function ContextMenuSub(_a) {
|
|
2886
3140
|
var props = __objRest(_a, []);
|
|
2887
|
-
return /* @__PURE__ */ (0,
|
|
3141
|
+
return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(import_radix_ui13.ContextMenu.Sub, __spreadValues({ "data-slot": "context-menu-sub" }, props));
|
|
2888
3142
|
}
|
|
2889
3143
|
function ContextMenuRadioGroup(_a) {
|
|
2890
3144
|
var props = __objRest(_a, []);
|
|
2891
|
-
return /* @__PURE__ */ (0,
|
|
3145
|
+
return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
|
|
2892
3146
|
import_radix_ui13.ContextMenu.RadioGroup,
|
|
2893
3147
|
__spreadValues({
|
|
2894
3148
|
"data-slot": "context-menu-radio-group"
|
|
@@ -2905,7 +3159,7 @@ function ContextMenuSubTrigger(_a) {
|
|
|
2905
3159
|
"inset",
|
|
2906
3160
|
"children"
|
|
2907
3161
|
]);
|
|
2908
|
-
return /* @__PURE__ */ (0,
|
|
3162
|
+
return /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(
|
|
2909
3163
|
import_radix_ui13.ContextMenu.SubTrigger,
|
|
2910
3164
|
__spreadProps(__spreadValues({
|
|
2911
3165
|
"data-slot": "context-menu-sub-trigger",
|
|
@@ -2917,7 +3171,7 @@ function ContextMenuSubTrigger(_a) {
|
|
|
2917
3171
|
}, props), {
|
|
2918
3172
|
children: [
|
|
2919
3173
|
children,
|
|
2920
|
-
/* @__PURE__ */ (0,
|
|
3174
|
+
/* @__PURE__ */ (0, import_jsx_runtime22.jsx)(import_lucide_react13.ChevronRightIcon, { className: "ml-auto" })
|
|
2921
3175
|
]
|
|
2922
3176
|
})
|
|
2923
3177
|
);
|
|
@@ -2928,7 +3182,7 @@ function ContextMenuSubContent(_a) {
|
|
|
2928
3182
|
} = _b, props = __objRest(_b, [
|
|
2929
3183
|
"className"
|
|
2930
3184
|
]);
|
|
2931
|
-
return /* @__PURE__ */ (0,
|
|
3185
|
+
return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
|
|
2932
3186
|
import_radix_ui13.ContextMenu.SubContent,
|
|
2933
3187
|
__spreadValues({
|
|
2934
3188
|
"data-slot": "context-menu-sub-content",
|
|
@@ -2945,7 +3199,7 @@ function ContextMenuContent(_a) {
|
|
|
2945
3199
|
} = _b, props = __objRest(_b, [
|
|
2946
3200
|
"className"
|
|
2947
3201
|
]);
|
|
2948
|
-
return /* @__PURE__ */ (0,
|
|
3202
|
+
return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(import_radix_ui13.ContextMenu.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
|
|
2949
3203
|
import_radix_ui13.ContextMenu.Content,
|
|
2950
3204
|
__spreadValues({
|
|
2951
3205
|
"data-slot": "context-menu-content",
|
|
@@ -2966,14 +3220,14 @@ function ContextMenuItem(_a) {
|
|
|
2966
3220
|
"inset",
|
|
2967
3221
|
"variant"
|
|
2968
3222
|
]);
|
|
2969
|
-
return /* @__PURE__ */ (0,
|
|
3223
|
+
return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
|
|
2970
3224
|
import_radix_ui13.ContextMenu.Item,
|
|
2971
3225
|
__spreadValues({
|
|
2972
3226
|
"data-slot": "context-menu-item",
|
|
2973
3227
|
"data-inset": inset,
|
|
2974
3228
|
"data-variant": variant,
|
|
2975
3229
|
className: cn(
|
|
2976
|
-
"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]:
|
|
3230
|
+
"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!",
|
|
2977
3231
|
className
|
|
2978
3232
|
)
|
|
2979
3233
|
}, props)
|
|
@@ -2989,18 +3243,18 @@ function ContextMenuCheckboxItem(_a) {
|
|
|
2989
3243
|
"children",
|
|
2990
3244
|
"checked"
|
|
2991
3245
|
]);
|
|
2992
|
-
return /* @__PURE__ */ (0,
|
|
3246
|
+
return /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(
|
|
2993
3247
|
import_radix_ui13.ContextMenu.CheckboxItem,
|
|
2994
3248
|
__spreadProps(__spreadValues({
|
|
2995
3249
|
"data-slot": "context-menu-checkbox-item",
|
|
2996
3250
|
className: cn(
|
|
2997
|
-
"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]:
|
|
3251
|
+
"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",
|
|
2998
3252
|
className
|
|
2999
3253
|
),
|
|
3000
3254
|
checked
|
|
3001
3255
|
}, props), {
|
|
3002
3256
|
children: [
|
|
3003
|
-
/* @__PURE__ */ (0,
|
|
3257
|
+
/* @__PURE__ */ (0, import_jsx_runtime22.jsx)("span", { className: "pointer-events-none absolute left-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(import_radix_ui13.ContextMenu.ItemIndicator, { children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(import_lucide_react13.CheckIcon, { className: "size-4" }) }) }),
|
|
3004
3258
|
children
|
|
3005
3259
|
]
|
|
3006
3260
|
})
|
|
@@ -3014,17 +3268,17 @@ function ContextMenuRadioItem(_a) {
|
|
|
3014
3268
|
"className",
|
|
3015
3269
|
"children"
|
|
3016
3270
|
]);
|
|
3017
|
-
return /* @__PURE__ */ (0,
|
|
3271
|
+
return /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(
|
|
3018
3272
|
import_radix_ui13.ContextMenu.RadioItem,
|
|
3019
3273
|
__spreadProps(__spreadValues({
|
|
3020
3274
|
"data-slot": "context-menu-radio-item",
|
|
3021
3275
|
className: cn(
|
|
3022
|
-
"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]:
|
|
3276
|
+
"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",
|
|
3023
3277
|
className
|
|
3024
3278
|
)
|
|
3025
3279
|
}, props), {
|
|
3026
3280
|
children: [
|
|
3027
|
-
/* @__PURE__ */ (0,
|
|
3281
|
+
/* @__PURE__ */ (0, import_jsx_runtime22.jsx)("span", { className: "pointer-events-none absolute left-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(import_radix_ui13.ContextMenu.ItemIndicator, { children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(import_lucide_react13.CircleIcon, { className: "size-2 fill-current" }) }) }),
|
|
3028
3282
|
children
|
|
3029
3283
|
]
|
|
3030
3284
|
})
|
|
@@ -3038,7 +3292,7 @@ function ContextMenuLabel(_a) {
|
|
|
3038
3292
|
"className",
|
|
3039
3293
|
"inset"
|
|
3040
3294
|
]);
|
|
3041
|
-
return /* @__PURE__ */ (0,
|
|
3295
|
+
return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
|
|
3042
3296
|
import_radix_ui13.ContextMenu.Label,
|
|
3043
3297
|
__spreadValues({
|
|
3044
3298
|
"data-slot": "context-menu-label",
|
|
@@ -3056,7 +3310,7 @@ function ContextMenuSeparator(_a) {
|
|
|
3056
3310
|
} = _b, props = __objRest(_b, [
|
|
3057
3311
|
"className"
|
|
3058
3312
|
]);
|
|
3059
|
-
return /* @__PURE__ */ (0,
|
|
3313
|
+
return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
|
|
3060
3314
|
import_radix_ui13.ContextMenu.Separator,
|
|
3061
3315
|
__spreadValues({
|
|
3062
3316
|
"data-slot": "context-menu-separator",
|
|
@@ -3070,7 +3324,7 @@ function ContextMenuShortcut(_a) {
|
|
|
3070
3324
|
} = _b, props = __objRest(_b, [
|
|
3071
3325
|
"className"
|
|
3072
3326
|
]);
|
|
3073
|
-
return /* @__PURE__ */ (0,
|
|
3327
|
+
return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
|
|
3074
3328
|
"span",
|
|
3075
3329
|
__spreadValues({
|
|
3076
3330
|
"data-slot": "context-menu-shortcut",
|
|
@@ -3084,22 +3338,22 @@ function ContextMenuShortcut(_a) {
|
|
|
3084
3338
|
|
|
3085
3339
|
// components/ui/drawer.tsx
|
|
3086
3340
|
var import_vaul = require("vaul");
|
|
3087
|
-
var
|
|
3341
|
+
var import_jsx_runtime23 = require("react/jsx-runtime");
|
|
3088
3342
|
function Drawer(_a) {
|
|
3089
3343
|
var props = __objRest(_a, []);
|
|
3090
|
-
return /* @__PURE__ */ (0,
|
|
3344
|
+
return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_vaul.Drawer.Root, __spreadValues({ "data-slot": "drawer" }, props));
|
|
3091
3345
|
}
|
|
3092
3346
|
function DrawerTrigger(_a) {
|
|
3093
3347
|
var props = __objRest(_a, []);
|
|
3094
|
-
return /* @__PURE__ */ (0,
|
|
3348
|
+
return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_vaul.Drawer.Trigger, __spreadValues({ "data-slot": "drawer-trigger" }, props));
|
|
3095
3349
|
}
|
|
3096
3350
|
function DrawerPortal(_a) {
|
|
3097
3351
|
var props = __objRest(_a, []);
|
|
3098
|
-
return /* @__PURE__ */ (0,
|
|
3352
|
+
return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_vaul.Drawer.Portal, __spreadValues({ "data-slot": "drawer-portal" }, props));
|
|
3099
3353
|
}
|
|
3100
3354
|
function DrawerClose(_a) {
|
|
3101
3355
|
var props = __objRest(_a, []);
|
|
3102
|
-
return /* @__PURE__ */ (0,
|
|
3356
|
+
return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_vaul.Drawer.Close, __spreadValues({ "data-slot": "drawer-close" }, props));
|
|
3103
3357
|
}
|
|
3104
3358
|
function DrawerOverlay(_a) {
|
|
3105
3359
|
var _b = _a, {
|
|
@@ -3107,7 +3361,7 @@ function DrawerOverlay(_a) {
|
|
|
3107
3361
|
} = _b, props = __objRest(_b, [
|
|
3108
3362
|
"className"
|
|
3109
3363
|
]);
|
|
3110
|
-
return /* @__PURE__ */ (0,
|
|
3364
|
+
return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
3111
3365
|
import_vaul.Drawer.Overlay,
|
|
3112
3366
|
__spreadValues({
|
|
3113
3367
|
"data-slot": "drawer-overlay",
|
|
@@ -3126,9 +3380,9 @@ function DrawerContent(_a) {
|
|
|
3126
3380
|
"className",
|
|
3127
3381
|
"children"
|
|
3128
3382
|
]);
|
|
3129
|
-
return /* @__PURE__ */ (0,
|
|
3130
|
-
/* @__PURE__ */ (0,
|
|
3131
|
-
/* @__PURE__ */ (0,
|
|
3383
|
+
return /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(DrawerPortal, { "data-slot": "drawer-portal", children: [
|
|
3384
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(DrawerOverlay, {}),
|
|
3385
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(
|
|
3132
3386
|
import_vaul.Drawer.Content,
|
|
3133
3387
|
__spreadProps(__spreadValues({
|
|
3134
3388
|
"data-slot": "drawer-content",
|
|
@@ -3142,7 +3396,7 @@ function DrawerContent(_a) {
|
|
|
3142
3396
|
)
|
|
3143
3397
|
}, props), {
|
|
3144
3398
|
children: [
|
|
3145
|
-
/* @__PURE__ */ (0,
|
|
3399
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)("div", { className: "mx-auto mt-4 hidden h-2 w-[100px] shrink-0 rounded-full bg-border-default-default group-data-[vaul-drawer-direction=bottom]/drawer-content:block" }),
|
|
3146
3400
|
children
|
|
3147
3401
|
]
|
|
3148
3402
|
})
|
|
@@ -3151,7 +3405,7 @@ function DrawerContent(_a) {
|
|
|
3151
3405
|
}
|
|
3152
3406
|
function DrawerHeader(_a) {
|
|
3153
3407
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
3154
|
-
return /* @__PURE__ */ (0,
|
|
3408
|
+
return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
3155
3409
|
"div",
|
|
3156
3410
|
__spreadValues({
|
|
3157
3411
|
"data-slot": "drawer-header",
|
|
@@ -3164,7 +3418,7 @@ function DrawerHeader(_a) {
|
|
|
3164
3418
|
}
|
|
3165
3419
|
function DrawerFooter(_a) {
|
|
3166
3420
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
3167
|
-
return /* @__PURE__ */ (0,
|
|
3421
|
+
return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
3168
3422
|
"div",
|
|
3169
3423
|
__spreadValues({
|
|
3170
3424
|
"data-slot": "drawer-footer",
|
|
@@ -3178,7 +3432,7 @@ function DrawerTitle(_a) {
|
|
|
3178
3432
|
} = _b, props = __objRest(_b, [
|
|
3179
3433
|
"className"
|
|
3180
3434
|
]);
|
|
3181
|
-
return /* @__PURE__ */ (0,
|
|
3435
|
+
return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
3182
3436
|
import_vaul.Drawer.Title,
|
|
3183
3437
|
__spreadValues({
|
|
3184
3438
|
"data-slot": "drawer-title",
|
|
@@ -3192,7 +3446,7 @@ function DrawerDescription(_a) {
|
|
|
3192
3446
|
} = _b, props = __objRest(_b, [
|
|
3193
3447
|
"className"
|
|
3194
3448
|
]);
|
|
3195
|
-
return /* @__PURE__ */ (0,
|
|
3449
|
+
return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
3196
3450
|
import_vaul.Drawer.Description,
|
|
3197
3451
|
__spreadValues({
|
|
3198
3452
|
"data-slot": "drawer-description",
|
|
@@ -3202,20 +3456,20 @@ function DrawerDescription(_a) {
|
|
|
3202
3456
|
}
|
|
3203
3457
|
|
|
3204
3458
|
// components/ui/dropdown-menu.tsx
|
|
3205
|
-
var
|
|
3459
|
+
var import_lucide_react14 = require("lucide-react");
|
|
3206
3460
|
var import_radix_ui14 = require("radix-ui");
|
|
3207
|
-
var
|
|
3461
|
+
var import_jsx_runtime24 = require("react/jsx-runtime");
|
|
3208
3462
|
function DropdownMenu(_a) {
|
|
3209
3463
|
var props = __objRest(_a, []);
|
|
3210
|
-
return /* @__PURE__ */ (0,
|
|
3464
|
+
return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_radix_ui14.DropdownMenu.Root, __spreadValues({ "data-slot": "dropdown-menu" }, props));
|
|
3211
3465
|
}
|
|
3212
3466
|
function DropdownMenuPortal(_a) {
|
|
3213
3467
|
var props = __objRest(_a, []);
|
|
3214
|
-
return /* @__PURE__ */ (0,
|
|
3468
|
+
return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_radix_ui14.DropdownMenu.Portal, __spreadValues({ "data-slot": "dropdown-menu-portal" }, props));
|
|
3215
3469
|
}
|
|
3216
3470
|
function DropdownMenuTrigger(_a) {
|
|
3217
3471
|
var props = __objRest(_a, []);
|
|
3218
|
-
return /* @__PURE__ */ (0,
|
|
3472
|
+
return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
|
|
3219
3473
|
import_radix_ui14.DropdownMenu.Trigger,
|
|
3220
3474
|
__spreadValues({
|
|
3221
3475
|
"data-slot": "dropdown-menu-trigger"
|
|
@@ -3230,7 +3484,7 @@ function DropdownMenuContent(_a) {
|
|
|
3230
3484
|
"className",
|
|
3231
3485
|
"sideOffset"
|
|
3232
3486
|
]);
|
|
3233
|
-
return /* @__PURE__ */ (0,
|
|
3487
|
+
return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_radix_ui14.DropdownMenu.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
|
|
3234
3488
|
import_radix_ui14.DropdownMenu.Content,
|
|
3235
3489
|
__spreadValues({
|
|
3236
3490
|
"data-slot": "dropdown-menu-content",
|
|
@@ -3244,7 +3498,7 @@ function DropdownMenuContent(_a) {
|
|
|
3244
3498
|
}
|
|
3245
3499
|
function DropdownMenuGroup(_a) {
|
|
3246
3500
|
var props = __objRest(_a, []);
|
|
3247
|
-
return /* @__PURE__ */ (0,
|
|
3501
|
+
return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_radix_ui14.DropdownMenu.Group, __spreadValues({ "data-slot": "dropdown-menu-group" }, props));
|
|
3248
3502
|
}
|
|
3249
3503
|
function DropdownMenuItem(_a) {
|
|
3250
3504
|
var _b = _a, {
|
|
@@ -3256,14 +3510,14 @@ function DropdownMenuItem(_a) {
|
|
|
3256
3510
|
"inset",
|
|
3257
3511
|
"variant"
|
|
3258
3512
|
]);
|
|
3259
|
-
return /* @__PURE__ */ (0,
|
|
3513
|
+
return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
|
|
3260
3514
|
import_radix_ui14.DropdownMenu.Item,
|
|
3261
3515
|
__spreadValues({
|
|
3262
3516
|
"data-slot": "dropdown-menu-item",
|
|
3263
3517
|
"data-inset": inset,
|
|
3264
3518
|
"data-variant": variant,
|
|
3265
3519
|
className: cn(
|
|
3266
|
-
"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]:
|
|
3520
|
+
"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!",
|
|
3267
3521
|
className
|
|
3268
3522
|
)
|
|
3269
3523
|
}, props)
|
|
@@ -3279,18 +3533,18 @@ function DropdownMenuCheckboxItem(_a) {
|
|
|
3279
3533
|
"children",
|
|
3280
3534
|
"checked"
|
|
3281
3535
|
]);
|
|
3282
|
-
return /* @__PURE__ */ (0,
|
|
3536
|
+
return /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(
|
|
3283
3537
|
import_radix_ui14.DropdownMenu.CheckboxItem,
|
|
3284
3538
|
__spreadProps(__spreadValues({
|
|
3285
3539
|
"data-slot": "dropdown-menu-checkbox-item",
|
|
3286
3540
|
className: cn(
|
|
3287
|
-
"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]:
|
|
3541
|
+
"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",
|
|
3288
3542
|
className
|
|
3289
3543
|
),
|
|
3290
3544
|
checked
|
|
3291
3545
|
}, props), {
|
|
3292
3546
|
children: [
|
|
3293
|
-
/* @__PURE__ */ (0,
|
|
3547
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)("span", { className: "pointer-events-none absolute left-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_radix_ui14.DropdownMenu.ItemIndicator, { children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_lucide_react14.CheckIcon, { className: "size-4" }) }) }),
|
|
3294
3548
|
children
|
|
3295
3549
|
]
|
|
3296
3550
|
})
|
|
@@ -3298,7 +3552,7 @@ function DropdownMenuCheckboxItem(_a) {
|
|
|
3298
3552
|
}
|
|
3299
3553
|
function DropdownMenuRadioGroup(_a) {
|
|
3300
3554
|
var props = __objRest(_a, []);
|
|
3301
|
-
return /* @__PURE__ */ (0,
|
|
3555
|
+
return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
|
|
3302
3556
|
import_radix_ui14.DropdownMenu.RadioGroup,
|
|
3303
3557
|
__spreadValues({
|
|
3304
3558
|
"data-slot": "dropdown-menu-radio-group"
|
|
@@ -3313,17 +3567,17 @@ function DropdownMenuRadioItem(_a) {
|
|
|
3313
3567
|
"className",
|
|
3314
3568
|
"children"
|
|
3315
3569
|
]);
|
|
3316
|
-
return /* @__PURE__ */ (0,
|
|
3570
|
+
return /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(
|
|
3317
3571
|
import_radix_ui14.DropdownMenu.RadioItem,
|
|
3318
3572
|
__spreadProps(__spreadValues({
|
|
3319
3573
|
"data-slot": "dropdown-menu-radio-item",
|
|
3320
3574
|
className: cn(
|
|
3321
|
-
"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]:
|
|
3575
|
+
"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",
|
|
3322
3576
|
className
|
|
3323
3577
|
)
|
|
3324
3578
|
}, props), {
|
|
3325
3579
|
children: [
|
|
3326
|
-
/* @__PURE__ */ (0,
|
|
3580
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)("span", { className: "pointer-events-none absolute left-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_radix_ui14.DropdownMenu.ItemIndicator, { children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_lucide_react14.CircleIcon, { className: "size-2 fill-current" }) }) }),
|
|
3327
3581
|
children
|
|
3328
3582
|
]
|
|
3329
3583
|
})
|
|
@@ -3337,7 +3591,7 @@ function DropdownMenuLabel(_a) {
|
|
|
3337
3591
|
"className",
|
|
3338
3592
|
"inset"
|
|
3339
3593
|
]);
|
|
3340
|
-
return /* @__PURE__ */ (0,
|
|
3594
|
+
return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
|
|
3341
3595
|
import_radix_ui14.DropdownMenu.Label,
|
|
3342
3596
|
__spreadValues({
|
|
3343
3597
|
"data-slot": "dropdown-menu-label",
|
|
@@ -3355,7 +3609,7 @@ function DropdownMenuSeparator(_a) {
|
|
|
3355
3609
|
} = _b, props = __objRest(_b, [
|
|
3356
3610
|
"className"
|
|
3357
3611
|
]);
|
|
3358
|
-
return /* @__PURE__ */ (0,
|
|
3612
|
+
return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
|
|
3359
3613
|
import_radix_ui14.DropdownMenu.Separator,
|
|
3360
3614
|
__spreadValues({
|
|
3361
3615
|
"data-slot": "dropdown-menu-separator",
|
|
@@ -3369,7 +3623,7 @@ function DropdownMenuShortcut(_a) {
|
|
|
3369
3623
|
} = _b, props = __objRest(_b, [
|
|
3370
3624
|
"className"
|
|
3371
3625
|
]);
|
|
3372
|
-
return /* @__PURE__ */ (0,
|
|
3626
|
+
return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
|
|
3373
3627
|
"span",
|
|
3374
3628
|
__spreadValues({
|
|
3375
3629
|
"data-slot": "dropdown-menu-shortcut",
|
|
@@ -3382,7 +3636,7 @@ function DropdownMenuShortcut(_a) {
|
|
|
3382
3636
|
}
|
|
3383
3637
|
function DropdownMenuSub(_a) {
|
|
3384
3638
|
var props = __objRest(_a, []);
|
|
3385
|
-
return /* @__PURE__ */ (0,
|
|
3639
|
+
return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_radix_ui14.DropdownMenu.Sub, __spreadValues({ "data-slot": "dropdown-menu-sub" }, props));
|
|
3386
3640
|
}
|
|
3387
3641
|
function DropdownMenuSubTrigger(_a) {
|
|
3388
3642
|
var _b = _a, {
|
|
@@ -3394,7 +3648,7 @@ function DropdownMenuSubTrigger(_a) {
|
|
|
3394
3648
|
"inset",
|
|
3395
3649
|
"children"
|
|
3396
3650
|
]);
|
|
3397
|
-
return /* @__PURE__ */ (0,
|
|
3651
|
+
return /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(
|
|
3398
3652
|
import_radix_ui14.DropdownMenu.SubTrigger,
|
|
3399
3653
|
__spreadProps(__spreadValues({
|
|
3400
3654
|
"data-slot": "dropdown-menu-sub-trigger",
|
|
@@ -3406,7 +3660,7 @@ function DropdownMenuSubTrigger(_a) {
|
|
|
3406
3660
|
}, props), {
|
|
3407
3661
|
children: [
|
|
3408
3662
|
children,
|
|
3409
|
-
/* @__PURE__ */ (0,
|
|
3663
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_lucide_react14.ChevronRightIcon, { className: "ml-auto size-4" })
|
|
3410
3664
|
]
|
|
3411
3665
|
})
|
|
3412
3666
|
);
|
|
@@ -3417,7 +3671,7 @@ function DropdownMenuSubContent(_a) {
|
|
|
3417
3671
|
} = _b, props = __objRest(_b, [
|
|
3418
3672
|
"className"
|
|
3419
3673
|
]);
|
|
3420
|
-
return /* @__PURE__ */ (0,
|
|
3674
|
+
return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
|
|
3421
3675
|
import_radix_ui14.DropdownMenu.SubContent,
|
|
3422
3676
|
__spreadValues({
|
|
3423
3677
|
"data-slot": "dropdown-menu-sub-content",
|
|
@@ -3431,10 +3685,10 @@ function DropdownMenuSubContent(_a) {
|
|
|
3431
3685
|
|
|
3432
3686
|
// components/ui/empty.tsx
|
|
3433
3687
|
var import_class_variance_authority6 = require("class-variance-authority");
|
|
3434
|
-
var
|
|
3688
|
+
var import_jsx_runtime25 = require("react/jsx-runtime");
|
|
3435
3689
|
function Empty(_a) {
|
|
3436
3690
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
3437
|
-
return /* @__PURE__ */ (0,
|
|
3691
|
+
return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
|
|
3438
3692
|
"div",
|
|
3439
3693
|
__spreadValues({
|
|
3440
3694
|
"data-slot": "empty",
|
|
@@ -3447,7 +3701,7 @@ function Empty(_a) {
|
|
|
3447
3701
|
}
|
|
3448
3702
|
function EmptyHeader(_a) {
|
|
3449
3703
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
3450
|
-
return /* @__PURE__ */ (0,
|
|
3704
|
+
return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
|
|
3451
3705
|
"div",
|
|
3452
3706
|
__spreadValues({
|
|
3453
3707
|
"data-slot": "empty-header",
|
|
@@ -3480,7 +3734,7 @@ function EmptyMedia(_a) {
|
|
|
3480
3734
|
"className",
|
|
3481
3735
|
"variant"
|
|
3482
3736
|
]);
|
|
3483
|
-
return /* @__PURE__ */ (0,
|
|
3737
|
+
return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
|
|
3484
3738
|
"div",
|
|
3485
3739
|
__spreadValues({
|
|
3486
3740
|
"data-slot": "empty-icon",
|
|
@@ -3491,7 +3745,7 @@ function EmptyMedia(_a) {
|
|
|
3491
3745
|
}
|
|
3492
3746
|
function EmptyTitle(_a) {
|
|
3493
3747
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
3494
|
-
return /* @__PURE__ */ (0,
|
|
3748
|
+
return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
|
|
3495
3749
|
"div",
|
|
3496
3750
|
__spreadValues({
|
|
3497
3751
|
"data-slot": "empty-title",
|
|
@@ -3501,7 +3755,7 @@ function EmptyTitle(_a) {
|
|
|
3501
3755
|
}
|
|
3502
3756
|
function EmptyDescription(_a) {
|
|
3503
3757
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
3504
|
-
return /* @__PURE__ */ (0,
|
|
3758
|
+
return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
|
|
3505
3759
|
"div",
|
|
3506
3760
|
__spreadValues({
|
|
3507
3761
|
"data-slot": "empty-description",
|
|
@@ -3514,7 +3768,7 @@ function EmptyDescription(_a) {
|
|
|
3514
3768
|
}
|
|
3515
3769
|
function EmptyContent(_a) {
|
|
3516
3770
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
3517
|
-
return /* @__PURE__ */ (0,
|
|
3771
|
+
return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
|
|
3518
3772
|
"div",
|
|
3519
3773
|
__spreadValues({
|
|
3520
3774
|
"data-slot": "empty-content",
|
|
@@ -3527,27 +3781,27 @@ function EmptyContent(_a) {
|
|
|
3527
3781
|
}
|
|
3528
3782
|
|
|
3529
3783
|
// components/ui/field.tsx
|
|
3530
|
-
var
|
|
3784
|
+
var React7 = __toESM(require("react"), 1);
|
|
3531
3785
|
var import_react = require("react");
|
|
3532
3786
|
var import_class_variance_authority7 = require("class-variance-authority");
|
|
3533
3787
|
|
|
3534
3788
|
// components/ui/label.tsx
|
|
3535
3789
|
var import_radix_ui15 = require("radix-ui");
|
|
3536
|
-
var
|
|
3790
|
+
var import_jsx_runtime26 = require("react/jsx-runtime");
|
|
3537
3791
|
function Label(_a) {
|
|
3538
3792
|
var _b = _a, {
|
|
3539
3793
|
className
|
|
3540
3794
|
} = _b, props = __objRest(_b, [
|
|
3541
3795
|
"className"
|
|
3542
3796
|
]);
|
|
3543
|
-
return /* @__PURE__ */ (0,
|
|
3797
|
+
return /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
|
|
3544
3798
|
import_radix_ui15.Label.Root,
|
|
3545
3799
|
__spreadValues({
|
|
3546
3800
|
"data-slot": "label",
|
|
3547
3801
|
className: cn(
|
|
3548
3802
|
// Colour is inherited on purpose: a Field marked data-invalid paints its
|
|
3549
3803
|
// subtree error-red, and the label follows.
|
|
3550
|
-
"type-label flex items-center gap-2 select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:
|
|
3804
|
+
"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",
|
|
3551
3805
|
className
|
|
3552
3806
|
)
|
|
3553
3807
|
}, props)
|
|
@@ -3556,7 +3810,7 @@ function Label(_a) {
|
|
|
3556
3810
|
|
|
3557
3811
|
// components/ui/separator.tsx
|
|
3558
3812
|
var import_radix_ui16 = require("radix-ui");
|
|
3559
|
-
var
|
|
3813
|
+
var import_jsx_runtime27 = require("react/jsx-runtime");
|
|
3560
3814
|
function Separator(_a) {
|
|
3561
3815
|
var _b = _a, {
|
|
3562
3816
|
className,
|
|
@@ -3567,7 +3821,7 @@ function Separator(_a) {
|
|
|
3567
3821
|
"orientation",
|
|
3568
3822
|
"decorative"
|
|
3569
3823
|
]);
|
|
3570
|
-
return /* @__PURE__ */ (0,
|
|
3824
|
+
return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
|
|
3571
3825
|
import_radix_ui16.Separator.Root,
|
|
3572
3826
|
__spreadValues({
|
|
3573
3827
|
"data-slot": "separator",
|
|
@@ -3582,10 +3836,10 @@ function Separator(_a) {
|
|
|
3582
3836
|
}
|
|
3583
3837
|
|
|
3584
3838
|
// components/ui/field.tsx
|
|
3585
|
-
var
|
|
3586
|
-
var FieldSizeContext =
|
|
3839
|
+
var import_jsx_runtime28 = require("react/jsx-runtime");
|
|
3840
|
+
var FieldSizeContext = React7.createContext("md");
|
|
3587
3841
|
function useFieldSize() {
|
|
3588
|
-
return
|
|
3842
|
+
return React7.useContext(FieldSizeContext);
|
|
3589
3843
|
}
|
|
3590
3844
|
var fieldLabelType = {
|
|
3591
3845
|
sm: "type-field-label-sm",
|
|
@@ -3594,7 +3848,7 @@ var fieldLabelType = {
|
|
|
3594
3848
|
};
|
|
3595
3849
|
function FieldSet(_a) {
|
|
3596
3850
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
3597
|
-
return /* @__PURE__ */ (0,
|
|
3851
|
+
return /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
|
|
3598
3852
|
"fieldset",
|
|
3599
3853
|
__spreadValues({
|
|
3600
3854
|
"data-slot": "field-set",
|
|
@@ -3614,7 +3868,7 @@ function FieldLegend(_a) {
|
|
|
3614
3868
|
"className",
|
|
3615
3869
|
"variant"
|
|
3616
3870
|
]);
|
|
3617
|
-
return /* @__PURE__ */ (0,
|
|
3871
|
+
return /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
|
|
3618
3872
|
"legend",
|
|
3619
3873
|
__spreadValues({
|
|
3620
3874
|
"data-slot": "field-legend",
|
|
@@ -3631,7 +3885,7 @@ function FieldLegend(_a) {
|
|
|
3631
3885
|
}
|
|
3632
3886
|
function FieldGroup(_a) {
|
|
3633
3887
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
3634
|
-
return /* @__PURE__ */ (0,
|
|
3888
|
+
return /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
|
|
3635
3889
|
"div",
|
|
3636
3890
|
__spreadValues({
|
|
3637
3891
|
"data-slot": "field-group",
|
|
@@ -3681,7 +3935,7 @@ function Field(_a) {
|
|
|
3681
3935
|
"orientation",
|
|
3682
3936
|
"size"
|
|
3683
3937
|
]);
|
|
3684
|
-
return /* @__PURE__ */ (0,
|
|
3938
|
+
return /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(FieldSizeContext.Provider, { value: size != null ? size : "md", children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
|
|
3685
3939
|
"div",
|
|
3686
3940
|
__spreadValues({
|
|
3687
3941
|
role: "group",
|
|
@@ -3694,7 +3948,7 @@ function Field(_a) {
|
|
|
3694
3948
|
}
|
|
3695
3949
|
function FieldContent(_a) {
|
|
3696
3950
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
3697
|
-
return /* @__PURE__ */ (0,
|
|
3951
|
+
return /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
|
|
3698
3952
|
"div",
|
|
3699
3953
|
__spreadValues({
|
|
3700
3954
|
"data-slot": "field-content",
|
|
@@ -3712,13 +3966,13 @@ function FieldLabel(_a) {
|
|
|
3712
3966
|
"className"
|
|
3713
3967
|
]);
|
|
3714
3968
|
const size = useFieldSize();
|
|
3715
|
-
return /* @__PURE__ */ (0,
|
|
3969
|
+
return /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
|
|
3716
3970
|
Label,
|
|
3717
3971
|
__spreadValues({
|
|
3718
3972
|
"data-slot": "field-label",
|
|
3719
3973
|
className: cn(
|
|
3720
3974
|
fieldLabelType[size],
|
|
3721
|
-
"group/field-label peer/field-label flex w-fit gap-2 leading-snug group-data-[disabled=true]/field:
|
|
3975
|
+
"group/field-label peer/field-label flex w-fit gap-2 leading-snug group-data-[disabled=true]/field:text-text-disabled-default",
|
|
3722
3976
|
"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",
|
|
3723
3977
|
"has-data-[state=checked]:border-border-brand-selected has-data-[state=checked]:bg-background-brand-selected",
|
|
3724
3978
|
className
|
|
@@ -3729,13 +3983,13 @@ function FieldLabel(_a) {
|
|
|
3729
3983
|
function FieldTitle(_a) {
|
|
3730
3984
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
3731
3985
|
const size = useFieldSize();
|
|
3732
|
-
return /* @__PURE__ */ (0,
|
|
3986
|
+
return /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
|
|
3733
3987
|
"div",
|
|
3734
3988
|
__spreadValues({
|
|
3735
3989
|
"data-slot": "field-label",
|
|
3736
3990
|
className: cn(
|
|
3737
3991
|
fieldLabelType[size],
|
|
3738
|
-
"flex w-fit items-center gap-2 group-data-[disabled=true]/field:
|
|
3992
|
+
"flex w-fit items-center gap-2 group-data-[disabled=true]/field:text-text-disabled-default",
|
|
3739
3993
|
className
|
|
3740
3994
|
)
|
|
3741
3995
|
}, props)
|
|
@@ -3743,7 +3997,7 @@ function FieldTitle(_a) {
|
|
|
3743
3997
|
}
|
|
3744
3998
|
function FieldDescription(_a) {
|
|
3745
3999
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
3746
|
-
return /* @__PURE__ */ (0,
|
|
4000
|
+
return /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
|
|
3747
4001
|
"p",
|
|
3748
4002
|
__spreadValues({
|
|
3749
4003
|
"data-slot": "field-description",
|
|
@@ -3764,7 +4018,7 @@ function FieldSeparator(_a) {
|
|
|
3764
4018
|
"children",
|
|
3765
4019
|
"className"
|
|
3766
4020
|
]);
|
|
3767
|
-
return /* @__PURE__ */ (0,
|
|
4021
|
+
return /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(
|
|
3768
4022
|
"div",
|
|
3769
4023
|
__spreadProps(__spreadValues({
|
|
3770
4024
|
"data-slot": "field-separator",
|
|
@@ -3775,8 +4029,8 @@ function FieldSeparator(_a) {
|
|
|
3775
4029
|
)
|
|
3776
4030
|
}, props), {
|
|
3777
4031
|
children: [
|
|
3778
|
-
/* @__PURE__ */ (0,
|
|
3779
|
-
children && /* @__PURE__ */ (0,
|
|
4032
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)(Separator, { className: "absolute inset-0 top-1/2" }),
|
|
4033
|
+
children && /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
|
|
3780
4034
|
"span",
|
|
3781
4035
|
{
|
|
3782
4036
|
className: "relative mx-auto block w-fit bg-background-primary-surface px-2 text-text-subtle-default",
|
|
@@ -3812,14 +4066,14 @@ function FieldError(_a) {
|
|
|
3812
4066
|
if ((uniqueErrors == null ? void 0 : uniqueErrors.length) == 1) {
|
|
3813
4067
|
return (_a2 = uniqueErrors[0]) == null ? void 0 : _a2.message;
|
|
3814
4068
|
}
|
|
3815
|
-
return /* @__PURE__ */ (0,
|
|
3816
|
-
(error, index) => (error == null ? void 0 : error.message) && /* @__PURE__ */ (0,
|
|
4069
|
+
return /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("ul", { className: "ml-4 flex list-disc flex-col gap-1", children: uniqueErrors.map(
|
|
4070
|
+
(error, index) => (error == null ? void 0 : error.message) && /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("li", { children: error.message }, index)
|
|
3817
4071
|
) });
|
|
3818
4072
|
}, [children, errors]);
|
|
3819
4073
|
if (!content) {
|
|
3820
4074
|
return null;
|
|
3821
4075
|
}
|
|
3822
|
-
return /* @__PURE__ */ (0,
|
|
4076
|
+
return /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
|
|
3823
4077
|
"div",
|
|
3824
4078
|
__spreadProps(__spreadValues({
|
|
3825
4079
|
role: "alert",
|
|
@@ -3833,14 +4087,14 @@ function FieldError(_a) {
|
|
|
3833
4087
|
|
|
3834
4088
|
// components/ui/hover-card.tsx
|
|
3835
4089
|
var import_radix_ui17 = require("radix-ui");
|
|
3836
|
-
var
|
|
4090
|
+
var import_jsx_runtime29 = require("react/jsx-runtime");
|
|
3837
4091
|
function HoverCard(_a) {
|
|
3838
4092
|
var props = __objRest(_a, []);
|
|
3839
|
-
return /* @__PURE__ */ (0,
|
|
4093
|
+
return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_radix_ui17.HoverCard.Root, __spreadValues({ "data-slot": "hover-card" }, props));
|
|
3840
4094
|
}
|
|
3841
4095
|
function HoverCardTrigger(_a) {
|
|
3842
4096
|
var props = __objRest(_a, []);
|
|
3843
|
-
return /* @__PURE__ */ (0,
|
|
4097
|
+
return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_radix_ui17.HoverCard.Trigger, __spreadValues({ "data-slot": "hover-card-trigger" }, props));
|
|
3844
4098
|
}
|
|
3845
4099
|
function HoverCardContent(_a) {
|
|
3846
4100
|
var _b = _a, {
|
|
@@ -3852,7 +4106,7 @@ function HoverCardContent(_a) {
|
|
|
3852
4106
|
"align",
|
|
3853
4107
|
"sideOffset"
|
|
3854
4108
|
]);
|
|
3855
|
-
return /* @__PURE__ */ (0,
|
|
4109
|
+
return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_radix_ui17.HoverCard.Portal, { "data-slot": "hover-card-portal", children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
|
|
3856
4110
|
import_radix_ui17.HoverCard.Content,
|
|
3857
4111
|
__spreadValues({
|
|
3858
4112
|
"data-slot": "hover-card-content",
|
|
@@ -3868,15 +4122,18 @@ function HoverCardContent(_a) {
|
|
|
3868
4122
|
|
|
3869
4123
|
// components/ui/input.tsx
|
|
3870
4124
|
var import_class_variance_authority8 = require("class-variance-authority");
|
|
3871
|
-
var
|
|
4125
|
+
var import_jsx_runtime30 = require("react/jsx-runtime");
|
|
3872
4126
|
var inputVariants = (0, import_class_variance_authority8.cva)(
|
|
3873
4127
|
[
|
|
3874
4128
|
"w-full min-w-0 rounded-xs border font-body transition-[color,box-shadow] outline-none",
|
|
3875
4129
|
"file:inline-flex file:border-0 file:bg-transparent file:font-medium",
|
|
3876
|
-
"disabled:pointer-events-none disabled:cursor-not-allowed disabled:
|
|
4130
|
+
"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))]",
|
|
3877
4131
|
// Read-only stays focusable and selectable (users copy codes/amounts);
|
|
3878
|
-
// only the surface flattens.
|
|
3879
|
-
|
|
4132
|
+
// only the surface flattens. Matched on the [readonly] attribute, not the
|
|
4133
|
+
// `:read-only` pseudo-class — that also matches disabled inputs, which
|
|
4134
|
+
// would hand disabled the read-only surface and erase the two states'
|
|
4135
|
+
// difference.
|
|
4136
|
+
"[&[readonly]]:border-transparent [&[readonly]]:bg-background-secondary-surface",
|
|
3880
4137
|
"focus-visible:ring-[3px]",
|
|
3881
4138
|
"aria-invalid:border-border-error-default aria-invalid:ring-ring-error-soft"
|
|
3882
4139
|
].join(" "),
|
|
@@ -3897,7 +4154,7 @@ var inputVariants = (0, import_class_variance_authority8.cva)(
|
|
|
3897
4154
|
"on-brand": [
|
|
3898
4155
|
"border-(--primitive-white-alpha-24) bg-(--primitive-black-alpha-32) text-text-on-brand-static",
|
|
3899
4156
|
"file:text-text-on-brand-static",
|
|
3900
|
-
"placeholder:text-
|
|
4157
|
+
"placeholder:text-text-on-brand-subtle-static",
|
|
3901
4158
|
"selection:bg-background-static-white selection:text-text-brand-container-static",
|
|
3902
4159
|
"focus-visible:border-background-static-white focus-visible:ring-(--primitive-white-alpha-40)"
|
|
3903
4160
|
].join(" "),
|
|
@@ -3905,7 +4162,7 @@ var inputVariants = (0, import_class_variance_authority8.cva)(
|
|
|
3905
4162
|
inverse: [
|
|
3906
4163
|
"border-(--primitive-white-alpha-24) bg-(--primitive-black-alpha-32) text-text-on-brand-static",
|
|
3907
4164
|
"file:text-text-on-brand-static",
|
|
3908
|
-
"placeholder:text-
|
|
4165
|
+
"placeholder:text-text-on-brand-subtle-static",
|
|
3909
4166
|
"selection:bg-background-static-white selection:text-text-brand-container-static",
|
|
3910
4167
|
"focus-visible:border-background-static-white focus-visible:ring-(--primitive-white-alpha-40)"
|
|
3911
4168
|
].join(" ")
|
|
@@ -3936,7 +4193,7 @@ function Input(_a) {
|
|
|
3936
4193
|
]);
|
|
3937
4194
|
const fieldSize = useFieldSize();
|
|
3938
4195
|
const resolvedSize = size != null ? size : fieldSize;
|
|
3939
|
-
return /* @__PURE__ */ (0,
|
|
4196
|
+
return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
|
|
3940
4197
|
"input",
|
|
3941
4198
|
__spreadValues({
|
|
3942
4199
|
type,
|
|
@@ -3949,19 +4206,19 @@ function Input(_a) {
|
|
|
3949
4206
|
}
|
|
3950
4207
|
|
|
3951
4208
|
// components/ui/input-group.tsx
|
|
3952
|
-
var
|
|
4209
|
+
var React8 = __toESM(require("react"), 1);
|
|
3953
4210
|
var import_class_variance_authority9 = require("class-variance-authority");
|
|
3954
4211
|
|
|
3955
4212
|
// components/ui/textarea.tsx
|
|
3956
|
-
var
|
|
4213
|
+
var import_jsx_runtime31 = require("react/jsx-runtime");
|
|
3957
4214
|
function Textarea(_a) {
|
|
3958
4215
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
3959
|
-
return /* @__PURE__ */ (0,
|
|
4216
|
+
return /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
|
|
3960
4217
|
"textarea",
|
|
3961
4218
|
__spreadValues({
|
|
3962
4219
|
"data-slot": "textarea",
|
|
3963
4220
|
className: cn(
|
|
3964
|
-
"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:
|
|
4221
|
+
"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",
|
|
3965
4222
|
className
|
|
3966
4223
|
)
|
|
3967
4224
|
}, props)
|
|
@@ -3969,9 +4226,9 @@ function Textarea(_a) {
|
|
|
3969
4226
|
}
|
|
3970
4227
|
|
|
3971
4228
|
// components/ui/input-group.tsx
|
|
3972
|
-
var
|
|
3973
|
-
var InputGroupSizeContext =
|
|
3974
|
-
var InputGroupVariantContext =
|
|
4229
|
+
var import_jsx_runtime32 = require("react/jsx-runtime");
|
|
4230
|
+
var InputGroupSizeContext = React8.createContext("md");
|
|
4231
|
+
var InputGroupVariantContext = React8.createContext("default");
|
|
3975
4232
|
var inputGroupVariants = (0, import_class_variance_authority9.cva)(
|
|
3976
4233
|
[
|
|
3977
4234
|
"group/input-group relative flex w-full items-center rounded-xs border",
|
|
@@ -4030,11 +4287,11 @@ function InputGroup(_a) {
|
|
|
4030
4287
|
]);
|
|
4031
4288
|
const fieldSize = useFieldSize();
|
|
4032
4289
|
const resolvedSize = size != null ? size : fieldSize;
|
|
4033
|
-
return /* @__PURE__ */ (0,
|
|
4290
|
+
return /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
|
|
4034
4291
|
InputGroupVariantContext.Provider,
|
|
4035
4292
|
{
|
|
4036
4293
|
value: variant,
|
|
4037
|
-
children: /* @__PURE__ */ (0,
|
|
4294
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(InputGroupSizeContext.Provider, { value: resolvedSize, children: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
|
|
4038
4295
|
"div",
|
|
4039
4296
|
__spreadValues({
|
|
4040
4297
|
"data-slot": "input-group",
|
|
@@ -4050,10 +4307,15 @@ function InputGroup(_a) {
|
|
|
4050
4307
|
var inputGroupAddonVariants = (0, import_class_variance_authority9.cva)(
|
|
4051
4308
|
[
|
|
4052
4309
|
"flex h-auto cursor-text items-center justify-center gap-2 py-1.5 text-text-subtle-default select-none",
|
|
4053
|
-
// Swap addon text/icon colour when inside an on-brand group.
|
|
4054
|
-
|
|
4055
|
-
|
|
4056
|
-
"group-data-[
|
|
4310
|
+
// Swap addon text/icon colour when inside an on-brand group. On brand the
|
|
4311
|
+
// ink ladder inverts — white down through the alpha rungs — so this is the
|
|
4312
|
+
// semantic subtle rung, not a hand-rolled primitive.
|
|
4313
|
+
"group-data-[variant=on-brand]/input-group:text-text-on-brand-subtle-static",
|
|
4314
|
+
"group-data-[variant=inverse]/input-group:text-text-on-brand-subtle-static",
|
|
4315
|
+
"group-data-[disabled=true]/input-group:has-disabled:text-text-disabled-default",
|
|
4316
|
+
// …but on brand the neutral disabled ink has no contrast, so the on-brand
|
|
4317
|
+
// rung wins there.
|
|
4318
|
+
"group-data-[variant=on-brand]/input-group:group-data-[disabled=true]/input-group:has-disabled:text-text-on-brand-disabled-default",
|
|
4057
4319
|
"[&>kbd]:rounded-[calc(var(--radius)-5px)]",
|
|
4058
4320
|
// Text size inherits the group's --input-* ladder (set on the group in CSS).
|
|
4059
4321
|
"group-data-[size=sm]/input-group:py-1",
|
|
@@ -4084,7 +4346,7 @@ function InputGroupAddon(_a) {
|
|
|
4084
4346
|
"className",
|
|
4085
4347
|
"align"
|
|
4086
4348
|
]);
|
|
4087
|
-
return /* @__PURE__ */ (0,
|
|
4349
|
+
return /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
|
|
4088
4350
|
"div",
|
|
4089
4351
|
__spreadValues({
|
|
4090
4352
|
role: "group",
|
|
@@ -4131,7 +4393,7 @@ function InputGroupButton(_a) {
|
|
|
4131
4393
|
"variant",
|
|
4132
4394
|
"size"
|
|
4133
4395
|
]);
|
|
4134
|
-
return /* @__PURE__ */ (0,
|
|
4396
|
+
return /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
|
|
4135
4397
|
Button,
|
|
4136
4398
|
__spreadValues({
|
|
4137
4399
|
type,
|
|
@@ -4144,14 +4406,15 @@ function InputGroupButton(_a) {
|
|
|
4144
4406
|
}
|
|
4145
4407
|
function InputGroupText(_a) {
|
|
4146
4408
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
4147
|
-
return /* @__PURE__ */ (0,
|
|
4409
|
+
return /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
|
|
4148
4410
|
"span",
|
|
4149
4411
|
__spreadValues({
|
|
4150
4412
|
className: cn(
|
|
4151
4413
|
"flex items-center gap-2 text-text-subtle-default",
|
|
4152
|
-
// Swap text/icon colour when inside an on-brand group
|
|
4153
|
-
|
|
4154
|
-
"group-data-[variant=
|
|
4414
|
+
// Swap text/icon colour when inside an on-brand group — the on-brand
|
|
4415
|
+
// subtle rung, not a hand-rolled primitive.
|
|
4416
|
+
"group-data-[variant=on-brand]/input-group:text-text-on-brand-subtle-static",
|
|
4417
|
+
"group-data-[variant=inverse]/input-group:text-text-on-brand-subtle-static",
|
|
4155
4418
|
// Text size inherits the group's --input-* ladder; icons track it.
|
|
4156
4419
|
"group-data-[size=sm]/input-group:[&_svg:not([class*='size-'])]:size-3.5",
|
|
4157
4420
|
"group-data-[size=md]/input-group:[&_svg:not([class*='size-'])]:size-4",
|
|
@@ -4172,11 +4435,11 @@ function InputGroupInput(_a) {
|
|
|
4172
4435
|
"size",
|
|
4173
4436
|
"variant"
|
|
4174
4437
|
]);
|
|
4175
|
-
const groupSize =
|
|
4176
|
-
const groupVariant =
|
|
4438
|
+
const groupSize = React8.useContext(InputGroupSizeContext);
|
|
4439
|
+
const groupVariant = React8.useContext(InputGroupVariantContext);
|
|
4177
4440
|
const size = sizeProp != null ? sizeProp : groupSize;
|
|
4178
4441
|
const variant = variantProp != null ? variantProp : groupVariant;
|
|
4179
|
-
return /* @__PURE__ */ (0,
|
|
4442
|
+
return /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
|
|
4180
4443
|
Input,
|
|
4181
4444
|
__spreadValues({
|
|
4182
4445
|
"data-slot": "input-group-control",
|
|
@@ -4195,7 +4458,7 @@ function InputGroupTextarea(_a) {
|
|
|
4195
4458
|
} = _b, props = __objRest(_b, [
|
|
4196
4459
|
"className"
|
|
4197
4460
|
]);
|
|
4198
|
-
return /* @__PURE__ */ (0,
|
|
4461
|
+
return /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
|
|
4199
4462
|
Textarea,
|
|
4200
4463
|
__spreadValues({
|
|
4201
4464
|
"data-slot": "input-group-control",
|
|
@@ -4208,10 +4471,10 @@ function InputGroupTextarea(_a) {
|
|
|
4208
4471
|
}
|
|
4209
4472
|
|
|
4210
4473
|
// components/ui/input-otp.tsx
|
|
4211
|
-
var
|
|
4474
|
+
var React9 = __toESM(require("react"), 1);
|
|
4212
4475
|
var import_input_otp = require("input-otp");
|
|
4213
|
-
var
|
|
4214
|
-
var
|
|
4476
|
+
var import_lucide_react15 = require("lucide-react");
|
|
4477
|
+
var import_jsx_runtime33 = require("react/jsx-runtime");
|
|
4215
4478
|
function InputOTP(_a) {
|
|
4216
4479
|
var _b = _a, {
|
|
4217
4480
|
className,
|
|
@@ -4220,12 +4483,12 @@ function InputOTP(_a) {
|
|
|
4220
4483
|
"className",
|
|
4221
4484
|
"containerClassName"
|
|
4222
4485
|
]);
|
|
4223
|
-
return /* @__PURE__ */ (0,
|
|
4486
|
+
return /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
|
|
4224
4487
|
import_input_otp.OTPInput,
|
|
4225
4488
|
__spreadValues({
|
|
4226
4489
|
"data-slot": "input-otp",
|
|
4227
4490
|
containerClassName: cn(
|
|
4228
|
-
"flex items-center gap-2 has-disabled:
|
|
4491
|
+
"flex items-center gap-2 has-disabled:text-text-disabled-default",
|
|
4229
4492
|
containerClassName
|
|
4230
4493
|
),
|
|
4231
4494
|
className: cn("disabled:cursor-not-allowed", className)
|
|
@@ -4234,7 +4497,7 @@ function InputOTP(_a) {
|
|
|
4234
4497
|
}
|
|
4235
4498
|
function InputOTPGroup(_a) {
|
|
4236
4499
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
4237
|
-
return /* @__PURE__ */ (0,
|
|
4500
|
+
return /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
|
|
4238
4501
|
"div",
|
|
4239
4502
|
__spreadValues({
|
|
4240
4503
|
"data-slot": "input-otp-group",
|
|
@@ -4251,9 +4514,9 @@ function InputOTPSlot(_a) {
|
|
|
4251
4514
|
"className"
|
|
4252
4515
|
]);
|
|
4253
4516
|
var _a2;
|
|
4254
|
-
const inputOTPContext =
|
|
4517
|
+
const inputOTPContext = React9.useContext(import_input_otp.OTPInputContext);
|
|
4255
4518
|
const { char, hasFakeCaret, isActive } = (_a2 = inputOTPContext == null ? void 0 : inputOTPContext.slots[index]) != null ? _a2 : {};
|
|
4256
|
-
return /* @__PURE__ */ (0,
|
|
4519
|
+
return /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(
|
|
4257
4520
|
"div",
|
|
4258
4521
|
__spreadProps(__spreadValues({
|
|
4259
4522
|
"data-slot": "input-otp-slot",
|
|
@@ -4265,20 +4528,20 @@ function InputOTPSlot(_a) {
|
|
|
4265
4528
|
}, props), {
|
|
4266
4529
|
children: [
|
|
4267
4530
|
char,
|
|
4268
|
-
hasFakeCaret && /* @__PURE__ */ (0,
|
|
4531
|
+
hasFakeCaret && /* @__PURE__ */ (0, import_jsx_runtime33.jsx)("div", { className: "pointer-events-none absolute inset-0 flex items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)("div", { className: "h-4 w-px animate-caret-blink bg-text-prominent-default duration-1000" }) })
|
|
4269
4532
|
]
|
|
4270
4533
|
})
|
|
4271
4534
|
);
|
|
4272
4535
|
}
|
|
4273
4536
|
function InputOTPSeparator(_a) {
|
|
4274
4537
|
var props = __objRest(_a, []);
|
|
4275
|
-
return /* @__PURE__ */ (0,
|
|
4538
|
+
return /* @__PURE__ */ (0, import_jsx_runtime33.jsx)("div", __spreadProps(__spreadValues({ "data-slot": "input-otp-separator", role: "separator" }, props), { children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(import_lucide_react15.MinusIcon, {}) }));
|
|
4276
4539
|
}
|
|
4277
4540
|
|
|
4278
4541
|
// components/ui/item.tsx
|
|
4279
4542
|
var import_class_variance_authority10 = require("class-variance-authority");
|
|
4280
4543
|
var import_radix_ui18 = require("radix-ui");
|
|
4281
|
-
var
|
|
4544
|
+
var import_jsx_runtime34 = require("react/jsx-runtime");
|
|
4282
4545
|
function ItemGroup(_a) {
|
|
4283
4546
|
var _b = _a, {
|
|
4284
4547
|
className,
|
|
@@ -4287,7 +4550,7 @@ function ItemGroup(_a) {
|
|
|
4287
4550
|
"className",
|
|
4288
4551
|
"divider"
|
|
4289
4552
|
]);
|
|
4290
|
-
return /* @__PURE__ */ (0,
|
|
4553
|
+
return /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
|
|
4291
4554
|
"div",
|
|
4292
4555
|
__spreadValues({
|
|
4293
4556
|
role: "list",
|
|
@@ -4320,7 +4583,7 @@ function ItemSeparator(_a) {
|
|
|
4320
4583
|
} = _b, props = __objRest(_b, [
|
|
4321
4584
|
"className"
|
|
4322
4585
|
]);
|
|
4323
|
-
return /* @__PURE__ */ (0,
|
|
4586
|
+
return /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
|
|
4324
4587
|
Separator,
|
|
4325
4588
|
__spreadValues({
|
|
4326
4589
|
"data-slot": "item-separator",
|
|
@@ -4362,7 +4625,7 @@ function Item(_a) {
|
|
|
4362
4625
|
"asChild"
|
|
4363
4626
|
]);
|
|
4364
4627
|
const Comp = asChild ? import_radix_ui18.Slot.Root : "div";
|
|
4365
|
-
return /* @__PURE__ */ (0,
|
|
4628
|
+
return /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
|
|
4366
4629
|
Comp,
|
|
4367
4630
|
__spreadValues({
|
|
4368
4631
|
"data-slot": "item",
|
|
@@ -4395,7 +4658,7 @@ function ItemMedia(_a) {
|
|
|
4395
4658
|
"className",
|
|
4396
4659
|
"variant"
|
|
4397
4660
|
]);
|
|
4398
|
-
return /* @__PURE__ */ (0,
|
|
4661
|
+
return /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
|
|
4399
4662
|
"div",
|
|
4400
4663
|
__spreadValues({
|
|
4401
4664
|
"data-slot": "item-media",
|
|
@@ -4406,7 +4669,7 @@ function ItemMedia(_a) {
|
|
|
4406
4669
|
}
|
|
4407
4670
|
function ItemContent(_a) {
|
|
4408
4671
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
4409
|
-
return /* @__PURE__ */ (0,
|
|
4672
|
+
return /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
|
|
4410
4673
|
"div",
|
|
4411
4674
|
__spreadValues({
|
|
4412
4675
|
"data-slot": "item-content",
|
|
@@ -4419,7 +4682,7 @@ function ItemContent(_a) {
|
|
|
4419
4682
|
}
|
|
4420
4683
|
function ItemTitle(_a) {
|
|
4421
4684
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
4422
|
-
return /* @__PURE__ */ (0,
|
|
4685
|
+
return /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
|
|
4423
4686
|
"div",
|
|
4424
4687
|
__spreadValues({
|
|
4425
4688
|
"data-slot": "item-title",
|
|
@@ -4432,7 +4695,7 @@ function ItemTitle(_a) {
|
|
|
4432
4695
|
}
|
|
4433
4696
|
function ItemDescription(_a) {
|
|
4434
4697
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
4435
|
-
return /* @__PURE__ */ (0,
|
|
4698
|
+
return /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
|
|
4436
4699
|
"p",
|
|
4437
4700
|
__spreadValues({
|
|
4438
4701
|
"data-slot": "item-description",
|
|
@@ -4446,7 +4709,7 @@ function ItemDescription(_a) {
|
|
|
4446
4709
|
}
|
|
4447
4710
|
function ItemActions(_a) {
|
|
4448
4711
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
4449
|
-
return /* @__PURE__ */ (0,
|
|
4712
|
+
return /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
|
|
4450
4713
|
"div",
|
|
4451
4714
|
__spreadValues({
|
|
4452
4715
|
"data-slot": "item-actions",
|
|
@@ -4456,7 +4719,7 @@ function ItemActions(_a) {
|
|
|
4456
4719
|
}
|
|
4457
4720
|
function ItemHeader(_a) {
|
|
4458
4721
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
4459
|
-
return /* @__PURE__ */ (0,
|
|
4722
|
+
return /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
|
|
4460
4723
|
"div",
|
|
4461
4724
|
__spreadValues({
|
|
4462
4725
|
"data-slot": "item-header",
|
|
@@ -4469,7 +4732,7 @@ function ItemHeader(_a) {
|
|
|
4469
4732
|
}
|
|
4470
4733
|
function ItemFooter(_a) {
|
|
4471
4734
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
4472
|
-
return /* @__PURE__ */ (0,
|
|
4735
|
+
return /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
|
|
4473
4736
|
"div",
|
|
4474
4737
|
__spreadValues({
|
|
4475
4738
|
"data-slot": "item-footer",
|
|
@@ -4484,7 +4747,7 @@ function ItemFooter(_a) {
|
|
|
4484
4747
|
// components/ui/link.tsx
|
|
4485
4748
|
var import_class_variance_authority11 = require("class-variance-authority");
|
|
4486
4749
|
var import_radix_ui19 = require("radix-ui");
|
|
4487
|
-
var
|
|
4750
|
+
var import_jsx_runtime35 = require("react/jsx-runtime");
|
|
4488
4751
|
var linkVariants = (0, import_class_variance_authority11.cva)(
|
|
4489
4752
|
[
|
|
4490
4753
|
"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",
|
|
@@ -4526,7 +4789,7 @@ function Link(_a) {
|
|
|
4526
4789
|
"asChild"
|
|
4527
4790
|
]);
|
|
4528
4791
|
const Comp = asChild ? import_radix_ui19.Slot.Root : "a";
|
|
4529
|
-
return /* @__PURE__ */ (0,
|
|
4792
|
+
return /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
|
|
4530
4793
|
Comp,
|
|
4531
4794
|
__spreadValues({
|
|
4532
4795
|
"data-slot": "link",
|
|
@@ -4538,16 +4801,16 @@ function Link(_a) {
|
|
|
4538
4801
|
}
|
|
4539
4802
|
|
|
4540
4803
|
// components/ui/menubar.tsx
|
|
4541
|
-
var
|
|
4804
|
+
var import_lucide_react16 = require("lucide-react");
|
|
4542
4805
|
var import_radix_ui20 = require("radix-ui");
|
|
4543
|
-
var
|
|
4806
|
+
var import_jsx_runtime36 = require("react/jsx-runtime");
|
|
4544
4807
|
function Menubar(_a) {
|
|
4545
4808
|
var _b = _a, {
|
|
4546
4809
|
className
|
|
4547
4810
|
} = _b, props = __objRest(_b, [
|
|
4548
4811
|
"className"
|
|
4549
4812
|
]);
|
|
4550
|
-
return /* @__PURE__ */ (0,
|
|
4813
|
+
return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
|
|
4551
4814
|
import_radix_ui20.Menubar.Root,
|
|
4552
4815
|
__spreadValues({
|
|
4553
4816
|
"data-slot": "menubar",
|
|
@@ -4560,19 +4823,19 @@ function Menubar(_a) {
|
|
|
4560
4823
|
}
|
|
4561
4824
|
function MenubarMenu(_a) {
|
|
4562
4825
|
var props = __objRest(_a, []);
|
|
4563
|
-
return /* @__PURE__ */ (0,
|
|
4826
|
+
return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(import_radix_ui20.Menubar.Menu, __spreadValues({ "data-slot": "menubar-menu" }, props));
|
|
4564
4827
|
}
|
|
4565
4828
|
function MenubarGroup(_a) {
|
|
4566
4829
|
var props = __objRest(_a, []);
|
|
4567
|
-
return /* @__PURE__ */ (0,
|
|
4830
|
+
return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(import_radix_ui20.Menubar.Group, __spreadValues({ "data-slot": "menubar-group" }, props));
|
|
4568
4831
|
}
|
|
4569
4832
|
function MenubarPortal(_a) {
|
|
4570
4833
|
var props = __objRest(_a, []);
|
|
4571
|
-
return /* @__PURE__ */ (0,
|
|
4834
|
+
return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(import_radix_ui20.Menubar.Portal, __spreadValues({ "data-slot": "menubar-portal" }, props));
|
|
4572
4835
|
}
|
|
4573
4836
|
function MenubarRadioGroup(_a) {
|
|
4574
4837
|
var props = __objRest(_a, []);
|
|
4575
|
-
return /* @__PURE__ */ (0,
|
|
4838
|
+
return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(import_radix_ui20.Menubar.RadioGroup, __spreadValues({ "data-slot": "menubar-radio-group" }, props));
|
|
4576
4839
|
}
|
|
4577
4840
|
function MenubarTrigger(_a) {
|
|
4578
4841
|
var _b = _a, {
|
|
@@ -4580,7 +4843,7 @@ function MenubarTrigger(_a) {
|
|
|
4580
4843
|
} = _b, props = __objRest(_b, [
|
|
4581
4844
|
"className"
|
|
4582
4845
|
]);
|
|
4583
|
-
return /* @__PURE__ */ (0,
|
|
4846
|
+
return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
|
|
4584
4847
|
import_radix_ui20.Menubar.Trigger,
|
|
4585
4848
|
__spreadValues({
|
|
4586
4849
|
"data-slot": "menubar-trigger",
|
|
@@ -4603,7 +4866,7 @@ function MenubarContent(_a) {
|
|
|
4603
4866
|
"alignOffset",
|
|
4604
4867
|
"sideOffset"
|
|
4605
4868
|
]);
|
|
4606
|
-
return /* @__PURE__ */ (0,
|
|
4869
|
+
return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(MenubarPortal, { children: /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
|
|
4607
4870
|
import_radix_ui20.Menubar.Content,
|
|
4608
4871
|
__spreadValues({
|
|
4609
4872
|
"data-slot": "menubar-content",
|
|
@@ -4627,14 +4890,14 @@ function MenubarItem(_a) {
|
|
|
4627
4890
|
"inset",
|
|
4628
4891
|
"variant"
|
|
4629
4892
|
]);
|
|
4630
|
-
return /* @__PURE__ */ (0,
|
|
4893
|
+
return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
|
|
4631
4894
|
import_radix_ui20.Menubar.Item,
|
|
4632
4895
|
__spreadValues({
|
|
4633
4896
|
"data-slot": "menubar-item",
|
|
4634
4897
|
"data-inset": inset,
|
|
4635
4898
|
"data-variant": variant,
|
|
4636
4899
|
className: cn(
|
|
4637
|
-
"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]:
|
|
4900
|
+
"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!",
|
|
4638
4901
|
className
|
|
4639
4902
|
)
|
|
4640
4903
|
}, props)
|
|
@@ -4650,18 +4913,18 @@ function MenubarCheckboxItem(_a) {
|
|
|
4650
4913
|
"children",
|
|
4651
4914
|
"checked"
|
|
4652
4915
|
]);
|
|
4653
|
-
return /* @__PURE__ */ (0,
|
|
4916
|
+
return /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)(
|
|
4654
4917
|
import_radix_ui20.Menubar.CheckboxItem,
|
|
4655
4918
|
__spreadProps(__spreadValues({
|
|
4656
4919
|
"data-slot": "menubar-checkbox-item",
|
|
4657
4920
|
className: cn(
|
|
4658
|
-
"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]:
|
|
4921
|
+
"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",
|
|
4659
4922
|
className
|
|
4660
4923
|
),
|
|
4661
4924
|
checked
|
|
4662
4925
|
}, props), {
|
|
4663
4926
|
children: [
|
|
4664
|
-
/* @__PURE__ */ (0,
|
|
4927
|
+
/* @__PURE__ */ (0, import_jsx_runtime36.jsx)("span", { className: "pointer-events-none absolute left-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(import_radix_ui20.Menubar.ItemIndicator, { children: /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(import_lucide_react16.CheckIcon, { className: "size-4" }) }) }),
|
|
4665
4928
|
children
|
|
4666
4929
|
]
|
|
4667
4930
|
})
|
|
@@ -4675,17 +4938,17 @@ function MenubarRadioItem(_a) {
|
|
|
4675
4938
|
"className",
|
|
4676
4939
|
"children"
|
|
4677
4940
|
]);
|
|
4678
|
-
return /* @__PURE__ */ (0,
|
|
4941
|
+
return /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)(
|
|
4679
4942
|
import_radix_ui20.Menubar.RadioItem,
|
|
4680
4943
|
__spreadProps(__spreadValues({
|
|
4681
4944
|
"data-slot": "menubar-radio-item",
|
|
4682
4945
|
className: cn(
|
|
4683
|
-
"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]:
|
|
4946
|
+
"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",
|
|
4684
4947
|
className
|
|
4685
4948
|
)
|
|
4686
4949
|
}, props), {
|
|
4687
4950
|
children: [
|
|
4688
|
-
/* @__PURE__ */ (0,
|
|
4951
|
+
/* @__PURE__ */ (0, import_jsx_runtime36.jsx)("span", { className: "pointer-events-none absolute left-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(import_radix_ui20.Menubar.ItemIndicator, { children: /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(import_lucide_react16.CircleIcon, { className: "size-2 fill-current" }) }) }),
|
|
4689
4952
|
children
|
|
4690
4953
|
]
|
|
4691
4954
|
})
|
|
@@ -4699,7 +4962,7 @@ function MenubarLabel(_a) {
|
|
|
4699
4962
|
"className",
|
|
4700
4963
|
"inset"
|
|
4701
4964
|
]);
|
|
4702
|
-
return /* @__PURE__ */ (0,
|
|
4965
|
+
return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
|
|
4703
4966
|
import_radix_ui20.Menubar.Label,
|
|
4704
4967
|
__spreadValues({
|
|
4705
4968
|
"data-slot": "menubar-label",
|
|
@@ -4717,7 +4980,7 @@ function MenubarSeparator(_a) {
|
|
|
4717
4980
|
} = _b, props = __objRest(_b, [
|
|
4718
4981
|
"className"
|
|
4719
4982
|
]);
|
|
4720
|
-
return /* @__PURE__ */ (0,
|
|
4983
|
+
return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
|
|
4721
4984
|
import_radix_ui20.Menubar.Separator,
|
|
4722
4985
|
__spreadValues({
|
|
4723
4986
|
"data-slot": "menubar-separator",
|
|
@@ -4731,7 +4994,7 @@ function MenubarShortcut(_a) {
|
|
|
4731
4994
|
} = _b, props = __objRest(_b, [
|
|
4732
4995
|
"className"
|
|
4733
4996
|
]);
|
|
4734
|
-
return /* @__PURE__ */ (0,
|
|
4997
|
+
return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
|
|
4735
4998
|
"span",
|
|
4736
4999
|
__spreadValues({
|
|
4737
5000
|
"data-slot": "menubar-shortcut",
|
|
@@ -4744,7 +5007,7 @@ function MenubarShortcut(_a) {
|
|
|
4744
5007
|
}
|
|
4745
5008
|
function MenubarSub(_a) {
|
|
4746
5009
|
var props = __objRest(_a, []);
|
|
4747
|
-
return /* @__PURE__ */ (0,
|
|
5010
|
+
return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(import_radix_ui20.Menubar.Sub, __spreadValues({ "data-slot": "menubar-sub" }, props));
|
|
4748
5011
|
}
|
|
4749
5012
|
function MenubarSubTrigger(_a) {
|
|
4750
5013
|
var _b = _a, {
|
|
@@ -4756,7 +5019,7 @@ function MenubarSubTrigger(_a) {
|
|
|
4756
5019
|
"inset",
|
|
4757
5020
|
"children"
|
|
4758
5021
|
]);
|
|
4759
|
-
return /* @__PURE__ */ (0,
|
|
5022
|
+
return /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)(
|
|
4760
5023
|
import_radix_ui20.Menubar.SubTrigger,
|
|
4761
5024
|
__spreadProps(__spreadValues({
|
|
4762
5025
|
"data-slot": "menubar-sub-trigger",
|
|
@@ -4768,7 +5031,7 @@ function MenubarSubTrigger(_a) {
|
|
|
4768
5031
|
}, props), {
|
|
4769
5032
|
children: [
|
|
4770
5033
|
children,
|
|
4771
|
-
/* @__PURE__ */ (0,
|
|
5034
|
+
/* @__PURE__ */ (0, import_jsx_runtime36.jsx)(import_lucide_react16.ChevronRightIcon, { className: "ml-auto" })
|
|
4772
5035
|
]
|
|
4773
5036
|
})
|
|
4774
5037
|
);
|
|
@@ -4779,7 +5042,7 @@ function MenubarSubContent(_a) {
|
|
|
4779
5042
|
} = _b, props = __objRest(_b, [
|
|
4780
5043
|
"className"
|
|
4781
5044
|
]);
|
|
4782
|
-
return /* @__PURE__ */ (0,
|
|
5045
|
+
return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
|
|
4783
5046
|
import_radix_ui20.Menubar.SubContent,
|
|
4784
5047
|
__spreadValues({
|
|
4785
5048
|
"data-slot": "menubar-sub-content",
|
|
@@ -4792,8 +5055,8 @@ function MenubarSubContent(_a) {
|
|
|
4792
5055
|
}
|
|
4793
5056
|
|
|
4794
5057
|
// components/ui/native-select.tsx
|
|
4795
|
-
var
|
|
4796
|
-
var
|
|
5058
|
+
var import_lucide_react17 = require("lucide-react");
|
|
5059
|
+
var import_jsx_runtime37 = require("react/jsx-runtime");
|
|
4797
5060
|
var sizeClasses = {
|
|
4798
5061
|
sm: "type-native-select-sm h-8 py-1",
|
|
4799
5062
|
md: "type-native-select-md h-10 py-2",
|
|
@@ -4809,27 +5072,27 @@ function NativeSelect(_a) {
|
|
|
4809
5072
|
]);
|
|
4810
5073
|
const fieldSize = useFieldSize();
|
|
4811
5074
|
const resolvedSize = size === "default" || size == null ? size == null ? fieldSize : "md" : size;
|
|
4812
|
-
return /* @__PURE__ */ (0,
|
|
5075
|
+
return /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(
|
|
4813
5076
|
"div",
|
|
4814
5077
|
{
|
|
4815
|
-
className: "group/native-select relative w-fit has-[select:disabled]:
|
|
5078
|
+
className: "group/native-select relative w-fit has-[select:disabled]:text-text-disabled-default",
|
|
4816
5079
|
"data-slot": "native-select-wrapper",
|
|
4817
5080
|
children: [
|
|
4818
|
-
/* @__PURE__ */ (0,
|
|
5081
|
+
/* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
|
|
4819
5082
|
"select",
|
|
4820
5083
|
__spreadValues({
|
|
4821
5084
|
"data-slot": "native-select",
|
|
4822
5085
|
"data-size": resolvedSize,
|
|
4823
5086
|
className: cn(
|
|
4824
|
-
"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",
|
|
5087
|
+
"w-full min-w-0 appearance-none rounded-xs border border-border-default-default bg-background-primary-surface px-3 pr-9 text-text-prominent-default transition-[color,box-shadow] outline-none selection:bg-background-brand-default selection:text-text-on-brand-static disabled:pointer-events-none disabled:cursor-not-allowed disabled:[background-image:linear-gradient(var(--background-disabled-default),var(--background-disabled-default))]",
|
|
4825
5088
|
"focus-visible:border-ring-focus-default focus-visible:ring-[3px] focus-visible:ring-ring-focus-soft",
|
|
4826
5089
|
sizeClasses[resolvedSize],
|
|
4827
5090
|
className
|
|
4828
5091
|
)
|
|
4829
5092
|
}, props)
|
|
4830
5093
|
),
|
|
4831
|
-
/* @__PURE__ */ (0,
|
|
4832
|
-
|
|
5094
|
+
/* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
|
|
5095
|
+
import_lucide_react17.ChevronDownIcon,
|
|
4833
5096
|
{
|
|
4834
5097
|
className: "pointer-events-none absolute top-1/2 right-3.5 size-4 -translate-y-1/2 text-icon-subtle-default select-none",
|
|
4835
5098
|
"aria-hidden": "true",
|
|
@@ -4842,7 +5105,7 @@ function NativeSelect(_a) {
|
|
|
4842
5105
|
}
|
|
4843
5106
|
function NativeSelectOption(_a) {
|
|
4844
5107
|
var props = __objRest(_a, []);
|
|
4845
|
-
return /* @__PURE__ */ (0,
|
|
5108
|
+
return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("option", __spreadValues({ "data-slot": "native-select-option" }, props));
|
|
4846
5109
|
}
|
|
4847
5110
|
function NativeSelectOptGroup(_a) {
|
|
4848
5111
|
var _b = _a, {
|
|
@@ -4850,7 +5113,7 @@ function NativeSelectOptGroup(_a) {
|
|
|
4850
5113
|
} = _b, props = __objRest(_b, [
|
|
4851
5114
|
"className"
|
|
4852
5115
|
]);
|
|
4853
|
-
return /* @__PURE__ */ (0,
|
|
5116
|
+
return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
|
|
4854
5117
|
"optgroup",
|
|
4855
5118
|
__spreadValues({
|
|
4856
5119
|
"data-slot": "native-select-optgroup",
|
|
@@ -4861,9 +5124,9 @@ function NativeSelectOptGroup(_a) {
|
|
|
4861
5124
|
|
|
4862
5125
|
// components/ui/navigation-menu.tsx
|
|
4863
5126
|
var import_class_variance_authority12 = require("class-variance-authority");
|
|
4864
|
-
var
|
|
5127
|
+
var import_lucide_react18 = require("lucide-react");
|
|
4865
5128
|
var import_radix_ui21 = require("radix-ui");
|
|
4866
|
-
var
|
|
5129
|
+
var import_jsx_runtime38 = require("react/jsx-runtime");
|
|
4867
5130
|
function NavigationMenu(_a) {
|
|
4868
5131
|
var _b = _a, {
|
|
4869
5132
|
className,
|
|
@@ -4874,7 +5137,7 @@ function NavigationMenu(_a) {
|
|
|
4874
5137
|
"children",
|
|
4875
5138
|
"viewport"
|
|
4876
5139
|
]);
|
|
4877
|
-
return /* @__PURE__ */ (0,
|
|
5140
|
+
return /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(
|
|
4878
5141
|
import_radix_ui21.NavigationMenu.Root,
|
|
4879
5142
|
__spreadProps(__spreadValues({
|
|
4880
5143
|
"data-slot": "navigation-menu",
|
|
@@ -4886,7 +5149,7 @@ function NavigationMenu(_a) {
|
|
|
4886
5149
|
}, props), {
|
|
4887
5150
|
children: [
|
|
4888
5151
|
children,
|
|
4889
|
-
viewport && /* @__PURE__ */ (0,
|
|
5152
|
+
viewport && /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(NavigationMenuViewport, {})
|
|
4890
5153
|
]
|
|
4891
5154
|
})
|
|
4892
5155
|
);
|
|
@@ -4897,7 +5160,7 @@ function NavigationMenuList(_a) {
|
|
|
4897
5160
|
} = _b, props = __objRest(_b, [
|
|
4898
5161
|
"className"
|
|
4899
5162
|
]);
|
|
4900
|
-
return /* @__PURE__ */ (0,
|
|
5163
|
+
return /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
|
|
4901
5164
|
import_radix_ui21.NavigationMenu.List,
|
|
4902
5165
|
__spreadValues({
|
|
4903
5166
|
"data-slot": "navigation-menu-list",
|
|
@@ -4914,7 +5177,7 @@ function NavigationMenuItem(_a) {
|
|
|
4914
5177
|
} = _b, props = __objRest(_b, [
|
|
4915
5178
|
"className"
|
|
4916
5179
|
]);
|
|
4917
|
-
return /* @__PURE__ */ (0,
|
|
5180
|
+
return /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
|
|
4918
5181
|
import_radix_ui21.NavigationMenu.Item,
|
|
4919
5182
|
__spreadValues({
|
|
4920
5183
|
"data-slot": "navigation-menu-item",
|
|
@@ -4923,7 +5186,7 @@ function NavigationMenuItem(_a) {
|
|
|
4923
5186
|
);
|
|
4924
5187
|
}
|
|
4925
5188
|
var navigationMenuTriggerStyle = (0, import_class_variance_authority12.cva)(
|
|
4926
|
-
"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:
|
|
5189
|
+
"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"
|
|
4927
5190
|
);
|
|
4928
5191
|
function NavigationMenuTrigger(_a) {
|
|
4929
5192
|
var _b = _a, {
|
|
@@ -4933,7 +5196,7 @@ function NavigationMenuTrigger(_a) {
|
|
|
4933
5196
|
"className",
|
|
4934
5197
|
"children"
|
|
4935
5198
|
]);
|
|
4936
|
-
return /* @__PURE__ */ (0,
|
|
5199
|
+
return /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(
|
|
4937
5200
|
import_radix_ui21.NavigationMenu.Trigger,
|
|
4938
5201
|
__spreadProps(__spreadValues({
|
|
4939
5202
|
"data-slot": "navigation-menu-trigger",
|
|
@@ -4942,8 +5205,8 @@ function NavigationMenuTrigger(_a) {
|
|
|
4942
5205
|
children: [
|
|
4943
5206
|
children,
|
|
4944
5207
|
" ",
|
|
4945
|
-
/* @__PURE__ */ (0,
|
|
4946
|
-
|
|
5208
|
+
/* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
|
|
5209
|
+
import_lucide_react18.ChevronDownIcon,
|
|
4947
5210
|
{
|
|
4948
5211
|
className: "relative top-[1px] ml-1 size-3 transition duration-slow group-data-[state=open]:rotate-180",
|
|
4949
5212
|
"aria-hidden": "true"
|
|
@@ -4959,7 +5222,7 @@ function NavigationMenuContent(_a) {
|
|
|
4959
5222
|
} = _b, props = __objRest(_b, [
|
|
4960
5223
|
"className"
|
|
4961
5224
|
]);
|
|
4962
|
-
return /* @__PURE__ */ (0,
|
|
5225
|
+
return /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
|
|
4963
5226
|
import_radix_ui21.NavigationMenu.Content,
|
|
4964
5227
|
__spreadValues({
|
|
4965
5228
|
"data-slot": "navigation-menu-content",
|
|
@@ -4977,13 +5240,13 @@ function NavigationMenuViewport(_a) {
|
|
|
4977
5240
|
} = _b, props = __objRest(_b, [
|
|
4978
5241
|
"className"
|
|
4979
5242
|
]);
|
|
4980
|
-
return /* @__PURE__ */ (0,
|
|
5243
|
+
return /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
|
|
4981
5244
|
"div",
|
|
4982
5245
|
{
|
|
4983
5246
|
className: cn(
|
|
4984
5247
|
"absolute top-full left-0 isolate z-50 flex justify-center"
|
|
4985
5248
|
),
|
|
4986
|
-
children: /* @__PURE__ */ (0,
|
|
5249
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
|
|
4987
5250
|
import_radix_ui21.NavigationMenu.Viewport,
|
|
4988
5251
|
__spreadValues({
|
|
4989
5252
|
"data-slot": "navigation-menu-viewport",
|
|
@@ -5002,7 +5265,7 @@ function NavigationMenuLink(_a) {
|
|
|
5002
5265
|
} = _b, props = __objRest(_b, [
|
|
5003
5266
|
"className"
|
|
5004
5267
|
]);
|
|
5005
|
-
return /* @__PURE__ */ (0,
|
|
5268
|
+
return /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
|
|
5006
5269
|
import_radix_ui21.NavigationMenu.Link,
|
|
5007
5270
|
__spreadValues({
|
|
5008
5271
|
"data-slot": "navigation-menu-link",
|
|
@@ -5019,7 +5282,7 @@ function NavigationMenuIndicator(_a) {
|
|
|
5019
5282
|
} = _b, props = __objRest(_b, [
|
|
5020
5283
|
"className"
|
|
5021
5284
|
]);
|
|
5022
|
-
return /* @__PURE__ */ (0,
|
|
5285
|
+
return /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
|
|
5023
5286
|
import_radix_ui21.NavigationMenu.Indicator,
|
|
5024
5287
|
__spreadProps(__spreadValues({
|
|
5025
5288
|
"data-slot": "navigation-menu-indicator",
|
|
@@ -5028,15 +5291,15 @@ function NavigationMenuIndicator(_a) {
|
|
|
5028
5291
|
className
|
|
5029
5292
|
)
|
|
5030
5293
|
}, props), {
|
|
5031
|
-
children: /* @__PURE__ */ (0,
|
|
5294
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("div", { className: "relative top-[60%] h-2 w-2 rotate-45 rounded-tl-sm bg-border-default-default" })
|
|
5032
5295
|
})
|
|
5033
5296
|
);
|
|
5034
5297
|
}
|
|
5035
5298
|
|
|
5036
5299
|
// components/ui/numpad.tsx
|
|
5037
|
-
var
|
|
5038
|
-
var
|
|
5039
|
-
var
|
|
5300
|
+
var React10 = __toESM(require("react"), 1);
|
|
5301
|
+
var import_lucide_react19 = require("lucide-react");
|
|
5302
|
+
var import_jsx_runtime39 = require("react/jsx-runtime");
|
|
5040
5303
|
var LONG_PRESS_MS = 600;
|
|
5041
5304
|
function Numpad(_a) {
|
|
5042
5305
|
var _b = _a, {
|
|
@@ -5052,8 +5315,8 @@ function Numpad(_a) {
|
|
|
5052
5315
|
"decimal",
|
|
5053
5316
|
"disabled"
|
|
5054
5317
|
]);
|
|
5055
|
-
const holdTimer =
|
|
5056
|
-
const longPressFired =
|
|
5318
|
+
const holdTimer = React10.useRef(null);
|
|
5319
|
+
const longPressFired = React10.useRef(false);
|
|
5057
5320
|
const startHold = () => {
|
|
5058
5321
|
longPressFired.current = false;
|
|
5059
5322
|
holdTimer.current = setTimeout(() => {
|
|
@@ -5065,7 +5328,7 @@ function Numpad(_a) {
|
|
|
5065
5328
|
if (holdTimer.current) clearTimeout(holdTimer.current);
|
|
5066
5329
|
holdTimer.current = null;
|
|
5067
5330
|
};
|
|
5068
|
-
|
|
5331
|
+
React10.useEffect(() => cancelHold, []);
|
|
5069
5332
|
const keys = [
|
|
5070
5333
|
"1",
|
|
5071
5334
|
"2",
|
|
@@ -5080,7 +5343,7 @@ function Numpad(_a) {
|
|
|
5080
5343
|
"0",
|
|
5081
5344
|
"backspace"
|
|
5082
5345
|
];
|
|
5083
|
-
return /* @__PURE__ */ (0,
|
|
5346
|
+
return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
|
|
5084
5347
|
"div",
|
|
5085
5348
|
__spreadProps(__spreadValues({
|
|
5086
5349
|
"data-slot": "numpad",
|
|
@@ -5088,12 +5351,12 @@ function Numpad(_a) {
|
|
|
5088
5351
|
"aria-label": "Number pad",
|
|
5089
5352
|
className: cn(
|
|
5090
5353
|
"grid w-full grid-cols-3 gap-1",
|
|
5091
|
-
disabled && "pointer-events-none
|
|
5354
|
+
disabled && "pointer-events-none [background-image:linear-gradient(var(--background-disabled-default),var(--background-disabled-default))] text-text-disabled-default",
|
|
5092
5355
|
className
|
|
5093
5356
|
)
|
|
5094
5357
|
}, props), {
|
|
5095
5358
|
children: keys.map(
|
|
5096
|
-
(key, i) => key === null ? /* @__PURE__ */ (0,
|
|
5359
|
+
(key, i) => key === null ? /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("span", { "aria-hidden": true }, `empty-${i}`) : /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
|
|
5097
5360
|
"button",
|
|
5098
5361
|
{
|
|
5099
5362
|
type: "button",
|
|
@@ -5118,7 +5381,7 @@ function Numpad(_a) {
|
|
|
5118
5381
|
}
|
|
5119
5382
|
onKeyPress == null ? void 0 : onKeyPress(key);
|
|
5120
5383
|
},
|
|
5121
|
-
children: key === "backspace" ? /* @__PURE__ */ (0,
|
|
5384
|
+
children: key === "backspace" ? /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(import_lucide_react19.Delete, { className: "size-5.5" }) : key
|
|
5122
5385
|
},
|
|
5123
5386
|
key
|
|
5124
5387
|
)
|
|
@@ -5127,98 +5390,6 @@ function Numpad(_a) {
|
|
|
5127
5390
|
);
|
|
5128
5391
|
}
|
|
5129
5392
|
|
|
5130
|
-
// components/ui/pagination.tsx
|
|
5131
|
-
var import_lucide_react19 = require("lucide-react");
|
|
5132
|
-
var import_jsx_runtime39 = require("react/jsx-runtime");
|
|
5133
|
-
function Pagination(_a) {
|
|
5134
|
-
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
5135
|
-
return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
|
|
5136
|
-
"nav",
|
|
5137
|
-
__spreadValues({
|
|
5138
|
-
role: "navigation",
|
|
5139
|
-
"aria-label": "pagination",
|
|
5140
|
-
"data-slot": "pagination",
|
|
5141
|
-
className: cn("mx-auto flex w-full justify-center", className)
|
|
5142
|
-
}, props)
|
|
5143
|
-
);
|
|
5144
|
-
}
|
|
5145
|
-
function PaginationContent(_a) {
|
|
5146
|
-
var _b = _a, {
|
|
5147
|
-
className
|
|
5148
|
-
} = _b, props = __objRest(_b, [
|
|
5149
|
-
"className"
|
|
5150
|
-
]);
|
|
5151
|
-
return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
|
|
5152
|
-
"ul",
|
|
5153
|
-
__spreadValues({
|
|
5154
|
-
"data-slot": "pagination-content",
|
|
5155
|
-
className: cn("flex flex-row items-center gap-1", className)
|
|
5156
|
-
}, props)
|
|
5157
|
-
);
|
|
5158
|
-
}
|
|
5159
|
-
function PaginationItem(_a) {
|
|
5160
|
-
var props = __objRest(_a, []);
|
|
5161
|
-
return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("li", __spreadValues({ "data-slot": "pagination-item" }, props));
|
|
5162
|
-
}
|
|
5163
|
-
function PaginationLink(_a) {
|
|
5164
|
-
var _b = _a, {
|
|
5165
|
-
className,
|
|
5166
|
-
isActive
|
|
5167
|
-
} = _b, props = __objRest(_b, [
|
|
5168
|
-
"className",
|
|
5169
|
-
"isActive"
|
|
5170
|
-
]);
|
|
5171
|
-
return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
|
|
5172
|
-
"a",
|
|
5173
|
-
__spreadValues({
|
|
5174
|
-
"aria-current": isActive ? "page" : void 0,
|
|
5175
|
-
"data-slot": "pagination-link",
|
|
5176
|
-
"data-active": isActive,
|
|
5177
|
-
className: cn(
|
|
5178
|
-
"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",
|
|
5179
|
-
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",
|
|
5180
|
-
className
|
|
5181
|
-
)
|
|
5182
|
-
}, props)
|
|
5183
|
-
);
|
|
5184
|
-
}
|
|
5185
|
-
function PaginationPrevious(_a) {
|
|
5186
|
-
var _b = _a, {
|
|
5187
|
-
className
|
|
5188
|
-
} = _b, props = __objRest(_b, [
|
|
5189
|
-
"className"
|
|
5190
|
-
]);
|
|
5191
|
-
return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(Button, { asChild: true, variant: "tertiary", size: "icon-md", className: cn(className), children: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("a", __spreadProps(__spreadValues({ "aria-label": "Go to previous page", "data-slot": "pagination-link" }, props), { children: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(import_lucide_react19.ChevronLeftIcon, { className: "size-5" }) })) });
|
|
5192
|
-
}
|
|
5193
|
-
function PaginationNext(_a) {
|
|
5194
|
-
var _b = _a, {
|
|
5195
|
-
className
|
|
5196
|
-
} = _b, props = __objRest(_b, [
|
|
5197
|
-
"className"
|
|
5198
|
-
]);
|
|
5199
|
-
return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(Button, { asChild: true, variant: "tertiary", size: "icon-md", className: cn(className), children: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("a", __spreadProps(__spreadValues({ "aria-label": "Go to next page", "data-slot": "pagination-link" }, props), { children: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(import_lucide_react19.ChevronRightIcon, { className: "size-5" }) })) });
|
|
5200
|
-
}
|
|
5201
|
-
function PaginationEllipsis(_a) {
|
|
5202
|
-
var _b = _a, {
|
|
5203
|
-
className
|
|
5204
|
-
} = _b, props = __objRest(_b, [
|
|
5205
|
-
"className"
|
|
5206
|
-
]);
|
|
5207
|
-
return /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)(
|
|
5208
|
-
"span",
|
|
5209
|
-
__spreadProps(__spreadValues({
|
|
5210
|
-
"aria-hidden": true,
|
|
5211
|
-
"data-slot": "pagination-ellipsis",
|
|
5212
|
-
className: cn("flex size-10 items-center justify-center", className)
|
|
5213
|
-
}, props), {
|
|
5214
|
-
children: [
|
|
5215
|
-
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)(import_lucide_react19.MoreHorizontalIcon, { className: "size-4" }),
|
|
5216
|
-
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)("span", { className: "sr-only", children: "More pages" })
|
|
5217
|
-
]
|
|
5218
|
-
})
|
|
5219
|
-
);
|
|
5220
|
-
}
|
|
5221
|
-
|
|
5222
5393
|
// components/ui/popover.tsx
|
|
5223
5394
|
var import_radix_ui22 = require("radix-ui");
|
|
5224
5395
|
var import_jsx_runtime40 = require("react/jsx-runtime");
|
|
@@ -5293,7 +5464,7 @@ function PopoverDescription(_a) {
|
|
|
5293
5464
|
}
|
|
5294
5465
|
|
|
5295
5466
|
// components/ui/progress.tsx
|
|
5296
|
-
var
|
|
5467
|
+
var React11 = __toESM(require("react"), 1);
|
|
5297
5468
|
var import_radix_ui23 = require("radix-ui");
|
|
5298
5469
|
var import_jsx_runtime41 = require("react/jsx-runtime");
|
|
5299
5470
|
var BAR_HEIGHTS = {
|
|
@@ -5338,11 +5509,11 @@ function Progress(_a) {
|
|
|
5338
5509
|
"onTimerEnd",
|
|
5339
5510
|
"children"
|
|
5340
5511
|
]);
|
|
5341
|
-
const [timerPct, setTimerPct] =
|
|
5512
|
+
const [timerPct, setTimerPct] = React11.useState(
|
|
5342
5513
|
timer != null ? direction === "up" ? 0 : 100 : null
|
|
5343
5514
|
);
|
|
5344
|
-
const endedRef =
|
|
5345
|
-
|
|
5515
|
+
const endedRef = React11.useRef(false);
|
|
5516
|
+
React11.useEffect(() => {
|
|
5346
5517
|
if (timer == null) {
|
|
5347
5518
|
setTimerPct(null);
|
|
5348
5519
|
return;
|
|
@@ -5635,7 +5806,7 @@ function RadioGroupItem(_a) {
|
|
|
5635
5806
|
__spreadProps(__spreadValues({
|
|
5636
5807
|
"data-slot": "radio-group-item",
|
|
5637
5808
|
className: cn(
|
|
5638
|
-
"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:
|
|
5809
|
+
"aspect-square size-4 shrink-0 rounded-full border border-border-default-default bg-background-primary-surface transition-[color,box-shadow] outline-none focus-visible:border-ring-focus-default focus-visible:ring-[3px] focus-visible:ring-ring-focus-strong data-[state=checked]:border-border-brand-selected disabled:cursor-not-allowed disabled:border-border-default-default disabled:text-text-disabled-default aria-invalid:border-border-error-default aria-invalid:ring-ring-error-soft",
|
|
5639
5810
|
className
|
|
5640
5811
|
)
|
|
5641
5812
|
}, props), {
|
|
@@ -5892,17 +6063,17 @@ function SheetDescription(_a) {
|
|
|
5892
6063
|
}
|
|
5893
6064
|
|
|
5894
6065
|
// components/ui/sidebar.tsx
|
|
5895
|
-
var
|
|
6066
|
+
var React14 = __toESM(require("react"), 1);
|
|
5896
6067
|
var import_class_variance_authority13 = require("class-variance-authority");
|
|
5897
6068
|
var import_lucide_react24 = require("lucide-react");
|
|
5898
6069
|
var import_radix_ui28 = require("radix-ui");
|
|
5899
6070
|
|
|
5900
6071
|
// hooks/use-mobile.ts
|
|
5901
|
-
var
|
|
6072
|
+
var React12 = __toESM(require("react"), 1);
|
|
5902
6073
|
var MOBILE_BREAKPOINT = 768;
|
|
5903
6074
|
function useIsMobile() {
|
|
5904
|
-
const [isMobile, setIsMobile] =
|
|
5905
|
-
|
|
6075
|
+
const [isMobile, setIsMobile] = React12.useState(void 0);
|
|
6076
|
+
React12.useEffect(() => {
|
|
5906
6077
|
const mql = window.matchMedia(`(max-width: ${MOBILE_BREAKPOINT - 1}px)`);
|
|
5907
6078
|
const onChange = () => {
|
|
5908
6079
|
setIsMobile(window.innerWidth < MOBILE_BREAKPOINT);
|
|
@@ -5932,10 +6103,10 @@ function Skeleton(_a) {
|
|
|
5932
6103
|
}
|
|
5933
6104
|
|
|
5934
6105
|
// components/ui/tooltip.tsx
|
|
5935
|
-
var
|
|
6106
|
+
var React13 = __toESM(require("react"), 1);
|
|
5936
6107
|
var import_radix_ui27 = require("radix-ui");
|
|
5937
6108
|
var import_jsx_runtime48 = require("react/jsx-runtime");
|
|
5938
|
-
var TooltipModeContext =
|
|
6109
|
+
var TooltipModeContext = React13.createContext("tooltip");
|
|
5939
6110
|
function TooltipProvider(_a) {
|
|
5940
6111
|
var _b = _a, {
|
|
5941
6112
|
delayDuration = 0
|
|
@@ -5969,7 +6140,7 @@ function TooltipTrigger(_a) {
|
|
|
5969
6140
|
} = _b, props = __objRest(_b, [
|
|
5970
6141
|
"children"
|
|
5971
6142
|
]);
|
|
5972
|
-
const mode =
|
|
6143
|
+
const mode = React13.useContext(TooltipModeContext);
|
|
5973
6144
|
if (mode === "drawer") {
|
|
5974
6145
|
return /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(DrawerTrigger, __spreadProps(__spreadValues({ "data-slot": "tooltip-trigger" }, props), { children }));
|
|
5975
6146
|
}
|
|
@@ -5991,7 +6162,7 @@ function TooltipContent(_a) {
|
|
|
5991
6162
|
"closeLabel",
|
|
5992
6163
|
"children"
|
|
5993
6164
|
]);
|
|
5994
|
-
const mode =
|
|
6165
|
+
const mode = React13.useContext(TooltipModeContext);
|
|
5995
6166
|
if (mode === "drawer") {
|
|
5996
6167
|
return /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)(DrawerContent, { "data-slot": "tooltip-content", "data-variant": variant, children: [
|
|
5997
6168
|
/* @__PURE__ */ (0, import_jsx_runtime48.jsx)(DrawerHeader, { children: /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(DrawerTitle, { children: title }) }),
|
|
@@ -6029,9 +6200,9 @@ var SIDEBAR_WIDTH = "16rem";
|
|
|
6029
6200
|
var SIDEBAR_WIDTH_MOBILE = "18rem";
|
|
6030
6201
|
var SIDEBAR_WIDTH_ICON = "3rem";
|
|
6031
6202
|
var SIDEBAR_KEYBOARD_SHORTCUT = "b";
|
|
6032
|
-
var SidebarContext =
|
|
6203
|
+
var SidebarContext = React14.createContext(null);
|
|
6033
6204
|
function useSidebar() {
|
|
6034
|
-
const context =
|
|
6205
|
+
const context = React14.useContext(SidebarContext);
|
|
6035
6206
|
if (!context) {
|
|
6036
6207
|
throw new Error("useSidebar must be used within a SidebarProvider.");
|
|
6037
6208
|
}
|
|
@@ -6054,10 +6225,10 @@ function SidebarProvider(_a) {
|
|
|
6054
6225
|
"children"
|
|
6055
6226
|
]);
|
|
6056
6227
|
const isMobile = useIsMobile();
|
|
6057
|
-
const [openMobile, setOpenMobile] =
|
|
6058
|
-
const [_open, _setOpen] =
|
|
6228
|
+
const [openMobile, setOpenMobile] = React14.useState(false);
|
|
6229
|
+
const [_open, _setOpen] = React14.useState(defaultOpen);
|
|
6059
6230
|
const open = openProp != null ? openProp : _open;
|
|
6060
|
-
const setOpen =
|
|
6231
|
+
const setOpen = React14.useCallback(
|
|
6061
6232
|
(value) => {
|
|
6062
6233
|
const openState = typeof value === "function" ? value(open) : value;
|
|
6063
6234
|
if (setOpenProp) {
|
|
@@ -6069,10 +6240,10 @@ function SidebarProvider(_a) {
|
|
|
6069
6240
|
},
|
|
6070
6241
|
[setOpenProp, open]
|
|
6071
6242
|
);
|
|
6072
|
-
const toggleSidebar =
|
|
6243
|
+
const toggleSidebar = React14.useCallback(() => {
|
|
6073
6244
|
return isMobile ? setOpenMobile((open2) => !open2) : setOpen((open2) => !open2);
|
|
6074
6245
|
}, [isMobile, setOpen, setOpenMobile]);
|
|
6075
|
-
|
|
6246
|
+
React14.useEffect(() => {
|
|
6076
6247
|
const handleKeyDown = (event) => {
|
|
6077
6248
|
if (event.key === SIDEBAR_KEYBOARD_SHORTCUT && (event.metaKey || event.ctrlKey)) {
|
|
6078
6249
|
event.preventDefault();
|
|
@@ -6083,7 +6254,7 @@ function SidebarProvider(_a) {
|
|
|
6083
6254
|
return () => window.removeEventListener("keydown", handleKeyDown);
|
|
6084
6255
|
}, [toggleSidebar]);
|
|
6085
6256
|
const state = open ? "expanded" : "collapsed";
|
|
6086
|
-
const contextValue =
|
|
6257
|
+
const contextValue = React14.useMemo(
|
|
6087
6258
|
() => ({
|
|
6088
6259
|
state,
|
|
6089
6260
|
open,
|
|
@@ -6449,7 +6620,7 @@ function SidebarMenuItem(_a) {
|
|
|
6449
6620
|
);
|
|
6450
6621
|
}
|
|
6451
6622
|
var sidebarMenuButtonVariants = (0, import_class_variance_authority13.cva)(
|
|
6452
|
-
"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:
|
|
6623
|
+
"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",
|
|
6453
6624
|
{
|
|
6454
6625
|
variants: {
|
|
6455
6626
|
variant: {
|
|
@@ -6658,7 +6829,7 @@ function SidebarMenuSubButton(_a) {
|
|
|
6658
6829
|
"data-size": size,
|
|
6659
6830
|
"data-active": isActive,
|
|
6660
6831
|
className: cn(
|
|
6661
|
-
"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:
|
|
6832
|
+
"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",
|
|
6662
6833
|
"data-[active=true]:bg-background-brand-selected data-[active=true]:text-text-brand-selected",
|
|
6663
6834
|
size === "sm" && "type-sidebar-menu-sm",
|
|
6664
6835
|
size === "md" && "type-sidebar-menu",
|
|
@@ -6670,7 +6841,7 @@ function SidebarMenuSubButton(_a) {
|
|
|
6670
6841
|
}
|
|
6671
6842
|
|
|
6672
6843
|
// components/ui/slider.tsx
|
|
6673
|
-
var
|
|
6844
|
+
var React15 = __toESM(require("react"), 1);
|
|
6674
6845
|
var import_radix_ui29 = require("radix-ui");
|
|
6675
6846
|
var import_jsx_runtime50 = require("react/jsx-runtime");
|
|
6676
6847
|
function Slider(_a) {
|
|
@@ -6687,7 +6858,7 @@ function Slider(_a) {
|
|
|
6687
6858
|
"min",
|
|
6688
6859
|
"max"
|
|
6689
6860
|
]);
|
|
6690
|
-
const _values =
|
|
6861
|
+
const _values = React15.useMemo(
|
|
6691
6862
|
() => Array.isArray(value) ? value : Array.isArray(defaultValue) ? defaultValue : [min, max],
|
|
6692
6863
|
[value, defaultValue, min, max]
|
|
6693
6864
|
);
|
|
@@ -6700,7 +6871,7 @@ function Slider(_a) {
|
|
|
6700
6871
|
min,
|
|
6701
6872
|
max,
|
|
6702
6873
|
className: cn(
|
|
6703
|
-
"relative flex w-full touch-none items-center select-none data-[disabled]:
|
|
6874
|
+
"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",
|
|
6704
6875
|
className
|
|
6705
6876
|
)
|
|
6706
6877
|
}, props), {
|
|
@@ -6739,6 +6910,7 @@ function Slider(_a) {
|
|
|
6739
6910
|
}
|
|
6740
6911
|
|
|
6741
6912
|
// components/ui/toast.tsx
|
|
6913
|
+
var React16 = __toESM(require("react"), 1);
|
|
6742
6914
|
var import_lucide_react25 = require("lucide-react");
|
|
6743
6915
|
var import_next_themes = require("next-themes");
|
|
6744
6916
|
var import_sonner = require("sonner");
|
|
@@ -6779,9 +6951,174 @@ var Toaster = (_a) => {
|
|
|
6779
6951
|
}, props)
|
|
6780
6952
|
);
|
|
6781
6953
|
};
|
|
6954
|
+
var RESULT_SNACKBAR_EXIT_MS = 350;
|
|
6955
|
+
var RESULT_SNACKBAR_ICON_DELAY_MS = 150;
|
|
6956
|
+
function ResultSnackbar(_a) {
|
|
6957
|
+
var _b = _a, {
|
|
6958
|
+
outcome,
|
|
6959
|
+
amount,
|
|
6960
|
+
currency,
|
|
6961
|
+
contractLabel,
|
|
6962
|
+
duration,
|
|
6963
|
+
icon,
|
|
6964
|
+
amountValue,
|
|
6965
|
+
placement = "top",
|
|
6966
|
+
durationMs = 2500,
|
|
6967
|
+
onDismiss,
|
|
6968
|
+
announcement,
|
|
6969
|
+
className
|
|
6970
|
+
} = _b, props = __objRest(_b, [
|
|
6971
|
+
"outcome",
|
|
6972
|
+
"amount",
|
|
6973
|
+
"currency",
|
|
6974
|
+
"contractLabel",
|
|
6975
|
+
"duration",
|
|
6976
|
+
"icon",
|
|
6977
|
+
"amountValue",
|
|
6978
|
+
"placement",
|
|
6979
|
+
"durationMs",
|
|
6980
|
+
"onDismiss",
|
|
6981
|
+
"announcement",
|
|
6982
|
+
"className"
|
|
6983
|
+
]);
|
|
6984
|
+
const isWin = outcome === "win";
|
|
6985
|
+
const [leaving, setLeaving] = React16.useState(false);
|
|
6986
|
+
const reduced = usePrefersReducedMotion();
|
|
6987
|
+
const onDismissRef = React16.useRef(onDismiss);
|
|
6988
|
+
React16.useEffect(() => {
|
|
6989
|
+
onDismissRef.current = onDismiss;
|
|
6990
|
+
}, [onDismiss]);
|
|
6991
|
+
const firedRef = React16.useRef(false);
|
|
6992
|
+
const finish = React16.useCallback(() => {
|
|
6993
|
+
var _a2;
|
|
6994
|
+
if (firedRef.current) return;
|
|
6995
|
+
firedRef.current = true;
|
|
6996
|
+
(_a2 = onDismissRef.current) == null ? void 0 : _a2.call(onDismissRef);
|
|
6997
|
+
}, []);
|
|
6998
|
+
React16.useEffect(() => {
|
|
6999
|
+
const leave = window.setTimeout(() => setLeaving(true), durationMs);
|
|
7000
|
+
return () => window.clearTimeout(leave);
|
|
7001
|
+
}, [durationMs]);
|
|
7002
|
+
React16.useEffect(() => {
|
|
7003
|
+
if (!leaving) return;
|
|
7004
|
+
const done = window.setTimeout(finish, reduced ? 0 : RESULT_SNACKBAR_EXIT_MS);
|
|
7005
|
+
return () => window.clearTimeout(done);
|
|
7006
|
+
}, [leaving, finish, reduced]);
|
|
7007
|
+
const [display, setDisplay] = React16.useState(null);
|
|
7008
|
+
React16.useEffect(() => {
|
|
7009
|
+
if (amountValue === void 0 || reduced || !Number.isFinite(amountValue)) {
|
|
7010
|
+
setDisplay(null);
|
|
7011
|
+
return;
|
|
7012
|
+
}
|
|
7013
|
+
const total = isWin ? 500 : 250;
|
|
7014
|
+
const sign = isWin ? "+" : "\u2212";
|
|
7015
|
+
const startedAt = performance.now();
|
|
7016
|
+
let frame = 0;
|
|
7017
|
+
const step = (now) => {
|
|
7018
|
+
const t = Math.min(1, (now - startedAt) / total);
|
|
7019
|
+
const eased = 1 - Math.pow(1 - t, 3);
|
|
7020
|
+
if (t < 1) {
|
|
7021
|
+
setDisplay(`${sign}${(amountValue * eased).toFixed(2)}`);
|
|
7022
|
+
frame = requestAnimationFrame(step);
|
|
7023
|
+
} else {
|
|
7024
|
+
setDisplay(null);
|
|
7025
|
+
}
|
|
7026
|
+
};
|
|
7027
|
+
frame = requestAnimationFrame(step);
|
|
7028
|
+
return () => cancelAnimationFrame(frame);
|
|
7029
|
+
}, [amountValue, isWin, reduced]);
|
|
7030
|
+
const spoken = announcement != null ? announcement : `${isWin ? "Won" : "Lost"} ${amount} ${currency}. ${contractLabel}, ${duration}.`;
|
|
7031
|
+
const enterOut = leaving ? "out" : "in";
|
|
7032
|
+
const motionName = `result-snackbar-${enterOut}-${placement}`;
|
|
7033
|
+
return /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)(
|
|
7034
|
+
"div",
|
|
7035
|
+
__spreadProps(__spreadValues({
|
|
7036
|
+
role: "status",
|
|
7037
|
+
"aria-live": "polite",
|
|
7038
|
+
"data-slot": "result-snackbar",
|
|
7039
|
+
"data-outcome": outcome,
|
|
7040
|
+
"data-leaving": leaving || void 0,
|
|
7041
|
+
className: cn(
|
|
7042
|
+
// Floating chrome, the same surface family as Bottom Navigation —
|
|
7043
|
+
// it floats over live chart content, so it frosts what is behind it
|
|
7044
|
+
// and carries the sanctioned chrome lift.
|
|
7045
|
+
"pointer-events-none absolute z-40 flex w-max items-center gap-3 overflow-hidden",
|
|
7046
|
+
"rounded-2xl border border-(--border-chrome-default) bg-(--background-chrome-default)",
|
|
7047
|
+
"[backdrop-filter:blur(20px)_saturate(1.4)]",
|
|
7048
|
+
"[box-shadow:var(--shadow-chrome-default),inset_0_1px_0_var(--chrome-highlight-default)]",
|
|
7049
|
+
"py-2 pr-4 pl-2 whitespace-nowrap",
|
|
7050
|
+
className
|
|
7051
|
+
),
|
|
7052
|
+
style: {
|
|
7053
|
+
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`
|
|
7054
|
+
}
|
|
7055
|
+
}, props), {
|
|
7056
|
+
children: [
|
|
7057
|
+
/* @__PURE__ */ (0, import_jsx_runtime51.jsx)("span", { className: "sr-only", children: spoken }),
|
|
7058
|
+
icon ? /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
|
|
7059
|
+
"span",
|
|
7060
|
+
{
|
|
7061
|
+
"data-slot": "result-snackbar-icon",
|
|
7062
|
+
className: "flex size-10 flex-none items-center justify-center",
|
|
7063
|
+
style: reduced ? void 0 : {
|
|
7064
|
+
animation: `result-snackbar-icon-${outcome} var(--motion-pop) var(--primitive-ease-overshoot) ${RESULT_SNACKBAR_ICON_DELAY_MS}ms both`
|
|
7065
|
+
},
|
|
7066
|
+
children: icon
|
|
7067
|
+
}
|
|
7068
|
+
) : null,
|
|
7069
|
+
/* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("span", { "aria-hidden": true, className: "flex min-w-max flex-col gap-0.5", children: [
|
|
7070
|
+
/* @__PURE__ */ (0, import_jsx_runtime51.jsxs)(
|
|
7071
|
+
"span",
|
|
7072
|
+
{
|
|
7073
|
+
className: cn(
|
|
7074
|
+
"type-result-snackbar-amount min-w-max",
|
|
7075
|
+
isWin ? "text-text-success-default" : "text-text-error-default"
|
|
7076
|
+
),
|
|
7077
|
+
children: [
|
|
7078
|
+
display != null ? display : amount,
|
|
7079
|
+
" ",
|
|
7080
|
+
/* @__PURE__ */ (0, import_jsx_runtime51.jsx)("span", { className: "type-result-snackbar-currency", children: currency })
|
|
7081
|
+
]
|
|
7082
|
+
}
|
|
7083
|
+
),
|
|
7084
|
+
/* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("span", { className: "type-result-snackbar-terms min-w-max text-text-subtle-default", children: [
|
|
7085
|
+
contractLabel,
|
|
7086
|
+
" \xB7 ",
|
|
7087
|
+
duration
|
|
7088
|
+
] })
|
|
7089
|
+
] }),
|
|
7090
|
+
/* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
|
|
7091
|
+
"span",
|
|
7092
|
+
{
|
|
7093
|
+
"aria-hidden": true,
|
|
7094
|
+
"data-slot": "result-snackbar-drain",
|
|
7095
|
+
className: cn(
|
|
7096
|
+
"absolute bottom-0 left-0 h-1 w-full origin-left",
|
|
7097
|
+
isWin ? "bg-background-success-solid" : "bg-background-error-solid"
|
|
7098
|
+
),
|
|
7099
|
+
style: reduced ? { transform: "scaleX(0)" } : {
|
|
7100
|
+
animation: `result-snackbar-drain ${durationMs}ms var(--ease-linear) forwards`
|
|
7101
|
+
}
|
|
7102
|
+
}
|
|
7103
|
+
)
|
|
7104
|
+
]
|
|
7105
|
+
})
|
|
7106
|
+
);
|
|
7107
|
+
}
|
|
7108
|
+
function usePrefersReducedMotion() {
|
|
7109
|
+
const [reduced, setReduced] = React16.useState(false);
|
|
7110
|
+
React16.useEffect(() => {
|
|
7111
|
+
const query = window.matchMedia("(prefers-reduced-motion: reduce)");
|
|
7112
|
+
setReduced(query.matches);
|
|
7113
|
+
const onChange = (event) => setReduced(event.matches);
|
|
7114
|
+
query.addEventListener("change", onChange);
|
|
7115
|
+
return () => query.removeEventListener("change", onChange);
|
|
7116
|
+
}, []);
|
|
7117
|
+
return reduced;
|
|
7118
|
+
}
|
|
6782
7119
|
|
|
6783
7120
|
// components/ui/slide-to-confirm.tsx
|
|
6784
|
-
var
|
|
7121
|
+
var React17 = __toESM(require("react"), 1);
|
|
6785
7122
|
var import_lucide_react26 = require("lucide-react");
|
|
6786
7123
|
var import_jsx_runtime52 = require("react/jsx-runtime");
|
|
6787
7124
|
var CONFIRM_AT = 0.9;
|
|
@@ -6803,21 +7140,21 @@ function SlideToConfirm(_a) {
|
|
|
6803
7140
|
"confirmed",
|
|
6804
7141
|
"className"
|
|
6805
7142
|
]);
|
|
6806
|
-
const trackRef =
|
|
6807
|
-
const [dragX, setDragX] =
|
|
6808
|
-
const [dragging, setDragging] =
|
|
6809
|
-
const [trackWidth, setTrackWidth] =
|
|
6810
|
-
const [internalConfirmed, setInternalConfirmed] =
|
|
7143
|
+
const trackRef = React17.useRef(null);
|
|
7144
|
+
const [dragX, setDragX] = React17.useState(0);
|
|
7145
|
+
const [dragging, setDragging] = React17.useState(false);
|
|
7146
|
+
const [trackWidth, setTrackWidth] = React17.useState(0);
|
|
7147
|
+
const [internalConfirmed, setInternalConfirmed] = React17.useState(false);
|
|
6811
7148
|
const confirmed = controlledConfirmed != null ? controlledConfirmed : internalConfirmed;
|
|
6812
|
-
const firedRef =
|
|
6813
|
-
|
|
7149
|
+
const firedRef = React17.useRef(false);
|
|
7150
|
+
React17.useEffect(() => {
|
|
6814
7151
|
if (controlledConfirmed === false) {
|
|
6815
7152
|
setInternalConfirmed(false);
|
|
6816
7153
|
setDragX(0);
|
|
6817
7154
|
firedRef.current = false;
|
|
6818
7155
|
}
|
|
6819
7156
|
}, [controlledConfirmed]);
|
|
6820
|
-
|
|
7157
|
+
React17.useEffect(() => {
|
|
6821
7158
|
const track = trackRef.current;
|
|
6822
7159
|
if (!track) return;
|
|
6823
7160
|
const ro = new ResizeObserver(() => setTrackWidth(track.clientWidth));
|
|
@@ -6879,7 +7216,7 @@ function SlideToConfirm(_a) {
|
|
|
6879
7216
|
onKeyDown: handleKeyDown,
|
|
6880
7217
|
className: cn(
|
|
6881
7218
|
"relative h-14 w-full touch-none overflow-hidden rounded-full bg-background-secondary-surface select-none",
|
|
6882
|
-
disabled && "pointer-events-none
|
|
7219
|
+
disabled && "pointer-events-none [background-image:linear-gradient(var(--background-disabled-default),var(--background-disabled-default))] text-text-disabled-default",
|
|
6883
7220
|
"outline-none focus-visible:ring-[3px] focus-visible:ring-ring-focus-strong",
|
|
6884
7221
|
className
|
|
6885
7222
|
)
|
|
@@ -6957,7 +7294,7 @@ function SlideToConfirm(_a) {
|
|
|
6957
7294
|
}
|
|
6958
7295
|
|
|
6959
7296
|
// components/ui/stepper.tsx
|
|
6960
|
-
var
|
|
7297
|
+
var React18 = __toESM(require("react"), 1);
|
|
6961
7298
|
var import_lucide_react27 = require("lucide-react");
|
|
6962
7299
|
var import_jsx_runtime53 = require("react/jsx-runtime");
|
|
6963
7300
|
function clamp(value, min, max) {
|
|
@@ -6987,16 +7324,16 @@ function Stepper({
|
|
|
6987
7324
|
"aria-label": ariaLabel
|
|
6988
7325
|
}) {
|
|
6989
7326
|
const isControlled = controlledValue !== void 0;
|
|
6990
|
-
const [internalValue, setInternalValue] =
|
|
7327
|
+
const [internalValue, setInternalValue] = React18.useState(
|
|
6991
7328
|
clamp(defaultValue, min, max)
|
|
6992
7329
|
);
|
|
6993
7330
|
const currentValue = isControlled ? controlledValue : internalValue;
|
|
6994
7331
|
const decimalPlaces = getDecimalPlaces(step);
|
|
6995
|
-
const [displayString, setDisplayString] =
|
|
7332
|
+
const [displayString, setDisplayString] = React18.useState(
|
|
6996
7333
|
formatValue(currentValue, decimalPlaces)
|
|
6997
7334
|
);
|
|
6998
|
-
const [isFocused, setIsFocused] =
|
|
6999
|
-
|
|
7335
|
+
const [isFocused, setIsFocused] = React18.useState(false);
|
|
7336
|
+
React18.useEffect(() => {
|
|
7000
7337
|
if (!isFocused) {
|
|
7001
7338
|
setDisplayString(formatValue(currentValue, decimalPlaces));
|
|
7002
7339
|
}
|
|
@@ -7126,10 +7463,10 @@ function Stepper({
|
|
|
7126
7463
|
}
|
|
7127
7464
|
|
|
7128
7465
|
// components/ui/steps.tsx
|
|
7129
|
-
var
|
|
7466
|
+
var React19 = __toESM(require("react"), 1);
|
|
7130
7467
|
var import_lucide_react28 = require("lucide-react");
|
|
7131
7468
|
var import_jsx_runtime54 = require("react/jsx-runtime");
|
|
7132
|
-
var StepsContext =
|
|
7469
|
+
var StepsContext = React19.createContext({ shape: "circle", orientation: "horizontal", size: "md" });
|
|
7133
7470
|
function Steps(_a) {
|
|
7134
7471
|
var _b = _a, {
|
|
7135
7472
|
shape = "circle",
|
|
@@ -7144,7 +7481,7 @@ function Steps(_a) {
|
|
|
7144
7481
|
"className",
|
|
7145
7482
|
"children"
|
|
7146
7483
|
]);
|
|
7147
|
-
const steps =
|
|
7484
|
+
const steps = React19.Children.toArray(children);
|
|
7148
7485
|
return /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(StepsContext.Provider, { value: { shape, orientation, size }, children: /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
|
|
7149
7486
|
"ol",
|
|
7150
7487
|
__spreadProps(__spreadValues({
|
|
@@ -7159,7 +7496,7 @@ function Steps(_a) {
|
|
|
7159
7496
|
)
|
|
7160
7497
|
}, props), {
|
|
7161
7498
|
children: steps.map(
|
|
7162
|
-
(child, index) =>
|
|
7499
|
+
(child, index) => React19.isValidElement(child) ? React19.cloneElement(child, {
|
|
7163
7500
|
index: index + 1,
|
|
7164
7501
|
isFirst: index === 0,
|
|
7165
7502
|
isLast: index === steps.length - 1
|
|
@@ -7190,7 +7527,7 @@ function Step(_a) {
|
|
|
7190
7527
|
"isLast",
|
|
7191
7528
|
"className"
|
|
7192
7529
|
]);
|
|
7193
|
-
const { shape, orientation, size } =
|
|
7530
|
+
const { shape, orientation, size } = React19.useContext(StepsContext);
|
|
7194
7531
|
const horizontal = orientation === "horizontal";
|
|
7195
7532
|
const sm = size === "sm";
|
|
7196
7533
|
const indicator = /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
|
|
@@ -7347,7 +7684,7 @@ function Switch(_a) {
|
|
|
7347
7684
|
"data-slot": "switch",
|
|
7348
7685
|
"data-size": size,
|
|
7349
7686
|
className: cn(
|
|
7350
|
-
"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:
|
|
7687
|
+
"peer group/switch inline-flex shrink-0 items-center rounded-full border border-transparent p-[3px] transition-all outline-none focus-visible:border-ring-focus-default focus-visible:ring-[3px] focus-visible:ring-ring-focus-strong disabled:cursor-not-allowed disabled: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",
|
|
7351
7688
|
className
|
|
7352
7689
|
)
|
|
7353
7690
|
}, props), {
|
|
@@ -7549,7 +7886,7 @@ function TabsTrigger(_a) {
|
|
|
7549
7886
|
"data-slot": "tabs-trigger",
|
|
7550
7887
|
"data-icon-position": iconPosition,
|
|
7551
7888
|
className: cn(
|
|
7552
|
-
"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:
|
|
7889
|
+
"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",
|
|
7553
7890
|
"group-data-[size=sm]/tabs-list:gap-1 group-data-[size=sm]/tabs-list:rounded-sm group-data-[size=sm]/tabs-list:px-2",
|
|
7554
7891
|
"group-data-[size=lg]/tabs-list:gap-2 group-data-[size=lg]/tabs-list:rounded-lg group-data-[size=lg]/tabs-list:px-4",
|
|
7555
7892
|
"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",
|
|
@@ -7583,7 +7920,7 @@ var import_class_variance_authority15 = require("class-variance-authority");
|
|
|
7583
7920
|
var import_radix_ui32 = require("radix-ui");
|
|
7584
7921
|
var import_jsx_runtime58 = require("react/jsx-runtime");
|
|
7585
7922
|
var toggleVariants = (0, import_class_variance_authority15.cva)(
|
|
7586
|
-
"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:
|
|
7923
|
+
"type-toggle inline-flex items-center justify-center gap-2 rounded-md border border-border-default-default bg-background-primary-surface text-text-prominent-default whitespace-nowrap transition-[color,background-color,border-color,box-shadow] outline-none hover:bg-background-secondary-surface active:bg-background-secondary-wash focus-visible:border-ring-focus-default focus-visible:ring-[3px] focus-visible:ring-ring-focus-strong disabled:pointer-events-none disabled: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",
|
|
7587
7924
|
{
|
|
7588
7925
|
variants: {
|
|
7589
7926
|
size: {
|
|
@@ -7615,10 +7952,10 @@ function Toggle(_a) {
|
|
|
7615
7952
|
}
|
|
7616
7953
|
|
|
7617
7954
|
// components/ui/toggle-group.tsx
|
|
7618
|
-
var
|
|
7955
|
+
var React20 = __toESM(require("react"), 1);
|
|
7619
7956
|
var import_radix_ui33 = require("radix-ui");
|
|
7620
7957
|
var import_jsx_runtime59 = require("react/jsx-runtime");
|
|
7621
|
-
var ToggleGroupContext =
|
|
7958
|
+
var ToggleGroupContext = React20.createContext({
|
|
7622
7959
|
size: "default",
|
|
7623
7960
|
spacing: 0
|
|
7624
7961
|
});
|
|
@@ -7660,7 +7997,7 @@ function ToggleGroupItem(_a) {
|
|
|
7660
7997
|
"children",
|
|
7661
7998
|
"size"
|
|
7662
7999
|
]);
|
|
7663
|
-
const context =
|
|
8000
|
+
const context = React20.useContext(ToggleGroupContext);
|
|
7664
8001
|
return /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(
|
|
7665
8002
|
import_radix_ui33.ToggleGroup.Item,
|
|
7666
8003
|
__spreadProps(__spreadValues({
|
|
@@ -7962,7 +8299,7 @@ function TaglinePill({
|
|
|
7962
8299
|
}
|
|
7963
8300
|
|
|
7964
8301
|
// components/blocks/auth-block.tsx
|
|
7965
|
-
var
|
|
8302
|
+
var React21 = __toESM(require("react"), 1);
|
|
7966
8303
|
var import_jsx_runtime64 = require("react/jsx-runtime");
|
|
7967
8304
|
function AuthBlock({
|
|
7968
8305
|
mode,
|
|
@@ -7978,7 +8315,7 @@ function AuthBlock({
|
|
|
7978
8315
|
const ctaText = mode === "sign-in" ? "Sign in" : "Sign up";
|
|
7979
8316
|
const footerPrompt = mode === "sign-in" ? "Don't have an account?" : "Already have an account?";
|
|
7980
8317
|
const footerLinkLabel = mode === "sign-in" ? "Sign up" : "Log in";
|
|
7981
|
-
const [email, setEmail] =
|
|
8318
|
+
const [email, setEmail] = React21.useState("");
|
|
7982
8319
|
return /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)("div", { className: "flex flex-col items-center gap-6 w-full", children: [
|
|
7983
8320
|
/* @__PURE__ */ (0, import_jsx_runtime64.jsxs)("div", { className: "flex items-center gap-2", children: [
|
|
7984
8321
|
/* @__PURE__ */ (0, import_jsx_runtime64.jsx)("img", { src: logoSrc, alt: wordmark, className: "size-8 object-contain" }),
|
|
@@ -8046,12 +8383,12 @@ function ProviderButton({ provider }) {
|
|
|
8046
8383
|
}
|
|
8047
8384
|
|
|
8048
8385
|
// components/blocks/navbar-block.tsx
|
|
8049
|
-
var
|
|
8386
|
+
var React22 = __toESM(require("react"), 1);
|
|
8050
8387
|
var import_lucide_react32 = require("lucide-react");
|
|
8051
8388
|
var import_jsx_runtime65 = require("react/jsx-runtime");
|
|
8052
8389
|
function NavBarBlock({ brand, links, signIn, signUp }) {
|
|
8053
8390
|
var _a, _b, _c, _d;
|
|
8054
|
-
const [mobileMenuOpen, setMobileMenuOpen] =
|
|
8391
|
+
const [mobileMenuOpen, setMobileMenuOpen] = React22.useState(false);
|
|
8055
8392
|
return /* @__PURE__ */ (0, import_jsx_runtime65.jsx)("div", { className: "w-full border border-border-subtle rounded-md overflow-hidden", children: /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("nav", { className: "bg-prominent", children: [
|
|
8056
8393
|
/* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("div", { className: "flex items-center justify-between px-layout-margin-inline py-3", children: [
|
|
8057
8394
|
/* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("div", { className: "flex items-center gap-6", children: [
|
|
@@ -8214,7 +8551,7 @@ function DefaultEmptyState({ onViewHistory }) {
|
|
|
8214
8551
|
}
|
|
8215
8552
|
|
|
8216
8553
|
// components/blocks/game-loading-block.tsx
|
|
8217
|
-
var
|
|
8554
|
+
var React23 = __toESM(require("react"), 1);
|
|
8218
8555
|
var import_jsx_runtime67 = require("react/jsx-runtime");
|
|
8219
8556
|
function useSmoothProgress({
|
|
8220
8557
|
checkpoints,
|
|
@@ -8225,19 +8562,19 @@ function useSmoothProgress({
|
|
|
8225
8562
|
readyLabel = "Ready"
|
|
8226
8563
|
}) {
|
|
8227
8564
|
var _a, _b;
|
|
8228
|
-
const [progress, setProgress] =
|
|
8229
|
-
const [delayed, setDelayed] =
|
|
8230
|
-
const checkpointsRef =
|
|
8231
|
-
const reachedRef =
|
|
8232
|
-
const doneRef =
|
|
8233
|
-
|
|
8565
|
+
const [progress, setProgress] = React23.useState(0);
|
|
8566
|
+
const [delayed, setDelayed] = React23.useState(false);
|
|
8567
|
+
const checkpointsRef = React23.useRef(checkpoints);
|
|
8568
|
+
const reachedRef = React23.useRef(reached);
|
|
8569
|
+
const doneRef = React23.useRef(done);
|
|
8570
|
+
React23.useEffect(() => {
|
|
8234
8571
|
checkpointsRef.current = checkpoints;
|
|
8235
8572
|
reachedRef.current = reached;
|
|
8236
8573
|
doneRef.current = done;
|
|
8237
8574
|
});
|
|
8238
|
-
const progressRef =
|
|
8239
|
-
const lastAdvanceRef =
|
|
8240
|
-
|
|
8575
|
+
const progressRef = React23.useRef(0);
|
|
8576
|
+
const lastAdvanceRef = React23.useRef(0);
|
|
8577
|
+
React23.useEffect(() => {
|
|
8241
8578
|
let raf = 0;
|
|
8242
8579
|
let last = 0;
|
|
8243
8580
|
const tick = (ts) => {
|
|
@@ -8291,14 +8628,14 @@ function GameLoadingBlock({
|
|
|
8291
8628
|
backgroundImageUrl,
|
|
8292
8629
|
className
|
|
8293
8630
|
}) {
|
|
8294
|
-
const [go, setGo] =
|
|
8295
|
-
const [reduced, setReduced] =
|
|
8296
|
-
|
|
8631
|
+
const [go, setGo] = React23.useState(false);
|
|
8632
|
+
const [reduced, setReduced] = React23.useState(false);
|
|
8633
|
+
React23.useEffect(() => {
|
|
8297
8634
|
if (typeof window !== "undefined" && typeof window.matchMedia === "function") {
|
|
8298
8635
|
setReduced(window.matchMedia("(prefers-reduced-motion: reduce)").matches);
|
|
8299
8636
|
}
|
|
8300
8637
|
}, []);
|
|
8301
|
-
|
|
8638
|
+
React23.useEffect(() => {
|
|
8302
8639
|
if (!exiting) return;
|
|
8303
8640
|
const raf = requestAnimationFrame(() => setGo(true));
|
|
8304
8641
|
const timer = setTimeout(() => onExitEnd == null ? void 0 : onExitEnd(), reduced ? 240 : 520);
|
|
@@ -8405,6 +8742,7 @@ function GameLoadingBlock({
|
|
|
8405
8742
|
CardTitle,
|
|
8406
8743
|
Carousel,
|
|
8407
8744
|
CarouselContent,
|
|
8745
|
+
CarouselDots,
|
|
8408
8746
|
CarouselItem,
|
|
8409
8747
|
CarouselNext,
|
|
8410
8748
|
CarouselPrevious,
|
|
@@ -8547,7 +8885,9 @@ function GameLoadingBlock({
|
|
|
8547
8885
|
Numpad,
|
|
8548
8886
|
OpenPositionsBlock,
|
|
8549
8887
|
Pagination,
|
|
8888
|
+
PaginationBar,
|
|
8550
8889
|
PaginationContent,
|
|
8890
|
+
PaginationDots,
|
|
8551
8891
|
PaginationEllipsis,
|
|
8552
8892
|
PaginationItem,
|
|
8553
8893
|
PaginationLink,
|
|
@@ -8569,6 +8909,7 @@ function GameLoadingBlock({
|
|
|
8569
8909
|
ResizablePanelGroup,
|
|
8570
8910
|
ResultBlock,
|
|
8571
8911
|
ResultDialog,
|
|
8912
|
+
ResultSnackbar,
|
|
8572
8913
|
ScrollArea,
|
|
8573
8914
|
ScrollBar,
|
|
8574
8915
|
SectionMessage,
|