From 0cb08678ffead285afb1f93ba50cd5a144ed5e7d Mon Sep 17 00:00:00 2001 From: Adam Malczewski Date: Sun, 7 Jun 2026 14:35:53 +0900 Subject: feat(tabs): extract TabBar component with horizontal scroll + sticky end '+' Move inline tab-bar markup from the composition root into a thin presentational TabBar in the tabs feature (feature-as-a-library: pure reducer -> reactive store -> UI). Adds overflow-x scroll (min-w-max strip) and a sticky right-pinned new-chat '+' that floats over scrolling tabs. Draft-on-select / create-on-send behavior unchanged. --- src/app/App.svelte | 42 ++--------- src/features/tabs/index.ts | 1 + src/features/tabs/ui.test.ts | 148 +++++++++++++++++++++++++++++++++++++ src/features/tabs/ui/TabBar.svelte | 54 ++++++++++++++ 4 files changed, 211 insertions(+), 34 deletions(-) create mode 100644 src/features/tabs/ui.test.ts create mode 100644 src/features/tabs/ui/TabBar.svelte diff --git a/src/app/App.svelte b/src/app/App.svelte index 811dc75..cc9866e 100644 --- a/src/app/App.svelte +++ b/src/app/App.svelte @@ -1,6 +1,7 @@ + +
+
+ {#each tabs as tab (tab.conversationId)} + + {/each} + +
+
-- cgit v1.2.3