From b7b8f60cb27358d1ca847319b141bc01acc151f2 Mon Sep 17 00:00:00 2001 From: Huarch Date: Wed, 22 Jul 2026 10:28:27 +0800 Subject: [PATCH] fix: complete Tailwind v4 migration --- src/app/app.e2e.ts | 20 +++++++++++++ .../agent/components/agent-collapsed-rail.tsx | 2 +- .../agent/components/agent-command-panel.tsx | 8 +++--- .../agent/components/agent-history-panel.tsx | 2 +- .../components/agent-message-details.tsx | 2 +- .../components/agent-ui-envelope-renderer.tsx | 2 +- .../core/components/base-layers-control.tsx | 8 +++--- .../map/core/components/draw-toolbar.tsx | 2 +- .../map/core/components/layer-panel.tsx | 2 +- src/features/map/core/components/notice.tsx | 6 ++-- .../workbench/components/feature-popover.tsx | 4 +-- .../workbench/components/map-dev-panel.tsx | 2 +- .../components/scheduled-condition-feed.tsx | 4 +-- .../components/workbench-top-bar-menus.tsx | 4 +-- .../components/workbench-top-bar-styles.ts | 2 +- src/features/workbench/map-workbench-page.tsx | 4 +-- src/shared/ui/badge.tsx | 2 +- src/shared/ui/button-group.tsx | 2 +- src/shared/ui/button.tsx | 8 +++--- src/shared/ui/command.tsx | 4 +-- src/shared/ui/dialog.tsx | 2 +- src/shared/ui/dropdown-menu.tsx | 12 ++++---- src/shared/ui/hover-card.tsx | 2 +- src/shared/ui/input-group.tsx | 2 +- src/shared/ui/input.tsx | 2 +- src/shared/ui/select.tsx | 6 ++-- src/shared/ui/textarea.tsx | 2 +- src/shared/ui/tooltip.tsx | 2 +- src/styles.css | 10 +++++++ src/test/tailwind-migration.test.ts | 28 +++++++++++++++++++ 30 files changed, 108 insertions(+), 50 deletions(-) create mode 100644 src/test/tailwind-migration.test.ts diff --git a/src/app/app.e2e.ts b/src/app/app.e2e.ts index bf771dc..2cc7e20 100644 --- a/src/app/app.e2e.ts +++ b/src/app/app.e2e.ts @@ -99,3 +99,23 @@ test("lets interactive utilities override surface materials", async ({ page }) = ); expect(hoverBackground).not.toBe(restingBackground); }); + +test("preserves v3 menu and panel styling through Tailwind v4", async ({ page }) => { + await page.setViewportSize({ width: 1440, height: 900 }); + await page.goto("/"); + + await page.getByLabel("打开用户菜单").click(); + const menu = page.locator('[role="menu"][data-state="open"]'); + const menuTransformOrigin = await menu.evaluate( + (element) => window.getComputedStyle(element).transformOrigin + ); + expect(menuTransformOrigin).not.toBe("50% 50%"); + + await page.keyboard.press("Escape"); + const agentCommandControl = page.locator(".agent-panel-control.shadow-xs").first(); + const commandShadow = await agentCommandControl.evaluate( + (element) => window.getComputedStyle(element).boxShadow + ); + expect(commandShadow).toContain("rgba(0, 0, 0, 0.05) 0px 1px 2px 0px"); + expect(commandShadow).not.toContain("0px 1px 3px 0px"); +}); diff --git a/src/features/agent/components/agent-collapsed-rail.tsx b/src/features/agent/components/agent-collapsed-rail.tsx index f77e857..127d419 100644 --- a/src/features/agent/components/agent-collapsed-rail.tsx +++ b/src/features/agent/components/agent-collapsed-rail.tsx @@ -28,7 +28,7 @@ export function AgentCollapsedRail({ personaState, onExpand }: AgentCollapsedRai className="agent-rail-item surface-control group flex h-14 w-full items-center justify-center gap-4 rounded-xl border px-3 transition-[background-color,transform] hover:bg-white active:scale-95" > - + diff --git a/src/features/agent/components/agent-command-panel.tsx b/src/features/agent/components/agent-command-panel.tsx index bd51eb7..4a65d9d 100644 --- a/src/features/agent/components/agent-command-panel.tsx +++ b/src/features/agent/components/agent-command-panel.tsx @@ -413,7 +413,7 @@ export function AgentCommandPanel({ ) : null} { const nextPrompt = message.text.trim(); if (nextPrompt) { @@ -503,7 +503,7 @@ function VoiceInputButton({ "border-transparent bg-transparent text-blue-600 shadow-none", "transition-[color,background-color,border-color,box-shadow,transform] duration-200", "hover:bg-slate-50 hover:text-blue-700", - "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-blue-600/25 focus-visible:ring-offset-1", + "focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-blue-600/25 focus-visible:ring-offset-1", "disabled:cursor-not-allowed disabled:opacity-45", isListening && "bg-red-50 text-red-600 hover:bg-red-100 hover:text-red-700" )} @@ -984,7 +984,7 @@ function BackendMessageList({ className={cn( message.role === "user" && "bg-blue-600 px-3 py-2 text-white", message.role === "assistant" && - "agent-panel-message w-full rounded-2xl p-3 text-sm leading-6 text-slate-700 shadow-sm" + "agent-panel-message w-full rounded-2xl p-3 text-sm leading-6 text-slate-700 shadow-xs" )} >
@@ -1170,7 +1170,7 @@ function AgentSpeechMessage({ -
+

历史记录

diff --git a/src/features/agent/components/agent-message-details.tsx b/src/features/agent/components/agent-message-details.tsx index 679d2f1..2ac86d4 100644 --- a/src/features/agent/components/agent-message-details.tsx +++ b/src/features/agent/components/agent-message-details.tsx @@ -685,7 +685,7 @@ function QuestionInput({ ) : null} {showCustomInput ? (