@titan-design/react-ui 0.6.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 +12 -7
- package/dist/bodymap.js.map +1 -1
- package/dist/bodymap.mjs +12 -7
- package/dist/bodymap.mjs.map +1 -1
- package/dist/index.d.mts +855 -124
- package/dist/index.d.ts +855 -124
- package/dist/index.js +2276 -801
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +2230 -802
- 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 +1255 -798
- package/dist/pages.js.map +1 -1
- package/dist/pages.mjs +1255 -798
- package/dist/pages.mjs.map +1 -1
- package/dist/theme/index.d.mts +16 -82
- package/dist/theme/index.d.ts +16 -82
- package/dist/theme/index.js +13 -115
- package/dist/theme/index.js.map +1 -1
- package/dist/theme/index.mjs +13 -115
- package/dist/theme/index.mjs.map +1 -1
- package/dist/theme/tokens-css.js +14 -6
- package/dist/theme/tokens-css.js.map +1 -1
- package/dist/theme/tokens-css.mjs +14 -6
- package/dist/theme/tokens-css.mjs.map +1 -1
- package/package.json +1 -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 +1 -1
- package/src/components/custom/EmptyState/EmptyState.stories.tsx +1 -1
- package/src/components/custom/Gauge/Gauge.stories.tsx +1 -1
- package/src/components/custom/Metric/Metric.stories.tsx +1 -1
- package/src/components/custom/Scatter/Scatter.stories.tsx +1 -1
- 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/Typography/Typography.stories.tsx +1 -1
- 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 +9 -15
- 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/BodyMapDetailPanel.stories.tsx +1 -1
- package/src/components/custom/Workout/CapacityBandChart.stories.tsx +1 -1
- package/src/components/custom/Workout/DeviationBar.stories.tsx +1 -1
- 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 +4 -5
- 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/IntensityBar.stories.tsx +1 -1
- 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/MesoProgressBar.stories.tsx +1 -1
- package/src/components/custom/Workout/MesoStatusCard.stories.tsx +1 -1
- 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/PlaceholderStrip.stories.tsx +1 -1
- package/src/components/custom/Workout/PrBadge.stories.tsx +1 -1
- package/src/components/custom/Workout/PrHistoryModal.stories.tsx +1 -1
- package/src/components/custom/Workout/ProgramPlanningPage.stories.tsx +4 -16
- package/src/components/custom/Workout/ProgramPlanningPage.tsx +8 -6
- package/src/components/custom/Workout/README.md +146 -4
- package/src/components/custom/Workout/ReadinessCheck.stories.tsx +1 -1
- package/src/components/custom/Workout/RestTimer.stories.tsx +1 -1
- package/src/components/custom/Workout/RestTimer.tsx +15 -10
- 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 +169 -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/StatusDot.stories.tsx +1 -1
- 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/SupersetWrapper.stories.tsx +1 -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 +23 -33
- 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 +376 -141
- 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/WeightBadge.stories.tsx +1 -1
- 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/WorkoutPill.stories.tsx +1 -1
- 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/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/icons.stories.tsx +67 -2
- package/src/components/icons/icons.test.tsx +32 -2
- package/src/components/icons/icons.tsx +108 -0
- package/src/components/shell/BrandLockup.stories.tsx +3 -3
- 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 +2 -2
- package/src/components/shell/DeviceMenu.stories.tsx +5 -5
- package/src/components/shell/DeviceRow.stories.tsx +3 -3
- 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 +30 -0
- package/src/components/shell/SessionRailSpecimen.stories.tsx +753 -0
- package/src/components/shell/SessionStatePill.stories.tsx +3 -3
- package/src/components/shell/SessionStatePill.tsx +1 -1
- 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 +5 -5
- package/src/components/shell/index.ts +5 -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 +2 -2
- package/src/components/ui/indicator/Indicator.test.tsx +1 -0
- package/src/components/ui/indicator/Indicator.tsx +6 -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/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/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 +1 -1
- package/src/theme/Colors.stories.tsx +5 -8
- package/src/theme/config.ts +4 -0
- package/src/theme/elevation.stories.tsx +1 -1
- package/src/theme/global.css +5 -1
- package/src/theme/shadows.stories.tsx +1 -1
- package/src/theme/tokens/primitives.ts +11 -107
- package/src/theme/tokens/semantic.ts +8 -0
- package/src/theme/workout-tokens.ts +11 -7
- package/tailwind.config.js +5 -0
|
@@ -2,20 +2,6 @@ import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
|
2
2
|
import { ViewProps } from 'react-native';
|
|
3
3
|
import { c as MesoStatusCardProps } from './MesoStatusCard-CQk71hSi.js';
|
|
4
4
|
|
|
5
|
-
type PRType = 'e1rm' | 'weight' | 'reps' | 'volume' | 'velocity';
|
|
6
|
-
interface PrBadgeProps extends ViewProps {
|
|
7
|
-
/** PR type determines auto-generated label */
|
|
8
|
-
type?: PRType;
|
|
9
|
-
/** Display label (e.g., "PR e1RM", "PR 5RM"). Auto-generated from type if omitted. */
|
|
10
|
-
label?: string;
|
|
11
|
-
/** Show only the star icon, no text label */
|
|
12
|
-
compact?: boolean;
|
|
13
|
-
/** Trigger pop animation on mount */
|
|
14
|
-
animate?: boolean;
|
|
15
|
-
className?: string;
|
|
16
|
-
}
|
|
17
|
-
declare function PrBadge({ type, label: labelProp, compact, animate, className, ...props }: PrBadgeProps): react_jsx_runtime.JSX.Element;
|
|
18
|
-
|
|
19
5
|
/**
|
|
20
6
|
* Spec statuses: completed | current | upcoming | deload.
|
|
21
7
|
* `next` and `missed` are additive extras supported by this implementation.
|
|
@@ -59,8 +45,20 @@ interface VelocityStripProps extends ViewProps {
|
|
|
59
45
|
* Drives both bar height and — in the default path — zone color. Callers must
|
|
60
46
|
* feed mean (not peak) concentric velocity so bar color, height, and the
|
|
61
47
|
* summary label all describe one metric.
|
|
48
|
+
*
|
|
49
|
+
* Optional: provide exactly one of `velocities` or {@link VelocityStripProps.set}.
|
|
50
|
+
* When neither is given the strip renders nothing.
|
|
62
51
|
*/
|
|
63
|
-
velocities
|
|
52
|
+
velocities?: number[];
|
|
53
|
+
/**
|
|
54
|
+
* Optional structured strength-training set descriptor (see {@link VelocitySet}).
|
|
55
|
+
* When present it supersedes `velocities`: the done-velocity array is derived
|
|
56
|
+
* from the set (so mean / loss / zone summaries still work) and the strip is
|
|
57
|
+
* drawn as a typed slot list — grey todo, cyan variable / continue windows and
|
|
58
|
+
* the wide-gap chunking that distinguishes drop / myo / cluster sets. Provide
|
|
59
|
+
* exactly one of `velocities` or `set`.
|
|
60
|
+
*/
|
|
61
|
+
set?: VelocitySet;
|
|
64
62
|
/**
|
|
65
63
|
* Optional velocity-zone bands (shape-compatible with WA's
|
|
66
64
|
* `VelocityZones.bands`). When provided, bar color and the summary zone label
|
|
@@ -73,13 +71,36 @@ interface VelocityStripProps extends ViewProps {
|
|
|
73
71
|
* Live mode: index of the most-recently-completed rep. That bar animates in
|
|
74
72
|
* with a "pop"; if it is also the current set peak (a new best), it "bounces"
|
|
75
73
|
* instead. Only the latest bar animates. Honors `prefers-reduced-motion`.
|
|
76
|
-
*
|
|
74
|
+
* Framed `expanded` chart only (interactive tap-to-expand use).
|
|
77
75
|
*/
|
|
78
76
|
liveRepIndex?: number;
|
|
77
|
+
/**
|
|
78
|
+
* `expanded` variant: whether the chart is OPEN. Default true (the variant shows
|
|
79
|
+
* its chart). Toggle it (with {@link onToggle}) for the interactive tap-to-expand
|
|
80
|
+
* collapse↔chart animation; a static open chart (no `onToggle`) does not animate.
|
|
81
|
+
*/
|
|
79
82
|
expanded?: boolean;
|
|
80
83
|
onToggle?: () => void;
|
|
81
84
|
onRepPress?: (index: number, velocity: number) => void;
|
|
82
|
-
|
|
85
|
+
/**
|
|
86
|
+
* `mini` — a flat 3px static strip (set-type aware). `expanded` — the velocity-
|
|
87
|
+
* HEIGHT bar chart (rounded tops), whose chrome is prop-driven: with
|
|
88
|
+
* {@link showNumbers} or {@link showInfo} on it's the framed chart (raised surface,
|
|
89
|
+
* padding, per-bar m/s labels, mean/loss info row, interactive collapse); with both
|
|
90
|
+
* off it's a bare strip — the active-set "spotlight" of {@link ExerciseCard}.
|
|
91
|
+
*/
|
|
92
|
+
variant?: 'mini' | 'expanded';
|
|
93
|
+
/** `expanded` plot height in px (bars scale to this). Default 60. */
|
|
94
|
+
height?: number;
|
|
95
|
+
/**
|
|
96
|
+
* `expanded` bar scaling. `peak` (default) scales to the set's own max (+15%
|
|
97
|
+
* headroom). `fixed` scales to a fixed velocity ceiling so bar heights read the
|
|
98
|
+
* same absolute velocity across sets (the spotlight).
|
|
99
|
+
*/
|
|
100
|
+
scale?: 'peak' | 'fixed';
|
|
101
|
+
/** `expanded` framed chart: per-bar m/s labels. Default true. */
|
|
102
|
+
showNumbers?: boolean;
|
|
103
|
+
/** `expanded` framed chart: the mean/loss info row. Default true. */
|
|
83
104
|
showInfo?: boolean;
|
|
84
105
|
className?: string;
|
|
85
106
|
}
|
|
@@ -93,46 +114,232 @@ declare function getVelocityZoneName(velocity: number): string;
|
|
|
93
114
|
declare function calculateVelocityLoss(velocities: number[]): number;
|
|
94
115
|
/** Arithmetic mean of the per-rep mean-concentric velocities. */
|
|
95
116
|
declare function calculateMeanVelocity(velocities: number[]): number;
|
|
96
|
-
|
|
117
|
+
/**
|
|
118
|
+
* A structured strength-training set. Supply as {@link VelocityStripProps.set} to
|
|
119
|
+
* render its set-type encoding; the done-velocity array (used for the mean / loss
|
|
120
|
+
* / zone summary) is derived from the type's velocity fields.
|
|
121
|
+
*/
|
|
122
|
+
type VelocitySet =
|
|
123
|
+
/** Fixed reps at a fixed load: done reps colored + a grey todo remainder to `planned`. */
|
|
124
|
+
{
|
|
125
|
+
type: 'straight';
|
|
126
|
+
velocities: number[];
|
|
127
|
+
planned?: number;
|
|
128
|
+
}
|
|
129
|
+
/** Bounded reps: committed slots `0..floor`, then a cyan variable window `floor..max`. */
|
|
130
|
+
| {
|
|
131
|
+
type: 'range';
|
|
132
|
+
velocities: number[];
|
|
133
|
+
floor: number;
|
|
134
|
+
max: number;
|
|
135
|
+
}
|
|
136
|
+
/** As-many-reps-as-possible: done reps + a trailing cyan "continue" slot that never closes. */
|
|
137
|
+
| {
|
|
138
|
+
type: 'amrap';
|
|
139
|
+
velocities: number[];
|
|
140
|
+
target?: number;
|
|
141
|
+
}
|
|
142
|
+
/** Load drops with no rest: each sub-load's reps, split by a WIDE notch gap. */
|
|
143
|
+
| {
|
|
144
|
+
type: 'drop';
|
|
145
|
+
subloads: number[][];
|
|
146
|
+
}
|
|
147
|
+
/** Rest-pause: an activation chunk + mini-clusters split by WIDE gaps; `open` adds a cyan continue. */
|
|
148
|
+
| {
|
|
149
|
+
type: 'myo';
|
|
150
|
+
activation: number[];
|
|
151
|
+
clusters: number[][];
|
|
152
|
+
open?: boolean;
|
|
153
|
+
}
|
|
154
|
+
/** Fixed count broken by intra-set rests: reps grouped by `groupSize` with WIDE intra-rest gaps. */
|
|
155
|
+
| {
|
|
156
|
+
type: 'cluster';
|
|
157
|
+
velocities: number[];
|
|
158
|
+
groupSize: number;
|
|
159
|
+
planned?: number;
|
|
160
|
+
};
|
|
161
|
+
declare function VelocityStrip({ velocities, set, zones, liveRepIndex, expanded, onToggle, onRepPress, variant, height, scale, showNumbers, showInfo, className, ...props }: VelocityStripProps): react_jsx_runtime.JSX.Element | null;
|
|
97
162
|
|
|
98
|
-
type
|
|
99
|
-
|
|
100
|
-
|
|
163
|
+
type SetRowUnit = 'lbs' | 'kg';
|
|
164
|
+
/** A set's lifecycle: logged (`done`), being performed now (`live`), or planned (`todo`). */
|
|
165
|
+
type SetRowState = 'done' | 'live' | 'todo';
|
|
166
|
+
interface SetRowBase {
|
|
101
167
|
setNumber: number;
|
|
102
|
-
|
|
168
|
+
unit: SetRowUnit;
|
|
169
|
+
/** Optional set-type marker (e.g. "DROP", "AMRAP") shown in the SET cell. */
|
|
170
|
+
setType?: string;
|
|
171
|
+
/** Optional velocity-zone bands (WA `VelocityZones.bands`); default scale when absent. */
|
|
172
|
+
velocityZones?: readonly VelocityZoneBandProp[];
|
|
173
|
+
}
|
|
174
|
+
/**
|
|
175
|
+
* One row of the unified expanded exercise table (SET · REPS · LBS · RPE + a
|
|
176
|
+
* per-row velocity strip), as a lifecycle discriminated union:
|
|
177
|
+
* - `done` — a logged set: recorded reps / weight / rpe, a flat `mini` strip.
|
|
178
|
+
* - `live` — performed right now: shows its TARGET (never "reps-done/target"),
|
|
179
|
+
* stands out by brightness, and a compact velocity-HEIGHT spotlight strip.
|
|
180
|
+
* - `todo` — planned: shows its target, muted, a flat grey `mini` stub strip.
|
|
181
|
+
*
|
|
182
|
+
* `done` + `todo` share ONE muted treatment; only `live` is brightened. There is
|
|
183
|
+
* no PREV column (dropped in the unified design).
|
|
184
|
+
*/
|
|
185
|
+
type SetRowProps = (SetRowBase & {
|
|
186
|
+
state: 'done';
|
|
187
|
+
reps: number;
|
|
188
|
+
weight: number;
|
|
189
|
+
rpe?: number | null;
|
|
190
|
+
/** Per-rep MEAN concentric velocities (m/s). */
|
|
191
|
+
velocities: number[];
|
|
192
|
+
}) | (SetRowBase & {
|
|
193
|
+
state: 'live';
|
|
194
|
+
/** The prescribed target shown in the REPS / LBS cells (no live "5/10"). */
|
|
195
|
+
target: {
|
|
103
196
|
reps: number;
|
|
104
197
|
weight: number;
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
|
|
198
|
+
};
|
|
199
|
+
/** Reps / weight committed so far (available to hosts; the display shows `target`). */
|
|
200
|
+
reps: number;
|
|
201
|
+
weight: number;
|
|
108
202
|
rpe?: number | null;
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
onVelocityToggle?: () => void;
|
|
118
|
-
setType?: string;
|
|
119
|
-
prBadges?: Array<{
|
|
120
|
-
type: PRType;
|
|
121
|
-
label: string;
|
|
122
|
-
}>;
|
|
123
|
-
isNextSet?: boolean;
|
|
124
|
-
targets?: {
|
|
203
|
+
/** Per-rep MEAN concentric velocities logged so far this set. */
|
|
204
|
+
velocities: number[];
|
|
205
|
+
/** Newest rep index — reserved; the compact spotlight strip is static. */
|
|
206
|
+
liveRepIndex?: number;
|
|
207
|
+
}) | (SetRowBase & {
|
|
208
|
+
state: 'todo';
|
|
209
|
+
/** The prescribed target shown in the REPS / LBS cells. */
|
|
210
|
+
target: {
|
|
125
211
|
reps: number;
|
|
126
212
|
weight: number;
|
|
127
213
|
};
|
|
214
|
+
/** Planned rep count backing the grey stub strip. Default `target.reps`. */
|
|
215
|
+
planned?: number;
|
|
216
|
+
});
|
|
217
|
+
/**
|
|
218
|
+
* ONE set row of the unified expanded exercise table. SET · REPS · LBS · RPE over
|
|
219
|
+
* a per-row {@link VelocityStrip}; `live` stands out by brightness with a compact
|
|
220
|
+
* velocity-height spotlight, `done`/`todo` are muted with a flat mini strip. Its
|
|
221
|
+
* column widths mirror {@link SetTableHeader}(`showPrevious={false}`).
|
|
222
|
+
*/
|
|
223
|
+
declare function SetRow(set: SetRowProps): react_jsx_runtime.JSX.Element;
|
|
224
|
+
|
|
225
|
+
/**
|
|
226
|
+
* The four canonical rep-intensity zone pins (real titan ramp pins). A rep's mean
|
|
227
|
+
* velocity ratio maps to one of these; butted together they form a set's bar.
|
|
228
|
+
*/
|
|
229
|
+
declare const SET_STRIP_ZONES: {
|
|
230
|
+
readonly slow: "#D14343";
|
|
231
|
+
readonly moderate: "#FF7900";
|
|
232
|
+
readonly fast: "#F9B415";
|
|
233
|
+
readonly fastest: "#2ED573";
|
|
234
|
+
};
|
|
235
|
+
/**
|
|
236
|
+
* The learned "variable / unknown / opportunity" semantic (cyan-900, a real ramp
|
|
237
|
+
* pin): an unperformed rep in a range's variable zone, and the fading trail of a
|
|
238
|
+
* myo set whose cluster count isn't yet known.
|
|
239
|
+
*/
|
|
240
|
+
declare const SET_STRIP_VARIABLE_COLOR: "#0B3149";
|
|
241
|
+
/** Map a per-rep mean-velocity ratio to its zone pin (fastest = green, slowest = red). */
|
|
242
|
+
declare function velocityZoneColor(v: number): string;
|
|
243
|
+
/**
|
|
244
|
+
* One set's data. Flat variants: `done` = every rep performed; `active` = reps-so-far
|
|
245
|
+
* performed against a planned count (remainder greyed, performed reps pulse); `todo` =
|
|
246
|
+
* a planned but unstarted set (solid grey bar). Set-type variants:
|
|
247
|
+
* - `range` — variable rep-range (e.g. 15–20): `max` segments; committed zone
|
|
248
|
+
* `0..floor` (done = velocity, todo = grey), variable zone `floor..max` (done =
|
|
249
|
+
* velocity, todo = the variable/opportunity cyan). `doneVels` may run past `floor`.
|
|
250
|
+
* - `drop` — one set, no rest: `subloads` butted internally, split by 2px notches.
|
|
251
|
+
* - `myo` — done rest-pause: `activation` chunk + `clusters`, split by 3px cluster gaps.
|
|
252
|
+
* - `myo-upcoming` — planned myo, length unknown: grey activation (`activationLen`) +
|
|
253
|
+
* a fading cyan "clusters-to-failure" trail with the right edge left open.
|
|
254
|
+
*/
|
|
255
|
+
type SetStripSet = {
|
|
256
|
+
status: 'done';
|
|
257
|
+
velocities: number[];
|
|
258
|
+
} | {
|
|
259
|
+
status: 'active';
|
|
260
|
+
velocities: number[];
|
|
261
|
+
planned: number;
|
|
262
|
+
} | {
|
|
263
|
+
status: 'todo';
|
|
264
|
+
planned: number;
|
|
265
|
+
} | {
|
|
266
|
+
status: 'range';
|
|
267
|
+
floor: number;
|
|
268
|
+
max: number;
|
|
269
|
+
doneVels: number[];
|
|
270
|
+
} | {
|
|
271
|
+
status: 'drop';
|
|
272
|
+
subloads: number[][];
|
|
273
|
+
} | {
|
|
274
|
+
status: 'myo';
|
|
275
|
+
activation: number[];
|
|
276
|
+
clusters: number[][];
|
|
277
|
+
} | {
|
|
278
|
+
status: 'myo-upcoming';
|
|
279
|
+
activationLen: number;
|
|
280
|
+
clusterCount?: number;
|
|
281
|
+
};
|
|
282
|
+
interface SetBarProps {
|
|
283
|
+
/** One set's performance state (done / active / todo). */
|
|
284
|
+
set: SetStripSet;
|
|
285
|
+
/** Bar height in px. Default 8. */
|
|
286
|
+
height?: number;
|
|
287
|
+
}
|
|
288
|
+
/**
|
|
289
|
+
* ONE set's multi-coloured bar: the butted per-rep colour segments for a single
|
|
290
|
+
* set (`done` = velocity-coloured reps · `active` = performed reps pulsing + grey
|
|
291
|
+
* remainder · `todo` = a solid grey bar), composed over {@link SegmentedBar}.
|
|
292
|
+
* Fills its flex slot; {@link SetStrip} lays several side by side. Colours are the
|
|
293
|
+
* real titan ramp pins.
|
|
294
|
+
*/
|
|
295
|
+
declare function SetBar({ set, height }: SetBarProps): react_jsx_runtime.JSX.Element;
|
|
296
|
+
|
|
297
|
+
/**
|
|
298
|
+
* The LOCKED 6-kind indicator taxonomy (TD-03.51). One precedence-ranked slot is
|
|
299
|
+
* ever shown per exercise, resolved by {@link resolveIndicator}. Glyph = the
|
|
300
|
+
* specific signal; color = the severity tier (danger/warning/success/info, bound
|
|
301
|
+
* to titan status tokens). Outlined (border + glyph, no fill) so a chip never
|
|
302
|
+
* collides with the filled velocity strip beside it.
|
|
303
|
+
*/
|
|
304
|
+
type ExerciseIndicatorKind = 'imbalance' | 'overshoot' | 'velocity-loss' | 'missed-reps' | 'pr' | 'info';
|
|
305
|
+
/**
|
|
306
|
+
* Precedence order (1=highest → last=lowest). A single chip is shown, so when
|
|
307
|
+
* several signals are true the highest-ranked wins. Alerts outrank `pr`; `info`
|
|
308
|
+
* is the floor. This ordering is LOCKED — do not reshuffle.
|
|
309
|
+
*/
|
|
310
|
+
declare const INDICATOR_PRECEDENCE: readonly ExerciseIndicatorKind[];
|
|
311
|
+
/**
|
|
312
|
+
* Given the signals currently true for an exercise, pick the single
|
|
313
|
+
* highest-precedence kind to surface (or `undefined` when none apply). Order and
|
|
314
|
+
* duplicates in `candidates` don't matter — {@link INDICATOR_PRECEDENCE} decides.
|
|
315
|
+
*/
|
|
316
|
+
declare function resolveIndicator(candidates: ExerciseIndicatorKind[]): ExerciseIndicatorKind | undefined;
|
|
317
|
+
interface ExerciseIndicatorProps extends Omit<ViewProps, 'children'> {
|
|
318
|
+
kind: ExerciseIndicatorKind;
|
|
319
|
+
/** Optional tap handler (surfaces detail — PR history / alert / info). */
|
|
320
|
+
onPress?: () => void;
|
|
321
|
+
className?: string;
|
|
128
322
|
}
|
|
129
|
-
|
|
323
|
+
/**
|
|
324
|
+
* A small circular outlined chip for an exercise heading. Presentational and
|
|
325
|
+
* static (chips are chrome — no pulse); the tap detail (tooltip/sheet) is wired
|
|
326
|
+
* by the consumer.
|
|
327
|
+
*/
|
|
328
|
+
declare function ExerciseIndicator({ kind, onPress, className, ...props }: ExerciseIndicatorProps): react_jsx_runtime.JSX.Element;
|
|
130
329
|
|
|
131
|
-
type ExerciseCardState = 'collapsed' | 'expanded' | 'upcoming';
|
|
132
330
|
interface ExerciseCardProps {
|
|
133
331
|
name: string;
|
|
134
|
-
|
|
135
|
-
|
|
332
|
+
/**
|
|
333
|
+
* The dimmed, not-yet-reached representation (prescription + previous-best line).
|
|
334
|
+
* Overrides the expand state — an upcoming card never expands.
|
|
335
|
+
*/
|
|
336
|
+
upcoming?: boolean;
|
|
337
|
+
/** Controlled expand state. Omit to run uncontrolled (see {@link defaultExpanded}). */
|
|
338
|
+
expanded?: boolean;
|
|
339
|
+
/** Uncontrolled initial expand state. Default false. Ignored when `expanded` is set. */
|
|
340
|
+
defaultExpanded?: boolean;
|
|
341
|
+
/** Notified when the user toggles the card between collapsed and expanded. */
|
|
342
|
+
onExpandedChange?: (expanded: boolean) => void;
|
|
136
343
|
onNavigateDetail?: () => void;
|
|
137
344
|
summary?: {
|
|
138
345
|
sets: number;
|
|
@@ -140,23 +347,38 @@ interface ExerciseCardProps {
|
|
|
140
347
|
weight: number;
|
|
141
348
|
unit: 'lbs' | 'kg';
|
|
142
349
|
};
|
|
143
|
-
e1rm?: {
|
|
144
|
-
value: number;
|
|
145
|
-
unit: 'lbs' | 'kg';
|
|
146
|
-
};
|
|
147
350
|
isPR?: boolean;
|
|
351
|
+
/** Collapsed glance: per-set logged velocities (drives the mini strips). */
|
|
148
352
|
setVelocities?: number[][];
|
|
149
353
|
/** Optional velocity-zone bands shared across this exercise's sets (WA bands). */
|
|
150
354
|
velocityZones?: readonly VelocityZoneBandProp[];
|
|
355
|
+
/** Collapsed glance: total planned sets (placeholder strips fill the remainder). */
|
|
151
356
|
totalPlannedSets?: number;
|
|
357
|
+
/** Expanded body: the per-set rows (done / live / todo). */
|
|
152
358
|
sets?: SetRowProps[];
|
|
153
359
|
tempo?: [number, number, number, number];
|
|
154
360
|
prescription?: string;
|
|
155
361
|
previousBest?: string;
|
|
156
362
|
supersetPosition?: 'first' | 'last' | 'middle' | null;
|
|
157
363
|
supersetColor?: string;
|
|
364
|
+
/** Expanded header per-set strip override; derived from `sets` when omitted. */
|
|
365
|
+
setStates?: SetStripSet[];
|
|
366
|
+
/** A small PR / issue / info chip in the title line (expanded header). */
|
|
367
|
+
indicator?: ExerciseIndicatorKind;
|
|
368
|
+
/** Expanded header strip height in px. Default 8. */
|
|
369
|
+
stripHeight?: number;
|
|
158
370
|
}
|
|
159
|
-
|
|
371
|
+
/**
|
|
372
|
+
* The data-contract exercise card, in three representations:
|
|
373
|
+
* - `upcoming` — a dimmed, not-yet-reached row (prescription + previous best).
|
|
374
|
+
* - collapsed — a glance: name + summary + per-set velocity strips.
|
|
375
|
+
* - expanded — the unified card: the real {@link ExerciseCardHeading} header over
|
|
376
|
+
* the SET · REPS · LBS · RPE body (one {@link SetRow} per set).
|
|
377
|
+
*
|
|
378
|
+
* Expand is controlled (`expanded` + `onExpandedChange`) or uncontrolled
|
|
379
|
+
* (`defaultExpanded`, internal state). `upcoming` overrides expand.
|
|
380
|
+
*/
|
|
381
|
+
declare function ExerciseCard({ upcoming, expanded, defaultExpanded, onExpandedChange, ...rest }: ExerciseCardProps): react_jsx_runtime.JSX.Element;
|
|
160
382
|
|
|
161
383
|
type MesoStatus = 'completed' | 'current' | 'upcoming';
|
|
162
384
|
interface Meso {
|
|
@@ -564,8 +786,11 @@ interface ExerciseDetailEntry {
|
|
|
564
786
|
title: string;
|
|
565
787
|
/** Collapsed summary (sets × reps @ weight). */
|
|
566
788
|
summary?: ExerciseCardProps['summary'];
|
|
567
|
-
/** Estimated one-rep max
|
|
568
|
-
e1rm?:
|
|
789
|
+
/** Estimated one-rep max, feeding the page's best-e1RM stat. */
|
|
790
|
+
e1rm?: {
|
|
791
|
+
value: number;
|
|
792
|
+
unit: 'lbs' | 'kg';
|
|
793
|
+
};
|
|
569
794
|
/** Flags a personal-record entry. */
|
|
570
795
|
isPR?: boolean;
|
|
571
796
|
/** Prescribed tempo, revealed when expanded. */
|
|
@@ -681,8 +906,6 @@ interface ActiveWorkoutExercise {
|
|
|
681
906
|
totalPlannedSets: number;
|
|
682
907
|
/** Collapsed summary (sets × reps @ weight) for a completed exercise. */
|
|
683
908
|
summary?: ExerciseCardProps['summary'];
|
|
684
|
-
/** Estimated one-rep max badge. */
|
|
685
|
-
e1rm?: ExerciseCardProps['e1rm'];
|
|
686
909
|
/** Flags a personal-record exercise. */
|
|
687
910
|
isPR?: boolean;
|
|
688
911
|
/** Prescribed tempo, revealed when expanded. */
|
|
@@ -768,8 +991,8 @@ declare function countCompletedSets(exercise: ActiveWorkoutExercise): number;
|
|
|
768
991
|
declare function deriveWorkoutProgress(exercises: ActiveWorkoutExercise[]): WorkoutProgress;
|
|
769
992
|
/** The active exercise anchors the bottom bar; find it, or null (pure). */
|
|
770
993
|
declare function findActiveExercise(exercises: ActiveWorkoutExercise[]): ActiveWorkoutExercise | null;
|
|
771
|
-
/**
|
|
772
|
-
declare function
|
|
994
|
+
/** Whether an exercise renders as the dimmed, not-yet-reached representation (pure). */
|
|
995
|
+
declare function isUpcomingExercise(status: ActiveExerciseStatus): boolean;
|
|
773
996
|
/** Project an exercise onto ExerciseCard props, wiring zoom focus (pure). */
|
|
774
997
|
declare function toActiveCardProps(exercise: ActiveWorkoutExercise, focused: boolean, onToggle: () => void, supersetPosition?: ExerciseCardProps['supersetPosition'], supersetColor?: string): ExerciseCardProps;
|
|
775
998
|
/** Fold consecutive same-superset exercises into render groups (pure). */
|
|
@@ -788,4 +1011,4 @@ declare function groupExercises(exercises: ActiveWorkoutExercise[], supersets: A
|
|
|
788
1011
|
*/
|
|
789
1012
|
declare function ActiveWorkoutPage({ title, subtitle, exercises, supersets, input, rest, initialResting, className, ...props }: ActiveWorkoutPageProps): react_jsx_runtime.JSX.Element;
|
|
790
1013
|
|
|
791
|
-
export {
|
|
1014
|
+
export { VelocityStrip as $, type ActiveExerciseStatus as A, type PlanWeek as B, CapacityBandChart as C, type PlanWorkout as D, type ExerciseIndicatorKind as E, type ProgramBreadcrumb as F, type ProgramNavLevel as G, type ProgramPlanningPageProps as H, INDICATOR_PRECEDENCE as I, type ProgramSelection as J, SET_STRIP_VARIABLE_COLOR as K, SET_STRIP_ZONES as L, type Meso as M, SetBar as N, type SetBarProps as O, type PlanMeso as P, SetRow as Q, type SetRowProps as R, type SetStripSet as S, type SetRowState as T, type SetRowUnit as U, StrengthTrendChart as V, type StrengthTrendChartMesoBoundary as W, type StrengthTrendChartProps as X, type StrengthTrendDataPoint as Y, type VbtSummary as Z, type VelocitySet as _, type ActiveWorkoutExercise as a, type VelocityStripProps as a0, type VelocityZoneBandProp as a1, WeekRow as a2, type WeekRowProps as a3, type WeekRowWorkout as a4, WorkoutCard as a5, type WorkoutCardProps as a6, type WorkoutDot as a7, type WorkoutDotStatus as a8, type WorkoutGroup as a9, groupExercises as aA, isUpcomingExercise as aB, summarizeVbt as aC, toActiveCardProps as aD, toExerciseCardProps as aE, toProgressBarMesos as aF, type WorkoutMuscleGroup as aa, type WorkoutMuscleVolumeStatus as ab, WorkoutPill as ac, type WorkoutPillProps as ad, type WorkoutPillStatus as ae, type WorkoutProgress as af, type WorkoutStatus as ag, calculateMeanVelocity as ah, calculateVelocityLoss as ai, getVelocityZoneColor as aj, getVelocityZoneName as ak, resolveIndicator as al, velocityZoneColor as am, ActiveWorkoutPage as an, EXERCISE_DETAIL_TABS as ao, ExerciseDetailPage as ap, ProgramPlanningPage as aq, buildBreadcrumbs as ar, countCompletedSets as as, deriveExerciseStats as at, deriveNavLevel as au, deriveWorkoutProgress as av, findActiveExercise as aw, findMeso as ax, findWeek as ay, findWorkout as az, type ActiveWorkoutInput as b, type ActiveWorkoutPageProps as c, type ActiveWorkoutRest as d, type ActiveWorkoutSuperset as e, type CapacityBandChartProps as f, type CapacityBandDataPoint as g, type CapacityBandProjection as h, ExerciseCard as i, type ExerciseCardProps as j, type ExerciseDetailEntry as k, type ExerciseDetailHeader as l, type ExerciseDetailPageProps as m, type ExerciseDetailStats as n, type ExerciseDetailTab as o, ExerciseIndicator as p, type ExerciseIndicatorProps as q, type ExerciseTrend as r, type ExerciseVbt as s, type ExerciseVbtSet as t, MesoCard as u, type MesoCardProps as v, MesoProgressBar as w, type MesoProgressBarProps as x, type MesoStatus as y, type MesoVolumeHeatmapEntry as z };
|
package/dist/pages.d.mts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { A as ActiveExerciseStatus, a as ActiveWorkoutExercise, b as ActiveWorkoutInput,
|
|
1
|
+
export { A as ActiveExerciseStatus, a as ActiveWorkoutExercise, b as ActiveWorkoutInput, an as ActiveWorkoutPage, c as ActiveWorkoutPageProps, d as ActiveWorkoutRest, e as ActiveWorkoutSuperset, ao as EXERCISE_DETAIL_TABS, k as ExerciseDetailEntry, l as ExerciseDetailHeader, ap as ExerciseDetailPage, m as ExerciseDetailPageProps, n as ExerciseDetailStats, o as ExerciseDetailTab, r as ExerciseTrend, s as ExerciseVbt, t as ExerciseVbtSet, P as PlanMeso, B as PlanWeek, D as PlanWorkout, F as ProgramBreadcrumb, G as ProgramNavLevel, aq as ProgramPlanningPage, H as ProgramPlanningPageProps, J as ProgramSelection, Z as VbtSummary, a9 as WorkoutGroup, af as WorkoutProgress, ar as buildBreadcrumbs, as as countCompletedSets, at as deriveExerciseStats, au as deriveNavLevel, av as deriveWorkoutProgress, aw as findActiveExercise, ax as findMeso, ay as findWeek, az as findWorkout, aA as groupExercises, aB as isUpcomingExercise, aC as summarizeVbt, aD as toActiveCardProps, aE as toExerciseCardProps, aF as toProgressBarMesos } from './pages-8u_4WbL-.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, a as ActiveWorkoutExercise, b as ActiveWorkoutInput,
|
|
1
|
+
export { A as ActiveExerciseStatus, a as ActiveWorkoutExercise, b as ActiveWorkoutInput, an as ActiveWorkoutPage, c as ActiveWorkoutPageProps, d as ActiveWorkoutRest, e as ActiveWorkoutSuperset, ao as EXERCISE_DETAIL_TABS, k as ExerciseDetailEntry, l as ExerciseDetailHeader, ap as ExerciseDetailPage, m as ExerciseDetailPageProps, n as ExerciseDetailStats, o as ExerciseDetailTab, r as ExerciseTrend, s as ExerciseVbt, t as ExerciseVbtSet, P as PlanMeso, B as PlanWeek, D as PlanWorkout, F as ProgramBreadcrumb, G as ProgramNavLevel, aq as ProgramPlanningPage, H as ProgramPlanningPageProps, J as ProgramSelection, Z as VbtSummary, a9 as WorkoutGroup, af as WorkoutProgress, ar as buildBreadcrumbs, as as countCompletedSets, at as deriveExerciseStats, au as deriveNavLevel, av as deriveWorkoutProgress, aw as findActiveExercise, ax as findMeso, ay as findWeek, az as findWorkout, aA as groupExercises, aB as isUpcomingExercise, aC as summarizeVbt, aD as toActiveCardProps, aE as toExerciseCardProps, aF as toProgressBarMesos } from './pages-DaWiBOGa.js';
|
|
2
2
|
import 'react/jsx-runtime';
|
|
3
3
|
import 'react-native';
|
|
4
4
|
import './MesoStatusCard-CQk71hSi.js';
|