@remotion/cli 3.1.10 → 3.2.1

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 (387) hide show
  1. package/dist/config/drop-silent-audio-if-silent.d.ts +2 -0
  2. package/dist/config/drop-silent-audio-if-silent.js +13 -0
  3. package/dist/config/enforce-audio-track.d.ts +2 -0
  4. package/dist/config/enforce-audio-track.js +13 -0
  5. package/dist/config/index.d.ts +4 -0
  6. package/dist/config/index.js +8 -0
  7. package/dist/config/muted.d.ts +2 -0
  8. package/dist/config/muted.js +13 -0
  9. package/dist/editor/components/Editor.js +3 -1
  10. package/dist/editor/components/InitialCompositionLoader.js +13 -0
  11. package/dist/editor/components/PlayPause.js +41 -23
  12. package/dist/editor/components/PreviewToolbar.js +2 -2
  13. package/dist/editor/components/Splitter/SplitterElement.js +1 -0
  14. package/dist/editor/components/TimeValue.js +9 -5
  15. package/dist/editor/components/Timeline/MaxTimelineTracks.d.ts +1 -0
  16. package/dist/editor/components/Timeline/MaxTimelineTracks.js +5 -3
  17. package/dist/editor/components/Timeline/Timeline.js +11 -4
  18. package/dist/editor/components/Timeline/TimelineDragHandler.js +120 -23
  19. package/dist/editor/components/Timeline/TimelineList.js +5 -4
  20. package/dist/editor/components/Timeline/TimelineListItem.d.ts +1 -0
  21. package/dist/editor/components/Timeline/TimelineListItem.js +8 -4
  22. package/dist/editor/components/Timeline/TimelinePlayCursorSyncer.js +3 -2
  23. package/dist/editor/components/Timeline/TimelineScrollable.js +3 -1
  24. package/dist/editor/components/Timeline/TimelineSlider.d.ts +3 -0
  25. package/dist/editor/components/Timeline/TimelineSlider.js +35 -2
  26. package/dist/editor/components/Timeline/TimelineSliderHandle.js +1 -3
  27. package/dist/editor/components/Timeline/TimelineTimeIndicators.d.ts +1 -1
  28. package/dist/editor/components/Timeline/TimelineTimeIndicators.js +106 -17
  29. package/dist/editor/components/Timeline/TimelineTracks.js +14 -9
  30. package/dist/editor/components/Timeline/TimelineZoomControls.js +1 -1
  31. package/dist/editor/components/Timeline/imperative-state.d.ts +3 -0
  32. package/dist/editor/components/Timeline/imperative-state.js +10 -1
  33. package/dist/editor/components/Timeline/timeline-refs.d.ts +2 -0
  34. package/dist/editor/components/Timeline/timeline-refs.js +3 -1
  35. package/dist/editor/components/Timeline/timeline-scroll-logic.d.ts +1 -1
  36. package/dist/editor/components/Timeline/timeline-scroll-logic.js +10 -7
  37. package/dist/editor/components/ZoomPersistor.d.ts +1 -1
  38. package/dist/editor/components/ZoomPersistor.js +4 -4
  39. package/dist/editor/helpers/colors.d.ts +1 -0
  40. package/dist/editor/helpers/colors.js +2 -1
  41. package/dist/editor/helpers/get-left-of-timeline-slider.d.ts +1 -0
  42. package/dist/editor/helpers/get-left-of-timeline-slider.js +7 -4
  43. package/dist/editor/helpers/get-timeline-sequence-layout.js +29 -9
  44. package/dist/get-cli-options.d.ts +2 -0
  45. package/dist/get-cli-options.js +2 -0
  46. package/dist/handle-common-errors.js +5 -0
  47. package/dist/index.d.ts +2 -0
  48. package/dist/parse-command-line.d.ts +2 -0
  49. package/dist/parse-command-line.js +8 -0
  50. package/dist/preview-server/error-overlay/remotion-overlay/Button.d.ts +1 -0
  51. package/dist/preview-server/error-overlay/remotion-overlay/Button.js +9 -2
  52. package/dist/preview-server/error-overlay/remotion-overlay/HelpLink.js +5 -1
  53. package/dist/preview-server/error-overlay/remotion-overlay/get-help-link.js +24 -0
  54. package/dist/preview-server/live-events.js +4 -0
  55. package/dist/preview-server/routes.js +16 -2
  56. package/dist/preview-server/start-server.js +1 -1
  57. package/dist/progress-bar.js +7 -2
  58. package/dist/render.js +3 -1
  59. package/dist/upgrade.js +1 -0
  60. package/dist/versions.js +1 -0
  61. package/package.json +7 -7
  62. package/dist/ansi/ansi-diff.d.ts.map +0 -1
  63. package/dist/ansi/ansi-diff.js.map +0 -1
  64. package/dist/ansi/ansi-regex.d.ts.map +0 -1
  65. package/dist/ansi/ansi-regex.js.map +0 -1
  66. package/dist/ansi/ansi-split.d.ts.map +0 -1
  67. package/dist/ansi/ansi-split.js.map +0 -1
  68. package/dist/check-version.d.ts.map +0 -1
  69. package/dist/check-version.js.map +0 -1
  70. package/dist/code-frame.d.ts.map +0 -1
  71. package/dist/code-frame.js.map +0 -1
  72. package/dist/compositions.d.ts.map +0 -1
  73. package/dist/compositions.js.map +0 -1
  74. package/dist/editor/components/AudioWaveform.d.ts.map +0 -1
  75. package/dist/editor/components/AudioWaveform.js.map +0 -1
  76. package/dist/editor/components/AudioWaveformBar.d.ts.map +0 -1
  77. package/dist/editor/components/AudioWaveformBar.js.map +0 -1
  78. package/dist/editor/components/Canvas.d.ts.map +0 -1
  79. package/dist/editor/components/Canvas.js.map +0 -1
  80. package/dist/editor/components/CheckboardToggle.d.ts.map +0 -1
  81. package/dist/editor/components/CheckboardToggle.js.map +0 -1
  82. package/dist/editor/components/ClipboardIcon.d.ts.map +0 -1
  83. package/dist/editor/components/ClipboardIcon.js.map +0 -1
  84. package/dist/editor/components/CompositionSelector.d.ts.map +0 -1
  85. package/dist/editor/components/CompositionSelector.js.map +0 -1
  86. package/dist/editor/components/CompositionSelectorItem.d.ts.map +0 -1
  87. package/dist/editor/components/CompositionSelectorItem.js.map +0 -1
  88. package/dist/editor/components/ControlButton.d.ts.map +0 -1
  89. package/dist/editor/components/ControlButton.js.map +0 -1
  90. package/dist/editor/components/CopyButton.d.ts.map +0 -1
  91. package/dist/editor/components/CopyButton.js.map +0 -1
  92. package/dist/editor/components/CurrentComposition.d.ts.map +0 -1
  93. package/dist/editor/components/CurrentComposition.js.map +0 -1
  94. package/dist/editor/components/Editor.d.ts.map +0 -1
  95. package/dist/editor/components/Editor.js.map +0 -1
  96. package/dist/editor/components/EditorContent.d.ts.map +0 -1
  97. package/dist/editor/components/EditorContent.js.map +0 -1
  98. package/dist/editor/components/FpsCounter.d.ts.map +0 -1
  99. package/dist/editor/components/FpsCounter.js.map +0 -1
  100. package/dist/editor/components/FramePersistor.d.ts.map +0 -1
  101. package/dist/editor/components/FramePersistor.js.map +0 -1
  102. package/dist/editor/components/GlobalKeybindings.d.ts.map +0 -1
  103. package/dist/editor/components/GlobalKeybindings.js.map +0 -1
  104. package/dist/editor/components/KeyboardShortcutsModal.d.ts.map +0 -1
  105. package/dist/editor/components/KeyboardShortcutsModal.js.map +0 -1
  106. package/dist/editor/components/LoadingIndicator.d.ts +0 -3
  107. package/dist/editor/components/LoadingIndicator.d.ts.map +0 -1
  108. package/dist/editor/components/LoadingIndicator.js +0 -36
  109. package/dist/editor/components/LoadingIndicator.js.map +0 -1
  110. package/dist/editor/components/LoopToggle.d.ts.map +0 -1
  111. package/dist/editor/components/LoopToggle.js.map +0 -1
  112. package/dist/editor/components/Menu/MenuDivider.d.ts.map +0 -1
  113. package/dist/editor/components/Menu/MenuDivider.js.map +0 -1
  114. package/dist/editor/components/Menu/MenuItem.d.ts.map +0 -1
  115. package/dist/editor/components/Menu/MenuItem.js.map +0 -1
  116. package/dist/editor/components/Menu/MenuSubItem.d.ts.map +0 -1
  117. package/dist/editor/components/Menu/MenuSubItem.js.map +0 -1
  118. package/dist/editor/components/Menu/SubMenu.d.ts.map +0 -1
  119. package/dist/editor/components/Menu/SubMenu.js.map +0 -1
  120. package/dist/editor/components/Menu/portals.d.ts.map +0 -1
  121. package/dist/editor/components/Menu/portals.js.map +0 -1
  122. package/dist/editor/components/Menu/styles.d.ts.map +0 -1
  123. package/dist/editor/components/Menu/styles.js.map +0 -1
  124. package/dist/editor/components/MenuToolbar.d.ts.map +0 -1
  125. package/dist/editor/components/MenuToolbar.js.map +0 -1
  126. package/dist/editor/components/ModalContainer.d.ts.map +0 -1
  127. package/dist/editor/components/ModalContainer.js.map +0 -1
  128. package/dist/editor/components/ModalHeader.d.ts.map +0 -1
  129. package/dist/editor/components/ModalHeader.js.map +0 -1
  130. package/dist/editor/components/MuteToggle.d.ts.map +0 -1
  131. package/dist/editor/components/MuteToggle.js.map +0 -1
  132. package/dist/editor/components/NewComposition/CancelButton.d.ts.map +0 -1
  133. package/dist/editor/components/NewComposition/CancelButton.js.map +0 -1
  134. package/dist/editor/components/NewComposition/ComboBox.d.ts.map +0 -1
  135. package/dist/editor/components/NewComposition/ComboBox.js.map +0 -1
  136. package/dist/editor/components/NewComposition/CopyHint.d.ts.map +0 -1
  137. package/dist/editor/components/NewComposition/CopyHint.js.map +0 -1
  138. package/dist/editor/components/NewComposition/InputDragger.d.ts.map +0 -1
  139. package/dist/editor/components/NewComposition/InputDragger.js.map +0 -1
  140. package/dist/editor/components/NewComposition/MenuContent.d.ts.map +0 -1
  141. package/dist/editor/components/NewComposition/MenuContent.js.map +0 -1
  142. package/dist/editor/components/NewComposition/NewCompAspectRatio.d.ts.map +0 -1
  143. package/dist/editor/components/NewComposition/NewCompAspectRatio.js.map +0 -1
  144. package/dist/editor/components/NewComposition/NewCompCode.d.ts.map +0 -1
  145. package/dist/editor/components/NewComposition/NewCompCode.js.map +0 -1
  146. package/dist/editor/components/NewComposition/NewCompDuration.d.ts.map +0 -1
  147. package/dist/editor/components/NewComposition/NewCompDuration.js.map +0 -1
  148. package/dist/editor/components/NewComposition/NewComposition.d.ts.map +0 -1
  149. package/dist/editor/components/NewComposition/NewComposition.js.map +0 -1
  150. package/dist/editor/components/NewComposition/RemInput.d.ts.map +0 -1
  151. package/dist/editor/components/NewComposition/RemInput.js.map +0 -1
  152. package/dist/editor/components/NewComposition/ToggleAspectRatio.d.ts.map +0 -1
  153. package/dist/editor/components/NewComposition/ToggleAspectRatio.js.map +0 -1
  154. package/dist/editor/components/NewComposition/ValidationMessage.d.ts.map +0 -1
  155. package/dist/editor/components/NewComposition/ValidationMessage.js.map +0 -1
  156. package/dist/editor/components/NewComposition/new-comp-layout.d.ts.map +0 -1
  157. package/dist/editor/components/NewComposition/new-comp-layout.js.map +0 -1
  158. package/dist/editor/components/NewComposition/render-aspect-ratio.d.ts.map +0 -1
  159. package/dist/editor/components/NewComposition/render-aspect-ratio.js.map +0 -1
  160. package/dist/editor/components/PlayPause.d.ts.map +0 -1
  161. package/dist/editor/components/PlayPause.js.map +0 -1
  162. package/dist/editor/components/PlaybackKeyboardShortcutsManager.d.ts.map +0 -1
  163. package/dist/editor/components/PlaybackKeyboardShortcutsManager.js.map +0 -1
  164. package/dist/editor/components/PlaybackRatePersistor.d.ts.map +0 -1
  165. package/dist/editor/components/PlaybackRatePersistor.js.map +0 -1
  166. package/dist/editor/components/PlaybackRateSelector.d.ts.map +0 -1
  167. package/dist/editor/components/PlaybackRateSelector.js.map +0 -1
  168. package/dist/editor/components/Preview.d.ts.map +0 -1
  169. package/dist/editor/components/Preview.js.map +0 -1
  170. package/dist/editor/components/PreviewToolbar.d.ts.map +0 -1
  171. package/dist/editor/components/PreviewToolbar.js.map +0 -1
  172. package/dist/editor/components/RichTimelineToggle.d.ts.map +0 -1
  173. package/dist/editor/components/RichTimelineToggle.js.map +0 -1
  174. package/dist/editor/components/SizeSelector.d.ts.map +0 -1
  175. package/dist/editor/components/SizeSelector.js.map +0 -1
  176. package/dist/editor/components/Splitter/SplitterContainer.d.ts.map +0 -1
  177. package/dist/editor/components/Splitter/SplitterContainer.js.map +0 -1
  178. package/dist/editor/components/Splitter/SplitterContext.d.ts.map +0 -1
  179. package/dist/editor/components/Splitter/SplitterContext.js.map +0 -1
  180. package/dist/editor/components/Splitter/SplitterElement.d.ts.map +0 -1
  181. package/dist/editor/components/Splitter/SplitterElement.js.map +0 -1
  182. package/dist/editor/components/Splitter/SplitterHandle.d.ts.map +0 -1
  183. package/dist/editor/components/Splitter/SplitterHandle.js.map +0 -1
  184. package/dist/editor/components/Thumbnail.d.ts.map +0 -1
  185. package/dist/editor/components/Thumbnail.js.map +0 -1
  186. package/dist/editor/components/TimeValue.d.ts.map +0 -1
  187. package/dist/editor/components/TimeValue.js.map +0 -1
  188. package/dist/editor/components/Timeline/LoopedIndicator.d.ts.map +0 -1
  189. package/dist/editor/components/Timeline/LoopedIndicator.js.map +0 -1
  190. package/dist/editor/components/Timeline/LoopedTimelineIndicators.d.ts.map +0 -1
  191. package/dist/editor/components/Timeline/LoopedTimelineIndicators.js.map +0 -1
  192. package/dist/editor/components/Timeline/MaxTimelineTracks.d.ts.map +0 -1
  193. package/dist/editor/components/Timeline/MaxTimelineTracks.js.map +0 -1
  194. package/dist/editor/components/Timeline/Timeline.d.ts.map +0 -1
  195. package/dist/editor/components/Timeline/Timeline.js.map +0 -1
  196. package/dist/editor/components/Timeline/TimelineCollapseToggle.d.ts.map +0 -1
  197. package/dist/editor/components/Timeline/TimelineCollapseToggle.js.map +0 -1
  198. package/dist/editor/components/Timeline/TimelineDragHandler.d.ts.map +0 -1
  199. package/dist/editor/components/Timeline/TimelineDragHandler.js.map +0 -1
  200. package/dist/editor/components/Timeline/TimelineInOutPointer.d.ts.map +0 -1
  201. package/dist/editor/components/Timeline/TimelineInOutPointer.js.map +0 -1
  202. package/dist/editor/components/Timeline/TimelineInOutPointerHandle.d.ts.map +0 -1
  203. package/dist/editor/components/Timeline/TimelineInOutPointerHandle.js.map +0 -1
  204. package/dist/editor/components/Timeline/TimelineList.d.ts.map +0 -1
  205. package/dist/editor/components/Timeline/TimelineList.js.map +0 -1
  206. package/dist/editor/components/Timeline/TimelineListItem.d.ts.map +0 -1
  207. package/dist/editor/components/Timeline/TimelineListItem.js.map +0 -1
  208. package/dist/editor/components/Timeline/TimelineSequence.d.ts.map +0 -1
  209. package/dist/editor/components/Timeline/TimelineSequence.js.map +0 -1
  210. package/dist/editor/components/Timeline/TimelineSequenceFrame.d.ts.map +0 -1
  211. package/dist/editor/components/Timeline/TimelineSequenceFrame.js.map +0 -1
  212. package/dist/editor/components/Timeline/TimelineSlider.d.ts.map +0 -1
  213. package/dist/editor/components/Timeline/TimelineSlider.js.map +0 -1
  214. package/dist/editor/components/Timeline/TimelineSliderHandle.d.ts.map +0 -1
  215. package/dist/editor/components/Timeline/TimelineSliderHandle.js.map +0 -1
  216. package/dist/editor/components/Timeline/TimelineTracks.d.ts.map +0 -1
  217. package/dist/editor/components/Timeline/TimelineTracks.js.map +0 -1
  218. package/dist/editor/components/Timeline/TimelineVideoInfo.d.ts.map +0 -1
  219. package/dist/editor/components/Timeline/TimelineVideoInfo.js.map +0 -1
  220. package/dist/editor/components/Timeline/is-collapsed.d.ts.map +0 -1
  221. package/dist/editor/components/Timeline/is-collapsed.js.map +0 -1
  222. package/dist/editor/components/Timeline/timeline-refs.d.ts.map +0 -1
  223. package/dist/editor/components/Timeline/timeline-refs.js.map +0 -1
  224. package/dist/editor/components/Timeline/timeline-state-reducer.d.ts.map +0 -1
  225. package/dist/editor/components/Timeline/timeline-state-reducer.js.map +0 -1
  226. package/dist/editor/components/TimelineInOutToggle.d.ts.map +0 -1
  227. package/dist/editor/components/TimelineInOutToggle.js.map +0 -1
  228. package/dist/editor/components/TopPanel.d.ts.map +0 -1
  229. package/dist/editor/components/TopPanel.js.map +0 -1
  230. package/dist/editor/components/UpdateCheck.d.ts.map +0 -1
  231. package/dist/editor/components/UpdateCheck.js.map +0 -1
  232. package/dist/editor/components/UpdateModal/UpdateModal.d.ts.map +0 -1
  233. package/dist/editor/components/UpdateModal/UpdateModal.js.map +0 -1
  234. package/dist/editor/components/layout.d.ts.map +0 -1
  235. package/dist/editor/components/layout.js.map +0 -1
  236. package/dist/editor/helpers/calculate-timeline.d.ts.map +0 -1
  237. package/dist/editor/helpers/calculate-timeline.js.map +0 -1
  238. package/dist/editor/helpers/checkerboard-background.d.ts.map +0 -1
  239. package/dist/editor/helpers/checkerboard-background.js.map +0 -1
  240. package/dist/editor/helpers/colors.d.ts.map +0 -1
  241. package/dist/editor/helpers/colors.js.map +0 -1
  242. package/dist/editor/helpers/copy-text.d.ts.map +0 -1
  243. package/dist/editor/helpers/copy-text.js.map +0 -1
  244. package/dist/editor/helpers/get-left-of-timeline-slider.d.ts.map +0 -1
  245. package/dist/editor/helpers/get-left-of-timeline-slider.js.map +0 -1
  246. package/dist/editor/helpers/get-sequence-visible-range.d.ts.map +0 -1
  247. package/dist/editor/helpers/get-sequence-visible-range.js.map +0 -1
  248. package/dist/editor/helpers/get-timeline-nestedness.d.ts.map +0 -1
  249. package/dist/editor/helpers/get-timeline-nestedness.js.map +0 -1
  250. package/dist/editor/helpers/get-timeline-sequence-hash.d.ts.map +0 -1
  251. package/dist/editor/helpers/get-timeline-sequence-hash.js.map +0 -1
  252. package/dist/editor/helpers/get-timeline-sequence-layout.d.ts.map +0 -1
  253. package/dist/editor/helpers/get-timeline-sequence-layout.js.map +0 -1
  254. package/dist/editor/helpers/get-timeline-sequence-sort-key.d.ts.map +0 -1
  255. package/dist/editor/helpers/get-timeline-sequence-sort-key.js.map +0 -1
  256. package/dist/editor/helpers/is-composition-still.d.ts.map +0 -1
  257. package/dist/editor/helpers/is-composition-still.js.map +0 -1
  258. package/dist/editor/helpers/is-current-selected-still.d.ts.map +0 -1
  259. package/dist/editor/helpers/is-current-selected-still.js.map +0 -1
  260. package/dist/editor/helpers/noop.d.ts.map +0 -1
  261. package/dist/editor/helpers/noop.js.map +0 -1
  262. package/dist/editor/helpers/timeline-layout.d.ts.map +0 -1
  263. package/dist/editor/helpers/timeline-layout.js.map +0 -1
  264. package/dist/editor/helpers/use-keybinding.d.ts.map +0 -1
  265. package/dist/editor/helpers/use-keybinding.js.map +0 -1
  266. package/dist/editor/helpers/validate-new-comp-data.d.ts.map +0 -1
  267. package/dist/editor/helpers/validate-new-comp-data.js.map +0 -1
  268. package/dist/editor/icons/Checkmark.d.ts.map +0 -1
  269. package/dist/editor/icons/Checkmark.js.map +0 -1
  270. package/dist/editor/icons/caret.d.ts.map +0 -1
  271. package/dist/editor/icons/caret.js.map +0 -1
  272. package/dist/editor/icons/film.d.ts.map +0 -1
  273. package/dist/editor/icons/film.js.map +0 -1
  274. package/dist/editor/icons/keys.d.ts.map +0 -1
  275. package/dist/editor/icons/keys.js.map +0 -1
  276. package/dist/editor/icons/lock.d.ts.map +0 -1
  277. package/dist/editor/icons/lock.js.map +0 -1
  278. package/dist/editor/icons/media-volume.d.ts.map +0 -1
  279. package/dist/editor/icons/media-volume.js.map +0 -1
  280. package/dist/editor/icons/pause.d.ts.map +0 -1
  281. package/dist/editor/icons/pause.js.map +0 -1
  282. package/dist/editor/icons/play.d.ts.map +0 -1
  283. package/dist/editor/icons/play.js.map +0 -1
  284. package/dist/editor/icons/step-back.d.ts.map +0 -1
  285. package/dist/editor/icons/step-back.js.map +0 -1
  286. package/dist/editor/icons/step-forward.d.ts.map +0 -1
  287. package/dist/editor/icons/step-forward.js.map +0 -1
  288. package/dist/editor/icons/still.d.ts.map +0 -1
  289. package/dist/editor/icons/still.js.map +0 -1
  290. package/dist/editor/icons/timeline.d.ts.map +0 -1
  291. package/dist/editor/icons/timeline.js.map +0 -1
  292. package/dist/editor/icons/timelineInOutPointer.d.ts.map +0 -1
  293. package/dist/editor/icons/timelineInOutPointer.js.map +0 -1
  294. package/dist/editor/state/aspect-ratio-locked.d.ts.map +0 -1
  295. package/dist/editor/state/aspect-ratio-locked.js.map +0 -1
  296. package/dist/editor/state/checkerboard.d.ts.map +0 -1
  297. package/dist/editor/state/checkerboard.js.map +0 -1
  298. package/dist/editor/state/highest-z-index.d.ts.map +0 -1
  299. package/dist/editor/state/highest-z-index.js.map +0 -1
  300. package/dist/editor/state/input-dragger-click-lock.d.ts.map +0 -1
  301. package/dist/editor/state/input-dragger-click-lock.js.map +0 -1
  302. package/dist/editor/state/keybindings.d.ts.map +0 -1
  303. package/dist/editor/state/keybindings.js.map +0 -1
  304. package/dist/editor/state/loop.d.ts.map +0 -1
  305. package/dist/editor/state/loop.js.map +0 -1
  306. package/dist/editor/state/marks.d.ts.map +0 -1
  307. package/dist/editor/state/marks.js.map +0 -1
  308. package/dist/editor/state/modals.d.ts.map +0 -1
  309. package/dist/editor/state/modals.js.map +0 -1
  310. package/dist/editor/state/mute.d.ts.map +0 -1
  311. package/dist/editor/state/mute.js.map +0 -1
  312. package/dist/editor/state/playbackrate.d.ts.map +0 -1
  313. package/dist/editor/state/playbackrate.js.map +0 -1
  314. package/dist/editor/state/preview-size.d.ts.map +0 -1
  315. package/dist/editor/state/preview-size.js.map +0 -1
  316. package/dist/editor/state/render-frame.d.ts.map +0 -1
  317. package/dist/editor/state/render-frame.js.map +0 -1
  318. package/dist/editor/state/rich-timeline.d.ts.map +0 -1
  319. package/dist/editor/state/rich-timeline.js.map +0 -1
  320. package/dist/editor/state/timeline-ref.d.ts.map +0 -1
  321. package/dist/editor/state/timeline-ref.js.map +0 -1
  322. package/dist/editor/state/timeline.d.ts.map +0 -1
  323. package/dist/editor/state/timeline.js.map +0 -1
  324. package/dist/editor/state/z-index.d.ts.map +0 -1
  325. package/dist/editor/state/z-index.js.map +0 -1
  326. package/dist/get-cli-options.d.ts.map +0 -1
  327. package/dist/get-cli-options.js.map +0 -1
  328. package/dist/get-composition-id.d.ts.map +0 -1
  329. package/dist/get-composition-id.js.map +0 -1
  330. package/dist/get-config-file-name.d.ts.map +0 -1
  331. package/dist/get-config-file-name.js.map +0 -1
  332. package/dist/get-env.d.ts.map +0 -1
  333. package/dist/get-env.js.map +0 -1
  334. package/dist/get-filename.d.ts.map +0 -1
  335. package/dist/get-filename.js.map +0 -1
  336. package/dist/get-input-props.d.ts.map +0 -1
  337. package/dist/get-input-props.js.map +0 -1
  338. package/dist/handle-common-errors.d.ts.map +0 -1
  339. package/dist/handle-common-errors.js.map +0 -1
  340. package/dist/image-formats.d.ts.map +0 -1
  341. package/dist/image-formats.js.map +0 -1
  342. package/dist/index.d.ts.map +0 -1
  343. package/dist/index.js.map +0 -1
  344. package/dist/initialize-render-cli.d.ts.map +0 -1
  345. package/dist/initialize-render-cli.js.map +0 -1
  346. package/dist/is-javascript.d.ts.map +0 -1
  347. package/dist/is-javascript.js.map +0 -1
  348. package/dist/lambda-command.d.ts.map +0 -1
  349. package/dist/lambda-command.js.map +0 -1
  350. package/dist/load-config.d.ts.map +0 -1
  351. package/dist/load-config.js.map +0 -1
  352. package/dist/log.d.ts.map +0 -1
  353. package/dist/log.js.map +0 -1
  354. package/dist/parse-command-line.d.ts.map +0 -1
  355. package/dist/parse-command-line.js.map +0 -1
  356. package/dist/preview.d.ts.map +0 -1
  357. package/dist/preview.js.map +0 -1
  358. package/dist/previewEntry.d.ts.map +0 -1
  359. package/dist/previewEntry.js.map +0 -1
  360. package/dist/print-error.d.ts.map +0 -1
  361. package/dist/print-error.js.map +0 -1
  362. package/dist/print-help.d.ts.map +0 -1
  363. package/dist/print-help.js.map +0 -1
  364. package/dist/progress-bar.d.ts.map +0 -1
  365. package/dist/progress-bar.js.map +0 -1
  366. package/dist/render.d.ts.map +0 -1
  367. package/dist/render.js.map +0 -1
  368. package/dist/resolve-from.d.ts.map +0 -1
  369. package/dist/resolve-from.js.map +0 -1
  370. package/dist/setup-cache.d.ts.map +0 -1
  371. package/dist/setup-cache.js.map +0 -1
  372. package/dist/step.d.ts.map +0 -1
  373. package/dist/step.js.map +0 -1
  374. package/dist/still.d.ts.map +0 -1
  375. package/dist/still.js.map +0 -1
  376. package/dist/upgrade.d.ts.map +0 -1
  377. package/dist/upgrade.js.map +0 -1
  378. package/dist/user-passed-output-location.d.ts.map +0 -1
  379. package/dist/user-passed-output-location.js.map +0 -1
  380. package/dist/validate-ffmpeg-version.d.ts.map +0 -1
  381. package/dist/validate-ffmpeg-version.js.map +0 -1
  382. package/dist/versions.d.ts.map +0 -1
  383. package/dist/versions.js.map +0 -1
  384. package/dist/warn-about-ffmpeg-version.d.ts.map +0 -1
  385. package/dist/warn-about-ffmpeg-version.js.map +0 -1
  386. package/dist/webpack-cache.d.ts +0 -12
  387. package/dist/webpack-cache.js +0 -66
@@ -0,0 +1,2 @@
1
+ export declare const setDropAudioIfSilent: (muted: boolean) => void;
2
+ export declare const getDropAudioIfSilent: () => boolean;
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getDropAudioIfSilent = exports.setDropAudioIfSilent = void 0;
4
+ const DEFAULT_DROP_AUDIO_IF_SILENT_STATE = true;
5
+ let mutedState = DEFAULT_DROP_AUDIO_IF_SILENT_STATE;
6
+ const setDropAudioIfSilent = (muted) => {
7
+ mutedState = muted;
8
+ };
9
+ exports.setDropAudioIfSilent = setDropAudioIfSilent;
10
+ const getDropAudioIfSilent = () => {
11
+ return mutedState;
12
+ };
13
+ exports.getDropAudioIfSilent = getDropAudioIfSilent;
@@ -0,0 +1,2 @@
1
+ export declare const setEnforceAudioTrack: (enforceAudioTrack: boolean) => void;
2
+ export declare const getEnforceAudioTrack: () => boolean;
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getEnforceAudioTrack = exports.setEnforceAudioTrack = void 0;
4
+ const DEFAULT_ENFORCE_AUDIO_TRACK = true;
5
+ let enforceAudioTrackState = DEFAULT_ENFORCE_AUDIO_TRACK;
6
+ const setEnforceAudioTrack = (enforceAudioTrack) => {
7
+ enforceAudioTrackState = enforceAudioTrack;
8
+ };
9
+ exports.setEnforceAudioTrack = setEnforceAudioTrack;
10
+ const getEnforceAudioTrack = () => {
11
+ return enforceAudioTrackState;
12
+ };
13
+ exports.getEnforceAudioTrack = getEnforceAudioTrack;
@@ -39,5 +39,9 @@ export declare const ConfigInternals: {
39
39
  setStillFrame: (frame: number) => void;
40
40
  getMaxTimelineTracks: () => number;
41
41
  defaultOverrideFunction: WebpackOverrideFn;
42
+ setMuted: (muted: boolean) => void;
43
+ getMuted: () => boolean;
44
+ getEnforceAudioTrack: () => boolean;
45
+ setEnforceAudioTrack: (enforceAudioTrack: boolean) => void;
42
46
  };
43
47
  export declare const overrideRemotion: () => void;
@@ -57,6 +57,7 @@ const chromium_flags_2 = require("./chromium-flags");
57
57
  const codec_2 = require("./codec");
58
58
  const concurrency_2 = require("./concurrency");
59
59
  const crf_2 = require("./crf");
60
+ const enforce_audio_track_1 = require("./enforce-audio-track");
60
61
  const env_file_2 = require("./env-file");
61
62
  const every_nth_frame_2 = require("./every-nth-frame");
62
63
  const ffmpeg_executable_2 = require("./ffmpeg-executable");
@@ -65,6 +66,7 @@ const image_format_2 = require("./image-format");
65
66
  const image_sequence_2 = require("./image-sequence");
66
67
  const log_1 = require("./log");
67
68
  const max_timeline_tracks_2 = require("./max-timeline-tracks");
69
+ const muted_1 = require("./muted");
68
70
  const number_of_gif_loops_2 = require("./number-of-gif-loops");
69
71
  const output_location_2 = require("./output-location");
70
72
  const override_webpack_2 = require("./override-webpack");
@@ -107,6 +109,8 @@ exports.Config = {
107
109
  setScale: scale_2.setScale,
108
110
  setEveryNthFrame: every_nth_frame_2.setEveryNthFrame,
109
111
  setNumberOfGifLoops: number_of_gif_loops_2.setNumberOfGifLoops,
112
+ setMuted: muted_1.setMuted,
113
+ setEnforceAudioTrack: enforce_audio_track_1.setEnforceAudioTrack,
110
114
  },
111
115
  Output: {
112
116
  setOutputLocation: output_location_2.setOutputLocation,
@@ -154,6 +158,10 @@ exports.ConfigInternals = {
154
158
  setStillFrame: still_frame_1.setStillFrame,
155
159
  getMaxTimelineTracks: max_timeline_tracks_1.getMaxTimelineTracks,
156
160
  defaultOverrideFunction: override_webpack_1.defaultOverrideFunction,
161
+ setMuted: muted_1.setMuted,
162
+ getMuted: muted_1.getMuted,
163
+ getEnforceAudioTrack: enforce_audio_track_1.getEnforceAudioTrack,
164
+ setEnforceAudioTrack: enforce_audio_track_1.setEnforceAudioTrack,
157
165
  };
158
166
  const overrideRemotion = () => {
159
167
  Object.assign(remotion_1.Config, exports.Config);
@@ -0,0 +1,2 @@
1
+ export declare const setMuted: (muted: boolean) => void;
2
+ export declare const getMuted: () => boolean;
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getMuted = exports.setMuted = void 0;
4
+ const DEFAULT_MUTED_STATE = false;
5
+ let mutedState = DEFAULT_MUTED_STATE;
6
+ const setMuted = (muted) => {
7
+ mutedState = muted;
8
+ };
9
+ exports.setMuted = setMuted;
10
+ const getMuted = () => {
11
+ return mutedState;
12
+ };
13
+ exports.getMuted = getMuted;
@@ -20,6 +20,7 @@ const mute_1 = require("../state/mute");
20
20
  const preview_size_1 = require("../state/preview-size");
21
21
  const rich_timeline_1 = require("../state/rich-timeline");
22
22
  const sidebar_1 = require("../state/sidebar");
23
+ const timeline_zoom_1 = require("../state/timeline-zoom");
23
24
  const z_index_1 = require("../state/z-index");
24
25
  const EditorContent_1 = require("./EditorContent");
25
26
  const FramePersistor_1 = require("./FramePersistor");
@@ -29,6 +30,7 @@ const NewComposition_1 = __importDefault(require("./NewComposition/NewCompositio
29
30
  const NoRegisterRoot_1 = require("./NoRegisterRoot");
30
31
  const NotificationCenter_1 = require("./Notifications/NotificationCenter");
31
32
  const UpdateModal_1 = require("./UpdateModal/UpdateModal");
33
+ const ZoomPersistor_1 = require("./ZoomPersistor");
32
34
  const background = {
33
35
  backgroundColor: colors_1.BACKGROUND,
34
36
  display: 'flex',
@@ -131,7 +133,7 @@ const Editor = () => {
131
133
  });
132
134
  return () => cleanup();
133
135
  }, [Root, waitForRoot]);
134
- return ((0, jsx_runtime_1.jsx)(keybindings_1.KeybindingContextProvider, { children: (0, jsx_runtime_1.jsx)(rich_timeline_1.RichTimelineContext.Provider, { value: richTimelineCtx, children: (0, jsx_runtime_1.jsx)(checkerboard_1.CheckerboardContext.Provider, { value: checkerboardCtx, children: (0, jsx_runtime_1.jsx)(preview_size_1.PreviewSizeContext.Provider, { value: previewSizeCtx, children: (0, jsx_runtime_1.jsx)(modals_1.ModalsContext.Provider, { value: modalsContext, children: (0, jsx_runtime_1.jsx)(in_out_1.TimelineInOutContext.Provider, { value: timelineInOutContextValue, children: (0, jsx_runtime_1.jsx)(in_out_1.SetTimelineInOutContext.Provider, { value: setTimelineInOutContextValue, children: (0, jsx_runtime_1.jsx)(remotion_1.Internals.MediaVolumeContext.Provider, { value: mediaVolumeContextValue, children: (0, jsx_runtime_1.jsx)(remotion_1.Internals.SetMediaVolumeContext.Provider, { value: setMediaVolumeContextValue, children: (0, jsx_runtime_1.jsx)(player_1.PlayerInternals.PlayerEventEmitterContext.Provider, { value: emitter, children: (0, jsx_runtime_1.jsx)(sidebar_1.SidebarContextProvider, { children: (0, jsx_runtime_1.jsx)(folders_1.FolderContextProvider, { children: (0, jsx_runtime_1.jsx)(highest_z_index_1.HighestZIndexProvider, { children: (0, jsx_runtime_1.jsxs)(z_index_1.HigherZIndex, { onEscape: noop_1.noop, onOutsideClick: noop_1.noop, children: [(0, jsx_runtime_1.jsxs)("div", { style: background, children: [Root === null ? null : (0, jsx_runtime_1.jsx)(Root, {}), (0, jsx_runtime_1.jsxs)(remotion_1.Internals.CanUseRemotionHooksProvider, { children: [(0, jsx_runtime_1.jsx)(FramePersistor_1.FramePersistor, {}), Root === null ? ((0, jsx_runtime_1.jsx)(NoRegisterRoot_1.NoRegisterRoot, {})) : ((0, jsx_runtime_1.jsx)(EditorContent_1.EditorContent, {})), (0, jsx_runtime_1.jsx)(GlobalKeybindings_1.GlobalKeybindings, {})] })] }), (0, jsx_runtime_1.jsx)(NotificationCenter_1.NotificationCenter, {}), modalContextType &&
136
+ return ((0, jsx_runtime_1.jsx)(keybindings_1.KeybindingContextProvider, { children: (0, jsx_runtime_1.jsx)(rich_timeline_1.RichTimelineContext.Provider, { value: richTimelineCtx, children: (0, jsx_runtime_1.jsx)(checkerboard_1.CheckerboardContext.Provider, { value: checkerboardCtx, children: (0, jsx_runtime_1.jsx)(preview_size_1.PreviewSizeContext.Provider, { value: previewSizeCtx, children: (0, jsx_runtime_1.jsx)(modals_1.ModalsContext.Provider, { value: modalsContext, children: (0, jsx_runtime_1.jsx)(in_out_1.TimelineInOutContext.Provider, { value: timelineInOutContextValue, children: (0, jsx_runtime_1.jsx)(in_out_1.SetTimelineInOutContext.Provider, { value: setTimelineInOutContextValue, children: (0, jsx_runtime_1.jsx)(remotion_1.Internals.MediaVolumeContext.Provider, { value: mediaVolumeContextValue, children: (0, jsx_runtime_1.jsx)(remotion_1.Internals.SetMediaVolumeContext.Provider, { value: setMediaVolumeContextValue, children: (0, jsx_runtime_1.jsx)(player_1.PlayerInternals.PlayerEventEmitterContext.Provider, { value: emitter, children: (0, jsx_runtime_1.jsx)(sidebar_1.SidebarContextProvider, { children: (0, jsx_runtime_1.jsx)(folders_1.FolderContextProvider, { children: (0, jsx_runtime_1.jsx)(highest_z_index_1.HighestZIndexProvider, { children: (0, jsx_runtime_1.jsxs)(z_index_1.HigherZIndex, { onEscape: noop_1.noop, onOutsideClick: noop_1.noop, children: [(0, jsx_runtime_1.jsx)(timeline_zoom_1.TimelineZoomContext, { children: (0, jsx_runtime_1.jsxs)("div", { style: background, children: [Root === null ? null : (0, jsx_runtime_1.jsx)(Root, {}), (0, jsx_runtime_1.jsxs)(remotion_1.Internals.CanUseRemotionHooksProvider, { children: [(0, jsx_runtime_1.jsx)(FramePersistor_1.FramePersistor, {}), (0, jsx_runtime_1.jsx)(ZoomPersistor_1.ZoomPersistor, {}), Root === null ? ((0, jsx_runtime_1.jsx)(NoRegisterRoot_1.NoRegisterRoot, {})) : ((0, jsx_runtime_1.jsx)(EditorContent_1.EditorContent, {})), (0, jsx_runtime_1.jsx)(GlobalKeybindings_1.GlobalKeybindings, {})] })] }) }), (0, jsx_runtime_1.jsx)(NotificationCenter_1.NotificationCenter, {}), modalContextType &&
135
137
  modalContextType.type === 'new-comp' && ((0, jsx_runtime_1.jsx)(NewComposition_1.default, { initialCompType: modalContextType.compType })), modalContextType &&
136
138
  modalContextType.type === 'update' && ((0, jsx_runtime_1.jsx)(UpdateModal_1.UpdateModal, { info: modalContextType.info })), modalContextType &&
137
139
  modalContextType.type === 'shortcuts' && ((0, jsx_runtime_1.jsx)(KeyboardShortcutsModal_1.KeyboardShortcuts, {}))] }) }) }) }) }) }) }) }) }) }) }) }) }) }));
@@ -5,13 +5,17 @@ const react_1 = require("react");
5
5
  const remotion_1 = require("remotion");
6
6
  const folders_1 = require("../state/folders");
7
7
  const marks_1 = require("../state/marks");
8
+ const timeline_zoom_1 = require("../state/timeline-zoom");
8
9
  const CompositionSelector_1 = require("./CompositionSelector");
9
10
  const FramePersistor_1 = require("./FramePersistor");
11
+ const timeline_scroll_logic_1 = require("./Timeline/timeline-scroll-logic");
10
12
  const TimelineInOutToggle_1 = require("./TimelineInOutToggle");
13
+ const ZoomPersistor_1 = require("./ZoomPersistor");
11
14
  const useSelectComposition = () => {
12
15
  const setCurrentFrame = remotion_1.Internals.Timeline.useTimelineSetFrame();
13
16
  const { setCurrentComposition } = (0, react_1.useContext)(remotion_1.Internals.CompositionManager);
14
17
  const { setFoldersExpanded } = (0, react_1.useContext)(folders_1.FolderContext);
18
+ const { setZoom } = (0, react_1.useContext)(timeline_zoom_1.TimelineZoomCtx);
15
19
  return (c, push) => {
16
20
  var _a;
17
21
  (_a = TimelineInOutToggle_1.inOutHandles.current) === null || _a === void 0 ? void 0 : _a.setMarks((0, marks_1.loadMarks)(c.id, c.durationInFrames));
@@ -19,9 +23,18 @@ const useSelectComposition = () => {
19
23
  window.history.pushState({}, 'Preview', `/${c.id}`);
20
24
  }
21
25
  const frame = (0, FramePersistor_1.getFrameForComposition)(c.id);
26
+ const zoom = (0, ZoomPersistor_1.getZoomForComposition)(c.id);
22
27
  const frameInBounds = Math.min(c.durationInFrames - 1, frame);
23
28
  setCurrentFrame(frameInBounds);
24
29
  setCurrentComposition(c.id);
30
+ setZoom(() => zoom);
31
+ setTimeout(() => {
32
+ (0, timeline_scroll_logic_1.ensureFrameIsInViewport)({
33
+ direction: 'center',
34
+ frame,
35
+ durationInFrames: c.durationInFrames,
36
+ });
37
+ });
25
38
  const { folderName, parentFolderName } = c;
26
39
  if (folderName !== null) {
27
40
  setFoldersExpanded((ex) => {
@@ -4,7 +4,6 @@ exports.PlayPause = void 0;
4
4
  const jsx_runtime_1 = require("react/jsx-runtime");
5
5
  const player_1 = require("@remotion/player");
6
6
  const react_1 = require("react");
7
- const remotion_1 = require("remotion");
8
7
  const is_current_selected_still_1 = require("../helpers/is-current-selected-still");
9
8
  const use_keybinding_1 = require("../helpers/use-keybinding");
10
9
  const jump_to_start_1 = require("../icons/jump-to-start");
@@ -14,15 +13,14 @@ const step_back_1 = require("../icons/step-back");
14
13
  const step_forward_1 = require("../icons/step-forward");
15
14
  const in_out_1 = require("../state/in-out");
16
15
  const ControlButton_1 = require("./ControlButton");
16
+ const imperative_state_1 = require("./Timeline/imperative-state");
17
+ const timeline_scroll_logic_1 = require("./Timeline/timeline-scroll-logic");
17
18
  const forwardBackStyle = {
18
19
  height: 16,
19
20
  color: 'white',
20
21
  };
21
22
  const PlayPause = ({ playbackRate, loop }) => {
22
- var _a;
23
23
  const { inFrame, outFrame } = (0, in_out_1.useTimelineInOutFramePosition)();
24
- const frame = remotion_1.Internals.Timeline.useTimelinePosition();
25
- const video = remotion_1.Internals.useVideo();
26
24
  player_1.PlayerInternals.usePlayback({
27
25
  loop,
28
26
  playbackRate,
@@ -30,7 +28,7 @@ const PlayPause = ({ playbackRate, loop }) => {
30
28
  inFrame,
31
29
  outFrame,
32
30
  });
33
- const { playing, play, pause, pauseAndReturnToPlayStart, frameBack, seek, frameForward, isLastFrame, } = player_1.PlayerInternals.usePlayer();
31
+ const { playing, play, pause, pauseAndReturnToPlayStart, frameBack, seek, frameForward, isLastFrame, isFirstFrame, } = player_1.PlayerInternals.usePlayer();
34
32
  const isStill = (0, is_current_selected_still_1.useIsStill)();
35
33
  (0, react_1.useEffect)(() => {
36
34
  if (isStill) {
@@ -52,37 +50,60 @@ const PlayPause = ({ playbackRate, loop }) => {
52
50
  }
53
51
  e.preventDefault();
54
52
  }, [pauseAndReturnToPlayStart, playing]);
55
- const videoFps = (_a = video === null || video === void 0 ? void 0 : video.fps) !== null && _a !== void 0 ? _a : null;
56
53
  const onArrowLeft = (0, react_1.useCallback)((e) => {
57
- if (!videoFps) {
58
- return null;
59
- }
60
54
  e.preventDefault();
61
55
  if (e.altKey) {
62
56
  seek(0);
57
+ (0, timeline_scroll_logic_1.ensureFrameIsInViewport)({
58
+ direction: 'fit-left',
59
+ durationInFrames: (0, imperative_state_1.getCurrentDuration)(),
60
+ frame: 0,
61
+ });
63
62
  }
64
63
  else if (e.shiftKey) {
65
- frameBack(videoFps);
64
+ frameBack((0, imperative_state_1.getCurrentFps)());
65
+ (0, timeline_scroll_logic_1.ensureFrameIsInViewport)({
66
+ direction: 'fit-left',
67
+ durationInFrames: (0, imperative_state_1.getCurrentDuration)(),
68
+ frame: Math.max(0, (0, imperative_state_1.getCurrentFrame)() - (0, imperative_state_1.getCurrentFps)()),
69
+ });
66
70
  }
67
71
  else {
68
72
  frameBack(1);
73
+ (0, timeline_scroll_logic_1.ensureFrameIsInViewport)({
74
+ direction: 'fit-left',
75
+ durationInFrames: (0, imperative_state_1.getCurrentDuration)(),
76
+ frame: Math.max(0, (0, imperative_state_1.getCurrentFrame)() - 1),
77
+ });
69
78
  }
70
- }, [frameBack, seek, videoFps]);
79
+ }, [frameBack, seek]);
71
80
  const onArrowRight = (0, react_1.useCallback)((e) => {
72
- if (!video) {
73
- return null;
74
- }
75
81
  if (e.altKey) {
76
- seek(video.durationInFrames - 1);
82
+ seek((0, imperative_state_1.getCurrentDuration)() - 1);
83
+ (0, timeline_scroll_logic_1.ensureFrameIsInViewport)({
84
+ direction: 'fit-right',
85
+ durationInFrames: (0, imperative_state_1.getCurrentDuration)() - 1,
86
+ frame: (0, imperative_state_1.getCurrentDuration)() - 1,
87
+ });
77
88
  }
78
89
  else if (e.shiftKey) {
79
- frameForward(video.fps);
90
+ frameForward((0, imperative_state_1.getCurrentFps)());
91
+ (0, timeline_scroll_logic_1.ensureFrameIsInViewport)({
92
+ direction: 'fit-right',
93
+ durationInFrames: (0, imperative_state_1.getCurrentDuration)(),
94
+ frame: Math.min((0, imperative_state_1.getCurrentDuration)() - 1, (0, imperative_state_1.getCurrentFrame)() + (0, imperative_state_1.getCurrentFps)()),
95
+ });
80
96
  }
81
97
  else {
82
98
  frameForward(1);
99
+ (0, timeline_scroll_logic_1.ensureFrameIsInViewport)({
100
+ direction: 'fit-right',
101
+ durationInFrames: (0, imperative_state_1.getCurrentDuration)(),
102
+ frame: (0, imperative_state_1.getCurrentFrame)() + 1,
103
+ });
83
104
  }
84
105
  e.preventDefault();
85
- }, [frameForward, seek, video]);
106
+ }, [frameForward, seek]);
86
107
  const oneFrameBack = (0, react_1.useCallback)(() => {
87
108
  frameBack(1);
88
109
  }, [frameBack]);
@@ -93,11 +114,8 @@ const PlayPause = ({ playbackRate, loop }) => {
93
114
  seek(0);
94
115
  }, [seek]);
95
116
  const jumpToEnd = (0, react_1.useCallback)(() => {
96
- if (!video) {
97
- return;
98
- }
99
- seek(video.durationInFrames - 1);
100
- }, [seek, video]);
117
+ seek((0, imperative_state_1.getCurrentDuration)() - 1);
118
+ }, [seek]);
101
119
  const keybindings = (0, use_keybinding_1.useKeybinding)();
102
120
  (0, react_1.useEffect)(() => {
103
121
  const arrowLeft = keybindings.registerKeybinding({
@@ -156,7 +174,7 @@ const PlayPause = ({ playbackRate, loop }) => {
156
174
  if (isStill) {
157
175
  return null;
158
176
  }
159
- return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(ControlButton_1.ControlButton, { "aria-label": "Jump to beginning", title: "Jump to beginning", disabled: frame === 0, onClick: jumpToStart, children: (0, jsx_runtime_1.jsx)(jump_to_start_1.JumpToStart, { style: forwardBackStyle }) }), (0, jsx_runtime_1.jsx)(ControlButton_1.ControlButton, { "aria-label": "Step back one frame", title: "Step back one frame", disabled: frame === 0, onClick: oneFrameBack, children: (0, jsx_runtime_1.jsx)(step_back_1.StepBack, { style: forwardBackStyle }) }), (0, jsx_runtime_1.jsx)(ControlButton_1.ControlButton, { "aria-label": playing ? 'Pause' : 'Play', title: playing ? 'Pause' : 'Play', disabled: !video, onClick: playing ? pause : play, children: playing ? ((0, jsx_runtime_1.jsx)(pause_1.Pause, { style: {
177
+ return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(ControlButton_1.ControlButton, { "aria-label": "Jump to beginning", title: "Jump to beginning", disabled: isFirstFrame, onClick: jumpToStart, children: (0, jsx_runtime_1.jsx)(jump_to_start_1.JumpToStart, { style: forwardBackStyle }) }), (0, jsx_runtime_1.jsx)(ControlButton_1.ControlButton, { "aria-label": "Step back one frame", title: "Step back one frame", disabled: isFirstFrame, onClick: oneFrameBack, children: (0, jsx_runtime_1.jsx)(step_back_1.StepBack, { style: forwardBackStyle }) }), (0, jsx_runtime_1.jsx)(ControlButton_1.ControlButton, { "aria-label": playing ? 'Pause' : 'Play', title: playing ? 'Pause' : 'Play', onClick: playing ? pause : play, children: playing ? ((0, jsx_runtime_1.jsx)(pause_1.Pause, { style: {
160
178
  height: 14,
161
179
  width: 14,
162
180
  color: 'white',
@@ -18,8 +18,8 @@ const PlaybackRateSelector_1 = require("./PlaybackRateSelector");
18
18
  const PlayPause_1 = require("./PlayPause");
19
19
  const RichTimelineToggle_1 = require("./RichTimelineToggle");
20
20
  const SizeSelector_1 = require("./SizeSelector");
21
+ const TimelineZoomControls_1 = require("./Timeline/TimelineZoomControls");
21
22
  const TimelineInOutToggle_1 = require("./TimelineInOutToggle");
22
- const TimeValue_1 = require("./TimeValue");
23
23
  const container = {
24
24
  display: 'flex',
25
25
  justifyContent: 'center',
@@ -45,6 +45,6 @@ const PreviewToolbar = () => {
45
45
  const { mediaMuted } = (0, react_1.useContext)(remotion_1.Internals.MediaVolumeContext);
46
46
  const { setMediaMuted } = (0, react_1.useContext)(remotion_1.Internals.SetMediaVolumeContext);
47
47
  const [loop, setLoop] = (0, react_1.useState)((0, loop_1.loadLoopOption)());
48
- return ((0, jsx_runtime_1.jsxs)("div", { style: container, className: "css-reset", children: [(0, jsx_runtime_1.jsxs)("div", { style: sideContainer, children: [(0, jsx_runtime_1.jsx)("div", { style: padding }), (0, jsx_runtime_1.jsx)(TimeValue_1.TimeValue, {})] }), (0, jsx_runtime_1.jsx)(layout_1.Flex, {}), (0, jsx_runtime_1.jsx)(SizeSelector_1.SizeSelector, {}), (0, jsx_runtime_1.jsx)(PlaybackRateSelector_1.PlaybackRateSelector, { setPlaybackRate: setPlaybackRate, playbackRate: playbackRate }), (0, jsx_runtime_1.jsx)(layout_1.Spacing, { x: 2 }), (0, jsx_runtime_1.jsx)(PlayPause_1.PlayPause, { loop: loop, playbackRate: playbackRate }), (0, jsx_runtime_1.jsx)(layout_1.Spacing, { x: 2 }), (0, jsx_runtime_1.jsx)(LoopToggle_1.LoopToggle, { loop: loop, setLoop: setLoop }), (0, jsx_runtime_1.jsx)(CheckboardToggle_1.CheckboardToggle, {}), (0, jsx_runtime_1.jsx)(RichTimelineToggle_1.RichTimelineToggle, {}), (0, jsx_runtime_1.jsx)(TimelineInOutToggle_1.TimelineInOutPointToggle, {}), (0, jsx_runtime_1.jsx)(MuteToggle_1.MuteToggle, { muted: mediaMuted, setMuted: setMediaMuted }), (0, jsx_runtime_1.jsx)(layout_1.Flex, {}), (0, jsx_runtime_1.jsxs)("div", { style: sideContainer, children: [(0, jsx_runtime_1.jsx)(layout_1.Flex, {}), (0, jsx_runtime_1.jsx)(FpsCounter_1.FpsCounter, { playbackSpeed: playbackRate }), (0, jsx_runtime_1.jsx)("div", { style: padding })] }), (0, jsx_runtime_1.jsx)(PlaybackKeyboardShortcutsManager_1.PlaybackKeyboardShortcutsManager, { setPlaybackRate: setPlaybackRate }), (0, jsx_runtime_1.jsx)(PlaybackRatePersistor_1.PlaybackRatePersistor, {})] }));
48
+ return ((0, jsx_runtime_1.jsxs)("div", { style: container, className: "css-reset", children: [(0, jsx_runtime_1.jsxs)("div", { style: sideContainer, children: [(0, jsx_runtime_1.jsx)("div", { style: padding }), (0, jsx_runtime_1.jsx)(TimelineZoomControls_1.TimelineZoomControls, {})] }), (0, jsx_runtime_1.jsx)(layout_1.Flex, {}), (0, jsx_runtime_1.jsx)(SizeSelector_1.SizeSelector, {}), (0, jsx_runtime_1.jsx)(PlaybackRateSelector_1.PlaybackRateSelector, { setPlaybackRate: setPlaybackRate, playbackRate: playbackRate }), (0, jsx_runtime_1.jsx)(layout_1.Spacing, { x: 2 }), (0, jsx_runtime_1.jsx)(PlayPause_1.PlayPause, { loop: loop, playbackRate: playbackRate }), (0, jsx_runtime_1.jsx)(layout_1.Spacing, { x: 2 }), (0, jsx_runtime_1.jsx)(LoopToggle_1.LoopToggle, { loop: loop, setLoop: setLoop }), (0, jsx_runtime_1.jsx)(CheckboardToggle_1.CheckboardToggle, {}), (0, jsx_runtime_1.jsx)(RichTimelineToggle_1.RichTimelineToggle, {}), (0, jsx_runtime_1.jsx)(TimelineInOutToggle_1.TimelineInOutPointToggle, {}), (0, jsx_runtime_1.jsx)(MuteToggle_1.MuteToggle, { muted: mediaMuted, setMuted: setMediaMuted }), (0, jsx_runtime_1.jsx)(layout_1.Flex, {}), (0, jsx_runtime_1.jsxs)("div", { style: sideContainer, children: [(0, jsx_runtime_1.jsx)(layout_1.Flex, {}), (0, jsx_runtime_1.jsx)(FpsCounter_1.FpsCounter, { playbackSpeed: playbackRate }), (0, jsx_runtime_1.jsx)("div", { style: padding })] }), (0, jsx_runtime_1.jsx)(PlaybackKeyboardShortcutsManager_1.PlaybackKeyboardShortcutsManager, { setPlaybackRate: setPlaybackRate }), (0, jsx_runtime_1.jsx)(PlaybackRatePersistor_1.PlaybackRatePersistor, {})] }));
49
49
  };
50
50
  exports.PreviewToolbar = PreviewToolbar;
@@ -13,6 +13,7 @@ const SplitterElement = ({ children, type }) => {
13
13
  (type === 'flexer' ? context.flexValue : 1 - context.flexValue) * 1000,
14
14
  display: 'flex',
15
15
  position: 'relative',
16
+ overflow: 'hidden',
16
17
  };
17
18
  }, [context.flexValue, type]);
18
19
  return (0, jsx_runtime_1.jsx)("div", { style: style, children: children });
@@ -5,24 +5,28 @@ const jsx_runtime_1 = require("react/jsx-runtime");
5
5
  const remotion_1 = require("remotion");
6
6
  const is_current_selected_still_1 = require("../helpers/is-current-selected-still");
7
7
  const render_frame_1 = require("../state/render-frame");
8
+ const layout_1 = require("./layout");
8
9
  const text = {
9
10
  color: 'white',
10
- fontSize: 16,
11
+ fontSize: 18,
11
12
  display: 'flex',
12
- flexDirection: 'column',
13
- justifyContent: 'center',
13
+ flexDirection: 'row',
14
+ alignItems: 'flex-end',
14
15
  fontVariantNumeric: 'tabular-nums',
15
16
  lineHeight: 1,
16
17
  };
17
18
  const time = {
18
19
  display: 'inline-block',
19
- fontSize: 16,
20
+ fontSize: 18,
20
21
  };
21
22
  const frameStyle = {
22
23
  color: '#ccc',
23
24
  fontSize: 10,
24
25
  fontWeight: 500,
25
26
  };
27
+ const spacer = {
28
+ width: layout_1.SPACING_UNIT,
29
+ };
26
30
  const TimeValue = () => {
27
31
  const frame = (0, remotion_1.useCurrentFrame)();
28
32
  const config = remotion_1.Internals.useUnsafeVideoConfig();
@@ -33,6 +37,6 @@ const TimeValue = () => {
33
37
  if (isStill) {
34
38
  return null;
35
39
  }
36
- return ((0, jsx_runtime_1.jsxs)("div", { style: text, children: [(0, jsx_runtime_1.jsx)("div", { style: time, children: (0, render_frame_1.renderFrame)(frame, config.fps) }), ' ', (0, jsx_runtime_1.jsxs)("div", { style: frameStyle, children: [frame, " ", (0, jsx_runtime_1.jsxs)("span", { style: frameStyle, children: ["(", config.fps, " fps)"] })] })] }));
40
+ return ((0, jsx_runtime_1.jsxs)("div", { style: text, children: [(0, jsx_runtime_1.jsx)("div", { style: time, children: (0, render_frame_1.renderFrame)(frame, config.fps) }), ' ', (0, jsx_runtime_1.jsx)("div", { style: spacer }), (0, jsx_runtime_1.jsxs)("div", { style: frameStyle, children: [frame, " ", (0, jsx_runtime_1.jsxs)("span", { style: frameStyle, children: ["(", config.fps, " fps)"] })] })] }));
37
41
  };
38
42
  exports.TimeValue = TimeValue;
@@ -1,3 +1,4 @@
1
1
  import React from 'react';
2
2
  export declare const MAX_TIMELINE_TRACKS: number;
3
+ export declare const MAX_TIMELINE_TRACKS_NOTICE_HEIGHT = 24;
3
4
  export declare const MaxTimelineTracksReached: React.FC;
@@ -1,14 +1,16 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.MaxTimelineTracksReached = exports.MAX_TIMELINE_TRACKS = void 0;
3
+ exports.MaxTimelineTracksReached = exports.MAX_TIMELINE_TRACKS_NOTICE_HEIGHT = exports.MAX_TIMELINE_TRACKS = void 0;
4
4
  const jsx_runtime_1 = require("react/jsx-runtime");
5
5
  const timeline_layout_1 = require("../../helpers/timeline-layout");
6
6
  exports.MAX_TIMELINE_TRACKS = typeof process.env.MAX_TIMELINE_TRACKS === 'undefined'
7
7
  ? 15
8
8
  : Number(process.env.MAX_TIMELINE_TRACKS);
9
+ exports.MAX_TIMELINE_TRACKS_NOTICE_HEIGHT = 24;
9
10
  const container = {
10
- paddingTop: 6,
11
- paddingBottom: 6,
11
+ height: exports.MAX_TIMELINE_TRACKS_NOTICE_HEIGHT,
12
+ display: 'flex',
13
+ alignItems: 'center',
12
14
  color: 'rgba(255, 255, 255, 0.6)',
13
15
  fontFamily: 'sans-serif',
14
16
  fontSize: 12,
@@ -12,18 +12,22 @@ const SplitterElement_1 = require("../Splitter/SplitterElement");
12
12
  const SplitterHandle_1 = require("../Splitter/SplitterHandle");
13
13
  const is_collapsed_1 = require("./is-collapsed");
14
14
  const MaxTimelineTracks_1 = require("./MaxTimelineTracks");
15
+ const timeline_refs_1 = require("./timeline-refs");
15
16
  const timeline_state_reducer_1 = require("./timeline-state-reducer");
16
17
  const TimelineDragHandler_1 = require("./TimelineDragHandler");
17
18
  const TimelineInOutPointer_1 = require("./TimelineInOutPointer");
18
19
  const TimelineList_1 = require("./TimelineList");
20
+ const TimelinePlayCursorSyncer_1 = require("./TimelinePlayCursorSyncer");
21
+ const TimelineScrollable_1 = require("./TimelineScrollable");
19
22
  const TimelineSlider_1 = require("./TimelineSlider");
23
+ const TimelineTimeIndicators_1 = require("./TimelineTimeIndicators");
20
24
  const TimelineTracks_1 = require("./TimelineTracks");
21
25
  const container = {
22
26
  minHeight: '100%',
23
27
  flex: 1,
24
28
  display: 'flex',
25
29
  height: 0,
26
- overflow: 'auto',
30
+ overflowY: 'auto',
27
31
  };
28
32
  const noop = () => undefined;
29
33
  const Timeline = () => {
@@ -61,18 +65,21 @@ const Timeline = () => {
61
65
  return timeline.filter((t) => !(0, is_collapsed_1.isTrackHidden)(t, timeline, state));
62
66
  }, [state, timeline]);
63
67
  const shown = withoutHidden.slice(0, MaxTimelineTracks_1.MAX_TIMELINE_TRACKS);
68
+ const hasBeenCut = withoutHidden.length > shown.length;
64
69
  const inner = (0, react_1.useMemo)(() => {
65
70
  return {
66
- height: shown.length * (timeline_layout_1.TIMELINE_LAYER_HEIGHT + timeline_layout_1.TIMELINE_BORDER * 2),
71
+ height: shown.length * (timeline_layout_1.TIMELINE_LAYER_HEIGHT + timeline_layout_1.TIMELINE_BORDER * 2) +
72
+ (hasBeenCut ? MaxTimelineTracks_1.MAX_TIMELINE_TRACKS_NOTICE_HEIGHT : 0) +
73
+ TimelineTimeIndicators_1.TIMELINE_TIME_INDICATOR_HEIGHT,
67
74
  display: 'flex',
68
75
  flex: 1,
69
76
  minHeight: '100%',
70
77
  overflowX: 'hidden',
71
78
  };
72
- }, [shown.length]);
79
+ }, [hasBeenCut, shown.length]);
73
80
  if (!videoConfig) {
74
81
  return null;
75
82
  }
76
- return ((0, jsx_runtime_1.jsx)("div", { style: container, className: "css-reset", children: (0, jsx_runtime_1.jsx)("div", { style: inner, children: (0, jsx_runtime_1.jsxs)(SplitterContainer_1.SplitterContainer, { orientation: "vertical", defaultFlex: 0.2, id: "names-to-timeline", maxFlex: 0.5, minFlex: 0.15, children: [(0, jsx_runtime_1.jsx)(SplitterElement_1.SplitterElement, { type: "flexer", children: (0, jsx_runtime_1.jsx)(TimelineList_1.TimelineList, { dispatchStateChange: dispatch, viewState: state, timeline: shown }) }), (0, jsx_runtime_1.jsx)(SplitterHandle_1.SplitterHandle, { onCollapse: noop, allowToCollapse: false }), (0, jsx_runtime_1.jsxs)(SplitterElement_1.SplitterElement, { type: "anti-flexer", children: [(0, jsx_runtime_1.jsx)(TimelineTracks_1.TimelineTracks, { viewState: state, timeline: shown, fps: videoConfig.fps, hasBeenCut: withoutHidden.length > shown.length }), (0, jsx_runtime_1.jsx)(TimelineInOutPointer_1.TimelineInOutPointer, {}), (0, jsx_runtime_1.jsx)(TimelineDragHandler_1.TimelineDragHandler, {}), (0, jsx_runtime_1.jsx)(TimelineSlider_1.TimelineSlider, {})] })] }) }) }));
83
+ return ((0, jsx_runtime_1.jsx)("div", { ref: timeline_refs_1.timelineVerticalScroll, style: container, className: "css-reset", children: (0, jsx_runtime_1.jsx)("div", { style: inner, children: (0, jsx_runtime_1.jsxs)(SplitterContainer_1.SplitterContainer, { orientation: "vertical", defaultFlex: 0.2, id: "names-to-timeline", maxFlex: 0.5, minFlex: 0.15, children: [(0, jsx_runtime_1.jsx)(SplitterElement_1.SplitterElement, { type: "flexer", children: (0, jsx_runtime_1.jsx)(TimelineList_1.TimelineList, { dispatchStateChange: dispatch, viewState: state, timeline: shown }) }), (0, jsx_runtime_1.jsx)(SplitterHandle_1.SplitterHandle, { onCollapse: noop, allowToCollapse: false }), (0, jsx_runtime_1.jsx)(SplitterElement_1.SplitterElement, { type: "anti-flexer", children: (0, jsx_runtime_1.jsxs)(TimelineScrollable_1.TimelineScrollable, { children: [(0, jsx_runtime_1.jsx)(TimelineTracks_1.TimelineTracks, { viewState: state, timeline: shown, fps: videoConfig.fps, hasBeenCut: hasBeenCut }), (0, jsx_runtime_1.jsx)(TimelineInOutPointer_1.TimelineInOutPointer, {}), (0, jsx_runtime_1.jsx)(TimelineDragHandler_1.TimelineDragHandler, {}), (0, jsx_runtime_1.jsx)(TimelineSlider_1.TimelineSlider, {}), (0, jsx_runtime_1.jsx)(TimelinePlayCursorSyncer_1.TimelinePlayCursorSyncer, {})] }) })] }) }) }));
77
84
  };
78
85
  exports.Timeline = Timeline;