@evinvest/uikit 0.10.0 → 0.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -4,6 +4,9 @@
4
4
  import { clsx } from "clsx";
5
5
  import { twMerge } from "tailwind-merge";
6
6
  function cn(...inputs) {
7
+ if (inputs.length === 2 && typeof inputs[0] === "string" && !inputs[1]) {
8
+ return inputs[0];
9
+ }
7
10
  return twMerge(clsx(inputs));
8
11
  }
9
12
 
@@ -330,11 +333,11 @@ import "react";
330
333
  // src/generated/alert.ts
331
334
  var ALERT_BASE = "relative w-full rounded-lg border px-4 py-3 text-sm grid has-[>svg]:grid-cols-[calc(var(--spacing)*4)_1fr] grid-cols-[0_1fr] has-[>svg]:gap-x-3 gap-y-0.5 items-start [&>svg]:size-4 [&>svg]:translate-y-0.5 [&>svg]:text-current";
332
335
  var alertVariants = {
333
- "default": "bg-card text-card-foreground",
334
- "destructive": "text-destructive bg-card [&>svg]:text-current *:data-[slot=alert-description]:text-destructive/90"
336
+ "default": "bg-card text-ink",
337
+ "destructive": "text-accent-error bg-card [&>svg]:text-current *:data-[slot=alert-description]:text-accent-error/90"
335
338
  };
336
339
  var ALERT_TITLE = "col-start-2 line-clamp-1 min-h-4 font-medium tracking-tight";
337
- var ALERT_DESCRIPTION = "text-muted-foreground col-start-2 grid justify-items-start gap-1 text-sm [&_p]:leading-relaxed";
340
+ var ALERT_DESCRIPTION = "text-ink-soft col-start-2 grid justify-items-start gap-1 text-sm [&_p]:leading-relaxed";
338
341
 
339
342
  // src/components/alert.tsx
340
343
  import { jsx } from "react/jsx-runtime";
@@ -431,13 +434,13 @@ function AvatarFallback({
431
434
  import "react";
432
435
 
433
436
  // src/generated/badge.ts
434
- var BADGE_BASE = "inline-flex items-center justify-center rounded-md border px-2 py-0.5 text-xs font-medium w-fit whitespace-nowrap shrink-0 gap-1 overflow-hidden [&>svg]:size-3 [&>svg]:pointer-events-none transition-[color,box-shadow] focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 aria-invalid:border-destructive";
437
+ var BADGE_BASE = "inline-flex items-center justify-center rounded-md border px-2 py-0.5 text-xs font-medium w-fit whitespace-nowrap shrink-0 gap-1 overflow-hidden [&>svg]:size-3 [&>svg]:pointer-events-none transition-[color,box-shadow] focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-accent-error/20 aria-invalid:border-accent-error";
435
438
  var badgeVariants = {
436
- "default": "border-transparent bg-primary text-primary-foreground [a&]:hover:bg-primary/90",
437
- "secondary": "border-transparent bg-secondary text-secondary-foreground [a&]:hover:bg-secondary/90",
438
- "destructive": "border-transparent bg-destructive text-white [a&]:hover:bg-destructive/90 focus-visible:ring-destructive/20",
439
- "outline": "text-foreground [a&]:hover:bg-accent [a&]:hover:text-accent-foreground",
440
- "success": "border-transparent bg-main-accent-t2/20 text-main-accent-t2"
439
+ "default": "border-transparent bg-primary text-on-primary [a&]:hover:bg-primary/90",
440
+ "secondary": "border-transparent bg-secondary text-on-secondary [a&]:hover:bg-secondary/90",
441
+ "destructive": "border-transparent bg-accent-error text-on-accent-error [a&]:hover:bg-accent-error/90 focus-visible:ring-accent-error/20",
442
+ "outline": "text-ink [a&]:hover:bg-hover [a&]:hover:text-ink",
443
+ "success": "border-transparent bg-positive/20 text-positive"
441
444
  };
442
445
 
443
446
  // src/components/badge.tsx
@@ -463,10 +466,10 @@ function Badge({
463
466
  import "react";
464
467
 
465
468
  // src/generated/breadcrumb.ts
466
- var BREADCRUMB_LIST = "text-muted-foreground flex flex-wrap items-center gap-1.5 text-sm break-words sm:gap-2.5";
469
+ var BREADCRUMB_LIST = "text-ink-soft flex flex-wrap items-center gap-1.5 text-sm break-words sm:gap-2.5";
467
470
  var BREADCRUMB_ITEM = "inline-flex items-center gap-1.5";
468
- var BREADCRUMB_LINK = "hover:text-foreground transition-colors";
469
- var BREADCRUMB_PAGE = "text-foreground font-normal";
471
+ var BREADCRUMB_LINK = "hover:text-ink transition-colors";
472
+ var BREADCRUMB_PAGE = "text-ink font-normal";
470
473
  var BREADCRUMB_SEPARATOR = "[&>svg]:size-3.5";
471
474
  var BREADCRUMB_ELLIPSIS = "flex size-9 items-center justify-center";
472
475
 
@@ -587,22 +590,26 @@ function BreadcrumbEllipsis({
587
590
  import "react";
588
591
 
589
592
  // src/generated/button.ts
590
- var BUTTON_BASE = "inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all cursor-pointer disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 aria-invalid:border-destructive";
593
+ var BUTTON_BASE = "inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-[var(--control-radius)] text-sm font-medium transition-all cursor-pointer disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-accent-error/20 aria-invalid:border-accent-error";
591
594
  var buttonVariantClasses = {
592
- "default": "bg-primary text-primary-foreground hover:bg-primary/90",
593
- "secondary": "bg-secondary text-secondary-foreground hover:bg-secondary/80",
594
- "outline": "border bg-transparent shadow-xs hover:bg-accent hover:text-accent-foreground",
595
- "ghost": "hover:bg-accent hover:text-accent-foreground",
596
- "destructive": "bg-destructive text-white hover:bg-destructive/90 focus-visible:ring-destructive/20",
595
+ "default": "bg-primary text-on-primary hover:bg-primary/90",
596
+ "secondary": "bg-secondary text-on-secondary hover:bg-secondary/80",
597
+ "outline": "border bg-transparent shadow-xs hover:bg-hover hover:text-ink",
598
+ "ghost": "hover:bg-hover hover:text-ink",
599
+ "destructive": "bg-accent-error text-on-accent-error hover:bg-accent-error/90 focus-visible:ring-accent-error/20",
597
600
  "link": "text-primary underline-offset-4 hover:underline"
598
601
  };
599
602
  var buttonSizeClasses = {
600
- "default": "h-9 px-4 py-2 has-[>svg]:px-3",
601
- "sm": "h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5",
602
- "lg": "h-10 rounded-md px-6 has-[>svg]:px-4",
603
+ "default": "h-9 px-4 py-[var(--control-py)] has-[>svg]:px-3",
604
+ "xs": "h-7 gap-1 px-2 text-xs has-[>svg]:px-1.5",
605
+ "sm": "h-8 gap-1.5 px-3 has-[>svg]:px-2.5",
606
+ "lg": "h-10 px-6 has-[>svg]:px-4",
607
+ "xl": "px-[var(--control-px)] py-[var(--control-py)] text-[length:var(--control-text)]",
603
608
  "icon": "h-9 aspect-square px-0",
609
+ "icon-xs": "h-7 aspect-square px-0",
604
610
  "icon-sm": "h-8 aspect-square px-0",
605
- "icon-lg": "h-10 aspect-square px-0"
611
+ "icon-lg": "h-10 aspect-square px-0",
612
+ "icon-xl": "aspect-square p-[var(--control-py)]"
606
613
  };
607
614
 
608
615
  // src/components/button.tsx
@@ -619,13 +626,15 @@ function Button({
619
626
  variant = "default",
620
627
  size = "default",
621
628
  asChild = false,
629
+ href,
622
630
  ...props
623
631
  }) {
624
- const Comp = asChild ? Slot : "button";
632
+ const Comp = asChild ? Slot : href !== void 0 ? "a" : "button";
625
633
  return /* @__PURE__ */ jsx5(
626
634
  Comp,
627
635
  {
628
636
  "data-slot": "button",
637
+ href,
629
638
  className: cn(buttonVariants({ variant, size }), className),
630
639
  ...props
631
640
  }
@@ -696,10 +705,10 @@ function ButtonGroupSeparator({
696
705
  import "react";
697
706
 
698
707
  // src/generated/card.ts
699
- var CARD = "bg-card text-card-foreground flex flex-col gap-6 rounded-xl border py-6 shadow-sm";
708
+ var CARD = "bg-card text-ink flex flex-col gap-6 rounded-xl border py-6 shadow-sm";
700
709
  var CARD_HEADER = "@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-2 px-6 has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-6";
701
710
  var CARD_TITLE = "leading-none font-semibold";
702
- var CARD_DESCRIPTION = "text-muted-foreground text-sm";
711
+ var CARD_DESCRIPTION = "text-ink-soft text-sm";
703
712
  var CARD_ACTION = "col-start-2 row-span-2 row-start-1 self-start justify-self-end";
704
713
  var CARD_CONTENT = "px-6";
705
714
  var CARD_FOOTER = "flex items-center px-6 [.border-t]:pt-6";
@@ -792,10 +801,10 @@ var EMPTY_HEADER = "flex max-w-sm flex-col items-center gap-2 text-center";
792
801
  var EMPTY_MEDIA_BASE = "flex shrink-0 items-center justify-center mb-2 [&_svg]:pointer-events-none [&_svg]:shrink-0";
793
802
  var emptyMediaVariants = {
794
803
  "default": "bg-transparent",
795
- "icon": "bg-muted text-foreground flex size-10 shrink-0 items-center justify-center rounded-lg [&_svg:not([class*='size-'])]:size-6"
804
+ "icon": "bg-muted text-ink flex size-10 shrink-0 items-center justify-center rounded-lg [&_svg:not([class*='size-'])]:size-6"
796
805
  };
797
806
  var EMPTY_TITLE = "text-lg font-medium tracking-tight";
798
- var EMPTY_DESCRIPTION = "text-muted-foreground [&>a:hover]:text-primary text-sm/relaxed [&>a]:underline [&>a]:underline-offset-4";
807
+ var EMPTY_DESCRIPTION = "text-ink-soft [&>a:hover]:text-primary text-sm/relaxed [&>a]:underline [&>a]:underline-offset-4";
799
808
  var EMPTY_CONTENT = "flex w-full max-w-sm min-w-0 flex-col items-center gap-4 text-sm text-balance";
800
809
 
801
810
  // src/components/empty.tsx
@@ -887,7 +896,7 @@ function Label({ className, ...props }) {
887
896
  }
888
897
 
889
898
  // src/generated/field.ts
890
- var FIELD_BASE = "group/field flex w-full gap-3 data-[invalid=true]:text-destructive";
899
+ var FIELD_BASE = "group/field flex w-full gap-3 data-[invalid=true]:text-accent-error";
891
900
  var fieldOrientation = {
892
901
  "vertical": "flex-col [&>*]:w-full [&>.sr-only]:w-auto",
893
902
  "horizontal": "flex-row items-center [&>[data-slot=field-label]]:flex-auto has-[>[data-slot=field-content]]:items-start has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radio]]:mt-px",
@@ -899,11 +908,11 @@ var FIELD_GROUP = "group/field-group @container/field-group flex w-full flex-col
899
908
  var FIELD_CONTENT = "group/field-content flex flex-1 flex-col gap-1.5 leading-snug";
900
909
  var FIELD_LABEL = "group/field-label peer/field-label flex w-fit gap-2 leading-snug group-data-[disabled=true]/field:opacity-50 has-[>[data-slot=field]]:w-full has-[>[data-slot=field]]:flex-col has-[>[data-slot=field]]:rounded-md has-[>[data-slot=field]]:border [&>*]:data-[slot=field]:p-4 has-data-[state=checked]:bg-primary/5 has-data-[state=checked]:border-primary";
901
910
  var FIELD_TITLE = "flex w-fit items-center gap-2 text-sm leading-snug font-medium group-data-[disabled=true]/field:opacity-50";
902
- var FIELD_DESCRIPTION = "text-muted-foreground text-sm leading-normal font-normal group-has-[[data-orientation=horizontal]]/field:text-balance last:mt-0 nth-last-2:-mt-1 [[data-variant=legend]+&]:-mt-1.5 [&>a:hover]:text-primary [&>a]:underline [&>a]:underline-offset-4";
911
+ var FIELD_DESCRIPTION = "text-ink-soft text-sm leading-normal font-normal group-has-[[data-orientation=horizontal]]/field:text-balance last:mt-0 nth-last-2:-mt-1 [[data-variant=legend]+&]:-mt-1.5 [&>a:hover]:text-primary [&>a]:underline [&>a]:underline-offset-4";
903
912
  var FIELD_SEPARATOR = "relative -my-2 h-5 text-sm group-data-[variant=outline]/field-group:-mb-2";
904
913
  var FIELD_SEPARATOR_LINE = "absolute inset-0 top-1/2 shrink-0 bg-border h-px w-full";
905
- var FIELD_SEPARATOR_CONTENT = "bg-background text-muted-foreground relative mx-auto block w-fit px-2";
906
- var FIELD_ERROR = "text-destructive text-sm font-normal";
914
+ var FIELD_SEPARATOR_CONTENT = "bg-background text-ink-soft relative mx-auto block w-fit px-2";
915
+ var FIELD_ERROR = "text-accent-error text-sm font-normal";
907
916
 
908
917
  // src/components/field.tsx
909
918
  import { jsx as jsx10, jsxs as jsxs2 } from "react/jsx-runtime";
@@ -1062,7 +1071,7 @@ function FieldError({
1062
1071
  // src/components/section-descriptor.tsx
1063
1072
  import "react";
1064
1073
  import { Fragment, jsx as jsx11, jsxs as jsxs3 } from "react/jsx-runtime";
1065
- var SECTION_DESCRIPTOR = "flex flex-col gap-2 rounded-lg border bg-accent p-4 text-left";
1074
+ var SECTION_DESCRIPTOR = "flex flex-col gap-2 rounded-lg border bg-hover p-4 text-left";
1066
1075
  function InfoGlyph({ className }) {
1067
1076
  return /* @__PURE__ */ jsxs3(
1068
1077
  "svg",
@@ -1093,7 +1102,7 @@ function SectionDescriptor({
1093
1102
  ...props
1094
1103
  }) {
1095
1104
  const titleContent = /* @__PURE__ */ jsxs3(Fragment, { children: [
1096
- icon && /* @__PURE__ */ jsx11(InfoGlyph, { className: "text-main-accent-t1" }),
1105
+ icon && /* @__PURE__ */ jsx11(InfoGlyph, { className: "text-accent-debug" }),
1097
1106
  /* @__PURE__ */ jsx11("span", { children: title })
1098
1107
  ] });
1099
1108
  if (collapsible) {
@@ -1144,7 +1153,7 @@ function SectionDescriptor({
1144
1153
  }
1145
1154
 
1146
1155
  // src/components/footer.tsx
1147
- import * as React24 from "react";
1156
+ import * as React23 from "react";
1148
1157
 
1149
1158
  // src/components/container.tsx
1150
1159
  import "react";
@@ -1165,73 +1174,23 @@ function Container({ className, ...props }) {
1165
1174
  );
1166
1175
  }
1167
1176
 
1168
- // src/components/logo.tsx
1169
- import "react";
1170
- import { jsx as jsx13 } from "react/jsx-runtime";
1171
- var LOGO_DATA_URI = "data:image/svg+xml,%3Csvg width=%22387%22 height=%22335%22 viewBox=%220 0 387 335%22 fill=%22none%22 xmlns=%22http://www.w3.org/2000/svg%22%3E%3Cpath d=%22M0.120605 130.841L140.84 112.176V61.7481L156.149 65.3501V104.786L163.641 103.662V66.6599L178.625 69.607V102.353L185.791 101.043V61.0932L156.475 48.3224L119.992 60.4383V101.043L0.120605 130.841Z%22 fill=%22black%22/%3E%3Cpath d=%22M213.479 112.176L237.584 114.469L237.258 0.841309L202.078 19.8338V72.8816L213.479 78.1209V112.176Z%22 fill=%22black%22/%3E%3Cpath d=%22M240.841 0.841309L276.347 20.1612V117.743L260.711 115.778V26.3829L240.841 15.9043V0.841309Z%22 fill=%22black%22/%3E%3Cpath d=%22M284.816 118.725L386.121 127.239L304.36 109.884V74.1914L284.816 63.7128V118.725Z%22 fill=%22black%22/%3E%3Cpath d=%22M0.120605 130.841L140.84 112.176V61.7481L156.149 65.3501V104.786L163.641 103.662V66.6599L178.625 69.607V102.353L185.791 101.043V61.0932L156.475 48.3224L119.992 60.4383V101.043L0.120605 130.841Z%22 stroke=%22black%22/%3E%3Cpath d=%22M213.479 112.176L237.584 114.469L237.258 0.841309L202.078 19.8338V72.8816L213.479 78.1209V112.176Z%22 stroke=%22black%22/%3E%3Cpath d=%22M240.841 0.841309L276.347 20.1612V117.743L260.711 115.778V26.3829L240.841 15.9043V0.841309Z%22 stroke=%22black%22/%3E%3Cpath d=%22M284.816 118.725L386.121 127.239L304.36 109.884V74.1914L284.816 63.7128V118.725Z%22 stroke=%22black%22/%3E%3Cpath d=%22M25.1206 333.987H31.6206V306.987H25.1206V333.987Z%22 fill=%22black%22/%3E%3Cpath d=%22M92.6206 333.987H100.121L110.621 307.487H104.621L96.6206 325.987L88.6206 307.487H81.6206L92.6206 333.987Z%22 fill=%22black%22/%3E%3Cpath d=%22M44.6206 333.987H51.6206V318.987L65.1206 333.987H71.6206V307.487H65.1206V322.987L50.6206 307.487H44.6206V333.987Z%22 fill=%22black%22/%3E%3Cpath d=%22M120.621 333.987H142.121V329.487H127.621V322.987H140.121V318.487H127.621V312.487H142.121V307.487H120.621V333.987Z%22 fill=%22black%22/%3E%3Cpath d=%22M152.121 331.987L153.621 327.987C165.659 329.418 167.304 330.676 168.121 326.487C168.937 322.297 152.785 322.989 152.621 313.987C152.456 304.984 165.853 306.198 174.121 308.487L173.121 312.487C162.364 310.724 159.121 310.487 159.121 313.987C159.121 317.487 175.621 318.748 175.621 326.487C175.621 334.225 167.278 335.691 152.121 331.987Z%22 fill=%22black%22/%3E%3Cpath d=%22M192.621 333.987H199.621V312.487H208.621V307.487H183.621V312.487H192.621V333.987Z%22 fill=%22black%22/%3E%3Cpath d=%22M219.121 333.987H225.121V318.987L233.621 329.987H237.621L245.121 318.987V333.987L252.121 333.987V307.487H245.121L235.621 322.487L225.121 307.487H219.121V333.987Z%22 fill=%22black%22/%3E%3Cpath d=%22M265.121 333.987H286.621V329.487H272.121V322.987H284.621V318.487H272.121V312.487H286.621V307.487H265.121V333.987Z%22 fill=%22black%22/%3E%3Cpath d=%22M298.621 333.987H305.621V318.987L319.121 333.987H325.621V307.487H319.121V322.987L304.621 307.487H298.621V333.987Z%22 fill=%22black%22/%3E%3Cpath d=%22M345.121 333.987H352.121V312.487H361.121V307.487H336.121V312.487H345.121V333.987Z%22 fill=%22black%22/%3E%3Cpath d=%22M25.1206 333.987H31.6206V306.987H25.1206V333.987Z%22 stroke=%22black%22/%3E%3Cpath d=%22M92.6206 333.987H100.121L110.621 307.487H104.621L96.6206 325.987L88.6206 307.487H81.6206L92.6206 333.987Z%22 stroke=%22black%22/%3E%3Cpath d=%22M44.6206 333.987H51.6206V318.987L65.1206 333.987H71.6206V307.487H65.1206V322.987L50.6206 307.487H44.6206V333.987Z%22 stroke=%22black%22/%3E%3Cpath d=%22M120.621 333.987H142.121V329.487H127.621V322.987H140.121V318.487H127.621V312.487H142.121V307.487H120.621V333.987Z%22 stroke=%22black%22/%3E%3Cpath d=%22M152.121 331.987L153.621 327.987C165.659 329.418 167.304 330.676 168.121 326.487C168.937 322.297 152.785 322.989 152.621 313.987C152.456 304.984 165.853 306.198 174.121 308.487L173.121 312.487C162.364 310.724 159.121 310.487 159.121 313.987C159.121 317.487 175.621 318.748 175.621 326.487C175.621 334.225 167.278 335.691 152.121 331.987Z%22 stroke=%22black%22/%3E%3Cpath d=%22M192.621 333.987H199.621V312.487H208.621V307.487H183.621V312.487H192.621V333.987Z%22 stroke=%22black%22/%3E%3Cpath d=%22M219.121 333.987H225.121V318.987L233.621 329.987H237.621L245.121 318.987V333.987L252.121 333.987V307.487H245.121L235.621 322.487L225.121 307.487H219.121V333.987Z%22 stroke=%22black%22/%3E%3Cpath d=%22M265.121 333.987H286.621V329.487H272.121V322.987H284.621V318.487H272.121V312.487H286.621V307.487H265.121V333.987Z%22 stroke=%22black%22/%3E%3Cpath d=%22M298.621 333.987H305.621V318.987L319.121 333.987H325.621V307.487H319.121V322.987L304.621 307.487H298.621V333.987Z%22 stroke=%22black%22/%3E%3Cpath d=%22M345.121 333.987H352.121V312.487H361.121V307.487H336.121V312.487H345.121V333.987Z%22 stroke=%22black%22/%3E%3Cpath d=%22M232.621 276.02L166.121 145.841H204.905L255.905 246.341L306.905 145.841H345.905L279.405 276.02H232.621Z%22 fill=%22black%22 stroke=%22black%22/%3E%3Cpath d=%22M41.1206 276.02H208.336L195.73 251.341H74.8362V220.341H179.894L168.144 197.341H74.8362V170.841L154.352 170.341L141.836 145.841H41.1206V276.02Z%22 fill=%22black%22 stroke=%22black%22/%3E%3C/svg%3E";
1172
- var LOGO_BG = "oklch(0.256 0.1 260)";
1173
- function Logo({ className, withBackground = false, src }) {
1174
- const maskUrl = `url("${src ?? LOGO_DATA_URI}")`;
1175
- const maskStyle = {
1176
- backgroundColor: "currentColor",
1177
- maskImage: maskUrl,
1178
- WebkitMaskImage: maskUrl,
1179
- maskRepeat: "no-repeat",
1180
- WebkitMaskRepeat: "no-repeat",
1181
- maskPosition: "center",
1182
- WebkitMaskPosition: "center",
1183
- maskSize: "contain",
1184
- WebkitMaskSize: "contain"
1185
- };
1186
- const mark = /* @__PURE__ */ jsx13(
1187
- "span",
1188
- {
1189
- "data-slot": "logo",
1190
- role: "img",
1191
- "aria-label": "EV Investment",
1192
- style: maskStyle,
1193
- className: cn("inline-block", withBackground ? "w-3/5 h-3/5" : className)
1194
- }
1195
- );
1196
- if (!withBackground) return mark;
1197
- return /* @__PURE__ */ jsx13(
1198
- "span",
1199
- {
1200
- "data-slot": "logo-background",
1201
- className: cn("inline-flex items-center justify-center", className),
1202
- style: { backgroundColor: LOGO_BG },
1203
- children: mark
1204
- }
1205
- );
1206
- }
1207
-
1208
1177
  // src/components/footer.tsx
1209
- import { Fragment as Fragment3, jsx as jsx14, jsxs as jsxs4 } from "react/jsx-runtime";
1210
- var DEFAULT_DESCRIPTION = "EV Investment is a registered real estate advisory and investment management fund specializing in premium coastal developments in Quy Nhon, Binh Dinh province, Vietnam.";
1211
- var DEFAULT_OFFICES = [
1212
- {
1213
- name: "Quy Nhon Head Office",
1214
- address: "102 An Duong Vuong St, Nguyen Van Cu Ward, Quy Nhon City, Vietnam"
1215
- },
1216
- {
1217
- name: "Ho Chi Minh Representative",
1218
- address: "Deutsches Haus, 33 Le Duan Blvd, District 1, Ho Chi Minh City, Vietnam"
1219
- }
1220
- ];
1221
- var DEFAULT_LEGAL_LINKS = [
1222
- { label: "Privacy Policy", href: "#hero" },
1223
- { label: "Terms of Service", href: "#hero" }
1224
- ];
1178
+ import { Fragment as Fragment3, jsx as jsx13, jsxs as jsxs4 } from "react/jsx-runtime";
1225
1179
  function Footer({
1180
+ brand,
1181
+ description,
1182
+ copyright,
1226
1183
  nav,
1227
- description = DEFAULT_DESCRIPTION,
1228
- offices = DEFAULT_OFFICES,
1229
- legalLinks = DEFAULT_LEGAL_LINKS,
1184
+ mark,
1185
+ tagline,
1186
+ offices = [],
1187
+ officesHeading = "Offices",
1188
+ legalLinks = [],
1230
1189
  newsletter,
1231
- newsletterBlurb = "Subscribe, to receive our macro reports",
1190
+ newsletterHeading = "Newsletter",
1191
+ newsletterBlurb = "",
1232
1192
  version,
1233
1193
  commitHref,
1234
- tagline = "Quy Nhon Fund",
1235
1194
  linkComponent,
1236
1195
  children
1237
1196
  }) {
@@ -1240,23 +1199,23 @@ function Footer({
1240
1199
  "footer",
1241
1200
  {
1242
1201
  "data-slot": "footer",
1243
- className: "bg-main-black border-t border-main-mist/10 py-16",
1202
+ className: "bg-background border-t border-ink/10 py-16",
1244
1203
  children: [
1245
1204
  children,
1246
1205
  /* @__PURE__ */ jsxs4(Container, { children: [
1247
1206
  /* @__PURE__ */ jsxs4("div", { className: "grid grid-cols-2 gap-x-8 gap-y-8 lg:grid-cols-12 mb-12", children: [
1248
1207
  /* @__PURE__ */ jsxs4("div", { className: "col-span-2 lg:col-span-3", children: [
1249
1208
  /* @__PURE__ */ jsxs4("div", { className: "flex items-center gap-3 mb-6", children: [
1250
- /* @__PURE__ */ jsx14(Logo, { className: "w-8 h-8 text-white" }),
1209
+ mark,
1251
1210
  /* @__PURE__ */ jsxs4("div", { className: "flex flex-col", children: [
1252
- /* @__PURE__ */ jsx14("span", { className: "font-serif-display font-bold text-base tracking-wider text-white", children: "EV INVESTMENT" }),
1253
- /* @__PURE__ */ jsx14("span", { className: "text-[8px] font-mono-tech tracking-[0.3em] text-main-accent-t1 uppercase", children: tagline })
1211
+ /* @__PURE__ */ jsx13("span", { className: "font-serif font-bold text-base tracking-wider text-ink", children: brand }),
1212
+ tagline && /* @__PURE__ */ jsx13("span", { className: "text-[8px] font-mono tracking-[0.3em] text-accent-debug uppercase", children: tagline })
1254
1213
  ] })
1255
1214
  ] }),
1256
- /* @__PURE__ */ jsx14("p", { className: "text-main-mist/40 text-xs font-light max-w-sm leading-relaxed mb-6", children: description }),
1257
- /* @__PURE__ */ jsx14("div", { className: "flex gap-4 text-xs font-mono-tech text-main-accent-t1", children: legalLinks.map((link, i) => /* @__PURE__ */ jsxs4(React24.Fragment, { children: [
1258
- i > 0 && /* @__PURE__ */ jsx14("span", { className: "text-main-mist/20", children: "|" }),
1259
- /* @__PURE__ */ jsx14(L, { href: link.href, className: "hover:underline", children: link.label })
1215
+ /* @__PURE__ */ jsx13("p", { className: "text-ink/40 text-xs font-light max-w-sm leading-relaxed mb-6", children: description }),
1216
+ /* @__PURE__ */ jsx13("div", { className: "flex gap-4 text-xs font-mono text-accent-debug", children: legalLinks.map((link, i) => /* @__PURE__ */ jsxs4(React23.Fragment, { children: [
1217
+ i > 0 && /* @__PURE__ */ jsx13("span", { className: "text-ink/20", children: "|" }),
1218
+ /* @__PURE__ */ jsx13(L, { href: link.href, className: "hover:underline", children: link.label })
1260
1219
  ] }, link.label)) })
1261
1220
  ] }),
1262
1221
  nav.map((group) => /* @__PURE__ */ jsxs4(
@@ -1265,12 +1224,12 @@ function Footer({
1265
1224
  "aria-label": `Footer ${group.heading} links`,
1266
1225
  className: "lg:col-span-2",
1267
1226
  children: [
1268
- /* @__PURE__ */ jsx14("h4", { className: "font-mono-tech text-xs text-white uppercase tracking-widest mb-6", children: group.heading }),
1269
- /* @__PURE__ */ jsx14("ul", { className: "space-y-3", children: group.links.map((link) => /* @__PURE__ */ jsx14("li", { children: /* @__PURE__ */ jsx14(
1227
+ /* @__PURE__ */ jsx13("h4", { className: "font-mono text-xs text-ink uppercase tracking-widest mb-6", children: group.heading }),
1228
+ /* @__PURE__ */ jsx13("ul", { className: "space-y-3", children: group.links.map((link) => /* @__PURE__ */ jsx13("li", { children: /* @__PURE__ */ jsx13(
1270
1229
  L,
1271
1230
  {
1272
1231
  href: link.href,
1273
- className: "text-xs font-light text-main-mist/70 hover:text-main-accent-t1 transition-colors",
1232
+ className: "text-xs font-light text-ink/70 hover:text-accent-debug transition-colors",
1274
1233
  children: link.label
1275
1234
  }
1276
1235
  ) }, link.href)) })
@@ -1278,24 +1237,24 @@ function Footer({
1278
1237
  },
1279
1238
  group.heading
1280
1239
  )),
1281
- /* @__PURE__ */ jsxs4("div", { className: "col-span-2 lg:col-span-3", children: [
1282
- /* @__PURE__ */ jsx14("h4", { className: "font-mono-tech text-xs text-white uppercase tracking-widest mb-6", children: "Offices" }),
1283
- /* @__PURE__ */ jsx14("ul", { className: "space-y-4 text-xs text-main-mist/70 font-light leading-relaxed", children: offices.map((office) => /* @__PURE__ */ jsxs4("li", { children: [
1284
- /* @__PURE__ */ jsx14("strong", { className: "text-white block font-mono-tech text-[10px] uppercase tracking-wider mb-1", children: office.name }),
1240
+ offices.length > 0 && /* @__PURE__ */ jsxs4("div", { className: "col-span-2 lg:col-span-3", children: [
1241
+ /* @__PURE__ */ jsx13("h4", { className: "font-mono text-xs text-ink uppercase tracking-widest mb-6", children: officesHeading }),
1242
+ /* @__PURE__ */ jsx13("ul", { className: "space-y-4 text-xs text-ink/70 font-light leading-relaxed", children: offices.map((office) => /* @__PURE__ */ jsxs4("li", { children: [
1243
+ /* @__PURE__ */ jsx13("strong", { className: "text-ink block font-mono text-[10px] uppercase tracking-wider mb-1", children: office.name }),
1285
1244
  office.address
1286
1245
  ] }, office.name)) })
1287
1246
  ] }),
1288
1247
  newsletter && /* @__PURE__ */ jsxs4("div", { className: "col-span-2 lg:col-span-2", children: [
1289
- /* @__PURE__ */ jsx14("h4", { className: "font-mono-tech text-xs text-white uppercase tracking-widest mb-6", children: "Newsletter" }),
1290
- /* @__PURE__ */ jsx14("p", { className: "text-sm sm:text-xs font-light leading-relaxed text-main-mist/70 mb-4", children: newsletterBlurb }),
1248
+ /* @__PURE__ */ jsx13("h4", { className: "font-mono text-xs text-ink uppercase tracking-widest mb-6", children: newsletterHeading }),
1249
+ /* @__PURE__ */ jsx13("p", { className: "text-sm sm:text-xs font-light leading-relaxed text-ink/70 mb-4", children: newsletterBlurb }),
1291
1250
  newsletter
1292
1251
  ] })
1293
1252
  ] }),
1294
- /* @__PURE__ */ jsx14("div", { className: "border-t border-main-mist/10 pt-8 text-[10px] font-mono-tech text-main-mist/40", children: /* @__PURE__ */ jsxs4("p", { children: [
1295
- "\xA9 2026 EV Investment. All rights reserved.",
1253
+ /* @__PURE__ */ jsx13("div", { className: "border-t border-ink/10 pt-8 text-[10px] font-mono text-ink/40", children: /* @__PURE__ */ jsxs4("p", { children: [
1254
+ copyright,
1296
1255
  version && /* @__PURE__ */ jsxs4(Fragment3, { children: [
1297
1256
  " ",
1298
- /* @__PURE__ */ jsx14("a", { href: commitHref, className: "text-main-mist/30", children: version })
1257
+ /* @__PURE__ */ jsx13("a", { href: commitHref, className: "text-ink/30", children: version })
1299
1258
  ] })
1300
1259
  ] }) })
1301
1260
  ] })
@@ -1308,12 +1267,12 @@ function Footer({
1308
1267
  import "react";
1309
1268
 
1310
1269
  // src/generated/input.ts
1311
- var INPUT_BASE = "file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground border-input h-9 w-full min-w-0 rounded-md border bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 aria-invalid:border-destructive";
1270
+ var INPUT_BASE = "file:text-ink placeholder:text-ink-soft selection:bg-primary selection:text-on-primary border-input h-9 w-full min-w-0 rounded-[var(--control-radius)] border bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-accent-error/20 aria-invalid:border-accent-error";
1312
1271
 
1313
1272
  // src/components/input.tsx
1314
- import { jsx as jsx15 } from "react/jsx-runtime";
1273
+ import { jsx as jsx14 } from "react/jsx-runtime";
1315
1274
  function Input({ className, type, ...props }) {
1316
- return /* @__PURE__ */ jsx15(
1275
+ return /* @__PURE__ */ jsx14(
1317
1276
  "input",
1318
1277
  {
1319
1278
  type,
@@ -1328,20 +1287,20 @@ function Input({ className, type, ...props }) {
1328
1287
  import "react";
1329
1288
 
1330
1289
  // src/generated/textarea.ts
1331
- var TEXTAREA_BASE = "border-input placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 aria-invalid:border-destructive flex field-sizing-content min-h-16 w-full rounded-md border bg-transparent px-3 py-2 text-base shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 md:text-sm";
1290
+ var TEXTAREA_BASE = "border-input placeholder:text-ink-soft focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-accent-error/20 aria-invalid:border-accent-error flex field-sizing-content min-h-16 w-full rounded-[var(--control-radius)] border bg-transparent px-3 py-2 text-base shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 md:text-sm";
1332
1291
 
1333
1292
  // src/components/textarea.tsx
1334
- import { jsx as jsx16 } from "react/jsx-runtime";
1293
+ import { jsx as jsx15 } from "react/jsx-runtime";
1335
1294
  function Textarea({ className, ...props }) {
1336
- return /* @__PURE__ */ jsx16("textarea", { "data-slot": "textarea", className: cn(TEXTAREA_BASE, className), ...props });
1295
+ return /* @__PURE__ */ jsx15("textarea", { "data-slot": "textarea", className: cn(TEXTAREA_BASE, className), ...props });
1337
1296
  }
1338
1297
 
1339
1298
  // src/components/input-group.tsx
1340
1299
  import "react";
1341
1300
 
1342
1301
  // src/generated/input-group.ts
1343
- var INPUT_GROUP_BASE = "group/input-group border-input relative flex w-full items-center rounded-md border shadow-xs transition-[color,box-shadow] outline-none h-9 min-w-0 has-[>textarea]:h-auto has-[>[data-align=inline-start]]:[&>input]:pl-2 has-[>[data-align=inline-end]]:[&>input]:pr-2 has-[>[data-align=block-start]]:h-auto has-[>[data-align=block-start]]:flex-col has-[>[data-align=block-start]]:[&>input]:pb-3 has-[>[data-align=block-end]]:h-auto has-[>[data-align=block-end]]:flex-col has-[>[data-align=block-end]]:[&>input]:pt-3 has-[[data-slot=input-group-control]:focus-visible]:border-ring has-[[data-slot=input-group-control]:focus-visible]:ring-ring/50 has-[[data-slot=input-group-control]:focus-visible]:ring-[3px] has-[[data-slot][aria-invalid=true]]:ring-destructive/20 has-[[data-slot][aria-invalid=true]]:border-destructive";
1344
- var INPUT_GROUP_ADDON_BASE = "text-muted-foreground flex h-auto cursor-text items-center justify-center gap-2 py-1.5 text-sm font-medium select-none [&>svg:not([class*='size-'])]:size-4 [&>kbd]:rounded-[calc(var(--radius)-5px)] group-data-[disabled=true]/input-group:opacity-50";
1302
+ var INPUT_GROUP_BASE = "group/input-group border-input relative flex w-full items-center rounded-md border shadow-xs transition-[color,box-shadow] outline-none h-9 min-w-0 has-[>textarea]:h-auto has-[>[data-align=inline-start]]:[&>input]:pl-2 has-[>[data-align=inline-end]]:[&>input]:pr-2 has-[>[data-align=block-start]]:h-auto has-[>[data-align=block-start]]:flex-col has-[>[data-align=block-start]]:[&>input]:pb-3 has-[>[data-align=block-end]]:h-auto has-[>[data-align=block-end]]:flex-col has-[>[data-align=block-end]]:[&>input]:pt-3 has-[[data-slot=input-group-control]:focus-visible]:border-ring has-[[data-slot=input-group-control]:focus-visible]:ring-ring/50 has-[[data-slot=input-group-control]:focus-visible]:ring-[3px] has-[[data-slot][aria-invalid=true]]:ring-accent-error/20 has-[[data-slot][aria-invalid=true]]:border-accent-error";
1303
+ var INPUT_GROUP_ADDON_BASE = "text-ink-soft flex h-auto cursor-text items-center justify-center gap-2 py-1.5 text-sm font-medium select-none [&>svg:not([class*='size-'])]:size-4 [&>kbd]:rounded-[calc(var(--radius)-5px)] group-data-[disabled=true]/input-group:opacity-50";
1345
1304
  var inputGroupAddonAligns = {
1346
1305
  "inline-start": "order-first pl-3 has-[>button]:ml-[-0.45rem] has-[>kbd]:ml-[-0.35rem]",
1347
1306
  "inline-end": "order-last pr-3 has-[>button]:mr-[-0.45rem] has-[>kbd]:mr-[-0.35rem]",
@@ -1355,17 +1314,17 @@ var inputGroupButtonSizes = {
1355
1314
  "icon-xs": "size-6 rounded-[calc(var(--radius)-5px)] p-0 has-[>svg]:p-0",
1356
1315
  "icon-sm": "size-8 p-0 has-[>svg]:p-0"
1357
1316
  };
1358
- var INPUT_GROUP_TEXT = "text-muted-foreground flex items-center gap-2 text-sm [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4";
1317
+ var INPUT_GROUP_TEXT = "text-ink-soft flex items-center gap-2 text-sm [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4";
1359
1318
  var INPUT_GROUP_INPUT_CONTROL = "flex-1 rounded-none border-0 bg-transparent shadow-none focus-visible:ring-0";
1360
1319
  var INPUT_GROUP_TEXTAREA_CONTROL = "flex-1 resize-none rounded-none border-0 bg-transparent py-3 shadow-none focus-visible:ring-0";
1361
1320
 
1362
1321
  // src/components/input-group.tsx
1363
- import { jsx as jsx17 } from "react/jsx-runtime";
1322
+ import { jsx as jsx16 } from "react/jsx-runtime";
1364
1323
  function InputGroup({
1365
1324
  className,
1366
1325
  ...props
1367
1326
  }) {
1368
- return /* @__PURE__ */ jsx17(
1327
+ return /* @__PURE__ */ jsx16(
1369
1328
  "div",
1370
1329
  {
1371
1330
  "data-slot": "input-group",
@@ -1380,7 +1339,7 @@ function InputGroupAddon({
1380
1339
  align = "inline-start",
1381
1340
  ...props
1382
1341
  }) {
1383
- return /* @__PURE__ */ jsx17(
1342
+ return /* @__PURE__ */ jsx16(
1384
1343
  "div",
1385
1344
  {
1386
1345
  role: "group",
@@ -1406,7 +1365,7 @@ function InputGroupButton({
1406
1365
  size = "xs",
1407
1366
  ...props
1408
1367
  }) {
1409
- return /* @__PURE__ */ jsx17(
1368
+ return /* @__PURE__ */ jsx16(
1410
1369
  Button,
1411
1370
  {
1412
1371
  type,
@@ -1425,7 +1384,7 @@ function InputGroupText({
1425
1384
  className,
1426
1385
  ...props
1427
1386
  }) {
1428
- return /* @__PURE__ */ jsx17(
1387
+ return /* @__PURE__ */ jsx16(
1429
1388
  "span",
1430
1389
  {
1431
1390
  className: cn(INPUT_GROUP_TEXT, className),
@@ -1437,7 +1396,7 @@ function InputGroupInput({
1437
1396
  className,
1438
1397
  ...props
1439
1398
  }) {
1440
- return /* @__PURE__ */ jsx17(
1399
+ return /* @__PURE__ */ jsx16(
1441
1400
  Input,
1442
1401
  {
1443
1402
  "data-slot": "input-group-control",
@@ -1450,7 +1409,7 @@ function InputGroupTextarea({
1450
1409
  className,
1451
1410
  ...props
1452
1411
  }) {
1453
- return /* @__PURE__ */ jsx17(
1412
+ return /* @__PURE__ */ jsx16(
1454
1413
  Textarea,
1455
1414
  {
1456
1415
  "data-slot": "input-group-control",
@@ -1474,13 +1433,13 @@ var separatorOrientations = {
1474
1433
  };
1475
1434
 
1476
1435
  // src/components/separator.tsx
1477
- import { jsx as jsx18 } from "react/jsx-runtime";
1436
+ import { jsx as jsx17 } from "react/jsx-runtime";
1478
1437
  function Separator({
1479
1438
  className,
1480
1439
  orientation = "horizontal",
1481
1440
  ...props
1482
1441
  }) {
1483
- return /* @__PURE__ */ jsx18(
1442
+ return /* @__PURE__ */ jsx17(
1484
1443
  "div",
1485
1444
  {
1486
1445
  role: "separator",
@@ -1499,7 +1458,7 @@ function Separator({
1499
1458
  // src/generated/item.ts
1500
1459
  var ITEM_GROUP = "group/item-group flex flex-col";
1501
1460
  var ITEM_SEPARATOR = "my-0";
1502
- var ITEM_BASE = "group/item flex items-center border border-transparent text-sm rounded-md transition-colors [a]:hover:bg-accent/50 [a]:transition-colors duration-100 flex-wrap outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]";
1461
+ var ITEM_BASE = "group/item flex items-center border border-transparent text-sm rounded-md transition-colors [a]:hover:bg-hover/50 [a]:transition-colors duration-100 flex-wrap outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]";
1503
1462
  var itemVariants = {
1504
1463
  "default": "bg-transparent",
1505
1464
  "outline": "border-border",
@@ -1517,15 +1476,15 @@ var itemMediaVariants = {
1517
1476
  };
1518
1477
  var ITEM_CONTENT = "flex flex-1 flex-col gap-1 [&+[data-slot=item-content]]:flex-none";
1519
1478
  var ITEM_TITLE = "flex w-fit items-center gap-2 text-sm leading-snug font-medium";
1520
- var ITEM_DESCRIPTION = "text-muted-foreground line-clamp-2 text-sm leading-normal font-normal text-balance [&>a:hover]:text-primary [&>a]:underline [&>a]:underline-offset-4";
1479
+ var ITEM_DESCRIPTION = "text-ink-soft line-clamp-2 text-sm leading-normal font-normal text-balance [&>a:hover]:text-primary [&>a]:underline [&>a]:underline-offset-4";
1521
1480
  var ITEM_ACTIONS = "flex items-center gap-2";
1522
1481
  var ITEM_HEADER = "flex basis-full items-center justify-between gap-2";
1523
1482
  var ITEM_FOOTER = "flex basis-full items-center justify-between gap-2";
1524
1483
 
1525
1484
  // src/components/item.tsx
1526
- import { jsx as jsx19 } from "react/jsx-runtime";
1485
+ import { jsx as jsx18 } from "react/jsx-runtime";
1527
1486
  function ItemGroup({ className, ...props }) {
1528
- return /* @__PURE__ */ jsx19(
1487
+ return /* @__PURE__ */ jsx18(
1529
1488
  "div",
1530
1489
  {
1531
1490
  role: "list",
@@ -1539,7 +1498,7 @@ function ItemSeparator({
1539
1498
  className,
1540
1499
  ...props
1541
1500
  }) {
1542
- return /* @__PURE__ */ jsx19(
1501
+ return /* @__PURE__ */ jsx18(
1543
1502
  Separator,
1544
1503
  {
1545
1504
  "data-slot": "item-separator",
@@ -1557,7 +1516,7 @@ function Item({
1557
1516
  ...props
1558
1517
  }) {
1559
1518
  const Comp = asChild ? Slot : "div";
1560
- return /* @__PURE__ */ jsx19(
1519
+ return /* @__PURE__ */ jsx18(
1561
1520
  Comp,
1562
1521
  {
1563
1522
  "data-slot": "item",
@@ -1573,7 +1532,7 @@ function ItemMedia({
1573
1532
  variant = "default",
1574
1533
  ...props
1575
1534
  }) {
1576
- return /* @__PURE__ */ jsx19(
1535
+ return /* @__PURE__ */ jsx18(
1577
1536
  "div",
1578
1537
  {
1579
1538
  "data-slot": "item-media",
@@ -1587,7 +1546,7 @@ function ItemContent({
1587
1546
  className,
1588
1547
  ...props
1589
1548
  }) {
1590
- return /* @__PURE__ */ jsx19(
1549
+ return /* @__PURE__ */ jsx18(
1591
1550
  "div",
1592
1551
  {
1593
1552
  "data-slot": "item-content",
@@ -1597,7 +1556,7 @@ function ItemContent({
1597
1556
  );
1598
1557
  }
1599
1558
  function ItemTitle({ className, ...props }) {
1600
- return /* @__PURE__ */ jsx19(
1559
+ return /* @__PURE__ */ jsx18(
1601
1560
  "div",
1602
1561
  {
1603
1562
  "data-slot": "item-title",
@@ -1610,7 +1569,7 @@ function ItemDescription({
1610
1569
  className,
1611
1570
  ...props
1612
1571
  }) {
1613
- return /* @__PURE__ */ jsx19(
1572
+ return /* @__PURE__ */ jsx18(
1614
1573
  "p",
1615
1574
  {
1616
1575
  "data-slot": "item-description",
@@ -1623,7 +1582,7 @@ function ItemActions({
1623
1582
  className,
1624
1583
  ...props
1625
1584
  }) {
1626
- return /* @__PURE__ */ jsx19(
1585
+ return /* @__PURE__ */ jsx18(
1627
1586
  "div",
1628
1587
  {
1629
1588
  "data-slot": "item-actions",
@@ -1636,7 +1595,7 @@ function ItemHeader({
1636
1595
  className,
1637
1596
  ...props
1638
1597
  }) {
1639
- return /* @__PURE__ */ jsx19(
1598
+ return /* @__PURE__ */ jsx18(
1640
1599
  "div",
1641
1600
  {
1642
1601
  "data-slot": "item-header",
@@ -1649,7 +1608,7 @@ function ItemFooter({
1649
1608
  className,
1650
1609
  ...props
1651
1610
  }) {
1652
- return /* @__PURE__ */ jsx19(
1611
+ return /* @__PURE__ */ jsx18(
1653
1612
  "div",
1654
1613
  {
1655
1614
  "data-slot": "item-footer",
@@ -1663,13 +1622,13 @@ function ItemFooter({
1663
1622
  import "react";
1664
1623
 
1665
1624
  // src/generated/kbd.ts
1666
- var KBD_BASE = "bg-muted text-muted-foreground pointer-events-none inline-flex h-5 w-fit min-w-5 items-center justify-center gap-1 rounded-sm px-1 font-sans text-xs font-medium select-none [&_svg:not([class*='size-'])]:size-3 [[data-slot=tooltip-content]_&]:bg-background/20 [[data-slot=tooltip-content]_&]:text-background";
1625
+ var KBD_BASE = "bg-muted text-ink-soft pointer-events-none inline-flex h-5 w-fit min-w-5 items-center justify-center gap-1 rounded-sm px-1 font-sans text-xs font-medium select-none [&_svg:not([class*='size-'])]:size-3 [[data-slot=tooltip-content]_&]:bg-background/20 [[data-slot=tooltip-content]_&]:text-background";
1667
1626
  var KBD_GROUP_BASE = "inline-flex items-center gap-1";
1668
1627
 
1669
1628
  // src/components/kbd.tsx
1670
- import { jsx as jsx20 } from "react/jsx-runtime";
1629
+ import { jsx as jsx19 } from "react/jsx-runtime";
1671
1630
  function Kbd({ className, ...props }) {
1672
- return /* @__PURE__ */ jsx20(
1631
+ return /* @__PURE__ */ jsx19(
1673
1632
  "kbd",
1674
1633
  {
1675
1634
  "data-slot": "kbd",
@@ -1679,7 +1638,7 @@ function Kbd({ className, ...props }) {
1679
1638
  );
1680
1639
  }
1681
1640
  function KbdGroup({ className, ...props }) {
1682
- return /* @__PURE__ */ jsx20(
1641
+ return /* @__PURE__ */ jsx19(
1683
1642
  "kbd",
1684
1643
  {
1685
1644
  "data-slot": "kbd-group",
@@ -1691,9 +1650,9 @@ function KbdGroup({ className, ...props }) {
1691
1650
 
1692
1651
  // src/components/pagination.tsx
1693
1652
  import "react";
1694
- import { jsx as jsx21, jsxs as jsxs5 } from "react/jsx-runtime";
1653
+ import { jsx as jsx20, jsxs as jsxs5 } from "react/jsx-runtime";
1695
1654
  function Pagination({ className, ...props }) {
1696
- return /* @__PURE__ */ jsx21(
1655
+ return /* @__PURE__ */ jsx20(
1697
1656
  "nav",
1698
1657
  {
1699
1658
  role: "navigation",
@@ -1708,7 +1667,7 @@ function PaginationContent({
1708
1667
  className,
1709
1668
  ...props
1710
1669
  }) {
1711
- return /* @__PURE__ */ jsx21(
1670
+ return /* @__PURE__ */ jsx20(
1712
1671
  "ul",
1713
1672
  {
1714
1673
  "data-slot": "pagination-content",
@@ -1718,7 +1677,7 @@ function PaginationContent({
1718
1677
  );
1719
1678
  }
1720
1679
  function PaginationItem(props) {
1721
- return /* @__PURE__ */ jsx21("li", { "data-slot": "pagination-item", ...props });
1680
+ return /* @__PURE__ */ jsx20("li", { "data-slot": "pagination-item", ...props });
1722
1681
  }
1723
1682
  function PaginationLink({
1724
1683
  className,
@@ -1726,7 +1685,7 @@ function PaginationLink({
1726
1685
  size = "icon",
1727
1686
  ...props
1728
1687
  }) {
1729
- return /* @__PURE__ */ jsx21(
1688
+ return /* @__PURE__ */ jsx20(
1730
1689
  "a",
1731
1690
  {
1732
1691
  "aria-current": isActive ? "page" : void 0,
@@ -1743,8 +1702,8 @@ function PaginationLink({
1743
1702
  }
1744
1703
  );
1745
1704
  }
1746
- var ChevronLeft = () => /* @__PURE__ */ jsx21("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: 2, children: /* @__PURE__ */ jsx21("path", { d: "m15 18-6-6 6-6" }) });
1747
- var ChevronRight = () => /* @__PURE__ */ jsx21("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: 2, children: /* @__PURE__ */ jsx21("path", { d: "m9 18 6-6-6-6" }) });
1705
+ var ChevronLeft = () => /* @__PURE__ */ jsx20("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: 2, children: /* @__PURE__ */ jsx20("path", { d: "m15 18-6-6 6-6" }) });
1706
+ var ChevronRight = () => /* @__PURE__ */ jsx20("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: 2, children: /* @__PURE__ */ jsx20("path", { d: "m9 18 6-6-6-6" }) });
1748
1707
  var MoreHorizontal = () => /* @__PURE__ */ jsxs5(
1749
1708
  "svg",
1750
1709
  {
@@ -1754,9 +1713,9 @@ var MoreHorizontal = () => /* @__PURE__ */ jsxs5(
1754
1713
  stroke: "currentColor",
1755
1714
  strokeWidth: 2,
1756
1715
  children: [
1757
- /* @__PURE__ */ jsx21("circle", { cx: "12", cy: "12", r: "1" }),
1758
- /* @__PURE__ */ jsx21("circle", { cx: "19", cy: "12", r: "1" }),
1759
- /* @__PURE__ */ jsx21("circle", { cx: "5", cy: "12", r: "1" })
1716
+ /* @__PURE__ */ jsx20("circle", { cx: "12", cy: "12", r: "1" }),
1717
+ /* @__PURE__ */ jsx20("circle", { cx: "19", cy: "12", r: "1" }),
1718
+ /* @__PURE__ */ jsx20("circle", { cx: "5", cy: "12", r: "1" })
1760
1719
  ]
1761
1720
  }
1762
1721
  );
@@ -1772,8 +1731,8 @@ function PaginationPrevious({
1772
1731
  className: cn("gap-1 px-2.5 sm:pl-2.5", className),
1773
1732
  ...props,
1774
1733
  children: [
1775
- /* @__PURE__ */ jsx21(ChevronLeft, {}),
1776
- /* @__PURE__ */ jsx21("span", { className: "hidden sm:block", children: "Previous" })
1734
+ /* @__PURE__ */ jsx20(ChevronLeft, {}),
1735
+ /* @__PURE__ */ jsx20("span", { className: "hidden sm:block", children: "Previous" })
1777
1736
  ]
1778
1737
  }
1779
1738
  );
@@ -1790,8 +1749,8 @@ function PaginationNext({
1790
1749
  className: cn("gap-1 px-2.5 sm:pr-2.5", className),
1791
1750
  ...props,
1792
1751
  children: [
1793
- /* @__PURE__ */ jsx21("span", { className: "hidden sm:block", children: "Next" }),
1794
- /* @__PURE__ */ jsx21(ChevronRight, {})
1752
+ /* @__PURE__ */ jsx20("span", { className: "hidden sm:block", children: "Next" }),
1753
+ /* @__PURE__ */ jsx20(ChevronRight, {})
1795
1754
  ]
1796
1755
  }
1797
1756
  );
@@ -1808,8 +1767,8 @@ function PaginationEllipsis({
1808
1767
  className: cn("flex size-9 items-center justify-center", className),
1809
1768
  ...props,
1810
1769
  children: [
1811
- /* @__PURE__ */ jsx21(MoreHorizontal, {}),
1812
- /* @__PURE__ */ jsx21("span", { className: "sr-only", children: "More pages" })
1770
+ /* @__PURE__ */ jsx20(MoreHorizontal, {}),
1771
+ /* @__PURE__ */ jsx20("span", { className: "sr-only", children: "More pages" })
1813
1772
  ]
1814
1773
  }
1815
1774
  );
@@ -1823,9 +1782,9 @@ var PROGRESS_TRACK = "bg-primary/20 relative h-2 w-full overflow-hidden rounded-
1823
1782
  var PROGRESS_INDICATOR = "bg-primary h-full w-full flex-1 transition-all";
1824
1783
 
1825
1784
  // src/components/progress.tsx
1826
- import { jsx as jsx22 } from "react/jsx-runtime";
1785
+ import { jsx as jsx21 } from "react/jsx-runtime";
1827
1786
  function Progress({ className, value = 0, ...props }) {
1828
- return /* @__PURE__ */ jsx22(
1787
+ return /* @__PURE__ */ jsx21(
1829
1788
  "div",
1830
1789
  {
1831
1790
  "data-slot": "progress",
@@ -1835,7 +1794,7 @@ function Progress({ className, value = 0, ...props }) {
1835
1794
  "aria-valuemax": 100,
1836
1795
  className: cn(PROGRESS_TRACK, className),
1837
1796
  ...props,
1838
- children: /* @__PURE__ */ jsx22(
1797
+ children: /* @__PURE__ */ jsx21(
1839
1798
  "div",
1840
1799
  {
1841
1800
  "data-slot": "progress-indicator",
@@ -1851,12 +1810,12 @@ function Progress({ className, value = 0, ...props }) {
1851
1810
  import "react";
1852
1811
 
1853
1812
  // src/generated/skeleton.ts
1854
- var SKELETON_BASE = "bg-accent animate-pulse rounded-md";
1813
+ var SKELETON_BASE = "bg-hover animate-pulse rounded-md";
1855
1814
 
1856
1815
  // src/components/skeleton.tsx
1857
- import { jsx as jsx23 } from "react/jsx-runtime";
1816
+ import { jsx as jsx22 } from "react/jsx-runtime";
1858
1817
  function Skeleton({ className, ...props }) {
1859
- return /* @__PURE__ */ jsx23(
1818
+ return /* @__PURE__ */ jsx22(
1860
1819
  "div",
1861
1820
  {
1862
1821
  "data-slot": "skeleton",
@@ -1868,9 +1827,9 @@ function Skeleton({ className, ...props }) {
1868
1827
 
1869
1828
  // src/components/spinner.tsx
1870
1829
  import "react";
1871
- import { jsx as jsx24 } from "react/jsx-runtime";
1830
+ import { jsx as jsx23 } from "react/jsx-runtime";
1872
1831
  function Spinner({ className, ...props }) {
1873
- return /* @__PURE__ */ jsx24(
1832
+ return /* @__PURE__ */ jsx23(
1874
1833
  "svg",
1875
1834
  {
1876
1835
  role: "status",
@@ -1881,42 +1840,45 @@ function Spinner({ className, ...props }) {
1881
1840
  stroke: "currentColor",
1882
1841
  strokeWidth: 2,
1883
1842
  ...props,
1884
- children: /* @__PURE__ */ jsx24("path", { d: "M21 12a9 9 0 1 1-6.219-8.56" })
1843
+ children: /* @__PURE__ */ jsx23("path", { d: "M21 12a9 9 0 1 1-6.219-8.56" })
1885
1844
  }
1886
1845
  );
1887
1846
  }
1888
1847
 
1889
1848
  // src/components/status-screen.tsx
1890
1849
  import "react";
1891
- import { jsx as jsx25, jsxs as jsxs6 } from "react/jsx-runtime";
1850
+ import { jsx as jsx24, jsxs as jsxs6 } from "react/jsx-runtime";
1892
1851
  var ACCENT_TEXT = {
1893
- teal: "text-main-accent-t1",
1894
- gold: "text-main-accent-t3",
1895
- red: "text-destructive",
1896
- blue: "text-[#5e9be6]"
1852
+ teal: "text-accent-debug",
1853
+ gold: "text-accent-warn",
1854
+ red: "text-accent-error",
1855
+ blue: "text-accent-info"
1897
1856
  };
1898
- var BTN_BASE = "inline-flex items-center justify-center rounded-md px-6 py-3.5 font-mono-tech text-xs uppercase tracking-widest transition-colors";
1899
1857
  var BTN_FILLED = {
1900
- teal: "bg-main-accent-t1 text-main-black hover:bg-main-accent-t1/90",
1901
- gold: "bg-main-accent-t3 text-main-black hover:bg-main-accent-t3/90",
1902
- red: "bg-destructive text-white hover:bg-destructive/90",
1903
- blue: "bg-[#5e9be6] text-main-black hover:bg-[#5e9be6]/90"
1858
+ teal: "bg-accent-debug text-background hover:bg-accent-debug/90",
1859
+ gold: "bg-accent-warn text-background hover:bg-accent-warn/90",
1860
+ red: "bg-accent-error text-on-accent-error hover:bg-accent-error/90",
1861
+ blue: "bg-accent-info text-on-accent-info hover:bg-accent-info/90"
1904
1862
  };
1905
1863
  var BTN_OUTLINE = {
1906
- teal: "border border-main-accent-t1/40 text-main-accent-t1 hover:bg-main-accent-t1/10",
1907
- gold: "border border-main-accent-t3/40 text-main-accent-t3 hover:bg-main-accent-t3/10",
1908
- red: "border border-destructive/40 text-destructive hover:bg-destructive/10",
1909
- blue: "border border-[#5e9be6]/40 text-[#5e9be6] hover:bg-[#5e9be6]/10"
1864
+ teal: "border border-accent-debug/40 text-accent-debug hover:bg-accent-debug/10",
1865
+ gold: "border border-accent-warn/40 text-accent-warn hover:bg-accent-warn/10",
1866
+ red: "border border-accent-error/40 text-accent-error hover:bg-accent-error/10",
1867
+ blue: "border border-accent-info/40 text-accent-info hover:bg-accent-info/10"
1910
1868
  };
1911
- function statusButtonClass(accent, variant) {
1912
- return cn(BTN_BASE, variant === "filled" ? BTN_FILLED[accent] : BTN_OUTLINE[accent]);
1869
+ function statusCtaClass(accent, variant) {
1870
+ return cn(
1871
+ buttonVariants({ variant, size: "lg" }),
1872
+ "font-mono text-xs uppercase tracking-widest",
1873
+ variant === "outline" ? BTN_OUTLINE[accent] : BTN_FILLED[accent]
1874
+ );
1913
1875
  }
1914
1876
  function LogoMark({ className }) {
1915
- return /* @__PURE__ */ jsx25("svg", { viewBox: "0 0 140 48", className, "aria-hidden": true, children: /* @__PURE__ */ jsxs6("g", { fill: "currentColor", children: [
1916
- /* @__PURE__ */ jsx25("path", { d: "M0.0437012 47.3326L50.9499 40.5805V22.3378L56.4881 23.6408V37.9071L59.1984 37.5005V24.1147L64.6189 25.1808V37.0269L67.2113 36.553V22.1009L56.606 17.481L43.408 21.864V36.553L0.0437012 47.3326Z" }),
1917
- /* @__PURE__ */ jsx25("path", { d: "M77.2277 40.5804L85.9478 41.4099L85.8299 0.304321L73.1033 7.17499V26.3654L77.2277 28.2608V40.5804Z" }),
1918
- /* @__PURE__ */ jsx25("path", { d: "M87.126 0.304321L99.9705 7.29343V42.5943L94.3141 41.8835V9.54417L87.126 5.75347V0.304321Z" }),
1919
- /* @__PURE__ */ jsx25("path", { d: "M103.034 42.9496L139.682 46.0296L110.104 39.7513V26.8393L103.034 23.0486V42.9496Z" })
1877
+ return /* @__PURE__ */ jsx24("svg", { viewBox: "0 0 140 48", className, "aria-hidden": true, children: /* @__PURE__ */ jsxs6("g", { fill: "currentColor", children: [
1878
+ /* @__PURE__ */ jsx24("path", { d: "M0.0437012 47.3326L50.9499 40.5805V22.3378L56.4881 23.6408V37.9071L59.1984 37.5005V24.1147L64.6189 25.1808V37.0269L67.2113 36.553V22.1009L56.606 17.481L43.408 21.864V36.553L0.0437012 47.3326Z" }),
1879
+ /* @__PURE__ */ jsx24("path", { d: "M77.2277 40.5804L85.9478 41.4099L85.8299 0.304321L73.1033 7.17499V26.3654L77.2277 28.2608V40.5804Z" }),
1880
+ /* @__PURE__ */ jsx24("path", { d: "M87.126 0.304321L99.9705 7.29343V42.5943L94.3141 41.8835V9.54417L87.126 5.75347V0.304321Z" }),
1881
+ /* @__PURE__ */ jsx24("path", { d: "M103.034 42.9496L139.682 46.0296L110.104 39.7513V26.8393L103.034 23.0486V42.9496Z" })
1920
1882
  ] }) });
1921
1883
  }
1922
1884
  function ArrowLeftIcon({ className }) {
@@ -1932,8 +1894,8 @@ function ArrowLeftIcon({ className }) {
1932
1894
  strokeLinejoin: "round",
1933
1895
  "aria-hidden": true,
1934
1896
  children: [
1935
- /* @__PURE__ */ jsx25("path", { d: "m12 19-7-7 7-7" }),
1936
- /* @__PURE__ */ jsx25("path", { d: "M19 12H5" })
1897
+ /* @__PURE__ */ jsx24("path", { d: "m12 19-7-7 7-7" }),
1898
+ /* @__PURE__ */ jsx24("path", { d: "M19 12H5" })
1937
1899
  ]
1938
1900
  }
1939
1901
  );
@@ -1952,8 +1914,8 @@ function StatusScreen({
1952
1914
  }) {
1953
1915
  const L = linkComponent ?? "a";
1954
1916
  const accentText = ACCENT_TEXT[accent];
1955
- return /* @__PURE__ */ jsxs6("section", { className: "relative flex min-h-screen flex-col items-center justify-center overflow-hidden bg-main-black px-6 py-32 text-center", children: [
1956
- /* @__PURE__ */ jsx25(
1917
+ return /* @__PURE__ */ jsxs6("section", { className: "relative flex min-h-screen flex-col items-center justify-center overflow-hidden bg-background px-6 py-32 text-center", children: [
1918
+ /* @__PURE__ */ jsx24(
1957
1919
  "div",
1958
1920
  {
1959
1921
  "aria-hidden": true,
@@ -1964,19 +1926,19 @@ function StatusScreen({
1964
1926
  }
1965
1927
  ),
1966
1928
  /* @__PURE__ */ jsxs6("div", { className: "relative z-10 flex w-full max-w-2xl flex-col items-center", children: [
1967
- /* @__PURE__ */ jsx25(LogoMark, { className: cn("mb-7 h-10 w-auto", accentText) }),
1968
- /* @__PURE__ */ jsx25("p", { className: cn("mb-6 font-mono-tech text-[11px] uppercase tracking-[0.34em]", accentText), children: eyebrow }),
1969
- /* @__PURE__ */ jsx25("p", { className: cn("font-serif-display text-[110px] font-medium leading-[0.9] sm:text-[180px]", accentText), children: code }),
1970
- /* @__PURE__ */ jsxs6("h1", { className: "mt-4 font-serif-display text-3xl font-light leading-tight text-white sm:text-5xl", children: [
1929
+ /* @__PURE__ */ jsx24(LogoMark, { className: cn("mb-7 h-10 w-auto", accentText) }),
1930
+ /* @__PURE__ */ jsx24("p", { className: cn("mb-6 font-mono text-[11px] uppercase tracking-[0.34em]", accentText), children: eyebrow }),
1931
+ /* @__PURE__ */ jsx24("p", { className: cn("font-serif text-[110px] font-medium leading-[0.9] sm:text-[180px]", accentText), children: code }),
1932
+ /* @__PURE__ */ jsxs6("h1", { className: "mt-4 font-serif text-3xl font-light leading-tight text-ink sm:text-5xl", children: [
1971
1933
  headlineLead,
1972
- /* @__PURE__ */ jsx25("span", { className: cn("font-serif italic", accentText), children: headlineAccent }),
1934
+ /* @__PURE__ */ jsx24("span", { className: cn("font-serif italic", accentText), children: headlineAccent }),
1973
1935
  headlineTail
1974
1936
  ] }),
1975
- /* @__PURE__ */ jsx25("p", { className: "mx-auto mt-5 max-w-md text-sm leading-relaxed text-main-mist/60 sm:text-base", children: subtext }),
1937
+ /* @__PURE__ */ jsx24("p", { className: "mx-auto mt-5 max-w-md text-sm leading-relaxed text-ink/60 sm:text-base", children: subtext }),
1976
1938
  /* @__PURE__ */ jsxs6("div", { className: "mt-9 flex flex-col items-center gap-3 sm:flex-row", children: [
1977
1939
  children,
1978
- links?.map((link) => /* @__PURE__ */ jsxs6(L, { href: link.href, className: statusButtonClass(accent, link.variant ?? "filled"), children: [
1979
- link.leadingArrow ? /* @__PURE__ */ jsx25(ArrowLeftIcon, { className: "mr-2 h-4 w-4" }) : null,
1940
+ links?.map((link) => /* @__PURE__ */ jsxs6(L, { href: link.href, className: statusCtaClass(accent, link.variant ?? "default"), children: [
1941
+ link.leadingArrow ? /* @__PURE__ */ jsx24(ArrowLeftIcon, { className: "mr-2 h-4 w-4" }) : null,
1980
1942
  link.label
1981
1943
  ] }, link.label))
1982
1944
  ] })
@@ -1984,7 +1946,7 @@ function StatusScreen({
1984
1946
  ] });
1985
1947
  }
1986
1948
  function NotFound({ linkComponent = "a", homeHref = "/", contactHref = "/contact" }) {
1987
- return /* @__PURE__ */ jsx25(
1949
+ return /* @__PURE__ */ jsx24(
1988
1950
  StatusScreen,
1989
1951
  {
1990
1952
  accent: "teal",
@@ -2002,7 +1964,7 @@ function NotFound({ linkComponent = "a", homeHref = "/", contactHref = "/contact
2002
1964
  );
2003
1965
  }
2004
1966
  function Forbidden({ linkComponent = "a", homeHref = "/", contactHref = "/contact" }) {
2005
- return /* @__PURE__ */ jsx25(
1967
+ return /* @__PURE__ */ jsx24(
2006
1968
  StatusScreen,
2007
1969
  {
2008
1970
  accent: "gold",
@@ -2020,7 +1982,7 @@ function Forbidden({ linkComponent = "a", homeHref = "/", contactHref = "/contac
2020
1982
  );
2021
1983
  }
2022
1984
  function ServerError({ linkComponent = "a", homeHref = "/", reset }) {
2023
- return /* @__PURE__ */ jsx25(
1985
+ return /* @__PURE__ */ jsx24(
2024
1986
  StatusScreen,
2025
1987
  {
2026
1988
  accent: "red",
@@ -2031,11 +1993,11 @@ function ServerError({ linkComponent = "a", homeHref = "/", reset }) {
2031
1993
  subtext: "Something broke on our end \u2014 not yours. We've been alerted and are restoring service. Please try again in a moment.",
2032
1994
  linkComponent,
2033
1995
  links: [{ label: "Back to home", href: homeHref, variant: "outline", leadingArrow: true }],
2034
- children: /* @__PURE__ */ jsx25(
1996
+ children: /* @__PURE__ */ jsx24(
2035
1997
  "button",
2036
1998
  {
2037
1999
  type: "button",
2038
- className: statusButtonClass("red", "filled"),
2000
+ className: statusCtaClass("red", "default"),
2039
2001
  onClick: () => reset ? reset() : window.location.reload(),
2040
2002
  children: "Try again"
2041
2003
  }
@@ -2054,19 +2016,19 @@ var TABLE_HEADER = "[&_tr]:border-b";
2054
2016
  var TABLE_BODY = "[&_tr:last-child]:border-0";
2055
2017
  var TABLE_FOOTER = "bg-muted/50 border-t font-medium [&>tr]:last:border-b-0";
2056
2018
  var TABLE_ROW = "hover:bg-muted/50 data-[state=selected]:bg-muted border-b transition-colors";
2057
- var TABLE_HEAD = "text-foreground h-10 px-2 text-left align-middle font-medium whitespace-nowrap [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]";
2019
+ var TABLE_HEAD = "text-ink h-10 px-2 text-left align-middle font-medium whitespace-nowrap [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]";
2058
2020
  var TABLE_CELL = "p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]";
2059
- var TABLE_CAPTION = "text-muted-foreground mt-4 text-sm";
2021
+ var TABLE_CAPTION = "text-ink-soft mt-4 text-sm";
2060
2022
 
2061
2023
  // src/components/table.tsx
2062
- import { jsx as jsx26 } from "react/jsx-runtime";
2024
+ import { jsx as jsx25 } from "react/jsx-runtime";
2063
2025
  function Table({ className, ...props }) {
2064
- return /* @__PURE__ */ jsx26(
2026
+ return /* @__PURE__ */ jsx25(
2065
2027
  "div",
2066
2028
  {
2067
2029
  "data-slot": "table-container",
2068
2030
  className: TABLE_CONTAINER,
2069
- children: /* @__PURE__ */ jsx26(
2031
+ children: /* @__PURE__ */ jsx25(
2070
2032
  "table",
2071
2033
  {
2072
2034
  "data-slot": "table",
@@ -2081,7 +2043,7 @@ function TableHeader({
2081
2043
  className,
2082
2044
  ...props
2083
2045
  }) {
2084
- return /* @__PURE__ */ jsx26(
2046
+ return /* @__PURE__ */ jsx25(
2085
2047
  "thead",
2086
2048
  {
2087
2049
  "data-slot": "table-header",
@@ -2094,7 +2056,7 @@ function TableBody({
2094
2056
  className,
2095
2057
  ...props
2096
2058
  }) {
2097
- return /* @__PURE__ */ jsx26(
2059
+ return /* @__PURE__ */ jsx25(
2098
2060
  "tbody",
2099
2061
  {
2100
2062
  "data-slot": "table-body",
@@ -2107,7 +2069,7 @@ function TableFooter({
2107
2069
  className,
2108
2070
  ...props
2109
2071
  }) {
2110
- return /* @__PURE__ */ jsx26(
2072
+ return /* @__PURE__ */ jsx25(
2111
2073
  "tfoot",
2112
2074
  {
2113
2075
  "data-slot": "table-footer",
@@ -2117,7 +2079,7 @@ function TableFooter({
2117
2079
  );
2118
2080
  }
2119
2081
  function TableRow({ className, ...props }) {
2120
- return /* @__PURE__ */ jsx26(
2082
+ return /* @__PURE__ */ jsx25(
2121
2083
  "tr",
2122
2084
  {
2123
2085
  "data-slot": "table-row",
@@ -2127,7 +2089,7 @@ function TableRow({ className, ...props }) {
2127
2089
  );
2128
2090
  }
2129
2091
  function TableHead({ className, ...props }) {
2130
- return /* @__PURE__ */ jsx26(
2092
+ return /* @__PURE__ */ jsx25(
2131
2093
  "th",
2132
2094
  {
2133
2095
  "data-slot": "table-head",
@@ -2137,7 +2099,7 @@ function TableHead({ className, ...props }) {
2137
2099
  );
2138
2100
  }
2139
2101
  function TableCell({ className, ...props }) {
2140
- return /* @__PURE__ */ jsx26(
2102
+ return /* @__PURE__ */ jsx25(
2141
2103
  "td",
2142
2104
  {
2143
2105
  "data-slot": "table-cell",
@@ -2150,7 +2112,7 @@ function TableCaption({
2150
2112
  className,
2151
2113
  ...props
2152
2114
  }) {
2153
- return /* @__PURE__ */ jsx26(
2115
+ return /* @__PURE__ */ jsx25(
2154
2116
  "caption",
2155
2117
  {
2156
2118
  "data-slot": "table-caption",
@@ -2161,7 +2123,7 @@ function TableCaption({
2161
2123
  }
2162
2124
 
2163
2125
  // src/components/accordion.tsx
2164
- import * as React37 from "react";
2126
+ import * as React36 from "react";
2165
2127
 
2166
2128
  // src/generated/accordion.ts
2167
2129
  var ACCORDION_ITEM = "border-b last:border-b-0";
@@ -2171,16 +2133,16 @@ var ACCORDION_CONTENT = "data-[state=closed]:animate-accordion-up data-[state=op
2171
2133
  var ACCORDION_CONTENT_INNER = "pt-0 pb-4";
2172
2134
 
2173
2135
  // src/components/accordion.tsx
2174
- import { jsx as jsx27, jsxs as jsxs7 } from "react/jsx-runtime";
2175
- var AccordionContext = React37.createContext(null);
2136
+ import { jsx as jsx26, jsxs as jsxs7 } from "react/jsx-runtime";
2137
+ var AccordionContext = React36.createContext(null);
2176
2138
  function useAccordion() {
2177
- const ctx = React37.useContext(AccordionContext);
2139
+ const ctx = React36.useContext(AccordionContext);
2178
2140
  if (!ctx) throw new Error("Accordion parts must be used within <Accordion>");
2179
2141
  return ctx;
2180
2142
  }
2181
- var ItemContext = React37.createContext(null);
2143
+ var ItemContext = React36.createContext(null);
2182
2144
  function useItemValue() {
2183
- const value = React37.useContext(ItemContext);
2145
+ const value = React36.useContext(ItemContext);
2184
2146
  if (value === null)
2185
2147
  throw new Error("AccordionTrigger/Content must be used within <AccordionItem>");
2186
2148
  return value;
@@ -2208,7 +2170,7 @@ function Accordion({
2208
2170
  if (open.includes(v)) setOpen(collapsible ? [] : open);
2209
2171
  else setOpen([v]);
2210
2172
  };
2211
- return /* @__PURE__ */ jsx27(AccordionContext.Provider, { value: { isOpen, toggle }, children: /* @__PURE__ */ jsx27("div", { "data-slot": "accordion", ...props, children }) });
2173
+ return /* @__PURE__ */ jsx26(AccordionContext.Provider, { value: { isOpen, toggle }, children: /* @__PURE__ */ jsx26("div", { "data-slot": "accordion", ...props, children }) });
2212
2174
  }
2213
2175
  function AccordionItem({
2214
2176
  className,
@@ -2216,7 +2178,7 @@ function AccordionItem({
2216
2178
  children,
2217
2179
  ...props
2218
2180
  }) {
2219
- return /* @__PURE__ */ jsx27(ItemContext.Provider, { value, children: /* @__PURE__ */ jsx27(
2181
+ return /* @__PURE__ */ jsx26(ItemContext.Provider, { value, children: /* @__PURE__ */ jsx26(
2220
2182
  "div",
2221
2183
  {
2222
2184
  "data-slot": "accordion-item",
@@ -2235,7 +2197,7 @@ function AccordionTrigger({
2235
2197
  const { isOpen, toggle } = useAccordion();
2236
2198
  const value = useItemValue();
2237
2199
  const open = isOpen(value);
2238
- return /* @__PURE__ */ jsx27("h3", { className: ACCORDION_HEADER, "data-slot": "accordion-header", children: /* @__PURE__ */ jsxs7(
2200
+ return /* @__PURE__ */ jsx26("h3", { className: ACCORDION_HEADER, "data-slot": "accordion-header", children: /* @__PURE__ */ jsxs7(
2239
2201
  "button",
2240
2202
  {
2241
2203
  type: "button",
@@ -2250,7 +2212,7 @@ function AccordionTrigger({
2250
2212
  ...props,
2251
2213
  children: [
2252
2214
  children,
2253
- /* @__PURE__ */ jsx27(
2215
+ /* @__PURE__ */ jsx26(
2254
2216
  "svg",
2255
2217
  {
2256
2218
  xmlns: "http://www.w3.org/2000/svg",
@@ -2262,8 +2224,8 @@ function AccordionTrigger({
2262
2224
  strokeWidth: "2",
2263
2225
  strokeLinecap: "round",
2264
2226
  strokeLinejoin: "round",
2265
- className: "text-muted-foreground pointer-events-none size-4 shrink-0 translate-y-0.5 transition-transform duration-200",
2266
- children: /* @__PURE__ */ jsx27("path", { d: "m6 9 6 6 6-6" })
2227
+ className: "text-ink-soft pointer-events-none size-4 shrink-0 translate-y-0.5 transition-transform duration-200",
2228
+ children: /* @__PURE__ */ jsx26("path", { d: "m6 9 6 6 6-6" })
2267
2229
  }
2268
2230
  )
2269
2231
  ]
@@ -2278,26 +2240,26 @@ function AccordionContent({
2278
2240
  const { isOpen } = useAccordion();
2279
2241
  const value = useItemValue();
2280
2242
  if (!isOpen(value)) return null;
2281
- return /* @__PURE__ */ jsx27(
2243
+ return /* @__PURE__ */ jsx26(
2282
2244
  "div",
2283
2245
  {
2284
2246
  "data-slot": "accordion-content",
2285
2247
  "data-state": "open",
2286
2248
  className: ACCORDION_CONTENT,
2287
2249
  ...props,
2288
- children: /* @__PURE__ */ jsx27("div", { className: cn(ACCORDION_CONTENT_INNER, className), children })
2250
+ children: /* @__PURE__ */ jsx26("div", { className: cn(ACCORDION_CONTENT_INNER, className), children })
2289
2251
  }
2290
2252
  );
2291
2253
  }
2292
2254
 
2293
2255
  // src/components/collapsible.tsx
2294
- import * as React38 from "react";
2295
- import { jsx as jsx28 } from "react/jsx-runtime";
2296
- var CollapsibleContext = React38.createContext(
2256
+ import * as React37 from "react";
2257
+ import { jsx as jsx27 } from "react/jsx-runtime";
2258
+ var CollapsibleContext = React37.createContext(
2297
2259
  null
2298
2260
  );
2299
2261
  function useCollapsible() {
2300
- const ctx = React38.useContext(CollapsibleContext);
2262
+ const ctx = React37.useContext(CollapsibleContext);
2301
2263
  if (!ctx) throw new Error("Collapsible parts must be used within <Collapsible>");
2302
2264
  return ctx;
2303
2265
  }
@@ -2313,14 +2275,14 @@ function Collapsible({
2313
2275
  defaultValue: defaultOpen,
2314
2276
  ...onOpenChange ? { onChange: onOpenChange } : {}
2315
2277
  });
2316
- return /* @__PURE__ */ jsx28(CollapsibleContext.Provider, { value: { open: isOpen, setOpen }, children: /* @__PURE__ */ jsx28("div", { "data-slot": "collapsible", "data-state": isOpen ? "open" : "closed", ...props, children }) });
2278
+ return /* @__PURE__ */ jsx27(CollapsibleContext.Provider, { value: { open: isOpen, setOpen }, children: /* @__PURE__ */ jsx27("div", { "data-slot": "collapsible", "data-state": isOpen ? "open" : "closed", ...props, children }) });
2317
2279
  }
2318
2280
  function CollapsibleTrigger({
2319
2281
  onClick,
2320
2282
  ...props
2321
2283
  }) {
2322
2284
  const { open, setOpen } = useCollapsible();
2323
- return /* @__PURE__ */ jsx28(
2285
+ return /* @__PURE__ */ jsx27(
2324
2286
  "button",
2325
2287
  {
2326
2288
  type: "button",
@@ -2341,7 +2303,83 @@ function CollapsibleContent({
2341
2303
  }) {
2342
2304
  const { open } = useCollapsible();
2343
2305
  if (!open) return null;
2344
- return /* @__PURE__ */ jsx28("div", { "data-slot": "collapsible-content", "data-state": "open", ...props, children });
2306
+ return /* @__PURE__ */ jsx27("div", { "data-slot": "collapsible-content", "data-state": "open", ...props, children });
2307
+ }
2308
+
2309
+ // src/components/band.tsx
2310
+ import "react";
2311
+
2312
+ // src/generated/band.ts
2313
+ var polarityClasses = {
2314
+ "light": "light",
2315
+ "dark": "dark"
2316
+ };
2317
+ var surfaceClasses = {
2318
+ "background": "bg-background text-ink",
2319
+ "card": "bg-card text-ink",
2320
+ "muted": "bg-muted text-ink",
2321
+ "primary": "bg-primary text-on-primary"
2322
+ };
2323
+ var SECTION_BASE = "w-full px-[var(--page-px)]";
2324
+ var SECTION_PY = "py-[var(--band-py)]";
2325
+ var SECTION_PY_TIGHT = "py-[var(--band-py-tight)]";
2326
+ var SECTION_HEAD = "flex flex-col gap-2 md:gap-3.5";
2327
+ var EYEBROW = "font-medium text-[10px] md:text-[11.5px] tracking-[0.15em] md:tracking-[0.16em] text-primary";
2328
+ var DISPLAY_BASE = "font-display [font-weight:700] max-w-[54rem] tracking-[-0.005em] leading-[1.16] md:leading-[1.14] text-[calc(1.5625rem*var(--display-scale))] md:text-[calc(2.625rem*var(--display-scale))]";
2329
+ var LEDE = "max-w-[52rem] text-[15px] md:text-[17px] leading-[1.58] text-ink-soft";
2330
+ var PROSE = "text-[14px] md:text-[15px] leading-[1.62] text-ink-soft";
2331
+ var STAT = "flex items-center gap-[7px] whitespace-nowrap";
2332
+ var STAT_FIGURE = "font-semibold";
2333
+ var STAT_LABEL = "text-ink-soft";
2334
+ var CHECK = "font-semibold text-positive";
2335
+
2336
+ // src/components/band.tsx
2337
+ import { jsx as jsx28, jsxs as jsxs8 } from "react/jsx-runtime";
2338
+ function Section({
2339
+ polarity = "light",
2340
+ surface = "background",
2341
+ tight = false,
2342
+ className,
2343
+ ...props
2344
+ }) {
2345
+ return /* @__PURE__ */ jsx28(
2346
+ "section",
2347
+ {
2348
+ "data-slot": "section",
2349
+ className: cn(
2350
+ // conflict-free by construction — a gutter, a scope class, a plane and a
2351
+ // rhythm — so only the caller override is worth a merge
2352
+ `${SECTION_BASE} ${polarityClasses[polarity]} ${surfaceClasses[surface]} ${tight ? SECTION_PY_TIGHT : SECTION_PY}`,
2353
+ className
2354
+ ),
2355
+ ...props
2356
+ }
2357
+ );
2358
+ }
2359
+ function Eyebrow({ className, ...props }) {
2360
+ return /* @__PURE__ */ jsx28("p", { "data-slot": "eyebrow", className: cn(EYEBROW, className), ...props });
2361
+ }
2362
+ function Display({ className, ...props }) {
2363
+ return /* @__PURE__ */ jsx28("h2", { "data-slot": "display", className: cn(DISPLAY_BASE, className), ...props });
2364
+ }
2365
+ function SectionHead({ eyebrow, title, lede, className, ...props }) {
2366
+ return /* @__PURE__ */ jsxs8("div", { "data-slot": "section-head", className: cn(SECTION_HEAD, className), ...props, children: [
2367
+ /* @__PURE__ */ jsx28(Eyebrow, { children: eyebrow }),
2368
+ /* @__PURE__ */ jsx28(Display, { children: title }),
2369
+ lede && /* @__PURE__ */ jsx28("p", { className: LEDE, children: lede })
2370
+ ] });
2371
+ }
2372
+ function Prose({ className, ...props }) {
2373
+ return /* @__PURE__ */ jsx28("p", { "data-slot": "prose", className: cn(PROSE, className), ...props });
2374
+ }
2375
+ function Stat({ figure, label, className, ...props }) {
2376
+ return /* @__PURE__ */ jsxs8("span", { "data-slot": "stat", className: cn(STAT, className), ...props, children: [
2377
+ /* @__PURE__ */ jsx28("span", { className: STAT_FIGURE, children: figure }),
2378
+ /* @__PURE__ */ jsx28("span", { className: STAT_LABEL, children: label })
2379
+ ] });
2380
+ }
2381
+ function Check({ className, ...props }) {
2382
+ return /* @__PURE__ */ jsx28("span", { "data-slot": "check", "aria-hidden": true, className: cn(CHECK, className), ...props, children: "\u2713" });
2345
2383
  }
2346
2384
 
2347
2385
  // src/components/tabs.tsx
@@ -2349,8 +2387,8 @@ import * as React39 from "react";
2349
2387
 
2350
2388
  // src/generated/tabs.ts
2351
2389
  var TABS_ROOT = "flex flex-col gap-2";
2352
- var TABS_LIST = "bg-muted text-muted-foreground inline-flex h-9 w-fit items-center justify-center rounded-lg p-[3px]";
2353
- var TABS_TRIGGER = "data-[state=active]:bg-background focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:outline-ring text-foreground inline-flex h-[calc(100%-1px)] flex-1 items-center justify-center gap-1.5 rounded-md border border-transparent px-2 py-1 text-sm font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:ring-[3px] focus-visible:outline-1 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:shadow-sm [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4";
2390
+ var TABS_LIST = "bg-muted text-ink-soft inline-flex h-9 w-fit items-center justify-center rounded-lg p-[3px]";
2391
+ var TABS_TRIGGER = "data-[state=active]:bg-background focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:outline-ring text-ink inline-flex h-[calc(100%-1px)] flex-1 items-center justify-center gap-1.5 rounded-md border border-transparent px-2 py-1 text-sm font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:ring-[3px] focus-visible:outline-1 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:shadow-sm [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4";
2354
2392
  var TABS_CONTENT = "flex-1 outline-none";
2355
2393
 
2356
2394
  // src/components/tabs.tsx
@@ -2479,15 +2517,17 @@ function TabsContent({
2479
2517
  import "react";
2480
2518
 
2481
2519
  // src/generated/toggle.ts
2482
- var TOGGLE_BASE = "inline-flex items-center justify-center gap-2 rounded-md text-sm font-medium hover:bg-muted hover:text-muted-foreground disabled:pointer-events-none disabled:opacity-50 data-[state=on]:bg-accent data-[state=on]:text-accent-foreground [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 [&_svg]:shrink-0 focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] outline-none transition-[color,box-shadow] aria-invalid:ring-destructive/20 aria-invalid:border-destructive whitespace-nowrap";
2520
+ var TOGGLE_BASE = "inline-flex items-center justify-center gap-2 rounded-[var(--control-radius)] text-sm font-medium hover:bg-muted hover:text-ink-soft disabled:pointer-events-none disabled:opacity-50 data-[state=on]:bg-hover data-[state=on]:text-ink [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 [&_svg]:shrink-0 focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] outline-none transition-[color,box-shadow] aria-invalid:ring-accent-error/20 aria-invalid:border-accent-error whitespace-nowrap";
2483
2521
  var toggleVariantClasses = {
2484
2522
  "default": "bg-transparent",
2485
- "outline": "border border-input bg-transparent shadow-xs hover:bg-accent hover:text-accent-foreground"
2523
+ "outline": "border border-input bg-transparent shadow-xs hover:bg-hover hover:text-ink"
2486
2524
  };
2487
2525
  var toggleSizeClasses = {
2488
2526
  "default": "h-9 px-2 min-w-9",
2527
+ "xs": "h-7 px-1 min-w-7",
2489
2528
  "sm": "h-8 px-1.5 min-w-8",
2490
- "lg": "h-10 px-2.5 min-w-10"
2529
+ "lg": "h-10 px-2.5 min-w-10",
2530
+ "xl": "h-12 px-3 min-w-12"
2491
2531
  };
2492
2532
 
2493
2533
  // src/components/toggle.tsx
@@ -2666,7 +2706,7 @@ function Switch({
2666
2706
  {
2667
2707
  "data-slot": "switch-thumb",
2668
2708
  "data-state": state,
2669
- className: "data-[state=checked]:bg-primary-foreground data-[state=unchecked]:bg-foreground pointer-events-none block size-4 rounded-full ring-0 transition-transform data-[state=checked]:translate-x-[calc(100%-2px)] data-[state=unchecked]:translate-x-0"
2709
+ className: "data-[state=checked]:bg-on-primary data-[state=unchecked]:bg-ink pointer-events-none block size-4 rounded-full ring-0 transition-transform data-[state=checked]:translate-x-[calc(100%-2px)] data-[state=unchecked]:translate-x-0"
2670
2710
  }
2671
2711
  )
2672
2712
  }
@@ -2701,7 +2741,7 @@ function Checkbox({
2701
2741
  "aria-checked": on,
2702
2742
  disabled,
2703
2743
  className: cn(
2704
- "peer border-input data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground data-[state=checked]:border-primary focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 aria-invalid:border-destructive size-4 shrink-0 rounded-[4px] border shadow-xs transition-shadow outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50",
2744
+ "peer border-input data-[state=checked]:bg-primary data-[state=checked]:text-on-primary data-[state=checked]:border-primary focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-accent-error/20 aria-invalid:border-accent-error size-4 shrink-0 rounded-[4px] border shadow-xs transition-shadow outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50",
2705
2745
  className
2706
2746
  ),
2707
2747
  onClick: (e) => {
@@ -2740,7 +2780,7 @@ import * as React44 from "react";
2740
2780
 
2741
2781
  // src/generated/radio-group.ts
2742
2782
  var RADIO_GROUP_ROOT = "grid gap-3";
2743
- var RADIO_GROUP_ITEM = "border-input text-primary focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 aria-invalid:border-destructive aspect-square size-4 shrink-0 rounded-full border shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50";
2783
+ var RADIO_GROUP_ITEM = "border-input text-primary focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-accent-error/20 aria-invalid:border-accent-error aspect-square size-4 shrink-0 rounded-full border shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50";
2744
2784
 
2745
2785
  // src/components/radio-group.tsx
2746
2786
  import { jsx as jsx34 } from "react/jsx-runtime";
@@ -2853,10 +2893,10 @@ import * as React45 from "react";
2853
2893
  var SLIDER_ROOT = "relative flex w-full touch-none items-center select-none data-[disabled]:opacity-50 data-[orientation=vertical]:h-full data-[orientation=vertical]:min-h-44 data-[orientation=vertical]:w-auto data-[orientation=vertical]:flex-col";
2854
2894
  var SLIDER_TRACK = "bg-muted relative grow overflow-hidden rounded-full data-[orientation=horizontal]:h-1.5 data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-1.5";
2855
2895
  var SLIDER_RANGE = "bg-primary absolute data-[orientation=horizontal]:h-full data-[orientation=vertical]:w-full";
2856
- var SLIDER_THUMB = "border-primary ring-ring/50 block size-4 shrink-0 rounded-full border bg-white shadow-sm transition-[color,box-shadow] hover:ring-4 focus-visible:ring-4 focus-visible:outline-hidden disabled:pointer-events-none disabled:opacity-50";
2896
+ var SLIDER_THUMB = "border-primary ring-ring/50 block size-4 shrink-0 rounded-full border bg-ink shadow-sm transition-[color,box-shadow] hover:ring-4 focus-visible:ring-4 focus-visible:outline-hidden disabled:pointer-events-none disabled:opacity-50";
2857
2897
 
2858
2898
  // src/components/slider.tsx
2859
- import { jsx as jsx35, jsxs as jsxs8 } from "react/jsx-runtime";
2899
+ import { jsx as jsx35, jsxs as jsxs9 } from "react/jsx-runtime";
2860
2900
  function clampStep(value, min, max, step) {
2861
2901
  const clamped = Math.min(max, Math.max(min, value));
2862
2902
  if (step <= 0) return clamped;
@@ -2934,7 +2974,7 @@ function Slider({
2934
2974
  };
2935
2975
  const rangeStyle = orientation === "vertical" ? { height: `${percent}%` } : { width: `${percent}%` };
2936
2976
  const thumbStyle = orientation === "vertical" ? { position: "absolute", bottom: `${percent}%`, left: "50%", transform: "translate(-50%, 50%)" } : { position: "absolute", left: `${percent}%`, top: "50%", transform: "translate(-50%, -50%)" };
2937
- return /* @__PURE__ */ jsxs8(
2977
+ return /* @__PURE__ */ jsxs9(
2938
2978
  "span",
2939
2979
  {
2940
2980
  "data-slot": "slider",
@@ -2999,13 +3039,13 @@ var scrollBarOrientations = {
2999
3039
  };
3000
3040
 
3001
3041
  // src/components/scroll-area.tsx
3002
- import { jsx as jsx36, jsxs as jsxs9 } from "react/jsx-runtime";
3042
+ import { jsx as jsx36, jsxs as jsxs10 } from "react/jsx-runtime";
3003
3043
  function ScrollArea({
3004
3044
  className,
3005
3045
  children,
3006
3046
  ...props
3007
3047
  }) {
3008
- return /* @__PURE__ */ jsxs9("div", { "data-slot": "scroll-area", className: cn("relative", className), ...props, children: [
3048
+ return /* @__PURE__ */ jsxs10("div", { "data-slot": "scroll-area", className: cn("relative", className), ...props, children: [
3009
3049
  /* @__PURE__ */ jsx36("div", { "data-slot": "scroll-area-viewport", className: SCROLL_AREA_VIEWPORT, children }),
3010
3050
  /* @__PURE__ */ jsx36(ScrollBar, {})
3011
3051
  ] });
@@ -3031,34 +3071,30 @@ function ScrollBar({
3031
3071
  import * as React47 from "react";
3032
3072
 
3033
3073
  // src/generated/sidebar.ts
3034
- var SIDEBAR_MENU_BUTTON_BASE = "peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left text-sm outline-hidden ring-sidebar-ring transition-[width,height,padding] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 group-has-data-[sidebar=menu-action]/menu-item:pr-8 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:bg-sidebar-accent data-[active=true]:font-medium data-[active=true]:text-sidebar-accent-foreground data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground group-data-[collapsible=icon]:size-8! group-data-[collapsible=icon]:p-2! [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0";
3035
- var sidebarMenuButtonVariantClasses = {
3036
- "default": "hover:bg-sidebar-accent hover:text-sidebar-accent-foreground",
3037
- "outline": "bg-background shadow-[0_0_0_1px_hsl(var(--sidebar-border))] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground hover:shadow-[0_0_0_1px_hsl(var(--sidebar-accent))]"
3038
- };
3074
+ var SIDEBAR_MENU_BUTTON_BASE = "peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left text-sm outline-hidden ring-ring transition-[width,height,padding] hover:bg-hover hover:text-ink focus-visible:ring-2 active:bg-hover active:text-ink disabled:pointer-events-none disabled:opacity-50 group-has-data-[sidebar=menu-action]/menu-item:pr-8 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:bg-hover data-[active=true]:font-medium data-[active=true]:text-ink data-[state=open]:hover:bg-hover data-[state=open]:hover:text-ink group-data-[collapsible=icon]:size-8! group-data-[collapsible=icon]:p-2! [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0";
3039
3075
  var sidebarMenuButtonSizeClasses = {
3076
+ "xs": "h-7 text-xs",
3040
3077
  "default": "h-8 text-sm",
3041
- "sm": "h-7 text-xs",
3042
3078
  "lg": "h-12 text-sm group-data-[collapsible=icon]:p-0!"
3043
3079
  };
3044
- var SIDEBAR_WRAPPER = "group/sidebar-wrapper has-data-[variant=inset]:bg-sidebar flex min-h-svh w-full";
3045
- var SIDEBAR_FLAT = "bg-sidebar text-sidebar-foreground flex h-full w-(--sidebar-width) flex-col";
3046
- var SIDEBAR_INNER = "bg-sidebar group-data-[variant=floating]:border-sidebar-border flex h-full w-full flex-col group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:border group-data-[variant=floating]:shadow-sm";
3047
- var SIDEBAR_TRIGGER = "inline-flex size-7 items-center justify-center rounded-md hover:bg-accent hover:text-accent-foreground";
3048
- var SIDEBAR_RAIL = "hover:after:bg-sidebar-border absolute inset-y-0 z-20 hidden w-4 -translate-x-1/2 transition-all ease-linear group-data-[side=left]:-right-4 group-data-[side=right]:left-0 after:absolute after:inset-y-0 after:left-1/2 after:w-[2px] sm:flex";
3080
+ var SIDEBAR_WRAPPER = "group/sidebar-wrapper has-data-[variant=inset]:bg-secondary flex min-h-svh w-full";
3081
+ var SIDEBAR_FLAT = "bg-secondary text-ink flex h-full w-(--sidebar-width) flex-col";
3082
+ var SIDEBAR_INNER = "bg-secondary group-data-[variant=floating]:border-border flex h-full w-full flex-col group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:border group-data-[variant=floating]:shadow-sm";
3083
+ var SIDEBAR_TRIGGER = "inline-flex size-7 items-center justify-center rounded-md hover:bg-hover hover:text-ink";
3084
+ var SIDEBAR_RAIL = "hover:after:bg-border absolute inset-y-0 z-20 hidden w-4 -translate-x-1/2 transition-all ease-linear group-data-[side=left]:-right-4 group-data-[side=right]:left-0 after:absolute after:inset-y-0 after:left-1/2 after:w-[2px] sm:flex";
3049
3085
  var SIDEBAR_INSET = "bg-background relative flex w-full flex-1 flex-col md:peer-data-[variant=inset]:m-2 md:peer-data-[variant=inset]:ml-0 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow-sm md:peer-data-[variant=inset]:peer-data-[state=collapsed]:ml-2";
3050
3086
  var SIDEBAR_HEADER = "flex flex-col gap-2 p-2";
3051
3087
  var SIDEBAR_FOOTER = "flex flex-col gap-2 p-2";
3052
- var SIDEBAR_SEPARATOR = "bg-sidebar-border mx-2 h-px w-auto shrink-0";
3088
+ var SIDEBAR_SEPARATOR = "bg-border mx-2 h-px w-auto shrink-0";
3053
3089
  var SIDEBAR_CONTENT = "flex min-h-0 flex-1 flex-col gap-2 overflow-auto group-data-[collapsible=icon]:overflow-hidden";
3054
3090
  var SIDEBAR_GROUP = "relative flex w-full min-w-0 flex-col p-2";
3055
- var SIDEBAR_GROUP_LABEL = "text-sidebar-foreground/70 ring-sidebar-ring flex h-8 shrink-0 items-center rounded-md px-2 text-xs font-medium outline-hidden transition-[margin,opacity] duration-200 ease-linear focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0 group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0";
3091
+ var SIDEBAR_GROUP_LABEL = "text-ink/70 ring-ring flex h-8 shrink-0 items-center rounded-md px-2 text-xs font-medium outline-hidden transition-[margin,opacity] duration-200 ease-linear focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0 group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0";
3056
3092
  var SIDEBAR_GROUP_CONTENT = "w-full text-sm";
3057
3093
  var SIDEBAR_MENU = "flex w-full min-w-0 flex-col gap-1";
3058
3094
  var SIDEBAR_MENU_ITEM = "group/menu-item relative";
3059
3095
 
3060
3096
  // src/components/sidebar.tsx
3061
- import { jsx as jsx37, jsxs as jsxs10 } from "react/jsx-runtime";
3097
+ import { jsx as jsx37, jsxs as jsxs11 } from "react/jsx-runtime";
3062
3098
  var SIDEBAR_WIDTH = "16rem";
3063
3099
  var SIDEBAR_WIDTH_ICON = "3rem";
3064
3100
  var SidebarContext = React47.createContext(null);
@@ -3128,7 +3164,7 @@ function Sidebar({
3128
3164
  return /* @__PURE__ */ jsx37(
3129
3165
  "div",
3130
3166
  {
3131
- className: "group peer text-sidebar-foreground hidden md:block",
3167
+ className: "group peer text-ink hidden md:block",
3132
3168
  "data-state": state,
3133
3169
  "data-collapsible": state === "collapsed" ? collapsible : "",
3134
3170
  "data-variant": variant,
@@ -3153,7 +3189,7 @@ function SidebarTrigger({
3153
3189
  ...props
3154
3190
  }) {
3155
3191
  const { toggleSidebar } = useSidebar();
3156
- return /* @__PURE__ */ jsxs10(
3192
+ return /* @__PURE__ */ jsxs11(
3157
3193
  "button",
3158
3194
  {
3159
3195
  type: "button",
@@ -3317,7 +3353,7 @@ function SidebarMenuItem({ className, ...props }) {
3317
3353
  function SidebarMenuButton({
3318
3354
  asChild = false,
3319
3355
  isActive = false,
3320
- variant = "default",
3356
+ variant = "ghost",
3321
3357
  size = "default",
3322
3358
  className,
3323
3359
  ...props
@@ -3332,7 +3368,7 @@ function SidebarMenuButton({
3332
3368
  "data-active": isActive,
3333
3369
  className: cn(
3334
3370
  SIDEBAR_MENU_BUTTON_BASE,
3335
- sidebarMenuButtonVariantClasses[variant],
3371
+ buttonVariantClasses[variant],
3336
3372
  sidebarMenuButtonSizeClasses[size],
3337
3373
  className
3338
3374
  ),
@@ -3361,7 +3397,7 @@ var CAROUSEL_EDGE_FADE_PREV = "pointer-events-none absolute inset-y-0 left-0 w-2
3361
3397
  var CAROUSEL_EDGE_FADE_NEXT = "pointer-events-none absolute inset-y-0 right-0 w-24 bg-gradient-to-l from-background/45 via-background/20 to-transparent";
3362
3398
 
3363
3399
  // src/components/carousel.tsx
3364
- import { Fragment as Fragment4, jsx as jsx38, jsxs as jsxs11 } from "react/jsx-runtime";
3400
+ import { Fragment as Fragment4, jsx as jsx38, jsxs as jsxs12 } from "react/jsx-runtime";
3365
3401
  var CarouselContext = React48.createContext(null);
3366
3402
  function useCarousel() {
3367
3403
  const context = React48.useContext(CarouselContext);
@@ -3482,7 +3518,7 @@ function CarouselEdgeFade({
3482
3518
  className
3483
3519
  }) {
3484
3520
  const { canScrollPrev, canScrollNext } = useCarousel();
3485
- return /* @__PURE__ */ jsxs11(Fragment4, { children: [
3521
+ return /* @__PURE__ */ jsxs12(Fragment4, { children: [
3486
3522
  /* @__PURE__ */ jsx38(
3487
3523
  "div",
3488
3524
  {
@@ -3514,7 +3550,7 @@ function CarouselPrevious({
3514
3550
  ...props
3515
3551
  }) {
3516
3552
  const { orientation, scrollPrev, canScrollPrev } = useCarousel();
3517
- return /* @__PURE__ */ jsxs11(
3553
+ return /* @__PURE__ */ jsxs12(
3518
3554
  Button,
3519
3555
  {
3520
3556
  "data-slot": "carousel-previous",
@@ -3555,7 +3591,7 @@ function CarouselNext({
3555
3591
  ...props
3556
3592
  }) {
3557
3593
  const { orientation, scrollNext, canScrollNext } = useCarousel();
3558
- return /* @__PURE__ */ jsxs11(
3594
+ return /* @__PURE__ */ jsxs12(
3559
3595
  Button,
3560
3596
  {
3561
3597
  "data-slot": "carousel-next",
@@ -3597,12 +3633,12 @@ import * as React49 from "react";
3597
3633
  var INPUT_OTP_CONTAINER = "relative flex items-center gap-2 has-disabled:opacity-50";
3598
3634
  var INPUT_OTP_INPUT = "absolute inset-0 h-full w-full opacity-0 disabled:cursor-not-allowed";
3599
3635
  var INPUT_OTP_GROUP = "flex items-center";
3600
- var INPUT_OTP_SLOT = "data-[active=true]:border-ring data-[active=true]:ring-ring/50 data-[active=true]:aria-invalid:ring-destructive/20 aria-invalid:border-destructive data-[active=true]:aria-invalid:border-destructive border-input relative flex h-9 w-9 items-center justify-center border-y border-r text-sm shadow-xs transition-all outline-none first:rounded-l-md first:border-l last:rounded-r-md data-[active=true]:z-10 data-[active=true]:ring-[3px]";
3636
+ var INPUT_OTP_SLOT = "data-[active=true]:border-ring data-[active=true]:ring-ring/50 data-[active=true]:aria-invalid:ring-accent-error/20 aria-invalid:border-accent-error data-[active=true]:aria-invalid:border-accent-error border-input relative flex h-9 w-9 items-center justify-center border-y border-r text-sm shadow-xs transition-all outline-none first:rounded-l-md first:border-l last:rounded-r-md data-[active=true]:z-10 data-[active=true]:ring-[3px]";
3601
3637
  var INPUT_OTP_SLOT_CARET_WRAPPER = "pointer-events-none absolute inset-0 flex items-center justify-center";
3602
- var INPUT_OTP_SLOT_CARET = "animate-caret-blink bg-foreground h-4 w-px duration-1000";
3638
+ var INPUT_OTP_SLOT_CARET = "animate-caret-blink bg-ink h-4 w-px duration-1000";
3603
3639
 
3604
3640
  // src/components/input-otp.tsx
3605
- import { jsx as jsx39, jsxs as jsxs12 } from "react/jsx-runtime";
3641
+ import { jsx as jsx39, jsxs as jsxs13 } from "react/jsx-runtime";
3606
3642
  var InputOTPContext = React49.createContext(null);
3607
3643
  function useInputOTP() {
3608
3644
  const context = React49.useContext(InputOTPContext);
@@ -3629,7 +3665,7 @@ function InputOTP({
3629
3665
  });
3630
3666
  const [focused, setFocused] = React49.useState(false);
3631
3667
  const activeIndex = focused ? Math.min(value.length, maxLength - 1) : -1;
3632
- return /* @__PURE__ */ jsx39(InputOTPContext.Provider, { value: { value, maxLength, activeIndex }, children: /* @__PURE__ */ jsxs12(
3668
+ return /* @__PURE__ */ jsx39(InputOTPContext.Provider, { value: { value, maxLength, activeIndex }, children: /* @__PURE__ */ jsxs13(
3633
3669
  "div",
3634
3670
  {
3635
3671
  "data-slot": "input-otp",
@@ -3673,7 +3709,7 @@ function InputOTPSlot({ index, className, ...props }) {
3673
3709
  const char = value[index];
3674
3710
  const isActive = activeIndex === index;
3675
3711
  const hasFakeCaret = isActive && char === void 0;
3676
- return /* @__PURE__ */ jsxs12(
3712
+ return /* @__PURE__ */ jsxs13(
3677
3713
  "div",
3678
3714
  {
3679
3715
  "data-slot": "input-otp-slot",
@@ -3708,7 +3744,7 @@ function InputOTPSeparator({ ...props }) {
3708
3744
  import * as React50 from "react";
3709
3745
 
3710
3746
  // src/generated/tooltip.ts
3711
- var TOOLTIP_CONTENT = "bg-foreground text-background animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-fit rounded-md px-3 py-1.5 text-xs text-balance";
3747
+ var TOOLTIP_CONTENT = "bg-ink text-background animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-fit rounded-md px-3 py-1.5 text-xs text-balance";
3712
3748
 
3713
3749
  // src/components/tooltip.tsx
3714
3750
  import { Fragment as Fragment5, jsx as jsx40 } from "react/jsx-runtime";
@@ -3801,7 +3837,7 @@ function TooltipContent({
3801
3837
  import * as React51 from "react";
3802
3838
 
3803
3839
  // src/generated/popover.ts
3804
- var POPOVER_CONTENT = "bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-72 rounded-md border p-4 shadow-md outline-hidden";
3840
+ var POPOVER_CONTENT = "bg-popover text-ink data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-72 rounded-md border p-4 shadow-md outline-hidden";
3805
3841
 
3806
3842
  // src/components/popover.tsx
3807
3843
  import { jsx as jsx41 } from "react/jsx-runtime";
@@ -3893,7 +3929,7 @@ function PopoverContent({
3893
3929
 
3894
3930
  // src/components/info-tip.tsx
3895
3931
  import * as React52 from "react";
3896
- import { jsx as jsx42, jsxs as jsxs13 } from "react/jsx-runtime";
3932
+ import { jsx as jsx42, jsxs as jsxs14 } from "react/jsx-runtime";
3897
3933
  var InfoTipContext = React52.createContext(null);
3898
3934
  function useInfoTip() {
3899
3935
  const ctx = React52.useContext(InfoTipContext);
@@ -3922,7 +3958,7 @@ function InfoTip({
3922
3958
  );
3923
3959
  }
3924
3960
  function InfoGlyph2({ className }) {
3925
- return /* @__PURE__ */ jsxs13(
3961
+ return /* @__PURE__ */ jsxs14(
3926
3962
  "svg",
3927
3963
  {
3928
3964
  viewBox: "0 0 24 24",
@@ -3971,7 +4007,7 @@ function InfoTipTrigger({
3971
4007
  "aria-controls": contentId,
3972
4008
  ref: anchorRef,
3973
4009
  className: cn(
3974
- "inline-flex size-4 shrink-0 cursor-help items-center justify-center rounded-full align-middle text-muted-foreground outline-none transition-colors hover:text-foreground focus-visible:ring-2 focus-visible:ring-ring data-[state=open]:text-main-accent-t1",
4010
+ "inline-flex size-4 shrink-0 cursor-help items-center justify-center rounded-full align-middle text-ink-soft outline-none transition-colors hover:text-ink focus-visible:ring-2 focus-visible:ring-ring data-[state=open]:text-accent-debug",
3975
4011
  className
3976
4012
  ),
3977
4013
  onClick: (e) => {
@@ -4041,7 +4077,7 @@ function InfoTipContent({
4041
4077
  import * as React53 from "react";
4042
4078
 
4043
4079
  // src/generated/hover-card.ts
4044
- var HOVER_CARD_CONTENT = "bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-64 rounded-md border p-4 shadow-md outline-hidden";
4080
+ var HOVER_CARD_CONTENT = "bg-popover text-ink data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-64 rounded-md border p-4 shadow-md outline-hidden";
4045
4081
 
4046
4082
  // src/components/hover-card.tsx
4047
4083
  import { jsx as jsx43 } from "react/jsx-runtime";
@@ -4123,18 +4159,18 @@ function HoverCardContent({
4123
4159
  import * as React54 from "react";
4124
4160
 
4125
4161
  // src/generated/dropdown-menu.ts
4126
- var DROPDOWN_MENU_CONTENT = "bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 min-w-[8rem] origin-(--radix-dropdown-menu-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border p-1 shadow-md";
4127
- var DROPDOWN_MENU_SUB_CONTENT = "bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 min-w-[8rem] origin-(--radix-dropdown-menu-content-transform-origin) overflow-hidden rounded-md border p-1 shadow-lg";
4128
- var DROPDOWN_MENU_ITEM = "focus:bg-accent focus:text-accent-foreground data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 data-[variant=destructive]:focus:text-destructive data-[variant=destructive]:*:[svg]:!text-destructive [&_svg:not([class*='text-'])]:text-muted-foreground relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[inset]:pl-8 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4";
4129
- var DROPDOWN_MENU_CHECK_ITEM = "focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center gap-2 rounded-sm py-1.5 pr-2 pl-8 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4";
4130
- var DROPDOWN_MENU_SUB_TRIGGER = "focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[inset]:pl-8 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4";
4162
+ var DROPDOWN_MENU_CONTENT = "bg-popover text-ink data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 min-w-[8rem] origin-(--radix-dropdown-menu-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border p-1 shadow-md";
4163
+ var DROPDOWN_MENU_SUB_CONTENT = "bg-popover text-ink data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 min-w-[8rem] origin-(--radix-dropdown-menu-content-transform-origin) overflow-hidden rounded-md border p-1 shadow-lg";
4164
+ var DROPDOWN_MENU_ITEM = "focus:bg-hover focus:text-ink data-[variant=destructive]:text-accent-error data-[variant=destructive]:focus:bg-accent-error/10 data-[variant=destructive]:focus:text-accent-error data-[variant=destructive]:*:[svg]:!text-accent-error [&_svg:not([class*='text-'])]:text-ink-soft relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[inset]:pl-8 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4";
4165
+ var DROPDOWN_MENU_CHECK_ITEM = "focus:bg-hover focus:text-ink relative flex cursor-default items-center gap-2 rounded-sm py-1.5 pr-2 pl-8 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4";
4166
+ var DROPDOWN_MENU_SUB_TRIGGER = "focus:bg-hover focus:text-ink data-[state=open]:bg-hover data-[state=open]:text-ink [&_svg:not([class*='text-'])]:text-ink-soft flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[inset]:pl-8 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4";
4131
4167
  var DROPDOWN_MENU_ITEM_INDICATOR = "pointer-events-none absolute left-2 flex size-3.5 items-center justify-center";
4132
4168
  var DROPDOWN_MENU_LABEL = "px-2 py-1.5 text-sm font-medium data-[inset]:pl-8";
4133
4169
  var DROPDOWN_MENU_SEPARATOR = "bg-border -mx-1 my-1 h-px";
4134
- var DROPDOWN_MENU_SHORTCUT = "text-muted-foreground ml-auto text-xs tracking-widest";
4170
+ var DROPDOWN_MENU_SHORTCUT = "text-ink-soft ml-auto text-xs tracking-widest";
4135
4171
 
4136
4172
  // src/components/dropdown-menu.tsx
4137
- import { jsx as jsx44, jsxs as jsxs14 } from "react/jsx-runtime";
4173
+ import { jsx as jsx44, jsxs as jsxs15 } from "react/jsx-runtime";
4138
4174
  var DropdownMenuContext = React54.createContext(
4139
4175
  null
4140
4176
  );
@@ -4285,7 +4321,7 @@ function DropdownMenuCheckboxItem({
4285
4321
  ...props
4286
4322
  }) {
4287
4323
  const close = React54.useContext(DropdownMenuCloseContext);
4288
- return /* @__PURE__ */ jsxs14(
4324
+ return /* @__PURE__ */ jsxs15(
4289
4325
  "div",
4290
4326
  {
4291
4327
  "data-slot": "dropdown-menu-checkbox-item",
@@ -4336,7 +4372,7 @@ function DropdownMenuRadioItem({
4336
4372
  const close = React54.useContext(DropdownMenuCloseContext);
4337
4373
  const group = React54.useContext(DropdownMenuRadioGroupContext);
4338
4374
  const checked = group?.value === value;
4339
- return /* @__PURE__ */ jsxs14(
4375
+ return /* @__PURE__ */ jsxs15(
4340
4376
  "div",
4341
4377
  {
4342
4378
  "data-slot": "dropdown-menu-radio-item",
@@ -4406,7 +4442,7 @@ function DropdownMenuSub({ open, defaultOpen = false, onOpenChange, children })
4406
4442
  }
4407
4443
  function DropdownMenuSubTrigger({ className, inset, children, onClick, ...props }) {
4408
4444
  const ctx = React54.useContext(DropdownMenuSubContext);
4409
- return /* @__PURE__ */ jsxs14(
4445
+ return /* @__PURE__ */ jsxs15(
4410
4446
  "div",
4411
4447
  {
4412
4448
  "data-slot": "dropdown-menu-sub-trigger",
@@ -4455,17 +4491,17 @@ function DropdownMenuSubContent({ className, children, ...props }) {
4455
4491
  import * as React55 from "react";
4456
4492
 
4457
4493
  // src/generated/context-menu.ts
4458
- var CONTEXT_MENU_CONTENT = "bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 min-w-[8rem] origin-(--radix-context-menu-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border p-1 shadow-md";
4459
- var CONTEXT_MENU_SUB_CONTENT = "bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 min-w-[8rem] origin-(--radix-context-menu-content-transform-origin) overflow-hidden rounded-md border p-1 shadow-lg";
4460
- var CONTEXT_MENU_ITEM = "focus:bg-accent focus:text-accent-foreground data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 data-[variant=destructive]:focus:text-destructive data-[variant=destructive]:*:[svg]:!text-destructive [&_svg:not([class*='text-'])]:text-muted-foreground relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[inset]:pl-8 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4";
4461
- var CONTEXT_MENU_CHECK_ITEM = "focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center gap-2 rounded-sm py-1.5 pr-2 pl-8 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4";
4462
- var CONTEXT_MENU_SUB_TRIGGER = "focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground flex cursor-default items-center rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[inset]:pl-8 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4";
4463
- var CONTEXT_MENU_LABEL = "text-foreground px-2 py-1.5 text-sm font-medium data-[inset]:pl-8";
4494
+ var CONTEXT_MENU_CONTENT = "bg-popover text-ink data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 min-w-[8rem] origin-(--radix-context-menu-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border p-1 shadow-md";
4495
+ var CONTEXT_MENU_SUB_CONTENT = "bg-popover text-ink data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 min-w-[8rem] origin-(--radix-context-menu-content-transform-origin) overflow-hidden rounded-md border p-1 shadow-lg";
4496
+ var CONTEXT_MENU_ITEM = "focus:bg-hover focus:text-ink data-[variant=destructive]:text-accent-error data-[variant=destructive]:focus:bg-accent-error/10 data-[variant=destructive]:focus:text-accent-error data-[variant=destructive]:*:[svg]:!text-accent-error [&_svg:not([class*='text-'])]:text-ink-soft relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[inset]:pl-8 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4";
4497
+ var CONTEXT_MENU_CHECK_ITEM = "focus:bg-hover focus:text-ink relative flex cursor-default items-center gap-2 rounded-sm py-1.5 pr-2 pl-8 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4";
4498
+ var CONTEXT_MENU_SUB_TRIGGER = "focus:bg-hover focus:text-ink data-[state=open]:bg-hover data-[state=open]:text-ink [&_svg:not([class*='text-'])]:text-ink-soft flex cursor-default items-center rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[inset]:pl-8 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4";
4499
+ var CONTEXT_MENU_LABEL = "text-ink px-2 py-1.5 text-sm font-medium data-[inset]:pl-8";
4464
4500
  var CONTEXT_MENU_SEPARATOR = "bg-border -mx-1 my-1 h-px";
4465
- var CONTEXT_MENU_SHORTCUT = "text-muted-foreground ml-auto text-xs tracking-widest";
4501
+ var CONTEXT_MENU_SHORTCUT = "text-ink-soft ml-auto text-xs tracking-widest";
4466
4502
 
4467
4503
  // src/components/context-menu.tsx
4468
- import { jsx as jsx45, jsxs as jsxs15 } from "react/jsx-runtime";
4504
+ import { jsx as jsx45, jsxs as jsxs16 } from "react/jsx-runtime";
4469
4505
  var ContextMenuContext = React55.createContext(null);
4470
4506
  function useContextMenu() {
4471
4507
  const ctx = React55.useContext(ContextMenuContext);
@@ -4599,7 +4635,7 @@ function ContextMenuCheckboxItem({
4599
4635
  ...props
4600
4636
  }) {
4601
4637
  const close = React55.useContext(ContextMenuCloseContext);
4602
- return /* @__PURE__ */ jsxs15(
4638
+ return /* @__PURE__ */ jsxs16(
4603
4639
  "div",
4604
4640
  {
4605
4641
  "data-slot": "context-menu-checkbox-item",
@@ -4650,7 +4686,7 @@ function ContextMenuRadioItem({
4650
4686
  const close = React55.useContext(ContextMenuCloseContext);
4651
4687
  const group = React55.useContext(ContextMenuRadioGroupContext);
4652
4688
  const checked = group?.value === value;
4653
- return /* @__PURE__ */ jsxs15(
4689
+ return /* @__PURE__ */ jsxs16(
4654
4690
  "div",
4655
4691
  {
4656
4692
  "data-slot": "context-menu-radio-item",
@@ -4720,7 +4756,7 @@ function ContextMenuSub({ open, defaultOpen = false, onOpenChange, children }) {
4720
4756
  }
4721
4757
  function ContextMenuSubTrigger({ className, inset, children, onClick, ...props }) {
4722
4758
  const ctx = React55.useContext(ContextMenuSubContext);
4723
- return /* @__PURE__ */ jsxs15(
4759
+ return /* @__PURE__ */ jsxs16(
4724
4760
  "div",
4725
4761
  {
4726
4762
  "data-slot": "context-menu-sub-trigger",
@@ -4770,20 +4806,20 @@ import * as React56 from "react";
4770
4806
 
4771
4807
  // src/generated/menubar.ts
4772
4808
  var MENUBAR_ROOT = "bg-background flex h-9 items-center gap-1 rounded-md border p-1 shadow-xs";
4773
- var MENUBAR_TRIGGER = "focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground flex items-center rounded-sm px-2 py-1 text-sm font-medium outline-hidden select-none";
4774
- var MENUBAR_CONTENT = "bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 absolute z-50 min-w-[12rem] overflow-hidden rounded-md border p-1 shadow-md";
4775
- var MENUBAR_ITEM = "focus:bg-accent focus:text-accent-foreground data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 data-[variant=destructive]:focus:text-destructive data-[variant=destructive]:*:[svg]:!text-destructive [&_svg:not([class*='text-'])]:text-muted-foreground relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[inset]:pl-8 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4";
4776
- var MENUBAR_CHECKBOX_ITEM = "focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center gap-2 rounded-xs py-1.5 pr-2 pl-8 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4";
4777
- var MENUBAR_RADIO_ITEM = "focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center gap-2 rounded-xs py-1.5 pr-2 pl-8 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4";
4809
+ var MENUBAR_TRIGGER = "focus:bg-hover focus:text-ink data-[state=open]:bg-hover data-[state=open]:text-ink flex items-center rounded-sm px-2 py-1 text-sm font-medium outline-hidden select-none";
4810
+ var MENUBAR_CONTENT = "bg-popover text-ink data-[state=open]:animate-in data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 absolute z-50 min-w-[12rem] overflow-hidden rounded-md border p-1 shadow-md";
4811
+ var MENUBAR_ITEM = "focus:bg-hover focus:text-ink data-[variant=destructive]:text-accent-error data-[variant=destructive]:focus:bg-accent-error/10 data-[variant=destructive]:focus:text-accent-error data-[variant=destructive]:*:[svg]:!text-accent-error [&_svg:not([class*='text-'])]:text-ink-soft relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[inset]:pl-8 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4";
4812
+ var MENUBAR_CHECKBOX_ITEM = "focus:bg-hover focus:text-ink relative flex cursor-default items-center gap-2 rounded-xs py-1.5 pr-2 pl-8 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4";
4813
+ var MENUBAR_RADIO_ITEM = "focus:bg-hover focus:text-ink relative flex cursor-default items-center gap-2 rounded-xs py-1.5 pr-2 pl-8 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4";
4778
4814
  var MENUBAR_ITEM_INDICATOR = "pointer-events-none absolute left-2 flex size-3.5 items-center justify-center";
4779
4815
  var MENUBAR_LABEL = "px-2 py-1.5 text-sm font-medium data-[inset]:pl-8";
4780
4816
  var MENUBAR_SEPARATOR = "bg-border -mx-1 my-1 h-px";
4781
- var MENUBAR_SHORTCUT = "text-muted-foreground ml-auto text-xs tracking-widest";
4782
- var MENUBAR_SUB_TRIGGER = "focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground flex cursor-default items-center rounded-sm px-2 py-1.5 text-sm outline-none select-none data-[inset]:pl-8";
4783
- var MENUBAR_SUB_CONTENT = "bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 absolute z-50 min-w-[8rem] overflow-hidden rounded-md border p-1 shadow-lg";
4817
+ var MENUBAR_SHORTCUT = "text-ink-soft ml-auto text-xs tracking-widest";
4818
+ var MENUBAR_SUB_TRIGGER = "focus:bg-hover focus:text-ink data-[state=open]:bg-hover data-[state=open]:text-ink flex cursor-default items-center rounded-sm px-2 py-1.5 text-sm outline-none select-none data-[inset]:pl-8";
4819
+ var MENUBAR_SUB_CONTENT = "bg-popover text-ink data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 absolute z-50 min-w-[8rem] overflow-hidden rounded-md border p-1 shadow-lg";
4784
4820
 
4785
4821
  // src/components/menubar.tsx
4786
- import { jsx as jsx46, jsxs as jsxs16 } from "react/jsx-runtime";
4822
+ import { jsx as jsx46, jsxs as jsxs17 } from "react/jsx-runtime";
4787
4823
  var MenubarMenuContext = React56.createContext(null);
4788
4824
  function useMenu() {
4789
4825
  const ctx = React56.useContext(MenubarMenuContext);
@@ -4896,7 +4932,7 @@ function MenubarCheckboxItem({
4896
4932
  checked,
4897
4933
  ...props
4898
4934
  }) {
4899
- return /* @__PURE__ */ jsxs16(
4935
+ return /* @__PURE__ */ jsxs17(
4900
4936
  "div",
4901
4937
  {
4902
4938
  "data-slot": "menubar-checkbox-item",
@@ -4946,7 +4982,7 @@ function MenubarRadioItem({
4946
4982
  }) {
4947
4983
  const ctx = React56.useContext(MenubarRadioGroupContext);
4948
4984
  const checked = ctx?.value === value;
4949
- return /* @__PURE__ */ jsxs16(
4985
+ return /* @__PURE__ */ jsxs17(
4950
4986
  "div",
4951
4987
  {
4952
4988
  "data-slot": "menubar-radio-item",
@@ -5021,7 +5057,7 @@ function MenubarSubTrigger({
5021
5057
  ...props
5022
5058
  }) {
5023
5059
  const { open, setOpen } = useSub();
5024
- return /* @__PURE__ */ jsxs16(
5060
+ return /* @__PURE__ */ jsxs17(
5025
5061
  "div",
5026
5062
  {
5027
5063
  "data-slot": "menubar-sub-trigger",
@@ -5079,14 +5115,14 @@ import * as React57 from "react";
5079
5115
  var NAVIGATION_MENU = "group/navigation-menu relative flex max-w-max flex-1 items-center justify-center";
5080
5116
  var NAVIGATION_MENU_LIST = "group flex flex-1 list-none items-center justify-center gap-1";
5081
5117
  var NAVIGATION_MENU_ITEM = "relative";
5082
- var NAVIGATION_MENU_TRIGGER_STYLE = "group inline-flex h-9 w-max items-center justify-center rounded-md bg-background px-4 py-2 text-sm font-medium hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground disabled:pointer-events-none disabled:opacity-50 data-[state=open]:hover:bg-accent data-[state=open]:text-accent-foreground data-[state=open]:focus:bg-accent data-[state=open]:bg-accent/50 focus-visible:ring-ring/50 outline-none transition-[color,box-shadow] focus-visible:ring-[3px] focus-visible:outline-1";
5083
- var NAVIGATION_MENU_CONTENT = "data-[motion^=from-]:animate-in data-[motion^=to-]:animate-out data-[motion^=from-]:fade-in data-[motion^=to-]:fade-out data-[motion=from-end]:slide-in-from-right-52 data-[motion=from-start]:slide-in-from-left-52 data-[motion=to-end]:slide-out-to-right-52 data-[motion=to-start]:slide-out-to-left-52 top-0 left-0 w-full p-2 pr-2.5 md:absolute md:w-auto group-data-[viewport=false]/navigation-menu:bg-popover group-data-[viewport=false]/navigation-menu:text-popover-foreground group-data-[viewport=false]/navigation-menu:data-[state=open]:animate-in group-data-[viewport=false]/navigation-menu:data-[state=closed]:animate-out group-data-[viewport=false]/navigation-menu:data-[state=closed]:zoom-out-95 group-data-[viewport=false]/navigation-menu:data-[state=open]:zoom-in-95 group-data-[viewport=false]/navigation-menu:data-[state=open]:fade-in-0 group-data-[viewport=false]/navigation-menu:data-[state=closed]:fade-out-0 group-data-[viewport=false]/navigation-menu:top-full group-data-[viewport=false]/navigation-menu:mt-1.5 group-data-[viewport=false]/navigation-menu:overflow-hidden group-data-[viewport=false]/navigation-menu:rounded-md group-data-[viewport=false]/navigation-menu:border group-data-[viewport=false]/navigation-menu:shadow group-data-[viewport=false]/navigation-menu:duration-200 **:data-[slot=navigation-menu-link]:focus:ring-0 **:data-[slot=navigation-menu-link]:focus:outline-none";
5084
- var NAVIGATION_MENU_LINK = "data-[active=true]:focus:bg-accent data-[active=true]:hover:bg-accent data-[active=true]:bg-accent/50 data-[active=true]:text-accent-foreground hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground focus-visible:ring-ring/50 [&_svg:not([class*='text-'])]:text-muted-foreground flex flex-col gap-1 rounded-sm p-2 text-sm transition-all outline-none focus-visible:ring-[3px] focus-visible:outline-1 [&_svg:not([class*='size-'])]:size-4";
5118
+ var NAVIGATION_MENU_TRIGGER_STYLE = "group inline-flex h-9 w-max items-center justify-center rounded-md bg-background px-4 py-2 text-sm font-medium hover:bg-hover hover:text-ink focus:bg-hover focus:text-ink disabled:pointer-events-none disabled:opacity-50 data-[state=open]:hover:bg-hover data-[state=open]:text-ink data-[state=open]:focus:bg-hover data-[state=open]:bg-hover/50 focus-visible:ring-ring/50 outline-none transition-[color,box-shadow] focus-visible:ring-[3px] focus-visible:outline-1";
5119
+ var NAVIGATION_MENU_CONTENT = "data-[motion^=from-]:animate-in data-[motion^=to-]:animate-out data-[motion^=from-]:fade-in data-[motion^=to-]:fade-out data-[motion=from-end]:slide-in-from-right-52 data-[motion=from-start]:slide-in-from-left-52 data-[motion=to-end]:slide-out-to-right-52 data-[motion=to-start]:slide-out-to-left-52 top-0 left-0 w-full p-2 pr-2.5 md:absolute md:w-auto group-data-[viewport=false]/navigation-menu:bg-popover group-data-[viewport=false]/navigation-menu:text-ink group-data-[viewport=false]/navigation-menu:data-[state=open]:animate-in group-data-[viewport=false]/navigation-menu:data-[state=closed]:animate-out group-data-[viewport=false]/navigation-menu:data-[state=closed]:zoom-out-95 group-data-[viewport=false]/navigation-menu:data-[state=open]:zoom-in-95 group-data-[viewport=false]/navigation-menu:data-[state=open]:fade-in-0 group-data-[viewport=false]/navigation-menu:data-[state=closed]:fade-out-0 group-data-[viewport=false]/navigation-menu:top-full group-data-[viewport=false]/navigation-menu:mt-1.5 group-data-[viewport=false]/navigation-menu:overflow-hidden group-data-[viewport=false]/navigation-menu:rounded-md group-data-[viewport=false]/navigation-menu:border group-data-[viewport=false]/navigation-menu:shadow group-data-[viewport=false]/navigation-menu:duration-200 **:data-[slot=navigation-menu-link]:focus:ring-0 **:data-[slot=navigation-menu-link]:focus:outline-none";
5120
+ var NAVIGATION_MENU_LINK = "data-[active=true]:focus:bg-hover data-[active=true]:hover:bg-hover data-[active=true]:bg-hover/50 data-[active=true]:text-ink hover:bg-hover hover:text-ink focus:bg-hover focus:text-ink focus-visible:ring-ring/50 [&_svg:not([class*='text-'])]:text-ink-soft flex flex-col gap-1 rounded-sm p-2 text-sm transition-all outline-none focus-visible:ring-[3px] focus-visible:outline-1 [&_svg:not([class*='size-'])]:size-4";
5085
5121
  var NAVIGATION_MENU_INDICATOR = "data-[state=visible]:animate-in data-[state=hidden]:animate-out data-[state=hidden]:fade-out data-[state=visible]:fade-in top-full z-[1] flex h-1.5 items-end justify-center overflow-hidden";
5086
- var NAVIGATION_MENU_VIEWPORT = "origin-top-center bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-90 relative mt-1.5 h-[var(--radix-navigation-menu-viewport-height)] w-full overflow-hidden rounded-md border shadow md:w-[var(--radix-navigation-menu-viewport-width)]";
5122
+ var NAVIGATION_MENU_VIEWPORT = "origin-top-center bg-popover text-ink data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-90 relative mt-1.5 h-[var(--radix-navigation-menu-viewport-height)] w-full overflow-hidden rounded-md border shadow md:w-[var(--radix-navigation-menu-viewport-width)]";
5087
5123
 
5088
5124
  // src/components/navigation-menu.tsx
5089
- import { jsx as jsx47, jsxs as jsxs17 } from "react/jsx-runtime";
5125
+ import { jsx as jsx47, jsxs as jsxs18 } from "react/jsx-runtime";
5090
5126
  function navigationMenuTriggerStyle() {
5091
5127
  return NAVIGATION_MENU_TRIGGER_STYLE;
5092
5128
  }
@@ -5102,7 +5138,7 @@ function NavigationMenu({
5102
5138
  viewport = true,
5103
5139
  ...props
5104
5140
  }) {
5105
- return /* @__PURE__ */ jsxs17(
5141
+ return /* @__PURE__ */ jsxs18(
5106
5142
  "nav",
5107
5143
  {
5108
5144
  "data-slot": "navigation-menu",
@@ -5157,7 +5193,7 @@ function NavigationMenuTrigger({
5157
5193
  ...props
5158
5194
  }) {
5159
5195
  const { open, setOpen, triggerRef } = useItem();
5160
- return /* @__PURE__ */ jsxs17(
5196
+ return /* @__PURE__ */ jsxs18(
5161
5197
  "button",
5162
5198
  {
5163
5199
  ref: triggerRef,
@@ -5271,10 +5307,10 @@ var DIALOG_CLOSE = "ring-offset-background focus:ring-ring absolute top-4 right-
5271
5307
  var DIALOG_HEADER = "flex flex-col gap-2 text-center sm:text-left";
5272
5308
  var DIALOG_FOOTER = "flex flex-col-reverse gap-2 sm:flex-row sm:justify-end";
5273
5309
  var DIALOG_TITLE = "text-lg leading-none font-semibold";
5274
- var DIALOG_DESCRIPTION = "text-muted-foreground text-sm";
5310
+ var DIALOG_DESCRIPTION = "text-ink-soft text-sm";
5275
5311
 
5276
5312
  // src/components/dialog.tsx
5277
- import { Fragment as Fragment6, jsx as jsx48, jsxs as jsxs18 } from "react/jsx-runtime";
5313
+ import { Fragment as Fragment6, jsx as jsx48, jsxs as jsxs19 } from "react/jsx-runtime";
5278
5314
  var DialogContext = React58.createContext(null);
5279
5315
  function useDialog() {
5280
5316
  const ctx = React58.useContext(DialogContext);
@@ -5362,9 +5398,9 @@ function DialogContent({
5362
5398
  };
5363
5399
  }, [open]);
5364
5400
  if (!isPresent) return null;
5365
- return /* @__PURE__ */ jsxs18(Portal, { children: [
5401
+ return /* @__PURE__ */ jsxs19(Portal, { children: [
5366
5402
  /* @__PURE__ */ jsx48(DialogOverlay, {}),
5367
- /* @__PURE__ */ jsxs18(
5403
+ /* @__PURE__ */ jsxs19(
5368
5404
  "div",
5369
5405
  {
5370
5406
  "data-slot": "dialog-content",
@@ -5376,7 +5412,7 @@ function DialogContent({
5376
5412
  ...props,
5377
5413
  children: [
5378
5414
  children,
5379
- showCloseButton && /* @__PURE__ */ jsxs18(
5415
+ showCloseButton && /* @__PURE__ */ jsxs19(
5380
5416
  "button",
5381
5417
  {
5382
5418
  type: "button",
@@ -5459,10 +5495,10 @@ var ALERT_DIALOG_CONTENT = "bg-background data-[state=open]:animate-in data-[sta
5459
5495
  var ALERT_DIALOG_HEADER = "flex flex-col gap-2 text-center sm:text-left";
5460
5496
  var ALERT_DIALOG_FOOTER = "flex flex-col-reverse gap-2 sm:flex-row sm:justify-end";
5461
5497
  var ALERT_DIALOG_TITLE = "text-lg font-semibold";
5462
- var ALERT_DIALOG_DESCRIPTION = "text-muted-foreground text-sm";
5498
+ var ALERT_DIALOG_DESCRIPTION = "text-ink-soft text-sm";
5463
5499
 
5464
5500
  // src/components/alert-dialog.tsx
5465
- import { jsx as jsx49, jsxs as jsxs19 } from "react/jsx-runtime";
5501
+ import { jsx as jsx49, jsxs as jsxs20 } from "react/jsx-runtime";
5466
5502
  var AlertDialogContext = React59.createContext(null);
5467
5503
  function useAlertDialog() {
5468
5504
  const ctx = React59.useContext(AlertDialogContext);
@@ -5518,7 +5554,7 @@ function AlertDialogContent({ className, children, ...props }) {
5518
5554
  exclude: [triggerRef]
5519
5555
  });
5520
5556
  if (!isPresent) return null;
5521
- return /* @__PURE__ */ jsxs19(Portal, { children: [
5557
+ return /* @__PURE__ */ jsxs20(Portal, { children: [
5522
5558
  /* @__PURE__ */ jsx49(AlertDialogOverlay, {}),
5523
5559
  /* @__PURE__ */ jsx49(
5524
5560
  "div",
@@ -5619,11 +5655,11 @@ var SHEET_SIDE_TOP = "data-[state=closed]:slide-out-to-top data-[state=open]:sli
5619
5655
  var SHEET_SIDE_BOTTOM = "data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom inset-x-0 bottom-0 h-auto border-t";
5620
5656
  var SHEET_HEADER = "flex flex-col gap-1.5 p-4";
5621
5657
  var SHEET_FOOTER = "mt-auto flex flex-col gap-2 p-4";
5622
- var SHEET_TITLE = "text-foreground font-semibold";
5623
- var SHEET_DESCRIPTION = "text-muted-foreground text-sm";
5658
+ var SHEET_TITLE = "text-ink font-semibold";
5659
+ var SHEET_DESCRIPTION = "text-ink-soft text-sm";
5624
5660
 
5625
5661
  // src/components/sheet.tsx
5626
- import { jsx as jsx50, jsxs as jsxs20 } from "react/jsx-runtime";
5662
+ import { jsx as jsx50, jsxs as jsxs21 } from "react/jsx-runtime";
5627
5663
  var SheetContext = React60.createContext(null);
5628
5664
  function useSheet() {
5629
5665
  const ctx = React60.useContext(SheetContext);
@@ -5701,9 +5737,9 @@ function SheetContent({ className, children, side = "right", ...props }) {
5701
5737
  exclude: [triggerRef]
5702
5738
  });
5703
5739
  if (!isPresent) return null;
5704
- return /* @__PURE__ */ jsxs20(Portal, { children: [
5740
+ return /* @__PURE__ */ jsxs21(Portal, { children: [
5705
5741
  /* @__PURE__ */ jsx50(SheetOverlay, {}),
5706
- /* @__PURE__ */ jsxs20(
5742
+ /* @__PURE__ */ jsxs21(
5707
5743
  "div",
5708
5744
  {
5709
5745
  "data-slot": "sheet-content",
@@ -5715,7 +5751,7 @@ function SheetContent({ className, children, side = "right", ...props }) {
5715
5751
  ...props,
5716
5752
  children: [
5717
5753
  children,
5718
- /* @__PURE__ */ jsxs20(
5754
+ /* @__PURE__ */ jsxs21(
5719
5755
  "button",
5720
5756
  {
5721
5757
  type: "button",
@@ -5804,11 +5840,11 @@ var DRAWER_OVERLAY = "data-[state=open]:animate-in data-[state=closed]:animate-o
5804
5840
  var DRAWER_HANDLE = "bg-muted mx-auto mt-4 hidden h-2 w-[100px] shrink-0 rounded-full";
5805
5841
  var DRAWER_HEADER = "flex flex-col gap-0.5 p-4 text-center sm:gap-1.5 sm:text-left";
5806
5842
  var DRAWER_FOOTER = "mt-auto flex flex-col gap-2 p-4";
5807
- var DRAWER_TITLE = "text-foreground font-semibold";
5808
- var DRAWER_DESCRIPTION = "text-muted-foreground text-sm";
5843
+ var DRAWER_TITLE = "text-ink font-semibold";
5844
+ var DRAWER_DESCRIPTION = "text-ink-soft text-sm";
5809
5845
 
5810
5846
  // src/components/drawer.tsx
5811
- import { jsx as jsx51, jsxs as jsxs21 } from "react/jsx-runtime";
5847
+ import { jsx as jsx51, jsxs as jsxs22 } from "react/jsx-runtime";
5812
5848
  var DrawerContext = React61.createContext(null);
5813
5849
  function useDrawer() {
5814
5850
  const ctx = React61.useContext(DrawerContext);
@@ -5877,7 +5913,7 @@ function DrawerContent({ className, children, ...props }) {
5877
5913
  const { open, setOpen, direction } = useDrawer();
5878
5914
  const scopeRef = useFocusScope(open);
5879
5915
  if (!open) return null;
5880
- return /* @__PURE__ */ jsxs21(Portal, { children: [
5916
+ return /* @__PURE__ */ jsxs22(Portal, { children: [
5881
5917
  /* @__PURE__ */ jsx51(
5882
5918
  "div",
5883
5919
  {
@@ -5887,7 +5923,7 @@ function DrawerContent({ className, children, ...props }) {
5887
5923
  onClick: () => setOpen(false)
5888
5924
  }
5889
5925
  ),
5890
- /* @__PURE__ */ jsxs21(
5926
+ /* @__PURE__ */ jsxs22(
5891
5927
  "div",
5892
5928
  {
5893
5929
  role: "dialog",
@@ -5958,7 +5994,7 @@ function DrawerDescription({ className, ...props }) {
5958
5994
 
5959
5995
  // src/components/select.tsx
5960
5996
  import * as React62 from "react";
5961
- import { jsx as jsx52, jsxs as jsxs22 } from "react/jsx-runtime";
5997
+ import { jsx as jsx52, jsxs as jsxs23 } from "react/jsx-runtime";
5962
5998
  var SelectContext = React62.createContext(null);
5963
5999
  function useSelect() {
5964
6000
  const ctx = React62.useContext(SelectContext);
@@ -6001,7 +6037,7 @@ function SelectTrigger({
6001
6037
  ...props
6002
6038
  }) {
6003
6039
  const { open, setOpen, anchorRef } = useSelect();
6004
- return /* @__PURE__ */ jsxs22(
6040
+ return /* @__PURE__ */ jsxs23(
6005
6041
  "button",
6006
6042
  {
6007
6043
  type: "button",
@@ -6016,7 +6052,7 @@ function SelectTrigger({
6016
6052
  setOpen(!open);
6017
6053
  },
6018
6054
  className: cn(
6019
- "border-input data-[placeholder]:text-muted-foreground [&_svg:not([class*='text-'])]:text-muted-foreground focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 aria-invalid:border-destructive flex w-fit items-center justify-between gap-2 rounded-md border bg-transparent px-3 py-2 text-sm whitespace-nowrap shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 data-[size=default]:h-9 data-[size=sm]:h-8 *: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",
6055
+ "border-input data-[placeholder]:text-ink-soft [&_svg:not([class*='text-'])]:text-ink-soft focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-accent-error/20 aria-invalid:border-accent-error flex w-fit items-center justify-between gap-2 rounded-md border bg-transparent px-3 py-2 text-sm whitespace-nowrap shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 data-[size=default]:h-9 data-[size=sm]:h-8 *: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",
6020
6056
  className
6021
6057
  ),
6022
6058
  ...props,
@@ -6097,7 +6133,7 @@ function SelectContent({
6097
6133
  tabIndex: -1,
6098
6134
  onKeyDown,
6099
6135
  className: cn(
6100
- "bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 relative z-50 max-h-96 min-w-[8rem] origin-(--radix-select-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border shadow-md",
6136
+ "bg-popover text-ink data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 relative z-50 max-h-96 min-w-[8rem] origin-(--radix-select-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border shadow-md",
6101
6137
  className
6102
6138
  ),
6103
6139
  ...props,
@@ -6122,7 +6158,7 @@ function SelectItem({
6122
6158
  }) {
6123
6159
  const { value: selectedValue, setValue, setOpen } = useSelect();
6124
6160
  const selected = selectedValue === value;
6125
- return /* @__PURE__ */ jsxs22(
6161
+ return /* @__PURE__ */ jsxs23(
6126
6162
  "div",
6127
6163
  {
6128
6164
  role: "option",
@@ -6142,7 +6178,7 @@ function SelectItem({
6142
6178
  }
6143
6179
  },
6144
6180
  className: cn(
6145
- "focus:bg-accent focus:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground relative flex w-full cursor-default items-center gap-2 rounded-sm py-1.5 pr-8 pl-2 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2",
6181
+ "focus:bg-hover focus:text-ink [&_svg:not([class*='text-'])]:text-ink-soft relative flex w-full cursor-default items-center gap-2 rounded-sm py-1.5 pr-8 pl-2 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2",
6146
6182
  className
6147
6183
  ),
6148
6184
  ...props,
@@ -6177,7 +6213,7 @@ function SelectLabel({ className, ...props }) {
6177
6213
  "div",
6178
6214
  {
6179
6215
  "data-slot": "select-label",
6180
- className: cn("text-muted-foreground px-2 py-1.5 text-xs", className),
6216
+ className: cn("text-ink-soft px-2 py-1.5 text-xs", className),
6181
6217
  ...props
6182
6218
  }
6183
6219
  );
@@ -6197,21 +6233,21 @@ function SelectSeparator({ className, ...props }) {
6197
6233
  import * as React63 from "react";
6198
6234
 
6199
6235
  // src/generated/command.ts
6200
- var COMMAND_ROOT = "bg-popover text-popover-foreground flex h-full w-full flex-col overflow-hidden rounded-md";
6236
+ var COMMAND_ROOT = "bg-popover text-ink flex h-full w-full flex-col overflow-hidden rounded-md";
6201
6237
  var COMMAND_DIALOG_OVERLAY = "fixed inset-0 z-50 bg-black/50";
6202
6238
  var COMMAND_DIALOG_CONTENT = "fixed top-1/2 left-1/2 z-50 w-full max-w-lg -translate-x-1/2 -translate-y-1/2 overflow-hidden rounded-lg border p-0 shadow-lg";
6203
6239
  var COMMAND_DIALOG_COMMAND = "[&_[data-slot=command-input-wrapper]]:h-12 [&_[data-slot=command-input]]:h-12";
6204
6240
  var COMMAND_INPUT_WRAPPER = "flex h-9 items-center gap-2 border-b px-3";
6205
- var COMMAND_INPUT = "placeholder:text-muted-foreground flex h-10 w-full rounded-md bg-transparent py-3 text-sm outline-hidden disabled:cursor-not-allowed disabled:opacity-50";
6241
+ var COMMAND_INPUT = "placeholder:text-ink-soft flex h-10 w-full rounded-md bg-transparent py-3 text-sm outline-hidden disabled:cursor-not-allowed disabled:opacity-50";
6206
6242
  var COMMAND_LIST = "max-h-[300px] scroll-py-1 overflow-x-hidden overflow-y-auto";
6207
6243
  var COMMAND_EMPTY = "py-6 text-center text-sm";
6208
- var COMMAND_GROUP = "text-foreground [&_[data-slot=command-group-heading]]:text-muted-foreground overflow-hidden p-1 [&_[data-slot=command-group-heading]]:px-2 [&_[data-slot=command-group-heading]]:py-1.5 [&_[data-slot=command-group-heading]]:text-xs [&_[data-slot=command-group-heading]]:font-medium";
6209
- var COMMAND_ITEM = "data-[selected=true]:bg-accent data-[selected=true]:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4";
6244
+ var COMMAND_GROUP = "text-ink [&_[data-slot=command-group-heading]]:text-ink-soft overflow-hidden p-1 [&_[data-slot=command-group-heading]]:px-2 [&_[data-slot=command-group-heading]]:py-1.5 [&_[data-slot=command-group-heading]]:text-xs [&_[data-slot=command-group-heading]]:font-medium";
6245
+ var COMMAND_ITEM = "data-[selected=true]:bg-hover data-[selected=true]:text-ink [&_svg:not([class*='text-'])]:text-ink-soft relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4";
6210
6246
  var COMMAND_SEPARATOR = "bg-border -mx-1 h-px";
6211
- var COMMAND_SHORTCUT = "text-muted-foreground ml-auto text-xs tracking-widest";
6247
+ var COMMAND_SHORTCUT = "text-ink-soft ml-auto text-xs tracking-widest";
6212
6248
 
6213
6249
  // src/components/command.tsx
6214
- import { jsx as jsx53, jsxs as jsxs23 } from "react/jsx-runtime";
6250
+ import { jsx as jsx53, jsxs as jsxs24 } from "react/jsx-runtime";
6215
6251
  var CommandContext = React63.createContext(null);
6216
6252
  function useCommand() {
6217
6253
  const ctx = React63.useContext(CommandContext);
@@ -6297,7 +6333,7 @@ function CommandDialog({
6297
6333
  });
6298
6334
  const scopeRef = useFocusScope(isOpen);
6299
6335
  if (!isOpen) return null;
6300
- return /* @__PURE__ */ jsxs23(Portal, { children: [
6336
+ return /* @__PURE__ */ jsxs24(Portal, { children: [
6301
6337
  /* @__PURE__ */ jsx53(
6302
6338
  "div",
6303
6339
  {
@@ -6327,8 +6363,8 @@ function CommandInput({
6327
6363
  ...props
6328
6364
  }) {
6329
6365
  const { search, setSearch } = useCommand();
6330
- return /* @__PURE__ */ jsxs23("div", { className: COMMAND_INPUT_WRAPPER, "data-slot": "command-input-wrapper", children: [
6331
- /* @__PURE__ */ jsxs23(
6366
+ return /* @__PURE__ */ jsxs24("div", { className: COMMAND_INPUT_WRAPPER, "data-slot": "command-input-wrapper", children: [
6367
+ /* @__PURE__ */ jsxs24(
6332
6368
  "svg",
6333
6369
  {
6334
6370
  xmlns: "http://www.w3.org/2000/svg",
@@ -6387,7 +6423,7 @@ function CommandEmpty({ className, children, ...props }) {
6387
6423
  );
6388
6424
  }
6389
6425
  function CommandGroup({ className, heading, children, ...props }) {
6390
- return /* @__PURE__ */ jsxs23(
6426
+ return /* @__PURE__ */ jsxs24(
6391
6427
  "div",
6392
6428
  {
6393
6429
  role: "group",
@@ -6463,7 +6499,7 @@ var CHART_TOOLTIP = "border-border/50 bg-background grid min-w-[8rem] items-star
6463
6499
  var CHART_LEGEND = "flex items-center justify-center gap-4";
6464
6500
 
6465
6501
  // src/components/chart.tsx
6466
- import { Fragment as Fragment7, jsx as jsx54, jsxs as jsxs24 } from "react/jsx-runtime";
6502
+ import { Fragment as Fragment7, jsx as jsx54, jsxs as jsxs25 } from "react/jsx-runtime";
6467
6503
  var ChartContext = React64.createContext(null);
6468
6504
  function useChart() {
6469
6505
  const context = React64.useContext(ChartContext);
@@ -6481,7 +6517,7 @@ function ChartContainer({
6481
6517
  }) {
6482
6518
  const uniqueId = React64.useId();
6483
6519
  const chartId = `chart-${id || uniqueId.replace(/:/g, "")}`;
6484
- return /* @__PURE__ */ jsx54(ChartContext.Provider, { value: { config }, children: /* @__PURE__ */ jsxs24(
6520
+ return /* @__PURE__ */ jsx54(ChartContext.Provider, { value: { config }, children: /* @__PURE__ */ jsxs25(
6485
6521
  "div",
6486
6522
  {
6487
6523
  "data-slot": "chart",
@@ -6524,18 +6560,18 @@ function ChartTooltipContent({
6524
6560
  if (!items.length) {
6525
6561
  return null;
6526
6562
  }
6527
- return /* @__PURE__ */ jsxs24(
6563
+ return /* @__PURE__ */ jsxs25(
6528
6564
  "div",
6529
6565
  {
6530
6566
  "data-slot": "chart-tooltip",
6531
6567
  className: cn(CHART_TOOLTIP, className),
6532
6568
  children: [
6533
6569
  !hideLabel && label ? /* @__PURE__ */ jsx54("div", { className: cn("font-medium", labelClassName), children: label }) : null,
6534
- /* @__PURE__ */ jsx54("div", { className: "grid gap-1.5", children: items.map((item, index) => /* @__PURE__ */ jsxs24(
6570
+ /* @__PURE__ */ jsx54("div", { className: "grid gap-1.5", children: items.map((item, index) => /* @__PURE__ */ jsxs25(
6535
6571
  "div",
6536
6572
  {
6537
6573
  className: cn(
6538
- "[&>svg]:text-muted-foreground flex w-full flex-wrap items-stretch gap-2 [&>svg]:h-2.5 [&>svg]:w-2.5 items-center"
6574
+ "[&>svg]:text-ink-soft flex w-full flex-wrap items-stretch gap-2 [&>svg]:h-2.5 [&>svg]:w-2.5 items-center"
6539
6575
  ),
6540
6576
  children: [
6541
6577
  !hideIndicator && /* @__PURE__ */ jsx54(
@@ -6548,9 +6584,9 @@ function ChartTooltipContent({
6548
6584
  }
6549
6585
  }
6550
6586
  ),
6551
- /* @__PURE__ */ jsxs24("div", { className: "flex flex-1 justify-between leading-none items-center", children: [
6552
- /* @__PURE__ */ jsx54("span", { className: "text-muted-foreground", children: item.label }),
6553
- item.value !== void 0 && /* @__PURE__ */ jsx54("span", { className: "text-foreground font-mono font-medium tabular-nums", children: item.value })
6587
+ /* @__PURE__ */ jsxs25("div", { className: "flex flex-1 justify-between leading-none items-center", children: [
6588
+ /* @__PURE__ */ jsx54("span", { className: "text-ink-soft", children: item.label }),
6589
+ item.value !== void 0 && /* @__PURE__ */ jsx54("span", { className: "text-ink font-mono font-medium tabular-nums", children: item.value })
6554
6590
  ] })
6555
6591
  ]
6556
6592
  },
@@ -6579,11 +6615,11 @@ function ChartLegendContent({
6579
6615
  {
6580
6616
  "data-slot": "chart-legend",
6581
6617
  className: cn(CHART_LEGEND, className),
6582
- children: rows.map((item, index) => /* @__PURE__ */ jsxs24(
6618
+ children: rows.map((item, index) => /* @__PURE__ */ jsxs25(
6583
6619
  "div",
6584
6620
  {
6585
6621
  className: cn(
6586
- "[&>svg]:text-muted-foreground flex items-center gap-1.5 [&>svg]:h-3 [&>svg]:w-3"
6622
+ "[&>svg]:text-ink-soft flex items-center gap-1.5 [&>svg]:h-3 [&>svg]:w-3"
6587
6623
  ),
6588
6624
  children: [
6589
6625
  !hideIcon && /* @__PURE__ */ jsx54(
@@ -6612,16 +6648,16 @@ var CALENDAR_NAV = "flex items-center justify-between gap-1 w-full px-1";
6612
6648
  var CALENDAR_CAPTION = "text-sm font-medium select-none";
6613
6649
  var CALENDAR_GRID = "w-full border-collapse mt-4";
6614
6650
  var CALENDAR_WEEKDAY_ROW = "flex";
6615
- var CALENDAR_WEEKDAY = "text-muted-foreground rounded-md flex-1 font-normal text-[0.8rem] select-none";
6651
+ var CALENDAR_WEEKDAY = "text-ink-soft rounded-md flex-1 font-normal text-[0.8rem] select-none";
6616
6652
  var CALENDAR_WEEK = "flex w-full mt-2";
6617
6653
  var CALENDAR_DAY_EMPTY = "relative w-full h-full p-0 aspect-square select-none";
6618
6654
  var CALENDAR_DAY_CELL = "relative w-full h-full p-0 text-center aspect-square select-none";
6619
6655
  var CALENDAR_DAY = "size-auto w-full aspect-square font-normal leading-none";
6620
- var CALENDAR_DAY_SELECTED = "bg-primary text-primary-foreground";
6621
- var CALENDAR_DAY_TODAY = "bg-accent text-accent-foreground rounded-md";
6656
+ var CALENDAR_DAY_SELECTED = "bg-primary text-on-primary";
6657
+ var CALENDAR_DAY_TODAY = "bg-hover text-ink rounded-md";
6622
6658
 
6623
6659
  // src/components/calendar.tsx
6624
- import { jsx as jsx55, jsxs as jsxs25 } from "react/jsx-runtime";
6660
+ import { jsx as jsx55, jsxs as jsxs26 } from "react/jsx-runtime";
6625
6661
  var MONTHS = [
6626
6662
  "January",
6627
6663
  "February",
@@ -6701,14 +6737,14 @@ function Calendar({
6701
6737
  size: "icon",
6702
6738
  className: CALENDAR_NAV_BUTTON
6703
6739
  });
6704
- return /* @__PURE__ */ jsxs25(
6740
+ return /* @__PURE__ */ jsxs26(
6705
6741
  "div",
6706
6742
  {
6707
6743
  "data-slot": "calendar",
6708
6744
  role: "application",
6709
6745
  className: cn(CALENDAR_ROOT, className),
6710
6746
  children: [
6711
- /* @__PURE__ */ jsxs25("div", { className: CALENDAR_NAV, children: [
6747
+ /* @__PURE__ */ jsxs26("div", { className: CALENDAR_NAV, children: [
6712
6748
  /* @__PURE__ */ jsx55(
6713
6749
  "button",
6714
6750
  {
@@ -6731,7 +6767,7 @@ function Calendar({
6731
6767
  }
6732
6768
  )
6733
6769
  ] }),
6734
- /* @__PURE__ */ jsxs25("table", { className: CALENDAR_GRID, role: "grid", children: [
6770
+ /* @__PURE__ */ jsxs26("table", { className: CALENDAR_GRID, role: "grid", children: [
6735
6771
  /* @__PURE__ */ jsx55("thead", { children: /* @__PURE__ */ jsx55("tr", { className: CALENDAR_WEEKDAY_ROW, children: WEEKDAYS.map((wd) => /* @__PURE__ */ jsx55(
6736
6772
  "th",
6737
6773
  {
@@ -6795,11 +6831,11 @@ import * as React66 from "react";
6795
6831
  // src/generated/sonner.ts
6796
6832
  var TOAST_BASE = "pointer-events-auto flex w-full items-start gap-3 rounded-md border p-4 text-sm shadow-lg";
6797
6833
  var toastVariantClasses = {
6798
- "default": "bg-popover text-popover-foreground border-border",
6799
- "success": "bg-popover text-popover-foreground border-main-accent-t2/40",
6800
- "error": "bg-popover text-popover-foreground border-destructive/50",
6801
- "info": "bg-popover text-popover-foreground border-border",
6802
- "warning": "bg-popover text-popover-foreground border-border"
6834
+ "default": "bg-popover text-ink border-border",
6835
+ "success": "bg-popover text-ink border-positive/40",
6836
+ "error": "bg-popover text-ink border-accent-error/50",
6837
+ "info": "bg-popover text-ink border-border",
6838
+ "warning": "bg-popover text-ink border-border"
6803
6839
  };
6804
6840
  var TOASTER_BASE = "pointer-events-none fixed z-100 w-[calc(100%-2rem)] max-w-sm";
6805
6841
  var positionClasses = {
@@ -6810,12 +6846,12 @@ var positionClasses = {
6810
6846
  "bottom-center": "bottom-4 left-1/2 -translate-x-1/2",
6811
6847
  "bottom-right": "bottom-4 right-4"
6812
6848
  };
6813
- var TOAST_CLOSE = "text-foreground/50 hover:text-foreground shrink-0 transition-colors";
6849
+ var TOAST_CLOSE = "text-ink/50 hover:text-ink shrink-0 transition-colors";
6814
6850
  var TOAST_CONTENT = "flex-1 space-y-1";
6815
6851
  var TOAST_TITLE = "font-medium";
6816
6852
 
6817
6853
  // src/components/sonner.tsx
6818
- import { jsx as jsx56, jsxs as jsxs26 } from "react/jsx-runtime";
6854
+ import { jsx as jsx56, jsxs as jsxs27 } from "react/jsx-runtime";
6819
6855
  var DEFAULT_DURATION = 4e3;
6820
6856
  var SWIPE_THRESHOLD = 45;
6821
6857
  var SWIPE_VELOCITY = 0.11;
@@ -6977,7 +7013,7 @@ function ToastItem({
6977
7013
  );
6978
7014
  }
6979
7015
  };
6980
- return /* @__PURE__ */ jsxs26(
7016
+ return /* @__PURE__ */ jsxs27(
6981
7017
  "li",
6982
7018
  {
6983
7019
  ref,
@@ -7005,9 +7041,9 @@ function ToastItem({
7005
7041
  toastVariantClasses[t.variant]
7006
7042
  ),
7007
7043
  children: [
7008
- /* @__PURE__ */ jsxs26("div", { className: TOAST_CONTENT, children: [
7044
+ /* @__PURE__ */ jsxs27("div", { className: TOAST_CONTENT, children: [
7009
7045
  /* @__PURE__ */ jsx56("div", { className: TOAST_TITLE, children: t.message }),
7010
- t.description ? /* @__PURE__ */ jsx56("div", { className: "text-muted-foreground text-sm", children: t.description }) : null
7046
+ t.description ? /* @__PURE__ */ jsx56("div", { className: "text-ink-soft text-sm", children: t.description }) : null
7011
7047
  ] }),
7012
7048
  /* @__PURE__ */ jsx56(
7013
7049
  "button",
@@ -7123,8 +7159,8 @@ import * as React67 from "react";
7123
7159
 
7124
7160
  // src/generated/form.ts
7125
7161
  var FORM_ITEM = "grid gap-2";
7126
- var FORM_DESCRIPTION = "text-muted-foreground text-sm";
7127
- var FORM_MESSAGE = "text-destructive text-sm";
7162
+ var FORM_DESCRIPTION = "text-ink-soft text-sm";
7163
+ var FORM_MESSAGE = "text-accent-error text-sm";
7128
7164
 
7129
7165
  // src/components/form.tsx
7130
7166
  import { jsx as jsx57 } from "react/jsx-runtime";
@@ -7163,7 +7199,7 @@ function FormLabel({
7163
7199
  {
7164
7200
  "data-slot": "form-label",
7165
7201
  "data-error": !!error,
7166
- className: cn("data-[error=true]:text-destructive", className),
7202
+ className: cn("data-[error=true]:text-accent-error", className),
7167
7203
  htmlFor: formItemId,
7168
7204
  ...props
7169
7205
  }
@@ -7224,7 +7260,7 @@ var RESIZABLE_HANDLE = "bg-border focus-visible:ring-ring relative flex w-px ite
7224
7260
  var RESIZABLE_HANDLE_GRIP = "bg-border z-10 flex h-4 w-3 items-center justify-center rounded-xs border";
7225
7261
 
7226
7262
  // src/components/resizable.tsx
7227
- import { jsx as jsx58, jsxs as jsxs27 } from "react/jsx-runtime";
7263
+ import { jsx as jsx58, jsxs as jsxs28 } from "react/jsx-runtime";
7228
7264
  var ResizableContext = React68.createContext(null);
7229
7265
  function useResizable() {
7230
7266
  const ctx = React68.useContext(ResizableContext);
@@ -7360,7 +7396,7 @@ function ResizableHandle({
7360
7396
  event.preventDefault();
7361
7397
  resize(delta);
7362
7398
  };
7363
- return /* @__PURE__ */ jsxs27(
7399
+ return /* @__PURE__ */ jsxs28(
7364
7400
  "div",
7365
7401
  {
7366
7402
  "data-slot": "resizable-handle",
@@ -7373,7 +7409,7 @@ function ResizableHandle({
7373
7409
  onKeyDown,
7374
7410
  ...props,
7375
7411
  children: [
7376
- withHandle && /* @__PURE__ */ jsx58("div", { className: RESIZABLE_HANDLE_GRIP, children: /* @__PURE__ */ jsxs27(
7412
+ withHandle && /* @__PURE__ */ jsx58("div", { className: RESIZABLE_HANDLE_GRIP, children: /* @__PURE__ */ jsxs28(
7377
7413
  "svg",
7378
7414
  {
7379
7415
  className: "size-2.5",
@@ -7455,6 +7491,7 @@ export {
7455
7491
  ChartStyle,
7456
7492
  ChartTooltip,
7457
7493
  ChartTooltipContent,
7494
+ Check,
7458
7495
  Checkbox,
7459
7496
  Collapsible,
7460
7497
  CollapsibleContent,
@@ -7494,6 +7531,7 @@ export {
7494
7531
  DialogPortal,
7495
7532
  DialogTitle,
7496
7533
  DialogTrigger,
7534
+ Display,
7497
7535
  Drawer,
7498
7536
  DrawerClose,
7499
7537
  DrawerContent,
@@ -7524,6 +7562,7 @@ export {
7524
7562
  EmptyHeader,
7525
7563
  EmptyMedia,
7526
7564
  EmptyTitle,
7565
+ Eyebrow,
7527
7566
  Field,
7528
7567
  FieldContent,
7529
7568
  FieldDescription,
@@ -7572,7 +7611,6 @@ export {
7572
7611
  Kbd,
7573
7612
  KbdGroup,
7574
7613
  Label,
7575
- Logo,
7576
7614
  Menubar,
7577
7615
  MenubarCheckboxItem,
7578
7616
  MenubarContent,
@@ -7610,6 +7648,7 @@ export {
7610
7648
  PopoverTrigger,
7611
7649
  Portal,
7612
7650
  Progress,
7651
+ Prose,
7613
7652
  RadioGroup,
7614
7653
  RadioGroupItem,
7615
7654
  ResizableHandle,
@@ -7617,7 +7656,9 @@ export {
7617
7656
  ResizablePanelGroup,
7618
7657
  ScrollArea,
7619
7658
  ScrollBar,
7659
+ Section,
7620
7660
  SectionDescriptor,
7661
+ SectionHead,
7621
7662
  Select,
7622
7663
  SelectContent,
7623
7664
  SelectGroup,
@@ -7656,6 +7697,7 @@ export {
7656
7697
  Slider,
7657
7698
  Slot,
7658
7699
  Spinner,
7700
+ Stat,
7659
7701
  StatusScreen,
7660
7702
  Switch,
7661
7703
  Table,
@@ -7683,7 +7725,6 @@ export {
7683
7725
  cn,
7684
7726
  mergeRefs,
7685
7727
  navigationMenuTriggerStyle,
7686
- statusButtonClass,
7687
7728
  toast,
7688
7729
  toggleVariants,
7689
7730
  useControllableState,