mirror of
https://github.com/farion1231/cc-switch.git
synced 2026-10-26 01:34:51 +08:00
Unify the visual and interaction rules on top of the v7 redesign. - Theme color #F97315 for --action-* and --ring; dark mode uses #EA580C with white text, toned-down mode colors and translucent soft fills - Buttons mapped to three sizes (28 / 32 / 36); inputs, selects and search fields share fieldClass; self-drawn checkbox and radio - HoverTip replaces title on about 100 icon buttons; it stays closed when a closing menu returns focus to its trigger - Install tailwindcss-animate so menu, popover, dialog and tooltip enter/exit animations take effect; sliding segment thumb and tab underline - Remove the command palette and the header prompt entry; provider card primary actions become icon buttons - Virtualize the session list and the Skills discovery list; optimistic toggles for MCP and Skills with a 300ms delayed disabled state - Toasts drawn unstyled with status-colored icons and de-duplicated - Windows: hide the system title bar and use in-app window controls; macOS: brand row under the traffic lights - Focus rings only for keyboard users - Skills discovery and the prompt list show the last result from a local cache and refresh in the background - Drop the trailing ellipsis from 36 dialog-opening labels - Provider list fills the main area Co-authored-by: 千羽 <qyinter@users.noreply.github.com>
34 lines
999 B
TypeScript
34 lines
999 B
TypeScript
import { act, render, screen } from "@testing-library/react";
|
|
import { afterEach, describe, expect, it } from "vitest";
|
|
import { HoverTip } from "@/components/ui/hover-tip";
|
|
|
|
function renderTip() {
|
|
render(
|
|
<HoverTip content="更多操作">
|
|
<button type="button" aria-label="更多">
|
|
⋯
|
|
</button>
|
|
</HoverTip>,
|
|
);
|
|
return screen.getByRole("button", { name: "更多" });
|
|
}
|
|
|
|
describe("HoverTip", () => {
|
|
afterEach(() => {
|
|
delete document.documentElement.dataset.keyboard;
|
|
});
|
|
|
|
it("stays closed when focus returns to the trigger without the keyboard (menu closed by click)", () => {
|
|
const button = renderTip();
|
|
act(() => button.focus());
|
|
expect(screen.queryByRole("tooltip")).not.toBeInTheDocument();
|
|
});
|
|
|
|
it("opens on keyboard focus", () => {
|
|
const button = renderTip();
|
|
document.documentElement.dataset.keyboard = "";
|
|
act(() => button.focus());
|
|
expect(screen.getByRole("tooltip")).toHaveTextContent("更多操作");
|
|
});
|
|
});
|