@remotion/studio-shared 4.0.500 → 4.0.501
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.
- package/dist/api-requests.d.ts +35 -0
- package/dist/browser-studio-operations.d.ts +28 -0
- package/dist/browser-studio-operations.js +2 -0
- package/dist/index.d.ts +3 -1
- package/dist/index.js +5 -1
- package/dist/keyframe-clipboard-data.d.ts +1 -0
- package/dist/keyframe-clipboard-data.js +1 -0
- package/dist/keyframe-interpolation-function.js +2 -0
- package/dist/package-info.d.ts +2 -2
- package/dist/package-info.js +4 -0
- package/dist/schema-field-info.d.ts +5 -1
- package/dist/schema-field-info.js +48 -0
- package/dist/style-property-relations.d.ts +3 -0
- package/dist/style-property-relations.js +18 -0
- package/package.json +5 -5
package/dist/api-requests.d.ts
CHANGED
|
@@ -259,8 +259,32 @@ export type SaveSequencePropEdit = {
|
|
|
259
259
|
schema: InteractivitySchema;
|
|
260
260
|
sourceEdit: SaveSequencePropSourceEdit | null;
|
|
261
261
|
};
|
|
262
|
+
export type CaptionPatch = {
|
|
263
|
+
index: number;
|
|
264
|
+
before: {
|
|
265
|
+
text: string;
|
|
266
|
+
startMs: number;
|
|
267
|
+
endMs: number;
|
|
268
|
+
timestampMs: number | null;
|
|
269
|
+
confidence: number | null;
|
|
270
|
+
};
|
|
271
|
+
changes: Partial<{
|
|
272
|
+
text: string;
|
|
273
|
+
startMs: number;
|
|
274
|
+
endMs: number;
|
|
275
|
+
timestampMs: number | null;
|
|
276
|
+
confidence: number | null;
|
|
277
|
+
}>;
|
|
278
|
+
};
|
|
279
|
+
export type SaveInlineCaptionPatchesRequest = {
|
|
280
|
+
fileName: string;
|
|
281
|
+
nodePath: SequencePropsSubscriptionKey;
|
|
282
|
+
schema: InteractivitySchema;
|
|
283
|
+
patches: CaptionPatch[];
|
|
284
|
+
};
|
|
262
285
|
export type SaveSequencePropsRequest = {
|
|
263
286
|
edits: SaveSequencePropEdit[];
|
|
287
|
+
captionPatches?: SaveInlineCaptionPatchesRequest[];
|
|
264
288
|
addedKeyframes: AddSequenceKeyframe[] | null;
|
|
265
289
|
movedKeyframes: {
|
|
266
290
|
sequenceKeyframes: MoveSequenceKeyframe[];
|
|
@@ -636,11 +660,22 @@ export type InsertElementRequest = {
|
|
|
636
660
|
element: ElementDragData['element'];
|
|
637
661
|
from: number | null;
|
|
638
662
|
position: InsertableCompositionElementPosition | null;
|
|
663
|
+
overwriteExisting: boolean;
|
|
664
|
+
};
|
|
665
|
+
export type InsertElementFileConflict = {
|
|
666
|
+
filePath: string;
|
|
667
|
+
existingSource: string;
|
|
668
|
+
incomingSource: string;
|
|
639
669
|
};
|
|
640
670
|
export type InsertElementResponse = {
|
|
641
671
|
success: true;
|
|
642
672
|
} | {
|
|
643
673
|
success: false;
|
|
674
|
+
type: 'file-conflict';
|
|
675
|
+
conflict: InsertElementFileConflict;
|
|
676
|
+
} | {
|
|
677
|
+
success: false;
|
|
678
|
+
type: 'error';
|
|
644
679
|
reason: string;
|
|
645
680
|
stack: string;
|
|
646
681
|
};
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { CompositionComponentInfoRequest, CompositionComponentInfoResponse, DeleteStaticFileRequest, DeleteStaticFileResponse, FindInFileRequest, FindInFileResponse, InsertJsxElementRequest, InsertJsxElementResponse, RedoResponse, RenameStaticFileRequest, RenameStaticFileResponse, UndoResponse } from './api-requests';
|
|
2
|
+
import type { EventSourceEvent } from './event-source-event';
|
|
3
|
+
export type WriteStaticFileRequest = {
|
|
4
|
+
contents: string | ArrayBuffer;
|
|
5
|
+
filePath: string;
|
|
6
|
+
};
|
|
7
|
+
export type BrowserStudioOperations = {
|
|
8
|
+
deleteStaticFile: (request: DeleteStaticFileRequest) => Promise<DeleteStaticFileResponse>;
|
|
9
|
+
downloadProject: () => Promise<{
|
|
10
|
+
data: Uint8Array;
|
|
11
|
+
fileName: string;
|
|
12
|
+
}>;
|
|
13
|
+
findInFile: (request: FindInFileRequest) => Promise<FindInFileResponse>;
|
|
14
|
+
getFileSource: (fileName: string) => Promise<string | null>;
|
|
15
|
+
getCompositionFile: (compositionId: string) => string | null;
|
|
16
|
+
getCompositionComponentInfo: (request: CompositionComponentInfoRequest) => Promise<CompositionComponentInfoResponse>;
|
|
17
|
+
insertSolid: (request: InsertJsxElementRequest) => Promise<InsertJsxElementResponse>;
|
|
18
|
+
redo: () => Promise<RedoResponse>;
|
|
19
|
+
renameStaticFile: (request: RenameStaticFileRequest) => Promise<RenameStaticFileResponse>;
|
|
20
|
+
subscribeToEvent: (listener: (event: EventSourceEvent) => void) => () => void;
|
|
21
|
+
undo: () => Promise<UndoResponse>;
|
|
22
|
+
writeStaticFile: (request: WriteStaticFileRequest) => Promise<void>;
|
|
23
|
+
};
|
|
24
|
+
declare global {
|
|
25
|
+
interface Window {
|
|
26
|
+
remotion_browserStudio?: BrowserStudioOperations;
|
|
27
|
+
}
|
|
28
|
+
}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export { splitAnsi, stripAnsi } from './ansi';
|
|
2
|
-
export
|
|
2
|
+
export type { BrowserStudioOperations } from './browser-studio-operations';
|
|
3
|
+
export { AddEffectKeyframeRequest, AddEffectKeyframeResponse, AddEffectRequest, AddEffectResponse, AddKeyframesRequest, AddKeyframesResponse, AddRenderRequest, AddSequenceKeyframeRequest, AddSequenceKeyframeResponse, ApiRoutes, ApplyCodemodRequest, ApplyCodemodResponse, ApplyVisualControlRequest, ApplyVisualControlResponse, BatchUpdateEffectKeyframeSettings, BatchUpdateKeyframeSettingsRequest, BatchUpdateKeyframeSettingsResponse, BatchUpdateSequenceKeyframeSettings, CanUpdateDefaultPropsResponse, CanUpdateSequencePropsRequest, CaptionPatch, CancelRenderRequest, CancelRenderResponse, CompositionComponentInfoRequest, CompositionComponentInfoResponse, ConvertFigmaClipboardToSvgRequest, ConvertFigmaClipboardToSvgResponse, CopyStillToClipboardRequest, DeleteEffectKeyframe, DeleteEffectRequest, DeleteEffectRequestItem, DeleteEffectResponse, DeleteJsxNodeRequest, DeleteJsxNodeRequestItem, DeleteJsxNodeResponse, DeleteKeyframesRequest, DeleteKeyframesResponse, DeleteSequenceKeyframe, DeleteStaticFileRequest, DeleteStaticFileResponse, DownloadRemoteAssetRequest, DownloadRemoteAssetResponse, DuplicateEffectRequest, DuplicateEffectRequestItem, DuplicateEffectResponse, DuplicateJsxNodeRequest, DuplicateJsxNodeResponse, ElementInstallRequest, FindInFileRequest, FindInFileResponse, GoogleFontSourceEdit, InsertElementFileConflict, 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, SaveMultipleEffectPropsEdit, SaveMultipleEffectPropsRequest, SaveMultipleEffectPropsResponse, SaveMultipleEffectPropsResult, SaveInlineCaptionPatchesRequest, 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, UpdatePublicLicenseRequest, UpdatePublicLicenseResponse, UpdateSequenceKeyframeSettingsRequest, UpdateSequenceKeyframeSettingsResponse, type AddEffectKeyframe, type AddSequenceKeyframe, type KeyframeSettings, } from './api-requests';
|
|
3
4
|
export type { ApplyVisualControlCodemod, RecastCodemod } from './codemods';
|
|
4
5
|
export { compositionDragDataToSymbolicatedStack } from './composition-drag-data';
|
|
5
6
|
export { DEFAULT_BUFFER_STATE_DELAY_IN_MILLISECONDS } from './default-buffer-state-delay-in-milliseconds';
|
|
@@ -30,6 +31,7 @@ export { getRequiredPackageForEffectImportPath, getRequiredPackageForInsertableE
|
|
|
30
31
|
export { SCHEMA_FIELD_GROUPS, SCHEMA_FIELD_ROW_HEIGHT, getEffectFieldsToShow, getFieldsToShow, getSchemaFieldGroup, } from './schema-field-info';
|
|
31
32
|
export type { AnySchemaFieldInfo, DragOverrides, EffectSchemaFieldInfo, InteractivitySchemaFieldInfo, PropStatuses, SchemaFieldGroup, SchemaFieldGroupInfo, SchemaFieldInfo, SequenceControls, } from './schema-field-info';
|
|
32
33
|
export { ScriptLine, SomeStackFrame, StackFrame, SymbolicatedStackFrame, } from './stack-types';
|
|
34
|
+
export { BORDER_RADIUS_LONGHAND_KEYS, BORDER_RADIUS_SHORTHAND_KEY, getStylePropertyLonghandKeys, } from './style-property-relations';
|
|
33
35
|
export { EnumPath, stringifyDefaultProps } from './stringify-default-props';
|
|
34
36
|
export { getStudioEntryPoints, type StudioEntryPointPaths, } from './studio-entry-points';
|
|
35
37
|
export { studioHtml, type StudioHtmlOptions } from './studio-html';
|
package/dist/index.js
CHANGED
|
@@ -15,7 +15,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
exports.DEFAULT_SPRING_EASING = exports.packages = exports.installableMap = exports.extraPackages = exports.descriptions = exports.apiDocs = exports.DEFAULT_TIMELINE_TRACKS = exports.parseKeyframeClipboardDataResult = exports.parseKeyframeClipboardData = exports.isKeyframeClipboardFieldType = 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.EASE_KEYFRAME_EASING = exports.CUBIC_KEYFRAME_EASING = 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.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.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 = 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.getStylePropertyLonghandKeys = exports.BORDER_RADIUS_SHORTHAND_KEY = exports.BORDER_RADIUS_LONGHAND_KEYS = exports.getSchemaFieldGroup = exports.getFieldsToShow = exports.getEffectFieldsToShow = exports.SCHEMA_FIELD_ROW_HEIGHT = exports.SCHEMA_FIELD_GROUPS = exports.isValidPackageName = exports.getRequiredPackageForInsertableElement = exports.getRequiredPackageForEffectImportPath = exports.parseSpringEasingConfig = 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; } });
|
|
@@ -97,6 +97,10 @@ Object.defineProperty(exports, "SCHEMA_FIELD_ROW_HEIGHT", { enumerable: true, ge
|
|
|
97
97
|
Object.defineProperty(exports, "getEffectFieldsToShow", { enumerable: true, get: function () { return schema_field_info_1.getEffectFieldsToShow; } });
|
|
98
98
|
Object.defineProperty(exports, "getFieldsToShow", { enumerable: true, get: function () { return schema_field_info_1.getFieldsToShow; } });
|
|
99
99
|
Object.defineProperty(exports, "getSchemaFieldGroup", { enumerable: true, get: function () { return schema_field_info_1.getSchemaFieldGroup; } });
|
|
100
|
+
const style_property_relations_1 = require("./style-property-relations");
|
|
101
|
+
Object.defineProperty(exports, "BORDER_RADIUS_LONGHAND_KEYS", { enumerable: true, get: function () { return style_property_relations_1.BORDER_RADIUS_LONGHAND_KEYS; } });
|
|
102
|
+
Object.defineProperty(exports, "BORDER_RADIUS_SHORTHAND_KEY", { enumerable: true, get: function () { return style_property_relations_1.BORDER_RADIUS_SHORTHAND_KEY; } });
|
|
103
|
+
Object.defineProperty(exports, "getStylePropertyLonghandKeys", { enumerable: true, get: function () { return style_property_relations_1.getStylePropertyLonghandKeys; } });
|
|
100
104
|
const stringify_default_props_1 = require("./stringify-default-props");
|
|
101
105
|
Object.defineProperty(exports, "stringifyDefaultProps", { enumerable: true, get: function () { return stringify_default_props_1.stringifyDefaultProps; } });
|
|
102
106
|
const studio_entry_points_1 = require("./studio-entry-points");
|
|
@@ -11,6 +11,7 @@ const KEYFRAME_FIELD_TYPE_SUPPORT = {
|
|
|
11
11
|
array: false,
|
|
12
12
|
asset: false,
|
|
13
13
|
boolean: false,
|
|
14
|
+
'remotion-captions': false,
|
|
14
15
|
color: true,
|
|
15
16
|
enum: false,
|
|
16
17
|
'font-family': false,
|
|
@@ -28,6 +29,7 @@ const KEYFRAME_FIELD_TYPE_INTERPOLATION = {
|
|
|
28
29
|
array: 'unsupported',
|
|
29
30
|
asset: 'unsupported',
|
|
30
31
|
boolean: 'unsupported',
|
|
32
|
+
'remotion-captions': 'unsupported',
|
|
31
33
|
color: 'interpolateColors',
|
|
32
34
|
enum: 'unsupported',
|
|
33
35
|
'font-family': 'unsupported',
|
package/dist/package-info.d.ts
CHANGED
|
@@ -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", "canvas-capture", "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-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", "drag-and-drop", "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", "canvas-capture", "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", "drag-and-drop", "light-leaks", "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" | "canvas-capture" | "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" | "drag-and-drop" | "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-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" | "canvas-capture" | "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" | "drag-and-drop" | "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-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;
|
package/dist/package-info.js
CHANGED
|
@@ -74,6 +74,7 @@ const allPackages = [
|
|
|
74
74
|
'serverless-client',
|
|
75
75
|
'skills',
|
|
76
76
|
'skills-evals',
|
|
77
|
+
'studio-codemods',
|
|
77
78
|
'studio-server',
|
|
78
79
|
'studio-shared',
|
|
79
80
|
'studio',
|
|
@@ -150,6 +151,7 @@ exports.descriptions = {
|
|
|
150
151
|
bundler: 'Bundle Remotion compositions using Webpack',
|
|
151
152
|
'browser-studio': 'Run Remotion Studio in the browser',
|
|
152
153
|
'canvas-capture': 'Capture HTML-in-canvas content as a video',
|
|
154
|
+
'studio-codemods': 'Shared codemods for Remotion Studio',
|
|
153
155
|
'studio-server': 'Run a Remotion Studio with a server backend',
|
|
154
156
|
'install-whisper-cpp': 'Helpers for installing and using Whisper.cpp',
|
|
155
157
|
'whisper-web': 'Helpers for using Whisper.cpp in browser using WASM',
|
|
@@ -311,6 +313,7 @@ exports.installableMap = {
|
|
|
311
313
|
'promo-pages': false,
|
|
312
314
|
streaming: false,
|
|
313
315
|
serverless: false,
|
|
316
|
+
'studio-codemods': false,
|
|
314
317
|
'studio-server': false,
|
|
315
318
|
'studio-shared': false,
|
|
316
319
|
studio: true,
|
|
@@ -367,6 +370,7 @@ exports.apiDocs = {
|
|
|
367
370
|
bundler: 'https://www.remotion.dev/docs/bundler',
|
|
368
371
|
'browser-studio': null,
|
|
369
372
|
'canvas-capture': null,
|
|
373
|
+
'studio-codemods': null,
|
|
370
374
|
'lambda-client': null,
|
|
371
375
|
'serverless-client': null,
|
|
372
376
|
'studio-server': null,
|
|
@@ -18,7 +18,7 @@ export type EffectSchemaFieldInfo = SchemaFieldInfo & {
|
|
|
18
18
|
};
|
|
19
19
|
export type AnySchemaFieldInfo = InteractivitySchemaFieldInfo | EffectSchemaFieldInfo;
|
|
20
20
|
export declare const SCHEMA_FIELD_ROW_HEIGHT = 22;
|
|
21
|
-
export type SchemaFieldGroup = 'source' | 'controls' | 'transforms' | 'background' | 'border' | 'crop' | 'text' | 'layout';
|
|
21
|
+
export type SchemaFieldGroup = 'source' | 'controls' | 'transforms' | 'background' | 'border' | 'border-radius' | 'crop' | 'text' | 'layout';
|
|
22
22
|
export type SchemaFieldGroupInfo = {
|
|
23
23
|
readonly id: SchemaFieldGroup;
|
|
24
24
|
readonly label: string;
|
|
@@ -41,6 +41,9 @@ export declare const SCHEMA_FIELD_GROUPS: readonly [{
|
|
|
41
41
|
}, {
|
|
42
42
|
readonly id: "border";
|
|
43
43
|
readonly label: "Border";
|
|
44
|
+
}, {
|
|
45
|
+
readonly id: "border-radius";
|
|
46
|
+
readonly label: "Border radius";
|
|
44
47
|
}, {
|
|
45
48
|
readonly id: "crop";
|
|
46
49
|
readonly label: "Crop";
|
|
@@ -53,6 +56,7 @@ declare const TIMELINE_SCHEMA_FIELD_TYPE_SUPPORT: {
|
|
|
53
56
|
readonly array: true;
|
|
54
57
|
readonly asset: true;
|
|
55
58
|
readonly boolean: true;
|
|
59
|
+
readonly 'remotion-captions': false;
|
|
56
60
|
readonly color: true;
|
|
57
61
|
readonly enum: true;
|
|
58
62
|
readonly 'font-family': true;
|
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.getEffectFieldsToShow = exports.getFieldsToShow = exports.getSchemaFieldGroup = exports.SCHEMA_FIELD_GROUPS = exports.SCHEMA_FIELD_ROW_HEIGHT = void 0;
|
|
4
4
|
const remotion_1 = require("remotion");
|
|
5
5
|
const no_react_1 = require("remotion/no-react");
|
|
6
|
+
const style_property_relations_1 = require("./style-property-relations");
|
|
6
7
|
exports.SCHEMA_FIELD_ROW_HEIGHT = 22;
|
|
7
8
|
exports.SCHEMA_FIELD_GROUPS = [
|
|
8
9
|
{ id: 'source', label: 'Source' },
|
|
@@ -11,6 +12,7 @@ exports.SCHEMA_FIELD_GROUPS = [
|
|
|
11
12
|
{ id: 'text', label: 'Text' },
|
|
12
13
|
{ id: 'background', label: 'Background' },
|
|
13
14
|
{ id: 'border', label: 'Border' },
|
|
15
|
+
{ id: 'border-radius', label: 'Border radius' },
|
|
14
16
|
{ id: 'crop', label: 'Crop' },
|
|
15
17
|
{ id: 'layout', label: 'Layout' },
|
|
16
18
|
];
|
|
@@ -31,6 +33,38 @@ const CROP_FIELD_KEYS = new Set([
|
|
|
31
33
|
'cropTop',
|
|
32
34
|
'cropBottom',
|
|
33
35
|
]);
|
|
36
|
+
const BORDER_RADIUS_FIELD_KEYS = new Set([
|
|
37
|
+
'style.borderRadius',
|
|
38
|
+
'style.borderTopLeftRadius',
|
|
39
|
+
'style.borderTopRightRadius',
|
|
40
|
+
'style.borderBottomRightRadius',
|
|
41
|
+
'style.borderBottomLeftRadius',
|
|
42
|
+
]);
|
|
43
|
+
const getBorderRadiusFieldKeysToShow = ({ activeSchema, propStatuses, nodePath, }) => {
|
|
44
|
+
if (!(style_property_relations_1.BORDER_RADIUS_SHORTHAND_KEY in activeSchema)) {
|
|
45
|
+
return null;
|
|
46
|
+
}
|
|
47
|
+
const statuses = remotion_1.Internals.getPropStatusesCtx(propStatuses, nodePath);
|
|
48
|
+
const shorthand = statuses === null || statuses === void 0 ? void 0 : statuses[style_property_relations_1.BORDER_RADIUS_SHORTHAND_KEY];
|
|
49
|
+
const longhands = style_property_relations_1.BORDER_RADIUS_LONGHAND_KEYS.map((key) => statuses === null || statuses === void 0 ? void 0 : statuses[key]);
|
|
50
|
+
// A supported shorthand is canonical even though the server also reports its
|
|
51
|
+
// expanded longhand values. This keeps one Inspector row and one keyframe track.
|
|
52
|
+
if ((shorthand === null || shorthand === void 0 ? void 0 : shorthand.status) === 'keyframed') {
|
|
53
|
+
return new Set([style_property_relations_1.BORDER_RADIUS_SHORTHAND_KEY]);
|
|
54
|
+
}
|
|
55
|
+
if ((shorthand === null || shorthand === void 0 ? void 0 : shorthand.status) === 'static' && shorthand.codeValue !== undefined) {
|
|
56
|
+
return new Set([style_property_relations_1.BORDER_RADIUS_SHORTHAND_KEY]);
|
|
57
|
+
}
|
|
58
|
+
const hasEditableLonghand = longhands.some((status) => (status === null || status === void 0 ? void 0 : status.status) === 'keyframed' ||
|
|
59
|
+
((status === null || status === void 0 ? void 0 : status.status) === 'static' && status.codeValue !== undefined));
|
|
60
|
+
if (hasEditableLonghand) {
|
|
61
|
+
return new Set(style_property_relations_1.BORDER_RADIUS_LONGHAND_KEYS);
|
|
62
|
+
}
|
|
63
|
+
// No radius has been authored, an unsupported dynamic shorthand was authored,
|
|
64
|
+
// or shorthand and longhands were mixed. In all three cases, only show the
|
|
65
|
+
// shorthand row so duplicate representations never reach the Inspector/timeline.
|
|
66
|
+
return new Set([style_property_relations_1.BORDER_RADIUS_SHORTHAND_KEY]);
|
|
67
|
+
};
|
|
34
68
|
const BORDER_FIELD_KEYS = new Set([
|
|
35
69
|
'style.borderWidth',
|
|
36
70
|
'style.borderStyle',
|
|
@@ -59,6 +93,9 @@ const getSchemaFieldGroup = (key) => {
|
|
|
59
93
|
if (CROP_FIELD_KEYS.has(key)) {
|
|
60
94
|
return 'crop';
|
|
61
95
|
}
|
|
96
|
+
if (BORDER_RADIUS_FIELD_KEYS.has(key)) {
|
|
97
|
+
return 'border-radius';
|
|
98
|
+
}
|
|
62
99
|
if (BORDER_FIELD_KEYS.has(key)) {
|
|
63
100
|
return 'border';
|
|
64
101
|
}
|
|
@@ -90,6 +127,7 @@ const TIMELINE_SCHEMA_FIELD_TYPE_SUPPORT = {
|
|
|
90
127
|
array: true,
|
|
91
128
|
asset: true,
|
|
92
129
|
boolean: true,
|
|
130
|
+
'remotion-captions': false,
|
|
93
131
|
color: true,
|
|
94
132
|
enum: true,
|
|
95
133
|
'font-family': true,
|
|
@@ -146,8 +184,18 @@ const getFieldsToShow = ({ getDragOverrides, propStatuses, nodePath, schema, cur
|
|
|
146
184
|
frame: null,
|
|
147
185
|
});
|
|
148
186
|
const activeSchema = remotion_1.Internals.flattenActiveSchema(schema, (key) => valuesDotNotation[key]);
|
|
187
|
+
const borderRadiusFieldKeysToShow = getBorderRadiusFieldKeysToShow({
|
|
188
|
+
activeSchema,
|
|
189
|
+
propStatuses,
|
|
190
|
+
nodePath,
|
|
191
|
+
});
|
|
149
192
|
const fields = Object.entries(activeSchema)
|
|
150
193
|
.map(([key, fieldSchema]) => {
|
|
194
|
+
if (BORDER_RADIUS_FIELD_KEYS.has(key) &&
|
|
195
|
+
borderRadiusFieldKeysToShow !== null &&
|
|
196
|
+
!borderRadiusFieldKeysToShow.has(key)) {
|
|
197
|
+
return null;
|
|
198
|
+
}
|
|
151
199
|
if (!isTimelineSchemaFieldSupported(fieldSchema)) {
|
|
152
200
|
return null;
|
|
153
201
|
}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export declare const BORDER_RADIUS_SHORTHAND_KEY = "style.borderRadius";
|
|
2
|
+
export declare const BORDER_RADIUS_LONGHAND_KEYS: readonly ["style.borderTopLeftRadius", "style.borderTopRightRadius", "style.borderBottomRightRadius", "style.borderBottomLeftRadius"];
|
|
3
|
+
export declare const getStylePropertyLonghandKeys: (fieldKey: string) => readonly string[];
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getStylePropertyLonghandKeys = exports.BORDER_RADIUS_LONGHAND_KEYS = exports.BORDER_RADIUS_SHORTHAND_KEY = void 0;
|
|
4
|
+
exports.BORDER_RADIUS_SHORTHAND_KEY = 'style.borderRadius';
|
|
5
|
+
exports.BORDER_RADIUS_LONGHAND_KEYS = [
|
|
6
|
+
'style.borderTopLeftRadius',
|
|
7
|
+
'style.borderTopRightRadius',
|
|
8
|
+
'style.borderBottomRightRadius',
|
|
9
|
+
'style.borderBottomLeftRadius',
|
|
10
|
+
];
|
|
11
|
+
const STYLE_PROPERTY_LONGHANDS = new Map([
|
|
12
|
+
[exports.BORDER_RADIUS_SHORTHAND_KEY, exports.BORDER_RADIUS_LONGHAND_KEYS],
|
|
13
|
+
]);
|
|
14
|
+
const getStylePropertyLonghandKeys = (fieldKey) => {
|
|
15
|
+
var _a;
|
|
16
|
+
return (_a = STYLE_PROPERTY_LONGHANDS.get(fieldKey)) !== null && _a !== void 0 ? _a : [];
|
|
17
|
+
};
|
|
18
|
+
exports.getStylePropertyLonghandKeys = getStylePropertyLonghandKeys;
|
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.
|
|
6
|
+
"version": "4.0.501",
|
|
7
7
|
"description": "Internal package for shared objects between the Studio backend and frontend",
|
|
8
8
|
"main": "dist",
|
|
9
9
|
"scripts": {
|
|
@@ -20,12 +20,12 @@
|
|
|
20
20
|
"url": "https://github.com/remotion-dev/remotion/issues"
|
|
21
21
|
},
|
|
22
22
|
"dependencies": {
|
|
23
|
-
"@remotion/drag-and-drop": "4.0.
|
|
24
|
-
"remotion": "4.0.
|
|
23
|
+
"@remotion/drag-and-drop": "4.0.501",
|
|
24
|
+
"remotion": "4.0.501"
|
|
25
25
|
},
|
|
26
26
|
"devDependencies": {
|
|
27
|
-
"@remotion/renderer": "4.0.
|
|
28
|
-
"@remotion/eslint-config-internal": "4.0.
|
|
27
|
+
"@remotion/renderer": "4.0.501",
|
|
28
|
+
"@remotion/eslint-config-internal": "4.0.501",
|
|
29
29
|
"eslint": "9.19.0",
|
|
30
30
|
"@typescript/native-preview": "7.0.0-dev.20260217.1"
|
|
31
31
|
},
|