@remotion/studio-shared 4.0.507 → 4.0.509

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.
@@ -9,7 +9,7 @@ var KEYFRAME_FIELD_TYPE_SUPPORT = {
9
9
  boolean: false,
10
10
  "remotion-captions": false,
11
11
  color: true,
12
- enum: false,
12
+ enum: true,
13
13
  "font-family": false,
14
14
  hidden: true,
15
15
  number: true,
@@ -27,7 +27,7 @@ var KEYFRAME_FIELD_TYPE_INTERPOLATION = {
27
27
  boolean: "unsupported",
28
28
  "remotion-captions": "unsupported",
29
29
  color: "interpolateColors",
30
- enum: "unsupported",
30
+ enum: "interpolate",
31
31
  "font-family": "unsupported",
32
32
  hidden: "infer",
33
33
  number: "infer",
@@ -51,6 +51,9 @@ var isInteractivitySchemaFieldKeyframable = (field) => {
51
51
  if (!field) {
52
52
  return true;
53
53
  }
54
+ if (field.type === "enum") {
55
+ return field.keyframable === true;
56
+ }
54
57
  return KEYFRAME_FIELD_TYPE_SUPPORT[field.type] && field.keyframable !== false;
55
58
  };
56
59
  var findFieldInSchema = (schema, key) => {
@@ -77,6 +80,13 @@ var isSchemaFieldKeyframable = ({
77
80
  const field = schema ? findFieldInSchema(schema, key) : undefined;
78
81
  return isInteractivitySchemaFieldKeyframable(field);
79
82
  };
83
+ var isSchemaFieldHoldOnly = ({
84
+ schema,
85
+ key
86
+ }) => {
87
+ const field = schema ? findFieldInSchema(schema, key) : undefined;
88
+ return field?.type === "enum" && field.keyframable === true;
89
+ };
80
90
  var getKeyframeInterpolationFunctionForSchemaField = ({
81
91
  schema,
82
92
  key
@@ -106,6 +116,7 @@ var getKeyframeInterpolationFunction = ({
106
116
  export {
107
117
  keyframeInterpolationFunctions,
108
118
  isSchemaFieldKeyframable,
119
+ isSchemaFieldHoldOnly,
109
120
  isKeyframeInterpolationFunction,
110
121
  isInteractivitySchemaFieldKeyframable,
111
122
  getKeyframeInterpolationFunctionForSchemaField,
@@ -22,6 +22,7 @@ var studioHtml = ({
22
22
  installedDependencies,
23
23
  packageManager,
24
24
  audioLatencyHint,
25
+ experimentalKeepAudioContextAlive,
25
26
  sampleRate,
26
27
  logLevel,
27
28
  mode,
@@ -46,6 +47,7 @@ var studioHtml = ({
46
47
  <body>
47
48
  <script>window.remotion_numberOfAudioTags = ${numberOfAudioTags};</script>
48
49
  <script>window.remotion_audioLatencyHint = "${audioLatencyHint}";</script>
50
+ <script>window.remotion_experimentalKeepAudioContextAlive = ${experimentalKeepAudioContextAlive};</script>
49
51
  <script>window.remotion_sampleRate = ${sampleRate};</script>
50
52
  <script>window.remotion_previewSampleRate = ${sampleRate};</script>
51
53
  ${mode === "dev" ? `<script>window.remotion_logLevel = "${logLevel}";</script>` : ""}
@@ -4,6 +4,7 @@ import type { ConfigFileChangeType } from './config-file-change';
4
4
  import type { HotMiddlewareMessage } from './hot-middleware';
5
5
  import type { RenderDefaults } from './render-defaults';
6
6
  import type { CompletedClientRender, RenderJob } from './render-job';
7
+ import type { SequenceNodePathMutation } from './sequence-node-path-mutation';
7
8
  import type { StudioRuntimeConfig } from './studio-runtime-config';
8
9
  export type EventSourceEvent = {
9
10
  type: 'new-input-props';
@@ -53,6 +54,9 @@ export type EventSourceEvent = {
53
54
  fileName: string;
54
55
  nodePath: SequencePropsSubscriptionKey;
55
56
  result: CanUpdateSequencePropsResponse;
57
+ } | {
58
+ type: 'sequence-node-paths-remapped';
59
+ mutation: SequenceNodePathMutation;
56
60
  } | {
57
61
  type: 'lost-node-path';
58
62
  fileName: string;
package/dist/index.d.ts CHANGED
@@ -1,8 +1,13 @@
1
1
  export { splitAnsi, stripAnsi } from './ansi';
2
- export { AddEffectKeyframeRequest, AddEffectKeyframeResponse, AddEffectRequest, AddEffectResponse, AddKeyframesRequest, AddKeyframesResponse, AddRenderRequest, AddSequenceKeyframeRequest, AddSequenceKeyframeResponse, ApiRoutes, ApplyCodemodRequest, ApplyCodemodResponse, ApplyVisualControlRequest, ApplyVisualControlResponse, BatchUpdateEffectKeyframeSettings, BatchUpdateKeyframeSettingsRequest, BatchUpdateKeyframeSettingsResponse, BatchUpdateSequenceKeyframeSettings, CanUpdateDefaultPropsResponse, CanUpdateSequencePropsRequest, CancelRenderRequest, CancelRenderResponse, CaptionPatch, CompositionComponentInfoRequest, CompositionComponentInfoResponse, ConvertFigmaClipboardToSvgRequest, ConvertFigmaClipboardToSvgResponse, CopyRenderOutputToAssetRequest, CopyRenderOutputToAssetResponse, CopyStillToClipboardRequest, DeleteEffectKeyframe, DeleteEffectRequest, DeleteEffectRequestItem, DeleteEffectResponse, DeleteJsxNodeRequest, DeleteJsxNodeRequestItem, DeleteJsxNodeResponse, DeleteKeyframesRequest, DeleteKeyframesResponse, DeleteSequenceKeyframe, DeleteStaticFileRequest, DeleteStaticFileResponse, DownloadRemoteAssetRequest, DownloadRemoteAssetResponse, DuplicateEffectRequest, DuplicateEffectRequestItem, DuplicateEffectResponse, DuplicateJsxNodeRequest, DuplicateJsxNodeResponse, EditorPickerId, ElementInstallExpectedFileState, ElementInstallRequest, ElementInstallSource, FindInFileRequest, FindInFileResponse, GetDefaultCodingAgentInfoRequest, GetDefaultCodingAgentInfoResponse, GetDefaultEditorInfoRequest, GetDefaultEditorInfoResponse, GoogleFontSourceEdit, InsertElementFileConflict, InsertElementRequest, InsertElementResponse, InsertJsxElementRequest, InsertJsxElementResponse, InsertableCompositionElement, InsertableCompositionElementPosition, InstallPackageRequest, InstallPackageResponse, LogStudioErrorRequest, LogStudioErrorResponse, MoveEffectKeyframe, MoveKeyframesRequest, MoveKeyframesResponse, MoveSequenceKeyframe, OpenInCodingAgentRequest, OpenInCodingAgentResponse, OpenInEditorRequest, OpenInEditorResponse, OpenInFileExplorerRequest, PackageInstallSpec, PasteEffectsRequest, PasteEffectsResponse, PrepareElementInstallRequest, PrepareElementInstallResponse, ProjectInfoRequest, ProjectInfoResponse, RedoRequest, RedoResponse, RemoveRenderRequest, RenameStaticFileRequest, RenameStaticFileResponse, ReorderEffectRequest, ReorderEffectResponse, ReorderSequencePosition, ReorderSequenceRequest, ReorderSequenceResponse, RestartStudioRequest, RestartStudioResponse, SaveEffectPropsRequest, SaveEffectPropsResponse, SaveInlineCaptionPatchesRequest, SaveMultipleEffectPropsEdit, SaveMultipleEffectPropsRequest, SaveMultipleEffectPropsResponse, SaveMultipleEffectPropsResult, SaveSequencePropEdit, SaveSequencePropSourceEdit, SaveSequencePropsRequest, SaveSequencePropsResponse, SaveSequencePropsResult, SimpleDiff, SplitJsxSequenceRequest, SplitJsxSequenceResponse, SubscribeToDefaultPropsRequest, SubscribeToDefaultPropsResponse, SubscribeToFileExistenceRequest, SubscribeToFileExistenceResponse, SubscribeToSequencePropsRequest, SubscribeToSequencePropsResponse, UndoRequest, UndoResponse, UnsubscribeFromDefaultPropsRequest, UnsubscribeFromFileExistenceRequest, UnsubscribeFromSequencePropsRequest, UpdateAvailableRequest, UpdateAvailableResponse, UpdateConfigRequest, UpdateConfigResponse, UpdateDefaultPropsRequest, UpdateDefaultPropsResponse, UpdateEffectKeyframeSettingsRequest, UpdateEffectKeyframeSettingsResponse, UpdateElementInstallTargetRequest, UpdateElementInstallTargetResponse, UpdateSequenceKeyframeSettingsRequest, UpdateSequenceKeyframeSettingsResponse, type AddEffectKeyframe, type AddSequenceKeyframe, type ConfigUpdate, type ConfigValue, type KeyframeSettings, } from './api-requests';
2
+ export type { TerminalId } from './terminal';
3
+ export { AddEffectKeyframeRequest, AddEffectKeyframeResponse, AddEffectRequest, AddEffectResponse, AddKeyframesRequest, AddKeyframesResponse, AddRenderRequest, AddSequenceKeyframeRequest, AddSequenceKeyframeResponse, ApiRoutes, ApplyCodemodRequest, ApplyCodemodResponse, ApplyVisualControlRequest, ApplyVisualControlResponse, BatchUpdateEffectKeyframeSettings, BatchUpdateKeyframeSettingsRequest, BatchUpdateKeyframeSettingsResponse, BatchUpdateSequenceKeyframeSettings, CanUpdateDefaultPropsResponse, CanUpdateSequencePropsRequest, CancelRenderRequest, CancelRenderResponse, CaptionPatch, CompositionComponentInfoRequest, CompositionComponentInfoResponse, ConvertFigmaClipboardToSvgRequest, ConvertFigmaClipboardToSvgResponse, CopyRenderOutputToAssetRequest, CopyRenderOutputToAssetResponse, CopyStillToClipboardRequest, DeleteEffectKeyframe, DeleteEffectRequest, DeleteEffectRequestItem, DeleteEffectResponse, DeleteJsxNodeRequest, DeleteJsxNodeRequestItem, DeleteJsxNodeResponse, DeleteKeyframesRequest, DeleteKeyframesResponse, DeleteSequenceKeyframe, DeleteStaticFileRequest, DeleteStaticFileResponse, DownloadRemoteAssetRequest, DownloadRemoteAssetResponse, DuplicateEffectRequest, DuplicateEffectRequestItem, DuplicateEffectResponse, DuplicateJsxNodeRequest, DuplicateJsxNodeResponse, EditorPickerId, ElementInstallExpectedFileState, ElementInstallRequest, ElementInstallSource, FindInFileRequest, FindInFileResponse, GetDefaultCodingAgentInfoRequest, GetDefaultCodingAgentInfoResponse, GetDefaultEditorInfoRequest, GetDefaultEditorInfoResponse, GoogleFontSourceEdit, InsertElementFileConflict, InsertElementRequest, InsertElementResponse, InsertJsxElementRequest, InsertJsxElementResponse, InsertableCompositionElement, InsertableCompositionElementPosition, InstallPackageRequest, InstallPackageResponse, LogStudioErrorRequest, LogStudioErrorResponse, MoveEffectKeyframe, MoveKeyframesRequest, MoveKeyframesResponse, MoveSequenceKeyframe, OpenInCodingAgentRequest, OpenInCodingAgentResponse, OpenInEditorRequest, OpenInEditorResponse, OpenInFileExplorerRequest, OpenInTerminalRequest, OpenInTerminalResponse, PackageInstallSpec, PasteEffectsRequest, PasteEffectsResponse, PrepareElementInstallRequest, PrepareElementInstallResponse, ProjectInfoRequest, ProjectInfoResponse, RedoRequest, RedoResponse, RemoveRenderRequest, RenameStaticFileRequest, RenameStaticFileResponse, ReorderEffectRequest, ReorderEffectResponse, ReorderSequencePosition, ReorderSequenceRequest, ReorderSequenceResponse, RestartStudioRequest, RestartStudioResponse, SaveEffectPropsRequest, SaveEffectPropsResponse, SaveInlineCaptionPatchesRequest, SaveMultipleEffectPropsEdit, SaveMultipleEffectPropsRequest, SaveMultipleEffectPropsResponse, SaveMultipleEffectPropsResult, SaveSequencePropEdit, SaveSequencePropSourceEdit, SaveSequencePropsRequest, SaveSequencePropsResponse, SaveSequencePropsResult, SimpleDiff, SplitJsxSequenceRequest, SplitJsxSequenceResponse, SubscribeToDefaultPropsRequest, SubscribeToDefaultPropsResponse, SubscribeToFileExistenceRequest, SubscribeToFileExistenceResponse, SubscribeToSequencePropsRequest, SubscribeToSequencePropsResponse, UndoRequest, UndoResponse, UnsubscribeFromDefaultPropsRequest, UnsubscribeFromFileExistenceRequest, UnsubscribeFromSequencePropsRequest, UpdateAvailableRequest, UpdateAvailableResponse, UpdateConfigRequest, UpdateConfigResponse, UpdateDefaultPropsRequest, UpdateDefaultPropsResponse, UpdateEffectKeyframeSettingsRequest, UpdateEffectKeyframeSettingsResponse, UpdateElementInstallTargetRequest, UpdateElementInstallTargetResponse, UpdateSequenceKeyframeSettingsRequest, UpdateSequenceKeyframeSettingsResponse, type AddEffectKeyframe, type AddSequenceKeyframe, type ConfigUpdate, type ConfigValue, type KeyframeSettings, } from './api-requests';
3
4
  export type { BrowserStudioOperations } from './browser-studio-operations';
5
+ export type { CanvasCaptureData, CanvasCaptureMouseMovement, CanvasCapturePointerClick, } from './canvas-capture';
6
+ export { CANVAS_CAPTURE_METADATA_TAG, parseCanvasCaptureData, } from './canvas-capture';
7
+ export type { SequenceNodePathMutation, SequenceNodePathRemapping, } from './sequence-node-path-mutation';
4
8
  export type { ApplyVisualControlCodemod, RecastCodemod } from './codemods';
5
9
  export { compositionDragDataToSymbolicatedStack } from './composition-drag-data';
10
+ export { REACT_REFRESH_FINISHED_EVENT } from './react-refresh-event';
6
11
  export { getConfigFileChangeMessage, type ConfigFileChangeType, } from './config-file-change';
7
12
  export { configMethodLifecycles } from './config-method-lifecycles';
8
13
  export { DEFAULT_BUFFER_STATE_DELAY_IN_MILLISECONDS } from './default-buffer-state-delay-in-milliseconds';
@@ -10,6 +15,7 @@ export { detectFileType, isImageFileType, type FileDimensions, type FileType, ty
10
15
  export { parseEasingClipboardData, parseEasingClipboardDataResult, type EasingClipboardData, type EasingClipboardDataParseResult, } from './easing-clipboard-data';
11
16
  export { EFFECT_CATALOG, getEffectCatalogCategories, getEffectDocumentationLink, getEffectDocumentationPath, getEffectPreviewAlt, getEffectPreviewSource, type EffectCatalogCategory, type EffectCatalogItem, } from './effect-catalog';
12
17
  export { parseEffectClipboardData, parseEffectClipboardDataResult, parseEffectPropClipboardData, parseEffectPropClipboardDataResult, type EffectClipboardClamping, type EffectClipboardData, type EffectClipboardDataParseResult, type EffectClipboardEasing, type EffectClipboardExtrapolateType, type EffectClipboardInterpolationFunction, type EffectClipboardKeyframe, type EffectClipboardKeyframedParam, type EffectClipboardParam, type EffectClipboardPasteType, type EffectClipboardSnapshot, type EffectClipboardStaticParam, type EffectPropClipboardData, type EffectPropClipboardDataParseResult, } from './effect-clipboard-data';
18
+ export { parseSequencePropClipboardData, parseSequencePropClipboardDataResult, type SequencePropClipboardData, type SequencePropClipboardDataParseResult, } from './sequence-prop-clipboard-data';
13
19
  export { EventSourceEvent } from './event-source-event';
14
20
  export { formatBytes } from './format-bytes';
15
21
  export { getAllSchemaKeys, getAssetSchemaKeys } from './get-all-keys';
@@ -20,7 +26,7 @@ export type { GitSource } from './git-source';
20
26
  export { HotMiddlewareMessage, HotMiddlewareOptions, ModuleMap, hotMiddlewareOptions, } from './hot-middleware';
21
27
  export { isKeyframeClipboardFieldType, parseKeyframeClipboardData, parseKeyframeClipboardDataResult, type KeyframeClipboardData, type KeyframeClipboardDataParseResult, type KeyframeClipboardFieldType, } from './keyframe-clipboard-data';
22
28
  export { CUBIC_KEYFRAME_EASING, EASE_KEYFRAME_EASING, HOLD_KEYFRAME_EASING, KEYFRAME_EASING_PRESETS, LINEAR_KEYFRAME_EASING, QUAD_KEYFRAME_EASING, getBackKeyframeEasing, getOutKeyframeEasing, getPolyKeyframeEasing, type KeyframeEasing, type KeyframeEasingPreset, } from './keyframe-easing-presets';
23
- export { canEditEasingForInterpolationFunction, getKeyframeInterpolationFunction, getKeyframeInterpolationFunctionForSchemaField, isInteractivitySchemaFieldKeyframable, isKeyframeInterpolationFunction, isSchemaFieldKeyframable, keyframeInterpolationFunctions, type KeyframeInterpolationFunction, } from './keyframe-interpolation-function';
29
+ export { canEditEasingForInterpolationFunction, getKeyframeInterpolationFunction, isSchemaFieldHoldOnly, getKeyframeInterpolationFunctionForSchemaField, isInteractivitySchemaFieldKeyframable, isKeyframeInterpolationFunction, isSchemaFieldKeyframable, keyframeInterpolationFunctions, type KeyframeInterpolationFunction, } from './keyframe-interpolation-function';
24
30
  export { DEFAULT_TIMELINE_TRACKS } from './max-timeline-tracks';
25
31
  export { Pkgs, apiDocs, descriptions, extraPackages, installableMap, packages, type ExtraPackage, } from './package-info';
26
32
  export { PackageManager } from './package-manager';
package/dist/index.js CHANGED
@@ -14,14 +14,19 @@ 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.extraPackages = exports.descriptions = exports.apiDocs = exports.DEFAULT_TIMELINE_TRACKS = exports.keyframeInterpolationFunctions = exports.isSchemaFieldKeyframable = exports.isKeyframeInterpolationFunction = exports.isInteractivitySchemaFieldKeyframable = exports.getKeyframeInterpolationFunctionForSchemaField = exports.getKeyframeInterpolationFunction = exports.canEditEasingForInterpolationFunction = exports.getPolyKeyframeEasing = exports.getOutKeyframeEasing = exports.getBackKeyframeEasing = exports.QUAD_KEYFRAME_EASING = exports.LINEAR_KEYFRAME_EASING = exports.KEYFRAME_EASING_PRESETS = exports.HOLD_KEYFRAME_EASING = exports.EASE_KEYFRAME_EASING = exports.CUBIC_KEYFRAME_EASING = exports.parseKeyframeClipboardDataResult = exports.parseKeyframeClipboardData = exports.isKeyframeClipboardFieldType = exports.hotMiddlewareOptions = exports.getProjectName = exports.getLocationFromBuildError = exports.getDefaultOutLocation = exports.getAssetSchemaKeys = exports.getAllSchemaKeys = exports.formatBytes = exports.parseEffectPropClipboardDataResult = exports.parseEffectPropClipboardData = exports.parseEffectClipboardDataResult = exports.parseEffectClipboardData = 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.configMethodLifecycles = exports.getConfigFileChangeMessage = exports.compositionDragDataToSymbolicatedStack = 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.getStylePropertyLonghandKeys = exports.BORDER_RADIUS_SHORTHAND_KEY = exports.BORDER_RADIUS_LONGHAND_KEYS = exports.studioHtml = exports.getStudioEntryPoints = exports.stringifyDefaultProps = exports.getSchemaFieldGroup = exports.getFieldsToShow = exports.getEffectFieldsToShow = exports.SCHEMA_FIELD_ROW_HEIGHT = exports.SCHEMA_FIELD_GROUPS = exports.isValidPackageName = exports.getRequiredPackageForInsertableElement = exports.getRequiredPackageForEffectImportPath = exports.parseSpringEasingConfig = exports.DEFAULT_SPRING_EASING = exports.packages = exports.installableMap = void 0;
17
+ exports.isKeyframeInterpolationFunction = exports.isInteractivitySchemaFieldKeyframable = exports.getKeyframeInterpolationFunctionForSchemaField = exports.isSchemaFieldHoldOnly = exports.getKeyframeInterpolationFunction = exports.canEditEasingForInterpolationFunction = exports.getPolyKeyframeEasing = exports.getOutKeyframeEasing = exports.getBackKeyframeEasing = exports.QUAD_KEYFRAME_EASING = exports.LINEAR_KEYFRAME_EASING = exports.KEYFRAME_EASING_PRESETS = exports.HOLD_KEYFRAME_EASING = exports.EASE_KEYFRAME_EASING = exports.CUBIC_KEYFRAME_EASING = exports.parseKeyframeClipboardDataResult = exports.parseKeyframeClipboardData = exports.isKeyframeClipboardFieldType = exports.hotMiddlewareOptions = exports.getProjectName = exports.getLocationFromBuildError = exports.getDefaultOutLocation = exports.getAssetSchemaKeys = exports.getAllSchemaKeys = exports.formatBytes = exports.parseSequencePropClipboardDataResult = exports.parseSequencePropClipboardData = exports.parseEffectPropClipboardDataResult = exports.parseEffectPropClipboardData = exports.parseEffectClipboardDataResult = exports.parseEffectClipboardData = 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.configMethodLifecycles = exports.getConfigFileChangeMessage = exports.REACT_REFRESH_FINISHED_EVENT = exports.compositionDragDataToSymbolicatedStack = exports.parseCanvasCaptureData = exports.CANVAS_CAPTURE_METADATA_TAG = 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.getStylePropertyLonghandKeys = exports.BORDER_RADIUS_SHORTHAND_KEY = exports.BORDER_RADIUS_LONGHAND_KEYS = exports.studioHtml = exports.getStudioEntryPoints = exports.stringifyDefaultProps = exports.getSchemaFieldGroup = exports.getFieldsToShow = exports.getEffectFieldsToShow = exports.SCHEMA_FIELD_ROW_HEIGHT = exports.SCHEMA_FIELD_GROUPS = exports.isValidPackageName = exports.getRequiredPackageForInsertableElement = exports.getRequiredPackageForEffectImportPath = exports.parseSpringEasingConfig = exports.DEFAULT_SPRING_EASING = exports.packages = exports.installableMap = exports.extraPackages = exports.descriptions = exports.apiDocs = exports.DEFAULT_TIMELINE_TRACKS = exports.keyframeInterpolationFunctions = exports.isSchemaFieldKeyframable = 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; } });
22
22
  __exportStar(require("./api-requests"), exports);
23
+ const canvas_capture_1 = require("./canvas-capture");
24
+ Object.defineProperty(exports, "CANVAS_CAPTURE_METADATA_TAG", { enumerable: true, get: function () { return canvas_capture_1.CANVAS_CAPTURE_METADATA_TAG; } });
25
+ Object.defineProperty(exports, "parseCanvasCaptureData", { enumerable: true, get: function () { return canvas_capture_1.parseCanvasCaptureData; } });
23
26
  const composition_drag_data_1 = require("./composition-drag-data");
24
27
  Object.defineProperty(exports, "compositionDragDataToSymbolicatedStack", { enumerable: true, get: function () { return composition_drag_data_1.compositionDragDataToSymbolicatedStack; } });
28
+ const react_refresh_event_1 = require("./react-refresh-event");
29
+ Object.defineProperty(exports, "REACT_REFRESH_FINISHED_EVENT", { enumerable: true, get: function () { return react_refresh_event_1.REACT_REFRESH_FINISHED_EVENT; } });
25
30
  const config_file_change_1 = require("./config-file-change");
26
31
  Object.defineProperty(exports, "getConfigFileChangeMessage", { enumerable: true, get: function () { return config_file_change_1.getConfigFileChangeMessage; } });
27
32
  const config_method_lifecycles_1 = require("./config-method-lifecycles");
@@ -46,6 +51,9 @@ Object.defineProperty(exports, "parseEffectClipboardData", { enumerable: true, g
46
51
  Object.defineProperty(exports, "parseEffectClipboardDataResult", { enumerable: true, get: function () { return effect_clipboard_data_1.parseEffectClipboardDataResult; } });
47
52
  Object.defineProperty(exports, "parseEffectPropClipboardData", { enumerable: true, get: function () { return effect_clipboard_data_1.parseEffectPropClipboardData; } });
48
53
  Object.defineProperty(exports, "parseEffectPropClipboardDataResult", { enumerable: true, get: function () { return effect_clipboard_data_1.parseEffectPropClipboardDataResult; } });
54
+ const sequence_prop_clipboard_data_1 = require("./sequence-prop-clipboard-data");
55
+ Object.defineProperty(exports, "parseSequencePropClipboardData", { enumerable: true, get: function () { return sequence_prop_clipboard_data_1.parseSequencePropClipboardData; } });
56
+ Object.defineProperty(exports, "parseSequencePropClipboardDataResult", { enumerable: true, get: function () { return sequence_prop_clipboard_data_1.parseSequencePropClipboardDataResult; } });
49
57
  const format_bytes_1 = require("./format-bytes");
50
58
  Object.defineProperty(exports, "formatBytes", { enumerable: true, get: function () { return format_bytes_1.formatBytes; } });
51
59
  const get_all_keys_1 = require("./get-all-keys");
@@ -76,6 +84,7 @@ Object.defineProperty(exports, "getPolyKeyframeEasing", { enumerable: true, get:
76
84
  const keyframe_interpolation_function_1 = require("./keyframe-interpolation-function");
77
85
  Object.defineProperty(exports, "canEditEasingForInterpolationFunction", { enumerable: true, get: function () { return keyframe_interpolation_function_1.canEditEasingForInterpolationFunction; } });
78
86
  Object.defineProperty(exports, "getKeyframeInterpolationFunction", { enumerable: true, get: function () { return keyframe_interpolation_function_1.getKeyframeInterpolationFunction; } });
87
+ Object.defineProperty(exports, "isSchemaFieldHoldOnly", { enumerable: true, get: function () { return keyframe_interpolation_function_1.isSchemaFieldHoldOnly; } });
79
88
  Object.defineProperty(exports, "getKeyframeInterpolationFunctionForSchemaField", { enumerable: true, get: function () { return keyframe_interpolation_function_1.getKeyframeInterpolationFunctionForSchemaField; } });
80
89
  Object.defineProperty(exports, "isInteractivitySchemaFieldKeyframable", { enumerable: true, get: function () { return keyframe_interpolation_function_1.isInteractivitySchemaFieldKeyframable; } });
81
90
  Object.defineProperty(exports, "isKeyframeInterpolationFunction", { enumerable: true, get: function () { return keyframe_interpolation_function_1.isKeyframeInterpolationFunction; } });
@@ -8,6 +8,10 @@ export declare const isSchemaFieldKeyframable: ({ schema, key, }: {
8
8
  schema: InteractivitySchema | null;
9
9
  key: string;
10
10
  }) => boolean;
11
+ export declare const isSchemaFieldHoldOnly: ({ schema, key, }: {
12
+ schema: InteractivitySchema | null;
13
+ key: string;
14
+ }) => boolean;
11
15
  export declare const getKeyframeInterpolationFunctionForSchemaField: ({ schema, key, }: {
12
16
  schema: InteractivitySchema | null;
13
17
  key: string;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getKeyframeInterpolationFunction = exports.getKeyframeInterpolationFunctionForSchemaField = exports.isSchemaFieldKeyframable = exports.isInteractivitySchemaFieldKeyframable = exports.canEditEasingForInterpolationFunction = exports.isKeyframeInterpolationFunction = exports.keyframeInterpolationFunctions = void 0;
3
+ exports.getKeyframeInterpolationFunction = exports.getKeyframeInterpolationFunctionForSchemaField = exports.isSchemaFieldHoldOnly = exports.isSchemaFieldKeyframable = exports.isInteractivitySchemaFieldKeyframable = exports.canEditEasingForInterpolationFunction = exports.isKeyframeInterpolationFunction = exports.keyframeInterpolationFunctions = void 0;
4
4
  exports.keyframeInterpolationFunctions = [
5
5
  'interpolate',
6
6
  'interpolateColors',
@@ -13,7 +13,7 @@ const KEYFRAME_FIELD_TYPE_SUPPORT = {
13
13
  boolean: false,
14
14
  'remotion-captions': false,
15
15
  color: true,
16
- enum: false,
16
+ enum: true,
17
17
  'font-family': false,
18
18
  hidden: true,
19
19
  number: true,
@@ -31,7 +31,7 @@ const KEYFRAME_FIELD_TYPE_INTERPOLATION = {
31
31
  boolean: 'unsupported',
32
32
  'remotion-captions': 'unsupported',
33
33
  color: 'interpolateColors',
34
- enum: 'unsupported',
34
+ enum: 'interpolate',
35
35
  'font-family': 'unsupported',
36
36
  hidden: 'infer',
37
37
  number: 'infer',
@@ -58,6 +58,9 @@ const isInteractivitySchemaFieldKeyframable = (field) => {
58
58
  if (!field) {
59
59
  return true;
60
60
  }
61
+ if (field.type === 'enum') {
62
+ return field.keyframable === true;
63
+ }
61
64
  return KEYFRAME_FIELD_TYPE_SUPPORT[field.type] && field.keyframable !== false;
62
65
  };
63
66
  exports.isInteractivitySchemaFieldKeyframable = isInteractivitySchemaFieldKeyframable;
@@ -83,6 +86,11 @@ const isSchemaFieldKeyframable = ({ schema, key, }) => {
83
86
  return (0, exports.isInteractivitySchemaFieldKeyframable)(field);
84
87
  };
85
88
  exports.isSchemaFieldKeyframable = isSchemaFieldKeyframable;
89
+ const isSchemaFieldHoldOnly = ({ schema, key, }) => {
90
+ const field = schema ? findFieldInSchema(schema, key) : undefined;
91
+ return (field === null || field === void 0 ? void 0 : field.type) === 'enum' && field.keyframable === true;
92
+ };
93
+ exports.isSchemaFieldHoldOnly = isSchemaFieldHoldOnly;
86
94
  const getKeyframeInterpolationFunctionForSchemaField = ({ schema, key, }) => {
87
95
  const field = schema ? findFieldInSchema(schema, key) : undefined;
88
96
  if (!field) {
@@ -13,6 +13,12 @@ const getEasingIndexToDuplicate = ({ insertedKeyframeIndex, easingLength, keyfra
13
13
  const addKeyframeToPropStatus = ({ status, fieldKey, frame, value, schema, }) => {
14
14
  var _a;
15
15
  if (status.status === 'keyframed') {
16
+ const defaultEasing = (0, keyframe_interpolation_function_1.isSchemaFieldHoldOnly)({
17
+ schema,
18
+ key: fieldKey,
19
+ })
20
+ ? keyframe_easing_presets_1.HOLD_KEYFRAME_EASING
21
+ : keyframe_easing_presets_1.LINEAR_KEYFRAME_EASING;
16
22
  const existingIndex = status.keyframes.findIndex((kf) => kf.frame === frame);
17
23
  if (existingIndex !== -1) {
18
24
  const updatedKeyframes = status.keyframes.map((keyframe, index) => index === existingIndex ? { frame, value } : keyframe);
@@ -30,11 +36,11 @@ const addKeyframeToPropStatus = ({ status, fieldKey, frame, value, schema, }) =>
30
36
  keyframeCount: keyframes.length,
31
37
  });
32
38
  const easingToDuplicate = easingIndexToDuplicate === null
33
- ? keyframe_easing_presets_1.LINEAR_KEYFRAME_EASING
39
+ ? defaultEasing
34
40
  : easing[easingIndexToDuplicate];
35
41
  easing.splice(insertedKeyframeIndex, 0, easingToDuplicate);
36
42
  while (easing.length < keyframes.length - 1) {
37
- easing.push(keyframe_easing_presets_1.LINEAR_KEYFRAME_EASING);
43
+ easing.push(defaultEasing);
38
44
  }
39
45
  return {
40
46
  ...status,
@@ -1,6 +1,6 @@
1
- declare const allPackages: readonly ["svg-3d-engine", "animation-utils", "animated-emoji", "astro-example", "babel-loader", "bugs", "brand", "bundler", "browser-studio", "claude-code-plugin", "cli", "cloudrun", "codex-plugin", "kimi-code-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-codemods", "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", "studio-protocol", "light-leaks", "rough-notation", "starburst", "vercel", "sfx", "effects"];
1
+ declare const allPackages: readonly ["svg-3d-engine", "animation-utils", "animated-emoji", "astro-example", "babel-loader", "bugs", "brand", "bundler", "browser-studio", "claude-code-plugin", "cli", "cloudrun", "codex-plugin", "kimi-code-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-codemods", "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", "studio-protocol", "light-leaks", "mac-cursors", "rough-notation", "starburst", "vercel", "sfx", "effects"];
2
2
  export type Pkgs = (typeof allPackages)[number];
3
- export declare const packages: ("animated-emoji" | "animation-utils" | "astro-example" | "babel-loader" | "brand" | "browser-studio" | "bugs" | "bundler" | "captions" | "claude-code-plugin" | "cli" | "cloudrun" | "codex-plugin" | "compositor" | "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" | "convert" | "core" | "create-video" | "design" | "discord-poster" | "docs" | "docusaurus-plugin" | "effects" | "elevenlabs" | "enable-scss" | "eslint-config" | "eslint-config-flat" | "eslint-config-internal" | "eslint-plugin" | "example" | "example-videos" | "example-without-zod" | "fonts" | "gif" | "google-fonts" | "install-whisper-cpp" | "it-tests" | "kimi-code-plugin" | "lambda" | "lambda-client" | "lambda-go" | "lambda-go-example" | "lambda-php" | "lambda-python" | "lambda-ruby" | "layout-utils" | "licensing" | "light-leaks" | "lottie" | "mcp" | "media" | "media-parser" | "media-utils" | "motion-blur" | "noise" | "openai-whisper" | "paths" | "player" | "player-a11y" | "player-example" | "preload" | "promo-pages" | "react18-tests" | "remotion-media" | "renderer" | "rive" | "rough-notation" | "rounded-text-box" | "serverless" | "serverless-client" | "sfx" | "shapes" | "skia" | "skills" | "skills-evals" | "starburst" | "streaming" | "studio" | "studio-codemods" | "studio-protocol" | "studio-server" | "studio-shared" | "svg-3d-engine" | "tailwind" | "tailwind-v4" | "test-utils" | "three" | "timeline-utils" | "transitions" | "vercel" | "web-renderer" | "webcodecs" | "whisper-web" | "zod-types" | "zod-types-v3")[];
3
+ export declare const packages: ("animated-emoji" | "animation-utils" | "astro-example" | "babel-loader" | "brand" | "browser-studio" | "bugs" | "bundler" | "captions" | "claude-code-plugin" | "cli" | "cloudrun" | "codex-plugin" | "compositor" | "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" | "convert" | "core" | "create-video" | "design" | "discord-poster" | "docs" | "docusaurus-plugin" | "effects" | "elevenlabs" | "enable-scss" | "eslint-config" | "eslint-config-flat" | "eslint-config-internal" | "eslint-plugin" | "example" | "example-videos" | "example-without-zod" | "fonts" | "gif" | "google-fonts" | "install-whisper-cpp" | "it-tests" | "kimi-code-plugin" | "lambda" | "lambda-client" | "lambda-go" | "lambda-go-example" | "lambda-php" | "lambda-python" | "lambda-ruby" | "layout-utils" | "licensing" | "light-leaks" | "lottie" | "mac-cursors" | "mcp" | "media" | "media-parser" | "media-utils" | "motion-blur" | "noise" | "openai-whisper" | "paths" | "player" | "player-a11y" | "player-example" | "preload" | "promo-pages" | "react18-tests" | "remotion-media" | "renderer" | "rive" | "rough-notation" | "rounded-text-box" | "serverless" | "serverless-client" | "sfx" | "shapes" | "skia" | "skills" | "skills-evals" | "starburst" | "streaming" | "studio" | "studio-codemods" | "studio-protocol" | "studio-server" | "studio-shared" | "svg-3d-engine" | "tailwind" | "tailwind-v4" | "test-utils" | "three" | "timeline-utils" | "transitions" | "vercel" | "web-renderer" | "webcodecs" | "whisper-web" | "zod-types" | "zod-types-v3")[];
4
4
  export type ExtraPackage = {
5
5
  name: string;
6
6
  version: string;
@@ -100,6 +100,7 @@ const allPackages = [
100
100
  'design',
101
101
  'studio-protocol',
102
102
  'light-leaks',
103
+ 'mac-cursors',
103
104
  'rough-notation',
104
105
  'starburst',
105
106
  'vercel',
@@ -232,6 +233,7 @@ exports.descriptions = {
232
233
  design: 'Design system',
233
234
  'studio-protocol': 'Create Element payloads and request installation into Remotion Studio',
234
235
  'light-leaks': 'Light leak effects for Remotion',
236
+ 'mac-cursors': 'Internal macOS cursor components for Remotion',
235
237
  'rough-notation': 'Rough annotation primitives for Remotion',
236
238
  'player-a11y': 'Internal accessibility wrapper around @remotion/player',
237
239
  starburst: 'Starburst ray effect for Remotion',
@@ -345,6 +347,7 @@ exports.installableMap = {
345
347
  packageName: '@remotion/light-leaks',
346
348
  releaseVersion: remotion_1.VERSION,
347
349
  }),
350
+ 'mac-cursors': false,
348
351
  'rough-notation': true,
349
352
  starburst: (0, release_package_policy_1.shouldReleasePackage)({
350
353
  packageName: '@remotion/starburst',
@@ -451,6 +454,7 @@ exports.apiDocs = {
451
454
  design: 'https://www.remotion.dev/design',
452
455
  'studio-protocol': 'https://www.remotion.dev/docs/studio-protocol',
453
456
  'light-leaks': 'https://www.remotion.dev/docs/light-leaks',
457
+ 'mac-cursors': null,
454
458
  'rough-notation': 'https://www.remotion.dev/docs/rough-notation',
455
459
  starburst: 'https://www.remotion.dev/docs/starburst',
456
460
  vercel: 'https://www.remotion.dev/docs/vercel/api',
@@ -0,0 +1 @@
1
+ export declare const REACT_REFRESH_FINISHED_EVENT = "remotion-react-refresh-finished";
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.REACT_REFRESH_FINISHED_EVENT = void 0;
4
+ exports.REACT_REFRESH_FINISHED_EVENT = 'remotion-react-refresh-finished';
@@ -35,6 +35,7 @@ export type BrowserDownloadState = {
35
35
  progress: number;
36
36
  doneIn: number | null;
37
37
  alreadyAvailable: boolean;
38
+ error?: boolean;
38
39
  };
39
40
  export type BrowserProgressLog = {
40
41
  logLevel: LogLevel;
@@ -0,0 +1,13 @@
1
+ import type { SequenceNodePath } from 'remotion';
2
+ export type SequenceNodePathRemapping = {
3
+ oldNodePath: SequenceNodePath;
4
+ newNodePath: SequenceNodePath | null;
5
+ };
6
+ export type SequenceNodePathMutation = {
7
+ mutationId: string;
8
+ files: Array<{
9
+ absolutePath: string;
10
+ remappings: SequenceNodePathRemapping[];
11
+ restoredNodePaths: SequenceNodePath[];
12
+ }>;
13
+ };
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,21 @@
1
+ import type { EffectClipboardParam } from './effect-clipboard-data';
2
+ import type { KeyframeClipboardFieldType } from './keyframe-clipboard-data';
3
+ export type SequencePropClipboardData = {
4
+ readonly type: 'sequence-prop';
5
+ readonly version: 1;
6
+ readonly remotionClipboard: 'sequence-prop';
7
+ readonly key: string;
8
+ readonly fieldType: KeyframeClipboardFieldType;
9
+ readonly param: EffectClipboardParam;
10
+ };
11
+ export type SequencePropClipboardDataParseResult = {
12
+ readonly status: 'valid';
13
+ readonly data: SequencePropClipboardData;
14
+ } | {
15
+ readonly status: 'unsupported-version';
16
+ readonly version: unknown;
17
+ } | {
18
+ readonly status: 'invalid';
19
+ };
20
+ export declare const parseSequencePropClipboardDataResult: (value: string) => SequencePropClipboardDataParseResult;
21
+ export declare const parseSequencePropClipboardData: (value: string) => SequencePropClipboardData | null;
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.parseSequencePropClipboardData = exports.parseSequencePropClipboardDataResult = void 0;
4
+ const effect_clipboard_data_1 = require("./effect-clipboard-data");
5
+ const keyframe_clipboard_data_1 = require("./keyframe-clipboard-data");
6
+ const isRecord = (value) => {
7
+ return typeof value === 'object' && value !== null && !Array.isArray(value);
8
+ };
9
+ const parseSequencePropClipboardDataResult = (value) => {
10
+ try {
11
+ const parsed = JSON.parse(value);
12
+ if (!isRecord(parsed) || parsed.remotionClipboard !== 'sequence-prop') {
13
+ return { status: 'invalid' };
14
+ }
15
+ if (parsed.version !== 1) {
16
+ return { status: 'unsupported-version', version: parsed.version };
17
+ }
18
+ if (parsed.type !== 'sequence-prop' ||
19
+ typeof parsed.key !== 'string' ||
20
+ !(0, keyframe_clipboard_data_1.isKeyframeClipboardFieldType)(parsed.fieldType) ||
21
+ !(0, effect_clipboard_data_1.isEffectClipboardParam)(parsed.param)) {
22
+ return { status: 'invalid' };
23
+ }
24
+ return {
25
+ status: 'valid',
26
+ data: {
27
+ type: 'sequence-prop',
28
+ version: 1,
29
+ remotionClipboard: 'sequence-prop',
30
+ key: parsed.key,
31
+ fieldType: parsed.fieldType,
32
+ param: (0, effect_clipboard_data_1.normalizeEffectClipboardParam)(parsed.param),
33
+ },
34
+ };
35
+ }
36
+ catch (_a) {
37
+ return { status: 'invalid' };
38
+ }
39
+ };
40
+ exports.parseSequencePropClipboardDataResult = parseSequencePropClipboardDataResult;
41
+ const parseSequencePropClipboardData = (value) => {
42
+ const result = (0, exports.parseSequencePropClipboardDataResult)(value);
43
+ return result.status === 'valid' ? result.data : null;
44
+ };
45
+ exports.parseSequencePropClipboardData = parseSequencePropClipboardData;
@@ -15,6 +15,7 @@ export type StudioHtmlOptions = {
15
15
  completedClientRenders?: unknown | null;
16
16
  numberOfAudioTags: number;
17
17
  audioLatencyHint: AudioContextLatencyCategory;
18
+ experimentalKeepAudioContextAlive: boolean;
18
19
  sampleRate: number | null;
19
20
  publicFiles: StaticFile[];
20
21
  publicFolderExists: string | null;
@@ -32,4 +33,4 @@ export type StudioHtmlOptions = {
32
33
  readOnlyStudio?: boolean;
33
34
  studioRuntimeConfig?: StudioRuntimeConfig;
34
35
  };
35
- export declare const studioHtml: ({ publicPath, editorName, inputProps, envVariables, staticHash, remotionRoot, studioServerCommand, renderQueue, completedClientRenders, numberOfAudioTags, publicFiles, includeFavicon, title, renderDefaults, publicFolderExists, fileSystemPlatform, gitSource, projectName, installedDependencies, packageManager, audioLatencyHint, sampleRate, logLevel, mode, bundleScriptUrl, readOnlyStudio, studioRuntimeConfig, }: StudioHtmlOptions) => string;
36
+ export declare const studioHtml: ({ publicPath, editorName, inputProps, envVariables, staticHash, remotionRoot, studioServerCommand, renderQueue, completedClientRenders, numberOfAudioTags, publicFiles, includeFavicon, title, renderDefaults, publicFolderExists, fileSystemPlatform, gitSource, projectName, installedDependencies, packageManager, audioLatencyHint, experimentalKeepAudioContextAlive, sampleRate, logLevel, mode, bundleScriptUrl, readOnlyStudio, studioRuntimeConfig, }: StudioHtmlOptions) => string;
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.studioHtml = void 0;
4
4
  const remotion_1 = require("remotion");
5
- const studioHtml = ({ publicPath, editorName, inputProps, envVariables, staticHash, remotionRoot, studioServerCommand, renderQueue, completedClientRenders, numberOfAudioTags, publicFiles, includeFavicon, title, renderDefaults, publicFolderExists, fileSystemPlatform, gitSource, projectName, installedDependencies, packageManager, audioLatencyHint, sampleRate, logLevel, mode, bundleScriptUrl, readOnlyStudio, studioRuntimeConfig, }) => {
5
+ const studioHtml = ({ publicPath, editorName, inputProps, envVariables, staticHash, remotionRoot, studioServerCommand, renderQueue, completedClientRenders, numberOfAudioTags, publicFiles, includeFavicon, title, renderDefaults, publicFolderExists, fileSystemPlatform, gitSource, projectName, installedDependencies, packageManager, audioLatencyHint, experimentalKeepAudioContextAlive, sampleRate, logLevel, mode, bundleScriptUrl, readOnlyStudio, studioRuntimeConfig, }) => {
6
6
  const scriptUrl = bundleScriptUrl !== null && bundleScriptUrl !== void 0 ? bundleScriptUrl : `${publicPath}bundle.js`;
7
7
  const isRelativeBundle = mode === 'bundle' && publicPath === './';
8
8
  const staticBaseValue = isRelativeBundle
@@ -28,6 +28,7 @@ const studioHtml = ({ publicPath, editorName, inputProps, envVariables, staticHa
28
28
  <body>
29
29
  <script>window.remotion_numberOfAudioTags = ${numberOfAudioTags};</script>
30
30
  <script>window.remotion_audioLatencyHint = "${audioLatencyHint}";</script>
31
+ <script>window.remotion_experimentalKeepAudioContextAlive = ${experimentalKeepAudioContextAlive};</script>
31
32
  <script>window.remotion_sampleRate = ${sampleRate};</script>
32
33
  <script>window.remotion_previewSampleRate = ${sampleRate};</script>
33
34
  ${mode === 'dev' ? `<script>window.remotion_logLevel = "${logLevel}";</script>` : ''}
@@ -0,0 +1 @@
1
+ export type TerminalId = 'terminal' | 'iterm2' | 'ghostty' | 'warp' | 'wezterm' | 'alacritty' | 'windows-terminal' | 'gnome-terminal';
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
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.507",
6
+ "version": "4.0.509",
7
7
  "description": "Internal package for shared objects between the Studio backend and frontend",
8
8
  "main": "dist",
9
9
  "module": "dist/esm/index.mjs",
@@ -21,12 +21,12 @@
21
21
  "url": "https://github.com/remotion-dev/remotion/issues"
22
22
  },
23
23
  "dependencies": {
24
- "@remotion/studio-protocol": "4.0.507",
25
- "remotion": "4.0.507"
24
+ "@remotion/studio-protocol": "4.0.509",
25
+ "remotion": "4.0.509"
26
26
  },
27
27
  "devDependencies": {
28
- "@remotion/renderer": "4.0.507",
29
- "@remotion/eslint-config-internal": "4.0.507",
28
+ "@remotion/renderer": "4.0.509",
29
+ "@remotion/eslint-config-internal": "4.0.509",
30
30
  "eslint": "9.19.0",
31
31
  "@typescript/native-preview": "7.0.0-dev.20260217.1"
32
32
  },