@titan-design/react-ui 0.5.0 → 0.6.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 +232 -185
- package/dist/bodymap.js.map +1 -1
- package/dist/bodymap.mjs +232 -185
- package/dist/bodymap.mjs.map +1 -1
- package/dist/index.d.mts +164 -8
- package/dist/index.d.ts +164 -8
- package/dist/index.js +835 -342
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +816 -343
- package/dist/index.mjs.map +1 -1
- package/dist/pages.js +570 -522
- package/dist/pages.js.map +1 -1
- package/dist/pages.mjs +570 -522
- package/dist/pages.mjs.map +1 -1
- package/dist/theme/index.d.mts +461 -199
- package/dist/theme/index.d.ts +461 -199
- package/dist/theme/index.js +311 -97
- package/dist/theme/index.js.map +1 -1
- package/dist/theme/index.mjs +303 -98
- package/dist/theme/index.mjs.map +1 -1
- package/dist/theme/tokens-css.js +148 -139
- package/dist/theme/tokens-css.js.map +1 -1
- package/dist/theme/tokens-css.mjs +148 -139
- package/dist/theme/tokens-css.mjs.map +1 -1
- package/package.json +3 -1
- package/src/components/custom/DateTime/DateTime.stories.tsx +82 -6
- package/src/components/custom/DateTime/DateTime.test.tsx +29 -3
- package/src/components/custom/DateTime/DateTime.tsx +55 -15
- package/src/components/custom/Gauge/Gauge.test.tsx +2 -2
- package/src/components/custom/Gauge/Gauge.tsx +6 -3
- package/src/components/custom/Scatter/Scatter.tsx +3 -5
- package/src/components/custom/Treemap/Treemap.tsx +3 -5
- package/src/components/custom/Typography/Typography.stories.tsx +45 -27
- package/src/components/custom/Typography/Typography.test.tsx +13 -3
- package/src/components/custom/Typography/Typography.tsx +5 -0
- package/src/components/custom/Workout/ActiveWorkoutPage.tsx +2 -1
- package/src/components/custom/Workout/BodyMap.tsx +6 -3
- package/src/components/custom/Workout/BodyMapDetailPanel.tsx +6 -3
- package/src/components/custom/Workout/CapacityBandChart.test.tsx +2 -2
- package/src/components/custom/Workout/CapacityBandChart.tsx +9 -6
- package/src/components/custom/Workout/DeviationBar.test.tsx +1 -1
- package/src/components/custom/Workout/DeviationBar.tsx +7 -4
- package/src/components/custom/Workout/ExerciseDetailPage.tsx +2 -1
- package/src/components/custom/Workout/InputBar.tsx +2 -1
- package/src/components/custom/Workout/IntensityBar.test.tsx +8 -8
- package/src/components/custom/Workout/IntensityBar.tsx +10 -6
- package/src/components/custom/Workout/MesoCard.tsx +8 -3
- package/src/components/custom/Workout/MesoProgressBar.test.tsx +1 -1
- package/src/components/custom/Workout/MesoProgressBar.tsx +3 -2
- package/src/components/custom/Workout/MesoStatusCard.tsx +20 -13
- package/src/components/custom/Workout/MuscleGroupChip.tsx +7 -4
- package/src/components/custom/Workout/PrBadge.tsx +5 -2
- package/src/components/custom/Workout/PrHistoryModal.tsx +4 -3
- package/src/components/custom/Workout/ProgramPlanningPage.tsx +2 -1
- package/src/components/custom/Workout/ReadinessCheck.tsx +7 -4
- package/src/components/custom/Workout/RestTimer.tsx +2 -1
- package/src/components/custom/Workout/SetRow.tsx +2 -1
- package/src/components/custom/Workout/Sparkline.tsx +2 -1
- package/src/components/custom/Workout/StatusDot.test.tsx +2 -2
- package/src/components/custom/Workout/StatusDot.tsx +12 -9
- package/src/components/custom/Workout/StrengthTrendChart.tsx +9 -6
- package/src/components/custom/Workout/SupersetWrapper.tsx +2 -1
- package/src/components/custom/Workout/TempoDisplay.tsx +6 -3
- package/src/components/custom/Workout/VelocityStrip.test.tsx +3 -3
- package/src/components/custom/Workout/WeekRow.tsx +3 -2
- package/src/components/custom/Workout/WeightBadge.tsx +6 -2
- package/src/components/custom/Workout/WorkoutCard.tsx +5 -2
- package/src/components/custom/Workout/WorkoutPill.tsx +12 -8
- package/src/components/custom/Workout/icons.tsx +6 -67
- package/src/components/icons/SvgIcon.tsx +50 -0
- package/src/components/icons/icons.stories.tsx +57 -0
- package/src/components/icons/icons.test.tsx +43 -0
- package/src/components/icons/icons.tsx +45 -0
- package/src/components/icons/index.ts +4 -0
- package/src/components/index.ts +6 -0
- package/src/components/shell/BrandLockup.stories.tsx +27 -0
- package/src/components/shell/BrandLockup.test.tsx +23 -0
- package/src/components/shell/BrandLockup.tsx +47 -0
- package/src/components/shell/DeviceIndicator.stories.tsx +28 -0
- package/src/components/shell/DeviceIndicator.test.tsx +26 -0
- package/src/components/shell/DeviceIndicator.tsx +52 -0
- package/src/components/shell/DeviceMenu.stories.tsx +47 -0
- package/src/components/shell/DeviceMenu.test.tsx +40 -0
- package/src/components/shell/DeviceMenu.tsx +65 -0
- package/src/components/shell/DeviceRow.stories.tsx +38 -0
- package/src/components/shell/DeviceRow.test.tsx +37 -0
- package/src/components/shell/DeviceRow.tsx +58 -0
- package/src/components/shell/README.md +86 -0
- package/src/components/shell/SessionStatePill.stories.tsx +27 -0
- package/src/components/shell/SessionStatePill.test.tsx +25 -0
- package/src/components/shell/SessionStatePill.tsx +46 -0
- package/src/components/shell/TopBar.stories.tsx +49 -0
- package/src/components/shell/TopBar.test.tsx +36 -0
- package/src/components/shell/TopBar.tsx +89 -0
- package/src/components/shell/index.ts +8 -0
- package/src/components/ui/indicator/Indicator.stories.tsx +37 -1
- package/src/components/ui/indicator/Indicator.test.tsx +19 -1
- package/src/components/ui/indicator/Indicator.tsx +45 -6
- package/src/components/ui/indicator/index.ts +1 -1
- package/src/components/ui/spinner/Spinner.tsx +3 -2
- package/src/components/ui/toolbar-button/ToolbarButton.tsx +2 -1
- package/src/theme/ColorSystem.stories.tsx +323 -0
- package/src/theme/Colors.stories.tsx +69 -1
- package/src/theme/barrel.ts +1 -0
- package/src/theme/config.ts +16 -3
- package/src/theme/extracted-colors-dataviz.ts +21 -0
- package/src/theme/extracted-colors-ui.ts +20 -0
- package/src/theme/global.css +64 -52
- package/src/theme/gradients.test.ts +25 -0
- package/src/theme/gradients.ts +36 -0
- package/src/theme/tokens/primitives.test.ts +232 -0
- package/src/theme/tokens/primitives.ts +247 -0
- package/src/theme/tokens/semantic.ts +93 -81
- package/src/theme/workout-tokens.ts +22 -21
- package/src/utils/avatar-color.ts +3 -3
- package/tailwind.config.js +10 -3
package/dist/pages.mjs
CHANGED
|
@@ -6,22 +6,150 @@ import { twMerge } from 'tailwind-merge';
|
|
|
6
6
|
|
|
7
7
|
// src/components/custom/Workout/ActiveWorkoutPage.tsx
|
|
8
8
|
|
|
9
|
+
// src/theme/tokens/primitives.ts
|
|
10
|
+
var primitiveColors = {
|
|
11
|
+
// Blue scale (primary brand)
|
|
12
|
+
blue: {
|
|
13
|
+
400: "#60A5FA",
|
|
14
|
+
600: "#5048E5",
|
|
15
|
+
// Primary main
|
|
16
|
+
700: "#3832A0"},
|
|
17
|
+
// Red scale (error)
|
|
18
|
+
red: {
|
|
19
|
+
// Error light
|
|
20
|
+
500: "#EF4444",
|
|
21
|
+
600: "#D14343"},
|
|
22
|
+
// Vivid red scale (alert)
|
|
23
|
+
redVivid: {
|
|
24
|
+
400: "#FF6070",
|
|
25
|
+
// Error vivid light
|
|
26
|
+
500: "#FF4757",
|
|
27
|
+
700: "#C42539"},
|
|
28
|
+
// Neutral/Gray scale
|
|
29
|
+
neutral: {
|
|
30
|
+
50: "#FAFAFA",
|
|
31
|
+
100: "#F3F4F6",
|
|
32
|
+
300: "#D1D5DB",
|
|
33
|
+
400: "#9CA3AF",
|
|
34
|
+
500: "#6B7280",
|
|
35
|
+
600: "#4B5563",
|
|
36
|
+
900: "#111827"},
|
|
37
|
+
// Charcoal scale (dark backgrounds)
|
|
38
|
+
charcoal: {
|
|
39
|
+
200: "#3C3C3C",
|
|
40
|
+
300: "#2C2C2C",
|
|
41
|
+
400: "#1F1F1F",
|
|
42
|
+
500: "#1C1C1C",
|
|
43
|
+
600: "#191919",
|
|
44
|
+
700: "#161616",
|
|
45
|
+
900: "#101010"
|
|
46
|
+
},
|
|
47
|
+
// Pure colors
|
|
48
|
+
white: "#FFFFFF"};
|
|
49
|
+
var primitiveRamps = {
|
|
50
|
+
red: {
|
|
51
|
+
50: "#FFF4F4",
|
|
52
|
+
500: "#E05254",
|
|
53
|
+
600: "#D14343",
|
|
54
|
+
// pin
|
|
55
|
+
700: "#A4221C",
|
|
56
|
+
800: "#7E1002"},
|
|
57
|
+
orange: {
|
|
58
|
+
200: "#FFC7A2",
|
|
59
|
+
300: "#FFA063",
|
|
60
|
+
400: "#FF7900",
|
|
61
|
+
// pin
|
|
62
|
+
500: "#DA5F00",
|
|
63
|
+
600: "#B94A00"},
|
|
64
|
+
amber: {
|
|
65
|
+
50: "#FFF7DD",
|
|
66
|
+
200: "#FFD352",
|
|
67
|
+
300: "#F9B415",
|
|
68
|
+
500: "#C27400"},
|
|
69
|
+
green: {
|
|
70
|
+
50: "#E3FFEE",
|
|
71
|
+
200: "#58F69E",
|
|
72
|
+
300: "#2ED573",
|
|
73
|
+
600: "#298732"},
|
|
74
|
+
cyan: {
|
|
75
|
+
// pin
|
|
76
|
+
400: "#01B5D1",
|
|
77
|
+
500: "#2697B7",
|
|
78
|
+
600: "#307B9B",
|
|
79
|
+
700: "#2A617F",
|
|
80
|
+
800: "#22465F"},
|
|
81
|
+
blue: {
|
|
82
|
+
50: "#EFF8FF",
|
|
83
|
+
300: "#78C2FF",
|
|
84
|
+
500: "#2196F3",
|
|
85
|
+
// pin
|
|
86
|
+
600: "#1072CB"},
|
|
87
|
+
magenta: {
|
|
88
|
+
600: "#BA2996"}
|
|
89
|
+
};
|
|
90
|
+
var sequentialEffort = [
|
|
91
|
+
primitiveRamps.green[300],
|
|
92
|
+
primitiveRamps.amber[200],
|
|
93
|
+
primitiveRamps.amber[300],
|
|
94
|
+
primitiveRamps.orange[400],
|
|
95
|
+
primitiveRamps.red[600],
|
|
96
|
+
primitiveRamps.red[700]
|
|
97
|
+
];
|
|
98
|
+
var discreteRainbow = [
|
|
99
|
+
"#E8ECFB",
|
|
100
|
+
"#D9CCE3",
|
|
101
|
+
"#D1BBD7",
|
|
102
|
+
"#CAACCB",
|
|
103
|
+
"#BA8DB4",
|
|
104
|
+
"#AE76A3",
|
|
105
|
+
"#AA6F9E",
|
|
106
|
+
"#994F88",
|
|
107
|
+
"#882E72",
|
|
108
|
+
"#1965B0",
|
|
109
|
+
"#437DBF",
|
|
110
|
+
"#5289C7",
|
|
111
|
+
"#6195CF",
|
|
112
|
+
"#7BAFDE",
|
|
113
|
+
"#4EB265",
|
|
114
|
+
"#90C987",
|
|
115
|
+
"#CAE0AB",
|
|
116
|
+
"#F7F056",
|
|
117
|
+
"#F7CB45",
|
|
118
|
+
"#F6C141",
|
|
119
|
+
"#F4A736",
|
|
120
|
+
"#F1932D",
|
|
121
|
+
"#EE8026",
|
|
122
|
+
"#E8601C",
|
|
123
|
+
"#E65518",
|
|
124
|
+
"#DC050C",
|
|
125
|
+
"#A5170E",
|
|
126
|
+
"#72190E",
|
|
127
|
+
"#42150A"
|
|
128
|
+
];
|
|
129
|
+
|
|
9
130
|
// src/theme/workout-tokens.ts
|
|
10
131
|
var WORKOUT_TOKENS = {
|
|
11
132
|
// Canonical 4-band performance scale — the single source for BOTH the
|
|
12
133
|
// VelocityStrip zone bars and the SetRow RPE color (TD-03.43). The direction
|
|
13
134
|
// is intentionally inverted between the two consumers: for velocity, green =
|
|
14
|
-
// fastest/best; for RPE, green = easiest.
|
|
15
|
-
//
|
|
16
|
-
//
|
|
17
|
-
// scale below — they are consumed inline as a JS import rather than CSS vars.
|
|
18
|
-
// A JS import also resolves on native RN, unlike var(--…) strings.
|
|
135
|
+
// fastest/best; for RPE, green = easiest. This is the [0,1,2,4] subsample of
|
|
136
|
+
// the canonical `sequentialEffort` primitive. The `orange` key is the band
|
|
137
|
+
// label. Consumed inline (RN).
|
|
19
138
|
scale: {
|
|
20
|
-
green:
|
|
21
|
-
yellow:
|
|
22
|
-
orange:
|
|
23
|
-
|
|
139
|
+
green: sequentialEffort[0],
|
|
140
|
+
yellow: sequentialEffort[1],
|
|
141
|
+
orange: sequentialEffort[2],
|
|
142
|
+
// gold band
|
|
143
|
+
red: sequentialEffort[4]
|
|
24
144
|
},
|
|
145
|
+
// Surface and border colors were removed here: those flip with the theme, so
|
|
146
|
+
// components use the CSS custom properties (var(--color-surface-*/border-*))
|
|
147
|
+
// directly. Only theme-independent data-viz values remain below.
|
|
148
|
+
// Intensity bar specific — over-target tiers deepen along the red ramp.
|
|
149
|
+
intensity: {
|
|
150
|
+
// matches status-error
|
|
151
|
+
over2: primitiveRamps.red[700],
|
|
152
|
+
over3: primitiveRamps.red[800]},
|
|
25
153
|
// Placeholder strip
|
|
26
154
|
placeholder: {
|
|
27
155
|
fill: "#3A3A3A"
|
|
@@ -487,12 +615,14 @@ function PlaceholderStrip({
|
|
|
487
615
|
return /* @__PURE__ */ jsx(SingleStrip, { ...props });
|
|
488
616
|
}
|
|
489
617
|
|
|
490
|
-
// src/components/
|
|
491
|
-
function
|
|
618
|
+
// src/components/icons/SvgIcon.tsx
|
|
619
|
+
function SvgIcon({
|
|
492
620
|
size = 24,
|
|
493
621
|
color = "currentColor",
|
|
622
|
+
strokeWidth = 2,
|
|
494
623
|
fill = "none",
|
|
495
|
-
|
|
624
|
+
title,
|
|
625
|
+
children
|
|
496
626
|
}) {
|
|
497
627
|
return /* @__PURE__ */ jsxs(
|
|
498
628
|
"svg",
|
|
@@ -505,36 +635,27 @@ function DumbbellIcon({
|
|
|
505
635
|
strokeWidth,
|
|
506
636
|
strokeLinecap: "round",
|
|
507
637
|
strokeLinejoin: "round",
|
|
638
|
+
...title ? { role: "img", "aria-label": title } : { "aria-hidden": true },
|
|
508
639
|
children: [
|
|
509
|
-
/* @__PURE__ */ jsx("
|
|
510
|
-
|
|
511
|
-
/* @__PURE__ */ jsx("path", { d: "m21.5 21.5-1.4-1.4" }),
|
|
512
|
-
/* @__PURE__ */ jsx("path", { d: "M3.9 3.9 2.5 2.5" }),
|
|
513
|
-
/* @__PURE__ */ jsx("path", { d: "M6.404 12.768a2 2 0 1 1-2.829-2.829l1.768-1.767a2 2 0 1 1-2.828-2.829l2.828-2.828a2 2 0 1 1 2.829 2.828l1.767-1.768a2 2 0 1 1 2.829 2.829z" })
|
|
640
|
+
title ? /* @__PURE__ */ jsx("title", { children: title }) : null,
|
|
641
|
+
children
|
|
514
642
|
]
|
|
515
643
|
}
|
|
516
644
|
);
|
|
517
645
|
}
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
})
|
|
524
|
-
|
|
525
|
-
"
|
|
526
|
-
{
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
stroke: color,
|
|
532
|
-
strokeWidth,
|
|
533
|
-
strokeLinecap: "round",
|
|
534
|
-
strokeLinejoin: "round",
|
|
535
|
-
children: /* @__PURE__ */ jsx("path", { d: "M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z" })
|
|
536
|
-
}
|
|
537
|
-
);
|
|
646
|
+
|
|
647
|
+
// src/components/icons/icons.tsx
|
|
648
|
+
function DumbbellIcon(props) {
|
|
649
|
+
return /* @__PURE__ */ jsxs(SvgIcon, { ...props, children: [
|
|
650
|
+
/* @__PURE__ */ jsx("path", { d: "M14.4 14.4 9.6 9.6" }),
|
|
651
|
+
/* @__PURE__ */ jsx("path", { d: "M18.657 21.485a2 2 0 1 1-2.829-2.828l-1.767 1.768a2 2 0 1 1-2.829-2.829l6.364-6.364a2 2 0 1 1 2.829 2.829l-1.768 1.767a2 2 0 1 1 2.828 2.829z" }),
|
|
652
|
+
/* @__PURE__ */ jsx("path", { d: "m21.5 21.5-1.4-1.4" }),
|
|
653
|
+
/* @__PURE__ */ jsx("path", { d: "M3.9 3.9 2.5 2.5" }),
|
|
654
|
+
/* @__PURE__ */ jsx("path", { d: "M6.404 12.768a2 2 0 1 1-2.829-2.829l1.768-1.767a2 2 0 1 1-2.828-2.829l2.828-2.828a2 2 0 1 1 2.829 2.828l1.767-1.768a2 2 0 1 1 2.829 2.829z" })
|
|
655
|
+
] });
|
|
656
|
+
}
|
|
657
|
+
function StarIcon(props) {
|
|
658
|
+
return /* @__PURE__ */ jsx(SvgIcon, { ...props, children: /* @__PURE__ */ jsx("path", { d: "M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z" }) });
|
|
538
659
|
}
|
|
539
660
|
var baseBadgeSizeConfig = {
|
|
540
661
|
sm: { fontSize: 9, paddingH: 6, paddingV: 2, iconSize: 10 },
|
|
@@ -614,6 +735,266 @@ function BaseBadge({
|
|
|
614
735
|
return badge;
|
|
615
736
|
}
|
|
616
737
|
|
|
738
|
+
// src/theme/tokens/semantic.ts
|
|
739
|
+
var semanticColorsLight = {
|
|
740
|
+
// Brand colors (brand-*)
|
|
741
|
+
"brand-primary": primitiveRamps.orange[400],
|
|
742
|
+
"brand-primary-light": primitiveRamps.orange[300],
|
|
743
|
+
"brand-primary-dark": primitiveRamps.orange[500],
|
|
744
|
+
"brand-primary-subtle": "rgba(255, 121, 0, 0.08)",
|
|
745
|
+
"brand-primary-hover": primitiveRamps.orange[500],
|
|
746
|
+
"brand-primary-active": primitiveRamps.orange[600],
|
|
747
|
+
"brand-secondary": primitiveRamps.cyan[600],
|
|
748
|
+
"brand-secondary-light": primitiveRamps.cyan[500],
|
|
749
|
+
"brand-secondary-dark": primitiveRamps.cyan[700],
|
|
750
|
+
"brand-secondary-subtle": "rgba(48, 123, 155, 0.08)",
|
|
751
|
+
"brand-secondary-hover": primitiveRamps.cyan[700],
|
|
752
|
+
"brand-secondary-active": primitiveRamps.cyan[800],
|
|
753
|
+
// Text on brand backgrounds (on-*)
|
|
754
|
+
"on-brand-primary": primitiveColors.white,
|
|
755
|
+
"on-brand-secondary": primitiveColors.white,
|
|
756
|
+
// Status colors (status-*)
|
|
757
|
+
"status-success": primitiveRamps.green[300],
|
|
758
|
+
"status-success-light": primitiveRamps.green[200],
|
|
759
|
+
"status-success-dark": primitiveRamps.green[600],
|
|
760
|
+
"status-success-subtle": primitiveRamps.green[50],
|
|
761
|
+
"status-error": primitiveRamps.red[600],
|
|
762
|
+
"status-error-light": primitiveRamps.red[500],
|
|
763
|
+
"status-error-dark": primitiveRamps.red[700],
|
|
764
|
+
"status-error-subtle": primitiveRamps.red[50],
|
|
765
|
+
"status-error-vivid": primitiveColors.redVivid[500],
|
|
766
|
+
// vivid alert red
|
|
767
|
+
"status-error-vivid-light": primitiveColors.redVivid[400],
|
|
768
|
+
"status-error-vivid-dark": primitiveColors.redVivid[700],
|
|
769
|
+
"status-error-vivid-subtle": "rgba(255, 71, 87, 0.12)",
|
|
770
|
+
"status-warning": primitiveRamps.amber[300],
|
|
771
|
+
"status-warning-light": primitiveRamps.amber[200],
|
|
772
|
+
"status-warning-dark": primitiveRamps.amber[500],
|
|
773
|
+
"status-warning-subtle": primitiveRamps.amber[50],
|
|
774
|
+
"status-info": primitiveRamps.blue[500],
|
|
775
|
+
"status-info-light": primitiveRamps.blue[300],
|
|
776
|
+
"status-info-dark": primitiveRamps.blue[600],
|
|
777
|
+
"status-info-subtle": primitiveRamps.blue[50],
|
|
778
|
+
// Text on status backgrounds (on-status-*)
|
|
779
|
+
"on-status-success": primitiveColors.white,
|
|
780
|
+
"on-status-error": primitiveColors.white,
|
|
781
|
+
"on-status-warning": primitiveColors.white,
|
|
782
|
+
"on-status-info": primitiveColors.white,
|
|
783
|
+
// Result/outcome indicators (result-*)
|
|
784
|
+
"result-improve": "#4caf50",
|
|
785
|
+
// Green - positive outcome
|
|
786
|
+
"result-improve-light": "rgba(76, 175, 80, 0.12)",
|
|
787
|
+
"result-improve-dark": "#248a24",
|
|
788
|
+
"result-degrade": "#ef5350",
|
|
789
|
+
// Red - negative outcome
|
|
790
|
+
"result-degrade-light": "rgba(239, 83, 80, 0.12)",
|
|
791
|
+
"result-degrade-dark": "#b30000",
|
|
792
|
+
"result-inconclusive": "#9E9A97",
|
|
793
|
+
// Gray - no clear result
|
|
794
|
+
"result-inconclusive-light": "rgba(158, 154, 151, 0.12)",
|
|
795
|
+
"result-neutral": primitiveColors.neutral[500],
|
|
796
|
+
// Neutral baseline
|
|
797
|
+
// Text on result backgrounds (on-result-*)
|
|
798
|
+
"on-result-improve": primitiveColors.white,
|
|
799
|
+
"on-result-degrade": primitiveColors.white,
|
|
800
|
+
"on-result-inconclusive": primitiveColors.white,
|
|
801
|
+
// Data visualization colors (data-*)
|
|
802
|
+
// First 10 colors from discrete rainbow optimized for charts
|
|
803
|
+
"data-1": discreteRainbow[9],
|
|
804
|
+
// Blue
|
|
805
|
+
"data-2": discreteRainbow[14],
|
|
806
|
+
// Green
|
|
807
|
+
"data-3": discreteRainbow[17],
|
|
808
|
+
// Yellow
|
|
809
|
+
"data-4": discreteRainbow[25],
|
|
810
|
+
// Red
|
|
811
|
+
"data-5": discreteRainbow[8],
|
|
812
|
+
// Purple
|
|
813
|
+
"data-6": discreteRainbow[20],
|
|
814
|
+
// Orange
|
|
815
|
+
"data-7": discreteRainbow[13],
|
|
816
|
+
// Light Blue
|
|
817
|
+
"data-8": discreteRainbow[15],
|
|
818
|
+
// Light Green
|
|
819
|
+
"data-9": discreteRainbow[3],
|
|
820
|
+
// Lavender
|
|
821
|
+
"data-10": discreteRainbow[22],
|
|
822
|
+
// Dark Orange
|
|
823
|
+
// Text colors (text-*)
|
|
824
|
+
"text-primary": "#121828",
|
|
825
|
+
"text-secondary": "#65748B",
|
|
826
|
+
"text-tertiary": primitiveColors.neutral[400],
|
|
827
|
+
"text-disabled": "rgba(55, 65, 81, 0.48)",
|
|
828
|
+
"text-inverse": primitiveColors.white,
|
|
829
|
+
"text-link": primitiveColors.blue[600],
|
|
830
|
+
"text-link-hover": primitiveColors.blue[700],
|
|
831
|
+
// Surface colors (surface-*) - for elevated containers
|
|
832
|
+
"surface-base": primitiveColors.white,
|
|
833
|
+
"surface-elevated": primitiveColors.neutral[50],
|
|
834
|
+
// slightly off-white for elevated cards
|
|
835
|
+
"surface-raised": primitiveColors.neutral[100],
|
|
836
|
+
// light gray for raised cards
|
|
837
|
+
"surface-overlay": primitiveColors.white,
|
|
838
|
+
"surface-input": primitiveColors.neutral[50],
|
|
839
|
+
// Input field background (filled variant)
|
|
840
|
+
// Background colors (background-*)
|
|
841
|
+
"background-base": "#EBEBEB",
|
|
842
|
+
"background-default": primitiveColors.white,
|
|
843
|
+
"background-subtle": primitiveColors.neutral[50],
|
|
844
|
+
// Border colors (border-*)
|
|
845
|
+
"border-default": "#E8E9EB",
|
|
846
|
+
"border-subtle": primitiveColors.neutral[100],
|
|
847
|
+
"border-strong": primitiveColors.neutral[300],
|
|
848
|
+
"border-prominent": primitiveColors.neutral[400],
|
|
849
|
+
// high-visibility divider
|
|
850
|
+
"border-focus": primitiveColors.blue[600],
|
|
851
|
+
"border-input": primitiveColors.neutral[300],
|
|
852
|
+
// Input field border
|
|
853
|
+
"border-input-hover": primitiveColors.neutral[400],
|
|
854
|
+
// Input field border on hover
|
|
855
|
+
"border-input-focus": primitiveColors.blue[600],
|
|
856
|
+
// Input field border on focus
|
|
857
|
+
"border-input-error": primitiveColors.red[600],
|
|
858
|
+
// Input field border on error
|
|
859
|
+
// Interactive states (interactive-*)
|
|
860
|
+
"interactive-hover": "rgba(55, 65, 81, 0.04)",
|
|
861
|
+
"interactive-focus": "rgba(55, 65, 81, 0.12)",
|
|
862
|
+
"interactive-active": "rgba(55, 65, 81, 0.16)",
|
|
863
|
+
"interactive-selected": "rgba(55, 65, 81, 0.08)",
|
|
864
|
+
"interactive-disabled": "rgba(55, 65, 81, 0.12)",
|
|
865
|
+
"interactive-disabled-text": "rgba(55, 65, 81, 0.26)",
|
|
866
|
+
// Divider
|
|
867
|
+
"divider": "#E8E9EB",
|
|
868
|
+
// Avatar default
|
|
869
|
+
"avatar-background": primitiveColors.neutral[500],
|
|
870
|
+
"avatar-text": primitiveColors.white
|
|
871
|
+
};
|
|
872
|
+
var semanticColorsDark = {
|
|
873
|
+
// Brand colors stay the same in dark mode
|
|
874
|
+
"brand-primary": primitiveRamps.orange[400],
|
|
875
|
+
"brand-primary-light": primitiveRamps.orange[300],
|
|
876
|
+
"brand-primary-dark": primitiveRamps.orange[500],
|
|
877
|
+
"brand-primary-subtle": "rgba(255, 121, 0, 0.12)",
|
|
878
|
+
"brand-primary-hover": primitiveRamps.orange[300],
|
|
879
|
+
"brand-primary-active": primitiveRamps.orange[200],
|
|
880
|
+
"brand-secondary": primitiveRamps.cyan[600],
|
|
881
|
+
"brand-secondary-light": primitiveRamps.cyan[500],
|
|
882
|
+
"brand-secondary-dark": primitiveRamps.cyan[700],
|
|
883
|
+
"brand-secondary-subtle": "rgba(48, 123, 155, 0.12)",
|
|
884
|
+
"brand-secondary-hover": primitiveRamps.cyan[500],
|
|
885
|
+
"brand-secondary-active": primitiveRamps.cyan[400],
|
|
886
|
+
// Text on brand backgrounds
|
|
887
|
+
"on-brand-primary": primitiveColors.white,
|
|
888
|
+
"on-brand-secondary": primitiveColors.white,
|
|
889
|
+
// Status colors
|
|
890
|
+
"status-success": primitiveRamps.green[300],
|
|
891
|
+
"status-success-light": primitiveRamps.green[200],
|
|
892
|
+
"status-success-dark": primitiveRamps.green[600],
|
|
893
|
+
"status-success-subtle": "rgba(46, 213, 115, 0.12)",
|
|
894
|
+
"status-error": primitiveRamps.red[600],
|
|
895
|
+
"status-error-light": primitiveRamps.red[500],
|
|
896
|
+
"status-error-dark": primitiveRamps.red[700],
|
|
897
|
+
"status-error-subtle": "rgba(209, 67, 67, 0.12)",
|
|
898
|
+
"status-error-vivid": primitiveColors.redVivid[500],
|
|
899
|
+
"status-error-vivid-light": primitiveColors.redVivid[400],
|
|
900
|
+
"status-error-vivid-dark": primitiveColors.redVivid[700],
|
|
901
|
+
"status-error-vivid-subtle": "rgba(255, 71, 87, 0.12)",
|
|
902
|
+
"status-warning": primitiveRamps.amber[300],
|
|
903
|
+
"status-warning-light": primitiveRamps.amber[200],
|
|
904
|
+
"status-warning-dark": primitiveRamps.amber[500],
|
|
905
|
+
"status-warning-subtle": "rgba(249, 180, 21, 0.12)",
|
|
906
|
+
"status-info": primitiveRamps.blue[500],
|
|
907
|
+
"status-info-light": primitiveRamps.blue[300],
|
|
908
|
+
"status-info-dark": primitiveRamps.blue[600],
|
|
909
|
+
"status-info-subtle": "rgba(33, 150, 243, 0.12)",
|
|
910
|
+
// Text on status backgrounds
|
|
911
|
+
"on-status-success": primitiveColors.white,
|
|
912
|
+
"on-status-error": primitiveColors.white,
|
|
913
|
+
"on-status-warning": primitiveColors.white,
|
|
914
|
+
"on-status-info": primitiveColors.white,
|
|
915
|
+
// Result/outcome indicators (result-*)
|
|
916
|
+
"result-improve": "#4caf50",
|
|
917
|
+
"result-improve-light": "rgba(76, 175, 80, 0.16)",
|
|
918
|
+
"result-improve-dark": "#248a24",
|
|
919
|
+
"result-degrade": "#ef5350",
|
|
920
|
+
"result-degrade-light": "rgba(239, 83, 80, 0.16)",
|
|
921
|
+
"result-degrade-dark": "#b30000",
|
|
922
|
+
"result-inconclusive": "#9E9A97",
|
|
923
|
+
"result-inconclusive-light": "rgba(158, 154, 151, 0.16)",
|
|
924
|
+
"result-neutral": primitiveColors.neutral[400],
|
|
925
|
+
// Text on result backgrounds
|
|
926
|
+
"on-result-improve": primitiveColors.white,
|
|
927
|
+
"on-result-degrade": primitiveColors.white,
|
|
928
|
+
"on-result-inconclusive": primitiveColors.white,
|
|
929
|
+
// Data visualization colors (same in dark mode for consistency)
|
|
930
|
+
"data-1": discreteRainbow[9],
|
|
931
|
+
"data-2": discreteRainbow[14],
|
|
932
|
+
"data-3": discreteRainbow[17],
|
|
933
|
+
"data-4": discreteRainbow[25],
|
|
934
|
+
"data-5": discreteRainbow[8],
|
|
935
|
+
"data-6": discreteRainbow[20],
|
|
936
|
+
"data-7": discreteRainbow[13],
|
|
937
|
+
"data-8": discreteRainbow[15],
|
|
938
|
+
"data-9": discreteRainbow[3],
|
|
939
|
+
"data-10": discreteRainbow[22],
|
|
940
|
+
// Text colors - inverted for dark mode
|
|
941
|
+
"text-primary": primitiveColors.neutral[100],
|
|
942
|
+
"text-secondary": primitiveColors.neutral[400],
|
|
943
|
+
"text-tertiary": primitiveColors.neutral[500],
|
|
944
|
+
"text-disabled": "rgba(255, 255, 255, 0.38)",
|
|
945
|
+
"text-inverse": primitiveColors.neutral[900],
|
|
946
|
+
"text-link": "#828DF8",
|
|
947
|
+
"text-link-hover": primitiveColors.blue[400],
|
|
948
|
+
// Surface colors - dark backgrounds
|
|
949
|
+
"surface-base": primitiveColors.charcoal[700],
|
|
950
|
+
// main surface
|
|
951
|
+
"surface-elevated": primitiveColors.charcoal[600],
|
|
952
|
+
// elevated surface
|
|
953
|
+
"surface-raised": primitiveColors.charcoal[500],
|
|
954
|
+
// raised surface
|
|
955
|
+
"surface-overlay": primitiveColors.charcoal[600],
|
|
956
|
+
// overlay surface
|
|
957
|
+
"surface-input": primitiveColors.charcoal[600],
|
|
958
|
+
// input surface
|
|
959
|
+
// Background colors
|
|
960
|
+
"background-base": primitiveColors.charcoal[900],
|
|
961
|
+
// darkest charcoal
|
|
962
|
+
"background-default": primitiveColors.charcoal[700],
|
|
963
|
+
// main background
|
|
964
|
+
"background-subtle": primitiveColors.charcoal[500],
|
|
965
|
+
// subtle background
|
|
966
|
+
// Border colors
|
|
967
|
+
"border-default": primitiveColors.charcoal[400],
|
|
968
|
+
// default border
|
|
969
|
+
"border-subtle": primitiveColors.charcoal[500],
|
|
970
|
+
// subtle border
|
|
971
|
+
"border-strong": primitiveColors.charcoal[300],
|
|
972
|
+
// strong border
|
|
973
|
+
"border-prominent": primitiveColors.charcoal[200],
|
|
974
|
+
// high-visibility divider
|
|
975
|
+
"border-focus": "#828DF8",
|
|
976
|
+
"border-input": primitiveColors.neutral[600],
|
|
977
|
+
"border-input-hover": primitiveColors.neutral[500],
|
|
978
|
+
"border-input-focus": "#828DF8",
|
|
979
|
+
"border-input-error": primitiveColors.red[500],
|
|
980
|
+
// Interactive states
|
|
981
|
+
"interactive-hover": "rgba(255, 255, 255, 0.04)",
|
|
982
|
+
"interactive-focus": "rgba(255, 255, 255, 0.12)",
|
|
983
|
+
"interactive-active": "rgba(255, 255, 255, 0.16)",
|
|
984
|
+
"interactive-selected": "rgba(255, 255, 255, 0.08)",
|
|
985
|
+
"interactive-disabled": "rgba(255, 255, 255, 0.12)",
|
|
986
|
+
"interactive-disabled-text": "rgba(255, 255, 255, 0.26)",
|
|
987
|
+
// Divider
|
|
988
|
+
"divider": primitiveColors.charcoal[400],
|
|
989
|
+
// divider color
|
|
990
|
+
// Avatar default
|
|
991
|
+
"avatar-background": primitiveColors.neutral[600],
|
|
992
|
+
"avatar-text": primitiveColors.white
|
|
993
|
+
};
|
|
994
|
+
function getSemanticColors(mode) {
|
|
995
|
+
return mode === "dark" ? semanticColorsDark : semanticColorsLight;
|
|
996
|
+
}
|
|
997
|
+
|
|
617
998
|
// src/components/custom/Workout/WeightBadge.tsx
|
|
618
999
|
function WeightBadge({
|
|
619
1000
|
value,
|
|
@@ -628,7 +1009,7 @@ function WeightBadge({
|
|
|
628
1009
|
...props
|
|
629
1010
|
}) {
|
|
630
1011
|
const config = baseBadgeSizeConfig[size];
|
|
631
|
-
const textColor = isPr ? "
|
|
1012
|
+
const textColor = isPr ? getSemanticColors("dark")["brand-primary"] : "#9CA3AF";
|
|
632
1013
|
const iconColor = textColor;
|
|
633
1014
|
const repMaxClause = reps != null ? `${reps} rep max` : "Estimated one rep max";
|
|
634
1015
|
const deltaLabel = delta != null ? `, ${delta >= 0 ? "+" : ""}${delta}% change` : "";
|
|
@@ -687,7 +1068,7 @@ function WeightBadge({
|
|
|
687
1068
|
fontFamily: '"Space Grotesk", sans-serif',
|
|
688
1069
|
fontSize: config.fontSize,
|
|
689
1070
|
marginLeft: 4,
|
|
690
|
-
color: delta >= 0 ? "
|
|
1071
|
+
color: delta >= 0 ? getSemanticColors("dark")["result-improve"] : getSemanticColors("dark")["result-degrade"]
|
|
691
1072
|
},
|
|
692
1073
|
testID: "weight-badge-delta",
|
|
693
1074
|
children: [
|
|
@@ -701,6 +1082,7 @@ function WeightBadge({
|
|
|
701
1082
|
}
|
|
702
1083
|
);
|
|
703
1084
|
}
|
|
1085
|
+
var BRAND_PRIMARY = getSemanticColors("dark")["brand-primary"];
|
|
704
1086
|
var typeLabels = {
|
|
705
1087
|
e1rm: "PR e1RM",
|
|
706
1088
|
weight: "PR Weight",
|
|
@@ -744,7 +1126,7 @@ function PrBadge({
|
|
|
744
1126
|
accessibilityLabel: `Personal record: ${resolvedLabel}`,
|
|
745
1127
|
testID: "pr-badge-star",
|
|
746
1128
|
...props,
|
|
747
|
-
children: /* @__PURE__ */ jsx(StarIcon, { size: 14, color:
|
|
1129
|
+
children: /* @__PURE__ */ jsx(StarIcon, { size: 14, color: BRAND_PRIMARY, fill: BRAND_PRIMARY, strokeWidth: 2 })
|
|
748
1130
|
}
|
|
749
1131
|
) : /* @__PURE__ */ jsx(
|
|
750
1132
|
BaseBadge,
|
|
@@ -758,7 +1140,7 @@ function PrBadge({
|
|
|
758
1140
|
{
|
|
759
1141
|
style: {
|
|
760
1142
|
fontSize: 12,
|
|
761
|
-
color:
|
|
1143
|
+
color: BRAND_PRIMARY,
|
|
762
1144
|
fontWeight: "700",
|
|
763
1145
|
fontFamily: "Inter, sans-serif"
|
|
764
1146
|
},
|
|
@@ -1092,379 +1474,6 @@ function alpha(color, opacity) {
|
|
|
1092
1474
|
}
|
|
1093
1475
|
return color;
|
|
1094
1476
|
}
|
|
1095
|
-
|
|
1096
|
-
// src/theme/tokens/primitives.ts
|
|
1097
|
-
var primitiveColors = {
|
|
1098
|
-
// Blue scale (primary brand)
|
|
1099
|
-
blue: {
|
|
1100
|
-
400: "#60A5FA",
|
|
1101
|
-
600: "#5048E5",
|
|
1102
|
-
// Primary main
|
|
1103
|
-
700: "#3832A0"},
|
|
1104
|
-
// Teal scale (success)
|
|
1105
|
-
teal: {
|
|
1106
|
-
50: "#F0FDFA",
|
|
1107
|
-
400: "#43C6B7",
|
|
1108
|
-
// Success light
|
|
1109
|
-
500: "#14B8A6",
|
|
1110
|
-
700: "#0E8074"},
|
|
1111
|
-
// Red scale (error)
|
|
1112
|
-
red: {
|
|
1113
|
-
50: "#FEF2F2",
|
|
1114
|
-
400: "#DA6868",
|
|
1115
|
-
// Error light
|
|
1116
|
-
500: "#EF4444",
|
|
1117
|
-
600: "#D14343",
|
|
1118
|
-
// Error main
|
|
1119
|
-
700: "#922E2E"},
|
|
1120
|
-
// Amber scale (warning)
|
|
1121
|
-
amber: {
|
|
1122
|
-
50: "#FFFBEB",
|
|
1123
|
-
400: "#FFBF4C",
|
|
1124
|
-
// Warning light
|
|
1125
|
-
500: "#FFB020",
|
|
1126
|
-
// Warning main
|
|
1127
|
-
600: "#B27B16"},
|
|
1128
|
-
// Sky/Blue scale (info)
|
|
1129
|
-
sky: {
|
|
1130
|
-
50: "#F0F9FF",
|
|
1131
|
-
400: "#64B6F7",
|
|
1132
|
-
// Info light
|
|
1133
|
-
500: "#2196F3",
|
|
1134
|
-
700: "#0B79D0"},
|
|
1135
|
-
// Neutral/Gray scale
|
|
1136
|
-
neutral: {
|
|
1137
|
-
50: "#FAFAFA",
|
|
1138
|
-
100: "#F3F4F6",
|
|
1139
|
-
300: "#D1D5DB",
|
|
1140
|
-
400: "#9CA3AF",
|
|
1141
|
-
500: "#6B7280",
|
|
1142
|
-
600: "#4B5563",
|
|
1143
|
-
900: "#111827"},
|
|
1144
|
-
// Orange scale (accent/brand color)
|
|
1145
|
-
accent: {
|
|
1146
|
-
200: "#FF9630",
|
|
1147
|
-
300: "#FF8500",
|
|
1148
|
-
400: "#FF7900",
|
|
1149
|
-
500: "#F56C00",
|
|
1150
|
-
600: "#E06D10",
|
|
1151
|
-
700: "#D0620C"},
|
|
1152
|
-
// Charcoal scale (dark backgrounds)
|
|
1153
|
-
charcoal: {
|
|
1154
|
-
300: "#2C2C2C",
|
|
1155
|
-
400: "#1F1F1F",
|
|
1156
|
-
500: "#1C1C1C",
|
|
1157
|
-
600: "#191919",
|
|
1158
|
-
700: "#161616",
|
|
1159
|
-
900: "#101010"
|
|
1160
|
-
},
|
|
1161
|
-
// Steel scale (cool accent)
|
|
1162
|
-
steel: {
|
|
1163
|
-
300: "#678498",
|
|
1164
|
-
400: "#557488",
|
|
1165
|
-
500: "#406D87",
|
|
1166
|
-
600: "#39617A",
|
|
1167
|
-
700: "#32556D"},
|
|
1168
|
-
// Pure colors
|
|
1169
|
-
white: "#FFFFFF"};
|
|
1170
|
-
var discreteRainbow = [
|
|
1171
|
-
"#E8ECFB",
|
|
1172
|
-
"#D9CCE3",
|
|
1173
|
-
"#D1BBD7",
|
|
1174
|
-
"#CAACCB",
|
|
1175
|
-
"#BA8DB4",
|
|
1176
|
-
"#AE76A3",
|
|
1177
|
-
"#AA6F9E",
|
|
1178
|
-
"#994F88",
|
|
1179
|
-
"#882E72",
|
|
1180
|
-
"#1965B0",
|
|
1181
|
-
"#437DBF",
|
|
1182
|
-
"#5289C7",
|
|
1183
|
-
"#6195CF",
|
|
1184
|
-
"#7BAFDE",
|
|
1185
|
-
"#4EB265",
|
|
1186
|
-
"#90C987",
|
|
1187
|
-
"#CAE0AB",
|
|
1188
|
-
"#F7F056",
|
|
1189
|
-
"#F7CB45",
|
|
1190
|
-
"#F6C141",
|
|
1191
|
-
"#F4A736",
|
|
1192
|
-
"#F1932D",
|
|
1193
|
-
"#EE8026",
|
|
1194
|
-
"#E8601C",
|
|
1195
|
-
"#E65518",
|
|
1196
|
-
"#DC050C",
|
|
1197
|
-
"#A5170E",
|
|
1198
|
-
"#72190E",
|
|
1199
|
-
"#42150A"
|
|
1200
|
-
];
|
|
1201
|
-
|
|
1202
|
-
// src/theme/tokens/semantic.ts
|
|
1203
|
-
var semanticColorsLight = {
|
|
1204
|
-
// Brand colors (brand-*)
|
|
1205
|
-
"brand-primary": primitiveColors.accent[400],
|
|
1206
|
-
// #FF7900
|
|
1207
|
-
"brand-primary-light": primitiveColors.accent[200],
|
|
1208
|
-
// #FF9630
|
|
1209
|
-
"brand-primary-dark": primitiveColors.accent[700],
|
|
1210
|
-
// #D0620C
|
|
1211
|
-
"brand-primary-subtle": "rgba(255, 121, 0, 0.08)",
|
|
1212
|
-
"brand-primary-hover": primitiveColors.accent[500],
|
|
1213
|
-
"brand-primary-active": primitiveColors.accent[600],
|
|
1214
|
-
"brand-secondary": primitiveColors.steel[500],
|
|
1215
|
-
// #406D87
|
|
1216
|
-
"brand-secondary-light": primitiveColors.steel[300],
|
|
1217
|
-
// #678498
|
|
1218
|
-
"brand-secondary-dark": primitiveColors.steel[700],
|
|
1219
|
-
// #32556D
|
|
1220
|
-
"brand-secondary-subtle": "rgba(64, 109, 135, 0.08)",
|
|
1221
|
-
"brand-secondary-hover": primitiveColors.steel[600],
|
|
1222
|
-
"brand-secondary-active": primitiveColors.steel[700],
|
|
1223
|
-
// Text on brand backgrounds (on-*)
|
|
1224
|
-
"on-brand-primary": primitiveColors.white,
|
|
1225
|
-
"on-brand-secondary": primitiveColors.white,
|
|
1226
|
-
// Status colors (status-*)
|
|
1227
|
-
"status-success": primitiveColors.teal[500],
|
|
1228
|
-
// #14B8A6
|
|
1229
|
-
"status-success-light": primitiveColors.teal[400],
|
|
1230
|
-
// #43C6B7
|
|
1231
|
-
"status-success-dark": primitiveColors.teal[700],
|
|
1232
|
-
// #0E8074
|
|
1233
|
-
"status-success-subtle": primitiveColors.teal[50],
|
|
1234
|
-
"status-error": primitiveColors.red[600],
|
|
1235
|
-
// #D14343
|
|
1236
|
-
"status-error-light": primitiveColors.red[400],
|
|
1237
|
-
// #DA6868
|
|
1238
|
-
"status-error-dark": primitiveColors.red[700],
|
|
1239
|
-
// #922E2E
|
|
1240
|
-
"status-error-subtle": primitiveColors.red[50],
|
|
1241
|
-
"status-warning": primitiveColors.amber[500],
|
|
1242
|
-
// #FFB020
|
|
1243
|
-
"status-warning-light": primitiveColors.amber[400],
|
|
1244
|
-
// #FFBF4C
|
|
1245
|
-
"status-warning-dark": primitiveColors.amber[600],
|
|
1246
|
-
// #B27B16
|
|
1247
|
-
"status-warning-subtle": primitiveColors.amber[50],
|
|
1248
|
-
"status-info": primitiveColors.sky[500],
|
|
1249
|
-
// #2196F3
|
|
1250
|
-
"status-info-light": primitiveColors.sky[400],
|
|
1251
|
-
// #64B6F7
|
|
1252
|
-
"status-info-dark": primitiveColors.sky[700],
|
|
1253
|
-
// #0B79D0
|
|
1254
|
-
"status-info-subtle": primitiveColors.sky[50],
|
|
1255
|
-
// Text on status backgrounds (on-status-*)
|
|
1256
|
-
"on-status-success": primitiveColors.white,
|
|
1257
|
-
"on-status-error": primitiveColors.white,
|
|
1258
|
-
"on-status-warning": primitiveColors.white,
|
|
1259
|
-
"on-status-info": primitiveColors.white,
|
|
1260
|
-
// Result/outcome indicators (result-*)
|
|
1261
|
-
"result-improve": "#4caf50",
|
|
1262
|
-
// Green - positive outcome
|
|
1263
|
-
"result-improve-light": "rgba(76, 175, 80, 0.12)",
|
|
1264
|
-
"result-improve-dark": "#248a24",
|
|
1265
|
-
"result-degrade": "#ef5350",
|
|
1266
|
-
// Red - negative outcome
|
|
1267
|
-
"result-degrade-light": "rgba(239, 83, 80, 0.12)",
|
|
1268
|
-
"result-degrade-dark": "#b30000",
|
|
1269
|
-
"result-inconclusive": "#9E9A97",
|
|
1270
|
-
// Gray - no clear result
|
|
1271
|
-
"result-inconclusive-light": "rgba(158, 154, 151, 0.12)",
|
|
1272
|
-
"result-neutral": primitiveColors.neutral[500],
|
|
1273
|
-
// Neutral baseline
|
|
1274
|
-
// Text on result backgrounds (on-result-*)
|
|
1275
|
-
"on-result-improve": primitiveColors.white,
|
|
1276
|
-
"on-result-degrade": primitiveColors.white,
|
|
1277
|
-
"on-result-inconclusive": primitiveColors.white,
|
|
1278
|
-
// Data visualization colors (data-*)
|
|
1279
|
-
// First 10 colors from discrete rainbow optimized for charts
|
|
1280
|
-
"data-1": discreteRainbow[9],
|
|
1281
|
-
// #1965B0 - Blue
|
|
1282
|
-
"data-2": discreteRainbow[14],
|
|
1283
|
-
// #4EB265 - Green
|
|
1284
|
-
"data-3": discreteRainbow[17],
|
|
1285
|
-
// #F7F056 - Yellow
|
|
1286
|
-
"data-4": discreteRainbow[25],
|
|
1287
|
-
// #DC050C - Red
|
|
1288
|
-
"data-5": discreteRainbow[8],
|
|
1289
|
-
// #882E72 - Purple
|
|
1290
|
-
"data-6": discreteRainbow[20],
|
|
1291
|
-
// #F4A736 - Orange
|
|
1292
|
-
"data-7": discreteRainbow[13],
|
|
1293
|
-
// #7BAFDE - Light Blue
|
|
1294
|
-
"data-8": discreteRainbow[15],
|
|
1295
|
-
// #90C987 - Light Green
|
|
1296
|
-
"data-9": discreteRainbow[3],
|
|
1297
|
-
// #CAACCB - Lavender
|
|
1298
|
-
"data-10": discreteRainbow[22],
|
|
1299
|
-
// #EE8026 - Dark Orange
|
|
1300
|
-
// Text colors (text-*)
|
|
1301
|
-
"text-primary": "#121828",
|
|
1302
|
-
"text-secondary": "#65748B",
|
|
1303
|
-
"text-tertiary": primitiveColors.neutral[400],
|
|
1304
|
-
"text-disabled": "rgba(55, 65, 81, 0.48)",
|
|
1305
|
-
"text-inverse": primitiveColors.white,
|
|
1306
|
-
"text-link": primitiveColors.blue[600],
|
|
1307
|
-
"text-link-hover": primitiveColors.blue[700],
|
|
1308
|
-
// Surface colors (surface-*) - for elevated containers
|
|
1309
|
-
"surface-base": primitiveColors.white,
|
|
1310
|
-
"surface-elevated": primitiveColors.neutral[50],
|
|
1311
|
-
// #FAFAFA - slightly off-white for elevated cards
|
|
1312
|
-
"surface-raised": primitiveColors.neutral[100],
|
|
1313
|
-
// #F3F4F6 - light gray for raised cards
|
|
1314
|
-
"surface-overlay": primitiveColors.white,
|
|
1315
|
-
"surface-input": primitiveColors.neutral[50],
|
|
1316
|
-
// Input field background (filled variant)
|
|
1317
|
-
// Background colors (background-*)
|
|
1318
|
-
"background-base": "#EBEBEB",
|
|
1319
|
-
"background-default": primitiveColors.white,
|
|
1320
|
-
"background-subtle": primitiveColors.neutral[50],
|
|
1321
|
-
// Border colors (border-*)
|
|
1322
|
-
"border-default": "#E8E9EB",
|
|
1323
|
-
"border-subtle": primitiveColors.neutral[100],
|
|
1324
|
-
"border-strong": primitiveColors.neutral[300],
|
|
1325
|
-
"border-focus": primitiveColors.blue[600],
|
|
1326
|
-
"border-input": primitiveColors.neutral[300],
|
|
1327
|
-
// Input field border
|
|
1328
|
-
"border-input-hover": primitiveColors.neutral[400],
|
|
1329
|
-
// Input field border on hover
|
|
1330
|
-
"border-input-focus": primitiveColors.blue[600],
|
|
1331
|
-
// Input field border on focus
|
|
1332
|
-
"border-input-error": primitiveColors.red[600],
|
|
1333
|
-
// Input field border on error
|
|
1334
|
-
// Interactive states (interactive-*)
|
|
1335
|
-
"interactive-hover": "rgba(55, 65, 81, 0.04)",
|
|
1336
|
-
"interactive-focus": "rgba(55, 65, 81, 0.12)",
|
|
1337
|
-
"interactive-active": "rgba(55, 65, 81, 0.16)",
|
|
1338
|
-
"interactive-selected": "rgba(55, 65, 81, 0.08)",
|
|
1339
|
-
"interactive-disabled": "rgba(55, 65, 81, 0.12)",
|
|
1340
|
-
"interactive-disabled-text": "rgba(55, 65, 81, 0.26)",
|
|
1341
|
-
// Divider
|
|
1342
|
-
"divider": "#E8E9EB",
|
|
1343
|
-
// Avatar default
|
|
1344
|
-
"avatar-background": primitiveColors.neutral[500],
|
|
1345
|
-
"avatar-text": primitiveColors.white
|
|
1346
|
-
};
|
|
1347
|
-
var semanticColorsDark = {
|
|
1348
|
-
// Brand colors stay the same in dark mode
|
|
1349
|
-
"brand-primary": primitiveColors.accent[400],
|
|
1350
|
-
"brand-primary-light": primitiveColors.accent[200],
|
|
1351
|
-
"brand-primary-dark": primitiveColors.accent[700],
|
|
1352
|
-
"brand-primary-subtle": "rgba(255, 121, 0, 0.12)",
|
|
1353
|
-
"brand-primary-hover": primitiveColors.accent[300],
|
|
1354
|
-
"brand-primary-active": primitiveColors.accent[200],
|
|
1355
|
-
"brand-secondary": primitiveColors.steel[500],
|
|
1356
|
-
"brand-secondary-light": primitiveColors.steel[300],
|
|
1357
|
-
"brand-secondary-dark": primitiveColors.steel[700],
|
|
1358
|
-
"brand-secondary-subtle": "rgba(64, 109, 135, 0.12)",
|
|
1359
|
-
"brand-secondary-hover": primitiveColors.steel[400],
|
|
1360
|
-
"brand-secondary-active": primitiveColors.steel[300],
|
|
1361
|
-
// Text on brand backgrounds
|
|
1362
|
-
"on-brand-primary": primitiveColors.white,
|
|
1363
|
-
"on-brand-secondary": primitiveColors.white,
|
|
1364
|
-
// Status colors
|
|
1365
|
-
"status-success": primitiveColors.teal[500],
|
|
1366
|
-
"status-success-light": primitiveColors.teal[400],
|
|
1367
|
-
"status-success-dark": primitiveColors.teal[700],
|
|
1368
|
-
"status-success-subtle": "rgba(20, 184, 166, 0.12)",
|
|
1369
|
-
"status-error": primitiveColors.red[600],
|
|
1370
|
-
"status-error-light": primitiveColors.red[400],
|
|
1371
|
-
"status-error-dark": primitiveColors.red[700],
|
|
1372
|
-
"status-error-subtle": "rgba(209, 67, 67, 0.12)",
|
|
1373
|
-
"status-warning": primitiveColors.amber[500],
|
|
1374
|
-
"status-warning-light": primitiveColors.amber[400],
|
|
1375
|
-
"status-warning-dark": primitiveColors.amber[600],
|
|
1376
|
-
"status-warning-subtle": "rgba(255, 176, 32, 0.12)",
|
|
1377
|
-
"status-info": primitiveColors.sky[500],
|
|
1378
|
-
"status-info-light": primitiveColors.sky[400],
|
|
1379
|
-
"status-info-dark": primitiveColors.sky[700],
|
|
1380
|
-
"status-info-subtle": "rgba(33, 150, 243, 0.12)",
|
|
1381
|
-
// Text on status backgrounds
|
|
1382
|
-
"on-status-success": primitiveColors.white,
|
|
1383
|
-
"on-status-error": primitiveColors.white,
|
|
1384
|
-
"on-status-warning": primitiveColors.white,
|
|
1385
|
-
"on-status-info": primitiveColors.white,
|
|
1386
|
-
// Result/outcome indicators (result-*)
|
|
1387
|
-
"result-improve": "#4caf50",
|
|
1388
|
-
"result-improve-light": "rgba(76, 175, 80, 0.16)",
|
|
1389
|
-
"result-improve-dark": "#248a24",
|
|
1390
|
-
"result-degrade": "#ef5350",
|
|
1391
|
-
"result-degrade-light": "rgba(239, 83, 80, 0.16)",
|
|
1392
|
-
"result-degrade-dark": "#b30000",
|
|
1393
|
-
"result-inconclusive": "#9E9A97",
|
|
1394
|
-
"result-inconclusive-light": "rgba(158, 154, 151, 0.16)",
|
|
1395
|
-
"result-neutral": primitiveColors.neutral[400],
|
|
1396
|
-
// Text on result backgrounds
|
|
1397
|
-
"on-result-improve": primitiveColors.white,
|
|
1398
|
-
"on-result-degrade": primitiveColors.white,
|
|
1399
|
-
"on-result-inconclusive": primitiveColors.white,
|
|
1400
|
-
// Data visualization colors (same in dark mode for consistency)
|
|
1401
|
-
"data-1": discreteRainbow[9],
|
|
1402
|
-
"data-2": discreteRainbow[14],
|
|
1403
|
-
"data-3": discreteRainbow[17],
|
|
1404
|
-
"data-4": discreteRainbow[25],
|
|
1405
|
-
"data-5": discreteRainbow[8],
|
|
1406
|
-
"data-6": discreteRainbow[20],
|
|
1407
|
-
"data-7": discreteRainbow[13],
|
|
1408
|
-
"data-8": discreteRainbow[15],
|
|
1409
|
-
"data-9": discreteRainbow[3],
|
|
1410
|
-
"data-10": discreteRainbow[22],
|
|
1411
|
-
// Text colors - inverted for dark mode
|
|
1412
|
-
"text-primary": primitiveColors.neutral[100],
|
|
1413
|
-
"text-secondary": primitiveColors.neutral[400],
|
|
1414
|
-
"text-tertiary": primitiveColors.neutral[500],
|
|
1415
|
-
"text-disabled": "rgba(255, 255, 255, 0.38)",
|
|
1416
|
-
"text-inverse": primitiveColors.neutral[900],
|
|
1417
|
-
"text-link": "#828DF8",
|
|
1418
|
-
"text-link-hover": primitiveColors.blue[400],
|
|
1419
|
-
// Surface colors - dark backgrounds
|
|
1420
|
-
"surface-base": primitiveColors.charcoal[700],
|
|
1421
|
-
// #161616 - main surface
|
|
1422
|
-
"surface-elevated": primitiveColors.charcoal[600],
|
|
1423
|
-
// #191919 - elevated surface
|
|
1424
|
-
"surface-raised": primitiveColors.charcoal[500],
|
|
1425
|
-
// #1C1C1C - raised surface
|
|
1426
|
-
"surface-overlay": primitiveColors.charcoal[600],
|
|
1427
|
-
// #191919 - overlay surface
|
|
1428
|
-
"surface-input": primitiveColors.charcoal[600],
|
|
1429
|
-
// #191919 - input surface
|
|
1430
|
-
// Background colors
|
|
1431
|
-
"background-base": primitiveColors.charcoal[900],
|
|
1432
|
-
// #101010 - darkest charcoal
|
|
1433
|
-
"background-default": primitiveColors.charcoal[700],
|
|
1434
|
-
// #161616 - main background
|
|
1435
|
-
"background-subtle": primitiveColors.charcoal[500],
|
|
1436
|
-
// #1C1C1C - subtle background
|
|
1437
|
-
// Border colors
|
|
1438
|
-
"border-default": primitiveColors.charcoal[400],
|
|
1439
|
-
// #1F1F1F - default border
|
|
1440
|
-
"border-subtle": primitiveColors.charcoal[500],
|
|
1441
|
-
// #1C1C1C - subtle border
|
|
1442
|
-
"border-strong": primitiveColors.charcoal[300],
|
|
1443
|
-
// #2C2C2C - strong border
|
|
1444
|
-
"border-focus": "#828DF8",
|
|
1445
|
-
"border-input": primitiveColors.neutral[600],
|
|
1446
|
-
"border-input-hover": primitiveColors.neutral[500],
|
|
1447
|
-
"border-input-focus": "#828DF8",
|
|
1448
|
-
"border-input-error": primitiveColors.red[500],
|
|
1449
|
-
// Interactive states
|
|
1450
|
-
"interactive-hover": "rgba(255, 255, 255, 0.04)",
|
|
1451
|
-
"interactive-focus": "rgba(255, 255, 255, 0.12)",
|
|
1452
|
-
"interactive-active": "rgba(255, 255, 255, 0.16)",
|
|
1453
|
-
"interactive-selected": "rgba(255, 255, 255, 0.08)",
|
|
1454
|
-
"interactive-disabled": "rgba(255, 255, 255, 0.12)",
|
|
1455
|
-
"interactive-disabled-text": "rgba(255, 255, 255, 0.26)",
|
|
1456
|
-
// Divider
|
|
1457
|
-
"divider": primitiveColors.charcoal[400],
|
|
1458
|
-
// #1F1F1F - divider color
|
|
1459
|
-
// Avatar default
|
|
1460
|
-
"avatar-background": primitiveColors.neutral[600],
|
|
1461
|
-
"avatar-text": primitiveColors.white
|
|
1462
|
-
};
|
|
1463
|
-
function getSemanticColors(mode) {
|
|
1464
|
-
return mode === "dark" ? semanticColorsDark : semanticColorsLight;
|
|
1465
|
-
}
|
|
1466
|
-
|
|
1467
|
-
// src/components/custom/Workout/TempoBar.tsx
|
|
1468
1477
|
var t = getSemanticColors("dark");
|
|
1469
1478
|
var TEMPO_PACING = {
|
|
1470
1479
|
behindThresholdPct: 0.15,
|
|
@@ -1487,15 +1496,14 @@ function getTempoFillPct(elapsedMs, targetMs) {
|
|
|
1487
1496
|
});
|
|
1488
1497
|
|
|
1489
1498
|
// src/components/custom/Workout/TempoDisplay.tsx
|
|
1499
|
+
var t2 = getSemanticColors("dark");
|
|
1490
1500
|
var INTER = "Inter, sans-serif";
|
|
1491
1501
|
var TEXT_TERTIARY = "#6B7280";
|
|
1492
|
-
var STATUS_ERROR = "
|
|
1502
|
+
var STATUS_ERROR = t2["status-error"];
|
|
1493
1503
|
var phaseColors = {
|
|
1494
|
-
eccentric: "
|
|
1495
|
-
// status-warning (amber)
|
|
1504
|
+
eccentric: t2["status-warning"],
|
|
1496
1505
|
pauseBottom: TEXT_TERTIARY,
|
|
1497
|
-
concentric: "
|
|
1498
|
-
// status-success (teal)
|
|
1506
|
+
concentric: t2["status-success"],
|
|
1499
1507
|
pauseTop: TEXT_TERTIARY,
|
|
1500
1508
|
dash: TEXT_TERTIARY
|
|
1501
1509
|
};
|
|
@@ -1825,7 +1833,7 @@ function SetRow({
|
|
|
1825
1833
|
fontSize: 10,
|
|
1826
1834
|
fontWeight: "700",
|
|
1827
1835
|
fontFamily: "Inter, sans-serif",
|
|
1828
|
-
color:
|
|
1836
|
+
color: WORKOUT_TOKENS.scale.orange,
|
|
1829
1837
|
backgroundColor: "rgba(255,165,2,0.12)",
|
|
1830
1838
|
paddingVertical: 1,
|
|
1831
1839
|
paddingHorizontal: 5,
|
|
@@ -2375,7 +2383,7 @@ function ExerciseCard(props) {
|
|
|
2375
2383
|
return /* @__PURE__ */ jsx(UpcomingCard, { ...props });
|
|
2376
2384
|
}
|
|
2377
2385
|
}
|
|
2378
|
-
var
|
|
2386
|
+
var BRAND_PRIMARY2 = getSemanticColors("dark")["brand-primary"];
|
|
2379
2387
|
var INPUT_CLASSNAME = "bg-surface-raised border-border-strong text-text-primary";
|
|
2380
2388
|
var inputStyle = {
|
|
2381
2389
|
fontSize: 14,
|
|
@@ -2504,7 +2512,7 @@ function InputBar({
|
|
|
2504
2512
|
onPress: onRecord,
|
|
2505
2513
|
disabled: !canRecord,
|
|
2506
2514
|
style: ({ pressed }) => ({
|
|
2507
|
-
backgroundColor:
|
|
2515
|
+
backgroundColor: BRAND_PRIMARY2,
|
|
2508
2516
|
borderRadius: 8,
|
|
2509
2517
|
paddingVertical: 10,
|
|
2510
2518
|
paddingHorizontal: 16,
|
|
@@ -2531,7 +2539,7 @@ function InputBar({
|
|
|
2531
2539
|
}
|
|
2532
2540
|
);
|
|
2533
2541
|
}
|
|
2534
|
-
var
|
|
2542
|
+
var BRAND_PRIMARY3 = getSemanticColors("dark")["brand-primary"];
|
|
2535
2543
|
function RestTimer({
|
|
2536
2544
|
totalSeconds,
|
|
2537
2545
|
elapsedMs,
|
|
@@ -2637,7 +2645,7 @@ function RestTimer({
|
|
|
2637
2645
|
{
|
|
2638
2646
|
style: {
|
|
2639
2647
|
height: "100%",
|
|
2640
|
-
backgroundColor:
|
|
2648
|
+
backgroundColor: BRAND_PRIMARY3,
|
|
2641
2649
|
borderRadius: 2,
|
|
2642
2650
|
width: `${progressPct}%`
|
|
2643
2651
|
},
|
|
@@ -2694,7 +2702,7 @@ function RestTimer({
|
|
|
2694
2702
|
fontSize: 11,
|
|
2695
2703
|
fontFamily: "Inter, sans-serif",
|
|
2696
2704
|
fontWeight: "600",
|
|
2697
|
-
color:
|
|
2705
|
+
color: BRAND_PRIMARY3
|
|
2698
2706
|
},
|
|
2699
2707
|
children: "Skip"
|
|
2700
2708
|
}
|
|
@@ -2708,7 +2716,7 @@ function RestTimer({
|
|
|
2708
2716
|
}
|
|
2709
2717
|
var DEFAULTS = {
|
|
2710
2718
|
label: "SS",
|
|
2711
|
-
color: "
|
|
2719
|
+
color: getSemanticColors("dark")["brand-primary"],
|
|
2712
2720
|
bgBase: "#101010"
|
|
2713
2721
|
};
|
|
2714
2722
|
function SupersetWrapper({
|
|
@@ -2761,7 +2769,7 @@ function SupersetWrapper({
|
|
|
2761
2769
|
}
|
|
2762
2770
|
|
|
2763
2771
|
// src/components/custom/Workout/ActiveWorkoutPage.tsx
|
|
2764
|
-
var
|
|
2772
|
+
var BRAND_PRIMARY4 = getSemanticColors("dark")["brand-primary"];
|
|
2765
2773
|
function countCompletedSets(exercise) {
|
|
2766
2774
|
if (exercise.setVelocities != null) return exercise.setVelocities.length;
|
|
2767
2775
|
if (exercise.status === "completed") return exercise.totalPlannedSets;
|
|
@@ -2876,7 +2884,7 @@ function WorkoutHeader({
|
|
|
2876
2884
|
fontSize: 15,
|
|
2877
2885
|
fontFamily: '"Space Grotesk", sans-serif',
|
|
2878
2886
|
fontWeight: "700",
|
|
2879
|
-
color:
|
|
2887
|
+
color: BRAND_PRIMARY4,
|
|
2880
2888
|
fontVariant: ["tabular-nums"]
|
|
2881
2889
|
},
|
|
2882
2890
|
children: `${progress.completedExercises}/${progress.totalExercises}`
|
|
@@ -2910,7 +2918,7 @@ function WorkoutHeader({
|
|
|
2910
2918
|
style: {
|
|
2911
2919
|
height: "100%",
|
|
2912
2920
|
width: `${Math.round(progress.fraction * 100)}%`,
|
|
2913
|
-
backgroundColor:
|
|
2921
|
+
backgroundColor: BRAND_PRIMARY4,
|
|
2914
2922
|
borderRadius: 2
|
|
2915
2923
|
},
|
|
2916
2924
|
testID: "active-workout-page-progress-fill"
|
|
@@ -3492,17 +3500,18 @@ function CardContent({ children, className }) {
|
|
|
3492
3500
|
function CardFooter({ children, className }) {
|
|
3493
3501
|
return /* @__PURE__ */ jsx(View, { className: cn("px-6 py-4 flex-row items-center gap-2", className), children });
|
|
3494
3502
|
}
|
|
3503
|
+
var t3 = getSemanticColors("dark");
|
|
3495
3504
|
var solidVariantColors = {
|
|
3496
|
-
success: "
|
|
3497
|
-
warning: "
|
|
3498
|
-
error: "
|
|
3505
|
+
success: t3["status-success"],
|
|
3506
|
+
warning: t3["status-warning"],
|
|
3507
|
+
error: t3["status-error"],
|
|
3499
3508
|
neutral: "#6B7280"
|
|
3500
3509
|
};
|
|
3501
3510
|
var ringVariantStyles = {
|
|
3502
3511
|
"on-track": {
|
|
3503
|
-
backgroundColor: "rgba(
|
|
3512
|
+
backgroundColor: "rgba(46,213,115,0.15)",
|
|
3504
3513
|
borderWidth: 1,
|
|
3505
|
-
borderColor: "rgba(
|
|
3514
|
+
borderColor: "rgba(46,213,115,0.3)"
|
|
3506
3515
|
},
|
|
3507
3516
|
deviation: {
|
|
3508
3517
|
backgroundColor: "rgba(245,158,11,0.15)",
|
|
@@ -3517,11 +3526,11 @@ var ringVariantStyles = {
|
|
|
3517
3526
|
}
|
|
3518
3527
|
};
|
|
3519
3528
|
var glowStyles = {
|
|
3520
|
-
success: { boxShadow: "0 0 4px rgba(
|
|
3529
|
+
success: { boxShadow: "0 0 4px rgba(46,213,115,0.4)" },
|
|
3521
3530
|
warning: { boxShadow: "0 0 4px rgba(245,158,11,0.4)" },
|
|
3522
3531
|
error: { boxShadow: "0 0 4px rgba(239,68,68,0.4)" },
|
|
3523
3532
|
neutral: { boxShadow: "0 0 4px rgba(107,114,128,0.4)" },
|
|
3524
|
-
"on-track": { boxShadow: "0 0 4px rgba(
|
|
3533
|
+
"on-track": { boxShadow: "0 0 4px rgba(46,213,115,0.4)" },
|
|
3525
3534
|
deviation: { boxShadow: "0 0 4px rgba(245,158,11,0.4)" },
|
|
3526
3535
|
future: { boxShadow: "0 0 4px rgba(107,114,128,0.4)" }
|
|
3527
3536
|
};
|
|
@@ -3535,8 +3544,8 @@ var iconColors = {
|
|
|
3535
3544
|
warning: "#6B4000",
|
|
3536
3545
|
error: "#5C1A1A",
|
|
3537
3546
|
neutral: "#D1D5DB",
|
|
3538
|
-
"on-track": "
|
|
3539
|
-
deviation: "
|
|
3547
|
+
"on-track": t3["status-success"],
|
|
3548
|
+
deviation: t3["status-warning"],
|
|
3540
3549
|
future: "#6B7280"
|
|
3541
3550
|
};
|
|
3542
3551
|
var sizeDimensions = {
|
|
@@ -3617,20 +3626,24 @@ function StatusDot({
|
|
|
3617
3626
|
}
|
|
3618
3627
|
return /* @__PURE__ */ jsx(View, { className, ...props, children: dot });
|
|
3619
3628
|
}
|
|
3629
|
+
var MESO_ACCENT_GRADIENT_DARK = primitiveRamps.orange[500];
|
|
3630
|
+
var MESO_ACCENT_GRADIENT_LIGHT = primitiveRamps.orange[300];
|
|
3631
|
+
var WORKOUT_PILL_DELOAD = primitiveRamps.magenta[600];
|
|
3620
3632
|
|
|
3621
3633
|
// src/components/custom/Workout/MesoStatusCard.tsx
|
|
3622
|
-
var
|
|
3623
|
-
var
|
|
3624
|
-
var
|
|
3625
|
-
var
|
|
3626
|
-
var
|
|
3627
|
-
var
|
|
3628
|
-
var
|
|
3634
|
+
var t4 = getSemanticColors("dark");
|
|
3635
|
+
var BRAND_PRIMARY5 = t4["brand-primary"];
|
|
3636
|
+
var BRAND_PRIMARY_DARK = MESO_ACCENT_GRADIENT_DARK;
|
|
3637
|
+
var BRAND_PRIMARY_LIGHT = MESO_ACCENT_GRADIENT_LIGHT;
|
|
3638
|
+
var SUCCESS = t4["status-success"];
|
|
3639
|
+
var WARNING = t4["status-warning"];
|
|
3640
|
+
var ERROR = t4["status-error"];
|
|
3641
|
+
var ACCENT_STOPS = [BRAND_PRIMARY_DARK, BRAND_PRIMARY5, BRAND_PRIMARY_LIGHT];
|
|
3629
3642
|
var CARD_GRADIENT = `linear-gradient(135deg, ${resolveColor("surface-elevated")} 0%, ${resolveColor("surface-raised")} 100%)`;
|
|
3630
|
-
var GAUGE_GRADIENT = "linear-gradient(90deg, rgba(
|
|
3643
|
+
var GAUGE_GRADIENT = "linear-gradient(90deg, rgba(46,213,115,0.25) 0%, rgba(249,180,21,0.25) 50%, rgba(209,67,67,0.25) 100%)";
|
|
3631
3644
|
var STATUS_VARIANTS = {
|
|
3632
|
-
success: { bg: "rgba(
|
|
3633
|
-
warning: { bg: "rgba(
|
|
3645
|
+
success: { bg: "rgba(46,213,115,0.15)", border: "rgba(46,213,115,0.3)", text: SUCCESS },
|
|
3646
|
+
warning: { bg: "rgba(249,180,21,0.15)", border: "rgba(249,180,21,0.3)", text: WARNING },
|
|
3634
3647
|
error: { bg: "rgba(209,67,67,0.15)", border: "rgba(209,67,67,0.25)", text: ERROR }
|
|
3635
3648
|
};
|
|
3636
3649
|
function clamp01(value) {
|
|
@@ -3922,9 +3935,9 @@ function MesoStatusCard({
|
|
|
3922
3935
|
View,
|
|
3923
3936
|
{
|
|
3924
3937
|
style: {
|
|
3925
|
-
backgroundColor: "rgba(
|
|
3938
|
+
backgroundColor: "rgba(249,180,21,0.06)",
|
|
3926
3939
|
borderWidth: 1,
|
|
3927
|
-
borderColor: "rgba(
|
|
3940
|
+
borderColor: "rgba(249,180,21,0.15)",
|
|
3928
3941
|
borderRadius: 8,
|
|
3929
3942
|
paddingVertical: 10,
|
|
3930
3943
|
paddingHorizontal: 12
|
|
@@ -3950,9 +3963,9 @@ function MesoStatusCard({
|
|
|
3950
3963
|
className: "flex-row items-center",
|
|
3951
3964
|
style: {
|
|
3952
3965
|
gap: 8,
|
|
3953
|
-
backgroundColor: "rgba(
|
|
3966
|
+
backgroundColor: "rgba(46,213,115,0.06)",
|
|
3954
3967
|
borderWidth: 1,
|
|
3955
|
-
borderColor: "rgba(
|
|
3968
|
+
borderColor: "rgba(46,213,115,0.2)",
|
|
3956
3969
|
borderRadius: 8,
|
|
3957
3970
|
paddingVertical: 10,
|
|
3958
3971
|
paddingHorizontal: 12
|
|
@@ -3981,21 +3994,22 @@ function MesoStatusCard({
|
|
|
3981
3994
|
}
|
|
3982
3995
|
);
|
|
3983
3996
|
}
|
|
3984
|
-
var
|
|
3997
|
+
var sem = getSemanticColors("dark");
|
|
3998
|
+
var BRAND_PRIMARY6 = sem["brand-primary"];
|
|
3985
3999
|
var PROJECTION_LINE_COLOR = resolveColor("text-tertiary");
|
|
3986
|
-
var STATUS_SUCCESS = "
|
|
3987
|
-
var STATUS_ERROR2 = "
|
|
3988
|
-
var STATUS_WARNING = "
|
|
4000
|
+
var STATUS_SUCCESS = sem["status-success"];
|
|
4001
|
+
var STATUS_ERROR2 = sem["status-error"];
|
|
4002
|
+
var STATUS_WARNING = sem["status-warning"];
|
|
3989
4003
|
var GRID_LINE = "rgba(255,255,255,0.06)";
|
|
3990
|
-
var SUCCESS_PILL_BG = "rgba(
|
|
3991
|
-
var SUCCESS_PILL_BORDER = "rgba(
|
|
4004
|
+
var SUCCESS_PILL_BG = "rgba(46,213,115,0.10)";
|
|
4005
|
+
var SUCCESS_PILL_BORDER = "rgba(46,213,115,0.20)";
|
|
3992
4006
|
var ERROR_PILL_BG = "rgba(209,67,67,0.10)";
|
|
3993
4007
|
var ERROR_PILL_BORDER = "rgba(209,67,67,0.20)";
|
|
3994
4008
|
var PLOT_LEFT = 26;
|
|
3995
4009
|
var TOOLTIP_WIDTH = 124;
|
|
3996
4010
|
function timeOf(dateStr) {
|
|
3997
|
-
const
|
|
3998
|
-
return Number.isNaN(
|
|
4011
|
+
const t10 = Date.parse(dateStr);
|
|
4012
|
+
return Number.isNaN(t10) ? 0 : t10;
|
|
3999
4013
|
}
|
|
4000
4014
|
function formatValue(value) {
|
|
4001
4015
|
return `${Math.round(value)}`;
|
|
@@ -4272,7 +4286,7 @@ function StrengthTrendChart({
|
|
|
4272
4286
|
ChartLine,
|
|
4273
4287
|
{
|
|
4274
4288
|
coords: geometry.actual,
|
|
4275
|
-
color:
|
|
4289
|
+
color: BRAND_PRIMARY6,
|
|
4276
4290
|
strokeWidth: 2.5,
|
|
4277
4291
|
testID: "strength-trend-chart-actual-segment"
|
|
4278
4292
|
}
|
|
@@ -4325,7 +4339,7 @@ function StrengthTrendChart({
|
|
|
4325
4339
|
width: 8,
|
|
4326
4340
|
height: 8,
|
|
4327
4341
|
borderRadius: 1,
|
|
4328
|
-
backgroundColor:
|
|
4342
|
+
backgroundColor: BRAND_PRIMARY6
|
|
4329
4343
|
}
|
|
4330
4344
|
},
|
|
4331
4345
|
`point-${c.index}`
|
|
@@ -4455,7 +4469,7 @@ function StrengthTrendChart({
|
|
|
4455
4469
|
testID: "strength-trend-chart-legend",
|
|
4456
4470
|
children: [
|
|
4457
4471
|
/* @__PURE__ */ jsxs(View, { className: "flex-row items-center", style: { gap: 5 }, children: [
|
|
4458
|
-
/* @__PURE__ */ jsx(View, { style: { width: 14, height: 2.5, borderRadius: 1.5, backgroundColor:
|
|
4472
|
+
/* @__PURE__ */ jsx(View, { style: { width: 14, height: 2.5, borderRadius: 1.5, backgroundColor: BRAND_PRIMARY6 } }),
|
|
4459
4473
|
/* @__PURE__ */ jsx(Text, { className: "text-text-secondary", style: { fontSize: 10, fontFamily: "Inter, sans-serif" }, children: "Actual" })
|
|
4460
4474
|
] }),
|
|
4461
4475
|
/* @__PURE__ */ jsxs(View, { className: "flex-row items-center", style: { gap: 5 }, children: [
|
|
@@ -4484,13 +4498,14 @@ function StrengthTrendChart({
|
|
|
4484
4498
|
}
|
|
4485
4499
|
);
|
|
4486
4500
|
}
|
|
4487
|
-
var
|
|
4488
|
-
var
|
|
4489
|
-
var
|
|
4501
|
+
var t5 = getSemanticColors("dark");
|
|
4502
|
+
var STATUS_SUCCESS2 = t5["status-success"];
|
|
4503
|
+
var STATUS_WARNING2 = t5["status-warning"];
|
|
4504
|
+
var STATUS_INFO = t5["status-info"];
|
|
4490
4505
|
var DOT_BORDER = "#F3F4F6";
|
|
4491
|
-
var BAND_FILL = "rgba(
|
|
4492
|
-
var BAND_EDGE = "rgba(
|
|
4493
|
-
var PROJECTION_FILL = "rgba(
|
|
4506
|
+
var BAND_FILL = "rgba(46,213,115,0.1)";
|
|
4507
|
+
var BAND_EDGE = "rgba(46,213,115,0.45)";
|
|
4508
|
+
var PROJECTION_FILL = "rgba(46,213,115,0.05)";
|
|
4494
4509
|
var PADDING_LEFT = 28;
|
|
4495
4510
|
var PADDING_RIGHT = 10;
|
|
4496
4511
|
var PADDING_TOP = 8;
|
|
@@ -4529,8 +4544,8 @@ function interpEdge(pixels, x, key) {
|
|
|
4529
4544
|
const a = pixels[i];
|
|
4530
4545
|
const b = pixels[i + 1];
|
|
4531
4546
|
if (x >= a.x && x <= b.x) {
|
|
4532
|
-
const
|
|
4533
|
-
return a[key] +
|
|
4547
|
+
const t10 = b.x === a.x ? 0 : (x - a.x) / (b.x - a.x);
|
|
4548
|
+
return a[key] + t10 * (b[key] - a[key]);
|
|
4534
4549
|
}
|
|
4535
4550
|
}
|
|
4536
4551
|
return pixels[pixels.length - 1][key];
|
|
@@ -4862,7 +4877,7 @@ function CapacityBandChart({
|
|
|
4862
4877
|
}
|
|
4863
4878
|
|
|
4864
4879
|
// src/components/custom/Workout/ExerciseDetailPage.tsx
|
|
4865
|
-
var
|
|
4880
|
+
var BRAND_PRIMARY7 = getSemanticColors("dark")["brand-primary"];
|
|
4866
4881
|
var CHART_WIDTH = 326;
|
|
4867
4882
|
var CHART_HEIGHT = 150;
|
|
4868
4883
|
var EXERCISE_DETAIL_TABS = [
|
|
@@ -4926,7 +4941,7 @@ function TabBar({ active, onSelect }) {
|
|
|
4926
4941
|
alignItems: "center",
|
|
4927
4942
|
paddingVertical: 10,
|
|
4928
4943
|
borderBottomWidth: 2,
|
|
4929
|
-
borderBottomColor: isActive ?
|
|
4944
|
+
borderBottomColor: isActive ? BRAND_PRIMARY7 : "transparent"
|
|
4930
4945
|
},
|
|
4931
4946
|
testID: `exercise-detail-page-tab-${key}`,
|
|
4932
4947
|
children: /* @__PURE__ */ jsx(
|
|
@@ -5248,7 +5263,7 @@ function ExerciseDetailPage({
|
|
|
5248
5263
|
fontSize: 15,
|
|
5249
5264
|
fontFamily: '"Space Grotesk", sans-serif',
|
|
5250
5265
|
fontWeight: "700",
|
|
5251
|
-
color:
|
|
5266
|
+
color: BRAND_PRIMARY7
|
|
5252
5267
|
},
|
|
5253
5268
|
children: `${exercise.currentE1rm} ${exercise.unit}`
|
|
5254
5269
|
}
|
|
@@ -5314,9 +5329,9 @@ function ExerciseDetailPage({
|
|
|
5314
5329
|
}
|
|
5315
5330
|
);
|
|
5316
5331
|
}
|
|
5317
|
-
var
|
|
5332
|
+
var BRAND_PRIMARY8 = getSemanticColors("dark")["brand-primary"];
|
|
5318
5333
|
var segmentBgColors = {
|
|
5319
|
-
completed: "rgba(
|
|
5334
|
+
completed: "rgba(46,213,115,0.3)",
|
|
5320
5335
|
current: "rgba(255,121,0,0.5)",
|
|
5321
5336
|
upcoming: "rgba(255,255,255,0.06)"
|
|
5322
5337
|
};
|
|
@@ -5366,7 +5381,7 @@ function MesoSegment({ meso, isActive, onPress }) {
|
|
|
5366
5381
|
},
|
|
5367
5382
|
isActive ? {
|
|
5368
5383
|
borderWidth: 2,
|
|
5369
|
-
borderColor:
|
|
5384
|
+
borderColor: BRAND_PRIMARY8,
|
|
5370
5385
|
transform: [{ scale: 1.02 }, { scale: pressScale }]
|
|
5371
5386
|
} : void 0
|
|
5372
5387
|
],
|
|
@@ -5380,7 +5395,7 @@ function MesoSegment({ meso, isActive, onPress }) {
|
|
|
5380
5395
|
top: 0,
|
|
5381
5396
|
bottom: 0,
|
|
5382
5397
|
width: `${progress * 100}%`,
|
|
5383
|
-
backgroundColor:
|
|
5398
|
+
backgroundColor: BRAND_PRIMARY8
|
|
5384
5399
|
},
|
|
5385
5400
|
testID: `meso-segment-fill-${meso.id}`
|
|
5386
5401
|
}
|
|
@@ -5433,7 +5448,8 @@ var colorStyles = {
|
|
|
5433
5448
|
success: "bg-status-success",
|
|
5434
5449
|
error: "bg-status-error",
|
|
5435
5450
|
warning: "bg-status-warning",
|
|
5436
|
-
info: "bg-status-info"
|
|
5451
|
+
info: "bg-status-info",
|
|
5452
|
+
"error-vivid": "bg-status-error-vivid"
|
|
5437
5453
|
};
|
|
5438
5454
|
function Indicator({
|
|
5439
5455
|
size = "sm",
|
|
@@ -5441,14 +5457,40 @@ function Indicator({
|
|
|
5441
5457
|
customColor,
|
|
5442
5458
|
glow = false,
|
|
5443
5459
|
ring = false,
|
|
5460
|
+
pulse = false,
|
|
5444
5461
|
className,
|
|
5445
5462
|
style,
|
|
5446
5463
|
...props
|
|
5447
5464
|
}) {
|
|
5465
|
+
const pulseMode = pulse === true ? "opacity" : pulse || false;
|
|
5466
|
+
const colorClass = !customColor ? colorStyles[color] : void 0;
|
|
5467
|
+
const colorStyle = customColor ? { backgroundColor: customColor } : void 0;
|
|
5468
|
+
if (pulseMode === "ping") {
|
|
5469
|
+
return /* @__PURE__ */ jsxs(View, { className: cn("relative", sizeStyles[size], className), style, ...props, children: [
|
|
5470
|
+
/* @__PURE__ */ jsx(
|
|
5471
|
+
View,
|
|
5472
|
+
{
|
|
5473
|
+
className: cn("absolute inset-0 rounded-full animate-ping", colorClass),
|
|
5474
|
+
style: colorStyle
|
|
5475
|
+
}
|
|
5476
|
+
),
|
|
5477
|
+
/* @__PURE__ */ jsx(
|
|
5478
|
+
View,
|
|
5479
|
+
{
|
|
5480
|
+
className: cn(
|
|
5481
|
+
"relative rounded-full",
|
|
5482
|
+
sizeStyles[size],
|
|
5483
|
+
colorClass,
|
|
5484
|
+
ring && "border-2 border-background-base"
|
|
5485
|
+
),
|
|
5486
|
+
style: colorStyle
|
|
5487
|
+
}
|
|
5488
|
+
)
|
|
5489
|
+
] });
|
|
5490
|
+
}
|
|
5448
5491
|
const dynamicStyle = {
|
|
5449
5492
|
...typeof style === "object" ? style : {},
|
|
5450
|
-
...
|
|
5451
|
-
...glow && !customColor ? {} : {},
|
|
5493
|
+
...colorStyle ?? {},
|
|
5452
5494
|
...glow && customColor ? { boxShadow: `0 0 6px ${customColor}` } : {}
|
|
5453
5495
|
};
|
|
5454
5496
|
return /* @__PURE__ */ jsx(
|
|
@@ -5457,12 +5499,14 @@ function Indicator({
|
|
|
5457
5499
|
className: cn(
|
|
5458
5500
|
"rounded-full shrink-0",
|
|
5459
5501
|
sizeStyles[size],
|
|
5460
|
-
|
|
5502
|
+
colorClass,
|
|
5503
|
+
pulseMode === "opacity" && "animate-pulse",
|
|
5461
5504
|
ring && "border-2 border-background-base",
|
|
5462
|
-
glow && !customColor && color === "success" && "shadow-[0_0_6px_rgba(
|
|
5505
|
+
glow && !customColor && color === "success" && "shadow-[0_0_6px_rgba(46,213,115,0.6)]",
|
|
5463
5506
|
glow && !customColor && color === "error" && "shadow-[0_0_6px_rgba(239,68,68,0.6)]",
|
|
5464
5507
|
glow && !customColor && color === "warning" && "shadow-[0_0_6px_rgba(245,158,11,0.6)]",
|
|
5465
5508
|
glow && !customColor && color === "primary" && "shadow-[0_0_6px_rgba(255,121,0,0.6)]",
|
|
5509
|
+
glow && !customColor && color === "error-vivid" && "shadow-[0_0_6px_rgba(255,71,87,0.6)]",
|
|
5466
5510
|
className
|
|
5467
5511
|
),
|
|
5468
5512
|
style: Object.keys(dynamicStyle).length > 0 ? dynamicStyle : style,
|
|
@@ -5540,29 +5584,30 @@ function Badge({
|
|
|
5540
5584
|
}
|
|
5541
5585
|
);
|
|
5542
5586
|
}
|
|
5587
|
+
var t6 = getSemanticColors("dark");
|
|
5543
5588
|
var statusBgColors = {
|
|
5544
|
-
completed: "rgba(
|
|
5589
|
+
completed: "rgba(46,213,115,0.15)",
|
|
5545
5590
|
current: "rgba(255,121,0,0.15)",
|
|
5546
5591
|
next: "transparent",
|
|
5547
5592
|
upcoming: "#1C1C1C",
|
|
5548
5593
|
missed: "rgba(209,67,67,0.1)",
|
|
5549
|
-
deload: "rgba(
|
|
5594
|
+
deload: "rgba(186,41,150,0.15)"
|
|
5550
5595
|
};
|
|
5551
5596
|
var statusBorderStyles = {
|
|
5552
|
-
completed: { borderWidth: 1, borderColor: "rgba(
|
|
5597
|
+
completed: { borderWidth: 1, borderColor: "rgba(46,213,115,0.3)" },
|
|
5553
5598
|
current: { borderWidth: 1, borderColor: "rgba(255,121,0,0.3)" },
|
|
5554
5599
|
next: { borderWidth: 1, borderColor: "rgba(255,121,0,0.4)" },
|
|
5555
5600
|
upcoming: { borderWidth: 1, borderColor: "#1F1F1F" },
|
|
5556
5601
|
missed: { borderWidth: 1, borderColor: "rgba(209,67,67,0.25)" },
|
|
5557
|
-
deload: { borderWidth: 1, borderColor: "rgba(
|
|
5602
|
+
deload: { borderWidth: 1, borderColor: "rgba(186,41,150,0.3)" }
|
|
5558
5603
|
};
|
|
5559
5604
|
var textColors = {
|
|
5560
|
-
completed: "
|
|
5561
|
-
current: "
|
|
5562
|
-
next: "
|
|
5605
|
+
completed: t6["status-success"],
|
|
5606
|
+
current: t6["brand-primary"],
|
|
5607
|
+
next: t6["brand-primary"],
|
|
5563
5608
|
upcoming: "#6B7280",
|
|
5564
5609
|
missed: "rgba(209,67,67,0.7)",
|
|
5565
|
-
deload:
|
|
5610
|
+
deload: WORKOUT_PILL_DELOAD
|
|
5566
5611
|
};
|
|
5567
5612
|
function usePulse(enabled) {
|
|
5568
5613
|
const [opacity] = useState(() => new Animated.Value(1));
|
|
@@ -5692,23 +5737,24 @@ function WorkoutPill({
|
|
|
5692
5737
|
}
|
|
5693
5738
|
return pill;
|
|
5694
5739
|
}
|
|
5740
|
+
var t7 = getSemanticColors("dark");
|
|
5695
5741
|
var TRACK_BG = "#333333";
|
|
5696
5742
|
var LABEL_COLOR = "#6B7280";
|
|
5697
5743
|
var TARGET_LINE_COLOR = "rgba(33, 150, 243, 0.5)";
|
|
5698
5744
|
var AT_TARGET_GLOW = "0 0 5px 1px rgba(33, 150, 243, 0.35), 0 0 10px 3px rgba(33, 150, 243, 0.15)";
|
|
5699
5745
|
var ZONE = {
|
|
5700
|
-
building: "
|
|
5701
|
-
//
|
|
5702
|
-
approaching: "
|
|
5703
|
-
//
|
|
5704
|
-
target: "
|
|
5705
|
-
//
|
|
5706
|
-
over1: "
|
|
5707
|
-
//
|
|
5708
|
-
over2:
|
|
5709
|
-
//
|
|
5710
|
-
over3:
|
|
5711
|
-
//
|
|
5746
|
+
building: t7["status-success"],
|
|
5747
|
+
// below target ramp-up
|
|
5748
|
+
approaching: t7["status-warning"],
|
|
5749
|
+
// nearing target
|
|
5750
|
+
target: t7["brand-primary"],
|
|
5751
|
+
// exactly at target
|
|
5752
|
+
over1: t7["status-error"],
|
|
5753
|
+
// mild over-target
|
|
5754
|
+
over2: WORKOUT_TOKENS.intensity.over2,
|
|
5755
|
+
// moderate over-target
|
|
5756
|
+
over3: WORKOUT_TOKENS.intensity.over3
|
|
5757
|
+
// severe over-target
|
|
5712
5758
|
};
|
|
5713
5759
|
var BULGE_SIZE = { 1: 8, 2: 10, 3: 11 };
|
|
5714
5760
|
function zoneForPct(pct) {
|
|
@@ -5866,7 +5912,7 @@ function IntensityBar({
|
|
|
5866
5912
|
}
|
|
5867
5913
|
|
|
5868
5914
|
// src/components/custom/Workout/WeekRow.tsx
|
|
5869
|
-
var
|
|
5915
|
+
var BRAND_PRIMARY9 = getSemanticColors("dark")["brand-primary"];
|
|
5870
5916
|
function WeekRow({
|
|
5871
5917
|
weekNumber,
|
|
5872
5918
|
totalWeeks,
|
|
@@ -5886,12 +5932,12 @@ function WeekRow({
|
|
|
5886
5932
|
gap: 12
|
|
5887
5933
|
};
|
|
5888
5934
|
if (isDeload) {
|
|
5889
|
-
rowStyle.backgroundColor = "rgba(
|
|
5935
|
+
rowStyle.backgroundColor = "rgba(186,41,150,0.06)";
|
|
5890
5936
|
}
|
|
5891
5937
|
if (isCurrent) {
|
|
5892
5938
|
rowStyle.backgroundColor = "rgba(255,121,0,0.04)";
|
|
5893
5939
|
rowStyle.borderLeftWidth = 2;
|
|
5894
|
-
rowStyle.borderLeftColor =
|
|
5940
|
+
rowStyle.borderLeftColor = BRAND_PRIMARY9;
|
|
5895
5941
|
}
|
|
5896
5942
|
return /* @__PURE__ */ jsxs(
|
|
5897
5943
|
View,
|
|
@@ -5915,7 +5961,7 @@ function WeekRow({
|
|
|
5915
5961
|
width: 6,
|
|
5916
5962
|
height: 6,
|
|
5917
5963
|
borderRadius: 3,
|
|
5918
|
-
backgroundColor:
|
|
5964
|
+
backgroundColor: BRAND_PRIMARY9
|
|
5919
5965
|
},
|
|
5920
5966
|
accessibilityElementsHidden: true,
|
|
5921
5967
|
testID: "week-row-current-dot"
|
|
@@ -5929,7 +5975,7 @@ function WeekRow({
|
|
|
5929
5975
|
fontSize: 13,
|
|
5930
5976
|
fontWeight: "700",
|
|
5931
5977
|
fontFamily: "Inter, sans-serif",
|
|
5932
|
-
color: isCurrent ?
|
|
5978
|
+
color: isCurrent ? BRAND_PRIMARY9 : void 0
|
|
5933
5979
|
},
|
|
5934
5980
|
accessibilityElementsHidden: true,
|
|
5935
5981
|
children: `W${weekNumber}`
|
|
@@ -5970,11 +6016,11 @@ function WeekRow({
|
|
|
5970
6016
|
}
|
|
5971
6017
|
|
|
5972
6018
|
// src/components/custom/Workout/MesoCard.tsx
|
|
5973
|
-
var
|
|
5974
|
-
var BRAND_PRIMARY_DARK2 =
|
|
5975
|
-
var BRAND_PRIMARY_LIGHT2 =
|
|
6019
|
+
var BRAND_PRIMARY10 = getSemanticColors("dark")["brand-primary"];
|
|
6020
|
+
var BRAND_PRIMARY_DARK2 = MESO_ACCENT_GRADIENT_DARK;
|
|
6021
|
+
var BRAND_PRIMARY_LIGHT2 = MESO_ACCENT_GRADIENT_LIGHT;
|
|
5976
6022
|
var BORDER_DEFAULT = "#1F1F1F";
|
|
5977
|
-
var ACCENT_STOPS2 = [BRAND_PRIMARY_DARK2,
|
|
6023
|
+
var ACCENT_STOPS2 = [BRAND_PRIMARY_DARK2, BRAND_PRIMARY10, BRAND_PRIMARY_LIGHT2];
|
|
5978
6024
|
function heatmapColor(percentage) {
|
|
5979
6025
|
const clamped = Math.max(0, Math.min(100, percentage));
|
|
5980
6026
|
const opacity = 0.12 + clamped / 100 * 0.78;
|
|
@@ -6009,7 +6055,7 @@ function MesoCard({
|
|
|
6009
6055
|
}, [highlighted, highlight]);
|
|
6010
6056
|
const borderColor = highlight.interpolate({
|
|
6011
6057
|
inputRange: [0, 1],
|
|
6012
|
-
outputRange: [BORDER_DEFAULT,
|
|
6058
|
+
outputRange: [BORDER_DEFAULT, BRAND_PRIMARY10]
|
|
6013
6059
|
});
|
|
6014
6060
|
const header = /* @__PURE__ */ jsxs(View, { style: { paddingHorizontal: 14, paddingTop: 12, paddingBottom: 10 }, testID: "meso-card-body", children: [
|
|
6015
6061
|
/* @__PURE__ */ jsxs(View, { className: "flex-row items-center", style: { gap: 8 }, testID: "meso-card-header", children: [
|
|
@@ -6069,7 +6115,7 @@ function MesoCard({
|
|
|
6069
6115
|
{
|
|
6070
6116
|
variant: "outline",
|
|
6071
6117
|
elevation: 2,
|
|
6072
|
-
borderColor: highlighted ?
|
|
6118
|
+
borderColor: highlighted ? BRAND_PRIMARY10 : BORDER_DEFAULT,
|
|
6073
6119
|
className,
|
|
6074
6120
|
style: [
|
|
6075
6121
|
{ borderColor },
|
|
@@ -6126,12 +6172,13 @@ function MesoCard({
|
|
|
6126
6172
|
}
|
|
6127
6173
|
) });
|
|
6128
6174
|
}
|
|
6175
|
+
var t8 = getSemanticColors("dark");
|
|
6129
6176
|
var dotColorMap = {
|
|
6130
6177
|
untrained: "#2C2C2C",
|
|
6131
|
-
behind: "
|
|
6132
|
-
ontrack: "
|
|
6133
|
-
target: "
|
|
6134
|
-
over: "
|
|
6178
|
+
behind: t8["brand-secondary"],
|
|
6179
|
+
ontrack: t8["status-success"],
|
|
6180
|
+
target: t8["brand-primary"],
|
|
6181
|
+
over: t8["status-error"]
|
|
6135
6182
|
};
|
|
6136
6183
|
function MuscleGroupChip({
|
|
6137
6184
|
name,
|
|
@@ -6205,9 +6252,10 @@ function MuscleGroupChip({
|
|
|
6205
6252
|
}
|
|
6206
6253
|
|
|
6207
6254
|
// src/components/custom/Workout/WorkoutCard.tsx
|
|
6255
|
+
var t9 = getSemanticColors("dark");
|
|
6208
6256
|
var COLORS = {
|
|
6209
|
-
statusSuccess: "
|
|
6210
|
-
brandPrimary: "
|
|
6257
|
+
statusSuccess: t9["status-success"],
|
|
6258
|
+
brandPrimary: t9["brand-primary"],
|
|
6211
6259
|
borderDefault: "#1F1F1F",
|
|
6212
6260
|
brandPrimarySubtle: "rgba(255,121,0,0.06)"
|
|
6213
6261
|
};
|
|
@@ -6351,7 +6399,7 @@ function WorkoutCard({
|
|
|
6351
6399
|
}
|
|
6352
6400
|
|
|
6353
6401
|
// src/components/custom/Workout/ProgramPlanningPage.tsx
|
|
6354
|
-
var
|
|
6402
|
+
var BRAND_PRIMARY11 = getSemanticColors("dark")["brand-primary"];
|
|
6355
6403
|
var WORKOUT_PILL_STATUS = {
|
|
6356
6404
|
completed: "completed",
|
|
6357
6405
|
today: "current",
|
|
@@ -6419,7 +6467,7 @@ function Breadcrumbs({ crumbs, onNavigate }) {
|
|
|
6419
6467
|
fontSize: 12,
|
|
6420
6468
|
fontFamily: "Inter, sans-serif",
|
|
6421
6469
|
fontWeight: isLast ? "700" : "500",
|
|
6422
|
-
color: isLast ? void 0 :
|
|
6470
|
+
color: isLast ? void 0 : BRAND_PRIMARY11
|
|
6423
6471
|
},
|
|
6424
6472
|
children: crumb.label
|
|
6425
6473
|
}
|