@remotion/studio 4.0.423 → 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 (360) 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/toggle.d.ts +1 -1
  11. package/dist/components/AskAiModal.js +3 -1
  12. package/dist/components/AssetSelector.js +21 -58
  13. package/dist/components/AssetSelectorItem.js +15 -9
  14. package/dist/components/AudioWaveform.js +5 -4
  15. package/dist/components/AudioWaveformBar.js +1 -1
  16. package/dist/components/Button.js +1 -1
  17. package/dist/components/Canvas.js +2 -1
  18. package/dist/components/CanvasIfSizeIsAvailable.js +1 -1
  19. package/dist/components/CanvasOrLoading.js +12 -6
  20. package/dist/components/CheckboardToggle.js +1 -1
  21. package/dist/components/Checkbox.js +3 -1
  22. package/dist/components/CheckerboardProvider.js +1 -1
  23. package/dist/components/CompSelectorRef.js +1 -1
  24. package/dist/components/CompositionContextButton.js +2 -2
  25. package/dist/components/CompositionSelector.js +4 -3
  26. package/dist/components/CompositionSelectorItem.js +6 -3
  27. package/dist/components/ContextMenu.js +3 -2
  28. package/dist/components/ControlButton.d.ts +1 -1
  29. package/dist/components/ControlButton.js +1 -1
  30. package/dist/components/CopyButton.js +3 -2
  31. package/dist/components/CurrentAsset.d.ts +3 -0
  32. package/dist/components/CurrentAsset.js +113 -0
  33. package/dist/components/CurrentComposition.js +3 -2
  34. package/dist/components/Editor.js +6 -1
  35. package/dist/components/EditorContent.js +6 -1
  36. package/dist/components/EditorContexts.js +3 -1
  37. package/dist/components/EditorGuides/Guide.js +1 -1
  38. package/dist/components/EditorGuides/index.js +2 -2
  39. package/dist/components/EditorRuler/Ruler.js +1 -1
  40. package/dist/components/EditorRuler/index.js +3 -1
  41. package/dist/components/ExplorerPanel.js +4 -1
  42. package/dist/components/FilePreview.js +8 -6
  43. package/dist/components/FpsCounter.js +1 -1
  44. package/dist/components/FullscreenToggle.js +1 -1
  45. package/dist/components/GlobalPropsEditorUpdateButton.js +3 -1
  46. package/dist/components/InitialCompositionLoader.d.ts +1 -2
  47. package/dist/components/InitialCompositionLoader.js +3 -3
  48. package/dist/components/InlineAction.js +1 -1
  49. package/dist/components/InlineDropdown.js +3 -2
  50. package/dist/components/InstallPackage.js +19 -9
  51. package/dist/components/InstallablePackage.js +5 -3
  52. package/dist/components/JSONViewer.js +1 -1
  53. package/dist/components/KeyboardShortcutsExplainer.js +91 -1
  54. package/dist/components/KnownBugs.js +4 -2
  55. package/dist/components/LoopToggle.js +1 -1
  56. package/dist/components/MediaVolumeProvider.js +1 -1
  57. package/dist/components/Menu/MenuDivider.js +1 -1
  58. package/dist/components/Menu/MenuItem.js +3 -2
  59. package/dist/components/Menu/MenuSubItem.js +4 -2
  60. package/dist/components/Menu/SubMenu.js +1 -1
  61. package/dist/components/MenuBuildIndicator.js +1 -1
  62. package/dist/components/MenuToolbar.js +5 -3
  63. package/dist/components/MobilePanel.d.ts +1 -1
  64. package/dist/components/MobilePanel.js +2 -1
  65. package/dist/components/ModalButton.js +1 -1
  66. package/dist/components/ModalContainer.js +1 -1
  67. package/dist/components/ModalFooter.js +1 -1
  68. package/dist/components/ModalHeader.js +3 -1
  69. package/dist/components/Modals.js +2 -2
  70. package/dist/components/ModalsProvider.js +1 -1
  71. package/dist/components/MuteToggle.js +1 -1
  72. package/dist/components/NewComposition/CancelButton.js +1 -1
  73. package/dist/components/NewComposition/CodemodFooter.js +5 -2
  74. package/dist/components/NewComposition/ComboBox.js +6 -2
  75. package/dist/components/NewComposition/DeleteComposition.js +10 -2
  76. package/dist/components/NewComposition/DiffPreview.js +5 -3
  77. package/dist/components/NewComposition/DismissableModal.js +1 -1
  78. package/dist/components/NewComposition/DuplicateComposition.js +28 -3
  79. package/dist/components/NewComposition/InputDragger.d.ts +1 -1
  80. package/dist/components/NewComposition/InputDragger.js +2 -2
  81. package/dist/components/NewComposition/MenuContent.js +3 -3
  82. package/dist/components/NewComposition/NewCompDuration.js +7 -2
  83. package/dist/components/NewComposition/RemInput.d.ts +2 -2
  84. package/dist/components/NewComposition/RemInput.js +2 -2
  85. package/dist/components/NewComposition/RemInputTypeColor.js +1 -1
  86. package/dist/components/NewComposition/RemTextarea.js +1 -1
  87. package/dist/components/NewComposition/RenameComposition.js +11 -2
  88. package/dist/components/NewComposition/ValidationMessage.js +4 -2
  89. package/dist/components/NoRegisterRoot.js +4 -1
  90. package/dist/components/Notifications/ColorDot.js +1 -1
  91. package/dist/components/Notifications/Notification.js +1 -1
  92. package/dist/components/Notifications/NotificationCenter.js +2 -2
  93. package/dist/components/Notifications/ServerDisconnected.js +2 -1
  94. package/dist/components/OpenEditorButton.js +2 -2
  95. package/dist/components/OptionsPanel.js +7 -4
  96. package/dist/components/OverrideInputProps.js +7 -2
  97. package/dist/components/PlayPause.js +3 -1
  98. package/dist/components/PlaybackRateSelector.js +2 -2
  99. package/dist/components/Preview.js +8 -8
  100. package/dist/components/PreviewToolbar.js +11 -1
  101. package/dist/components/QuickSwitcher/AlgoliaCredit.js +1 -1
  102. package/dist/components/QuickSwitcher/NoResults.js +1 -1
  103. package/dist/components/QuickSwitcher/QuickSwitcher.js +1 -1
  104. package/dist/components/QuickSwitcher/QuickSwitcherContent.js +12 -3
  105. package/dist/components/QuickSwitcher/QuickSwitcherResult.js +6 -3
  106. package/dist/components/RefreshCompositionOverlay.js +1 -1
  107. package/dist/components/RenderButton.js +26 -9
  108. package/dist/components/RenderModal/CliCopyButton.js +3 -3
  109. package/dist/components/RenderModal/ClientRenderProgress.js +16 -14
  110. package/dist/components/RenderModal/CrfSetting.d.ts +1 -2
  111. package/dist/components/RenderModal/CrfSetting.js +1 -1
  112. package/dist/components/RenderModal/DataEditor.js +15 -8
  113. package/dist/components/RenderModal/EnforceAudioTrackSetting.js +5 -1
  114. package/dist/components/RenderModal/EnvInput.js +4 -1
  115. package/dist/components/RenderModal/FrameRangeSetting.js +5 -1
  116. package/dist/components/RenderModal/GuiRenderStatus.js +15 -10
  117. package/dist/components/RenderModal/InfoBubble.js +3 -2
  118. package/dist/components/RenderModal/InfoTooltip.js +3 -2
  119. package/dist/components/RenderModal/InlineEyeIcon.js +2 -2
  120. package/dist/components/RenderModal/InlineRemoveButton.js +2 -2
  121. package/dist/components/RenderModal/JpegQualitySetting.js +1 -1
  122. package/dist/components/RenderModal/MultiRangeSlider.js +3 -1
  123. package/dist/components/RenderModal/MutedSetting.js +5 -1
  124. package/dist/components/RenderModal/NumberOfLoopsSetting.js +3 -1
  125. package/dist/components/RenderModal/NumberSetting.js +6 -2
  126. package/dist/components/RenderModal/OptionExplainer.js +14 -1
  127. package/dist/components/RenderModal/OptionExplainerBubble.js +1 -1
  128. package/dist/components/RenderModal/RenderModalAdvanced.js +66 -7
  129. package/dist/components/RenderModal/RenderModalAudio.js +21 -4
  130. package/dist/components/RenderModal/RenderModalBasic.js +18 -3
  131. package/dist/components/RenderModal/RenderModalEnvironmentVariables.js +5 -3
  132. package/dist/components/RenderModal/RenderModalGif.js +6 -1
  133. package/dist/components/RenderModal/RenderModalHr.js +1 -1
  134. package/dist/components/RenderModal/RenderModalJSONPropsEditor.js +5 -2
  135. package/dist/components/RenderModal/RenderModalOutputName.js +8 -1
  136. package/dist/components/RenderModal/RenderModalPicture.js +30 -3
  137. package/dist/components/RenderModal/RenderStatusModal.js +8 -2
  138. package/dist/components/RenderModal/ResolveCompositionBeforeModal.js +6 -3
  139. package/dist/components/RenderModal/ScaleSetting.js +3 -2
  140. package/dist/components/RenderModal/SchemaEditor/Fieldset.js +2 -2
  141. package/dist/components/RenderModal/SchemaEditor/SchemaEditor.js +4 -4
  142. package/dist/components/RenderModal/SchemaEditor/SchemaErrorMessages.js +31 -6
  143. package/dist/components/RenderModal/SchemaEditor/SchemaLabel.js +3 -3
  144. package/dist/components/RenderModal/SchemaEditor/SchemaResetButton.js +2 -2
  145. package/dist/components/RenderModal/SchemaEditor/SchemaSaveButton.js +2 -2
  146. package/dist/components/RenderModal/SchemaEditor/SchemaSeparationLine.js +9 -5
  147. package/dist/components/RenderModal/SchemaEditor/SchemaVerticalGuide.js +3 -1
  148. package/dist/components/RenderModal/SchemaEditor/ZodArrayEditor.js +9 -5
  149. package/dist/components/RenderModal/SchemaEditor/ZodArrayItemEditor.js +1 -1
  150. package/dist/components/RenderModal/SchemaEditor/ZodBooleanEditor.js +3 -1
  151. package/dist/components/RenderModal/SchemaEditor/ZodColorEditor.js +8 -2
  152. package/dist/components/RenderModal/SchemaEditor/ZodDateEditor.js +5 -1
  153. package/dist/components/RenderModal/SchemaEditor/ZodDefaultEditor.js +1 -1
  154. package/dist/components/RenderModal/SchemaEditor/ZodDiscriminatedUnionEditor.js +6 -4
  155. package/dist/components/RenderModal/SchemaEditor/ZodEffectEditor.js +3 -1
  156. package/dist/components/RenderModal/SchemaEditor/ZodEnumEditor.js +4 -2
  157. package/dist/components/RenderModal/SchemaEditor/ZodErrorMessages.js +6 -4
  158. package/dist/components/RenderModal/SchemaEditor/ZodFieldValidation.js +8 -2
  159. package/dist/components/RenderModal/SchemaEditor/ZodMatrixEditor.js +8 -6
  160. package/dist/components/RenderModal/SchemaEditor/ZodNonEditableValue.js +3 -1
  161. package/dist/components/RenderModal/SchemaEditor/ZodNullableEditor.js +1 -1
  162. package/dist/components/RenderModal/SchemaEditor/ZodNumberEditor.js +5 -1
  163. package/dist/components/RenderModal/SchemaEditor/ZodObjectEditor.js +6 -5
  164. package/dist/components/RenderModal/SchemaEditor/ZodOptionalEditor.js +1 -1
  165. package/dist/components/RenderModal/SchemaEditor/ZodOrNullishEditor.js +4 -1
  166. package/dist/components/RenderModal/SchemaEditor/ZodStaticFileEditor.js +8 -5
  167. package/dist/components/RenderModal/SchemaEditor/ZodStringEditor.js +5 -1
  168. package/dist/components/RenderModal/SchemaEditor/ZodSwitch.js +24 -24
  169. package/dist/components/RenderModal/SchemaEditor/ZodTextareaEditor.js +5 -1
  170. package/dist/components/RenderModal/SchemaEditor/ZodTupleEditor.js +9 -5
  171. package/dist/components/RenderModal/SchemaEditor/ZodTupleItemEditor.js +1 -1
  172. package/dist/components/RenderModal/SchemaEditor/ZodUnionEditor.js +5 -5
  173. package/dist/components/RenderModal/SchemaEditor/create-zod-values.d.ts +2 -2
  174. package/dist/components/RenderModal/SchemaEditor/extract-enum-json-paths.d.ts +4 -4
  175. package/dist/components/RenderModal/SchemaEditor/local-state.js +1 -1
  176. package/dist/components/RenderModal/SeparateAudioOption.js +7 -2
  177. package/dist/components/RenderModal/ServerRenderModal.js +27 -5
  178. package/dist/components/RenderModal/WarningIndicatorButton.js +4 -2
  179. package/dist/components/RenderModal/WebRenderModal.js +29 -6
  180. package/dist/components/RenderModal/WebRenderModalAdvanced.js +11 -4
  181. package/dist/components/RenderModal/WebRenderModalAudio.js +12 -2
  182. package/dist/components/RenderModal/WebRenderModalBasic.js +23 -5
  183. package/dist/components/RenderModal/WebRenderModalLicense.js +24 -2
  184. package/dist/components/RenderModal/WebRenderModalLicenseKeyDetails.js +12 -1
  185. package/dist/components/RenderModal/WebRenderModalPicture.js +8 -1
  186. package/dist/components/RenderModal/WebRendererExperimentalBadge.js +3 -1
  187. package/dist/components/RenderModal/get-default-codecs.d.ts +7 -8
  188. package/dist/components/RenderModal/human-readable-audio-codecs.d.ts +1 -2
  189. package/dist/components/RenderModal/human-readable-codec.d.ts +1 -2
  190. package/dist/components/RenderModal/human-readable-loglevel.d.ts +1 -2
  191. package/dist/components/RenderModal/out-name-checker.d.ts +4 -5
  192. package/dist/components/RenderModal/quality-options.js +1 -1
  193. package/dist/components/RenderPreview.js +4 -4
  194. package/dist/components/RenderQueue/CircularProgress.js +1 -1
  195. package/dist/components/RenderQueue/ClientRenderQueueProcessor.js +0 -1
  196. package/dist/components/RenderQueue/RenderQueueCancelledMessage.js +1 -1
  197. package/dist/components/RenderQueue/RenderQueueCopyToClipboard.js +2 -2
  198. package/dist/components/RenderQueue/RenderQueueDownloadItem.js +2 -2
  199. package/dist/components/RenderQueue/RenderQueueError.js +1 -1
  200. package/dist/components/RenderQueue/RenderQueueItem.js +4 -1
  201. package/dist/components/RenderQueue/RenderQueueItemCancelButton.js +2 -2
  202. package/dist/components/RenderQueue/RenderQueueItemStatus.js +8 -8
  203. package/dist/components/RenderQueue/RenderQueueOpenInFolder.js +2 -2
  204. package/dist/components/RenderQueue/RenderQueueOutputName.js +1 -1
  205. package/dist/components/RenderQueue/RenderQueueProgressMessage.js +4 -2
  206. package/dist/components/RenderQueue/RenderQueueRemoveItem.js +2 -2
  207. package/dist/components/RenderQueue/RenderQueueRepeat.js +2 -2
  208. package/dist/components/RenderQueue/RenderQueueSavingMessage.js +1 -1
  209. package/dist/components/RenderQueue/SuccessIcon.js +1 -1
  210. package/dist/components/RenderQueue/actions.d.ts +21 -24
  211. package/dist/components/RenderQueue/client-side-render-types.d.ts +0 -1
  212. package/dist/components/RenderQueue/context.js +2 -2
  213. package/dist/components/RenderQueue/index.js +10 -5
  214. package/dist/components/RendersTab.js +3 -1
  215. package/dist/components/ResetZoomButton.js +1 -1
  216. package/dist/components/RunningCalculateMetadata.js +5 -1
  217. package/dist/components/SegmentedControl.js +3 -3
  218. package/dist/components/SetTimelineInOutProvider.js +1 -1
  219. package/dist/components/ShowGuidesProvider.js +1 -1
  220. package/dist/components/ShowRulersProvider.js +1 -1
  221. package/dist/components/SidebarCollapserControls.js +5 -3
  222. package/dist/components/SidebarRenderButton.js +2 -2
  223. package/dist/components/SizeSelector.js +2 -2
  224. package/dist/components/Spinner.js +6 -4
  225. package/dist/components/Splitter/SplitterContainer.js +1 -1
  226. package/dist/components/Splitter/SplitterElement.js +3 -1
  227. package/dist/components/Splitter/SplitterHandle.js +1 -1
  228. package/dist/components/StaticFilePreview.js +5 -5
  229. package/dist/components/Tabs/index.js +2 -2
  230. package/dist/components/Tabs/vertical.js +1 -1
  231. package/dist/components/TextViewer.js +1 -1
  232. package/dist/components/TimeValue.js +3 -1
  233. package/dist/components/Timeline/LoopedIndicator.js +4 -2
  234. package/dist/components/Timeline/LoopedTimelineIndicators.js +5 -4
  235. package/dist/components/Timeline/MaxTimelineTracks.js +1 -1
  236. package/dist/components/Timeline/Timeline.js +5 -1
  237. package/dist/components/Timeline/TimelineCollapseToggle.js +2 -2
  238. package/dist/components/Timeline/TimelineDragHandler.js +5 -3
  239. package/dist/components/Timeline/TimelineInOutPointer.js +2 -2
  240. package/dist/components/Timeline/TimelineInOutPointerHandle.js +2 -2
  241. package/dist/components/Timeline/TimelineLayerEye.js +3 -3
  242. package/dist/components/Timeline/TimelineList.js +3 -2
  243. package/dist/components/Timeline/TimelineListItem.js +3 -1
  244. package/dist/components/Timeline/TimelineScrollable.js +1 -1
  245. package/dist/components/Timeline/TimelineSequence.js +6 -6
  246. package/dist/components/Timeline/TimelineSequenceFrame.js +1 -1
  247. package/dist/components/Timeline/TimelineSlider.d.ts +1 -1
  248. package/dist/components/Timeline/TimelineSlider.js +6 -3
  249. package/dist/components/Timeline/TimelineSliderHandle.js +1 -1
  250. package/dist/components/Timeline/TimelineStack/index.js +5 -2
  251. package/dist/components/Timeline/TimelineTimeIndicators.js +5 -5
  252. package/dist/components/Timeline/TimelineTracks.js +6 -4
  253. package/dist/components/Timeline/TimelineVideoInfo.js +1 -1
  254. package/dist/components/Timeline/TimelineWidthProvider.js +1 -1
  255. package/dist/components/Timeline/TimelineZoomControls.js +3 -1
  256. package/dist/components/Timeline/timeline-scroll-logic.d.ts +1 -1
  257. package/dist/components/Timeline/timeline-scroll-logic.js +12 -8
  258. package/dist/components/TimelineInOutToggle.js +11 -7
  259. package/dist/components/TopPanel.js +5 -1
  260. package/dist/components/UpdateCheck.js +2 -2
  261. package/dist/components/UpdateModal/OpenIssueButton.js +2 -2
  262. package/dist/components/UpdateModal/UpdateModal.js +8 -1
  263. package/dist/components/VisualControls/ClickableFileName.js +1 -1
  264. package/dist/components/VisualControls/VisualControlHandle.js +3 -1
  265. package/dist/components/VisualControls/VisualControlHandleHeader.js +1 -1
  266. package/dist/components/VisualControls/VisualControlsContent.js +3 -2
  267. package/dist/components/ZoomGesturesProvider.js +1 -1
  268. package/dist/components/call-api.d.ts +1 -1
  269. package/dist/components/get-zod-if-possible.d.ts +3 -3
  270. package/dist/components/get-zod-if-possible.js +9 -9
  271. package/dist/components/layout.js +4 -4
  272. package/dist/components/use-static-files.d.ts +6 -0
  273. package/dist/components/use-static-files.js +63 -0
  274. package/dist/error-overlay/react-overlay/utils/parser.d.ts +1 -1
  275. package/dist/error-overlay/remotion-overlay/AskOnDiscord.js +1 -1
  276. package/dist/error-overlay/remotion-overlay/CalculateMetadataErrorExplainer.js +2 -1
  277. package/dist/error-overlay/remotion-overlay/CodeFrame.js +6 -4
  278. package/dist/error-overlay/remotion-overlay/CompositionIdListItem.js +1 -1
  279. package/dist/error-overlay/remotion-overlay/CompositionIdsDropdown.js +8 -3
  280. package/dist/error-overlay/remotion-overlay/DismissButton.js +1 -1
  281. package/dist/error-overlay/remotion-overlay/ErrorDisplay.js +19 -4
  282. package/dist/error-overlay/remotion-overlay/ErrorLoader.js +8 -4
  283. package/dist/error-overlay/remotion-overlay/ErrorMessage.js +2 -1
  284. package/dist/error-overlay/remotion-overlay/ErrorTitle.js +7 -1
  285. package/dist/error-overlay/remotion-overlay/HelpLink.js +1 -1
  286. package/dist/error-overlay/remotion-overlay/OpenInEditor.js +1 -1
  287. package/dist/error-overlay/remotion-overlay/Overlay.js +2 -2
  288. package/dist/error-overlay/remotion-overlay/Retry.js +1 -1
  289. package/dist/error-overlay/remotion-overlay/SearchGitHubIssues.js +1 -1
  290. package/dist/error-overlay/remotion-overlay/ShortcutHint.js +2 -1
  291. package/dist/error-overlay/remotion-overlay/StackFrame.js +6 -2
  292. package/dist/error-overlay/remotion-overlay/Symbolicating.js +3 -1
  293. package/dist/error-overlay/remotion-overlay/carets.d.ts +1 -1
  294. package/dist/error-overlay/remotion-overlay/carets.js +2 -2
  295. package/dist/error-overlay/remotion-overlay/index.js +2 -2
  296. package/dist/esm/{chunk-112w480k.js → chunk-3g77e2p9.js} +4021 -19452
  297. package/dist/esm/internals.mjs +4021 -19452
  298. package/dist/esm/previewEntry.mjs +4052 -19483
  299. package/dist/esm/renderEntry.mjs +1 -1
  300. package/dist/helpers/client-id.js +1 -1
  301. package/dist/helpers/color-math.d.ts +1 -2
  302. package/dist/helpers/create-folder-tree.d.ts +2 -2
  303. package/dist/helpers/document-title.js +2 -2
  304. package/dist/helpers/editor-ruler.d.ts +3 -3
  305. package/dist/helpers/extract-frames.d.ts +1 -1
  306. package/dist/helpers/pick-color.js +5 -1
  307. package/dist/helpers/presets-labels.d.ts +1 -2
  308. package/dist/helpers/prores-labels.d.ts +1 -2
  309. package/dist/helpers/render-modal-sections.d.ts +1 -2
  310. package/dist/helpers/timeline-layout.d.ts +1 -1
  311. package/dist/helpers/use-asset-drag-events.d.ts +1 -1
  312. package/dist/helpers/use-menu-structure.d.ts +1 -1
  313. package/dist/helpers/use-menu-structure.js +11 -11
  314. package/dist/helpers/use-studio-canvas-dimensions.d.ts +1 -1
  315. package/dist/helpers/validate-new-comp-data.d.ts +2 -3
  316. package/dist/hot-middleware-client/client.d.ts +1 -1
  317. package/dist/hot-middleware-client/process-update.d.ts +8 -2
  318. package/dist/hot-middleware-client/process-update.js +2 -1
  319. package/dist/icons/Checkmark.js +1 -1
  320. package/dist/icons/audio.js +1 -1
  321. package/dist/icons/caret.js +3 -3
  322. package/dist/icons/certificate.d.ts +1 -1
  323. package/dist/icons/certificate.js +1 -1
  324. package/dist/icons/check-circle-filled.js +1 -1
  325. package/dist/icons/clipboard.js +1 -1
  326. package/dist/icons/data.js +1 -1
  327. package/dist/icons/ellipsis.js +1 -1
  328. package/dist/icons/file.js +1 -1
  329. package/dist/icons/folder.js +3 -3
  330. package/dist/icons/frame.js +1 -1
  331. package/dist/icons/gear.js +1 -1
  332. package/dist/icons/gif.js +1 -1
  333. package/dist/icons/jump-to-start.js +1 -1
  334. package/dist/icons/keys.js +3 -3
  335. package/dist/icons/media-volume.js +2 -2
  336. package/dist/icons/minus.js +1 -1
  337. package/dist/icons/pause.js +1 -1
  338. package/dist/icons/play.js +1 -1
  339. package/dist/icons/plus.js +1 -1
  340. package/dist/icons/render.js +1 -1
  341. package/dist/icons/step-back.js +1 -1
  342. package/dist/icons/step-forward.js +1 -1
  343. package/dist/icons/still.js +1 -1
  344. package/dist/icons/timelineInOutPointer.js +2 -2
  345. package/dist/icons/video.js +1 -1
  346. package/dist/index.js +16 -16
  347. package/dist/internals.d.ts +1 -1
  348. package/dist/previewEntry.js +2 -2
  349. package/dist/renderEntry.js +10 -8
  350. package/dist/state/folders.js +1 -1
  351. package/dist/state/highest-z-index.js +1 -1
  352. package/dist/state/in-out.js +4 -3
  353. package/dist/state/keybindings.js +1 -1
  354. package/dist/state/preview-size.js +1 -1
  355. package/dist/state/sidebar.js +1 -1
  356. package/dist/state/timeline-zoom.js +1 -1
  357. package/dist/state/z-index.js +2 -1
  358. package/dist/visual-controls/VisualControls.js +1 -1
  359. package/dist/visual-controls/get-current-edited-value.js +2 -1
  360. package/package.json +13 -12
@@ -92,7 +92,7 @@ const getInitialRenderType = (readOnlyStudio) => {
92
92
  const RenderButton = ({ readOnlyStudio, }) => {
93
93
  const { inFrame, outFrame } = (0, in_out_1.useTimelineInOutFramePosition)();
94
94
  const { setSelectedModal } = (0, react_1.useContext)(modals_1.ModalsContext);
95
- const [renderType, setRenderType] = (0, react_1.useState)(() => getInitialRenderType(readOnlyStudio));
95
+ const [preferredRenderType, setPreferredRenderType] = (0, react_1.useState)(() => getInitialRenderType(readOnlyStudio));
96
96
  const [dropdownOpened, setDropdownOpened] = (0, react_1.useState)(false);
97
97
  const dropdownRef = (0, react_1.useRef)(null);
98
98
  const containerRef = (0, react_1.useRef)(null);
@@ -132,8 +132,18 @@ const RenderButton = ({ readOnlyStudio, }) => {
132
132
  }, [refresh]);
133
133
  const connectionStatus = (0, react_1.useContext)(client_id_1.StudioServerConnectionCtx)
134
134
  .previewServerState.type;
135
+ const canRender = connectionStatus === 'connected' || show_browser_rendering_1.SHOW_BROWSER_RENDERING;
136
+ const renderType = (0, react_1.useMemo)(() => {
137
+ if (connectionStatus === 'disconnected' && show_browser_rendering_1.SHOW_BROWSER_RENDERING) {
138
+ return 'client-render';
139
+ }
140
+ if (!show_browser_rendering_1.SHOW_BROWSER_RENDERING) {
141
+ return 'server-render';
142
+ }
143
+ return preferredRenderType;
144
+ }, [connectionStatus, preferredRenderType]);
135
145
  const shortcut = (0, use_keybinding_1.areKeyboardShortcutsDisabled)() ? '' : '(R)';
136
- const tooltip = connectionStatus === 'connected'
146
+ const tooltip = canRender
137
147
  ? 'Export the current composition ' + shortcut
138
148
  : 'Connect to the Studio server to render';
139
149
  const iconStyle = (0, react_1.useMemo)(() => {
@@ -148,7 +158,8 @@ const RenderButton = ({ readOnlyStudio, }) => {
148
158
  const getCurrentFrame = player_1.PlayerInternals.useFrameImperative();
149
159
  const { props } = (0, react_1.useContext)(remotion_1.Internals.EditorPropsContext);
150
160
  const openServerRenderModal = (0, react_1.useCallback)(() => {
151
- var _a, _b, _c;
161
+ var _a;
162
+ var _b, _c;
152
163
  if (!video) {
153
164
  return null;
154
165
  }
@@ -253,7 +264,7 @@ const RenderButton = ({ readOnlyStudio, }) => {
253
264
  setDropdownOpened(false);
254
265
  }, []);
255
266
  const handleRenderTypeChange = (0, react_1.useCallback)((newType) => {
256
- setRenderType(newType);
267
+ setPreferredRenderType(newType);
257
268
  try {
258
269
  localStorage.setItem(RENDER_TYPE_STORAGE_KEY, newType);
259
270
  }
@@ -333,10 +344,10 @@ const RenderButton = ({ readOnlyStudio, }) => {
333
344
  return {
334
345
  ...splitButtonContainer,
335
346
  borderColor: colors_1.INPUT_BORDER_COLOR_UNHOVERED,
336
- opacity: connectionStatus !== 'connected' ? 0.7 : 1,
337
- cursor: connectionStatus !== 'connected' ? 'inherit' : 'pointer',
347
+ opacity: canRender ? 1 : 0.7,
348
+ cursor: canRender ? 'pointer' : 'inherit',
338
349
  };
339
- }, [connectionStatus]);
350
+ }, [canRender]);
340
351
  const renderLabel = renderType === 'server-render' ? 'Render' : 'Render on web';
341
352
  const shouldShowDropdown = (0, react_1.useMemo)(() => {
342
353
  // Server render is not available
@@ -352,8 +363,14 @@ const RenderButton = ({ readOnlyStudio, }) => {
352
363
  if (!video) {
353
364
  return null;
354
365
  }
355
- return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)("button", { style: { display: 'none' }, id: "render-modal-button-server", disabled: connectionStatus !== 'connected' && renderType === 'server-render', onClick: openServerRenderModal, type: "button" }), ' ', (0, jsx_runtime_1.jsx)("button", { style: { display: 'none' }, id: "render-modal-button-client", onClick: openClientRenderModal, type: "button" }), (0, jsx_runtime_1.jsxs)("div", { ref: containerRef, style: containerStyle, title: tooltip, children: [(0, jsx_runtime_1.jsx)("button", { type: "button", style: mainButtonStyle, onClick: onClick, id: "render-modal-button", disabled: connectionStatus !== 'connected' && renderType === 'server-render', children: (0, jsx_runtime_1.jsxs)(layout_1.Row, { align: "center", style: mainButtonContent, children: [(0, jsx_runtime_1.jsx)(render_1.ThinRenderIcon, { fill: "currentcolor", svgProps: iconStyle }), (0, jsx_runtime_1.jsx)(layout_1.Spacing, { x: 1 }), (0, jsx_runtime_1.jsx)("span", { style: label, children: renderLabel })] }) }), shouldShowDropdown ? ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)("div", { style: dividerStyle }), (0, jsx_runtime_1.jsx)("button", { ref: dropdownRef, type: "button", style: dropdownTriggerStyle, disabled: connectionStatus !== 'connected', className: is_menu_item_1.MENU_INITIATOR_CLASSNAME, onPointerDown: onPointerDown, onClick: onClickDropdown, children: (0, jsx_runtime_1.jsx)(caret_1.CaretDown, {}) })] })) : null] }), portalStyle
356
- ? react_dom_1.default.createPortal((0, jsx_runtime_1.jsx)("div", { style: styles_1.fullScreenOverlay, children: (0, jsx_runtime_1.jsx)("div", { style: styles_1.outerPortal, className: "css-reset", children: (0, jsx_runtime_1.jsx)(z_index_1.HigherZIndex, { onOutsideClick: onHideDropdown, onEscape: onHideDropdown, children: (0, jsx_runtime_1.jsx)("div", { style: portalStyle, children: (0, jsx_runtime_1.jsx)(MenuContent_1.MenuContent, { onNextMenu: () => { }, onPreviousMenu: () => { }, values: dropdownValues, onHide: onHideDropdown, leaveLeftSpace: false, preselectIndex: dropdownValues.findIndex((v) => v.id === renderType), topItemCanBeUnselected: false, fixedHeight: derivedMaxHeight }) }) }) }) }), (0, portals_1.getPortal)(currentZIndex))
366
+ return (jsx_runtime_1.jsxs(jsx_runtime_1.Fragment, { children: [
367
+ jsx_runtime_1.jsx("button", { style: { display: 'none' }, id: "render-modal-button-server", disabled: !canRender, onClick: openServerRenderModal, type: "button" }), ' ', jsx_runtime_1.jsx("button", { style: { display: 'none' }, id: "render-modal-button-client", onClick: openClientRenderModal, type: "button" }), jsx_runtime_1.jsxs("div", { ref: containerRef, style: containerStyle, title: tooltip, children: [
368
+ jsx_runtime_1.jsx("button", { type: "button", style: mainButtonStyle, onClick: onClick, id: "render-modal-button", disabled: !canRender, children: jsx_runtime_1.jsxs(layout_1.Row, { align: "center", style: mainButtonContent, children: [
369
+ jsx_runtime_1.jsx(render_1.ThinRenderIcon, { fill: "currentcolor", svgProps: iconStyle }), jsx_runtime_1.jsx(layout_1.Spacing, { x: 1 }), jsx_runtime_1.jsx("span", { style: label, children: renderLabel })
370
+ ] }) }), shouldShowDropdown ? (jsx_runtime_1.jsxs(jsx_runtime_1.Fragment, { children: [
371
+ jsx_runtime_1.jsx("div", { style: dividerStyle }), jsx_runtime_1.jsx("button", { ref: dropdownRef, type: "button", style: dropdownTriggerStyle, disabled: connectionStatus !== 'connected', className: is_menu_item_1.MENU_INITIATOR_CLASSNAME, onPointerDown: onPointerDown, onClick: onClickDropdown, children: jsx_runtime_1.jsx(caret_1.CaretDown, {}) })
372
+ ] })) : null] }), portalStyle
373
+ ? react_dom_1.default.createPortal(jsx_runtime_1.jsx("div", { style: styles_1.fullScreenOverlay, children: jsx_runtime_1.jsx("div", { style: styles_1.outerPortal, className: "css-reset", children: jsx_runtime_1.jsx(z_index_1.HigherZIndex, { onOutsideClick: onHideDropdown, onEscape: onHideDropdown, children: jsx_runtime_1.jsx("div", { style: portalStyle, children: jsx_runtime_1.jsx(MenuContent_1.MenuContent, { onNextMenu: () => { }, onPreviousMenu: () => { }, values: dropdownValues, onHide: onHideDropdown, leaveLeftSpace: false, preselectIndex: dropdownValues.findIndex((v) => v.id === renderType), topItemCanBeUnselected: false, fixedHeight: derivedMaxHeight }) }) }) }) }), (0, portals_1.getPortal)(currentZIndex))
357
374
  : null] }));
358
375
  };
359
376
  exports.RenderButton = RenderButton;
@@ -33,8 +33,8 @@ const CliCopyButton = ({ valueToCopy, }) => {
33
33
  const fillColor = (0, react_1.useMemo)(() => {
34
34
  return hovered ? 'white' : colors_1.LIGHT_TEXT;
35
35
  }, [hovered]);
36
- const clipboardIcon = (0, jsx_runtime_1.jsx)(clipboard_1.ClipboardIcon, { color: fillColor, style: svgStyle });
37
- const checkSvg = ((0, jsx_runtime_1.jsx)("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 448 512", style: svgStyle, children: (0, jsx_runtime_1.jsx)("path", { fill: fillColor, d: "M438.6 105.4c12.5 12.5 12.5 32.8 0 45.3l-256 256c-12.5 12.5-32.8 12.5-45.3 0l-128-128c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L160 338.7 393.4 105.4c12.5-12.5 32.8-12.5 45.3 0z" }) }));
36
+ const clipboardIcon = jsx_runtime_1.jsx(clipboard_1.ClipboardIcon, { color: fillColor, style: svgStyle });
37
+ const checkSvg = (jsx_runtime_1.jsx("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 448 512", style: svgStyle, children: jsx_runtime_1.jsx("path", { fill: fillColor, d: "M438.6 105.4c12.5 12.5 12.5 32.8 0 45.3l-256 256c-12.5 12.5-32.8 12.5-45.3 0l-128-128c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L160 338.7 393.4 105.4c12.5-12.5 32.8-12.5 45.3 0z" }) }));
38
38
  const onPointerEnter = (0, react_1.useCallback)(() => {
39
39
  setHovered(true);
40
40
  }, []);
@@ -52,7 +52,7 @@ const CliCopyButton = ({ valueToCopy, }) => {
52
52
  const to = setTimeout(() => handleClear(), 2000);
53
53
  return () => clearTimeout(to);
54
54
  }, [copied]);
55
- return copied ? ((0, jsx_runtime_1.jsx)("span", { style: copiedStyle, children: checkSvg })) : ((0, jsx_runtime_1.jsx)("button", { type: "button", onPointerEnter: onPointerEnter, onPointerLeave: onPointerLeave, style: buttonStyle, onClick: () => {
55
+ return copied ? (jsx_runtime_1.jsx("span", { style: copiedStyle, children: checkSvg })) : (jsx_runtime_1.jsx("button", { type: "button", onPointerEnter: onPointerEnter, onPointerLeave: onPointerLeave, style: buttonStyle, onClick: () => {
56
56
  navigator.clipboard.writeText(valueToCopy);
57
57
  setCopied(true);
58
58
  }, children: clipboardIcon }));
@@ -24,22 +24,18 @@ const right = {
24
24
  textAlign: 'right',
25
25
  flex: 1,
26
26
  };
27
- const RenderingProgress = ({ renderedFrames, totalFrames }) => {
28
- const done = renderedFrames === totalFrames;
29
- const progress = totalFrames > 0 ? renderedFrames / totalFrames : 0;
30
- return ((0, jsx_runtime_1.jsxs)("div", { style: progressItem, children: [done ? (0, jsx_runtime_1.jsx)(SuccessIcon_1.SuccessIcon, {}) : (0, jsx_runtime_1.jsx)(CircularProgress_1.CircularProgress, { progress: progress }), (0, jsx_runtime_1.jsx)(layout_1.Spacing, { x: 1 }), (0, jsx_runtime_1.jsx)("div", { style: label, children: done
31
- ? `Rendered ${totalFrames} frames`
32
- : `Rendering ${renderedFrames} / ${totalFrames} frames` })] }));
33
- };
34
27
  const EncodingProgress = ({ encodedFrames, totalFrames }) => {
35
28
  const done = encodedFrames === totalFrames;
36
29
  const progress = totalFrames > 0 ? encodedFrames / totalFrames : 0;
37
- return ((0, jsx_runtime_1.jsxs)("div", { style: progressItem, children: [done ? (0, jsx_runtime_1.jsx)(SuccessIcon_1.SuccessIcon, {}) : (0, jsx_runtime_1.jsx)(CircularProgress_1.CircularProgress, { progress: progress }), (0, jsx_runtime_1.jsx)(layout_1.Spacing, { x: 1 }), (0, jsx_runtime_1.jsx)("div", { style: label, children: done
30
+ return (jsx_runtime_1.jsxs("div", { style: progressItem, children: [done ? jsx_runtime_1.jsx(SuccessIcon_1.SuccessIcon, {}) : jsx_runtime_1.jsx(CircularProgress_1.CircularProgress, { progress: progress }), jsx_runtime_1.jsx(layout_1.Spacing, { x: 1 }), jsx_runtime_1.jsx("div", { style: label, children: done
38
31
  ? `Encoded ${totalFrames} frames`
39
- : `Encoding ${encodedFrames} / ${totalFrames} frames` })] }));
32
+ : `Encoding ${encodedFrames} / ${totalFrames} frames` })
33
+ ] }));
40
34
  };
41
35
  const DoneStatus = ({ job }) => {
42
- return ((0, jsx_runtime_1.jsxs)("div", { style: progressItem, children: [(0, jsx_runtime_1.jsx)(SuccessIcon_1.SuccessIcon, {}), (0, jsx_runtime_1.jsx)(layout_1.Spacing, { x: 1 }), (0, jsx_runtime_1.jsx)("div", { style: label, children: job.outName }), (0, jsx_runtime_1.jsx)("div", { style: right, children: (0, studio_shared_1.formatBytes)(job.metadata.sizeInBytes) })] }));
36
+ return (jsx_runtime_1.jsxs("div", { style: progressItem, children: [
37
+ jsx_runtime_1.jsx(SuccessIcon_1.SuccessIcon, {}), jsx_runtime_1.jsx(layout_1.Spacing, { x: 1 }), jsx_runtime_1.jsx("div", { style: label, children: job.outName }), jsx_runtime_1.jsx("div", { style: right, children: (0, studio_shared_1.formatBytes)(job.metadata.sizeInBytes) })
38
+ ] }));
43
39
  };
44
40
  const ClientRenderProgress = ({ job }) => {
45
41
  if (job.status === 'idle' ||
@@ -48,12 +44,18 @@ const ClientRenderProgress = ({ job }) => {
48
44
  throw new Error('This component should not be rendered when the job is idle, failed, or cancelled');
49
45
  }
50
46
  if (job.status === 'done') {
51
- return ((0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsx)(layout_1.Spacing, { y: 0.5 }), (0, jsx_runtime_1.jsx)(DoneStatus, { job: job }), (0, jsx_runtime_1.jsx)(layout_1.Spacing, { y: 1 })] }));
47
+ return (jsx_runtime_1.jsxs("div", { children: [
48
+ jsx_runtime_1.jsx(layout_1.Spacing, { y: 0.5 }), jsx_runtime_1.jsx(DoneStatus, { job: job }), jsx_runtime_1.jsx(layout_1.Spacing, { y: 1 })
49
+ ] }));
52
50
  }
53
51
  if (job.status === 'saving') {
54
- return ((0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsx)(layout_1.Spacing, { y: 0.5 }), (0, jsx_runtime_1.jsx)("div", { style: label, children: "Saving to out/..." }), (0, jsx_runtime_1.jsx)(layout_1.Spacing, { y: 1 })] }));
52
+ return (jsx_runtime_1.jsxs("div", { children: [
53
+ jsx_runtime_1.jsx(layout_1.Spacing, { y: 0.5 }), jsx_runtime_1.jsx("div", { style: label, children: "Saving to out/..." }), jsx_runtime_1.jsx(layout_1.Spacing, { y: 1 })
54
+ ] }));
55
55
  }
56
- const { renderedFrames, encodedFrames, totalFrames } = job.progress;
57
- return ((0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsx)(layout_1.Spacing, { y: 0.5 }), (0, jsx_runtime_1.jsx)(RenderingProgress, { renderedFrames: renderedFrames, totalFrames: totalFrames }), job.type === 'client-video' && ((0, jsx_runtime_1.jsx)(EncodingProgress, { encodedFrames: encodedFrames, totalFrames: totalFrames })), (0, jsx_runtime_1.jsx)(layout_1.Spacing, { y: 1 })] }));
56
+ const { encodedFrames, totalFrames } = job.progress;
57
+ return (jsx_runtime_1.jsxs("div", { children: [
58
+ jsx_runtime_1.jsx(layout_1.Spacing, { y: 0.5 }), job.type === 'client-video' && (jsx_runtime_1.jsx(EncodingProgress, { encodedFrames: encodedFrames, totalFrames: totalFrames })), jsx_runtime_1.jsx(layout_1.Spacing, { y: 1 })
59
+ ] }));
58
60
  };
59
61
  exports.ClientRenderProgress = ClientRenderProgress;
@@ -1,6 +1,5 @@
1
- import type { Codec } from '@remotion/renderer';
2
1
  import type { AvailableOptions } from '@remotion/renderer/client';
3
- export declare const useCrfState: (codec: Codec) => {
2
+ export declare const useCrfState: (codec: "aac" | "gif" | "h264" | "h264-mkv" | "h264-ts" | "h265" | "mp3" | "prores" | "vp8" | "vp9" | "wav") => {
4
3
  crf: number | null;
5
4
  setCrf: import("react").Dispatch<import("react").SetStateAction<number>>;
6
5
  minCrf: number;
@@ -41,6 +41,6 @@ const useCrfState = (codec) => {
41
41
  };
42
42
  exports.useCrfState = useCrfState;
43
43
  const CrfSetting = ({ crf, setCrf, min, max, option }) => {
44
- return ((0, jsx_runtime_1.jsx)(NumberSetting_1.NumberSetting, { min: min, max: max, name: "CRF", onValueChanged: setCrf, value: crf, step: 1, hint: option }));
44
+ return (jsx_runtime_1.jsx(NumberSetting_1.NumberSetting, { min: min, max: max, name: "CRF", onValueChanged: setCrf, value: crf, step: 1, hint: option }));
45
45
  };
46
46
  exports.CrfSetting = CrfSetting;
@@ -291,13 +291,15 @@ const DataEditor = ({ unresolvedComposition, defaultProps, setDefaultProps, mayS
291
291
  serializedJSON,
292
292
  ]);
293
293
  if (connectionStatus === 'disconnected') {
294
- 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. Reconnect to edit the schema." }), (0, jsx_runtime_1.jsx)(layout_1.Spacing, { y: 2, block: true })] }));
294
+ return (jsx_runtime_1.jsxs("div", { style: explainer, children: [
295
+ jsx_runtime_1.jsx(layout_1.Spacing, { y: 5 }), jsx_runtime_1.jsx("div", { style: errorExplanation, children: "The studio server has disconnected. Reconnect to edit the schema." }), jsx_runtime_1.jsx(layout_1.Spacing, { y: 2, block: true })
296
+ ] }));
295
297
  }
296
298
  if (schema === 'no-zod') {
297
- return (0, jsx_runtime_1.jsx)(SchemaErrorMessages_1.ZodNotInstalled, {});
299
+ return jsx_runtime_1.jsx(SchemaErrorMessages_1.ZodNotInstalled, {});
298
300
  }
299
301
  if (schema === 'no-schema') {
300
- return (0, jsx_runtime_1.jsx)(SchemaErrorMessages_1.NoSchemaDefined, {});
302
+ return jsx_runtime_1.jsx(SchemaErrorMessages_1.NoSchemaDefined, {});
301
303
  }
302
304
  if (!z) {
303
305
  throw new Error('expected zod');
@@ -312,13 +314,18 @@ const DataEditor = ({ unresolvedComposition, defaultProps, setDefaultProps, mayS
312
314
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
313
315
  const typeName = def.typeName;
314
316
  if (typeName === z.ZodFirstPartyTypeKind.ZodAny) {
315
- return (0, jsx_runtime_1.jsx)(SchemaErrorMessages_1.NoSchemaDefined, {});
317
+ return jsx_runtime_1.jsx(SchemaErrorMessages_1.NoSchemaDefined, {});
316
318
  }
317
319
  if (!unresolvedComposition.defaultProps) {
318
- return (0, jsx_runtime_1.jsx)(SchemaErrorMessages_1.NoDefaultProps, {});
320
+ return jsx_runtime_1.jsx(SchemaErrorMessages_1.NoDefaultProps, {});
319
321
  }
320
- return ((0, jsx_runtime_1.jsxs)("div", { style: outer, children: [(0, jsx_runtime_1.jsxs)("div", { style: controlContainer, children: [(0, jsx_runtime_1.jsxs)("div", { style: tabWrapper, children: [(0, jsx_runtime_1.jsx)(SegmentedControl_1.SegmentedControl, { items: modeItems, needsWrapping: false }), (0, jsx_runtime_1.jsx)(layout_1.Flex, {}), warnings.length > 0 ? ((0, jsx_runtime_1.jsx)(WarningIndicatorButton_1.WarningIndicatorButton, { setShowWarning: setShowWarning, showWarning: showWarning, warningCount: warnings.length })) : null] }), showWarning && warnings.length > 0
321
- ? warnings.map((warning) => ((0, jsx_runtime_1.jsxs)(react_1.default.Fragment, { children: [(0, jsx_runtime_1.jsx)(layout_1.Spacing, { y: 1 }), (0, jsx_runtime_1.jsx)(ValidationMessage_1.ValidationMessage, { message: warning, align: "flex-start", type: "warning" })] }, warning)))
322
- : null] }), mode === 'schema' ? ((0, jsx_runtime_1.jsx)(SchemaEditor_1.SchemaEditor, { unsavedDefaultProps: defaultProps, setValue: setDefaultProps, schema: schema, zodValidationResult: zodValidationResult, savedDefaultProps: unresolvedComposition.defaultProps, onSave: onSave, showSaveButton: showSaveButton, saving: saving, saveDisabledByParent: !zodValidationResult.success })) : ((0, jsx_runtime_1.jsx)(RenderModalJSONPropsEditor_1.RenderModalJSONPropsEditor, { value: defaultProps !== null && defaultProps !== void 0 ? defaultProps : {}, setValue: setDefaultProps, onSave: onUpdate, showSaveButton: showSaveButton, serializedJSON: serializedJSON, defaultProps: unresolvedComposition.defaultProps, schema: schema }))] }));
322
+ return (jsx_runtime_1.jsxs("div", { style: outer, children: [
323
+ jsx_runtime_1.jsxs("div", { style: controlContainer, children: [
324
+ jsx_runtime_1.jsxs("div", { style: tabWrapper, children: [
325
+ jsx_runtime_1.jsx(SegmentedControl_1.SegmentedControl, { items: modeItems, needsWrapping: false }), jsx_runtime_1.jsx(layout_1.Flex, {}), warnings.length > 0 ? (jsx_runtime_1.jsx(WarningIndicatorButton_1.WarningIndicatorButton, { setShowWarning: setShowWarning, showWarning: showWarning, warningCount: warnings.length })) : null] }), showWarning && warnings.length > 0
326
+ ? warnings.map((warning) => (jsx_runtime_1.jsxs(react_1.default.Fragment, { children: [
327
+ jsx_runtime_1.jsx(layout_1.Spacing, { y: 1 }), jsx_runtime_1.jsx(ValidationMessage_1.ValidationMessage, { message: warning, align: "flex-start", type: "warning" })
328
+ ] }, warning)))
329
+ : null] }), mode === 'schema' ? (jsx_runtime_1.jsx(SchemaEditor_1.SchemaEditor, { unsavedDefaultProps: defaultProps, setValue: setDefaultProps, schema: schema, zodValidationResult: zodValidationResult, savedDefaultProps: unresolvedComposition.defaultProps, onSave: onSave, showSaveButton: showSaveButton, saving: saving, saveDisabledByParent: !zodValidationResult.success })) : (jsx_runtime_1.jsx(RenderModalJSONPropsEditor_1.RenderModalJSONPropsEditor, { value: defaultProps !== null && defaultProps !== void 0 ? defaultProps : {}, setValue: setDefaultProps, onSave: onUpdate, showSaveButton: showSaveButton, serializedJSON: serializedJSON, defaultProps: unresolvedComposition.defaultProps, schema: schema }))] }));
323
330
  };
324
331
  exports.DataEditor = DataEditor;
@@ -11,6 +11,10 @@ const EnforceAudioTrackSetting = ({ enforceAudioTrack, muted, setEnforceAudioTra
11
11
  const onEnforceAudioTrackChanged = (0, react_1.useCallback)((e) => {
12
12
  setEnforceAudioTrack(e.target.checked);
13
13
  }, [setEnforceAudioTrack]);
14
- return ((0, jsx_runtime_1.jsxs)("div", { style: layout_2.optionRow, children: [(0, jsx_runtime_1.jsxs)("div", { style: layout_2.label, children: ["Enforce Audio Track", (0, jsx_runtime_1.jsx)(layout_1.Spacing, { x: 0.5 }), (0, jsx_runtime_1.jsx)(OptionExplainerBubble_1.OptionExplainerBubble, { id: "enforceAudioOption" })] }), (0, jsx_runtime_1.jsx)("div", { style: layout_2.rightRow, children: (0, jsx_runtime_1.jsx)(Checkbox_1.Checkbox, { disabled: muted && !enforceAudioTrack, checked: enforceAudioTrack, onChange: onEnforceAudioTrackChanged, name: "enforce-audio-track" }) })] }));
14
+ return (jsx_runtime_1.jsxs("div", { style: layout_2.optionRow, children: [
15
+ jsx_runtime_1.jsxs("div", { style: layout_2.label, children: ["Enforce Audio Track",
16
+ jsx_runtime_1.jsx(layout_1.Spacing, { x: 0.5 }), jsx_runtime_1.jsx(OptionExplainerBubble_1.OptionExplainerBubble, { id: "enforceAudioOption" })
17
+ ] }), jsx_runtime_1.jsx("div", { style: layout_2.rightRow, children: jsx_runtime_1.jsx(Checkbox_1.Checkbox, { disabled: muted && !enforceAudioTrack, checked: enforceAudioTrack, onChange: onEnforceAudioTrackChanged, name: "enforce-audio-track" }) })
18
+ ] }));
15
19
  };
16
20
  exports.EnforceAudioTrackSetting = EnforceAudioTrackSetting;
@@ -79,6 +79,9 @@ const EnvInput = ({ onEnvKeyChange, onEnvValChange, envKey, envVal, onDelete, in
79
79
  setValueWarningEligible(true);
80
80
  }, []);
81
81
  const isNodeEnvKey = envKey.trim() === 'NODE_ENV';
82
- return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsxs)(layout_1.Row, { align: "center", style: layout_2.optionRow, children: [(0, jsx_runtime_1.jsx)(RemInput_1.RemotionInput, { status: isNodeEnvKey || isDuplicate || isKeyMissing ? 'warning' : 'ok', type: "text", placeholder: "Key", style: input, value: envKey, onBlur: makeKeyWarningEligible, autoFocus: autoFocus, onChange: handleKeyChange, rightAlign: false }), (0, jsx_runtime_1.jsx)(layout_1.Spacing, { x: 1 }), (0, jsx_runtime_1.jsx)(RemInput_1.RemotionInput, { status: isValMissing ? 'warning' : 'ok', placeholder: "Value", type: showInPlainText ? 'text' : 'password', style: input, value: envVal, onBlur: makeValueWarningEligible, onChange: handleValueChange, rightAlign: false }), (0, jsx_runtime_1.jsx)(layout_1.Spacing, { x: 1.5 }), (0, jsx_runtime_1.jsx)(InlineEyeIcon_1.InlineEyeButton, { enabled: !showInPlainText, onClick: togglePlainText }), (0, jsx_runtime_1.jsx)(InlineRemoveButton_1.InlineRemoveButton, { onClick: handleDelete })] }), isNodeEnvKey ? ((0, jsx_runtime_1.jsx)("div", { style: validationStyle, children: (0, jsx_runtime_1.jsx)(ValidationMessage_1.ValidationMessage, { align: "flex-start", type: "warning", message: "NODE_ENV will be overwritten by Remotion during the render process." }) })) : null, isDuplicate ? ((0, jsx_runtime_1.jsx)("div", { style: validationStyle, children: (0, jsx_runtime_1.jsx)(ValidationMessage_1.ValidationMessage, { align: "flex-start", type: "warning", message: `${envKey.toUpperCase()} is already defined.` }) })) : null, isKeyMissing ? ((0, jsx_runtime_1.jsx)("div", { style: validationStyle, children: (0, jsx_runtime_1.jsx)(ValidationMessage_1.ValidationMessage, { align: "flex-start", type: "warning", message: "Key is missing." }) })) : null, isValMissing ? ((0, jsx_runtime_1.jsx)("div", { style: validationStyle, children: (0, jsx_runtime_1.jsx)(ValidationMessage_1.ValidationMessage, { align: "flex-start", type: "warning", message: "Value is missing." }) })) : null] }));
82
+ return (jsx_runtime_1.jsxs(jsx_runtime_1.Fragment, { children: [
83
+ jsx_runtime_1.jsxs(layout_1.Row, { align: "center", style: layout_2.optionRow, children: [
84
+ jsx_runtime_1.jsx(RemInput_1.RemotionInput, { status: isNodeEnvKey || isDuplicate || isKeyMissing ? 'warning' : 'ok', type: "text", placeholder: "Key", style: input, value: envKey, onBlur: makeKeyWarningEligible, autoFocus: autoFocus, onChange: handleKeyChange, rightAlign: false }), jsx_runtime_1.jsx(layout_1.Spacing, { x: 1 }), jsx_runtime_1.jsx(RemInput_1.RemotionInput, { status: isValMissing ? 'warning' : 'ok', placeholder: "Value", type: showInPlainText ? 'text' : 'password', style: input, value: envVal, onBlur: makeValueWarningEligible, onChange: handleValueChange, rightAlign: false }), jsx_runtime_1.jsx(layout_1.Spacing, { x: 1.5 }), jsx_runtime_1.jsx(InlineEyeIcon_1.InlineEyeButton, { enabled: !showInPlainText, onClick: togglePlainText }), jsx_runtime_1.jsx(InlineRemoveButton_1.InlineRemoveButton, { onClick: handleDelete })
85
+ ] }), isNodeEnvKey ? (jsx_runtime_1.jsx("div", { style: validationStyle, children: jsx_runtime_1.jsx(ValidationMessage_1.ValidationMessage, { align: "flex-start", type: "warning", message: "NODE_ENV will be overwritten by Remotion during the render process." }) })) : null, isDuplicate ? (jsx_runtime_1.jsx("div", { style: validationStyle, children: jsx_runtime_1.jsx(ValidationMessage_1.ValidationMessage, { align: "flex-start", type: "warning", message: `${envKey.toUpperCase()} is already defined.` }) })) : null, isKeyMissing ? (jsx_runtime_1.jsx("div", { style: validationStyle, children: jsx_runtime_1.jsx(ValidationMessage_1.ValidationMessage, { align: "flex-start", type: "warning", message: "Key is missing." }) })) : null, isValMissing ? (jsx_runtime_1.jsx("div", { style: validationStyle, children: jsx_runtime_1.jsx(ValidationMessage_1.ValidationMessage, { align: "flex-start", type: "warning", message: "Value is missing." }) })) : null] }));
83
86
  };
84
87
  exports.EnvInput = EnvInput;
@@ -22,6 +22,10 @@ const FrameRangeSetting = ({ startFrame, endFrame, setEndFrame, durationInFrames
22
22
  const onEndFrameChanged = (0, react_1.useCallback)((newVal) => {
23
23
  onEndFrameChangedDirectly(parseInt(newVal, 10));
24
24
  }, [onEndFrameChangedDirectly]);
25
- return ((0, jsx_runtime_1.jsxs)("div", { style: layout_1.optionRow, children: [(0, jsx_runtime_1.jsx)("div", { style: layout_1.label, children: "Frame range" }), (0, jsx_runtime_1.jsxs)("div", { style: layout_1.rightRow, children: [(0, jsx_runtime_1.jsx)("div", { style: { width: INPUT_WIDTH }, children: (0, jsx_runtime_1.jsx)(InputDragger_1.InputDragger, { min: minStartFrame, max: endFrame - 1, name: "Start frame", value: startFrame, step: 1, onTextChange: onStartFrameChanged, onValueChange: onStartFrameChangedDirectly, status: "ok", rightAlign: true, style: { width: INPUT_WIDTH } }) }), (0, jsx_runtime_1.jsx)(MultiRangeSlider_1.MultiRangeSlider, { min: minStartFrame, max: maxEndFrame, start: startFrame, end: endFrame, step: 1, onLeftThumbDrag: onStartFrameChangedDirectly, onRightThumbDrag: onEndFrameChangedDirectly }), ' ', (0, jsx_runtime_1.jsx)("div", { style: { width: INPUT_WIDTH }, children: (0, jsx_runtime_1.jsx)(InputDragger_1.InputDragger, { min: startFrame + 1, max: maxEndFrame, name: "End frame", value: endFrame, step: 1, onTextChange: onEndFrameChanged, onValueChange: onEndFrameChangedDirectly, status: "ok", rightAlign: true, style: { width: INPUT_WIDTH } }) })] })] }));
25
+ return (jsx_runtime_1.jsxs("div", { style: layout_1.optionRow, children: [
26
+ jsx_runtime_1.jsx("div", { style: layout_1.label, children: "Frame range" }), jsx_runtime_1.jsxs("div", { style: layout_1.rightRow, children: [
27
+ jsx_runtime_1.jsx("div", { style: { width: INPUT_WIDTH }, children: jsx_runtime_1.jsx(InputDragger_1.InputDragger, { min: minStartFrame, max: endFrame - 1, name: "Start frame", value: startFrame, step: 1, onTextChange: onStartFrameChanged, onValueChange: onStartFrameChangedDirectly, status: "ok", rightAlign: true, style: { width: INPUT_WIDTH } }) }), jsx_runtime_1.jsx(MultiRangeSlider_1.MultiRangeSlider, { min: minStartFrame, max: maxEndFrame, start: startFrame, end: endFrame, step: 1, onLeftThumbDrag: onStartFrameChangedDirectly, onRightThumbDrag: onEndFrameChangedDirectly }), ' ', jsx_runtime_1.jsx("div", { style: { width: INPUT_WIDTH }, children: jsx_runtime_1.jsx(InputDragger_1.InputDragger, { min: startFrame + 1, max: maxEndFrame, name: "End frame", value: endFrame, step: 1, onTextChange: onEndFrameChanged, onValueChange: onEndFrameChangedDirectly, status: "ok", rightAlign: true, style: { width: INPUT_WIDTH } }) })
28
+ ] })
29
+ ] }));
26
30
  };
27
31
  exports.FrameRangeSetting = FrameRangeSetting;
@@ -27,24 +27,24 @@ const right = {
27
27
  flex: 1,
28
28
  };
29
29
  const BundlingProgress = ({ progress, doneIn }) => {
30
- return ((0, jsx_runtime_1.jsxs)("div", { style: progressItem, children: [progress === 1 ? ((0, jsx_runtime_1.jsx)(SuccessIcon_1.SuccessIcon, {})) : ((0, jsx_runtime_1.jsx)(CircularProgress_1.CircularProgress, { progress: progress })), (0, jsx_runtime_1.jsx)(layout_1.Spacing, { x: 1 }), (0, jsx_runtime_1.jsx)("div", { style: label, children: progress === 1 ? 'Bundled' : `Bundling ${progress * 100}%` }), doneIn ? (0, jsx_runtime_1.jsxs)("div", { style: right, children: [doneIn, "ms"] }) : null] }));
30
+ return (jsx_runtime_1.jsxs("div", { style: progressItem, children: [progress === 1 ? (jsx_runtime_1.jsx(SuccessIcon_1.SuccessIcon, {})) : (jsx_runtime_1.jsx(CircularProgress_1.CircularProgress, { progress: progress })), jsx_runtime_1.jsx(layout_1.Spacing, { x: 1 }), jsx_runtime_1.jsx("div", { style: label, children: progress === 1 ? 'Bundled' : `Bundling ${progress * 100}%` }), doneIn ? jsx_runtime_1.jsxs("div", { style: right, children: [doneIn, "ms"] }) : null] }));
31
31
  };
32
32
  const BrowserSetupProgress = ({ progress, doneIn, startedBundling, alreadyAvailable }) => {
33
- return ((0, jsx_runtime_1.jsxs)("div", { style: progressItem, children: [progress === 1 || alreadyAvailable ? ((0, jsx_runtime_1.jsx)(SuccessIcon_1.SuccessIcon, {})) : ((0, jsx_runtime_1.jsx)(CircularProgress_1.CircularProgress, { progress: progress })), (0, jsx_runtime_1.jsx)(layout_1.Spacing, { x: 1 }), (0, jsx_runtime_1.jsx)("div", { style: label, children: alreadyAvailable && startedBundling
33
+ return (jsx_runtime_1.jsxs("div", { style: progressItem, children: [progress === 1 || alreadyAvailable ? (jsx_runtime_1.jsx(SuccessIcon_1.SuccessIcon, {})) : (jsx_runtime_1.jsx(CircularProgress_1.CircularProgress, { progress: progress })), jsx_runtime_1.jsx(layout_1.Spacing, { x: 1 }), jsx_runtime_1.jsx("div", { style: label, children: alreadyAvailable && startedBundling
34
34
  ? 'Headless browser already available'
35
35
  : progress === 1
36
36
  ? 'Downloaded Headless Shell'
37
- : `Downloading Headless Shell ${Math.round(progress * 100)}%` }), doneIn ? (0, jsx_runtime_1.jsxs)("div", { style: right, children: [doneIn, "ms"] }) : null] }));
37
+ : `Downloading Headless Shell ${Math.round(progress * 100)}%` }), doneIn ? jsx_runtime_1.jsxs("div", { style: right, children: [doneIn, "ms"] }) : null] }));
38
38
  };
39
39
  const RenderingProgress = ({ progress }) => {
40
- return ((0, jsx_runtime_1.jsxs)("div", { style: progressItem, children: [progress.frames === progress.totalFrames ? ((0, jsx_runtime_1.jsx)(SuccessIcon_1.SuccessIcon, {})) : ((0, jsx_runtime_1.jsx)(CircularProgress_1.CircularProgress, { progress: progress.frames / progress.totalFrames })), (0, jsx_runtime_1.jsx)(layout_1.Spacing, { x: 1 }), (0, jsx_runtime_1.jsx)("div", { style: label, children: progress.doneIn
40
+ return (jsx_runtime_1.jsxs("div", { style: progressItem, children: [progress.frames === progress.totalFrames ? (jsx_runtime_1.jsx(SuccessIcon_1.SuccessIcon, {})) : (jsx_runtime_1.jsx(CircularProgress_1.CircularProgress, { progress: progress.frames / progress.totalFrames })), jsx_runtime_1.jsx(layout_1.Spacing, { x: 1 }), jsx_runtime_1.jsx("div", { style: label, children: progress.doneIn
41
41
  ? `Rendered ${progress.totalFrames} frames`
42
- : `Rendering ${progress.frames} / ${progress.totalFrames} frames` }), progress.doneIn ? (0, jsx_runtime_1.jsxs)("div", { style: right, children: [progress.doneIn, "ms"] }) : null] }));
42
+ : `Rendering ${progress.frames} / ${progress.totalFrames} frames` }), progress.doneIn ? jsx_runtime_1.jsxs("div", { style: right, children: [progress.doneIn, "ms"] }) : null] }));
43
43
  };
44
44
  const StitchingProgress = ({ progress }) => {
45
- return ((0, jsx_runtime_1.jsxs)("div", { style: progressItem, children: [progress.frames === progress.totalFrames ? ((0, jsx_runtime_1.jsx)(SuccessIcon_1.SuccessIcon, {})) : ((0, jsx_runtime_1.jsx)(CircularProgress_1.CircularProgress, { progress: progress.frames / progress.totalFrames })), (0, jsx_runtime_1.jsx)(layout_1.Spacing, { x: 1 }), (0, jsx_runtime_1.jsx)("div", { style: label, children: progress.doneIn
45
+ return (jsx_runtime_1.jsxs("div", { style: progressItem, children: [progress.frames === progress.totalFrames ? (jsx_runtime_1.jsx(SuccessIcon_1.SuccessIcon, {})) : (jsx_runtime_1.jsx(CircularProgress_1.CircularProgress, { progress: progress.frames / progress.totalFrames })), jsx_runtime_1.jsx(layout_1.Spacing, { x: 1 }), jsx_runtime_1.jsx("div", { style: label, children: progress.doneIn
46
46
  ? `Encoded ${progress.totalFrames} frames`
47
- : `Encoding ${progress.frames} / ${progress.totalFrames} frames` }), progress.doneIn ? (0, jsx_runtime_1.jsxs)("div", { style: right, children: [progress.doneIn, "ms"] }) : null] }));
47
+ : `Encoding ${progress.frames} / ${progress.totalFrames} frames` }), progress.doneIn ? jsx_runtime_1.jsxs("div", { style: right, children: [progress.doneIn, "ms"] }) : null] }));
48
48
  };
49
49
  const DownloadsProgress = ({ downloads }) => {
50
50
  const allHaveProgress = downloads.every((a) => a.totalBytes);
@@ -57,7 +57,8 @@ const DownloadsProgress = ({ downloads }) => {
57
57
  const progress = allHaveProgress
58
58
  ? downloaded / totalBytes
59
59
  : 0.1;
60
- return ((0, jsx_runtime_1.jsxs)("div", { style: progressItem, children: [progress === 1 ? ((0, jsx_runtime_1.jsx)(SuccessIcon_1.SuccessIcon, {})) : ((0, jsx_runtime_1.jsx)(CircularProgress_1.CircularProgress, { progress: progress })), (0, jsx_runtime_1.jsx)(layout_1.Spacing, { x: 1 }), (0, jsx_runtime_1.jsxs)("div", { style: label, children: ["Downloading ", downloads.length, " file", downloads.length === 1 ? '' : 's'] })] }));
60
+ return (jsx_runtime_1.jsxs("div", { style: progressItem, children: [progress === 1 ? (jsx_runtime_1.jsx(SuccessIcon_1.SuccessIcon, {})) : (jsx_runtime_1.jsx(CircularProgress_1.CircularProgress, { progress: progress })), jsx_runtime_1.jsx(layout_1.Spacing, { x: 1 }), jsx_runtime_1.jsxs("div", { style: label, children: ["Downloading ", downloads.length, " file", downloads.length === 1 ? '' : 's'] })
61
+ ] }));
61
62
  };
62
63
  const OpenFile = ({ job }) => {
63
64
  const labelStyle = (0, react_1.useMemo)(() => {
@@ -74,12 +75,16 @@ const OpenFile = ({ job }) => {
74
75
  const onClick = (0, react_1.useCallback)(() => {
75
76
  (0, actions_1.openInFileExplorer)({ directory: job.outName });
76
77
  }, [job.outName]);
77
- return ((0, jsx_runtime_1.jsxs)("div", { style: progressItem, children: [(0, jsx_runtime_1.jsx)(SuccessIcon_1.SuccessIcon, {}), (0, jsx_runtime_1.jsx)(layout_1.Spacing, { x: 1 }), (0, jsx_runtime_1.jsx)("button", { style: labelStyle, type: "button", onClick: onClick, children: job.outName }), (0, jsx_runtime_1.jsx)("div", { style: right, children: (0, jsx_runtime_1.jsx)(RenderQueueOpenInFolder_1.RenderQueueOpenInFinderItem, { job: job }) })] }));
78
+ return (jsx_runtime_1.jsxs("div", { style: progressItem, children: [
79
+ jsx_runtime_1.jsx(SuccessIcon_1.SuccessIcon, {}), jsx_runtime_1.jsx(layout_1.Spacing, { x: 1 }), jsx_runtime_1.jsx("button", { style: labelStyle, type: "button", onClick: onClick, children: job.outName }), jsx_runtime_1.jsx("div", { style: right, children: jsx_runtime_1.jsx(RenderQueueOpenInFolder_1.RenderQueueOpenInFinderItem, { job: job }) })
80
+ ] }));
78
81
  };
79
82
  const GuiRenderStatus = ({ job }) => {
80
83
  if (job.status === 'idle' || job.status === 'failed') {
81
84
  throw new Error('This component should not be rendered when the job is idle');
82
85
  }
83
- return ((0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsx)(layout_1.Spacing, { y: 0.5 }), (0, jsx_runtime_1.jsx)(BrowserSetupProgress, { ...job.progress.browser, startedBundling: Boolean(job.progress.bundling) }), job.progress.bundling && ((0, jsx_runtime_1.jsx)(BundlingProgress, { progress: job.progress.bundling.progress, doneIn: job.progress.bundling.doneIn })), job.progress.rendering ? ((0, jsx_runtime_1.jsx)(RenderingProgress, { progress: job.progress.rendering })) : null, job.progress.stitching ? ((0, jsx_runtime_1.jsx)(StitchingProgress, { progress: job.progress.stitching })) : null, job.progress.downloads.length > 0 ? ((0, jsx_runtime_1.jsx)(DownloadsProgress, { downloads: job.progress.downloads })) : null, job.status === 'done' ? (0, jsx_runtime_1.jsx)(OpenFile, { job: job }) : null, (0, jsx_runtime_1.jsx)(layout_1.Spacing, { y: 1 })] }));
86
+ return (jsx_runtime_1.jsxs("div", { children: [
87
+ jsx_runtime_1.jsx(layout_1.Spacing, { y: 0.5 }), jsx_runtime_1.jsx(BrowserSetupProgress, { ...job.progress.browser, startedBundling: Boolean(job.progress.bundling) }), job.progress.bundling && (jsx_runtime_1.jsx(BundlingProgress, { progress: job.progress.bundling.progress, doneIn: job.progress.bundling.doneIn })), job.progress.rendering ? (jsx_runtime_1.jsx(RenderingProgress, { progress: job.progress.rendering })) : null, job.progress.stitching ? (jsx_runtime_1.jsx(StitchingProgress, { progress: job.progress.stitching })) : null, job.progress.downloads.length > 0 ? (jsx_runtime_1.jsx(DownloadsProgress, { downloads: job.progress.downloads })) : null, job.status === 'done' ? jsx_runtime_1.jsx(OpenFile, { job: job }) : null, jsx_runtime_1.jsx(layout_1.Spacing, { y: 1 })
88
+ ] }));
84
89
  };
85
90
  exports.GuiRenderStatus = GuiRenderStatus;
@@ -110,8 +110,9 @@ const InfoBubble = ({ title, children }) => {
110
110
  padding: 6,
111
111
  };
112
112
  }, []);
113
- return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)("button", { ref: ref, tabIndex: tabIndex, style: style, title: title, type: "button", children: (0, jsx_runtime_1.jsx)("svg", { style: icon, viewBox: "0 0 512 512", children: (0, jsx_runtime_1.jsx)("path", { fill: hovered ? 'white' : colors_1.LIGHT_TEXT, d: "M256 48a208 208 0 1 1 0 416 208 208 0 1 1 0-416zm0 464A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM216 336c-13.3 0-24 10.7-24 24s10.7 24 24 24h80c13.3 0 24-10.7 24-24s-10.7-24-24-24h-8V248c0-13.3-10.7-24-24-24H216c-13.3 0-24 10.7-24 24s10.7 24 24 24h24v64H216zm40-144a32 32 0 1 0 0-64 32 32 0 1 0 0 64z" }) }) }), portalStyle
114
- ? react_dom_1.default.createPortal((0, jsx_runtime_1.jsx)("div", { style: styles_1.outerPortal, className: "css-reset", children: (0, jsx_runtime_1.jsx)(z_index_1.HigherZIndex, { onOutsideClick: onHide, onEscape: onHide, children: (0, jsx_runtime_1.jsx)("div", { style: portalStyle, children: (0, jsx_runtime_1.jsx)(InfoTooltip_1.InfoTooltip, { backgroundColor: colors_1.INPUT_BACKGROUND, arrowDirection: layout, children: children }) }) }) }), (0, portals_1.getPortal)(currentZIndex))
113
+ return (jsx_runtime_1.jsxs(jsx_runtime_1.Fragment, { children: [
114
+ jsx_runtime_1.jsx("button", { ref: ref, tabIndex: tabIndex, style: style, title: title, type: "button", children: jsx_runtime_1.jsx("svg", { style: icon, viewBox: "0 0 512 512", children: jsx_runtime_1.jsx("path", { fill: hovered ? 'white' : colors_1.LIGHT_TEXT, d: "M256 48a208 208 0 1 1 0 416 208 208 0 1 1 0-416zm0 464A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM216 336c-13.3 0-24 10.7-24 24s10.7 24 24 24h80c13.3 0 24-10.7 24-24s-10.7-24-24-24h-8V248c0-13.3-10.7-24-24-24H216c-13.3 0-24 10.7-24 24s10.7 24 24 24h24v64H216zm40-144a32 32 0 1 0 0-64 32 32 0 1 0 0 64z" }) }) }), portalStyle
115
+ ? react_dom_1.default.createPortal(jsx_runtime_1.jsx("div", { style: styles_1.outerPortal, className: "css-reset", children: jsx_runtime_1.jsx(z_index_1.HigherZIndex, { onOutsideClick: onHide, onEscape: onHide, children: jsx_runtime_1.jsx("div", { style: portalStyle, children: jsx_runtime_1.jsx(InfoTooltip_1.InfoTooltip, { backgroundColor: colors_1.INPUT_BACKGROUND, arrowDirection: layout, children: children }) }) }) }), (0, portals_1.getPortal)(currentZIndex))
115
116
  : null] }));
116
117
  };
117
118
  exports.InfoBubble = InfoBubble;
@@ -32,10 +32,11 @@ const InfoTooltip = ({ children, arrowDirection, backgroundColor }) => {
32
32
  borderRadius: '4px',
33
33
  };
34
34
  }, [arrowDirection, backgroundColor]);
35
- return ((0, jsx_runtime_1.jsxs)("div", { style: {
35
+ return (jsx_runtime_1.jsxs("div", { style: {
36
36
  display: 'flex',
37
37
  flexDirection: arrowDirection === 'up' ? 'column-reverse' : 'column',
38
38
  alignItems: 'flex-start',
39
- }, children: [(0, jsx_runtime_1.jsx)("div", { style: container, className: is_menu_item_1.VERTICAL_SCROLLBAR_CLASSNAME, children: children }), arrowDirection === 'down' ? ((0, jsx_runtime_1.jsx)("svg", { viewBox: "0 0 14 7", style: arrowDown, children: (0, jsx_runtime_1.jsx)("path", { d: `M 14 0 L 7 7 L 0 0`, fill: backgroundColor, strokeLinecap: "butt", stroke: colors_1.BORDER_COLOR, strokeWidth: 0.5 }) })) : null, arrowDirection === 'up' ? ((0, jsx_runtime_1.jsx)("svg", { viewBox: "0 0 14 7", style: arrowUp, children: (0, jsx_runtime_1.jsx)("path", { d: `M 0 7 L 7 0 L 14 7`, fill: backgroundColor, strokeLinecap: "butt", stroke: colors_1.BORDER_COLOR, strokeWidth: 0.5 }) })) : null] }));
39
+ }, children: [
40
+ jsx_runtime_1.jsx("div", { style: container, className: is_menu_item_1.VERTICAL_SCROLLBAR_CLASSNAME, children: children }), arrowDirection === 'down' ? (jsx_runtime_1.jsx("svg", { viewBox: "0 0 14 7", style: arrowDown, children: jsx_runtime_1.jsx("path", { d: `M 14 0 L 7 7 L 0 0`, fill: backgroundColor, strokeLinecap: "butt", stroke: colors_1.BORDER_COLOR, strokeWidth: 0.5 }) })) : null, arrowDirection === 'up' ? (jsx_runtime_1.jsx("svg", { viewBox: "0 0 14 7", style: arrowUp, children: jsx_runtime_1.jsx("path", { d: `M 0 7 L 7 0 L 14 7`, fill: backgroundColor, strokeLinecap: "butt", stroke: colors_1.BORDER_COLOR, strokeWidth: 0.5 }) })) : null] }));
40
41
  };
41
42
  exports.InfoTooltip = InfoTooltip;
@@ -10,8 +10,8 @@ const clearIcon = {
10
10
  };
11
11
  const InlineEyeButton = ({ onClick, enabled }) => {
12
12
  const renderAction = (0, react_1.useCallback)((color) => {
13
- return enabled ? ((0, jsx_runtime_1.jsx)("svg", { style: clearIcon, viewBox: "0 0 640 512", children: (0, jsx_runtime_1.jsx)("path", { fill: color, d: "M25.9 3.4C19-2 8.9-.8 3.4 6.1S-.8 23.1 6.1 28.6l608 480c6.9 5.5 17 4.3 22.5-2.6s4.3-17-2.6-22.5L25.9 3.4zM605.5 268.3c3.3-7.9 3.3-16.7 0-24.6c-14.9-35.7-46.2-87.7-93-131.1C465.5 68.8 400.8 32 320 32c-51.2 0-96 14.8-133.9 36.8l27.3 21.5C244.6 74.2 280.2 64 320 64c70.4 0 127.7 32 170.8 72c43.1 40 71.9 88 85.2 120c-9.2 22.1-25.9 52-49.5 81.5l25.1 19.8c25.6-32 43.7-64.4 53.9-89zM88.4 154.7c-25.6 32-43.7 64.4-53.9 89c-3.3 7.9-3.3 16.7 0 24.6c14.9 35.7 46.2 87.7 93 131.1C174.5 443.2 239.2 480 320 480c51.2 0 96-14.8 133.9-36.8l-27.3-21.5C395.4 437.8 359.8 448 320 448c-70.4 0-127.7-32-170.8-72C106.1 336 77.3 288 64 256c9.2-22.1 25.9-52 49.5-81.5L88.4 154.7zM320 384c16.7 0 32.7-3.2 47.4-9.1l-30.9-24.4c-5.4 .9-10.9 1.4-16.5 1.4c-51 0-92.8-39.8-95.8-90.1l-30.9-24.4c-.9 6-1.3 12.2-1.3 18.5c0 70.7 57.3 128 128 128zM448 256c0-70.7-57.3-128-128-128c-16.7 0-32.7 3.2-47.4 9.1l30.9 24.4c5.4-.9 10.9-1.4 16.5-1.4c51 0 92.8 39.8 95.8 90.1l30.9 24.4c.9-6 1.3-12.2 1.3-18.5z" }) })) : ((0, jsx_runtime_1.jsx)("svg", { style: clearIcon, viewBox: "0 0 576 512", children: (0, jsx_runtime_1.jsx)("path", { fill: color, d: "M117.2 136C160.3 96 217.6 64 288 64s127.7 32 170.8 72c43.1 40 71.9 88 85.2 120c-13.3 32-42.1 80-85.2 120c-43.1 40-100.4 72-170.8 72s-127.7-32-170.8-72C74.1 336 45.3 288 32 256c13.3-32 42.1-80 85.2-120zM288 32c-80.8 0-145.5 36.8-192.6 80.6C48.6 156 17.3 208 2.5 243.7c-3.3 7.9-3.3 16.7 0 24.6C17.3 304 48.6 356 95.4 399.4C142.5 443.2 207.2 480 288 480s145.5-36.8 192.6-80.6c46.8-43.5 78.1-95.4 93-131.1c3.3-7.9 3.3-16.7 0-24.6c-14.9-35.7-46.2-87.7-93-131.1C433.5 68.8 368.8 32 288 32zM192 256a96 96 0 1 1 192 0 96 96 0 1 1 -192 0zm224 0a128 128 0 1 0 -256 0 128 128 0 1 0 256 0z" }) }));
13
+ return enabled ? (jsx_runtime_1.jsx("svg", { style: clearIcon, viewBox: "0 0 640 512", children: jsx_runtime_1.jsx("path", { fill: color, d: "M25.9 3.4C19-2 8.9-.8 3.4 6.1S-.8 23.1 6.1 28.6l608 480c6.9 5.5 17 4.3 22.5-2.6s4.3-17-2.6-22.5L25.9 3.4zM605.5 268.3c3.3-7.9 3.3-16.7 0-24.6c-14.9-35.7-46.2-87.7-93-131.1C465.5 68.8 400.8 32 320 32c-51.2 0-96 14.8-133.9 36.8l27.3 21.5C244.6 74.2 280.2 64 320 64c70.4 0 127.7 32 170.8 72c43.1 40 71.9 88 85.2 120c-9.2 22.1-25.9 52-49.5 81.5l25.1 19.8c25.6-32 43.7-64.4 53.9-89zM88.4 154.7c-25.6 32-43.7 64.4-53.9 89c-3.3 7.9-3.3 16.7 0 24.6c14.9 35.7 46.2 87.7 93 131.1C174.5 443.2 239.2 480 320 480c51.2 0 96-14.8 133.9-36.8l-27.3-21.5C395.4 437.8 359.8 448 320 448c-70.4 0-127.7-32-170.8-72C106.1 336 77.3 288 64 256c9.2-22.1 25.9-52 49.5-81.5L88.4 154.7zM320 384c16.7 0 32.7-3.2 47.4-9.1l-30.9-24.4c-5.4 .9-10.9 1.4-16.5 1.4c-51 0-92.8-39.8-95.8-90.1l-30.9-24.4c-.9 6-1.3 12.2-1.3 18.5c0 70.7 57.3 128 128 128zM448 256c0-70.7-57.3-128-128-128c-16.7 0-32.7 3.2-47.4 9.1l30.9 24.4c5.4-.9 10.9-1.4 16.5-1.4c51 0 92.8 39.8 95.8 90.1l30.9 24.4c.9-6 1.3-12.2 1.3-18.5z" }) })) : (jsx_runtime_1.jsx("svg", { style: clearIcon, viewBox: "0 0 576 512", children: jsx_runtime_1.jsx("path", { fill: color, d: "M117.2 136C160.3 96 217.6 64 288 64s127.7 32 170.8 72c43.1 40 71.9 88 85.2 120c-13.3 32-42.1 80-85.2 120c-43.1 40-100.4 72-170.8 72s-127.7-32-170.8-72C74.1 336 45.3 288 32 256c13.3-32 42.1-80 85.2-120zM288 32c-80.8 0-145.5 36.8-192.6 80.6C48.6 156 17.3 208 2.5 243.7c-3.3 7.9-3.3 16.7 0 24.6C17.3 304 48.6 356 95.4 399.4C142.5 443.2 207.2 480 288 480s145.5-36.8 192.6-80.6c46.8-43.5 78.1-95.4 93-131.1c3.3-7.9 3.3-16.7 0-24.6c-14.9-35.7-46.2-87.7-93-131.1C433.5 68.8 368.8 32 288 32zM192 256a96 96 0 1 1 192 0 96 96 0 1 1 -192 0zm224 0a128 128 0 1 0 -256 0 128 128 0 1 0 256 0z" }) }));
14
14
  }, [enabled]);
15
- return (0, jsx_runtime_1.jsx)(InlineAction_1.InlineAction, { renderAction: renderAction, onClick: onClick });
15
+ return jsx_runtime_1.jsx(InlineAction_1.InlineAction, { renderAction: renderAction, onClick: onClick });
16
16
  };
17
17
  exports.InlineEyeButton = InlineEyeButton;
@@ -10,8 +10,8 @@ const clearIcon = {
10
10
  };
11
11
  const InlineRemoveButton = ({ onClick }) => {
12
12
  const renderAction = (0, react_1.useCallback)((color) => {
13
- return ((0, jsx_runtime_1.jsx)("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 320 512", style: clearIcon, children: (0, jsx_runtime_1.jsx)("path", { 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", fill: color }) }));
13
+ return (jsx_runtime_1.jsx("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 320 512", style: clearIcon, children: jsx_runtime_1.jsx("path", { 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", fill: color }) }));
14
14
  }, []);
15
- return (0, jsx_runtime_1.jsx)(InlineAction_1.InlineAction, { renderAction: renderAction, onClick: onClick });
15
+ return jsx_runtime_1.jsx(InlineAction_1.InlineAction, { renderAction: renderAction, onClick: onClick });
16
16
  };
17
17
  exports.InlineRemoveButton = InlineRemoveButton;
@@ -6,6 +6,6 @@ const NumberSetting_1 = require("./NumberSetting");
6
6
  const MIN_JPEG_QUALITY = 1;
7
7
  const MAX_JPEG_QUALITY = 100;
8
8
  const JpegQualitySetting = ({ jpegQuality, setJpegQuality }) => {
9
- return ((0, jsx_runtime_1.jsx)(NumberSetting_1.NumberSetting, { min: MIN_JPEG_QUALITY, max: MAX_JPEG_QUALITY, step: 1, name: "JPEG Quality", onValueChanged: setJpegQuality, value: jpegQuality, hint: 'jpegQualityOption' }));
9
+ return (jsx_runtime_1.jsx(NumberSetting_1.NumberSetting, { min: MIN_JPEG_QUALITY, max: MAX_JPEG_QUALITY, step: 1, name: "JPEG Quality", onValueChanged: setJpegQuality, value: jpegQuality, hint: 'jpegQualityOption' }));
10
10
  };
11
11
  exports.JpegQualitySetting = JpegQualitySetting;
@@ -42,6 +42,8 @@ const MultiRangeSlider = ({ min, max, start, end, step, onLeftThumbDrag, onRight
42
42
  const value = Math.max(Number(event.target.value), start + 1);
43
43
  onRightThumbDrag(value);
44
44
  }, [onRightThumbDrag, start]);
45
- return ((0, jsx_runtime_1.jsxs)("div", { style: container, children: [(0, jsx_runtime_1.jsx)("input", { type: "range", min: min, max: max, value: start, step: step, onChange: onChangeLeft, className: "__remotion_thumb" }), (0, jsx_runtime_1.jsx)("input", { type: "range", min: min, max: max, value: end, step: step, onChange: onChangeRight, className: "__remotion_thumb" }), (0, jsx_runtime_1.jsx)("div", { style: rangeStyle })] }));
45
+ return (jsx_runtime_1.jsxs("div", { style: container, children: [
46
+ jsx_runtime_1.jsx("input", { type: "range", min: min, max: max, value: start, step: step, onChange: onChangeLeft, className: "__remotion_thumb" }), jsx_runtime_1.jsx("input", { type: "range", min: min, max: max, value: end, step: step, onChange: onChangeRight, className: "__remotion_thumb" }), jsx_runtime_1.jsx("div", { style: rangeStyle })
47
+ ] }));
46
48
  };
47
49
  exports.MultiRangeSlider = MultiRangeSlider;
@@ -11,6 +11,10 @@ const MutedSetting = ({ muted, setMuted, enforceAudioTrack }) => {
11
11
  const onMutedChanged = (0, react_1.useCallback)((e) => {
12
12
  setMuted(e.target.checked);
13
13
  }, [setMuted]);
14
- return ((0, jsx_runtime_1.jsxs)("div", { style: layout_2.optionRow, children: [(0, jsx_runtime_1.jsxs)("div", { style: layout_2.label, children: ["Muted", (0, jsx_runtime_1.jsx)(layout_1.Spacing, { x: 0.5 }), (0, jsx_runtime_1.jsx)(OptionExplainerBubble_1.OptionExplainerBubble, { id: "mutedOption" })] }), (0, jsx_runtime_1.jsx)(layout_1.Spacing, { x: 0.25 }), (0, jsx_runtime_1.jsx)("div", { style: layout_2.rightRow, children: (0, jsx_runtime_1.jsx)(Checkbox_1.Checkbox, { checked: muted, disabled: enforceAudioTrack && !muted, onChange: onMutedChanged, name: "muted" }) })] }));
14
+ return (jsx_runtime_1.jsxs("div", { style: layout_2.optionRow, children: [
15
+ jsx_runtime_1.jsxs("div", { style: layout_2.label, children: ["Muted",
16
+ jsx_runtime_1.jsx(layout_1.Spacing, { x: 0.5 }), jsx_runtime_1.jsx(OptionExplainerBubble_1.OptionExplainerBubble, { id: "mutedOption" })
17
+ ] }), jsx_runtime_1.jsx(layout_1.Spacing, { x: 0.25 }), jsx_runtime_1.jsx("div", { style: layout_2.rightRow, children: jsx_runtime_1.jsx(Checkbox_1.Checkbox, { checked: muted, disabled: enforceAudioTrack && !muted, onChange: onMutedChanged, name: "muted" }) })
18
+ ] }));
15
19
  };
16
20
  exports.MutedSetting = MutedSetting;
@@ -21,6 +21,8 @@ const NumberOfLoopsSetting = ({ numberOfGifLoops, setNumberOfGifLoops }) => {
21
21
  return newConcurrencyClamped;
22
22
  });
23
23
  }, [setNumberOfGifLoops]);
24
- return ((0, jsx_runtime_1.jsxs)("div", { style: layout_1.optionRow, children: [(0, jsx_runtime_1.jsx)("div", { style: layout_1.label, children: "Number of loops" }), (0, jsx_runtime_1.jsx)("div", { style: layout_1.rightRow, children: (0, jsx_runtime_1.jsx)(RemInput_1.RightAlignInput, { children: (0, jsx_runtime_1.jsx)(InputDragger_1.InputDragger, { value: numberOfGifLoops, onTextChange: onNumberOfGifLoopsChanged, placeholder: `${min}-`, onValueChange: onNumberOfGifLoopsChangedDirectly, name: "number-of-gif-loops", step: 1, min: min, status: "ok", rightAlign: true }) }) })] }));
24
+ return (jsx_runtime_1.jsxs("div", { style: layout_1.optionRow, children: [
25
+ jsx_runtime_1.jsx("div", { style: layout_1.label, children: "Number of loops" }), jsx_runtime_1.jsx("div", { style: layout_1.rightRow, children: jsx_runtime_1.jsx(RemInput_1.RightAlignInput, { children: jsx_runtime_1.jsx(InputDragger_1.InputDragger, { value: numberOfGifLoops, onTextChange: onNumberOfGifLoopsChanged, placeholder: `${min}-`, onValueChange: onNumberOfGifLoopsChangedDirectly, name: "number-of-gif-loops", step: 1, min: min, status: "ok", rightAlign: true }) }) })
26
+ ] }));
25
27
  };
26
28
  exports.NumberOfLoopsSetting = NumberOfLoopsSetting;
@@ -21,8 +21,12 @@ const NumberSetting = ({ name, value, step, hint, onValueChanged, max, min, form
21
21
  const onValueChange = (0, react_1.useCallback)((newConcurrency) => {
22
22
  onValueChanged(newConcurrency);
23
23
  }, [onValueChanged]);
24
- return ((0, jsx_runtime_1.jsxs)("div", { style: layout_2.optionRow, children: [(0, jsx_runtime_1.jsxs)("div", { style: layout_2.label, children: [name, hint ? ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(layout_1.Spacing, { x: 0.5 }), (0, jsx_runtime_1.jsx)(OptionExplainerBubble_1.OptionExplainerBubble, { id: hint })] })) : null] }), (0, jsx_runtime_1.jsx)("div", { style: layout_2.rightRow, children: (0, jsx_runtime_1.jsx)(RemInput_1.RightAlignInput, { children: (0, jsx_runtime_1.jsx)(InputDragger_1.InputDragger, { value: value, name: name.toLowerCase(), onTextChange: onTextChanged, onValueChange: onValueChange, step: step, placeholder: [min, max]
24
+ return (jsx_runtime_1.jsxs("div", { style: layout_2.optionRow, children: [
25
+ jsx_runtime_1.jsxs("div", { style: layout_2.label, children: [name, hint ? (jsx_runtime_1.jsxs(jsx_runtime_1.Fragment, { children: [
26
+ jsx_runtime_1.jsx(layout_1.Spacing, { x: 0.5 }), jsx_runtime_1.jsx(OptionExplainerBubble_1.OptionExplainerBubble, { id: hint })
27
+ ] })) : null] }), jsx_runtime_1.jsx("div", { style: layout_2.rightRow, children: jsx_runtime_1.jsx(RemInput_1.RightAlignInput, { children: jsx_runtime_1.jsx(InputDragger_1.InputDragger, { value: value, name: name.toLowerCase(), onTextChange: onTextChanged, onValueChange: onValueChange, step: step, placeholder: [min, max]
25
28
  .map((f) => (f !== null && f !== undefined ? f : ''))
26
- .join('-'), min: min, max: max, formatter: formatter, status: "ok", rightAlign: true }) }) })] }));
29
+ .join('-'), min: min, max: max, formatter: formatter, status: "ok", rightAlign: true }) }) })
30
+ ] }));
27
31
  };
28
32
  exports.NumberSetting = NumberSetting;
@@ -51,6 +51,19 @@ const copyWrapper = {
51
51
  justifyContent: 'flex-end',
52
52
  };
53
53
  const OptionExplainer = ({ option }) => {
54
- return ((0, jsx_runtime_1.jsxs)("div", { style: container, className: "__remotion-info-button-container", children: [(0, jsx_runtime_1.jsxs)("div", { style: padding, children: [(0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsx)("strong", { style: title, children: option.name }), option.docLink ? ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(layout_1.Spacing, { x: 1 }), (0, jsx_runtime_1.jsx)("a", { style: link, href: option.docLink, target: "_blank", children: "Docs" })] })) : null] }), (0, jsx_runtime_1.jsx)("div", { style: description, children: option.description('ssr') })] }), (0, jsx_runtime_1.jsx)(layout_1.Spacing, { y: 0.5, block: true }), (0, jsx_runtime_1.jsx)(MenuDivider_1.MenuDivider, {}), (0, jsx_runtime_1.jsx)(layout_1.Spacing, { y: 0.5, block: true }), (0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsxs)("div", { style: infoRow, children: [(0, jsx_runtime_1.jsx)("div", { style: infoRowLabel, children: "CLI flag" }), (0, jsx_runtime_1.jsx)("div", { style: flexSpacer }), (0, jsx_runtime_1.jsxs)("code", { children: ["--", option.cliFlag] }), (0, jsx_runtime_1.jsx)("div", { style: copyWrapper, children: (0, jsx_runtime_1.jsx)(CliCopyButton_1.CliCopyButton, { valueToCopy: option.cliFlag }) })] }), option.ssrName ? ((0, jsx_runtime_1.jsxs)("div", { style: infoRow, children: [(0, jsx_runtime_1.jsx)("div", { style: infoRowLabel, children: "Node.JS option" }), (0, jsx_runtime_1.jsx)("div", { style: flexSpacer }), (0, jsx_runtime_1.jsx)("code", { children: option.ssrName }), (0, jsx_runtime_1.jsx)(layout_1.Spacing, { x: 3.75 })] })) : null, (0, jsx_runtime_1.jsx)("div", { style: infoRow })] })] }));
54
+ return (jsx_runtime_1.jsxs("div", { style: container, className: "__remotion-info-button-container", children: [
55
+ jsx_runtime_1.jsxs("div", { style: padding, children: [
56
+ jsx_runtime_1.jsxs("div", { children: [
57
+ jsx_runtime_1.jsx("strong", { style: title, children: option.name }), option.docLink ? (jsx_runtime_1.jsxs(jsx_runtime_1.Fragment, { children: [
58
+ jsx_runtime_1.jsx(layout_1.Spacing, { x: 1 }), jsx_runtime_1.jsx("a", { style: link, href: option.docLink, target: "_blank", children: "Docs" })
59
+ ] })) : null] }), jsx_runtime_1.jsx("div", { style: description, children: option.description('ssr') })
60
+ ] }), jsx_runtime_1.jsx(layout_1.Spacing, { y: 0.5, block: true }), jsx_runtime_1.jsx(MenuDivider_1.MenuDivider, {}), jsx_runtime_1.jsx(layout_1.Spacing, { y: 0.5, block: true }), jsx_runtime_1.jsxs("div", { children: [
61
+ jsx_runtime_1.jsxs("div", { style: infoRow, children: [
62
+ jsx_runtime_1.jsx("div", { style: infoRowLabel, children: "CLI flag" }), jsx_runtime_1.jsx("div", { style: flexSpacer }), jsx_runtime_1.jsxs("code", { children: ["--", option.cliFlag] }), jsx_runtime_1.jsx("div", { style: copyWrapper, children: jsx_runtime_1.jsx(CliCopyButton_1.CliCopyButton, { valueToCopy: option.cliFlag }) })
63
+ ] }), option.ssrName ? (jsx_runtime_1.jsxs("div", { style: infoRow, children: [
64
+ jsx_runtime_1.jsx("div", { style: infoRowLabel, children: "Node.JS option" }), jsx_runtime_1.jsx("div", { style: flexSpacer }), jsx_runtime_1.jsx("code", { children: option.ssrName }), jsx_runtime_1.jsx(layout_1.Spacing, { x: 3.75 })
65
+ ] })) : null, jsx_runtime_1.jsx("div", { style: infoRow })
66
+ ] })
67
+ ] }));
55
68
  };
56
69
  exports.OptionExplainer = OptionExplainer;
@@ -7,6 +7,6 @@ const InfoBubble_1 = require("./InfoBubble");
7
7
  const OptionExplainer_1 = require("./OptionExplainer");
8
8
  const OptionExplainerBubble = ({ id }) => {
9
9
  const option = client_1.BrowserSafeApis.options[id];
10
- return ((0, jsx_runtime_1.jsx)(InfoBubble_1.InfoBubble, { title: "Learn more about this option", children: (0, jsx_runtime_1.jsx)(OptionExplainer_1.OptionExplainer, { option: option }) }));
10
+ return (jsx_runtime_1.jsx(InfoBubble_1.InfoBubble, { title: "Learn more about this option", children: jsx_runtime_1.jsx(OptionExplainer_1.OptionExplainer, { option: option }) }));
11
11
  };
12
12
  exports.OptionExplainerBubble = OptionExplainerBubble;