Stage 2: Library search, filters and Exercise detail with Flip Animation

- LibraryFilter: word search on names; muscle (primary), equipment and
  level choices that widen within a filter and narrow across filters
- ExerciseBrowser (reusable for the Plan picker) with search field,
  filter sheets showing live result counts, a clear button and an
  empty state
- Exercise detail: start/end Flip Animation at each Mode's pace (still
  with reduced motion), facts, main/secondary muscles, numbered steps

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
CedricandClaude Opus 5.5 committed 2026-10-28 23:33:07 +01:00
1 parent 1289fadb98
commit 786dd52e30
16 files changed
+1272 -32

No files matched your search

+2 -2
View File
@@ -16,7 +16,7 @@ void main() {
expect(styleOf(tester).mode, Mode.stretching);
expect(find.text('2 stretches'), findsOneWidget);
expect(find.text('Hamstring Stretch'), findsOneWidget);
expect(find.text('90/90 Hamstring'), findsOneWidget);
await tester.tap(find.text('Workout'));
await tester.pumpAndSettle();
@@ -26,7 +26,7 @@ void main() {
expect(styleOf(tester).brightness, Brightness.dark);
expect(find.text('1 exercise'), findsOneWidget);
expect(find.text('Barbell Squat'), findsOneWidget);
expect(find.text('Hamstring Stretch'), findsNothing);
expect(find.text('90/90 Hamstring'), findsNothing);
});
testWidgets('opens in the last-used Mode', (tester) async {