@remotion/studio 4.0.422 → 4.0.424

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 (369) hide show
  1. package/dist/FastRefreshProvider.js +1 -1
  2. package/dist/ResolveCompositionConfigInStudio.js +1 -1
  3. package/dist/Studio.js +6 -4
  4. package/dist/api/create-composition.js +2 -2
  5. package/dist/api/focus-default-props-path.d.ts +1 -1
  6. package/dist/api/get-zod-schema-from-primitive.d.ts +3 -2
  7. package/dist/api/get-zod-schema-from-primitive.js +3 -4
  8. package/dist/api/helpers/calc-new-props.d.ts +2 -2
  9. package/dist/api/play.d.ts +1 -1
  10. package/dist/api/save-render-output.d.ts +7 -0
  11. package/dist/api/save-render-output.js +45 -0
  12. package/dist/api/toggle.d.ts +1 -1
  13. package/dist/components/AskAiModal.js +3 -1
  14. package/dist/components/AssetSelector.js +21 -58
  15. package/dist/components/AssetSelectorItem.js +15 -9
  16. package/dist/components/AudioWaveform.js +5 -4
  17. package/dist/components/AudioWaveformBar.js +1 -1
  18. package/dist/components/Button.js +1 -1
  19. package/dist/components/Canvas.js +2 -1
  20. package/dist/components/CanvasIfSizeIsAvailable.js +1 -1
  21. package/dist/components/CanvasOrLoading.js +12 -6
  22. package/dist/components/CheckboardToggle.js +1 -1
  23. package/dist/components/Checkbox.js +3 -1
  24. package/dist/components/CheckerboardProvider.js +1 -1
  25. package/dist/components/CompSelectorRef.js +1 -1
  26. package/dist/components/CompositionContextButton.js +2 -2
  27. package/dist/components/CompositionSelector.js +4 -3
  28. package/dist/components/CompositionSelectorItem.js +6 -3
  29. package/dist/components/ContextMenu.js +3 -2
  30. package/dist/components/ControlButton.d.ts +1 -1
  31. package/dist/components/ControlButton.js +1 -1
  32. package/dist/components/CopyButton.js +3 -2
  33. package/dist/components/CurrentAsset.d.ts +3 -0
  34. package/dist/components/CurrentAsset.js +113 -0
  35. package/dist/components/CurrentComposition.js +3 -2
  36. package/dist/components/Editor.js +6 -1
  37. package/dist/components/EditorContent.js +6 -1
  38. package/dist/components/EditorContexts.js +3 -1
  39. package/dist/components/EditorGuides/Guide.js +1 -1
  40. package/dist/components/EditorGuides/index.js +2 -2
  41. package/dist/components/EditorRuler/Ruler.js +1 -1
  42. package/dist/components/EditorRuler/index.js +3 -1
  43. package/dist/components/ExplorerPanel.js +4 -1
  44. package/dist/components/FilePreview.js +8 -6
  45. package/dist/components/FpsCounter.js +1 -1
  46. package/dist/components/FullscreenToggle.js +1 -1
  47. package/dist/components/GlobalPropsEditorUpdateButton.js +3 -1
  48. package/dist/components/InitialCompositionLoader.d.ts +1 -2
  49. package/dist/components/InitialCompositionLoader.js +3 -3
  50. package/dist/components/InlineAction.js +1 -1
  51. package/dist/components/InlineDropdown.js +3 -2
  52. package/dist/components/InstallPackage.js +19 -9
  53. package/dist/components/InstallablePackage.js +5 -3
  54. package/dist/components/JSONViewer.js +1 -1
  55. package/dist/components/KeyboardShortcutsExplainer.js +91 -1
  56. package/dist/components/KnownBugs.js +4 -2
  57. package/dist/components/LoopToggle.js +1 -1
  58. package/dist/components/MediaVolumeProvider.js +1 -1
  59. package/dist/components/Menu/MenuDivider.js +1 -1
  60. package/dist/components/Menu/MenuItem.js +3 -2
  61. package/dist/components/Menu/MenuSubItem.js +4 -2
  62. package/dist/components/Menu/SubMenu.js +1 -1
  63. package/dist/components/MenuBuildIndicator.js +1 -1
  64. package/dist/components/MenuToolbar.js +5 -3
  65. package/dist/components/MobilePanel.d.ts +1 -1
  66. package/dist/components/MobilePanel.js +2 -1
  67. package/dist/components/ModalButton.js +1 -1
  68. package/dist/components/ModalContainer.js +1 -1
  69. package/dist/components/ModalFooter.js +1 -1
  70. package/dist/components/ModalHeader.js +3 -1
  71. package/dist/components/Modals.js +2 -2
  72. package/dist/components/ModalsProvider.js +1 -1
  73. package/dist/components/MuteToggle.js +1 -1
  74. package/dist/components/NewComposition/CancelButton.js +1 -1
  75. package/dist/components/NewComposition/CodemodFooter.js +5 -2
  76. package/dist/components/NewComposition/ComboBox.js +6 -2
  77. package/dist/components/NewComposition/DeleteComposition.js +10 -2
  78. package/dist/components/NewComposition/DiffPreview.js +5 -3
  79. package/dist/components/NewComposition/DismissableModal.js +1 -1
  80. package/dist/components/NewComposition/DuplicateComposition.js +28 -3
  81. package/dist/components/NewComposition/InputDragger.d.ts +1 -1
  82. package/dist/components/NewComposition/InputDragger.js +2 -2
  83. package/dist/components/NewComposition/MenuContent.js +3 -3
  84. package/dist/components/NewComposition/NewCompDuration.js +7 -2
  85. package/dist/components/NewComposition/RemInput.d.ts +2 -2
  86. package/dist/components/NewComposition/RemInput.js +2 -2
  87. package/dist/components/NewComposition/RemInputTypeColor.js +1 -1
  88. package/dist/components/NewComposition/RemTextarea.js +1 -1
  89. package/dist/components/NewComposition/RenameComposition.js +11 -2
  90. package/dist/components/NewComposition/ValidationMessage.js +4 -2
  91. package/dist/components/NoRegisterRoot.js +4 -1
  92. package/dist/components/Notifications/ColorDot.js +1 -1
  93. package/dist/components/Notifications/Notification.js +1 -1
  94. package/dist/components/Notifications/NotificationCenter.js +2 -2
  95. package/dist/components/Notifications/ServerDisconnected.js +2 -1
  96. package/dist/components/OpenEditorButton.js +2 -2
  97. package/dist/components/OptionsPanel.js +7 -4
  98. package/dist/components/OverrideInputProps.js +7 -2
  99. package/dist/components/PlayPause.js +3 -1
  100. package/dist/components/PlaybackRateSelector.js +2 -2
  101. package/dist/components/Preview.js +8 -8
  102. package/dist/components/PreviewToolbar.js +11 -1
  103. package/dist/components/QuickSwitcher/AlgoliaCredit.js +1 -1
  104. package/dist/components/QuickSwitcher/NoResults.js +1 -1
  105. package/dist/components/QuickSwitcher/QuickSwitcher.js +1 -1
  106. package/dist/components/QuickSwitcher/QuickSwitcherContent.js +12 -3
  107. package/dist/components/QuickSwitcher/QuickSwitcherResult.js +6 -3
  108. package/dist/components/RefreshCompositionOverlay.js +1 -1
  109. package/dist/components/RenderButton.js +26 -9
  110. package/dist/components/RenderModal/CliCopyButton.js +3 -3
  111. package/dist/components/RenderModal/ClientRenderProgress.js +18 -13
  112. package/dist/components/RenderModal/CrfSetting.d.ts +1 -2
  113. package/dist/components/RenderModal/CrfSetting.js +1 -1
  114. package/dist/components/RenderModal/DataEditor.js +15 -8
  115. package/dist/components/RenderModal/EnforceAudioTrackSetting.js +5 -1
  116. package/dist/components/RenderModal/EnvInput.js +4 -1
  117. package/dist/components/RenderModal/FrameRangeSetting.js +5 -1
  118. package/dist/components/RenderModal/GuiRenderStatus.js +15 -10
  119. package/dist/components/RenderModal/InfoBubble.js +3 -2
  120. package/dist/components/RenderModal/InfoTooltip.js +3 -2
  121. package/dist/components/RenderModal/InlineEyeIcon.js +2 -2
  122. package/dist/components/RenderModal/InlineRemoveButton.js +2 -2
  123. package/dist/components/RenderModal/JpegQualitySetting.js +1 -1
  124. package/dist/components/RenderModal/MultiRangeSlider.js +3 -1
  125. package/dist/components/RenderModal/MutedSetting.js +5 -1
  126. package/dist/components/RenderModal/NumberOfLoopsSetting.js +3 -1
  127. package/dist/components/RenderModal/NumberSetting.js +6 -2
  128. package/dist/components/RenderModal/OptionExplainer.js +14 -1
  129. package/dist/components/RenderModal/OptionExplainerBubble.js +1 -1
  130. package/dist/components/RenderModal/RenderModalAdvanced.js +66 -7
  131. package/dist/components/RenderModal/RenderModalAudio.js +21 -4
  132. package/dist/components/RenderModal/RenderModalBasic.js +18 -3
  133. package/dist/components/RenderModal/RenderModalEnvironmentVariables.js +5 -3
  134. package/dist/components/RenderModal/RenderModalGif.js +6 -1
  135. package/dist/components/RenderModal/RenderModalHr.js +1 -1
  136. package/dist/components/RenderModal/RenderModalJSONPropsEditor.js +5 -2
  137. package/dist/components/RenderModal/RenderModalOutputName.js +8 -1
  138. package/dist/components/RenderModal/RenderModalPicture.js +30 -3
  139. package/dist/components/RenderModal/RenderStatusModal.js +12 -2
  140. package/dist/components/RenderModal/ResolveCompositionBeforeModal.js +6 -3
  141. package/dist/components/RenderModal/ScaleSetting.js +3 -2
  142. package/dist/components/RenderModal/SchemaEditor/Fieldset.js +2 -2
  143. package/dist/components/RenderModal/SchemaEditor/SchemaEditor.js +4 -4
  144. package/dist/components/RenderModal/SchemaEditor/SchemaErrorMessages.js +31 -6
  145. package/dist/components/RenderModal/SchemaEditor/SchemaLabel.js +3 -3
  146. package/dist/components/RenderModal/SchemaEditor/SchemaResetButton.js +2 -2
  147. package/dist/components/RenderModal/SchemaEditor/SchemaSaveButton.js +2 -2
  148. package/dist/components/RenderModal/SchemaEditor/SchemaSeparationLine.js +9 -5
  149. package/dist/components/RenderModal/SchemaEditor/SchemaVerticalGuide.js +3 -1
  150. package/dist/components/RenderModal/SchemaEditor/ZodArrayEditor.js +9 -5
  151. package/dist/components/RenderModal/SchemaEditor/ZodArrayItemEditor.js +1 -1
  152. package/dist/components/RenderModal/SchemaEditor/ZodBooleanEditor.js +3 -1
  153. package/dist/components/RenderModal/SchemaEditor/ZodColorEditor.js +8 -2
  154. package/dist/components/RenderModal/SchemaEditor/ZodDateEditor.js +5 -1
  155. package/dist/components/RenderModal/SchemaEditor/ZodDefaultEditor.js +1 -1
  156. package/dist/components/RenderModal/SchemaEditor/ZodDiscriminatedUnionEditor.js +6 -4
  157. package/dist/components/RenderModal/SchemaEditor/ZodEffectEditor.js +3 -1
  158. package/dist/components/RenderModal/SchemaEditor/ZodEnumEditor.js +4 -2
  159. package/dist/components/RenderModal/SchemaEditor/ZodErrorMessages.js +6 -4
  160. package/dist/components/RenderModal/SchemaEditor/ZodFieldValidation.js +8 -2
  161. package/dist/components/RenderModal/SchemaEditor/ZodMatrixEditor.js +8 -6
  162. package/dist/components/RenderModal/SchemaEditor/ZodNonEditableValue.js +3 -1
  163. package/dist/components/RenderModal/SchemaEditor/ZodNullableEditor.js +1 -1
  164. package/dist/components/RenderModal/SchemaEditor/ZodNumberEditor.js +5 -1
  165. package/dist/components/RenderModal/SchemaEditor/ZodObjectEditor.js +6 -5
  166. package/dist/components/RenderModal/SchemaEditor/ZodOptionalEditor.js +1 -1
  167. package/dist/components/RenderModal/SchemaEditor/ZodOrNullishEditor.js +4 -1
  168. package/dist/components/RenderModal/SchemaEditor/ZodStaticFileEditor.js +8 -5
  169. package/dist/components/RenderModal/SchemaEditor/ZodStringEditor.js +5 -1
  170. package/dist/components/RenderModal/SchemaEditor/ZodSwitch.js +24 -24
  171. package/dist/components/RenderModal/SchemaEditor/ZodTextareaEditor.js +5 -1
  172. package/dist/components/RenderModal/SchemaEditor/ZodTupleEditor.js +9 -5
  173. package/dist/components/RenderModal/SchemaEditor/ZodTupleItemEditor.js +1 -1
  174. package/dist/components/RenderModal/SchemaEditor/ZodUnionEditor.js +5 -5
  175. package/dist/components/RenderModal/SchemaEditor/create-zod-values.d.ts +2 -2
  176. package/dist/components/RenderModal/SchemaEditor/extract-enum-json-paths.d.ts +4 -4
  177. package/dist/components/RenderModal/SchemaEditor/local-state.js +1 -1
  178. package/dist/components/RenderModal/SeparateAudioOption.js +7 -2
  179. package/dist/components/RenderModal/ServerRenderModal.js +28 -6
  180. package/dist/components/RenderModal/WarningIndicatorButton.js +4 -2
  181. package/dist/components/RenderModal/WebRenderModal.js +35 -7
  182. package/dist/components/RenderModal/WebRenderModalAdvanced.js +11 -4
  183. package/dist/components/RenderModal/WebRenderModalAudio.js +12 -2
  184. package/dist/components/RenderModal/WebRenderModalBasic.js +23 -5
  185. package/dist/components/RenderModal/WebRenderModalLicense.js +24 -2
  186. package/dist/components/RenderModal/WebRenderModalLicenseKeyDetails.js +12 -1
  187. package/dist/components/RenderModal/WebRenderModalPicture.js +8 -1
  188. package/dist/components/RenderModal/WebRendererExperimentalBadge.js +3 -1
  189. package/dist/components/RenderModal/get-default-codecs.d.ts +7 -8
  190. package/dist/components/RenderModal/human-readable-audio-codecs.d.ts +1 -2
  191. package/dist/components/RenderModal/human-readable-codec.d.ts +1 -2
  192. package/dist/components/RenderModal/human-readable-loglevel.d.ts +1 -2
  193. package/dist/components/RenderModal/out-name-checker.d.ts +4 -5
  194. package/dist/components/RenderModal/quality-options.js +1 -1
  195. package/dist/components/RenderPreview.js +4 -4
  196. package/dist/components/RenderQueue/CircularProgress.js +1 -1
  197. package/dist/components/RenderQueue/ClientRenderQueueProcessor.d.ts +1 -0
  198. package/dist/components/RenderQueue/ClientRenderQueueProcessor.js +34 -5
  199. package/dist/components/RenderQueue/RenderQueueCancelledMessage.js +1 -1
  200. package/dist/components/RenderQueue/RenderQueueCopyToClipboard.js +2 -2
  201. package/dist/components/RenderQueue/RenderQueueDownloadItem.d.ts +5 -0
  202. package/dist/components/RenderQueue/RenderQueueDownloadItem.js +35 -0
  203. package/dist/components/RenderQueue/RenderQueueError.js +1 -1
  204. package/dist/components/RenderQueue/RenderQueueItem.js +51 -16
  205. package/dist/components/RenderQueue/RenderQueueItemCancelButton.js +2 -2
  206. package/dist/components/RenderQueue/RenderQueueItemStatus.js +10 -7
  207. package/dist/components/RenderQueue/RenderQueueOpenInFolder.d.ts +2 -2
  208. package/dist/components/RenderQueue/RenderQueueOpenInFolder.js +2 -2
  209. package/dist/components/RenderQueue/RenderQueueOutputName.js +2 -9
  210. package/dist/components/RenderQueue/RenderQueueProgressMessage.js +4 -2
  211. package/dist/components/RenderQueue/RenderQueueRemoveItem.js +6 -4
  212. package/dist/components/RenderQueue/RenderQueueRepeat.js +2 -2
  213. package/dist/components/RenderQueue/RenderQueueSavingMessage.d.ts +2 -0
  214. package/dist/components/RenderQueue/RenderQueueSavingMessage.js +13 -0
  215. package/dist/components/RenderQueue/SuccessIcon.js +1 -1
  216. package/dist/components/RenderQueue/actions.d.ts +21 -24
  217. package/dist/components/RenderQueue/client-side-render-types.d.ts +11 -9
  218. package/dist/components/RenderQueue/client-side-render-types.js +5 -0
  219. package/dist/components/RenderQueue/context.d.ts +6 -3
  220. package/dist/components/RenderQueue/context.js +39 -8
  221. package/dist/components/RenderQueue/index.js +11 -19
  222. package/dist/components/RendersTab.js +3 -1
  223. package/dist/components/ResetZoomButton.js +1 -1
  224. package/dist/components/RunningCalculateMetadata.js +5 -1
  225. package/dist/components/SegmentedControl.js +3 -3
  226. package/dist/components/SetTimelineInOutProvider.js +1 -1
  227. package/dist/components/ShowGuidesProvider.js +1 -1
  228. package/dist/components/ShowRulersProvider.js +1 -1
  229. package/dist/components/SidebarCollapserControls.js +5 -3
  230. package/dist/components/SidebarRenderButton.js +2 -2
  231. package/dist/components/SizeSelector.js +2 -2
  232. package/dist/components/Spinner.js +6 -4
  233. package/dist/components/Splitter/SplitterContainer.js +1 -1
  234. package/dist/components/Splitter/SplitterElement.js +3 -1
  235. package/dist/components/Splitter/SplitterHandle.js +1 -1
  236. package/dist/components/StaticFilePreview.js +5 -5
  237. package/dist/components/Tabs/index.js +2 -2
  238. package/dist/components/Tabs/vertical.js +1 -1
  239. package/dist/components/TextViewer.js +1 -1
  240. package/dist/components/TimeValue.js +3 -1
  241. package/dist/components/Timeline/LoopedIndicator.js +4 -2
  242. package/dist/components/Timeline/LoopedTimelineIndicators.js +5 -4
  243. package/dist/components/Timeline/MaxTimelineTracks.js +1 -1
  244. package/dist/components/Timeline/Timeline.js +5 -1
  245. package/dist/components/Timeline/TimelineCollapseToggle.js +2 -2
  246. package/dist/components/Timeline/TimelineDragHandler.js +5 -3
  247. package/dist/components/Timeline/TimelineInOutPointer.js +2 -2
  248. package/dist/components/Timeline/TimelineInOutPointerHandle.js +2 -2
  249. package/dist/components/Timeline/TimelineLayerEye.js +3 -3
  250. package/dist/components/Timeline/TimelineList.js +3 -2
  251. package/dist/components/Timeline/TimelineListItem.js +3 -1
  252. package/dist/components/Timeline/TimelineScrollable.js +1 -1
  253. package/dist/components/Timeline/TimelineSequence.js +6 -6
  254. package/dist/components/Timeline/TimelineSequenceFrame.js +1 -1
  255. package/dist/components/Timeline/TimelineSlider.d.ts +1 -1
  256. package/dist/components/Timeline/TimelineSlider.js +6 -3
  257. package/dist/components/Timeline/TimelineSliderHandle.js +1 -1
  258. package/dist/components/Timeline/TimelineStack/index.js +5 -2
  259. package/dist/components/Timeline/TimelineTimeIndicators.js +5 -5
  260. package/dist/components/Timeline/TimelineTracks.js +6 -4
  261. package/dist/components/Timeline/TimelineVideoInfo.js +1 -1
  262. package/dist/components/Timeline/TimelineWidthProvider.js +1 -1
  263. package/dist/components/Timeline/TimelineZoomControls.js +3 -1
  264. package/dist/components/Timeline/timeline-scroll-logic.d.ts +1 -1
  265. package/dist/components/Timeline/timeline-scroll-logic.js +12 -8
  266. package/dist/components/TimelineInOutToggle.js +11 -7
  267. package/dist/components/TopPanel.js +5 -1
  268. package/dist/components/UpdateCheck.js +2 -2
  269. package/dist/components/UpdateModal/OpenIssueButton.js +2 -2
  270. package/dist/components/UpdateModal/UpdateModal.js +8 -1
  271. package/dist/components/VisualControls/ClickableFileName.js +1 -1
  272. package/dist/components/VisualControls/VisualControlHandle.js +3 -1
  273. package/dist/components/VisualControls/VisualControlHandleHeader.js +1 -1
  274. package/dist/components/VisualControls/VisualControlsContent.js +3 -2
  275. package/dist/components/ZoomGesturesProvider.js +1 -1
  276. package/dist/components/call-api.d.ts +1 -1
  277. package/dist/components/get-zod-if-possible.d.ts +3 -3
  278. package/dist/components/get-zod-if-possible.js +9 -9
  279. package/dist/components/layout.js +4 -4
  280. package/dist/components/use-static-files.d.ts +6 -0
  281. package/dist/components/use-static-files.js +63 -0
  282. package/dist/error-overlay/react-overlay/utils/parser.d.ts +1 -1
  283. package/dist/error-overlay/remotion-overlay/AskOnDiscord.js +1 -1
  284. package/dist/error-overlay/remotion-overlay/CalculateMetadataErrorExplainer.js +2 -1
  285. package/dist/error-overlay/remotion-overlay/CodeFrame.js +6 -4
  286. package/dist/error-overlay/remotion-overlay/CompositionIdListItem.js +1 -1
  287. package/dist/error-overlay/remotion-overlay/CompositionIdsDropdown.js +8 -3
  288. package/dist/error-overlay/remotion-overlay/DismissButton.js +1 -1
  289. package/dist/error-overlay/remotion-overlay/ErrorDisplay.js +19 -4
  290. package/dist/error-overlay/remotion-overlay/ErrorLoader.js +8 -4
  291. package/dist/error-overlay/remotion-overlay/ErrorMessage.js +2 -1
  292. package/dist/error-overlay/remotion-overlay/ErrorTitle.js +7 -1
  293. package/dist/error-overlay/remotion-overlay/HelpLink.js +1 -1
  294. package/dist/error-overlay/remotion-overlay/OpenInEditor.js +1 -1
  295. package/dist/error-overlay/remotion-overlay/Overlay.js +2 -2
  296. package/dist/error-overlay/remotion-overlay/Retry.js +1 -1
  297. package/dist/error-overlay/remotion-overlay/SearchGitHubIssues.js +1 -1
  298. package/dist/error-overlay/remotion-overlay/ShortcutHint.js +2 -1
  299. package/dist/error-overlay/remotion-overlay/StackFrame.js +6 -2
  300. package/dist/error-overlay/remotion-overlay/Symbolicating.js +3 -1
  301. package/dist/error-overlay/remotion-overlay/carets.d.ts +1 -1
  302. package/dist/error-overlay/remotion-overlay/carets.js +2 -2
  303. package/dist/error-overlay/remotion-overlay/index.js +2 -2
  304. package/dist/esm/{chunk-4153e552.js → chunk-3g77e2p9.js} +4722 -19219
  305. package/dist/esm/internals.mjs +4722 -19219
  306. package/dist/esm/previewEntry.mjs +4747 -19244
  307. package/dist/esm/renderEntry.mjs +1 -1
  308. package/dist/helpers/client-id.js +5 -2
  309. package/dist/helpers/color-math.d.ts +1 -2
  310. package/dist/helpers/create-folder-tree.d.ts +2 -2
  311. package/dist/helpers/document-title.js +2 -2
  312. package/dist/helpers/editor-ruler.d.ts +3 -3
  313. package/dist/helpers/extract-frames.d.ts +1 -1
  314. package/dist/helpers/pick-color.js +5 -1
  315. package/dist/helpers/presets-labels.d.ts +1 -2
  316. package/dist/helpers/prores-labels.d.ts +1 -2
  317. package/dist/helpers/render-modal-sections.d.ts +1 -2
  318. package/dist/helpers/retry-payload.d.ts +2 -2
  319. package/dist/helpers/timeline-layout.d.ts +1 -1
  320. package/dist/helpers/use-asset-drag-events.d.ts +1 -1
  321. package/dist/helpers/use-menu-structure.d.ts +1 -1
  322. package/dist/helpers/use-menu-structure.js +11 -11
  323. package/dist/helpers/use-studio-canvas-dimensions.d.ts +1 -1
  324. package/dist/helpers/validate-new-comp-data.d.ts +2 -3
  325. package/dist/hot-middleware-client/client.d.ts +1 -1
  326. package/dist/hot-middleware-client/process-update.d.ts +8 -2
  327. package/dist/hot-middleware-client/process-update.js +2 -1
  328. package/dist/icons/Checkmark.js +1 -1
  329. package/dist/icons/audio.js +1 -1
  330. package/dist/icons/caret.js +3 -3
  331. package/dist/icons/certificate.d.ts +1 -1
  332. package/dist/icons/certificate.js +1 -1
  333. package/dist/icons/check-circle-filled.js +1 -1
  334. package/dist/icons/clipboard.js +1 -1
  335. package/dist/icons/data.js +1 -1
  336. package/dist/icons/ellipsis.js +1 -1
  337. package/dist/icons/file.js +1 -1
  338. package/dist/icons/folder.js +3 -3
  339. package/dist/icons/frame.js +1 -1
  340. package/dist/icons/gear.js +1 -1
  341. package/dist/icons/gif.js +1 -1
  342. package/dist/icons/jump-to-start.js +1 -1
  343. package/dist/icons/keys.js +3 -3
  344. package/dist/icons/media-volume.js +2 -2
  345. package/dist/icons/minus.js +1 -1
  346. package/dist/icons/pause.js +1 -1
  347. package/dist/icons/play.js +1 -1
  348. package/dist/icons/plus.js +1 -1
  349. package/dist/icons/render.js +1 -1
  350. package/dist/icons/step-back.js +1 -1
  351. package/dist/icons/step-forward.js +1 -1
  352. package/dist/icons/still.js +1 -1
  353. package/dist/icons/timelineInOutPointer.js +2 -2
  354. package/dist/icons/video.js +1 -1
  355. package/dist/index.js +16 -16
  356. package/dist/internals.d.ts +1 -1
  357. package/dist/previewEntry.js +2 -2
  358. package/dist/renderEntry.js +10 -8
  359. package/dist/state/folders.js +1 -1
  360. package/dist/state/highest-z-index.js +1 -1
  361. package/dist/state/in-out.js +4 -3
  362. package/dist/state/keybindings.js +1 -1
  363. package/dist/state/preview-size.js +1 -1
  364. package/dist/state/sidebar.js +1 -1
  365. package/dist/state/timeline-zoom.js +1 -1
  366. package/dist/state/z-index.js +2 -1
  367. package/dist/visual-controls/VisualControls.js +1 -1
  368. package/dist/visual-controls/get-current-edited-value.js +2 -1
  369. package/package.json +13 -12
@@ -69,27 +69,30 @@ const RenderQueueItemStatus = ({ job }) => {
69
69
  });
70
70
  }, [job.id, setSelectedModal]);
71
71
  if (job.status === 'failed') {
72
- return ((0, jsx_runtime_1.jsx)("button", { type: "button", style: invisibleStyle, onClick: onClick, children: (0, jsx_runtime_1.jsx)("svg", { style: iconStyle, viewBox: "0 0 512 512", children: (0, jsx_runtime_1.jsx)("path", { fill: colors_1.FAIL_COLOR, d: "M0 160V352L160 512H352L512 352V160L352 0H160L0 160zm353.9 32l-17 17-47 47 47 47 17 17L320 353.9l-17-17-47-47-47 47-17 17L158.1 320l17-17 47-47-47-47-17-17L192 158.1l17 17 47 47 47-47 17-17L353.9 192z" }) }) }));
72
+ return (jsx_runtime_1.jsx("button", { type: "button", style: invisibleStyle, onClick: onClick, children: jsx_runtime_1.jsx("svg", { style: iconStyle, viewBox: "0 0 512 512", children: jsx_runtime_1.jsx("path", { fill: colors_1.FAIL_COLOR, d: "M0 160V352L160 512H352L512 352V160L352 0H160L0 160zm353.9 32l-17 17-47 47 47 47 17 17L320 353.9l-17-17-47-47-47 47-17 17L158.1 320l17-17 47-47-47-47-17-17L192 158.1l17 17 47 47 47-47 17-17L353.9 192z" }) }) }));
73
73
  }
74
74
  if (job.status === 'idle') {
75
- return ((0, jsx_runtime_1.jsx)("svg", { style: iconStyle, viewBox: "0 0 512 512", children: (0, jsx_runtime_1.jsx)("path", { fill: colors_1.LIGHT_TEXT, d: "M256 512C114.6 512 0 397.4 0 256S114.6 0 256 0S512 114.6 512 256s-114.6 256-256 256zM232 120V256c0 8 4 15.5 10.7 20l96 64c11 7.4 25.9 4.4 33.3-6.7s4.4-25.9-6.7-33.3L280 243.2V120c0-13.3-10.7-24-24-24s-24 10.7-24 24z" }) }));
75
+ return (jsx_runtime_1.jsx("svg", { style: iconStyle, viewBox: "0 0 512 512", children: jsx_runtime_1.jsx("path", { fill: colors_1.LIGHT_TEXT, d: "M256 512C114.6 512 0 397.4 0 256S114.6 0 256 0S512 114.6 512 256s-114.6 256-256 256zM232 120V256c0 8 4 15.5 10.7 20l96 64c11 7.4 25.9 4.4 33.3-6.7s4.4-25.9-6.7-33.3L280 243.2V120c0-13.3-10.7-24-24-24s-24 10.7-24 24z" }) }));
76
76
  }
77
77
  if (job.status === 'done') {
78
- return ((0, jsx_runtime_1.jsx)("button", { type: "button", style: invisibleStyle, onPointerEnter: onPointerEnter, onPointerLeave: onPointerLeave, onClick: onClick, children: (0, jsx_runtime_1.jsx)("svg", { style: iconStyle, viewBox: "0 0 512 512", children: (0, jsx_runtime_1.jsx)("path", { fill: hovered ? 'white' : colors_1.LIGHT_TEXT, d: "M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM369 209L241 337l-17 17-17-17-64-64-17-17L160 222.1l17 17 47 47L335 175l17-17L385.9 192l-17 17z" }) }) }));
78
+ return (jsx_runtime_1.jsx("button", { type: "button", style: invisibleStyle, onPointerEnter: onPointerEnter, onPointerLeave: onPointerLeave, onClick: onClick, children: jsx_runtime_1.jsx("svg", { style: iconStyle, viewBox: "0 0 512 512", children: jsx_runtime_1.jsx("path", { fill: hovered ? 'white' : colors_1.LIGHT_TEXT, d: "M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM369 209L241 337l-17 17-17-17-64-64-17-17L160 222.1l17 17 47 47L335 175l17-17L385.9 192l-17 17z" }) }) }));
79
79
  }
80
80
  if (job.status === 'running') {
81
81
  let progressValue;
82
82
  if (isClientJob) {
83
- const { renderedFrames, totalFrames } = job.progress;
84
- progressValue = totalFrames > 0 ? renderedFrames / totalFrames : 0;
83
+ const { encodedFrames, totalFrames } = job.progress;
84
+ progressValue = totalFrames > 0 ? encodedFrames / totalFrames : 0;
85
85
  }
86
86
  else {
87
87
  progressValue = job.progress.value;
88
88
  }
89
- return ((0, jsx_runtime_1.jsx)("button", { type: "button", style: invisibleStyle, onClick: onClick, children: (0, jsx_runtime_1.jsx)(CircularProgress_1.CircularProgress, { progress: Math.max(0.07, progressValue) }) }));
89
+ return (jsx_runtime_1.jsx("button", { type: "button", style: invisibleStyle, onClick: onClick, children: jsx_runtime_1.jsx(CircularProgress_1.CircularProgress, { progress: Math.max(0.07, progressValue) }) }));
90
+ }
91
+ if (job.status === 'saving') {
92
+ return (jsx_runtime_1.jsx("button", { type: "button", style: invisibleStyle, onClick: onClick, children: jsx_runtime_1.jsx(CircularProgress_1.CircularProgress, { progress: 0.95 }) }));
90
93
  }
91
94
  if (job.status === 'cancelled') {
92
- return ((0, jsx_runtime_1.jsx)("svg", { style: iconStyle, viewBox: "0 0 512 512", children: (0, jsx_runtime_1.jsx)("path", { fill: colors_1.FAIL_COLOR, d: "M0 160V352L160 512H352L512 352V160L352 0H160L0 160zm353.9 32l-17 17-47 47 47 47 17 17L320 353.9l-17-17-47-47-47 47-17 17L158.1 320l17-17 47-47-47-47-17-17L192 158.1l17 17 47 47 47-47 17-17L353.9 192z" }) }));
95
+ return (jsx_runtime_1.jsx("svg", { style: iconStyle, viewBox: "0 0 512 512", children: jsx_runtime_1.jsx("path", { fill: colors_1.FAIL_COLOR, d: "M0 160V352L160 512H352L512 352V160L352 0H160L0 160zm353.9 32l-17 17-47 47 47 47 17 17L320 353.9l-17-17-47-47-47 47-17 17L158.1 320l17-17 47-47-47-47-17-17L192 158.1l17 17 47 47 47-47 17-17L353.9 192z" }) }));
93
96
  }
94
97
  throw new Error('Unknown job status');
95
98
  };
@@ -1,5 +1,5 @@
1
- import type { RenderJob } from '@remotion/studio-shared';
2
1
  import React from 'react';
2
+ import type { AnyRenderJob } from './context';
3
3
  export declare const RenderQueueOpenInFinderItem: React.FC<{
4
- readonly job: RenderJob;
4
+ readonly job: AnyRenderJob;
5
5
  }>;
@@ -21,8 +21,8 @@ const RenderQueueOpenInFinderItem = ({ job }) => {
21
21
  };
22
22
  }, []);
23
23
  const renderAction = (0, react_1.useCallback)((color) => {
24
- return (0, jsx_runtime_1.jsx)(folder_1.ExpandedFolderIconSolid, { style: icon, color: color });
24
+ return jsx_runtime_1.jsx(folder_1.ExpandedFolderIconSolid, { style: icon, color: color });
25
25
  }, [icon]);
26
- return (0, jsx_runtime_1.jsx)(InlineAction_1.InlineAction, { renderAction: renderAction, onClick: onClick });
26
+ return jsx_runtime_1.jsx(InlineAction_1.InlineAction, { renderAction: renderAction, onClick: onClick });
27
27
  };
28
28
  exports.RenderQueueOpenInFinderItem = RenderQueueOpenInFinderItem;
@@ -3,13 +3,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.RenderQueueOutputName = void 0;
4
4
  const jsx_runtime_1 = require("react/jsx-runtime");
5
5
  const react_1 = require("react");
6
- const context_1 = require("./context");
7
6
  const item_style_1 = require("./item-style");
8
7
  const RenderQueueOutputName = ({ job }) => {
9
- const isClientJob = (0, context_1.isClientRenderJob)(job);
10
- const deletedOutputLocation = isClientJob
11
- ? false
12
- : job.deletedOutputLocation;
8
+ const deletedOutputLocation = 'deletedOutputLocation' in job && job.deletedOutputLocation;
13
9
  const style = (0, react_1.useMemo)(() => {
14
10
  return {
15
11
  ...item_style_1.renderQueueItemSubtitleStyle,
@@ -19,14 +15,11 @@ const RenderQueueOutputName = ({ job }) => {
19
15
  };
20
16
  }, [deletedOutputLocation]);
21
17
  const getTitle = () => {
22
- if (isClientJob) {
23
- return `Downloaded as ${job.outName}`;
24
- }
25
18
  if (deletedOutputLocation) {
26
19
  return 'File was deleted';
27
20
  }
28
21
  return job.outName;
29
22
  };
30
- return ((0, jsx_runtime_1.jsx)("span", { style: style, title: getTitle(), children: job.outName }));
23
+ return (jsx_runtime_1.jsx("span", { style: style, title: getTitle(), children: job.outName }));
31
24
  };
32
25
  exports.RenderQueueOutputName = RenderQueueOutputName;
@@ -24,8 +24,10 @@ const RenderQueueProgressMessage = ({ job }) => {
24
24
  });
25
25
  }, [job.id, setSelectedModal]);
26
26
  const message = isClientJob
27
- ? `Rendering frame ${job.progress.renderedFrames}/${job.progress.totalFrames}`
27
+ ? job.progress.totalFrames === 0
28
+ ? 'Getting composition'
29
+ : `Encoding frame ${job.progress.encodedFrames}/${job.progress.totalFrames}`
28
30
  : job.progress.message;
29
- return ((0, jsx_runtime_1.jsx)("button", { onClick: onClick, type: "button", style: outputLocation, tabIndex: tabIndex, title: message, children: message }));
31
+ return (jsx_runtime_1.jsx("button", { onClick: onClick, type: "button", style: outputLocation, tabIndex: tabIndex, title: message, children: message }));
30
32
  };
31
33
  exports.RenderQueueProgressMessage = RenderQueueProgressMessage;
@@ -4,6 +4,7 @@ exports.RenderQueueRemoveItem = void 0;
4
4
  const jsx_runtime_1 = require("react/jsx-runtime");
5
5
  const react_1 = require("react");
6
6
  const remotion_1 = require("remotion");
7
+ const save_render_output_1 = require("../../api/save-render-output");
7
8
  const InlineAction_1 = require("../InlineAction");
8
9
  const NotificationCenter_1 = require("../Notifications/NotificationCenter");
9
10
  const actions_1 = require("./actions");
@@ -17,12 +18,13 @@ const RenderQueueRemoveItem = ({ job }) => {
17
18
  e.stopPropagation();
18
19
  if (isClientJob) {
19
20
  if (canvasContent &&
20
- canvasContent.type === 'output-blob' &&
21
+ canvasContent.type === 'output' &&
21
22
  job.status === 'done' &&
22
- canvasContent.getBlob === job.getBlob) {
23
+ canvasContent.path === `/${job.outName}`) {
23
24
  setCanvasContent(null);
24
25
  }
25
26
  removeClientJob(job.id);
27
+ (0, save_render_output_1.unregisterClientRender)(job.id).catch(() => { });
26
28
  (0, NotificationCenter_1.showNotification)('Removed job', 2000);
27
29
  return;
28
30
  }
@@ -41,8 +43,8 @@ const RenderQueueRemoveItem = ({ job }) => {
41
43
  };
42
44
  }, []);
43
45
  const renderAction = (0, react_1.useCallback)((color) => {
44
- return ((0, jsx_runtime_1.jsx)("svg", { style: icon, xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 320 512", children: (0, jsx_runtime_1.jsx)("path", { fill: color, d: "M310.6 150.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L160 210.7 54.6 105.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L114.7 256 9.4 361.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L160 301.3 265.4 406.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L205.3 256 310.6 150.6z" }) }));
46
+ return (jsx_runtime_1.jsx("svg", { style: icon, xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 320 512", children: jsx_runtime_1.jsx("path", { fill: color, d: "M310.6 150.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L160 210.7 54.6 105.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L114.7 256 9.4 361.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L160 301.3 265.4 406.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L205.3 256 310.6 150.6z" }) }));
45
47
  }, [icon]);
46
- return (0, jsx_runtime_1.jsx)(InlineAction_1.InlineAction, { renderAction: renderAction, onClick: onClick });
48
+ return jsx_runtime_1.jsx(InlineAction_1.InlineAction, { renderAction: renderAction, onClick: onClick });
47
49
  };
48
50
  exports.RenderQueueRemoveItem = RenderQueueRemoveItem;
@@ -41,8 +41,8 @@ const RenderQueueRepeatItem = ({ job }) => {
41
41
  };
42
42
  }, []);
43
43
  const renderAction = (0, react_1.useCallback)((color) => {
44
- return ((0, jsx_runtime_1.jsx)("svg", { style: icon, viewBox: "0 0 512 512", children: (0, jsx_runtime_1.jsx)("path", { fill: color, d: "M386.3 160H336c-17.7 0-32 14.3-32 32s14.3 32 32 32H464c17.7 0 32-14.3 32-32V64c0-17.7-14.3-32-32-32s-32 14.3-32 32v51.2L414.4 97.6c-87.5-87.5-229.3-87.5-316.8 0s-87.5 229.3 0 316.8s229.3 87.5 316.8 0c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0c-62.5 62.5-163.8 62.5-226.3 0s-62.5-163.8 0-226.3s163.8-62.5 226.3 0L386.3 160z" }) }));
44
+ return (jsx_runtime_1.jsx("svg", { style: icon, viewBox: "0 0 512 512", children: jsx_runtime_1.jsx("path", { fill: color, d: "M386.3 160H336c-17.7 0-32 14.3-32 32s14.3 32 32 32H464c17.7 0 32-14.3 32-32V64c0-17.7-14.3-32-32-32s-32 14.3-32 32v51.2L414.4 97.6c-87.5-87.5-229.3-87.5-316.8 0s-87.5 229.3 0 316.8s229.3 87.5 316.8 0c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0c-62.5 62.5-163.8 62.5-226.3 0s-62.5-163.8 0-226.3s163.8-62.5 226.3 0L386.3 160z" }) }));
45
45
  }, [icon]);
46
- return (0, jsx_runtime_1.jsx)(InlineAction_1.InlineAction, { onClick: onClick, renderAction: renderAction });
46
+ return jsx_runtime_1.jsx(InlineAction_1.InlineAction, { onClick: onClick, renderAction: renderAction });
47
47
  };
48
48
  exports.RenderQueueRepeatItem = RenderQueueRepeatItem;
@@ -0,0 +1,2 @@
1
+ import React from 'react';
2
+ export declare const RenderQueueSavingMessage: React.FC;
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RenderQueueSavingMessage = void 0;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const item_style_1 = require("./item-style");
6
+ const savingStyle = {
7
+ ...item_style_1.renderQueueItemSubtitleStyle,
8
+ cursor: 'default',
9
+ };
10
+ const RenderQueueSavingMessage = () => {
11
+ return jsx_runtime_1.jsx("span", { style: savingStyle, children: "Saving to out/..." });
12
+ };
13
+ exports.RenderQueueSavingMessage = RenderQueueSavingMessage;
@@ -9,6 +9,6 @@ const iconStyle = {
9
9
  width: CircularProgress_1.RENDER_STATUS_INDICATOR_SIZE,
10
10
  };
11
11
  const SuccessIcon = () => {
12
- return ((0, jsx_runtime_1.jsx)("svg", { style: iconStyle, viewBox: "0 0 512 512", children: (0, jsx_runtime_1.jsx)("path", { fill: colors_1.LIGHT_TEXT, d: "M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM369 209L241 337l-17 17-17-17-64-64-17-17L160 222.1l17 17 47 47L335 175l17-17L385.9 192l-17 17z" }) }));
12
+ return (jsx_runtime_1.jsx("svg", { style: iconStyle, viewBox: "0 0 512 512", children: jsx_runtime_1.jsx("path", { fill: colors_1.LIGHT_TEXT, d: "M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM369 209L241 337l-17 17-17-17-64-64-17-17L160 222.1l17 17 47 47L335 175l17-17L385.9 192l-17 17z" }) }));
13
13
  };
14
14
  exports.SuccessIcon = SuccessIcon;
@@ -1,16 +1,13 @@
1
- import type { AudioCodec, ChromeMode, Codec, ColorSpace, LogLevel, PixelFormat, StillImageFormat, VideoImageFormat, X264Preset } from '@remotion/renderer';
2
- import type { HardwareAccelerationOption } from '@remotion/renderer/client';
3
- import type { CanUpdateDefaultPropsResponse, EnumPath, RecastCodemod, RenderJob, RequiredChromiumOptions, VisualControlChange } from '@remotion/studio-shared';
4
- import type { _InternalTypes } from 'remotion';
1
+ import type { CanUpdateDefaultPropsResponse, EnumPath, RecastCodemod, RenderJob, VisualControlChange } from '@remotion/studio-shared';
5
2
  export declare const addStillRenderJob: ({ compositionId, outName, imageFormat, jpegQuality, frame, scale, logLevel, chromiumOptions, delayRenderTimeout, envVariables, inputProps, offthreadVideoCacheSizeInBytes, offthreadVideoThreads, multiProcessOnLinux, beepOnFinish, metadata, chromeMode, mediaCacheSizeInBytes, }: {
6
3
  compositionId: string;
7
4
  outName: string;
8
- imageFormat: StillImageFormat;
5
+ imageFormat: "jpeg" | "pdf" | "png" | "webp";
9
6
  jpegQuality: number;
10
7
  frame: number;
11
8
  scale: number;
12
- logLevel: LogLevel;
13
- chromiumOptions: RequiredChromiumOptions;
9
+ logLevel: "error" | "info" | "trace" | "verbose" | "warn";
10
+ chromiumOptions: Required<import("@remotion/renderer").ChromiumOptions>;
14
11
  delayRenderTimeout: number;
15
12
  envVariables: Record<string, string>;
16
13
  inputProps: Record<string, unknown>;
@@ -19,19 +16,19 @@ export declare const addStillRenderJob: ({ compositionId, outName, imageFormat,
19
16
  multiProcessOnLinux: boolean;
20
17
  beepOnFinish: boolean;
21
18
  metadata: Record<string, string> | null;
22
- chromeMode: ChromeMode;
19
+ chromeMode: "chrome-for-testing" | "headless-shell";
23
20
  mediaCacheSizeInBytes: number | null;
24
21
  }) => Promise<undefined>;
25
22
  export declare const addSequenceRenderJob: ({ compositionId, outName, imageFormat, startFrame, endFrame, scale, logLevel, chromiumOptions, delayRenderTimeout, envVariables, inputProps, concurrency, offthreadVideoCacheSizeInBytes, offthreadVideoThreads, jpegQuality, disallowParallelEncoding, multiProcessOnLinux, beepOnFinish, repro, metadata, chromeMode, mediaCacheSizeInBytes, }: {
26
23
  compositionId: string;
27
24
  outName: string;
28
- imageFormat: VideoImageFormat;
25
+ imageFormat: "jpeg" | "none" | "png";
29
26
  jpegQuality: number;
30
27
  startFrame: number;
31
28
  endFrame: number;
32
29
  scale: number;
33
- logLevel: LogLevel;
34
- chromiumOptions: RequiredChromiumOptions;
30
+ logLevel: "error" | "info" | "trace" | "verbose" | "warn";
31
+ chromiumOptions: Required<import("@remotion/renderer").ChromiumOptions>;
35
32
  concurrency: number;
36
33
  delayRenderTimeout: number;
37
34
  envVariables: Record<string, string>;
@@ -43,39 +40,39 @@ export declare const addSequenceRenderJob: ({ compositionId, outName, imageForma
43
40
  beepOnFinish: boolean;
44
41
  repro: boolean;
45
42
  metadata: Record<string, string> | null;
46
- chromeMode: ChromeMode;
43
+ chromeMode: "chrome-for-testing" | "headless-shell";
47
44
  mediaCacheSizeInBytes: number | null;
48
45
  }) => Promise<undefined>;
49
46
  export declare const addVideoRenderJob: ({ compositionId, outName, imageFormat, jpegQuality, scale, logLevel, codec, concurrency, crf, startFrame, endFrame, muted, enforceAudioTrack, proResProfile, x264Preset, pixelFormat, audioBitrate, videoBitrate, everyNthFrame, numberOfGifLoops, delayRenderTimeout, audioCodec, disallowParallelEncoding, chromiumOptions, envVariables, inputProps, offthreadVideoCacheSizeInBytes, offthreadVideoThreads, colorSpace, multiProcessOnLinux, encodingMaxRate, encodingBufferSize, beepOnFinish, repro, forSeamlessAacConcatenation, separateAudioTo, metadata, hardwareAcceleration, chromeMode, mediaCacheSizeInBytes, }: {
50
47
  compositionId: string;
51
48
  outName: string;
52
- imageFormat: VideoImageFormat;
49
+ imageFormat: "jpeg" | "none" | "png";
53
50
  jpegQuality: number | null;
54
51
  scale: number;
55
- logLevel: LogLevel;
56
- codec: Codec;
52
+ logLevel: "error" | "info" | "trace" | "verbose" | "warn";
53
+ codec: "aac" | "gif" | "h264" | "h264-mkv" | "h264-ts" | "h265" | "mp3" | "prores" | "vp8" | "vp9" | "wav";
57
54
  concurrency: number;
58
55
  crf: number | null;
59
56
  startFrame: number;
60
57
  endFrame: number;
61
58
  muted: boolean;
62
59
  enforceAudioTrack: boolean;
63
- proResProfile: _InternalTypes["ProResProfile"] | null;
64
- x264Preset: X264Preset | null;
65
- pixelFormat: PixelFormat;
60
+ proResProfile: "4444" | "4444-xq" | "hq" | "light" | "proxy" | "standard" | null;
61
+ x264Preset: "fast" | "faster" | "medium" | "placebo" | "slow" | "slower" | "superfast" | "ultrafast" | "veryfast" | "veryslow" | null;
62
+ pixelFormat: "yuv420p" | "yuv420p10le" | "yuv422p" | "yuv422p10le" | "yuv444p" | "yuv444p10le" | "yuva420p" | "yuva444p10le";
66
63
  audioBitrate: string | null;
67
64
  videoBitrate: string | null;
68
65
  everyNthFrame: number;
69
66
  numberOfGifLoops: number | null;
70
67
  delayRenderTimeout: number;
71
- audioCodec: AudioCodec;
68
+ audioCodec: "aac" | "mp3" | "opus" | "pcm-16";
72
69
  disallowParallelEncoding: boolean;
73
- chromiumOptions: RequiredChromiumOptions;
70
+ chromiumOptions: Required<import("@remotion/renderer").ChromiumOptions>;
74
71
  envVariables: Record<string, string>;
75
72
  inputProps: Record<string, unknown>;
76
73
  offthreadVideoCacheSizeInBytes: number | null;
77
74
  offthreadVideoThreads: number | null;
78
- colorSpace: ColorSpace;
75
+ colorSpace: "bt2020-ncl" | "bt601" | "bt709" | "default";
79
76
  multiProcessOnLinux: boolean;
80
77
  encodingMaxRate: string | null;
81
78
  encodingBufferSize: string | null;
@@ -84,8 +81,8 @@ export declare const addVideoRenderJob: ({ compositionId, outName, imageFormat,
84
81
  forSeamlessAacConcatenation: boolean;
85
82
  separateAudioTo: string | null;
86
83
  metadata: Record<string, string> | null;
87
- hardwareAcceleration: HardwareAccelerationOption;
88
- chromeMode: ChromeMode;
84
+ hardwareAcceleration: "disable" | "if-possible" | "required";
85
+ chromeMode: "chrome-for-testing" | "headless-shell";
89
86
  mediaCacheSizeInBytes: number | null;
90
87
  }) => Promise<undefined>;
91
88
  export declare const unsubscribeFromFileExistenceWatcher: ({ file, clientId, }: {
@@ -102,7 +99,7 @@ export declare const openInFileExplorer: ({ directory }: {
102
99
  export declare const applyCodemod: ({ codemod, dryRun, signal, }: {
103
100
  codemod: RecastCodemod;
104
101
  dryRun: boolean;
105
- signal: AbortController["signal"];
102
+ signal: AbortSignal;
106
103
  }) => Promise<import("@remotion/studio-shared").ApplyCodemodResponse>;
107
104
  export declare const removeRenderJob: (job: RenderJob) => Promise<undefined>;
108
105
  export declare const cancelRenderJob: (job: RenderJob) => Promise<import("@remotion/studio-shared").CancelRenderResponse>;
@@ -1,25 +1,22 @@
1
+ import type { CompletedClientRender } from '@remotion/studio-shared';
1
2
  import type { RenderStillOnWebImageFormat, WebRendererAudioCodec, WebRendererContainer, WebRendererQuality, WebRendererVideoCodec } from '@remotion/web-renderer';
2
3
  import type { LogLevel } from 'remotion';
3
4
  export type ClientRenderJobProgress = {
4
- renderedFrames: number;
5
5
  encodedFrames: number;
6
6
  totalFrames: number;
7
7
  };
8
8
  export type GetBlobCallback = () => Promise<Blob>;
9
- export type ClientRenderMetadata = {
10
- width: number;
11
- height: number;
12
- sizeInBytes: number;
13
- };
14
9
  type ClientRenderJobDynamicStatus = {
15
10
  status: 'idle';
16
11
  } | {
17
12
  status: 'running';
18
13
  progress: ClientRenderJobProgress;
14
+ } | {
15
+ status: 'saving';
19
16
  } | {
20
17
  status: 'done';
21
- getBlob: GetBlobCallback;
22
- metadata: ClientRenderMetadata;
18
+ getBlob?: GetBlobCallback;
19
+ metadata: CompletedClientRender['metadata'];
23
20
  } | {
24
21
  status: 'cancelled';
25
22
  } | {
@@ -60,5 +57,10 @@ export type ClientVideoRenderJob = ClientRenderJobBase & {
60
57
  transparent: boolean;
61
58
  muted: boolean;
62
59
  } & ClientRenderJobDynamicStatus;
63
- export type ClientRenderJob = ClientStillRenderJob | ClientVideoRenderJob;
60
+ export type RestoredClientRenderJob = CompletedClientRender & {
61
+ status: 'done';
62
+ getBlob?: GetBlobCallback;
63
+ };
64
+ export type ClientRenderJob = ClientStillRenderJob | ClientVideoRenderJob | RestoredClientRenderJob;
65
+ export declare const isRestoredClientJob: (job: ClientRenderJob) => job is RestoredClientRenderJob;
64
66
  export {};
@@ -1,2 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isRestoredClientJob = void 0;
4
+ const isRestoredClientJob = (job) => {
5
+ return !('inputProps' in job);
6
+ };
7
+ exports.isRestoredClientJob = isRestoredClientJob;
@@ -1,10 +1,11 @@
1
- import type { RenderJob } from '@remotion/studio-shared';
1
+ import type { CompletedClientRender, RenderJob } from '@remotion/studio-shared';
2
2
  import React from 'react';
3
3
  import { type AddClientStillJobParams, type AddClientVideoJobParams, type CompositionRef } from './client-render-queue';
4
- import type { ClientRenderJob, ClientRenderJobProgress, ClientRenderMetadata, GetBlobCallback } from './client-side-render-types';
4
+ import type { ClientRenderJob, ClientRenderJobProgress, GetBlobCallback } from './client-side-render-types';
5
5
  declare global {
6
6
  interface Window {
7
7
  remotion_initialRenderQueue: RenderJob[] | null;
8
+ remotion_initialClientRenders: CompletedClientRender[] | null;
8
9
  }
9
10
  }
10
11
  export type AnyRenderJob = RenderJob | ClientRenderJob;
@@ -16,7 +17,8 @@ type RenderQueueContextType = {
16
17
  addClientStillJob: (params: AddClientStillJobParams, compositionRef: CompositionRef) => string;
17
18
  addClientVideoJob: (params: AddClientVideoJobParams, compositionRef: CompositionRef) => string;
18
19
  updateClientJobProgress: (jobId: string, progress: ClientRenderJobProgress) => void;
19
- markClientJobDone: (jobId: string, getBlob: GetBlobCallback, metadata: ClientRenderMetadata) => void;
20
+ markClientJobSaving: (jobId: string) => void;
21
+ markClientJobDone: (jobId: string, metadata: CompletedClientRender['metadata'], getBlob?: GetBlobCallback) => void;
20
22
  markClientJobFailed: (jobId: string, error: Error) => void;
21
23
  markClientJobCancelled: (jobId: string) => void;
22
24
  removeClientJob: (jobId: string) => void;
@@ -28,6 +30,7 @@ type RenderQueueContextType = {
28
30
  export declare const RenderQueueContext: React.Context<RenderQueueContextType>;
29
31
  export declare const renderJobsRef: React.RefObject<{
30
32
  updateRenderJobs: (jobs: RenderJob[]) => void;
33
+ updateClientRenders: (renders: CompletedClientRender[]) => void;
31
34
  } | null>;
32
35
  export declare const RenderQueueContextProvider: React.FC<{
33
36
  readonly children: React.ReactNode;
@@ -37,6 +37,11 @@ exports.RenderQueueContextProvider = exports.renderJobsRef = exports.RenderQueue
37
37
  const jsx_runtime_1 = require("react/jsx-runtime");
38
38
  const react_1 = __importStar(require("react"));
39
39
  const client_render_queue_1 = require("./client-render-queue");
40
+ const restorePersistedClientRenders = () => {
41
+ var _a;
42
+ const persisted = (_a = window.remotion_initialClientRenders) !== null && _a !== void 0 ? _a : [];
43
+ return persisted.map((r) => ({ ...r, status: 'done' }));
44
+ };
40
45
  const isClientRenderJob = (job) => {
41
46
  return job.type === 'client-still' || job.type === 'client-video';
42
47
  };
@@ -50,6 +55,7 @@ exports.RenderQueueContext = react_1.default.createContext({
50
55
  addClientStillJob: noopString,
51
56
  addClientVideoJob: noopString,
52
57
  updateClientJobProgress: noop,
58
+ markClientJobSaving: noop,
53
59
  markClientJobDone: noop,
54
60
  markClientJobFailed: noop,
55
61
  markClientJobCancelled: noop,
@@ -63,7 +69,7 @@ exports.renderJobsRef = (0, react_1.createRef)();
63
69
  const RenderQueueContextProvider = ({ children }) => {
64
70
  var _a;
65
71
  const [serverJobs, setServerJobs] = (0, react_1.useState)((_a = window.remotion_initialRenderQueue) !== null && _a !== void 0 ? _a : []);
66
- const [clientJobs, setClientJobs] = (0, react_1.useState)([]);
72
+ const [clientJobs, setClientJobs] = (0, react_1.useState)(restorePersistedClientRenders);
67
73
  const [currentlyProcessing, setCurrentlyProcessing] = (0, react_1.useState)(null);
68
74
  const processJobCallbackRef = (0, react_1.useRef)(null);
69
75
  // Process next job when state changes
@@ -80,7 +86,7 @@ const RenderQueueContextProvider = ({ children }) => {
80
86
  ? {
81
87
  ...job,
82
88
  status: 'running',
83
- progress: { renderedFrames: 0, encodedFrames: 0, totalFrames: 0 },
89
+ progress: { encodedFrames: 0, totalFrames: 0 },
84
90
  }
85
91
  : job));
86
92
  processJobCallbackRef.current(nextJob);
@@ -114,12 +120,15 @@ const RenderQueueContextProvider = ({ children }) => {
114
120
  ? { ...job, status: 'running', progress }
115
121
  : job));
116
122
  }, []);
117
- const markClientJobDone = (0, react_1.useCallback)((jobId, getBlob, metadata) => {
118
- (0, client_render_queue_1.deleteAbortController)(jobId);
119
- (0, client_render_queue_1.cleanupCompositionForJob)(jobId);
123
+ const markClientJobSaving = (0, react_1.useCallback)((jobId) => {
120
124
  setClientJobs((prev) => prev.map((job) => job.id === jobId
121
- ? { ...job, status: 'done', getBlob, metadata }
125
+ ? { ...job, status: 'saving' }
122
126
  : job));
127
+ }, []);
128
+ const markClientJobDone = (0, react_1.useCallback)((jobId, metadata, getBlob) => {
129
+ (0, client_render_queue_1.deleteAbortController)(jobId);
130
+ (0, client_render_queue_1.cleanupCompositionForJob)(jobId);
131
+ setClientJobs((prev) => prev.map((job) => job.id === jobId ? { ...job, status: 'done', metadata, getBlob } : job));
123
132
  setCurrentlyProcessing(null);
124
133
  }, []);
125
134
  const markClientJobFailed = (0, react_1.useCallback)((jobId, error) => {
@@ -166,15 +175,36 @@ const RenderQueueContextProvider = ({ children }) => {
166
175
  updateRenderJobs: (newJobs) => {
167
176
  setServerJobs(newJobs);
168
177
  },
178
+ updateClientRenders: (renders) => {
179
+ setClientJobs((prev) => {
180
+ const existingIds = new Set(prev.map((j) => j.id));
181
+ const updatedPrev = prev.map((job) => {
182
+ const updated = renders.find((r) => r.id === job.id);
183
+ if (updated && job.status === 'done') {
184
+ return {
185
+ ...job,
186
+ deletedOutputLocation: updated.deletedOutputLocation,
187
+ metadata: updated.metadata,
188
+ };
189
+ }
190
+ return job;
191
+ });
192
+ const newJobs = renders
193
+ .filter((r) => !existingIds.has(r.id))
194
+ .map((r) => ({ ...r, status: 'done' }));
195
+ return [...updatedPrev, ...newJobs];
196
+ });
197
+ },
169
198
  }), []);
170
199
  const value = (0, react_1.useMemo)(() => {
171
200
  return {
172
- jobs: [...serverJobs, ...clientJobs],
201
+ jobs: [...serverJobs, ...clientJobs].sort((a, b) => a.startedAt - b.startedAt),
173
202
  serverJobs,
174
203
  clientJobs,
175
204
  addClientStillJob,
176
205
  addClientVideoJob,
177
206
  updateClientJobProgress,
207
+ markClientJobSaving,
178
208
  markClientJobDone,
179
209
  markClientJobFailed,
180
210
  markClientJobCancelled,
@@ -190,6 +220,7 @@ const RenderQueueContextProvider = ({ children }) => {
190
220
  addClientStillJob,
191
221
  addClientVideoJob,
192
222
  updateClientJobProgress,
223
+ markClientJobSaving,
193
224
  markClientJobDone,
194
225
  markClientJobFailed,
195
226
  markClientJobCancelled,
@@ -197,6 +228,6 @@ const RenderQueueContextProvider = ({ children }) => {
197
228
  cancelClientJob,
198
229
  setProcessJobCallback,
199
230
  ]);
200
- return ((0, jsx_runtime_1.jsx)(exports.RenderQueueContext.Provider, { value: value, children: children }));
231
+ return (jsx_runtime_1.jsx(exports.RenderQueueContext.Provider, { value: value, children: children }));
201
232
  };
202
233
  exports.RenderQueueContextProvider = RenderQueueContextProvider;
@@ -39,6 +39,7 @@ const react_1 = __importStar(require("react"));
39
39
  const remotion_1 = require("remotion");
40
40
  const client_id_1 = require("../../helpers/client-id");
41
41
  const colors_1 = require("../../helpers/colors");
42
+ const show_browser_rendering_1 = require("../../helpers/show-browser-rendering");
42
43
  const is_menu_item_1 = require("../Menu/is-menu-item");
43
44
  const layout_1 = require("../layout");
44
45
  const RenderQueueItem_1 = require("./RenderQueueItem");
@@ -92,37 +93,28 @@ const RenderQueue = () => {
92
93
  if (!canvasContent) {
93
94
  return -1;
94
95
  }
95
- if (canvasContent.type === 'output-blob') {
96
- for (let i = 0; i < jobs.length; i++) {
97
- const job = jobs[i];
98
- if ((0, context_1.isClientRenderJob)(job) && job.status === 'done') {
99
- if (canvasContent.getBlob === job.getBlob) {
100
- return i;
101
- }
102
- }
103
- }
104
- return -1;
105
- }
106
96
  if (canvasContent.type === 'output') {
107
97
  for (let i = 0; i < jobs.length; i++) {
108
98
  const job = jobs[i];
109
- if (!(0, context_1.isClientRenderJob)(job) &&
110
- job.status === 'done' &&
111
- canvasContent.path === `/${job.outName}`) {
99
+ if (job.status === 'done' && canvasContent.path === `/${job.outName}`) {
112
100
  return i;
113
101
  }
114
102
  }
115
103
  }
116
104
  return -1;
117
105
  }, [canvasContent, jobs]);
118
- if (connectionStatus === 'disconnected') {
119
- return ((0, jsx_runtime_1.jsxs)("div", { style: explainer, children: [(0, jsx_runtime_1.jsx)(layout_1.Spacing, { y: 5 }), (0, jsx_runtime_1.jsx)("div", { style: errorExplanation, children: "The studio server has disconnected." }), (0, jsx_runtime_1.jsx)(layout_1.Spacing, { y: 2, block: true })] }));
106
+ if (connectionStatus === 'disconnected' && !show_browser_rendering_1.SHOW_BROWSER_RENDERING) {
107
+ return (jsx_runtime_1.jsxs("div", { style: explainer, children: [
108
+ jsx_runtime_1.jsx(layout_1.Spacing, { y: 5 }), jsx_runtime_1.jsx("div", { style: errorExplanation, children: "The studio server has disconnected." }), jsx_runtime_1.jsx(layout_1.Spacing, { y: 2, block: true })
109
+ ] }));
120
110
  }
121
111
  if (jobCount === 0) {
122
- return ((0, jsx_runtime_1.jsxs)("div", { style: explainer, children: [(0, jsx_runtime_1.jsx)(layout_1.Spacing, { y: 5 }), (0, jsx_runtime_1.jsx)("div", { style: errorExplanation, children: "No renders in the queue." }), (0, jsx_runtime_1.jsx)(layout_1.Spacing, { y: 2, block: true })] }));
112
+ return (jsx_runtime_1.jsxs("div", { style: explainer, children: [
113
+ jsx_runtime_1.jsx(layout_1.Spacing, { y: 5 }), jsx_runtime_1.jsx("div", { style: errorExplanation, children: "No renders in the queue." }), jsx_runtime_1.jsx(layout_1.Spacing, { y: 2, block: true })
114
+ ] }));
123
115
  }
124
- return ((0, jsx_runtime_1.jsx)("div", { ref: divRef, style: renderQueue, className: ['css-reset', is_menu_item_1.VERTICAL_SCROLLBAR_CLASSNAME].join(' '), children: jobs.map((j, index) => {
125
- return ((0, jsx_runtime_1.jsx)("div", { style: index === jobs.length - 1 ? undefined : separatorStyle, children: (0, jsx_runtime_1.jsx)(RenderQueueItem_1.RenderQueueItem, { selected: selectedJob === index, job: j }) }, j.id));
116
+ return (jsx_runtime_1.jsx("div", { ref: divRef, style: renderQueue, className: ['css-reset', is_menu_item_1.VERTICAL_SCROLLBAR_CLASSNAME].join(' '), children: jobs.map((j, index) => {
117
+ return (jsx_runtime_1.jsx("div", { style: index === jobs.length - 1 ? undefined : separatorStyle, children: jsx_runtime_1.jsx(RenderQueueItem_1.RenderQueueItem, { selected: selectedJob === index, job: j }) }, j.id));
126
118
  }) }));
127
119
  };
128
120
  exports.RenderQueue = RenderQueue;
@@ -46,6 +46,8 @@ const RendersTab = ({ selected, onClick }) => {
46
46
  borderColor: colors_1.LIGHT_TEXT,
47
47
  };
48
48
  }, [failedJobs]);
49
- return ((0, jsx_runtime_1.jsx)(Tabs_1.Tab, { selected: isActuallySelected, onClick: onClick, children: (0, jsx_runtime_1.jsxs)("div", { style: row, children: ["Renders", jobCount > 0 ? ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(layout_1.Flex, {}), (0, jsx_runtime_1.jsx)("div", { style: badgeStyle, children: jobCount })] })) : null] }) }));
49
+ return (jsx_runtime_1.jsx(Tabs_1.Tab, { selected: isActuallySelected, onClick: onClick, children: jsx_runtime_1.jsxs("div", { style: row, children: ["Renders", jobCount > 0 ? (jsx_runtime_1.jsxs(jsx_runtime_1.Fragment, { children: [
50
+ jsx_runtime_1.jsx(layout_1.Flex, {}), jsx_runtime_1.jsx("div", { style: badgeStyle, children: jobCount })
51
+ ] })) : null] }) }));
50
52
  };
51
53
  exports.RendersTab = RendersTab;
@@ -4,6 +4,6 @@ exports.ResetZoomButton = void 0;
4
4
  const jsx_runtime_1 = require("react/jsx-runtime");
5
5
  const Button_1 = require("./Button");
6
6
  const ResetZoomButton = ({ onClick }) => {
7
- return (0, jsx_runtime_1.jsx)(Button_1.Button, { onClick: onClick, children: "Reset zoom" });
7
+ return jsx_runtime_1.jsx(Button_1.Button, { onClick: onClick, children: "Reset zoom" });
8
8
  };
9
9
  exports.ResetZoomButton = ResetZoomButton;
@@ -21,6 +21,10 @@ const container = {
21
21
  padding: 20,
22
22
  };
23
23
  const RunningCalculateMetadata = () => {
24
- return ((0, jsx_runtime_1.jsxs)("div", { style: container, children: [(0, jsx_runtime_1.jsx)(Spinner_1.Spinner, { size: 24, duration: 1 }), (0, jsx_runtime_1.jsx)(layout_1.Spacing, { x: 2 }), (0, jsx_runtime_1.jsxs)("div", { style: exports.loaderLabel, children: ["Running ", (0, jsx_runtime_1.jsx)("code", { style: styles_1.inlineCodeSnippet, children: "calculateMetadata()" }), "..."] })] }));
24
+ return (jsx_runtime_1.jsxs("div", { style: container, children: [
25
+ jsx_runtime_1.jsx(Spinner_1.Spinner, { size: 24, duration: 1 }), jsx_runtime_1.jsx(layout_1.Spacing, { x: 2 }), jsx_runtime_1.jsxs("div", { style: exports.loaderLabel, children: ["Running ",
26
+ jsx_runtime_1.jsx("code", { style: styles_1.inlineCodeSnippet, children: "calculateMetadata()" }),
27
+ "..."] })
28
+ ] }));
25
29
  };
26
30
  exports.RunningCalculateMetadata = RunningCalculateMetadata;
@@ -40,8 +40,8 @@ const SegmentedControl = ({ items, needsWrapping }) => {
40
40
  ...container,
41
41
  };
42
42
  }, [needsWrapping]);
43
- return ((0, jsx_runtime_1.jsx)("div", { style: controlStyle, children: items.map((i) => {
44
- return ((0, jsx_runtime_1.jsx)(Item, { onClick: i.onClick, selected: i.selected, children: i.label }, i.key));
43
+ return (jsx_runtime_1.jsx("div", { style: controlStyle, children: items.map((i) => {
44
+ return (jsx_runtime_1.jsx(Item, { onClick: i.onClick, selected: i.selected, children: i.label }, i.key));
45
45
  }) }));
46
46
  };
47
47
  exports.SegmentedControl = SegmentedControl;
@@ -61,5 +61,5 @@ const Item = ({ selected, onClick, children }) => {
61
61
  color: selected ? 'white' : hovered ? 'white' : colors_1.LIGHT_TEXT,
62
62
  };
63
63
  }, [hovered, selected]);
64
- return ((0, jsx_runtime_1.jsx)("button", { type: "button", onPointerEnter: onPointerEnter, onPointerLeave: onPointerLeave, style: itemStyle, tabIndex: tabIndex, onClick: onClick, children: children }));
64
+ return (jsx_runtime_1.jsx("button", { type: "button", onPointerEnter: onPointerEnter, onPointerLeave: onPointerLeave, style: itemStyle, tabIndex: tabIndex, onClick: onClick, children: children }));
65
65
  };
@@ -15,6 +15,6 @@ const SetTimelineInOutProvider = ({ children }) => {
15
15
  (0, react_1.useEffect)(() => {
16
16
  (0, marks_1.persistMarks)(inAndOutFrames);
17
17
  }, [inAndOutFrames]);
18
- return ((0, jsx_runtime_1.jsx)(in_out_1.TimelineInOutContext.Provider, { value: inAndOutFrames, children: (0, jsx_runtime_1.jsx)(in_out_1.SetTimelineInOutContext.Provider, { value: setTimelineInOutContextValue, children: children }) }));
18
+ return (jsx_runtime_1.jsx(in_out_1.TimelineInOutContext.Provider, { value: inAndOutFrames, children: jsx_runtime_1.jsx(in_out_1.SetTimelineInOutContext.Provider, { value: setTimelineInOutContextValue, children: children }) }));
19
19
  };
20
20
  exports.SetTimelineInOutProvider = SetTimelineInOutProvider;
@@ -38,6 +38,6 @@ const ShowGuidesProvider = ({ children }) => {
38
38
  selectedGuideId,
39
39
  hoveredGuideId,
40
40
  ]);
41
- return ((0, jsx_runtime_1.jsx)(editor_guides_1.EditorShowGuidesContext.Provider, { value: editorShowGuidesCtx, children: children }));
41
+ return (jsx_runtime_1.jsx(editor_guides_1.EditorShowGuidesContext.Provider, { value: editorShowGuidesCtx, children: children }));
42
42
  };
43
43
  exports.ShowGuidesProvider = ShowGuidesProvider;