From 840a665567ee09109f1237c5ee820e7937a36e39 Mon Sep 17 00:00:00 2001 From: Tajudeen Date: Thu, 23 Jul 2026 14:03:10 +0100 Subject: [PATCH] feat(ui): migrate Settings pane to design-system btn/dropdown classes Wire VoidButtonBgDarken and AddButton through .btn tokens, update settings nav tabs and Ollama controls, and add settings adoption contract tests. Co-authored-by: Cursor --- .../browser/react/src/settings/Settings.tsx | 57 +++++++++++-------- .../browser/react/src/util/inputs.tsx | 6 +- .../test/common/designSystem.test.ts | 13 +++++ 3 files changed, 49 insertions(+), 27 deletions(-) diff --git a/src/vs/workbench/contrib/cortexide/browser/react/src/settings/Settings.tsx b/src/vs/workbench/contrib/cortexide/browser/react/src/settings/Settings.tsx index abc00921bef..1a0b17b7fa4 100644 --- a/src/vs/workbench/contrib/cortexide/browser/react/src/settings/Settings.tsx +++ b/src/vs/workbench/contrib/cortexide/browser/react/src/settings/Settings.tsx @@ -238,8 +238,9 @@ export const AnimatedCheckmarkButton = ({ text, className }: { text?: string, cl const AddButton = ({ disabled, text = 'Add', ...props }: { disabled?: boolean, text?: React.ReactNode } & React.ButtonHTMLAttributes) => { return @@ -430,15 +431,12 @@ const SimpleModelSettingsDialog = ({
- + Cancel - +
@@ -555,11 +553,13 @@ export const ModelDump = ({ filteredProviders }: { filteredProviders?: ProviderN {disabled ? null : (
@@ -585,11 +585,13 @@ export const ModelDump = ({ filteredProviders }: { filteredProviders?: ProviderN {/* X button */}
{type === 'default' || type === 'autodetected' ? null : } @@ -601,7 +603,7 @@ export const ModelDump = ({ filteredProviders }: { filteredProviders?: ProviderN {/* Add Model Section */} {showCheckmark ? (
- +
) : isAddModelOpen ? (
@@ -650,7 +652,8 @@ export const ModelDump = ({ filteredProviders }: { filteredProviders?: ProviderN setModelName(''); setUserChosenProviderName(null); }} - className='text-void-fg-4' + aria-label='Cancel add model' + className='btn btn-icon btn-ghost text-void-fg-4' > @@ -1115,7 +1118,7 @@ export const OllamaSetupInstructions = ({ sayWeAutoDetect }: { sayWeAutoDetect?:
{status === 'error' && ( )} @@ -1208,11 +1213,13 @@ export const OllamaSetupInstructions = ({ sayWeAutoDetect }: { sayWeAutoDetect?:
@@ -1224,7 +1231,7 @@ export const OllamaSetupInstructions = ({ sayWeAutoDetect }: { sayWeAutoDetect?:
Pull model: diff --git a/src/vs/workbench/contrib/cortexide/browser/react/src/util/inputs.tsx b/src/vs/workbench/contrib/cortexide/browser/react/src/util/inputs.tsx index a221e258d7b..3f70ddf96d5 100644 --- a/src/vs/workbench/contrib/cortexide/browser/react/src/util/inputs.tsx +++ b/src/vs/workbench/contrib/cortexide/browser/react/src/util/inputs.tsx @@ -1831,8 +1831,10 @@ export const BlockCode = ({ initValue, language, maxHeight, showScrollbars }: Bl export const VoidButtonBgDarken = ({ children, disabled, onClick, className }: { children: React.ReactNode; disabled?: boolean; onClick: () => void; className?: string }) => { - return } diff --git a/src/vs/workbench/contrib/cortexide/test/common/designSystem.test.ts b/src/vs/workbench/contrib/cortexide/test/common/designSystem.test.ts index 2df2d6bce37..766027126bb 100644 --- a/src/vs/workbench/contrib/cortexide/test/common/designSystem.test.ts +++ b/src/vs/workbench/contrib/cortexide/test/common/designSystem.test.ts @@ -73,3 +73,16 @@ suite('designSystem (Phase 1 — onboarding adoption)', () => { assert.ok(src.includes('btn btn-secondary'), 'expected btn-secondary in local setup wizard'); }); }); + +const settingsPath = join(dirname(fileURLToPath(import.meta.url)), '../../browser/react/src/settings/Settings.tsx'); + +suite('designSystem (Phase 1 — settings adoption)', () => { + + test('Settings pane uses design-system button classes', () => { + const src = readFileSync(settingsPath, 'utf8'); + assert.ok(src.includes('btn btn-primary'), 'expected btn-primary in settings'); + assert.ok(src.includes('btn btn-secondary'), 'expected btn-secondary in settings'); + assert.ok(src.includes('btn-stop'), 'expected btn-stop for destructive Ollama delete'); + assert.ok(src.includes("'dropdown "), 'expected dropdown class on Ollama selects'); + }); +});