@titan-design/react-ui 0.6.0 → 0.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (248) 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 +855 -124
  6. package/dist/index.d.ts +855 -124
  7. package/dist/index.js +2276 -801
  8. package/dist/index.js.map +1 -1
  9. package/dist/index.mjs +2230 -802
  10. package/dist/index.mjs.map +1 -1
  11. package/dist/{pages-MO0JCySL.d.mts → pages-8u_4WbL-.d.mts} +280 -57
  12. package/dist/{pages-D7Jlssvp.d.ts → pages-DaWiBOGa.d.ts} +280 -57
  13. package/dist/pages.d.mts +1 -1
  14. package/dist/pages.d.ts +1 -1
  15. package/dist/pages.js +1255 -798
  16. package/dist/pages.js.map +1 -1
  17. package/dist/pages.mjs +1255 -798
  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/DateTime/DateTime.stories.tsx +1 -1
  34. package/src/components/custom/EmptyState/EmptyState.stories.tsx +1 -1
  35. package/src/components/custom/Gauge/Gauge.stories.tsx +1 -1
  36. package/src/components/custom/Metric/Metric.stories.tsx +1 -1
  37. package/src/components/custom/Scatter/Scatter.stories.tsx +1 -1
  38. package/src/components/custom/Sidebar/Sidebar.stories.tsx +1 -1
  39. package/src/components/custom/Table/Table.stories.tsx +1 -1
  40. package/src/components/custom/TimerReadout/TimerReadout.stories.tsx +62 -0
  41. package/src/components/custom/TimerReadout/TimerReadout.test.tsx +72 -0
  42. package/src/components/custom/TimerReadout/TimerReadout.tsx +75 -0
  43. package/src/components/custom/TimerReadout/index.ts +1 -0
  44. package/src/components/custom/Treemap/Treemap.stories.tsx +1 -1
  45. package/src/components/custom/Typography/Typography.stories.tsx +1 -1
  46. package/src/components/custom/Workout/ActiveWorkoutPage.stories.tsx +21 -13
  47. package/src/components/custom/Workout/ActiveWorkoutPage.test.tsx +16 -13
  48. package/src/components/custom/Workout/ActiveWorkoutPage.tsx +9 -15
  49. package/src/components/custom/Workout/BaseBadge.stories.tsx +1 -1
  50. package/src/components/custom/Workout/BodyMap.stories.tsx +1 -1
  51. package/src/components/custom/Workout/BodyMapDetailPanel.stories.tsx +1 -1
  52. package/src/components/custom/Workout/CapacityBandChart.stories.tsx +1 -1
  53. package/src/components/custom/Workout/DeviationBar.stories.tsx +1 -1
  54. package/src/components/custom/Workout/ExerciseCard.stories.tsx +51 -66
  55. package/src/components/custom/Workout/ExerciseCard.test.tsx +146 -143
  56. package/src/components/custom/Workout/ExerciseCard.tsx +176 -198
  57. package/src/components/custom/Workout/ExerciseCardHeading.stories.tsx +99 -0
  58. package/src/components/custom/Workout/ExerciseCardHeading.test.tsx +72 -0
  59. package/src/components/custom/Workout/ExerciseCardHeading.tsx +43 -0
  60. package/src/components/custom/Workout/ExerciseCardUnified.stories.tsx +151 -0
  61. package/src/components/custom/Workout/ExerciseDetailPage.stories.tsx +5 -3
  62. package/src/components/custom/Workout/ExerciseDetailPage.test.tsx +4 -4
  63. package/src/components/custom/Workout/ExerciseDetailPage.tsx +4 -5
  64. package/src/components/custom/Workout/ExerciseHeading.stories.tsx +81 -0
  65. package/src/components/custom/Workout/ExerciseHeading.test.tsx +77 -0
  66. package/src/components/custom/Workout/ExerciseHeading.tsx +85 -0
  67. package/src/components/custom/Workout/ExerciseIndicator.stories.tsx +110 -0
  68. package/src/components/custom/Workout/ExerciseIndicator.test.tsx +93 -0
  69. package/src/components/custom/Workout/ExerciseIndicator.tsx +120 -0
  70. package/src/components/custom/Workout/FatigueMeter.stories.tsx +51 -0
  71. package/src/components/custom/Workout/FatigueMeter.test.tsx +73 -0
  72. package/src/components/custom/Workout/FatigueMeter.tsx +82 -0
  73. package/src/components/custom/Workout/InputBar.stories.tsx +1 -1
  74. package/src/components/custom/Workout/IntensityBar.stories.tsx +1 -1
  75. package/src/components/custom/Workout/LiveAuraFrame.stories.tsx +153 -0
  76. package/src/components/custom/Workout/LiveAuraFrame.test.tsx +74 -0
  77. package/src/components/custom/Workout/LiveAuraFrame.tsx +105 -0
  78. package/src/components/custom/Workout/MesoCard.stories.tsx +1 -1
  79. package/src/components/custom/Workout/MesoProgressBar.stories.tsx +1 -1
  80. package/src/components/custom/Workout/MesoStatusCard.stories.tsx +1 -1
  81. package/src/components/custom/Workout/MetricTiles.stories.tsx +60 -0
  82. package/src/components/custom/Workout/MetricTiles.test.tsx +58 -0
  83. package/src/components/custom/Workout/MetricTiles.tsx +48 -0
  84. package/src/components/custom/Workout/MuscleGroupChip.stories.tsx +1 -1
  85. package/src/components/custom/Workout/PlaceholderStrip.stories.tsx +1 -1
  86. package/src/components/custom/Workout/PrBadge.stories.tsx +1 -1
  87. package/src/components/custom/Workout/PrHistoryModal.stories.tsx +1 -1
  88. package/src/components/custom/Workout/ProgramPlanningPage.stories.tsx +4 -16
  89. package/src/components/custom/Workout/ProgramPlanningPage.tsx +8 -6
  90. package/src/components/custom/Workout/README.md +146 -4
  91. package/src/components/custom/Workout/ReadinessCheck.stories.tsx +1 -1
  92. package/src/components/custom/Workout/RestTimer.stories.tsx +1 -1
  93. package/src/components/custom/Workout/RestTimer.tsx +15 -10
  94. package/src/components/custom/Workout/RowInventory.stories.tsx +405 -0
  95. package/src/components/custom/Workout/S3FullRail.stories.tsx +34 -0
  96. package/src/components/custom/Workout/S3SessionPace.stories.tsx +95 -0
  97. package/src/components/custom/Workout/S3SessionRailHeading.stories.tsx +61 -0
  98. package/src/components/custom/Workout/S3SetTypes.stories.tsx +176 -0
  99. package/src/components/custom/Workout/S3WorkoutExpansion.stories.tsx +240 -0
  100. package/src/components/custom/Workout/ScheduleTiles.stories.tsx +40 -0
  101. package/src/components/custom/Workout/ScheduleTiles.test.tsx +34 -0
  102. package/src/components/custom/Workout/ScheduleTiles.tsx +70 -0
  103. package/src/components/custom/Workout/SegmentedBar.stories.tsx +99 -0
  104. package/src/components/custom/Workout/SegmentedBar.test.tsx +77 -0
  105. package/src/components/custom/Workout/SegmentedBar.tsx +172 -0
  106. package/src/components/custom/Workout/SegmentedProgressBar.stories.tsx +50 -0
  107. package/src/components/custom/Workout/SegmentedProgressBar.test.tsx +80 -0
  108. package/src/components/custom/Workout/SegmentedProgressBar.tsx +67 -0
  109. package/src/components/custom/Workout/SessionHeader.stories.tsx +121 -0
  110. package/src/components/custom/Workout/SessionHeader.test.tsx +122 -0
  111. package/src/components/custom/Workout/SessionHeader.tsx +152 -0
  112. package/src/components/custom/Workout/SessionRail.stories.tsx +153 -0
  113. package/src/components/custom/Workout/SessionRail.test.tsx +86 -0
  114. package/src/components/custom/Workout/SessionRail.tsx +126 -0
  115. package/src/components/custom/Workout/SetBar.stories.tsx +124 -0
  116. package/src/components/custom/Workout/SetBar.test.tsx +123 -0
  117. package/src/components/custom/Workout/SetBar.tsx +171 -0
  118. package/src/components/custom/Workout/SetRow.stories.tsx +50 -100
  119. package/src/components/custom/Workout/SetRow.test.tsx +94 -166
  120. package/src/components/custom/Workout/SetRow.tsx +169 -232
  121. package/src/components/custom/Workout/SetStrip.stories.tsx +154 -0
  122. package/src/components/custom/Workout/SetStrip.test.tsx +109 -0
  123. package/src/components/custom/Workout/SetStrip.tsx +71 -0
  124. package/src/components/custom/Workout/SetTableHeader.stories.tsx +66 -0
  125. package/src/components/custom/Workout/SetTableHeader.test.tsx +47 -0
  126. package/src/components/custom/Workout/SetTableHeader.tsx +88 -0
  127. package/src/components/custom/Workout/SetsRepsLoad.stories.tsx +47 -0
  128. package/src/components/custom/Workout/SetsRepsLoad.test.tsx +44 -0
  129. package/src/components/custom/Workout/SetsRepsLoad.tsx +52 -0
  130. package/src/components/custom/Workout/Sparkline.stories.tsx +1 -1
  131. package/src/components/custom/Workout/StatusDot.stories.tsx +1 -1
  132. package/src/components/custom/Workout/StatusPill.stories.tsx +59 -0
  133. package/src/components/custom/Workout/StatusPill.test.tsx +63 -0
  134. package/src/components/custom/Workout/StatusPill.tsx +88 -0
  135. package/src/components/custom/Workout/StrengthTrendChart.stories.tsx +1 -1
  136. package/src/components/custom/Workout/SupersetWrapper.stories.tsx +1 -1
  137. package/src/components/custom/Workout/TempoBar.stories.tsx +1 -1
  138. package/src/components/custom/Workout/TempoDisplay.stories.tsx +12 -1
  139. package/src/components/custom/Workout/TempoDisplay.tsx +23 -33
  140. package/src/components/custom/Workout/TrainingStatusPage.stories.tsx +1 -1
  141. package/src/components/custom/Workout/VelocityStrip.modalities.stories.tsx +254 -0
  142. package/src/components/custom/Workout/VelocityStrip.responsive.stories.tsx +145 -0
  143. package/src/components/custom/Workout/VelocityStrip.stories.tsx +129 -66
  144. package/src/components/custom/Workout/VelocityStrip.test.tsx +376 -141
  145. package/src/components/custom/Workout/VelocityStrip.tsx +508 -120
  146. package/src/components/custom/Workout/VolumeLandmarkBar.stories.tsx +73 -0
  147. package/src/components/custom/Workout/VolumeLandmarkBar.test.tsx +119 -0
  148. package/src/components/custom/Workout/VolumeLandmarkBar.tsx +154 -0
  149. package/src/components/custom/Workout/WeekRow.stories.tsx +1 -1
  150. package/src/components/custom/Workout/WeightBadge.stories.tsx +1 -1
  151. package/src/components/custom/Workout/WorkoutCard.stories.tsx +2 -6
  152. package/src/components/custom/Workout/WorkoutCard.test.tsx +13 -46
  153. package/src/components/custom/Workout/WorkoutPill.stories.tsx +1 -1
  154. package/src/components/custom/Workout/ZoneTrack.stories.tsx +140 -0
  155. package/src/components/custom/Workout/ZoneTrack.test.tsx +200 -0
  156. package/src/components/custom/Workout/ZoneTrack.tsx +315 -0
  157. package/src/components/custom/Workout/index.ts +55 -2
  158. package/src/components/custom/Workout/metricText.stories.tsx +69 -0
  159. package/src/components/custom/Workout/metricText.tsx +34 -0
  160. package/src/components/custom/Workout/paceTone.test.ts +29 -0
  161. package/src/components/custom/Workout/paceTone.ts +27 -0
  162. package/src/components/custom/Workout/setHeadingKit.tsx +177 -0
  163. package/src/components/custom/index.ts +1 -0
  164. package/src/components/custom/stepper/Stepper.stories.tsx +1 -1
  165. package/src/components/icons/icons.stories.tsx +67 -2
  166. package/src/components/icons/icons.test.tsx +32 -2
  167. package/src/components/icons/icons.tsx +108 -0
  168. package/src/components/shell/BrandLockup.stories.tsx +3 -3
  169. package/src/components/shell/DashboardShell.stories.tsx +65 -0
  170. package/src/components/shell/DashboardShell.test.tsx +42 -0
  171. package/src/components/shell/DashboardShell.tsx +74 -0
  172. package/src/components/shell/DeviceIndicator.stories.tsx +2 -2
  173. package/src/components/shell/DeviceMenu.stories.tsx +5 -5
  174. package/src/components/shell/DeviceRow.stories.tsx +3 -3
  175. package/src/components/shell/NavItem.stories.tsx +52 -0
  176. package/src/components/shell/NavItem.test.tsx +35 -0
  177. package/src/components/shell/NavItem.tsx +75 -0
  178. package/src/components/shell/README.md +30 -0
  179. package/src/components/shell/SessionRailSpecimen.stories.tsx +753 -0
  180. package/src/components/shell/SessionStatePill.stories.tsx +3 -3
  181. package/src/components/shell/SessionStatePill.tsx +1 -1
  182. package/src/components/shell/SideNav.stories.tsx +81 -0
  183. package/src/components/shell/SideNav.test.tsx +51 -0
  184. package/src/components/shell/SideNav.tsx +74 -0
  185. package/src/components/shell/TopBar.stories.tsx +5 -5
  186. package/src/components/shell/index.ts +5 -0
  187. package/src/components/ui/alert/Alert.stories.tsx +1 -1
  188. package/src/components/ui/autocomplete/Autocomplete.stories.tsx +1 -1
  189. package/src/components/ui/avatar/Avatar.stories.tsx +1 -1
  190. package/src/components/ui/badge/Badge.stories.tsx +1 -1
  191. package/src/components/ui/breadcrumbs/Breadcrumbs.stories.tsx +1 -1
  192. package/src/components/ui/button/Button.stories.tsx +1 -1
  193. package/src/components/ui/card/Card.stories.tsx +1 -1
  194. package/src/components/ui/checkbox/Checkbox.stories.tsx +1 -1
  195. package/src/components/ui/chip/Chip.stories.tsx +1 -1
  196. package/src/components/ui/collapse/Collapse.stories.tsx +1 -1
  197. package/src/components/ui/data-row/DataRow.stories.tsx +1 -1
  198. package/src/components/ui/divider/Divider.stories.tsx +1 -1
  199. package/src/components/ui/drawer/Drawer.stories.tsx +1 -1
  200. package/src/components/ui/form-field/FormField.stories.tsx +1 -1
  201. package/src/components/ui/help-tip/HelpTip.stories.tsx +1 -1
  202. package/src/components/ui/icon-box/IconBox.stories.tsx +1 -1
  203. package/src/components/ui/index.ts +1 -0
  204. package/src/components/ui/indicator/Indicator.stories.tsx +2 -2
  205. package/src/components/ui/indicator/Indicator.test.tsx +1 -0
  206. package/src/components/ui/indicator/Indicator.tsx +6 -1
  207. package/src/components/ui/input/Input.stories.tsx +1 -1
  208. package/src/components/ui/link/Link.stories.tsx +1 -1
  209. package/src/components/ui/list-item/ListItem.stories.tsx +1 -1
  210. package/src/components/ui/menu/Menu.stories.tsx +1 -1
  211. package/src/components/ui/modal/Modal.stories.tsx +1 -1
  212. package/src/components/ui/pill/Pill.stories.tsx +1 -1
  213. package/src/components/ui/popover/Popover.stories.tsx +1 -1
  214. package/src/components/ui/progress/Progress.stories.tsx +1 -1
  215. package/src/components/ui/radio/Radio.stories.tsx +1 -1
  216. package/src/components/ui/section/Section.stories.tsx +1 -1
  217. package/src/components/ui/select/Select.stories.tsx +1 -1
  218. package/src/components/ui/skeleton/Skeleton.stories.tsx +1 -1
  219. package/src/components/ui/spinner/Spinner.stories.tsx +1 -1
  220. package/src/components/ui/stack/Stack.stories.tsx +1 -1
  221. package/src/components/ui/surface/Surface.stories.tsx +1 -1
  222. package/src/components/ui/switch/Switch.stories.tsx +1 -1
  223. package/src/components/ui/tabs/Tabs.stories.tsx +1 -1
  224. package/src/components/ui/tile/Tile.stories.tsx +79 -0
  225. package/src/components/ui/tile/Tile.test.tsx +48 -0
  226. package/src/components/ui/tile/Tile.tsx +64 -0
  227. package/src/components/ui/tile/index.ts +2 -0
  228. package/src/components/ui/toast/Toast.stories.tsx +1 -1
  229. package/src/components/ui/toolbar-button/ToolbarButton.stories.tsx +1 -1
  230. package/src/components/ui/tooltip/Tooltip.stories.tsx +1 -1
  231. package/src/examples/react-hook-form/ReactHookForm.stories.tsx +1 -1
  232. package/src/hooks/index.ts +2 -0
  233. package/src/hooks/useTimer.test.ts +150 -0
  234. package/src/hooks/useTimer.ts +77 -0
  235. package/src/index.ts +3 -0
  236. package/src/pages.ts +1 -1
  237. package/src/stories/PresetShowcase.stories.tsx +1 -1
  238. package/src/stories/ThemePresets.stories.tsx +1 -1
  239. package/src/theme/ColorSystem.stories.tsx +1 -1
  240. package/src/theme/Colors.stories.tsx +5 -8
  241. package/src/theme/config.ts +4 -0
  242. package/src/theme/elevation.stories.tsx +1 -1
  243. package/src/theme/global.css +5 -1
  244. package/src/theme/shadows.stories.tsx +1 -1
  245. package/src/theme/tokens/primitives.ts +11 -107
  246. package/src/theme/tokens/semantic.ts +8 -0
  247. package/src/theme/workout-tokens.ts +11 -7
  248. 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-8u_4WbL-.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-8u_4WbL-.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,6 +45,26 @@ 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';
@@ -52,14 +74,14 @@ interface AlertProps extends ViewProps {
52
74
  /** Visual variant */
53
75
  variant?: AlertVariant;
54
76
  /** Custom icon element */
55
- icon?: React.ReactNode;
77
+ icon?: React$1.ReactNode;
56
78
  /** Whether to show the default icon */
57
79
  showIcon?: boolean;
58
80
  /** Callback when close button is pressed */
59
81
  onClose?: () => void;
60
82
  /** Additional className */
61
83
  className?: string;
62
- children?: React.ReactNode;
84
+ children?: React$1.ReactNode;
63
85
  }
64
86
  /**
65
87
  * Alert component for displaying status messages.
@@ -76,7 +98,7 @@ interface AlertProps extends ViewProps {
76
98
  */
77
99
  declare function Alert({ status, variant, icon, showIcon, onClose, className, children, ...props }: AlertProps): react_jsx_runtime.JSX.Element;
78
100
  interface AlertTitleProps {
79
- children?: React.ReactNode;
101
+ children?: React$1.ReactNode;
80
102
  className?: string;
81
103
  }
82
104
  /**
@@ -84,7 +106,7 @@ interface AlertTitleProps {
84
106
  */
85
107
  declare function AlertTitle({ children, className }: AlertTitleProps): react_jsx_runtime.JSX.Element;
86
108
  interface AlertDescriptionProps {
87
- children?: React.ReactNode;
109
+ children?: React$1.ReactNode;
88
110
  className?: string;
89
111
  }
90
112
  /**
@@ -115,7 +137,7 @@ interface ButtonProps extends Omit<PressableProps, 'children'> {
115
137
  /** Additional className for styling */
116
138
  className?: string;
117
139
  /** Button content */
118
- children?: React.ReactNode;
140
+ children?: React$1.ReactNode;
119
141
  }
120
142
  /**
121
143
  * Button component following compound component pattern.
@@ -131,9 +153,9 @@ interface ButtonProps extends Omit<PressableProps, 'children'> {
131
153
  * <ButtonText>Add item</ButtonText>
132
154
  * </Button>
133
155
  */
134
- declare const Button: React.ForwardRefExoticComponent<ButtonProps & React.RefAttributes<View>>;
156
+ declare const Button: React$1.ForwardRefExoticComponent<ButtonProps & React$1.RefAttributes<View>>;
135
157
  interface ButtonTextProps {
136
- children: React.ReactNode;
158
+ children: React$1.ReactNode;
137
159
  className?: string;
138
160
  }
139
161
  /**
@@ -142,7 +164,7 @@ interface ButtonTextProps {
142
164
  declare function ButtonText({ children, className }: ButtonTextProps): react_jsx_runtime.JSX.Element;
143
165
  interface ButtonIconProps {
144
166
  /** Icon component to render */
145
- as: React.ComponentType<{
167
+ as: React$1.ComponentType<{
146
168
  size?: number;
147
169
  color?: string;
148
170
  className?: string;
@@ -190,9 +212,9 @@ interface InputProps extends Omit<TextInputProps, 'editable'> {
190
212
  /** Error message (shown when isInvalid is true) */
191
213
  errorMessage?: string;
192
214
  /** Left element/icon */
193
- leftElement?: React.ReactNode;
215
+ leftElement?: React$1.ReactNode;
194
216
  /** Right element/icon */
195
- rightElement?: React.ReactNode;
217
+ rightElement?: React$1.ReactNode;
196
218
  /** Additional className for the container */
197
219
  className?: string;
198
220
  /** Additional className for the input */
@@ -215,9 +237,9 @@ interface InputProps extends Omit<TextInputProps, 'editable'> {
215
237
  * errorMessage="Password is required"
216
238
  * />
217
239
  */
218
- declare const Input: React.ForwardRefExoticComponent<InputProps & React.RefAttributes<TextInput>>;
240
+ declare const Input: React$1.ForwardRefExoticComponent<InputProps & React$1.RefAttributes<TextInput>>;
219
241
  interface InputGroupProps {
220
- children: React.ReactNode;
242
+ children: React$1.ReactNode;
221
243
  className?: string;
222
244
  }
223
245
  /**
@@ -226,9 +248,9 @@ interface InputGroupProps {
226
248
  declare function InputGroup({ children, className }: InputGroupProps): react_jsx_runtime.JSX.Element;
227
249
  interface PasswordInputProps extends Omit<InputProps, 'secureTextEntry' | 'rightElement'> {
228
250
  /** Custom show password icon */
229
- showIcon?: React.ReactNode;
251
+ showIcon?: React$1.ReactNode;
230
252
  /** Custom hide password icon */
231
- hideIcon?: React.ReactNode;
253
+ hideIcon?: React$1.ReactNode;
232
254
  }
233
255
  /**
234
256
  * Password input with visibility toggle.
@@ -239,7 +261,7 @@ interface PasswordInputProps extends Omit<InputProps, 'secureTextEntry' | 'right
239
261
  * placeholder="Enter your password"
240
262
  * />
241
263
  */
242
- declare const PasswordInput: React.ForwardRefExoticComponent<PasswordInputProps & React.RefAttributes<TextInput>>;
264
+ declare const PasswordInput: React$1.ForwardRefExoticComponent<PasswordInputProps & React$1.RefAttributes<TextInput>>;
243
265
 
244
266
  type CardVariant = 'elevated' | 'outline' | 'filled' | 'accent' | 'subtle';
245
267
  type CardElevation = 1 | 2 | 3;
@@ -264,7 +286,7 @@ interface CardProps extends ViewProps {
264
286
  accentWidth?: number;
265
287
  /** Additional className */
266
288
  className?: string;
267
- children?: React.ReactNode;
289
+ children?: React$1.ReactNode;
268
290
  /** Show header skeleton when loading (default: true) */
269
291
  skeletonHasHeader?: boolean;
270
292
  /** Show footer skeleton when loading (default: false) */
@@ -296,7 +318,7 @@ interface CardProps extends ViewProps {
296
318
  */
297
319
  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
320
  interface CardHeaderProps {
299
- children?: React.ReactNode;
321
+ children?: React$1.ReactNode;
300
322
  className?: string;
301
323
  }
302
324
  /**
@@ -304,7 +326,7 @@ interface CardHeaderProps {
304
326
  */
305
327
  declare function CardHeader({ children, className }: CardHeaderProps): react_jsx_runtime.JSX.Element;
306
328
  interface CardTitleProps {
307
- children?: React.ReactNode;
329
+ children?: React$1.ReactNode;
308
330
  className?: string;
309
331
  }
310
332
  /**
@@ -312,7 +334,7 @@ interface CardTitleProps {
312
334
  */
313
335
  declare function CardTitle({ children, className }: CardTitleProps): react_jsx_runtime.JSX.Element;
314
336
  interface CardDescriptionProps {
315
- children?: React.ReactNode;
337
+ children?: React$1.ReactNode;
316
338
  className?: string;
317
339
  }
318
340
  /**
@@ -320,7 +342,7 @@ interface CardDescriptionProps {
320
342
  */
321
343
  declare function CardDescription({ children, className }: CardDescriptionProps): react_jsx_runtime.JSX.Element;
322
344
  interface CardContentProps {
323
- children?: React.ReactNode;
345
+ children?: React$1.ReactNode;
324
346
  className?: string;
325
347
  }
326
348
  /**
@@ -328,7 +350,7 @@ interface CardContentProps {
328
350
  */
329
351
  declare function CardContent({ children, className }: CardContentProps): react_jsx_runtime.JSX.Element;
330
352
  interface CardFooterProps {
331
- children?: React.ReactNode;
353
+ children?: React$1.ReactNode;
332
354
  className?: string;
333
355
  }
334
356
  /**
@@ -351,7 +373,7 @@ interface CardSkeletonProps {
351
373
  declare function CardSkeleton({ hasHeader, hasFooter, contentLines, className, }: CardSkeletonProps): react_jsx_runtime.JSX.Element;
352
374
 
353
375
  type IndicatorSize = 'xs' | 'sm' | 'md' | 'lg';
354
- type IndicatorColor = 'default' | 'primary' | 'success' | 'error' | 'warning' | 'info' | 'error-vivid';
376
+ type IndicatorColor = 'default' | 'primary' | 'success' | 'live' | 'error' | 'warning' | 'info' | 'error-vivid';
355
377
  /** How a pulsing indicator animates: a subtle opacity fade, or an expanding ring. */
356
378
  type IndicatorPulse = 'opacity' | 'ping';
357
379
  interface IndicatorProps extends ViewProps {
@@ -388,7 +410,7 @@ interface BadgeProps extends ViewProps {
388
410
  dotColor?: IndicatorColor;
389
411
  /** Additional className */
390
412
  className?: string;
391
- children?: React.ReactNode;
413
+ children?: React$1.ReactNode;
392
414
  }
393
415
  /**
394
416
  * Badge component for status indicators and labels.
@@ -399,7 +421,7 @@ interface BadgeProps extends ViewProps {
399
421
  */
400
422
  declare function Badge({ variant, color, size, dot, dotColor, className, children, ...props }: BadgeProps): react_jsx_runtime.JSX.Element;
401
423
  interface BadgeTextProps {
402
- children: React.ReactNode;
424
+ children: React$1.ReactNode;
403
425
  className?: string;
404
426
  }
405
427
  /**
@@ -477,7 +499,7 @@ interface AvatarBadgeProps {
477
499
  */
478
500
  declare function AvatarBadge({ color, className }: AvatarBadgeProps): react_jsx_runtime.JSX.Element;
479
501
  interface AvatarGroupProps {
480
- children: React.ReactNode;
502
+ children: React$1.ReactNode;
481
503
  /** Maximum avatars to show before +N indicator */
482
504
  max?: number;
483
505
  /** Size of avatars */
@@ -539,9 +561,9 @@ interface CheckboxProps extends Omit<PressableProps, 'children'> {
539
561
  * label="Accept terms and conditions"
540
562
  * />
541
563
  */
542
- declare const Checkbox: React.ForwardRefExoticComponent<CheckboxProps & React.RefAttributes<View>>;
564
+ declare const Checkbox: React$1.ForwardRefExoticComponent<CheckboxProps & React$1.RefAttributes<View>>;
543
565
  interface CheckboxGroupProps {
544
- children: React.ReactNode;
566
+ children: React$1.ReactNode;
545
567
  /** Label for the group */
546
568
  label?: string;
547
569
  /** Orientation of checkboxes */
@@ -581,7 +603,7 @@ interface SwitchProps extends Omit<PressableProps, 'children'> {
581
603
  * label="Enable notifications"
582
604
  * />
583
605
  */
584
- declare const Switch: React.ForwardRefExoticComponent<SwitchProps & React.RefAttributes<View>>;
606
+ declare const Switch: React$1.ForwardRefExoticComponent<SwitchProps & React$1.RefAttributes<View>>;
585
607
 
586
608
  type ModalSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl' | 'full';
587
609
  type ModalScrollBehavior = 'inside' | 'outside';
@@ -602,7 +624,7 @@ interface ModalProps extends Omit<ModalProps$1, 'visible'> {
602
624
  backdropClassName?: string;
603
625
  /** Animation type */
604
626
  animationType?: 'none' | 'fade' | 'slide';
605
- children?: React.ReactNode;
627
+ children?: React$1.ReactNode;
606
628
  }
607
629
  /**
608
630
  * Modal component for dialogs and overlays.
@@ -625,7 +647,7 @@ interface ModalProps extends Omit<ModalProps$1, 'visible'> {
625
647
  */
626
648
  declare function Modal({ isOpen, onClose, size, scrollBehavior, closeOnOverlayClick, backdropBlur, backdropClassName, animationType, children, ...props }: ModalProps): react_jsx_runtime.JSX.Element;
627
649
  interface ModalContentProps {
628
- children?: React.ReactNode;
650
+ children?: React$1.ReactNode;
629
651
  className?: string;
630
652
  }
631
653
  /**
@@ -633,7 +655,7 @@ interface ModalContentProps {
633
655
  */
634
656
  declare function ModalContent({ children, className }: ModalContentProps): react_jsx_runtime.JSX.Element;
635
657
  interface ModalHeaderProps {
636
- children?: React.ReactNode;
658
+ children?: React$1.ReactNode;
637
659
  className?: string;
638
660
  }
639
661
  /**
@@ -641,7 +663,7 @@ interface ModalHeaderProps {
641
663
  */
642
664
  declare function ModalHeader({ children, className }: ModalHeaderProps): react_jsx_runtime.JSX.Element;
643
665
  interface ModalTitleProps {
644
- children?: React.ReactNode;
666
+ children?: React$1.ReactNode;
645
667
  className?: string;
646
668
  }
647
669
  /**
@@ -656,7 +678,7 @@ interface ModalCloseButtonProps {
656
678
  */
657
679
  declare function ModalCloseButton({ className }: ModalCloseButtonProps): react_jsx_runtime.JSX.Element;
658
680
  interface ModalBodyProps {
659
- children?: React.ReactNode;
681
+ children?: React$1.ReactNode;
660
682
  /** Maximum height for scrollable content (when scrollBehavior="inside") */
661
683
  maxHeight?: number;
662
684
  className?: string;
@@ -666,7 +688,7 @@ interface ModalBodyProps {
666
688
  */
667
689
  declare function ModalBody({ children, maxHeight, className }: ModalBodyProps): react_jsx_runtime.JSX.Element;
668
690
  interface ModalFooterProps {
669
- children?: React.ReactNode;
691
+ children?: React$1.ReactNode;
670
692
  className?: string;
671
693
  }
672
694
  /**
@@ -776,7 +798,7 @@ interface TabsProps extends ViewProps {
776
798
  orientation?: TabsOrientation;
777
799
  /** Additional className */
778
800
  className?: string;
779
- children?: React.ReactNode;
801
+ children?: React$1.ReactNode;
780
802
  }
781
803
  /**
782
804
  * Tabs component for tabbed navigation.
@@ -797,7 +819,7 @@ interface TabsProps extends ViewProps {
797
819
  */
798
820
  declare function Tabs({ defaultIndex, index, onChange, variant, orientation, className, children, ...props }: TabsProps): react_jsx_runtime.JSX.Element;
799
821
  interface TabListProps {
800
- children?: React.ReactNode;
822
+ children?: React$1.ReactNode;
801
823
  className?: string;
802
824
  }
803
825
  /**
@@ -811,14 +833,14 @@ interface TabProps {
811
833
  isDisabled?: boolean;
812
834
  /** Additional className */
813
835
  className?: string;
814
- children?: React.ReactNode;
836
+ children?: React$1.ReactNode;
815
837
  }
816
838
  /**
817
839
  * Individual tab button.
818
840
  */
819
841
  declare function Tab({ index, isDisabled, className, children, }: TabProps): react_jsx_runtime.JSX.Element;
820
842
  interface TabPanelsProps {
821
- children?: React.ReactNode;
843
+ children?: React$1.ReactNode;
822
844
  className?: string;
823
845
  }
824
846
  /**
@@ -826,7 +848,7 @@ interface TabPanelsProps {
826
848
  */
827
849
  declare function TabPanels({ children, className }: TabPanelsProps): react_jsx_runtime.JSX.Element;
828
850
  interface TabPanelProps {
829
- children?: React.ReactNode;
851
+ children?: React$1.ReactNode;
830
852
  className?: string;
831
853
  }
832
854
  /**
@@ -845,7 +867,7 @@ interface ChipProps extends ViewProps {
845
867
  /** Size */
846
868
  size?: ChipSize;
847
869
  /** Left element (icon, avatar) */
848
- leftElement?: React.ReactNode;
870
+ leftElement?: React$1.ReactNode;
849
871
  /** Whether the chip is dismissible */
850
872
  onDelete?: () => void;
851
873
  /** Whether the chip is clickable */
@@ -854,7 +876,7 @@ interface ChipProps extends ViewProps {
854
876
  isDisabled?: boolean;
855
877
  /** Additional className */
856
878
  className?: string;
857
- children?: React.ReactNode;
879
+ children?: React$1.ReactNode;
858
880
  }
859
881
  /**
860
882
  * Chip component for tags, labels, and filters.
@@ -884,7 +906,7 @@ interface LinkProps extends Omit<TextProps, 'onPress'> {
884
906
  isDisabled?: boolean;
885
907
  /** Additional className */
886
908
  className?: string;
887
- children?: React.ReactNode;
909
+ children?: React$1.ReactNode;
888
910
  }
889
911
  /**
890
912
  * Link component for navigation.
@@ -901,9 +923,9 @@ interface TooltipProps extends ViewProps {
901
923
  /** Plain-text tooltip content */
902
924
  label?: string;
903
925
  /** Rich tooltip content (takes precedence over label) */
904
- content?: React.ReactNode;
926
+ content?: React$1.ReactNode;
905
927
  /** Trigger element */
906
- children: React.ReactNode;
928
+ children: React$1.ReactNode;
907
929
  /** Tooltip placement */
908
930
  placement?: TooltipPlacement;
909
931
  /** Delay before showing (ms) */
@@ -946,7 +968,7 @@ interface CollapseProps extends ViewProps {
946
968
  onToggle?: (isOpen: boolean) => void;
947
969
  /** Additional className */
948
970
  className?: string;
949
- children?: React.ReactNode;
971
+ children?: React$1.ReactNode;
950
972
  }
951
973
  /**
952
974
  * Collapsible content container.
@@ -963,7 +985,7 @@ interface CollapseProps extends ViewProps {
963
985
  */
964
986
  declare function Collapse({ defaultIsOpen, isOpen: controlledIsOpen, onToggle, className, children, ...props }: CollapseProps): react_jsx_runtime.JSX.Element;
965
987
  interface CollapseButtonProps {
966
- children?: React.ReactNode;
988
+ children?: React$1.ReactNode;
967
989
  className?: string;
968
990
  }
969
991
  /**
@@ -971,7 +993,7 @@ interface CollapseButtonProps {
971
993
  */
972
994
  declare function CollapseButton({ children, className }: CollapseButtonProps): react_jsx_runtime.JSX.Element;
973
995
  interface CollapseContentProps {
974
- children?: React.ReactNode;
996
+ children?: React$1.ReactNode;
975
997
  className?: string;
976
998
  }
977
999
  /**
@@ -985,7 +1007,7 @@ interface AccordionProps extends ViewProps {
985
1007
  defaultIndex?: number[];
986
1008
  /** Additional className */
987
1009
  className?: string;
988
- children?: React.ReactNode;
1010
+ children?: React$1.ReactNode;
989
1011
  }
990
1012
  /**
991
1013
  * Accordion component for multiple collapsible sections.
@@ -1005,7 +1027,7 @@ interface AccordionProps extends ViewProps {
1005
1027
  declare function Accordion({ allowMultiple, defaultIndex, className, children, ...props }: AccordionProps): react_jsx_runtime.JSX.Element;
1006
1028
  interface AccordionItemProps {
1007
1029
  index?: number;
1008
- children?: React.ReactNode;
1030
+ children?: React$1.ReactNode;
1009
1031
  className?: string;
1010
1032
  }
1011
1033
  /**
@@ -1015,7 +1037,7 @@ declare function AccordionItem({ index, children, className }: AccordionItemProp
1015
1037
  interface AccordionButtonProps {
1016
1038
  isOpen?: boolean;
1017
1039
  onToggle?: () => void;
1018
- children?: React.ReactNode;
1040
+ children?: React$1.ReactNode;
1019
1041
  className?: string;
1020
1042
  }
1021
1043
  /**
@@ -1024,7 +1046,7 @@ interface AccordionButtonProps {
1024
1046
  declare function AccordionButton({ isOpen, onToggle, children, className, }: AccordionButtonProps): react_jsx_runtime.JSX.Element;
1025
1047
  interface AccordionPanelProps {
1026
1048
  isOpen?: boolean;
1027
- children?: React.ReactNode;
1049
+ children?: React$1.ReactNode;
1028
1050
  className?: string;
1029
1051
  }
1030
1052
  /**
@@ -1034,12 +1056,12 @@ declare function AccordionPanel({ isOpen, children, className }: AccordionPanelP
1034
1056
 
1035
1057
  interface BreadcrumbsProps extends ViewProps {
1036
1058
  /** Custom separator */
1037
- separator?: React.ReactNode;
1059
+ separator?: React$1.ReactNode;
1038
1060
  /** Maximum items to show (with collapse) */
1039
1061
  maxItems?: number;
1040
1062
  /** Additional className */
1041
1063
  className?: string;
1042
- children?: React.ReactNode;
1064
+ children?: React$1.ReactNode;
1043
1065
  }
1044
1066
  /**
1045
1067
  * Breadcrumbs navigation component.
@@ -1061,7 +1083,7 @@ interface BreadcrumbItemProps {
1061
1083
  onPress?: () => void;
1062
1084
  /** Additional className */
1063
1085
  className?: string;
1064
- children?: React.ReactNode;
1086
+ children?: React$1.ReactNode;
1065
1087
  }
1066
1088
  /**
1067
1089
  * Individual breadcrumb item.
@@ -1084,7 +1106,7 @@ interface PopoverProps extends ViewProps {
1084
1106
  closeDelay?: number;
1085
1107
  /** Additional className */
1086
1108
  className?: string;
1087
- children?: React.ReactNode;
1109
+ children?: React$1.ReactNode;
1088
1110
  }
1089
1111
  /**
1090
1112
  * Popover component for displaying floating content.
@@ -1101,7 +1123,7 @@ interface PopoverProps extends ViewProps {
1101
1123
  */
1102
1124
  declare function Popover({ placement, isOpen: controlledIsOpen, onOpenChange, closeOnClickOutside, triggerMode, closeDelay, className, children, ...props }: PopoverProps): react_jsx_runtime.JSX.Element;
1103
1125
  interface PopoverTriggerProps {
1104
- children: React.ReactNode;
1126
+ children: React$1.ReactNode;
1105
1127
  className?: string;
1106
1128
  }
1107
1129
  /**
@@ -1109,7 +1131,7 @@ interface PopoverTriggerProps {
1109
1131
  */
1110
1132
  declare function PopoverTrigger({ children, className }: PopoverTriggerProps): react_jsx_runtime.JSX.Element;
1111
1133
  interface PopoverContentProps {
1112
- children?: React.ReactNode;
1134
+ children?: React$1.ReactNode;
1113
1135
  className?: string;
1114
1136
  }
1115
1137
  /**
@@ -1117,7 +1139,7 @@ interface PopoverContentProps {
1117
1139
  */
1118
1140
  declare function PopoverContent({ children, className }: PopoverContentProps): react_jsx_runtime.JSX.Element | null;
1119
1141
  interface PopoverCloseButtonProps {
1120
- children?: React.ReactNode;
1142
+ children?: React$1.ReactNode;
1121
1143
  className?: string;
1122
1144
  }
1123
1145
  /**
@@ -1132,7 +1154,7 @@ interface MenuProps extends ViewProps {
1132
1154
  onOpenChange?: (isOpen: boolean) => void;
1133
1155
  /** Additional className */
1134
1156
  className?: string;
1135
- children?: React.ReactNode;
1157
+ children?: React$1.ReactNode;
1136
1158
  }
1137
1159
  /**
1138
1160
  * Menu component for dropdown menus.
@@ -1152,7 +1174,7 @@ interface MenuProps extends ViewProps {
1152
1174
  */
1153
1175
  declare function Menu({ isOpen: controlledIsOpen, onOpenChange, className, children, ...props }: MenuProps): react_jsx_runtime.JSX.Element;
1154
1176
  interface MenuTriggerProps {
1155
- children: React.ReactNode;
1177
+ children: React$1.ReactNode;
1156
1178
  className?: string;
1157
1179
  }
1158
1180
  /**
@@ -1160,7 +1182,7 @@ interface MenuTriggerProps {
1160
1182
  */
1161
1183
  declare function MenuTrigger({ children, className }: MenuTriggerProps): react_jsx_runtime.JSX.Element;
1162
1184
  interface MenuListProps {
1163
- children?: React.ReactNode;
1185
+ children?: React$1.ReactNode;
1164
1186
  className?: string;
1165
1187
  }
1166
1188
  /**
@@ -1175,10 +1197,10 @@ interface MenuItemProps {
1175
1197
  /** Whether the item is destructive (shows in red) */
1176
1198
  isDestructive?: boolean;
1177
1199
  /** Icon element */
1178
- icon?: React.ReactNode;
1200
+ icon?: React$1.ReactNode;
1179
1201
  /** Additional className */
1180
1202
  className?: string;
1181
- children?: React.ReactNode;
1203
+ children?: React$1.ReactNode;
1182
1204
  }
1183
1205
  /**
1184
1206
  * Individual menu item.
@@ -1194,7 +1216,7 @@ declare function MenuDivider({ className }: MenuDividerProps): react_jsx_runtime
1194
1216
  interface MenuGroupProps {
1195
1217
  /** Group label */
1196
1218
  label?: string;
1197
- children?: React.ReactNode;
1219
+ children?: React$1.ReactNode;
1198
1220
  className?: string;
1199
1221
  }
1200
1222
  /**
@@ -1265,7 +1287,7 @@ interface ToolbarButtonProps extends ViewProps {
1265
1287
  /** Button label */
1266
1288
  label: string;
1267
1289
  /** Icon component */
1268
- icon?: React.ReactNode;
1290
+ icon?: React$1.ReactNode;
1269
1291
  /**
1270
1292
  * Whether the button is in active/selected state.
1271
1293
  * - `true`: pressed/active appearance (darker, white text, orange icon)
@@ -1286,7 +1308,7 @@ interface ToolbarButtonProps extends ViewProps {
1286
1308
  /** Press handler */
1287
1309
  onPress?: () => void;
1288
1310
  /** Menu content (renders in popover) */
1289
- menuContent?: React.ReactNode;
1311
+ menuContent?: React$1.ReactNode;
1290
1312
  /** Additional className */
1291
1313
  className?: string;
1292
1314
  }
@@ -1325,7 +1347,7 @@ interface ToolbarButtonGroupProps extends ViewProps {
1325
1347
  gap?: 'none' | 'sm' | 'md';
1326
1348
  /** Additional className */
1327
1349
  className?: string;
1328
- children?: React.ReactNode;
1350
+ children?: React$1.ReactNode;
1329
1351
  }
1330
1352
  /**
1331
1353
  * Container for grouping toolbar buttons together.
@@ -1359,7 +1381,7 @@ interface RadioGroupProps extends ViewProps {
1359
1381
  label?: string;
1360
1382
  /** Additional className */
1361
1383
  className?: string;
1362
- children?: React.ReactNode;
1384
+ children?: React$1.ReactNode;
1363
1385
  }
1364
1386
  /**
1365
1387
  * RadioGroup component for grouping radio buttons.
@@ -1383,7 +1405,7 @@ interface RadioProps extends ViewProps {
1383
1405
  color?: RadioColor;
1384
1406
  /** Additional className */
1385
1407
  className?: string;
1386
- children?: React.ReactNode;
1408
+ children?: React$1.ReactNode;
1387
1409
  }
1388
1410
  /**
1389
1411
  * Radio button component.
@@ -1412,7 +1434,7 @@ interface DrawerProps extends ViewProps {
1412
1434
  title?: string;
1413
1435
  /** Additional className for the drawer content */
1414
1436
  className?: string;
1415
- children?: React.ReactNode;
1437
+ children?: React$1.ReactNode;
1416
1438
  }
1417
1439
  /**
1418
1440
  * Drawer component for side panel overlays.
@@ -1433,7 +1455,7 @@ declare function Drawer({ isOpen, onClose, placement, size, closeOnOverlayClick,
1433
1455
  interface DrawerHeaderProps extends ViewProps {
1434
1456
  /** Additional className */
1435
1457
  className?: string;
1436
- children?: React.ReactNode;
1458
+ children?: React$1.ReactNode;
1437
1459
  }
1438
1460
  /**
1439
1461
  * Header section for the drawer.
@@ -1444,7 +1466,7 @@ interface DrawerBodyProps extends ViewProps {
1444
1466
  scrollable?: boolean;
1445
1467
  /** Additional className */
1446
1468
  className?: string;
1447
- children?: React.ReactNode;
1469
+ children?: React$1.ReactNode;
1448
1470
  }
1449
1471
  /**
1450
1472
  * Body/content section for the drawer.
@@ -1453,7 +1475,7 @@ declare function DrawerBody({ scrollable, className, children, ...props }: Drawe
1453
1475
  interface DrawerFooterProps extends ViewProps {
1454
1476
  /** Additional className */
1455
1477
  className?: string;
1456
- children?: React.ReactNode;
1478
+ children?: React$1.ReactNode;
1457
1479
  }
1458
1480
  /**
1459
1481
  * Footer section for the drawer, typically for action buttons.
@@ -1583,7 +1605,7 @@ interface ToastProviderProps {
1583
1605
  defaultDuration?: number;
1584
1606
  /** Maximum number of visible toasts */
1585
1607
  maxToasts?: number;
1586
- children?: React.ReactNode;
1608
+ children?: React$1.ReactNode;
1587
1609
  }
1588
1610
  /**
1589
1611
  * Provider component for the toast notification system.
@@ -1677,7 +1699,7 @@ interface AutocompleteProps<T = string> extends ViewProps {
1677
1699
  /** Custom filter function */
1678
1700
  filterFn?: (option: AutocompleteOption<T>, inputValue: string) => boolean;
1679
1701
  /** Custom render function for options */
1680
- renderOption?: (option: AutocompleteOption<T>, isHighlighted: boolean) => React.ReactNode;
1702
+ renderOption?: (option: AutocompleteOption<T>, isHighlighted: boolean) => React$1.ReactNode;
1681
1703
  /** Text to show when no options match */
1682
1704
  noOptionsText?: string;
1683
1705
  /** Text to show when loading */
@@ -1723,7 +1745,7 @@ type HelpTipPlacement = 'top' | 'bottom' | 'left' | 'right';
1723
1745
  type HelpTipIcon = 'help' | 'info' | 'warning';
1724
1746
  interface HelpTipProps extends ViewProps {
1725
1747
  /** Tooltip content */
1726
- content: React.ReactNode;
1748
+ content: React$1.ReactNode;
1727
1749
  /** Size of the icon */
1728
1750
  size?: HelpTipSize;
1729
1751
  /** Placement of the tooltip */
@@ -1774,7 +1796,7 @@ interface LabelWithHelpProps extends ViewProps {
1774
1796
  /** Label text */
1775
1797
  label: string;
1776
1798
  /** Help content */
1777
- helpContent: React.ReactNode;
1799
+ helpContent: React$1.ReactNode;
1778
1800
  /** Whether the field is required */
1779
1801
  isRequired?: boolean;
1780
1802
  /** Size of the help icon */
@@ -1808,7 +1830,7 @@ interface FormFieldProps extends ViewProps {
1808
1830
  /** Whether the field is read-only */
1809
1831
  isReadOnly?: boolean;
1810
1832
  /** Help tooltip content */
1811
- helpContent?: React.ReactNode;
1833
+ helpContent?: React$1.ReactNode;
1812
1834
  /** Size of the label */
1813
1835
  labelSize?: 'sm' | 'md' | 'lg';
1814
1836
  /** Direction of the layout */
@@ -1817,7 +1839,7 @@ interface FormFieldProps extends ViewProps {
1817
1839
  labelWidth?: number | string;
1818
1840
  /** Additional className */
1819
1841
  className?: string;
1820
- children?: React.ReactNode;
1842
+ children?: React$1.ReactNode;
1821
1843
  }
1822
1844
  /**
1823
1845
  * FormField component for wrapping form inputs with label, help text, and error states.
@@ -1852,7 +1874,7 @@ interface FormSectionProps extends ViewProps {
1852
1874
  description?: string;
1853
1875
  /** Additional className */
1854
1876
  className?: string;
1855
- children?: React.ReactNode;
1877
+ children?: React$1.ReactNode;
1856
1878
  }
1857
1879
  /**
1858
1880
  * FormSection component for grouping related form fields.
@@ -1873,7 +1895,7 @@ interface FormActionsProps extends ViewProps {
1873
1895
  align?: 'left' | 'center' | 'right' | 'between';
1874
1896
  /** Additional className */
1875
1897
  className?: string;
1876
- children?: React.ReactNode;
1898
+ children?: React$1.ReactNode;
1877
1899
  }
1878
1900
  /**
1879
1901
  * FormActions component for form action buttons.
@@ -1890,7 +1912,7 @@ interface FormRowProps extends ViewProps {
1890
1912
  gap?: 'sm' | 'md' | 'lg';
1891
1913
  /** Additional className */
1892
1914
  className?: string;
1893
- children?: React.ReactNode;
1915
+ children?: React$1.ReactNode;
1894
1916
  }
1895
1917
  /**
1896
1918
  * FormRow component for laying out multiple form fields horizontally.
@@ -1907,14 +1929,14 @@ interface FormRowProps extends ViewProps {
1907
1929
  */
1908
1930
  declare function FormRow({ gap, className, children, ...props }: FormRowProps): react_jsx_runtime.JSX.Element;
1909
1931
 
1910
- type Gap = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 8 | 10 | 12;
1932
+ type Gap$1 = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 8 | 10 | 12;
1911
1933
  interface StackProps extends ViewProps {
1912
- gap?: Gap;
1934
+ gap?: Gap$1;
1913
1935
  align?: 'start' | 'center' | 'end' | 'stretch';
1914
1936
  justify?: 'start' | 'center' | 'end' | 'between' | 'around';
1915
1937
  wrap?: boolean;
1916
1938
  className?: string;
1917
- children: React.ReactNode;
1939
+ children: React$1.ReactNode;
1918
1940
  }
1919
1941
  declare function Stack({ gap, align, justify, wrap, className, children, ...props }: StackProps): react_jsx_runtime.JSX.Element;
1920
1942
  declare function HStack(props: StackProps): react_jsx_runtime.JSX.Element;
@@ -1922,19 +1944,19 @@ declare function VStack(props: StackProps): react_jsx_runtime.JSX.Element;
1922
1944
 
1923
1945
  interface SectionProps extends ViewProps {
1924
1946
  className?: string;
1925
- children: React.ReactNode;
1947
+ children: React$1.ReactNode;
1926
1948
  }
1927
1949
  declare function Section({ className, children, ...props }: SectionProps): react_jsx_runtime.JSX.Element;
1928
1950
  interface SectionHeaderProps {
1929
1951
  title: string;
1930
1952
  subtitle?: string;
1931
- trailing?: React.ReactNode;
1953
+ trailing?: React$1.ReactNode;
1932
1954
  className?: string;
1933
1955
  }
1934
1956
  declare function SectionHeader({ title, subtitle, trailing, className }: SectionHeaderProps): react_jsx_runtime.JSX.Element;
1935
1957
  interface SectionContentProps extends ViewProps {
1936
1958
  className?: string;
1937
- children: React.ReactNode;
1959
+ children: React$1.ReactNode;
1938
1960
  }
1939
1961
  declare function SectionContent({ className, children, ...props }: SectionContentProps): react_jsx_runtime.JSX.Element;
1940
1962
 
@@ -1942,7 +1964,7 @@ interface DataRowProps extends ViewProps {
1942
1964
  /** Descriptive label shown on the left */
1943
1965
  label: string;
1944
1966
  /** Value shown on the right -- string renders as Text, ReactNode renders inside a View */
1945
- value: React.ReactNode;
1967
+ value: React$1.ReactNode;
1946
1968
  /** Additional className applied to the value element */
1947
1969
  valueClassName?: string;
1948
1970
  /** Additional className applied to the root container */
@@ -1953,7 +1975,7 @@ declare function DataRow({ label, value, valueClassName, className, ...props }:
1953
1975
  type IconBoxColor = 'primary' | 'secondary' | 'success' | 'error' | 'warning' | 'info' | 'neutral';
1954
1976
  type IconBoxSize = 'sm' | 'md' | 'lg';
1955
1977
  interface IconBoxProps extends ViewProps {
1956
- icon: React.ComponentType<{
1978
+ icon: React$1.ComponentType<{
1957
1979
  size?: number;
1958
1980
  className?: string;
1959
1981
  }>;
@@ -1969,17 +1991,17 @@ interface SurfaceProps extends ViewProps {
1969
1991
  glowIntensity?: GlowIntensity;
1970
1992
  theme?: 'light' | 'dark';
1971
1993
  className?: string;
1972
- children: React.ReactNode;
1994
+ children: React$1.ReactNode;
1973
1995
  }
1974
1996
  declare function Surface({ elevation, glowColor, glowIntensity, theme, className, style, children, ...props }: SurfaceProps): react_jsx_runtime.JSX.Element;
1975
1997
 
1976
1998
  interface ListItemProps extends PressableProps {
1977
1999
  className?: string;
1978
- children: React.ReactNode;
2000
+ children: React$1.ReactNode;
1979
2001
  }
1980
2002
  declare function ListItem({ className, children, onPress, ...props }: ListItemProps): react_jsx_runtime.JSX.Element;
1981
2003
  interface ListItemIconProps extends ViewProps {
1982
- icon: React.ComponentType<{
2004
+ icon: React$1.ComponentType<{
1983
2005
  size?: number;
1984
2006
  className?: string;
1985
2007
  }>;
@@ -1994,7 +2016,7 @@ interface ListItemContentProps extends ViewProps {
1994
2016
  declare function ListItemContent({ title, subtitle, className, ...props }: ListItemContentProps): react_jsx_runtime.JSX.Element;
1995
2017
  interface ListItemTrailingProps extends ViewProps {
1996
2018
  className?: string;
1997
- children: React.ReactNode;
2019
+ children: React$1.ReactNode;
1998
2020
  }
1999
2021
  declare function ListItemTrailing({ className, children, ...props }: ListItemTrailingProps): react_jsx_runtime.JSX.Element;
2000
2022
  interface ListItemDividerProps extends ViewProps {
@@ -2008,7 +2030,7 @@ type PillColor = 'default' | 'primary' | 'secondary' | 'success' | 'error' | 'wa
2008
2030
  type PillSize = 'xs' | 'sm' | 'md';
2009
2031
  interface PillProps extends ViewProps {
2010
2032
  /** Pill content */
2011
- children: React.ReactNode;
2033
+ children: React$1.ReactNode;
2012
2034
  /** Visual variant */
2013
2035
  variant?: PillVariant;
2014
2036
  /** Color scheme */
@@ -2018,7 +2040,7 @@ interface PillProps extends ViewProps {
2018
2040
  /** Fully rounded (default true) or slight radius */
2019
2041
  rounded?: boolean;
2020
2042
  /** Element before the label (e.g., Indicator dot) */
2021
- leftElement?: React.ReactNode;
2043
+ leftElement?: React$1.ReactNode;
2022
2044
  /** Press handler (makes pill interactive) */
2023
2045
  onPress?: () => void;
2024
2046
  /** Additional className */
@@ -2026,6 +2048,30 @@ interface PillProps extends ViewProps {
2026
2048
  }
2027
2049
  declare function Pill({ children, variant, color, size, rounded, leftElement, onPress, className, ...props }: PillProps): react_jsx_runtime.JSX.Element;
2028
2050
 
2051
+ interface TileProps extends ViewProps {
2052
+ /** Uppercase micro-label shown above the value */
2053
+ label: string;
2054
+ /** Primary value, rendered in a bold mono face */
2055
+ value: string;
2056
+ /** Tints the value (status/accent hex or CSS color); defaults to primary text */
2057
+ valueColor?: string;
2058
+ /** Content alignment within the tile (default: 'center') */
2059
+ align?: 'center' | 'start';
2060
+ /** Additional className */
2061
+ className?: string;
2062
+ }
2063
+ /**
2064
+ * Tile — a compact label-over-value stat card.
2065
+ *
2066
+ * A rounded raised box with an uppercase micro-label stacked over a bold mono
2067
+ * value. Fills its flex slot so a row of Tiles reads as an even HStack.
2068
+ *
2069
+ * @example
2070
+ * <Tile label="Volume" value="76%" />
2071
+ * <Tile label="Fatigue" value="MOD" valueColor="#F5A623" />
2072
+ */
2073
+ declare function Tile({ label, value, valueColor, align, className, ...props }: TileProps): react_jsx_runtime.JSX.Element;
2074
+
2029
2075
  type TypographyVariant = 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6' | 'body1' | 'body2' | 'subtitle1' | 'subtitle2' | 'caption' | 'overline' | 'button' | 'mono' | 'monoLabel';
2030
2076
  type TypographyColor = 'primary' | 'secondary' | 'tertiary' | 'disabled' | 'inverse' | 'success' | 'error' | 'warning' | 'info' | 'inherit';
2031
2077
  type TypographyAlign = 'left' | 'center' | 'right' | 'justify';
@@ -2049,7 +2095,7 @@ interface TypographyProps extends TextProps {
2049
2095
  maxLines?: number;
2050
2096
  /** Additional className */
2051
2097
  className?: string;
2052
- children?: React.ReactNode;
2098
+ children?: React$1.ReactNode;
2053
2099
  }
2054
2100
  /**
2055
2101
  * Typography component for consistent text styling.
@@ -2119,7 +2165,7 @@ interface SidebarProps extends ViewProps {
2119
2165
  collapsedWidth?: number;
2120
2166
  /** Additional className */
2121
2167
  className?: string;
2122
- children?: React.ReactNode;
2168
+ children?: React$1.ReactNode;
2123
2169
  }
2124
2170
  /**
2125
2171
  * Sidebar navigation component.
@@ -2142,7 +2188,7 @@ interface SidebarProps extends ViewProps {
2142
2188
  */
2143
2189
  declare function Sidebar({ isCollapsed, activeItem, onItemSelect, width, collapsedWidth, className, children, ...props }: SidebarProps): react_jsx_runtime.JSX.Element;
2144
2190
  interface SidebarHeaderProps {
2145
- children?: React.ReactNode;
2191
+ children?: React$1.ReactNode;
2146
2192
  className?: string;
2147
2193
  }
2148
2194
  /**
@@ -2150,7 +2196,7 @@ interface SidebarHeaderProps {
2150
2196
  */
2151
2197
  declare function SidebarHeader({ children, className }: SidebarHeaderProps): react_jsx_runtime.JSX.Element;
2152
2198
  interface SidebarContentProps {
2153
- children?: React.ReactNode;
2199
+ children?: React$1.ReactNode;
2154
2200
  className?: string;
2155
2201
  }
2156
2202
  /**
@@ -2158,7 +2204,7 @@ interface SidebarContentProps {
2158
2204
  */
2159
2205
  declare function SidebarContent({ children, className }: SidebarContentProps): react_jsx_runtime.JSX.Element;
2160
2206
  interface SidebarFooterProps {
2161
- children?: React.ReactNode;
2207
+ children?: React$1.ReactNode;
2162
2208
  className?: string;
2163
2209
  }
2164
2210
  /**
@@ -2168,7 +2214,7 @@ declare function SidebarFooter({ children, className }: SidebarFooterProps): rea
2168
2214
  interface SidebarSectionProps {
2169
2215
  /** Section title */
2170
2216
  title?: string;
2171
- children?: React.ReactNode;
2217
+ children?: React$1.ReactNode;
2172
2218
  className?: string;
2173
2219
  }
2174
2220
  /**
@@ -2179,14 +2225,14 @@ interface SidebarItemProps extends Omit<PressableProps, 'children'> {
2179
2225
  /** Unique identifier for the item */
2180
2226
  id: string;
2181
2227
  /** Icon component */
2182
- icon?: React.ComponentType<{
2228
+ icon?: React$1.ComponentType<{
2183
2229
  size?: number;
2184
2230
  className?: string;
2185
2231
  }>;
2186
2232
  /** Label text */
2187
2233
  label: string;
2188
2234
  /** Badge content (e.g., notification count) */
2189
- badge?: React.ReactNode;
2235
+ badge?: React$1.ReactNode;
2190
2236
  /** Whether this item has nested items */
2191
2237
  hasChildren?: boolean;
2192
2238
  /** Whether nested items are expanded */
@@ -2230,7 +2276,7 @@ interface TableProps extends ViewProps {
2230
2276
  loadingRowCount?: number;
2231
2277
  /** Additional className */
2232
2278
  className?: string;
2233
- children?: React.ReactNode;
2279
+ children?: React$1.ReactNode;
2234
2280
  }
2235
2281
  /**
2236
2282
  * Table component with sorting support.
@@ -2257,7 +2303,7 @@ interface TableProps extends ViewProps {
2257
2303
  */
2258
2304
  declare function Table({ sortColumn, sortDirection, onSort, selectedRows, onSelectRow, onSelectAll, selectable, rowIds, isLoading, loadingRowCount, className, children, ...props }: TableProps): react_jsx_runtime.JSX.Element;
2259
2305
  interface TableHeaderProps {
2260
- children?: React.ReactNode;
2306
+ children?: React$1.ReactNode;
2261
2307
  className?: string;
2262
2308
  }
2263
2309
  /**
@@ -2265,7 +2311,7 @@ interface TableHeaderProps {
2265
2311
  */
2266
2312
  declare function TableHeader({ children, className }: TableHeaderProps): react_jsx_runtime.JSX.Element;
2267
2313
  interface TableBodyProps {
2268
- children?: React.ReactNode;
2314
+ children?: React$1.ReactNode;
2269
2315
  className?: string;
2270
2316
  }
2271
2317
  /**
@@ -2279,7 +2325,7 @@ interface TableRowProps extends ViewProps {
2279
2325
  isHoverable?: boolean;
2280
2326
  /** Additional className */
2281
2327
  className?: string;
2282
- children?: React.ReactNode;
2328
+ children?: React$1.ReactNode;
2283
2329
  }
2284
2330
  /**
2285
2331
  * Table row.
@@ -2294,7 +2340,7 @@ interface TableHeaderCellProps extends Omit<PressableProps, 'children'> {
2294
2340
  width?: number;
2295
2341
  /** Additional className */
2296
2342
  className?: string;
2297
- children?: React.ReactNode;
2343
+ children?: React$1.ReactNode;
2298
2344
  }
2299
2345
  /**
2300
2346
  * Table header cell with optional sorting.
@@ -2307,7 +2353,7 @@ interface TableCellProps extends ViewProps {
2307
2353
  width?: number;
2308
2354
  /** Additional className */
2309
2355
  className?: string;
2310
- children?: React.ReactNode;
2356
+ children?: React$1.ReactNode;
2311
2357
  }
2312
2358
  /**
2313
2359
  * Table data cell.
@@ -2378,7 +2424,7 @@ declare function useTable<T extends Record<string, any>>({ data, defaultPageSize
2378
2424
 
2379
2425
  interface EmptyStateProps extends ViewProps {
2380
2426
  /** Icon component to display */
2381
- icon?: React.ComponentType<{
2427
+ icon?: React$1.ComponentType<{
2382
2428
  size?: number;
2383
2429
  className?: string;
2384
2430
  }>;
@@ -2387,7 +2433,7 @@ interface EmptyStateProps extends ViewProps {
2387
2433
  /** Description text */
2388
2434
  description?: string;
2389
2435
  /** Action element (usually a button) */
2390
- action?: React.ReactNode;
2436
+ action?: React$1.ReactNode;
2391
2437
  /** Additional className */
2392
2438
  className?: string;
2393
2439
  }
@@ -2413,7 +2459,7 @@ interface StepperProps extends ViewProps {
2413
2459
  orientation?: StepperOrientation;
2414
2460
  /** Additional className */
2415
2461
  className?: string;
2416
- children?: React.ReactNode;
2462
+ children?: React$1.ReactNode;
2417
2463
  }
2418
2464
  /**
2419
2465
  * Stepper component for multi-step flows.
@@ -2442,7 +2488,7 @@ interface StepProps {
2442
2488
  status?: StepStatus;
2443
2489
  /** Additional className */
2444
2490
  className?: string;
2445
- children?: React.ReactNode;
2491
+ children?: React$1.ReactNode;
2446
2492
  }
2447
2493
  /**
2448
2494
  * Individual step in the stepper.
@@ -2454,7 +2500,7 @@ interface StepIndicatorProps {
2454
2500
  /** Step index (injected by Step) */
2455
2501
  index?: number;
2456
2502
  /** Custom icon */
2457
- icon?: React.ReactNode;
2503
+ icon?: React$1.ReactNode;
2458
2504
  /** Additional className */
2459
2505
  className?: string;
2460
2506
  }
@@ -2467,7 +2513,7 @@ interface StepLabelProps {
2467
2513
  status?: StepStatus;
2468
2514
  /** Additional className */
2469
2515
  className?: string;
2470
- children?: React.ReactNode;
2516
+ children?: React$1.ReactNode;
2471
2517
  }
2472
2518
  /**
2473
2519
  * Label for a step.
@@ -2478,7 +2524,7 @@ interface StepContentProps {
2478
2524
  status?: StepStatus;
2479
2525
  /** Additional className */
2480
2526
  className?: string;
2481
- children?: React.ReactNode;
2527
+ children?: React$1.ReactNode;
2482
2528
  }
2483
2529
  /**
2484
2530
  * Content area for vertical stepper.
@@ -2534,6 +2580,58 @@ declare function DateTime({ value, format, customFormat, isUTC, hour12, seconds,
2534
2580
  */
2535
2581
  declare function formatDateTime(value: number | Date | string | null | undefined, format?: DateTimeFormat, isUTC?: boolean, fallback?: string): string;
2536
2582
 
2583
+ type TimerMode = 'up' | 'down';
2584
+ interface UseTimerOptions {
2585
+ /** 'up' counts elapsed upward; 'down' counts remaining toward 0. Default 'up'. */
2586
+ mode?: TimerMode;
2587
+ /** Total duration in ms. Required for 'down' mode and for progress in 'up' mode. */
2588
+ durationMs?: number;
2589
+ /** Controlled elapsed time in ms. When provided, the hook derives everything from it and never ticks. */
2590
+ elapsedMs?: number;
2591
+ /** Self-tick only advances while running. */
2592
+ running?: boolean;
2593
+ /** Enable the internal interval. Ignored when `elapsedMs` is controlled. */
2594
+ autoTick?: boolean;
2595
+ /** Interval step in ms. Default 1000. */
2596
+ tickMs?: number;
2597
+ }
2598
+ interface TimerState {
2599
+ elapsedMs: number;
2600
+ remainingMs: number;
2601
+ /** 0..1, clamped. */
2602
+ progress: number;
2603
+ /** mm:ss for the active direction (remaining when 'down', elapsed when 'up'). */
2604
+ label: string;
2605
+ /** True once a down-timer reaches 0 (or an up-timer passes its duration). */
2606
+ done: boolean;
2607
+ }
2608
+ /** Format a millisecond duration as mm:ss, rounding partial seconds up. */
2609
+ declare function formatDuration(ms: number): string;
2610
+ declare function useTimer(options?: UseTimerOptions): TimerState;
2611
+
2612
+ interface TimerReadoutProps extends ViewProps {
2613
+ /** 'up' counts elapsed upward; 'down' counts remaining toward 0. Default 'up'. */
2614
+ mode?: TimerMode;
2615
+ /** Controlled elapsed time in ms. When set, the value is derived from it and never self-ticks. */
2616
+ elapsedMs?: number;
2617
+ /** Total duration in ms — required for 'down' mode and for the ` / total` suffix. */
2618
+ durationMs?: number;
2619
+ /** Live cue: the current value goes green while true. */
2620
+ running?: boolean;
2621
+ /** Enable the internal 1s interval (ignored when `elapsedMs` is controlled). */
2622
+ autoTick?: boolean;
2623
+ /** When `durationMs` is set, append ` / mm:ss`. */
2624
+ showTotal?: boolean;
2625
+ /** Leading glyph; defaults to the ⏱ unicode. */
2626
+ glyph?: ReactNode;
2627
+ }
2628
+ /**
2629
+ * Atom · TimerReadout — a small textual timer (⏱ + mono, right-justified) built on
2630
+ * [useTimer]. Matches the TopBar clock treatment: only the live/current value goes
2631
+ * green (status-live-muted) while `running`; the ` / total` suffix stays dim tertiary.
2632
+ */
2633
+ declare function TimerReadout({ mode, elapsedMs, durationMs, running, autoTick, showTotal, glyph, className, ...rest }: TimerReadoutProps): react_jsx_runtime.JSX.Element;
2634
+
2537
2635
  type MetricTrend = 'up' | 'down' | 'neutral';
2538
2636
  interface MetricProps extends ViewProps {
2539
2637
  value: string;
@@ -2546,7 +2644,7 @@ interface MetricProps extends ViewProps {
2546
2644
  declare function Metric({ value, label, unit, trend, size, className, ...props }: MetricProps): react_jsx_runtime.JSX.Element;
2547
2645
  interface MetricGroupProps extends ViewProps {
2548
2646
  className?: string;
2549
- children: React.ReactNode;
2647
+ children: React$1.ReactNode;
2550
2648
  }
2551
2649
  declare function MetricGroup({ className, children, ...props }: MetricGroupProps): react_jsx_runtime.JSX.Element;
2552
2650
 
@@ -2585,6 +2683,20 @@ interface WeightBadgeProps extends Omit<BaseBadgeProps, 'variant' | 'icon' | 'ch
2585
2683
  }
2586
2684
  declare function WeightBadge({ value, unit, reps, delta, isPr, showIcon, size, onPress, className, ...props }: WeightBadgeProps): react_jsx_runtime.JSX.Element;
2587
2685
 
2686
+ type PRType = 'e1rm' | 'weight' | 'reps' | 'volume' | 'velocity';
2687
+ interface PrBadgeProps extends ViewProps {
2688
+ /** PR type determines auto-generated label */
2689
+ type?: PRType;
2690
+ /** Display label (e.g., "PR e1RM", "PR 5RM"). Auto-generated from type if omitted. */
2691
+ label?: string;
2692
+ /** Show only the star icon, no text label */
2693
+ compact?: boolean;
2694
+ /** Trigger pop animation on mount */
2695
+ animate?: boolean;
2696
+ className?: string;
2697
+ }
2698
+ declare function PrBadge({ type, label: labelProp, compact, animate, className, ...props }: PrBadgeProps): react_jsx_runtime.JSX.Element;
2699
+
2588
2700
  type StatusDotVariant = 'success' | 'warning' | 'error' | 'neutral' | 'on-track' | 'deviation' | 'future';
2589
2701
  interface StatusDotProps extends ViewProps {
2590
2702
  variant: StatusDotVariant;
@@ -2627,6 +2739,8 @@ interface TempoDisplayProps extends ViewProps {
2627
2739
  size?: 'sm' | 'md';
2628
2740
  /** Colored phases or mono (all gray) */
2629
2741
  colored?: boolean;
2742
+ /** Show the "TEMPO" caption before the values. Default true. */
2743
+ showLabel?: boolean;
2630
2744
  /** Show info tooltip on press */
2631
2745
  showInfo?: boolean;
2632
2746
  /**
@@ -2638,7 +2752,7 @@ interface TempoDisplayProps extends ViewProps {
2638
2752
  onPress?: () => void;
2639
2753
  className?: string;
2640
2754
  }
2641
- declare function TempoDisplay({ tempo, size, colored, showInfo, live, onPress, className, ...props }: TempoDisplayProps): react_jsx_runtime.JSX.Element;
2755
+ declare function TempoDisplay({ tempo, size, colored, showLabel, showInfo, live, onPress, className, ...props }: TempoDisplayProps): react_jsx_runtime.JSX.Element;
2642
2756
 
2643
2757
  /**
2644
2758
  * Titan-local phase key. Consumers map their own movement-phase enum onto this
@@ -2758,10 +2872,342 @@ interface RestTimerProps {
2758
2872
  }
2759
2873
  declare function RestTimer({ totalSeconds, elapsedMs, onSkip, onAddTime, nextSetInfo, visible, displayOnly, }: RestTimerProps): react_jsx_runtime.JSX.Element | null;
2760
2874
 
2875
+ /**
2876
+ * Shared "segmented metric" typography primitive — the Inter · 600 · letter-spacing 1
2877
+ * value/separator cell used by both {@link TempoDisplay} (tempo digits + dashes) and
2878
+ * {@link SetsRepsLoad} (sets × reps @ load). Extracted so the two read as one visual
2879
+ * language instead of drifting copies.
2880
+ */
2881
+ declare const METRIC_FONT = "Inter, sans-serif";
2882
+ interface MetricCellProps {
2883
+ children: ReactNode;
2884
+ /** Cell text color — value cells take a primary color, separators a muted one. */
2885
+ color: string;
2886
+ fontSize?: number;
2887
+ }
2888
+ declare function MetricCell({ children, color, fontSize }: MetricCellProps): react_jsx_runtime.JSX.Element;
2889
+
2890
+ interface SetsRepsLoadProps extends ViewProps {
2891
+ sets: number;
2892
+ reps: number | string;
2893
+ load: number;
2894
+ /** Displayed load unit label (e.g. "lb", "kg"). */
2895
+ unit?: string;
2896
+ className?: string;
2897
+ }
2898
+ /**
2899
+ * The `sets × reps @ load` prescription line, in the TempoDisplay visual language
2900
+ * (Inter · 600 · letter-spacing 1 · value cells with muted `×` / `@` separators).
2901
+ * Shares the {@link MetricCell} primitive with TempoDisplay so the two stay in step.
2902
+ */
2903
+ declare function SetsRepsLoad({ sets, reps, load, unit, className, ...props }: SetsRepsLoadProps): react_jsx_runtime.JSX.Element;
2904
+
2905
+ interface SegmentedBarSegment {
2906
+ /** Flex weight of this segment's slot. Default 1 (all segments equal width). */
2907
+ weight?: number;
2908
+ /** Fraction 0..1 of the slot the coloured fill covers, left-aligned. Default 1 (full). */
2909
+ fill?: number;
2910
+ /** Fill colour — a literal hex (RNW-safe), never a `var()` token ref. */
2911
+ color: string;
2912
+ /** When true the fill animates on the shared active-pulse loop. */
2913
+ pulse?: boolean;
2914
+ /**
2915
+ * When pulsing, interpolate the fill's `backgroundColor` from→to over the loop
2916
+ * (full opacity). Omit to fall back to the default opacity breathe.
2917
+ */
2918
+ pulseColor?: [from: string, to: string];
2919
+ /**
2920
+ * A fixed gap (px) carved in before this segment's slot — lets a composer split
2921
+ * an otherwise-butted bar into sub-structure (drop notch, myo cluster) without a
2922
+ * uniform {@link SegmentedBarProps.gap}. Default 0 (butted against the previous).
2923
+ */
2924
+ leadingGap?: number;
2925
+ /**
2926
+ * Static fill opacity 0..1 for a non-pulsing segment (e.g. a fading "count
2927
+ * unknown" trail). Ignored for `pulse` segments, which drive their own opacity.
2928
+ */
2929
+ opacity?: number;
2930
+ }
2931
+ interface SegmentedBarProps extends ViewProps {
2932
+ /** The weighted segments, laid left-to-right. */
2933
+ segments: SegmentedBarSegment[];
2934
+ /** Track height in px. Default 8. */
2935
+ height?: number;
2936
+ /** Gap between segment slots in px. Default 5 (SetStrip's between-set gap). */
2937
+ gap?: number;
2938
+ /** Corner radius of each segment slot in px. Default 2. */
2939
+ radius?: number;
2940
+ /** An absolutely-positioned vertical marker line at `position` (0..1 of total width). */
2941
+ marker?: {
2942
+ position: number;
2943
+ color: string;
2944
+ } | null;
2945
+ /**
2946
+ * Resolve the testID of a segment's fill element. Lets a composing component
2947
+ * (e.g. SetBar) preserve its own test hooks; defaults to `segmented-bar-segment`.
2948
+ */
2949
+ segmentTestID?: (segment: SegmentedBarSegment, index: number) => string | undefined;
2950
+ }
2951
+ /**
2952
+ * A horizontal track split into weighted, individually-fillable segments — the
2953
+ * presentational atom the per-set strips are built from. Each segment is a flex
2954
+ * slot (flex = `weight`) holding a left-aligned fill (`fill` fraction, `color`);
2955
+ * `pulse` segments breathe on a shared active-pulse loop, and `marker` drops a
2956
+ * vertical line at a fraction of the total width. Colours are passed-in literal hex.
2957
+ */
2958
+ declare function SegmentedBar({ segments, height, gap, radius, marker, segmentTestID, style, ...props }: SegmentedBarProps): react_jsx_runtime.JSX.Element;
2959
+
2960
+ /** How progress compares to its target pace: `ahead`, `behind`, or `neutral` (no target). */
2961
+ type PaceTone = 'ahead' | 'behind' | 'neutral';
2962
+ /**
2963
+ * Classify `progress` (0..1) against an optional `target` (0..1). No target reads
2964
+ * as `neutral`; at or past target is `ahead`, otherwise `behind`.
2965
+ */
2966
+ declare function paceTone(progress: number, target?: number): PaceTone;
2967
+ /** The literal-hex colour for a tone. */
2968
+ declare function paceToneColor(tone: PaceTone): string;
2969
+
2970
+ interface SegmentedProgressBarSegment {
2971
+ /** Weight of this segment's slot — e.g. an exercise's planned set count. */
2972
+ weight: number;
2973
+ }
2974
+ interface SegmentedProgressBarProps extends ViewProps {
2975
+ /** The weighted segments, laid left-to-right (e.g. one per exercise). */
2976
+ segments: SegmentedProgressBarSegment[];
2977
+ /** Cumulative progress in the SAME units as the summed weights (e.g. sets done). May be fractional. */
2978
+ value: number;
2979
+ /** 0..1 position for the overlay pace marker (e.g. elapsed / budget). Omit → no marker, neutral tone. */
2980
+ target?: number;
2981
+ /** Overlay-marker colour. Default the live-green (status-live-muted). */
2982
+ markerColor?: string;
2983
+ /** Override the single pace fill colour. Default = paceToneColor(paceTone(value / total, target)). */
2984
+ color?: string;
2985
+ /** Track height in px. Passed through to SegmentedBar. */
2986
+ height?: number;
2987
+ /** Gap between segment slots in px. Passed through to SegmentedBar. */
2988
+ gap?: number;
2989
+ }
2990
+ /**
2991
+ * A progress bar segmented by weighted slots (one chunk per exercise, width ∝ its
2992
+ * set count): `value` fills the chunks left-to-right, and a single pace colour spans
2993
+ * them all — green when at/ahead of the `target` pace, amber when behind, steel when
2994
+ * there is no target. An optional overlay marker pins the target position. Composes
2995
+ * {@link SegmentedBar} + {@link paceTone}.
2996
+ */
2997
+ declare function SegmentedProgressBar({ segments, value, target, markerColor, color, height, gap, ...props }: SegmentedProgressBarProps): react_jsx_runtime.JSX.Element;
2998
+
2999
+ interface MetricTileData {
3000
+ /** Uppercase micro-label shown above the value */
3001
+ label: string;
3002
+ /** Primary value */
3003
+ value: string;
3004
+ /** Tints the value (status/accent hex); defaults to primary text */
3005
+ valueColor?: string;
3006
+ }
3007
+ interface MetricTilesProps extends ViewProps {
3008
+ /** Stat cells rendered left-to-right; typically three */
3009
+ metrics: MetricTileData[];
3010
+ /** Space between tiles (Stack gap scale, default 1 ≈ 4px) */
3011
+ gap?: 0 | 1 | 2 | 3 | 4;
3012
+ }
3013
+ /**
3014
+ * MetricTiles — a row of equal-width stat tiles.
3015
+ *
3016
+ * A thin, presentational HStack of {@link Tile}. Each tile flexes to fill its
3017
+ * share so the row reflows gracefully in a responsive rail. Used by SessionHeader
3018
+ * for Volume / Load / Fatigue (and Date / Time / Until when upcoming).
3019
+ *
3020
+ * @example
3021
+ * <MetricTiles metrics={[
3022
+ * { label: 'Volume', value: '76%' },
3023
+ * { label: 'Load', value: '7.3k' },
3024
+ * { label: 'Fatigue', value: 'MOD', valueColor: amber },
3025
+ * ]} />
3026
+ */
3027
+ declare function MetricTiles({ metrics, gap, ...props }: MetricTilesProps): react_jsx_runtime.JSX.Element;
3028
+
3029
+ type Gap = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 8 | 10 | 12;
3030
+ interface ScheduleTilesProps extends ViewProps {
3031
+ /** The scheduled moment (timestamp in ms or Date object). */
3032
+ when: number | Date;
3033
+ /** Reference "now"; injectable so the until/accent calc is deterministic in tests. Defaults to the mount time. */
3034
+ now?: number;
3035
+ /** Gap between the tiles (default 1). */
3036
+ gap?: Gap;
3037
+ }
3038
+ /**
3039
+ * ScheduleTiles — Date / Time / Until row for an upcoming session.
3040
+ *
3041
+ * An HStack of three {@link Tile}s derived from a single scheduled moment. The
3042
+ * Until value reuses {@link formatDateTime} relative formatting and turns
3043
+ * accent-orange only when the session is less than a day away.
3044
+ *
3045
+ * @example
3046
+ * <ScheduleTiles when={Date.now() + 5 * 60 * 60 * 1000} />
3047
+ */
3048
+ declare function ScheduleTiles({ when, now, gap, ...props }: ScheduleTilesProps): react_jsx_runtime.JSX.Element;
3049
+
3050
+ interface SetStripProps extends ViewProps {
3051
+ /** Per-set performance data, in set order. */
3052
+ sets: SetStripSet[];
3053
+ /** Bar height in px. Default 8. */
3054
+ height?: number;
3055
+ className?: string;
3056
+ }
3057
+ /**
3058
+ * The per-set segmented performance strip: one continuous {@link SetBar} per set
3059
+ * (rep intensities as butted color segments, no rep gaps), sets separated by a
3060
+ * fixed gap. Fills its container width. Colors are the real titan ramp pins.
3061
+ */
3062
+ declare function SetStrip({ sets, height, className, ...props }: SetStripProps): react_jsx_runtime.JSX.Element;
3063
+
3064
+ interface ExerciseHeadingProps {
3065
+ name: string;
3066
+ /** Prescription line values (sets × reps @ load). */
3067
+ sets: number;
3068
+ reps: number | string;
3069
+ load: number;
3070
+ unit?: 'lbs' | 'kg';
3071
+ /** Tempo tuple [eccentric, pauseBottom, concentric, pauseTop]; hidden when absent. */
3072
+ tempo?: [number, number, number, number];
3073
+ /** Small PR / issue / info chip in the title row. */
3074
+ indicator?: ExerciseIndicatorKind;
3075
+ /** Dim the block as a not-yet-reached exercise (standalone use). */
3076
+ dimmed?: boolean;
3077
+ /** Press target for the name row (expand / select). */
3078
+ onPress?: () => void;
3079
+ }
3080
+ /**
3081
+ * The exercise-heading info block (no strip): the name + {@link ExerciseIndicator}
3082
+ * title row over a tight {@link SetsRepsLoad} prescription line beside the real
3083
+ * {@link TempoDisplay} (`showLabel={false}`). The name row is the sole press
3084
+ * target — TempoDisplay is a sibling, never a descendant, since it is itself a
3085
+ * Pressable (nesting would be an a11y nested-interactive violation).
3086
+ */
3087
+ declare function ExerciseHeading({ name, sets, reps, load, unit, tempo, indicator, dimmed, onPress, }: ExerciseHeadingProps): react_jsx_runtime.JSX.Element;
3088
+
3089
+ interface ExerciseCardHeadingProps extends ExerciseHeadingProps {
3090
+ /** Per-set performance data driving the strip; an empty list renders no strip. */
3091
+ setStates: SetStripSet[];
3092
+ /** Strip height in px. Default 8. */
3093
+ stripHeight?: number;
3094
+ /** Root testID. Default "exercise-card"; override when nested inside another card. */
3095
+ testID?: string;
3096
+ }
3097
+ /**
3098
+ * The complete, standalone session-rail heading: an {@link ExerciseHeading} info
3099
+ * block over its per-set {@link SetStrip}. The unit the rail lists — self-contained
3100
+ * and independent of {@link ExerciseCard} (whose `rail` state delegates here).
3101
+ * e1RM is intentionally dropped (a planning / live-panel concern). Dimming lives on
3102
+ * the outer wrapper so the strip dims with the heading.
3103
+ */
3104
+ declare function ExerciseCardHeading({ setStates, stripHeight, dimmed, testID, ...heading }: ExerciseCardHeadingProps): react_jsx_runtime.JSX.Element;
3105
+
3106
+ interface SetTableHeaderProps {
3107
+ /** Weight-column label: LBS / KG. Default lbs. */
3108
+ unit?: 'lbs' | 'kg';
3109
+ /** Show the PREV (previous-best) column. Default true; false drops it for rail density. */
3110
+ showPrevious?: boolean;
3111
+ /** Overridable so a host card can keep its own testID. Default "table-header". */
3112
+ testID?: string;
3113
+ }
3114
+ /**
3115
+ * The expanded-set-table column-header row: SET · PREV · REPS · LOAD · RPE, with
3116
+ * the weight column reflecting `unit`. `showPrevious={false}` drops PREV (rail
3117
+ * density). Its per-column widths mirror {@link SetRow} so headers align over the
3118
+ * rows. Extracted from {@link ExerciseCard}'s expanded state for reuse.
3119
+ */
3120
+ declare function SetTableHeader({ unit, showPrevious, testID, }: SetTableHeaderProps): react_jsx_runtime.JSX.Element;
3121
+
3122
+ interface SessionHeaderPlanEntry {
3123
+ /** Exercise name (currently informational — chunk widths come from `sets`). */
3124
+ name?: string;
3125
+ /** Planned set count — drives this exercise's chunk width (∝ sets). */
3126
+ sets: number;
3127
+ }
3128
+ interface SessionHeaderProps extends ViewProps {
3129
+ /** Session title — the live session's name, or the next session's name when `next` is set. */
3130
+ title: string;
3131
+ /** Exercises in order → chunk widths (∝ sets). */
3132
+ plan: SessionHeaderPlanEntry[];
3133
+ /** Fractional sets completed (live). 0/undefined leaves the bar empty. */
3134
+ setsDone?: number;
3135
+ /** Live elapsed time in ms — drives the ⏱ readout and the pace marker. */
3136
+ elapsedMs?: number;
3137
+ /** Optional time budget in ms → adds the pace marker and the ` / budget` suffix. Omit → no marker, plain (steel) progress. */
3138
+ budgetMs?: number;
3139
+ /** Elapsed readout goes live-green while true. Default true (live). */
3140
+ running?: boolean;
3141
+ /** Live stat tiles (Volume / Load / Fatigue). Ignored when `next` is set. */
3142
+ metrics?: MetricTileData[];
3143
+ /** When set → UPCOMING layout: schedule tiles + empty bar; `title` is the next session's name. */
3144
+ next?: number | Date;
3145
+ className?: string;
3146
+ }
3147
+ /**
3148
+ * The session-rail heading: the session title over a stat row and a chunked pace bar.
3149
+ * Live, it shows Volume/Load/Fatigue tiles, a per-exercise progress bar (fill ∝ sets
3150
+ * done, coloured green/amber against the elapsed-vs-budget pace, with a live marker),
3151
+ * a mono `n/total sets` label and a ⏱ elapsed readout. Upcoming (`next` set), the tiles
3152
+ * become Date/Time/Until, the bar is the empty plan shape, and the readout shows the
3153
+ * planned duration. Rendered on the raised charcoal plane; presentational. Composes
3154
+ * {@link MetricTiles} / {@link ScheduleTiles} + {@link SegmentedProgressBar} +
3155
+ * {@link TimerReadout}.
3156
+ */
3157
+ declare function SessionHeader({ title, plan, setsDone, elapsedMs, budgetMs, running, metrics, next, className, style, ...props }: SessionHeaderProps): react_jsx_runtime.JSX.Element;
3158
+
3159
+ interface SessionRailExercise {
3160
+ /** Stable key + press payload. Falls back to list index when absent. */
3161
+ id?: string;
3162
+ name: string;
3163
+ summary: {
3164
+ sets: number;
3165
+ reps: number | string;
3166
+ weight: number;
3167
+ unit: 'lbs' | 'kg';
3168
+ };
3169
+ tempo?: [number, number, number, number];
3170
+ indicator?: ExerciseIndicatorKind;
3171
+ /** Per-set performance data driving the heading strip. */
3172
+ setStates: SetStripSet[];
3173
+ /** Dim the row as a not-yet-reached exercise. */
3174
+ upcoming?: boolean;
3175
+ }
3176
+ interface SessionRailProps extends ViewProps {
3177
+ /** Session title — the live session's name, or the next session's name when `next` is set. */
3178
+ title: string;
3179
+ exercises: SessionRailExercise[];
3180
+ /** Fractional sets completed (live) — drives the header's pace bar + sets label. */
3181
+ setsDone?: number;
3182
+ /** Live elapsed time in ms — drives the header's ⏱ readout and pace marker. */
3183
+ elapsedMs?: number;
3184
+ /** Optional time budget in ms → header pace marker + ` / budget`. */
3185
+ budgetMs?: number;
3186
+ /** Header elapsed readout goes live-green while true. Default true (live). */
3187
+ running?: boolean;
3188
+ /** Live stat tiles (Volume / Load / Fatigue). Ignored when `next` is set. */
3189
+ metrics?: MetricTileData[];
3190
+ /** When set → the header renders the UPCOMING glance (Date/Time/Until + empty bar). */
3191
+ next?: number | Date;
3192
+ /** Heading strip height in px, forwarded to each row. Default 8. */
3193
+ stripHeight?: number;
3194
+ /** Rail width in px. Default 246. */
3195
+ width?: number;
3196
+ onExercisePress?: (exercise: SessionRailExercise, index: number) => void;
3197
+ className?: string;
3198
+ }
3199
+ /**
3200
+ * The live-workout session rail: a flat raised {@link SessionHeader} glance (title,
3201
+ * stat tiles, chunked pace bar) over a sunk, inset list of {@link ExerciseCardHeading}
3202
+ * exercise headings. The header's plan (chunk widths ∝ sets) is derived from `exercises`.
3203
+ * Presentational — driven entirely by props.
3204
+ */
3205
+ declare function SessionRail({ title, exercises, setsDone, elapsedMs, budgetMs, running, metrics, next, stripHeight, width, onExercisePress, className, style, ...props }: SessionRailProps): react_jsx_runtime.JSX.Element;
3206
+
2761
3207
  interface SupersetWrapperProps {
2762
3208
  label?: string;
2763
3209
  color?: string;
2764
- children: React.ReactNode;
3210
+ children: React$1.ReactNode;
2765
3211
  }
2766
3212
  declare function SupersetWrapper({ label, color, children, }: SupersetWrapperProps): react_jsx_runtime.JSX.Element;
2767
3213
 
@@ -2862,6 +3308,206 @@ interface ReadinessCheckProps {
2862
3308
  */
2863
3309
  declare function ReadinessCheck({ factors, score, warmUpValidation, warmUpCompleted, onConfirm, className, }: ReadinessCheckProps): react_jsx_runtime.JSX.Element;
2864
3310
 
3311
+ /** A single colour band of the zone gradient, spanning `[prev.upTo, upTo]` of the domain. */
3312
+ interface ZoneTrackZone {
3313
+ /** Upper bound of this band in domain units. The last band's `upTo` should reach `max`. */
3314
+ upTo: number;
3315
+ /** Band fill colour — a literal hex (RNW-safe), sourced from a ramp/effort-scale token. */
3316
+ color: string;
3317
+ }
3318
+ /**
3319
+ * A tick at `value`: a colored line over the track + an optional compact label
3320
+ * below, with an optional tooltip (to expand an acronym / show the raw value so
3321
+ * the label footer can stay light). Multiple ticks are supported.
3322
+ */
3323
+ interface ZoneTrackTick {
3324
+ /** Position of the tick in domain units. */
3325
+ value: number;
3326
+ /** Optional compact label rendered under the tick. */
3327
+ label?: string;
3328
+ /** Line + label colour. Defaults to a muted tick colour (or brand when `emphasized`). */
3329
+ color?: string;
3330
+ /** Emphasize this tick (thicker line, brand colour by default) — e.g. a target landmark. */
3331
+ emphasized?: boolean;
3332
+ /** Tooltip content shown on hover (web) / long-press (native) — expand the acronym, show the raw value. */
3333
+ tooltip?: string;
3334
+ }
3335
+ /**
3336
+ * The value marker sitting on the track.
3337
+ * - `needle`: a vertical line at `value`, overhanging the track (FatigueMeter / TrainingLoadGauge).
3338
+ * - `fill`: a left-anchored fill from `min` to `value`. Omit `color` to clip-reveal the zone
3339
+ * gradient up to `value`; supply `color` for a solid trend-coloured fill (FatigueGauge-style).
3340
+ */
3341
+ type ZoneTrackMarker = {
3342
+ type: 'needle';
3343
+ value: number;
3344
+ color?: string;
3345
+ glow?: boolean;
3346
+ } | {
3347
+ type: 'fill';
3348
+ value: number;
3349
+ color?: string;
3350
+ glow?: boolean;
3351
+ };
3352
+ /** An optional translucent range highlight (e.g. RpeCalibration's predicted CI band). */
3353
+ interface ZoneTrackBand {
3354
+ /** Range start in domain units. */
3355
+ from: number;
3356
+ /** Range end in domain units. */
3357
+ to: number;
3358
+ /** Highlight colour (typically a translucent token). */
3359
+ color: string;
3360
+ }
3361
+ interface ZoneTrackProps extends ViewProps {
3362
+ /** Ordered zone bands, laid left→right; each covers `[previous.upTo, upTo]` of the domain. */
3363
+ zones: ZoneTrackZone[];
3364
+ /** Domain maximum (right edge). */
3365
+ max: number;
3366
+ /** Domain minimum (left edge). Default 0. */
3367
+ min?: number;
3368
+ /** The value marker — a needle line or a left-anchored fill. Omit for a bare gradient track. */
3369
+ marker?: ZoneTrackMarker | null;
3370
+ /** Optional tick marks with labels below the track. */
3371
+ ticks?: ZoneTrackTick[];
3372
+ /** Optional translucent range highlight drawn over the gradient. */
3373
+ band?: ZoneTrackBand | null;
3374
+ /** Track height in px. Default 14. */
3375
+ trackHeight?: number;
3376
+ /** How far a needle marker overhangs the track top + bottom, in px. Default 6. */
3377
+ needleOverhang?: number;
3378
+ /** Muted colour of the track behind / beyond the fill. Default a charcoal step. */
3379
+ trackColor?: string;
3380
+ className?: string;
3381
+ }
3382
+ /**
3383
+ * Low-level gauge primitive: a horizontal pill track carrying an N-band zone gradient,
3384
+ * optional tick marks with labels, and a single value marker (a needle line or a
3385
+ * left-anchored fill). The zone bands are weighted by their domain span, so thresholds
3386
+ * need not be evenly spaced. This is the shared visual base for the linear gauge family
3387
+ * (FatigueMeter needle, TrainingLoadGauge zone bar, RpeCalibration band + marker) — pass
3388
+ * the domain (`min`/`max`), the `zones`, and a `marker`; colours are literal hex from the
3389
+ * ramp tokens (never `var()` refs, so they survive the RNW/vitest alias).
3390
+ */
3391
+ declare function ZoneTrack({ zones, max, min, marker, ticks, band, trackHeight, needleOverhang, trackColor, className, style, accessibilityLabel, ...props }: ZoneTrackProps): react_jsx_runtime.JSX.Element;
3392
+
3393
+ interface FatigueMeterProps extends ViewProps {
3394
+ /** Current velocity-loss percentage (0 = fresh). Drives the needle position. */
3395
+ value: number;
3396
+ /** Upper bound of the fatigue scale — the "stop" end, in loss %. Default 40. */
3397
+ max?: number;
3398
+ /** Zone boundary thresholds (loss %): green→gold, gold→orange, orange→red. Default [10,20,30]. */
3399
+ thresholds?: [number, number, number];
3400
+ /** Zone band colours low→high (fresh→stop). Default the canonical effort scale. */
3401
+ zoneColors?: [string, string, string, string];
3402
+ /** Tick labels at [min, ...thresholds, max]. Default ['fresh','VL10','VL20','VL30','stop']. */
3403
+ labels?: string[];
3404
+ /** Track height in px. Default 14. */
3405
+ trackHeight?: number;
3406
+ /** Needle colour. Default white. */
3407
+ needleColor?: string;
3408
+ className?: string;
3409
+ }
3410
+ /**
3411
+ * A fatigue meter: a sliding needle over a fixed green→gold→orange→red velocity-loss
3412
+ * gradient with VL10/VL20/VL30/stop scale markers. This is the winning fatigue-visual
3413
+ * lineage (needle-over-zoned-gradient, three independent sources agreed) — it composes
3414
+ * the shared {@link ZoneTrack} primitive, supplying the fatigue domain, zone bands from
3415
+ * the effort-scale tokens, and the coaching-cue tick labels. Prop-driven: `value` plus
3416
+ * overridable `thresholds` / `max` / `zoneColors` / `labels`.
3417
+ *
3418
+ * @example
3419
+ * <FatigueMeter value={21} /> // needle in the VL20 (orange) zone
3420
+ * <FatigueMeter value={8} max={40} thresholds={[10, 20, 30]} />
3421
+ */
3422
+ declare function FatigueMeter({ value, max, thresholds, zoneColors, labels, trackHeight, needleColor, className, ...props }: FatigueMeterProps): react_jsx_runtime.JSX.Element;
3423
+
3424
+ type VolumeZone = 'under' | 'maintenance' | 'productive' | 'approaching' | 'over';
3425
+
3426
+ interface VolumeLandmarkBarProps extends ViewProps {
3427
+ /** Muscle group label shown in the header lockup. */
3428
+ muscle: string;
3429
+ /** Current weekly working sets for this muscle group. */
3430
+ currentSets: number;
3431
+ /** MEV / MAV / MRV landmark set counts. */
3432
+ landmarks: VolumeLandmarks;
3433
+ /** Track width in px (default 220). */
3434
+ width?: number;
3435
+ /** Track height in px (default 10). */
3436
+ trackHeight?: number;
3437
+ /**
3438
+ * Upper bound of the track scale in sets. Defaults to `mrv` plus 20% headroom
3439
+ * so an over-MRV fill visibly extends past the MRV tick.
3440
+ */
3441
+ scaleMax?: number;
3442
+ className?: string;
3443
+ }
3444
+ /**
3445
+ * Horizontal weekly-volume bar with MEV / MAV / MRV landmark ticks and a HEAT-scale
3446
+ * fill positioned against the MAV target. Composes the shared {@link ZoneTrack}
3447
+ * gauge primitive (track + active-zone fill + colored/tooltip landmark ticks; glows
3448
+ * when in the productive zone) and a {@link DataRow} header lockup (muscle title +
3449
+ * current % at matched type height). The tick acronyms expand to their full name +
3450
+ * raw set count on hover/long-press, keeping the footer light. Reuses the canonical
3451
+ * BodyMap volume heat scale so a muscle's status reads the same as in the body map.
3452
+ *
3453
+ * @example
3454
+ * <VolumeLandmarkBar muscle="Quads" currentSets={16} landmarks={{ mev: 8, mav: 16, mrv: 22 }} />
3455
+ */
3456
+ declare function VolumeLandmarkBar({ muscle, currentSets, landmarks, width, trackHeight, scaleMax, className, style, ...props }: VolumeLandmarkBarProps): react_jsx_runtime.JSX.Element;
3457
+
3458
+ /**
3459
+ * Auto-regulation verdict — the human-readable read-once summary of a set's
3460
+ * velocity-loss state.
3461
+ * - `productive` — in the band, keep going (success)
3462
+ * - `threshold` — VL20 reached, approaching fatigue (warning)
3463
+ * - `stop` — VL28+, terminate the set (error)
3464
+ */
3465
+ type StatusPillStatus = 'productive' | 'threshold' | 'stop';
3466
+ interface StatusPillProps extends ViewProps {
3467
+ status: StatusPillStatus;
3468
+ /** Overrides the default verdict text for the status. */
3469
+ label?: string;
3470
+ className?: string;
3471
+ }
3472
+ /** Resolved semantic color for a verdict status. */
3473
+ declare function statusPillColor(status: StatusPillStatus): string;
3474
+ /**
3475
+ * Verdict pill: a glowing status dot + colored verdict text, in a tinted,
3476
+ * bordered capsule. Composes {@link StatusDot} for the dot so the glow/color
3477
+ * stays consistent with the atom. Tint and border are derived from the same
3478
+ * semantic token via `alpha()` — no per-status raw hex.
3479
+ */
3480
+ declare function StatusPill({ status, label, className, style, ...props }: StatusPillProps): react_jsx_runtime.JSX.Element;
3481
+
3482
+ /**
3483
+ * Coaching-category flood level for the live surface. Mirrors {@link StatusPill}:
3484
+ * - `productive` — quiet, no flood
3485
+ * - `threshold` — amber wash at VL20
3486
+ * - `stop` — red wash at VL28+ (optionally pulsing)
3487
+ */
3488
+ type LiveAuraCategory = 'productive' | 'threshold' | 'stop';
3489
+ interface LiveAuraFrameProps extends ViewProps {
3490
+ category: LiveAuraCategory;
3491
+ /**
3492
+ * Pulse the flood on `stop`. Uses the nativewind `animate-pulse` utility so
3493
+ * it stays static-friendly under test (className→style, no live clock).
3494
+ * Defaults to true.
3495
+ */
3496
+ pulse?: boolean;
3497
+ className?: string;
3498
+ children?: React.ReactNode;
3499
+ }
3500
+ /** Resolved flood color for a category, or `null` when there is no flood. */
3501
+ declare function liveAuraColor(category: LiveAuraCategory): string | null;
3502
+ /**
3503
+ * Full-surface color-flood frame tied to a coaching category. Wraps `children`
3504
+ * on a charcoal base and layers a radial wash (amber at threshold, red at stop)
3505
+ * as a decorative, pointer-transparent overlay. The wash uses a solid
3506
+ * `backgroundColor` fallback (native) plus a web-only `backgroundImage` radial
3507
+ * gradient; both derive from the same semantic token via `alpha()`.
3508
+ */
3509
+ declare function LiveAuraFrame({ category, pulse, className, children, style, ...props }: LiveAuraFrameProps): react_jsx_runtime.JSX.Element;
3510
+
2865
3511
  interface TreemapDatum {
2866
3512
  /** Stable identity — returned by onPress and used as the React key. */
2867
3513
  id: string;
@@ -3091,6 +3737,91 @@ interface TopBarProps {
3091
3737
  */
3092
3738
  declare function TopBar({ state, devices, time, subtitle, showSubtitle, showClock, onSelectDevice, className, }: TopBarProps): react_jsx_runtime.JSX.Element;
3093
3739
 
3740
+ interface NavItemProps {
3741
+ /** The nav glyph (an icon from `components/icons`, rendered ~20px via `currentColor`). */
3742
+ icon: ReactNode;
3743
+ /** Short label shown under the glyph (uppercased for display; used as the accessible name). */
3744
+ label: string;
3745
+ /** Active category → left accent bar + brand-colored glyph & label. */
3746
+ active?: boolean;
3747
+ /**
3748
+ * A set is running for this category while it is NOT the active view
3749
+ * (live-elsewhere) → a quiet muted-green label tint. Ignored when `active`.
3750
+ */
3751
+ live?: boolean;
3752
+ onPress?: () => void;
3753
+ className?: string;
3754
+ }
3755
+ /**
3756
+ * Shell S2 · NavItem — one category button in the {@link SideNav}: a 20px glyph
3757
+ * over an uppercase micro-label in a 46×46 target. The button spans the full 60px
3758
+ * rail so the active **left accent bar** sits flush to the rail's edge. States:
3759
+ * active = accent bar + `brand-primary`; `live` (while not active) tints only the
3760
+ * label `status-success-dark` (the glyph stays dim); otherwise dim `text-tertiary`.
3761
+ */
3762
+ declare function NavItem({ icon, label, active, live, onPress, className, }: NavItemProps): react_jsx_runtime.JSX.Element;
3763
+
3764
+ interface SideNavItem {
3765
+ /** Stable category key — matches `activeKey` / `liveKey`. */
3766
+ key: string;
3767
+ /** Micro-label shown under the glyph. */
3768
+ label: string;
3769
+ /** The glyph node (rendered ~20px via `currentColor`). */
3770
+ icon: ReactNode;
3771
+ }
3772
+ interface SideNavProps {
3773
+ /** Category items, top → bottom. Defaults to the four dashboard categories. */
3774
+ items?: SideNavItem[];
3775
+ /** Key of the active category. */
3776
+ activeKey: string;
3777
+ /** Called with the tapped item's key. */
3778
+ onNavigate?: (key: string) => void;
3779
+ /**
3780
+ * Key of a category with live activity while it is NOT active (e.g. a set
3781
+ * running off its view) → a quiet green cue on that item's label.
3782
+ */
3783
+ liveKey?: string | null;
3784
+ className?: string;
3785
+ }
3786
+ /** The four dashboard categories with their locked S2 glyphs (activity · history · layers · figure). */
3787
+ declare const defaultNavItems: SideNavItem[];
3788
+ /**
3789
+ * Shell S2 · SideNav — the persistent 60px left rail that switches the main
3790
+ * viewport between categories (Live · Review · Program · Body). Presentational:
3791
+ * it renders `items` and reports taps via `onNavigate`; the app owns routing and
3792
+ * which key is `live`. Active item shows a left accent bar; `liveKey` (when not
3793
+ * the active view) tints that item's label a muted green. Fixed 60px at every
3794
+ * width — labels sit under the glyph, so they never change the rail width.
3795
+ */
3796
+ declare function SideNav({ items, activeKey, onNavigate, liveKey, className, }: SideNavProps): react_jsx_runtime.JSX.Element;
3797
+
3798
+ /**
3799
+ * `DashboardShell` — the wall-dashboard chrome: a persistent {@link SideNav} rail +
3800
+ * {@link TopBar} over a main content region. A thin frame that wires the shell-nav
3801
+ * organisms together and exposes a `children` content slot, so the dashboard app
3802
+ * mounts one component instead of re-assembling the chrome. Driven entirely by props.
3803
+ */
3804
+ interface DashboardShellProps {
3805
+ /** Active nav category key. */
3806
+ activeKey?: string;
3807
+ /** Nav categories, top → bottom. Defaults to SideNav's four dashboard categories. */
3808
+ navItems?: SideNavItem[];
3809
+ /** A category with off-view live activity → a quiet cue on that item. */
3810
+ liveKey?: string | null;
3811
+ /** Global session state → the TopBar status pill. */
3812
+ state?: SessionState;
3813
+ /** Connected devices → the TopBar connection glyph + dropdown. */
3814
+ devices?: Device[];
3815
+ /** TopBar brand subtitle. */
3816
+ subtitle?: string;
3817
+ onNavigate?: (key: string) => void;
3818
+ onSelectDevice?: (device: Device) => void;
3819
+ /** Main content region. A placeholder renders when omitted. */
3820
+ children?: ReactNode;
3821
+ className?: string;
3822
+ }
3823
+ declare function DashboardShell({ activeKey, navItems, liveKey, state, devices, subtitle, onNavigate, onSelectDevice, children, className, }: DashboardShellProps): react_jsx_runtime.JSX.Element;
3824
+
3094
3825
  /**
3095
3826
  * Utility function to merge Tailwind CSS classes with proper conflict resolution.
3096
3827
  * Combines clsx for conditional classes with tailwind-merge for deduplication.
@@ -3299,4 +4030,4 @@ interface PrescriptionInput {
3299
4030
  */
3300
4031
  declare function formatPrescription(p: PrescriptionInput | null | undefined): string | null;
3301
4032
 
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 };
4033
+ 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, 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 };