From 27a11a0f6b83ee5c37dd559eba014bdad713674e Mon Sep 17 00:00:00 2001 From: Aleksander Grygier Date: Wed, 16 Sep 2026 19:07:15 +0200 Subject: [PATCH] ui : render shared model row hints as native titles Assisted-by: pi:llama.cpp/DeepSeek-V4.1-Flash --- .../components/app/actions/ActionIcon.svelte | 7 ++- .../lib/components/app/models/ModelId.svelte | 4 ++ .../discover/ModelsDiscoverAvatar.svelte | 57 +++++++++---------- 3 files changed, 35 insertions(+), 33 deletions(-) diff --git a/tools/ui/src/lib/components/app/actions/ActionIcon.svelte b/tools/ui/src/lib/components/app/actions/ActionIcon.svelte index 0ed22d932c..3116fc530d 100644 --- a/tools/ui/src/lib/components/app/actions/ActionIcon.svelte +++ b/tools/ui/src/lib/components/app/actions/ActionIcon.svelte @@ -15,8 +15,9 @@ size?: ButtonSize; stopPropagationOnClick?: boolean; tooltip?: string; - variant?: ButtonVariant; + tooltipAsTitle?: boolean; tooltipSide?: TooltipSide; + variant?: ButtonVariant; } let { @@ -30,12 +31,13 @@ size = 'sm', stopPropagationOnClick = false, tooltip, + tooltipAsTitle = false, tooltipSide = TooltipSide.TOP, variant = 'ghost' }: Props = $props(); let innerWidth = $state(0); - const showTooltip = $derived(!!tooltip && innerWidth > 768); + const showTooltip = $derived(!!tooltip && !tooltipAsTitle && innerWidth > 768); {#snippet button(props = {})} @@ -51,6 +53,7 @@ onclick?.(e); }} {size} + title={tooltipAsTitle ? tooltip : undefined} {variant} > {#if icon} diff --git a/tools/ui/src/lib/components/app/models/ModelId.svelte b/tools/ui/src/lib/components/app/models/ModelId.svelte index b75d7a7fd1..d346cffa18 100644 --- a/tools/ui/src/lib/components/app/models/ModelId.svelte +++ b/tools/ui/src/lib/components/app/models/ModelId.svelte @@ -29,6 +29,8 @@ modalities?: ModelModalities; supportsThinking?: boolean; supportsToolUse?: boolean; + /** Native title for the root element; keeps long lists light where a floating tooltip per row is too costly. */ + title?: string; /** Context length in tokens; renders a context icon when set. */ contextLength?: number; /** Min/max GGUF file size (main + draft) across quants; renders a range when set. */ @@ -60,6 +62,7 @@ supportsThinking = false, supportsToolUse = false, tags, + title, wrap = false, ...rest }: Props = $props(); @@ -169,6 +172,7 @@ class="flex min-w-0 items-center gap-1.5 {wrap ? 'flex-wrap' : ''} {iconsOnNewLine ? 'flex-col items-start' : ''} {className}" + {title} {...rest} > diff --git a/tools/ui/src/lib/components/app/models/discover/ModelsDiscoverAvatar.svelte b/tools/ui/src/lib/components/app/models/discover/ModelsDiscoverAvatar.svelte index fd2dd70426..8523f0685b 100644 --- a/tools/ui/src/lib/components/app/models/discover/ModelsDiscoverAvatar.svelte +++ b/tools/ui/src/lib/components/app/models/discover/ModelsDiscoverAvatar.svelte @@ -1,5 +1,4 @@