@titan-design/react-ui 0.10.0 → 0.11.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.
Files changed (84) hide show
  1. package/dist/index.d.mts +399 -4
  2. package/dist/index.d.ts +399 -4
  3. package/dist/index.js +2295 -895
  4. package/dist/index.js.map +1 -1
  5. package/dist/index.mjs +2279 -905
  6. package/dist/index.mjs.map +1 -1
  7. package/dist/{pages-DyEx-lBf.d.ts → pages-B1hqnGIC.d.ts} +149 -15
  8. package/dist/{pages-D7hOD4Vj.d.mts → pages-CvsFqNtx.d.mts} +149 -15
  9. package/dist/pages.d.mts +1 -1
  10. package/dist/pages.d.ts +1 -1
  11. package/dist/pages.js +1974 -1740
  12. package/dist/pages.js.map +1 -1
  13. package/dist/pages.mjs +1975 -1741
  14. package/dist/pages.mjs.map +1 -1
  15. package/package.json +8 -3
  16. package/src/components/custom/Fatigue/DualGhostSpark.stories.tsx +258 -0
  17. package/src/components/custom/Fatigue/DualGhostSpark.test.tsx +138 -0
  18. package/src/components/custom/Fatigue/DualGhostSpark.tsx +208 -0
  19. package/src/components/custom/Fatigue/FatigueLights.stories.tsx +74 -0
  20. package/src/components/custom/Fatigue/FatigueLights.test.tsx +33 -0
  21. package/src/components/custom/Fatigue/FatigueLights.tsx +83 -0
  22. package/src/components/custom/Fatigue/GhostBand.test.tsx +235 -0
  23. package/src/components/custom/Fatigue/GhostBand.tsx +246 -0
  24. package/src/components/custom/Fatigue/GhostBloom.tsx +132 -0
  25. package/src/components/custom/Fatigue/GhostSpark.stories.tsx +175 -0
  26. package/src/components/custom/Fatigue/GhostSpark.test.tsx +45 -0
  27. package/src/components/custom/Fatigue/GhostSpark.tsx +126 -0
  28. package/src/components/custom/Fatigue/LiveFatigueCard.stories.tsx +126 -0
  29. package/src/components/custom/Fatigue/LiveFatigueCard.test.tsx +28 -0
  30. package/src/components/custom/Fatigue/LiveFatigueCard.tsx +86 -0
  31. package/src/components/custom/Fatigue/LiveFatiguePanel.stories.tsx +95 -0
  32. package/src/components/custom/Fatigue/LiveFatiguePanel.tsx +151 -0
  33. package/src/components/custom/Fatigue/README.md +93 -0
  34. package/src/components/custom/Fatigue/RomProgressionChart.stories.tsx +94 -0
  35. package/src/components/custom/Fatigue/RomProgressionChart.test.tsx +31 -0
  36. package/src/components/custom/Fatigue/RomProgressionChart.tsx +132 -0
  37. package/src/components/custom/Fatigue/SilverRedPalette.stories.tsx +226 -0
  38. package/src/components/custom/Fatigue/VelocityHero.stories.tsx +70 -0
  39. package/src/components/custom/Fatigue/VelocityHero.test.tsx +26 -0
  40. package/src/components/custom/Fatigue/VelocityHero.tsx +46 -0
  41. package/src/components/custom/Fatigue/VerdictHero.stories.tsx +59 -0
  42. package/src/components/custom/Fatigue/VerdictHero.test.tsx +49 -0
  43. package/src/components/custom/Fatigue/VerdictHero.tsx +79 -0
  44. package/src/components/custom/Fatigue/fatigue-mock.test.ts +59 -0
  45. package/src/components/custom/Fatigue/fatigue-mock.ts +268 -0
  46. package/src/components/custom/Fatigue/fatigue-model.ts +129 -0
  47. package/src/components/custom/Fatigue/fatigue-tokens.test.ts +70 -0
  48. package/src/components/custom/Fatigue/fatigue-tokens.ts +180 -0
  49. package/src/components/custom/Fatigue/index.ts +41 -0
  50. package/src/components/custom/Fatigue/tempo-pacing.test.ts +176 -0
  51. package/src/components/custom/Fatigue/tempo-pacing.ts +112 -0
  52. package/src/components/custom/Workout/DualVelocityStrip.test.tsx +685 -0
  53. package/src/components/custom/Workout/ExerciseCard.test.tsx +4 -4
  54. package/src/components/custom/Workout/ExerciseCard.tsx +3 -1
  55. package/src/components/custom/Workout/ExerciseDetailPage.tsx +7 -1
  56. package/src/components/custom/Workout/README.md +62 -16
  57. package/src/components/custom/Workout/SegmentedBar.stories.tsx +3 -3
  58. package/src/components/custom/Workout/SessionRail.test.tsx +43 -0
  59. package/src/components/custom/Workout/SessionRail.tsx +50 -13
  60. package/src/components/custom/Workout/SetRow.test.tsx +6 -6
  61. package/src/components/custom/Workout/SetRow.tsx +9 -2
  62. package/src/components/custom/Workout/VelocityStrip.compact.stories.tsx +191 -0
  63. package/src/components/custom/Workout/VelocityStrip.dual.stories.tsx +186 -0
  64. package/src/components/custom/Workout/VelocityStrip.expanded.stories.tsx +296 -0
  65. package/src/components/custom/Workout/VelocityStrip.hero.stories.tsx +259 -0
  66. package/src/components/custom/Workout/VelocityStrip.stories.tsx +217 -250
  67. package/src/components/custom/Workout/VelocityStrip.test.tsx +196 -79
  68. package/src/components/custom/Workout/VelocityStrip.tsx +953 -609
  69. package/src/components/custom/Workout/index.ts +3 -0
  70. package/src/components/custom/Workout/velocity-story-kit.tsx +438 -0
  71. package/src/components/custom/charts/SetBarChart.test.tsx +275 -0
  72. package/src/components/custom/charts/SetBarChart.tsx +651 -0
  73. package/src/components/custom/charts/live-rep-growth.ts +91 -0
  74. package/src/components/custom/index.ts +1 -0
  75. package/src/test/raw-color-patterns.test.ts +71 -0
  76. package/src/theme/ColorPalettes.stories.tsx +871 -0
  77. package/src/theme/ColorPrimitives.stories.tsx +300 -0
  78. package/src/theme/bar-paper.ts +59 -0
  79. package/src/theme/color-stories.coverage.test.ts +130 -0
  80. package/src/theme/color-story-kit.tsx +170 -0
  81. package/src/components/custom/Workout/VelocityStrip.modalities.stories.tsx +0 -254
  82. package/src/components/custom/Workout/VelocityStrip.responsive.stories.tsx +0 -145
  83. package/src/theme/ColorSystem.stories.tsx +0 -508
  84. package/src/theme/Colors.stories.tsx +0 -323
package/dist/index.d.mts CHANGED
@@ -4,8 +4,8 @@ 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
6
  export { CATEGORICAL_CVD_SAFE_MAX, CategoricalVariant, ComponentType, CssPropertyEntry, CssPropertyManifest, ElevationConfig, GradientStyle, ManifestValidationResult, PRESSED_ELEVATION_LEVEL, ShadowIntensity, ShadowSurface, ThemeConfig, ThemePreset, ThemePresetColors, ThemePresetFonts, ThemePresetRadii, ThemePresetShadows, ThemeProviderMode, ThemeProviderProps, VariantAxes, VariantOverride, applyThemePreset, audiobookPreset, backgroundFrameDark, bestTextColor, buttonSizes, categoricalPalette, componentElevationRanges, createFlatShadow, createPressedHoverShadow, createPressedShadow, createRaisedHoverShadow, createRaisedShadow, darkThemeCSSVars, darken, defaultPreset, discreteRainbow, divergingScale, elevationSystem, getBaseSurfaceColor, getCategoricalColor, getDiscreteRainbowColor, getElevationConfig, getElevationShadow, getElevationSurface, getGlowShadow, getHoverColors, getPressedRecessShadow, getSemanticColors, getThemeCSSVars, getValidatedElevation, gluestackConfig, hexToRgb, hsvToRgb, isCssPropertyManifest, isDark, lightThemeCSSVars, lighten, linearGradient, neumorphicShadows, primitiveBorderRadius, primitiveBreakpoints, primitiveColors, primitiveRamps, primitiveShadows, primitiveSpacing, primitiveTypography, primitiveZIndex, resolveColor, rgbToHex, rgbToHsv, semanticColorsDark, semanticColorsLight, semanticTypography, sequentialEffort, shadowColors, surfaceGradient, surfaceRampDark, validateCssPropertyManifest } from './theme/index.mjs';
7
- import { S as SetStripSet, E as ExerciseIndicatorKind } from './pages-D7hOD4Vj.mjs';
8
- export { A as ActiveExerciseStatus, a as ActiveWorkoutExercise, b as ActiveWorkoutInput, c as ActiveWorkoutPageProps, d as ActiveWorkoutRest, e as ActiveWorkoutSuperset, C as CapacityBandChart, f as CapacityBandChartProps, g as CapacityBandDataPoint, h as CapacityBandProjection, i as ExerciseCard, j as ExerciseCardProps, k as ExerciseDetailEntry, l as ExerciseDetailHeader, m as ExerciseDetailPageProps, n as ExerciseDetailStats, o as ExerciseDetailTab, p as ExerciseIndicator, q as ExerciseIndicatorProps, r as ExerciseTrend, s as ExerciseVbt, t as ExerciseVbtSet, I as INDICATOR_PRECEDENCE, M as Meso, u as MesoCard, v as MesoCardProps, w as MesoProgressBar, x as MesoProgressBarProps, y as MesoStatus, z as MesoVolumeHeatmapEntry, P as PlanMeso, B as PlanWeek, D as PlanWorkout, F as ProgramBreadcrumb, G as ProgramNavLevel, H as ProgramPlanningPageProps, J as ProgramSelection, K as SET_STRIP_VARIABLE_COLOR, L as SET_STRIP_ZONES, N as SetBar, O as SetBarProps, Q as SetRow, R as SetRowProps, T as SetRowState, U as SetRowUnit, V as StrengthTrendChart, W as StrengthTrendChartMesoBoundary, X as StrengthTrendChartProps, Y as StrengthTrendDataPoint, Z as VbtSummary, _ as VelocitySet, $ as VelocityStrip, a0 as VelocityStripProps, a1 as VelocityZoneBandProp, a2 as WeekRow, a3 as WeekRowProps, a4 as WeekRowWorkout, a5 as WorkoutCard, a6 as WorkoutCardProps, a7 as WorkoutDot, a8 as WorkoutDotStatus, a9 as WorkoutGroup, aa as WorkoutMuscleGroup, ab as WorkoutMuscleVolumeStatus, ac as WorkoutPill, ad as WorkoutPillProps, ae as WorkoutPillStatus, af as WorkoutProgress, ag as WorkoutStatus, ah as calculateMeanVelocity, ai as calculateVelocityLoss, aj as getVelocityZoneColor, ak as getVelocityZoneName, al as resolveIndicator, am as velocityZoneColor } from './pages-D7hOD4Vj.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';
@@ -3325,6 +3325,12 @@ interface SessionRailExercise {
3325
3325
  setStates: SetStripSet[];
3326
3326
  /** Dim the row as a not-yet-reached exercise. */
3327
3327
  upcoming?: boolean;
3328
+ /**
3329
+ * Per-set rows for the expanded body. Only read when this row is the one named
3330
+ * by `expandedIndex` — a rail row without them can never expand, which is the
3331
+ * correct behaviour for an exercise whose sets aren't loaded.
3332
+ */
3333
+ sets?: SetRowProps[];
3328
3334
  }
3329
3335
  interface SessionRailProps extends ViewProps {
3330
3336
  /** Session title — the live session's name, or the next session's name when `next` is set. */
@@ -3346,6 +3352,16 @@ interface SessionRailProps extends ViewProps {
3346
3352
  stripHeight?: number;
3347
3353
  /** Rail width in px. Default 246. */
3348
3354
  width?: number;
3355
+ /**
3356
+ * Index of the exercise to render EXPANDED in place — its set table opens
3357
+ * inside the rail rather than in a separate pane. The row still draws the same
3358
+ * `ExerciseCardHeading` (an `ExerciseCard` composes one), so an expanded row
3359
+ * differs from a collapsed one only by the revealed body.
3360
+ *
3361
+ * Ignored when the named exercise has no `sets`. Omit for an all-collapsed
3362
+ * rail, which is the prior behaviour.
3363
+ */
3364
+ expandedIndex?: number;
3349
3365
  onExercisePress?: (exercise: SessionRailExercise, index: number) => void;
3350
3366
  className?: string;
3351
3367
  }
@@ -3355,7 +3371,7 @@ interface SessionRailProps extends ViewProps {
3355
3371
  * exercise headings. The header's plan (chunk widths ∝ sets) is derived from `exercises`.
3356
3372
  * Presentational — driven entirely by props.
3357
3373
  */
3358
- declare function SessionRail({ title, exercises, setsDone, elapsedMs, budgetMs, running, metrics, next, stripHeight, width, onExercisePress, className, style, ...props }: SessionRailProps): react_jsx_runtime.JSX.Element;
3374
+ 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
3375
 
3360
3376
  interface SupersetWrapperProps {
3361
3377
  label?: string;
@@ -3667,6 +3683,385 @@ declare function liveAuraColor(category: LiveAuraCategory): string | null;
3667
3683
  */
3668
3684
  declare function LiveAuraFrame({ category, pulse, className, children, style, ...props }: LiveAuraFrameProps): react_jsx_runtime.JSX.Element;
3669
3685
 
3686
+ /**
3687
+ * The live-fatigue data contract — a titan-local mirror of voltras-mcp's
3688
+ * `LiveFatigueModel` (`src/dashboard/spa/live-page/fatigue-model.ts`). The card
3689
+ * family consumes ONE typed `LiveFatigueModel` prop; the diverging/velocity hero
3690
+ * beside it takes its own per-rep velocity array (that data is NOT on this model —
3691
+ * it comes from the live-view velocity path).
3692
+ *
3693
+ * Units: every velocity is m/s and every distance is metres (converted from WA's
3694
+ * native mm/s & mm at the mapper boundary). Tone/state vocabularies mirror WA's
3695
+ * `DimensionTone` / `FatigueVerdictState` one-for-one so the real WA verdict drops
3696
+ * straight in.
3697
+ */
3698
+ /** Per-dimension status light. Mirrors WA's `DimensionTone`. */
3699
+ type DimensionTone = 'ok' | 'warn' | 'alarm';
3700
+ /** Aggregated verdict state (drives the hero word). Mirrors WA's `FatigueVerdictState`. */
3701
+ type FatigueVerdictState = 'good' | 'slowing' | 'grinding' | 'form-breakdown';
3702
+ /**
3703
+ * Movement phase of one per-sample point — colours the ghost-spark zero-axis.
3704
+ *
3705
+ * `hold` is a DELIBERATE pause under load (WA's `MovementPhase.HOLD`) — the bottom/top
3706
+ * holds a tempo prescription asks for. `idle` is undirected dead time. They were folded
3707
+ * together until the band needed to name a hold; keep them apart, because "the lifter held
3708
+ * the bottom for 400 ms" and "nothing happened" are different facts.
3709
+ */
3710
+ type SamplePhase = 'concentric' | 'eccentric' | 'hold' | 'idle';
3711
+ /** One per-sample point of a rep's velocity-time curve. */
3712
+ interface VelocitySample {
3713
+ /** Milliseconds since this rep's first sample. */
3714
+ tMs: number;
3715
+ /** Instantaneous velocity MAGNITUDE, m/s (the ghost-spark signs it by `phase`). */
3716
+ velocityMps: number;
3717
+ /** Movement phase at this sample — drives the phase-coloured zero-axis segment. */
3718
+ phase: SamplePhase;
3719
+ }
3720
+ /** A contiguous same-phase run within a rep's sample stream — one zero-axis segment. */
3721
+ interface PhaseSegment {
3722
+ phase: SamplePhase;
3723
+ /** Start offset, ms since the rep's first sample. */
3724
+ startMs: number;
3725
+ /** End offset, ms since the rep's first sample. */
3726
+ endMs: number;
3727
+ }
3728
+ /**
3729
+ * One rep's velocity-time curve for the ghost-spark (current rep solid, priors faded).
3730
+ *
3731
+ * The line tint is driven by TWO normalized per-rep signals (the "green-intensity
3732
+ * control-aware" rule; the mapping lives in {@link ghostLineColor}):
3733
+ * `grindSignature < 0.35` → stay green, intensity by `tempoDeviation` (brightest at
3734
+ * 0 → deepest green at 1, hue held); otherwise → warm hue amber (at 0.35) → red (at
3735
+ * 1.0) by `grindSignature`. A slow-but-smooth rep stays green (just deeper); only a
3736
+ * stalling/collapsing rep warms.
3737
+ */
3738
+ interface RepVelocityCurve {
3739
+ /** 1-based rep number. */
3740
+ repNumber: number;
3741
+ /** Per-sample velocity-time points, in stream order. */
3742
+ samples: VelocitySample[];
3743
+ /** Contiguous phase runs, for the phase-coloured zero-axis. */
3744
+ phaseSegments: PhaseSegment[];
3745
+ /**
3746
+ * Normalized concentric-duration deviation from the prescribed tempo, 0..1 (0 =
3747
+ * on-tempo, 1 = well off). Drives GREEN INTENSITY when the rep is controlled.
3748
+ * `null` when there is no prescribed tempo to compare against.
3749
+ */
3750
+ tempoDeviation: number | null;
3751
+ /**
3752
+ * Normalized velocity COLLAPSE within the concentric, 0..1 (0 = smooth, 1 = full
3753
+ * collapse). Warms the line hue amber→red past the control threshold. Always
3754
+ * computed per rep; a rep with too few concentric samples reads `0`.
3755
+ */
3756
+ grindSignature: number;
3757
+ }
3758
+ /** One per-rep point of the ROM-progression mini-chart. */
3759
+ interface RepRomPoint {
3760
+ /** 1-based rep number. */
3761
+ repNumber: number;
3762
+ /** Concentric range of motion, metres. */
3763
+ romM: number;
3764
+ }
3765
+ /** The aggregated verdict + the three per-dimension lights (WA `getSetFatigueVerdict`). */
3766
+ interface FatigueVerdict {
3767
+ state: FatigueVerdictState;
3768
+ tone: DimensionTone;
3769
+ dimensions: {
3770
+ velocityLoss: DimensionTone;
3771
+ rom: DimensionTone;
3772
+ tempo: DimensionTone;
3773
+ };
3774
+ }
3775
+ /**
3776
+ * The always-on live fatigue card model for the current set. A `null` `verdict`
3777
+ * means the set is warming up (cold start, < 2 reps) — the card renders neutral.
3778
+ */
3779
+ interface LiveFatigueModel {
3780
+ /** Estimated RPE (exact, unrounded — the card rounds to 0.5). `null` under 2 reps. */
3781
+ rpe: number | null;
3782
+ /** 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. */
3783
+ repsInReserve: number | null;
3784
+ /** The verdict + three dimension lights. `null` = warming up. */
3785
+ verdict: FatigueVerdict | null;
3786
+ /** ROM progression: per-rep ROM points (metres), ordered by rep. */
3787
+ romProgression: RepRomPoint[];
3788
+ /**
3789
+ * Planned rep count from the prescription — the ROM chart draws the remainder as dashed
3790
+ * to-do placeholders (the "N of M done" read). Absent/`undefined` when no plan is attached:
3791
+ * there is genuinely no target then, and the gap must read as a gap — never defaulted.
3792
+ */
3793
+ plannedReps?: number;
3794
+ /** Working-range standard the ROM chart draws its reference line at (metres). `null` until ≥ 3 reps. */
3795
+ romWorkingStandardM: number | null;
3796
+ /** Short-threshold line (metres) = 0.75 × working standard. `null` until the standard exists. */
3797
+ romShortThresholdM: number | null;
3798
+ /** Ghost-spark: per-rep velocity-time curves, oldest first (last = current rep). */
3799
+ velocityCurves: RepVelocityCurve[];
3800
+ /** Current-rep tempo tuple `[ecc, pauseBottom, con, pauseTop]` seconds. `null` when no rep carries timing. */
3801
+ tempoSeconds: [number, number, number, number] | null;
3802
+ /** Target tempo tuple, same ordering, from the prescription. `null` when none prescribed. */
3803
+ targetTempoSeconds: [number, number, number, number] | null;
3804
+ }
3805
+
3806
+ interface LiveFatiguePanelHeader {
3807
+ /** Exercise name — the large title. */
3808
+ title: string;
3809
+ /** Prescription / block line under the title. */
3810
+ subtitle?: string;
3811
+ /** Right-aligned progress meta, e.g. "SET 3 · REP 7 / 8". */
3812
+ meta?: string;
3813
+ }
3814
+ interface LiveFatiguePanelVelocity {
3815
+ /** Per-rep MEAN concentric velocity (m/s), ordered by rep. */
3816
+ velocities: number[];
3817
+ targetReps?: number;
3818
+ liveRepIndex?: number;
3819
+ }
3820
+ interface LiveFatiguePanelProps {
3821
+ /** The live fatigue read-model for the current set. */
3822
+ model: LiveFatigueModel;
3823
+ /** The velocity-hero data (its own source — not on the fatigue model). */
3824
+ velocity: LiveFatiguePanelVelocity;
3825
+ /** Optional lite exercise header. Omitted → no header row. */
3826
+ header?: LiveFatiguePanelHeader;
3827
+ /** Aura-flood category. Defaults to the verdict-derived category. */
3828
+ aura?: LiveAuraCategory;
3829
+ /** Panel body height in px. Default 508. */
3830
+ bodyHeight?: number;
3831
+ /** Fixed fatigue-card column width. Default 318. */
3832
+ cardWidth?: number;
3833
+ }
3834
+ declare function LiveFatiguePanel({ model, velocity, header, aura, bodyHeight, cardWidth, }: LiveFatiguePanelProps): react_jsx_runtime.JSX.Element;
3835
+
3836
+ interface LiveFatigueCardProps {
3837
+ /** The live fatigue read-model for the current set. */
3838
+ model: LiveFatigueModel;
3839
+ /** Card width in px. Default 318. */
3840
+ width?: number;
3841
+ /** Card height in px — when set, the sections spread through the leftover height. */
3842
+ height?: number;
3843
+ }
3844
+ declare function LiveFatigueCard({ model, width, height }: LiveFatigueCardProps): react_jsx_runtime.JSX.Element;
3845
+
3846
+ interface VerdictHeroProps {
3847
+ /** Exact (unrounded) RPE estimate; rounded to the conventional 0.5 for display. `null` = warming up. */
3848
+ rpe: number | null;
3849
+ /** The aggregated verdict + tone. `null` = warming up (renders neutral). */
3850
+ verdict: FatigueVerdict | null;
3851
+ }
3852
+ declare function VerdictHero({ rpe, verdict }: VerdictHeroProps): react_jsx_runtime.JSX.Element;
3853
+
3854
+ interface FatigueLightsProps {
3855
+ /** The three per-dimension tones. `null` = warming up (all neutral). */
3856
+ dimensions: FatigueVerdict['dimensions'] | null;
3857
+ /** Distribute the three lights evenly across the full width (space-between). Default false (left-grouped). */
3858
+ spread?: boolean;
3859
+ }
3860
+ declare function FatigueLights({ dimensions, spread }: FatigueLightsProps): react_jsx_runtime.JSX.Element;
3861
+
3862
+ interface RomProgressionChartProps {
3863
+ /** Per-rep ROM points (metres), ordered by rep. */
3864
+ points: RepRomPoint[];
3865
+ /** Working-range standard (metres) — the silver dashed line. `null` = not yet established. */
3866
+ workingStandardM: number | null;
3867
+ /** Short threshold (metres) — the red dashed line + short-zone. `null` = not yet established. */
3868
+ shortThresholdM: number | null;
3869
+ /** Height of the bar plot in px. Default 44. */
3870
+ barHeight?: number;
3871
+ /** Keep the chart to a legible recent tail. Default 12. */
3872
+ maxReps?: number;
3873
+ /**
3874
+ * Planned rep count. Reps beyond the performed count draw as solid to-do sections — the
3875
+ * velocity strip's "3 of 8 done" read. Ignored when absent or ≤ the performed-rep count.
3876
+ */
3877
+ plannedReps?: number;
3878
+ }
3879
+ declare function RomProgressionChart({ points, workingStandardM, shortThresholdM, barHeight, maxReps, plannedReps, }: RomProgressionChartProps): react_jsx_runtime.JSX.Element;
3880
+
3881
+ /** The canonical tempo tuple order: `[ecc, pauseBottom, con, pauseTop]`, seconds. */
3882
+ type TempoTuple = [number, number, number, number];
3883
+
3884
+ interface GhostSparkProps {
3885
+ /** Per-rep velocity-time curves, oldest first (last = current rep). */
3886
+ curves: RepVelocityCurve[];
3887
+ width: number;
3888
+ /** Plot height in px. Default 172. */
3889
+ height?: number;
3890
+ /**
3891
+ * Prescribed tempo `[ecc, pauseBottom, con, pauseTop]` seconds — turns on the band's
3892
+ * phase PACING (muted base + earned fill, pacing-toned labels). Omit when nothing was
3893
+ * prescribed: the band then paints flat, which is the honest read.
3894
+ */
3895
+ targetTempoSeconds?: TempoTuple | null;
3896
+ }
3897
+ declare function GhostSpark({ curves, width, height, targetTempoSeconds, }: GhostSparkProps): react_jsx_runtime.JSX.Element;
3898
+
3899
+ interface DualGhostSparkProps {
3900
+ /** LEFT device per-rep curves, oldest first (last = current rep) — blooms UP. */
3901
+ left: RepVelocityCurve[];
3902
+ /** RIGHT device per-rep curves, oldest first (last = current rep) — blooms DOWN. */
3903
+ right: RepVelocityCurve[];
3904
+ width: number;
3905
+ /** Plot height in px. Default 232. */
3906
+ height?: number;
3907
+ /** Caption above the upper wing. Default `LEFT`. */
3908
+ leftLabel?: string;
3909
+ /** Caption below the lower wing. Default `RIGHT`. */
3910
+ rightLabel?: string;
3911
+ /** Reveal the device captions. Default `true`. */
3912
+ showDeviceLabels?: boolean;
3913
+ /** Prescribed tempo — turns on the shared band's phase pacing. */
3914
+ targetTempoSeconds?: TempoTuple | null;
3915
+ }
3916
+ /**
3917
+ * The SHARED band's phase runs: the two devices' current-rep runs reconciled onto one
3918
+ * timeline. Where both sides are in the same phase the band takes it; where they are in
3919
+ * DIFFERENT phases it reads `idle`, so the band never claims a phase the devices are not
3920
+ * actually sharing. Where only one side has a stream at all (the other lags, or is still
3921
+ * mid-rep), the covered side speaks for the band — a lagging device shouldn't grey out the
3922
+ * phase the other device is genuinely in.
3923
+ */
3924
+ declare function mergePhaseSegments(a: PhaseSegment[], b: PhaseSegment[]): PhaseSegment[];
3925
+ declare function DualGhostSpark({ left, right, width, height, leftLabel, rightLabel, showDeviceLabels, targetTempoSeconds, }: DualGhostSparkProps): react_jsx_runtime.JSX.Element;
3926
+
3927
+ /** Band height in px. */
3928
+ declare const BAND_H = 16;
3929
+ /** Gap between the band's near edge and a bloom's baseline. */
3930
+ declare const BAND_GAP = 4;
3931
+ interface GhostBandProps {
3932
+ /** The current rep's phase runs, in stream order. */
3933
+ segments: PhaseSegment[];
3934
+ /** Time (ms) → px mapper, owned by the caller. */
3935
+ x: (ms: number) => number;
3936
+ /** The band's top edge, px. */
3937
+ top: number;
3938
+ /** Band height, px. Default {@link BAND_H}. */
3939
+ height?: number;
3940
+ /** Reveal the ECC / HOLD / CON labels inside the band. */
3941
+ showLabels?: boolean;
3942
+ /**
3943
+ * Label colour when there is no pacing tone to apply. Default the primary text token.
3944
+ * Ignored for a run that paces — that label takes {@link pacingTone}.
3945
+ */
3946
+ labelColor?: string;
3947
+ /**
3948
+ * Prescribed tempo `[ecc, pauseBottom, con, pauseTop]` in seconds. Supplying it turns on
3949
+ * PACING: runs paint muted-base + fill, and labels take the ahead/on-pace/over tone.
3950
+ *
3951
+ * Omit it and the band paints flat at full tone with plain labels — the pre-pacing look,
3952
+ * which is also the honest one when nothing was prescribed to pace against.
3953
+ */
3954
+ targetTempoSeconds?: TempoTuple | null;
3955
+ /**
3956
+ * These runs are PRESCRIBED, not performed — the set has not started. Every run paints
3957
+ * unfilled at its base tone with a plain label, because nothing has been paced yet.
3958
+ *
3959
+ * Used by the empty state, where the band shows the SHAPE of the rep that was asked for
3960
+ * (from the target tempo) rather than an axis with nothing on it.
3961
+ */
3962
+ prescribed?: boolean;
3963
+ }
3964
+ /**
3965
+ * The phase-coloured axis band — ONE contiguous strip whose internal boundaries land
3966
+ * exactly on the sparkline's phase transitions.
3967
+ *
3968
+ * Contiguity is structural, not incidental: the band is a single rounded silhouette
3969
+ * (clipped), floored with the idle tone across its whole time extent, and each phase run
3970
+ * paints SQUARE inside that clip, extended to the next run's start. No per-segment inset
3971
+ * and no per-segment rounding — those read as gaps between sections.
3972
+ */
3973
+ declare function GhostBand({ segments, x, top, height, showLabels, labelColor, targetTempoSeconds, prescribed, }: GhostBandProps): react_jsx_runtime.JSX.Element | null;
3974
+
3975
+ /** A point as `[x_px, magnitude_px]` — magnitude is height off the axis baseline (≥ 0). */
3976
+ type Pt = [number, number];
3977
+ /** Catmull-Rom → cubic-bezier smoothing over absolute `[x, y]` points. */
3978
+ declare function smoothPath(pts: Pt[]): string;
3979
+ interface GhostBloomProps {
3980
+ /** The current rep as `[x_px, magnitude_px]` points (magnitude ≥ 0 off the baseline). */
3981
+ current: Pt[];
3982
+ /** Prior-rep ("ghost") point sets, oldest first, same `[x, magnitude]` shape. */
3983
+ ghosts?: Pt[][];
3984
+ /** The current-line tint — silver→red from {@link ghostLineColor}. */
3985
+ tint: string;
3986
+ /** The axis y (px) the bloom grows from. */
3987
+ baseline: number;
3988
+ /** Grow UP from the baseline (default) or DOWN — the mirrored-dual flip. */
3989
+ orientation?: 'up' | 'down';
3990
+ /** Per-ghost stroke colour by index; default fades the primary text token. */
3991
+ ghostStroke?: (index: number) => string;
3992
+ /** Current-line stroke width, px. Default 3.5. */
3993
+ lineWidth?: number;
3994
+ }
3995
+ /** The ghost fan + the paper-treated tinted current line. Render inside an `<svg>`. */
3996
+ declare function GhostBloom({ current, ghosts, tint, baseline, orientation, ghostStroke, lineWidth, }: GhostBloomProps): react_jsx_runtime.JSX.Element;
3997
+
3998
+ interface VelocityHeroProps {
3999
+ /** Per-rep MEAN concentric velocity (m/s), ordered by rep. */
4000
+ velocities: number[];
4001
+ /** The set's planned rep count — draws dashed placeholder stubs for reps still to come. */
4002
+ targetReps?: number;
4003
+ /** Index of the most-recently-completed rep (the live-rep grow). Defaults to the last performed rep. */
4004
+ liveRepIndex?: number;
4005
+ /** Fixed width (standalone). Omit to flex-fill the column (in the panel). */
4006
+ width?: number;
4007
+ /** Hero plot height in px. Default 300. */
4008
+ height?: number;
4009
+ }
4010
+ declare function VelocityHero({ velocities, targetReps, liveRepIndex, width, height, }: VelocityHeroProps): react_jsx_runtime.JSX.Element;
4011
+
4012
+ /** Per-dimension tone → semantic status colour (the one language the dots + hero share). */
4013
+ declare const TONE_COLOR: Record<DimensionTone, string>;
4014
+ /** Verdict state → the hero word. */
4015
+ declare const STATE_LABEL: Record<FatigueVerdictState, string>;
4016
+ /**
4017
+ * The phase-identity colours for the ghost-spark phase BAND — the TempoDisplay
4018
+ * language: eccentric magenta, concentric cyan, hold and idle in the grey family.
4019
+ *
4020
+ * The idle grey has to read as BAND MATERIAL (a pause the lifter held), not as a
4021
+ * hole in the strip: at charcoal[300] it sat inside the surface-ramp's own value
4022
+ * range (`surface-raised` #31302F) so a short pause between ECC and CON read as a
4023
+ * gap. charcoal[200] clears every content plane while staying quieter than the two
4024
+ * saturated phase tones, so the band reads contiguous and the phases still lead.
4025
+ *
4026
+ * `hold` stays GREY rather than taking a hue of its own. It was briefly amber, which
4027
+ * was wrong for a reason worth recording: the phase-pacing tone (`pacingTone`) uses
4028
+ * warning-amber for "ahead of target", so an amber phase hue collides with the semantic
4029
+ * signal painted on top of it. Phase hues are deliberately non-semantic precisely so
4030
+ * pacing can own success/warning/error. Grey also reads more like a hold — a held
4031
+ * position is an absence of movement, not an event.
4032
+ *
4033
+ * Hold and idle are separated by VALUE rather than hue, plus the `HOLD` label and the
4034
+ * fact that a hold PACES (it has a prescribed duration) while idle never fills:
4035
+ * unfilled hold charcoal[300] — darker than idle
4036
+ * idle charcoal[200]
4037
+ * filled hold charcoal[100] — brighter than idle
4038
+ * so a hold reads apart from dead time at any fill level, including the narrow runs
4039
+ * where the label drops out.
4040
+ */
4041
+ declare const PHASE_AXIS_COLOR: Record<SamplePhase, string>;
4042
+ /** On-track / at-or-above-working. */
4043
+ declare const SILVER: "#D1D5DB";
4044
+ declare const RED_LIGHT: "#F77175";
4045
+ declare const RED_MID: "#D14343";
4046
+ declare const RED_DEEP: "#7E1002";
4047
+ /** Below this grind signature the rep is "controlled" → silver; at/above it goes red. */
4048
+ declare const GRIND_THRESHOLD = 0.35;
4049
+ /** A quiet grey the controlled line dims toward as it drifts (never a colour): a dimmed
4050
+ * cool grey in the SAME neutral family as SILVER, so a fully-drifted line reads dim-silver
4051
+ * rather than sinking toward black. Shared with the ROM chart. */
4052
+ declare const DRIFT_GREY: "#4B5563";
4053
+ /**
4054
+ * The ghost-spark current-line tint from the two control-aware signals — silver/red.
4055
+ *
4056
+ * A CONTROLLED rep (`grindSignature < GRIND_THRESHOLD`) stays SILVER, dimming a touch
4057
+ * toward a quiet grey by `tempoDeviation` — a "drifting but not failing" cue that never
4058
+ * becomes a colour. A COLLAPSING rep (at/above the threshold) goes through SHADES OF RED
4059
+ * by severity: light → mid → deep as the collapse deepens.
4060
+ */
4061
+ declare function ghostLineColor(tempoDeviation: number | null, grindSignature: number): string;
4062
+ /** Verdict state → the {@link LiveAuraFrame} coaching-flood category. */
4063
+ declare function auraForVerdict(state: FatigueVerdictState | null): 'productive' | 'threshold' | 'stop';
4064
+
3670
4065
  interface TreemapDatum {
3671
4066
  /** Stable identity — returned by onPress and used as the React key. */
3672
4067
  id: string;
@@ -4189,4 +4584,4 @@ interface PrescriptionInput {
4189
4584
  */
4190
4585
  declare function formatPrescription(p: PrescriptionInput | null | undefined): string | null;
4191
4586
 
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 };
4587
+ 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 };