From 55b7a8a2ef2fb606717b0d7046e0f26b6581d769 Mon Sep 17 00:00:00 2001 From: Till JS Date: Sun, 12 Apr 2026 21:46:39 +0200 Subject: [PATCH] feat(pillnav): compact nav with user menu overlay panel Replace inline PillDropdownBar for user menu with a centered overlay panel (UserMenuPanel). Move AI tier, theme, and language selectors into the panel. Make app switcher and user pill icon-only. AI section split into "Textgenerierung" and "Spracherkennung" subsections. - AppDrawer trigger: icon-only (no label/chevron) - User pill: icon-only, opens overlay panel instead of bar - Theme + AI pills removed from nav bar (now in user panel) - UserMenuPanel: centered on desktop, bottom-sheet on mobile - Login button in footer, structured sections with subsection headers Co-Authored-By: Claude Opus 4.6 (1M context) --- .../shared-ui/src/navigation/AppDrawer.svelte | 39 +- .../src/navigation/PillNavigation.svelte | 625 +++------------ .../src/navigation/UserMenuPanel.svelte | 757 ++++++++++++++++++ packages/shared-ui/src/navigation/index.ts | 1 + 4 files changed, 887 insertions(+), 535 deletions(-) create mode 100644 packages/shared-ui/src/navigation/UserMenuPanel.svelte diff --git a/packages/shared-ui/src/navigation/AppDrawer.svelte b/packages/shared-ui/src/navigation/AppDrawer.svelte index b4feb1599..0203b1d61 100644 --- a/packages/shared-ui/src/navigation/AppDrawer.svelte +++ b/packages/shared-ui/src/navigation/AppDrawer.svelte @@ -99,25 +99,16 @@ + + diff --git a/packages/shared-ui/src/navigation/index.ts b/packages/shared-ui/src/navigation/index.ts index 3c183847e..ae025919c 100644 --- a/packages/shared-ui/src/navigation/index.ts +++ b/packages/shared-ui/src/navigation/index.ts @@ -6,6 +6,7 @@ export { default as PillNavigation } from './PillNavigation.svelte'; export { default as PillDropdown } from './PillDropdown.svelte'; export { default as PillDropdownBar } from './PillDropdownBar.svelte'; export { default as AppDrawer } from './AppDrawer.svelte'; +export { default as UserMenuPanel } from './UserMenuPanel.svelte'; export { default as GlobalSpotlight } from './GlobalSpotlight.svelte'; export { createGlobalSpotlightState } from './useGlobalSpotlight.svelte'; export {