@remotion/studio 4.0.407 → 4.0.408

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 (51) hide show
  1. package/dist/components/Canvas.js +3 -1
  2. package/dist/components/CanvasOrLoading.js +3 -1
  3. package/dist/components/CurrentCompositionSideEffects.js +4 -0
  4. package/dist/components/EditorContexts.js +2 -1
  5. package/dist/components/GlobalKeybindings.js +15 -13
  6. package/dist/components/KeyboardShortcutsExplainer.js +1 -1
  7. package/dist/components/Modals.js +1 -3
  8. package/dist/components/Preview.js +10 -1
  9. package/dist/components/RenderModal/ClientRenderProgress.d.ts +5 -0
  10. package/dist/components/RenderModal/ClientRenderProgress.js +56 -0
  11. package/dist/components/RenderModal/RenderStatusModal.js +34 -14
  12. package/dist/components/RenderModal/WebRenderModal.js +76 -121
  13. package/dist/components/RenderPreview.d.ts +1 -0
  14. package/dist/components/RenderPreview.js +42 -2
  15. package/dist/components/RenderQueue/ClientRenderQueueProcessor.d.ts +1 -0
  16. package/dist/components/RenderQueue/ClientRenderQueueProcessor.js +148 -0
  17. package/dist/components/RenderQueue/RenderQueueCancelledMessage.d.ts +2 -0
  18. package/dist/components/RenderQueue/RenderQueueCancelledMessage.js +15 -0
  19. package/dist/components/RenderQueue/RenderQueueError.d.ts +2 -2
  20. package/dist/components/RenderQueue/RenderQueueItem.d.ts +2 -2
  21. package/dist/components/RenderQueue/RenderQueueItem.js +22 -5
  22. package/dist/components/RenderQueue/RenderQueueItemCancelButton.d.ts +2 -2
  23. package/dist/components/RenderQueue/RenderQueueItemCancelButton.js +8 -1
  24. package/dist/components/RenderQueue/RenderQueueItemStatus.d.ts +2 -2
  25. package/dist/components/RenderQueue/RenderQueueItemStatus.js +15 -3
  26. package/dist/components/RenderQueue/RenderQueueOutputName.d.ts +2 -2
  27. package/dist/components/RenderQueue/RenderQueueOutputName.js +17 -3
  28. package/dist/components/RenderQueue/RenderQueueProgressMessage.d.ts +2 -2
  29. package/dist/components/RenderQueue/RenderQueueProgressMessage.js +7 -2
  30. package/dist/components/RenderQueue/RenderQueueRemoveItem.d.ts +2 -2
  31. package/dist/components/RenderQueue/RenderQueueRemoveItem.js +18 -1
  32. package/dist/components/RenderQueue/RenderQueueRepeat.d.ts +2 -2
  33. package/dist/components/RenderQueue/RenderQueueRepeat.js +17 -3
  34. package/dist/components/RenderQueue/client-render-queue.d.ts +21 -0
  35. package/dist/components/RenderQueue/client-render-queue.js +41 -0
  36. package/dist/components/RenderQueue/client-side-render-types.d.ts +64 -0
  37. package/dist/components/RenderQueue/client-side-render-types.js +2 -0
  38. package/dist/components/RenderQueue/context.d.ts +18 -1
  39. package/dist/components/RenderQueue/context.js +153 -11
  40. package/dist/components/RenderQueue/index.js +23 -9
  41. package/dist/esm/{chunk-b3crgnb3.js → chunk-yhf0gvmn.js} +5600 -3347
  42. package/dist/esm/internals.mjs +5600 -3347
  43. package/dist/esm/previewEntry.mjs +5627 -3374
  44. package/dist/esm/renderEntry.mjs +1 -1
  45. package/dist/helpers/document-title.d.ts +2 -2
  46. package/dist/helpers/document-title.js +10 -1
  47. package/dist/helpers/get-asset-metadata.js +11 -3
  48. package/dist/helpers/retry-payload.d.ts +3 -1
  49. package/dist/helpers/retry-payload.js +14 -1
  50. package/dist/helpers/use-menu-structure.js +17 -15
  51. package/package.json +10 -10
@@ -206,7 +206,7 @@ var renderContent = (Root) => {
206
206
  renderToDOM(/* @__PURE__ */ jsx("div", {
207
207
  children: /* @__PURE__ */ jsx(DelayedSpinner, {})
208
208
  }));
209
- import("./chunk-b3crgnb3.js").then(({ StudioInternals }) => {
209
+ import("./chunk-yhf0gvmn.js").then(({ StudioInternals }) => {
210
210
  window.remotion_isStudio = true;
211
211
  window.remotion_isReadOnlyStudio = true;
212
212
  window.remotion_inputProps = "{}";
@@ -1,4 +1,4 @@
1
- import type { RenderJob } from '@remotion/studio-shared';
1
+ import type { AnyRenderJob } from '../components/RenderQueue/context';
2
2
  export declare const setCurrentCanvasContentId: (id: string | null) => void;
3
3
  export declare const setUnsavedProps: (unsaved: boolean) => void;
4
- export declare const setRenderJobs: (jobs: RenderJob[]) => void;
4
+ export declare const setRenderJobs: (jobs: AnyRenderJob[]) => void;
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.setRenderJobs = exports.setUnsavedProps = exports.setCurrentCanvasContentId = void 0;
4
4
  const no_react_1 = require("remotion/no-react");
5
+ const context_1 = require("../components/RenderQueue/context");
5
6
  let currentItemName = null;
6
7
  let unsavedProps = false;
7
8
  let tabInactive = false;
@@ -55,7 +56,15 @@ const getProgressInBrackets = (selectedCompositionId, jobs) => {
55
56
  if (currentRender.status !== 'running') {
56
57
  throw new Error('expected running job');
57
58
  }
58
- const progInPercent = Math.ceil(currentRender.progress.value * 100);
59
+ let progInPercent;
60
+ if ((0, context_1.isClientRenderJob)(currentRender)) {
61
+ const { renderedFrames, totalFrames } = currentRender.progress;
62
+ progInPercent =
63
+ totalFrames > 0 ? Math.ceil((renderedFrames / totalFrames) * 100) : 0;
64
+ }
65
+ else {
66
+ progInPercent = Math.ceil(currentRender.progress.value * 100);
67
+ }
59
68
  const progressInBrackets = currentRender.compositionId === selectedCompositionId
60
69
  ? `[${progInPercent}%]`
61
70
  : `[${progInPercent}% ${currentRender.compositionId}]`;
@@ -9,12 +9,20 @@ const getSrcFromCanvasContent = (canvasContent) => {
9
9
  if (canvasContent.type === 'asset') {
10
10
  return (0, remotion_1.staticFile)(canvasContent.asset);
11
11
  }
12
- if (canvasContent.type === 'composition') {
13
- throw new Error('cannot get dimensions for composition');
14
- }
15
12
  return exports.remotion_outputsBase + canvasContent.path;
16
13
  };
17
14
  const getAssetMetadata = async (canvasContent, addTime) => {
15
+ if (canvasContent.type === 'output-blob') {
16
+ return {
17
+ type: 'found',
18
+ size: canvasContent.sizeInBytes,
19
+ dimensions: { width: canvasContent.width, height: canvasContent.height },
20
+ fetchedAt: Date.now(),
21
+ };
22
+ }
23
+ if (canvasContent.type === 'composition') {
24
+ throw new Error('cannot get dimensions for composition');
25
+ }
18
26
  const src = getSrcFromCanvasContent(canvasContent);
19
27
  const file = await fetch(src, {
20
28
  method: 'HEAD',
@@ -1,3 +1,5 @@
1
1
  import type { RenderJob } from '@remotion/studio-shared';
2
- import type { RenderModalState } from '../state/modals';
2
+ import type { ClientRenderJob } from '../components/RenderQueue/client-side-render-types';
3
+ import type { RenderModalState, WebRenderModalState } from '../state/modals';
3
4
  export declare const makeRetryPayload: (job: RenderJob) => RenderModalState;
5
+ export declare const makeClientRetryPayload: (job: ClientRenderJob) => WebRenderModalState;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.makeRetryPayload = void 0;
3
+ exports.makeClientRetryPayload = exports.makeRetryPayload = void 0;
4
4
  const no_react_1 = require("remotion/no-react");
5
5
  const makeRetryPayload = (job) => {
6
6
  var _a, _b, _c, _d, _e;
@@ -167,3 +167,16 @@ const makeRetryPayload = (job) => {
167
167
  throw new Error(`Job ${JSON.stringify(job)} Not implemented`);
168
168
  };
169
169
  exports.makeRetryPayload = makeRetryPayload;
170
+ const makeClientRetryPayload = (job) => {
171
+ return {
172
+ type: 'web-render',
173
+ compositionId: job.compositionId,
174
+ initialFrame: job.type === 'client-still' ? job.frame : 0,
175
+ initialLogLevel: job.logLevel,
176
+ initialLicenseKey: job.licenseKey,
177
+ defaultProps: job.inputProps,
178
+ inFrameMark: job.type === 'client-video' ? job.startFrame : null,
179
+ outFrameMark: job.type === 'client-video' ? job.endFrame : null,
180
+ };
181
+ };
182
+ exports.makeClientRetryPayload = makeClientRetryPayload;
@@ -579,21 +579,23 @@ const useMenuStructure = (closeMenu, readOnlyStudio) => {
579
579
  label: 'Tools',
580
580
  leaveLeftPadding: false,
581
581
  items: [
582
- {
583
- id: 'ask-ai',
584
- value: 'ask-ai',
585
- label: 'Ask AI',
586
- onClick: () => {
587
- var _a;
588
- closeMenu();
589
- (_a = AskAiModal_1.askAiModalRef.current) === null || _a === void 0 ? void 0 : _a.toggle();
590
- },
591
- leftItem: null,
592
- keyHint: `${ShortcutHint_1.cmdOrCtrlCharacter}+I`,
593
- subMenu: null,
594
- type: 'item',
595
- quickSwitcherLabel: 'Ask AI',
596
- },
582
+ process.env.ASK_AI_ENABLED
583
+ ? {
584
+ id: 'ask-ai',
585
+ value: 'ask-ai',
586
+ label: 'Ask AI',
587
+ onClick: () => {
588
+ var _a;
589
+ closeMenu();
590
+ (_a = AskAiModal_1.askAiModalRef.current) === null || _a === void 0 ? void 0 : _a.toggle();
591
+ },
592
+ leftItem: null,
593
+ keyHint: `${ShortcutHint_1.cmdOrCtrlCharacter}+I`,
594
+ subMenu: null,
595
+ type: 'item',
596
+ quickSwitcherLabel: 'Ask AI',
597
+ }
598
+ : null,
597
599
  'EyeDropper' in window
598
600
  ? {
599
601
  id: 'color-picker',
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "url": "https://github.com/remotion-dev/remotion/tree/main/packages/studio"
4
4
  },
5
5
  "name": "@remotion/studio",
6
- "version": "4.0.407",
6
+ "version": "4.0.408",
7
7
  "description": "APIs for interacting with the Remotion Studio",
8
8
  "main": "dist",
9
9
  "sideEffects": false,
@@ -25,14 +25,14 @@
25
25
  },
26
26
  "dependencies": {
27
27
  "semver": "7.5.3",
28
- "remotion": "4.0.407",
29
- "@remotion/player": "4.0.407",
30
- "@remotion/media-utils": "4.0.407",
31
- "@remotion/renderer": "4.0.407",
32
- "@remotion/web-renderer": "4.0.407",
33
- "@remotion/studio-shared": "4.0.407",
34
- "@remotion/zod-types": "4.0.407",
35
- "mediabunny": "1.27.3",
28
+ "remotion": "4.0.408",
29
+ "@remotion/player": "4.0.408",
30
+ "@remotion/media-utils": "4.0.408",
31
+ "@remotion/renderer": "4.0.408",
32
+ "@remotion/web-renderer": "4.0.408",
33
+ "@remotion/studio-shared": "4.0.408",
34
+ "@remotion/zod-types": "4.0.408",
35
+ "mediabunny": "1.29.0",
36
36
  "memfs": "3.4.3",
37
37
  "source-map": "0.7.3",
38
38
  "open": "^8.4.2",
@@ -42,7 +42,7 @@
42
42
  "react": "19.2.3",
43
43
  "react-dom": "19.2.3",
44
44
  "@types/semver": "^7.3.4",
45
- "@remotion/eslint-config-internal": "4.0.407",
45
+ "@remotion/eslint-config-internal": "4.0.408",
46
46
  "eslint": "9.19.0"
47
47
  },
48
48
  "publishConfig": {