diff --git a/.filesize-allowlist b/.filesize-allowlist index b0cfc09e1..d2dff0d55 100644 --- a/.filesize-allowlist +++ b/.filesize-allowlist @@ -10,3 +10,4 @@ packages/studio/src/App.tsx packages/studio/src/player/components/Timeline.tsx packages/studio/src/player/components/timelineEditing.test.ts packages/studio/src/components/editor/domEditing.test.ts +packages/studio/src/components/editor/domEditingLayers.ts diff --git a/packages/studio/src/components/editor/domEditingLayers.ts b/packages/studio/src/components/editor/domEditingLayers.ts index ff1fc9fce..4d3521587 100644 --- a/packages/studio/src/components/editor/domEditingLayers.ts +++ b/packages/studio/src/components/editor/domEditingLayers.ts @@ -176,18 +176,21 @@ export function resolveDomEditCapabilities(args: { inlineStyles: Record; computedStyles: Record; isCompositionHost: boolean; + isInsideLockedComposition: boolean; isMasterView: boolean; }): DomEditCapabilities { - if (!args.selector) { + if (!args.selector || args.isInsideLockedComposition) { return { - canSelect: false, + canSelect: !args.isInsideLockedComposition, canEditStyles: false, canMove: false, canResize: false, canApplyManualOffset: false, canApplyManualSize: false, canApplyManualRotation: false, - reasonIfDisabled: "Studio could not resolve a stable patch target for this element.", + reasonIfDisabled: args.isInsideLockedComposition + ? "This element belongs to a locked composition." + : "Studio could not resolve a stable patch target for this element.", }; } @@ -299,6 +302,7 @@ export function resolveDomEditSelection( const inlineStyles = getInlineStyles(current); const computedStyles = getCuratedComputedStyles(current); const textFields = collectDomEditTextFields(current); + const isInsideLocked = Boolean(findClosestByAttribute(current, ["data-timeline-locked"])); const capabilities = resolveDomEditCapabilities({ selector, tagName: current.tagName.toLowerCase(), @@ -306,6 +310,7 @@ export function resolveDomEditSelection( inlineStyles, computedStyles, isCompositionHost: Boolean(compositionSrc), + isInsideLockedComposition: isInsideLocked, isMasterView: options.isMasterView, }); const rect = current.getBoundingClientRect(); @@ -319,7 +324,7 @@ export function resolveDomEditSelection( compositionPath, compositionSrc, isCompositionHost: Boolean(compositionSrc), - isInsideLockedComposition: Boolean(findClosestByAttribute(current, ["data-timeline-locked"])), + isInsideLockedComposition: isInsideLocked, label: buildElementLabel(current), tagName: current.tagName.toLowerCase(), boundingBox: {