@remotion/studio-shared 4.0.483 → 4.0.485

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.
@@ -490,6 +490,18 @@ export type DuplicateJsxNodeResponse = {
490
490
  reason: string;
491
491
  stack: string;
492
492
  };
493
+ export type SplitJsxSequenceRequest = {
494
+ fileName: string;
495
+ nodePath: SequenceNodePath;
496
+ splitFrame: number;
497
+ };
498
+ export type SplitJsxSequenceResponse = {
499
+ success: true;
500
+ } | {
501
+ success: false;
502
+ reason: string;
503
+ stack: string;
504
+ };
493
505
  export type InsertableCompositionElement = {
494
506
  type: 'solid';
495
507
  width: number;
@@ -626,6 +638,7 @@ export type ApiRoutes = {
626
638
  '/api/paste-effects': ReqAndRes<PasteEffectsRequest, PasteEffectsResponse>;
627
639
  '/api/delete-jsx-node': ReqAndRes<DeleteJsxNodeRequest, DeleteJsxNodeResponse>;
628
640
  '/api/duplicate-jsx-node': ReqAndRes<DuplicateJsxNodeRequest, DuplicateJsxNodeResponse>;
641
+ '/api/split-jsx-sequence': ReqAndRes<SplitJsxSequenceRequest, SplitJsxSequenceResponse>;
629
642
  '/api/insert-jsx-element': ReqAndRes<InsertJsxElementRequest, InsertJsxElementResponse>;
630
643
  '/api/insert-element': ReqAndRes<InsertElementRequest, InsertElementResponse>;
631
644
  '/api/download-remote-asset': ReqAndRes<DownloadRemoteAssetRequest, DownloadRemoteAssetResponse>;
@@ -14,6 +14,8 @@ export type RecastCodemod = {
14
14
  newId: string;
15
15
  componentName: string;
16
16
  componentImportPath: string;
17
+ folderName: string | null;
18
+ parentName: string | null;
17
19
  newHeight: number;
18
20
  newWidth: number;
19
21
  newFps: number;
@@ -0,0 +1,13 @@
1
+ export declare const getDefinePluginDefinitions: ({ maxTimelineTracks, askAIEnabled, keyboardShortcutsEnabled, bufferStateDelayInMilliseconds, experimentalClientSideRenderingEnabled, }: {
2
+ maxTimelineTracks: number | null;
3
+ askAIEnabled: boolean;
4
+ keyboardShortcutsEnabled: boolean;
5
+ bufferStateDelayInMilliseconds: number | null;
6
+ experimentalClientSideRenderingEnabled: boolean;
7
+ }) => {
8
+ 'process.env.MAX_TIMELINE_TRACKS': number | null;
9
+ 'process.env.ASK_AI_ENABLED': boolean;
10
+ 'process.env.KEYBOARD_SHORTCUTS_ENABLED': boolean;
11
+ 'process.env.BUFFER_STATE_DELAY_IN_MILLISECONDS': number | null;
12
+ 'process.env.EXPERIMENTAL_CLIENT_SIDE_RENDERING_ENABLED': boolean;
13
+ };
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getDefinePluginDefinitions = void 0;
4
+ const getDefinePluginDefinitions = ({ maxTimelineTracks, askAIEnabled, keyboardShortcutsEnabled, bufferStateDelayInMilliseconds, experimentalClientSideRenderingEnabled, }) => ({
5
+ 'process.env.MAX_TIMELINE_TRACKS': maxTimelineTracks,
6
+ 'process.env.ASK_AI_ENABLED': askAIEnabled,
7
+ 'process.env.KEYBOARD_SHORTCUTS_ENABLED': keyboardShortcutsEnabled,
8
+ 'process.env.BUFFER_STATE_DELAY_IN_MILLISECONDS': bufferStateDelayInMilliseconds,
9
+ 'process.env.EXPERIMENTAL_CLIENT_SIDE_RENDERING_ENABLED': experimentalClientSideRenderingEnabled,
10
+ });
11
+ exports.getDefinePluginDefinitions = getDefinePluginDefinitions;
@@ -160,6 +160,28 @@ exports.EFFECT_CATALOG = [
160
160
  },
161
161
  },
162
162
  },
163
+ {
164
+ id: 'effects-linear-gradient',
165
+ category: 'Color',
166
+ label: 'linearGradient()',
167
+ description: 'Two-stop gradient effect',
168
+ effect: {
169
+ name: 'linearGradient',
170
+ importPath: '@remotion/effects/linear-gradient',
171
+ config: {},
172
+ },
173
+ },
174
+ {
175
+ id: 'effects-linear-gradient-tint',
176
+ category: 'Color',
177
+ label: 'linearGradientTint()',
178
+ description: 'Gradient tint effect',
179
+ effect: {
180
+ name: 'linearGradientTint',
181
+ importPath: '@remotion/effects/linear-gradient-tint',
182
+ config: {},
183
+ },
184
+ },
163
185
  {
164
186
  id: 'effects-thermal-vision',
165
187
  category: 'Color',
@@ -261,6 +283,17 @@ exports.EFFECT_CATALOG = [
261
283
  config: {},
262
284
  },
263
285
  },
286
+ {
287
+ id: 'effects-venetian-blinds',
288
+ category: 'Reveal',
289
+ label: 'venetianBlinds()',
290
+ description: 'Slatted reveal effect',
291
+ effect: {
292
+ name: 'venetianBlinds',
293
+ importPath: '@remotion/effects/venetian-blinds',
294
+ config: {},
295
+ },
296
+ },
264
297
  {
265
298
  id: 'effects-mirror',
266
299
  category: 'Transform',
package/dist/index.d.ts CHANGED
@@ -1,9 +1,10 @@
1
1
  export { splitAnsi, stripAnsi } from './ansi';
2
- export { AddEffectKeyframeRequest, AddEffectKeyframeResponse, AddEffectRequest, AddEffectResponse, AddKeyframesRequest, AddKeyframesResponse, AddRenderRequest, AddSequenceKeyframeRequest, AddSequenceKeyframeResponse, ApiRoutes, ApplyCodemodRequest, ApplyCodemodResponse, ApplyVisualControlRequest, ApplyVisualControlResponse, CanUpdateDefaultPropsResponse, CanUpdateSequencePropsRequest, CancelRenderRequest, CancelRenderResponse, CompositionComponentInfoRequest, CompositionComponentInfoResponse, CopyStillToClipboardRequest, DeleteEffectKeyframe, DeleteEffectRequest, DeleteEffectRequestItem, DeleteEffectResponse, DeleteJsxNodeRequest, DeleteJsxNodeRequestItem, DeleteJsxNodeResponse, DeleteKeyframesRequest, DeleteKeyframesResponse, DeleteSequenceKeyframe, DeleteStaticFileRequest, DeleteStaticFileResponse, DownloadRemoteAssetRequest, DownloadRemoteAssetResponse, DuplicateEffectRequest, DuplicateEffectRequestItem, DuplicateEffectResponse, DuplicateJsxNodeRequest, DuplicateJsxNodeResponse, InsertElementRequest, InsertElementResponse, InsertJsxElementRequest, InsertJsxElementResponse, InsertableCompositionElement, InsertableCompositionElementPosition, InstallPackageRequest, InstallPackageResponse, LogStudioErrorRequest, LogStudioErrorResponse, MoveEffectKeyframe, MoveKeyframesRequest, MoveKeyframesResponse, MoveSequenceKeyframe, OpenInEditorRequest, OpenInEditorResponse, OpenInFileExplorerRequest, PasteEffectsRequest, PasteEffectsResponse, ProjectInfoRequest, ProjectInfoResponse, RedoRequest, RedoResponse, RemoveRenderRequest, RenameStaticFileRequest, RenameStaticFileResponse, ReorderEffectRequest, ReorderEffectResponse, ReorderSequencePosition, ReorderSequenceRequest, ReorderSequenceResponse, RestartStudioRequest, RestartStudioResponse, SaveEffectPropsRequest, SaveEffectPropsResponse, SaveSequencePropEdit, SaveSequencePropsRequest, SaveSequencePropsResponse, SaveSequencePropsResult, SimpleDiff, SubscribeToDefaultPropsRequest, SubscribeToDefaultPropsResponse, SubscribeToFileExistenceRequest, SubscribeToFileExistenceResponse, SubscribeToSequencePropsRequest, SubscribeToSequencePropsResponse, UndoRequest, UndoResponse, UnsubscribeFromDefaultPropsRequest, UnsubscribeFromFileExistenceRequest, UnsubscribeFromSequencePropsRequest, UpdateAvailableRequest, UpdateAvailableResponse, UpdateDefaultPropsRequest, UpdateDefaultPropsResponse, UpdateEffectKeyframeSettingsRequest, UpdateEffectKeyframeSettingsResponse, UpdateSequenceKeyframeSettingsRequest, UpdateSequenceKeyframeSettingsResponse, type AddEffectKeyframe, type AddSequenceKeyframe, type KeyframeSettings, } from './api-requests';
2
+ export { AddEffectKeyframeRequest, AddEffectKeyframeResponse, AddEffectRequest, AddEffectResponse, AddKeyframesRequest, AddKeyframesResponse, AddRenderRequest, AddSequenceKeyframeRequest, AddSequenceKeyframeResponse, ApiRoutes, ApplyCodemodRequest, ApplyCodemodResponse, ApplyVisualControlRequest, ApplyVisualControlResponse, CanUpdateDefaultPropsResponse, CanUpdateSequencePropsRequest, CancelRenderRequest, CancelRenderResponse, CompositionComponentInfoRequest, CompositionComponentInfoResponse, CopyStillToClipboardRequest, DeleteEffectKeyframe, DeleteEffectRequest, DeleteEffectRequestItem, DeleteEffectResponse, DeleteJsxNodeRequest, DeleteJsxNodeRequestItem, DeleteJsxNodeResponse, DeleteKeyframesRequest, DeleteKeyframesResponse, DeleteSequenceKeyframe, DeleteStaticFileRequest, DeleteStaticFileResponse, DownloadRemoteAssetRequest, DownloadRemoteAssetResponse, DuplicateEffectRequest, DuplicateEffectRequestItem, DuplicateEffectResponse, DuplicateJsxNodeRequest, DuplicateJsxNodeResponse, InsertElementRequest, InsertElementResponse, InsertJsxElementRequest, InsertJsxElementResponse, InsertableCompositionElement, InsertableCompositionElementPosition, InstallPackageRequest, InstallPackageResponse, LogStudioErrorRequest, LogStudioErrorResponse, MoveEffectKeyframe, MoveKeyframesRequest, MoveKeyframesResponse, MoveSequenceKeyframe, OpenInEditorRequest, OpenInEditorResponse, OpenInFileExplorerRequest, PasteEffectsRequest, PasteEffectsResponse, ProjectInfoRequest, ProjectInfoResponse, RedoRequest, RedoResponse, RemoveRenderRequest, RenameStaticFileRequest, RenameStaticFileResponse, ReorderEffectRequest, ReorderEffectResponse, ReorderSequencePosition, ReorderSequenceRequest, ReorderSequenceResponse, RestartStudioRequest, RestartStudioResponse, SaveEffectPropsRequest, SaveEffectPropsResponse, SaveSequencePropEdit, SaveSequencePropsRequest, SaveSequencePropsResponse, SaveSequencePropsResult, SimpleDiff, SplitJsxSequenceRequest, SplitJsxSequenceResponse, SubscribeToDefaultPropsRequest, SubscribeToDefaultPropsResponse, SubscribeToFileExistenceRequest, SubscribeToFileExistenceResponse, SubscribeToSequencePropsRequest, SubscribeToSequencePropsResponse, UndoRequest, UndoResponse, UnsubscribeFromDefaultPropsRequest, UnsubscribeFromFileExistenceRequest, UnsubscribeFromSequencePropsRequest, UpdateAvailableRequest, UpdateAvailableResponse, UpdateDefaultPropsRequest, UpdateDefaultPropsResponse, UpdateEffectKeyframeSettingsRequest, UpdateEffectKeyframeSettingsResponse, UpdateSequenceKeyframeSettingsRequest, UpdateSequenceKeyframeSettingsResponse, type AddEffectKeyframe, type AddSequenceKeyframe, type KeyframeSettings, } from './api-requests';
3
3
  export { ASSET_DRAG_MIME_TYPE, makeAssetDragData, parseAssetDragData, type AssetDragData, } from './asset-drag-data';
4
4
  export type { ApplyVisualControlCodemod, RecastCodemod } from './codemods';
5
5
  export { COMPONENT_DRAG_MIME_TYPE, areComponentProps, isComponentIdentifier, isComponentImportPath, makeComponentDragData, parseComponentDragData, type ComponentDimensions, type ComponentDragData, type ComponentProp, } from './component-drag-data';
6
6
  export { DEFAULT_BUFFER_STATE_DELAY_IN_MILLISECONDS } from './default-buffer-state-delay-in-milliseconds';
7
+ export { getDefinePluginDefinitions } from './define-plugin-definitions';
7
8
  export { detectFileType, isImageFileType, type FileDimensions, type FileType, type ImageFileType, } from './detect-file-type';
8
9
  export { parseEasingClipboardData, parseEasingClipboardDataResult, type EasingClipboardData, type EasingClipboardDataParseResult, } from './easing-clipboard-data';
9
10
  export { EFFECT_CATALOG, getEffectCatalogCategories, getEffectDocumentationLink, getEffectDocumentationPath, getEffectPreviewAlt, getEffectPreviewSource, makeEffectDragDataFromCatalogItem, type EffectCatalogCategory, type EffectCatalogItem, } from './effect-catalog';
@@ -33,6 +34,8 @@ export { SCHEMA_FIELD_GROUPS, SCHEMA_FIELD_ROW_HEIGHT, getEffectFieldsToShow, ge
33
34
  export type { AnySchemaFieldInfo, DragOverrides, EffectSchemaFieldInfo, InteractivitySchemaFieldInfo, PropStatuses, SchemaFieldGroup, SchemaFieldGroupInfo, SchemaFieldInfo, SequenceControls, } from './schema-field-info';
34
35
  export { SFX_DRAG_MIME_TYPE, parseSfxDragData, type SfxDragData, } from './sfx-drag-data';
35
36
  export { ScriptLine, SomeStackFrame, StackFrame, SymbolicatedStackFrame, } from './stack-types';
37
+ export { getStudioEntryPoints, type StudioEntryPointPaths, } from './studio-entry-points';
38
+ export { studioHtml, type StudioHtmlOptions } from './studio-html';
36
39
  export { EnumPath, stringifyDefaultProps } from './stringify-default-props';
37
40
  export type { VisualControlChange } from './codemods';
38
41
  export { optimisticAddEffectKeyframe, optimisticAddSequenceKeyframe, } from './optimistic-add-keyframe';
package/dist/index.js CHANGED
@@ -14,8 +14,8 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- exports.DEFAULT_TIMELINE_TRACKS = exports.keyframeInterpolationFunctions = exports.isSchemaFieldKeyframable = exports.isKeyframeInterpolationFunction = exports.isInteractivitySchemaFieldKeyframable = exports.getKeyframeInterpolationFunctionForSchemaField = exports.getKeyframeInterpolationFunction = exports.LINEAR_KEYFRAME_EASING = exports.KEYFRAME_EASING_PRESETS = exports.hotMiddlewareOptions = exports.getProjectName = exports.getLocationFromBuildError = exports.getDefaultOutLocation = exports.getAllSchemaKeys = exports.formatBytes = exports.parseElementDragData = exports.makeElementFileNameFromSlug = exports.makeElementDragData = exports.isLowercaseElementFileName = exports.getElementComponentNameFromSourceCode = exports.ELEMENT_DRAG_MIME_TYPE = exports.parseEffectDragData = exports.EFFECT_DRAG_MIME_TYPE = exports.parseEffectPropClipboardDataResult = exports.parseEffectPropClipboardData = exports.parseEffectClipboardDataResult = exports.parseEffectClipboardData = exports.makeEffectDragDataFromCatalogItem = exports.getEffectPreviewSource = exports.getEffectPreviewAlt = exports.getEffectDocumentationPath = exports.getEffectDocumentationLink = exports.getEffectCatalogCategories = exports.EFFECT_CATALOG = exports.parseEasingClipboardDataResult = exports.parseEasingClipboardData = exports.isImageFileType = exports.detectFileType = exports.DEFAULT_BUFFER_STATE_DELAY_IN_MILLISECONDS = exports.parseComponentDragData = exports.makeComponentDragData = exports.isComponentImportPath = exports.isComponentIdentifier = exports.areComponentProps = exports.COMPONENT_DRAG_MIME_TYPE = exports.parseAssetDragData = exports.makeAssetDragData = exports.ASSET_DRAG_MIME_TYPE = exports.stripAnsi = exports.splitAnsi = void 0;
18
- exports.isUrl = exports.stringifySequenceSubscriptionKey = exports.stringifySequenceExpandedRowKey = exports.optimisticUpdateSequenceKeyframeSettings = exports.optimisticUpdateEffectKeyframeSettings = exports.optimisticUpdateForPropStatuses = exports.optimisticUpdateForEffectPropStatuses = exports.optimisticMoveSequenceKeyframes = exports.optimisticMoveEffectKeyframes = exports.moveKeyframesInPropStatus = exports.canMoveKeyframesWithoutCollisions = exports.optimisticDeleteSequenceKeyframes = exports.optimisticDeleteSequenceKeyframe = exports.optimisticDeleteEffectKeyframes = exports.optimisticDeleteEffectKeyframe = exports.optimisticAddSequenceKeyframe = exports.optimisticAddEffectKeyframe = exports.stringifyDefaultProps = exports.parseSfxDragData = exports.SFX_DRAG_MIME_TYPE = exports.getSchemaFieldGroup = exports.getFieldsToShow = exports.getEffectFieldsToShow = exports.SCHEMA_FIELD_ROW_HEIGHT = exports.SCHEMA_FIELD_GROUPS = exports.getRequiredPackageForInsertableElement = exports.getRequiredPackageForEffectImportPath = exports.parseSpringEasingConfig = exports.DEFAULT_SPRING_EASING = exports.packages = exports.installableMap = exports.extraPackages = exports.descriptions = exports.apiDocs = void 0;
17
+ exports.keyframeInterpolationFunctions = exports.isSchemaFieldKeyframable = exports.isKeyframeInterpolationFunction = exports.isInteractivitySchemaFieldKeyframable = exports.getKeyframeInterpolationFunctionForSchemaField = exports.getKeyframeInterpolationFunction = exports.LINEAR_KEYFRAME_EASING = exports.KEYFRAME_EASING_PRESETS = exports.hotMiddlewareOptions = exports.getProjectName = exports.getLocationFromBuildError = exports.getDefaultOutLocation = exports.getAllSchemaKeys = exports.formatBytes = exports.parseElementDragData = exports.makeElementFileNameFromSlug = exports.makeElementDragData = exports.isLowercaseElementFileName = exports.getElementComponentNameFromSourceCode = exports.ELEMENT_DRAG_MIME_TYPE = exports.parseEffectDragData = exports.EFFECT_DRAG_MIME_TYPE = exports.parseEffectPropClipboardDataResult = exports.parseEffectPropClipboardData = exports.parseEffectClipboardDataResult = exports.parseEffectClipboardData = exports.makeEffectDragDataFromCatalogItem = exports.getEffectPreviewSource = exports.getEffectPreviewAlt = exports.getEffectDocumentationPath = exports.getEffectDocumentationLink = exports.getEffectCatalogCategories = exports.EFFECT_CATALOG = exports.parseEasingClipboardDataResult = exports.parseEasingClipboardData = exports.isImageFileType = exports.detectFileType = exports.getDefinePluginDefinitions = exports.DEFAULT_BUFFER_STATE_DELAY_IN_MILLISECONDS = exports.parseComponentDragData = exports.makeComponentDragData = exports.isComponentImportPath = exports.isComponentIdentifier = exports.areComponentProps = exports.COMPONENT_DRAG_MIME_TYPE = exports.parseAssetDragData = exports.makeAssetDragData = exports.ASSET_DRAG_MIME_TYPE = exports.stripAnsi = exports.splitAnsi = void 0;
18
+ exports.isUrl = exports.stringifySequenceSubscriptionKey = exports.stringifySequenceExpandedRowKey = exports.optimisticUpdateSequenceKeyframeSettings = exports.optimisticUpdateEffectKeyframeSettings = exports.optimisticUpdateForPropStatuses = exports.optimisticUpdateForEffectPropStatuses = exports.optimisticMoveSequenceKeyframes = exports.optimisticMoveEffectKeyframes = exports.moveKeyframesInPropStatus = exports.canMoveKeyframesWithoutCollisions = exports.optimisticDeleteSequenceKeyframes = exports.optimisticDeleteSequenceKeyframe = exports.optimisticDeleteEffectKeyframes = exports.optimisticDeleteEffectKeyframe = exports.optimisticAddSequenceKeyframe = exports.optimisticAddEffectKeyframe = exports.stringifyDefaultProps = exports.studioHtml = exports.getStudioEntryPoints = exports.parseSfxDragData = exports.SFX_DRAG_MIME_TYPE = exports.getSchemaFieldGroup = exports.getFieldsToShow = exports.getEffectFieldsToShow = exports.SCHEMA_FIELD_ROW_HEIGHT = exports.SCHEMA_FIELD_GROUPS = exports.getRequiredPackageForInsertableElement = exports.getRequiredPackageForEffectImportPath = exports.parseSpringEasingConfig = exports.DEFAULT_SPRING_EASING = exports.packages = exports.installableMap = exports.extraPackages = exports.descriptions = exports.apiDocs = exports.DEFAULT_TIMELINE_TRACKS = void 0;
19
19
  const ansi_1 = require("./ansi");
20
20
  Object.defineProperty(exports, "splitAnsi", { enumerable: true, get: function () { return ansi_1.splitAnsi; } });
21
21
  Object.defineProperty(exports, "stripAnsi", { enumerable: true, get: function () { return ansi_1.stripAnsi; } });
@@ -33,6 +33,8 @@ Object.defineProperty(exports, "makeComponentDragData", { enumerable: true, get:
33
33
  Object.defineProperty(exports, "parseComponentDragData", { enumerable: true, get: function () { return component_drag_data_1.parseComponentDragData; } });
34
34
  const default_buffer_state_delay_in_milliseconds_1 = require("./default-buffer-state-delay-in-milliseconds");
35
35
  Object.defineProperty(exports, "DEFAULT_BUFFER_STATE_DELAY_IN_MILLISECONDS", { enumerable: true, get: function () { return default_buffer_state_delay_in_milliseconds_1.DEFAULT_BUFFER_STATE_DELAY_IN_MILLISECONDS; } });
36
+ const define_plugin_definitions_1 = require("./define-plugin-definitions");
37
+ Object.defineProperty(exports, "getDefinePluginDefinitions", { enumerable: true, get: function () { return define_plugin_definitions_1.getDefinePluginDefinitions; } });
36
38
  const detect_file_type_1 = require("./detect-file-type");
37
39
  Object.defineProperty(exports, "detectFileType", { enumerable: true, get: function () { return detect_file_type_1.detectFileType; } });
38
40
  Object.defineProperty(exports, "isImageFileType", { enumerable: true, get: function () { return detect_file_type_1.isImageFileType; } });
@@ -107,6 +109,10 @@ Object.defineProperty(exports, "getSchemaFieldGroup", { enumerable: true, get: f
107
109
  const sfx_drag_data_1 = require("./sfx-drag-data");
108
110
  Object.defineProperty(exports, "SFX_DRAG_MIME_TYPE", { enumerable: true, get: function () { return sfx_drag_data_1.SFX_DRAG_MIME_TYPE; } });
109
111
  Object.defineProperty(exports, "parseSfxDragData", { enumerable: true, get: function () { return sfx_drag_data_1.parseSfxDragData; } });
112
+ const studio_entry_points_1 = require("./studio-entry-points");
113
+ Object.defineProperty(exports, "getStudioEntryPoints", { enumerable: true, get: function () { return studio_entry_points_1.getStudioEntryPoints; } });
114
+ const studio_html_1 = require("./studio-html");
115
+ Object.defineProperty(exports, "studioHtml", { enumerable: true, get: function () { return studio_html_1.studioHtml; } });
110
116
  const stringify_default_props_1 = require("./stringify-default-props");
111
117
  Object.defineProperty(exports, "stringifyDefaultProps", { enumerable: true, get: function () { return stringify_default_props_1.stringifyDefaultProps; } });
112
118
  const optimistic_add_keyframe_1 = require("./optimistic-add-keyframe");
@@ -1,7 +1,8 @@
1
1
  import { type CanUpdateSequencePropsResponse, type InteractivitySchema } from 'remotion';
2
- export declare const optimisticUpdateForPropStatuses: ({ previous, fieldKey, value, schema, }: {
2
+ export declare const optimisticUpdateForPropStatuses: ({ previous, fieldKey, value, defaultValue, schema, }: {
3
3
  previous: CanUpdateSequencePropsResponse;
4
4
  fieldKey: string;
5
5
  value: unknown;
6
+ defaultValue?: string | null | undefined;
6
7
  schema: InteractivitySchema;
7
8
  }) => CanUpdateSequencePropsResponse;
@@ -2,14 +2,18 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.optimisticUpdateForPropStatuses = void 0;
4
4
  const no_react_1 = require("remotion/no-react");
5
- const optimisticUpdateForPropStatuses = ({ previous, fieldKey, value, schema, }) => {
5
+ const optimisticUpdateForPropStatuses = ({ previous, fieldKey, value, defaultValue, schema, }) => {
6
6
  var _a;
7
7
  if (!previous.canUpdate) {
8
8
  return previous;
9
9
  }
10
+ const serializedValue = JSON.stringify(value);
11
+ const optimisticValue = defaultValue !== null && defaultValue === serializedValue
12
+ ? undefined
13
+ : value;
10
14
  const props = {
11
15
  ...previous.props,
12
- [fieldKey]: { status: 'static', codeValue: value },
16
+ [fieldKey]: { status: 'static', codeValue: optimisticValue },
13
17
  };
14
18
  if (((_a = schema[fieldKey]) === null || _a === void 0 ? void 0 : _a.type) === 'enum') {
15
19
  const propsToDelete = no_react_1.NoReactInternals.findPropsToDelete({
@@ -1,4 +1,4 @@
1
- export declare const packages: readonly ["svg-3d-engine", "animation-utils", "animated-emoji", "astro-example", "babel-loader", "bugs", "brand", "bundler", "canvas-capture", "cli", "cloudrun", "codex-plugin", "compositor-darwin-arm64", "compositor-darwin-x64", "compositor-linux-arm64-gnu", "compositor-linux-arm64-musl", "compositor-linux-x64-gnu", "compositor-linux-x64-musl", "compositor-win32-x64-msvc", "core", "create-video", "discord-poster", "docusaurus-plugin", "docs", "enable-scss", "eslint-config", "eslint-config-flat", "eslint-config-internal", "eslint-plugin", "example-without-zod", "example", "fonts", "gif", "google-fonts", "install-whisper-cpp", "it-tests", "react18-tests", "lambda-go-example", "lambda-go", "lambda-php", "lambda-ruby", "lambda-python", "lambda", "lambda-client", "layout-utils", "rounded-text-box", "licensing", "lottie", "mcp", "media-utils", "motion-blur", "noise", "paths", "player-a11y", "player-example", "player", "preload", "renderer", "rive", "shapes", "skia", "promo-pages", "streaming", "serverless", "serverless-client", "skills", "skills-evals", "studio-server", "studio-shared", "studio", "tailwind", "tailwind-v4", "timeline-utils", "test-utils", "three", "transitions", "media-parser", "zod-types", "zod-types-v3", "webcodecs", "convert", "captions", "openai-whisper", "elevenlabs", "compositor", "example-videos", "whisper-web", "media", "remotion-media", "web-renderer", "design", "light-leaks", "starburst", "vercel", "sfx", "effects"];
1
+ export declare const packages: readonly ["svg-3d-engine", "animation-utils", "animated-emoji", "astro-example", "babel-loader", "bugs", "brand", "bundler", "browser-studio", "canvas-capture", "cli", "cloudrun", "codex-plugin", "compositor-darwin-arm64", "compositor-darwin-x64", "compositor-linux-arm64-gnu", "compositor-linux-arm64-musl", "compositor-linux-x64-gnu", "compositor-linux-x64-musl", "compositor-win32-x64-msvc", "core", "create-video", "discord-poster", "docusaurus-plugin", "docs", "enable-scss", "eslint-config", "eslint-config-flat", "eslint-config-internal", "eslint-plugin", "example-without-zod", "example", "fonts", "gif", "google-fonts", "install-whisper-cpp", "it-tests", "react18-tests", "lambda-go-example", "lambda-go", "lambda-php", "lambda-ruby", "lambda-python", "lambda", "lambda-client", "layout-utils", "rounded-text-box", "licensing", "lottie", "mcp", "media-utils", "motion-blur", "noise", "paths", "player-a11y", "player-example", "player", "preload", "renderer", "rive", "shapes", "skia", "promo-pages", "streaming", "serverless", "serverless-client", "skills", "skills-evals", "studio-server", "studio-shared", "studio", "tailwind", "tailwind-v4", "timeline-utils", "test-utils", "three", "transitions", "media-parser", "zod-types", "zod-types-v3", "webcodecs", "convert", "captions", "openai-whisper", "elevenlabs", "compositor", "example-videos", "whisper-web", "media", "remotion-media", "web-renderer", "design", "light-leaks", "starburst", "vercel", "sfx", "effects"];
2
2
  export type Pkgs = (typeof packages)[number];
3
3
  export type ExtraPackage = {
4
4
  name: string;
@@ -10,6 +10,7 @@ exports.packages = [
10
10
  'bugs',
11
11
  'brand',
12
12
  'bundler',
13
+ 'browser-studio',
13
14
  'canvas-capture',
14
15
  'cli',
15
16
  'cloudrun',
@@ -102,13 +103,13 @@ exports.packages = [
102
103
  exports.extraPackages = [
103
104
  {
104
105
  name: 'mediabunny',
105
- version: '1.45.0',
106
+ version: '1.50.3',
106
107
  description: 'Multimedia library used by Remotion',
107
108
  docsUrl: 'https://www.remotion.dev/docs/mediabunny/version',
108
109
  },
109
110
  {
110
111
  name: '@mediabunny/ac3',
111
- version: '1.45.0',
112
+ version: '1.50.3',
112
113
  description: 'AC-3 and E-AC-3 audio codec support for Mediabunny',
113
114
  docsUrl: 'https://www.remotion.dev/docs/mediabunny/formats#ac-3-and-e-ac-3',
114
115
  },
@@ -129,6 +130,7 @@ exports.descriptions = {
129
130
  core: 'Make videos programmatically',
130
131
  lambda: 'Render Remotion videos on AWS Lambda',
131
132
  bundler: 'Bundle Remotion compositions using Webpack',
133
+ 'browser-studio': 'Run Remotion Studio in the browser',
132
134
  'canvas-capture': 'Capture HTML-in-canvas content as a video',
133
135
  'studio-server': 'Run a Remotion Studio with a server backend',
134
136
  'install-whisper-cpp': 'Helpers for installing and using Whisper.cpp',
@@ -226,6 +228,7 @@ exports.installableMap = {
226
228
  bugs: false,
227
229
  brand: false,
228
230
  bundler: false,
231
+ 'browser-studio': false,
229
232
  'canvas-capture': false,
230
233
  cli: false,
231
234
  cloudrun: true,
@@ -324,6 +327,7 @@ exports.apiDocs = {
324
327
  core: 'https://www.remotion.dev/docs/remotion',
325
328
  lambda: 'https://www.remotion.dev/docs/lambda',
326
329
  bundler: 'https://www.remotion.dev/docs/bundler',
330
+ 'browser-studio': null,
327
331
  'canvas-capture': null,
328
332
  'lambda-client': null,
329
333
  'serverless-client': null,
@@ -1,4 +1,4 @@
1
- import type { DragOverrides, EffectDefinition, GetDragOverrides, GetEffectDragOverrides, PropStatuses, SequenceControls, SequencePropsSubscriptionKey, InteractivitySchema, VisibleFieldSchema } from 'remotion';
1
+ import type { DragOverrides, EffectDefinition, GetDragOverrides, GetEffectDragOverrides, InteractivitySchema, PropStatuses, SequenceControls, SequencePropsSubscriptionKey, VisibleFieldSchema } from 'remotion';
2
2
  export type { DragOverrides, PropStatuses, SequenceControls };
3
3
  export type SchemaFieldInfo = {
4
4
  key: string;
@@ -34,14 +34,15 @@ export declare const SCHEMA_FIELD_GROUPS: readonly [{
34
34
  readonly label: "Text";
35
35
  }];
36
36
  export declare const getSchemaFieldGroup: (key: string) => SchemaFieldGroup;
37
- declare const SUPPORTED_SCHEMA_TYPES: readonly ["number", "boolean", "rotation-css", "rotation-degrees", "translate", "transform-origin", "scale", "uv-coordinate", "color", "array", "enum", "hidden"];
37
+ declare const SUPPORTED_SCHEMA_TYPES: readonly ["number", "boolean", "rotation-css", "rotation-degrees", "translate", "transform-origin", "scale", "uv-coordinate", "color", "text-content", "array", "enum", "hidden"];
38
38
  type SupportedSchemaType = (typeof SUPPORTED_SCHEMA_TYPES)[number];
39
- export declare const getFieldsToShow: ({ getDragOverrides, propStatuses, nodePath, schema, currentRuntimeValueDotNotation, }: {
39
+ export declare const getFieldsToShow: ({ getDragOverrides, propStatuses, nodePath, schema, currentRuntimeValueDotNotation, includeTextContent, }: {
40
40
  schema: InteractivitySchema;
41
41
  currentRuntimeValueDotNotation: Record<string, unknown>;
42
42
  getDragOverrides: GetDragOverrides;
43
43
  propStatuses: PropStatuses;
44
44
  nodePath: SequencePropsSubscriptionKey;
45
+ includeTextContent?: boolean | undefined;
45
46
  }) => InteractivitySchemaFieldInfo[] | null;
46
47
  export declare const getEffectFieldsToShow: ({ effect, effectIndex, nodePath, propStatuses, getEffectDragOverrides, }: {
47
48
  effect: EffectDefinition<unknown>;
@@ -21,6 +21,7 @@ const TRANSFORM_FIELD_KEYS = new Set([
21
21
  'style.opacity',
22
22
  ]);
23
23
  const TEXT_FIELD_KEYS = new Set([
24
+ 'children',
24
25
  'style.color',
25
26
  'style.fontSize',
26
27
  'style.lineHeight',
@@ -59,6 +60,7 @@ const SUPPORTED_SCHEMA_TYPES = [
59
60
  'scale',
60
61
  'uv-coordinate',
61
62
  'color',
63
+ 'text-content',
62
64
  'array',
63
65
  'enum',
64
66
  'hidden',
@@ -80,6 +82,9 @@ const getSchemaFieldRowHeight = ({ fieldSchema, value, }) => {
80
82
  value,
81
83
  }) * exports.SCHEMA_FIELD_ROW_HEIGHT);
82
84
  }
85
+ if (fieldSchema.type === 'text-content') {
86
+ return exports.SCHEMA_FIELD_ROW_HEIGHT * 2;
87
+ }
83
88
  return exports.SCHEMA_FIELD_ROW_HEIGHT;
84
89
  };
85
90
  const getEffectFieldValue = ({ key, dragOverrides, effectStatus, }) => {
@@ -96,7 +101,7 @@ const getEffectFieldValue = ({ key, dragOverrides, effectStatus, }) => {
96
101
  }
97
102
  return propStatus.codeValue;
98
103
  };
99
- const getFieldsToShow = ({ getDragOverrides, propStatuses, nodePath, schema, currentRuntimeValueDotNotation, }) => {
104
+ const getFieldsToShow = ({ getDragOverrides, propStatuses, nodePath, schema, currentRuntimeValueDotNotation, includeTextContent, }) => {
100
105
  const { merged: valuesDotNotation } = remotion_1.Internals.computeEffectiveSchemaValuesDotNotation({
101
106
  schema,
102
107
  currentValue: currentRuntimeValueDotNotation,
@@ -117,6 +122,9 @@ const getFieldsToShow = ({ getDragOverrides, propStatuses, nodePath, schema, cur
117
122
  if (fieldSchema.type === 'number' && fieldSchema.hiddenFromList) {
118
123
  return null;
119
124
  }
125
+ if (fieldSchema.type === 'text-content' && !includeTextContent) {
126
+ return null;
127
+ }
120
128
  // `hidden` is represented as the eye/speaker icon on the timeline track,
121
129
  // so we don't render it as a regular field in the expanded section.
122
130
  if (key === 'hidden') {
@@ -0,0 +1,9 @@
1
+ export type StudioEntryPointPaths = {
2
+ fastRefreshRuntime: string | null;
3
+ environmentSetup: string;
4
+ sequenceStackTraces: string | null;
5
+ userDefinedComponent: string;
6
+ reactShim: string;
7
+ studioRenderEntry: string;
8
+ };
9
+ export declare const getStudioEntryPoints: ({ fastRefreshRuntime, environmentSetup, sequenceStackTraces, userDefinedComponent, reactShim, studioRenderEntry, }: StudioEntryPointPaths) => [string, ...string[]];
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getStudioEntryPoints = void 0;
4
+ const getStudioEntryPoints = ({ fastRefreshRuntime, environmentSetup, sequenceStackTraces, userDefinedComponent, reactShim, studioRenderEntry, }) => [
5
+ // Fast Refresh must come first because setup-environment imports ReactDOM.
6
+ // If ReactDOM is imported before Fast Refresh, Fast Refresh does not work.
7
+ fastRefreshRuntime,
8
+ environmentSetup,
9
+ sequenceStackTraces,
10
+ userDefinedComponent,
11
+ reactShim,
12
+ studioRenderEntry,
13
+ ].filter(Boolean);
14
+ exports.getStudioEntryPoints = getStudioEntryPoints;
@@ -0,0 +1,32 @@
1
+ import type { LogLevel, StaticFile } from 'remotion';
2
+ import type { GitSource } from './git-source';
3
+ import type { PackageManager } from './package-manager';
4
+ import type { RenderDefaults } from './render-defaults';
5
+ export type StudioHtmlOptions = {
6
+ staticHash: string;
7
+ publicPath: string;
8
+ editorName: string | null;
9
+ inputProps: object | null;
10
+ envVariables?: Record<string, string>;
11
+ remotionRoot: string;
12
+ studioServerCommand: string | null;
13
+ renderQueue: unknown | null;
14
+ completedClientRenders?: unknown | null;
15
+ numberOfAudioTags: number;
16
+ audioLatencyHint: AudioContextLatencyCategory;
17
+ sampleRate: number | null;
18
+ publicFiles: StaticFile[];
19
+ publicFolderExists: string | null;
20
+ includeFavicon: boolean;
21
+ title: string;
22
+ renderDefaults: RenderDefaults | undefined;
23
+ gitSource: GitSource | null;
24
+ projectName: string;
25
+ installedDependencies: string[] | null;
26
+ packageManager: PackageManager | 'unknown';
27
+ logLevel: LogLevel;
28
+ mode: 'dev' | 'bundle';
29
+ bundleScriptUrl?: string;
30
+ readOnlyStudio?: boolean;
31
+ };
32
+ export declare const studioHtml: ({ publicPath, editorName, inputProps, envVariables, staticHash, remotionRoot, studioServerCommand, renderQueue, completedClientRenders, numberOfAudioTags, publicFiles, includeFavicon, title, renderDefaults, publicFolderExists, gitSource, projectName, installedDependencies, packageManager, audioLatencyHint, sampleRate, logLevel, mode, bundleScriptUrl, readOnlyStudio, }: StudioHtmlOptions) => string;
@@ -0,0 +1,79 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.studioHtml = void 0;
4
+ const remotion_1 = require("remotion");
5
+ const studioHtml = ({ publicPath, editorName, inputProps, envVariables, staticHash, remotionRoot, studioServerCommand, renderQueue, completedClientRenders, numberOfAudioTags, publicFiles, includeFavicon, title, renderDefaults, publicFolderExists, gitSource, projectName, installedDependencies, packageManager, audioLatencyHint, sampleRate, logLevel, mode, bundleScriptUrl, readOnlyStudio, }) => {
6
+ const scriptUrl = bundleScriptUrl !== null && bundleScriptUrl !== void 0 ? bundleScriptUrl : `${publicPath}bundle.js`;
7
+ return `
8
+ <!DOCTYPE html>
9
+ <html lang="en">
10
+ <head>
11
+ <meta charset="UTF-8" />
12
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
13
+ ${includeFavicon
14
+ ? `<link id="__remotion_favicon" rel="icon" type="image/png" href="${publicPath}favicon.ico" />`
15
+ : ''}
16
+ <title>${title}</title>
17
+ </head>
18
+ <body>
19
+ <script>window.remotion_numberOfAudioTags = ${numberOfAudioTags};</script>
20
+ <script>window.remotion_audioLatencyHint = "${audioLatencyHint}";</script>
21
+ <script>window.remotion_sampleRate = ${sampleRate};</script>
22
+ <script>window.remotion_previewSampleRate = ${sampleRate};</script>
23
+ ${mode === 'dev' ? `<script>window.remotion_logLevel = "${logLevel}";</script>` : ''}
24
+ <script>window.remotion_staticBase = "${staticHash}";</script>
25
+ ${editorName
26
+ ? `<script>window.remotion_editorName = "${editorName}";</script>`
27
+ : '<script>window.remotion_editorName = null;</script>'}
28
+ <script>window.remotion_projectName = ${JSON.stringify(projectName)};</script>
29
+ <script>window.remotion_publicPath = ${JSON.stringify(publicPath)};</script>
30
+ <script>window.remotion_audioEnabled = true;</script>
31
+ <script>window.remotion_videoEnabled = true;</script>
32
+ <script>window.remotion_renderDefaults = ${JSON.stringify(renderDefaults)};</script>
33
+ <script>window.remotion_cwd = ${JSON.stringify(remotionRoot)};</script>
34
+ <script>window.remotion_studioServerCommand = ${studioServerCommand ? JSON.stringify(studioServerCommand) : 'null'};</script>
35
+ ${inputProps
36
+ ? `<script>window.remotion_inputProps = ${JSON.stringify(JSON.stringify(inputProps))};</script>`
37
+ : ''}
38
+ ${renderQueue
39
+ ? `<script>window.remotion_initialRenderQueue = ${JSON.stringify(renderQueue)};</script>`
40
+ : ''}
41
+ ${completedClientRenders
42
+ ? `<script>window.remotion_initialClientRenders = ${JSON.stringify(completedClientRenders)};</script>`
43
+ : ''}
44
+ ${envVariables
45
+ ? `<script>window.process = {env: ${JSON.stringify(envVariables)}};</script>`
46
+ : ''}
47
+ ${gitSource
48
+ ? `<script>window.remotion_gitSource = ${JSON.stringify(gitSource)};</script>`
49
+ : ''}
50
+ ${mode === 'dev'
51
+ ? `
52
+ <script>window.remotion_isStudio = true;</script>
53
+ <script>window.remotion_isReadOnlyStudio = ${readOnlyStudio ? 'true' : 'false'};</script>`.trimStart()
54
+ : ''}
55
+ <script>window.remotion_staticFiles = ${JSON.stringify(publicFiles)}</script>
56
+ <script>window.remotion_installedPackages = ${JSON.stringify(installedDependencies)}</script>
57
+ <script>window.remotion_packageManager = ${JSON.stringify(packageManager)}</script>
58
+ <script>window.remotion_publicFolderExists = ${JSON.stringify(publicFolderExists)};</script>
59
+ <script>
60
+ window.siteVersion = '11';
61
+ window.remotion_version = '${remotion_1.VERSION}';
62
+ </script>
63
+
64
+ <div id="video-container"></div>
65
+ <div id="${remotion_1.Internals.REMOTION_STUDIO_CONTAINER_ELEMENT}"></div>
66
+ <div id="remotion-error-overlay"></div>
67
+ <div id="server-disconnected-overlay"></div>
68
+ <div id="menuportal-0"></div>
69
+ <div id="menuportal-1"></div>
70
+ <div id="menuportal-2"></div>
71
+ <div id="menuportal-3"></div>
72
+ <div id="menuportal-4"></div>
73
+ <div id="menuportal-5"></div>
74
+ <script src="${scriptUrl}"></script>
75
+ </body>
76
+ </html>
77
+ `.trim();
78
+ };
79
+ exports.studioHtml = studioHtml;
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "url": "https://github.com/remotion-dev/remotion/tree/main/packages/studio-shared"
4
4
  },
5
5
  "name": "@remotion/studio-shared",
6
- "version": "4.0.483",
6
+ "version": "4.0.485",
7
7
  "description": "Internal package for shared objects between the Studio backend and frontend",
8
8
  "main": "dist",
9
9
  "scripts": {
@@ -20,11 +20,11 @@
20
20
  "url": "https://github.com/remotion-dev/remotion/issues"
21
21
  },
22
22
  "dependencies": {
23
- "remotion": "4.0.483"
23
+ "remotion": "4.0.485"
24
24
  },
25
25
  "devDependencies": {
26
- "@remotion/renderer": "4.0.483",
27
- "@remotion/eslint-config-internal": "4.0.483",
26
+ "@remotion/renderer": "4.0.485",
27
+ "@remotion/eslint-config-internal": "4.0.485",
28
28
  "eslint": "9.19.0",
29
29
  "@typescript/native-preview": "7.0.0-dev.20260217.1"
30
30
  },
@@ -33,6 +33,18 @@
33
33
  },
34
34
  "exports": {
35
35
  ".": "./dist/index.js",
36
+ "./define-plugin-definitions": {
37
+ "types": "./dist/define-plugin-definitions.d.ts",
38
+ "default": "./dist/define-plugin-definitions.js"
39
+ },
40
+ "./studio-entry-points": {
41
+ "types": "./dist/studio-entry-points.d.ts",
42
+ "default": "./dist/studio-entry-points.js"
43
+ },
44
+ "./studio-html": {
45
+ "types": "./dist/studio-html.d.ts",
46
+ "default": "./dist/studio-html.js"
47
+ },
36
48
  "./package.json": "./package.json"
37
49
  }
38
50
  }