From b03bbe132e30f55e4e9ba9d5358ec24eda64cab3 Mon Sep 17 00:00:00 2001 From: Till JS Date: Wed, 15 Apr 2026 00:58:46 +0200 Subject: [PATCH] feat(shared-ui): unify bottom-stack bars with shared Pill component - Extract Pill.svelte as the single visual primitive (44px, icon+label, active/primary/danger variants) used by PillDropdownBar and TagStrip. PillNav keeps its own internal .pill class (36px, icon-only-oriented). - Extract phosphor-icon-map.ts to deduplicate the icon lookup tables that previously lived inline in PillDropdownBar. - Unify bar slot heights in (app)/+layout.svelte: 56px PillNav, 64px for tags / quickinput / tabbar / dropdown-bar. Remove debug outlines. Collapse bottom-stack gap so bars sit flush below PillNav. - SceneAppBar wrapped in 64px slot, scene-pill/app-tab 40px to match. - Enforce single-bar policy: opening one bar closes the others. - QuickInputBar strip-down: remove leading CheckSquare icon and trailing nav-toggle snippet; bar is pure search input now. - Move user-menu (last PillNav pill) to bar-mode with short content: Einstellungen, Light/Dark/System segmented, Theme, Logout. - Swap tabs nav icon from Columns to Cards for better readability. Co-Authored-By: Claude Opus 4.6 (1M context) --- .../components/workbench/SceneAppBar.svelte | 144 +++++----- packages/shared-ui/src/navigation/Pill.svelte | 172 ++++++++++++ .../src/navigation/PillDropdownBar.svelte | 254 +++--------------- .../shared-ui/src/navigation/TagStrip.svelte | 209 ++++---------- packages/shared-ui/src/navigation/index.ts | 1 + .../src/navigation/phosphor-icon-map.ts | 126 +++++++++ .../shared-ui/src/quick-input/InputBar.svelte | 21 +- 7 files changed, 467 insertions(+), 460 deletions(-) create mode 100644 packages/shared-ui/src/navigation/Pill.svelte create mode 100644 packages/shared-ui/src/navigation/phosphor-icon-map.ts diff --git a/apps/mana/apps/web/src/lib/components/workbench/SceneAppBar.svelte b/apps/mana/apps/web/src/lib/components/workbench/SceneAppBar.svelte index ca2fbea74..497d6c70d 100644 --- a/apps/mana/apps/web/src/lib/components/workbench/SceneAppBar.svelte +++ b/apps/mana/apps/web/src/lib/components/workbench/SceneAppBar.svelte @@ -68,91 +68,101 @@ } -
- {#each scenes as scene (scene.id)} - {@const isActive = scene.id === activeSceneId} +
+
+ {#each scenes as scene (scene.id)} + {@const isActive = scene.id === activeSceneId} - {#if isActive && pages.length > 0} - -
+ {#if isActive && pages.length > 0} + +
+ + + {#each pages as p (p.id)} + {@const AppIcon = p.icon} + + {/each} + +
+ {:else} - - {#each pages as p (p.id)} - {@const AppIcon = p.icon} - - {/each} - +
{:else} - {/if} - {/each} - - {#if creating} -
- - - -
- {:else} - - {/if} +
diff --git a/packages/shared-ui/src/navigation/PillDropdownBar.svelte b/packages/shared-ui/src/navigation/PillDropdownBar.svelte index 694f0766d..cce484ccd 100644 --- a/packages/shared-ui/src/navigation/PillDropdownBar.svelte +++ b/packages/shared-ui/src/navigation/PillDropdownBar.svelte @@ -1,125 +1,7 @@