From e6d1b633859804bdf85a778141771dd9474de02e Mon Sep 17 00:00:00 2001 From: Aleksander Grygier Date: Fri, 21 Aug 2026 08:46:53 +0200 Subject: [PATCH] ui : improve chat tabs carousel UX Scroll newly added tabs into view, fade overflowing tabs at the edges, and hide the New chat button while a new-chat tab is open. Assisted-by: pi --- .../app/chat/ChatTabs/ChatTabs.svelte | 142 +++++++++--------- 1 file changed, 75 insertions(+), 67 deletions(-) diff --git a/tools/ui/src/lib/components/app/chat/ChatTabs/ChatTabs.svelte b/tools/ui/src/lib/components/app/chat/ChatTabs/ChatTabs.svelte index ec53e735fe..53daaefd70 100644 --- a/tools/ui/src/lib/components/app/chat/ChatTabs/ChatTabs.svelte +++ b/tools/ui/src/lib/components/app/chat/ChatTabs/ChatTabs.svelte @@ -1,11 +1,12 @@ @@ -60,67 +78,57 @@ : 'max-w-[calc(100vw-4.5rem)]'}" aria-label="Open conversations" > -
- + {#each tabs as tab (tab.id)} + tabsStore.activate(id)} + onClose={handleClose} + onStop={handleStop} + onAuxClick={handleAuxClick} + /> + {/each} + + {#if showNewChatButton} + + + {#snippet child({ props })} + + {/snippet} + + + +

New chat

+
+
+ {/if} +
-
- {#each tabs as tab (tab.id)} - tabsStore.activate(id)} - onClose={handleClose} - onStop={handleStop} - onAuxClick={handleAuxClick} - /> - {/each} - - {#if showNewChatButton} - - - {#snippet child({ props })} - - {/snippet} - - - -

New chat

-
-
- {/if} -
-
- - + : 'opacity-0'}" + >
+