diff --git a/apps/web/src/components/ChatMarkdown.browser.test.tsx b/apps/web/src/components/ChatMarkdown.browser.test.tsx index 66dc5c150a65..ae678a02c834 100644 --- a/apps/web/src/components/ChatMarkdown.browser.test.tsx +++ b/apps/web/src/components/ChatMarkdown.browser.test.tsx @@ -3,7 +3,7 @@ import { EnvironmentId, ThreadId } from "@t3tools/contracts"; import { AsyncResult } from "effect/reactivity"; import { type ReactElement } from "react"; import { describe, expect, it, vi } from "vite-plus/test"; -import { page, userEvent } from "vite-plus/test/browser"; +import { commands, page, userEvent } from "vite-plus/test/browser"; import { act, render } from "../../test/render"; import "../index.css"; @@ -682,6 +682,22 @@ describe("ChatMarkdown alert copy", () => { }); describe("ChatMarkdown file chip tooltips", () => { + it("stays open while the pointer selects the path, then closes when it leaves", async () => { + setup(); + await using screen = await renderText("[notes](/tmp/project/docs/notes.md)"); + await userEvent.hover(screen.container.querySelector(".chat-markdown-file-link")!); + const path = page.getByText("/tmp/project/docs/notes.md"); + await expect.element(path).toBeVisible(); + + // Forced so the pointer lands on the popup even when it ignores pointer events. + await userEvent.tripleClick(path, { force: true }); + expect(window.getSelection()?.toString().trim()).toBe("/tmp/project/docs/notes.md"); + await expect.element(path).toBeVisible(); + + await commands.resetPointer(); + await expect.element(path).not.toBeInTheDocument(); + }); + it("wraps a long path so its file name stays inside the tooltip", async () => { setup(); const path = diff --git a/apps/web/src/components/ComposerPromptEditorTiptap.tsx b/apps/web/src/components/ComposerPromptEditorTiptap.tsx index 5a036e34611e..d6354080e832 100644 --- a/apps/web/src/components/ComposerPromptEditorTiptap.tsx +++ b/apps/web/src/components/ComposerPromptEditorTiptap.tsx @@ -300,7 +300,7 @@ function ComposerMentionNodeView({ node }: NodeViewProps) { - + - + diff --git a/apps/web/src/components/chat/UserMessageContextChips.tsx b/apps/web/src/components/chat/UserMessageContextChips.tsx index 39801a908b95..d6c320d09054 100644 --- a/apps/web/src/components/chat/UserMessageContextChips.tsx +++ b/apps/web/src/components/chat/UserMessageContextChips.tsx @@ -92,7 +92,7 @@ function UserMessageMentionChip(props: { } /> - +