From d348697f264cac56e89fc330d9993ed3fb7f189c Mon Sep 17 00:00:00 2001 From: h Date: Fri, 16 Oct 2026 04:38:27 +0000 Subject: [PATCH] fix(keys): escape closes palette and cheatsheet, page keys stay quiet behind a modal --- src/lib/components/shell/Shell.svelte | 5 +++++ src/lib/keys.svelte.ts | 6 +++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/src/lib/components/shell/Shell.svelte b/src/lib/components/shell/Shell.svelte index 8abf8fb..f004dda 100644 --- a/src/lib/components/shell/Shell.svelte +++ b/src/lib/components/shell/Shell.svelte @@ -140,6 +140,11 @@ keys: "Escape", label: "Leave field", run: (event) => { + if (ui.palette || keys.sheetOpen) { + ui.palette = false; + keys.sheetOpen = false; + return; + } if (isEditable(event.target)) { (event.target as HTMLElement).blur(); } diff --git a/src/lib/keys.svelte.ts b/src/lib/keys.svelte.ts index 12dfe4d..7ad48e0 100644 --- a/src/lib/keys.svelte.ts +++ b/src/lib/keys.svelte.ts @@ -88,7 +88,11 @@ class Keys { } handle = (event: KeyboardEvent) => { - if (event.defaultPrevented || event.isComposing) { + if ( + event.defaultPrevented || + event.isComposing || + document.querySelector("dialog:modal") + ) { return; } if (["Shift", "Control", "Meta", "Alt"].includes(event.key)) {