remotion 4.0.199 → 4.0.201

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 (322) hide show
  1. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/AbsoluteFill.d.ts +6 -0
  2. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/AbsoluteFill.js +25 -0
  3. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/CanUseRemotionHooks.d.ts +5 -0
  4. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/CanUseRemotionHooks.js +6 -0
  5. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/Clipper.d.ts +7 -0
  6. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/Clipper.js +20 -0
  7. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/Composition.d.ts +60 -0
  8. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/Composition.js +118 -0
  9. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/CompositionManager.d.ts +76 -0
  10. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/CompositionManager.js +93 -0
  11. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/CompositionManagerContext.d.ts +29 -0
  12. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/CompositionManagerContext.js +13 -0
  13. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/EditorProps.d.ts +15 -0
  14. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/EditorProps.js +26 -0
  15. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/Folder.d.ts +19 -0
  16. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/Folder.js +33 -0
  17. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/IFrame.d.ts +6 -0
  18. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/IFrame.js +26 -0
  19. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/Img.d.ts +11 -0
  20. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/Img.js +106 -0
  21. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/NativeLayers.d.ts +13 -0
  22. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/NativeLayers.js +26 -0
  23. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/Null.d.ts +2 -0
  24. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/Null.js +21 -0
  25. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/RemotionRoot.d.ts +5 -0
  26. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/RemotionRoot.js +71 -0
  27. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/RenderAssetManager.d.ts +11 -0
  28. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/RenderAssetManager.js +37 -0
  29. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/ResolveCompositionConfig.d.ts +24 -0
  30. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/ResolveCompositionConfig.js +216 -0
  31. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/Sequence.d.ts +33 -0
  32. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/Sequence.js +137 -0
  33. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/SequenceContext.d.ts +11 -0
  34. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/SequenceContext.js +2 -0
  35. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/SequenceManager.d.ts +16 -0
  36. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/SequenceManager.js +43 -0
  37. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/Still.d.ts +8 -0
  38. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/Still.js +15 -0
  39. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/absolute-src.d.ts +1 -0
  40. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/absolute-src.js +6 -0
  41. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/asset-types.d.ts +50 -0
  42. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/asset-types.js +1 -0
  43. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/audio/Audio.d.ts +23 -0
  44. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/audio/Audio.js +77 -0
  45. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/audio/AudioForPreview.d.ts +12 -0
  46. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/audio/AudioForPreview.js +117 -0
  47. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/audio/AudioForRendering.d.ts +16 -0
  48. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/audio/AudioForRendering.js +119 -0
  49. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/audio/index.d.ts +2 -0
  50. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/audio/index.js +2 -0
  51. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/audio/props.d.ts +18 -0
  52. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/audio/shared-audio-tags.d.ts +39 -0
  53. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/audio/shared-audio-tags.js +217 -0
  54. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/audio/use-audio-frame.d.ts +6 -0
  55. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/audio/use-audio-frame.js +18 -0
  56. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/bezier.d.ts +1 -0
  57. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/bezier.js +110 -0
  58. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/buffering.d.ts +26 -0
  59. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/buffering.js +48 -0
  60. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/calculate-loop.d.ts +6 -0
  61. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/calculate-loop.js +13 -0
  62. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/cancel-render.d.ts +5 -0
  63. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/cancel-render.js +43 -0
  64. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/codec.d.ts +4 -0
  65. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/codec.js +14 -0
  66. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/config/input-props.d.ts +1 -0
  67. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/config/input-props.js +30 -0
  68. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/default-css.d.ts +3 -0
  69. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/default-css.js +44 -0
  70. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/delay-render.d.ts +14 -0
  71. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/delay-render.js +80 -0
  72. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/easing.d.ts +23 -0
  73. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/easing.js +77 -0
  74. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/enable-sequence-stack-traces.d.ts +2 -0
  75. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/enable-sequence-stack-traces.js +29 -0
  76. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/freeze.d.ts +12 -0
  77. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/freeze.js +58 -0
  78. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/get-asset-file-name.d.ts +1 -0
  79. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/get-asset-file-name.js +10 -0
  80. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/get-preview-dom-element.d.ts +2 -0
  81. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/get-preview-dom-element.js +4 -0
  82. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/get-remotion-environment.d.ts +10 -0
  83. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/get-remotion-environment.js +17 -0
  84. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/get-static-files.d.ts +21 -0
  85. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/get-static-files.js +33 -0
  86. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/index.d.ts +123 -0
  87. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/index.js +80 -0
  88. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/input-props-serialization.d.ts +15 -0
  89. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/input-props-serialization.js +44 -0
  90. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/internals.d.ts +164 -0
  91. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/internals.js +106 -0
  92. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/interpolate-colors.d.ts +13 -0
  93. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/interpolate-colors.js +394 -0
  94. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/interpolate.d.ts +23 -0
  95. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/interpolate.js +127 -0
  96. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/is-approximately-the-same.d.ts +1 -0
  97. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/is-approximately-the-same.js +4 -0
  98. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/is-player.d.ts +3 -0
  99. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/is-player.js +9 -0
  100. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/loading-indicator.d.ts +2 -0
  101. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/loading-indicator.js +31 -0
  102. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/loop/index.d.ts +13 -0
  103. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/loop/index.js +41 -0
  104. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/multiple-versions-warning.d.ts +1 -0
  105. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/multiple-versions-warning.js +28 -0
  106. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/no-react.d.ts +43 -0
  107. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/no-react.js +29 -0
  108. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/nonce.d.ts +7 -0
  109. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/nonce.js +19 -0
  110. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/play-and-handle-not-allowed-error.d.ts +2 -0
  111. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/play-and-handle-not-allowed-error.js +42 -0
  112. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/portal-node.d.ts +1 -0
  113. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/portal-node.js +24 -0
  114. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/prefetch-state.d.ts +8 -0
  115. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/prefetch-state.js +22 -0
  116. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/prefetch.d.ts +19 -0
  117. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/prefetch.js +157 -0
  118. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/props-if-has-props.d.ts +10 -0
  119. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/props-if-has-props.js +1 -0
  120. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/random.d.ts +6 -0
  121. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/random.js +37 -0
  122. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/register-root.d.ts +8 -0
  123. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/register-root.js +31 -0
  124. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/resolve-video-config.d.ts +9 -0
  125. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/resolve-video-config.js +80 -0
  126. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/series/flatten-children.d.ts +2 -0
  127. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/series/flatten-children.js +12 -0
  128. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/series/index.d.ts +18 -0
  129. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/series/index.js +67 -0
  130. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/setup-env-variables.d.ts +1 -0
  131. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/setup-env-variables.js +36 -0
  132. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/spring/index.d.ts +31 -0
  133. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/spring/index.js +75 -0
  134. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/spring/measure-spring.d.ts +12 -0
  135. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/spring/measure-spring.js +79 -0
  136. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/spring/spring-utils.d.ts +21 -0
  137. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/spring/spring-utils.js +99 -0
  138. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/static-file.d.ts +33 -0
  139. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/static-file.js +95 -0
  140. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/test/Img.test.d.ts +1 -0
  141. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/test/Img.test.js +20 -0
  142. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/test/absolute-src.test.d.ts +1 -0
  143. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/test/absolute-src.test.js +16 -0
  144. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/test/audio-for-rendering.test.d.ts +1 -0
  145. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/test/audio-for-rendering.test.js +65 -0
  146. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/test/audio.test.d.ts +1 -0
  147. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/test/audio.test.js +25 -0
  148. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/test/bezier.test.d.ts +1 -0
  149. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/test/bezier.test.js +50 -0
  150. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/test/composition-rules.test.d.ts +1 -0
  151. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/test/composition-rules.test.js +28 -0
  152. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/test/composition-validation.test.d.ts +1 -0
  153. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/test/composition-validation.test.js +310 -0
  154. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/test/easing.test.d.ts +1 -0
  155. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/test/easing.test.js +189 -0
  156. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/test/expect-to-throw.d.ts +1 -0
  157. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/test/expect-to-throw.js +13 -0
  158. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/test/freeze.test.d.ts +1 -0
  159. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/test/freeze.test.js +60 -0
  160. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/test/get-asset-file-name.test.d.ts +1 -0
  161. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/test/get-asset-file-name.test.js +12 -0
  162. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/test/get-current-time.test.d.ts +1 -0
  163. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/test/get-current-time.test.js +60 -0
  164. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/test/includes-hex-of-unsafe-char.test.d.ts +1 -0
  165. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/test/includes-hex-of-unsafe-char.test.js +11 -0
  166. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/test/input-props.test.d.ts +1 -0
  167. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/test/input-props.test.js +29 -0
  168. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/test/interpolate.test.d.ts +1 -0
  169. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/test/interpolate.test.js +140 -0
  170. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/test/interpolateColors.test.d.ts +1 -0
  171. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/test/interpolateColors.test.js +61 -0
  172. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/test/json-serialization.test.d.ts +1 -0
  173. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/test/json-serialization.test.js +32 -0
  174. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/test/loop-validation.test.d.ts +1 -0
  175. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/test/loop-validation.test.js +39 -0
  176. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/test/measure-spring.test.d.ts +1 -0
  177. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/test/measure-spring.test.js +43 -0
  178. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/test/media-validation.test.d.ts +1 -0
  179. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/test/media-validation.test.js +45 -0
  180. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/test/nested-sequences.test.d.ts +1 -0
  181. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/test/nested-sequences.test.js +98 -0
  182. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/test/not-all-props-in-media-tags.test.d.ts +1 -0
  183. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/test/not-all-props-in-media-tags.test.js +28 -0
  184. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/test/offthread-props.test.d.ts +1 -0
  185. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/test/offthread-props.test.js +11 -0
  186. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/test/random.test.d.ts +1 -0
  187. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/test/random.test.js +58 -0
  188. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/test/ready-manager.test.d.ts +1 -0
  189. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/test/ready-manager.test.js +27 -0
  190. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/test/render-hook.d.ts +23 -0
  191. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/test/render-hook.js +20 -0
  192. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/test/sequence-from-initial-offset.test.d.ts +4 -0
  193. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/test/sequence-from-initial-offset.test.js +35 -0
  194. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/test/sequence-validation.test.d.ts +1 -0
  195. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/test/sequence-validation.test.js +43 -0
  196. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/test/series.test.d.ts +1 -0
  197. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/test/series.test.js +119 -0
  198. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/test/spring-bench.test.d.ts +1 -0
  199. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/test/spring-bench.test.js +30 -0
  200. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/test/spring.test.d.ts +1 -0
  201. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/test/spring.test.js +164 -0
  202. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/test/static-file-errors.test.d.ts +1 -0
  203. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/test/static-file-errors.test.js +16 -0
  204. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/test/static-file-safe-uri.test.d.ts +1 -0
  205. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/test/static-file-safe-uri.test.js +26 -0
  206. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/test/truthy.test.d.ts +1 -0
  207. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/test/truthy.test.js +22 -0
  208. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/test/use-media-in-timeline.test.d.ts +1 -0
  209. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/test/use-media-in-timeline.test.js +63 -0
  210. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/test/use-media-tag-volume.test.d.ts +1 -0
  211. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/test/use-media-tag-volume.test.js +44 -0
  212. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/test/use-sync-volume-with-media-tag.test.d.ts +1 -0
  213. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/test/use-sync-volume-with-media-tag.test.js +53 -0
  214. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/test/validate-start-from-props.test.d.ts +1 -0
  215. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/test/validate-start-from-props.test.js +37 -0
  216. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/test/video.test.d.ts +1 -0
  217. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/test/video.test.js +27 -0
  218. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/test/volume-prop.test.d.ts +1 -0
  219. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/test/volume-prop.test.js +93 -0
  220. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/test/wrap-sequence-context.d.ts +6 -0
  221. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/test/wrap-sequence-context.js +33 -0
  222. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/timeline-position-state.d.ts +33 -0
  223. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/timeline-position-state.js +66 -0
  224. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/truthy.d.ts +3 -0
  225. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/truthy.js +3 -0
  226. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/use-buffer-state.d.ts +5 -0
  227. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/use-buffer-state.js +16 -0
  228. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/use-current-frame.d.ts +5 -0
  229. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/use-current-frame.js +23 -0
  230. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/use-current-scale.d.ts +43 -0
  231. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/use-current-scale.js +46 -0
  232. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/use-lazy-component.d.ts +7 -0
  233. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/use-lazy-component.js +22 -0
  234. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/use-media-buffering.d.ts +2 -0
  235. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/use-media-buffering.js +38 -0
  236. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/use-media-in-timeline.d.ts +14 -0
  237. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/use-media-in-timeline.js +130 -0
  238. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/use-media-playback.d.ts +10 -0
  239. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/use-media-playback.js +114 -0
  240. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/use-media-tag-volume.d.ts +2 -0
  241. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/use-media-tag-volume.js +27 -0
  242. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/use-sync-volume-with-media-tag.d.ts +10 -0
  243. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/use-sync-volume-with-media-tag.js +17 -0
  244. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/use-unsafe-video-config.d.ts +2 -0
  245. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/use-unsafe-video-config.js +27 -0
  246. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/use-video-config.d.ts +8 -0
  247. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/use-video-config.js +30 -0
  248. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/use-video.d.ts +7 -0
  249. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/use-video.js +36 -0
  250. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/validate-frame.d.ts +5 -0
  251. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/validate-frame.js +20 -0
  252. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/validate-media-props.d.ts +4 -0
  253. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/validate-media-props.js +20 -0
  254. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/validate-start-from-props.d.ts +1 -0
  255. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/validate-start-from-props.js +27 -0
  256. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/validation/validate-composition-id.d.ts +3 -0
  257. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/validation/validate-composition-id.js +8 -0
  258. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/validation/validate-default-codec.d.ts +2 -0
  259. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/validation/validate-default-codec.js +12 -0
  260. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/validation/validate-default-props.d.ts +1 -0
  261. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/validation/validate-default-props.js +11 -0
  262. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/validation/validate-dimensions.d.ts +1 -0
  263. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/validation/validate-dimensions.js +17 -0
  264. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/validation/validate-duration-in-frames.d.ts +4 -0
  265. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/validation/validate-duration-in-frames.js +18 -0
  266. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/validation/validate-folder-name.d.ts +3 -0
  267. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/validation/validate-folder-name.js +14 -0
  268. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/validation/validate-fps.d.ts +1 -0
  269. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/validation/validate-fps.js +17 -0
  270. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/validation/validation-spring-duration.d.ts +1 -0
  271. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/validation/validation-spring-duration.js +17 -0
  272. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/version.d.ts +1 -0
  273. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/version.js +2 -0
  274. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/video/OffthreadVideo.d.ts +7 -0
  275. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/video/OffthreadVideo.js +37 -0
  276. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/video/OffthreadVideoForRendering.d.ts +3 -0
  277. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/video/OffthreadVideoForRendering.js +113 -0
  278. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/video/Video.d.ts +21 -0
  279. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/video/Video.js +63 -0
  280. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/video/VideoForPreview.d.ts +12 -0
  281. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/video/VideoForPreview.js +148 -0
  282. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/video/VideoForRendering.d.ts +14 -0
  283. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/video/VideoForRendering.js +192 -0
  284. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/video/duration-state.d.ts +17 -0
  285. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/video/duration-state.js +30 -0
  286. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/video/get-current-time.d.ts +11 -0
  287. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/video/get-current-time.js +14 -0
  288. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/video/index.d.ts +3 -0
  289. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/video/index.js +2 -0
  290. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/video/offthread-video-source.d.ts +6 -0
  291. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/video/offthread-video-source.js +4 -0
  292. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/video/props.d.ts +49 -0
  293. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/video/props.js +1 -0
  294. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/video/seek-until-right.d.ts +8 -0
  295. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/video/seek-until-right.js +88 -0
  296. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/video/video-fragment.d.ts +13 -0
  297. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/video/video-fragment.js +59 -0
  298. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/video-config.d.ts +11 -0
  299. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/video-config.js +1 -0
  300. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/volume-position-state.d.ts +19 -0
  301. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/volume-position-state.js +27 -0
  302. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/volume-prop.d.ts +7 -0
  303. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/volume-prop.js +20 -0
  304. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/warn-about-non-seekable-media.d.ts +1 -0
  305. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/warn-about-non-seekable-media.js +38 -0
  306. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/watch-static-file.d.ts +17 -0
  307. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/watch-static-file.js +48 -0
  308. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/wrap-remotion-context.d.ts +45 -0
  309. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/wrap-remotion-context.js +61 -0
  310. package/.rollup.cache/Users/jonathanburger/remotion/packages/core/dist/tsconfig-esm.tsbuildinfo +1 -0
  311. package/dist/cjs/use-media-playback.js +6 -2
  312. package/dist/cjs/version.d.ts +1 -1
  313. package/dist/cjs/version.js +1 -1
  314. package/dist/cjs/video/OffthreadVideoForRendering.js +4 -0
  315. package/dist/cjs/video/track-source-change.d.ts +2 -0
  316. package/dist/cjs/video/track-source-change.js +20 -0
  317. package/dist/esm/index.mjs +10 -3
  318. package/dist/esm/version.mjs +1 -1
  319. package/dist/tsconfig-esm.tsbuildinfo +1 -0
  320. package/package.json +1 -1
  321. package/dist/cjs/check-rsc.js +0 -6
  322. /package/{dist/cjs/check-rsc.d.ts → .rollup.cache/Users/jonathanburger/remotion/packages/core/dist/esm/audio/props.js} +0 -0
@@ -0,0 +1,39 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ /**
3
+ * @vitest-environment jsdom
4
+ */
5
+ import { render } from '@testing-library/react';
6
+ import { renderToString } from 'react-dom/server';
7
+ import { describe, expect, test } from 'vitest';
8
+ import { Loop } from '../loop/index.js';
9
+ import { expectToThrow } from './expect-to-throw.js';
10
+ import { WrapSequenceContext } from './wrap-sequence-context.js';
11
+ describe('Loop-validation render should throw with invalid props', () => {
12
+ describe('Throw with invalid durationInFrames prop', () => {
13
+ test('It should throw if Loop has non-number durationInFrames', () => {
14
+ expectToThrow(() => render(_jsx(WrapSequenceContext, { children: _jsx(Loop, { durationInFrames: '1', children: "hi" }) })), /The "durationInFrames" prop of the <Loop \/> component must be a number, but you passed a value of type string/);
15
+ });
16
+ test('It should throw if Loop has non-integer durationInFrames', () => {
17
+ expect(renderToString(_jsx(WrapSequenceContext, { children: _jsx(WrapSequenceContext, { children: _jsx(Loop, { durationInFrames: 1.1, children: "hi" }) }) }))).toBe('<div style="position:absolute;top:0;left:0;right:0;bottom:0;width:100%;height:100%;display:flex">hi</div>');
18
+ });
19
+ test('It should throw if Loop has a negative duration', () => {
20
+ expectToThrow(() => render(_jsx(WrapSequenceContext, { children: _jsx(Loop, { durationInFrames: -1, children: "hi" }) })), /The "durationInFrames" prop of the <Loop \/> component must be positive, but got -1./);
21
+ });
22
+ });
23
+ describe('Throw with invalid times prop', () => {
24
+ test('It should throw if Loop has non-number times', () => {
25
+ expectToThrow(() => render(_jsx(WrapSequenceContext, { children: _jsx(Loop, { durationInFrames: 50, times: "1", children: "hi" }) })), /You passed to "times" an argument of type string, but it must be a number./);
26
+ });
27
+ test('It should throw if Loop has non-integer times', () => {
28
+ expectToThrow(() => render(_jsx(WrapSequenceContext, { children: _jsx(Loop, { durationInFrames: 50, times: 1.1, children: "hi" }) })), /The "times" prop of a loop must be an integer, but got 1.1./);
29
+ });
30
+ });
31
+ });
32
+ describe('Should NOT throw with valid props', () => {
33
+ test('It should allow null as children', () => {
34
+ expect(() => render(_jsx(WrapSequenceContext, { children: _jsx(Loop, { durationInFrames: 50, children: null }) }))).not.toThrow();
35
+ });
36
+ test('It should allow undefined as children', () => {
37
+ expect(() => render(_jsx(WrapSequenceContext, { children: _jsx(Loop, { durationInFrames: 50, children: undefined }) }))).not.toThrow();
38
+ });
39
+ });
@@ -0,0 +1,43 @@
1
+ import { describe, expect, test } from 'vitest';
2
+ import { measureSpring, spring } from '../spring/index.js';
3
+ import { expectToThrow } from './expect-to-throw.js';
4
+ describe('Measure spring should work', () => {
5
+ const duration = measureSpring({
6
+ fps: 30,
7
+ });
8
+ test('test measureSpring()', () => expect(duration).toBe(28));
9
+ test('spring should be close to 1', () => expect(spring({
10
+ fps: 30,
11
+ frame: duration,
12
+ })).toBeCloseTo(1));
13
+ test('spring should not be 1', () => expect(spring({
14
+ fps: 30,
15
+ frame: duration - 1,
16
+ })).not.toBe(1));
17
+ });
18
+ test('Higher threshold should lead to faster spring', () => {
19
+ expect(measureSpring({ fps: 30, threshold: 0.05 })).toBeLessThan(measureSpring({ fps: 30, threshold: 0.01 }));
20
+ });
21
+ test('Lower threshold should lead to slower spring', () => {
22
+ expect(measureSpring({ fps: 30, threshold: 0.001 })).toBeGreaterThan(measureSpring({ fps: 30, threshold: 0.01 }));
23
+ });
24
+ describe('Threshold edge cases', () => {
25
+ // threshold, expected
26
+ const validEdgeCases = [
27
+ [0, Infinity],
28
+ [1, 0],
29
+ ];
30
+ validEdgeCases.forEach((entry) => test('', () => expect(measureSpring({ fps: 30, threshold: entry[0] })).toBe(entry[1])));
31
+ // threshold, errMsg
32
+ const errorEdgeCases = [
33
+ [NaN, /Threshold is NaN/],
34
+ [Infinity, /Threshold is not finite/],
35
+ [null, /threshold must be a number, got null of type object/],
36
+ ];
37
+ errorEdgeCases.forEach((entry) => expectToThrow(
38
+ // @ts-expect-error
39
+ () => measureSpring({ fps: 30, threshold: entry[0] }), entry[1]));
40
+ });
41
+ test('Should throw on invalid FPS', () => {
42
+ expectToThrow(() => measureSpring({ fps: 0 }), /"fps" must be positive, but got 0./);
43
+ });
@@ -0,0 +1,45 @@
1
+ import { describe, expect, test } from 'vitest';
2
+ import { validateMediaProps } from '../validate-media-props.js';
3
+ import { expectToThrow } from './expect-to-throw.js';
4
+ describe('ValidateMediaProps should throw with invalid volume inputs', () => {
5
+ const testComponents = ['Audio', 'Video'];
6
+ testComponents.forEach((component) => {
7
+ test(`It should not allow an ${component} element to have a negative volume `, () => {
8
+ expectToThrow(
9
+ // @ts-expect-error
10
+ () => validateMediaProps({ volume: -1 }, component), new RegExp(`You have passed a volume below 0 to your <${component} /> component. Volume must be between 0 and 1`));
11
+ });
12
+ test(`It should not allow an ${component} element to have an invalid type`, () => {
13
+ expectToThrow(
14
+ // @ts-expect-error
15
+ () => validateMediaProps({ volume: 'invalidType' }, component), new RegExp(`You have passed a volume of type string to your <${component} /> component.`));
16
+ });
17
+ });
18
+ });
19
+ describe('ValidateMediaProps should not throw with valid volume inputs', () => {
20
+ const validInputs = [
21
+ 0,
22
+ 1,
23
+ undefined,
24
+ () => 1,
25
+ (x) => x,
26
+ ];
27
+ validInputs.forEach((vol) => test(`valid volume ${vol} shold not throw`, () => {
28
+ // @ts-expect-error
29
+ expect(() => validateMediaProps({ volume: vol }, 'Video')).not.toThrow();
30
+ }));
31
+ });
32
+ describe('ValidateMediaProps should throw with invalid playbackRate', () => {
33
+ test(`It should not allow playbackRate of 0 or below.`, () => {
34
+ expectToThrow(() => validateMediaProps({ playbackRate: -1 }, 'Audio'), /You have passed a playbackRate of -1 to your <Audio \/> component. Playback rate must be a real number above 0./);
35
+ });
36
+ test(`It should not allow non-finite playbackRate.`, () => {
37
+ expectToThrow(() => validateMediaProps({ playbackRate: Infinity }, 'Audio'), /You have passed a playbackRate of Infinity to your <Audio \/> component. Playback rate must be a real number above 0./);
38
+ });
39
+ test(`It should not allow NaN playbackRate.`, () => {
40
+ expectToThrow(() => validateMediaProps({ playbackRate: NaN }, 'Audio'), /You have passed a playbackRate of NaN to your <Audio \/> component. Playback rate must be a real number above 0./);
41
+ });
42
+ test(`It should not allow regular playbackrate.`, () => {
43
+ expect(() => validateMediaProps({ playbackRate: 1 }, 'Audio')).not.toThrow();
44
+ });
45
+ });
@@ -0,0 +1,98 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ /**
3
+ * @vitest-environment jsdom
4
+ */
5
+ /* eslint-disable react/jsx-no-constructed-context-values */
6
+ import { cleanup, render } from '@testing-library/react';
7
+ import { afterEach, expect, test } from 'vitest';
8
+ import { AbsoluteFill } from '../AbsoluteFill.js';
9
+ import { Sequence } from '../Sequence.js';
10
+ import { TimelineContext } from '../timeline-position-state.js';
11
+ import { useCurrentFrame } from '../use-current-frame.js';
12
+ import { WrapSequenceContext } from './wrap-sequence-context.js';
13
+ afterEach(cleanup);
14
+ const getForFrame = (frame, content) => {
15
+ const { queryByText } = render(_jsx(WrapSequenceContext, { children: _jsx(TimelineContext.Provider, { value: {
16
+ frame: {
17
+ 'my-comp': frame,
18
+ },
19
+ playing: false,
20
+ rootId: 'hi',
21
+ imperativePlaying: {
22
+ current: false,
23
+ },
24
+ playbackRate: 1,
25
+ setPlaybackRate: () => {
26
+ throw new Error('playback rate');
27
+ },
28
+ audioAndVideoTags: {
29
+ current: [],
30
+ },
31
+ }, children: content }) }));
32
+ return queryByText;
33
+ };
34
+ test('It should calculate the correct offset in nested sequences', () => {
35
+ const NestedChild = () => {
36
+ const frame = useCurrentFrame();
37
+ return _jsx("div", { children: 'frame' + frame });
38
+ };
39
+ const Child2 = () => {
40
+ return (_jsx(Sequence, { from: 1, durationInFrames: 50, children: _jsx(NestedChild, {}) }));
41
+ };
42
+ const Child = () => {
43
+ return (_jsx(Sequence, { from: 10, durationInFrames: 50, children: _jsx(Child2, {}) }));
44
+ };
45
+ const content = (_jsx(Sequence, { from: 20, durationInFrames: 100, children: _jsx(Child, {}) }));
46
+ const result = getForFrame(40, content);
47
+ expect(result(/^frame9$/i)).not.toBe(null);
48
+ });
49
+ test('Negative offset test', () => {
50
+ const NestedChild = () => {
51
+ const frame = useCurrentFrame();
52
+ return _jsx("div", { children: 'frame' + frame });
53
+ };
54
+ const content = (_jsx(Sequence, { from: -200, durationInFrames: 300, children: _jsx(Sequence, { from: 10, durationInFrames: 300, children: _jsx(Sequence, { from: 10, durationInFrames: 300, children: _jsx(NestedChild, {}) }) }) }));
55
+ const result = getForFrame(40, content);
56
+ expect(result(/^frame220/i)).not.toBe(null);
57
+ });
58
+ test('Nested negative offset test', () => {
59
+ const NestedChild = () => {
60
+ const frame = useCurrentFrame();
61
+ return _jsx("div", { children: 'frame' + frame });
62
+ };
63
+ const startFrom = 40;
64
+ const endAt = 90;
65
+ const content = (_jsx(Sequence, { from: 0 - startFrom, durationInFrames: endAt, children: _jsx(NestedChild, {}) }));
66
+ const frame0 = getForFrame(0, content);
67
+ expect(frame0(/^frame40$/i)).not.toBe(null);
68
+ const frame39 = getForFrame(39, content);
69
+ expect(frame39(/^frame79$/i)).not.toBe(null);
70
+ const frame50 = getForFrame(50, content);
71
+ expect(frame50(/^frame90$/i)).toBe(null);
72
+ });
73
+ test('Negative offset edge case', () => {
74
+ const NestedChild = () => {
75
+ const frame = useCurrentFrame();
76
+ return _jsx("div", { children: 'frame' + frame });
77
+ };
78
+ const startFrom = 40;
79
+ const endAt = 90;
80
+ const content = (_jsx(Sequence, { from: 40, children: _jsx(Sequence, { from: 0 - startFrom, durationInFrames: endAt, children: _jsx(NestedChild, {}) }) }));
81
+ expect(getForFrame(40, content)(/^frame40$/i)).not.toBe(null);
82
+ expect(getForFrame(0, content)(/^frame0/i)).toBe(null);
83
+ expect(getForFrame(10, content)(/^frame10/i)).toBe(null);
84
+ const atFrame80 = getForFrame(80, content)(/^frame80$/i);
85
+ expect(atFrame80).not.toBe(null);
86
+ const atFrame90 = getForFrame(90, content)(/^frame90$/i);
87
+ expect(atFrame90).toBe(null);
88
+ });
89
+ test('Floats', () => {
90
+ const content = (_jsxs(AbsoluteFill, { style: { backgroundColor: 'white' }, children: [_jsx(Sequence, { from: 5.1000000000000005, durationInFrames: 128.4, children: _jsx("h1", { children: "One" }) }), _jsx(Sequence, { from: 133.5, durationInFrames: 96.72, children: _jsx("h1", { children: "Two" }) })] }));
91
+ expect(getForFrame(132, content)(/^One$/i)).not.toBe(null);
92
+ cleanup();
93
+ expect(getForFrame(133, content)(/^One$/i)).not.toBe(null);
94
+ cleanup();
95
+ expect(getForFrame(133, content)(/^Two$/i)).toBe(null);
96
+ cleanup();
97
+ expect(getForFrame(134, content)(/^Two$/i)).not.toBe(null);
98
+ });
@@ -0,0 +1,28 @@
1
+ import fs from 'node:fs';
2
+ import path from 'node:path';
3
+ import { expect, test } from 'vitest';
4
+ // Test for https://github.com/remotion-dev/remotion/issues/1243
5
+ test('Should not have disableRemotePlayback props in the <VideoForPreview> component type definition', () => {
6
+ const file = path.resolve(process.cwd(), 'dist', 'esm', 'video', 'VideoForPreview.d.ts');
7
+ const read = fs.readFileSync(file, 'utf-8');
8
+ expect(read).not.toContain('disableRemotePlayback');
9
+ expect(read).toContain('./props.js');
10
+ });
11
+ test('Should not have disableRemotePlayback props in the <VideoForPreview> component type definition', () => {
12
+ const file = path.resolve(process.cwd(), 'dist', 'esm', 'video', 'VideoForPreview.d.ts');
13
+ const read = fs.readFileSync(file, 'utf-8');
14
+ expect(read).not.toContain('disableRemotePlayback');
15
+ expect(read).toContain('./props.js');
16
+ });
17
+ test('Should not have disableRemotePlayback props in the <AudioForPreview> component type definition', () => {
18
+ const file = path.resolve(process.cwd(), 'dist', 'esm', 'audio', 'AudioForPreview.d.ts');
19
+ const read = fs.readFileSync(file, 'utf-8');
20
+ expect(read).not.toContain('aria-disabled');
21
+ expect(read).toContain('./props.js');
22
+ });
23
+ test('Should not have disableRemotePlayback props in the <AudioForRendering> component type definition', () => {
24
+ const file = path.resolve(process.cwd(), 'dist', 'esm', 'audio', 'AudioForRendering.d.ts');
25
+ const read = fs.readFileSync(file, 'utf-8');
26
+ expect(read).not.toContain('aria-disabled');
27
+ expect(read).toContain('volume-prop');
28
+ });
@@ -0,0 +1,11 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { renderToString } from 'react-dom/server';
3
+ import { expect, test } from 'vitest';
4
+ import { OffthreadVideo } from '../video/index.js';
5
+ test('Passing imageFormat to OffthreadVideo should throw error', () => {
6
+ expect(() => {
7
+ renderToString(_jsx(OffthreadVideo, { src: "http://commondatastorage.googleapis.com/gtv-videos-bucket/sample/BigBuckBunny.mp4",
8
+ // @ts-expect-error
9
+ imageFormat: 'JPEG' }));
10
+ }).toThrow(`The \`<OffthreadVideo>\` tag does no longer accept \`imageFormat\`. Use the \`transparent\` prop if you want to render a transparent video.`);
11
+ });
@@ -0,0 +1,58 @@
1
+ import { describe, expect, test } from 'vitest';
2
+ import { random } from '../random.js';
3
+ describe('Should support negative random numbers', () => {
4
+ test('test with -1', () => expect(random(-1)).toBe(random(-1)));
5
+ test('test with -2', () => expect(random(-2)).toBe(random(-2)));
6
+ test('different seeds should be different randoms', () => expect(random(-2)).not.toBe(random(-1)));
7
+ });
8
+ test('Random should be deterministic', () => {
9
+ expect(random(1)).toBe(random(1));
10
+ expect(random(2)).toBe(random(2));
11
+ expect(random(2)).not.toBe(random(1));
12
+ expect(random(null)).not.toBe(random(null));
13
+ });
14
+ describe('Random should be uniform', () => {
15
+ const ITEM_COUNT = 100000;
16
+ const mapped = new Array(ITEM_COUNT).fill(true).map((_a, i) => {
17
+ return random(i);
18
+ });
19
+ const average = mapped.reduce((a, b) => a + b, 0) / mapped.length;
20
+ test('test if average is around 0.5', () => {
21
+ expect(average).toBeLessThan(0.51);
22
+ expect(average).toBeGreaterThan(0.49);
23
+ });
24
+ const tenPercentSections = [];
25
+ const stepInterval = 0.1;
26
+ let currentStep = 0;
27
+ while (currentStep < 0.999999) {
28
+ const items = mapped.filter((m) => m >= currentStep && m <= currentStep + stepInterval);
29
+ tenPercentSections.push(items);
30
+ currentStep += stepInterval;
31
+ }
32
+ const ACCURACY = 0.005;
33
+ tenPercentSections.forEach((entries, index) => test(`section ${index} should contain around ${ITEM_COUNT * stepInterval} entries`, () => {
34
+ expect(entries.length).toBeLessThan(ITEM_COUNT * (stepInterval + ACCURACY));
35
+ expect(entries.length).toBeGreaterThan(ITEM_COUNT * (stepInterval - ACCURACY));
36
+ }));
37
+ test('test for average distance', () => {
38
+ const distances = mapped
39
+ .map((_a, i) => {
40
+ if (i === 0) {
41
+ return null;
42
+ }
43
+ return Math.abs(mapped[i] - mapped[i - 1]);
44
+ })
45
+ .filter((f) => f !== null);
46
+ const averageDistance = distances.reduce((a, b) => a + b, 0) / distances.length;
47
+ expect(averageDistance).toBeGreaterThan(0.3);
48
+ });
49
+ });
50
+ test('Random string should be uniform', () => {
51
+ const alphabet = 'abcdefghijlkmnopqrstuvwxyz0123456789';
52
+ const array = new Array(alphabet.length)
53
+ .fill(true)
54
+ .map((_, i) => random(alphabet[i]));
55
+ const average = array.reduce((a, b) => a + b, 0) / array.length;
56
+ expect(average).toBeLessThan(0.55);
57
+ expect(average).toBeGreaterThan(0.45);
58
+ });
@@ -0,0 +1,27 @@
1
+ /**
2
+ * @vitest-environment jsdom
3
+ */
4
+ import { describe, expect, test } from 'vitest';
5
+ import { continueRender, delayRender } from '../delay-render.js';
6
+ describe('Ready Manager tests', () => {
7
+ let handle;
8
+ test('delayRender sets window.remotion_renderReady to false', () => {
9
+ window.remotion_renderReady = true;
10
+ handle = delayRender();
11
+ expect(typeof handle).toBe('number');
12
+ expect(window.remotion_renderReady).toBe(false);
13
+ });
14
+ test('continueRender sets window.remotion_renderReady to true', () => {
15
+ continueRender(handle);
16
+ expect(window.remotion_renderReady).toBe(true);
17
+ });
18
+ test('Render is only continued if all handles have been finished', () => {
19
+ handle = delayRender();
20
+ const handle2 = delayRender();
21
+ expect(window.remotion_renderReady).toBe(false);
22
+ continueRender(handle);
23
+ expect(window.remotion_renderReady).toBe(false);
24
+ continueRender(handle2);
25
+ expect(window.remotion_renderReady).toBe(true);
26
+ });
27
+ });
@@ -0,0 +1,23 @@
1
+ import React from 'react';
2
+ interface RenderHookOptions<Props> {
3
+ /**
4
+ * The argument passed to the renderHook callback. Can be useful if you plan
5
+ * to use the rerender utility to change the values passed to your hook.
6
+ */
7
+ initialProps?: Props;
8
+ /**
9
+ * Pass a React Component as the wrapper option to have it rendered around the inner element. This is most useful for creating
10
+ * reusable custom render functions for common data providers. See setup for examples.
11
+ *
12
+ * @see https://testing-library.com/docs/react-testing-library/api/#wrapper
13
+ */
14
+ wrapper?: React.JSXElementConstructor<{
15
+ children: React.ReactElement;
16
+ }>;
17
+ }
18
+ export declare function renderHook<Result, Props>(renderCallback: (initialProps: Props) => Result, options?: RenderHookOptions<Props>): {
19
+ result: React.RefObject<unknown>;
20
+ rerender: (rerenderCallbackProps: Props) => void;
21
+ unmount: () => void;
22
+ };
23
+ export {};
@@ -0,0 +1,20 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { render } from '@testing-library/react';
3
+ import React from 'react';
4
+ export function renderHook(renderCallback, options = {}) {
5
+ const { initialProps, wrapper } = options;
6
+ const result = React.createRef();
7
+ const TestComponent = ({ renderCallbackProps, }) => {
8
+ const pendingResult = renderCallback(renderCallbackProps);
9
+ React.useEffect(() => {
10
+ // @ts-expect-error
11
+ result.current = pendingResult;
12
+ });
13
+ return null;
14
+ };
15
+ const { rerender: baseRerender, unmount } = render(_jsx(TestComponent, { renderCallbackProps: initialProps }), { wrapper });
16
+ function rerender(rerenderCallbackProps) {
17
+ return baseRerender(_jsx(TestComponent, { renderCallbackProps: rerenderCallbackProps }));
18
+ }
19
+ return { result, rerender, unmount };
20
+ }
@@ -0,0 +1,35 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ /**
3
+ * @vitest-environment jsdom
4
+ */
5
+ import { render } from '@testing-library/react';
6
+ import { describe, expect, test } from 'vitest';
7
+ import { CanUseRemotionHooksProvider } from '../CanUseRemotionHooks.js';
8
+ import { Freeze } from '../freeze.js';
9
+ import { Sequence } from '../Sequence.js';
10
+ import { TimelineContext } from '../timeline-position-state.js';
11
+ import { useVideoConfig } from '../use-video-config.js';
12
+ import { WrapSequenceContext } from './wrap-sequence-context.js';
13
+ const Inner = () => {
14
+ const config = useVideoConfig();
15
+ return _jsx("div", { children: config.durationInFrames });
16
+ };
17
+ const context = {
18
+ audioAndVideoTags: { current: [] },
19
+ frame: {
20
+ 'my-comp': 100000,
21
+ },
22
+ imperativePlaying: {
23
+ current: false,
24
+ },
25
+ playbackRate: 0,
26
+ playing: false,
27
+ rootId: 'hither',
28
+ setPlaybackRate: () => undefined,
29
+ };
30
+ describe('Composition-validation render should NOT throw with valid props', () => {
31
+ test('It should allow undefined as children', () => {
32
+ const { queryByText } = render(_jsx(CanUseRemotionHooksProvider, { children: _jsx(WrapSequenceContext, { children: _jsx(TimelineContext.Provider, { value: context, children: _jsx(Freeze, { frame: 10000, children: _jsx(Sequence, { durationInFrames: 2424, from: 9265, children: _jsx(Inner, {}) }) }) }) }) }));
33
+ expect(queryByText(/^2424$/)).not.toBe(null);
34
+ });
35
+ });
@@ -0,0 +1,43 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ /**
3
+ * @vitest-environment jsdom
4
+ */
5
+ import { render } from '@testing-library/react';
6
+ import { renderToString } from 'react-dom/server';
7
+ import { describe, expect, test } from 'vitest';
8
+ import { CanUseRemotionHooksProvider } from '../CanUseRemotionHooks.js';
9
+ import { Sequence } from '../Sequence.js';
10
+ import { expectToThrow } from './expect-to-throw.js';
11
+ import { WrapSequenceContext } from './wrap-sequence-context.js';
12
+ describe('Composition-validation render should throw with invalid props', () => {
13
+ describe('Throw with invalid duration props', () => {
14
+ test('It should throw if Sequence has non-integer durationInFrames', () => {
15
+ expect(renderToString(_jsx(CanUseRemotionHooksProvider, { children: _jsx(WrapSequenceContext, { children: _jsx(Sequence, { from: 0, durationInFrames: 1.1, children: "hi" }) }) }))).toBe('<div style="position:absolute;top:0;left:0;right:0;bottom:0;width:100%;height:100%;display:flex">hi</div>');
16
+ });
17
+ test('It should throw if Sequence has negative duration', () => {
18
+ expectToThrow(
19
+ // @ts-expect-error
20
+ () => render(_jsx(Sequence, { from: 0, durationInFrames: -1 })), /durationInFrames must be positive, but got -1/);
21
+ });
22
+ });
23
+ describe('Throw with invalid from props', () => {
24
+ test('It should throw if "from" props is not a number', () => {
25
+ expectToThrow(
26
+ // @ts-expect-error
27
+ () => render(_jsx(Sequence, { from: '0', durationInFrames: 30 })), /You passed to the "from" props of your <Sequence> an argument of type string, but it must be a number./);
28
+ });
29
+ });
30
+ test('It should throw for invalid layout value', () => {
31
+ expectToThrow(() => render(
32
+ // @ts-expect-error
33
+ _jsx(Sequence, { from: 0, durationInFrames: 100, layout: 'invalid-value' })), /The layout prop of <Sequence \/> expects either "absolute-fill" or "none", but you passed: invalid-value/);
34
+ });
35
+ });
36
+ describe('Composition-validation render should NOT throw with valid props', () => {
37
+ test('It should allow null as children', () => {
38
+ expect(() => render(_jsx(CanUseRemotionHooksProvider, { children: _jsx(WrapSequenceContext, { children: _jsx(Sequence, { durationInFrames: 100, from: 0, children: null }) }) }))).not.toThrow();
39
+ });
40
+ test('It should allow undefined as children', () => {
41
+ expect(() => render(_jsx(CanUseRemotionHooksProvider, { children: _jsx(WrapSequenceContext, { children: _jsx(Sequence, { durationInFrames: 100, from: 0, children: undefined }) }) }))).not.toThrow();
42
+ });
43
+ });
@@ -0,0 +1,119 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import { renderToString } from 'react-dom/server';
3
+ import { expect, test } from 'vitest';
4
+ import { CanUseRemotionHooksProvider } from '../CanUseRemotionHooks.js';
5
+ import { Series } from '../series/index.js';
6
+ import { TimelineContext } from '../timeline-position-state.js';
7
+ import { useCurrentFrame } from '../use-current-frame.js';
8
+ import { WrapSequenceContext } from './wrap-sequence-context.js';
9
+ const First = () => {
10
+ const frame = useCurrentFrame();
11
+ return _jsx("div", { children: 'first ' + frame });
12
+ };
13
+ const Second = () => {
14
+ const frame = useCurrentFrame();
15
+ return _jsx("div", { children: 'second ' + frame });
16
+ };
17
+ const Third = () => {
18
+ const frame = useCurrentFrame();
19
+ return _jsx("div", { children: 'third ' + frame });
20
+ };
21
+ const Fourth = () => {
22
+ const frame = useCurrentFrame();
23
+ return _jsx("div", { children: 'fourth ' + frame });
24
+ };
25
+ const renderForFrame = (frame, markup) => {
26
+ return renderToString(_jsx(CanUseRemotionHooksProvider, { children: _jsx(TimelineContext.Provider, { value: {
27
+ rootId: '',
28
+ frame: {
29
+ 'my-comp': frame,
30
+ },
31
+ playing: false,
32
+ imperativePlaying: {
33
+ current: false,
34
+ },
35
+ playbackRate: 1,
36
+ setPlaybackRate: () => {
37
+ throw new Error('playback rate');
38
+ },
39
+ audioAndVideoTags: { current: [] },
40
+ }, children: markup }) }));
41
+ };
42
+ test('Basic series test', () => {
43
+ const outerHTML = renderForFrame(10, _jsx(WrapSequenceContext, { children: _jsxs(Series, { children: [_jsx(Series.Sequence, { durationInFrames: 5, children: _jsx(First, {}) }), _jsx(Series.Sequence, { durationInFrames: 5, children: _jsx(Second, {}) }), _jsx(Series.Sequence, { durationInFrames: 5, children: _jsx(Third, {}) })] }) }));
44
+ expect(outerHTML).toBe('<div style="position:absolute;top:0;left:0;right:0;bottom:0;width:100%;height:100%;display:flex"><div>third 0</div></div>');
45
+ });
46
+ test('Should support fragments', () => {
47
+ const outerHtml = renderForFrame(10, _jsx(WrapSequenceContext, { children: _jsxs(Series, { children: [_jsx(Series.Sequence, { durationInFrames: 5, children: _jsx(First, {}) }), _jsxs(_Fragment, { children: [_jsx(Series.Sequence, { durationInFrames: 5, children: _jsx(Second, {}) }, "0"), _jsxs(_Fragment, { children: [_jsx(Series.Sequence, { durationInFrames: 5, children: _jsx(Third, {}) }, "1"), _jsx(Series.Sequence, { durationInFrames: 5, children: _jsx(Fourth, {}) }, "2")] })] })] }) }));
48
+ expect(outerHtml).not.toBe('<div style="position:absolute;top:0;left:0;right:0;bottom:0;width:100%;height:100%;display:flex"><div>second 1</div></div>');
49
+ });
50
+ test('Should not allow foreign elements', () => {
51
+ expect(() => {
52
+ renderForFrame(0, _jsx(WrapSequenceContext, { children: _jsx(Series, { children: _jsx(First, {}) }) }));
53
+ }).toThrow(/only accepts a/);
54
+ });
55
+ test('Should allow layout prop', () => {
56
+ const outerHTML = renderForFrame(0, _jsx(WrapSequenceContext, { children: _jsx(Series, { children: _jsx(Series.Sequence, { durationInFrames: 1, children: _jsx(First, {}) }) }) }));
57
+ expect(outerHTML).toBe('<div style="position:absolute;top:0;left:0;right:0;bottom:0;width:100%;height:100%;display:flex"><div>first 0</div></div>');
58
+ const outerHTML2 = renderForFrame(0, _jsx(WrapSequenceContext, { children: _jsx(Series, { children: _jsx(Series.Sequence, { durationInFrames: 1, layout: "none", children: _jsx(First, {}) }) }) }));
59
+ expect(outerHTML2).toBe('<div>first 0</div>');
60
+ });
61
+ test('Should render nothing after the end', () => {
62
+ const outerHTML = renderForFrame(10, _jsx(WrapSequenceContext, { children: _jsx(Series, { children: _jsx(Series.Sequence, { durationInFrames: 1, children: _jsx(First, {}) }) }) }));
63
+ expect(outerHTML).toBe('');
64
+ });
65
+ test('Should throw if invalid or no duration provided', () => {
66
+ expect(() => {
67
+ renderForFrame(10, _jsx(Series, { children: _jsx(Series.Sequence, { durationInFrames: NaN, children: _jsx(First, {}) }) }));
68
+ }).toThrow(/The "durationInFrames" prop of a <Series.Sequence \/> component must be finite, but got NaN./);
69
+ expect(() => {
70
+ renderForFrame(10, _jsx(Series, { children: _jsx(Series.Sequence, { children: _jsx(First, {}) }) }));
71
+ }).toThrow(/The "durationInFrames" prop of a <Series.Sequence \/> component is missing./);
72
+ });
73
+ test('Should allow whitespace', () => {
74
+ const outerHtml = renderForFrame(11, _jsx(WrapSequenceContext, { children: _jsxs(Series, { children: [_jsx(Series.Sequence, { durationInFrames: 10, children: _jsx(First, {}) }), ' ', _jsx(Series.Sequence, { durationInFrames: 10, children: _jsx(Second, {}) })] }) }));
75
+ expect(outerHtml).toBe('<div style="position:absolute;top:0;left:0;right:0;bottom:0;width:100%;height:100%;display:flex"><div>second 1</div></div>');
76
+ });
77
+ test('Handle empty Series.Sequence', () => {
78
+ expect(() => renderForFrame(11, _jsxs(Series, { children: [_jsx(Series.Sequence, { durationInFrames: 10, children: _jsx(First, {}) }), _jsx(Series.Sequence, { durationInFrames: 10 })] }))).toThrow(/A <Series.Sequence \/> component \(index = 1, duration = 10\) was detected to not have any children\. Delete it to fix this error\./);
79
+ });
80
+ test('Should allow negative overlap prop', () => {
81
+ const outerHTML = renderForFrame(4, _jsx(WrapSequenceContext, { children: _jsxs(Series, { children: [_jsx(Series.Sequence, { durationInFrames: 5, layout: "none", children: _jsx(First, {}) }), _jsx(Series.Sequence, { offset: -1, layout: "none", durationInFrames: 5, children: _jsx(Second, {}) })] }) }));
82
+ expect(outerHTML).toBe('<div>first 4</div><div>second 0</div>');
83
+ });
84
+ test('Should allow positive overlap prop', () => {
85
+ const outerHTML = renderForFrame(5, _jsx(WrapSequenceContext, { children: _jsxs(Series, { children: [_jsx(Series.Sequence, { durationInFrames: 5, layout: "none", children: _jsx(First, {}) }), _jsx(Series.Sequence, { offset: 1, layout: "none", durationInFrames: 5, children: _jsx(Second, {}) })] }) }));
86
+ expect(outerHTML).toBe('');
87
+ });
88
+ test('Should disallow NaN as offset prop', () => {
89
+ expect(() => {
90
+ renderForFrame(9, _jsx(Series, { children: _jsx(Series.Sequence, { offset: NaN, layout: "none", durationInFrames: 5, children: _jsx(Second, {}) }) }));
91
+ }).toThrow(/The "offset" property of a <Series.Sequence \/> must not be NaN, but got NaN \(index = 0, duration = 5\)\./);
92
+ });
93
+ test('Should disallow Infinity as offset prop', () => {
94
+ expect(() => {
95
+ renderForFrame(9, _jsx(Series, { children: _jsx(Series.Sequence, { offset: Infinity, layout: "none", durationInFrames: 5, children: _jsx(Second, {}) }) }));
96
+ }).toThrow(/The "offset" property of a <Series.Sequence \/> must be finite, but got Infinity \(index = 0, duration = 5\)\./);
97
+ });
98
+ test('Should disallow non-integer numbers as offset prop', () => {
99
+ expect(() => {
100
+ renderForFrame(9, _jsx(Series, { children: _jsx(Series.Sequence, { offset: Math.PI, layout: "none", durationInFrames: 5, children: _jsx(Second, {}) }) }));
101
+ }).toThrow(/The "offset" property of a <Series.Sequence \/> must be finite, but got 3.141592653589793 \(index = 0, duration = 5\)\./);
102
+ });
103
+ test('Should cascade negative offset props', () => {
104
+ const outerHTML = renderForFrame(9, _jsx(WrapSequenceContext, { children: _jsxs(Series, { children: [_jsx(Series.Sequence, { durationInFrames: 5, layout: "none", children: _jsx(First, {}) }), _jsx(Series.Sequence, { offset: -1, layout: "none", durationInFrames: 5, children: _jsx(Second, {}) }), _jsx(Series.Sequence, { layout: "none", durationInFrames: 5, children: _jsx(Third, {}) })] }) }));
105
+ expect(outerHTML).toBe('<div>third 0</div>');
106
+ });
107
+ test('Should cascade positive offset props', () => {
108
+ const outerHTML = renderForFrame(11, _jsx(WrapSequenceContext, { children: _jsxs(Series, { children: [_jsx(Series.Sequence, { durationInFrames: 5, layout: "none", children: _jsx(First, {}) }), _jsx(Series.Sequence, { offset: 1, layout: "none", durationInFrames: 5, children: _jsx(Second, {}) }), _jsx(Series.Sequence, { layout: "none", durationInFrames: 5, children: _jsx(Third, {}) })] }) }));
109
+ expect(outerHTML).toBe('<div>third 0</div>');
110
+ });
111
+ test('Allow durationInFrames as Infinity for last Series.Sequence', () => {
112
+ const outerHTML = renderForFrame(10, _jsx(WrapSequenceContext, { children: _jsxs(Series, { children: [_jsx(Series.Sequence, { durationInFrames: 5, children: _jsx(First, {}) }), _jsx(Series.Sequence, { durationInFrames: 5, children: _jsx(Second, {}) }), _jsx(Series.Sequence, { durationInFrames: Infinity, children: _jsx(Third, {}) })] }) }));
113
+ expect(outerHTML).toBe('<div style="position:absolute;top:0;left:0;right:0;bottom:0;width:100%;height:100%;display:flex"><div>third 0</div></div>');
114
+ });
115
+ test('Disallow durationInFrames as Infinity for first n-1 Series.Sequence', () => {
116
+ expect(() => {
117
+ renderForFrame(10, _jsx(WrapSequenceContext, { children: _jsxs(Series, { children: [_jsx(Series.Sequence, { durationInFrames: 5, children: _jsx(First, {}) }), _jsx(Series.Sequence, { durationInFrames: Infinity, children: _jsx(Second, {}) }), _jsx(Series.Sequence, { durationInFrames: 5, children: _jsx(Third, {}) })] }) }));
118
+ }).toThrow(/The "durationInFrames" prop of a <Series.Sequence \/> component must be finite, but got Infinity\./);
119
+ });