From 497e71d63c6713eed85f67ce81c075bd2e6960d4 Mon Sep 17 00:00:00 2001 From: Samuel Prevost Date: Fri, 24 Apr 2026 18:22:56 +0200 Subject: [PATCH] feat(measurements): larger canvas, always-visible handles, fewer clicks MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Canvas fills the viewport (h-[calc(100vh-12rem)] on desktop, -14rem on mobile), matching the datum-editor precedent. The side panel tracks the same height so both read as equal-height siblings. - Handles are now visible on every measurement, not just the selected one. Unselected: small (3px), low-alpha, faint white ring. Selected endpoints: 6.5px with a thick ring. Selected primary handles (ellipse center / angle vertex): 8px. The invisible grab radius is 14px so the tiny unselected dots are still easy to target. - Selected handles keep their palette color (previously they went white along with the lines, so a selected handle disappeared on light backgrounds). Matches DatumCanvas's look. - Hit-test priority is explicit: handles beat geometry, so a precision grab on an endpoint always wins over a line-body drag — including on an unselected measurement, which promotes to select-and-drag in a single gesture. - Removed the on-canvas delete button next to the selected label. The side-panel row × and Delete/Backspace still work. HitResult.kind drops its "delete" variant; the matching draw + dispatch blocks and the dedicated hit region are gone. Co-Authored-By: Claude Opus 4.7 (1M context) --- src/components/CorrectedImageViewer.vue | 185 +++++++++++------------- 1 file changed, 86 insertions(+), 99 deletions(-) diff --git a/src/components/CorrectedImageViewer.vue b/src/components/CorrectedImageViewer.vue index 9a52c95..630f814 100644 --- a/src/components/CorrectedImageViewer.vue +++ b/src/components/CorrectedImageViewer.vue @@ -1,5 +1,6 @@