From b87283832946dab872faa643ebcec5b405446ed6 Mon Sep 17 00:00:00 2001 From: Pascal Date: Fri, 30 Jan 2026 20:20:39 +0100 Subject: [PATCH] webui: adaptive model selector dropdown width Make model selector dropdown responsive: - Mobile: full width (w-full max-w-[100vw]) - Desktop: adapts to longest model name (sm:w-max) - Replace TruncatedText with responsive span (truncate on mobile, full text on desktop via sm:overflow-visible sm:whitespace-nowrap) - Center status icons in fixed 24px wrapper to prevent layout shifts - Add sm:pr-2 padding between text and icon zone on desktop Fixes dropdown cutting off long model names on desktop while maintaining full-width display on mobile with proper text truncation --- .../app/models/ModelsSelector.svelte | 86 +++++++++++-------- 1 file changed, 48 insertions(+), 38 deletions(-) diff --git a/tools/server/webui/src/lib/components/app/models/ModelsSelector.svelte b/tools/server/webui/src/lib/components/app/models/ModelsSelector.svelte index 499c633897..bd63a34e79 100644 --- a/tools/server/webui/src/lib/components/app/models/ModelsSelector.svelte +++ b/tools/server/webui/src/lib/components/app/models/ModelsSelector.svelte @@ -268,7 +268,7 @@ placeholder="Search models..." onSearchKeyDown={handleSearchKeyDown} align="end" - contentClass="w-96 max-w-[calc(100vw-2rem)]" + contentClass="w-full max-w-[100vw] sm:w-max sm:max-w-[calc(100vw-2rem)]" emptyMessage="No models found." isEmpty={filteredOptions.length === 0 && isCurrentModelInCache()} disabled={disabled || updating} @@ -316,7 +316,11 @@ aria-disabled="true" disabled > - {selectedOption?.name || currentModel} + + {selectedOption?.name || currentModel} + (not available)
@@ -352,43 +356,49 @@ } }} > - + + {option.model} + - {#if isLoading} - - - - - -

Loading model...

-
-
- {:else if isLoaded} - - - - - -

Unload model

-
-
- {:else} - - {/if} +
+ {#if isLoading} + + + + + +

Loading model...

+
+
+ {:else if isLoaded} + + + + + +

Unload model

+
+
+ {:else} + + {/if} +
{/each}