@titan-design/react-ui 0.12.1 → 0.14.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/README.md +60 -47
- package/dist/bodymap.js +856 -736
- package/dist/bodymap.js.map +1 -1
- package/dist/bodymap.mjs +858 -738
- package/dist/bodymap.mjs.map +1 -1
- package/dist/index.d.mts +1431 -237
- package/dist/index.d.ts +1431 -237
- package/dist/index.js +6506 -4781
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +6280 -4642
- package/dist/index.mjs.map +1 -1
- package/dist/{pages-B1hqnGIC.d.ts → pages-CsjsUn0G.d.ts} +51 -16
- package/dist/{pages-CvsFqNtx.d.mts → pages-ZbT_pD_U.d.mts} +51 -16
- package/dist/pages.d.mts +1 -1
- package/dist/pages.d.ts +1 -1
- package/dist/pages.js +1919 -1937
- package/dist/pages.js.map +1 -1
- package/dist/pages.mjs +1927 -1945
- package/dist/pages.mjs.map +1 -1
- package/dist/theme/index.d.mts +225 -140
- package/dist/theme/index.d.ts +225 -140
- package/dist/theme/index.js +298 -319
- package/dist/theme/index.js.map +1 -1
- package/dist/theme/index.mjs +283 -315
- package/dist/theme/index.mjs.map +1 -1
- package/dist/theme/tokens-css.js +145 -24
- package/dist/theme/tokens-css.js.map +1 -1
- package/dist/theme/tokens-css.mjs +145 -24
- package/dist/theme/tokens-css.mjs.map +1 -1
- package/dist/theme/tokens.d.mts +128 -11
- package/dist/theme/tokens.d.ts +128 -11
- package/dist/theme/tokens.js +126 -26
- package/dist/theme/tokens.js.map +1 -1
- package/dist/theme/tokens.mjs +124 -27
- package/dist/theme/tokens.mjs.map +1 -1
- package/docs/audits/2026-09-08-critique-addenda.md +51 -0
- package/docs/audits/2026-09-08-library-critique.md +212 -0
- package/docs/library-roadmap.md +99 -0
- package/docs/render-testing-pattern.md +130 -0
- package/package.json +1 -1
- package/src/arch/Architecture.stories.tsx +3 -1
- package/src/arch/arch-graph.freshness.test.ts +52 -0
- package/src/arch/arch-graph.json +4989 -1583
- package/src/components/custom/ActiveWork/CoChangeChip.stories.tsx +44 -0
- package/src/components/custom/ActiveWork/CoChangeChip.test.tsx +29 -0
- package/src/components/custom/ActiveWork/CoChangeChip.tsx +48 -0
- package/src/components/custom/ActiveWork/Eyebrow.stories.tsx +25 -0
- package/src/components/custom/ActiveWork/Eyebrow.test.tsx +16 -0
- package/src/components/custom/ActiveWork/Eyebrow.tsx +26 -0
- package/src/components/custom/ActiveWork/FileActivityDetail.stories.tsx +50 -0
- package/src/components/custom/ActiveWork/FileActivityDetail.test.tsx +66 -0
- package/src/components/custom/ActiveWork/FileActivityDetail.tsx +202 -0
- package/src/components/custom/ActiveWork/FileActivityRow.stories.tsx +70 -0
- package/src/components/custom/ActiveWork/FileActivityRow.test.tsx +67 -0
- package/src/components/custom/ActiveWork/FileActivityRow.tsx +130 -0
- package/src/components/custom/ActiveWork/FileHistoryExplorer.stories.tsx +84 -0
- package/src/components/custom/ActiveWork/FileHistoryExplorer.test.tsx +99 -0
- package/src/components/custom/ActiveWork/FileHistoryExplorer.tsx +138 -0
- package/src/components/custom/ActiveWork/FilePathLabel.stories.tsx +39 -0
- package/src/components/custom/ActiveWork/FilePathLabel.test.tsx +53 -0
- package/src/components/custom/ActiveWork/FilePathLabel.tsx +63 -0
- package/src/components/custom/ActiveWork/InitiativeBrief.stories.tsx +50 -0
- package/src/components/custom/ActiveWork/InitiativeBrief.test.tsx +62 -0
- package/src/components/custom/ActiveWork/InitiativeBrief.tsx +182 -0
- package/src/components/custom/ActiveWork/InitiativeCard.stories.tsx +73 -0
- package/src/components/custom/ActiveWork/InitiativeCard.test.tsx +68 -0
- package/src/components/custom/ActiveWork/InitiativeCard.tsx +136 -0
- package/src/components/custom/ActiveWork/InitiativeHeader.stories.tsx +59 -0
- package/src/components/custom/ActiveWork/InitiativeHeader.test.tsx +40 -0
- package/src/components/custom/ActiveWork/InitiativeHeader.tsx +73 -0
- package/src/components/custom/ActiveWork/InitiativeReader.stories.tsx +145 -0
- package/src/components/custom/ActiveWork/OpenLoops.stories.tsx +58 -0
- package/src/components/custom/ActiveWork/OpenLoops.test.tsx +61 -0
- package/src/components/custom/ActiveWork/OpenLoops.tsx +107 -0
- package/src/components/custom/ActiveWork/PortfolioOverview.stories.tsx +101 -0
- package/src/components/custom/ActiveWork/PortfolioOverview.test.tsx +81 -0
- package/src/components/custom/ActiveWork/PortfolioOverview.tsx +83 -0
- package/src/components/custom/ActiveWork/README.md +305 -0
- package/src/components/custom/ActiveWork/SessionDetail.stories.tsx +71 -0
- package/src/components/custom/ActiveWork/SessionDetail.test.tsx +84 -0
- package/src/components/custom/ActiveWork/SessionDetail.tsx +180 -0
- package/src/components/custom/ActiveWork/SessionList.stories.tsx +69 -0
- package/src/components/custom/ActiveWork/SessionList.test.tsx +78 -0
- package/src/components/custom/ActiveWork/SessionList.tsx +103 -0
- package/src/components/custom/ActiveWork/SessionListItem.stories.tsx +64 -0
- package/src/components/custom/ActiveWork/SessionListItem.test.tsx +62 -0
- package/src/components/custom/ActiveWork/SessionListItem.tsx +152 -0
- package/src/components/custom/ActiveWork/SessionReader.stories.tsx +113 -0
- package/src/components/custom/ActiveWork/SeverityLabel.stories.tsx +51 -0
- package/src/components/custom/ActiveWork/SeverityLabel.test.tsx +68 -0
- package/src/components/custom/ActiveWork/SeverityLabel.tsx +97 -0
- package/src/components/custom/ActiveWork/TaskRow.stories.tsx +63 -0
- package/src/components/custom/ActiveWork/TaskRow.test.tsx +112 -0
- package/src/components/custom/ActiveWork/TaskRow.tsx +176 -0
- package/src/components/custom/ActiveWork/TaskTable.stories.tsx +123 -0
- package/src/components/custom/ActiveWork/TaskTable.test.tsx +233 -0
- package/src/components/custom/ActiveWork/TaskTable.tsx +321 -0
- package/src/components/custom/ActiveWork/active-work-depth.test.tsx +102 -0
- package/src/components/custom/ActiveWork/file-history-fixture.ts +91 -0
- package/src/components/custom/ActiveWork/format-time.test.ts +23 -0
- package/src/components/custom/ActiveWork/format-time.ts +32 -0
- package/src/components/custom/ActiveWork/index.ts +19 -0
- package/src/components/custom/ActiveWork/initiative-fixture.ts +104 -0
- package/src/components/custom/ActiveWork/session-fixture.ts +267 -0
- package/src/components/custom/ActiveWork/session-linkers.ts +56 -0
- package/src/components/custom/ActiveWork/task-list-fixture.ts +97 -0
- package/src/components/custom/CircularTimer/CircularTimer.stories.tsx +12 -6
- package/src/components/custom/DateTime/DateTime.stories.tsx +2 -1
- package/src/components/custom/DateTime/DateTime.test.tsx +3 -1
- package/src/components/custom/EmptyState/EmptyState.stories.tsx +22 -9
- package/src/components/custom/EmptyState/EmptyState.test.tsx +7 -13
- package/src/components/custom/EmptyState/EmptyState.tsx +4 -18
- package/src/components/custom/Fatigue/DualGhostSpark.stories.tsx +4 -3
- package/src/components/custom/Fatigue/FatigueLights.stories.tsx +2 -2
- package/src/components/custom/Fatigue/GhostSpark.stories.tsx +4 -3
- package/src/components/custom/Fatigue/LiveFatigueCard.stories.tsx +2 -2
- package/src/components/custom/Fatigue/LiveFatigueCard.tsx +8 -4
- package/src/components/custom/Fatigue/LiveFatiguePanel.stories.tsx +116 -6
- package/src/components/custom/Fatigue/LiveFatiguePanel.test.tsx +134 -0
- package/src/components/custom/Fatigue/LiveFatiguePanel.tsx +54 -83
- package/src/components/custom/Fatigue/README.md +40 -3
- package/src/components/custom/Fatigue/RomProgressionChart.stories.tsx +2 -2
- package/src/components/custom/Fatigue/SilverRedPalette.stories.tsx +2 -1
- package/src/components/custom/Fatigue/VelocityHero.stories.tsx +4 -3
- package/src/components/custom/Fatigue/VerdictHero.stories.tsx +2 -2
- package/src/components/custom/Fatigue/fatigue-mock.test.ts +0 -5
- package/src/components/custom/Fatigue/fatigue-mock.ts +2 -10
- package/src/components/custom/Fatigue/fatigue-tokens.ts +12 -0
- package/src/components/custom/Fatigue/index.ts +17 -5
- package/src/components/custom/Fatigue/panel-layout.test.ts +149 -0
- package/src/components/custom/Fatigue/panel-layout.ts +185 -0
- package/src/components/custom/Gauge/Gauge.stories.tsx +6 -3
- package/src/components/custom/Gauge/Gauge.test.tsx +1 -1
- package/src/components/custom/Gauge/Gauge.tsx +7 -2
- package/src/components/custom/Metric/Metric.stories.tsx +10 -1
- package/src/components/custom/Metric/Metric.test.tsx +1 -3
- package/src/components/custom/Metric/Metric.tsx +5 -20
- package/src/components/custom/Prose/MarkdownProse.stories.tsx +88 -0
- package/src/components/custom/Prose/MarkdownProse.test.tsx +87 -0
- package/src/components/custom/Prose/MarkdownProse.tsx +201 -0
- package/src/components/custom/Prose/README.md +58 -0
- package/src/components/custom/Prose/index.ts +1 -0
- package/src/components/custom/Scatter/Scatter.stories.tsx +55 -14
- package/src/components/custom/Scatter/Scatter.test.tsx +2 -2
- package/src/components/custom/Scatter/Scatter.tsx +122 -18
- package/src/components/custom/Sidebar/Sidebar.stories.tsx +41 -8
- package/src/components/custom/Sidebar/Sidebar.test.tsx +5 -1
- package/src/components/custom/Sidebar/Sidebar.tsx +16 -33
- package/src/components/custom/Table/Table.stories.tsx +99 -16
- package/src/components/custom/Table/Table.test.tsx +273 -86
- package/src/components/custom/Table/Table.tsx +159 -67
- package/src/components/custom/Table/column-fit.test.ts +75 -0
- package/src/components/custom/Table/column-fit.ts +116 -0
- package/src/components/custom/Table/index.ts +9 -0
- package/src/components/custom/TimerReadout/TimerReadout.stories.tsx +8 -6
- package/src/components/custom/Treemap/Treemap.stories.tsx +15 -12
- package/src/components/custom/Treemap/Treemap.test.tsx +1 -1
- package/src/components/custom/Treemap/Treemap.tsx +11 -3
- package/src/components/custom/Typography/Typography.stories.tsx +28 -1
- package/src/components/custom/Typography/Typography.test.tsx +34 -0
- package/src/components/custom/Typography/Typography.tsx +6 -0
- package/src/components/custom/Typography/index.ts +1 -8
- package/src/components/custom/Workout/ActiveWorkoutPage.stories.tsx +11 -2
- package/src/components/custom/Workout/BaseBadge.stories.tsx +27 -11
- package/src/components/custom/Workout/BaseBadge.test.tsx +31 -11
- package/src/components/custom/Workout/BaseBadge.tsx +6 -2
- package/src/components/custom/Workout/BodyMap.stories.tsx +4 -1
- package/src/components/custom/Workout/BodyMap.tsx +8 -4
- package/src/components/custom/Workout/BodyMapDetailPanel.stories.tsx +28 -6
- package/src/components/custom/Workout/BodyMapDetailPanel.test.tsx +11 -15
- package/src/components/custom/Workout/BodyMapDetailPanel.tsx +50 -12
- package/src/components/custom/Workout/CapacityBandChart.stories.tsx +12 -9
- package/src/components/custom/Workout/CapacityBandChart.test.tsx +24 -51
- package/src/components/custom/Workout/CapacityBandChart.tsx +144 -111
- package/src/components/custom/Workout/DeviationBar.stories.tsx +1 -1
- package/src/components/custom/Workout/DeviationBar.test.tsx +10 -4
- package/src/components/custom/Workout/DeviationBar.tsx +24 -16
- package/src/components/custom/Workout/DualVelocityStrip.stories.tsx +183 -0
- package/src/components/custom/Workout/DualVelocityStrip.test.tsx +32 -18
- package/src/components/custom/Workout/ExerciseCard.stories.tsx +12 -11
- package/src/components/custom/Workout/ExerciseCard.test.tsx +52 -22
- package/src/components/custom/Workout/ExerciseCard.tsx +99 -183
- package/src/components/custom/Workout/ExerciseCardHeading.stories.tsx +95 -12
- package/src/components/custom/Workout/ExerciseCardHeading.test.tsx +189 -1
- package/src/components/custom/Workout/ExerciseCardHeading.tsx +167 -18
- package/src/components/custom/Workout/ExerciseDetailPage.stories.tsx +9 -1
- package/src/components/custom/Workout/ExerciseDetailPage.tsx +3 -2
- package/src/components/custom/Workout/ExerciseHeading.stories.tsx +8 -8
- package/src/components/custom/Workout/ExerciseHeading.tsx +194 -46
- package/src/components/custom/Workout/ExerciseIndicator.stories.tsx +12 -9
- package/src/components/custom/Workout/ExerciseIndicator.test.tsx +27 -11
- package/src/components/custom/Workout/ExerciseIndicator.tsx +14 -15
- package/src/components/custom/Workout/FatigueMeter.stories.tsx +5 -5
- package/src/components/custom/Workout/InputBar.stories.tsx +4 -5
- package/src/components/custom/Workout/InputBar.tsx +4 -2
- package/src/components/custom/Workout/IntensityBar.stories.tsx +1 -1
- package/src/components/custom/Workout/IntensityBar.test.tsx +5 -1
- package/src/components/custom/Workout/IntensityBar.tsx +8 -3
- package/src/components/custom/Workout/LiveAuraFrame.stories.tsx +5 -4
- package/src/components/custom/Workout/MesoCard.stories.tsx +4 -1
- package/src/components/custom/Workout/MesoCard.test.tsx +7 -18
- package/src/components/custom/Workout/MesoCard.tsx +14 -10
- package/src/components/custom/Workout/MesoProgressBar.stories.tsx +1 -1
- package/src/components/custom/Workout/MesoProgressBar.test.tsx +18 -11
- package/src/components/custom/Workout/MesoProgressBar.tsx +15 -13
- package/src/components/custom/Workout/MesoStatusCard.stories.tsx +2 -1
- package/src/components/custom/Workout/MesoStatusCard.test.tsx +14 -44
- package/src/components/custom/Workout/MesoStatusCard.tsx +20 -33
- package/src/components/custom/Workout/MetricTiles.stories.tsx +3 -2
- package/src/components/custom/Workout/MuscleGroupChip.stories.tsx +2 -8
- package/src/components/custom/Workout/MuscleGroupChip.test.tsx +23 -31
- package/src/components/custom/Workout/MuscleGroupChip.tsx +28 -67
- package/src/components/custom/Workout/PlaceholderStrip.stories.tsx +9 -4
- package/src/components/custom/Workout/PlaceholderStrip.test.tsx +17 -10
- package/src/components/custom/Workout/PlaceholderStrip.tsx +9 -8
- package/src/components/custom/Workout/PrBadge.stories.tsx +2 -1
- package/src/components/custom/Workout/PrBadge.test.tsx +3 -9
- package/src/components/custom/Workout/PrBadge.tsx +13 -17
- package/src/components/custom/Workout/PrHistoryModal.stories.tsx +16 -3
- package/src/components/custom/Workout/PrHistoryModal.test.tsx +13 -36
- package/src/components/custom/Workout/PrHistoryModal.tsx +8 -4
- package/src/components/custom/Workout/ProgramPlanningPage.stories.tsx +6 -1
- package/src/components/custom/Workout/README.md +68 -17
- package/src/components/custom/Workout/ReadinessCheck.stories.tsx +3 -2
- package/src/components/custom/Workout/ReadinessCheck.test.tsx +12 -18
- package/src/components/custom/Workout/ReadinessCheck.tsx +22 -4
- package/src/components/custom/Workout/RestTimer.stories.tsx +16 -4
- package/src/components/custom/Workout/RestTimer.tsx +4 -2
- package/src/components/custom/Workout/ScheduleTiles.stories.tsx +3 -2
- package/src/components/custom/Workout/ScheduleTiles.test.tsx +3 -4
- package/src/components/custom/Workout/ScheduleTiles.tsx +4 -7
- package/src/components/custom/Workout/SegmentedBar.stories.tsx +21 -17
- package/src/components/custom/Workout/SegmentedBar.tsx +10 -5
- package/src/components/custom/Workout/SegmentedProgressBar.stories.tsx +5 -5
- package/src/components/custom/Workout/SessionHeader.stories.tsx +6 -6
- package/src/components/custom/Workout/SessionHeader.tsx +12 -12
- package/src/components/custom/Workout/SessionRail.stories.tsx +12 -11
- package/src/components/custom/Workout/SessionRail.tsx +7 -9
- package/src/components/custom/Workout/SetBar.stories.tsx +10 -6
- package/src/components/custom/Workout/SetBar.test.tsx +49 -4
- package/src/components/custom/Workout/SetBar.tsx +38 -12
- package/src/components/custom/Workout/SetRow.stories.tsx +3 -2
- package/src/components/custom/Workout/SetRow.test.tsx +16 -2
- package/src/components/custom/Workout/SetRow.tsx +61 -23
- package/src/components/custom/Workout/SetStrip.stories.tsx +63 -7
- package/src/components/custom/Workout/SetStrip.test.tsx +25 -0
- package/src/components/custom/Workout/SetStrip.tsx +24 -4
- package/src/components/custom/Workout/SetTableHeader.stories.tsx +6 -6
- package/src/components/custom/Workout/SetTableHeader.tsx +9 -12
- package/src/components/custom/Workout/SetsRepsLoad.stories.tsx +7 -7
- package/src/components/custom/Workout/SetsRepsLoad.tsx +24 -12
- package/src/components/custom/Workout/Sparkline.stories.tsx +14 -11
- package/src/components/custom/Workout/Sparkline.test.tsx +37 -19
- package/src/components/custom/Workout/Sparkline.tsx +14 -18
- package/src/components/custom/Workout/StatusDot.stories.tsx +1 -1
- package/src/components/custom/Workout/StatusDot.test.tsx +44 -5
- package/src/components/custom/Workout/StatusDot.tsx +93 -63
- package/src/components/custom/Workout/StatusPill.stories.tsx +1 -1
- package/src/components/custom/Workout/StatusPill.test.tsx +6 -15
- package/src/components/custom/Workout/StatusPill.tsx +27 -38
- package/src/components/custom/Workout/StrengthTrendChart.stories.tsx +11 -4
- package/src/components/custom/Workout/StrengthTrendChart.test.tsx +15 -37
- package/src/components/custom/Workout/StrengthTrendChart.tsx +39 -36
- package/src/components/custom/Workout/SupersetWrapper.stories.tsx +27 -64
- package/src/components/custom/Workout/SupersetWrapper.test.tsx +16 -14
- package/src/components/custom/Workout/SupersetWrapper.tsx +17 -21
- package/src/components/custom/Workout/TempoDisplay.stories.tsx +26 -10
- package/src/components/custom/Workout/TempoDisplay.test.tsx +18 -4
- package/src/components/custom/Workout/TempoDisplay.tsx +2 -0
- package/src/components/custom/Workout/TrainingStatusPage.stories.tsx +9 -1
- package/src/components/custom/Workout/VelocityStrip.compact.stories.tsx +4 -1
- package/src/components/custom/Workout/VelocityStrip.dual.stories.tsx +10 -6
- package/src/components/custom/Workout/VelocityStrip.expanded.stories.tsx +5 -2
- package/src/components/custom/Workout/VelocityStrip.hero.stories.tsx +44 -1
- package/src/components/custom/Workout/VelocityStrip.stories.tsx +12 -6
- package/src/components/custom/Workout/VelocityStrip.test.tsx +48 -6
- package/src/components/custom/Workout/VelocityStrip.tsx +26 -14
- package/src/components/custom/Workout/VolumeLandmarkBar.stories.tsx +6 -7
- package/src/components/custom/Workout/VolumeLandmarkBar.tsx +15 -6
- package/src/components/custom/Workout/WeekRow.stories.tsx +4 -1
- package/src/components/custom/Workout/WeekRow.test.tsx +18 -15
- package/src/components/custom/Workout/WeekRow.tsx +23 -16
- package/src/components/custom/Workout/WeightBadge.stories.tsx +2 -1
- package/src/components/custom/Workout/WeightBadge.test.tsx +50 -19
- package/src/components/custom/Workout/WeightBadge.tsx +28 -27
- package/src/components/custom/Workout/WorkoutCard.stories.tsx +6 -1
- package/src/components/custom/Workout/WorkoutCard.test.tsx +18 -0
- package/src/components/custom/Workout/WorkoutCard.tsx +35 -57
- package/src/components/custom/Workout/WorkoutPill.stories.tsx +5 -2
- package/src/components/custom/Workout/WorkoutPill.test.tsx +39 -7
- package/src/components/custom/Workout/WorkoutPill.tsx +88 -57
- package/src/components/custom/Workout/ZoneTrack.stories.tsx +10 -7
- package/src/components/custom/Workout/ZoneTrack.tsx +10 -9
- package/src/components/custom/Workout/exerciseRowState.ts +29 -0
- package/src/components/custom/Workout/index.ts +17 -2
- package/src/components/custom/Workout/metricText.stories.tsx +15 -13
- package/src/components/custom/Workout/metricText.tsx +8 -2
- package/src/components/custom/Workout/setHeadingKit.tsx +219 -36
- package/src/components/custom/Workout/velocity-story-kit.tsx +2 -2
- package/src/components/custom/charts/README.md +66 -0
- package/src/components/custom/charts/SetBarChart.test.tsx +46 -1
- package/src/components/custom/charts/SetBarChart.tsx +56 -9
- package/src/components/custom/charts/SparkBars.stories.tsx +55 -0
- package/src/components/custom/charts/SparkBars.test.tsx +69 -0
- package/src/components/custom/charts/SparkBars.tsx +85 -0
- package/src/components/custom/charts/flatBarGeometry.test.ts +41 -0
- package/src/components/custom/charts/flatBarGeometry.ts +32 -0
- package/src/components/custom/charts/index.ts +3 -0
- package/src/components/custom/index.ts +3 -0
- package/src/components/custom/stepper/Stepper.stories.tsx +13 -10
- package/src/components/custom/stepper/Stepper.test.tsx +1 -7
- package/src/components/custom/stepper/Stepper.tsx +21 -34
- package/src/components/icons/icons.stories.tsx +1 -1
- package/src/components/icons/icons.tsx +51 -0
- package/src/components/shell/AppShell.stories.tsx +150 -0
- package/src/components/shell/AppShell.test.tsx +70 -0
- package/src/components/shell/AppShell.tsx +90 -0
- package/src/components/shell/BrandLockup.stories.tsx +66 -5
- package/src/components/shell/BrandLockup.test.tsx +34 -1
- package/src/components/shell/BrandLockup.tsx +27 -11
- package/src/components/shell/NavItem.stories.tsx +4 -4
- package/src/components/shell/NavItem.test.tsx +17 -0
- package/src/components/shell/NavItem.tsx +17 -5
- package/src/components/shell/README.md +89 -26
- package/src/components/shell/SideNav.stories.tsx +38 -7
- package/src/components/shell/SideNav.test.tsx +16 -8
- package/src/components/shell/SideNav.tsx +17 -17
- package/src/components/shell/TopBar.stories.tsx +44 -19
- package/src/components/shell/TopBar.test.tsx +34 -12
- package/src/components/shell/TopBar.tsx +61 -40
- package/src/components/shell/brands.tsx +66 -0
- package/src/components/shell/index.ts +9 -8
- package/src/components/shell/{DeviceIndicator.stories.tsx → workout/DeviceIndicator.stories.tsx} +2 -2
- package/src/components/shell/{DeviceIndicator.tsx → workout/DeviceIndicator.tsx} +2 -2
- package/src/components/shell/{DeviceMenu.stories.tsx → workout/DeviceMenu.stories.tsx} +2 -2
- package/src/components/shell/{DeviceMenu.tsx → workout/DeviceMenu.tsx} +3 -3
- package/src/components/shell/{DeviceRow.stories.tsx → workout/DeviceRow.stories.tsx} +2 -2
- package/src/components/shell/{DeviceRow.tsx → workout/DeviceRow.tsx} +3 -3
- package/src/components/shell/{SessionStatePill.stories.tsx → workout/SessionStatePill.stories.tsx} +2 -2
- package/src/components/shell/{SessionStatePill.tsx → workout/SessionStatePill.tsx} +5 -3
- package/src/components/shell/workout/WorkoutShell.stories.tsx +71 -0
- package/src/components/shell/{DashboardShell.test.tsx → workout/WorkoutShell.test.tsx} +19 -8
- package/src/components/shell/workout/WorkoutShell.tsx +77 -0
- package/src/components/shell/workout/WorkoutTopBar.stories.tsx +58 -0
- package/src/components/shell/workout/WorkoutTopBar.test.tsx +39 -0
- package/src/components/shell/workout/WorkoutTopBar.tsx +52 -0
- package/src/components/shell/workout/index.ts +9 -0
- package/src/components/shell/workout/workoutNavItems.tsx +16 -0
- package/src/components/ui/README.md +110 -0
- package/src/components/ui/alert/Alert.stories.tsx +15 -5
- package/src/components/ui/alert/Alert.tsx +24 -3
- package/src/components/ui/autocomplete/Autocomplete.stories.tsx +11 -13
- package/src/components/ui/autocomplete/Autocomplete.test.tsx +7 -25
- package/src/components/ui/autocomplete/Autocomplete.tsx +21 -28
- package/src/components/ui/avatar/Avatar.stories.tsx +1 -1
- package/src/components/ui/avatar/Avatar.tsx +2 -10
- package/src/components/ui/badge/Badge.stories.tsx +83 -28
- package/src/components/ui/badge/Badge.test.tsx +19 -3
- package/src/components/ui/badge/Badge.tsx +48 -55
- package/src/components/ui/breadcrumbs/Breadcrumbs.stories.tsx +1 -1
- package/src/components/ui/breadcrumbs/Breadcrumbs.tsx +4 -16
- package/src/components/ui/button/Button.stories.tsx +46 -12
- package/src/components/ui/button/Button.tsx +44 -37
- package/src/components/ui/card/Card.stories.tsx +90 -94
- package/src/components/ui/card/Card.test.tsx +80 -6
- package/src/components/ui/card/Card.tsx +150 -203
- package/src/components/ui/checkbox/Checkbox.stories.tsx +1 -1
- package/src/components/ui/checkbox/Checkbox.tsx +7 -27
- package/src/components/ui/chip/Chip.stories.tsx +37 -13
- package/src/components/ui/chip/Chip.test.tsx +10 -6
- package/src/components/ui/chip/Chip.tsx +76 -91
- package/src/components/ui/collapse/Collapse.stories.tsx +23 -23
- package/src/components/ui/collapse/Collapse.tsx +6 -11
- package/src/components/ui/data-row/DataRow.stories.tsx +14 -3
- package/src/components/ui/data-row/DataRow.test.tsx +5 -15
- package/src/components/ui/data-row/DataRow.tsx +18 -7
- package/src/components/ui/divider/Divider.stories.tsx +1 -1
- package/src/components/ui/divider/Divider.tsx +1 -5
- package/src/components/ui/drawer/Drawer.stories.tsx +5 -16
- package/src/components/ui/drawer/Drawer.tsx +13 -27
- package/src/components/ui/floating-overlay-depth.test.tsx +143 -0
- package/src/components/ui/form-field/FormField.stories.tsx +6 -20
- package/src/components/ui/form-field/FormField.test.tsx +1 -5
- package/src/components/ui/form-field/FormField.tsx +10 -46
- package/src/components/ui/help-tip/HelpTip.stories.tsx +8 -19
- package/src/components/ui/help-tip/HelpTip.test.tsx +1 -3
- package/src/components/ui/help-tip/HelpTip.tsx +21 -22
- package/src/components/ui/help-tip/index.ts +7 -1
- package/src/components/ui/icon-box/IconBox.stories.tsx +1 -1
- package/src/components/ui/icon-box/IconBox.test.tsx +1 -7
- package/src/components/ui/icon-box/IconBox.tsx +10 -18
- package/src/components/ui/indicator/Indicator.stories.tsx +5 -4
- package/src/components/ui/indicator/Indicator.tsx +20 -14
- package/src/components/ui/input/Input.stories.tsx +3 -11
- package/src/components/ui/input/Input.test.tsx +2 -10
- package/src/components/ui/input/Input.tsx +10 -25
- package/src/components/ui/input/index.ts +7 -1
- package/src/components/ui/link/Link.stories.tsx +19 -7
- package/src/components/ui/list-item/ListItem.stories.tsx +17 -5
- package/src/components/ui/list-item/ListItem.tsx +2 -9
- package/src/components/ui/menu/Menu.stories.tsx +21 -15
- package/src/components/ui/menu/Menu.test.tsx +2 -11
- package/src/components/ui/menu/Menu.tsx +12 -14
- package/src/components/ui/menu/index.ts +8 -1
- package/src/components/ui/modal/Modal.stories.tsx +2 -2
- package/src/components/ui/modal/Modal.tsx +31 -19
- package/src/components/ui/pill/Pill.stories.tsx +111 -23
- package/src/components/ui/pill/Pill.test.tsx +101 -3
- package/src/components/ui/pill/Pill.tsx +168 -49
- package/src/components/ui/pill/index.ts +1 -1
- package/src/components/ui/popover/Popover.stories.tsx +6 -8
- package/src/components/ui/popover/Popover.test.tsx +1 -6
- package/src/components/ui/popover/Popover.tsx +20 -15
- package/src/components/ui/popover/index.ts +7 -1
- package/src/components/ui/progress/Progress.stories.tsx +3 -12
- package/src/components/ui/progress/Progress.test.tsx +1 -5
- package/src/components/ui/progress/Progress.tsx +9 -6
- package/src/components/ui/radio/Radio.stories.tsx +42 -21
- package/src/components/ui/radio/Radio.test.tsx +6 -2
- package/src/components/ui/radio/Radio.tsx +23 -22
- package/src/components/ui/section/Section.stories.tsx +12 -21
- package/src/components/ui/section/Section.test.tsx +1 -6
- package/src/components/ui/section/Section.tsx +1 -3
- package/src/components/ui/section/index.ts +1 -5
- package/src/components/ui/select/Select.stories.tsx +3 -13
- package/src/components/ui/select/Select.test.tsx +2 -11
- package/src/components/ui/select/Select.tsx +16 -15
- package/src/components/ui/skeleton/Skeleton.stories.tsx +3 -11
- package/src/components/ui/skeleton/Skeleton.tsx +3 -14
- package/src/components/ui/skeleton/index.ts +1 -7
- package/src/components/ui/spinner/Spinner.stories.tsx +1 -1
- package/src/components/ui/spinner/Spinner.tsx +4 -5
- package/src/components/ui/stack/Stack.stories.tsx +8 -8
- package/src/components/ui/stack/Stack.tsx +1 -1
- package/src/components/ui/surface/Surface.stories.tsx +92 -33
- package/src/components/ui/surface/Surface.test.tsx +88 -28
- package/src/components/ui/surface/Surface.tsx +37 -87
- package/src/components/ui/surface/SurfaceContext.ts +22 -62
- package/src/components/ui/surface/index.ts +8 -0
- package/src/components/ui/surface/resolveSurface.ts +98 -0
- package/src/components/ui/surface/surface.contract.test.ts +6 -1
- package/src/components/ui/switch/Switch.stories.tsx +1 -1
- package/src/components/ui/switch/Switch.tsx +7 -6
- package/src/components/ui/tabs/Tabs.stories.tsx +1 -1
- package/src/components/ui/tabs/Tabs.tsx +8 -21
- package/src/components/ui/tabs/index.ts +1 -7
- package/src/components/ui/tile/Tile.stories.tsx +1 -1
- package/src/components/ui/tile/Tile.tsx +3 -0
- package/src/components/ui/toast/Toast.stories.tsx +1 -1
- package/src/components/ui/toast/Toast.test.tsx +2 -8
- package/src/components/ui/toast/Toast.tsx +49 -57
- package/src/components/ui/toast/index.ts +0 -1
- package/src/components/ui/toolbar-button/ToolbarButton.stories.tsx +92 -71
- package/src/components/ui/toolbar-button/ToolbarButton.test.tsx +3 -18
- package/src/components/ui/toolbar-button/ToolbarButton.tsx +38 -49
- package/src/components/ui/tooltip/Tooltip.stories.tsx +12 -3
- package/src/components/ui/tooltip/Tooltip.test.tsx +21 -3
- package/src/components/ui/tooltip/Tooltip.tsx +55 -36
- package/src/components/ui/tooltip/index.ts +1 -1
- package/src/components/ui/trigger/TriggerSurface.test.tsx +215 -0
- package/src/components/ui/trigger/TriggerSurface.tsx +81 -0
- package/src/components/ui/trigger/index.ts +2 -0
- package/src/stories/PresetShowcase.stories.tsx +101 -48
- package/src/test/no-device-internals.test.ts +3 -3
- package/src/test/no-raw-color.test.ts +39 -0
- package/src/theme/Alpha.stories.tsx +103 -0
- package/src/theme/ChoosingTokens.stories.tsx +48 -0
- package/src/theme/ColorPalettes.stories.tsx +62 -45
- package/src/theme/ColorPrimitives.stories.tsx +35 -35
- package/src/theme/Depth.stories.tsx +132 -65
- package/src/theme/DepthCalibration.stories.tsx +23 -21
- package/src/theme/ProposedTokensVW82.stories.tsx +414 -0
- package/src/theme/ThemeProvider.test.tsx +4 -4
- package/src/theme/barrel.ts +7 -6
- package/src/theme/color-stories.coverage.test.ts +1 -1
- package/src/theme/color-utils.ts +41 -29
- package/src/theme/config.completeness.test.ts +1 -1
- package/src/theme/config.ts +40 -0
- package/src/theme/elevation.test.ts +82 -56
- package/src/theme/elevation.ts +77 -561
- package/src/theme/global.css +45 -5
- package/src/theme/grey-ramp.test.ts +24 -8
- package/src/theme/lift.test.ts +39 -0
- package/src/theme/lift.ts +102 -0
- package/src/theme/materials.test.ts +5 -2
- package/src/theme/materials.ts +38 -4
- package/src/theme/native-theming-guard.test.ts +5 -5
- package/src/theme/presets/apply.ts +4 -0
- package/src/theme/presets/audiobook.ts +5 -2
- package/src/theme/presets/default.ts +4 -0
- package/src/theme/presets/index.ts +14 -1
- package/src/theme/presets/types.ts +1 -1
- package/src/theme/semantic-contrast.test.ts +13 -4
- package/src/theme/status-distinctness.test.ts +66 -0
- package/src/theme/subtle-tone-weight.test.ts +163 -0
- package/src/theme/surface-planes.test.ts +37 -0
- package/src/theme/surface-planes.ts +68 -0
- package/src/theme/tailwind-var-opacity.test.ts +163 -0
- package/src/theme/token-export-guard.test.ts +1 -3
- package/src/theme/tokens/primitives.test.ts +15 -7
- package/src/theme/tokens/primitives.ts +98 -33
- package/src/theme/tokens/semantic-hex-guard.test.ts +322 -0
- package/src/theme/tokens/semantic.ts +124 -54
- package/src/theme/wash-ladder.test.ts +58 -0
- package/src/theme/workout-tokens.ts +1 -7
- package/src/types/jest-axe.d.ts +2 -6
- package/src/types/raw-md.d.ts +5 -0
- package/src/utils/colors.alpha-adoption.test.ts +408 -0
- package/src/utils/colors.ts +4 -4
- package/src/utils/form.ts +1 -3
- package/src/utils/index.ts +2 -7
- package/src/utils/number-format.ts +17 -0
- package/src/utils/workout-format.ts +15 -6
- package/src/web-jsx/jsx-runtime.ts +1 -5
- package/tailwind.config.js +55 -9
- package/src/components/custom/Workout/ExerciseCardUnified.stories.tsx +0 -151
- package/src/components/custom/Workout/RowInventory.stories.tsx +0 -408
- package/src/components/custom/Workout/S3FullRail.stories.tsx +0 -46
- package/src/components/custom/Workout/S3SessionPace.stories.tsx +0 -95
- package/src/components/custom/Workout/S3SessionRailHeading.stories.tsx +0 -61
- package/src/components/custom/Workout/S3SetTypes.stories.tsx +0 -176
- package/src/components/custom/Workout/S3WorkoutExpansion.stories.tsx +0 -240
- package/src/components/shell/DashboardShell.stories.tsx +0 -65
- package/src/components/shell/DashboardShell.tsx +0 -75
- package/src/components/shell/SessionRailSpecimen.stories.tsx +0 -753
- package/src/theme/elevation.stories.tsx +0 -346
- package/src/utils/useTheme.ts +0 -72
- /package/src/components/shell/{DeviceIndicator.test.tsx → workout/DeviceIndicator.test.tsx} +0 -0
- /package/src/components/shell/{DeviceMenu.test.tsx → workout/DeviceMenu.test.tsx} +0 -0
- /package/src/components/shell/{DeviceRow.test.tsx → workout/DeviceRow.test.tsx} +0 -0
- /package/src/components/shell/{SessionStatePill.test.tsx → workout/SessionStatePill.test.tsx} +0 -0
|
@@ -16,6 +16,9 @@ interface WorkoutPillProps extends ViewProps {
|
|
|
16
16
|
highlighted?: boolean;
|
|
17
17
|
className?: string;
|
|
18
18
|
}
|
|
19
|
+
/**
|
|
20
|
+
* @deprecated Use `<Pill tone="…" leading="dot">` — removed after AW-127 consumer migration.
|
|
21
|
+
*/
|
|
19
22
|
declare function WorkoutPill({ name, status, pulse, onPress, highlighted, className, ...props }: WorkoutPillProps): react_jsx_runtime.JSX.Element;
|
|
20
23
|
|
|
21
24
|
/**
|
|
@@ -279,9 +282,14 @@ interface DualVelocityStripProps extends ViewProps {
|
|
|
279
282
|
* `hero` — the across-the-room wall scale: tall wings, per-rep m/s value labels, and a dashed
|
|
280
283
|
* running-best reference line per side. `compact` — the flat resting form: dual-hero but flat +
|
|
281
284
|
* no labels (both wings are the `compact` VelocityStrip variant), same aligned structure + shared
|
|
282
|
-
* gutter + axis. `
|
|
285
|
+
* gutter + axis. `dual-expanded` — the compact rail-expanded lean renderer, no labels / reference
|
|
286
|
+
* lines (VW-97: `rail` was a verified misnomer — this variant is the value-height strip a session
|
|
287
|
+
* rail row expands into, not the rail itself).
|
|
288
|
+
*
|
|
289
|
+
* `rail` is a **deprecated alias** for `dual-expanded` (same renderer, same output) — kept for one
|
|
290
|
+
* release so existing call sites keep working; see the Workout README.
|
|
283
291
|
*/
|
|
284
|
-
variant?: 'hero' | 'compact' | 'rail';
|
|
292
|
+
variant?: 'hero' | 'compact' | 'dual-expanded' | 'rail';
|
|
285
293
|
/**
|
|
286
294
|
* Bar-height scaling, shared across BOTH wings so the L/R asymmetry reads as bar
|
|
287
295
|
* length against one scale. `peak` (default) = the pair's max +headroom; `fixed` =
|
|
@@ -366,8 +374,12 @@ type SetRowProps = (SetRowBase & {
|
|
|
366
374
|
declare function SetRow(set: SetRowProps): react_jsx_runtime.JSX.Element;
|
|
367
375
|
|
|
368
376
|
/**
|
|
369
|
-
* The four canonical rep-intensity zone pins
|
|
370
|
-
*
|
|
377
|
+
* The four canonical rep-intensity zone pins. A rep's mean velocity ratio maps to
|
|
378
|
+
* one of these; butted together they form a set's bar.
|
|
379
|
+
*
|
|
380
|
+
* Sourced from {@link WORKOUT_TOKENS}.`scale`, which its own docs already call the
|
|
381
|
+
* single source for the velocity zone bars — this used to re-read the same four
|
|
382
|
+
* ramp steps independently, so the two could drift apart silently. Byte-identical.
|
|
371
383
|
*/
|
|
372
384
|
declare const SET_STRIP_ZONES: {
|
|
373
385
|
readonly slow: "#D14343";
|
|
@@ -379,6 +391,10 @@ declare const SET_STRIP_ZONES: {
|
|
|
379
391
|
* The learned "variable / unknown / opportunity" semantic (cyan-900, a real ramp
|
|
380
392
|
* pin): an unperformed rep in a range's variable zone, and the fading trail of a
|
|
381
393
|
* myo set whose cluster count isn't yet known.
|
|
394
|
+
*
|
|
395
|
+
* FINDING for E3: no semantic role expresses this. `brand-secondary` is cyan-600
|
|
396
|
+
* and `brand-secondary-dark` cyan-700; neither reaches cyan-900, and pinning this
|
|
397
|
+
* to either would restyle the mark rather than migrate it.
|
|
382
398
|
*/
|
|
383
399
|
declare const SET_STRIP_VARIABLE_COLOR: "#0B3149";
|
|
384
400
|
/** Map a per-rep mean-velocity ratio to its zone pin (fastest = green, slowest = red). */
|
|
@@ -386,7 +402,10 @@ declare function velocityZoneColor(v: number): string;
|
|
|
386
402
|
/**
|
|
387
403
|
* One set's data. Flat variants: `done` = every rep performed; `active` = reps-so-far
|
|
388
404
|
* performed against a planned count (remainder greyed, performed reps pulse); `todo` =
|
|
389
|
-
* a planned but unstarted set (solid grey bar).
|
|
405
|
+
* a planned but unstarted set (solid grey bar). `active`/`todo` optionally carry the
|
|
406
|
+
* plan's prescribed rep RANGE (`repsLow`/`repsHigh`, VMCP-03.04) — a value range
|
|
407
|
+
* (isokinetic bands), not a rep count, so it's independent of `range`'s `floor`/`max`.
|
|
408
|
+
* Set-type variants:
|
|
390
409
|
* - `range` — variable rep-range (e.g. 15–20): `max` segments; committed zone
|
|
391
410
|
* `0..floor` (done = velocity, todo = grey), variable zone `floor..max` (done =
|
|
392
411
|
* velocity, todo = the variable/opportunity cyan). `doneVels` may run past `floor`.
|
|
@@ -402,9 +421,13 @@ type SetStripSet = {
|
|
|
402
421
|
status: 'active';
|
|
403
422
|
velocities: number[];
|
|
404
423
|
planned: number;
|
|
424
|
+
repsLow?: number;
|
|
425
|
+
repsHigh?: number;
|
|
405
426
|
} | {
|
|
406
427
|
status: 'todo';
|
|
407
428
|
planned: number;
|
|
429
|
+
repsLow?: number;
|
|
430
|
+
repsHigh?: number;
|
|
408
431
|
} | {
|
|
409
432
|
status: 'range';
|
|
410
433
|
floor: number;
|
|
@@ -491,12 +514,19 @@ interface ExerciseCardProps {
|
|
|
491
514
|
unit: 'lbs' | 'kg';
|
|
492
515
|
};
|
|
493
516
|
isPR?: boolean;
|
|
494
|
-
/**
|
|
517
|
+
/**
|
|
518
|
+
* Collapsed glance: per-set logged velocities. Projected onto `setStates` for the
|
|
519
|
+
* row's `SetStrip` — pass `setStates` directly for anything richer than done/todo.
|
|
520
|
+
*/
|
|
495
521
|
setVelocities?: number[][];
|
|
496
|
-
/**
|
|
522
|
+
/** Velocity-zone bands shared across this exercise's sets (WA bands). Expanded body only. */
|
|
497
523
|
velocityZones?: readonly VelocityZoneBandProp[];
|
|
498
|
-
/** Collapsed glance: total planned sets (
|
|
524
|
+
/** Collapsed glance: total planned sets (todo bars fill the remainder). */
|
|
499
525
|
totalPlannedSets?: number;
|
|
526
|
+
/** The row the user has chosen — a persistent wash on the collapsed / upcoming row. */
|
|
527
|
+
isSelected?: boolean;
|
|
528
|
+
/** This exercise is being performed right now — the name takes the live tone. */
|
|
529
|
+
isLive?: boolean;
|
|
500
530
|
/** Expanded body: the per-set rows (done / live / todo). */
|
|
501
531
|
sets?: SetRowProps[];
|
|
502
532
|
tempo?: [number, number, number, number];
|
|
@@ -504,19 +534,24 @@ interface ExerciseCardProps {
|
|
|
504
534
|
previousBest?: string;
|
|
505
535
|
supersetPosition?: 'first' | 'last' | 'middle' | null;
|
|
506
536
|
supersetColor?: string;
|
|
507
|
-
/**
|
|
537
|
+
/**
|
|
538
|
+
* Per-set strip override for the collapsed and expanded rows; derived from
|
|
539
|
+
* `setVelocities` (collapsed) or `sets` (expanded) when omitted.
|
|
540
|
+
*/
|
|
508
541
|
setStates?: SetStripSet[];
|
|
509
|
-
/** A small PR / issue / info chip in the title line
|
|
542
|
+
/** A small PR / issue / info chip in the title line. */
|
|
510
543
|
indicator?: ExerciseIndicatorKind;
|
|
511
|
-
/**
|
|
544
|
+
/** Row strip height in px. Default 8. */
|
|
512
545
|
stripHeight?: number;
|
|
513
546
|
}
|
|
514
547
|
/**
|
|
515
|
-
* The data-contract exercise card, in three representations
|
|
516
|
-
*
|
|
517
|
-
*
|
|
518
|
-
* -
|
|
519
|
-
*
|
|
548
|
+
* The data-contract exercise card, in three representations — all three now ONE
|
|
549
|
+
* {@link ExerciseCardHeading}, selected by its `density`, rather than three hand-rolled
|
|
550
|
+
* heads:
|
|
551
|
+
* - `upcoming` — a dimmed, not-yet-reached row (`density="upcoming"`).
|
|
552
|
+
* - collapsed — a glance: name + prescription + the per-set strip (`density="compact"`).
|
|
553
|
+
* - expanded — the `rail` heading over the SET · REPS · LBS · RPE body (one
|
|
554
|
+
* {@link SetRow} per set).
|
|
520
555
|
*
|
|
521
556
|
* Expand is controlled (`expanded` + `onExpandedChange`) or uncontrolled
|
|
522
557
|
* (`defaultExpanded`, internal state). `upcoming` overrides expand.
|
|
@@ -16,6 +16,9 @@ interface WorkoutPillProps extends ViewProps {
|
|
|
16
16
|
highlighted?: boolean;
|
|
17
17
|
className?: string;
|
|
18
18
|
}
|
|
19
|
+
/**
|
|
20
|
+
* @deprecated Use `<Pill tone="…" leading="dot">` — removed after AW-127 consumer migration.
|
|
21
|
+
*/
|
|
19
22
|
declare function WorkoutPill({ name, status, pulse, onPress, highlighted, className, ...props }: WorkoutPillProps): react_jsx_runtime.JSX.Element;
|
|
20
23
|
|
|
21
24
|
/**
|
|
@@ -279,9 +282,14 @@ interface DualVelocityStripProps extends ViewProps {
|
|
|
279
282
|
* `hero` — the across-the-room wall scale: tall wings, per-rep m/s value labels, and a dashed
|
|
280
283
|
* running-best reference line per side. `compact` — the flat resting form: dual-hero but flat +
|
|
281
284
|
* no labels (both wings are the `compact` VelocityStrip variant), same aligned structure + shared
|
|
282
|
-
* gutter + axis. `
|
|
285
|
+
* gutter + axis. `dual-expanded` — the compact rail-expanded lean renderer, no labels / reference
|
|
286
|
+
* lines (VW-97: `rail` was a verified misnomer — this variant is the value-height strip a session
|
|
287
|
+
* rail row expands into, not the rail itself).
|
|
288
|
+
*
|
|
289
|
+
* `rail` is a **deprecated alias** for `dual-expanded` (same renderer, same output) — kept for one
|
|
290
|
+
* release so existing call sites keep working; see the Workout README.
|
|
283
291
|
*/
|
|
284
|
-
variant?: 'hero' | 'compact' | 'rail';
|
|
292
|
+
variant?: 'hero' | 'compact' | 'dual-expanded' | 'rail';
|
|
285
293
|
/**
|
|
286
294
|
* Bar-height scaling, shared across BOTH wings so the L/R asymmetry reads as bar
|
|
287
295
|
* length against one scale. `peak` (default) = the pair's max +headroom; `fixed` =
|
|
@@ -366,8 +374,12 @@ type SetRowProps = (SetRowBase & {
|
|
|
366
374
|
declare function SetRow(set: SetRowProps): react_jsx_runtime.JSX.Element;
|
|
367
375
|
|
|
368
376
|
/**
|
|
369
|
-
* The four canonical rep-intensity zone pins
|
|
370
|
-
*
|
|
377
|
+
* The four canonical rep-intensity zone pins. A rep's mean velocity ratio maps to
|
|
378
|
+
* one of these; butted together they form a set's bar.
|
|
379
|
+
*
|
|
380
|
+
* Sourced from {@link WORKOUT_TOKENS}.`scale`, which its own docs already call the
|
|
381
|
+
* single source for the velocity zone bars — this used to re-read the same four
|
|
382
|
+
* ramp steps independently, so the two could drift apart silently. Byte-identical.
|
|
371
383
|
*/
|
|
372
384
|
declare const SET_STRIP_ZONES: {
|
|
373
385
|
readonly slow: "#D14343";
|
|
@@ -379,6 +391,10 @@ declare const SET_STRIP_ZONES: {
|
|
|
379
391
|
* The learned "variable / unknown / opportunity" semantic (cyan-900, a real ramp
|
|
380
392
|
* pin): an unperformed rep in a range's variable zone, and the fading trail of a
|
|
381
393
|
* myo set whose cluster count isn't yet known.
|
|
394
|
+
*
|
|
395
|
+
* FINDING for E3: no semantic role expresses this. `brand-secondary` is cyan-600
|
|
396
|
+
* and `brand-secondary-dark` cyan-700; neither reaches cyan-900, and pinning this
|
|
397
|
+
* to either would restyle the mark rather than migrate it.
|
|
382
398
|
*/
|
|
383
399
|
declare const SET_STRIP_VARIABLE_COLOR: "#0B3149";
|
|
384
400
|
/** Map a per-rep mean-velocity ratio to its zone pin (fastest = green, slowest = red). */
|
|
@@ -386,7 +402,10 @@ declare function velocityZoneColor(v: number): string;
|
|
|
386
402
|
/**
|
|
387
403
|
* One set's data. Flat variants: `done` = every rep performed; `active` = reps-so-far
|
|
388
404
|
* performed against a planned count (remainder greyed, performed reps pulse); `todo` =
|
|
389
|
-
* a planned but unstarted set (solid grey bar).
|
|
405
|
+
* a planned but unstarted set (solid grey bar). `active`/`todo` optionally carry the
|
|
406
|
+
* plan's prescribed rep RANGE (`repsLow`/`repsHigh`, VMCP-03.04) — a value range
|
|
407
|
+
* (isokinetic bands), not a rep count, so it's independent of `range`'s `floor`/`max`.
|
|
408
|
+
* Set-type variants:
|
|
390
409
|
* - `range` — variable rep-range (e.g. 15–20): `max` segments; committed zone
|
|
391
410
|
* `0..floor` (done = velocity, todo = grey), variable zone `floor..max` (done =
|
|
392
411
|
* velocity, todo = the variable/opportunity cyan). `doneVels` may run past `floor`.
|
|
@@ -402,9 +421,13 @@ type SetStripSet = {
|
|
|
402
421
|
status: 'active';
|
|
403
422
|
velocities: number[];
|
|
404
423
|
planned: number;
|
|
424
|
+
repsLow?: number;
|
|
425
|
+
repsHigh?: number;
|
|
405
426
|
} | {
|
|
406
427
|
status: 'todo';
|
|
407
428
|
planned: number;
|
|
429
|
+
repsLow?: number;
|
|
430
|
+
repsHigh?: number;
|
|
408
431
|
} | {
|
|
409
432
|
status: 'range';
|
|
410
433
|
floor: number;
|
|
@@ -491,12 +514,19 @@ interface ExerciseCardProps {
|
|
|
491
514
|
unit: 'lbs' | 'kg';
|
|
492
515
|
};
|
|
493
516
|
isPR?: boolean;
|
|
494
|
-
/**
|
|
517
|
+
/**
|
|
518
|
+
* Collapsed glance: per-set logged velocities. Projected onto `setStates` for the
|
|
519
|
+
* row's `SetStrip` — pass `setStates` directly for anything richer than done/todo.
|
|
520
|
+
*/
|
|
495
521
|
setVelocities?: number[][];
|
|
496
|
-
/**
|
|
522
|
+
/** Velocity-zone bands shared across this exercise's sets (WA bands). Expanded body only. */
|
|
497
523
|
velocityZones?: readonly VelocityZoneBandProp[];
|
|
498
|
-
/** Collapsed glance: total planned sets (
|
|
524
|
+
/** Collapsed glance: total planned sets (todo bars fill the remainder). */
|
|
499
525
|
totalPlannedSets?: number;
|
|
526
|
+
/** The row the user has chosen — a persistent wash on the collapsed / upcoming row. */
|
|
527
|
+
isSelected?: boolean;
|
|
528
|
+
/** This exercise is being performed right now — the name takes the live tone. */
|
|
529
|
+
isLive?: boolean;
|
|
500
530
|
/** Expanded body: the per-set rows (done / live / todo). */
|
|
501
531
|
sets?: SetRowProps[];
|
|
502
532
|
tempo?: [number, number, number, number];
|
|
@@ -504,19 +534,24 @@ interface ExerciseCardProps {
|
|
|
504
534
|
previousBest?: string;
|
|
505
535
|
supersetPosition?: 'first' | 'last' | 'middle' | null;
|
|
506
536
|
supersetColor?: string;
|
|
507
|
-
/**
|
|
537
|
+
/**
|
|
538
|
+
* Per-set strip override for the collapsed and expanded rows; derived from
|
|
539
|
+
* `setVelocities` (collapsed) or `sets` (expanded) when omitted.
|
|
540
|
+
*/
|
|
508
541
|
setStates?: SetStripSet[];
|
|
509
|
-
/** A small PR / issue / info chip in the title line
|
|
542
|
+
/** A small PR / issue / info chip in the title line. */
|
|
510
543
|
indicator?: ExerciseIndicatorKind;
|
|
511
|
-
/**
|
|
544
|
+
/** Row strip height in px. Default 8. */
|
|
512
545
|
stripHeight?: number;
|
|
513
546
|
}
|
|
514
547
|
/**
|
|
515
|
-
* The data-contract exercise card, in three representations
|
|
516
|
-
*
|
|
517
|
-
*
|
|
518
|
-
* -
|
|
519
|
-
*
|
|
548
|
+
* The data-contract exercise card, in three representations — all three now ONE
|
|
549
|
+
* {@link ExerciseCardHeading}, selected by its `density`, rather than three hand-rolled
|
|
550
|
+
* heads:
|
|
551
|
+
* - `upcoming` — a dimmed, not-yet-reached row (`density="upcoming"`).
|
|
552
|
+
* - collapsed — a glance: name + prescription + the per-set strip (`density="compact"`).
|
|
553
|
+
* - expanded — the `rail` heading over the SET · REPS · LBS · RPE body (one
|
|
554
|
+
* {@link SetRow} per set).
|
|
520
555
|
*
|
|
521
556
|
* Expand is controlled (`expanded` + `onExpandedChange`) or uncontrolled
|
|
522
557
|
* (`defaultExpanded`, internal state). `upcoming` overrides expand.
|
package/dist/pages.d.mts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { A as ActiveExerciseStatus, b as ActiveWorkoutExercise, c as ActiveWorkoutInput, aq as ActiveWorkoutPage, d as ActiveWorkoutPageProps, e as ActiveWorkoutRest, f as ActiveWorkoutSuperset, ar as EXERCISE_DETAIL_TABS, n as ExerciseDetailEntry, o as ExerciseDetailHeader, as as ExerciseDetailPage, p as ExerciseDetailPageProps, q as ExerciseDetailStats, r as ExerciseDetailTab, u as ExerciseTrend, v as ExerciseVbt, w as ExerciseVbtSet, P as PlanMeso, H as PlanWeek, J as PlanWorkout, K as ProgramBreadcrumb, L as ProgramNavLevel, at as ProgramPlanningPage, N as ProgramPlanningPageProps, O as ProgramSelection, a0 as VbtSummary, ac as WorkoutGroup, ai as WorkoutProgress, au as buildBreadcrumbs, av as countCompletedSets, aw as deriveExerciseStats, ax as deriveNavLevel, ay as deriveWorkoutProgress, az as findActiveExercise, aA as findMeso, aB as findWeek, aC as findWorkout, aD as groupExercises, aE as isUpcomingExercise, aF as summarizeVbt, aG as toActiveCardProps, aH as toExerciseCardProps, aI as toProgressBarMesos } from './pages-
|
|
1
|
+
export { A as ActiveExerciseStatus, b as ActiveWorkoutExercise, c as ActiveWorkoutInput, aq as ActiveWorkoutPage, d as ActiveWorkoutPageProps, e as ActiveWorkoutRest, f as ActiveWorkoutSuperset, ar as EXERCISE_DETAIL_TABS, n as ExerciseDetailEntry, o as ExerciseDetailHeader, as as ExerciseDetailPage, p as ExerciseDetailPageProps, q as ExerciseDetailStats, r as ExerciseDetailTab, u as ExerciseTrend, v as ExerciseVbt, w as ExerciseVbtSet, P as PlanMeso, H as PlanWeek, J as PlanWorkout, K as ProgramBreadcrumb, L as ProgramNavLevel, at as ProgramPlanningPage, N as ProgramPlanningPageProps, O as ProgramSelection, a0 as VbtSummary, ac as WorkoutGroup, ai as WorkoutProgress, au as buildBreadcrumbs, av as countCompletedSets, aw as deriveExerciseStats, ax as deriveNavLevel, ay as deriveWorkoutProgress, az as findActiveExercise, aA as findMeso, aB as findWeek, aC as findWorkout, aD as groupExercises, aE as isUpcomingExercise, aF as summarizeVbt, aG as toActiveCardProps, aH as toExerciseCardProps, aI as toProgressBarMesos } from './pages-ZbT_pD_U.mjs';
|
|
2
2
|
import 'react/jsx-runtime';
|
|
3
3
|
import 'react-native';
|
|
4
4
|
import './MesoStatusCard-CQk71hSi.mjs';
|
package/dist/pages.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { A as ActiveExerciseStatus, b as ActiveWorkoutExercise, c as ActiveWorkoutInput, aq as ActiveWorkoutPage, d as ActiveWorkoutPageProps, e as ActiveWorkoutRest, f as ActiveWorkoutSuperset, ar as EXERCISE_DETAIL_TABS, n as ExerciseDetailEntry, o as ExerciseDetailHeader, as as ExerciseDetailPage, p as ExerciseDetailPageProps, q as ExerciseDetailStats, r as ExerciseDetailTab, u as ExerciseTrend, v as ExerciseVbt, w as ExerciseVbtSet, P as PlanMeso, H as PlanWeek, J as PlanWorkout, K as ProgramBreadcrumb, L as ProgramNavLevel, at as ProgramPlanningPage, N as ProgramPlanningPageProps, O as ProgramSelection, a0 as VbtSummary, ac as WorkoutGroup, ai as WorkoutProgress, au as buildBreadcrumbs, av as countCompletedSets, aw as deriveExerciseStats, ax as deriveNavLevel, ay as deriveWorkoutProgress, az as findActiveExercise, aA as findMeso, aB as findWeek, aC as findWorkout, aD as groupExercises, aE as isUpcomingExercise, aF as summarizeVbt, aG as toActiveCardProps, aH as toExerciseCardProps, aI as toProgressBarMesos } from './pages-
|
|
1
|
+
export { A as ActiveExerciseStatus, b as ActiveWorkoutExercise, c as ActiveWorkoutInput, aq as ActiveWorkoutPage, d as ActiveWorkoutPageProps, e as ActiveWorkoutRest, f as ActiveWorkoutSuperset, ar as EXERCISE_DETAIL_TABS, n as ExerciseDetailEntry, o as ExerciseDetailHeader, as as ExerciseDetailPage, p as ExerciseDetailPageProps, q as ExerciseDetailStats, r as ExerciseDetailTab, u as ExerciseTrend, v as ExerciseVbt, w as ExerciseVbtSet, P as PlanMeso, H as PlanWeek, J as PlanWorkout, K as ProgramBreadcrumb, L as ProgramNavLevel, at as ProgramPlanningPage, N as ProgramPlanningPageProps, O as ProgramSelection, a0 as VbtSummary, ac as WorkoutGroup, ai as WorkoutProgress, au as buildBreadcrumbs, av as countCompletedSets, aw as deriveExerciseStats, ax as deriveNavLevel, ay as deriveWorkoutProgress, az as findActiveExercise, aA as findMeso, aB as findWeek, aC as findWorkout, aD as groupExercises, aE as isUpcomingExercise, aF as summarizeVbt, aG as toActiveCardProps, aH as toExerciseCardProps, aI as toProgressBarMesos } from './pages-CsjsUn0G.js';
|
|
2
2
|
import 'react/jsx-runtime';
|
|
3
3
|
import 'react-native';
|
|
4
4
|
import './MesoStatusCard-CQk71hSi.js';
|