@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
@@ -12,8 +12,9 @@ const TimelinePlayCursorSyncer = () => {
12
12
  var _a, _b, _c;
13
13
  const video = remotion_1.Internals.useVideo();
14
14
  const timelineContext = (0, react_1.useContext)(remotion_1.Internals.Timeline.TimelineContext);
15
+ const timelinePosition = remotion_1.Internals.Timeline.useTimelinePosition();
15
16
  const { zoom } = (0, react_1.useContext)(timeline_zoom_1.TimelineZoomCtx);
16
- (0, imperative_state_1.setCurrentFrame)(timelineContext.frame);
17
+ (0, imperative_state_1.setCurrentFrame)(timelinePosition);
17
18
  (0, imperative_state_1.setCurrentZoom)(zoom);
18
19
  (0, imperative_state_1.setCurrentDuration)((_a = video === null || video === void 0 ? void 0 : video.durationInFrames) !== null && _a !== void 0 ? _a : 1);
19
20
  (0, imperative_state_1.setCurrentFps)((_b = video === null || video === void 0 ? void 0 : video.fps) !== null && _b !== void 0 ? _b : 1);
@@ -31,9 +32,9 @@ const TimelinePlayCursorSyncer = () => {
31
32
  (0, timeline_scroll_logic_1.ensureFrameIsInViewport)({
32
33
  direction: timelineContext.playbackRate > 0 ? 'page-right' : 'page-left',
33
34
  durationInFrames: video.durationInFrames,
34
- frame: timelineContext.frame,
35
+ frame: timelinePosition,
35
36
  });
36
- }, [playing, timelineContext, video]);
37
+ }, [playing, timelineContext, timelinePosition, video]);
37
38
  /**
38
39
  * Restore state if `enter` is being pressed
39
40
  */
@@ -5,17 +5,17 @@ const jsx_runtime_1 = require("react/jsx-runtime");
5
5
  const player_1 = require("@remotion/player");
6
6
  const react_1 = require("react");
7
7
  const remotion_1 = require("remotion");
8
+ const colors_1 = require("../../helpers/colors");
8
9
  const get_timeline_sequence_layout_1 = require("../../helpers/get-timeline-sequence-layout");
9
10
  const timeline_layout_1 = require("../../helpers/timeline-layout");
10
11
  const AudioWaveform_1 = require("../AudioWaveform");
11
12
  const LoopedTimelineIndicators_1 = require("./LoopedTimelineIndicators");
12
13
  const timeline_refs_1 = require("./timeline-refs");
13
14
  const TimelineVideoInfo_1 = require("./TimelineVideoInfo");
14
- const SEQUENCE_GRADIENT = 'var(--blue)';
15
15
  const AUDIO_GRADIENT = 'linear-gradient(rgb(16 171 58), rgb(43 165 63) 60%)';
16
16
  const VIDEO_GRADIENT = 'linear-gradient(to top, #8e44ad, #9b59b6)';
17
17
  const TimelineSequence = ({ s, fps }) => {
18
- var _a, _b;
18
+ var _a;
19
19
  const size = player_1.PlayerInternals.useElementSize(timeline_refs_1.sliderAreaRef, {
20
20
  triggerOnWindowResize: false,
21
21
  shouldApplyCssTransforms: true,
@@ -30,8 +30,10 @@ const TimelineSequence = ({ s, fps }) => {
30
30
  throw new TypeError('Expected video config');
31
31
  }
32
32
  const { marginLeft, width } = (0, get_timeline_sequence_layout_1.getTimelineSequenceLayout)({
33
- durationInFrames: s.duration * ((_b = s.showLoopTimesInTimeline) !== null && _b !== void 0 ? _b : 1),
34
- startFrom: s.from,
33
+ durationInFrames: s.loopDisplay
34
+ ? s.loopDisplay.durationInFrames * s.loopDisplay.numberOfTimes
35
+ : s.duration,
36
+ startFrom: s.loopDisplay ? s.from + s.loopDisplay.startOffset : s.from,
35
37
  startFromMedia: s.type === 'sequence' ? 0 : s.startMediaFrom,
36
38
  maxMediaDuration,
37
39
  video,
@@ -43,7 +45,7 @@ const TimelineSequence = ({ s, fps }) => {
43
45
  ? AUDIO_GRADIENT
44
46
  : s.type === 'video'
45
47
  ? VIDEO_GRADIENT
46
- : SEQUENCE_GRADIENT,
48
+ : colors_1.BLUE,
47
49
  border: get_timeline_sequence_layout_1.SEQUENCE_BORDER_WIDTH + 'px solid rgba(255, 255, 255, 0.2)',
48
50
  borderRadius: 4,
49
51
  position: 'absolute',
@@ -55,6 +57,6 @@ const TimelineSequence = ({ s, fps }) => {
55
57
  overflow: 'hidden',
56
58
  };
57
59
  }, [marginLeft, s.type, width]);
58
- return ((0, jsx_runtime_1.jsxs)("div", { style: style, title: s.displayName, children: [s.type === 'audio' ? ((0, jsx_runtime_1.jsx)(AudioWaveform_1.AudioWaveform, { src: s.src, doesVolumeChange: s.doesVolumeChange, visualizationWidth: width, startFrom: s.startMediaFrom, durationInFrames: s.duration, fps: fps, volume: s.volume, setMaxMediaDuration: setMaxMediaDuration, playbackRate: s.playbackRate })) : null, s.type === 'video' ? (0, jsx_runtime_1.jsx)(TimelineVideoInfo_1.TimelineVideoInfo, { src: s.src }) : null, s.showLoopTimesInTimeline === undefined ? null : ((0, jsx_runtime_1.jsx)(LoopedTimelineIndicators_1.LoopedTimelineIndicator, { loops: s.showLoopTimesInTimeline }))] }, s.id));
60
+ return ((0, jsx_runtime_1.jsxs)("div", { style: style, title: s.displayName, children: [s.type === 'audio' ? ((0, jsx_runtime_1.jsx)(AudioWaveform_1.AudioWaveform, { src: s.src, doesVolumeChange: s.doesVolumeChange, visualizationWidth: width, startFrom: s.startMediaFrom, durationInFrames: s.duration, fps: fps, volume: s.volume, setMaxMediaDuration: setMaxMediaDuration, playbackRate: s.playbackRate })) : null, s.type === 'video' ? (0, jsx_runtime_1.jsx)(TimelineVideoInfo_1.TimelineVideoInfo, { src: s.src }) : null, s.loopDisplay === undefined ? null : ((0, jsx_runtime_1.jsx)(LoopedTimelineIndicators_1.LoopedTimelineIndicator, { loops: s.loopDisplay.numberOfTimes }))] }, s.id));
59
61
  };
60
62
  exports.TimelineSequence = TimelineSequence;
@@ -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 truthy_1 = require("../../truthy");
8
+ const colors_1 = require("../helpers/colors");
8
9
  const is_current_selected_still_1 = require("../helpers/is-current-selected-still");
9
10
  const use_keybinding_1 = require("../helpers/use-keybinding");
10
11
  const timelineInOutPointer_1 = require("../icons/timelineInOutPointer");
@@ -218,12 +219,9 @@ const TimelineInOutPointToggle = () => {
218
219
  },
219
220
  };
220
221
  }, [onInMark, onInOutClear, onOutMark, setInAndOutFrames]);
221
- if (!videoConfig) {
222
- return null;
223
- }
224
222
  if (isStill) {
225
223
  return null;
226
224
  }
227
- return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(ControlButton_1.ControlButton, { title: getTooltipText('In', 'I'), "aria-label": getTooltipText('In', 'I'), onClick: (e) => onInMark(e), onContextMenu: clearInMark, disabled: timelinePosition === 0, children: (0, jsx_runtime_1.jsx)(timelineInOutPointer_1.TimelineInPointer, { color: inFrame === null ? 'white' : 'var(--blue)', style: style }) }), (0, jsx_runtime_1.jsx)(ControlButton_1.ControlButton, { title: getTooltipText('Out', 'O'), "aria-label": getTooltipText('Out', 'O'), onClick: onOutMark, onContextMenu: clearOutMark, disabled: timelinePosition === videoConfig.durationInFrames - 1, children: (0, jsx_runtime_1.jsx)(timelineInOutPointer_1.TimelineOutPointer, { color: outFrame === null ? 'white' : 'var(--blue)', style: style }) })] }));
225
+ return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(ControlButton_1.ControlButton, { title: getTooltipText('In', 'I'), "aria-label": getTooltipText('In', 'I'), onClick: (e) => onInMark(e), onContextMenu: clearInMark, disabled: !videoConfig || timelinePosition === 0, children: (0, jsx_runtime_1.jsx)(timelineInOutPointer_1.TimelineInPointer, { color: inFrame === null ? 'white' : colors_1.BLUE, style: style }) }), (0, jsx_runtime_1.jsx)(ControlButton_1.ControlButton, { title: getTooltipText('Out', 'O'), "aria-label": getTooltipText('Out', 'O'), onClick: onOutMark, onContextMenu: clearOutMark, disabled: !videoConfig || timelinePosition === videoConfig.durationInFrames - 1, children: (0, jsx_runtime_1.jsx)(timelineInOutPointer_1.TimelineOutPointer, { color: outFrame === null ? 'white' : colors_1.BLUE, style: style }) })] }));
228
226
  };
229
227
  exports.TimelineInOutPointToggle = TimelineInOutPointToggle;
@@ -5,7 +5,7 @@ const jsx_runtime_1 = require("react/jsx-runtime");
5
5
  const react_1 = require("react");
6
6
  const use_breakpoint_1 = require("../helpers/use-breakpoint");
7
7
  const sidebar_1 = require("../state/sidebar");
8
- const Canvas_1 = require("./Canvas");
8
+ const CanvasOrLoading_1 = require("./CanvasOrLoading");
9
9
  const CompositionSelector_1 = require("./CompositionSelector");
10
10
  const CurrentCompositionSideEffects_1 = require("./CurrentCompositionSideEffects");
11
11
  const InitialCompositionLoader_1 = require("./InitialCompositionLoader");
@@ -66,6 +66,6 @@ const TopPanel = () => {
66
66
  const onCollapseRight = (0, react_1.useCallback)(() => {
67
67
  setSidebarCollapsedState({ left: null, right: 'collapsed' });
68
68
  }, [setSidebarCollapsedState]);
69
- return ((0, jsx_runtime_1.jsxs)("div", { style: container, children: [(0, jsx_runtime_1.jsx)(InitialCompositionLoader_1.InitialCompositionLoader, {}), (0, jsx_runtime_1.jsx)(MenuToolbar_1.MenuToolbar, {}), (0, jsx_runtime_1.jsx)("div", { style: row, children: (0, jsx_runtime_1.jsxs)(SplitterContainer_1.SplitterContainer, { minFlex: 0.15, maxFlex: 0.4, defaultFlex: 0.2, id: "sidebar-to-preview", orientation: "vertical", children: [actualStateLeft === 'expanded' ? ((0, jsx_runtime_1.jsx)(SplitterElement_1.SplitterElement, { type: "flexer", children: (0, jsx_runtime_1.jsx)("div", { style: leftContainer, className: "css-reset", children: (0, jsx_runtime_1.jsx)(CompositionSelector_1.CompositionSelector, {}) }) })) : null, actualStateLeft === 'expanded' ? ((0, jsx_runtime_1.jsx)(SplitterHandle_1.SplitterHandle, { allowToCollapse: "left", onCollapse: onCollapseLeft })) : null, (0, jsx_runtime_1.jsx)(SplitterElement_1.SplitterElement, { type: "anti-flexer", children: (0, jsx_runtime_1.jsxs)(SplitterContainer_1.SplitterContainer, { minFlex: 0.5, maxFlex: 0.8, defaultFlex: 0.7, id: "canvas-to-right-sidebar", orientation: "vertical", children: [(0, jsx_runtime_1.jsx)(SplitterElement_1.SplitterElement, { type: "flexer", children: (0, jsx_runtime_1.jsx)("div", { style: canvasContainer, children: (0, jsx_runtime_1.jsx)(Canvas_1.Canvas, {}) }) }), actualStateRight === 'expanded' ? ((0, jsx_runtime_1.jsx)(SplitterHandle_1.SplitterHandle, { allowToCollapse: "right", onCollapse: onCollapseRight })) : null, actualStateRight === 'expanded' ? ((0, jsx_runtime_1.jsx)(SplitterElement_1.SplitterElement, { type: "anti-flexer", children: (0, jsx_runtime_1.jsx)(RightPanel_1.RightPanel, {}) })) : null] }) })] }) }), (0, jsx_runtime_1.jsx)(PreviewToolbar_1.PreviewToolbar, {}), (0, jsx_runtime_1.jsx)(CurrentCompositionSideEffects_1.CurrentCompositionKeybindings, {}), (0, jsx_runtime_1.jsx)(CurrentCompositionSideEffects_1.TitleUpdater, {})] }));
69
+ return ((0, jsx_runtime_1.jsxs)("div", { style: container, children: [(0, jsx_runtime_1.jsx)(InitialCompositionLoader_1.InitialCompositionLoader, {}), (0, jsx_runtime_1.jsx)(MenuToolbar_1.MenuToolbar, {}), (0, jsx_runtime_1.jsx)("div", { style: row, children: (0, jsx_runtime_1.jsxs)(SplitterContainer_1.SplitterContainer, { minFlex: 0.15, maxFlex: 0.4, defaultFlex: 0.2, id: "sidebar-to-preview", orientation: "vertical", children: [actualStateLeft === 'expanded' ? ((0, jsx_runtime_1.jsx)(SplitterElement_1.SplitterElement, { type: "flexer", children: (0, jsx_runtime_1.jsx)("div", { style: leftContainer, className: "css-reset", children: (0, jsx_runtime_1.jsx)(CompositionSelector_1.CompositionSelector, {}) }) })) : null, actualStateLeft === 'expanded' ? ((0, jsx_runtime_1.jsx)(SplitterHandle_1.SplitterHandle, { allowToCollapse: "left", onCollapse: onCollapseLeft })) : null, (0, jsx_runtime_1.jsx)(SplitterElement_1.SplitterElement, { type: "anti-flexer", children: (0, jsx_runtime_1.jsxs)(SplitterContainer_1.SplitterContainer, { minFlex: 0.5, maxFlex: 0.8, defaultFlex: 0.7, id: "canvas-to-right-sidebar", orientation: "vertical", children: [(0, jsx_runtime_1.jsx)(SplitterElement_1.SplitterElement, { type: "flexer", children: (0, jsx_runtime_1.jsx)("div", { style: canvasContainer, children: (0, jsx_runtime_1.jsx)(CanvasOrLoading_1.CanvasOrLoading, {}) }) }), actualStateRight === 'expanded' ? ((0, jsx_runtime_1.jsx)(SplitterHandle_1.SplitterHandle, { allowToCollapse: "right", onCollapse: onCollapseRight })) : null, actualStateRight === 'expanded' ? ((0, jsx_runtime_1.jsx)(SplitterElement_1.SplitterElement, { type: "anti-flexer", children: (0, jsx_runtime_1.jsx)(RightPanel_1.RightPanel, {}) })) : null] }) })] }) }), (0, jsx_runtime_1.jsx)(PreviewToolbar_1.PreviewToolbar, {}), (0, jsx_runtime_1.jsx)(CurrentCompositionSideEffects_1.CurrentCompositionKeybindings, {}), (0, jsx_runtime_1.jsx)(CurrentCompositionSideEffects_1.TitleUpdater, {})] }));
70
70
  };
71
71
  exports.TopPanel = TopPanel;
@@ -3,11 +3,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.UpdateCheck = void 0;
4
4
  const jsx_runtime_1 = require("react/jsx-runtime");
5
5
  const react_1 = require("react");
6
+ const colors_1 = require("../helpers/colors");
6
7
  const modals_1 = require("../state/modals");
7
8
  const z_index_1 = require("../state/z-index");
8
9
  const buttonStyle = {
9
10
  appearance: 'none',
10
- color: 'var(--blue)',
11
+ color: colors_1.BLUE,
11
12
  border: 'none',
12
13
  fontWeight: 'bold',
13
14
  backgroundColor: 'transparent',
@@ -1,10 +1,10 @@
1
1
  import React from 'react';
2
2
  export declare type ZodType = Awaited<typeof import('zod')>['z'];
3
- export declare type ZodColorType = Awaited<typeof import('@remotion/z-color')>;
3
+ export declare type ZodTypesType = Awaited<typeof import('@remotion/zod-types')>;
4
4
  export declare const getZodIfPossible: () => Promise<ZodType | null>;
5
- export declare const getZColorIfPossible: () => Promise<ZodColorType | null>;
5
+ export declare const getZTypesIfPossible: () => Promise<ZodTypesType | null>;
6
6
  export declare const useZodIfPossible: () => typeof import("zod/lib/external") | null;
7
- export declare const useZodColorIfPossible: () => typeof import("@remotion/z-color") | null;
7
+ export declare const useZodTypesIfPossible: () => typeof import("@remotion/zod-types") | null;
8
8
  export declare const ZodProvider: React.FC<{
9
9
  children: React.ReactNode;
10
10
  }>;
@@ -23,7 +23,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
23
23
  return result;
24
24
  };
25
25
  Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.ZodProvider = exports.useZodColorIfPossible = exports.useZodIfPossible = exports.getZColorIfPossible = exports.getZodIfPossible = void 0;
26
+ exports.ZodProvider = exports.useZodTypesIfPossible = exports.useZodIfPossible = exports.getZTypesIfPossible = exports.getZodIfPossible = void 0;
27
27
  const jsx_runtime_1 = require("react/jsx-runtime");
28
28
  const react_1 = require("react");
29
29
  const getZodIfPossible = async () => {
@@ -36,44 +36,44 @@ const getZodIfPossible = async () => {
36
36
  }
37
37
  };
38
38
  exports.getZodIfPossible = getZodIfPossible;
39
- const getZColorIfPossible = async () => {
39
+ const getZTypesIfPossible = async () => {
40
40
  try {
41
- const mod = await Promise.resolve().then(() => __importStar(require('@remotion/z-color')));
41
+ const mod = await Promise.resolve().then(() => __importStar(require('@remotion/zod-types')));
42
42
  return mod;
43
43
  }
44
44
  catch (err) {
45
45
  return null;
46
46
  }
47
47
  };
48
- exports.getZColorIfPossible = getZColorIfPossible;
48
+ exports.getZTypesIfPossible = getZTypesIfPossible;
49
49
  const useZodIfPossible = () => {
50
50
  var _a;
51
51
  const context = (0, react_1.useContext)(ZodContext);
52
52
  return (_a = context === null || context === void 0 ? void 0 : context.zod) !== null && _a !== void 0 ? _a : null;
53
53
  };
54
54
  exports.useZodIfPossible = useZodIfPossible;
55
- const useZodColorIfPossible = () => {
55
+ const useZodTypesIfPossible = () => {
56
56
  var _a;
57
57
  const context = (0, react_1.useContext)(ZodContext);
58
- return (_a = context === null || context === void 0 ? void 0 : context.zodColor) !== null && _a !== void 0 ? _a : null;
58
+ return (_a = context === null || context === void 0 ? void 0 : context.zodTypes) !== null && _a !== void 0 ? _a : null;
59
59
  };
60
- exports.useZodColorIfPossible = useZodColorIfPossible;
60
+ exports.useZodTypesIfPossible = useZodTypesIfPossible;
61
61
  const ZodContext = (0, react_1.createContext)(null);
62
62
  const ZodProvider = ({ children }) => {
63
63
  const [zod, setZod] = (0, react_1.useState)(null);
64
- const [zodColor, setZodColor] = (0, react_1.useState)(null);
64
+ const [zodTypes, setZodTypes] = (0, react_1.useState)(null);
65
65
  (0, react_1.useEffect)(() => {
66
66
  (0, exports.getZodIfPossible)().then((z) => setZod(z));
67
67
  }, []);
68
68
  (0, react_1.useEffect)(() => {
69
- (0, exports.getZColorIfPossible)().then((z) => setZodColor(z));
69
+ (0, exports.getZTypesIfPossible)().then((z) => setZodTypes(z));
70
70
  }, []);
71
71
  const contextValue = (0, react_1.useMemo)(() => {
72
72
  return {
73
73
  zod,
74
- zodColor,
74
+ zodTypes,
75
75
  };
76
- }, [zod, zodColor]);
76
+ }, [zod, zodTypes]);
77
77
  return ((0, jsx_runtime_1.jsx)(ZodContext.Provider, { value: contextValue, children: children }));
78
78
  };
79
79
  exports.ZodProvider = ZodProvider;
@@ -29,7 +29,7 @@ const calculateTimeline = ({ sequences, sequenceDuration, }) => {
29
29
  rootId: '-',
30
30
  showInTimeline: true,
31
31
  nonce: 0,
32
- showLoopTimesInTimeline: undefined,
32
+ loopDisplay: undefined,
33
33
  },
34
34
  depth: 0,
35
35
  hash: '-',
@@ -7,8 +7,8 @@ declare type PreviewServerState = {
7
7
  } | {
8
8
  type: 'disconnected';
9
9
  };
10
- export declare const PreviewServerConnectionCtx: React.Context<PreviewServerState>;
11
- export declare const previewServerConnectionRef: React.RefObject<{
10
+ export declare const StudioServerConnectionCtx: React.Context<PreviewServerState>;
11
+ export declare const studioServerConnectionRef: React.RefObject<{
12
12
  set: (jobs: PreviewServerState) => void;
13
13
  }>;
14
14
  export declare const PreviewServerConnection: React.FC<{
@@ -23,24 +23,24 @@ var __importStar = (this && this.__importStar) || function (mod) {
23
23
  return result;
24
24
  };
25
25
  Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.PreviewServerConnection = exports.previewServerConnectionRef = exports.PreviewServerConnectionCtx = void 0;
26
+ exports.PreviewServerConnection = exports.studioServerConnectionRef = exports.StudioServerConnectionCtx = void 0;
27
27
  const jsx_runtime_1 = require("react/jsx-runtime");
28
28
  const react_1 = __importStar(require("react"));
29
- exports.PreviewServerConnectionCtx = react_1.default.createContext({
29
+ exports.StudioServerConnectionCtx = react_1.default.createContext({
30
30
  type: 'init',
31
31
  });
32
- exports.previewServerConnectionRef = (0, react_1.createRef)();
32
+ exports.studioServerConnectionRef = (0, react_1.createRef)();
33
33
  const PreviewServerConnection = ({ children }) => {
34
34
  const [state, setState] = react_1.default.useState({
35
35
  type: 'init',
36
36
  });
37
- (0, react_1.useImperativeHandle)(exports.previewServerConnectionRef, () => {
37
+ (0, react_1.useImperativeHandle)(exports.studioServerConnectionRef, () => {
38
38
  return {
39
39
  set: (newState) => {
40
40
  setState(newState);
41
41
  },
42
42
  };
43
43
  }, []);
44
- return ((0, jsx_runtime_1.jsx)(exports.PreviewServerConnectionCtx.Provider, { value: state, children: children }));
44
+ return ((0, jsx_runtime_1.jsx)(exports.StudioServerConnectionCtx.Provider, { value: state, children: children }));
45
45
  };
46
46
  exports.PreviewServerConnection = PreviewServerConnection;
@@ -3,7 +3,7 @@ export declare const INPUT_BACKGROUND = "#2f363d";
3
3
  export declare const BORDER_COLOR = "#000";
4
4
  export declare const LIGHT_COLOR = "#ddd";
5
5
  export declare const SELECTED_BACKGROUND = "hsla(0, 0%, 100%, 0.15)";
6
- export declare const LIGHT_TEXT = "rgba(255, 255, 255, 0.6)";
6
+ export declare const LIGHT_TEXT = "#A6A7A9";
7
7
  export declare const VERY_LIGHT_TEXT = "rgba(255, 255, 255, 0.3)";
8
8
  export declare const CLEAR_HOVER = "rgba(255, 255, 255, 0.06)";
9
9
  export declare const INPUT_BORDER_COLOR_UNHOVERED = "rgba(0, 0, 0, 0.6)";
@@ -11,7 +11,9 @@ export declare const INPUT_BORDER_COLOR_HOVERED = "rgba(255, 255, 255, 0.05)";
11
11
  export declare const TIMELINE_BACKGROUND = "#111";
12
12
  export declare const FAIL_COLOR = "#ff3232";
13
13
  export declare const WARNING_COLOR = "#f1c40f";
14
+ export declare const BLUE = "#0b84f3";
15
+ export declare const BLUE_DISABLED = "#284f73";
14
16
  export declare const getBackgroundFromHoverState: ({ selected, hovered, }: {
15
17
  selected: boolean;
16
18
  hovered: boolean;
17
- }) => "transparent" | "hsla(0, 0%, 100%, 0.15)" | "hsla(0, 0%, 100%, 0.25)" | "rgba(255, 255, 255, 0.06)";
19
+ }) => "transparent" | "hsla(0, 0%, 100%, 0.15)" | "rgba(255, 255, 255, 0.06)" | "hsla(0, 0%, 100%, 0.25)";
@@ -1,12 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getBackgroundFromHoverState = exports.WARNING_COLOR = exports.FAIL_COLOR = exports.TIMELINE_BACKGROUND = exports.INPUT_BORDER_COLOR_HOVERED = exports.INPUT_BORDER_COLOR_UNHOVERED = exports.CLEAR_HOVER = exports.VERY_LIGHT_TEXT = exports.LIGHT_TEXT = exports.SELECTED_BACKGROUND = exports.LIGHT_COLOR = exports.BORDER_COLOR = exports.INPUT_BACKGROUND = exports.BACKGROUND = void 0;
3
+ exports.getBackgroundFromHoverState = exports.BLUE_DISABLED = exports.BLUE = exports.WARNING_COLOR = exports.FAIL_COLOR = exports.TIMELINE_BACKGROUND = exports.INPUT_BORDER_COLOR_HOVERED = exports.INPUT_BORDER_COLOR_UNHOVERED = exports.CLEAR_HOVER = exports.VERY_LIGHT_TEXT = exports.LIGHT_TEXT = exports.SELECTED_BACKGROUND = exports.LIGHT_COLOR = exports.BORDER_COLOR = exports.INPUT_BACKGROUND = exports.BACKGROUND = void 0;
4
4
  exports.BACKGROUND = '#1f2428';
5
5
  exports.INPUT_BACKGROUND = '#2f363d';
6
6
  exports.BORDER_COLOR = '#000';
7
7
  exports.LIGHT_COLOR = '#ddd';
8
8
  exports.SELECTED_BACKGROUND = 'hsla(0, 0%, 100%, 0.15)';
9
- exports.LIGHT_TEXT = 'rgba(255, 255, 255, 0.6)';
9
+ exports.LIGHT_TEXT = '#A6A7A9';
10
10
  exports.VERY_LIGHT_TEXT = 'rgba(255, 255, 255, 0.3)';
11
11
  const SELECTED_HOVER_BACKGROUND = 'hsla(0, 0%, 100%, 0.25)';
12
12
  exports.CLEAR_HOVER = 'rgba(255, 255, 255, 0.06)';
@@ -15,6 +15,8 @@ exports.INPUT_BORDER_COLOR_HOVERED = 'rgba(255, 255, 255, 0.05)';
15
15
  exports.TIMELINE_BACKGROUND = '#111';
16
16
  exports.FAIL_COLOR = '#ff3232';
17
17
  exports.WARNING_COLOR = '#f1c40f';
18
+ exports.BLUE = '#0b84f3';
19
+ exports.BLUE_DISABLED = '#284f73';
18
20
  const getBackgroundFromHoverState = ({ selected, hovered, }) => {
19
21
  if (selected) {
20
22
  if (hovered) {
@@ -1,11 +1,11 @@
1
- import type { AnyComposition } from 'remotion';
1
+ import type { VideoConfig } from 'remotion';
2
2
  export declare const SEQUENCE_BORDER_WIDTH = 1;
3
3
  export declare const getTimelineSequenceLayout: ({ durationInFrames, startFrom, maxMediaDuration, startFromMedia, video, windowWidth, }: {
4
4
  durationInFrames: number;
5
5
  startFrom: number;
6
6
  startFromMedia: number;
7
7
  maxMediaDuration: number | null;
8
- video: AnyComposition;
8
+ video: VideoConfig;
9
9
  windowWidth: number;
10
10
  }) => {
11
11
  marginLeft: number;
@@ -1,2 +1,3 @@
1
- import type { AnyComposition } from 'remotion';
2
- export declare const isCompositionStill: (comp: AnyComposition | null) => boolean;
1
+ export declare const isCompositionStill: (comp: {
2
+ durationInFrames: number;
3
+ } | null) => boolean;
@@ -5,12 +5,11 @@ const react_1 = require("react");
5
5
  const remotion_1 = require("remotion");
6
6
  const is_composition_still_1 = require("./is-composition-still");
7
7
  const useIsStill = () => {
8
- const { compositions, currentComposition } = (0, react_1.useContext)(remotion_1.Internals.CompositionManager);
9
- const selected = (0, react_1.useMemo)(() => compositions.find((c) => c.id === currentComposition), [compositions, currentComposition]);
10
- if (!selected) {
8
+ const resolved = remotion_1.Internals.useResolvedVideoConfig(null);
9
+ if (!resolved || resolved.type !== 'success') {
11
10
  return false;
12
11
  }
13
- return (0, is_composition_still_1.isCompositionStill)(selected);
12
+ return (0, is_composition_still_1.isCompositionStill)(resolved.result);
14
13
  };
15
14
  exports.useIsStill = useIsStill;
16
15
  const useDimensions = () => {
@@ -7,7 +7,7 @@ const actions_1 = require("../components/RenderQueue/actions");
7
7
  const client_id_1 = require("./client-id");
8
8
  const useFileExistence = (outName) => {
9
9
  const [exists, setExists] = (0, react_1.useState)(false);
10
- const state = (0, react_1.useContext)(client_id_1.PreviewServerConnectionCtx);
10
+ const state = (0, react_1.useContext)(client_id_1.StudioServerConnectionCtx);
11
11
  const clientId = state.type === 'connected' ? state.clientId : undefined;
12
12
  const currentOutName = (0, react_1.useRef)('');
13
13
  currentOutName.current = outName;
@@ -33,7 +33,7 @@ const useMenuStructure = (closeMenu) => {
33
33
  const { checkerboard, setCheckerboard } = (0, react_1.useContext)(checkerboard_1.CheckerboardContext);
34
34
  const { editorZoomGestures, setEditorZoomGestures } = (0, react_1.useContext)(editor_zoom_gestures_1.EditorZoomGesturesContext);
35
35
  const { size, setSize } = (0, react_1.useContext)(preview_size_1.PreviewSizeContext);
36
- const { type } = (0, react_1.useContext)(client_id_1.PreviewServerConnectionCtx);
36
+ const { type } = (0, react_1.useContext)(client_id_1.StudioServerConnectionCtx);
37
37
  const { setSidebarCollapsedState, sidebarCollapsedStateLeft, sidebarCollapsedStateRight, } = (0, react_1.useContext)(sidebar_1.SidebarContext);
38
38
  const sizes = (0, SizeSelector_1.getUniqueSizes)(size);
39
39
  const structure = (0, react_1.useMemo)(() => {
@@ -2,9 +2,10 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.VolumeOnIcon = exports.VolumeOffIcon = void 0;
4
4
  const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const colors_1 = require("../helpers/colors");
5
6
  const size = 25;
6
7
  const VolumeOffIcon = () => {
7
- return ((0, jsx_runtime_1.jsx)("svg", { width: size, height: size, viewBox: "0 0 24 24", children: (0, jsx_runtime_1.jsx)("path", { d: "M3.63 3.63a.996.996 0 000 1.41L7.29 8.7 7 9H4c-.55 0-1 .45-1 1v4c0 .55.45 1 1 1h3l3.29 3.29c.63.63 1.71.18 1.71-.71v-4.17l4.18 4.18c-.49.37-1.02.68-1.6.91-.36.15-.58.53-.58.92 0 .72.73 1.18 1.39.91.8-.33 1.55-.77 2.22-1.31l1.34 1.34a.996.996 0 101.41-1.41L5.05 3.63c-.39-.39-1.02-.39-1.42 0zM19 12c0 .82-.15 1.61-.41 2.34l1.53 1.53c.56-1.17.88-2.48.88-3.87 0-3.83-2.4-7.11-5.78-8.4-.59-.23-1.22.23-1.22.86v.19c0 .38.25.71.61.85C17.18 6.54 19 9.06 19 12zm-8.71-6.29l-.17.17L12 7.76V6.41c0-.89-1.08-1.33-1.71-.7zM16.5 12A4.5 4.5 0 0014 7.97v1.79l2.48 2.48c.01-.08.02-.16.02-.24z", fill: "var(--blue)" }) }));
8
+ return ((0, jsx_runtime_1.jsx)("svg", { width: size, height: size, viewBox: "0 0 24 24", children: (0, jsx_runtime_1.jsx)("path", { d: "M3.63 3.63a.996.996 0 000 1.41L7.29 8.7 7 9H4c-.55 0-1 .45-1 1v4c0 .55.45 1 1 1h3l3.29 3.29c.63.63 1.71.18 1.71-.71v-4.17l4.18 4.18c-.49.37-1.02.68-1.6.91-.36.15-.58.53-.58.92 0 .72.73 1.18 1.39.91.8-.33 1.55-.77 2.22-1.31l1.34 1.34a.996.996 0 101.41-1.41L5.05 3.63c-.39-.39-1.02-.39-1.42 0zM19 12c0 .82-.15 1.61-.41 2.34l1.53 1.53c.56-1.17.88-2.48.88-3.87 0-3.83-2.4-7.11-5.78-8.4-.59-.23-1.22.23-1.22.86v.19c0 .38.25.71.61.85C17.18 6.54 19 9.06 19 12zm-8.71-6.29l-.17.17L12 7.76V6.41c0-.89-1.08-1.33-1.71-.7zM16.5 12A4.5 4.5 0 0014 7.97v1.79l2.48 2.48c.01-.08.02-.16.02-.24z", fill: colors_1.BLUE }) }));
8
9
  };
9
10
  exports.VolumeOffIcon = VolumeOffIcon;
10
11
  const VolumeOnIcon = () => {
@@ -5,4 +5,5 @@ export declare const RenderIcon: React.FC<{
5
5
  }>;
6
6
  export declare const ThinRenderIcon: React.FC<{
7
7
  svgProps: SVGProps<SVGSVGElement>;
8
+ fill: string;
8
9
  }>;
@@ -7,6 +7,6 @@ const RenderIcon = (props) => {
7
7
  };
8
8
  exports.RenderIcon = RenderIcon;
9
9
  const ThinRenderIcon = (props) => {
10
- return ((0, jsx_runtime_1.jsx)("svg", { ...props.svgProps, xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 512 512", children: (0, jsx_runtime_1.jsx)("path", { fill: 'currentColor', d: "M188.9 372l-50.4-50.4c18.6-42.6 61.7-137.7 95.1-187C304.6 30.1 409 24.6 475.7 36.3c11.7 66.7 6.2 171.1-98.4 242c-49.4 33.5-145.5 75.6-188.4 93.7zm-79.9-62.8c-5.2 11.9-2.5 25.7 6.7 34.9l50.7 50.7c9.1 9.1 22.7 11.9 34.5 6.9c6.5-2.7 14.3-6 23-9.8L224 496c0 5.5 2.9 10.7 7.6 13.6s10.6 3.2 15.6 .7l101.5-50.7c21.7-10.8 35.4-33 35.4-57.2V312.1c4-2.5 7.7-4.9 11.3-7.3C516.1 222.9 520.1 100.9 506.7 28.1c-2.1-11.6-11.2-20.6-22.8-22.8C411.1-8.1 289.1-4.1 207.2 116.7c-2.4 3.6-4.9 7.3-7.3 11.3l-90.2 0c-24.2 0-46.4 13.7-57.2 35.4L1.7 264.8c-2.5 5-2.2 10.8 .7 15.6s8.1 7.6 13.6 7.6H118.5c-3.6 8-6.8 15.2-9.4 21.2zM256 470.1l0-92.5c30.3-13.7 65.4-30.3 96-47v71.7c0 12.1-6.8 23.2-17.7 28.6L256 470.1zM109.7 160h71.5c-16.9 30.7-34 65.8-48.1 96H41.9L81 177.7c5.4-10.8 16.5-17.7 28.6-17.7zM392 144a24 24 0 1 1 -48 0 24 24 0 1 1 48 0zM368 88a56 56 0 1 0 0 112 56 56 0 1 0 0-112z" }) }));
10
+ return ((0, jsx_runtime_1.jsx)("svg", { ...props.svgProps, xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 512 512", children: (0, jsx_runtime_1.jsx)("path", { fill: props.fill, d: "M188.9 372l-50.4-50.4c18.6-42.6 61.7-137.7 95.1-187C304.6 30.1 409 24.6 475.7 36.3c11.7 66.7 6.2 171.1-98.4 242c-49.4 33.5-145.5 75.6-188.4 93.7zm-79.9-62.8c-5.2 11.9-2.5 25.7 6.7 34.9l50.7 50.7c9.1 9.1 22.7 11.9 34.5 6.9c6.5-2.7 14.3-6 23-9.8L224 496c0 5.5 2.9 10.7 7.6 13.6s10.6 3.2 15.6 .7l101.5-50.7c21.7-10.8 35.4-33 35.4-57.2V312.1c4-2.5 7.7-4.9 11.3-7.3C516.1 222.9 520.1 100.9 506.7 28.1c-2.1-11.6-11.2-20.6-22.8-22.8C411.1-8.1 289.1-4.1 207.2 116.7c-2.4 3.6-4.9 7.3-7.3 11.3l-90.2 0c-24.2 0-46.4 13.7-57.2 35.4L1.7 264.8c-2.5 5-2.2 10.8 .7 15.6s8.1 7.6 13.6 7.6H118.5c-3.6 8-6.8 15.2-9.4 21.2zM256 470.1l0-92.5c30.3-13.7 65.4-30.3 96-47v71.7c0 12.1-6.8 23.2-17.7 28.6L256 470.1zM109.7 160h71.5c-16.9 30.7-34 65.8-48.1 96H41.9L81 177.7c5.4-10.8 16.5-17.7 28.6-17.7zM392 144a24 24 0 1 1 -48 0 24 24 0 1 1 48 0zM368 88a56 56 0 1 0 0 112 56 56 0 1 0 0-112z" }) }));
11
11
  };
12
12
  exports.ThinRenderIcon = ThinRenderIcon;
@@ -35,7 +35,9 @@ export declare type RenderModalState = {
35
35
  initialHeadless: boolean;
36
36
  minConcurrency: number;
37
37
  maxConcurrency: number;
38
- defaultProps: unknown;
38
+ defaultProps: Record<string, unknown>;
39
+ inFrameMark: number | null;
40
+ outFrameMark: number | null;
39
41
  };
40
42
  export declare type ModalState = {
41
43
  type: 'new-comp';
@@ -5,20 +5,20 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.findEntryPoint = void 0;
7
7
  const renderer_1 = require("@remotion/renderer");
8
- const fs_1 = require("fs");
9
- const path_1 = __importDefault(require("path"));
8
+ const node_fs_1 = require("node:fs");
9
+ const node_path_1 = __importDefault(require("node:path"));
10
10
  const config_1 = require("./config");
11
11
  const log_1 = require("./log");
12
12
  const candidates = [
13
- path_1.default.join('src', 'index.ts'),
14
- path_1.default.join('src', 'index.tsx'),
15
- path_1.default.join('src', 'index.js'),
16
- path_1.default.join('remotion', 'index.tsx'),
17
- path_1.default.join('remotion', 'index.ts'),
18
- path_1.default.join('remotion', 'index.js'),
13
+ node_path_1.default.join('src', 'index.ts'),
14
+ node_path_1.default.join('src', 'index.tsx'),
15
+ node_path_1.default.join('src', 'index.js'),
16
+ node_path_1.default.join('remotion', 'index.tsx'),
17
+ node_path_1.default.join('remotion', 'index.ts'),
18
+ node_path_1.default.join('remotion', 'index.js'),
19
19
  ];
20
20
  const findCommonPath = (remotionRoot) => {
21
- return candidates.find((candidate) => (0, fs_1.existsSync)(path_1.default.resolve(remotionRoot, candidate)));
21
+ return candidates.find((candidate) => (0, node_fs_1.existsSync)(node_path_1.default.resolve(remotionRoot, candidate)));
22
22
  };
23
23
  const findEntryPoint = (args, remotionRoot) => {
24
24
  const result = findEntryPointInner(args, remotionRoot);
@@ -28,10 +28,10 @@ const findEntryPoint = (args, remotionRoot) => {
28
28
  if (renderer_1.RenderInternals.isServeUrl(result.file)) {
29
29
  return result;
30
30
  }
31
- if (!(0, fs_1.existsSync)(result.file)) {
31
+ if (!(0, node_fs_1.existsSync)(result.file)) {
32
32
  throw new Error(`${result.file} was chosen as the entry point (reason = ${result.reason}) but it does not exist.`);
33
33
  }
34
- if ((0, fs_1.lstatSync)(result.file).isDirectory()) {
34
+ if ((0, node_fs_1.lstatSync)(result.file).isDirectory()) {
35
35
  throw new Error(`${result.file} was chosen as the entry point (reason = ${result.reason}) but it is a directory - it needs to be a file.`);
36
36
  }
37
37
  return result;
@@ -42,10 +42,10 @@ const findEntryPointInner = (args, remotionRoot) => {
42
42
  let file = args[0];
43
43
  if (file) {
44
44
  log_1.Log.verbose('Checking if', file, 'is the entry file');
45
- const cwdResolution = path_1.default.resolve(process.cwd(), file);
46
- const remotionRootResolution = path_1.default.resolve(remotionRoot, file);
45
+ const cwdResolution = node_path_1.default.resolve(process.cwd(), file);
46
+ const remotionRootResolution = node_path_1.default.resolve(remotionRoot, file);
47
47
  // Checking if file was found in CWD
48
- if ((0, fs_1.existsSync)(cwdResolution)) {
48
+ if ((0, node_fs_1.existsSync)(cwdResolution)) {
49
49
  return {
50
50
  file: cwdResolution,
51
51
  remainingArgs: args.slice(1),
@@ -53,7 +53,7 @@ const findEntryPointInner = (args, remotionRoot) => {
53
53
  };
54
54
  }
55
55
  // Checking if file was found in remotion root
56
- if ((0, fs_1.existsSync)(remotionRootResolution)) {
56
+ if ((0, node_fs_1.existsSync)(remotionRootResolution)) {
57
57
  return {
58
58
  file: remotionRootResolution,
59
59
  remainingArgs: args.slice(1),
@@ -69,7 +69,7 @@ const findEntryPointInner = (args, remotionRoot) => {
69
69
  if (file) {
70
70
  log_1.Log.verbose('Entry point from config file is', file);
71
71
  return {
72
- file: path_1.default.resolve(remotionRoot, file),
72
+ file: node_path_1.default.resolve(remotionRoot, file),
73
73
  remainingArgs: args,
74
74
  reason: 'config file',
75
75
  };
@@ -77,7 +77,7 @@ const findEntryPointInner = (args, remotionRoot) => {
77
77
  // 3rd priority: Common paths
78
78
  const found = findCommonPath(remotionRoot);
79
79
  if (found) {
80
- const absolutePath = path_1.default.resolve(remotionRoot, found);
80
+ const absolutePath = node_path_1.default.resolve(remotionRoot, found);
81
81
  log_1.Log.verbose('Selected', absolutePath, 'as the entry point because file exists and is a common entry point and no entry point was explicitly selected');
82
82
  return {
83
83
  file: absolutePath,
@@ -9,6 +9,8 @@ export declare type EventSourceEvent = {
9
9
  } | {
10
10
  type: 'new-env-variables';
11
11
  newEnvVariables: Record<string, string>;
12
+ } | {
13
+ type: 'root-file-changed';
12
14
  } | {
13
15
  type: 'render-queue-updated';
14
16
  queue: RenderJob[];
@@ -23,7 +23,7 @@ const openEventSource = () => {
23
23
  window.location.reload();
24
24
  }
25
25
  if (newEvent.type === 'init') {
26
- (_a = client_id_1.previewServerConnectionRef.current) === null || _a === void 0 ? void 0 : _a.set({
26
+ (_a = client_id_1.studioServerConnectionRef.current) === null || _a === void 0 ? void 0 : _a.set({
27
27
  type: 'connected',
28
28
  clientId: newEvent.clientId,
29
29
  });
@@ -46,7 +46,7 @@ const openEventSource = () => {
46
46
  source.addEventListener('open', () => {
47
47
  source.addEventListener('error', () => {
48
48
  var _a;
49
- (_a = client_id_1.previewServerConnectionRef.current) === null || _a === void 0 ? void 0 : _a.set({ type: 'disconnected' });
49
+ (_a = client_id_1.studioServerConnectionRef.current) === null || _a === void 0 ? void 0 : _a.set({ type: 'disconnected' });
50
50
  // Display an error message that the preview server has disconnected.
51
51
  source === null || source === void 0 ? void 0 : source.close();
52
52
  // Retry later
package/dist/ffmpeg.js CHANGED
@@ -2,18 +2,27 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ffprobeCommand = exports.ffmpegCommand = void 0;
4
4
  const renderer_1 = require("@remotion/renderer");
5
- const child_process_1 = require("child_process");
5
+ const node_child_process_1 = require("node:child_process");
6
+ const node_fs_1 = require("node:fs");
6
7
  const ffmpegCommand = (_root, args) => {
7
- const done = (0, child_process_1.spawnSync)(renderer_1.RenderInternals.getExecutablePath('ffmpeg'), args, {
8
- ...renderer_1.RenderInternals.callFfExtraOptions(),
8
+ const binary = renderer_1.RenderInternals.getExecutablePath('ffmpeg');
9
+ if (!process.env.READ_ONLY_FS) {
10
+ (0, node_fs_1.chmodSync)(binary, 0o755);
11
+ }
12
+ const done = (0, node_child_process_1.spawnSync)(binary, args, {
13
+ ...renderer_1.RenderInternals.dynamicLibraryPathOptions(),
9
14
  stdio: 'inherit',
10
15
  });
11
16
  process.exit(done.status);
12
17
  };
13
18
  exports.ffmpegCommand = ffmpegCommand;
14
19
  const ffprobeCommand = (_root, args) => {
15
- const done = (0, child_process_1.spawnSync)(renderer_1.RenderInternals.getExecutablePath('ffprobe'), args, {
16
- ...renderer_1.RenderInternals.callFfExtraOptions(),
20
+ const binary = renderer_1.RenderInternals.getExecutablePath('ffprobe');
21
+ if (!process.env.READ_ONLY_FS) {
22
+ (0, node_fs_1.chmodSync)(binary, 0o755);
23
+ }
24
+ const done = (0, node_child_process_1.spawnSync)(binary, args, {
25
+ ...renderer_1.RenderInternals.dynamicLibraryPathOptions(),
17
26
  stdio: 'inherit',
18
27
  });
19
28
  process.exit(done.status);
@@ -4,12 +4,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.installFileWatcher = void 0;
7
- const fs_1 = __importDefault(require("fs"));
7
+ const node_fs_1 = __importDefault(require("node:fs"));
8
8
  const installFileWatcher = ({ file, onChange, }) => {
9
- const existedAtBeginning = fs_1.default.existsSync(file);
9
+ const existedAtBeginning = node_fs_1.default.existsSync(file);
10
10
  let existedBefore = existedAtBeginning;
11
11
  const listener = () => {
12
- const existsNow = fs_1.default.existsSync(file);
12
+ const existsNow = node_fs_1.default.existsSync(file);
13
13
  if (!existedBefore && existsNow) {
14
14
  onChange('created');
15
15
  existedBefore = true;
@@ -24,11 +24,11 @@ const installFileWatcher = ({ file, onChange, }) => {
24
24
  onChange('changed');
25
25
  }
26
26
  };
27
- fs_1.default.watchFile(file, { interval: 100 }, listener);
27
+ node_fs_1.default.watchFile(file, { interval: 100 }, listener);
28
28
  return {
29
29
  exists: existedAtBeginning,
30
30
  unwatch: () => {
31
- fs_1.default.unwatchFile(file, listener);
31
+ node_fs_1.default.unwatchFile(file, listener);
32
32
  },
33
33
  };
34
34
  };