From 66b03c9108700b893aff70a94cf1fe39acb25d00 Mon Sep 17 00:00:00 2001 From: Justin Edmund Date: Sun, 30 Nov 2025 06:02:50 -0800 Subject: [PATCH] fix dropdown trigger props, add onClose alias to sidebar --- src/lib/components/ui/DropdownMenu.svelte | 10 ++++++++-- src/lib/components/ui/Sidebar.svelte | 11 ++++++++--- 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/src/lib/components/ui/DropdownMenu.svelte b/src/lib/components/ui/DropdownMenu.svelte index ba6ea0fa..a6e30bd9 100644 --- a/src/lib/components/ui/DropdownMenu.svelte +++ b/src/lib/components/ui/DropdownMenu.svelte @@ -2,8 +2,12 @@ import { DropdownMenu as DropdownMenuBase } from 'bits-ui' import type { Snippet } from 'svelte' + interface TriggerProps { + props: Record + } + interface DropdownMenuProps { - trigger: Snippet + trigger: Snippet<[TriggerProps]> menu: Snippet open?: boolean } @@ -13,7 +17,9 @@ - {@render trigger()} + {#snippet child({ props })} + {@render trigger({ props })} + {/snippet} diff --git a/src/lib/components/ui/Sidebar.svelte b/src/lib/components/ui/Sidebar.svelte index 8bdce188..2717d24c 100644 --- a/src/lib/components/ui/Sidebar.svelte +++ b/src/lib/components/ui/Sidebar.svelte @@ -10,7 +10,9 @@ open?: boolean /** Title for the sidebar header */ title?: string - /** Callback when close is requested */ + /** Callback when close is requested (camelCase preferred) */ + onClose?: () => void + /** Callback when close is requested (lowercase, deprecated - use onClose) */ onclose?: () => void /** Content to render in the sidebar */ children?: Snippet @@ -20,12 +22,15 @@ scrollable?: boolean } - const { open = false, title, onclose, children, headerActions, scrollable = true }: Props = $props() + const { open = false, title, onClose, onclose, children, headerActions, scrollable = true }: Props = $props() + + // Support both onClose (camelCase) and onclose (lowercase) for backward compatibility + const handleClose = $derived(onClose ?? onclose)