From 2d8599b62f2e47321af595b25d05fbdeee59b66f Mon Sep 17 00:00:00 2001 From: dev Date: Sat, 23 May 2026 00:00:24 +0200 Subject: [PATCH] fix(dropdown-menu, context-menu): keep menu open on CheckboxItem / RadioItem activation MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Soma's MenuCheckboxItem / MenuRadioItem default `closeOnSelect=true` (matches Radix Primitives), but for toggle-state items that's the wrong UX default — the user wants to flip multiple checkboxes or switch a radio choice without re-opening the menu each time. Override the default in the eidos wrappers for both DropdownMenu and ContextMenu (4 components total: CheckboxItem + RadioItem in each). Activating Item (plain command) still closes by default; only the state-toggle parts stay open. Consumers who genuinely want close-on-toggle can pass `closeOnSelect={true}` explicitly. Co-Authored-By: Claude Opus 4.7 (1M context) --- .../context-menu-checkbox-item.svelte | 8 +++++++- .../context-menu/context-menu-radio-item.svelte | 13 +++++++++++-- .../dropdown-menu-checkbox-item.svelte | 11 ++++++++++- .../dropdown-menu/dropdown-menu-radio-item.svelte | 15 +++++++++++++-- 4 files changed, 41 insertions(+), 6 deletions(-) diff --git a/src/uix/eidos/components/context-menu/context-menu-checkbox-item.svelte b/src/uix/eidos/components/context-menu/context-menu-checkbox-item.svelte index 10476f612..52099b1e1 100644 --- a/src/uix/eidos/components/context-menu/context-menu-checkbox-item.svelte +++ b/src/uix/eidos/components/context-menu/context-menu-checkbox-item.svelte @@ -1,15 +1,21 @@ - + {#snippet children(snippetProps)} {@render bodyContent?.(snippetProps)} {/snippet} diff --git a/src/uix/eidos/components/context-menu/context-menu-radio-item.svelte b/src/uix/eidos/components/context-menu/context-menu-radio-item.svelte index 4a97b14b2..5b55d7637 100644 --- a/src/uix/eidos/components/context-menu/context-menu-radio-item.svelte +++ b/src/uix/eidos/components/context-menu/context-menu-radio-item.svelte @@ -1,11 +1,20 @@ - + {#snippet children(snippetProps)} {@render bodyContent?.(snippetProps)} {/snippet} diff --git a/src/uix/eidos/components/dropdown-menu/dropdown-menu-checkbox-item.svelte b/src/uix/eidos/components/dropdown-menu/dropdown-menu-checkbox-item.svelte index d66ef0528..08b421b12 100644 --- a/src/uix/eidos/components/dropdown-menu/dropdown-menu-checkbox-item.svelte +++ b/src/uix/eidos/components/dropdown-menu/dropdown-menu-checkbox-item.svelte @@ -1,15 +1,24 @@ - + {#snippet children(snippetProps)} {@render bodyContent?.(snippetProps)} {/snippet} diff --git a/src/uix/eidos/components/dropdown-menu/dropdown-menu-radio-item.svelte b/src/uix/eidos/components/dropdown-menu/dropdown-menu-radio-item.svelte index 949bc2ae9..e174a7647 100644 --- a/src/uix/eidos/components/dropdown-menu/dropdown-menu-radio-item.svelte +++ b/src/uix/eidos/components/dropdown-menu/dropdown-menu-radio-item.svelte @@ -1,11 +1,22 @@ - + {#snippet children(snippetProps)} {@render bodyContent?.(snippetProps)} {/snippet}