@remotion/studio-shared 4.0.485 → 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;
@@ -524,6 +545,15 @@ export type InsertableCompositionElement = {
524
545
  height: number;
525
546
  } | null;
526
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;
527
557
  };
528
558
  export type InsertableCompositionElementPosition = {
529
559
  x: number;
@@ -36,11 +36,20 @@ export type RecastCodemod = {
36
36
  } | {
37
37
  type: 'delete-composition';
38
38
  idToDelete: string;
39
+ } | {
40
+ type: 'move-composition-to-folder';
41
+ idToMove: string;
42
+ folderName: string | null;
43
+ parentName: string | null;
39
44
  } | {
40
45
  type: 'rename-folder';
41
46
  folderName: string;
42
47
  parentName: string | null;
43
48
  newName: string;
49
+ } | {
50
+ type: 'new-folder';
51
+ folderName: string;
52
+ parentName: string | null;
44
53
  } | {
45
54
  type: 'delete-folder';
46
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;
@@ -477,6 +477,17 @@ exports.EFFECT_CATALOG = [
477
477
  },
478
478
  },
479
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
+ },
480
491
  {
481
492
  id: 'effects-pattern',
482
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, 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, 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;
@@ -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
  }
@@ -34,7 +34,7 @@ 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", "text-content", "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
39
  export declare const getFieldsToShow: ({ getDragOverrides, propStatuses, nodePath, schema, currentRuntimeValueDotNotation, includeTextContent, }: {
40
40
  schema: InteractivitySchema;
@@ -23,6 +23,7 @@ const TRANSFORM_FIELD_KEYS = new Set([
23
23
  const TEXT_FIELD_KEYS = new Set([
24
24
  'children',
25
25
  'style.color',
26
+ 'style.fontFamily',
26
27
  'style.fontSize',
27
28
  'style.lineHeight',
28
29
  'style.fontWeight',
@@ -61,6 +62,7 @@ const SUPPORTED_SCHEMA_TYPES = [
61
62
  'uv-coordinate',
62
63
  'color',
63
64
  'text-content',
65
+ 'font-family',
64
66
  'array',
65
67
  'enum',
66
68
  '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.485",
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.485"
23
+ "remotion": "4.0.486"
24
24
  },
25
25
  "devDependencies": {
26
- "@remotion/renderer": "4.0.485",
27
- "@remotion/eslint-config-internal": "4.0.485",
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
  },