palabras(menubar): Enter en el popover de escape confirma y cierra

El campo confirmaba en vivo (oninput) pero Enter no cerraba el popover. Handler
onkeydown: Enter (no en textarea) hace blur (vuelca los que confirman en change:
number/length/select) + cierra. Textarea conserva Enter para salto de linea;
Esc / clic fuera tambien cierran. Verificado en Chrome real (Enlace: escribir +
Enter -> cierra con el valor puesto).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
menubar-v4-safe
dev 3 months ago
parent 6c10e78378
commit 83c7c9ed99

@ -142,18 +142,33 @@
>
{#if editField}
<span data-palabras-menu-pop-title>{eidos.langs.ts(editField.label)}</span>
<PalabrasPanel
{api}
{scheme}
{baseScheme}
{schemeName}
mode="menubar"
view="block"
menuField={editField.key}
content={contentEl}
open={true}
onClose={() => (editField = null)}
/>
<!-- Enter COMMITS + closes (single-line controls commit live on input;
blur first flushes the change-based ones — number / length / select).
A textarea keeps Enter for newlines; Esc / outside also close. -->
<!-- svelte-ignore a11y_no_static_element_interactions -->
<div
onkeydown={(e) => {
const t = e.target as HTMLElement;
if (e.key === 'Enter' && !e.shiftKey && t.tagName !== 'TEXTAREA') {
e.preventDefault();
t.blur?.();
editField = null;
}
}}
>
<PalabrasPanel
{api}
{scheme}
{baseScheme}
{schemeName}
mode="menubar"
view="block"
menuField={editField.key}
content={contentEl}
open={true}
onClose={() => (editField = null)}
/>
</div>
{/if}
</Popover.Content>
</Popover>

Loading…
Cancel
Save

Powered by TurnKey Linux.