@remotion/promo-pages 4.0.475 → 4.0.476

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 (276) hide show
  1. package/dist/Homepage.js +415 -364
  2. package/dist/cn.d.ts +2 -0
  3. package/dist/cn.js +5 -0
  4. package/dist/components/3DEngine/ButtonDemo.d.ts +2 -0
  5. package/dist/components/3DEngine/ButtonDemo.js +43 -0
  6. package/dist/components/3DEngine/Faces.d.ts +5 -0
  7. package/dist/components/3DEngine/Faces.js +7 -0
  8. package/dist/components/3DEngine/Outer.d.ts +8 -0
  9. package/dist/components/3DEngine/Outer.js +56 -0
  10. package/dist/components/3DEngine/Switch.d.ts +4 -0
  11. package/dist/components/3DEngine/Switch.js +4 -0
  12. package/dist/components/3DEngine/get-child-node-from.d.ts +1 -0
  13. package/dist/components/3DEngine/get-child-node-from.js +14 -0
  14. package/dist/components/3DEngine/hover-transforms.d.ts +9 -0
  15. package/dist/components/3DEngine/hover-transforms.js +177 -0
  16. package/dist/components/BackButton.d.ts +6 -0
  17. package/dist/components/BackButton.js +9 -0
  18. package/dist/components/CommandCopyButton.d.ts +5 -0
  19. package/dist/components/CommandCopyButton.js +4 -0
  20. package/dist/components/Homepage.d.ts +6 -0
  21. package/dist/components/Homepage.js +20 -0
  22. package/dist/components/ManageTeamMembers.d.ts +2 -0
  23. package/dist/components/ManageTeamMembers.js +42 -0
  24. package/dist/components/Spinner.d.ts +3 -0
  25. package/dist/components/Spinner.js +4 -0
  26. package/dist/components/TeamPicture.d.ts +1 -0
  27. package/dist/components/TeamPicture.js +4 -0
  28. package/dist/components/design.d.ts +1 -0
  29. package/dist/components/design.js +33 -0
  30. package/dist/components/experts/ExpertsPage.d.ts +11 -0
  31. package/dist/components/experts/ExpertsPage.js +50 -0
  32. package/dist/components/experts/experts-data.d.ts +19 -0
  33. package/dist/components/experts/experts-data.js +391 -0
  34. package/dist/components/experts/experts-icons.d.ts +8 -0
  35. package/dist/components/experts/experts-icons.js +42 -0
  36. package/dist/components/experts.d.ts +3 -0
  37. package/dist/components/experts.js +2 -0
  38. package/dist/components/homepage/AutomationsSection.d.ts +3 -0
  39. package/dist/components/homepage/AutomationsSection.js +85 -0
  40. package/dist/components/homepage/BackgroundAnimation.d.ts +2 -0
  41. package/dist/components/homepage/BackgroundAnimation.js +66 -0
  42. package/dist/components/homepage/ChooseTemplate.d.ts +2 -0
  43. package/dist/components/homepage/ChooseTemplate.js +25 -0
  44. package/dist/components/homepage/CommunityStats.d.ts +3 -0
  45. package/dist/components/homepage/CommunityStats.js +6 -0
  46. package/dist/components/homepage/CommunityStatsItems.d.ts +7 -0
  47. package/dist/components/homepage/CommunityStatsItems.js +58 -0
  48. package/dist/components/homepage/Demo/Card.d.ts +15 -0
  49. package/dist/components/homepage/Demo/Card.js +174 -0
  50. package/dist/components/homepage/Demo/Cards.d.ts +15 -0
  51. package/dist/components/homepage/Demo/Cards.js +57 -0
  52. package/dist/components/homepage/Demo/Comp.d.ts +38 -0
  53. package/dist/components/homepage/Demo/Comp.js +72 -0
  54. package/dist/components/homepage/Demo/CurrentCountry.d.ts +9 -0
  55. package/dist/components/homepage/Demo/CurrentCountry.js +48 -0
  56. package/dist/components/homepage/Demo/DemoError.d.ts +2 -0
  57. package/dist/components/homepage/Demo/DemoError.js +10 -0
  58. package/dist/components/homepage/Demo/DemoErrorIcon.d.ts +2 -0
  59. package/dist/components/homepage/Demo/DemoErrorIcon.js +16 -0
  60. package/dist/components/homepage/Demo/DemoRender.d.ts +33 -0
  61. package/dist/components/homepage/Demo/DemoRender.js +107 -0
  62. package/dist/components/homepage/Demo/DigitWheel.d.ts +9 -0
  63. package/dist/components/homepage/Demo/DigitWheel.js +94 -0
  64. package/dist/components/homepage/Demo/DisplayedEmoji.d.ts +5 -0
  65. package/dist/components/homepage/Demo/DisplayedEmoji.js +59 -0
  66. package/dist/components/homepage/Demo/DoneCheckmark.d.ts +2 -0
  67. package/dist/components/homepage/Demo/DoneCheckmark.js +20 -0
  68. package/dist/components/homepage/Demo/DownloadNudge.d.ts +2 -0
  69. package/dist/components/homepage/Demo/DownloadNudge.js +27 -0
  70. package/dist/components/homepage/Demo/DragAndDropNudge.d.ts +3 -0
  71. package/dist/components/homepage/Demo/DragAndDropNudge.js +26 -0
  72. package/dist/components/homepage/Demo/EmojiCard.d.ts +10 -0
  73. package/dist/components/homepage/Demo/EmojiCard.js +120 -0
  74. package/dist/components/homepage/Demo/Minus.d.ts +5 -0
  75. package/dist/components/homepage/Demo/Minus.js +11 -0
  76. package/dist/components/homepage/Demo/PlayPauseButton.d.ts +5 -0
  77. package/dist/components/homepage/Demo/PlayPauseButton.js +47 -0
  78. package/dist/components/homepage/Demo/PlayerControls.d.ts +8 -0
  79. package/dist/components/homepage/Demo/PlayerControls.js +15 -0
  80. package/dist/components/homepage/Demo/PlayerSeekBar.d.ts +11 -0
  81. package/dist/components/homepage/Demo/PlayerSeekBar.js +216 -0
  82. package/dist/components/homepage/Demo/PlayerVolume.d.ts +5 -0
  83. package/dist/components/homepage/Demo/PlayerVolume.js +53 -0
  84. package/dist/components/homepage/Demo/Progress.d.ts +4 -0
  85. package/dist/components/homepage/Demo/Progress.js +14 -0
  86. package/dist/components/homepage/Demo/Spinner.d.ts +5 -0
  87. package/dist/components/homepage/Demo/Spinner.js +37 -0
  88. package/dist/components/homepage/Demo/Switcher.d.ts +6 -0
  89. package/dist/components/homepage/Demo/Switcher.js +25 -0
  90. package/dist/components/homepage/Demo/Temperature.d.ts +6 -0
  91. package/dist/components/homepage/Demo/Temperature.js +21 -0
  92. package/dist/components/homepage/Demo/TemperatureNumber.d.ts +5 -0
  93. package/dist/components/homepage/Demo/TemperatureNumber.js +36 -0
  94. package/dist/components/homepage/Demo/ThemeNudge.d.ts +3 -0
  95. package/dist/components/homepage/Demo/ThemeNudge.js +35 -0
  96. package/dist/components/homepage/Demo/TimeDisplay.d.ts +6 -0
  97. package/dist/components/homepage/Demo/TimeDisplay.js +27 -0
  98. package/dist/components/homepage/Demo/TrendingRepos.d.ts +6 -0
  99. package/dist/components/homepage/Demo/TrendingRepos.js +65 -0
  100. package/dist/components/homepage/Demo/icons.d.ts +10 -0
  101. package/dist/components/homepage/Demo/icons.js +22 -0
  102. package/dist/components/homepage/Demo/index.d.ts +2 -0
  103. package/dist/components/homepage/Demo/index.js +95 -0
  104. package/dist/components/homepage/Demo/math.d.ts +10 -0
  105. package/dist/components/homepage/Demo/math.js +29 -0
  106. package/dist/components/homepage/Demo/types.d.ts +6 -0
  107. package/dist/components/homepage/Demo/types.js +0 -0
  108. package/dist/components/homepage/EvaluateRemotion.d.ts +3 -0
  109. package/dist/components/homepage/EvaluateRemotion.js +21 -0
  110. package/dist/components/homepage/FreePricing.d.ts +4 -0
  111. package/dist/components/homepage/FreePricing.js +133 -0
  112. package/dist/components/homepage/GetStartedStrip.d.ts +2 -0
  113. package/dist/components/homepage/GetStartedStrip.js +14 -0
  114. package/dist/components/homepage/GitHubButton.d.ts +2 -0
  115. package/dist/components/homepage/GitHubButton.js +7 -0
  116. package/dist/components/homepage/IconForTemplate.d.ts +6 -0
  117. package/dist/components/homepage/IconForTemplate.js +105 -0
  118. package/dist/components/homepage/IfYouKnowReact.d.ts +3 -0
  119. package/dist/components/homepage/IfYouKnowReact.js +23 -0
  120. package/dist/components/homepage/MoreTemplatesButton.d.ts +2 -0
  121. package/dist/components/homepage/MoreTemplatesButton.js +11 -0
  122. package/dist/components/homepage/MuxVideo.d.ts +7 -0
  123. package/dist/components/homepage/MuxVideo.js +45 -0
  124. package/dist/components/homepage/NewsletterButton.d.ts +2 -0
  125. package/dist/components/homepage/NewsletterButton.js +38 -0
  126. package/dist/components/homepage/ParameterizeAndEdit.d.ts +2 -0
  127. package/dist/components/homepage/ParameterizeAndEdit.js +22 -0
  128. package/dist/components/homepage/Pricing.d.ts +2 -0
  129. package/dist/components/homepage/Pricing.js +15 -0
  130. package/dist/components/homepage/PricingBulletPoint.d.ts +6 -0
  131. package/dist/components/homepage/PricingBulletPoint.js +19 -0
  132. package/dist/components/homepage/RealMp4Videos.d.ts +2 -0
  133. package/dist/components/homepage/RealMp4Videos.js +41 -0
  134. package/dist/components/homepage/Spacer.d.ts +2 -0
  135. package/dist/components/homepage/Spacer.js +4 -0
  136. package/dist/components/homepage/TemplateIcon.d.ts +5 -0
  137. package/dist/components/homepage/TemplateIcon.js +24 -0
  138. package/dist/components/homepage/TextInput.d.ts +7 -0
  139. package/dist/components/homepage/TextInput.js +34 -0
  140. package/dist/components/homepage/TrustedByBanner.d.ts +2 -0
  141. package/dist/components/homepage/TrustedByBanner.js +27 -0
  142. package/dist/components/homepage/VideoApps.d.ts +4 -0
  143. package/dist/components/homepage/VideoApps.js +72 -0
  144. package/dist/components/homepage/VideoAppsShowcase.d.ts +2 -0
  145. package/dist/components/homepage/VideoAppsShowcase.js +139 -0
  146. package/dist/components/homepage/VideoAppsTitle.d.ts +4 -0
  147. package/dist/components/homepage/VideoAppsTitle.js +4 -0
  148. package/dist/components/homepage/VideoPlayerWithControls.d.ts +20 -0
  149. package/dist/components/homepage/VideoPlayerWithControls.js +105 -0
  150. package/dist/components/homepage/WriteInReact.d.ts +2 -0
  151. package/dist/components/homepage/WriteInReact.js +10 -0
  152. package/dist/components/homepage/YouAreHere.d.ts +2 -0
  153. package/dist/components/homepage/YouAreHere.js +23 -0
  154. package/dist/components/homepage/layout/Button.d.ts +22 -0
  155. package/dist/components/homepage/layout/Button.js +30 -0
  156. package/dist/components/homepage/layout/colors.d.ts +13 -0
  157. package/dist/components/homepage/layout/colors.js +14 -0
  158. package/dist/components/homepage/layout/use-color-mode.d.ts +21 -0
  159. package/dist/components/homepage/layout/use-color-mode.js +22 -0
  160. package/dist/components/homepage/layout/use-el-size.d.ts +5 -0
  161. package/dist/components/homepage/layout/use-el-size.js +40 -0
  162. package/dist/components/homepage/layout/use-mobile-layout.d.ts +1 -0
  163. package/dist/components/homepage/layout/use-mobile-layout.js +6 -0
  164. package/dist/components/icons/blank.d.ts +3 -0
  165. package/dist/components/icons/blank.js +4 -0
  166. package/dist/components/icons/brain.d.ts +2 -0
  167. package/dist/components/icons/brain.js +4 -0
  168. package/dist/components/icons/clone.d.ts +2 -0
  169. package/dist/components/icons/clone.js +2 -0
  170. package/dist/components/icons/code-hike.d.ts +3 -0
  171. package/dist/components/icons/code-hike.js +4 -0
  172. package/dist/components/icons/cubes.d.ts +3 -0
  173. package/dist/components/icons/cubes.js +4 -0
  174. package/dist/components/icons/editor.d.ts +3 -0
  175. package/dist/components/icons/editor.js +4 -0
  176. package/dist/components/icons/electron.d.ts +4 -0
  177. package/dist/components/icons/electron.js +4 -0
  178. package/dist/components/icons/js.d.ts +3 -0
  179. package/dist/components/icons/js.js +4 -0
  180. package/dist/components/icons/music.d.ts +2 -0
  181. package/dist/components/icons/music.js +4 -0
  182. package/dist/components/icons/next.d.ts +4 -0
  183. package/dist/components/icons/next.js +4 -0
  184. package/dist/components/icons/overlay.d.ts +3 -0
  185. package/dist/components/icons/overlay.js +4 -0
  186. package/dist/components/icons/prompt-to-video.d.ts +2 -0
  187. package/dist/components/icons/prompt-to-video.js +4 -0
  188. package/dist/components/icons/recorder.d.ts +3 -0
  189. package/dist/components/icons/recorder.js +4 -0
  190. package/dist/components/icons/remix.d.ts +3 -0
  191. package/dist/components/icons/remix.js +4 -0
  192. package/dist/components/icons/render-server.d.ts +3 -0
  193. package/dist/components/icons/render-server.js +4 -0
  194. package/dist/components/icons/skia.d.ts +3 -0
  195. package/dist/components/icons/skia.js +4 -0
  196. package/dist/components/icons/stargazer.d.ts +3 -0
  197. package/dist/components/icons/stargazer.js +4 -0
  198. package/dist/components/icons/still.d.ts +3 -0
  199. package/dist/components/icons/still.js +4 -0
  200. package/dist/components/icons/tailwind.d.ts +3 -0
  201. package/dist/components/icons/tailwind.js +4 -0
  202. package/dist/components/icons/tiktok.d.ts +3 -0
  203. package/dist/components/icons/tiktok.js +4 -0
  204. package/dist/components/icons/timeline.d.ts +3 -0
  205. package/dist/components/icons/timeline.js +4 -0
  206. package/dist/components/icons/ts.d.ts +3 -0
  207. package/dist/components/icons/ts.js +4 -0
  208. package/dist/components/icons/undo.d.ts +3 -0
  209. package/dist/components/icons/undo.js +2 -0
  210. package/dist/components/icons/vercel.d.ts +4 -0
  211. package/dist/components/icons/vercel.js +4 -0
  212. package/dist/components/icons/waveform.d.ts +3 -0
  213. package/dist/components/icons/waveform.js +4 -0
  214. package/dist/components/prompts/CardLikeButton.d.ts +5 -0
  215. package/dist/components/prompts/CardLikeButton.js +49 -0
  216. package/dist/components/prompts/ClipboardIcon.d.ts +5 -0
  217. package/dist/components/prompts/ClipboardIcon.js +4 -0
  218. package/dist/components/prompts/CopyPromptButton.d.ts +4 -0
  219. package/dist/components/prompts/CopyPromptButton.js +13 -0
  220. package/dist/components/prompts/LikeButton.d.ts +5 -0
  221. package/dist/components/prompts/LikeButton.js +49 -0
  222. package/dist/components/prompts/MuxPlayer.d.ts +8 -0
  223. package/dist/components/prompts/MuxPlayer.js +21 -0
  224. package/dist/components/prompts/NewBackButton.d.ts +5 -0
  225. package/dist/components/prompts/NewBackButton.js +8 -0
  226. package/dist/components/prompts/Page.d.ts +8 -0
  227. package/dist/components/prompts/Page.js +7 -0
  228. package/dist/components/prompts/PromptsGallery.d.ts +7 -0
  229. package/dist/components/prompts/PromptsGallery.js +60 -0
  230. package/dist/components/prompts/PromptsShow.d.ts +5 -0
  231. package/dist/components/prompts/PromptsShow.js +17 -0
  232. package/dist/components/prompts/PromptsSubmit.d.ts +2 -0
  233. package/dist/components/prompts/PromptsSubmit.js +173 -0
  234. package/dist/components/prompts/config.d.ts +1 -0
  235. package/dist/components/prompts/config.js +1 -0
  236. package/dist/components/prompts/prompt-helpers.d.ts +8 -0
  237. package/dist/components/prompts/prompt-helpers.js +76 -0
  238. package/dist/components/prompts/prompt-types.d.ts +14 -0
  239. package/dist/components/prompts/prompt-types.js +0 -0
  240. package/dist/components/prompts/use-heart-animation.d.ts +5 -0
  241. package/dist/components/prompts/use-heart-animation.js +29 -0
  242. package/dist/components/team/TeamCards.d.ts +6 -0
  243. package/dist/components/team/TeamCards.js +19 -0
  244. package/dist/components/team/TitleTeamCards.d.ts +2 -0
  245. package/dist/components/team/TitleTeamCards.js +6 -0
  246. package/dist/components/team/TrustSection.d.ts +2 -0
  247. package/dist/components/team/TrustSection.js +59 -0
  248. package/dist/components/team.d.ts +3 -0
  249. package/dist/components/team.js +15 -0
  250. package/dist/components/template-modal-content.d.ts +5 -0
  251. package/dist/components/template-modal-content.js +73 -0
  252. package/dist/components/templates.d.ts +2 -0
  253. package/dist/components/templates.js +27 -0
  254. package/dist/design.js +527 -490
  255. package/dist/experts.js +527 -490
  256. package/dist/helpers/mobile-layout.d.ts +1 -0
  257. package/dist/helpers/mobile-layout.js +6 -0
  258. package/dist/helpers/use-el-size.d.ts +5 -0
  259. package/dist/helpers/use-el-size.js +40 -0
  260. package/dist/homepage/Pricing.js +527 -490
  261. package/dist/main.d.ts +1 -0
  262. package/dist/main.js +6 -0
  263. package/dist/prompts/PromptsGallery.js +527 -490
  264. package/dist/prompts/PromptsShow.js +527 -490
  265. package/dist/prompts/PromptsSubmit.js +527 -490
  266. package/dist/prompts-show.d.ts +1 -0
  267. package/dist/prompts-show.js +20 -0
  268. package/dist/prompts-submit.d.ts +1 -0
  269. package/dist/prompts-submit.js +6 -0
  270. package/dist/prompts.d.ts +1 -0
  271. package/dist/prompts.js +6 -0
  272. package/dist/team.d.ts +1 -0
  273. package/dist/team.js +527 -490
  274. package/dist/template-modal-content.js +527 -490
  275. package/dist/templates.js +527 -490
  276. package/package.json +13 -13
package/dist/Homepage.js CHANGED
@@ -2334,7 +2334,7 @@ var getComponentsToAddStacksTo = () => componentsToAddStacksTo;
2334
2334
  var addSequenceStackTraces = (component) => {
2335
2335
  componentsToAddStacksTo.push(component);
2336
2336
  };
2337
- var VERSION = "4.0.475";
2337
+ var VERSION = "4.0.476";
2338
2338
  var checkMultipleRemotionVersions = () => {
2339
2339
  if (typeof globalThis === "undefined") {
2340
2340
  return;
@@ -2768,6 +2768,18 @@ var hiddenField = {
2768
2768
  default: false,
2769
2769
  description: "Hidden"
2770
2770
  };
2771
+ var showInTimelineField = {
2772
+ type: "hidden"
2773
+ };
2774
+ var sequenceNameField = {
2775
+ type: "hidden"
2776
+ };
2777
+ var extendSchemaWithSequenceName = (schema) => {
2778
+ return {
2779
+ name: sequenceNameField,
2780
+ ...schema
2781
+ };
2782
+ };
2771
2783
  var durationInFramesField = {
2772
2784
  type: "number",
2773
2785
  default: undefined,
@@ -2781,8 +2793,9 @@ var fromField = {
2781
2793
  step: 1,
2782
2794
  hiddenFromList: true
2783
2795
  };
2784
- var sequenceSchema = {
2796
+ var sequenceSchema = extendSchemaWithSequenceName({
2785
2797
  hidden: hiddenField,
2798
+ showInTimeline: showInTimelineField,
2786
2799
  from: fromField,
2787
2800
  durationInFrames: durationInFramesField,
2788
2801
  layout: {
@@ -2794,12 +2807,13 @@ var sequenceSchema = {
2794
2807
  none: {}
2795
2808
  }
2796
2809
  }
2797
- };
2798
- var sequenceSchemaWithoutFrom = {
2810
+ });
2811
+ var sequenceSchemaWithoutFrom = extendSchemaWithSequenceName({
2799
2812
  hidden: hiddenField,
2813
+ showInTimeline: showInTimelineField,
2800
2814
  durationInFrames: durationInFramesField,
2801
2815
  layout: sequenceSchema.layout
2802
- };
2816
+ });
2803
2817
  var sequenceSchemaDefaultLayoutNone = {
2804
2818
  ...sequenceSchema,
2805
2819
  layout: {
@@ -3143,81 +3157,6 @@ function bezier(mX1, mY1, mX2, mY2) {
3143
3157
  return calcBezier(getTForX(clampedX), mY1, mY2);
3144
3158
  };
3145
3159
  }
3146
- var clampUnit = (t) => Math.min(1, Math.max(0, t));
3147
-
3148
- class Easing {
3149
- static step0(n) {
3150
- return n > 0 ? 1 : 0;
3151
- }
3152
- static step1(n) {
3153
- return n >= 1 ? 1 : 0;
3154
- }
3155
- static linear(t) {
3156
- return t;
3157
- }
3158
- static ease(t) {
3159
- return Easing.bezier(0.42, 0, 1, 1)(t);
3160
- }
3161
- static quad(t) {
3162
- return t * t;
3163
- }
3164
- static cubic(t) {
3165
- return t * t * t;
3166
- }
3167
- static poly(n) {
3168
- return (t) => t ** n;
3169
- }
3170
- static sin(t) {
3171
- return 1 - Math.cos(t * Math.PI / 2);
3172
- }
3173
- static circle(t) {
3174
- const u = clampUnit(t);
3175
- return 1 - Math.sqrt(1 - u * u);
3176
- }
3177
- static exp(t) {
3178
- return 2 ** (10 * (t - 1));
3179
- }
3180
- static elastic(bounciness = 1) {
3181
- const p = bounciness * Math.PI;
3182
- return (t) => 1 - Math.cos(t * Math.PI / 2) ** 3 * Math.cos(t * p);
3183
- }
3184
- static back(s = 1.70158) {
3185
- return (t) => t * t * ((s + 1) * t - s);
3186
- }
3187
- static bounce(t) {
3188
- const u = clampUnit(t);
3189
- if (u < 1 / 2.75) {
3190
- return 7.5625 * u * u;
3191
- }
3192
- if (u < 2 / 2.75) {
3193
- const t2_ = u - 1.5 / 2.75;
3194
- return 7.5625 * t2_ * t2_ + 0.75;
3195
- }
3196
- if (u < 2.5 / 2.75) {
3197
- const t2_ = u - 2.25 / 2.75;
3198
- return 7.5625 * t2_ * t2_ + 0.9375;
3199
- }
3200
- const t2 = u - 2.625 / 2.75;
3201
- return 7.5625 * t2 * t2 + 0.984375;
3202
- }
3203
- static bezier(x1, y1, x2, y2) {
3204
- return bezier(x1, y1, x2, y2);
3205
- }
3206
- static in(easing) {
3207
- return easing;
3208
- }
3209
- static out(easing) {
3210
- return (t) => 1 - easing(1 - t);
3211
- }
3212
- static inOut(easing) {
3213
- return (t) => {
3214
- if (t < 0.5) {
3215
- return easing(t * 2) / 2;
3216
- }
3217
- return 1 - easing((1 - t) * 2) / 2;
3218
- };
3219
- }
3220
- }
3221
3160
  var normalizeNumber = (value) => {
3222
3161
  return Math.round(value * 1e6) / 1e6;
3223
3162
  };
@@ -3720,6 +3659,356 @@ function interpolate(input, inputRange, outputRange, options) {
3720
3659
  checkInfiniteRange("outputRange", outputRange);
3721
3660
  return interpolateNumber({ input, inputRange, outputRange, options });
3722
3661
  }
3662
+ var validateFrame = ({
3663
+ allowFloats,
3664
+ durationInFrames,
3665
+ frame
3666
+ }) => {
3667
+ if (typeof frame === "undefined") {
3668
+ throw new TypeError(`Argument missing for parameter "frame"`);
3669
+ }
3670
+ if (typeof frame !== "number") {
3671
+ throw new TypeError(`Argument passed for "frame" is not a number: ${frame}`);
3672
+ }
3673
+ if (!Number.isFinite(frame)) {
3674
+ throw new RangeError(`Frame ${frame} is not finite`);
3675
+ }
3676
+ if (frame % 1 !== 0 && !allowFloats) {
3677
+ throw new RangeError(`Argument for frame must be an integer, but got ${frame}`);
3678
+ }
3679
+ if (frame < 0 && frame < -durationInFrames) {
3680
+ throw new RangeError(`Cannot use frame ${frame}: Duration of composition is ${durationInFrames}, therefore the lowest frame that can be rendered is ${-durationInFrames}`);
3681
+ }
3682
+ if (frame > durationInFrames - 1) {
3683
+ throw new RangeError(`Cannot use frame ${frame}: Duration of composition is ${durationInFrames}, therefore the highest frame that can be rendered is ${durationInFrames - 1}`);
3684
+ }
3685
+ };
3686
+ var validateSpringDuration = (dur) => {
3687
+ if (typeof dur === "undefined") {
3688
+ return;
3689
+ }
3690
+ if (typeof dur !== "number") {
3691
+ throw new TypeError(`A "duration" of a spring must be a "number" but is "${typeof dur}"`);
3692
+ }
3693
+ if (Number.isNaN(dur)) {
3694
+ throw new TypeError('A "duration" of a spring is NaN, which it must not be');
3695
+ }
3696
+ if (!Number.isFinite(dur)) {
3697
+ throw new TypeError('A "duration" of a spring must be finite, but is ' + dur);
3698
+ }
3699
+ if (dur <= 0) {
3700
+ throw new TypeError('A "duration" of a spring must be positive, but is ' + dur);
3701
+ }
3702
+ };
3703
+ var defaultSpringConfig = {
3704
+ damping: 10,
3705
+ mass: 1,
3706
+ stiffness: 100,
3707
+ overshootClamping: false
3708
+ };
3709
+ var advanceCache = {};
3710
+ function advance({
3711
+ animation,
3712
+ now,
3713
+ config
3714
+ }) {
3715
+ const { toValue, lastTimestamp, current, velocity } = animation;
3716
+ const deltaTime = Math.min(now - lastTimestamp, 64);
3717
+ if (config.damping <= 0) {
3718
+ throw new Error("Spring damping must be greater than 0, otherwise the spring() animation will never end, causing an infinite loop.");
3719
+ }
3720
+ const c2 = config.damping;
3721
+ const m = config.mass;
3722
+ const k = config.stiffness;
3723
+ const cacheKey = [
3724
+ toValue,
3725
+ lastTimestamp,
3726
+ current,
3727
+ velocity,
3728
+ c2,
3729
+ m,
3730
+ k,
3731
+ now
3732
+ ].join("-");
3733
+ if (advanceCache[cacheKey]) {
3734
+ return advanceCache[cacheKey];
3735
+ }
3736
+ const v0 = -velocity;
3737
+ const x0 = toValue - current;
3738
+ const zeta = c2 / (2 * Math.sqrt(k * m));
3739
+ const omega0 = Math.sqrt(k / m);
3740
+ const omega1 = omega0 * Math.sqrt(1 - zeta ** 2);
3741
+ const t = deltaTime / 1000;
3742
+ const sin1 = Math.sin(omega1 * t);
3743
+ const cos1 = Math.cos(omega1 * t);
3744
+ const underDampedEnvelope = Math.exp(-zeta * omega0 * t);
3745
+ const underDampedFrag1 = underDampedEnvelope * (sin1 * ((v0 + zeta * omega0 * x0) / omega1) + x0 * cos1);
3746
+ const underDampedPosition = toValue - underDampedFrag1;
3747
+ const underDampedVelocity = zeta * omega0 * underDampedFrag1 - underDampedEnvelope * (cos1 * (v0 + zeta * omega0 * x0) - omega1 * x0 * sin1);
3748
+ const criticallyDampedEnvelope = Math.exp(-omega0 * t);
3749
+ const criticallyDampedPosition = toValue - criticallyDampedEnvelope * (x0 + (v0 + omega0 * x0) * t);
3750
+ const criticallyDampedVelocity = criticallyDampedEnvelope * (v0 * (t * omega0 - 1) + t * x0 * omega0 * omega0);
3751
+ const animationNode = {
3752
+ toValue,
3753
+ prevPosition: current,
3754
+ lastTimestamp: now,
3755
+ current: zeta < 1 ? underDampedPosition : criticallyDampedPosition,
3756
+ velocity: zeta < 1 ? underDampedVelocity : criticallyDampedVelocity
3757
+ };
3758
+ advanceCache[cacheKey] = animationNode;
3759
+ return animationNode;
3760
+ }
3761
+ var calculationCache = {};
3762
+ function springCalculation({
3763
+ frame,
3764
+ fps,
3765
+ config = {}
3766
+ }) {
3767
+ const from = 0;
3768
+ const to = 1;
3769
+ const cacheKey = [
3770
+ frame,
3771
+ fps,
3772
+ config.damping,
3773
+ config.mass,
3774
+ config.overshootClamping,
3775
+ config.stiffness
3776
+ ].join("-");
3777
+ if (calculationCache[cacheKey]) {
3778
+ return calculationCache[cacheKey];
3779
+ }
3780
+ let animation = {
3781
+ lastTimestamp: 0,
3782
+ current: from,
3783
+ toValue: to,
3784
+ velocity: 0,
3785
+ prevPosition: 0
3786
+ };
3787
+ const frameClamped = Math.max(0, frame);
3788
+ const unevenRest = frameClamped % 1;
3789
+ for (let f = 0;f <= Math.floor(frameClamped); f++) {
3790
+ if (f === Math.floor(frameClamped)) {
3791
+ f += unevenRest;
3792
+ }
3793
+ const time = f / fps * 1000;
3794
+ animation = advance({
3795
+ animation,
3796
+ now: time,
3797
+ config: {
3798
+ ...defaultSpringConfig,
3799
+ ...config
3800
+ }
3801
+ });
3802
+ }
3803
+ calculationCache[cacheKey] = animation;
3804
+ return animation;
3805
+ }
3806
+ var cache = new Map;
3807
+ function measureSpring({
3808
+ fps,
3809
+ config = {},
3810
+ threshold = 0.005
3811
+ }) {
3812
+ if (typeof threshold !== "number") {
3813
+ throw new TypeError(`threshold must be a number, got ${threshold} of type ${typeof threshold}`);
3814
+ }
3815
+ if (threshold === 0) {
3816
+ return Infinity;
3817
+ }
3818
+ if (threshold === 1) {
3819
+ return 0;
3820
+ }
3821
+ if (isNaN(threshold)) {
3822
+ throw new TypeError("Threshold is NaN");
3823
+ }
3824
+ if (!Number.isFinite(threshold)) {
3825
+ throw new TypeError("Threshold is not finite");
3826
+ }
3827
+ if (threshold < 0) {
3828
+ throw new TypeError("Threshold is below 0");
3829
+ }
3830
+ const cacheKey = [
3831
+ fps,
3832
+ config.damping,
3833
+ config.mass,
3834
+ config.overshootClamping,
3835
+ config.stiffness,
3836
+ threshold
3837
+ ].join("-");
3838
+ if (cache.has(cacheKey)) {
3839
+ return cache.get(cacheKey);
3840
+ }
3841
+ validateFps(fps, "to the measureSpring() function", false);
3842
+ let frame = 0;
3843
+ let finishedFrame = 0;
3844
+ const calc = () => {
3845
+ return springCalculation({
3846
+ fps,
3847
+ frame,
3848
+ config
3849
+ });
3850
+ };
3851
+ let animation = calc();
3852
+ const calcDifference = () => {
3853
+ return Math.abs(animation.current - animation.toValue);
3854
+ };
3855
+ let difference = calcDifference();
3856
+ while (difference >= threshold) {
3857
+ frame++;
3858
+ animation = calc();
3859
+ difference = calcDifference();
3860
+ }
3861
+ finishedFrame = frame;
3862
+ for (let i = 0;i < 20; i++) {
3863
+ frame++;
3864
+ animation = calc();
3865
+ difference = calcDifference();
3866
+ if (difference >= threshold) {
3867
+ i = 0;
3868
+ finishedFrame = frame + 1;
3869
+ }
3870
+ }
3871
+ cache.set(cacheKey, finishedFrame);
3872
+ return finishedFrame;
3873
+ }
3874
+ function spring({
3875
+ frame: passedFrame,
3876
+ fps,
3877
+ config = {},
3878
+ from = 0,
3879
+ to = 1,
3880
+ durationInFrames: passedDurationInFrames,
3881
+ durationRestThreshold,
3882
+ delay = 0,
3883
+ reverse = false
3884
+ }) {
3885
+ validateSpringDuration(passedDurationInFrames);
3886
+ validateFrame({
3887
+ frame: passedFrame,
3888
+ durationInFrames: Infinity,
3889
+ allowFloats: true
3890
+ });
3891
+ validateFps(fps, "to spring()", false);
3892
+ const needsToCalculateNaturalDuration = reverse || typeof passedDurationInFrames !== "undefined";
3893
+ const naturalDuration = needsToCalculateNaturalDuration ? measureSpring({
3894
+ fps,
3895
+ config,
3896
+ threshold: durationRestThreshold
3897
+ }) : undefined;
3898
+ const naturalDurationGetter = needsToCalculateNaturalDuration ? {
3899
+ get: () => naturalDuration
3900
+ } : {
3901
+ get: () => {
3902
+ throw new Error("did not calculate natural duration, this is an error with Remotion. Please report");
3903
+ }
3904
+ };
3905
+ const reverseProcessed = reverse ? (passedDurationInFrames ?? naturalDurationGetter.get()) - passedFrame : passedFrame;
3906
+ const delayProcessed = reverseProcessed + (reverse ? delay : -delay);
3907
+ const durationProcessed = passedDurationInFrames === undefined ? delayProcessed : delayProcessed / (passedDurationInFrames / naturalDurationGetter.get());
3908
+ if (passedDurationInFrames && delayProcessed > passedDurationInFrames) {
3909
+ return to;
3910
+ }
3911
+ const spr = springCalculation({
3912
+ fps,
3913
+ frame: durationProcessed,
3914
+ config
3915
+ });
3916
+ const inner = config.overshootClamping ? to >= from ? Math.min(spr.current, to) : Math.max(spr.current, to) : spr.current;
3917
+ const interpolated = from === 0 && to === 1 ? inner : interpolate(inner, [0, 1], [from, to]);
3918
+ return interpolated;
3919
+ }
3920
+ var clampUnit = (t) => Math.min(1, Math.max(0, t));
3921
+ var springEasingDurationInFrames = 30;
3922
+
3923
+ class Easing {
3924
+ static step0(n) {
3925
+ return n > 0 ? 1 : 0;
3926
+ }
3927
+ static step1(n) {
3928
+ return n >= 1 ? 1 : 0;
3929
+ }
3930
+ static linear(t) {
3931
+ return t;
3932
+ }
3933
+ static ease(t) {
3934
+ return Easing.bezier(0.42, 0, 1, 1)(t);
3935
+ }
3936
+ static quad(t) {
3937
+ return t * t;
3938
+ }
3939
+ static cubic(t) {
3940
+ return t * t * t;
3941
+ }
3942
+ static poly(n) {
3943
+ return (t) => t ** n;
3944
+ }
3945
+ static sin(t) {
3946
+ return 1 - Math.cos(t * Math.PI / 2);
3947
+ }
3948
+ static circle(t) {
3949
+ const u = clampUnit(t);
3950
+ return 1 - Math.sqrt(1 - u * u);
3951
+ }
3952
+ static exp(t) {
3953
+ return 2 ** (10 * (t - 1));
3954
+ }
3955
+ static elastic(bounciness = 1) {
3956
+ const p = bounciness * Math.PI;
3957
+ return (t) => 1 - Math.cos(t * Math.PI / 2) ** 3 * Math.cos(t * p);
3958
+ }
3959
+ static back(s = 1.70158) {
3960
+ return (t) => t * t * ((s + 1) * t - s);
3961
+ }
3962
+ static spring(config = {}) {
3963
+ return (t) => {
3964
+ if (t <= 0) {
3965
+ return 0;
3966
+ }
3967
+ if (t >= 1) {
3968
+ return 1;
3969
+ }
3970
+ return spring({
3971
+ fps: springEasingDurationInFrames,
3972
+ frame: t * springEasingDurationInFrames,
3973
+ config,
3974
+ durationInFrames: springEasingDurationInFrames
3975
+ });
3976
+ };
3977
+ }
3978
+ static bounce(t) {
3979
+ const u = clampUnit(t);
3980
+ if (u < 1 / 2.75) {
3981
+ return 7.5625 * u * u;
3982
+ }
3983
+ if (u < 2 / 2.75) {
3984
+ const t2_ = u - 1.5 / 2.75;
3985
+ return 7.5625 * t2_ * t2_ + 0.75;
3986
+ }
3987
+ if (u < 2.5 / 2.75) {
3988
+ const t2_ = u - 2.25 / 2.75;
3989
+ return 7.5625 * t2_ * t2_ + 0.9375;
3990
+ }
3991
+ const t2 = u - 2.625 / 2.75;
3992
+ return 7.5625 * t2 * t2 + 0.984375;
3993
+ }
3994
+ static bezier(x1, y1, x2, y2) {
3995
+ return bezier(x1, y1, x2, y2);
3996
+ }
3997
+ static in(easing) {
3998
+ return easing;
3999
+ }
4000
+ static out(easing) {
4001
+ return (t) => 1 - easing(1 - t);
4002
+ }
4003
+ static inOut(easing) {
4004
+ return (t) => {
4005
+ if (t < 0.5) {
4006
+ return easing(t * 2) / 2;
4007
+ }
4008
+ return 1 - easing((1 - t) * 2) / 2;
4009
+ };
4010
+ }
4011
+ }
3723
4012
  var NUMBER = "[-+]?\\d*\\.?\\d+";
3724
4013
  var PERCENTAGE = NUMBER + "%";
3725
4014
  function call(...args) {
@@ -4716,7 +5005,8 @@ var wrapInSchema = ({
4716
5005
  schema,
4717
5006
  supportsEffects
4718
5007
  }) => {
4719
- const flatSchema = getFlatSchemaWithAllKeys(schema);
5008
+ const schemaWithSequenceName = extendSchemaWithSequenceName(schema);
5009
+ const flatSchema = getFlatSchemaWithAllKeys(schemaWithSequenceName);
4720
5010
  const flatKeys = Object.keys(flatSchema);
4721
5011
  const Wrapped = forwardRef2((props, ref) => {
4722
5012
  const env = useRemotionEnvironment();
@@ -4755,7 +5045,7 @@ var wrapInSchema = ({
4755
5045
  const currentRuntimeValueDotNotation = useMemo13(() => readValuesFromProps(props, flatKeys), runtimeValues);
4756
5046
  const controls = useMemo13(() => {
4757
5047
  return {
4758
- schema,
5048
+ schema: schemaWithSequenceName,
4759
5049
  currentRuntimeValueDotNotation,
4760
5050
  overrideId,
4761
5051
  supportsEffects
@@ -4763,7 +5053,7 @@ var wrapInSchema = ({
4763
5053
  }, [currentRuntimeValueDotNotation, overrideId]);
4764
5054
  const { merged: valuesDotNotation, propsToDelete } = useMemo13(() => {
4765
5055
  return computeEffectiveSchemaValuesDotNotation({
4766
- schema,
5056
+ schema: schemaWithSequenceName,
4767
5057
  currentValue: currentRuntimeValueDotNotation,
4768
5058
  overrideValues: nodePath === null ? {} : getDragOverrides(nodePath),
4769
5059
  propStatus: nodePath === null ? undefined : getPropStatusesCtx(propStatuses, nodePath),
@@ -4776,7 +5066,7 @@ var wrapInSchema = ({
4776
5066
  propStatuses,
4777
5067
  frame
4778
5068
  ]);
4779
- const activeKeys = selectActiveKeys(schema, valuesDotNotation);
5069
+ const activeKeys = selectActiveKeys(schemaWithSequenceName, valuesDotNotation);
4780
5070
  const mergedProps = mergeValues({
4781
5071
  props,
4782
5072
  valuesDotNotation,
@@ -4818,6 +5108,7 @@ var RegularSequenceRefForwardingFunction = ({
4818
5108
  const parentSequence = useContext17(SequenceContext);
4819
5109
  const { rootId } = useTimelineContext();
4820
5110
  const cumulatedFrom = parentSequence ? parentSequence.cumulatedFrom + parentSequence.relativeFrom : 0;
5111
+ const absoluteFrom = (parentSequence?.absoluteFrom ?? 0) + from;
4821
5112
  const nonce = useNonce();
4822
5113
  if (layout !== "absolute-fill" && layout !== "none") {
4823
5114
  throw new TypeError(`The layout prop of <Sequence /> expects either "absolute-fill" or "none", but you passed: ${layout}`);
@@ -4855,6 +5146,7 @@ var RegularSequenceRefForwardingFunction = ({
4855
5146
  const cumulatedNegativeFrom = currentSequenceStart - firstFrame;
4856
5147
  const contextValue = useMemo14(() => {
4857
5148
  return {
5149
+ absoluteFrom,
4858
5150
  cumulatedFrom,
4859
5151
  relativeFrom: from,
4860
5152
  cumulatedNegativeFrom,
@@ -4870,6 +5162,7 @@ var RegularSequenceRefForwardingFunction = ({
4870
5162
  };
4871
5163
  }, [
4872
5164
  cumulatedFrom,
5165
+ absoluteFrom,
4873
5166
  from,
4874
5167
  actualDurationInFrames,
4875
5168
  parentSequence,
@@ -4885,7 +5178,7 @@ var RegularSequenceRefForwardingFunction = ({
4885
5178
  const timelineClipName = useMemo14(() => {
4886
5179
  return name ?? "";
4887
5180
  }, [name]);
4888
- const resolvedDocumentationLink = documentationLink ?? (name === undefined ? "https://www.remotion.dev/docs/sequence" : null);
5181
+ const resolvedDocumentationLink = documentationLink ?? "https://www.remotion.dev/docs/sequence";
4889
5182
  const env = useRemotionEnvironment();
4890
5183
  const isInsideSeries = useContext17(IsInsideSeriesContext);
4891
5184
  const inheritedStack = other?.stack ?? null;
@@ -5512,10 +5805,10 @@ var decodeImage = async ({
5512
5805
  if (!selectedTrack) {
5513
5806
  throw new Error("No selected track");
5514
5807
  }
5515
- const cache = [];
5808
+ const cache2 = [];
5516
5809
  let durationFound = null;
5517
5810
  const getFrameByIndex = async (frameIndex) => {
5518
- const foundInCache = cache.find((c2) => c2.frameIndex === frameIndex);
5811
+ const foundInCache = cache2.find((c2) => c2.frameIndex === frameIndex);
5519
5812
  if (foundInCache && foundInCache.frame) {
5520
5813
  return foundInCache;
5521
5814
  }
@@ -5526,7 +5819,7 @@ var decodeImage = async ({
5526
5819
  if (foundInCache) {
5527
5820
  foundInCache.frame = frame.image;
5528
5821
  } else {
5529
- cache.push({
5822
+ cache2.push({
5530
5823
  frame: frame.image,
5531
5824
  frameIndex,
5532
5825
  timeInSeconds: frame.image.timestamp / 1e6
@@ -5539,7 +5832,7 @@ var decodeImage = async ({
5539
5832
  };
5540
5833
  };
5541
5834
  const clearCache = (closeToTimeInSec) => {
5542
- const itemsInCache = cache.filter((c2) => c2.frame);
5835
+ const itemsInCache = cache2.filter((c2) => c2.frame);
5543
5836
  const sortByClosestToCurrentTime = itemsInCache.sort((a2, b2) => {
5544
5837
  const aDiff = Math.abs(a2.timeInSeconds - closeToTimeInSec);
5545
5838
  const bDiff = Math.abs(b2.timeInSeconds - closeToTimeInSec);
@@ -5562,7 +5855,7 @@ var decodeImage = async ({
5562
5855
  loopBehavior,
5563
5856
  timeInSec
5564
5857
  });
5565
- const framesBefore = cache.filter((c2) => c2.timeInSeconds <= actualTimeInSec);
5858
+ const framesBefore = cache2.filter((c2) => c2.timeInSeconds <= actualTimeInSec);
5566
5859
  const biggestIndex = framesBefore.map((c2) => c2.frameIndex).reduce((a2, b2) => Math.max(a2, b2), 0);
5567
5860
  let i = biggestIndex;
5568
5861
  while (true) {
@@ -5605,7 +5898,7 @@ var decodeImage = async ({
5605
5898
  timeInSec
5606
5899
  });
5607
5900
  await ensureFrameBeforeAndAfter({ timeInSec: actualTimeInSec, loopBehavior });
5608
- const itemsInCache = cache.filter((c2) => c2.frame);
5901
+ const itemsInCache = cache2.filter((c2) => c2.frame);
5609
5902
  const closest = itemsInCache.reduce((a2, b2) => {
5610
5903
  const aDiff = Math.abs(a2.timeInSeconds - actualTimeInSec);
5611
5904
  const bDiff = Math.abs(b2.timeInSeconds - actualTimeInSec);
@@ -6066,7 +6359,7 @@ var Loop = ({
6066
6359
  durationInFrames,
6067
6360
  from,
6068
6361
  name: name ?? "<Loop>",
6069
- _remotionInternalDocumentationLink: name === undefined ? "https://www.remotion.dev/docs/loop" : undefined,
6362
+ _remotionInternalDocumentationLink: "https://www.remotion.dev/docs/loop",
6070
6363
  _remotionInternalLoopDisplay: loopDisplay,
6071
6364
  layout: props.layout,
6072
6365
  style,
@@ -8455,7 +8748,7 @@ var AudioForDevelopmentForwardRefFunction = (props, ref) => {
8455
8748
  premountDisplay: sequenceContext?.premountDisplay ?? null,
8456
8749
  postmountDisplay: sequenceContext?.postmountDisplay ?? null,
8457
8750
  loopDisplay: undefined,
8458
- documentationLink: name === undefined ? "https://www.remotion.dev/docs/html5-audio" : null,
8751
+ documentationLink: "https://www.remotion.dev/docs/html5-audio",
8459
8752
  refForOutline: null
8460
8753
  });
8461
8754
  useMediaPlayback({
@@ -8949,7 +9242,7 @@ var SolidOuter = forwardRef8(({
8949
9242
  durationInFrames,
8950
9243
  name: name ?? "<Solid>",
8951
9244
  _remotionInternalRefForOutline: actualRef,
8952
- _remotionInternalDocumentationLink: name === undefined ? "https://www.remotion.dev/docs/solid" : undefined,
9245
+ _remotionInternalDocumentationLink: "https://www.remotion.dev/docs/solid",
8953
9246
  ...props2,
8954
9247
  children: /* @__PURE__ */ jsx24(SolidInner, {
8955
9248
  reference: actualRef,
@@ -9261,7 +9554,7 @@ var HtmlInCanvasInner = forwardRef9(({
9261
9554
  return /* @__PURE__ */ jsx25(Sequence, {
9262
9555
  durationInFrames: resolvedDuration,
9263
9556
  name: name ?? "<HtmlInCanvas>",
9264
- _remotionInternalDocumentationLink: name === undefined ? "https://www.remotion.dev/docs/remotion/html-in-canvas" : undefined,
9557
+ _remotionInternalDocumentationLink: "https://www.remotion.dev/docs/remotion/html-in-canvas",
9265
9558
  _experimentalControls: controls,
9266
9559
  _remotionInternalEffects: memoizedEffectDefinitions,
9267
9560
  _remotionInternalRefForOutline: actualRef,
@@ -9825,7 +10118,7 @@ var NativeImgInner = ({
9825
10118
  from: from ?? 0,
9826
10119
  durationInFrames: durationInFrames ?? Infinity,
9827
10120
  _remotionInternalStack: stack,
9828
- _remotionInternalDocumentationLink: name === undefined ? "https://www.remotion.dev/docs/img" : undefined,
10121
+ _remotionInternalDocumentationLink: "https://www.remotion.dev/docs/img",
9829
10122
  _remotionInternalIsMedia: { type: "image", src },
9830
10123
  name: name ?? "<Img>",
9831
10124
  _experimentalControls: controls,
@@ -9967,7 +10260,7 @@ var ImgInner = ({
9967
10260
  name: name ?? "<Img>",
9968
10261
  showInTimeline,
9969
10262
  stack,
9970
- _remotionInternalDocumentationLink: name === undefined ? "https://www.remotion.dev/docs/img" : undefined,
10263
+ _remotionInternalDocumentationLink: "https://www.remotion.dev/docs/img",
9971
10264
  _experimentalControls: controls,
9972
10265
  _remotionInternalRefForOutline: refForOutline,
9973
10266
  ...canvasProps
@@ -10018,6 +10311,7 @@ var makeInteractiveElement = (tag, displayName) => {
10018
10311
  showInTimeline: showInTimeline ?? true,
10019
10312
  _experimentalControls,
10020
10313
  _remotionInternalStack: stack,
10314
+ _remotionInternalDocumentationLink: "https://www.remotion.dev/docs/interactive",
10021
10315
  _remotionInternalRefForOutline: refForOutline,
10022
10316
  children: React29.createElement(tag, {
10023
10317
  ...props2,
@@ -10915,7 +11209,7 @@ var VideoForDevelopmentRefForwardingFunction = (props2, ref) => {
10915
11209
  premountDisplay: parentSequence?.premountDisplay ?? null,
10916
11210
  postmountDisplay: parentSequence?.postmountDisplay ?? null,
10917
11211
  loopDisplay: undefined,
10918
- documentationLink: name === undefined ? onlyWarnForMediaSeekingError ? "https://www.remotion.dev/docs/offthreadvideo" : "https://www.remotion.dev/docs/html5-video" : null,
11212
+ documentationLink: onlyWarnForMediaSeekingError ? "https://www.remotion.dev/docs/offthreadvideo" : "https://www.remotion.dev/docs/html5-video",
10919
11213
  refForOutline: videoRef
10920
11214
  });
10921
11215
  useMediaPlayback({
@@ -11046,6 +11340,7 @@ var VideoForDevelopmentRefForwardingFunction = (props2, ref) => {
11046
11340
  isClientSideRendering: false
11047
11341
  });
11048
11342
  return /* @__PURE__ */ jsx34("video", {
11343
+ ...nativeProps,
11049
11344
  ref: videoRef,
11050
11345
  muted: muted || mediaMuted || userPreferredVolume <= 0,
11051
11346
  playsInline: true,
@@ -11054,7 +11349,7 @@ var VideoForDevelopmentRefForwardingFunction = (props2, ref) => {
11054
11349
  style: actualStyle,
11055
11350
  disableRemotePlayback: true,
11056
11351
  crossOrigin: crossOriginValue,
11057
- ...nativeProps
11352
+ controls: false
11058
11353
  });
11059
11354
  };
11060
11355
  var VideoForPreview = forwardRef13(VideoForDevelopmentRefForwardingFunction);
@@ -11455,30 +11750,6 @@ var Internals = {
11455
11750
  durationInFramesField,
11456
11751
  fromField
11457
11752
  };
11458
- var validateFrame = ({
11459
- allowFloats,
11460
- durationInFrames,
11461
- frame
11462
- }) => {
11463
- if (typeof frame === "undefined") {
11464
- throw new TypeError(`Argument missing for parameter "frame"`);
11465
- }
11466
- if (typeof frame !== "number") {
11467
- throw new TypeError(`Argument passed for "frame" is not a number: ${frame}`);
11468
- }
11469
- if (!Number.isFinite(frame)) {
11470
- throw new RangeError(`Frame ${frame} is not finite`);
11471
- }
11472
- if (frame % 1 !== 0 && !allowFloats) {
11473
- throw new RangeError(`Argument for frame must be an integer, but got ${frame}`);
11474
- }
11475
- if (frame < 0 && frame < -durationInFrames) {
11476
- throw new RangeError(`Cannot use frame ${frame}: Duration of composition is ${durationInFrames}, therefore the lowest frame that can be rendered is ${-durationInFrames}`);
11477
- }
11478
- if (frame > durationInFrames - 1) {
11479
- throw new RangeError(`Cannot use frame ${frame}: Duration of composition is ${durationInFrames}, therefore the highest frame that can be rendered is ${durationInFrames - 1}`);
11480
- }
11481
- };
11482
11753
  var flattenChildren = (children) => {
11483
11754
  const childrenArray = React40.Children.toArray(children);
11484
11755
  return childrenArray.reduce((flatChildren, child) => {
@@ -11568,240 +11839,6 @@ var Series = Object.assign(wrapInSchema({
11568
11839
  Sequence: SeriesSequence
11569
11840
  });
11570
11841
  addSequenceStackTraces(Series);
11571
- var validateSpringDuration = (dur) => {
11572
- if (typeof dur === "undefined") {
11573
- return;
11574
- }
11575
- if (typeof dur !== "number") {
11576
- throw new TypeError(`A "duration" of a spring must be a "number" but is "${typeof dur}"`);
11577
- }
11578
- if (Number.isNaN(dur)) {
11579
- throw new TypeError('A "duration" of a spring is NaN, which it must not be');
11580
- }
11581
- if (!Number.isFinite(dur)) {
11582
- throw new TypeError('A "duration" of a spring must be finite, but is ' + dur);
11583
- }
11584
- if (dur <= 0) {
11585
- throw new TypeError('A "duration" of a spring must be positive, but is ' + dur);
11586
- }
11587
- };
11588
- var defaultSpringConfig = {
11589
- damping: 10,
11590
- mass: 1,
11591
- stiffness: 100,
11592
- overshootClamping: false
11593
- };
11594
- var advanceCache = {};
11595
- function advance({
11596
- animation,
11597
- now,
11598
- config
11599
- }) {
11600
- const { toValue, lastTimestamp, current, velocity } = animation;
11601
- const deltaTime = Math.min(now - lastTimestamp, 64);
11602
- if (config.damping <= 0) {
11603
- throw new Error("Spring damping must be greater than 0, otherwise the spring() animation will never end, causing an infinite loop.");
11604
- }
11605
- const c2 = config.damping;
11606
- const m = config.mass;
11607
- const k = config.stiffness;
11608
- const cacheKey = [
11609
- toValue,
11610
- lastTimestamp,
11611
- current,
11612
- velocity,
11613
- c2,
11614
- m,
11615
- k,
11616
- now
11617
- ].join("-");
11618
- if (advanceCache[cacheKey]) {
11619
- return advanceCache[cacheKey];
11620
- }
11621
- const v0 = -velocity;
11622
- const x0 = toValue - current;
11623
- const zeta = c2 / (2 * Math.sqrt(k * m));
11624
- const omega0 = Math.sqrt(k / m);
11625
- const omega1 = omega0 * Math.sqrt(1 - zeta ** 2);
11626
- const t = deltaTime / 1000;
11627
- const sin1 = Math.sin(omega1 * t);
11628
- const cos1 = Math.cos(omega1 * t);
11629
- const underDampedEnvelope = Math.exp(-zeta * omega0 * t);
11630
- const underDampedFrag1 = underDampedEnvelope * (sin1 * ((v0 + zeta * omega0 * x0) / omega1) + x0 * cos1);
11631
- const underDampedPosition = toValue - underDampedFrag1;
11632
- const underDampedVelocity = zeta * omega0 * underDampedFrag1 - underDampedEnvelope * (cos1 * (v0 + zeta * omega0 * x0) - omega1 * x0 * sin1);
11633
- const criticallyDampedEnvelope = Math.exp(-omega0 * t);
11634
- const criticallyDampedPosition = toValue - criticallyDampedEnvelope * (x0 + (v0 + omega0 * x0) * t);
11635
- const criticallyDampedVelocity = criticallyDampedEnvelope * (v0 * (t * omega0 - 1) + t * x0 * omega0 * omega0);
11636
- const animationNode = {
11637
- toValue,
11638
- prevPosition: current,
11639
- lastTimestamp: now,
11640
- current: zeta < 1 ? underDampedPosition : criticallyDampedPosition,
11641
- velocity: zeta < 1 ? underDampedVelocity : criticallyDampedVelocity
11642
- };
11643
- advanceCache[cacheKey] = animationNode;
11644
- return animationNode;
11645
- }
11646
- var calculationCache = {};
11647
- function springCalculation({
11648
- frame,
11649
- fps,
11650
- config = {}
11651
- }) {
11652
- const from = 0;
11653
- const to = 1;
11654
- const cacheKey = [
11655
- frame,
11656
- fps,
11657
- config.damping,
11658
- config.mass,
11659
- config.overshootClamping,
11660
- config.stiffness
11661
- ].join("-");
11662
- if (calculationCache[cacheKey]) {
11663
- return calculationCache[cacheKey];
11664
- }
11665
- let animation = {
11666
- lastTimestamp: 0,
11667
- current: from,
11668
- toValue: to,
11669
- velocity: 0,
11670
- prevPosition: 0
11671
- };
11672
- const frameClamped = Math.max(0, frame);
11673
- const unevenRest = frameClamped % 1;
11674
- for (let f = 0;f <= Math.floor(frameClamped); f++) {
11675
- if (f === Math.floor(frameClamped)) {
11676
- f += unevenRest;
11677
- }
11678
- const time = f / fps * 1000;
11679
- animation = advance({
11680
- animation,
11681
- now: time,
11682
- config: {
11683
- ...defaultSpringConfig,
11684
- ...config
11685
- }
11686
- });
11687
- }
11688
- calculationCache[cacheKey] = animation;
11689
- return animation;
11690
- }
11691
- var cache = new Map;
11692
- function measureSpring({
11693
- fps,
11694
- config = {},
11695
- threshold = 0.005
11696
- }) {
11697
- if (typeof threshold !== "number") {
11698
- throw new TypeError(`threshold must be a number, got ${threshold} of type ${typeof threshold}`);
11699
- }
11700
- if (threshold === 0) {
11701
- return Infinity;
11702
- }
11703
- if (threshold === 1) {
11704
- return 0;
11705
- }
11706
- if (isNaN(threshold)) {
11707
- throw new TypeError("Threshold is NaN");
11708
- }
11709
- if (!Number.isFinite(threshold)) {
11710
- throw new TypeError("Threshold is not finite");
11711
- }
11712
- if (threshold < 0) {
11713
- throw new TypeError("Threshold is below 0");
11714
- }
11715
- const cacheKey = [
11716
- fps,
11717
- config.damping,
11718
- config.mass,
11719
- config.overshootClamping,
11720
- config.stiffness,
11721
- threshold
11722
- ].join("-");
11723
- if (cache.has(cacheKey)) {
11724
- return cache.get(cacheKey);
11725
- }
11726
- validateFps(fps, "to the measureSpring() function", false);
11727
- let frame = 0;
11728
- let finishedFrame = 0;
11729
- const calc = () => {
11730
- return springCalculation({
11731
- fps,
11732
- frame,
11733
- config
11734
- });
11735
- };
11736
- let animation = calc();
11737
- const calcDifference = () => {
11738
- return Math.abs(animation.current - animation.toValue);
11739
- };
11740
- let difference = calcDifference();
11741
- while (difference >= threshold) {
11742
- frame++;
11743
- animation = calc();
11744
- difference = calcDifference();
11745
- }
11746
- finishedFrame = frame;
11747
- for (let i = 0;i < 20; i++) {
11748
- frame++;
11749
- animation = calc();
11750
- difference = calcDifference();
11751
- if (difference >= threshold) {
11752
- i = 0;
11753
- finishedFrame = frame + 1;
11754
- }
11755
- }
11756
- cache.set(cacheKey, finishedFrame);
11757
- return finishedFrame;
11758
- }
11759
- function spring({
11760
- frame: passedFrame,
11761
- fps,
11762
- config = {},
11763
- from = 0,
11764
- to = 1,
11765
- durationInFrames: passedDurationInFrames,
11766
- durationRestThreshold,
11767
- delay = 0,
11768
- reverse = false
11769
- }) {
11770
- validateSpringDuration(passedDurationInFrames);
11771
- validateFrame({
11772
- frame: passedFrame,
11773
- durationInFrames: Infinity,
11774
- allowFloats: true
11775
- });
11776
- validateFps(fps, "to spring()", false);
11777
- const needsToCalculateNaturalDuration = reverse || typeof passedDurationInFrames !== "undefined";
11778
- const naturalDuration = needsToCalculateNaturalDuration ? measureSpring({
11779
- fps,
11780
- config,
11781
- threshold: durationRestThreshold
11782
- }) : undefined;
11783
- const naturalDurationGetter = needsToCalculateNaturalDuration ? {
11784
- get: () => naturalDuration
11785
- } : {
11786
- get: () => {
11787
- throw new Error("did not calculate natural duration, this is an error with Remotion. Please report");
11788
- }
11789
- };
11790
- const reverseProcessed = reverse ? (passedDurationInFrames ?? naturalDurationGetter.get()) - passedFrame : passedFrame;
11791
- const delayProcessed = reverseProcessed + (reverse ? delay : -delay);
11792
- const durationProcessed = passedDurationInFrames === undefined ? delayProcessed : delayProcessed / (passedDurationInFrames / naturalDurationGetter.get());
11793
- if (passedDurationInFrames && delayProcessed > passedDurationInFrames) {
11794
- return to;
11795
- }
11796
- const spr = springCalculation({
11797
- fps,
11798
- frame: durationProcessed,
11799
- config
11800
- });
11801
- const inner = config.overshootClamping ? to >= from ? Math.min(spr.current, to) : Math.max(spr.current, to) : spr.current;
11802
- const interpolated = from === 0 && to === 1 ? inner : interpolate(inner, [0, 1], [from, to]);
11803
- return interpolated;
11804
- }
11805
11842
  var problematicCharacters = {
11806
11843
  "%3A": ":",
11807
11844
  "%2F": "/",
@@ -29924,6 +29961,18 @@ var hiddenField2 = {
29924
29961
  default: false,
29925
29962
  description: "Hidden"
29926
29963
  };
29964
+ var showInTimelineField2 = {
29965
+ type: "hidden"
29966
+ };
29967
+ var sequenceNameField2 = {
29968
+ type: "hidden"
29969
+ };
29970
+ var extendSchemaWithSequenceName2 = (schema) => {
29971
+ return {
29972
+ name: sequenceNameField2,
29973
+ ...schema
29974
+ };
29975
+ };
29927
29976
  var durationInFramesField2 = {
29928
29977
  type: "number",
29929
29978
  default: undefined,
@@ -29937,8 +29986,9 @@ var fromField2 = {
29937
29986
  step: 1,
29938
29987
  hiddenFromList: true
29939
29988
  };
29940
- var sequenceSchema2 = {
29989
+ var sequenceSchema2 = extendSchemaWithSequenceName2({
29941
29990
  hidden: hiddenField2,
29991
+ showInTimeline: showInTimelineField2,
29942
29992
  from: fromField2,
29943
29993
  durationInFrames: durationInFramesField2,
29944
29994
  layout: {
@@ -29950,12 +30000,13 @@ var sequenceSchema2 = {
29950
30000
  none: {}
29951
30001
  }
29952
30002
  }
29953
- };
29954
- var sequenceSchemaWithoutFrom2 = {
30003
+ });
30004
+ var sequenceSchemaWithoutFrom2 = extendSchemaWithSequenceName2({
29955
30005
  hidden: hiddenField2,
30006
+ showInTimeline: showInTimelineField2,
29956
30007
  durationInFrames: durationInFramesField2,
29957
30008
  layout: sequenceSchema2.layout
29958
- };
30009
+ });
29959
30010
  var sequenceSchemaDefaultLayoutNone2 = {
29960
30011
  ...sequenceSchema2,
29961
30012
  layout: {
@@ -36693,7 +36744,7 @@ var AudioForPreviewAssertedShowing = ({
36693
36744
  const parentSequence = useContext212(SequenceContext2);
36694
36745
  const isPremounting = Boolean(parentSequence?.premounting);
36695
36746
  const isPostmounting = Boolean(parentSequence?.postmounting);
36696
- const sequenceOffset = ((parentSequence?.cumulatedFrom ?? 0) + (parentSequence?.relativeFrom ?? 0)) / videoConfig.fps;
36747
+ const sequenceOffset = (parentSequence?.absoluteFrom ?? 0) / videoConfig.fps;
36697
36748
  const bufferingContext = useContext212(Internals.BufferingContextReact);
36698
36749
  if (!bufferingContext) {
36699
36750
  throw new Error("useMediaPlayback must be used inside a <BufferingContext>");
@@ -39228,7 +39279,7 @@ var VideoForPreviewAssertedShowing = ({
39228
39279
  const parentSequence = useContext49(SequenceContext22);
39229
39280
  const isPremounting = Boolean(parentSequence?.premounting);
39230
39281
  const isPostmounting = Boolean(parentSequence?.postmounting);
39231
- const sequenceOffset = ((parentSequence?.cumulatedFrom ?? 0) + (parentSequence?.relativeFrom ?? 0)) / videoConfig.fps;
39282
+ const sequenceOffset = (parentSequence?.absoluteFrom ?? 0) / videoConfig.fps;
39232
39283
  const currentTime = frame / videoConfig.fps;
39233
39284
  const currentTimeRef = useRef213(currentTime);
39234
39285
  currentTimeRef.current = currentTime;
@@ -41449,7 +41500,7 @@ import {
41449
41500
  import { BufferTarget, StreamTarget } from "mediabunny";
41450
41501
 
41451
41502
  // ../core/dist/esm/version.mjs
41452
- var VERSION2 = "4.0.475";
41503
+ var VERSION2 = "4.0.476";
41453
41504
 
41454
41505
  // ../web-renderer/dist/esm/index.mjs
41455
41506
  import { AudioSample, VideoSample } from "mediabunny";