@remotion/studio-shared 4.0.487 → 4.0.488

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.
@@ -1,6 +1,6 @@
1
1
  import type { AudioCodec, ChromeMode, Codec, ColorSpace, LogLevel, PixelFormat, StillImageFormat, VideoImageFormat, X264Preset } from '@remotion/renderer';
2
2
  import type { HardwareAccelerationOption } from '@remotion/renderer/client';
3
- import type { _InternalTypes, CannotUpdateSequenceReason, CanUpdateEffectPropsResponse, CanUpdateSequencePropsResponseFalse, CanUpdateSequencePropsResponseTrue, CanUpdateSequencePropStatus, ExtrapolateType, JsxComponentIdentity, SequenceNodePath, SequencePropsSubscriptionKey, InteractivitySchema } from 'remotion';
3
+ import type { _InternalTypes, CannotUpdateSequenceReason, CanUpdateEffectPropsResponse, CanUpdateSequencePropsResponseFalse, CanUpdateSequencePropsResponseTrue, CanUpdateSequencePropStatus, ExtrapolateType, InteractivitySchema, JsxComponentIdentity, SequenceNodePath, SequencePropsSubscriptionKey } from 'remotion';
4
4
  import type { RecastCodemod, VisualControlChange } from './codemods';
5
5
  import type { ComponentProp } from './component-drag-data';
6
6
  import type { EffectClipboardParam, EffectClipboardPasteType, EffectClipboardSnapshot } from './effect-clipboard-data';
@@ -584,6 +584,24 @@ export type InsertElementResponse = {
584
584
  reason: string;
585
585
  stack: string;
586
586
  };
587
+ export type ElementInstallRequest = {
588
+ id: string;
589
+ clientId: string;
590
+ createdAt: number;
591
+ compositionFile: string;
592
+ compositionId: string;
593
+ element: ElementDragData['element'];
594
+ position: InsertableCompositionElementPosition | null;
595
+ };
596
+ export type UpdateElementInstallTargetRequest = {
597
+ clientId: string;
598
+ compositionFile: string | null;
599
+ compositionId: string | null;
600
+ canInstall: boolean;
601
+ lastFocusedAt: number | null;
602
+ readOnly: boolean;
603
+ };
604
+ export type UpdateElementInstallTargetResponse = {};
587
605
  export type DownloadRemoteAssetRequest = {
588
606
  url: string;
589
607
  };
@@ -671,6 +689,7 @@ export type ApiRoutes = {
671
689
  '/api/split-jsx-sequence': ReqAndRes<SplitJsxSequenceRequest, SplitJsxSequenceResponse>;
672
690
  '/api/insert-jsx-element': ReqAndRes<InsertJsxElementRequest, InsertJsxElementResponse>;
673
691
  '/api/insert-element': ReqAndRes<InsertElementRequest, InsertElementResponse>;
692
+ '/api/update-element-install-target': ReqAndRes<UpdateElementInstallTargetRequest, UpdateElementInstallTargetResponse>;
674
693
  '/api/download-remote-asset': ReqAndRes<DownloadRemoteAssetRequest, DownloadRemoteAssetResponse>;
675
694
  '/api/update-available': ReqAndRes<UpdateAvailableRequest, UpdateAvailableResponse>;
676
695
  '/api/apply-codemod': ReqAndRes<ApplyCodemodRequest, ApplyCodemodResponse>;
@@ -1,12 +1,14 @@
1
- export declare const getDefinePluginDefinitions: ({ maxTimelineTracks, askAIEnabled, keyboardShortcutsEnabled, bufferStateDelayInMilliseconds, experimentalClientSideRenderingEnabled, }: {
1
+ export declare const getDefinePluginDefinitions: ({ maxTimelineTracks, askAIEnabled, interactivityEnabled, keyboardShortcutsEnabled, bufferStateDelayInMilliseconds, experimentalClientSideRenderingEnabled, }: {
2
2
  maxTimelineTracks: number | null;
3
3
  askAIEnabled: boolean;
4
+ interactivityEnabled: boolean;
4
5
  keyboardShortcutsEnabled: boolean;
5
6
  bufferStateDelayInMilliseconds: number | null;
6
7
  experimentalClientSideRenderingEnabled: boolean;
7
8
  }) => {
8
9
  'process.env.MAX_TIMELINE_TRACKS': number | null;
9
10
  'process.env.ASK_AI_ENABLED': boolean;
11
+ 'process.env.INTERACTIVITY_ENABLED': boolean;
10
12
  'process.env.KEYBOARD_SHORTCUTS_ENABLED': boolean;
11
13
  'process.env.BUFFER_STATE_DELAY_IN_MILLISECONDS': number | null;
12
14
  'process.env.EXPERIMENTAL_CLIENT_SIDE_RENDERING_ENABLED': boolean;
@@ -1,9 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getDefinePluginDefinitions = void 0;
4
- const getDefinePluginDefinitions = ({ maxTimelineTracks, askAIEnabled, keyboardShortcutsEnabled, bufferStateDelayInMilliseconds, experimentalClientSideRenderingEnabled, }) => ({
4
+ const getDefinePluginDefinitions = ({ maxTimelineTracks, askAIEnabled, interactivityEnabled, keyboardShortcutsEnabled, bufferStateDelayInMilliseconds, experimentalClientSideRenderingEnabled, }) => ({
5
5
  'process.env.MAX_TIMELINE_TRACKS': maxTimelineTracks,
6
6
  'process.env.ASK_AI_ENABLED': askAIEnabled,
7
+ 'process.env.INTERACTIVITY_ENABLED': interactivityEnabled,
7
8
  'process.env.KEYBOARD_SHORTCUTS_ENABLED': keyboardShortcutsEnabled,
8
9
  'process.env.BUFFER_STATE_DELAY_IN_MILLISECONDS': bufferStateDelayInMilliseconds,
9
10
  'process.env.EXPERIMENTAL_CLIENT_SIDE_RENDERING_ENABLED': experimentalClientSideRenderingEnabled,
@@ -1,6 +1,6 @@
1
1
  import type { StaticFile } from 'remotion';
2
2
  import type { CanUpdateSequencePropsResponse, SequencePropsSubscriptionKey } from 'remotion';
3
- import type { CanUpdateDefaultPropsResponse } from './api-requests';
3
+ import type { CanUpdateDefaultPropsResponse, ElementInstallRequest } from './api-requests';
4
4
  import type { HotMiddlewareMessage } from './hot-middleware';
5
5
  import type { CompletedClientRender, RenderJob } from './render-job';
6
6
  export type EventSourceEvent = {
@@ -54,6 +54,9 @@ export type EventSourceEvent = {
54
54
  type: 'undo-redo-stack-changed';
55
55
  undoFile: string | null;
56
56
  redoFile: string | null;
57
+ } | {
58
+ type: 'element-install-request';
59
+ request: ElementInstallRequest;
57
60
  } | {
58
61
  type: 'visual-control-values-changed';
59
62
  values: Array<{
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
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, GoogleFontSourceEdit, SaveSequencePropSourceEdit, 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';
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, ElementInstallRequest, GoogleFontSourceEdit, 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, SaveSequencePropSourceEdit, SaveSequencePropsRequest, SaveSequencePropsResponse, SaveSequencePropsResult, SimpleDiff, SplitJsxSequenceRequest, SplitJsxSequenceResponse, SubscribeToDefaultPropsRequest, SubscribeToDefaultPropsResponse, SubscribeToFileExistenceRequest, SubscribeToFileExistenceResponse, SubscribeToSequencePropsRequest, SubscribeToSequencePropsResponse, UndoRequest, UndoResponse, UnsubscribeFromDefaultPropsRequest, UnsubscribeFromFileExistenceRequest, UnsubscribeFromSequencePropsRequest, UpdateAvailableRequest, UpdateAvailableResponse, UpdateDefaultPropsRequest, UpdateDefaultPropsResponse, UpdateEffectKeyframeSettingsRequest, UpdateEffectKeyframeSettingsResponse, UpdateElementInstallTargetRequest, UpdateElementInstallTargetResponse, 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';
@@ -7,7 +7,7 @@ export { COMPOSITION_DRAG_MIME_TYPE, makeCompositionDragData, parseCompositionDr
7
7
  export { DEFAULT_BUFFER_STATE_DELAY_IN_MILLISECONDS } from './default-buffer-state-delay-in-milliseconds';
8
8
  export { getDefinePluginDefinitions } from './define-plugin-definitions';
9
9
  export { detectFileType, isImageFileType, type FileDimensions, type FileType, type ImageFileType, } from './detect-file-type';
10
- export { isRemotionDragMimeType, REMOTION_DRAG_MIME_TYPES, type RemotionDragMimeType, } from './drag-mime-types';
10
+ export { REMOTION_DRAG_MIME_TYPES, isRemotionDragMimeType, type RemotionDragMimeType, } from './drag-mime-types';
11
11
  export { parseEasingClipboardData, parseEasingClipboardDataResult, type EasingClipboardData, type EasingClipboardDataParseResult, } from './easing-clipboard-data';
12
12
  export { EFFECT_CATALOG, getEffectCatalogCategories, getEffectDocumentationLink, getEffectDocumentationPath, getEffectPreviewAlt, getEffectPreviewSource, makeEffectDragDataFromCatalogItem, type EffectCatalogCategory, type EffectCatalogItem, } from './effect-catalog';
13
13
  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';
@@ -21,7 +21,7 @@ export { ErrorLocation, getLocationFromBuildError, } from './get-location-from-b
21
21
  export { getProjectName } from './get-project-name';
22
22
  export type { GitSource } from './git-source';
23
23
  export { HotMiddlewareMessage, HotMiddlewareOptions, ModuleMap, hotMiddlewareOptions, } from './hot-middleware';
24
- export { CUBIC_KEYFRAME_EASING, EASE_KEYFRAME_EASING, getBackKeyframeEasing, getOutKeyframeEasing, getPolyKeyframeEasing, KEYFRAME_EASING_PRESETS, LINEAR_KEYFRAME_EASING, QUAD_KEYFRAME_EASING, type KeyframeEasing, type KeyframeEasingPreset, } from './keyframe-easing-presets';
24
+ export { CUBIC_KEYFRAME_EASING, EASE_KEYFRAME_EASING, KEYFRAME_EASING_PRESETS, LINEAR_KEYFRAME_EASING, QUAD_KEYFRAME_EASING, getBackKeyframeEasing, getOutKeyframeEasing, getPolyKeyframeEasing, type KeyframeEasing, type KeyframeEasingPreset, } from './keyframe-easing-presets';
25
25
  export { getKeyframeInterpolationFunction, getKeyframeInterpolationFunctionForSchemaField, isInteractivitySchemaFieldKeyframable, isKeyframeInterpolationFunction, isSchemaFieldKeyframable, keyframeInterpolationFunctions, type KeyframeInterpolationFunction, } from './keyframe-interpolation-function';
26
26
  export { DEFAULT_TIMELINE_TRACKS } from './max-timeline-tracks';
27
27
  export { Pkgs, apiDocs, descriptions, extraPackages, installableMap, packages, type ExtraPackage, } from './package-info';
@@ -36,9 +36,9 @@ export { SCHEMA_FIELD_GROUPS, SCHEMA_FIELD_ROW_HEIGHT, getEffectFieldsToShow, ge
36
36
  export type { AnySchemaFieldInfo, DragOverrides, EffectSchemaFieldInfo, InteractivitySchemaFieldInfo, PropStatuses, SchemaFieldGroup, SchemaFieldGroupInfo, SchemaFieldInfo, SequenceControls, } from './schema-field-info';
37
37
  export { SFX_DRAG_MIME_TYPE, parseSfxDragData, type SfxDragData, } from './sfx-drag-data';
38
38
  export { ScriptLine, SomeStackFrame, StackFrame, SymbolicatedStackFrame, } from './stack-types';
39
+ export { EnumPath, stringifyDefaultProps } from './stringify-default-props';
39
40
  export { getStudioEntryPoints, type StudioEntryPointPaths, } from './studio-entry-points';
40
41
  export { studioHtml, type StudioHtmlOptions } from './studio-html';
41
- export { EnumPath, stringifyDefaultProps } from './stringify-default-props';
42
42
  export type { VisualControlChange } from './codemods';
43
43
  export { optimisticAddEffectKeyframe, optimisticAddSequenceKeyframe, } from './optimistic-add-keyframe';
44
44
  export { optimisticDeleteEffectKeyframe, optimisticDeleteEffectKeyframes, optimisticDeleteSequenceKeyframe, optimisticDeleteSequenceKeyframes, } from './optimistic-delete-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.getBackKeyframeEasing = exports.EASE_KEYFRAME_EASING = exports.CUBIC_KEYFRAME_EASING = 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.REMOTION_DRAG_MIME_TYPES = exports.isRemotionDragMimeType = exports.isImageFileType = exports.detectFileType = exports.getDefinePluginDefinitions = exports.DEFAULT_BUFFER_STATE_DELAY_IN_MILLISECONDS = exports.parseCompositionDragData = exports.makeCompositionDragData = exports.COMPOSITION_DRAG_MIME_TYPE = 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 = exports.keyframeInterpolationFunctions = exports.isSchemaFieldKeyframable = exports.isKeyframeInterpolationFunction = exports.isInteractivitySchemaFieldKeyframable = exports.getKeyframeInterpolationFunctionForSchemaField = exports.getKeyframeInterpolationFunction = exports.QUAD_KEYFRAME_EASING = exports.LINEAR_KEYFRAME_EASING = exports.KEYFRAME_EASING_PRESETS = exports.getPolyKeyframeEasing = exports.getOutKeyframeEasing = void 0;
17
+ exports.KEYFRAME_EASING_PRESETS = exports.EASE_KEYFRAME_EASING = exports.CUBIC_KEYFRAME_EASING = 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.isRemotionDragMimeType = exports.REMOTION_DRAG_MIME_TYPES = exports.isImageFileType = exports.detectFileType = exports.getDefinePluginDefinitions = exports.DEFAULT_BUFFER_STATE_DELAY_IN_MILLISECONDS = exports.parseCompositionDragData = exports.makeCompositionDragData = exports.COMPOSITION_DRAG_MIME_TYPE = 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.studioHtml = exports.getStudioEntryPoints = 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 = exports.DEFAULT_TIMELINE_TRACKS = exports.keyframeInterpolationFunctions = exports.isSchemaFieldKeyframable = exports.isKeyframeInterpolationFunction = exports.isInteractivitySchemaFieldKeyframable = exports.getKeyframeInterpolationFunctionForSchemaField = exports.getKeyframeInterpolationFunction = exports.getPolyKeyframeEasing = exports.getOutKeyframeEasing = exports.getBackKeyframeEasing = exports.QUAD_KEYFRAME_EASING = exports.LINEAR_KEYFRAME_EASING = 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; } });
@@ -43,8 +43,8 @@ const detect_file_type_1 = require("./detect-file-type");
43
43
  Object.defineProperty(exports, "detectFileType", { enumerable: true, get: function () { return detect_file_type_1.detectFileType; } });
44
44
  Object.defineProperty(exports, "isImageFileType", { enumerable: true, get: function () { return detect_file_type_1.isImageFileType; } });
45
45
  const drag_mime_types_1 = require("./drag-mime-types");
46
- Object.defineProperty(exports, "isRemotionDragMimeType", { enumerable: true, get: function () { return drag_mime_types_1.isRemotionDragMimeType; } });
47
46
  Object.defineProperty(exports, "REMOTION_DRAG_MIME_TYPES", { enumerable: true, get: function () { return drag_mime_types_1.REMOTION_DRAG_MIME_TYPES; } });
47
+ Object.defineProperty(exports, "isRemotionDragMimeType", { enumerable: true, get: function () { return drag_mime_types_1.isRemotionDragMimeType; } });
48
48
  const easing_clipboard_data_1 = require("./easing-clipboard-data");
49
49
  Object.defineProperty(exports, "parseEasingClipboardData", { enumerable: true, get: function () { return easing_clipboard_data_1.parseEasingClipboardData; } });
50
50
  Object.defineProperty(exports, "parseEasingClipboardDataResult", { enumerable: true, get: function () { return easing_clipboard_data_1.parseEasingClipboardDataResult; } });
@@ -86,12 +86,12 @@ Object.defineProperty(exports, "hotMiddlewareOptions", { enumerable: true, get:
86
86
  const keyframe_easing_presets_1 = require("./keyframe-easing-presets");
87
87
  Object.defineProperty(exports, "CUBIC_KEYFRAME_EASING", { enumerable: true, get: function () { return keyframe_easing_presets_1.CUBIC_KEYFRAME_EASING; } });
88
88
  Object.defineProperty(exports, "EASE_KEYFRAME_EASING", { enumerable: true, get: function () { return keyframe_easing_presets_1.EASE_KEYFRAME_EASING; } });
89
- Object.defineProperty(exports, "getBackKeyframeEasing", { enumerable: true, get: function () { return keyframe_easing_presets_1.getBackKeyframeEasing; } });
90
- Object.defineProperty(exports, "getOutKeyframeEasing", { enumerable: true, get: function () { return keyframe_easing_presets_1.getOutKeyframeEasing; } });
91
- Object.defineProperty(exports, "getPolyKeyframeEasing", { enumerable: true, get: function () { return keyframe_easing_presets_1.getPolyKeyframeEasing; } });
92
89
  Object.defineProperty(exports, "KEYFRAME_EASING_PRESETS", { enumerable: true, get: function () { return keyframe_easing_presets_1.KEYFRAME_EASING_PRESETS; } });
93
90
  Object.defineProperty(exports, "LINEAR_KEYFRAME_EASING", { enumerable: true, get: function () { return keyframe_easing_presets_1.LINEAR_KEYFRAME_EASING; } });
94
91
  Object.defineProperty(exports, "QUAD_KEYFRAME_EASING", { enumerable: true, get: function () { return keyframe_easing_presets_1.QUAD_KEYFRAME_EASING; } });
92
+ Object.defineProperty(exports, "getBackKeyframeEasing", { enumerable: true, get: function () { return keyframe_easing_presets_1.getBackKeyframeEasing; } });
93
+ Object.defineProperty(exports, "getOutKeyframeEasing", { enumerable: true, get: function () { return keyframe_easing_presets_1.getOutKeyframeEasing; } });
94
+ Object.defineProperty(exports, "getPolyKeyframeEasing", { enumerable: true, get: function () { return keyframe_easing_presets_1.getPolyKeyframeEasing; } });
95
95
  const keyframe_interpolation_function_1 = require("./keyframe-interpolation-function");
96
96
  Object.defineProperty(exports, "getKeyframeInterpolationFunction", { enumerable: true, get: function () { return keyframe_interpolation_function_1.getKeyframeInterpolationFunction; } });
97
97
  Object.defineProperty(exports, "getKeyframeInterpolationFunctionForSchemaField", { enumerable: true, get: function () { return keyframe_interpolation_function_1.getKeyframeInterpolationFunctionForSchemaField; } });
@@ -122,12 +122,12 @@ Object.defineProperty(exports, "getSchemaFieldGroup", { enumerable: true, get: f
122
122
  const sfx_drag_data_1 = require("./sfx-drag-data");
123
123
  Object.defineProperty(exports, "SFX_DRAG_MIME_TYPE", { enumerable: true, get: function () { return sfx_drag_data_1.SFX_DRAG_MIME_TYPE; } });
124
124
  Object.defineProperty(exports, "parseSfxDragData", { enumerable: true, get: function () { return sfx_drag_data_1.parseSfxDragData; } });
125
+ const stringify_default_props_1 = require("./stringify-default-props");
126
+ Object.defineProperty(exports, "stringifyDefaultProps", { enumerable: true, get: function () { return stringify_default_props_1.stringifyDefaultProps; } });
125
127
  const studio_entry_points_1 = require("./studio-entry-points");
126
128
  Object.defineProperty(exports, "getStudioEntryPoints", { enumerable: true, get: function () { return studio_entry_points_1.getStudioEntryPoints; } });
127
129
  const studio_html_1 = require("./studio-html");
128
130
  Object.defineProperty(exports, "studioHtml", { enumerable: true, get: function () { return studio_html_1.studioHtml; } });
129
- const stringify_default_props_1 = require("./stringify-default-props");
130
- Object.defineProperty(exports, "stringifyDefaultProps", { enumerable: true, get: function () { return stringify_default_props_1.stringifyDefaultProps; } });
131
131
  const optimistic_add_keyframe_1 = require("./optimistic-add-keyframe");
132
132
  Object.defineProperty(exports, "optimisticAddEffectKeyframe", { enumerable: true, get: function () { return optimistic_add_keyframe_1.optimisticAddEffectKeyframe; } });
133
133
  Object.defineProperty(exports, "optimisticAddSequenceKeyframe", { enumerable: true, get: function () { return optimistic_add_keyframe_1.optimisticAddSequenceKeyframe; } });
@@ -103,19 +103,19 @@ exports.packages = [
103
103
  exports.extraPackages = [
104
104
  {
105
105
  name: 'mediabunny',
106
- version: '1.50.7',
106
+ version: '1.50.8',
107
107
  description: 'Multimedia library used by Remotion',
108
108
  docsUrl: 'https://www.remotion.dev/docs/mediabunny/version',
109
109
  },
110
110
  {
111
111
  name: '@mediabunny/ac3',
112
- version: '1.50.7',
112
+ version: '1.50.8',
113
113
  description: 'AC-3 and E-AC-3 audio codec support for Mediabunny',
114
114
  docsUrl: 'https://www.remotion.dev/docs/mediabunny/formats#ac-3-and-e-ac-3',
115
115
  },
116
116
  {
117
117
  name: '@mediabunny/prores',
118
- version: '1.50.7',
118
+ version: '1.50.8',
119
119
  description: 'Apple ProRes decoder support for Mediabunny',
120
120
  docsUrl: 'https://www.remotion.dev/docs/mediabunny/formats',
121
121
  },
@@ -0,0 +1,22 @@
1
+ export declare const SHAPE_DRAG_MIME_TYPE = "application/vnd.remotion.shape+json";
2
+ export declare const shapeNames: readonly ["Arrow", "Circle", "Ellipse", "Heart", "Pie", "Polygon", "Rect", "Star", "Triangle"];
3
+ export type ShapeName = (typeof shapeNames)[number];
4
+ export type ShapeAttribute = {
5
+ name: string;
6
+ value: string | number | boolean;
7
+ };
8
+ export type ShapeDragData = {
9
+ type: 'remotion-shape';
10
+ version: 1;
11
+ shape: ShapeName;
12
+ attributes: ShapeAttribute[];
13
+ };
14
+ export declare const isShapeName: (value: unknown) => value is "Arrow" | "Circle" | "Ellipse" | "Heart" | "Pie" | "Polygon" | "Rect" | "Star" | "Triangle";
15
+ export declare const isShapeAttributeName: (value: unknown) => value is string;
16
+ export declare const isShapeAttribute: (value: unknown) => value is ShapeAttribute;
17
+ export declare const areShapeAttributes: (value: unknown) => value is ShapeAttribute[];
18
+ export declare const makeShapeDragData: ({ attributes, shape, }: {
19
+ attributes: ShapeAttribute[];
20
+ shape: "Arrow" | "Circle" | "Ellipse" | "Heart" | "Pie" | "Polygon" | "Rect" | "Star" | "Triangle";
21
+ }) => ShapeDragData;
22
+ export declare const parseShapeDragData: (value: string) => ShapeDragData | null;
@@ -0,0 +1,90 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.parseShapeDragData = exports.makeShapeDragData = exports.areShapeAttributes = exports.isShapeAttribute = exports.isShapeAttributeName = exports.isShapeName = exports.shapeNames = exports.SHAPE_DRAG_MIME_TYPE = void 0;
4
+ exports.SHAPE_DRAG_MIME_TYPE = 'application/vnd.remotion.shape+json';
5
+ exports.shapeNames = [
6
+ 'Arrow',
7
+ 'Circle',
8
+ 'Ellipse',
9
+ 'Heart',
10
+ 'Pie',
11
+ 'Polygon',
12
+ 'Rect',
13
+ 'Star',
14
+ 'Triangle',
15
+ ];
16
+ const isRecord = (value) => {
17
+ return typeof value === 'object' && value !== null && !Array.isArray(value);
18
+ };
19
+ const isShapeName = (value) => {
20
+ return typeof value === 'string' && exports.shapeNames.includes(value);
21
+ };
22
+ exports.isShapeName = isShapeName;
23
+ const isShapeAttributeName = (value) => {
24
+ return (typeof value === 'string' &&
25
+ value !== 'style' &&
26
+ /^[A-Za-z_$][A-Za-z0-9_$]*$/.test(value));
27
+ };
28
+ exports.isShapeAttributeName = isShapeAttributeName;
29
+ const isShapeAttribute = (value) => {
30
+ if (!isRecord(value)) {
31
+ return false;
32
+ }
33
+ if (!(0, exports.isShapeAttributeName)(value.name)) {
34
+ return false;
35
+ }
36
+ return (typeof value.value === 'string' ||
37
+ typeof value.value === 'boolean' ||
38
+ (typeof value.value === 'number' && Number.isFinite(value.value)));
39
+ };
40
+ exports.isShapeAttribute = isShapeAttribute;
41
+ const areShapeAttributes = (value) => {
42
+ if (!Array.isArray(value)) {
43
+ return false;
44
+ }
45
+ const seen = new Set();
46
+ for (const attribute of value) {
47
+ if (!(0, exports.isShapeAttribute)(attribute) || seen.has(attribute.name)) {
48
+ return false;
49
+ }
50
+ seen.add(attribute.name);
51
+ }
52
+ return true;
53
+ };
54
+ exports.areShapeAttributes = areShapeAttributes;
55
+ const makeShapeDragData = ({ attributes, shape, }) => {
56
+ return {
57
+ type: 'remotion-shape',
58
+ version: 1,
59
+ shape,
60
+ attributes,
61
+ };
62
+ };
63
+ exports.makeShapeDragData = makeShapeDragData;
64
+ const parseShapeDragData = (value) => {
65
+ try {
66
+ const parsed = JSON.parse(value);
67
+ if (!isRecord(parsed)) {
68
+ return null;
69
+ }
70
+ if (parsed.type !== 'remotion-shape' || parsed.version !== 1) {
71
+ return null;
72
+ }
73
+ if (!(0, exports.isShapeName)(parsed.shape)) {
74
+ return null;
75
+ }
76
+ if (!(0, exports.areShapeAttributes)(parsed.attributes)) {
77
+ return null;
78
+ }
79
+ return {
80
+ type: 'remotion-shape',
81
+ version: 1,
82
+ shape: parsed.shape,
83
+ attributes: parsed.attributes,
84
+ };
85
+ }
86
+ catch (_a) {
87
+ return null;
88
+ }
89
+ };
90
+ exports.parseShapeDragData = parseShapeDragData;
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.487",
6
+ "version": "4.0.488",
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.487"
23
+ "remotion": "4.0.488"
24
24
  },
25
25
  "devDependencies": {
26
- "@remotion/renderer": "4.0.487",
27
- "@remotion/eslint-config-internal": "4.0.487",
26
+ "@remotion/renderer": "4.0.488",
27
+ "@remotion/eslint-config-internal": "4.0.488",
28
28
  "eslint": "9.19.0",
29
29
  "@typescript/native-preview": "7.0.0-dev.20260217.1"
30
30
  },