From 302285a1a51e20aae509dadedf9b43ad1e92e567 Mon Sep 17 00:00:00 2001 From: pyr0ball Date: Fri, 24 Apr 2026 09:35:12 -0700 Subject: [PATCH] feat: step-by-step cook mode with progress bar, keyboard nav, and swipe (kiwi#49) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Cook/Exit toggle button in recipe detail header (hidden for recipes with no steps) - Cook mode progress bar between header and body showing step N of M - Single-step view replaces recipe body; shows Active/Wait badge and passive hint from #50 time_effort data (null-safe — degrades gracefully without it) - Prev/Next nav buttons; Next becomes green Done on last step - ArrowLeft/ArrowRight keyboard navigation (preventDefault to suppress scroll) - Touch swipe left/right (40px horizontal threshold, 80px vertical abort) - Done triggers handleCook() then exitCookMode() so success banner appears instantly --- frontend/src/components/RecipeDetailPanel.vue | 316 +++++++++++++++++- 1 file changed, 312 insertions(+), 4 deletions(-) diff --git a/frontend/src/components/RecipeDetailPanel.vue b/frontend/src/components/RecipeDetailPanel.vue index d4a7cd1..6de6883 100644 --- a/frontend/src/components/RecipeDetailPanel.vue +++ b/frontend/src/components/RecipeDetailPanel.vue @@ -20,7 +20,17 @@ @click="showSaveModal = true" :aria-label="isSaved ? 'Edit saved recipe' : 'Save recipe'" >{{ isSaved ? '★ Saved' : '☆ Save' }} - + + + +

{{ recipe.notes }}

@@ -33,8 +43,19 @@ >View original ↗ - -
+ +
+
+
+
+ Step {{ cookStep + 1 }} of {{ cookStepCount }} +
+ + +
@@ -208,6 +229,47 @@
+ +
+
STEP {{ cookStep + 1 }}
+ +
+ {{ currentStepAnalysis.is_passive ? 'Wait' : 'Active' }} +
+ +

{{ recipe.directions[cookStep] }}

+ +

~{{ currentStepAnalysis.detected_minutes }} min hands-off

+ +
+ + + +
+
+