screenwright 0.1.31 → 0.1.32
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.
- package/dist/src/composition/DemoVideo.d.ts.map +1 -1
- package/dist/src/composition/DemoVideo.js +94 -13
- package/dist/src/composition/DemoVideo.js.map +1 -1
- package/dist/src/composition/SceneSlide.d.ts +0 -18
- package/dist/src/composition/SceneSlide.d.ts.map +1 -1
- package/dist/src/composition/SceneSlide.js +3 -155
- package/dist/src/composition/SceneSlide.js.map +1 -1
- package/dist/src/composition/transition-styles.d.ts +13 -0
- package/dist/src/composition/transition-styles.d.ts.map +1 -0
- package/dist/src/composition/transition-styles.js +87 -0
- package/dist/src/composition/transition-styles.js.map +1 -0
- package/dist/src/config/config-schema.d.ts +0 -8
- package/dist/src/config/config-schema.d.ts.map +1 -1
- package/dist/src/config/config-schema.js +0 -2
- package/dist/src/config/config-schema.js.map +1 -1
- package/dist/src/generator/prompts.d.ts +1 -1
- package/dist/src/generator/prompts.d.ts.map +1 -1
- package/dist/src/generator/prompts.js +2 -1
- package/dist/src/generator/prompts.js.map +1 -1
- package/dist/src/index.d.ts +3 -3
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +1 -1
- package/dist/src/runtime/action-helpers.d.ts +6 -1
- package/dist/src/runtime/action-helpers.d.ts.map +1 -1
- package/dist/src/runtime/action-helpers.js +12 -0
- package/dist/src/runtime/action-helpers.js.map +1 -1
- package/dist/src/timeline/schema.d.ts +30 -7
- package/dist/src/timeline/schema.d.ts.map +1 -1
- package/dist/src/timeline/schema.js +9 -2
- package/dist/src/timeline/schema.js.map +1 -1
- package/dist/src/timeline/types.d.ts +10 -4
- package/dist/src/timeline/types.d.ts.map +1 -1
- package/dist/src/timeline/types.js +3 -2
- package/dist/src/timeline/types.js.map +1 -1
- package/dist/src/version.d.ts +1 -1
- package/dist/src/version.js +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +3 -2
- package/skill/SKILL.md +3 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DemoVideo.d.ts","sourceRoot":"","sources":["../../../src/composition/DemoVideo.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"DemoVideo.d.ts","sourceRoot":"","sources":["../../../src/composition/DemoVideo.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AASjE,UAAU,KAAK;IACb,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,QAAQ,CAAC,EAAE,cAAc,CAAC;CAC3B;AAED,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CA+KrC,CAAC"}
|
|
@@ -1,11 +1,12 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { Img, OffthreadVideo,
|
|
1
|
+
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Img, OffthreadVideo, staticFile, useCurrentFrame } from 'remotion';
|
|
3
3
|
import { CursorOverlay } from './CursorOverlay.js';
|
|
4
4
|
import { NarrationTrack } from './NarrationTrack.js';
|
|
5
5
|
import { SceneSlide } from './SceneSlide.js';
|
|
6
6
|
import { precomputeCursorPaths } from './cursor-path.js';
|
|
7
7
|
import { findClosestFrame } from './frame-lookup.js';
|
|
8
|
-
import {
|
|
8
|
+
import { getTransitionStyles } from './transition-styles.js';
|
|
9
|
+
import { resolveSlideScenes, sourceTimeMs, computeSlideSegments, remapEvents } from './time-remap.js';
|
|
9
10
|
export const DemoVideo = ({ timeline, branding }) => {
|
|
10
11
|
const fps = 30;
|
|
11
12
|
const frame = useCurrentFrame();
|
|
@@ -19,33 +20,113 @@ export const DemoVideo = ({ timeline, branding }) => {
|
|
|
19
20
|
? remapEvents(timeline.events, slideScenes)
|
|
20
21
|
: timeline.events;
|
|
21
22
|
const cursorEvents = precomputeCursorPaths(eventsToUse.filter((e) => e.type === 'cursor_target'));
|
|
23
|
+
const transitionEvents = eventsToUse.filter((e) => e.type === 'transition');
|
|
22
24
|
const clickEvents = eventsToUse.filter((e) => e.type === 'action' && e.action === 'click');
|
|
23
25
|
const narrations = eventsToUse.filter((e) => e.type === 'narration');
|
|
24
26
|
const { frameManifest, videoFile } = timeline.metadata;
|
|
27
|
+
const slideSegments = computeSlideSegments(scenes);
|
|
28
|
+
function resolveSlideProps(seg) {
|
|
29
|
+
return {
|
|
30
|
+
title: seg.sceneTitle,
|
|
31
|
+
description: seg.sceneDescription,
|
|
32
|
+
brandColor: seg.slideConfig.brandColor ?? branding?.brandColor ?? '#000000',
|
|
33
|
+
textColor: seg.slideConfig.textColor ?? branding?.textColor ?? '#FFFFFF',
|
|
34
|
+
fontFamily: seg.slideConfig.fontFamily ?? branding?.fontFamily,
|
|
35
|
+
titleFontSize: seg.slideConfig.titleFontSize,
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
// Check if current time is inside a slide
|
|
39
|
+
let activeSlide = slideSegments.find(s => outputTimeMs >= s.slideStartMs && outputTimeMs < s.slideEndMs);
|
|
40
|
+
// Check if current time is inside a slide-to-slide transition
|
|
41
|
+
let slideTransition = null;
|
|
42
|
+
if (!activeSlide) {
|
|
43
|
+
for (const t of transitionEvents) {
|
|
44
|
+
if (outputTimeMs < t.timestampMs || outputTimeMs >= t.timestampMs + t.durationMs)
|
|
45
|
+
continue;
|
|
46
|
+
const tEnd = t.timestampMs + t.durationMs;
|
|
47
|
+
const before = slideSegments.find(s => Math.abs(s.slideEndMs - t.timestampMs) < 50);
|
|
48
|
+
const after = slideSegments.find(s => Math.abs(s.slideStartMs - tEnd) < 50);
|
|
49
|
+
if (before && after) {
|
|
50
|
+
slideTransition = { transition: t, before, after };
|
|
51
|
+
break;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
// Fallback: if no exact match but slides exist, snap to the nearest slide.
|
|
56
|
+
// Handles timing jitter gaps (e.g. first frame at t=0 when first slide starts at t=1).
|
|
57
|
+
if (!activeSlide && !slideTransition && slideSegments.length > 0) {
|
|
58
|
+
let best = slideSegments[0];
|
|
59
|
+
let bestDist = Infinity;
|
|
60
|
+
for (const s of slideSegments) {
|
|
61
|
+
const dist = outputTimeMs < s.slideStartMs
|
|
62
|
+
? s.slideStartMs - outputTimeMs
|
|
63
|
+
: outputTimeMs >= s.slideEndMs
|
|
64
|
+
? outputTimeMs - s.slideEndMs
|
|
65
|
+
: 0;
|
|
66
|
+
if (dist < bestDist) {
|
|
67
|
+
bestDist = dist;
|
|
68
|
+
best = s;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
if (bestDist < 100)
|
|
72
|
+
activeSlide = best;
|
|
73
|
+
}
|
|
74
|
+
// Find active transition for frame-based content
|
|
75
|
+
const activeTransition = !activeSlide && !slideTransition
|
|
76
|
+
? transitionEvents.find(t => outputTimeMs >= t.timestampMs && outputTimeMs < t.timestampMs + t.durationMs)
|
|
77
|
+
: null;
|
|
25
78
|
let baseLayer;
|
|
26
|
-
if (
|
|
79
|
+
if (activeSlide) {
|
|
80
|
+
// Slide IS the base layer — no frame images
|
|
81
|
+
baseLayer = _jsx(SceneSlide, { ...resolveSlideProps(activeSlide) });
|
|
82
|
+
}
|
|
83
|
+
else if (slideTransition) {
|
|
84
|
+
// Slide-to-slide transition — both slides as base layer
|
|
85
|
+
const { transition: t, before, after } = slideTransition;
|
|
86
|
+
const progress = (outputTimeMs - t.timestampMs) / t.durationMs;
|
|
87
|
+
const { width: vw } = timeline.metadata.viewport;
|
|
88
|
+
const styles = getTransitionStyles(t.transition, progress, vw);
|
|
89
|
+
const afterProps = resolveSlideProps(after);
|
|
90
|
+
const beforeProps = resolveSlideProps(before);
|
|
91
|
+
const faceClip = styles.container ? {} : { overflow: 'hidden' };
|
|
92
|
+
const faces = (_jsxs(_Fragment, { children: [_jsx("div", { style: { position: 'absolute', inset: 0, ...faceClip, ...styles.entrance }, children: _jsx(SceneSlide, { ...afterProps }) }), _jsx("div", { style: { position: 'absolute', inset: 0, ...faceClip, ...styles.exit }, children: _jsx(SceneSlide, { ...beforeProps }) }), styles.exit2 && (_jsx("div", { style: { position: 'absolute', inset: 0, ...faceClip, ...styles.exit2 }, children: _jsx(SceneSlide, { ...beforeProps }) }))] }));
|
|
93
|
+
let wrappedFaces = faces;
|
|
94
|
+
if (styles.container) {
|
|
95
|
+
wrappedFaces = _jsx("div", { style: { position: 'absolute', inset: 0, ...styles.container }, children: faces });
|
|
96
|
+
}
|
|
97
|
+
if (styles.perspective) {
|
|
98
|
+
wrappedFaces = _jsx("div", { style: { position: 'absolute', inset: 0, perspective: styles.perspective }, children: wrappedFaces });
|
|
99
|
+
}
|
|
100
|
+
baseLayer = (_jsxs(_Fragment, { children: [_jsx("div", { style: { position: 'absolute', inset: 0, backgroundColor: styles.backdrop ?? afterProps.brandColor } }), wrappedFaces] }));
|
|
101
|
+
}
|
|
102
|
+
else if (activeTransition && frameManifest && frameManifest.length > 0) {
|
|
103
|
+
const progress = (outputTimeMs - activeTransition.timestampMs) / activeTransition.durationMs;
|
|
104
|
+
const styles = getTransitionStyles(activeTransition.transition, progress, timeline.metadata.viewport.width);
|
|
105
|
+
const beforeSourceTime = slideScenes.length > 0
|
|
106
|
+
? sourceTimeMs(activeTransition.timestampMs, slideScenes)
|
|
107
|
+
: activeTransition.timestampMs;
|
|
108
|
+
const beforeEntry = findClosestFrame(frameManifest, beforeSourceTime);
|
|
109
|
+
const afterEntry = findClosestFrame(frameManifest, timeMs);
|
|
110
|
+
baseLayer = (_jsxs(_Fragment, { children: [_jsx(Img, { src: staticFile(afterEntry.file), style: { position: 'absolute', width: '100%', height: '100%', display: 'block', ...styles.entrance } }), _jsx(Img, { src: staticFile(beforeEntry.file), style: { position: 'absolute', width: '100%', height: '100%', display: 'block', ...styles.exit } }), styles.exit2 && (_jsx(Img, { src: staticFile(beforeEntry.file), style: { position: 'absolute', width: '100%', height: '100%', display: 'block', ...styles.exit2 } }))] }));
|
|
111
|
+
}
|
|
112
|
+
else if (frameManifest && frameManifest.length > 0) {
|
|
27
113
|
const entry = findClosestFrame(frameManifest, timeMs);
|
|
28
114
|
baseLayer = (_jsx(Img, { src: staticFile(entry.file), style: { width: '100%', height: '100%', display: 'block' } }));
|
|
29
115
|
}
|
|
30
116
|
else if (videoFile) {
|
|
117
|
+
if (transitionEvents.length > 0 && frame === 0) {
|
|
118
|
+
console.warn('sw.transition() effects require frame-based capture (captureMode: "frame"). Transitions will be ignored with video-based capture.');
|
|
119
|
+
}
|
|
31
120
|
baseLayer = _jsx(OffthreadVideo, { src: staticFile(videoFile) });
|
|
32
121
|
}
|
|
33
122
|
else {
|
|
34
123
|
throw new Error('Timeline must have either frameManifest or videoFile');
|
|
35
124
|
}
|
|
36
|
-
const slideSegments = computeSlideSegments(scenes);
|
|
37
125
|
return (_jsxs("div", { style: {
|
|
38
126
|
position: 'relative',
|
|
39
127
|
width: timeline.metadata.viewport.width,
|
|
40
128
|
height: timeline.metadata.viewport.height,
|
|
41
129
|
overflow: 'hidden',
|
|
42
|
-
}, children: [baseLayer, _jsx(CursorOverlay, { cursorEvents: cursorEvents, clickEvents: clickEvents, fps: fps }), _jsx(NarrationTrack, { narrations: narrations, fps: fps })
|
|
43
|
-
const brandColor = seg.slideConfig.brandColor ?? branding?.brandColor ?? '#000000';
|
|
44
|
-
const textColor = seg.slideConfig.textColor ?? branding?.textColor ?? '#FFFFFF';
|
|
45
|
-
const fontFamily = seg.slideConfig.fontFamily ?? branding?.fontFamily;
|
|
46
|
-
const titleFontSize = seg.slideConfig.titleFontSize;
|
|
47
|
-
const animation = seg.slideConfig.animation ?? branding?.animation ?? 'fade';
|
|
48
|
-
return (_jsx(Sequence, { from: msToFrames(seg.slideStartMs, fps), durationInFrames: msToFrames(seg.slideDurationMs, fps), children: _jsx(SceneSlide, { title: seg.sceneTitle, description: seg.sceneDescription, brandColor: brandColor, textColor: textColor, fontFamily: fontFamily, titleFontSize: titleFontSize, animation: animation, durationInFrames: msToFrames(seg.slideDurationMs, fps), fps: fps }) }, `slide-${seg.slideStartMs}`));
|
|
49
|
-
})] }));
|
|
130
|
+
}, children: [baseLayer, !activeSlide && !slideTransition && (_jsx(CursorOverlay, { cursorEvents: cursorEvents, clickEvents: clickEvents, fps: fps })), _jsx(NarrationTrack, { narrations: narrations, fps: fps })] }));
|
|
50
131
|
};
|
|
51
132
|
//# sourceMappingURL=DemoVideo.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DemoVideo.js","sourceRoot":"","sources":["../../../src/composition/DemoVideo.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,GAAG,EAAE,cAAc,EAAE,
|
|
1
|
+
{"version":3,"file":"DemoVideo.js","sourceRoot":"","sources":["../../../src/composition/DemoVideo.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import type { SlideAnimation } from '../timeline/types.js';
|
|
3
2
|
interface Props {
|
|
4
3
|
title: string;
|
|
5
4
|
description?: string;
|
|
@@ -7,24 +6,7 @@ interface Props {
|
|
|
7
6
|
textColor: string;
|
|
8
7
|
fontFamily?: string;
|
|
9
8
|
titleFontSize?: number;
|
|
10
|
-
animation?: SlideAnimation;
|
|
11
|
-
durationInFrames: number;
|
|
12
|
-
fps: number;
|
|
13
9
|
}
|
|
14
|
-
export interface AnimationValues {
|
|
15
|
-
bgOpacity: number;
|
|
16
|
-
contentOpacity: number;
|
|
17
|
-
contentScale: number;
|
|
18
|
-
translateX: number;
|
|
19
|
-
translateY: number;
|
|
20
|
-
clipPath?: string;
|
|
21
|
-
titleOpacity?: number;
|
|
22
|
-
titleTranslateY?: number;
|
|
23
|
-
descOpacity?: number;
|
|
24
|
-
descTranslateY?: number;
|
|
25
|
-
}
|
|
26
|
-
type AnimationStrategy = (frame: number, durationInFrames: number, fps: number, animFrames: number) => AnimationValues;
|
|
27
|
-
export declare const animationStrategies: Record<SlideAnimation, AnimationStrategy>;
|
|
28
10
|
export declare const SceneSlide: React.FC<Props>;
|
|
29
11
|
export {};
|
|
30
12
|
//# sourceMappingURL=SceneSlide.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SceneSlide.d.ts","sourceRoot":"","sources":["../../../src/composition/SceneSlide.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8B,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"SceneSlide.d.ts","sourceRoot":"","sources":["../../../src/composition/SceneSlide.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8B,MAAM,OAAO,CAAC;AAiBnD,UAAU,KAAK;IACb,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAKD,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAwGtC,CAAC"}
|
|
@@ -1,147 +1,9 @@
|
|
|
1
1
|
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { useEffect, useState } from 'react';
|
|
3
|
-
import { delayRender, continueRender
|
|
4
|
-
function fadeAnimation(frame, durationInFrames, fps, animFrames) {
|
|
5
|
-
const inProgress = spring({ frame, fps, config: { damping: 12 }, durationInFrames: animFrames });
|
|
6
|
-
const inOpacity = interpolate(frame, [0, animFrames], [0, 1], { extrapolateRight: 'clamp' });
|
|
7
|
-
const outStart = durationInFrames - animFrames;
|
|
8
|
-
const outOpacity = interpolate(frame, [outStart, durationInFrames], [1, 0], { extrapolateLeft: 'clamp', extrapolateRight: 'clamp' });
|
|
9
|
-
const outScale = interpolate(frame, [outStart, durationInFrames], [1, 0.95], { extrapolateLeft: 'clamp', extrapolateRight: 'clamp' });
|
|
10
|
-
const isIn = frame < animFrames;
|
|
11
|
-
const isOut = frame >= outStart;
|
|
12
|
-
return {
|
|
13
|
-
bgOpacity: isOut ? outOpacity : inOpacity,
|
|
14
|
-
contentOpacity: isOut ? outOpacity : inOpacity,
|
|
15
|
-
contentScale: isIn ? interpolate(inProgress, [0, 1], [0.85, 1]) : isOut ? outScale : 1,
|
|
16
|
-
translateX: 0,
|
|
17
|
-
translateY: isIn ? interpolate(inProgress, [0, 1], [20, 0]) : 0,
|
|
18
|
-
};
|
|
19
|
-
}
|
|
20
|
-
function slideUpAnimation(frame, durationInFrames, fps, animFrames) {
|
|
21
|
-
const inProgress = spring({ frame, fps, config: { damping: 14 }, durationInFrames: animFrames });
|
|
22
|
-
const inOpacity = interpolate(frame, [0, animFrames], [0, 1], { extrapolateRight: 'clamp' });
|
|
23
|
-
const outStart = durationInFrames - animFrames;
|
|
24
|
-
const outOpacity = interpolate(frame, [outStart, durationInFrames], [1, 0], { extrapolateLeft: 'clamp', extrapolateRight: 'clamp' });
|
|
25
|
-
const isIn = frame < animFrames;
|
|
26
|
-
const isOut = frame >= outStart;
|
|
27
|
-
return {
|
|
28
|
-
bgOpacity: isOut ? outOpacity : inOpacity,
|
|
29
|
-
contentOpacity: isOut ? outOpacity : inOpacity,
|
|
30
|
-
contentScale: 1,
|
|
31
|
-
translateX: 0,
|
|
32
|
-
translateY: isIn
|
|
33
|
-
? interpolate(inProgress, [0, 1], [800, 0])
|
|
34
|
-
: isOut
|
|
35
|
-
? interpolate(frame, [outStart, durationInFrames], [0, 200], { extrapolateLeft: 'clamp', extrapolateRight: 'clamp' })
|
|
36
|
-
: 0,
|
|
37
|
-
};
|
|
38
|
-
}
|
|
39
|
-
function slideLeftAnimation(frame, durationInFrames, fps, animFrames) {
|
|
40
|
-
const inProgress = spring({ frame, fps, config: { damping: 14 }, durationInFrames: animFrames });
|
|
41
|
-
const inOpacity = interpolate(frame, [0, animFrames], [0, 1], { extrapolateRight: 'clamp' });
|
|
42
|
-
const outStart = durationInFrames - animFrames;
|
|
43
|
-
const outOpacity = interpolate(frame, [outStart, durationInFrames], [1, 0], { extrapolateLeft: 'clamp', extrapolateRight: 'clamp' });
|
|
44
|
-
const isIn = frame < animFrames;
|
|
45
|
-
const isOut = frame >= outStart;
|
|
46
|
-
return {
|
|
47
|
-
bgOpacity: isOut ? outOpacity : inOpacity,
|
|
48
|
-
contentOpacity: isOut ? outOpacity : inOpacity,
|
|
49
|
-
contentScale: 1,
|
|
50
|
-
translateX: isIn
|
|
51
|
-
? interpolate(inProgress, [0, 1], [1280, 0])
|
|
52
|
-
: isOut
|
|
53
|
-
? interpolate(frame, [outStart, durationInFrames], [0, -1280], { extrapolateLeft: 'clamp', extrapolateRight: 'clamp' })
|
|
54
|
-
: 0,
|
|
55
|
-
translateY: 0,
|
|
56
|
-
};
|
|
57
|
-
}
|
|
58
|
-
function zoomAnimation(frame, durationInFrames, fps, animFrames) {
|
|
59
|
-
const inProgress = spring({ frame, fps, config: { damping: 10 }, durationInFrames: animFrames });
|
|
60
|
-
const inOpacity = interpolate(frame, [0, animFrames], [0, 1], { extrapolateRight: 'clamp' });
|
|
61
|
-
const outStart = durationInFrames - animFrames;
|
|
62
|
-
const outOpacity = interpolate(frame, [outStart, durationInFrames], [1, 0], { extrapolateLeft: 'clamp', extrapolateRight: 'clamp' });
|
|
63
|
-
const outScale = interpolate(frame, [outStart, durationInFrames], [1, 1.5], { extrapolateLeft: 'clamp', extrapolateRight: 'clamp' });
|
|
64
|
-
const isIn = frame < animFrames;
|
|
65
|
-
const isOut = frame >= outStart;
|
|
66
|
-
return {
|
|
67
|
-
bgOpacity: isOut ? outOpacity : inOpacity,
|
|
68
|
-
contentOpacity: isOut ? outOpacity : inOpacity,
|
|
69
|
-
contentScale: isIn ? interpolate(inProgress, [0, 1], [0.3, 1]) : isOut ? outScale : 1,
|
|
70
|
-
translateX: 0,
|
|
71
|
-
translateY: 0,
|
|
72
|
-
};
|
|
73
|
-
}
|
|
74
|
-
function cinematicAnimation(frame, durationInFrames, fps, animFrames) {
|
|
75
|
-
const bgInOpacity = interpolate(frame, [0, animFrames], [0, 1], { extrapolateRight: 'clamp' });
|
|
76
|
-
const titleProgress = spring({ frame, fps, config: { damping: 8, mass: 1.2 }, durationInFrames: animFrames });
|
|
77
|
-
const descDelay = Math.round(animFrames * 0.5);
|
|
78
|
-
const descFrame = Math.max(0, frame - descDelay);
|
|
79
|
-
const descProgress = spring({ frame: descFrame, fps, config: { damping: 12 }, durationInFrames: animFrames });
|
|
80
|
-
const outStart = durationInFrames - animFrames;
|
|
81
|
-
const outOpacity = interpolate(frame, [outStart, durationInFrames], [1, 0], { extrapolateLeft: 'clamp', extrapolateRight: 'clamp' });
|
|
82
|
-
const isOut = frame >= outStart;
|
|
83
|
-
return {
|
|
84
|
-
bgOpacity: isOut ? outOpacity : bgInOpacity,
|
|
85
|
-
contentOpacity: 1,
|
|
86
|
-
contentScale: 1,
|
|
87
|
-
translateX: 0,
|
|
88
|
-
translateY: 0,
|
|
89
|
-
titleOpacity: isOut ? outOpacity : interpolate(titleProgress, [0, 1], [0, 1]),
|
|
90
|
-
titleTranslateY: isOut ? 0 : interpolate(titleProgress, [0, 1], [-60, 0]),
|
|
91
|
-
descOpacity: isOut ? outOpacity : interpolate(descProgress, [0, 1], [0, 1]),
|
|
92
|
-
descTranslateY: isOut ? 0 : interpolate(descProgress, [0, 1], [40, 0]),
|
|
93
|
-
};
|
|
94
|
-
}
|
|
95
|
-
function popAnimation(frame, durationInFrames, fps, animFrames) {
|
|
96
|
-
const inProgress = spring({ frame, fps, config: { damping: 6, stiffness: 200 }, durationInFrames: animFrames });
|
|
97
|
-
const inOpacity = interpolate(frame, [0, animFrames], [0, 1], { extrapolateRight: 'clamp' });
|
|
98
|
-
const outStart = durationInFrames - animFrames;
|
|
99
|
-
const outProgress = spring({ frame: Math.max(0, frame - outStart), fps, config: { damping: 10 }, durationInFrames: animFrames });
|
|
100
|
-
const outOpacity = interpolate(frame, [outStart, durationInFrames], [1, 0], { extrapolateLeft: 'clamp', extrapolateRight: 'clamp' });
|
|
101
|
-
const isIn = frame < animFrames;
|
|
102
|
-
const isOut = frame >= outStart;
|
|
103
|
-
return {
|
|
104
|
-
bgOpacity: isOut ? outOpacity : inOpacity,
|
|
105
|
-
contentOpacity: isOut ? outOpacity : inOpacity,
|
|
106
|
-
contentScale: isIn
|
|
107
|
-
? interpolate(inProgress, [0, 1], [0, 1])
|
|
108
|
-
: isOut
|
|
109
|
-
? interpolate(outProgress, [0, 1], [1, 0.8])
|
|
110
|
-
: 1,
|
|
111
|
-
translateX: 0,
|
|
112
|
-
translateY: 0,
|
|
113
|
-
};
|
|
114
|
-
}
|
|
115
|
-
function wipeAnimation(frame, durationInFrames, _fps, animFrames) {
|
|
116
|
-
const wipeIn = interpolate(frame, [0, animFrames], [100, 0], { extrapolateLeft: 'clamp', extrapolateRight: 'clamp' });
|
|
117
|
-
const contentFadeIn = interpolate(frame, [animFrames * 0.5, animFrames], [0, 1], { extrapolateLeft: 'clamp', extrapolateRight: 'clamp' });
|
|
118
|
-
const outStart = durationInFrames - animFrames;
|
|
119
|
-
const wipeOut = interpolate(frame, [outStart, durationInFrames], [0, 100], { extrapolateLeft: 'clamp', extrapolateRight: 'clamp' });
|
|
120
|
-
const contentFadeOut = interpolate(frame, [outStart, outStart + animFrames * 0.5], [1, 0], { extrapolateLeft: 'clamp', extrapolateRight: 'clamp' });
|
|
121
|
-
const isOut = frame >= outStart;
|
|
122
|
-
return {
|
|
123
|
-
bgOpacity: 1,
|
|
124
|
-
contentOpacity: isOut ? contentFadeOut : contentFadeIn,
|
|
125
|
-
contentScale: 1,
|
|
126
|
-
translateX: 0,
|
|
127
|
-
translateY: 0,
|
|
128
|
-
clipPath: `inset(0 ${isOut ? wipeOut : wipeIn}% 0 0)`,
|
|
129
|
-
};
|
|
130
|
-
}
|
|
131
|
-
export const animationStrategies = {
|
|
132
|
-
'fade': fadeAnimation,
|
|
133
|
-
'slide-up': slideUpAnimation,
|
|
134
|
-
'slide-left': slideLeftAnimation,
|
|
135
|
-
'zoom': zoomAnimation,
|
|
136
|
-
'cinematic': cinematicAnimation,
|
|
137
|
-
'pop': popAnimation,
|
|
138
|
-
'wipe': wipeAnimation,
|
|
139
|
-
};
|
|
3
|
+
import { delayRender, continueRender } from 'remotion';
|
|
140
4
|
const SYSTEM_FONTS = 'system-ui, -apple-system, sans-serif';
|
|
141
5
|
const FONT_TIMEOUT_MS = 5000;
|
|
142
|
-
const
|
|
143
|
-
export const SceneSlide = ({ title, description, brandColor, textColor, fontFamily, titleFontSize = 64, animation = 'fade', durationInFrames, fps, }) => {
|
|
144
|
-
const frame = useCurrentFrame();
|
|
6
|
+
export const SceneSlide = ({ title, description, brandColor, textColor, fontFamily, titleFontSize = 64, }) => {
|
|
145
7
|
const [handle] = useState(() => fontFamily ? delayRender('Loading font') : null);
|
|
146
8
|
useEffect(() => {
|
|
147
9
|
if (!fontFamily || !handle)
|
|
@@ -172,9 +34,6 @@ export const SceneSlide = ({ title, description, brandColor, textColor, fontFami
|
|
|
172
34
|
};
|
|
173
35
|
}, [fontFamily, handle]);
|
|
174
36
|
const resolvedFont = fontFamily ? `"${fontFamily}", ${SYSTEM_FONTS}` : SYSTEM_FONTS;
|
|
175
|
-
const strategy = animationStrategies[animation];
|
|
176
|
-
const v = strategy(frame, durationInFrames, fps, ANIM_FRAMES);
|
|
177
|
-
const isCinematic = animation === 'cinematic';
|
|
178
37
|
return (_jsx("div", { style: {
|
|
179
38
|
position: 'absolute',
|
|
180
39
|
inset: 0,
|
|
@@ -183,12 +42,8 @@ export const SceneSlide = ({ title, description, brandColor, textColor, fontFami
|
|
|
183
42
|
alignItems: 'center',
|
|
184
43
|
justifyContent: 'center',
|
|
185
44
|
backgroundColor: brandColor,
|
|
186
|
-
opacity: v.bgOpacity,
|
|
187
45
|
fontFamily: resolvedFont,
|
|
188
|
-
...(v.clipPath ? { clipPath: v.clipPath } : {}),
|
|
189
46
|
}, children: _jsxs("div", { style: {
|
|
190
|
-
transform: `scale(${v.contentScale}) translate(${v.translateX}px, ${v.translateY}px)`,
|
|
191
|
-
opacity: isCinematic ? 1 : v.contentOpacity,
|
|
192
47
|
textAlign: 'center',
|
|
193
48
|
padding: '0 10%',
|
|
194
49
|
}, children: [_jsx("h1", { style: {
|
|
@@ -197,10 +52,6 @@ export const SceneSlide = ({ title, description, brandColor, textColor, fontFami
|
|
|
197
52
|
fontWeight: 700,
|
|
198
53
|
margin: 0,
|
|
199
54
|
lineHeight: 1.2,
|
|
200
|
-
...(isCinematic ? {
|
|
201
|
-
opacity: v.titleOpacity ?? 1,
|
|
202
|
-
transform: `translateY(${v.titleTranslateY ?? 0}px)`,
|
|
203
|
-
} : {}),
|
|
204
55
|
}, children: title }), description && (_jsxs(_Fragment, { children: [_jsx("div", { style: {
|
|
205
56
|
width: 80,
|
|
206
57
|
height: 4,
|
|
@@ -213,11 +64,8 @@ export const SceneSlide = ({ title, description, brandColor, textColor, fontFami
|
|
|
213
64
|
fontSize: Math.round(titleFontSize * 0.44),
|
|
214
65
|
fontWeight: 400,
|
|
215
66
|
margin: 0,
|
|
216
|
-
opacity:
|
|
67
|
+
opacity: 0.85,
|
|
217
68
|
lineHeight: 1.5,
|
|
218
|
-
...(isCinematic ? {
|
|
219
|
-
transform: `translateY(${v.descTranslateY ?? 0}px)`,
|
|
220
|
-
} : {}),
|
|
221
69
|
}, children: description })] }))] }) }));
|
|
222
70
|
};
|
|
223
71
|
//# sourceMappingURL=SceneSlide.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SceneSlide.js","sourceRoot":"","sources":["../../../src/composition/SceneSlide.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"SceneSlide.js","sourceRoot":"","sources":["../../../src/composition/SceneSlide.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { TransitionType } from '../timeline/types.js';
|
|
2
|
+
export interface TransitionStyles {
|
|
3
|
+
exit: React.CSSProperties;
|
|
4
|
+
exit2?: React.CSSProperties;
|
|
5
|
+
entrance: React.CSSProperties;
|
|
6
|
+
backdrop?: string;
|
|
7
|
+
/** Inner wrapper: preserve-3d + cube rotation */
|
|
8
|
+
container?: React.CSSProperties;
|
|
9
|
+
/** Outer wrapper: shared perspective for 3D transitions */
|
|
10
|
+
perspective?: number;
|
|
11
|
+
}
|
|
12
|
+
export declare function getTransitionStyles(type: TransitionType, progress: number, viewportWidth?: number): TransitionStyles;
|
|
13
|
+
//# sourceMappingURL=transition-styles.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transition-styles.d.ts","sourceRoot":"","sources":["../../../src/composition/transition-styles.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAE3D,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,KAAK,CAAC,aAAa,CAAC;IAC1B,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAC5B,QAAQ,EAAE,KAAK,CAAC,aAAa,CAAC;IAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iDAAiD;IACjD,SAAS,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAChC,2DAA2D;IAC3D,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AA4FD,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,gBAAgB,CAIpH"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
function easeInOut(t) {
|
|
2
|
+
return t < 0.5 ? 4 * t * t * t : 1 - (-2 * t + 2) ** 3 / 2;
|
|
3
|
+
}
|
|
4
|
+
function fade(p) {
|
|
5
|
+
return {
|
|
6
|
+
exit: { opacity: 1 - p },
|
|
7
|
+
entrance: { opacity: p },
|
|
8
|
+
};
|
|
9
|
+
}
|
|
10
|
+
function wipe(p) {
|
|
11
|
+
return {
|
|
12
|
+
exit: { clipPath: `inset(0 0 0 ${p * 100}%)` },
|
|
13
|
+
entrance: {},
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
function slideUp(p) {
|
|
17
|
+
return {
|
|
18
|
+
exit: { transform: `translateY(${-p * 100}%)` },
|
|
19
|
+
entrance: { transform: `translateY(${(1 - p) * 100}%)` },
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
function slideLeft(p) {
|
|
23
|
+
return {
|
|
24
|
+
exit: { transform: `translateX(${-p * 100}%)` },
|
|
25
|
+
entrance: { transform: `translateX(${(1 - p) * 100}%)` },
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
function zoom(p) {
|
|
29
|
+
return {
|
|
30
|
+
exit: { transform: `scale(${1 + p * 0.5})`, opacity: 1 - p },
|
|
31
|
+
entrance: { transform: `scale(${0.5 + p * 0.5})`, opacity: p },
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
function doorway(p) {
|
|
35
|
+
const scale = 0.33 + p * 0.67;
|
|
36
|
+
return {
|
|
37
|
+
exit: { clipPath: 'inset(0 50% 0 0)', transform: `translateX(${-p * 50}%)` },
|
|
38
|
+
exit2: { clipPath: 'inset(0 0 0 50%)', transform: `translateX(${p * 50}%)` },
|
|
39
|
+
entrance: { transform: `scale(${scale})` },
|
|
40
|
+
backdrop: '#000000',
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
function swap(p) {
|
|
44
|
+
return {
|
|
45
|
+
exit: {
|
|
46
|
+
transform: `perspective(1200px) translateX(${p * 100}%) rotateY(${-p * 45}deg) scale(${1 - p * 0.35})`,
|
|
47
|
+
},
|
|
48
|
+
entrance: {
|
|
49
|
+
transform: `perspective(1200px) translateX(${(p - 1) * 100}%) rotateY(${(1 - p) * 45}deg) scale(${0.65 + p * 0.35})`,
|
|
50
|
+
},
|
|
51
|
+
backdrop: '#000000',
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
function cube(p, vw = 1920) {
|
|
55
|
+
const half = vw / 2;
|
|
56
|
+
return {
|
|
57
|
+
perspective: vw * 2,
|
|
58
|
+
container: {
|
|
59
|
+
transformStyle: 'preserve-3d',
|
|
60
|
+
transform: `translateZ(${-half}px) rotateY(${-p * 90}deg)`,
|
|
61
|
+
},
|
|
62
|
+
exit: {
|
|
63
|
+
transform: `translateZ(${half}px)`,
|
|
64
|
+
},
|
|
65
|
+
entrance: {
|
|
66
|
+
transform: `rotateY(90deg) translateZ(${half}px)`,
|
|
67
|
+
},
|
|
68
|
+
backdrop: '#000000',
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
const strategies = {
|
|
72
|
+
'fade': fade,
|
|
73
|
+
'wipe': wipe,
|
|
74
|
+
'slide-up': slideUp,
|
|
75
|
+
'slide-left': slideLeft,
|
|
76
|
+
'zoom': zoom,
|
|
77
|
+
'doorway': doorway,
|
|
78
|
+
'swap': swap,
|
|
79
|
+
'cube': cube,
|
|
80
|
+
};
|
|
81
|
+
export function getTransitionStyles(type, progress, viewportWidth) {
|
|
82
|
+
const p = easeInOut(Math.max(0, Math.min(1, progress)));
|
|
83
|
+
if (type === 'cube' && viewportWidth)
|
|
84
|
+
return cube(p, viewportWidth);
|
|
85
|
+
return strategies[type](p);
|
|
86
|
+
}
|
|
87
|
+
//# sourceMappingURL=transition-styles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transition-styles.js","sourceRoot":"","sources":["../../../src/composition/transition-styles.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,17 +6,14 @@ export declare const brandingSchema: z.ZodObject<{
|
|
|
6
6
|
brandColor: z.ZodString;
|
|
7
7
|
textColor: z.ZodString;
|
|
8
8
|
fontFamily: z.ZodOptional<z.ZodString>;
|
|
9
|
-
animation: z.ZodOptional<z.ZodEnum<["fade", "slide-up", "slide-left", "zoom", "cinematic", "pop", "wipe"]>>;
|
|
10
9
|
}, "strip", z.ZodTypeAny, {
|
|
11
10
|
brandColor: string;
|
|
12
11
|
textColor: string;
|
|
13
12
|
fontFamily?: string | undefined;
|
|
14
|
-
animation?: "pop" | "fade" | "slide-up" | "slide-left" | "zoom" | "cinematic" | "wipe" | undefined;
|
|
15
13
|
}, {
|
|
16
14
|
brandColor: string;
|
|
17
15
|
textColor: string;
|
|
18
16
|
fontFamily?: string | undefined;
|
|
19
|
-
animation?: "pop" | "fade" | "slide-up" | "slide-left" | "zoom" | "cinematic" | "wipe" | undefined;
|
|
20
17
|
}>;
|
|
21
18
|
export type BrandingConfig = z.infer<typeof brandingSchema>;
|
|
22
19
|
export declare const configSchema: z.ZodObject<{
|
|
@@ -42,17 +39,14 @@ export declare const configSchema: z.ZodObject<{
|
|
|
42
39
|
brandColor: z.ZodString;
|
|
43
40
|
textColor: z.ZodString;
|
|
44
41
|
fontFamily: z.ZodOptional<z.ZodString>;
|
|
45
|
-
animation: z.ZodOptional<z.ZodEnum<["fade", "slide-up", "slide-left", "zoom", "cinematic", "pop", "wipe"]>>;
|
|
46
42
|
}, "strip", z.ZodTypeAny, {
|
|
47
43
|
brandColor: string;
|
|
48
44
|
textColor: string;
|
|
49
45
|
fontFamily?: string | undefined;
|
|
50
|
-
animation?: "pop" | "fade" | "slide-up" | "slide-left" | "zoom" | "cinematic" | "wipe" | undefined;
|
|
51
46
|
}, {
|
|
52
47
|
brandColor: string;
|
|
53
48
|
textColor: string;
|
|
54
49
|
fontFamily?: string | undefined;
|
|
55
|
-
animation?: "pop" | "fade" | "slide-up" | "slide-left" | "zoom" | "cinematic" | "wipe" | undefined;
|
|
56
50
|
}>>;
|
|
57
51
|
}, "strip", z.ZodTypeAny, {
|
|
58
52
|
voice: string;
|
|
@@ -71,7 +65,6 @@ export declare const configSchema: z.ZodObject<{
|
|
|
71
65
|
brandColor: string;
|
|
72
66
|
textColor: string;
|
|
73
67
|
fontFamily?: string | undefined;
|
|
74
|
-
animation?: "pop" | "fade" | "slide-up" | "slide-left" | "zoom" | "cinematic" | "wipe" | undefined;
|
|
75
68
|
} | undefined;
|
|
76
69
|
}, {
|
|
77
70
|
voice?: string | undefined;
|
|
@@ -90,7 +83,6 @@ export declare const configSchema: z.ZodObject<{
|
|
|
90
83
|
brandColor: string;
|
|
91
84
|
textColor: string;
|
|
92
85
|
fontFamily?: string | undefined;
|
|
93
|
-
animation?: "pop" | "fade" | "slide-up" | "slide-left" | "zoom" | "cinematic" | "wipe" | undefined;
|
|
94
86
|
} | undefined;
|
|
95
87
|
}>;
|
|
96
88
|
export type ScreenwrightConfig = z.infer<typeof configSchema>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-schema.d.ts","sourceRoot":"","sources":["../../../src/config/config-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"config-schema.d.ts","sourceRoot":"","sources":["../../../src/config/config-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,YAAY,6HAGf,CAAC;AAEX,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC;AAExD,eAAO,MAAM,wBAAwB,QAEiC,CAAC;AAIvE,eAAO,MAAM,cAAc;;;;;;;;;;;;EAIzB,CAAC;AAEH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAE5D,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAcvB,CAAC;AAEH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
-
import { slideAnimations } from '../timeline/types.js';
|
|
3
2
|
export const openaiVoices = [
|
|
4
3
|
'alloy', 'ash', 'ballad', 'cedar', 'coral', 'echo',
|
|
5
4
|
'fable', 'marin', 'nova', 'onyx', 'sage', 'shimmer', 'verse',
|
|
@@ -11,7 +10,6 @@ export const brandingSchema = z.object({
|
|
|
11
10
|
brandColor: hexColor,
|
|
12
11
|
textColor: hexColor,
|
|
13
12
|
fontFamily: z.string().optional(),
|
|
14
|
-
animation: z.enum(slideAnimations).optional(),
|
|
15
13
|
});
|
|
16
14
|
export const configSchema = z.object({
|
|
17
15
|
voice: z.string().default('en_US-amy-medium'),
|