diff --git a/webview-ui/playwright/vscode-theme-base.css b/webview-ui/playwright/vscode-theme-base.css index 5226acb1cf..9e949edd0a 100644 --- a/webview-ui/playwright/vscode-theme-base.css +++ b/webview-ui/playwright/vscode-theme-base.css @@ -17,6 +17,20 @@ body { padding: 16px; } +.vscode-text-field-mock { + box-sizing: border-box; + background: var(--vscode-input-background); + border: 1px solid var(--vscode-input-border, transparent); + color: var(--vscode-input-foreground); + font: inherit; + padding: 4px 6px; +} + +.vscode-text-field-mock::placeholder { + color: var(--vscode-input-placeholderForeground, var(--vscode-descriptionForeground)); + opacity: 1; +} + /* @vscode/webview-ui-toolkit/react renders VSCodeButton as a bare + + +
+ +
+ + + ) +} diff --git a/webview-ui/src/components/welcome/WelcomeViewProvider.tsx b/webview-ui/src/components/welcome/WelcomeViewProvider.tsx index 26033739d5..5a77a6c111 100644 --- a/webview-ui/src/components/welcome/WelcomeViewProvider.tsx +++ b/webview-ui/src/components/welcome/WelcomeViewProvider.tsx @@ -13,7 +13,7 @@ import { Button } from "@src/components/ui" import ApiOptions from "../settings/ApiOptions" import { Tab, TabContent } from "../common/Tab" -import RooHero from "./RooHero" +import { WelcomeLanding } from "./WelcomeLanding" const DEFAULT_WELCOME_API_CONFIGURATION: ProviderSettings = { apiProvider: "openrouter", @@ -94,32 +94,10 @@ const WelcomeViewProvider = () => { if (!showProviderSetup) { return ( - - - -

{t("welcome:landing.greeting")}

- -
-

- -

-
- -
- -
- -
- -
-
-
+ vscode.postMessage({ type: "importSettings" })} + /> ) } diff --git a/webview-ui/src/components/welcome/__tests__/WelcomeViewProvider.visual.tsx b/webview-ui/src/components/welcome/__tests__/WelcomeViewProvider.visual.tsx new file mode 100644 index 0000000000..93305a6f0f --- /dev/null +++ b/webview-ui/src/components/welcome/__tests__/WelcomeViewProvider.visual.tsx @@ -0,0 +1,31 @@ +import React from "react" + +import { expect, test } from "../../../../playwright/coverage-fixture" +import { AppProviders } from "../../../../playwright/AppProviders" +import { expectContrast } from "../../../../playwright/contrast" +import { applyVisualTheme, visualThemes } from "../../../../playwright/themes" +import { WelcomeLanding } from "../WelcomeLanding" + +for (const theme of visualThemes) { + test(`renders the full welcome screen in the VS Code ${theme.name} theme`, async ({ mount, page }) => { + await applyVisualTheme(page, theme) + const component = await mount( + +
+ undefined} onImportSettings={() => undefined} /> +
+
, + ) + + const screen = component.locator(".bg-vscode-editor-background").first() + const heading = component.getByRole("heading", { level: 2 }) + await expect(heading).toBeVisible() + await expectContrast(heading, { background: screen, label: `${theme.name} welcome heading` }) + await expectContrast(component.getByRole("button", { name: /provider/i }).first(), { + background: component.getByRole("button", { name: /provider/i }).first(), + label: `${theme.name} welcome action`, + }) + + await expect(component).toHaveScreenshot(`welcome-screen-${theme.name}.png`) + }) +} diff --git a/webview-ui/src/components/welcome/__tests__/__screenshots__/welcome-screen-dark.png b/webview-ui/src/components/welcome/__tests__/__screenshots__/welcome-screen-dark.png new file mode 100644 index 0000000000..8dc2c2e74a Binary files /dev/null and b/webview-ui/src/components/welcome/__tests__/__screenshots__/welcome-screen-dark.png differ diff --git a/webview-ui/src/components/welcome/__tests__/__screenshots__/welcome-screen-high-contrast-light.png b/webview-ui/src/components/welcome/__tests__/__screenshots__/welcome-screen-high-contrast-light.png new file mode 100644 index 0000000000..88ed541b08 Binary files /dev/null and b/webview-ui/src/components/welcome/__tests__/__screenshots__/welcome-screen-high-contrast-light.png differ diff --git a/webview-ui/src/components/welcome/__tests__/__screenshots__/welcome-screen-high-contrast.png b/webview-ui/src/components/welcome/__tests__/__screenshots__/welcome-screen-high-contrast.png new file mode 100644 index 0000000000..72d5ed699b Binary files /dev/null and b/webview-ui/src/components/welcome/__tests__/__screenshots__/welcome-screen-high-contrast.png differ diff --git a/webview-ui/src/components/welcome/__tests__/__screenshots__/welcome-screen-light.png b/webview-ui/src/components/welcome/__tests__/__screenshots__/welcome-screen-light.png new file mode 100644 index 0000000000..0a0ee6f0ee Binary files /dev/null and b/webview-ui/src/components/welcome/__tests__/__screenshots__/welcome-screen-light.png differ