From 1118de74da1044af7397a813092ec6553be97db4 Mon Sep 17 00:00:00 2001 From: Samuel Prevost Date: Sat, 25 Apr 2026 16:46:19 +0200 Subject: [PATCH] feat(pipeline): split Deskew + Measure into separate steps Step 4 (was "Result") now only runs the perspective correction and shows diagnostics + a small preview at the standard column width. Step 5 ("Measure") is a new full-bleed view dedicated to annotation, with the download buttons promoted to the top of the page. Re-running the deskew at a different output px/mm now rescales any measurements already saved for the image (cached by file hash) so they stay anchored to the same physical features instead of drifting. Theme tweaks: card surfaces are now visibly distinct from the page background in light mode, and dark mode is a touch lighter than the previous near-black. The "Made by" footer is pinned to the bottom of the viewport via fixed positioning, with corresponding pb on
. Co-Authored-By: Claude Opus 4.7 (1M context) --- src/App.vue | 13 +- src/assets/index.css | 8 +- src/components/CorrectedImageViewer.vue | 9 +- .../{ResultViewer.vue => DeskewViewer.vue} | 475 ++++-------------- src/components/MeasureViewer.vue | 372 ++++++++++++++ src/components/StepIndicator.vue | 3 +- src/lib/measurement-cache.ts | 52 ++ src/stores/app.ts | 13 +- src/types/index.ts | 2 +- 9 files changed, 564 insertions(+), 383 deletions(-) rename src/components/{ResultViewer.vue => DeskewViewer.vue} (63%) create mode 100644 src/components/MeasureViewer.vue diff --git a/src/App.vue b/src/App.vue index 046eddc..e8636f7 100644 --- a/src/App.vue +++ b/src/App.vue @@ -4,7 +4,8 @@ import StepIndicator from "@/components/StepIndicator.vue" import ImageUpload from "@/components/ImageUpload.vue" import ExifViewer from "@/components/ExifViewer.vue" import DatumEditor from "@/components/DatumEditor.vue" -import ResultViewer from "@/components/ResultViewer.vue" +import DeskewViewer from "@/components/DeskewViewer.vue" +import MeasureViewer from "@/components/MeasureViewer.vue" import ThemeToggle from "@/components/ThemeToggle.vue" import SkwikLogo from "@/components/SkwikLogo.vue" @@ -50,15 +51,19 @@ const store = useAppStore() -
+ +
- + +