@zync/zync-screnplay-player 0.1.237 → 0.1.239
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/bundle.js +1 -1
- package/dist/screenplay/RemotionRenderer/components/layouts/TextFullCover.js +272 -0
- package/dist/screenplay/RemotionRenderer/development.js +1 -1
- package/dist/screenplay/RemotionRenderer/main/lib/layouts/LayoutFactory.js +6 -0
- package/dist/screenplay/RemotionRenderer/main/lib/layouts/TextFullCoverLayout.js +22 -0
- package/dist/screenplay/RemotionRenderer/registeredComponents.js +4 -2
- package/package.json +1 -1
|
@@ -0,0 +1,272 @@
|
|
|
1
|
+
function _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); }
|
|
2
|
+
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
3
|
+
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
|
4
|
+
function _iterableToArray(r) { if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r); }
|
|
5
|
+
function _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(r); }
|
|
6
|
+
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
7
|
+
import React from "react";
|
|
8
|
+
import { AbsoluteFill, Audio, Easing, interpolate, OffthreadVideo, useCurrentFrame, useVideoConfig } from "remotion";
|
|
9
|
+
import { loadFont } from "@remotion/google-fonts/Poppins";
|
|
10
|
+
var _loadFont = loadFont("normal", {
|
|
11
|
+
subsets: ["latin"],
|
|
12
|
+
weights: ["900"]
|
|
13
|
+
}),
|
|
14
|
+
fontFamily = _loadFont.fontFamily;
|
|
15
|
+
var TEXT_COLOR = "#0a3567";
|
|
16
|
+
var BACKGROUND_COLORS = ["#fff200", "#22f3d0", "#ff8a00", "#ff78a8", "#b9ff4a", "#f7f7f2"];
|
|
17
|
+
var HORIZONTAL_SAFE_AREA = 0.86;
|
|
18
|
+
var VERTICAL_SAFE_AREA = 0.5;
|
|
19
|
+
var MAX_BACKGROUND_WIPE_FRAMES = 7;
|
|
20
|
+
var MAX_WORD_STEP_FRAMES = 18;
|
|
21
|
+
var WORD_REVEAL_SECONDS = 3;
|
|
22
|
+
var splitWords = function splitWords() {
|
|
23
|
+
var text = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : "";
|
|
24
|
+
return String(text).trim().split(/\s+/).filter(Boolean);
|
|
25
|
+
};
|
|
26
|
+
var estimateWordWidth = function estimateWordWidth(word, fontSize) {
|
|
27
|
+
var wideCharacters = (word.match(/[mw@#%&]/gi) || []).length;
|
|
28
|
+
var narrowCharacters = (word.match(/[ijl1!.,'\u2019]/gi) || []).length;
|
|
29
|
+
var normalCharacters = Math.max(0, word.length - wideCharacters - narrowCharacters);
|
|
30
|
+
return fontSize * (wideCharacters * 0.9 + normalCharacters * 0.68 + narrowCharacters * 0.32);
|
|
31
|
+
};
|
|
32
|
+
var estimateWrappedTextSize = function estimateWrappedTextSize(_ref) {
|
|
33
|
+
var text = _ref.text,
|
|
34
|
+
fontSize = _ref.fontSize,
|
|
35
|
+
maxWidth = _ref.maxWidth;
|
|
36
|
+
var words = splitWords(text);
|
|
37
|
+
var spaceWidth = fontSize * 0.32;
|
|
38
|
+
var lines = words.reduce(function (acc, word) {
|
|
39
|
+
var wordWidth = estimateWordWidth(word, fontSize);
|
|
40
|
+
var currentLine = acc[acc.length - 1];
|
|
41
|
+
var nextWidth = currentLine.width === 0 ? wordWidth : currentLine.width + spaceWidth + wordWidth;
|
|
42
|
+
if (currentLine.width > 0 && nextWidth > maxWidth) {
|
|
43
|
+
acc.push({
|
|
44
|
+
width: wordWidth
|
|
45
|
+
});
|
|
46
|
+
return acc;
|
|
47
|
+
}
|
|
48
|
+
currentLine.width = nextWidth;
|
|
49
|
+
return acc;
|
|
50
|
+
}, [{
|
|
51
|
+
width: 0
|
|
52
|
+
}]);
|
|
53
|
+
return {
|
|
54
|
+
height: lines.length * fontSize * 0.95,
|
|
55
|
+
width: Math.max.apply(Math, _toConsumableArray(lines.map(function (line) {
|
|
56
|
+
return line.width;
|
|
57
|
+
})))
|
|
58
|
+
};
|
|
59
|
+
};
|
|
60
|
+
var getFontSizeForFullText = function getFontSizeForFullText(_ref2) {
|
|
61
|
+
var text = _ref2.text,
|
|
62
|
+
baseFontSize = _ref2.baseFontSize,
|
|
63
|
+
width = _ref2.width,
|
|
64
|
+
height = _ref2.height;
|
|
65
|
+
var maxWidth = width * HORIZONTAL_SAFE_AREA;
|
|
66
|
+
var maxHeight = height * VERTICAL_SAFE_AREA;
|
|
67
|
+
var min = 12;
|
|
68
|
+
var max = baseFontSize;
|
|
69
|
+
for (var i = 0; i < 12; i++) {
|
|
70
|
+
var candidate = (min + max) / 2;
|
|
71
|
+
var size = estimateWrappedTextSize({
|
|
72
|
+
text: text,
|
|
73
|
+
fontSize: candidate,
|
|
74
|
+
maxWidth: maxWidth
|
|
75
|
+
});
|
|
76
|
+
if (size.width <= maxWidth && size.height <= maxHeight) {
|
|
77
|
+
min = candidate;
|
|
78
|
+
} else {
|
|
79
|
+
max = candidate;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
return Math.floor(min);
|
|
83
|
+
};
|
|
84
|
+
var getBackgroundColor = function getBackgroundColor(index) {
|
|
85
|
+
return BACKGROUND_COLORS[index % BACKGROUND_COLORS.length];
|
|
86
|
+
};
|
|
87
|
+
var getWordStepFrames = function getWordStepFrames(_ref3) {
|
|
88
|
+
var fps = _ref3.fps,
|
|
89
|
+
wordCount = _ref3.wordCount;
|
|
90
|
+
if (wordCount <= 1) {
|
|
91
|
+
return MAX_WORD_STEP_FRAMES;
|
|
92
|
+
}
|
|
93
|
+
var revealFrames = fps * WORD_REVEAL_SECONDS;
|
|
94
|
+
var maxStepFrames = Math.floor(revealFrames / (wordCount - 1));
|
|
95
|
+
return Math.max(1, Math.min(MAX_WORD_STEP_FRAMES, maxStepFrames));
|
|
96
|
+
};
|
|
97
|
+
var PositionedWords = function PositionedWords(_ref4) {
|
|
98
|
+
var backgroundWipeFrames = _ref4.backgroundWipeFrames,
|
|
99
|
+
fontSize = _ref4.fontSize,
|
|
100
|
+
frame = _ref4.frame,
|
|
101
|
+
staticUntilIndex = _ref4.staticUntilIndex,
|
|
102
|
+
visibleUntilIndex = _ref4.visibleUntilIndex,
|
|
103
|
+
width = _ref4.width,
|
|
104
|
+
wordStepFrames = _ref4.wordStepFrames,
|
|
105
|
+
words = _ref4.words;
|
|
106
|
+
return /*#__PURE__*/React.createElement(AbsoluteFill, {
|
|
107
|
+
style: {
|
|
108
|
+
alignItems: "center",
|
|
109
|
+
display: "flex",
|
|
110
|
+
justifyContent: "center"
|
|
111
|
+
}
|
|
112
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
113
|
+
style: {
|
|
114
|
+
columnGap: fontSize * 0.32,
|
|
115
|
+
display: "flex",
|
|
116
|
+
flexWrap: "wrap",
|
|
117
|
+
justifyContent: "center",
|
|
118
|
+
lineHeight: 0.95,
|
|
119
|
+
maxWidth: "".concat(HORIZONTAL_SAFE_AREA * 100, "%"),
|
|
120
|
+
rowGap: fontSize * 0.06
|
|
121
|
+
}
|
|
122
|
+
}, words.map(function (word, index) {
|
|
123
|
+
if (index > visibleUntilIndex) {
|
|
124
|
+
return /*#__PURE__*/React.createElement("span", {
|
|
125
|
+
key: "".concat(word, "-").concat(index),
|
|
126
|
+
style: {
|
|
127
|
+
fontFamily: fontFamily,
|
|
128
|
+
fontSize: fontSize,
|
|
129
|
+
fontWeight: 900,
|
|
130
|
+
visibility: "hidden",
|
|
131
|
+
whiteSpace: "nowrap"
|
|
132
|
+
}
|
|
133
|
+
}, word);
|
|
134
|
+
}
|
|
135
|
+
var shouldAnimate = index > staticUntilIndex;
|
|
136
|
+
var wordFrame = frame - index * wordStepFrames;
|
|
137
|
+
var progress = shouldAnimate ? interpolate(wordFrame, [0, backgroundWipeFrames + 5], [0, 1], {
|
|
138
|
+
easing: Easing.out(Easing.cubic),
|
|
139
|
+
extrapolateLeft: "clamp",
|
|
140
|
+
extrapolateRight: "clamp"
|
|
141
|
+
}) : 1;
|
|
142
|
+
var startTranslateX = width;
|
|
143
|
+
var translateX = shouldAnimate ? interpolate(progress, [0, 1], [startTranslateX, 0], {
|
|
144
|
+
extrapolateLeft: "clamp",
|
|
145
|
+
extrapolateRight: "clamp"
|
|
146
|
+
}) : 0;
|
|
147
|
+
var opacity = shouldAnimate ? interpolate(progress, [0, 0.2, 1], [0, 1, 1], {
|
|
148
|
+
extrapolateLeft: "clamp",
|
|
149
|
+
extrapolateRight: "clamp"
|
|
150
|
+
}) : 1;
|
|
151
|
+
return /*#__PURE__*/React.createElement("span", {
|
|
152
|
+
key: "".concat(word, "-").concat(index),
|
|
153
|
+
style: {
|
|
154
|
+
color: TEXT_COLOR,
|
|
155
|
+
fontFamily: fontFamily,
|
|
156
|
+
fontSize: fontSize,
|
|
157
|
+
fontWeight: 900,
|
|
158
|
+
lineHeight: 0.95,
|
|
159
|
+
opacity: opacity,
|
|
160
|
+
transform: "translateX(".concat(translateX, "px)"),
|
|
161
|
+
whiteSpace: "nowrap",
|
|
162
|
+
willChange: "opacity, transform"
|
|
163
|
+
}
|
|
164
|
+
}, word);
|
|
165
|
+
})));
|
|
166
|
+
};
|
|
167
|
+
export var TextFullCover = function TextFullCover(_ref5) {
|
|
168
|
+
var text = _ref5.text,
|
|
169
|
+
children = _ref5.children,
|
|
170
|
+
muted = _ref5.muted,
|
|
171
|
+
_ref5$startVideoFrom = _ref5.startVideoFrom,
|
|
172
|
+
startVideoFrom = _ref5$startVideoFrom === void 0 ? 0 : _ref5$startVideoFrom,
|
|
173
|
+
videoUrl = _ref5.videoUrl,
|
|
174
|
+
_ref5$videoZoom = _ref5.videoZoom,
|
|
175
|
+
videoZoom = _ref5$videoZoom === void 0 ? 1 : _ref5$videoZoom,
|
|
176
|
+
_ref5$disableTransiti = _ref5.disableTransitionSounds,
|
|
177
|
+
disableTransitionSounds = _ref5$disableTransiti === void 0 ? false : _ref5$disableTransiti;
|
|
178
|
+
var frame = useCurrentFrame();
|
|
179
|
+
var _useVideoConfig = useVideoConfig(),
|
|
180
|
+
fps = _useVideoConfig.fps,
|
|
181
|
+
width = _useVideoConfig.width,
|
|
182
|
+
height = _useVideoConfig.height;
|
|
183
|
+
var words = splitWords(text);
|
|
184
|
+
var fallbackWords = words.length ? words : [""];
|
|
185
|
+
var uppercaseWords = fallbackWords.map(function (word) {
|
|
186
|
+
return word.toLocaleUpperCase();
|
|
187
|
+
});
|
|
188
|
+
var wordStepFrames = getWordStepFrames({
|
|
189
|
+
fps: fps,
|
|
190
|
+
wordCount: fallbackWords.length
|
|
191
|
+
});
|
|
192
|
+
var backgroundWipeFrames = Math.min(MAX_BACKGROUND_WIPE_FRAMES, Math.max(1, wordStepFrames - 1));
|
|
193
|
+
var lastStepIndex = fallbackWords.length - 1;
|
|
194
|
+
var stepIndex = Math.min(lastStepIndex, Math.floor(frame / wordStepFrames));
|
|
195
|
+
var previousStepIndex = Math.max(0, stepIndex - 1);
|
|
196
|
+
var frameInWord = frame - stepIndex * wordStepFrames;
|
|
197
|
+
var currentBackgroundColor = getBackgroundColor(stepIndex);
|
|
198
|
+
var previousBackgroundColor = getBackgroundColor(Math.max(0, stepIndex - 1));
|
|
199
|
+
var shouldWipe = stepIndex > 0 && frameInWord < backgroundWipeFrames;
|
|
200
|
+
var wipeProgress = shouldWipe ? interpolate(frameInWord, [0, backgroundWipeFrames], [0, 1], {
|
|
201
|
+
easing: Easing.out(Easing.cubic),
|
|
202
|
+
extrapolateLeft: "clamp",
|
|
203
|
+
extrapolateRight: "clamp"
|
|
204
|
+
}) : 1;
|
|
205
|
+
var currentClipPath = "inset(0 0 0 ".concat((1 - wipeProgress) * 100, "%)");
|
|
206
|
+
var baseFontSize = Math.floor(Math.min(width * 0.2, height * 0.32));
|
|
207
|
+
var fontSize = getFontSizeForFullText({
|
|
208
|
+
text: uppercaseWords.join(" "),
|
|
209
|
+
baseFontSize: baseFontSize,
|
|
210
|
+
width: width,
|
|
211
|
+
height: height
|
|
212
|
+
});
|
|
213
|
+
return /*#__PURE__*/React.createElement(AbsoluteFill, {
|
|
214
|
+
style: {
|
|
215
|
+
alignItems: "center",
|
|
216
|
+
backgroundColor: shouldWipe ? previousBackgroundColor : currentBackgroundColor,
|
|
217
|
+
display: "flex",
|
|
218
|
+
justifyContent: "center",
|
|
219
|
+
overflow: "hidden"
|
|
220
|
+
}
|
|
221
|
+
}, videoUrl ? /*#__PURE__*/React.createElement(AbsoluteFill, {
|
|
222
|
+
style: {
|
|
223
|
+
zIndex: 0
|
|
224
|
+
}
|
|
225
|
+
}, /*#__PURE__*/React.createElement(OffthreadVideo, {
|
|
226
|
+
src: videoUrl,
|
|
227
|
+
startFrom: startVideoFrom,
|
|
228
|
+
muted: muted,
|
|
229
|
+
style: {
|
|
230
|
+
height: "100%",
|
|
231
|
+
objectFit: "cover",
|
|
232
|
+
opacity: 0,
|
|
233
|
+
transform: "scale(".concat(videoZoom, ")"),
|
|
234
|
+
width: "100%"
|
|
235
|
+
}
|
|
236
|
+
})) : null, shouldWipe ? /*#__PURE__*/React.createElement(PositionedWords, {
|
|
237
|
+
backgroundWipeFrames: backgroundWipeFrames,
|
|
238
|
+
fontSize: fontSize,
|
|
239
|
+
frame: frame,
|
|
240
|
+
staticUntilIndex: previousStepIndex,
|
|
241
|
+
visibleUntilIndex: previousStepIndex,
|
|
242
|
+
width: width,
|
|
243
|
+
wordStepFrames: wordStepFrames,
|
|
244
|
+
words: uppercaseWords
|
|
245
|
+
}) : null, /*#__PURE__*/React.createElement(AbsoluteFill, {
|
|
246
|
+
style: {
|
|
247
|
+
alignItems: "center",
|
|
248
|
+
backgroundColor: currentBackgroundColor,
|
|
249
|
+
clipPath: currentClipPath,
|
|
250
|
+
display: "flex",
|
|
251
|
+
justifyContent: "center",
|
|
252
|
+
overflow: "hidden",
|
|
253
|
+
zIndex: 1
|
|
254
|
+
}
|
|
255
|
+
}, /*#__PURE__*/React.createElement(PositionedWords, {
|
|
256
|
+
backgroundWipeFrames: backgroundWipeFrames,
|
|
257
|
+
fontSize: fontSize,
|
|
258
|
+
frame: frame,
|
|
259
|
+
staticUntilIndex: previousStepIndex,
|
|
260
|
+
visibleUntilIndex: stepIndex,
|
|
261
|
+
width: width,
|
|
262
|
+
wordStepFrames: wordStepFrames,
|
|
263
|
+
words: uppercaseWords
|
|
264
|
+
})), !disableTransitionSounds && /*#__PURE__*/React.createElement(Audio, {
|
|
265
|
+
src: "https://cdn.zync.ai/assets/static/swoosh.mp3",
|
|
266
|
+
volume: 0.18
|
|
267
|
+
}), /*#__PURE__*/React.createElement(AbsoluteFill, {
|
|
268
|
+
style: {
|
|
269
|
+
zIndex: 10
|
|
270
|
+
}
|
|
271
|
+
}, children));
|
|
272
|
+
};
|
|
@@ -7,6 +7,7 @@ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e
|
|
|
7
7
|
import { SimpleFrameLayout } from "./SimpleFrameLayout.js";
|
|
8
8
|
import { Layout } from "./DefaultLayout.js";
|
|
9
9
|
import { TextWithVideoLayout } from "./TextWithVideoLayout.js";
|
|
10
|
+
import { TextFullCoverLayout } from "./TextFullCoverLayout.js";
|
|
10
11
|
import { HandoffLayout } from "./HandoffLayout.js";
|
|
11
12
|
import { CreatorCollabSplitLayout } from "./CreatorCollabSplitLayout.js";
|
|
12
13
|
import { CreatorCollabColdOpenLayout } from "./CreatorCollabColdOpenLayout.js";
|
|
@@ -35,6 +36,11 @@ export var LayoutFactory = /*#__PURE__*/function () {
|
|
|
35
36
|
layout = new TextWithVideoLayout(props).flatten();
|
|
36
37
|
break;
|
|
37
38
|
}
|
|
39
|
+
case "text_full_cover":
|
|
40
|
+
{
|
|
41
|
+
layout = new TextFullCoverLayout(props).flatten();
|
|
42
|
+
break;
|
|
43
|
+
}
|
|
38
44
|
case "broll_background":
|
|
39
45
|
case "simple_frame_broll":
|
|
40
46
|
case "simple_frame_sentence":
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
2
|
+
function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } }
|
|
3
|
+
function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; }
|
|
4
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
|
|
5
|
+
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
6
|
+
function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); }
|
|
7
|
+
function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }
|
|
8
|
+
function _possibleConstructorReturn(t, e) { if (e && ("object" == _typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return _assertThisInitialized(t); }
|
|
9
|
+
function _assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; }
|
|
10
|
+
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
|
|
11
|
+
function _getPrototypeOf(t) { return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, _getPrototypeOf(t); }
|
|
12
|
+
function _inherits(t, e) { if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function"); t.prototype = Object.create(e && e.prototype, { constructor: { value: t, writable: !0, configurable: !0 } }), Object.defineProperty(t, "prototype", { writable: !1 }), e && _setPrototypeOf(t, e); }
|
|
13
|
+
function _setPrototypeOf(t, e) { return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) { return t.__proto__ = e, t; }, _setPrototypeOf(t, e); }
|
|
14
|
+
import { TextWithVideoLayout } from "./TextWithVideoLayout.js";
|
|
15
|
+
export var TextFullCoverLayout = /*#__PURE__*/function (_TextWithVideoLayout) {
|
|
16
|
+
function TextFullCoverLayout() {
|
|
17
|
+
_classCallCheck(this, TextFullCoverLayout);
|
|
18
|
+
return _callSuper(this, TextFullCoverLayout, arguments);
|
|
19
|
+
}
|
|
20
|
+
_inherits(TextFullCoverLayout, _TextWithVideoLayout);
|
|
21
|
+
return _createClass(TextFullCoverLayout);
|
|
22
|
+
}(TextWithVideoLayout);
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { SimpleFrame } from "./components/layouts/SimpleFrame";
|
|
2
2
|
import { TextWithVideo } from "./components/layouts/TextWithVideo";
|
|
3
|
+
import { TextFullCover } from "./components/layouts/TextFullCover";
|
|
3
4
|
import { BrollFullscreen } from "./components/effects/BrollFullscreen";
|
|
4
5
|
import { PhraseRainbowEffect } from "./components/effects/PhraseRainbowEffect";
|
|
5
6
|
import { Sentence } from "./components/effects/Sentence";
|
|
@@ -48,8 +49,8 @@ import { HookVideo } from "./components/layouts/HookVideo";
|
|
|
48
49
|
import { BrollInset } from "./components/layouts/BrollInset";
|
|
49
50
|
import { MotionStillInset } from "./components/layouts/MotionStillInset";
|
|
50
51
|
|
|
51
|
-
/** Update this so that Remotion knows which component to render when it is passed via screenplay. Ex. "title" will have rendered "Title" component
|
|
52
|
-
* Here we are mapping directly types and component names. Types are snake_case and components PascalCase.
|
|
52
|
+
/** Update this so that Remotion knows which component to render when it is passed via screenplay. Ex. "title" will have rendered "Title" component
|
|
53
|
+
* Here we are mapping directly types and component names. Types are snake_case and components PascalCase.
|
|
53
54
|
* */
|
|
54
55
|
export var RegisteredComponents = {
|
|
55
56
|
// Layouts
|
|
@@ -58,6 +59,7 @@ export var RegisteredComponents = {
|
|
|
58
59
|
SimpleFrameSentence: SimpleFrameSentence,
|
|
59
60
|
SimpleFrameZoomCut: SimpleFrameZoomCut,
|
|
60
61
|
TextWithVideo: TextWithVideo,
|
|
62
|
+
TextFullCover: TextFullCover,
|
|
61
63
|
Handoff: Handoff,
|
|
62
64
|
MultiHandoff: MultiHandoff,
|
|
63
65
|
CreatorCollabSplit: CreatorCollabSplit,
|