remotion 3.3.54 → 3.3.56

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 (602) hide show
  1. package/dist/cjs/AbsoluteFill.d.ts +2 -2
  2. package/dist/cjs/AbsoluteFill.js +2 -2
  3. package/dist/cjs/Composition.d.ts +4 -0
  4. package/dist/cjs/Composition.js +4 -0
  5. package/dist/cjs/Folder.d.ts +4 -0
  6. package/dist/cjs/Folder.js +4 -0
  7. package/dist/cjs/IFrame.d.ts +4 -0
  8. package/dist/cjs/IFrame.js +4 -0
  9. package/dist/cjs/Img.d.ts +4 -0
  10. package/dist/cjs/Img.js +4 -0
  11. package/dist/cjs/Sequence.d.ts +2 -10
  12. package/dist/cjs/Sequence.js +6 -6
  13. package/dist/cjs/SequenceContext.d.ts +9 -0
  14. package/dist/cjs/SequenceContext.js +5 -0
  15. package/dist/cjs/Still.d.ts +4 -0
  16. package/dist/cjs/Still.js +4 -0
  17. package/dist/cjs/audio/Audio.d.ts +5 -1
  18. package/dist/cjs/audio/Audio.js +6 -2
  19. package/dist/cjs/audio/AudioForDevelopment.js +2 -2
  20. package/dist/cjs/audio/AudioForRendering.js +2 -2
  21. package/dist/cjs/audio/use-audio-frame.js +2 -2
  22. package/dist/cjs/cancel-render.d.ts +4 -0
  23. package/dist/cjs/cancel-render.js +4 -0
  24. package/dist/cjs/delay-render.d.ts +4 -4
  25. package/dist/cjs/delay-render.js +4 -4
  26. package/dist/cjs/easing.d.ts +4 -0
  27. package/dist/cjs/easing.js +4 -0
  28. package/dist/cjs/freeze.d.ts +4 -0
  29. package/dist/cjs/freeze.js +6 -2
  30. package/dist/cjs/get-static-files.d.ts +4 -0
  31. package/dist/cjs/get-static-files.js +4 -0
  32. package/dist/cjs/index.d.ts +17 -8
  33. package/dist/cjs/index.js +18 -10
  34. package/dist/cjs/internals.d.ts +6 -6
  35. package/dist/cjs/internals.js +4 -4
  36. package/dist/cjs/interpolate-colors.d.ts +4 -0
  37. package/dist/cjs/interpolate-colors.js +4 -0
  38. package/dist/cjs/interpolate.js +4 -0
  39. package/dist/cjs/loop/index.d.ts +4 -0
  40. package/dist/cjs/loop/index.js +4 -0
  41. package/dist/cjs/prefetch.d.ts +4 -0
  42. package/dist/cjs/prefetch.js +4 -0
  43. package/dist/cjs/random.d.ts +2 -3
  44. package/dist/cjs/random.js +2 -3
  45. package/dist/cjs/register-root.d.ts +4 -0
  46. package/dist/cjs/register-root.js +4 -0
  47. package/dist/cjs/series/index.d.ts +4 -0
  48. package/dist/cjs/series/index.js +4 -0
  49. package/dist/cjs/spring/index.d.ts +2 -2
  50. package/dist/cjs/spring/index.js +2 -2
  51. package/dist/cjs/spring/measure-spring.d.ts +4 -0
  52. package/dist/cjs/spring/measure-spring.js +4 -0
  53. package/dist/cjs/static-file.d.ts +2 -2
  54. package/dist/cjs/static-file.js +2 -2
  55. package/dist/cjs/use-current-frame.d.ts +2 -3
  56. package/dist/cjs/use-current-frame.js +4 -5
  57. package/dist/cjs/use-media-in-timeline.js +2 -2
  58. package/dist/cjs/use-unsafe-video-config.js +2 -2
  59. package/dist/cjs/use-video-config.d.ts +4 -3
  60. package/dist/cjs/use-video-config.js +4 -3
  61. package/dist/cjs/use-video.d.ts +1 -1
  62. package/dist/cjs/validate-media-props.d.ts +2 -2
  63. package/dist/cjs/version.d.ts +1 -1
  64. package/dist/cjs/version.js +1 -1
  65. package/dist/cjs/video/OffthreadVideo.d.ts +4 -0
  66. package/dist/cjs/video/OffthreadVideo.js +4 -0
  67. package/dist/cjs/video/OffthreadVideoForRendering.js +2 -2
  68. package/dist/cjs/video/Video.d.ts +4 -0
  69. package/dist/cjs/video/Video.js +6 -2
  70. package/dist/cjs/video/VideoForDevelopment.js +2 -2
  71. package/dist/cjs/video/VideoForRendering.js +2 -2
  72. package/dist/cjs/wrap-remotion-context.d.ts +1 -1
  73. package/dist/cjs/wrap-remotion-context.js +3 -3
  74. package/dist/esm/index.mjs +4070 -0
  75. package/dist/esm/version.mjs +4 -0
  76. package/dist/tsconfig-esm.tsbuildinfo +1 -0
  77. package/package.json +11 -9
  78. package/version.js +2 -0
  79. package/.prettierrc.js +0 -14
  80. package/dist/AbsoluteFill.d.ts +0 -6
  81. package/dist/AbsoluteFill.js +0 -28
  82. package/dist/CanUseRemotionHooks.d.ts +0 -5
  83. package/dist/CanUseRemotionHooks.js +0 -10
  84. package/dist/Clipper.d.ts +0 -7
  85. package/dist/Clipper.js +0 -24
  86. package/dist/Composition.d.ts +0 -23
  87. package/dist/Composition.js +0 -113
  88. package/dist/CompositionManager.d.ts +0 -82
  89. package/dist/CompositionManager.js +0 -154
  90. package/dist/Folder.d.ts +0 -15
  91. package/dist/Folder.js +0 -33
  92. package/dist/IFrame.d.ts +0 -2
  93. package/dist/IFrame.js +0 -24
  94. package/dist/Img.d.ts +0 -2
  95. package/dist/Img.js +0 -52
  96. package/dist/NativeLayers.d.ts +0 -13
  97. package/dist/NativeLayers.js +0 -29
  98. package/dist/Null.d.ts +0 -2
  99. package/dist/Null.js +0 -25
  100. package/dist/RemotionRoot.d.ts +0 -5
  101. package/dist/RemotionRoot.js +0 -73
  102. package/dist/Sequence.d.ts +0 -28
  103. package/dist/Sequence.js +0 -131
  104. package/dist/Still.d.ts +0 -2
  105. package/dist/Still.js +0 -9
  106. package/dist/absolute-src.d.ts +0 -1
  107. package/dist/absolute-src.js +0 -7
  108. package/dist/asset-types.d.ts +0 -50
  109. package/dist/asset-types.js +0 -1
  110. package/dist/audio/Audio.d.ts +0 -8
  111. package/dist/audio/Audio.js +0 -52
  112. package/dist/audio/AudioForDevelopment.d.ts +0 -11
  113. package/dist/audio/AudioForDevelopment.js +0 -94
  114. package/dist/audio/AudioForRendering.d.ts +0 -10
  115. package/dist/audio/AudioForRendering.js +0 -111
  116. package/dist/audio/index.d.ts +0 -2
  117. package/dist/audio/index.js +0 -18
  118. package/dist/audio/props.d.ts +0 -12
  119. package/dist/audio/props.js +0 -2
  120. package/dist/audio/shared-audio-tags.d.ts +0 -37
  121. package/dist/audio/shared-audio-tags.js +0 -222
  122. package/dist/audio/use-audio-frame.d.ts +0 -6
  123. package/dist/audio/use-audio-frame.js +0 -23
  124. package/dist/bezier.d.ts +0 -1
  125. package/dist/bezier.js +0 -114
  126. package/dist/cjs/test/Img.test.d.ts +0 -1
  127. package/dist/cjs/test/Img.test.js +0 -25
  128. package/dist/cjs/test/absolute-src.test.d.ts +0 -1
  129. package/dist/cjs/test/absolute-src.test.js +0 -18
  130. package/dist/cjs/test/audio-for-rendering.test.d.ts +0 -1
  131. package/dist/cjs/test/audio-for-rendering.test.js +0 -88
  132. package/dist/cjs/test/audio.test.d.ts +0 -1
  133. package/dist/cjs/test/audio.test.js +0 -76
  134. package/dist/cjs/test/bezier.test.d.ts +0 -1
  135. package/dist/cjs/test/bezier.test.js +0 -52
  136. package/dist/cjs/test/composition-rules.test.d.ts +0 -1
  137. package/dist/cjs/test/composition-rules.test.js +0 -30
  138. package/dist/cjs/test/composition-validation.test.d.ts +0 -1
  139. package/dist/cjs/test/composition-validation.test.js +0 -99
  140. package/dist/cjs/test/easing.test.d.ts +0 -1
  141. package/dist/cjs/test/easing.test.js +0 -191
  142. package/dist/cjs/test/expect-to-throw.d.ts +0 -1
  143. package/dist/cjs/test/expect-to-throw.js +0 -15
  144. package/dist/cjs/test/freeze.test.d.ts +0 -1
  145. package/dist/cjs/test/freeze.test.js +0 -65
  146. package/dist/cjs/test/get-asset-file-name.test.d.ts +0 -1
  147. package/dist/cjs/test/get-asset-file-name.test.js +0 -14
  148. package/dist/cjs/test/get-current-time.test.d.ts +0 -1
  149. package/dist/cjs/test/get-current-time.test.js +0 -74
  150. package/dist/cjs/test/input-props.test.d.ts +0 -1
  151. package/dist/cjs/test/input-props.test.js +0 -31
  152. package/dist/cjs/test/interpolate.test.d.ts +0 -1
  153. package/dist/cjs/test/interpolate.test.js +0 -138
  154. package/dist/cjs/test/interpolateColors.test.d.ts +0 -1
  155. package/dist/cjs/test/interpolateColors.test.js +0 -63
  156. package/dist/cjs/test/loop-validation.test.d.ts +0 -1
  157. package/dist/cjs/test/loop-validation.test.js +0 -93
  158. package/dist/cjs/test/measure-spring.test.d.ts +0 -1
  159. package/dist/cjs/test/measure-spring.test.js +0 -45
  160. package/dist/cjs/test/media-validation.test.d.ts +0 -1
  161. package/dist/cjs/test/media-validation.test.js +0 -47
  162. package/dist/cjs/test/nested-sequences.test.d.ts +0 -1
  163. package/dist/cjs/test/nested-sequences.test.js +0 -132
  164. package/dist/cjs/test/not-all-props-in-media-tags.test.d.ts +0 -1
  165. package/dist/cjs/test/not-all-props-in-media-tags.test.js +0 -33
  166. package/dist/cjs/test/random.test.d.ts +0 -1
  167. package/dist/cjs/test/random.test.js +0 -60
  168. package/dist/cjs/test/ready-manager.test.d.ts +0 -1
  169. package/dist/cjs/test/ready-manager.test.js +0 -29
  170. package/dist/cjs/test/render-hook.d.ts +0 -23
  171. package/dist/cjs/test/render-hook.js +0 -27
  172. package/dist/cjs/test/sequence-from-initial-offset.test.d.ts +0 -4
  173. package/dist/cjs/test/sequence-from-initial-offset.test.js +0 -35
  174. package/dist/cjs/test/sequence-validation.test.d.ts +0 -1
  175. package/dist/cjs/test/sequence-validation.test.js +0 -47
  176. package/dist/cjs/test/series.test.d.ts +0 -1
  177. package/dist/cjs/test/series.test.js +0 -115
  178. package/dist/cjs/test/spring.test.d.ts +0 -1
  179. package/dist/cjs/test/spring.test.js +0 -38
  180. package/dist/cjs/test/truthy.test.d.ts +0 -1
  181. package/dist/cjs/test/truthy.test.js +0 -24
  182. package/dist/cjs/test/use-audio-frame.test.d.ts +0 -1
  183. package/dist/cjs/test/use-audio-frame.test.js +0 -78
  184. package/dist/cjs/test/use-media-in-timeline.test.d.ts +0 -1
  185. package/dist/cjs/test/use-media-in-timeline.test.js +0 -74
  186. package/dist/cjs/test/use-media-tag-volume.test.d.ts +0 -1
  187. package/dist/cjs/test/use-media-tag-volume.test.js +0 -49
  188. package/dist/cjs/test/use-sync-volume-with-media-tag.test.d.ts +0 -1
  189. package/dist/cjs/test/use-sync-volume-with-media-tag.test.js +0 -55
  190. package/dist/cjs/test/validate-start-from-props.test.d.ts +0 -1
  191. package/dist/cjs/test/validate-start-from-props.test.js +0 -39
  192. package/dist/cjs/test/video.test.d.ts +0 -1
  193. package/dist/cjs/test/video.test.js +0 -80
  194. package/dist/cjs/test/volume-prop.test.d.ts +0 -1
  195. package/dist/cjs/test/volume-prop.test.js +0 -95
  196. package/dist/cjs/test/wrap-sequence-context.d.ts +0 -6
  197. package/dist/cjs/test/wrap-sequence-context.js +0 -41
  198. package/dist/config/input-props.d.ts +0 -1
  199. package/dist/config/input-props.js +0 -31
  200. package/dist/config.d.ts +0 -291
  201. package/dist/config.js +0 -21
  202. package/dist/default-css.d.ts +0 -3
  203. package/dist/default-css.js +0 -49
  204. package/dist/delay-render.d.ts +0 -14
  205. package/dist/delay-render.js +0 -77
  206. package/dist/easing.d.ts +0 -19
  207. package/dist/easing.js +0 -77
  208. package/dist/esm/AbsoluteFill.d.ts +0 -6
  209. package/dist/esm/AbsoluteFill.js +0 -25
  210. package/dist/esm/CanUseRemotionHooks.d.ts +0 -5
  211. package/dist/esm/CanUseRemotionHooks.js +0 -6
  212. package/dist/esm/Clipper.d.ts +0 -7
  213. package/dist/esm/Clipper.js +0 -20
  214. package/dist/esm/Composition.d.ts +0 -23
  215. package/dist/esm/Composition.js +0 -108
  216. package/dist/esm/CompositionManager.d.ts +0 -82
  217. package/dist/esm/CompositionManager.js +0 -137
  218. package/dist/esm/Folder.d.ts +0 -15
  219. package/dist/esm/Folder.js +0 -29
  220. package/dist/esm/IFrame.d.ts +0 -2
  221. package/dist/esm/IFrame.js +0 -21
  222. package/dist/esm/Img.d.ts +0 -2
  223. package/dist/esm/Img.js +0 -49
  224. package/dist/esm/NativeLayers.d.ts +0 -13
  225. package/dist/esm/NativeLayers.js +0 -25
  226. package/dist/esm/Null.d.ts +0 -2
  227. package/dist/esm/Null.js +0 -21
  228. package/dist/esm/RemotionRoot.d.ts +0 -5
  229. package/dist/esm/RemotionRoot.js +0 -69
  230. package/dist/esm/Sequence.d.ts +0 -29
  231. package/dist/esm/Sequence.js +0 -128
  232. package/dist/esm/Still.d.ts +0 -3
  233. package/dist/esm/Still.js +0 -5
  234. package/dist/esm/absolute-src.d.ts +0 -1
  235. package/dist/esm/absolute-src.js +0 -3
  236. package/dist/esm/asset-types.d.ts +0 -50
  237. package/dist/esm/asset-types.js +0 -1
  238. package/dist/esm/audio/Audio.d.ts +0 -8
  239. package/dist/esm/audio/Audio.js +0 -49
  240. package/dist/esm/audio/AudioForDevelopment.d.ts +0 -11
  241. package/dist/esm/audio/AudioForDevelopment.js +0 -91
  242. package/dist/esm/audio/AudioForRendering.d.ts +0 -10
  243. package/dist/esm/audio/AudioForRendering.js +0 -108
  244. package/dist/esm/audio/index.d.ts +0 -2
  245. package/dist/esm/audio/index.js +0 -2
  246. package/dist/esm/audio/props.d.ts +0 -12
  247. package/dist/esm/audio/props.js +0 -1
  248. package/dist/esm/audio/shared-audio-tags.d.ts +0 -37
  249. package/dist/esm/audio/shared-audio-tags.js +0 -194
  250. package/dist/esm/audio/use-audio-frame.d.ts +0 -6
  251. package/dist/esm/audio/use-audio-frame.js +0 -18
  252. package/dist/esm/bezier.d.ts +0 -1
  253. package/dist/esm/bezier.js +0 -110
  254. package/dist/esm/cancel-render.d.ts +0 -1
  255. package/dist/esm/cancel-render.js +0 -39
  256. package/dist/esm/config/input-props.d.ts +0 -1
  257. package/dist/esm/config/input-props.js +0 -27
  258. package/dist/esm/config.d.ts +0 -285
  259. package/dist/esm/config.js +0 -17
  260. package/dist/esm/default-css.d.ts +0 -3
  261. package/dist/esm/default-css.js +0 -44
  262. package/dist/esm/delay-render.d.ts +0 -14
  263. package/dist/esm/delay-render.js +0 -72
  264. package/dist/esm/easing.d.ts +0 -19
  265. package/dist/esm/easing.js +0 -73
  266. package/dist/esm/freeze.d.ts +0 -7
  267. package/dist/esm/freeze.js +0 -30
  268. package/dist/esm/get-asset-file-name.d.ts +0 -1
  269. package/dist/esm/get-asset-file-name.js +0 -10
  270. package/dist/esm/get-environment.d.ts +0 -3
  271. package/dist/esm/get-environment.js +0 -29
  272. package/dist/esm/get-preview-dom-element.d.ts +0 -1
  273. package/dist/esm/get-preview-dom-element.js +0 -3
  274. package/dist/esm/get-static-files.d.ts +0 -17
  275. package/dist/esm/get-static-files.js +0 -27
  276. package/dist/esm/get-timeline-clip-name.d.ts +0 -1
  277. package/dist/esm/get-timeline-clip-name.js +0 -21
  278. package/dist/esm/index.d.ts +0 -92
  279. package/dist/esm/index.js +0 -41
  280. package/dist/esm/internals.d.ts +0 -99
  281. package/dist/esm/internals.js +0 -75
  282. package/dist/esm/interpolate-colors.d.ts +0 -5
  283. package/dist/esm/interpolate-colors.js +0 -397
  284. package/dist/esm/interpolate.d.ts +0 -18
  285. package/dist/esm/interpolate.js +0 -119
  286. package/dist/esm/is-approximately-the-same.d.ts +0 -1
  287. package/dist/esm/is-approximately-the-same.js +0 -4
  288. package/dist/esm/is-player.d.ts +0 -3
  289. package/dist/esm/is-player.js +0 -9
  290. package/dist/esm/loading-indicator.d.ts +0 -2
  291. package/dist/esm/loading-indicator.js +0 -31
  292. package/dist/esm/loop/index.d.ts +0 -9
  293. package/dist/esm/loop/index.js +0 -25
  294. package/dist/esm/multiple-versions-warning.d.ts +0 -1
  295. package/dist/esm/multiple-versions-warning.js +0 -28
  296. package/dist/esm/nonce.d.ts +0 -7
  297. package/dist/esm/nonce.js +0 -13
  298. package/dist/esm/play-and-handle-not-allowed-error.d.ts +0 -2
  299. package/dist/esm/play-and-handle-not-allowed-error.js +0 -40
  300. package/dist/esm/portal-node.d.ts +0 -1
  301. package/dist/esm/portal-node.js +0 -19
  302. package/dist/esm/prefetch-state.d.ts +0 -8
  303. package/dist/esm/prefetch-state.js +0 -22
  304. package/dist/esm/prefetch.d.ts +0 -9
  305. package/dist/esm/prefetch.js +0 -103
  306. package/dist/esm/random.d.ts +0 -7
  307. package/dist/esm/random.js +0 -38
  308. package/dist/esm/register-root.d.ts +0 -4
  309. package/dist/esm/register-root.js +0 -27
  310. package/dist/esm/series/flatten-children.d.ts +0 -2
  311. package/dist/esm/series/flatten-children.js +0 -12
  312. package/dist/esm/series/index.d.ts +0 -13
  313. package/dist/esm/series/index.js +0 -57
  314. package/dist/esm/setup-env-variables.d.ts +0 -2
  315. package/dist/esm/setup-env-variables.js +0 -32
  316. package/dist/esm/spring/index.d.ts +0 -27
  317. package/dist/esm/spring/index.js +0 -50
  318. package/dist/esm/spring/measure-spring.d.ts +0 -8
  319. package/dist/esm/spring/measure-spring.js +0 -60
  320. package/dist/esm/spring/spring-utils.d.ts +0 -21
  321. package/dist/esm/spring/spring-utils.js +0 -99
  322. package/dist/esm/static-file.d.ts +0 -5
  323. package/dist/esm/static-file.js +0 -29
  324. package/dist/esm/test/Img.test.d.ts +0 -1
  325. package/dist/esm/test/Img.test.js +0 -20
  326. package/dist/esm/test/absolute-src.test.d.ts +0 -1
  327. package/dist/esm/test/absolute-src.test.js +0 -16
  328. package/dist/esm/test/audio-for-rendering.test.d.ts +0 -1
  329. package/dist/esm/test/audio-for-rendering.test.js +0 -83
  330. package/dist/esm/test/audio.test.d.ts +0 -1
  331. package/dist/esm/test/audio.test.js +0 -51
  332. package/dist/esm/test/bezier.test.d.ts +0 -1
  333. package/dist/esm/test/bezier.test.js +0 -50
  334. package/dist/esm/test/composition-rules.test.d.ts +0 -1
  335. package/dist/esm/test/composition-rules.test.js +0 -28
  336. package/dist/esm/test/composition-validation.test.d.ts +0 -1
  337. package/dist/esm/test/composition-validation.test.js +0 -97
  338. package/dist/esm/test/easing.test.d.ts +0 -1
  339. package/dist/esm/test/easing.test.js +0 -189
  340. package/dist/esm/test/expect-to-throw.d.ts +0 -1
  341. package/dist/esm/test/expect-to-throw.js +0 -11
  342. package/dist/esm/test/freeze.test.d.ts +0 -1
  343. package/dist/esm/test/freeze.test.js +0 -63
  344. package/dist/esm/test/get-asset-file-name.test.d.ts +0 -1
  345. package/dist/esm/test/get-asset-file-name.test.js +0 -12
  346. package/dist/esm/test/get-current-time.test.d.ts +0 -1
  347. package/dist/esm/test/get-current-time.test.js +0 -72
  348. package/dist/esm/test/input-props.test.d.ts +0 -1
  349. package/dist/esm/test/input-props.test.js +0 -29
  350. package/dist/esm/test/interpolate.test.d.ts +0 -1
  351. package/dist/esm/test/interpolate.test.js +0 -136
  352. package/dist/esm/test/interpolateColors.test.d.ts +0 -1
  353. package/dist/esm/test/interpolateColors.test.js +0 -61
  354. package/dist/esm/test/loop-validation.test.d.ts +0 -1
  355. package/dist/esm/test/loop-validation.test.js +0 -68
  356. package/dist/esm/test/measure-spring.test.d.ts +0 -1
  357. package/dist/esm/test/measure-spring.test.js +0 -43
  358. package/dist/esm/test/media-validation.test.d.ts +0 -1
  359. package/dist/esm/test/media-validation.test.js +0 -45
  360. package/dist/esm/test/nested-sequences.test.d.ts +0 -1
  361. package/dist/esm/test/nested-sequences.test.js +0 -130
  362. package/dist/esm/test/not-all-props-in-media-tags.test.d.ts +0 -1
  363. package/dist/esm/test/not-all-props-in-media-tags.test.js +0 -28
  364. package/dist/esm/test/random.test.d.ts +0 -1
  365. package/dist/esm/test/random.test.js +0 -58
  366. package/dist/esm/test/ready-manager.test.d.ts +0 -1
  367. package/dist/esm/test/ready-manager.test.js +0 -27
  368. package/dist/esm/test/render-hook.d.ts +0 -23
  369. package/dist/esm/test/render-hook.js +0 -20
  370. package/dist/esm/test/sequence-from-initial-offset.test.d.ts +0 -4
  371. package/dist/esm/test/sequence-from-initial-offset.test.js +0 -33
  372. package/dist/esm/test/sequence-validation.test.d.ts +0 -1
  373. package/dist/esm/test/sequence-validation.test.js +0 -45
  374. package/dist/esm/test/series.test.d.ts +0 -1
  375. package/dist/esm/test/series.test.js +0 -113
  376. package/dist/esm/test/spring.test.d.ts +0 -1
  377. package/dist/esm/test/spring.test.js +0 -36
  378. package/dist/esm/test/truthy.test.d.ts +0 -1
  379. package/dist/esm/test/truthy.test.js +0 -22
  380. package/dist/esm/test/use-audio-frame.test.d.ts +0 -1
  381. package/dist/esm/test/use-audio-frame.test.js +0 -53
  382. package/dist/esm/test/use-media-in-timeline.test.d.ts +0 -1
  383. package/dist/esm/test/use-media-in-timeline.test.js +0 -49
  384. package/dist/esm/test/use-media-tag-volume.test.d.ts +0 -1
  385. package/dist/esm/test/use-media-tag-volume.test.js +0 -44
  386. package/dist/esm/test/use-sync-volume-with-media-tag.test.d.ts +0 -1
  387. package/dist/esm/test/use-sync-volume-with-media-tag.test.js +0 -53
  388. package/dist/esm/test/validate-start-from-props.test.d.ts +0 -1
  389. package/dist/esm/test/validate-start-from-props.test.js +0 -37
  390. package/dist/esm/test/video.test.d.ts +0 -1
  391. package/dist/esm/test/video.test.js +0 -55
  392. package/dist/esm/test/volume-prop.test.d.ts +0 -1
  393. package/dist/esm/test/volume-prop.test.js +0 -93
  394. package/dist/esm/test/wrap-sequence-context.d.ts +0 -6
  395. package/dist/esm/test/wrap-sequence-context.js +0 -37
  396. package/dist/esm/timeline-position-state.d.ts +0 -29
  397. package/dist/esm/timeline-position-state.js +0 -35
  398. package/dist/esm/truthy.d.ts +0 -3
  399. package/dist/esm/truthy.js +0 -3
  400. package/dist/esm/use-current-frame.d.ts +0 -6
  401. package/dist/esm/use-current-frame.js +0 -24
  402. package/dist/esm/use-lazy-component.d.ts +0 -7
  403. package/dist/esm/use-lazy-component.js +0 -22
  404. package/dist/esm/use-media-in-timeline.d.ts +0 -10
  405. package/dist/esm/use-media-in-timeline.js +0 -125
  406. package/dist/esm/use-media-playback.d.ts +0 -10
  407. package/dist/esm/use-media-playback.js +0 -73
  408. package/dist/esm/use-media-tag-volume.d.ts +0 -2
  409. package/dist/esm/use-media-tag-volume.js +0 -27
  410. package/dist/esm/use-sync-volume-with-media-tag.d.ts +0 -10
  411. package/dist/esm/use-sync-volume-with-media-tag.js +0 -17
  412. package/dist/esm/use-unsafe-video-config.d.ts +0 -2
  413. package/dist/esm/use-unsafe-video-config.js +0 -23
  414. package/dist/esm/use-video-config.d.ts +0 -7
  415. package/dist/esm/use-video-config.js +0 -25
  416. package/dist/esm/use-video.d.ts +0 -13
  417. package/dist/esm/use-video.js +0 -24
  418. package/dist/esm/validate-frame.d.ts +0 -1
  419. package/dist/esm/validate-frame.js +0 -20
  420. package/dist/esm/validate-media-props.d.ts +0 -4
  421. package/dist/esm/validate-media-props.js +0 -20
  422. package/dist/esm/validate-start-from-props.d.ts +0 -1
  423. package/dist/esm/validate-start-from-props.js +0 -27
  424. package/dist/esm/validation/validate-composition-id.d.ts +0 -3
  425. package/dist/esm/validation/validate-composition-id.js +0 -8
  426. package/dist/esm/validation/validate-dimensions.d.ts +0 -1
  427. package/dist/esm/validation/validate-dimensions.js +0 -17
  428. package/dist/esm/validation/validate-duration-in-frames.d.ts +0 -1
  429. package/dist/esm/validation/validate-duration-in-frames.js +0 -11
  430. package/dist/esm/validation/validate-folder-name.d.ts +0 -3
  431. package/dist/esm/validation/validate-folder-name.js +0 -14
  432. package/dist/esm/validation/validate-fps.d.ts +0 -1
  433. package/dist/esm/validation/validate-fps.js +0 -17
  434. package/dist/esm/validation/validate-offthreadvideo-image-format.d.ts +0 -1
  435. package/dist/esm/validation/validate-offthreadvideo-image-format.js +0 -11
  436. package/dist/esm/validation/validation-spring-duration.d.ts +0 -1
  437. package/dist/esm/validation/validation-spring-duration.js +0 -17
  438. package/dist/esm/version.d.ts +0 -1
  439. package/dist/esm/version.js +0 -2
  440. package/dist/esm/video/OffthreadVideo.d.ts +0 -3
  441. package/dist/esm/video/OffthreadVideo.js +0 -29
  442. package/dist/esm/video/OffthreadVideoForRendering.d.ts +0 -3
  443. package/dist/esm/video/OffthreadVideoForRendering.js +0 -100
  444. package/dist/esm/video/Video.d.ts +0 -8
  445. package/dist/esm/video/Video.js +0 -47
  446. package/dist/esm/video/VideoForDevelopment.d.ts +0 -11
  447. package/dist/esm/video/VideoForDevelopment.js +0 -110
  448. package/dist/esm/video/VideoForRendering.d.ts +0 -10
  449. package/dist/esm/video/VideoForRendering.js +0 -200
  450. package/dist/esm/video/duration-state.d.ts +0 -17
  451. package/dist/esm/video/duration-state.js +0 -29
  452. package/dist/esm/video/get-current-time.d.ts +0 -13
  453. package/dist/esm/video/get-current-time.js +0 -26
  454. package/dist/esm/video/index.d.ts +0 -3
  455. package/dist/esm/video/index.js +0 -2
  456. package/dist/esm/video/props.d.ts +0 -25
  457. package/dist/esm/video/props.js +0 -1
  458. package/dist/esm/video/video-fragment.d.ts +0 -12
  459. package/dist/esm/video/video-fragment.js +0 -55
  460. package/dist/esm/video-config.d.ts +0 -8
  461. package/dist/esm/video-config.js +0 -1
  462. package/dist/esm/volume-position-state.d.ts +0 -19
  463. package/dist/esm/volume-position-state.js +0 -27
  464. package/dist/esm/volume-prop.d.ts +0 -7
  465. package/dist/esm/volume-prop.js +0 -20
  466. package/dist/esm/warn-about-non-seekable-media.d.ts +0 -1
  467. package/dist/esm/warn-about-non-seekable-media.js +0 -30
  468. package/dist/esm/wrap-remotion-context.d.ts +0 -18
  469. package/dist/esm/wrap-remotion-context.js +0 -45
  470. package/dist/freeze.d.ts +0 -7
  471. package/dist/freeze.js +0 -34
  472. package/dist/get-asset-file-name.d.ts +0 -1
  473. package/dist/get-asset-file-name.js +0 -14
  474. package/dist/get-environment.d.ts +0 -3
  475. package/dist/get-environment.js +0 -34
  476. package/dist/get-preview-dom-element.d.ts +0 -1
  477. package/dist/get-preview-dom-element.js +0 -7
  478. package/dist/get-static-files.d.ts +0 -17
  479. package/dist/get-static-files.js +0 -31
  480. package/dist/get-timeline-clip-name.d.ts +0 -1
  481. package/dist/get-timeline-clip-name.js +0 -25
  482. package/dist/index.d.ts +0 -89
  483. package/dist/index.js +0 -69
  484. package/dist/internals.d.ts +0 -100
  485. package/dist/internals.js +0 -99
  486. package/dist/interpolate-colors.d.ts +0 -5
  487. package/dist/interpolate-colors.js +0 -401
  488. package/dist/interpolate.d.ts +0 -18
  489. package/dist/interpolate.js +0 -123
  490. package/dist/is-approximately-the-same.d.ts +0 -1
  491. package/dist/is-approximately-the-same.js +0 -8
  492. package/dist/is-player.d.ts +0 -3
  493. package/dist/is-player.js +0 -14
  494. package/dist/loading-indicator.d.ts +0 -2
  495. package/dist/loading-indicator.js +0 -35
  496. package/dist/loop/index.d.ts +0 -9
  497. package/dist/loop/index.js +0 -29
  498. package/dist/multiple-versions-warning.d.ts +0 -1
  499. package/dist/multiple-versions-warning.js +0 -32
  500. package/dist/nonce.d.ts +0 -7
  501. package/dist/nonce.js +0 -17
  502. package/dist/play-and-handle-not-allowed-error.d.ts +0 -2
  503. package/dist/play-and-handle-not-allowed-error.js +0 -44
  504. package/dist/portal-node.d.ts +0 -1
  505. package/dist/portal-node.js +0 -23
  506. package/dist/prefetch-state.d.ts +0 -8
  507. package/dist/prefetch-state.js +0 -27
  508. package/dist/prefetch.d.ts +0 -9
  509. package/dist/prefetch.js +0 -108
  510. package/dist/random.d.ts +0 -7
  511. package/dist/random.js +0 -41
  512. package/dist/register-root.d.ts +0 -4
  513. package/dist/register-root.js +0 -33
  514. package/dist/series/flatten-children.d.ts +0 -2
  515. package/dist/series/flatten-children.js +0 -19
  516. package/dist/series/index.d.ts +0 -13
  517. package/dist/series/index.js +0 -57
  518. package/dist/setup-env-variables.d.ts +0 -2
  519. package/dist/setup-env-variables.js +0 -36
  520. package/dist/spring/index.d.ts +0 -27
  521. package/dist/spring/index.js +0 -51
  522. package/dist/spring/measure-spring.d.ts +0 -8
  523. package/dist/spring/measure-spring.js +0 -64
  524. package/dist/spring/spring-utils.d.ts +0 -21
  525. package/dist/spring/spring-utils.js +0 -103
  526. package/dist/static-file.d.ts +0 -5
  527. package/dist/static-file.js +0 -33
  528. package/dist/timeline-position-state.d.ts +0 -29
  529. package/dist/timeline-position-state.js +0 -41
  530. package/dist/truthy.d.ts +0 -3
  531. package/dist/truthy.js +0 -7
  532. package/dist/tsconfig-cjs.tsbuildinfo +0 -1
  533. package/dist/use-current-frame.d.ts +0 -6
  534. package/dist/use-current-frame.js +0 -28
  535. package/dist/use-lazy-component.d.ts +0 -7
  536. package/dist/use-lazy-component.js +0 -49
  537. package/dist/use-media-in-timeline.d.ts +0 -10
  538. package/dist/use-media-in-timeline.js +0 -129
  539. package/dist/use-media-playback.d.ts +0 -10
  540. package/dist/use-media-playback.js +0 -77
  541. package/dist/use-media-tag-volume.d.ts +0 -2
  542. package/dist/use-media-tag-volume.js +0 -31
  543. package/dist/use-sync-volume-with-media-tag.d.ts +0 -10
  544. package/dist/use-sync-volume-with-media-tag.js +0 -21
  545. package/dist/use-unsafe-video-config.d.ts +0 -2
  546. package/dist/use-unsafe-video-config.js +0 -27
  547. package/dist/use-video-config.d.ts +0 -7
  548. package/dist/use-video-config.js +0 -29
  549. package/dist/use-video.d.ts +0 -12
  550. package/dist/use-video.js +0 -28
  551. package/dist/validate-media-props.d.ts +0 -4
  552. package/dist/validate-media-props.js +0 -24
  553. package/dist/validate-start-from-props.d.ts +0 -1
  554. package/dist/validate-start-from-props.js +0 -31
  555. package/dist/validation/validate-composition-id.d.ts +0 -3
  556. package/dist/validation/validate-composition-id.js +0 -13
  557. package/dist/validation/validate-dimensions.d.ts +0 -1
  558. package/dist/validation/validate-dimensions.js +0 -21
  559. package/dist/validation/validate-duration-in-frames.d.ts +0 -1
  560. package/dist/validation/validate-duration-in-frames.js +0 -15
  561. package/dist/validation/validate-folder-name.d.ts +0 -3
  562. package/dist/validation/validate-folder-name.js +0 -19
  563. package/dist/validation/validate-fps.d.ts +0 -1
  564. package/dist/validation/validate-fps.js +0 -21
  565. package/dist/validation/validate-offthreadvideo-image-format.d.ts +0 -1
  566. package/dist/validation/validate-offthreadvideo-image-format.js +0 -15
  567. package/dist/validation/validation-spring-duration.d.ts +0 -1
  568. package/dist/validation/validation-spring-duration.js +0 -21
  569. package/dist/version.d.ts +0 -1
  570. package/dist/version.js +0 -5
  571. package/dist/video/OffthreadVideo.d.ts +0 -3
  572. package/dist/video/OffthreadVideo.js +0 -33
  573. package/dist/video/OffthreadVideoForRendering.d.ts +0 -3
  574. package/dist/video/OffthreadVideoForRendering.js +0 -104
  575. package/dist/video/Video.d.ts +0 -8
  576. package/dist/video/Video.js +0 -50
  577. package/dist/video/VideoForDevelopment.d.ts +0 -11
  578. package/dist/video/VideoForDevelopment.js +0 -113
  579. package/dist/video/VideoForRendering.d.ts +0 -10
  580. package/dist/video/VideoForRendering.js +0 -203
  581. package/dist/video/duration-state.d.ts +0 -17
  582. package/dist/video/duration-state.js +0 -34
  583. package/dist/video/get-current-time.d.ts +0 -13
  584. package/dist/video/get-current-time.js +0 -31
  585. package/dist/video/index.d.ts +0 -3
  586. package/dist/video/index.js +0 -7
  587. package/dist/video/props.d.ts +0 -25
  588. package/dist/video/props.js +0 -2
  589. package/dist/video/video-fragment.d.ts +0 -12
  590. package/dist/video/video-fragment.js +0 -60
  591. package/dist/video-config.d.ts +0 -8
  592. package/dist/video-config.js +0 -2
  593. package/dist/volume-position-state.d.ts +0 -19
  594. package/dist/volume-position-state.js +0 -32
  595. package/dist/volume-prop.d.ts +0 -7
  596. package/dist/volume-prop.js +0 -24
  597. package/dist/warn-about-non-seekable-media.d.ts +0 -1
  598. package/dist/warn-about-non-seekable-media.js +0 -34
  599. package/dist/wrap-remotion-context.d.ts +0 -18
  600. package/dist/wrap-remotion-context.js +0 -73
  601. package/tsconfig-cjs.json +0 -11
  602. /package/{tsconfig.json → tsconfig-esm.json} +0 -0
@@ -1,50 +0,0 @@
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';
@@ -1 +0,0 @@
1
- "use strict";
@@ -1,8 +0,0 @@
1
- import React from 'react';
2
- import type { RemotionMainAudioProps } from './props';
3
- export declare const Audio: React.ForwardRefExoticComponent<Pick<Omit<React.DetailedHTMLProps<React.AudioHTMLAttributes<HTMLAudioElement>, HTMLAudioElement>, "autoPlay" | "controls" | "onEnded" | "nonce" | "onResize" | "onResizeCapture"> & {
4
- volume?: import("../volume-prop").VolumeProp | undefined;
5
- playbackRate?: number | undefined;
6
- acceptableTimeShiftInSeconds?: number | undefined;
7
- allowAmplificationDuringRender?: boolean | undefined;
8
- } & RemotionMainAudioProps, "id" | "children" | "slot" | "style" | "title" | "key" | "controlsList" | "crossOrigin" | "loop" | "mediaGroup" | "muted" | "playsInline" | "preload" | "src" | "defaultChecked" | "defaultValue" | "suppressContentEditableWarning" | "suppressHydrationWarning" | "accessKey" | "className" | "contentEditable" | "contextMenu" | "dir" | "draggable" | "hidden" | "lang" | "placeholder" | "spellCheck" | "tabIndex" | "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" | "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" | "volume" | "playbackRate" | "acceptableTimeShiftInSeconds" | "allowAmplificationDuringRender" | keyof RemotionMainAudioProps> & React.RefAttributes<HTMLAudioElement>>;
@@ -1,52 +0,0 @@
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_1 = require("../get-environment");
7
- const loop_1 = require("../loop");
8
- const Sequence_1 = require("../Sequence");
9
- const use_video_config_1 = require("../use-video-config");
10
- const validate_media_props_1 = require("../validate-media-props");
11
- const validate_start_from_props_1 = require("../validate-start-from-props");
12
- const duration_state_1 = require("../video/duration-state");
13
- const AudioForDevelopment_1 = require("./AudioForDevelopment");
14
- const AudioForRendering_1 = require("./AudioForRendering");
15
- const shared_audio_tags_1 = require("./shared-audio-tags");
16
- const AudioRefForwardingFunction = (props, ref) => {
17
- var _a;
18
- const audioContext = (0, react_1.useContext)(shared_audio_tags_1.SharedAudioContext);
19
- const { startFrom, endAt, ...otherProps } = props;
20
- const { loop, ...propsOtherThanLoop } = props;
21
- const { fps } = (0, use_video_config_1.useVideoConfig)();
22
- const environment = (0, get_environment_1.useRemotionEnvironment)();
23
- const { durations, setDurations } = (0, react_1.useContext)(duration_state_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_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_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_1.validateMediaProps)(props, 'Audio');
47
- if (environment === 'rendering') {
48
- return ((0, jsx_runtime_1.jsx)(AudioForRendering_1.AudioForRendering, { onDuration: onDuration, ...props, ref: ref, onError: onError }));
49
- }
50
- return ((0, jsx_runtime_1.jsx)(AudioForDevelopment_1.AudioForDevelopment, { shouldPreMountAudioTags: audioContext !== null && audioContext.numberOfAudioTags > 0, ...props, ref: ref, onError: onError, onDuration: onDuration }));
51
- };
52
- exports.Audio = (0, react_1.forwardRef)(AudioRefForwardingFunction);
@@ -1,11 +0,0 @@
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>, "autoPlay" | "controls" | "onEnded" | "nonce" | "onResize" | "onResizeCapture"> & {
4
- volume?: import("../volume-prop").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>>;
@@ -1,94 +0,0 @@
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_1 = require("../prefetch");
7
- const random_1 = require("../random");
8
- const Sequence_1 = require("../Sequence");
9
- const use_media_in_timeline_1 = require("../use-media-in-timeline");
10
- const use_media_playback_1 = require("../use-media-playback");
11
- const use_media_tag_volume_1 = require("../use-media-tag-volume");
12
- const use_sync_volume_with_media_tag_1 = require("../use-sync-volume-with-media-tag");
13
- const volume_position_state_1 = require("../volume-position-state");
14
- const shared_audio_tags_1 = require("./shared-audio-tags");
15
- const use_audio_frame_1 = require("./use-audio-frame");
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_1.useMediaVolumeState)();
22
- const [mediaMuted] = (0, volume_position_state_1.useMediaMutedState)();
23
- const volumePropFrame = (0, use_audio_frame_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_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_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_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_1.useSharedAudio)(propsToPass, id).el;
41
- const actualVolume = (0, use_media_tag_volume_1.useMediaTagVolume)(audioRef);
42
- (0, use_sync_volume_with_media_tag_1.useSyncVolumeWithMediaTag)({
43
- volumePropFrame,
44
- actualVolume,
45
- volume,
46
- mediaVolume,
47
- mediaRef: audioRef,
48
- });
49
- (0, use_media_in_timeline_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_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_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);
@@ -1,10 +0,0 @@
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>, "autoPlay" | "controls" | "onEnded" | "nonce" | "onResize" | "onResizeCapture"> & {
4
- volume?: import("../volume-prop").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>>;
@@ -1,111 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.AudioForRendering = void 0;
4
- const jsx_runtime_1 = require("react/jsx-runtime");
5
- const react_1 = require("react");
6
- const absolute_src_1 = require("../absolute-src");
7
- const CompositionManager_1 = require("../CompositionManager");
8
- const delay_render_1 = require("../delay-render");
9
- const get_environment_1 = require("../get-environment");
10
- const random_1 = require("../random");
11
- const Sequence_1 = require("../Sequence");
12
- const timeline_position_state_1 = require("../timeline-position-state");
13
- const use_current_frame_1 = require("../use-current-frame");
14
- const volume_prop_1 = require("../volume-prop");
15
- const use_audio_frame_1 = require("./use-audio-frame");
16
- const AudioForRenderingRefForwardingFunction = (props, ref) => {
17
- const audioRef = (0, react_1.useRef)(null);
18
- const absoluteFrame = (0, timeline_position_state_1.useTimelinePosition)();
19
- const volumePropFrame = (0, use_audio_frame_1.useFrameForVolumeProp)();
20
- const frame = (0, use_current_frame_1.useCurrentFrame)();
21
- const sequenceContext = (0, react_1.useContext)(Sequence_1.SequenceContext);
22
- const { registerAsset, unregisterAsset } = (0, react_1.useContext)(CompositionManager_1.CompositionManager);
23
- const environment = (0, get_environment_1.useRemotionEnvironment)();
24
- // Generate a string that's as unique as possible for this asset
25
- // but at the same time the same on all threads
26
- const id = (0, react_1.useMemo)(() => {
27
- var _a;
28
- return `audio-${(0, random_1.random)((_a = props.src) !== null && _a !== void 0 ? _a : '')}-${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}`;
29
- }, [props.src, sequenceContext]);
30
- const { volume: volumeProp, playbackRate, allowAmplificationDuringRender, onDuration, ...nativeProps } = props;
31
- const volume = (0, volume_prop_1.evaluateVolume)({
32
- volume: volumeProp,
33
- frame: volumePropFrame,
34
- mediaVolume: 1,
35
- allowAmplificationDuringRender: allowAmplificationDuringRender !== null && allowAmplificationDuringRender !== void 0 ? allowAmplificationDuringRender : false,
36
- });
37
- (0, react_1.useImperativeHandle)(ref, () => {
38
- return audioRef.current;
39
- }, []);
40
- (0, react_1.useEffect)(() => {
41
- var _a;
42
- if (!props.src) {
43
- throw new Error('No src passed');
44
- }
45
- if (!window.remotion_audioEnabled) {
46
- return;
47
- }
48
- if (props.muted) {
49
- return;
50
- }
51
- if (volume <= 0) {
52
- return;
53
- }
54
- registerAsset({
55
- type: 'audio',
56
- src: (0, absolute_src_1.getAbsoluteSrc)(props.src),
57
- id,
58
- frame: absoluteFrame,
59
- volume,
60
- mediaFrame: frame,
61
- playbackRate: (_a = props.playbackRate) !== null && _a !== void 0 ? _a : 1,
62
- allowAmplificationDuringRender: allowAmplificationDuringRender !== null && allowAmplificationDuringRender !== void 0 ? allowAmplificationDuringRender : false,
63
- });
64
- return () => unregisterAsset(id);
65
- }, [
66
- props.muted,
67
- props.src,
68
- registerAsset,
69
- absoluteFrame,
70
- id,
71
- unregisterAsset,
72
- volume,
73
- volumePropFrame,
74
- frame,
75
- playbackRate,
76
- props.playbackRate,
77
- allowAmplificationDuringRender,
78
- ]);
79
- const { src } = props;
80
- // If audio source switches, make new handle
81
- if (environment === 'rendering') {
82
- // eslint-disable-next-line react-hooks/rules-of-hooks
83
- (0, react_1.useLayoutEffect)(() => {
84
- if (process.env.NODE_ENV === 'test') {
85
- return;
86
- }
87
- const newHandle = (0, delay_render_1.delayRender)('Loading <Audio> duration with src=' + src);
88
- const { current } = audioRef;
89
- const didLoad = () => {
90
- if (current === null || current === void 0 ? void 0 : current.duration) {
91
- onDuration(src, current.duration);
92
- }
93
- (0, delay_render_1.continueRender)(newHandle);
94
- };
95
- if (current === null || current === void 0 ? void 0 : current.duration) {
96
- onDuration(src, current.duration);
97
- (0, delay_render_1.continueRender)(newHandle);
98
- }
99
- else {
100
- current === null || current === void 0 ? void 0 : current.addEventListener('loadedmetadata', didLoad, { once: true });
101
- }
102
- // If tag gets unmounted, clear pending handles because video metadata is not going to load
103
- return () => {
104
- current === null || current === void 0 ? void 0 : current.removeEventListener('loadedmetadata', didLoad);
105
- (0, delay_render_1.continueRender)(newHandle);
106
- };
107
- }, [src, onDuration]);
108
- }
109
- return (0, jsx_runtime_1.jsx)("audio", { ref: audioRef, ...nativeProps });
110
- };
111
- exports.AudioForRendering = (0, react_1.forwardRef)(AudioForRenderingRefForwardingFunction);
@@ -1,2 +0,0 @@
1
- export * from './Audio';
2
- export * from './props';
@@ -1,18 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
- Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./Audio"), exports);
18
- __exportStar(require("./props"), exports);
@@ -1,12 +0,0 @@
1
- /// <reference types="react" />
2
- import type { VolumeProp } from '../volume-prop';
3
- export declare type RemotionMainAudioProps = {
4
- startFrom?: number;
5
- endAt?: number;
6
- };
7
- export declare type RemotionAudioProps = Omit<React.DetailedHTMLProps<React.AudioHTMLAttributes<HTMLAudioElement>, HTMLAudioElement>, 'autoPlay' | 'controls' | 'onEnded' | 'nonce' | 'onResize' | 'onResizeCapture'> & {
8
- volume?: VolumeProp;
9
- playbackRate?: number;
10
- acceptableTimeShiftInSeconds?: number;
11
- allowAmplificationDuringRender?: boolean;
12
- };
@@ -1,2 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,37 +0,0 @@
1
- import React from 'react';
2
- import type { RemotionAudioProps } from './props';
3
- /**
4
- * This functionality of Remotion will keep a certain amount
5
- * of <audio> tags pre-mounted and by default filled with an empty audio track.
6
- * If the user interacts, the empty audio will be played.
7
- * If one of Remotions <Audio /> tags get mounted, the audio will not be rendered at this location, but into one of the prerendered audio tags.
8
- *
9
- * This helps with autoplay issues on iOS Safari and soon other browsers,
10
- * which only allow audio playback upon user interaction.
11
- *
12
- * The behavior can be disabled by passing `0` as the number of shared audio tracks.
13
- */
14
- declare type AudioElem = {
15
- id: number;
16
- props: RemotionAudioProps;
17
- el: React.RefObject<HTMLAudioElement>;
18
- audioId: string;
19
- };
20
- declare type SharedContext = {
21
- registerAudio: (aud: RemotionAudioProps, audioId: string) => AudioElem;
22
- unregisterAudio: (id: number) => void;
23
- updateAudio: (options: {
24
- id: number;
25
- aud: RemotionAudioProps;
26
- audioId: string;
27
- }) => void;
28
- playAllAudios: () => void;
29
- numberOfAudioTags: number;
30
- };
31
- export declare const SharedAudioContext: React.Context<SharedContext | null>;
32
- export declare const SharedAudioContextProvider: React.FC<{
33
- numberOfAudioTags: number;
34
- children: React.ReactNode;
35
- }>;
36
- export declare const useSharedAudio: (aud: RemotionAudioProps, audioId: string) => AudioElem;
37
- export {};
@@ -1,222 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.useSharedAudio = exports.SharedAudioContextProvider = exports.SharedAudioContext = void 0;
27
- const jsx_runtime_1 = require("react/jsx-runtime");
28
- const react_1 = __importStar(require("react"));
29
- const EMPTY_AUDIO = 'data:audio/mp3;base64,/+MYxAAJcAV8AAgAABn//////+/gQ5BAMA+D4Pg+BAQBAEAwD4Pg+D4EBAEAQDAPg++hYBH///hUFQVBUFREDQNHmf///////+MYxBUGkAGIMAAAAP/29Xt6lUxBTUUzLjEwMFVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV/+MYxDUAAANIAAAAAFVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV';
30
- const compareProps = (obj1, obj2) => {
31
- const keysA = Object.keys(obj1).sort();
32
- const keysB = Object.keys(obj2).sort();
33
- if (keysA.length !== keysB.length) {
34
- return false;
35
- }
36
- for (let i = 0; i < keysA.length; i++) {
37
- // Not the same keys
38
- if (keysA[i] !== keysB[i]) {
39
- return false;
40
- }
41
- // Not the same values
42
- if (obj1[keysA[i]] !== obj2[keysB[i]]) {
43
- return false;
44
- }
45
- }
46
- return true;
47
- };
48
- const didPropChange = (key, newProp, prevProp) => {
49
- // /music.mp3 and http://localhost:3000/music.mp3 are the same
50
- if (key === 'src' &&
51
- !prevProp.startsWith('data:') &&
52
- !newProp.startsWith('data:')) {
53
- return (new URL(prevProp, window.location.origin).toString() !==
54
- new URL(newProp, window.location.origin).toString());
55
- }
56
- if (prevProp === newProp) {
57
- return false;
58
- }
59
- return true;
60
- };
61
- exports.SharedAudioContext = (0, react_1.createContext)(null);
62
- const SharedAudioContextProvider = ({ children, numberOfAudioTags }) => {
63
- const audios = (0, react_1.useRef)([]);
64
- const [initialNumberOfAudioTags] = (0, react_1.useState)(numberOfAudioTags);
65
- if (numberOfAudioTags !== initialNumberOfAudioTags) {
66
- throw new Error('The number of shared audio tags has changed dynamically. Once you have set this property, you cannot change it afterwards.');
67
- }
68
- const refs = (0, react_1.useMemo)(() => {
69
- return new Array(numberOfAudioTags).fill(true).map(() => {
70
- return { id: Math.random(), ref: (0, react_1.createRef)() };
71
- });
72
- }, [numberOfAudioTags]);
73
- const takenAudios = (0, react_1.useRef)(new Array(numberOfAudioTags).fill(false));
74
- const rerenderAudios = (0, react_1.useCallback)(() => {
75
- refs.forEach(({ ref, id }) => {
76
- var _a;
77
- const data = (_a = audios.current) === null || _a === void 0 ? void 0 : _a.find((a) => a.id === id);
78
- const { current } = ref;
79
- if (!current) {
80
- // Whole player has been unmounted, the refs don't exist anymore.
81
- // It is not an error anymore though
82
- return;
83
- }
84
- if (data === undefined) {
85
- current.src = EMPTY_AUDIO;
86
- return;
87
- }
88
- if (!data) {
89
- throw new TypeError('Expected audio data to be there');
90
- }
91
- Object.keys(data.props).forEach((key) => {
92
- // @ts-expect-error
93
- if (didPropChange(key, data.props[key], current[key])) {
94
- // @ts-expect-error
95
- current[key] = data.props[key];
96
- }
97
- });
98
- });
99
- }, [refs]);
100
- const registerAudio = (0, react_1.useCallback)((aud, audioId) => {
101
- var _a, _b;
102
- const found = (_a = audios.current) === null || _a === void 0 ? void 0 : _a.find((a) => a.audioId === audioId);
103
- if (found) {
104
- return found;
105
- }
106
- const firstFreeAudio = takenAudios.current.findIndex((a) => a === false);
107
- if (firstFreeAudio === -1) {
108
- throw new Error(`Tried to simultaneously mount ${numberOfAudioTags + 1} <Audio /> tags at the same time. With the current settings, the maximum amount of <Audio /> tags is limited to ${numberOfAudioTags} at the same time. Remotion pre-mounts silent audio tags to help avoid browser autoplay restrictions. See https://remotion.dev/docs/player/autoplay#use-the-numberofsharedaudiotags-property for more information on how to increase this limit.`);
109
- }
110
- const { id, ref } = refs[firstFreeAudio];
111
- const cloned = [...takenAudios.current];
112
- cloned[firstFreeAudio] = id;
113
- takenAudios.current = cloned;
114
- const newElem = {
115
- props: aud,
116
- id,
117
- el: ref,
118
- audioId,
119
- };
120
- (_b = audios.current) === null || _b === void 0 ? void 0 : _b.push(newElem);
121
- rerenderAudios();
122
- return newElem;
123
- }, [numberOfAudioTags, refs, rerenderAudios]);
124
- const unregisterAudio = (0, react_1.useCallback)((id) => {
125
- var _a;
126
- const cloned = [...takenAudios.current];
127
- const index = refs.findIndex((r) => r.id === id);
128
- if (index === -1) {
129
- throw new TypeError('Error occured in ');
130
- }
131
- cloned[index] = false;
132
- takenAudios.current = cloned;
133
- audios.current = (_a = audios.current) === null || _a === void 0 ? void 0 : _a.filter((a) => a.id !== id);
134
- rerenderAudios();
135
- }, [refs, rerenderAudios]);
136
- const updateAudio = (0, react_1.useCallback)(({ aud, audioId, id, }) => {
137
- var _a;
138
- let changed = false;
139
- audios.current = (_a = audios.current) === null || _a === void 0 ? void 0 : _a.map((prevA) => {
140
- if (prevA.id === id) {
141
- const isTheSame = compareProps(aud, prevA.props);
142
- if (isTheSame) {
143
- return prevA;
144
- }
145
- changed = true;
146
- return {
147
- ...prevA,
148
- props: aud,
149
- audioId,
150
- };
151
- }
152
- return prevA;
153
- });
154
- if (changed) {
155
- rerenderAudios();
156
- }
157
- }, [rerenderAudios]);
158
- const playAllAudios = (0, react_1.useCallback)(() => {
159
- refs.forEach((ref) => {
160
- var _a;
161
- (_a = ref.ref.current) === null || _a === void 0 ? void 0 : _a.play();
162
- });
163
- }, [refs]);
164
- const value = (0, react_1.useMemo)(() => {
165
- return {
166
- registerAudio,
167
- unregisterAudio,
168
- updateAudio,
169
- playAllAudios,
170
- numberOfAudioTags,
171
- };
172
- }, [
173
- numberOfAudioTags,
174
- playAllAudios,
175
- registerAudio,
176
- unregisterAudio,
177
- updateAudio,
178
- ]);
179
- return ((0, jsx_runtime_1.jsxs)(exports.SharedAudioContext.Provider, { value: value, children: [refs.map(({ id, ref }) => {
180
- return (0, jsx_runtime_1.jsx)("audio", { ref: ref, src: EMPTY_AUDIO }, id);
181
- }), children] }));
182
- };
183
- exports.SharedAudioContextProvider = SharedAudioContextProvider;
184
- const useSharedAudio = (aud, audioId) => {
185
- const ctx = (0, react_1.useContext)(exports.SharedAudioContext);
186
- /**
187
- * We work around this in React 18 so an audio tag will only register itself once
188
- */
189
- const [elem] = (0, react_1.useState)(() => {
190
- if (ctx && ctx.numberOfAudioTags > 0) {
191
- return ctx.registerAudio(aud, audioId);
192
- }
193
- return {
194
- el: react_1.default.createRef(),
195
- id: Math.random(),
196
- props: aud,
197
- audioId,
198
- };
199
- });
200
- /**
201
- * Effects in React 18 fire twice, and we are looking for a way to only fire it once.
202
- * - useInsertionEffect only fires once. If it's available we are in React 18.
203
- * - useLayoutEffect only fires once in React 17.
204
- */
205
- const effectToUse = react_1.useInsertionEffect !== null && react_1.useInsertionEffect !== void 0 ? react_1.useInsertionEffect : react_1.useLayoutEffect;
206
- if (typeof document !== 'undefined') {
207
- effectToUse(() => {
208
- if (ctx && ctx.numberOfAudioTags > 0) {
209
- ctx.updateAudio({ id: elem.id, aud, audioId });
210
- }
211
- }, [aud, ctx, elem.id, audioId]);
212
- effectToUse(() => {
213
- return () => {
214
- if (ctx && ctx.numberOfAudioTags > 0) {
215
- ctx.unregisterAudio(elem.id);
216
- }
217
- };
218
- }, [ctx, elem.id]);
219
- }
220
- return elem;
221
- };
222
- exports.useSharedAudio = useSharedAudio;