From d34a5ed2cfa8a6afe6fd05e8b68dd1235d5b08f5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miguel=20=C3=81ngel?= Date: Sat, 9 May 2026 02:24:35 -0700 Subject: [PATCH] fix(studio): handle raster inspector clicks --- packages/studio/src/App.tsx | 182 ++++++++++++++++-- .../src/components/editor/domEditing.test.ts | 95 +++++++++ .../src/components/editor/domEditing.ts | 37 ++++ .../raster-text-ask-agent-fallback.png | Bin 0 -> 200984 bytes .../raster-text-ask-agent-fallback.webm | Bin 0 -> 40412 bytes 5 files changed, 295 insertions(+), 19 deletions(-) create mode 100644 qa-artifacts/studio-inspector-selection-ux/notion-showcase/raster-text-ask-agent-fallback.png create mode 100644 qa-artifacts/studio-inspector-selection-ux/notion-showcase/raster-text-ask-agent-fallback.webm diff --git a/packages/studio/src/App.tsx b/packages/studio/src/App.tsx index 398eab36ee..2109764de6 100644 --- a/packages/studio/src/App.tsx +++ b/packages/studio/src/App.tsx @@ -4,6 +4,7 @@ import { useRef, useEffect, useMemo, + type CSSProperties, type MouseEvent, type ReactNode, } from "react"; @@ -91,10 +92,12 @@ import { findElementForTimelineElement, getDomEditLayerKey, getDomEditTargetKey, + isLargeRasterDomEditSelection, isTextEditableSelection, resolveVisualDomEditSelectionTarget, serializeDomEditTextFields, resolveDomEditSelection, + type DomEditViewport, type DomEditLayerItem, type DomEditTextField, type DomEditSelection, @@ -359,6 +362,59 @@ function isManualGeometryStyleProperty(property: string): boolean { return property === "left" || property === "top" || property === "width" || property === "height"; } +interface PreviewLocalPointer { + x: number; + y: number; + viewport: DomEditViewport; +} + +interface AgentModalAnchorPoint { + x: number; + y: number; +} + +function resolvePreviewLocalPointer( + iframe: HTMLIFrameElement, + doc: Document, + win: Window, + clientX: number, + clientY: number, +): PreviewLocalPointer | null { + const iframeRect = iframe.getBoundingClientRect(); + const root = + doc.querySelector("[data-composition-id]") ?? doc.documentElement ?? null; + const rootRect = root?.getBoundingClientRect(); + const rootWidth = rootRect?.width || win.innerWidth; + const rootHeight = rootRect?.height || win.innerHeight; + if (!rootWidth || !rootHeight) return null; + + const scaleX = iframeRect.width / rootWidth; + const scaleY = iframeRect.height / rootHeight; + return { + x: (clientX - iframeRect.left) / scaleX, + y: (clientY - iframeRect.top) / scaleY, + viewport: { width: rootWidth, height: rootHeight }, + }; +} + +function getPreviewLocalPointer( + iframe: HTMLIFrameElement, + clientX: number, + clientY: number, +): PreviewLocalPointer | null { + let doc: Document | null = null; + let win: Window | null = null; + try { + doc = iframe.contentDocument; + win = iframe.contentWindow; + } catch { + return null; + } + if (!doc || !win) return null; + + return resolvePreviewLocalPointer(iframe, doc, win, clientX, clientY); +} + function getPreviewTargetFromPointer( iframe: HTMLIFrameElement, clientX: number, @@ -375,22 +431,12 @@ function getPreviewTargetFromPointer( } if (!doc || !win) return null; - const iframeRect = iframe.getBoundingClientRect(); - const root = - doc.querySelector("[data-composition-id]") ?? doc.documentElement ?? null; - const rootRect = root?.getBoundingClientRect(); - const rootWidth = rootRect?.width || win.innerWidth; - const rootHeight = rootRect?.height || win.innerHeight; - if (!rootWidth || !rootHeight) return null; - - const scaleX = iframeRect.width / rootWidth; - const scaleY = iframeRect.height / rootHeight; - const localX = (clientX - iframeRect.left) / scaleX; - const localY = (clientY - iframeRect.top) / scaleY; + const localPointer = resolvePreviewLocalPointer(iframe, doc, win, clientX, clientY); + if (!localPointer) return null; if (typeof doc.elementsFromPoint === "function") { const visualTarget = resolveVisualDomEditSelectionTarget( - doc.elementsFromPoint(localX, localY), + doc.elementsFromPoint(localPointer.x, localPointer.y), { activeCompositionPath, }, @@ -398,7 +444,22 @@ function getPreviewTargetFromPointer( if (visualTarget) return visualTarget; } - return getEventTargetElement(doc.elementFromPoint(localX, localY)); + return getEventTargetElement(doc.elementFromPoint(localPointer.x, localPointer.y)); +} + +function buildRasterClickSelectionContext( + selection: DomEditSelection, + localPointer: PreviewLocalPointer, +): string { + return [ + "The user clicked a large raster/background element in the Studio preview.", + `Preview click: x=${Math.round(localPointer.x)}px, y=${Math.round(localPointer.y)}px in a ${Math.round( + localPointer.viewport.width, + )}x${Math.round(localPointer.viewport.height)} composition.`, + `Selected target: <${selection.tagName}> ${selection.selector ?? selection.id ?? selection.label}.`, + "Visible copy or artwork at that point may be baked into the selected image/background rather than a selectable DOM text layer.", + "If the request mentions text seen at the click location, inspect or replace the image asset, or recreate that visible copy as editable DOM.", + ].join("\n"); } function domEditSelectionsTargetSame( @@ -604,17 +665,47 @@ function pauseStudioPreviewPlayback(iframe: HTMLIFrameElement | null): number | // ── Ask Agent Modal ── +function clampNumber(value: number, min: number, max: number): number { + if (max < min) return min; + return Math.min(Math.max(value, min), max); +} + +function getAgentModalPositionStyle( + anchorPoint: AgentModalAnchorPoint | null, +): CSSProperties | undefined { + if (!anchorPoint || typeof window === "undefined") return undefined; + + const modalWidth = 480; + const estimatedModalHeight = 270; + const margin = 16; + const left = clampNumber( + anchorPoint.x, + margin + modalWidth / 2, + window.innerWidth - margin - modalWidth / 2, + ); + const top = clampNumber( + anchorPoint.y + 12, + margin, + window.innerHeight - margin - estimatedModalHeight, + ); + + return { left, top, transform: "translateX(-50%)" }; +} + function AskAgentModal({ selectionLabel, + anchorPoint = null, onSubmit, onClose, }: { selectionLabel: string; + anchorPoint?: AgentModalAnchorPoint | null; onSubmit: (instruction: string) => void; onClose: () => void; }) { const [value, setValue] = useState(""); const inputRef = useRef(null); + const modalPositionStyle = getAgentModalPositionStyle(anchorPoint); useMountEffect(() => { requestAnimationFrame(() => inputRef.current?.focus()); @@ -627,11 +718,18 @@ function AskAgentModal({ return (
e.stopPropagation()} >
@@ -786,6 +884,12 @@ export function StudioApp() { const [domEditGroupSelections, setDomEditGroupSelections] = useState([]); const [domEditHoverSelection, setDomEditHoverSelection] = useState(null); const [agentPromptTagSnippet, setAgentPromptTagSnippet] = useState(); + const [agentPromptSelectionContext, setAgentPromptSelectionContext] = useState< + string | undefined + >(); + const [agentModalAnchorPoint, setAgentModalAnchorPoint] = useState( + null, + ); const [copiedAgentPrompt, setCopiedAgentPrompt] = useState(false); const [agentModalOpen, setAgentModalOpen] = useState(false); const [previewIframe, setPreviewIframe] = useState(null); @@ -1780,6 +1884,8 @@ export function StudioApp() { options?: { revealPanel?: boolean; additive?: boolean; preserveGroup?: boolean }, ) => { setAgentPromptTagSnippet(undefined); + setAgentPromptSelectionContext(undefined); + setAgentModalAnchorPoint(null); setCopiedAgentPrompt(false); if (!selection) { domEditSelectionRef.current = null; @@ -2992,6 +3098,8 @@ export function StudioApp() { const handleAskAgent = useCallback(() => { if (!domEditSelection) return; setAgentPromptTagSnippet(undefined); + setAgentPromptSelectionContext(undefined); + setAgentModalAnchorPoint(null); void preloadAgentPromptSnippet(domEditSelection); setAgentModalOpen(true); }, [domEditSelection, preloadAgentPromptSnippet]); @@ -3006,6 +3114,7 @@ export function StudioApp() { selection: domEditSelection, currentTime, tagSnippet, + selectionContext: agentPromptSelectionContext, userInstruction, sourceFilePath: toProjectAbsolutePath(projectDir, targetPath), }); @@ -3017,11 +3126,21 @@ export function StudioApp() { } setAgentModalOpen(false); + setAgentPromptSelectionContext(undefined); + setAgentModalAnchorPoint(null); if (copiedAgentTimerRef.current) clearTimeout(copiedAgentTimerRef.current); setCopiedAgentPrompt(true); copiedAgentTimerRef.current = setTimeout(() => setCopiedAgentPrompt(false), 1600); }, - [activeCompPath, agentPromptTagSnippet, currentTime, domEditSelection, projectDir, showToast], + [ + activeCompPath, + agentPromptSelectionContext, + agentPromptTagSnippet, + currentTime, + domEditSelection, + projectDir, + showToast, + ], ); const handlePreviewIframeRef = useCallback( @@ -3049,9 +3168,29 @@ export function StudioApp() { } e.preventDefault(); e.stopPropagation(); + const localPointer = previewIframeRef.current + ? getPreviewLocalPointer(previewIframeRef.current, e.clientX, e.clientY) + : null; applyDomSelection(nextSelection, { additive: e.shiftKey }); + if ( + !e.shiftKey && + localPointer && + isLargeRasterDomEditSelection(nextSelection, localPointer.viewport) + ) { + setAgentPromptSelectionContext( + buildRasterClickSelectionContext(nextSelection, localPointer), + ); + setAgentModalAnchorPoint({ x: e.clientX, y: e.clientY }); + void preloadAgentPromptSnippet(nextSelection); + setAgentModalOpen(true); + } }, - [applyDomSelection, captionEditMode, resolveDomSelectionFromPreviewPoint], + [ + applyDomSelection, + captionEditMode, + preloadAgentPromptSnippet, + resolveDomSelectionFromPreviewPoint, + ], ); const handlePreviewCanvasPointerMove = useCallback( @@ -4117,8 +4256,13 @@ export function StudioApp() { {agentModalOpen && domEditSelection && ( setAgentModalOpen(false)} + onClose={() => { + setAgentModalOpen(false); + setAgentPromptSelectionContext(undefined); + setAgentModalAnchorPoint(null); + }} /> )} diff --git a/packages/studio/src/components/editor/domEditing.test.ts b/packages/studio/src/components/editor/domEditing.test.ts index 330d109724..a15d31083a 100644 --- a/packages/studio/src/components/editor/domEditing.test.ts +++ b/packages/studio/src/components/editor/domEditing.test.ts @@ -9,6 +9,7 @@ import { findElementForTimelineElement, getDomEditNonEditableReason, getDomEditTargetKey, + isLargeRasterDomEditSelection, isTextEditableSelection, resolveVisualDomEditSelectionTarget, serializeDomEditTextFields, @@ -322,6 +323,56 @@ describe("resolveVisualDomEditSelectionTarget", () => { }); }); +describe("isLargeRasterDomEditSelection", () => { + it("flags large image and background targets for raster click fallback", () => { + expect( + isLargeRasterDomEditSelection( + { + tagName: "img", + boundingBox: { x: 0, y: 0, width: 1920, height: 1080 }, + computedStyles: {}, + }, + { width: 1920, height: 1080 }, + ), + ).toBe(true); + + expect( + isLargeRasterDomEditSelection( + { + tagName: "div", + boundingBox: { x: 0, y: 0, width: 1280, height: 720 }, + computedStyles: { "background-image": 'url("hero.png")' }, + }, + { width: 1920, height: 1080 }, + ), + ).toBe(true); + }); + + it("does not flag small media or text selections", () => { + expect( + isLargeRasterDomEditSelection( + { + tagName: "img", + boundingBox: { x: 80, y: 80, width: 96, height: 96 }, + computedStyles: {}, + }, + { width: 1920, height: 1080 }, + ), + ).toBe(false); + + expect( + isLargeRasterDomEditSelection( + { + tagName: "h1", + boundingBox: { x: 0, y: 0, width: 1600, height: 300 }, + computedStyles: {}, + }, + { width: 1920, height: 1080 }, + ), + ).toBe(false); + }); +}); + describe("resolveDomEditSelection", () => { it("keeps composition host transforms disabled in master view", () => { expect( @@ -936,6 +987,50 @@ describe("patch builders and prompt builder", () => { expect(prompt).not.toContain("Source file: index.html"); }); + it("includes raster click context in copied agent prompts", () => { + const selection = { + element: {} as HTMLElement, + id: undefined, + selector: ".hero-bg", + selectorIndex: undefined, + sourceFile: "index.html", + compositionPath: "index.html", + compositionSrc: undefined, + isCompositionHost: false, + label: "Hero Bg", + tagName: "img", + boundingBox: { x: 0, y: 0, width: 1920, height: 1080 }, + textContent: null, + dataAttributes: {}, + inlineStyles: {}, + computedStyles: {}, + textFields: [], + capabilities: { + canSelect: true, + canEditStyles: true, + canMove: true, + canResize: true, + canApplyManualOffset: true, + canApplyManualSize: true, + canApplyManualRotation: true, + }, + } satisfies DomEditSelection; + + const prompt = buildElementAgentPrompt({ + selection, + currentTime: 3, + selectionContext: + "The user clicked visible text that is baked into the selected image/background.", + userInstruction: "Change the title copy.", + }); + + expect(prompt).toContain("Selection context:"); + expect(prompt).toContain( + "The user clicked visible text that is baked into the selected image/background.", + ); + expect(prompt).toContain("Change the title copy."); + }); + it("serializes child text fields back into HTML", () => { expect( serializeDomEditTextFields([ diff --git a/packages/studio/src/components/editor/domEditing.ts b/packages/studio/src/components/editor/domEditing.ts index f4ff9dabe9..f05adef722 100644 --- a/packages/studio/src/components/editor/domEditing.ts +++ b/packages/studio/src/components/editor/domEditing.ts @@ -105,6 +105,11 @@ export interface DomEditContextOptions { preferClipAncestor?: boolean; } +export interface DomEditViewport { + width: number; + height: number; +} + export interface TimelineElementDomTarget { id?: string; domId?: string; @@ -497,6 +502,31 @@ export function resolveVisualDomEditSelectionTarget( return best?.element ?? null; } +function hasRasterBackground(selection: Pick): boolean { + const backgroundImage = selection.computedStyles["background-image"]?.trim(); + return Boolean(backgroundImage && backgroundImage !== "none"); +} + +export function isLargeRasterDomEditSelection( + selection: Pick, + viewport?: DomEditViewport | null, +): boolean { + const tagName = selection.tagName.toLowerCase(); + const isRasterLike = tagName === "img" || hasRasterBackground(selection); + if (!isRasterLike) return false; + + const { width, height } = selection.boundingBox; + if (width <= 1 || height <= 1) return false; + if (!viewport || viewport.width <= 1 || viewport.height <= 1) { + return width >= 960 && height >= 540; + } + + const areaRatio = (width * height) / (viewport.width * viewport.height); + const widthRatio = width / viewport.width; + const heightRatio = height / viewport.height; + return areaRatio >= 0.4 || (widthRatio >= 0.7 && heightRatio >= 0.5); +} + function getDirectLayerChildren(el: HTMLElement, options: DomEditContextOptions): HTMLElement[] { return Array.from(el.children).filter( (child): child is HTMLElement => @@ -1013,12 +1043,14 @@ export function buildElementAgentPrompt({ selection, currentTime, tagSnippet, + selectionContext, userInstruction, sourceFilePath, }: { selection: DomEditSelection; currentTime: number; tagSnippet?: string; + selectionContext?: string; userInstruction?: string; sourceFilePath?: string; }): string { @@ -1043,6 +1075,11 @@ export function buildElementAgentPrompt({ lines.push(`Text: ${selection.textContent}`); } + const trimmedSelectionContext = selectionContext?.trim(); + if (trimmedSelectionContext) { + lines.push("", "Selection context:", trimmedSelectionContext); + } + const textFieldsBlock = formatTextFields(selection.textFields); if (textFieldsBlock) { lines.push("", "Text fields:", textFieldsBlock); diff --git a/qa-artifacts/studio-inspector-selection-ux/notion-showcase/raster-text-ask-agent-fallback.png b/qa-artifacts/studio-inspector-selection-ux/notion-showcase/raster-text-ask-agent-fallback.png new file mode 100644 index 0000000000000000000000000000000000000000..c82c10c95d65bc5c5664cdccbbd8a6be4daff592 GIT binary patch literal 200984 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

jn^(PDj!oYU|- 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