@titan-design/react-ui 0.10.0 → 0.12.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 +173 -343
- package/dist/bodymap.js.map +1 -1
- package/dist/bodymap.mjs +173 -343
- package/dist/bodymap.mjs.map +1 -1
- package/dist/index.d.mts +416 -18
- package/dist/index.d.ts +416 -18
- package/dist/index.js +2512 -1307
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +2480 -1299
- package/dist/index.mjs.map +1 -1
- package/dist/{pages-DyEx-lBf.d.ts → pages-B1hqnGIC.d.ts} +149 -15
- package/dist/{pages-D7hOD4Vj.d.mts → pages-CvsFqNtx.d.mts} +149 -15
- package/dist/pages.d.mts +1 -1
- package/dist/pages.d.ts +1 -1
- package/dist/pages.js +1644 -1575
- package/dist/pages.js.map +1 -1
- package/dist/pages.mjs +1645 -1576
- package/dist/pages.mjs.map +1 -1
- package/dist/theme/index.d.mts +409 -415
- package/dist/theme/index.d.ts +409 -415
- package/dist/theme/index.js +234 -408
- package/dist/theme/index.js.map +1 -1
- package/dist/theme/index.mjs +227 -399
- package/dist/theme/index.mjs.map +1 -1
- package/dist/theme/tokens-css.js +141 -140
- package/dist/theme/tokens-css.js.map +1 -1
- package/dist/theme/tokens-css.mjs +141 -140
- package/dist/theme/tokens-css.mjs.map +1 -1
- package/package.json +8 -3
- package/src/arch/Architecture.stories.tsx +9 -9
- package/src/components/custom/DateTime/DateTime.stories.tsx +1 -1
- package/src/components/custom/Fatigue/DualGhostSpark.stories.tsx +258 -0
- package/src/components/custom/Fatigue/DualGhostSpark.test.tsx +138 -0
- package/src/components/custom/Fatigue/DualGhostSpark.tsx +208 -0
- package/src/components/custom/Fatigue/FatigueLights.stories.tsx +74 -0
- package/src/components/custom/Fatigue/FatigueLights.test.tsx +33 -0
- package/src/components/custom/Fatigue/FatigueLights.tsx +83 -0
- package/src/components/custom/Fatigue/GhostBand.test.tsx +235 -0
- package/src/components/custom/Fatigue/GhostBand.tsx +246 -0
- package/src/components/custom/Fatigue/GhostBloom.tsx +132 -0
- package/src/components/custom/Fatigue/GhostSpark.stories.tsx +175 -0
- package/src/components/custom/Fatigue/GhostSpark.test.tsx +45 -0
- package/src/components/custom/Fatigue/GhostSpark.tsx +126 -0
- package/src/components/custom/Fatigue/LiveFatigueCard.stories.tsx +126 -0
- package/src/components/custom/Fatigue/LiveFatigueCard.test.tsx +28 -0
- package/src/components/custom/Fatigue/LiveFatigueCard.tsx +86 -0
- package/src/components/custom/Fatigue/LiveFatiguePanel.stories.tsx +95 -0
- package/src/components/custom/Fatigue/LiveFatiguePanel.tsx +151 -0
- package/src/components/custom/Fatigue/README.md +93 -0
- package/src/components/custom/Fatigue/RomProgressionChart.stories.tsx +94 -0
- package/src/components/custom/Fatigue/RomProgressionChart.test.tsx +31 -0
- package/src/components/custom/Fatigue/RomProgressionChart.tsx +132 -0
- package/src/components/custom/Fatigue/SilverRedPalette.stories.tsx +226 -0
- package/src/components/custom/Fatigue/VelocityHero.stories.tsx +70 -0
- package/src/components/custom/Fatigue/VelocityHero.test.tsx +26 -0
- package/src/components/custom/Fatigue/VelocityHero.tsx +46 -0
- package/src/components/custom/Fatigue/VerdictHero.stories.tsx +59 -0
- package/src/components/custom/Fatigue/VerdictHero.test.tsx +49 -0
- package/src/components/custom/Fatigue/VerdictHero.tsx +79 -0
- package/src/components/custom/Fatigue/fatigue-mock.test.ts +59 -0
- package/src/components/custom/Fatigue/fatigue-mock.ts +268 -0
- package/src/components/custom/Fatigue/fatigue-model.ts +129 -0
- package/src/components/custom/Fatigue/fatigue-tokens.test.ts +70 -0
- package/src/components/custom/Fatigue/fatigue-tokens.ts +180 -0
- package/src/components/custom/Fatigue/index.ts +41 -0
- package/src/components/custom/Fatigue/tempo-pacing.test.ts +176 -0
- package/src/components/custom/Fatigue/tempo-pacing.ts +112 -0
- package/src/components/custom/Sidebar/Sidebar.tsx +4 -4
- package/src/components/custom/Table/Table.tsx +2 -2
- package/src/components/custom/Workout/ActiveWorkoutPage.tsx +3 -3
- package/src/components/custom/Workout/BaseBadge.test.tsx +6 -1
- package/src/components/custom/Workout/BaseBadge.tsx +1 -1
- package/src/components/custom/Workout/BodyMap.tsx +2 -2
- package/src/components/custom/Workout/BodyMapDetailPanel.tsx +2 -2
- package/src/components/custom/Workout/DeviationBar.test.tsx +2 -1
- package/src/components/custom/Workout/DeviationBar.tsx +3 -2
- package/src/components/custom/Workout/DualVelocityStrip.test.tsx +685 -0
- package/src/components/custom/Workout/ExerciseCard.test.tsx +7 -7
- package/src/components/custom/Workout/ExerciseCard.tsx +5 -3
- package/src/components/custom/Workout/ExerciseDetailPage.tsx +11 -5
- package/src/components/custom/Workout/InputBar.tsx +2 -2
- package/src/components/custom/Workout/LiveAuraFrame.stories.tsx +1 -1
- package/src/components/custom/Workout/LiveAuraFrame.test.tsx +1 -1
- package/src/components/custom/Workout/LiveAuraFrame.tsx +3 -3
- package/src/components/custom/Workout/MesoCard.tsx +3 -1
- package/src/components/custom/Workout/MuscleGroupChip.tsx +4 -3
- package/src/components/custom/Workout/PrHistoryModal.tsx +2 -2
- package/src/components/custom/Workout/ProgramPlanningPage.tsx +1 -1
- package/src/components/custom/Workout/README.md +62 -16
- package/src/components/custom/Workout/ReadinessCheck.tsx +2 -2
- package/src/components/custom/Workout/RestTimer.tsx +2 -2
- package/src/components/custom/Workout/S3SetTypes.stories.tsx +3 -3
- package/src/components/custom/Workout/SegmentedBar.stories.tsx +3 -3
- package/src/components/custom/Workout/SessionHeader.stories.tsx +2 -2
- package/src/components/custom/Workout/SessionHeader.tsx +1 -1
- package/src/components/custom/Workout/SessionRail.stories.tsx +2 -2
- package/src/components/custom/Workout/SessionRail.test.tsx +43 -0
- package/src/components/custom/Workout/SessionRail.tsx +63 -18
- package/src/components/custom/Workout/SetBar.tsx +3 -3
- package/src/components/custom/Workout/SetRow.test.tsx +12 -9
- package/src/components/custom/Workout/SetRow.tsx +9 -2
- package/src/components/custom/Workout/StatusDot.tsx +5 -4
- package/src/components/custom/Workout/StrengthTrendChart.tsx +1 -1
- package/src/components/custom/Workout/TrainingStatusPage.tsx +2 -2
- package/src/components/custom/Workout/VelocityStrip.compact.stories.tsx +191 -0
- package/src/components/custom/Workout/VelocityStrip.dual.stories.tsx +186 -0
- package/src/components/custom/Workout/VelocityStrip.expanded.stories.tsx +296 -0
- package/src/components/custom/Workout/VelocityStrip.hero.stories.tsx +259 -0
- package/src/components/custom/Workout/VelocityStrip.stories.tsx +217 -250
- package/src/components/custom/Workout/VelocityStrip.test.tsx +199 -79
- package/src/components/custom/Workout/VelocityStrip.tsx +953 -609
- package/src/components/custom/Workout/VolumeLandmarkBar.tsx +3 -3
- package/src/components/custom/Workout/WeightBadge.test.tsx +6 -1
- package/src/components/custom/Workout/WeightBadge.tsx +2 -1
- package/src/components/custom/Workout/WorkoutCard.tsx +3 -1
- package/src/components/custom/Workout/WorkoutPill.tsx +5 -2
- package/src/components/custom/Workout/ZoneTrack.tsx +4 -4
- package/src/components/custom/Workout/index.ts +3 -0
- package/src/components/custom/Workout/setHeadingKit.tsx +14 -8
- package/src/components/custom/Workout/velocity-story-kit.tsx +438 -0
- package/src/components/custom/charts/SetBarChart.test.tsx +275 -0
- package/src/components/custom/charts/SetBarChart.tsx +651 -0
- package/src/components/custom/charts/live-rep-growth.ts +91 -0
- package/src/components/custom/index.ts +1 -0
- package/src/components/custom/stepper/Stepper.stories.tsx +1 -1
- package/src/components/custom/stepper/Stepper.tsx +3 -3
- package/src/components/shell/DeviceMenu.tsx +2 -2
- package/src/components/shell/SideNav.tsx +1 -1
- package/src/components/shell/TopBar.tsx +1 -1
- package/src/components/ui/autocomplete/Autocomplete.stories.tsx +1 -1
- package/src/components/ui/autocomplete/Autocomplete.tsx +1 -1
- package/src/components/ui/avatar/Avatar.tsx +2 -2
- package/src/components/ui/badge/Badge.tsx +2 -2
- package/src/components/ui/card/Card.tsx +3 -3
- package/src/components/ui/checkbox/Checkbox.tsx +1 -1
- package/src/components/ui/collapse/Collapse.tsx +1 -1
- package/src/components/ui/data-row/DataRow.stories.tsx +1 -1
- package/src/components/ui/drawer/Drawer.tsx +3 -3
- package/src/components/ui/form-field/FormField.tsx +1 -1
- package/src/components/ui/help-tip/HelpTip.tsx +1 -1
- package/src/components/ui/menu/Menu.tsx +2 -2
- package/src/components/ui/pill/Pill.tsx +2 -2
- package/src/components/ui/popover/Popover.stories.tsx +2 -2
- package/src/components/ui/popover/Popover.tsx +1 -1
- package/src/components/ui/progress/Progress.tsx +3 -3
- package/src/components/ui/radio/Radio.stories.tsx +1 -1
- package/src/components/ui/radio/Radio.tsx +4 -4
- package/src/components/ui/select/Select.tsx +3 -3
- package/src/components/ui/surface/Surface.stories.tsx +3 -3
- package/src/components/ui/surface/Surface.test.tsx +32 -19
- package/src/components/ui/surface/Surface.tsx +3 -3
- package/src/components/ui/surface/SurfaceContext.ts +19 -29
- package/src/components/ui/surface/surface.contract.test.ts +57 -44
- package/src/components/ui/switch/Switch.tsx +1 -1
- package/src/components/ui/tabs/Tabs.tsx +2 -2
- package/src/components/ui/toolbar-button/ToolbarButton.stories.tsx +5 -5
- package/src/components/ui/toolbar-button/ToolbarButton.test.tsx +1 -1
- package/src/components/ui/toolbar-button/ToolbarButton.tsx +36 -22
- package/src/stories/PresetShowcase.stories.tsx +21 -21
- package/src/test/raw-color-patterns.test.ts +71 -0
- package/src/theme/ColorPalettes.stories.tsx +874 -0
- package/src/theme/ColorPrimitives.stories.tsx +348 -0
- package/src/theme/Depth.stories.tsx +312 -0
- package/src/theme/DepthCalibration.stories.tsx +655 -0
- package/src/theme/ThemeProvider.tsx +1 -1
- package/src/theme/barrel.ts +7 -14
- package/src/theme/color-stories.coverage.test.ts +125 -0
- package/src/theme/color-story-kit.tsx +170 -0
- package/src/theme/color-utils.ts +197 -0
- package/src/theme/config.ts +0 -8
- package/src/theme/depth-calibration.test.tsx +97 -0
- package/src/theme/elevation.test.ts +62 -1
- package/src/theme/elevation.ts +34 -8
- package/src/theme/global.css +47 -53
- package/src/theme/grey-ramp.test.ts +166 -0
- package/src/theme/materials.test.ts +106 -0
- package/src/theme/materials.ts +211 -0
- package/src/theme/presets/audiobook.ts +4 -4
- package/src/theme/presets/types.ts +3 -3
- package/src/theme/semantic-contrast.test.ts +83 -0
- package/src/theme/tokens/primitives.ts +62 -115
- package/src/theme/tokens/semantic.ts +130 -82
- package/src/utils/colors.ts +1 -1
- package/tailwind.config.js +2 -5
- package/src/components/custom/Workout/VelocityStrip.modalities.stories.tsx +0 -254
- package/src/components/custom/Workout/VelocityStrip.responsive.stories.tsx +0 -145
- package/src/theme/ColorSystem.stories.tsx +0 -508
- package/src/theme/Colors.stories.tsx +0 -323
- package/src/theme/shadows.stories.tsx +0 -523
- package/src/theme/shadows.ts +0 -439
package/dist/index.d.mts
CHANGED
|
@@ -3,9 +3,9 @@ import * as React$1 from 'react';
|
|
|
3
3
|
import React__default, { ReactNode } from 'react';
|
|
4
4
|
import { ViewProps, PressableProps, View, TextInputProps, TextInput, ImageSourcePropType, ModalProps as ModalProps$1, TextProps } from 'react-native';
|
|
5
5
|
import { ThemeMode, ElevationLevel, GlowIntensity } from './theme/index.mjs';
|
|
6
|
-
export { CATEGORICAL_CVD_SAFE_MAX, CategoricalVariant, ComponentType, CssPropertyEntry, CssPropertyManifest, ElevationConfig, GradientStyle, ManifestValidationResult, PRESSED_ELEVATION_LEVEL,
|
|
7
|
-
import { S as SetStripSet, E as ExerciseIndicatorKind } from './pages-
|
|
8
|
-
export { A as ActiveExerciseStatus,
|
|
6
|
+
export { CATEGORICAL_CVD_SAFE_MAX, CategoricalVariant, ComponentType, CssPropertyEntry, CssPropertyManifest, ElevationConfig, FLOATING_ELEVATION_MIN, GradientStyle, ManifestValidationResult, PRESSED_ELEVATION_LEVEL, SURFACE_PLANE_STEPS, ShadowIntensity, ThemeConfig, ThemePreset, ThemePresetColors, ThemePresetFonts, ThemePresetRadii, ThemePresetShadows, ThemeProviderMode, ThemeProviderProps, VariantAxes, VariantOverride, applyThemePreset, audiobookPreset, barPaper, bestTextColor, buttonSizes, categoricalPalette, componentElevationRanges, darkThemeCSSVars, darken, defaultPreset, discreteRainbow, divergingScale, elevationSystem, getBaseSurfaceColor, getCategoricalColor, getDiscreteRainbowColor, getElevationConfig, getElevationShadow, getElevationSurface, getGlowShadow, getHoverColors, getPressedRecessShadow, getSemanticColors, getThemeCSSVars, getValidatedElevation, gluestackConfig, grainForTone, grainOpacityForTone, greyRamp, hexToRgb, hsvToRgb, insetWell, isCssPropertyManifest, isDark, lightThemeCSSVars, lighten, linearGradient, paperSheet, primitiveBorderRadius, primitiveBreakpoints, primitiveColors, primitiveRamps, primitiveSpacing, primitiveTypography, primitiveZIndex, resolveColor, rgbToHex, rgbToHsv, semanticColorsDark, semanticColorsLight, semanticTypography, sequentialEffort, surfaceGradient, validateCssPropertyManifest } from './theme/index.mjs';
|
|
7
|
+
import { S as SetStripSet, E as ExerciseIndicatorKind, a as SetRowProps } from './pages-CvsFqNtx.mjs';
|
|
8
|
+
export { A as ActiveExerciseStatus, b as ActiveWorkoutExercise, c as ActiveWorkoutInput, d as ActiveWorkoutPageProps, e as ActiveWorkoutRest, f as ActiveWorkoutSuperset, C as CapacityBandChart, g as CapacityBandChartProps, h as CapacityBandDataPoint, i as CapacityBandProjection, D as DualVelocityStream, j as DualVelocityStrip, k as DualVelocityStripProps, l as ExerciseCard, m as ExerciseCardProps, n as ExerciseDetailEntry, o as ExerciseDetailHeader, p as ExerciseDetailPageProps, q as ExerciseDetailStats, r as ExerciseDetailTab, s as ExerciseIndicator, t as ExerciseIndicatorProps, u as ExerciseTrend, v as ExerciseVbt, w as ExerciseVbtSet, I as INDICATOR_PRECEDENCE, M as Meso, x as MesoCard, y as MesoCardProps, z as MesoProgressBar, B as MesoProgressBarProps, F as MesoStatus, G as MesoVolumeHeatmapEntry, P as PlanMeso, H as PlanWeek, J as PlanWorkout, K as ProgramBreadcrumb, L as ProgramNavLevel, N as ProgramPlanningPageProps, O as ProgramSelection, Q as SET_STRIP_VARIABLE_COLOR, R as SET_STRIP_ZONES, T as SetBar, U as SetBarProps, V as SetRow, W as SetRowState, X as SetRowUnit, Y as StrengthTrendChart, Z as StrengthTrendChartMesoBoundary, _ as StrengthTrendChartProps, $ as StrengthTrendDataPoint, a0 as VbtSummary, a1 as VelocitySet, a2 as VelocityStrip, a3 as VelocityStripProps, a4 as VelocityZoneBandProp, a5 as WeekRow, a6 as WeekRowProps, a7 as WeekRowWorkout, a8 as WorkoutCard, a9 as WorkoutCardProps, aa as WorkoutDot, ab as WorkoutDotStatus, ac as WorkoutGroup, ad as WorkoutMuscleGroup, ae as WorkoutMuscleVolumeStatus, af as WorkoutPill, ag as WorkoutPillProps, ah as WorkoutPillStatus, ai as WorkoutProgress, aj as WorkoutStatus, ak as calculateMeanVelocity, al as calculateVelocityLoss, am as getVelocityZoneColor, an as getVelocityZoneName, ao as resolveIndicator, ap as velocityZoneColor } from './pages-CvsFqNtx.mjs';
|
|
9
9
|
export { M as MesoStatusBadge, a as MesoStatusBadgeVariant, b as MesoStatusCard, c as MesoStatusCardProps, d as MesoStatusCoaching, e as MesoStatusGauge, f as MesoStatusMetric, g as MesoStatusNextTarget } from './MesoStatusCard-CQk71hSi.mjs';
|
|
10
10
|
import { VolumeLandmarks } from './bodymap.mjs';
|
|
11
11
|
export { BodyMapData, BodyMapDetailPanelProps, BodyMapProps, ContributingExercise, MovementCategory, MuscleGroup, SimpleMuscleGroup, TrainingStatusMuscle, TrainingStatusPageProps, TrainingStatusSummary, UpcomingExercise } from './bodymap.mjs';
|
|
@@ -1295,7 +1295,7 @@ interface SelectProps<T = string> extends ViewProps {
|
|
|
1295
1295
|
*/
|
|
1296
1296
|
declare function Select<T extends string = string>({ value, values, onChange, onChangeMulti, isMulti, placeholder, isDisabled, isInvalid, options, variant, className, ...props }: SelectProps<T>): react_jsx_runtime.JSX.Element;
|
|
1297
1297
|
|
|
1298
|
-
type ToolbarButtonVariant = 'default' | '
|
|
1298
|
+
type ToolbarButtonVariant = 'default' | 'raised';
|
|
1299
1299
|
type ToolbarButtonSize = 'sm' | 'md' | 'lg';
|
|
1300
1300
|
interface ToolbarButtonContextType {
|
|
1301
1301
|
isOpen: boolean;
|
|
@@ -2023,15 +2023,18 @@ declare function IconBox({ icon: Icon, color, size, className, ...props }: IconB
|
|
|
2023
2023
|
* no new hexes. Darkest → lightest:
|
|
2024
2024
|
* inset (#13100D) < background (#1C1916) < base (#252321) < elevated (#2A2827) < raised (#2D2C2B) < overlay (#302F2E)
|
|
2025
2025
|
*
|
|
2026
|
-
* `
|
|
2027
|
-
* `<Surface pressed>` clamps at (see {@link pressedLevel})
|
|
2028
|
-
*
|
|
2029
|
-
* `
|
|
2026
|
+
* `frame` is the bezel the ramp sits inside — the top bar / side nav chrome —
|
|
2027
|
+
* and the floor a `<Surface pressed>` clamps at (see {@link pressedLevel}).
|
|
2028
|
+
*
|
|
2029
|
+
* It replaced a separate `inset` level in TD-07.14. That level was RETIRED, not
|
|
2030
|
+
* renamed: at ΔE 1.10 from the frame it was an imperceptible duplicate, which is
|
|
2031
|
+
* exactly why pressed (surface − 1) kept collapsing into it.
|
|
2030
2032
|
*/
|
|
2031
|
-
type SurfaceLevel = '
|
|
2033
|
+
type SurfaceLevel = 'frame' | 'background' | 'base' | 'elevated' | 'raised' | 'overlay';
|
|
2032
2034
|
/** On-surface neutral text roles, resolved for the current surface + theme. */
|
|
2033
2035
|
type OnSurfaceRole = 'primary' | 'secondary' | 'tertiary';
|
|
2034
2036
|
declare const SURFACE_LEVEL_TOKEN: {
|
|
2037
|
+
readonly frame: "background-frame";
|
|
2035
2038
|
readonly background: "background-base";
|
|
2036
2039
|
readonly base: "surface-base";
|
|
2037
2040
|
readonly elevated: "surface-elevated";
|
|
@@ -2063,9 +2066,9 @@ declare function surfaceBackground(level: SurfaceLevel, mode: ThemeMode): string
|
|
|
2063
2066
|
/**
|
|
2064
2067
|
* The level a `<Surface pressed>` resolves to: its parent's level stepped one
|
|
2065
2068
|
* index DOWN the ramp — the symmetric twin of a raised surface stepping up —
|
|
2066
|
-
* clamped at the `
|
|
2069
|
+
* clamped at the `frame` floor so a pressed surface never underflows the bezel.
|
|
2067
2070
|
* overlay→raised, raised→elevated, elevated→base, base→background,
|
|
2068
|
-
* background→
|
|
2071
|
+
* background→frame, frame→frame (clamped).
|
|
2069
2072
|
* Pressed exposes ONE level of depth only (no pressed-2).
|
|
2070
2073
|
*/
|
|
2071
2074
|
declare function pressedLevel(parent: SurfaceLevel): SurfaceLevel;
|
|
@@ -2078,7 +2081,7 @@ interface SurfaceProps extends ViewProps {
|
|
|
2078
2081
|
*/
|
|
2079
2082
|
elevation?: ElevationLevel;
|
|
2080
2083
|
/**
|
|
2081
|
-
* Named
|
|
2084
|
+
* Named grey plane (shell / rail / stage). Sets the background directly
|
|
2082
2085
|
* from a semantic surface token — reaching the darker nav/page planes the
|
|
2083
2086
|
* lighten model can't — and drops the default rounding + auto shadow so the
|
|
2084
2087
|
* plane reads full-bleed. Composable with `elevation`'s glow.
|
|
@@ -2110,7 +2113,7 @@ interface SurfaceProps extends ViewProps {
|
|
|
2110
2113
|
* A container that OWNS its background and establishes an on-surface colour
|
|
2111
2114
|
* context. Two grounded ways to pick the background:
|
|
2112
2115
|
* - `elevation` (numeric): the raised-card model — lighten-from-base + shadow.
|
|
2113
|
-
* - `level` (named): a flat
|
|
2116
|
+
* - `level` (named): a flat grey plane straight from a semantic token,
|
|
2114
2117
|
* for the shell / rail / stage backgrounds.
|
|
2115
2118
|
* Either way, descendants read the surface via {@link useOnSurfaceColor} /
|
|
2116
2119
|
* {@link useSurfaceMode} rather than hard-coding `getSemanticColors('dark')`.
|
|
@@ -3295,7 +3298,7 @@ interface SessionHeaderProps extends ViewProps {
|
|
|
3295
3298
|
* done, coloured green/amber against the elapsed-vs-budget pace, with a live marker),
|
|
3296
3299
|
* a mono `n/total sets` label and a ⏱ elapsed readout. Upcoming (`next` set), the tiles
|
|
3297
3300
|
* become Date/Time/Until, the bar is the empty plan shape, and the readout shows the
|
|
3298
|
-
* planned duration. Rendered on the raised
|
|
3301
|
+
* planned duration. Rendered on the raised grey plane; presentational. Composes
|
|
3299
3302
|
* {@link MetricTiles} / {@link ScheduleTiles} + {@link SegmentedProgressBar} +
|
|
3300
3303
|
* {@link TimerReadout}.
|
|
3301
3304
|
*/
|
|
@@ -3325,6 +3328,12 @@ interface SessionRailExercise {
|
|
|
3325
3328
|
setStates: SetStripSet[];
|
|
3326
3329
|
/** Dim the row as a not-yet-reached exercise. */
|
|
3327
3330
|
upcoming?: boolean;
|
|
3331
|
+
/**
|
|
3332
|
+
* Per-set rows for the expanded body. Only read when this row is the one named
|
|
3333
|
+
* by `expandedIndex` — a rail row without them can never expand, which is the
|
|
3334
|
+
* correct behaviour for an exercise whose sets aren't loaded.
|
|
3335
|
+
*/
|
|
3336
|
+
sets?: SetRowProps[];
|
|
3328
3337
|
}
|
|
3329
3338
|
interface SessionRailProps extends ViewProps {
|
|
3330
3339
|
/** Session title — the live session's name, or the next session's name when `next` is set. */
|
|
@@ -3346,6 +3355,16 @@ interface SessionRailProps extends ViewProps {
|
|
|
3346
3355
|
stripHeight?: number;
|
|
3347
3356
|
/** Rail width in px. Default 246. */
|
|
3348
3357
|
width?: number;
|
|
3358
|
+
/**
|
|
3359
|
+
* Index of the exercise to render EXPANDED in place — its set table opens
|
|
3360
|
+
* inside the rail rather than in a separate pane. The row still draws the same
|
|
3361
|
+
* `ExerciseCardHeading` (an `ExerciseCard` composes one), so an expanded row
|
|
3362
|
+
* differs from a collapsed one only by the revealed body.
|
|
3363
|
+
*
|
|
3364
|
+
* Ignored when the named exercise has no `sets`. Omit for an all-collapsed
|
|
3365
|
+
* rail, which is the prior behaviour.
|
|
3366
|
+
*/
|
|
3367
|
+
expandedIndex?: number;
|
|
3349
3368
|
onExercisePress?: (exercise: SessionRailExercise, index: number) => void;
|
|
3350
3369
|
className?: string;
|
|
3351
3370
|
}
|
|
@@ -3355,7 +3374,7 @@ interface SessionRailProps extends ViewProps {
|
|
|
3355
3374
|
* exercise headings. The header's plan (chunk widths ∝ sets) is derived from `exercises`.
|
|
3356
3375
|
* Presentational — driven entirely by props.
|
|
3357
3376
|
*/
|
|
3358
|
-
declare function SessionRail({ title, exercises, setsDone, elapsedMs, budgetMs, running, metrics, next, stripHeight, width, onExercisePress, className, style, ...props }: SessionRailProps): react_jsx_runtime.JSX.Element;
|
|
3377
|
+
declare function SessionRail({ title, exercises, setsDone, elapsedMs, budgetMs, running, metrics, next, stripHeight, width, expandedIndex, onExercisePress, className, style, ...props }: SessionRailProps): react_jsx_runtime.JSX.Element;
|
|
3359
3378
|
|
|
3360
3379
|
interface SupersetWrapperProps {
|
|
3361
3380
|
label?: string;
|
|
@@ -3532,7 +3551,7 @@ interface ZoneTrackProps extends ViewProps {
|
|
|
3532
3551
|
trackHeight?: number;
|
|
3533
3552
|
/** How far a needle marker overhangs the track top + bottom, in px. Overrides the `size` default (6 default / 9 wall). */
|
|
3534
3553
|
needleOverhang?: number;
|
|
3535
|
-
/** Muted colour of the track behind / beyond the fill. Default a
|
|
3554
|
+
/** Muted colour of the track behind / beyond the fill. Default a grey step. */
|
|
3536
3555
|
trackColor?: string;
|
|
3537
3556
|
className?: string;
|
|
3538
3557
|
}
|
|
@@ -3660,13 +3679,392 @@ interface LiveAuraFrameProps extends ViewProps {
|
|
|
3660
3679
|
declare function liveAuraColor(category: LiveAuraCategory): string | null;
|
|
3661
3680
|
/**
|
|
3662
3681
|
* Full-surface color-flood frame tied to a coaching category. Wraps `children`
|
|
3663
|
-
* on a
|
|
3682
|
+
* on a grey base and layers a radial wash (amber at threshold, red at stop)
|
|
3664
3683
|
* as a decorative, pointer-transparent overlay. The wash uses a solid
|
|
3665
3684
|
* `backgroundColor` fallback (native) plus a web-only `backgroundImage` radial
|
|
3666
3685
|
* gradient; both derive from the same semantic token via `alpha()`.
|
|
3667
3686
|
*/
|
|
3668
3687
|
declare function LiveAuraFrame({ category, pulse, className, children, style, ...props }: LiveAuraFrameProps): react_jsx_runtime.JSX.Element;
|
|
3669
3688
|
|
|
3689
|
+
/**
|
|
3690
|
+
* The live-fatigue data contract — a titan-local mirror of voltras-mcp's
|
|
3691
|
+
* `LiveFatigueModel` (`src/dashboard/spa/live-page/fatigue-model.ts`). The card
|
|
3692
|
+
* family consumes ONE typed `LiveFatigueModel` prop; the diverging/velocity hero
|
|
3693
|
+
* beside it takes its own per-rep velocity array (that data is NOT on this model —
|
|
3694
|
+
* it comes from the live-view velocity path).
|
|
3695
|
+
*
|
|
3696
|
+
* Units: every velocity is m/s and every distance is metres (converted from WA's
|
|
3697
|
+
* native mm/s & mm at the mapper boundary). Tone/state vocabularies mirror WA's
|
|
3698
|
+
* `DimensionTone` / `FatigueVerdictState` one-for-one so the real WA verdict drops
|
|
3699
|
+
* straight in.
|
|
3700
|
+
*/
|
|
3701
|
+
/** Per-dimension status light. Mirrors WA's `DimensionTone`. */
|
|
3702
|
+
type DimensionTone = 'ok' | 'warn' | 'alarm';
|
|
3703
|
+
/** Aggregated verdict state (drives the hero word). Mirrors WA's `FatigueVerdictState`. */
|
|
3704
|
+
type FatigueVerdictState = 'good' | 'slowing' | 'grinding' | 'form-breakdown';
|
|
3705
|
+
/**
|
|
3706
|
+
* Movement phase of one per-sample point — colours the ghost-spark zero-axis.
|
|
3707
|
+
*
|
|
3708
|
+
* `hold` is a DELIBERATE pause under load (WA's `MovementPhase.HOLD`) — the bottom/top
|
|
3709
|
+
* holds a tempo prescription asks for. `idle` is undirected dead time. They were folded
|
|
3710
|
+
* together until the band needed to name a hold; keep them apart, because "the lifter held
|
|
3711
|
+
* the bottom for 400 ms" and "nothing happened" are different facts.
|
|
3712
|
+
*/
|
|
3713
|
+
type SamplePhase = 'concentric' | 'eccentric' | 'hold' | 'idle';
|
|
3714
|
+
/** One per-sample point of a rep's velocity-time curve. */
|
|
3715
|
+
interface VelocitySample {
|
|
3716
|
+
/** Milliseconds since this rep's first sample. */
|
|
3717
|
+
tMs: number;
|
|
3718
|
+
/** Instantaneous velocity MAGNITUDE, m/s (the ghost-spark signs it by `phase`). */
|
|
3719
|
+
velocityMps: number;
|
|
3720
|
+
/** Movement phase at this sample — drives the phase-coloured zero-axis segment. */
|
|
3721
|
+
phase: SamplePhase;
|
|
3722
|
+
}
|
|
3723
|
+
/** A contiguous same-phase run within a rep's sample stream — one zero-axis segment. */
|
|
3724
|
+
interface PhaseSegment {
|
|
3725
|
+
phase: SamplePhase;
|
|
3726
|
+
/** Start offset, ms since the rep's first sample. */
|
|
3727
|
+
startMs: number;
|
|
3728
|
+
/** End offset, ms since the rep's first sample. */
|
|
3729
|
+
endMs: number;
|
|
3730
|
+
}
|
|
3731
|
+
/**
|
|
3732
|
+
* One rep's velocity-time curve for the ghost-spark (current rep solid, priors faded).
|
|
3733
|
+
*
|
|
3734
|
+
* The line tint is driven by TWO normalized per-rep signals (the "green-intensity
|
|
3735
|
+
* control-aware" rule; the mapping lives in {@link ghostLineColor}):
|
|
3736
|
+
* `grindSignature < 0.35` → stay green, intensity by `tempoDeviation` (brightest at
|
|
3737
|
+
* 0 → deepest green at 1, hue held); otherwise → warm hue amber (at 0.35) → red (at
|
|
3738
|
+
* 1.0) by `grindSignature`. A slow-but-smooth rep stays green (just deeper); only a
|
|
3739
|
+
* stalling/collapsing rep warms.
|
|
3740
|
+
*/
|
|
3741
|
+
interface RepVelocityCurve {
|
|
3742
|
+
/** 1-based rep number. */
|
|
3743
|
+
repNumber: number;
|
|
3744
|
+
/** Per-sample velocity-time points, in stream order. */
|
|
3745
|
+
samples: VelocitySample[];
|
|
3746
|
+
/** Contiguous phase runs, for the phase-coloured zero-axis. */
|
|
3747
|
+
phaseSegments: PhaseSegment[];
|
|
3748
|
+
/**
|
|
3749
|
+
* Normalized concentric-duration deviation from the prescribed tempo, 0..1 (0 =
|
|
3750
|
+
* on-tempo, 1 = well off). Drives GREEN INTENSITY when the rep is controlled.
|
|
3751
|
+
* `null` when there is no prescribed tempo to compare against.
|
|
3752
|
+
*/
|
|
3753
|
+
tempoDeviation: number | null;
|
|
3754
|
+
/**
|
|
3755
|
+
* Normalized velocity COLLAPSE within the concentric, 0..1 (0 = smooth, 1 = full
|
|
3756
|
+
* collapse). Warms the line hue amber→red past the control threshold. Always
|
|
3757
|
+
* computed per rep; a rep with too few concentric samples reads `0`.
|
|
3758
|
+
*/
|
|
3759
|
+
grindSignature: number;
|
|
3760
|
+
}
|
|
3761
|
+
/** One per-rep point of the ROM-progression mini-chart. */
|
|
3762
|
+
interface RepRomPoint {
|
|
3763
|
+
/** 1-based rep number. */
|
|
3764
|
+
repNumber: number;
|
|
3765
|
+
/** Concentric range of motion, metres. */
|
|
3766
|
+
romM: number;
|
|
3767
|
+
}
|
|
3768
|
+
/** The aggregated verdict + the three per-dimension lights (WA `getSetFatigueVerdict`). */
|
|
3769
|
+
interface FatigueVerdict {
|
|
3770
|
+
state: FatigueVerdictState;
|
|
3771
|
+
tone: DimensionTone;
|
|
3772
|
+
dimensions: {
|
|
3773
|
+
velocityLoss: DimensionTone;
|
|
3774
|
+
rom: DimensionTone;
|
|
3775
|
+
tempo: DimensionTone;
|
|
3776
|
+
};
|
|
3777
|
+
}
|
|
3778
|
+
/**
|
|
3779
|
+
* The always-on live fatigue card model for the current set. A `null` `verdict`
|
|
3780
|
+
* means the set is warming up (cold start, < 2 reps) — the card renders neutral.
|
|
3781
|
+
*/
|
|
3782
|
+
interface LiveFatigueModel {
|
|
3783
|
+
/** Estimated RPE (exact, unrounded — the card rounds to 0.5). `null` under 2 reps. */
|
|
3784
|
+
rpe: number | null;
|
|
3785
|
+
/** Reps in reserve = 10 − RPE. `null` when `rpe` is `null`. Carried for the contract; the card is RPE-led and does not render a reps-in-reserve line. */
|
|
3786
|
+
repsInReserve: number | null;
|
|
3787
|
+
/** The verdict + three dimension lights. `null` = warming up. */
|
|
3788
|
+
verdict: FatigueVerdict | null;
|
|
3789
|
+
/** ROM progression: per-rep ROM points (metres), ordered by rep. */
|
|
3790
|
+
romProgression: RepRomPoint[];
|
|
3791
|
+
/**
|
|
3792
|
+
* Planned rep count from the prescription — the ROM chart draws the remainder as dashed
|
|
3793
|
+
* to-do placeholders (the "N of M done" read). Absent/`undefined` when no plan is attached:
|
|
3794
|
+
* there is genuinely no target then, and the gap must read as a gap — never defaulted.
|
|
3795
|
+
*/
|
|
3796
|
+
plannedReps?: number;
|
|
3797
|
+
/** Working-range standard the ROM chart draws its reference line at (metres). `null` until ≥ 3 reps. */
|
|
3798
|
+
romWorkingStandardM: number | null;
|
|
3799
|
+
/** Short-threshold line (metres) = 0.75 × working standard. `null` until the standard exists. */
|
|
3800
|
+
romShortThresholdM: number | null;
|
|
3801
|
+
/** Ghost-spark: per-rep velocity-time curves, oldest first (last = current rep). */
|
|
3802
|
+
velocityCurves: RepVelocityCurve[];
|
|
3803
|
+
/** Current-rep tempo tuple `[ecc, pauseBottom, con, pauseTop]` seconds. `null` when no rep carries timing. */
|
|
3804
|
+
tempoSeconds: [number, number, number, number] | null;
|
|
3805
|
+
/** Target tempo tuple, same ordering, from the prescription. `null` when none prescribed. */
|
|
3806
|
+
targetTempoSeconds: [number, number, number, number] | null;
|
|
3807
|
+
}
|
|
3808
|
+
|
|
3809
|
+
interface LiveFatiguePanelHeader {
|
|
3810
|
+
/** Exercise name — the large title. */
|
|
3811
|
+
title: string;
|
|
3812
|
+
/** Prescription / block line under the title. */
|
|
3813
|
+
subtitle?: string;
|
|
3814
|
+
/** Right-aligned progress meta, e.g. "SET 3 · REP 7 / 8". */
|
|
3815
|
+
meta?: string;
|
|
3816
|
+
}
|
|
3817
|
+
interface LiveFatiguePanelVelocity {
|
|
3818
|
+
/** Per-rep MEAN concentric velocity (m/s), ordered by rep. */
|
|
3819
|
+
velocities: number[];
|
|
3820
|
+
targetReps?: number;
|
|
3821
|
+
liveRepIndex?: number;
|
|
3822
|
+
}
|
|
3823
|
+
interface LiveFatiguePanelProps {
|
|
3824
|
+
/** The live fatigue read-model for the current set. */
|
|
3825
|
+
model: LiveFatigueModel;
|
|
3826
|
+
/** The velocity-hero data (its own source — not on the fatigue model). */
|
|
3827
|
+
velocity: LiveFatiguePanelVelocity;
|
|
3828
|
+
/** Optional lite exercise header. Omitted → no header row. */
|
|
3829
|
+
header?: LiveFatiguePanelHeader;
|
|
3830
|
+
/** Aura-flood category. Defaults to the verdict-derived category. */
|
|
3831
|
+
aura?: LiveAuraCategory;
|
|
3832
|
+
/** Panel body height in px. Default 508. */
|
|
3833
|
+
bodyHeight?: number;
|
|
3834
|
+
/** Fixed fatigue-card column width. Default 318. */
|
|
3835
|
+
cardWidth?: number;
|
|
3836
|
+
}
|
|
3837
|
+
declare function LiveFatiguePanel({ model, velocity, header, aura, bodyHeight, cardWidth, }: LiveFatiguePanelProps): react_jsx_runtime.JSX.Element;
|
|
3838
|
+
|
|
3839
|
+
interface LiveFatigueCardProps {
|
|
3840
|
+
/** The live fatigue read-model for the current set. */
|
|
3841
|
+
model: LiveFatigueModel;
|
|
3842
|
+
/** Card width in px. Default 318. */
|
|
3843
|
+
width?: number;
|
|
3844
|
+
/** Card height in px — when set, the sections spread through the leftover height. */
|
|
3845
|
+
height?: number;
|
|
3846
|
+
}
|
|
3847
|
+
declare function LiveFatigueCard({ model, width, height }: LiveFatigueCardProps): react_jsx_runtime.JSX.Element;
|
|
3848
|
+
|
|
3849
|
+
interface VerdictHeroProps {
|
|
3850
|
+
/** Exact (unrounded) RPE estimate; rounded to the conventional 0.5 for display. `null` = warming up. */
|
|
3851
|
+
rpe: number | null;
|
|
3852
|
+
/** The aggregated verdict + tone. `null` = warming up (renders neutral). */
|
|
3853
|
+
verdict: FatigueVerdict | null;
|
|
3854
|
+
}
|
|
3855
|
+
declare function VerdictHero({ rpe, verdict }: VerdictHeroProps): react_jsx_runtime.JSX.Element;
|
|
3856
|
+
|
|
3857
|
+
interface FatigueLightsProps {
|
|
3858
|
+
/** The three per-dimension tones. `null` = warming up (all neutral). */
|
|
3859
|
+
dimensions: FatigueVerdict['dimensions'] | null;
|
|
3860
|
+
/** Distribute the three lights evenly across the full width (space-between). Default false (left-grouped). */
|
|
3861
|
+
spread?: boolean;
|
|
3862
|
+
}
|
|
3863
|
+
declare function FatigueLights({ dimensions, spread }: FatigueLightsProps): react_jsx_runtime.JSX.Element;
|
|
3864
|
+
|
|
3865
|
+
interface RomProgressionChartProps {
|
|
3866
|
+
/** Per-rep ROM points (metres), ordered by rep. */
|
|
3867
|
+
points: RepRomPoint[];
|
|
3868
|
+
/** Working-range standard (metres) — the silver dashed line. `null` = not yet established. */
|
|
3869
|
+
workingStandardM: number | null;
|
|
3870
|
+
/** Short threshold (metres) — the red dashed line + short-zone. `null` = not yet established. */
|
|
3871
|
+
shortThresholdM: number | null;
|
|
3872
|
+
/** Height of the bar plot in px. Default 44. */
|
|
3873
|
+
barHeight?: number;
|
|
3874
|
+
/** Keep the chart to a legible recent tail. Default 12. */
|
|
3875
|
+
maxReps?: number;
|
|
3876
|
+
/**
|
|
3877
|
+
* Planned rep count. Reps beyond the performed count draw as solid to-do sections — the
|
|
3878
|
+
* velocity strip's "3 of 8 done" read. Ignored when absent or ≤ the performed-rep count.
|
|
3879
|
+
*/
|
|
3880
|
+
plannedReps?: number;
|
|
3881
|
+
}
|
|
3882
|
+
declare function RomProgressionChart({ points, workingStandardM, shortThresholdM, barHeight, maxReps, plannedReps, }: RomProgressionChartProps): react_jsx_runtime.JSX.Element;
|
|
3883
|
+
|
|
3884
|
+
/** The canonical tempo tuple order: `[ecc, pauseBottom, con, pauseTop]`, seconds. */
|
|
3885
|
+
type TempoTuple = [number, number, number, number];
|
|
3886
|
+
|
|
3887
|
+
interface GhostSparkProps {
|
|
3888
|
+
/** Per-rep velocity-time curves, oldest first (last = current rep). */
|
|
3889
|
+
curves: RepVelocityCurve[];
|
|
3890
|
+
width: number;
|
|
3891
|
+
/** Plot height in px. Default 172. */
|
|
3892
|
+
height?: number;
|
|
3893
|
+
/**
|
|
3894
|
+
* Prescribed tempo `[ecc, pauseBottom, con, pauseTop]` seconds — turns on the band's
|
|
3895
|
+
* phase PACING (muted base + earned fill, pacing-toned labels). Omit when nothing was
|
|
3896
|
+
* prescribed: the band then paints flat, which is the honest read.
|
|
3897
|
+
*/
|
|
3898
|
+
targetTempoSeconds?: TempoTuple | null;
|
|
3899
|
+
}
|
|
3900
|
+
declare function GhostSpark({ curves, width, height, targetTempoSeconds, }: GhostSparkProps): react_jsx_runtime.JSX.Element;
|
|
3901
|
+
|
|
3902
|
+
interface DualGhostSparkProps {
|
|
3903
|
+
/** LEFT device per-rep curves, oldest first (last = current rep) — blooms UP. */
|
|
3904
|
+
left: RepVelocityCurve[];
|
|
3905
|
+
/** RIGHT device per-rep curves, oldest first (last = current rep) — blooms DOWN. */
|
|
3906
|
+
right: RepVelocityCurve[];
|
|
3907
|
+
width: number;
|
|
3908
|
+
/** Plot height in px. Default 232. */
|
|
3909
|
+
height?: number;
|
|
3910
|
+
/** Caption above the upper wing. Default `LEFT`. */
|
|
3911
|
+
leftLabel?: string;
|
|
3912
|
+
/** Caption below the lower wing. Default `RIGHT`. */
|
|
3913
|
+
rightLabel?: string;
|
|
3914
|
+
/** Reveal the device captions. Default `true`. */
|
|
3915
|
+
showDeviceLabels?: boolean;
|
|
3916
|
+
/** Prescribed tempo — turns on the shared band's phase pacing. */
|
|
3917
|
+
targetTempoSeconds?: TempoTuple | null;
|
|
3918
|
+
}
|
|
3919
|
+
/**
|
|
3920
|
+
* The SHARED band's phase runs: the two devices' current-rep runs reconciled onto one
|
|
3921
|
+
* timeline. Where both sides are in the same phase the band takes it; where they are in
|
|
3922
|
+
* DIFFERENT phases it reads `idle`, so the band never claims a phase the devices are not
|
|
3923
|
+
* actually sharing. Where only one side has a stream at all (the other lags, or is still
|
|
3924
|
+
* mid-rep), the covered side speaks for the band — a lagging device shouldn't grey out the
|
|
3925
|
+
* phase the other device is genuinely in.
|
|
3926
|
+
*/
|
|
3927
|
+
declare function mergePhaseSegments(a: PhaseSegment[], b: PhaseSegment[]): PhaseSegment[];
|
|
3928
|
+
declare function DualGhostSpark({ left, right, width, height, leftLabel, rightLabel, showDeviceLabels, targetTempoSeconds, }: DualGhostSparkProps): react_jsx_runtime.JSX.Element;
|
|
3929
|
+
|
|
3930
|
+
/** Band height in px. */
|
|
3931
|
+
declare const BAND_H = 16;
|
|
3932
|
+
/** Gap between the band's near edge and a bloom's baseline. */
|
|
3933
|
+
declare const BAND_GAP = 4;
|
|
3934
|
+
interface GhostBandProps {
|
|
3935
|
+
/** The current rep's phase runs, in stream order. */
|
|
3936
|
+
segments: PhaseSegment[];
|
|
3937
|
+
/** Time (ms) → px mapper, owned by the caller. */
|
|
3938
|
+
x: (ms: number) => number;
|
|
3939
|
+
/** The band's top edge, px. */
|
|
3940
|
+
top: number;
|
|
3941
|
+
/** Band height, px. Default {@link BAND_H}. */
|
|
3942
|
+
height?: number;
|
|
3943
|
+
/** Reveal the ECC / HOLD / CON labels inside the band. */
|
|
3944
|
+
showLabels?: boolean;
|
|
3945
|
+
/**
|
|
3946
|
+
* Label colour when there is no pacing tone to apply. Default the primary text token.
|
|
3947
|
+
* Ignored for a run that paces — that label takes {@link pacingTone}.
|
|
3948
|
+
*/
|
|
3949
|
+
labelColor?: string;
|
|
3950
|
+
/**
|
|
3951
|
+
* Prescribed tempo `[ecc, pauseBottom, con, pauseTop]` in seconds. Supplying it turns on
|
|
3952
|
+
* PACING: runs paint muted-base + fill, and labels take the ahead/on-pace/over tone.
|
|
3953
|
+
*
|
|
3954
|
+
* Omit it and the band paints flat at full tone with plain labels — the pre-pacing look,
|
|
3955
|
+
* which is also the honest one when nothing was prescribed to pace against.
|
|
3956
|
+
*/
|
|
3957
|
+
targetTempoSeconds?: TempoTuple | null;
|
|
3958
|
+
/**
|
|
3959
|
+
* These runs are PRESCRIBED, not performed — the set has not started. Every run paints
|
|
3960
|
+
* unfilled at its base tone with a plain label, because nothing has been paced yet.
|
|
3961
|
+
*
|
|
3962
|
+
* Used by the empty state, where the band shows the SHAPE of the rep that was asked for
|
|
3963
|
+
* (from the target tempo) rather than an axis with nothing on it.
|
|
3964
|
+
*/
|
|
3965
|
+
prescribed?: boolean;
|
|
3966
|
+
}
|
|
3967
|
+
/**
|
|
3968
|
+
* The phase-coloured axis band — ONE contiguous strip whose internal boundaries land
|
|
3969
|
+
* exactly on the sparkline's phase transitions.
|
|
3970
|
+
*
|
|
3971
|
+
* Contiguity is structural, not incidental: the band is a single rounded silhouette
|
|
3972
|
+
* (clipped), floored with the idle tone across its whole time extent, and each phase run
|
|
3973
|
+
* paints SQUARE inside that clip, extended to the next run's start. No per-segment inset
|
|
3974
|
+
* and no per-segment rounding — those read as gaps between sections.
|
|
3975
|
+
*/
|
|
3976
|
+
declare function GhostBand({ segments, x, top, height, showLabels, labelColor, targetTempoSeconds, prescribed, }: GhostBandProps): react_jsx_runtime.JSX.Element | null;
|
|
3977
|
+
|
|
3978
|
+
/** A point as `[x_px, magnitude_px]` — magnitude is height off the axis baseline (≥ 0). */
|
|
3979
|
+
type Pt = [number, number];
|
|
3980
|
+
/** Catmull-Rom → cubic-bezier smoothing over absolute `[x, y]` points. */
|
|
3981
|
+
declare function smoothPath(pts: Pt[]): string;
|
|
3982
|
+
interface GhostBloomProps {
|
|
3983
|
+
/** The current rep as `[x_px, magnitude_px]` points (magnitude ≥ 0 off the baseline). */
|
|
3984
|
+
current: Pt[];
|
|
3985
|
+
/** Prior-rep ("ghost") point sets, oldest first, same `[x, magnitude]` shape. */
|
|
3986
|
+
ghosts?: Pt[][];
|
|
3987
|
+
/** The current-line tint — silver→red from {@link ghostLineColor}. */
|
|
3988
|
+
tint: string;
|
|
3989
|
+
/** The axis y (px) the bloom grows from. */
|
|
3990
|
+
baseline: number;
|
|
3991
|
+
/** Grow UP from the baseline (default) or DOWN — the mirrored-dual flip. */
|
|
3992
|
+
orientation?: 'up' | 'down';
|
|
3993
|
+
/** Per-ghost stroke colour by index; default fades the primary text token. */
|
|
3994
|
+
ghostStroke?: (index: number) => string;
|
|
3995
|
+
/** Current-line stroke width, px. Default 3.5. */
|
|
3996
|
+
lineWidth?: number;
|
|
3997
|
+
}
|
|
3998
|
+
/** The ghost fan + the paper-treated tinted current line. Render inside an `<svg>`. */
|
|
3999
|
+
declare function GhostBloom({ current, ghosts, tint, baseline, orientation, ghostStroke, lineWidth, }: GhostBloomProps): react_jsx_runtime.JSX.Element;
|
|
4000
|
+
|
|
4001
|
+
interface VelocityHeroProps {
|
|
4002
|
+
/** Per-rep MEAN concentric velocity (m/s), ordered by rep. */
|
|
4003
|
+
velocities: number[];
|
|
4004
|
+
/** The set's planned rep count — draws dashed placeholder stubs for reps still to come. */
|
|
4005
|
+
targetReps?: number;
|
|
4006
|
+
/** Index of the most-recently-completed rep (the live-rep grow). Defaults to the last performed rep. */
|
|
4007
|
+
liveRepIndex?: number;
|
|
4008
|
+
/** Fixed width (standalone). Omit to flex-fill the column (in the panel). */
|
|
4009
|
+
width?: number;
|
|
4010
|
+
/** Hero plot height in px. Default 300. */
|
|
4011
|
+
height?: number;
|
|
4012
|
+
}
|
|
4013
|
+
declare function VelocityHero({ velocities, targetReps, liveRepIndex, width, height, }: VelocityHeroProps): react_jsx_runtime.JSX.Element;
|
|
4014
|
+
|
|
4015
|
+
/** Per-dimension tone → semantic status colour (the one language the dots + hero share). */
|
|
4016
|
+
declare const TONE_COLOR: Record<DimensionTone, string>;
|
|
4017
|
+
/** Verdict state → the hero word. */
|
|
4018
|
+
declare const STATE_LABEL: Record<FatigueVerdictState, string>;
|
|
4019
|
+
/**
|
|
4020
|
+
* The phase-identity colours for the ghost-spark phase BAND — the TempoDisplay
|
|
4021
|
+
* language: eccentric magenta, concentric cyan, hold and idle in the grey family.
|
|
4022
|
+
*
|
|
4023
|
+
* The idle grey has to read as BAND MATERIAL (a pause the lifter held), not as a
|
|
4024
|
+
* hole in the strip: at grey[300] it sat inside the surface-ramp's own value
|
|
4025
|
+
* range (`surface-raised` #31302F) so a short pause between ECC and CON read as a
|
|
4026
|
+
* gap. grey[200] clears every content plane while staying quieter than the two
|
|
4027
|
+
* saturated phase tones, so the band reads contiguous and the phases still lead.
|
|
4028
|
+
*
|
|
4029
|
+
* `hold` stays GREY rather than taking a hue of its own. It was briefly amber, which
|
|
4030
|
+
* was wrong for a reason worth recording: the phase-pacing tone (`pacingTone`) uses
|
|
4031
|
+
* warning-amber for "ahead of target", so an amber phase hue collides with the semantic
|
|
4032
|
+
* signal painted on top of it. Phase hues are deliberately non-semantic precisely so
|
|
4033
|
+
* pacing can own success/warning/error. Grey also reads more like a hold — a held
|
|
4034
|
+
* position is an absence of movement, not an event.
|
|
4035
|
+
*
|
|
4036
|
+
* Hold and idle are separated by VALUE rather than hue, plus the `HOLD` label and the
|
|
4037
|
+
* fact that a hold PACES (it has a prescribed duration) while idle never fills:
|
|
4038
|
+
* unfilled hold grey[300] — darker than idle
|
|
4039
|
+
* idle grey[200]
|
|
4040
|
+
* filled hold grey[100] — brighter than idle
|
|
4041
|
+
* so a hold reads apart from dead time at any fill level, including the narrow runs
|
|
4042
|
+
* where the label drops out.
|
|
4043
|
+
*/
|
|
4044
|
+
declare const PHASE_AXIS_COLOR: Record<SamplePhase, string>;
|
|
4045
|
+
/** On-track / at-or-above-working. */
|
|
4046
|
+
declare const SILVER: "#D4D1CE";
|
|
4047
|
+
declare const RED_LIGHT: "#F77175";
|
|
4048
|
+
declare const RED_MID: "#D14343";
|
|
4049
|
+
declare const RED_DEEP: "#7E1002";
|
|
4050
|
+
/** Below this grind signature the rep is "controlled" → silver; at/above it goes red. */
|
|
4051
|
+
declare const GRIND_THRESHOLD = 0.35;
|
|
4052
|
+
/** A quiet grey the controlled line dims toward as it drifts (never a colour): a dimmed
|
|
4053
|
+
* cool grey in the SAME neutral family as SILVER, so a fully-drifted line reads dim-silver
|
|
4054
|
+
* rather than sinking toward black. Shared with the ROM chart. */
|
|
4055
|
+
declare const DRIFT_GREY: "#5A5958";
|
|
4056
|
+
/**
|
|
4057
|
+
* The ghost-spark current-line tint from the two control-aware signals — silver/red.
|
|
4058
|
+
*
|
|
4059
|
+
* A CONTROLLED rep (`grindSignature < GRIND_THRESHOLD`) stays SILVER, dimming a touch
|
|
4060
|
+
* toward a quiet grey by `tempoDeviation` — a "drifting but not failing" cue that never
|
|
4061
|
+
* becomes a colour. A COLLAPSING rep (at/above the threshold) goes through SHADES OF RED
|
|
4062
|
+
* by severity: light → mid → deep as the collapse deepens.
|
|
4063
|
+
*/
|
|
4064
|
+
declare function ghostLineColor(tempoDeviation: number | null, grindSignature: number): string;
|
|
4065
|
+
/** Verdict state → the {@link LiveAuraFrame} coaching-flood category. */
|
|
4066
|
+
declare function auraForVerdict(state: FatigueVerdictState | null): 'productive' | 'threshold' | 'stop';
|
|
4067
|
+
|
|
3670
4068
|
interface TreemapDatum {
|
|
3671
4069
|
/** Stable identity — returned by onPress and used as the React key. */
|
|
3672
4070
|
id: string;
|
|
@@ -4189,4 +4587,4 @@ interface PrescriptionInput {
|
|
|
4189
4587
|
*/
|
|
4190
4588
|
declare function formatPrescription(p: PrescriptionInput | null | undefined): string | null;
|
|
4191
4589
|
|
|
4192
|
-
export { Accordion, AccordionButton, type AccordionButtonProps, AccordionItem, type AccordionItemProps, AccordionPanel, type AccordionPanelProps, type AccordionProps, ActivityIcon, Alert, AlertDescription, type AlertDescriptionProps, type AlertProps, type AlertStatus, AlertTitle, type AlertTitleProps, AlertTriangleIcon, type AlertVariant, Autocomplete, type AutocompleteOption, type AutocompleteProps, Avatar, AvatarBadge, type AvatarBadgeProps, AvatarGroup, type AvatarGroupProps, type AvatarProps, type AvatarSize, AwardIcon, Badge, type BadgeColor, type BadgeProps, type BadgeSize, BadgeText, type BadgeTextProps, type BadgeVariant, BaseBadge, type BaseBadgeProps, type BaseBadgeSize, type BaseBadgeVariant, BluetoothIcon, BrandLockup, type BrandLockupProps, BreadcrumbItem, type BreadcrumbItemProps, Breadcrumbs, type BreadcrumbsProps, Button, type ButtonColor, ButtonIcon, type ButtonIconProps, type ButtonProps, type ButtonSize, ButtonSpinner, type ButtonSpinnerProps, ButtonText, type ButtonTextProps, type ButtonVariant, Caption, type CaptionProps, Card, CardContent, type CardContentProps, CardDescription, type CardDescriptionProps, type CardElevation, CardFooter, type CardFooterProps, CardHeader, type CardHeaderProps, type CardProps, CardSkeleton, type CardSkeletonProps, CardTitle, type CardTitleProps, type CardVariant, Checkbox, CheckboxGroup, type CheckboxGroupProps, type CheckboxProps, type CheckboxSize, Chip, type ChipColor, type ChipProps, type ChipSize, type ChipVariant, CircleSlashIcon, CircularProgress, type CircularProgressProps, CircularTimer, type CircularTimerProps, Collapse, CollapseButton, type CollapseButtonProps, CollapseContent, type CollapseContentProps, type CollapseProps, DashboardShell, type DashboardShellProps, DataRow, type DataRowProps, DateTime, type DateTimeFormat, type DateTimeProps, DeviationBar, type DeviationBarProps, type Device, type DeviceConnState, DeviceIndicator, type DeviceIndicatorProps, DeviceMenu, type DeviceMenuProps, DeviceRow, type DeviceRowProps, type DeviceRowState, Divider, type DividerOrientation, type DividerProps, Drawer, DrawerBody, type DrawerBodyProps, DrawerFooter, type DrawerFooterProps, DrawerHeader, type DrawerHeaderProps, type DrawerPlacement, type DrawerProps, type DrawerSize, DumbbellIcon, ElevationLevel, EmptyState, type EmptyStateProps, ExerciseCardHeading, type ExerciseCardHeadingProps, ExerciseHeading, type ExerciseHeadingProps, ExerciseIndicatorKind, FatigueMeter, type FatigueMeterProps, type FieldState, type FieldWrapperProps, FormActions, type FormActionsProps, type FormErrors, FormField, type FormFieldProps, FormRow, type FormRowProps, FormSection, type FormSectionProps, type FormTouched, type FormValues, Gauge, type GaugeProps, type GaugeThreshold, GlowIntensity, HStack, Heading, type HeadingProps, HelpTip, type HelpTipIcon, type HelpTipPlacement, type HelpTipProps, type HelpTipSize, HistoryIcon, IconBox, type IconBoxProps, type IconProps, Indicator, type IndicatorColor, type IndicatorProps, type IndicatorPulse, type IndicatorSize, InfoIcon, Input, InputBar, type InputBarProps, InputGroup, type InputGroupProps, type InputProps, type InputSize, type InputVariant, IntensityBar, type IntensityBarProps, Label, type LabelProps, LabelWithHelp, type LabelWithHelpProps, LayersIcon, Link, type LinkColor, type LinkProps, type LinkUnderline, ListItem, ListItemContent, type ListItemContentProps, ListItemDivider, type ListItemDividerProps, ListItemIcon, type ListItemIconProps, type ListItemProps, ListItemTrailing, type ListItemTrailingProps, type LiveAuraCategory, LiveAuraFrame, type LiveAuraFrameProps, METRIC_FONT, Menu, MenuDivider, type MenuDividerProps, MenuGroup, type MenuGroupProps, MenuItem, type MenuItemProps, MenuList, type MenuListProps, type MenuProps, MenuTrigger, type MenuTriggerProps, Metric, MetricCell, type MetricCellProps, MetricGroup, type MetricGroupProps, type MetricProps, type MetricTileData, MetricTiles, type MetricTilesProps, type MetricTrend, Modal, ModalBody, type ModalBodyProps, ModalCloseButton, type ModalCloseButtonProps, ModalContent, type ModalContentProps, ModalFooter, type ModalFooterProps, ModalHeader, type ModalHeaderProps, type ModalProps, type ModalSize, ModalTitle, type ModalTitleProps, MuscleGroupChip, type MuscleGroupChipProps, NavItem, type NavItemProps, type OnSurfaceRole, Overline, type OverlineProps, type PRType, type PaceTone, Paragraph, type ParagraphProps, PasswordInput, type PasswordInputProps, PersonStandingIcon, Pill, type PillColor, type PillProps, type PillSize, type PillVariant, PlaceholderStrip, type PlaceholderStripProps, Popover, PopoverCloseButton, type PopoverCloseButtonProps, PopoverContent, type PopoverContentProps, type PopoverPlacement, type PopoverProps, PopoverTrigger, type PopoverTriggerProps, PrBadge, type PrBadgeProps, PrHistoryModal, type PrHistoryModalProps, type PrRecord, type PrRecordType, type PrescriptionInput, Progress, type ProgressColor, type ProgressProps, type ProgressSize, ProgressSteps, type ProgressStepsProps, type ProgressVariant, Radio, type RadioColor, RadioGroup, type RadioGroupProps, type RadioProps, type RadioSize, ReadinessCheck, type ReadinessCheckProps, type ReadinessFactor, RestTimer, type RestTimerProps, type ResultType, SURFACE_LEVEL_TOKEN, ScaleIcon, Scatter, type ScatterAxis, type ScatterDatum, type ScatterProps, ScheduleTiles, type ScheduleTilesProps, Section, SectionContent, type SectionContentProps, SectionHeader, type SectionHeaderProps, type SectionProps, SegmentedBar, type SegmentedBarProps, type SegmentedBarSegment, SegmentedProgressBar, type SegmentedProgressBarProps, type SegmentedProgressBarSegment, Select, type SelectOption, type SelectProps, SessionHeader, type SessionHeaderPlanEntry, type SessionHeaderProps, SessionRail, type SessionRailExercise, type SessionRailProps, type SessionState, SessionStatePill, type SessionStatePillProps, SetStrip, type SetStripProps, SetStripSet, SetTableHeader, type SetTableHeaderProps, SetsRepsLoad, type SetsRepsLoadProps, SideNav, type SideNavItem, type SideNavProps, Sidebar, SidebarContent, type SidebarContentProps, SidebarDivider, type SidebarDividerProps, SidebarFooter, type SidebarFooterProps, SidebarHeader, type SidebarHeaderProps, SidebarItem, type SidebarItemProps, type SidebarProps, SidebarSection, type SidebarSectionProps, Skeleton, type SkeletonAnimation, SkeletonCard, type SkeletonCardProps, SkeletonCircle, type SkeletonCircleProps, SkeletonListItem, type SkeletonListItemProps, type SkeletonProps, SkeletonText, type SkeletonTextProps, type SkeletonVariant, type SortDirection, Sparkline, type SparklineProps, Spinner, type SpinnerColor, type SpinnerProps, type SpinnerSize, Stack, type StackProps, StarIcon, StatusDot, type StatusDotProps, type StatusDotVariant, StatusPill, type StatusPillProps, type StatusPillStatus, type StatusType, StepContent, type StepContentProps, StepIndicator, type StepIndicatorProps, StepLabel, type StepLabelProps, type StepStatus, Stepper, type StepperOrientation, type StepperProps, Step as StepperStep, type StepProps as StepperStepProps, SupersetWrapper, type SupersetWrapperProps, Surface, SurfaceContext, type SurfaceContextValue, type SurfaceLevel, type SurfaceProps, SvgIcon, type SvgIconProps, Switch, type SwitchProps, type SwitchSize, Tab, TabList, type TabListProps, TabPanel, type TabPanelProps, TabPanels, type TabPanelsProps, type TabProps, Table, TableBody, type TableBodyProps, TableCell, type TableCellProps, TableHeader, TableHeaderCell, type TableHeaderCellProps, type TableHeaderProps, TablePagination, type TablePaginationProps, type TableProps, TableRow, type TableRowProps, Tabs, type TabsOrientation, type TabsProps, type TabsVariant, TempoDisplay, type TempoDisplayProps, type TempoLivePhase, type TempoLiveReadout, type TempoLiveState, ThemeMode, Tile, type TileProps, type TimerMode, TimerReadout, type TimerReadoutProps, type TimerState, Toast, type ToastConfig, type ToastPosition, type ToastProps, ToastProvider, type ToastProviderProps, type ToastStatus, ToolbarButton, ToolbarButtonGroup, type ToolbarButtonGroupProps, type ToolbarButtonProps, type ToolbarButtonSize, type ToolbarButtonVariant, Tooltip, type TooltipPlacement, type TooltipProps, TopBar, type TopBarProps, Treemap, type TreemapDatum, type TreemapProps, type TreemapScale, TrendingDownIcon, Typography, type TypographyAlign, type TypographyColor, type TypographyProps, type TypographyVariant, type UseTableOptions, type UseTableReturn, type UseTimerOptions, VStack, VoltrasMark, VolumeLandmarkBar, type VolumeLandmarkBarProps, VolumeLandmarks, type VolumeStatus, type VolumeZone, type WarmUpStatus, type WarmUpValidation, WeightBadge, type WeightBadgeProps, type WeightBadgeSize, ZoneTrack, type ZoneTrackBand, type ZoneTrackMarker, type ZoneTrackProps, type ZoneTrackTick, type ZoneTrackZone, alpha, cn, composeValidators, createFieldId, defaultNavItems, formatDateTime, formatDuration, formatPrescription, formatSignedPct, formatVelocity, getContrastText, getFieldAriaProps, getFieldValidationProps, getLuminance, getResultColor, getStatusColor, hasMaxLength, hasMinLength, isEmpty, isValidEmail, liveAuraColor, onSurfaceColors, paceTone, paceToneColor, pressedLevel, roundRpe, roundTempo, roundWeight, rpeColor, statusPillColor, surfaceBackground, useOnSurfaceColor, useSurface, useSurfaceMode, useTable, useTimer, useToast, useToolbarButton, validationRules };
|
|
4590
|
+
export { Accordion, AccordionButton, type AccordionButtonProps, AccordionItem, type AccordionItemProps, AccordionPanel, type AccordionPanelProps, type AccordionProps, ActivityIcon, Alert, AlertDescription, type AlertDescriptionProps, type AlertProps, type AlertStatus, AlertTitle, type AlertTitleProps, AlertTriangleIcon, type AlertVariant, Autocomplete, type AutocompleteOption, type AutocompleteProps, Avatar, AvatarBadge, type AvatarBadgeProps, AvatarGroup, type AvatarGroupProps, type AvatarProps, type AvatarSize, AwardIcon, BAND_GAP, BAND_H, Badge, type BadgeColor, type BadgeProps, type BadgeSize, BadgeText, type BadgeTextProps, type BadgeVariant, BaseBadge, type BaseBadgeProps, type BaseBadgeSize, type BaseBadgeVariant, BluetoothIcon, BrandLockup, type BrandLockupProps, BreadcrumbItem, type BreadcrumbItemProps, Breadcrumbs, type BreadcrumbsProps, Button, type ButtonColor, ButtonIcon, type ButtonIconProps, type ButtonProps, type ButtonSize, ButtonSpinner, type ButtonSpinnerProps, ButtonText, type ButtonTextProps, type ButtonVariant, Caption, type CaptionProps, Card, CardContent, type CardContentProps, CardDescription, type CardDescriptionProps, type CardElevation, CardFooter, type CardFooterProps, CardHeader, type CardHeaderProps, type CardProps, CardSkeleton, type CardSkeletonProps, CardTitle, type CardTitleProps, type CardVariant, Checkbox, CheckboxGroup, type CheckboxGroupProps, type CheckboxProps, type CheckboxSize, Chip, type ChipColor, type ChipProps, type ChipSize, type ChipVariant, CircleSlashIcon, CircularProgress, type CircularProgressProps, CircularTimer, type CircularTimerProps, Collapse, CollapseButton, type CollapseButtonProps, CollapseContent, type CollapseContentProps, type CollapseProps, DRIFT_GREY, DashboardShell, type DashboardShellProps, DataRow, type DataRowProps, DateTime, type DateTimeFormat, type DateTimeProps, DeviationBar, type DeviationBarProps, type Device, type DeviceConnState, DeviceIndicator, type DeviceIndicatorProps, DeviceMenu, type DeviceMenuProps, DeviceRow, type DeviceRowProps, type DeviceRowState, type DimensionTone, Divider, type DividerOrientation, type DividerProps, Drawer, DrawerBody, type DrawerBodyProps, DrawerFooter, type DrawerFooterProps, DrawerHeader, type DrawerHeaderProps, type DrawerPlacement, type DrawerProps, type DrawerSize, DualGhostSpark, type DualGhostSparkProps, DumbbellIcon, ElevationLevel, EmptyState, type EmptyStateProps, ExerciseCardHeading, type ExerciseCardHeadingProps, ExerciseHeading, type ExerciseHeadingProps, ExerciseIndicatorKind, FatigueLights, type FatigueLightsProps, FatigueMeter, type FatigueMeterProps, type FatigueVerdict, type FatigueVerdictState, type FieldState, type FieldWrapperProps, FormActions, type FormActionsProps, type FormErrors, FormField, type FormFieldProps, FormRow, type FormRowProps, FormSection, type FormSectionProps, type FormTouched, type FormValues, GRIND_THRESHOLD, Gauge, type GaugeProps, type GaugeThreshold, GhostBand, type GhostBandProps, GhostBloom, type GhostBloomProps, GhostSpark, type GhostSparkProps, GlowIntensity, HStack, Heading, type HeadingProps, HelpTip, type HelpTipIcon, type HelpTipPlacement, type HelpTipProps, type HelpTipSize, HistoryIcon, IconBox, type IconBoxProps, type IconProps, Indicator, type IndicatorColor, type IndicatorProps, type IndicatorPulse, type IndicatorSize, InfoIcon, Input, InputBar, type InputBarProps, InputGroup, type InputGroupProps, type InputProps, type InputSize, type InputVariant, IntensityBar, type IntensityBarProps, Label, type LabelProps, LabelWithHelp, type LabelWithHelpProps, LayersIcon, Link, type LinkColor, type LinkProps, type LinkUnderline, ListItem, ListItemContent, type ListItemContentProps, ListItemDivider, type ListItemDividerProps, ListItemIcon, type ListItemIconProps, type ListItemProps, ListItemTrailing, type ListItemTrailingProps, type LiveAuraCategory, LiveAuraFrame, type LiveAuraFrameProps, LiveFatigueCard, type LiveFatigueCardProps, type LiveFatigueModel, LiveFatiguePanel, type LiveFatiguePanelHeader, type LiveFatiguePanelProps, type LiveFatiguePanelVelocity, METRIC_FONT, Menu, MenuDivider, type MenuDividerProps, MenuGroup, type MenuGroupProps, MenuItem, type MenuItemProps, MenuList, type MenuListProps, type MenuProps, MenuTrigger, type MenuTriggerProps, Metric, MetricCell, type MetricCellProps, MetricGroup, type MetricGroupProps, type MetricProps, type MetricTileData, MetricTiles, type MetricTilesProps, type MetricTrend, Modal, ModalBody, type ModalBodyProps, ModalCloseButton, type ModalCloseButtonProps, ModalContent, type ModalContentProps, ModalFooter, type ModalFooterProps, ModalHeader, type ModalHeaderProps, type ModalProps, type ModalSize, ModalTitle, type ModalTitleProps, MuscleGroupChip, type MuscleGroupChipProps, NavItem, type NavItemProps, type OnSurfaceRole, Overline, type OverlineProps, PHASE_AXIS_COLOR, type PRType, type PaceTone, Paragraph, type ParagraphProps, PasswordInput, type PasswordInputProps, PersonStandingIcon, type PhaseSegment, Pill, type PillColor, type PillProps, type PillSize, type PillVariant, PlaceholderStrip, type PlaceholderStripProps, Popover, PopoverCloseButton, type PopoverCloseButtonProps, PopoverContent, type PopoverContentProps, type PopoverPlacement, type PopoverProps, PopoverTrigger, type PopoverTriggerProps, PrBadge, type PrBadgeProps, PrHistoryModal, type PrHistoryModalProps, type PrRecord, type PrRecordType, type PrescriptionInput, Progress, type ProgressColor, type ProgressProps, type ProgressSize, ProgressSteps, type ProgressStepsProps, type ProgressVariant, type Pt, RED_DEEP, RED_LIGHT, RED_MID, Radio, type RadioColor, RadioGroup, type RadioGroupProps, type RadioProps, type RadioSize, ReadinessCheck, type ReadinessCheckProps, type ReadinessFactor, type RepRomPoint, type RepVelocityCurve, RestTimer, type RestTimerProps, type ResultType, RomProgressionChart, type RomProgressionChartProps, SILVER, STATE_LABEL, SURFACE_LEVEL_TOKEN, type SamplePhase, ScaleIcon, Scatter, type ScatterAxis, type ScatterDatum, type ScatterProps, ScheduleTiles, type ScheduleTilesProps, Section, SectionContent, type SectionContentProps, SectionHeader, type SectionHeaderProps, type SectionProps, SegmentedBar, type SegmentedBarProps, type SegmentedBarSegment, SegmentedProgressBar, type SegmentedProgressBarProps, type SegmentedProgressBarSegment, Select, type SelectOption, type SelectProps, SessionHeader, type SessionHeaderPlanEntry, type SessionHeaderProps, SessionRail, type SessionRailExercise, type SessionRailProps, type SessionState, SessionStatePill, type SessionStatePillProps, SetRowProps, SetStrip, type SetStripProps, SetStripSet, SetTableHeader, type SetTableHeaderProps, SetsRepsLoad, type SetsRepsLoadProps, SideNav, type SideNavItem, type SideNavProps, Sidebar, SidebarContent, type SidebarContentProps, SidebarDivider, type SidebarDividerProps, SidebarFooter, type SidebarFooterProps, SidebarHeader, type SidebarHeaderProps, SidebarItem, type SidebarItemProps, type SidebarProps, SidebarSection, type SidebarSectionProps, Skeleton, type SkeletonAnimation, SkeletonCard, type SkeletonCardProps, SkeletonCircle, type SkeletonCircleProps, SkeletonListItem, type SkeletonListItemProps, type SkeletonProps, SkeletonText, type SkeletonTextProps, type SkeletonVariant, type SortDirection, Sparkline, type SparklineProps, Spinner, type SpinnerColor, type SpinnerProps, type SpinnerSize, Stack, type StackProps, StarIcon, StatusDot, type StatusDotProps, type StatusDotVariant, StatusPill, type StatusPillProps, type StatusPillStatus, type StatusType, StepContent, type StepContentProps, StepIndicator, type StepIndicatorProps, StepLabel, type StepLabelProps, type StepStatus, Stepper, type StepperOrientation, type StepperProps, Step as StepperStep, type StepProps as StepperStepProps, SupersetWrapper, type SupersetWrapperProps, Surface, SurfaceContext, type SurfaceContextValue, type SurfaceLevel, type SurfaceProps, SvgIcon, type SvgIconProps, Switch, type SwitchProps, type SwitchSize, TONE_COLOR, Tab, TabList, type TabListProps, TabPanel, type TabPanelProps, TabPanels, type TabPanelsProps, type TabProps, Table, TableBody, type TableBodyProps, TableCell, type TableCellProps, TableHeader, TableHeaderCell, type TableHeaderCellProps, type TableHeaderProps, TablePagination, type TablePaginationProps, type TableProps, TableRow, type TableRowProps, Tabs, type TabsOrientation, type TabsProps, type TabsVariant, TempoDisplay, type TempoDisplayProps, type TempoLivePhase, type TempoLiveReadout, type TempoLiveState, ThemeMode, Tile, type TileProps, type TimerMode, TimerReadout, type TimerReadoutProps, type TimerState, Toast, type ToastConfig, type ToastPosition, type ToastProps, ToastProvider, type ToastProviderProps, type ToastStatus, ToolbarButton, ToolbarButtonGroup, type ToolbarButtonGroupProps, type ToolbarButtonProps, type ToolbarButtonSize, type ToolbarButtonVariant, Tooltip, type TooltipPlacement, type TooltipProps, TopBar, type TopBarProps, Treemap, type TreemapDatum, type TreemapProps, type TreemapScale, TrendingDownIcon, Typography, type TypographyAlign, type TypographyColor, type TypographyProps, type TypographyVariant, type UseTableOptions, type UseTableReturn, type UseTimerOptions, VStack, VelocityHero, type VelocityHeroProps, type VelocitySample, VerdictHero, type VerdictHeroProps, VoltrasMark, VolumeLandmarkBar, type VolumeLandmarkBarProps, VolumeLandmarks, type VolumeStatus, type VolumeZone, type WarmUpStatus, type WarmUpValidation, WeightBadge, type WeightBadgeProps, type WeightBadgeSize, ZoneTrack, type ZoneTrackBand, type ZoneTrackMarker, type ZoneTrackProps, type ZoneTrackTick, type ZoneTrackZone, alpha, auraForVerdict, cn, composeValidators, createFieldId, defaultNavItems, formatDateTime, formatDuration, formatPrescription, formatSignedPct, formatVelocity, getContrastText, getFieldAriaProps, getFieldValidationProps, getLuminance, getResultColor, getStatusColor, ghostLineColor, hasMaxLength, hasMinLength, isEmpty, isValidEmail, liveAuraColor, mergePhaseSegments, onSurfaceColors, paceTone, paceToneColor, pressedLevel, roundRpe, roundTempo, roundWeight, rpeColor, smoothPath, statusPillColor, surfaceBackground, useOnSurfaceColor, useSurface, useSurfaceMode, useTable, useTimer, useToast, useToolbarButton, validationRules };
|