From b93f778b2f7503ac23210566ebc5d10486671410 Mon Sep 17 00:00:00 2001 From: Jude Danbo Date: Sun, 21 Jun 2026 11:51:31 +0000 Subject: [PATCH 1/2] fix(ui): make plain inputs focusable on click in scroll dialogs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit DialogScrollContent nests the content inside DialogOverlay (so the backdrop can scroll), unlike the standard DialogContent where the two are siblings. reka's DialogOverlay registers `@pointerdown.left.prevent`, so a pointerdown on a plain bubbles to the overlay and gets its default prevented. That suppresses the compatibility mousedown event, which is what natively focuses an input — so clicking the field did nothing while clicking the label (native `for=`) still worked. Stop pointerdown propagation at the content so it never reaches the overlay handler. Outside-click dismissal is unaffected: it keys off the pointerdown target being outside the content, not on bubbling through it. Affected the Designation field in the applicant OfficeFormDialog (the only plain text input there); the fix lives in the shared primitive so it repairs every scroll dialog containing a plain input. Co-Authored-By: Claude Opus 4.8 (1M context) --- app/components/ui/dialog/DialogScrollContent.vue | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/app/components/ui/dialog/DialogScrollContent.vue b/app/components/ui/dialog/DialogScrollContent.vue index f6b6dab..4c0e0ee 100644 --- a/app/components/ui/dialog/DialogScrollContent.vue +++ b/app/components/ui/dialog/DialogScrollContent.vue @@ -30,6 +30,17 @@ const forwarded = useForwardPropsEmits(delegatedProps, emits) + used to bubble up to the overlay and get its default prevented — which +// suppresses the compatibility mousedown and stops the input from focusing on +// click (only the