@titan-design/react-ui 0.2.6 → 0.3.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 (191) hide show
  1. package/dist/bodymap-BhG55xHM.d.mts +318 -0
  2. package/dist/bodymap-BhG55xHM.d.ts +318 -0
  3. package/dist/bodymap.d.mts +3 -0
  4. package/dist/bodymap.d.ts +3 -0
  5. package/dist/bodymap.js +2670 -0
  6. package/dist/bodymap.js.map +1 -0
  7. package/dist/bodymap.mjs +1101 -0
  8. package/dist/bodymap.mjs.map +1 -0
  9. package/dist/{chunk-UXVRPOME.mjs → chunk-7XPB4NAO.mjs} +125 -785
  10. package/dist/chunk-7XPB4NAO.mjs.map +1 -0
  11. package/dist/chunk-P7TSQUN6.mjs +846 -0
  12. package/dist/chunk-P7TSQUN6.mjs.map +1 -0
  13. package/dist/chunk-TOD2WQBG.mjs +1048 -0
  14. package/dist/chunk-TOD2WQBG.mjs.map +1 -0
  15. package/dist/index.d.mts +1131 -4
  16. package/dist/index.d.ts +1131 -4
  17. package/dist/index.js +6396 -225
  18. package/dist/index.js.map +1 -1
  19. package/dist/index.mjs +5572 -641
  20. package/dist/index.mjs.map +1 -1
  21. package/dist/theme/index.d.mts +317 -1
  22. package/dist/theme/index.d.ts +317 -1
  23. package/dist/theme/index.js +185 -2
  24. package/dist/theme/index.js.map +1 -1
  25. package/dist/theme/index.mjs +2 -1
  26. package/dist/theme/tokens-css.d.mts +20 -0
  27. package/dist/theme/tokens-css.d.ts +20 -0
  28. package/dist/theme/tokens-css.js +598 -0
  29. package/dist/theme/tokens-css.js.map +1 -0
  30. package/dist/theme/tokens-css.mjs +24 -0
  31. package/dist/theme/tokens-css.mjs.map +1 -0
  32. package/package.json +25 -5
  33. package/src/bodymap.ts +37 -0
  34. package/src/components/custom/DateTime/DateTime.stories.tsx +1 -1
  35. package/src/components/custom/Gauge/Gauge.stories.tsx +45 -0
  36. package/src/components/custom/Gauge/Gauge.test.tsx +71 -0
  37. package/src/components/custom/Gauge/Gauge.tsx +167 -0
  38. package/src/components/custom/Gauge/index.ts +2 -0
  39. package/src/components/custom/Scatter/Scatter.stories.tsx +85 -0
  40. package/src/components/custom/Scatter/Scatter.test.tsx +96 -0
  41. package/src/components/custom/Scatter/Scatter.tsx +260 -0
  42. package/src/components/custom/Scatter/index.ts +2 -0
  43. package/src/components/custom/Sidebar/Sidebar.tsx +1 -1
  44. package/src/components/custom/Table/Table.test.tsx +27 -0
  45. package/src/components/custom/Table/Table.tsx +33 -17
  46. package/src/components/custom/Treemap/Treemap.stories.tsx +60 -0
  47. package/src/components/custom/Treemap/Treemap.test.tsx +67 -0
  48. package/src/components/custom/Treemap/Treemap.tsx +192 -0
  49. package/src/components/custom/Treemap/index.ts +2 -0
  50. package/src/components/custom/Workout/ActiveWorkoutPage.stories.tsx +118 -0
  51. package/src/components/custom/Workout/ActiveWorkoutPage.test.tsx +171 -0
  52. package/src/components/custom/Workout/ActiveWorkoutPage.tsx +447 -0
  53. package/src/components/custom/Workout/BaseBadge.stories.tsx +75 -0
  54. package/src/components/custom/Workout/BaseBadge.test.tsx +102 -0
  55. package/src/components/custom/Workout/BaseBadge.tsx +113 -0
  56. package/src/components/custom/Workout/BodyMap.stories.tsx +121 -0
  57. package/src/components/custom/Workout/BodyMap.test.tsx +124 -0
  58. package/src/components/custom/Workout/BodyMap.tsx +347 -0
  59. package/src/components/custom/Workout/BodyMapDetailPanel.stories.tsx +171 -0
  60. package/src/components/custom/Workout/BodyMapDetailPanel.test.tsx +225 -0
  61. package/src/components/custom/Workout/BodyMapDetailPanel.tsx +477 -0
  62. package/src/components/custom/Workout/CapacityBandChart.stories.tsx +125 -0
  63. package/src/components/custom/Workout/CapacityBandChart.test.tsx +193 -0
  64. package/src/components/custom/Workout/CapacityBandChart.tsx +493 -0
  65. package/src/components/custom/Workout/DeviationBar.stories.tsx +58 -0
  66. package/src/components/custom/Workout/DeviationBar.test.tsx +86 -0
  67. package/src/components/custom/Workout/DeviationBar.tsx +78 -0
  68. package/src/components/custom/Workout/ExerciseCard.stories.tsx +186 -0
  69. package/src/components/custom/Workout/ExerciseCard.test.tsx +343 -0
  70. package/src/components/custom/Workout/ExerciseCard.tsx +442 -0
  71. package/src/components/custom/Workout/ExerciseDetailPage.stories.tsx +225 -0
  72. package/src/components/custom/Workout/ExerciseDetailPage.test.tsx +128 -0
  73. package/src/components/custom/Workout/ExerciseDetailPage.tsx +630 -0
  74. package/src/components/custom/Workout/InputBar.stories.tsx +75 -0
  75. package/src/components/custom/Workout/InputBar.test.tsx +116 -0
  76. package/src/components/custom/Workout/InputBar.tsx +162 -0
  77. package/src/components/custom/Workout/IntensityBar.stories.tsx +60 -0
  78. package/src/components/custom/Workout/IntensityBar.test.tsx +113 -0
  79. package/src/components/custom/Workout/IntensityBar.tsx +166 -0
  80. package/src/components/custom/Workout/MesoCard.stories.tsx +152 -0
  81. package/src/components/custom/Workout/MesoCard.test.tsx +170 -0
  82. package/src/components/custom/Workout/MesoCard.tsx +237 -0
  83. package/src/components/custom/Workout/MesoProgressBar.stories.tsx +85 -0
  84. package/src/components/custom/Workout/MesoProgressBar.test.tsx +153 -0
  85. package/src/components/custom/Workout/MesoProgressBar.tsx +165 -0
  86. package/src/components/custom/Workout/MesoStatusCard.stories.tsx +126 -0
  87. package/src/components/custom/Workout/MesoStatusCard.test.tsx +209 -0
  88. package/src/components/custom/Workout/MesoStatusCard.tsx +456 -0
  89. package/src/components/custom/Workout/MuscleGroupChip.stories.tsx +118 -0
  90. package/src/components/custom/Workout/MuscleGroupChip.test.tsx +91 -0
  91. package/src/components/custom/Workout/MuscleGroupChip.tsx +92 -0
  92. package/src/components/custom/Workout/PlaceholderStrip.stories.tsx +94 -0
  93. package/src/components/custom/Workout/PlaceholderStrip.test.tsx +83 -0
  94. package/src/components/custom/Workout/PlaceholderStrip.tsx +90 -0
  95. package/src/components/custom/Workout/PrBadge.stories.tsx +105 -0
  96. package/src/components/custom/Workout/PrBadge.test.tsx +111 -0
  97. package/src/components/custom/Workout/PrBadge.tsx +103 -0
  98. package/src/components/custom/Workout/PrHistoryModal.stories.tsx +116 -0
  99. package/src/components/custom/Workout/PrHistoryModal.test.tsx +161 -0
  100. package/src/components/custom/Workout/PrHistoryModal.tsx +244 -0
  101. package/src/components/custom/Workout/ProgramPlanningPage.stories.tsx +257 -0
  102. package/src/components/custom/Workout/ProgramPlanningPage.test.tsx +142 -0
  103. package/src/components/custom/Workout/ProgramPlanningPage.tsx +422 -0
  104. package/src/components/custom/Workout/ReadinessCheck.stories.tsx +126 -0
  105. package/src/components/custom/Workout/ReadinessCheck.test.tsx +181 -0
  106. package/src/components/custom/Workout/ReadinessCheck.tsx +265 -0
  107. package/src/components/custom/Workout/RestTimer.test.tsx +10 -0
  108. package/src/components/custom/Workout/RestTimer.tsx +15 -11
  109. package/src/components/custom/Workout/SetRow.stories.tsx +165 -0
  110. package/src/components/custom/Workout/SetRow.test.tsx +222 -0
  111. package/src/components/custom/Workout/SetRow.tsx +247 -0
  112. package/src/components/custom/Workout/Sparkline.stories.tsx +125 -0
  113. package/src/components/custom/Workout/Sparkline.test.tsx +113 -0
  114. package/src/components/custom/Workout/Sparkline.tsx +188 -0
  115. package/src/components/custom/Workout/StatusDot.stories.tsx +150 -0
  116. package/src/components/custom/Workout/StatusDot.test.tsx +165 -0
  117. package/src/components/custom/Workout/StatusDot.tsx +160 -0
  118. package/src/components/custom/Workout/StrengthTrendChart.stories.tsx +130 -0
  119. package/src/components/custom/Workout/StrengthTrendChart.test.tsx +217 -0
  120. package/src/components/custom/Workout/StrengthTrendChart.tsx +628 -0
  121. package/src/components/custom/Workout/SupersetWrapper.tsx +1 -2
  122. package/src/components/custom/Workout/TempoDisplay.stories.tsx +66 -0
  123. package/src/components/custom/Workout/TempoDisplay.test.tsx +90 -0
  124. package/src/components/custom/Workout/TempoDisplay.tsx +209 -0
  125. package/src/components/custom/Workout/TrainingStatusPage.stories.tsx +212 -0
  126. package/src/components/custom/Workout/TrainingStatusPage.test.tsx +131 -0
  127. package/src/components/custom/Workout/TrainingStatusPage.tsx +321 -0
  128. package/src/components/custom/Workout/VelocityStrip.stories.tsx +125 -0
  129. package/src/components/custom/Workout/VelocityStrip.test.tsx +244 -0
  130. package/src/components/custom/Workout/VelocityStrip.tsx +288 -0
  131. package/src/components/custom/Workout/WeekRow.stories.tsx +121 -0
  132. package/src/components/custom/Workout/WeekRow.test.tsx +117 -0
  133. package/src/components/custom/Workout/WeekRow.tsx +140 -0
  134. package/src/components/custom/Workout/WeightBadge.stories.tsx +87 -0
  135. package/src/components/custom/Workout/WeightBadge.test.tsx +164 -0
  136. package/src/components/custom/Workout/WeightBadge.tsx +113 -0
  137. package/src/components/custom/Workout/WorkoutCard.stories.tsx +135 -0
  138. package/src/components/custom/Workout/WorkoutCard.test.tsx +172 -0
  139. package/src/components/custom/Workout/WorkoutCard.tsx +228 -0
  140. package/src/components/custom/Workout/WorkoutPill.stories.tsx +63 -0
  141. package/src/components/custom/Workout/WorkoutPill.test.tsx +153 -0
  142. package/src/components/custom/Workout/WorkoutPill.tsx +177 -0
  143. package/src/components/custom/Workout/index.ts +152 -0
  144. package/src/components/custom/Workout/muscleTaxonomy.ts +252 -0
  145. package/src/components/custom/index.ts +3 -0
  146. package/src/components/custom/stepper/Stepper.stories.tsx +1 -1
  147. package/src/components/custom/stepper/Stepper.tsx +2 -2
  148. package/src/components/ui/autocomplete/Autocomplete.stories.tsx +1 -1
  149. package/src/components/ui/autocomplete/Autocomplete.tsx +1 -1
  150. package/src/components/ui/card/Card.tsx +1 -1
  151. package/src/components/ui/checkbox/Checkbox.tsx +1 -1
  152. package/src/components/ui/collapse/Collapse.tsx +1 -1
  153. package/src/components/ui/data-row/DataRow.stories.tsx +1 -1
  154. package/src/components/ui/drawer/Drawer.tsx +3 -3
  155. package/src/components/ui/form-field/FormField.tsx +1 -1
  156. package/src/components/ui/help-tip/HelpTip.tsx +1 -1
  157. package/src/components/ui/menu/Menu.tsx +2 -2
  158. package/src/components/ui/pill/Pill.tsx +1 -1
  159. package/src/components/ui/popover/Popover.stories.tsx +2 -2
  160. package/src/components/ui/popover/Popover.tsx +1 -1
  161. package/src/components/ui/radio/Radio.stories.tsx +1 -1
  162. package/src/components/ui/section/Section.stories.tsx +4 -4
  163. package/src/components/ui/select/Select.tsx +1 -1
  164. package/src/components/ui/stack/Stack.stories.tsx +4 -4
  165. package/src/components/ui/tabs/Tabs.tsx +2 -2
  166. package/src/components/ui/toolbar-button/ToolbarButton.stories.tsx +1 -1
  167. package/src/components/ui/toolbar-button/ToolbarButton.tsx +1 -1
  168. package/src/examples/react-hook-form/ControlledFields.tsx +171 -0
  169. package/src/examples/react-hook-form/ReactHookForm.stories.tsx +51 -0
  170. package/src/examples/react-hook-form/ReactHookForm.test.tsx +61 -0
  171. package/src/examples/react-hook-form/RhfContactForm.tsx +99 -0
  172. package/src/stories/PresetShowcase.stories.tsx +15 -15
  173. package/src/theme/config.completeness.test.ts +77 -0
  174. package/src/theme/config.ts +151 -0
  175. package/src/theme/index.ts +2 -1
  176. package/src/theme/manifest/css-property-manifest.example.json +79 -0
  177. package/src/theme/manifest/css-property-manifest.schema.json +93 -0
  178. package/src/theme/manifest/css-property-manifest.test.ts +81 -0
  179. package/src/theme/manifest/css-property-manifest.types.ts +49 -0
  180. package/src/theme/manifest/css-property-manifest.validate.ts +84 -0
  181. package/src/theme/manifest/design-freeze.test.ts +155 -0
  182. package/src/theme/manifest/extract-css-properties.fixture.html +29 -0
  183. package/src/theme/manifest/extract-css-properties.test.ts +112 -0
  184. package/src/theme/manifest/index.ts +11 -0
  185. package/src/theme/tokens-css.test.ts +28 -0
  186. package/src/theme/tokens-css.ts +36 -0
  187. package/src/theme/workout-tokens.ts +59 -0
  188. package/src/utils/index.ts +10 -0
  189. package/src/utils/workout-format.test.ts +81 -0
  190. package/src/utils/workout-format.ts +83 -0
  191. package/dist/chunk-UXVRPOME.mjs.map +0 -1
@@ -866,6 +866,23 @@ declare function getSemanticColors(mode: ThemeMode): {
866
866
  */
867
867
 
868
868
  declare const lightThemeCSSVars: {
869
+ readonly '--color-brand-primary-rgb': "255, 121, 0";
870
+ readonly '--color-brand-secondary-rgb': "64, 109, 135";
871
+ readonly '--color-status-success-rgb': "20, 184, 166";
872
+ readonly '--color-status-error-rgb': "209, 67, 67";
873
+ readonly '--color-status-warning-rgb': "255, 176, 32";
874
+ readonly '--color-status-info-rgb': "33, 150, 243";
875
+ readonly '--color-background-base-rgb': "16, 16, 16";
876
+ readonly '--font-family-sans': "'Inter'";
877
+ readonly '--font-family-body': "'Nunito Sans'";
878
+ readonly '--font-family-heading': "'Space Grotesk'";
879
+ readonly '--font-family-mono': "'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, monospace";
880
+ readonly '--ease-out': "cubic-bezier(0.22, 1, 0.36, 1)";
881
+ readonly '--ease-in-out': "cubic-bezier(0.65, 0, 0.35, 1)";
882
+ readonly '--ease-spring': "cubic-bezier(0.34, 1.56, 0.64, 1)";
883
+ readonly '--duration-fast': "150ms";
884
+ readonly '--duration-normal': "250ms";
885
+ readonly '--duration-slow': "400ms";
869
886
  readonly '--color-brand-primary': "#FF7900";
870
887
  readonly '--color-brand-primary-light': "#FF9630";
871
888
  readonly '--color-brand-primary-dark': "#D0620C";
@@ -906,8 +923,73 @@ declare const lightThemeCSSVars: {
906
923
  readonly '--color-interactive-selected': "rgba(55, 65, 81, 0.08)";
907
924
  readonly '--color-interactive-disabled': "rgba(55, 65, 81, 0.12)";
908
925
  readonly '--color-divider': "#E8E9EB";
926
+ readonly '--color-brand-primary-hover': "#F56C00";
927
+ readonly '--color-brand-primary-active': "#E06D10";
928
+ readonly '--color-brand-secondary-hover': "#39617A";
929
+ readonly '--color-brand-secondary-active': "#32556D";
930
+ readonly '--color-status-success-light': "#43C6B7";
931
+ readonly '--color-status-success-dark': "#0E8074";
932
+ readonly '--color-status-error-light': "#DA6868";
933
+ readonly '--color-status-error-dark': "#922E2E";
934
+ readonly '--color-status-warning-light': "#FFBF4C";
935
+ readonly '--color-status-warning-dark': "#B27B16";
936
+ readonly '--color-status-info-light': "#64B6F7";
937
+ readonly '--color-status-info-dark': "#0B79D0";
938
+ readonly '--color-on-status-success': "#FFFFFF";
939
+ readonly '--color-on-status-error': "#FFFFFF";
940
+ readonly '--color-on-status-warning': "#FFFFFF";
941
+ readonly '--color-on-status-info': "#FFFFFF";
942
+ readonly '--color-result-improve': "#4caf50";
943
+ readonly '--color-result-improve-light': "rgba(76, 175, 80, 0.12)";
944
+ readonly '--color-result-improve-dark': "#248a24";
945
+ readonly '--color-result-degrade': "#ef5350";
946
+ readonly '--color-result-degrade-light': "rgba(239, 83, 80, 0.12)";
947
+ readonly '--color-result-degrade-dark': "#b30000";
948
+ readonly '--color-result-inconclusive': "#9E9A97";
949
+ readonly '--color-result-inconclusive-light': "rgba(158, 154, 151, 0.12)";
950
+ readonly '--color-result-neutral': "#6B7280";
951
+ readonly '--color-on-result-improve': "#FFFFFF";
952
+ readonly '--color-on-result-degrade': "#FFFFFF";
953
+ readonly '--color-on-result-inconclusive': "#FFFFFF";
954
+ readonly '--color-data-1': "#1965B0";
955
+ readonly '--color-data-2': "#4EB265";
956
+ readonly '--color-data-3': "#F7F056";
957
+ readonly '--color-data-4': "#DC050C";
958
+ readonly '--color-data-5': "#882E72";
959
+ readonly '--color-data-6': "#F4A736";
960
+ readonly '--color-data-7': "#7BAFDE";
961
+ readonly '--color-data-8': "#90C987";
962
+ readonly '--color-data-9': "#CAACCB";
963
+ readonly '--color-data-10': "#EE8026";
964
+ readonly '--color-text-link-hover': "#3832A0";
965
+ readonly '--color-surface-overlay': "#FFFFFF";
966
+ readonly '--color-surface-input': "#FAFAFA";
967
+ readonly '--color-border-input': "#D1D5DB";
968
+ readonly '--color-border-input-hover': "#9CA3AF";
969
+ readonly '--color-border-input-focus': "#5048E5";
970
+ readonly '--color-border-input-error': "#D14343";
971
+ readonly '--color-interactive-disabled-text': "rgba(55, 65, 81, 0.26)";
972
+ readonly '--color-avatar-background': "#6B7280";
973
+ readonly '--color-avatar-text': "#FFFFFF";
909
974
  };
910
975
  declare const darkThemeCSSVars: {
976
+ readonly '--color-brand-primary-rgb': "255, 121, 0";
977
+ readonly '--color-brand-secondary-rgb': "64, 109, 135";
978
+ readonly '--color-status-success-rgb': "20, 184, 166";
979
+ readonly '--color-status-error-rgb': "209, 67, 67";
980
+ readonly '--color-status-warning-rgb': "255, 176, 32";
981
+ readonly '--color-status-info-rgb': "33, 150, 243";
982
+ readonly '--color-background-base-rgb': "16, 16, 16";
983
+ readonly '--font-family-sans': "'Inter'";
984
+ readonly '--font-family-body': "'Nunito Sans'";
985
+ readonly '--font-family-heading': "'Space Grotesk'";
986
+ readonly '--font-family-mono': "'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, monospace";
987
+ readonly '--ease-out': "cubic-bezier(0.22, 1, 0.36, 1)";
988
+ readonly '--ease-in-out': "cubic-bezier(0.65, 0, 0.35, 1)";
989
+ readonly '--ease-spring': "cubic-bezier(0.34, 1.56, 0.64, 1)";
990
+ readonly '--duration-fast': "150ms";
991
+ readonly '--duration-normal': "250ms";
992
+ readonly '--duration-slow': "400ms";
911
993
  readonly '--color-brand-primary': "#FF7900";
912
994
  readonly '--color-brand-primary-light': "#FF9630";
913
995
  readonly '--color-brand-primary-dark': "#D0620C";
@@ -948,8 +1030,73 @@ declare const darkThemeCSSVars: {
948
1030
  readonly '--color-interactive-selected': "rgba(255, 255, 255, 0.08)";
949
1031
  readonly '--color-interactive-disabled': "rgba(255, 255, 255, 0.12)";
950
1032
  readonly '--color-divider': "#1F1F1F";
1033
+ readonly '--color-brand-primary-hover': "#FF8500";
1034
+ readonly '--color-brand-primary-active': "#FF9630";
1035
+ readonly '--color-brand-secondary-hover': "#557488";
1036
+ readonly '--color-brand-secondary-active': "#678498";
1037
+ readonly '--color-status-success-light': "#43C6B7";
1038
+ readonly '--color-status-success-dark': "#0E8074";
1039
+ readonly '--color-status-error-light': "#DA6868";
1040
+ readonly '--color-status-error-dark': "#922E2E";
1041
+ readonly '--color-status-warning-light': "#FFBF4C";
1042
+ readonly '--color-status-warning-dark': "#B27B16";
1043
+ readonly '--color-status-info-light': "#64B6F7";
1044
+ readonly '--color-status-info-dark': "#0B79D0";
1045
+ readonly '--color-on-status-success': "#FFFFFF";
1046
+ readonly '--color-on-status-error': "#FFFFFF";
1047
+ readonly '--color-on-status-warning': "#FFFFFF";
1048
+ readonly '--color-on-status-info': "#FFFFFF";
1049
+ readonly '--color-result-improve': "#4caf50";
1050
+ readonly '--color-result-improve-light': "rgba(76, 175, 80, 0.16)";
1051
+ readonly '--color-result-improve-dark': "#248a24";
1052
+ readonly '--color-result-degrade': "#ef5350";
1053
+ readonly '--color-result-degrade-light': "rgba(239, 83, 80, 0.16)";
1054
+ readonly '--color-result-degrade-dark': "#b30000";
1055
+ readonly '--color-result-inconclusive': "#9E9A97";
1056
+ readonly '--color-result-inconclusive-light': "rgba(158, 154, 151, 0.16)";
1057
+ readonly '--color-result-neutral': "#9CA3AF";
1058
+ readonly '--color-on-result-improve': "#FFFFFF";
1059
+ readonly '--color-on-result-degrade': "#FFFFFF";
1060
+ readonly '--color-on-result-inconclusive': "#FFFFFF";
1061
+ readonly '--color-data-1': "#1965B0";
1062
+ readonly '--color-data-2': "#4EB265";
1063
+ readonly '--color-data-3': "#F7F056";
1064
+ readonly '--color-data-4': "#DC050C";
1065
+ readonly '--color-data-5': "#882E72";
1066
+ readonly '--color-data-6': "#F4A736";
1067
+ readonly '--color-data-7': "#7BAFDE";
1068
+ readonly '--color-data-8': "#90C987";
1069
+ readonly '--color-data-9': "#CAACCB";
1070
+ readonly '--color-data-10': "#EE8026";
1071
+ readonly '--color-text-link-hover': "#60A5FA";
1072
+ readonly '--color-surface-overlay': "#191919";
1073
+ readonly '--color-surface-input': "#191919";
1074
+ readonly '--color-border-input': "#4B5563";
1075
+ readonly '--color-border-input-hover': "#6B7280";
1076
+ readonly '--color-border-input-focus': "#828DF8";
1077
+ readonly '--color-border-input-error': "#EF4444";
1078
+ readonly '--color-interactive-disabled-text': "rgba(255, 255, 255, 0.26)";
1079
+ readonly '--color-avatar-background': "#4B5563";
1080
+ readonly '--color-avatar-text': "#FFFFFF";
951
1081
  };
952
1082
  declare function getThemeCSSVars(mode: ThemeMode): {
1083
+ readonly '--color-brand-primary-rgb': "255, 121, 0";
1084
+ readonly '--color-brand-secondary-rgb': "64, 109, 135";
1085
+ readonly '--color-status-success-rgb': "20, 184, 166";
1086
+ readonly '--color-status-error-rgb': "209, 67, 67";
1087
+ readonly '--color-status-warning-rgb': "255, 176, 32";
1088
+ readonly '--color-status-info-rgb': "33, 150, 243";
1089
+ readonly '--color-background-base-rgb': "16, 16, 16";
1090
+ readonly '--font-family-sans': "'Inter'";
1091
+ readonly '--font-family-body': "'Nunito Sans'";
1092
+ readonly '--font-family-heading': "'Space Grotesk'";
1093
+ readonly '--font-family-mono': "'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, monospace";
1094
+ readonly '--ease-out': "cubic-bezier(0.22, 1, 0.36, 1)";
1095
+ readonly '--ease-in-out': "cubic-bezier(0.65, 0, 0.35, 1)";
1096
+ readonly '--ease-spring': "cubic-bezier(0.34, 1.56, 0.64, 1)";
1097
+ readonly '--duration-fast': "150ms";
1098
+ readonly '--duration-normal': "250ms";
1099
+ readonly '--duration-slow': "400ms";
953
1100
  readonly '--color-brand-primary': "#FF7900";
954
1101
  readonly '--color-brand-primary-light': "#FF9630";
955
1102
  readonly '--color-brand-primary-dark': "#D0620C";
@@ -990,7 +1137,72 @@ declare function getThemeCSSVars(mode: ThemeMode): {
990
1137
  readonly '--color-interactive-selected': "rgba(55, 65, 81, 0.08)";
991
1138
  readonly '--color-interactive-disabled': "rgba(55, 65, 81, 0.12)";
992
1139
  readonly '--color-divider': "#E8E9EB";
1140
+ readonly '--color-brand-primary-hover': "#F56C00";
1141
+ readonly '--color-brand-primary-active': "#E06D10";
1142
+ readonly '--color-brand-secondary-hover': "#39617A";
1143
+ readonly '--color-brand-secondary-active': "#32556D";
1144
+ readonly '--color-status-success-light': "#43C6B7";
1145
+ readonly '--color-status-success-dark': "#0E8074";
1146
+ readonly '--color-status-error-light': "#DA6868";
1147
+ readonly '--color-status-error-dark': "#922E2E";
1148
+ readonly '--color-status-warning-light': "#FFBF4C";
1149
+ readonly '--color-status-warning-dark': "#B27B16";
1150
+ readonly '--color-status-info-light': "#64B6F7";
1151
+ readonly '--color-status-info-dark': "#0B79D0";
1152
+ readonly '--color-on-status-success': "#FFFFFF";
1153
+ readonly '--color-on-status-error': "#FFFFFF";
1154
+ readonly '--color-on-status-warning': "#FFFFFF";
1155
+ readonly '--color-on-status-info': "#FFFFFF";
1156
+ readonly '--color-result-improve': "#4caf50";
1157
+ readonly '--color-result-improve-light': "rgba(76, 175, 80, 0.12)";
1158
+ readonly '--color-result-improve-dark': "#248a24";
1159
+ readonly '--color-result-degrade': "#ef5350";
1160
+ readonly '--color-result-degrade-light': "rgba(239, 83, 80, 0.12)";
1161
+ readonly '--color-result-degrade-dark': "#b30000";
1162
+ readonly '--color-result-inconclusive': "#9E9A97";
1163
+ readonly '--color-result-inconclusive-light': "rgba(158, 154, 151, 0.12)";
1164
+ readonly '--color-result-neutral': "#6B7280";
1165
+ readonly '--color-on-result-improve': "#FFFFFF";
1166
+ readonly '--color-on-result-degrade': "#FFFFFF";
1167
+ readonly '--color-on-result-inconclusive': "#FFFFFF";
1168
+ readonly '--color-data-1': "#1965B0";
1169
+ readonly '--color-data-2': "#4EB265";
1170
+ readonly '--color-data-3': "#F7F056";
1171
+ readonly '--color-data-4': "#DC050C";
1172
+ readonly '--color-data-5': "#882E72";
1173
+ readonly '--color-data-6': "#F4A736";
1174
+ readonly '--color-data-7': "#7BAFDE";
1175
+ readonly '--color-data-8': "#90C987";
1176
+ readonly '--color-data-9': "#CAACCB";
1177
+ readonly '--color-data-10': "#EE8026";
1178
+ readonly '--color-text-link-hover': "#3832A0";
1179
+ readonly '--color-surface-overlay': "#FFFFFF";
1180
+ readonly '--color-surface-input': "#FAFAFA";
1181
+ readonly '--color-border-input': "#D1D5DB";
1182
+ readonly '--color-border-input-hover': "#9CA3AF";
1183
+ readonly '--color-border-input-focus': "#5048E5";
1184
+ readonly '--color-border-input-error': "#D14343";
1185
+ readonly '--color-interactive-disabled-text': "rgba(55, 65, 81, 0.26)";
1186
+ readonly '--color-avatar-background': "#6B7280";
1187
+ readonly '--color-avatar-text': "#FFFFFF";
993
1188
  } | {
1189
+ readonly '--color-brand-primary-rgb': "255, 121, 0";
1190
+ readonly '--color-brand-secondary-rgb': "64, 109, 135";
1191
+ readonly '--color-status-success-rgb': "20, 184, 166";
1192
+ readonly '--color-status-error-rgb': "209, 67, 67";
1193
+ readonly '--color-status-warning-rgb': "255, 176, 32";
1194
+ readonly '--color-status-info-rgb': "33, 150, 243";
1195
+ readonly '--color-background-base-rgb': "16, 16, 16";
1196
+ readonly '--font-family-sans': "'Inter'";
1197
+ readonly '--font-family-body': "'Nunito Sans'";
1198
+ readonly '--font-family-heading': "'Space Grotesk'";
1199
+ readonly '--font-family-mono': "'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, monospace";
1200
+ readonly '--ease-out': "cubic-bezier(0.22, 1, 0.36, 1)";
1201
+ readonly '--ease-in-out': "cubic-bezier(0.65, 0, 0.35, 1)";
1202
+ readonly '--ease-spring': "cubic-bezier(0.34, 1.56, 0.64, 1)";
1203
+ readonly '--duration-fast': "150ms";
1204
+ readonly '--duration-normal': "250ms";
1205
+ readonly '--duration-slow': "400ms";
994
1206
  readonly '--color-brand-primary': "#FF7900";
995
1207
  readonly '--color-brand-primary-light': "#FF9630";
996
1208
  readonly '--color-brand-primary-dark': "#D0620C";
@@ -1031,6 +1243,54 @@ declare function getThemeCSSVars(mode: ThemeMode): {
1031
1243
  readonly '--color-interactive-selected': "rgba(255, 255, 255, 0.08)";
1032
1244
  readonly '--color-interactive-disabled': "rgba(255, 255, 255, 0.12)";
1033
1245
  readonly '--color-divider': "#1F1F1F";
1246
+ readonly '--color-brand-primary-hover': "#FF8500";
1247
+ readonly '--color-brand-primary-active': "#FF9630";
1248
+ readonly '--color-brand-secondary-hover': "#557488";
1249
+ readonly '--color-brand-secondary-active': "#678498";
1250
+ readonly '--color-status-success-light': "#43C6B7";
1251
+ readonly '--color-status-success-dark': "#0E8074";
1252
+ readonly '--color-status-error-light': "#DA6868";
1253
+ readonly '--color-status-error-dark': "#922E2E";
1254
+ readonly '--color-status-warning-light': "#FFBF4C";
1255
+ readonly '--color-status-warning-dark': "#B27B16";
1256
+ readonly '--color-status-info-light': "#64B6F7";
1257
+ readonly '--color-status-info-dark': "#0B79D0";
1258
+ readonly '--color-on-status-success': "#FFFFFF";
1259
+ readonly '--color-on-status-error': "#FFFFFF";
1260
+ readonly '--color-on-status-warning': "#FFFFFF";
1261
+ readonly '--color-on-status-info': "#FFFFFF";
1262
+ readonly '--color-result-improve': "#4caf50";
1263
+ readonly '--color-result-improve-light': "rgba(76, 175, 80, 0.16)";
1264
+ readonly '--color-result-improve-dark': "#248a24";
1265
+ readonly '--color-result-degrade': "#ef5350";
1266
+ readonly '--color-result-degrade-light': "rgba(239, 83, 80, 0.16)";
1267
+ readonly '--color-result-degrade-dark': "#b30000";
1268
+ readonly '--color-result-inconclusive': "#9E9A97";
1269
+ readonly '--color-result-inconclusive-light': "rgba(158, 154, 151, 0.16)";
1270
+ readonly '--color-result-neutral': "#9CA3AF";
1271
+ readonly '--color-on-result-improve': "#FFFFFF";
1272
+ readonly '--color-on-result-degrade': "#FFFFFF";
1273
+ readonly '--color-on-result-inconclusive': "#FFFFFF";
1274
+ readonly '--color-data-1': "#1965B0";
1275
+ readonly '--color-data-2': "#4EB265";
1276
+ readonly '--color-data-3': "#F7F056";
1277
+ readonly '--color-data-4': "#DC050C";
1278
+ readonly '--color-data-5': "#882E72";
1279
+ readonly '--color-data-6': "#F4A736";
1280
+ readonly '--color-data-7': "#7BAFDE";
1281
+ readonly '--color-data-8': "#90C987";
1282
+ readonly '--color-data-9': "#CAACCB";
1283
+ readonly '--color-data-10': "#EE8026";
1284
+ readonly '--color-text-link-hover': "#60A5FA";
1285
+ readonly '--color-surface-overlay': "#191919";
1286
+ readonly '--color-surface-input': "#191919";
1287
+ readonly '--color-border-input': "#4B5563";
1288
+ readonly '--color-border-input-hover': "#6B7280";
1289
+ readonly '--color-border-input-focus': "#828DF8";
1290
+ readonly '--color-border-input-error': "#EF4444";
1291
+ readonly '--color-interactive-disabled-text': "rgba(255, 255, 255, 0.26)";
1292
+ readonly '--color-avatar-background': "#4B5563";
1293
+ readonly '--color-avatar-text': "#FFFFFF";
1034
1294
  };
1035
1295
  declare const gluestackConfig: {
1036
1296
  readonly tokens: {
@@ -1299,6 +1559,62 @@ declare const neumorphicShadows: {
1299
1559
  };
1300
1560
  };
1301
1561
 
1562
+ /**
1563
+ * TypeScript mirror of css-property-manifest.schema.json.
1564
+ *
1565
+ * A manifest records, per component, which visual CSS properties are tracked,
1566
+ * which design token each one resolves from, the expected computed style
1567
+ * value, and any per-variant overrides. Manifests are the fixtures consumed
1568
+ * by Playwright computed-style assertions (see packages/ui/tests/visual).
1569
+ */
1570
+ /** Variant axis name/value pairs, e.g. { variant: 'solid', color: 'primary', size: 'md' }. */
1571
+ type VariantAxes = Record<string, string>;
1572
+ /** A resolvedValue/token override that applies when the given variant axes match. */
1573
+ interface VariantOverride {
1574
+ /** Partial variant axis values that trigger this override, merged onto baseVariant. */
1575
+ variant: VariantAxes;
1576
+ /** Semantic token key for this override, or null for a literal (non-tokenized) value. */
1577
+ token?: string | null;
1578
+ /** CSS custom property backing the token for this override, if any. */
1579
+ cssVariable?: string | null;
1580
+ /** Expected getComputedStyle value when the variant axes match. */
1581
+ resolvedValue: string;
1582
+ }
1583
+ /** A single tracked CSS property for a component. */
1584
+ interface CssPropertyEntry {
1585
+ /** CSS property name in camelCase, as returned by window.getComputedStyle (e.g. "backgroundColor"). */
1586
+ property: string;
1587
+ /** Semantic token key this property is sourced from, or null if not backed by a token. */
1588
+ token: string | null;
1589
+ /** CSS custom property backing the token (e.g. "--color-brand-primary"), if any. */
1590
+ cssVariable?: string | null;
1591
+ /** Expected computed style value for baseVariant. */
1592
+ resolvedValue: string;
1593
+ /** Overrides of token/resolvedValue for specific variant axis combinations. */
1594
+ variantOverrides?: VariantOverride[];
1595
+ }
1596
+ /** The full per-component CSS property manifest. */
1597
+ interface CssPropertyManifest {
1598
+ /** Component identifier matching its src/components/ui/{component} directory and Storybook id. */
1599
+ component: string;
1600
+ /** Optional human-readable note about what this manifest covers. */
1601
+ description?: string;
1602
+ /** Variant axis values each property's top-level resolvedValue was captured against. */
1603
+ baseVariant?: VariantAxes;
1604
+ /** Tracked CSS properties for this component. */
1605
+ properties: CssPropertyEntry[];
1606
+ }
1607
+
1608
+ /** Result of validating a candidate manifest: valid iff errors is empty. */
1609
+ interface ManifestValidationResult {
1610
+ valid: boolean;
1611
+ errors: string[];
1612
+ }
1613
+ /** Structurally validates a candidate value against the CssPropertyManifest shape. */
1614
+ declare function validateCssPropertyManifest(candidate: unknown): ManifestValidationResult;
1615
+ /** Type guard variant of validateCssPropertyManifest for use in narrowing contexts. */
1616
+ declare function isCssPropertyManifest(candidate: unknown): candidate is CssPropertyManifest;
1617
+
1302
1618
  interface ThemePresetColors {
1303
1619
  'brand-primary'?: string;
1304
1620
  'brand-primary-light'?: string;
@@ -1384,4 +1700,4 @@ declare const defaultPreset: ThemePreset;
1384
1700
  */
1385
1701
  declare const audiobookPreset: ThemePreset;
1386
1702
 
1387
- export { type ComponentType, type ElevationConfig, type ElevationLevel, type GlowIntensity, type ShadowIntensity, type ShadowSurface, type ThemeConfig, type ThemeMode, type ThemePreset, type ThemePresetColors, type ThemePresetFonts, type ThemePresetRadii, type ThemePresetShadows, applyThemePreset, audiobookPreset, buttonSizes, componentElevationRanges, createFlatShadow, createPressedHoverShadow, createPressedShadow, createRaisedHoverShadow, createRaisedShadow, darkThemeCSSVars, darken, defaultPreset, discreteRainbow, elevationSystem, getBaseSurfaceColor, getDiscreteRainbowColor, getElevationConfig, getElevationShadow, getElevationSurface, getGlowShadow, getHoverColors, getSemanticColors, getThemeCSSVars, getValidatedElevation, gluestackConfig, hexToRgb, hsvToRgb, isDark, lightThemeCSSVars, lighten, neumorphicShadows, primitiveBorderRadius, primitiveBreakpoints, primitiveColors, primitiveShadows, primitiveSpacing, primitiveTypography, primitiveZIndex, rgbToHex, rgbToHsv, semanticColorsDark, semanticColorsLight, semanticTypography, shadowColors };
1703
+ export { type ComponentType, type CssPropertyEntry, type CssPropertyManifest, type ElevationConfig, type ElevationLevel, type GlowIntensity, type ManifestValidationResult, type ShadowIntensity, type ShadowSurface, type ThemeConfig, type ThemeMode, type ThemePreset, type ThemePresetColors, type ThemePresetFonts, type ThemePresetRadii, type ThemePresetShadows, type VariantAxes, type VariantOverride, applyThemePreset, audiobookPreset, buttonSizes, componentElevationRanges, createFlatShadow, createPressedHoverShadow, createPressedShadow, createRaisedHoverShadow, createRaisedShadow, darkThemeCSSVars, darken, defaultPreset, discreteRainbow, elevationSystem, getBaseSurfaceColor, getDiscreteRainbowColor, getElevationConfig, getElevationShadow, getElevationSurface, getGlowShadow, getHoverColors, getSemanticColors, getThemeCSSVars, getValidatedElevation, gluestackConfig, hexToRgb, hsvToRgb, isCssPropertyManifest, isDark, lightThemeCSSVars, lighten, neumorphicShadows, primitiveBorderRadius, primitiveBreakpoints, primitiveColors, primitiveShadows, primitiveSpacing, primitiveTypography, primitiveZIndex, rgbToHex, rgbToHsv, semanticColorsDark, semanticColorsLight, semanticTypography, shadowColors, validateCssPropertyManifest };