@zync/zync-screnplay-player 0.1.187

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 (133) hide show
  1. package/dist/ZyncScreenplayPlayer.js +35 -0
  2. package/dist/bundle.js +2 -0
  3. package/dist/bundle.js.LICENSE.txt +54 -0
  4. package/dist/index.js +4 -0
  5. package/dist/screenplay/RemotionRenderer/RemotionRenderer.js +281 -0
  6. package/dist/screenplay/RemotionRenderer/Root.js +22 -0
  7. package/dist/screenplay/RemotionRenderer/components/LottieAnimationGlobal.js +116 -0
  8. package/dist/screenplay/RemotionRenderer/components/backgrounds/VirtualBackground.js +26 -0
  9. package/dist/screenplay/RemotionRenderer/components/backgrounds/VirtualBackgroundUnderlay.js +41 -0
  10. package/dist/screenplay/RemotionRenderer/components/captions/CaptionSimple.js +12 -0
  11. package/dist/screenplay/RemotionRenderer/components/effects/BrollFullscreen.js +27 -0
  12. package/dist/screenplay/RemotionRenderer/components/effects/GlitchText.js +22 -0
  13. package/dist/screenplay/RemotionRenderer/components/effects/HandoffNametag.js +7 -0
  14. package/dist/screenplay/RemotionRenderer/components/effects/LottieAnimation.js +64 -0
  15. package/dist/screenplay/RemotionRenderer/components/effects/Nametag.js +9 -0
  16. package/dist/screenplay/RemotionRenderer/components/effects/PhraseRainbowEffect.js +34 -0
  17. package/dist/screenplay/RemotionRenderer/components/effects/Sentence.js +50 -0
  18. package/dist/screenplay/RemotionRenderer/components/effects/Title.js +12 -0
  19. package/dist/screenplay/RemotionRenderer/components/layouts/BrollGreenScreen.js +742 -0
  20. package/dist/screenplay/RemotionRenderer/components/layouts/BrollSplitScreen.js +714 -0
  21. package/dist/screenplay/RemotionRenderer/components/layouts/BrollStudioBackdrop.js +620 -0
  22. package/dist/screenplay/RemotionRenderer/components/layouts/DynamicTriangle.js +618 -0
  23. package/dist/screenplay/RemotionRenderer/components/layouts/Handoff.js +161 -0
  24. package/dist/screenplay/RemotionRenderer/components/layouts/IntroVideo.js +1330 -0
  25. package/dist/screenplay/RemotionRenderer/components/layouts/KeyPointOverlayDepth.js +397 -0
  26. package/dist/screenplay/RemotionRenderer/components/layouts/Keyword.js +539 -0
  27. package/dist/screenplay/RemotionRenderer/components/layouts/KeywordStudioBackdrop.js +714 -0
  28. package/dist/screenplay/RemotionRenderer/components/layouts/MotionStill.js +381 -0
  29. package/dist/screenplay/RemotionRenderer/components/layouts/MotionStillFullScreen.js +178 -0
  30. package/dist/screenplay/RemotionRenderer/components/layouts/MotionStillGreenScreen.js +568 -0
  31. package/dist/screenplay/RemotionRenderer/components/layouts/MotionStillGreenScreenV2.js +731 -0
  32. package/dist/screenplay/RemotionRenderer/components/layouts/MotionStillStudioBackdrop.js +588 -0
  33. package/dist/screenplay/RemotionRenderer/components/layouts/SimpleFrame.js +183 -0
  34. package/dist/screenplay/RemotionRenderer/components/layouts/SimpleFrameBroll.js +181 -0
  35. package/dist/screenplay/RemotionRenderer/components/layouts/SimpleFrameSentence.js +17 -0
  36. package/dist/screenplay/RemotionRenderer/components/layouts/SimpleFrameZoomCut.js +13 -0
  37. package/dist/screenplay/RemotionRenderer/components/layouts/TextWithVideo.js +373 -0
  38. package/dist/screenplay/RemotionRenderer/components/layouts/quote-bubble-animation.json +1 -0
  39. package/dist/screenplay/RemotionRenderer/components/utils/BlurOverlay.js +19 -0
  40. package/dist/screenplay/RemotionRenderer/components/utils/ChromaKeyedVideo.js +59 -0
  41. package/dist/screenplay/RemotionRenderer/components/utils/FaceCenteredVideo.js +562 -0
  42. package/dist/screenplay/RemotionRenderer/components/utils/PausableImg.js +124 -0
  43. package/dist/screenplay/RemotionRenderer/components/utils/README.md +80 -0
  44. package/dist/screenplay/RemotionRenderer/components/utils/SafeZones.js +69 -0
  45. package/dist/screenplay/RemotionRenderer/components/utils/StretchText.js +124 -0
  46. package/dist/screenplay/RemotionRenderer/components/utils/StretchTextDemo.js +66 -0
  47. package/dist/screenplay/RemotionRenderer/config.js +8 -0
  48. package/dist/screenplay/RemotionRenderer/development.js +1370 -0
  49. package/dist/screenplay/RemotionRenderer/helpers/cleanFacemetadata.js +29 -0
  50. package/dist/screenplay/RemotionRenderer/helpers/convertToSeconds.js +14 -0
  51. package/dist/screenplay/RemotionRenderer/helpers/faceBasedVideoStyles.js +212 -0
  52. package/dist/screenplay/RemotionRenderer/helpers/faceCenteredVideoTransforms.js +468 -0
  53. package/dist/screenplay/RemotionRenderer/helpers/getContrastColor.js +15 -0
  54. package/dist/screenplay/RemotionRenderer/helpers/getVideoOrientation.js +21 -0
  55. package/dist/screenplay/RemotionRenderer/helpers/hexToRgb.js +48 -0
  56. package/dist/screenplay/RemotionRenderer/hooks/useLottieReplaceColor.js +45 -0
  57. package/dist/screenplay/RemotionRenderer/hooks/useOrientationBased.js +29 -0
  58. package/dist/screenplay/RemotionRenderer/hooks/useTimeInterpolate.js +54 -0
  59. package/dist/screenplay/RemotionRenderer/hooks/useVirtualBackground.js +38 -0
  60. package/dist/screenplay/RemotionRenderer/index.js +3 -0
  61. package/dist/screenplay/RemotionRenderer/main/lib/Sequence.js +76 -0
  62. package/dist/screenplay/RemotionRenderer/main/lib/layouts/DefaultLayout.js +72 -0
  63. package/dist/screenplay/RemotionRenderer/main/lib/layouts/DynamicTriangleLayout.js +54 -0
  64. package/dist/screenplay/RemotionRenderer/main/lib/layouts/HandoffLayout.js +50 -0
  65. package/dist/screenplay/RemotionRenderer/main/lib/layouts/IntroVideoLayout.js +33 -0
  66. package/dist/screenplay/RemotionRenderer/main/lib/layouts/KeywordLayout.js +36 -0
  67. package/dist/screenplay/RemotionRenderer/main/lib/layouts/LayoutFactory.js +68 -0
  68. package/dist/screenplay/RemotionRenderer/main/lib/layouts/MotionStillLayout.js +36 -0
  69. package/dist/screenplay/RemotionRenderer/main/lib/layouts/SimpleFrameLayout.js +43 -0
  70. package/dist/screenplay/RemotionRenderer/main/lib/layouts/TextWithVideoLayout.js +52 -0
  71. package/dist/screenplay/RemotionRenderer/main/screenplaySchema.js +92 -0
  72. package/dist/screenplay/RemotionRenderer/registeredComponents.js +91 -0
  73. package/dist/screenplay/RemotionRenderer/theme/config.js +8 -0
  74. package/dist/screenplay/RemotionRenderer/theme/hooks/useTheme.js +24 -0
  75. package/dist/screenplay/RemotionRenderer/theme/hooks/useThemedComponents.js +101 -0
  76. package/dist/screenplay/RemotionRenderer/theme/themes/bigbold/BigBoldNameTag.js +147 -0
  77. package/dist/screenplay/RemotionRenderer/theme/themes/bigbold/BigBoldSentence.js +138 -0
  78. package/dist/screenplay/RemotionRenderer/theme/themes/bigbold/BigBoldTitle.js +136 -0
  79. package/dist/screenplay/RemotionRenderer/theme/themes/default/CaptionColor.js +67 -0
  80. package/dist/screenplay/RemotionRenderer/theme/themes/default/CaptionColorInverse.js +67 -0
  81. package/dist/screenplay/RemotionRenderer/theme/themes/default/CaptionColorShadow.js +66 -0
  82. package/dist/screenplay/RemotionRenderer/theme/themes/default/CaptionElegant.js +134 -0
  83. package/dist/screenplay/RemotionRenderer/theme/themes/default/CaptionEmphasis.js +122 -0
  84. package/dist/screenplay/RemotionRenderer/theme/themes/default/CaptionPunctuated.js +84 -0
  85. package/dist/screenplay/RemotionRenderer/theme/themes/default/CaptionWordBoom.js +88 -0
  86. package/dist/screenplay/RemotionRenderer/theme/themes/default/CaptionWordBubble.js +91 -0
  87. package/dist/screenplay/RemotionRenderer/theme/themes/default/CaptionWordPopup.js +118 -0
  88. package/dist/screenplay/RemotionRenderer/theme/themes/default/DefaultCaption.js +62 -0
  89. package/dist/screenplay/RemotionRenderer/theme/themes/default/HandoffNametag/handoffNametagConfig.js +59 -0
  90. package/dist/screenplay/RemotionRenderer/theme/themes/default/HandoffNametag.js +173 -0
  91. package/dist/screenplay/RemotionRenderer/theme/themes/default/Nametag.js +129 -0
  92. package/dist/screenplay/RemotionRenderer/theme/themes/default/Sentence/AnimatedSentence.js +20 -0
  93. package/dist/screenplay/RemotionRenderer/theme/themes/default/Sentence/AnimatedSentenceDefault.js +29 -0
  94. package/dist/screenplay/RemotionRenderer/theme/themes/default/Sentence/SentenceSimple.helpers.js +61 -0
  95. package/dist/screenplay/RemotionRenderer/theme/themes/default/Sentence.js +86 -0
  96. package/dist/screenplay/RemotionRenderer/theme/themes/default/Title.js +112 -0
  97. package/dist/screenplay/RemotionRenderer/theme/themes/default/constants.js +1 -0
  98. package/dist/screenplay/RemotionRenderer/theme/themes/glassmorphism/Nametag.js +134 -0
  99. package/dist/screenplay/RemotionRenderer/theme/themes/glassmorphism/Sentence.js +49 -0
  100. package/dist/screenplay/RemotionRenderer/theme/themes/glassmorphism/Title.js +108 -0
  101. package/dist/screenplay/RemotionRenderer/theme/themes/glassmorphism/animations.js +30 -0
  102. package/dist/screenplay/RemotionRenderer/theme/themes/glassmorphism/config.js +9 -0
  103. package/dist/screenplay/RemotionRenderer/theme/themes/glitch/GlitchNametag.js +252 -0
  104. package/dist/screenplay/RemotionRenderer/theme/themes/glitch/GlitchSentence.js +156 -0
  105. package/dist/screenplay/RemotionRenderer/theme/themes/glitch/GlitchTitle.js +142 -0
  106. package/dist/screenplay/RemotionRenderer/theme/themes/glitch/components/DisplacedText.js +66 -0
  107. package/dist/screenplay/RemotionRenderer/theme/themes/glitch/components/GlitchAnimatedLine.js +38 -0
  108. package/dist/screenplay/RemotionRenderer/theme/themes/glitch/components/SplitSentence.js +80 -0
  109. package/dist/screenplay/RemotionRenderer/theme/themes/glitch/helpers.js +32 -0
  110. package/dist/screenplay/RemotionRenderer/theme/themes/none/Nametag.js +3 -0
  111. package/dist/screenplay/RemotionRenderer/theme/themes/none/Title.js +3 -0
  112. package/dist/screenplay/RemotionRenderer/theme/themes/pushpull/PushPullNametag.js +165 -0
  113. package/dist/screenplay/RemotionRenderer/theme/themes/pushpull/PushPullSentence.js +94 -0
  114. package/dist/screenplay/RemotionRenderer/theme/themes/pushpull/PushPullTitle.js +98 -0
  115. package/dist/screenplay/RemotionRenderer/theme/themes/pushpull/designs/sentence.js +92 -0
  116. package/dist/screenplay/RemotionRenderer/theme/themes/pushpull/designs/title.js +119 -0
  117. package/dist/screenplay/RemotionRenderer/theme/themes/sports/Nametag.js +122 -0
  118. package/dist/screenplay/RemotionRenderer/theme/themes/sports/SportsCaption.js +93 -0
  119. package/dist/screenplay/RemotionRenderer/theme/themes/sports/SportsSentence.js +76 -0
  120. package/dist/screenplay/RemotionRenderer/theme/themes/sports/Title.js +90 -0
  121. package/dist/screenplay/RemotionRenderer/theme/themes/sports/shared.js +62 -0
  122. package/dist/screenplay/RemotionRenderer/theme/themes/sportsbounce/Nametag.js +145 -0
  123. package/dist/screenplay/RemotionRenderer/theme/themes/sportsbounce/SportsBounceSentence.js +148 -0
  124. package/dist/screenplay/RemotionRenderer/theme/themes/sportsbounce/Title.js +160 -0
  125. package/dist/screenplay/RemotionRenderer/tracks/AudioTrack.js +23 -0
  126. package/dist/screenplay/RemotionRenderer/tracks/CaptionsVideoTrack.js +23 -0
  127. package/dist/screenplay/RemotionRenderer/tracks/DynamicVideoComposition.js +31 -0
  128. package/dist/screenplay/RemotionRenderer/tracks/EffectsVideoTrack.js +23 -0
  129. package/dist/screenplay/RemotionRenderer/tracks/LayoutVideoTrack.js +141 -0
  130. package/dist/screenplay/RemotionRenderer/tracks/Soundtrack.js +16 -0
  131. package/dist/screenplay/RemotionRenderer/tracks/Watermark.js +23 -0
  132. package/dist/screenplay/RemotionRenderer/tracks/transitions/GlitchOne.js +92 -0
  133. package/package.json +45 -0
@@ -0,0 +1,731 @@
1
+ import React from "react";
2
+ import { AbsoluteFill, Audio, Easing, OffthreadVideo, useVideoConfig } from "remotion";
3
+ import { useOrientationBased } from "../../hooks/useOrientationBased.js";
4
+ import { useTimeInterpolate } from "../../hooks/useTimeInterpolate.js";
5
+ import { CHROME_PADDING } from "../../config.js";
6
+ import FaceCenteredVideo from "../utils/FaceCenteredVideo";
7
+ import PausableImg from "../utils/PausableImg";
8
+ import { BlurOverlay } from "../utils/BlurOverlay";
9
+ import { useVirtualBackground } from "../../hooks/useVirtualBackground";
10
+ import { VirtualBackgroundUnderlay } from "../backgrounds/VirtualBackgroundUnderlay";
11
+ import { PanningImage } from "./MotionStill";
12
+ var Square = function Square(_ref) {
13
+ var children = _ref.children,
14
+ imageUrl = _ref.imageUrl,
15
+ brollVideoWidthTransition = _ref.brollVideoWidthTransition,
16
+ brollVideoHeightTransition = _ref.brollVideoHeightTransition,
17
+ brollVideoTopTransition = _ref.brollVideoTopTransition,
18
+ brollVideoLeftTransition = _ref.brollVideoLeftTransition,
19
+ mainVideoWidthTransition = _ref.mainVideoWidthTransition,
20
+ mainVideoHeightTransition = _ref.mainVideoHeightTransition,
21
+ mainVideoTopTransition = _ref.mainVideoTopTransition,
22
+ mainVideoLeftTransition = _ref.mainVideoLeftTransition,
23
+ logoUrl = _ref.logoUrl,
24
+ logoLeft = _ref.logoLeft,
25
+ logoTop = _ref.logoTop,
26
+ frameColor = _ref.frameColor,
27
+ startVideoFrom = _ref.startVideoFrom,
28
+ noBackgroundVideoUrl = _ref.noBackgroundVideoUrl,
29
+ sourceVideoOrientation = _ref.sourceVideoOrientation,
30
+ videoUrl = _ref.videoUrl,
31
+ faceMetadata = _ref.faceMetadata,
32
+ noBackgroundVideoEffects = _ref.noBackgroundVideoEffects,
33
+ showVirtual = _ref.showVirtual,
34
+ virtualBgUrl = _ref.virtualBgUrl;
35
+ var _useVideoConfig = useVideoConfig(),
36
+ width = _useVideoConfig.width,
37
+ height = _useVideoConfig.height;
38
+ return /*#__PURE__*/React.createElement(AbsoluteFill, {
39
+ style: {
40
+ backgroundColor: frameColor || "transparent",
41
+ padding: 0,
42
+ isolation: "isolate"
43
+ }
44
+ }, imageUrl && /*#__PURE__*/React.createElement("div", {
45
+ style: {
46
+ position: "absolute",
47
+ overflow: "hidden",
48
+ width: "100%",
49
+ height: brollVideoHeightTransition,
50
+ transform: "translateX(-50%) scale(1.25)",
51
+ transformOrigin: "center center",
52
+ left: "50%",
53
+ zIndex: 2,
54
+ // Add gradient mask for fade to transparent effect in square
55
+ mask: "linear-gradient(to bottom, black 0%, black 60%, transparent 100%)",
56
+ WebkitMask: "linear-gradient(to bottom, black 0%, black 60%, transparent 100%)"
57
+ }
58
+ }, /*#__PURE__*/React.createElement(PanningImage, {
59
+ imageUrl: imageUrl,
60
+ style: {
61
+ filter: !showVirtual && noBackgroundVideoEffects !== null && noBackgroundVideoEffects !== void 0 && noBackgroundVideoEffects.backgroundDim && noBackgroundVideoUrl ? "brightness(0.7)" : undefined
62
+ }
63
+ })), /*#__PURE__*/React.createElement("div", {
64
+ style: {
65
+ position: "absolute",
66
+ overflow: "hidden",
67
+ width: mainVideoWidthTransition,
68
+ height: mainVideoHeightTransition,
69
+ top: mainVideoTopTransition,
70
+ left: mainVideoLeftTransition,
71
+ zIndex: 2
72
+ }
73
+ }, showVirtual && virtualBgUrl ? /*#__PURE__*/React.createElement(VirtualBackgroundUnderlay, {
74
+ url: virtualBgUrl,
75
+ top: 0,
76
+ left: 0,
77
+ width: "100%",
78
+ height: "100%",
79
+ zIndex: 2
80
+ }) : null, faceMetadata ? /*#__PURE__*/React.createElement(FaceCenteredVideo, {
81
+ startFrom: startVideoFrom,
82
+ src: noBackgroundVideoUrl,
83
+ faceMetadata: faceMetadata,
84
+ containerWidth: mainVideoWidthTransition,
85
+ containerHeight: mainVideoHeightTransition,
86
+ useAveragePosition: true,
87
+ centerHorizontally: true,
88
+ transparent: true
89
+ }) : /*#__PURE__*/React.createElement(OffthreadVideo, {
90
+ startFrom: startVideoFrom,
91
+ src: noBackgroundVideoUrl,
92
+ muted: false,
93
+ transparent: true,
94
+ style: {
95
+ height: "100%",
96
+ objectFit: "cover",
97
+ width: "100%",
98
+ objectPosition: sourceVideoOrientation === "portrait" ? "0% 30%" : undefined
99
+ }
100
+ })), /*#__PURE__*/React.createElement("div", {
101
+ style: {
102
+ position: "absolute",
103
+ overflow: "hidden",
104
+ width: mainVideoWidthTransition,
105
+ height: mainVideoHeightTransition,
106
+ top: mainVideoTopTransition,
107
+ left: mainVideoLeftTransition,
108
+ zIndex: 0
109
+ }
110
+ }, faceMetadata ? /*#__PURE__*/React.createElement(FaceCenteredVideo, {
111
+ startFrom: startVideoFrom,
112
+ src: videoUrl,
113
+ transparent: false,
114
+ faceMetadata: faceMetadata,
115
+ containerWidth: mainVideoWidthTransition,
116
+ containerHeight: mainVideoHeightTransition,
117
+ useAveragePosition: true,
118
+ centerHorizontally: true,
119
+ muted: true,
120
+ style: {
121
+ zIndex: 0,
122
+ filter: !showVirtual && noBackgroundVideoEffects !== null && noBackgroundVideoEffects !== void 0 && noBackgroundVideoEffects.backgroundDim && noBackgroundVideoUrl ? "brightness(0.7)" : undefined
123
+ }
124
+ }) : /*#__PURE__*/React.createElement(OffthreadVideo, {
125
+ startFrom: startVideoFrom,
126
+ src: videoUrl,
127
+ muted: true,
128
+ transparent: false,
129
+ style: {
130
+ zIndex: 0,
131
+ height: "100%",
132
+ objectFit: "cover",
133
+ width: "100%",
134
+ objectPosition: sourceVideoOrientation === "portrait" ? "0% 30%" : undefined,
135
+ filter: !showVirtual && noBackgroundVideoEffects !== null && noBackgroundVideoEffects !== void 0 && noBackgroundVideoEffects.backgroundDim && noBackgroundVideoUrl ? "brightness(0.7)" : undefined
136
+ }
137
+ })), /*#__PURE__*/React.createElement(BlurOverlay, {
138
+ show: !showVirtual && (noBackgroundVideoEffects === null || noBackgroundVideoEffects === void 0 ? void 0 : noBackgroundVideoEffects.backgroundBlur) && noBackgroundVideoUrl,
139
+ width: width,
140
+ height: height,
141
+ zIndex: 1
142
+ }), noBackgroundVideoUrl && (showVirtual || noBackgroundVideoEffects !== null && noBackgroundVideoEffects !== void 0 && noBackgroundVideoEffects.facePop || noBackgroundVideoEffects !== null && noBackgroundVideoEffects !== void 0 && noBackgroundVideoEffects.backgroundDim || noBackgroundVideoEffects !== null && noBackgroundVideoEffects !== void 0 && noBackgroundVideoEffects.backgroundBlur) && faceMetadata ? /*#__PURE__*/React.createElement(AbsoluteFill, {
143
+ style: {
144
+ position: "absolute",
145
+ overflow: "hidden",
146
+ width: mainVideoWidthTransition,
147
+ height: mainVideoHeightTransition,
148
+ top: mainVideoTopTransition,
149
+ left: mainVideoLeftTransition,
150
+ zIndex: 9
151
+ }
152
+ }, /*#__PURE__*/React.createElement(FaceCenteredVideo, {
153
+ src: noBackgroundVideoUrl,
154
+ startFrom: startVideoFrom,
155
+ containerWidth: mainVideoWidthTransition,
156
+ containerHeight: mainVideoHeightTransition,
157
+ faceMetadata: faceMetadata,
158
+ useAveragePosition: true,
159
+ centerHorizontally: true,
160
+ noBackgroundVideoEffects: noBackgroundVideoEffects,
161
+ transparent: true,
162
+ muted: true
163
+ })) : null, noBackgroundVideoUrl && (showVirtual || noBackgroundVideoEffects !== null && noBackgroundVideoEffects !== void 0 && noBackgroundVideoEffects.facePop || noBackgroundVideoEffects !== null && noBackgroundVideoEffects !== void 0 && noBackgroundVideoEffects.backgroundDim || noBackgroundVideoEffects !== null && noBackgroundVideoEffects !== void 0 && noBackgroundVideoEffects.backgroundBlur) && !faceMetadata ? /*#__PURE__*/React.createElement(AbsoluteFill, {
164
+ style: {
165
+ position: "absolute",
166
+ overflow: "hidden",
167
+ width: mainVideoWidthTransition,
168
+ height: mainVideoHeightTransition,
169
+ top: mainVideoTopTransition,
170
+ left: mainVideoLeftTransition,
171
+ zIndex: 9
172
+ }
173
+ }, /*#__PURE__*/React.createElement(OffthreadVideo, {
174
+ startFrom: startVideoFrom,
175
+ src: noBackgroundVideoUrl,
176
+ muted: true,
177
+ transparent: true,
178
+ style: {
179
+ position: "relative",
180
+ top: "50%",
181
+ objectFit: "cover",
182
+ width: mainVideoWidthTransition,
183
+ height: mainVideoHeightTransition,
184
+ borderRadius: "30px",
185
+ filter: noBackgroundVideoEffects !== null && noBackgroundVideoEffects !== void 0 && noBackgroundVideoEffects.facePop ? "brightness(1.1) contrast(1.15) saturate(1.05)" : undefined,
186
+ transform: "translateY(-50%)"
187
+ }
188
+ })) : null, /*#__PURE__*/React.createElement(AbsoluteFill, {
189
+ style: {
190
+ zIndex: 10
191
+ }
192
+ }, children), logoUrl ? /*#__PURE__*/React.createElement("div", {
193
+ style: {
194
+ position: "fixed",
195
+ left: logoLeft,
196
+ top: logoTop,
197
+ padding: 20,
198
+ zIndex: 10
199
+ }
200
+ }, /*#__PURE__*/React.createElement(PausableImg, {
201
+ delayRenderTimeoutInMilliseconds: 61000,
202
+ style: {
203
+ width: "225px",
204
+ maxHeight: "auto",
205
+ objectFit: "contain"
206
+ },
207
+ src: logoUrl
208
+ })) : null);
209
+ };
210
+ var Portrait = function Portrait(_ref2) {
211
+ var children = _ref2.children,
212
+ imageUrl = _ref2.imageUrl,
213
+ brollVideoWidthTransition = _ref2.brollVideoWidthTransition,
214
+ brollVideoHeightTransition = _ref2.brollVideoHeightTransition,
215
+ brollVideoTopTransition = _ref2.brollVideoTopTransition,
216
+ brollVideoLeftTransition = _ref2.brollVideoLeftTransition,
217
+ mainVideoWidthTransition = _ref2.mainVideoWidthTransition,
218
+ mainVideoHeightTransition = _ref2.mainVideoHeightTransition,
219
+ mainVideoTopTransition = _ref2.mainVideoTopTransition,
220
+ mainVideoLeftTransition = _ref2.mainVideoLeftTransition,
221
+ logoUrl = _ref2.logoUrl,
222
+ logoLeft = _ref2.logoLeft,
223
+ logoTop = _ref2.logoTop,
224
+ frameColor = _ref2.frameColor,
225
+ orientation = _ref2.orientation,
226
+ startVideoFrom = _ref2.startVideoFrom,
227
+ noBackgroundVideoUrl = _ref2.noBackgroundVideoUrl,
228
+ sourceVideoOrientation = _ref2.sourceVideoOrientation,
229
+ videoUrl = _ref2.videoUrl,
230
+ faceMetadata = _ref2.faceMetadata,
231
+ noBackgroundVideoEffects = _ref2.noBackgroundVideoEffects,
232
+ showVirtual = _ref2.showVirtual,
233
+ virtualBgUrl = _ref2.virtualBgUrl;
234
+ var _useVideoConfig2 = useVideoConfig(),
235
+ width = _useVideoConfig2.width,
236
+ height = _useVideoConfig2.height;
237
+ return /*#__PURE__*/React.createElement(AbsoluteFill, {
238
+ style: {
239
+ backgroundColor: frameColor || "transparent",
240
+ padding: 0,
241
+ isolation: "isolate"
242
+ }
243
+ }, imageUrl && /*#__PURE__*/React.createElement("div", {
244
+ style: {
245
+ position: "absolute",
246
+ overflow: "hidden",
247
+ borderRadius: orientation === "landscape" ? "0px" : "20px",
248
+ width: "100%",
249
+ height: brollVideoHeightTransition,
250
+ top: brollVideoTopTransition,
251
+ left: brollVideoLeftTransition,
252
+ zIndex: 2,
253
+ transformOrigin: "center center",
254
+ transform: "scale(1.1)",
255
+ // Add gradient mask for fade to transparent effect in portrait
256
+ mask: "linear-gradient(to bottom, black 0%, black 60%, transparent 100%)",
257
+ WebkitMask: "linear-gradient(to bottom, black 0%, black 60%, transparent 100%)"
258
+ }
259
+ }, /*#__PURE__*/React.createElement(PanningImage, {
260
+ imageUrl: imageUrl,
261
+ style: {
262
+ filter: !showVirtual && noBackgroundVideoEffects !== null && noBackgroundVideoEffects !== void 0 && noBackgroundVideoEffects.backgroundDim && noBackgroundVideoUrl ? "brightness(0.7)" : undefined
263
+ }
264
+ })), /*#__PURE__*/React.createElement("div", {
265
+ style: {
266
+ position: "absolute",
267
+ overflow: "hidden",
268
+ borderRadius: "20px",
269
+ width: mainVideoWidthTransition,
270
+ height: mainVideoHeightTransition,
271
+ top: mainVideoTopTransition,
272
+ left: mainVideoLeftTransition,
273
+ zIndex: 2
274
+ }
275
+ }, showVirtual && virtualBgUrl ? /*#__PURE__*/React.createElement(VirtualBackgroundUnderlay, {
276
+ url: virtualBgUrl,
277
+ top: 0,
278
+ left: 0,
279
+ width: "100%",
280
+ height: "100%",
281
+ borderRadius: "20px",
282
+ zIndex: 2
283
+ }) : null, faceMetadata ? /*#__PURE__*/React.createElement(FaceCenteredVideo, {
284
+ startFrom: startVideoFrom,
285
+ src: noBackgroundVideoUrl,
286
+ faceMetadata: faceMetadata,
287
+ containerWidth: mainVideoWidthTransition,
288
+ containerHeight: mainVideoHeightTransition,
289
+ useAveragePosition: true,
290
+ centerHorizontally: false,
291
+ transparent: true
292
+ }) : /*#__PURE__*/React.createElement(OffthreadVideo, {
293
+ startFrom: startVideoFrom,
294
+ src: noBackgroundVideoUrl,
295
+ muted: false,
296
+ transparent: true,
297
+ style: {
298
+ height: "100%",
299
+ objectFit: "cover",
300
+ width: "100%",
301
+ objectPosition: sourceVideoOrientation === "portrait" ? "0% 30%" : undefined
302
+ }
303
+ })), /*#__PURE__*/React.createElement("div", {
304
+ style: {
305
+ position: "absolute",
306
+ overflow: "hidden",
307
+ borderRadius: "20px",
308
+ width: mainVideoWidthTransition,
309
+ height: mainVideoHeightTransition,
310
+ top: mainVideoTopTransition,
311
+ left: mainVideoLeftTransition,
312
+ transform: "scale(1)",
313
+ zIndex: 0
314
+ }
315
+ }, faceMetadata ? /*#__PURE__*/React.createElement(FaceCenteredVideo, {
316
+ startFrom: startVideoFrom,
317
+ src: videoUrl,
318
+ faceMetadata: faceMetadata,
319
+ containerWidth: mainVideoWidthTransition,
320
+ containerHeight: mainVideoHeightTransition,
321
+ noBackgroundVideoEffects: noBackgroundVideoEffects,
322
+ useAveragePosition: true,
323
+ muted: true,
324
+ transparent: false,
325
+ style: {
326
+ zIndex: 0
327
+ }
328
+ }) : /*#__PURE__*/React.createElement(OffthreadVideo, {
329
+ startFrom: startVideoFrom,
330
+ src: videoUrl,
331
+ muted: true,
332
+ transparent: false,
333
+ style: {
334
+ zIndex: 0,
335
+ height: "100%",
336
+ objectFit: "cover",
337
+ width: "100%",
338
+ objectPosition: sourceVideoOrientation === "portrait" ? "0% 30%" : undefined,
339
+ filter: !showVirtual && noBackgroundVideoEffects !== null && noBackgroundVideoEffects !== void 0 && noBackgroundVideoEffects.backgroundDim && noBackgroundVideoUrl ? "brightness(0.7)" : undefined
340
+ }
341
+ })), /*#__PURE__*/React.createElement(BlurOverlay, {
342
+ show: !showVirtual && (noBackgroundVideoEffects === null || noBackgroundVideoEffects === void 0 ? void 0 : noBackgroundVideoEffects.backgroundBlur) && noBackgroundVideoUrl,
343
+ width: width,
344
+ height: height,
345
+ zIndex: 1
346
+ }), noBackgroundVideoUrl && (showVirtual || noBackgroundVideoEffects !== null && noBackgroundVideoEffects !== void 0 && noBackgroundVideoEffects.facePop || noBackgroundVideoEffects !== null && noBackgroundVideoEffects !== void 0 && noBackgroundVideoEffects.backgroundDim || noBackgroundVideoEffects !== null && noBackgroundVideoEffects !== void 0 && noBackgroundVideoEffects.backgroundBlur) && faceMetadata ? /*#__PURE__*/React.createElement(AbsoluteFill, {
347
+ style: {
348
+ position: "absolute",
349
+ overflow: "hidden",
350
+ borderRadius: "20px",
351
+ width: mainVideoWidthTransition,
352
+ height: mainVideoHeightTransition,
353
+ top: mainVideoTopTransition,
354
+ left: mainVideoLeftTransition,
355
+ transform: "scale(1)",
356
+ zIndex: 9
357
+ }
358
+ }, /*#__PURE__*/React.createElement(FaceCenteredVideo, {
359
+ src: noBackgroundVideoUrl,
360
+ startFrom: startVideoFrom,
361
+ containerWidth: mainVideoWidthTransition,
362
+ containerHeight: mainVideoHeightTransition,
363
+ faceMetadata: faceMetadata,
364
+ useAveragePosition: true,
365
+ centerHorizontally: false,
366
+ noBackgroundVideoEffects: noBackgroundVideoEffects,
367
+ transparent: true,
368
+ muted: true
369
+ })) : null, noBackgroundVideoUrl && (showVirtual || noBackgroundVideoEffects !== null && noBackgroundVideoEffects !== void 0 && noBackgroundVideoEffects.facePop || noBackgroundVideoEffects !== null && noBackgroundVideoEffects !== void 0 && noBackgroundVideoEffects.backgroundDim || noBackgroundVideoEffects !== null && noBackgroundVideoEffects !== void 0 && noBackgroundVideoEffects.backgroundBlur) && !faceMetadata ? /*#__PURE__*/React.createElement(AbsoluteFill, {
370
+ style: {
371
+ position: "absolute",
372
+ overflow: "hidden",
373
+ borderRadius: "20px",
374
+ width: mainVideoWidthTransition,
375
+ height: mainVideoHeightTransition,
376
+ top: mainVideoTopTransition,
377
+ left: mainVideoLeftTransition,
378
+ transform: "scale(1)",
379
+ zIndex: 9
380
+ }
381
+ }, /*#__PURE__*/React.createElement(OffthreadVideo, {
382
+ startFrom: startVideoFrom,
383
+ src: noBackgroundVideoUrl,
384
+ muted: true,
385
+ transparent: true,
386
+ style: {
387
+ position: "relative",
388
+ width: mainVideoWidthTransition,
389
+ height: mainVideoHeightTransition,
390
+ top: "50%",
391
+ objectFit: "cover",
392
+ borderRadius: "30px",
393
+ filter: noBackgroundVideoEffects !== null && noBackgroundVideoEffects !== void 0 && noBackgroundVideoEffects.facePop ? "brightness(1.1) contrast(1.15) saturate(1.05)" : undefined,
394
+ transform: "translateY(-50%)"
395
+ }
396
+ })) : null, /*#__PURE__*/React.createElement(AbsoluteFill, {
397
+ style: {
398
+ zIndex: 13
399
+ }
400
+ }, children), logoUrl ? /*#__PURE__*/React.createElement("div", {
401
+ style: {
402
+ position: "fixed",
403
+ left: logoLeft,
404
+ top: logoTop,
405
+ padding: 20,
406
+ zIndex: 10
407
+ }
408
+ }, /*#__PURE__*/React.createElement(PausableImg, {
409
+ delayRenderTimeoutInMilliseconds: 61000,
410
+ style: {
411
+ width: "225px",
412
+ maxHeight: "auto",
413
+ objectFit: "contain"
414
+ },
415
+ src: logoUrl
416
+ })) : null);
417
+ };
418
+ var Landscape = function Landscape(_ref3) {
419
+ var children = _ref3.children,
420
+ imageUrl = _ref3.imageUrl,
421
+ brollVideoWidthTransition = _ref3.brollVideoWidthTransition,
422
+ brollVideoHeightTransition = _ref3.brollVideoHeightTransition,
423
+ mainVideoWidthTransition = _ref3.mainVideoWidthTransition,
424
+ mainVideoHeightTransition = _ref3.mainVideoHeightTransition,
425
+ mainVideoTopTransition = _ref3.mainVideoTopTransition,
426
+ mainVideoLeftTransition = _ref3.mainVideoLeftTransition,
427
+ logoUrl = _ref3.logoUrl,
428
+ logoLeft = _ref3.logoLeft,
429
+ logoTop = _ref3.logoTop,
430
+ frameColor = _ref3.frameColor,
431
+ orientation = _ref3.orientation,
432
+ startVideoFrom = _ref3.startVideoFrom,
433
+ noBackgroundVideoUrl = _ref3.noBackgroundVideoUrl,
434
+ sourceVideoOrientation = _ref3.sourceVideoOrientation,
435
+ faceMetadata = _ref3.faceMetadata,
436
+ noBackgroundVideoEffects = _ref3.noBackgroundVideoEffects,
437
+ showVirtual = _ref3.showVirtual,
438
+ virtualBgUrl = _ref3.virtualBgUrl;
439
+ var _useVideoConfig3 = useVideoConfig(),
440
+ width = _useVideoConfig3.width,
441
+ height = _useVideoConfig3.height;
442
+ return /*#__PURE__*/React.createElement(AbsoluteFill, {
443
+ style: {
444
+ backgroundColor: frameColor || "transparent",
445
+ padding: 0,
446
+ isolation: "isolate"
447
+ }
448
+ }, imageUrl && /*#__PURE__*/React.createElement("div", {
449
+ style: {
450
+ position: "absolute",
451
+ overflow: "hidden",
452
+ transformOrigin: "center center",
453
+ transform: "translate(-50%, -50%)",
454
+ borderRadius: orientation === "landscape" ? "0px" : "20px",
455
+ width: brollVideoWidthTransition,
456
+ height: brollVideoHeightTransition,
457
+ top: "50%",
458
+ left: "50%",
459
+ zIndex: orientation === "landscape" ? 1 : 2
460
+ }
461
+ }, /*#__PURE__*/React.createElement(PanningImage, {
462
+ imageUrl: imageUrl,
463
+ style: {
464
+ filter: !showVirtual && noBackgroundVideoEffects !== null && noBackgroundVideoEffects !== void 0 && noBackgroundVideoEffects.backgroundDim && noBackgroundVideoUrl ? "brightness(0.7)" : undefined
465
+ }
466
+ })), /*#__PURE__*/React.createElement("div", {
467
+ style: {
468
+ position: "absolute",
469
+ overflow: "hidden",
470
+ borderRadius: "20px",
471
+ width: mainVideoWidthTransition,
472
+ height: mainVideoHeightTransition,
473
+ top: mainVideoTopTransition,
474
+ left: mainVideoLeftTransition,
475
+ zIndex: 2
476
+ }
477
+ }, showVirtual && virtualBgUrl ? /*#__PURE__*/React.createElement(VirtualBackgroundUnderlay, {
478
+ url: virtualBgUrl,
479
+ top: 0,
480
+ left: 0,
481
+ width: "100%",
482
+ height: "100%",
483
+ borderRadius: "20px",
484
+ zIndex: 2
485
+ }) : null, faceMetadata ? /*#__PURE__*/React.createElement(FaceCenteredVideo, {
486
+ startFrom: startVideoFrom,
487
+ src: noBackgroundVideoUrl,
488
+ faceMetadata: faceMetadata,
489
+ containerWidth: mainVideoWidthTransition,
490
+ containerHeight: mainVideoHeightTransition,
491
+ useAveragePosition: true,
492
+ transparent: true
493
+ }) : /*#__PURE__*/React.createElement(OffthreadVideo, {
494
+ startFrom: startVideoFrom,
495
+ src: noBackgroundVideoUrl,
496
+ muted: false,
497
+ transparent: true,
498
+ style: {
499
+ height: "100%",
500
+ objectFit: "cover",
501
+ width: "100%",
502
+ objectPosition: sourceVideoOrientation === "portrait" ? "0% 30%" : undefined
503
+ }
504
+ })), /*#__PURE__*/React.createElement(BlurOverlay, {
505
+ show: !showVirtual && (noBackgroundVideoEffects === null || noBackgroundVideoEffects === void 0 ? void 0 : noBackgroundVideoEffects.backgroundBlur) && noBackgroundVideoUrl,
506
+ width: width,
507
+ height: height,
508
+ zIndex: 1
509
+ }), noBackgroundVideoUrl && (showVirtual || noBackgroundVideoEffects !== null && noBackgroundVideoEffects !== void 0 && noBackgroundVideoEffects.facePop || noBackgroundVideoEffects !== null && noBackgroundVideoEffects !== void 0 && noBackgroundVideoEffects.backgroundDim || noBackgroundVideoEffects !== null && noBackgroundVideoEffects !== void 0 && noBackgroundVideoEffects.backgroundBlur) && faceMetadata ? /*#__PURE__*/React.createElement(AbsoluteFill, {
510
+ style: {
511
+ position: "absolute",
512
+ overflow: "hidden",
513
+ borderRadius: "20px",
514
+ width: mainVideoWidthTransition,
515
+ height: mainVideoHeightTransition,
516
+ top: mainVideoTopTransition,
517
+ left: mainVideoLeftTransition,
518
+ zIndex: 9
519
+ }
520
+ }, /*#__PURE__*/React.createElement(FaceCenteredVideo, {
521
+ src: noBackgroundVideoUrl,
522
+ startFrom: startVideoFrom,
523
+ containerWidth: mainVideoWidthTransition,
524
+ containerHeight: mainVideoHeightTransition,
525
+ faceMetadata: faceMetadata,
526
+ useAveragePosition: true,
527
+ centerHorizontally: false,
528
+ noBackgroundVideoEffects: noBackgroundVideoEffects,
529
+ transparent: true,
530
+ muted: true
531
+ })) : null, noBackgroundVideoUrl && (showVirtual || noBackgroundVideoEffects !== null && noBackgroundVideoEffects !== void 0 && noBackgroundVideoEffects.facePop || noBackgroundVideoEffects !== null && noBackgroundVideoEffects !== void 0 && noBackgroundVideoEffects.backgroundDim || noBackgroundVideoEffects !== null && noBackgroundVideoEffects !== void 0 && noBackgroundVideoEffects.backgroundBlur) && !faceMetadata ? /*#__PURE__*/React.createElement(AbsoluteFill, {
532
+ style: {
533
+ position: "absolute",
534
+ overflow: "hidden",
535
+ borderRadius: "20px",
536
+ width: mainVideoWidthTransition,
537
+ height: mainVideoHeightTransition,
538
+ top: mainVideoTopTransition,
539
+ left: mainVideoLeftTransition,
540
+ zIndex: 9
541
+ }
542
+ }, /*#__PURE__*/React.createElement(OffthreadVideo, {
543
+ startFrom: startVideoFrom,
544
+ src: noBackgroundVideoUrl,
545
+ muted: true,
546
+ transparent: true,
547
+ style: {
548
+ position: "relative",
549
+ top: "50%",
550
+ height: "100%",
551
+ objectFit: "cover",
552
+ width: "100%",
553
+ borderRadius: "30px",
554
+ filter: noBackgroundVideoEffects !== null && noBackgroundVideoEffects !== void 0 && noBackgroundVideoEffects.facePop ? "brightness(1.1) contrast(1.15) saturate(1.05)" : undefined,
555
+ transform: "translateY(-50%)"
556
+ }
557
+ })) : null, /*#__PURE__*/React.createElement(AbsoluteFill, {
558
+ style: {
559
+ zIndex: 13
560
+ }
561
+ }, children), logoUrl ? /*#__PURE__*/React.createElement("div", {
562
+ style: {
563
+ position: "fixed",
564
+ left: logoLeft,
565
+ top: logoTop,
566
+ padding: 20,
567
+ zIndex: 10
568
+ }
569
+ }, /*#__PURE__*/React.createElement(PausableImg, {
570
+ delayRenderTimeoutInMilliseconds: 61000,
571
+ style: {
572
+ width: "225px",
573
+ maxHeight: "auto",
574
+ objectFit: "contain"
575
+ },
576
+ src: logoUrl
577
+ })) : null);
578
+ };
579
+
580
+ // Configuration for different orientation split screens
581
+ var MotionStillGreenScreenV2 = function MotionStillGreenScreenV2(_ref4) {
582
+ var videoUrl = _ref4.videoUrl,
583
+ startVideoFrom = _ref4.startVideoFrom,
584
+ imageUrl = _ref4.imageUrl,
585
+ muted = _ref4.muted,
586
+ frameColor = _ref4.frameColor,
587
+ logoUrl = _ref4.logoUrl,
588
+ children = _ref4.children,
589
+ sourceVideoOrientation = _ref4.sourceVideoOrientation,
590
+ _ref4$disableTransiti = _ref4.disableTransitionSounds,
591
+ disableTransitionSounds = _ref4$disableTransiti === void 0 ? false : _ref4$disableTransiti,
592
+ noBackgroundVideoUrl = _ref4.noBackgroundVideoUrl,
593
+ durationInFrames = _ref4.durationInFrames,
594
+ faceMetadata = _ref4.faceMetadata,
595
+ noBackgroundVideoEffects = _ref4.noBackgroundVideoEffects;
596
+ var _useVideoConfig4 = useVideoConfig(),
597
+ width = _useVideoConfig4.width,
598
+ height = _useVideoConfig4.height;
599
+ var _useVirtualBackground = useVirtualBackground(),
600
+ isVirtual = _useVirtualBackground.isVirtual,
601
+ virtualBgUrl = _useVirtualBackground.url;
602
+ var showVirtual = isVirtual && !!noBackgroundVideoUrl;
603
+
604
+ // Convert duration from frames to seconds (assuming 30 fps)
605
+ var durationInSeconds = durationInFrames / 30;
606
+
607
+ // Configure orientation-specific layouts
608
+ var _useOrientationBased = useOrientationBased({
609
+ portrait: {
610
+ // Portrait: Image on top, main video on bottom (swapped positions)
611
+ mainVideoWidth: width,
612
+ mainVideoHeight: height * 0.8,
613
+ mainVideoTop: height * 0.2,
614
+ mainVideoLeft: 0,
615
+ brollVideoWidth: width,
616
+ brollVideoHeight: height * 0.6,
617
+ brollVideoTop: CHROME_PADDING,
618
+ brollVideoLeft: CHROME_PADDING,
619
+ logoTop: CHROME_PADDING * 2,
620
+ logoLeft: CHROME_PADDING * 2,
621
+ MotionStillGreenScreenComponent: Portrait
622
+ },
623
+ landscape: {
624
+ // Landscape: Image fullscreen with portrait video (3:4 aspect ratio) aligned to the right
625
+ mainVideoWidth: width,
626
+ mainVideoHeight: height * 0.86,
627
+ mainVideoTop: CHROME_PADDING + height * 0.14,
628
+ mainVideoLeft: 0,
629
+ brollVideoWidth: width,
630
+ brollVideoHeight: height * 0.65,
631
+ brollVideoTop: 0,
632
+ brollVideoLeft: 0,
633
+ logoTop: CHROME_PADDING * 2,
634
+ logoLeft: CHROME_PADDING * 2,
635
+ MotionStillGreenScreenComponent: Square
636
+ },
637
+ square: {
638
+ // Square: Main video on top, image on bottom
639
+ mainVideoWidth: width,
640
+ mainVideoHeight: height * 0.86,
641
+ mainVideoTop: CHROME_PADDING + height * 0.14,
642
+ mainVideoLeft: 0,
643
+ brollVideoWidth: width,
644
+ brollVideoHeight: height * 0.5,
645
+ brollVideoTop: 0,
646
+ brollVideoLeft: 0,
647
+ logoTop: CHROME_PADDING * 2,
648
+ logoLeft: CHROME_PADDING * 2,
649
+ MotionStillGreenScreenComponent: Square
650
+ }
651
+ }),
652
+ MotionStillGreenScreenComponent = _useOrientationBased.MotionStillGreenScreenComponent,
653
+ mainVideoWidth = _useOrientationBased.mainVideoWidth,
654
+ mainVideoHeight = _useOrientationBased.mainVideoHeight,
655
+ mainVideoTop = _useOrientationBased.mainVideoTop,
656
+ mainVideoLeft = _useOrientationBased.mainVideoLeft,
657
+ brollVideoWidth = _useOrientationBased.brollVideoWidth,
658
+ brollVideoHeight = _useOrientationBased.brollVideoHeight,
659
+ brollVideoTop = _useOrientationBased.brollVideoTop,
660
+ brollVideoLeft = _useOrientationBased.brollVideoLeft,
661
+ logoTop = _useOrientationBased.logoTop,
662
+ logoLeft = _useOrientationBased.logoLeft,
663
+ orientation = _useOrientationBased.orientation;
664
+
665
+ // Transition timing - starting full screen, transitioning to split screen, then back to full screen
666
+ var transitionTimings = [0, 0.5, durationInSeconds - 0.5, durationInSeconds]; // Start at 0, split at 0.5, return to original at 1.0
667
+
668
+ // Main video transitions
669
+ var mainVideoWidthTransition = useTimeInterpolate(transitionTimings, [width, mainVideoWidth, mainVideoWidth, width], {
670
+ extrapolateRight: "clamp",
671
+ easing: Easing["in"](Easing.quad)
672
+ });
673
+ var mainVideoHeightTransition = useTimeInterpolate(transitionTimings, [height, mainVideoHeight, mainVideoHeight, height], {
674
+ extrapolateRight: "clamp",
675
+ easing: Easing["in"](Easing.quad)
676
+ });
677
+ var mainVideoTopTransition = useTimeInterpolate(transitionTimings, [0, mainVideoTop, mainVideoTop, 0], {
678
+ extrapolateRight: "clamp",
679
+ easing: Easing["in"](Easing.quad)
680
+ });
681
+ var mainVideoLeftTransition = useTimeInterpolate(transitionTimings, [0, mainVideoLeft, mainVideoLeft, 0], {
682
+ extrapolateRight: "clamp",
683
+ easing: Easing["in"](Easing.quad)
684
+ });
685
+
686
+ // Image transitions (start offscreen and move into position)
687
+ var brollVideoWidthTransition = useTimeInterpolate(transitionTimings, [0, brollVideoWidth, brollVideoWidth, 0], {
688
+ extrapolateRight: "clamp",
689
+ easing: Easing["in"](Easing.quad)
690
+ });
691
+ var brollVideoHeightTransition = useTimeInterpolate(transitionTimings, [0, brollVideoHeight, brollVideoHeight, 0], {
692
+ extrapolateRight: "clamp",
693
+ easing: Easing["in"](Easing.quad)
694
+ });
695
+ var brollVideoTopTransition = useTimeInterpolate(transitionTimings, orientation === "portrait" ? [-brollVideoHeight, brollVideoTop, brollVideoTop, -brollVideoHeight] : [0, brollVideoTop, brollVideoTop, 0], {
696
+ extrapolateRight: "clamp",
697
+ easing: Easing["in"](Easing.quad)
698
+ });
699
+ var brollVideoLeftTransition = useTimeInterpolate(transitionTimings, orientation === "portrait" ? [width / 2 - brollVideoWidth / 2, brollVideoLeft, brollVideoLeft, width / 2 - brollVideoWidth / 2] : [0, brollVideoLeft, brollVideoLeft, 0], {
700
+ extrapolateRight: "clamp",
701
+ easing: Easing["in"](Easing.quad)
702
+ });
703
+ return /*#__PURE__*/React.createElement(React.Fragment, null, !disableTransitionSounds && /*#__PURE__*/React.createElement(Audio, {
704
+ src: "https://cdn.zync.ai/assets/static/swoosh.mp3",
705
+ volume: 0.25
706
+ }), /*#__PURE__*/React.createElement(MotionStillGreenScreenComponent, {
707
+ imageUrl: imageUrl,
708
+ brollVideoWidthTransition: brollVideoWidthTransition,
709
+ brollVideoHeightTransition: brollVideoHeightTransition,
710
+ brollVideoTopTransition: brollVideoTopTransition,
711
+ brollVideoLeftTransition: brollVideoLeftTransition,
712
+ mainVideoWidthTransition: mainVideoWidthTransition,
713
+ mainVideoHeightTransition: mainVideoHeightTransition,
714
+ mainVideoTopTransition: mainVideoTopTransition,
715
+ mainVideoLeftTransition: mainVideoLeftTransition,
716
+ logoUrl: logoUrl,
717
+ frameColor: frameColor,
718
+ orientation: orientation,
719
+ startVideoFrom: startVideoFrom,
720
+ noBackgroundVideoUrl: noBackgroundVideoUrl,
721
+ sourceVideoOrientation: sourceVideoOrientation,
722
+ logoLeft: logoLeft,
723
+ logoTop: logoTop,
724
+ videoUrl: videoUrl,
725
+ faceMetadata: faceMetadata,
726
+ noBackgroundVideoEffects: noBackgroundVideoEffects,
727
+ showVirtual: showVirtual,
728
+ virtualBgUrl: virtualBgUrl
729
+ }, children));
730
+ };
731
+ export { MotionStillGreenScreenV2 };