diff --git a/packages/studio/src/components/editor/domEditingLayers.ts b/packages/studio/src/components/editor/domEditingLayers.ts index 97711583d..ff1fc9fce 100644 --- a/packages/studio/src/components/editor/domEditingLayers.ts +++ b/packages/studio/src/components/editor/domEditingLayers.ts @@ -12,6 +12,7 @@ import type { } from "./domEditingTypes"; import { buildStableSelector, + findClosestByAttribute, getCuratedComputedStyles, getDataAttributes, getInlineStyles, @@ -318,6 +319,7 @@ export function resolveDomEditSelection( compositionPath, compositionSrc, isCompositionHost: Boolean(compositionSrc), + isInsideLockedComposition: Boolean(findClosestByAttribute(current, ["data-timeline-locked"])), label: buildElementLabel(current), tagName: current.tagName.toLowerCase(), boundingBox: { @@ -488,7 +490,11 @@ export function getDomEditTargetKey( } export function isTextEditableSelection(selection: DomEditSelection): boolean { - return selection.textFields.length > 0 && !selection.isCompositionHost; + return ( + selection.textFields.length > 0 && + !selection.isCompositionHost && + !selection.isInsideLockedComposition + ); } // buildElementAgentPrompt is in domEditingAgentPrompt.ts diff --git a/packages/studio/src/components/editor/domEditingTypes.ts b/packages/studio/src/components/editor/domEditingTypes.ts index b11fc519d..52446ed89 100644 --- a/packages/studio/src/components/editor/domEditingTypes.ts +++ b/packages/studio/src/components/editor/domEditingTypes.ts @@ -78,6 +78,7 @@ export interface DomEditSelection extends PatchTarget { compositionPath: string; compositionSrc?: string; isCompositionHost: boolean; + isInsideLockedComposition: boolean; boundingBox: { x: number; y: number; width: number; height: number }; textContent: string | null; dataAttributes: Record;