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