@remotion/studio 4.0.430 → 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 (40) 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-6jf1natv.js +25 -0
  28. package/dist/esm/{chunk-59m8tgkh.js → chunk-t28xqw5n.js} +1935 -1797
  29. package/dist/esm/index.mjs +16 -0
  30. package/dist/esm/internals.mjs +1983 -1830
  31. package/dist/esm/previewEntry.mjs +1931 -1777
  32. package/dist/esm/renderEntry.mjs +8 -4
  33. package/dist/helpers/get-timeline-sequence-layout.js +3 -3
  34. package/dist/helpers/timeline-layout.d.ts +2 -2
  35. package/dist/helpers/timeline-layout.js +2 -2
  36. package/dist/internals.d.ts +1 -0
  37. package/dist/previewEntry.js +1 -1
  38. package/dist/renderEntry.js +3 -3
  39. package/package.json +10 -10
  40. package/dist/esm/chunk-m17t3vjq.js +0 -9
@@ -1,6 +1,7 @@
1
1
  import {
2
- __require
3
- } from "./chunk-m17t3vjq.js";
2
+ __require,
3
+ __toESM
4
+ } from "./chunk-6jf1natv.js";
4
5
 
5
6
  // src/renderEntry.tsx
6
7
  import { useContext, useEffect, useRef, useState } from "react";
@@ -165,6 +166,7 @@ var renderContent = (Root) => {
165
166
  numberOfAudioTags: 0,
166
167
  nonceContextSeed: 0,
167
168
  audioLatencyHint: window.remotion_audioLatencyHint ?? "interactive",
169
+ visualModeEnabled: false,
168
170
  children: /* @__PURE__ */ jsxs(Internals.RenderAssetManagerProvider, {
169
171
  collectAssets: null,
170
172
  children: [
@@ -192,6 +194,7 @@ var renderContent = (Root) => {
192
194
  numberOfAudioTags: 0,
193
195
  audioLatencyHint: window.remotion_audioLatencyHint ?? "interactive",
194
196
  nonceContextSeed: 0,
197
+ visualModeEnabled: false,
195
198
  children: /* @__PURE__ */ jsx(Internals.RenderAssetManagerProvider, {
196
199
  collectAssets: null,
197
200
  children: /* @__PURE__ */ jsx(Root, {})
@@ -207,13 +210,14 @@ var renderContent = (Root) => {
207
210
  renderToDOM(/* @__PURE__ */ jsx("div", {
208
211
  children: /* @__PURE__ */ jsx(DelayedSpinner, {})
209
212
  }));
210
- import("./chunk-59m8tgkh.js").then(({ StudioInternals }) => {
213
+ import("./chunk-t28xqw5n.js").then(({ StudioInternals }) => {
211
214
  window.remotion_isStudio = true;
212
215
  window.remotion_isReadOnlyStudio = true;
213
216
  window.remotion_inputProps = "{}";
214
217
  renderToDOM(/* @__PURE__ */ jsx(StudioInternals.Studio, {
215
218
  readOnly: true,
216
- rootComponent: Root
219
+ rootComponent: Root,
220
+ visualModeEnabled: false
217
221
  }));
218
222
  }).catch((err) => {
219
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.430",
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.429",
30
- "@remotion/player": "4.0.429",
31
- "@remotion/media-utils": "4.0.429",
32
- "@remotion/renderer": "4.0.429",
33
- "@remotion/web-renderer": "4.0.429",
34
- "@remotion/studio-shared": "4.0.429",
35
- "@remotion/zod-types": "4.0.429",
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.429",
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"
@@ -1,9 +0,0 @@
1
- var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, {
2
- get: (a, b) => (typeof require !== "undefined" ? require : a)[b]
3
- }) : x)(function(x) {
4
- if (typeof require !== "undefined")
5
- return require.apply(this, arguments);
6
- throw Error('Dynamic require of "' + x + '" is not supported');
7
- });
8
-
9
- export { __require };