@remotion/studio 4.0.431 → 4.0.432

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 (37) hide show
  1. package/dist/Studio.d.ts +1 -0
  2. package/dist/Studio.js +4 -4
  3. package/dist/components/AssetSelectorItem.js +6 -8
  4. package/dist/components/NewComposition/DuplicateComposition.js +1 -4
  5. package/dist/components/RenderModal/SchemaEditor/SchemaLabel.js +1 -3
  6. package/dist/components/RenderModal/SchemaEditor/ZodArrayEditor.js +1 -3
  7. package/dist/components/RenderModal/SchemaEditor/ZodFieldValidation.js +1 -3
  8. package/dist/components/RenderModal/SchemaEditor/ZodTupleEditor.js +1 -3
  9. package/dist/components/RenderModal/WebRenderModal.d.ts +1 -1
  10. package/dist/components/RenderModal/WebRenderModal.js +55 -26
  11. package/dist/components/RenderModal/WebRenderModalAudio.d.ts +2 -0
  12. package/dist/components/RenderModal/WebRenderModalAudio.js +11 -5
  13. package/dist/components/RenderModal/WebRenderModalBasic.js +35 -35
  14. package/dist/components/RenderQueue/ClientRenderQueueProcessor.js +3 -3
  15. package/dist/components/RenderQueue/client-side-render-types.d.ts +1 -1
  16. package/dist/components/Timeline/TimelineExpandedSection.js +11 -147
  17. package/dist/components/Timeline/TimelineFieldRow.d.ts +8 -0
  18. package/dist/components/Timeline/TimelineFieldRow.js +78 -0
  19. package/dist/components/Timeline/TimelineListItem.js +6 -17
  20. package/dist/components/Timeline/TimelineSchemaField.d.ts +2 -1
  21. package/dist/components/Timeline/TimelineSchemaField.js +4 -6
  22. package/dist/components/Timeline/use-resolved-stack.d.ts +2 -0
  23. package/dist/components/Timeline/use-resolved-stack.js +54 -0
  24. package/dist/components/Timeline/use-sequence-props-subscription.d.ts +3 -0
  25. package/dist/components/Timeline/use-sequence-props-subscription.js +130 -0
  26. package/dist/error-overlay/react-overlay/utils/get-source-map.d.ts +5 -0
  27. package/dist/esm/{chunk-3msfwcwh.js → chunk-t28xqw5n.js} +1932 -1795
  28. package/dist/esm/internals.mjs +1932 -1795
  29. package/dist/esm/previewEntry.mjs +1915 -1777
  30. package/dist/esm/renderEntry.mjs +5 -2
  31. package/dist/helpers/get-timeline-sequence-layout.js +3 -3
  32. package/dist/helpers/timeline-layout.d.ts +2 -2
  33. package/dist/helpers/timeline-layout.js +2 -2
  34. package/dist/internals.d.ts +1 -0
  35. package/dist/previewEntry.js +1 -1
  36. package/dist/renderEntry.js +3 -3
  37. package/package.json +10 -10
@@ -166,6 +166,7 @@ var renderContent = (Root) => {
166
166
  numberOfAudioTags: 0,
167
167
  nonceContextSeed: 0,
168
168
  audioLatencyHint: window.remotion_audioLatencyHint ?? "interactive",
169
+ visualModeEnabled: false,
169
170
  children: /* @__PURE__ */ jsxs(Internals.RenderAssetManagerProvider, {
170
171
  collectAssets: null,
171
172
  children: [
@@ -193,6 +194,7 @@ var renderContent = (Root) => {
193
194
  numberOfAudioTags: 0,
194
195
  audioLatencyHint: window.remotion_audioLatencyHint ?? "interactive",
195
196
  nonceContextSeed: 0,
197
+ visualModeEnabled: false,
196
198
  children: /* @__PURE__ */ jsx(Internals.RenderAssetManagerProvider, {
197
199
  collectAssets: null,
198
200
  children: /* @__PURE__ */ jsx(Root, {})
@@ -208,13 +210,14 @@ var renderContent = (Root) => {
208
210
  renderToDOM(/* @__PURE__ */ jsx("div", {
209
211
  children: /* @__PURE__ */ jsx(DelayedSpinner, {})
210
212
  }));
211
- import("./chunk-3msfwcwh.js").then(({ StudioInternals }) => {
213
+ import("./chunk-t28xqw5n.js").then(({ StudioInternals }) => {
212
214
  window.remotion_isStudio = true;
213
215
  window.remotion_isReadOnlyStudio = true;
214
216
  window.remotion_inputProps = "{}";
215
217
  renderToDOM(/* @__PURE__ */ jsx(StudioInternals.Studio, {
216
218
  readOnly: true,
217
- rootComponent: Root
219
+ rootComponent: Root,
220
+ visualModeEnabled: false
218
221
  }));
219
222
  }).catch((err) => {
220
223
  renderToDOM(/* @__PURE__ */ jsxs("div", {
@@ -13,10 +13,10 @@ const getWidthOfTrack = ({ durationInFrames, lastFrame, windowWidth, spatialDura
13
13
  const getTimelineSequenceLayout = ({ durationInFrames, startFrom, maxMediaDuration, startFromMedia, video, windowWidth, premountDisplay, postmountDisplay, }) => {
14
14
  var _a;
15
15
  const maxMediaSequenceDuration = (maxMediaDuration !== null && maxMediaDuration !== void 0 ? maxMediaDuration : Infinity) - startFromMedia;
16
- const lastFrame = (_a = video.durationInFrames) !== null && _a !== void 0 ? _a : 1;
17
- const spatialDuration = Math.min(maxMediaSequenceDuration, durationInFrames, lastFrame - startFrom);
16
+ const lastFrame = ((_a = video.durationInFrames) !== null && _a !== void 0 ? _a : 1) - 1;
17
+ const spatialDuration = Math.min(maxMediaSequenceDuration, durationInFrames - 1, lastFrame - startFrom);
18
18
  // Unclipped spatial duration: without the lastFrame - startFrom constraint
19
- const naturalSpatialDuration = Math.min(maxMediaSequenceDuration, durationInFrames);
19
+ const naturalSpatialDuration = Math.min(maxMediaSequenceDuration, durationInFrames - 1);
20
20
  const marginLeft = lastFrame === 0
21
21
  ? 0
22
22
  : (startFrom / lastFrame) * (windowWidth - timeline_layout_1.TIMELINE_PADDING * 2);
@@ -3,8 +3,8 @@ export declare const TIMELINE_PADDING = 16;
3
3
  export declare const TIMELINE_BORDER = 1;
4
4
  export declare const TIMELINE_ITEM_BORDER_BOTTOM = 1;
5
5
  export declare const TIMELINE_TRACK_EXPANDED_HEIGHT = 100;
6
- export declare const SCHEMA_FIELD_ROW_HEIGHT = 26;
7
- export declare const UNSUPPORTED_FIELD_ROW_HEIGHT = 26;
6
+ export declare const SCHEMA_FIELD_ROW_HEIGHT = 22;
7
+ export declare const UNSUPPORTED_FIELD_ROW_HEIGHT = 22;
8
8
  export type SchemaFieldInfo = {
9
9
  key: string;
10
10
  description: string | undefined;
@@ -5,8 +5,8 @@ exports.TIMELINE_PADDING = 16;
5
5
  exports.TIMELINE_BORDER = 1;
6
6
  exports.TIMELINE_ITEM_BORDER_BOTTOM = 1;
7
7
  exports.TIMELINE_TRACK_EXPANDED_HEIGHT = 100;
8
- exports.SCHEMA_FIELD_ROW_HEIGHT = 26;
9
- exports.UNSUPPORTED_FIELD_ROW_HEIGHT = 26;
8
+ exports.SCHEMA_FIELD_ROW_HEIGHT = 22;
9
+ exports.UNSUPPORTED_FIELD_ROW_HEIGHT = 22;
10
10
  const SUPPORTED_SCHEMA_TYPES = new Set(['number', 'boolean']);
11
11
  const getSchemaFields = (controls) => {
12
12
  if (!controls) {
@@ -2,5 +2,6 @@ export declare const StudioInternals: {
2
2
  Studio: import("react").FC<{
3
3
  readonly rootComponent: import("react").FC<{}>;
4
4
  readonly readOnly: boolean;
5
+ readonly visualModeEnabled: boolean;
5
6
  }>;
6
7
  };
@@ -44,5 +44,5 @@ const renderToDOM = (content) => {
44
44
  };
45
45
  renderToDOM(jsx_runtime_1.jsx(NoRegisterRoot_1.NoRegisterRoot, {}));
46
46
  remotion_1.Internals.waitForRoot((NewRoot) => {
47
- renderToDOM(jsx_runtime_1.jsx(Studio_1.Studio, { readOnly: false, rootComponent: NewRoot }));
47
+ renderToDOM(jsx_runtime_1.jsx(Studio_1.Studio, { readOnly: false, rootComponent: NewRoot, visualModeEnabled: Boolean(process.env.EXPERIMENTAL_VISUAL_MODE_ENABLED) }));
48
48
  });
@@ -185,13 +185,13 @@ const renderContent = (Root) => {
185
185
  defaultVideoImageFormat: bundleMode.compositionDefaultVideoImageFormat,
186
186
  defaultPixelFormat: bundleMode.compositionDefaultPixelFormat,
187
187
  defaultProResProfile: bundleMode.compositionDefaultProResProfile,
188
- }, initialCompositions: [], children: jsx_runtime_1.jsx(remotion_1.Internals.RemotionRootContexts, { frameState: null, audioEnabled: window.remotion_audioEnabled, videoEnabled: window.remotion_videoEnabled, logLevel: window.remotion_logLevel, numberOfAudioTags: 0, nonceContextSeed: 0, audioLatencyHint: (_a = window.remotion_audioLatencyHint) !== null && _a !== void 0 ? _a : 'interactive', children: jsx_runtime_1.jsxs(remotion_1.Internals.RenderAssetManagerProvider, { collectAssets: null, children: [
188
+ }, initialCompositions: [], children: jsx_runtime_1.jsx(remotion_1.Internals.RemotionRootContexts, { frameState: null, audioEnabled: window.remotion_audioEnabled, videoEnabled: window.remotion_videoEnabled, logLevel: window.remotion_logLevel, numberOfAudioTags: 0, nonceContextSeed: 0, audioLatencyHint: (_a = window.remotion_audioLatencyHint) !== null && _a !== void 0 ? _a : 'interactive', visualModeEnabled: false, children: jsx_runtime_1.jsxs(remotion_1.Internals.RenderAssetManagerProvider, { collectAssets: null, children: [
189
189
  jsx_runtime_1.jsx(Root, {}), jsx_runtime_1.jsx(GetVideoComposition, { state: bundleMode })
190
190
  ] }) }) }));
191
191
  renderToDOM(markup);
192
192
  }
193
193
  if (bundleMode.type === 'evaluation') {
194
- const markup = (jsx_runtime_1.jsx(remotion_1.Internals.CompositionManagerProvider, { initialCanvasContent: null, onlyRenderComposition: null, currentCompositionMetadata: null, initialCompositions: [], children: jsx_runtime_1.jsx(remotion_1.Internals.RemotionRootContexts, { frameState: null, audioEnabled: window.remotion_audioEnabled, videoEnabled: window.remotion_videoEnabled, logLevel: window.remotion_logLevel, numberOfAudioTags: 0, audioLatencyHint: (_b = window.remotion_audioLatencyHint) !== null && _b !== void 0 ? _b : 'interactive', nonceContextSeed: 0, children: jsx_runtime_1.jsx(remotion_1.Internals.RenderAssetManagerProvider, { collectAssets: null, children: jsx_runtime_1.jsx(Root, {}) }) }) }));
194
+ const markup = (jsx_runtime_1.jsx(remotion_1.Internals.CompositionManagerProvider, { initialCanvasContent: null, onlyRenderComposition: null, currentCompositionMetadata: null, initialCompositions: [], children: jsx_runtime_1.jsx(remotion_1.Internals.RemotionRootContexts, { frameState: null, audioEnabled: window.remotion_audioEnabled, videoEnabled: window.remotion_videoEnabled, logLevel: window.remotion_logLevel, numberOfAudioTags: 0, audioLatencyHint: (_b = window.remotion_audioLatencyHint) !== null && _b !== void 0 ? _b : 'interactive', nonceContextSeed: 0, visualModeEnabled: false, children: jsx_runtime_1.jsx(remotion_1.Internals.RenderAssetManagerProvider, { collectAssets: null, children: jsx_runtime_1.jsx(Root, {}) }) }) }));
195
195
  renderToDOM(markup);
196
196
  }
197
197
  if (bundleMode.type === 'index') {
@@ -203,7 +203,7 @@ const renderContent = (Root) => {
203
203
  window.remotion_isStudio = true;
204
204
  window.remotion_isReadOnlyStudio = true;
205
205
  window.remotion_inputProps = '{}';
206
- renderToDOM(jsx_runtime_1.jsx(StudioInternals.Studio, { readOnly: true, rootComponent: Root }));
206
+ renderToDOM(jsx_runtime_1.jsx(StudioInternals.Studio, { readOnly: true, rootComponent: Root, visualModeEnabled: false }));
207
207
  })
208
208
  .catch((err) => {
209
209
  renderToDOM(jsx_runtime_1.jsxs("div", { children: ["Failed to load Remotion Studio: ", err.message] }));
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.431",
6
+ "version": "4.0.432",
7
7
  "description": "APIs for interacting with the Remotion Studio",
8
8
  "main": "dist",
9
9
  "sideEffects": false,
@@ -26,13 +26,13 @@
26
26
  },
27
27
  "dependencies": {
28
28
  "semver": "7.5.3",
29
- "remotion": "4.0.431",
30
- "@remotion/player": "4.0.431",
31
- "@remotion/media-utils": "4.0.431",
32
- "@remotion/renderer": "4.0.431",
33
- "@remotion/web-renderer": "4.0.431",
34
- "@remotion/studio-shared": "4.0.431",
35
- "@remotion/zod-types": "4.0.431",
29
+ "remotion": "4.0.432",
30
+ "@remotion/player": "4.0.432",
31
+ "@remotion/media-utils": "4.0.432",
32
+ "@remotion/renderer": "4.0.432",
33
+ "@remotion/web-renderer": "4.0.432",
34
+ "@remotion/studio-shared": "4.0.432",
35
+ "@remotion/zod-types": "4.0.432",
36
36
  "mediabunny": "1.35.1",
37
37
  "memfs": "3.4.3",
38
38
  "source-map": "0.7.3",
@@ -43,9 +43,9 @@
43
43
  "react": "19.2.3",
44
44
  "react-dom": "19.2.3",
45
45
  "@types/semver": "^7.3.4",
46
- "@remotion/eslint-config-internal": "4.0.431",
46
+ "@remotion/eslint-config-internal": "4.0.432",
47
47
  "eslint": "9.19.0",
48
- "@typescript/native-preview": "7.0.0-dev.20260217.1"
48
+ "@typescript/native-preview": "7.0.0-dev.20260301.1"
49
49
  },
50
50
  "publishConfig": {
51
51
  "access": "public"