@argo-video/cli 0.23.0 → 0.25.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. package/README.md +49 -1
  2. package/dist/camera-move.d.ts +14 -0
  3. package/dist/camera-move.d.ts.map +1 -1
  4. package/dist/camera-move.js +44 -0
  5. package/dist/camera-move.js.map +1 -1
  6. package/dist/cli.d.ts.map +1 -1
  7. package/dist/cli.js +17 -1
  8. package/dist/cli.js.map +1 -1
  9. package/dist/config.d.ts +41 -0
  10. package/dist/config.d.ts.map +1 -1
  11. package/dist/config.js.map +1 -1
  12. package/dist/export.d.ts +13 -1
  13. package/dist/export.d.ts.map +1 -1
  14. package/dist/export.js +50 -1
  15. package/dist/export.js.map +1 -1
  16. package/dist/frame.d.ts +35 -0
  17. package/dist/frame.d.ts.map +1 -0
  18. package/dist/frame.js +182 -0
  19. package/dist/frame.js.map +1 -0
  20. package/dist/index.d.ts +4 -3
  21. package/dist/index.d.ts.map +1 -1
  22. package/dist/index.js +3 -1
  23. package/dist/index.js.map +1 -1
  24. package/dist/media.d.ts +14 -0
  25. package/dist/media.d.ts.map +1 -1
  26. package/dist/media.js +86 -0
  27. package/dist/media.js.map +1 -1
  28. package/dist/overlays/templates.d.ts.map +1 -1
  29. package/dist/overlays/templates.js +32 -0
  30. package/dist/overlays/templates.js.map +1 -1
  31. package/dist/overlays/types.d.ts +22 -2
  32. package/dist/overlays/types.d.ts.map +1 -1
  33. package/dist/overlays/types.js +5 -0
  34. package/dist/overlays/types.js.map +1 -1
  35. package/dist/pipeline.d.ts.map +1 -1
  36. package/dist/pipeline.js +20 -3
  37. package/dist/pipeline.js.map +1 -1
  38. package/dist/preview.d.ts +7 -0
  39. package/dist/preview.d.ts.map +1 -1
  40. package/dist/preview.js +107 -131
  41. package/dist/preview.js.map +1 -1
  42. package/dist/speed-ramp.d.ts +7 -2
  43. package/dist/speed-ramp.d.ts.map +1 -1
  44. package/dist/speed-ramp.js +30 -10
  45. package/dist/speed-ramp.js.map +1 -1
  46. package/package.json +1 -1
package/dist/pipeline.js CHANGED
@@ -162,12 +162,23 @@ export async function runPipeline(demoName, config, pipelineOpts) {
162
162
  shiftedDurationMs = totalDurationMs - headTrimMs;
163
163
  shiftedPlacements = shiftPlacements(buildPlacementsFromTimingAndDurations(timing, sceneDurations, totalDurationMs), headTrimMs);
164
164
  }
165
- const speedRampPlan = applySpeedRampToTimeline(shiftedPlacements, shiftedDurationMs, config.export.speedRamp);
166
- // Read freeze-frame holds from scenes manifest `post` arrays
165
+ // Read per-scene playback speeds from scenes manifest
167
166
  const manifestPath = `${config.demosDir}/${demoName}.scenes.json`;
167
+ const sceneSpeeds = {};
168
+ let rawManifest = [];
169
+ try {
170
+ rawManifest = JSON.parse(readFileSync(manifestPath, 'utf-8'));
171
+ for (const entry of rawManifest) {
172
+ if (entry.scene && typeof entry.playbackSpeed === 'number' && entry.playbackSpeed !== 1.0) {
173
+ sceneSpeeds[entry.scene] = entry.playbackSpeed;
174
+ }
175
+ }
176
+ }
177
+ catch { /* handled elsewhere */ }
178
+ const speedRampPlan = applySpeedRampToTimeline(shiftedPlacements, shiftedDurationMs, config.export.speedRamp, Object.keys(sceneSpeeds).length > 0 ? sceneSpeeds : undefined);
179
+ // Read freeze-frame holds from scenes manifest `post` arrays
168
180
  const freezeSpecs = [];
169
181
  try {
170
- const rawManifest = JSON.parse(readFileSync(manifestPath, 'utf-8'));
171
182
  for (const entry of rawManifest) {
172
183
  if (!entry.scene || !Array.isArray(entry.post))
173
184
  continue;
@@ -243,6 +254,9 @@ export async function runPipeline(demoName, config, pipelineOpts) {
243
254
  musicPath: config.export.audio?.music,
244
255
  musicVolume: config.export.audio?.musicVolume,
245
256
  watermark: config.export.watermark,
257
+ sharpen: config.export.sharpen,
258
+ frame: config.export.frame,
259
+ motionBlur: config.export.motionBlur,
246
260
  overlayPngs,
247
261
  };
248
262
  if (resolvedFreezes.length > 0) {
@@ -423,6 +437,9 @@ export async function runPipeline(demoName, config, pipelineOpts) {
423
437
  musicVolume: config.export.audio?.musicVolume,
424
438
  cameraMoves: variantCameraMoves.length > 0 ? variantCameraMoves : undefined,
425
439
  watermark: config.export.watermark,
440
+ sharpen: config.export.sharpen,
441
+ frame: config.export.frame,
442
+ motionBlur: config.export.motionBlur,
426
443
  freezeSpecs: variantResolvedFreezes.length > 0 ? variantResolvedFreezes : undefined,
427
444
  overlayPngs: variantOverlayPngs,
428
445
  });
@@ -1 +1 @@
1
- {"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../src/pipeline.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../src/pipeline.ts"],"names":[],"mappings":"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"}
package/dist/preview.d.ts CHANGED
@@ -22,6 +22,13 @@ export interface PreviewExportConfig {
22
22
  musicPath?: string;
23
23
  musicVolume?: number;
24
24
  watermark?: import('./config.js').WatermarkConfig;
25
+ sharpen?: boolean | {
26
+ strength: number;
27
+ };
28
+ frame?: import('./config.js').FrameConfig;
29
+ motionBlur?: boolean | {
30
+ intensity: number;
31
+ };
25
32
  }
26
33
  export interface PreviewOptions {
27
34
  demoName: string;
@@ -1 +1 @@
1
- {"version":3,"file":"preview.d.ts","sourceRoot":"","sources":["../src/preview.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAqBH,MAAM,WAAW,mBAAmB;IAClC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,KAAK,CAAC,KAAK,GAAG,MAAM,GAAG,KAAK,CAAC,CAAC;IACxC,UAAU,CAAC,EAAE,OAAO,aAAa,EAAE,gBAAgB,CAAC;IACpD,SAAS,CAAC,EAAE,OAAO,aAAa,EAAE,eAAe,CAAC;IAClD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,aAAa,EAAE,eAAe,CAAC;CACnD;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,WAAW,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACjD,YAAY,CAAC,EAAE,mBAAmB,CAAC;IACnC,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAClF;AA2cD,wBAAsB,kBAAkB,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,IAAI,CAAA;CAAE,CAAC,CAmnB7G"}
1
+ {"version":3,"file":"preview.d.ts","sourceRoot":"","sources":["../src/preview.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAqBH,MAAM,WAAW,mBAAmB;IAClC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,KAAK,CAAC,KAAK,GAAG,MAAM,GAAG,KAAK,CAAC,CAAC;IACxC,UAAU,CAAC,EAAE,OAAO,aAAa,EAAE,gBAAgB,CAAC;IACpD,SAAS,CAAC,EAAE,OAAO,aAAa,EAAE,eAAe,CAAC;IAClD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,aAAa,EAAE,eAAe,CAAC;IAClD,OAAO,CAAC,EAAE,OAAO,GAAG;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IACzC,KAAK,CAAC,EAAE,OAAO,aAAa,EAAE,WAAW,CAAC;IAC1C,UAAU,CAAC,EAAE,OAAO,GAAG;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;CAC9C;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,WAAW,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACjD,YAAY,CAAC,EAAE,mBAAmB,CAAC;IACnC,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAClF;AA2cD,wBAAsB,kBAAkB,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,IAAI,CAAA;CAAE,CAAC,CA8nB7G"}
package/dist/preview.js CHANGED
@@ -714,7 +714,15 @@ export async function startPreviewServer(options) {
714
714
  : (ec?.musicVolume ?? 0.15);
715
715
  const exportMusicPath = includeBgm ? (activeMusicPath ?? ec?.musicPath) : undefined;
716
716
  const effectiveSpeedRamp = importedVideo ? undefined : ec?.speedRamp;
717
- const rampResult = applySpeedRampToTimeline(placements, shiftedDurationMs, effectiveSpeedRamp);
717
+ // Read per-scene playback speeds from manifest (same as pipeline)
718
+ const sceneSpeeds = {};
719
+ for (const entry of scenes) {
720
+ if (entry.scene && typeof entry.playbackSpeed === 'number' && entry.playbackSpeed !== 1.0) {
721
+ sceneSpeeds[entry.scene] = entry.playbackSpeed;
722
+ }
723
+ }
724
+ const hasSceneSpeeds = Object.keys(sceneSpeeds).length > 0 ? sceneSpeeds : undefined;
725
+ const rampResult = applySpeedRampToTimeline(placements, shiftedDurationMs, effectiveSpeedRamp, hasSceneSpeeds);
718
726
  const finalPlacements = rampResult.placements;
719
727
  const finalDurationMs = rampResult.totalDurationMs;
720
728
  const speedRampSegments = rampResult.segments.length > 0 ? rampResult.segments : undefined;
@@ -798,6 +806,9 @@ export async function startPreviewServer(options) {
798
806
  musicVolume: requestedMusicVolume,
799
807
  cameraMoves,
800
808
  watermark: ec?.watermark,
809
+ sharpen: ec?.sharpen,
810
+ frame: ec?.frame,
811
+ motionBlur: ec?.motionBlur,
801
812
  freezeSpecs: previewResolvedFreezes.length > 0 ? previewResolvedFreezes : undefined,
802
813
  overlayPngs,
803
814
  });
@@ -1290,6 +1301,9 @@ const PREVIEW_HTML = `<!DOCTYPE html>
1290
1301
  .overlay-cue.overlay-draggable {
1291
1302
  cursor: grab;
1292
1303
  user-select: none;
1304
+ /* pointer-events only on visible overlays — invisible ones must not intercept clicks */
1305
+ }
1306
+ .overlay-cue.overlay-draggable.visible {
1293
1307
  pointer-events: auto;
1294
1308
  }
1295
1309
  .overlay-cue.overlay-draggable:active {
@@ -2120,7 +2134,7 @@ function renderTimelineMarkers() {
2120
2134
  marker.className = 'timeline-scene';
2121
2135
  marker.style.left = pct + '%';
2122
2136
  marker.style.width = Math.max(widthPct, 2) + '%';
2123
- const hasOverlay = DATA.overlays.find(o => o.scene === s.name);
2137
+ const hasOverlay = s.overlay?.type;
2124
2138
  marker.innerHTML = esc(s.name) + (hasOverlay ? '<span class="has-overlay"></span>' : '');
2125
2139
  marker.dataset.scene = s.name;
2126
2140
  marker.addEventListener('click', (e) => {
@@ -2474,37 +2488,26 @@ document.addEventListener('mouseup', (e) => {
2474
2488
  // Update the data-zone attribute so CSS positioning applies
2475
2489
  el.dataset.zone = zone;
2476
2490
 
2477
- // Update the placement dropdown in the scene card (no change event — avoids re-rendering all overlays)
2478
- const placeEl = document.querySelector('select[data-scene="' + sceneName + '"][data-field="overlay-placement"]');
2479
- if (placeEl) {
2480
- placeEl.value = zone;
2481
- }
2482
-
2483
- // Update the scene's overlay data directly
2491
+ // Update s.overlay (single source of truth)
2484
2492
  const s = scenes.find(sc => sc.name === sceneName);
2485
2493
  if (s && s.overlay) {
2486
2494
  s.overlay.placement = zone;
2487
2495
  }
2488
- const dataOverlay = DATA.overlays.find(o => o.scene === sceneName);
2489
- if (dataOverlay) {
2490
- dataOverlay.placement = zone;
2496
+
2497
+ // Update the placement dropdown for visual consistency
2498
+ const placeEl = document.querySelector('select[data-scene="' + sceneName + '"][data-field="overlay-placement"]');
2499
+ if (placeEl) {
2500
+ placeEl.value = zone;
2491
2501
  }
2502
+
2503
+ // Update rendered data so renderOverlayElements stays in sync
2492
2504
  if (DATA.renderedOverlays[sceneName]) {
2493
2505
  DATA.renderedOverlays[sceneName].zone = zone;
2494
2506
  }
2495
2507
 
2496
2508
  hideSnapZones();
2497
2509
  markDirty();
2498
- // Keep isOverlayDragging true until after the wireOverlayListeners debounce (300ms)
2499
- // would have fired, to prevent any overlay field handler from triggering a re-render
2500
- setTimeout(() => { isOverlayDragging = false; }, 500);
2501
-
2502
- // Placement-only drag should not trigger a full overlay preview refresh:
2503
- // previewOverlays() re-scrapes every scene card from the DOM, which can
2504
- // pull stale values from other scenes while the user is dragging. The
2505
- // dragged element already has the new zone applied locally.
2506
- updateOverlayVisibility(video.currentTime * 1000);
2507
-
2510
+ isOverlayDragging = false;
2508
2511
  dragState = null;
2509
2512
  });
2510
2513
 
@@ -2776,7 +2779,7 @@ function updateOverlayFieldsForScene(sceneName) {
2776
2779
  // Re-wire event listeners for the new overlay fields
2777
2780
  wireOverlayListeners(sceneName);
2778
2781
  // Trigger preview to show the overlay immediately after type change
2779
- previewOverlays();
2782
+ renderSingleSceneOverlay(sceneName);
2780
2783
  }
2781
2784
  }
2782
2785
 
@@ -2784,41 +2787,80 @@ function wireOverlayListeners(sceneName) {
2784
2787
  const card = document.querySelector('.scene-card[data-scene="' + sceneName + '"]');
2785
2788
  if (!card) return;
2786
2789
  let debounceTimer;
2787
- card.querySelectorAll('[data-field^="overlay"]').forEach(input => {
2790
+
2791
+ // Type change — special: re-renders the dynamic fields
2792
+ const typeSelect = card.querySelector('select[data-field="overlay-type"]');
2793
+ if (typeSelect) {
2794
+ typeSelect.addEventListener('change', () => {
2795
+ const s = scenes.find(sc => sc.name === sceneName);
2796
+ if (!s) return;
2797
+ const type = typeSelect.value;
2798
+ if (!type) {
2799
+ s.overlay = undefined;
2800
+ } else {
2801
+ s.overlay = { ...(s.overlay ?? {}), type };
2802
+ }
2803
+ updateOverlayFieldsForScene(sceneName);
2804
+ });
2805
+ }
2806
+
2807
+ // All other overlay fields — update s.overlay directly
2808
+ card.querySelectorAll('[data-field^="overlay-"]').forEach(input => {
2809
+ const field = input.dataset.field;
2810
+ if (field === 'overlay-type') return; // handled above
2811
+
2788
2812
  const handler = () => {
2813
+ const s = scenes.find(sc => sc.name === sceneName);
2814
+ if (!s || !s.overlay) return;
2815
+
2816
+ // Map field name to overlay property
2817
+ if (field === 'overlay-placement') s.overlay.placement = input.value;
2818
+ else if (field === 'overlay-motion') {
2819
+ if (input.value && input.value !== 'none') s.overlay.motion = input.value;
2820
+ else delete s.overlay.motion;
2821
+ }
2822
+ else if (field === 'overlay-text') {
2823
+ if (s.overlay.type === 'lower-third' || s.overlay.type === 'callout') {
2824
+ s.overlay.text = input.value;
2825
+ } else {
2826
+ s.overlay.title = input.value;
2827
+ }
2828
+ }
2829
+ else if (field === 'overlay-body') s.overlay.body = input.value || undefined;
2830
+ else if (field === 'overlay-kicker') s.overlay.kicker = input.value || undefined;
2831
+ else if (field === 'overlay-src') s.overlay.src = input.value || undefined;
2832
+
2789
2833
  markDirty();
2790
- // Skip full re-render during overlay drag — drag only changes placement
2834
+
2835
+ // Skip render during drag
2791
2836
  if (isOverlayDragging) return;
2792
- // Sync only THIS scene's overlay from DOM on field change
2793
- syncOverlayFormValuesForScene(sceneName);
2837
+
2838
+ // Debounce per-scene render
2794
2839
  clearTimeout(debounceTimer);
2795
- debounceTimer = setTimeout(() => {
2796
- // Only preview this scene's overlay, not all overlays
2797
- const singleOv = scenes.find(sc => sc.name === sceneName);
2798
- if (singleOv?.overlay) {
2799
- const ov = [{ ...singleOv.overlay, scene: sceneName }];
2800
- fetch('/api/render-overlays', {
2801
- method: 'POST',
2802
- headers: { 'Content-Type': 'application/json' },
2803
- body: JSON.stringify(ov),
2804
- }).then(r => r.json()).then(result => {
2805
- if (result.renderedOverlays?.[sceneName]) {
2806
- DATA.renderedOverlays[sceneName] = result.renderedOverlays[sceneName];
2807
- singleOv.rendered = result.renderedOverlays[sceneName];
2808
- renderOverlayElements();
2809
- updateOverlayVisibility(video.currentTime * 1000);
2810
- }
2811
- });
2812
- }
2813
- }, 300);
2840
+ debounceTimer = setTimeout(() => renderSingleSceneOverlay(sceneName), 300);
2814
2841
  };
2842
+
2815
2843
  input.addEventListener('input', handler);
2816
2844
  input.addEventListener('change', handler);
2817
2845
  });
2818
- // Re-wire the type change listener
2819
- const typeSelect = card.querySelector('select[data-field="overlay-type"]');
2820
- if (typeSelect) {
2821
- typeSelect.addEventListener('change', () => updateOverlayFieldsForScene(sceneName));
2846
+ }
2847
+
2848
+ async function renderSingleSceneOverlay(sceneName) {
2849
+ const s = scenes.find(sc => sc.name === sceneName);
2850
+ if (!s?.overlay?.type) return;
2851
+
2852
+ const ov = [{ ...s.overlay, scene: sceneName }];
2853
+ const resp = await fetch('/api/render-overlays', {
2854
+ method: 'POST',
2855
+ headers: { 'Content-Type': 'application/json' },
2856
+ body: JSON.stringify(ov),
2857
+ });
2858
+ const result = await resp.json();
2859
+ if (result.renderedOverlays?.[sceneName]) {
2860
+ DATA.renderedOverlays[sceneName] = result.renderedOverlays[sceneName];
2861
+ s.rendered = result.renderedOverlays[sceneName];
2862
+ renderOverlayElements();
2863
+ updateOverlayVisibility(video.currentTime * 1000);
2822
2864
  }
2823
2865
  }
2824
2866
 
@@ -3287,54 +3329,8 @@ function syncFormValuesToScenes() {
3287
3329
  const speedEl = document.querySelector('input[data-scene="' + s.name + '"][data-field="speed"]');
3288
3330
  if (speedEl?.value && s.vo) s.vo.speed = parseFloat(speedEl.value);
3289
3331
  }
3290
- syncOverlayFormValuesToScenes();
3291
3332
  }
3292
3333
 
3293
- function syncOverlayFormValuesForScene(sceneName) {
3294
- const s = scenes.find(sc => sc.name === sceneName);
3295
- if (!s) return;
3296
- const card = document.querySelector('.scene-card[data-scene="' + sceneName + '"]');
3297
- if (!card) return;
3298
-
3299
- const type = card.querySelector('[data-field="overlay-type"]')?.value ?? '';
3300
- if (!type) {
3301
- s.overlay = undefined;
3302
- return;
3303
- }
3304
-
3305
- const next = { ...(s.overlay ?? {}), type };
3306
- next.placement = card.querySelector('[data-field="overlay-placement"]')?.value ?? 'bottom-center';
3307
-
3308
- const motion = card.querySelector('[data-field="overlay-motion"]')?.value ?? 'none';
3309
- if (motion && motion !== 'none') next.motion = motion;
3310
- else delete next.motion;
3311
-
3312
- delete next.text;
3313
- delete next.title;
3314
- delete next.body;
3315
- delete next.kicker;
3316
- delete next.src;
3317
-
3318
- const text = card.querySelector('[data-field="overlay-text"]')?.value ?? '';
3319
- const body = card.querySelector('[data-field="overlay-body"]')?.value ?? '';
3320
- const kicker = card.querySelector('[data-field="overlay-kicker"]')?.value ?? '';
3321
- const src = card.querySelector('[data-field="overlay-src"]')?.value ?? '';
3322
-
3323
- if (type === 'lower-third' || type === 'callout') {
3324
- next.text = text;
3325
- } else {
3326
- next.title = text;
3327
- if (body) next.body = body;
3328
- if (type === 'headline-card' && kicker) next.kicker = kicker;
3329
- if (type === 'image-card' && src) next.src = src;
3330
- }
3331
-
3332
- s.overlay = next;
3333
- }
3334
-
3335
- function syncOverlayFormValuesToScenes() {
3336
- for (const s of scenes) syncOverlayFormValuesForScene(s.name);
3337
- }
3338
3334
 
3339
3335
  function collectVoiceover() {
3340
3336
  return scenes.map(s => {
@@ -3354,11 +3350,7 @@ function collectVoiceover() {
3354
3350
  }
3355
3351
 
3356
3352
  function collectOverlays() {
3357
- // Serialize from in-memory scene state only.
3358
- // Per-scene sync happens in wireOverlayListeners on each field change.
3359
- // Do NOT call syncOverlayFormValuesToScenes() here — it re-reads ALL
3360
- // scene cards from the DOM which can overwrite good in-memory data
3361
- // with stale DOM values from collapsed/unedited cards.
3353
+ // Serialize from s.overlay (single source of truth) — no DOM reading
3362
3354
  return scenes
3363
3355
  .filter(s => s.overlay?.type)
3364
3356
  .map(s => ({ ...s.overlay, scene: s.name }));
@@ -3373,7 +3365,7 @@ async function saveVoiceover() {
3373
3365
  });
3374
3366
  }
3375
3367
 
3376
- // Render-only preview (no disk write) — called on every overlay field edit
3368
+ // Render-only preview (no disk write) — called on overlay field edits
3377
3369
  async function previewOverlays() {
3378
3370
  const ov = collectOverlays();
3379
3371
  const resp = await fetch('/api/render-overlays', {
@@ -3384,9 +3376,7 @@ async function previewOverlays() {
3384
3376
  const result = await resp.json();
3385
3377
  if (result.renderedOverlays) {
3386
3378
  DATA.renderedOverlays = result.renderedOverlays;
3387
- DATA.overlays = ov;
3388
3379
  for (const s of scenes) {
3389
- s.overlay = DATA.overlays.find(o => o.scene === s.name);
3390
3380
  s.rendered = DATA.renderedOverlays[s.name];
3391
3381
  }
3392
3382
  renderOverlayElements();
@@ -3405,9 +3395,7 @@ async function saveOverlays() {
3405
3395
  const result = await resp.json();
3406
3396
  if (result.renderedOverlays) {
3407
3397
  DATA.renderedOverlays = result.renderedOverlays;
3408
- DATA.overlays = ov;
3409
3398
  for (const s of scenes) {
3410
- s.overlay = DATA.overlays.find(o => o.scene === s.name);
3411
3399
  s.rendered = DATA.renderedOverlays[s.name];
3412
3400
  }
3413
3401
  renderOverlayElements();
@@ -3443,28 +3431,12 @@ function isSceneModified(sceneName) {
3443
3431
  const voice = card.querySelector('[data-field="voice"]')?.value ?? '';
3444
3432
  const speed = card.querySelector('[data-field="speed"]')?.value ?? '';
3445
3433
  if (text !== snap.text || voice !== snap.voice || String(speed) !== String(snap.speed)) return true;
3446
- // Check overlay fields
3447
- const type = card.querySelector('[data-field="overlay-type"]')?.value ?? '';
3448
- const snapType = snap.overlay?.type ?? '';
3449
- if (type !== snapType) return true;
3450
- if (type) {
3451
- const placement = card.querySelector('[data-field="overlay-placement"]')?.value ?? '';
3452
- const motion = card.querySelector('[data-field="overlay-motion"]')?.value ?? '';
3453
- const overlayText = card.querySelector('[data-field="overlay-text"]')?.value ?? '';
3454
- const body = card.querySelector('[data-field="overlay-body"]')?.value ?? '';
3455
- const kicker = card.querySelector('[data-field="overlay-kicker"]')?.value ?? '';
3456
- const src = card.querySelector('[data-field="overlay-src"]')?.value ?? '';
3457
- const so = snap.overlay || {};
3458
- if (placement !== (so.placement ?? 'bottom-center')) return true;
3459
- if (motion !== (so.motion ?? 'none')) return true;
3460
- const snapText = so.type === 'lower-third' || so.type === 'callout' ? (so.text ?? '') : (so.title ?? '');
3461
- if (overlayText !== snapText) return true;
3462
- if (body !== (so.body ?? '')) return true;
3463
- if (kicker !== (so.kicker ?? '')) return true;
3464
- if (src !== (so.src ?? '')) return true;
3465
- }
3466
- // Check effects
3434
+ // Check overlay and effects from s.overlay / s.effects (single source of truth)
3467
3435
  const s = scenes.find(sc => sc.name === sceneName);
3436
+ const currentOverlay = s?.overlay;
3437
+ const snapOverlay = snap.overlay;
3438
+ if (JSON.stringify(currentOverlay ?? null) !== JSON.stringify(snapOverlay ?? null)) return true;
3439
+ // Check effects
3468
3440
  const currentEffects = JSON.stringify(s?.effects ?? []);
3469
3441
  const snapEffects = JSON.stringify(snap.effects ?? []);
3470
3442
  if (currentEffects !== snapEffects) return true;
@@ -3501,13 +3473,17 @@ function undoScene(sceneName) {
3501
3473
  s.effects = snap.effects?.length ? JSON.parse(JSON.stringify(snap.effects)) : [];
3502
3474
  refreshEffectsUI(sceneName);
3503
3475
  }
3504
- // Restore overlay type (triggers field re-render)
3476
+ // Restore overlay from snapshot into s.overlay (single source of truth)
3477
+ if (s) {
3478
+ s.overlay = snap.overlay ? JSON.parse(JSON.stringify(snap.overlay)) : undefined;
3479
+ }
3480
+ // Restore overlay type (triggers field re-render via updateOverlayFieldsForScene)
3505
3481
  const typeEl = card.querySelector('[data-field="overlay-type"]');
3506
3482
  if (typeEl) {
3507
3483
  typeEl.value = snap.overlay?.type ?? '';
3508
3484
  updateOverlayFieldsForScene(sceneName);
3509
3485
  }
3510
- // Restore overlay field values after re-render
3486
+ // Restore overlay field values in DOM after re-render
3511
3487
  setTimeout(() => {
3512
3488
  const so = snap.overlay || {};
3513
3489
  const textField = card.querySelector('[data-field="overlay-text"]');
@@ -3524,8 +3500,8 @@ function undoScene(sceneName) {
3524
3500
  if (placementField) placementField.value = so.placement ?? 'bottom-center';
3525
3501
  const motionField = card.querySelector('[data-field="overlay-motion"]');
3526
3502
  if (motionField) motionField.value = so.motion ?? 'none';
3527
- // Re-render overlay preview
3528
- previewOverlays();
3503
+ // Re-render overlay preview for this scene only
3504
+ renderSingleSceneOverlay(sceneName);
3529
3505
  updateUndoButton(sceneName);
3530
3506
  // Check if all scenes are back to saved state
3531
3507
  const anyModified = scenes.some(s => isSceneModified(s.name));