@remotion/studio-shared 4.0.484 → 4.0.486

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.
@@ -222,16 +222,37 @@ export type UnsubscribeFromSequencePropsRequest = {
222
222
  sequenceKeys: string[];
223
223
  effectKeys: string[][];
224
224
  };
225
+ export type GoogleFontSourceEdit = {
226
+ fontFamily: string;
227
+ importName: string;
228
+ style: string;
229
+ weights: string[];
230
+ subsets: string[];
231
+ };
232
+ export type SaveSequencePropSourceEdit = {
233
+ type: 'google-font';
234
+ font: GoogleFontSourceEdit;
235
+ };
225
236
  export type SaveSequencePropEdit = {
226
237
  fileName: string;
227
238
  nodePath: SequencePropsSubscriptionKey;
228
239
  key: string;
229
- value: string;
240
+ value: {
241
+ type: 'json';
242
+ serialized: string;
243
+ } | {
244
+ type: 'undefined';
245
+ };
230
246
  defaultValue: string | null;
231
247
  schema: InteractivitySchema;
248
+ sourceEdit: SaveSequencePropSourceEdit | null;
232
249
  };
233
250
  export type SaveSequencePropsRequest = {
234
251
  edits: SaveSequencePropEdit[];
252
+ movedKeyframes?: {
253
+ sequenceKeyframes: MoveSequenceKeyframe[];
254
+ effectKeyframes: MoveEffectKeyframe[];
255
+ };
235
256
  clientId: string;
236
257
  undoLabel: string;
237
258
  redoLabel: string;
@@ -490,6 +511,18 @@ export type DuplicateJsxNodeResponse = {
490
511
  reason: string;
491
512
  stack: string;
492
513
  };
514
+ export type SplitJsxSequenceRequest = {
515
+ fileName: string;
516
+ nodePath: SequenceNodePath;
517
+ splitFrame: number;
518
+ };
519
+ export type SplitJsxSequenceResponse = {
520
+ success: true;
521
+ } | {
522
+ success: false;
523
+ reason: string;
524
+ stack: string;
525
+ };
493
526
  export type InsertableCompositionElement = {
494
527
  type: 'solid';
495
528
  width: number;
@@ -512,6 +545,15 @@ export type InsertableCompositionElement = {
512
545
  height: number;
513
546
  } | null;
514
547
  position: InsertableCompositionElementPosition | null;
548
+ } | {
549
+ type: 'composition';
550
+ compositionId: string;
551
+ compositionFile: string;
552
+ durationInFrames: number;
553
+ width: number;
554
+ height: number;
555
+ serializedResolvedPropsWithCustomSchema: string;
556
+ position: InsertableCompositionElementPosition | null;
515
557
  };
516
558
  export type InsertableCompositionElementPosition = {
517
559
  x: number;
@@ -626,6 +668,7 @@ export type ApiRoutes = {
626
668
  '/api/paste-effects': ReqAndRes<PasteEffectsRequest, PasteEffectsResponse>;
627
669
  '/api/delete-jsx-node': ReqAndRes<DeleteJsxNodeRequest, DeleteJsxNodeResponse>;
628
670
  '/api/duplicate-jsx-node': ReqAndRes<DuplicateJsxNodeRequest, DuplicateJsxNodeResponse>;
671
+ '/api/split-jsx-sequence': ReqAndRes<SplitJsxSequenceRequest, SplitJsxSequenceResponse>;
629
672
  '/api/insert-jsx-element': ReqAndRes<InsertJsxElementRequest, InsertJsxElementResponse>;
630
673
  '/api/insert-element': ReqAndRes<InsertElementRequest, InsertElementResponse>;
631
674
  '/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;
@@ -34,11 +36,20 @@ export type RecastCodemod = {
34
36
  } | {
35
37
  type: 'delete-composition';
36
38
  idToDelete: string;
39
+ } | {
40
+ type: 'move-composition-to-folder';
41
+ idToMove: string;
42
+ folderName: string | null;
43
+ parentName: string | null;
37
44
  } | {
38
45
  type: 'rename-folder';
39
46
  folderName: string;
40
47
  parentName: string | null;
41
48
  newName: string;
49
+ } | {
50
+ type: 'new-folder';
51
+ folderName: string;
52
+ parentName: string | null;
42
53
  } | {
43
54
  type: 'delete-folder';
44
55
  folderName: string;
@@ -0,0 +1,12 @@
1
+ export declare const COMPOSITION_DRAG_MIME_TYPE = "application/vnd.remotion.composition+json";
2
+ export type CompositionDragData = {
3
+ type: 'remotion-composition';
4
+ version: 1;
5
+ compositionId: string;
6
+ compositionFile: string | null;
7
+ };
8
+ export declare const makeCompositionDragData: ({ compositionFile, compositionId, }: {
9
+ compositionFile: string | null;
10
+ compositionId: string;
11
+ }) => CompositionDragData;
12
+ export declare const parseCompositionDragData: (value: string) => CompositionDragData | null;
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.parseCompositionDragData = exports.makeCompositionDragData = exports.COMPOSITION_DRAG_MIME_TYPE = void 0;
4
+ exports.COMPOSITION_DRAG_MIME_TYPE = 'application/vnd.remotion.composition+json';
5
+ const isRecord = (value) => {
6
+ return typeof value === 'object' && value !== null && !Array.isArray(value);
7
+ };
8
+ const isCompositionId = (value) => {
9
+ return (typeof value === 'string' &&
10
+ value.length > 0 &&
11
+ value.length < 500 &&
12
+ /^([a-zA-Z0-9-\u4E00-\u9FFF])+$/.test(value));
13
+ };
14
+ const hasParentDirectorySegment = (value) => {
15
+ return value.split('/').includes('..');
16
+ };
17
+ const isCompositionFile = (value) => {
18
+ if (value === null) {
19
+ return true;
20
+ }
21
+ return (typeof value === 'string' &&
22
+ value.length > 0 &&
23
+ value.length < 2000 &&
24
+ !value.includes('\0') &&
25
+ !value.includes('\\') &&
26
+ !value.startsWith('/') &&
27
+ !hasParentDirectorySegment(value));
28
+ };
29
+ const makeCompositionDragData = ({ compositionFile, compositionId, }) => {
30
+ return {
31
+ type: 'remotion-composition',
32
+ version: 1,
33
+ compositionFile,
34
+ compositionId,
35
+ };
36
+ };
37
+ exports.makeCompositionDragData = makeCompositionDragData;
38
+ const parseCompositionDragData = (value) => {
39
+ try {
40
+ const parsed = JSON.parse(value);
41
+ if (!isRecord(parsed)) {
42
+ return null;
43
+ }
44
+ if (parsed.type !== 'remotion-composition' || parsed.version !== 1) {
45
+ return null;
46
+ }
47
+ if (!isCompositionId(parsed.compositionId) ||
48
+ !isCompositionFile(parsed.compositionFile)) {
49
+ return null;
50
+ }
51
+ return (0, exports.makeCompositionDragData)({
52
+ compositionFile: parsed.compositionFile,
53
+ compositionId: parsed.compositionId,
54
+ });
55
+ }
56
+ catch (_a) {
57
+ return null;
58
+ }
59
+ };
60
+ exports.parseCompositionDragData = parseCompositionDragData;
@@ -283,6 +283,17 @@ exports.EFFECT_CATALOG = [
283
283
  config: {},
284
284
  },
285
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
+ },
286
297
  {
287
298
  id: 'effects-mirror',
288
299
  category: 'Transform',
@@ -466,6 +477,17 @@ exports.EFFECT_CATALOG = [
466
477
  },
467
478
  },
468
479
  },
480
+ {
481
+ id: 'effects-paper',
482
+ category: 'Stylize',
483
+ label: 'paper()',
484
+ description: 'Procedural paper texture effect',
485
+ effect: {
486
+ name: 'paper',
487
+ importPath: '@remotion/effects/paper',
488
+ config: {},
489
+ },
490
+ },
469
491
  {
470
492
  id: 'effects-pattern',
471
493
  category: 'Stylize',
package/dist/index.d.ts CHANGED
@@ -1,8 +1,9 @@
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, 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';
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
+ export { COMPOSITION_DRAG_MIME_TYPE, makeCompositionDragData, parseCompositionDragData, type CompositionDragData, } from './composition-drag-data';
6
7
  export { DEFAULT_BUFFER_STATE_DELAY_IN_MILLISECONDS } from './default-buffer-state-delay-in-milliseconds';
7
8
  export { getDefinePluginDefinitions } from './define-plugin-definitions';
8
9
  export { detectFileType, isImageFileType, type FileDimensions, type FileType, type ImageFileType, } from './detect-file-type';
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.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;
17
+ 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.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 = 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; } });
@@ -31,6 +31,10 @@ Object.defineProperty(exports, "isComponentIdentifier", { enumerable: true, get:
31
31
  Object.defineProperty(exports, "isComponentImportPath", { enumerable: true, get: function () { return component_drag_data_1.isComponentImportPath; } });
32
32
  Object.defineProperty(exports, "makeComponentDragData", { enumerable: true, get: function () { return component_drag_data_1.makeComponentDragData; } });
33
33
  Object.defineProperty(exports, "parseComponentDragData", { enumerable: true, get: function () { return component_drag_data_1.parseComponentDragData; } });
34
+ const composition_drag_data_1 = require("./composition-drag-data");
35
+ Object.defineProperty(exports, "COMPOSITION_DRAG_MIME_TYPE", { enumerable: true, get: function () { return composition_drag_data_1.COMPOSITION_DRAG_MIME_TYPE; } });
36
+ Object.defineProperty(exports, "makeCompositionDragData", { enumerable: true, get: function () { return composition_drag_data_1.makeCompositionDragData; } });
37
+ Object.defineProperty(exports, "parseCompositionDragData", { enumerable: true, get: function () { return composition_drag_data_1.parseCompositionDragData; } });
34
38
  const default_buffer_state_delay_in_milliseconds_1 = require("./default-buffer-state-delay-in-milliseconds");
35
39
  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
40
  const define_plugin_definitions_1 = require("./define-plugin-definitions");
@@ -15,7 +15,8 @@ const isInteractivitySchemaFieldKeyframable = (field) => {
15
15
  }
16
16
  if (field.type === 'array' ||
17
17
  field.type === 'boolean' ||
18
- field.type === 'enum') {
18
+ field.type === 'enum' ||
19
+ field.type === 'font-family') {
19
20
  return false;
20
21
  }
21
22
  return field.keyframable !== false;
@@ -103,13 +103,13 @@ exports.packages = [
103
103
  exports.extraPackages = [
104
104
  {
105
105
  name: 'mediabunny',
106
- version: '1.45.0',
106
+ version: '1.50.3',
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.45.0',
112
+ version: '1.50.3',
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
  },
@@ -20,6 +20,9 @@ const getRequiredPackageForInsertableElement = (element) => {
20
20
  if (element.type === 'component') {
21
21
  return (0, exports.getRequiredPackageForImportPath)(element.importPath);
22
22
  }
23
+ if (element.type === 'composition') {
24
+ return null;
25
+ }
23
26
  if (element.assetType === 'video' || element.assetType === 'audio') {
24
27
  return '@remotion/media';
25
28
  }
@@ -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", "font-family", "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,7 +21,9 @@ 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',
26
+ 'style.fontFamily',
25
27
  'style.fontSize',
26
28
  'style.lineHeight',
27
29
  'style.fontWeight',
@@ -59,6 +61,8 @@ const SUPPORTED_SCHEMA_TYPES = [
59
61
  'scale',
60
62
  'uv-coordinate',
61
63
  'color',
64
+ 'text-content',
65
+ 'font-family',
62
66
  'array',
63
67
  'enum',
64
68
  'hidden',
@@ -80,6 +84,9 @@ const getSchemaFieldRowHeight = ({ fieldSchema, value, }) => {
80
84
  value,
81
85
  }) * exports.SCHEMA_FIELD_ROW_HEIGHT);
82
86
  }
87
+ if (fieldSchema.type === 'text-content') {
88
+ return exports.SCHEMA_FIELD_ROW_HEIGHT * 2;
89
+ }
83
90
  return exports.SCHEMA_FIELD_ROW_HEIGHT;
84
91
  };
85
92
  const getEffectFieldValue = ({ key, dragOverrides, effectStatus, }) => {
@@ -96,7 +103,7 @@ const getEffectFieldValue = ({ key, dragOverrides, effectStatus, }) => {
96
103
  }
97
104
  return propStatus.codeValue;
98
105
  };
99
- const getFieldsToShow = ({ getDragOverrides, propStatuses, nodePath, schema, currentRuntimeValueDotNotation, }) => {
106
+ const getFieldsToShow = ({ getDragOverrides, propStatuses, nodePath, schema, currentRuntimeValueDotNotation, includeTextContent, }) => {
100
107
  const { merged: valuesDotNotation } = remotion_1.Internals.computeEffectiveSchemaValuesDotNotation({
101
108
  schema,
102
109
  currentValue: currentRuntimeValueDotNotation,
@@ -117,6 +124,9 @@ const getFieldsToShow = ({ getDragOverrides, propStatuses, nodePath, schema, cur
117
124
  if (fieldSchema.type === 'number' && fieldSchema.hiddenFromList) {
118
125
  return null;
119
126
  }
127
+ if (fieldSchema.type === 'text-content' && !includeTextContent) {
128
+ return null;
129
+ }
120
130
  // `hidden` is represented as the eye/speaker icon on the timeline track,
121
131
  // so we don't render it as a regular field in the expanded section.
122
132
  if (key === 'hidden') {
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.484",
6
+ "version": "4.0.486",
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.484"
23
+ "remotion": "4.0.486"
24
24
  },
25
25
  "devDependencies": {
26
- "@remotion/renderer": "4.0.484",
27
- "@remotion/eslint-config-internal": "4.0.484",
26
+ "@remotion/renderer": "4.0.486",
27
+ "@remotion/eslint-config-internal": "4.0.486",
28
28
  "eslint": "9.19.0",
29
29
  "@typescript/native-preview": "7.0.0-dev.20260217.1"
30
30
  },