@remotion/promo-pages 4.0.456 → 4.0.458
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/Homepage.js +912 -684
- package/dist/design.js +530 -447
- package/dist/experts/experts-data.js +124 -2
- package/dist/experts.js +667 -441
- package/dist/homepage/Pricing.js +533 -450
- package/dist/prompts/PromptsGallery.js +534 -451
- package/dist/prompts/PromptsShow.js +566 -483
- package/dist/prompts/PromptsSubmit.js +568 -485
- package/dist/team.js +530 -447
- package/dist/template-modal-content.js +540 -457
- package/dist/templates.js +530 -447
- package/package.json +13 -13
- package/public/img/freelancers/huang-chi-chang.jpg +0 -0
- package/dist/cn.d.ts +0 -2
- package/dist/cn.js +0 -5
- package/dist/components/3DEngine/ButtonDemo.d.ts +0 -2
- package/dist/components/3DEngine/ButtonDemo.js +0 -43
- package/dist/components/3DEngine/Faces.d.ts +0 -5
- package/dist/components/3DEngine/Faces.js +0 -7
- package/dist/components/3DEngine/Outer.d.ts +0 -8
- package/dist/components/3DEngine/Outer.js +0 -56
- package/dist/components/3DEngine/Switch.d.ts +0 -4
- package/dist/components/3DEngine/Switch.js +0 -4
- package/dist/components/3DEngine/get-child-node-from.d.ts +0 -1
- package/dist/components/3DEngine/get-child-node-from.js +0 -14
- package/dist/components/3DEngine/hover-transforms.d.ts +0 -9
- package/dist/components/3DEngine/hover-transforms.js +0 -177
- package/dist/components/BackButton.d.ts +0 -6
- package/dist/components/BackButton.js +0 -9
- package/dist/components/CommandCopyButton.d.ts +0 -5
- package/dist/components/CommandCopyButton.js +0 -4
- package/dist/components/Homepage.d.ts +0 -6
- package/dist/components/Homepage.js +0 -20
- package/dist/components/ManageTeamMembers.d.ts +0 -2
- package/dist/components/ManageTeamMembers.js +0 -42
- package/dist/components/Spinner.d.ts +0 -3
- package/dist/components/Spinner.js +0 -4
- package/dist/components/TeamPicture.d.ts +0 -1
- package/dist/components/TeamPicture.js +0 -4
- package/dist/components/design.d.ts +0 -1
- package/dist/components/design.js +0 -33
- package/dist/components/experts/ExpertsPage.d.ts +0 -11
- package/dist/components/experts/ExpertsPage.js +0 -50
- package/dist/components/experts/experts-data.d.ts +0 -15
- package/dist/components/experts/experts-data.js +0 -276
- package/dist/components/experts/experts-icons.d.ts +0 -7
- package/dist/components/experts/experts-icons.js +0 -36
- package/dist/components/experts.d.ts +0 -3
- package/dist/components/experts.js +0 -2
- package/dist/components/homepage/BackgroundAnimation.d.ts +0 -2
- package/dist/components/homepage/BackgroundAnimation.js +0 -66
- package/dist/components/homepage/ChooseTemplate.d.ts +0 -2
- package/dist/components/homepage/ChooseTemplate.js +0 -25
- package/dist/components/homepage/CommunityStats.d.ts +0 -3
- package/dist/components/homepage/CommunityStats.js +0 -6
- package/dist/components/homepage/CommunityStatsItems.d.ts +0 -7
- package/dist/components/homepage/CommunityStatsItems.js +0 -58
- package/dist/components/homepage/Demo/Card.d.ts +0 -15
- package/dist/components/homepage/Demo/Card.js +0 -174
- package/dist/components/homepage/Demo/Cards.d.ts +0 -15
- package/dist/components/homepage/Demo/Cards.js +0 -57
- package/dist/components/homepage/Demo/Comp.d.ts +0 -38
- package/dist/components/homepage/Demo/Comp.js +0 -72
- package/dist/components/homepage/Demo/CurrentCountry.d.ts +0 -9
- package/dist/components/homepage/Demo/CurrentCountry.js +0 -48
- package/dist/components/homepage/Demo/DemoError.d.ts +0 -2
- package/dist/components/homepage/Demo/DemoError.js +0 -10
- package/dist/components/homepage/Demo/DemoErrorIcon.d.ts +0 -2
- package/dist/components/homepage/Demo/DemoErrorIcon.js +0 -16
- package/dist/components/homepage/Demo/DemoRender.d.ts +0 -33
- package/dist/components/homepage/Demo/DemoRender.js +0 -107
- package/dist/components/homepage/Demo/DigitWheel.d.ts +0 -9
- package/dist/components/homepage/Demo/DigitWheel.js +0 -94
- package/dist/components/homepage/Demo/DisplayedEmoji.d.ts +0 -5
- package/dist/components/homepage/Demo/DisplayedEmoji.js +0 -59
- package/dist/components/homepage/Demo/DoneCheckmark.d.ts +0 -2
- package/dist/components/homepage/Demo/DoneCheckmark.js +0 -20
- package/dist/components/homepage/Demo/DownloadNudge.d.ts +0 -2
- package/dist/components/homepage/Demo/DownloadNudge.js +0 -27
- package/dist/components/homepage/Demo/DragAndDropNudge.d.ts +0 -3
- package/dist/components/homepage/Demo/DragAndDropNudge.js +0 -26
- package/dist/components/homepage/Demo/EmojiCard.d.ts +0 -10
- package/dist/components/homepage/Demo/EmojiCard.js +0 -120
- package/dist/components/homepage/Demo/Minus.d.ts +0 -5
- package/dist/components/homepage/Demo/Minus.js +0 -11
- package/dist/components/homepage/Demo/PlayPauseButton.d.ts +0 -5
- package/dist/components/homepage/Demo/PlayPauseButton.js +0 -47
- package/dist/components/homepage/Demo/PlayerControls.d.ts +0 -8
- package/dist/components/homepage/Demo/PlayerControls.js +0 -15
- package/dist/components/homepage/Demo/PlayerSeekBar.d.ts +0 -11
- package/dist/components/homepage/Demo/PlayerSeekBar.js +0 -216
- package/dist/components/homepage/Demo/PlayerVolume.d.ts +0 -5
- package/dist/components/homepage/Demo/PlayerVolume.js +0 -53
- package/dist/components/homepage/Demo/Progress.d.ts +0 -4
- package/dist/components/homepage/Demo/Progress.js +0 -14
- package/dist/components/homepage/Demo/Spinner.d.ts +0 -5
- package/dist/components/homepage/Demo/Spinner.js +0 -37
- package/dist/components/homepage/Demo/Switcher.d.ts +0 -6
- package/dist/components/homepage/Demo/Switcher.js +0 -25
- package/dist/components/homepage/Demo/Temperature.d.ts +0 -6
- package/dist/components/homepage/Demo/Temperature.js +0 -21
- package/dist/components/homepage/Demo/TemperatureNumber.d.ts +0 -5
- package/dist/components/homepage/Demo/TemperatureNumber.js +0 -36
- package/dist/components/homepage/Demo/ThemeNudge.d.ts +0 -3
- package/dist/components/homepage/Demo/ThemeNudge.js +0 -35
- package/dist/components/homepage/Demo/TimeDisplay.d.ts +0 -6
- package/dist/components/homepage/Demo/TimeDisplay.js +0 -27
- package/dist/components/homepage/Demo/TrendingRepos.d.ts +0 -6
- package/dist/components/homepage/Demo/TrendingRepos.js +0 -65
- package/dist/components/homepage/Demo/icons.d.ts +0 -10
- package/dist/components/homepage/Demo/icons.js +0 -22
- package/dist/components/homepage/Demo/index.d.ts +0 -2
- package/dist/components/homepage/Demo/index.js +0 -95
- package/dist/components/homepage/Demo/math.d.ts +0 -10
- package/dist/components/homepage/Demo/math.js +0 -29
- package/dist/components/homepage/Demo/types.d.ts +0 -6
- package/dist/components/homepage/Demo/types.js +0 -0
- package/dist/components/homepage/EditorStarterSection.d.ts +0 -3
- package/dist/components/homepage/EditorStarterSection.js +0 -8
- package/dist/components/homepage/EvaluateRemotion.d.ts +0 -3
- package/dist/components/homepage/EvaluateRemotion.js +0 -21
- package/dist/components/homepage/FreePricing.d.ts +0 -4
- package/dist/components/homepage/FreePricing.js +0 -133
- package/dist/components/homepage/GetStartedStrip.d.ts +0 -2
- package/dist/components/homepage/GetStartedStrip.js +0 -14
- package/dist/components/homepage/GitHubButton.d.ts +0 -2
- package/dist/components/homepage/GitHubButton.js +0 -7
- package/dist/components/homepage/IconForTemplate.d.ts +0 -6
- package/dist/components/homepage/IconForTemplate.js +0 -105
- package/dist/components/homepage/IfYouKnowReact.d.ts +0 -3
- package/dist/components/homepage/IfYouKnowReact.js +0 -23
- package/dist/components/homepage/MoreTemplatesButton.d.ts +0 -2
- package/dist/components/homepage/MoreTemplatesButton.js +0 -11
- package/dist/components/homepage/MuxVideo.d.ts +0 -7
- package/dist/components/homepage/MuxVideo.js +0 -45
- package/dist/components/homepage/NewsletterButton.d.ts +0 -2
- package/dist/components/homepage/NewsletterButton.js +0 -38
- package/dist/components/homepage/ParameterizeAndEdit.d.ts +0 -2
- package/dist/components/homepage/ParameterizeAndEdit.js +0 -22
- package/dist/components/homepage/Pricing.d.ts +0 -2
- package/dist/components/homepage/Pricing.js +0 -15
- package/dist/components/homepage/PricingBulletPoint.d.ts +0 -6
- package/dist/components/homepage/PricingBulletPoint.js +0 -19
- package/dist/components/homepage/RealMp4Videos.d.ts +0 -2
- package/dist/components/homepage/RealMp4Videos.js +0 -41
- package/dist/components/homepage/Spacer.d.ts +0 -2
- package/dist/components/homepage/Spacer.js +0 -4
- package/dist/components/homepage/TemplateIcon.d.ts +0 -5
- package/dist/components/homepage/TemplateIcon.js +0 -24
- package/dist/components/homepage/TextInput.d.ts +0 -7
- package/dist/components/homepage/TextInput.js +0 -34
- package/dist/components/homepage/TrustedByBanner.d.ts +0 -2
- package/dist/components/homepage/TrustedByBanner.js +0 -27
- package/dist/components/homepage/VideoApps.d.ts +0 -4
- package/dist/components/homepage/VideoApps.js +0 -72
- package/dist/components/homepage/VideoAppsShowcase.d.ts +0 -3
- package/dist/components/homepage/VideoAppsShowcase.js +0 -139
- package/dist/components/homepage/VideoAppsTitle.d.ts +0 -4
- package/dist/components/homepage/VideoAppsTitle.js +0 -4
- package/dist/components/homepage/VideoPlayerWithControls.d.ts +0 -20
- package/dist/components/homepage/VideoPlayerWithControls.js +0 -105
- package/dist/components/homepage/WriteInReact.d.ts +0 -2
- package/dist/components/homepage/WriteInReact.js +0 -10
- package/dist/components/homepage/YouAreHere.d.ts +0 -2
- package/dist/components/homepage/YouAreHere.js +0 -23
- package/dist/components/homepage/layout/Button.d.ts +0 -22
- package/dist/components/homepage/layout/Button.js +0 -30
- package/dist/components/homepage/layout/colors.d.ts +0 -13
- package/dist/components/homepage/layout/colors.js +0 -14
- package/dist/components/homepage/layout/use-color-mode.d.ts +0 -21
- package/dist/components/homepage/layout/use-color-mode.js +0 -22
- package/dist/components/homepage/layout/use-el-size.d.ts +0 -5
- package/dist/components/homepage/layout/use-el-size.js +0 -40
- package/dist/components/homepage/layout/use-mobile-layout.d.ts +0 -1
- package/dist/components/homepage/layout/use-mobile-layout.js +0 -6
- package/dist/components/icons/blank.d.ts +0 -3
- package/dist/components/icons/blank.js +0 -4
- package/dist/components/icons/brain.d.ts +0 -2
- package/dist/components/icons/brain.js +0 -4
- package/dist/components/icons/clone.d.ts +0 -2
- package/dist/components/icons/clone.js +0 -2
- package/dist/components/icons/code-hike.d.ts +0 -3
- package/dist/components/icons/code-hike.js +0 -4
- package/dist/components/icons/cubes.d.ts +0 -3
- package/dist/components/icons/cubes.js +0 -4
- package/dist/components/icons/editor.d.ts +0 -3
- package/dist/components/icons/editor.js +0 -4
- package/dist/components/icons/electron.d.ts +0 -4
- package/dist/components/icons/electron.js +0 -4
- package/dist/components/icons/js.d.ts +0 -3
- package/dist/components/icons/js.js +0 -4
- package/dist/components/icons/music.d.ts +0 -2
- package/dist/components/icons/music.js +0 -4
- package/dist/components/icons/next.d.ts +0 -4
- package/dist/components/icons/next.js +0 -4
- package/dist/components/icons/overlay.d.ts +0 -3
- package/dist/components/icons/overlay.js +0 -4
- package/dist/components/icons/prompt-to-video.d.ts +0 -2
- package/dist/components/icons/prompt-to-video.js +0 -4
- package/dist/components/icons/recorder.d.ts +0 -3
- package/dist/components/icons/recorder.js +0 -4
- package/dist/components/icons/remix.d.ts +0 -3
- package/dist/components/icons/remix.js +0 -4
- package/dist/components/icons/render-server.d.ts +0 -3
- package/dist/components/icons/render-server.js +0 -4
- package/dist/components/icons/skia.d.ts +0 -3
- package/dist/components/icons/skia.js +0 -4
- package/dist/components/icons/stargazer.d.ts +0 -3
- package/dist/components/icons/stargazer.js +0 -4
- package/dist/components/icons/still.d.ts +0 -3
- package/dist/components/icons/still.js +0 -4
- package/dist/components/icons/tailwind.d.ts +0 -3
- package/dist/components/icons/tailwind.js +0 -4
- package/dist/components/icons/tiktok.d.ts +0 -3
- package/dist/components/icons/tiktok.js +0 -4
- package/dist/components/icons/timeline.d.ts +0 -3
- package/dist/components/icons/timeline.js +0 -4
- package/dist/components/icons/ts.d.ts +0 -3
- package/dist/components/icons/ts.js +0 -4
- package/dist/components/icons/undo.d.ts +0 -3
- package/dist/components/icons/undo.js +0 -2
- package/dist/components/icons/vercel.d.ts +0 -4
- package/dist/components/icons/vercel.js +0 -4
- package/dist/components/icons/waveform.d.ts +0 -3
- package/dist/components/icons/waveform.js +0 -4
- package/dist/components/prompts/CardLikeButton.d.ts +0 -5
- package/dist/components/prompts/CardLikeButton.js +0 -49
- package/dist/components/prompts/ClipboardIcon.d.ts +0 -5
- package/dist/components/prompts/ClipboardIcon.js +0 -4
- package/dist/components/prompts/CopyPromptButton.d.ts +0 -4
- package/dist/components/prompts/CopyPromptButton.js +0 -13
- package/dist/components/prompts/LikeButton.d.ts +0 -5
- package/dist/components/prompts/LikeButton.js +0 -49
- package/dist/components/prompts/MuxPlayer.d.ts +0 -8
- package/dist/components/prompts/MuxPlayer.js +0 -21
- package/dist/components/prompts/NewBackButton.d.ts +0 -5
- package/dist/components/prompts/NewBackButton.js +0 -8
- package/dist/components/prompts/Page.d.ts +0 -8
- package/dist/components/prompts/Page.js +0 -7
- package/dist/components/prompts/PromptsGallery.d.ts +0 -7
- package/dist/components/prompts/PromptsGallery.js +0 -60
- package/dist/components/prompts/PromptsShow.d.ts +0 -5
- package/dist/components/prompts/PromptsShow.js +0 -17
- package/dist/components/prompts/PromptsSubmit.d.ts +0 -2
- package/dist/components/prompts/PromptsSubmit.js +0 -173
- package/dist/components/prompts/config.d.ts +0 -1
- package/dist/components/prompts/config.js +0 -1
- package/dist/components/prompts/prompt-helpers.d.ts +0 -8
- package/dist/components/prompts/prompt-helpers.js +0 -76
- package/dist/components/prompts/prompt-types.d.ts +0 -14
- package/dist/components/prompts/prompt-types.js +0 -0
- package/dist/components/prompts/use-heart-animation.d.ts +0 -5
- package/dist/components/prompts/use-heart-animation.js +0 -29
- package/dist/components/team/TeamCards.d.ts +0 -6
- package/dist/components/team/TeamCards.js +0 -19
- package/dist/components/team/TitleTeamCards.d.ts +0 -2
- package/dist/components/team/TitleTeamCards.js +0 -6
- package/dist/components/team/TrustSection.d.ts +0 -2
- package/dist/components/team/TrustSection.js +0 -59
- package/dist/components/team.d.ts +0 -3
- package/dist/components/team.js +0 -15
- package/dist/components/template-modal-content.d.ts +0 -5
- package/dist/components/template-modal-content.js +0 -73
- package/dist/components/templates.d.ts +0 -2
- package/dist/components/templates.js +0 -27
- package/dist/helpers/mobile-layout.d.ts +0 -1
- package/dist/helpers/mobile-layout.js +0 -6
- package/dist/helpers/use-el-size.d.ts +0 -5
- package/dist/helpers/use-el-size.js +0 -40
- package/dist/main.d.ts +0 -1
- package/dist/main.js +0 -6
- package/dist/prompts-show.d.ts +0 -1
- package/dist/prompts-show.js +0 -20
- package/dist/prompts-submit.d.ts +0 -1
- package/dist/prompts-submit.js +0 -6
- package/dist/prompts.d.ts +0 -1
- package/dist/prompts.js +0 -6
- package/dist/team.d.ts +0 -1
package/dist/Homepage.js
CHANGED
|
@@ -45,6 +45,10 @@ var experts = [
|
|
|
45
45
|
linkedin: "in/sterv/",
|
|
46
46
|
email: "stephen@middy.com",
|
|
47
47
|
videocall: null,
|
|
48
|
+
discord: {
|
|
49
|
+
username: "stervdotcom",
|
|
50
|
+
userId: "613828260534550719"
|
|
51
|
+
},
|
|
48
52
|
since: new Date("2022-08-15").getTime(),
|
|
49
53
|
description: /* @__PURE__ */ jsxs("div", {
|
|
50
54
|
children: [
|
|
@@ -69,6 +73,10 @@ var experts = [
|
|
|
69
73
|
linkedin: "in/just-moh-it/",
|
|
70
74
|
email: "yo@mohitya.dev",
|
|
71
75
|
videocall: null,
|
|
76
|
+
discord: {
|
|
77
|
+
username: "justmohit",
|
|
78
|
+
userId: "616199379530940426"
|
|
79
|
+
},
|
|
72
80
|
since: new Date("2022-08-15").getTime(),
|
|
73
81
|
description: /* @__PURE__ */ jsxs("div", {
|
|
74
82
|
children: [
|
|
@@ -95,6 +103,10 @@ var experts = [
|
|
|
95
103
|
linkedin: "in/satelllte/",
|
|
96
104
|
email: "lunaerxs@gmail.com",
|
|
97
105
|
videocall: null,
|
|
106
|
+
discord: {
|
|
107
|
+
username: "satelllte",
|
|
108
|
+
userId: "564382615105306634"
|
|
109
|
+
},
|
|
98
110
|
since: new Date("2022-09-16").getTime(),
|
|
99
111
|
description: /* @__PURE__ */ jsxs("div", {
|
|
100
112
|
children: [
|
|
@@ -124,6 +136,10 @@ var experts = [
|
|
|
124
136
|
linkedin: null,
|
|
125
137
|
email: "ben@captok.ai",
|
|
126
138
|
videocall: null,
|
|
139
|
+
discord: {
|
|
140
|
+
username: "ben201000",
|
|
141
|
+
userId: "833862694372245515"
|
|
142
|
+
},
|
|
127
143
|
since: new Date("2022-11-03").getTime(),
|
|
128
144
|
description: /* @__PURE__ */ jsxs("div", {
|
|
129
145
|
children: [
|
|
@@ -151,6 +167,7 @@ var experts = [
|
|
|
151
167
|
since: new Date("2022-08-22").getTime(),
|
|
152
168
|
email: "karel@asius.ai",
|
|
153
169
|
videocall: null,
|
|
170
|
+
discord: null,
|
|
154
171
|
description: /* @__PURE__ */ jsxs("div", {
|
|
155
172
|
children: [
|
|
156
173
|
"I have created Remotion videos for many companies and helped them with deployment, some examples are visible",
|
|
@@ -184,6 +201,10 @@ var experts = [
|
|
|
184
201
|
linkedin: "in/alex-f-17a5bb56/",
|
|
185
202
|
email: "alex.frndz@gmail.com",
|
|
186
203
|
videocall: "https://cal.com/remotion-expert-alex-fernandez",
|
|
204
|
+
discord: {
|
|
205
|
+
username: "alex12345670000",
|
|
206
|
+
userId: "1046357837976182894"
|
|
207
|
+
},
|
|
187
208
|
since: new Date("2022-12-02").getTime(),
|
|
188
209
|
description: /* @__PURE__ */ jsx("div", {
|
|
189
210
|
children: "I am an experienced integration developer using Mulesoft, a backend developer and on the side frontend and animation enthusiast."
|
|
@@ -199,6 +220,10 @@ var experts = [
|
|
|
199
220
|
linkedin: "in/matthew-mcgillivray-68295a55",
|
|
200
221
|
email: "mm@mattm9y.com",
|
|
201
222
|
videocall: "https://cal.com/remotion-expert-matt-mcgillivray",
|
|
223
|
+
discord: {
|
|
224
|
+
username: "umungobungo",
|
|
225
|
+
userId: "225141342894948352"
|
|
226
|
+
},
|
|
202
227
|
since: new Date("2023-01-30").getTime(),
|
|
203
228
|
description: /* @__PURE__ */ jsx("div", {
|
|
204
229
|
children: /* @__PURE__ */ jsxs("p", {
|
|
@@ -263,6 +288,10 @@ var experts = [
|
|
|
263
288
|
linkedin: "in/raymond-lotmar/",
|
|
264
289
|
email: "ray@blocklab.ch",
|
|
265
290
|
videocall: "https://cal.com/remotion-expert-ray-lotmar",
|
|
291
|
+
discord: {
|
|
292
|
+
username: "ray_block",
|
|
293
|
+
userId: "402806969980944384"
|
|
294
|
+
},
|
|
266
295
|
since: new Date("2023-01-30").getTime(),
|
|
267
296
|
description: /* @__PURE__ */ jsxs("div", {
|
|
268
297
|
children: [
|
|
@@ -293,6 +322,10 @@ var experts = [
|
|
|
293
322
|
linkedin: "in/lorenzobertolini/",
|
|
294
323
|
email: "ciao@lorenzobertolini.com",
|
|
295
324
|
videocall: null,
|
|
325
|
+
discord: {
|
|
326
|
+
username: "lorenzobertolini",
|
|
327
|
+
userId: "933408520789950516"
|
|
328
|
+
},
|
|
296
329
|
since: new Date("2023-03-14").getTime(),
|
|
297
330
|
description: /* @__PURE__ */ jsxs("div", {
|
|
298
331
|
children: [
|
|
@@ -333,6 +366,10 @@ var experts = [
|
|
|
333
366
|
linkedin: "in/antoine-caron-slash/",
|
|
334
367
|
email: "antoine395.caron+remotion@gmail.com",
|
|
335
368
|
videocall: null,
|
|
369
|
+
discord: {
|
|
370
|
+
username: "antoinecaron.",
|
|
371
|
+
userId: "199566011849113600"
|
|
372
|
+
},
|
|
336
373
|
since: new Date("2023-03-17").getTime(),
|
|
337
374
|
description: /* @__PURE__ */ jsx("div", {
|
|
338
375
|
children: /* @__PURE__ */ jsxs("p", {
|
|
@@ -359,6 +396,10 @@ var experts = [
|
|
|
359
396
|
linkedin: "in/mickaelalves/",
|
|
360
397
|
email: "alves.mckl@gmail.com",
|
|
361
398
|
videocall: null,
|
|
399
|
+
discord: {
|
|
400
|
+
username: "cruuzazul",
|
|
401
|
+
userId: "455697698050277378"
|
|
402
|
+
},
|
|
362
403
|
since: new Date("2023-03-17").getTime(),
|
|
363
404
|
description: /* @__PURE__ */ jsx("div", {
|
|
364
405
|
children: /* @__PURE__ */ jsxs("p", {
|
|
@@ -385,6 +426,10 @@ var experts = [
|
|
|
385
426
|
linkedin: "in/pranavk7/",
|
|
386
427
|
email: "hey@pranava.dev",
|
|
387
428
|
videocall: null,
|
|
429
|
+
discord: {
|
|
430
|
+
username: "thecmdrunner",
|
|
431
|
+
userId: "768013898385063936"
|
|
432
|
+
},
|
|
388
433
|
since: new Date("2023-07-03").getTime(),
|
|
389
434
|
description: /* @__PURE__ */ jsxs("div", {
|
|
390
435
|
children: [
|
|
@@ -419,6 +464,10 @@ var experts = [
|
|
|
419
464
|
linkedin: "in/rahulbansalrb/",
|
|
420
465
|
email: "bansalrahul14@gmail.com",
|
|
421
466
|
videocall: "https://cal.com/remotion-expert-rahul-bansal",
|
|
467
|
+
discord: {
|
|
468
|
+
username: "raxrb",
|
|
469
|
+
userId: "564805165211713536"
|
|
470
|
+
},
|
|
422
471
|
since: new Date("2023-08-04").getTime(),
|
|
423
472
|
description: /* @__PURE__ */ jsxs("div", {
|
|
424
473
|
children: [
|
|
@@ -438,12 +487,16 @@ var experts = [
|
|
|
438
487
|
slug: "pramod-kumar",
|
|
439
488
|
name: "Pramod Kumar",
|
|
440
489
|
image: "/img/freelancers/pramod.jpg",
|
|
441
|
-
website:
|
|
490
|
+
website: null,
|
|
442
491
|
x: "pramodk73",
|
|
443
492
|
github: "pskd73",
|
|
444
493
|
linkedin: "in/pramod-kumar-1a135b74/",
|
|
445
494
|
email: "pramodkumar.damam73@gmail.com",
|
|
446
495
|
videocall: "https://cal.com/remotion-expert-pramod-kumar",
|
|
496
|
+
discord: {
|
|
497
|
+
username: "pskd73",
|
|
498
|
+
userId: "517057574483525655"
|
|
499
|
+
},
|
|
447
500
|
since: new Date("2024-03-10").getTime(),
|
|
448
501
|
description: /* @__PURE__ */ jsxs("div", {
|
|
449
502
|
children: [
|
|
@@ -473,7 +526,14 @@ var experts = [
|
|
|
473
526
|
children: "remotion-animate-text"
|
|
474
527
|
}),
|
|
475
528
|
" ",
|
|
476
|
-
"for Remotion to animate text. I build products in public on X
|
|
529
|
+
"for Remotion to animate text. I build products in public on X and currently building",
|
|
530
|
+
" ",
|
|
531
|
+
/* @__PURE__ */ jsx("a", {
|
|
532
|
+
target: "_blank",
|
|
533
|
+
href: "https://crawlchat.app",
|
|
534
|
+
children: "CrawlChat"
|
|
535
|
+
}),
|
|
536
|
+
". I love helping the community. Feel free to reach out. Looking forward!"
|
|
477
537
|
]
|
|
478
538
|
})
|
|
479
539
|
},
|
|
@@ -487,6 +547,10 @@ var experts = [
|
|
|
487
547
|
linkedin: "in/ayushsoni1001/",
|
|
488
548
|
email: "hi@ayushsoni.com",
|
|
489
549
|
videocall: "https://cal.com/remotion-expert-ayush-soni",
|
|
550
|
+
discord: {
|
|
551
|
+
username: "ayushsoni",
|
|
552
|
+
userId: "624968675916513310"
|
|
553
|
+
},
|
|
490
554
|
since: new Date("2024-03-17").getTime(),
|
|
491
555
|
description: /* @__PURE__ */ jsxs("div", {
|
|
492
556
|
children: [
|
|
@@ -518,6 +582,10 @@ var experts = [
|
|
|
518
582
|
linkedin: "in/andrei-terteci-935331151/",
|
|
519
583
|
email: "hello@andreiterteci.com",
|
|
520
584
|
videocall: "https://cal.com/remotion-expert-andrei-terteci",
|
|
585
|
+
discord: {
|
|
586
|
+
username: "andreiterteci",
|
|
587
|
+
userId: "710924274361172078"
|
|
588
|
+
},
|
|
521
589
|
since: new Date("2024-03-17").getTime(),
|
|
522
590
|
description: /* @__PURE__ */ jsxs("div", {
|
|
523
591
|
children: [
|
|
@@ -549,6 +617,10 @@ var experts = [
|
|
|
549
617
|
linkedin: "in/sambowenhughes/",
|
|
550
618
|
email: "sam@reactvideoeditor.com",
|
|
551
619
|
videocall: "https://calendly.com/reactvideoeditor/30min",
|
|
620
|
+
discord: {
|
|
621
|
+
username: ".samelliott",
|
|
622
|
+
userId: "862593906972688385"
|
|
623
|
+
},
|
|
552
624
|
since: new Date("2025-06-03").getTime(),
|
|
553
625
|
description: /* @__PURE__ */ jsxs("div", {
|
|
554
626
|
children: [
|
|
@@ -634,6 +706,10 @@ var experts = [
|
|
|
634
706
|
email: "shankhadeepdey99@gmail.com",
|
|
635
707
|
slug: "iamshankhadeep",
|
|
636
708
|
videocall: "https://cal.com/iamshankhadeep",
|
|
709
|
+
discord: {
|
|
710
|
+
username: "iamshankhadeep",
|
|
711
|
+
userId: "441576588937527306"
|
|
712
|
+
},
|
|
637
713
|
since: new Date("2021-02-13").getTime(),
|
|
638
714
|
description: /* @__PURE__ */ jsx("div", {
|
|
639
715
|
children: "I created @remotion/player and @remotion/lambda with Jonny. I have 5+ years of experience in building products using Remotion, React, Next.js, and Typescript. I have worked in companies like Camcorder and early-stage startups like a funnel builder marketplace. I can build products super fast from scratch. Looking forward to helping you."
|
|
@@ -649,6 +725,10 @@ var experts = [
|
|
|
649
725
|
linkedin: "in/amirtadrisi/",
|
|
650
726
|
email: "amir@cubite.io",
|
|
651
727
|
videocall: null,
|
|
728
|
+
discord: {
|
|
729
|
+
username: "aioppsos1565",
|
|
730
|
+
userId: "709545234882756711"
|
|
731
|
+
},
|
|
652
732
|
since: new Date("2025-01-01").getTime(),
|
|
653
733
|
description: /* @__PURE__ */ jsxs("div", {
|
|
654
734
|
children: [
|
|
@@ -718,6 +798,10 @@ var experts = [
|
|
|
718
798
|
linkedin: "in/pablito-jean-pool-silva-inca-735a03192/",
|
|
719
799
|
email: "pablito.silvainca@gmail.com",
|
|
720
800
|
videocall: null,
|
|
801
|
+
discord: {
|
|
802
|
+
username: "pablituuu",
|
|
803
|
+
userId: "513743221109555206"
|
|
804
|
+
},
|
|
721
805
|
since: new Date("2026-02-13").getTime(),
|
|
722
806
|
description: /* @__PURE__ */ jsxs("div", {
|
|
723
807
|
children: [
|
|
@@ -744,6 +828,10 @@ var experts = [
|
|
|
744
828
|
linkedin: "in/haingt-dev/",
|
|
745
829
|
email: "hai@haingt.dev",
|
|
746
830
|
videocall: null,
|
|
831
|
+
discord: {
|
|
832
|
+
username: "haingt.dev",
|
|
833
|
+
userId: "384392709902827522"
|
|
834
|
+
},
|
|
747
835
|
since: new Date("2026-04-02").getTime(),
|
|
748
836
|
description: /* @__PURE__ */ jsxs("div", {
|
|
749
837
|
children: [
|
|
@@ -771,6 +859,10 @@ var experts = [
|
|
|
771
859
|
linkedin: "in/ashok-reddy-kakumanu-8a3078247/",
|
|
772
860
|
email: "ashok17748@gmail.com",
|
|
773
861
|
videocall: null,
|
|
862
|
+
discord: {
|
|
863
|
+
username: ".8gates",
|
|
864
|
+
userId: "668293302767845376"
|
|
865
|
+
},
|
|
774
866
|
since: new Date("2026-04-30").getTime(),
|
|
775
867
|
description: /* @__PURE__ */ jsxs("div", {
|
|
776
868
|
children: [
|
|
@@ -786,10 +878,40 @@ var experts = [
|
|
|
786
878
|
"Available for hourly and project/milestone-based engagements."
|
|
787
879
|
]
|
|
788
880
|
})
|
|
881
|
+
},
|
|
882
|
+
{
|
|
883
|
+
slug: "huang-chi-chang",
|
|
884
|
+
name: "Huang Chi Chang",
|
|
885
|
+
image: "/img/freelancers/huang-chi-chang.jpg",
|
|
886
|
+
website: "https://swift-clip.vercel.app/",
|
|
887
|
+
x: null,
|
|
888
|
+
github: "zz41354899",
|
|
889
|
+
linkedin: null,
|
|
890
|
+
email: "zz41354899@gmail.com",
|
|
891
|
+
videocall: null,
|
|
892
|
+
discord: {
|
|
893
|
+
username: "Nocts",
|
|
894
|
+
userId: "444852671191580672"
|
|
895
|
+
},
|
|
896
|
+
since: new Date("2026-05-05").getTime(),
|
|
897
|
+
description: /* @__PURE__ */ jsxs("div", {
|
|
898
|
+
children: [
|
|
899
|
+
"I'm a Product Designer and Indie Hacker based in Taiwan. I specialize in using Remotion to automate video production, building dynamic templates and automated rendering pipelines.",
|
|
900
|
+
/* @__PURE__ */ jsx("br", {}),
|
|
901
|
+
"My project,",
|
|
902
|
+
" ",
|
|
903
|
+
/* @__PURE__ */ jsx("a", {
|
|
904
|
+
target: "_blank",
|
|
905
|
+
href: "https://swift-clip.vercel.app/",
|
|
906
|
+
children: "SwiftClip"
|
|
907
|
+
}),
|
|
908
|
+
", is a tool designed to streamline professional video creation through programmatic workflows."
|
|
909
|
+
]
|
|
910
|
+
})
|
|
789
911
|
}
|
|
790
912
|
];
|
|
791
913
|
// src/components/experts/ExpertsPage.tsx
|
|
792
|
-
import { useMemo as
|
|
914
|
+
import { useMemo as useMemo38 } from "react";
|
|
793
915
|
|
|
794
916
|
// ../core/dist/esm/index.mjs
|
|
795
917
|
import { createContext } from "react";
|
|
@@ -834,11 +956,11 @@ import { jsx as jsx8 } from "react/jsx-runtime";
|
|
|
834
956
|
import { useEffect as useEffect3, useMemo as useMemo10, useRef as useRef4 } from "react";
|
|
835
957
|
import { jsx as jsx9 } from "react/jsx-runtime";
|
|
836
958
|
import {
|
|
837
|
-
forwardRef as
|
|
838
|
-
useContext as
|
|
959
|
+
forwardRef as forwardRef3,
|
|
960
|
+
useContext as useContext16,
|
|
839
961
|
useEffect as useEffect5,
|
|
840
|
-
useMemo as
|
|
841
|
-
useState as
|
|
962
|
+
useMemo as useMemo16,
|
|
963
|
+
useState as useState6
|
|
842
964
|
} from "react";
|
|
843
965
|
import { useRef as useRef5 } from "react";
|
|
844
966
|
import { useContext as useContext14, useMemo as useMemo13 } from "react";
|
|
@@ -848,104 +970,105 @@ import { jsx as jsx10 } from "react/jsx-runtime";
|
|
|
848
970
|
import { createContext as createContext14 } from "react";
|
|
849
971
|
import React12, { useCallback as useCallback5, useMemo as useMemo14, useRef as useRef6, useState as useState4 } from "react";
|
|
850
972
|
import { jsx as jsx11 } from "react/jsx-runtime";
|
|
973
|
+
import React13, { forwardRef as forwardRef2, useState as useState5, useContext as useContext15, useMemo as useMemo15 } from "react";
|
|
851
974
|
import { jsx as jsx12 } from "react/jsx-runtime";
|
|
852
975
|
import {
|
|
853
|
-
forwardRef as
|
|
976
|
+
forwardRef as forwardRef4,
|
|
854
977
|
useEffect as useEffect6,
|
|
855
978
|
useImperativeHandle as useImperativeHandle2,
|
|
856
979
|
useLayoutEffect as useLayoutEffect2,
|
|
857
980
|
useRef as useRef8,
|
|
858
|
-
useState as
|
|
981
|
+
useState as useState7
|
|
859
982
|
} from "react";
|
|
860
|
-
import
|
|
983
|
+
import React15, { useCallback as useCallback6, useImperativeHandle, useRef as useRef7 } from "react";
|
|
861
984
|
import { jsx as jsx13 } from "react/jsx-runtime";
|
|
862
985
|
import { jsx as jsx14 } from "react/jsx-runtime";
|
|
863
986
|
import {
|
|
987
|
+
createContext as createContext15,
|
|
864
988
|
forwardRef as forwardRef5,
|
|
865
989
|
useCallback as useCallback7,
|
|
990
|
+
useContext as useContext17,
|
|
866
991
|
useLayoutEffect as useLayoutEffect3,
|
|
867
|
-
useMemo as
|
|
992
|
+
useMemo as useMemo17,
|
|
868
993
|
useRef as useRef9,
|
|
869
994
|
useState as useState8
|
|
870
995
|
} from "react";
|
|
871
|
-
import React15, { forwardRef as forwardRef4, useMemo as useMemo17 } from "react";
|
|
872
|
-
import { useContext as useContext16, useMemo as useMemo16, useState as useState7 } from "react";
|
|
873
996
|
import { jsx as jsx15 } from "react/jsx-runtime";
|
|
874
|
-
import { useContext as
|
|
997
|
+
import { useContext as useContext18, useLayoutEffect as useLayoutEffect5, useState as useState10 } from "react";
|
|
875
998
|
import {
|
|
876
|
-
createContext as
|
|
999
|
+
createContext as createContext16,
|
|
877
1000
|
useCallback as useCallback8,
|
|
878
1001
|
useImperativeHandle as useImperativeHandle3,
|
|
879
1002
|
useLayoutEffect as useLayoutEffect4,
|
|
880
|
-
useMemo as
|
|
1003
|
+
useMemo as useMemo18,
|
|
881
1004
|
useRef as useRef10,
|
|
882
1005
|
useState as useState9
|
|
883
1006
|
} from "react";
|
|
884
1007
|
import { jsx as jsx16 } from "react/jsx-runtime";
|
|
885
|
-
import { forwardRef as forwardRef8, useCallback as useCallback13, useContext as
|
|
886
|
-
import React17, { createContext as
|
|
1008
|
+
import { forwardRef as forwardRef8, useCallback as useCallback13, useContext as useContext30 } from "react";
|
|
1009
|
+
import React17, { createContext as createContext17, useMemo as useMemo19 } from "react";
|
|
887
1010
|
import { jsx as jsx17 } from "react/jsx-runtime";
|
|
888
|
-
import { useContext as
|
|
889
|
-
import { createContext as
|
|
1011
|
+
import { useContext as useContext19 } from "react";
|
|
1012
|
+
import { createContext as createContext18, useEffect as useEffect7, useState as useState11 } from "react";
|
|
890
1013
|
import { jsx as jsx18 } from "react/jsx-runtime";
|
|
891
|
-
import { createContext as
|
|
1014
|
+
import { createContext as createContext19, useMemo as useMemo20, useReducer } from "react";
|
|
892
1015
|
import { jsx as jsx19 } from "react/jsx-runtime";
|
|
893
1016
|
import React23, {
|
|
894
1017
|
forwardRef as forwardRef6,
|
|
895
|
-
useContext as
|
|
896
|
-
useEffect as
|
|
1018
|
+
useContext as useContext28,
|
|
1019
|
+
useEffect as useEffect15,
|
|
897
1020
|
useImperativeHandle as useImperativeHandle4,
|
|
898
|
-
useMemo as
|
|
1021
|
+
useMemo as useMemo28,
|
|
899
1022
|
useRef as useRef18,
|
|
900
1023
|
useState as useState16
|
|
901
1024
|
} from "react";
|
|
902
|
-
import { useContext as
|
|
1025
|
+
import { useContext as useContext21, useLayoutEffect as useLayoutEffect6, useRef as useRef13 } from "react";
|
|
903
1026
|
import React20, {
|
|
904
|
-
createContext as
|
|
1027
|
+
createContext as createContext20,
|
|
905
1028
|
createRef as createRef2,
|
|
906
1029
|
useCallback as useCallback9,
|
|
907
|
-
useContext as
|
|
908
|
-
useMemo as
|
|
1030
|
+
useContext as useContext20,
|
|
1031
|
+
useMemo as useMemo22,
|
|
909
1032
|
useRef as useRef11,
|
|
910
1033
|
useState as useState12
|
|
911
1034
|
} from "react";
|
|
912
|
-
import { useMemo as
|
|
1035
|
+
import { useEffect as useEffect8, useMemo as useMemo21 } from "react";
|
|
913
1036
|
import { jsx as jsx20, jsxs as jsxs22 } from "react/jsx-runtime";
|
|
914
1037
|
import { useRef as useRef12 } from "react";
|
|
915
|
-
import { useContext as
|
|
916
|
-
import { useContext as
|
|
1038
|
+
import { useContext as useContext23, useEffect as useEffect9, useMemo as useMemo23, useState as useState13 } from "react";
|
|
1039
|
+
import { useContext as useContext22 } from "react";
|
|
917
1040
|
import {
|
|
918
1041
|
useCallback as useCallback12,
|
|
919
|
-
useContext as
|
|
920
|
-
useEffect as
|
|
1042
|
+
useContext as useContext26,
|
|
1043
|
+
useEffect as useEffect13,
|
|
921
1044
|
useLayoutEffect as useLayoutEffect8,
|
|
922
1045
|
useRef as useRef17
|
|
923
1046
|
} from "react";
|
|
924
|
-
import { useCallback as useCallback11, useMemo as
|
|
925
|
-
import { useContext as
|
|
1047
|
+
import { useCallback as useCallback11, useMemo as useMemo26, useRef as useRef15 } from "react";
|
|
1048
|
+
import { useContext as useContext25, useMemo as useMemo25 } from "react";
|
|
926
1049
|
import React21, {
|
|
927
1050
|
useCallback as useCallback10,
|
|
928
|
-
useContext as
|
|
929
|
-
useEffect as
|
|
1051
|
+
useContext as useContext24,
|
|
1052
|
+
useEffect as useEffect10,
|
|
930
1053
|
useLayoutEffect as useLayoutEffect7,
|
|
931
|
-
useMemo as
|
|
1054
|
+
useMemo as useMemo24,
|
|
932
1055
|
useRef as useRef14,
|
|
933
1056
|
useState as useState14
|
|
934
1057
|
} from "react";
|
|
935
1058
|
import { jsx as jsx21 } from "react/jsx-runtime";
|
|
936
1059
|
import React22 from "react";
|
|
937
|
-
import { useEffect as
|
|
938
|
-
import { useEffect as
|
|
939
|
-
import { useEffect as
|
|
940
|
-
import { createContext as
|
|
1060
|
+
import { useEffect as useEffect11, useState as useState15 } from "react";
|
|
1061
|
+
import { useEffect as useEffect12, useRef as useRef16 } from "react";
|
|
1062
|
+
import { useEffect as useEffect14 } from "react";
|
|
1063
|
+
import { createContext as createContext21, useContext as useContext27, useMemo as useMemo27 } from "react";
|
|
941
1064
|
import { jsx as jsx222 } from "react/jsx-runtime";
|
|
942
1065
|
import {
|
|
943
1066
|
forwardRef as forwardRef7,
|
|
944
|
-
useContext as
|
|
945
|
-
useEffect as
|
|
1067
|
+
useContext as useContext29,
|
|
1068
|
+
useEffect as useEffect16,
|
|
946
1069
|
useImperativeHandle as useImperativeHandle5,
|
|
947
1070
|
useLayoutEffect as useLayoutEffect9,
|
|
948
|
-
useMemo as
|
|
1071
|
+
useMemo as useMemo29,
|
|
949
1072
|
useRef as useRef19
|
|
950
1073
|
} from "react";
|
|
951
1074
|
import { jsx as jsx23 } from "react/jsx-runtime";
|
|
@@ -954,7 +1077,7 @@ import { forwardRef as forwardRef9, useCallback as useCallback14, useState as us
|
|
|
954
1077
|
import { jsx as jsx25 } from "react/jsx-runtime";
|
|
955
1078
|
import {
|
|
956
1079
|
useCallback as useCallback15,
|
|
957
|
-
useContext as
|
|
1080
|
+
useContext as useContext31,
|
|
958
1081
|
useImperativeHandle as useImperativeHandle6,
|
|
959
1082
|
useLayoutEffect as useLayoutEffect10,
|
|
960
1083
|
useRef as useRef20,
|
|
@@ -966,57 +1089,57 @@ import React28 from "react";
|
|
|
966
1089
|
import {
|
|
967
1090
|
useCallback as useCallback16,
|
|
968
1091
|
useImperativeHandle as useImperativeHandle7,
|
|
969
|
-
useMemo as
|
|
1092
|
+
useMemo as useMemo30,
|
|
970
1093
|
useRef as useRef21,
|
|
971
1094
|
useState as useState19
|
|
972
1095
|
} from "react";
|
|
973
1096
|
import { jsx as jsx27 } from "react/jsx-runtime";
|
|
974
1097
|
import React29 from "react";
|
|
975
|
-
import { useMemo as
|
|
976
|
-
import { createContext as
|
|
1098
|
+
import { useMemo as useMemo32 } from "react";
|
|
1099
|
+
import { createContext as createContext22, useContext as useContext32, useMemo as useMemo31 } from "react";
|
|
977
1100
|
import { jsx as jsx28 } from "react/jsx-runtime";
|
|
978
1101
|
import { jsx as jsx29 } from "react/jsx-runtime";
|
|
979
1102
|
import React31 from "react";
|
|
980
|
-
import React32, { createContext as
|
|
981
|
-
import { useContext as
|
|
1103
|
+
import React32, { createContext as createContext23 } from "react";
|
|
1104
|
+
import { useContext as useContext33 } from "react";
|
|
982
1105
|
import { useCallback as useCallback18 } from "react";
|
|
983
1106
|
import {
|
|
984
1107
|
useCallback as useCallback17,
|
|
985
|
-
useContext as
|
|
986
|
-
useEffect as
|
|
1108
|
+
useContext as useContext34,
|
|
1109
|
+
useEffect as useEffect17,
|
|
987
1110
|
useLayoutEffect as useLayoutEffect11,
|
|
988
|
-
useMemo as
|
|
1111
|
+
useMemo as useMemo33,
|
|
989
1112
|
useState as useState20
|
|
990
1113
|
} from "react";
|
|
991
1114
|
import { jsx as jsx30 } from "react/jsx-runtime";
|
|
992
1115
|
import React34, {
|
|
993
1116
|
forwardRef as forwardRef10,
|
|
994
|
-
useContext as
|
|
995
|
-
useEffect as
|
|
1117
|
+
useContext as useContext35,
|
|
1118
|
+
useEffect as useEffect19,
|
|
996
1119
|
useImperativeHandle as useImperativeHandle8,
|
|
997
|
-
useMemo as
|
|
1120
|
+
useMemo as useMemo34,
|
|
998
1121
|
useRef as useRef22,
|
|
999
1122
|
useState as useState21
|
|
1000
1123
|
} from "react";
|
|
1001
|
-
import { useEffect as
|
|
1124
|
+
import { useEffect as useEffect18 } from "react";
|
|
1002
1125
|
import { jsx as jsx31 } from "react/jsx-runtime";
|
|
1003
1126
|
import { jsx as jsx32 } from "react/jsx-runtime";
|
|
1004
|
-
import React36, { useMemo as
|
|
1127
|
+
import React36, { useMemo as useMemo35 } from "react";
|
|
1005
1128
|
import { jsx as jsx33 } from "react/jsx-runtime";
|
|
1006
|
-
import { Children, forwardRef as forwardRef11, useMemo as
|
|
1129
|
+
import { Children, forwardRef as forwardRef11, useMemo as useMemo36 } from "react";
|
|
1007
1130
|
import React37 from "react";
|
|
1008
|
-
import React38, { createContext as
|
|
1131
|
+
import React38, { createContext as createContext24 } from "react";
|
|
1009
1132
|
import { jsx as jsx34 } from "react/jsx-runtime";
|
|
1010
1133
|
import { jsx as jsx35 } from "react/jsx-runtime";
|
|
1011
1134
|
import React40 from "react";
|
|
1012
|
-
import { forwardRef as forwardRef13, useCallback as useCallback19, useContext as
|
|
1135
|
+
import { forwardRef as forwardRef13, useCallback as useCallback19, useContext as useContext37 } from "react";
|
|
1013
1136
|
import {
|
|
1014
1137
|
forwardRef as forwardRef12,
|
|
1015
|
-
useContext as
|
|
1016
|
-
useEffect as
|
|
1138
|
+
useContext as useContext36,
|
|
1139
|
+
useEffect as useEffect20,
|
|
1017
1140
|
useImperativeHandle as useImperativeHandle9,
|
|
1018
1141
|
useLayoutEffect as useLayoutEffect12,
|
|
1019
|
-
useMemo as
|
|
1142
|
+
useMemo as useMemo37,
|
|
1020
1143
|
useRef as useRef23
|
|
1021
1144
|
} from "react";
|
|
1022
1145
|
import { jsx as jsx36 } from "react/jsx-runtime";
|
|
@@ -2095,6 +2218,7 @@ __export2(exports_timeline_position_state, {
|
|
|
2095
2218
|
useTimelinePosition: () => useTimelinePosition,
|
|
2096
2219
|
useTimelineContext: () => useTimelineContext,
|
|
2097
2220
|
usePlayingState: () => usePlayingState,
|
|
2221
|
+
usePlaybackRate: () => usePlaybackRate,
|
|
2098
2222
|
useAbsoluteTimelinePosition: () => useAbsoluteTimelinePosition,
|
|
2099
2223
|
persistCurrentFrame: () => persistCurrentFrame,
|
|
2100
2224
|
getInitialFrameState: () => getInitialFrameState,
|
|
@@ -2141,6 +2265,7 @@ var SetTimelineContext = createContext13({
|
|
|
2141
2265
|
}
|
|
2142
2266
|
});
|
|
2143
2267
|
var TimelineContext = createContext13(null);
|
|
2268
|
+
var PlaybackRateContext = createContext13(null);
|
|
2144
2269
|
var AbsoluteTimeContext = createContext13(null);
|
|
2145
2270
|
var TimelineContextProvider = ({ children, frameState }) => {
|
|
2146
2271
|
const [playing, setPlaying] = useState2(false);
|
|
@@ -2183,11 +2308,15 @@ var TimelineContextProvider = ({ children, frameState }) => {
|
|
|
2183
2308
|
playing,
|
|
2184
2309
|
imperativePlaying,
|
|
2185
2310
|
rootId: remotionRootId,
|
|
2186
|
-
playbackRate,
|
|
2187
|
-
setPlaybackRate,
|
|
2188
2311
|
audioAndVideoTags
|
|
2189
2312
|
};
|
|
2190
|
-
}, [frame,
|
|
2313
|
+
}, [frame, playing, remotionRootId]);
|
|
2314
|
+
const playbackRateContextValue = useMemo8(() => {
|
|
2315
|
+
return {
|
|
2316
|
+
playbackRate,
|
|
2317
|
+
setPlaybackRate
|
|
2318
|
+
};
|
|
2319
|
+
}, [playbackRate]);
|
|
2191
2320
|
const setTimelineContextValue = useMemo8(() => {
|
|
2192
2321
|
return {
|
|
2193
2322
|
setFrame,
|
|
@@ -2196,11 +2325,14 @@ var TimelineContextProvider = ({ children, frameState }) => {
|
|
|
2196
2325
|
}, []);
|
|
2197
2326
|
return /* @__PURE__ */ jsx8(AbsoluteTimeContext.Provider, {
|
|
2198
2327
|
value: timelineContextValue,
|
|
2199
|
-
children: /* @__PURE__ */ jsx8(
|
|
2200
|
-
value:
|
|
2201
|
-
children: /* @__PURE__ */ jsx8(
|
|
2202
|
-
value:
|
|
2203
|
-
children
|
|
2328
|
+
children: /* @__PURE__ */ jsx8(PlaybackRateContext.Provider, {
|
|
2329
|
+
value: playbackRateContextValue,
|
|
2330
|
+
children: /* @__PURE__ */ jsx8(TimelineContext.Provider, {
|
|
2331
|
+
value: timelineContextValue,
|
|
2332
|
+
children: /* @__PURE__ */ jsx8(SetTimelineContext.Provider, {
|
|
2333
|
+
value: setTimelineContextValue,
|
|
2334
|
+
children
|
|
2335
|
+
})
|
|
2204
2336
|
})
|
|
2205
2337
|
})
|
|
2206
2338
|
});
|
|
@@ -2243,6 +2375,13 @@ var useTimelineContext = () => {
|
|
|
2243
2375
|
}
|
|
2244
2376
|
return state;
|
|
2245
2377
|
};
|
|
2378
|
+
var usePlaybackRate = () => {
|
|
2379
|
+
const state = useContext10(PlaybackRateContext);
|
|
2380
|
+
if (state === null) {
|
|
2381
|
+
throw new Error("PlaybackRateContext is not available. This hook must be used inside a <Player> or the Remotion Studio.");
|
|
2382
|
+
}
|
|
2383
|
+
return state;
|
|
2384
|
+
};
|
|
2246
2385
|
var useTimelinePosition = () => {
|
|
2247
2386
|
const state = useTimelineContext();
|
|
2248
2387
|
return useTimelinePositionFromContext(state);
|
|
@@ -2534,7 +2673,7 @@ var getComponentsToAddStacksTo = () => componentsToAddStacksTo;
|
|
|
2534
2673
|
var addSequenceStackTraces = (component) => {
|
|
2535
2674
|
componentsToAddStacksTo.push(component);
|
|
2536
2675
|
};
|
|
2537
|
-
var VERSION = "4.0.
|
|
2676
|
+
var VERSION = "4.0.458";
|
|
2538
2677
|
var checkMultipleRemotionVersions = () => {
|
|
2539
2678
|
if (typeof globalThis === "undefined") {
|
|
2540
2679
|
return;
|
|
@@ -2705,6 +2844,54 @@ var Freeze = ({
|
|
|
2705
2844
|
var PremountContext = createContext14({
|
|
2706
2845
|
premountFramesRemaining: 0
|
|
2707
2846
|
});
|
|
2847
|
+
var sequenceStyleSchema = {
|
|
2848
|
+
"style.translate": {
|
|
2849
|
+
type: "translate",
|
|
2850
|
+
step: 1,
|
|
2851
|
+
default: "0px 0px",
|
|
2852
|
+
description: "Offset"
|
|
2853
|
+
},
|
|
2854
|
+
"style.scale": {
|
|
2855
|
+
type: "number",
|
|
2856
|
+
min: 0.05,
|
|
2857
|
+
max: 100,
|
|
2858
|
+
step: 0.01,
|
|
2859
|
+
default: 1,
|
|
2860
|
+
description: "Scale"
|
|
2861
|
+
},
|
|
2862
|
+
"style.rotate": {
|
|
2863
|
+
type: "rotation",
|
|
2864
|
+
step: 1,
|
|
2865
|
+
default: "0deg",
|
|
2866
|
+
description: "Rotation"
|
|
2867
|
+
},
|
|
2868
|
+
"style.opacity": {
|
|
2869
|
+
type: "number",
|
|
2870
|
+
min: 0,
|
|
2871
|
+
max: 1,
|
|
2872
|
+
step: 0.01,
|
|
2873
|
+
default: 1,
|
|
2874
|
+
description: "Opacity"
|
|
2875
|
+
}
|
|
2876
|
+
};
|
|
2877
|
+
var sequenceSchema = {
|
|
2878
|
+
layout: {
|
|
2879
|
+
type: "enum",
|
|
2880
|
+
default: "absolute-fill",
|
|
2881
|
+
description: "Layout",
|
|
2882
|
+
variants: {
|
|
2883
|
+
"absolute-fill": sequenceStyleSchema,
|
|
2884
|
+
none: {}
|
|
2885
|
+
}
|
|
2886
|
+
}
|
|
2887
|
+
};
|
|
2888
|
+
var sequenceSchemaDefaultLayoutNone = {
|
|
2889
|
+
...sequenceSchema,
|
|
2890
|
+
layout: {
|
|
2891
|
+
...sequenceSchema.layout,
|
|
2892
|
+
default: "none"
|
|
2893
|
+
}
|
|
2894
|
+
};
|
|
2708
2895
|
var SequenceManager = React12.createContext({
|
|
2709
2896
|
registerSequence: () => {
|
|
2710
2897
|
throw new Error("SequenceManagerContext not initialized");
|
|
@@ -2826,6 +3013,204 @@ var SequenceManagerProvider = ({ children, visualModeEnabled }) => {
|
|
|
2826
3013
|
});
|
|
2827
3014
|
};
|
|
2828
3015
|
var ENABLE_V5_BREAKING_CHANGES = false;
|
|
3016
|
+
var flattenActiveSchema = (schema, resolve) => {
|
|
3017
|
+
const out = {};
|
|
3018
|
+
for (const key of Object.keys(schema)) {
|
|
3019
|
+
const field = schema[key];
|
|
3020
|
+
if (field.type === "enum") {
|
|
3021
|
+
out[key] = field;
|
|
3022
|
+
const current = resolve(key) ?? field.default;
|
|
3023
|
+
const variant = field.variants[current];
|
|
3024
|
+
if (variant) {
|
|
3025
|
+
Object.assign(out, flattenActiveSchema(variant, resolve));
|
|
3026
|
+
}
|
|
3027
|
+
} else {
|
|
3028
|
+
out[key] = field;
|
|
3029
|
+
}
|
|
3030
|
+
}
|
|
3031
|
+
return out;
|
|
3032
|
+
};
|
|
3033
|
+
var getFlatSchemaWithAllKeys = (schema) => {
|
|
3034
|
+
const out = {};
|
|
3035
|
+
const addKey = (key, field) => {
|
|
3036
|
+
if (key in out) {
|
|
3037
|
+
throw new Error(`Duplicate key "${key}" in schema: discriminated union variants must not share keys`);
|
|
3038
|
+
}
|
|
3039
|
+
out[key] = field;
|
|
3040
|
+
};
|
|
3041
|
+
for (const key of Object.keys(schema)) {
|
|
3042
|
+
const field = schema[key];
|
|
3043
|
+
addKey(key, field);
|
|
3044
|
+
if (field.type === "enum") {
|
|
3045
|
+
for (const variant of Object.values(field.variants)) {
|
|
3046
|
+
const flatVariant = getFlatSchemaWithAllKeys(variant);
|
|
3047
|
+
for (const variantKey of Object.keys(flatVariant)) {
|
|
3048
|
+
addKey(variantKey, flatVariant[variantKey]);
|
|
3049
|
+
}
|
|
3050
|
+
}
|
|
3051
|
+
}
|
|
3052
|
+
}
|
|
3053
|
+
return out;
|
|
3054
|
+
};
|
|
3055
|
+
var getEffectiveVisualModeValue = ({
|
|
3056
|
+
codeValue,
|
|
3057
|
+
runtimeValue,
|
|
3058
|
+
dragOverrideValue,
|
|
3059
|
+
defaultValue,
|
|
3060
|
+
shouldResortToDefaultValueIfUndefined = false
|
|
3061
|
+
}) => {
|
|
3062
|
+
if (dragOverrideValue !== undefined) {
|
|
3063
|
+
return dragOverrideValue;
|
|
3064
|
+
}
|
|
3065
|
+
if (!codeValue) {
|
|
3066
|
+
return runtimeValue;
|
|
3067
|
+
}
|
|
3068
|
+
if (!codeValue.canUpdate) {
|
|
3069
|
+
return runtimeValue;
|
|
3070
|
+
}
|
|
3071
|
+
if (codeValue.codeValue === undefined && shouldResortToDefaultValueIfUndefined) {
|
|
3072
|
+
return defaultValue;
|
|
3073
|
+
}
|
|
3074
|
+
return codeValue.codeValue;
|
|
3075
|
+
};
|
|
3076
|
+
var findFieldInSchema = (schema, key) => {
|
|
3077
|
+
if (key in schema) {
|
|
3078
|
+
return schema[key];
|
|
3079
|
+
}
|
|
3080
|
+
for (const field of Object.values(schema)) {
|
|
3081
|
+
if (field.type !== "enum") {
|
|
3082
|
+
continue;
|
|
3083
|
+
}
|
|
3084
|
+
for (const variant of Object.values(field.variants)) {
|
|
3085
|
+
const found = findFieldInSchema(variant, key);
|
|
3086
|
+
if (found) {
|
|
3087
|
+
return found;
|
|
3088
|
+
}
|
|
3089
|
+
}
|
|
3090
|
+
}
|
|
3091
|
+
return;
|
|
3092
|
+
};
|
|
3093
|
+
var computeEffectiveSchemaValuesDotNotation = ({
|
|
3094
|
+
schema,
|
|
3095
|
+
currentValue,
|
|
3096
|
+
overrideValues,
|
|
3097
|
+
propStatus
|
|
3098
|
+
}) => {
|
|
3099
|
+
const merged = {};
|
|
3100
|
+
for (const key of Object.keys(currentValue)) {
|
|
3101
|
+
const codeValueStatus = propStatus?.[key] ?? null;
|
|
3102
|
+
merged[key] = getEffectiveVisualModeValue({
|
|
3103
|
+
codeValue: codeValueStatus,
|
|
3104
|
+
runtimeValue: currentValue[key],
|
|
3105
|
+
dragOverrideValue: overrideValues[key],
|
|
3106
|
+
defaultValue: findFieldInSchema(schema, key)?.default,
|
|
3107
|
+
shouldResortToDefaultValueIfUndefined: false
|
|
3108
|
+
});
|
|
3109
|
+
}
|
|
3110
|
+
return merged;
|
|
3111
|
+
};
|
|
3112
|
+
var getNestedValue = (obj, key) => {
|
|
3113
|
+
const parts = key.split(".");
|
|
3114
|
+
let current = obj;
|
|
3115
|
+
for (const part of parts) {
|
|
3116
|
+
if (current === null || current === undefined || typeof current !== "object")
|
|
3117
|
+
return;
|
|
3118
|
+
current = current[part];
|
|
3119
|
+
}
|
|
3120
|
+
return current;
|
|
3121
|
+
};
|
|
3122
|
+
var readValuesFromProps = (props, keys) => {
|
|
3123
|
+
const out = {};
|
|
3124
|
+
for (const key of keys) {
|
|
3125
|
+
out[key] = getNestedValue(props, key);
|
|
3126
|
+
}
|
|
3127
|
+
return out;
|
|
3128
|
+
};
|
|
3129
|
+
var selectActiveKeys = (schema, values) => {
|
|
3130
|
+
return Object.keys(flattenActiveSchema(schema, (key) => values[key]));
|
|
3131
|
+
};
|
|
3132
|
+
var mergeValues = ({
|
|
3133
|
+
props,
|
|
3134
|
+
valuesDotNotation,
|
|
3135
|
+
schemaKeys
|
|
3136
|
+
}) => {
|
|
3137
|
+
const merged = { ...props };
|
|
3138
|
+
for (const key of schemaKeys) {
|
|
3139
|
+
const value = valuesDotNotation[key];
|
|
3140
|
+
const parts = key.split(".");
|
|
3141
|
+
if (parts.length === 1) {
|
|
3142
|
+
merged[key] = value;
|
|
3143
|
+
continue;
|
|
3144
|
+
}
|
|
3145
|
+
let current = merged;
|
|
3146
|
+
for (let i = 0;i < parts.length - 1; i++) {
|
|
3147
|
+
const part = parts[i];
|
|
3148
|
+
if (typeof current[part] === "object" && current[part] !== null) {
|
|
3149
|
+
current[part] = { ...current[part] };
|
|
3150
|
+
} else {
|
|
3151
|
+
current[part] = {};
|
|
3152
|
+
}
|
|
3153
|
+
current = current[part];
|
|
3154
|
+
}
|
|
3155
|
+
current[parts[parts.length - 1]] = value;
|
|
3156
|
+
}
|
|
3157
|
+
return merged;
|
|
3158
|
+
};
|
|
3159
|
+
var wrapInSchema = (Component, schema) => {
|
|
3160
|
+
if (typeof process === "undefined" || !process.env?.EXPERIMENTAL_VISUAL_MODE_ENABLED) {
|
|
3161
|
+
return Component;
|
|
3162
|
+
}
|
|
3163
|
+
const flatSchema = getFlatSchemaWithAllKeys(schema);
|
|
3164
|
+
const flatKeys = Object.keys(flatSchema);
|
|
3165
|
+
const Wrapped = forwardRef2((props, ref) => {
|
|
3166
|
+
const env = useRemotionEnvironment();
|
|
3167
|
+
const { visualModeEnabled, dragOverrides, codeValues } = useContext15(VisualModeOverridesContext);
|
|
3168
|
+
if (!env.isStudio || env.isReadOnlyStudio || env.isRendering || !visualModeEnabled) {
|
|
3169
|
+
return React13.createElement(Component, {
|
|
3170
|
+
...props,
|
|
3171
|
+
_experimentalControls: null,
|
|
3172
|
+
ref
|
|
3173
|
+
});
|
|
3174
|
+
}
|
|
3175
|
+
if (props._experimentalControls) {
|
|
3176
|
+
return React13.createElement(Component, {
|
|
3177
|
+
...props,
|
|
3178
|
+
ref
|
|
3179
|
+
});
|
|
3180
|
+
}
|
|
3181
|
+
const [overrideId] = useState5(() => String(Math.random()));
|
|
3182
|
+
const runtimeValues = flatKeys.map((k) => getNestedValue(props, k));
|
|
3183
|
+
const currentRuntimeValueDotNotation = useMemo15(() => readValuesFromProps(props, flatKeys), runtimeValues);
|
|
3184
|
+
const controls = useMemo15(() => {
|
|
3185
|
+
return {
|
|
3186
|
+
schema,
|
|
3187
|
+
currentRuntimeValueDotNotation,
|
|
3188
|
+
overrideId
|
|
3189
|
+
};
|
|
3190
|
+
}, [currentRuntimeValueDotNotation, overrideId]);
|
|
3191
|
+
const valuesDotNotation = useMemo15(() => {
|
|
3192
|
+
return computeEffectiveSchemaValuesDotNotation({
|
|
3193
|
+
schema,
|
|
3194
|
+
currentValue: currentRuntimeValueDotNotation,
|
|
3195
|
+
overrideValues: dragOverrides[overrideId] ?? {},
|
|
3196
|
+
propStatus: codeValues[overrideId]
|
|
3197
|
+
});
|
|
3198
|
+
}, [currentRuntimeValueDotNotation, dragOverrides, overrideId, codeValues]);
|
|
3199
|
+
const activeKeys = selectActiveKeys(schema, valuesDotNotation);
|
|
3200
|
+
const mergedProps = mergeValues({
|
|
3201
|
+
props,
|
|
3202
|
+
valuesDotNotation,
|
|
3203
|
+
schemaKeys: activeKeys
|
|
3204
|
+
});
|
|
3205
|
+
return React13.createElement(Component, {
|
|
3206
|
+
...mergedProps,
|
|
3207
|
+
_experimentalControls: controls,
|
|
3208
|
+
ref
|
|
3209
|
+
});
|
|
3210
|
+
});
|
|
3211
|
+
Wrapped.displayName = `wrapInSchema(${Component.displayName || Component.name || "Component"})`;
|
|
3212
|
+
return Wrapped;
|
|
3213
|
+
};
|
|
2829
3214
|
var RegularSequenceRefForwardingFunction = ({
|
|
2830
3215
|
from = 0,
|
|
2831
3216
|
durationInFrames = Infinity,
|
|
@@ -2844,8 +3229,8 @@ var RegularSequenceRefForwardingFunction = ({
|
|
|
2844
3229
|
...other
|
|
2845
3230
|
}, ref) => {
|
|
2846
3231
|
const { layout = "absolute-fill" } = other;
|
|
2847
|
-
const [id] =
|
|
2848
|
-
const parentSequence =
|
|
3232
|
+
const [id] = useState6(() => String(Math.random()));
|
|
3233
|
+
const parentSequence = useContext16(SequenceContext);
|
|
2849
3234
|
const { rootId } = useTimelineContext();
|
|
2850
3235
|
const cumulatedFrom = parentSequence ? parentSequence.cumulatedFrom + parentSequence.relativeFrom : 0;
|
|
2851
3236
|
const nonce = useNonce();
|
|
@@ -2853,7 +3238,7 @@ var RegularSequenceRefForwardingFunction = ({
|
|
|
2853
3238
|
throw new TypeError(`The layout prop of <Sequence /> expects either "absolute-fill" or "none", but you passed: ${layout}`);
|
|
2854
3239
|
}
|
|
2855
3240
|
if (layout === "none" && typeof other.style !== "undefined") {
|
|
2856
|
-
throw new TypeError('If layout="none", you may not pass a style.');
|
|
3241
|
+
throw new TypeError('If layout="none", you may not pass a style. Passed: ' + JSON.stringify(other.style));
|
|
2857
3242
|
}
|
|
2858
3243
|
if (typeof durationInFrames !== "number") {
|
|
2859
3244
|
throw new TypeError(`You passed to durationInFrames an argument of type ${typeof durationInFrames}, but it must be a number.`);
|
|
@@ -2871,15 +3256,15 @@ var RegularSequenceRefForwardingFunction = ({
|
|
|
2871
3256
|
const videoConfig = useVideoConfig();
|
|
2872
3257
|
const parentSequenceDuration = parentSequence ? Math.min(parentSequence.durationInFrames - from, durationInFrames) : durationInFrames;
|
|
2873
3258
|
const actualDurationInFrames = Math.max(0, Math.min(videoConfig.durationInFrames - from, parentSequenceDuration));
|
|
2874
|
-
const { registerSequence, unregisterSequence } =
|
|
2875
|
-
const { hidden } =
|
|
2876
|
-
const premounting =
|
|
3259
|
+
const { registerSequence, unregisterSequence } = useContext16(SequenceManager);
|
|
3260
|
+
const { hidden } = useContext16(SequenceVisibilityToggleContext);
|
|
3261
|
+
const premounting = useMemo16(() => {
|
|
2877
3262
|
return parentSequence?.premounting || Boolean(other._remotionInternalIsPremounting);
|
|
2878
3263
|
}, [other._remotionInternalIsPremounting, parentSequence?.premounting]);
|
|
2879
|
-
const postmounting =
|
|
3264
|
+
const postmounting = useMemo16(() => {
|
|
2880
3265
|
return parentSequence?.postmounting || Boolean(other._remotionInternalIsPostmounting);
|
|
2881
3266
|
}, [other._remotionInternalIsPostmounting, parentSequence?.postmounting]);
|
|
2882
|
-
const contextValue =
|
|
3267
|
+
const contextValue = useMemo16(() => {
|
|
2883
3268
|
return {
|
|
2884
3269
|
cumulatedFrom,
|
|
2885
3270
|
relativeFrom: from,
|
|
@@ -2906,7 +3291,7 @@ var RegularSequenceRefForwardingFunction = ({
|
|
|
2906
3291
|
premountDisplay,
|
|
2907
3292
|
postmountDisplay
|
|
2908
3293
|
]);
|
|
2909
|
-
const timelineClipName =
|
|
3294
|
+
const timelineClipName = useMemo16(() => {
|
|
2910
3295
|
return name ?? "";
|
|
2911
3296
|
}, [name]);
|
|
2912
3297
|
const env = useRemotionEnvironment();
|
|
@@ -2989,7 +3374,7 @@ var RegularSequenceRefForwardingFunction = ({
|
|
|
2989
3374
|
const endThreshold = Math.ceil(cumulatedFrom + from + durationInFrames - 1);
|
|
2990
3375
|
const content = absoluteFrame < cumulatedFrom + from ? null : absoluteFrame > endThreshold ? null : children;
|
|
2991
3376
|
const styleIfThere = other.layout === "none" ? undefined : other.style;
|
|
2992
|
-
const defaultStyle =
|
|
3377
|
+
const defaultStyle = useMemo16(() => {
|
|
2993
3378
|
return {
|
|
2994
3379
|
flexDirection: undefined,
|
|
2995
3380
|
...width ? { width } : {},
|
|
@@ -3014,9 +3399,9 @@ var RegularSequenceRefForwardingFunction = ({
|
|
|
3014
3399
|
})
|
|
3015
3400
|
});
|
|
3016
3401
|
};
|
|
3017
|
-
var RegularSequence =
|
|
3402
|
+
var RegularSequence = forwardRef3(RegularSequenceRefForwardingFunction);
|
|
3018
3403
|
var PremountedPostmountedSequenceRefForwardingFunction = (props, ref) => {
|
|
3019
|
-
const parentPremountContext =
|
|
3404
|
+
const parentPremountContext = useContext16(PremountContext);
|
|
3020
3405
|
const frame = useCurrentFrame() - parentPremountContext.premountFramesRemaining;
|
|
3021
3406
|
if (props.layout === "none") {
|
|
3022
3407
|
throw new Error('`<Sequence>` with `premountFor` and `postmountFor` props does not support layout="none"');
|
|
@@ -3036,7 +3421,7 @@ var PremountedPostmountedSequenceRefForwardingFunction = (props, ref) => {
|
|
|
3036
3421
|
const postmountingActive = frame > endThreshold && frame <= endThreshold + postmountFor;
|
|
3037
3422
|
const freezeFrame = premountingActive ? from : postmountingActive ? from + durationInFrames - 1 : 0;
|
|
3038
3423
|
const isFreezingActive = premountingActive || postmountingActive;
|
|
3039
|
-
const style =
|
|
3424
|
+
const style = useMemo16(() => {
|
|
3040
3425
|
return {
|
|
3041
3426
|
...passedStyle,
|
|
3042
3427
|
opacity: premountingActive || postmountingActive ? 0 : 1,
|
|
@@ -3054,7 +3439,7 @@ var PremountedPostmountedSequenceRefForwardingFunction = (props, ref) => {
|
|
|
3054
3439
|
return /* @__PURE__ */ jsx12(Freeze, {
|
|
3055
3440
|
frame: freezeFrame,
|
|
3056
3441
|
active: isFreezingActive,
|
|
3057
|
-
children: /* @__PURE__ */ jsx12(
|
|
3442
|
+
children: /* @__PURE__ */ jsx12(SequenceInner, {
|
|
3058
3443
|
ref,
|
|
3059
3444
|
from,
|
|
3060
3445
|
durationInFrames,
|
|
@@ -3067,7 +3452,7 @@ var PremountedPostmountedSequenceRefForwardingFunction = (props, ref) => {
|
|
|
3067
3452
|
})
|
|
3068
3453
|
});
|
|
3069
3454
|
};
|
|
3070
|
-
var PremountedPostmountedSequence =
|
|
3455
|
+
var PremountedPostmountedSequence = forwardRef3(PremountedPostmountedSequenceRefForwardingFunction);
|
|
3071
3456
|
var SequenceRefForwardingFunction = (props, ref) => {
|
|
3072
3457
|
const env = useRemotionEnvironment();
|
|
3073
3458
|
const { fps } = useVideoConfig();
|
|
@@ -3086,7 +3471,8 @@ var SequenceRefForwardingFunction = (props, ref) => {
|
|
|
3086
3471
|
ref
|
|
3087
3472
|
});
|
|
3088
3473
|
};
|
|
3089
|
-
var
|
|
3474
|
+
var SequenceInner = forwardRef3(SequenceRefForwardingFunction);
|
|
3475
|
+
var Sequence = wrapInSchema(SequenceInner, sequenceSchema);
|
|
3090
3476
|
var calcArgs = (fit, frameSize, canvasSize) => {
|
|
3091
3477
|
switch (fit) {
|
|
3092
3478
|
case "fill": {
|
|
@@ -3182,7 +3568,7 @@ var CanvasRefForwardingFunction = ({ width, height, fit, className, style }, ref
|
|
|
3182
3568
|
style
|
|
3183
3569
|
});
|
|
3184
3570
|
};
|
|
3185
|
-
var Canvas =
|
|
3571
|
+
var Canvas = React15.forwardRef(CanvasRefForwardingFunction);
|
|
3186
3572
|
var CACHE_SIZE = 5;
|
|
3187
3573
|
var getActualTime = ({
|
|
3188
3574
|
loopBehavior,
|
|
@@ -3329,7 +3715,7 @@ var resolveAnimatedImageSource = (src) => {
|
|
|
3329
3715
|
}
|
|
3330
3716
|
return new URL(src, window.origin).href;
|
|
3331
3717
|
};
|
|
3332
|
-
var AnimatedImage =
|
|
3718
|
+
var AnimatedImage = forwardRef4(({
|
|
3333
3719
|
src,
|
|
3334
3720
|
width,
|
|
3335
3721
|
height,
|
|
@@ -3348,9 +3734,9 @@ var AnimatedImage = forwardRef3(({
|
|
|
3348
3734
|
};
|
|
3349
3735
|
}, []);
|
|
3350
3736
|
const resolvedSrc = resolveAnimatedImageSource(src);
|
|
3351
|
-
const [imageDecoder, setImageDecoder] =
|
|
3737
|
+
const [imageDecoder, setImageDecoder] = useState7(null);
|
|
3352
3738
|
const { delayRender: delayRender2, continueRender: continueRender2 } = useDelayRender();
|
|
3353
|
-
const [decodeHandle] =
|
|
3739
|
+
const [decodeHandle] = useState7(() => delayRender2(`Rendering <AnimatedImage/> with src="${resolvedSrc}"`));
|
|
3354
3740
|
const frame = useCurrentFrame();
|
|
3355
3741
|
const { fps } = useVideoConfig();
|
|
3356
3742
|
const currentTime = frame / playbackRate / fps;
|
|
@@ -3364,7 +3750,7 @@ var AnimatedImage = forwardRef3(({
|
|
|
3364
3750
|
}
|
|
3365
3751
|
return c;
|
|
3366
3752
|
}, []);
|
|
3367
|
-
const [initialLoopBehavior] =
|
|
3753
|
+
const [initialLoopBehavior] = useState7(() => loopBehavior);
|
|
3368
3754
|
useEffect6(() => {
|
|
3369
3755
|
const controller = new AbortController;
|
|
3370
3756
|
decodeImage({
|
|
@@ -3436,158 +3822,6 @@ var AnimatedImage = forwardRef3(({
|
|
|
3436
3822
|
...props
|
|
3437
3823
|
});
|
|
3438
3824
|
});
|
|
3439
|
-
var getEffectiveVisualModeValue = ({
|
|
3440
|
-
codeValue,
|
|
3441
|
-
runtimeValue,
|
|
3442
|
-
dragOverrideValue,
|
|
3443
|
-
defaultValue,
|
|
3444
|
-
shouldResortToDefaultValueIfUndefined = false
|
|
3445
|
-
}) => {
|
|
3446
|
-
if (dragOverrideValue !== undefined) {
|
|
3447
|
-
return dragOverrideValue;
|
|
3448
|
-
}
|
|
3449
|
-
if (!codeValue) {
|
|
3450
|
-
return runtimeValue;
|
|
3451
|
-
}
|
|
3452
|
-
if (!codeValue.canUpdate) {
|
|
3453
|
-
return runtimeValue;
|
|
3454
|
-
}
|
|
3455
|
-
if (codeValue.codeValue === undefined && shouldResortToDefaultValueIfUndefined) {
|
|
3456
|
-
return defaultValue;
|
|
3457
|
-
}
|
|
3458
|
-
return codeValue.codeValue;
|
|
3459
|
-
};
|
|
3460
|
-
var useSchema = (schema, currentValue) => {
|
|
3461
|
-
const env = useRemotionEnvironment();
|
|
3462
|
-
const earlyReturn = useMemo16(() => {
|
|
3463
|
-
if (!env.isStudio || env.isReadOnlyStudio) {
|
|
3464
|
-
return {
|
|
3465
|
-
controls: undefined,
|
|
3466
|
-
values: currentValue ?? {}
|
|
3467
|
-
};
|
|
3468
|
-
}
|
|
3469
|
-
return;
|
|
3470
|
-
}, [env.isStudio, env.isReadOnlyStudio, currentValue]);
|
|
3471
|
-
if (earlyReturn) {
|
|
3472
|
-
return earlyReturn;
|
|
3473
|
-
}
|
|
3474
|
-
const [overrideId] = useState7(() => String(Math.random()));
|
|
3475
|
-
const {
|
|
3476
|
-
visualModeEnabled,
|
|
3477
|
-
dragOverrides: overrides,
|
|
3478
|
-
codeValues
|
|
3479
|
-
} = useContext16(VisualModeOverridesContext);
|
|
3480
|
-
const controls = useMemo16(() => {
|
|
3481
|
-
if (!visualModeEnabled) {
|
|
3482
|
-
return;
|
|
3483
|
-
}
|
|
3484
|
-
if (schema === null || currentValue === null) {
|
|
3485
|
-
return;
|
|
3486
|
-
}
|
|
3487
|
-
return {
|
|
3488
|
-
schema,
|
|
3489
|
-
currentValue,
|
|
3490
|
-
overrideId
|
|
3491
|
-
};
|
|
3492
|
-
}, [schema, currentValue, overrideId, visualModeEnabled]);
|
|
3493
|
-
return useMemo16(() => {
|
|
3494
|
-
if (controls === undefined || currentValue === null || schema === null || !visualModeEnabled) {
|
|
3495
|
-
return {
|
|
3496
|
-
controls: undefined,
|
|
3497
|
-
values: currentValue ?? {}
|
|
3498
|
-
};
|
|
3499
|
-
}
|
|
3500
|
-
const overrideValues = overrides[overrideId] ?? {};
|
|
3501
|
-
const propStatus = codeValues[overrideId];
|
|
3502
|
-
const currentValueKeys = Object.keys(currentValue);
|
|
3503
|
-
const keysToUpdate = [...new Set(currentValueKeys)];
|
|
3504
|
-
const merged = {};
|
|
3505
|
-
for (const key of keysToUpdate) {
|
|
3506
|
-
const codeValueStatus = propStatus?.[key] ?? null;
|
|
3507
|
-
merged[key] = getEffectiveVisualModeValue({
|
|
3508
|
-
codeValue: codeValueStatus,
|
|
3509
|
-
runtimeValue: currentValue[key],
|
|
3510
|
-
dragOverrideValue: overrideValues[key],
|
|
3511
|
-
defaultValue: schema[key]?.default,
|
|
3512
|
-
shouldResortToDefaultValueIfUndefined: false
|
|
3513
|
-
});
|
|
3514
|
-
}
|
|
3515
|
-
return {
|
|
3516
|
-
controls,
|
|
3517
|
-
values: merged
|
|
3518
|
-
};
|
|
3519
|
-
}, [
|
|
3520
|
-
controls,
|
|
3521
|
-
currentValue,
|
|
3522
|
-
overrideId,
|
|
3523
|
-
overrides,
|
|
3524
|
-
codeValues,
|
|
3525
|
-
schema,
|
|
3526
|
-
visualModeEnabled
|
|
3527
|
-
]);
|
|
3528
|
-
};
|
|
3529
|
-
var getNestedValue = (obj, key) => {
|
|
3530
|
-
const parts = key.split(".");
|
|
3531
|
-
let current = obj;
|
|
3532
|
-
for (const part of parts) {
|
|
3533
|
-
if (current === null || current === undefined || typeof current !== "object")
|
|
3534
|
-
return;
|
|
3535
|
-
current = current[part];
|
|
3536
|
-
}
|
|
3537
|
-
return current;
|
|
3538
|
-
};
|
|
3539
|
-
var mergeValues = (props, values, schemaKeys) => {
|
|
3540
|
-
const merged = { ...props };
|
|
3541
|
-
for (const key of schemaKeys) {
|
|
3542
|
-
const value = values[key];
|
|
3543
|
-
const parts = key.split(".");
|
|
3544
|
-
if (parts.length === 1) {
|
|
3545
|
-
merged[key] = value;
|
|
3546
|
-
continue;
|
|
3547
|
-
}
|
|
3548
|
-
let current = merged;
|
|
3549
|
-
for (let i = 0;i < parts.length - 1; i++) {
|
|
3550
|
-
const part = parts[i];
|
|
3551
|
-
if (typeof current[part] === "object" && current[part] !== null) {
|
|
3552
|
-
current[part] = { ...current[part] };
|
|
3553
|
-
} else {
|
|
3554
|
-
current[part] = {};
|
|
3555
|
-
}
|
|
3556
|
-
current = current[part];
|
|
3557
|
-
}
|
|
3558
|
-
current[parts[parts.length - 1]] = value;
|
|
3559
|
-
}
|
|
3560
|
-
return merged;
|
|
3561
|
-
};
|
|
3562
|
-
var wrapInSchema = (Component, schema) => {
|
|
3563
|
-
const schemaKeys = Object.keys(schema);
|
|
3564
|
-
const Wrapped = forwardRef4((props, ref) => {
|
|
3565
|
-
const env = useRemotionEnvironment();
|
|
3566
|
-
if (!env.isStudio || env.isReadOnlyStudio || env.isRendering || !process.env.EXPERIMENTAL_VISUAL_MODE_ENABLED) {
|
|
3567
|
-
return React15.createElement(Component, {
|
|
3568
|
-
...props,
|
|
3569
|
-
_experimentalControls: null,
|
|
3570
|
-
ref
|
|
3571
|
-
});
|
|
3572
|
-
}
|
|
3573
|
-
const schemaInput = useMemo17(() => {
|
|
3574
|
-
const input = {};
|
|
3575
|
-
for (const key of schemaKeys) {
|
|
3576
|
-
input[key] = getNestedValue(props, key);
|
|
3577
|
-
}
|
|
3578
|
-
return input;
|
|
3579
|
-
}, schemaKeys.map((key) => getNestedValue(props, key)));
|
|
3580
|
-
const { controls, values } = useSchema(schema, schemaInput);
|
|
3581
|
-
const mergedProps = mergeValues(props, values, schemaKeys);
|
|
3582
|
-
return React15.createElement(Component, {
|
|
3583
|
-
...mergedProps,
|
|
3584
|
-
_experimentalControls: controls,
|
|
3585
|
-
ref
|
|
3586
|
-
});
|
|
3587
|
-
});
|
|
3588
|
-
Wrapped.displayName = `wrapInSchema(${Component.displayName || Component.name || "Component"})`;
|
|
3589
|
-
return Wrapped;
|
|
3590
|
-
};
|
|
3591
3825
|
var cachedSupport = null;
|
|
3592
3826
|
var isHtmlInCanvasSupported = () => {
|
|
3593
3827
|
if (cachedSupport !== null) {
|
|
@@ -3625,40 +3859,11 @@ var defaultOnPaint = ({
|
|
|
3625
3859
|
const transform = ctx.drawElementImage(elementImage, 0, 0);
|
|
3626
3860
|
element.style.transform = transform.toString();
|
|
3627
3861
|
};
|
|
3628
|
-
var
|
|
3629
|
-
"style.translate": {
|
|
3630
|
-
type: "translate",
|
|
3631
|
-
step: 1,
|
|
3632
|
-
default: "0px 0px",
|
|
3633
|
-
description: "Position"
|
|
3634
|
-
},
|
|
3635
|
-
"style.scale": {
|
|
3636
|
-
type: "number",
|
|
3637
|
-
min: 0.05,
|
|
3638
|
-
max: 100,
|
|
3639
|
-
step: 0.01,
|
|
3640
|
-
default: 1,
|
|
3641
|
-
description: "Scale"
|
|
3642
|
-
},
|
|
3643
|
-
"style.rotate": {
|
|
3644
|
-
type: "rotation",
|
|
3645
|
-
step: 1,
|
|
3646
|
-
default: "0deg",
|
|
3647
|
-
description: "Rotation"
|
|
3648
|
-
},
|
|
3649
|
-
"style.opacity": {
|
|
3650
|
-
type: "number",
|
|
3651
|
-
min: 0,
|
|
3652
|
-
max: 1,
|
|
3653
|
-
step: 0.01,
|
|
3654
|
-
default: 1,
|
|
3655
|
-
description: "Opacity"
|
|
3656
|
-
}
|
|
3657
|
-
};
|
|
3862
|
+
var HtmlInCanvasAncestorContext = createContext15(false);
|
|
3658
3863
|
var HtmlInCanvasInner = forwardRef5(({
|
|
3659
3864
|
width,
|
|
3660
3865
|
height,
|
|
3661
|
-
_experimentalEffects:
|
|
3866
|
+
_experimentalEffects: effects = [],
|
|
3662
3867
|
children,
|
|
3663
3868
|
onPaint,
|
|
3664
3869
|
onInit,
|
|
@@ -3667,6 +3872,7 @@ var HtmlInCanvasInner = forwardRef5(({
|
|
|
3667
3872
|
durationInFrames,
|
|
3668
3873
|
...sequenceProps
|
|
3669
3874
|
}, ref) => {
|
|
3875
|
+
const isInsideAncestorHtmlInCanvas = useContext17(HtmlInCanvasAncestorContext);
|
|
3670
3876
|
assertHtmlInCanvasDimensions(width, height);
|
|
3671
3877
|
const { continueRender: continueRender2, cancelRender: cancelRender2 } = useDelayRender();
|
|
3672
3878
|
if (!isHtmlInCanvasSupported()) {
|
|
@@ -3687,8 +3893,8 @@ var HtmlInCanvasInner = forwardRef5(({
|
|
|
3687
3893
|
}, [ref]);
|
|
3688
3894
|
const [offscreenCanvas] = useState8(() => new OffscreenCanvas(1, 1));
|
|
3689
3895
|
const chainState = useEffectChainState();
|
|
3690
|
-
const effectsRef = useRef9(
|
|
3691
|
-
effectsRef.current =
|
|
3896
|
+
const effectsRef = useRef9(effects);
|
|
3897
|
+
effectsRef.current = effects;
|
|
3692
3898
|
const frameRef = useRef9(frame);
|
|
3693
3899
|
frameRef.current = frame;
|
|
3694
3900
|
const onPaintRef = useRef9(onPaint);
|
|
@@ -3802,35 +4008,42 @@ var HtmlInCanvasInner = forwardRef5(({
|
|
|
3802
4008
|
continueRender2(handle);
|
|
3803
4009
|
};
|
|
3804
4010
|
}, [width, height, continueRender2]);
|
|
3805
|
-
const innerStyle =
|
|
4011
|
+
const innerStyle = useMemo17(() => {
|
|
3806
4012
|
return {
|
|
3807
4013
|
width,
|
|
3808
|
-
height
|
|
3809
|
-
...style
|
|
4014
|
+
height
|
|
3810
4015
|
};
|
|
3811
|
-
}, [width, height
|
|
4016
|
+
}, [width, height]);
|
|
4017
|
+
if (isInsideAncestorHtmlInCanvas) {
|
|
4018
|
+
throw new Error("<HtmlInCanvas> effects cannot be nested together. Chrome will only display the outer effect. Consider merging the effects into one if you can.");
|
|
4019
|
+
}
|
|
3812
4020
|
return /* @__PURE__ */ jsx15(Sequence, {
|
|
3813
4021
|
durationInFrames: resolvedDuration,
|
|
3814
4022
|
name: "<HtmlInCanvas>",
|
|
3815
4023
|
_experimentalControls: controls,
|
|
4024
|
+
_experimentalEffects: effects,
|
|
3816
4025
|
layout: "none",
|
|
3817
4026
|
...sequenceProps,
|
|
3818
|
-
children: /* @__PURE__ */ jsx15(
|
|
3819
|
-
|
|
3820
|
-
|
|
3821
|
-
|
|
3822
|
-
|
|
3823
|
-
|
|
3824
|
-
style
|
|
3825
|
-
children
|
|
4027
|
+
children: /* @__PURE__ */ jsx15(HtmlInCanvasAncestorContext.Provider, {
|
|
4028
|
+
value: true,
|
|
4029
|
+
children: /* @__PURE__ */ jsx15("canvas", {
|
|
4030
|
+
ref: setLayoutCanvasRef,
|
|
4031
|
+
width,
|
|
4032
|
+
height,
|
|
4033
|
+
style,
|
|
4034
|
+
children: /* @__PURE__ */ jsx15("div", {
|
|
4035
|
+
ref: divRef,
|
|
4036
|
+
style: innerStyle,
|
|
4037
|
+
children
|
|
4038
|
+
})
|
|
3826
4039
|
})
|
|
3827
4040
|
})
|
|
3828
4041
|
});
|
|
3829
4042
|
});
|
|
3830
4043
|
HtmlInCanvasInner.displayName = "HtmlInCanvas";
|
|
3831
|
-
var HtmlInCanvasWrapped = wrapInSchema(HtmlInCanvasInner,
|
|
4044
|
+
var HtmlInCanvasWrapped = wrapInSchema(HtmlInCanvasInner, sequenceStyleSchema);
|
|
3832
4045
|
var HtmlInCanvas = Object.assign(HtmlInCanvasWrapped, {
|
|
3833
|
-
isHtmlInCanvasSupported
|
|
4046
|
+
isSupported: isHtmlInCanvasSupported
|
|
3834
4047
|
});
|
|
3835
4048
|
HtmlInCanvas.displayName = "HtmlInCanvas";
|
|
3836
4049
|
addSequenceStackTraces(HtmlInCanvas);
|
|
@@ -3863,7 +4076,7 @@ var validateRenderAsset = (artifact) => {
|
|
|
3863
4076
|
}
|
|
3864
4077
|
validateContent(artifact.content);
|
|
3865
4078
|
};
|
|
3866
|
-
var RenderAssetManager =
|
|
4079
|
+
var RenderAssetManager = createContext16({
|
|
3867
4080
|
registerRenderAsset: () => {
|
|
3868
4081
|
return;
|
|
3869
4082
|
},
|
|
@@ -3906,7 +4119,7 @@ var RenderAssetManagerProvider = ({ children, collectAssets }) => {
|
|
|
3906
4119
|
};
|
|
3907
4120
|
}
|
|
3908
4121
|
}, []);
|
|
3909
|
-
const contextValue =
|
|
4122
|
+
const contextValue = useMemo18(() => {
|
|
3910
4123
|
return {
|
|
3911
4124
|
registerRenderAsset,
|
|
3912
4125
|
unregisterRenderAsset,
|
|
@@ -3920,7 +4133,7 @@ var RenderAssetManagerProvider = ({ children, collectAssets }) => {
|
|
|
3920
4133
|
};
|
|
3921
4134
|
var ArtifactThumbnail = Symbol("Thumbnail");
|
|
3922
4135
|
var Artifact = ({ filename, content, downloadBehavior }) => {
|
|
3923
|
-
const { registerRenderAsset, unregisterRenderAsset } =
|
|
4136
|
+
const { registerRenderAsset, unregisterRenderAsset } = useContext18(RenderAssetManager);
|
|
3924
4137
|
const env = useRemotionEnvironment();
|
|
3925
4138
|
const frame = useCurrentFrame();
|
|
3926
4139
|
const [id] = useState10(() => {
|
|
@@ -4001,7 +4214,7 @@ var calculateMediaDuration = ({
|
|
|
4001
4214
|
const actualDuration = duration / playbackRate;
|
|
4002
4215
|
return Math.floor(actualDuration);
|
|
4003
4216
|
};
|
|
4004
|
-
var LoopContext =
|
|
4217
|
+
var LoopContext = createContext17(null);
|
|
4005
4218
|
var useLoop = () => {
|
|
4006
4219
|
return React17.useContext(LoopContext);
|
|
4007
4220
|
};
|
|
@@ -4035,14 +4248,14 @@ var Loop = ({
|
|
|
4035
4248
|
const iteration = Math.floor(currentFrame / durationInFrames);
|
|
4036
4249
|
const start = iteration * durationInFrames;
|
|
4037
4250
|
const from = Math.min(start, maxFrame);
|
|
4038
|
-
const loopDisplay =
|
|
4251
|
+
const loopDisplay = useMemo19(() => {
|
|
4039
4252
|
return {
|
|
4040
4253
|
numberOfTimes: Math.min(compDuration / durationInFrames, times),
|
|
4041
4254
|
startOffset: -from,
|
|
4042
4255
|
durationInFrames
|
|
4043
4256
|
};
|
|
4044
4257
|
}, [compDuration, durationInFrames, from, times]);
|
|
4045
|
-
const loopContext =
|
|
4258
|
+
const loopContext = useMemo19(() => {
|
|
4046
4259
|
return {
|
|
4047
4260
|
iteration: Math.floor(currentFrame / durationInFrames),
|
|
4048
4261
|
durationInFrames
|
|
@@ -4072,7 +4285,7 @@ var playbackLogging = ({
|
|
|
4072
4285
|
const tags = [mountTime ? Date.now() - mountTime + "ms " : null, tag].filter(Boolean).join(" ");
|
|
4073
4286
|
Log.trace({ logLevel, tag: null }, `[${tags}]`, message);
|
|
4074
4287
|
};
|
|
4075
|
-
var PreloadContext =
|
|
4288
|
+
var PreloadContext = createContext18({});
|
|
4076
4289
|
var preloads = {};
|
|
4077
4290
|
var updaters = [];
|
|
4078
4291
|
var setPreloads = (updater) => {
|
|
@@ -4110,7 +4323,7 @@ var getSrcWithoutHash = (src) => {
|
|
|
4110
4323
|
return src.slice(0, hashIndex);
|
|
4111
4324
|
};
|
|
4112
4325
|
var usePreload = (src) => {
|
|
4113
|
-
const preloads2 =
|
|
4326
|
+
const preloads2 = useContext19(PreloadContext);
|
|
4114
4327
|
const hashFragmentIndex = removeAndGetHashFragment(src);
|
|
4115
4328
|
const withoutHashFragment = getSrcWithoutHash(src);
|
|
4116
4329
|
if (!preloads2[withoutHashFragment]) {
|
|
@@ -4393,7 +4606,7 @@ var durationReducer = (state, action) => {
|
|
|
4393
4606
|
return state;
|
|
4394
4607
|
}
|
|
4395
4608
|
};
|
|
4396
|
-
var DurationsContext =
|
|
4609
|
+
var DurationsContext = createContext19({
|
|
4397
4610
|
durations: {},
|
|
4398
4611
|
setDurations: () => {
|
|
4399
4612
|
throw new Error("context missing");
|
|
@@ -4401,7 +4614,7 @@ var DurationsContext = createContext18({
|
|
|
4401
4614
|
});
|
|
4402
4615
|
var DurationsContextProvider = ({ children }) => {
|
|
4403
4616
|
const [durations, setDurations] = useReducer(durationReducer, {});
|
|
4404
|
-
const value =
|
|
4617
|
+
const value = useMemo20(() => {
|
|
4405
4618
|
return {
|
|
4406
4619
|
durations,
|
|
4407
4620
|
setDurations
|
|
@@ -4535,7 +4748,7 @@ var useSingletonAudioContext = ({
|
|
|
4535
4748
|
audioEnabled
|
|
4536
4749
|
}) => {
|
|
4537
4750
|
const env = useRemotionEnvironment();
|
|
4538
|
-
|
|
4751
|
+
const context = useMemo21(() => {
|
|
4539
4752
|
if (env.isRendering) {
|
|
4540
4753
|
return null;
|
|
4541
4754
|
}
|
|
@@ -4552,11 +4765,19 @@ var useSingletonAudioContext = ({
|
|
|
4552
4765
|
});
|
|
4553
4766
|
const gainNode = audioContext.createGain();
|
|
4554
4767
|
gainNode.connect(audioContext.destination);
|
|
4768
|
+
Log.trace({ logLevel, tag: "audio" }, "Creating new audio context");
|
|
4769
|
+
audioContext.suspend();
|
|
4555
4770
|
return {
|
|
4556
4771
|
audioContext,
|
|
4557
4772
|
gainNode
|
|
4558
4773
|
};
|
|
4559
4774
|
}, [logLevel, latencyHint, env.isRendering, audioEnabled]);
|
|
4775
|
+
useEffect8(() => {
|
|
4776
|
+
return () => {
|
|
4777
|
+
context?.audioContext?.close();
|
|
4778
|
+
};
|
|
4779
|
+
}, [context]);
|
|
4780
|
+
return context;
|
|
4560
4781
|
};
|
|
4561
4782
|
var waitUntilActuallyResumed = (audioContext, logLevel) => {
|
|
4562
4783
|
return new Promise((resolve) => {
|
|
@@ -4604,8 +4825,8 @@ var didPropChange = (key, newProp, prevProp) => {
|
|
|
4604
4825
|
}
|
|
4605
4826
|
return true;
|
|
4606
4827
|
};
|
|
4607
|
-
var SharedAudioContext =
|
|
4608
|
-
var SharedAudioTagsContext =
|
|
4828
|
+
var SharedAudioContext = createContext20(null);
|
|
4829
|
+
var SharedAudioTagsContext = createContext20(null);
|
|
4609
4830
|
var SharedAudioContextProvider = ({ children, audioLatencyHint, audioEnabled }) => {
|
|
4610
4831
|
const logLevel = useLogLevel();
|
|
4611
4832
|
const ctxAndGain = useSingletonAudioContext({
|
|
@@ -4615,9 +4836,9 @@ var SharedAudioContextProvider = ({ children, audioLatencyHint, audioEnabled })
|
|
|
4615
4836
|
});
|
|
4616
4837
|
const audioContextIsPlayingEventually = useRef11(false);
|
|
4617
4838
|
const isResuming = useRef11(null);
|
|
4618
|
-
const audioSyncAnchor =
|
|
4839
|
+
const audioSyncAnchor = useMemo22(() => ({ value: 0 }), []);
|
|
4619
4840
|
const audioSyncAnchorListeners = useRef11([]);
|
|
4620
|
-
const audioSyncAnchorEmitter =
|
|
4841
|
+
const audioSyncAnchorEmitter = useMemo22(() => {
|
|
4621
4842
|
return {
|
|
4622
4843
|
dispatch: (event) => {
|
|
4623
4844
|
audioSyncAnchorListeners.current.forEach((l) => l(event));
|
|
@@ -4637,7 +4858,7 @@ var SharedAudioContextProvider = ({ children, audioLatencyHint, audioEnabled })
|
|
|
4637
4858
|
const unscheduleAudioNode = useCallback9((node) => {
|
|
4638
4859
|
nodesToResume.current.delete(node);
|
|
4639
4860
|
}, []);
|
|
4640
|
-
const scheduleAudioNode =
|
|
4861
|
+
const scheduleAudioNode = useMemo22(() => {
|
|
4641
4862
|
return ({
|
|
4642
4863
|
node,
|
|
4643
4864
|
mediaTimestamp,
|
|
@@ -4689,16 +4910,22 @@ var SharedAudioContextProvider = ({ children, audioLatencyHint, audioEnabled })
|
|
|
4689
4910
|
return Promise.resolve();
|
|
4690
4911
|
}
|
|
4691
4912
|
audioContextIsPlayingEventually.current = true;
|
|
4692
|
-
|
|
4913
|
+
const resumePromise = ctxAndGain.audioContext.resume();
|
|
4914
|
+
isResuming.current = new Promise((resolve) => {
|
|
4915
|
+
waitUntilActuallyResumed(ctxAndGain.audioContext, logLevel).then(resolve);
|
|
4916
|
+
resumePromise.catch((err) => {
|
|
4917
|
+
Log.warn({ logLevel, tag: "audio" }, "AudioContext resume rejected, continuing without audio sync", err);
|
|
4918
|
+
resolve();
|
|
4919
|
+
});
|
|
4920
|
+
}).finally(() => {
|
|
4693
4921
|
isResuming.current = null;
|
|
4694
4922
|
});
|
|
4695
4923
|
ctxAndGain.gainNode.gain.cancelScheduledValues(ctxAndGain.audioContext.currentTime);
|
|
4696
|
-
ctxAndGain.gainNode
|
|
4697
|
-
ctxAndGain.gainNode
|
|
4698
|
-
|
|
4699
|
-
|
|
4700
|
-
|
|
4701
|
-
});
|
|
4924
|
+
ctxAndGain.gainNode.gain.setValueAtTime(0, ctxAndGain.audioContext.currentTime);
|
|
4925
|
+
ctxAndGain.gainNode.gain.linearRampToValueAtTime(1, ctxAndGain.audioContext.currentTime + 0.03);
|
|
4926
|
+
nodesToResume.current.forEach((r, node) => node.start(r.scheduledTime, r.offset, r.duration));
|
|
4927
|
+
nodesToResume.current.clear();
|
|
4928
|
+
return resumePromise.catch(() => {});
|
|
4702
4929
|
}, [ctxAndGain, logLevel]);
|
|
4703
4930
|
const getIsResumingAudioContext = useCallback9(() => {
|
|
4704
4931
|
return isResuming.current;
|
|
@@ -4713,7 +4940,7 @@ var SharedAudioContextProvider = ({ children, audioLatencyHint, audioEnabled })
|
|
|
4713
4940
|
audioContextIsPlayingEventually.current = false;
|
|
4714
4941
|
ctxAndGain.audioContext.suspend();
|
|
4715
4942
|
}, [ctxAndGain]);
|
|
4716
|
-
const audioContextValue =
|
|
4943
|
+
const audioContextValue = useMemo22(() => {
|
|
4717
4944
|
return {
|
|
4718
4945
|
audioContext: ctxAndGain?.audioContext ?? null,
|
|
4719
4946
|
gainNode: ctxAndGain?.gainNode ?? null,
|
|
@@ -4749,10 +4976,10 @@ var SharedAudioTagsContextProvider = ({ children, numberOfAudioTags }) => {
|
|
|
4749
4976
|
const logLevel = useLogLevel();
|
|
4750
4977
|
const mountTime = useMountTime();
|
|
4751
4978
|
const env = useRemotionEnvironment();
|
|
4752
|
-
const audioCtx =
|
|
4979
|
+
const audioCtx = useContext20(SharedAudioContext);
|
|
4753
4980
|
const audioContext = audioCtx?.audioContext ?? null;
|
|
4754
4981
|
const resume = audioCtx?.resume;
|
|
4755
|
-
const refs =
|
|
4982
|
+
const refs = useMemo22(() => {
|
|
4756
4983
|
return new Array(numberOfAudioTags).fill(true).map(() => {
|
|
4757
4984
|
const ref = createRef2();
|
|
4758
4985
|
return {
|
|
@@ -4889,7 +5116,7 @@ var SharedAudioTagsContextProvider = ({ children, numberOfAudioTags }) => {
|
|
|
4889
5116
|
});
|
|
4890
5117
|
resume?.();
|
|
4891
5118
|
}, [logLevel, mountTime, refs, env.isPlayer, resume]);
|
|
4892
|
-
const audioTagsValue =
|
|
5119
|
+
const audioTagsValue = useMemo22(() => {
|
|
4893
5120
|
return {
|
|
4894
5121
|
registerAudio,
|
|
4895
5122
|
unregisterAudio,
|
|
@@ -4924,8 +5151,8 @@ var useSharedAudio = ({
|
|
|
4924
5151
|
premounting,
|
|
4925
5152
|
postmounting
|
|
4926
5153
|
}) => {
|
|
4927
|
-
const audioCtx =
|
|
4928
|
-
const tagsCtx =
|
|
5154
|
+
const audioCtx = useContext20(SharedAudioContext);
|
|
5155
|
+
const tagsCtx = useContext20(SharedAudioTagsContext);
|
|
4929
5156
|
const [elem] = useState12(() => {
|
|
4930
5157
|
if (tagsCtx && tagsCtx.numberOfAudioTags > 0) {
|
|
4931
5158
|
return tagsCtx.registerAudio({ aud, audioId, premounting, postmounting });
|
|
@@ -5104,7 +5331,7 @@ var useVolume = ({
|
|
|
5104
5331
|
const audioStuffRef = useRef13(null);
|
|
5105
5332
|
const currentVolumeRef = useRef13(volume);
|
|
5106
5333
|
currentVolumeRef.current = volume;
|
|
5107
|
-
const sharedAudioContext =
|
|
5334
|
+
const sharedAudioContext = useContext21(SharedAudioContext);
|
|
5108
5335
|
if (!sharedAudioContext) {
|
|
5109
5336
|
throw new Error("useAmplification must be used within a SharedAudioContext");
|
|
5110
5337
|
}
|
|
@@ -5169,7 +5396,7 @@ var useVolume = ({
|
|
|
5169
5396
|
return audioStuffRef;
|
|
5170
5397
|
};
|
|
5171
5398
|
var useMediaStartsAt = () => {
|
|
5172
|
-
const parentSequence =
|
|
5399
|
+
const parentSequence = useContext22(SequenceContext);
|
|
5173
5400
|
const startsAt = Math.min(0, parentSequence?.relativeFrom ?? 0);
|
|
5174
5401
|
return startsAt;
|
|
5175
5402
|
};
|
|
@@ -5258,7 +5485,7 @@ var useBasicMediaInTimeline = ({
|
|
|
5258
5485
|
if (!src) {
|
|
5259
5486
|
throw new Error("No src passed");
|
|
5260
5487
|
}
|
|
5261
|
-
const parentSequence =
|
|
5488
|
+
const parentSequence = useContext23(SequenceContext);
|
|
5262
5489
|
const [initialVolume] = useState13(() => volume);
|
|
5263
5490
|
const duration = getTimelineDuration({
|
|
5264
5491
|
compositionDurationInFrames: sequenceDurationInFrames,
|
|
@@ -5268,7 +5495,7 @@ var useBasicMediaInTimeline = ({
|
|
|
5268
5495
|
parentSequenceDurationInFrames: parentSequence?.durationInFrames ?? null,
|
|
5269
5496
|
loop
|
|
5270
5497
|
});
|
|
5271
|
-
const volumes =
|
|
5498
|
+
const volumes = useMemo23(() => {
|
|
5272
5499
|
if (typeof volume === "number") {
|
|
5273
5500
|
return volume;
|
|
5274
5501
|
}
|
|
@@ -5280,7 +5507,7 @@ var useBasicMediaInTimeline = ({
|
|
|
5280
5507
|
});
|
|
5281
5508
|
}).join(",");
|
|
5282
5509
|
}, [duration, mediaStartsAt, volume, mediaVolume]);
|
|
5283
|
-
|
|
5510
|
+
useEffect9(() => {
|
|
5284
5511
|
if (typeof volume === "number" && volume !== initialVolume) {
|
|
5285
5512
|
warnOnce2(`Remotion: The ${mediaType} with src ${src} has changed it's volume. Prefer the callback syntax for setting volume to get better timeline display: https://www.remotion.dev/docs/audio/volume`);
|
|
5286
5513
|
}
|
|
@@ -5289,7 +5516,7 @@ var useBasicMediaInTimeline = ({
|
|
|
5289
5516
|
const nonce = useNonce();
|
|
5290
5517
|
const { rootId } = useTimelineContext();
|
|
5291
5518
|
const startMediaFrom = 0 - mediaStartsAt + (trimBefore ?? 0);
|
|
5292
|
-
const memoizedResult =
|
|
5519
|
+
const memoizedResult = useMemo23(() => {
|
|
5293
5520
|
return {
|
|
5294
5521
|
volumes,
|
|
5295
5522
|
duration,
|
|
@@ -5325,8 +5552,8 @@ var useImageInTimeline = ({
|
|
|
5325
5552
|
loopDisplay,
|
|
5326
5553
|
controls
|
|
5327
5554
|
}) => {
|
|
5328
|
-
const parentSequence =
|
|
5329
|
-
const { registerSequence, unregisterSequence } =
|
|
5555
|
+
const parentSequence = useContext23(SequenceContext);
|
|
5556
|
+
const { registerSequence, unregisterSequence } = useContext23(SequenceManager);
|
|
5330
5557
|
const { durationInFrames } = useVideoConfig();
|
|
5331
5558
|
const mediaStartsAt = useMediaStartsAt();
|
|
5332
5559
|
const { duration, nonce, rootId, finalDisplayName } = useBasicMediaInTimeline({
|
|
@@ -5343,7 +5570,7 @@ var useImageInTimeline = ({
|
|
|
5343
5570
|
loop: false
|
|
5344
5571
|
});
|
|
5345
5572
|
const { isStudio } = useRemotionEnvironment();
|
|
5346
|
-
|
|
5573
|
+
useEffect9(() => {
|
|
5347
5574
|
if (!src) {
|
|
5348
5575
|
throw new Error("No src passed");
|
|
5349
5576
|
}
|
|
@@ -5407,9 +5634,9 @@ var useMediaInTimeline = ({
|
|
|
5407
5634
|
postmountDisplay,
|
|
5408
5635
|
loopDisplay
|
|
5409
5636
|
}) => {
|
|
5410
|
-
const parentSequence =
|
|
5637
|
+
const parentSequence = useContext23(SequenceContext);
|
|
5411
5638
|
const startsAt = useMediaStartsAt();
|
|
5412
|
-
const { registerSequence, unregisterSequence } =
|
|
5639
|
+
const { registerSequence, unregisterSequence } = useContext23(SequenceManager);
|
|
5413
5640
|
const { durationInFrames } = useVideoConfig();
|
|
5414
5641
|
const mediaStartsAt = useMediaStartsAt();
|
|
5415
5642
|
const { volumes, duration, doesVolumeChange, nonce, rootId, finalDisplayName } = useBasicMediaInTimeline({
|
|
@@ -5426,7 +5653,7 @@ var useMediaInTimeline = ({
|
|
|
5426
5653
|
loop: false
|
|
5427
5654
|
});
|
|
5428
5655
|
const { isStudio } = useRemotionEnvironment();
|
|
5429
|
-
|
|
5656
|
+
useEffect9(() => {
|
|
5430
5657
|
if (!src) {
|
|
5431
5658
|
throw new Error("No src passed");
|
|
5432
5659
|
}
|
|
@@ -5528,7 +5755,7 @@ var useBufferManager = (logLevel, mountTime) => {
|
|
|
5528
5755
|
}
|
|
5529
5756
|
};
|
|
5530
5757
|
}, []);
|
|
5531
|
-
|
|
5758
|
+
useEffect10(() => {
|
|
5532
5759
|
if (rendering) {
|
|
5533
5760
|
return;
|
|
5534
5761
|
}
|
|
@@ -5558,13 +5785,13 @@ var useBufferManager = (logLevel, mountTime) => {
|
|
|
5558
5785
|
}
|
|
5559
5786
|
}, [blocks]);
|
|
5560
5787
|
}
|
|
5561
|
-
return
|
|
5788
|
+
return useMemo24(() => {
|
|
5562
5789
|
return { addBlock, listenForBuffering, listenForResume, buffering };
|
|
5563
5790
|
}, [addBlock, buffering, listenForBuffering, listenForResume]);
|
|
5564
5791
|
};
|
|
5565
5792
|
var BufferingContextReact = React21.createContext(null);
|
|
5566
5793
|
var BufferingProvider = ({ children }) => {
|
|
5567
|
-
const { logLevel, mountTime } =
|
|
5794
|
+
const { logLevel, mountTime } = useContext24(LogLevelContext);
|
|
5568
5795
|
const bufferManager = useBufferManager(logLevel ?? "info", mountTime);
|
|
5569
5796
|
return /* @__PURE__ */ jsx21(BufferingContextReact.Provider, {
|
|
5570
5797
|
value: bufferManager,
|
|
@@ -5573,7 +5800,7 @@ var BufferingProvider = ({ children }) => {
|
|
|
5573
5800
|
};
|
|
5574
5801
|
var useIsPlayerBuffering = (bufferManager) => {
|
|
5575
5802
|
const [isBuffering, setIsBuffering] = useState14(bufferManager.buffering.current);
|
|
5576
|
-
|
|
5803
|
+
useEffect10(() => {
|
|
5577
5804
|
const onBuffer = () => {
|
|
5578
5805
|
setIsBuffering(true);
|
|
5579
5806
|
};
|
|
@@ -5594,9 +5821,9 @@ var useIsPlayerBuffering = (bufferManager) => {
|
|
|
5594
5821
|
return isBuffering;
|
|
5595
5822
|
};
|
|
5596
5823
|
var useBufferState = () => {
|
|
5597
|
-
const buffer =
|
|
5824
|
+
const buffer = useContext25(BufferingContextReact);
|
|
5598
5825
|
const addBlock = buffer ? buffer.addBlock : null;
|
|
5599
|
-
return
|
|
5826
|
+
return useMemo25(() => ({
|
|
5600
5827
|
delayPlayback: () => {
|
|
5601
5828
|
if (!addBlock) {
|
|
5602
5829
|
throw new Error("Tried to enable the buffering state, but a Remotion context was not found. This API can only be called in a component that was passed to the Remotion Player or a <Composition>. Or you might have experienced a version mismatch - run `npx remotion versions` and ensure all packages have the same version. This error is thrown by the buffer state https://remotion.dev/docs/player/buffer-state");
|
|
@@ -5693,7 +5920,7 @@ var useBufferUntilFirstFrame = ({
|
|
|
5693
5920
|
onVariableFpsVideoDetected,
|
|
5694
5921
|
pauseWhenBuffering
|
|
5695
5922
|
]);
|
|
5696
|
-
return
|
|
5923
|
+
return useMemo26(() => {
|
|
5697
5924
|
return {
|
|
5698
5925
|
isBuffering: () => bufferingRef.current,
|
|
5699
5926
|
bufferUntilFirstFrame
|
|
@@ -5742,7 +5969,7 @@ var useMediaBuffering = ({
|
|
|
5742
5969
|
}) => {
|
|
5743
5970
|
const buffer = useBufferState();
|
|
5744
5971
|
const [isBuffering, setIsBuffering] = useState15(false);
|
|
5745
|
-
|
|
5972
|
+
useEffect11(() => {
|
|
5746
5973
|
let cleanupFns = [];
|
|
5747
5974
|
const { current } = element;
|
|
5748
5975
|
if (!current) {
|
|
@@ -5875,7 +6102,7 @@ var useRequestVideoCallbackTime = ({
|
|
|
5875
6102
|
onVariableFpsVideoDetected
|
|
5876
6103
|
}) => {
|
|
5877
6104
|
const currentTime = useRef16(null);
|
|
5878
|
-
|
|
6105
|
+
useEffect12(() => {
|
|
5879
6106
|
const { current } = mediaRef;
|
|
5880
6107
|
if (current) {
|
|
5881
6108
|
currentTime.current = {
|
|
@@ -6095,11 +6322,11 @@ var useMediaPlayback = ({
|
|
|
6095
6322
|
isPostmounting,
|
|
6096
6323
|
onAutoPlayError
|
|
6097
6324
|
}) => {
|
|
6098
|
-
const { playbackRate: globalPlaybackRate } =
|
|
6325
|
+
const { playbackRate: globalPlaybackRate } = usePlaybackRate();
|
|
6099
6326
|
const frame = useCurrentFrame();
|
|
6100
6327
|
const absoluteFrame = useTimelinePosition();
|
|
6101
6328
|
const [playing] = usePlayingState();
|
|
6102
|
-
const buffering =
|
|
6329
|
+
const buffering = useContext26(BufferingContextReact);
|
|
6103
6330
|
const { fps } = useVideoConfig();
|
|
6104
6331
|
const mediaStartsAt = useMediaStartsAt();
|
|
6105
6332
|
const lastSeekDueToShift = useRef17(null);
|
|
@@ -6161,7 +6388,7 @@ var useMediaPlayback = ({
|
|
|
6161
6388
|
return acceptableTimeshift ?? defaultAcceptableTimeshift;
|
|
6162
6389
|
})();
|
|
6163
6390
|
const isPlayerBuffering = useIsPlayerBuffering(buffering);
|
|
6164
|
-
|
|
6391
|
+
useEffect13(() => {
|
|
6165
6392
|
if (mediaRef.current?.paused) {
|
|
6166
6393
|
return;
|
|
6167
6394
|
}
|
|
@@ -6206,7 +6433,7 @@ var useMediaPlayback = ({
|
|
|
6206
6433
|
mediaRef.current.playbackRate = playbackRateToSet;
|
|
6207
6434
|
}
|
|
6208
6435
|
}, [mediaRef, playbackRate]);
|
|
6209
|
-
|
|
6436
|
+
useEffect13(() => {
|
|
6210
6437
|
const tagName = mediaType === "audio" ? "<Html5Audio>" : "<Html5Video>";
|
|
6211
6438
|
if (!mediaRef.current) {
|
|
6212
6439
|
throw new Error(`No ${mediaType} ref found`);
|
|
@@ -6335,7 +6562,7 @@ var useMediaTag = ({
|
|
|
6335
6562
|
const logLevel = useLogLevel();
|
|
6336
6563
|
const mountTime = useMountTime();
|
|
6337
6564
|
const env = useRemotionEnvironment();
|
|
6338
|
-
|
|
6565
|
+
useEffect14(() => {
|
|
6339
6566
|
const tag = {
|
|
6340
6567
|
id,
|
|
6341
6568
|
play: (reason) => {
|
|
@@ -6374,11 +6601,11 @@ var useMediaTag = ({
|
|
|
6374
6601
|
env.isPlayer
|
|
6375
6602
|
]);
|
|
6376
6603
|
};
|
|
6377
|
-
var MediaVolumeContext =
|
|
6604
|
+
var MediaVolumeContext = createContext21({
|
|
6378
6605
|
mediaMuted: false,
|
|
6379
6606
|
mediaVolume: 1
|
|
6380
6607
|
});
|
|
6381
|
-
var SetMediaVolumeContext =
|
|
6608
|
+
var SetMediaVolumeContext = createContext21({
|
|
6382
6609
|
setMediaMuted: () => {
|
|
6383
6610
|
throw new Error("default");
|
|
6384
6611
|
},
|
|
@@ -6387,16 +6614,16 @@ var SetMediaVolumeContext = createContext20({
|
|
|
6387
6614
|
}
|
|
6388
6615
|
});
|
|
6389
6616
|
var useMediaVolumeState = () => {
|
|
6390
|
-
const { mediaVolume } =
|
|
6391
|
-
const { setMediaVolume } =
|
|
6392
|
-
return
|
|
6617
|
+
const { mediaVolume } = useContext27(MediaVolumeContext);
|
|
6618
|
+
const { setMediaVolume } = useContext27(SetMediaVolumeContext);
|
|
6619
|
+
return useMemo27(() => {
|
|
6393
6620
|
return [mediaVolume, setMediaVolume];
|
|
6394
6621
|
}, [mediaVolume, setMediaVolume]);
|
|
6395
6622
|
};
|
|
6396
6623
|
var useMediaMutedState = () => {
|
|
6397
|
-
const { mediaMuted } =
|
|
6398
|
-
const { setMediaMuted } =
|
|
6399
|
-
return
|
|
6624
|
+
const { mediaMuted } = useContext27(MediaVolumeContext);
|
|
6625
|
+
const { setMediaMuted } = useContext27(SetMediaVolumeContext);
|
|
6626
|
+
return useMemo27(() => {
|
|
6400
6627
|
return [mediaMuted, setMediaMuted];
|
|
6401
6628
|
}, [mediaMuted, setMediaMuted]);
|
|
6402
6629
|
};
|
|
@@ -6445,12 +6672,12 @@ var AudioForDevelopmentForwardRefFunction = (props, ref) => {
|
|
|
6445
6672
|
const [mediaVolume] = useMediaVolumeState();
|
|
6446
6673
|
const [mediaMuted] = useMediaMutedState();
|
|
6447
6674
|
const volumePropFrame = useFrameForVolumeProp(loopVolumeCurveBehavior ?? "repeat");
|
|
6448
|
-
const { hidden } =
|
|
6675
|
+
const { hidden } = useContext28(SequenceVisibilityToggleContext);
|
|
6449
6676
|
if (!src) {
|
|
6450
6677
|
throw new TypeError("No 'src' was passed to <Html5Audio>.");
|
|
6451
6678
|
}
|
|
6452
6679
|
const preloadedSrc = usePreload(src);
|
|
6453
|
-
const sequenceContext =
|
|
6680
|
+
const sequenceContext = useContext28(SequenceContext);
|
|
6454
6681
|
const [timelineId] = useState16(() => String(Math.random()));
|
|
6455
6682
|
const isSequenceHidden = hidden[timelineId] ?? false;
|
|
6456
6683
|
const userPreferredVolume = evaluateVolume({
|
|
@@ -6464,7 +6691,7 @@ var AudioForDevelopmentForwardRefFunction = (props, ref) => {
|
|
|
6464
6691
|
requestsVideoFrame: false,
|
|
6465
6692
|
isClientSideRendering: false
|
|
6466
6693
|
});
|
|
6467
|
-
const propsToPass =
|
|
6694
|
+
const propsToPass = useMemo28(() => {
|
|
6468
6695
|
return {
|
|
6469
6696
|
muted: muted || mediaMuted || isSequenceHidden || userPreferredVolume <= 0,
|
|
6470
6697
|
src: preloadedSrc,
|
|
@@ -6482,7 +6709,7 @@ var AudioForDevelopmentForwardRefFunction = (props, ref) => {
|
|
|
6482
6709
|
userPreferredVolume,
|
|
6483
6710
|
crossOriginValue
|
|
6484
6711
|
]);
|
|
6485
|
-
const id =
|
|
6712
|
+
const id = useMemo28(() => `audio-${random(src ?? "")}-${sequenceContext?.relativeFrom}-${sequenceContext?.cumulatedFrom}-${sequenceContext?.durationInFrames}-muted:${props.muted}-loop:${props.loop}`, [
|
|
6486
6713
|
src,
|
|
6487
6714
|
sequenceContext?.relativeFrom,
|
|
6488
6715
|
sequenceContext?.cumulatedFrom,
|
|
@@ -6554,7 +6781,7 @@ var AudioForDevelopmentForwardRefFunction = (props, ref) => {
|
|
|
6554
6781
|
}, [audioRef]);
|
|
6555
6782
|
const currentOnDurationCallback = useRef18(onDuration);
|
|
6556
6783
|
currentOnDurationCallback.current = onDuration;
|
|
6557
|
-
|
|
6784
|
+
useEffect15(() => {
|
|
6558
6785
|
const { current } = audioRef;
|
|
6559
6786
|
if (!current) {
|
|
6560
6787
|
return;
|
|
@@ -6605,10 +6832,10 @@ var AudioForRenderingRefForwardingFunction = (props, ref) => {
|
|
|
6605
6832
|
const absoluteFrame = useTimelinePosition();
|
|
6606
6833
|
const volumePropFrame = useFrameForVolumeProp(loopVolumeCurveBehavior ?? "repeat");
|
|
6607
6834
|
const frame = useCurrentFrame();
|
|
6608
|
-
const sequenceContext =
|
|
6609
|
-
const { registerRenderAsset, unregisterRenderAsset } =
|
|
6835
|
+
const sequenceContext = useContext29(SequenceContext);
|
|
6836
|
+
const { registerRenderAsset, unregisterRenderAsset } = useContext29(RenderAssetManager);
|
|
6610
6837
|
const { delayRender: delayRender2, continueRender: continueRender2 } = useDelayRender();
|
|
6611
|
-
const id =
|
|
6838
|
+
const id = useMemo29(() => `audio-${random(props.src ?? "")}-${sequenceContext?.relativeFrom}-${sequenceContext?.cumulatedFrom}-${sequenceContext?.durationInFrames}`, [
|
|
6612
6839
|
props.src,
|
|
6613
6840
|
sequenceContext?.relativeFrom,
|
|
6614
6841
|
sequenceContext?.cumulatedFrom,
|
|
@@ -6623,7 +6850,7 @@ var AudioForRenderingRefForwardingFunction = (props, ref) => {
|
|
|
6623
6850
|
useImperativeHandle5(ref, () => {
|
|
6624
6851
|
return audioRef.current;
|
|
6625
6852
|
}, []);
|
|
6626
|
-
|
|
6853
|
+
useEffect16(() => {
|
|
6627
6854
|
if (!props.src) {
|
|
6628
6855
|
throw new Error("No src passed");
|
|
6629
6856
|
}
|
|
@@ -6715,7 +6942,7 @@ var AudioForRenderingRefForwardingFunction = (props, ref) => {
|
|
|
6715
6942
|
};
|
|
6716
6943
|
var AudioForRendering = forwardRef7(AudioForRenderingRefForwardingFunction);
|
|
6717
6944
|
var AudioRefForwardingFunction = (props, ref) => {
|
|
6718
|
-
const audioTagsContext =
|
|
6945
|
+
const audioTagsContext = useContext30(SharedAudioTagsContext);
|
|
6719
6946
|
const {
|
|
6720
6947
|
startFrom,
|
|
6721
6948
|
endAt,
|
|
@@ -6734,7 +6961,7 @@ var AudioRefForwardingFunction = (props, ref) => {
|
|
|
6734
6961
|
if (environment.isClientSideRendering) {
|
|
6735
6962
|
throw new Error("<Html5Audio> is not supported in @remotion/web-renderer. Use <Audio> from @remotion/media instead. See https://remotion.dev/docs/client-side-rendering/limitations");
|
|
6736
6963
|
}
|
|
6737
|
-
const { durations, setDurations } =
|
|
6964
|
+
const { durations, setDurations } = useContext30(DurationsContext);
|
|
6738
6965
|
if (typeof props.src !== "string") {
|
|
6739
6966
|
throw new TypeError(`The \`<Html5Audio>\` tag requires a string for \`src\`, but got ${JSON.stringify(props.src)} instead.`);
|
|
6740
6967
|
}
|
|
@@ -6873,36 +7100,6 @@ function truncateSrcForLabel(src) {
|
|
|
6873
7100
|
}
|
|
6874
7101
|
return src;
|
|
6875
7102
|
}
|
|
6876
|
-
var imgSchema = {
|
|
6877
|
-
"style.translate": {
|
|
6878
|
-
type: "translate",
|
|
6879
|
-
step: 1,
|
|
6880
|
-
default: "0px 0px",
|
|
6881
|
-
description: "Position"
|
|
6882
|
-
},
|
|
6883
|
-
"style.scale": {
|
|
6884
|
-
type: "number",
|
|
6885
|
-
min: 0.05,
|
|
6886
|
-
max: 100,
|
|
6887
|
-
step: 0.01,
|
|
6888
|
-
default: 1,
|
|
6889
|
-
description: "Scale"
|
|
6890
|
-
},
|
|
6891
|
-
"style.rotate": {
|
|
6892
|
-
type: "rotation",
|
|
6893
|
-
step: 1,
|
|
6894
|
-
default: "0deg",
|
|
6895
|
-
description: "Rotation"
|
|
6896
|
-
},
|
|
6897
|
-
"style.opacity": {
|
|
6898
|
-
type: "number",
|
|
6899
|
-
min: 0,
|
|
6900
|
-
max: 1,
|
|
6901
|
-
step: 0.01,
|
|
6902
|
-
default: 1,
|
|
6903
|
-
description: "Opacity"
|
|
6904
|
-
}
|
|
6905
|
-
};
|
|
6906
7103
|
var ImgInner = ({
|
|
6907
7104
|
onError,
|
|
6908
7105
|
maxRetries = 2,
|
|
@@ -6922,7 +7119,7 @@ var ImgInner = ({
|
|
|
6922
7119
|
const imageRef = useRef20(null);
|
|
6923
7120
|
const errors = useRef20({});
|
|
6924
7121
|
const { delayPlayback } = useBufferState();
|
|
6925
|
-
const sequenceContext =
|
|
7122
|
+
const sequenceContext = useContext31(SequenceContext);
|
|
6926
7123
|
const [timelineId] = useState18(() => String(Math.random()));
|
|
6927
7124
|
if (!src) {
|
|
6928
7125
|
throw new Error('No "src" prop was passed to <Img>.');
|
|
@@ -7066,7 +7263,7 @@ var ImgInner = ({
|
|
|
7066
7263
|
decoding: "sync"
|
|
7067
7264
|
});
|
|
7068
7265
|
};
|
|
7069
|
-
var Img = wrapInSchema(ImgInner,
|
|
7266
|
+
var Img = wrapInSchema(ImgInner, sequenceStyleSchema);
|
|
7070
7267
|
addSequenceStackTraces(Img);
|
|
7071
7268
|
var compositionsRef = React28.createRef();
|
|
7072
7269
|
var CompositionManagerProvider = ({
|
|
@@ -7122,7 +7319,7 @@ var CompositionManagerProvider = ({
|
|
|
7122
7319
|
getCompositions: () => currentcompositionsRef.current
|
|
7123
7320
|
};
|
|
7124
7321
|
}, []);
|
|
7125
|
-
const compositionManagerSetters =
|
|
7322
|
+
const compositionManagerSetters = useMemo30(() => {
|
|
7126
7323
|
return {
|
|
7127
7324
|
registerComposition,
|
|
7128
7325
|
unregisterComposition,
|
|
@@ -7138,7 +7335,7 @@ var CompositionManagerProvider = ({
|
|
|
7138
7335
|
unregisterFolder,
|
|
7139
7336
|
onlyRenderComposition
|
|
7140
7337
|
]);
|
|
7141
|
-
const compositionManagerContextValue =
|
|
7338
|
+
const compositionManagerContextValue = useMemo30(() => {
|
|
7142
7339
|
return {
|
|
7143
7340
|
compositions,
|
|
7144
7341
|
folders,
|
|
@@ -7242,9 +7439,9 @@ var waitForRoot = (fn) => {
|
|
|
7242
7439
|
listeners = listeners.filter((l) => l !== fn);
|
|
7243
7440
|
};
|
|
7244
7441
|
};
|
|
7245
|
-
var MediaEnabledContext =
|
|
7442
|
+
var MediaEnabledContext = createContext22(null);
|
|
7246
7443
|
var useVideoEnabled = () => {
|
|
7247
|
-
const context =
|
|
7444
|
+
const context = useContext32(MediaEnabledContext);
|
|
7248
7445
|
if (!context) {
|
|
7249
7446
|
return window.remotion_videoEnabled;
|
|
7250
7447
|
}
|
|
@@ -7254,7 +7451,7 @@ var useVideoEnabled = () => {
|
|
|
7254
7451
|
return context.videoEnabled;
|
|
7255
7452
|
};
|
|
7256
7453
|
var useAudioEnabled = () => {
|
|
7257
|
-
const context =
|
|
7454
|
+
const context = useContext32(MediaEnabledContext);
|
|
7258
7455
|
if (!context) {
|
|
7259
7456
|
return window.remotion_audioEnabled;
|
|
7260
7457
|
}
|
|
@@ -7268,7 +7465,7 @@ var MediaEnabledProvider = ({
|
|
|
7268
7465
|
videoEnabled,
|
|
7269
7466
|
audioEnabled
|
|
7270
7467
|
}) => {
|
|
7271
|
-
const value =
|
|
7468
|
+
const value = useMemo31(() => ({ videoEnabled, audioEnabled }), [videoEnabled, audioEnabled]);
|
|
7272
7469
|
return /* @__PURE__ */ jsx28(MediaEnabledContext.Provider, {
|
|
7273
7470
|
value,
|
|
7274
7471
|
children
|
|
@@ -7284,13 +7481,13 @@ var RemotionRootContexts = ({
|
|
|
7284
7481
|
frameState,
|
|
7285
7482
|
visualModeEnabled
|
|
7286
7483
|
}) => {
|
|
7287
|
-
const nonceContext =
|
|
7484
|
+
const nonceContext = useMemo32(() => {
|
|
7288
7485
|
let counter = 0;
|
|
7289
7486
|
return {
|
|
7290
7487
|
getNonce: () => counter++
|
|
7291
7488
|
};
|
|
7292
7489
|
}, []);
|
|
7293
|
-
const logging =
|
|
7490
|
+
const logging = useMemo32(() => {
|
|
7294
7491
|
return { logLevel, mountTime: Date.now() };
|
|
7295
7492
|
}, [logLevel]);
|
|
7296
7493
|
return /* @__PURE__ */ jsx29(LogLevelContext.Provider, {
|
|
@@ -7524,7 +7721,7 @@ var setupEnvVariables = () => {
|
|
|
7524
7721
|
});
|
|
7525
7722
|
};
|
|
7526
7723
|
var CurrentScaleContext = React32.createContext(null);
|
|
7527
|
-
var PreviewSizeContext =
|
|
7724
|
+
var PreviewSizeContext = createContext23({
|
|
7528
7725
|
setSize: () => {
|
|
7529
7726
|
return;
|
|
7530
7727
|
},
|
|
@@ -7548,8 +7745,8 @@ var calculateScale = ({
|
|
|
7548
7745
|
return Number(previewSize);
|
|
7549
7746
|
};
|
|
7550
7747
|
var useSequenceControlOverride = (key) => {
|
|
7551
|
-
const seqContext =
|
|
7552
|
-
const { dragOverrides: overrides } =
|
|
7748
|
+
const seqContext = useContext33(SequenceContext);
|
|
7749
|
+
const { dragOverrides: overrides } = useContext33(VisualModeOverridesContext);
|
|
7553
7750
|
if (!seqContext) {
|
|
7554
7751
|
return;
|
|
7555
7752
|
}
|
|
@@ -7586,13 +7783,13 @@ var OffthreadVideoForRendering = ({
|
|
|
7586
7783
|
const frame = useCurrentFrame();
|
|
7587
7784
|
const volumePropsFrame = useFrameForVolumeProp(loopVolumeCurveBehavior);
|
|
7588
7785
|
const videoConfig = useUnsafeVideoConfig();
|
|
7589
|
-
const sequenceContext =
|
|
7786
|
+
const sequenceContext = useContext34(SequenceContext);
|
|
7590
7787
|
const mediaStartsAt = useMediaStartsAt();
|
|
7591
|
-
const { registerRenderAsset, unregisterRenderAsset } =
|
|
7788
|
+
const { registerRenderAsset, unregisterRenderAsset } = useContext34(RenderAssetManager);
|
|
7592
7789
|
if (!src) {
|
|
7593
7790
|
throw new TypeError("No `src` was passed to <OffthreadVideo>.");
|
|
7594
7791
|
}
|
|
7595
|
-
const id =
|
|
7792
|
+
const id = useMemo33(() => `offthreadvideo-${random(src)}-${sequenceContext?.cumulatedFrom}-${sequenceContext?.relativeFrom}-${sequenceContext?.durationInFrames}`, [
|
|
7596
7793
|
src,
|
|
7597
7794
|
sequenceContext?.cumulatedFrom,
|
|
7598
7795
|
sequenceContext?.relativeFrom,
|
|
@@ -7607,7 +7804,7 @@ var OffthreadVideoForRendering = ({
|
|
|
7607
7804
|
mediaVolume: 1
|
|
7608
7805
|
});
|
|
7609
7806
|
warnAboutTooHighVolume(volume);
|
|
7610
|
-
|
|
7807
|
+
useEffect17(() => {
|
|
7611
7808
|
if (!src) {
|
|
7612
7809
|
throw new Error("No src passed");
|
|
7613
7810
|
}
|
|
@@ -7647,14 +7844,14 @@ var OffthreadVideoForRendering = ({
|
|
|
7647
7844
|
sequenceContext?.relativeFrom,
|
|
7648
7845
|
audioStreamIndex
|
|
7649
7846
|
]);
|
|
7650
|
-
const currentTime =
|
|
7847
|
+
const currentTime = useMemo33(() => {
|
|
7651
7848
|
return getExpectedMediaFrameUncorrected({
|
|
7652
7849
|
frame,
|
|
7653
7850
|
playbackRate: playbackRate || 1,
|
|
7654
7851
|
startFrom: -mediaStartsAt
|
|
7655
7852
|
}) / videoConfig.fps;
|
|
7656
7853
|
}, [frame, mediaStartsAt, playbackRate, videoConfig.fps]);
|
|
7657
|
-
const actualSrc =
|
|
7854
|
+
const actualSrc = useMemo33(() => {
|
|
7658
7855
|
return getOffthreadVideoSource({
|
|
7659
7856
|
src,
|
|
7660
7857
|
currentTime,
|
|
@@ -7742,7 +7939,7 @@ var OffthreadVideoForRendering = ({
|
|
|
7742
7939
|
cancelRender("Failed to load image with src " + imageSrc);
|
|
7743
7940
|
}
|
|
7744
7941
|
}, [imageSrc, onError]);
|
|
7745
|
-
const className =
|
|
7942
|
+
const className = useMemo33(() => {
|
|
7746
7943
|
return [OBJECTFIT_CONTAIN_CLASS_NAME, props2.className].filter(truthy).join(" ");
|
|
7747
7944
|
}, [props2.className]);
|
|
7748
7945
|
const onImageFrame = useCallback17((img) => {
|
|
@@ -7768,7 +7965,7 @@ var useEmitVideoFrame = ({
|
|
|
7768
7965
|
ref,
|
|
7769
7966
|
onVideoFrame
|
|
7770
7967
|
}) => {
|
|
7771
|
-
|
|
7968
|
+
useEffect18(() => {
|
|
7772
7969
|
const { current } = ref;
|
|
7773
7970
|
if (!current) {
|
|
7774
7971
|
return;
|
|
@@ -7800,12 +7997,12 @@ class MediaPlaybackError extends Error {
|
|
|
7800
7997
|
}
|
|
7801
7998
|
}
|
|
7802
7999
|
var VideoForDevelopmentRefForwardingFunction = (props2, ref) => {
|
|
7803
|
-
const context =
|
|
8000
|
+
const context = useContext35(SharedAudioContext);
|
|
7804
8001
|
if (!context) {
|
|
7805
8002
|
throw new Error("SharedAudioContext not found");
|
|
7806
8003
|
}
|
|
7807
8004
|
const videoRef = useRef22(null);
|
|
7808
|
-
const sharedSource =
|
|
8005
|
+
const sharedSource = useMemo34(() => {
|
|
7809
8006
|
if (!context.audioContext) {
|
|
7810
8007
|
return null;
|
|
7811
8008
|
}
|
|
@@ -7856,8 +8053,8 @@ var VideoForDevelopmentRefForwardingFunction = (props2, ref) => {
|
|
|
7856
8053
|
}
|
|
7857
8054
|
const volumePropFrame = useFrameForVolumeProp(loopVolumeCurveBehavior ?? "repeat");
|
|
7858
8055
|
const { fps, durationInFrames } = useVideoConfig();
|
|
7859
|
-
const parentSequence =
|
|
7860
|
-
const { hidden } =
|
|
8056
|
+
const parentSequence = useContext35(SequenceContext);
|
|
8057
|
+
const { hidden } = useContext35(SequenceVisibilityToggleContext);
|
|
7861
8058
|
const logLevel = useLogLevel();
|
|
7862
8059
|
const mountTime = useMountTime();
|
|
7863
8060
|
const [timelineId] = useState21(() => String(Math.random()));
|
|
@@ -7932,7 +8129,7 @@ var VideoForDevelopmentRefForwardingFunction = (props2, ref) => {
|
|
|
7932
8129
|
tag: "video",
|
|
7933
8130
|
mountTime
|
|
7934
8131
|
}));
|
|
7935
|
-
|
|
8132
|
+
useEffect19(() => {
|
|
7936
8133
|
const { current } = videoRef;
|
|
7937
8134
|
if (!current) {
|
|
7938
8135
|
return;
|
|
@@ -7975,7 +8172,7 @@ var VideoForDevelopmentRefForwardingFunction = (props2, ref) => {
|
|
|
7975
8172
|
const currentOnDurationCallback = useRef22(onDuration);
|
|
7976
8173
|
currentOnDurationCallback.current = onDuration;
|
|
7977
8174
|
useEmitVideoFrame({ ref: videoRef, onVideoFrame });
|
|
7978
|
-
|
|
8175
|
+
useEffect19(() => {
|
|
7979
8176
|
const { current } = videoRef;
|
|
7980
8177
|
if (!current) {
|
|
7981
8178
|
return;
|
|
@@ -7992,7 +8189,7 @@ var VideoForDevelopmentRefForwardingFunction = (props2, ref) => {
|
|
|
7992
8189
|
current.removeEventListener("loadedmetadata", onLoadedMetadata);
|
|
7993
8190
|
};
|
|
7994
8191
|
}, [src]);
|
|
7995
|
-
|
|
8192
|
+
useEffect19(() => {
|
|
7996
8193
|
const { current } = videoRef;
|
|
7997
8194
|
if (!current) {
|
|
7998
8195
|
return;
|
|
@@ -8003,7 +8200,7 @@ var VideoForDevelopmentRefForwardingFunction = (props2, ref) => {
|
|
|
8003
8200
|
current.preload = "auto";
|
|
8004
8201
|
}
|
|
8005
8202
|
}, []);
|
|
8006
|
-
const actualStyle =
|
|
8203
|
+
const actualStyle = useMemo34(() => {
|
|
8007
8204
|
return {
|
|
8008
8205
|
...style,
|
|
8009
8206
|
opacity: isSequenceHidden ? 0 : style?.opacity ?? 1
|
|
@@ -8197,7 +8394,7 @@ function useRemotionContexts() {
|
|
|
8197
8394
|
const sequenceManagerContext = React36.useContext(SequenceManager);
|
|
8198
8395
|
const bufferManagerContext = React36.useContext(BufferingContextReact);
|
|
8199
8396
|
const logLevelContext = React36.useContext(LogLevelContext);
|
|
8200
|
-
return
|
|
8397
|
+
return useMemo35(() => ({
|
|
8201
8398
|
compositionManagerCtx,
|
|
8202
8399
|
timelineContext,
|
|
8203
8400
|
setTimelineContext,
|
|
@@ -8285,8 +8482,11 @@ var Internals = {
|
|
|
8285
8482
|
SequenceManager,
|
|
8286
8483
|
SequenceStackTracesUpdateContext,
|
|
8287
8484
|
SequenceVisibilityToggleContext,
|
|
8288
|
-
useSchema,
|
|
8289
8485
|
wrapInSchema,
|
|
8486
|
+
sequenceSchema,
|
|
8487
|
+
sequenceStyleSchema,
|
|
8488
|
+
flattenActiveSchema,
|
|
8489
|
+
getFlatSchemaWithAllKeys,
|
|
8290
8490
|
useSequenceControlOverride,
|
|
8291
8491
|
RemotionRootContexts,
|
|
8292
8492
|
CompositionManagerProvider,
|
|
@@ -8336,6 +8536,7 @@ var Internals = {
|
|
|
8336
8536
|
REMOTION_STUDIO_CONTAINER_ELEMENT,
|
|
8337
8537
|
RenderAssetManager,
|
|
8338
8538
|
persistCurrentFrame,
|
|
8539
|
+
usePlaybackRate,
|
|
8339
8540
|
useTimelineContext,
|
|
8340
8541
|
useTimelineSetFrame,
|
|
8341
8542
|
isIosSafari,
|
|
@@ -8369,6 +8570,7 @@ var Internals = {
|
|
|
8369
8570
|
TimelinePosition: exports_timeline_position_state,
|
|
8370
8571
|
DelayRenderContextType,
|
|
8371
8572
|
TimelineContext,
|
|
8573
|
+
PlaybackRateContext,
|
|
8372
8574
|
AbsoluteTimeContext,
|
|
8373
8575
|
RenderAssetManagerProvider,
|
|
8374
8576
|
getEffectiveVisualModeValue,
|
|
@@ -8377,7 +8579,8 @@ var Internals = {
|
|
|
8377
8579
|
runEffectChain,
|
|
8378
8580
|
useMemoizedEffects,
|
|
8379
8581
|
defineEffect,
|
|
8380
|
-
createDescriptor
|
|
8582
|
+
createDescriptor,
|
|
8583
|
+
computeEffectiveSchemaValuesDotNotation
|
|
8381
8584
|
};
|
|
8382
8585
|
var NUMBER = "[-+]?\\d*\\.?\\d+";
|
|
8383
8586
|
var PERCENTAGE = NUMBER + "%";
|
|
@@ -8415,7 +8618,7 @@ var flattenChildren = (children) => {
|
|
|
8415
8618
|
return flatChildren;
|
|
8416
8619
|
}, []);
|
|
8417
8620
|
};
|
|
8418
|
-
var IsInsideSeriesContext =
|
|
8621
|
+
var IsInsideSeriesContext = createContext24(false);
|
|
8419
8622
|
var IsInsideSeriesContainer = ({ children }) => {
|
|
8420
8623
|
return /* @__PURE__ */ jsx34(IsInsideSeriesContext.Provider, {
|
|
8421
8624
|
value: true,
|
|
@@ -8441,8 +8644,8 @@ var SeriesSequenceRefForwardingFunction = ({ children }, _ref) => {
|
|
|
8441
8644
|
});
|
|
8442
8645
|
};
|
|
8443
8646
|
var SeriesSequence = forwardRef11(SeriesSequenceRefForwardingFunction);
|
|
8444
|
-
var
|
|
8445
|
-
const childrenValue =
|
|
8647
|
+
var SeriesInner = (props2) => {
|
|
8648
|
+
const childrenValue = useMemo36(() => {
|
|
8446
8649
|
let startFrame = 0;
|
|
8447
8650
|
const flattenedChildren = flattenChildren(props2.children);
|
|
8448
8651
|
return Children.map(flattenedChildren, (child, i) => {
|
|
@@ -8505,7 +8708,9 @@ var Series = (props2) => {
|
|
|
8505
8708
|
})
|
|
8506
8709
|
});
|
|
8507
8710
|
};
|
|
8508
|
-
Series
|
|
8711
|
+
var Series = Object.assign(wrapInSchema(SeriesInner, sequenceSchemaDefaultLayoutNone), {
|
|
8712
|
+
Sequence: SeriesSequence
|
|
8713
|
+
});
|
|
8509
8714
|
addSequenceStackTraces(Series);
|
|
8510
8715
|
addSequenceStackTraces(SeriesSequence);
|
|
8511
8716
|
var validateSpringDuration = (dur) => {
|
|
@@ -8973,14 +9178,14 @@ var VideoForRenderingForwardFunction = ({
|
|
|
8973
9178
|
const volumePropsFrame = useFrameForVolumeProp(loopVolumeCurveBehavior ?? "repeat");
|
|
8974
9179
|
const videoConfig = useUnsafeVideoConfig();
|
|
8975
9180
|
const videoRef = useRef23(null);
|
|
8976
|
-
const sequenceContext =
|
|
9181
|
+
const sequenceContext = useContext36(SequenceContext);
|
|
8977
9182
|
const mediaStartsAt = useMediaStartsAt();
|
|
8978
9183
|
const environment = useRemotionEnvironment();
|
|
8979
9184
|
const logLevel = useLogLevel();
|
|
8980
9185
|
const mountTime = useMountTime();
|
|
8981
9186
|
const { delayRender: delayRender2, continueRender: continueRender2 } = useDelayRender();
|
|
8982
|
-
const { registerRenderAsset, unregisterRenderAsset } =
|
|
8983
|
-
const id =
|
|
9187
|
+
const { registerRenderAsset, unregisterRenderAsset } = useContext36(RenderAssetManager);
|
|
9188
|
+
const id = useMemo37(() => `video-${random(props2.src ?? "")}-${sequenceContext?.cumulatedFrom}-${sequenceContext?.relativeFrom}-${sequenceContext?.durationInFrames}`, [
|
|
8984
9189
|
props2.src,
|
|
8985
9190
|
sequenceContext?.cumulatedFrom,
|
|
8986
9191
|
sequenceContext?.relativeFrom,
|
|
@@ -8995,7 +9200,7 @@ var VideoForRenderingForwardFunction = ({
|
|
|
8995
9200
|
mediaVolume: 1
|
|
8996
9201
|
});
|
|
8997
9202
|
warnAboutTooHighVolume(volume);
|
|
8998
|
-
|
|
9203
|
+
useEffect20(() => {
|
|
8999
9204
|
if (!props2.src) {
|
|
9000
9205
|
throw new Error("No src passed");
|
|
9001
9206
|
}
|
|
@@ -9038,7 +9243,7 @@ var VideoForRenderingForwardFunction = ({
|
|
|
9038
9243
|
useImperativeHandle9(ref, () => {
|
|
9039
9244
|
return videoRef.current;
|
|
9040
9245
|
}, []);
|
|
9041
|
-
|
|
9246
|
+
useEffect20(() => {
|
|
9042
9247
|
if (!window.remotion_videoEnabled) {
|
|
9043
9248
|
return;
|
|
9044
9249
|
}
|
|
@@ -9189,7 +9394,7 @@ var VideoForwardingFunction = (props2, ref) => {
|
|
|
9189
9394
|
if (environment.isClientSideRendering) {
|
|
9190
9395
|
throw new Error("<Html5Video> is not supported in @remotion/web-renderer. Use <Video> from @remotion/media instead. See https://remotion.dev/docs/client-side-rendering/limitations");
|
|
9191
9396
|
}
|
|
9192
|
-
const { durations, setDurations } =
|
|
9397
|
+
const { durations, setDurations } = useContext37(DurationsContext);
|
|
9193
9398
|
if (typeof ref === "string") {
|
|
9194
9399
|
throw new Error("string refs are not supported");
|
|
9195
9400
|
}
|
|
@@ -9456,6 +9661,20 @@ var TeamCardsLayout = () => {
|
|
|
9456
9661
|
|
|
9457
9662
|
// src/components/experts/experts-icons.tsx
|
|
9458
9663
|
import { jsx as jsx40 } from "react/jsx-runtime";
|
|
9664
|
+
var DiscordLogo = () => {
|
|
9665
|
+
return /* @__PURE__ */ jsx40("svg", {
|
|
9666
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
9667
|
+
viewBox: "0 0 24 24",
|
|
9668
|
+
style: {
|
|
9669
|
+
width: 30,
|
|
9670
|
+
marginRight: 10
|
|
9671
|
+
},
|
|
9672
|
+
children: /* @__PURE__ */ jsx40("path", {
|
|
9673
|
+
fill: "white",
|
|
9674
|
+
d: "M20.317 4.37a19.791 19.791 0 0 0-4.885-1.515.074.074 0 0 0-.079.037c-.21.375-.444.864-.608 1.25a18.27 18.27 0 0 0-5.487 0 12.64 12.64 0 0 0-.617-1.25.077.077 0 0 0-.079-.037A19.736 19.736 0 0 0 3.677 4.37a.07.07 0 0 0-.032.027C.533 9.046-.32 13.58.099 18.057a.082.082 0 0 0 .031.057 19.9 19.9 0 0 0 5.993 3.03.078.078 0 0 0 .084-.028c.462-.63.874-1.295 1.226-1.994a.076.076 0 0 0-.041-.106 13.107 13.107 0 0 1-1.872-.892.077.077 0 0 1-.008-.128 10.2 10.2 0 0 0 .372-.292.074.074 0 0 1 .077-.01c3.928 1.793 8.18 1.793 12.062 0a.074.074 0 0 1 .078.01c.12.098.246.198.373.292a.077.077 0 0 1-.006.127 12.299 12.299 0 0 1-1.873.892.077.077 0 0 0-.041.107c.36.698.772 1.362 1.225 1.993a.076.076 0 0 0 .084.028 19.839 19.839 0 0 0 6.002-3.03.077.077 0 0 0 .032-.054c.5-5.177-.838-9.674-3.549-13.66a.061.061 0 0 0-.031-.03zM8.02 15.33c-1.183 0-2.157-1.085-2.157-2.419 0-1.333.956-2.419 2.157-2.419 1.21 0 2.176 1.096 2.157 2.42 0 1.333-.956 2.418-2.157 2.418zm7.975 0c-1.183 0-2.157-1.085-2.157-2.419 0-1.333.955-2.419 2.157-2.419 1.21 0 2.176 1.096 2.157 2.42 0 1.333-.946 2.418-2.157 2.418z"
|
|
9675
|
+
})
|
|
9676
|
+
});
|
|
9677
|
+
};
|
|
9459
9678
|
var PersonalWebsite = () => {
|
|
9460
9679
|
return /* @__PURE__ */ jsx40("svg", {
|
|
9461
9680
|
xmlns: "http://www.w3.org/2000/svg",
|
|
@@ -9609,6 +9828,13 @@ var ExpertCard = ({ expert, Link }) => {
|
|
|
9609
9828
|
target: "_blank",
|
|
9610
9829
|
href: `mailto:${expert.email}`,
|
|
9611
9830
|
children: /* @__PURE__ */ jsx41(EmailLogo, {})
|
|
9831
|
+
}) : null,
|
|
9832
|
+
expert.discord ? /* @__PURE__ */ jsx41("a", {
|
|
9833
|
+
className: "no-underline text-inherit",
|
|
9834
|
+
target: "_blank",
|
|
9835
|
+
href: `https://discord.com/users/${expert.discord.userId}`,
|
|
9836
|
+
title: `@${expert.discord.username} on Discord`,
|
|
9837
|
+
children: /* @__PURE__ */ jsx41(DiscordLogo, {})
|
|
9612
9838
|
}) : null
|
|
9613
9839
|
]
|
|
9614
9840
|
})
|
|
@@ -9618,7 +9844,7 @@ var ExpertCard = ({ expert, Link }) => {
|
|
|
9618
9844
|
});
|
|
9619
9845
|
};
|
|
9620
9846
|
var ExpertsPageContent = ({ Link }) => {
|
|
9621
|
-
const expertsInRandomOrder =
|
|
9847
|
+
const expertsInRandomOrder = useMemo38(() => {
|
|
9622
9848
|
if (typeof window === "undefined") {
|
|
9623
9849
|
return [];
|
|
9624
9850
|
}
|
|
@@ -11061,7 +11287,7 @@ var getDefaultConfig = () => {
|
|
|
11061
11287
|
var twMerge = /* @__PURE__ */ createTailwindMerge(getDefaultConfig);
|
|
11062
11288
|
|
|
11063
11289
|
// ../design/dist/esm/index.mjs
|
|
11064
|
-
import React33, { useEffect as
|
|
11290
|
+
import React33, { useEffect as useEffect21, useMemo as useMemo41, useState as useState23 } from "react";
|
|
11065
11291
|
|
|
11066
11292
|
// ../paths/dist/esm/index.mjs
|
|
11067
11293
|
var cutLInstruction = ({
|
|
@@ -13827,7 +14053,7 @@ var PathInternals = {
|
|
|
13827
14053
|
};
|
|
13828
14054
|
|
|
13829
14055
|
// ../shapes/dist/esm/index.mjs
|
|
13830
|
-
import React3, { useMemo as
|
|
14056
|
+
import React3, { useMemo as useMemo40 } from "react";
|
|
13831
14057
|
import { version } from "react-dom";
|
|
13832
14058
|
import { jsx as jsx42, jsxs as jsxs5 } from "react/jsx-runtime";
|
|
13833
14059
|
import { jsx as jsx210 } from "react/jsx-runtime";
|
|
@@ -13858,13 +14084,13 @@ var RenderSvg = ({
|
|
|
13858
14084
|
instructions,
|
|
13859
14085
|
...props
|
|
13860
14086
|
}) => {
|
|
13861
|
-
const actualStyle =
|
|
14087
|
+
const actualStyle = useMemo40(() => {
|
|
13862
14088
|
return {
|
|
13863
14089
|
overflow: "visible",
|
|
13864
14090
|
...style ?? {}
|
|
13865
14091
|
};
|
|
13866
14092
|
}, [style]);
|
|
13867
|
-
const actualPathStyle =
|
|
14093
|
+
const actualPathStyle = useMemo40(() => {
|
|
13868
14094
|
return {
|
|
13869
14095
|
transformBox: "fill-box",
|
|
13870
14096
|
...pathStyle ?? {}
|
|
@@ -15425,10 +15651,10 @@ import { jsx as jsx152 } from "react/jsx-runtime";
|
|
|
15425
15651
|
import * as React122 from "react";
|
|
15426
15652
|
import { jsx as jsx162 } from "react/jsx-runtime";
|
|
15427
15653
|
import * as React16 from "react";
|
|
15428
|
-
import * as
|
|
15654
|
+
import * as React132 from "react";
|
|
15429
15655
|
import * as ReactDOM from "react-dom";
|
|
15430
15656
|
import { jsx as jsx172 } from "react/jsx-runtime";
|
|
15431
|
-
import * as
|
|
15657
|
+
import * as React14 from "react";
|
|
15432
15658
|
import * as React152 from "react";
|
|
15433
15659
|
import { jsx as jsx182 } from "react/jsx-runtime";
|
|
15434
15660
|
import * as React172 from "react";
|
|
@@ -15655,8 +15881,8 @@ var useHoverTransforms = (ref, disabled) => {
|
|
|
15655
15881
|
progress: 0,
|
|
15656
15882
|
isActive: false
|
|
15657
15883
|
});
|
|
15658
|
-
const eventTarget =
|
|
15659
|
-
|
|
15884
|
+
const eventTarget = useMemo41(() => new EventTarget, []);
|
|
15885
|
+
useEffect21(() => {
|
|
15660
15886
|
if (disabled) {
|
|
15661
15887
|
eventTarget.dispatchEvent(new Event("disabled"));
|
|
15662
15888
|
} else {
|
|
@@ -15803,7 +16029,7 @@ var getAngle = (ref, coordinates) => {
|
|
|
15803
16029
|
var lastCoordinates = null;
|
|
15804
16030
|
var useMousePosition = (ref) => {
|
|
15805
16031
|
const [angle, setAngle] = useState23(getAngle(ref.current, lastCoordinates));
|
|
15806
|
-
|
|
16032
|
+
useEffect21(() => {
|
|
15807
16033
|
const element = ref.current;
|
|
15808
16034
|
if (!element) {
|
|
15809
16035
|
return;
|
|
@@ -16467,7 +16693,7 @@ var NODES = [
|
|
|
16467
16693
|
"ul"
|
|
16468
16694
|
];
|
|
16469
16695
|
var Primitive = NODES.reduce((primitive, node) => {
|
|
16470
|
-
const Node2 =
|
|
16696
|
+
const Node2 = React132.forwardRef((props, forwardedRef) => {
|
|
16471
16697
|
const { asChild, ...primitiveProps } = props;
|
|
16472
16698
|
const Comp = asChild ? Slot2 : node;
|
|
16473
16699
|
if (typeof window !== "undefined") {
|
|
@@ -16483,11 +16709,11 @@ function dispatchDiscreteCustomEvent(target, event) {
|
|
|
16483
16709
|
ReactDOM.flushSync(() => target.dispatchEvent(event));
|
|
16484
16710
|
}
|
|
16485
16711
|
function useCallbackRef(callback) {
|
|
16486
|
-
const callbackRef =
|
|
16487
|
-
|
|
16712
|
+
const callbackRef = React14.useRef(callback);
|
|
16713
|
+
React14.useEffect(() => {
|
|
16488
16714
|
callbackRef.current = callback;
|
|
16489
16715
|
});
|
|
16490
|
-
return
|
|
16716
|
+
return React14.useMemo(() => (...args) => callbackRef.current?.(...args), []);
|
|
16491
16717
|
}
|
|
16492
16718
|
function useEscapeKeydown(onEscapeKeyDownProp, ownerDocument = globalThis?.document) {
|
|
16493
16719
|
const onEscapeKeyDown = useCallbackRef(onEscapeKeyDownProp);
|
|
@@ -22102,7 +22328,7 @@ var Triangle2 = (props) => {
|
|
|
22102
22328
|
};
|
|
22103
22329
|
|
|
22104
22330
|
// src/components/homepage/FreePricing.tsx
|
|
22105
|
-
import React53, { useCallback as useCallback33, useMemo as
|
|
22331
|
+
import React53, { useCallback as useCallback33, useMemo as useMemo50 } from "react";
|
|
22106
22332
|
|
|
22107
22333
|
// ../../node_modules/.bun/tailwind-merge@2.5.2/node_modules/tailwind-merge/dist/bundle-mjs.mjs
|
|
22108
22334
|
var CLASS_PART_SEPARATOR2 = "-";
|
|
@@ -23759,14 +23985,14 @@ var CompanyPricing = () => {
|
|
|
23759
23985
|
}, []);
|
|
23760
23986
|
const creatorsPrice = creatorsSelected ? devSeatCount * SEAT_PRICE : 0;
|
|
23761
23987
|
const automatorsPrice = automatorsSelected ? Math.ceil(cloudRenders / 1000) * RENDER_UNIT_PRICE : 0;
|
|
23762
|
-
const totalPrice =
|
|
23988
|
+
const totalPrice = useMemo50(() => {
|
|
23763
23989
|
const basePrice = creatorsPrice + automatorsPrice;
|
|
23764
23990
|
if (automatorsSelected) {
|
|
23765
23991
|
return Math.max(100, basePrice);
|
|
23766
23992
|
}
|
|
23767
23993
|
return basePrice;
|
|
23768
23994
|
}, [creatorsPrice, automatorsPrice, automatorsSelected]);
|
|
23769
|
-
const totalPriceString =
|
|
23995
|
+
const totalPriceString = useMemo50(() => {
|
|
23770
23996
|
return formatPrice(totalPrice);
|
|
23771
23997
|
}, [formatPrice, totalPrice]);
|
|
23772
23998
|
const showMinimumMessage = automatorsSelected && creatorsPrice + automatorsPrice < 100;
|
|
@@ -24039,7 +24265,7 @@ var Pricing = () => {
|
|
|
24039
24265
|
};
|
|
24040
24266
|
|
|
24041
24267
|
// src/components/homepage/BackgroundAnimation.tsx
|
|
24042
|
-
import { useEffect as
|
|
24268
|
+
import { useEffect as useEffect40 } from "react";
|
|
24043
24269
|
import { jsx as jsx49, jsxs as jsxs10 } from "react/jsx-runtime";
|
|
24044
24270
|
"use client";
|
|
24045
24271
|
var rx = 0.2;
|
|
@@ -24065,7 +24291,7 @@ var BackgroundAnimation = () => {
|
|
|
24065
24291
|
}
|
|
24066
24292
|
}
|
|
24067
24293
|
`;
|
|
24068
|
-
|
|
24294
|
+
useEffect40(() => {
|
|
24069
24295
|
const _style = document.createElement("style");
|
|
24070
24296
|
_style.innerHTML = css;
|
|
24071
24297
|
document.head.appendChild(_style);
|
|
@@ -24471,16 +24697,16 @@ var CommunityStats_default = CommunityStats;
|
|
|
24471
24697
|
import { jsx as jsx56, jsxs as jsxs13 } from "react/jsx-runtime";
|
|
24472
24698
|
import { jsx as jsx214, jsxs as jsxs24, Fragment as Fragment11 } from "react/jsx-runtime";
|
|
24473
24699
|
import React56 from "react";
|
|
24474
|
-
import { useContext as useContext210, useEffect as
|
|
24475
|
-
import { useContext as
|
|
24700
|
+
import { useContext as useContext210, useEffect as useEffect41, useState as useState40 } from "react";
|
|
24701
|
+
import { useContext as useContext44, useLayoutEffect as useLayoutEffect17 } from "react";
|
|
24476
24702
|
import { jsx as jsx313 } from "react/jsx-runtime";
|
|
24477
24703
|
import { useCallback as useCallback34, useRef as useRef42 } from "react";
|
|
24478
|
-
import { useEffect as
|
|
24704
|
+
import { useEffect as useEffect210, useState as useState24 } from "react";
|
|
24479
24705
|
import { useLayoutEffect as useLayoutEffect23 } from "react";
|
|
24480
|
-
import { useContext as
|
|
24706
|
+
import { useContext as useContext45, useEffect as useEffect52, useRef as useRef52 } from "react";
|
|
24481
24707
|
import { useEffect as useEffect310, useRef as useRef310 } from "react";
|
|
24482
|
-
import { useCallback as useCallback24, useContext as
|
|
24483
|
-
import { useEffect as
|
|
24708
|
+
import { useCallback as useCallback24, useContext as useContext39, useMemo as useMemo51, useRef as useRef26, useState as useState310 } from "react";
|
|
24709
|
+
import { useEffect as useEffect42, useRef as useRef43 } from "react";
|
|
24484
24710
|
import { useCallback as useCallback35, useEffect as useEffect62, useMemo as useMemo212, useState as useState42 } from "react";
|
|
24485
24711
|
import {
|
|
24486
24712
|
forwardRef as forwardRef210,
|
|
@@ -24509,10 +24735,10 @@ import { jsx as jsx55 } from "react/jsx-runtime";
|
|
|
24509
24735
|
import { useCallback as useCallback82, useEffect as useEffect112, useMemo as useMemo92, useRef as useRef92, useState as useState102 } from "react";
|
|
24510
24736
|
import { jsx as jsx64 } from "react/jsx-runtime";
|
|
24511
24737
|
import { useCallback as useCallback52, useMemo as useMemo410, useRef as useRef62, useState as useState62 } from "react";
|
|
24512
|
-
import React54, { useCallback as useCallback42, useMemo as
|
|
24738
|
+
import React54, { useCallback as useCallback42, useMemo as useMemo39, useState as useState52 } from "react";
|
|
24513
24739
|
import { jsx as jsx74, jsxs as jsxs33 } from "react/jsx-runtime";
|
|
24514
24740
|
import { jsx as jsx84, jsxs as jsxs43 } from "react/jsx-runtime";
|
|
24515
|
-
import { useCallback as useCallback62, useEffect as useEffect92, useMemo as
|
|
24741
|
+
import { useCallback as useCallback62, useEffect as useEffect92, useMemo as useMemo52, useState as useState82 } from "react";
|
|
24516
24742
|
import { useEffect as useEffect83, useRef as useRef72, useState as useState72 } from "react";
|
|
24517
24743
|
import { jsx as jsx94, jsxs as jsxs53 } from "react/jsx-runtime";
|
|
24518
24744
|
import { useCallback as useCallback72, useEffect as useEffect102, useMemo as useMemo62, useRef as useRef82, useState as useState92 } from "react";
|
|
@@ -25321,7 +25547,7 @@ import {
|
|
|
25321
25547
|
useRef as useRef142,
|
|
25322
25548
|
useState as useState142
|
|
25323
25549
|
} from "react";
|
|
25324
|
-
import
|
|
25550
|
+
import React133, {
|
|
25325
25551
|
forwardRef as forwardRef34,
|
|
25326
25552
|
Suspense as Suspense22,
|
|
25327
25553
|
useCallback as useCallback132,
|
|
@@ -25765,7 +25991,7 @@ class ThumbnailEmitter {
|
|
|
25765
25991
|
};
|
|
25766
25992
|
}
|
|
25767
25993
|
var useBufferStateEmitter = (emitter) => {
|
|
25768
|
-
const bufferManager =
|
|
25994
|
+
const bufferManager = useContext44(Internals.BufferingContextReact);
|
|
25769
25995
|
if (!bufferManager) {
|
|
25770
25996
|
throw new Error("BufferingContextReact not found");
|
|
25771
25997
|
}
|
|
@@ -25790,7 +26016,7 @@ var PlayerEmitterProvider = ({ children, currentPlaybackRate }) => {
|
|
|
25790
26016
|
if (!bufferManager) {
|
|
25791
26017
|
throw new Error("BufferingContextReact not found");
|
|
25792
26018
|
}
|
|
25793
|
-
|
|
26019
|
+
useEffect41(() => {
|
|
25794
26020
|
if (currentPlaybackRate) {
|
|
25795
26021
|
emitter.dispatchRateChange(currentPlaybackRate);
|
|
25796
26022
|
}
|
|
@@ -25803,7 +26029,7 @@ var PlayerEmitterProvider = ({ children, currentPlaybackRate }) => {
|
|
|
25803
26029
|
};
|
|
25804
26030
|
var useHoverState = (ref, hideControlsWhenPointerDoesntMove) => {
|
|
25805
26031
|
const [hovered, setHovered] = useState24(false);
|
|
25806
|
-
|
|
26032
|
+
useEffect210(() => {
|
|
25807
26033
|
const { current } = ref;
|
|
25808
26034
|
if (!current) {
|
|
25809
26035
|
return;
|
|
@@ -25848,21 +26074,21 @@ var usePlayer = () => {
|
|
|
25848
26074
|
const playStart = useRef26(frame);
|
|
25849
26075
|
const setFrame = Internals.Timeline.useTimelineSetFrame();
|
|
25850
26076
|
const setTimelinePosition = Internals.Timeline.useTimelineSetFrame();
|
|
25851
|
-
const audioContext =
|
|
25852
|
-
const audioTagsContext =
|
|
26077
|
+
const audioContext = useContext39(Internals.SharedAudioContext);
|
|
26078
|
+
const audioTagsContext = useContext39(Internals.SharedAudioTagsContext);
|
|
25853
26079
|
const { audioAndVideoTags } = Internals.useTimelineContext();
|
|
25854
26080
|
const frameRef = useRef26(frame);
|
|
25855
26081
|
frameRef.current = frame;
|
|
25856
26082
|
const video = Internals.useVideo();
|
|
25857
26083
|
const config = Internals.useUnsafeVideoConfig();
|
|
25858
|
-
const emitter =
|
|
26084
|
+
const emitter = useContext39(PlayerEventEmitterContext);
|
|
25859
26085
|
const lastFrame = (config?.durationInFrames ?? 1) - 1;
|
|
25860
26086
|
const isLastFrame = frame === lastFrame;
|
|
25861
26087
|
const isFirstFrame = frame === 0;
|
|
25862
26088
|
if (!emitter) {
|
|
25863
26089
|
throw new TypeError("Expected Player event emitter context");
|
|
25864
26090
|
}
|
|
25865
|
-
const bufferingContext =
|
|
26091
|
+
const bufferingContext = useContext39(Internals.BufferingContextReact);
|
|
25866
26092
|
if (!bufferingContext) {
|
|
25867
26093
|
throw new Error("Missing the buffering context. Most likely you have a Remotion version mismatch.");
|
|
25868
26094
|
}
|
|
@@ -25978,7 +26204,7 @@ var usePlayer = () => {
|
|
|
25978
26204
|
const isBuffering = useCallback24(() => {
|
|
25979
26205
|
return buffering.current;
|
|
25980
26206
|
}, [buffering]);
|
|
25981
|
-
const returnValue =
|
|
26207
|
+
const returnValue = useMemo51(() => {
|
|
25982
26208
|
return {
|
|
25983
26209
|
frameBack,
|
|
25984
26210
|
frameForward,
|
|
@@ -26164,7 +26390,7 @@ var getIsBackgrounded = () => {
|
|
|
26164
26390
|
};
|
|
26165
26391
|
var useIsBackgrounded = () => {
|
|
26166
26392
|
const isBackgrounded = useRef43(getIsBackgrounded());
|
|
26167
|
-
|
|
26393
|
+
useEffect42(() => {
|
|
26168
26394
|
const onVisibilityChange = () => {
|
|
26169
26395
|
isBackgrounded.current = getIsBackgrounded();
|
|
26170
26396
|
};
|
|
@@ -26209,12 +26435,11 @@ var usePlayback = ({
|
|
|
26209
26435
|
const frame = Internals.Timeline.useTimelinePosition();
|
|
26210
26436
|
const { playing, pause, emitter, isPlaying } = usePlayer();
|
|
26211
26437
|
const setFrame = Internals.Timeline.useTimelineSetFrame();
|
|
26212
|
-
const sharedAudioContext =
|
|
26438
|
+
const sharedAudioContext = useContext45(Internals.SharedAudioContext);
|
|
26213
26439
|
const logLevel = Internals.useLogLevel();
|
|
26214
|
-
const timelineContext = Internals.useTimelineContext();
|
|
26215
26440
|
const isBackgroundedRef = useIsBackgrounded();
|
|
26216
26441
|
const lastTimeUpdateTimestamp = useRef52(0);
|
|
26217
|
-
const context =
|
|
26442
|
+
const context = useContext45(Internals.BufferingContextReact);
|
|
26218
26443
|
if (!context) {
|
|
26219
26444
|
throw new Error("Missing the buffering context. Most likely you have a Remotion version mismatch.");
|
|
26220
26445
|
}
|
|
@@ -26237,19 +26462,13 @@ var usePlayback = ({
|
|
|
26237
26462
|
audioContext: sharedAudioContext.audioContext,
|
|
26238
26463
|
audioSyncAnchor: sharedAudioContext.audioSyncAnchor,
|
|
26239
26464
|
absoluteTimeInSeconds: frame / config.fps,
|
|
26240
|
-
globalPlaybackRate:
|
|
26465
|
+
globalPlaybackRate: playbackRate,
|
|
26241
26466
|
logLevel
|
|
26242
26467
|
});
|
|
26243
26468
|
if (changed) {
|
|
26244
26469
|
sharedAudioContext.audioSyncAnchorEmitter.dispatch("changed");
|
|
26245
26470
|
}
|
|
26246
|
-
}, [
|
|
26247
|
-
config,
|
|
26248
|
-
frame,
|
|
26249
|
-
logLevel,
|
|
26250
|
-
sharedAudioContext,
|
|
26251
|
-
timelineContext.playbackRate
|
|
26252
|
-
]);
|
|
26471
|
+
}, [config, frame, logLevel, playbackRate, sharedAudioContext]);
|
|
26253
26472
|
useEffect52(() => {
|
|
26254
26473
|
if (!config) {
|
|
26255
26474
|
return;
|
|
@@ -26283,7 +26502,9 @@ var usePlayback = ({
|
|
|
26283
26502
|
sharedAudioContext?.suspend?.();
|
|
26284
26503
|
return;
|
|
26285
26504
|
}
|
|
26286
|
-
|
|
26505
|
+
if (!muted) {
|
|
26506
|
+
sharedAudioContext?.resume?.();
|
|
26507
|
+
}
|
|
26287
26508
|
const time = performance.now() - startedTime;
|
|
26288
26509
|
const actualLastFrame = outFrame ?? config.durationInFrames - 1;
|
|
26289
26510
|
const actualFirstFrame = inFrame ?? 0;
|
|
@@ -26312,7 +26533,7 @@ var usePlayback = ({
|
|
|
26312
26533
|
};
|
|
26313
26534
|
const queueNextFrame = () => {
|
|
26314
26535
|
const getIsResumingAudioContext = sharedAudioContext?.getIsResumingAudioContext?.() ?? null;
|
|
26315
|
-
if (getIsResumingAudioContext !== null) {
|
|
26536
|
+
if (getIsResumingAudioContext !== null && !muted) {
|
|
26316
26537
|
getIsResumingAudioContext.then(() => {
|
|
26317
26538
|
if (!sharedAudioContext?.audioContext) {
|
|
26318
26539
|
return;
|
|
@@ -26324,7 +26545,7 @@ var usePlayback = ({
|
|
|
26324
26545
|
audioContext: sharedAudioContext.audioContext,
|
|
26325
26546
|
audioSyncAnchor: sharedAudioContext.audioSyncAnchor,
|
|
26326
26547
|
absoluteTimeInSeconds: getCurrentFrame() / config.fps,
|
|
26327
|
-
globalPlaybackRate:
|
|
26548
|
+
globalPlaybackRate: playbackRate,
|
|
26328
26549
|
logLevel
|
|
26329
26550
|
});
|
|
26330
26551
|
startedTime = performance.now();
|
|
@@ -26381,7 +26602,6 @@ var usePlayback = ({
|
|
|
26381
26602
|
context,
|
|
26382
26603
|
isPlaying,
|
|
26383
26604
|
sharedAudioContext,
|
|
26384
|
-
timelineContext.playbackRate,
|
|
26385
26605
|
logLevel,
|
|
26386
26606
|
muted
|
|
26387
26607
|
]);
|
|
@@ -26656,7 +26876,7 @@ var DefaultVolumeSlider = ({
|
|
|
26656
26876
|
inputRef,
|
|
26657
26877
|
setVolume
|
|
26658
26878
|
}) => {
|
|
26659
|
-
const sliderContainer =
|
|
26879
|
+
const sliderContainer = useMemo39(() => {
|
|
26660
26880
|
const paddingLeft = 5;
|
|
26661
26881
|
const common = {
|
|
26662
26882
|
paddingLeft,
|
|
@@ -26681,7 +26901,7 @@ var DefaultVolumeSlider = ({
|
|
|
26681
26901
|
const onVolumeChange = useCallback42((e) => {
|
|
26682
26902
|
setVolume(parseFloat(e.target.value));
|
|
26683
26903
|
}, [setVolume]);
|
|
26684
|
-
const inputStyle =
|
|
26904
|
+
const inputStyle = useMemo39(() => {
|
|
26685
26905
|
const commonStyle = {
|
|
26686
26906
|
WebkitAppearance: "none",
|
|
26687
26907
|
backgroundColor: "rgba(255, 255, 255, 0.5)",
|
|
@@ -26901,7 +27121,7 @@ var PlaybackrateOption = ({ rate, onSelect, selectedRate, keyboardSelectedRate }
|
|
|
26901
27121
|
setHovered(false);
|
|
26902
27122
|
}, []);
|
|
26903
27123
|
const isFocused = keyboardSelectedRate === rate;
|
|
26904
|
-
const actualStyle =
|
|
27124
|
+
const actualStyle = useMemo52(() => {
|
|
26905
27125
|
return {
|
|
26906
27126
|
...rateDiv,
|
|
26907
27127
|
backgroundColor: hovered || isFocused ? "#eee" : "transparent"
|
|
@@ -26924,7 +27144,7 @@ var PlaybackrateOption = ({ rate, onSelect, selectedRate, keyboardSelectedRate }
|
|
|
26924
27144
|
}, rate);
|
|
26925
27145
|
};
|
|
26926
27146
|
var PlaybackPopup = ({ setIsComponentVisible, playbackRates, canvasSize }) => {
|
|
26927
|
-
const { setPlaybackRate, playbackRate } = Internals.
|
|
27147
|
+
const { setPlaybackRate, playbackRate } = Internals.usePlaybackRate();
|
|
26928
27148
|
const [keyboardSelectedRate, setKeyboardSelectedRate] = useState82(playbackRate);
|
|
26929
27149
|
useEffect92(() => {
|
|
26930
27150
|
const listener = (e) => {
|
|
@@ -26968,7 +27188,7 @@ var PlaybackPopup = ({ setIsComponentVisible, playbackRates, canvasSize }) => {
|
|
|
26968
27188
|
setPlaybackRate(rate);
|
|
26969
27189
|
setIsComponentVisible(false);
|
|
26970
27190
|
}, [setIsComponentVisible, setPlaybackRate]);
|
|
26971
|
-
const playbackPopup =
|
|
27191
|
+
const playbackPopup = useMemo52(() => {
|
|
26972
27192
|
return {
|
|
26973
27193
|
position: "absolute",
|
|
26974
27194
|
right: 0,
|
|
@@ -27026,7 +27246,7 @@ var button = {
|
|
|
27026
27246
|
};
|
|
27027
27247
|
var PlaybackrateControl = ({ playbackRates, canvasSize }) => {
|
|
27028
27248
|
const { ref, isComponentVisible, setIsComponentVisible } = useComponentVisible(false);
|
|
27029
|
-
const { playbackRate } = Internals.
|
|
27249
|
+
const { playbackRate } = Internals.usePlaybackRate();
|
|
27030
27250
|
const onClick = useCallback62((e) => {
|
|
27031
27251
|
e.stopPropagation();
|
|
27032
27252
|
e.preventDefault();
|
|
@@ -28143,6 +28363,7 @@ var PLAYER_COMP_ID = "player-comp";
|
|
|
28143
28363
|
var SharedPlayerContexts = ({
|
|
28144
28364
|
children,
|
|
28145
28365
|
timelineContext,
|
|
28366
|
+
playbackRateContext,
|
|
28146
28367
|
fps,
|
|
28147
28368
|
compositionHeight,
|
|
28148
28369
|
compositionWidth,
|
|
@@ -28243,23 +28464,26 @@ var SharedPlayerContexts = ({
|
|
|
28243
28464
|
children: /* @__PURE__ */ jsx133(Internals.CanUseRemotionHooksProvider, {
|
|
28244
28465
|
children: /* @__PURE__ */ jsx133(Internals.AbsoluteTimeContext.Provider, {
|
|
28245
28466
|
value: timelineContext,
|
|
28246
|
-
children: /* @__PURE__ */ jsx133(Internals.
|
|
28247
|
-
value:
|
|
28248
|
-
children: /* @__PURE__ */ jsx133(Internals.
|
|
28249
|
-
value:
|
|
28250
|
-
children: /* @__PURE__ */ jsx133(Internals.
|
|
28251
|
-
|
|
28252
|
-
|
|
28253
|
-
|
|
28254
|
-
children: /* @__PURE__ */ jsx133(Internals.
|
|
28255
|
-
value:
|
|
28256
|
-
children: /* @__PURE__ */ jsx133(Internals.
|
|
28257
|
-
|
|
28258
|
-
|
|
28259
|
-
|
|
28260
|
-
|
|
28261
|
-
|
|
28262
|
-
children
|
|
28467
|
+
children: /* @__PURE__ */ jsx133(Internals.PlaybackRateContext.Provider, {
|
|
28468
|
+
value: playbackRateContext,
|
|
28469
|
+
children: /* @__PURE__ */ jsx133(Internals.TimelineContext.Provider, {
|
|
28470
|
+
value: timelineContext,
|
|
28471
|
+
children: /* @__PURE__ */ jsx133(Internals.CompositionManager.Provider, {
|
|
28472
|
+
value: compositionManagerContext,
|
|
28473
|
+
children: /* @__PURE__ */ jsx133(Internals.PrefetchProvider, {
|
|
28474
|
+
children: /* @__PURE__ */ jsx133(Internals.DurationsContextProvider, {
|
|
28475
|
+
children: /* @__PURE__ */ jsx133(Internals.MediaVolumeContext.Provider, {
|
|
28476
|
+
value: mediaVolumeContextValue,
|
|
28477
|
+
children: /* @__PURE__ */ jsx133(Internals.SetMediaVolumeContext.Provider, {
|
|
28478
|
+
value: setMediaVolumeContextValue,
|
|
28479
|
+
children: /* @__PURE__ */ jsx133(Internals.BufferingProvider, {
|
|
28480
|
+
children: /* @__PURE__ */ jsx133(Internals.SharedAudioContextProvider, {
|
|
28481
|
+
audioLatencyHint,
|
|
28482
|
+
audioEnabled,
|
|
28483
|
+
children: /* @__PURE__ */ jsx133(Internals.SharedAudioTagsContextProvider, {
|
|
28484
|
+
numberOfAudioTags: numberOfSharedAudioTags,
|
|
28485
|
+
children
|
|
28486
|
+
})
|
|
28263
28487
|
})
|
|
28264
28488
|
})
|
|
28265
28489
|
})
|
|
@@ -28531,14 +28755,16 @@ var PlayerFn = ({
|
|
|
28531
28755
|
frame,
|
|
28532
28756
|
playing,
|
|
28533
28757
|
rootId,
|
|
28534
|
-
playbackRate: currentPlaybackRate,
|
|
28535
28758
|
imperativePlaying,
|
|
28536
|
-
setPlaybackRate: (rate) => {
|
|
28537
|
-
setCurrentPlaybackRate(rate);
|
|
28538
|
-
},
|
|
28539
28759
|
audioAndVideoTags
|
|
28540
28760
|
};
|
|
28541
|
-
}, [frame,
|
|
28761
|
+
}, [frame, playing, rootId]);
|
|
28762
|
+
const playbackRateContextValue = useMemo142(() => {
|
|
28763
|
+
return {
|
|
28764
|
+
playbackRate: currentPlaybackRate,
|
|
28765
|
+
setPlaybackRate: setCurrentPlaybackRate
|
|
28766
|
+
};
|
|
28767
|
+
}, [currentPlaybackRate]);
|
|
28542
28768
|
const setTimelineContextValue = useMemo142(() => {
|
|
28543
28769
|
return {
|
|
28544
28770
|
setFrame,
|
|
@@ -28559,6 +28785,7 @@ var PlayerFn = ({
|
|
|
28559
28785
|
return /* @__PURE__ */ jsx143(Internals.IsPlayerContextProvider, {
|
|
28560
28786
|
children: /* @__PURE__ */ jsx143(SharedPlayerContexts, {
|
|
28561
28787
|
timelineContext: timelineContextValue,
|
|
28788
|
+
playbackRateContext: playbackRateContextValue,
|
|
28562
28789
|
component,
|
|
28563
28790
|
compositionHeight,
|
|
28564
28791
|
compositionWidth,
|
|
@@ -28636,7 +28863,7 @@ var useThumbnail = () => {
|
|
|
28636
28863
|
}, [emitter]);
|
|
28637
28864
|
return returnValue;
|
|
28638
28865
|
};
|
|
28639
|
-
var reactVersion2 =
|
|
28866
|
+
var reactVersion2 = React133.version.split(".")[0];
|
|
28640
28867
|
if (reactVersion2 === "0") {
|
|
28641
28868
|
throw new Error(`Version ${reactVersion2} of "react" is not supported by Remotion`);
|
|
28642
28869
|
}
|
|
@@ -28790,14 +29017,18 @@ var ThumbnailFn = ({
|
|
|
28790
29017
|
imperativePlaying: {
|
|
28791
29018
|
current: false
|
|
28792
29019
|
},
|
|
28793
|
-
playbackRate: 1,
|
|
28794
|
-
setPlaybackRate: () => {
|
|
28795
|
-
throw new Error("thumbnail");
|
|
28796
|
-
},
|
|
28797
29020
|
audioAndVideoTags: { current: [] }
|
|
28798
29021
|
};
|
|
28799
29022
|
return value;
|
|
28800
29023
|
}, [frameToDisplay, thumbnailId]);
|
|
29024
|
+
const playbackRateContext = useMemo172(() => {
|
|
29025
|
+
return {
|
|
29026
|
+
playbackRate: 1,
|
|
29027
|
+
setPlaybackRate: () => {
|
|
29028
|
+
throw new Error("thumbnail");
|
|
29029
|
+
}
|
|
29030
|
+
};
|
|
29031
|
+
}, []);
|
|
28801
29032
|
useImperativeHandle42(ref, () => rootRef.current, []);
|
|
28802
29033
|
const Component = Internals.useLazyComponent({
|
|
28803
29034
|
compProps: componentProps,
|
|
@@ -28811,6 +29042,7 @@ var ThumbnailFn = ({
|
|
|
28811
29042
|
return /* @__PURE__ */ jsx163(Internals.IsPlayerContextProvider, {
|
|
28812
29043
|
children: /* @__PURE__ */ jsx163(SharedPlayerContexts, {
|
|
28813
29044
|
timelineContext: timelineState,
|
|
29045
|
+
playbackRateContext,
|
|
28814
29046
|
component: Component,
|
|
28815
29047
|
compositionHeight,
|
|
28816
29048
|
compositionWidth,
|
|
@@ -28845,8 +29077,8 @@ var Thumbnail = forward2(ThumbnailFn);
|
|
|
28845
29077
|
// src/components/homepage/Demo/index.tsx
|
|
28846
29078
|
import {
|
|
28847
29079
|
useCallback as useCallback49,
|
|
28848
|
-
useEffect as
|
|
28849
|
-
useMemo as
|
|
29080
|
+
useEffect as useEffect57,
|
|
29081
|
+
useMemo as useMemo64,
|
|
28850
29082
|
useRef as useRef53,
|
|
28851
29083
|
useState as useState56
|
|
28852
29084
|
} from "react";
|
|
@@ -29597,7 +29829,7 @@ var UNDERLAY_RED = curriedTransparentize$1(0.9, RED);
|
|
|
29597
29829
|
var BLUE_TEXT = curriedDarken$1(0.3, "#42e9f5");
|
|
29598
29830
|
|
|
29599
29831
|
// src/components/homepage/layout/use-color-mode.tsx
|
|
29600
|
-
import React57, { useContext as
|
|
29832
|
+
import React57, { useContext as useContext46, useMemo as useMemo53 } from "react";
|
|
29601
29833
|
import { jsx as jsx57 } from "react/jsx-runtime";
|
|
29602
29834
|
var Context = React57.createContext(undefined);
|
|
29603
29835
|
var ColorModeProvider = ({
|
|
@@ -29605,7 +29837,7 @@ var ColorModeProvider = ({
|
|
|
29605
29837
|
colorMode,
|
|
29606
29838
|
setColorMode
|
|
29607
29839
|
}) => {
|
|
29608
|
-
const value =
|
|
29840
|
+
const value = useMemo53(() => {
|
|
29609
29841
|
return { colorMode, setColorMode };
|
|
29610
29842
|
}, [colorMode, setColorMode]);
|
|
29611
29843
|
return /* @__PURE__ */ jsx57(Context.Provider, {
|
|
@@ -29614,7 +29846,7 @@ var ColorModeProvider = ({
|
|
|
29614
29846
|
});
|
|
29615
29847
|
};
|
|
29616
29848
|
function useColorMode() {
|
|
29617
|
-
const context =
|
|
29849
|
+
const context = useContext46(Context);
|
|
29618
29850
|
if (context === null || context === undefined) {
|
|
29619
29851
|
throw new Error("ColorModeProvider");
|
|
29620
29852
|
}
|
|
@@ -29623,14 +29855,14 @@ function useColorMode() {
|
|
|
29623
29855
|
|
|
29624
29856
|
// ../media/dist/esm/index.mjs
|
|
29625
29857
|
import { useState as useState312 } from "react";
|
|
29626
|
-
import { useMemo as
|
|
29627
|
-
import { useContext as useContext212, useEffect as
|
|
29858
|
+
import { useMemo as useMemo311 } from "react";
|
|
29859
|
+
import { useContext as useContext212, useEffect as useEffect43, useMemo as useMemo55, useRef as useRef44, useState as useState41 } from "react";
|
|
29628
29860
|
import { ALL_FORMATS, Input as Input2, UrlSource } from "mediabunny";
|
|
29629
29861
|
import { AudioBufferSink, InputDisposedError } from "mediabunny";
|
|
29630
29862
|
import { CanvasSink } from "mediabunny";
|
|
29631
|
-
import { useContext as
|
|
29863
|
+
import { useContext as useContext48, useLayoutEffect as useLayoutEffect18 } from "react";
|
|
29632
29864
|
import { jsx as jsx58 } from "react/jsx-runtime";
|
|
29633
|
-
import { useContext as
|
|
29865
|
+
import { useContext as useContext311, useLayoutEffect as useLayoutEffect24, useMemo as useMemo213, useState as useState210 } from "react";
|
|
29634
29866
|
import React211 from "react";
|
|
29635
29867
|
import {
|
|
29636
29868
|
ALL_FORMATS as ALL_FORMATS2,
|
|
@@ -29646,8 +29878,8 @@ import { jsx as jsx216 } from "react/jsx-runtime";
|
|
|
29646
29878
|
import { jsx as jsx315 } from "react/jsx-runtime";
|
|
29647
29879
|
import { useMemo as useMemo63, useState as useState63 } from "react";
|
|
29648
29880
|
import {
|
|
29649
|
-
useContext as
|
|
29650
|
-
useEffect as
|
|
29881
|
+
useContext as useContext47,
|
|
29882
|
+
useEffect as useEffect212,
|
|
29651
29883
|
useLayoutEffect as useLayoutEffect34,
|
|
29652
29884
|
useMemo as useMemo412,
|
|
29653
29885
|
useRef as useRef210,
|
|
@@ -29657,7 +29889,7 @@ import { jsx as jsx412 } from "react/jsx-runtime";
|
|
|
29657
29889
|
import {
|
|
29658
29890
|
useContext as useContext53,
|
|
29659
29891
|
useLayoutEffect as useLayoutEffect43,
|
|
29660
|
-
useMemo as
|
|
29892
|
+
useMemo as useMemo54,
|
|
29661
29893
|
useRef as useRef312,
|
|
29662
29894
|
useState as useState53
|
|
29663
29895
|
} from "react";
|
|
@@ -30452,65 +30684,90 @@ var makeNonceManager = () => {
|
|
|
30452
30684
|
createAsyncOperation
|
|
30453
30685
|
};
|
|
30454
30686
|
};
|
|
30687
|
+
var BUFFER_SIZE = 3;
|
|
30455
30688
|
var canvasesAheadOfTime = (videoSink, startTimestamp) => {
|
|
30456
30689
|
const iterator = videoSink.canvases(startTimestamp);
|
|
30457
|
-
|
|
30458
|
-
let
|
|
30459
|
-
|
|
30460
|
-
|
|
30461
|
-
|
|
30462
|
-
|
|
30463
|
-
|
|
30690
|
+
const buffer = [];
|
|
30691
|
+
let chaining = false;
|
|
30692
|
+
let reachedEnd = false;
|
|
30693
|
+
let closed = false;
|
|
30694
|
+
let inFlight = null;
|
|
30695
|
+
const closeFrame = (frame) => {
|
|
30696
|
+
frame.close?.();
|
|
30697
|
+
};
|
|
30698
|
+
const fillNext = () => {
|
|
30699
|
+
if (chaining || reachedEnd || closed)
|
|
30700
|
+
return;
|
|
30701
|
+
if (buffer.length >= BUFFER_SIZE)
|
|
30702
|
+
return;
|
|
30703
|
+
chaining = true;
|
|
30704
|
+
const slot = { promise: iterator.next(), resolved: null };
|
|
30705
|
+
buffer.push(slot);
|
|
30706
|
+
inFlight = slot.promise.then((result) => {
|
|
30707
|
+
slot.resolved = result;
|
|
30708
|
+
chaining = false;
|
|
30709
|
+
inFlight = null;
|
|
30710
|
+
if (result.done) {
|
|
30711
|
+
reachedEnd = true;
|
|
30712
|
+
return;
|
|
30713
|
+
}
|
|
30714
|
+
if (closed) {
|
|
30715
|
+
closeFrame(result.value);
|
|
30716
|
+
return;
|
|
30464
30717
|
}
|
|
30718
|
+
fillNext();
|
|
30465
30719
|
}, () => {
|
|
30466
|
-
|
|
30720
|
+
chaining = false;
|
|
30721
|
+
inFlight = null;
|
|
30467
30722
|
});
|
|
30468
30723
|
};
|
|
30469
|
-
|
|
30470
|
-
const advance2 = () => {
|
|
30471
|
-
inFlight = iterator.next();
|
|
30472
|
-
resolved = null;
|
|
30473
|
-
trackResolution();
|
|
30474
|
-
};
|
|
30724
|
+
fillNext();
|
|
30475
30725
|
const next = () => {
|
|
30476
|
-
|
|
30477
|
-
|
|
30726
|
+
const slot = buffer.shift();
|
|
30727
|
+
fillNext();
|
|
30728
|
+
if (!slot) {
|
|
30729
|
+
if (reachedEnd || closed) {
|
|
30730
|
+
return { type: "ready", frame: null };
|
|
30731
|
+
}
|
|
30732
|
+
const chain = inFlight;
|
|
30733
|
+
return {
|
|
30734
|
+
type: "pending",
|
|
30735
|
+
wait: async () => {
|
|
30736
|
+
await chain;
|
|
30737
|
+
const next2 = buffer.shift();
|
|
30738
|
+
fillNext();
|
|
30739
|
+
if (!next2)
|
|
30740
|
+
return null;
|
|
30741
|
+
if (next2.resolved) {
|
|
30742
|
+
return next2.resolved.done ? null : next2.resolved.value;
|
|
30743
|
+
}
|
|
30744
|
+
const result = await next2.promise;
|
|
30745
|
+
return result.done ? null : result.value;
|
|
30746
|
+
}
|
|
30747
|
+
};
|
|
30748
|
+
}
|
|
30749
|
+
if (slot.resolved) {
|
|
30750
|
+
if (slot.resolved.done) {
|
|
30478
30751
|
return { type: "ready", frame: null };
|
|
30479
30752
|
}
|
|
30480
|
-
|
|
30481
|
-
advance2();
|
|
30482
|
-
return { type: "ready", frame };
|
|
30753
|
+
return { type: "ready", frame: slot.resolved.value };
|
|
30483
30754
|
}
|
|
30484
|
-
const captured = inFlight;
|
|
30485
30755
|
return {
|
|
30486
30756
|
type: "pending",
|
|
30487
30757
|
wait: async () => {
|
|
30488
|
-
const result = await
|
|
30489
|
-
if (captured === inFlight && !result.done) {
|
|
30490
|
-
advance2();
|
|
30491
|
-
}
|
|
30758
|
+
const result = await slot.promise;
|
|
30492
30759
|
return result.done ? null : result.value;
|
|
30493
30760
|
}
|
|
30494
30761
|
};
|
|
30495
30762
|
};
|
|
30496
|
-
const closeFrame = (frame) => {
|
|
30497
|
-
frame.close?.();
|
|
30498
|
-
};
|
|
30499
30763
|
const closeIterator = async () => {
|
|
30500
|
-
|
|
30501
|
-
|
|
30502
|
-
|
|
30764
|
+
closed = true;
|
|
30765
|
+
for (const slot of buffer) {
|
|
30766
|
+
if (slot.resolved && !slot.resolved.done) {
|
|
30767
|
+
closeFrame(slot.resolved.value);
|
|
30503
30768
|
}
|
|
30504
|
-
} else {
|
|
30505
|
-
const captured = inFlight;
|
|
30506
|
-
captured.then((result) => {
|
|
30507
|
-
if (!result.done) {
|
|
30508
|
-
closeFrame(result.value);
|
|
30509
|
-
}
|
|
30510
|
-
}, () => {
|
|
30511
|
-
return;
|
|
30512
|
-
});
|
|
30513
30769
|
}
|
|
30770
|
+
buffer.length = 0;
|
|
30514
30771
|
await iterator.return();
|
|
30515
30772
|
};
|
|
30516
30773
|
return { next, closeIterator };
|
|
@@ -31374,7 +31631,7 @@ var useCommonEffects = ({
|
|
|
31374
31631
|
logLevel,
|
|
31375
31632
|
label: label3
|
|
31376
31633
|
}) => {
|
|
31377
|
-
const sharedAudioContext =
|
|
31634
|
+
const sharedAudioContext = useContext48(Internals.SharedAudioContext);
|
|
31378
31635
|
useLayoutEffect18(() => {
|
|
31379
31636
|
const mediaPlayer = mediaPlayerRef.current;
|
|
31380
31637
|
if (!mediaPlayer)
|
|
@@ -31536,8 +31793,7 @@ var AudioForPreviewAssertedShowing = ({
|
|
|
31536
31793
|
const [mediaPlayerReady, setMediaPlayerReady] = useState41(false);
|
|
31537
31794
|
const [shouldFallbackToNativeAudio, setShouldFallbackToNativeAudio] = useState41(false);
|
|
31538
31795
|
const [playing] = Timeline.usePlayingState();
|
|
31539
|
-
const
|
|
31540
|
-
const globalPlaybackRate = timelineContext.playbackRate;
|
|
31796
|
+
const { playbackRate: globalPlaybackRate } = Internals.usePlaybackRate();
|
|
31541
31797
|
const sharedAudioContext = useContext212(SharedAudioContext2);
|
|
31542
31798
|
const buffer = useBufferState();
|
|
31543
31799
|
const [mediaMuted] = useMediaMutedState2();
|
|
@@ -31600,7 +31856,7 @@ var AudioForPreviewAssertedShowing = ({
|
|
|
31600
31856
|
logLevel,
|
|
31601
31857
|
label: "AudioForPreview"
|
|
31602
31858
|
});
|
|
31603
|
-
|
|
31859
|
+
useEffect43(() => {
|
|
31604
31860
|
if (!sharedAudioContext)
|
|
31605
31861
|
return;
|
|
31606
31862
|
if (!sharedAudioContext.audioContext)
|
|
@@ -31788,7 +32044,7 @@ var AudioForPreview2 = ({
|
|
|
31788
32044
|
const frame = useCurrentFrame();
|
|
31789
32045
|
const videoConfig = useVideoConfig();
|
|
31790
32046
|
const currentTime = frame / videoConfig.fps;
|
|
31791
|
-
const showShow =
|
|
32047
|
+
const showShow = useMemo55(() => {
|
|
31792
32048
|
return getTimeInSeconds({
|
|
31793
32049
|
unloopedTimeInSeconds: currentTime,
|
|
31794
32050
|
playbackRate,
|
|
@@ -33651,7 +33907,7 @@ var AudioForRendering2 = ({
|
|
|
33651
33907
|
const frame = useCurrentFrame();
|
|
33652
33908
|
const absoluteFrame = Internals.useTimelinePosition();
|
|
33653
33909
|
const videoConfig = Internals.useUnsafeVideoConfig();
|
|
33654
|
-
const { registerRenderAsset, unregisterRenderAsset } =
|
|
33910
|
+
const { registerRenderAsset, unregisterRenderAsset } = useContext311(Internals.RenderAssetManager);
|
|
33655
33911
|
const startsAt = Internals.useMediaStartsAt();
|
|
33656
33912
|
const environment = useRemotionEnvironment();
|
|
33657
33913
|
if (!videoConfig) {
|
|
@@ -33663,7 +33919,7 @@ var AudioForRendering2 = ({
|
|
|
33663
33919
|
const { fps } = videoConfig;
|
|
33664
33920
|
const { delayRender: delayRender2, continueRender } = useDelayRender();
|
|
33665
33921
|
const [replaceWithHtml5Audio, setReplaceWithHtml5Audio] = useState210(false);
|
|
33666
|
-
const sequenceContext =
|
|
33922
|
+
const sequenceContext = useContext311(Internals.SequenceContext);
|
|
33667
33923
|
const id = useMemo213(() => `media-audio-${random(src)}-${sequenceContext?.cumulatedFrom}-${sequenceContext?.relativeFrom}-${sequenceContext?.durationInFrames}`, [
|
|
33668
33924
|
src,
|
|
33669
33925
|
sequenceContext?.cumulatedFrom,
|
|
@@ -33876,7 +34132,7 @@ var AudioInner = (props) => {
|
|
|
33876
34132
|
loop: props.loop ?? false
|
|
33877
34133
|
});
|
|
33878
34134
|
const [mediaDurationInSeconds, setMediaDurationInSeconds] = useState312(null);
|
|
33879
|
-
const loopDisplay =
|
|
34135
|
+
const loopDisplay = useMemo311(() => getLoopDisplay({
|
|
33880
34136
|
loop: props.loop ?? false,
|
|
33881
34137
|
mediaDurationInSeconds,
|
|
33882
34138
|
playbackRate: props.playbackRate ?? 1,
|
|
@@ -33893,7 +34149,7 @@ var AudioInner = (props) => {
|
|
|
33893
34149
|
sequenceDurationInFrames,
|
|
33894
34150
|
videoConfig.fps
|
|
33895
34151
|
]);
|
|
33896
|
-
const isMedia =
|
|
34152
|
+
const isMedia = useMemo311(() => ({
|
|
33897
34153
|
type: "audio",
|
|
33898
34154
|
data: basicInfo
|
|
33899
34155
|
}), [basicInfo]);
|
|
@@ -34015,9 +34271,8 @@ var VideoForPreviewAssertedShowing = ({
|
|
|
34015
34271
|
const [mediaPlayerReady, setMediaPlayerReady] = useState43(false);
|
|
34016
34272
|
const [shouldFallbackToNativeVideo, setShouldFallbackToNativeVideo] = useState43(false);
|
|
34017
34273
|
const [playing] = Timeline2.usePlayingState();
|
|
34018
|
-
const
|
|
34019
|
-
const
|
|
34020
|
-
const sharedAudioContext = useContext46(SharedAudioContext22);
|
|
34274
|
+
const { playbackRate: globalPlaybackRate } = Internals.usePlaybackRate();
|
|
34275
|
+
const sharedAudioContext = useContext47(SharedAudioContext22);
|
|
34021
34276
|
const buffer = useBufferState();
|
|
34022
34277
|
const [mediaMuted] = useMediaMutedState22();
|
|
34023
34278
|
const [mediaVolume] = useMediaVolumeState22();
|
|
@@ -34038,7 +34293,7 @@ var VideoForPreviewAssertedShowing = ({
|
|
|
34038
34293
|
effectChainStateRef.current = effectChainState;
|
|
34039
34294
|
const frameRef = useRef210(frame);
|
|
34040
34295
|
frameRef.current = frame;
|
|
34041
|
-
const parentSequence =
|
|
34296
|
+
const parentSequence = useContext47(SequenceContext22);
|
|
34042
34297
|
const isPremounting = Boolean(parentSequence?.premounting);
|
|
34043
34298
|
const isPostmounting = Boolean(parentSequence?.postmounting);
|
|
34044
34299
|
const sequenceOffset = ((parentSequence?.cumulatedFrom ?? 0) + (parentSequence?.relativeFrom ?? 0)) / videoConfig.fps;
|
|
@@ -34046,7 +34301,7 @@ var VideoForPreviewAssertedShowing = ({
|
|
|
34046
34301
|
const currentTimeRef = useRef210(currentTime);
|
|
34047
34302
|
currentTimeRef.current = currentTime;
|
|
34048
34303
|
const preloadedSrc = usePreload22(src);
|
|
34049
|
-
const buffering =
|
|
34304
|
+
const buffering = useContext47(Internals.BufferingContextReact);
|
|
34050
34305
|
if (!buffering) {
|
|
34051
34306
|
throw new Error("useMediaPlayback must be used inside a <BufferingContext>");
|
|
34052
34307
|
}
|
|
@@ -34098,7 +34353,7 @@ var VideoForPreviewAssertedShowing = ({
|
|
|
34098
34353
|
cacheVideoFrame(src, canvas);
|
|
34099
34354
|
};
|
|
34100
34355
|
}, [_experimentalInitiallyDrawCachedFrame, src]);
|
|
34101
|
-
|
|
34356
|
+
useEffect212(() => {
|
|
34102
34357
|
if (!sharedAudioContext)
|
|
34103
34358
|
return;
|
|
34104
34359
|
if (!sharedAudioContext.audioContext)
|
|
@@ -34378,7 +34633,7 @@ var VideoForRendering2 = ({
|
|
|
34378
34633
|
const { registerRenderAsset, unregisterRenderAsset } = useContext53(Internals.RenderAssetManager);
|
|
34379
34634
|
const startsAt = Internals.useMediaStartsAt();
|
|
34380
34635
|
const sequenceContext = useContext53(Internals.SequenceContext);
|
|
34381
|
-
const id =
|
|
34636
|
+
const id = useMemo54(() => `media-video-${random(src)}-${sequenceContext?.cumulatedFrom}-${sequenceContext?.relativeFrom}-${sequenceContext?.durationInFrames}`, [
|
|
34382
34637
|
src,
|
|
34383
34638
|
sequenceContext?.cumulatedFrom,
|
|
34384
34639
|
sequenceContext?.relativeFrom,
|
|
@@ -34571,10 +34826,10 @@ var VideoForRendering2 = ({
|
|
|
34571
34826
|
credentials
|
|
34572
34827
|
]);
|
|
34573
34828
|
warnAboutObjectFitInStyleOrClassName({ style: style2, className: className2, logLevel });
|
|
34574
|
-
const classNameValue =
|
|
34829
|
+
const classNameValue = useMemo54(() => {
|
|
34575
34830
|
return [Internals.OBJECTFIT_CONTAIN_CLASS_NAME, className2].filter(Internals.truthy).join(" ");
|
|
34576
34831
|
}, [className2]);
|
|
34577
|
-
const styleWithObjectFit =
|
|
34832
|
+
const styleWithObjectFit = useMemo54(() => {
|
|
34578
34833
|
return {
|
|
34579
34834
|
...style2,
|
|
34580
34835
|
objectFit: objectFitProp
|
|
@@ -34659,34 +34914,7 @@ var videoSchema = {
|
|
|
34659
34914
|
description: "Playback Rate"
|
|
34660
34915
|
},
|
|
34661
34916
|
loop: { type: "boolean", default: false, description: "Loop" },
|
|
34662
|
-
|
|
34663
|
-
type: "translate",
|
|
34664
|
-
step: 1,
|
|
34665
|
-
default: "0px 0px",
|
|
34666
|
-
description: "Position"
|
|
34667
|
-
},
|
|
34668
|
-
"style.scale": {
|
|
34669
|
-
type: "number",
|
|
34670
|
-
min: 0.05,
|
|
34671
|
-
max: 100,
|
|
34672
|
-
step: 0.01,
|
|
34673
|
-
default: 1,
|
|
34674
|
-
description: "Scale"
|
|
34675
|
-
},
|
|
34676
|
-
"style.rotate": {
|
|
34677
|
-
type: "rotation",
|
|
34678
|
-
step: 1,
|
|
34679
|
-
default: "0deg",
|
|
34680
|
-
description: "Rotation"
|
|
34681
|
-
},
|
|
34682
|
-
"style.opacity": {
|
|
34683
|
-
type: "number",
|
|
34684
|
-
min: 0,
|
|
34685
|
-
max: 1,
|
|
34686
|
-
step: 0.01,
|
|
34687
|
-
default: 1,
|
|
34688
|
-
description: "Opacity"
|
|
34689
|
-
}
|
|
34917
|
+
...Internals.sequenceStyleSchema
|
|
34690
34918
|
};
|
|
34691
34919
|
var InnerVideo = ({
|
|
34692
34920
|
src,
|
|
@@ -34915,13 +35143,13 @@ var Video = Internals.wrapInSchema(VideoInner, videoSchema);
|
|
|
34915
35143
|
Internals.addSequenceStackTraces(Video);
|
|
34916
35144
|
|
|
34917
35145
|
// src/components/homepage/Demo/Comp.tsx
|
|
34918
|
-
import { useCallback as useCallback41, useEffect as
|
|
35146
|
+
import { useCallback as useCallback41, useEffect as useEffect49, useMemo as useMemo58, useState as useState48 } from "react";
|
|
34919
35147
|
|
|
34920
35148
|
// src/components/homepage/Demo/Cards.tsx
|
|
34921
35149
|
import {
|
|
34922
35150
|
createRef as createRef4,
|
|
34923
35151
|
useCallback as useCallback40,
|
|
34924
|
-
useEffect as
|
|
35152
|
+
useEffect as useEffect48,
|
|
34925
35153
|
useRef as useRef49,
|
|
34926
35154
|
useState as useState47
|
|
34927
35155
|
} from "react";
|
|
@@ -35289,14 +35517,14 @@ var CurrentCountry = ({ theme, countryPaths, countryLabel }) => {
|
|
|
35289
35517
|
import {
|
|
35290
35518
|
forwardRef as forwardRef35,
|
|
35291
35519
|
useCallback as useCallback39,
|
|
35292
|
-
useEffect as
|
|
35520
|
+
useEffect as useEffect47,
|
|
35293
35521
|
useImperativeHandle as useImperativeHandle12,
|
|
35294
35522
|
useRef as useRef48
|
|
35295
35523
|
} from "react";
|
|
35296
35524
|
|
|
35297
35525
|
// ../lottie/dist/esm/index.mjs
|
|
35298
35526
|
import lottie from "lottie-web";
|
|
35299
|
-
import { useEffect as
|
|
35527
|
+
import { useEffect as useEffect45, useRef as useRef47, useState as useState44 } from "react";
|
|
35300
35528
|
import { jsx as jsx69 } from "react/jsx-runtime";
|
|
35301
35529
|
var getLottieMetadata = (animationData) => {
|
|
35302
35530
|
const width2 = animationData.w;
|
|
@@ -35372,14 +35600,14 @@ var Lottie = ({
|
|
|
35372
35600
|
onAnimationLoadedRef.current = onAnimationLoaded;
|
|
35373
35601
|
const { delayRender: delayRender2, continueRender } = useDelayRender();
|
|
35374
35602
|
const [handle] = useState44(() => delayRender2("Waiting for Lottie animation to load"));
|
|
35375
|
-
|
|
35603
|
+
useEffect45(() => {
|
|
35376
35604
|
return () => {
|
|
35377
35605
|
continueRender(handle);
|
|
35378
35606
|
};
|
|
35379
35607
|
}, [handle, continueRender]);
|
|
35380
35608
|
const frame = useCurrentFrame();
|
|
35381
35609
|
currentFrameRef.current = frame;
|
|
35382
|
-
|
|
35610
|
+
useEffect45(() => {
|
|
35383
35611
|
if (!containerRef.current) {
|
|
35384
35612
|
return;
|
|
35385
35613
|
}
|
|
@@ -35424,17 +35652,17 @@ var Lottie = ({
|
|
|
35424
35652
|
renderer,
|
|
35425
35653
|
continueRender
|
|
35426
35654
|
]);
|
|
35427
|
-
|
|
35655
|
+
useEffect45(() => {
|
|
35428
35656
|
if (animationRef.current && direction) {
|
|
35429
35657
|
animationRef.current.setDirection(direction === "backward" ? -1 : 1);
|
|
35430
35658
|
}
|
|
35431
35659
|
}, [direction]);
|
|
35432
|
-
|
|
35660
|
+
useEffect45(() => {
|
|
35433
35661
|
if (animationRef.current && playbackRate) {
|
|
35434
35662
|
animationRef.current.setSpeed(playbackRate);
|
|
35435
35663
|
}
|
|
35436
35664
|
}, [playbackRate]);
|
|
35437
|
-
|
|
35665
|
+
useEffect45(() => {
|
|
35438
35666
|
if (!animationRef.current) {
|
|
35439
35667
|
return;
|
|
35440
35668
|
}
|
|
@@ -35467,14 +35695,14 @@ var Lottie = ({
|
|
|
35467
35695
|
};
|
|
35468
35696
|
|
|
35469
35697
|
// src/components/homepage/Demo/DisplayedEmoji.tsx
|
|
35470
|
-
import { useEffect as
|
|
35698
|
+
import { useEffect as useEffect46, useMemo as useMemo56, useState as useState46 } from "react";
|
|
35471
35699
|
import { jsx as jsx70 } from "react/jsx-runtime";
|
|
35472
35700
|
var DisplayedEmoji = ({ emoji }) => {
|
|
35473
35701
|
const [data, setData] = useState46(null);
|
|
35474
35702
|
const { durationInFrames, fps } = useVideoConfig();
|
|
35475
35703
|
const [browser, setBrowser] = useState46(typeof document !== "undefined");
|
|
35476
35704
|
const { delayRender: delayRender2, continueRender, cancelRender: cancelRender2 } = useDelayRender();
|
|
35477
|
-
const src =
|
|
35705
|
+
const src = useMemo56(() => {
|
|
35478
35706
|
if (emoji === "melting") {
|
|
35479
35707
|
return "https://fonts.gstatic.com/s/e/notoemoji/latest/1fae0/lottie.json";
|
|
35480
35708
|
}
|
|
@@ -35487,7 +35715,7 @@ var DisplayedEmoji = ({ emoji }) => {
|
|
|
35487
35715
|
throw new Error("Unknown emoji");
|
|
35488
35716
|
}, [emoji]);
|
|
35489
35717
|
const [handle] = useState46(() => delayRender2("Loading emojis!"));
|
|
35490
|
-
|
|
35718
|
+
useEffect46(() => {
|
|
35491
35719
|
fetch(src).then((res) => res.json()).then((json) => {
|
|
35492
35720
|
setData({
|
|
35493
35721
|
duration: getLottieMetadata(json)?.durationInSeconds,
|
|
@@ -35498,7 +35726,7 @@ var DisplayedEmoji = ({ emoji }) => {
|
|
|
35498
35726
|
cancelRender2(err);
|
|
35499
35727
|
});
|
|
35500
35728
|
}, [handle, src, continueRender, cancelRender2]);
|
|
35501
|
-
|
|
35729
|
+
useEffect46(() => {
|
|
35502
35730
|
if (typeof document !== "undefined") {
|
|
35503
35731
|
setBrowser(true);
|
|
35504
35732
|
}
|
|
@@ -35594,7 +35822,7 @@ var EmojiCardRefFn = ({ emojiIndex }, ref) => {
|
|
|
35594
35822
|
transforms: transforms.current
|
|
35595
35823
|
});
|
|
35596
35824
|
}, []);
|
|
35597
|
-
|
|
35825
|
+
useEffect47(() => {
|
|
35598
35826
|
if (!ref1.current || !ref2.current || !ref3.current) {
|
|
35599
35827
|
return;
|
|
35600
35828
|
}
|
|
@@ -35611,7 +35839,7 @@ var EmojiCardRefFn = ({ emojiIndex }, ref) => {
|
|
|
35611
35839
|
onRight
|
|
35612
35840
|
};
|
|
35613
35841
|
}, [onLeft, onRight]);
|
|
35614
|
-
|
|
35842
|
+
useEffect47(() => {
|
|
35615
35843
|
if (!ref1.current || !ref2.current || !ref3.current) {
|
|
35616
35844
|
return;
|
|
35617
35845
|
}
|
|
@@ -35901,7 +36129,7 @@ var Temperature = ({ theme, city, temperatureInCelsius }) => {
|
|
|
35901
36129
|
};
|
|
35902
36130
|
|
|
35903
36131
|
// src/components/homepage/Demo/TrendingRepos.tsx
|
|
35904
|
-
import { useMemo as
|
|
36132
|
+
import { useMemo as useMemo57 } from "react";
|
|
35905
36133
|
import { jsx as jsx80, jsxs as jsxs21 } from "react/jsx-runtime";
|
|
35906
36134
|
var TrendingRepoItem = ({ repo, theme, number }) => {
|
|
35907
36135
|
const frame = useCurrentFrame();
|
|
@@ -35914,7 +36142,7 @@ var TrendingRepoItem = ({ repo, theme, number }) => {
|
|
|
35914
36142
|
},
|
|
35915
36143
|
delay: number * 10 + 20
|
|
35916
36144
|
});
|
|
35917
|
-
const item =
|
|
36145
|
+
const item = useMemo57(() => {
|
|
35918
36146
|
return {
|
|
35919
36147
|
lineHeight: 1.1,
|
|
35920
36148
|
fontFamily: "GTPlanar",
|
|
@@ -36026,7 +36254,7 @@ var Cards = ({
|
|
|
36026
36254
|
const positions = useRef49(getInitialPositions());
|
|
36027
36255
|
const shouldBePositions = useRef49(getInitialPositions());
|
|
36028
36256
|
const { isRendering } = useRemotionEnvironment();
|
|
36029
|
-
|
|
36257
|
+
useEffect48(() => {
|
|
36030
36258
|
const { current } = container4;
|
|
36031
36259
|
if (!current) {
|
|
36032
36260
|
return;
|
|
@@ -36121,7 +36349,7 @@ var HomepageVideoComp = ({
|
|
|
36121
36349
|
setRerenders(rerenders + 1);
|
|
36122
36350
|
updateCardOrder(newIndices);
|
|
36123
36351
|
}, [rerenders, updateCardOrder]);
|
|
36124
|
-
const emoji =
|
|
36352
|
+
const emoji = useMemo58(() => {
|
|
36125
36353
|
if ((emojiIndex + 1e4 * 3) % 3 === 1) {
|
|
36126
36354
|
return "melting";
|
|
36127
36355
|
}
|
|
@@ -36130,7 +36358,7 @@ var HomepageVideoComp = ({
|
|
|
36130
36358
|
}
|
|
36131
36359
|
return "partying-face";
|
|
36132
36360
|
}, [emojiIndex]);
|
|
36133
|
-
const audioSrc =
|
|
36361
|
+
const audioSrc = useMemo58(() => {
|
|
36134
36362
|
if (emoji === "fire") {
|
|
36135
36363
|
return fireAudio;
|
|
36136
36364
|
}
|
|
@@ -36139,7 +36367,7 @@ var HomepageVideoComp = ({
|
|
|
36139
36367
|
}
|
|
36140
36368
|
return sadAudio;
|
|
36141
36369
|
}, [emoji]);
|
|
36142
|
-
|
|
36370
|
+
useEffect49(() => {
|
|
36143
36371
|
const a = prefetch(fireAudio);
|
|
36144
36372
|
const b = prefetch(partyHornAudio);
|
|
36145
36373
|
const c = prefetch(sadAudio);
|
|
@@ -36215,7 +36443,7 @@ import {
|
|
|
36215
36443
|
import { BufferTarget, StreamTarget } from "mediabunny";
|
|
36216
36444
|
|
|
36217
36445
|
// ../core/dist/esm/version.mjs
|
|
36218
|
-
var VERSION2 = "4.0.
|
|
36446
|
+
var VERSION2 = "4.0.458";
|
|
36219
36447
|
|
|
36220
36448
|
// ../web-renderer/dist/esm/index.mjs
|
|
36221
36449
|
import { AudioSample, VideoSample } from "mediabunny";
|
|
@@ -37549,7 +37777,7 @@ var turnSvgIntoDrawable = (svg) => {
|
|
|
37549
37777
|
svg.style.color = originalColor;
|
|
37550
37778
|
return new Promise((resolve, reject) => {
|
|
37551
37779
|
const image = new Image;
|
|
37552
|
-
const url = `data:image/svg+xml;
|
|
37780
|
+
const url = `data:image/svg+xml;charset=utf-8,${encodeURIComponent(svgData)}`;
|
|
37553
37781
|
image.onload = function() {
|
|
37554
37782
|
resolve(image);
|
|
37555
37783
|
};
|
|
@@ -40951,7 +41179,7 @@ var Progress = ({ progress }) => {
|
|
|
40951
41179
|
};
|
|
40952
41180
|
|
|
40953
41181
|
// src/components/homepage/Demo/Spinner.tsx
|
|
40954
|
-
import { useMemo as
|
|
41182
|
+
import { useMemo as useMemo59 } from "react";
|
|
40955
41183
|
import { jsx as jsx95, jsxs as jsxs29, Fragment as Fragment14 } from "react/jsx-runtime";
|
|
40956
41184
|
var viewBox2 = 100;
|
|
40957
41185
|
var lines2 = 8;
|
|
@@ -40959,7 +41187,7 @@ var className2 = "__remotion_spinner_line";
|
|
|
40959
41187
|
var remotionSpinnerAnimation = "__remotion_spinner_animation";
|
|
40960
41188
|
var translated3 = "M 44 0 L 50 0 a 6 6 0 0 1 6 6 L 56 26 a 6 6 0 0 1 -6 6 L 50 32 a 6 6 0 0 1 -6 -6 L 44 6 a 6 6 0 0 1 6 -6 Z";
|
|
40961
41189
|
var Spinner2 = ({ size: size4, duration }) => {
|
|
40962
|
-
const style2 =
|
|
41190
|
+
const style2 = useMemo59(() => {
|
|
40963
41191
|
return {
|
|
40964
41192
|
width: size4,
|
|
40965
41193
|
height: size4
|
|
@@ -41221,13 +41449,13 @@ var DragAndDropNudge = () => {
|
|
|
41221
41449
|
};
|
|
41222
41450
|
|
|
41223
41451
|
// src/components/homepage/Demo/PlayerSeekBar.tsx
|
|
41224
|
-
import { useCallback as useCallback46, useEffect as
|
|
41452
|
+
import { useCallback as useCallback46, useEffect as useEffect51, useMemo as useMemo61, useRef as useRef50, useState as useState51 } from "react";
|
|
41225
41453
|
|
|
41226
41454
|
// src/components/homepage/layout/use-el-size.ts
|
|
41227
|
-
import { useCallback as useCallback45, useEffect as
|
|
41455
|
+
import { useCallback as useCallback45, useEffect as useEffect50, useMemo as useMemo60, useState as useState50 } from "react";
|
|
41228
41456
|
var useElementSize2 = (ref) => {
|
|
41229
41457
|
const [size4, setSize] = useState50(null);
|
|
41230
|
-
const observer =
|
|
41458
|
+
const observer = useMemo60(() => {
|
|
41231
41459
|
if (typeof ResizeObserver === "undefined") {
|
|
41232
41460
|
return;
|
|
41233
41461
|
}
|
|
@@ -41248,7 +41476,7 @@ var useElementSize2 = (ref) => {
|
|
|
41248
41476
|
height: rect[0].height
|
|
41249
41477
|
});
|
|
41250
41478
|
}, [ref]);
|
|
41251
|
-
|
|
41479
|
+
useEffect50(() => {
|
|
41252
41480
|
updateSize();
|
|
41253
41481
|
if (!observer) {
|
|
41254
41482
|
return;
|
|
@@ -41304,7 +41532,7 @@ var findBodyInWhichDivIsLocated2 = (div) => {
|
|
|
41304
41532
|
};
|
|
41305
41533
|
var useHoverState2 = (ref, hideControlsWhenPointerDoesntMove) => {
|
|
41306
41534
|
const [hovered, setHovered] = useState51(false);
|
|
41307
|
-
|
|
41535
|
+
useEffect51(() => {
|
|
41308
41536
|
const { current } = ref;
|
|
41309
41537
|
if (!current) {
|
|
41310
41538
|
return;
|
|
@@ -41355,7 +41583,7 @@ var PlayerSeekBar2 = ({
|
|
|
41355
41583
|
const size4 = useElementSize2(containerRef.current);
|
|
41356
41584
|
const [playing, setPlaying] = useState51(false);
|
|
41357
41585
|
const [frame, setFrame] = useState51(0);
|
|
41358
|
-
|
|
41586
|
+
useEffect51(() => {
|
|
41359
41587
|
const { current } = playerRef;
|
|
41360
41588
|
if (!current) {
|
|
41361
41589
|
return;
|
|
@@ -41368,7 +41596,7 @@ var PlayerSeekBar2 = ({
|
|
|
41368
41596
|
current.removeEventListener("frameupdate", onFrameUpdate);
|
|
41369
41597
|
};
|
|
41370
41598
|
}, [playerRef]);
|
|
41371
|
-
|
|
41599
|
+
useEffect51(() => {
|
|
41372
41600
|
const { current } = playerRef;
|
|
41373
41601
|
if (!current) {
|
|
41374
41602
|
return;
|
|
@@ -41429,7 +41657,7 @@ var PlayerSeekBar2 = ({
|
|
|
41429
41657
|
}
|
|
41430
41658
|
onSeekEnd();
|
|
41431
41659
|
}, [dragging, onSeekEnd, playerRef]);
|
|
41432
|
-
|
|
41660
|
+
useEffect51(() => {
|
|
41433
41661
|
if (!dragging.dragging) {
|
|
41434
41662
|
return;
|
|
41435
41663
|
}
|
|
@@ -41441,7 +41669,7 @@ var PlayerSeekBar2 = ({
|
|
|
41441
41669
|
body.removeEventListener("pointerup", onPointerUp);
|
|
41442
41670
|
};
|
|
41443
41671
|
}, [dragging.dragging, onPointerMove, onPointerUp]);
|
|
41444
|
-
const knobStyle =
|
|
41672
|
+
const knobStyle = useMemo61(() => {
|
|
41445
41673
|
return {
|
|
41446
41674
|
height: KNOB_SIZE3,
|
|
41447
41675
|
width: KNOB_SIZE3,
|
|
@@ -41455,7 +41683,7 @@ var PlayerSeekBar2 = ({
|
|
|
41455
41683
|
transition: "opacity 0.s ease"
|
|
41456
41684
|
};
|
|
41457
41685
|
}, [barHovered, durationInFrames, frame, width2]);
|
|
41458
|
-
const fillStyle =
|
|
41686
|
+
const fillStyle = useMemo61(() => {
|
|
41459
41687
|
return {
|
|
41460
41688
|
height: BAR_HEIGHT3,
|
|
41461
41689
|
backgroundColor: "var(--ifm-font-color-base)",
|
|
@@ -41464,7 +41692,7 @@ var PlayerSeekBar2 = ({
|
|
|
41464
41692
|
borderRadius: BAR_HEIGHT3 / 2
|
|
41465
41693
|
};
|
|
41466
41694
|
}, [durationInFrames, frame, inFrame]);
|
|
41467
|
-
const active =
|
|
41695
|
+
const active = useMemo61(() => {
|
|
41468
41696
|
return {
|
|
41469
41697
|
height: BAR_HEIGHT3,
|
|
41470
41698
|
backgroundColor: "var(--ifm-font-color-base)",
|
|
@@ -41499,7 +41727,7 @@ var PlayerSeekBar2 = ({
|
|
|
41499
41727
|
};
|
|
41500
41728
|
|
|
41501
41729
|
// src/components/homepage/Demo/PlayerVolume.tsx
|
|
41502
|
-
import { useCallback as useCallback47, useEffect as
|
|
41730
|
+
import { useCallback as useCallback47, useEffect as useEffect53, useRef as useRef51, useState as useState54 } from "react";
|
|
41503
41731
|
|
|
41504
41732
|
// src/components/homepage/Demo/icons.tsx
|
|
41505
41733
|
import { jsx as jsx101 } from "react/jsx-runtime";
|
|
@@ -41560,7 +41788,7 @@ var PlayerVolume = ({ playerRef }) => {
|
|
|
41560
41788
|
const [muted, setIsMuted] = useState54(() => playerRef.current?.isMuted() ?? true);
|
|
41561
41789
|
const [isHovered, setIsHovered] = useState54(false);
|
|
41562
41790
|
const timerRef = useRef51(null);
|
|
41563
|
-
|
|
41791
|
+
useEffect53(() => {
|
|
41564
41792
|
const { current } = playerRef;
|
|
41565
41793
|
if (!current) {
|
|
41566
41794
|
return;
|
|
@@ -41573,7 +41801,7 @@ var PlayerVolume = ({ playerRef }) => {
|
|
|
41573
41801
|
current.removeEventListener("mutechange", onMutedChange);
|
|
41574
41802
|
};
|
|
41575
41803
|
}, [playerRef]);
|
|
41576
|
-
|
|
41804
|
+
useEffect53(() => {
|
|
41577
41805
|
if (isHovered) {
|
|
41578
41806
|
document.body.style.userSelect = "none";
|
|
41579
41807
|
} else {
|
|
@@ -41618,7 +41846,7 @@ var PlayerVolume = ({ playerRef }) => {
|
|
|
41618
41846
|
};
|
|
41619
41847
|
|
|
41620
41848
|
// src/components/homepage/Demo/PlayPauseButton.tsx
|
|
41621
|
-
import React71, { useCallback as useCallback48, useEffect as
|
|
41849
|
+
import React71, { useCallback as useCallback48, useEffect as useEffect55 } from "react";
|
|
41622
41850
|
import { jsx as jsx107 } from "react/jsx-runtime";
|
|
41623
41851
|
var playerButtonStyle2 = {
|
|
41624
41852
|
appearance: "none",
|
|
@@ -41636,7 +41864,7 @@ var playerButtonStyle2 = {
|
|
|
41636
41864
|
};
|
|
41637
41865
|
var PlayPauseButton = ({ playerRef }) => {
|
|
41638
41866
|
const [playing, setPlaying] = React71.useState(true);
|
|
41639
|
-
|
|
41867
|
+
useEffect55(() => {
|
|
41640
41868
|
const { current } = playerRef;
|
|
41641
41869
|
if (!current) {
|
|
41642
41870
|
return;
|
|
@@ -41673,7 +41901,7 @@ var PlayPauseButton = ({ playerRef }) => {
|
|
|
41673
41901
|
};
|
|
41674
41902
|
|
|
41675
41903
|
// src/components/homepage/Demo/TimeDisplay.tsx
|
|
41676
|
-
import React73, { useEffect as
|
|
41904
|
+
import React73, { useEffect as useEffect56 } from "react";
|
|
41677
41905
|
import { jsx as jsx108 } from "react/jsx-runtime";
|
|
41678
41906
|
var formatTime2 = (timeInSeconds) => {
|
|
41679
41907
|
const minutes = Math.floor(timeInSeconds / 60);
|
|
@@ -41682,7 +41910,7 @@ var formatTime2 = (timeInSeconds) => {
|
|
|
41682
41910
|
};
|
|
41683
41911
|
var TimeDisplay = ({ fps, playerRef }) => {
|
|
41684
41912
|
const [time, setTime] = React73.useState(0);
|
|
41685
|
-
|
|
41913
|
+
useEffect56(() => {
|
|
41686
41914
|
const { current } = playerRef;
|
|
41687
41915
|
if (!current) {
|
|
41688
41916
|
return;
|
|
@@ -41853,7 +42081,7 @@ var Demo = () => {
|
|
|
41853
42081
|
const [cardOrder, setCardOrder] = useState56([0, 1, 2, 3]);
|
|
41854
42082
|
const [emojiIndex, setEmojiIndex] = useState56(0);
|
|
41855
42083
|
const [error2, setError] = useState56(false);
|
|
41856
|
-
|
|
42084
|
+
useEffect57(() => {
|
|
41857
42085
|
getDataAndProps().then((d2) => {
|
|
41858
42086
|
setData(d2);
|
|
41859
42087
|
}).catch((err) => {
|
|
@@ -41861,7 +42089,7 @@ var Demo = () => {
|
|
|
41861
42089
|
setError(true);
|
|
41862
42090
|
});
|
|
41863
42091
|
}, []);
|
|
41864
|
-
|
|
42092
|
+
useEffect57(() => {
|
|
41865
42093
|
const { current: playerRef } = ref;
|
|
41866
42094
|
if (!playerRef || !data2) {
|
|
41867
42095
|
return;
|
|
@@ -41877,7 +42105,7 @@ var Demo = () => {
|
|
|
41877
42105
|
const updateCardOrder = useCallback49((newCardOrder) => {
|
|
41878
42106
|
setCardOrder(newCardOrder);
|
|
41879
42107
|
}, []);
|
|
41880
|
-
const props =
|
|
42108
|
+
const props = useMemo64(() => {
|
|
41881
42109
|
return {
|
|
41882
42110
|
theme: colorMode,
|
|
41883
42111
|
onToggle: () => {
|
|
@@ -42006,16 +42234,16 @@ var ClearButton = (props) => {
|
|
|
42006
42234
|
|
|
42007
42235
|
// src/components/homepage/MuxVideo.tsx
|
|
42008
42236
|
import Hls2 from "hls.js";
|
|
42009
|
-
import { forwardRef as forwardRef38, useEffect as
|
|
42237
|
+
import { forwardRef as forwardRef38, useEffect as useEffect59, useImperativeHandle as useImperativeHandle14, useRef as useRef56 } from "react";
|
|
42010
42238
|
|
|
42011
42239
|
// src/components/homepage/VideoPlayerWithControls.tsx
|
|
42012
42240
|
import Hls from "hls.js";
|
|
42013
42241
|
import"plyr/dist/plyr.css";
|
|
42014
|
-
import { forwardRef as forwardRef37, useCallback as useCallback50, useEffect as
|
|
42242
|
+
import { forwardRef as forwardRef37, useCallback as useCallback50, useEffect as useEffect58, useRef as useRef55, useState as useState57 } from "react";
|
|
42015
42243
|
import { jsx as jsx116 } from "react/jsx-runtime";
|
|
42016
42244
|
var useCombinedRefs = function(...refs) {
|
|
42017
42245
|
const targetRef = useRef55(null);
|
|
42018
|
-
|
|
42246
|
+
useEffect58(() => {
|
|
42019
42247
|
refs.forEach((ref) => {
|
|
42020
42248
|
if (!ref)
|
|
42021
42249
|
return;
|
|
@@ -42044,12 +42272,12 @@ var VideoPlayerWithControls = forwardRef37(({ playbackId, poster, currentTime, o
|
|
|
42044
42272
|
console.error("Error getting img dimensions", event);
|
|
42045
42273
|
}
|
|
42046
42274
|
}, [onLoaded, onSize]);
|
|
42047
|
-
|
|
42275
|
+
useEffect58(() => {
|
|
42048
42276
|
const img = new Image;
|
|
42049
42277
|
img.onload = (evt) => onImageLoad(evt);
|
|
42050
42278
|
img.src = poster;
|
|
42051
42279
|
}, [onImageLoad, poster]);
|
|
42052
|
-
|
|
42280
|
+
useEffect58(() => {
|
|
42053
42281
|
const video = videoRef.current;
|
|
42054
42282
|
const src = `https://stream.mux.com/${playbackId}.m3u8`;
|
|
42055
42283
|
let hls;
|
|
@@ -42092,7 +42320,7 @@ var VideoPlayerWithControls = forwardRef37(({ playbackId, poster, currentTime, o
|
|
|
42092
42320
|
}
|
|
42093
42321
|
};
|
|
42094
42322
|
}, [playbackId, playerInitTime, videoError, videoRef]);
|
|
42095
|
-
|
|
42323
|
+
useEffect58(() => {
|
|
42096
42324
|
const video = videoRef.current;
|
|
42097
42325
|
if (currentTime && video) {
|
|
42098
42326
|
video.currentTime = currentTime;
|
|
@@ -42119,7 +42347,7 @@ var MuxVideoForward = ({ muxId, ...props }, ref) => {
|
|
|
42119
42347
|
const videoRef = useRef56(null);
|
|
42120
42348
|
const vidUrl = getVideoToPlayUrl(muxId);
|
|
42121
42349
|
useImperativeHandle14(ref, () => videoRef.current, []);
|
|
42122
|
-
|
|
42350
|
+
useEffect59(() => {
|
|
42123
42351
|
let hls;
|
|
42124
42352
|
if (videoRef.current) {
|
|
42125
42353
|
const { current } = videoRef;
|
|
@@ -42232,11 +42460,11 @@ var EditorStarterSection = () => {
|
|
|
42232
42460
|
var EditorStarterSection_default = EditorStarterSection;
|
|
42233
42461
|
|
|
42234
42462
|
// src/components/homepage/EvaluateRemotion.tsx
|
|
42235
|
-
import { useEffect as
|
|
42463
|
+
import { useEffect as useEffect60, useState as useState58 } from "react";
|
|
42236
42464
|
import { jsx as jsx119, jsxs as jsxs40 } from "react/jsx-runtime";
|
|
42237
42465
|
var EvaluateRemotionSection = () => {
|
|
42238
42466
|
const [dailyAvatars, setDailyAvatars] = useState58([]);
|
|
42239
|
-
|
|
42467
|
+
useEffect60(() => {
|
|
42240
42468
|
const avatars = experts.map((expert) => expert.image);
|
|
42241
42469
|
const selectedAvatars = [];
|
|
42242
42470
|
for (let i = 0;i < 3; i++) {
|
|
@@ -42333,7 +42561,7 @@ var EvaluateRemotionSection = () => {
|
|
|
42333
42561
|
var EvaluateRemotion_default = EvaluateRemotionSection;
|
|
42334
42562
|
|
|
42335
42563
|
// src/components/homepage/IfYouKnowReact.tsx
|
|
42336
|
-
import { useEffect as
|
|
42564
|
+
import { useEffect as useEffect61, useState as useState59 } from "react";
|
|
42337
42565
|
import { jsx as jsx120, jsxs as jsxs41 } from "react/jsx-runtime";
|
|
42338
42566
|
var isWebkit = () => {
|
|
42339
42567
|
if (typeof window === "undefined") {
|
|
@@ -42349,7 +42577,7 @@ var icon2 = {
|
|
|
42349
42577
|
};
|
|
42350
42578
|
var IfYouKnowReact = () => {
|
|
42351
42579
|
const [vid, setVid] = useState59("/img/compose.webm");
|
|
42352
|
-
|
|
42580
|
+
useEffect61(() => {
|
|
42353
42581
|
if (isWebkit()) {
|
|
42354
42582
|
setVid("/img/compose.mp4");
|
|
42355
42583
|
}
|
|
@@ -42496,7 +42724,7 @@ var NewsletterButton = () => {
|
|
|
42496
42724
|
};
|
|
42497
42725
|
|
|
42498
42726
|
// src/components/homepage/ParameterizeAndEdit.tsx
|
|
42499
|
-
import { useEffect as
|
|
42727
|
+
import { useEffect as useEffect63, useRef as useRef57, useState as useState61 } from "react";
|
|
42500
42728
|
import { jsx as jsx124, jsxs as jsxs46 } from "react/jsx-runtime";
|
|
42501
42729
|
var icon3 = {
|
|
42502
42730
|
height: 16,
|
|
@@ -42505,7 +42733,7 @@ var icon3 = {
|
|
|
42505
42733
|
var ParameterizeAndEdit = () => {
|
|
42506
42734
|
const ref = useRef57(null);
|
|
42507
42735
|
const [vid, setVid] = useState61("/img/editing-vp9-chrome.webm");
|
|
42508
|
-
|
|
42736
|
+
useEffect63(() => {
|
|
42509
42737
|
if (isWebkit()) {
|
|
42510
42738
|
setVid("/img/editing-safari.mp4");
|
|
42511
42739
|
}
|
|
@@ -42619,7 +42847,7 @@ var ParameterizeAndEdit = () => {
|
|
|
42619
42847
|
};
|
|
42620
42848
|
|
|
42621
42849
|
// src/components/homepage/RealMp4Videos.tsx
|
|
42622
|
-
import { useEffect as
|
|
42850
|
+
import { useEffect as useEffect65, useRef as useRef58, useState as useState64 } from "react";
|
|
42623
42851
|
import { jsx as jsx126, jsxs as jsxs47 } from "react/jsx-runtime";
|
|
42624
42852
|
var icon4 = {
|
|
42625
42853
|
height: 16,
|
|
@@ -42629,12 +42857,12 @@ var RealMP4Videos = () => {
|
|
|
42629
42857
|
const ref = useRef58(null);
|
|
42630
42858
|
const videoRef = useRef58(null);
|
|
42631
42859
|
const [vid, setVid] = useState64("/img/render-progress.webm");
|
|
42632
|
-
|
|
42860
|
+
useEffect65(() => {
|
|
42633
42861
|
if (isWebkit()) {
|
|
42634
42862
|
setVid("/img/render-progress.mp4");
|
|
42635
42863
|
}
|
|
42636
42864
|
}, []);
|
|
42637
|
-
|
|
42865
|
+
useEffect65(() => {
|
|
42638
42866
|
const { current } = ref;
|
|
42639
42867
|
if (!current) {
|
|
42640
42868
|
return;
|