@titan-design/react-ui 0.5.0 → 0.7.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 (307) hide show
  1. package/dist/bodymap.js +241 -189
  2. package/dist/bodymap.js.map +1 -1
  3. package/dist/bodymap.mjs +241 -189
  4. package/dist/bodymap.mjs.map +1 -1
  5. package/dist/index.d.mts +1017 -130
  6. package/dist/index.d.ts +1017 -130
  7. package/dist/index.js +3058 -1090
  8. package/dist/index.js.map +1 -1
  9. package/dist/index.mjs +2992 -1091
  10. package/dist/index.mjs.map +1 -1
  11. package/dist/{pages-MO0JCySL.d.mts → pages-8u_4WbL-.d.mts} +280 -57
  12. package/dist/{pages-D7Jlssvp.d.ts → pages-DaWiBOGa.d.ts} +280 -57
  13. package/dist/pages.d.mts +1 -1
  14. package/dist/pages.d.ts +1 -1
  15. package/dist/pages.js +1797 -1292
  16. package/dist/pages.js.map +1 -1
  17. package/dist/pages.mjs +1797 -1292
  18. package/dist/pages.mjs.map +1 -1
  19. package/dist/theme/index.d.mts +464 -268
  20. package/dist/theme/index.d.ts +464 -268
  21. package/dist/theme/index.js +303 -191
  22. package/dist/theme/index.js.map +1 -1
  23. package/dist/theme/index.mjs +295 -192
  24. package/dist/theme/index.mjs.map +1 -1
  25. package/dist/theme/tokens-css.js +160 -143
  26. package/dist/theme/tokens-css.js.map +1 -1
  27. package/dist/theme/tokens-css.mjs +160 -143
  28. package/dist/theme/tokens-css.mjs.map +1 -1
  29. package/package.json +3 -1
  30. package/src/arch/Architecture.stories.tsx +870 -0
  31. package/src/arch/annotations.json +48 -0
  32. package/src/arch/arch-graph.json +4301 -0
  33. package/src/components/custom/DateTime/DateTime.stories.tsx +83 -7
  34. package/src/components/custom/DateTime/DateTime.test.tsx +29 -3
  35. package/src/components/custom/DateTime/DateTime.tsx +55 -15
  36. package/src/components/custom/EmptyState/EmptyState.stories.tsx +1 -1
  37. package/src/components/custom/Gauge/Gauge.stories.tsx +1 -1
  38. package/src/components/custom/Gauge/Gauge.test.tsx +2 -2
  39. package/src/components/custom/Gauge/Gauge.tsx +6 -3
  40. package/src/components/custom/Metric/Metric.stories.tsx +1 -1
  41. package/src/components/custom/Scatter/Scatter.stories.tsx +1 -1
  42. package/src/components/custom/Scatter/Scatter.tsx +3 -5
  43. package/src/components/custom/Sidebar/Sidebar.stories.tsx +1 -1
  44. package/src/components/custom/Table/Table.stories.tsx +1 -1
  45. package/src/components/custom/TimerReadout/TimerReadout.stories.tsx +62 -0
  46. package/src/components/custom/TimerReadout/TimerReadout.test.tsx +72 -0
  47. package/src/components/custom/TimerReadout/TimerReadout.tsx +75 -0
  48. package/src/components/custom/TimerReadout/index.ts +1 -0
  49. package/src/components/custom/Treemap/Treemap.stories.tsx +1 -1
  50. package/src/components/custom/Treemap/Treemap.tsx +3 -5
  51. package/src/components/custom/Typography/Typography.stories.tsx +46 -28
  52. package/src/components/custom/Typography/Typography.test.tsx +13 -3
  53. package/src/components/custom/Typography/Typography.tsx +5 -0
  54. package/src/components/custom/Workout/ActiveWorkoutPage.stories.tsx +21 -13
  55. package/src/components/custom/Workout/ActiveWorkoutPage.test.tsx +16 -13
  56. package/src/components/custom/Workout/ActiveWorkoutPage.tsx +11 -16
  57. package/src/components/custom/Workout/BaseBadge.stories.tsx +1 -1
  58. package/src/components/custom/Workout/BodyMap.stories.tsx +1 -1
  59. package/src/components/custom/Workout/BodyMap.tsx +6 -3
  60. package/src/components/custom/Workout/BodyMapDetailPanel.stories.tsx +1 -1
  61. package/src/components/custom/Workout/BodyMapDetailPanel.tsx +6 -3
  62. package/src/components/custom/Workout/CapacityBandChart.stories.tsx +1 -1
  63. package/src/components/custom/Workout/CapacityBandChart.test.tsx +2 -2
  64. package/src/components/custom/Workout/CapacityBandChart.tsx +9 -6
  65. package/src/components/custom/Workout/DeviationBar.stories.tsx +1 -1
  66. package/src/components/custom/Workout/DeviationBar.test.tsx +1 -1
  67. package/src/components/custom/Workout/DeviationBar.tsx +7 -4
  68. package/src/components/custom/Workout/ExerciseCard.stories.tsx +51 -66
  69. package/src/components/custom/Workout/ExerciseCard.test.tsx +146 -143
  70. package/src/components/custom/Workout/ExerciseCard.tsx +176 -198
  71. package/src/components/custom/Workout/ExerciseCardHeading.stories.tsx +99 -0
  72. package/src/components/custom/Workout/ExerciseCardHeading.test.tsx +72 -0
  73. package/src/components/custom/Workout/ExerciseCardHeading.tsx +43 -0
  74. package/src/components/custom/Workout/ExerciseCardUnified.stories.tsx +151 -0
  75. package/src/components/custom/Workout/ExerciseDetailPage.stories.tsx +5 -3
  76. package/src/components/custom/Workout/ExerciseDetailPage.test.tsx +4 -4
  77. package/src/components/custom/Workout/ExerciseDetailPage.tsx +6 -6
  78. package/src/components/custom/Workout/ExerciseHeading.stories.tsx +81 -0
  79. package/src/components/custom/Workout/ExerciseHeading.test.tsx +77 -0
  80. package/src/components/custom/Workout/ExerciseHeading.tsx +85 -0
  81. package/src/components/custom/Workout/ExerciseIndicator.stories.tsx +110 -0
  82. package/src/components/custom/Workout/ExerciseIndicator.test.tsx +93 -0
  83. package/src/components/custom/Workout/ExerciseIndicator.tsx +120 -0
  84. package/src/components/custom/Workout/FatigueMeter.stories.tsx +51 -0
  85. package/src/components/custom/Workout/FatigueMeter.test.tsx +73 -0
  86. package/src/components/custom/Workout/FatigueMeter.tsx +82 -0
  87. package/src/components/custom/Workout/InputBar.stories.tsx +1 -1
  88. package/src/components/custom/Workout/InputBar.tsx +2 -1
  89. package/src/components/custom/Workout/IntensityBar.stories.tsx +1 -1
  90. package/src/components/custom/Workout/IntensityBar.test.tsx +8 -8
  91. package/src/components/custom/Workout/IntensityBar.tsx +10 -6
  92. package/src/components/custom/Workout/LiveAuraFrame.stories.tsx +153 -0
  93. package/src/components/custom/Workout/LiveAuraFrame.test.tsx +74 -0
  94. package/src/components/custom/Workout/LiveAuraFrame.tsx +105 -0
  95. package/src/components/custom/Workout/MesoCard.stories.tsx +1 -1
  96. package/src/components/custom/Workout/MesoCard.tsx +8 -3
  97. package/src/components/custom/Workout/MesoProgressBar.stories.tsx +1 -1
  98. package/src/components/custom/Workout/MesoProgressBar.test.tsx +1 -1
  99. package/src/components/custom/Workout/MesoProgressBar.tsx +3 -2
  100. package/src/components/custom/Workout/MesoStatusCard.stories.tsx +1 -1
  101. package/src/components/custom/Workout/MesoStatusCard.tsx +20 -13
  102. package/src/components/custom/Workout/MetricTiles.stories.tsx +60 -0
  103. package/src/components/custom/Workout/MetricTiles.test.tsx +58 -0
  104. package/src/components/custom/Workout/MetricTiles.tsx +48 -0
  105. package/src/components/custom/Workout/MuscleGroupChip.stories.tsx +1 -1
  106. package/src/components/custom/Workout/MuscleGroupChip.tsx +7 -4
  107. package/src/components/custom/Workout/PlaceholderStrip.stories.tsx +1 -1
  108. package/src/components/custom/Workout/PrBadge.stories.tsx +1 -1
  109. package/src/components/custom/Workout/PrBadge.tsx +5 -2
  110. package/src/components/custom/Workout/PrHistoryModal.stories.tsx +1 -1
  111. package/src/components/custom/Workout/PrHistoryModal.tsx +4 -3
  112. package/src/components/custom/Workout/ProgramPlanningPage.stories.tsx +4 -16
  113. package/src/components/custom/Workout/ProgramPlanningPage.tsx +10 -7
  114. package/src/components/custom/Workout/README.md +146 -4
  115. package/src/components/custom/Workout/ReadinessCheck.stories.tsx +1 -1
  116. package/src/components/custom/Workout/ReadinessCheck.tsx +7 -4
  117. package/src/components/custom/Workout/RestTimer.stories.tsx +1 -1
  118. package/src/components/custom/Workout/RestTimer.tsx +17 -11
  119. package/src/components/custom/Workout/RowInventory.stories.tsx +405 -0
  120. package/src/components/custom/Workout/S3FullRail.stories.tsx +34 -0
  121. package/src/components/custom/Workout/S3SessionPace.stories.tsx +95 -0
  122. package/src/components/custom/Workout/S3SessionRailHeading.stories.tsx +61 -0
  123. package/src/components/custom/Workout/S3SetTypes.stories.tsx +176 -0
  124. package/src/components/custom/Workout/S3WorkoutExpansion.stories.tsx +240 -0
  125. package/src/components/custom/Workout/ScheduleTiles.stories.tsx +40 -0
  126. package/src/components/custom/Workout/ScheduleTiles.test.tsx +34 -0
  127. package/src/components/custom/Workout/ScheduleTiles.tsx +70 -0
  128. package/src/components/custom/Workout/SegmentedBar.stories.tsx +99 -0
  129. package/src/components/custom/Workout/SegmentedBar.test.tsx +77 -0
  130. package/src/components/custom/Workout/SegmentedBar.tsx +172 -0
  131. package/src/components/custom/Workout/SegmentedProgressBar.stories.tsx +50 -0
  132. package/src/components/custom/Workout/SegmentedProgressBar.test.tsx +80 -0
  133. package/src/components/custom/Workout/SegmentedProgressBar.tsx +67 -0
  134. package/src/components/custom/Workout/SessionHeader.stories.tsx +121 -0
  135. package/src/components/custom/Workout/SessionHeader.test.tsx +122 -0
  136. package/src/components/custom/Workout/SessionHeader.tsx +152 -0
  137. package/src/components/custom/Workout/SessionRail.stories.tsx +153 -0
  138. package/src/components/custom/Workout/SessionRail.test.tsx +86 -0
  139. package/src/components/custom/Workout/SessionRail.tsx +126 -0
  140. package/src/components/custom/Workout/SetBar.stories.tsx +124 -0
  141. package/src/components/custom/Workout/SetBar.test.tsx +123 -0
  142. package/src/components/custom/Workout/SetBar.tsx +171 -0
  143. package/src/components/custom/Workout/SetRow.stories.tsx +50 -100
  144. package/src/components/custom/Workout/SetRow.test.tsx +94 -166
  145. package/src/components/custom/Workout/SetRow.tsx +170 -232
  146. package/src/components/custom/Workout/SetStrip.stories.tsx +154 -0
  147. package/src/components/custom/Workout/SetStrip.test.tsx +109 -0
  148. package/src/components/custom/Workout/SetStrip.tsx +71 -0
  149. package/src/components/custom/Workout/SetTableHeader.stories.tsx +66 -0
  150. package/src/components/custom/Workout/SetTableHeader.test.tsx +47 -0
  151. package/src/components/custom/Workout/SetTableHeader.tsx +88 -0
  152. package/src/components/custom/Workout/SetsRepsLoad.stories.tsx +47 -0
  153. package/src/components/custom/Workout/SetsRepsLoad.test.tsx +44 -0
  154. package/src/components/custom/Workout/SetsRepsLoad.tsx +52 -0
  155. package/src/components/custom/Workout/Sparkline.stories.tsx +1 -1
  156. package/src/components/custom/Workout/Sparkline.tsx +2 -1
  157. package/src/components/custom/Workout/StatusDot.stories.tsx +1 -1
  158. package/src/components/custom/Workout/StatusDot.test.tsx +2 -2
  159. package/src/components/custom/Workout/StatusDot.tsx +12 -9
  160. package/src/components/custom/Workout/StatusPill.stories.tsx +59 -0
  161. package/src/components/custom/Workout/StatusPill.test.tsx +63 -0
  162. package/src/components/custom/Workout/StatusPill.tsx +88 -0
  163. package/src/components/custom/Workout/StrengthTrendChart.stories.tsx +1 -1
  164. package/src/components/custom/Workout/StrengthTrendChart.tsx +9 -6
  165. package/src/components/custom/Workout/SupersetWrapper.stories.tsx +1 -1
  166. package/src/components/custom/Workout/SupersetWrapper.tsx +2 -1
  167. package/src/components/custom/Workout/TempoBar.stories.tsx +1 -1
  168. package/src/components/custom/Workout/TempoDisplay.stories.tsx +12 -1
  169. package/src/components/custom/Workout/TempoDisplay.tsx +29 -36
  170. package/src/components/custom/Workout/TrainingStatusPage.stories.tsx +1 -1
  171. package/src/components/custom/Workout/VelocityStrip.modalities.stories.tsx +254 -0
  172. package/src/components/custom/Workout/VelocityStrip.responsive.stories.tsx +145 -0
  173. package/src/components/custom/Workout/VelocityStrip.stories.tsx +129 -66
  174. package/src/components/custom/Workout/VelocityStrip.test.tsx +379 -144
  175. package/src/components/custom/Workout/VelocityStrip.tsx +508 -120
  176. package/src/components/custom/Workout/VolumeLandmarkBar.stories.tsx +73 -0
  177. package/src/components/custom/Workout/VolumeLandmarkBar.test.tsx +119 -0
  178. package/src/components/custom/Workout/VolumeLandmarkBar.tsx +154 -0
  179. package/src/components/custom/Workout/WeekRow.stories.tsx +1 -1
  180. package/src/components/custom/Workout/WeekRow.tsx +3 -2
  181. package/src/components/custom/Workout/WeightBadge.stories.tsx +1 -1
  182. package/src/components/custom/Workout/WeightBadge.tsx +6 -2
  183. package/src/components/custom/Workout/WorkoutCard.stories.tsx +2 -6
  184. package/src/components/custom/Workout/WorkoutCard.test.tsx +13 -46
  185. package/src/components/custom/Workout/WorkoutCard.tsx +5 -2
  186. package/src/components/custom/Workout/WorkoutPill.stories.tsx +1 -1
  187. package/src/components/custom/Workout/WorkoutPill.tsx +12 -8
  188. package/src/components/custom/Workout/ZoneTrack.stories.tsx +140 -0
  189. package/src/components/custom/Workout/ZoneTrack.test.tsx +200 -0
  190. package/src/components/custom/Workout/ZoneTrack.tsx +315 -0
  191. package/src/components/custom/Workout/icons.tsx +6 -67
  192. package/src/components/custom/Workout/index.ts +55 -2
  193. package/src/components/custom/Workout/metricText.stories.tsx +69 -0
  194. package/src/components/custom/Workout/metricText.tsx +34 -0
  195. package/src/components/custom/Workout/paceTone.test.ts +29 -0
  196. package/src/components/custom/Workout/paceTone.ts +27 -0
  197. package/src/components/custom/Workout/setHeadingKit.tsx +177 -0
  198. package/src/components/custom/index.ts +1 -0
  199. package/src/components/custom/stepper/Stepper.stories.tsx +1 -1
  200. package/src/components/icons/SvgIcon.tsx +50 -0
  201. package/src/components/icons/icons.stories.tsx +122 -0
  202. package/src/components/icons/icons.test.tsx +73 -0
  203. package/src/components/icons/icons.tsx +153 -0
  204. package/src/components/icons/index.ts +4 -0
  205. package/src/components/index.ts +6 -0
  206. package/src/components/shell/BrandLockup.stories.tsx +27 -0
  207. package/src/components/shell/BrandLockup.test.tsx +23 -0
  208. package/src/components/shell/BrandLockup.tsx +47 -0
  209. package/src/components/shell/DashboardShell.stories.tsx +65 -0
  210. package/src/components/shell/DashboardShell.test.tsx +42 -0
  211. package/src/components/shell/DashboardShell.tsx +74 -0
  212. package/src/components/shell/DeviceIndicator.stories.tsx +28 -0
  213. package/src/components/shell/DeviceIndicator.test.tsx +26 -0
  214. package/src/components/shell/DeviceIndicator.tsx +52 -0
  215. package/src/components/shell/DeviceMenu.stories.tsx +47 -0
  216. package/src/components/shell/DeviceMenu.test.tsx +40 -0
  217. package/src/components/shell/DeviceMenu.tsx +65 -0
  218. package/src/components/shell/DeviceRow.stories.tsx +38 -0
  219. package/src/components/shell/DeviceRow.test.tsx +37 -0
  220. package/src/components/shell/DeviceRow.tsx +58 -0
  221. package/src/components/shell/NavItem.stories.tsx +52 -0
  222. package/src/components/shell/NavItem.test.tsx +35 -0
  223. package/src/components/shell/NavItem.tsx +75 -0
  224. package/src/components/shell/README.md +116 -0
  225. package/src/components/shell/SessionRailSpecimen.stories.tsx +753 -0
  226. package/src/components/shell/SessionStatePill.stories.tsx +27 -0
  227. package/src/components/shell/SessionStatePill.test.tsx +25 -0
  228. package/src/components/shell/SessionStatePill.tsx +46 -0
  229. package/src/components/shell/SideNav.stories.tsx +81 -0
  230. package/src/components/shell/SideNav.test.tsx +51 -0
  231. package/src/components/shell/SideNav.tsx +74 -0
  232. package/src/components/shell/TopBar.stories.tsx +49 -0
  233. package/src/components/shell/TopBar.test.tsx +36 -0
  234. package/src/components/shell/TopBar.tsx +89 -0
  235. package/src/components/shell/index.ts +13 -0
  236. package/src/components/ui/alert/Alert.stories.tsx +1 -1
  237. package/src/components/ui/autocomplete/Autocomplete.stories.tsx +1 -1
  238. package/src/components/ui/avatar/Avatar.stories.tsx +1 -1
  239. package/src/components/ui/badge/Badge.stories.tsx +1 -1
  240. package/src/components/ui/breadcrumbs/Breadcrumbs.stories.tsx +1 -1
  241. package/src/components/ui/button/Button.stories.tsx +1 -1
  242. package/src/components/ui/card/Card.stories.tsx +1 -1
  243. package/src/components/ui/checkbox/Checkbox.stories.tsx +1 -1
  244. package/src/components/ui/chip/Chip.stories.tsx +1 -1
  245. package/src/components/ui/collapse/Collapse.stories.tsx +1 -1
  246. package/src/components/ui/data-row/DataRow.stories.tsx +1 -1
  247. package/src/components/ui/divider/Divider.stories.tsx +1 -1
  248. package/src/components/ui/drawer/Drawer.stories.tsx +1 -1
  249. package/src/components/ui/form-field/FormField.stories.tsx +1 -1
  250. package/src/components/ui/help-tip/HelpTip.stories.tsx +1 -1
  251. package/src/components/ui/icon-box/IconBox.stories.tsx +1 -1
  252. package/src/components/ui/index.ts +1 -0
  253. package/src/components/ui/indicator/Indicator.stories.tsx +38 -2
  254. package/src/components/ui/indicator/Indicator.test.tsx +20 -1
  255. package/src/components/ui/indicator/Indicator.tsx +50 -6
  256. package/src/components/ui/indicator/index.ts +1 -1
  257. package/src/components/ui/input/Input.stories.tsx +1 -1
  258. package/src/components/ui/link/Link.stories.tsx +1 -1
  259. package/src/components/ui/list-item/ListItem.stories.tsx +1 -1
  260. package/src/components/ui/menu/Menu.stories.tsx +1 -1
  261. package/src/components/ui/modal/Modal.stories.tsx +1 -1
  262. package/src/components/ui/pill/Pill.stories.tsx +1 -1
  263. package/src/components/ui/popover/Popover.stories.tsx +1 -1
  264. package/src/components/ui/progress/Progress.stories.tsx +1 -1
  265. package/src/components/ui/radio/Radio.stories.tsx +1 -1
  266. package/src/components/ui/section/Section.stories.tsx +1 -1
  267. package/src/components/ui/select/Select.stories.tsx +1 -1
  268. package/src/components/ui/skeleton/Skeleton.stories.tsx +1 -1
  269. package/src/components/ui/spinner/Spinner.stories.tsx +1 -1
  270. package/src/components/ui/spinner/Spinner.tsx +3 -2
  271. package/src/components/ui/stack/Stack.stories.tsx +1 -1
  272. package/src/components/ui/surface/Surface.stories.tsx +1 -1
  273. package/src/components/ui/switch/Switch.stories.tsx +1 -1
  274. package/src/components/ui/tabs/Tabs.stories.tsx +1 -1
  275. package/src/components/ui/tile/Tile.stories.tsx +79 -0
  276. package/src/components/ui/tile/Tile.test.tsx +48 -0
  277. package/src/components/ui/tile/Tile.tsx +64 -0
  278. package/src/components/ui/tile/index.ts +2 -0
  279. package/src/components/ui/toast/Toast.stories.tsx +1 -1
  280. package/src/components/ui/toolbar-button/ToolbarButton.stories.tsx +1 -1
  281. package/src/components/ui/toolbar-button/ToolbarButton.tsx +2 -1
  282. package/src/components/ui/tooltip/Tooltip.stories.tsx +1 -1
  283. package/src/examples/react-hook-form/ReactHookForm.stories.tsx +1 -1
  284. package/src/hooks/index.ts +2 -0
  285. package/src/hooks/useTimer.test.ts +150 -0
  286. package/src/hooks/useTimer.ts +77 -0
  287. package/src/index.ts +3 -0
  288. package/src/pages.ts +1 -1
  289. package/src/stories/PresetShowcase.stories.tsx +1 -1
  290. package/src/stories/ThemePresets.stories.tsx +1 -1
  291. package/src/theme/ColorSystem.stories.tsx +323 -0
  292. package/src/theme/Colors.stories.tsx +74 -9
  293. package/src/theme/barrel.ts +1 -0
  294. package/src/theme/config.ts +20 -3
  295. package/src/theme/elevation.stories.tsx +1 -1
  296. package/src/theme/extracted-colors-dataviz.ts +21 -0
  297. package/src/theme/extracted-colors-ui.ts +20 -0
  298. package/src/theme/global.css +69 -53
  299. package/src/theme/gradients.test.ts +25 -0
  300. package/src/theme/gradients.ts +36 -0
  301. package/src/theme/shadows.stories.tsx +1 -1
  302. package/src/theme/tokens/primitives.test.ts +232 -0
  303. package/src/theme/tokens/primitives.ts +238 -87
  304. package/src/theme/tokens/semantic.ts +101 -81
  305. package/src/theme/workout-tokens.ts +26 -21
  306. package/src/utils/avatar-color.ts +3 -3
  307. package/tailwind.config.js +15 -3
@@ -6,7 +6,7 @@ var jsxRuntime = require('react/jsx-runtime');
6
6
 
7
7
  // src/theme/tokens/primitives.ts
8
8
  var primitiveColors = {
9
- // Blue scale (primary brand)
9
+ // Blue scale
10
10
  blue: {
11
11
  50: "#EFF6FF",
12
12
  100: "#DBEAFE",
@@ -15,91 +15,35 @@ var primitiveColors = {
15
15
  400: "#60A5FA",
16
16
  500: "#3B82F6",
17
17
  600: "#5048E5",
18
- // Primary main
19
18
  700: "#3832A0",
20
- // Primary dark
21
19
  800: "#1E40AF",
22
20
  900: "#1E3A8A"
23
21
  },
24
- // Green scale (secondary brand)
25
- green: {
26
- 50: "#ECFDF5",
27
- 100: "#D1FAE5",
28
- 200: "#A7F3D0",
29
- 300: "#6EE7B7",
30
- 400: "#3FC79A",
31
- // Secondary light
32
- 500: "#10B981",
33
- // Secondary main
34
- 600: "#059669",
35
- 700: "#0B815A",
36
- // Secondary dark
37
- 800: "#065F46",
38
- 900: "#064E3B"
39
- },
40
- // Teal scale (success)
41
- teal: {
42
- 50: "#F0FDFA",
43
- 100: "#CCFBF1",
44
- 200: "#99F6E4",
45
- 300: "#5EEAD4",
46
- 400: "#43C6B7",
47
- // Success light
48
- 500: "#14B8A6",
49
- // Success main
50
- 600: "#0D9488",
51
- 700: "#0E8074",
52
- // Success dark
53
- 800: "#115E59",
54
- 900: "#134E4A"
55
- },
56
- // Red scale (error)
22
+ // Red scale
57
23
  red: {
58
24
  50: "#FEF2F2",
59
25
  100: "#FEE2E2",
60
26
  200: "#FECACA",
61
27
  300: "#FCA5A5",
62
28
  400: "#DA6868",
63
- // Error light
64
29
  500: "#EF4444",
65
30
  600: "#D14343",
66
- // Error main
67
31
  700: "#922E2E",
68
- // Error dark
69
32
  800: "#991B1B",
70
33
  900: "#7F1D1D"
71
34
  },
72
- // Amber scale (warning)
73
- amber: {
74
- 50: "#FFFBEB",
75
- 100: "#FEF3C7",
76
- 200: "#FDE68A",
77
- 300: "#FCD34D",
78
- 400: "#FFBF4C",
79
- // Warning light
80
- 500: "#FFB020",
81
- // Warning main
82
- 600: "#B27B16",
83
- // Warning dark
84
- 700: "#B45309",
85
- 800: "#92400E",
86
- 900: "#78350F"
87
- },
88
- // Sky/Blue scale (info)
89
- sky: {
90
- 50: "#F0F9FF",
91
- 100: "#E0F2FE",
92
- 200: "#BAE6FD",
93
- 300: "#7DD3FC",
94
- 400: "#64B6F7",
95
- // Info light
96
- 500: "#2196F3",
97
- // Info main
98
- 600: "#0284C7",
99
- 700: "#0B79D0",
100
- // Info dark
101
- 800: "#075985",
102
- 900: "#0C4A6E"
35
+ // Vivid red scale
36
+ redVivid: {
37
+ 50: "#FFECEE",
38
+ 100: "#FFD6DB",
39
+ 200: "#FFB3BC",
40
+ 300: "#FF8593",
41
+ 400: "#FF6070",
42
+ 500: "#FF4757",
43
+ 600: "#E63548",
44
+ 700: "#C42539",
45
+ 800: "#9E1C2C",
46
+ 900: "#7A1520"
103
47
  },
104
48
  // Neutral/Gray scale
105
49
  neutral: {
@@ -115,18 +59,6 @@ var primitiveColors = {
115
59
  900: "#111827",
116
60
  950: "#030712"
117
61
  },
118
- // Orange scale (accent/brand color)
119
- accent: {
120
- 100: "#FFA860",
121
- 200: "#FF9630",
122
- 300: "#FF8500",
123
- 400: "#FF7900",
124
- 500: "#F56C00",
125
- 600: "#E06D10",
126
- 700: "#D0620C",
127
- 800: "#B75500",
128
- 900: "#A34900"
129
- },
130
62
  // Charcoal scale (dark backgrounds)
131
63
  charcoal: {
132
64
  0: "#6E6E6E",
@@ -141,23 +73,167 @@ var primitiveColors = {
141
73
  800: "#131313",
142
74
  900: "#101010"
143
75
  },
144
- // Steel scale (cool accent)
145
- steel: {
146
- 100: "#8AA4B8",
147
- 200: "#7894A8",
148
- 300: "#678498",
149
- 400: "#557488",
150
- 500: "#406D87",
151
- 600: "#39617A",
152
- 700: "#32556D",
153
- 800: "#243D53",
154
- 900: "#1D3146"
155
- },
156
76
  // Pure colors
157
77
  white: "#FFFFFF",
158
78
  black: "#000000",
159
79
  transparent: "transparent"
160
80
  };
81
+ var primitiveRamps = {
82
+ red: {
83
+ 50: "#FFF4F4",
84
+ 100: "#FFE3E5",
85
+ 200: "#FFC2C5",
86
+ 300: "#FF9A9D",
87
+ 400: "#F77175",
88
+ 500: "#E05254",
89
+ 600: "#D14343",
90
+ // pin
91
+ 700: "#A4221C",
92
+ 800: "#7E1002",
93
+ 900: "#5A0900",
94
+ 950: "#3D0400"
95
+ },
96
+ orange: {
97
+ 50: "#FFF5ED",
98
+ 100: "#FFE6D4",
99
+ 200: "#FFC7A2",
100
+ 300: "#FFA063",
101
+ 400: "#FF7900",
102
+ // pin
103
+ 500: "#DA5F00",
104
+ 600: "#B94A00",
105
+ 700: "#983804",
106
+ 800: "#6F290F",
107
+ 900: "#4E1C0C",
108
+ 950: "#331107"
109
+ },
110
+ amber: {
111
+ 50: "#FFF7DD",
112
+ 100: "#FFEAA9",
113
+ 200: "#FFD352",
114
+ 300: "#F9B415",
115
+ // pin
116
+ 400: "#E08C00",
117
+ 500: "#C27400",
118
+ 600: "#A45E00",
119
+ 700: "#814D14",
120
+ 800: "#5B3A1A",
121
+ 900: "#442503",
122
+ 950: "#301500"
123
+ },
124
+ green: {
125
+ 50: "#E3FFEE",
126
+ 100: "#B5FFD2",
127
+ 200: "#58F69E",
128
+ 300: "#2ED573",
129
+ // pin
130
+ 400: "#21C05D",
131
+ 500: "#22A444",
132
+ 600: "#298732",
133
+ 700: "#2B6B25",
134
+ 800: "#264D1C",
135
+ 900: "#1B3515",
136
+ 950: "#11220D"
137
+ },
138
+ cyan: {
139
+ 50: "#E6FBFF",
140
+ 100: "#C2F6FF",
141
+ 200: "#62EAFF",
142
+ 300: "#22D3EE",
143
+ // pin
144
+ 400: "#01B5D1",
145
+ 500: "#2697B7",
146
+ 600: "#307B9B",
147
+ 700: "#2A617F",
148
+ 800: "#22465F",
149
+ 900: "#0B3149",
150
+ 950: "#001F36"
151
+ },
152
+ blue: {
153
+ 50: "#EFF8FF",
154
+ 100: "#D9EFFF",
155
+ 200: "#ACDBFF",
156
+ 300: "#78C2FF",
157
+ 400: "#3CA8FF",
158
+ 500: "#2196F3",
159
+ // pin
160
+ 600: "#1072CB",
161
+ 700: "#135AA8",
162
+ 800: "#14407E",
163
+ 900: "#112C5A",
164
+ 950: "#091B3C"
165
+ },
166
+ magenta: {
167
+ 50: "#FFF3F9",
168
+ 100: "#FFE2F1",
169
+ 200: "#FFBDE2",
170
+ 300: "#FF8FD5",
171
+ 400: "#ED69C3",
172
+ 500: "#D548AF",
173
+ 600: "#BA2996",
174
+ 700: "#9C0D7A",
175
+ // pin
176
+ 800: "#77005A",
177
+ 900: "#56003F",
178
+ 950: "#3B0029"
179
+ }
180
+ };
181
+ var categoricalPalette = {
182
+ default: [
183
+ primitiveRamps.blue[500],
184
+ primitiveRamps.magenta[500],
185
+ primitiveRamps.red[500],
186
+ primitiveRamps.orange[400],
187
+ primitiveRamps.green[300],
188
+ primitiveRamps.cyan[300],
189
+ primitiveRamps.amber[600]
190
+ // extended (7th) — pair with a legend
191
+ ],
192
+ dark: [
193
+ primitiveRamps.blue[600],
194
+ primitiveRamps.magenta[600],
195
+ primitiveRamps.red[500],
196
+ primitiveRamps.orange[600],
197
+ primitiveRamps.green[800],
198
+ primitiveRamps.cyan[800],
199
+ primitiveRamps.amber[500]
200
+ // extended (7th) — pair with a legend
201
+ ]
202
+ };
203
+ var CATEGORICAL_CVD_SAFE_MAX = 6;
204
+ function getCategoricalColor(index, variant = "default") {
205
+ const palette = categoricalPalette[variant];
206
+ index = Math.max(0, Math.floor(index));
207
+ return palette[index % palette.length];
208
+ }
209
+ var divergingScale = [
210
+ primitiveRamps.blue[500],
211
+ // under
212
+ primitiveRamps.cyan[300],
213
+ // maintenance
214
+ primitiveRamps.green[200],
215
+ // optimal (light center)
216
+ primitiveRamps.amber[300],
217
+ // approaching
218
+ primitiveRamps.red[600]
219
+ // over
220
+ ];
221
+ var sequentialEffort = [
222
+ primitiveRamps.green[300],
223
+ primitiveRamps.amber[200],
224
+ primitiveRamps.amber[300],
225
+ primitiveRamps.orange[400],
226
+ primitiveRamps.red[600],
227
+ primitiveRamps.red[700]
228
+ ];
229
+ function bestTextColor(hex) {
230
+ const [r, g, b] = [0, 2, 4].map((i) => {
231
+ const c = parseInt(hex.replace("#", "").slice(i, i + 2), 16) / 255;
232
+ return c >= 0.04045 ? ((c + 0.055) / 1.055) ** 2.4 : c / 12.92;
233
+ });
234
+ const l = 0.2126 * r + 0.7152 * g + 0.0722 * b;
235
+ return (l + 0.05) / 0.05 >= 1.05 / (l + 0.05) ? "#000000" : "#FFFFFF";
236
+ }
161
237
  var discreteRainbow = [
162
238
  "#E8ECFB",
163
239
  "#D9CCE3",
@@ -367,56 +443,46 @@ var primitiveZIndex = {
367
443
  // src/theme/tokens/semantic.ts
368
444
  var semanticColorsLight = {
369
445
  // Brand colors (brand-*)
370
- "brand-primary": primitiveColors.accent[400],
371
- // #FF7900
372
- "brand-primary-light": primitiveColors.accent[200],
373
- // #FF9630
374
- "brand-primary-dark": primitiveColors.accent[700],
375
- // #D0620C
446
+ "brand-primary": primitiveRamps.orange[400],
447
+ "brand-primary-light": primitiveRamps.orange[300],
448
+ "brand-primary-dark": primitiveRamps.orange[500],
376
449
  "brand-primary-subtle": "rgba(255, 121, 0, 0.08)",
377
- "brand-primary-hover": primitiveColors.accent[500],
378
- "brand-primary-active": primitiveColors.accent[600],
379
- "brand-secondary": primitiveColors.steel[500],
380
- // #406D87
381
- "brand-secondary-light": primitiveColors.steel[300],
382
- // #678498
383
- "brand-secondary-dark": primitiveColors.steel[700],
384
- // #32556D
385
- "brand-secondary-subtle": "rgba(64, 109, 135, 0.08)",
386
- "brand-secondary-hover": primitiveColors.steel[600],
387
- "brand-secondary-active": primitiveColors.steel[700],
450
+ "brand-primary-hover": primitiveRamps.orange[500],
451
+ "brand-primary-active": primitiveRamps.orange[600],
452
+ "brand-secondary": primitiveRamps.cyan[600],
453
+ "brand-secondary-light": primitiveRamps.cyan[500],
454
+ "brand-secondary-dark": primitiveRamps.cyan[700],
455
+ "brand-secondary-subtle": "rgba(48, 123, 155, 0.08)",
456
+ "brand-secondary-hover": primitiveRamps.cyan[700],
457
+ "brand-secondary-active": primitiveRamps.cyan[800],
388
458
  // Text on brand backgrounds (on-*)
389
459
  "on-brand-primary": primitiveColors.white,
390
460
  "on-brand-secondary": primitiveColors.white,
391
461
  // Status colors (status-*)
392
- "status-success": primitiveColors.teal[500],
393
- // #14B8A6
394
- "status-success-light": primitiveColors.teal[400],
395
- // #43C6B7
396
- "status-success-dark": primitiveColors.teal[700],
397
- // #0E8074
398
- "status-success-subtle": primitiveColors.teal[50],
399
- "status-error": primitiveColors.red[600],
400
- // #D14343
401
- "status-error-light": primitiveColors.red[400],
402
- // #DA6868
403
- "status-error-dark": primitiveColors.red[700],
404
- // #922E2E
405
- "status-error-subtle": primitiveColors.red[50],
406
- "status-warning": primitiveColors.amber[500],
407
- // #FFB020
408
- "status-warning-light": primitiveColors.amber[400],
409
- // #FFBF4C
410
- "status-warning-dark": primitiveColors.amber[600],
411
- // #B27B16
412
- "status-warning-subtle": primitiveColors.amber[50],
413
- "status-info": primitiveColors.sky[500],
414
- // #2196F3
415
- "status-info-light": primitiveColors.sky[400],
416
- // #64B6F7
417
- "status-info-dark": primitiveColors.sky[700],
418
- // #0B79D0
419
- "status-info-subtle": primitiveColors.sky[50],
462
+ "status-success": primitiveRamps.green[300],
463
+ "status-success-light": primitiveRamps.green[200],
464
+ "status-success-dark": primitiveRamps.green[600],
465
+ "status-success-subtle": primitiveRamps.green[50],
466
+ // Live-session accent — its OWN role, decoupled from success so the two can diverge
467
+ "status-live": primitiveRamps.green[300],
468
+ "status-live-muted": primitiveRamps.green[500],
469
+ "status-error": primitiveRamps.red[600],
470
+ "status-error-light": primitiveRamps.red[500],
471
+ "status-error-dark": primitiveRamps.red[700],
472
+ "status-error-subtle": primitiveRamps.red[50],
473
+ "status-error-vivid": primitiveColors.redVivid[500],
474
+ // vivid alert red
475
+ "status-error-vivid-light": primitiveColors.redVivid[400],
476
+ "status-error-vivid-dark": primitiveColors.redVivid[700],
477
+ "status-error-vivid-subtle": "rgba(255, 71, 87, 0.12)",
478
+ "status-warning": primitiveRamps.amber[300],
479
+ "status-warning-light": primitiveRamps.amber[200],
480
+ "status-warning-dark": primitiveRamps.amber[500],
481
+ "status-warning-subtle": primitiveRamps.amber[50],
482
+ "status-info": primitiveRamps.blue[500],
483
+ "status-info-light": primitiveRamps.blue[300],
484
+ "status-info-dark": primitiveRamps.blue[600],
485
+ "status-info-subtle": primitiveRamps.blue[50],
420
486
  // Text on status backgrounds (on-status-*)
421
487
  "on-status-success": primitiveColors.white,
422
488
  "on-status-error": primitiveColors.white,
@@ -443,25 +509,25 @@ var semanticColorsLight = {
443
509
  // Data visualization colors (data-*)
444
510
  // First 10 colors from discrete rainbow optimized for charts
445
511
  "data-1": discreteRainbow[9],
446
- // #1965B0 - Blue
512
+ // Blue
447
513
  "data-2": discreteRainbow[14],
448
- // #4EB265 - Green
514
+ // Green
449
515
  "data-3": discreteRainbow[17],
450
- // #F7F056 - Yellow
516
+ // Yellow
451
517
  "data-4": discreteRainbow[25],
452
- // #DC050C - Red
518
+ // Red
453
519
  "data-5": discreteRainbow[8],
454
- // #882E72 - Purple
520
+ // Purple
455
521
  "data-6": discreteRainbow[20],
456
- // #F4A736 - Orange
522
+ // Orange
457
523
  "data-7": discreteRainbow[13],
458
- // #7BAFDE - Light Blue
524
+ // Light Blue
459
525
  "data-8": discreteRainbow[15],
460
- // #90C987 - Light Green
526
+ // Light Green
461
527
  "data-9": discreteRainbow[3],
462
- // #CAACCB - Lavender
528
+ // Lavender
463
529
  "data-10": discreteRainbow[22],
464
- // #EE8026 - Dark Orange
530
+ // Dark Orange
465
531
  // Text colors (text-*)
466
532
  "text-primary": "#121828",
467
533
  "text-secondary": "#65748B",
@@ -473,9 +539,9 @@ var semanticColorsLight = {
473
539
  // Surface colors (surface-*) - for elevated containers
474
540
  "surface-base": primitiveColors.white,
475
541
  "surface-elevated": primitiveColors.neutral[50],
476
- // #FAFAFA - slightly off-white for elevated cards
542
+ // slightly off-white for elevated cards
477
543
  "surface-raised": primitiveColors.neutral[100],
478
- // #F3F4F6 - light gray for raised cards
544
+ // light gray for raised cards
479
545
  "surface-overlay": primitiveColors.white,
480
546
  "surface-input": primitiveColors.neutral[50],
481
547
  // Input field background (filled variant)
@@ -487,6 +553,8 @@ var semanticColorsLight = {
487
553
  "border-default": "#E8E9EB",
488
554
  "border-subtle": primitiveColors.neutral[100],
489
555
  "border-strong": primitiveColors.neutral[300],
556
+ "border-prominent": primitiveColors.neutral[400],
557
+ // high-visibility divider
490
558
  "border-focus": primitiveColors.blue[600],
491
559
  "border-input": primitiveColors.neutral[300],
492
560
  // Input field border
@@ -511,37 +579,44 @@ var semanticColorsLight = {
511
579
  };
512
580
  var semanticColorsDark = {
513
581
  // Brand colors stay the same in dark mode
514
- "brand-primary": primitiveColors.accent[400],
515
- "brand-primary-light": primitiveColors.accent[200],
516
- "brand-primary-dark": primitiveColors.accent[700],
582
+ "brand-primary": primitiveRamps.orange[400],
583
+ "brand-primary-light": primitiveRamps.orange[300],
584
+ "brand-primary-dark": primitiveRamps.orange[500],
517
585
  "brand-primary-subtle": "rgba(255, 121, 0, 0.12)",
518
- "brand-primary-hover": primitiveColors.accent[300],
519
- "brand-primary-active": primitiveColors.accent[200],
520
- "brand-secondary": primitiveColors.steel[500],
521
- "brand-secondary-light": primitiveColors.steel[300],
522
- "brand-secondary-dark": primitiveColors.steel[700],
523
- "brand-secondary-subtle": "rgba(64, 109, 135, 0.12)",
524
- "brand-secondary-hover": primitiveColors.steel[400],
525
- "brand-secondary-active": primitiveColors.steel[300],
586
+ "brand-primary-hover": primitiveRamps.orange[300],
587
+ "brand-primary-active": primitiveRamps.orange[200],
588
+ "brand-secondary": primitiveRamps.cyan[600],
589
+ "brand-secondary-light": primitiveRamps.cyan[500],
590
+ "brand-secondary-dark": primitiveRamps.cyan[700],
591
+ "brand-secondary-subtle": "rgba(48, 123, 155, 0.12)",
592
+ "brand-secondary-hover": primitiveRamps.cyan[500],
593
+ "brand-secondary-active": primitiveRamps.cyan[400],
526
594
  // Text on brand backgrounds
527
595
  "on-brand-primary": primitiveColors.white,
528
596
  "on-brand-secondary": primitiveColors.white,
529
597
  // Status colors
530
- "status-success": primitiveColors.teal[500],
531
- "status-success-light": primitiveColors.teal[400],
532
- "status-success-dark": primitiveColors.teal[700],
533
- "status-success-subtle": "rgba(20, 184, 166, 0.12)",
534
- "status-error": primitiveColors.red[600],
535
- "status-error-light": primitiveColors.red[400],
536
- "status-error-dark": primitiveColors.red[700],
598
+ "status-success": primitiveRamps.green[300],
599
+ "status-success-light": primitiveRamps.green[200],
600
+ "status-success-dark": primitiveRamps.green[600],
601
+ "status-success-subtle": "rgba(46, 213, 115, 0.12)",
602
+ // Live-session accent — its OWN role, decoupled from success so the two can diverge
603
+ "status-live": primitiveRamps.green[300],
604
+ "status-live-muted": primitiveRamps.green[500],
605
+ "status-error": primitiveRamps.red[600],
606
+ "status-error-light": primitiveRamps.red[500],
607
+ "status-error-dark": primitiveRamps.red[700],
537
608
  "status-error-subtle": "rgba(209, 67, 67, 0.12)",
538
- "status-warning": primitiveColors.amber[500],
539
- "status-warning-light": primitiveColors.amber[400],
540
- "status-warning-dark": primitiveColors.amber[600],
541
- "status-warning-subtle": "rgba(255, 176, 32, 0.12)",
542
- "status-info": primitiveColors.sky[500],
543
- "status-info-light": primitiveColors.sky[400],
544
- "status-info-dark": primitiveColors.sky[700],
609
+ "status-error-vivid": primitiveColors.redVivid[500],
610
+ "status-error-vivid-light": primitiveColors.redVivid[400],
611
+ "status-error-vivid-dark": primitiveColors.redVivid[700],
612
+ "status-error-vivid-subtle": "rgba(255, 71, 87, 0.12)",
613
+ "status-warning": primitiveRamps.amber[300],
614
+ "status-warning-light": primitiveRamps.amber[200],
615
+ "status-warning-dark": primitiveRamps.amber[500],
616
+ "status-warning-subtle": "rgba(249, 180, 21, 0.12)",
617
+ "status-info": primitiveRamps.blue[500],
618
+ "status-info-light": primitiveRamps.blue[300],
619
+ "status-info-dark": primitiveRamps.blue[600],
545
620
  "status-info-subtle": "rgba(33, 150, 243, 0.12)",
546
621
  // Text on status backgrounds
547
622
  "on-status-success": primitiveColors.white,
@@ -583,29 +658,31 @@ var semanticColorsDark = {
583
658
  "text-link-hover": primitiveColors.blue[400],
584
659
  // Surface colors - dark backgrounds
585
660
  "surface-base": primitiveColors.charcoal[700],
586
- // #161616 - main surface
661
+ // main surface
587
662
  "surface-elevated": primitiveColors.charcoal[600],
588
- // #191919 - elevated surface
663
+ // elevated surface
589
664
  "surface-raised": primitiveColors.charcoal[500],
590
- // #1C1C1C - raised surface
665
+ // raised surface
591
666
  "surface-overlay": primitiveColors.charcoal[600],
592
- // #191919 - overlay surface
667
+ // overlay surface
593
668
  "surface-input": primitiveColors.charcoal[600],
594
- // #191919 - input surface
669
+ // input surface
595
670
  // Background colors
596
671
  "background-base": primitiveColors.charcoal[900],
597
- // #101010 - darkest charcoal
672
+ // darkest charcoal
598
673
  "background-default": primitiveColors.charcoal[700],
599
- // #161616 - main background
674
+ // main background
600
675
  "background-subtle": primitiveColors.charcoal[500],
601
- // #1C1C1C - subtle background
676
+ // subtle background
602
677
  // Border colors
603
678
  "border-default": primitiveColors.charcoal[400],
604
- // #1F1F1F - default border
679
+ // default border
605
680
  "border-subtle": primitiveColors.charcoal[500],
606
- // #1C1C1C - subtle border
681
+ // subtle border
607
682
  "border-strong": primitiveColors.charcoal[300],
608
- // #2C2C2C - strong border
683
+ // strong border
684
+ "border-prominent": primitiveColors.charcoal[200],
685
+ // high-visibility divider
609
686
  "border-focus": "#828DF8",
610
687
  "border-input": primitiveColors.neutral[600],
611
688
  "border-input-hover": primitiveColors.neutral[500],
@@ -620,7 +697,7 @@ var semanticColorsDark = {
620
697
  "interactive-disabled-text": "rgba(255, 255, 255, 0.26)",
621
698
  // Divider
622
699
  "divider": primitiveColors.charcoal[400],
623
- // #1F1F1F - divider color
700
+ // divider color
624
701
  // Avatar default
625
702
  "avatar-background": primitiveColors.neutral[600],
626
703
  "avatar-text": primitiveColors.white
@@ -734,10 +811,11 @@ function getSemanticColors(mode) {
734
811
  var themeIndependentCSSVars = {
735
812
  // RGB decomposed values for glow shadows
736
813
  "--color-brand-primary-rgb": "255, 121, 0",
737
- "--color-brand-secondary-rgb": "64, 109, 135",
738
- "--color-status-success-rgb": "20, 184, 166",
814
+ "--color-brand-secondary-rgb": "48, 123, 155",
815
+ "--color-status-success-rgb": "46, 213, 115",
739
816
  "--color-status-error-rgb": "209, 67, 67",
740
- "--color-status-warning-rgb": "255, 176, 32",
817
+ "--color-status-error-vivid-rgb": "255, 71, 87",
818
+ "--color-status-warning-rgb": "249, 180, 21",
741
819
  "--color-status-info-rgb": "33, 150, 243",
742
820
  "--color-background-base-rgb": "16, 16, 16",
743
821
  // Font families
@@ -766,12 +844,18 @@ var lightThemeCSSVars = {
766
844
  "--color-on-brand-secondary": semanticColorsLight["on-brand-secondary"],
767
845
  "--color-status-success": semanticColorsLight["status-success"],
768
846
  "--color-status-success-subtle": semanticColorsLight["status-success-subtle"],
847
+ "--color-status-live": semanticColorsLight["status-live"],
848
+ "--color-status-live-muted": semanticColorsLight["status-live-muted"],
769
849
  "--color-status-error": semanticColorsLight["status-error"],
770
850
  "--color-status-error-subtle": semanticColorsLight["status-error-subtle"],
771
851
  "--color-status-warning": semanticColorsLight["status-warning"],
772
852
  "--color-status-warning-subtle": semanticColorsLight["status-warning-subtle"],
773
853
  "--color-status-info": semanticColorsLight["status-info"],
774
854
  "--color-status-info-subtle": semanticColorsLight["status-info-subtle"],
855
+ "--color-status-error-vivid": semanticColorsLight["status-error-vivid"],
856
+ "--color-status-error-vivid-light": semanticColorsLight["status-error-vivid-light"],
857
+ "--color-status-error-vivid-dark": semanticColorsLight["status-error-vivid-dark"],
858
+ "--color-status-error-vivid-subtle": semanticColorsLight["status-error-vivid-subtle"],
775
859
  "--color-text-primary": semanticColorsLight["text-primary"],
776
860
  "--color-text-secondary": semanticColorsLight["text-secondary"],
777
861
  "--color-text-tertiary": semanticColorsLight["text-tertiary"],
@@ -787,6 +871,7 @@ var lightThemeCSSVars = {
787
871
  "--color-border-default": semanticColorsLight["border-default"],
788
872
  "--color-border-subtle": semanticColorsLight["border-subtle"],
789
873
  "--color-border-strong": semanticColorsLight["border-strong"],
874
+ "--color-border-prominent": semanticColorsLight["border-prominent"],
790
875
  "--color-border-focus": semanticColorsLight["border-focus"],
791
876
  "--color-interactive-hover": semanticColorsLight["interactive-hover"],
792
877
  "--color-interactive-focus": semanticColorsLight["interactive-focus"],
@@ -857,12 +942,18 @@ var darkThemeCSSVars = {
857
942
  "--color-on-brand-secondary": semanticColorsDark["on-brand-secondary"],
858
943
  "--color-status-success": semanticColorsDark["status-success"],
859
944
  "--color-status-success-subtle": semanticColorsDark["status-success-subtle"],
945
+ "--color-status-live": semanticColorsDark["status-live"],
946
+ "--color-status-live-muted": semanticColorsDark["status-live-muted"],
860
947
  "--color-status-error": semanticColorsDark["status-error"],
861
948
  "--color-status-error-subtle": semanticColorsDark["status-error-subtle"],
862
949
  "--color-status-warning": semanticColorsDark["status-warning"],
863
950
  "--color-status-warning-subtle": semanticColorsDark["status-warning-subtle"],
864
951
  "--color-status-info": semanticColorsDark["status-info"],
865
952
  "--color-status-info-subtle": semanticColorsDark["status-info-subtle"],
953
+ "--color-status-error-vivid": semanticColorsDark["status-error-vivid"],
954
+ "--color-status-error-vivid-light": semanticColorsDark["status-error-vivid-light"],
955
+ "--color-status-error-vivid-dark": semanticColorsDark["status-error-vivid-dark"],
956
+ "--color-status-error-vivid-subtle": semanticColorsDark["status-error-vivid-subtle"],
866
957
  "--color-text-primary": semanticColorsDark["text-primary"],
867
958
  "--color-text-secondary": semanticColorsDark["text-secondary"],
868
959
  "--color-text-tertiary": semanticColorsDark["text-tertiary"],
@@ -878,6 +969,7 @@ var darkThemeCSSVars = {
878
969
  "--color-border-default": semanticColorsDark["border-default"],
879
970
  "--color-border-subtle": semanticColorsDark["border-subtle"],
880
971
  "--color-border-strong": semanticColorsDark["border-strong"],
972
+ "--color-border-prominent": semanticColorsDark["border-prominent"],
881
973
  "--color-border-focus": semanticColorsDark["border-focus"],
882
974
  "--color-interactive-hover": semanticColorsDark["interactive-hover"],
883
975
  "--color-interactive-focus": semanticColorsDark["interactive-focus"],
@@ -1686,6 +1778,17 @@ function resolveColor(token, mode = "dark") {
1686
1778
  return reactNative.Platform.OS === "web" ? `var(--color-${token})` : getSemanticColors(mode)[token];
1687
1779
  }
1688
1780
 
1781
+ // src/theme/gradients.ts
1782
+ function linearGradient(from, to, angle = 180, mode = "dark") {
1783
+ return {
1784
+ backgroundImage: `linear-gradient(${angle}deg, ${resolveColor(from, mode)}, ${resolveColor(to, mode)})`
1785
+ };
1786
+ }
1787
+ var surfaceGradient = {
1788
+ /** Chrome bands (top bar, headers): elevated → base, a subtle dark wash. */
1789
+ chrome: (mode = "dark") => linearGradient("surface-elevated", "background-base", 180, mode)
1790
+ };
1791
+
1689
1792
  // src/theme/presets/apply.ts
1690
1793
  function colorKeyToVar(key) {
1691
1794
  return `--color-${key}`;
@@ -1879,10 +1982,13 @@ function ThemeProvider({
1879
1982
  return /* @__PURE__ */ jsx(reactNative.View, { style: [MODE_VARS[mode], { flex: 1 }, style], ...props, children });
1880
1983
  }
1881
1984
 
1985
+ exports.CATEGORICAL_CVD_SAFE_MAX = CATEGORICAL_CVD_SAFE_MAX;
1882
1986
  exports.ThemeProvider = ThemeProvider;
1883
1987
  exports.applyThemePreset = applyThemePreset;
1884
1988
  exports.audiobookPreset = audiobookPreset;
1989
+ exports.bestTextColor = bestTextColor;
1885
1990
  exports.buttonSizes = buttonSizes;
1991
+ exports.categoricalPalette = categoricalPalette;
1886
1992
  exports.componentElevationRanges = componentElevationRanges;
1887
1993
  exports.createFlatShadow = createFlatShadow;
1888
1994
  exports.createPressedHoverShadow = createPressedHoverShadow;
@@ -1893,8 +1999,10 @@ exports.darkThemeCSSVars = darkThemeCSSVars;
1893
1999
  exports.darken = darken;
1894
2000
  exports.defaultPreset = defaultPreset;
1895
2001
  exports.discreteRainbow = discreteRainbow;
2002
+ exports.divergingScale = divergingScale;
1896
2003
  exports.elevationSystem = elevationSystem;
1897
2004
  exports.getBaseSurfaceColor = getBaseSurfaceColor;
2005
+ exports.getCategoricalColor = getCategoricalColor;
1898
2006
  exports.getDiscreteRainbowColor = getDiscreteRainbowColor;
1899
2007
  exports.getElevationConfig = getElevationConfig;
1900
2008
  exports.getElevationShadow = getElevationShadow;
@@ -1911,10 +2019,12 @@ exports.isCssPropertyManifest = isCssPropertyManifest;
1911
2019
  exports.isDark = isDark;
1912
2020
  exports.lightThemeCSSVars = lightThemeCSSVars;
1913
2021
  exports.lighten = lighten;
2022
+ exports.linearGradient = linearGradient;
1914
2023
  exports.neumorphicShadows = neumorphicShadows;
1915
2024
  exports.primitiveBorderRadius = primitiveBorderRadius;
1916
2025
  exports.primitiveBreakpoints = primitiveBreakpoints;
1917
2026
  exports.primitiveColors = primitiveColors;
2027
+ exports.primitiveRamps = primitiveRamps;
1918
2028
  exports.primitiveShadows = primitiveShadows;
1919
2029
  exports.primitiveSpacing = primitiveSpacing;
1920
2030
  exports.primitiveTypography = primitiveTypography;
@@ -1925,7 +2035,9 @@ exports.rgbToHsv = rgbToHsv;
1925
2035
  exports.semanticColorsDark = semanticColorsDark;
1926
2036
  exports.semanticColorsLight = semanticColorsLight;
1927
2037
  exports.semanticTypography = semanticTypography;
2038
+ exports.sequentialEffort = sequentialEffort;
1928
2039
  exports.shadowColors = shadowColors;
2040
+ exports.surfaceGradient = surfaceGradient;
1929
2041
  exports.validateCssPropertyManifest = validateCssPropertyManifest;
1930
2042
  //# sourceMappingURL=index.js.map
1931
2043
  //# sourceMappingURL=index.js.map