@titan-design/react-ui 0.9.3 → 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.
Files changed (120) hide show
  1. package/dist/bodymap.js +78 -24
  2. package/dist/bodymap.js.map +1 -1
  3. package/dist/bodymap.mjs +78 -24
  4. package/dist/bodymap.mjs.map +1 -1
  5. package/dist/index.d.mts +429 -11
  6. package/dist/index.d.ts +429 -11
  7. package/dist/index.js +2386 -885
  8. package/dist/index.js.map +1 -1
  9. package/dist/index.mjs +2306 -836
  10. package/dist/index.mjs.map +1 -1
  11. package/dist/{pages-DyEx-lBf.d.ts → pages-B1hqnGIC.d.ts} +149 -15
  12. package/dist/{pages-D7hOD4Vj.d.mts → pages-CvsFqNtx.d.mts} +149 -15
  13. package/dist/pages.d.mts +1 -1
  14. package/dist/pages.d.ts +1 -1
  15. package/dist/pages.js +1900 -1609
  16. package/dist/pages.js.map +1 -1
  17. package/dist/pages.mjs +1901 -1610
  18. package/dist/pages.mjs.map +1 -1
  19. package/dist/theme/index.d.mts +129 -34
  20. package/dist/theme/index.d.ts +129 -34
  21. package/dist/theme/index.js +95 -19
  22. package/dist/theme/index.js.map +1 -1
  23. package/dist/theme/index.mjs +92 -20
  24. package/dist/theme/index.mjs.map +1 -1
  25. package/dist/theme/tokens-css.js +88 -24
  26. package/dist/theme/tokens-css.js.map +1 -1
  27. package/dist/theme/tokens-css.mjs +88 -24
  28. package/dist/theme/tokens-css.mjs.map +1 -1
  29. package/package.json +8 -3
  30. package/src/components/custom/Fatigue/DualGhostSpark.stories.tsx +258 -0
  31. package/src/components/custom/Fatigue/DualGhostSpark.test.tsx +138 -0
  32. package/src/components/custom/Fatigue/DualGhostSpark.tsx +208 -0
  33. package/src/components/custom/Fatigue/FatigueLights.stories.tsx +74 -0
  34. package/src/components/custom/Fatigue/FatigueLights.test.tsx +33 -0
  35. package/src/components/custom/Fatigue/FatigueLights.tsx +83 -0
  36. package/src/components/custom/Fatigue/GhostBand.test.tsx +235 -0
  37. package/src/components/custom/Fatigue/GhostBand.tsx +246 -0
  38. package/src/components/custom/Fatigue/GhostBloom.tsx +132 -0
  39. package/src/components/custom/Fatigue/GhostSpark.stories.tsx +175 -0
  40. package/src/components/custom/Fatigue/GhostSpark.test.tsx +45 -0
  41. package/src/components/custom/Fatigue/GhostSpark.tsx +126 -0
  42. package/src/components/custom/Fatigue/LiveFatigueCard.stories.tsx +126 -0
  43. package/src/components/custom/Fatigue/LiveFatigueCard.test.tsx +28 -0
  44. package/src/components/custom/Fatigue/LiveFatigueCard.tsx +86 -0
  45. package/src/components/custom/Fatigue/LiveFatiguePanel.stories.tsx +95 -0
  46. package/src/components/custom/Fatigue/LiveFatiguePanel.tsx +151 -0
  47. package/src/components/custom/Fatigue/README.md +93 -0
  48. package/src/components/custom/Fatigue/RomProgressionChart.stories.tsx +94 -0
  49. package/src/components/custom/Fatigue/RomProgressionChart.test.tsx +31 -0
  50. package/src/components/custom/Fatigue/RomProgressionChart.tsx +132 -0
  51. package/src/components/custom/Fatigue/SilverRedPalette.stories.tsx +226 -0
  52. package/src/components/custom/Fatigue/VelocityHero.stories.tsx +70 -0
  53. package/src/components/custom/Fatigue/VelocityHero.test.tsx +26 -0
  54. package/src/components/custom/Fatigue/VelocityHero.tsx +46 -0
  55. package/src/components/custom/Fatigue/VerdictHero.stories.tsx +59 -0
  56. package/src/components/custom/Fatigue/VerdictHero.test.tsx +49 -0
  57. package/src/components/custom/Fatigue/VerdictHero.tsx +79 -0
  58. package/src/components/custom/Fatigue/fatigue-mock.test.ts +59 -0
  59. package/src/components/custom/Fatigue/fatigue-mock.ts +268 -0
  60. package/src/components/custom/Fatigue/fatigue-model.ts +129 -0
  61. package/src/components/custom/Fatigue/fatigue-tokens.test.ts +70 -0
  62. package/src/components/custom/Fatigue/fatigue-tokens.ts +180 -0
  63. package/src/components/custom/Fatigue/index.ts +41 -0
  64. package/src/components/custom/Fatigue/tempo-pacing.test.ts +176 -0
  65. package/src/components/custom/Fatigue/tempo-pacing.ts +112 -0
  66. package/src/components/custom/Workout/BaseBadge.tsx +5 -5
  67. package/src/components/custom/Workout/DualVelocityStrip.test.tsx +685 -0
  68. package/src/components/custom/Workout/ExerciseCard.test.tsx +4 -4
  69. package/src/components/custom/Workout/ExerciseCard.tsx +3 -1
  70. package/src/components/custom/Workout/ExerciseDetailPage.tsx +7 -1
  71. package/src/components/custom/Workout/README.md +62 -16
  72. package/src/components/custom/Workout/RowInventory.stories.tsx +5 -2
  73. package/src/components/custom/Workout/S3FullRail.stories.tsx +13 -1
  74. package/src/components/custom/Workout/SegmentedBar.stories.tsx +3 -3
  75. package/src/components/custom/Workout/SessionHeader.tsx +2 -2
  76. package/src/components/custom/Workout/SessionRail.stories.tsx +4 -1
  77. package/src/components/custom/Workout/SessionRail.test.tsx +43 -0
  78. package/src/components/custom/Workout/SessionRail.tsx +55 -18
  79. package/src/components/custom/Workout/SetRow.test.tsx +6 -6
  80. package/src/components/custom/Workout/SetRow.tsx +9 -2
  81. package/src/components/custom/Workout/SupersetWrapper.stories.tsx +16 -25
  82. package/src/components/custom/Workout/SupersetWrapper.tsx +1 -1
  83. package/src/components/custom/Workout/TempoDisplay.tsx +3 -7
  84. package/src/components/custom/Workout/VelocityStrip.compact.stories.tsx +191 -0
  85. package/src/components/custom/Workout/VelocityStrip.dual.stories.tsx +186 -0
  86. package/src/components/custom/Workout/VelocityStrip.expanded.stories.tsx +296 -0
  87. package/src/components/custom/Workout/VelocityStrip.hero.stories.tsx +259 -0
  88. package/src/components/custom/Workout/VelocityStrip.stories.tsx +217 -250
  89. package/src/components/custom/Workout/VelocityStrip.test.tsx +196 -79
  90. package/src/components/custom/Workout/VelocityStrip.tsx +953 -609
  91. package/src/components/custom/Workout/VolumeLandmarkBar.stories.tsx +4 -1
  92. package/src/components/custom/Workout/WorkoutPill.tsx +2 -2
  93. package/src/components/custom/Workout/index.ts +3 -0
  94. package/src/components/custom/Workout/velocity-story-kit.tsx +438 -0
  95. package/src/components/custom/charts/SetBarChart.test.tsx +275 -0
  96. package/src/components/custom/charts/SetBarChart.tsx +651 -0
  97. package/src/components/custom/charts/live-rep-growth.ts +91 -0
  98. package/src/components/custom/index.ts +1 -0
  99. package/src/components/ui/surface/Surface.stories.tsx +195 -1
  100. package/src/components/ui/surface/Surface.test.tsx +148 -9
  101. package/src/components/ui/surface/Surface.tsx +37 -9
  102. package/src/components/ui/surface/SurfaceContext.ts +48 -8
  103. package/src/components/ui/surface/index.ts +1 -0
  104. package/src/components/ui/surface/surface.contract.test.ts +283 -0
  105. package/src/test/raw-color-patterns.test.ts +71 -0
  106. package/src/theme/ColorPalettes.stories.tsx +871 -0
  107. package/src/theme/ColorPrimitives.stories.tsx +300 -0
  108. package/src/theme/bar-paper.ts +59 -0
  109. package/src/theme/color-stories.coverage.test.ts +130 -0
  110. package/src/theme/color-story-kit.tsx +170 -0
  111. package/src/theme/config.ts +12 -0
  112. package/src/theme/elevation.ts +90 -67
  113. package/src/theme/global.css +35 -9
  114. package/src/theme/tokens/primitives.ts +40 -0
  115. package/src/theme/tokens/semantic.ts +63 -14
  116. package/tailwind.config.js +8 -0
  117. package/src/components/custom/Workout/VelocityStrip.modalities.stories.tsx +0 -254
  118. package/src/components/custom/Workout/VelocityStrip.responsive.stories.tsx +0 -145
  119. package/src/theme/ColorSystem.stories.tsx +0 -323
  120. package/src/theme/Colors.stories.tsx +0 -323
@@ -93,9 +93,11 @@ declare const semanticColorsLight: {
93
93
  readonly 'surface-raised': "#F3F4F6";
94
94
  readonly 'surface-overlay': "#FFFFFF";
95
95
  readonly 'surface-input': "#FAFAFA";
96
+ readonly 'surface-inset': "#D1D5DB";
96
97
  readonly 'background-base': "#EBEBEB";
97
98
  readonly 'background-default': "#FFFFFF";
98
99
  readonly 'background-subtle': "#FAFAFA";
100
+ readonly 'background-frame': "#9CA3AF";
99
101
  readonly 'border-default': "#E8E9EB";
100
102
  readonly 'border-subtle': "#F3F4F6";
101
103
  readonly 'border-strong': "#D1D5DB";
@@ -105,6 +107,9 @@ declare const semanticColorsLight: {
105
107
  readonly 'border-input-hover': "#9CA3AF";
106
108
  readonly 'border-input-focus': "#5048E5";
107
109
  readonly 'border-input-error': "#D14343";
110
+ readonly 'hairline-subtle': "rgba(0, 0, 0, 0.06)";
111
+ readonly 'hairline-default': "rgba(0, 0, 0, 0.09)";
112
+ readonly 'hairline-strong': "rgba(0, 0, 0, 0.14)";
108
113
  readonly 'interactive-hover': "rgba(55, 65, 81, 0.04)";
109
114
  readonly 'interactive-focus': "rgba(55, 65, 81, 0.12)";
110
115
  readonly 'interactive-active': "rgba(55, 65, 81, 0.16)";
@@ -185,14 +190,16 @@ declare const semanticColorsDark: {
185
190
  readonly 'text-inverse': "#111827";
186
191
  readonly 'text-link': "#828DF8";
187
192
  readonly 'text-link-hover': "#60A5FA";
188
- readonly 'surface-base': "#161616";
189
- readonly 'surface-elevated': "#191919";
190
- readonly 'surface-raised': "#1C1C1C";
191
- readonly 'surface-overlay': "#191919";
192
- readonly 'surface-input': "#191919";
193
- readonly 'background-base': "#101010";
194
- readonly 'background-default': "#161616";
195
- readonly 'background-subtle': "#1C1C1C";
193
+ readonly 'surface-base': "#252321";
194
+ readonly 'surface-elevated': "#2C2A28";
195
+ readonly 'surface-raised': "#31302F";
196
+ readonly 'surface-overlay': "#373635";
197
+ readonly 'surface-input': "#2C2A28";
198
+ readonly 'surface-inset': "#13100D";
199
+ readonly 'background-base': "#1C1916";
200
+ readonly 'background-default': "#252321";
201
+ readonly 'background-subtle': "#2C2A28";
202
+ readonly 'background-frame': "#100D0A";
196
203
  readonly 'border-default': "#1F1F1F";
197
204
  readonly 'border-subtle': "#1C1C1C";
198
205
  readonly 'border-strong': "#2C2C2C";
@@ -202,6 +209,9 @@ declare const semanticColorsDark: {
202
209
  readonly 'border-input-hover': "#6B7280";
203
210
  readonly 'border-input-focus': "#828DF8";
204
211
  readonly 'border-input-error': "#EF4444";
212
+ readonly 'hairline-subtle': "rgba(255, 255, 255, 0.06)";
213
+ readonly 'hairline-default': "rgba(255, 255, 255, 0.09)";
214
+ readonly 'hairline-strong': "rgba(255, 255, 255, 0.14)";
205
215
  readonly 'interactive-hover': "rgba(255, 255, 255, 0.04)";
206
216
  readonly 'interactive-focus': "rgba(255, 255, 255, 0.12)";
207
217
  readonly 'interactive-active': "rgba(255, 255, 255, 0.16)";
@@ -387,9 +397,11 @@ declare function getSemanticColors(mode: ThemeMode): {
387
397
  readonly 'surface-raised': "#F3F4F6";
388
398
  readonly 'surface-overlay': "#FFFFFF";
389
399
  readonly 'surface-input': "#FAFAFA";
400
+ readonly 'surface-inset': "#D1D5DB";
390
401
  readonly 'background-base': "#EBEBEB";
391
402
  readonly 'background-default': "#FFFFFF";
392
403
  readonly 'background-subtle': "#FAFAFA";
404
+ readonly 'background-frame': "#9CA3AF";
393
405
  readonly 'border-default': "#E8E9EB";
394
406
  readonly 'border-subtle': "#F3F4F6";
395
407
  readonly 'border-strong': "#D1D5DB";
@@ -399,6 +411,9 @@ declare function getSemanticColors(mode: ThemeMode): {
399
411
  readonly 'border-input-hover': "#9CA3AF";
400
412
  readonly 'border-input-focus': "#5048E5";
401
413
  readonly 'border-input-error': "#D14343";
414
+ readonly 'hairline-subtle': "rgba(0, 0, 0, 0.06)";
415
+ readonly 'hairline-default': "rgba(0, 0, 0, 0.09)";
416
+ readonly 'hairline-strong': "rgba(0, 0, 0, 0.14)";
402
417
  readonly 'interactive-hover': "rgba(55, 65, 81, 0.04)";
403
418
  readonly 'interactive-focus': "rgba(55, 65, 81, 0.12)";
404
419
  readonly 'interactive-active': "rgba(55, 65, 81, 0.16)";
@@ -478,14 +493,16 @@ declare function getSemanticColors(mode: ThemeMode): {
478
493
  readonly 'text-inverse': "#111827";
479
494
  readonly 'text-link': "#828DF8";
480
495
  readonly 'text-link-hover': "#60A5FA";
481
- readonly 'surface-base': "#161616";
482
- readonly 'surface-elevated': "#191919";
483
- readonly 'surface-raised': "#1C1C1C";
484
- readonly 'surface-overlay': "#191919";
485
- readonly 'surface-input': "#191919";
486
- readonly 'background-base': "#101010";
487
- readonly 'background-default': "#161616";
488
- readonly 'background-subtle': "#1C1C1C";
496
+ readonly 'surface-base': "#252321";
497
+ readonly 'surface-elevated': "#2C2A28";
498
+ readonly 'surface-raised': "#31302F";
499
+ readonly 'surface-overlay': "#373635";
500
+ readonly 'surface-input': "#2C2A28";
501
+ readonly 'surface-inset': "#13100D";
502
+ readonly 'background-base': "#1C1916";
503
+ readonly 'background-default': "#252321";
504
+ readonly 'background-subtle': "#2C2A28";
505
+ readonly 'background-frame': "#100D0A";
489
506
  readonly 'border-default': "#1F1F1F";
490
507
  readonly 'border-subtle': "#1C1C1C";
491
508
  readonly 'border-strong': "#2C2C2C";
@@ -495,6 +512,9 @@ declare function getSemanticColors(mode: ThemeMode): {
495
512
  readonly 'border-input-hover': "#6B7280";
496
513
  readonly 'border-input-focus': "#828DF8";
497
514
  readonly 'border-input-error': "#EF4444";
515
+ readonly 'hairline-subtle': "rgba(255, 255, 255, 0.06)";
516
+ readonly 'hairline-default': "rgba(255, 255, 255, 0.09)";
517
+ readonly 'hairline-strong': "rgba(255, 255, 255, 0.14)";
498
518
  readonly 'interactive-hover': "rgba(255, 255, 255, 0.04)";
499
519
  readonly 'interactive-focus': "rgba(255, 255, 255, 0.12)";
500
520
  readonly 'interactive-active': "rgba(255, 255, 255, 0.16)";
@@ -568,6 +588,23 @@ declare function getElevationSurface(baseColor: string, level: ElevationLevel, t
568
588
  * @returns ViewStyle with shadow properties
569
589
  */
570
590
  declare function getElevationShadow(baseColor: string, level: ElevationLevel, theme: 'light' | 'dark', isHovered?: boolean): ViewStyle;
591
+ /**
592
+ * Elevation level backing a `<Surface pressed>` recess: the shallow `inset`
593
+ * (-1) step. Pressed exposes ONE level of depth — pressed-2 is intentionally
594
+ * not surfaced (the deeper `-2` deep-inset stays available to `elevation`).
595
+ */
596
+ declare const PRESSED_ELEVATION_LEVEL: ElevationLevel;
597
+ /**
598
+ * Inner-shadow recess for a pressed (sunken) surface, tuned to the well's own
599
+ * fill colour so the rim/shadow tints track the darker fill. Composes WITH the
600
+ * darker pressed fill: on web it adds an inset boxShadow; on the native path
601
+ * (no inset-shadow support) it's a no-op and the recess reads via the fill
602
+ * alone — so a pressed surface stays legibly sunken with or without the shadow.
603
+ *
604
+ * @param fillColor - The pressed surface's own fill (one ramp step down).
605
+ * @param theme - Current theme ('light' or 'dark').
606
+ */
607
+ declare function getPressedRecessShadow(fillColor: string, theme: 'light' | 'dark'): ViewStyle;
571
608
  /**
572
609
  * Get base surface color from theme.
573
610
  * This is the foundation color that all elevations are calculated from.
@@ -579,7 +616,7 @@ declare function getElevationShadow(baseColor: string, level: ElevationLevel, th
579
616
  * - This allows raised elevations to be lighter (closer to white)
580
617
  *
581
618
  * **Dark Mode**: Need lighter base to allow sufficient lightening
582
- * - Use `#191919` (charcoal[600]) - allows lightening to `#2A2A2A` at max elevation
619
+ * - Use `surface-elevated` (#2A2827, TD-surface-tokens ramp) - allows further lightening
583
620
  *
584
621
  * Can be overridden to use custom base colors for special cases.
585
622
  */
@@ -702,6 +739,44 @@ declare const primitiveColors: {
702
739
  readonly black: "#000000";
703
740
  readonly transparent: "transparent";
704
741
  };
742
+ /**
743
+ * Surface ramp — dark mode (TD-surface-tokens, S-1, re-spaced S-3)
744
+ *
745
+ * Warm-tapered, DERIVED ramp — NOT hand-picked. Shipped verbatim as the output of
746
+ * `deriveSurfaceRamp(shellL=9, steps=[4.5,3.5,3,2.5], rbShadow=6, rbHilite=1.5)`
747
+ * (see `packages/ui/src/components/ui/surface/surface-lab-shared.tsx` on branch
748
+ * `feat/TD-unified-lab`, story `Lab/Surface Exploration -> Surface Ramp System`
749
+ * — that lab default is `[4.5,2.5,2,1.5]` as of this writing and should be
750
+ * updated to match on that branch, follow-up, not done here).
751
+ * Lightness is CIELAB L* off the shell, with DIMINISHING steps (4.5/3.5/3/2.5) —
752
+ * the frame->content jump is biggest, each plane above adds less, but the top
753
+ * three planes (elevated/raised/overlay) were re-spaced WIDER (S-3) than the
754
+ * original 2.5/2/1.5 taper so they read as distinct planes without leaning on
755
+ * the hairline alone. `background`/`base`/`inset` are unchanged by the re-space.
756
+ * Warmth (R-B) tapers 6 -> 1.5 from frame to hero so bright content planes stay
757
+ * near-neutral.
758
+ * Kept separate from the `charcoal` scale above (which several existing
759
+ * components reference directly for unrelated shadow/track tints) so this
760
+ * change is additive and doesn't ripple into those consumers.
761
+ * See coordination/design-explorations/surface-system-north-star.md.
762
+ */
763
+ declare const surfaceRampDark: {
764
+ readonly inset: "#13100D";
765
+ readonly background: "#1C1916";
766
+ readonly base: "#252321";
767
+ readonly elevated: "#2C2A28";
768
+ readonly raised: "#31302F";
769
+ readonly overlay: "#373635";
770
+ };
771
+ /**
772
+ * Frame/bezel primitive — dark mode (TD-surface-tokens, S-3)
773
+ *
774
+ * The chrome that "exits the content ramp" entirely: the top bar + side nav
775
+ * shell. Sits ONE STEP BELOW `surfaceRampDark.background` (L*9), darker even
776
+ * than `surfaceRampDark.inset` (L*4.5) — it isn't a plane IN the ramp, it's
777
+ * the bezel the ramp sits inside. Literal, not `deriveSurfaceRamp()` output.
778
+ */
779
+ declare const backgroundFrameDark = "#100D0A";
705
780
  /**
706
781
  * Derived tonal ramps (TD-05.09 color foundations)
707
782
  *
@@ -1058,9 +1133,11 @@ declare const lightThemeCSSVars: {
1058
1133
  readonly '--color-surface-base': "#FFFFFF";
1059
1134
  readonly '--color-surface-elevated': "#FAFAFA";
1060
1135
  readonly '--color-surface-raised': "#F3F4F6";
1136
+ readonly '--color-surface-inset': "#D1D5DB";
1061
1137
  readonly '--color-background-base': "#EBEBEB";
1062
1138
  readonly '--color-background-default': "#FFFFFF";
1063
1139
  readonly '--color-background-subtle': "#FAFAFA";
1140
+ readonly '--color-background-frame': "#9CA3AF";
1064
1141
  readonly '--color-border-default': "#E8E9EB";
1065
1142
  readonly '--color-border-subtle': "#F3F4F6";
1066
1143
  readonly '--color-border-strong': "#D1D5DB";
@@ -1117,6 +1194,9 @@ declare const lightThemeCSSVars: {
1117
1194
  readonly '--color-border-input-hover': "#9CA3AF";
1118
1195
  readonly '--color-border-input-focus': "#5048E5";
1119
1196
  readonly '--color-border-input-error': "#D14343";
1197
+ readonly '--color-hairline-subtle': "rgba(0, 0, 0, 0.06)";
1198
+ readonly '--color-hairline-default': "rgba(0, 0, 0, 0.09)";
1199
+ readonly '--color-hairline-strong': "rgba(0, 0, 0, 0.14)";
1120
1200
  readonly '--color-interactive-disabled-text': "rgba(55, 65, 81, 0.26)";
1121
1201
  readonly '--color-avatar-background': "#6B7280";
1122
1202
  readonly '--color-avatar-text': "#FFFFFF";
@@ -1170,12 +1250,14 @@ declare const darkThemeCSSVars: {
1170
1250
  readonly '--color-text-disabled': "rgba(255, 255, 255, 0.38)";
1171
1251
  readonly '--color-text-inverse': "#111827";
1172
1252
  readonly '--color-text-link': "#828DF8";
1173
- readonly '--color-surface-base': "#161616";
1174
- readonly '--color-surface-elevated': "#191919";
1175
- readonly '--color-surface-raised': "#1C1C1C";
1176
- readonly '--color-background-base': "#101010";
1177
- readonly '--color-background-default': "#161616";
1178
- readonly '--color-background-subtle': "#1C1C1C";
1253
+ readonly '--color-surface-base': "#252321";
1254
+ readonly '--color-surface-elevated': "#2C2A28";
1255
+ readonly '--color-surface-raised': "#31302F";
1256
+ readonly '--color-surface-inset': "#13100D";
1257
+ readonly '--color-background-base': "#1C1916";
1258
+ readonly '--color-background-default': "#252321";
1259
+ readonly '--color-background-subtle': "#2C2A28";
1260
+ readonly '--color-background-frame': "#100D0A";
1179
1261
  readonly '--color-border-default': "#1F1F1F";
1180
1262
  readonly '--color-border-subtle': "#1C1C1C";
1181
1263
  readonly '--color-border-strong': "#2C2C2C";
@@ -1226,12 +1308,15 @@ declare const darkThemeCSSVars: {
1226
1308
  readonly '--color-data-9': "#CAACCB";
1227
1309
  readonly '--color-data-10': "#EE8026";
1228
1310
  readonly '--color-text-link-hover': "#60A5FA";
1229
- readonly '--color-surface-overlay': "#191919";
1230
- readonly '--color-surface-input': "#191919";
1311
+ readonly '--color-surface-overlay': "#373635";
1312
+ readonly '--color-surface-input': "#2C2A28";
1231
1313
  readonly '--color-border-input': "#4B5563";
1232
1314
  readonly '--color-border-input-hover': "#6B7280";
1233
1315
  readonly '--color-border-input-focus': "#828DF8";
1234
1316
  readonly '--color-border-input-error': "#EF4444";
1317
+ readonly '--color-hairline-subtle': "rgba(255, 255, 255, 0.06)";
1318
+ readonly '--color-hairline-default': "rgba(255, 255, 255, 0.09)";
1319
+ readonly '--color-hairline-strong': "rgba(255, 255, 255, 0.14)";
1235
1320
  readonly '--color-interactive-disabled-text': "rgba(255, 255, 255, 0.26)";
1236
1321
  readonly '--color-avatar-background': "#4B5563";
1237
1322
  readonly '--color-avatar-text': "#FFFFFF";
@@ -1288,9 +1373,11 @@ declare function getThemeCSSVars(mode: ThemeMode): {
1288
1373
  readonly '--color-surface-base': "#FFFFFF";
1289
1374
  readonly '--color-surface-elevated': "#FAFAFA";
1290
1375
  readonly '--color-surface-raised': "#F3F4F6";
1376
+ readonly '--color-surface-inset': "#D1D5DB";
1291
1377
  readonly '--color-background-base': "#EBEBEB";
1292
1378
  readonly '--color-background-default': "#FFFFFF";
1293
1379
  readonly '--color-background-subtle': "#FAFAFA";
1380
+ readonly '--color-background-frame': "#9CA3AF";
1294
1381
  readonly '--color-border-default': "#E8E9EB";
1295
1382
  readonly '--color-border-subtle': "#F3F4F6";
1296
1383
  readonly '--color-border-strong': "#D1D5DB";
@@ -1347,6 +1434,9 @@ declare function getThemeCSSVars(mode: ThemeMode): {
1347
1434
  readonly '--color-border-input-hover': "#9CA3AF";
1348
1435
  readonly '--color-border-input-focus': "#5048E5";
1349
1436
  readonly '--color-border-input-error': "#D14343";
1437
+ readonly '--color-hairline-subtle': "rgba(0, 0, 0, 0.06)";
1438
+ readonly '--color-hairline-default': "rgba(0, 0, 0, 0.09)";
1439
+ readonly '--color-hairline-strong': "rgba(0, 0, 0, 0.14)";
1350
1440
  readonly '--color-interactive-disabled-text': "rgba(55, 65, 81, 0.26)";
1351
1441
  readonly '--color-avatar-background': "#6B7280";
1352
1442
  readonly '--color-avatar-text': "#FFFFFF";
@@ -1399,12 +1489,14 @@ declare function getThemeCSSVars(mode: ThemeMode): {
1399
1489
  readonly '--color-text-disabled': "rgba(255, 255, 255, 0.38)";
1400
1490
  readonly '--color-text-inverse': "#111827";
1401
1491
  readonly '--color-text-link': "#828DF8";
1402
- readonly '--color-surface-base': "#161616";
1403
- readonly '--color-surface-elevated': "#191919";
1404
- readonly '--color-surface-raised': "#1C1C1C";
1405
- readonly '--color-background-base': "#101010";
1406
- readonly '--color-background-default': "#161616";
1407
- readonly '--color-background-subtle': "#1C1C1C";
1492
+ readonly '--color-surface-base': "#252321";
1493
+ readonly '--color-surface-elevated': "#2C2A28";
1494
+ readonly '--color-surface-raised': "#31302F";
1495
+ readonly '--color-surface-inset': "#13100D";
1496
+ readonly '--color-background-base': "#1C1916";
1497
+ readonly '--color-background-default': "#252321";
1498
+ readonly '--color-background-subtle': "#2C2A28";
1499
+ readonly '--color-background-frame': "#100D0A";
1408
1500
  readonly '--color-border-default': "#1F1F1F";
1409
1501
  readonly '--color-border-subtle': "#1C1C1C";
1410
1502
  readonly '--color-border-strong': "#2C2C2C";
@@ -1455,12 +1547,15 @@ declare function getThemeCSSVars(mode: ThemeMode): {
1455
1547
  readonly '--color-data-9': "#CAACCB";
1456
1548
  readonly '--color-data-10': "#EE8026";
1457
1549
  readonly '--color-text-link-hover': "#60A5FA";
1458
- readonly '--color-surface-overlay': "#191919";
1459
- readonly '--color-surface-input': "#191919";
1550
+ readonly '--color-surface-overlay': "#373635";
1551
+ readonly '--color-surface-input': "#2C2A28";
1460
1552
  readonly '--color-border-input': "#4B5563";
1461
1553
  readonly '--color-border-input-hover': "#6B7280";
1462
1554
  readonly '--color-border-input-focus': "#828DF8";
1463
1555
  readonly '--color-border-input-error': "#EF4444";
1556
+ readonly '--color-hairline-subtle': "rgba(255, 255, 255, 0.06)";
1557
+ readonly '--color-hairline-default': "rgba(255, 255, 255, 0.09)";
1558
+ readonly '--color-hairline-strong': "rgba(255, 255, 255, 0.14)";
1464
1559
  readonly '--color-interactive-disabled-text': "rgba(255, 255, 255, 0.26)";
1465
1560
  readonly '--color-avatar-background': "#4B5563";
1466
1561
  readonly '--color-avatar-text': "#FFFFFF";
@@ -1927,4 +2022,4 @@ declare const defaultPreset: ThemePreset;
1927
2022
  */
1928
2023
  declare const audiobookPreset: ThemePreset;
1929
2024
 
1930
- export { CATEGORICAL_CVD_SAFE_MAX, type CategoricalVariant, type ComponentType, type CssPropertyEntry, type CssPropertyManifest, type ElevationConfig, type ElevationLevel, type GlowIntensity, type GradientStyle, type ManifestValidationResult, type ShadowIntensity, type ShadowSurface, type ThemeConfig, type ThemeMode, type ThemePreset, type ThemePresetColors, type ThemePresetFonts, type ThemePresetRadii, type ThemePresetShadows, ThemeProvider, type ThemeProviderMode, type ThemeProviderProps, type VariantAxes, type VariantOverride, applyThemePreset, audiobookPreset, bestTextColor, buttonSizes, categoricalPalette, componentElevationRanges, createFlatShadow, createPressedHoverShadow, createPressedShadow, createRaisedHoverShadow, createRaisedShadow, darkThemeCSSVars, darken, defaultPreset, discreteRainbow, divergingScale, elevationSystem, getBaseSurfaceColor, getCategoricalColor, getDiscreteRainbowColor, getElevationConfig, getElevationShadow, getElevationSurface, getGlowShadow, getHoverColors, getSemanticColors, getThemeCSSVars, getValidatedElevation, gluestackConfig, hexToRgb, hsvToRgb, isCssPropertyManifest, isDark, lightThemeCSSVars, lighten, linearGradient, neumorphicShadows, primitiveBorderRadius, primitiveBreakpoints, primitiveColors, primitiveRamps, primitiveShadows, primitiveSpacing, primitiveTypography, primitiveZIndex, resolveColor, rgbToHex, rgbToHsv, semanticColorsDark, semanticColorsLight, semanticTypography, sequentialEffort, shadowColors, surfaceGradient, validateCssPropertyManifest };
2025
+ export { CATEGORICAL_CVD_SAFE_MAX, type CategoricalVariant, type ComponentType, type CssPropertyEntry, type CssPropertyManifest, type ElevationConfig, type ElevationLevel, type GlowIntensity, type GradientStyle, type ManifestValidationResult, PRESSED_ELEVATION_LEVEL, type ShadowIntensity, type ShadowSurface, type ThemeConfig, type ThemeMode, type ThemePreset, type ThemePresetColors, type ThemePresetFonts, type ThemePresetRadii, type ThemePresetShadows, ThemeProvider, type ThemeProviderMode, type ThemeProviderProps, type VariantAxes, type VariantOverride, applyThemePreset, audiobookPreset, backgroundFrameDark, bestTextColor, buttonSizes, categoricalPalette, componentElevationRanges, createFlatShadow, createPressedHoverShadow, createPressedShadow, createRaisedHoverShadow, createRaisedShadow, darkThemeCSSVars, darken, defaultPreset, discreteRainbow, divergingScale, elevationSystem, getBaseSurfaceColor, getCategoricalColor, getDiscreteRainbowColor, getElevationConfig, getElevationShadow, getElevationSurface, getGlowShadow, getHoverColors, getPressedRecessShadow, getSemanticColors, getThemeCSSVars, getValidatedElevation, gluestackConfig, hexToRgb, hsvToRgb, isCssPropertyManifest, isDark, lightThemeCSSVars, lighten, linearGradient, neumorphicShadows, primitiveBorderRadius, primitiveBreakpoints, primitiveColors, primitiveRamps, primitiveShadows, primitiveSpacing, primitiveTypography, primitiveZIndex, resolveColor, rgbToHex, rgbToHsv, semanticColorsDark, semanticColorsLight, semanticTypography, sequentialEffort, shadowColors, surfaceGradient, surfaceRampDark, validateCssPropertyManifest };
@@ -93,9 +93,11 @@ declare const semanticColorsLight: {
93
93
  readonly 'surface-raised': "#F3F4F6";
94
94
  readonly 'surface-overlay': "#FFFFFF";
95
95
  readonly 'surface-input': "#FAFAFA";
96
+ readonly 'surface-inset': "#D1D5DB";
96
97
  readonly 'background-base': "#EBEBEB";
97
98
  readonly 'background-default': "#FFFFFF";
98
99
  readonly 'background-subtle': "#FAFAFA";
100
+ readonly 'background-frame': "#9CA3AF";
99
101
  readonly 'border-default': "#E8E9EB";
100
102
  readonly 'border-subtle': "#F3F4F6";
101
103
  readonly 'border-strong': "#D1D5DB";
@@ -105,6 +107,9 @@ declare const semanticColorsLight: {
105
107
  readonly 'border-input-hover': "#9CA3AF";
106
108
  readonly 'border-input-focus': "#5048E5";
107
109
  readonly 'border-input-error': "#D14343";
110
+ readonly 'hairline-subtle': "rgba(0, 0, 0, 0.06)";
111
+ readonly 'hairline-default': "rgba(0, 0, 0, 0.09)";
112
+ readonly 'hairline-strong': "rgba(0, 0, 0, 0.14)";
108
113
  readonly 'interactive-hover': "rgba(55, 65, 81, 0.04)";
109
114
  readonly 'interactive-focus': "rgba(55, 65, 81, 0.12)";
110
115
  readonly 'interactive-active': "rgba(55, 65, 81, 0.16)";
@@ -185,14 +190,16 @@ declare const semanticColorsDark: {
185
190
  readonly 'text-inverse': "#111827";
186
191
  readonly 'text-link': "#828DF8";
187
192
  readonly 'text-link-hover': "#60A5FA";
188
- readonly 'surface-base': "#161616";
189
- readonly 'surface-elevated': "#191919";
190
- readonly 'surface-raised': "#1C1C1C";
191
- readonly 'surface-overlay': "#191919";
192
- readonly 'surface-input': "#191919";
193
- readonly 'background-base': "#101010";
194
- readonly 'background-default': "#161616";
195
- readonly 'background-subtle': "#1C1C1C";
193
+ readonly 'surface-base': "#252321";
194
+ readonly 'surface-elevated': "#2C2A28";
195
+ readonly 'surface-raised': "#31302F";
196
+ readonly 'surface-overlay': "#373635";
197
+ readonly 'surface-input': "#2C2A28";
198
+ readonly 'surface-inset': "#13100D";
199
+ readonly 'background-base': "#1C1916";
200
+ readonly 'background-default': "#252321";
201
+ readonly 'background-subtle': "#2C2A28";
202
+ readonly 'background-frame': "#100D0A";
196
203
  readonly 'border-default': "#1F1F1F";
197
204
  readonly 'border-subtle': "#1C1C1C";
198
205
  readonly 'border-strong': "#2C2C2C";
@@ -202,6 +209,9 @@ declare const semanticColorsDark: {
202
209
  readonly 'border-input-hover': "#6B7280";
203
210
  readonly 'border-input-focus': "#828DF8";
204
211
  readonly 'border-input-error': "#EF4444";
212
+ readonly 'hairline-subtle': "rgba(255, 255, 255, 0.06)";
213
+ readonly 'hairline-default': "rgba(255, 255, 255, 0.09)";
214
+ readonly 'hairline-strong': "rgba(255, 255, 255, 0.14)";
205
215
  readonly 'interactive-hover': "rgba(255, 255, 255, 0.04)";
206
216
  readonly 'interactive-focus': "rgba(255, 255, 255, 0.12)";
207
217
  readonly 'interactive-active': "rgba(255, 255, 255, 0.16)";
@@ -387,9 +397,11 @@ declare function getSemanticColors(mode: ThemeMode): {
387
397
  readonly 'surface-raised': "#F3F4F6";
388
398
  readonly 'surface-overlay': "#FFFFFF";
389
399
  readonly 'surface-input': "#FAFAFA";
400
+ readonly 'surface-inset': "#D1D5DB";
390
401
  readonly 'background-base': "#EBEBEB";
391
402
  readonly 'background-default': "#FFFFFF";
392
403
  readonly 'background-subtle': "#FAFAFA";
404
+ readonly 'background-frame': "#9CA3AF";
393
405
  readonly 'border-default': "#E8E9EB";
394
406
  readonly 'border-subtle': "#F3F4F6";
395
407
  readonly 'border-strong': "#D1D5DB";
@@ -399,6 +411,9 @@ declare function getSemanticColors(mode: ThemeMode): {
399
411
  readonly 'border-input-hover': "#9CA3AF";
400
412
  readonly 'border-input-focus': "#5048E5";
401
413
  readonly 'border-input-error': "#D14343";
414
+ readonly 'hairline-subtle': "rgba(0, 0, 0, 0.06)";
415
+ readonly 'hairline-default': "rgba(0, 0, 0, 0.09)";
416
+ readonly 'hairline-strong': "rgba(0, 0, 0, 0.14)";
402
417
  readonly 'interactive-hover': "rgba(55, 65, 81, 0.04)";
403
418
  readonly 'interactive-focus': "rgba(55, 65, 81, 0.12)";
404
419
  readonly 'interactive-active': "rgba(55, 65, 81, 0.16)";
@@ -478,14 +493,16 @@ declare function getSemanticColors(mode: ThemeMode): {
478
493
  readonly 'text-inverse': "#111827";
479
494
  readonly 'text-link': "#828DF8";
480
495
  readonly 'text-link-hover': "#60A5FA";
481
- readonly 'surface-base': "#161616";
482
- readonly 'surface-elevated': "#191919";
483
- readonly 'surface-raised': "#1C1C1C";
484
- readonly 'surface-overlay': "#191919";
485
- readonly 'surface-input': "#191919";
486
- readonly 'background-base': "#101010";
487
- readonly 'background-default': "#161616";
488
- readonly 'background-subtle': "#1C1C1C";
496
+ readonly 'surface-base': "#252321";
497
+ readonly 'surface-elevated': "#2C2A28";
498
+ readonly 'surface-raised': "#31302F";
499
+ readonly 'surface-overlay': "#373635";
500
+ readonly 'surface-input': "#2C2A28";
501
+ readonly 'surface-inset': "#13100D";
502
+ readonly 'background-base': "#1C1916";
503
+ readonly 'background-default': "#252321";
504
+ readonly 'background-subtle': "#2C2A28";
505
+ readonly 'background-frame': "#100D0A";
489
506
  readonly 'border-default': "#1F1F1F";
490
507
  readonly 'border-subtle': "#1C1C1C";
491
508
  readonly 'border-strong': "#2C2C2C";
@@ -495,6 +512,9 @@ declare function getSemanticColors(mode: ThemeMode): {
495
512
  readonly 'border-input-hover': "#6B7280";
496
513
  readonly 'border-input-focus': "#828DF8";
497
514
  readonly 'border-input-error': "#EF4444";
515
+ readonly 'hairline-subtle': "rgba(255, 255, 255, 0.06)";
516
+ readonly 'hairline-default': "rgba(255, 255, 255, 0.09)";
517
+ readonly 'hairline-strong': "rgba(255, 255, 255, 0.14)";
498
518
  readonly 'interactive-hover': "rgba(255, 255, 255, 0.04)";
499
519
  readonly 'interactive-focus': "rgba(255, 255, 255, 0.12)";
500
520
  readonly 'interactive-active': "rgba(255, 255, 255, 0.16)";
@@ -568,6 +588,23 @@ declare function getElevationSurface(baseColor: string, level: ElevationLevel, t
568
588
  * @returns ViewStyle with shadow properties
569
589
  */
570
590
  declare function getElevationShadow(baseColor: string, level: ElevationLevel, theme: 'light' | 'dark', isHovered?: boolean): ViewStyle;
591
+ /**
592
+ * Elevation level backing a `<Surface pressed>` recess: the shallow `inset`
593
+ * (-1) step. Pressed exposes ONE level of depth — pressed-2 is intentionally
594
+ * not surfaced (the deeper `-2` deep-inset stays available to `elevation`).
595
+ */
596
+ declare const PRESSED_ELEVATION_LEVEL: ElevationLevel;
597
+ /**
598
+ * Inner-shadow recess for a pressed (sunken) surface, tuned to the well's own
599
+ * fill colour so the rim/shadow tints track the darker fill. Composes WITH the
600
+ * darker pressed fill: on web it adds an inset boxShadow; on the native path
601
+ * (no inset-shadow support) it's a no-op and the recess reads via the fill
602
+ * alone — so a pressed surface stays legibly sunken with or without the shadow.
603
+ *
604
+ * @param fillColor - The pressed surface's own fill (one ramp step down).
605
+ * @param theme - Current theme ('light' or 'dark').
606
+ */
607
+ declare function getPressedRecessShadow(fillColor: string, theme: 'light' | 'dark'): ViewStyle;
571
608
  /**
572
609
  * Get base surface color from theme.
573
610
  * This is the foundation color that all elevations are calculated from.
@@ -579,7 +616,7 @@ declare function getElevationShadow(baseColor: string, level: ElevationLevel, th
579
616
  * - This allows raised elevations to be lighter (closer to white)
580
617
  *
581
618
  * **Dark Mode**: Need lighter base to allow sufficient lightening
582
- * - Use `#191919` (charcoal[600]) - allows lightening to `#2A2A2A` at max elevation
619
+ * - Use `surface-elevated` (#2A2827, TD-surface-tokens ramp) - allows further lightening
583
620
  *
584
621
  * Can be overridden to use custom base colors for special cases.
585
622
  */
@@ -702,6 +739,44 @@ declare const primitiveColors: {
702
739
  readonly black: "#000000";
703
740
  readonly transparent: "transparent";
704
741
  };
742
+ /**
743
+ * Surface ramp — dark mode (TD-surface-tokens, S-1, re-spaced S-3)
744
+ *
745
+ * Warm-tapered, DERIVED ramp — NOT hand-picked. Shipped verbatim as the output of
746
+ * `deriveSurfaceRamp(shellL=9, steps=[4.5,3.5,3,2.5], rbShadow=6, rbHilite=1.5)`
747
+ * (see `packages/ui/src/components/ui/surface/surface-lab-shared.tsx` on branch
748
+ * `feat/TD-unified-lab`, story `Lab/Surface Exploration -> Surface Ramp System`
749
+ * — that lab default is `[4.5,2.5,2,1.5]` as of this writing and should be
750
+ * updated to match on that branch, follow-up, not done here).
751
+ * Lightness is CIELAB L* off the shell, with DIMINISHING steps (4.5/3.5/3/2.5) —
752
+ * the frame->content jump is biggest, each plane above adds less, but the top
753
+ * three planes (elevated/raised/overlay) were re-spaced WIDER (S-3) than the
754
+ * original 2.5/2/1.5 taper so they read as distinct planes without leaning on
755
+ * the hairline alone. `background`/`base`/`inset` are unchanged by the re-space.
756
+ * Warmth (R-B) tapers 6 -> 1.5 from frame to hero so bright content planes stay
757
+ * near-neutral.
758
+ * Kept separate from the `charcoal` scale above (which several existing
759
+ * components reference directly for unrelated shadow/track tints) so this
760
+ * change is additive and doesn't ripple into those consumers.
761
+ * See coordination/design-explorations/surface-system-north-star.md.
762
+ */
763
+ declare const surfaceRampDark: {
764
+ readonly inset: "#13100D";
765
+ readonly background: "#1C1916";
766
+ readonly base: "#252321";
767
+ readonly elevated: "#2C2A28";
768
+ readonly raised: "#31302F";
769
+ readonly overlay: "#373635";
770
+ };
771
+ /**
772
+ * Frame/bezel primitive — dark mode (TD-surface-tokens, S-3)
773
+ *
774
+ * The chrome that "exits the content ramp" entirely: the top bar + side nav
775
+ * shell. Sits ONE STEP BELOW `surfaceRampDark.background` (L*9), darker even
776
+ * than `surfaceRampDark.inset` (L*4.5) — it isn't a plane IN the ramp, it's
777
+ * the bezel the ramp sits inside. Literal, not `deriveSurfaceRamp()` output.
778
+ */
779
+ declare const backgroundFrameDark = "#100D0A";
705
780
  /**
706
781
  * Derived tonal ramps (TD-05.09 color foundations)
707
782
  *
@@ -1058,9 +1133,11 @@ declare const lightThemeCSSVars: {
1058
1133
  readonly '--color-surface-base': "#FFFFFF";
1059
1134
  readonly '--color-surface-elevated': "#FAFAFA";
1060
1135
  readonly '--color-surface-raised': "#F3F4F6";
1136
+ readonly '--color-surface-inset': "#D1D5DB";
1061
1137
  readonly '--color-background-base': "#EBEBEB";
1062
1138
  readonly '--color-background-default': "#FFFFFF";
1063
1139
  readonly '--color-background-subtle': "#FAFAFA";
1140
+ readonly '--color-background-frame': "#9CA3AF";
1064
1141
  readonly '--color-border-default': "#E8E9EB";
1065
1142
  readonly '--color-border-subtle': "#F3F4F6";
1066
1143
  readonly '--color-border-strong': "#D1D5DB";
@@ -1117,6 +1194,9 @@ declare const lightThemeCSSVars: {
1117
1194
  readonly '--color-border-input-hover': "#9CA3AF";
1118
1195
  readonly '--color-border-input-focus': "#5048E5";
1119
1196
  readonly '--color-border-input-error': "#D14343";
1197
+ readonly '--color-hairline-subtle': "rgba(0, 0, 0, 0.06)";
1198
+ readonly '--color-hairline-default': "rgba(0, 0, 0, 0.09)";
1199
+ readonly '--color-hairline-strong': "rgba(0, 0, 0, 0.14)";
1120
1200
  readonly '--color-interactive-disabled-text': "rgba(55, 65, 81, 0.26)";
1121
1201
  readonly '--color-avatar-background': "#6B7280";
1122
1202
  readonly '--color-avatar-text': "#FFFFFF";
@@ -1170,12 +1250,14 @@ declare const darkThemeCSSVars: {
1170
1250
  readonly '--color-text-disabled': "rgba(255, 255, 255, 0.38)";
1171
1251
  readonly '--color-text-inverse': "#111827";
1172
1252
  readonly '--color-text-link': "#828DF8";
1173
- readonly '--color-surface-base': "#161616";
1174
- readonly '--color-surface-elevated': "#191919";
1175
- readonly '--color-surface-raised': "#1C1C1C";
1176
- readonly '--color-background-base': "#101010";
1177
- readonly '--color-background-default': "#161616";
1178
- readonly '--color-background-subtle': "#1C1C1C";
1253
+ readonly '--color-surface-base': "#252321";
1254
+ readonly '--color-surface-elevated': "#2C2A28";
1255
+ readonly '--color-surface-raised': "#31302F";
1256
+ readonly '--color-surface-inset': "#13100D";
1257
+ readonly '--color-background-base': "#1C1916";
1258
+ readonly '--color-background-default': "#252321";
1259
+ readonly '--color-background-subtle': "#2C2A28";
1260
+ readonly '--color-background-frame': "#100D0A";
1179
1261
  readonly '--color-border-default': "#1F1F1F";
1180
1262
  readonly '--color-border-subtle': "#1C1C1C";
1181
1263
  readonly '--color-border-strong': "#2C2C2C";
@@ -1226,12 +1308,15 @@ declare const darkThemeCSSVars: {
1226
1308
  readonly '--color-data-9': "#CAACCB";
1227
1309
  readonly '--color-data-10': "#EE8026";
1228
1310
  readonly '--color-text-link-hover': "#60A5FA";
1229
- readonly '--color-surface-overlay': "#191919";
1230
- readonly '--color-surface-input': "#191919";
1311
+ readonly '--color-surface-overlay': "#373635";
1312
+ readonly '--color-surface-input': "#2C2A28";
1231
1313
  readonly '--color-border-input': "#4B5563";
1232
1314
  readonly '--color-border-input-hover': "#6B7280";
1233
1315
  readonly '--color-border-input-focus': "#828DF8";
1234
1316
  readonly '--color-border-input-error': "#EF4444";
1317
+ readonly '--color-hairline-subtle': "rgba(255, 255, 255, 0.06)";
1318
+ readonly '--color-hairline-default': "rgba(255, 255, 255, 0.09)";
1319
+ readonly '--color-hairline-strong': "rgba(255, 255, 255, 0.14)";
1235
1320
  readonly '--color-interactive-disabled-text': "rgba(255, 255, 255, 0.26)";
1236
1321
  readonly '--color-avatar-background': "#4B5563";
1237
1322
  readonly '--color-avatar-text': "#FFFFFF";
@@ -1288,9 +1373,11 @@ declare function getThemeCSSVars(mode: ThemeMode): {
1288
1373
  readonly '--color-surface-base': "#FFFFFF";
1289
1374
  readonly '--color-surface-elevated': "#FAFAFA";
1290
1375
  readonly '--color-surface-raised': "#F3F4F6";
1376
+ readonly '--color-surface-inset': "#D1D5DB";
1291
1377
  readonly '--color-background-base': "#EBEBEB";
1292
1378
  readonly '--color-background-default': "#FFFFFF";
1293
1379
  readonly '--color-background-subtle': "#FAFAFA";
1380
+ readonly '--color-background-frame': "#9CA3AF";
1294
1381
  readonly '--color-border-default': "#E8E9EB";
1295
1382
  readonly '--color-border-subtle': "#F3F4F6";
1296
1383
  readonly '--color-border-strong': "#D1D5DB";
@@ -1347,6 +1434,9 @@ declare function getThemeCSSVars(mode: ThemeMode): {
1347
1434
  readonly '--color-border-input-hover': "#9CA3AF";
1348
1435
  readonly '--color-border-input-focus': "#5048E5";
1349
1436
  readonly '--color-border-input-error': "#D14343";
1437
+ readonly '--color-hairline-subtle': "rgba(0, 0, 0, 0.06)";
1438
+ readonly '--color-hairline-default': "rgba(0, 0, 0, 0.09)";
1439
+ readonly '--color-hairline-strong': "rgba(0, 0, 0, 0.14)";
1350
1440
  readonly '--color-interactive-disabled-text': "rgba(55, 65, 81, 0.26)";
1351
1441
  readonly '--color-avatar-background': "#6B7280";
1352
1442
  readonly '--color-avatar-text': "#FFFFFF";
@@ -1399,12 +1489,14 @@ declare function getThemeCSSVars(mode: ThemeMode): {
1399
1489
  readonly '--color-text-disabled': "rgba(255, 255, 255, 0.38)";
1400
1490
  readonly '--color-text-inverse': "#111827";
1401
1491
  readonly '--color-text-link': "#828DF8";
1402
- readonly '--color-surface-base': "#161616";
1403
- readonly '--color-surface-elevated': "#191919";
1404
- readonly '--color-surface-raised': "#1C1C1C";
1405
- readonly '--color-background-base': "#101010";
1406
- readonly '--color-background-default': "#161616";
1407
- readonly '--color-background-subtle': "#1C1C1C";
1492
+ readonly '--color-surface-base': "#252321";
1493
+ readonly '--color-surface-elevated': "#2C2A28";
1494
+ readonly '--color-surface-raised': "#31302F";
1495
+ readonly '--color-surface-inset': "#13100D";
1496
+ readonly '--color-background-base': "#1C1916";
1497
+ readonly '--color-background-default': "#252321";
1498
+ readonly '--color-background-subtle': "#2C2A28";
1499
+ readonly '--color-background-frame': "#100D0A";
1408
1500
  readonly '--color-border-default': "#1F1F1F";
1409
1501
  readonly '--color-border-subtle': "#1C1C1C";
1410
1502
  readonly '--color-border-strong': "#2C2C2C";
@@ -1455,12 +1547,15 @@ declare function getThemeCSSVars(mode: ThemeMode): {
1455
1547
  readonly '--color-data-9': "#CAACCB";
1456
1548
  readonly '--color-data-10': "#EE8026";
1457
1549
  readonly '--color-text-link-hover': "#60A5FA";
1458
- readonly '--color-surface-overlay': "#191919";
1459
- readonly '--color-surface-input': "#191919";
1550
+ readonly '--color-surface-overlay': "#373635";
1551
+ readonly '--color-surface-input': "#2C2A28";
1460
1552
  readonly '--color-border-input': "#4B5563";
1461
1553
  readonly '--color-border-input-hover': "#6B7280";
1462
1554
  readonly '--color-border-input-focus': "#828DF8";
1463
1555
  readonly '--color-border-input-error': "#EF4444";
1556
+ readonly '--color-hairline-subtle': "rgba(255, 255, 255, 0.06)";
1557
+ readonly '--color-hairline-default': "rgba(255, 255, 255, 0.09)";
1558
+ readonly '--color-hairline-strong': "rgba(255, 255, 255, 0.14)";
1464
1559
  readonly '--color-interactive-disabled-text': "rgba(255, 255, 255, 0.26)";
1465
1560
  readonly '--color-avatar-background': "#4B5563";
1466
1561
  readonly '--color-avatar-text': "#FFFFFF";
@@ -1927,4 +2022,4 @@ declare const defaultPreset: ThemePreset;
1927
2022
  */
1928
2023
  declare const audiobookPreset: ThemePreset;
1929
2024
 
1930
- export { CATEGORICAL_CVD_SAFE_MAX, type CategoricalVariant, type ComponentType, type CssPropertyEntry, type CssPropertyManifest, type ElevationConfig, type ElevationLevel, type GlowIntensity, type GradientStyle, type ManifestValidationResult, type ShadowIntensity, type ShadowSurface, type ThemeConfig, type ThemeMode, type ThemePreset, type ThemePresetColors, type ThemePresetFonts, type ThemePresetRadii, type ThemePresetShadows, ThemeProvider, type ThemeProviderMode, type ThemeProviderProps, type VariantAxes, type VariantOverride, applyThemePreset, audiobookPreset, bestTextColor, buttonSizes, categoricalPalette, componentElevationRanges, createFlatShadow, createPressedHoverShadow, createPressedShadow, createRaisedHoverShadow, createRaisedShadow, darkThemeCSSVars, darken, defaultPreset, discreteRainbow, divergingScale, elevationSystem, getBaseSurfaceColor, getCategoricalColor, getDiscreteRainbowColor, getElevationConfig, getElevationShadow, getElevationSurface, getGlowShadow, getHoverColors, getSemanticColors, getThemeCSSVars, getValidatedElevation, gluestackConfig, hexToRgb, hsvToRgb, isCssPropertyManifest, isDark, lightThemeCSSVars, lighten, linearGradient, neumorphicShadows, primitiveBorderRadius, primitiveBreakpoints, primitiveColors, primitiveRamps, primitiveShadows, primitiveSpacing, primitiveTypography, primitiveZIndex, resolveColor, rgbToHex, rgbToHsv, semanticColorsDark, semanticColorsLight, semanticTypography, sequentialEffort, shadowColors, surfaceGradient, validateCssPropertyManifest };
2025
+ export { CATEGORICAL_CVD_SAFE_MAX, type CategoricalVariant, type ComponentType, type CssPropertyEntry, type CssPropertyManifest, type ElevationConfig, type ElevationLevel, type GlowIntensity, type GradientStyle, type ManifestValidationResult, PRESSED_ELEVATION_LEVEL, type ShadowIntensity, type ShadowSurface, type ThemeConfig, type ThemeMode, type ThemePreset, type ThemePresetColors, type ThemePresetFonts, type ThemePresetRadii, type ThemePresetShadows, ThemeProvider, type ThemeProviderMode, type ThemeProviderProps, type VariantAxes, type VariantOverride, applyThemePreset, audiobookPreset, backgroundFrameDark, bestTextColor, buttonSizes, categoricalPalette, componentElevationRanges, createFlatShadow, createPressedHoverShadow, createPressedShadow, createRaisedHoverShadow, createRaisedShadow, darkThemeCSSVars, darken, defaultPreset, discreteRainbow, divergingScale, elevationSystem, getBaseSurfaceColor, getCategoricalColor, getDiscreteRainbowColor, getElevationConfig, getElevationShadow, getElevationSurface, getGlowShadow, getHoverColors, getPressedRecessShadow, getSemanticColors, getThemeCSSVars, getValidatedElevation, gluestackConfig, hexToRgb, hsvToRgb, isCssPropertyManifest, isDark, lightThemeCSSVars, lighten, linearGradient, neumorphicShadows, primitiveBorderRadius, primitiveBreakpoints, primitiveColors, primitiveRamps, primitiveShadows, primitiveSpacing, primitiveTypography, primitiveZIndex, resolveColor, rgbToHex, rgbToHsv, semanticColorsDark, semanticColorsLight, semanticTypography, sequentialEffort, shadowColors, surfaceGradient, surfaceRampDark, validateCssPropertyManifest };