@titan-design/react-ui 0.2.7 → 0.4.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 (92) 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 +3014 -0
  6. package/dist/bodymap.js.map +1 -0
  7. package/dist/bodymap.mjs +1088 -0
  8. package/dist/bodymap.mjs.map +1 -0
  9. package/dist/chunk-2SISKTWM.mjs +1027 -0
  10. package/dist/chunk-2SISKTWM.mjs.map +1 -0
  11. package/dist/{chunk-5SSKGS6E.mjs → chunk-7XPB4NAO.mjs} +124 -4
  12. package/dist/chunk-7XPB4NAO.mjs.map +1 -0
  13. package/dist/{chunk-3VLOBS6O.mjs → chunk-SNVKL5WZ.mjs} +42 -5
  14. package/dist/chunk-SNVKL5WZ.mjs.map +1 -0
  15. package/dist/index.d.mts +416 -250
  16. package/dist/index.d.ts +416 -250
  17. package/dist/index.js +1567 -1123
  18. package/dist/index.js.map +1 -1
  19. package/dist/index.mjs +1491 -2201
  20. package/dist/index.mjs.map +1 -1
  21. package/dist/theme/index.d.mts +288 -2
  22. package/dist/theme/index.d.ts +288 -2
  23. package/dist/theme/index.js +159 -2
  24. package/dist/theme/index.js.map +1 -1
  25. package/dist/theme/index.mjs +2 -2
  26. package/dist/theme/tokens-css.d.mts +5 -3
  27. package/dist/theme/tokens-css.d.ts +5 -3
  28. package/dist/theme/tokens-css.js +318 -9
  29. package/dist/theme/tokens-css.js.map +1 -1
  30. package/dist/theme/tokens-css.mjs +1 -1
  31. package/dist/theme/tokens-css.mjs.map +1 -1
  32. package/package.json +10 -1
  33. package/src/bodymap.ts +37 -0
  34. package/src/components/custom/Table/Table.test.tsx +27 -0
  35. package/src/components/custom/Table/Table.tsx +33 -17
  36. package/src/components/custom/Workout/ActiveWorkoutPage.stories.tsx +118 -0
  37. package/src/components/custom/Workout/ActiveWorkoutPage.test.tsx +171 -0
  38. package/src/components/custom/Workout/ActiveWorkoutPage.tsx +442 -0
  39. package/src/components/custom/Workout/BodyMap.tsx +7 -9
  40. package/src/components/custom/Workout/BodyMapDetailPanel.tsx +25 -29
  41. package/src/components/custom/Workout/CapacityBandChart.tsx +2 -3
  42. package/src/components/custom/Workout/ExerciseCard.test.tsx +24 -0
  43. package/src/components/custom/Workout/ExerciseCard.tsx +24 -26
  44. package/src/components/custom/Workout/ExerciseDetailPage.stories.tsx +225 -0
  45. package/src/components/custom/Workout/ExerciseDetailPage.test.tsx +128 -0
  46. package/src/components/custom/Workout/ExerciseDetailPage.tsx +624 -0
  47. package/src/components/custom/Workout/InputBar.tsx +10 -12
  48. package/src/components/custom/Workout/MesoCard.tsx +2 -4
  49. package/src/components/custom/Workout/MesoProgressBar.test.tsx +12 -0
  50. package/src/components/custom/Workout/MesoProgressBar.tsx +5 -1
  51. package/src/components/custom/Workout/MesoStatusCard.tsx +17 -15
  52. package/src/components/custom/Workout/MuscleGroupChip.tsx +2 -4
  53. package/src/components/custom/Workout/PlaceholderStrip.tsx +2 -4
  54. package/src/components/custom/Workout/PrHistoryModal.tsx +12 -14
  55. package/src/components/custom/Workout/ProgramPlanningPage.stories.tsx +257 -0
  56. package/src/components/custom/Workout/ProgramPlanningPage.test.tsx +142 -0
  57. package/src/components/custom/Workout/ProgramPlanningPage.tsx +418 -0
  58. package/src/components/custom/Workout/ReadinessCheck.tsx +13 -12
  59. package/src/components/custom/Workout/RestTimer.test.tsx +10 -0
  60. package/src/components/custom/Workout/RestTimer.tsx +12 -9
  61. package/src/components/custom/Workout/SetRow.tsx +16 -19
  62. package/src/components/custom/Workout/StatusDot.tsx +1 -0
  63. package/src/components/custom/Workout/StrengthTrendChart.tsx +15 -17
  64. package/src/components/custom/Workout/TempoBar.stories.tsx +95 -0
  65. package/src/components/custom/Workout/TempoBar.test.tsx +103 -0
  66. package/src/components/custom/Workout/TempoBar.tsx +215 -0
  67. package/src/components/custom/Workout/TempoDisplay.tsx +3 -1
  68. package/src/components/custom/Workout/TrainingStatusPage.stories.tsx +212 -0
  69. package/src/components/custom/Workout/TrainingStatusPage.test.tsx +131 -0
  70. package/src/components/custom/Workout/TrainingStatusPage.tsx +312 -0
  71. package/src/components/custom/Workout/VelocityStrip.test.tsx +10 -0
  72. package/src/components/custom/Workout/VelocityStrip.tsx +19 -16
  73. package/src/components/custom/Workout/WeekRow.tsx +2 -1
  74. package/src/components/custom/Workout/WorkoutCard.tsx +3 -6
  75. package/src/components/custom/Workout/index.ts +80 -32
  76. package/src/test/nativewind-stub.ts +13 -0
  77. package/src/theme/ThemeProvider.test.tsx +24 -0
  78. package/src/theme/ThemeProvider.tsx +50 -0
  79. package/src/theme/config.completeness.test.ts +77 -0
  80. package/src/theme/config.ts +151 -0
  81. package/src/theme/index.ts +2 -0
  82. package/src/theme/manifest/design-freeze.test.ts +155 -0
  83. package/src/theme/manifest/extract-css-properties.fixture.html +29 -0
  84. package/src/theme/manifest/extract-css-properties.test.ts +112 -0
  85. package/src/theme/resolve-color.ts +19 -0
  86. package/src/theme/tokens-css.ts +5 -3
  87. package/src/theme/workout-tokens.ts +12 -14
  88. package/src/utils/index.ts +10 -0
  89. package/src/utils/workout-format.test.ts +81 -0
  90. package/src/utils/workout-format.ts +83 -0
  91. package/dist/chunk-3VLOBS6O.mjs.map +0 -1
  92. package/dist/chunk-5SSKGS6E.mjs.map +0 -1
@@ -1,4 +1,4 @@
1
- import { ViewStyle } from 'react-native';
1
+ import { ViewStyle, ViewProps } from 'react-native';
2
2
 
3
3
  /**
4
4
  * Elevation System
@@ -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: {
@@ -1355,6 +1615,32 @@ declare function validateCssPropertyManifest(candidate: unknown): ManifestValida
1355
1615
  /** Type guard variant of validateCssPropertyManifest for use in narrowing contexts. */
1356
1616
  declare function isCssPropertyManifest(candidate: unknown): candidate is CssPropertyManifest;
1357
1617
 
1618
+ type ThemeProviderMode = 'dark' | 'light';
1619
+ interface ThemeProviderProps extends ViewProps {
1620
+ /** Theme mode to register. Mobile is dark-only today; defaults to `dark`. */
1621
+ mode?: ThemeProviderMode;
1622
+ }
1623
+ /**
1624
+ * Wrap the app root so descendant titan components' `--color-*` className tokens
1625
+ * resolve on native. Fills its parent (`flex: 1`) by default; pass `style` to
1626
+ * override. On web it is harmless (the dashboard already loads `global.css`).
1627
+ */
1628
+ declare function ThemeProvider({ mode, style, children, ...props }: ThemeProviderProps): React.JSX.Element;
1629
+
1630
+ type ColorToken = keyof ReturnType<typeof getSemanticColors>;
1631
+ /**
1632
+ * Resolve a semantic color token for an inline style where a nativewind
1633
+ * className can't apply — gradients (`backgroundImage`), per-edge borders
1634
+ * (`borderTopColor`, …), SVG attributes, and conditional hex/token mixes.
1635
+ *
1636
+ * The companion to className color tokens: on **web** it returns the CSS
1637
+ * variable (`var(--color-…)`), so the dashboard's light/dark switching keeps
1638
+ * working exactly as `global.css` intends; on **native** it returns the
1639
+ * resolved hex from `getSemanticColors` (mobile is dark-only). This is why
1640
+ * these spots stay theme-correct on web while also rendering on-device.
1641
+ */
1642
+ declare function resolveColor(token: ColorToken, mode?: ThemeMode): string;
1643
+
1358
1644
  interface ThemePresetColors {
1359
1645
  'brand-primary'?: string;
1360
1646
  'brand-primary-light'?: string;
@@ -1440,4 +1726,4 @@ declare const defaultPreset: ThemePreset;
1440
1726
  */
1441
1727
  declare const audiobookPreset: ThemePreset;
1442
1728
 
1443
- 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 };
1729
+ 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, ThemeProvider, type ThemeProviderMode, type ThemeProviderProps, 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, resolveColor, rgbToHex, rgbToHsv, semanticColorsDark, semanticColorsLight, semanticTypography, shadowColors, validateCssPropertyManifest };