diff options
| author | Adam <[email protected]> | 2026-03-12 20:49:44 -0500 |
|---|---|---|
| committer | Adam <[email protected]> | 2026-03-12 22:23:51 -0500 |
| commit | d961981e25b77e13a2f0afd4dcf3808222ed581b (patch) | |
| tree | 79a53f5818eef1ff081ddff58e046cbdc7a85cb9 /packages/app/src/components | |
| parent | 55766622001b0c1e048c93c06cb3f7a0a3e9fd94 (diff) | |
| download | opencode-d961981e25b77e13a2f0afd4dcf3808222ed581b.tar.gz opencode-d961981e25b77e13a2f0afd4dcf3808222ed581b.zip | |
fix(app): list item background colors
Diffstat (limited to 'packages/app/src/components')
6 files changed, 33 insertions, 24 deletions
diff --git a/packages/app/src/components/dialog-select-server.tsx b/packages/app/src/components/dialog-select-server.tsx index cba401a46..655aba0b0 100644 --- a/packages/app/src/components/dialog-select-server.tsx +++ b/packages/app/src/components/dialog-select-server.tsx @@ -121,7 +121,7 @@ function ServerForm(props: ServerFormProps) { return ( <div class="px-5"> - <div class="bg-surface-raised-base rounded-md p-5 flex flex-col gap-3"> + <div class="bg-surface-base rounded-md p-5 flex flex-col gap-3"> <div class="flex-1 min-w-0 [&_[data-slot=input-wrapper]]:relative"> <TextField type="text" @@ -542,7 +542,7 @@ export function DialogSelectServer() { if (x) select(x) }} divider={true} - class="px-5 [&_[data-slot=list-search-wrapper]]:w-full [&_[data-slot=list-scroll]]h-[300px] [&_[data-slot=list-scroll]]:overflow-y-auto [&_[data-slot=list-items]]:bg-surface-raised-base [&_[data-slot=list-items]]:rounded-md [&_[data-slot=list-item]]:min-h-14 [&_[data-slot=list-item]]:p-3 [&_[data-slot=list-item]]:!bg-transparent" + class="px-5 [&_[data-slot=list-search-wrapper]]:w-full [&_[data-slot=list-scroll]]h-[300px] [&_[data-slot=list-scroll]]:overflow-y-auto [&_[data-slot=list-items]]:bg-surface-base [&_[data-slot=list-items]]:rounded-md [&_[data-slot=list-item]]:min-h-14 [&_[data-slot=list-item]]:p-3 [&_[data-slot=list-item]]:!bg-transparent" > {(i) => { const key = ServerConnection.key(i) diff --git a/packages/app/src/components/settings-general.tsx b/packages/app/src/components/settings-general.tsx index 16689bfe2..b768bafcc 100644 --- a/packages/app/src/components/settings-general.tsx +++ b/packages/app/src/components/settings-general.tsx @@ -12,6 +12,7 @@ import { usePlatform } from "@/context/platform" import { useSettings, monoFontFamily } from "@/context/settings" import { playSound, SOUND_OPTIONS } from "@/utils/sound" import { Link } from "./link" +import { SettingsList } from "./settings-list" let demoSoundState = { cleanup: undefined as (() => void) | undefined, @@ -177,7 +178,7 @@ export const SettingsGeneral: Component = () => { const GeneralSection = () => ( <div class="flex flex-col gap-1"> - <div class="bg-surface-raised-base px-4 rounded-lg"> + <SettingsList> <SettingsRow title={language.t("settings.general.row.language.title")} description={language.t("settings.general.row.language.description")} @@ -248,7 +249,7 @@ export const SettingsGeneral: Component = () => { triggerStyle={{ "min-width": "180px" }} /> </SettingsRow> - </div> + </SettingsList> </div> ) @@ -256,7 +257,7 @@ export const SettingsGeneral: Component = () => { <div class="flex flex-col gap-1"> <h3 class="text-14-medium text-text-strong pb-2">{language.t("settings.general.section.appearance")}</h3> - <div class="bg-surface-raised-base px-4 rounded-lg"> + <SettingsList> <SettingsRow title={language.t("settings.general.row.colorScheme.title")} description={language.t("settings.general.row.colorScheme.description")} @@ -333,7 +334,7 @@ export const SettingsGeneral: Component = () => { )} </Select> </SettingsRow> - </div> + </SettingsList> </div> ) @@ -341,7 +342,7 @@ export const SettingsGeneral: Component = () => { <div class="flex flex-col gap-1"> <h3 class="text-14-medium text-text-strong pb-2">{language.t("settings.general.section.notifications")}</h3> - <div class="bg-surface-raised-base px-4 rounded-lg"> + <SettingsList> <SettingsRow title={language.t("settings.general.notifications.agent.title")} description={language.t("settings.general.notifications.agent.description")} @@ -377,7 +378,7 @@ export const SettingsGeneral: Component = () => { /> </div> </SettingsRow> - </div> + </SettingsList> </div> ) @@ -385,7 +386,7 @@ export const SettingsGeneral: Component = () => { <div class="flex flex-col gap-1"> <h3 class="text-14-medium text-text-strong pb-2">{language.t("settings.general.section.sounds")}</h3> - <div class="bg-surface-raised-base px-4 rounded-lg"> + <SettingsList> <SettingsRow title={language.t("settings.general.sounds.agent.title")} description={language.t("settings.general.sounds.agent.description")} @@ -430,7 +431,7 @@ export const SettingsGeneral: Component = () => { )} /> </SettingsRow> - </div> + </SettingsList> </div> ) @@ -438,7 +439,7 @@ export const SettingsGeneral: Component = () => { <div class="flex flex-col gap-1"> <h3 class="text-14-medium text-text-strong pb-2">{language.t("settings.general.section.updates")}</h3> - <div class="bg-surface-raised-base px-4 rounded-lg"> + <SettingsList> <SettingsRow title={language.t("settings.updates.row.startup.title")} description={language.t("settings.updates.row.startup.description")} @@ -474,7 +475,7 @@ export const SettingsGeneral: Component = () => { : language.t("settings.updates.action.checkNow")} </Button> </SettingsRow> - </div> + </SettingsList> </div> ) @@ -504,7 +505,7 @@ export const SettingsGeneral: Component = () => { <div class="flex flex-col gap-1"> <h3 class="text-14-medium text-text-strong pb-2">{language.t("settings.desktop.section.wsl")}</h3> - <div class="bg-surface-raised-base px-4 rounded-lg"> + <SettingsList> <SettingsRow title={language.t("settings.desktop.wsl.title")} description={language.t("settings.desktop.wsl.description")} @@ -517,7 +518,7 @@ export const SettingsGeneral: Component = () => { /> </div> </SettingsRow> - </div> + </SettingsList> </div> ) }} @@ -537,7 +538,7 @@ export const SettingsGeneral: Component = () => { <div class="flex flex-col gap-1"> <h3 class="text-14-medium text-text-strong pb-2">{language.t("settings.general.section.display")}</h3> - <div class="bg-surface-raised-base px-4 rounded-lg"> + <SettingsList> <SettingsRow title={ <div class="flex items-center gap-2"> @@ -555,7 +556,7 @@ export const SettingsGeneral: Component = () => { <Switch checked={value() === "wayland"} onChange={onChange} /> </div> </SettingsRow> - </div> + </SettingsList> </div> ) }} diff --git a/packages/app/src/components/settings-keybinds.tsx b/packages/app/src/components/settings-keybinds.tsx index 94bc76d76..1e4244789 100644 --- a/packages/app/src/components/settings-keybinds.tsx +++ b/packages/app/src/components/settings-keybinds.tsx @@ -9,6 +9,7 @@ import fuzzysort from "fuzzysort" import { formatKeybind, parseKeybind, useCommand } from "@/context/command" import { useLanguage } from "@/context/language" import { useSettings } from "@/context/settings" +import { SettingsList } from "./settings-list" const IS_MAC = typeof navigator === "object" && /(Mac|iPod|iPhone|iPad)/.test(navigator.platform) const PALETTE_ID = "command.palette" @@ -406,7 +407,7 @@ export const SettingsKeybinds: Component = () => { <Show when={(filtered().get(group) ?? []).length > 0}> <div class="flex flex-col gap-1"> <h3 class="text-14-medium text-text-strong pb-2">{language.t(groupKey[group])}</h3> - <div class="bg-surface-raised-base px-4 rounded-lg"> + <SettingsList> <For each={filtered().get(group) ?? []}> {(id) => ( <div class="flex items-center justify-between gap-4 py-3 border-b border-border-weak-base last:border-none"> @@ -432,7 +433,7 @@ export const SettingsKeybinds: Component = () => { </div> )} </For> - </div> + </SettingsList> </div> </Show> )} diff --git a/packages/app/src/components/settings-list.tsx b/packages/app/src/components/settings-list.tsx new file mode 100644 index 000000000..bd8e4d7d1 --- /dev/null +++ b/packages/app/src/components/settings-list.tsx @@ -0,0 +1,5 @@ +import { type Component, type JSX } from "solid-js" + +export const SettingsList: Component<{ children: JSX.Element }> = (props) => { + return <div class="bg-surface-base px-4 rounded-lg">{props.children}</div> +} diff --git a/packages/app/src/components/settings-models.tsx b/packages/app/src/components/settings-models.tsx index eff62cd6c..14667338e 100644 --- a/packages/app/src/components/settings-models.tsx +++ b/packages/app/src/components/settings-models.tsx @@ -8,6 +8,7 @@ import { type Component, For, Show } from "solid-js" import { useLanguage } from "@/context/language" import { useModels } from "@/context/models" import { popularProviders } from "@/hooks/use-providers" +import { SettingsList } from "./settings-list" type ModelItem = ReturnType<ReturnType<typeof useModels>["list"]>[number] @@ -100,7 +101,7 @@ export const SettingsModels: Component = () => { <ProviderIcon id={group.category} class="size-5 shrink-0 icon-strong-base" /> <span class="text-14-medium text-text-strong">{group.items[0].provider.name}</span> </div> - <div class="bg-surface-raised-base px-4 rounded-lg"> + <SettingsList> <For each={group.items}> {(item) => { const key = { providerID: item.provider.id, modelID: item.id } @@ -124,7 +125,7 @@ export const SettingsModels: Component = () => { ) }} </For> - </div> + </SettingsList> </div> )} </For> diff --git a/packages/app/src/components/settings-providers.tsx b/packages/app/src/components/settings-providers.tsx index a9839758b..cc69327f8 100644 --- a/packages/app/src/components/settings-providers.tsx +++ b/packages/app/src/components/settings-providers.tsx @@ -11,6 +11,7 @@ import { useGlobalSync } from "@/context/global-sync" import { DialogConnectProvider } from "./dialog-connect-provider" import { DialogSelectProvider } from "./dialog-select-provider" import { DialogCustomProvider } from "./dialog-custom-provider" +import { SettingsList } from "./settings-list" type ProviderSource = "env" | "api" | "config" | "custom" type ProviderItem = ReturnType<ReturnType<typeof useProviders>["connected"]>[number] @@ -136,7 +137,7 @@ export const SettingsProviders: Component = () => { <div class="flex flex-col gap-8 max-w-[720px]"> <div class="flex flex-col gap-1" data-component="connected-providers-section"> <h3 class="text-14-medium text-text-strong pb-2">{language.t("settings.providers.section.connected")}</h3> - <div class="bg-surface-raised-base px-4 rounded-lg"> + <SettingsList> <Show when={connected().length > 0} fallback={ @@ -169,12 +170,12 @@ export const SettingsProviders: Component = () => { )} </For> </Show> - </div> + </SettingsList> </div> <div class="flex flex-col gap-1"> <h3 class="text-14-medium text-text-strong pb-2">{language.t("settings.providers.section.popular")}</h3> - <div class="bg-surface-raised-base px-4 rounded-lg"> + <SettingsList> <For each={popular()}> {(item) => ( <div class="flex flex-wrap items-center justify-between gap-4 min-h-16 py-3 border-b border-border-weak-base last:border-none"> @@ -232,7 +233,7 @@ export const SettingsProviders: Component = () => { {language.t("common.connect")} </Button> </div> - </div> + </SettingsList> <Button variant="ghost" |
