From d242c739482dc9f88e6eb85b8f0a44f6e830302b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miguel=20=C3=81ngel?= Date: Sun, 17 May 2026 17:13:52 +0000 Subject: [PATCH] test: regenerate style-1-prod baseline after linkedom fragment fix The sub-composition inlining now correctly preserves composition IDs when the host data-composition-id differs from the inner root's (e.g., host "captions-comp" with inner root "captions"). The captions layer renders with proper scoping, changing visual output. Baseline regenerated inside Docker per CLAUDE.md. Co-Authored-By: Claude Sonnet 4.6 --- .../tests/style-1-prod/output/compiled.html | 1552 +++++++++++------ .../tests/style-1-prod/output/output.mp4 | 4 +- 2 files changed, 1021 insertions(+), 535 deletions(-) diff --git a/packages/producer/tests/style-1-prod/output/compiled.html b/packages/producer/tests/style-1-prod/output/compiled.html index b4efea1d0..eb92470e1 100644 --- a/packages/producer/tests/style-1-prod/output/compiled.html +++ b/packages/producer/tests/style-1-prod/output/compiled.html @@ -1,94 +1,94 @@ - + - - - - +@font-face { + font-family: "Arial Black"; + src: url("data:font/woff2;base64,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") format("woff2"); + font-style: normal; + font-weight: 900; + font-display: block; +} + + Geometric Bold - Ikko Tanaka Style - - + } -
- -
+
+ +
-
- -
-
-
ASKED & ANSWERED
-
+
+ +
+
+
ASKED & ANSWERED
+
- -
-
-
47%
-
NEED MOTION
-
+ +
+
+
47%
+
NEED MOTION
+
- -
-
-
62%
-
INEFFECTIVE
-
-
- - -
-
-
75%
-
LACK SKILLS
-
- - -
-
-
EDITOR AGENT
-
+ +
+
+
62%
+
INEFFECTIVE
+
+ + +
+
+
75%
+
LACK SKILLS
+
+ + +
+
+
EDITOR AGENT
+
+ + + + +
-
-
-
-
-
+
+
+ + + + +
- + + +
- - + + }).call(window, __hfScopedDocument, __hfScopedGsap, __hfScopedWindow, __hfScopedHyperframes); + } catch (_err) { + console.error(__hfErrorLabel, __hfCompId, _err); + } + }; + __hfFindRoot(); + __hfRun(); +})(); +; +(function(){ + var __hfCompId = "captions-comp"; + var __hfTimelineCompId = "captions-comp"; + var __hfErrorLabel = "[Compiler] Composition script failed"; + var __hfAuthoredRootId = null; + var __hfAuthoredRootAttr = "data-hf-authored-id"; + var __hfEscapeAttr = function(value) { + return (value + "").replace(/\\/g, "\\\\").replace(/"/g, "\\\""); + }; + var __hfRootSelector = "[data-composition-id=\"captions-comp\"]" || (__hfCompId + ? '[data-composition-id="' + __hfEscapeAttr(__hfCompId) + '"]' + : ""); + var __hfRoot = null; + var __hfRootSelectorPattern = "\\[\\s*data-composition-id\\s*=\\s*(?:\"captions-comp\"|'captions-comp')\\s*\\]"; + var __hfTimingSelectorPattern = "\\s*\\[\\s*data-(?:start|duration)\\s*=\\s*(?:\"[^\"]*\"|'[^']*')\\s*\\]"; + var __hfAuthoredRootIdForms = []; + var __hfAuthoredRootSelector = __hfAuthoredRootId + ? "[" + __hfAuthoredRootAttr + '="' + __hfEscapeAttr(__hfAuthoredRootId) + '"]' + : ""; + var __hfIsSelectorNameChar = function(char) { + return !!char && /[\w-]/.test(char); + }; + var __hfReplaceAuthoredRootIdSelectors = function(selector) { + if (!__hfAuthoredRootSelector || !__hfAuthoredRootIdForms.length || typeof selector !== "string") { + return selector; + } + var result = ""; + var bracketDepth = 0; + var quote = null; + for (var index = 0; index < selector.length; index += 1) { + var char = selector[index]; + var previousChar = index > 0 ? selector[index - 1] : ""; + if (quote) { + result += char; + if (char === quote && previousChar !== "\\") { + quote = null; + } + continue; + } + if (char === '"' || char === "'") { + quote = char; + result += char; + continue; + } + if (char === "[") { + bracketDepth += 1; + result += char; + continue; + } + if (char === "]") { + bracketDepth = Math.max(0, bracketDepth - 1); + result += char; + continue; + } + if (char === "#" && bracketDepth === 0) { + var matchedForm = null; + for (var formIndex = 0; formIndex < __hfAuthoredRootIdForms.length; formIndex += 1) { + var form = __hfAuthoredRootIdForms[formIndex]; + if (selector.slice(index + 1, index + 1 + form.length) === form) { + matchedForm = form; + break; + } + } + if (matchedForm) { + var nextChar = selector[index + 1 + matchedForm.length]; + if (!__hfIsSelectorNameChar(nextChar)) { + result += __hfAuthoredRootSelector; + index += matchedForm.length; + continue; + } + } + } + result += char; + } + return result; + }; + var __hfNormalizeSelector = function(selector) { + if (!__hfCompId || typeof selector !== "string") return selector; + var normalized = selector + .replace(new RegExp(__hfRootSelectorPattern + '(?:' + __hfTimingSelectorPattern + ')+', 'g'), __hfRootSelector) + .replace(new RegExp('(?:' + __hfTimingSelectorPattern + ')+' + __hfRootSelectorPattern, 'g'), __hfRootSelector); + if (__hfAuthoredRootSelector) { + normalized = __hfReplaceAuthoredRootIdSelectors(normalized); + } + return normalized; + }; + var __hfFindRoot = function() { + if (!__hfRoot && __hfRootSelector) { + __hfRoot = window.document.querySelector(__hfRootSelector); + } + return __hfRoot; + }; + var __hfContains = function(node) { + var root = __hfFindRoot(); + return !root || node === root || root.contains(node); + }; + var __hfQueryAll = function(selector) { + var root = __hfFindRoot(); + if (!root || typeof selector !== "string") { + return window.document.querySelectorAll(selector); + } + return Array.prototype.filter.call(window.document.querySelectorAll(__hfNormalizeSelector(selector)), function(node) { + return __hfContains(node); + }); + }; + var __hfQueryOne = function(selector) { + var matches = __hfQueryAll(selector); + return matches[0] || null; + }; + var __hfGetElementById = function(id) { + var found = window.document.getElementById(id); + if (found && __hfContains(found)) return found; + var root = __hfFindRoot(); + if (!root) return found || null; + var idValue = id + ""; + if (__hfAuthoredRootId && __hfAuthoredRootId === idValue && root.getAttribute && root.getAttribute(__hfAuthoredRootAttr) === idValue) { + return root; + } + if (root.id === idValue) return root; + if (typeof root.querySelector !== "function") return null; + try { + var authoredRootMatch = root.querySelector('[' + __hfAuthoredRootAttr + '="' + __hfEscapeAttr(idValue) + '"]'); + if (authoredRootMatch) return authoredRootMatch; + } catch {} + if (typeof CSS !== "undefined" && CSS && typeof CSS.escape === "function") { + try { + return root.querySelector("#" + CSS.escape(idValue)) || null; + } catch {} + } + try { + return root.querySelector('[id="' + __hfEscapeAttr(idValue) + '"]') || null; + } catch {} + return null; + }; + var __hfScopedDocument = typeof Proxy === "function" + ? new Proxy(window.document, { + get: function(target, prop, receiver) { + if (prop === "querySelector") return __hfQueryOne; + if (prop === "querySelectorAll") return __hfQueryAll; + if (prop === "getElementById") return __hfGetElementById; + var value = Reflect.get(target, prop, target); + return typeof value === "function" ? value.bind(target) : value; + }, + }) + : window.document; + var __hfTimelineRegistryProxy = null; + var __hfGetTimelineRegistry = function() { + window.__timelines = window.__timelines || {}; + if (!__hfCompId || __hfCompId === __hfTimelineCompId || typeof Proxy !== "function") { + return window.__timelines; + } + if (!__hfTimelineRegistryProxy) { + __hfTimelineRegistryProxy = new Proxy(window.__timelines, { + get: function(target, prop, receiver) { + return Reflect.get(target, prop === __hfCompId ? __hfTimelineCompId : prop, target); + }, + set: function(target, prop, value, receiver) { + return Reflect.set(target, prop === __hfCompId ? __hfTimelineCompId : prop, value, target); + }, + }); + } + return __hfTimelineRegistryProxy; + }; + var __hfScopedWindow = typeof Proxy === "function" + ? new Proxy(window, { + get: function(target, prop, receiver) { + if (prop === "__timelines") return __hfGetTimelineRegistry(); + var value = Reflect.get(target, prop, target); + return typeof value === "function" ? value.bind(target) : value; + }, + set: function(target, prop, value, receiver) { + if (prop === "__timelines") { + target.__timelines = value || {}; + __hfTimelineRegistryProxy = null; + return true; + } + return Reflect.set(target, prop, value, target); + }, + }) + : window; + var __hfResolveGsapTarget = function(target) { + if (typeof target !== "string") return target; + return __hfQueryAll(target); + }; + var __hfScopeTimeline = function(timeline) { + if (!timeline || timeline.__hfScopedCompositionRoot === __hfFindRoot()) return timeline; + ["to", "from", "fromTo", "set"].forEach(function(method) { + var original = timeline[method]; + if (typeof original !== "function") return; + timeline[method] = function(target) { + var args = Array.prototype.slice.call(arguments); + args[0] = __hfResolveGsapTarget(target); + return original.apply(timeline, args); + }; + }); + try { + Object.defineProperty(timeline, "__hfScopedCompositionRoot", { + value: __hfFindRoot(), + configurable: true, + }); + } catch { + // Best-effort: timelines coming from user code may have a frozen target + // or a non-extensible defineProperty path. Swallow — the scoped root + // is an enrichment, not a correctness invariant for playback. + } + return timeline; + }; + var __hfBaseGsap = typeof gsap === "undefined" ? window.gsap : gsap; + var __hfScopedGsap = !__hfBaseGsap || typeof Proxy !== "function" + ? __hfBaseGsap + : new Proxy(__hfBaseGsap, { + get: function(target, prop, receiver) { + if (prop === "timeline") { + return function() { + return __hfScopeTimeline(target.timeline.apply(target, arguments)); + }; + } + if (prop === "to" || prop === "from" || prop === "fromTo" || prop === "set") { + return function(firstArg) { + var args = Array.prototype.slice.call(arguments); + args[0] = __hfResolveGsapTarget(firstArg); + return target[prop].apply(target, args); + }; + } + if (prop === "utils" && target.utils && typeof Proxy === "function") { + return new Proxy(target.utils, { + get: function(utilsTarget, utilsProp, utilsReceiver) { + if (utilsProp === "toArray") { + return function(firstArg) { + var args = Array.prototype.slice.call(arguments); + args[0] = __hfResolveGsapTarget(firstArg); + return utilsTarget.toArray.apply(utilsTarget, args); + }; + } + if (utilsProp === "selector") { + return function(base) { + var baseEl = typeof base === "string" ? __hfQueryOne(base) : base; + var root = baseEl || __hfFindRoot(); + return function(selector) { + if (!root || typeof selector !== "string") return []; + return Array.prototype.filter.call( + window.document.querySelectorAll(__hfNormalizeSelector(selector)), + function(node) { + return node === root || (typeof root.contains === "function" && root.contains(node)); + }, + ); + }; + }; + } + var value = Reflect.get(utilsTarget, utilsProp, utilsTarget); + return typeof value === "function" ? value.bind(utilsTarget) : value; + }, + }); + } + var value = Reflect.get(target, prop, target); + return typeof value === "function" ? value.bind(target) : value; + }, + }); + var __hfBaseHyperframes = window.__hyperframes; + var __hfScopedHyperframes = !__hfBaseHyperframes + ? __hfBaseHyperframes + : Object.assign({}, __hfBaseHyperframes, { + getVariables: function() { + var byComp = window.__hfVariablesByComp; + var scoped = byComp && __hfTimelineCompId ? byComp[__hfTimelineCompId] : null; + return scoped ? Object.assign({}, scoped) : {}; + }, + }); + var __hfRun = function() { + try { + (function(document, gsap, window, __hyperframes) { + + (function () { + const TRANSCRIPT = [ + { text: "We", start: 0.119, end: 0.259 }, + { text: "asked", start: 0.319, end: 0.479 }, + { text: "what", start: 0.519, end: 0.659 }, + { text: "you", start: 0.699, end: 0.819 }, + { text: "needed.", start: 0.859, end: 1.819 }, + { text: "Forty-seven", start: 1.86, end: 2.299 }, + { text: "percent", start: 2.399, end: 2.679 }, + { text: "of", start: 2.7, end: 2.799 }, + { text: "you", start: 2.839, end: 2.939 }, + { text: "said", start: 3.039, end: 3.179 }, + { text: "motion", start: 3.24, end: 3.559 }, + { text: "graphics,", start: 3.579, end: 4.599 }, + { text: "sixty-two", start: 4.679, end: 5.179 }, + { text: "percent", start: 5.299, end: 5.759 }, + { text: "said", start: 5.859, end: 5.98 }, + { text: "static", start: 6.079, end: 6.399 }, + { text: "content", start: 6.46, end: 6.879 }, + { text: "was", start: 6.92, end: 7.079 }, + { text: "costing", start: 7.099, end: 7.48 }, + { text: "you", start: 7.5, end: 7.579 }, + { text: "attention,", start: 7.679, end: 8.659 }, + { text: "and", start: 8.699, end: 8.86 }, + { text: "three", start: 8.88, end: 9.06 }, + { text: "out", start: 9.079, end: 9.18 }, + { text: "of", start: 9.199, end: 9.34 }, + { text: "four", start: 9.38, end: 9.799 }, + { text: "said", start: 9.84, end: 10.0 }, + { text: "you", start: 10.019, end: 10.159 }, + { text: "know", start: 10.179, end: 10.36 }, + { text: "the", start: 10.38, end: 10.42 }, + { text: "look", start: 10.519, end: 10.699 }, + { text: "you", start: 10.739, end: 10.859 }, + { text: "want,", start: 10.98, end: 11.34 }, + { text: "but", start: 11.359, end: 11.52 }, + { text: "don't", start: 11.56, end: 11.779 }, + { text: "have", start: 11.819, end: 11.94 }, + { text: "the", start: 11.96, end: 12.06 }, + { text: "editing", start: 12.079, end: 12.4 }, + { text: "skills", start: 12.52, end: 12.859 }, + { text: "to", start: 12.88, end: 13.0 }, + { text: "get", start: 13.019, end: 13.18 }, + { text: "there.", start: 13.22, end: 14.22 }, + { text: "So", start: 14.239, end: 14.399 }, + { text: "we", start: 14.42, end: 14.52 }, + { text: "built", start: 14.619, end: 14.88 }, + { text: "Editor", start: 15.079, end: 15.42 }, + { text: "Agent.", start: 15.619, end: 16.02 }, + ]; + const container = document.getElementById("captions-container"); + const tl = gsap.timeline({ paused: true }); + + const lines = []; + let currentLine = []; + + TRANSCRIPT.forEach((word, index) => { + currentLine.push(word); + if (currentLine.length === 5 || index === TRANSCRIPT.length - 1) { + lines.push({ + words: [...currentLine], + text: currentLine + .map((w) => w.text) + .join(" ") + .toUpperCase(), + }); + currentLine = []; + } + }); + + lines.forEach((line, index) => { + const startTime = line.words[0].start; + const endTime = line.words[line.words.length - 1].end; + + const lineEl = document.createElement("div"); + lineEl.className = "caption-line"; + lineEl.textContent = line.text; + container.appendChild(lineEl); + + // Center the line element relative to the container + gsap.set(lineEl, { left: "50%", xPercent: -50 }); + + tl.to( + lineEl, + { + opacity: 1, + y: -20, + duration: 0.2, + ease: "power2.out", + }, + startTime, + ); + + tl.to( + lineEl, + { + opacity: 0, + y: -40, + duration: 0.1, + ease: "power2.in", + }, + endTime, + ); + }); + + window.__timelines["captions"] = tl; + })(); + + }).call(window, __hfScopedDocument, __hfScopedGsap, __hfScopedWindow, __hfScopedHyperframes); + } catch (_err) { + console.error(__hfErrorLabel, __hfCompId, _err); + } + }; + __hfFindRoot(); + __hfRun(); +})(); diff --git a/packages/producer/tests/style-1-prod/output/output.mp4 b/packages/producer/tests/style-1-prod/output/output.mp4 index 65819d2f9..9924f5957 100644 --- a/packages/producer/tests/style-1-prod/output/output.mp4 +++ b/packages/producer/tests/style-1-prod/output/output.mp4 @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:6aba60a5a3919132986e785b89f4b3434d23d337d95958a515b1fe2e11906721 -size 5154704 +oid sha256:033fd8089a154282cbc5c8ebe1dcb99608662e9d0dab9f3cffb2b790627d214a +size 8392067