@remotion/cli 4.0.0-alpha.217 → 4.0.0-alpha10

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 (273) hide show
  1. package/dist/benchmark.js +11 -6
  2. package/dist/better-opn/index.js +3 -3
  3. package/dist/chalk/index.d.ts +45 -54
  4. package/dist/chalk/index.js +2 -135
  5. package/dist/codemods/stringify-with-path.d.ts +5 -0
  6. package/dist/codemods/stringify-with-path.js +44 -0
  7. package/dist/codemods/update-default-props.d.ts +4 -2
  8. package/dist/codemods/update-default-props.js +3 -18
  9. package/dist/color-math.d.ts +2 -2
  10. package/dist/color-math.js +5 -3
  11. package/dist/compositions.js +1 -0
  12. package/dist/config/image-format.d.ts +1 -1
  13. package/dist/config/index.d.ts +2 -2
  14. package/dist/config/log.d.ts +1 -3
  15. package/dist/config/log.js +2 -9
  16. package/dist/convert-entry-point-to-serve-url.js +2 -2
  17. package/dist/download-progress.d.ts +1 -1
  18. package/dist/download-progress.js +1 -4
  19. package/dist/editor/components/CanvasOrLoading.d.ts +5 -0
  20. package/dist/editor/components/CanvasOrLoading.js +66 -0
  21. package/dist/editor/components/CheckboardToggle.js +2 -1
  22. package/dist/editor/components/CompositionSelectorItem.js +2 -2
  23. package/dist/editor/components/CurrentCompositionSideEffects.js +3 -3
  24. package/dist/editor/components/InitialCompositionLoader.js +1 -1
  25. package/dist/editor/components/InlineAction.d.ts +6 -4
  26. package/dist/editor/components/InlineAction.js +7 -8
  27. package/dist/editor/components/LoopToggle.js +2 -1
  28. package/dist/editor/components/Menu/MenuItem.js +1 -1
  29. package/dist/editor/components/Menu/SubMenu.js +1 -1
  30. package/dist/editor/components/Menu/styles.d.ts +1 -0
  31. package/dist/editor/components/Menu/styles.js +6 -1
  32. package/dist/editor/components/MenuBuildIndicator.js +20 -1
  33. package/dist/editor/components/MenuToolbar.js +15 -3
  34. package/dist/editor/components/Modals.js +2 -2
  35. package/dist/editor/components/NewComposition/ComboBox.js +20 -5
  36. package/dist/editor/components/NewComposition/InputDragger.js +3 -2
  37. package/dist/editor/components/NewComposition/MenuContent.d.ts +1 -0
  38. package/dist/editor/components/NewComposition/MenuContent.js +12 -4
  39. package/dist/editor/components/Notifications/ServerDisconnected.js +2 -2
  40. package/dist/editor/components/OpenEditorButton.d.ts +2 -0
  41. package/dist/editor/components/OpenEditorButton.js +52 -0
  42. package/dist/editor/components/PlayPause.js +4 -2
  43. package/dist/editor/components/PreviewToolbar.js +2 -2
  44. package/dist/editor/components/QuickSwitcher/algolia-search.js +1 -1
  45. package/dist/editor/components/RenderButton.d.ts +1 -5
  46. package/dist/editor/components/RenderButton.js +48 -21
  47. package/dist/editor/components/RenderModal/CliCopyButton.js +51 -14
  48. package/dist/editor/components/RenderModal/CrfSetting.d.ts +0 -1
  49. package/dist/editor/components/RenderModal/CrfSetting.js +0 -1
  50. package/dist/editor/components/RenderModal/DataEditor.d.ts +21 -0
  51. package/dist/editor/components/RenderModal/DataEditor.js +287 -0
  52. package/dist/editor/components/RenderModal/EnforceAudioTrackSetting.js +3 -2
  53. package/dist/editor/components/RenderModal/InfoBubble.js +2 -1
  54. package/dist/editor/components/RenderModal/InfoTooltip.d.ts +1 -0
  55. package/dist/editor/components/RenderModal/InfoTooltip.js +6 -5
  56. package/dist/editor/components/RenderModal/InlineEyeIcon.js +6 -3
  57. package/dist/editor/components/RenderModal/InlineRemoveButton.js +6 -1
  58. package/dist/editor/components/RenderModal/MutedSetting.js +3 -2
  59. package/dist/editor/components/RenderModal/OptionExplainer.js +14 -3
  60. package/dist/editor/components/RenderModal/RenderModal.d.ts +7 -3
  61. package/dist/editor/components/RenderModal/RenderModal.js +108 -49
  62. package/dist/editor/components/RenderModal/RenderModalAdvanced.js +0 -2
  63. package/dist/editor/components/RenderModal/RenderModalAudio.js +1 -1
  64. package/dist/editor/components/RenderModal/RenderModalBasic.d.ts +3 -2
  65. package/dist/editor/components/RenderModal/RenderModalBasic.js +4 -3
  66. package/dist/editor/components/RenderModal/RenderModalData.d.ts +16 -4
  67. package/dist/editor/components/RenderModal/RenderModalData.js +109 -42
  68. package/dist/editor/components/RenderModal/RenderModalJSONPropsEditor.d.ts +14 -0
  69. package/dist/editor/components/RenderModal/{RenderModalJSONInputPropsEditor.js → RenderModalJSONPropsEditor.js} +51 -30
  70. package/dist/editor/components/RenderModal/RenderModalPicture.d.ts +2 -2
  71. package/dist/editor/components/RenderModal/RenderModalPicture.js +2 -4
  72. package/dist/editor/components/RenderModal/SchemaEditor/SchemaEditor.d.ts +6 -4
  73. package/dist/editor/components/RenderModal/SchemaEditor/SchemaEditor.js +4 -4
  74. package/dist/editor/components/RenderModal/SchemaEditor/SchemaErrorMessages.d.ts +4 -0
  75. package/dist/editor/components/RenderModal/SchemaEditor/SchemaErrorMessages.js +15 -6
  76. package/dist/editor/components/RenderModal/SchemaEditor/SchemaLabel.d.ts +5 -0
  77. package/dist/editor/components/RenderModal/SchemaEditor/SchemaLabel.js +5 -4
  78. package/dist/editor/components/RenderModal/SchemaEditor/SchemaResetButton.js +6 -1
  79. package/dist/editor/components/RenderModal/SchemaEditor/SchemaSaveButton.d.ts +1 -0
  80. package/dist/editor/components/RenderModal/SchemaEditor/SchemaSaveButton.js +7 -2
  81. package/dist/editor/components/RenderModal/SchemaEditor/ZodArrayEditor.d.ts +5 -2
  82. package/dist/editor/components/RenderModal/SchemaEditor/ZodArrayEditor.js +19 -29
  83. package/dist/editor/components/RenderModal/SchemaEditor/ZodArrayItemEditor.d.ts +5 -2
  84. package/dist/editor/components/RenderModal/SchemaEditor/ZodArrayItemEditor.js +4 -4
  85. package/dist/editor/components/RenderModal/SchemaEditor/ZodBooleanEditor.d.ts +5 -2
  86. package/dist/editor/components/RenderModal/SchemaEditor/ZodBooleanEditor.js +7 -7
  87. package/dist/editor/components/RenderModal/SchemaEditor/ZodColorEditor.d.ts +5 -2
  88. package/dist/editor/components/RenderModal/SchemaEditor/ZodColorEditor.js +23 -66
  89. package/dist/editor/components/RenderModal/SchemaEditor/ZodDateEditor.d.ts +5 -2
  90. package/dist/editor/components/RenderModal/SchemaEditor/ZodDateEditor.js +13 -21
  91. package/dist/editor/components/RenderModal/SchemaEditor/ZodDefaultEditor.d.ts +17 -0
  92. package/dist/editor/components/RenderModal/SchemaEditor/ZodDefaultEditor.js +10 -0
  93. package/dist/editor/components/RenderModal/SchemaEditor/ZodEffectEditor.d.ts +4 -2
  94. package/dist/editor/components/RenderModal/SchemaEditor/ZodEffectEditor.js +20 -19
  95. package/dist/editor/components/RenderModal/SchemaEditor/ZodEnumEditor.d.ts +4 -2
  96. package/dist/editor/components/RenderModal/SchemaEditor/ZodEnumEditor.js +12 -26
  97. package/dist/editor/components/RenderModal/SchemaEditor/ZodNonEditableValue.d.ts +1 -0
  98. package/dist/editor/components/RenderModal/SchemaEditor/ZodNonEditableValue.js +2 -2
  99. package/dist/editor/components/RenderModal/SchemaEditor/ZodNullableEditor.d.ts +5 -2
  100. package/dist/editor/components/RenderModal/SchemaEditor/ZodNullableEditor.js +2 -2
  101. package/dist/editor/components/RenderModal/SchemaEditor/ZodNumberEditor.d.ts +5 -2
  102. package/dist/editor/components/RenderModal/SchemaEditor/ZodNumberEditor.js +16 -32
  103. package/dist/editor/components/RenderModal/SchemaEditor/ZodObjectEditor.d.ts +7 -4
  104. package/dist/editor/components/RenderModal/SchemaEditor/ZodObjectEditor.js +18 -11
  105. package/dist/editor/components/RenderModal/SchemaEditor/ZodOptionalEditor.d.ts +5 -2
  106. package/dist/editor/components/RenderModal/SchemaEditor/ZodOptionalEditor.js +2 -2
  107. package/dist/editor/components/RenderModal/SchemaEditor/ZodOrNullishEditor.d.ts +5 -2
  108. package/dist/editor/components/RenderModal/SchemaEditor/ZodOrNullishEditor.js +44 -11
  109. package/dist/editor/components/RenderModal/SchemaEditor/ZodStaticFileEditor.d.ts +17 -0
  110. package/dist/editor/components/RenderModal/SchemaEditor/ZodStaticFileEditor.js +59 -0
  111. package/dist/editor/components/RenderModal/SchemaEditor/ZodStringEditor.d.ts +5 -2
  112. package/dist/editor/components/RenderModal/SchemaEditor/ZodStringEditor.js +12 -23
  113. package/dist/editor/components/RenderModal/SchemaEditor/ZodSwitch.d.ts +5 -2
  114. package/dist/editor/components/RenderModal/SchemaEditor/ZodSwitch.js +32 -21
  115. package/dist/editor/components/RenderModal/SchemaEditor/ZodUnionEditor.d.ts +5 -2
  116. package/dist/editor/components/RenderModal/SchemaEditor/ZodUnionEditor.js +6 -6
  117. package/dist/editor/components/RenderModal/SchemaEditor/create-zod-values.d.ts +2 -2
  118. package/dist/editor/components/RenderModal/SchemaEditor/create-zod-values.js +22 -22
  119. package/dist/editor/components/RenderModal/SchemaEditor/deep-equal.d.ts +1 -0
  120. package/dist/editor/components/RenderModal/SchemaEditor/deep-equal.js +27 -0
  121. package/dist/editor/components/RenderModal/SchemaEditor/extract-enum-json-paths.d.ts +3 -0
  122. package/dist/editor/components/RenderModal/SchemaEditor/extract-enum-json-paths.js +126 -0
  123. package/dist/editor/components/RenderModal/SchemaEditor/input-props-serialization.d.ts +14 -0
  124. package/dist/editor/components/RenderModal/SchemaEditor/input-props-serialization.js +42 -0
  125. package/dist/editor/components/RenderModal/SchemaEditor/local-state.d.ts +16 -0
  126. package/dist/editor/components/RenderModal/SchemaEditor/local-state.js +38 -0
  127. package/dist/editor/components/RenderModal/get-render-modal-warnings.d.ts +9 -1
  128. package/dist/editor/components/RenderModal/get-render-modal-warnings.js +42 -8
  129. package/dist/editor/components/RenderModal/human-readable-codec.d.ts +1 -1
  130. package/dist/editor/components/RenderModal/layout.js +3 -0
  131. package/dist/editor/components/RenderModal/out-name-checker.js +1 -11
  132. package/dist/editor/components/RenderQueue/RenderQueueItemCancelButton.js +5 -1
  133. package/dist/editor/components/RenderQueue/RenderQueueOpenInFolder.js +5 -1
  134. package/dist/editor/components/RenderQueue/RenderQueueRemoveItem.js +5 -1
  135. package/dist/editor/components/RenderQueue/RenderQueueRepeat.js +5 -1
  136. package/dist/editor/components/RenderQueue/actions.d.ts +4 -3
  137. package/dist/editor/components/RenderQueue/actions.js +8 -3
  138. package/dist/editor/components/RenderQueue/index.js +9 -2
  139. package/dist/editor/components/RightPanel.js +8 -5
  140. package/dist/editor/components/SidebarCollapserControls.js +22 -9
  141. package/dist/editor/components/SidebarRenderButton.d.ts +6 -0
  142. package/dist/editor/components/{RenderToolbarIcon.js → SidebarRenderButton.js} +27 -41
  143. package/dist/editor/components/Spinner.d.ts +5 -0
  144. package/dist/editor/components/Spinner.js +41 -0
  145. package/dist/editor/components/Tabs/index.js +12 -14
  146. package/dist/editor/components/Timeline/Timeline.js +3 -1
  147. package/dist/editor/components/Timeline/TimelinePlayCursorSyncer.js +4 -3
  148. package/dist/editor/components/Timeline/TimelineSequence.js +8 -6
  149. package/dist/editor/components/TimelineInOutToggle.js +2 -4
  150. package/dist/editor/components/TopPanel.js +2 -2
  151. package/dist/editor/components/UpdateCheck.js +2 -1
  152. package/dist/editor/components/get-zod-if-possible.d.ts +3 -3
  153. package/dist/editor/components/get-zod-if-possible.js +11 -11
  154. package/dist/editor/helpers/calculate-timeline.js +1 -1
  155. package/dist/editor/helpers/client-id.d.ts +2 -2
  156. package/dist/editor/helpers/client-id.js +5 -5
  157. package/dist/editor/helpers/colors.d.ts +4 -2
  158. package/dist/editor/helpers/colors.js +4 -2
  159. package/dist/editor/helpers/get-timeline-sequence-layout.d.ts +2 -2
  160. package/dist/editor/helpers/is-composition-still.d.ts +3 -2
  161. package/dist/editor/helpers/is-current-selected-still.js +3 -4
  162. package/dist/editor/helpers/use-file-existence.js +1 -1
  163. package/dist/editor/helpers/use-menu-structure.js +1 -1
  164. package/dist/editor/icons/media-volume.js +2 -1
  165. package/dist/editor/icons/render.d.ts +1 -0
  166. package/dist/editor/icons/render.js +1 -1
  167. package/dist/editor/state/modals.d.ts +3 -1
  168. package/dist/entry-point.js +17 -17
  169. package/dist/event-source-events.d.ts +2 -0
  170. package/dist/event-source.js +2 -2
  171. package/dist/ffmpeg.js +14 -5
  172. package/dist/file-watcher.js +5 -5
  173. package/dist/get-cli-options.d.ts +3 -3
  174. package/dist/get-cli-options.js +4 -4
  175. package/dist/get-composition-id.d.ts +14 -2
  176. package/dist/get-composition-id.js +32 -8
  177. package/dist/get-composition-with-dimension-override.d.ts +13 -2
  178. package/dist/get-composition-with-dimension-override.js +12 -2
  179. package/dist/get-config-file-name.js +6 -6
  180. package/dist/get-env.js +10 -10
  181. package/dist/get-filename.js +1 -0
  182. package/dist/get-input-props.d.ts +1 -1
  183. package/dist/get-input-props.js +9 -9
  184. package/dist/get-network-address.js +2 -2
  185. package/dist/handle-common-errors.d.ts +2 -1
  186. package/dist/handle-common-errors.js +2 -2
  187. package/dist/index.d.ts +41 -19
  188. package/dist/index.js +9 -6
  189. package/dist/list-of-remotion-packages.js +2 -1
  190. package/dist/load-config.js +8 -8
  191. package/dist/log.d.ts +5 -5
  192. package/dist/log.js +3 -42
  193. package/dist/parse-command-line.d.ts +1 -0
  194. package/dist/preview-server/api-types.d.ts +3 -3
  195. package/dist/preview-server/dev-middleware/compatible-api.d.ts +2 -2
  196. package/dist/preview-server/dev-middleware/middleware.d.ts +1 -1
  197. package/dist/preview-server/dev-middleware/middleware.js +7 -7
  198. package/dist/preview-server/dev-middleware/range-parser.d.ts +1 -1
  199. package/dist/preview-server/dev-middleware/setup-hooks.js +2 -2
  200. package/dist/preview-server/error-overlay/react-overlay/utils/get-file-source.js +5 -5
  201. package/dist/preview-server/error-overlay/react-overlay/utils/open-in-editor.js +17 -17
  202. package/dist/preview-server/error-overlay/remotion-overlay/CalculateMetadataErrorExplainer.d.ts +2 -0
  203. package/dist/preview-server/error-overlay/remotion-overlay/CalculateMetadataErrorExplainer.js +18 -0
  204. package/dist/preview-server/error-overlay/remotion-overlay/CodeFrame.js +30 -12
  205. package/dist/preview-server/error-overlay/remotion-overlay/ErrorDisplay.d.ts +4 -0
  206. package/dist/preview-server/error-overlay/remotion-overlay/ErrorDisplay.js +5 -2
  207. package/dist/preview-server/error-overlay/remotion-overlay/ErrorLoader.d.ts +4 -0
  208. package/dist/preview-server/error-overlay/remotion-overlay/ErrorLoader.js +5 -5
  209. package/dist/preview-server/error-overlay/remotion-overlay/ErrorTitle.d.ts +1 -0
  210. package/dist/preview-server/error-overlay/remotion-overlay/ErrorTitle.js +4 -3
  211. package/dist/preview-server/error-overlay/remotion-overlay/HelpLink.js +2 -1
  212. package/dist/preview-server/error-overlay/remotion-overlay/Overlay.js +1 -1
  213. package/dist/preview-server/error-overlay/remotion-overlay/Retry.d.ts +4 -0
  214. package/dist/preview-server/error-overlay/remotion-overlay/Retry.js +9 -0
  215. package/dist/preview-server/file-existence-watchers.js +3 -3
  216. package/dist/preview-server/get-absolute-public-dir.js +3 -3
  217. package/dist/preview-server/get-package-manager.js +3 -3
  218. package/dist/preview-server/handler.d.ts +1 -1
  219. package/dist/preview-server/hot-middleware/index.d.ts +1 -1
  220. package/dist/preview-server/hot-middleware/index.js +2 -2
  221. package/dist/preview-server/live-events.d.ts +1 -1
  222. package/dist/preview-server/parse-body.d.ts +1 -1
  223. package/dist/preview-server/project-info.js +5 -5
  224. package/dist/preview-server/public-folder.js +8 -8
  225. package/dist/preview-server/render-queue/job.d.ts +11 -2
  226. package/dist/preview-server/render-queue/make-retry-payload.js +5 -1
  227. package/dist/preview-server/render-queue/open-directory-in-finder.js +8 -8
  228. package/dist/preview-server/render-queue/process-still.js +1 -0
  229. package/dist/preview-server/render-queue/queue.js +4 -4
  230. package/dist/preview-server/routes/can-update-default-props.js +3 -2
  231. package/dist/preview-server/routes/update-default-props.d.ts +2 -2
  232. package/dist/preview-server/routes/update-default-props.js +26 -15
  233. package/dist/preview-server/routes.d.ts +3 -2
  234. package/dist/preview-server/routes.js +10 -10
  235. package/dist/preview-server/serve-static.d.ts +1 -1
  236. package/dist/preview-server/serve-static.js +7 -7
  237. package/dist/preview-server/start-server.js +3 -3
  238. package/dist/preview.js +6 -4
  239. package/dist/print-error.d.ts +2 -1
  240. package/dist/print-error.js +8 -5
  241. package/dist/print-help.js +1 -1
  242. package/dist/progress-bar.d.ts +5 -4
  243. package/dist/progress-bar.js +42 -29
  244. package/dist/render-flows/render.d.ts +1 -1
  245. package/dist/render-flows/render.js +62 -35
  246. package/dist/render-flows/still.d.ts +3 -2
  247. package/dist/render-flows/still.js +34 -28
  248. package/dist/resolve-from.js +5 -5
  249. package/dist/setup-cache.d.ts +2 -1
  250. package/dist/setup-cache.js +10 -6
  251. package/dist/should-use-non-overlaying-logger.d.ts +4 -0
  252. package/dist/should-use-non-overlaying-logger.js +12 -0
  253. package/dist/show-compositions-picker.d.ts +8 -0
  254. package/dist/show-compositions-picker.js +51 -0
  255. package/dist/still.js +1 -0
  256. package/dist/studio.d.ts +1 -0
  257. package/dist/studio.js +140 -0
  258. package/dist/upgrade.js +2 -2
  259. package/dist/user-passed-output-location.d.ts +3 -2
  260. package/dist/user-passed-output-location.js +10 -5
  261. package/dist/versions.js +2 -2
  262. package/dist/watch-root-file.d.ts +1 -0
  263. package/dist/watch-root-file.js +22 -0
  264. package/package.json +89 -88
  265. package/styles/styles.css +4 -5
  266. package/dist/editor/components/CollapsableOptions.d.ts +0 -6
  267. package/dist/editor/components/CollapsableOptions.js +0 -35
  268. package/dist/editor/components/RenderModal/RenderModalJSONInputPropsEditor.d.ts +0 -10
  269. package/dist/editor/components/RenderModal/SchemaEditor/date-serialization.d.ts +0 -2
  270. package/dist/editor/components/RenderModal/SchemaEditor/date-serialization.js +0 -21
  271. package/dist/editor/components/RenderToolbarIcon.d.ts +0 -2
  272. package/dist/editor/icons/RenderStillIcon.d.ts +0 -3
  273. package/dist/editor/icons/RenderStillIcon.js +0 -8
@@ -1,26 +1,60 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getRenderModalWarnings = void 0;
3
+ exports.getRenderModalWarnings = exports.defaultTypeCanSaveState = void 0;
4
4
  const truthy_1 = require("../../../truthy");
5
- const getInputPropsWarning = ({ cliProps }) => {
6
- if (Object.keys(cliProps).length > 0) {
5
+ exports.defaultTypeCanSaveState = {
6
+ canUpdate: false,
7
+ reason: 'Loading...',
8
+ determined: false,
9
+ };
10
+ const getInputPropsWarning = ({ cliProps, propsEditType, }) => {
11
+ if (Object.keys(cliProps).length > 0 &&
12
+ propsEditType === 'default-props') {
7
13
  return 'The data that was passed using --props takes priority over the data you enter here.';
8
14
  }
9
15
  return null;
10
16
  };
11
- const getCannotSaveDefaultProps = ({ canSaveDefaultProps, }) => {
17
+ const getCannotSaveDefaultProps = (canSaveDefaultProps) => {
12
18
  if (canSaveDefaultProps.canUpdate) {
13
19
  return null;
14
20
  }
15
21
  if (!canSaveDefaultProps.determined) {
16
22
  return null;
17
23
  }
18
- return `Can't save default props: ${canSaveDefaultProps.reason}`;
24
+ return `Can't save default props: ${canSaveDefaultProps.reason}.`;
25
+ };
26
+ const customDateUsed = (used, inJSONEditor) => {
27
+ if (used && inJSONEditor) {
28
+ return 'There is a Date in the schema which was serialized. Note the custom syntax.';
29
+ }
30
+ return null;
31
+ };
32
+ const staticFileUsed = (used, inJSONEditor) => {
33
+ if (used && inJSONEditor) {
34
+ return 'There is a staticFile() in the schema which was serialized. Note the custom syntax.';
35
+ }
36
+ return null;
37
+ };
38
+ const mapUsed = (used, inJSONEditor) => {
39
+ if (used && inJSONEditor) {
40
+ return 'A `Map` was used in the schema which can not be serialized to JSON.';
41
+ }
42
+ return null;
43
+ };
44
+ const setUsed = (used, inJSONEditor) => {
45
+ if (used && inJSONEditor) {
46
+ return 'A `Set` was used in the schema which can not be serialized to JSON.';
47
+ }
48
+ return null;
19
49
  };
20
- const getRenderModalWarnings = ({ cliProps, canSaveDefaultProps, }) => {
50
+ const getRenderModalWarnings = ({ cliProps, canSaveDefaultProps, isCustomDateUsed, customFileUsed, jsMapUsed, jsSetUsed, inJSONEditor, propsEditType, }) => {
21
51
  return [
22
- getInputPropsWarning({ cliProps }),
23
- getCannotSaveDefaultProps({ canSaveDefaultProps }),
52
+ getInputPropsWarning({ cliProps, propsEditType }),
53
+ getCannotSaveDefaultProps(canSaveDefaultProps),
54
+ customDateUsed(isCustomDateUsed, inJSONEditor),
55
+ staticFileUsed(customFileUsed, inJSONEditor),
56
+ mapUsed(jsMapUsed, inJSONEditor),
57
+ setUsed(jsSetUsed, inJSONEditor),
24
58
  ].filter(truthy_1.truthy);
25
59
  };
26
60
  exports.getRenderModalWarnings = getRenderModalWarnings;
@@ -1,2 +1,2 @@
1
1
  import type { Codec } from '@remotion/renderer';
2
- export declare const humanReadableCodec: (codec: Codec) => "GIF" | "AAC" | "MP3" | "H.264" | "H.264 Matroska" | "H.265" | "ProRes" | "WebM VP8" | "WebM VP9" | "Waveform" | undefined;
2
+ export declare const humanReadableCodec: (codec: Codec) => "AAC" | "MP3" | "GIF" | "H.264" | "H.264 Matroska" | "H.265" | "ProRes" | "WebM VP8" | "WebM VP9" | "Waveform" | undefined;
@@ -21,6 +21,9 @@ exports.label = {
21
21
  lineHeight: '40px',
22
22
  color: colors_1.LIGHT_TEXT,
23
23
  fontFamily: 'sans-serif',
24
+ display: 'flex',
25
+ flexDirection: 'row',
26
+ alignItems: 'center',
24
27
  };
25
28
  exports.rightRow = {
26
29
  display: 'flex',
@@ -45,7 +45,7 @@ const isValidOutName = ({ outName, codec, audioCodec, renderMode, stillImageForm
45
45
  const hasInvalidChar = () => {
46
46
  return prefix.split('').some((char) => invalidCharacters.includes(char));
47
47
  };
48
- if (renderMode === 'video') {
48
+ if (renderMode === 'video' || renderMode === 'audio') {
49
49
  client_1.BrowserSafeApis.validateOutputFilename({
50
50
  codec,
51
51
  audioCodec: audioCodec !== null && audioCodec !== void 0 ? audioCodec : null,
@@ -67,14 +67,4 @@ const isValidOutName = ({ outName, codec, audioCodec, renderMode, stillImageForm
67
67
  !isValidStillExtension(extension, stillImageFormat)) {
68
68
  throw new Error(`The extension ${extension} is not supported for still image format ${stillImageFormat}`);
69
69
  }
70
- if (renderMode === 'audio') {
71
- if (audioCodec === 'pcm-16') {
72
- if (extension !== 'wav' && extension !== 'wave') {
73
- throw new Error(`The extension ${extension} is not supported for audio codec ${audioCodec}`);
74
- }
75
- }
76
- if (audioCodec !== extension) {
77
- throw new Error(`The extension ${extension} is not supported for audio codec ${audioCodec}`);
78
- }
79
- }
80
70
  };
@@ -15,8 +15,12 @@ const RenderQueueCancelButton = ({ job }) => {
15
15
  const icon = (0, react_1.useMemo)(() => {
16
16
  return {
17
17
  height: 14,
18
+ color: 'currentColor',
18
19
  };
19
20
  }, []);
20
- return ((0, jsx_runtime_1.jsx)(InlineAction_1.InlineAction, { onClick: onClick, children: (0, jsx_runtime_1.jsx)("svg", { style: icon, xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 512 512", children: (0, jsx_runtime_1.jsx)("path", { fill: "currentcolor", d: "M367.2 412.5L99.5 144.8C77.1 176.1 64 214.5 64 256c0 106 86 192 192 192c41.5 0 79.9-13.1 111.2-35.5zm45.3-45.3C434.9 335.9 448 297.5 448 256c0-106-86-192-192-192c-41.5 0-79.9 13.1-111.2 35.5L412.5 367.2zM512 256c0 141.4-114.6 256-256 256S0 397.4 0 256S114.6 0 256 0S512 114.6 512 256z" }) }) }));
21
+ const renderAction = (0, react_1.useCallback)((color) => {
22
+ return ((0, jsx_runtime_1.jsx)("svg", { style: icon, xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 512 512", children: (0, jsx_runtime_1.jsx)("path", { fill: color, d: "M367.2 412.5L99.5 144.8C77.1 176.1 64 214.5 64 256c0 106 86 192 192 192c41.5 0 79.9-13.1 111.2-35.5zm45.3-45.3C434.9 335.9 448 297.5 448 256c0-106-86-192-192-192c-41.5 0-79.9 13.1-111.2 35.5L412.5 367.2zM512 256c0 141.4-114.6 256-256 256S0 397.4 0 256S114.6 0 256 0S512 114.6 512 256z" }) }));
23
+ }, [icon]);
24
+ return (0, jsx_runtime_1.jsx)(InlineAction_1.InlineAction, { renderAction: renderAction, onClick: onClick });
21
25
  };
22
26
  exports.RenderQueueCancelButton = RenderQueueCancelButton;
@@ -15,8 +15,12 @@ const RenderQueueOpenInFinderItem = ({ job, }) => {
15
15
  const icon = (0, react_1.useMemo)(() => {
16
16
  return {
17
17
  height: 12,
18
+ color: 'currentColor',
18
19
  };
19
20
  }, []);
20
- return ((0, jsx_runtime_1.jsx)(InlineAction_1.InlineAction, { onClick: onClick, children: (0, jsx_runtime_1.jsx)("svg", { style: icon, viewBox: "0 0 576 512", children: (0, jsx_runtime_1.jsx)("path", { fill: "currentcolor", d: "M384 480h48c11.4 0 21.9-6 27.6-15.9l112-192c5.8-9.9 5.8-22.1 .1-32.1S555.5 224 544 224H144c-11.4 0-21.9 6-27.6 15.9L48 357.1V96c0-8.8 7.2-16 16-16H181.5c4.2 0 8.3 1.7 11.3 4.7l26.5 26.5c21 21 49.5 32.8 79.2 32.8H416c8.8 0 16 7.2 16 16v32h48V160c0-35.3-28.7-64-64-64H298.5c-17 0-33.3-6.7-45.3-18.7L226.7 50.7c-12-12-28.3-18.7-45.3-18.7H64C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H87.7 384z" }) }) }));
21
+ const renderAction = (0, react_1.useCallback)((color) => {
22
+ return ((0, jsx_runtime_1.jsx)("svg", { style: icon, viewBox: "0 0 576 512", children: (0, jsx_runtime_1.jsx)("path", { fill: color, d: "M384 480h48c11.4 0 21.9-6 27.6-15.9l112-192c5.8-9.9 5.8-22.1 .1-32.1S555.5 224 544 224H144c-11.4 0-21.9 6-27.6 15.9L48 357.1V96c0-8.8 7.2-16 16-16H181.5c4.2 0 8.3 1.7 11.3 4.7l26.5 26.5c21 21 49.5 32.8 79.2 32.8H416c8.8 0 16 7.2 16 16v32h48V160c0-35.3-28.7-64-64-64H298.5c-17 0-33.3-6.7-45.3-18.7L226.7 50.7c-12-12-28.3-18.7-45.3-18.7H64C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H87.7 384z" }) }));
23
+ }, [icon]);
24
+ return (0, jsx_runtime_1.jsx)(InlineAction_1.InlineAction, { renderAction: renderAction, onClick: onClick });
21
25
  };
22
26
  exports.RenderQueueOpenInFinderItem = RenderQueueOpenInFinderItem;
@@ -26,8 +26,12 @@ const RenderQueueRemoveItem = ({ job }) => {
26
26
  const icon = (0, react_1.useMemo)(() => {
27
27
  return {
28
28
  height: 16,
29
+ color: 'currentColor',
29
30
  };
30
31
  }, []);
31
- return ((0, jsx_runtime_1.jsx)(InlineAction_1.InlineAction, { onClick: onClick, children: (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: "currentColor", 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" }) }) }));
32
+ const renderAction = (0, react_1.useCallback)((color) => {
33
+ 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" }) }));
34
+ }, [icon]);
35
+ return (0, jsx_runtime_1.jsx)(InlineAction_1.InlineAction, { renderAction: renderAction, onClick: onClick });
32
36
  };
33
37
  exports.RenderQueueRemoveItem = RenderQueueRemoveItem;
@@ -15,8 +15,12 @@ const RenderQueueRepeatItem = ({ job }) => {
15
15
  const icon = (0, react_1.useMemo)(() => {
16
16
  return {
17
17
  height: 12,
18
+ color: 'currentColor',
18
19
  };
19
20
  }, []);
20
- return ((0, jsx_runtime_1.jsx)(InlineAction_1.InlineAction, { onClick: onClick, children: (0, jsx_runtime_1.jsx)("svg", { style: icon, viewBox: "0 0 512 512", children: (0, jsx_runtime_1.jsx)("path", { fill: "currentcolor", 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" }) }) }));
21
+ const renderAction = (0, react_1.useCallback)((color) => {
22
+ 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" }) }));
23
+ }, [icon]);
24
+ return (0, jsx_runtime_1.jsx)(InlineAction_1.InlineAction, { onClick: onClick, renderAction: renderAction });
21
25
  };
22
26
  exports.RenderQueueRepeatItem = RenderQueueRepeatItem;
@@ -1,6 +1,7 @@
1
1
  import type { AudioCodec, Codec, PixelFormat, ProResProfile, StillImageFormat, VideoImageFormat } from '@remotion/renderer';
2
2
  import type { RenderJob } from '../../../preview-server/render-queue/job';
3
3
  import type { RequiredChromiumOptions } from '../../../required-chromium-options';
4
+ import type { EnumPath } from '../RenderModal/SchemaEditor/extract-enum-json-paths';
4
5
  export declare const addStillRenderJob: ({ compositionId, outName, imageFormat, jpegQuality, frame, scale, verbose, chromiumOptions, delayRenderTimeout, envVariables, inputProps, }: {
5
6
  compositionId: string;
6
7
  outName: string;
@@ -12,7 +13,7 @@ export declare const addStillRenderJob: ({ compositionId, outName, imageFormat,
12
13
  chromiumOptions: RequiredChromiumOptions;
13
14
  delayRenderTimeout: number;
14
15
  envVariables: Record<string, string>;
15
- inputProps: unknown;
16
+ inputProps: Record<string, unknown>;
16
17
  }) => Promise<undefined>;
17
18
  export declare const addVideoRenderJob: ({ compositionId, outName, imageFormat, jpegQuality, scale, verbose, codec, concurrency, crf, startFrame, endFrame, muted, enforceAudioTrack, proResProfile, pixelFormat, audioBitrate, videoBitrate, everyNthFrame, numberOfGifLoops, delayRenderTimeout, audioCodec, disallowParallelEncoding, chromiumOptions, envVariables, inputProps, }: {
18
19
  compositionId: string;
@@ -39,7 +40,7 @@ export declare const addVideoRenderJob: ({ compositionId, outName, imageFormat,
39
40
  disallowParallelEncoding: boolean;
40
41
  chromiumOptions: RequiredChromiumOptions;
41
42
  envVariables: Record<string, string>;
42
- inputProps: unknown;
43
+ inputProps: Record<string, unknown>;
43
44
  }) => Promise<undefined>;
44
45
  export declare const unsubscribeFromFileExistenceWatcher: ({ file, clientId, }: {
45
46
  file: string;
@@ -54,5 +55,5 @@ export declare const openInFileExplorer: ({ directory }: {
54
55
  }) => Promise<void>;
55
56
  export declare const removeRenderJob: (job: RenderJob) => Promise<undefined>;
56
57
  export declare const cancelRenderJob: (job: RenderJob) => Promise<import("../../../preview-server/render-queue/job").CancelRenderResponse>;
57
- export declare const updateDefaultProps: (compositionId: string, defaultProps: unknown) => Promise<void>;
58
+ export declare const updateDefaultProps: (compositionId: string, defaultProps: unknown, enumPaths: EnumPath[]) => Promise<import("../../../preview-server/render-queue/job").UpdateDefaultPropsResponse>;
58
59
  export declare const canUpdateDefaultProps: (compositionId: string) => Promise<import("../../../preview-server/render-queue/job").CanUpdateDefaultPropsResponse>;
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.canUpdateDefaultProps = exports.updateDefaultProps = exports.cancelRenderJob = exports.removeRenderJob = exports.openInFileExplorer = exports.subscribeToFileExistenceWatcher = exports.unsubscribeFromFileExistenceWatcher = exports.addVideoRenderJob = exports.addStillRenderJob = void 0;
4
- const date_serialization_1 = require("../RenderModal/SchemaEditor/date-serialization");
4
+ const input_props_serialization_1 = require("../RenderModal/SchemaEditor/input-props-serialization");
5
5
  const callApi = (endpoint, body) => {
6
6
  return new Promise((resolve, reject) => {
7
7
  fetch(endpoint, {
@@ -104,10 +104,15 @@ const cancelRenderJob = (job) => {
104
104
  });
105
105
  };
106
106
  exports.cancelRenderJob = cancelRenderJob;
107
- const updateDefaultProps = (compositionId, defaultProps) => {
107
+ const updateDefaultProps = (compositionId, defaultProps, enumPaths) => {
108
108
  return callApi('/api/update-default-props', {
109
109
  compositionId,
110
- defaultProps: (0, date_serialization_1.serializeJSONWithDate)(defaultProps, undefined),
110
+ defaultProps: (0, input_props_serialization_1.serializeJSONWithDate)({
111
+ data: defaultProps,
112
+ indent: undefined,
113
+ staticBase: window.remotion_staticBase,
114
+ }).serializedString,
115
+ enumPaths,
111
116
  });
112
117
  };
113
118
  exports.updateDefaultProps = updateDefaultProps;
@@ -6,6 +6,7 @@ const react_1 = require("react");
6
6
  const client_id_1 = require("../../helpers/client-id");
7
7
  const colors_1 = require("../../helpers/colors");
8
8
  const layout_1 = require("../layout");
9
+ const is_menu_item_1 = require("../Menu/is-menu-item");
9
10
  const context_1 = require("./context");
10
11
  const RenderQueueItem_1 = require("./RenderQueueItem");
11
12
  const separatorStyle = {
@@ -25,9 +26,15 @@ const explainer = {
25
26
  justifyContent: 'center',
26
27
  alignItems: 'center',
27
28
  textAlign: 'center',
29
+ background: colors_1.BACKGROUND,
30
+ };
31
+ const renderQueue = {
32
+ background: colors_1.BACKGROUND,
33
+ flex: 1,
34
+ overflowY: 'auto',
28
35
  };
29
36
  const RenderQueue = () => {
30
- const connectionStatus = (0, react_1.useContext)(client_id_1.PreviewServerConnectionCtx).type;
37
+ const connectionStatus = (0, react_1.useContext)(client_id_1.StudioServerConnectionCtx).type;
31
38
  const { jobs } = (0, react_1.useContext)(context_1.RenderQueueContext);
32
39
  const jobCount = jobs.length;
33
40
  if (connectionStatus === 'disconnected') {
@@ -36,7 +43,7 @@ const RenderQueue = () => {
36
43
  if (jobCount === 0) {
37
44
  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 })] }));
38
45
  }
39
- return ((0, jsx_runtime_1.jsx)("div", { children: jobs.map((j, index) => {
46
+ return ((0, jsx_runtime_1.jsx)("div", { style: renderQueue, className: ['css-reset', is_menu_item_1.VERTICAL_SCROLLBAR_CLASSNAME].join(' '), children: jobs.map((j, index) => {
40
47
  return ((0, jsx_runtime_1.jsx)("div", { style: index === jobs.length - 1 ? undefined : separatorStyle, children: (0, jsx_runtime_1.jsx)(RenderQueueItem_1.RenderQueueItem, { job: j }) }, j.id));
41
48
  }) }));
42
49
  };
@@ -4,7 +4,8 @@ exports.RightPanel = exports.rightSidebarTabs = exports.persistSelectedPanel = v
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 RenderModalData_1 = require("./RenderModal/RenderModalData");
7
+ const colors_1 = require("../helpers/colors");
8
+ const DataEditor_1 = require("./RenderModal/DataEditor");
8
9
  const RenderQueue_1 = require("./RenderQueue");
9
10
  const RendersTab_1 = require("./RendersTab");
10
11
  const Tabs_1 = require("./Tabs");
@@ -16,16 +17,16 @@ const container = {
16
17
  flexDirection: 'column',
17
18
  };
18
19
  const PropsEditor = ({ composition }) => {
19
- var _a;
20
20
  const { props, updateProps } = (0, react_1.useContext)(remotion_1.Internals.EditorPropsContext);
21
21
  const setInputProps = (0, react_1.useCallback)((newProps) => {
22
22
  updateProps({
23
23
  id: composition.id,
24
24
  defaultProps: composition.defaultProps,
25
- newProps: newProps,
25
+ newProps,
26
26
  });
27
27
  }, [composition.defaultProps, composition.id, updateProps]);
28
- return ((0, jsx_runtime_1.jsx)(RenderModalData_1.RenderModalData, { composition: composition, inputProps: (_a = props[composition.id]) !== null && _a !== void 0 ? _a : composition.defaultProps, setInputProps: setInputProps, compact: true, mayShowSaveButton: true }));
28
+ const actualProps = (0, react_1.useMemo)(() => { var _a, _b; return (_b = (_a = props[composition.id]) !== null && _a !== void 0 ? _a : composition.defaultProps) !== null && _b !== void 0 ? _b : {}; }, [composition.defaultProps, composition.id, props]);
29
+ return ((0, jsx_runtime_1.jsx)(DataEditor_1.DataEditor, { unresolvedComposition: composition, inputProps: actualProps, setInputProps: setInputProps, compact: true, mayShowSaveButton: true, propsEditType: "default-props" }, composition.id));
29
30
  };
30
31
  const localStorageKey = 'remotion.sidebarPanel';
31
32
  const getSelectedPanel = () => {
@@ -35,7 +36,9 @@ const getSelectedPanel = () => {
35
36
  }
36
37
  return 'input-props';
37
38
  };
38
- const tabsContainer = {};
39
+ const tabsContainer = {
40
+ backgroundColor: colors_1.BACKGROUND,
41
+ };
39
42
  const persistSelectedPanel = (panel) => {
40
43
  localStorage.setItem(localStorageKey, panel);
41
44
  };
@@ -7,35 +7,36 @@ const ShortcutHint_1 = require("../../preview-server/error-overlay/remotion-over
7
7
  const use_keybinding_1 = require("../helpers/use-keybinding");
8
8
  const sidebar_1 = require("../state/sidebar");
9
9
  const InlineAction_1 = require("./InlineAction");
10
- const layout_1 = require("./layout");
11
10
  const TopPanel_1 = require("./TopPanel");
12
11
  const style = {
13
12
  width: 16,
14
13
  height: 16,
15
- border: '1px solid white',
14
+ minWidth: 16,
15
+ border: '1px solid currentColor',
16
16
  borderRadius: 3,
17
+ color: 'currentColor',
17
18
  position: 'relative',
18
19
  };
19
20
  const SidebarCollapserControls = () => {
20
21
  const { setSidebarCollapsedState, sidebarCollapsedStateRight } = (0, react_1.useContext)(sidebar_1.SidebarContext);
21
22
  const keybindings = (0, use_keybinding_1.useKeybinding)();
22
23
  const leftSidebarStatus = (0, TopPanel_1.useResponsiveSidebarStatus)();
23
- const leftIcon = (0, react_1.useMemo)(() => {
24
+ const leftIcon = (0, react_1.useCallback)((color) => {
24
25
  return {
25
26
  width: '35%',
26
27
  height: '100%',
27
- borderRight: '1px solid white',
28
- background: leftSidebarStatus === 'expanded' ? 'white' : 'transparent',
28
+ borderRight: '1px solid ' + color,
29
+ background: leftSidebarStatus === 'expanded' ? color : 'transparent',
29
30
  };
30
31
  }, [leftSidebarStatus]);
31
- const rightIcon = (0, react_1.useMemo)(() => {
32
+ const rightIcon = (0, react_1.useCallback)((color) => {
32
33
  return {
33
34
  width: '35%',
34
35
  height: '100%',
35
36
  right: 0,
36
37
  position: 'absolute',
37
- borderLeft: '1px solid white',
38
- background: sidebarCollapsedStateRight === 'expanded' ? 'white' : 'transparent',
38
+ borderLeft: '1px solid ' + color,
39
+ background: sidebarCollapsedStateRight === 'expanded' ? color : 'transparent',
39
40
  };
40
41
  }, [sidebarCollapsedStateRight]);
41
42
  const toggleLeft = (0, react_1.useCallback)(() => {
@@ -117,6 +118,18 @@ const SidebarCollapserControls = () => {
117
118
  const toggleRightTooltip = (0, use_keybinding_1.areKeyboardShortcutsDisabled)()
118
119
  ? 'Toggle Right Sidebar'
119
120
  : `Toggle Right Sidebar (${ShortcutHint_1.cmdOrCtrlCharacter}+J)`;
120
- return ((0, jsx_runtime_1.jsxs)(layout_1.Row, { children: [(0, jsx_runtime_1.jsx)(InlineAction_1.InlineAction, { onClick: toggleLeft, children: (0, jsx_runtime_1.jsx)("div", { style: style, title: toggleLeftTooltip, children: (0, jsx_runtime_1.jsx)("div", { style: leftIcon }) }) }), (0, jsx_runtime_1.jsx)(InlineAction_1.InlineAction, { onClick: toggleRight, children: (0, jsx_runtime_1.jsx)("div", { style: style, title: toggleRightTooltip, children: (0, jsx_runtime_1.jsx)("div", { style: rightIcon }) }) })] }));
121
+ const colorStyle = (0, react_1.useCallback)((color) => {
122
+ return {
123
+ ...style,
124
+ color,
125
+ };
126
+ }, []);
127
+ const toggleLeftAction = (0, react_1.useCallback)((color) => {
128
+ return ((0, jsx_runtime_1.jsx)("div", { style: colorStyle(color), title: toggleLeftTooltip, children: (0, jsx_runtime_1.jsx)("div", { style: leftIcon(color) }) }));
129
+ }, [colorStyle, leftIcon, toggleLeftTooltip]);
130
+ const toggleRightAction = (0, react_1.useCallback)((color) => {
131
+ return ((0, jsx_runtime_1.jsx)("div", { style: colorStyle(color), title: toggleRightTooltip, children: (0, jsx_runtime_1.jsx)("div", { style: rightIcon(color) }) }));
132
+ }, [colorStyle, rightIcon, toggleRightTooltip]);
133
+ return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(InlineAction_1.InlineAction, { onClick: toggleLeft, renderAction: toggleLeftAction }), (0, jsx_runtime_1.jsx)(InlineAction_1.InlineAction, { onClick: toggleRight, renderAction: toggleRightAction })] }));
121
134
  };
122
135
  exports.SidebarCollapserControls = SidebarCollapserControls;
@@ -0,0 +1,6 @@
1
+ import React from 'react';
2
+ import type { AnyCompMetadata } from 'remotion';
3
+ export declare const SidebarRenderButton: React.FC<{
4
+ composition: AnyCompMetadata;
5
+ visible: boolean;
6
+ }>;
@@ -1,74 +1,55 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.RenderButton = void 0;
3
+ exports.SidebarRenderButton = void 0;
4
4
  const jsx_runtime_1 = require("react/jsx-runtime");
5
5
  const client_1 = require("@remotion/renderer/client");
6
6
  const react_1 = require("react");
7
7
  const remotion_1 = require("remotion");
8
8
  const get_default_out_name_1 = require("../../get-default-out-name");
9
- const Button_1 = require("../../preview-server/error-overlay/remotion-overlay/Button");
10
9
  const get_default_video_contexts_1 = require("../../preview-server/render-queue/get-default-video-contexts");
11
10
  const client_id_1 = require("../helpers/client-id");
12
- const use_keybinding_1 = require("../helpers/use-keybinding");
13
11
  const render_1 = require("../icons/render");
14
12
  const modals_1 = require("../state/modals");
15
- const layout_1 = require("./layout");
16
- const button = {
17
- paddingLeft: 7,
18
- paddingRight: 7,
19
- paddingTop: 7,
20
- paddingBottom: 7,
21
- };
22
- const label = {
23
- fontSize: 14,
24
- };
25
- const RenderButton = () => {
13
+ const InlineAction_1 = require("./InlineAction");
14
+ const SidebarRenderButton = ({ composition, visible }) => {
26
15
  const { setSelectedModal } = (0, react_1.useContext)(modals_1.ModalsContext);
27
- const { type } = (0, react_1.useContext)(client_id_1.PreviewServerConnectionCtx);
28
- const shortcut = (0, use_keybinding_1.areKeyboardShortcutsDisabled)() ? '' : '(R)';
29
- const tooltip = type === 'connected'
30
- ? 'Export the current composition ' + shortcut
31
- : 'Connect to the preview server to render';
32
16
  const iconStyle = (0, react_1.useMemo)(() => {
33
17
  return {
34
18
  style: {
35
- height: 16,
19
+ height: 12,
36
20
  },
37
21
  };
38
22
  }, []);
39
- const video = remotion_1.Internals.useVideo();
40
- const frame = (0, remotion_1.useCurrentFrame)();
23
+ const connectionStatus = (0, react_1.useContext)(client_id_1.StudioServerConnectionCtx).type;
41
24
  const { props } = (0, react_1.useContext)(remotion_1.Internals.EditorPropsContext);
42
- const onClick = (0, react_1.useCallback)(() => {
43
- var _a, _b, _c;
44
- if (!video) {
45
- return null;
46
- }
47
- const isVideo = video.durationInFrames > 1;
25
+ const isVideo = composition.durationInFrames > 1;
26
+ const onClick = (0, react_1.useCallback)((e) => {
27
+ var _a;
48
28
  const defaults = window.remotion_renderDefaults;
49
29
  if (!defaults) {
50
- throw new TypeError('Expected defaults');
30
+ throw new Error('expected defaults');
51
31
  }
32
+ e.stopPropagation();
52
33
  const { initialAudioCodec, initialRenderType, initialVideoCodec } = (0, get_default_video_contexts_1.getDefaultCodecs)({
53
34
  defaultCodec: defaults.codec,
54
35
  isStill: !isVideo,
55
36
  });
56
37
  setSelectedModal({
57
38
  type: 'render',
58
- compositionId: video.id,
59
- initialFrame: frame,
60
- initialStillImageFormat: defaults.stillImageFormat,
39
+ compositionId: composition.id,
40
+ initialFrame: 0,
61
41
  initialVideoImageFormat: defaults.videoImageFormat,
42
+ initialStillImageFormat: defaults.stillImageFormat,
43
+ initialJpegQuality: defaults.jpegQuality,
44
+ initialScale: defaults.scale,
45
+ initialVerbose: defaults.logLevel === 'verbose',
62
46
  initialOutName: (0, get_default_out_name_1.getDefaultOutLocation)({
63
- compositionName: video.id,
47
+ compositionName: composition.id,
64
48
  defaultExtension: isVideo
65
49
  ? client_1.BrowserSafeApis.getFileExtensionFromCodec(initialVideoCodec, defaults.audioCodec)
66
50
  : defaults.stillImageFormat,
67
51
  type: 'asset',
68
52
  }),
69
- initialJpegQuality: defaults.jpegQuality,
70
- initialScale: (_b = (_a = window.remotion_renderDefaults) === null || _a === void 0 ? void 0 : _a.scale) !== null && _b !== void 0 ? _b : 1,
71
- initialVerbose: defaults.logLevel === 'verbose',
72
53
  initialVideoCodecForAudioTab: initialAudioCodec,
73
54
  initialRenderType,
74
55
  initialVideoCodecForVideoTab: initialVideoCodec,
@@ -90,12 +71,17 @@ const RenderButton = () => {
90
71
  initialOpenGlRenderer: defaults.openGlRenderer,
91
72
  initialHeadless: defaults.headless,
92
73
  initialIgnoreCertificateErrors: defaults.ignoreCertificateErrors,
93
- defaultProps: (_c = props[video.id]) !== null && _c !== void 0 ? _c : video.defaultProps,
74
+ defaultProps: (_a = props[composition.id]) !== null && _a !== void 0 ? _a : composition.defaultProps,
75
+ inFrameMark: null,
76
+ outFrameMark: null,
94
77
  });
95
- }, [video, setSelectedModal, frame, props]);
96
- if (!video) {
78
+ }, [composition.defaultProps, composition.id, isVideo, props, setSelectedModal]);
79
+ const renderAction = (0, react_1.useCallback)((color) => {
80
+ return (0, jsx_runtime_1.jsx)(render_1.ThinRenderIcon, { fill: color, svgProps: iconStyle });
81
+ }, [iconStyle]);
82
+ if (!visible || connectionStatus !== 'connected') {
97
83
  return null;
98
84
  }
99
- return ((0, jsx_runtime_1.jsx)(Button_1.Button, { id: "render-modal-button", title: tooltip, onClick: onClick, buttonContainerStyle: button, children: (0, jsx_runtime_1.jsxs)(layout_1.Row, { align: "center", children: [(0, jsx_runtime_1.jsx)(render_1.RenderIcon, { svgProps: iconStyle }), (0, jsx_runtime_1.jsx)(layout_1.Spacing, { x: 1 }), (0, jsx_runtime_1.jsx)("span", { style: label, children: "Render" })] }) }));
85
+ return (0, jsx_runtime_1.jsx)(InlineAction_1.InlineAction, { renderAction: renderAction, onClick: onClick });
100
86
  };
101
- exports.RenderButton = RenderButton;
87
+ exports.SidebarRenderButton = SidebarRenderButton;
@@ -0,0 +1,5 @@
1
+ import React from 'react';
2
+ export declare const Spinner: React.FC<{
3
+ size: number;
4
+ duration: number;
5
+ }>;
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Spinner = void 0;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const react_1 = require("react");
6
+ const colors_1 = require("../helpers/colors");
7
+ const viewBox = 100;
8
+ const lines = 6;
9
+ const className = '__remotion_spinner_line';
10
+ const remotionSpinnerAnimation = '__remotion_spinner_animation';
11
+ // Generated from https://github.com/remotion-dev/template-next/commit/9282c93f7c51ada31a42e18a94680fa09a14eee3
12
+ const translated = 'M 44 0 L 50 0 a 6 6 0 0 1 6 6 L 56 26 a 6 6 0 0 1 -6 6 L 50 32 a 6 6 0 0 1 -6 -6 L 44 6 a 6 6 0 0 1 6 -6 Z';
13
+ const Spinner = ({ size, duration }) => {
14
+ const style = (0, react_1.useMemo)(() => {
15
+ return {
16
+ width: size,
17
+ height: size,
18
+ };
19
+ }, [size]);
20
+ return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)("style", { type: "text/css", children: `
21
+ @keyframes ${remotionSpinnerAnimation} {
22
+ 0% {
23
+ opacity: 1;
24
+ }
25
+ 100% {
26
+ opacity: 0.15;
27
+ }
28
+ }
29
+
30
+ .${className} {
31
+ animation: ${remotionSpinnerAnimation} ${duration}s linear infinite;
32
+ }
33
+ ` }), (0, jsx_runtime_1.jsx)("svg", { style: style, viewBox: `0 0 ${viewBox} ${viewBox}`, children: new Array(lines).fill(true).map((_, index) => {
34
+ return ((0, jsx_runtime_1.jsx)("path", { className: className, style: {
35
+ rotate: `${(index * Math.PI * 2) / lines}rad`,
36
+ transformOrigin: 'center center',
37
+ animationDelay: `${index * (duration / lines) - duration}s`,
38
+ }, d: translated, fill: colors_1.LIGHT_TEXT }, index));
39
+ }) })] }));
40
+ };
41
+ exports.Spinner = Spinner;
@@ -39,20 +39,18 @@ const Tab = ({ children, onClick, style, selected }) => {
39
39
  const onPointerLeave = (0, react_1.useCallback)(() => {
40
40
  setHovered(false);
41
41
  }, []);
42
- const definiteStyle = (0, react_1.useMemo)(() => {
43
- return {
44
- ...selectorButton,
45
- backgroundColor: selected
46
- ? 'transparent'
47
- : hovered
48
- ? colors_1.CLEAR_HOVER
49
- : colors_1.INPUT_BACKGROUND,
50
- color: selected ? 'white' : colors_1.LIGHT_TEXT,
51
- borderTop: selected ? '2px solid var(--blue)' : '2px solid transparent',
52
- boxShadow: selected ? 'none' : undefined,
53
- ...style,
54
- };
55
- }, [hovered, selected, style]);
42
+ const definiteStyle = (0, react_1.useMemo)(() => ({
43
+ ...selectorButton,
44
+ backgroundColor: selected
45
+ ? colors_1.BACKGROUND
46
+ : hovered
47
+ ? colors_1.CLEAR_HOVER
48
+ : colors_1.INPUT_BACKGROUND,
49
+ color: selected ? 'white' : colors_1.LIGHT_TEXT,
50
+ borderTop: selected ? '2px solid ' + colors_1.BLUE : '2px solid transparent',
51
+ boxShadow: selected ? 'none' : undefined,
52
+ ...style,
53
+ }), [hovered, selected, style]);
56
54
  return ((0, jsx_runtime_1.jsx)("button", { style: definiteStyle, type: "button", onClick: onClick, tabIndex: tabIndex, onPointerLeave: onPointerLeave, onPointerEnter: onPointerEnter, children: children }));
57
55
  };
58
56
  exports.Tab = Tab;
@@ -5,6 +5,7 @@ const jsx_runtime_1 = require("react/jsx-runtime");
5
5
  const react_1 = require("react");
6
6
  const remotion_1 = require("remotion");
7
7
  const calculate_timeline_1 = require("../../helpers/calculate-timeline");
8
+ const colors_1 = require("../../helpers/colors");
8
9
  const timeline_layout_1 = require("../../helpers/timeline-layout");
9
10
  const timeline_ref_1 = require("../../state/timeline-ref");
10
11
  const SplitterContainer_1 = require("../Splitter/SplitterContainer");
@@ -28,6 +29,7 @@ const container = {
28
29
  display: 'flex',
29
30
  height: 0,
30
31
  overflowY: 'auto',
32
+ backgroundColor: colors_1.BACKGROUND,
31
33
  };
32
34
  const noop = () => undefined;
33
35
  const Timeline = () => {
@@ -84,7 +86,7 @@ const Timeline = () => {
84
86
  };
85
87
  }, [hasBeenCut, shown.length]);
86
88
  if (!videoConfig) {
87
- return null;
89
+ return (0, jsx_runtime_1.jsx)("div", { style: container, className: "css-reset" });
88
90
  }
89
91
  return ((0, jsx_runtime_1.jsx)("div", { ref: timeline_refs_1.timelineVerticalScroll, style: container, className: "css-reset", children: (0, jsx_runtime_1.jsx)("div", { style: inner, children: (0, jsx_runtime_1.jsxs)(SplitterContainer_1.SplitterContainer, { orientation: "vertical", defaultFlex: 0.2, id: "names-to-timeline", maxFlex: 0.5, minFlex: 0.15, children: [(0, jsx_runtime_1.jsx)(SplitterElement_1.SplitterElement, { type: "flexer", children: (0, jsx_runtime_1.jsx)(TimelineList_1.TimelineList, { dispatchStateChange: dispatch, viewState: state, timeline: shown }) }), (0, jsx_runtime_1.jsx)(SplitterHandle_1.SplitterHandle, { onCollapse: noop, allowToCollapse: "none" }), (0, jsx_runtime_1.jsx)(SplitterElement_1.SplitterElement, { type: "anti-flexer", children: (0, jsx_runtime_1.jsxs)(TimelineScrollable_1.TimelineScrollable, { children: [(0, jsx_runtime_1.jsx)(TimelineTracks_1.TimelineTracks, { viewState: state, timeline: shown, fps: videoConfig.fps, hasBeenCut: hasBeenCut }), (0, jsx_runtime_1.jsx)(TimelineInOutPointer_1.TimelineInOutPointer, {}), (0, jsx_runtime_1.jsx)(TimelineDragHandler_1.TimelineDragHandler, {}), (0, jsx_runtime_1.jsx)(TimelineSlider_1.TimelineSlider, {}), (0, jsx_runtime_1.jsx)(TimelinePlayCursorSyncer_1.TimelinePlayCursorSyncer, {})] }) })] }) }) }));
90
92
  };