From 9c395626e9edc28c756d9a1f7909b02e45eb47a6 Mon Sep 17 00:00:00 2001 From: flamboh Date: Thu, 5 Nov 2026 16:47:21 +0000 Subject: [PATCH 1/4] fix(web): align settings row fields on a 28 pixel well surface --- .../settings/AcpSessionManagementSection.tsx | 7 +- .../settings/AddCodexAccountDialog.tsx | 1 + .../settings/AddProviderInstanceDialog.tsx | 4 +- .../settings/AppearanceSettingsPanel.tsx | 14 +++- .../settings/BackgroundActivitySettings.tsx | 6 +- .../settings/BranchNamingSettings.tsx | 3 +- .../components/settings/CodexSetupSection.tsx | 3 + .../settings/ConnectionsSettings.tsx | 3 +- .../components/settings/FontFamilyPicker.tsx | 5 +- .../settings/IntegrationsSettings.tsx | 22 +++--- .../settings/IntervalSecondsField.tsx | 2 +- .../settings/LoadBalancingSettings.tsx | 3 +- .../settings/NotificationSettings.tsx | 7 +- .../settings/ProjectDefaultsSettings.tsx | 16 +++-- .../settings/ProjectSettingsPanel.tsx | 2 +- .../ProviderAuthenticationSection.tsx | 7 +- .../settings/ProviderInstanceCard.tsx | 6 +- .../settings/ProviderSettingsForm.tsx | 18 +++-- .../settings/PullRequestRoutingSettings.tsx | 3 +- .../components/settings/SecretSourceInput.tsx | 2 +- .../components/settings/SettingsPanels.tsx | 72 +++++++++++++++---- .../settings/SnoozePresetsSettings.tsx | 2 +- .../settings/SourceControlWritingSettings.tsx | 3 +- .../components/settings/StorageSettings.tsx | 12 +++- .../settings/TypographySettings.tsx | 9 ++- 25 files changed, 173 insertions(+), 59 deletions(-) diff --git a/apps/web/src/components/settings/AcpSessionManagementSection.tsx b/apps/web/src/components/settings/AcpSessionManagementSection.tsx index b402b52b33dec..626c788636908 100644 --- a/apps/web/src/components/settings/AcpSessionManagementSection.tsx +++ b/apps/web/src/components/settings/AcpSessionManagementSection.tsx @@ -420,7 +420,12 @@ function InstanceSessionManagement( props.onProjectChange(value as ProjectId); }} > - + {props.projects.find((project) => project.id === projectId)?.title} diff --git a/apps/web/src/components/settings/AddCodexAccountDialog.tsx b/apps/web/src/components/settings/AddCodexAccountDialog.tsx index 62d8d10342910..fe481ad3b531e 100644 --- a/apps/web/src/components/settings/AddCodexAccountDialog.tsx +++ b/apps/web/src/components/settings/AddCodexAccountDialog.tsx @@ -117,6 +117,7 @@ export function AddCodexAccountDialog({ description="Shown in the provider list and model picker." control={ - + {CHAT_WIDTH_LABELS[settings.chatWidth]} @@ -298,7 +303,12 @@ export function AppearanceSettingsPanel() { updateSettings({ effortDisplay: value }); }} > - + {EFFORT_DISPLAY_LABELS[settings.effortDisplay]} diff --git a/apps/web/src/components/settings/BackgroundActivitySettings.tsx b/apps/web/src/components/settings/BackgroundActivitySettings.tsx index 1d03a3d2d6d9b..54e1281bc558a 100644 --- a/apps/web/src/components/settings/BackgroundActivitySettings.tsx +++ b/apps/web/src/components/settings/BackgroundActivitySettings.tsx @@ -148,7 +148,8 @@ function BackgroundActivityAdvancedDialog({ }} > @@ -385,7 +386,8 @@ export function BackgroundActivitySettingsRow() { }} > diff --git a/apps/web/src/components/settings/BranchNamingSettings.tsx b/apps/web/src/components/settings/BranchNamingSettings.tsx index d5365e8c912b3..99292f6aee1e3 100644 --- a/apps/web/src/components/settings/BranchNamingSettings.tsx +++ b/apps/web/src/components/settings/BranchNamingSettings.tsx @@ -61,7 +61,7 @@ export function BranchNamingSettings() { } }} > - + {(value: BranchNamingMode | null) => (value === null ? "Mixed" : MODES[value])} @@ -95,6 +95,7 @@ export function BranchNamingSettings() { } control={ - }> + } + > {selectedFamily.length === 0 ? defaultFamily : selectedFamily} diff --git a/apps/web/src/components/settings/IntegrationsSettings.tsx b/apps/web/src/components/settings/IntegrationsSettings.tsx index 5143cfb6228a5..a8c2339d6084a 100644 --- a/apps/web/src/components/settings/IntegrationsSettings.tsx +++ b/apps/web/src/components/settings/IntegrationsSettings.tsx @@ -375,7 +375,7 @@ function BrowserViewportSetting({ disabled }: { readonly disabled: boolean }) { control={
setMethodId(value ?? "")} > - + {auth?.methods?.find((method) => method.id === methodId)?.name ?? "Provider default"} diff --git a/apps/web/src/components/settings/ProviderInstanceCard.tsx b/apps/web/src/components/settings/ProviderInstanceCard.tsx index 955724688041a..01366236d1b0a 100644 --- a/apps/web/src/components/settings/ProviderInstanceCard.tsx +++ b/apps/web/src/components/settings/ProviderInstanceCard.tsx @@ -300,7 +300,7 @@ function ProviderEnvironmentFieldRow(props: { {props.field.sensitive === false ? ( props.onCommit(props.field, next)} @@ -1321,7 +1321,7 @@ export function ProviderInstanceCard({ /> - + {label} @@ -492,7 +498,7 @@ function ProviderSettingsFieldRow({ field={field} value={value} inputId={inputId} - size="sm" + size="compact" className="w-full max-w-full @min-[26rem]/settings-row:w-50" onChange={onChange} /> @@ -522,7 +528,7 @@ function ProviderSettingsFieldRow({ diff --git a/apps/web/src/components/settings/SecretSourceInput.tsx b/apps/web/src/components/settings/SecretSourceInput.tsx index 9cb6401e2f9d0..a0b532e3a3582 100644 --- a/apps/web/src/components/settings/SecretSourceInput.tsx +++ b/apps/web/src/components/settings/SecretSourceInput.tsx @@ -170,7 +170,7 @@ export function SecretSourceInput({
{ diff --git a/apps/web/src/components/settings/SettingsPanels.tsx b/apps/web/src/components/settings/SettingsPanels.tsx index fdfdf1d0c6229..668a2134fbf73 100644 --- a/apps/web/src/components/settings/SettingsPanels.tsx +++ b/apps/web/src/components/settings/SettingsPanels.tsx @@ -361,7 +361,8 @@ function AboutVersionSection() { }} > - + {HOSTED_APP_CHANNEL_LABEL} @@ -732,7 +738,7 @@ function AutoSettleDaysInput({ return ( - + {SIDEBAR_PROJECT_SORT_ORDER_LABELS[settings.sidebarProjectSortOrder]} @@ -1007,7 +1018,8 @@ export function GeneralSettingsPanel() { }} > @@ -1051,7 +1063,12 @@ export function GeneralSettingsPanel() { } }} > - + {TIMESTAMP_FORMAT_LABELS[settings.timestampFormat]} @@ -1134,7 +1151,8 @@ export function ChatSettingsPanel() { }} > @@ -1217,7 +1235,12 @@ export function ChatSettingsPanel() { } }} > - + {settings.followUpBehavior === "queue" ? "Queue" : "Steer"} @@ -1313,7 +1336,12 @@ function DiffColorsSettingsRow() { updateSettings({ diffColorScheme: value }); }} > - +
); const renderSshFields = () => ( @@ -590,15 +582,6 @@ export function AddEnvironmentDialog({ {error ?? discoveredSshHostsError} ) : null} -
); @@ -623,7 +606,7 @@ export function AddEnvironmentDialog({ - {routeTarget ? `Add a route to ${routeTarget.label}` : "Add Environment"} + {routeTarget ? `Add a route to ${routeTarget.label}` : "Add environment"} {routeTarget @@ -633,7 +616,7 @@ export function AddEnvironmentDialog({
-
+
{renderConnectionModeCard({ mode: "remote", title: "Remote link", @@ -653,6 +636,24 @@ export function AddEnvironmentDialog({ {savedBackendMode === "ssh" ? renderSshFields() : renderRemoteModeBody()}
+ + + + diff --git a/apps/web/src/components/settings/AuthorizedClientsSettings.tsx b/apps/web/src/components/settings/AuthorizedClientsSettings.tsx index f07c52ae32591..e22ab8a72ea84 100644 --- a/apps/web/src/components/settings/AuthorizedClientsSettings.tsx +++ b/apps/web/src/components/settings/AuthorizedClientsSettings.tsx @@ -386,11 +386,15 @@ const PairingLinkListRow = memo(function PairingLinkListRow({ ) : null} - {canCopyToClipboard ? ( - ) : null} @@ -821,6 +825,7 @@ export const AuthorizedClientsHeaderAction = memo(function AuthorizedClientsHead diff --git a/apps/web/src/components/settings/AuthorizedClientsSettings.tsx b/apps/web/src/components/settings/AuthorizedClientsSettings.tsx index e22ab8a72ea84..64e57af37d694 100644 --- a/apps/web/src/components/settings/AuthorizedClientsSettings.tsx +++ b/apps/web/src/components/settings/AuthorizedClientsSettings.tsx @@ -686,7 +686,7 @@ export const AuthorizedClientsHeaderAction = memo(function AuthorizedClientsHead if (part === "revoke") { return ( @@ -721,7 +721,7 @@ export const AuthorizedClientsHeaderAction = memo(function AuthorizedClientsHead {pairingDenial === undefined ? ( + diff --git a/apps/web/src/components/settings/DeviceSourcesSettings.tsx b/apps/web/src/components/settings/DeviceSourcesSettings.tsx index 1eda2afc69247..4c9d4ea8e5c70 100644 --- a/apps/web/src/components/settings/DeviceSourcesSettings.tsx +++ b/apps/web/src/components/settings/DeviceSourcesSettings.tsx @@ -527,7 +527,9 @@ export function DeviceSourcesSettings(props: { const addMenu = ( } + render={ + + + }> + + + + {changedSettingLabels.length === 0 + ? "Device settings already use their defaults." + : "Restore device defaults"} + + ); } diff --git a/apps/web/src/components/settings/ThemeSettings.tsx b/apps/web/src/components/settings/ThemeSettings.tsx index 875290bd85a90..a8a6a78631714 100644 --- a/apps/web/src/components/settings/ThemeSettings.tsx +++ b/apps/web/src/components/settings/ThemeSettings.tsx @@ -1029,7 +1029,6 @@ export function ThemeLibrary({ ); return ( - // Appearance headings carry 24px actions, 10px above the cards (pen eWIa5).
@@ -1045,12 +1044,12 @@ export function ThemeLibrary({

{searchableSetting("theme").title}

-