@remotion/promo-pages 4.0.457 → 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 +792 -583
- package/dist/design.js +433 -367
- package/dist/experts/experts-data.js +124 -2
- package/dist/experts.js +570 -361
- package/dist/homepage/Pricing.js +436 -370
- package/dist/prompts/PromptsGallery.js +437 -371
- package/dist/prompts/PromptsShow.js +435 -369
- package/dist/prompts/PromptsSubmit.js +435 -369
- package/dist/team.js +433 -367
- package/dist/template-modal-content.js +443 -377
- package/dist/templates.js +433 -367
- package/package.json +13 -13
- package/public/img/freelancers/huang-chi-chang.jpg +0 -0
- package/dist/Users/jonathanburger/remotion/packages/promo-pages/dist/Homepage.css +0 -32
- package/dist/Users/jonathanburger/remotion/packages/promo-pages/dist/Homepage.js +0 -42672
- package/dist/Users/jonathanburger/remotion/packages/promo-pages/dist/design.js +0 -20460
- package/dist/Users/jonathanburger/remotion/packages/promo-pages/dist/experts/experts-data.js +0 -740
- package/dist/Users/jonathanburger/remotion/packages/promo-pages/dist/experts.js +0 -8778
- package/dist/Users/jonathanburger/remotion/packages/promo-pages/dist/homepage/Pricing.js +0 -21875
- package/dist/Users/jonathanburger/remotion/packages/promo-pages/dist/prompts/PromptsGallery.js +0 -20301
- package/dist/Users/jonathanburger/remotion/packages/promo-pages/dist/prompts/PromptsShow.css +0 -2578
- package/dist/Users/jonathanburger/remotion/packages/promo-pages/dist/prompts/PromptsShow.js +0 -40128
- package/dist/Users/jonathanburger/remotion/packages/promo-pages/dist/prompts/PromptsSubmit.css +0 -2578
- package/dist/Users/jonathanburger/remotion/packages/promo-pages/dist/prompts/PromptsSubmit.js +0 -40219
- package/dist/Users/jonathanburger/remotion/packages/promo-pages/dist/prompts/prompt-types.js +0 -0
- package/dist/Users/jonathanburger/remotion/packages/promo-pages/dist/team.js +0 -292
- package/dist/Users/jonathanburger/remotion/packages/promo-pages/dist/template-modal-content.css +0 -32
- package/dist/Users/jonathanburger/remotion/packages/promo-pages/dist/template-modal-content.js +0 -22044
- package/dist/Users/jonathanburger/remotion/packages/promo-pages/dist/templates.js +0 -21306
- 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 -134
- 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/InfoTooltip.d.ts +0 -6
- package/dist/components/homepage/InfoTooltip.js +0 -6
- 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,16 +970,17 @@ 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 {
|
|
@@ -866,12 +989,10 @@ import {
|
|
|
866
989
|
useCallback as useCallback7,
|
|
867
990
|
useContext as useContext17,
|
|
868
991
|
useLayoutEffect as useLayoutEffect3,
|
|
869
|
-
useMemo as
|
|
992
|
+
useMemo as useMemo17,
|
|
870
993
|
useRef as useRef9,
|
|
871
994
|
useState as useState8
|
|
872
995
|
} from "react";
|
|
873
|
-
import React15, { forwardRef as forwardRef4, useMemo as useMemo17 } from "react";
|
|
874
|
-
import { useContext as useContext16, useMemo as useMemo16, useState as useState7 } from "react";
|
|
875
996
|
import { jsx as jsx15 } from "react/jsx-runtime";
|
|
876
997
|
import { useContext as useContext18, useLayoutEffect as useLayoutEffect5, useState as useState10 } from "react";
|
|
877
998
|
import {
|
|
@@ -879,25 +1000,25 @@ import {
|
|
|
879
1000
|
useCallback as useCallback8,
|
|
880
1001
|
useImperativeHandle as useImperativeHandle3,
|
|
881
1002
|
useLayoutEffect as useLayoutEffect4,
|
|
882
|
-
useMemo as
|
|
1003
|
+
useMemo as useMemo18,
|
|
883
1004
|
useRef as useRef10,
|
|
884
1005
|
useState as useState9
|
|
885
1006
|
} from "react";
|
|
886
1007
|
import { jsx as jsx16 } from "react/jsx-runtime";
|
|
887
1008
|
import { forwardRef as forwardRef8, useCallback as useCallback13, useContext as useContext30 } from "react";
|
|
888
|
-
import React17, { createContext as createContext17, useMemo as
|
|
1009
|
+
import React17, { createContext as createContext17, useMemo as useMemo19 } from "react";
|
|
889
1010
|
import { jsx as jsx17 } from "react/jsx-runtime";
|
|
890
1011
|
import { useContext as useContext19 } from "react";
|
|
891
1012
|
import { createContext as createContext18, useEffect as useEffect7, useState as useState11 } from "react";
|
|
892
1013
|
import { jsx as jsx18 } from "react/jsx-runtime";
|
|
893
|
-
import { createContext as createContext19, useMemo as
|
|
1014
|
+
import { createContext as createContext19, useMemo as useMemo20, useReducer } from "react";
|
|
894
1015
|
import { jsx as jsx19 } from "react/jsx-runtime";
|
|
895
1016
|
import React23, {
|
|
896
1017
|
forwardRef as forwardRef6,
|
|
897
1018
|
useContext as useContext28,
|
|
898
|
-
useEffect as
|
|
1019
|
+
useEffect as useEffect15,
|
|
899
1020
|
useImperativeHandle as useImperativeHandle4,
|
|
900
|
-
useMemo as
|
|
1021
|
+
useMemo as useMemo28,
|
|
901
1022
|
useRef as useRef18,
|
|
902
1023
|
useState as useState16
|
|
903
1024
|
} from "react";
|
|
@@ -907,47 +1028,47 @@ import React20, {
|
|
|
907
1028
|
createRef as createRef2,
|
|
908
1029
|
useCallback as useCallback9,
|
|
909
1030
|
useContext as useContext20,
|
|
910
|
-
useMemo as
|
|
1031
|
+
useMemo as useMemo22,
|
|
911
1032
|
useRef as useRef11,
|
|
912
1033
|
useState as useState12
|
|
913
1034
|
} from "react";
|
|
914
|
-
import { useMemo as
|
|
1035
|
+
import { useEffect as useEffect8, useMemo as useMemo21 } from "react";
|
|
915
1036
|
import { jsx as jsx20, jsxs as jsxs22 } from "react/jsx-runtime";
|
|
916
1037
|
import { useRef as useRef12 } from "react";
|
|
917
|
-
import { useContext as useContext23, useEffect as
|
|
1038
|
+
import { useContext as useContext23, useEffect as useEffect9, useMemo as useMemo23, useState as useState13 } from "react";
|
|
918
1039
|
import { useContext as useContext22 } from "react";
|
|
919
1040
|
import {
|
|
920
1041
|
useCallback as useCallback12,
|
|
921
1042
|
useContext as useContext26,
|
|
922
|
-
useEffect as
|
|
1043
|
+
useEffect as useEffect13,
|
|
923
1044
|
useLayoutEffect as useLayoutEffect8,
|
|
924
1045
|
useRef as useRef17
|
|
925
1046
|
} from "react";
|
|
926
|
-
import { useCallback as useCallback11, useMemo as
|
|
927
|
-
import { useContext as useContext25, useMemo as
|
|
1047
|
+
import { useCallback as useCallback11, useMemo as useMemo26, useRef as useRef15 } from "react";
|
|
1048
|
+
import { useContext as useContext25, useMemo as useMemo25 } from "react";
|
|
928
1049
|
import React21, {
|
|
929
1050
|
useCallback as useCallback10,
|
|
930
1051
|
useContext as useContext24,
|
|
931
|
-
useEffect as
|
|
1052
|
+
useEffect as useEffect10,
|
|
932
1053
|
useLayoutEffect as useLayoutEffect7,
|
|
933
|
-
useMemo as
|
|
1054
|
+
useMemo as useMemo24,
|
|
934
1055
|
useRef as useRef14,
|
|
935
1056
|
useState as useState14
|
|
936
1057
|
} from "react";
|
|
937
1058
|
import { jsx as jsx21 } from "react/jsx-runtime";
|
|
938
1059
|
import React22 from "react";
|
|
939
|
-
import { useEffect as
|
|
940
|
-
import { useEffect as
|
|
941
|
-
import { useEffect as
|
|
942
|
-
import { createContext as createContext21, useContext as useContext27, useMemo 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";
|
|
943
1064
|
import { jsx as jsx222 } from "react/jsx-runtime";
|
|
944
1065
|
import {
|
|
945
1066
|
forwardRef as forwardRef7,
|
|
946
1067
|
useContext as useContext29,
|
|
947
|
-
useEffect as
|
|
1068
|
+
useEffect as useEffect16,
|
|
948
1069
|
useImperativeHandle as useImperativeHandle5,
|
|
949
1070
|
useLayoutEffect as useLayoutEffect9,
|
|
950
|
-
useMemo as
|
|
1071
|
+
useMemo as useMemo29,
|
|
951
1072
|
useRef as useRef19
|
|
952
1073
|
} from "react";
|
|
953
1074
|
import { jsx as jsx23 } from "react/jsx-runtime";
|
|
@@ -968,14 +1089,14 @@ import React28 from "react";
|
|
|
968
1089
|
import {
|
|
969
1090
|
useCallback as useCallback16,
|
|
970
1091
|
useImperativeHandle as useImperativeHandle7,
|
|
971
|
-
useMemo as
|
|
1092
|
+
useMemo as useMemo30,
|
|
972
1093
|
useRef as useRef21,
|
|
973
1094
|
useState as useState19
|
|
974
1095
|
} from "react";
|
|
975
1096
|
import { jsx as jsx27 } from "react/jsx-runtime";
|
|
976
1097
|
import React29 from "react";
|
|
977
|
-
import { useMemo as
|
|
978
|
-
import { createContext as createContext22, useContext as useContext32, useMemo as
|
|
1098
|
+
import { useMemo as useMemo32 } from "react";
|
|
1099
|
+
import { createContext as createContext22, useContext as useContext32, useMemo as useMemo31 } from "react";
|
|
979
1100
|
import { jsx as jsx28 } from "react/jsx-runtime";
|
|
980
1101
|
import { jsx as jsx29 } from "react/jsx-runtime";
|
|
981
1102
|
import React31 from "react";
|
|
@@ -985,27 +1106,27 @@ import { useCallback as useCallback18 } from "react";
|
|
|
985
1106
|
import {
|
|
986
1107
|
useCallback as useCallback17,
|
|
987
1108
|
useContext as useContext34,
|
|
988
|
-
useEffect as
|
|
1109
|
+
useEffect as useEffect17,
|
|
989
1110
|
useLayoutEffect as useLayoutEffect11,
|
|
990
|
-
useMemo as
|
|
1111
|
+
useMemo as useMemo33,
|
|
991
1112
|
useState as useState20
|
|
992
1113
|
} from "react";
|
|
993
1114
|
import { jsx as jsx30 } from "react/jsx-runtime";
|
|
994
1115
|
import React34, {
|
|
995
1116
|
forwardRef as forwardRef10,
|
|
996
1117
|
useContext as useContext35,
|
|
997
|
-
useEffect as
|
|
1118
|
+
useEffect as useEffect19,
|
|
998
1119
|
useImperativeHandle as useImperativeHandle8,
|
|
999
|
-
useMemo as
|
|
1120
|
+
useMemo as useMemo34,
|
|
1000
1121
|
useRef as useRef22,
|
|
1001
1122
|
useState as useState21
|
|
1002
1123
|
} from "react";
|
|
1003
|
-
import { useEffect as
|
|
1124
|
+
import { useEffect as useEffect18 } from "react";
|
|
1004
1125
|
import { jsx as jsx31 } from "react/jsx-runtime";
|
|
1005
1126
|
import { jsx as jsx32 } from "react/jsx-runtime";
|
|
1006
|
-
import React36, { useMemo as
|
|
1127
|
+
import React36, { useMemo as useMemo35 } from "react";
|
|
1007
1128
|
import { jsx as jsx33 } from "react/jsx-runtime";
|
|
1008
|
-
import { Children, forwardRef as forwardRef11, useMemo as
|
|
1129
|
+
import { Children, forwardRef as forwardRef11, useMemo as useMemo36 } from "react";
|
|
1009
1130
|
import React37 from "react";
|
|
1010
1131
|
import React38, { createContext as createContext24 } from "react";
|
|
1011
1132
|
import { jsx as jsx34 } from "react/jsx-runtime";
|
|
@@ -1015,10 +1136,10 @@ import { forwardRef as forwardRef13, useCallback as useCallback19, useContext as
|
|
|
1015
1136
|
import {
|
|
1016
1137
|
forwardRef as forwardRef12,
|
|
1017
1138
|
useContext as useContext36,
|
|
1018
|
-
useEffect as
|
|
1139
|
+
useEffect as useEffect20,
|
|
1019
1140
|
useImperativeHandle as useImperativeHandle9,
|
|
1020
1141
|
useLayoutEffect as useLayoutEffect12,
|
|
1021
|
-
useMemo as
|
|
1142
|
+
useMemo as useMemo37,
|
|
1022
1143
|
useRef as useRef23
|
|
1023
1144
|
} from "react";
|
|
1024
1145
|
import { jsx as jsx36 } from "react/jsx-runtime";
|
|
@@ -2097,6 +2218,7 @@ __export2(exports_timeline_position_state, {
|
|
|
2097
2218
|
useTimelinePosition: () => useTimelinePosition,
|
|
2098
2219
|
useTimelineContext: () => useTimelineContext,
|
|
2099
2220
|
usePlayingState: () => usePlayingState,
|
|
2221
|
+
usePlaybackRate: () => usePlaybackRate,
|
|
2100
2222
|
useAbsoluteTimelinePosition: () => useAbsoluteTimelinePosition,
|
|
2101
2223
|
persistCurrentFrame: () => persistCurrentFrame,
|
|
2102
2224
|
getInitialFrameState: () => getInitialFrameState,
|
|
@@ -2143,6 +2265,7 @@ var SetTimelineContext = createContext13({
|
|
|
2143
2265
|
}
|
|
2144
2266
|
});
|
|
2145
2267
|
var TimelineContext = createContext13(null);
|
|
2268
|
+
var PlaybackRateContext = createContext13(null);
|
|
2146
2269
|
var AbsoluteTimeContext = createContext13(null);
|
|
2147
2270
|
var TimelineContextProvider = ({ children, frameState }) => {
|
|
2148
2271
|
const [playing, setPlaying] = useState2(false);
|
|
@@ -2185,11 +2308,15 @@ var TimelineContextProvider = ({ children, frameState }) => {
|
|
|
2185
2308
|
playing,
|
|
2186
2309
|
imperativePlaying,
|
|
2187
2310
|
rootId: remotionRootId,
|
|
2188
|
-
playbackRate,
|
|
2189
|
-
setPlaybackRate,
|
|
2190
2311
|
audioAndVideoTags
|
|
2191
2312
|
};
|
|
2192
|
-
}, [frame,
|
|
2313
|
+
}, [frame, playing, remotionRootId]);
|
|
2314
|
+
const playbackRateContextValue = useMemo8(() => {
|
|
2315
|
+
return {
|
|
2316
|
+
playbackRate,
|
|
2317
|
+
setPlaybackRate
|
|
2318
|
+
};
|
|
2319
|
+
}, [playbackRate]);
|
|
2193
2320
|
const setTimelineContextValue = useMemo8(() => {
|
|
2194
2321
|
return {
|
|
2195
2322
|
setFrame,
|
|
@@ -2198,11 +2325,14 @@ var TimelineContextProvider = ({ children, frameState }) => {
|
|
|
2198
2325
|
}, []);
|
|
2199
2326
|
return /* @__PURE__ */ jsx8(AbsoluteTimeContext.Provider, {
|
|
2200
2327
|
value: timelineContextValue,
|
|
2201
|
-
children: /* @__PURE__ */ jsx8(
|
|
2202
|
-
value:
|
|
2203
|
-
children: /* @__PURE__ */ jsx8(
|
|
2204
|
-
value:
|
|
2205
|
-
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
|
+
})
|
|
2206
2336
|
})
|
|
2207
2337
|
})
|
|
2208
2338
|
});
|
|
@@ -2245,6 +2375,13 @@ var useTimelineContext = () => {
|
|
|
2245
2375
|
}
|
|
2246
2376
|
return state;
|
|
2247
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
|
+
};
|
|
2248
2385
|
var useTimelinePosition = () => {
|
|
2249
2386
|
const state = useTimelineContext();
|
|
2250
2387
|
return useTimelinePositionFromContext(state);
|
|
@@ -2536,7 +2673,7 @@ var getComponentsToAddStacksTo = () => componentsToAddStacksTo;
|
|
|
2536
2673
|
var addSequenceStackTraces = (component) => {
|
|
2537
2674
|
componentsToAddStacksTo.push(component);
|
|
2538
2675
|
};
|
|
2539
|
-
var VERSION = "4.0.
|
|
2676
|
+
var VERSION = "4.0.458";
|
|
2540
2677
|
var checkMultipleRemotionVersions = () => {
|
|
2541
2678
|
if (typeof globalThis === "undefined") {
|
|
2542
2679
|
return;
|
|
@@ -2707,6 +2844,54 @@ var Freeze = ({
|
|
|
2707
2844
|
var PremountContext = createContext14({
|
|
2708
2845
|
premountFramesRemaining: 0
|
|
2709
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
|
+
};
|
|
2710
2895
|
var SequenceManager = React12.createContext({
|
|
2711
2896
|
registerSequence: () => {
|
|
2712
2897
|
throw new Error("SequenceManagerContext not initialized");
|
|
@@ -2828,6 +3013,204 @@ var SequenceManagerProvider = ({ children, visualModeEnabled }) => {
|
|
|
2828
3013
|
});
|
|
2829
3014
|
};
|
|
2830
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
|
+
};
|
|
2831
3214
|
var RegularSequenceRefForwardingFunction = ({
|
|
2832
3215
|
from = 0,
|
|
2833
3216
|
durationInFrames = Infinity,
|
|
@@ -2846,8 +3229,8 @@ var RegularSequenceRefForwardingFunction = ({
|
|
|
2846
3229
|
...other
|
|
2847
3230
|
}, ref) => {
|
|
2848
3231
|
const { layout = "absolute-fill" } = other;
|
|
2849
|
-
const [id] =
|
|
2850
|
-
const parentSequence =
|
|
3232
|
+
const [id] = useState6(() => String(Math.random()));
|
|
3233
|
+
const parentSequence = useContext16(SequenceContext);
|
|
2851
3234
|
const { rootId } = useTimelineContext();
|
|
2852
3235
|
const cumulatedFrom = parentSequence ? parentSequence.cumulatedFrom + parentSequence.relativeFrom : 0;
|
|
2853
3236
|
const nonce = useNonce();
|
|
@@ -2855,7 +3238,7 @@ var RegularSequenceRefForwardingFunction = ({
|
|
|
2855
3238
|
throw new TypeError(`The layout prop of <Sequence /> expects either "absolute-fill" or "none", but you passed: ${layout}`);
|
|
2856
3239
|
}
|
|
2857
3240
|
if (layout === "none" && typeof other.style !== "undefined") {
|
|
2858
|
-
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));
|
|
2859
3242
|
}
|
|
2860
3243
|
if (typeof durationInFrames !== "number") {
|
|
2861
3244
|
throw new TypeError(`You passed to durationInFrames an argument of type ${typeof durationInFrames}, but it must be a number.`);
|
|
@@ -2873,15 +3256,15 @@ var RegularSequenceRefForwardingFunction = ({
|
|
|
2873
3256
|
const videoConfig = useVideoConfig();
|
|
2874
3257
|
const parentSequenceDuration = parentSequence ? Math.min(parentSequence.durationInFrames - from, durationInFrames) : durationInFrames;
|
|
2875
3258
|
const actualDurationInFrames = Math.max(0, Math.min(videoConfig.durationInFrames - from, parentSequenceDuration));
|
|
2876
|
-
const { registerSequence, unregisterSequence } =
|
|
2877
|
-
const { hidden } =
|
|
2878
|
-
const premounting =
|
|
3259
|
+
const { registerSequence, unregisterSequence } = useContext16(SequenceManager);
|
|
3260
|
+
const { hidden } = useContext16(SequenceVisibilityToggleContext);
|
|
3261
|
+
const premounting = useMemo16(() => {
|
|
2879
3262
|
return parentSequence?.premounting || Boolean(other._remotionInternalIsPremounting);
|
|
2880
3263
|
}, [other._remotionInternalIsPremounting, parentSequence?.premounting]);
|
|
2881
|
-
const postmounting =
|
|
3264
|
+
const postmounting = useMemo16(() => {
|
|
2882
3265
|
return parentSequence?.postmounting || Boolean(other._remotionInternalIsPostmounting);
|
|
2883
3266
|
}, [other._remotionInternalIsPostmounting, parentSequence?.postmounting]);
|
|
2884
|
-
const contextValue =
|
|
3267
|
+
const contextValue = useMemo16(() => {
|
|
2885
3268
|
return {
|
|
2886
3269
|
cumulatedFrom,
|
|
2887
3270
|
relativeFrom: from,
|
|
@@ -2908,7 +3291,7 @@ var RegularSequenceRefForwardingFunction = ({
|
|
|
2908
3291
|
premountDisplay,
|
|
2909
3292
|
postmountDisplay
|
|
2910
3293
|
]);
|
|
2911
|
-
const timelineClipName =
|
|
3294
|
+
const timelineClipName = useMemo16(() => {
|
|
2912
3295
|
return name ?? "";
|
|
2913
3296
|
}, [name]);
|
|
2914
3297
|
const env = useRemotionEnvironment();
|
|
@@ -2991,7 +3374,7 @@ var RegularSequenceRefForwardingFunction = ({
|
|
|
2991
3374
|
const endThreshold = Math.ceil(cumulatedFrom + from + durationInFrames - 1);
|
|
2992
3375
|
const content = absoluteFrame < cumulatedFrom + from ? null : absoluteFrame > endThreshold ? null : children;
|
|
2993
3376
|
const styleIfThere = other.layout === "none" ? undefined : other.style;
|
|
2994
|
-
const defaultStyle =
|
|
3377
|
+
const defaultStyle = useMemo16(() => {
|
|
2995
3378
|
return {
|
|
2996
3379
|
flexDirection: undefined,
|
|
2997
3380
|
...width ? { width } : {},
|
|
@@ -3016,9 +3399,9 @@ var RegularSequenceRefForwardingFunction = ({
|
|
|
3016
3399
|
})
|
|
3017
3400
|
});
|
|
3018
3401
|
};
|
|
3019
|
-
var RegularSequence =
|
|
3402
|
+
var RegularSequence = forwardRef3(RegularSequenceRefForwardingFunction);
|
|
3020
3403
|
var PremountedPostmountedSequenceRefForwardingFunction = (props, ref) => {
|
|
3021
|
-
const parentPremountContext =
|
|
3404
|
+
const parentPremountContext = useContext16(PremountContext);
|
|
3022
3405
|
const frame = useCurrentFrame() - parentPremountContext.premountFramesRemaining;
|
|
3023
3406
|
if (props.layout === "none") {
|
|
3024
3407
|
throw new Error('`<Sequence>` with `premountFor` and `postmountFor` props does not support layout="none"');
|
|
@@ -3038,7 +3421,7 @@ var PremountedPostmountedSequenceRefForwardingFunction = (props, ref) => {
|
|
|
3038
3421
|
const postmountingActive = frame > endThreshold && frame <= endThreshold + postmountFor;
|
|
3039
3422
|
const freezeFrame = premountingActive ? from : postmountingActive ? from + durationInFrames - 1 : 0;
|
|
3040
3423
|
const isFreezingActive = premountingActive || postmountingActive;
|
|
3041
|
-
const style =
|
|
3424
|
+
const style = useMemo16(() => {
|
|
3042
3425
|
return {
|
|
3043
3426
|
...passedStyle,
|
|
3044
3427
|
opacity: premountingActive || postmountingActive ? 0 : 1,
|
|
@@ -3056,7 +3439,7 @@ var PremountedPostmountedSequenceRefForwardingFunction = (props, ref) => {
|
|
|
3056
3439
|
return /* @__PURE__ */ jsx12(Freeze, {
|
|
3057
3440
|
frame: freezeFrame,
|
|
3058
3441
|
active: isFreezingActive,
|
|
3059
|
-
children: /* @__PURE__ */ jsx12(
|
|
3442
|
+
children: /* @__PURE__ */ jsx12(SequenceInner, {
|
|
3060
3443
|
ref,
|
|
3061
3444
|
from,
|
|
3062
3445
|
durationInFrames,
|
|
@@ -3069,7 +3452,7 @@ var PremountedPostmountedSequenceRefForwardingFunction = (props, ref) => {
|
|
|
3069
3452
|
})
|
|
3070
3453
|
});
|
|
3071
3454
|
};
|
|
3072
|
-
var PremountedPostmountedSequence =
|
|
3455
|
+
var PremountedPostmountedSequence = forwardRef3(PremountedPostmountedSequenceRefForwardingFunction);
|
|
3073
3456
|
var SequenceRefForwardingFunction = (props, ref) => {
|
|
3074
3457
|
const env = useRemotionEnvironment();
|
|
3075
3458
|
const { fps } = useVideoConfig();
|
|
@@ -3088,7 +3471,8 @@ var SequenceRefForwardingFunction = (props, ref) => {
|
|
|
3088
3471
|
ref
|
|
3089
3472
|
});
|
|
3090
3473
|
};
|
|
3091
|
-
var
|
|
3474
|
+
var SequenceInner = forwardRef3(SequenceRefForwardingFunction);
|
|
3475
|
+
var Sequence = wrapInSchema(SequenceInner, sequenceSchema);
|
|
3092
3476
|
var calcArgs = (fit, frameSize, canvasSize) => {
|
|
3093
3477
|
switch (fit) {
|
|
3094
3478
|
case "fill": {
|
|
@@ -3184,7 +3568,7 @@ var CanvasRefForwardingFunction = ({ width, height, fit, className, style }, ref
|
|
|
3184
3568
|
style
|
|
3185
3569
|
});
|
|
3186
3570
|
};
|
|
3187
|
-
var Canvas =
|
|
3571
|
+
var Canvas = React15.forwardRef(CanvasRefForwardingFunction);
|
|
3188
3572
|
var CACHE_SIZE = 5;
|
|
3189
3573
|
var getActualTime = ({
|
|
3190
3574
|
loopBehavior,
|
|
@@ -3331,7 +3715,7 @@ var resolveAnimatedImageSource = (src) => {
|
|
|
3331
3715
|
}
|
|
3332
3716
|
return new URL(src, window.origin).href;
|
|
3333
3717
|
};
|
|
3334
|
-
var AnimatedImage =
|
|
3718
|
+
var AnimatedImage = forwardRef4(({
|
|
3335
3719
|
src,
|
|
3336
3720
|
width,
|
|
3337
3721
|
height,
|
|
@@ -3350,9 +3734,9 @@ var AnimatedImage = forwardRef3(({
|
|
|
3350
3734
|
};
|
|
3351
3735
|
}, []);
|
|
3352
3736
|
const resolvedSrc = resolveAnimatedImageSource(src);
|
|
3353
|
-
const [imageDecoder, setImageDecoder] =
|
|
3737
|
+
const [imageDecoder, setImageDecoder] = useState7(null);
|
|
3354
3738
|
const { delayRender: delayRender2, continueRender: continueRender2 } = useDelayRender();
|
|
3355
|
-
const [decodeHandle] =
|
|
3739
|
+
const [decodeHandle] = useState7(() => delayRender2(`Rendering <AnimatedImage/> with src="${resolvedSrc}"`));
|
|
3356
3740
|
const frame = useCurrentFrame();
|
|
3357
3741
|
const { fps } = useVideoConfig();
|
|
3358
3742
|
const currentTime = frame / playbackRate / fps;
|
|
@@ -3366,7 +3750,7 @@ var AnimatedImage = forwardRef3(({
|
|
|
3366
3750
|
}
|
|
3367
3751
|
return c;
|
|
3368
3752
|
}, []);
|
|
3369
|
-
const [initialLoopBehavior] =
|
|
3753
|
+
const [initialLoopBehavior] = useState7(() => loopBehavior);
|
|
3370
3754
|
useEffect6(() => {
|
|
3371
3755
|
const controller = new AbortController;
|
|
3372
3756
|
decodeImage({
|
|
@@ -3438,158 +3822,6 @@ var AnimatedImage = forwardRef3(({
|
|
|
3438
3822
|
...props
|
|
3439
3823
|
});
|
|
3440
3824
|
});
|
|
3441
|
-
var getEffectiveVisualModeValue = ({
|
|
3442
|
-
codeValue,
|
|
3443
|
-
runtimeValue,
|
|
3444
|
-
dragOverrideValue,
|
|
3445
|
-
defaultValue,
|
|
3446
|
-
shouldResortToDefaultValueIfUndefined = false
|
|
3447
|
-
}) => {
|
|
3448
|
-
if (dragOverrideValue !== undefined) {
|
|
3449
|
-
return dragOverrideValue;
|
|
3450
|
-
}
|
|
3451
|
-
if (!codeValue) {
|
|
3452
|
-
return runtimeValue;
|
|
3453
|
-
}
|
|
3454
|
-
if (!codeValue.canUpdate) {
|
|
3455
|
-
return runtimeValue;
|
|
3456
|
-
}
|
|
3457
|
-
if (codeValue.codeValue === undefined && shouldResortToDefaultValueIfUndefined) {
|
|
3458
|
-
return defaultValue;
|
|
3459
|
-
}
|
|
3460
|
-
return codeValue.codeValue;
|
|
3461
|
-
};
|
|
3462
|
-
var useSchema = (schema, currentValue) => {
|
|
3463
|
-
const env = useRemotionEnvironment();
|
|
3464
|
-
const earlyReturn = useMemo16(() => {
|
|
3465
|
-
if (!env.isStudio || env.isReadOnlyStudio) {
|
|
3466
|
-
return {
|
|
3467
|
-
controls: undefined,
|
|
3468
|
-
values: currentValue ?? {}
|
|
3469
|
-
};
|
|
3470
|
-
}
|
|
3471
|
-
return;
|
|
3472
|
-
}, [env.isStudio, env.isReadOnlyStudio, currentValue]);
|
|
3473
|
-
if (earlyReturn) {
|
|
3474
|
-
return earlyReturn;
|
|
3475
|
-
}
|
|
3476
|
-
const [overrideId] = useState7(() => String(Math.random()));
|
|
3477
|
-
const {
|
|
3478
|
-
visualModeEnabled,
|
|
3479
|
-
dragOverrides: overrides,
|
|
3480
|
-
codeValues
|
|
3481
|
-
} = useContext16(VisualModeOverridesContext);
|
|
3482
|
-
const controls = useMemo16(() => {
|
|
3483
|
-
if (!visualModeEnabled) {
|
|
3484
|
-
return;
|
|
3485
|
-
}
|
|
3486
|
-
if (schema === null || currentValue === null) {
|
|
3487
|
-
return;
|
|
3488
|
-
}
|
|
3489
|
-
return {
|
|
3490
|
-
schema,
|
|
3491
|
-
currentValue,
|
|
3492
|
-
overrideId
|
|
3493
|
-
};
|
|
3494
|
-
}, [schema, currentValue, overrideId, visualModeEnabled]);
|
|
3495
|
-
return useMemo16(() => {
|
|
3496
|
-
if (controls === undefined || currentValue === null || schema === null || !visualModeEnabled) {
|
|
3497
|
-
return {
|
|
3498
|
-
controls: undefined,
|
|
3499
|
-
values: currentValue ?? {}
|
|
3500
|
-
};
|
|
3501
|
-
}
|
|
3502
|
-
const overrideValues = overrides[overrideId] ?? {};
|
|
3503
|
-
const propStatus = codeValues[overrideId];
|
|
3504
|
-
const currentValueKeys = Object.keys(currentValue);
|
|
3505
|
-
const keysToUpdate = [...new Set(currentValueKeys)];
|
|
3506
|
-
const merged = {};
|
|
3507
|
-
for (const key of keysToUpdate) {
|
|
3508
|
-
const codeValueStatus = propStatus?.[key] ?? null;
|
|
3509
|
-
merged[key] = getEffectiveVisualModeValue({
|
|
3510
|
-
codeValue: codeValueStatus,
|
|
3511
|
-
runtimeValue: currentValue[key],
|
|
3512
|
-
dragOverrideValue: overrideValues[key],
|
|
3513
|
-
defaultValue: schema[key]?.default,
|
|
3514
|
-
shouldResortToDefaultValueIfUndefined: false
|
|
3515
|
-
});
|
|
3516
|
-
}
|
|
3517
|
-
return {
|
|
3518
|
-
controls,
|
|
3519
|
-
values: merged
|
|
3520
|
-
};
|
|
3521
|
-
}, [
|
|
3522
|
-
controls,
|
|
3523
|
-
currentValue,
|
|
3524
|
-
overrideId,
|
|
3525
|
-
overrides,
|
|
3526
|
-
codeValues,
|
|
3527
|
-
schema,
|
|
3528
|
-
visualModeEnabled
|
|
3529
|
-
]);
|
|
3530
|
-
};
|
|
3531
|
-
var getNestedValue = (obj, key) => {
|
|
3532
|
-
const parts = key.split(".");
|
|
3533
|
-
let current = obj;
|
|
3534
|
-
for (const part of parts) {
|
|
3535
|
-
if (current === null || current === undefined || typeof current !== "object")
|
|
3536
|
-
return;
|
|
3537
|
-
current = current[part];
|
|
3538
|
-
}
|
|
3539
|
-
return current;
|
|
3540
|
-
};
|
|
3541
|
-
var mergeValues = (props, values, schemaKeys) => {
|
|
3542
|
-
const merged = { ...props };
|
|
3543
|
-
for (const key of schemaKeys) {
|
|
3544
|
-
const value = values[key];
|
|
3545
|
-
const parts = key.split(".");
|
|
3546
|
-
if (parts.length === 1) {
|
|
3547
|
-
merged[key] = value;
|
|
3548
|
-
continue;
|
|
3549
|
-
}
|
|
3550
|
-
let current = merged;
|
|
3551
|
-
for (let i = 0;i < parts.length - 1; i++) {
|
|
3552
|
-
const part = parts[i];
|
|
3553
|
-
if (typeof current[part] === "object" && current[part] !== null) {
|
|
3554
|
-
current[part] = { ...current[part] };
|
|
3555
|
-
} else {
|
|
3556
|
-
current[part] = {};
|
|
3557
|
-
}
|
|
3558
|
-
current = current[part];
|
|
3559
|
-
}
|
|
3560
|
-
current[parts[parts.length - 1]] = value;
|
|
3561
|
-
}
|
|
3562
|
-
return merged;
|
|
3563
|
-
};
|
|
3564
|
-
var wrapInSchema = (Component, schema) => {
|
|
3565
|
-
const schemaKeys = Object.keys(schema);
|
|
3566
|
-
const Wrapped = forwardRef4((props, ref) => {
|
|
3567
|
-
const env = useRemotionEnvironment();
|
|
3568
|
-
if (!env.isStudio || env.isReadOnlyStudio || env.isRendering || !process.env.EXPERIMENTAL_VISUAL_MODE_ENABLED) {
|
|
3569
|
-
return React15.createElement(Component, {
|
|
3570
|
-
...props,
|
|
3571
|
-
_experimentalControls: null,
|
|
3572
|
-
ref
|
|
3573
|
-
});
|
|
3574
|
-
}
|
|
3575
|
-
const schemaInput = useMemo17(() => {
|
|
3576
|
-
const input = {};
|
|
3577
|
-
for (const key of schemaKeys) {
|
|
3578
|
-
input[key] = getNestedValue(props, key);
|
|
3579
|
-
}
|
|
3580
|
-
return input;
|
|
3581
|
-
}, schemaKeys.map((key) => getNestedValue(props, key)));
|
|
3582
|
-
const { controls, values } = useSchema(schema, schemaInput);
|
|
3583
|
-
const mergedProps = mergeValues(props, values, schemaKeys);
|
|
3584
|
-
return React15.createElement(Component, {
|
|
3585
|
-
...mergedProps,
|
|
3586
|
-
_experimentalControls: controls,
|
|
3587
|
-
ref
|
|
3588
|
-
});
|
|
3589
|
-
});
|
|
3590
|
-
Wrapped.displayName = `wrapInSchema(${Component.displayName || Component.name || "Component"})`;
|
|
3591
|
-
return Wrapped;
|
|
3592
|
-
};
|
|
3593
3825
|
var cachedSupport = null;
|
|
3594
3826
|
var isHtmlInCanvasSupported = () => {
|
|
3595
3827
|
if (cachedSupport !== null) {
|
|
@@ -3628,40 +3860,10 @@ var defaultOnPaint = ({
|
|
|
3628
3860
|
element.style.transform = transform.toString();
|
|
3629
3861
|
};
|
|
3630
3862
|
var HtmlInCanvasAncestorContext = createContext15(false);
|
|
3631
|
-
var htmlInCanvasSchema = {
|
|
3632
|
-
"style.translate": {
|
|
3633
|
-
type: "translate",
|
|
3634
|
-
step: 1,
|
|
3635
|
-
default: "0px 0px",
|
|
3636
|
-
description: "Position"
|
|
3637
|
-
},
|
|
3638
|
-
"style.scale": {
|
|
3639
|
-
type: "number",
|
|
3640
|
-
min: 0.05,
|
|
3641
|
-
max: 100,
|
|
3642
|
-
step: 0.01,
|
|
3643
|
-
default: 1,
|
|
3644
|
-
description: "Scale"
|
|
3645
|
-
},
|
|
3646
|
-
"style.rotate": {
|
|
3647
|
-
type: "rotation",
|
|
3648
|
-
step: 1,
|
|
3649
|
-
default: "0deg",
|
|
3650
|
-
description: "Rotation"
|
|
3651
|
-
},
|
|
3652
|
-
"style.opacity": {
|
|
3653
|
-
type: "number",
|
|
3654
|
-
min: 0,
|
|
3655
|
-
max: 1,
|
|
3656
|
-
step: 0.01,
|
|
3657
|
-
default: 1,
|
|
3658
|
-
description: "Opacity"
|
|
3659
|
-
}
|
|
3660
|
-
};
|
|
3661
3863
|
var HtmlInCanvasInner = forwardRef5(({
|
|
3662
3864
|
width,
|
|
3663
3865
|
height,
|
|
3664
|
-
_experimentalEffects:
|
|
3866
|
+
_experimentalEffects: effects = [],
|
|
3665
3867
|
children,
|
|
3666
3868
|
onPaint,
|
|
3667
3869
|
onInit,
|
|
@@ -3691,8 +3893,8 @@ var HtmlInCanvasInner = forwardRef5(({
|
|
|
3691
3893
|
}, [ref]);
|
|
3692
3894
|
const [offscreenCanvas] = useState8(() => new OffscreenCanvas(1, 1));
|
|
3693
3895
|
const chainState = useEffectChainState();
|
|
3694
|
-
const effectsRef = useRef9(
|
|
3695
|
-
effectsRef.current =
|
|
3896
|
+
const effectsRef = useRef9(effects);
|
|
3897
|
+
effectsRef.current = effects;
|
|
3696
3898
|
const frameRef = useRef9(frame);
|
|
3697
3899
|
frameRef.current = frame;
|
|
3698
3900
|
const onPaintRef = useRef9(onPaint);
|
|
@@ -3806,13 +4008,12 @@ var HtmlInCanvasInner = forwardRef5(({
|
|
|
3806
4008
|
continueRender2(handle);
|
|
3807
4009
|
};
|
|
3808
4010
|
}, [width, height, continueRender2]);
|
|
3809
|
-
const innerStyle =
|
|
4011
|
+
const innerStyle = useMemo17(() => {
|
|
3810
4012
|
return {
|
|
3811
4013
|
width,
|
|
3812
|
-
height
|
|
3813
|
-
...style
|
|
4014
|
+
height
|
|
3814
4015
|
};
|
|
3815
|
-
}, [width, height
|
|
4016
|
+
}, [width, height]);
|
|
3816
4017
|
if (isInsideAncestorHtmlInCanvas) {
|
|
3817
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.");
|
|
3818
4019
|
}
|
|
@@ -3820,6 +4021,7 @@ var HtmlInCanvasInner = forwardRef5(({
|
|
|
3820
4021
|
durationInFrames: resolvedDuration,
|
|
3821
4022
|
name: "<HtmlInCanvas>",
|
|
3822
4023
|
_experimentalControls: controls,
|
|
4024
|
+
_experimentalEffects: effects,
|
|
3823
4025
|
layout: "none",
|
|
3824
4026
|
...sequenceProps,
|
|
3825
4027
|
children: /* @__PURE__ */ jsx15(HtmlInCanvasAncestorContext.Provider, {
|
|
@@ -3828,6 +4030,7 @@ var HtmlInCanvasInner = forwardRef5(({
|
|
|
3828
4030
|
ref: setLayoutCanvasRef,
|
|
3829
4031
|
width,
|
|
3830
4032
|
height,
|
|
4033
|
+
style,
|
|
3831
4034
|
children: /* @__PURE__ */ jsx15("div", {
|
|
3832
4035
|
ref: divRef,
|
|
3833
4036
|
style: innerStyle,
|
|
@@ -3838,7 +4041,7 @@ var HtmlInCanvasInner = forwardRef5(({
|
|
|
3838
4041
|
});
|
|
3839
4042
|
});
|
|
3840
4043
|
HtmlInCanvasInner.displayName = "HtmlInCanvas";
|
|
3841
|
-
var HtmlInCanvasWrapped = wrapInSchema(HtmlInCanvasInner,
|
|
4044
|
+
var HtmlInCanvasWrapped = wrapInSchema(HtmlInCanvasInner, sequenceStyleSchema);
|
|
3842
4045
|
var HtmlInCanvas = Object.assign(HtmlInCanvasWrapped, {
|
|
3843
4046
|
isSupported: isHtmlInCanvasSupported
|
|
3844
4047
|
});
|
|
@@ -3916,7 +4119,7 @@ var RenderAssetManagerProvider = ({ children, collectAssets }) => {
|
|
|
3916
4119
|
};
|
|
3917
4120
|
}
|
|
3918
4121
|
}, []);
|
|
3919
|
-
const contextValue =
|
|
4122
|
+
const contextValue = useMemo18(() => {
|
|
3920
4123
|
return {
|
|
3921
4124
|
registerRenderAsset,
|
|
3922
4125
|
unregisterRenderAsset,
|
|
@@ -4045,14 +4248,14 @@ var Loop = ({
|
|
|
4045
4248
|
const iteration = Math.floor(currentFrame / durationInFrames);
|
|
4046
4249
|
const start = iteration * durationInFrames;
|
|
4047
4250
|
const from = Math.min(start, maxFrame);
|
|
4048
|
-
const loopDisplay =
|
|
4251
|
+
const loopDisplay = useMemo19(() => {
|
|
4049
4252
|
return {
|
|
4050
4253
|
numberOfTimes: Math.min(compDuration / durationInFrames, times),
|
|
4051
4254
|
startOffset: -from,
|
|
4052
4255
|
durationInFrames
|
|
4053
4256
|
};
|
|
4054
4257
|
}, [compDuration, durationInFrames, from, times]);
|
|
4055
|
-
const loopContext =
|
|
4258
|
+
const loopContext = useMemo19(() => {
|
|
4056
4259
|
return {
|
|
4057
4260
|
iteration: Math.floor(currentFrame / durationInFrames),
|
|
4058
4261
|
durationInFrames
|
|
@@ -4411,7 +4614,7 @@ var DurationsContext = createContext19({
|
|
|
4411
4614
|
});
|
|
4412
4615
|
var DurationsContextProvider = ({ children }) => {
|
|
4413
4616
|
const [durations, setDurations] = useReducer(durationReducer, {});
|
|
4414
|
-
const value =
|
|
4617
|
+
const value = useMemo20(() => {
|
|
4415
4618
|
return {
|
|
4416
4619
|
durations,
|
|
4417
4620
|
setDurations
|
|
@@ -4545,7 +4748,7 @@ var useSingletonAudioContext = ({
|
|
|
4545
4748
|
audioEnabled
|
|
4546
4749
|
}) => {
|
|
4547
4750
|
const env = useRemotionEnvironment();
|
|
4548
|
-
|
|
4751
|
+
const context = useMemo21(() => {
|
|
4549
4752
|
if (env.isRendering) {
|
|
4550
4753
|
return null;
|
|
4551
4754
|
}
|
|
@@ -4562,11 +4765,19 @@ var useSingletonAudioContext = ({
|
|
|
4562
4765
|
});
|
|
4563
4766
|
const gainNode = audioContext.createGain();
|
|
4564
4767
|
gainNode.connect(audioContext.destination);
|
|
4768
|
+
Log.trace({ logLevel, tag: "audio" }, "Creating new audio context");
|
|
4769
|
+
audioContext.suspend();
|
|
4565
4770
|
return {
|
|
4566
4771
|
audioContext,
|
|
4567
4772
|
gainNode
|
|
4568
4773
|
};
|
|
4569
4774
|
}, [logLevel, latencyHint, env.isRendering, audioEnabled]);
|
|
4775
|
+
useEffect8(() => {
|
|
4776
|
+
return () => {
|
|
4777
|
+
context?.audioContext?.close();
|
|
4778
|
+
};
|
|
4779
|
+
}, [context]);
|
|
4780
|
+
return context;
|
|
4570
4781
|
};
|
|
4571
4782
|
var waitUntilActuallyResumed = (audioContext, logLevel) => {
|
|
4572
4783
|
return new Promise((resolve) => {
|
|
@@ -4625,9 +4836,9 @@ var SharedAudioContextProvider = ({ children, audioLatencyHint, audioEnabled })
|
|
|
4625
4836
|
});
|
|
4626
4837
|
const audioContextIsPlayingEventually = useRef11(false);
|
|
4627
4838
|
const isResuming = useRef11(null);
|
|
4628
|
-
const audioSyncAnchor =
|
|
4839
|
+
const audioSyncAnchor = useMemo22(() => ({ value: 0 }), []);
|
|
4629
4840
|
const audioSyncAnchorListeners = useRef11([]);
|
|
4630
|
-
const audioSyncAnchorEmitter =
|
|
4841
|
+
const audioSyncAnchorEmitter = useMemo22(() => {
|
|
4631
4842
|
return {
|
|
4632
4843
|
dispatch: (event) => {
|
|
4633
4844
|
audioSyncAnchorListeners.current.forEach((l) => l(event));
|
|
@@ -4647,7 +4858,7 @@ var SharedAudioContextProvider = ({ children, audioLatencyHint, audioEnabled })
|
|
|
4647
4858
|
const unscheduleAudioNode = useCallback9((node) => {
|
|
4648
4859
|
nodesToResume.current.delete(node);
|
|
4649
4860
|
}, []);
|
|
4650
|
-
const scheduleAudioNode =
|
|
4861
|
+
const scheduleAudioNode = useMemo22(() => {
|
|
4651
4862
|
return ({
|
|
4652
4863
|
node,
|
|
4653
4864
|
mediaTimestamp,
|
|
@@ -4710,12 +4921,11 @@ var SharedAudioContextProvider = ({ children, audioLatencyHint, audioEnabled })
|
|
|
4710
4921
|
isResuming.current = null;
|
|
4711
4922
|
});
|
|
4712
4923
|
ctxAndGain.gainNode.gain.cancelScheduledValues(ctxAndGain.audioContext.currentTime);
|
|
4713
|
-
ctxAndGain.gainNode
|
|
4714
|
-
ctxAndGain.gainNode
|
|
4715
|
-
|
|
4716
|
-
|
|
4717
|
-
|
|
4718
|
-
}).catch(() => {});
|
|
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(() => {});
|
|
4719
4929
|
}, [ctxAndGain, logLevel]);
|
|
4720
4930
|
const getIsResumingAudioContext = useCallback9(() => {
|
|
4721
4931
|
return isResuming.current;
|
|
@@ -4730,7 +4940,7 @@ var SharedAudioContextProvider = ({ children, audioLatencyHint, audioEnabled })
|
|
|
4730
4940
|
audioContextIsPlayingEventually.current = false;
|
|
4731
4941
|
ctxAndGain.audioContext.suspend();
|
|
4732
4942
|
}, [ctxAndGain]);
|
|
4733
|
-
const audioContextValue =
|
|
4943
|
+
const audioContextValue = useMemo22(() => {
|
|
4734
4944
|
return {
|
|
4735
4945
|
audioContext: ctxAndGain?.audioContext ?? null,
|
|
4736
4946
|
gainNode: ctxAndGain?.gainNode ?? null,
|
|
@@ -4769,7 +4979,7 @@ var SharedAudioTagsContextProvider = ({ children, numberOfAudioTags }) => {
|
|
|
4769
4979
|
const audioCtx = useContext20(SharedAudioContext);
|
|
4770
4980
|
const audioContext = audioCtx?.audioContext ?? null;
|
|
4771
4981
|
const resume = audioCtx?.resume;
|
|
4772
|
-
const refs =
|
|
4982
|
+
const refs = useMemo22(() => {
|
|
4773
4983
|
return new Array(numberOfAudioTags).fill(true).map(() => {
|
|
4774
4984
|
const ref = createRef2();
|
|
4775
4985
|
return {
|
|
@@ -4906,7 +5116,7 @@ var SharedAudioTagsContextProvider = ({ children, numberOfAudioTags }) => {
|
|
|
4906
5116
|
});
|
|
4907
5117
|
resume?.();
|
|
4908
5118
|
}, [logLevel, mountTime, refs, env.isPlayer, resume]);
|
|
4909
|
-
const audioTagsValue =
|
|
5119
|
+
const audioTagsValue = useMemo22(() => {
|
|
4910
5120
|
return {
|
|
4911
5121
|
registerAudio,
|
|
4912
5122
|
unregisterAudio,
|
|
@@ -5285,7 +5495,7 @@ var useBasicMediaInTimeline = ({
|
|
|
5285
5495
|
parentSequenceDurationInFrames: parentSequence?.durationInFrames ?? null,
|
|
5286
5496
|
loop
|
|
5287
5497
|
});
|
|
5288
|
-
const volumes =
|
|
5498
|
+
const volumes = useMemo23(() => {
|
|
5289
5499
|
if (typeof volume === "number") {
|
|
5290
5500
|
return volume;
|
|
5291
5501
|
}
|
|
@@ -5297,7 +5507,7 @@ var useBasicMediaInTimeline = ({
|
|
|
5297
5507
|
});
|
|
5298
5508
|
}).join(",");
|
|
5299
5509
|
}, [duration, mediaStartsAt, volume, mediaVolume]);
|
|
5300
|
-
|
|
5510
|
+
useEffect9(() => {
|
|
5301
5511
|
if (typeof volume === "number" && volume !== initialVolume) {
|
|
5302
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`);
|
|
5303
5513
|
}
|
|
@@ -5306,7 +5516,7 @@ var useBasicMediaInTimeline = ({
|
|
|
5306
5516
|
const nonce = useNonce();
|
|
5307
5517
|
const { rootId } = useTimelineContext();
|
|
5308
5518
|
const startMediaFrom = 0 - mediaStartsAt + (trimBefore ?? 0);
|
|
5309
|
-
const memoizedResult =
|
|
5519
|
+
const memoizedResult = useMemo23(() => {
|
|
5310
5520
|
return {
|
|
5311
5521
|
volumes,
|
|
5312
5522
|
duration,
|
|
@@ -5360,7 +5570,7 @@ var useImageInTimeline = ({
|
|
|
5360
5570
|
loop: false
|
|
5361
5571
|
});
|
|
5362
5572
|
const { isStudio } = useRemotionEnvironment();
|
|
5363
|
-
|
|
5573
|
+
useEffect9(() => {
|
|
5364
5574
|
if (!src) {
|
|
5365
5575
|
throw new Error("No src passed");
|
|
5366
5576
|
}
|
|
@@ -5443,7 +5653,7 @@ var useMediaInTimeline = ({
|
|
|
5443
5653
|
loop: false
|
|
5444
5654
|
});
|
|
5445
5655
|
const { isStudio } = useRemotionEnvironment();
|
|
5446
|
-
|
|
5656
|
+
useEffect9(() => {
|
|
5447
5657
|
if (!src) {
|
|
5448
5658
|
throw new Error("No src passed");
|
|
5449
5659
|
}
|
|
@@ -5545,7 +5755,7 @@ var useBufferManager = (logLevel, mountTime) => {
|
|
|
5545
5755
|
}
|
|
5546
5756
|
};
|
|
5547
5757
|
}, []);
|
|
5548
|
-
|
|
5758
|
+
useEffect10(() => {
|
|
5549
5759
|
if (rendering) {
|
|
5550
5760
|
return;
|
|
5551
5761
|
}
|
|
@@ -5575,7 +5785,7 @@ var useBufferManager = (logLevel, mountTime) => {
|
|
|
5575
5785
|
}
|
|
5576
5786
|
}, [blocks]);
|
|
5577
5787
|
}
|
|
5578
|
-
return
|
|
5788
|
+
return useMemo24(() => {
|
|
5579
5789
|
return { addBlock, listenForBuffering, listenForResume, buffering };
|
|
5580
5790
|
}, [addBlock, buffering, listenForBuffering, listenForResume]);
|
|
5581
5791
|
};
|
|
@@ -5590,7 +5800,7 @@ var BufferingProvider = ({ children }) => {
|
|
|
5590
5800
|
};
|
|
5591
5801
|
var useIsPlayerBuffering = (bufferManager) => {
|
|
5592
5802
|
const [isBuffering, setIsBuffering] = useState14(bufferManager.buffering.current);
|
|
5593
|
-
|
|
5803
|
+
useEffect10(() => {
|
|
5594
5804
|
const onBuffer = () => {
|
|
5595
5805
|
setIsBuffering(true);
|
|
5596
5806
|
};
|
|
@@ -5613,7 +5823,7 @@ var useIsPlayerBuffering = (bufferManager) => {
|
|
|
5613
5823
|
var useBufferState = () => {
|
|
5614
5824
|
const buffer = useContext25(BufferingContextReact);
|
|
5615
5825
|
const addBlock = buffer ? buffer.addBlock : null;
|
|
5616
|
-
return
|
|
5826
|
+
return useMemo25(() => ({
|
|
5617
5827
|
delayPlayback: () => {
|
|
5618
5828
|
if (!addBlock) {
|
|
5619
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");
|
|
@@ -5710,7 +5920,7 @@ var useBufferUntilFirstFrame = ({
|
|
|
5710
5920
|
onVariableFpsVideoDetected,
|
|
5711
5921
|
pauseWhenBuffering
|
|
5712
5922
|
]);
|
|
5713
|
-
return
|
|
5923
|
+
return useMemo26(() => {
|
|
5714
5924
|
return {
|
|
5715
5925
|
isBuffering: () => bufferingRef.current,
|
|
5716
5926
|
bufferUntilFirstFrame
|
|
@@ -5759,7 +5969,7 @@ var useMediaBuffering = ({
|
|
|
5759
5969
|
}) => {
|
|
5760
5970
|
const buffer = useBufferState();
|
|
5761
5971
|
const [isBuffering, setIsBuffering] = useState15(false);
|
|
5762
|
-
|
|
5972
|
+
useEffect11(() => {
|
|
5763
5973
|
let cleanupFns = [];
|
|
5764
5974
|
const { current } = element;
|
|
5765
5975
|
if (!current) {
|
|
@@ -5892,7 +6102,7 @@ var useRequestVideoCallbackTime = ({
|
|
|
5892
6102
|
onVariableFpsVideoDetected
|
|
5893
6103
|
}) => {
|
|
5894
6104
|
const currentTime = useRef16(null);
|
|
5895
|
-
|
|
6105
|
+
useEffect12(() => {
|
|
5896
6106
|
const { current } = mediaRef;
|
|
5897
6107
|
if (current) {
|
|
5898
6108
|
currentTime.current = {
|
|
@@ -6112,7 +6322,7 @@ var useMediaPlayback = ({
|
|
|
6112
6322
|
isPostmounting,
|
|
6113
6323
|
onAutoPlayError
|
|
6114
6324
|
}) => {
|
|
6115
|
-
const { playbackRate: globalPlaybackRate } =
|
|
6325
|
+
const { playbackRate: globalPlaybackRate } = usePlaybackRate();
|
|
6116
6326
|
const frame = useCurrentFrame();
|
|
6117
6327
|
const absoluteFrame = useTimelinePosition();
|
|
6118
6328
|
const [playing] = usePlayingState();
|
|
@@ -6178,7 +6388,7 @@ var useMediaPlayback = ({
|
|
|
6178
6388
|
return acceptableTimeshift ?? defaultAcceptableTimeshift;
|
|
6179
6389
|
})();
|
|
6180
6390
|
const isPlayerBuffering = useIsPlayerBuffering(buffering);
|
|
6181
|
-
|
|
6391
|
+
useEffect13(() => {
|
|
6182
6392
|
if (mediaRef.current?.paused) {
|
|
6183
6393
|
return;
|
|
6184
6394
|
}
|
|
@@ -6223,7 +6433,7 @@ var useMediaPlayback = ({
|
|
|
6223
6433
|
mediaRef.current.playbackRate = playbackRateToSet;
|
|
6224
6434
|
}
|
|
6225
6435
|
}, [mediaRef, playbackRate]);
|
|
6226
|
-
|
|
6436
|
+
useEffect13(() => {
|
|
6227
6437
|
const tagName = mediaType === "audio" ? "<Html5Audio>" : "<Html5Video>";
|
|
6228
6438
|
if (!mediaRef.current) {
|
|
6229
6439
|
throw new Error(`No ${mediaType} ref found`);
|
|
@@ -6352,7 +6562,7 @@ var useMediaTag = ({
|
|
|
6352
6562
|
const logLevel = useLogLevel();
|
|
6353
6563
|
const mountTime = useMountTime();
|
|
6354
6564
|
const env = useRemotionEnvironment();
|
|
6355
|
-
|
|
6565
|
+
useEffect14(() => {
|
|
6356
6566
|
const tag = {
|
|
6357
6567
|
id,
|
|
6358
6568
|
play: (reason) => {
|
|
@@ -6406,14 +6616,14 @@ var SetMediaVolumeContext = createContext21({
|
|
|
6406
6616
|
var useMediaVolumeState = () => {
|
|
6407
6617
|
const { mediaVolume } = useContext27(MediaVolumeContext);
|
|
6408
6618
|
const { setMediaVolume } = useContext27(SetMediaVolumeContext);
|
|
6409
|
-
return
|
|
6619
|
+
return useMemo27(() => {
|
|
6410
6620
|
return [mediaVolume, setMediaVolume];
|
|
6411
6621
|
}, [mediaVolume, setMediaVolume]);
|
|
6412
6622
|
};
|
|
6413
6623
|
var useMediaMutedState = () => {
|
|
6414
6624
|
const { mediaMuted } = useContext27(MediaVolumeContext);
|
|
6415
6625
|
const { setMediaMuted } = useContext27(SetMediaVolumeContext);
|
|
6416
|
-
return
|
|
6626
|
+
return useMemo27(() => {
|
|
6417
6627
|
return [mediaMuted, setMediaMuted];
|
|
6418
6628
|
}, [mediaMuted, setMediaMuted]);
|
|
6419
6629
|
};
|
|
@@ -6481,7 +6691,7 @@ var AudioForDevelopmentForwardRefFunction = (props, ref) => {
|
|
|
6481
6691
|
requestsVideoFrame: false,
|
|
6482
6692
|
isClientSideRendering: false
|
|
6483
6693
|
});
|
|
6484
|
-
const propsToPass =
|
|
6694
|
+
const propsToPass = useMemo28(() => {
|
|
6485
6695
|
return {
|
|
6486
6696
|
muted: muted || mediaMuted || isSequenceHidden || userPreferredVolume <= 0,
|
|
6487
6697
|
src: preloadedSrc,
|
|
@@ -6499,7 +6709,7 @@ var AudioForDevelopmentForwardRefFunction = (props, ref) => {
|
|
|
6499
6709
|
userPreferredVolume,
|
|
6500
6710
|
crossOriginValue
|
|
6501
6711
|
]);
|
|
6502
|
-
const id =
|
|
6712
|
+
const id = useMemo28(() => `audio-${random(src ?? "")}-${sequenceContext?.relativeFrom}-${sequenceContext?.cumulatedFrom}-${sequenceContext?.durationInFrames}-muted:${props.muted}-loop:${props.loop}`, [
|
|
6503
6713
|
src,
|
|
6504
6714
|
sequenceContext?.relativeFrom,
|
|
6505
6715
|
sequenceContext?.cumulatedFrom,
|
|
@@ -6571,7 +6781,7 @@ var AudioForDevelopmentForwardRefFunction = (props, ref) => {
|
|
|
6571
6781
|
}, [audioRef]);
|
|
6572
6782
|
const currentOnDurationCallback = useRef18(onDuration);
|
|
6573
6783
|
currentOnDurationCallback.current = onDuration;
|
|
6574
|
-
|
|
6784
|
+
useEffect15(() => {
|
|
6575
6785
|
const { current } = audioRef;
|
|
6576
6786
|
if (!current) {
|
|
6577
6787
|
return;
|
|
@@ -6625,7 +6835,7 @@ var AudioForRenderingRefForwardingFunction = (props, ref) => {
|
|
|
6625
6835
|
const sequenceContext = useContext29(SequenceContext);
|
|
6626
6836
|
const { registerRenderAsset, unregisterRenderAsset } = useContext29(RenderAssetManager);
|
|
6627
6837
|
const { delayRender: delayRender2, continueRender: continueRender2 } = useDelayRender();
|
|
6628
|
-
const id =
|
|
6838
|
+
const id = useMemo29(() => `audio-${random(props.src ?? "")}-${sequenceContext?.relativeFrom}-${sequenceContext?.cumulatedFrom}-${sequenceContext?.durationInFrames}`, [
|
|
6629
6839
|
props.src,
|
|
6630
6840
|
sequenceContext?.relativeFrom,
|
|
6631
6841
|
sequenceContext?.cumulatedFrom,
|
|
@@ -6640,7 +6850,7 @@ var AudioForRenderingRefForwardingFunction = (props, ref) => {
|
|
|
6640
6850
|
useImperativeHandle5(ref, () => {
|
|
6641
6851
|
return audioRef.current;
|
|
6642
6852
|
}, []);
|
|
6643
|
-
|
|
6853
|
+
useEffect16(() => {
|
|
6644
6854
|
if (!props.src) {
|
|
6645
6855
|
throw new Error("No src passed");
|
|
6646
6856
|
}
|
|
@@ -6890,36 +7100,6 @@ function truncateSrcForLabel(src) {
|
|
|
6890
7100
|
}
|
|
6891
7101
|
return src;
|
|
6892
7102
|
}
|
|
6893
|
-
var imgSchema = {
|
|
6894
|
-
"style.translate": {
|
|
6895
|
-
type: "translate",
|
|
6896
|
-
step: 1,
|
|
6897
|
-
default: "0px 0px",
|
|
6898
|
-
description: "Position"
|
|
6899
|
-
},
|
|
6900
|
-
"style.scale": {
|
|
6901
|
-
type: "number",
|
|
6902
|
-
min: 0.05,
|
|
6903
|
-
max: 100,
|
|
6904
|
-
step: 0.01,
|
|
6905
|
-
default: 1,
|
|
6906
|
-
description: "Scale"
|
|
6907
|
-
},
|
|
6908
|
-
"style.rotate": {
|
|
6909
|
-
type: "rotation",
|
|
6910
|
-
step: 1,
|
|
6911
|
-
default: "0deg",
|
|
6912
|
-
description: "Rotation"
|
|
6913
|
-
},
|
|
6914
|
-
"style.opacity": {
|
|
6915
|
-
type: "number",
|
|
6916
|
-
min: 0,
|
|
6917
|
-
max: 1,
|
|
6918
|
-
step: 0.01,
|
|
6919
|
-
default: 1,
|
|
6920
|
-
description: "Opacity"
|
|
6921
|
-
}
|
|
6922
|
-
};
|
|
6923
7103
|
var ImgInner = ({
|
|
6924
7104
|
onError,
|
|
6925
7105
|
maxRetries = 2,
|
|
@@ -7083,7 +7263,7 @@ var ImgInner = ({
|
|
|
7083
7263
|
decoding: "sync"
|
|
7084
7264
|
});
|
|
7085
7265
|
};
|
|
7086
|
-
var Img = wrapInSchema(ImgInner,
|
|
7266
|
+
var Img = wrapInSchema(ImgInner, sequenceStyleSchema);
|
|
7087
7267
|
addSequenceStackTraces(Img);
|
|
7088
7268
|
var compositionsRef = React28.createRef();
|
|
7089
7269
|
var CompositionManagerProvider = ({
|
|
@@ -7139,7 +7319,7 @@ var CompositionManagerProvider = ({
|
|
|
7139
7319
|
getCompositions: () => currentcompositionsRef.current
|
|
7140
7320
|
};
|
|
7141
7321
|
}, []);
|
|
7142
|
-
const compositionManagerSetters =
|
|
7322
|
+
const compositionManagerSetters = useMemo30(() => {
|
|
7143
7323
|
return {
|
|
7144
7324
|
registerComposition,
|
|
7145
7325
|
unregisterComposition,
|
|
@@ -7155,7 +7335,7 @@ var CompositionManagerProvider = ({
|
|
|
7155
7335
|
unregisterFolder,
|
|
7156
7336
|
onlyRenderComposition
|
|
7157
7337
|
]);
|
|
7158
|
-
const compositionManagerContextValue =
|
|
7338
|
+
const compositionManagerContextValue = useMemo30(() => {
|
|
7159
7339
|
return {
|
|
7160
7340
|
compositions,
|
|
7161
7341
|
folders,
|
|
@@ -7285,7 +7465,7 @@ var MediaEnabledProvider = ({
|
|
|
7285
7465
|
videoEnabled,
|
|
7286
7466
|
audioEnabled
|
|
7287
7467
|
}) => {
|
|
7288
|
-
const value =
|
|
7468
|
+
const value = useMemo31(() => ({ videoEnabled, audioEnabled }), [videoEnabled, audioEnabled]);
|
|
7289
7469
|
return /* @__PURE__ */ jsx28(MediaEnabledContext.Provider, {
|
|
7290
7470
|
value,
|
|
7291
7471
|
children
|
|
@@ -7301,13 +7481,13 @@ var RemotionRootContexts = ({
|
|
|
7301
7481
|
frameState,
|
|
7302
7482
|
visualModeEnabled
|
|
7303
7483
|
}) => {
|
|
7304
|
-
const nonceContext =
|
|
7484
|
+
const nonceContext = useMemo32(() => {
|
|
7305
7485
|
let counter = 0;
|
|
7306
7486
|
return {
|
|
7307
7487
|
getNonce: () => counter++
|
|
7308
7488
|
};
|
|
7309
7489
|
}, []);
|
|
7310
|
-
const logging =
|
|
7490
|
+
const logging = useMemo32(() => {
|
|
7311
7491
|
return { logLevel, mountTime: Date.now() };
|
|
7312
7492
|
}, [logLevel]);
|
|
7313
7493
|
return /* @__PURE__ */ jsx29(LogLevelContext.Provider, {
|
|
@@ -7609,7 +7789,7 @@ var OffthreadVideoForRendering = ({
|
|
|
7609
7789
|
if (!src) {
|
|
7610
7790
|
throw new TypeError("No `src` was passed to <OffthreadVideo>.");
|
|
7611
7791
|
}
|
|
7612
|
-
const id =
|
|
7792
|
+
const id = useMemo33(() => `offthreadvideo-${random(src)}-${sequenceContext?.cumulatedFrom}-${sequenceContext?.relativeFrom}-${sequenceContext?.durationInFrames}`, [
|
|
7613
7793
|
src,
|
|
7614
7794
|
sequenceContext?.cumulatedFrom,
|
|
7615
7795
|
sequenceContext?.relativeFrom,
|
|
@@ -7624,7 +7804,7 @@ var OffthreadVideoForRendering = ({
|
|
|
7624
7804
|
mediaVolume: 1
|
|
7625
7805
|
});
|
|
7626
7806
|
warnAboutTooHighVolume(volume);
|
|
7627
|
-
|
|
7807
|
+
useEffect17(() => {
|
|
7628
7808
|
if (!src) {
|
|
7629
7809
|
throw new Error("No src passed");
|
|
7630
7810
|
}
|
|
@@ -7664,14 +7844,14 @@ var OffthreadVideoForRendering = ({
|
|
|
7664
7844
|
sequenceContext?.relativeFrom,
|
|
7665
7845
|
audioStreamIndex
|
|
7666
7846
|
]);
|
|
7667
|
-
const currentTime =
|
|
7847
|
+
const currentTime = useMemo33(() => {
|
|
7668
7848
|
return getExpectedMediaFrameUncorrected({
|
|
7669
7849
|
frame,
|
|
7670
7850
|
playbackRate: playbackRate || 1,
|
|
7671
7851
|
startFrom: -mediaStartsAt
|
|
7672
7852
|
}) / videoConfig.fps;
|
|
7673
7853
|
}, [frame, mediaStartsAt, playbackRate, videoConfig.fps]);
|
|
7674
|
-
const actualSrc =
|
|
7854
|
+
const actualSrc = useMemo33(() => {
|
|
7675
7855
|
return getOffthreadVideoSource({
|
|
7676
7856
|
src,
|
|
7677
7857
|
currentTime,
|
|
@@ -7759,7 +7939,7 @@ var OffthreadVideoForRendering = ({
|
|
|
7759
7939
|
cancelRender("Failed to load image with src " + imageSrc);
|
|
7760
7940
|
}
|
|
7761
7941
|
}, [imageSrc, onError]);
|
|
7762
|
-
const className =
|
|
7942
|
+
const className = useMemo33(() => {
|
|
7763
7943
|
return [OBJECTFIT_CONTAIN_CLASS_NAME, props2.className].filter(truthy).join(" ");
|
|
7764
7944
|
}, [props2.className]);
|
|
7765
7945
|
const onImageFrame = useCallback17((img) => {
|
|
@@ -7785,7 +7965,7 @@ var useEmitVideoFrame = ({
|
|
|
7785
7965
|
ref,
|
|
7786
7966
|
onVideoFrame
|
|
7787
7967
|
}) => {
|
|
7788
|
-
|
|
7968
|
+
useEffect18(() => {
|
|
7789
7969
|
const { current } = ref;
|
|
7790
7970
|
if (!current) {
|
|
7791
7971
|
return;
|
|
@@ -7822,7 +8002,7 @@ var VideoForDevelopmentRefForwardingFunction = (props2, ref) => {
|
|
|
7822
8002
|
throw new Error("SharedAudioContext not found");
|
|
7823
8003
|
}
|
|
7824
8004
|
const videoRef = useRef22(null);
|
|
7825
|
-
const sharedSource =
|
|
8005
|
+
const sharedSource = useMemo34(() => {
|
|
7826
8006
|
if (!context.audioContext) {
|
|
7827
8007
|
return null;
|
|
7828
8008
|
}
|
|
@@ -7949,7 +8129,7 @@ var VideoForDevelopmentRefForwardingFunction = (props2, ref) => {
|
|
|
7949
8129
|
tag: "video",
|
|
7950
8130
|
mountTime
|
|
7951
8131
|
}));
|
|
7952
|
-
|
|
8132
|
+
useEffect19(() => {
|
|
7953
8133
|
const { current } = videoRef;
|
|
7954
8134
|
if (!current) {
|
|
7955
8135
|
return;
|
|
@@ -7992,7 +8172,7 @@ var VideoForDevelopmentRefForwardingFunction = (props2, ref) => {
|
|
|
7992
8172
|
const currentOnDurationCallback = useRef22(onDuration);
|
|
7993
8173
|
currentOnDurationCallback.current = onDuration;
|
|
7994
8174
|
useEmitVideoFrame({ ref: videoRef, onVideoFrame });
|
|
7995
|
-
|
|
8175
|
+
useEffect19(() => {
|
|
7996
8176
|
const { current } = videoRef;
|
|
7997
8177
|
if (!current) {
|
|
7998
8178
|
return;
|
|
@@ -8009,7 +8189,7 @@ var VideoForDevelopmentRefForwardingFunction = (props2, ref) => {
|
|
|
8009
8189
|
current.removeEventListener("loadedmetadata", onLoadedMetadata);
|
|
8010
8190
|
};
|
|
8011
8191
|
}, [src]);
|
|
8012
|
-
|
|
8192
|
+
useEffect19(() => {
|
|
8013
8193
|
const { current } = videoRef;
|
|
8014
8194
|
if (!current) {
|
|
8015
8195
|
return;
|
|
@@ -8020,7 +8200,7 @@ var VideoForDevelopmentRefForwardingFunction = (props2, ref) => {
|
|
|
8020
8200
|
current.preload = "auto";
|
|
8021
8201
|
}
|
|
8022
8202
|
}, []);
|
|
8023
|
-
const actualStyle =
|
|
8203
|
+
const actualStyle = useMemo34(() => {
|
|
8024
8204
|
return {
|
|
8025
8205
|
...style,
|
|
8026
8206
|
opacity: isSequenceHidden ? 0 : style?.opacity ?? 1
|
|
@@ -8214,7 +8394,7 @@ function useRemotionContexts() {
|
|
|
8214
8394
|
const sequenceManagerContext = React36.useContext(SequenceManager);
|
|
8215
8395
|
const bufferManagerContext = React36.useContext(BufferingContextReact);
|
|
8216
8396
|
const logLevelContext = React36.useContext(LogLevelContext);
|
|
8217
|
-
return
|
|
8397
|
+
return useMemo35(() => ({
|
|
8218
8398
|
compositionManagerCtx,
|
|
8219
8399
|
timelineContext,
|
|
8220
8400
|
setTimelineContext,
|
|
@@ -8302,8 +8482,11 @@ var Internals = {
|
|
|
8302
8482
|
SequenceManager,
|
|
8303
8483
|
SequenceStackTracesUpdateContext,
|
|
8304
8484
|
SequenceVisibilityToggleContext,
|
|
8305
|
-
useSchema,
|
|
8306
8485
|
wrapInSchema,
|
|
8486
|
+
sequenceSchema,
|
|
8487
|
+
sequenceStyleSchema,
|
|
8488
|
+
flattenActiveSchema,
|
|
8489
|
+
getFlatSchemaWithAllKeys,
|
|
8307
8490
|
useSequenceControlOverride,
|
|
8308
8491
|
RemotionRootContexts,
|
|
8309
8492
|
CompositionManagerProvider,
|
|
@@ -8353,6 +8536,7 @@ var Internals = {
|
|
|
8353
8536
|
REMOTION_STUDIO_CONTAINER_ELEMENT,
|
|
8354
8537
|
RenderAssetManager,
|
|
8355
8538
|
persistCurrentFrame,
|
|
8539
|
+
usePlaybackRate,
|
|
8356
8540
|
useTimelineContext,
|
|
8357
8541
|
useTimelineSetFrame,
|
|
8358
8542
|
isIosSafari,
|
|
@@ -8386,6 +8570,7 @@ var Internals = {
|
|
|
8386
8570
|
TimelinePosition: exports_timeline_position_state,
|
|
8387
8571
|
DelayRenderContextType,
|
|
8388
8572
|
TimelineContext,
|
|
8573
|
+
PlaybackRateContext,
|
|
8389
8574
|
AbsoluteTimeContext,
|
|
8390
8575
|
RenderAssetManagerProvider,
|
|
8391
8576
|
getEffectiveVisualModeValue,
|
|
@@ -8394,7 +8579,8 @@ var Internals = {
|
|
|
8394
8579
|
runEffectChain,
|
|
8395
8580
|
useMemoizedEffects,
|
|
8396
8581
|
defineEffect,
|
|
8397
|
-
createDescriptor
|
|
8582
|
+
createDescriptor,
|
|
8583
|
+
computeEffectiveSchemaValuesDotNotation
|
|
8398
8584
|
};
|
|
8399
8585
|
var NUMBER = "[-+]?\\d*\\.?\\d+";
|
|
8400
8586
|
var PERCENTAGE = NUMBER + "%";
|
|
@@ -8458,8 +8644,8 @@ var SeriesSequenceRefForwardingFunction = ({ children }, _ref) => {
|
|
|
8458
8644
|
});
|
|
8459
8645
|
};
|
|
8460
8646
|
var SeriesSequence = forwardRef11(SeriesSequenceRefForwardingFunction);
|
|
8461
|
-
var
|
|
8462
|
-
const childrenValue =
|
|
8647
|
+
var SeriesInner = (props2) => {
|
|
8648
|
+
const childrenValue = useMemo36(() => {
|
|
8463
8649
|
let startFrame = 0;
|
|
8464
8650
|
const flattenedChildren = flattenChildren(props2.children);
|
|
8465
8651
|
return Children.map(flattenedChildren, (child, i) => {
|
|
@@ -8522,7 +8708,9 @@ var Series = (props2) => {
|
|
|
8522
8708
|
})
|
|
8523
8709
|
});
|
|
8524
8710
|
};
|
|
8525
|
-
Series
|
|
8711
|
+
var Series = Object.assign(wrapInSchema(SeriesInner, sequenceSchemaDefaultLayoutNone), {
|
|
8712
|
+
Sequence: SeriesSequence
|
|
8713
|
+
});
|
|
8526
8714
|
addSequenceStackTraces(Series);
|
|
8527
8715
|
addSequenceStackTraces(SeriesSequence);
|
|
8528
8716
|
var validateSpringDuration = (dur) => {
|
|
@@ -8997,7 +9185,7 @@ var VideoForRenderingForwardFunction = ({
|
|
|
8997
9185
|
const mountTime = useMountTime();
|
|
8998
9186
|
const { delayRender: delayRender2, continueRender: continueRender2 } = useDelayRender();
|
|
8999
9187
|
const { registerRenderAsset, unregisterRenderAsset } = useContext36(RenderAssetManager);
|
|
9000
|
-
const id =
|
|
9188
|
+
const id = useMemo37(() => `video-${random(props2.src ?? "")}-${sequenceContext?.cumulatedFrom}-${sequenceContext?.relativeFrom}-${sequenceContext?.durationInFrames}`, [
|
|
9001
9189
|
props2.src,
|
|
9002
9190
|
sequenceContext?.cumulatedFrom,
|
|
9003
9191
|
sequenceContext?.relativeFrom,
|
|
@@ -9012,7 +9200,7 @@ var VideoForRenderingForwardFunction = ({
|
|
|
9012
9200
|
mediaVolume: 1
|
|
9013
9201
|
});
|
|
9014
9202
|
warnAboutTooHighVolume(volume);
|
|
9015
|
-
|
|
9203
|
+
useEffect20(() => {
|
|
9016
9204
|
if (!props2.src) {
|
|
9017
9205
|
throw new Error("No src passed");
|
|
9018
9206
|
}
|
|
@@ -9055,7 +9243,7 @@ var VideoForRenderingForwardFunction = ({
|
|
|
9055
9243
|
useImperativeHandle9(ref, () => {
|
|
9056
9244
|
return videoRef.current;
|
|
9057
9245
|
}, []);
|
|
9058
|
-
|
|
9246
|
+
useEffect20(() => {
|
|
9059
9247
|
if (!window.remotion_videoEnabled) {
|
|
9060
9248
|
return;
|
|
9061
9249
|
}
|
|
@@ -9473,6 +9661,20 @@ var TeamCardsLayout = () => {
|
|
|
9473
9661
|
|
|
9474
9662
|
// src/components/experts/experts-icons.tsx
|
|
9475
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
|
+
};
|
|
9476
9678
|
var PersonalWebsite = () => {
|
|
9477
9679
|
return /* @__PURE__ */ jsx40("svg", {
|
|
9478
9680
|
xmlns: "http://www.w3.org/2000/svg",
|
|
@@ -9626,6 +9828,13 @@ var ExpertCard = ({ expert, Link }) => {
|
|
|
9626
9828
|
target: "_blank",
|
|
9627
9829
|
href: `mailto:${expert.email}`,
|
|
9628
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, {})
|
|
9629
9838
|
}) : null
|
|
9630
9839
|
]
|
|
9631
9840
|
})
|
|
@@ -9635,7 +9844,7 @@ var ExpertCard = ({ expert, Link }) => {
|
|
|
9635
9844
|
});
|
|
9636
9845
|
};
|
|
9637
9846
|
var ExpertsPageContent = ({ Link }) => {
|
|
9638
|
-
const expertsInRandomOrder =
|
|
9847
|
+
const expertsInRandomOrder = useMemo38(() => {
|
|
9639
9848
|
if (typeof window === "undefined") {
|
|
9640
9849
|
return [];
|
|
9641
9850
|
}
|
|
@@ -11078,7 +11287,7 @@ var getDefaultConfig = () => {
|
|
|
11078
11287
|
var twMerge = /* @__PURE__ */ createTailwindMerge(getDefaultConfig);
|
|
11079
11288
|
|
|
11080
11289
|
// ../design/dist/esm/index.mjs
|
|
11081
|
-
import React33, { useEffect as
|
|
11290
|
+
import React33, { useEffect as useEffect21, useMemo as useMemo41, useState as useState23 } from "react";
|
|
11082
11291
|
|
|
11083
11292
|
// ../paths/dist/esm/index.mjs
|
|
11084
11293
|
var cutLInstruction = ({
|
|
@@ -13844,7 +14053,7 @@ var PathInternals = {
|
|
|
13844
14053
|
};
|
|
13845
14054
|
|
|
13846
14055
|
// ../shapes/dist/esm/index.mjs
|
|
13847
|
-
import React3, { useMemo as
|
|
14056
|
+
import React3, { useMemo as useMemo40 } from "react";
|
|
13848
14057
|
import { version } from "react-dom";
|
|
13849
14058
|
import { jsx as jsx42, jsxs as jsxs5 } from "react/jsx-runtime";
|
|
13850
14059
|
import { jsx as jsx210 } from "react/jsx-runtime";
|
|
@@ -13875,13 +14084,13 @@ var RenderSvg = ({
|
|
|
13875
14084
|
instructions,
|
|
13876
14085
|
...props
|
|
13877
14086
|
}) => {
|
|
13878
|
-
const actualStyle =
|
|
14087
|
+
const actualStyle = useMemo40(() => {
|
|
13879
14088
|
return {
|
|
13880
14089
|
overflow: "visible",
|
|
13881
14090
|
...style ?? {}
|
|
13882
14091
|
};
|
|
13883
14092
|
}, [style]);
|
|
13884
|
-
const actualPathStyle =
|
|
14093
|
+
const actualPathStyle = useMemo40(() => {
|
|
13885
14094
|
return {
|
|
13886
14095
|
transformBox: "fill-box",
|
|
13887
14096
|
...pathStyle ?? {}
|
|
@@ -15442,10 +15651,10 @@ import { jsx as jsx152 } from "react/jsx-runtime";
|
|
|
15442
15651
|
import * as React122 from "react";
|
|
15443
15652
|
import { jsx as jsx162 } from "react/jsx-runtime";
|
|
15444
15653
|
import * as React16 from "react";
|
|
15445
|
-
import * as
|
|
15654
|
+
import * as React132 from "react";
|
|
15446
15655
|
import * as ReactDOM from "react-dom";
|
|
15447
15656
|
import { jsx as jsx172 } from "react/jsx-runtime";
|
|
15448
|
-
import * as
|
|
15657
|
+
import * as React14 from "react";
|
|
15449
15658
|
import * as React152 from "react";
|
|
15450
15659
|
import { jsx as jsx182 } from "react/jsx-runtime";
|
|
15451
15660
|
import * as React172 from "react";
|
|
@@ -15672,8 +15881,8 @@ var useHoverTransforms = (ref, disabled) => {
|
|
|
15672
15881
|
progress: 0,
|
|
15673
15882
|
isActive: false
|
|
15674
15883
|
});
|
|
15675
|
-
const eventTarget =
|
|
15676
|
-
|
|
15884
|
+
const eventTarget = useMemo41(() => new EventTarget, []);
|
|
15885
|
+
useEffect21(() => {
|
|
15677
15886
|
if (disabled) {
|
|
15678
15887
|
eventTarget.dispatchEvent(new Event("disabled"));
|
|
15679
15888
|
} else {
|
|
@@ -15820,7 +16029,7 @@ var getAngle = (ref, coordinates) => {
|
|
|
15820
16029
|
var lastCoordinates = null;
|
|
15821
16030
|
var useMousePosition = (ref) => {
|
|
15822
16031
|
const [angle, setAngle] = useState23(getAngle(ref.current, lastCoordinates));
|
|
15823
|
-
|
|
16032
|
+
useEffect21(() => {
|
|
15824
16033
|
const element = ref.current;
|
|
15825
16034
|
if (!element) {
|
|
15826
16035
|
return;
|
|
@@ -16484,7 +16693,7 @@ var NODES = [
|
|
|
16484
16693
|
"ul"
|
|
16485
16694
|
];
|
|
16486
16695
|
var Primitive = NODES.reduce((primitive, node) => {
|
|
16487
|
-
const Node2 =
|
|
16696
|
+
const Node2 = React132.forwardRef((props, forwardedRef) => {
|
|
16488
16697
|
const { asChild, ...primitiveProps } = props;
|
|
16489
16698
|
const Comp = asChild ? Slot2 : node;
|
|
16490
16699
|
if (typeof window !== "undefined") {
|
|
@@ -16500,11 +16709,11 @@ function dispatchDiscreteCustomEvent(target, event) {
|
|
|
16500
16709
|
ReactDOM.flushSync(() => target.dispatchEvent(event));
|
|
16501
16710
|
}
|
|
16502
16711
|
function useCallbackRef(callback) {
|
|
16503
|
-
const callbackRef =
|
|
16504
|
-
|
|
16712
|
+
const callbackRef = React14.useRef(callback);
|
|
16713
|
+
React14.useEffect(() => {
|
|
16505
16714
|
callbackRef.current = callback;
|
|
16506
16715
|
});
|
|
16507
|
-
return
|
|
16716
|
+
return React14.useMemo(() => (...args) => callbackRef.current?.(...args), []);
|
|
16508
16717
|
}
|
|
16509
16718
|
function useEscapeKeydown(onEscapeKeyDownProp, ownerDocument = globalThis?.document) {
|
|
16510
16719
|
const onEscapeKeyDown = useCallbackRef(onEscapeKeyDownProp);
|
|
@@ -22119,7 +22328,7 @@ var Triangle2 = (props) => {
|
|
|
22119
22328
|
};
|
|
22120
22329
|
|
|
22121
22330
|
// src/components/homepage/FreePricing.tsx
|
|
22122
|
-
import React53, { useCallback as useCallback33, useMemo as
|
|
22331
|
+
import React53, { useCallback as useCallback33, useMemo as useMemo50 } from "react";
|
|
22123
22332
|
|
|
22124
22333
|
// ../../node_modules/.bun/tailwind-merge@2.5.2/node_modules/tailwind-merge/dist/bundle-mjs.mjs
|
|
22125
22334
|
var CLASS_PART_SEPARATOR2 = "-";
|
|
@@ -23776,14 +23985,14 @@ var CompanyPricing = () => {
|
|
|
23776
23985
|
}, []);
|
|
23777
23986
|
const creatorsPrice = creatorsSelected ? devSeatCount * SEAT_PRICE : 0;
|
|
23778
23987
|
const automatorsPrice = automatorsSelected ? Math.ceil(cloudRenders / 1000) * RENDER_UNIT_PRICE : 0;
|
|
23779
|
-
const totalPrice =
|
|
23988
|
+
const totalPrice = useMemo50(() => {
|
|
23780
23989
|
const basePrice = creatorsPrice + automatorsPrice;
|
|
23781
23990
|
if (automatorsSelected) {
|
|
23782
23991
|
return Math.max(100, basePrice);
|
|
23783
23992
|
}
|
|
23784
23993
|
return basePrice;
|
|
23785
23994
|
}, [creatorsPrice, automatorsPrice, automatorsSelected]);
|
|
23786
|
-
const totalPriceString =
|
|
23995
|
+
const totalPriceString = useMemo50(() => {
|
|
23787
23996
|
return formatPrice(totalPrice);
|
|
23788
23997
|
}, [formatPrice, totalPrice]);
|
|
23789
23998
|
const showMinimumMessage = automatorsSelected && creatorsPrice + automatorsPrice < 100;
|
|
@@ -24056,7 +24265,7 @@ var Pricing = () => {
|
|
|
24056
24265
|
};
|
|
24057
24266
|
|
|
24058
24267
|
// src/components/homepage/BackgroundAnimation.tsx
|
|
24059
|
-
import { useEffect as
|
|
24268
|
+
import { useEffect as useEffect40 } from "react";
|
|
24060
24269
|
import { jsx as jsx49, jsxs as jsxs10 } from "react/jsx-runtime";
|
|
24061
24270
|
"use client";
|
|
24062
24271
|
var rx = 0.2;
|
|
@@ -24082,7 +24291,7 @@ var BackgroundAnimation = () => {
|
|
|
24082
24291
|
}
|
|
24083
24292
|
}
|
|
24084
24293
|
`;
|
|
24085
|
-
|
|
24294
|
+
useEffect40(() => {
|
|
24086
24295
|
const _style = document.createElement("style");
|
|
24087
24296
|
_style.innerHTML = css;
|
|
24088
24297
|
document.head.appendChild(_style);
|
|
@@ -24488,16 +24697,16 @@ var CommunityStats_default = CommunityStats;
|
|
|
24488
24697
|
import { jsx as jsx56, jsxs as jsxs13 } from "react/jsx-runtime";
|
|
24489
24698
|
import { jsx as jsx214, jsxs as jsxs24, Fragment as Fragment11 } from "react/jsx-runtime";
|
|
24490
24699
|
import React56 from "react";
|
|
24491
|
-
import { useContext as useContext210, useEffect as
|
|
24700
|
+
import { useContext as useContext210, useEffect as useEffect41, useState as useState40 } from "react";
|
|
24492
24701
|
import { useContext as useContext44, useLayoutEffect as useLayoutEffect17 } from "react";
|
|
24493
24702
|
import { jsx as jsx313 } from "react/jsx-runtime";
|
|
24494
24703
|
import { useCallback as useCallback34, useRef as useRef42 } from "react";
|
|
24495
|
-
import { useEffect as
|
|
24704
|
+
import { useEffect as useEffect210, useState as useState24 } from "react";
|
|
24496
24705
|
import { useLayoutEffect as useLayoutEffect23 } from "react";
|
|
24497
24706
|
import { useContext as useContext45, useEffect as useEffect52, useRef as useRef52 } from "react";
|
|
24498
24707
|
import { useEffect as useEffect310, useRef as useRef310 } from "react";
|
|
24499
|
-
import { useCallback as useCallback24, useContext as useContext39, useMemo as
|
|
24500
|
-
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";
|
|
24501
24710
|
import { useCallback as useCallback35, useEffect as useEffect62, useMemo as useMemo212, useState as useState42 } from "react";
|
|
24502
24711
|
import {
|
|
24503
24712
|
forwardRef as forwardRef210,
|
|
@@ -24526,10 +24735,10 @@ import { jsx as jsx55 } from "react/jsx-runtime";
|
|
|
24526
24735
|
import { useCallback as useCallback82, useEffect as useEffect112, useMemo as useMemo92, useRef as useRef92, useState as useState102 } from "react";
|
|
24527
24736
|
import { jsx as jsx64 } from "react/jsx-runtime";
|
|
24528
24737
|
import { useCallback as useCallback52, useMemo as useMemo410, useRef as useRef62, useState as useState62 } from "react";
|
|
24529
|
-
import React54, { useCallback as useCallback42, useMemo as
|
|
24738
|
+
import React54, { useCallback as useCallback42, useMemo as useMemo39, useState as useState52 } from "react";
|
|
24530
24739
|
import { jsx as jsx74, jsxs as jsxs33 } from "react/jsx-runtime";
|
|
24531
24740
|
import { jsx as jsx84, jsxs as jsxs43 } from "react/jsx-runtime";
|
|
24532
|
-
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";
|
|
24533
24742
|
import { useEffect as useEffect83, useRef as useRef72, useState as useState72 } from "react";
|
|
24534
24743
|
import { jsx as jsx94, jsxs as jsxs53 } from "react/jsx-runtime";
|
|
24535
24744
|
import { useCallback as useCallback72, useEffect as useEffect102, useMemo as useMemo62, useRef as useRef82, useState as useState92 } from "react";
|
|
@@ -25338,7 +25547,7 @@ import {
|
|
|
25338
25547
|
useRef as useRef142,
|
|
25339
25548
|
useState as useState142
|
|
25340
25549
|
} from "react";
|
|
25341
|
-
import
|
|
25550
|
+
import React133, {
|
|
25342
25551
|
forwardRef as forwardRef34,
|
|
25343
25552
|
Suspense as Suspense22,
|
|
25344
25553
|
useCallback as useCallback132,
|
|
@@ -25807,7 +26016,7 @@ var PlayerEmitterProvider = ({ children, currentPlaybackRate }) => {
|
|
|
25807
26016
|
if (!bufferManager) {
|
|
25808
26017
|
throw new Error("BufferingContextReact not found");
|
|
25809
26018
|
}
|
|
25810
|
-
|
|
26019
|
+
useEffect41(() => {
|
|
25811
26020
|
if (currentPlaybackRate) {
|
|
25812
26021
|
emitter.dispatchRateChange(currentPlaybackRate);
|
|
25813
26022
|
}
|
|
@@ -25820,7 +26029,7 @@ var PlayerEmitterProvider = ({ children, currentPlaybackRate }) => {
|
|
|
25820
26029
|
};
|
|
25821
26030
|
var useHoverState = (ref, hideControlsWhenPointerDoesntMove) => {
|
|
25822
26031
|
const [hovered, setHovered] = useState24(false);
|
|
25823
|
-
|
|
26032
|
+
useEffect210(() => {
|
|
25824
26033
|
const { current } = ref;
|
|
25825
26034
|
if (!current) {
|
|
25826
26035
|
return;
|
|
@@ -25995,7 +26204,7 @@ var usePlayer = () => {
|
|
|
25995
26204
|
const isBuffering = useCallback24(() => {
|
|
25996
26205
|
return buffering.current;
|
|
25997
26206
|
}, [buffering]);
|
|
25998
|
-
const returnValue =
|
|
26207
|
+
const returnValue = useMemo51(() => {
|
|
25999
26208
|
return {
|
|
26000
26209
|
frameBack,
|
|
26001
26210
|
frameForward,
|
|
@@ -26181,7 +26390,7 @@ var getIsBackgrounded = () => {
|
|
|
26181
26390
|
};
|
|
26182
26391
|
var useIsBackgrounded = () => {
|
|
26183
26392
|
const isBackgrounded = useRef43(getIsBackgrounded());
|
|
26184
|
-
|
|
26393
|
+
useEffect42(() => {
|
|
26185
26394
|
const onVisibilityChange = () => {
|
|
26186
26395
|
isBackgrounded.current = getIsBackgrounded();
|
|
26187
26396
|
};
|
|
@@ -26228,7 +26437,6 @@ var usePlayback = ({
|
|
|
26228
26437
|
const setFrame = Internals.Timeline.useTimelineSetFrame();
|
|
26229
26438
|
const sharedAudioContext = useContext45(Internals.SharedAudioContext);
|
|
26230
26439
|
const logLevel = Internals.useLogLevel();
|
|
26231
|
-
const timelineContext = Internals.useTimelineContext();
|
|
26232
26440
|
const isBackgroundedRef = useIsBackgrounded();
|
|
26233
26441
|
const lastTimeUpdateTimestamp = useRef52(0);
|
|
26234
26442
|
const context = useContext45(Internals.BufferingContextReact);
|
|
@@ -26254,19 +26462,13 @@ var usePlayback = ({
|
|
|
26254
26462
|
audioContext: sharedAudioContext.audioContext,
|
|
26255
26463
|
audioSyncAnchor: sharedAudioContext.audioSyncAnchor,
|
|
26256
26464
|
absoluteTimeInSeconds: frame / config.fps,
|
|
26257
|
-
globalPlaybackRate:
|
|
26465
|
+
globalPlaybackRate: playbackRate,
|
|
26258
26466
|
logLevel
|
|
26259
26467
|
});
|
|
26260
26468
|
if (changed) {
|
|
26261
26469
|
sharedAudioContext.audioSyncAnchorEmitter.dispatch("changed");
|
|
26262
26470
|
}
|
|
26263
|
-
}, [
|
|
26264
|
-
config,
|
|
26265
|
-
frame,
|
|
26266
|
-
logLevel,
|
|
26267
|
-
sharedAudioContext,
|
|
26268
|
-
timelineContext.playbackRate
|
|
26269
|
-
]);
|
|
26471
|
+
}, [config, frame, logLevel, playbackRate, sharedAudioContext]);
|
|
26270
26472
|
useEffect52(() => {
|
|
26271
26473
|
if (!config) {
|
|
26272
26474
|
return;
|
|
@@ -26343,7 +26545,7 @@ var usePlayback = ({
|
|
|
26343
26545
|
audioContext: sharedAudioContext.audioContext,
|
|
26344
26546
|
audioSyncAnchor: sharedAudioContext.audioSyncAnchor,
|
|
26345
26547
|
absoluteTimeInSeconds: getCurrentFrame() / config.fps,
|
|
26346
|
-
globalPlaybackRate:
|
|
26548
|
+
globalPlaybackRate: playbackRate,
|
|
26347
26549
|
logLevel
|
|
26348
26550
|
});
|
|
26349
26551
|
startedTime = performance.now();
|
|
@@ -26400,7 +26602,6 @@ var usePlayback = ({
|
|
|
26400
26602
|
context,
|
|
26401
26603
|
isPlaying,
|
|
26402
26604
|
sharedAudioContext,
|
|
26403
|
-
timelineContext.playbackRate,
|
|
26404
26605
|
logLevel,
|
|
26405
26606
|
muted
|
|
26406
26607
|
]);
|
|
@@ -26675,7 +26876,7 @@ var DefaultVolumeSlider = ({
|
|
|
26675
26876
|
inputRef,
|
|
26676
26877
|
setVolume
|
|
26677
26878
|
}) => {
|
|
26678
|
-
const sliderContainer =
|
|
26879
|
+
const sliderContainer = useMemo39(() => {
|
|
26679
26880
|
const paddingLeft = 5;
|
|
26680
26881
|
const common = {
|
|
26681
26882
|
paddingLeft,
|
|
@@ -26700,7 +26901,7 @@ var DefaultVolumeSlider = ({
|
|
|
26700
26901
|
const onVolumeChange = useCallback42((e) => {
|
|
26701
26902
|
setVolume(parseFloat(e.target.value));
|
|
26702
26903
|
}, [setVolume]);
|
|
26703
|
-
const inputStyle =
|
|
26904
|
+
const inputStyle = useMemo39(() => {
|
|
26704
26905
|
const commonStyle = {
|
|
26705
26906
|
WebkitAppearance: "none",
|
|
26706
26907
|
backgroundColor: "rgba(255, 255, 255, 0.5)",
|
|
@@ -26920,7 +27121,7 @@ var PlaybackrateOption = ({ rate, onSelect, selectedRate, keyboardSelectedRate }
|
|
|
26920
27121
|
setHovered(false);
|
|
26921
27122
|
}, []);
|
|
26922
27123
|
const isFocused = keyboardSelectedRate === rate;
|
|
26923
|
-
const actualStyle =
|
|
27124
|
+
const actualStyle = useMemo52(() => {
|
|
26924
27125
|
return {
|
|
26925
27126
|
...rateDiv,
|
|
26926
27127
|
backgroundColor: hovered || isFocused ? "#eee" : "transparent"
|
|
@@ -26943,7 +27144,7 @@ var PlaybackrateOption = ({ rate, onSelect, selectedRate, keyboardSelectedRate }
|
|
|
26943
27144
|
}, rate);
|
|
26944
27145
|
};
|
|
26945
27146
|
var PlaybackPopup = ({ setIsComponentVisible, playbackRates, canvasSize }) => {
|
|
26946
|
-
const { setPlaybackRate, playbackRate } = Internals.
|
|
27147
|
+
const { setPlaybackRate, playbackRate } = Internals.usePlaybackRate();
|
|
26947
27148
|
const [keyboardSelectedRate, setKeyboardSelectedRate] = useState82(playbackRate);
|
|
26948
27149
|
useEffect92(() => {
|
|
26949
27150
|
const listener = (e) => {
|
|
@@ -26987,7 +27188,7 @@ var PlaybackPopup = ({ setIsComponentVisible, playbackRates, canvasSize }) => {
|
|
|
26987
27188
|
setPlaybackRate(rate);
|
|
26988
27189
|
setIsComponentVisible(false);
|
|
26989
27190
|
}, [setIsComponentVisible, setPlaybackRate]);
|
|
26990
|
-
const playbackPopup =
|
|
27191
|
+
const playbackPopup = useMemo52(() => {
|
|
26991
27192
|
return {
|
|
26992
27193
|
position: "absolute",
|
|
26993
27194
|
right: 0,
|
|
@@ -27045,7 +27246,7 @@ var button = {
|
|
|
27045
27246
|
};
|
|
27046
27247
|
var PlaybackrateControl = ({ playbackRates, canvasSize }) => {
|
|
27047
27248
|
const { ref, isComponentVisible, setIsComponentVisible } = useComponentVisible(false);
|
|
27048
|
-
const { playbackRate } = Internals.
|
|
27249
|
+
const { playbackRate } = Internals.usePlaybackRate();
|
|
27049
27250
|
const onClick = useCallback62((e) => {
|
|
27050
27251
|
e.stopPropagation();
|
|
27051
27252
|
e.preventDefault();
|
|
@@ -28162,6 +28363,7 @@ var PLAYER_COMP_ID = "player-comp";
|
|
|
28162
28363
|
var SharedPlayerContexts = ({
|
|
28163
28364
|
children,
|
|
28164
28365
|
timelineContext,
|
|
28366
|
+
playbackRateContext,
|
|
28165
28367
|
fps,
|
|
28166
28368
|
compositionHeight,
|
|
28167
28369
|
compositionWidth,
|
|
@@ -28262,23 +28464,26 @@ var SharedPlayerContexts = ({
|
|
|
28262
28464
|
children: /* @__PURE__ */ jsx133(Internals.CanUseRemotionHooksProvider, {
|
|
28263
28465
|
children: /* @__PURE__ */ jsx133(Internals.AbsoluteTimeContext.Provider, {
|
|
28264
28466
|
value: timelineContext,
|
|
28265
|
-
children: /* @__PURE__ */ jsx133(Internals.
|
|
28266
|
-
value:
|
|
28267
|
-
children: /* @__PURE__ */ jsx133(Internals.
|
|
28268
|
-
value:
|
|
28269
|
-
children: /* @__PURE__ */ jsx133(Internals.
|
|
28270
|
-
|
|
28271
|
-
|
|
28272
|
-
|
|
28273
|
-
children: /* @__PURE__ */ jsx133(Internals.
|
|
28274
|
-
value:
|
|
28275
|
-
children: /* @__PURE__ */ jsx133(Internals.
|
|
28276
|
-
|
|
28277
|
-
|
|
28278
|
-
|
|
28279
|
-
|
|
28280
|
-
|
|
28281
|
-
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
|
+
})
|
|
28282
28487
|
})
|
|
28283
28488
|
})
|
|
28284
28489
|
})
|
|
@@ -28550,14 +28755,16 @@ var PlayerFn = ({
|
|
|
28550
28755
|
frame,
|
|
28551
28756
|
playing,
|
|
28552
28757
|
rootId,
|
|
28553
|
-
playbackRate: currentPlaybackRate,
|
|
28554
28758
|
imperativePlaying,
|
|
28555
|
-
setPlaybackRate: (rate) => {
|
|
28556
|
-
setCurrentPlaybackRate(rate);
|
|
28557
|
-
},
|
|
28558
28759
|
audioAndVideoTags
|
|
28559
28760
|
};
|
|
28560
|
-
}, [frame,
|
|
28761
|
+
}, [frame, playing, rootId]);
|
|
28762
|
+
const playbackRateContextValue = useMemo142(() => {
|
|
28763
|
+
return {
|
|
28764
|
+
playbackRate: currentPlaybackRate,
|
|
28765
|
+
setPlaybackRate: setCurrentPlaybackRate
|
|
28766
|
+
};
|
|
28767
|
+
}, [currentPlaybackRate]);
|
|
28561
28768
|
const setTimelineContextValue = useMemo142(() => {
|
|
28562
28769
|
return {
|
|
28563
28770
|
setFrame,
|
|
@@ -28578,6 +28785,7 @@ var PlayerFn = ({
|
|
|
28578
28785
|
return /* @__PURE__ */ jsx143(Internals.IsPlayerContextProvider, {
|
|
28579
28786
|
children: /* @__PURE__ */ jsx143(SharedPlayerContexts, {
|
|
28580
28787
|
timelineContext: timelineContextValue,
|
|
28788
|
+
playbackRateContext: playbackRateContextValue,
|
|
28581
28789
|
component,
|
|
28582
28790
|
compositionHeight,
|
|
28583
28791
|
compositionWidth,
|
|
@@ -28655,7 +28863,7 @@ var useThumbnail = () => {
|
|
|
28655
28863
|
}, [emitter]);
|
|
28656
28864
|
return returnValue;
|
|
28657
28865
|
};
|
|
28658
|
-
var reactVersion2 =
|
|
28866
|
+
var reactVersion2 = React133.version.split(".")[0];
|
|
28659
28867
|
if (reactVersion2 === "0") {
|
|
28660
28868
|
throw new Error(`Version ${reactVersion2} of "react" is not supported by Remotion`);
|
|
28661
28869
|
}
|
|
@@ -28809,14 +29017,18 @@ var ThumbnailFn = ({
|
|
|
28809
29017
|
imperativePlaying: {
|
|
28810
29018
|
current: false
|
|
28811
29019
|
},
|
|
28812
|
-
playbackRate: 1,
|
|
28813
|
-
setPlaybackRate: () => {
|
|
28814
|
-
throw new Error("thumbnail");
|
|
28815
|
-
},
|
|
28816
29020
|
audioAndVideoTags: { current: [] }
|
|
28817
29021
|
};
|
|
28818
29022
|
return value;
|
|
28819
29023
|
}, [frameToDisplay, thumbnailId]);
|
|
29024
|
+
const playbackRateContext = useMemo172(() => {
|
|
29025
|
+
return {
|
|
29026
|
+
playbackRate: 1,
|
|
29027
|
+
setPlaybackRate: () => {
|
|
29028
|
+
throw new Error("thumbnail");
|
|
29029
|
+
}
|
|
29030
|
+
};
|
|
29031
|
+
}, []);
|
|
28820
29032
|
useImperativeHandle42(ref, () => rootRef.current, []);
|
|
28821
29033
|
const Component = Internals.useLazyComponent({
|
|
28822
29034
|
compProps: componentProps,
|
|
@@ -28830,6 +29042,7 @@ var ThumbnailFn = ({
|
|
|
28830
29042
|
return /* @__PURE__ */ jsx163(Internals.IsPlayerContextProvider, {
|
|
28831
29043
|
children: /* @__PURE__ */ jsx163(SharedPlayerContexts, {
|
|
28832
29044
|
timelineContext: timelineState,
|
|
29045
|
+
playbackRateContext,
|
|
28833
29046
|
component: Component,
|
|
28834
29047
|
compositionHeight,
|
|
28835
29048
|
compositionWidth,
|
|
@@ -28864,8 +29077,8 @@ var Thumbnail = forward2(ThumbnailFn);
|
|
|
28864
29077
|
// src/components/homepage/Demo/index.tsx
|
|
28865
29078
|
import {
|
|
28866
29079
|
useCallback as useCallback49,
|
|
28867
|
-
useEffect as
|
|
28868
|
-
useMemo as
|
|
29080
|
+
useEffect as useEffect57,
|
|
29081
|
+
useMemo as useMemo64,
|
|
28869
29082
|
useRef as useRef53,
|
|
28870
29083
|
useState as useState56
|
|
28871
29084
|
} from "react";
|
|
@@ -29616,7 +29829,7 @@ var UNDERLAY_RED = curriedTransparentize$1(0.9, RED);
|
|
|
29616
29829
|
var BLUE_TEXT = curriedDarken$1(0.3, "#42e9f5");
|
|
29617
29830
|
|
|
29618
29831
|
// src/components/homepage/layout/use-color-mode.tsx
|
|
29619
|
-
import React57, { useContext as useContext46, useMemo as
|
|
29832
|
+
import React57, { useContext as useContext46, useMemo as useMemo53 } from "react";
|
|
29620
29833
|
import { jsx as jsx57 } from "react/jsx-runtime";
|
|
29621
29834
|
var Context = React57.createContext(undefined);
|
|
29622
29835
|
var ColorModeProvider = ({
|
|
@@ -29624,7 +29837,7 @@ var ColorModeProvider = ({
|
|
|
29624
29837
|
colorMode,
|
|
29625
29838
|
setColorMode
|
|
29626
29839
|
}) => {
|
|
29627
|
-
const value =
|
|
29840
|
+
const value = useMemo53(() => {
|
|
29628
29841
|
return { colorMode, setColorMode };
|
|
29629
29842
|
}, [colorMode, setColorMode]);
|
|
29630
29843
|
return /* @__PURE__ */ jsx57(Context.Provider, {
|
|
@@ -29642,8 +29855,8 @@ function useColorMode() {
|
|
|
29642
29855
|
|
|
29643
29856
|
// ../media/dist/esm/index.mjs
|
|
29644
29857
|
import { useState as useState312 } from "react";
|
|
29645
|
-
import { useMemo as
|
|
29646
|
-
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";
|
|
29647
29860
|
import { ALL_FORMATS, Input as Input2, UrlSource } from "mediabunny";
|
|
29648
29861
|
import { AudioBufferSink, InputDisposedError } from "mediabunny";
|
|
29649
29862
|
import { CanvasSink } from "mediabunny";
|
|
@@ -29666,7 +29879,7 @@ import { jsx as jsx315 } from "react/jsx-runtime";
|
|
|
29666
29879
|
import { useMemo as useMemo63, useState as useState63 } from "react";
|
|
29667
29880
|
import {
|
|
29668
29881
|
useContext as useContext47,
|
|
29669
|
-
useEffect as
|
|
29882
|
+
useEffect as useEffect212,
|
|
29670
29883
|
useLayoutEffect as useLayoutEffect34,
|
|
29671
29884
|
useMemo as useMemo412,
|
|
29672
29885
|
useRef as useRef210,
|
|
@@ -29676,7 +29889,7 @@ import { jsx as jsx412 } from "react/jsx-runtime";
|
|
|
29676
29889
|
import {
|
|
29677
29890
|
useContext as useContext53,
|
|
29678
29891
|
useLayoutEffect as useLayoutEffect43,
|
|
29679
|
-
useMemo as
|
|
29892
|
+
useMemo as useMemo54,
|
|
29680
29893
|
useRef as useRef312,
|
|
29681
29894
|
useState as useState53
|
|
29682
29895
|
} from "react";
|
|
@@ -30471,65 +30684,90 @@ var makeNonceManager = () => {
|
|
|
30471
30684
|
createAsyncOperation
|
|
30472
30685
|
};
|
|
30473
30686
|
};
|
|
30687
|
+
var BUFFER_SIZE = 3;
|
|
30474
30688
|
var canvasesAheadOfTime = (videoSink, startTimestamp) => {
|
|
30475
30689
|
const iterator = videoSink.canvases(startTimestamp);
|
|
30476
|
-
|
|
30477
|
-
let
|
|
30478
|
-
|
|
30479
|
-
|
|
30480
|
-
|
|
30481
|
-
|
|
30482
|
-
|
|
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;
|
|
30483
30717
|
}
|
|
30718
|
+
fillNext();
|
|
30484
30719
|
}, () => {
|
|
30485
|
-
|
|
30720
|
+
chaining = false;
|
|
30721
|
+
inFlight = null;
|
|
30486
30722
|
});
|
|
30487
30723
|
};
|
|
30488
|
-
|
|
30489
|
-
const advance2 = () => {
|
|
30490
|
-
inFlight = iterator.next();
|
|
30491
|
-
resolved = null;
|
|
30492
|
-
trackResolution();
|
|
30493
|
-
};
|
|
30724
|
+
fillNext();
|
|
30494
30725
|
const next = () => {
|
|
30495
|
-
|
|
30496
|
-
|
|
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) {
|
|
30497
30751
|
return { type: "ready", frame: null };
|
|
30498
30752
|
}
|
|
30499
|
-
|
|
30500
|
-
advance2();
|
|
30501
|
-
return { type: "ready", frame };
|
|
30753
|
+
return { type: "ready", frame: slot.resolved.value };
|
|
30502
30754
|
}
|
|
30503
|
-
const captured = inFlight;
|
|
30504
30755
|
return {
|
|
30505
30756
|
type: "pending",
|
|
30506
30757
|
wait: async () => {
|
|
30507
|
-
const result = await
|
|
30508
|
-
if (captured === inFlight && !result.done) {
|
|
30509
|
-
advance2();
|
|
30510
|
-
}
|
|
30758
|
+
const result = await slot.promise;
|
|
30511
30759
|
return result.done ? null : result.value;
|
|
30512
30760
|
}
|
|
30513
30761
|
};
|
|
30514
30762
|
};
|
|
30515
|
-
const closeFrame = (frame) => {
|
|
30516
|
-
frame.close?.();
|
|
30517
|
-
};
|
|
30518
30763
|
const closeIterator = async () => {
|
|
30519
|
-
|
|
30520
|
-
|
|
30521
|
-
|
|
30764
|
+
closed = true;
|
|
30765
|
+
for (const slot of buffer) {
|
|
30766
|
+
if (slot.resolved && !slot.resolved.done) {
|
|
30767
|
+
closeFrame(slot.resolved.value);
|
|
30522
30768
|
}
|
|
30523
|
-
} else {
|
|
30524
|
-
const captured = inFlight;
|
|
30525
|
-
captured.then((result) => {
|
|
30526
|
-
if (!result.done) {
|
|
30527
|
-
closeFrame(result.value);
|
|
30528
|
-
}
|
|
30529
|
-
}, () => {
|
|
30530
|
-
return;
|
|
30531
|
-
});
|
|
30532
30769
|
}
|
|
30770
|
+
buffer.length = 0;
|
|
30533
30771
|
await iterator.return();
|
|
30534
30772
|
};
|
|
30535
30773
|
return { next, closeIterator };
|
|
@@ -31555,8 +31793,7 @@ var AudioForPreviewAssertedShowing = ({
|
|
|
31555
31793
|
const [mediaPlayerReady, setMediaPlayerReady] = useState41(false);
|
|
31556
31794
|
const [shouldFallbackToNativeAudio, setShouldFallbackToNativeAudio] = useState41(false);
|
|
31557
31795
|
const [playing] = Timeline.usePlayingState();
|
|
31558
|
-
const
|
|
31559
|
-
const globalPlaybackRate = timelineContext.playbackRate;
|
|
31796
|
+
const { playbackRate: globalPlaybackRate } = Internals.usePlaybackRate();
|
|
31560
31797
|
const sharedAudioContext = useContext212(SharedAudioContext2);
|
|
31561
31798
|
const buffer = useBufferState();
|
|
31562
31799
|
const [mediaMuted] = useMediaMutedState2();
|
|
@@ -31619,7 +31856,7 @@ var AudioForPreviewAssertedShowing = ({
|
|
|
31619
31856
|
logLevel,
|
|
31620
31857
|
label: "AudioForPreview"
|
|
31621
31858
|
});
|
|
31622
|
-
|
|
31859
|
+
useEffect43(() => {
|
|
31623
31860
|
if (!sharedAudioContext)
|
|
31624
31861
|
return;
|
|
31625
31862
|
if (!sharedAudioContext.audioContext)
|
|
@@ -31807,7 +32044,7 @@ var AudioForPreview2 = ({
|
|
|
31807
32044
|
const frame = useCurrentFrame();
|
|
31808
32045
|
const videoConfig = useVideoConfig();
|
|
31809
32046
|
const currentTime = frame / videoConfig.fps;
|
|
31810
|
-
const showShow =
|
|
32047
|
+
const showShow = useMemo55(() => {
|
|
31811
32048
|
return getTimeInSeconds({
|
|
31812
32049
|
unloopedTimeInSeconds: currentTime,
|
|
31813
32050
|
playbackRate,
|
|
@@ -33895,7 +34132,7 @@ var AudioInner = (props) => {
|
|
|
33895
34132
|
loop: props.loop ?? false
|
|
33896
34133
|
});
|
|
33897
34134
|
const [mediaDurationInSeconds, setMediaDurationInSeconds] = useState312(null);
|
|
33898
|
-
const loopDisplay =
|
|
34135
|
+
const loopDisplay = useMemo311(() => getLoopDisplay({
|
|
33899
34136
|
loop: props.loop ?? false,
|
|
33900
34137
|
mediaDurationInSeconds,
|
|
33901
34138
|
playbackRate: props.playbackRate ?? 1,
|
|
@@ -33912,7 +34149,7 @@ var AudioInner = (props) => {
|
|
|
33912
34149
|
sequenceDurationInFrames,
|
|
33913
34150
|
videoConfig.fps
|
|
33914
34151
|
]);
|
|
33915
|
-
const isMedia =
|
|
34152
|
+
const isMedia = useMemo311(() => ({
|
|
33916
34153
|
type: "audio",
|
|
33917
34154
|
data: basicInfo
|
|
33918
34155
|
}), [basicInfo]);
|
|
@@ -34034,8 +34271,7 @@ var VideoForPreviewAssertedShowing = ({
|
|
|
34034
34271
|
const [mediaPlayerReady, setMediaPlayerReady] = useState43(false);
|
|
34035
34272
|
const [shouldFallbackToNativeVideo, setShouldFallbackToNativeVideo] = useState43(false);
|
|
34036
34273
|
const [playing] = Timeline2.usePlayingState();
|
|
34037
|
-
const
|
|
34038
|
-
const globalPlaybackRate = timelineContext.playbackRate;
|
|
34274
|
+
const { playbackRate: globalPlaybackRate } = Internals.usePlaybackRate();
|
|
34039
34275
|
const sharedAudioContext = useContext47(SharedAudioContext22);
|
|
34040
34276
|
const buffer = useBufferState();
|
|
34041
34277
|
const [mediaMuted] = useMediaMutedState22();
|
|
@@ -34117,7 +34353,7 @@ var VideoForPreviewAssertedShowing = ({
|
|
|
34117
34353
|
cacheVideoFrame(src, canvas);
|
|
34118
34354
|
};
|
|
34119
34355
|
}, [_experimentalInitiallyDrawCachedFrame, src]);
|
|
34120
|
-
|
|
34356
|
+
useEffect212(() => {
|
|
34121
34357
|
if (!sharedAudioContext)
|
|
34122
34358
|
return;
|
|
34123
34359
|
if (!sharedAudioContext.audioContext)
|
|
@@ -34397,7 +34633,7 @@ var VideoForRendering2 = ({
|
|
|
34397
34633
|
const { registerRenderAsset, unregisterRenderAsset } = useContext53(Internals.RenderAssetManager);
|
|
34398
34634
|
const startsAt = Internals.useMediaStartsAt();
|
|
34399
34635
|
const sequenceContext = useContext53(Internals.SequenceContext);
|
|
34400
|
-
const id =
|
|
34636
|
+
const id = useMemo54(() => `media-video-${random(src)}-${sequenceContext?.cumulatedFrom}-${sequenceContext?.relativeFrom}-${sequenceContext?.durationInFrames}`, [
|
|
34401
34637
|
src,
|
|
34402
34638
|
sequenceContext?.cumulatedFrom,
|
|
34403
34639
|
sequenceContext?.relativeFrom,
|
|
@@ -34590,10 +34826,10 @@ var VideoForRendering2 = ({
|
|
|
34590
34826
|
credentials
|
|
34591
34827
|
]);
|
|
34592
34828
|
warnAboutObjectFitInStyleOrClassName({ style: style2, className: className2, logLevel });
|
|
34593
|
-
const classNameValue =
|
|
34829
|
+
const classNameValue = useMemo54(() => {
|
|
34594
34830
|
return [Internals.OBJECTFIT_CONTAIN_CLASS_NAME, className2].filter(Internals.truthy).join(" ");
|
|
34595
34831
|
}, [className2]);
|
|
34596
|
-
const styleWithObjectFit =
|
|
34832
|
+
const styleWithObjectFit = useMemo54(() => {
|
|
34597
34833
|
return {
|
|
34598
34834
|
...style2,
|
|
34599
34835
|
objectFit: objectFitProp
|
|
@@ -34678,34 +34914,7 @@ var videoSchema = {
|
|
|
34678
34914
|
description: "Playback Rate"
|
|
34679
34915
|
},
|
|
34680
34916
|
loop: { type: "boolean", default: false, description: "Loop" },
|
|
34681
|
-
|
|
34682
|
-
type: "translate",
|
|
34683
|
-
step: 1,
|
|
34684
|
-
default: "0px 0px",
|
|
34685
|
-
description: "Position"
|
|
34686
|
-
},
|
|
34687
|
-
"style.scale": {
|
|
34688
|
-
type: "number",
|
|
34689
|
-
min: 0.05,
|
|
34690
|
-
max: 100,
|
|
34691
|
-
step: 0.01,
|
|
34692
|
-
default: 1,
|
|
34693
|
-
description: "Scale"
|
|
34694
|
-
},
|
|
34695
|
-
"style.rotate": {
|
|
34696
|
-
type: "rotation",
|
|
34697
|
-
step: 1,
|
|
34698
|
-
default: "0deg",
|
|
34699
|
-
description: "Rotation"
|
|
34700
|
-
},
|
|
34701
|
-
"style.opacity": {
|
|
34702
|
-
type: "number",
|
|
34703
|
-
min: 0,
|
|
34704
|
-
max: 1,
|
|
34705
|
-
step: 0.01,
|
|
34706
|
-
default: 1,
|
|
34707
|
-
description: "Opacity"
|
|
34708
|
-
}
|
|
34917
|
+
...Internals.sequenceStyleSchema
|
|
34709
34918
|
};
|
|
34710
34919
|
var InnerVideo = ({
|
|
34711
34920
|
src,
|
|
@@ -34934,13 +35143,13 @@ var Video = Internals.wrapInSchema(VideoInner, videoSchema);
|
|
|
34934
35143
|
Internals.addSequenceStackTraces(Video);
|
|
34935
35144
|
|
|
34936
35145
|
// src/components/homepage/Demo/Comp.tsx
|
|
34937
|
-
import { useCallback as useCallback41, useEffect as
|
|
35146
|
+
import { useCallback as useCallback41, useEffect as useEffect49, useMemo as useMemo58, useState as useState48 } from "react";
|
|
34938
35147
|
|
|
34939
35148
|
// src/components/homepage/Demo/Cards.tsx
|
|
34940
35149
|
import {
|
|
34941
35150
|
createRef as createRef4,
|
|
34942
35151
|
useCallback as useCallback40,
|
|
34943
|
-
useEffect as
|
|
35152
|
+
useEffect as useEffect48,
|
|
34944
35153
|
useRef as useRef49,
|
|
34945
35154
|
useState as useState47
|
|
34946
35155
|
} from "react";
|
|
@@ -35308,14 +35517,14 @@ var CurrentCountry = ({ theme, countryPaths, countryLabel }) => {
|
|
|
35308
35517
|
import {
|
|
35309
35518
|
forwardRef as forwardRef35,
|
|
35310
35519
|
useCallback as useCallback39,
|
|
35311
|
-
useEffect as
|
|
35520
|
+
useEffect as useEffect47,
|
|
35312
35521
|
useImperativeHandle as useImperativeHandle12,
|
|
35313
35522
|
useRef as useRef48
|
|
35314
35523
|
} from "react";
|
|
35315
35524
|
|
|
35316
35525
|
// ../lottie/dist/esm/index.mjs
|
|
35317
35526
|
import lottie from "lottie-web";
|
|
35318
|
-
import { useEffect as
|
|
35527
|
+
import { useEffect as useEffect45, useRef as useRef47, useState as useState44 } from "react";
|
|
35319
35528
|
import { jsx as jsx69 } from "react/jsx-runtime";
|
|
35320
35529
|
var getLottieMetadata = (animationData) => {
|
|
35321
35530
|
const width2 = animationData.w;
|
|
@@ -35391,14 +35600,14 @@ var Lottie = ({
|
|
|
35391
35600
|
onAnimationLoadedRef.current = onAnimationLoaded;
|
|
35392
35601
|
const { delayRender: delayRender2, continueRender } = useDelayRender();
|
|
35393
35602
|
const [handle] = useState44(() => delayRender2("Waiting for Lottie animation to load"));
|
|
35394
|
-
|
|
35603
|
+
useEffect45(() => {
|
|
35395
35604
|
return () => {
|
|
35396
35605
|
continueRender(handle);
|
|
35397
35606
|
};
|
|
35398
35607
|
}, [handle, continueRender]);
|
|
35399
35608
|
const frame = useCurrentFrame();
|
|
35400
35609
|
currentFrameRef.current = frame;
|
|
35401
|
-
|
|
35610
|
+
useEffect45(() => {
|
|
35402
35611
|
if (!containerRef.current) {
|
|
35403
35612
|
return;
|
|
35404
35613
|
}
|
|
@@ -35443,17 +35652,17 @@ var Lottie = ({
|
|
|
35443
35652
|
renderer,
|
|
35444
35653
|
continueRender
|
|
35445
35654
|
]);
|
|
35446
|
-
|
|
35655
|
+
useEffect45(() => {
|
|
35447
35656
|
if (animationRef.current && direction) {
|
|
35448
35657
|
animationRef.current.setDirection(direction === "backward" ? -1 : 1);
|
|
35449
35658
|
}
|
|
35450
35659
|
}, [direction]);
|
|
35451
|
-
|
|
35660
|
+
useEffect45(() => {
|
|
35452
35661
|
if (animationRef.current && playbackRate) {
|
|
35453
35662
|
animationRef.current.setSpeed(playbackRate);
|
|
35454
35663
|
}
|
|
35455
35664
|
}, [playbackRate]);
|
|
35456
|
-
|
|
35665
|
+
useEffect45(() => {
|
|
35457
35666
|
if (!animationRef.current) {
|
|
35458
35667
|
return;
|
|
35459
35668
|
}
|
|
@@ -35486,14 +35695,14 @@ var Lottie = ({
|
|
|
35486
35695
|
};
|
|
35487
35696
|
|
|
35488
35697
|
// src/components/homepage/Demo/DisplayedEmoji.tsx
|
|
35489
|
-
import { useEffect as
|
|
35698
|
+
import { useEffect as useEffect46, useMemo as useMemo56, useState as useState46 } from "react";
|
|
35490
35699
|
import { jsx as jsx70 } from "react/jsx-runtime";
|
|
35491
35700
|
var DisplayedEmoji = ({ emoji }) => {
|
|
35492
35701
|
const [data, setData] = useState46(null);
|
|
35493
35702
|
const { durationInFrames, fps } = useVideoConfig();
|
|
35494
35703
|
const [browser, setBrowser] = useState46(typeof document !== "undefined");
|
|
35495
35704
|
const { delayRender: delayRender2, continueRender, cancelRender: cancelRender2 } = useDelayRender();
|
|
35496
|
-
const src =
|
|
35705
|
+
const src = useMemo56(() => {
|
|
35497
35706
|
if (emoji === "melting") {
|
|
35498
35707
|
return "https://fonts.gstatic.com/s/e/notoemoji/latest/1fae0/lottie.json";
|
|
35499
35708
|
}
|
|
@@ -35506,7 +35715,7 @@ var DisplayedEmoji = ({ emoji }) => {
|
|
|
35506
35715
|
throw new Error("Unknown emoji");
|
|
35507
35716
|
}, [emoji]);
|
|
35508
35717
|
const [handle] = useState46(() => delayRender2("Loading emojis!"));
|
|
35509
|
-
|
|
35718
|
+
useEffect46(() => {
|
|
35510
35719
|
fetch(src).then((res) => res.json()).then((json) => {
|
|
35511
35720
|
setData({
|
|
35512
35721
|
duration: getLottieMetadata(json)?.durationInSeconds,
|
|
@@ -35517,7 +35726,7 @@ var DisplayedEmoji = ({ emoji }) => {
|
|
|
35517
35726
|
cancelRender2(err);
|
|
35518
35727
|
});
|
|
35519
35728
|
}, [handle, src, continueRender, cancelRender2]);
|
|
35520
|
-
|
|
35729
|
+
useEffect46(() => {
|
|
35521
35730
|
if (typeof document !== "undefined") {
|
|
35522
35731
|
setBrowser(true);
|
|
35523
35732
|
}
|
|
@@ -35613,7 +35822,7 @@ var EmojiCardRefFn = ({ emojiIndex }, ref) => {
|
|
|
35613
35822
|
transforms: transforms.current
|
|
35614
35823
|
});
|
|
35615
35824
|
}, []);
|
|
35616
|
-
|
|
35825
|
+
useEffect47(() => {
|
|
35617
35826
|
if (!ref1.current || !ref2.current || !ref3.current) {
|
|
35618
35827
|
return;
|
|
35619
35828
|
}
|
|
@@ -35630,7 +35839,7 @@ var EmojiCardRefFn = ({ emojiIndex }, ref) => {
|
|
|
35630
35839
|
onRight
|
|
35631
35840
|
};
|
|
35632
35841
|
}, [onLeft, onRight]);
|
|
35633
|
-
|
|
35842
|
+
useEffect47(() => {
|
|
35634
35843
|
if (!ref1.current || !ref2.current || !ref3.current) {
|
|
35635
35844
|
return;
|
|
35636
35845
|
}
|
|
@@ -35920,7 +36129,7 @@ var Temperature = ({ theme, city, temperatureInCelsius }) => {
|
|
|
35920
36129
|
};
|
|
35921
36130
|
|
|
35922
36131
|
// src/components/homepage/Demo/TrendingRepos.tsx
|
|
35923
|
-
import { useMemo as
|
|
36132
|
+
import { useMemo as useMemo57 } from "react";
|
|
35924
36133
|
import { jsx as jsx80, jsxs as jsxs21 } from "react/jsx-runtime";
|
|
35925
36134
|
var TrendingRepoItem = ({ repo, theme, number }) => {
|
|
35926
36135
|
const frame = useCurrentFrame();
|
|
@@ -35933,7 +36142,7 @@ var TrendingRepoItem = ({ repo, theme, number }) => {
|
|
|
35933
36142
|
},
|
|
35934
36143
|
delay: number * 10 + 20
|
|
35935
36144
|
});
|
|
35936
|
-
const item =
|
|
36145
|
+
const item = useMemo57(() => {
|
|
35937
36146
|
return {
|
|
35938
36147
|
lineHeight: 1.1,
|
|
35939
36148
|
fontFamily: "GTPlanar",
|
|
@@ -36045,7 +36254,7 @@ var Cards = ({
|
|
|
36045
36254
|
const positions = useRef49(getInitialPositions());
|
|
36046
36255
|
const shouldBePositions = useRef49(getInitialPositions());
|
|
36047
36256
|
const { isRendering } = useRemotionEnvironment();
|
|
36048
|
-
|
|
36257
|
+
useEffect48(() => {
|
|
36049
36258
|
const { current } = container4;
|
|
36050
36259
|
if (!current) {
|
|
36051
36260
|
return;
|
|
@@ -36140,7 +36349,7 @@ var HomepageVideoComp = ({
|
|
|
36140
36349
|
setRerenders(rerenders + 1);
|
|
36141
36350
|
updateCardOrder(newIndices);
|
|
36142
36351
|
}, [rerenders, updateCardOrder]);
|
|
36143
|
-
const emoji =
|
|
36352
|
+
const emoji = useMemo58(() => {
|
|
36144
36353
|
if ((emojiIndex + 1e4 * 3) % 3 === 1) {
|
|
36145
36354
|
return "melting";
|
|
36146
36355
|
}
|
|
@@ -36149,7 +36358,7 @@ var HomepageVideoComp = ({
|
|
|
36149
36358
|
}
|
|
36150
36359
|
return "partying-face";
|
|
36151
36360
|
}, [emojiIndex]);
|
|
36152
|
-
const audioSrc =
|
|
36361
|
+
const audioSrc = useMemo58(() => {
|
|
36153
36362
|
if (emoji === "fire") {
|
|
36154
36363
|
return fireAudio;
|
|
36155
36364
|
}
|
|
@@ -36158,7 +36367,7 @@ var HomepageVideoComp = ({
|
|
|
36158
36367
|
}
|
|
36159
36368
|
return sadAudio;
|
|
36160
36369
|
}, [emoji]);
|
|
36161
|
-
|
|
36370
|
+
useEffect49(() => {
|
|
36162
36371
|
const a = prefetch(fireAudio);
|
|
36163
36372
|
const b = prefetch(partyHornAudio);
|
|
36164
36373
|
const c = prefetch(sadAudio);
|
|
@@ -36234,7 +36443,7 @@ import {
|
|
|
36234
36443
|
import { BufferTarget, StreamTarget } from "mediabunny";
|
|
36235
36444
|
|
|
36236
36445
|
// ../core/dist/esm/version.mjs
|
|
36237
|
-
var VERSION2 = "4.0.
|
|
36446
|
+
var VERSION2 = "4.0.458";
|
|
36238
36447
|
|
|
36239
36448
|
// ../web-renderer/dist/esm/index.mjs
|
|
36240
36449
|
import { AudioSample, VideoSample } from "mediabunny";
|
|
@@ -37568,7 +37777,7 @@ var turnSvgIntoDrawable = (svg) => {
|
|
|
37568
37777
|
svg.style.color = originalColor;
|
|
37569
37778
|
return new Promise((resolve, reject) => {
|
|
37570
37779
|
const image = new Image;
|
|
37571
|
-
const url = `data:image/svg+xml;
|
|
37780
|
+
const url = `data:image/svg+xml;charset=utf-8,${encodeURIComponent(svgData)}`;
|
|
37572
37781
|
image.onload = function() {
|
|
37573
37782
|
resolve(image);
|
|
37574
37783
|
};
|
|
@@ -40970,7 +41179,7 @@ var Progress = ({ progress }) => {
|
|
|
40970
41179
|
};
|
|
40971
41180
|
|
|
40972
41181
|
// src/components/homepage/Demo/Spinner.tsx
|
|
40973
|
-
import { useMemo as
|
|
41182
|
+
import { useMemo as useMemo59 } from "react";
|
|
40974
41183
|
import { jsx as jsx95, jsxs as jsxs29, Fragment as Fragment14 } from "react/jsx-runtime";
|
|
40975
41184
|
var viewBox2 = 100;
|
|
40976
41185
|
var lines2 = 8;
|
|
@@ -40978,7 +41187,7 @@ var className2 = "__remotion_spinner_line";
|
|
|
40978
41187
|
var remotionSpinnerAnimation = "__remotion_spinner_animation";
|
|
40979
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";
|
|
40980
41189
|
var Spinner2 = ({ size: size4, duration }) => {
|
|
40981
|
-
const style2 =
|
|
41190
|
+
const style2 = useMemo59(() => {
|
|
40982
41191
|
return {
|
|
40983
41192
|
width: size4,
|
|
40984
41193
|
height: size4
|
|
@@ -41240,13 +41449,13 @@ var DragAndDropNudge = () => {
|
|
|
41240
41449
|
};
|
|
41241
41450
|
|
|
41242
41451
|
// src/components/homepage/Demo/PlayerSeekBar.tsx
|
|
41243
|
-
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";
|
|
41244
41453
|
|
|
41245
41454
|
// src/components/homepage/layout/use-el-size.ts
|
|
41246
|
-
import { useCallback as useCallback45, useEffect as
|
|
41455
|
+
import { useCallback as useCallback45, useEffect as useEffect50, useMemo as useMemo60, useState as useState50 } from "react";
|
|
41247
41456
|
var useElementSize2 = (ref) => {
|
|
41248
41457
|
const [size4, setSize] = useState50(null);
|
|
41249
|
-
const observer =
|
|
41458
|
+
const observer = useMemo60(() => {
|
|
41250
41459
|
if (typeof ResizeObserver === "undefined") {
|
|
41251
41460
|
return;
|
|
41252
41461
|
}
|
|
@@ -41267,7 +41476,7 @@ var useElementSize2 = (ref) => {
|
|
|
41267
41476
|
height: rect[0].height
|
|
41268
41477
|
});
|
|
41269
41478
|
}, [ref]);
|
|
41270
|
-
|
|
41479
|
+
useEffect50(() => {
|
|
41271
41480
|
updateSize();
|
|
41272
41481
|
if (!observer) {
|
|
41273
41482
|
return;
|
|
@@ -41323,7 +41532,7 @@ var findBodyInWhichDivIsLocated2 = (div) => {
|
|
|
41323
41532
|
};
|
|
41324
41533
|
var useHoverState2 = (ref, hideControlsWhenPointerDoesntMove) => {
|
|
41325
41534
|
const [hovered, setHovered] = useState51(false);
|
|
41326
|
-
|
|
41535
|
+
useEffect51(() => {
|
|
41327
41536
|
const { current } = ref;
|
|
41328
41537
|
if (!current) {
|
|
41329
41538
|
return;
|
|
@@ -41374,7 +41583,7 @@ var PlayerSeekBar2 = ({
|
|
|
41374
41583
|
const size4 = useElementSize2(containerRef.current);
|
|
41375
41584
|
const [playing, setPlaying] = useState51(false);
|
|
41376
41585
|
const [frame, setFrame] = useState51(0);
|
|
41377
|
-
|
|
41586
|
+
useEffect51(() => {
|
|
41378
41587
|
const { current } = playerRef;
|
|
41379
41588
|
if (!current) {
|
|
41380
41589
|
return;
|
|
@@ -41387,7 +41596,7 @@ var PlayerSeekBar2 = ({
|
|
|
41387
41596
|
current.removeEventListener("frameupdate", onFrameUpdate);
|
|
41388
41597
|
};
|
|
41389
41598
|
}, [playerRef]);
|
|
41390
|
-
|
|
41599
|
+
useEffect51(() => {
|
|
41391
41600
|
const { current } = playerRef;
|
|
41392
41601
|
if (!current) {
|
|
41393
41602
|
return;
|
|
@@ -41448,7 +41657,7 @@ var PlayerSeekBar2 = ({
|
|
|
41448
41657
|
}
|
|
41449
41658
|
onSeekEnd();
|
|
41450
41659
|
}, [dragging, onSeekEnd, playerRef]);
|
|
41451
|
-
|
|
41660
|
+
useEffect51(() => {
|
|
41452
41661
|
if (!dragging.dragging) {
|
|
41453
41662
|
return;
|
|
41454
41663
|
}
|
|
@@ -41460,7 +41669,7 @@ var PlayerSeekBar2 = ({
|
|
|
41460
41669
|
body.removeEventListener("pointerup", onPointerUp);
|
|
41461
41670
|
};
|
|
41462
41671
|
}, [dragging.dragging, onPointerMove, onPointerUp]);
|
|
41463
|
-
const knobStyle =
|
|
41672
|
+
const knobStyle = useMemo61(() => {
|
|
41464
41673
|
return {
|
|
41465
41674
|
height: KNOB_SIZE3,
|
|
41466
41675
|
width: KNOB_SIZE3,
|
|
@@ -41474,7 +41683,7 @@ var PlayerSeekBar2 = ({
|
|
|
41474
41683
|
transition: "opacity 0.s ease"
|
|
41475
41684
|
};
|
|
41476
41685
|
}, [barHovered, durationInFrames, frame, width2]);
|
|
41477
|
-
const fillStyle =
|
|
41686
|
+
const fillStyle = useMemo61(() => {
|
|
41478
41687
|
return {
|
|
41479
41688
|
height: BAR_HEIGHT3,
|
|
41480
41689
|
backgroundColor: "var(--ifm-font-color-base)",
|
|
@@ -41483,7 +41692,7 @@ var PlayerSeekBar2 = ({
|
|
|
41483
41692
|
borderRadius: BAR_HEIGHT3 / 2
|
|
41484
41693
|
};
|
|
41485
41694
|
}, [durationInFrames, frame, inFrame]);
|
|
41486
|
-
const active =
|
|
41695
|
+
const active = useMemo61(() => {
|
|
41487
41696
|
return {
|
|
41488
41697
|
height: BAR_HEIGHT3,
|
|
41489
41698
|
backgroundColor: "var(--ifm-font-color-base)",
|
|
@@ -41518,7 +41727,7 @@ var PlayerSeekBar2 = ({
|
|
|
41518
41727
|
};
|
|
41519
41728
|
|
|
41520
41729
|
// src/components/homepage/Demo/PlayerVolume.tsx
|
|
41521
|
-
import { useCallback as useCallback47, useEffect as
|
|
41730
|
+
import { useCallback as useCallback47, useEffect as useEffect53, useRef as useRef51, useState as useState54 } from "react";
|
|
41522
41731
|
|
|
41523
41732
|
// src/components/homepage/Demo/icons.tsx
|
|
41524
41733
|
import { jsx as jsx101 } from "react/jsx-runtime";
|
|
@@ -41579,7 +41788,7 @@ var PlayerVolume = ({ playerRef }) => {
|
|
|
41579
41788
|
const [muted, setIsMuted] = useState54(() => playerRef.current?.isMuted() ?? true);
|
|
41580
41789
|
const [isHovered, setIsHovered] = useState54(false);
|
|
41581
41790
|
const timerRef = useRef51(null);
|
|
41582
|
-
|
|
41791
|
+
useEffect53(() => {
|
|
41583
41792
|
const { current } = playerRef;
|
|
41584
41793
|
if (!current) {
|
|
41585
41794
|
return;
|
|
@@ -41592,7 +41801,7 @@ var PlayerVolume = ({ playerRef }) => {
|
|
|
41592
41801
|
current.removeEventListener("mutechange", onMutedChange);
|
|
41593
41802
|
};
|
|
41594
41803
|
}, [playerRef]);
|
|
41595
|
-
|
|
41804
|
+
useEffect53(() => {
|
|
41596
41805
|
if (isHovered) {
|
|
41597
41806
|
document.body.style.userSelect = "none";
|
|
41598
41807
|
} else {
|
|
@@ -41637,7 +41846,7 @@ var PlayerVolume = ({ playerRef }) => {
|
|
|
41637
41846
|
};
|
|
41638
41847
|
|
|
41639
41848
|
// src/components/homepage/Demo/PlayPauseButton.tsx
|
|
41640
|
-
import React71, { useCallback as useCallback48, useEffect as
|
|
41849
|
+
import React71, { useCallback as useCallback48, useEffect as useEffect55 } from "react";
|
|
41641
41850
|
import { jsx as jsx107 } from "react/jsx-runtime";
|
|
41642
41851
|
var playerButtonStyle2 = {
|
|
41643
41852
|
appearance: "none",
|
|
@@ -41655,7 +41864,7 @@ var playerButtonStyle2 = {
|
|
|
41655
41864
|
};
|
|
41656
41865
|
var PlayPauseButton = ({ playerRef }) => {
|
|
41657
41866
|
const [playing, setPlaying] = React71.useState(true);
|
|
41658
|
-
|
|
41867
|
+
useEffect55(() => {
|
|
41659
41868
|
const { current } = playerRef;
|
|
41660
41869
|
if (!current) {
|
|
41661
41870
|
return;
|
|
@@ -41692,7 +41901,7 @@ var PlayPauseButton = ({ playerRef }) => {
|
|
|
41692
41901
|
};
|
|
41693
41902
|
|
|
41694
41903
|
// src/components/homepage/Demo/TimeDisplay.tsx
|
|
41695
|
-
import React73, { useEffect as
|
|
41904
|
+
import React73, { useEffect as useEffect56 } from "react";
|
|
41696
41905
|
import { jsx as jsx108 } from "react/jsx-runtime";
|
|
41697
41906
|
var formatTime2 = (timeInSeconds) => {
|
|
41698
41907
|
const minutes = Math.floor(timeInSeconds / 60);
|
|
@@ -41701,7 +41910,7 @@ var formatTime2 = (timeInSeconds) => {
|
|
|
41701
41910
|
};
|
|
41702
41911
|
var TimeDisplay = ({ fps, playerRef }) => {
|
|
41703
41912
|
const [time, setTime] = React73.useState(0);
|
|
41704
|
-
|
|
41913
|
+
useEffect56(() => {
|
|
41705
41914
|
const { current } = playerRef;
|
|
41706
41915
|
if (!current) {
|
|
41707
41916
|
return;
|
|
@@ -41872,7 +42081,7 @@ var Demo = () => {
|
|
|
41872
42081
|
const [cardOrder, setCardOrder] = useState56([0, 1, 2, 3]);
|
|
41873
42082
|
const [emojiIndex, setEmojiIndex] = useState56(0);
|
|
41874
42083
|
const [error2, setError] = useState56(false);
|
|
41875
|
-
|
|
42084
|
+
useEffect57(() => {
|
|
41876
42085
|
getDataAndProps().then((d2) => {
|
|
41877
42086
|
setData(d2);
|
|
41878
42087
|
}).catch((err) => {
|
|
@@ -41880,7 +42089,7 @@ var Demo = () => {
|
|
|
41880
42089
|
setError(true);
|
|
41881
42090
|
});
|
|
41882
42091
|
}, []);
|
|
41883
|
-
|
|
42092
|
+
useEffect57(() => {
|
|
41884
42093
|
const { current: playerRef } = ref;
|
|
41885
42094
|
if (!playerRef || !data2) {
|
|
41886
42095
|
return;
|
|
@@ -41896,7 +42105,7 @@ var Demo = () => {
|
|
|
41896
42105
|
const updateCardOrder = useCallback49((newCardOrder) => {
|
|
41897
42106
|
setCardOrder(newCardOrder);
|
|
41898
42107
|
}, []);
|
|
41899
|
-
const props =
|
|
42108
|
+
const props = useMemo64(() => {
|
|
41900
42109
|
return {
|
|
41901
42110
|
theme: colorMode,
|
|
41902
42111
|
onToggle: () => {
|
|
@@ -42025,16 +42234,16 @@ var ClearButton = (props) => {
|
|
|
42025
42234
|
|
|
42026
42235
|
// src/components/homepage/MuxVideo.tsx
|
|
42027
42236
|
import Hls2 from "hls.js";
|
|
42028
|
-
import { forwardRef as forwardRef38, useEffect as
|
|
42237
|
+
import { forwardRef as forwardRef38, useEffect as useEffect59, useImperativeHandle as useImperativeHandle14, useRef as useRef56 } from "react";
|
|
42029
42238
|
|
|
42030
42239
|
// src/components/homepage/VideoPlayerWithControls.tsx
|
|
42031
42240
|
import Hls from "hls.js";
|
|
42032
42241
|
import"plyr/dist/plyr.css";
|
|
42033
|
-
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";
|
|
42034
42243
|
import { jsx as jsx116 } from "react/jsx-runtime";
|
|
42035
42244
|
var useCombinedRefs = function(...refs) {
|
|
42036
42245
|
const targetRef = useRef55(null);
|
|
42037
|
-
|
|
42246
|
+
useEffect58(() => {
|
|
42038
42247
|
refs.forEach((ref) => {
|
|
42039
42248
|
if (!ref)
|
|
42040
42249
|
return;
|
|
@@ -42063,12 +42272,12 @@ var VideoPlayerWithControls = forwardRef37(({ playbackId, poster, currentTime, o
|
|
|
42063
42272
|
console.error("Error getting img dimensions", event);
|
|
42064
42273
|
}
|
|
42065
42274
|
}, [onLoaded, onSize]);
|
|
42066
|
-
|
|
42275
|
+
useEffect58(() => {
|
|
42067
42276
|
const img = new Image;
|
|
42068
42277
|
img.onload = (evt) => onImageLoad(evt);
|
|
42069
42278
|
img.src = poster;
|
|
42070
42279
|
}, [onImageLoad, poster]);
|
|
42071
|
-
|
|
42280
|
+
useEffect58(() => {
|
|
42072
42281
|
const video = videoRef.current;
|
|
42073
42282
|
const src = `https://stream.mux.com/${playbackId}.m3u8`;
|
|
42074
42283
|
let hls;
|
|
@@ -42111,7 +42320,7 @@ var VideoPlayerWithControls = forwardRef37(({ playbackId, poster, currentTime, o
|
|
|
42111
42320
|
}
|
|
42112
42321
|
};
|
|
42113
42322
|
}, [playbackId, playerInitTime, videoError, videoRef]);
|
|
42114
|
-
|
|
42323
|
+
useEffect58(() => {
|
|
42115
42324
|
const video = videoRef.current;
|
|
42116
42325
|
if (currentTime && video) {
|
|
42117
42326
|
video.currentTime = currentTime;
|
|
@@ -42138,7 +42347,7 @@ var MuxVideoForward = ({ muxId, ...props }, ref) => {
|
|
|
42138
42347
|
const videoRef = useRef56(null);
|
|
42139
42348
|
const vidUrl = getVideoToPlayUrl(muxId);
|
|
42140
42349
|
useImperativeHandle14(ref, () => videoRef.current, []);
|
|
42141
|
-
|
|
42350
|
+
useEffect59(() => {
|
|
42142
42351
|
let hls;
|
|
42143
42352
|
if (videoRef.current) {
|
|
42144
42353
|
const { current } = videoRef;
|
|
@@ -42251,11 +42460,11 @@ var EditorStarterSection = () => {
|
|
|
42251
42460
|
var EditorStarterSection_default = EditorStarterSection;
|
|
42252
42461
|
|
|
42253
42462
|
// src/components/homepage/EvaluateRemotion.tsx
|
|
42254
|
-
import { useEffect as
|
|
42463
|
+
import { useEffect as useEffect60, useState as useState58 } from "react";
|
|
42255
42464
|
import { jsx as jsx119, jsxs as jsxs40 } from "react/jsx-runtime";
|
|
42256
42465
|
var EvaluateRemotionSection = () => {
|
|
42257
42466
|
const [dailyAvatars, setDailyAvatars] = useState58([]);
|
|
42258
|
-
|
|
42467
|
+
useEffect60(() => {
|
|
42259
42468
|
const avatars = experts.map((expert) => expert.image);
|
|
42260
42469
|
const selectedAvatars = [];
|
|
42261
42470
|
for (let i = 0;i < 3; i++) {
|
|
@@ -42352,7 +42561,7 @@ var EvaluateRemotionSection = () => {
|
|
|
42352
42561
|
var EvaluateRemotion_default = EvaluateRemotionSection;
|
|
42353
42562
|
|
|
42354
42563
|
// src/components/homepage/IfYouKnowReact.tsx
|
|
42355
|
-
import { useEffect as
|
|
42564
|
+
import { useEffect as useEffect61, useState as useState59 } from "react";
|
|
42356
42565
|
import { jsx as jsx120, jsxs as jsxs41 } from "react/jsx-runtime";
|
|
42357
42566
|
var isWebkit = () => {
|
|
42358
42567
|
if (typeof window === "undefined") {
|
|
@@ -42368,7 +42577,7 @@ var icon2 = {
|
|
|
42368
42577
|
};
|
|
42369
42578
|
var IfYouKnowReact = () => {
|
|
42370
42579
|
const [vid, setVid] = useState59("/img/compose.webm");
|
|
42371
|
-
|
|
42580
|
+
useEffect61(() => {
|
|
42372
42581
|
if (isWebkit()) {
|
|
42373
42582
|
setVid("/img/compose.mp4");
|
|
42374
42583
|
}
|
|
@@ -42515,7 +42724,7 @@ var NewsletterButton = () => {
|
|
|
42515
42724
|
};
|
|
42516
42725
|
|
|
42517
42726
|
// src/components/homepage/ParameterizeAndEdit.tsx
|
|
42518
|
-
import { useEffect as
|
|
42727
|
+
import { useEffect as useEffect63, useRef as useRef57, useState as useState61 } from "react";
|
|
42519
42728
|
import { jsx as jsx124, jsxs as jsxs46 } from "react/jsx-runtime";
|
|
42520
42729
|
var icon3 = {
|
|
42521
42730
|
height: 16,
|
|
@@ -42524,7 +42733,7 @@ var icon3 = {
|
|
|
42524
42733
|
var ParameterizeAndEdit = () => {
|
|
42525
42734
|
const ref = useRef57(null);
|
|
42526
42735
|
const [vid, setVid] = useState61("/img/editing-vp9-chrome.webm");
|
|
42527
|
-
|
|
42736
|
+
useEffect63(() => {
|
|
42528
42737
|
if (isWebkit()) {
|
|
42529
42738
|
setVid("/img/editing-safari.mp4");
|
|
42530
42739
|
}
|
|
@@ -42638,7 +42847,7 @@ var ParameterizeAndEdit = () => {
|
|
|
42638
42847
|
};
|
|
42639
42848
|
|
|
42640
42849
|
// src/components/homepage/RealMp4Videos.tsx
|
|
42641
|
-
import { useEffect as
|
|
42850
|
+
import { useEffect as useEffect65, useRef as useRef58, useState as useState64 } from "react";
|
|
42642
42851
|
import { jsx as jsx126, jsxs as jsxs47 } from "react/jsx-runtime";
|
|
42643
42852
|
var icon4 = {
|
|
42644
42853
|
height: 16,
|
|
@@ -42648,12 +42857,12 @@ var RealMP4Videos = () => {
|
|
|
42648
42857
|
const ref = useRef58(null);
|
|
42649
42858
|
const videoRef = useRef58(null);
|
|
42650
42859
|
const [vid, setVid] = useState64("/img/render-progress.webm");
|
|
42651
|
-
|
|
42860
|
+
useEffect65(() => {
|
|
42652
42861
|
if (isWebkit()) {
|
|
42653
42862
|
setVid("/img/render-progress.mp4");
|
|
42654
42863
|
}
|
|
42655
42864
|
}, []);
|
|
42656
|
-
|
|
42865
|
+
useEffect65(() => {
|
|
42657
42866
|
const { current } = ref;
|
|
42658
42867
|
if (!current) {
|
|
42659
42868
|
return;
|