remotion 3.3.45 → 3.3.52

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 (553) hide show
  1. package/dist/Sequence.js +1 -1
  2. package/dist/Still.d.ts +0 -1
  3. package/dist/audio/Audio.d.ts +2 -2
  4. package/dist/audio/AudioForDevelopment.d.ts +1 -1
  5. package/dist/audio/AudioForRendering.d.ts +1 -1
  6. package/dist/cjs/AbsoluteFill.d.ts +6 -0
  7. package/dist/cjs/AbsoluteFill.js +28 -0
  8. package/dist/cjs/CanUseRemotionHooks.d.ts +5 -0
  9. package/dist/cjs/CanUseRemotionHooks.js +10 -0
  10. package/dist/cjs/Clipper.d.ts +7 -0
  11. package/dist/cjs/Clipper.js +24 -0
  12. package/dist/cjs/Composition.d.ts +23 -0
  13. package/dist/cjs/Composition.js +113 -0
  14. package/dist/cjs/CompositionManager.d.ts +82 -0
  15. package/dist/cjs/CompositionManager.js +164 -0
  16. package/dist/cjs/Folder.d.ts +15 -0
  17. package/dist/cjs/Folder.js +33 -0
  18. package/dist/cjs/IFrame.d.ts +2 -0
  19. package/dist/cjs/IFrame.js +24 -0
  20. package/dist/cjs/Img.d.ts +2 -0
  21. package/dist/cjs/Img.js +52 -0
  22. package/dist/cjs/NativeLayers.d.ts +13 -0
  23. package/dist/cjs/NativeLayers.js +29 -0
  24. package/dist/cjs/Null.d.ts +2 -0
  25. package/dist/cjs/Null.js +25 -0
  26. package/dist/cjs/RemotionRoot.d.ts +5 -0
  27. package/dist/cjs/RemotionRoot.js +73 -0
  28. package/dist/cjs/Sequence.d.ts +29 -0
  29. package/dist/cjs/Sequence.js +131 -0
  30. package/dist/cjs/Still.d.ts +3 -0
  31. package/dist/cjs/Still.js +9 -0
  32. package/dist/cjs/absolute-src.d.ts +1 -0
  33. package/dist/cjs/absolute-src.js +7 -0
  34. package/dist/cjs/asset-types.d.ts +50 -0
  35. package/dist/cjs/asset-types.js +1 -0
  36. package/dist/cjs/audio/Audio.d.ts +8 -0
  37. package/dist/cjs/audio/Audio.js +52 -0
  38. package/dist/cjs/audio/AudioForDevelopment.d.ts +11 -0
  39. package/dist/cjs/audio/AudioForDevelopment.js +94 -0
  40. package/dist/cjs/audio/AudioForRendering.d.ts +10 -0
  41. package/dist/cjs/audio/AudioForRendering.js +111 -0
  42. package/dist/cjs/audio/index.d.ts +2 -0
  43. package/dist/cjs/audio/index.js +18 -0
  44. package/dist/cjs/audio/props.d.ts +12 -0
  45. package/dist/cjs/audio/props.js +2 -0
  46. package/dist/cjs/audio/shared-audio-tags.d.ts +37 -0
  47. package/dist/cjs/audio/shared-audio-tags.js +222 -0
  48. package/dist/cjs/audio/use-audio-frame.d.ts +6 -0
  49. package/dist/cjs/audio/use-audio-frame.js +23 -0
  50. package/dist/cjs/bezier.d.ts +1 -0
  51. package/dist/cjs/bezier.js +114 -0
  52. package/dist/cjs/cancel-render.d.ts +1 -0
  53. package/dist/cjs/cancel-render.js +43 -0
  54. package/dist/cjs/config/input-props.d.ts +1 -0
  55. package/dist/cjs/config/input-props.js +31 -0
  56. package/dist/cjs/config.d.ts +285 -0
  57. package/dist/cjs/config.js +21 -0
  58. package/dist/cjs/default-css.d.ts +3 -0
  59. package/dist/cjs/default-css.js +49 -0
  60. package/dist/cjs/delay-render.d.ts +14 -0
  61. package/dist/cjs/delay-render.js +77 -0
  62. package/dist/cjs/easing.d.ts +19 -0
  63. package/dist/cjs/easing.js +77 -0
  64. package/dist/cjs/freeze.d.ts +7 -0
  65. package/dist/cjs/freeze.js +34 -0
  66. package/dist/cjs/get-asset-file-name.d.ts +1 -0
  67. package/dist/cjs/get-asset-file-name.js +14 -0
  68. package/dist/cjs/get-environment.d.ts +3 -0
  69. package/dist/cjs/get-environment.js +34 -0
  70. package/dist/cjs/get-preview-dom-element.d.ts +1 -0
  71. package/dist/cjs/get-preview-dom-element.js +7 -0
  72. package/dist/cjs/get-static-files.d.ts +17 -0
  73. package/dist/cjs/get-static-files.js +31 -0
  74. package/dist/cjs/get-timeline-clip-name.d.ts +1 -0
  75. package/dist/cjs/get-timeline-clip-name.js +25 -0
  76. package/dist/cjs/index.d.ts +92 -0
  77. package/dist/cjs/index.js +73 -0
  78. package/dist/cjs/internals.d.ts +99 -0
  79. package/dist/cjs/internals.js +101 -0
  80. package/dist/cjs/interpolate-colors.d.ts +5 -0
  81. package/dist/cjs/interpolate-colors.js +401 -0
  82. package/dist/cjs/interpolate.d.ts +18 -0
  83. package/dist/cjs/interpolate.js +123 -0
  84. package/dist/cjs/is-approximately-the-same.d.ts +1 -0
  85. package/dist/cjs/is-approximately-the-same.js +8 -0
  86. package/dist/cjs/is-player.d.ts +3 -0
  87. package/dist/cjs/is-player.js +14 -0
  88. package/dist/cjs/loading-indicator.d.ts +2 -0
  89. package/dist/cjs/loading-indicator.js +35 -0
  90. package/dist/cjs/loop/index.d.ts +9 -0
  91. package/dist/cjs/loop/index.js +29 -0
  92. package/dist/cjs/multiple-versions-warning.d.ts +1 -0
  93. package/dist/cjs/multiple-versions-warning.js +32 -0
  94. package/dist/cjs/nonce.d.ts +7 -0
  95. package/dist/cjs/nonce.js +17 -0
  96. package/dist/cjs/play-and-handle-not-allowed-error.d.ts +2 -0
  97. package/dist/cjs/play-and-handle-not-allowed-error.js +44 -0
  98. package/dist/cjs/portal-node.d.ts +1 -0
  99. package/dist/cjs/portal-node.js +23 -0
  100. package/dist/cjs/prefetch-state.d.ts +8 -0
  101. package/dist/cjs/prefetch-state.js +27 -0
  102. package/dist/cjs/prefetch.d.ts +9 -0
  103. package/dist/cjs/prefetch.js +108 -0
  104. package/dist/cjs/random.d.ts +7 -0
  105. package/dist/cjs/random.js +42 -0
  106. package/dist/cjs/register-root.d.ts +4 -0
  107. package/dist/cjs/register-root.js +33 -0
  108. package/dist/cjs/series/flatten-children.d.ts +2 -0
  109. package/dist/cjs/series/flatten-children.js +19 -0
  110. package/dist/cjs/series/index.d.ts +13 -0
  111. package/dist/cjs/series/index.js +60 -0
  112. package/dist/cjs/setup-env-variables.d.ts +2 -0
  113. package/dist/cjs/setup-env-variables.js +36 -0
  114. package/dist/cjs/spring/index.d.ts +27 -0
  115. package/dist/cjs/spring/index.js +55 -0
  116. package/dist/cjs/spring/measure-spring.d.ts +8 -0
  117. package/dist/cjs/spring/measure-spring.js +64 -0
  118. package/dist/cjs/spring/spring-utils.d.ts +21 -0
  119. package/dist/cjs/spring/spring-utils.js +103 -0
  120. package/dist/cjs/static-file.d.ts +5 -0
  121. package/dist/cjs/static-file.js +33 -0
  122. package/dist/cjs/test/Img.test.d.ts +1 -0
  123. package/dist/cjs/test/Img.test.js +25 -0
  124. package/dist/cjs/test/absolute-src.test.d.ts +1 -0
  125. package/dist/cjs/test/absolute-src.test.js +18 -0
  126. package/dist/cjs/test/audio-for-rendering.test.d.ts +1 -0
  127. package/dist/cjs/test/audio-for-rendering.test.js +88 -0
  128. package/dist/cjs/test/audio.test.d.ts +1 -0
  129. package/dist/cjs/test/audio.test.js +76 -0
  130. package/dist/cjs/test/bezier.test.d.ts +1 -0
  131. package/dist/cjs/test/bezier.test.js +52 -0
  132. package/dist/cjs/test/composition-rules.test.d.ts +1 -0
  133. package/dist/cjs/test/composition-rules.test.js +30 -0
  134. package/dist/cjs/test/composition-validation.test.d.ts +1 -0
  135. package/dist/cjs/test/composition-validation.test.js +99 -0
  136. package/dist/cjs/test/easing.test.d.ts +1 -0
  137. package/dist/cjs/test/easing.test.js +191 -0
  138. package/dist/cjs/test/expect-to-throw.d.ts +1 -0
  139. package/dist/cjs/test/expect-to-throw.js +15 -0
  140. package/dist/cjs/test/freeze.test.d.ts +1 -0
  141. package/dist/cjs/test/freeze.test.js +65 -0
  142. package/dist/cjs/test/get-asset-file-name.test.d.ts +1 -0
  143. package/dist/cjs/test/get-asset-file-name.test.js +14 -0
  144. package/dist/cjs/test/get-current-time.test.d.ts +1 -0
  145. package/dist/cjs/test/get-current-time.test.js +74 -0
  146. package/dist/cjs/test/input-props.test.d.ts +1 -0
  147. package/dist/cjs/test/input-props.test.js +31 -0
  148. package/dist/cjs/test/interpolate.test.d.ts +1 -0
  149. package/dist/cjs/test/interpolate.test.js +138 -0
  150. package/dist/cjs/test/interpolateColors.test.d.ts +1 -0
  151. package/dist/cjs/test/interpolateColors.test.js +63 -0
  152. package/dist/cjs/test/loop-validation.test.d.ts +1 -0
  153. package/dist/cjs/test/loop-validation.test.js +93 -0
  154. package/dist/cjs/test/measure-spring.test.d.ts +1 -0
  155. package/dist/cjs/test/measure-spring.test.js +45 -0
  156. package/dist/cjs/test/media-validation.test.d.ts +1 -0
  157. package/dist/cjs/test/media-validation.test.js +47 -0
  158. package/dist/cjs/test/nested-sequences.test.d.ts +1 -0
  159. package/dist/cjs/test/nested-sequences.test.js +132 -0
  160. package/dist/cjs/test/not-all-props-in-media-tags.test.d.ts +1 -0
  161. package/dist/cjs/test/not-all-props-in-media-tags.test.js +33 -0
  162. package/dist/cjs/test/random.test.d.ts +1 -0
  163. package/dist/cjs/test/random.test.js +60 -0
  164. package/dist/cjs/test/ready-manager.test.d.ts +1 -0
  165. package/dist/cjs/test/ready-manager.test.js +29 -0
  166. package/dist/cjs/test/render-hook.d.ts +23 -0
  167. package/dist/cjs/test/render-hook.js +27 -0
  168. package/dist/cjs/test/sequence-from-initial-offset.test.d.ts +4 -0
  169. package/dist/cjs/test/sequence-from-initial-offset.test.js +35 -0
  170. package/dist/cjs/test/sequence-validation.test.d.ts +1 -0
  171. package/dist/cjs/test/sequence-validation.test.js +47 -0
  172. package/dist/cjs/test/series.test.d.ts +1 -0
  173. package/dist/cjs/test/series.test.js +115 -0
  174. package/dist/cjs/test/spring.test.d.ts +1 -0
  175. package/dist/cjs/test/spring.test.js +38 -0
  176. package/dist/cjs/test/truthy.test.d.ts +1 -0
  177. package/dist/cjs/test/truthy.test.js +24 -0
  178. package/dist/cjs/test/use-audio-frame.test.d.ts +1 -0
  179. package/dist/cjs/test/use-audio-frame.test.js +78 -0
  180. package/dist/cjs/test/use-media-in-timeline.test.d.ts +1 -0
  181. package/dist/cjs/test/use-media-in-timeline.test.js +74 -0
  182. package/dist/cjs/test/use-media-tag-volume.test.d.ts +1 -0
  183. package/dist/cjs/test/use-media-tag-volume.test.js +49 -0
  184. package/dist/cjs/test/use-sync-volume-with-media-tag.test.d.ts +1 -0
  185. package/dist/cjs/test/use-sync-volume-with-media-tag.test.js +55 -0
  186. package/dist/cjs/test/validate-start-from-props.test.d.ts +1 -0
  187. package/dist/cjs/test/validate-start-from-props.test.js +39 -0
  188. package/dist/cjs/test/video.test.d.ts +1 -0
  189. package/dist/cjs/test/video.test.js +80 -0
  190. package/dist/cjs/test/volume-prop.test.d.ts +1 -0
  191. package/dist/cjs/test/volume-prop.test.js +95 -0
  192. package/dist/cjs/test/wrap-sequence-context.d.ts +6 -0
  193. package/dist/cjs/test/wrap-sequence-context.js +41 -0
  194. package/dist/cjs/timeline-position-state.d.ts +29 -0
  195. package/dist/cjs/timeline-position-state.js +41 -0
  196. package/dist/cjs/truthy.d.ts +3 -0
  197. package/dist/cjs/truthy.js +7 -0
  198. package/dist/cjs/use-current-frame.d.ts +6 -0
  199. package/dist/cjs/use-current-frame.js +28 -0
  200. package/dist/cjs/use-lazy-component.d.ts +7 -0
  201. package/dist/cjs/use-lazy-component.js +49 -0
  202. package/dist/cjs/use-media-in-timeline.d.ts +10 -0
  203. package/dist/cjs/use-media-in-timeline.js +129 -0
  204. package/dist/cjs/use-media-playback.d.ts +10 -0
  205. package/dist/cjs/use-media-playback.js +77 -0
  206. package/dist/cjs/use-media-tag-volume.d.ts +2 -0
  207. package/dist/cjs/use-media-tag-volume.js +31 -0
  208. package/dist/cjs/use-sync-volume-with-media-tag.d.ts +10 -0
  209. package/dist/cjs/use-sync-volume-with-media-tag.js +21 -0
  210. package/dist/cjs/use-unsafe-video-config.d.ts +2 -0
  211. package/dist/cjs/use-unsafe-video-config.js +27 -0
  212. package/dist/cjs/use-video-config.d.ts +7 -0
  213. package/dist/cjs/use-video-config.js +29 -0
  214. package/dist/cjs/use-video.d.ts +13 -0
  215. package/dist/cjs/use-video.js +28 -0
  216. package/dist/cjs/validate-frame.d.ts +1 -0
  217. package/dist/cjs/validate-frame.js +24 -0
  218. package/dist/cjs/validate-media-props.d.ts +4 -0
  219. package/dist/cjs/validate-media-props.js +24 -0
  220. package/dist/cjs/validate-start-from-props.d.ts +1 -0
  221. package/dist/cjs/validate-start-from-props.js +31 -0
  222. package/dist/cjs/validation/validate-composition-id.d.ts +3 -0
  223. package/dist/cjs/validation/validate-composition-id.js +13 -0
  224. package/dist/cjs/validation/validate-dimensions.d.ts +1 -0
  225. package/dist/cjs/validation/validate-dimensions.js +21 -0
  226. package/dist/cjs/validation/validate-duration-in-frames.d.ts +1 -0
  227. package/dist/cjs/validation/validate-duration-in-frames.js +15 -0
  228. package/dist/cjs/validation/validate-folder-name.d.ts +3 -0
  229. package/dist/cjs/validation/validate-folder-name.js +19 -0
  230. package/dist/cjs/validation/validate-fps.d.ts +1 -0
  231. package/dist/cjs/validation/validate-fps.js +21 -0
  232. package/dist/cjs/validation/validate-offthreadvideo-image-format.d.ts +1 -0
  233. package/dist/cjs/validation/validate-offthreadvideo-image-format.js +15 -0
  234. package/dist/cjs/validation/validation-spring-duration.d.ts +1 -0
  235. package/dist/cjs/validation/validation-spring-duration.js +21 -0
  236. package/dist/cjs/version.d.ts +1 -0
  237. package/dist/cjs/version.js +5 -0
  238. package/dist/cjs/video/OffthreadVideo.d.ts +3 -0
  239. package/dist/cjs/video/OffthreadVideo.js +33 -0
  240. package/dist/cjs/video/OffthreadVideoForRendering.d.ts +3 -0
  241. package/dist/cjs/video/OffthreadVideoForRendering.js +104 -0
  242. package/dist/cjs/video/Video.d.ts +8 -0
  243. package/dist/cjs/video/Video.js +50 -0
  244. package/dist/cjs/video/VideoForDevelopment.d.ts +11 -0
  245. package/dist/cjs/video/VideoForDevelopment.js +113 -0
  246. package/dist/cjs/video/VideoForRendering.d.ts +10 -0
  247. package/dist/cjs/video/VideoForRendering.js +203 -0
  248. package/dist/cjs/video/duration-state.d.ts +17 -0
  249. package/dist/cjs/video/duration-state.js +34 -0
  250. package/dist/cjs/video/get-current-time.d.ts +13 -0
  251. package/dist/cjs/video/get-current-time.js +31 -0
  252. package/dist/cjs/video/index.d.ts +3 -0
  253. package/dist/cjs/video/index.js +7 -0
  254. package/dist/cjs/video/props.d.ts +25 -0
  255. package/dist/cjs/video/props.js +2 -0
  256. package/dist/cjs/video/video-fragment.d.ts +12 -0
  257. package/dist/cjs/video/video-fragment.js +60 -0
  258. package/dist/cjs/video-config.d.ts +8 -0
  259. package/dist/cjs/video-config.js +2 -0
  260. package/dist/cjs/volume-position-state.d.ts +19 -0
  261. package/dist/cjs/volume-position-state.js +32 -0
  262. package/dist/cjs/volume-prop.d.ts +7 -0
  263. package/dist/cjs/volume-prop.js +24 -0
  264. package/dist/cjs/warn-about-non-seekable-media.d.ts +1 -0
  265. package/dist/cjs/warn-about-non-seekable-media.js +34 -0
  266. package/dist/cjs/wrap-remotion-context.d.ts +18 -0
  267. package/dist/cjs/wrap-remotion-context.js +73 -0
  268. package/dist/esm/AbsoluteFill.d.ts +6 -0
  269. package/dist/esm/AbsoluteFill.js +25 -0
  270. package/dist/esm/CanUseRemotionHooks.d.ts +5 -0
  271. package/dist/esm/CanUseRemotionHooks.js +6 -0
  272. package/dist/esm/Clipper.d.ts +7 -0
  273. package/dist/esm/Clipper.js +20 -0
  274. package/dist/esm/Composition.d.ts +23 -0
  275. package/dist/esm/Composition.js +108 -0
  276. package/dist/esm/CompositionManager.d.ts +82 -0
  277. package/dist/esm/CompositionManager.js +137 -0
  278. package/dist/esm/Folder.d.ts +15 -0
  279. package/dist/esm/Folder.js +29 -0
  280. package/dist/esm/IFrame.d.ts +2 -0
  281. package/dist/esm/IFrame.js +21 -0
  282. package/dist/esm/Img.d.ts +2 -0
  283. package/dist/esm/Img.js +49 -0
  284. package/dist/esm/NativeLayers.d.ts +13 -0
  285. package/dist/esm/NativeLayers.js +25 -0
  286. package/dist/esm/Null.d.ts +2 -0
  287. package/dist/esm/Null.js +21 -0
  288. package/dist/esm/RemotionRoot.d.ts +5 -0
  289. package/dist/esm/RemotionRoot.js +69 -0
  290. package/dist/esm/Sequence.d.ts +29 -0
  291. package/dist/esm/Sequence.js +128 -0
  292. package/dist/esm/Still.d.ts +3 -0
  293. package/dist/esm/Still.js +5 -0
  294. package/dist/esm/absolute-src.d.ts +1 -0
  295. package/dist/esm/absolute-src.js +3 -0
  296. package/dist/esm/asset-types.d.ts +50 -0
  297. package/dist/esm/asset-types.js +1 -0
  298. package/dist/esm/audio/Audio.d.ts +8 -0
  299. package/dist/esm/audio/Audio.js +49 -0
  300. package/dist/esm/audio/AudioForDevelopment.d.ts +11 -0
  301. package/dist/esm/audio/AudioForDevelopment.js +91 -0
  302. package/dist/esm/audio/AudioForRendering.d.ts +10 -0
  303. package/dist/esm/audio/AudioForRendering.js +108 -0
  304. package/dist/esm/audio/index.d.ts +2 -0
  305. package/dist/esm/audio/index.js +2 -0
  306. package/dist/esm/audio/props.d.ts +12 -0
  307. package/dist/esm/audio/props.js +1 -0
  308. package/dist/esm/audio/shared-audio-tags.d.ts +37 -0
  309. package/dist/esm/audio/shared-audio-tags.js +194 -0
  310. package/dist/esm/audio/use-audio-frame.d.ts +6 -0
  311. package/dist/esm/audio/use-audio-frame.js +18 -0
  312. package/dist/esm/bezier.d.ts +1 -0
  313. package/dist/esm/bezier.js +110 -0
  314. package/dist/esm/cancel-render.d.ts +1 -0
  315. package/dist/esm/cancel-render.js +39 -0
  316. package/dist/esm/config/input-props.d.ts +1 -0
  317. package/dist/esm/config/input-props.js +27 -0
  318. package/dist/esm/config.d.ts +285 -0
  319. package/dist/esm/config.js +17 -0
  320. package/dist/esm/default-css.d.ts +3 -0
  321. package/dist/esm/default-css.js +44 -0
  322. package/dist/esm/delay-render.d.ts +14 -0
  323. package/dist/esm/delay-render.js +72 -0
  324. package/dist/esm/easing.d.ts +19 -0
  325. package/dist/esm/easing.js +73 -0
  326. package/dist/esm/freeze.d.ts +7 -0
  327. package/dist/esm/freeze.js +30 -0
  328. package/dist/esm/get-asset-file-name.d.ts +1 -0
  329. package/dist/esm/get-asset-file-name.js +10 -0
  330. package/dist/esm/get-environment.d.ts +3 -0
  331. package/dist/esm/get-environment.js +29 -0
  332. package/dist/esm/get-preview-dom-element.d.ts +1 -0
  333. package/dist/esm/get-preview-dom-element.js +3 -0
  334. package/dist/esm/get-static-files.d.ts +17 -0
  335. package/dist/esm/get-static-files.js +27 -0
  336. package/dist/esm/get-timeline-clip-name.d.ts +1 -0
  337. package/dist/esm/get-timeline-clip-name.js +21 -0
  338. package/dist/esm/index.d.ts +92 -0
  339. package/dist/esm/index.js +41 -0
  340. package/dist/esm/internals.d.ts +99 -0
  341. package/dist/esm/internals.js +75 -0
  342. package/dist/esm/interpolate-colors.d.ts +5 -0
  343. package/dist/esm/interpolate-colors.js +397 -0
  344. package/dist/esm/interpolate.d.ts +18 -0
  345. package/dist/esm/interpolate.js +119 -0
  346. package/dist/esm/is-approximately-the-same.d.ts +1 -0
  347. package/dist/esm/is-approximately-the-same.js +4 -0
  348. package/dist/esm/is-player.d.ts +3 -0
  349. package/dist/esm/is-player.js +9 -0
  350. package/dist/esm/loading-indicator.d.ts +2 -0
  351. package/dist/esm/loading-indicator.js +31 -0
  352. package/dist/esm/loop/index.d.ts +9 -0
  353. package/dist/esm/loop/index.js +25 -0
  354. package/dist/esm/multiple-versions-warning.d.ts +1 -0
  355. package/dist/esm/multiple-versions-warning.js +28 -0
  356. package/dist/esm/nonce.d.ts +7 -0
  357. package/dist/esm/nonce.js +13 -0
  358. package/dist/esm/play-and-handle-not-allowed-error.d.ts +2 -0
  359. package/dist/esm/play-and-handle-not-allowed-error.js +40 -0
  360. package/dist/esm/portal-node.d.ts +1 -0
  361. package/dist/esm/portal-node.js +19 -0
  362. package/dist/esm/prefetch-state.d.ts +8 -0
  363. package/dist/esm/prefetch-state.js +22 -0
  364. package/dist/esm/prefetch.d.ts +9 -0
  365. package/dist/esm/prefetch.js +103 -0
  366. package/dist/esm/random.d.ts +7 -0
  367. package/dist/esm/random.js +38 -0
  368. package/dist/esm/register-root.d.ts +4 -0
  369. package/dist/esm/register-root.js +27 -0
  370. package/dist/esm/series/flatten-children.d.ts +2 -0
  371. package/dist/esm/series/flatten-children.js +12 -0
  372. package/dist/esm/series/index.d.ts +13 -0
  373. package/dist/esm/series/index.js +57 -0
  374. package/dist/esm/setup-env-variables.d.ts +2 -0
  375. package/dist/esm/setup-env-variables.js +32 -0
  376. package/dist/esm/spring/index.d.ts +27 -0
  377. package/dist/esm/spring/index.js +50 -0
  378. package/dist/esm/spring/measure-spring.d.ts +8 -0
  379. package/dist/esm/spring/measure-spring.js +60 -0
  380. package/dist/esm/spring/spring-utils.d.ts +21 -0
  381. package/dist/esm/spring/spring-utils.js +99 -0
  382. package/dist/esm/static-file.d.ts +5 -0
  383. package/dist/esm/static-file.js +29 -0
  384. package/dist/esm/test/Img.test.d.ts +1 -0
  385. package/dist/esm/test/Img.test.js +20 -0
  386. package/dist/esm/test/absolute-src.test.d.ts +1 -0
  387. package/dist/esm/test/absolute-src.test.js +16 -0
  388. package/dist/esm/test/audio-for-rendering.test.d.ts +1 -0
  389. package/dist/esm/test/audio-for-rendering.test.js +83 -0
  390. package/dist/esm/test/audio.test.d.ts +1 -0
  391. package/dist/esm/test/audio.test.js +51 -0
  392. package/dist/esm/test/bezier.test.d.ts +1 -0
  393. package/dist/esm/test/bezier.test.js +50 -0
  394. package/dist/esm/test/composition-rules.test.d.ts +1 -0
  395. package/dist/esm/test/composition-rules.test.js +28 -0
  396. package/dist/esm/test/composition-validation.test.d.ts +1 -0
  397. package/dist/esm/test/composition-validation.test.js +97 -0
  398. package/dist/esm/test/easing.test.d.ts +1 -0
  399. package/dist/esm/test/easing.test.js +189 -0
  400. package/dist/esm/test/expect-to-throw.d.ts +1 -0
  401. package/dist/esm/test/expect-to-throw.js +11 -0
  402. package/dist/esm/test/freeze.test.d.ts +1 -0
  403. package/dist/esm/test/freeze.test.js +63 -0
  404. package/dist/esm/test/get-asset-file-name.test.d.ts +1 -0
  405. package/dist/esm/test/get-asset-file-name.test.js +12 -0
  406. package/dist/esm/test/get-current-time.test.d.ts +1 -0
  407. package/dist/esm/test/get-current-time.test.js +72 -0
  408. package/dist/esm/test/input-props.test.d.ts +1 -0
  409. package/dist/esm/test/input-props.test.js +29 -0
  410. package/dist/esm/test/interpolate.test.d.ts +1 -0
  411. package/dist/esm/test/interpolate.test.js +136 -0
  412. package/dist/esm/test/interpolateColors.test.d.ts +1 -0
  413. package/dist/esm/test/interpolateColors.test.js +61 -0
  414. package/dist/esm/test/loop-validation.test.d.ts +1 -0
  415. package/dist/esm/test/loop-validation.test.js +68 -0
  416. package/dist/esm/test/measure-spring.test.d.ts +1 -0
  417. package/dist/esm/test/measure-spring.test.js +43 -0
  418. package/dist/esm/test/media-validation.test.d.ts +1 -0
  419. package/dist/esm/test/media-validation.test.js +45 -0
  420. package/dist/esm/test/nested-sequences.test.d.ts +1 -0
  421. package/dist/esm/test/nested-sequences.test.js +130 -0
  422. package/dist/esm/test/not-all-props-in-media-tags.test.d.ts +1 -0
  423. package/dist/esm/test/not-all-props-in-media-tags.test.js +28 -0
  424. package/dist/esm/test/random.test.d.ts +1 -0
  425. package/dist/esm/test/random.test.js +58 -0
  426. package/dist/esm/test/ready-manager.test.d.ts +1 -0
  427. package/dist/esm/test/ready-manager.test.js +27 -0
  428. package/dist/esm/test/render-hook.d.ts +23 -0
  429. package/dist/esm/test/render-hook.js +20 -0
  430. package/dist/esm/test/sequence-from-initial-offset.test.d.ts +4 -0
  431. package/dist/esm/test/sequence-from-initial-offset.test.js +33 -0
  432. package/dist/esm/test/sequence-validation.test.d.ts +1 -0
  433. package/dist/esm/test/sequence-validation.test.js +45 -0
  434. package/dist/esm/test/series.test.d.ts +1 -0
  435. package/dist/esm/test/series.test.js +113 -0
  436. package/dist/esm/test/spring.test.d.ts +1 -0
  437. package/dist/esm/test/spring.test.js +36 -0
  438. package/dist/esm/test/truthy.test.d.ts +1 -0
  439. package/dist/esm/test/truthy.test.js +22 -0
  440. package/dist/esm/test/use-audio-frame.test.d.ts +1 -0
  441. package/dist/esm/test/use-audio-frame.test.js +53 -0
  442. package/dist/esm/test/use-media-in-timeline.test.d.ts +1 -0
  443. package/dist/esm/test/use-media-in-timeline.test.js +49 -0
  444. package/dist/esm/test/use-media-tag-volume.test.d.ts +1 -0
  445. package/dist/esm/test/use-media-tag-volume.test.js +44 -0
  446. package/dist/esm/test/use-sync-volume-with-media-tag.test.d.ts +1 -0
  447. package/dist/esm/test/use-sync-volume-with-media-tag.test.js +53 -0
  448. package/dist/esm/test/validate-start-from-props.test.d.ts +1 -0
  449. package/dist/esm/test/validate-start-from-props.test.js +37 -0
  450. package/dist/esm/test/video.test.d.ts +1 -0
  451. package/dist/esm/test/video.test.js +55 -0
  452. package/dist/esm/test/volume-prop.test.d.ts +1 -0
  453. package/dist/esm/test/volume-prop.test.js +93 -0
  454. package/dist/esm/test/wrap-sequence-context.d.ts +6 -0
  455. package/dist/esm/test/wrap-sequence-context.js +37 -0
  456. package/dist/esm/timeline-position-state.d.ts +29 -0
  457. package/dist/esm/timeline-position-state.js +35 -0
  458. package/dist/esm/truthy.d.ts +3 -0
  459. package/dist/esm/truthy.js +3 -0
  460. package/dist/esm/use-current-frame.d.ts +6 -0
  461. package/dist/esm/use-current-frame.js +24 -0
  462. package/dist/esm/use-lazy-component.d.ts +7 -0
  463. package/dist/esm/use-lazy-component.js +22 -0
  464. package/dist/esm/use-media-in-timeline.d.ts +10 -0
  465. package/dist/esm/use-media-in-timeline.js +125 -0
  466. package/dist/esm/use-media-playback.d.ts +10 -0
  467. package/dist/esm/use-media-playback.js +73 -0
  468. package/dist/esm/use-media-tag-volume.d.ts +2 -0
  469. package/dist/esm/use-media-tag-volume.js +27 -0
  470. package/dist/esm/use-sync-volume-with-media-tag.d.ts +10 -0
  471. package/dist/esm/use-sync-volume-with-media-tag.js +17 -0
  472. package/dist/esm/use-unsafe-video-config.d.ts +2 -0
  473. package/dist/esm/use-unsafe-video-config.js +23 -0
  474. package/dist/esm/use-video-config.d.ts +7 -0
  475. package/dist/esm/use-video-config.js +25 -0
  476. package/dist/esm/use-video.d.ts +13 -0
  477. package/dist/esm/use-video.js +24 -0
  478. package/dist/esm/validate-frame.d.ts +1 -0
  479. package/dist/esm/validate-frame.js +20 -0
  480. package/dist/esm/validate-media-props.d.ts +4 -0
  481. package/dist/esm/validate-media-props.js +20 -0
  482. package/dist/esm/validate-start-from-props.d.ts +1 -0
  483. package/dist/esm/validate-start-from-props.js +27 -0
  484. package/dist/esm/validation/validate-composition-id.d.ts +3 -0
  485. package/dist/esm/validation/validate-composition-id.js +8 -0
  486. package/dist/esm/validation/validate-dimensions.d.ts +1 -0
  487. package/dist/esm/validation/validate-dimensions.js +17 -0
  488. package/dist/esm/validation/validate-duration-in-frames.d.ts +1 -0
  489. package/dist/esm/validation/validate-duration-in-frames.js +11 -0
  490. package/dist/esm/validation/validate-folder-name.d.ts +3 -0
  491. package/dist/esm/validation/validate-folder-name.js +14 -0
  492. package/dist/esm/validation/validate-fps.d.ts +1 -0
  493. package/dist/esm/validation/validate-fps.js +17 -0
  494. package/dist/esm/validation/validate-offthreadvideo-image-format.d.ts +1 -0
  495. package/dist/esm/validation/validate-offthreadvideo-image-format.js +11 -0
  496. package/dist/esm/validation/validation-spring-duration.d.ts +1 -0
  497. package/dist/esm/validation/validation-spring-duration.js +17 -0
  498. package/dist/esm/version.d.ts +1 -0
  499. package/dist/esm/version.js +2 -0
  500. package/dist/esm/video/OffthreadVideo.d.ts +3 -0
  501. package/dist/esm/video/OffthreadVideo.js +29 -0
  502. package/dist/esm/video/OffthreadVideoForRendering.d.ts +3 -0
  503. package/dist/esm/video/OffthreadVideoForRendering.js +100 -0
  504. package/dist/esm/video/Video.d.ts +8 -0
  505. package/dist/esm/video/Video.js +47 -0
  506. package/dist/esm/video/VideoForDevelopment.d.ts +11 -0
  507. package/dist/esm/video/VideoForDevelopment.js +110 -0
  508. package/dist/esm/video/VideoForRendering.d.ts +10 -0
  509. package/dist/esm/video/VideoForRendering.js +200 -0
  510. package/dist/esm/video/duration-state.d.ts +17 -0
  511. package/dist/esm/video/duration-state.js +29 -0
  512. package/dist/esm/video/get-current-time.d.ts +13 -0
  513. package/dist/esm/video/get-current-time.js +26 -0
  514. package/dist/esm/video/index.d.ts +3 -0
  515. package/dist/esm/video/index.js +2 -0
  516. package/dist/esm/video/props.d.ts +25 -0
  517. package/dist/esm/video/props.js +1 -0
  518. package/dist/esm/video/video-fragment.d.ts +12 -0
  519. package/dist/esm/video/video-fragment.js +55 -0
  520. package/dist/esm/video-config.d.ts +8 -0
  521. package/dist/esm/video-config.js +1 -0
  522. package/dist/esm/volume-position-state.d.ts +19 -0
  523. package/dist/esm/volume-position-state.js +27 -0
  524. package/dist/esm/volume-prop.d.ts +7 -0
  525. package/dist/esm/volume-prop.js +20 -0
  526. package/dist/esm/warn-about-non-seekable-media.d.ts +1 -0
  527. package/dist/esm/warn-about-non-seekable-media.js +30 -0
  528. package/dist/esm/wrap-remotion-context.d.ts +18 -0
  529. package/dist/esm/wrap-remotion-context.js +45 -0
  530. package/dist/internals.d.ts +0 -1
  531. package/dist/series/index.js +5 -2
  532. package/dist/tsconfig-cjs.tsbuildinfo +1 -0
  533. package/dist/use-video.d.ts +0 -1
  534. package/dist/version.d.ts +1 -1
  535. package/dist/version.js +1 -1
  536. package/dist/video/Video.d.ts +1 -1
  537. package/dist/video/VideoForDevelopment.d.ts +1 -1
  538. package/dist/video/VideoForRendering.d.ts +1 -1
  539. package/package.json +23 -12
  540. package/tsconfig-cjs.json +11 -0
  541. package/tsconfig.json +3 -3
  542. package/dist/LayerMaster.d.ts +0 -8
  543. package/dist/LayerMaster.js +0 -39
  544. package/dist/Satori.d.ts +0 -5
  545. package/dist/Satori.js +0 -92
  546. package/dist/get-compositions-from-markup.d.ts +0 -3
  547. package/dist/get-compositions-from-markup.js +0 -19
  548. package/dist/layers.d.ts +0 -24
  549. package/dist/layers.js +0 -149
  550. package/dist/video/NativeVideo.d.ts +0 -5
  551. package/dist/video/NativeVideo.js +0 -33
  552. package/dist/video/NativeVideoForRendering.d.ts +0 -8
  553. package/dist/video/NativeVideoForRendering.js +0 -14
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Img = void 0;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const react_1 = require("react");
6
+ const delay_render_js_1 = require("./delay-render.js");
7
+ const get_environment_js_1 = require("./get-environment.js");
8
+ const prefetch_js_1 = require("./prefetch.js");
9
+ const ImgRefForwarding = ({ onError, src, ...props }, ref) => {
10
+ const imageRef = (0, react_1.useRef)(null);
11
+ const environment = (0, get_environment_js_1.useRemotionEnvironment)();
12
+ (0, react_1.useImperativeHandle)(ref, () => {
13
+ return imageRef.current;
14
+ }, []);
15
+ const actualSrc = (0, prefetch_js_1.usePreload)(src);
16
+ const didGetError = (0, react_1.useCallback)((e) => {
17
+ var _a;
18
+ if (onError) {
19
+ onError(e);
20
+ }
21
+ else {
22
+ console.error('Error loading image with src:', (_a = imageRef.current) === null || _a === void 0 ? void 0 : _a.src, e, 'Handle the event using the onError() prop to make this message disappear.');
23
+ }
24
+ }, [onError]);
25
+ // If image source switches, make new handle
26
+ if (environment === 'rendering') {
27
+ // eslint-disable-next-line react-hooks/rules-of-hooks
28
+ (0, react_1.useLayoutEffect)(() => {
29
+ if (process.env.NODE_ENV === 'test') {
30
+ return;
31
+ }
32
+ const newHandle = (0, delay_render_js_1.delayRender)('Loading <Img> with src=' + src);
33
+ const { current } = imageRef;
34
+ const didLoad = () => {
35
+ (0, delay_render_js_1.continueRender)(newHandle);
36
+ };
37
+ if (current === null || current === void 0 ? void 0 : current.complete) {
38
+ (0, delay_render_js_1.continueRender)(newHandle);
39
+ }
40
+ else {
41
+ current === null || current === void 0 ? void 0 : current.addEventListener('load', didLoad, { once: true });
42
+ }
43
+ // If tag gets unmounted, clear pending handles because image is not going to load
44
+ return () => {
45
+ current === null || current === void 0 ? void 0 : current.removeEventListener('load', didLoad);
46
+ (0, delay_render_js_1.continueRender)(newHandle);
47
+ };
48
+ }, [src]);
49
+ }
50
+ return ((0, jsx_runtime_1.jsx)("img", { ...props, ref: imageRef, src: actualSrc, onError: didGetError }));
51
+ };
52
+ exports.Img = (0, react_1.forwardRef)(ImgRefForwarding);
@@ -0,0 +1,13 @@
1
+ import type { PropsWithChildren } from 'react';
2
+ export declare type ClipRegion = {
3
+ x: number;
4
+ y: number;
5
+ width: number;
6
+ height: number;
7
+ } | 'hide';
8
+ export declare type TNativeLayersContext = {
9
+ clipRegion: ClipRegion | null;
10
+ setClipRegion: React.Dispatch<React.SetStateAction<ClipRegion | null>>;
11
+ };
12
+ export declare const NativeLayersContext: import("react").Context<TNativeLayersContext>;
13
+ export declare const NativeLayersProvider: React.FC<PropsWithChildren>;
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.NativeLayersProvider = exports.NativeLayersContext = void 0;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const react_1 = require("react");
6
+ exports.NativeLayersContext = (0, react_1.createContext)({
7
+ setClipRegion: () => {
8
+ throw new Error('NativeLayers not set');
9
+ },
10
+ clipRegion: null,
11
+ });
12
+ const NativeLayersProvider = ({ children, }) => {
13
+ const [clipRegion, setClipRegion] = (0, react_1.useState)(null);
14
+ const context = (0, react_1.useMemo)(() => {
15
+ return {
16
+ setClipRegion,
17
+ clipRegion,
18
+ };
19
+ }, [clipRegion, setClipRegion]);
20
+ (0, react_1.useLayoutEffect)(() => {
21
+ if (typeof window !== 'undefined') {
22
+ window.remotion_getClipRegion = () => {
23
+ return clipRegion;
24
+ };
25
+ }
26
+ }, [clipRegion, setClipRegion]);
27
+ return ((0, jsx_runtime_1.jsx)(exports.NativeLayersContext.Provider, { value: context, children: children }));
28
+ };
29
+ exports.NativeLayersProvider = NativeLayersProvider;
@@ -0,0 +1,2 @@
1
+ /// <reference types="react" />
2
+ export declare const Null: React.FC;
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Null = void 0;
4
+ const react_1 = require("react");
5
+ const NativeLayers_js_1 = require("./NativeLayers.js");
6
+ const Null = () => {
7
+ const { setClipRegion } = (0, react_1.useContext)(NativeLayers_js_1.NativeLayersContext);
8
+ (0, react_1.useEffect)(() => {
9
+ setClipRegion((c) => {
10
+ if (c === null) {
11
+ return 'hide';
12
+ }
13
+ // Rendering multiple <Null> is fine, because they are all hidden
14
+ if (c === 'hide') {
15
+ return 'hide';
16
+ }
17
+ throw new Error('Cannot render <Null>, because another component clipping the region was already rendered (most likely <Clipper>)');
18
+ });
19
+ return () => {
20
+ setClipRegion(null);
21
+ };
22
+ }, [setClipRegion]);
23
+ return null;
24
+ };
25
+ exports.Null = Null;
@@ -0,0 +1,5 @@
1
+ import React from 'react';
2
+ export declare const RemotionRoot: React.FC<{
3
+ children: React.ReactNode;
4
+ numberOfAudioTags: number;
5
+ }>;
@@ -0,0 +1,73 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RemotionRoot = void 0;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const react_1 = require("react");
6
+ const shared_audio_tags_js_1 = require("./audio/shared-audio-tags.js");
7
+ const CompositionManager_js_1 = require("./CompositionManager.js");
8
+ const delay_render_js_1 = require("./delay-render.js");
9
+ const NativeLayers_js_1 = require("./NativeLayers.js");
10
+ const nonce_js_1 = require("./nonce.js");
11
+ const prefetch_state_js_1 = require("./prefetch-state.js");
12
+ const random_js_1 = require("./random.js");
13
+ const timeline_position_state_js_1 = require("./timeline-position-state.js");
14
+ const duration_state_js_1 = require("./video/duration-state.js");
15
+ const RemotionRoot = ({ children, numberOfAudioTags }) => {
16
+ var _a;
17
+ const [remotionRootId] = (0, react_1.useState)(() => String((0, random_js_1.random)(null)));
18
+ const [frame, setFrame] = (0, react_1.useState)((_a = window.remotion_initialFrame) !== null && _a !== void 0 ? _a : 0);
19
+ const [playing, setPlaying] = (0, react_1.useState)(false);
20
+ const imperativePlaying = (0, react_1.useRef)(false);
21
+ const [fastRefreshes, setFastRefreshes] = (0, react_1.useState)(0);
22
+ const [playbackRate, setPlaybackRate] = (0, react_1.useState)(1);
23
+ const audioAndVideoTags = (0, react_1.useRef)([]);
24
+ (0, react_1.useLayoutEffect)(() => {
25
+ if (typeof window !== 'undefined') {
26
+ window.remotion_setFrame = (f) => {
27
+ const id = (0, delay_render_js_1.delayRender)(`Setting the current frame to ${f}`);
28
+ setFrame(f);
29
+ requestAnimationFrame(() => (0, delay_render_js_1.continueRender)(id));
30
+ };
31
+ window.remotion_isPlayer = false;
32
+ }
33
+ }, []);
34
+ const timelineContextValue = (0, react_1.useMemo)(() => {
35
+ return {
36
+ frame,
37
+ playing,
38
+ imperativePlaying,
39
+ rootId: remotionRootId,
40
+ playbackRate,
41
+ setPlaybackRate,
42
+ audioAndVideoTags,
43
+ };
44
+ }, [frame, playbackRate, playing, remotionRootId]);
45
+ const setTimelineContextValue = (0, react_1.useMemo)(() => {
46
+ return {
47
+ setFrame,
48
+ setPlaying,
49
+ };
50
+ }, []);
51
+ const nonceContext = (0, react_1.useMemo)(() => {
52
+ let counter = 0;
53
+ return {
54
+ getNonce: () => counter++,
55
+ fastRefreshes,
56
+ };
57
+ }, [fastRefreshes]);
58
+ (0, react_1.useEffect)(() => {
59
+ if (module.hot) {
60
+ module.hot.addStatusHandler((status) => {
61
+ if (status === 'idle') {
62
+ setFastRefreshes((i) => i + 1);
63
+ }
64
+ });
65
+ }
66
+ }, []);
67
+ return ((0, jsx_runtime_1.jsx)(nonce_js_1.NonceContext.Provider, { value: nonceContext, children: (0, jsx_runtime_1.jsx)(timeline_position_state_js_1.TimelineContext.Provider, { value: timelineContextValue, children: (0, jsx_runtime_1.jsx)(timeline_position_state_js_1.SetTimelineContext.Provider, { value: setTimelineContextValue, children: (0, jsx_runtime_1.jsx)(prefetch_state_js_1.PrefetchProvider, { children: (0, jsx_runtime_1.jsx)(NativeLayers_js_1.NativeLayersProvider, { children: (0, jsx_runtime_1.jsx)(CompositionManager_js_1.CompositionManagerProvider, { children: (0, jsx_runtime_1.jsx)(duration_state_js_1.DurationsContextProvider, { children: (0, jsx_runtime_1.jsx)(shared_audio_tags_js_1.SharedAudioContextProvider
68
+ // In the preview, which is mostly played on Desktop, we opt out of the autoplay policy fix as described in https://github.com/remotion-dev/remotion/pull/554, as it mostly applies to mobile.
69
+ , {
70
+ // In the preview, which is mostly played on Desktop, we opt out of the autoplay policy fix as described in https://github.com/remotion-dev/remotion/pull/554, as it mostly applies to mobile.
71
+ numberOfAudioTags: numberOfAudioTags, children: children }) }) }) }) }) }) }) }));
72
+ };
73
+ exports.RemotionRoot = RemotionRoot;
@@ -0,0 +1,29 @@
1
+ import React from 'react';
2
+ export declare type SequenceContextType = {
3
+ cumulatedFrom: number;
4
+ relativeFrom: number;
5
+ parentFrom: number;
6
+ durationInFrames: number;
7
+ id: string;
8
+ };
9
+ export declare const SequenceContext: React.Context<SequenceContextType | null>;
10
+ export declare type LayoutAndStyle = {
11
+ layout: 'none';
12
+ } | {
13
+ layout?: 'absolute-fill';
14
+ style?: React.CSSProperties;
15
+ className?: string;
16
+ };
17
+ export declare type SequenceProps = {
18
+ children: React.ReactNode;
19
+ from?: number;
20
+ durationInFrames?: number;
21
+ name?: string;
22
+ showInTimeline?: boolean;
23
+ showLoopTimesInTimeline?: number;
24
+ } & LayoutAndStyle;
25
+ /**
26
+ * A component that time-shifts its children and wraps them in an absolutely positioned <div>.
27
+ * @link https://www.remotion.dev/docs/sequence
28
+ */
29
+ export declare const Sequence: React.ForwardRefExoticComponent<SequenceProps & React.RefAttributes<HTMLDivElement>>;
@@ -0,0 +1,131 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Sequence = exports.SequenceContext = void 0;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const react_1 = require("react");
6
+ const AbsoluteFill_js_1 = require("./AbsoluteFill.js");
7
+ const CompositionManager_js_1 = require("./CompositionManager.js");
8
+ const get_environment_js_1 = require("./get-environment.js");
9
+ const get_timeline_clip_name_js_1 = require("./get-timeline-clip-name.js");
10
+ const nonce_js_1 = require("./nonce.js");
11
+ const timeline_position_state_js_1 = require("./timeline-position-state.js");
12
+ const use_video_config_js_1 = require("./use-video-config.js");
13
+ exports.SequenceContext = (0, react_1.createContext)(null);
14
+ const SequenceRefForwardingFunction = ({ from = 0, durationInFrames = Infinity, children, name, showInTimeline = true, showLoopTimesInTimeline, ...other }, ref) => {
15
+ const { layout = 'absolute-fill' } = other;
16
+ const [id] = (0, react_1.useState)(() => String(Math.random()));
17
+ const parentSequence = (0, react_1.useContext)(exports.SequenceContext);
18
+ const { rootId } = (0, react_1.useContext)(timeline_position_state_js_1.TimelineContext);
19
+ const cumulatedFrom = parentSequence
20
+ ? parentSequence.cumulatedFrom + parentSequence.relativeFrom
21
+ : 0;
22
+ const nonce = (0, nonce_js_1.useNonce)();
23
+ const environment = (0, get_environment_js_1.useRemotionEnvironment)();
24
+ if (layout !== 'absolute-fill' && layout !== 'none') {
25
+ throw new TypeError(`The layout prop of <Sequence /> expects either "absolute-fill" or "none", but you passed: ${layout}`);
26
+ }
27
+ // @ts-expect-error
28
+ if (layout === 'none' && typeof other.style !== 'undefined') {
29
+ throw new TypeError('If layout="none", you may not pass a style.');
30
+ }
31
+ if (typeof durationInFrames !== 'number') {
32
+ throw new TypeError(`You passed to durationInFrames an argument of type ${typeof durationInFrames}, but it must be a number.`);
33
+ }
34
+ if (durationInFrames <= 0) {
35
+ throw new TypeError(`durationInFrames must be positive, but got ${durationInFrames}`);
36
+ }
37
+ // Infinity is non-integer but allowed!
38
+ if (durationInFrames % 1 !== 0 && Number.isFinite(durationInFrames)) {
39
+ throw new TypeError(`The "durationInFrames" of a sequence must be an integer, but got ${durationInFrames}.`);
40
+ }
41
+ if (typeof from !== 'number') {
42
+ throw new TypeError(`You passed to the "from" props of your <Sequence> an argument of type ${typeof from}, but it must be a number.`);
43
+ }
44
+ if (from % 1 !== 0) {
45
+ throw new TypeError(`The "from" prop of a sequence must be an integer, but got ${from}.`);
46
+ }
47
+ const absoluteFrame = (0, timeline_position_state_js_1.useTimelinePosition)();
48
+ const videoConfig = (0, use_video_config_js_1.useVideoConfig)();
49
+ const parentSequenceDuration = parentSequence
50
+ ? Math.min(parentSequence.durationInFrames - from, durationInFrames)
51
+ : durationInFrames;
52
+ const actualDurationInFrames = Math.max(0, Math.min(videoConfig.durationInFrames - from, parentSequenceDuration));
53
+ const { registerSequence, unregisterSequence } = (0, react_1.useContext)(CompositionManager_js_1.CompositionManager);
54
+ const contextValue = (0, react_1.useMemo)(() => {
55
+ var _a;
56
+ return {
57
+ cumulatedFrom,
58
+ relativeFrom: from,
59
+ durationInFrames: actualDurationInFrames,
60
+ parentFrom: (_a = parentSequence === null || parentSequence === void 0 ? void 0 : parentSequence.relativeFrom) !== null && _a !== void 0 ? _a : 0,
61
+ id,
62
+ };
63
+ }, [
64
+ cumulatedFrom,
65
+ from,
66
+ actualDurationInFrames,
67
+ parentSequence === null || parentSequence === void 0 ? void 0 : parentSequence.relativeFrom,
68
+ id,
69
+ ]);
70
+ const timelineClipName = (0, react_1.useMemo)(() => {
71
+ return name !== null && name !== void 0 ? name : (0, get_timeline_clip_name_js_1.getTimelineClipName)(children);
72
+ }, [children, name]);
73
+ (0, react_1.useEffect)(() => {
74
+ var _a;
75
+ if (environment !== 'preview') {
76
+ return;
77
+ }
78
+ registerSequence({
79
+ from,
80
+ duration: actualDurationInFrames,
81
+ id,
82
+ displayName: timelineClipName,
83
+ parent: (_a = parentSequence === null || parentSequence === void 0 ? void 0 : parentSequence.id) !== null && _a !== void 0 ? _a : null,
84
+ type: 'sequence',
85
+ rootId,
86
+ showInTimeline,
87
+ nonce,
88
+ showLoopTimesInTimeline,
89
+ });
90
+ return () => {
91
+ unregisterSequence(id);
92
+ };
93
+ }, [
94
+ durationInFrames,
95
+ id,
96
+ name,
97
+ registerSequence,
98
+ timelineClipName,
99
+ unregisterSequence,
100
+ parentSequence === null || parentSequence === void 0 ? void 0 : parentSequence.id,
101
+ actualDurationInFrames,
102
+ rootId,
103
+ from,
104
+ showInTimeline,
105
+ nonce,
106
+ showLoopTimesInTimeline,
107
+ environment,
108
+ ]);
109
+ const endThreshold = cumulatedFrom + from + durationInFrames - 1;
110
+ const content = absoluteFrame < cumulatedFrom + from
111
+ ? null
112
+ : absoluteFrame > endThreshold
113
+ ? null
114
+ : children;
115
+ const styleIfThere = other.layout === 'none' ? undefined : other.style;
116
+ const defaultStyle = (0, react_1.useMemo)(() => {
117
+ return {
118
+ flexDirection: undefined,
119
+ ...(styleIfThere !== null && styleIfThere !== void 0 ? styleIfThere : {}),
120
+ };
121
+ }, [styleIfThere]);
122
+ if (ref !== null && layout === 'none') {
123
+ throw new TypeError('It is not supported to pass both a `ref` and `layout="none"` to <Sequence />.');
124
+ }
125
+ return ((0, jsx_runtime_1.jsx)(exports.SequenceContext.Provider, { value: contextValue, children: content === null ? null : other.layout === 'none' ? (content) : ((0, jsx_runtime_1.jsx)(AbsoluteFill_js_1.AbsoluteFill, { ref: ref, style: defaultStyle, className: other.className, children: content })) }));
126
+ };
127
+ /**
128
+ * A component that time-shifts its children and wraps them in an absolutely positioned <div>.
129
+ * @link https://www.remotion.dev/docs/sequence
130
+ */
131
+ exports.Sequence = (0, react_1.forwardRef)(SequenceRefForwardingFunction);
@@ -0,0 +1,3 @@
1
+ /// <reference types="react" />
2
+ import type { StillProps } from './Composition.js';
3
+ export declare const Still: <T>(props: StillProps<T>) => JSX.Element;
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Still = void 0;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const Composition_js_1 = require("./Composition.js");
6
+ const Still = (props) => {
7
+ return (0, jsx_runtime_1.jsx)(Composition_js_1.Composition, { fps: 1, durationInFrames: 1, ...props });
8
+ };
9
+ exports.Still = Still;
@@ -0,0 +1 @@
1
+ export declare const getAbsoluteSrc: (relativeSrc: string) => string;
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getAbsoluteSrc = void 0;
4
+ const getAbsoluteSrc = (relativeSrc) => {
5
+ return new URL(relativeSrc, window.location.origin).href;
6
+ };
7
+ exports.getAbsoluteSrc = getAbsoluteSrc;
@@ -0,0 +1,50 @@
1
+ declare module '*.webm' {
2
+ const src: string;
3
+ export default src;
4
+ }
5
+ declare module '*.png' {
6
+ const src: string;
7
+ export default src;
8
+ }
9
+ declare module '*.mp4' {
10
+ const src: string;
11
+ export default src;
12
+ }
13
+ declare module '*.mp3' {
14
+ const src: string;
15
+ export default src;
16
+ }
17
+ declare module '*.wav' {
18
+ const src: string;
19
+ export default src;
20
+ }
21
+ declare module '*.aac' {
22
+ const src: string;
23
+ export default src;
24
+ }
25
+ declare module '*.svg';
26
+ declare module '*.jpg' {
27
+ const src: string;
28
+ export default src;
29
+ }
30
+ declare module '*.jpeg' {
31
+ const src: string;
32
+ export default src;
33
+ }
34
+ declare module '*.bmp' {
35
+ const src: string;
36
+ export default src;
37
+ }
38
+ declare module '*.gif' {
39
+ const src: string;
40
+ export default src;
41
+ }
42
+ declare module '*.woff' {
43
+ const src: string;
44
+ export default src;
45
+ }
46
+ declare module '*.woff2' {
47
+ const src: string;
48
+ export default src;
49
+ }
50
+ declare module '*.css';
@@ -0,0 +1 @@
1
+ "use strict";
@@ -0,0 +1,8 @@
1
+ import React from 'react';
2
+ import type { RemotionMainAudioProps } from './props.js';
3
+ export declare const Audio: React.ForwardRefExoticComponent<Pick<Omit<React.DetailedHTMLProps<React.AudioHTMLAttributes<HTMLAudioElement>, HTMLAudioElement>, "nonce" | "onEnded" | "onResize" | "onResizeCapture" | "autoPlay" | "controls"> & {
4
+ volume?: import("../volume-prop.js").VolumeProp | undefined;
5
+ playbackRate?: number | undefined;
6
+ acceptableTimeShiftInSeconds?: number | undefined;
7
+ allowAmplificationDuringRender?: boolean | undefined;
8
+ } & RemotionMainAudioProps, "id" | "key" | "defaultChecked" | "defaultValue" | "suppressContentEditableWarning" | "suppressHydrationWarning" | "accessKey" | "className" | "contentEditable" | "contextMenu" | "dir" | "draggable" | "hidden" | "lang" | "placeholder" | "slot" | "spellCheck" | "style" | "tabIndex" | "title" | "translate" | "radioGroup" | "role" | "about" | "datatype" | "inlist" | "prefix" | "property" | "resource" | "typeof" | "vocab" | "autoCapitalize" | "autoCorrect" | "autoSave" | "color" | "itemProp" | "itemScope" | "itemType" | "itemID" | "itemRef" | "results" | "security" | "unselectable" | "inputMode" | "is" | "aria-activedescendant" | "aria-atomic" | "aria-autocomplete" | "aria-busy" | "aria-checked" | "aria-colcount" | "aria-colindex" | "aria-colspan" | "aria-controls" | "aria-current" | "aria-describedby" | "aria-details" | "aria-disabled" | "aria-dropeffect" | "aria-errormessage" | "aria-expanded" | "aria-flowto" | "aria-grabbed" | "aria-haspopup" | "aria-hidden" | "aria-invalid" | "aria-keyshortcuts" | "aria-label" | "aria-labelledby" | "aria-level" | "aria-live" | "aria-modal" | "aria-multiline" | "aria-multiselectable" | "aria-orientation" | "aria-owns" | "aria-placeholder" | "aria-posinset" | "aria-pressed" | "aria-readonly" | "aria-relevant" | "aria-required" | "aria-roledescription" | "aria-rowcount" | "aria-rowindex" | "aria-rowspan" | "aria-selected" | "aria-setsize" | "aria-sort" | "aria-valuemax" | "aria-valuemin" | "aria-valuenow" | "aria-valuetext" | "children" | "dangerouslySetInnerHTML" | "onCopy" | "onCopyCapture" | "onCut" | "onCutCapture" | "onPaste" | "onPasteCapture" | "onCompositionEnd" | "onCompositionEndCapture" | "onCompositionStart" | "onCompositionStartCapture" | "onCompositionUpdate" | "onCompositionUpdateCapture" | "onFocus" | "onFocusCapture" | "onBlur" | "onBlurCapture" | "onChange" | "onChangeCapture" | "onBeforeInput" | "onBeforeInputCapture" | "onInput" | "onInputCapture" | "onReset" | "onResetCapture" | "onSubmit" | "onSubmitCapture" | "onInvalid" | "onInvalidCapture" | "onLoad" | "onLoadCapture" | "onError" | "onErrorCapture" | "onKeyDown" | "onKeyDownCapture" | "onKeyPress" | "onKeyPressCapture" | "onKeyUp" | "onKeyUpCapture" | "onAbort" | "onAbortCapture" | "onCanPlay" | "onCanPlayCapture" | "onCanPlayThrough" | "onCanPlayThroughCapture" | "onDurationChange" | "onDurationChangeCapture" | "onEmptied" | "onEmptiedCapture" | "onEncrypted" | "onEncryptedCapture" | "onEndedCapture" | "onLoadedData" | "onLoadedDataCapture" | "onLoadedMetadata" | "onLoadedMetadataCapture" | "onLoadStart" | "onLoadStartCapture" | "onPause" | "onPauseCapture" | "onPlay" | "onPlayCapture" | "onPlaying" | "onPlayingCapture" | "onProgress" | "onProgressCapture" | "onRateChange" | "onRateChangeCapture" | "onSeeked" | "onSeekedCapture" | "onSeeking" | "onSeekingCapture" | "onStalled" | "onStalledCapture" | "onSuspend" | "onSuspendCapture" | "onTimeUpdate" | "onTimeUpdateCapture" | "onVolumeChange" | "onVolumeChangeCapture" | "onWaiting" | "onWaitingCapture" | "onAuxClick" | "onAuxClickCapture" | "onClick" | "onClickCapture" | "onContextMenu" | "onContextMenuCapture" | "onDoubleClick" | "onDoubleClickCapture" | "onDrag" | "onDragCapture" | "onDragEnd" | "onDragEndCapture" | "onDragEnter" | "onDragEnterCapture" | "onDragExit" | "onDragExitCapture" | "onDragLeave" | "onDragLeaveCapture" | "onDragOver" | "onDragOverCapture" | "onDragStart" | "onDragStartCapture" | "onDrop" | "onDropCapture" | "onMouseDown" | "onMouseDownCapture" | "onMouseEnter" | "onMouseLeave" | "onMouseMove" | "onMouseMoveCapture" | "onMouseOut" | "onMouseOutCapture" | "onMouseOver" | "onMouseOverCapture" | "onMouseUp" | "onMouseUpCapture" | "onSelect" | "onSelectCapture" | "onTouchCancel" | "onTouchCancelCapture" | "onTouchEnd" | "onTouchEndCapture" | "onTouchMove" | "onTouchMoveCapture" | "onTouchStart" | "onTouchStartCapture" | "onPointerDown" | "onPointerDownCapture" | "onPointerMove" | "onPointerMoveCapture" | "onPointerUp" | "onPointerUpCapture" | "onPointerCancel" | "onPointerCancelCapture" | "onPointerEnter" | "onPointerEnterCapture" | "onPointerLeave" | "onPointerLeaveCapture" | "onPointerOver" | "onPointerOverCapture" | "onPointerOut" | "onPointerOutCapture" | "onGotPointerCapture" | "onGotPointerCaptureCapture" | "onLostPointerCapture" | "onLostPointerCaptureCapture" | "onScroll" | "onScrollCapture" | "onWheel" | "onWheelCapture" | "onAnimationStart" | "onAnimationStartCapture" | "onAnimationEnd" | "onAnimationEndCapture" | "onAnimationIteration" | "onAnimationIterationCapture" | "onTransitionEnd" | "onTransitionEndCapture" | "src" | "volume" | "playbackRate" | "allowAmplificationDuringRender" | "controlsList" | "crossOrigin" | "loop" | "mediaGroup" | "muted" | "playsInline" | "preload" | "acceptableTimeShiftInSeconds" | keyof RemotionMainAudioProps> & React.RefAttributes<HTMLAudioElement>>;
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Audio = void 0;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const react_1 = require("react");
6
+ const get_environment_js_1 = require("../get-environment.js");
7
+ const loop_1 = require("../loop");
8
+ const Sequence_js_1 = require("../Sequence.js");
9
+ const use_video_config_js_1 = require("../use-video-config.js");
10
+ const validate_media_props_js_1 = require("../validate-media-props.js");
11
+ const validate_start_from_props_js_1 = require("../validate-start-from-props.js");
12
+ const duration_state_js_1 = require("../video/duration-state.js");
13
+ const AudioForDevelopment_js_1 = require("./AudioForDevelopment.js");
14
+ const AudioForRendering_js_1 = require("./AudioForRendering.js");
15
+ const shared_audio_tags_js_1 = require("./shared-audio-tags.js");
16
+ const AudioRefForwardingFunction = (props, ref) => {
17
+ var _a;
18
+ const audioContext = (0, react_1.useContext)(shared_audio_tags_js_1.SharedAudioContext);
19
+ const { startFrom, endAt, ...otherProps } = props;
20
+ const { loop, ...propsOtherThanLoop } = props;
21
+ const { fps } = (0, use_video_config_js_1.useVideoConfig)();
22
+ const environment = (0, get_environment_js_1.useRemotionEnvironment)();
23
+ const { durations, setDurations } = (0, react_1.useContext)(duration_state_js_1.DurationsContext);
24
+ if (typeof props.src !== 'string') {
25
+ throw new TypeError(`The \`<Audio>\` tag requires a string for \`src\`, but got ${JSON.stringify(props.src)} instead.`);
26
+ }
27
+ const onError = (0, react_1.useCallback)((e) => {
28
+ console.log(e.currentTarget.error);
29
+ throw new Error(`Could not play audio with src ${otherProps.src}: ${e.currentTarget.error}. See https://remotion.dev/docs/media-playback-error for help.`);
30
+ }, [otherProps.src]);
31
+ const onDuration = (0, react_1.useCallback)((src, durationInSeconds) => {
32
+ setDurations({ type: 'got-duration', durationInSeconds, src });
33
+ }, [setDurations]);
34
+ if (loop && props.src && durations[props.src] !== undefined) {
35
+ const duration = Math.floor(durations[props.src] * fps);
36
+ const playbackRate = (_a = props.playbackRate) !== null && _a !== void 0 ? _a : 1;
37
+ const actualDuration = duration / playbackRate;
38
+ return ((0, jsx_runtime_1.jsx)(loop_1.Loop, { layout: "none", durationInFrames: Math.floor(actualDuration), children: (0, jsx_runtime_1.jsx)(exports.Audio, { ...propsOtherThanLoop, ref: ref }) }));
39
+ }
40
+ if (typeof startFrom !== 'undefined' || typeof endAt !== 'undefined') {
41
+ (0, validate_start_from_props_js_1.validateStartFromProps)(startFrom, endAt);
42
+ const startFromFrameNo = startFrom !== null && startFrom !== void 0 ? startFrom : 0;
43
+ const endAtFrameNo = endAt !== null && endAt !== void 0 ? endAt : Infinity;
44
+ return ((0, jsx_runtime_1.jsx)(Sequence_js_1.Sequence, { layout: "none", from: 0 - startFromFrameNo, showInTimeline: false, durationInFrames: endAtFrameNo, children: (0, jsx_runtime_1.jsx)(exports.Audio, { ...otherProps, ref: ref }) }));
45
+ }
46
+ (0, validate_media_props_js_1.validateMediaProps)(props, 'Audio');
47
+ if (environment === 'rendering') {
48
+ return ((0, jsx_runtime_1.jsx)(AudioForRendering_js_1.AudioForRendering, { onDuration: onDuration, ...props, ref: ref, onError: onError }));
49
+ }
50
+ return ((0, jsx_runtime_1.jsx)(AudioForDevelopment_js_1.AudioForDevelopment, { shouldPreMountAudioTags: audioContext !== null && audioContext.numberOfAudioTags > 0, ...props, ref: ref, onError: onError, onDuration: onDuration }));
51
+ };
52
+ exports.Audio = (0, react_1.forwardRef)(AudioRefForwardingFunction);
@@ -0,0 +1,11 @@
1
+ import type { ForwardRefExoticComponent, RefAttributes } from 'react';
2
+ import React from 'react';
3
+ export declare const AudioForDevelopment: ForwardRefExoticComponent<Omit<React.DetailedHTMLProps<React.AudioHTMLAttributes<HTMLAudioElement>, HTMLAudioElement>, "nonce" | "onEnded" | "onResize" | "onResizeCapture" | "autoPlay" | "controls"> & {
4
+ volume?: import("../volume-prop.js").VolumeProp | undefined;
5
+ playbackRate?: number | undefined;
6
+ acceptableTimeShiftInSeconds?: number | undefined;
7
+ allowAmplificationDuringRender?: boolean | undefined;
8
+ } & {
9
+ shouldPreMountAudioTags: boolean;
10
+ onDuration: (src: string, durationInSeconds: number) => void;
11
+ } & RefAttributes<HTMLAudioElement>>;
@@ -0,0 +1,94 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AudioForDevelopment = void 0;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const react_1 = require("react");
6
+ const prefetch_js_1 = require("../prefetch.js");
7
+ const random_js_1 = require("../random.js");
8
+ const Sequence_js_1 = require("../Sequence.js");
9
+ const use_media_in_timeline_js_1 = require("../use-media-in-timeline.js");
10
+ const use_media_playback_js_1 = require("../use-media-playback.js");
11
+ const use_media_tag_volume_js_1 = require("../use-media-tag-volume.js");
12
+ const use_sync_volume_with_media_tag_js_1 = require("../use-sync-volume-with-media-tag.js");
13
+ const volume_position_state_js_1 = require("../volume-position-state.js");
14
+ const shared_audio_tags_js_1 = require("./shared-audio-tags.js");
15
+ const use_audio_frame_js_1 = require("./use-audio-frame.js");
16
+ const AudioForDevelopmentForwardRefFunction = (props, ref) => {
17
+ const [initialShouldPreMountAudioElements] = (0, react_1.useState)(props.shouldPreMountAudioTags);
18
+ if (props.shouldPreMountAudioTags !== initialShouldPreMountAudioElements) {
19
+ throw new Error('Cannot change the behavior for pre-mounting audio tags dynamically.');
20
+ }
21
+ const [mediaVolume] = (0, volume_position_state_js_1.useMediaVolumeState)();
22
+ const [mediaMuted] = (0, volume_position_state_js_1.useMediaMutedState)();
23
+ const volumePropFrame = (0, use_audio_frame_js_1.useFrameForVolumeProp)();
24
+ const { volume, muted, playbackRate, shouldPreMountAudioTags, src, onDuration, acceptableTimeShiftInSeconds, ...nativeProps } = props;
25
+ if (!src) {
26
+ throw new TypeError("No 'src' was passed to <Audio>.");
27
+ }
28
+ const preloadedSrc = (0, prefetch_js_1.usePreload)(src);
29
+ const propsToPass = (0, react_1.useMemo)(() => {
30
+ return {
31
+ muted: muted || mediaMuted,
32
+ src: preloadedSrc,
33
+ ...nativeProps,
34
+ };
35
+ }, [mediaMuted, muted, nativeProps, preloadedSrc]);
36
+ const sequenceContext = (0, react_1.useContext)(Sequence_js_1.SequenceContext);
37
+ // Generate a string that's as unique as possible for this asset
38
+ // but at the same time deterministic. We use it to combat strict mode issues.
39
+ const id = (0, react_1.useMemo)(() => `audio-${(0, random_js_1.random)(src !== null && src !== void 0 ? src : '')}-${sequenceContext === null || sequenceContext === void 0 ? void 0 : sequenceContext.relativeFrom}-${sequenceContext === null || sequenceContext === void 0 ? void 0 : sequenceContext.cumulatedFrom}-${sequenceContext === null || sequenceContext === void 0 ? void 0 : sequenceContext.durationInFrames}-muted:${props.muted}`, [props.muted, src, sequenceContext]);
40
+ const audioRef = (0, shared_audio_tags_js_1.useSharedAudio)(propsToPass, id).el;
41
+ const actualVolume = (0, use_media_tag_volume_js_1.useMediaTagVolume)(audioRef);
42
+ (0, use_sync_volume_with_media_tag_js_1.useSyncVolumeWithMediaTag)({
43
+ volumePropFrame,
44
+ actualVolume,
45
+ volume,
46
+ mediaVolume,
47
+ mediaRef: audioRef,
48
+ });
49
+ (0, use_media_in_timeline_js_1.useMediaInTimeline)({
50
+ volume,
51
+ mediaVolume,
52
+ mediaRef: audioRef,
53
+ src,
54
+ mediaType: 'audio',
55
+ playbackRate: playbackRate !== null && playbackRate !== void 0 ? playbackRate : 1,
56
+ });
57
+ (0, use_media_playback_js_1.useMediaPlayback)({
58
+ mediaRef: audioRef,
59
+ src,
60
+ mediaType: 'audio',
61
+ playbackRate: playbackRate !== null && playbackRate !== void 0 ? playbackRate : 1,
62
+ onlyWarnForMediaSeekingError: false,
63
+ acceptableTimeshift: acceptableTimeShiftInSeconds !== null && acceptableTimeShiftInSeconds !== void 0 ? acceptableTimeShiftInSeconds : use_media_playback_js_1.DEFAULT_ACCEPTABLE_TIMESHIFT,
64
+ });
65
+ (0, react_1.useImperativeHandle)(ref, () => {
66
+ return audioRef.current;
67
+ }, [audioRef]);
68
+ const currentOnDurationCallback = (0, react_1.useRef)();
69
+ currentOnDurationCallback.current = onDuration;
70
+ (0, react_1.useEffect)(() => {
71
+ var _a;
72
+ const { current } = audioRef;
73
+ if (!current) {
74
+ return;
75
+ }
76
+ if (current.duration) {
77
+ (_a = currentOnDurationCallback.current) === null || _a === void 0 ? void 0 : _a.call(currentOnDurationCallback, src, current.duration);
78
+ return;
79
+ }
80
+ const onLoadedMetadata = () => {
81
+ var _a;
82
+ (_a = currentOnDurationCallback.current) === null || _a === void 0 ? void 0 : _a.call(currentOnDurationCallback, src, current.duration);
83
+ };
84
+ current.addEventListener('loadedmetadata', onLoadedMetadata);
85
+ return () => {
86
+ current.removeEventListener('loadedmetadata', onLoadedMetadata);
87
+ };
88
+ }, [audioRef, src]);
89
+ if (initialShouldPreMountAudioElements) {
90
+ return null;
91
+ }
92
+ return (0, jsx_runtime_1.jsx)("audio", { ref: audioRef, ...propsToPass });
93
+ };
94
+ exports.AudioForDevelopment = (0, react_1.forwardRef)(AudioForDevelopmentForwardRefFunction);
@@ -0,0 +1,10 @@
1
+ import type { ForwardRefExoticComponent, RefAttributes } from 'react';
2
+ import React from 'react';
3
+ export declare const AudioForRendering: ForwardRefExoticComponent<Omit<React.DetailedHTMLProps<React.AudioHTMLAttributes<HTMLAudioElement>, HTMLAudioElement>, "nonce" | "onEnded" | "onResize" | "onResizeCapture" | "autoPlay" | "controls"> & {
4
+ volume?: import("../volume-prop.js").VolumeProp | undefined;
5
+ playbackRate?: number | undefined;
6
+ acceptableTimeShiftInSeconds?: number | undefined;
7
+ allowAmplificationDuringRender?: boolean | undefined;
8
+ } & {
9
+ onDuration: (src: string, durationInSeconds: number) => void;
10
+ } & RefAttributes<HTMLAudioElement>>;