diff options
| author | Daniel Polito <[email protected]> | 2026-01-13 12:41:35 -0300 |
|---|---|---|
| committer | Frank <[email protected]> | 2026-01-13 19:50:49 -0500 |
| commit | 3c9d80d75f8cd506c776b3d2f753d28d6f81d1cd (patch) | |
| tree | c12d4de08278fb44e31521dcc8c6ab311eee5938 /packages/ui/src | |
| parent | a761f66a16dc0a2b116477c328d8a49f5c0a947a (diff) | |
| download | opencode-3c9d80d75f8cd506c776b3d2f753d28d6f81d1cd.tar.gz opencode-3c9d80d75f8cd506c776b3d2f753d28d6f81d1cd.zip | |
feat(desktop): Adding Provider Icons (#8215)
Diffstat (limited to 'packages/ui/src')
| -rw-r--r-- | packages/ui/src/components/button.css | 3 | ||||
| -rw-r--r-- | packages/ui/src/components/list.tsx | 12 | ||||
| -rw-r--r-- | packages/ui/src/components/session-turn.tsx | 10 |
3 files changed, 19 insertions, 6 deletions
diff --git a/packages/ui/src/components/button.css b/packages/ui/src/components/button.css index 800795e87..c25b89af9 100644 --- a/packages/ui/src/components/button.css +++ b/packages/ui/src/components/button.css @@ -123,13 +123,13 @@ &[data-size="normal"] { height: 24px; + line-height: 24px; padding: 0 6px; &[data-icon] { padding: 0 12px 0 4px; } font-size: var(--font-size-small); - line-height: var(--line-height-large); gap: 6px; /* text-12-medium */ @@ -137,7 +137,6 @@ font-size: var(--font-size-small); font-style: normal; font-weight: var(--font-weight-medium); - line-height: var(--line-height-large); /* 166.667% */ letter-spacing: var(--letter-spacing-normal); } diff --git a/packages/ui/src/components/list.tsx b/packages/ui/src/components/list.tsx index 1283b3023..8c92728d7 100644 --- a/packages/ui/src/components/list.tsx +++ b/packages/ui/src/components/list.tsx @@ -10,9 +10,15 @@ export interface ListSearchProps { autofocus?: boolean } +export interface ListGroup<T> { + category: string + items: T[] +} + export interface ListProps<T> extends FilteredListProps<T> { class?: string children: (item: T) => JSX.Element + groupHeader?: (group: ListGroup<T>) => JSX.Element emptyMessage?: string onKeyEvent?: (event: KeyboardEvent, item: T | undefined) => void onMove?: (item: T | undefined) => void @@ -116,7 +122,7 @@ export function List<T>(props: ListProps<T> & { ref?: (ref: ListRef) => void }) setScrollRef, }) - function GroupHeader(props: { category: string }): JSX.Element { + function GroupHeader(groupProps: { category: string; children?: JSX.Element }): JSX.Element { const [stuck, setStuck] = createSignal(false) const [header, setHeader] = createSignal<HTMLDivElement | undefined>(undefined) @@ -138,7 +144,7 @@ export function List<T>(props: ListProps<T> & { ref?: (ref: ListRef) => void }) return ( <div data-slot="list-header" data-stuck={stuck()} ref={setHeader}> - {props.category} + {groupProps.children ?? groupProps.category} </div> ) } @@ -185,7 +191,7 @@ export function List<T>(props: ListProps<T> & { ref?: (ref: ListRef) => void }) {(group) => ( <div data-slot="list-group"> <Show when={group.category}> - <GroupHeader category={group.category} /> + <GroupHeader category={group.category}>{props.groupHeader?.(group)}</GroupHeader> </Show> <div data-slot="list-items"> <For each={group.items}> diff --git a/packages/ui/src/components/session-turn.tsx b/packages/ui/src/components/session-turn.tsx index 9947578b9..ae1321bac 100644 --- a/packages/ui/src/components/session-turn.tsx +++ b/packages/ui/src/components/session-turn.tsx @@ -22,6 +22,8 @@ import { Accordion } from "./accordion" import { StickyAccordionHeader } from "./sticky-accordion-header" import { FileIcon } from "./file-icon" import { Icon } from "./icon" +import { ProviderIcon } from "./provider-icon" +import type { IconName } from "./provider-icons/types" import { IconButton } from "./icon-button" import { Tooltip } from "./tooltip" import { Card } from "./card" @@ -498,7 +500,13 @@ export function SessionTurn( <span data-slot="session-turn-badge">{(msg() as UserMessage).agent}</span> </Show> <Show when={(msg() as UserMessage).model?.modelID}> - <span data-slot="session-turn-badge">{(msg() as UserMessage).model?.modelID}</span> + <span data-slot="session-turn-badge" class="inline-flex items-center gap-1"> + <ProviderIcon + id={(msg() as UserMessage).model!.providerID as IconName} + class="size-3.5 shrink-0" + /> + {(msg() as UserMessage).model?.modelID} + </span> </Show> <span data-slot="session-turn-badge">{(msg() as UserMessage).variant || "default"}</span> </div> |
