@titan-design/react-ui 0.5.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 (307) hide show
  1. package/dist/bodymap.js +241 -189
  2. package/dist/bodymap.js.map +1 -1
  3. package/dist/bodymap.mjs +241 -189
  4. package/dist/bodymap.mjs.map +1 -1
  5. package/dist/index.d.mts +1017 -130
  6. package/dist/index.d.ts +1017 -130
  7. package/dist/index.js +3058 -1090
  8. package/dist/index.js.map +1 -1
  9. package/dist/index.mjs +2992 -1091
  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 +1797 -1292
  16. package/dist/pages.js.map +1 -1
  17. package/dist/pages.mjs +1797 -1292
  18. package/dist/pages.mjs.map +1 -1
  19. package/dist/theme/index.d.mts +464 -268
  20. package/dist/theme/index.d.ts +464 -268
  21. package/dist/theme/index.js +303 -191
  22. package/dist/theme/index.js.map +1 -1
  23. package/dist/theme/index.mjs +295 -192
  24. package/dist/theme/index.mjs.map +1 -1
  25. package/dist/theme/tokens-css.js +160 -143
  26. package/dist/theme/tokens-css.js.map +1 -1
  27. package/dist/theme/tokens-css.mjs +160 -143
  28. package/dist/theme/tokens-css.mjs.map +1 -1
  29. package/package.json +3 -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 +83 -7
  34. package/src/components/custom/DateTime/DateTime.test.tsx +29 -3
  35. package/src/components/custom/DateTime/DateTime.tsx +55 -15
  36. package/src/components/custom/EmptyState/EmptyState.stories.tsx +1 -1
  37. package/src/components/custom/Gauge/Gauge.stories.tsx +1 -1
  38. package/src/components/custom/Gauge/Gauge.test.tsx +2 -2
  39. package/src/components/custom/Gauge/Gauge.tsx +6 -3
  40. package/src/components/custom/Metric/Metric.stories.tsx +1 -1
  41. package/src/components/custom/Scatter/Scatter.stories.tsx +1 -1
  42. package/src/components/custom/Scatter/Scatter.tsx +3 -5
  43. package/src/components/custom/Sidebar/Sidebar.stories.tsx +1 -1
  44. package/src/components/custom/Table/Table.stories.tsx +1 -1
  45. package/src/components/custom/TimerReadout/TimerReadout.stories.tsx +62 -0
  46. package/src/components/custom/TimerReadout/TimerReadout.test.tsx +72 -0
  47. package/src/components/custom/TimerReadout/TimerReadout.tsx +75 -0
  48. package/src/components/custom/TimerReadout/index.ts +1 -0
  49. package/src/components/custom/Treemap/Treemap.stories.tsx +1 -1
  50. package/src/components/custom/Treemap/Treemap.tsx +3 -5
  51. package/src/components/custom/Typography/Typography.stories.tsx +46 -28
  52. package/src/components/custom/Typography/Typography.test.tsx +13 -3
  53. package/src/components/custom/Typography/Typography.tsx +5 -0
  54. package/src/components/custom/Workout/ActiveWorkoutPage.stories.tsx +21 -13
  55. package/src/components/custom/Workout/ActiveWorkoutPage.test.tsx +16 -13
  56. package/src/components/custom/Workout/ActiveWorkoutPage.tsx +11 -16
  57. package/src/components/custom/Workout/BaseBadge.stories.tsx +1 -1
  58. package/src/components/custom/Workout/BodyMap.stories.tsx +1 -1
  59. package/src/components/custom/Workout/BodyMap.tsx +6 -3
  60. package/src/components/custom/Workout/BodyMapDetailPanel.stories.tsx +1 -1
  61. package/src/components/custom/Workout/BodyMapDetailPanel.tsx +6 -3
  62. package/src/components/custom/Workout/CapacityBandChart.stories.tsx +1 -1
  63. package/src/components/custom/Workout/CapacityBandChart.test.tsx +2 -2
  64. package/src/components/custom/Workout/CapacityBandChart.tsx +9 -6
  65. package/src/components/custom/Workout/DeviationBar.stories.tsx +1 -1
  66. package/src/components/custom/Workout/DeviationBar.test.tsx +1 -1
  67. package/src/components/custom/Workout/DeviationBar.tsx +7 -4
  68. package/src/components/custom/Workout/ExerciseCard.stories.tsx +51 -66
  69. package/src/components/custom/Workout/ExerciseCard.test.tsx +146 -143
  70. package/src/components/custom/Workout/ExerciseCard.tsx +176 -198
  71. package/src/components/custom/Workout/ExerciseCardHeading.stories.tsx +99 -0
  72. package/src/components/custom/Workout/ExerciseCardHeading.test.tsx +72 -0
  73. package/src/components/custom/Workout/ExerciseCardHeading.tsx +43 -0
  74. package/src/components/custom/Workout/ExerciseCardUnified.stories.tsx +151 -0
  75. package/src/components/custom/Workout/ExerciseDetailPage.stories.tsx +5 -3
  76. package/src/components/custom/Workout/ExerciseDetailPage.test.tsx +4 -4
  77. package/src/components/custom/Workout/ExerciseDetailPage.tsx +6 -6
  78. package/src/components/custom/Workout/ExerciseHeading.stories.tsx +81 -0
  79. package/src/components/custom/Workout/ExerciseHeading.test.tsx +77 -0
  80. package/src/components/custom/Workout/ExerciseHeading.tsx +85 -0
  81. package/src/components/custom/Workout/ExerciseIndicator.stories.tsx +110 -0
  82. package/src/components/custom/Workout/ExerciseIndicator.test.tsx +93 -0
  83. package/src/components/custom/Workout/ExerciseIndicator.tsx +120 -0
  84. package/src/components/custom/Workout/FatigueMeter.stories.tsx +51 -0
  85. package/src/components/custom/Workout/FatigueMeter.test.tsx +73 -0
  86. package/src/components/custom/Workout/FatigueMeter.tsx +82 -0
  87. package/src/components/custom/Workout/InputBar.stories.tsx +1 -1
  88. package/src/components/custom/Workout/InputBar.tsx +2 -1
  89. package/src/components/custom/Workout/IntensityBar.stories.tsx +1 -1
  90. package/src/components/custom/Workout/IntensityBar.test.tsx +8 -8
  91. package/src/components/custom/Workout/IntensityBar.tsx +10 -6
  92. package/src/components/custom/Workout/LiveAuraFrame.stories.tsx +153 -0
  93. package/src/components/custom/Workout/LiveAuraFrame.test.tsx +74 -0
  94. package/src/components/custom/Workout/LiveAuraFrame.tsx +105 -0
  95. package/src/components/custom/Workout/MesoCard.stories.tsx +1 -1
  96. package/src/components/custom/Workout/MesoCard.tsx +8 -3
  97. package/src/components/custom/Workout/MesoProgressBar.stories.tsx +1 -1
  98. package/src/components/custom/Workout/MesoProgressBar.test.tsx +1 -1
  99. package/src/components/custom/Workout/MesoProgressBar.tsx +3 -2
  100. package/src/components/custom/Workout/MesoStatusCard.stories.tsx +1 -1
  101. package/src/components/custom/Workout/MesoStatusCard.tsx +20 -13
  102. package/src/components/custom/Workout/MetricTiles.stories.tsx +60 -0
  103. package/src/components/custom/Workout/MetricTiles.test.tsx +58 -0
  104. package/src/components/custom/Workout/MetricTiles.tsx +48 -0
  105. package/src/components/custom/Workout/MuscleGroupChip.stories.tsx +1 -1
  106. package/src/components/custom/Workout/MuscleGroupChip.tsx +7 -4
  107. package/src/components/custom/Workout/PlaceholderStrip.stories.tsx +1 -1
  108. package/src/components/custom/Workout/PrBadge.stories.tsx +1 -1
  109. package/src/components/custom/Workout/PrBadge.tsx +5 -2
  110. package/src/components/custom/Workout/PrHistoryModal.stories.tsx +1 -1
  111. package/src/components/custom/Workout/PrHistoryModal.tsx +4 -3
  112. package/src/components/custom/Workout/ProgramPlanningPage.stories.tsx +4 -16
  113. package/src/components/custom/Workout/ProgramPlanningPage.tsx +10 -7
  114. package/src/components/custom/Workout/README.md +146 -4
  115. package/src/components/custom/Workout/ReadinessCheck.stories.tsx +1 -1
  116. package/src/components/custom/Workout/ReadinessCheck.tsx +7 -4
  117. package/src/components/custom/Workout/RestTimer.stories.tsx +1 -1
  118. package/src/components/custom/Workout/RestTimer.tsx +17 -11
  119. package/src/components/custom/Workout/RowInventory.stories.tsx +405 -0
  120. package/src/components/custom/Workout/S3FullRail.stories.tsx +34 -0
  121. package/src/components/custom/Workout/S3SessionPace.stories.tsx +95 -0
  122. package/src/components/custom/Workout/S3SessionRailHeading.stories.tsx +61 -0
  123. package/src/components/custom/Workout/S3SetTypes.stories.tsx +176 -0
  124. package/src/components/custom/Workout/S3WorkoutExpansion.stories.tsx +240 -0
  125. package/src/components/custom/Workout/ScheduleTiles.stories.tsx +40 -0
  126. package/src/components/custom/Workout/ScheduleTiles.test.tsx +34 -0
  127. package/src/components/custom/Workout/ScheduleTiles.tsx +70 -0
  128. package/src/components/custom/Workout/SegmentedBar.stories.tsx +99 -0
  129. package/src/components/custom/Workout/SegmentedBar.test.tsx +77 -0
  130. package/src/components/custom/Workout/SegmentedBar.tsx +172 -0
  131. package/src/components/custom/Workout/SegmentedProgressBar.stories.tsx +50 -0
  132. package/src/components/custom/Workout/SegmentedProgressBar.test.tsx +80 -0
  133. package/src/components/custom/Workout/SegmentedProgressBar.tsx +67 -0
  134. package/src/components/custom/Workout/SessionHeader.stories.tsx +121 -0
  135. package/src/components/custom/Workout/SessionHeader.test.tsx +122 -0
  136. package/src/components/custom/Workout/SessionHeader.tsx +152 -0
  137. package/src/components/custom/Workout/SessionRail.stories.tsx +153 -0
  138. package/src/components/custom/Workout/SessionRail.test.tsx +86 -0
  139. package/src/components/custom/Workout/SessionRail.tsx +126 -0
  140. package/src/components/custom/Workout/SetBar.stories.tsx +124 -0
  141. package/src/components/custom/Workout/SetBar.test.tsx +123 -0
  142. package/src/components/custom/Workout/SetBar.tsx +171 -0
  143. package/src/components/custom/Workout/SetRow.stories.tsx +50 -100
  144. package/src/components/custom/Workout/SetRow.test.tsx +94 -166
  145. package/src/components/custom/Workout/SetRow.tsx +170 -232
  146. package/src/components/custom/Workout/SetStrip.stories.tsx +154 -0
  147. package/src/components/custom/Workout/SetStrip.test.tsx +109 -0
  148. package/src/components/custom/Workout/SetStrip.tsx +71 -0
  149. package/src/components/custom/Workout/SetTableHeader.stories.tsx +66 -0
  150. package/src/components/custom/Workout/SetTableHeader.test.tsx +47 -0
  151. package/src/components/custom/Workout/SetTableHeader.tsx +88 -0
  152. package/src/components/custom/Workout/SetsRepsLoad.stories.tsx +47 -0
  153. package/src/components/custom/Workout/SetsRepsLoad.test.tsx +44 -0
  154. package/src/components/custom/Workout/SetsRepsLoad.tsx +52 -0
  155. package/src/components/custom/Workout/Sparkline.stories.tsx +1 -1
  156. package/src/components/custom/Workout/Sparkline.tsx +2 -1
  157. package/src/components/custom/Workout/StatusDot.stories.tsx +1 -1
  158. package/src/components/custom/Workout/StatusDot.test.tsx +2 -2
  159. package/src/components/custom/Workout/StatusDot.tsx +12 -9
  160. package/src/components/custom/Workout/StatusPill.stories.tsx +59 -0
  161. package/src/components/custom/Workout/StatusPill.test.tsx +63 -0
  162. package/src/components/custom/Workout/StatusPill.tsx +88 -0
  163. package/src/components/custom/Workout/StrengthTrendChart.stories.tsx +1 -1
  164. package/src/components/custom/Workout/StrengthTrendChart.tsx +9 -6
  165. package/src/components/custom/Workout/SupersetWrapper.stories.tsx +1 -1
  166. package/src/components/custom/Workout/SupersetWrapper.tsx +2 -1
  167. package/src/components/custom/Workout/TempoBar.stories.tsx +1 -1
  168. package/src/components/custom/Workout/TempoDisplay.stories.tsx +12 -1
  169. package/src/components/custom/Workout/TempoDisplay.tsx +29 -36
  170. package/src/components/custom/Workout/TrainingStatusPage.stories.tsx +1 -1
  171. package/src/components/custom/Workout/VelocityStrip.modalities.stories.tsx +254 -0
  172. package/src/components/custom/Workout/VelocityStrip.responsive.stories.tsx +145 -0
  173. package/src/components/custom/Workout/VelocityStrip.stories.tsx +129 -66
  174. package/src/components/custom/Workout/VelocityStrip.test.tsx +379 -144
  175. package/src/components/custom/Workout/VelocityStrip.tsx +508 -120
  176. package/src/components/custom/Workout/VolumeLandmarkBar.stories.tsx +73 -0
  177. package/src/components/custom/Workout/VolumeLandmarkBar.test.tsx +119 -0
  178. package/src/components/custom/Workout/VolumeLandmarkBar.tsx +154 -0
  179. package/src/components/custom/Workout/WeekRow.stories.tsx +1 -1
  180. package/src/components/custom/Workout/WeekRow.tsx +3 -2
  181. package/src/components/custom/Workout/WeightBadge.stories.tsx +1 -1
  182. package/src/components/custom/Workout/WeightBadge.tsx +6 -2
  183. package/src/components/custom/Workout/WorkoutCard.stories.tsx +2 -6
  184. package/src/components/custom/Workout/WorkoutCard.test.tsx +13 -46
  185. package/src/components/custom/Workout/WorkoutCard.tsx +5 -2
  186. package/src/components/custom/Workout/WorkoutPill.stories.tsx +1 -1
  187. package/src/components/custom/Workout/WorkoutPill.tsx +12 -8
  188. package/src/components/custom/Workout/ZoneTrack.stories.tsx +140 -0
  189. package/src/components/custom/Workout/ZoneTrack.test.tsx +200 -0
  190. package/src/components/custom/Workout/ZoneTrack.tsx +315 -0
  191. package/src/components/custom/Workout/icons.tsx +6 -67
  192. package/src/components/custom/Workout/index.ts +55 -2
  193. package/src/components/custom/Workout/metricText.stories.tsx +69 -0
  194. package/src/components/custom/Workout/metricText.tsx +34 -0
  195. package/src/components/custom/Workout/paceTone.test.ts +29 -0
  196. package/src/components/custom/Workout/paceTone.ts +27 -0
  197. package/src/components/custom/Workout/setHeadingKit.tsx +177 -0
  198. package/src/components/custom/index.ts +1 -0
  199. package/src/components/custom/stepper/Stepper.stories.tsx +1 -1
  200. package/src/components/icons/SvgIcon.tsx +50 -0
  201. package/src/components/icons/icons.stories.tsx +122 -0
  202. package/src/components/icons/icons.test.tsx +73 -0
  203. package/src/components/icons/icons.tsx +153 -0
  204. package/src/components/icons/index.ts +4 -0
  205. package/src/components/index.ts +6 -0
  206. package/src/components/shell/BrandLockup.stories.tsx +27 -0
  207. package/src/components/shell/BrandLockup.test.tsx +23 -0
  208. package/src/components/shell/BrandLockup.tsx +47 -0
  209. package/src/components/shell/DashboardShell.stories.tsx +65 -0
  210. package/src/components/shell/DashboardShell.test.tsx +42 -0
  211. package/src/components/shell/DashboardShell.tsx +74 -0
  212. package/src/components/shell/DeviceIndicator.stories.tsx +28 -0
  213. package/src/components/shell/DeviceIndicator.test.tsx +26 -0
  214. package/src/components/shell/DeviceIndicator.tsx +52 -0
  215. package/src/components/shell/DeviceMenu.stories.tsx +47 -0
  216. package/src/components/shell/DeviceMenu.test.tsx +40 -0
  217. package/src/components/shell/DeviceMenu.tsx +65 -0
  218. package/src/components/shell/DeviceRow.stories.tsx +38 -0
  219. package/src/components/shell/DeviceRow.test.tsx +37 -0
  220. package/src/components/shell/DeviceRow.tsx +58 -0
  221. package/src/components/shell/NavItem.stories.tsx +52 -0
  222. package/src/components/shell/NavItem.test.tsx +35 -0
  223. package/src/components/shell/NavItem.tsx +75 -0
  224. package/src/components/shell/README.md +116 -0
  225. package/src/components/shell/SessionRailSpecimen.stories.tsx +753 -0
  226. package/src/components/shell/SessionStatePill.stories.tsx +27 -0
  227. package/src/components/shell/SessionStatePill.test.tsx +25 -0
  228. package/src/components/shell/SessionStatePill.tsx +46 -0
  229. package/src/components/shell/SideNav.stories.tsx +81 -0
  230. package/src/components/shell/SideNav.test.tsx +51 -0
  231. package/src/components/shell/SideNav.tsx +74 -0
  232. package/src/components/shell/TopBar.stories.tsx +49 -0
  233. package/src/components/shell/TopBar.test.tsx +36 -0
  234. package/src/components/shell/TopBar.tsx +89 -0
  235. package/src/components/shell/index.ts +13 -0
  236. package/src/components/ui/alert/Alert.stories.tsx +1 -1
  237. package/src/components/ui/autocomplete/Autocomplete.stories.tsx +1 -1
  238. package/src/components/ui/avatar/Avatar.stories.tsx +1 -1
  239. package/src/components/ui/badge/Badge.stories.tsx +1 -1
  240. package/src/components/ui/breadcrumbs/Breadcrumbs.stories.tsx +1 -1
  241. package/src/components/ui/button/Button.stories.tsx +1 -1
  242. package/src/components/ui/card/Card.stories.tsx +1 -1
  243. package/src/components/ui/checkbox/Checkbox.stories.tsx +1 -1
  244. package/src/components/ui/chip/Chip.stories.tsx +1 -1
  245. package/src/components/ui/collapse/Collapse.stories.tsx +1 -1
  246. package/src/components/ui/data-row/DataRow.stories.tsx +1 -1
  247. package/src/components/ui/divider/Divider.stories.tsx +1 -1
  248. package/src/components/ui/drawer/Drawer.stories.tsx +1 -1
  249. package/src/components/ui/form-field/FormField.stories.tsx +1 -1
  250. package/src/components/ui/help-tip/HelpTip.stories.tsx +1 -1
  251. package/src/components/ui/icon-box/IconBox.stories.tsx +1 -1
  252. package/src/components/ui/index.ts +1 -0
  253. package/src/components/ui/indicator/Indicator.stories.tsx +38 -2
  254. package/src/components/ui/indicator/Indicator.test.tsx +20 -1
  255. package/src/components/ui/indicator/Indicator.tsx +50 -6
  256. package/src/components/ui/indicator/index.ts +1 -1
  257. package/src/components/ui/input/Input.stories.tsx +1 -1
  258. package/src/components/ui/link/Link.stories.tsx +1 -1
  259. package/src/components/ui/list-item/ListItem.stories.tsx +1 -1
  260. package/src/components/ui/menu/Menu.stories.tsx +1 -1
  261. package/src/components/ui/modal/Modal.stories.tsx +1 -1
  262. package/src/components/ui/pill/Pill.stories.tsx +1 -1
  263. package/src/components/ui/popover/Popover.stories.tsx +1 -1
  264. package/src/components/ui/progress/Progress.stories.tsx +1 -1
  265. package/src/components/ui/radio/Radio.stories.tsx +1 -1
  266. package/src/components/ui/section/Section.stories.tsx +1 -1
  267. package/src/components/ui/select/Select.stories.tsx +1 -1
  268. package/src/components/ui/skeleton/Skeleton.stories.tsx +1 -1
  269. package/src/components/ui/spinner/Spinner.stories.tsx +1 -1
  270. package/src/components/ui/spinner/Spinner.tsx +3 -2
  271. package/src/components/ui/stack/Stack.stories.tsx +1 -1
  272. package/src/components/ui/surface/Surface.stories.tsx +1 -1
  273. package/src/components/ui/switch/Switch.stories.tsx +1 -1
  274. package/src/components/ui/tabs/Tabs.stories.tsx +1 -1
  275. package/src/components/ui/tile/Tile.stories.tsx +79 -0
  276. package/src/components/ui/tile/Tile.test.tsx +48 -0
  277. package/src/components/ui/tile/Tile.tsx +64 -0
  278. package/src/components/ui/tile/index.ts +2 -0
  279. package/src/components/ui/toast/Toast.stories.tsx +1 -1
  280. package/src/components/ui/toolbar-button/ToolbarButton.stories.tsx +1 -1
  281. package/src/components/ui/toolbar-button/ToolbarButton.tsx +2 -1
  282. package/src/components/ui/tooltip/Tooltip.stories.tsx +1 -1
  283. package/src/examples/react-hook-form/ReactHookForm.stories.tsx +1 -1
  284. package/src/hooks/index.ts +2 -0
  285. package/src/hooks/useTimer.test.ts +150 -0
  286. package/src/hooks/useTimer.ts +77 -0
  287. package/src/index.ts +3 -0
  288. package/src/pages.ts +1 -1
  289. package/src/stories/PresetShowcase.stories.tsx +1 -1
  290. package/src/stories/ThemePresets.stories.tsx +1 -1
  291. package/src/theme/ColorSystem.stories.tsx +323 -0
  292. package/src/theme/Colors.stories.tsx +74 -9
  293. package/src/theme/barrel.ts +1 -0
  294. package/src/theme/config.ts +20 -3
  295. package/src/theme/elevation.stories.tsx +1 -1
  296. package/src/theme/extracted-colors-dataviz.ts +21 -0
  297. package/src/theme/extracted-colors-ui.ts +20 -0
  298. package/src/theme/global.css +69 -53
  299. package/src/theme/gradients.test.ts +25 -0
  300. package/src/theme/gradients.ts +36 -0
  301. package/src/theme/shadows.stories.tsx +1 -1
  302. package/src/theme/tokens/primitives.test.ts +232 -0
  303. package/src/theme/tokens/primitives.ts +238 -87
  304. package/src/theme/tokens/semantic.ts +101 -81
  305. package/src/theme/workout-tokens.ts +26 -21
  306. package/src/utils/avatar-color.ts +3 -3
  307. package/tailwind.config.js +15 -3
package/dist/index.d.ts CHANGED
@@ -1,13 +1,71 @@
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.js';
5
- export { ComponentType, CssPropertyEntry, CssPropertyManifest, ElevationConfig, ManifestValidationResult, ShadowIntensity, ShadowSurface, ThemeConfig, ThemeMode, ThemePreset, ThemePresetColors, ThemePresetFonts, ThemePresetRadii, ThemePresetShadows, ThemeProviderMode, ThemeProviderProps, VariantAxes, VariantOverride, applyThemePreset, audiobookPreset, buttonSizes, componentElevationRanges, createFlatShadow, createPressedHoverShadow, createPressedShadow, createRaisedHoverShadow, createRaisedShadow, darkThemeCSSVars, darken, defaultPreset, discreteRainbow, elevationSystem, getBaseSurfaceColor, getDiscreteRainbowColor, getElevationConfig, getElevationShadow, getElevationSurface, getGlowShadow, getHoverColors, getSemanticColors, getThemeCSSVars, getValidatedElevation, gluestackConfig, hexToRgb, hsvToRgb, isCssPropertyManifest, isDark, lightThemeCSSVars, lighten, neumorphicShadows, primitiveBorderRadius, primitiveBreakpoints, primitiveColors, primitiveShadows, primitiveSpacing, primitiveTypography, primitiveZIndex, resolveColor, rgbToHex, rgbToHsv, semanticColorsDark, semanticColorsLight, semanticTypography, shadowColors, validateCssPropertyManifest } from './theme/index.js';
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-D7Jlssvp.js';
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.js';
6
+ import { S as SetStripSet, E as ExerciseIndicatorKind } from './pages-DaWiBOGa.js';
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-DaWiBOGa.js';
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.js';
8
- export { BodyMapData, BodyMapDetailPanelProps, BodyMapProps, ContributingExercise, MovementCategory, MuscleGroup, SimpleMuscleGroup, TrainingStatusMuscle, TrainingStatusPageProps, TrainingStatusSummary, UpcomingExercise, VolumeLandmarks } from './bodymap.js';
9
+ import { VolumeLandmarks } from './bodymap.js';
10
+ export { BodyMapData, BodyMapDetailPanelProps, BodyMapProps, ContributingExercise, MovementCategory, MuscleGroup, SimpleMuscleGroup, TrainingStatusMuscle, TrainingStatusPageProps, TrainingStatusSummary, UpcomingExercise } from './bodymap.js';
9
11
  import { ClassValue } from 'clsx';
10
12
 
13
+ interface IconProps {
14
+ /** Rendered width/height in px (viewBox is fixed 24×24). */
15
+ size?: number;
16
+ /** Stroke color (or fill, for solid icons). Defaults to `currentColor` so a wrapper's text token drives it. */
17
+ color?: string;
18
+ /** Stroke width for outline icons. */
19
+ strokeWidth?: number;
20
+ /** Fill color; defaults to `none` (outline). */
21
+ fill?: string;
22
+ /** Accessible title — sets `role="img"` + `<title>`. Omit for a decorative icon (hidden from AT). */
23
+ title?: string;
24
+ }
25
+ interface SvgIconProps extends IconProps {
26
+ children: ReactNode;
27
+ }
28
+ /**
29
+ * Base SVG wrapper for the titan icon set — a 24×24 web-`<svg>` with the shared
30
+ * accessibility contract (titled → `role="img"` + `<title>`; untitled →
31
+ * `aria-hidden`) and `currentColor` inheritance. Icons pass their paths as
32
+ * children plus their stroke/fill defaults.
33
+ */
34
+ declare function SvgIcon({ size, color, strokeWidth, fill, title, children, }: SvgIconProps): react_jsx_runtime.JSX.Element;
35
+
36
+ /**
37
+ * Voltras brand mark — the ◇ diamond (outline). Pass `fill` for a solid mark.
38
+ */
39
+ declare function VoltrasMark({ size, ...props }: IconProps): react_jsx_runtime.JSX.Element;
40
+ /**
41
+ * Bluetooth glyph (stroked) — e.g. device-connection state (color via `currentColor`).
42
+ */
43
+ declare function BluetoothIcon({ size, ...props }: IconProps): react_jsx_runtime.JSX.Element;
44
+ /** Dumbbell glyph (mirrors lucide-react `Dumbbell`). Outline-only by default. */
45
+ declare function DumbbellIcon(props: IconProps): react_jsx_runtime.JSX.Element;
46
+ /** Star glyph (mirrors lucide-react `Star`). Pass `fill` for a solid star. */
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;
68
+
11
69
  type AlertStatus = 'success' | 'info' | 'warning' | 'error';
12
70
  type AlertVariant = 'subtle' | 'outline' | 'solid';
13
71
  interface AlertProps extends ViewProps {
@@ -16,14 +74,14 @@ interface AlertProps extends ViewProps {
16
74
  /** Visual variant */
17
75
  variant?: AlertVariant;
18
76
  /** Custom icon element */
19
- icon?: React.ReactNode;
77
+ icon?: React$1.ReactNode;
20
78
  /** Whether to show the default icon */
21
79
  showIcon?: boolean;
22
80
  /** Callback when close button is pressed */
23
81
  onClose?: () => void;
24
82
  /** Additional className */
25
83
  className?: string;
26
- children?: React.ReactNode;
84
+ children?: React$1.ReactNode;
27
85
  }
28
86
  /**
29
87
  * Alert component for displaying status messages.
@@ -40,7 +98,7 @@ interface AlertProps extends ViewProps {
40
98
  */
41
99
  declare function Alert({ status, variant, icon, showIcon, onClose, className, children, ...props }: AlertProps): react_jsx_runtime.JSX.Element;
42
100
  interface AlertTitleProps {
43
- children?: React.ReactNode;
101
+ children?: React$1.ReactNode;
44
102
  className?: string;
45
103
  }
46
104
  /**
@@ -48,7 +106,7 @@ interface AlertTitleProps {
48
106
  */
49
107
  declare function AlertTitle({ children, className }: AlertTitleProps): react_jsx_runtime.JSX.Element;
50
108
  interface AlertDescriptionProps {
51
- children?: React.ReactNode;
109
+ children?: React$1.ReactNode;
52
110
  className?: string;
53
111
  }
54
112
  /**
@@ -79,7 +137,7 @@ interface ButtonProps extends Omit<PressableProps, 'children'> {
79
137
  /** Additional className for styling */
80
138
  className?: string;
81
139
  /** Button content */
82
- children?: React.ReactNode;
140
+ children?: React$1.ReactNode;
83
141
  }
84
142
  /**
85
143
  * Button component following compound component pattern.
@@ -95,9 +153,9 @@ interface ButtonProps extends Omit<PressableProps, 'children'> {
95
153
  * <ButtonText>Add item</ButtonText>
96
154
  * </Button>
97
155
  */
98
- declare const Button: React.ForwardRefExoticComponent<ButtonProps & React.RefAttributes<View>>;
156
+ declare const Button: React$1.ForwardRefExoticComponent<ButtonProps & React$1.RefAttributes<View>>;
99
157
  interface ButtonTextProps {
100
- children: React.ReactNode;
158
+ children: React$1.ReactNode;
101
159
  className?: string;
102
160
  }
103
161
  /**
@@ -106,7 +164,7 @@ interface ButtonTextProps {
106
164
  declare function ButtonText({ children, className }: ButtonTextProps): react_jsx_runtime.JSX.Element;
107
165
  interface ButtonIconProps {
108
166
  /** Icon component to render */
109
- as: React.ComponentType<{
167
+ as: React$1.ComponentType<{
110
168
  size?: number;
111
169
  color?: string;
112
170
  className?: string;
@@ -154,9 +212,9 @@ interface InputProps extends Omit<TextInputProps, 'editable'> {
154
212
  /** Error message (shown when isInvalid is true) */
155
213
  errorMessage?: string;
156
214
  /** Left element/icon */
157
- leftElement?: React.ReactNode;
215
+ leftElement?: React$1.ReactNode;
158
216
  /** Right element/icon */
159
- rightElement?: React.ReactNode;
217
+ rightElement?: React$1.ReactNode;
160
218
  /** Additional className for the container */
161
219
  className?: string;
162
220
  /** Additional className for the input */
@@ -179,9 +237,9 @@ interface InputProps extends Omit<TextInputProps, 'editable'> {
179
237
  * errorMessage="Password is required"
180
238
  * />
181
239
  */
182
- declare const Input: React.ForwardRefExoticComponent<InputProps & React.RefAttributes<TextInput>>;
240
+ declare const Input: React$1.ForwardRefExoticComponent<InputProps & React$1.RefAttributes<TextInput>>;
183
241
  interface InputGroupProps {
184
- children: React.ReactNode;
242
+ children: React$1.ReactNode;
185
243
  className?: string;
186
244
  }
187
245
  /**
@@ -190,9 +248,9 @@ interface InputGroupProps {
190
248
  declare function InputGroup({ children, className }: InputGroupProps): react_jsx_runtime.JSX.Element;
191
249
  interface PasswordInputProps extends Omit<InputProps, 'secureTextEntry' | 'rightElement'> {
192
250
  /** Custom show password icon */
193
- showIcon?: React.ReactNode;
251
+ showIcon?: React$1.ReactNode;
194
252
  /** Custom hide password icon */
195
- hideIcon?: React.ReactNode;
253
+ hideIcon?: React$1.ReactNode;
196
254
  }
197
255
  /**
198
256
  * Password input with visibility toggle.
@@ -203,7 +261,7 @@ interface PasswordInputProps extends Omit<InputProps, 'secureTextEntry' | 'right
203
261
  * placeholder="Enter your password"
204
262
  * />
205
263
  */
206
- declare const PasswordInput: React.ForwardRefExoticComponent<PasswordInputProps & React.RefAttributes<TextInput>>;
264
+ declare const PasswordInput: React$1.ForwardRefExoticComponent<PasswordInputProps & React$1.RefAttributes<TextInput>>;
207
265
 
208
266
  type CardVariant = 'elevated' | 'outline' | 'filled' | 'accent' | 'subtle';
209
267
  type CardElevation = 1 | 2 | 3;
@@ -228,7 +286,7 @@ interface CardProps extends ViewProps {
228
286
  accentWidth?: number;
229
287
  /** Additional className */
230
288
  className?: string;
231
- children?: React.ReactNode;
289
+ children?: React$1.ReactNode;
232
290
  /** Show header skeleton when loading (default: true) */
233
291
  skeletonHasHeader?: boolean;
234
292
  /** Show footer skeleton when loading (default: false) */
@@ -260,7 +318,7 @@ interface CardProps extends ViewProps {
260
318
  */
261
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;
262
320
  interface CardHeaderProps {
263
- children?: React.ReactNode;
321
+ children?: React$1.ReactNode;
264
322
  className?: string;
265
323
  }
266
324
  /**
@@ -268,7 +326,7 @@ interface CardHeaderProps {
268
326
  */
269
327
  declare function CardHeader({ children, className }: CardHeaderProps): react_jsx_runtime.JSX.Element;
270
328
  interface CardTitleProps {
271
- children?: React.ReactNode;
329
+ children?: React$1.ReactNode;
272
330
  className?: string;
273
331
  }
274
332
  /**
@@ -276,7 +334,7 @@ interface CardTitleProps {
276
334
  */
277
335
  declare function CardTitle({ children, className }: CardTitleProps): react_jsx_runtime.JSX.Element;
278
336
  interface CardDescriptionProps {
279
- children?: React.ReactNode;
337
+ children?: React$1.ReactNode;
280
338
  className?: string;
281
339
  }
282
340
  /**
@@ -284,7 +342,7 @@ interface CardDescriptionProps {
284
342
  */
285
343
  declare function CardDescription({ children, className }: CardDescriptionProps): react_jsx_runtime.JSX.Element;
286
344
  interface CardContentProps {
287
- children?: React.ReactNode;
345
+ children?: React$1.ReactNode;
288
346
  className?: string;
289
347
  }
290
348
  /**
@@ -292,7 +350,7 @@ interface CardContentProps {
292
350
  */
293
351
  declare function CardContent({ children, className }: CardContentProps): react_jsx_runtime.JSX.Element;
294
352
  interface CardFooterProps {
295
- children?: React.ReactNode;
353
+ children?: React$1.ReactNode;
296
354
  className?: string;
297
355
  }
298
356
  /**
@@ -315,7 +373,9 @@ interface CardSkeletonProps {
315
373
  declare function CardSkeleton({ hasHeader, hasFooter, contentLines, className, }: CardSkeletonProps): react_jsx_runtime.JSX.Element;
316
374
 
317
375
  type IndicatorSize = 'xs' | 'sm' | 'md' | 'lg';
318
- type IndicatorColor = 'default' | 'primary' | 'success' | 'error' | 'warning' | 'info';
376
+ type IndicatorColor = 'default' | 'primary' | 'success' | 'live' | 'error' | 'warning' | 'info' | 'error-vivid';
377
+ /** How a pulsing indicator animates: a subtle opacity fade, or an expanding ring. */
378
+ type IndicatorPulse = 'opacity' | 'ping';
319
379
  interface IndicatorProps extends ViewProps {
320
380
  /** Dot size */
321
381
  size?: IndicatorSize;
@@ -327,10 +387,12 @@ interface IndicatorProps extends ViewProps {
327
387
  glow?: boolean;
328
388
  /** Add a ring border */
329
389
  ring?: boolean;
390
+ /** Animate for live/active status. `true` = opacity fade; `'ping'` = expanding ring. */
391
+ pulse?: boolean | IndicatorPulse;
330
392
  /** Additional className */
331
393
  className?: string;
332
394
  }
333
- declare function Indicator({ size, color, customColor, glow, ring, className, style, ...props }: IndicatorProps): react_jsx_runtime.JSX.Element;
395
+ declare function Indicator({ size, color, customColor, glow, ring, pulse, className, style, ...props }: IndicatorProps): react_jsx_runtime.JSX.Element;
334
396
 
335
397
  type BadgeVariant = 'solid' | 'subtle' | 'outline';
336
398
  type BadgeColor = 'default' | 'primary' | 'secondary' | 'success' | 'error' | 'warning' | 'info';
@@ -348,7 +410,7 @@ interface BadgeProps extends ViewProps {
348
410
  dotColor?: IndicatorColor;
349
411
  /** Additional className */
350
412
  className?: string;
351
- children?: React.ReactNode;
413
+ children?: React$1.ReactNode;
352
414
  }
353
415
  /**
354
416
  * Badge component for status indicators and labels.
@@ -359,7 +421,7 @@ interface BadgeProps extends ViewProps {
359
421
  */
360
422
  declare function Badge({ variant, color, size, dot, dotColor, className, children, ...props }: BadgeProps): react_jsx_runtime.JSX.Element;
361
423
  interface BadgeTextProps {
362
- children: React.ReactNode;
424
+ children: React$1.ReactNode;
363
425
  className?: string;
364
426
  }
365
427
  /**
@@ -437,7 +499,7 @@ interface AvatarBadgeProps {
437
499
  */
438
500
  declare function AvatarBadge({ color, className }: AvatarBadgeProps): react_jsx_runtime.JSX.Element;
439
501
  interface AvatarGroupProps {
440
- children: React.ReactNode;
502
+ children: React$1.ReactNode;
441
503
  /** Maximum avatars to show before +N indicator */
442
504
  max?: number;
443
505
  /** Size of avatars */
@@ -499,9 +561,9 @@ interface CheckboxProps extends Omit<PressableProps, 'children'> {
499
561
  * label="Accept terms and conditions"
500
562
  * />
501
563
  */
502
- declare const Checkbox: React.ForwardRefExoticComponent<CheckboxProps & React.RefAttributes<View>>;
564
+ declare const Checkbox: React$1.ForwardRefExoticComponent<CheckboxProps & React$1.RefAttributes<View>>;
503
565
  interface CheckboxGroupProps {
504
- children: React.ReactNode;
566
+ children: React$1.ReactNode;
505
567
  /** Label for the group */
506
568
  label?: string;
507
569
  /** Orientation of checkboxes */
@@ -541,7 +603,7 @@ interface SwitchProps extends Omit<PressableProps, 'children'> {
541
603
  * label="Enable notifications"
542
604
  * />
543
605
  */
544
- declare const Switch: React.ForwardRefExoticComponent<SwitchProps & React.RefAttributes<View>>;
606
+ declare const Switch: React$1.ForwardRefExoticComponent<SwitchProps & React$1.RefAttributes<View>>;
545
607
 
546
608
  type ModalSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl' | 'full';
547
609
  type ModalScrollBehavior = 'inside' | 'outside';
@@ -562,7 +624,7 @@ interface ModalProps extends Omit<ModalProps$1, 'visible'> {
562
624
  backdropClassName?: string;
563
625
  /** Animation type */
564
626
  animationType?: 'none' | 'fade' | 'slide';
565
- children?: React.ReactNode;
627
+ children?: React$1.ReactNode;
566
628
  }
567
629
  /**
568
630
  * Modal component for dialogs and overlays.
@@ -585,7 +647,7 @@ interface ModalProps extends Omit<ModalProps$1, 'visible'> {
585
647
  */
586
648
  declare function Modal({ isOpen, onClose, size, scrollBehavior, closeOnOverlayClick, backdropBlur, backdropClassName, animationType, children, ...props }: ModalProps): react_jsx_runtime.JSX.Element;
587
649
  interface ModalContentProps {
588
- children?: React.ReactNode;
650
+ children?: React$1.ReactNode;
589
651
  className?: string;
590
652
  }
591
653
  /**
@@ -593,7 +655,7 @@ interface ModalContentProps {
593
655
  */
594
656
  declare function ModalContent({ children, className }: ModalContentProps): react_jsx_runtime.JSX.Element;
595
657
  interface ModalHeaderProps {
596
- children?: React.ReactNode;
658
+ children?: React$1.ReactNode;
597
659
  className?: string;
598
660
  }
599
661
  /**
@@ -601,7 +663,7 @@ interface ModalHeaderProps {
601
663
  */
602
664
  declare function ModalHeader({ children, className }: ModalHeaderProps): react_jsx_runtime.JSX.Element;
603
665
  interface ModalTitleProps {
604
- children?: React.ReactNode;
666
+ children?: React$1.ReactNode;
605
667
  className?: string;
606
668
  }
607
669
  /**
@@ -616,7 +678,7 @@ interface ModalCloseButtonProps {
616
678
  */
617
679
  declare function ModalCloseButton({ className }: ModalCloseButtonProps): react_jsx_runtime.JSX.Element;
618
680
  interface ModalBodyProps {
619
- children?: React.ReactNode;
681
+ children?: React$1.ReactNode;
620
682
  /** Maximum height for scrollable content (when scrollBehavior="inside") */
621
683
  maxHeight?: number;
622
684
  className?: string;
@@ -626,7 +688,7 @@ interface ModalBodyProps {
626
688
  */
627
689
  declare function ModalBody({ children, maxHeight, className }: ModalBodyProps): react_jsx_runtime.JSX.Element;
628
690
  interface ModalFooterProps {
629
- children?: React.ReactNode;
691
+ children?: React$1.ReactNode;
630
692
  className?: string;
631
693
  }
632
694
  /**
@@ -736,7 +798,7 @@ interface TabsProps extends ViewProps {
736
798
  orientation?: TabsOrientation;
737
799
  /** Additional className */
738
800
  className?: string;
739
- children?: React.ReactNode;
801
+ children?: React$1.ReactNode;
740
802
  }
741
803
  /**
742
804
  * Tabs component for tabbed navigation.
@@ -757,7 +819,7 @@ interface TabsProps extends ViewProps {
757
819
  */
758
820
  declare function Tabs({ defaultIndex, index, onChange, variant, orientation, className, children, ...props }: TabsProps): react_jsx_runtime.JSX.Element;
759
821
  interface TabListProps {
760
- children?: React.ReactNode;
822
+ children?: React$1.ReactNode;
761
823
  className?: string;
762
824
  }
763
825
  /**
@@ -771,14 +833,14 @@ interface TabProps {
771
833
  isDisabled?: boolean;
772
834
  /** Additional className */
773
835
  className?: string;
774
- children?: React.ReactNode;
836
+ children?: React$1.ReactNode;
775
837
  }
776
838
  /**
777
839
  * Individual tab button.
778
840
  */
779
841
  declare function Tab({ index, isDisabled, className, children, }: TabProps): react_jsx_runtime.JSX.Element;
780
842
  interface TabPanelsProps {
781
- children?: React.ReactNode;
843
+ children?: React$1.ReactNode;
782
844
  className?: string;
783
845
  }
784
846
  /**
@@ -786,7 +848,7 @@ interface TabPanelsProps {
786
848
  */
787
849
  declare function TabPanels({ children, className }: TabPanelsProps): react_jsx_runtime.JSX.Element;
788
850
  interface TabPanelProps {
789
- children?: React.ReactNode;
851
+ children?: React$1.ReactNode;
790
852
  className?: string;
791
853
  }
792
854
  /**
@@ -805,7 +867,7 @@ interface ChipProps extends ViewProps {
805
867
  /** Size */
806
868
  size?: ChipSize;
807
869
  /** Left element (icon, avatar) */
808
- leftElement?: React.ReactNode;
870
+ leftElement?: React$1.ReactNode;
809
871
  /** Whether the chip is dismissible */
810
872
  onDelete?: () => void;
811
873
  /** Whether the chip is clickable */
@@ -814,7 +876,7 @@ interface ChipProps extends ViewProps {
814
876
  isDisabled?: boolean;
815
877
  /** Additional className */
816
878
  className?: string;
817
- children?: React.ReactNode;
879
+ children?: React$1.ReactNode;
818
880
  }
819
881
  /**
820
882
  * Chip component for tags, labels, and filters.
@@ -844,7 +906,7 @@ interface LinkProps extends Omit<TextProps, 'onPress'> {
844
906
  isDisabled?: boolean;
845
907
  /** Additional className */
846
908
  className?: string;
847
- children?: React.ReactNode;
909
+ children?: React$1.ReactNode;
848
910
  }
849
911
  /**
850
912
  * Link component for navigation.
@@ -861,9 +923,9 @@ interface TooltipProps extends ViewProps {
861
923
  /** Plain-text tooltip content */
862
924
  label?: string;
863
925
  /** Rich tooltip content (takes precedence over label) */
864
- content?: React.ReactNode;
926
+ content?: React$1.ReactNode;
865
927
  /** Trigger element */
866
- children: React.ReactNode;
928
+ children: React$1.ReactNode;
867
929
  /** Tooltip placement */
868
930
  placement?: TooltipPlacement;
869
931
  /** Delay before showing (ms) */
@@ -906,7 +968,7 @@ interface CollapseProps extends ViewProps {
906
968
  onToggle?: (isOpen: boolean) => void;
907
969
  /** Additional className */
908
970
  className?: string;
909
- children?: React.ReactNode;
971
+ children?: React$1.ReactNode;
910
972
  }
911
973
  /**
912
974
  * Collapsible content container.
@@ -923,7 +985,7 @@ interface CollapseProps extends ViewProps {
923
985
  */
924
986
  declare function Collapse({ defaultIsOpen, isOpen: controlledIsOpen, onToggle, className, children, ...props }: CollapseProps): react_jsx_runtime.JSX.Element;
925
987
  interface CollapseButtonProps {
926
- children?: React.ReactNode;
988
+ children?: React$1.ReactNode;
927
989
  className?: string;
928
990
  }
929
991
  /**
@@ -931,7 +993,7 @@ interface CollapseButtonProps {
931
993
  */
932
994
  declare function CollapseButton({ children, className }: CollapseButtonProps): react_jsx_runtime.JSX.Element;
933
995
  interface CollapseContentProps {
934
- children?: React.ReactNode;
996
+ children?: React$1.ReactNode;
935
997
  className?: string;
936
998
  }
937
999
  /**
@@ -945,7 +1007,7 @@ interface AccordionProps extends ViewProps {
945
1007
  defaultIndex?: number[];
946
1008
  /** Additional className */
947
1009
  className?: string;
948
- children?: React.ReactNode;
1010
+ children?: React$1.ReactNode;
949
1011
  }
950
1012
  /**
951
1013
  * Accordion component for multiple collapsible sections.
@@ -965,7 +1027,7 @@ interface AccordionProps extends ViewProps {
965
1027
  declare function Accordion({ allowMultiple, defaultIndex, className, children, ...props }: AccordionProps): react_jsx_runtime.JSX.Element;
966
1028
  interface AccordionItemProps {
967
1029
  index?: number;
968
- children?: React.ReactNode;
1030
+ children?: React$1.ReactNode;
969
1031
  className?: string;
970
1032
  }
971
1033
  /**
@@ -975,7 +1037,7 @@ declare function AccordionItem({ index, children, className }: AccordionItemProp
975
1037
  interface AccordionButtonProps {
976
1038
  isOpen?: boolean;
977
1039
  onToggle?: () => void;
978
- children?: React.ReactNode;
1040
+ children?: React$1.ReactNode;
979
1041
  className?: string;
980
1042
  }
981
1043
  /**
@@ -984,7 +1046,7 @@ interface AccordionButtonProps {
984
1046
  declare function AccordionButton({ isOpen, onToggle, children, className, }: AccordionButtonProps): react_jsx_runtime.JSX.Element;
985
1047
  interface AccordionPanelProps {
986
1048
  isOpen?: boolean;
987
- children?: React.ReactNode;
1049
+ children?: React$1.ReactNode;
988
1050
  className?: string;
989
1051
  }
990
1052
  /**
@@ -994,12 +1056,12 @@ declare function AccordionPanel({ isOpen, children, className }: AccordionPanelP
994
1056
 
995
1057
  interface BreadcrumbsProps extends ViewProps {
996
1058
  /** Custom separator */
997
- separator?: React.ReactNode;
1059
+ separator?: React$1.ReactNode;
998
1060
  /** Maximum items to show (with collapse) */
999
1061
  maxItems?: number;
1000
1062
  /** Additional className */
1001
1063
  className?: string;
1002
- children?: React.ReactNode;
1064
+ children?: React$1.ReactNode;
1003
1065
  }
1004
1066
  /**
1005
1067
  * Breadcrumbs navigation component.
@@ -1021,7 +1083,7 @@ interface BreadcrumbItemProps {
1021
1083
  onPress?: () => void;
1022
1084
  /** Additional className */
1023
1085
  className?: string;
1024
- children?: React.ReactNode;
1086
+ children?: React$1.ReactNode;
1025
1087
  }
1026
1088
  /**
1027
1089
  * Individual breadcrumb item.
@@ -1044,7 +1106,7 @@ interface PopoverProps extends ViewProps {
1044
1106
  closeDelay?: number;
1045
1107
  /** Additional className */
1046
1108
  className?: string;
1047
- children?: React.ReactNode;
1109
+ children?: React$1.ReactNode;
1048
1110
  }
1049
1111
  /**
1050
1112
  * Popover component for displaying floating content.
@@ -1061,7 +1123,7 @@ interface PopoverProps extends ViewProps {
1061
1123
  */
1062
1124
  declare function Popover({ placement, isOpen: controlledIsOpen, onOpenChange, closeOnClickOutside, triggerMode, closeDelay, className, children, ...props }: PopoverProps): react_jsx_runtime.JSX.Element;
1063
1125
  interface PopoverTriggerProps {
1064
- children: React.ReactNode;
1126
+ children: React$1.ReactNode;
1065
1127
  className?: string;
1066
1128
  }
1067
1129
  /**
@@ -1069,7 +1131,7 @@ interface PopoverTriggerProps {
1069
1131
  */
1070
1132
  declare function PopoverTrigger({ children, className }: PopoverTriggerProps): react_jsx_runtime.JSX.Element;
1071
1133
  interface PopoverContentProps {
1072
- children?: React.ReactNode;
1134
+ children?: React$1.ReactNode;
1073
1135
  className?: string;
1074
1136
  }
1075
1137
  /**
@@ -1077,7 +1139,7 @@ interface PopoverContentProps {
1077
1139
  */
1078
1140
  declare function PopoverContent({ children, className }: PopoverContentProps): react_jsx_runtime.JSX.Element | null;
1079
1141
  interface PopoverCloseButtonProps {
1080
- children?: React.ReactNode;
1142
+ children?: React$1.ReactNode;
1081
1143
  className?: string;
1082
1144
  }
1083
1145
  /**
@@ -1092,7 +1154,7 @@ interface MenuProps extends ViewProps {
1092
1154
  onOpenChange?: (isOpen: boolean) => void;
1093
1155
  /** Additional className */
1094
1156
  className?: string;
1095
- children?: React.ReactNode;
1157
+ children?: React$1.ReactNode;
1096
1158
  }
1097
1159
  /**
1098
1160
  * Menu component for dropdown menus.
@@ -1112,7 +1174,7 @@ interface MenuProps extends ViewProps {
1112
1174
  */
1113
1175
  declare function Menu({ isOpen: controlledIsOpen, onOpenChange, className, children, ...props }: MenuProps): react_jsx_runtime.JSX.Element;
1114
1176
  interface MenuTriggerProps {
1115
- children: React.ReactNode;
1177
+ children: React$1.ReactNode;
1116
1178
  className?: string;
1117
1179
  }
1118
1180
  /**
@@ -1120,7 +1182,7 @@ interface MenuTriggerProps {
1120
1182
  */
1121
1183
  declare function MenuTrigger({ children, className }: MenuTriggerProps): react_jsx_runtime.JSX.Element;
1122
1184
  interface MenuListProps {
1123
- children?: React.ReactNode;
1185
+ children?: React$1.ReactNode;
1124
1186
  className?: string;
1125
1187
  }
1126
1188
  /**
@@ -1135,10 +1197,10 @@ interface MenuItemProps {
1135
1197
  /** Whether the item is destructive (shows in red) */
1136
1198
  isDestructive?: boolean;
1137
1199
  /** Icon element */
1138
- icon?: React.ReactNode;
1200
+ icon?: React$1.ReactNode;
1139
1201
  /** Additional className */
1140
1202
  className?: string;
1141
- children?: React.ReactNode;
1203
+ children?: React$1.ReactNode;
1142
1204
  }
1143
1205
  /**
1144
1206
  * Individual menu item.
@@ -1154,7 +1216,7 @@ declare function MenuDivider({ className }: MenuDividerProps): react_jsx_runtime
1154
1216
  interface MenuGroupProps {
1155
1217
  /** Group label */
1156
1218
  label?: string;
1157
- children?: React.ReactNode;
1219
+ children?: React$1.ReactNode;
1158
1220
  className?: string;
1159
1221
  }
1160
1222
  /**
@@ -1225,7 +1287,7 @@ interface ToolbarButtonProps extends ViewProps {
1225
1287
  /** Button label */
1226
1288
  label: string;
1227
1289
  /** Icon component */
1228
- icon?: React.ReactNode;
1290
+ icon?: React$1.ReactNode;
1229
1291
  /**
1230
1292
  * Whether the button is in active/selected state.
1231
1293
  * - `true`: pressed/active appearance (darker, white text, orange icon)
@@ -1246,7 +1308,7 @@ interface ToolbarButtonProps extends ViewProps {
1246
1308
  /** Press handler */
1247
1309
  onPress?: () => void;
1248
1310
  /** Menu content (renders in popover) */
1249
- menuContent?: React.ReactNode;
1311
+ menuContent?: React$1.ReactNode;
1250
1312
  /** Additional className */
1251
1313
  className?: string;
1252
1314
  }
@@ -1285,7 +1347,7 @@ interface ToolbarButtonGroupProps extends ViewProps {
1285
1347
  gap?: 'none' | 'sm' | 'md';
1286
1348
  /** Additional className */
1287
1349
  className?: string;
1288
- children?: React.ReactNode;
1350
+ children?: React$1.ReactNode;
1289
1351
  }
1290
1352
  /**
1291
1353
  * Container for grouping toolbar buttons together.
@@ -1319,7 +1381,7 @@ interface RadioGroupProps extends ViewProps {
1319
1381
  label?: string;
1320
1382
  /** Additional className */
1321
1383
  className?: string;
1322
- children?: React.ReactNode;
1384
+ children?: React$1.ReactNode;
1323
1385
  }
1324
1386
  /**
1325
1387
  * RadioGroup component for grouping radio buttons.
@@ -1343,7 +1405,7 @@ interface RadioProps extends ViewProps {
1343
1405
  color?: RadioColor;
1344
1406
  /** Additional className */
1345
1407
  className?: string;
1346
- children?: React.ReactNode;
1408
+ children?: React$1.ReactNode;
1347
1409
  }
1348
1410
  /**
1349
1411
  * Radio button component.
@@ -1372,7 +1434,7 @@ interface DrawerProps extends ViewProps {
1372
1434
  title?: string;
1373
1435
  /** Additional className for the drawer content */
1374
1436
  className?: string;
1375
- children?: React.ReactNode;
1437
+ children?: React$1.ReactNode;
1376
1438
  }
1377
1439
  /**
1378
1440
  * Drawer component for side panel overlays.
@@ -1393,7 +1455,7 @@ declare function Drawer({ isOpen, onClose, placement, size, closeOnOverlayClick,
1393
1455
  interface DrawerHeaderProps extends ViewProps {
1394
1456
  /** Additional className */
1395
1457
  className?: string;
1396
- children?: React.ReactNode;
1458
+ children?: React$1.ReactNode;
1397
1459
  }
1398
1460
  /**
1399
1461
  * Header section for the drawer.
@@ -1404,7 +1466,7 @@ interface DrawerBodyProps extends ViewProps {
1404
1466
  scrollable?: boolean;
1405
1467
  /** Additional className */
1406
1468
  className?: string;
1407
- children?: React.ReactNode;
1469
+ children?: React$1.ReactNode;
1408
1470
  }
1409
1471
  /**
1410
1472
  * Body/content section for the drawer.
@@ -1413,7 +1475,7 @@ declare function DrawerBody({ scrollable, className, children, ...props }: Drawe
1413
1475
  interface DrawerFooterProps extends ViewProps {
1414
1476
  /** Additional className */
1415
1477
  className?: string;
1416
- children?: React.ReactNode;
1478
+ children?: React$1.ReactNode;
1417
1479
  }
1418
1480
  /**
1419
1481
  * Footer section for the drawer, typically for action buttons.
@@ -1543,7 +1605,7 @@ interface ToastProviderProps {
1543
1605
  defaultDuration?: number;
1544
1606
  /** Maximum number of visible toasts */
1545
1607
  maxToasts?: number;
1546
- children?: React.ReactNode;
1608
+ children?: React$1.ReactNode;
1547
1609
  }
1548
1610
  /**
1549
1611
  * Provider component for the toast notification system.
@@ -1637,7 +1699,7 @@ interface AutocompleteProps<T = string> extends ViewProps {
1637
1699
  /** Custom filter function */
1638
1700
  filterFn?: (option: AutocompleteOption<T>, inputValue: string) => boolean;
1639
1701
  /** Custom render function for options */
1640
- renderOption?: (option: AutocompleteOption<T>, isHighlighted: boolean) => React.ReactNode;
1702
+ renderOption?: (option: AutocompleteOption<T>, isHighlighted: boolean) => React$1.ReactNode;
1641
1703
  /** Text to show when no options match */
1642
1704
  noOptionsText?: string;
1643
1705
  /** Text to show when loading */
@@ -1683,7 +1745,7 @@ type HelpTipPlacement = 'top' | 'bottom' | 'left' | 'right';
1683
1745
  type HelpTipIcon = 'help' | 'info' | 'warning';
1684
1746
  interface HelpTipProps extends ViewProps {
1685
1747
  /** Tooltip content */
1686
- content: React.ReactNode;
1748
+ content: React$1.ReactNode;
1687
1749
  /** Size of the icon */
1688
1750
  size?: HelpTipSize;
1689
1751
  /** Placement of the tooltip */
@@ -1734,7 +1796,7 @@ interface LabelWithHelpProps extends ViewProps {
1734
1796
  /** Label text */
1735
1797
  label: string;
1736
1798
  /** Help content */
1737
- helpContent: React.ReactNode;
1799
+ helpContent: React$1.ReactNode;
1738
1800
  /** Whether the field is required */
1739
1801
  isRequired?: boolean;
1740
1802
  /** Size of the help icon */
@@ -1768,7 +1830,7 @@ interface FormFieldProps extends ViewProps {
1768
1830
  /** Whether the field is read-only */
1769
1831
  isReadOnly?: boolean;
1770
1832
  /** Help tooltip content */
1771
- helpContent?: React.ReactNode;
1833
+ helpContent?: React$1.ReactNode;
1772
1834
  /** Size of the label */
1773
1835
  labelSize?: 'sm' | 'md' | 'lg';
1774
1836
  /** Direction of the layout */
@@ -1777,7 +1839,7 @@ interface FormFieldProps extends ViewProps {
1777
1839
  labelWidth?: number | string;
1778
1840
  /** Additional className */
1779
1841
  className?: string;
1780
- children?: React.ReactNode;
1842
+ children?: React$1.ReactNode;
1781
1843
  }
1782
1844
  /**
1783
1845
  * FormField component for wrapping form inputs with label, help text, and error states.
@@ -1812,7 +1874,7 @@ interface FormSectionProps extends ViewProps {
1812
1874
  description?: string;
1813
1875
  /** Additional className */
1814
1876
  className?: string;
1815
- children?: React.ReactNode;
1877
+ children?: React$1.ReactNode;
1816
1878
  }
1817
1879
  /**
1818
1880
  * FormSection component for grouping related form fields.
@@ -1833,7 +1895,7 @@ interface FormActionsProps extends ViewProps {
1833
1895
  align?: 'left' | 'center' | 'right' | 'between';
1834
1896
  /** Additional className */
1835
1897
  className?: string;
1836
- children?: React.ReactNode;
1898
+ children?: React$1.ReactNode;
1837
1899
  }
1838
1900
  /**
1839
1901
  * FormActions component for form action buttons.
@@ -1850,7 +1912,7 @@ interface FormRowProps extends ViewProps {
1850
1912
  gap?: 'sm' | 'md' | 'lg';
1851
1913
  /** Additional className */
1852
1914
  className?: string;
1853
- children?: React.ReactNode;
1915
+ children?: React$1.ReactNode;
1854
1916
  }
1855
1917
  /**
1856
1918
  * FormRow component for laying out multiple form fields horizontally.
@@ -1867,14 +1929,14 @@ interface FormRowProps extends ViewProps {
1867
1929
  */
1868
1930
  declare function FormRow({ gap, className, children, ...props }: FormRowProps): react_jsx_runtime.JSX.Element;
1869
1931
 
1870
- 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;
1871
1933
  interface StackProps extends ViewProps {
1872
- gap?: Gap;
1934
+ gap?: Gap$1;
1873
1935
  align?: 'start' | 'center' | 'end' | 'stretch';
1874
1936
  justify?: 'start' | 'center' | 'end' | 'between' | 'around';
1875
1937
  wrap?: boolean;
1876
1938
  className?: string;
1877
- children: React.ReactNode;
1939
+ children: React$1.ReactNode;
1878
1940
  }
1879
1941
  declare function Stack({ gap, align, justify, wrap, className, children, ...props }: StackProps): react_jsx_runtime.JSX.Element;
1880
1942
  declare function HStack(props: StackProps): react_jsx_runtime.JSX.Element;
@@ -1882,19 +1944,19 @@ declare function VStack(props: StackProps): react_jsx_runtime.JSX.Element;
1882
1944
 
1883
1945
  interface SectionProps extends ViewProps {
1884
1946
  className?: string;
1885
- children: React.ReactNode;
1947
+ children: React$1.ReactNode;
1886
1948
  }
1887
1949
  declare function Section({ className, children, ...props }: SectionProps): react_jsx_runtime.JSX.Element;
1888
1950
  interface SectionHeaderProps {
1889
1951
  title: string;
1890
1952
  subtitle?: string;
1891
- trailing?: React.ReactNode;
1953
+ trailing?: React$1.ReactNode;
1892
1954
  className?: string;
1893
1955
  }
1894
1956
  declare function SectionHeader({ title, subtitle, trailing, className }: SectionHeaderProps): react_jsx_runtime.JSX.Element;
1895
1957
  interface SectionContentProps extends ViewProps {
1896
1958
  className?: string;
1897
- children: React.ReactNode;
1959
+ children: React$1.ReactNode;
1898
1960
  }
1899
1961
  declare function SectionContent({ className, children, ...props }: SectionContentProps): react_jsx_runtime.JSX.Element;
1900
1962
 
@@ -1902,7 +1964,7 @@ interface DataRowProps extends ViewProps {
1902
1964
  /** Descriptive label shown on the left */
1903
1965
  label: string;
1904
1966
  /** Value shown on the right -- string renders as Text, ReactNode renders inside a View */
1905
- value: React.ReactNode;
1967
+ value: React$1.ReactNode;
1906
1968
  /** Additional className applied to the value element */
1907
1969
  valueClassName?: string;
1908
1970
  /** Additional className applied to the root container */
@@ -1913,7 +1975,7 @@ declare function DataRow({ label, value, valueClassName, className, ...props }:
1913
1975
  type IconBoxColor = 'primary' | 'secondary' | 'success' | 'error' | 'warning' | 'info' | 'neutral';
1914
1976
  type IconBoxSize = 'sm' | 'md' | 'lg';
1915
1977
  interface IconBoxProps extends ViewProps {
1916
- icon: React.ComponentType<{
1978
+ icon: React$1.ComponentType<{
1917
1979
  size?: number;
1918
1980
  className?: string;
1919
1981
  }>;
@@ -1929,17 +1991,17 @@ interface SurfaceProps extends ViewProps {
1929
1991
  glowIntensity?: GlowIntensity;
1930
1992
  theme?: 'light' | 'dark';
1931
1993
  className?: string;
1932
- children: React.ReactNode;
1994
+ children: React$1.ReactNode;
1933
1995
  }
1934
1996
  declare function Surface({ elevation, glowColor, glowIntensity, theme, className, style, children, ...props }: SurfaceProps): react_jsx_runtime.JSX.Element;
1935
1997
 
1936
1998
  interface ListItemProps extends PressableProps {
1937
1999
  className?: string;
1938
- children: React.ReactNode;
2000
+ children: React$1.ReactNode;
1939
2001
  }
1940
2002
  declare function ListItem({ className, children, onPress, ...props }: ListItemProps): react_jsx_runtime.JSX.Element;
1941
2003
  interface ListItemIconProps extends ViewProps {
1942
- icon: React.ComponentType<{
2004
+ icon: React$1.ComponentType<{
1943
2005
  size?: number;
1944
2006
  className?: string;
1945
2007
  }>;
@@ -1954,7 +2016,7 @@ interface ListItemContentProps extends ViewProps {
1954
2016
  declare function ListItemContent({ title, subtitle, className, ...props }: ListItemContentProps): react_jsx_runtime.JSX.Element;
1955
2017
  interface ListItemTrailingProps extends ViewProps {
1956
2018
  className?: string;
1957
- children: React.ReactNode;
2019
+ children: React$1.ReactNode;
1958
2020
  }
1959
2021
  declare function ListItemTrailing({ className, children, ...props }: ListItemTrailingProps): react_jsx_runtime.JSX.Element;
1960
2022
  interface ListItemDividerProps extends ViewProps {
@@ -1968,7 +2030,7 @@ type PillColor = 'default' | 'primary' | 'secondary' | 'success' | 'error' | 'wa
1968
2030
  type PillSize = 'xs' | 'sm' | 'md';
1969
2031
  interface PillProps extends ViewProps {
1970
2032
  /** Pill content */
1971
- children: React.ReactNode;
2033
+ children: React$1.ReactNode;
1972
2034
  /** Visual variant */
1973
2035
  variant?: PillVariant;
1974
2036
  /** Color scheme */
@@ -1978,7 +2040,7 @@ interface PillProps extends ViewProps {
1978
2040
  /** Fully rounded (default true) or slight radius */
1979
2041
  rounded?: boolean;
1980
2042
  /** Element before the label (e.g., Indicator dot) */
1981
- leftElement?: React.ReactNode;
2043
+ leftElement?: React$1.ReactNode;
1982
2044
  /** Press handler (makes pill interactive) */
1983
2045
  onPress?: () => void;
1984
2046
  /** Additional className */
@@ -1986,7 +2048,31 @@ interface PillProps extends ViewProps {
1986
2048
  }
1987
2049
  declare function Pill({ children, variant, color, size, rounded, leftElement, onPress, className, ...props }: PillProps): react_jsx_runtime.JSX.Element;
1988
2050
 
1989
- type TypographyVariant = 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6' | 'body1' | 'body2' | 'subtitle1' | 'subtitle2' | 'caption' | 'overline' | 'button';
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
+
2075
+ type TypographyVariant = 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6' | 'body1' | 'body2' | 'subtitle1' | 'subtitle2' | 'caption' | 'overline' | 'button' | 'mono' | 'monoLabel';
1990
2076
  type TypographyColor = 'primary' | 'secondary' | 'tertiary' | 'disabled' | 'inverse' | 'success' | 'error' | 'warning' | 'info' | 'inherit';
1991
2077
  type TypographyAlign = 'left' | 'center' | 'right' | 'justify';
1992
2078
  type TypographyMarginBottom = 'none' | 'sm' | 'md' | 'lg';
@@ -2009,7 +2095,7 @@ interface TypographyProps extends TextProps {
2009
2095
  maxLines?: number;
2010
2096
  /** Additional className */
2011
2097
  className?: string;
2012
- children?: React.ReactNode;
2098
+ children?: React$1.ReactNode;
2013
2099
  }
2014
2100
  /**
2015
2101
  * Typography component for consistent text styling.
@@ -2079,7 +2165,7 @@ interface SidebarProps extends ViewProps {
2079
2165
  collapsedWidth?: number;
2080
2166
  /** Additional className */
2081
2167
  className?: string;
2082
- children?: React.ReactNode;
2168
+ children?: React$1.ReactNode;
2083
2169
  }
2084
2170
  /**
2085
2171
  * Sidebar navigation component.
@@ -2102,7 +2188,7 @@ interface SidebarProps extends ViewProps {
2102
2188
  */
2103
2189
  declare function Sidebar({ isCollapsed, activeItem, onItemSelect, width, collapsedWidth, className, children, ...props }: SidebarProps): react_jsx_runtime.JSX.Element;
2104
2190
  interface SidebarHeaderProps {
2105
- children?: React.ReactNode;
2191
+ children?: React$1.ReactNode;
2106
2192
  className?: string;
2107
2193
  }
2108
2194
  /**
@@ -2110,7 +2196,7 @@ interface SidebarHeaderProps {
2110
2196
  */
2111
2197
  declare function SidebarHeader({ children, className }: SidebarHeaderProps): react_jsx_runtime.JSX.Element;
2112
2198
  interface SidebarContentProps {
2113
- children?: React.ReactNode;
2199
+ children?: React$1.ReactNode;
2114
2200
  className?: string;
2115
2201
  }
2116
2202
  /**
@@ -2118,7 +2204,7 @@ interface SidebarContentProps {
2118
2204
  */
2119
2205
  declare function SidebarContent({ children, className }: SidebarContentProps): react_jsx_runtime.JSX.Element;
2120
2206
  interface SidebarFooterProps {
2121
- children?: React.ReactNode;
2207
+ children?: React$1.ReactNode;
2122
2208
  className?: string;
2123
2209
  }
2124
2210
  /**
@@ -2128,7 +2214,7 @@ declare function SidebarFooter({ children, className }: SidebarFooterProps): rea
2128
2214
  interface SidebarSectionProps {
2129
2215
  /** Section title */
2130
2216
  title?: string;
2131
- children?: React.ReactNode;
2217
+ children?: React$1.ReactNode;
2132
2218
  className?: string;
2133
2219
  }
2134
2220
  /**
@@ -2139,14 +2225,14 @@ interface SidebarItemProps extends Omit<PressableProps, 'children'> {
2139
2225
  /** Unique identifier for the item */
2140
2226
  id: string;
2141
2227
  /** Icon component */
2142
- icon?: React.ComponentType<{
2228
+ icon?: React$1.ComponentType<{
2143
2229
  size?: number;
2144
2230
  className?: string;
2145
2231
  }>;
2146
2232
  /** Label text */
2147
2233
  label: string;
2148
2234
  /** Badge content (e.g., notification count) */
2149
- badge?: React.ReactNode;
2235
+ badge?: React$1.ReactNode;
2150
2236
  /** Whether this item has nested items */
2151
2237
  hasChildren?: boolean;
2152
2238
  /** Whether nested items are expanded */
@@ -2190,7 +2276,7 @@ interface TableProps extends ViewProps {
2190
2276
  loadingRowCount?: number;
2191
2277
  /** Additional className */
2192
2278
  className?: string;
2193
- children?: React.ReactNode;
2279
+ children?: React$1.ReactNode;
2194
2280
  }
2195
2281
  /**
2196
2282
  * Table component with sorting support.
@@ -2217,7 +2303,7 @@ interface TableProps extends ViewProps {
2217
2303
  */
2218
2304
  declare function Table({ sortColumn, sortDirection, onSort, selectedRows, onSelectRow, onSelectAll, selectable, rowIds, isLoading, loadingRowCount, className, children, ...props }: TableProps): react_jsx_runtime.JSX.Element;
2219
2305
  interface TableHeaderProps {
2220
- children?: React.ReactNode;
2306
+ children?: React$1.ReactNode;
2221
2307
  className?: string;
2222
2308
  }
2223
2309
  /**
@@ -2225,7 +2311,7 @@ interface TableHeaderProps {
2225
2311
  */
2226
2312
  declare function TableHeader({ children, className }: TableHeaderProps): react_jsx_runtime.JSX.Element;
2227
2313
  interface TableBodyProps {
2228
- children?: React.ReactNode;
2314
+ children?: React$1.ReactNode;
2229
2315
  className?: string;
2230
2316
  }
2231
2317
  /**
@@ -2239,7 +2325,7 @@ interface TableRowProps extends ViewProps {
2239
2325
  isHoverable?: boolean;
2240
2326
  /** Additional className */
2241
2327
  className?: string;
2242
- children?: React.ReactNode;
2328
+ children?: React$1.ReactNode;
2243
2329
  }
2244
2330
  /**
2245
2331
  * Table row.
@@ -2254,7 +2340,7 @@ interface TableHeaderCellProps extends Omit<PressableProps, 'children'> {
2254
2340
  width?: number;
2255
2341
  /** Additional className */
2256
2342
  className?: string;
2257
- children?: React.ReactNode;
2343
+ children?: React$1.ReactNode;
2258
2344
  }
2259
2345
  /**
2260
2346
  * Table header cell with optional sorting.
@@ -2267,7 +2353,7 @@ interface TableCellProps extends ViewProps {
2267
2353
  width?: number;
2268
2354
  /** Additional className */
2269
2355
  className?: string;
2270
- children?: React.ReactNode;
2356
+ children?: React$1.ReactNode;
2271
2357
  }
2272
2358
  /**
2273
2359
  * Table data cell.
@@ -2338,7 +2424,7 @@ declare function useTable<T extends Record<string, any>>({ data, defaultPageSize
2338
2424
 
2339
2425
  interface EmptyStateProps extends ViewProps {
2340
2426
  /** Icon component to display */
2341
- icon?: React.ComponentType<{
2427
+ icon?: React$1.ComponentType<{
2342
2428
  size?: number;
2343
2429
  className?: string;
2344
2430
  }>;
@@ -2347,7 +2433,7 @@ interface EmptyStateProps extends ViewProps {
2347
2433
  /** Description text */
2348
2434
  description?: string;
2349
2435
  /** Action element (usually a button) */
2350
- action?: React.ReactNode;
2436
+ action?: React$1.ReactNode;
2351
2437
  /** Additional className */
2352
2438
  className?: string;
2353
2439
  }
@@ -2373,7 +2459,7 @@ interface StepperProps extends ViewProps {
2373
2459
  orientation?: StepperOrientation;
2374
2460
  /** Additional className */
2375
2461
  className?: string;
2376
- children?: React.ReactNode;
2462
+ children?: React$1.ReactNode;
2377
2463
  }
2378
2464
  /**
2379
2465
  * Stepper component for multi-step flows.
@@ -2402,7 +2488,7 @@ interface StepProps {
2402
2488
  status?: StepStatus;
2403
2489
  /** Additional className */
2404
2490
  className?: string;
2405
- children?: React.ReactNode;
2491
+ children?: React$1.ReactNode;
2406
2492
  }
2407
2493
  /**
2408
2494
  * Individual step in the stepper.
@@ -2414,7 +2500,7 @@ interface StepIndicatorProps {
2414
2500
  /** Step index (injected by Step) */
2415
2501
  index?: number;
2416
2502
  /** Custom icon */
2417
- icon?: React.ReactNode;
2503
+ icon?: React$1.ReactNode;
2418
2504
  /** Additional className */
2419
2505
  className?: string;
2420
2506
  }
@@ -2427,7 +2513,7 @@ interface StepLabelProps {
2427
2513
  status?: StepStatus;
2428
2514
  /** Additional className */
2429
2515
  className?: string;
2430
- children?: React.ReactNode;
2516
+ children?: React$1.ReactNode;
2431
2517
  }
2432
2518
  /**
2433
2519
  * Label for a step.
@@ -2438,7 +2524,7 @@ interface StepContentProps {
2438
2524
  status?: StepStatus;
2439
2525
  /** Additional className */
2440
2526
  className?: string;
2441
- children?: React.ReactNode;
2527
+ children?: React$1.ReactNode;
2442
2528
  }
2443
2529
  /**
2444
2530
  * Content area for vertical stepper.
@@ -2447,14 +2533,24 @@ declare function StepContent({ status, className, children }: StepContentProps):
2447
2533
 
2448
2534
  type DateTimeFormat = 'date' | 'time' | 'datetime' | 'relative' | 'short' | 'medium' | 'long' | 'full';
2449
2535
  interface DateTimeProps extends TextProps {
2450
- /** Date value (timestamp in ms, Date object, or ISO string) */
2451
- value: number | Date | string | null | undefined;
2536
+ /** Date value (timestamp in ms, Date object, or ISO string). Optional when `live`. */
2537
+ value?: number | Date | string | null | undefined;
2452
2538
  /** Display format */
2453
2539
  format?: DateTimeFormat;
2454
2540
  /** Custom format string (overrides format) */
2455
2541
  customFormat?: string;
2456
2542
  /** Whether to show in UTC */
2457
2543
  isUTC?: boolean;
2544
+ /** Force 12h (true) or 24h (false) for time/datetime formats; locale default when omitted. */
2545
+ hour12?: boolean;
2546
+ /** Include seconds in time/datetime formats. */
2547
+ seconds?: boolean;
2548
+ /** Render through Typography with this variant (e.g. 'mono'); plain inheriting Text when omitted. */
2549
+ variant?: TypographyVariant;
2550
+ /** Track the current time and re-render on an interval (ignores `value`). For clocks / relative time. */
2551
+ live?: boolean;
2552
+ /** Refresh interval in ms when `live` (default 1000). */
2553
+ refreshMs?: number;
2458
2554
  /** Fallback text when value is null/undefined */
2459
2555
  fallback?: string;
2460
2556
  /** Text color */
@@ -2478,12 +2574,64 @@ interface DateTimeProps extends TextProps {
2478
2574
  * // UTC time
2479
2575
  * <DateTime value={timestamp} format="datetime" isUTC />
2480
2576
  */
2481
- declare function DateTime({ value, format, customFormat, isUTC, fallback, color, className, ...props }: DateTimeProps): react_jsx_runtime.JSX.Element;
2577
+ declare function DateTime({ value, format, customFormat, isUTC, hour12, seconds, variant, live, refreshMs, fallback, color, className, ...props }: DateTimeProps): react_jsx_runtime.JSX.Element;
2482
2578
  /**
2483
2579
  * Utility function to format dates outside of React components.
2484
2580
  */
2485
2581
  declare function formatDateTime(value: number | Date | string | null | undefined, format?: DateTimeFormat, isUTC?: boolean, fallback?: string): string;
2486
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
+
2487
2635
  type MetricTrend = 'up' | 'down' | 'neutral';
2488
2636
  interface MetricProps extends ViewProps {
2489
2637
  value: string;
@@ -2496,7 +2644,7 @@ interface MetricProps extends ViewProps {
2496
2644
  declare function Metric({ value, label, unit, trend, size, className, ...props }: MetricProps): react_jsx_runtime.JSX.Element;
2497
2645
  interface MetricGroupProps extends ViewProps {
2498
2646
  className?: string;
2499
- children: React.ReactNode;
2647
+ children: React$1.ReactNode;
2500
2648
  }
2501
2649
  declare function MetricGroup({ className, children, ...props }: MetricGroupProps): react_jsx_runtime.JSX.Element;
2502
2650
 
@@ -2535,6 +2683,20 @@ interface WeightBadgeProps extends Omit<BaseBadgeProps, 'variant' | 'icon' | 'ch
2535
2683
  }
2536
2684
  declare function WeightBadge({ value, unit, reps, delta, isPr, showIcon, size, onPress, className, ...props }: WeightBadgeProps): react_jsx_runtime.JSX.Element;
2537
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
+
2538
2700
  type StatusDotVariant = 'success' | 'warning' | 'error' | 'neutral' | 'on-track' | 'deviation' | 'future';
2539
2701
  interface StatusDotProps extends ViewProps {
2540
2702
  variant: StatusDotVariant;
@@ -2577,6 +2739,8 @@ interface TempoDisplayProps extends ViewProps {
2577
2739
  size?: 'sm' | 'md';
2578
2740
  /** Colored phases or mono (all gray) */
2579
2741
  colored?: boolean;
2742
+ /** Show the "TEMPO" caption before the values. Default true. */
2743
+ showLabel?: boolean;
2580
2744
  /** Show info tooltip on press */
2581
2745
  showInfo?: boolean;
2582
2746
  /**
@@ -2588,7 +2752,7 @@ interface TempoDisplayProps extends ViewProps {
2588
2752
  onPress?: () => void;
2589
2753
  className?: string;
2590
2754
  }
2591
- 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;
2592
2756
 
2593
2757
  /**
2594
2758
  * Titan-local phase key. Consumers map their own movement-phase enum onto this
@@ -2708,10 +2872,342 @@ interface RestTimerProps {
2708
2872
  }
2709
2873
  declare function RestTimer({ totalSeconds, elapsedMs, onSkip, onAddTime, nextSetInfo, visible, displayOnly, }: RestTimerProps): react_jsx_runtime.JSX.Element | null;
2710
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
+
2711
3207
  interface SupersetWrapperProps {
2712
3208
  label?: string;
2713
3209
  color?: string;
2714
- children: React.ReactNode;
3210
+ children: React$1.ReactNode;
2715
3211
  }
2716
3212
  declare function SupersetWrapper({ label, color, children, }: SupersetWrapperProps): react_jsx_runtime.JSX.Element;
2717
3213
 
@@ -2812,6 +3308,206 @@ interface ReadinessCheckProps {
2812
3308
  */
2813
3309
  declare function ReadinessCheck({ factors, score, warmUpValidation, warmUpCompleted, onConfirm, className, }: ReadinessCheckProps): react_jsx_runtime.JSX.Element;
2814
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
+
2815
3511
  interface TreemapDatum {
2816
3512
  /** Stable identity — returned by onPress and used as the React key. */
2817
3513
  id: string;
@@ -2935,6 +3631,197 @@ interface GaugeProps extends Omit<ViewProps, 'children'> {
2935
3631
  */
2936
3632
  declare function Gauge({ value, min, max, size, label, unit, thresholds, color, className, ...props }: GaugeProps): react_jsx_runtime.JSX.Element;
2937
3633
 
3634
+ interface BrandLockupProps extends ViewProps {
3635
+ /** The "/ subtitle" that follows the wordmark. Default "wall dashboard". */
3636
+ subtitle?: string;
3637
+ /** Show the subtitle. Hidden at tablet width and below (S1-Q4 responsive). */
3638
+ showSubtitle?: boolean;
3639
+ className?: string;
3640
+ }
3641
+ /**
3642
+ * Product identity lockup for the top bar: ◇ mark + VOLTRAS wordmark + optional
3643
+ * subtitle. Composes the VoltrasMark icon + Typography. S1 · BrandLockup.
3644
+ */
3645
+ declare function BrandLockup({ subtitle, showSubtitle, className, ...props }: BrandLockupProps): react_jsx_runtime.JSX.Element;
3646
+
3647
+ type SessionState = 'live' | 'rest' | 'idle';
3648
+ interface SessionStatePillProps extends ViewProps {
3649
+ /** Session state → dot color + pulse + label. */
3650
+ state: SessionState;
3651
+ /** Override the default label (LIVE / REST / IDLE). */
3652
+ label?: string;
3653
+ className?: string;
3654
+ }
3655
+ /**
3656
+ * The global session-state readout (dot + label). Shared: the top bar's status
3657
+ * and the Live-view header both use it (this is the ledger's "StatusPill",
3658
+ * Family C — built once). S1 · SessionStatePill.
3659
+ */
3660
+ declare function SessionStatePill({ state, label, className, ...props }: SessionStatePillProps): react_jsx_runtime.JSX.Element;
3661
+
3662
+ type DeviceConnState = 'connected' | 'degraded' | 'lost';
3663
+ interface DeviceIndicatorProps extends ViewProps {
3664
+ /** Aggregate connection state (worst-of the bound devices) → glyph color. */
3665
+ status?: DeviceConnState;
3666
+ /** Tap handler. When omitted the glyph is non-interactive (e.g. inside a PopoverTrigger). */
3667
+ onPress?: () => void;
3668
+ /** Accessible label (names the glyph / the wrapping trigger button). */
3669
+ label?: string;
3670
+ className?: string;
3671
+ }
3672
+ /**
3673
+ * The device/BLE connection glyph — a color-coded bluetooth mark, no label.
3674
+ * Opens the DeviceMenu when tapped. S1 · DeviceIndicator.
3675
+ */
3676
+ declare function DeviceIndicator({ status, onPress, label, className, ...props }: DeviceIndicatorProps): react_jsx_runtime.JSX.Element;
3677
+
3678
+ type DeviceRowState = 'connected' | 'available' | 'degraded' | 'lost';
3679
+ interface Device {
3680
+ /** Stable device id (e.g. "Voltra-A3F2"). */
3681
+ id: string;
3682
+ /** User-assigned slot/device name (e.g. "Left Cable"). */
3683
+ nickname: string;
3684
+ /** Bound slot, or null when unbound/available (used for the menu's bound/available tally). */
3685
+ slot?: 'L' | 'R' | null;
3686
+ /** Connection/availability state → the status dot color. */
3687
+ state: DeviceRowState;
3688
+ }
3689
+ interface DeviceRowProps extends ViewProps {
3690
+ device: Device;
3691
+ onPress?: () => void;
3692
+ className?: string;
3693
+ }
3694
+ /**
3695
+ * One device in the DeviceMenu: status dot · name · Bluetooth id. The dot color
3696
+ * carries the connection state (no redundant status text); the name is the one
3697
+ * slot label (no duplicate slot badge). S1 · DeviceRow.
3698
+ */
3699
+ declare function DeviceRow({ device, onPress, className, ...props }: DeviceRowProps): react_jsx_runtime.JSX.Element;
3700
+
3701
+ interface DeviceMenuProps {
3702
+ devices: Device[];
3703
+ /** Controlled open state (optional — uncontrolled otherwise). */
3704
+ isOpen?: boolean;
3705
+ onOpenChange?: (open: boolean) => void;
3706
+ onSelectDevice?: (device: Device) => void;
3707
+ className?: string;
3708
+ }
3709
+ /**
3710
+ * The device glyph + its dropdown of individual devices (availability, slot
3711
+ * binding, id, connection state). Composes Popover + DeviceIndicator +
3712
+ * DeviceRow. S1 · DeviceMenu.
3713
+ */
3714
+ declare function DeviceMenu({ devices, isOpen, onOpenChange, onSelectDevice, className, }: DeviceMenuProps): react_jsx_runtime.JSX.Element;
3715
+
3716
+ interface TopBarProps {
3717
+ /** Global session state → the status pill. */
3718
+ state: SessionState;
3719
+ /** Devices for the connection glyph + dropdown. */
3720
+ devices: Device[];
3721
+ /** The moment to display in the clock (Date/timestamp). Omit for a live ticking clock. */
3722
+ time?: number | Date;
3723
+ /** Brand subtitle. Default "wall dashboard". */
3724
+ subtitle?: string;
3725
+ /** Force the subtitle on/off; defaults to container-responsive (hidden below ~1024px). */
3726
+ showSubtitle?: boolean;
3727
+ /** Force the clock on/off; defaults to container-responsive (hidden below ~720px). */
3728
+ showClock?: boolean;
3729
+ onSelectDevice?: (device: Device) => void;
3730
+ className?: string;
3731
+ }
3732
+ /**
3733
+ * S1 · TopBar — the persistent shell chrome band. Brand (left) + a right cluster
3734
+ * of session state · device glyph · clock (clock edge-pinned so spacing stays
3735
+ * stable as the state text changes). Collapses subtitle then clock as its
3736
+ * container narrows.
3737
+ */
3738
+ declare function TopBar({ state, devices, time, subtitle, showSubtitle, showClock, onSelectDevice, className, }: TopBarProps): react_jsx_runtime.JSX.Element;
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
+
2938
3825
  /**
2939
3826
  * Utility function to merge Tailwind CSS classes with proper conflict resolution.
2940
3827
  * Combines clsx for conditional classes with tailwind-merge for deduplication.
@@ -3143,4 +4030,4 @@ interface PrescriptionInput {
3143
4030
  */
3144
4031
  declare function formatPrescription(p: PrescriptionInput | null | undefined): string | null;
3145
4032
 
3146
- 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, 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, Divider, type DividerOrientation, type DividerProps, Drawer, DrawerBody, type DrawerBodyProps, DrawerFooter, type DrawerFooterProps, DrawerHeader, type DrawerHeaderProps, type DrawerPlacement, type DrawerProps, type DrawerSize, 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, Indicator, type IndicatorColor, type IndicatorProps, 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, 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, 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, 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, Treemap, type TreemapDatum, type TreemapProps, type TreemapScale, Typography, type TypographyAlign, type TypographyColor, type TypographyProps, type TypographyVariant, type UseTableOptions, type UseTableReturn, VStack, 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 };