diff --git a/frontend/src/lib/components/home/CreateActionsMenu.svelte b/frontend/src/lib/components/home/CreateActionsMenu.svelte
index 2cf1f28d54..49ff2bad87 100644
--- a/frontend/src/lib/components/home/CreateActionsMenu.svelte
+++ b/frontend/src/lib/components/home/CreateActionsMenu.svelte
@@ -247,7 +247,8 @@
}
}
- let activeKey = $state(allOptions[0]?.key)
+ // the doc panel only shows while an option is hovered or focused, so the menu opens compact
+ let activeKey: string | undefined = $state(undefined)
// every option's import action, surfaced together under the bottom "Import" submenu.
// The hub project leads and is separated below: the others each paste one artifact the
// user already holds, while this one brings a whole project in from somewhere else.
@@ -350,6 +351,7 @@
if (isOpen && !wasOpen) {
logFeatureUsage('home', 'new_menu_open', { key: source })
}
+ if (!isOpen) activeKey = undefined
wasOpen = isOpen
})
@@ -360,8 +362,8 @@
// only persist the non-default (hidden) state, so a cleared key means "shown"
storeLocalSetting(SHOW_DOC_SETTING, value ? undefined : 'false')
}
- let active = $derived(allOptions.find((o) => o.key === activeKey) ?? allOptions[0])
- let activeAc = $derived(accentClasses[active.accent])
+ let active = $derived(allOptions.find((o) => o.key === activeKey))
+ let activeAc = $derived(active ? accentClasses[active.accent] : undefined)
// shared YAML/JSON import drawer, reused by every "Import …" extra
let importDrawer: Drawer | undefined = $state(undefined)
@@ -427,179 +429,192 @@
{/if}
-{#if $open && active}
+{#if $open}
+