@titan-design/react-ui 0.6.0 → 0.8.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 (258) hide show
  1. package/dist/bodymap.js +12 -7
  2. package/dist/bodymap.js.map +1 -1
  3. package/dist/bodymap.mjs +12 -7
  4. package/dist/bodymap.mjs.map +1 -1
  5. package/dist/index.d.mts +956 -128
  6. package/dist/index.d.ts +956 -128
  7. package/dist/index.js +2873 -981
  8. package/dist/index.js.map +1 -1
  9. package/dist/index.mjs +2826 -982
  10. package/dist/index.mjs.map +1 -1
  11. package/dist/{pages-MO0JCySL.d.mts → pages-DCFBqp79.d.mts} +289 -57
  12. package/dist/{pages-D7Jlssvp.d.ts → pages-_fI3-x7Z.d.ts} +289 -57
  13. package/dist/pages.d.mts +1 -1
  14. package/dist/pages.d.ts +1 -1
  15. package/dist/pages.js +1659 -799
  16. package/dist/pages.js.map +1 -1
  17. package/dist/pages.mjs +1660 -800
  18. package/dist/pages.mjs.map +1 -1
  19. package/dist/theme/index.d.mts +16 -82
  20. package/dist/theme/index.d.ts +16 -82
  21. package/dist/theme/index.js +13 -115
  22. package/dist/theme/index.js.map +1 -1
  23. package/dist/theme/index.mjs +13 -115
  24. package/dist/theme/index.mjs.map +1 -1
  25. package/dist/theme/tokens-css.js +14 -6
  26. package/dist/theme/tokens-css.js.map +1 -1
  27. package/dist/theme/tokens-css.mjs +14 -6
  28. package/dist/theme/tokens-css.mjs.map +1 -1
  29. package/package.json +1 -1
  30. package/src/arch/Architecture.stories.tsx +870 -0
  31. package/src/arch/annotations.json +48 -0
  32. package/src/arch/arch-graph.json +4301 -0
  33. package/src/components/custom/CircularTimer/CircularTimer.stories.tsx +90 -0
  34. package/src/components/custom/CircularTimer/CircularTimer.test.tsx +62 -0
  35. package/src/components/custom/CircularTimer/CircularTimer.tsx +112 -0
  36. package/src/components/custom/CircularTimer/index.ts +1 -0
  37. package/src/components/custom/DateTime/DateTime.stories.tsx +1 -1
  38. package/src/components/custom/EmptyState/EmptyState.stories.tsx +1 -1
  39. package/src/components/custom/Gauge/Gauge.stories.tsx +1 -1
  40. package/src/components/custom/Metric/Metric.stories.tsx +1 -1
  41. package/src/components/custom/Scatter/Scatter.stories.tsx +1 -1
  42. package/src/components/custom/Sidebar/Sidebar.stories.tsx +1 -1
  43. package/src/components/custom/Table/Table.stories.tsx +1 -1
  44. package/src/components/custom/TimerReadout/TimerReadout.stories.tsx +62 -0
  45. package/src/components/custom/TimerReadout/TimerReadout.test.tsx +72 -0
  46. package/src/components/custom/TimerReadout/TimerReadout.tsx +75 -0
  47. package/src/components/custom/TimerReadout/index.ts +1 -0
  48. package/src/components/custom/Treemap/Treemap.stories.tsx +1 -1
  49. package/src/components/custom/Typography/Typography.stories.tsx +1 -1
  50. package/src/components/custom/Workout/ActiveWorkoutPage.stories.tsx +21 -13
  51. package/src/components/custom/Workout/ActiveWorkoutPage.test.tsx +16 -13
  52. package/src/components/custom/Workout/ActiveWorkoutPage.tsx +9 -15
  53. package/src/components/custom/Workout/BaseBadge.stories.tsx +1 -1
  54. package/src/components/custom/Workout/BodyMap.stories.tsx +1 -1
  55. package/src/components/custom/Workout/BodyMapDetailPanel.stories.tsx +1 -1
  56. package/src/components/custom/Workout/CapacityBandChart.stories.tsx +1 -1
  57. package/src/components/custom/Workout/DeviationBar.stories.tsx +1 -1
  58. package/src/components/custom/Workout/ExerciseCard.stories.tsx +51 -66
  59. package/src/components/custom/Workout/ExerciseCard.test.tsx +146 -143
  60. package/src/components/custom/Workout/ExerciseCard.tsx +176 -198
  61. package/src/components/custom/Workout/ExerciseCardHeading.stories.tsx +99 -0
  62. package/src/components/custom/Workout/ExerciseCardHeading.test.tsx +72 -0
  63. package/src/components/custom/Workout/ExerciseCardHeading.tsx +43 -0
  64. package/src/components/custom/Workout/ExerciseCardUnified.stories.tsx +151 -0
  65. package/src/components/custom/Workout/ExerciseDetailPage.stories.tsx +5 -3
  66. package/src/components/custom/Workout/ExerciseDetailPage.test.tsx +4 -4
  67. package/src/components/custom/Workout/ExerciseDetailPage.tsx +4 -5
  68. package/src/components/custom/Workout/ExerciseHeading.stories.tsx +81 -0
  69. package/src/components/custom/Workout/ExerciseHeading.test.tsx +77 -0
  70. package/src/components/custom/Workout/ExerciseHeading.tsx +85 -0
  71. package/src/components/custom/Workout/ExerciseIndicator.stories.tsx +110 -0
  72. package/src/components/custom/Workout/ExerciseIndicator.test.tsx +93 -0
  73. package/src/components/custom/Workout/ExerciseIndicator.tsx +120 -0
  74. package/src/components/custom/Workout/FatigueMeter.stories.tsx +51 -0
  75. package/src/components/custom/Workout/FatigueMeter.test.tsx +85 -0
  76. package/src/components/custom/Workout/FatigueMeter.tsx +86 -0
  77. package/src/components/custom/Workout/InputBar.stories.tsx +1 -1
  78. package/src/components/custom/Workout/IntensityBar.stories.tsx +1 -1
  79. package/src/components/custom/Workout/LiveAuraFrame.stories.tsx +153 -0
  80. package/src/components/custom/Workout/LiveAuraFrame.test.tsx +74 -0
  81. package/src/components/custom/Workout/LiveAuraFrame.tsx +105 -0
  82. package/src/components/custom/Workout/MesoCard.stories.tsx +1 -1
  83. package/src/components/custom/Workout/MesoProgressBar.stories.tsx +1 -1
  84. package/src/components/custom/Workout/MesoStatusCard.stories.tsx +1 -1
  85. package/src/components/custom/Workout/MetricTiles.stories.tsx +60 -0
  86. package/src/components/custom/Workout/MetricTiles.test.tsx +58 -0
  87. package/src/components/custom/Workout/MetricTiles.tsx +48 -0
  88. package/src/components/custom/Workout/MuscleGroupChip.stories.tsx +1 -1
  89. package/src/components/custom/Workout/PlaceholderStrip.stories.tsx +1 -1
  90. package/src/components/custom/Workout/PrBadge.stories.tsx +1 -1
  91. package/src/components/custom/Workout/PrHistoryModal.stories.tsx +1 -1
  92. package/src/components/custom/Workout/ProgramPlanningPage.stories.tsx +4 -16
  93. package/src/components/custom/Workout/ProgramPlanningPage.tsx +8 -6
  94. package/src/components/custom/Workout/README.md +193 -4
  95. package/src/components/custom/Workout/ReadinessCheck.stories.tsx +1 -1
  96. package/src/components/custom/Workout/RestTimer.stories.tsx +133 -3
  97. package/src/components/custom/Workout/RestTimer.test.tsx +73 -0
  98. package/src/components/custom/Workout/RestTimer.tsx +155 -59
  99. package/src/components/custom/Workout/RowInventory.stories.tsx +405 -0
  100. package/src/components/custom/Workout/S3FullRail.stories.tsx +34 -0
  101. package/src/components/custom/Workout/S3SessionPace.stories.tsx +95 -0
  102. package/src/components/custom/Workout/S3SessionRailHeading.stories.tsx +61 -0
  103. package/src/components/custom/Workout/S3SetTypes.stories.tsx +176 -0
  104. package/src/components/custom/Workout/S3WorkoutExpansion.stories.tsx +240 -0
  105. package/src/components/custom/Workout/ScheduleTiles.stories.tsx +40 -0
  106. package/src/components/custom/Workout/ScheduleTiles.test.tsx +34 -0
  107. package/src/components/custom/Workout/ScheduleTiles.tsx +70 -0
  108. package/src/components/custom/Workout/SegmentedBar.stories.tsx +99 -0
  109. package/src/components/custom/Workout/SegmentedBar.test.tsx +77 -0
  110. package/src/components/custom/Workout/SegmentedBar.tsx +172 -0
  111. package/src/components/custom/Workout/SegmentedProgressBar.stories.tsx +50 -0
  112. package/src/components/custom/Workout/SegmentedProgressBar.test.tsx +80 -0
  113. package/src/components/custom/Workout/SegmentedProgressBar.tsx +67 -0
  114. package/src/components/custom/Workout/SessionHeader.stories.tsx +121 -0
  115. package/src/components/custom/Workout/SessionHeader.test.tsx +122 -0
  116. package/src/components/custom/Workout/SessionHeader.tsx +152 -0
  117. package/src/components/custom/Workout/SessionRail.stories.tsx +153 -0
  118. package/src/components/custom/Workout/SessionRail.test.tsx +86 -0
  119. package/src/components/custom/Workout/SessionRail.tsx +126 -0
  120. package/src/components/custom/Workout/SetBar.stories.tsx +124 -0
  121. package/src/components/custom/Workout/SetBar.test.tsx +123 -0
  122. package/src/components/custom/Workout/SetBar.tsx +171 -0
  123. package/src/components/custom/Workout/SetRow.stories.tsx +50 -100
  124. package/src/components/custom/Workout/SetRow.test.tsx +94 -166
  125. package/src/components/custom/Workout/SetRow.tsx +169 -232
  126. package/src/components/custom/Workout/SetStrip.stories.tsx +154 -0
  127. package/src/components/custom/Workout/SetStrip.test.tsx +109 -0
  128. package/src/components/custom/Workout/SetStrip.tsx +71 -0
  129. package/src/components/custom/Workout/SetTableHeader.stories.tsx +66 -0
  130. package/src/components/custom/Workout/SetTableHeader.test.tsx +47 -0
  131. package/src/components/custom/Workout/SetTableHeader.tsx +88 -0
  132. package/src/components/custom/Workout/SetsRepsLoad.stories.tsx +47 -0
  133. package/src/components/custom/Workout/SetsRepsLoad.test.tsx +44 -0
  134. package/src/components/custom/Workout/SetsRepsLoad.tsx +52 -0
  135. package/src/components/custom/Workout/Sparkline.stories.tsx +1 -1
  136. package/src/components/custom/Workout/StatusDot.stories.tsx +1 -1
  137. package/src/components/custom/Workout/StatusPill.stories.tsx +59 -0
  138. package/src/components/custom/Workout/StatusPill.test.tsx +63 -0
  139. package/src/components/custom/Workout/StatusPill.tsx +88 -0
  140. package/src/components/custom/Workout/StrengthTrendChart.stories.tsx +1 -1
  141. package/src/components/custom/Workout/SupersetWrapper.stories.tsx +1 -1
  142. package/src/components/custom/Workout/TempoBar.stories.tsx +70 -1
  143. package/src/components/custom/Workout/TempoBar.test.tsx +119 -4
  144. package/src/components/custom/Workout/TempoBar.tsx +107 -22
  145. package/src/components/custom/Workout/TempoDisplay.stories.tsx +12 -1
  146. package/src/components/custom/Workout/TempoDisplay.tsx +23 -33
  147. package/src/components/custom/Workout/TrainingStatusPage.stories.tsx +1 -1
  148. package/src/components/custom/Workout/VelocityStrip.modalities.stories.tsx +254 -0
  149. package/src/components/custom/Workout/VelocityStrip.responsive.stories.tsx +145 -0
  150. package/src/components/custom/Workout/VelocityStrip.stories.tsx +262 -56
  151. package/src/components/custom/Workout/VelocityStrip.test.tsx +440 -141
  152. package/src/components/custom/Workout/VelocityStrip.tsx +776 -141
  153. package/src/components/custom/Workout/VolumeLandmarkBar.stories.tsx +73 -0
  154. package/src/components/custom/Workout/VolumeLandmarkBar.test.tsx +119 -0
  155. package/src/components/custom/Workout/VolumeLandmarkBar.tsx +154 -0
  156. package/src/components/custom/Workout/WeekRow.stories.tsx +1 -1
  157. package/src/components/custom/Workout/WeightBadge.stories.tsx +1 -1
  158. package/src/components/custom/Workout/WorkoutCard.stories.tsx +2 -6
  159. package/src/components/custom/Workout/WorkoutCard.test.tsx +13 -46
  160. package/src/components/custom/Workout/WorkoutPill.stories.tsx +1 -1
  161. package/src/components/custom/Workout/ZoneTrack.stories.tsx +139 -0
  162. package/src/components/custom/Workout/ZoneTrack.test.tsx +234 -0
  163. package/src/components/custom/Workout/ZoneTrack.tsx +373 -0
  164. package/src/components/custom/Workout/index.ts +55 -2
  165. package/src/components/custom/Workout/metricText.stories.tsx +69 -0
  166. package/src/components/custom/Workout/metricText.tsx +34 -0
  167. package/src/components/custom/Workout/paceTone.test.ts +29 -0
  168. package/src/components/custom/Workout/paceTone.ts +27 -0
  169. package/src/components/custom/Workout/setHeadingKit.tsx +177 -0
  170. package/src/components/custom/index.ts +2 -0
  171. package/src/components/custom/stepper/Stepper.stories.tsx +1 -1
  172. package/src/components/icons/icons.stories.tsx +67 -2
  173. package/src/components/icons/icons.test.tsx +32 -2
  174. package/src/components/icons/icons.tsx +108 -0
  175. package/src/components/shell/BrandLockup.stories.tsx +3 -3
  176. package/src/components/shell/DashboardShell.stories.tsx +65 -0
  177. package/src/components/shell/DashboardShell.test.tsx +42 -0
  178. package/src/components/shell/DashboardShell.tsx +74 -0
  179. package/src/components/shell/DeviceIndicator.stories.tsx +2 -2
  180. package/src/components/shell/DeviceMenu.stories.tsx +5 -5
  181. package/src/components/shell/DeviceRow.stories.tsx +3 -3
  182. package/src/components/shell/NavItem.stories.tsx +52 -0
  183. package/src/components/shell/NavItem.test.tsx +35 -0
  184. package/src/components/shell/NavItem.tsx +75 -0
  185. package/src/components/shell/README.md +30 -0
  186. package/src/components/shell/SessionRailSpecimen.stories.tsx +753 -0
  187. package/src/components/shell/SessionStatePill.stories.tsx +3 -3
  188. package/src/components/shell/SessionStatePill.tsx +1 -1
  189. package/src/components/shell/SideNav.stories.tsx +81 -0
  190. package/src/components/shell/SideNav.test.tsx +51 -0
  191. package/src/components/shell/SideNav.tsx +74 -0
  192. package/src/components/shell/TopBar.stories.tsx +5 -5
  193. package/src/components/shell/index.ts +5 -0
  194. package/src/components/ui/alert/Alert.stories.tsx +86 -3
  195. package/src/components/ui/alert/Alert.test.tsx +52 -0
  196. package/src/components/ui/alert/Alert.tsx +54 -20
  197. package/src/components/ui/autocomplete/Autocomplete.stories.tsx +1 -1
  198. package/src/components/ui/avatar/Avatar.stories.tsx +1 -1
  199. package/src/components/ui/badge/Badge.stories.tsx +1 -1
  200. package/src/components/ui/breadcrumbs/Breadcrumbs.stories.tsx +1 -1
  201. package/src/components/ui/button/Button.stories.tsx +1 -1
  202. package/src/components/ui/card/Card.stories.tsx +1 -1
  203. package/src/components/ui/checkbox/Checkbox.stories.tsx +1 -1
  204. package/src/components/ui/chip/Chip.stories.tsx +1 -1
  205. package/src/components/ui/collapse/Collapse.stories.tsx +1 -1
  206. package/src/components/ui/data-row/DataRow.stories.tsx +1 -1
  207. package/src/components/ui/divider/Divider.stories.tsx +1 -1
  208. package/src/components/ui/drawer/Drawer.stories.tsx +1 -1
  209. package/src/components/ui/form-field/FormField.stories.tsx +1 -1
  210. package/src/components/ui/help-tip/HelpTip.stories.tsx +1 -1
  211. package/src/components/ui/icon-box/IconBox.stories.tsx +1 -1
  212. package/src/components/ui/index.ts +1 -0
  213. package/src/components/ui/indicator/Indicator.stories.tsx +2 -2
  214. package/src/components/ui/indicator/Indicator.test.tsx +1 -0
  215. package/src/components/ui/indicator/Indicator.tsx +6 -1
  216. package/src/components/ui/input/Input.stories.tsx +1 -1
  217. package/src/components/ui/link/Link.stories.tsx +1 -1
  218. package/src/components/ui/list-item/ListItem.stories.tsx +1 -1
  219. package/src/components/ui/menu/Menu.stories.tsx +1 -1
  220. package/src/components/ui/modal/Modal.stories.tsx +1 -1
  221. package/src/components/ui/pill/Pill.stories.tsx +1 -1
  222. package/src/components/ui/popover/Popover.stories.tsx +1 -1
  223. package/src/components/ui/progress/Progress.stories.tsx +1 -1
  224. package/src/components/ui/progress/Progress.tsx +47 -22
  225. package/src/components/ui/radio/Radio.stories.tsx +1 -1
  226. package/src/components/ui/section/Section.stories.tsx +1 -1
  227. package/src/components/ui/select/Select.stories.tsx +1 -1
  228. package/src/components/ui/skeleton/Skeleton.stories.tsx +1 -1
  229. package/src/components/ui/spinner/Spinner.stories.tsx +1 -1
  230. package/src/components/ui/stack/Stack.stories.tsx +1 -1
  231. package/src/components/ui/surface/Surface.stories.tsx +1 -1
  232. package/src/components/ui/switch/Switch.stories.tsx +1 -1
  233. package/src/components/ui/tabs/Tabs.stories.tsx +1 -1
  234. package/src/components/ui/tile/Tile.stories.tsx +79 -0
  235. package/src/components/ui/tile/Tile.test.tsx +48 -0
  236. package/src/components/ui/tile/Tile.tsx +64 -0
  237. package/src/components/ui/tile/index.ts +2 -0
  238. package/src/components/ui/toast/Toast.stories.tsx +1 -1
  239. package/src/components/ui/toolbar-button/ToolbarButton.stories.tsx +1 -1
  240. package/src/components/ui/tooltip/Tooltip.stories.tsx +1 -1
  241. package/src/examples/react-hook-form/ReactHookForm.stories.tsx +1 -1
  242. package/src/hooks/index.ts +2 -0
  243. package/src/hooks/useTimer.test.ts +150 -0
  244. package/src/hooks/useTimer.ts +77 -0
  245. package/src/index.ts +3 -0
  246. package/src/pages.ts +1 -1
  247. package/src/stories/PresetShowcase.stories.tsx +1 -1
  248. package/src/stories/ThemePresets.stories.tsx +1 -1
  249. package/src/theme/ColorSystem.stories.tsx +1 -1
  250. package/src/theme/Colors.stories.tsx +5 -8
  251. package/src/theme/config.ts +4 -0
  252. package/src/theme/elevation.stories.tsx +1 -1
  253. package/src/theme/global.css +5 -1
  254. package/src/theme/shadows.stories.tsx +1 -1
  255. package/src/theme/tokens/primitives.ts +11 -107
  256. package/src/theme/tokens/semantic.ts +8 -0
  257. package/src/theme/workout-tokens.ts +11 -7
  258. package/tailwind.config.js +5 -0
package/dist/index.d.mts CHANGED
@@ -1,11 +1,13 @@
1
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
- import React, { ReactNode } from 'react';
2
+ import React$1, { ReactNode } from 'react';
3
3
  import { ViewProps, PressableProps, View, TextInputProps, TextInput, ImageSourcePropType, ModalProps as ModalProps$1, TextProps } from 'react-native';
4
4
  import { ElevationLevel, GlowIntensity } from './theme/index.mjs';
5
5
  export { CATEGORICAL_CVD_SAFE_MAX, CategoricalVariant, ComponentType, CssPropertyEntry, CssPropertyManifest, ElevationConfig, GradientStyle, ManifestValidationResult, ShadowIntensity, ShadowSurface, ThemeConfig, ThemeMode, ThemePreset, ThemePresetColors, ThemePresetFonts, ThemePresetRadii, ThemePresetShadows, ThemeProviderMode, ThemeProviderProps, VariantAxes, VariantOverride, applyThemePreset, audiobookPreset, bestTextColor, buttonSizes, categoricalPalette, componentElevationRanges, createFlatShadow, createPressedHoverShadow, createPressedShadow, createRaisedHoverShadow, createRaisedShadow, darkThemeCSSVars, darken, defaultPreset, discreteRainbow, divergingScale, elevationSystem, getBaseSurfaceColor, getCategoricalColor, getDiscreteRainbowColor, getElevationConfig, getElevationShadow, getElevationSurface, getGlowShadow, getHoverColors, 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, validateCssPropertyManifest } from './theme/index.mjs';
6
- 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, E as ExerciseCard, i as ExerciseCardProps, j as ExerciseCardState, k as ExerciseDetailEntry, l as ExerciseDetailHeader, m as ExerciseDetailPageProps, n as ExerciseDetailStats, o as ExerciseDetailTab, p as ExerciseTrend, q as ExerciseVbt, r as ExerciseVbtSet, M as Meso, s as MesoCard, t as MesoCardProps, u as MesoProgressBar, v as MesoProgressBarProps, w as MesoStatus, x as MesoVolumeHeatmapEntry, P as PRType, y as PlanMeso, z as PlanWeek, B as PlanWorkout, D as PrBadge, F as PrBadgeProps, G as ProgramBreadcrumb, H as ProgramNavLevel, I as ProgramPlanningPageProps, J as ProgramSelection, S as SetRow, K as SetRowMode, L as SetRowProps, N as StrengthTrendChart, O as StrengthTrendChartMesoBoundary, Q as StrengthTrendChartProps, R as StrengthTrendDataPoint, V as VbtSummary, T as VelocityStrip, U as VelocityStripProps, W as VelocityZoneBandProp, X as WeekRow, Y as WeekRowProps, Z as WeekRowWorkout, _ as WorkoutCard, $ as WorkoutCardProps, a0 as WorkoutDot, a1 as WorkoutDotStatus, a2 as WorkoutGroup, a3 as WorkoutMuscleGroup, a4 as WorkoutMuscleVolumeStatus, a5 as WorkoutPill, a6 as WorkoutPillProps, a7 as WorkoutPillStatus, a8 as WorkoutProgress, a9 as WorkoutStatus, aa as calculateMeanVelocity, ab as calculateVelocityLoss, ac as getVelocityZoneColor, ad as getVelocityZoneName } from './pages-MO0JCySL.mjs';
6
+ import { S as SetStripSet, E as ExerciseIndicatorKind } from './pages-DCFBqp79.mjs';
7
+ 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-DCFBqp79.mjs';
7
8
  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';
8
- export { BodyMapData, BodyMapDetailPanelProps, BodyMapProps, ContributingExercise, MovementCategory, MuscleGroup, SimpleMuscleGroup, TrainingStatusMuscle, TrainingStatusPageProps, TrainingStatusSummary, UpcomingExercise, VolumeLandmarks } from './bodymap.mjs';
9
+ import { VolumeLandmarks } from './bodymap.mjs';
10
+ export { BodyMapData, BodyMapDetailPanelProps, BodyMapProps, ContributingExercise, MovementCategory, MuscleGroup, SimpleMuscleGroup, TrainingStatusMuscle, TrainingStatusPageProps, TrainingStatusSummary, UpcomingExercise } from './bodymap.mjs';
9
11
  import { ClassValue } from 'clsx';
10
12
 
11
13
  interface IconProps {
@@ -43,23 +45,60 @@ declare function BluetoothIcon({ size, ...props }: IconProps): react_jsx_runtime
43
45
  declare function DumbbellIcon(props: IconProps): react_jsx_runtime.JSX.Element;
44
46
  /** Star glyph (mirrors lucide-react `Star`). Pass `fill` for a solid star. */
45
47
  declare function StarIcon(props: IconProps): react_jsx_runtime.JSX.Element;
48
+ /** Activity / pulse-line glyph (mirrors lucide-react `Activity`). Shell S2 nav → Live. */
49
+ declare function ActivityIcon(props: IconProps): react_jsx_runtime.JSX.Element;
50
+ /** History / clock-arrow glyph (mirrors lucide-react `History`). Shell S2 nav → Review. */
51
+ declare function HistoryIcon(props: IconProps): react_jsx_runtime.JSX.Element;
52
+ /** Layers / stack glyph (mirrors lucide-react `Layers`). Shell S2 nav → Program (mesocycle stack). */
53
+ declare function LayersIcon(props: IconProps): react_jsx_runtime.JSX.Element;
54
+ /** Standing-figure glyph (mirrors lucide-react `PersonStanding`). Shell S2 nav → Body (muscle map). */
55
+ declare function PersonStandingIcon(props: IconProps): react_jsx_runtime.JSX.Element;
56
+ /** Balance-scale glyph (mirrors lucide-react `Scale`). ExerciseIndicator → `imbalance`. */
57
+ declare function ScaleIcon(props: IconProps): react_jsx_runtime.JSX.Element;
58
+ /** Warning-triangle glyph (mirrors lucide-react `AlertTriangle`). ExerciseIndicator → `overshoot`. */
59
+ declare function AlertTriangleIcon(props: IconProps): react_jsx_runtime.JSX.Element;
60
+ /** Down-trend glyph (mirrors lucide-react `TrendingDown`). ExerciseIndicator → `velocity-loss`. */
61
+ declare function TrendingDownIcon(props: IconProps): react_jsx_runtime.JSX.Element;
62
+ /** Slashed-circle glyph (mirrors lucide-react `CircleSlash`). ExerciseIndicator → `missed-reps`. */
63
+ declare function CircleSlashIcon(props: IconProps): react_jsx_runtime.JSX.Element;
64
+ /** Medal glyph (mirrors lucide-react `Award`). ExerciseIndicator → `pr`. */
65
+ declare function AwardIcon(props: IconProps): react_jsx_runtime.JSX.Element;
66
+ /** Info-circle glyph (mirrors lucide-react `Info`). ExerciseIndicator → `info`. */
67
+ declare function InfoIcon(props: IconProps): react_jsx_runtime.JSX.Element;
46
68
 
47
69
  type AlertStatus = 'success' | 'info' | 'warning' | 'error';
48
70
  type AlertVariant = 'subtle' | 'outline' | 'solid';
71
+ type AlertSize = 'default' | 'compact';
49
72
  interface AlertProps extends ViewProps {
50
73
  /** Alert status type */
51
74
  status?: AlertStatus;
52
75
  /** Visual variant */
53
76
  variant?: AlertVariant;
77
+ /**
78
+ * Density. `default` — the padded callout (icon + title/description block).
79
+ * `compact` — a single-line **cue pill** (tighter padding, center-aligned, and a
80
+ * hairline status border on the `subtle` variant): the across-the-room live coaching
81
+ * cue (absorbs the R2 `CueFlag` — e.g. a velocity-loss threshold warning). Pair with
82
+ * the {@link message} prop for the batteries-included colored one-liner.
83
+ */
84
+ size?: AlertSize;
85
+ /**
86
+ * Convenience single-line content: renders as **status-colored, bold** text (white on
87
+ * `solid`) — the batteries-included cue message, so a `compact` cue is just
88
+ * `<Alert status="warning" size="compact" message="VL20 · …" />` with no need to
89
+ * hand-color the text (RN doesn't cascade color). Renders before {@link children},
90
+ * which stay available for richer content.
91
+ */
92
+ message?: string;
54
93
  /** Custom icon element */
55
- icon?: React.ReactNode;
94
+ icon?: React$1.ReactNode;
56
95
  /** Whether to show the default icon */
57
96
  showIcon?: boolean;
58
97
  /** Callback when close button is pressed */
59
98
  onClose?: () => void;
60
99
  /** Additional className */
61
100
  className?: string;
62
- children?: React.ReactNode;
101
+ children?: React$1.ReactNode;
63
102
  }
64
103
  /**
65
104
  * Alert component for displaying status messages.
@@ -74,9 +113,9 @@ interface AlertProps extends ViewProps {
74
113
  * <AlertDescription>Something went wrong.</AlertDescription>
75
114
  * </Alert>
76
115
  */
77
- declare function Alert({ status, variant, icon, showIcon, onClose, className, children, ...props }: AlertProps): react_jsx_runtime.JSX.Element;
116
+ declare function Alert({ status, variant, size, message, icon, showIcon, onClose, className, children, ...props }: AlertProps): react_jsx_runtime.JSX.Element;
78
117
  interface AlertTitleProps {
79
- children?: React.ReactNode;
118
+ children?: React$1.ReactNode;
80
119
  className?: string;
81
120
  }
82
121
  /**
@@ -84,7 +123,7 @@ interface AlertTitleProps {
84
123
  */
85
124
  declare function AlertTitle({ children, className }: AlertTitleProps): react_jsx_runtime.JSX.Element;
86
125
  interface AlertDescriptionProps {
87
- children?: React.ReactNode;
126
+ children?: React$1.ReactNode;
88
127
  className?: string;
89
128
  }
90
129
  /**
@@ -115,7 +154,7 @@ interface ButtonProps extends Omit<PressableProps, 'children'> {
115
154
  /** Additional className for styling */
116
155
  className?: string;
117
156
  /** Button content */
118
- children?: React.ReactNode;
157
+ children?: React$1.ReactNode;
119
158
  }
120
159
  /**
121
160
  * Button component following compound component pattern.
@@ -131,9 +170,9 @@ interface ButtonProps extends Omit<PressableProps, 'children'> {
131
170
  * <ButtonText>Add item</ButtonText>
132
171
  * </Button>
133
172
  */
134
- declare const Button: React.ForwardRefExoticComponent<ButtonProps & React.RefAttributes<View>>;
173
+ declare const Button: React$1.ForwardRefExoticComponent<ButtonProps & React$1.RefAttributes<View>>;
135
174
  interface ButtonTextProps {
136
- children: React.ReactNode;
175
+ children: React$1.ReactNode;
137
176
  className?: string;
138
177
  }
139
178
  /**
@@ -142,7 +181,7 @@ interface ButtonTextProps {
142
181
  declare function ButtonText({ children, className }: ButtonTextProps): react_jsx_runtime.JSX.Element;
143
182
  interface ButtonIconProps {
144
183
  /** Icon component to render */
145
- as: React.ComponentType<{
184
+ as: React$1.ComponentType<{
146
185
  size?: number;
147
186
  color?: string;
148
187
  className?: string;
@@ -190,9 +229,9 @@ interface InputProps extends Omit<TextInputProps, 'editable'> {
190
229
  /** Error message (shown when isInvalid is true) */
191
230
  errorMessage?: string;
192
231
  /** Left element/icon */
193
- leftElement?: React.ReactNode;
232
+ leftElement?: React$1.ReactNode;
194
233
  /** Right element/icon */
195
- rightElement?: React.ReactNode;
234
+ rightElement?: React$1.ReactNode;
196
235
  /** Additional className for the container */
197
236
  className?: string;
198
237
  /** Additional className for the input */
@@ -215,9 +254,9 @@ interface InputProps extends Omit<TextInputProps, 'editable'> {
215
254
  * errorMessage="Password is required"
216
255
  * />
217
256
  */
218
- declare const Input: React.ForwardRefExoticComponent<InputProps & React.RefAttributes<TextInput>>;
257
+ declare const Input: React$1.ForwardRefExoticComponent<InputProps & React$1.RefAttributes<TextInput>>;
219
258
  interface InputGroupProps {
220
- children: React.ReactNode;
259
+ children: React$1.ReactNode;
221
260
  className?: string;
222
261
  }
223
262
  /**
@@ -226,9 +265,9 @@ interface InputGroupProps {
226
265
  declare function InputGroup({ children, className }: InputGroupProps): react_jsx_runtime.JSX.Element;
227
266
  interface PasswordInputProps extends Omit<InputProps, 'secureTextEntry' | 'rightElement'> {
228
267
  /** Custom show password icon */
229
- showIcon?: React.ReactNode;
268
+ showIcon?: React$1.ReactNode;
230
269
  /** Custom hide password icon */
231
- hideIcon?: React.ReactNode;
270
+ hideIcon?: React$1.ReactNode;
232
271
  }
233
272
  /**
234
273
  * Password input with visibility toggle.
@@ -239,7 +278,7 @@ interface PasswordInputProps extends Omit<InputProps, 'secureTextEntry' | 'right
239
278
  * placeholder="Enter your password"
240
279
  * />
241
280
  */
242
- declare const PasswordInput: React.ForwardRefExoticComponent<PasswordInputProps & React.RefAttributes<TextInput>>;
281
+ declare const PasswordInput: React$1.ForwardRefExoticComponent<PasswordInputProps & React$1.RefAttributes<TextInput>>;
243
282
 
244
283
  type CardVariant = 'elevated' | 'outline' | 'filled' | 'accent' | 'subtle';
245
284
  type CardElevation = 1 | 2 | 3;
@@ -264,7 +303,7 @@ interface CardProps extends ViewProps {
264
303
  accentWidth?: number;
265
304
  /** Additional className */
266
305
  className?: string;
267
- children?: React.ReactNode;
306
+ children?: React$1.ReactNode;
268
307
  /** Show header skeleton when loading (default: true) */
269
308
  skeletonHasHeader?: boolean;
270
309
  /** Show footer skeleton when loading (default: false) */
@@ -296,7 +335,7 @@ interface CardProps extends ViewProps {
296
335
  */
297
336
  declare function Card({ variant, elevation, isInteractive, isLoading, onPress, borderColor, bgColor, accentColor, accentWidth, className, children, style, skeletonHasHeader, skeletonHasFooter, skeletonContentLines, ...props }: CardProps): react_jsx_runtime.JSX.Element;
298
337
  interface CardHeaderProps {
299
- children?: React.ReactNode;
338
+ children?: React$1.ReactNode;
300
339
  className?: string;
301
340
  }
302
341
  /**
@@ -304,7 +343,7 @@ interface CardHeaderProps {
304
343
  */
305
344
  declare function CardHeader({ children, className }: CardHeaderProps): react_jsx_runtime.JSX.Element;
306
345
  interface CardTitleProps {
307
- children?: React.ReactNode;
346
+ children?: React$1.ReactNode;
308
347
  className?: string;
309
348
  }
310
349
  /**
@@ -312,7 +351,7 @@ interface CardTitleProps {
312
351
  */
313
352
  declare function CardTitle({ children, className }: CardTitleProps): react_jsx_runtime.JSX.Element;
314
353
  interface CardDescriptionProps {
315
- children?: React.ReactNode;
354
+ children?: React$1.ReactNode;
316
355
  className?: string;
317
356
  }
318
357
  /**
@@ -320,7 +359,7 @@ interface CardDescriptionProps {
320
359
  */
321
360
  declare function CardDescription({ children, className }: CardDescriptionProps): react_jsx_runtime.JSX.Element;
322
361
  interface CardContentProps {
323
- children?: React.ReactNode;
362
+ children?: React$1.ReactNode;
324
363
  className?: string;
325
364
  }
326
365
  /**
@@ -328,7 +367,7 @@ interface CardContentProps {
328
367
  */
329
368
  declare function CardContent({ children, className }: CardContentProps): react_jsx_runtime.JSX.Element;
330
369
  interface CardFooterProps {
331
- children?: React.ReactNode;
370
+ children?: React$1.ReactNode;
332
371
  className?: string;
333
372
  }
334
373
  /**
@@ -351,7 +390,7 @@ interface CardSkeletonProps {
351
390
  declare function CardSkeleton({ hasHeader, hasFooter, contentLines, className, }: CardSkeletonProps): react_jsx_runtime.JSX.Element;
352
391
 
353
392
  type IndicatorSize = 'xs' | 'sm' | 'md' | 'lg';
354
- type IndicatorColor = 'default' | 'primary' | 'success' | 'error' | 'warning' | 'info' | 'error-vivid';
393
+ type IndicatorColor = 'default' | 'primary' | 'success' | 'live' | 'error' | 'warning' | 'info' | 'error-vivid';
355
394
  /** How a pulsing indicator animates: a subtle opacity fade, or an expanding ring. */
356
395
  type IndicatorPulse = 'opacity' | 'ping';
357
396
  interface IndicatorProps extends ViewProps {
@@ -388,7 +427,7 @@ interface BadgeProps extends ViewProps {
388
427
  dotColor?: IndicatorColor;
389
428
  /** Additional className */
390
429
  className?: string;
391
- children?: React.ReactNode;
430
+ children?: React$1.ReactNode;
392
431
  }
393
432
  /**
394
433
  * Badge component for status indicators and labels.
@@ -399,7 +438,7 @@ interface BadgeProps extends ViewProps {
399
438
  */
400
439
  declare function Badge({ variant, color, size, dot, dotColor, className, children, ...props }: BadgeProps): react_jsx_runtime.JSX.Element;
401
440
  interface BadgeTextProps {
402
- children: React.ReactNode;
441
+ children: React$1.ReactNode;
403
442
  className?: string;
404
443
  }
405
444
  /**
@@ -477,7 +516,7 @@ interface AvatarBadgeProps {
477
516
  */
478
517
  declare function AvatarBadge({ color, className }: AvatarBadgeProps): react_jsx_runtime.JSX.Element;
479
518
  interface AvatarGroupProps {
480
- children: React.ReactNode;
519
+ children: React$1.ReactNode;
481
520
  /** Maximum avatars to show before +N indicator */
482
521
  max?: number;
483
522
  /** Size of avatars */
@@ -539,9 +578,9 @@ interface CheckboxProps extends Omit<PressableProps, 'children'> {
539
578
  * label="Accept terms and conditions"
540
579
  * />
541
580
  */
542
- declare const Checkbox: React.ForwardRefExoticComponent<CheckboxProps & React.RefAttributes<View>>;
581
+ declare const Checkbox: React$1.ForwardRefExoticComponent<CheckboxProps & React$1.RefAttributes<View>>;
543
582
  interface CheckboxGroupProps {
544
- children: React.ReactNode;
583
+ children: React$1.ReactNode;
545
584
  /** Label for the group */
546
585
  label?: string;
547
586
  /** Orientation of checkboxes */
@@ -581,7 +620,7 @@ interface SwitchProps extends Omit<PressableProps, 'children'> {
581
620
  * label="Enable notifications"
582
621
  * />
583
622
  */
584
- declare const Switch: React.ForwardRefExoticComponent<SwitchProps & React.RefAttributes<View>>;
623
+ declare const Switch: React$1.ForwardRefExoticComponent<SwitchProps & React$1.RefAttributes<View>>;
585
624
 
586
625
  type ModalSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl' | 'full';
587
626
  type ModalScrollBehavior = 'inside' | 'outside';
@@ -602,7 +641,7 @@ interface ModalProps extends Omit<ModalProps$1, 'visible'> {
602
641
  backdropClassName?: string;
603
642
  /** Animation type */
604
643
  animationType?: 'none' | 'fade' | 'slide';
605
- children?: React.ReactNode;
644
+ children?: React$1.ReactNode;
606
645
  }
607
646
  /**
608
647
  * Modal component for dialogs and overlays.
@@ -625,7 +664,7 @@ interface ModalProps extends Omit<ModalProps$1, 'visible'> {
625
664
  */
626
665
  declare function Modal({ isOpen, onClose, size, scrollBehavior, closeOnOverlayClick, backdropBlur, backdropClassName, animationType, children, ...props }: ModalProps): react_jsx_runtime.JSX.Element;
627
666
  interface ModalContentProps {
628
- children?: React.ReactNode;
667
+ children?: React$1.ReactNode;
629
668
  className?: string;
630
669
  }
631
670
  /**
@@ -633,7 +672,7 @@ interface ModalContentProps {
633
672
  */
634
673
  declare function ModalContent({ children, className }: ModalContentProps): react_jsx_runtime.JSX.Element;
635
674
  interface ModalHeaderProps {
636
- children?: React.ReactNode;
675
+ children?: React$1.ReactNode;
637
676
  className?: string;
638
677
  }
639
678
  /**
@@ -641,7 +680,7 @@ interface ModalHeaderProps {
641
680
  */
642
681
  declare function ModalHeader({ children, className }: ModalHeaderProps): react_jsx_runtime.JSX.Element;
643
682
  interface ModalTitleProps {
644
- children?: React.ReactNode;
683
+ children?: React$1.ReactNode;
645
684
  className?: string;
646
685
  }
647
686
  /**
@@ -656,7 +695,7 @@ interface ModalCloseButtonProps {
656
695
  */
657
696
  declare function ModalCloseButton({ className }: ModalCloseButtonProps): react_jsx_runtime.JSX.Element;
658
697
  interface ModalBodyProps {
659
- children?: React.ReactNode;
698
+ children?: React$1.ReactNode;
660
699
  /** Maximum height for scrollable content (when scrollBehavior="inside") */
661
700
  maxHeight?: number;
662
701
  className?: string;
@@ -666,7 +705,7 @@ interface ModalBodyProps {
666
705
  */
667
706
  declare function ModalBody({ children, maxHeight, className }: ModalBodyProps): react_jsx_runtime.JSX.Element;
668
707
  interface ModalFooterProps {
669
- children?: React.ReactNode;
708
+ children?: React$1.ReactNode;
670
709
  className?: string;
671
710
  }
672
711
  /**
@@ -776,7 +815,7 @@ interface TabsProps extends ViewProps {
776
815
  orientation?: TabsOrientation;
777
816
  /** Additional className */
778
817
  className?: string;
779
- children?: React.ReactNode;
818
+ children?: React$1.ReactNode;
780
819
  }
781
820
  /**
782
821
  * Tabs component for tabbed navigation.
@@ -797,7 +836,7 @@ interface TabsProps extends ViewProps {
797
836
  */
798
837
  declare function Tabs({ defaultIndex, index, onChange, variant, orientation, className, children, ...props }: TabsProps): react_jsx_runtime.JSX.Element;
799
838
  interface TabListProps {
800
- children?: React.ReactNode;
839
+ children?: React$1.ReactNode;
801
840
  className?: string;
802
841
  }
803
842
  /**
@@ -811,14 +850,14 @@ interface TabProps {
811
850
  isDisabled?: boolean;
812
851
  /** Additional className */
813
852
  className?: string;
814
- children?: React.ReactNode;
853
+ children?: React$1.ReactNode;
815
854
  }
816
855
  /**
817
856
  * Individual tab button.
818
857
  */
819
858
  declare function Tab({ index, isDisabled, className, children, }: TabProps): react_jsx_runtime.JSX.Element;
820
859
  interface TabPanelsProps {
821
- children?: React.ReactNode;
860
+ children?: React$1.ReactNode;
822
861
  className?: string;
823
862
  }
824
863
  /**
@@ -826,7 +865,7 @@ interface TabPanelsProps {
826
865
  */
827
866
  declare function TabPanels({ children, className }: TabPanelsProps): react_jsx_runtime.JSX.Element;
828
867
  interface TabPanelProps {
829
- children?: React.ReactNode;
868
+ children?: React$1.ReactNode;
830
869
  className?: string;
831
870
  }
832
871
  /**
@@ -845,7 +884,7 @@ interface ChipProps extends ViewProps {
845
884
  /** Size */
846
885
  size?: ChipSize;
847
886
  /** Left element (icon, avatar) */
848
- leftElement?: React.ReactNode;
887
+ leftElement?: React$1.ReactNode;
849
888
  /** Whether the chip is dismissible */
850
889
  onDelete?: () => void;
851
890
  /** Whether the chip is clickable */
@@ -854,7 +893,7 @@ interface ChipProps extends ViewProps {
854
893
  isDisabled?: boolean;
855
894
  /** Additional className */
856
895
  className?: string;
857
- children?: React.ReactNode;
896
+ children?: React$1.ReactNode;
858
897
  }
859
898
  /**
860
899
  * Chip component for tags, labels, and filters.
@@ -884,7 +923,7 @@ interface LinkProps extends Omit<TextProps, 'onPress'> {
884
923
  isDisabled?: boolean;
885
924
  /** Additional className */
886
925
  className?: string;
887
- children?: React.ReactNode;
926
+ children?: React$1.ReactNode;
888
927
  }
889
928
  /**
890
929
  * Link component for navigation.
@@ -901,9 +940,9 @@ interface TooltipProps extends ViewProps {
901
940
  /** Plain-text tooltip content */
902
941
  label?: string;
903
942
  /** Rich tooltip content (takes precedence over label) */
904
- content?: React.ReactNode;
943
+ content?: React$1.ReactNode;
905
944
  /** Trigger element */
906
- children: React.ReactNode;
945
+ children: React$1.ReactNode;
907
946
  /** Tooltip placement */
908
947
  placement?: TooltipPlacement;
909
948
  /** Delay before showing (ms) */
@@ -946,7 +985,7 @@ interface CollapseProps extends ViewProps {
946
985
  onToggle?: (isOpen: boolean) => void;
947
986
  /** Additional className */
948
987
  className?: string;
949
- children?: React.ReactNode;
988
+ children?: React$1.ReactNode;
950
989
  }
951
990
  /**
952
991
  * Collapsible content container.
@@ -963,7 +1002,7 @@ interface CollapseProps extends ViewProps {
963
1002
  */
964
1003
  declare function Collapse({ defaultIsOpen, isOpen: controlledIsOpen, onToggle, className, children, ...props }: CollapseProps): react_jsx_runtime.JSX.Element;
965
1004
  interface CollapseButtonProps {
966
- children?: React.ReactNode;
1005
+ children?: React$1.ReactNode;
967
1006
  className?: string;
968
1007
  }
969
1008
  /**
@@ -971,7 +1010,7 @@ interface CollapseButtonProps {
971
1010
  */
972
1011
  declare function CollapseButton({ children, className }: CollapseButtonProps): react_jsx_runtime.JSX.Element;
973
1012
  interface CollapseContentProps {
974
- children?: React.ReactNode;
1013
+ children?: React$1.ReactNode;
975
1014
  className?: string;
976
1015
  }
977
1016
  /**
@@ -985,7 +1024,7 @@ interface AccordionProps extends ViewProps {
985
1024
  defaultIndex?: number[];
986
1025
  /** Additional className */
987
1026
  className?: string;
988
- children?: React.ReactNode;
1027
+ children?: React$1.ReactNode;
989
1028
  }
990
1029
  /**
991
1030
  * Accordion component for multiple collapsible sections.
@@ -1005,7 +1044,7 @@ interface AccordionProps extends ViewProps {
1005
1044
  declare function Accordion({ allowMultiple, defaultIndex, className, children, ...props }: AccordionProps): react_jsx_runtime.JSX.Element;
1006
1045
  interface AccordionItemProps {
1007
1046
  index?: number;
1008
- children?: React.ReactNode;
1047
+ children?: React$1.ReactNode;
1009
1048
  className?: string;
1010
1049
  }
1011
1050
  /**
@@ -1015,7 +1054,7 @@ declare function AccordionItem({ index, children, className }: AccordionItemProp
1015
1054
  interface AccordionButtonProps {
1016
1055
  isOpen?: boolean;
1017
1056
  onToggle?: () => void;
1018
- children?: React.ReactNode;
1057
+ children?: React$1.ReactNode;
1019
1058
  className?: string;
1020
1059
  }
1021
1060
  /**
@@ -1024,7 +1063,7 @@ interface AccordionButtonProps {
1024
1063
  declare function AccordionButton({ isOpen, onToggle, children, className, }: AccordionButtonProps): react_jsx_runtime.JSX.Element;
1025
1064
  interface AccordionPanelProps {
1026
1065
  isOpen?: boolean;
1027
- children?: React.ReactNode;
1066
+ children?: React$1.ReactNode;
1028
1067
  className?: string;
1029
1068
  }
1030
1069
  /**
@@ -1034,12 +1073,12 @@ declare function AccordionPanel({ isOpen, children, className }: AccordionPanelP
1034
1073
 
1035
1074
  interface BreadcrumbsProps extends ViewProps {
1036
1075
  /** Custom separator */
1037
- separator?: React.ReactNode;
1076
+ separator?: React$1.ReactNode;
1038
1077
  /** Maximum items to show (with collapse) */
1039
1078
  maxItems?: number;
1040
1079
  /** Additional className */
1041
1080
  className?: string;
1042
- children?: React.ReactNode;
1081
+ children?: React$1.ReactNode;
1043
1082
  }
1044
1083
  /**
1045
1084
  * Breadcrumbs navigation component.
@@ -1061,7 +1100,7 @@ interface BreadcrumbItemProps {
1061
1100
  onPress?: () => void;
1062
1101
  /** Additional className */
1063
1102
  className?: string;
1064
- children?: React.ReactNode;
1103
+ children?: React$1.ReactNode;
1065
1104
  }
1066
1105
  /**
1067
1106
  * Individual breadcrumb item.
@@ -1084,7 +1123,7 @@ interface PopoverProps extends ViewProps {
1084
1123
  closeDelay?: number;
1085
1124
  /** Additional className */
1086
1125
  className?: string;
1087
- children?: React.ReactNode;
1126
+ children?: React$1.ReactNode;
1088
1127
  }
1089
1128
  /**
1090
1129
  * Popover component for displaying floating content.
@@ -1101,7 +1140,7 @@ interface PopoverProps extends ViewProps {
1101
1140
  */
1102
1141
  declare function Popover({ placement, isOpen: controlledIsOpen, onOpenChange, closeOnClickOutside, triggerMode, closeDelay, className, children, ...props }: PopoverProps): react_jsx_runtime.JSX.Element;
1103
1142
  interface PopoverTriggerProps {
1104
- children: React.ReactNode;
1143
+ children: React$1.ReactNode;
1105
1144
  className?: string;
1106
1145
  }
1107
1146
  /**
@@ -1109,7 +1148,7 @@ interface PopoverTriggerProps {
1109
1148
  */
1110
1149
  declare function PopoverTrigger({ children, className }: PopoverTriggerProps): react_jsx_runtime.JSX.Element;
1111
1150
  interface PopoverContentProps {
1112
- children?: React.ReactNode;
1151
+ children?: React$1.ReactNode;
1113
1152
  className?: string;
1114
1153
  }
1115
1154
  /**
@@ -1117,7 +1156,7 @@ interface PopoverContentProps {
1117
1156
  */
1118
1157
  declare function PopoverContent({ children, className }: PopoverContentProps): react_jsx_runtime.JSX.Element | null;
1119
1158
  interface PopoverCloseButtonProps {
1120
- children?: React.ReactNode;
1159
+ children?: React$1.ReactNode;
1121
1160
  className?: string;
1122
1161
  }
1123
1162
  /**
@@ -1132,7 +1171,7 @@ interface MenuProps extends ViewProps {
1132
1171
  onOpenChange?: (isOpen: boolean) => void;
1133
1172
  /** Additional className */
1134
1173
  className?: string;
1135
- children?: React.ReactNode;
1174
+ children?: React$1.ReactNode;
1136
1175
  }
1137
1176
  /**
1138
1177
  * Menu component for dropdown menus.
@@ -1152,7 +1191,7 @@ interface MenuProps extends ViewProps {
1152
1191
  */
1153
1192
  declare function Menu({ isOpen: controlledIsOpen, onOpenChange, className, children, ...props }: MenuProps): react_jsx_runtime.JSX.Element;
1154
1193
  interface MenuTriggerProps {
1155
- children: React.ReactNode;
1194
+ children: React$1.ReactNode;
1156
1195
  className?: string;
1157
1196
  }
1158
1197
  /**
@@ -1160,7 +1199,7 @@ interface MenuTriggerProps {
1160
1199
  */
1161
1200
  declare function MenuTrigger({ children, className }: MenuTriggerProps): react_jsx_runtime.JSX.Element;
1162
1201
  interface MenuListProps {
1163
- children?: React.ReactNode;
1202
+ children?: React$1.ReactNode;
1164
1203
  className?: string;
1165
1204
  }
1166
1205
  /**
@@ -1175,10 +1214,10 @@ interface MenuItemProps {
1175
1214
  /** Whether the item is destructive (shows in red) */
1176
1215
  isDestructive?: boolean;
1177
1216
  /** Icon element */
1178
- icon?: React.ReactNode;
1217
+ icon?: React$1.ReactNode;
1179
1218
  /** Additional className */
1180
1219
  className?: string;
1181
- children?: React.ReactNode;
1220
+ children?: React$1.ReactNode;
1182
1221
  }
1183
1222
  /**
1184
1223
  * Individual menu item.
@@ -1194,7 +1233,7 @@ declare function MenuDivider({ className }: MenuDividerProps): react_jsx_runtime
1194
1233
  interface MenuGroupProps {
1195
1234
  /** Group label */
1196
1235
  label?: string;
1197
- children?: React.ReactNode;
1236
+ children?: React$1.ReactNode;
1198
1237
  className?: string;
1199
1238
  }
1200
1239
  /**
@@ -1265,7 +1304,7 @@ interface ToolbarButtonProps extends ViewProps {
1265
1304
  /** Button label */
1266
1305
  label: string;
1267
1306
  /** Icon component */
1268
- icon?: React.ReactNode;
1307
+ icon?: React$1.ReactNode;
1269
1308
  /**
1270
1309
  * Whether the button is in active/selected state.
1271
1310
  * - `true`: pressed/active appearance (darker, white text, orange icon)
@@ -1286,7 +1325,7 @@ interface ToolbarButtonProps extends ViewProps {
1286
1325
  /** Press handler */
1287
1326
  onPress?: () => void;
1288
1327
  /** Menu content (renders in popover) */
1289
- menuContent?: React.ReactNode;
1328
+ menuContent?: React$1.ReactNode;
1290
1329
  /** Additional className */
1291
1330
  className?: string;
1292
1331
  }
@@ -1325,7 +1364,7 @@ interface ToolbarButtonGroupProps extends ViewProps {
1325
1364
  gap?: 'none' | 'sm' | 'md';
1326
1365
  /** Additional className */
1327
1366
  className?: string;
1328
- children?: React.ReactNode;
1367
+ children?: React$1.ReactNode;
1329
1368
  }
1330
1369
  /**
1331
1370
  * Container for grouping toolbar buttons together.
@@ -1359,7 +1398,7 @@ interface RadioGroupProps extends ViewProps {
1359
1398
  label?: string;
1360
1399
  /** Additional className */
1361
1400
  className?: string;
1362
- children?: React.ReactNode;
1401
+ children?: React$1.ReactNode;
1363
1402
  }
1364
1403
  /**
1365
1404
  * RadioGroup component for grouping radio buttons.
@@ -1383,7 +1422,7 @@ interface RadioProps extends ViewProps {
1383
1422
  color?: RadioColor;
1384
1423
  /** Additional className */
1385
1424
  className?: string;
1386
- children?: React.ReactNode;
1425
+ children?: React$1.ReactNode;
1387
1426
  }
1388
1427
  /**
1389
1428
  * Radio button component.
@@ -1412,7 +1451,7 @@ interface DrawerProps extends ViewProps {
1412
1451
  title?: string;
1413
1452
  /** Additional className for the drawer content */
1414
1453
  className?: string;
1415
- children?: React.ReactNode;
1454
+ children?: React$1.ReactNode;
1416
1455
  }
1417
1456
  /**
1418
1457
  * Drawer component for side panel overlays.
@@ -1433,7 +1472,7 @@ declare function Drawer({ isOpen, onClose, placement, size, closeOnOverlayClick,
1433
1472
  interface DrawerHeaderProps extends ViewProps {
1434
1473
  /** Additional className */
1435
1474
  className?: string;
1436
- children?: React.ReactNode;
1475
+ children?: React$1.ReactNode;
1437
1476
  }
1438
1477
  /**
1439
1478
  * Header section for the drawer.
@@ -1444,7 +1483,7 @@ interface DrawerBodyProps extends ViewProps {
1444
1483
  scrollable?: boolean;
1445
1484
  /** Additional className */
1446
1485
  className?: string;
1447
- children?: React.ReactNode;
1486
+ children?: React$1.ReactNode;
1448
1487
  }
1449
1488
  /**
1450
1489
  * Body/content section for the drawer.
@@ -1453,7 +1492,7 @@ declare function DrawerBody({ scrollable, className, children, ...props }: Drawe
1453
1492
  interface DrawerFooterProps extends ViewProps {
1454
1493
  /** Additional className */
1455
1494
  className?: string;
1456
- children?: React.ReactNode;
1495
+ children?: React$1.ReactNode;
1457
1496
  }
1458
1497
  /**
1459
1498
  * Footer section for the drawer, typically for action buttons.
@@ -1520,6 +1559,19 @@ interface CircularProgressProps extends ViewProps {
1520
1559
  showValue?: boolean;
1521
1560
  /** Custom value format function */
1522
1561
  formatValue?: (value: number, max: number) => string;
1562
+ /**
1563
+ * Custom center content (a numeral, a timer readout, an icon). When provided it
1564
+ * replaces the {@link showValue} text — the ring becomes a generic container for
1565
+ * any centered element. See {@link CircularTimer} for the batteries-included timer.
1566
+ */
1567
+ children?: React$1.ReactNode;
1568
+ /**
1569
+ * Fill the parent container (responsive) instead of drawing a fixed `size` box.
1570
+ * The SVG uses a `0 0 size size` viewBox scaled to the container, so `size` still
1571
+ * sets the geometry proportions (radius, stroke) while the ring grows/shrinks with
1572
+ * its parent — e.g. a wall column. Default false (fixed `size` px).
1573
+ */
1574
+ fill?: boolean;
1523
1575
  /** Additional className */
1524
1576
  className?: string;
1525
1577
  }
@@ -1529,7 +1581,7 @@ interface CircularProgressProps extends ViewProps {
1529
1581
  * @example
1530
1582
  * <CircularProgress value={75} showValue />
1531
1583
  */
1532
- declare function CircularProgress({ value, max, isIndeterminate, size, strokeWidth, color, showValue, formatValue, className, ...props }: CircularProgressProps): react_jsx_runtime.JSX.Element;
1584
+ declare function CircularProgress({ value, max, isIndeterminate, size, strokeWidth, color, showValue, formatValue, children, fill, className, ...props }: CircularProgressProps): react_jsx_runtime.JSX.Element;
1533
1585
  interface ProgressStepsProps extends ViewProps {
1534
1586
  /** Current step (0-indexed) */
1535
1587
  currentStep: number;
@@ -1583,7 +1635,7 @@ interface ToastProviderProps {
1583
1635
  defaultDuration?: number;
1584
1636
  /** Maximum number of visible toasts */
1585
1637
  maxToasts?: number;
1586
- children?: React.ReactNode;
1638
+ children?: React$1.ReactNode;
1587
1639
  }
1588
1640
  /**
1589
1641
  * Provider component for the toast notification system.
@@ -1677,7 +1729,7 @@ interface AutocompleteProps<T = string> extends ViewProps {
1677
1729
  /** Custom filter function */
1678
1730
  filterFn?: (option: AutocompleteOption<T>, inputValue: string) => boolean;
1679
1731
  /** Custom render function for options */
1680
- renderOption?: (option: AutocompleteOption<T>, isHighlighted: boolean) => React.ReactNode;
1732
+ renderOption?: (option: AutocompleteOption<T>, isHighlighted: boolean) => React$1.ReactNode;
1681
1733
  /** Text to show when no options match */
1682
1734
  noOptionsText?: string;
1683
1735
  /** Text to show when loading */
@@ -1723,7 +1775,7 @@ type HelpTipPlacement = 'top' | 'bottom' | 'left' | 'right';
1723
1775
  type HelpTipIcon = 'help' | 'info' | 'warning';
1724
1776
  interface HelpTipProps extends ViewProps {
1725
1777
  /** Tooltip content */
1726
- content: React.ReactNode;
1778
+ content: React$1.ReactNode;
1727
1779
  /** Size of the icon */
1728
1780
  size?: HelpTipSize;
1729
1781
  /** Placement of the tooltip */
@@ -1774,7 +1826,7 @@ interface LabelWithHelpProps extends ViewProps {
1774
1826
  /** Label text */
1775
1827
  label: string;
1776
1828
  /** Help content */
1777
- helpContent: React.ReactNode;
1829
+ helpContent: React$1.ReactNode;
1778
1830
  /** Whether the field is required */
1779
1831
  isRequired?: boolean;
1780
1832
  /** Size of the help icon */
@@ -1808,7 +1860,7 @@ interface FormFieldProps extends ViewProps {
1808
1860
  /** Whether the field is read-only */
1809
1861
  isReadOnly?: boolean;
1810
1862
  /** Help tooltip content */
1811
- helpContent?: React.ReactNode;
1863
+ helpContent?: React$1.ReactNode;
1812
1864
  /** Size of the label */
1813
1865
  labelSize?: 'sm' | 'md' | 'lg';
1814
1866
  /** Direction of the layout */
@@ -1817,7 +1869,7 @@ interface FormFieldProps extends ViewProps {
1817
1869
  labelWidth?: number | string;
1818
1870
  /** Additional className */
1819
1871
  className?: string;
1820
- children?: React.ReactNode;
1872
+ children?: React$1.ReactNode;
1821
1873
  }
1822
1874
  /**
1823
1875
  * FormField component for wrapping form inputs with label, help text, and error states.
@@ -1852,7 +1904,7 @@ interface FormSectionProps extends ViewProps {
1852
1904
  description?: string;
1853
1905
  /** Additional className */
1854
1906
  className?: string;
1855
- children?: React.ReactNode;
1907
+ children?: React$1.ReactNode;
1856
1908
  }
1857
1909
  /**
1858
1910
  * FormSection component for grouping related form fields.
@@ -1873,7 +1925,7 @@ interface FormActionsProps extends ViewProps {
1873
1925
  align?: 'left' | 'center' | 'right' | 'between';
1874
1926
  /** Additional className */
1875
1927
  className?: string;
1876
- children?: React.ReactNode;
1928
+ children?: React$1.ReactNode;
1877
1929
  }
1878
1930
  /**
1879
1931
  * FormActions component for form action buttons.
@@ -1890,7 +1942,7 @@ interface FormRowProps extends ViewProps {
1890
1942
  gap?: 'sm' | 'md' | 'lg';
1891
1943
  /** Additional className */
1892
1944
  className?: string;
1893
- children?: React.ReactNode;
1945
+ children?: React$1.ReactNode;
1894
1946
  }
1895
1947
  /**
1896
1948
  * FormRow component for laying out multiple form fields horizontally.
@@ -1907,14 +1959,14 @@ interface FormRowProps extends ViewProps {
1907
1959
  */
1908
1960
  declare function FormRow({ gap, className, children, ...props }: FormRowProps): react_jsx_runtime.JSX.Element;
1909
1961
 
1910
- type Gap = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 8 | 10 | 12;
1962
+ type Gap$1 = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 8 | 10 | 12;
1911
1963
  interface StackProps extends ViewProps {
1912
- gap?: Gap;
1964
+ gap?: Gap$1;
1913
1965
  align?: 'start' | 'center' | 'end' | 'stretch';
1914
1966
  justify?: 'start' | 'center' | 'end' | 'between' | 'around';
1915
1967
  wrap?: boolean;
1916
1968
  className?: string;
1917
- children: React.ReactNode;
1969
+ children: React$1.ReactNode;
1918
1970
  }
1919
1971
  declare function Stack({ gap, align, justify, wrap, className, children, ...props }: StackProps): react_jsx_runtime.JSX.Element;
1920
1972
  declare function HStack(props: StackProps): react_jsx_runtime.JSX.Element;
@@ -1922,19 +1974,19 @@ declare function VStack(props: StackProps): react_jsx_runtime.JSX.Element;
1922
1974
 
1923
1975
  interface SectionProps extends ViewProps {
1924
1976
  className?: string;
1925
- children: React.ReactNode;
1977
+ children: React$1.ReactNode;
1926
1978
  }
1927
1979
  declare function Section({ className, children, ...props }: SectionProps): react_jsx_runtime.JSX.Element;
1928
1980
  interface SectionHeaderProps {
1929
1981
  title: string;
1930
1982
  subtitle?: string;
1931
- trailing?: React.ReactNode;
1983
+ trailing?: React$1.ReactNode;
1932
1984
  className?: string;
1933
1985
  }
1934
1986
  declare function SectionHeader({ title, subtitle, trailing, className }: SectionHeaderProps): react_jsx_runtime.JSX.Element;
1935
1987
  interface SectionContentProps extends ViewProps {
1936
1988
  className?: string;
1937
- children: React.ReactNode;
1989
+ children: React$1.ReactNode;
1938
1990
  }
1939
1991
  declare function SectionContent({ className, children, ...props }: SectionContentProps): react_jsx_runtime.JSX.Element;
1940
1992
 
@@ -1942,7 +1994,7 @@ interface DataRowProps extends ViewProps {
1942
1994
  /** Descriptive label shown on the left */
1943
1995
  label: string;
1944
1996
  /** Value shown on the right -- string renders as Text, ReactNode renders inside a View */
1945
- value: React.ReactNode;
1997
+ value: React$1.ReactNode;
1946
1998
  /** Additional className applied to the value element */
1947
1999
  valueClassName?: string;
1948
2000
  /** Additional className applied to the root container */
@@ -1953,7 +2005,7 @@ declare function DataRow({ label, value, valueClassName, className, ...props }:
1953
2005
  type IconBoxColor = 'primary' | 'secondary' | 'success' | 'error' | 'warning' | 'info' | 'neutral';
1954
2006
  type IconBoxSize = 'sm' | 'md' | 'lg';
1955
2007
  interface IconBoxProps extends ViewProps {
1956
- icon: React.ComponentType<{
2008
+ icon: React$1.ComponentType<{
1957
2009
  size?: number;
1958
2010
  className?: string;
1959
2011
  }>;
@@ -1969,17 +2021,17 @@ interface SurfaceProps extends ViewProps {
1969
2021
  glowIntensity?: GlowIntensity;
1970
2022
  theme?: 'light' | 'dark';
1971
2023
  className?: string;
1972
- children: React.ReactNode;
2024
+ children: React$1.ReactNode;
1973
2025
  }
1974
2026
  declare function Surface({ elevation, glowColor, glowIntensity, theme, className, style, children, ...props }: SurfaceProps): react_jsx_runtime.JSX.Element;
1975
2027
 
1976
2028
  interface ListItemProps extends PressableProps {
1977
2029
  className?: string;
1978
- children: React.ReactNode;
2030
+ children: React$1.ReactNode;
1979
2031
  }
1980
2032
  declare function ListItem({ className, children, onPress, ...props }: ListItemProps): react_jsx_runtime.JSX.Element;
1981
2033
  interface ListItemIconProps extends ViewProps {
1982
- icon: React.ComponentType<{
2034
+ icon: React$1.ComponentType<{
1983
2035
  size?: number;
1984
2036
  className?: string;
1985
2037
  }>;
@@ -1994,7 +2046,7 @@ interface ListItemContentProps extends ViewProps {
1994
2046
  declare function ListItemContent({ title, subtitle, className, ...props }: ListItemContentProps): react_jsx_runtime.JSX.Element;
1995
2047
  interface ListItemTrailingProps extends ViewProps {
1996
2048
  className?: string;
1997
- children: React.ReactNode;
2049
+ children: React$1.ReactNode;
1998
2050
  }
1999
2051
  declare function ListItemTrailing({ className, children, ...props }: ListItemTrailingProps): react_jsx_runtime.JSX.Element;
2000
2052
  interface ListItemDividerProps extends ViewProps {
@@ -2008,7 +2060,7 @@ type PillColor = 'default' | 'primary' | 'secondary' | 'success' | 'error' | 'wa
2008
2060
  type PillSize = 'xs' | 'sm' | 'md';
2009
2061
  interface PillProps extends ViewProps {
2010
2062
  /** Pill content */
2011
- children: React.ReactNode;
2063
+ children: React$1.ReactNode;
2012
2064
  /** Visual variant */
2013
2065
  variant?: PillVariant;
2014
2066
  /** Color scheme */
@@ -2018,7 +2070,7 @@ interface PillProps extends ViewProps {
2018
2070
  /** Fully rounded (default true) or slight radius */
2019
2071
  rounded?: boolean;
2020
2072
  /** Element before the label (e.g., Indicator dot) */
2021
- leftElement?: React.ReactNode;
2073
+ leftElement?: React$1.ReactNode;
2022
2074
  /** Press handler (makes pill interactive) */
2023
2075
  onPress?: () => void;
2024
2076
  /** Additional className */
@@ -2026,6 +2078,30 @@ interface PillProps extends ViewProps {
2026
2078
  }
2027
2079
  declare function Pill({ children, variant, color, size, rounded, leftElement, onPress, className, ...props }: PillProps): react_jsx_runtime.JSX.Element;
2028
2080
 
2081
+ interface TileProps extends ViewProps {
2082
+ /** Uppercase micro-label shown above the value */
2083
+ label: string;
2084
+ /** Primary value, rendered in a bold mono face */
2085
+ value: string;
2086
+ /** Tints the value (status/accent hex or CSS color); defaults to primary text */
2087
+ valueColor?: string;
2088
+ /** Content alignment within the tile (default: 'center') */
2089
+ align?: 'center' | 'start';
2090
+ /** Additional className */
2091
+ className?: string;
2092
+ }
2093
+ /**
2094
+ * Tile — a compact label-over-value stat card.
2095
+ *
2096
+ * A rounded raised box with an uppercase micro-label stacked over a bold mono
2097
+ * value. Fills its flex slot so a row of Tiles reads as an even HStack.
2098
+ *
2099
+ * @example
2100
+ * <Tile label="Volume" value="76%" />
2101
+ * <Tile label="Fatigue" value="MOD" valueColor="#F5A623" />
2102
+ */
2103
+ declare function Tile({ label, value, valueColor, align, className, ...props }: TileProps): react_jsx_runtime.JSX.Element;
2104
+
2029
2105
  type TypographyVariant = 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6' | 'body1' | 'body2' | 'subtitle1' | 'subtitle2' | 'caption' | 'overline' | 'button' | 'mono' | 'monoLabel';
2030
2106
  type TypographyColor = 'primary' | 'secondary' | 'tertiary' | 'disabled' | 'inverse' | 'success' | 'error' | 'warning' | 'info' | 'inherit';
2031
2107
  type TypographyAlign = 'left' | 'center' | 'right' | 'justify';
@@ -2049,7 +2125,7 @@ interface TypographyProps extends TextProps {
2049
2125
  maxLines?: number;
2050
2126
  /** Additional className */
2051
2127
  className?: string;
2052
- children?: React.ReactNode;
2128
+ children?: React$1.ReactNode;
2053
2129
  }
2054
2130
  /**
2055
2131
  * Typography component for consistent text styling.
@@ -2119,7 +2195,7 @@ interface SidebarProps extends ViewProps {
2119
2195
  collapsedWidth?: number;
2120
2196
  /** Additional className */
2121
2197
  className?: string;
2122
- children?: React.ReactNode;
2198
+ children?: React$1.ReactNode;
2123
2199
  }
2124
2200
  /**
2125
2201
  * Sidebar navigation component.
@@ -2142,7 +2218,7 @@ interface SidebarProps extends ViewProps {
2142
2218
  */
2143
2219
  declare function Sidebar({ isCollapsed, activeItem, onItemSelect, width, collapsedWidth, className, children, ...props }: SidebarProps): react_jsx_runtime.JSX.Element;
2144
2220
  interface SidebarHeaderProps {
2145
- children?: React.ReactNode;
2221
+ children?: React$1.ReactNode;
2146
2222
  className?: string;
2147
2223
  }
2148
2224
  /**
@@ -2150,7 +2226,7 @@ interface SidebarHeaderProps {
2150
2226
  */
2151
2227
  declare function SidebarHeader({ children, className }: SidebarHeaderProps): react_jsx_runtime.JSX.Element;
2152
2228
  interface SidebarContentProps {
2153
- children?: React.ReactNode;
2229
+ children?: React$1.ReactNode;
2154
2230
  className?: string;
2155
2231
  }
2156
2232
  /**
@@ -2158,7 +2234,7 @@ interface SidebarContentProps {
2158
2234
  */
2159
2235
  declare function SidebarContent({ children, className }: SidebarContentProps): react_jsx_runtime.JSX.Element;
2160
2236
  interface SidebarFooterProps {
2161
- children?: React.ReactNode;
2237
+ children?: React$1.ReactNode;
2162
2238
  className?: string;
2163
2239
  }
2164
2240
  /**
@@ -2168,7 +2244,7 @@ declare function SidebarFooter({ children, className }: SidebarFooterProps): rea
2168
2244
  interface SidebarSectionProps {
2169
2245
  /** Section title */
2170
2246
  title?: string;
2171
- children?: React.ReactNode;
2247
+ children?: React$1.ReactNode;
2172
2248
  className?: string;
2173
2249
  }
2174
2250
  /**
@@ -2179,14 +2255,14 @@ interface SidebarItemProps extends Omit<PressableProps, 'children'> {
2179
2255
  /** Unique identifier for the item */
2180
2256
  id: string;
2181
2257
  /** Icon component */
2182
- icon?: React.ComponentType<{
2258
+ icon?: React$1.ComponentType<{
2183
2259
  size?: number;
2184
2260
  className?: string;
2185
2261
  }>;
2186
2262
  /** Label text */
2187
2263
  label: string;
2188
2264
  /** Badge content (e.g., notification count) */
2189
- badge?: React.ReactNode;
2265
+ badge?: React$1.ReactNode;
2190
2266
  /** Whether this item has nested items */
2191
2267
  hasChildren?: boolean;
2192
2268
  /** Whether nested items are expanded */
@@ -2230,7 +2306,7 @@ interface TableProps extends ViewProps {
2230
2306
  loadingRowCount?: number;
2231
2307
  /** Additional className */
2232
2308
  className?: string;
2233
- children?: React.ReactNode;
2309
+ children?: React$1.ReactNode;
2234
2310
  }
2235
2311
  /**
2236
2312
  * Table component with sorting support.
@@ -2257,7 +2333,7 @@ interface TableProps extends ViewProps {
2257
2333
  */
2258
2334
  declare function Table({ sortColumn, sortDirection, onSort, selectedRows, onSelectRow, onSelectAll, selectable, rowIds, isLoading, loadingRowCount, className, children, ...props }: TableProps): react_jsx_runtime.JSX.Element;
2259
2335
  interface TableHeaderProps {
2260
- children?: React.ReactNode;
2336
+ children?: React$1.ReactNode;
2261
2337
  className?: string;
2262
2338
  }
2263
2339
  /**
@@ -2265,7 +2341,7 @@ interface TableHeaderProps {
2265
2341
  */
2266
2342
  declare function TableHeader({ children, className }: TableHeaderProps): react_jsx_runtime.JSX.Element;
2267
2343
  interface TableBodyProps {
2268
- children?: React.ReactNode;
2344
+ children?: React$1.ReactNode;
2269
2345
  className?: string;
2270
2346
  }
2271
2347
  /**
@@ -2279,7 +2355,7 @@ interface TableRowProps extends ViewProps {
2279
2355
  isHoverable?: boolean;
2280
2356
  /** Additional className */
2281
2357
  className?: string;
2282
- children?: React.ReactNode;
2358
+ children?: React$1.ReactNode;
2283
2359
  }
2284
2360
  /**
2285
2361
  * Table row.
@@ -2294,7 +2370,7 @@ interface TableHeaderCellProps extends Omit<PressableProps, 'children'> {
2294
2370
  width?: number;
2295
2371
  /** Additional className */
2296
2372
  className?: string;
2297
- children?: React.ReactNode;
2373
+ children?: React$1.ReactNode;
2298
2374
  }
2299
2375
  /**
2300
2376
  * Table header cell with optional sorting.
@@ -2307,7 +2383,7 @@ interface TableCellProps extends ViewProps {
2307
2383
  width?: number;
2308
2384
  /** Additional className */
2309
2385
  className?: string;
2310
- children?: React.ReactNode;
2386
+ children?: React$1.ReactNode;
2311
2387
  }
2312
2388
  /**
2313
2389
  * Table data cell.
@@ -2378,7 +2454,7 @@ declare function useTable<T extends Record<string, any>>({ data, defaultPageSize
2378
2454
 
2379
2455
  interface EmptyStateProps extends ViewProps {
2380
2456
  /** Icon component to display */
2381
- icon?: React.ComponentType<{
2457
+ icon?: React$1.ComponentType<{
2382
2458
  size?: number;
2383
2459
  className?: string;
2384
2460
  }>;
@@ -2387,7 +2463,7 @@ interface EmptyStateProps extends ViewProps {
2387
2463
  /** Description text */
2388
2464
  description?: string;
2389
2465
  /** Action element (usually a button) */
2390
- action?: React.ReactNode;
2466
+ action?: React$1.ReactNode;
2391
2467
  /** Additional className */
2392
2468
  className?: string;
2393
2469
  }
@@ -2413,7 +2489,7 @@ interface StepperProps extends ViewProps {
2413
2489
  orientation?: StepperOrientation;
2414
2490
  /** Additional className */
2415
2491
  className?: string;
2416
- children?: React.ReactNode;
2492
+ children?: React$1.ReactNode;
2417
2493
  }
2418
2494
  /**
2419
2495
  * Stepper component for multi-step flows.
@@ -2442,7 +2518,7 @@ interface StepProps {
2442
2518
  status?: StepStatus;
2443
2519
  /** Additional className */
2444
2520
  className?: string;
2445
- children?: React.ReactNode;
2521
+ children?: React$1.ReactNode;
2446
2522
  }
2447
2523
  /**
2448
2524
  * Individual step in the stepper.
@@ -2454,7 +2530,7 @@ interface StepIndicatorProps {
2454
2530
  /** Step index (injected by Step) */
2455
2531
  index?: number;
2456
2532
  /** Custom icon */
2457
- icon?: React.ReactNode;
2533
+ icon?: React$1.ReactNode;
2458
2534
  /** Additional className */
2459
2535
  className?: string;
2460
2536
  }
@@ -2467,7 +2543,7 @@ interface StepLabelProps {
2467
2543
  status?: StepStatus;
2468
2544
  /** Additional className */
2469
2545
  className?: string;
2470
- children?: React.ReactNode;
2546
+ children?: React$1.ReactNode;
2471
2547
  }
2472
2548
  /**
2473
2549
  * Label for a step.
@@ -2478,7 +2554,7 @@ interface StepContentProps {
2478
2554
  status?: StepStatus;
2479
2555
  /** Additional className */
2480
2556
  className?: string;
2481
- children?: React.ReactNode;
2557
+ children?: React$1.ReactNode;
2482
2558
  }
2483
2559
  /**
2484
2560
  * Content area for vertical stepper.
@@ -2534,6 +2610,98 @@ declare function DateTime({ value, format, customFormat, isUTC, hour12, seconds,
2534
2610
  */
2535
2611
  declare function formatDateTime(value: number | Date | string | null | undefined, format?: DateTimeFormat, isUTC?: boolean, fallback?: string): string;
2536
2612
 
2613
+ type TimerMode = 'up' | 'down';
2614
+ interface UseTimerOptions {
2615
+ /** 'up' counts elapsed upward; 'down' counts remaining toward 0. Default 'up'. */
2616
+ mode?: TimerMode;
2617
+ /** Total duration in ms. Required for 'down' mode and for progress in 'up' mode. */
2618
+ durationMs?: number;
2619
+ /** Controlled elapsed time in ms. When provided, the hook derives everything from it and never ticks. */
2620
+ elapsedMs?: number;
2621
+ /** Self-tick only advances while running. */
2622
+ running?: boolean;
2623
+ /** Enable the internal interval. Ignored when `elapsedMs` is controlled. */
2624
+ autoTick?: boolean;
2625
+ /** Interval step in ms. Default 1000. */
2626
+ tickMs?: number;
2627
+ }
2628
+ interface TimerState {
2629
+ elapsedMs: number;
2630
+ remainingMs: number;
2631
+ /** 0..1, clamped. */
2632
+ progress: number;
2633
+ /** mm:ss for the active direction (remaining when 'down', elapsed when 'up'). */
2634
+ label: string;
2635
+ /** True once a down-timer reaches 0 (or an up-timer passes its duration). */
2636
+ done: boolean;
2637
+ }
2638
+ /** Format a millisecond duration as mm:ss, rounding partial seconds up. */
2639
+ declare function formatDuration(ms: number): string;
2640
+ declare function useTimer(options?: UseTimerOptions): TimerState;
2641
+
2642
+ interface TimerReadoutProps extends ViewProps {
2643
+ /** 'up' counts elapsed upward; 'down' counts remaining toward 0. Default 'up'. */
2644
+ mode?: TimerMode;
2645
+ /** Controlled elapsed time in ms. When set, the value is derived from it and never self-ticks. */
2646
+ elapsedMs?: number;
2647
+ /** Total duration in ms — required for 'down' mode and for the ` / total` suffix. */
2648
+ durationMs?: number;
2649
+ /** Live cue: the current value goes green while true. */
2650
+ running?: boolean;
2651
+ /** Enable the internal 1s interval (ignored when `elapsedMs` is controlled). */
2652
+ autoTick?: boolean;
2653
+ /** When `durationMs` is set, append ` / mm:ss`. */
2654
+ showTotal?: boolean;
2655
+ /** Leading glyph; defaults to the ⏱ unicode. */
2656
+ glyph?: ReactNode;
2657
+ }
2658
+ /**
2659
+ * Atom · TimerReadout — a small textual timer (⏱ + mono, right-justified) built on
2660
+ * [useTimer]. Matches the TopBar clock treatment: only the live/current value goes
2661
+ * green (status-live-muted) while `running`; the ` / total` suffix stays dim tertiary.
2662
+ */
2663
+ declare function TimerReadout({ mode, elapsedMs, durationMs, running, autoTick, showTotal, glyph, className, ...rest }: TimerReadoutProps): react_jsx_runtime.JSX.Element;
2664
+
2665
+ interface CircularTimerProps {
2666
+ /** Total duration (ms). `down`: the countdown length; `up`: the target for progress. */
2667
+ durationMs: number;
2668
+ /** Controlled elapsed time (ms). */
2669
+ elapsedMs: number;
2670
+ /** `down` (default) counts remaining toward 0 (ring drains); `up` counts elapsed up (ring fills). */
2671
+ mode?: TimerMode;
2672
+ /** Ring diameter (px) — the geometry/stroke reference. Default 160. */
2673
+ size?: number;
2674
+ /** Ring stroke width (px). Default 8. */
2675
+ strokeWidth?: number;
2676
+ /** Fill the parent container (responsive) instead of a fixed `size` box. */
2677
+ fill?: boolean;
2678
+ /** Ring color while running. Default `primary`. */
2679
+ color?: ProgressColor;
2680
+ /**
2681
+ * `down` mode: the text shown in the center — and the color the ring fills to — when
2682
+ * the countdown completes (e.g. `doneLabel="GO"`). Omit to keep showing `0:00`.
2683
+ */
2684
+ doneLabel?: string;
2685
+ /** Ring + center color when complete (with {@link doneLabel}). Default `success`. */
2686
+ doneColor?: ProgressColor;
2687
+ /** Optional controls rendered below the ring (e.g. +30s / Skip). */
2688
+ controls?: ReactNode;
2689
+ /** Accessibility label for the timer. Defaults to a seconds-remaining description. */
2690
+ accessibilityLabel?: string;
2691
+ testID?: string;
2692
+ }
2693
+ /**
2694
+ * A circular countdown / countup with a time readout in the center — the graphical
2695
+ * sibling of {@link TimerReadout}. Batteries-included: owns {@link useTimer} (pass
2696
+ * controlled `durationMs` + `elapsedMs`) and composes {@link CircularProgress} for the
2697
+ * arc (`down` drains as time runs out, `up` fills), rendering the mm:ss label in its
2698
+ * center slot. On completion (`down` + {@link doneLabel}) the ring fills fully in
2699
+ * {@link doneColor} and the center reads the done label — the "go" moment. An optional
2700
+ * {@link controls} node renders below the ring. Consumers (e.g. `RestTimer`'s `ring`
2701
+ * variant) wrap this and add their own domain chrome.
2702
+ */
2703
+ declare function CircularTimer({ durationMs, elapsedMs, mode, size, strokeWidth, fill, color, doneLabel, doneColor, controls, accessibilityLabel, testID, }: CircularTimerProps): react_jsx_runtime.JSX.Element;
2704
+
2537
2705
  type MetricTrend = 'up' | 'down' | 'neutral';
2538
2706
  interface MetricProps extends ViewProps {
2539
2707
  value: string;
@@ -2546,7 +2714,7 @@ interface MetricProps extends ViewProps {
2546
2714
  declare function Metric({ value, label, unit, trend, size, className, ...props }: MetricProps): react_jsx_runtime.JSX.Element;
2547
2715
  interface MetricGroupProps extends ViewProps {
2548
2716
  className?: string;
2549
- children: React.ReactNode;
2717
+ children: React$1.ReactNode;
2550
2718
  }
2551
2719
  declare function MetricGroup({ className, children, ...props }: MetricGroupProps): react_jsx_runtime.JSX.Element;
2552
2720
 
@@ -2585,6 +2753,20 @@ interface WeightBadgeProps extends Omit<BaseBadgeProps, 'variant' | 'icon' | 'ch
2585
2753
  }
2586
2754
  declare function WeightBadge({ value, unit, reps, delta, isPr, showIcon, size, onPress, className, ...props }: WeightBadgeProps): react_jsx_runtime.JSX.Element;
2587
2755
 
2756
+ type PRType = 'e1rm' | 'weight' | 'reps' | 'volume' | 'velocity';
2757
+ interface PrBadgeProps extends ViewProps {
2758
+ /** PR type determines auto-generated label */
2759
+ type?: PRType;
2760
+ /** Display label (e.g., "PR e1RM", "PR 5RM"). Auto-generated from type if omitted. */
2761
+ label?: string;
2762
+ /** Show only the star icon, no text label */
2763
+ compact?: boolean;
2764
+ /** Trigger pop animation on mount */
2765
+ animate?: boolean;
2766
+ className?: string;
2767
+ }
2768
+ declare function PrBadge({ type, label: labelProp, compact, animate, className, ...props }: PrBadgeProps): react_jsx_runtime.JSX.Element;
2769
+
2588
2770
  type StatusDotVariant = 'success' | 'warning' | 'error' | 'neutral' | 'on-track' | 'deviation' | 'future';
2589
2771
  interface StatusDotProps extends ViewProps {
2590
2772
  variant: StatusDotVariant;
@@ -2627,6 +2809,8 @@ interface TempoDisplayProps extends ViewProps {
2627
2809
  size?: 'sm' | 'md';
2628
2810
  /** Colored phases or mono (all gray) */
2629
2811
  colored?: boolean;
2812
+ /** Show the "TEMPO" caption before the values. Default true. */
2813
+ showLabel?: boolean;
2630
2814
  /** Show info tooltip on press */
2631
2815
  showInfo?: boolean;
2632
2816
  /**
@@ -2638,7 +2822,7 @@ interface TempoDisplayProps extends ViewProps {
2638
2822
  onPress?: () => void;
2639
2823
  className?: string;
2640
2824
  }
2641
- declare function TempoDisplay({ tempo, size, colored, showInfo, live, onPress, className, ...props }: TempoDisplayProps): react_jsx_runtime.JSX.Element;
2825
+ declare function TempoDisplay({ tempo, size, colored, showLabel, showInfo, live, onPress, className, ...props }: TempoDisplayProps): react_jsx_runtime.JSX.Element;
2642
2826
 
2643
2827
  /**
2644
2828
  * Titan-local phase key. Consumers map their own movement-phase enum onto this
@@ -2651,6 +2835,8 @@ declare const TEMPO_PACING: {
2651
2835
  readonly minPhaseDurationMs: 500;
2652
2836
  };
2653
2837
  type TempoPacingState = 'none' | 'on-pace' | 'behind';
2838
+ /** Active-phase readout mode: elapsed/target `time`, or a `delta` countdown to the target. */
2839
+ type TempoActiveDisplay = 'time' | 'delta';
2654
2840
  /**
2655
2841
  * Classify how a phase's elapsed time tracks against its target duration.
2656
2842
  * `none` when there is no meaningful target; `behind` once elapsed exceeds the
@@ -2659,6 +2845,8 @@ type TempoPacingState = 'none' | 'on-pace' | 'behind';
2659
2845
  declare function getTempoPacingState(elapsedMs: number, targetMs: number | null): TempoPacingState;
2660
2846
  /** Fill percentage (0–100) for the active phase; full when no target is set. */
2661
2847
  declare function getTempoFillPct(elapsedMs: number, targetMs: number | null): number;
2848
+ /** Density. `default` — the compact card/rail treatment. `wall` — the across-the-room dashboard scale. */
2849
+ type TempoBarSize = 'default' | 'wall';
2662
2850
  interface TempoBarProps extends ViewProps {
2663
2851
  /** Phase currently in progress, or null when idle/at rest. */
2664
2852
  activePhase: TempoPhaseKey | null;
@@ -2668,6 +2856,14 @@ interface TempoBarProps extends ViewProps {
2668
2856
  completed?: Partial<Record<TempoPhaseKey, number>>;
2669
2857
  /** Optional per-phase target durations (seconds) for pacing feedback. */
2670
2858
  target?: Partial<Record<TempoPhaseKey, number>>;
2859
+ /** Density: `default` (compact) or `wall` (the across-the-room dashboard scale). */
2860
+ size?: TempoBarSize;
2861
+ /**
2862
+ * Active-phase readout. `time` (default) — `elapsed / target`. `delta` — a countdown
2863
+ * of the remaining time to target (`1.5` → `0.0` → `-1.2` once over), colour-coded like
2864
+ * the bar. Tapping the active segment toggles between the two at runtime.
2865
+ */
2866
+ activeDisplay?: TempoActiveDisplay;
2671
2867
  className?: string;
2672
2868
  }
2673
2869
  /**
@@ -2678,7 +2874,7 @@ interface TempoBarProps extends ViewProps {
2678
2874
  * Presentational only: the consumer derives which phase is active, its elapsed
2679
2875
  * time, and completed durations, then feeds them in.
2680
2876
  */
2681
- declare function TempoBar({ activePhase, phaseElapsedMs, completed, target, className, ...props }: TempoBarProps): react_jsx_runtime.JSX.Element;
2877
+ declare function TempoBar({ activePhase, phaseElapsedMs, completed, target, size, activeDisplay, className, ...props }: TempoBarProps): react_jsx_runtime.JSX.Element;
2682
2878
 
2683
2879
  interface DeviationBarProps extends ViewProps {
2684
2880
  deviation: number;
@@ -2755,13 +2951,354 @@ interface RestTimerProps {
2755
2951
  visible: boolean;
2756
2952
  /** Passive/poll-only mode: hides the Skip and +30s controls, keeps the countdown, progress bar, and next-set line. */
2757
2953
  displayOnly?: boolean;
2954
+ /**
2955
+ * `bar` (default) — the compact linear card (REST label + mm:ss + progress bar +
2956
+ * controls), the mobile bottom-bar treatment. `ring` — the across-the-room wall
2957
+ * treatment: a draining countdown ring (composes {@link CircularProgress}) with a
2958
+ * big remaining-seconds numeral, the next-set line, and the same controls.
2959
+ */
2960
+ variant?: 'bar' | 'ring';
2961
+ /** `ring` diameter in px. Default 180. */
2962
+ size?: number;
2963
+ }
2964
+ declare function RestTimer({ totalSeconds, elapsedMs, onSkip, onAddTime, nextSetInfo, visible, displayOnly, variant, size, }: RestTimerProps): react_jsx_runtime.JSX.Element | null;
2965
+
2966
+ /**
2967
+ * Shared "segmented metric" typography primitive — the Inter · 600 · letter-spacing 1
2968
+ * value/separator cell used by both {@link TempoDisplay} (tempo digits + dashes) and
2969
+ * {@link SetsRepsLoad} (sets × reps @ load). Extracted so the two read as one visual
2970
+ * language instead of drifting copies.
2971
+ */
2972
+ declare const METRIC_FONT = "Inter, sans-serif";
2973
+ interface MetricCellProps {
2974
+ children: ReactNode;
2975
+ /** Cell text color — value cells take a primary color, separators a muted one. */
2976
+ color: string;
2977
+ fontSize?: number;
2978
+ }
2979
+ declare function MetricCell({ children, color, fontSize }: MetricCellProps): react_jsx_runtime.JSX.Element;
2980
+
2981
+ interface SetsRepsLoadProps extends ViewProps {
2982
+ sets: number;
2983
+ reps: number | string;
2984
+ load: number;
2985
+ /** Displayed load unit label (e.g. "lb", "kg"). */
2986
+ unit?: string;
2987
+ className?: string;
2988
+ }
2989
+ /**
2990
+ * The `sets × reps @ load` prescription line, in the TempoDisplay visual language
2991
+ * (Inter · 600 · letter-spacing 1 · value cells with muted `×` / `@` separators).
2992
+ * Shares the {@link MetricCell} primitive with TempoDisplay so the two stay in step.
2993
+ */
2994
+ declare function SetsRepsLoad({ sets, reps, load, unit, className, ...props }: SetsRepsLoadProps): react_jsx_runtime.JSX.Element;
2995
+
2996
+ interface SegmentedBarSegment {
2997
+ /** Flex weight of this segment's slot. Default 1 (all segments equal width). */
2998
+ weight?: number;
2999
+ /** Fraction 0..1 of the slot the coloured fill covers, left-aligned. Default 1 (full). */
3000
+ fill?: number;
3001
+ /** Fill colour — a literal hex (RNW-safe), never a `var()` token ref. */
3002
+ color: string;
3003
+ /** When true the fill animates on the shared active-pulse loop. */
3004
+ pulse?: boolean;
3005
+ /**
3006
+ * When pulsing, interpolate the fill's `backgroundColor` from→to over the loop
3007
+ * (full opacity). Omit to fall back to the default opacity breathe.
3008
+ */
3009
+ pulseColor?: [from: string, to: string];
3010
+ /**
3011
+ * A fixed gap (px) carved in before this segment's slot — lets a composer split
3012
+ * an otherwise-butted bar into sub-structure (drop notch, myo cluster) without a
3013
+ * uniform {@link SegmentedBarProps.gap}. Default 0 (butted against the previous).
3014
+ */
3015
+ leadingGap?: number;
3016
+ /**
3017
+ * Static fill opacity 0..1 for a non-pulsing segment (e.g. a fading "count
3018
+ * unknown" trail). Ignored for `pulse` segments, which drive their own opacity.
3019
+ */
3020
+ opacity?: number;
3021
+ }
3022
+ interface SegmentedBarProps extends ViewProps {
3023
+ /** The weighted segments, laid left-to-right. */
3024
+ segments: SegmentedBarSegment[];
3025
+ /** Track height in px. Default 8. */
3026
+ height?: number;
3027
+ /** Gap between segment slots in px. Default 5 (SetStrip's between-set gap). */
3028
+ gap?: number;
3029
+ /** Corner radius of each segment slot in px. Default 2. */
3030
+ radius?: number;
3031
+ /** An absolutely-positioned vertical marker line at `position` (0..1 of total width). */
3032
+ marker?: {
3033
+ position: number;
3034
+ color: string;
3035
+ } | null;
3036
+ /**
3037
+ * Resolve the testID of a segment's fill element. Lets a composing component
3038
+ * (e.g. SetBar) preserve its own test hooks; defaults to `segmented-bar-segment`.
3039
+ */
3040
+ segmentTestID?: (segment: SegmentedBarSegment, index: number) => string | undefined;
2758
3041
  }
2759
- declare function RestTimer({ totalSeconds, elapsedMs, onSkip, onAddTime, nextSetInfo, visible, displayOnly, }: RestTimerProps): react_jsx_runtime.JSX.Element | null;
3042
+ /**
3043
+ * A horizontal track split into weighted, individually-fillable segments — the
3044
+ * presentational atom the per-set strips are built from. Each segment is a flex
3045
+ * slot (flex = `weight`) holding a left-aligned fill (`fill` fraction, `color`);
3046
+ * `pulse` segments breathe on a shared active-pulse loop, and `marker` drops a
3047
+ * vertical line at a fraction of the total width. Colours are passed-in literal hex.
3048
+ */
3049
+ declare function SegmentedBar({ segments, height, gap, radius, marker, segmentTestID, style, ...props }: SegmentedBarProps): react_jsx_runtime.JSX.Element;
3050
+
3051
+ /** How progress compares to its target pace: `ahead`, `behind`, or `neutral` (no target). */
3052
+ type PaceTone = 'ahead' | 'behind' | 'neutral';
3053
+ /**
3054
+ * Classify `progress` (0..1) against an optional `target` (0..1). No target reads
3055
+ * as `neutral`; at or past target is `ahead`, otherwise `behind`.
3056
+ */
3057
+ declare function paceTone(progress: number, target?: number): PaceTone;
3058
+ /** The literal-hex colour for a tone. */
3059
+ declare function paceToneColor(tone: PaceTone): string;
3060
+
3061
+ interface SegmentedProgressBarSegment {
3062
+ /** Weight of this segment's slot — e.g. an exercise's planned set count. */
3063
+ weight: number;
3064
+ }
3065
+ interface SegmentedProgressBarProps extends ViewProps {
3066
+ /** The weighted segments, laid left-to-right (e.g. one per exercise). */
3067
+ segments: SegmentedProgressBarSegment[];
3068
+ /** Cumulative progress in the SAME units as the summed weights (e.g. sets done). May be fractional. */
3069
+ value: number;
3070
+ /** 0..1 position for the overlay pace marker (e.g. elapsed / budget). Omit → no marker, neutral tone. */
3071
+ target?: number;
3072
+ /** Overlay-marker colour. Default the live-green (status-live-muted). */
3073
+ markerColor?: string;
3074
+ /** Override the single pace fill colour. Default = paceToneColor(paceTone(value / total, target)). */
3075
+ color?: string;
3076
+ /** Track height in px. Passed through to SegmentedBar. */
3077
+ height?: number;
3078
+ /** Gap between segment slots in px. Passed through to SegmentedBar. */
3079
+ gap?: number;
3080
+ }
3081
+ /**
3082
+ * A progress bar segmented by weighted slots (one chunk per exercise, width ∝ its
3083
+ * set count): `value` fills the chunks left-to-right, and a single pace colour spans
3084
+ * them all — green when at/ahead of the `target` pace, amber when behind, steel when
3085
+ * there is no target. An optional overlay marker pins the target position. Composes
3086
+ * {@link SegmentedBar} + {@link paceTone}.
3087
+ */
3088
+ declare function SegmentedProgressBar({ segments, value, target, markerColor, color, height, gap, ...props }: SegmentedProgressBarProps): react_jsx_runtime.JSX.Element;
3089
+
3090
+ interface MetricTileData {
3091
+ /** Uppercase micro-label shown above the value */
3092
+ label: string;
3093
+ /** Primary value */
3094
+ value: string;
3095
+ /** Tints the value (status/accent hex); defaults to primary text */
3096
+ valueColor?: string;
3097
+ }
3098
+ interface MetricTilesProps extends ViewProps {
3099
+ /** Stat cells rendered left-to-right; typically three */
3100
+ metrics: MetricTileData[];
3101
+ /** Space between tiles (Stack gap scale, default 1 ≈ 4px) */
3102
+ gap?: 0 | 1 | 2 | 3 | 4;
3103
+ }
3104
+ /**
3105
+ * MetricTiles — a row of equal-width stat tiles.
3106
+ *
3107
+ * A thin, presentational HStack of {@link Tile}. Each tile flexes to fill its
3108
+ * share so the row reflows gracefully in a responsive rail. Used by SessionHeader
3109
+ * for Volume / Load / Fatigue (and Date / Time / Until when upcoming).
3110
+ *
3111
+ * @example
3112
+ * <MetricTiles metrics={[
3113
+ * { label: 'Volume', value: '76%' },
3114
+ * { label: 'Load', value: '7.3k' },
3115
+ * { label: 'Fatigue', value: 'MOD', valueColor: amber },
3116
+ * ]} />
3117
+ */
3118
+ declare function MetricTiles({ metrics, gap, ...props }: MetricTilesProps): react_jsx_runtime.JSX.Element;
3119
+
3120
+ type Gap = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 8 | 10 | 12;
3121
+ interface ScheduleTilesProps extends ViewProps {
3122
+ /** The scheduled moment (timestamp in ms or Date object). */
3123
+ when: number | Date;
3124
+ /** Reference "now"; injectable so the until/accent calc is deterministic in tests. Defaults to the mount time. */
3125
+ now?: number;
3126
+ /** Gap between the tiles (default 1). */
3127
+ gap?: Gap;
3128
+ }
3129
+ /**
3130
+ * ScheduleTiles — Date / Time / Until row for an upcoming session.
3131
+ *
3132
+ * An HStack of three {@link Tile}s derived from a single scheduled moment. The
3133
+ * Until value reuses {@link formatDateTime} relative formatting and turns
3134
+ * accent-orange only when the session is less than a day away.
3135
+ *
3136
+ * @example
3137
+ * <ScheduleTiles when={Date.now() + 5 * 60 * 60 * 1000} />
3138
+ */
3139
+ declare function ScheduleTiles({ when, now, gap, ...props }: ScheduleTilesProps): react_jsx_runtime.JSX.Element;
3140
+
3141
+ interface SetStripProps extends ViewProps {
3142
+ /** Per-set performance data, in set order. */
3143
+ sets: SetStripSet[];
3144
+ /** Bar height in px. Default 8. */
3145
+ height?: number;
3146
+ className?: string;
3147
+ }
3148
+ /**
3149
+ * The per-set segmented performance strip: one continuous {@link SetBar} per set
3150
+ * (rep intensities as butted color segments, no rep gaps), sets separated by a
3151
+ * fixed gap. Fills its container width. Colors are the real titan ramp pins.
3152
+ */
3153
+ declare function SetStrip({ sets, height, className, ...props }: SetStripProps): react_jsx_runtime.JSX.Element;
3154
+
3155
+ interface ExerciseHeadingProps {
3156
+ name: string;
3157
+ /** Prescription line values (sets × reps @ load). */
3158
+ sets: number;
3159
+ reps: number | string;
3160
+ load: number;
3161
+ unit?: 'lbs' | 'kg';
3162
+ /** Tempo tuple [eccentric, pauseBottom, concentric, pauseTop]; hidden when absent. */
3163
+ tempo?: [number, number, number, number];
3164
+ /** Small PR / issue / info chip in the title row. */
3165
+ indicator?: ExerciseIndicatorKind;
3166
+ /** Dim the block as a not-yet-reached exercise (standalone use). */
3167
+ dimmed?: boolean;
3168
+ /** Press target for the name row (expand / select). */
3169
+ onPress?: () => void;
3170
+ }
3171
+ /**
3172
+ * The exercise-heading info block (no strip): the name + {@link ExerciseIndicator}
3173
+ * title row over a tight {@link SetsRepsLoad} prescription line beside the real
3174
+ * {@link TempoDisplay} (`showLabel={false}`). The name row is the sole press
3175
+ * target — TempoDisplay is a sibling, never a descendant, since it is itself a
3176
+ * Pressable (nesting would be an a11y nested-interactive violation).
3177
+ */
3178
+ declare function ExerciseHeading({ name, sets, reps, load, unit, tempo, indicator, dimmed, onPress, }: ExerciseHeadingProps): react_jsx_runtime.JSX.Element;
3179
+
3180
+ interface ExerciseCardHeadingProps extends ExerciseHeadingProps {
3181
+ /** Per-set performance data driving the strip; an empty list renders no strip. */
3182
+ setStates: SetStripSet[];
3183
+ /** Strip height in px. Default 8. */
3184
+ stripHeight?: number;
3185
+ /** Root testID. Default "exercise-card"; override when nested inside another card. */
3186
+ testID?: string;
3187
+ }
3188
+ /**
3189
+ * The complete, standalone session-rail heading: an {@link ExerciseHeading} info
3190
+ * block over its per-set {@link SetStrip}. The unit the rail lists — self-contained
3191
+ * and independent of {@link ExerciseCard} (whose `rail` state delegates here).
3192
+ * e1RM is intentionally dropped (a planning / live-panel concern). Dimming lives on
3193
+ * the outer wrapper so the strip dims with the heading.
3194
+ */
3195
+ declare function ExerciseCardHeading({ setStates, stripHeight, dimmed, testID, ...heading }: ExerciseCardHeadingProps): react_jsx_runtime.JSX.Element;
3196
+
3197
+ interface SetTableHeaderProps {
3198
+ /** Weight-column label: LBS / KG. Default lbs. */
3199
+ unit?: 'lbs' | 'kg';
3200
+ /** Show the PREV (previous-best) column. Default true; false drops it for rail density. */
3201
+ showPrevious?: boolean;
3202
+ /** Overridable so a host card can keep its own testID. Default "table-header". */
3203
+ testID?: string;
3204
+ }
3205
+ /**
3206
+ * The expanded-set-table column-header row: SET · PREV · REPS · LOAD · RPE, with
3207
+ * the weight column reflecting `unit`. `showPrevious={false}` drops PREV (rail
3208
+ * density). Its per-column widths mirror {@link SetRow} so headers align over the
3209
+ * rows. Extracted from {@link ExerciseCard}'s expanded state for reuse.
3210
+ */
3211
+ declare function SetTableHeader({ unit, showPrevious, testID, }: SetTableHeaderProps): react_jsx_runtime.JSX.Element;
3212
+
3213
+ interface SessionHeaderPlanEntry {
3214
+ /** Exercise name (currently informational — chunk widths come from `sets`). */
3215
+ name?: string;
3216
+ /** Planned set count — drives this exercise's chunk width (∝ sets). */
3217
+ sets: number;
3218
+ }
3219
+ interface SessionHeaderProps extends ViewProps {
3220
+ /** Session title — the live session's name, or the next session's name when `next` is set. */
3221
+ title: string;
3222
+ /** Exercises in order → chunk widths (∝ sets). */
3223
+ plan: SessionHeaderPlanEntry[];
3224
+ /** Fractional sets completed (live). 0/undefined leaves the bar empty. */
3225
+ setsDone?: number;
3226
+ /** Live elapsed time in ms — drives the ⏱ readout and the pace marker. */
3227
+ elapsedMs?: number;
3228
+ /** Optional time budget in ms → adds the pace marker and the ` / budget` suffix. Omit → no marker, plain (steel) progress. */
3229
+ budgetMs?: number;
3230
+ /** Elapsed readout goes live-green while true. Default true (live). */
3231
+ running?: boolean;
3232
+ /** Live stat tiles (Volume / Load / Fatigue). Ignored when `next` is set. */
3233
+ metrics?: MetricTileData[];
3234
+ /** When set → UPCOMING layout: schedule tiles + empty bar; `title` is the next session's name. */
3235
+ next?: number | Date;
3236
+ className?: string;
3237
+ }
3238
+ /**
3239
+ * The session-rail heading: the session title over a stat row and a chunked pace bar.
3240
+ * Live, it shows Volume/Load/Fatigue tiles, a per-exercise progress bar (fill ∝ sets
3241
+ * done, coloured green/amber against the elapsed-vs-budget pace, with a live marker),
3242
+ * a mono `n/total sets` label and a ⏱ elapsed readout. Upcoming (`next` set), the tiles
3243
+ * become Date/Time/Until, the bar is the empty plan shape, and the readout shows the
3244
+ * planned duration. Rendered on the raised charcoal plane; presentational. Composes
3245
+ * {@link MetricTiles} / {@link ScheduleTiles} + {@link SegmentedProgressBar} +
3246
+ * {@link TimerReadout}.
3247
+ */
3248
+ declare function SessionHeader({ title, plan, setsDone, elapsedMs, budgetMs, running, metrics, next, className, style, ...props }: SessionHeaderProps): react_jsx_runtime.JSX.Element;
3249
+
3250
+ interface SessionRailExercise {
3251
+ /** Stable key + press payload. Falls back to list index when absent. */
3252
+ id?: string;
3253
+ name: string;
3254
+ summary: {
3255
+ sets: number;
3256
+ reps: number | string;
3257
+ weight: number;
3258
+ unit: 'lbs' | 'kg';
3259
+ };
3260
+ tempo?: [number, number, number, number];
3261
+ indicator?: ExerciseIndicatorKind;
3262
+ /** Per-set performance data driving the heading strip. */
3263
+ setStates: SetStripSet[];
3264
+ /** Dim the row as a not-yet-reached exercise. */
3265
+ upcoming?: boolean;
3266
+ }
3267
+ interface SessionRailProps extends ViewProps {
3268
+ /** Session title — the live session's name, or the next session's name when `next` is set. */
3269
+ title: string;
3270
+ exercises: SessionRailExercise[];
3271
+ /** Fractional sets completed (live) — drives the header's pace bar + sets label. */
3272
+ setsDone?: number;
3273
+ /** Live elapsed time in ms — drives the header's ⏱ readout and pace marker. */
3274
+ elapsedMs?: number;
3275
+ /** Optional time budget in ms → header pace marker + ` / budget`. */
3276
+ budgetMs?: number;
3277
+ /** Header elapsed readout goes live-green while true. Default true (live). */
3278
+ running?: boolean;
3279
+ /** Live stat tiles (Volume / Load / Fatigue). Ignored when `next` is set. */
3280
+ metrics?: MetricTileData[];
3281
+ /** When set → the header renders the UPCOMING glance (Date/Time/Until + empty bar). */
3282
+ next?: number | Date;
3283
+ /** Heading strip height in px, forwarded to each row. Default 8. */
3284
+ stripHeight?: number;
3285
+ /** Rail width in px. Default 246. */
3286
+ width?: number;
3287
+ onExercisePress?: (exercise: SessionRailExercise, index: number) => void;
3288
+ className?: string;
3289
+ }
3290
+ /**
3291
+ * The live-workout session rail: a flat raised {@link SessionHeader} glance (title,
3292
+ * stat tiles, chunked pace bar) over a sunk, inset list of {@link ExerciseCardHeading}
3293
+ * exercise headings. The header's plan (chunk widths ∝ sets) is derived from `exercises`.
3294
+ * Presentational — driven entirely by props.
3295
+ */
3296
+ declare function SessionRail({ title, exercises, setsDone, elapsedMs, budgetMs, running, metrics, next, stripHeight, width, onExercisePress, className, style, ...props }: SessionRailProps): react_jsx_runtime.JSX.Element;
2760
3297
 
2761
3298
  interface SupersetWrapperProps {
2762
3299
  label?: string;
2763
3300
  color?: string;
2764
- children: React.ReactNode;
3301
+ children: React$1.ReactNode;
2765
3302
  }
2766
3303
  declare function SupersetWrapper({ label, color, children, }: SupersetWrapperProps): react_jsx_runtime.JSX.Element;
2767
3304
 
@@ -2862,6 +3399,212 @@ interface ReadinessCheckProps {
2862
3399
  */
2863
3400
  declare function ReadinessCheck({ factors, score, warmUpValidation, warmUpCompleted, onConfirm, className, }: ReadinessCheckProps): react_jsx_runtime.JSX.Element;
2864
3401
 
3402
+ /** Density. `default` — the compact card/rail gauge. `wall` — the across-the-room dashboard scale. */
3403
+ type ZoneTrackSize = 'default' | 'wall';
3404
+ /** A single colour band of the zone gradient, spanning `[prev.upTo, upTo]` of the domain. */
3405
+ interface ZoneTrackZone {
3406
+ /** Upper bound of this band in domain units. The last band's `upTo` should reach `max`. */
3407
+ upTo: number;
3408
+ /** Band fill colour — a literal hex (RNW-safe), sourced from a ramp/effort-scale token. */
3409
+ color: string;
3410
+ }
3411
+ /**
3412
+ * A tick at `value`: a colored line over the track + an optional compact label
3413
+ * below, with an optional tooltip (to expand an acronym / show the raw value so
3414
+ * the label footer can stay light). Multiple ticks are supported.
3415
+ */
3416
+ interface ZoneTrackTick {
3417
+ /** Position of the tick in domain units. */
3418
+ value: number;
3419
+ /** Optional compact label rendered under the tick. */
3420
+ label?: string;
3421
+ /** Line + label colour. Defaults to a muted tick colour (or brand when `emphasized`). */
3422
+ color?: string;
3423
+ /** Emphasize this tick (thicker line, brand colour by default) — e.g. a target landmark. */
3424
+ emphasized?: boolean;
3425
+ /** Tooltip content shown on hover (web) / long-press (native) — expand the acronym, show the raw value. */
3426
+ tooltip?: string;
3427
+ }
3428
+ /**
3429
+ * The value marker sitting on the track.
3430
+ * - `needle`: a vertical line at `value`, overhanging the track (FatigueMeter / TrainingLoadGauge).
3431
+ * - `fill`: a left-anchored fill from `min` to `value`. Omit `color` to clip-reveal the zone
3432
+ * gradient up to `value`; supply `color` for a solid trend-coloured fill (FatigueGauge-style).
3433
+ */
3434
+ type ZoneTrackMarker = {
3435
+ type: 'needle';
3436
+ value: number;
3437
+ color?: string;
3438
+ glow?: boolean;
3439
+ } | {
3440
+ type: 'fill';
3441
+ value: number;
3442
+ color?: string;
3443
+ glow?: boolean;
3444
+ };
3445
+ /** An optional translucent range highlight (e.g. RpeCalibration's predicted CI band). */
3446
+ interface ZoneTrackBand {
3447
+ /** Range start in domain units. */
3448
+ from: number;
3449
+ /** Range end in domain units. */
3450
+ to: number;
3451
+ /** Highlight colour (typically a translucent token). */
3452
+ color: string;
3453
+ }
3454
+ interface ZoneTrackProps extends ViewProps {
3455
+ /** Ordered zone bands, laid left→right; each covers `[previous.upTo, upTo]` of the domain. */
3456
+ zones: ZoneTrackZone[];
3457
+ /** Domain maximum (right edge). */
3458
+ max: number;
3459
+ /** Domain minimum (left edge). Default 0. */
3460
+ min?: number;
3461
+ /** The value marker — a needle line or a left-anchored fill. Omit for a bare gradient track. */
3462
+ marker?: ZoneTrackMarker | null;
3463
+ /** Optional tick marks with labels below the track. */
3464
+ ticks?: ZoneTrackTick[];
3465
+ /** Optional translucent range highlight drawn over the gradient. */
3466
+ band?: ZoneTrackBand | null;
3467
+ /** Density: `default` (compact) or `wall` (the across-the-room dashboard scale). Scales track, needle, ticks and labels together. */
3468
+ size?: ZoneTrackSize;
3469
+ /** Track height in px. Overrides the `size` default (14 default / 24 wall). */
3470
+ trackHeight?: number;
3471
+ /** How far a needle marker overhangs the track top + bottom, in px. Overrides the `size` default (6 default / 9 wall). */
3472
+ needleOverhang?: number;
3473
+ /** Muted colour of the track behind / beyond the fill. Default a charcoal step. */
3474
+ trackColor?: string;
3475
+ className?: string;
3476
+ }
3477
+ /**
3478
+ * Low-level gauge primitive: a horizontal pill track carrying an N-band zone gradient,
3479
+ * optional tick marks with labels, and a single value marker (a needle line or a
3480
+ * left-anchored fill). The zone bands are weighted by their domain span, so thresholds
3481
+ * need not be evenly spaced. This is the shared visual base for the linear gauge family
3482
+ * (FatigueMeter needle, TrainingLoadGauge zone bar, RpeCalibration band + marker) — pass
3483
+ * the domain (`min`/`max`), the `zones`, and a `marker`; colours are literal hex from the
3484
+ * ramp tokens (never `var()` refs, so they survive the RNW/vitest alias).
3485
+ */
3486
+ declare function ZoneTrack({ zones, max, min, marker, ticks, band, size, trackHeight: trackHeightProp, needleOverhang: needleOverhangProp, trackColor, className, style, accessibilityLabel, ...props }: ZoneTrackProps): react_jsx_runtime.JSX.Element;
3487
+
3488
+ interface FatigueMeterProps extends ViewProps {
3489
+ /** Current velocity-loss percentage (0 = fresh). Drives the needle position. */
3490
+ value: number;
3491
+ /** Upper bound of the fatigue scale — the "stop" end, in loss %. Default 40. */
3492
+ max?: number;
3493
+ /** Zone boundary thresholds (loss %): green→gold, gold→orange, orange→red. Default [10,20,30]. */
3494
+ thresholds?: [number, number, number];
3495
+ /** Zone band colours low→high (fresh→stop). Default the canonical effort scale. */
3496
+ zoneColors?: [string, string, string, string];
3497
+ /** Tick labels at [min, ...thresholds, max]. Default ['fresh','VL10','VL20','VL30','stop']. */
3498
+ labels?: string[];
3499
+ /** Density: `default` (compact) or `wall` (the across-the-room dashboard scale — bigger track, needle and tick labels). */
3500
+ size?: ZoneTrackSize;
3501
+ /** Track height in px. Overrides the `size` default (14 default / 24 wall). */
3502
+ trackHeight?: number;
3503
+ /** Needle colour. Default white. */
3504
+ needleColor?: string;
3505
+ className?: string;
3506
+ }
3507
+ /**
3508
+ * A fatigue meter: a sliding needle over a fixed green→gold→orange→red velocity-loss
3509
+ * gradient with VL10/VL20/VL30/stop scale markers. This is the winning fatigue-visual
3510
+ * lineage (needle-over-zoned-gradient, three independent sources agreed) — it composes
3511
+ * the shared {@link ZoneTrack} primitive, supplying the fatigue domain, zone bands from
3512
+ * the effort-scale tokens, and the coaching-cue tick labels. Prop-driven: `value` plus
3513
+ * overridable `thresholds` / `max` / `zoneColors` / `labels`.
3514
+ *
3515
+ * @example
3516
+ * <FatigueMeter value={21} /> // needle in the VL20 (orange) zone
3517
+ * <FatigueMeter value={8} max={40} thresholds={[10, 20, 30]} />
3518
+ */
3519
+ declare function FatigueMeter({ value, max, thresholds, zoneColors, labels, size, trackHeight, needleColor, className, ...props }: FatigueMeterProps): react_jsx_runtime.JSX.Element;
3520
+
3521
+ type VolumeZone = 'under' | 'maintenance' | 'productive' | 'approaching' | 'over';
3522
+
3523
+ interface VolumeLandmarkBarProps extends ViewProps {
3524
+ /** Muscle group label shown in the header lockup. */
3525
+ muscle: string;
3526
+ /** Current weekly working sets for this muscle group. */
3527
+ currentSets: number;
3528
+ /** MEV / MAV / MRV landmark set counts. */
3529
+ landmarks: VolumeLandmarks;
3530
+ /** Track width in px (default 220). */
3531
+ width?: number;
3532
+ /** Track height in px (default 10). */
3533
+ trackHeight?: number;
3534
+ /**
3535
+ * Upper bound of the track scale in sets. Defaults to `mrv` plus 20% headroom
3536
+ * so an over-MRV fill visibly extends past the MRV tick.
3537
+ */
3538
+ scaleMax?: number;
3539
+ className?: string;
3540
+ }
3541
+ /**
3542
+ * Horizontal weekly-volume bar with MEV / MAV / MRV landmark ticks and a HEAT-scale
3543
+ * fill positioned against the MAV target. Composes the shared {@link ZoneTrack}
3544
+ * gauge primitive (track + active-zone fill + colored/tooltip landmark ticks; glows
3545
+ * when in the productive zone) and a {@link DataRow} header lockup (muscle title +
3546
+ * current % at matched type height). The tick acronyms expand to their full name +
3547
+ * raw set count on hover/long-press, keeping the footer light. Reuses the canonical
3548
+ * BodyMap volume heat scale so a muscle's status reads the same as in the body map.
3549
+ *
3550
+ * @example
3551
+ * <VolumeLandmarkBar muscle="Quads" currentSets={16} landmarks={{ mev: 8, mav: 16, mrv: 22 }} />
3552
+ */
3553
+ declare function VolumeLandmarkBar({ muscle, currentSets, landmarks, width, trackHeight, scaleMax, className, style, ...props }: VolumeLandmarkBarProps): react_jsx_runtime.JSX.Element;
3554
+
3555
+ /**
3556
+ * Auto-regulation verdict — the human-readable read-once summary of a set's
3557
+ * velocity-loss state.
3558
+ * - `productive` — in the band, keep going (success)
3559
+ * - `threshold` — VL20 reached, approaching fatigue (warning)
3560
+ * - `stop` — VL28+, terminate the set (error)
3561
+ */
3562
+ type StatusPillStatus = 'productive' | 'threshold' | 'stop';
3563
+ interface StatusPillProps extends ViewProps {
3564
+ status: StatusPillStatus;
3565
+ /** Overrides the default verdict text for the status. */
3566
+ label?: string;
3567
+ className?: string;
3568
+ }
3569
+ /** Resolved semantic color for a verdict status. */
3570
+ declare function statusPillColor(status: StatusPillStatus): string;
3571
+ /**
3572
+ * Verdict pill: a glowing status dot + colored verdict text, in a tinted,
3573
+ * bordered capsule. Composes {@link StatusDot} for the dot so the glow/color
3574
+ * stays consistent with the atom. Tint and border are derived from the same
3575
+ * semantic token via `alpha()` — no per-status raw hex.
3576
+ */
3577
+ declare function StatusPill({ status, label, className, style, ...props }: StatusPillProps): react_jsx_runtime.JSX.Element;
3578
+
3579
+ /**
3580
+ * Coaching-category flood level for the live surface. Mirrors {@link StatusPill}:
3581
+ * - `productive` — quiet, no flood
3582
+ * - `threshold` — amber wash at VL20
3583
+ * - `stop` — red wash at VL28+ (optionally pulsing)
3584
+ */
3585
+ type LiveAuraCategory = 'productive' | 'threshold' | 'stop';
3586
+ interface LiveAuraFrameProps extends ViewProps {
3587
+ category: LiveAuraCategory;
3588
+ /**
3589
+ * Pulse the flood on `stop`. Uses the nativewind `animate-pulse` utility so
3590
+ * it stays static-friendly under test (className→style, no live clock).
3591
+ * Defaults to true.
3592
+ */
3593
+ pulse?: boolean;
3594
+ className?: string;
3595
+ children?: React.ReactNode;
3596
+ }
3597
+ /** Resolved flood color for a category, or `null` when there is no flood. */
3598
+ declare function liveAuraColor(category: LiveAuraCategory): string | null;
3599
+ /**
3600
+ * Full-surface color-flood frame tied to a coaching category. Wraps `children`
3601
+ * on a charcoal base and layers a radial wash (amber at threshold, red at stop)
3602
+ * as a decorative, pointer-transparent overlay. The wash uses a solid
3603
+ * `backgroundColor` fallback (native) plus a web-only `backgroundImage` radial
3604
+ * gradient; both derive from the same semantic token via `alpha()`.
3605
+ */
3606
+ declare function LiveAuraFrame({ category, pulse, className, children, style, ...props }: LiveAuraFrameProps): react_jsx_runtime.JSX.Element;
3607
+
2865
3608
  interface TreemapDatum {
2866
3609
  /** Stable identity — returned by onPress and used as the React key. */
2867
3610
  id: string;
@@ -3091,6 +3834,91 @@ interface TopBarProps {
3091
3834
  */
3092
3835
  declare function TopBar({ state, devices, time, subtitle, showSubtitle, showClock, onSelectDevice, className, }: TopBarProps): react_jsx_runtime.JSX.Element;
3093
3836
 
3837
+ interface NavItemProps {
3838
+ /** The nav glyph (an icon from `components/icons`, rendered ~20px via `currentColor`). */
3839
+ icon: ReactNode;
3840
+ /** Short label shown under the glyph (uppercased for display; used as the accessible name). */
3841
+ label: string;
3842
+ /** Active category → left accent bar + brand-colored glyph & label. */
3843
+ active?: boolean;
3844
+ /**
3845
+ * A set is running for this category while it is NOT the active view
3846
+ * (live-elsewhere) → a quiet muted-green label tint. Ignored when `active`.
3847
+ */
3848
+ live?: boolean;
3849
+ onPress?: () => void;
3850
+ className?: string;
3851
+ }
3852
+ /**
3853
+ * Shell S2 · NavItem — one category button in the {@link SideNav}: a 20px glyph
3854
+ * over an uppercase micro-label in a 46×46 target. The button spans the full 60px
3855
+ * rail so the active **left accent bar** sits flush to the rail's edge. States:
3856
+ * active = accent bar + `brand-primary`; `live` (while not active) tints only the
3857
+ * label `status-success-dark` (the glyph stays dim); otherwise dim `text-tertiary`.
3858
+ */
3859
+ declare function NavItem({ icon, label, active, live, onPress, className, }: NavItemProps): react_jsx_runtime.JSX.Element;
3860
+
3861
+ interface SideNavItem {
3862
+ /** Stable category key — matches `activeKey` / `liveKey`. */
3863
+ key: string;
3864
+ /** Micro-label shown under the glyph. */
3865
+ label: string;
3866
+ /** The glyph node (rendered ~20px via `currentColor`). */
3867
+ icon: ReactNode;
3868
+ }
3869
+ interface SideNavProps {
3870
+ /** Category items, top → bottom. Defaults to the four dashboard categories. */
3871
+ items?: SideNavItem[];
3872
+ /** Key of the active category. */
3873
+ activeKey: string;
3874
+ /** Called with the tapped item's key. */
3875
+ onNavigate?: (key: string) => void;
3876
+ /**
3877
+ * Key of a category with live activity while it is NOT active (e.g. a set
3878
+ * running off its view) → a quiet green cue on that item's label.
3879
+ */
3880
+ liveKey?: string | null;
3881
+ className?: string;
3882
+ }
3883
+ /** The four dashboard categories with their locked S2 glyphs (activity · history · layers · figure). */
3884
+ declare const defaultNavItems: SideNavItem[];
3885
+ /**
3886
+ * Shell S2 · SideNav — the persistent 60px left rail that switches the main
3887
+ * viewport between categories (Live · Review · Program · Body). Presentational:
3888
+ * it renders `items` and reports taps via `onNavigate`; the app owns routing and
3889
+ * which key is `live`. Active item shows a left accent bar; `liveKey` (when not
3890
+ * the active view) tints that item's label a muted green. Fixed 60px at every
3891
+ * width — labels sit under the glyph, so they never change the rail width.
3892
+ */
3893
+ declare function SideNav({ items, activeKey, onNavigate, liveKey, className, }: SideNavProps): react_jsx_runtime.JSX.Element;
3894
+
3895
+ /**
3896
+ * `DashboardShell` — the wall-dashboard chrome: a persistent {@link SideNav} rail +
3897
+ * {@link TopBar} over a main content region. A thin frame that wires the shell-nav
3898
+ * organisms together and exposes a `children` content slot, so the dashboard app
3899
+ * mounts one component instead of re-assembling the chrome. Driven entirely by props.
3900
+ */
3901
+ interface DashboardShellProps {
3902
+ /** Active nav category key. */
3903
+ activeKey?: string;
3904
+ /** Nav categories, top → bottom. Defaults to SideNav's four dashboard categories. */
3905
+ navItems?: SideNavItem[];
3906
+ /** A category with off-view live activity → a quiet cue on that item. */
3907
+ liveKey?: string | null;
3908
+ /** Global session state → the TopBar status pill. */
3909
+ state?: SessionState;
3910
+ /** Connected devices → the TopBar connection glyph + dropdown. */
3911
+ devices?: Device[];
3912
+ /** TopBar brand subtitle. */
3913
+ subtitle?: string;
3914
+ onNavigate?: (key: string) => void;
3915
+ onSelectDevice?: (device: Device) => void;
3916
+ /** Main content region. A placeholder renders when omitted. */
3917
+ children?: ReactNode;
3918
+ className?: string;
3919
+ }
3920
+ declare function DashboardShell({ activeKey, navItems, liveKey, state, devices, subtitle, onNavigate, onSelectDevice, children, className, }: DashboardShellProps): react_jsx_runtime.JSX.Element;
3921
+
3094
3922
  /**
3095
3923
  * Utility function to merge Tailwind CSS classes with proper conflict resolution.
3096
3924
  * Combines clsx for conditional classes with tailwind-merge for deduplication.
@@ -3299,4 +4127,4 @@ interface PrescriptionInput {
3299
4127
  */
3300
4128
  declare function formatPrescription(p: PrescriptionInput | null | undefined): string | null;
3301
4129
 
3302
- export { Accordion, AccordionButton, type AccordionButtonProps, AccordionItem, type AccordionItemProps, AccordionPanel, type AccordionPanelProps, type AccordionProps, Alert, AlertDescription, type AlertDescriptionProps, type AlertProps, type AlertStatus, AlertTitle, type AlertTitleProps, type AlertVariant, Autocomplete, type AutocompleteOption, type AutocompleteProps, Avatar, AvatarBadge, type AvatarBadgeProps, AvatarGroup, type AvatarGroupProps, type AvatarProps, type AvatarSize, 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, CircularProgress, type CircularProgressProps, Collapse, CollapseButton, type CollapseButtonProps, CollapseContent, type CollapseContentProps, type CollapseProps, 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, 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, IconBox, type IconBoxProps, type IconProps, Indicator, type IndicatorColor, type IndicatorProps, type IndicatorPulse, type IndicatorSize, Input, InputBar, type InputBarProps, InputGroup, type InputGroupProps, type InputProps, type InputSize, type InputVariant, IntensityBar, type IntensityBarProps, Label, type LabelProps, LabelWithHelp, type LabelWithHelpProps, Link, type LinkColor, type LinkProps, type LinkUnderline, ListItem, ListItemContent, type ListItemContentProps, ListItemDivider, type ListItemDividerProps, ListItemIcon, type ListItemIconProps, type ListItemProps, ListItemTrailing, type ListItemTrailingProps, Menu, MenuDivider, type MenuDividerProps, MenuGroup, type MenuGroupProps, MenuItem, type MenuItemProps, MenuList, type MenuListProps, type MenuProps, MenuTrigger, type MenuTriggerProps, Metric, MetricGroup, type MetricGroupProps, type MetricProps, 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, Overline, type OverlineProps, Paragraph, type ParagraphProps, PasswordInput, type PasswordInputProps, 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, 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, Scatter, type ScatterAxis, type ScatterDatum, type ScatterProps, Section, SectionContent, type SectionContentProps, SectionHeader, type SectionHeaderProps, type SectionProps, Select, type SelectOption, type SelectProps, type SessionState, SessionStatePill, type SessionStatePillProps, 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, 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, type SurfaceProps, SvgIcon, type SvgIconProps, Switch, type SwitchProps, type SwitchSize, TEMPO_PACING, 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, TempoBar, type TempoBarProps, TempoDisplay, type TempoDisplayProps, type TempoLivePhase, type TempoLiveState, type TempoPacingState, type TempoPhaseKey, 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, Typography, type TypographyAlign, type TypographyColor, type TypographyProps, type TypographyVariant, type UseTableOptions, type UseTableReturn, VStack, VoltrasMark, type VolumeStatus, type WarmUpStatus, type WarmUpValidation, WeightBadge, type WeightBadgeProps, type WeightBadgeSize, alpha, cn, composeValidators, createFieldId, formatDateTime, formatPrescription, formatSignedPct, formatVelocity, getContrastText, getFieldAriaProps, getFieldValidationProps, getLuminance, getResultColor, getStatusColor, getTempoFillPct, getTempoPacingState, hasMaxLength, hasMinLength, isEmpty, isValidEmail, roundRpe, roundTempo, roundWeight, rpeColor, useTable, useToast, useToolbarButton, validationRules };
4130
+ 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, 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, 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, type SurfaceProps, SvgIcon, type SvgIconProps, Switch, type SwitchProps, type SwitchSize, TEMPO_PACING, 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, TempoBar, type TempoBarProps, TempoDisplay, type TempoDisplayProps, type TempoLivePhase, type TempoLiveState, type TempoPacingState, type TempoPhaseKey, 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, getTempoFillPct, getTempoPacingState, hasMaxLength, hasMinLength, isEmpty, isValidEmail, liveAuraColor, paceTone, paceToneColor, roundRpe, roundTempo, roundWeight, rpeColor, statusPillColor, useTable, useTimer, useToast, useToolbarButton, validationRules };