@titan-design/react-ui 0.13.0 → 0.14.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 (146) hide show
  1. package/README.md +14 -0
  2. package/dist/bodymap.js +129 -76
  3. package/dist/bodymap.js.map +1 -1
  4. package/dist/bodymap.mjs +129 -76
  5. package/dist/bodymap.mjs.map +1 -1
  6. package/dist/index.d.mts +117 -26
  7. package/dist/index.d.ts +117 -26
  8. package/dist/index.js +677 -450
  9. package/dist/index.js.map +1 -1
  10. package/dist/index.mjs +673 -451
  11. package/dist/index.mjs.map +1 -1
  12. package/dist/{pages-_3Ajpiqu.d.ts → pages-CsjsUn0G.d.ts} +30 -13
  13. package/dist/{pages-CpW3OB3g.d.mts → pages-ZbT_pD_U.d.mts} +30 -13
  14. package/dist/pages.d.mts +1 -1
  15. package/dist/pages.d.ts +1 -1
  16. package/dist/pages.js +676 -701
  17. package/dist/pages.js.map +1 -1
  18. package/dist/pages.mjs +676 -701
  19. package/dist/pages.mjs.map +1 -1
  20. package/dist/theme/index.d.mts +31 -7
  21. package/dist/theme/index.d.ts +31 -7
  22. package/dist/theme/index.js +84 -20
  23. package/dist/theme/index.js.map +1 -1
  24. package/dist/theme/index.mjs +83 -21
  25. package/dist/theme/index.mjs.map +1 -1
  26. package/dist/theme/tokens-css.js +84 -20
  27. package/dist/theme/tokens-css.js.map +1 -1
  28. package/dist/theme/tokens-css.mjs +84 -20
  29. package/dist/theme/tokens-css.mjs.map +1 -1
  30. package/dist/theme/tokens.d.mts +56 -7
  31. package/dist/theme/tokens.d.ts +56 -7
  32. package/dist/theme/tokens.js +72 -20
  33. package/dist/theme/tokens.js.map +1 -1
  34. package/dist/theme/tokens.mjs +71 -21
  35. package/dist/theme/tokens.mjs.map +1 -1
  36. package/docs/render-testing-pattern.md +130 -0
  37. package/package.json +1 -1
  38. package/src/arch/Architecture.stories.tsx +3 -1
  39. package/src/arch/arch-graph.json +74 -72
  40. package/src/components/custom/ActiveWork/InitiativeBrief.tsx +2 -1
  41. package/src/components/custom/CircularTimer/CircularTimer.stories.tsx +8 -3
  42. package/src/components/custom/EmptyState/EmptyState.stories.tsx +1 -1
  43. package/src/components/custom/Gauge/Gauge.stories.tsx +4 -1
  44. package/src/components/custom/Gauge/Gauge.tsx +3 -1
  45. package/src/components/custom/Scatter/Scatter.stories.tsx +10 -7
  46. package/src/components/custom/Scatter/Scatter.tsx +6 -4
  47. package/src/components/custom/Sidebar/Sidebar.stories.tsx +1 -1
  48. package/src/components/custom/Table/Table.stories.tsx +1 -1
  49. package/src/components/custom/Table/Table.tsx +2 -2
  50. package/src/components/custom/Treemap/Treemap.stories.tsx +13 -10
  51. package/src/components/custom/Treemap/Treemap.tsx +4 -1
  52. package/src/components/custom/Workout/ActiveWorkoutPage.stories.tsx +2 -1
  53. package/src/components/custom/Workout/BaseBadge.stories.tsx +11 -7
  54. package/src/components/custom/Workout/BaseBadge.tsx +3 -2
  55. package/src/components/custom/Workout/BodyMap.tsx +5 -3
  56. package/src/components/custom/Workout/BodyMapDetailPanel.stories.tsx +13 -3
  57. package/src/components/custom/Workout/BodyMapDetailPanel.tsx +5 -3
  58. package/src/components/custom/Workout/CapacityBandChart.stories.tsx +2 -1
  59. package/src/components/custom/Workout/CapacityBandChart.tsx +5 -3
  60. package/src/components/custom/Workout/DeviationBar.test.tsx +5 -2
  61. package/src/components/custom/Workout/DeviationBar.tsx +5 -2
  62. package/src/components/custom/Workout/DualVelocityStrip.stories.tsx +7 -6
  63. package/src/components/custom/Workout/DualVelocityStrip.test.tsx +29 -16
  64. package/src/components/custom/Workout/ExerciseCard.stories.tsx +8 -8
  65. package/src/components/custom/Workout/ExerciseCard.test.tsx +39 -19
  66. package/src/components/custom/Workout/ExerciseCard.tsx +92 -167
  67. package/src/components/custom/Workout/ExerciseCardHeading.stories.tsx +89 -6
  68. package/src/components/custom/Workout/ExerciseCardHeading.test.tsx +189 -1
  69. package/src/components/custom/Workout/ExerciseCardHeading.tsx +167 -18
  70. package/src/components/custom/Workout/ExerciseDetailPage.tsx +3 -2
  71. package/src/components/custom/Workout/ExerciseHeading.tsx +192 -47
  72. package/src/components/custom/Workout/ExerciseIndicator.stories.tsx +6 -5
  73. package/src/components/custom/Workout/InputBar.tsx +4 -2
  74. package/src/components/custom/Workout/IntensityBar.tsx +4 -1
  75. package/src/components/custom/Workout/MesoCard.tsx +2 -1
  76. package/src/components/custom/Workout/MesoStatusCard.tsx +11 -10
  77. package/src/components/custom/Workout/PlaceholderStrip.stories.tsx +8 -3
  78. package/src/components/custom/Workout/PrHistoryModal.stories.tsx +12 -2
  79. package/src/components/custom/Workout/README.md +58 -12
  80. package/src/components/custom/Workout/ReadinessCheck.tsx +4 -2
  81. package/src/components/custom/Workout/RestTimer.stories.tsx +13 -2
  82. package/src/components/custom/Workout/RestTimer.tsx +4 -2
  83. package/src/components/custom/Workout/SegmentedBar.stories.tsx +16 -12
  84. package/src/components/custom/Workout/SegmentedBar.tsx +4 -3
  85. package/src/components/custom/Workout/SetStrip.stories.tsx +3 -2
  86. package/src/components/custom/Workout/SetsRepsLoad.tsx +23 -9
  87. package/src/components/custom/Workout/Sparkline.stories.tsx +13 -10
  88. package/src/components/custom/Workout/StrengthTrendChart.stories.tsx +2 -1
  89. package/src/components/custom/Workout/StrengthTrendChart.tsx +8 -6
  90. package/src/components/custom/Workout/TempoDisplay.stories.tsx +4 -3
  91. package/src/components/custom/Workout/TempoDisplay.tsx +2 -0
  92. package/src/components/custom/Workout/VelocityStrip.dual.stories.tsx +3 -2
  93. package/src/components/custom/Workout/VelocityStrip.expanded.stories.tsx +1 -1
  94. package/src/components/custom/Workout/VelocityStrip.hero.stories.tsx +40 -0
  95. package/src/components/custom/Workout/VelocityStrip.test.tsx +48 -6
  96. package/src/components/custom/Workout/VelocityStrip.tsx +23 -14
  97. package/src/components/custom/Workout/ZoneTrack.stories.tsx +3 -1
  98. package/src/components/custom/Workout/exerciseRowState.ts +29 -0
  99. package/src/components/custom/Workout/index.ts +12 -2
  100. package/src/components/custom/Workout/metricText.stories.tsx +9 -8
  101. package/src/components/custom/Workout/metricText.tsx +4 -2
  102. package/src/components/custom/Workout/setHeadingKit.tsx +12 -10
  103. package/src/components/custom/Workout/velocity-story-kit.tsx +2 -2
  104. package/src/components/custom/charts/README.md +5 -0
  105. package/src/components/custom/charts/SetBarChart.test.tsx +16 -0
  106. package/src/components/custom/charts/SetBarChart.tsx +14 -5
  107. package/src/components/custom/charts/flatBarGeometry.test.ts +41 -0
  108. package/src/components/custom/charts/flatBarGeometry.ts +32 -0
  109. package/src/components/custom/stepper/Stepper.tsx +8 -6
  110. package/src/components/ui/alert/Alert.stories.tsx +14 -4
  111. package/src/components/ui/alert/Alert.tsx +24 -3
  112. package/src/components/ui/button/Button.tsx +12 -12
  113. package/src/components/ui/checkbox/Checkbox.tsx +2 -2
  114. package/src/components/ui/data-row/DataRow.stories.tsx +6 -2
  115. package/src/components/ui/drawer/Drawer.tsx +4 -1
  116. package/src/components/ui/icon-box/IconBox.tsx +8 -6
  117. package/src/components/ui/indicator/Indicator.stories.tsx +4 -3
  118. package/src/components/ui/list-item/ListItem.stories.tsx +7 -4
  119. package/src/components/ui/modal/Modal.tsx +2 -0
  120. package/src/components/ui/pill/Pill.stories.tsx +53 -0
  121. package/src/components/ui/pill/Pill.tsx +10 -6
  122. package/src/components/ui/popover/Popover.stories.tsx +1 -1
  123. package/src/components/ui/progress/Progress.tsx +9 -6
  124. package/src/components/ui/radio/Radio.tsx +1 -1
  125. package/src/components/ui/section/Section.stories.tsx +10 -10
  126. package/src/components/ui/select/Select.tsx +2 -1
  127. package/src/components/ui/spinner/Spinner.tsx +3 -1
  128. package/src/components/ui/stack/Stack.stories.tsx +7 -7
  129. package/src/components/ui/surface/Surface.stories.tsx +75 -28
  130. package/src/components/ui/switch/Switch.tsx +1 -1
  131. package/src/components/ui/tabs/Tabs.tsx +4 -2
  132. package/src/components/ui/toast/Toast.tsx +6 -4
  133. package/src/components/ui/toolbar-button/ToolbarButton.tsx +13 -6
  134. package/src/stories/PresetShowcase.stories.tsx +1 -1
  135. package/src/test/no-raw-color.test.ts +39 -0
  136. package/src/theme/Alpha.stories.tsx +103 -0
  137. package/src/theme/ProposedTokensVW82.stories.tsx +414 -0
  138. package/src/theme/config.ts +12 -0
  139. package/src/theme/global.css +15 -3
  140. package/src/theme/subtle-tone-weight.test.ts +163 -0
  141. package/src/theme/tailwind-var-opacity.test.ts +163 -0
  142. package/src/theme/tokens/primitives.ts +33 -0
  143. package/src/theme/tokens/semantic-hex-guard.test.ts +322 -0
  144. package/src/theme/tokens/semantic.ts +56 -20
  145. package/src/utils/colors.alpha-adoption.test.ts +408 -0
  146. package/tailwind.config.js +50 -9
@@ -282,9 +282,14 @@ interface DualVelocityStripProps extends ViewProps {
282
282
  * `hero` — the across-the-room wall scale: tall wings, per-rep m/s value labels, and a dashed
283
283
  * running-best reference line per side. `compact` — the flat resting form: dual-hero but flat +
284
284
  * no labels (both wings are the `compact` VelocityStrip variant), same aligned structure + shared
285
- * gutter + axis. `rail` — the compact rail-expanded lean renderer, no labels / reference lines.
285
+ * gutter + axis. `dual-expanded` — the compact rail-expanded lean renderer, no labels / reference
286
+ * lines (VW-97: `rail` was a verified misnomer — this variant is the value-height strip a session
287
+ * rail row expands into, not the rail itself).
288
+ *
289
+ * `rail` is a **deprecated alias** for `dual-expanded` (same renderer, same output) — kept for one
290
+ * release so existing call sites keep working; see the Workout README.
286
291
  */
287
- variant?: 'hero' | 'compact' | 'rail';
292
+ variant?: 'hero' | 'compact' | 'dual-expanded' | 'rail';
288
293
  /**
289
294
  * Bar-height scaling, shared across BOTH wings so the L/R asymmetry reads as bar
290
295
  * length against one scale. `peak` (default) = the pair's max +headroom; `fixed` =
@@ -509,12 +514,19 @@ interface ExerciseCardProps {
509
514
  unit: 'lbs' | 'kg';
510
515
  };
511
516
  isPR?: boolean;
512
- /** Collapsed glance: per-set logged velocities (drives the mini strips). */
517
+ /**
518
+ * Collapsed glance: per-set logged velocities. Projected onto `setStates` for the
519
+ * row's `SetStrip` — pass `setStates` directly for anything richer than done/todo.
520
+ */
513
521
  setVelocities?: number[][];
514
- /** Optional velocity-zone bands shared across this exercise's sets (WA bands). */
522
+ /** Velocity-zone bands shared across this exercise's sets (WA bands). Expanded body only. */
515
523
  velocityZones?: readonly VelocityZoneBandProp[];
516
- /** Collapsed glance: total planned sets (placeholder strips fill the remainder). */
524
+ /** Collapsed glance: total planned sets (todo bars fill the remainder). */
517
525
  totalPlannedSets?: number;
526
+ /** The row the user has chosen — a persistent wash on the collapsed / upcoming row. */
527
+ isSelected?: boolean;
528
+ /** This exercise is being performed right now — the name takes the live tone. */
529
+ isLive?: boolean;
518
530
  /** Expanded body: the per-set rows (done / live / todo). */
519
531
  sets?: SetRowProps[];
520
532
  tempo?: [number, number, number, number];
@@ -522,19 +534,24 @@ interface ExerciseCardProps {
522
534
  previousBest?: string;
523
535
  supersetPosition?: 'first' | 'last' | 'middle' | null;
524
536
  supersetColor?: string;
525
- /** Expanded header per-set strip override; derived from `sets` when omitted. */
537
+ /**
538
+ * Per-set strip override for the collapsed and expanded rows; derived from
539
+ * `setVelocities` (collapsed) or `sets` (expanded) when omitted.
540
+ */
526
541
  setStates?: SetStripSet[];
527
- /** A small PR / issue / info chip in the title line (expanded header). */
542
+ /** A small PR / issue / info chip in the title line. */
528
543
  indicator?: ExerciseIndicatorKind;
529
- /** Expanded header strip height in px. Default 8. */
544
+ /** Row strip height in px. Default 8. */
530
545
  stripHeight?: number;
531
546
  }
532
547
  /**
533
- * The data-contract exercise card, in three representations:
534
- * - `upcoming` a dimmed, not-yet-reached row (prescription + previous best).
535
- * - collapsed — a glance: name + summary + per-set velocity strips.
536
- * - expandedthe unified card: the real {@link ExerciseCardHeading} header over
537
- * the SET · REPS · LBS · RPE body (one {@link SetRow} per set).
548
+ * The data-contract exercise card, in three representations — all three now ONE
549
+ * {@link ExerciseCardHeading}, selected by its `density`, rather than three hand-rolled
550
+ * heads:
551
+ * - `upcoming`a dimmed, not-yet-reached row (`density="upcoming"`).
552
+ * - collapsed a glance: name + prescription + the per-set strip (`density="compact"`).
553
+ * - expanded — the `rail` heading over the SET · REPS · LBS · RPE body (one
554
+ * {@link SetRow} per set).
538
555
  *
539
556
  * Expand is controlled (`expanded` + `onExpandedChange`) or uncontrolled
540
557
  * (`defaultExpanded`, internal state). `upcoming` overrides expand.
@@ -282,9 +282,14 @@ interface DualVelocityStripProps extends ViewProps {
282
282
  * `hero` — the across-the-room wall scale: tall wings, per-rep m/s value labels, and a dashed
283
283
  * running-best reference line per side. `compact` — the flat resting form: dual-hero but flat +
284
284
  * no labels (both wings are the `compact` VelocityStrip variant), same aligned structure + shared
285
- * gutter + axis. `rail` — the compact rail-expanded lean renderer, no labels / reference lines.
285
+ * gutter + axis. `dual-expanded` — the compact rail-expanded lean renderer, no labels / reference
286
+ * lines (VW-97: `rail` was a verified misnomer — this variant is the value-height strip a session
287
+ * rail row expands into, not the rail itself).
288
+ *
289
+ * `rail` is a **deprecated alias** for `dual-expanded` (same renderer, same output) — kept for one
290
+ * release so existing call sites keep working; see the Workout README.
286
291
  */
287
- variant?: 'hero' | 'compact' | 'rail';
292
+ variant?: 'hero' | 'compact' | 'dual-expanded' | 'rail';
288
293
  /**
289
294
  * Bar-height scaling, shared across BOTH wings so the L/R asymmetry reads as bar
290
295
  * length against one scale. `peak` (default) = the pair's max +headroom; `fixed` =
@@ -509,12 +514,19 @@ interface ExerciseCardProps {
509
514
  unit: 'lbs' | 'kg';
510
515
  };
511
516
  isPR?: boolean;
512
- /** Collapsed glance: per-set logged velocities (drives the mini strips). */
517
+ /**
518
+ * Collapsed glance: per-set logged velocities. Projected onto `setStates` for the
519
+ * row's `SetStrip` — pass `setStates` directly for anything richer than done/todo.
520
+ */
513
521
  setVelocities?: number[][];
514
- /** Optional velocity-zone bands shared across this exercise's sets (WA bands). */
522
+ /** Velocity-zone bands shared across this exercise's sets (WA bands). Expanded body only. */
515
523
  velocityZones?: readonly VelocityZoneBandProp[];
516
- /** Collapsed glance: total planned sets (placeholder strips fill the remainder). */
524
+ /** Collapsed glance: total planned sets (todo bars fill the remainder). */
517
525
  totalPlannedSets?: number;
526
+ /** The row the user has chosen — a persistent wash on the collapsed / upcoming row. */
527
+ isSelected?: boolean;
528
+ /** This exercise is being performed right now — the name takes the live tone. */
529
+ isLive?: boolean;
518
530
  /** Expanded body: the per-set rows (done / live / todo). */
519
531
  sets?: SetRowProps[];
520
532
  tempo?: [number, number, number, number];
@@ -522,19 +534,24 @@ interface ExerciseCardProps {
522
534
  previousBest?: string;
523
535
  supersetPosition?: 'first' | 'last' | 'middle' | null;
524
536
  supersetColor?: string;
525
- /** Expanded header per-set strip override; derived from `sets` when omitted. */
537
+ /**
538
+ * Per-set strip override for the collapsed and expanded rows; derived from
539
+ * `setVelocities` (collapsed) or `sets` (expanded) when omitted.
540
+ */
526
541
  setStates?: SetStripSet[];
527
- /** A small PR / issue / info chip in the title line (expanded header). */
542
+ /** A small PR / issue / info chip in the title line. */
528
543
  indicator?: ExerciseIndicatorKind;
529
- /** Expanded header strip height in px. Default 8. */
544
+ /** Row strip height in px. Default 8. */
530
545
  stripHeight?: number;
531
546
  }
532
547
  /**
533
- * The data-contract exercise card, in three representations:
534
- * - `upcoming` a dimmed, not-yet-reached row (prescription + previous best).
535
- * - collapsed — a glance: name + summary + per-set velocity strips.
536
- * - expandedthe unified card: the real {@link ExerciseCardHeading} header over
537
- * the SET · REPS · LBS · RPE body (one {@link SetRow} per set).
548
+ * The data-contract exercise card, in three representations — all three now ONE
549
+ * {@link ExerciseCardHeading}, selected by its `density`, rather than three hand-rolled
550
+ * heads:
551
+ * - `upcoming`a dimmed, not-yet-reached row (`density="upcoming"`).
552
+ * - collapsed a glance: name + prescription + the per-set strip (`density="compact"`).
553
+ * - expanded — the `rail` heading over the SET · REPS · LBS · RPE body (one
554
+ * {@link SetRow} per set).
538
555
  *
539
556
  * Expand is controlled (`expanded` + `onExpandedChange`) or uncontrolled
540
557
  * (`defaultExpanded`, internal state). `upcoming` overrides expand.
package/dist/pages.d.mts CHANGED
@@ -1,4 +1,4 @@
1
- export { A as ActiveExerciseStatus, b as ActiveWorkoutExercise, c as ActiveWorkoutInput, aq as ActiveWorkoutPage, d as ActiveWorkoutPageProps, e as ActiveWorkoutRest, f as ActiveWorkoutSuperset, ar as EXERCISE_DETAIL_TABS, n as ExerciseDetailEntry, o as ExerciseDetailHeader, as as ExerciseDetailPage, p as ExerciseDetailPageProps, q as ExerciseDetailStats, r as ExerciseDetailTab, u as ExerciseTrend, v as ExerciseVbt, w as ExerciseVbtSet, P as PlanMeso, H as PlanWeek, J as PlanWorkout, K as ProgramBreadcrumb, L as ProgramNavLevel, at as ProgramPlanningPage, N as ProgramPlanningPageProps, O as ProgramSelection, a0 as VbtSummary, ac as WorkoutGroup, ai as WorkoutProgress, au as buildBreadcrumbs, av as countCompletedSets, aw as deriveExerciseStats, ax as deriveNavLevel, ay as deriveWorkoutProgress, az as findActiveExercise, aA as findMeso, aB as findWeek, aC as findWorkout, aD as groupExercises, aE as isUpcomingExercise, aF as summarizeVbt, aG as toActiveCardProps, aH as toExerciseCardProps, aI as toProgressBarMesos } from './pages-CpW3OB3g.mjs';
1
+ export { A as ActiveExerciseStatus, b as ActiveWorkoutExercise, c as ActiveWorkoutInput, aq as ActiveWorkoutPage, d as ActiveWorkoutPageProps, e as ActiveWorkoutRest, f as ActiveWorkoutSuperset, ar as EXERCISE_DETAIL_TABS, n as ExerciseDetailEntry, o as ExerciseDetailHeader, as as ExerciseDetailPage, p as ExerciseDetailPageProps, q as ExerciseDetailStats, r as ExerciseDetailTab, u as ExerciseTrend, v as ExerciseVbt, w as ExerciseVbtSet, P as PlanMeso, H as PlanWeek, J as PlanWorkout, K as ProgramBreadcrumb, L as ProgramNavLevel, at as ProgramPlanningPage, N as ProgramPlanningPageProps, O as ProgramSelection, a0 as VbtSummary, ac as WorkoutGroup, ai as WorkoutProgress, au as buildBreadcrumbs, av as countCompletedSets, aw as deriveExerciseStats, ax as deriveNavLevel, ay as deriveWorkoutProgress, az as findActiveExercise, aA as findMeso, aB as findWeek, aC as findWorkout, aD as groupExercises, aE as isUpcomingExercise, aF as summarizeVbt, aG as toActiveCardProps, aH as toExerciseCardProps, aI as toProgressBarMesos } from './pages-ZbT_pD_U.mjs';
2
2
  import 'react/jsx-runtime';
3
3
  import 'react-native';
4
4
  import './MesoStatusCard-CQk71hSi.mjs';
package/dist/pages.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- export { A as ActiveExerciseStatus, b as ActiveWorkoutExercise, c as ActiveWorkoutInput, aq as ActiveWorkoutPage, d as ActiveWorkoutPageProps, e as ActiveWorkoutRest, f as ActiveWorkoutSuperset, ar as EXERCISE_DETAIL_TABS, n as ExerciseDetailEntry, o as ExerciseDetailHeader, as as ExerciseDetailPage, p as ExerciseDetailPageProps, q as ExerciseDetailStats, r as ExerciseDetailTab, u as ExerciseTrend, v as ExerciseVbt, w as ExerciseVbtSet, P as PlanMeso, H as PlanWeek, J as PlanWorkout, K as ProgramBreadcrumb, L as ProgramNavLevel, at as ProgramPlanningPage, N as ProgramPlanningPageProps, O as ProgramSelection, a0 as VbtSummary, ac as WorkoutGroup, ai as WorkoutProgress, au as buildBreadcrumbs, av as countCompletedSets, aw as deriveExerciseStats, ax as deriveNavLevel, ay as deriveWorkoutProgress, az as findActiveExercise, aA as findMeso, aB as findWeek, aC as findWorkout, aD as groupExercises, aE as isUpcomingExercise, aF as summarizeVbt, aG as toActiveCardProps, aH as toExerciseCardProps, aI as toProgressBarMesos } from './pages-_3Ajpiqu.js';
1
+ export { A as ActiveExerciseStatus, b as ActiveWorkoutExercise, c as ActiveWorkoutInput, aq as ActiveWorkoutPage, d as ActiveWorkoutPageProps, e as ActiveWorkoutRest, f as ActiveWorkoutSuperset, ar as EXERCISE_DETAIL_TABS, n as ExerciseDetailEntry, o as ExerciseDetailHeader, as as ExerciseDetailPage, p as ExerciseDetailPageProps, q as ExerciseDetailStats, r as ExerciseDetailTab, u as ExerciseTrend, v as ExerciseVbt, w as ExerciseVbtSet, P as PlanMeso, H as PlanWeek, J as PlanWorkout, K as ProgramBreadcrumb, L as ProgramNavLevel, at as ProgramPlanningPage, N as ProgramPlanningPageProps, O as ProgramSelection, a0 as VbtSummary, ac as WorkoutGroup, ai as WorkoutProgress, au as buildBreadcrumbs, av as countCompletedSets, aw as deriveExerciseStats, ax as deriveNavLevel, ay as deriveWorkoutProgress, az as findActiveExercise, aA as findMeso, aB as findWeek, aC as findWorkout, aD as groupExercises, aE as isUpcomingExercise, aF as summarizeVbt, aG as toActiveCardProps, aH as toExerciseCardProps, aI as toProgressBarMesos } from './pages-CsjsUn0G.js';
2
2
  import 'react/jsx-runtime';
3
3
  import 'react-native';
4
4
  import './MesoStatusCard-CQk71hSi.js';