@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.mjs
CHANGED
|
@@ -12,43 +12,20 @@ function cn(...inputs) {
|
|
|
12
12
|
|
|
13
13
|
// src/theme/tokens/primitives.ts
|
|
14
14
|
var primitiveColors = {
|
|
15
|
-
// Blue scale
|
|
15
|
+
// Blue scale
|
|
16
16
|
blue: {
|
|
17
17
|
400: "#60A5FA",
|
|
18
18
|
600: "#5048E5",
|
|
19
|
-
// Primary main
|
|
20
19
|
700: "#3832A0"},
|
|
21
|
-
//
|
|
22
|
-
teal: {
|
|
23
|
-
50: "#F0FDFA",
|
|
24
|
-
400: "#43C6B7",
|
|
25
|
-
// Success light
|
|
26
|
-
500: "#14B8A6",
|
|
27
|
-
700: "#0E8074"},
|
|
28
|
-
// Red scale (error)
|
|
20
|
+
// Red scale
|
|
29
21
|
red: {
|
|
30
|
-
50: "#FEF2F2",
|
|
31
|
-
400: "#DA6868",
|
|
32
|
-
// Error light
|
|
33
22
|
500: "#EF4444",
|
|
34
|
-
600: "#D14343",
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
400: "#FFBF4C",
|
|
41
|
-
// Warning light
|
|
42
|
-
500: "#FFB020",
|
|
43
|
-
// Warning main
|
|
44
|
-
600: "#B27B16"},
|
|
45
|
-
// Sky/Blue scale (info)
|
|
46
|
-
sky: {
|
|
47
|
-
50: "#F0F9FF",
|
|
48
|
-
400: "#64B6F7",
|
|
49
|
-
// Info light
|
|
50
|
-
500: "#2196F3",
|
|
51
|
-
700: "#0B79D0"},
|
|
23
|
+
600: "#D14343"},
|
|
24
|
+
// Vivid red scale
|
|
25
|
+
redVivid: {
|
|
26
|
+
400: "#FF6070",
|
|
27
|
+
500: "#FF4757",
|
|
28
|
+
700: "#C42539"},
|
|
52
29
|
// Neutral/Gray scale
|
|
53
30
|
neutral: {
|
|
54
31
|
50: "#FAFAFA",
|
|
@@ -58,16 +35,9 @@ var primitiveColors = {
|
|
|
58
35
|
500: "#6B7280",
|
|
59
36
|
600: "#4B5563",
|
|
60
37
|
900: "#111827"},
|
|
61
|
-
// Orange scale (accent/brand color)
|
|
62
|
-
accent: {
|
|
63
|
-
200: "#FF9630",
|
|
64
|
-
300: "#FF8500",
|
|
65
|
-
400: "#FF7900",
|
|
66
|
-
500: "#F56C00",
|
|
67
|
-
600: "#E06D10",
|
|
68
|
-
700: "#D0620C"},
|
|
69
38
|
// Charcoal scale (dark backgrounds)
|
|
70
39
|
charcoal: {
|
|
40
|
+
200: "#3C3C3C",
|
|
71
41
|
300: "#2C2C2C",
|
|
72
42
|
400: "#1F1F1F",
|
|
73
43
|
500: "#1C1C1C",
|
|
@@ -75,15 +45,59 @@ var primitiveColors = {
|
|
|
75
45
|
700: "#161616",
|
|
76
46
|
900: "#101010"
|
|
77
47
|
},
|
|
78
|
-
// Steel scale (cool accent)
|
|
79
|
-
steel: {
|
|
80
|
-
300: "#678498",
|
|
81
|
-
400: "#557488",
|
|
82
|
-
500: "#406D87",
|
|
83
|
-
600: "#39617A",
|
|
84
|
-
700: "#32556D"},
|
|
85
48
|
// Pure colors
|
|
86
49
|
white: "#FFFFFF"};
|
|
50
|
+
var primitiveRamps = {
|
|
51
|
+
red: {
|
|
52
|
+
50: "#FFF4F4",
|
|
53
|
+
500: "#E05254",
|
|
54
|
+
600: "#D14343",
|
|
55
|
+
// pin
|
|
56
|
+
700: "#A4221C"},
|
|
57
|
+
orange: {
|
|
58
|
+
200: "#FFC7A2",
|
|
59
|
+
300: "#FFA063",
|
|
60
|
+
400: "#FF7900",
|
|
61
|
+
// pin
|
|
62
|
+
500: "#DA5F00",
|
|
63
|
+
600: "#B94A00"},
|
|
64
|
+
amber: {
|
|
65
|
+
50: "#FFF7DD",
|
|
66
|
+
200: "#FFD352",
|
|
67
|
+
300: "#F9B415",
|
|
68
|
+
500: "#C27400"},
|
|
69
|
+
green: {
|
|
70
|
+
50: "#E3FFEE",
|
|
71
|
+
200: "#58F69E",
|
|
72
|
+
300: "#2ED573",
|
|
73
|
+
500: "#22A444",
|
|
74
|
+
600: "#298732"},
|
|
75
|
+
cyan: {
|
|
76
|
+
300: "#22D3EE",
|
|
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
|
+
var divergingScale = [
|
|
90
|
+
primitiveRamps.blue[500],
|
|
91
|
+
// under
|
|
92
|
+
primitiveRamps.cyan[300],
|
|
93
|
+
// maintenance
|
|
94
|
+
primitiveRamps.green[200],
|
|
95
|
+
// optimal (light center)
|
|
96
|
+
primitiveRamps.amber[300],
|
|
97
|
+
// approaching
|
|
98
|
+
primitiveRamps.red[600]
|
|
99
|
+
// over
|
|
100
|
+
];
|
|
87
101
|
var discreteRainbow = [
|
|
88
102
|
"#E8ECFB",
|
|
89
103
|
"#D9CCE3",
|
|
@@ -119,56 +133,46 @@ var discreteRainbow = [
|
|
|
119
133
|
// src/theme/tokens/semantic.ts
|
|
120
134
|
var semanticColorsLight = {
|
|
121
135
|
// Brand colors (brand-*)
|
|
122
|
-
"brand-primary":
|
|
123
|
-
|
|
124
|
-
"brand-primary-
|
|
125
|
-
// #FF9630
|
|
126
|
-
"brand-primary-dark": primitiveColors.accent[700],
|
|
127
|
-
// #D0620C
|
|
136
|
+
"brand-primary": primitiveRamps.orange[400],
|
|
137
|
+
"brand-primary-light": primitiveRamps.orange[300],
|
|
138
|
+
"brand-primary-dark": primitiveRamps.orange[500],
|
|
128
139
|
"brand-primary-subtle": "rgba(255, 121, 0, 0.08)",
|
|
129
|
-
"brand-primary-hover":
|
|
130
|
-
"brand-primary-active":
|
|
131
|
-
"brand-secondary":
|
|
132
|
-
|
|
133
|
-
"brand-secondary-
|
|
134
|
-
|
|
135
|
-
"brand-secondary-
|
|
136
|
-
|
|
137
|
-
"brand-secondary-subtle": "rgba(64, 109, 135, 0.08)",
|
|
138
|
-
"brand-secondary-hover": primitiveColors.steel[600],
|
|
139
|
-
"brand-secondary-active": primitiveColors.steel[700],
|
|
140
|
+
"brand-primary-hover": primitiveRamps.orange[500],
|
|
141
|
+
"brand-primary-active": primitiveRamps.orange[600],
|
|
142
|
+
"brand-secondary": primitiveRamps.cyan[600],
|
|
143
|
+
"brand-secondary-light": primitiveRamps.cyan[500],
|
|
144
|
+
"brand-secondary-dark": primitiveRamps.cyan[700],
|
|
145
|
+
"brand-secondary-subtle": "rgba(48, 123, 155, 0.08)",
|
|
146
|
+
"brand-secondary-hover": primitiveRamps.cyan[700],
|
|
147
|
+
"brand-secondary-active": primitiveRamps.cyan[800],
|
|
140
148
|
// Text on brand backgrounds (on-*)
|
|
141
149
|
"on-brand-primary": primitiveColors.white,
|
|
142
150
|
"on-brand-secondary": primitiveColors.white,
|
|
143
151
|
// Status colors (status-*)
|
|
144
|
-
"status-success":
|
|
145
|
-
|
|
146
|
-
"status-success-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
"status-
|
|
151
|
-
"status-error":
|
|
152
|
-
|
|
153
|
-
"status-error-
|
|
154
|
-
|
|
155
|
-
"status-error-
|
|
156
|
-
//
|
|
157
|
-
"status-error-
|
|
158
|
-
"status-
|
|
159
|
-
|
|
160
|
-
"status-warning
|
|
161
|
-
|
|
162
|
-
"status-warning-dark":
|
|
163
|
-
|
|
164
|
-
"status-
|
|
165
|
-
"status-info":
|
|
166
|
-
|
|
167
|
-
"status-info-
|
|
168
|
-
// #64B6F7
|
|
169
|
-
"status-info-dark": primitiveColors.sky[700],
|
|
170
|
-
// #0B79D0
|
|
171
|
-
"status-info-subtle": primitiveColors.sky[50],
|
|
152
|
+
"status-success": primitiveRamps.green[300],
|
|
153
|
+
"status-success-light": primitiveRamps.green[200],
|
|
154
|
+
"status-success-dark": primitiveRamps.green[600],
|
|
155
|
+
"status-success-subtle": primitiveRamps.green[50],
|
|
156
|
+
// Live-session accent — its OWN role, decoupled from success so the two can diverge
|
|
157
|
+
"status-live": primitiveRamps.green[300],
|
|
158
|
+
"status-live-muted": primitiveRamps.green[500],
|
|
159
|
+
"status-error": primitiveRamps.red[600],
|
|
160
|
+
"status-error-light": primitiveRamps.red[500],
|
|
161
|
+
"status-error-dark": primitiveRamps.red[700],
|
|
162
|
+
"status-error-subtle": primitiveRamps.red[50],
|
|
163
|
+
"status-error-vivid": primitiveColors.redVivid[500],
|
|
164
|
+
// vivid alert red
|
|
165
|
+
"status-error-vivid-light": primitiveColors.redVivid[400],
|
|
166
|
+
"status-error-vivid-dark": primitiveColors.redVivid[700],
|
|
167
|
+
"status-error-vivid-subtle": "rgba(255, 71, 87, 0.12)",
|
|
168
|
+
"status-warning": primitiveRamps.amber[300],
|
|
169
|
+
"status-warning-light": primitiveRamps.amber[200],
|
|
170
|
+
"status-warning-dark": primitiveRamps.amber[500],
|
|
171
|
+
"status-warning-subtle": primitiveRamps.amber[50],
|
|
172
|
+
"status-info": primitiveRamps.blue[500],
|
|
173
|
+
"status-info-light": primitiveRamps.blue[300],
|
|
174
|
+
"status-info-dark": primitiveRamps.blue[600],
|
|
175
|
+
"status-info-subtle": primitiveRamps.blue[50],
|
|
172
176
|
// Text on status backgrounds (on-status-*)
|
|
173
177
|
"on-status-success": primitiveColors.white,
|
|
174
178
|
"on-status-error": primitiveColors.white,
|
|
@@ -195,25 +199,25 @@ var semanticColorsLight = {
|
|
|
195
199
|
// Data visualization colors (data-*)
|
|
196
200
|
// First 10 colors from discrete rainbow optimized for charts
|
|
197
201
|
"data-1": discreteRainbow[9],
|
|
198
|
-
//
|
|
202
|
+
// Blue
|
|
199
203
|
"data-2": discreteRainbow[14],
|
|
200
|
-
//
|
|
204
|
+
// Green
|
|
201
205
|
"data-3": discreteRainbow[17],
|
|
202
|
-
//
|
|
206
|
+
// Yellow
|
|
203
207
|
"data-4": discreteRainbow[25],
|
|
204
|
-
//
|
|
208
|
+
// Red
|
|
205
209
|
"data-5": discreteRainbow[8],
|
|
206
|
-
//
|
|
210
|
+
// Purple
|
|
207
211
|
"data-6": discreteRainbow[20],
|
|
208
|
-
//
|
|
212
|
+
// Orange
|
|
209
213
|
"data-7": discreteRainbow[13],
|
|
210
|
-
//
|
|
214
|
+
// Light Blue
|
|
211
215
|
"data-8": discreteRainbow[15],
|
|
212
|
-
//
|
|
216
|
+
// Light Green
|
|
213
217
|
"data-9": discreteRainbow[3],
|
|
214
|
-
//
|
|
218
|
+
// Lavender
|
|
215
219
|
"data-10": discreteRainbow[22],
|
|
216
|
-
//
|
|
220
|
+
// Dark Orange
|
|
217
221
|
// Text colors (text-*)
|
|
218
222
|
"text-primary": "#121828",
|
|
219
223
|
"text-secondary": "#65748B",
|
|
@@ -225,9 +229,9 @@ var semanticColorsLight = {
|
|
|
225
229
|
// Surface colors (surface-*) - for elevated containers
|
|
226
230
|
"surface-base": primitiveColors.white,
|
|
227
231
|
"surface-elevated": primitiveColors.neutral[50],
|
|
228
|
-
//
|
|
232
|
+
// slightly off-white for elevated cards
|
|
229
233
|
"surface-raised": primitiveColors.neutral[100],
|
|
230
|
-
//
|
|
234
|
+
// light gray for raised cards
|
|
231
235
|
"surface-overlay": primitiveColors.white,
|
|
232
236
|
"surface-input": primitiveColors.neutral[50],
|
|
233
237
|
// Input field background (filled variant)
|
|
@@ -239,6 +243,8 @@ var semanticColorsLight = {
|
|
|
239
243
|
"border-default": "#E8E9EB",
|
|
240
244
|
"border-subtle": primitiveColors.neutral[100],
|
|
241
245
|
"border-strong": primitiveColors.neutral[300],
|
|
246
|
+
"border-prominent": primitiveColors.neutral[400],
|
|
247
|
+
// high-visibility divider
|
|
242
248
|
"border-focus": primitiveColors.blue[600],
|
|
243
249
|
"border-input": primitiveColors.neutral[300],
|
|
244
250
|
// Input field border
|
|
@@ -263,37 +269,44 @@ var semanticColorsLight = {
|
|
|
263
269
|
};
|
|
264
270
|
var semanticColorsDark = {
|
|
265
271
|
// Brand colors stay the same in dark mode
|
|
266
|
-
"brand-primary":
|
|
267
|
-
"brand-primary-light":
|
|
268
|
-
"brand-primary-dark":
|
|
272
|
+
"brand-primary": primitiveRamps.orange[400],
|
|
273
|
+
"brand-primary-light": primitiveRamps.orange[300],
|
|
274
|
+
"brand-primary-dark": primitiveRamps.orange[500],
|
|
269
275
|
"brand-primary-subtle": "rgba(255, 121, 0, 0.12)",
|
|
270
|
-
"brand-primary-hover":
|
|
271
|
-
"brand-primary-active":
|
|
272
|
-
"brand-secondary":
|
|
273
|
-
"brand-secondary-light":
|
|
274
|
-
"brand-secondary-dark":
|
|
275
|
-
"brand-secondary-subtle": "rgba(
|
|
276
|
-
"brand-secondary-hover":
|
|
277
|
-
"brand-secondary-active":
|
|
276
|
+
"brand-primary-hover": primitiveRamps.orange[300],
|
|
277
|
+
"brand-primary-active": primitiveRamps.orange[200],
|
|
278
|
+
"brand-secondary": primitiveRamps.cyan[600],
|
|
279
|
+
"brand-secondary-light": primitiveRamps.cyan[500],
|
|
280
|
+
"brand-secondary-dark": primitiveRamps.cyan[700],
|
|
281
|
+
"brand-secondary-subtle": "rgba(48, 123, 155, 0.12)",
|
|
282
|
+
"brand-secondary-hover": primitiveRamps.cyan[500],
|
|
283
|
+
"brand-secondary-active": primitiveRamps.cyan[400],
|
|
278
284
|
// Text on brand backgrounds
|
|
279
285
|
"on-brand-primary": primitiveColors.white,
|
|
280
286
|
"on-brand-secondary": primitiveColors.white,
|
|
281
287
|
// Status colors
|
|
282
|
-
"status-success":
|
|
283
|
-
"status-success-light":
|
|
284
|
-
"status-success-dark":
|
|
285
|
-
"status-success-subtle": "rgba(
|
|
286
|
-
|
|
287
|
-
"status-
|
|
288
|
-
"status-
|
|
288
|
+
"status-success": primitiveRamps.green[300],
|
|
289
|
+
"status-success-light": primitiveRamps.green[200],
|
|
290
|
+
"status-success-dark": primitiveRamps.green[600],
|
|
291
|
+
"status-success-subtle": "rgba(46, 213, 115, 0.12)",
|
|
292
|
+
// Live-session accent — its OWN role, decoupled from success so the two can diverge
|
|
293
|
+
"status-live": primitiveRamps.green[300],
|
|
294
|
+
"status-live-muted": primitiveRamps.green[500],
|
|
295
|
+
"status-error": primitiveRamps.red[600],
|
|
296
|
+
"status-error-light": primitiveRamps.red[500],
|
|
297
|
+
"status-error-dark": primitiveRamps.red[700],
|
|
289
298
|
"status-error-subtle": "rgba(209, 67, 67, 0.12)",
|
|
290
|
-
"status-
|
|
291
|
-
"status-
|
|
292
|
-
"status-
|
|
293
|
-
"status-
|
|
294
|
-
"status-
|
|
295
|
-
"status-
|
|
296
|
-
"status-
|
|
299
|
+
"status-error-vivid": primitiveColors.redVivid[500],
|
|
300
|
+
"status-error-vivid-light": primitiveColors.redVivid[400],
|
|
301
|
+
"status-error-vivid-dark": primitiveColors.redVivid[700],
|
|
302
|
+
"status-error-vivid-subtle": "rgba(255, 71, 87, 0.12)",
|
|
303
|
+
"status-warning": primitiveRamps.amber[300],
|
|
304
|
+
"status-warning-light": primitiveRamps.amber[200],
|
|
305
|
+
"status-warning-dark": primitiveRamps.amber[500],
|
|
306
|
+
"status-warning-subtle": "rgba(249, 180, 21, 0.12)",
|
|
307
|
+
"status-info": primitiveRamps.blue[500],
|
|
308
|
+
"status-info-light": primitiveRamps.blue[300],
|
|
309
|
+
"status-info-dark": primitiveRamps.blue[600],
|
|
297
310
|
"status-info-subtle": "rgba(33, 150, 243, 0.12)",
|
|
298
311
|
// Text on status backgrounds
|
|
299
312
|
"on-status-success": primitiveColors.white,
|
|
@@ -335,29 +348,31 @@ var semanticColorsDark = {
|
|
|
335
348
|
"text-link-hover": primitiveColors.blue[400],
|
|
336
349
|
// Surface colors - dark backgrounds
|
|
337
350
|
"surface-base": primitiveColors.charcoal[700],
|
|
338
|
-
//
|
|
351
|
+
// main surface
|
|
339
352
|
"surface-elevated": primitiveColors.charcoal[600],
|
|
340
|
-
//
|
|
353
|
+
// elevated surface
|
|
341
354
|
"surface-raised": primitiveColors.charcoal[500],
|
|
342
|
-
//
|
|
355
|
+
// raised surface
|
|
343
356
|
"surface-overlay": primitiveColors.charcoal[600],
|
|
344
|
-
//
|
|
357
|
+
// overlay surface
|
|
345
358
|
"surface-input": primitiveColors.charcoal[600],
|
|
346
|
-
//
|
|
359
|
+
// input surface
|
|
347
360
|
// Background colors
|
|
348
361
|
"background-base": primitiveColors.charcoal[900],
|
|
349
|
-
//
|
|
362
|
+
// darkest charcoal
|
|
350
363
|
"background-default": primitiveColors.charcoal[700],
|
|
351
|
-
//
|
|
364
|
+
// main background
|
|
352
365
|
"background-subtle": primitiveColors.charcoal[500],
|
|
353
|
-
//
|
|
366
|
+
// subtle background
|
|
354
367
|
// Border colors
|
|
355
368
|
"border-default": primitiveColors.charcoal[400],
|
|
356
|
-
//
|
|
369
|
+
// default border
|
|
357
370
|
"border-subtle": primitiveColors.charcoal[500],
|
|
358
|
-
//
|
|
371
|
+
// subtle border
|
|
359
372
|
"border-strong": primitiveColors.charcoal[300],
|
|
360
|
-
//
|
|
373
|
+
// strong border
|
|
374
|
+
"border-prominent": primitiveColors.charcoal[200],
|
|
375
|
+
// high-visibility divider
|
|
361
376
|
"border-focus": "#828DF8",
|
|
362
377
|
"border-input": primitiveColors.neutral[600],
|
|
363
378
|
"border-input-hover": primitiveColors.neutral[500],
|
|
@@ -372,7 +387,7 @@ var semanticColorsDark = {
|
|
|
372
387
|
"interactive-disabled-text": "rgba(255, 255, 255, 0.26)",
|
|
373
388
|
// Divider
|
|
374
389
|
"divider": primitiveColors.charcoal[400],
|
|
375
|
-
//
|
|
390
|
+
// divider color
|
|
376
391
|
// Avatar default
|
|
377
392
|
"avatar-background": primitiveColors.neutral[600],
|
|
378
393
|
"avatar-text": primitiveColors.white
|
|
@@ -388,21 +403,22 @@ function resolveColor(token, mode = "dark") {
|
|
|
388
403
|
|
|
389
404
|
// src/theme/workout-tokens.ts
|
|
390
405
|
var WORKOUT_TOKENS = {
|
|
391
|
-
// BodyMap volume heatmap
|
|
392
|
-
//
|
|
406
|
+
// BodyMap volume heatmap — the canonical `divergingScale` (under → optimal →
|
|
407
|
+
// over): a true diverging shape with a light green center, cool-blue under-
|
|
408
|
+
// trained end and warm-red over-reaching end (colorblind-robust in lightness).
|
|
393
409
|
heatmap: {
|
|
394
410
|
none: "#E0E0E0",
|
|
395
|
-
//
|
|
396
|
-
under:
|
|
397
|
-
//
|
|
398
|
-
maintenance:
|
|
399
|
-
//
|
|
400
|
-
productive:
|
|
401
|
-
//
|
|
402
|
-
approaching:
|
|
403
|
-
//
|
|
404
|
-
over:
|
|
405
|
-
//
|
|
411
|
+
// no training data
|
|
412
|
+
under: divergingScale[0],
|
|
413
|
+
// below MEV
|
|
414
|
+
maintenance: divergingScale[1],
|
|
415
|
+
// MEV to MAV
|
|
416
|
+
productive: divergingScale[2],
|
|
417
|
+
// optimal center — MAV to MRV
|
|
418
|
+
approaching: divergingScale[3],
|
|
419
|
+
// near MRV
|
|
420
|
+
over: divergingScale[4]
|
|
421
|
+
// over MRV
|
|
406
422
|
}};
|
|
407
423
|
|
|
408
424
|
// src/components/custom/Workout/muscleTaxonomy.ts
|
|
@@ -608,6 +624,7 @@ var jsxs = wrapJsx(jsxs$1);
|
|
|
608
624
|
|
|
609
625
|
// src/components/custom/Workout/BodyMap.tsx
|
|
610
626
|
var Body = BodyHighlighter.default ?? BodyHighlighter;
|
|
627
|
+
var BRAND_PRIMARY = getSemanticColors("dark")["brand-primary"];
|
|
611
628
|
var OUTLINE_FILL = "rgba(255,255,255,0.08)";
|
|
612
629
|
var OUTLINE_BORDER = "rgba(255,255,255,0.12)";
|
|
613
630
|
var BODY_SCALE = 0.8;
|
|
@@ -786,7 +803,7 @@ function ViewToggle({ view, onViewChange }) {
|
|
|
786
803
|
borderRadius: 9999,
|
|
787
804
|
backgroundColor: active ? "rgba(255,121,0,0.16)" : "transparent",
|
|
788
805
|
borderWidth: 1,
|
|
789
|
-
borderColor: active ?
|
|
806
|
+
borderColor: active ? BRAND_PRIMARY : resolveColor("border-strong")
|
|
790
807
|
},
|
|
791
808
|
testID: `body-map-toggle-${side}`,
|
|
792
809
|
children: /* @__PURE__ */ jsx(
|
|
@@ -796,7 +813,7 @@ function ViewToggle({ view, onViewChange }) {
|
|
|
796
813
|
fontSize: 12,
|
|
797
814
|
fontFamily: "Inter, sans-serif",
|
|
798
815
|
fontWeight: active ? "700" : "500",
|
|
799
|
-
color: active ?
|
|
816
|
+
color: active ? BRAND_PRIMARY : resolveColor("text-secondary"),
|
|
800
817
|
textTransform: "capitalize"
|
|
801
818
|
},
|
|
802
819
|
children: side
|
|
@@ -828,7 +845,7 @@ function MuscleButton({ entry, highlighted, onMusclePress }) {
|
|
|
828
845
|
paddingVertical: 3,
|
|
829
846
|
borderRadius: 9999,
|
|
830
847
|
borderWidth: 1,
|
|
831
|
-
borderColor: highlighted ?
|
|
848
|
+
borderColor: highlighted ? BRAND_PRIMARY : resolveColor("border-default")
|
|
832
849
|
},
|
|
833
850
|
testID: `body-map-muscle-${entry.key}`,
|
|
834
851
|
children: [
|
|
@@ -867,9 +884,11 @@ var colorStyles = {
|
|
|
867
884
|
default: "bg-text-tertiary",
|
|
868
885
|
primary: "bg-brand-primary",
|
|
869
886
|
success: "bg-status-success",
|
|
887
|
+
live: "bg-status-live",
|
|
870
888
|
error: "bg-status-error",
|
|
871
889
|
warning: "bg-status-warning",
|
|
872
|
-
info: "bg-status-info"
|
|
890
|
+
info: "bg-status-info",
|
|
891
|
+
"error-vivid": "bg-status-error-vivid"
|
|
873
892
|
};
|
|
874
893
|
function Indicator({
|
|
875
894
|
size = "sm",
|
|
@@ -877,14 +896,40 @@ function Indicator({
|
|
|
877
896
|
customColor,
|
|
878
897
|
glow = false,
|
|
879
898
|
ring = false,
|
|
899
|
+
pulse = false,
|
|
880
900
|
className,
|
|
881
901
|
style,
|
|
882
902
|
...props
|
|
883
903
|
}) {
|
|
904
|
+
const pulseMode = pulse === true ? "opacity" : pulse || false;
|
|
905
|
+
const colorClass = !customColor ? colorStyles[color] : void 0;
|
|
906
|
+
const colorStyle = customColor ? { backgroundColor: customColor } : void 0;
|
|
907
|
+
if (pulseMode === "ping") {
|
|
908
|
+
return /* @__PURE__ */ jsxs(View, { className: cn("relative", sizeStyles[size], className), style, ...props, children: [
|
|
909
|
+
/* @__PURE__ */ jsx(
|
|
910
|
+
View,
|
|
911
|
+
{
|
|
912
|
+
className: cn("absolute inset-0 rounded-full animate-ping", colorClass),
|
|
913
|
+
style: colorStyle
|
|
914
|
+
}
|
|
915
|
+
),
|
|
916
|
+
/* @__PURE__ */ jsx(
|
|
917
|
+
View,
|
|
918
|
+
{
|
|
919
|
+
className: cn(
|
|
920
|
+
"relative rounded-full",
|
|
921
|
+
sizeStyles[size],
|
|
922
|
+
colorClass,
|
|
923
|
+
ring && "border-2 border-background-base"
|
|
924
|
+
),
|
|
925
|
+
style: colorStyle
|
|
926
|
+
}
|
|
927
|
+
)
|
|
928
|
+
] });
|
|
929
|
+
}
|
|
884
930
|
const dynamicStyle = {
|
|
885
931
|
...typeof style === "object" ? style : {},
|
|
886
|
-
...
|
|
887
|
-
...glow && !customColor ? {} : {},
|
|
932
|
+
...colorStyle ?? {},
|
|
888
933
|
...glow && customColor ? { boxShadow: `0 0 6px ${customColor}` } : {}
|
|
889
934
|
};
|
|
890
935
|
return /* @__PURE__ */ jsx(
|
|
@@ -893,12 +938,14 @@ function Indicator({
|
|
|
893
938
|
className: cn(
|
|
894
939
|
"rounded-full shrink-0",
|
|
895
940
|
sizeStyles[size],
|
|
896
|
-
|
|
941
|
+
colorClass,
|
|
942
|
+
pulseMode === "opacity" && "animate-pulse",
|
|
897
943
|
ring && "border-2 border-background-base",
|
|
898
|
-
glow && !customColor && color === "success" && "shadow-[0_0_6px_rgba(
|
|
944
|
+
glow && !customColor && (color === "success" || color === "live") && "shadow-[0_0_6px_rgba(46,213,115,0.6)]",
|
|
899
945
|
glow && !customColor && color === "error" && "shadow-[0_0_6px_rgba(239,68,68,0.6)]",
|
|
900
946
|
glow && !customColor && color === "warning" && "shadow-[0_0_6px_rgba(245,158,11,0.6)]",
|
|
901
947
|
glow && !customColor && color === "primary" && "shadow-[0_0_6px_rgba(255,121,0,0.6)]",
|
|
948
|
+
glow && !customColor && color === "error-vivid" && "shadow-[0_0_6px_rgba(255,71,87,0.6)]",
|
|
902
949
|
className
|
|
903
950
|
),
|
|
904
951
|
style: Object.keys(dynamicStyle).length > 0 ? dynamicStyle : style,
|
|
@@ -976,7 +1023,7 @@ function Badge({
|
|
|
976
1023
|
}
|
|
977
1024
|
);
|
|
978
1025
|
}
|
|
979
|
-
var
|
|
1026
|
+
var BRAND_PRIMARY2 = getSemanticColors("dark")["brand-primary"];
|
|
980
1027
|
function normalizeData(data, height) {
|
|
981
1028
|
if (data.length === 0) return [];
|
|
982
1029
|
const min = Math.min(...data);
|
|
@@ -1013,7 +1060,7 @@ function Sparkline({
|
|
|
1013
1060
|
}
|
|
1014
1061
|
);
|
|
1015
1062
|
}
|
|
1016
|
-
const resolvedColor = color ??
|
|
1063
|
+
const resolvedColor = color ?? BRAND_PRIMARY2;
|
|
1017
1064
|
const normalized = normalizeData(data, height);
|
|
1018
1065
|
const stepX = data.length > 1 ? width / (data.length - 1) : 0;
|
|
1019
1066
|
const dotSize = 3;
|
|
@@ -1129,8 +1176,9 @@ function Sparkline({
|
|
|
1129
1176
|
}
|
|
1130
1177
|
|
|
1131
1178
|
// src/components/custom/Workout/BodyMapDetailPanel.tsx
|
|
1132
|
-
var
|
|
1133
|
-
var
|
|
1179
|
+
var t = getSemanticColors("dark");
|
|
1180
|
+
var BRAND_PRIMARY3 = t["brand-primary"];
|
|
1181
|
+
var VOLUME_GRADIENT = `linear-gradient(90deg, ${t["status-info"]} 0%, ${t["status-success"]} 50%, ${t["status-error"]} 100%)`;
|
|
1134
1182
|
var SLIDE_OFFSET = 400;
|
|
1135
1183
|
var BACKDROP_OPACITY = 0.4;
|
|
1136
1184
|
var STATUS_BADGE_COLOR = {
|
|
@@ -1528,7 +1576,7 @@ function BodyMapDetailPanel({
|
|
|
1528
1576
|
borderColor: "rgba(255,121,0,0.3)"
|
|
1529
1577
|
},
|
|
1530
1578
|
testID: "body-map-detail-panel-view-exercises",
|
|
1531
|
-
children: /* @__PURE__ */ jsx(Text, { style: { fontSize: 13, fontFamily: "Inter, sans-serif", fontWeight: "700", color:
|
|
1579
|
+
children: /* @__PURE__ */ jsx(Text, { style: { fontSize: 13, fontFamily: "Inter, sans-serif", fontWeight: "700", color: BRAND_PRIMARY3 }, children: "View exercises" })
|
|
1532
1580
|
}
|
|
1533
1581
|
)
|
|
1534
1582
|
]
|
|
@@ -2266,17 +2314,18 @@ function CardContent({ children, className }) {
|
|
|
2266
2314
|
function CardFooter({ children, className }) {
|
|
2267
2315
|
return /* @__PURE__ */ jsx(View, { className: cn("px-6 py-4 flex-row items-center gap-2", className), children });
|
|
2268
2316
|
}
|
|
2317
|
+
var t2 = getSemanticColors("dark");
|
|
2269
2318
|
var solidVariantColors = {
|
|
2270
|
-
success: "
|
|
2271
|
-
warning: "
|
|
2272
|
-
error: "
|
|
2319
|
+
success: t2["status-success"],
|
|
2320
|
+
warning: t2["status-warning"],
|
|
2321
|
+
error: t2["status-error"],
|
|
2273
2322
|
neutral: "#6B7280"
|
|
2274
2323
|
};
|
|
2275
2324
|
var ringVariantStyles = {
|
|
2276
2325
|
"on-track": {
|
|
2277
|
-
backgroundColor: "rgba(
|
|
2326
|
+
backgroundColor: "rgba(46,213,115,0.15)",
|
|
2278
2327
|
borderWidth: 1,
|
|
2279
|
-
borderColor: "rgba(
|
|
2328
|
+
borderColor: "rgba(46,213,115,0.3)"
|
|
2280
2329
|
},
|
|
2281
2330
|
deviation: {
|
|
2282
2331
|
backgroundColor: "rgba(245,158,11,0.15)",
|
|
@@ -2291,11 +2340,11 @@ var ringVariantStyles = {
|
|
|
2291
2340
|
}
|
|
2292
2341
|
};
|
|
2293
2342
|
var glowStyles = {
|
|
2294
|
-
success: { boxShadow: "0 0 4px rgba(
|
|
2343
|
+
success: { boxShadow: "0 0 4px rgba(46,213,115,0.4)" },
|
|
2295
2344
|
warning: { boxShadow: "0 0 4px rgba(245,158,11,0.4)" },
|
|
2296
2345
|
error: { boxShadow: "0 0 4px rgba(239,68,68,0.4)" },
|
|
2297
2346
|
neutral: { boxShadow: "0 0 4px rgba(107,114,128,0.4)" },
|
|
2298
|
-
"on-track": { boxShadow: "0 0 4px rgba(
|
|
2347
|
+
"on-track": { boxShadow: "0 0 4px rgba(46,213,115,0.4)" },
|
|
2299
2348
|
deviation: { boxShadow: "0 0 4px rgba(245,158,11,0.4)" },
|
|
2300
2349
|
future: { boxShadow: "0 0 4px rgba(107,114,128,0.4)" }
|
|
2301
2350
|
};
|
|
@@ -2309,8 +2358,8 @@ var iconColors = {
|
|
|
2309
2358
|
warning: "#6B4000",
|
|
2310
2359
|
error: "#5C1A1A",
|
|
2311
2360
|
neutral: "#D1D5DB",
|
|
2312
|
-
"on-track": "
|
|
2313
|
-
deviation: "
|
|
2361
|
+
"on-track": t2["status-success"],
|
|
2362
|
+
deviation: t2["status-warning"],
|
|
2314
2363
|
future: "#6B7280"
|
|
2315
2364
|
};
|
|
2316
2365
|
var sizeDimensions = {
|
|
@@ -2391,20 +2440,23 @@ function StatusDot({
|
|
|
2391
2440
|
}
|
|
2392
2441
|
return /* @__PURE__ */ jsx(View, { className, ...props, children: dot });
|
|
2393
2442
|
}
|
|
2443
|
+
var MESO_ACCENT_GRADIENT_DARK = primitiveRamps.orange[500];
|
|
2444
|
+
var MESO_ACCENT_GRADIENT_LIGHT = primitiveRamps.orange[300];
|
|
2394
2445
|
|
|
2395
2446
|
// src/components/custom/Workout/MesoStatusCard.tsx
|
|
2396
|
-
var
|
|
2397
|
-
var
|
|
2398
|
-
var
|
|
2399
|
-
var
|
|
2400
|
-
var
|
|
2401
|
-
var
|
|
2402
|
-
var
|
|
2447
|
+
var t3 = getSemanticColors("dark");
|
|
2448
|
+
var BRAND_PRIMARY4 = t3["brand-primary"];
|
|
2449
|
+
var BRAND_PRIMARY_DARK = MESO_ACCENT_GRADIENT_DARK;
|
|
2450
|
+
var BRAND_PRIMARY_LIGHT = MESO_ACCENT_GRADIENT_LIGHT;
|
|
2451
|
+
var SUCCESS = t3["status-success"];
|
|
2452
|
+
var WARNING = t3["status-warning"];
|
|
2453
|
+
var ERROR = t3["status-error"];
|
|
2454
|
+
var ACCENT_STOPS = [BRAND_PRIMARY_DARK, BRAND_PRIMARY4, BRAND_PRIMARY_LIGHT];
|
|
2403
2455
|
var CARD_GRADIENT = `linear-gradient(135deg, ${resolveColor("surface-elevated")} 0%, ${resolveColor("surface-raised")} 100%)`;
|
|
2404
|
-
var GAUGE_GRADIENT = "linear-gradient(90deg, rgba(
|
|
2456
|
+
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%)";
|
|
2405
2457
|
var STATUS_VARIANTS = {
|
|
2406
|
-
success: { bg: "rgba(
|
|
2407
|
-
warning: { bg: "rgba(
|
|
2458
|
+
success: { bg: "rgba(46,213,115,0.15)", border: "rgba(46,213,115,0.3)", text: SUCCESS },
|
|
2459
|
+
warning: { bg: "rgba(249,180,21,0.15)", border: "rgba(249,180,21,0.3)", text: WARNING },
|
|
2408
2460
|
error: { bg: "rgba(209,67,67,0.15)", border: "rgba(209,67,67,0.25)", text: ERROR }
|
|
2409
2461
|
};
|
|
2410
2462
|
function clamp012(value) {
|
|
@@ -2696,9 +2748,9 @@ function MesoStatusCard({
|
|
|
2696
2748
|
View,
|
|
2697
2749
|
{
|
|
2698
2750
|
style: {
|
|
2699
|
-
backgroundColor: "rgba(
|
|
2751
|
+
backgroundColor: "rgba(249,180,21,0.06)",
|
|
2700
2752
|
borderWidth: 1,
|
|
2701
|
-
borderColor: "rgba(
|
|
2753
|
+
borderColor: "rgba(249,180,21,0.15)",
|
|
2702
2754
|
borderRadius: 8,
|
|
2703
2755
|
paddingVertical: 10,
|
|
2704
2756
|
paddingHorizontal: 12
|
|
@@ -2724,9 +2776,9 @@ function MesoStatusCard({
|
|
|
2724
2776
|
className: "flex-row items-center",
|
|
2725
2777
|
style: {
|
|
2726
2778
|
gap: 8,
|
|
2727
|
-
backgroundColor: "rgba(
|
|
2779
|
+
backgroundColor: "rgba(46,213,115,0.06)",
|
|
2728
2780
|
borderWidth: 1,
|
|
2729
|
-
borderColor: "rgba(
|
|
2781
|
+
borderColor: "rgba(46,213,115,0.2)",
|
|
2730
2782
|
borderRadius: 8,
|
|
2731
2783
|
paddingVertical: 10,
|
|
2732
2784
|
paddingHorizontal: 12
|