@remotion/promo-pages 4.0.435 → 4.0.437

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (282) hide show
  1. package/dist/Homepage.js +305 -217
  2. package/dist/Users/jonathanburger/remotion/packages/promo-pages/dist/Homepage.js +98 -52
  3. package/dist/Users/jonathanburger/remotion/packages/promo-pages/dist/design.js +2 -2
  4. package/dist/Users/jonathanburger/remotion/packages/promo-pages/dist/experts.js +2 -2
  5. package/dist/Users/jonathanburger/remotion/packages/promo-pages/dist/homepage/Pricing.js +2 -2
  6. package/dist/Users/jonathanburger/remotion/packages/promo-pages/dist/prompts/PromptsGallery.js +2 -2
  7. package/dist/Users/jonathanburger/remotion/packages/promo-pages/dist/prompts/PromptsShow.js +2 -2
  8. package/dist/Users/jonathanburger/remotion/packages/promo-pages/dist/prompts/PromptsSubmit.js +2 -2
  9. package/dist/Users/jonathanburger/remotion/packages/promo-pages/dist/template-modal-content.js +2 -2
  10. package/dist/Users/jonathanburger/remotion/packages/promo-pages/dist/templates.js +3 -3
  11. package/dist/design.js +2 -2
  12. package/dist/experts.js +2 -2
  13. package/dist/homepage/Pricing.js +2 -2
  14. package/dist/prompts/PromptsGallery.js +2 -2
  15. package/dist/prompts/PromptsShow.js +2 -2
  16. package/dist/prompts/PromptsSubmit.js +2 -2
  17. package/dist/template-modal-content.js +2 -2
  18. package/dist/templates.js +158 -116
  19. package/package.json +17 -17
  20. package/dist/cn.d.ts +0 -2
  21. package/dist/cn.js +0 -5
  22. package/dist/components/3DEngine/ButtonDemo.d.ts +0 -2
  23. package/dist/components/3DEngine/ButtonDemo.js +0 -43
  24. package/dist/components/3DEngine/Faces.d.ts +0 -5
  25. package/dist/components/3DEngine/Faces.js +0 -7
  26. package/dist/components/3DEngine/Outer.d.ts +0 -8
  27. package/dist/components/3DEngine/Outer.js +0 -56
  28. package/dist/components/3DEngine/Switch.d.ts +0 -4
  29. package/dist/components/3DEngine/Switch.js +0 -4
  30. package/dist/components/3DEngine/get-child-node-from.d.ts +0 -1
  31. package/dist/components/3DEngine/get-child-node-from.js +0 -14
  32. package/dist/components/3DEngine/hover-transforms.d.ts +0 -9
  33. package/dist/components/3DEngine/hover-transforms.js +0 -177
  34. package/dist/components/BackButton.d.ts +0 -6
  35. package/dist/components/BackButton.js +0 -9
  36. package/dist/components/CommandCopyButton.d.ts +0 -5
  37. package/dist/components/CommandCopyButton.js +0 -4
  38. package/dist/components/Homepage.d.ts +0 -6
  39. package/dist/components/Homepage.js +0 -20
  40. package/dist/components/ManageTeamMembers.d.ts +0 -2
  41. package/dist/components/ManageTeamMembers.js +0 -42
  42. package/dist/components/Spinner.d.ts +0 -3
  43. package/dist/components/Spinner.js +0 -4
  44. package/dist/components/TeamPicture.d.ts +0 -1
  45. package/dist/components/TeamPicture.js +0 -4
  46. package/dist/components/design.d.ts +0 -1
  47. package/dist/components/design.js +0 -33
  48. package/dist/components/experts/ExpertsPage.d.ts +0 -11
  49. package/dist/components/experts/ExpertsPage.js +0 -50
  50. package/dist/components/experts/experts-data.d.ts +0 -15
  51. package/dist/components/experts/experts-data.js +0 -263
  52. package/dist/components/experts/experts-icons.d.ts +0 -7
  53. package/dist/components/experts/experts-icons.js +0 -36
  54. package/dist/components/experts.d.ts +0 -3
  55. package/dist/components/experts.js +0 -2
  56. package/dist/components/homepage/BackgroundAnimation.d.ts +0 -2
  57. package/dist/components/homepage/BackgroundAnimation.js +0 -66
  58. package/dist/components/homepage/ChooseTemplate.d.ts +0 -2
  59. package/dist/components/homepage/ChooseTemplate.js +0 -25
  60. package/dist/components/homepage/CommunityStats.d.ts +0 -3
  61. package/dist/components/homepage/CommunityStats.js +0 -6
  62. package/dist/components/homepage/CommunityStatsItems.d.ts +0 -7
  63. package/dist/components/homepage/CommunityStatsItems.js +0 -58
  64. package/dist/components/homepage/Demo/Card.d.ts +0 -15
  65. package/dist/components/homepage/Demo/Card.js +0 -174
  66. package/dist/components/homepage/Demo/Cards.d.ts +0 -15
  67. package/dist/components/homepage/Demo/Cards.js +0 -57
  68. package/dist/components/homepage/Demo/Comp.d.ts +0 -38
  69. package/dist/components/homepage/Demo/Comp.js +0 -72
  70. package/dist/components/homepage/Demo/CurrentCountry.d.ts +0 -9
  71. package/dist/components/homepage/Demo/CurrentCountry.js +0 -48
  72. package/dist/components/homepage/Demo/DemoError.d.ts +0 -2
  73. package/dist/components/homepage/Demo/DemoError.js +0 -10
  74. package/dist/components/homepage/Demo/DemoErrorIcon.d.ts +0 -2
  75. package/dist/components/homepage/Demo/DemoErrorIcon.js +0 -16
  76. package/dist/components/homepage/Demo/DemoRender.d.ts +0 -33
  77. package/dist/components/homepage/Demo/DemoRender.js +0 -107
  78. package/dist/components/homepage/Demo/DigitWheel.d.ts +0 -9
  79. package/dist/components/homepage/Demo/DigitWheel.js +0 -94
  80. package/dist/components/homepage/Demo/DisplayedEmoji.d.ts +0 -5
  81. package/dist/components/homepage/Demo/DisplayedEmoji.js +0 -59
  82. package/dist/components/homepage/Demo/DoneCheckmark.d.ts +0 -2
  83. package/dist/components/homepage/Demo/DoneCheckmark.js +0 -20
  84. package/dist/components/homepage/Demo/DownloadNudge.d.ts +0 -2
  85. package/dist/components/homepage/Demo/DownloadNudge.js +0 -27
  86. package/dist/components/homepage/Demo/DragAndDropNudge.d.ts +0 -3
  87. package/dist/components/homepage/Demo/DragAndDropNudge.js +0 -26
  88. package/dist/components/homepage/Demo/EmojiCard.d.ts +0 -10
  89. package/dist/components/homepage/Demo/EmojiCard.js +0 -120
  90. package/dist/components/homepage/Demo/Minus.d.ts +0 -5
  91. package/dist/components/homepage/Demo/Minus.js +0 -11
  92. package/dist/components/homepage/Demo/PlayPauseButton.d.ts +0 -5
  93. package/dist/components/homepage/Demo/PlayPauseButton.js +0 -47
  94. package/dist/components/homepage/Demo/PlayerControls.d.ts +0 -8
  95. package/dist/components/homepage/Demo/PlayerControls.js +0 -15
  96. package/dist/components/homepage/Demo/PlayerSeekBar.d.ts +0 -11
  97. package/dist/components/homepage/Demo/PlayerSeekBar.js +0 -216
  98. package/dist/components/homepage/Demo/PlayerVolume.d.ts +0 -5
  99. package/dist/components/homepage/Demo/PlayerVolume.js +0 -53
  100. package/dist/components/homepage/Demo/Progress.d.ts +0 -4
  101. package/dist/components/homepage/Demo/Progress.js +0 -14
  102. package/dist/components/homepage/Demo/Spinner.d.ts +0 -5
  103. package/dist/components/homepage/Demo/Spinner.js +0 -37
  104. package/dist/components/homepage/Demo/Switcher.d.ts +0 -6
  105. package/dist/components/homepage/Demo/Switcher.js +0 -25
  106. package/dist/components/homepage/Demo/Temperature.d.ts +0 -6
  107. package/dist/components/homepage/Demo/Temperature.js +0 -21
  108. package/dist/components/homepage/Demo/TemperatureNumber.d.ts +0 -5
  109. package/dist/components/homepage/Demo/TemperatureNumber.js +0 -36
  110. package/dist/components/homepage/Demo/ThemeNudge.d.ts +0 -3
  111. package/dist/components/homepage/Demo/ThemeNudge.js +0 -35
  112. package/dist/components/homepage/Demo/TimeDisplay.d.ts +0 -6
  113. package/dist/components/homepage/Demo/TimeDisplay.js +0 -27
  114. package/dist/components/homepage/Demo/TrendingRepos.d.ts +0 -6
  115. package/dist/components/homepage/Demo/TrendingRepos.js +0 -65
  116. package/dist/components/homepage/Demo/icons.d.ts +0 -10
  117. package/dist/components/homepage/Demo/icons.js +0 -22
  118. package/dist/components/homepage/Demo/index.d.ts +0 -2
  119. package/dist/components/homepage/Demo/index.js +0 -95
  120. package/dist/components/homepage/Demo/math.d.ts +0 -10
  121. package/dist/components/homepage/Demo/math.js +0 -29
  122. package/dist/components/homepage/Demo/types.d.ts +0 -6
  123. package/dist/components/homepage/Demo/types.js +0 -0
  124. package/dist/components/homepage/EditorStarterSection.d.ts +0 -3
  125. package/dist/components/homepage/EditorStarterSection.js +0 -8
  126. package/dist/components/homepage/EvaluateRemotion.d.ts +0 -3
  127. package/dist/components/homepage/EvaluateRemotion.js +0 -21
  128. package/dist/components/homepage/FreePricing.d.ts +0 -4
  129. package/dist/components/homepage/FreePricing.js +0 -134
  130. package/dist/components/homepage/GetStartedStrip.d.ts +0 -2
  131. package/dist/components/homepage/GetStartedStrip.js +0 -14
  132. package/dist/components/homepage/GitHubButton.d.ts +0 -2
  133. package/dist/components/homepage/GitHubButton.js +0 -7
  134. package/dist/components/homepage/IconForTemplate.d.ts +0 -6
  135. package/dist/components/homepage/IconForTemplate.js +0 -101
  136. package/dist/components/homepage/IfYouKnowReact.d.ts +0 -3
  137. package/dist/components/homepage/IfYouKnowReact.js +0 -23
  138. package/dist/components/homepage/InfoTooltip.d.ts +0 -6
  139. package/dist/components/homepage/InfoTooltip.js +0 -6
  140. package/dist/components/homepage/MoreTemplatesButton.d.ts +0 -2
  141. package/dist/components/homepage/MoreTemplatesButton.js +0 -11
  142. package/dist/components/homepage/MuxVideo.d.ts +0 -7
  143. package/dist/components/homepage/MuxVideo.js +0 -45
  144. package/dist/components/homepage/NewsletterButton.d.ts +0 -2
  145. package/dist/components/homepage/NewsletterButton.js +0 -38
  146. package/dist/components/homepage/ParameterizeAndEdit.d.ts +0 -2
  147. package/dist/components/homepage/ParameterizeAndEdit.js +0 -22
  148. package/dist/components/homepage/Pricing.d.ts +0 -2
  149. package/dist/components/homepage/Pricing.js +0 -15
  150. package/dist/components/homepage/PricingBulletPoint.d.ts +0 -6
  151. package/dist/components/homepage/PricingBulletPoint.js +0 -19
  152. package/dist/components/homepage/RealMp4Videos.d.ts +0 -2
  153. package/dist/components/homepage/RealMp4Videos.js +0 -41
  154. package/dist/components/homepage/Spacer.d.ts +0 -2
  155. package/dist/components/homepage/Spacer.js +0 -4
  156. package/dist/components/homepage/TemplateIcon.d.ts +0 -5
  157. package/dist/components/homepage/TemplateIcon.js +0 -24
  158. package/dist/components/homepage/TextInput.d.ts +0 -7
  159. package/dist/components/homepage/TextInput.js +0 -34
  160. package/dist/components/homepage/TrustedByBanner.d.ts +0 -2
  161. package/dist/components/homepage/TrustedByBanner.js +0 -27
  162. package/dist/components/homepage/VideoApps.d.ts +0 -4
  163. package/dist/components/homepage/VideoApps.js +0 -72
  164. package/dist/components/homepage/VideoAppsShowcase.d.ts +0 -3
  165. package/dist/components/homepage/VideoAppsShowcase.js +0 -139
  166. package/dist/components/homepage/VideoAppsTitle.d.ts +0 -4
  167. package/dist/components/homepage/VideoAppsTitle.js +0 -4
  168. package/dist/components/homepage/VideoPlayerWithControls.d.ts +0 -20
  169. package/dist/components/homepage/VideoPlayerWithControls.js +0 -105
  170. package/dist/components/homepage/WriteInReact.d.ts +0 -2
  171. package/dist/components/homepage/WriteInReact.js +0 -10
  172. package/dist/components/homepage/YouAreHere.d.ts +0 -2
  173. package/dist/components/homepage/YouAreHere.js +0 -23
  174. package/dist/components/homepage/layout/Button.d.ts +0 -22
  175. package/dist/components/homepage/layout/Button.js +0 -30
  176. package/dist/components/homepage/layout/colors.d.ts +0 -13
  177. package/dist/components/homepage/layout/colors.js +0 -14
  178. package/dist/components/homepage/layout/use-color-mode.d.ts +0 -21
  179. package/dist/components/homepage/layout/use-color-mode.js +0 -22
  180. package/dist/components/homepage/layout/use-el-size.d.ts +0 -5
  181. package/dist/components/homepage/layout/use-el-size.js +0 -40
  182. package/dist/components/homepage/layout/use-mobile-layout.d.ts +0 -1
  183. package/dist/components/homepage/layout/use-mobile-layout.js +0 -6
  184. package/dist/components/icons/blank.d.ts +0 -3
  185. package/dist/components/icons/blank.js +0 -4
  186. package/dist/components/icons/brain.d.ts +0 -2
  187. package/dist/components/icons/brain.js +0 -4
  188. package/dist/components/icons/clone.d.ts +0 -2
  189. package/dist/components/icons/clone.js +0 -2
  190. package/dist/components/icons/code-hike.d.ts +0 -3
  191. package/dist/components/icons/code-hike.js +0 -4
  192. package/dist/components/icons/cubes.d.ts +0 -3
  193. package/dist/components/icons/cubes.js +0 -4
  194. package/dist/components/icons/editor.d.ts +0 -3
  195. package/dist/components/icons/editor.js +0 -4
  196. package/dist/components/icons/js.d.ts +0 -3
  197. package/dist/components/icons/js.js +0 -4
  198. package/dist/components/icons/music.d.ts +0 -2
  199. package/dist/components/icons/music.js +0 -4
  200. package/dist/components/icons/next.d.ts +0 -4
  201. package/dist/components/icons/next.js +0 -4
  202. package/dist/components/icons/overlay.d.ts +0 -3
  203. package/dist/components/icons/overlay.js +0 -4
  204. package/dist/components/icons/prompt-to-video.d.ts +0 -2
  205. package/dist/components/icons/prompt-to-video.js +0 -4
  206. package/dist/components/icons/recorder.d.ts +0 -3
  207. package/dist/components/icons/recorder.js +0 -4
  208. package/dist/components/icons/remix.d.ts +0 -3
  209. package/dist/components/icons/remix.js +0 -4
  210. package/dist/components/icons/render-server.d.ts +0 -3
  211. package/dist/components/icons/render-server.js +0 -4
  212. package/dist/components/icons/skia.d.ts +0 -3
  213. package/dist/components/icons/skia.js +0 -4
  214. package/dist/components/icons/stargazer.d.ts +0 -3
  215. package/dist/components/icons/stargazer.js +0 -4
  216. package/dist/components/icons/still.d.ts +0 -3
  217. package/dist/components/icons/still.js +0 -4
  218. package/dist/components/icons/tailwind.d.ts +0 -3
  219. package/dist/components/icons/tailwind.js +0 -4
  220. package/dist/components/icons/tiktok.d.ts +0 -3
  221. package/dist/components/icons/tiktok.js +0 -4
  222. package/dist/components/icons/timeline.d.ts +0 -3
  223. package/dist/components/icons/timeline.js +0 -4
  224. package/dist/components/icons/ts.d.ts +0 -3
  225. package/dist/components/icons/ts.js +0 -4
  226. package/dist/components/icons/undo.d.ts +0 -3
  227. package/dist/components/icons/undo.js +0 -2
  228. package/dist/components/icons/vercel.d.ts +0 -4
  229. package/dist/components/icons/vercel.js +0 -4
  230. package/dist/components/icons/waveform.d.ts +0 -3
  231. package/dist/components/icons/waveform.js +0 -4
  232. package/dist/components/prompts/CardLikeButton.d.ts +0 -5
  233. package/dist/components/prompts/CardLikeButton.js +0 -49
  234. package/dist/components/prompts/ClipboardIcon.d.ts +0 -5
  235. package/dist/components/prompts/ClipboardIcon.js +0 -4
  236. package/dist/components/prompts/CopyPromptButton.d.ts +0 -4
  237. package/dist/components/prompts/CopyPromptButton.js +0 -13
  238. package/dist/components/prompts/LikeButton.d.ts +0 -5
  239. package/dist/components/prompts/LikeButton.js +0 -49
  240. package/dist/components/prompts/MuxPlayer.d.ts +0 -8
  241. package/dist/components/prompts/MuxPlayer.js +0 -21
  242. package/dist/components/prompts/NewBackButton.d.ts +0 -5
  243. package/dist/components/prompts/NewBackButton.js +0 -8
  244. package/dist/components/prompts/Page.d.ts +0 -8
  245. package/dist/components/prompts/Page.js +0 -7
  246. package/dist/components/prompts/PromptsGallery.d.ts +0 -7
  247. package/dist/components/prompts/PromptsGallery.js +0 -60
  248. package/dist/components/prompts/PromptsShow.d.ts +0 -5
  249. package/dist/components/prompts/PromptsShow.js +0 -17
  250. package/dist/components/prompts/PromptsSubmit.d.ts +0 -2
  251. package/dist/components/prompts/PromptsSubmit.js +0 -173
  252. package/dist/components/prompts/config.d.ts +0 -1
  253. package/dist/components/prompts/config.js +0 -1
  254. package/dist/components/prompts/prompt-helpers.d.ts +0 -8
  255. package/dist/components/prompts/prompt-helpers.js +0 -76
  256. package/dist/components/prompts/prompt-types.d.ts +0 -14
  257. package/dist/components/prompts/prompt-types.js +0 -0
  258. package/dist/components/prompts/use-heart-animation.d.ts +0 -5
  259. package/dist/components/prompts/use-heart-animation.js +0 -29
  260. package/dist/components/team/TeamCards.d.ts +0 -6
  261. package/dist/components/team/TeamCards.js +0 -19
  262. package/dist/components/team/TitleTeamCards.d.ts +0 -2
  263. package/dist/components/team/TitleTeamCards.js +0 -6
  264. package/dist/components/team.d.ts +0 -3
  265. package/dist/components/team.js +0 -14
  266. package/dist/components/template-modal-content.d.ts +0 -5
  267. package/dist/components/template-modal-content.js +0 -73
  268. package/dist/components/templates.d.ts +0 -2
  269. package/dist/components/templates.js +0 -27
  270. package/dist/helpers/mobile-layout.d.ts +0 -1
  271. package/dist/helpers/mobile-layout.js +0 -6
  272. package/dist/helpers/use-el-size.d.ts +0 -5
  273. package/dist/helpers/use-el-size.js +0 -40
  274. package/dist/main.d.ts +0 -1
  275. package/dist/main.js +0 -6
  276. package/dist/prompts-show.d.ts +0 -1
  277. package/dist/prompts-show.js +0 -20
  278. package/dist/prompts-submit.d.ts +0 -1
  279. package/dist/prompts-submit.js +0 -6
  280. package/dist/prompts.d.ts +0 -1
  281. package/dist/prompts.js +0 -6
  282. package/dist/team.d.ts +0 -1
@@ -1003,7 +1003,7 @@ var useIsPlayer = () => {
1003
1003
  function truthy(value) {
1004
1004
  return Boolean(value);
1005
1005
  }
1006
- var VERSION = "4.0.435";
1006
+ var VERSION = "4.0.436";
1007
1007
  var checkMultipleRemotionVersions = () => {
1008
1008
  if (typeof globalThis === "undefined") {
1009
1009
  return;
@@ -4081,7 +4081,7 @@ var useBasicMediaInTimeline = ({
4081
4081
  const videoConfig = useVideoConfig();
4082
4082
  const [initialVolume] = useState10(() => volume);
4083
4083
  const mediaDuration = calculateMediaDuration({
4084
- mediaDurationInFrames: videoConfig.durationInFrames,
4084
+ mediaDurationInFrames: videoConfig.durationInFrames + (trimBefore ?? 0),
4085
4085
  playbackRate,
4086
4086
  trimBefore,
4087
4087
  trimAfter
@@ -28459,7 +28459,12 @@ var setGlobalTimeAnchor = ({
28459
28459
  }
28460
28460
  audioSyncAnchor.value = newAnchor;
28461
28461
  };
28462
- var makeAudioIterator = (startFromSecond, maximumTimestamp, cache2, debugAudioScheduling) => {
28462
+ var makeAudioIterator = ({
28463
+ startFromSecond,
28464
+ maximumTimestamp,
28465
+ cache: cache2,
28466
+ debugAudioScheduling
28467
+ }) => {
28463
28468
  let destroyed = false;
28464
28469
  const iterator = cache2.makeIteratorOrUsePrewarmed(startFromSecond, maximumTimestamp);
28465
28470
  const queuedAudioNodes = [];
@@ -28469,15 +28474,15 @@ var makeAudioIterator = (startFromSecond, maximumTimestamp, cache2, debugAudioSc
28469
28474
  const cleanupAudioQueue = (audioContext) => {
28470
28475
  for (const node of queuedAudioNodes) {
28471
28476
  try {
28472
- const currentlyHearing = audioContext.getOutputTimestamp().contextTime;
28473
- const nodeEndTime = node.scheduledTime + node.buffer.duration / node.playbackRate;
28474
- const isAlreadyPlaying = node.scheduledTime - ALLOWED_GLOBAL_TIME_ANCHOR_SHIFT < audioContext.currentTime;
28475
- const shouldKeep = isAlreadyPlaying;
28476
- if (shouldKeep) {
28477
+ const isAlreadyPlaying = node.scheduledTime - ALLOWED_GLOBAL_TIME_ANCHOR_SHIFT < audioContext.audioContext.currentTime;
28478
+ const wasScheduledForThisAnchor = node.scheduledAtAnchor === audioContext.audioSyncAnchor.value;
28479
+ if (isAlreadyPlaying && wasScheduledForThisAnchor) {
28477
28480
  continue;
28478
28481
  }
28479
28482
  if (debugAudioScheduling) {
28480
- Internals.Log.info({ logLevel: "trace", tag: "audio-scheduling" }, `Stopping node ${node.timestamp.toFixed(3)}, currently hearing = ${currentlyHearing.toFixed(3)} currentTime = ${audioContext.currentTime.toFixed(3)} nodeEndTime = ${nodeEndTime.toFixed(3)} scheduledTime = ${node.scheduledTime.toFixed(3)}`);
28483
+ const currentlyHearing = audioContext.audioContext.getOutputTimestamp().contextTime;
28484
+ const nodeEndTime = node.scheduledTime + node.buffer.duration / node.playbackRate;
28485
+ Internals.Log.info({ logLevel: "trace", tag: "audio-scheduling" }, `Stopping node ${node.timestamp.toFixed(3)}, currently hearing = ${currentlyHearing.toFixed(3)} currentTime = ${audioContext.audioContext.currentTime.toFixed(3)} nodeEndTime = ${nodeEndTime.toFixed(3)} scheduledTime = ${node.scheduledTime.toFixed(3)}`);
28481
28486
  }
28482
28487
  node.node.stop();
28483
28488
  } catch {}
@@ -28638,14 +28643,16 @@ var makeAudioIterator = (startFromSecond, maximumTimestamp, cache2, debugAudioSc
28638
28643
  timestamp,
28639
28644
  buffer,
28640
28645
  scheduledTime,
28641
- playbackRate
28646
+ playbackRate,
28647
+ scheduledAtAnchor
28642
28648
  }) => {
28643
28649
  queuedAudioNodes.push({
28644
28650
  node,
28645
28651
  timestamp,
28646
28652
  buffer,
28647
28653
  scheduledTime,
28648
- playbackRate
28654
+ playbackRate,
28655
+ scheduledAtAnchor
28649
28656
  });
28650
28657
  },
28651
28658
  removeQueuedAudioNode: (node) => {
@@ -28884,8 +28891,8 @@ var audioIteratorManager = ({
28884
28891
  }) => {
28885
28892
  let muted = initialMuted;
28886
28893
  let currentVolume = 1;
28887
- const gainNode = sharedAudioContext.createGain();
28888
- gainNode.connect(sharedAudioContext.destination);
28894
+ const gainNode = sharedAudioContext.audioContext.createGain();
28895
+ gainNode.connect(sharedAudioContext.audioContext.destination);
28889
28896
  const audioSink = new AudioBufferSink(audioTrack);
28890
28897
  const prewarmedAudioIteratorCache = makePrewarmedAudioIteratorCache(audioSink);
28891
28898
  let audioBufferIterator = null;
@@ -28901,13 +28908,13 @@ var audioIteratorManager = ({
28901
28908
  if (!audioBufferIterator) {
28902
28909
  throw new Error("Audio buffer iterator not found");
28903
28910
  }
28904
- if (sharedAudioContext.state !== "running") {
28911
+ if (sharedAudioContext.audioContext.state !== "running") {
28905
28912
  throw new Error("Tried to schedule node while audio context is not running");
28906
28913
  }
28907
28914
  if (muted) {
28908
28915
  return;
28909
28916
  }
28910
- const node = sharedAudioContext.createBufferSource();
28917
+ const node = sharedAudioContext.audioContext.createBufferSource();
28911
28918
  node.buffer = buffer;
28912
28919
  node.playbackRate.value = playbackRate;
28913
28920
  node.connect(gainNode);
@@ -28925,7 +28932,8 @@ var audioIteratorManager = ({
28925
28932
  timestamp: mediaTimestamp,
28926
28933
  buffer,
28927
28934
  scheduledTime: started.scheduledTime,
28928
- playbackRate
28935
+ playbackRate,
28936
+ scheduledAtAnchor: sharedAudioContext.audioSyncAnchor.value
28929
28937
  });
28930
28938
  node.onended = () => {
28931
28939
  setTimeout(() => {
@@ -28972,7 +28980,7 @@ var audioIteratorManager = ({
28972
28980
  if (buffer.timestamp >= endTime) {
28973
28981
  return;
28974
28982
  }
28975
- if (getIsPlaying() && sharedAudioContext.state === "running" && (sharedAudioContext.getOutputTimestamp().contextTime ?? 0) > 0) {
28983
+ if (getIsPlaying() && sharedAudioContext.audioContext.state === "running" && (sharedAudioContext.audioContext.getOutputTimestamp().contextTime ?? 0) > 0) {
28976
28984
  resumeScheduledAudioChunks({
28977
28985
  playbackRate,
28978
28986
  scheduleAudioNode,
@@ -29012,7 +29020,12 @@ var audioIteratorManager = ({
29012
29020
  audioBufferIterator?.destroy(sharedAudioContext);
29013
29021
  const delayHandle = __using(__stack, delayPlaybackHandleIfNotPremounting(), 0);
29014
29022
  currentDelayHandle = delayHandle;
29015
- const iterator = makeAudioIterator(startFromSecond, getEndTime(), prewarmedAudioIteratorCache, debugAudioScheduling);
29023
+ const iterator = makeAudioIterator({
29024
+ startFromSecond,
29025
+ maximumTimestamp: getEndTime(),
29026
+ cache: prewarmedAudioIteratorCache,
29027
+ debugAudioScheduling
29028
+ });
29016
29029
  audioIteratorsCreated++;
29017
29030
  audioBufferIterator = iterator;
29018
29031
  try {
@@ -29096,7 +29109,7 @@ var audioIteratorManager = ({
29096
29109
  }
29097
29110
  const queuedPeriod = audioBufferIterator.getQueuedPeriod();
29098
29111
  const queuedPeriodMinusLatency = queuedPeriod ? {
29099
- from: queuedPeriod.from - ALLOWED_GLOBAL_TIME_ANCHOR_SHIFT - sharedAudioContext.baseLatency - sharedAudioContext.outputLatency,
29112
+ from: queuedPeriod.from - ALLOWED_GLOBAL_TIME_ANCHOR_SHIFT - sharedAudioContext.audioContext.baseLatency - sharedAudioContext.audioContext.outputLatency,
29100
29113
  until: queuedPeriod.until
29101
29114
  } : null;
29102
29115
  const currentTimeIsAlreadyQueued = isAlreadyQueued(newTime, queuedPeriodMinusLatency);
@@ -29521,7 +29534,8 @@ class MediaPlayer {
29521
29534
  durationInFrames,
29522
29535
  onVideoFrameCallback,
29523
29536
  playing,
29524
- sequenceOffset
29537
+ sequenceOffset,
29538
+ credentials
29525
29539
  }) {
29526
29540
  this.canvas = canvas ?? null;
29527
29541
  this.src = src;
@@ -29545,7 +29559,9 @@ class MediaPlayer {
29545
29559
  this.playing = playing;
29546
29560
  this.sequenceOffset = sequenceOffset;
29547
29561
  this.input = new Input2({
29548
- source: new UrlSource(this.src),
29562
+ source: new UrlSource(this.src, credentials ? {
29563
+ requestInit: { credentials }
29564
+ } : undefined),
29549
29565
  formats: ALL_FORMATS
29550
29566
  });
29551
29567
  if (canvas) {
@@ -29659,7 +29675,7 @@ class MediaPlayer {
29659
29675
  this.audioIteratorManager = audioIteratorManager({
29660
29676
  audioTrack,
29661
29677
  delayPlaybackHandleIfNotPremounting: this.delayPlaybackHandleIfNotPremounting,
29662
- sharedAudioContext: this.sharedAudioContext.audioContext,
29678
+ sharedAudioContext: this.sharedAudioContext,
29663
29679
  getIsLooping: () => this.loop,
29664
29680
  getEndTime: () => this.getEndTime(),
29665
29681
  getStartTime: () => this.getStartTime(),
@@ -30328,6 +30344,7 @@ var AudioForPreviewAssertedShowing = ({
30328
30344
  fallbackHtml5AudioProps,
30329
30345
  debugAudioScheduling,
30330
30346
  onError,
30347
+ credentials,
30331
30348
  controls
30332
30349
  }) => {
30333
30350
  const videoConfig = useUnsafeVideoConfig2();
@@ -30454,7 +30471,8 @@ var AudioForPreviewAssertedShowing = ({
30454
30471
  durationInFrames: videoConfig.durationInFrames,
30455
30472
  onVideoFrameCallback: null,
30456
30473
  playing: initialPlaying.current,
30457
- sequenceOffset: initialSequenceOffset.current
30474
+ sequenceOffset: initialSequenceOffset.current,
30475
+ credentials
30458
30476
  });
30459
30477
  mediaPlayerRef.current = player;
30460
30478
  player.initialize(currentTimeRef.current, initialMuted.current).then((result) => {
@@ -30546,7 +30564,8 @@ var AudioForPreviewAssertedShowing = ({
30546
30564
  debugAudioScheduling,
30547
30565
  buffer,
30548
30566
  onError,
30549
- videoConfig.durationInFrames
30567
+ videoConfig.durationInFrames,
30568
+ credentials
30550
30569
  ]);
30551
30570
  if (shouldFallbackToNativeAudio && !disallowFallbackToHtml5Audio) {
30552
30571
  return /* @__PURE__ */ jsx58(Audio, {
@@ -30589,6 +30608,7 @@ var AudioForPreview2 = ({
30589
30608
  fallbackHtml5AudioProps,
30590
30609
  debugAudioScheduling,
30591
30610
  onError,
30611
+ credentials,
30592
30612
  controls
30593
30613
  }) => {
30594
30614
  const preloadedSrc = usePreload2(src);
@@ -30638,6 +30658,7 @@ var AudioForPreview2 = ({
30638
30658
  toneFrequency,
30639
30659
  debugAudioScheduling: debugAudioScheduling ?? false,
30640
30660
  onError,
30661
+ credentials,
30641
30662
  fallbackHtml5AudioProps,
30642
30663
  controls
30643
30664
  });
@@ -31732,11 +31753,12 @@ var getFormatOrNullOrNetworkError = async (input) => {
31732
31753
  return null;
31733
31754
  }
31734
31755
  };
31735
- var getSinks = async (src) => {
31756
+ var getSinks = async (src, credentials) => {
31736
31757
  const input = new Input22({
31737
31758
  formats: ALL_FORMATS2,
31738
31759
  source: new UrlSource2(src, {
31739
- getRetryDelay
31760
+ getRetryDelay,
31761
+ ...credentials ? { requestInit: { credentials } } : undefined
31740
31762
  })
31741
31763
  });
31742
31764
  const format = await getFormatOrNullOrNetworkError(input);
@@ -31816,15 +31838,16 @@ var getSinks = async (src) => {
31816
31838
  };
31817
31839
  };
31818
31840
  var sinkPromises = {};
31819
- var getSink = (src, logLevel) => {
31820
- let promise = sinkPromises[src];
31841
+ var getSink = (src, logLevel, credentials) => {
31842
+ const cacheKey = credentials ? `${src}::${credentials}` : src;
31843
+ let promise = sinkPromises[cacheKey];
31821
31844
  if (!promise) {
31822
31845
  Internals.Log.verbose({
31823
31846
  logLevel,
31824
31847
  tag: "@remotion/media"
31825
31848
  }, `Sink for ${src} was not found, creating new sink`);
31826
- promise = getSinks(src);
31827
- sinkPromises[src] = promise;
31849
+ promise = getSinks(src, credentials);
31850
+ sinkPromises[cacheKey] = promise;
31828
31851
  }
31829
31852
  return promise;
31830
31853
  };
@@ -31839,9 +31862,10 @@ var extractAudioInternal = async ({
31839
31862
  trimBefore,
31840
31863
  trimAfter,
31841
31864
  fps,
31842
- maxCacheSize
31865
+ maxCacheSize,
31866
+ credentials
31843
31867
  }) => {
31844
- const { getAudio, actualMatroskaTimestamps, isMatroska, getDuration } = await getSink(src, logLevel);
31868
+ const { getAudio, actualMatroskaTimestamps, isMatroska, getDuration } = await getSink(src, logLevel, credentials);
31845
31869
  let mediaDurationInSeconds = null;
31846
31870
  if (loop) {
31847
31871
  mediaDurationInSeconds = await getDuration();
@@ -31964,9 +31988,10 @@ var extractFrameInternal = async ({
31964
31988
  trimBefore,
31965
31989
  playbackRate,
31966
31990
  fps,
31967
- maxCacheSize
31991
+ maxCacheSize,
31992
+ credentials
31968
31993
  }) => {
31969
- const sink = await getSink(src, logLevel);
31994
+ const sink = await getSink(src, logLevel, credentials);
31970
31995
  const [video, mediaDurationInSecondsRaw] = await Promise.all([
31971
31996
  sink.getVideo(),
31972
31997
  loop ? sink.getDuration() : Promise.resolve(null)
@@ -32088,7 +32113,8 @@ var extractFrameAndAudio = async ({
32088
32113
  trimAfter,
32089
32114
  trimBefore,
32090
32115
  fps,
32091
- maxCacheSize
32116
+ maxCacheSize,
32117
+ credentials
32092
32118
  }) => {
32093
32119
  try {
32094
32120
  const [video, audio] = await Promise.all([
@@ -32101,7 +32127,8 @@ var extractFrameAndAudio = async ({
32101
32127
  playbackRate,
32102
32128
  trimBefore,
32103
32129
  fps,
32104
- maxCacheSize
32130
+ maxCacheSize,
32131
+ credentials
32105
32132
  }) : null,
32106
32133
  includeAudio ? extractAudio({
32107
32134
  src,
@@ -32114,7 +32141,8 @@ var extractFrameAndAudio = async ({
32114
32141
  trimAfter,
32115
32142
  fps,
32116
32143
  trimBefore,
32117
- maxCacheSize
32144
+ maxCacheSize,
32145
+ credentials
32118
32146
  }) : null
32119
32147
  ]);
32120
32148
  if (video?.type === "cannot-decode") {
@@ -32195,7 +32223,8 @@ var addBroadcastChannelListener = () => {
32195
32223
  trimAfter: data.trimAfter,
32196
32224
  trimBefore: data.trimBefore,
32197
32225
  fps: data.fps,
32198
- maxCacheSize: data.maxCacheSize
32226
+ maxCacheSize: data.maxCacheSize,
32227
+ credentials: data.credentials
32199
32228
  });
32200
32229
  if (result.type === "cannot-decode") {
32201
32230
  const cannotDecodeResponse = {
@@ -32290,7 +32319,8 @@ var extractFrameViaBroadcastChannel = async ({
32290
32319
  trimAfter,
32291
32320
  trimBefore,
32292
32321
  fps,
32293
- maxCacheSize
32322
+ maxCacheSize,
32323
+ credentials
32294
32324
  }) => {
32295
32325
  if (isClientSideRendering || window.remotion_isMainTab) {
32296
32326
  return extractFrameAndAudio({
@@ -32306,7 +32336,8 @@ var extractFrameViaBroadcastChannel = async ({
32306
32336
  trimAfter,
32307
32337
  trimBefore,
32308
32338
  fps,
32309
- maxCacheSize
32339
+ maxCacheSize,
32340
+ credentials
32310
32341
  });
32311
32342
  }
32312
32343
  await waitForMainTabToBeReady(window.remotion_broadcastChannel);
@@ -32383,7 +32414,8 @@ var extractFrameViaBroadcastChannel = async ({
32383
32414
  trimAfter,
32384
32415
  trimBefore,
32385
32416
  fps,
32386
- maxCacheSize
32417
+ maxCacheSize,
32418
+ credentials
32387
32419
  };
32388
32420
  window.remotion_broadcastChannel.postMessage(request);
32389
32421
  let timeoutId;
@@ -32418,7 +32450,8 @@ var AudioForRendering2 = ({
32418
32450
  toneFrequency,
32419
32451
  trimAfter,
32420
32452
  trimBefore,
32421
- onError
32453
+ onError,
32454
+ credentials
32422
32455
  }) => {
32423
32456
  const defaultLogLevel = Internals.useLogLevel();
32424
32457
  const logLevel = overriddenLogLevel ?? defaultLogLevel;
@@ -32482,7 +32515,8 @@ var AudioForRendering2 = ({
32482
32515
  trimAfter,
32483
32516
  trimBefore,
32484
32517
  fps,
32485
- maxCacheSize
32518
+ maxCacheSize,
32519
+ credentials
32486
32520
  }).then((result) => {
32487
32521
  const handleError = (error2, clientSideError, fallbackMessage) => {
32488
32522
  const [action, errorToUse] = callOnErrorAndResolve({
@@ -32576,7 +32610,8 @@ var AudioForRendering2 = ({
32576
32610
  replaceWithHtml5Audio,
32577
32611
  maxCacheSize,
32578
32612
  audioEnabled,
32579
- onError
32613
+ onError,
32614
+ credentials
32580
32615
  ]);
32581
32616
  if (replaceWithHtml5Audio) {
32582
32617
  return /* @__PURE__ */ jsx216(Html5Audio, {
@@ -32676,6 +32711,7 @@ var VideoForPreviewAssertedShowing = ({
32676
32711
  debugAudioScheduling,
32677
32712
  headless,
32678
32713
  onError,
32714
+ credentials,
32679
32715
  controls
32680
32716
  }) => {
32681
32717
  const src = usePreload22(unpreloadedSrc);
@@ -32779,7 +32815,8 @@ var VideoForPreviewAssertedShowing = ({
32779
32815
  durationInFrames: videoConfig.durationInFrames,
32780
32816
  onVideoFrameCallback: initialOnVideoFrameRef.current ?? null,
32781
32817
  playing: initialPlaying.current,
32782
- sequenceOffset: initialSequenceOffset.current
32818
+ sequenceOffset: initialSequenceOffset.current,
32819
+ credentials
32783
32820
  });
32784
32821
  mediaPlayerRef.current = player;
32785
32822
  player.initialize(currentTimeRef.current, initialMuted.current).then((result) => {
@@ -32869,7 +32906,8 @@ var VideoForPreviewAssertedShowing = ({
32869
32906
  sharedAudioContext,
32870
32907
  videoConfig.fps,
32871
32908
  onError,
32872
- videoConfig.durationInFrames
32909
+ videoConfig.durationInFrames,
32910
+ credentials
32873
32911
  ]);
32874
32912
  const classNameValue = useMemo412(() => {
32875
32913
  return [Internals.OBJECTFIT_CONTAIN_CLASS_NAME, className2].filter(Internals.truthy).join(" ");
@@ -33001,7 +33039,8 @@ var VideoForRendering2 = ({
33001
33039
  trimAfterValue,
33002
33040
  trimBeforeValue,
33003
33041
  headless,
33004
- onError
33042
+ onError,
33043
+ credentials
33005
33044
  }) => {
33006
33045
  if (!src) {
33007
33046
  throw new TypeError("No `src` was passed to <Video>.");
@@ -33068,7 +33107,8 @@ var VideoForRendering2 = ({
33068
33107
  trimAfter: trimAfterValue,
33069
33108
  trimBefore: trimBeforeValue,
33070
33109
  fps,
33071
- maxCacheSize
33110
+ maxCacheSize,
33111
+ credentials
33072
33112
  }).then((result) => {
33073
33113
  const handleError = (err, clientSideError, fallbackMessage, mediaDurationInSeconds) => {
33074
33114
  if (environment.isClientSideRendering) {
@@ -33200,7 +33240,8 @@ var VideoForRendering2 = ({
33200
33240
  maxCacheSize,
33201
33241
  cancelRender3,
33202
33242
  headless,
33203
- onError
33243
+ onError,
33244
+ credentials
33204
33245
  ]);
33205
33246
  const classNameValue = useMemo53(() => {
33206
33247
  return [Internals.OBJECTFIT_CONTAIN_CLASS_NAME, className2].filter(Internals.truthy).join(" ");
@@ -33339,6 +33380,7 @@ var InnerVideo = ({
33339
33380
  debugAudioScheduling,
33340
33381
  headless,
33341
33382
  onError,
33383
+ credentials,
33342
33384
  controls
33343
33385
  }) => {
33344
33386
  const environment = useRemotionEnvironment();
@@ -33381,7 +33423,8 @@ var InnerVideo = ({
33381
33423
  trimAfterValue,
33382
33424
  trimBeforeValue,
33383
33425
  headless,
33384
- onError
33426
+ onError,
33427
+ credentials
33385
33428
  });
33386
33429
  }
33387
33430
  return /* @__PURE__ */ jsx65(VideoForPreview2, {
@@ -33407,6 +33450,7 @@ var InnerVideo = ({
33407
33450
  debugAudioScheduling: debugAudioScheduling ?? false,
33408
33451
  headless: headless ?? false,
33409
33452
  onError,
33453
+ credentials,
33410
33454
  controls
33411
33455
  });
33412
33456
  };
@@ -33436,6 +33480,7 @@ var VideoInner = ({
33436
33480
  debugAudioScheduling,
33437
33481
  headless,
33438
33482
  onError,
33483
+ credentials,
33439
33484
  controls
33440
33485
  }) => {
33441
33486
  const fallbackLogLevel = Internals.useLogLevel();
@@ -33465,6 +33510,7 @@ var VideoInner = ({
33465
33510
  debugAudioScheduling: debugAudioScheduling ?? false,
33466
33511
  headless: headless ?? false,
33467
33512
  onError,
33513
+ credentials,
33468
33514
  controls
33469
33515
  });
33470
33516
  };
@@ -34772,7 +34818,7 @@ import {
34772
34818
  import { BufferTarget, StreamTarget } from "mediabunny";
34773
34819
 
34774
34820
  // ../core/dist/esm/version.mjs
34775
- var VERSION2 = "4.0.435";
34821
+ var VERSION2 = "4.0.436";
34776
34822
 
34777
34823
  // ../web-renderer/dist/esm/index.mjs
34778
34824
  import { AudioSample, VideoSample } from "mediabunny";
@@ -41376,7 +41422,7 @@ var FEATURED_TEMPLATES = [
41376
41422
  shortName: "Prompt to Motion Graphics SaaS Starter Kit",
41377
41423
  org: "remotion-dev",
41378
41424
  repoName: "template-prompt-to-motion-graphics-saas",
41379
- description: "SaaS template for AI-powered code generation with Remotion",
41425
+ description: "SaaS template for AI-powered animation generation",
41380
41426
  longerDescription: 'A SaaS template for "Prompt to Motion Graphics" products. Generates Remotion code, streams it to the frontend, and compiles and previews it in the browser. See the <a href="/docs/ai/ai-saas-template">documentation page</a> for more details.',
41381
41427
  promoBanner: {
41382
41428
  width: 2880,
@@ -5977,7 +5977,7 @@ var useIsPlayer = () => {
5977
5977
  function truthy2(value) {
5978
5978
  return Boolean(value);
5979
5979
  }
5980
- var VERSION = "4.0.435";
5980
+ var VERSION = "4.0.436";
5981
5981
  var checkMultipleRemotionVersions = () => {
5982
5982
  if (typeof globalThis === "undefined") {
5983
5983
  return;
@@ -9055,7 +9055,7 @@ var useBasicMediaInTimeline = ({
9055
9055
  const videoConfig = useVideoConfig();
9056
9056
  const [initialVolume] = useState10(() => volume);
9057
9057
  const mediaDuration = calculateMediaDuration({
9058
- mediaDurationInFrames: videoConfig.durationInFrames,
9058
+ mediaDurationInFrames: videoConfig.durationInFrames + (trimBefore ?? 0),
9059
9059
  playbackRate,
9060
9060
  trimBefore,
9061
9061
  trimAfter
@@ -1003,7 +1003,7 @@ var useIsPlayer = () => {
1003
1003
  function truthy(value) {
1004
1004
  return Boolean(value);
1005
1005
  }
1006
- var VERSION = "4.0.435";
1006
+ var VERSION = "4.0.436";
1007
1007
  var checkMultipleRemotionVersions = () => {
1008
1008
  if (typeof globalThis === "undefined") {
1009
1009
  return;
@@ -4081,7 +4081,7 @@ var useBasicMediaInTimeline = ({
4081
4081
  const videoConfig = useVideoConfig();
4082
4082
  const [initialVolume] = useState10(() => volume);
4083
4083
  const mediaDuration = calculateMediaDuration({
4084
- mediaDurationInFrames: videoConfig.durationInFrames,
4084
+ mediaDurationInFrames: videoConfig.durationInFrames + (trimBefore ?? 0),
4085
4085
  playbackRate,
4086
4086
  trimBefore,
4087
4087
  trimAfter
@@ -5977,7 +5977,7 @@ var useIsPlayer = () => {
5977
5977
  function truthy2(value) {
5978
5978
  return Boolean(value);
5979
5979
  }
5980
- var VERSION = "4.0.435";
5980
+ var VERSION = "4.0.436";
5981
5981
  var checkMultipleRemotionVersions = () => {
5982
5982
  if (typeof globalThis === "undefined") {
5983
5983
  return;
@@ -9055,7 +9055,7 @@ var useBasicMediaInTimeline = ({
9055
9055
  const videoConfig = useVideoConfig();
9056
9056
  const [initialVolume] = useState10(() => volume);
9057
9057
  const mediaDuration = calculateMediaDuration({
9058
- mediaDurationInFrames: videoConfig.durationInFrames,
9058
+ mediaDurationInFrames: videoConfig.durationInFrames + (trimBefore ?? 0),
9059
9059
  playbackRate,
9060
9060
  trimBefore,
9061
9061
  trimAfter
@@ -5977,7 +5977,7 @@ var useIsPlayer = () => {
5977
5977
  function truthy2(value) {
5978
5978
  return Boolean(value);
5979
5979
  }
5980
- var VERSION = "4.0.435";
5980
+ var VERSION = "4.0.436";
5981
5981
  var checkMultipleRemotionVersions = () => {
5982
5982
  if (typeof globalThis === "undefined") {
5983
5983
  return;
@@ -9055,7 +9055,7 @@ var useBasicMediaInTimeline = ({
9055
9055
  const videoConfig = useVideoConfig();
9056
9056
  const [initialVolume] = useState10(() => volume);
9057
9057
  const mediaDuration = calculateMediaDuration({
9058
- mediaDurationInFrames: videoConfig.durationInFrames,
9058
+ mediaDurationInFrames: videoConfig.durationInFrames + (trimBefore ?? 0),
9059
9059
  playbackRate,
9060
9060
  trimBefore,
9061
9061
  trimAfter
@@ -23311,7 +23311,7 @@ var useIsPlayer = () => {
23311
23311
  function truthy2(value) {
23312
23312
  return Boolean(value);
23313
23313
  }
23314
- var VERSION = "4.0.435";
23314
+ var VERSION = "4.0.436";
23315
23315
  var checkMultipleRemotionVersions = () => {
23316
23316
  if (typeof globalThis === "undefined") {
23317
23317
  return;
@@ -26389,7 +26389,7 @@ var useBasicMediaInTimeline = ({
26389
26389
  const videoConfig = useVideoConfig();
26390
26390
  const [initialVolume] = useState10(() => volume);
26391
26391
  const mediaDuration = calculateMediaDuration({
26392
- mediaDurationInFrames: videoConfig.durationInFrames,
26392
+ mediaDurationInFrames: videoConfig.durationInFrames + (trimBefore ?? 0),
26393
26393
  playbackRate,
26394
26394
  trimBefore,
26395
26395
  trimAfter
@@ -23311,7 +23311,7 @@ var useIsPlayer = () => {
23311
23311
  function truthy2(value) {
23312
23312
  return Boolean(value);
23313
23313
  }
23314
- var VERSION = "4.0.435";
23314
+ var VERSION = "4.0.436";
23315
23315
  var checkMultipleRemotionVersions = () => {
23316
23316
  if (typeof globalThis === "undefined") {
23317
23317
  return;
@@ -26389,7 +26389,7 @@ var useBasicMediaInTimeline = ({
26389
26389
  const videoConfig = useVideoConfig();
26390
26390
  const [initialVolume] = useState10(() => volume);
26391
26391
  const mediaDuration = calculateMediaDuration({
26392
- mediaDurationInFrames: videoConfig.durationInFrames,
26392
+ mediaDurationInFrames: videoConfig.durationInFrames + (trimBefore ?? 0),
26393
26393
  playbackRate,
26394
26394
  trimBefore,
26395
26395
  trimAfter
@@ -5977,7 +5977,7 @@ var useIsPlayer = () => {
5977
5977
  function truthy2(value) {
5978
5978
  return Boolean(value);
5979
5979
  }
5980
- var VERSION = "4.0.435";
5980
+ var VERSION = "4.0.436";
5981
5981
  var checkMultipleRemotionVersions = () => {
5982
5982
  if (typeof globalThis === "undefined") {
5983
5983
  return;
@@ -9055,7 +9055,7 @@ var useBasicMediaInTimeline = ({
9055
9055
  const videoConfig = useVideoConfig();
9056
9056
  const [initialVolume] = useState10(() => volume);
9057
9057
  const mediaDuration = calculateMediaDuration({
9058
- mediaDurationInFrames: videoConfig.durationInFrames,
9058
+ mediaDurationInFrames: videoConfig.durationInFrames + (trimBefore ?? 0),
9059
9059
  playbackRate,
9060
9060
  trimBefore,
9061
9061
  trimAfter
@@ -5977,7 +5977,7 @@ var useIsPlayer = () => {
5977
5977
  function truthy2(value) {
5978
5978
  return Boolean(value);
5979
5979
  }
5980
- var VERSION = "4.0.435";
5980
+ var VERSION = "4.0.436";
5981
5981
  var checkMultipleRemotionVersions = () => {
5982
5982
  if (typeof globalThis === "undefined") {
5983
5983
  return;
@@ -9055,7 +9055,7 @@ var useBasicMediaInTimeline = ({
9055
9055
  const videoConfig = useVideoConfig();
9056
9056
  const [initialVolume] = useState10(() => volume);
9057
9057
  const mediaDuration = calculateMediaDuration({
9058
- mediaDurationInFrames: videoConfig.durationInFrames,
9058
+ mediaDurationInFrames: videoConfig.durationInFrames + (trimBefore ?? 0),
9059
9059
  playbackRate,
9060
9060
  trimBefore,
9061
9061
  trimAfter
@@ -20164,7 +20164,7 @@ var FEATURED_TEMPLATES = [
20164
20164
  shortName: "Prompt to Motion Graphics SaaS Starter Kit",
20165
20165
  org: "remotion-dev",
20166
20166
  repoName: "template-prompt-to-motion-graphics-saas",
20167
- description: "SaaS template for AI-powered code generation with Remotion",
20167
+ description: "SaaS template for AI-powered animation generation",
20168
20168
  longerDescription: 'A SaaS template for "Prompt to Motion Graphics" products. Generates Remotion code, streams it to the frontend, and compiles and previews it in the browser. See the <a href="/docs/ai/ai-saas-template">documentation page</a> for more details.',
20169
20169
  promoBanner: {
20170
20170
  width: 2880,
package/dist/design.js CHANGED
@@ -5977,7 +5977,7 @@ var useIsPlayer = () => {
5977
5977
  function truthy2(value) {
5978
5978
  return Boolean(value);
5979
5979
  }
5980
- var VERSION = "4.0.435";
5980
+ var VERSION = "4.0.437";
5981
5981
  var checkMultipleRemotionVersions = () => {
5982
5982
  if (typeof globalThis === "undefined") {
5983
5983
  return;
@@ -9055,7 +9055,7 @@ var useBasicMediaInTimeline = ({
9055
9055
  const videoConfig = useVideoConfig();
9056
9056
  const [initialVolume] = useState10(() => volume);
9057
9057
  const mediaDuration = calculateMediaDuration({
9058
- mediaDurationInFrames: videoConfig.durationInFrames,
9058
+ mediaDurationInFrames: videoConfig.durationInFrames + (trimBefore ?? 0),
9059
9059
  playbackRate,
9060
9060
  trimBefore,
9061
9061
  trimAfter
package/dist/experts.js CHANGED
@@ -1003,7 +1003,7 @@ var useIsPlayer = () => {
1003
1003
  function truthy(value) {
1004
1004
  return Boolean(value);
1005
1005
  }
1006
- var VERSION = "4.0.435";
1006
+ var VERSION = "4.0.437";
1007
1007
  var checkMultipleRemotionVersions = () => {
1008
1008
  if (typeof globalThis === "undefined") {
1009
1009
  return;
@@ -4081,7 +4081,7 @@ var useBasicMediaInTimeline = ({
4081
4081
  const videoConfig = useVideoConfig();
4082
4082
  const [initialVolume] = useState10(() => volume);
4083
4083
  const mediaDuration = calculateMediaDuration({
4084
- mediaDurationInFrames: videoConfig.durationInFrames,
4084
+ mediaDurationInFrames: videoConfig.durationInFrames + (trimBefore ?? 0),
4085
4085
  playbackRate,
4086
4086
  trimBefore,
4087
4087
  trimAfter