@titan-design/react-ui 0.3.0 → 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.
- package/dist/bodymap.js +441 -97
- package/dist/bodymap.js.map +1 -1
- package/dist/bodymap.mjs +49 -62
- package/dist/bodymap.mjs.map +1 -1
- package/dist/{chunk-TOD2WQBG.mjs → chunk-2SISKTWM.mjs} +22 -43
- package/dist/chunk-2SISKTWM.mjs.map +1 -0
- package/dist/{chunk-P7TSQUN6.mjs → chunk-SNVKL5WZ.mjs} +42 -5
- package/dist/chunk-SNVKL5WZ.mjs.map +1 -0
- package/dist/index.d.mts +42 -2
- package/dist/index.d.ts +42 -2
- package/dist/index.js +431 -328
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +397 -314
- package/dist/index.mjs.map +1 -1
- package/dist/theme/index.d.mts +28 -2
- package/dist/theme/index.d.ts +28 -2
- package/dist/theme/index.js +37 -0
- package/dist/theme/index.js.map +1 -1
- package/dist/theme/index.mjs +1 -1
- package/package.json +1 -1
- package/src/components/custom/Workout/ActiveWorkoutPage.tsx +10 -15
- package/src/components/custom/Workout/BodyMap.tsx +7 -8
- package/src/components/custom/Workout/BodyMapDetailPanel.tsx +25 -28
- package/src/components/custom/Workout/CapacityBandChart.tsx +2 -3
- package/src/components/custom/Workout/ExerciseCard.tsx +12 -27
- package/src/components/custom/Workout/ExerciseDetailPage.tsx +21 -27
- package/src/components/custom/Workout/InputBar.tsx +10 -11
- package/src/components/custom/Workout/MesoCard.tsx +2 -6
- package/src/components/custom/Workout/MesoStatusCard.tsx +17 -15
- package/src/components/custom/Workout/MuscleGroupChip.tsx +2 -4
- package/src/components/custom/Workout/PlaceholderStrip.tsx +2 -3
- package/src/components/custom/Workout/PrHistoryModal.tsx +12 -14
- package/src/components/custom/Workout/ProgramPlanningPage.tsx +8 -12
- package/src/components/custom/Workout/ReadinessCheck.tsx +13 -11
- package/src/components/custom/Workout/RestTimer.tsx +8 -7
- package/src/components/custom/Workout/SetRow.tsx +10 -7
- package/src/components/custom/Workout/StrengthTrendChart.tsx +15 -17
- package/src/components/custom/Workout/TempoBar.stories.tsx +95 -0
- package/src/components/custom/Workout/TempoBar.test.tsx +103 -0
- package/src/components/custom/Workout/TempoBar.tsx +215 -0
- package/src/components/custom/Workout/TrainingStatusPage.tsx +8 -17
- package/src/components/custom/Workout/VelocityStrip.tsx +7 -5
- package/src/components/custom/Workout/WeekRow.tsx +2 -1
- package/src/components/custom/Workout/WorkoutCard.tsx +3 -8
- package/src/components/custom/Workout/index.ts +9 -0
- package/src/test/nativewind-stub.ts +13 -0
- package/src/theme/ThemeProvider.test.tsx +24 -0
- package/src/theme/ThemeProvider.tsx +50 -0
- package/src/theme/index.ts +2 -0
- package/src/theme/resolve-color.ts +19 -0
- package/dist/chunk-P7TSQUN6.mjs.map +0 -1
- package/dist/chunk-TOD2WQBG.mjs.map +0 -1
package/dist/bodymap.js
CHANGED
|
@@ -16,6 +16,382 @@ function cn(...inputs) {
|
|
|
16
16
|
return tailwindMerge.twMerge(clsx.clsx(inputs));
|
|
17
17
|
}
|
|
18
18
|
|
|
19
|
+
// src/theme/tokens/primitives.ts
|
|
20
|
+
var primitiveColors = {
|
|
21
|
+
// Blue scale (primary brand)
|
|
22
|
+
blue: {
|
|
23
|
+
400: "#60A5FA",
|
|
24
|
+
600: "#5048E5",
|
|
25
|
+
// Primary main
|
|
26
|
+
700: "#3832A0"},
|
|
27
|
+
// Teal scale (success)
|
|
28
|
+
teal: {
|
|
29
|
+
50: "#F0FDFA",
|
|
30
|
+
400: "#43C6B7",
|
|
31
|
+
// Success light
|
|
32
|
+
500: "#14B8A6",
|
|
33
|
+
700: "#0E8074"},
|
|
34
|
+
// Red scale (error)
|
|
35
|
+
red: {
|
|
36
|
+
50: "#FEF2F2",
|
|
37
|
+
400: "#DA6868",
|
|
38
|
+
// Error light
|
|
39
|
+
500: "#EF4444",
|
|
40
|
+
600: "#D14343",
|
|
41
|
+
// Error main
|
|
42
|
+
700: "#922E2E"},
|
|
43
|
+
// Amber scale (warning)
|
|
44
|
+
amber: {
|
|
45
|
+
50: "#FFFBEB",
|
|
46
|
+
400: "#FFBF4C",
|
|
47
|
+
// Warning light
|
|
48
|
+
500: "#FFB020",
|
|
49
|
+
// Warning main
|
|
50
|
+
600: "#B27B16"},
|
|
51
|
+
// Sky/Blue scale (info)
|
|
52
|
+
sky: {
|
|
53
|
+
50: "#F0F9FF",
|
|
54
|
+
400: "#64B6F7",
|
|
55
|
+
// Info light
|
|
56
|
+
500: "#2196F3",
|
|
57
|
+
700: "#0B79D0"},
|
|
58
|
+
// Neutral/Gray scale
|
|
59
|
+
neutral: {
|
|
60
|
+
50: "#FAFAFA",
|
|
61
|
+
100: "#F3F4F6",
|
|
62
|
+
300: "#D1D5DB",
|
|
63
|
+
400: "#9CA3AF",
|
|
64
|
+
500: "#6B7280",
|
|
65
|
+
600: "#4B5563",
|
|
66
|
+
900: "#111827"},
|
|
67
|
+
// Orange scale (accent/brand color)
|
|
68
|
+
accent: {
|
|
69
|
+
200: "#FF9630",
|
|
70
|
+
300: "#FF8500",
|
|
71
|
+
400: "#FF7900",
|
|
72
|
+
500: "#F56C00",
|
|
73
|
+
600: "#E06D10",
|
|
74
|
+
700: "#D0620C"},
|
|
75
|
+
// Charcoal scale (dark backgrounds)
|
|
76
|
+
charcoal: {
|
|
77
|
+
300: "#2C2C2C",
|
|
78
|
+
400: "#1F1F1F",
|
|
79
|
+
500: "#1C1C1C",
|
|
80
|
+
600: "#191919",
|
|
81
|
+
700: "#161616",
|
|
82
|
+
900: "#101010"
|
|
83
|
+
},
|
|
84
|
+
// Steel scale (cool accent)
|
|
85
|
+
steel: {
|
|
86
|
+
300: "#678498",
|
|
87
|
+
400: "#557488",
|
|
88
|
+
500: "#406D87",
|
|
89
|
+
600: "#39617A",
|
|
90
|
+
700: "#32556D"},
|
|
91
|
+
// Pure colors
|
|
92
|
+
white: "#FFFFFF"};
|
|
93
|
+
var discreteRainbow = [
|
|
94
|
+
"#E8ECFB",
|
|
95
|
+
"#D9CCE3",
|
|
96
|
+
"#D1BBD7",
|
|
97
|
+
"#CAACCB",
|
|
98
|
+
"#BA8DB4",
|
|
99
|
+
"#AE76A3",
|
|
100
|
+
"#AA6F9E",
|
|
101
|
+
"#994F88",
|
|
102
|
+
"#882E72",
|
|
103
|
+
"#1965B0",
|
|
104
|
+
"#437DBF",
|
|
105
|
+
"#5289C7",
|
|
106
|
+
"#6195CF",
|
|
107
|
+
"#7BAFDE",
|
|
108
|
+
"#4EB265",
|
|
109
|
+
"#90C987",
|
|
110
|
+
"#CAE0AB",
|
|
111
|
+
"#F7F056",
|
|
112
|
+
"#F7CB45",
|
|
113
|
+
"#F6C141",
|
|
114
|
+
"#F4A736",
|
|
115
|
+
"#F1932D",
|
|
116
|
+
"#EE8026",
|
|
117
|
+
"#E8601C",
|
|
118
|
+
"#E65518",
|
|
119
|
+
"#DC050C",
|
|
120
|
+
"#A5170E",
|
|
121
|
+
"#72190E",
|
|
122
|
+
"#42150A"
|
|
123
|
+
];
|
|
124
|
+
|
|
125
|
+
// src/theme/tokens/semantic.ts
|
|
126
|
+
var semanticColorsLight = {
|
|
127
|
+
// Brand colors (brand-*)
|
|
128
|
+
"brand-primary": primitiveColors.accent[400],
|
|
129
|
+
// #FF7900
|
|
130
|
+
"brand-primary-light": primitiveColors.accent[200],
|
|
131
|
+
// #FF9630
|
|
132
|
+
"brand-primary-dark": primitiveColors.accent[700],
|
|
133
|
+
// #D0620C
|
|
134
|
+
"brand-primary-subtle": "rgba(255, 121, 0, 0.08)",
|
|
135
|
+
"brand-primary-hover": primitiveColors.accent[500],
|
|
136
|
+
"brand-primary-active": primitiveColors.accent[600],
|
|
137
|
+
"brand-secondary": primitiveColors.steel[500],
|
|
138
|
+
// #406D87
|
|
139
|
+
"brand-secondary-light": primitiveColors.steel[300],
|
|
140
|
+
// #678498
|
|
141
|
+
"brand-secondary-dark": primitiveColors.steel[700],
|
|
142
|
+
// #32556D
|
|
143
|
+
"brand-secondary-subtle": "rgba(64, 109, 135, 0.08)",
|
|
144
|
+
"brand-secondary-hover": primitiveColors.steel[600],
|
|
145
|
+
"brand-secondary-active": primitiveColors.steel[700],
|
|
146
|
+
// Text on brand backgrounds (on-*)
|
|
147
|
+
"on-brand-primary": primitiveColors.white,
|
|
148
|
+
"on-brand-secondary": primitiveColors.white,
|
|
149
|
+
// Status colors (status-*)
|
|
150
|
+
"status-success": primitiveColors.teal[500],
|
|
151
|
+
// #14B8A6
|
|
152
|
+
"status-success-light": primitiveColors.teal[400],
|
|
153
|
+
// #43C6B7
|
|
154
|
+
"status-success-dark": primitiveColors.teal[700],
|
|
155
|
+
// #0E8074
|
|
156
|
+
"status-success-subtle": primitiveColors.teal[50],
|
|
157
|
+
"status-error": primitiveColors.red[600],
|
|
158
|
+
// #D14343
|
|
159
|
+
"status-error-light": primitiveColors.red[400],
|
|
160
|
+
// #DA6868
|
|
161
|
+
"status-error-dark": primitiveColors.red[700],
|
|
162
|
+
// #922E2E
|
|
163
|
+
"status-error-subtle": primitiveColors.red[50],
|
|
164
|
+
"status-warning": primitiveColors.amber[500],
|
|
165
|
+
// #FFB020
|
|
166
|
+
"status-warning-light": primitiveColors.amber[400],
|
|
167
|
+
// #FFBF4C
|
|
168
|
+
"status-warning-dark": primitiveColors.amber[600],
|
|
169
|
+
// #B27B16
|
|
170
|
+
"status-warning-subtle": primitiveColors.amber[50],
|
|
171
|
+
"status-info": primitiveColors.sky[500],
|
|
172
|
+
// #2196F3
|
|
173
|
+
"status-info-light": primitiveColors.sky[400],
|
|
174
|
+
// #64B6F7
|
|
175
|
+
"status-info-dark": primitiveColors.sky[700],
|
|
176
|
+
// #0B79D0
|
|
177
|
+
"status-info-subtle": primitiveColors.sky[50],
|
|
178
|
+
// Text on status backgrounds (on-status-*)
|
|
179
|
+
"on-status-success": primitiveColors.white,
|
|
180
|
+
"on-status-error": primitiveColors.white,
|
|
181
|
+
"on-status-warning": primitiveColors.white,
|
|
182
|
+
"on-status-info": primitiveColors.white,
|
|
183
|
+
// Result/outcome indicators (result-*)
|
|
184
|
+
"result-improve": "#4caf50",
|
|
185
|
+
// Green - positive outcome
|
|
186
|
+
"result-improve-light": "rgba(76, 175, 80, 0.12)",
|
|
187
|
+
"result-improve-dark": "#248a24",
|
|
188
|
+
"result-degrade": "#ef5350",
|
|
189
|
+
// Red - negative outcome
|
|
190
|
+
"result-degrade-light": "rgba(239, 83, 80, 0.12)",
|
|
191
|
+
"result-degrade-dark": "#b30000",
|
|
192
|
+
"result-inconclusive": "#9E9A97",
|
|
193
|
+
// Gray - no clear result
|
|
194
|
+
"result-inconclusive-light": "rgba(158, 154, 151, 0.12)",
|
|
195
|
+
"result-neutral": primitiveColors.neutral[500],
|
|
196
|
+
// Neutral baseline
|
|
197
|
+
// Text on result backgrounds (on-result-*)
|
|
198
|
+
"on-result-improve": primitiveColors.white,
|
|
199
|
+
"on-result-degrade": primitiveColors.white,
|
|
200
|
+
"on-result-inconclusive": primitiveColors.white,
|
|
201
|
+
// Data visualization colors (data-*)
|
|
202
|
+
// First 10 colors from discrete rainbow optimized for charts
|
|
203
|
+
"data-1": discreteRainbow[9],
|
|
204
|
+
// #1965B0 - Blue
|
|
205
|
+
"data-2": discreteRainbow[14],
|
|
206
|
+
// #4EB265 - Green
|
|
207
|
+
"data-3": discreteRainbow[17],
|
|
208
|
+
// #F7F056 - Yellow
|
|
209
|
+
"data-4": discreteRainbow[25],
|
|
210
|
+
// #DC050C - Red
|
|
211
|
+
"data-5": discreteRainbow[8],
|
|
212
|
+
// #882E72 - Purple
|
|
213
|
+
"data-6": discreteRainbow[20],
|
|
214
|
+
// #F4A736 - Orange
|
|
215
|
+
"data-7": discreteRainbow[13],
|
|
216
|
+
// #7BAFDE - Light Blue
|
|
217
|
+
"data-8": discreteRainbow[15],
|
|
218
|
+
// #90C987 - Light Green
|
|
219
|
+
"data-9": discreteRainbow[3],
|
|
220
|
+
// #CAACCB - Lavender
|
|
221
|
+
"data-10": discreteRainbow[22],
|
|
222
|
+
// #EE8026 - Dark Orange
|
|
223
|
+
// Text colors (text-*)
|
|
224
|
+
"text-primary": "#121828",
|
|
225
|
+
"text-secondary": "#65748B",
|
|
226
|
+
"text-tertiary": primitiveColors.neutral[400],
|
|
227
|
+
"text-disabled": "rgba(55, 65, 81, 0.48)",
|
|
228
|
+
"text-inverse": primitiveColors.white,
|
|
229
|
+
"text-link": primitiveColors.blue[600],
|
|
230
|
+
"text-link-hover": primitiveColors.blue[700],
|
|
231
|
+
// Surface colors (surface-*) - for elevated containers
|
|
232
|
+
"surface-base": primitiveColors.white,
|
|
233
|
+
"surface-elevated": primitiveColors.neutral[50],
|
|
234
|
+
// #FAFAFA - slightly off-white for elevated cards
|
|
235
|
+
"surface-raised": primitiveColors.neutral[100],
|
|
236
|
+
// #F3F4F6 - light gray for raised cards
|
|
237
|
+
"surface-overlay": primitiveColors.white,
|
|
238
|
+
"surface-input": primitiveColors.neutral[50],
|
|
239
|
+
// Input field background (filled variant)
|
|
240
|
+
// Background colors (background-*)
|
|
241
|
+
"background-base": "#EBEBEB",
|
|
242
|
+
"background-default": primitiveColors.white,
|
|
243
|
+
"background-subtle": primitiveColors.neutral[50],
|
|
244
|
+
// Border colors (border-*)
|
|
245
|
+
"border-default": "#E8E9EB",
|
|
246
|
+
"border-subtle": primitiveColors.neutral[100],
|
|
247
|
+
"border-strong": primitiveColors.neutral[300],
|
|
248
|
+
"border-focus": primitiveColors.blue[600],
|
|
249
|
+
"border-input": primitiveColors.neutral[300],
|
|
250
|
+
// Input field border
|
|
251
|
+
"border-input-hover": primitiveColors.neutral[400],
|
|
252
|
+
// Input field border on hover
|
|
253
|
+
"border-input-focus": primitiveColors.blue[600],
|
|
254
|
+
// Input field border on focus
|
|
255
|
+
"border-input-error": primitiveColors.red[600],
|
|
256
|
+
// Input field border on error
|
|
257
|
+
// Interactive states (interactive-*)
|
|
258
|
+
"interactive-hover": "rgba(55, 65, 81, 0.04)",
|
|
259
|
+
"interactive-focus": "rgba(55, 65, 81, 0.12)",
|
|
260
|
+
"interactive-active": "rgba(55, 65, 81, 0.16)",
|
|
261
|
+
"interactive-selected": "rgba(55, 65, 81, 0.08)",
|
|
262
|
+
"interactive-disabled": "rgba(55, 65, 81, 0.12)",
|
|
263
|
+
"interactive-disabled-text": "rgba(55, 65, 81, 0.26)",
|
|
264
|
+
// Divider
|
|
265
|
+
"divider": "#E8E9EB",
|
|
266
|
+
// Avatar default
|
|
267
|
+
"avatar-background": primitiveColors.neutral[500],
|
|
268
|
+
"avatar-text": primitiveColors.white
|
|
269
|
+
};
|
|
270
|
+
var semanticColorsDark = {
|
|
271
|
+
// Brand colors stay the same in dark mode
|
|
272
|
+
"brand-primary": primitiveColors.accent[400],
|
|
273
|
+
"brand-primary-light": primitiveColors.accent[200],
|
|
274
|
+
"brand-primary-dark": primitiveColors.accent[700],
|
|
275
|
+
"brand-primary-subtle": "rgba(255, 121, 0, 0.12)",
|
|
276
|
+
"brand-primary-hover": primitiveColors.accent[300],
|
|
277
|
+
"brand-primary-active": primitiveColors.accent[200],
|
|
278
|
+
"brand-secondary": primitiveColors.steel[500],
|
|
279
|
+
"brand-secondary-light": primitiveColors.steel[300],
|
|
280
|
+
"brand-secondary-dark": primitiveColors.steel[700],
|
|
281
|
+
"brand-secondary-subtle": "rgba(64, 109, 135, 0.12)",
|
|
282
|
+
"brand-secondary-hover": primitiveColors.steel[400],
|
|
283
|
+
"brand-secondary-active": primitiveColors.steel[300],
|
|
284
|
+
// Text on brand backgrounds
|
|
285
|
+
"on-brand-primary": primitiveColors.white,
|
|
286
|
+
"on-brand-secondary": primitiveColors.white,
|
|
287
|
+
// Status colors
|
|
288
|
+
"status-success": primitiveColors.teal[500],
|
|
289
|
+
"status-success-light": primitiveColors.teal[400],
|
|
290
|
+
"status-success-dark": primitiveColors.teal[700],
|
|
291
|
+
"status-success-subtle": "rgba(20, 184, 166, 0.12)",
|
|
292
|
+
"status-error": primitiveColors.red[600],
|
|
293
|
+
"status-error-light": primitiveColors.red[400],
|
|
294
|
+
"status-error-dark": primitiveColors.red[700],
|
|
295
|
+
"status-error-subtle": "rgba(209, 67, 67, 0.12)",
|
|
296
|
+
"status-warning": primitiveColors.amber[500],
|
|
297
|
+
"status-warning-light": primitiveColors.amber[400],
|
|
298
|
+
"status-warning-dark": primitiveColors.amber[600],
|
|
299
|
+
"status-warning-subtle": "rgba(255, 176, 32, 0.12)",
|
|
300
|
+
"status-info": primitiveColors.sky[500],
|
|
301
|
+
"status-info-light": primitiveColors.sky[400],
|
|
302
|
+
"status-info-dark": primitiveColors.sky[700],
|
|
303
|
+
"status-info-subtle": "rgba(33, 150, 243, 0.12)",
|
|
304
|
+
// Text on status backgrounds
|
|
305
|
+
"on-status-success": primitiveColors.white,
|
|
306
|
+
"on-status-error": primitiveColors.white,
|
|
307
|
+
"on-status-warning": primitiveColors.white,
|
|
308
|
+
"on-status-info": primitiveColors.white,
|
|
309
|
+
// Result/outcome indicators (result-*)
|
|
310
|
+
"result-improve": "#4caf50",
|
|
311
|
+
"result-improve-light": "rgba(76, 175, 80, 0.16)",
|
|
312
|
+
"result-improve-dark": "#248a24",
|
|
313
|
+
"result-degrade": "#ef5350",
|
|
314
|
+
"result-degrade-light": "rgba(239, 83, 80, 0.16)",
|
|
315
|
+
"result-degrade-dark": "#b30000",
|
|
316
|
+
"result-inconclusive": "#9E9A97",
|
|
317
|
+
"result-inconclusive-light": "rgba(158, 154, 151, 0.16)",
|
|
318
|
+
"result-neutral": primitiveColors.neutral[400],
|
|
319
|
+
// Text on result backgrounds
|
|
320
|
+
"on-result-improve": primitiveColors.white,
|
|
321
|
+
"on-result-degrade": primitiveColors.white,
|
|
322
|
+
"on-result-inconclusive": primitiveColors.white,
|
|
323
|
+
// Data visualization colors (same in dark mode for consistency)
|
|
324
|
+
"data-1": discreteRainbow[9],
|
|
325
|
+
"data-2": discreteRainbow[14],
|
|
326
|
+
"data-3": discreteRainbow[17],
|
|
327
|
+
"data-4": discreteRainbow[25],
|
|
328
|
+
"data-5": discreteRainbow[8],
|
|
329
|
+
"data-6": discreteRainbow[20],
|
|
330
|
+
"data-7": discreteRainbow[13],
|
|
331
|
+
"data-8": discreteRainbow[15],
|
|
332
|
+
"data-9": discreteRainbow[3],
|
|
333
|
+
"data-10": discreteRainbow[22],
|
|
334
|
+
// Text colors - inverted for dark mode
|
|
335
|
+
"text-primary": primitiveColors.neutral[100],
|
|
336
|
+
"text-secondary": primitiveColors.neutral[400],
|
|
337
|
+
"text-tertiary": primitiveColors.neutral[500],
|
|
338
|
+
"text-disabled": "rgba(255, 255, 255, 0.38)",
|
|
339
|
+
"text-inverse": primitiveColors.neutral[900],
|
|
340
|
+
"text-link": "#828DF8",
|
|
341
|
+
"text-link-hover": primitiveColors.blue[400],
|
|
342
|
+
// Surface colors - dark backgrounds
|
|
343
|
+
"surface-base": primitiveColors.charcoal[700],
|
|
344
|
+
// #161616 - main surface
|
|
345
|
+
"surface-elevated": primitiveColors.charcoal[600],
|
|
346
|
+
// #191919 - elevated surface
|
|
347
|
+
"surface-raised": primitiveColors.charcoal[500],
|
|
348
|
+
// #1C1C1C - raised surface
|
|
349
|
+
"surface-overlay": primitiveColors.charcoal[600],
|
|
350
|
+
// #191919 - overlay surface
|
|
351
|
+
"surface-input": primitiveColors.charcoal[600],
|
|
352
|
+
// #191919 - input surface
|
|
353
|
+
// Background colors
|
|
354
|
+
"background-base": primitiveColors.charcoal[900],
|
|
355
|
+
// #101010 - darkest charcoal
|
|
356
|
+
"background-default": primitiveColors.charcoal[700],
|
|
357
|
+
// #161616 - main background
|
|
358
|
+
"background-subtle": primitiveColors.charcoal[500],
|
|
359
|
+
// #1C1C1C - subtle background
|
|
360
|
+
// Border colors
|
|
361
|
+
"border-default": primitiveColors.charcoal[400],
|
|
362
|
+
// #1F1F1F - default border
|
|
363
|
+
"border-subtle": primitiveColors.charcoal[500],
|
|
364
|
+
// #1C1C1C - subtle border
|
|
365
|
+
"border-strong": primitiveColors.charcoal[300],
|
|
366
|
+
// #2C2C2C - strong border
|
|
367
|
+
"border-focus": "#828DF8",
|
|
368
|
+
"border-input": primitiveColors.neutral[600],
|
|
369
|
+
"border-input-hover": primitiveColors.neutral[500],
|
|
370
|
+
"border-input-focus": "#828DF8",
|
|
371
|
+
"border-input-error": primitiveColors.red[500],
|
|
372
|
+
// Interactive states
|
|
373
|
+
"interactive-hover": "rgba(255, 255, 255, 0.04)",
|
|
374
|
+
"interactive-focus": "rgba(255, 255, 255, 0.12)",
|
|
375
|
+
"interactive-active": "rgba(255, 255, 255, 0.16)",
|
|
376
|
+
"interactive-selected": "rgba(255, 255, 255, 0.08)",
|
|
377
|
+
"interactive-disabled": "rgba(255, 255, 255, 0.12)",
|
|
378
|
+
"interactive-disabled-text": "rgba(255, 255, 255, 0.26)",
|
|
379
|
+
// Divider
|
|
380
|
+
"divider": primitiveColors.charcoal[400],
|
|
381
|
+
// #1F1F1F - divider color
|
|
382
|
+
// Avatar default
|
|
383
|
+
"avatar-background": primitiveColors.neutral[600],
|
|
384
|
+
"avatar-text": primitiveColors.white
|
|
385
|
+
};
|
|
386
|
+
function getSemanticColors(mode) {
|
|
387
|
+
return mode === "dark" ? semanticColorsDark : semanticColorsLight;
|
|
388
|
+
}
|
|
389
|
+
|
|
390
|
+
// src/theme/resolve-color.ts
|
|
391
|
+
function resolveColor(token, mode = "dark") {
|
|
392
|
+
return reactNative.Platform.OS === "web" ? `var(--color-${token})` : getSemanticColors(mode)[token];
|
|
393
|
+
}
|
|
394
|
+
|
|
19
395
|
// src/theme/workout-tokens.ts
|
|
20
396
|
var WORKOUT_TOKENS = {
|
|
21
397
|
// BodyMap volume heatmap scale (drive dynamic SVG fills, so inline values).
|
|
@@ -241,8 +617,6 @@ var Body = BodyHighlighter__default.default.default ?? BodyHighlighter__default.
|
|
|
241
617
|
var OUTLINE_FILL = "rgba(255,255,255,0.08)";
|
|
242
618
|
var OUTLINE_BORDER = "rgba(255,255,255,0.12)";
|
|
243
619
|
var BODY_SCALE = 0.8;
|
|
244
|
-
var TEXT_PRIMARY = "var(--color-text-primary)";
|
|
245
|
-
var TEXT_SECONDARY = "var(--color-text-secondary)";
|
|
246
620
|
function buildSlugParts(data) {
|
|
247
621
|
const bySlug = /* @__PURE__ */ new Map();
|
|
248
622
|
for (const d of data) {
|
|
@@ -366,10 +740,10 @@ function BodyMap({
|
|
|
366
740
|
legend.length === 0 ? /* @__PURE__ */ jsx(
|
|
367
741
|
reactNative.Text,
|
|
368
742
|
{
|
|
743
|
+
className: "text-text-secondary",
|
|
369
744
|
style: {
|
|
370
745
|
marginTop: 8,
|
|
371
746
|
fontSize: 12,
|
|
372
|
-
color: TEXT_SECONDARY,
|
|
373
747
|
textAlign: "center",
|
|
374
748
|
fontFamily: "Inter, sans-serif"
|
|
375
749
|
},
|
|
@@ -418,7 +792,7 @@ function ViewToggle({ view, onViewChange }) {
|
|
|
418
792
|
borderRadius: 9999,
|
|
419
793
|
backgroundColor: active ? "rgba(255,121,0,0.16)" : "transparent",
|
|
420
794
|
borderWidth: 1,
|
|
421
|
-
borderColor: active ? "#FF7900" : "
|
|
795
|
+
borderColor: active ? "#FF7900" : resolveColor("border-strong")
|
|
422
796
|
},
|
|
423
797
|
testID: `body-map-toggle-${side}`,
|
|
424
798
|
children: /* @__PURE__ */ jsx(
|
|
@@ -428,7 +802,7 @@ function ViewToggle({ view, onViewChange }) {
|
|
|
428
802
|
fontSize: 12,
|
|
429
803
|
fontFamily: "Inter, sans-serif",
|
|
430
804
|
fontWeight: active ? "700" : "500",
|
|
431
|
-
color: active ? "#FF7900" :
|
|
805
|
+
color: active ? "#FF7900" : resolveColor("text-secondary"),
|
|
432
806
|
textTransform: "capitalize"
|
|
433
807
|
},
|
|
434
808
|
children: side
|
|
@@ -451,6 +825,7 @@ function MuscleButton({ entry, highlighted, onMusclePress }) {
|
|
|
451
825
|
accessibilityRole: "button",
|
|
452
826
|
accessibilityLabel: label,
|
|
453
827
|
"aria-pressed": highlighted,
|
|
828
|
+
className: "bg-surface-raised",
|
|
454
829
|
style: {
|
|
455
830
|
flexDirection: "row",
|
|
456
831
|
alignItems: "center",
|
|
@@ -459,8 +834,7 @@ function MuscleButton({ entry, highlighted, onMusclePress }) {
|
|
|
459
834
|
paddingVertical: 3,
|
|
460
835
|
borderRadius: 9999,
|
|
461
836
|
borderWidth: 1,
|
|
462
|
-
borderColor: highlighted ? "#FF7900" : "
|
|
463
|
-
backgroundColor: "var(--color-surface-raised)"
|
|
837
|
+
borderColor: highlighted ? "#FF7900" : resolveColor("border-default")
|
|
464
838
|
},
|
|
465
839
|
testID: `body-map-muscle-${entry.key}`,
|
|
466
840
|
children: [
|
|
@@ -475,11 +849,11 @@ function MuscleButton({ entry, highlighted, onMusclePress }) {
|
|
|
475
849
|
/* @__PURE__ */ jsx(
|
|
476
850
|
reactNative.Text,
|
|
477
851
|
{
|
|
852
|
+
className: "text-text-primary",
|
|
478
853
|
style: {
|
|
479
854
|
fontSize: 11,
|
|
480
855
|
fontFamily: "Inter, sans-serif",
|
|
481
|
-
fontWeight: "500"
|
|
482
|
-
color: TEXT_PRIMARY
|
|
856
|
+
fontWeight: "500"
|
|
483
857
|
},
|
|
484
858
|
accessibilityElementsHidden: true,
|
|
485
859
|
children: entry.name
|
|
@@ -761,14 +1135,7 @@ function Sparkline({
|
|
|
761
1135
|
}
|
|
762
1136
|
|
|
763
1137
|
// src/components/custom/Workout/BodyMapDetailPanel.tsx
|
|
764
|
-
var SURFACE_ELEVATED = "var(--color-surface-elevated)";
|
|
765
|
-
var SURFACE_RAISED = "var(--color-surface-raised)";
|
|
766
|
-
var BORDER_STRONG = "var(--color-border-strong)";
|
|
767
|
-
var BORDER_DEFAULT = "var(--color-border-default)";
|
|
768
1138
|
var BRAND_PRIMARY2 = "#FF7900";
|
|
769
|
-
var TEXT_PRIMARY2 = "var(--color-text-primary)";
|
|
770
|
-
var TEXT_SECONDARY2 = "var(--color-text-secondary)";
|
|
771
|
-
var TEXT_TERTIARY = "var(--color-text-tertiary)";
|
|
772
1139
|
var VOLUME_GRADIENT = "linear-gradient(90deg, #2196F3 0%, #14B8A6 50%, #D14343 100%)";
|
|
773
1140
|
var SLIDE_OFFSET = 400;
|
|
774
1141
|
var BACKDROP_OPACITY = 0.4;
|
|
@@ -868,8 +1235,8 @@ function BodyMapDetailPanel({
|
|
|
868
1235
|
accessibilityRole: "dialog",
|
|
869
1236
|
accessibilityLabel: dialogLabel,
|
|
870
1237
|
"aria-label": dialogLabel,
|
|
1238
|
+
className: "bg-surface-elevated",
|
|
871
1239
|
style: {
|
|
872
|
-
backgroundColor: SURFACE_ELEVATED,
|
|
873
1240
|
borderTopLeftRadius: 16,
|
|
874
1241
|
borderTopRightRadius: 16,
|
|
875
1242
|
maxHeight: "88%",
|
|
@@ -890,7 +1257,8 @@ function BodyMapDetailPanel({
|
|
|
890
1257
|
children: /* @__PURE__ */ jsx(
|
|
891
1258
|
reactNative.View,
|
|
892
1259
|
{
|
|
893
|
-
|
|
1260
|
+
className: "bg-border-strong",
|
|
1261
|
+
style: { width: 40, height: 4, borderRadius: 2 },
|
|
894
1262
|
accessibilityElementsHidden: true
|
|
895
1263
|
}
|
|
896
1264
|
)
|
|
@@ -915,11 +1283,11 @@ function BodyMapDetailPanel({
|
|
|
915
1283
|
reactNative.Text,
|
|
916
1284
|
{
|
|
917
1285
|
accessibilityRole: "header",
|
|
1286
|
+
className: "text-text-primary",
|
|
918
1287
|
style: {
|
|
919
1288
|
fontSize: 16,
|
|
920
1289
|
fontFamily: '"Space Grotesk", sans-serif',
|
|
921
|
-
fontWeight: "700"
|
|
922
|
-
color: TEXT_PRIMARY2
|
|
1290
|
+
fontWeight: "700"
|
|
923
1291
|
},
|
|
924
1292
|
testID: "body-map-detail-panel-title",
|
|
925
1293
|
children: displayName
|
|
@@ -945,7 +1313,7 @@ function BodyMapDetailPanel({
|
|
|
945
1313
|
hitSlop: 8,
|
|
946
1314
|
style: { padding: 4, margin: -4 },
|
|
947
1315
|
testID: "body-map-detail-panel-close",
|
|
948
|
-
children: /* @__PURE__ */ jsx(reactNative.Text, { style: { fontSize: 22, lineHeight: 22
|
|
1316
|
+
children: /* @__PURE__ */ jsx(reactNative.Text, { className: "text-text-secondary", style: { fontSize: 22, lineHeight: 22 }, children: "\xD7" })
|
|
949
1317
|
}
|
|
950
1318
|
)
|
|
951
1319
|
]
|
|
@@ -954,7 +1322,8 @@ function BodyMapDetailPanel({
|
|
|
954
1322
|
lastTrained != null && /* @__PURE__ */ jsx(
|
|
955
1323
|
reactNative.Text,
|
|
956
1324
|
{
|
|
957
|
-
|
|
1325
|
+
className: "text-text-secondary",
|
|
1326
|
+
style: { fontSize: 12, fontFamily: "Inter, sans-serif" },
|
|
958
1327
|
testID: "body-map-detail-panel-last-trained",
|
|
959
1328
|
children: `Last trained ${lastTrained}`
|
|
960
1329
|
}
|
|
@@ -967,8 +1336,8 @@ function BodyMapDetailPanel({
|
|
|
967
1336
|
style: { marginBottom: 6 },
|
|
968
1337
|
accessibilityElementsHidden: true,
|
|
969
1338
|
children: [
|
|
970
|
-
/* @__PURE__ */ jsx(reactNative.Text, { style: { fontSize: 10, fontFamily: "Inter, sans-serif", fontWeight: "600"
|
|
971
|
-
/* @__PURE__ */ jsx(reactNative.Text, { style: { fontSize: 10, fontFamily: "Inter, sans-serif", fontWeight: "600"
|
|
1339
|
+
/* @__PURE__ */ jsx(reactNative.Text, { className: "text-text-tertiary", style: { fontSize: 10, fontFamily: "Inter, sans-serif", fontWeight: "600" }, children: `MEV ${landmarks.mev}` }),
|
|
1340
|
+
/* @__PURE__ */ jsx(reactNative.Text, { className: "text-text-tertiary", style: { fontSize: 10, fontFamily: "Inter, sans-serif", fontWeight: "600" }, children: `MRV ${landmarks.mrv}` })
|
|
972
1341
|
]
|
|
973
1342
|
}
|
|
974
1343
|
),
|
|
@@ -994,6 +1363,7 @@ function BodyMapDetailPanel({
|
|
|
994
1363
|
/* @__PURE__ */ jsx(
|
|
995
1364
|
reactNative.View,
|
|
996
1365
|
{
|
|
1366
|
+
className: "border-text-primary bg-surface-elevated",
|
|
997
1367
|
style: {
|
|
998
1368
|
position: "absolute",
|
|
999
1369
|
left: `${markerLeft}%`,
|
|
@@ -1002,8 +1372,6 @@ function BodyMapDetailPanel({
|
|
|
1002
1372
|
height: 14,
|
|
1003
1373
|
borderRadius: 7,
|
|
1004
1374
|
borderWidth: 2,
|
|
1005
|
-
borderColor: TEXT_PRIMARY2,
|
|
1006
|
-
backgroundColor: SURFACE_ELEVATED,
|
|
1007
1375
|
boxShadow: "0 0 4px rgba(0,0,0,0.5)"
|
|
1008
1376
|
},
|
|
1009
1377
|
accessibilityElementsHidden: true,
|
|
@@ -1018,11 +1386,11 @@ function BodyMapDetailPanel({
|
|
|
1018
1386
|
/* @__PURE__ */ jsx(
|
|
1019
1387
|
reactNative.Text,
|
|
1020
1388
|
{
|
|
1389
|
+
className: "text-text-primary",
|
|
1021
1390
|
style: {
|
|
1022
1391
|
fontSize: 24,
|
|
1023
1392
|
fontFamily: '"Space Grotesk", sans-serif',
|
|
1024
|
-
fontWeight: "700"
|
|
1025
|
-
color: TEXT_PRIMARY2
|
|
1393
|
+
fontWeight: "700"
|
|
1026
1394
|
},
|
|
1027
1395
|
testID: "body-map-detail-panel-set-count",
|
|
1028
1396
|
children: weeklySets
|
|
@@ -1031,7 +1399,8 @@ function BodyMapDetailPanel({
|
|
|
1031
1399
|
/* @__PURE__ */ jsx(
|
|
1032
1400
|
reactNative.Text,
|
|
1033
1401
|
{
|
|
1034
|
-
|
|
1402
|
+
className: "text-text-secondary",
|
|
1403
|
+
style: { fontSize: 12, fontFamily: "Inter, sans-serif" },
|
|
1035
1404
|
testID: "body-map-detail-panel-mrv-suffix",
|
|
1036
1405
|
children: `/ ${landmarks.mrv} MRV`
|
|
1037
1406
|
}
|
|
@@ -1041,11 +1410,11 @@ function BodyMapDetailPanel({
|
|
|
1041
1410
|
/* @__PURE__ */ jsx(
|
|
1042
1411
|
reactNative.Text,
|
|
1043
1412
|
{
|
|
1413
|
+
className: "text-text-tertiary",
|
|
1044
1414
|
style: {
|
|
1045
1415
|
fontSize: 10,
|
|
1046
1416
|
fontFamily: "Inter, sans-serif",
|
|
1047
1417
|
fontWeight: "600",
|
|
1048
|
-
color: TEXT_TERTIARY,
|
|
1049
1418
|
marginBottom: 6
|
|
1050
1419
|
},
|
|
1051
1420
|
accessibilityElementsHidden: true,
|
|
@@ -1058,11 +1427,11 @@ function BodyMapDetailPanel({
|
|
|
1058
1427
|
/* @__PURE__ */ jsx(
|
|
1059
1428
|
reactNative.Text,
|
|
1060
1429
|
{
|
|
1430
|
+
className: "text-text-tertiary",
|
|
1061
1431
|
style: {
|
|
1062
1432
|
fontSize: 10,
|
|
1063
1433
|
fontFamily: "Inter, sans-serif",
|
|
1064
1434
|
fontWeight: "600",
|
|
1065
|
-
color: TEXT_TERTIARY,
|
|
1066
1435
|
marginBottom: 8
|
|
1067
1436
|
},
|
|
1068
1437
|
children: "CONTRIBUTING EXERCISES"
|
|
@@ -1071,23 +1440,22 @@ function BodyMapDetailPanel({
|
|
|
1071
1440
|
contributingExercises.map((exercise, index) => /* @__PURE__ */ jsxs(
|
|
1072
1441
|
reactNative.View,
|
|
1073
1442
|
{
|
|
1074
|
-
className: "flex-row items-center justify-between",
|
|
1443
|
+
className: "flex-row items-center justify-between bg-surface-raised border-border",
|
|
1075
1444
|
style: {
|
|
1076
1445
|
gap: 10,
|
|
1077
1446
|
paddingVertical: 8,
|
|
1078
1447
|
paddingHorizontal: 12,
|
|
1079
1448
|
marginBottom: 6,
|
|
1080
1449
|
borderRadius: 8,
|
|
1081
|
-
|
|
1082
|
-
borderWidth: 1,
|
|
1083
|
-
borderColor: BORDER_DEFAULT
|
|
1450
|
+
borderWidth: 1
|
|
1084
1451
|
},
|
|
1085
1452
|
testID: `body-map-detail-panel-contributing-${index}`,
|
|
1086
1453
|
children: [
|
|
1087
1454
|
/* @__PURE__ */ jsx(
|
|
1088
1455
|
reactNative.Text,
|
|
1089
1456
|
{
|
|
1090
|
-
|
|
1457
|
+
className: "text-text-primary",
|
|
1458
|
+
style: { flex: 1, fontSize: 13, fontFamily: "Inter, sans-serif", fontWeight: "600" },
|
|
1091
1459
|
testID: `body-map-detail-panel-contributing-${index}-name`,
|
|
1092
1460
|
children: exercise.name
|
|
1093
1461
|
}
|
|
@@ -1095,7 +1463,8 @@ function BodyMapDetailPanel({
|
|
|
1095
1463
|
/* @__PURE__ */ jsx(
|
|
1096
1464
|
reactNative.Text,
|
|
1097
1465
|
{
|
|
1098
|
-
|
|
1466
|
+
className: "text-text-secondary",
|
|
1467
|
+
style: { fontSize: 12, fontFamily: "Inter, sans-serif" },
|
|
1099
1468
|
testID: `body-map-detail-panel-contributing-${index}-detail`,
|
|
1100
1469
|
children: `${exercise.sets} sets \xB7 ${Math.round(exercise.contributionWeight * 100)}%`
|
|
1101
1470
|
}
|
|
@@ -1109,11 +1478,11 @@ function BodyMapDetailPanel({
|
|
|
1109
1478
|
/* @__PURE__ */ jsx(
|
|
1110
1479
|
reactNative.Text,
|
|
1111
1480
|
{
|
|
1481
|
+
className: "text-text-tertiary",
|
|
1112
1482
|
style: {
|
|
1113
1483
|
fontSize: 10,
|
|
1114
1484
|
fontFamily: "Inter, sans-serif",
|
|
1115
1485
|
fontWeight: "600",
|
|
1116
|
-
color: TEXT_TERTIARY,
|
|
1117
1486
|
marginBottom: 8
|
|
1118
1487
|
},
|
|
1119
1488
|
children: "UPCOMING"
|
|
@@ -1129,7 +1498,8 @@ function BodyMapDetailPanel({
|
|
|
1129
1498
|
/* @__PURE__ */ jsx(
|
|
1130
1499
|
reactNative.Text,
|
|
1131
1500
|
{
|
|
1132
|
-
|
|
1501
|
+
className: "text-text-primary",
|
|
1502
|
+
style: { flex: 1, fontSize: 13, fontFamily: "Inter, sans-serif", fontWeight: "600" },
|
|
1133
1503
|
testID: `body-map-detail-panel-upcoming-${index}-name`,
|
|
1134
1504
|
children: exercise.name
|
|
1135
1505
|
}
|
|
@@ -1137,7 +1507,8 @@ function BodyMapDetailPanel({
|
|
|
1137
1507
|
/* @__PURE__ */ jsx(
|
|
1138
1508
|
reactNative.Text,
|
|
1139
1509
|
{
|
|
1140
|
-
|
|
1510
|
+
className: "text-text-tertiary",
|
|
1511
|
+
style: { fontSize: 12, fontFamily: "Inter, sans-serif" },
|
|
1141
1512
|
testID: `body-map-detail-panel-upcoming-${index}-detail`,
|
|
1142
1513
|
children: `${exercise.workoutName} \xB7 ${exercise.sets} sets`
|
|
1143
1514
|
}
|
|
@@ -1176,23 +1547,6 @@ function BodyMapDetailPanel({
|
|
|
1176
1547
|
}
|
|
1177
1548
|
);
|
|
1178
1549
|
}
|
|
1179
|
-
|
|
1180
|
-
// src/theme/tokens/primitives.ts
|
|
1181
|
-
var primitiveColors = {
|
|
1182
|
-
// Neutral/Gray scale
|
|
1183
|
-
neutral: {
|
|
1184
|
-
100: "#F3F4F6"},
|
|
1185
|
-
// Charcoal scale (dark backgrounds)
|
|
1186
|
-
charcoal: {
|
|
1187
|
-
600: "#191919"}};
|
|
1188
|
-
|
|
1189
|
-
// src/theme/tokens/semantic.ts
|
|
1190
|
-
var semanticColorsLight = {
|
|
1191
|
-
// #FAFAFA - slightly off-white for elevated cards
|
|
1192
|
-
"surface-raised": primitiveColors.neutral[100]};
|
|
1193
|
-
var semanticColorsDark = {
|
|
1194
|
-
// #161616 - main surface
|
|
1195
|
-
"surface-elevated": primitiveColors.charcoal[600]};
|
|
1196
1550
|
function hexToRgb(hex) {
|
|
1197
1551
|
const cleaned = hex.replace("#", "");
|
|
1198
1552
|
let r, g, b;
|
|
@@ -2048,14 +2402,11 @@ function StatusDot({
|
|
|
2048
2402
|
var BRAND_PRIMARY3 = "#FF7900";
|
|
2049
2403
|
var BRAND_PRIMARY_DARK = "#C45E00";
|
|
2050
2404
|
var BRAND_PRIMARY_LIGHT = "#FFB066";
|
|
2051
|
-
var TEXT_PRIMARY3 = "var(--color-text-primary)";
|
|
2052
|
-
var TEXT_SECONDARY3 = "var(--color-text-secondary)";
|
|
2053
|
-
var TEXT_TERTIARY2 = "var(--color-text-tertiary)";
|
|
2054
2405
|
var SUCCESS = "#14B8A6";
|
|
2055
2406
|
var WARNING = "#FFB020";
|
|
2056
2407
|
var ERROR = "#D14343";
|
|
2057
2408
|
var ACCENT_STOPS = [BRAND_PRIMARY_DARK, BRAND_PRIMARY3, BRAND_PRIMARY_LIGHT];
|
|
2058
|
-
var CARD_GRADIENT =
|
|
2409
|
+
var CARD_GRADIENT = `linear-gradient(135deg, ${resolveColor("surface-elevated")} 0%, ${resolveColor("surface-raised")} 100%)`;
|
|
2059
2410
|
var GAUGE_GRADIENT = "linear-gradient(90deg, rgba(20,184,166,0.25) 0%, rgba(255,176,32,0.25) 50%, rgba(209,67,67,0.25) 100%)";
|
|
2060
2411
|
var STATUS_VARIANTS = {
|
|
2061
2412
|
success: { bg: "rgba(20,184,166,0.15)", border: "rgba(20,184,166,0.3)", text: SUCCESS },
|
|
@@ -2082,7 +2433,8 @@ function renderCoachingText(text, highlights) {
|
|
|
2082
2433
|
(part, index) => highlights.includes(part) ? /* @__PURE__ */ jsx(
|
|
2083
2434
|
reactNative.Text,
|
|
2084
2435
|
{
|
|
2085
|
-
|
|
2436
|
+
className: "text-text-primary",
|
|
2437
|
+
style: { fontWeight: "700" },
|
|
2086
2438
|
children: part
|
|
2087
2439
|
},
|
|
2088
2440
|
`${part}-${index}`
|
|
@@ -2129,13 +2481,13 @@ function MetricCell({ metric }) {
|
|
|
2129
2481
|
/* @__PURE__ */ jsx(
|
|
2130
2482
|
reactNative.Text,
|
|
2131
2483
|
{
|
|
2484
|
+
className: "text-text-tertiary",
|
|
2132
2485
|
style: {
|
|
2133
2486
|
fontSize: 10,
|
|
2134
2487
|
fontFamily: "Inter, sans-serif",
|
|
2135
2488
|
fontWeight: "600",
|
|
2136
2489
|
letterSpacing: 0.5,
|
|
2137
|
-
textTransform: "uppercase"
|
|
2138
|
-
color: TEXT_TERTIARY2
|
|
2490
|
+
textTransform: "uppercase"
|
|
2139
2491
|
},
|
|
2140
2492
|
children: metric.label
|
|
2141
2493
|
}
|
|
@@ -2143,12 +2495,12 @@ function MetricCell({ metric }) {
|
|
|
2143
2495
|
/* @__PURE__ */ jsx(
|
|
2144
2496
|
reactNative.Text,
|
|
2145
2497
|
{
|
|
2498
|
+
className: "text-text-primary",
|
|
2146
2499
|
style: {
|
|
2147
2500
|
marginTop: 2,
|
|
2148
2501
|
fontSize: 13,
|
|
2149
2502
|
fontFamily: "Inter, sans-serif",
|
|
2150
|
-
fontWeight: "600"
|
|
2151
|
-
color: TEXT_PRIMARY3
|
|
2503
|
+
fontWeight: "600"
|
|
2152
2504
|
},
|
|
2153
2505
|
children: metric.value
|
|
2154
2506
|
}
|
|
@@ -2180,13 +2532,13 @@ function Gauge({ gauge }) {
|
|
|
2180
2532
|
/* @__PURE__ */ jsx(
|
|
2181
2533
|
reactNative.Text,
|
|
2182
2534
|
{
|
|
2535
|
+
className: "text-text-secondary",
|
|
2183
2536
|
style: {
|
|
2184
2537
|
fontSize: 10,
|
|
2185
2538
|
fontFamily: "Inter, sans-serif",
|
|
2186
2539
|
fontWeight: "500",
|
|
2187
2540
|
letterSpacing: 0.5,
|
|
2188
|
-
textTransform: "uppercase"
|
|
2189
|
-
color: TEXT_SECONDARY3
|
|
2541
|
+
textTransform: "uppercase"
|
|
2190
2542
|
},
|
|
2191
2543
|
children: gauge.label
|
|
2192
2544
|
}
|
|
@@ -2194,11 +2546,11 @@ function Gauge({ gauge }) {
|
|
|
2194
2546
|
gauge.sublabel != null && /* @__PURE__ */ jsx(
|
|
2195
2547
|
reactNative.Text,
|
|
2196
2548
|
{
|
|
2549
|
+
className: "text-text-tertiary",
|
|
2197
2550
|
style: {
|
|
2198
2551
|
fontSize: 10,
|
|
2199
2552
|
fontFamily: "Inter, sans-serif",
|
|
2200
|
-
fontWeight: "500"
|
|
2201
|
-
color: TEXT_TERTIARY2
|
|
2553
|
+
fontWeight: "500"
|
|
2202
2554
|
},
|
|
2203
2555
|
children: gauge.sublabel
|
|
2204
2556
|
}
|
|
@@ -2235,6 +2587,7 @@ function Gauge({ gauge }) {
|
|
|
2235
2587
|
/* @__PURE__ */ jsx(
|
|
2236
2588
|
reactNative.View,
|
|
2237
2589
|
{
|
|
2590
|
+
className: "border-text-primary",
|
|
2238
2591
|
style: {
|
|
2239
2592
|
position: "absolute",
|
|
2240
2593
|
left: `${percentage}%`,
|
|
@@ -2244,7 +2597,6 @@ function Gauge({ gauge }) {
|
|
|
2244
2597
|
height: 14,
|
|
2245
2598
|
borderRadius: 9999,
|
|
2246
2599
|
borderWidth: 2,
|
|
2247
|
-
borderColor: TEXT_PRIMARY3,
|
|
2248
2600
|
backgroundColor: markerColor,
|
|
2249
2601
|
boxShadow: "0 0 4px rgba(0,0,0,0.5)"
|
|
2250
2602
|
},
|
|
@@ -2307,12 +2659,12 @@ function MesoStatusCard({
|
|
|
2307
2659
|
/* @__PURE__ */ jsx(
|
|
2308
2660
|
reactNative.Text,
|
|
2309
2661
|
{
|
|
2662
|
+
className: "text-text-primary",
|
|
2310
2663
|
style: {
|
|
2311
2664
|
flexShrink: 1,
|
|
2312
2665
|
fontSize: 15,
|
|
2313
2666
|
fontFamily: '"Space Grotesk", sans-serif',
|
|
2314
|
-
fontWeight: "700"
|
|
2315
|
-
color: TEXT_PRIMARY3
|
|
2667
|
+
fontWeight: "700"
|
|
2316
2668
|
},
|
|
2317
2669
|
testID: "meso-status-card-name",
|
|
2318
2670
|
children: mesoName
|
|
@@ -2325,11 +2677,11 @@ function MesoStatusCard({
|
|
|
2325
2677
|
/* @__PURE__ */ jsx(
|
|
2326
2678
|
reactNative.Text,
|
|
2327
2679
|
{
|
|
2680
|
+
className: "text-text-secondary",
|
|
2328
2681
|
style: {
|
|
2329
2682
|
marginTop: 4,
|
|
2330
2683
|
fontSize: 12,
|
|
2331
|
-
fontFamily: "Inter, sans-serif"
|
|
2332
|
-
color: TEXT_SECONDARY3
|
|
2684
|
+
fontFamily: "Inter, sans-serif"
|
|
2333
2685
|
},
|
|
2334
2686
|
testID: "meso-status-card-subtitle",
|
|
2335
2687
|
children: mesoSubtitle
|
|
@@ -2361,11 +2713,11 @@ function MesoStatusCard({
|
|
|
2361
2713
|
children: /* @__PURE__ */ jsx(
|
|
2362
2714
|
reactNative.Text,
|
|
2363
2715
|
{
|
|
2716
|
+
className: "text-text-secondary",
|
|
2364
2717
|
style: {
|
|
2365
2718
|
fontSize: 12,
|
|
2366
2719
|
lineHeight: 17,
|
|
2367
|
-
fontFamily: "Inter, sans-serif"
|
|
2368
|
-
color: TEXT_SECONDARY3
|
|
2720
|
+
fontFamily: "Inter, sans-serif"
|
|
2369
2721
|
},
|
|
2370
2722
|
children: renderCoachingText(coaching.text, coaching.highlights)
|
|
2371
2723
|
}
|
|
@@ -2411,12 +2763,6 @@ function MesoStatusCard({
|
|
|
2411
2763
|
}
|
|
2412
2764
|
|
|
2413
2765
|
// src/components/custom/Workout/TrainingStatusPage.tsx
|
|
2414
|
-
var SURFACE_ELEVATED2 = "var(--color-surface-elevated)";
|
|
2415
|
-
var BORDER_DEFAULT2 = "var(--color-border-default)";
|
|
2416
|
-
var TEXT_PRIMARY4 = "var(--color-text-primary)";
|
|
2417
|
-
var TEXT_SECONDARY4 = "var(--color-text-secondary)";
|
|
2418
|
-
var TEXT_TERTIARY3 = "var(--color-text-tertiary)";
|
|
2419
|
-
var PAGE_BG = "var(--color-background-base)";
|
|
2420
2766
|
var STATUS_ORDER = ["under", "maintenance", "productive", "over"];
|
|
2421
2767
|
function deriveTrainingSummary(muscles) {
|
|
2422
2768
|
const statusCounts = {
|
|
@@ -2452,25 +2798,24 @@ function SummaryCards({ summary }) {
|
|
|
2452
2798
|
return /* @__PURE__ */ jsxs(
|
|
2453
2799
|
reactNative.View,
|
|
2454
2800
|
{
|
|
2801
|
+
className: "bg-surface-elevated border-border",
|
|
2455
2802
|
style: {
|
|
2456
2803
|
flexGrow: 1,
|
|
2457
2804
|
flexBasis: "46%",
|
|
2458
2805
|
padding: 12,
|
|
2459
2806
|
borderRadius: 10,
|
|
2460
|
-
|
|
2461
|
-
borderWidth: 1,
|
|
2462
|
-
borderColor: BORDER_DEFAULT2
|
|
2807
|
+
borderWidth: 1
|
|
2463
2808
|
},
|
|
2464
2809
|
testID: `training-status-page-summary-${key}`,
|
|
2465
2810
|
children: [
|
|
2466
2811
|
/* @__PURE__ */ jsx(
|
|
2467
2812
|
reactNative.Text,
|
|
2468
2813
|
{
|
|
2814
|
+
className: "text-text-primary",
|
|
2469
2815
|
style: {
|
|
2470
2816
|
fontSize: 22,
|
|
2471
2817
|
fontFamily: '"Space Grotesk", sans-serif',
|
|
2472
|
-
fontWeight: "700"
|
|
2473
|
-
color: TEXT_PRIMARY4
|
|
2818
|
+
fontWeight: "700"
|
|
2474
2819
|
},
|
|
2475
2820
|
children: value
|
|
2476
2821
|
}
|
|
@@ -2478,14 +2823,14 @@ function SummaryCards({ summary }) {
|
|
|
2478
2823
|
/* @__PURE__ */ jsx(
|
|
2479
2824
|
reactNative.Text,
|
|
2480
2825
|
{
|
|
2826
|
+
className: "text-text-tertiary",
|
|
2481
2827
|
style: {
|
|
2482
2828
|
marginTop: 2,
|
|
2483
2829
|
fontSize: 11,
|
|
2484
2830
|
fontFamily: "Inter, sans-serif",
|
|
2485
2831
|
fontWeight: "600",
|
|
2486
2832
|
letterSpacing: 0.4,
|
|
2487
|
-
textTransform: "uppercase"
|
|
2488
|
-
color: TEXT_TERTIARY3
|
|
2833
|
+
textTransform: "uppercase"
|
|
2489
2834
|
},
|
|
2490
2835
|
children: label
|
|
2491
2836
|
}
|
|
@@ -2525,10 +2870,10 @@ function StatusLegend() {
|
|
|
2525
2870
|
/* @__PURE__ */ jsx(
|
|
2526
2871
|
reactNative.Text,
|
|
2527
2872
|
{
|
|
2873
|
+
className: "text-text-secondary",
|
|
2528
2874
|
style: {
|
|
2529
2875
|
fontSize: 11,
|
|
2530
2876
|
fontFamily: "Inter, sans-serif",
|
|
2531
|
-
color: TEXT_SECONDARY4,
|
|
2532
2877
|
textTransform: "capitalize"
|
|
2533
2878
|
},
|
|
2534
2879
|
children: VOLUME_STATUS_LABELS[status]
|
|
@@ -2567,8 +2912,8 @@ function TrainingStatusPage({
|
|
|
2567
2912
|
return /* @__PURE__ */ jsxs(
|
|
2568
2913
|
reactNative.View,
|
|
2569
2914
|
{
|
|
2570
|
-
className,
|
|
2571
|
-
style: { position: "relative", width: 390
|
|
2915
|
+
className: ["bg-background-base", className].filter(Boolean).join(" "),
|
|
2916
|
+
style: { position: "relative", width: 390 },
|
|
2572
2917
|
accessibilityRole: "main",
|
|
2573
2918
|
"aria-label": title,
|
|
2574
2919
|
testID: "training-status-page",
|
|
@@ -2579,11 +2924,11 @@ function TrainingStatusPage({
|
|
|
2579
2924
|
reactNative.Text,
|
|
2580
2925
|
{
|
|
2581
2926
|
accessibilityRole: "header",
|
|
2927
|
+
className: "text-text-primary",
|
|
2582
2928
|
style: {
|
|
2583
2929
|
fontSize: 20,
|
|
2584
2930
|
fontFamily: '"Space Grotesk", sans-serif',
|
|
2585
|
-
fontWeight: "700"
|
|
2586
|
-
color: TEXT_PRIMARY4
|
|
2931
|
+
fontWeight: "700"
|
|
2587
2932
|
},
|
|
2588
2933
|
testID: "training-status-page-title",
|
|
2589
2934
|
children: title
|
|
@@ -2594,10 +2939,9 @@ function TrainingStatusPage({
|
|
|
2594
2939
|
/* @__PURE__ */ jsxs(
|
|
2595
2940
|
reactNative.View,
|
|
2596
2941
|
{
|
|
2942
|
+
className: "bg-surface-elevated border-border",
|
|
2597
2943
|
style: {
|
|
2598
|
-
backgroundColor: SURFACE_ELEVATED2,
|
|
2599
2944
|
borderWidth: 1,
|
|
2600
|
-
borderColor: BORDER_DEFAULT2,
|
|
2601
2945
|
borderRadius: 12,
|
|
2602
2946
|
padding: 12,
|
|
2603
2947
|
gap: 12
|