@titan-design/react-ui 0.5.0 → 0.7.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 +241 -189
- package/dist/bodymap.js.map +1 -1
- package/dist/bodymap.mjs +241 -189
- package/dist/bodymap.mjs.map +1 -1
- package/dist/index.d.mts +1017 -130
- package/dist/index.d.ts +1017 -130
- package/dist/index.js +3058 -1090
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +2992 -1091
- package/dist/index.mjs.map +1 -1
- package/dist/{pages-MO0JCySL.d.mts → pages-8u_4WbL-.d.mts} +280 -57
- package/dist/{pages-D7Jlssvp.d.ts → pages-DaWiBOGa.d.ts} +280 -57
- package/dist/pages.d.mts +1 -1
- package/dist/pages.d.ts +1 -1
- package/dist/pages.js +1797 -1292
- package/dist/pages.js.map +1 -1
- package/dist/pages.mjs +1797 -1292
- package/dist/pages.mjs.map +1 -1
- package/dist/theme/index.d.mts +464 -268
- package/dist/theme/index.d.ts +464 -268
- package/dist/theme/index.js +303 -191
- package/dist/theme/index.js.map +1 -1
- package/dist/theme/index.mjs +295 -192
- package/dist/theme/index.mjs.map +1 -1
- package/dist/theme/tokens-css.js +160 -143
- package/dist/theme/tokens-css.js.map +1 -1
- package/dist/theme/tokens-css.mjs +160 -143
- package/dist/theme/tokens-css.mjs.map +1 -1
- package/package.json +3 -1
- package/src/arch/Architecture.stories.tsx +870 -0
- package/src/arch/annotations.json +48 -0
- package/src/arch/arch-graph.json +4301 -0
- package/src/components/custom/DateTime/DateTime.stories.tsx +83 -7
- package/src/components/custom/DateTime/DateTime.test.tsx +29 -3
- package/src/components/custom/DateTime/DateTime.tsx +55 -15
- package/src/components/custom/EmptyState/EmptyState.stories.tsx +1 -1
- package/src/components/custom/Gauge/Gauge.stories.tsx +1 -1
- package/src/components/custom/Gauge/Gauge.test.tsx +2 -2
- package/src/components/custom/Gauge/Gauge.tsx +6 -3
- package/src/components/custom/Metric/Metric.stories.tsx +1 -1
- package/src/components/custom/Scatter/Scatter.stories.tsx +1 -1
- package/src/components/custom/Scatter/Scatter.tsx +3 -5
- package/src/components/custom/Sidebar/Sidebar.stories.tsx +1 -1
- package/src/components/custom/Table/Table.stories.tsx +1 -1
- package/src/components/custom/TimerReadout/TimerReadout.stories.tsx +62 -0
- package/src/components/custom/TimerReadout/TimerReadout.test.tsx +72 -0
- package/src/components/custom/TimerReadout/TimerReadout.tsx +75 -0
- package/src/components/custom/TimerReadout/index.ts +1 -0
- package/src/components/custom/Treemap/Treemap.stories.tsx +1 -1
- package/src/components/custom/Treemap/Treemap.tsx +3 -5
- package/src/components/custom/Typography/Typography.stories.tsx +46 -28
- 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.stories.tsx +21 -13
- package/src/components/custom/Workout/ActiveWorkoutPage.test.tsx +16 -13
- package/src/components/custom/Workout/ActiveWorkoutPage.tsx +11 -16
- package/src/components/custom/Workout/BaseBadge.stories.tsx +1 -1
- package/src/components/custom/Workout/BodyMap.stories.tsx +1 -1
- package/src/components/custom/Workout/BodyMap.tsx +6 -3
- package/src/components/custom/Workout/BodyMapDetailPanel.stories.tsx +1 -1
- package/src/components/custom/Workout/BodyMapDetailPanel.tsx +6 -3
- package/src/components/custom/Workout/CapacityBandChart.stories.tsx +1 -1
- 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.stories.tsx +1 -1
- package/src/components/custom/Workout/DeviationBar.test.tsx +1 -1
- package/src/components/custom/Workout/DeviationBar.tsx +7 -4
- package/src/components/custom/Workout/ExerciseCard.stories.tsx +51 -66
- package/src/components/custom/Workout/ExerciseCard.test.tsx +146 -143
- package/src/components/custom/Workout/ExerciseCard.tsx +176 -198
- package/src/components/custom/Workout/ExerciseCardHeading.stories.tsx +99 -0
- package/src/components/custom/Workout/ExerciseCardHeading.test.tsx +72 -0
- package/src/components/custom/Workout/ExerciseCardHeading.tsx +43 -0
- package/src/components/custom/Workout/ExerciseCardUnified.stories.tsx +151 -0
- package/src/components/custom/Workout/ExerciseDetailPage.stories.tsx +5 -3
- package/src/components/custom/Workout/ExerciseDetailPage.test.tsx +4 -4
- package/src/components/custom/Workout/ExerciseDetailPage.tsx +6 -6
- package/src/components/custom/Workout/ExerciseHeading.stories.tsx +81 -0
- package/src/components/custom/Workout/ExerciseHeading.test.tsx +77 -0
- package/src/components/custom/Workout/ExerciseHeading.tsx +85 -0
- package/src/components/custom/Workout/ExerciseIndicator.stories.tsx +110 -0
- package/src/components/custom/Workout/ExerciseIndicator.test.tsx +93 -0
- package/src/components/custom/Workout/ExerciseIndicator.tsx +120 -0
- package/src/components/custom/Workout/FatigueMeter.stories.tsx +51 -0
- package/src/components/custom/Workout/FatigueMeter.test.tsx +73 -0
- package/src/components/custom/Workout/FatigueMeter.tsx +82 -0
- package/src/components/custom/Workout/InputBar.stories.tsx +1 -1
- package/src/components/custom/Workout/InputBar.tsx +2 -1
- package/src/components/custom/Workout/IntensityBar.stories.tsx +1 -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/LiveAuraFrame.stories.tsx +153 -0
- package/src/components/custom/Workout/LiveAuraFrame.test.tsx +74 -0
- package/src/components/custom/Workout/LiveAuraFrame.tsx +105 -0
- package/src/components/custom/Workout/MesoCard.stories.tsx +1 -1
- package/src/components/custom/Workout/MesoCard.tsx +8 -3
- package/src/components/custom/Workout/MesoProgressBar.stories.tsx +1 -1
- 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.stories.tsx +1 -1
- package/src/components/custom/Workout/MesoStatusCard.tsx +20 -13
- package/src/components/custom/Workout/MetricTiles.stories.tsx +60 -0
- package/src/components/custom/Workout/MetricTiles.test.tsx +58 -0
- package/src/components/custom/Workout/MetricTiles.tsx +48 -0
- package/src/components/custom/Workout/MuscleGroupChip.stories.tsx +1 -1
- package/src/components/custom/Workout/MuscleGroupChip.tsx +7 -4
- package/src/components/custom/Workout/PlaceholderStrip.stories.tsx +1 -1
- package/src/components/custom/Workout/PrBadge.stories.tsx +1 -1
- package/src/components/custom/Workout/PrBadge.tsx +5 -2
- package/src/components/custom/Workout/PrHistoryModal.stories.tsx +1 -1
- package/src/components/custom/Workout/PrHistoryModal.tsx +4 -3
- package/src/components/custom/Workout/ProgramPlanningPage.stories.tsx +4 -16
- package/src/components/custom/Workout/ProgramPlanningPage.tsx +10 -7
- package/src/components/custom/Workout/README.md +146 -4
- package/src/components/custom/Workout/ReadinessCheck.stories.tsx +1 -1
- package/src/components/custom/Workout/ReadinessCheck.tsx +7 -4
- package/src/components/custom/Workout/RestTimer.stories.tsx +1 -1
- package/src/components/custom/Workout/RestTimer.tsx +17 -11
- package/src/components/custom/Workout/RowInventory.stories.tsx +405 -0
- package/src/components/custom/Workout/S3FullRail.stories.tsx +34 -0
- package/src/components/custom/Workout/S3SessionPace.stories.tsx +95 -0
- package/src/components/custom/Workout/S3SessionRailHeading.stories.tsx +61 -0
- package/src/components/custom/Workout/S3SetTypes.stories.tsx +176 -0
- package/src/components/custom/Workout/S3WorkoutExpansion.stories.tsx +240 -0
- package/src/components/custom/Workout/ScheduleTiles.stories.tsx +40 -0
- package/src/components/custom/Workout/ScheduleTiles.test.tsx +34 -0
- package/src/components/custom/Workout/ScheduleTiles.tsx +70 -0
- package/src/components/custom/Workout/SegmentedBar.stories.tsx +99 -0
- package/src/components/custom/Workout/SegmentedBar.test.tsx +77 -0
- package/src/components/custom/Workout/SegmentedBar.tsx +172 -0
- package/src/components/custom/Workout/SegmentedProgressBar.stories.tsx +50 -0
- package/src/components/custom/Workout/SegmentedProgressBar.test.tsx +80 -0
- package/src/components/custom/Workout/SegmentedProgressBar.tsx +67 -0
- package/src/components/custom/Workout/SessionHeader.stories.tsx +121 -0
- package/src/components/custom/Workout/SessionHeader.test.tsx +122 -0
- package/src/components/custom/Workout/SessionHeader.tsx +152 -0
- package/src/components/custom/Workout/SessionRail.stories.tsx +153 -0
- package/src/components/custom/Workout/SessionRail.test.tsx +86 -0
- package/src/components/custom/Workout/SessionRail.tsx +126 -0
- package/src/components/custom/Workout/SetBar.stories.tsx +124 -0
- package/src/components/custom/Workout/SetBar.test.tsx +123 -0
- package/src/components/custom/Workout/SetBar.tsx +171 -0
- package/src/components/custom/Workout/SetRow.stories.tsx +50 -100
- package/src/components/custom/Workout/SetRow.test.tsx +94 -166
- package/src/components/custom/Workout/SetRow.tsx +170 -232
- package/src/components/custom/Workout/SetStrip.stories.tsx +154 -0
- package/src/components/custom/Workout/SetStrip.test.tsx +109 -0
- package/src/components/custom/Workout/SetStrip.tsx +71 -0
- package/src/components/custom/Workout/SetTableHeader.stories.tsx +66 -0
- package/src/components/custom/Workout/SetTableHeader.test.tsx +47 -0
- package/src/components/custom/Workout/SetTableHeader.tsx +88 -0
- package/src/components/custom/Workout/SetsRepsLoad.stories.tsx +47 -0
- package/src/components/custom/Workout/SetsRepsLoad.test.tsx +44 -0
- package/src/components/custom/Workout/SetsRepsLoad.tsx +52 -0
- package/src/components/custom/Workout/Sparkline.stories.tsx +1 -1
- package/src/components/custom/Workout/Sparkline.tsx +2 -1
- package/src/components/custom/Workout/StatusDot.stories.tsx +1 -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/StatusPill.stories.tsx +59 -0
- package/src/components/custom/Workout/StatusPill.test.tsx +63 -0
- package/src/components/custom/Workout/StatusPill.tsx +88 -0
- package/src/components/custom/Workout/StrengthTrendChart.stories.tsx +1 -1
- package/src/components/custom/Workout/StrengthTrendChart.tsx +9 -6
- package/src/components/custom/Workout/SupersetWrapper.stories.tsx +1 -1
- package/src/components/custom/Workout/SupersetWrapper.tsx +2 -1
- package/src/components/custom/Workout/TempoBar.stories.tsx +1 -1
- package/src/components/custom/Workout/TempoDisplay.stories.tsx +12 -1
- package/src/components/custom/Workout/TempoDisplay.tsx +29 -36
- package/src/components/custom/Workout/TrainingStatusPage.stories.tsx +1 -1
- package/src/components/custom/Workout/VelocityStrip.modalities.stories.tsx +254 -0
- package/src/components/custom/Workout/VelocityStrip.responsive.stories.tsx +145 -0
- package/src/components/custom/Workout/VelocityStrip.stories.tsx +129 -66
- package/src/components/custom/Workout/VelocityStrip.test.tsx +379 -144
- package/src/components/custom/Workout/VelocityStrip.tsx +508 -120
- package/src/components/custom/Workout/VolumeLandmarkBar.stories.tsx +73 -0
- package/src/components/custom/Workout/VolumeLandmarkBar.test.tsx +119 -0
- package/src/components/custom/Workout/VolumeLandmarkBar.tsx +154 -0
- package/src/components/custom/Workout/WeekRow.stories.tsx +1 -1
- package/src/components/custom/Workout/WeekRow.tsx +3 -2
- package/src/components/custom/Workout/WeightBadge.stories.tsx +1 -1
- package/src/components/custom/Workout/WeightBadge.tsx +6 -2
- package/src/components/custom/Workout/WorkoutCard.stories.tsx +2 -6
- package/src/components/custom/Workout/WorkoutCard.test.tsx +13 -46
- package/src/components/custom/Workout/WorkoutCard.tsx +5 -2
- package/src/components/custom/Workout/WorkoutPill.stories.tsx +1 -1
- package/src/components/custom/Workout/WorkoutPill.tsx +12 -8
- package/src/components/custom/Workout/ZoneTrack.stories.tsx +140 -0
- package/src/components/custom/Workout/ZoneTrack.test.tsx +200 -0
- package/src/components/custom/Workout/ZoneTrack.tsx +315 -0
- package/src/components/custom/Workout/icons.tsx +6 -67
- package/src/components/custom/Workout/index.ts +55 -2
- package/src/components/custom/Workout/metricText.stories.tsx +69 -0
- package/src/components/custom/Workout/metricText.tsx +34 -0
- package/src/components/custom/Workout/paceTone.test.ts +29 -0
- package/src/components/custom/Workout/paceTone.ts +27 -0
- package/src/components/custom/Workout/setHeadingKit.tsx +177 -0
- package/src/components/custom/index.ts +1 -0
- package/src/components/custom/stepper/Stepper.stories.tsx +1 -1
- package/src/components/icons/SvgIcon.tsx +50 -0
- package/src/components/icons/icons.stories.tsx +122 -0
- package/src/components/icons/icons.test.tsx +73 -0
- package/src/components/icons/icons.tsx +153 -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/DashboardShell.stories.tsx +65 -0
- package/src/components/shell/DashboardShell.test.tsx +42 -0
- package/src/components/shell/DashboardShell.tsx +74 -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/NavItem.stories.tsx +52 -0
- package/src/components/shell/NavItem.test.tsx +35 -0
- package/src/components/shell/NavItem.tsx +75 -0
- package/src/components/shell/README.md +116 -0
- package/src/components/shell/SessionRailSpecimen.stories.tsx +753 -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/SideNav.stories.tsx +81 -0
- package/src/components/shell/SideNav.test.tsx +51 -0
- package/src/components/shell/SideNav.tsx +74 -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 +13 -0
- package/src/components/ui/alert/Alert.stories.tsx +1 -1
- package/src/components/ui/autocomplete/Autocomplete.stories.tsx +1 -1
- package/src/components/ui/avatar/Avatar.stories.tsx +1 -1
- package/src/components/ui/badge/Badge.stories.tsx +1 -1
- package/src/components/ui/breadcrumbs/Breadcrumbs.stories.tsx +1 -1
- package/src/components/ui/button/Button.stories.tsx +1 -1
- package/src/components/ui/card/Card.stories.tsx +1 -1
- package/src/components/ui/checkbox/Checkbox.stories.tsx +1 -1
- package/src/components/ui/chip/Chip.stories.tsx +1 -1
- package/src/components/ui/collapse/Collapse.stories.tsx +1 -1
- package/src/components/ui/data-row/DataRow.stories.tsx +1 -1
- package/src/components/ui/divider/Divider.stories.tsx +1 -1
- package/src/components/ui/drawer/Drawer.stories.tsx +1 -1
- package/src/components/ui/form-field/FormField.stories.tsx +1 -1
- package/src/components/ui/help-tip/HelpTip.stories.tsx +1 -1
- package/src/components/ui/icon-box/IconBox.stories.tsx +1 -1
- package/src/components/ui/index.ts +1 -0
- package/src/components/ui/indicator/Indicator.stories.tsx +38 -2
- package/src/components/ui/indicator/Indicator.test.tsx +20 -1
- package/src/components/ui/indicator/Indicator.tsx +50 -6
- package/src/components/ui/indicator/index.ts +1 -1
- package/src/components/ui/input/Input.stories.tsx +1 -1
- package/src/components/ui/link/Link.stories.tsx +1 -1
- package/src/components/ui/list-item/ListItem.stories.tsx +1 -1
- package/src/components/ui/menu/Menu.stories.tsx +1 -1
- package/src/components/ui/modal/Modal.stories.tsx +1 -1
- package/src/components/ui/pill/Pill.stories.tsx +1 -1
- package/src/components/ui/popover/Popover.stories.tsx +1 -1
- package/src/components/ui/progress/Progress.stories.tsx +1 -1
- package/src/components/ui/radio/Radio.stories.tsx +1 -1
- package/src/components/ui/section/Section.stories.tsx +1 -1
- package/src/components/ui/select/Select.stories.tsx +1 -1
- package/src/components/ui/skeleton/Skeleton.stories.tsx +1 -1
- package/src/components/ui/spinner/Spinner.stories.tsx +1 -1
- package/src/components/ui/spinner/Spinner.tsx +3 -2
- package/src/components/ui/stack/Stack.stories.tsx +1 -1
- package/src/components/ui/surface/Surface.stories.tsx +1 -1
- package/src/components/ui/switch/Switch.stories.tsx +1 -1
- package/src/components/ui/tabs/Tabs.stories.tsx +1 -1
- package/src/components/ui/tile/Tile.stories.tsx +79 -0
- package/src/components/ui/tile/Tile.test.tsx +48 -0
- package/src/components/ui/tile/Tile.tsx +64 -0
- package/src/components/ui/tile/index.ts +2 -0
- package/src/components/ui/toast/Toast.stories.tsx +1 -1
- package/src/components/ui/toolbar-button/ToolbarButton.stories.tsx +1 -1
- package/src/components/ui/toolbar-button/ToolbarButton.tsx +2 -1
- package/src/components/ui/tooltip/Tooltip.stories.tsx +1 -1
- package/src/examples/react-hook-form/ReactHookForm.stories.tsx +1 -1
- package/src/hooks/index.ts +2 -0
- package/src/hooks/useTimer.test.ts +150 -0
- package/src/hooks/useTimer.ts +77 -0
- package/src/index.ts +3 -0
- package/src/pages.ts +1 -1
- package/src/stories/PresetShowcase.stories.tsx +1 -1
- package/src/stories/ThemePresets.stories.tsx +1 -1
- package/src/theme/ColorSystem.stories.tsx +323 -0
- package/src/theme/Colors.stories.tsx +74 -9
- package/src/theme/barrel.ts +1 -0
- package/src/theme/config.ts +20 -3
- package/src/theme/elevation.stories.tsx +1 -1
- package/src/theme/extracted-colors-dataviz.ts +21 -0
- package/src/theme/extracted-colors-ui.ts +20 -0
- package/src/theme/global.css +69 -53
- package/src/theme/gradients.test.ts +25 -0
- package/src/theme/gradients.ts +36 -0
- package/src/theme/shadows.stories.tsx +1 -1
- package/src/theme/tokens/primitives.test.ts +232 -0
- package/src/theme/tokens/primitives.ts +238 -87
- package/src/theme/tokens/semantic.ts +101 -81
- package/src/theme/workout-tokens.ts +26 -21
- package/src/utils/avatar-color.ts +3 -3
- package/tailwind.config.js +15 -3
package/dist/bodymap.js
CHANGED
|
@@ -18,43 +18,20 @@ function cn(...inputs) {
|
|
|
18
18
|
|
|
19
19
|
// src/theme/tokens/primitives.ts
|
|
20
20
|
var primitiveColors = {
|
|
21
|
-
// Blue scale
|
|
21
|
+
// Blue scale
|
|
22
22
|
blue: {
|
|
23
23
|
400: "#60A5FA",
|
|
24
24
|
600: "#5048E5",
|
|
25
|
-
// Primary main
|
|
26
25
|
700: "#3832A0"},
|
|
27
|
-
//
|
|
28
|
-
teal: {
|
|
29
|
-
50: "#F0FDFA",
|
|
30
|
-
400: "#43C6B7",
|
|
31
|
-
// Success light
|
|
32
|
-
500: "#14B8A6",
|
|
33
|
-
700: "#0E8074"},
|
|
34
|
-
// Red scale (error)
|
|
26
|
+
// Red scale
|
|
35
27
|
red: {
|
|
36
|
-
50: "#FEF2F2",
|
|
37
|
-
400: "#DA6868",
|
|
38
|
-
// Error light
|
|
39
28
|
500: "#EF4444",
|
|
40
|
-
600: "#D14343",
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
400: "#FFBF4C",
|
|
47
|
-
// Warning light
|
|
48
|
-
500: "#FFB020",
|
|
49
|
-
// Warning main
|
|
50
|
-
600: "#B27B16"},
|
|
51
|
-
// Sky/Blue scale (info)
|
|
52
|
-
sky: {
|
|
53
|
-
50: "#F0F9FF",
|
|
54
|
-
400: "#64B6F7",
|
|
55
|
-
// Info light
|
|
56
|
-
500: "#2196F3",
|
|
57
|
-
700: "#0B79D0"},
|
|
29
|
+
600: "#D14343"},
|
|
30
|
+
// Vivid red scale
|
|
31
|
+
redVivid: {
|
|
32
|
+
400: "#FF6070",
|
|
33
|
+
500: "#FF4757",
|
|
34
|
+
700: "#C42539"},
|
|
58
35
|
// Neutral/Gray scale
|
|
59
36
|
neutral: {
|
|
60
37
|
50: "#FAFAFA",
|
|
@@ -64,16 +41,9 @@ var primitiveColors = {
|
|
|
64
41
|
500: "#6B7280",
|
|
65
42
|
600: "#4B5563",
|
|
66
43
|
900: "#111827"},
|
|
67
|
-
// Orange scale (accent/brand color)
|
|
68
|
-
accent: {
|
|
69
|
-
200: "#FF9630",
|
|
70
|
-
300: "#FF8500",
|
|
71
|
-
400: "#FF7900",
|
|
72
|
-
500: "#F56C00",
|
|
73
|
-
600: "#E06D10",
|
|
74
|
-
700: "#D0620C"},
|
|
75
44
|
// Charcoal scale (dark backgrounds)
|
|
76
45
|
charcoal: {
|
|
46
|
+
200: "#3C3C3C",
|
|
77
47
|
300: "#2C2C2C",
|
|
78
48
|
400: "#1F1F1F",
|
|
79
49
|
500: "#1C1C1C",
|
|
@@ -81,15 +51,59 @@ var primitiveColors = {
|
|
|
81
51
|
700: "#161616",
|
|
82
52
|
900: "#101010"
|
|
83
53
|
},
|
|
84
|
-
// Steel scale (cool accent)
|
|
85
|
-
steel: {
|
|
86
|
-
300: "#678498",
|
|
87
|
-
400: "#557488",
|
|
88
|
-
500: "#406D87",
|
|
89
|
-
600: "#39617A",
|
|
90
|
-
700: "#32556D"},
|
|
91
54
|
// Pure colors
|
|
92
55
|
white: "#FFFFFF"};
|
|
56
|
+
var primitiveRamps = {
|
|
57
|
+
red: {
|
|
58
|
+
50: "#FFF4F4",
|
|
59
|
+
500: "#E05254",
|
|
60
|
+
600: "#D14343",
|
|
61
|
+
// pin
|
|
62
|
+
700: "#A4221C"},
|
|
63
|
+
orange: {
|
|
64
|
+
200: "#FFC7A2",
|
|
65
|
+
300: "#FFA063",
|
|
66
|
+
400: "#FF7900",
|
|
67
|
+
// pin
|
|
68
|
+
500: "#DA5F00",
|
|
69
|
+
600: "#B94A00"},
|
|
70
|
+
amber: {
|
|
71
|
+
50: "#FFF7DD",
|
|
72
|
+
200: "#FFD352",
|
|
73
|
+
300: "#F9B415",
|
|
74
|
+
500: "#C27400"},
|
|
75
|
+
green: {
|
|
76
|
+
50: "#E3FFEE",
|
|
77
|
+
200: "#58F69E",
|
|
78
|
+
300: "#2ED573",
|
|
79
|
+
500: "#22A444",
|
|
80
|
+
600: "#298732"},
|
|
81
|
+
cyan: {
|
|
82
|
+
300: "#22D3EE",
|
|
83
|
+
// pin
|
|
84
|
+
400: "#01B5D1",
|
|
85
|
+
500: "#2697B7",
|
|
86
|
+
600: "#307B9B",
|
|
87
|
+
700: "#2A617F",
|
|
88
|
+
800: "#22465F"},
|
|
89
|
+
blue: {
|
|
90
|
+
50: "#EFF8FF",
|
|
91
|
+
300: "#78C2FF",
|
|
92
|
+
500: "#2196F3",
|
|
93
|
+
// pin
|
|
94
|
+
600: "#1072CB"}};
|
|
95
|
+
var divergingScale = [
|
|
96
|
+
primitiveRamps.blue[500],
|
|
97
|
+
// under
|
|
98
|
+
primitiveRamps.cyan[300],
|
|
99
|
+
// maintenance
|
|
100
|
+
primitiveRamps.green[200],
|
|
101
|
+
// optimal (light center)
|
|
102
|
+
primitiveRamps.amber[300],
|
|
103
|
+
// approaching
|
|
104
|
+
primitiveRamps.red[600]
|
|
105
|
+
// over
|
|
106
|
+
];
|
|
93
107
|
var discreteRainbow = [
|
|
94
108
|
"#E8ECFB",
|
|
95
109
|
"#D9CCE3",
|
|
@@ -125,56 +139,46 @@ var discreteRainbow = [
|
|
|
125
139
|
// src/theme/tokens/semantic.ts
|
|
126
140
|
var semanticColorsLight = {
|
|
127
141
|
// Brand colors (brand-*)
|
|
128
|
-
"brand-primary":
|
|
129
|
-
|
|
130
|
-
"brand-primary-
|
|
131
|
-
// #FF9630
|
|
132
|
-
"brand-primary-dark": primitiveColors.accent[700],
|
|
133
|
-
// #D0620C
|
|
142
|
+
"brand-primary": primitiveRamps.orange[400],
|
|
143
|
+
"brand-primary-light": primitiveRamps.orange[300],
|
|
144
|
+
"brand-primary-dark": primitiveRamps.orange[500],
|
|
134
145
|
"brand-primary-subtle": "rgba(255, 121, 0, 0.08)",
|
|
135
|
-
"brand-primary-hover":
|
|
136
|
-
"brand-primary-active":
|
|
137
|
-
"brand-secondary":
|
|
138
|
-
|
|
139
|
-
"brand-secondary-
|
|
140
|
-
|
|
141
|
-
"brand-secondary-
|
|
142
|
-
|
|
143
|
-
"brand-secondary-subtle": "rgba(64, 109, 135, 0.08)",
|
|
144
|
-
"brand-secondary-hover": primitiveColors.steel[600],
|
|
145
|
-
"brand-secondary-active": primitiveColors.steel[700],
|
|
146
|
+
"brand-primary-hover": primitiveRamps.orange[500],
|
|
147
|
+
"brand-primary-active": primitiveRamps.orange[600],
|
|
148
|
+
"brand-secondary": primitiveRamps.cyan[600],
|
|
149
|
+
"brand-secondary-light": primitiveRamps.cyan[500],
|
|
150
|
+
"brand-secondary-dark": primitiveRamps.cyan[700],
|
|
151
|
+
"brand-secondary-subtle": "rgba(48, 123, 155, 0.08)",
|
|
152
|
+
"brand-secondary-hover": primitiveRamps.cyan[700],
|
|
153
|
+
"brand-secondary-active": primitiveRamps.cyan[800],
|
|
146
154
|
// Text on brand backgrounds (on-*)
|
|
147
155
|
"on-brand-primary": primitiveColors.white,
|
|
148
156
|
"on-brand-secondary": primitiveColors.white,
|
|
149
157
|
// Status colors (status-*)
|
|
150
|
-
"status-success":
|
|
151
|
-
|
|
152
|
-
"status-success-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
"status-
|
|
157
|
-
"status-error":
|
|
158
|
-
|
|
159
|
-
"status-error-
|
|
160
|
-
|
|
161
|
-
"status-error-
|
|
162
|
-
//
|
|
163
|
-
"status-error-
|
|
164
|
-
"status-
|
|
165
|
-
|
|
166
|
-
"status-warning
|
|
167
|
-
|
|
168
|
-
"status-warning-dark":
|
|
169
|
-
|
|
170
|
-
"status-
|
|
171
|
-
"status-info":
|
|
172
|
-
|
|
173
|
-
"status-info-
|
|
174
|
-
// #64B6F7
|
|
175
|
-
"status-info-dark": primitiveColors.sky[700],
|
|
176
|
-
// #0B79D0
|
|
177
|
-
"status-info-subtle": primitiveColors.sky[50],
|
|
158
|
+
"status-success": primitiveRamps.green[300],
|
|
159
|
+
"status-success-light": primitiveRamps.green[200],
|
|
160
|
+
"status-success-dark": primitiveRamps.green[600],
|
|
161
|
+
"status-success-subtle": primitiveRamps.green[50],
|
|
162
|
+
// Live-session accent — its OWN role, decoupled from success so the two can diverge
|
|
163
|
+
"status-live": primitiveRamps.green[300],
|
|
164
|
+
"status-live-muted": primitiveRamps.green[500],
|
|
165
|
+
"status-error": primitiveRamps.red[600],
|
|
166
|
+
"status-error-light": primitiveRamps.red[500],
|
|
167
|
+
"status-error-dark": primitiveRamps.red[700],
|
|
168
|
+
"status-error-subtle": primitiveRamps.red[50],
|
|
169
|
+
"status-error-vivid": primitiveColors.redVivid[500],
|
|
170
|
+
// vivid alert red
|
|
171
|
+
"status-error-vivid-light": primitiveColors.redVivid[400],
|
|
172
|
+
"status-error-vivid-dark": primitiveColors.redVivid[700],
|
|
173
|
+
"status-error-vivid-subtle": "rgba(255, 71, 87, 0.12)",
|
|
174
|
+
"status-warning": primitiveRamps.amber[300],
|
|
175
|
+
"status-warning-light": primitiveRamps.amber[200],
|
|
176
|
+
"status-warning-dark": primitiveRamps.amber[500],
|
|
177
|
+
"status-warning-subtle": primitiveRamps.amber[50],
|
|
178
|
+
"status-info": primitiveRamps.blue[500],
|
|
179
|
+
"status-info-light": primitiveRamps.blue[300],
|
|
180
|
+
"status-info-dark": primitiveRamps.blue[600],
|
|
181
|
+
"status-info-subtle": primitiveRamps.blue[50],
|
|
178
182
|
// Text on status backgrounds (on-status-*)
|
|
179
183
|
"on-status-success": primitiveColors.white,
|
|
180
184
|
"on-status-error": primitiveColors.white,
|
|
@@ -201,25 +205,25 @@ var semanticColorsLight = {
|
|
|
201
205
|
// Data visualization colors (data-*)
|
|
202
206
|
// First 10 colors from discrete rainbow optimized for charts
|
|
203
207
|
"data-1": discreteRainbow[9],
|
|
204
|
-
//
|
|
208
|
+
// Blue
|
|
205
209
|
"data-2": discreteRainbow[14],
|
|
206
|
-
//
|
|
210
|
+
// Green
|
|
207
211
|
"data-3": discreteRainbow[17],
|
|
208
|
-
//
|
|
212
|
+
// Yellow
|
|
209
213
|
"data-4": discreteRainbow[25],
|
|
210
|
-
//
|
|
214
|
+
// Red
|
|
211
215
|
"data-5": discreteRainbow[8],
|
|
212
|
-
//
|
|
216
|
+
// Purple
|
|
213
217
|
"data-6": discreteRainbow[20],
|
|
214
|
-
//
|
|
218
|
+
// Orange
|
|
215
219
|
"data-7": discreteRainbow[13],
|
|
216
|
-
//
|
|
220
|
+
// Light Blue
|
|
217
221
|
"data-8": discreteRainbow[15],
|
|
218
|
-
//
|
|
222
|
+
// Light Green
|
|
219
223
|
"data-9": discreteRainbow[3],
|
|
220
|
-
//
|
|
224
|
+
// Lavender
|
|
221
225
|
"data-10": discreteRainbow[22],
|
|
222
|
-
//
|
|
226
|
+
// Dark Orange
|
|
223
227
|
// Text colors (text-*)
|
|
224
228
|
"text-primary": "#121828",
|
|
225
229
|
"text-secondary": "#65748B",
|
|
@@ -231,9 +235,9 @@ var semanticColorsLight = {
|
|
|
231
235
|
// Surface colors (surface-*) - for elevated containers
|
|
232
236
|
"surface-base": primitiveColors.white,
|
|
233
237
|
"surface-elevated": primitiveColors.neutral[50],
|
|
234
|
-
//
|
|
238
|
+
// slightly off-white for elevated cards
|
|
235
239
|
"surface-raised": primitiveColors.neutral[100],
|
|
236
|
-
//
|
|
240
|
+
// light gray for raised cards
|
|
237
241
|
"surface-overlay": primitiveColors.white,
|
|
238
242
|
"surface-input": primitiveColors.neutral[50],
|
|
239
243
|
// Input field background (filled variant)
|
|
@@ -245,6 +249,8 @@ var semanticColorsLight = {
|
|
|
245
249
|
"border-default": "#E8E9EB",
|
|
246
250
|
"border-subtle": primitiveColors.neutral[100],
|
|
247
251
|
"border-strong": primitiveColors.neutral[300],
|
|
252
|
+
"border-prominent": primitiveColors.neutral[400],
|
|
253
|
+
// high-visibility divider
|
|
248
254
|
"border-focus": primitiveColors.blue[600],
|
|
249
255
|
"border-input": primitiveColors.neutral[300],
|
|
250
256
|
// Input field border
|
|
@@ -269,37 +275,44 @@ var semanticColorsLight = {
|
|
|
269
275
|
};
|
|
270
276
|
var semanticColorsDark = {
|
|
271
277
|
// Brand colors stay the same in dark mode
|
|
272
|
-
"brand-primary":
|
|
273
|
-
"brand-primary-light":
|
|
274
|
-
"brand-primary-dark":
|
|
278
|
+
"brand-primary": primitiveRamps.orange[400],
|
|
279
|
+
"brand-primary-light": primitiveRamps.orange[300],
|
|
280
|
+
"brand-primary-dark": primitiveRamps.orange[500],
|
|
275
281
|
"brand-primary-subtle": "rgba(255, 121, 0, 0.12)",
|
|
276
|
-
"brand-primary-hover":
|
|
277
|
-
"brand-primary-active":
|
|
278
|
-
"brand-secondary":
|
|
279
|
-
"brand-secondary-light":
|
|
280
|
-
"brand-secondary-dark":
|
|
281
|
-
"brand-secondary-subtle": "rgba(
|
|
282
|
-
"brand-secondary-hover":
|
|
283
|
-
"brand-secondary-active":
|
|
282
|
+
"brand-primary-hover": primitiveRamps.orange[300],
|
|
283
|
+
"brand-primary-active": primitiveRamps.orange[200],
|
|
284
|
+
"brand-secondary": primitiveRamps.cyan[600],
|
|
285
|
+
"brand-secondary-light": primitiveRamps.cyan[500],
|
|
286
|
+
"brand-secondary-dark": primitiveRamps.cyan[700],
|
|
287
|
+
"brand-secondary-subtle": "rgba(48, 123, 155, 0.12)",
|
|
288
|
+
"brand-secondary-hover": primitiveRamps.cyan[500],
|
|
289
|
+
"brand-secondary-active": primitiveRamps.cyan[400],
|
|
284
290
|
// Text on brand backgrounds
|
|
285
291
|
"on-brand-primary": primitiveColors.white,
|
|
286
292
|
"on-brand-secondary": primitiveColors.white,
|
|
287
293
|
// Status colors
|
|
288
|
-
"status-success":
|
|
289
|
-
"status-success-light":
|
|
290
|
-
"status-success-dark":
|
|
291
|
-
"status-success-subtle": "rgba(
|
|
292
|
-
|
|
293
|
-
"status-
|
|
294
|
-
"status-
|
|
294
|
+
"status-success": primitiveRamps.green[300],
|
|
295
|
+
"status-success-light": primitiveRamps.green[200],
|
|
296
|
+
"status-success-dark": primitiveRamps.green[600],
|
|
297
|
+
"status-success-subtle": "rgba(46, 213, 115, 0.12)",
|
|
298
|
+
// Live-session accent — its OWN role, decoupled from success so the two can diverge
|
|
299
|
+
"status-live": primitiveRamps.green[300],
|
|
300
|
+
"status-live-muted": primitiveRamps.green[500],
|
|
301
|
+
"status-error": primitiveRamps.red[600],
|
|
302
|
+
"status-error-light": primitiveRamps.red[500],
|
|
303
|
+
"status-error-dark": primitiveRamps.red[700],
|
|
295
304
|
"status-error-subtle": "rgba(209, 67, 67, 0.12)",
|
|
296
|
-
"status-
|
|
297
|
-
"status-
|
|
298
|
-
"status-
|
|
299
|
-
"status-
|
|
300
|
-
"status-
|
|
301
|
-
"status-
|
|
302
|
-
"status-
|
|
305
|
+
"status-error-vivid": primitiveColors.redVivid[500],
|
|
306
|
+
"status-error-vivid-light": primitiveColors.redVivid[400],
|
|
307
|
+
"status-error-vivid-dark": primitiveColors.redVivid[700],
|
|
308
|
+
"status-error-vivid-subtle": "rgba(255, 71, 87, 0.12)",
|
|
309
|
+
"status-warning": primitiveRamps.amber[300],
|
|
310
|
+
"status-warning-light": primitiveRamps.amber[200],
|
|
311
|
+
"status-warning-dark": primitiveRamps.amber[500],
|
|
312
|
+
"status-warning-subtle": "rgba(249, 180, 21, 0.12)",
|
|
313
|
+
"status-info": primitiveRamps.blue[500],
|
|
314
|
+
"status-info-light": primitiveRamps.blue[300],
|
|
315
|
+
"status-info-dark": primitiveRamps.blue[600],
|
|
303
316
|
"status-info-subtle": "rgba(33, 150, 243, 0.12)",
|
|
304
317
|
// Text on status backgrounds
|
|
305
318
|
"on-status-success": primitiveColors.white,
|
|
@@ -341,29 +354,31 @@ var semanticColorsDark = {
|
|
|
341
354
|
"text-link-hover": primitiveColors.blue[400],
|
|
342
355
|
// Surface colors - dark backgrounds
|
|
343
356
|
"surface-base": primitiveColors.charcoal[700],
|
|
344
|
-
//
|
|
357
|
+
// main surface
|
|
345
358
|
"surface-elevated": primitiveColors.charcoal[600],
|
|
346
|
-
//
|
|
359
|
+
// elevated surface
|
|
347
360
|
"surface-raised": primitiveColors.charcoal[500],
|
|
348
|
-
//
|
|
361
|
+
// raised surface
|
|
349
362
|
"surface-overlay": primitiveColors.charcoal[600],
|
|
350
|
-
//
|
|
363
|
+
// overlay surface
|
|
351
364
|
"surface-input": primitiveColors.charcoal[600],
|
|
352
|
-
//
|
|
365
|
+
// input surface
|
|
353
366
|
// Background colors
|
|
354
367
|
"background-base": primitiveColors.charcoal[900],
|
|
355
|
-
//
|
|
368
|
+
// darkest charcoal
|
|
356
369
|
"background-default": primitiveColors.charcoal[700],
|
|
357
|
-
//
|
|
370
|
+
// main background
|
|
358
371
|
"background-subtle": primitiveColors.charcoal[500],
|
|
359
|
-
//
|
|
372
|
+
// subtle background
|
|
360
373
|
// Border colors
|
|
361
374
|
"border-default": primitiveColors.charcoal[400],
|
|
362
|
-
//
|
|
375
|
+
// default border
|
|
363
376
|
"border-subtle": primitiveColors.charcoal[500],
|
|
364
|
-
//
|
|
377
|
+
// subtle border
|
|
365
378
|
"border-strong": primitiveColors.charcoal[300],
|
|
366
|
-
//
|
|
379
|
+
// strong border
|
|
380
|
+
"border-prominent": primitiveColors.charcoal[200],
|
|
381
|
+
// high-visibility divider
|
|
367
382
|
"border-focus": "#828DF8",
|
|
368
383
|
"border-input": primitiveColors.neutral[600],
|
|
369
384
|
"border-input-hover": primitiveColors.neutral[500],
|
|
@@ -378,7 +393,7 @@ var semanticColorsDark = {
|
|
|
378
393
|
"interactive-disabled-text": "rgba(255, 255, 255, 0.26)",
|
|
379
394
|
// Divider
|
|
380
395
|
"divider": primitiveColors.charcoal[400],
|
|
381
|
-
//
|
|
396
|
+
// divider color
|
|
382
397
|
// Avatar default
|
|
383
398
|
"avatar-background": primitiveColors.neutral[600],
|
|
384
399
|
"avatar-text": primitiveColors.white
|
|
@@ -394,21 +409,22 @@ function resolveColor(token, mode = "dark") {
|
|
|
394
409
|
|
|
395
410
|
// src/theme/workout-tokens.ts
|
|
396
411
|
var WORKOUT_TOKENS = {
|
|
397
|
-
// BodyMap volume heatmap
|
|
398
|
-
//
|
|
412
|
+
// BodyMap volume heatmap — the canonical `divergingScale` (under → optimal →
|
|
413
|
+
// over): a true diverging shape with a light green center, cool-blue under-
|
|
414
|
+
// trained end and warm-red over-reaching end (colorblind-robust in lightness).
|
|
399
415
|
heatmap: {
|
|
400
416
|
none: "#E0E0E0",
|
|
401
|
-
//
|
|
402
|
-
under:
|
|
403
|
-
//
|
|
404
|
-
maintenance:
|
|
405
|
-
//
|
|
406
|
-
productive:
|
|
407
|
-
//
|
|
408
|
-
approaching:
|
|
409
|
-
//
|
|
410
|
-
over:
|
|
411
|
-
//
|
|
417
|
+
// no training data
|
|
418
|
+
under: divergingScale[0],
|
|
419
|
+
// below MEV
|
|
420
|
+
maintenance: divergingScale[1],
|
|
421
|
+
// MEV to MAV
|
|
422
|
+
productive: divergingScale[2],
|
|
423
|
+
// optimal center — MAV to MRV
|
|
424
|
+
approaching: divergingScale[3],
|
|
425
|
+
// near MRV
|
|
426
|
+
over: divergingScale[4]
|
|
427
|
+
// over MRV
|
|
412
428
|
}};
|
|
413
429
|
|
|
414
430
|
// src/components/custom/Workout/muscleTaxonomy.ts
|
|
@@ -614,6 +630,7 @@ var jsxs = wrapJsx(jsxRuntime.jsxs);
|
|
|
614
630
|
|
|
615
631
|
// src/components/custom/Workout/BodyMap.tsx
|
|
616
632
|
var Body = BodyHighlighter__default.default.default ?? BodyHighlighter__default.default;
|
|
633
|
+
var BRAND_PRIMARY = getSemanticColors("dark")["brand-primary"];
|
|
617
634
|
var OUTLINE_FILL = "rgba(255,255,255,0.08)";
|
|
618
635
|
var OUTLINE_BORDER = "rgba(255,255,255,0.12)";
|
|
619
636
|
var BODY_SCALE = 0.8;
|
|
@@ -792,7 +809,7 @@ function ViewToggle({ view, onViewChange }) {
|
|
|
792
809
|
borderRadius: 9999,
|
|
793
810
|
backgroundColor: active ? "rgba(255,121,0,0.16)" : "transparent",
|
|
794
811
|
borderWidth: 1,
|
|
795
|
-
borderColor: active ?
|
|
812
|
+
borderColor: active ? BRAND_PRIMARY : resolveColor("border-strong")
|
|
796
813
|
},
|
|
797
814
|
testID: `body-map-toggle-${side}`,
|
|
798
815
|
children: /* @__PURE__ */ jsx(
|
|
@@ -802,7 +819,7 @@ function ViewToggle({ view, onViewChange }) {
|
|
|
802
819
|
fontSize: 12,
|
|
803
820
|
fontFamily: "Inter, sans-serif",
|
|
804
821
|
fontWeight: active ? "700" : "500",
|
|
805
|
-
color: active ?
|
|
822
|
+
color: active ? BRAND_PRIMARY : resolveColor("text-secondary"),
|
|
806
823
|
textTransform: "capitalize"
|
|
807
824
|
},
|
|
808
825
|
children: side
|
|
@@ -834,7 +851,7 @@ function MuscleButton({ entry, highlighted, onMusclePress }) {
|
|
|
834
851
|
paddingVertical: 3,
|
|
835
852
|
borderRadius: 9999,
|
|
836
853
|
borderWidth: 1,
|
|
837
|
-
borderColor: highlighted ?
|
|
854
|
+
borderColor: highlighted ? BRAND_PRIMARY : resolveColor("border-default")
|
|
838
855
|
},
|
|
839
856
|
testID: `body-map-muscle-${entry.key}`,
|
|
840
857
|
children: [
|
|
@@ -873,9 +890,11 @@ var colorStyles = {
|
|
|
873
890
|
default: "bg-text-tertiary",
|
|
874
891
|
primary: "bg-brand-primary",
|
|
875
892
|
success: "bg-status-success",
|
|
893
|
+
live: "bg-status-live",
|
|
876
894
|
error: "bg-status-error",
|
|
877
895
|
warning: "bg-status-warning",
|
|
878
|
-
info: "bg-status-info"
|
|
896
|
+
info: "bg-status-info",
|
|
897
|
+
"error-vivid": "bg-status-error-vivid"
|
|
879
898
|
};
|
|
880
899
|
function Indicator({
|
|
881
900
|
size = "sm",
|
|
@@ -883,14 +902,40 @@ function Indicator({
|
|
|
883
902
|
customColor,
|
|
884
903
|
glow = false,
|
|
885
904
|
ring = false,
|
|
905
|
+
pulse = false,
|
|
886
906
|
className,
|
|
887
907
|
style,
|
|
888
908
|
...props
|
|
889
909
|
}) {
|
|
910
|
+
const pulseMode = pulse === true ? "opacity" : pulse || false;
|
|
911
|
+
const colorClass = !customColor ? colorStyles[color] : void 0;
|
|
912
|
+
const colorStyle = customColor ? { backgroundColor: customColor } : void 0;
|
|
913
|
+
if (pulseMode === "ping") {
|
|
914
|
+
return /* @__PURE__ */ jsxs(reactNative.View, { className: cn("relative", sizeStyles[size], className), style, ...props, children: [
|
|
915
|
+
/* @__PURE__ */ jsx(
|
|
916
|
+
reactNative.View,
|
|
917
|
+
{
|
|
918
|
+
className: cn("absolute inset-0 rounded-full animate-ping", colorClass),
|
|
919
|
+
style: colorStyle
|
|
920
|
+
}
|
|
921
|
+
),
|
|
922
|
+
/* @__PURE__ */ jsx(
|
|
923
|
+
reactNative.View,
|
|
924
|
+
{
|
|
925
|
+
className: cn(
|
|
926
|
+
"relative rounded-full",
|
|
927
|
+
sizeStyles[size],
|
|
928
|
+
colorClass,
|
|
929
|
+
ring && "border-2 border-background-base"
|
|
930
|
+
),
|
|
931
|
+
style: colorStyle
|
|
932
|
+
}
|
|
933
|
+
)
|
|
934
|
+
] });
|
|
935
|
+
}
|
|
890
936
|
const dynamicStyle = {
|
|
891
937
|
...typeof style === "object" ? style : {},
|
|
892
|
-
...
|
|
893
|
-
...glow && !customColor ? {} : {},
|
|
938
|
+
...colorStyle ?? {},
|
|
894
939
|
...glow && customColor ? { boxShadow: `0 0 6px ${customColor}` } : {}
|
|
895
940
|
};
|
|
896
941
|
return /* @__PURE__ */ jsx(
|
|
@@ -899,12 +944,14 @@ function Indicator({
|
|
|
899
944
|
className: cn(
|
|
900
945
|
"rounded-full shrink-0",
|
|
901
946
|
sizeStyles[size],
|
|
902
|
-
|
|
947
|
+
colorClass,
|
|
948
|
+
pulseMode === "opacity" && "animate-pulse",
|
|
903
949
|
ring && "border-2 border-background-base",
|
|
904
|
-
glow && !customColor && color === "success" && "shadow-[0_0_6px_rgba(
|
|
950
|
+
glow && !customColor && (color === "success" || color === "live") && "shadow-[0_0_6px_rgba(46,213,115,0.6)]",
|
|
905
951
|
glow && !customColor && color === "error" && "shadow-[0_0_6px_rgba(239,68,68,0.6)]",
|
|
906
952
|
glow && !customColor && color === "warning" && "shadow-[0_0_6px_rgba(245,158,11,0.6)]",
|
|
907
953
|
glow && !customColor && color === "primary" && "shadow-[0_0_6px_rgba(255,121,0,0.6)]",
|
|
954
|
+
glow && !customColor && color === "error-vivid" && "shadow-[0_0_6px_rgba(255,71,87,0.6)]",
|
|
908
955
|
className
|
|
909
956
|
),
|
|
910
957
|
style: Object.keys(dynamicStyle).length > 0 ? dynamicStyle : style,
|
|
@@ -982,7 +1029,7 @@ function Badge({
|
|
|
982
1029
|
}
|
|
983
1030
|
);
|
|
984
1031
|
}
|
|
985
|
-
var
|
|
1032
|
+
var BRAND_PRIMARY2 = getSemanticColors("dark")["brand-primary"];
|
|
986
1033
|
function normalizeData(data, height) {
|
|
987
1034
|
if (data.length === 0) return [];
|
|
988
1035
|
const min = Math.min(...data);
|
|
@@ -1019,7 +1066,7 @@ function Sparkline({
|
|
|
1019
1066
|
}
|
|
1020
1067
|
);
|
|
1021
1068
|
}
|
|
1022
|
-
const resolvedColor = color ??
|
|
1069
|
+
const resolvedColor = color ?? BRAND_PRIMARY2;
|
|
1023
1070
|
const normalized = normalizeData(data, height);
|
|
1024
1071
|
const stepX = data.length > 1 ? width / (data.length - 1) : 0;
|
|
1025
1072
|
const dotSize = 3;
|
|
@@ -1135,8 +1182,9 @@ function Sparkline({
|
|
|
1135
1182
|
}
|
|
1136
1183
|
|
|
1137
1184
|
// src/components/custom/Workout/BodyMapDetailPanel.tsx
|
|
1138
|
-
var
|
|
1139
|
-
var
|
|
1185
|
+
var t = getSemanticColors("dark");
|
|
1186
|
+
var BRAND_PRIMARY3 = t["brand-primary"];
|
|
1187
|
+
var VOLUME_GRADIENT = `linear-gradient(90deg, ${t["status-info"]} 0%, ${t["status-success"]} 50%, ${t["status-error"]} 100%)`;
|
|
1140
1188
|
var SLIDE_OFFSET = 400;
|
|
1141
1189
|
var BACKDROP_OPACITY = 0.4;
|
|
1142
1190
|
var STATUS_BADGE_COLOR = {
|
|
@@ -1534,7 +1582,7 @@ function BodyMapDetailPanel({
|
|
|
1534
1582
|
borderColor: "rgba(255,121,0,0.3)"
|
|
1535
1583
|
},
|
|
1536
1584
|
testID: "body-map-detail-panel-view-exercises",
|
|
1537
|
-
children: /* @__PURE__ */ jsx(reactNative.Text, { style: { fontSize: 13, fontFamily: "Inter, sans-serif", fontWeight: "700", color:
|
|
1585
|
+
children: /* @__PURE__ */ jsx(reactNative.Text, { style: { fontSize: 13, fontFamily: "Inter, sans-serif", fontWeight: "700", color: BRAND_PRIMARY3 }, children: "View exercises" })
|
|
1538
1586
|
}
|
|
1539
1587
|
)
|
|
1540
1588
|
]
|
|
@@ -2272,17 +2320,18 @@ function CardContent({ children, className }) {
|
|
|
2272
2320
|
function CardFooter({ children, className }) {
|
|
2273
2321
|
return /* @__PURE__ */ jsx(reactNative.View, { className: cn("px-6 py-4 flex-row items-center gap-2", className), children });
|
|
2274
2322
|
}
|
|
2323
|
+
var t2 = getSemanticColors("dark");
|
|
2275
2324
|
var solidVariantColors = {
|
|
2276
|
-
success: "
|
|
2277
|
-
warning: "
|
|
2278
|
-
error: "
|
|
2325
|
+
success: t2["status-success"],
|
|
2326
|
+
warning: t2["status-warning"],
|
|
2327
|
+
error: t2["status-error"],
|
|
2279
2328
|
neutral: "#6B7280"
|
|
2280
2329
|
};
|
|
2281
2330
|
var ringVariantStyles = {
|
|
2282
2331
|
"on-track": {
|
|
2283
|
-
backgroundColor: "rgba(
|
|
2332
|
+
backgroundColor: "rgba(46,213,115,0.15)",
|
|
2284
2333
|
borderWidth: 1,
|
|
2285
|
-
borderColor: "rgba(
|
|
2334
|
+
borderColor: "rgba(46,213,115,0.3)"
|
|
2286
2335
|
},
|
|
2287
2336
|
deviation: {
|
|
2288
2337
|
backgroundColor: "rgba(245,158,11,0.15)",
|
|
@@ -2297,11 +2346,11 @@ var ringVariantStyles = {
|
|
|
2297
2346
|
}
|
|
2298
2347
|
};
|
|
2299
2348
|
var glowStyles = {
|
|
2300
|
-
success: { boxShadow: "0 0 4px rgba(
|
|
2349
|
+
success: { boxShadow: "0 0 4px rgba(46,213,115,0.4)" },
|
|
2301
2350
|
warning: { boxShadow: "0 0 4px rgba(245,158,11,0.4)" },
|
|
2302
2351
|
error: { boxShadow: "0 0 4px rgba(239,68,68,0.4)" },
|
|
2303
2352
|
neutral: { boxShadow: "0 0 4px rgba(107,114,128,0.4)" },
|
|
2304
|
-
"on-track": { boxShadow: "0 0 4px rgba(
|
|
2353
|
+
"on-track": { boxShadow: "0 0 4px rgba(46,213,115,0.4)" },
|
|
2305
2354
|
deviation: { boxShadow: "0 0 4px rgba(245,158,11,0.4)" },
|
|
2306
2355
|
future: { boxShadow: "0 0 4px rgba(107,114,128,0.4)" }
|
|
2307
2356
|
};
|
|
@@ -2315,8 +2364,8 @@ var iconColors = {
|
|
|
2315
2364
|
warning: "#6B4000",
|
|
2316
2365
|
error: "#5C1A1A",
|
|
2317
2366
|
neutral: "#D1D5DB",
|
|
2318
|
-
"on-track": "
|
|
2319
|
-
deviation: "
|
|
2367
|
+
"on-track": t2["status-success"],
|
|
2368
|
+
deviation: t2["status-warning"],
|
|
2320
2369
|
future: "#6B7280"
|
|
2321
2370
|
};
|
|
2322
2371
|
var sizeDimensions = {
|
|
@@ -2397,20 +2446,23 @@ function StatusDot({
|
|
|
2397
2446
|
}
|
|
2398
2447
|
return /* @__PURE__ */ jsx(reactNative.View, { className, ...props, children: dot });
|
|
2399
2448
|
}
|
|
2449
|
+
var MESO_ACCENT_GRADIENT_DARK = primitiveRamps.orange[500];
|
|
2450
|
+
var MESO_ACCENT_GRADIENT_LIGHT = primitiveRamps.orange[300];
|
|
2400
2451
|
|
|
2401
2452
|
// src/components/custom/Workout/MesoStatusCard.tsx
|
|
2402
|
-
var
|
|
2403
|
-
var
|
|
2404
|
-
var
|
|
2405
|
-
var
|
|
2406
|
-
var
|
|
2407
|
-
var
|
|
2408
|
-
var
|
|
2453
|
+
var t3 = getSemanticColors("dark");
|
|
2454
|
+
var BRAND_PRIMARY4 = t3["brand-primary"];
|
|
2455
|
+
var BRAND_PRIMARY_DARK = MESO_ACCENT_GRADIENT_DARK;
|
|
2456
|
+
var BRAND_PRIMARY_LIGHT = MESO_ACCENT_GRADIENT_LIGHT;
|
|
2457
|
+
var SUCCESS = t3["status-success"];
|
|
2458
|
+
var WARNING = t3["status-warning"];
|
|
2459
|
+
var ERROR = t3["status-error"];
|
|
2460
|
+
var ACCENT_STOPS = [BRAND_PRIMARY_DARK, BRAND_PRIMARY4, BRAND_PRIMARY_LIGHT];
|
|
2409
2461
|
var CARD_GRADIENT = `linear-gradient(135deg, ${resolveColor("surface-elevated")} 0%, ${resolveColor("surface-raised")} 100%)`;
|
|
2410
|
-
var GAUGE_GRADIENT = "linear-gradient(90deg, rgba(
|
|
2462
|
+
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%)";
|
|
2411
2463
|
var STATUS_VARIANTS = {
|
|
2412
|
-
success: { bg: "rgba(
|
|
2413
|
-
warning: { bg: "rgba(
|
|
2464
|
+
success: { bg: "rgba(46,213,115,0.15)", border: "rgba(46,213,115,0.3)", text: SUCCESS },
|
|
2465
|
+
warning: { bg: "rgba(249,180,21,0.15)", border: "rgba(249,180,21,0.3)", text: WARNING },
|
|
2414
2466
|
error: { bg: "rgba(209,67,67,0.15)", border: "rgba(209,67,67,0.25)", text: ERROR }
|
|
2415
2467
|
};
|
|
2416
2468
|
function clamp012(value) {
|
|
@@ -2702,9 +2754,9 @@ function MesoStatusCard({
|
|
|
2702
2754
|
reactNative.View,
|
|
2703
2755
|
{
|
|
2704
2756
|
style: {
|
|
2705
|
-
backgroundColor: "rgba(
|
|
2757
|
+
backgroundColor: "rgba(249,180,21,0.06)",
|
|
2706
2758
|
borderWidth: 1,
|
|
2707
|
-
borderColor: "rgba(
|
|
2759
|
+
borderColor: "rgba(249,180,21,0.15)",
|
|
2708
2760
|
borderRadius: 8,
|
|
2709
2761
|
paddingVertical: 10,
|
|
2710
2762
|
paddingHorizontal: 12
|
|
@@ -2730,9 +2782,9 @@ function MesoStatusCard({
|
|
|
2730
2782
|
className: "flex-row items-center",
|
|
2731
2783
|
style: {
|
|
2732
2784
|
gap: 8,
|
|
2733
|
-
backgroundColor: "rgba(
|
|
2785
|
+
backgroundColor: "rgba(46,213,115,0.06)",
|
|
2734
2786
|
borderWidth: 1,
|
|
2735
|
-
borderColor: "rgba(
|
|
2787
|
+
borderColor: "rgba(46,213,115,0.2)",
|
|
2736
2788
|
borderRadius: 8,
|
|
2737
2789
|
paddingVertical: 10,
|
|
2738
2790
|
paddingHorizontal: 12
|