@remotion/studio-shared 4.0.499 → 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.
@@ -21,6 +21,16 @@ export type OpenInEditorRequest = {
21
21
  export type OpenInEditorResponse = {
22
22
  success: boolean;
23
23
  };
24
+ export type FindInFileRequest = {
25
+ fileName: string;
26
+ lineNumber: number;
27
+ columnNumber: number;
28
+ search: string;
29
+ };
30
+ export type FindInFileResponse = {
31
+ lineNumber: number;
32
+ columnNumber: number;
33
+ };
24
34
  export type CompositionComponentInfoRequest = {
25
35
  compositionFile: string;
26
36
  compositionId: string;
@@ -249,8 +259,32 @@ export type SaveSequencePropEdit = {
249
259
  schema: InteractivitySchema;
250
260
  sourceEdit: SaveSequencePropSourceEdit | null;
251
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
+ };
252
285
  export type SaveSequencePropsRequest = {
253
286
  edits: SaveSequencePropEdit[];
287
+ captionPatches?: SaveInlineCaptionPatchesRequest[];
254
288
  addedKeyframes: AddSequenceKeyframe[] | null;
255
289
  movedKeyframes: {
256
290
  sequenceKeyframes: MoveSequenceKeyframe[];
@@ -290,6 +324,22 @@ export type SaveEffectPropsRequest = (SaveEffectPropsRequestBase & {
290
324
  effectParam: EffectClipboardParam;
291
325
  });
292
326
  export type SaveEffectPropsResponse = CanUpdateEffectPropsResponse;
327
+ type WithoutClientId<T> = T extends unknown ? Omit<T, 'clientId'> : never;
328
+ export type SaveMultipleEffectPropsEdit = WithoutClientId<SaveEffectPropsRequest>;
329
+ export type SaveMultipleEffectPropsRequest = {
330
+ edits: SaveMultipleEffectPropsEdit[];
331
+ clientId: string;
332
+ undoLabel: string;
333
+ redoLabel: string;
334
+ };
335
+ export type SaveMultipleEffectPropsResult = {
336
+ fileName: string;
337
+ sequenceNodePath: SequencePropsSubscriptionKey;
338
+ status: CanUpdateEffectPropsResponse;
339
+ };
340
+ export type SaveMultipleEffectPropsResponse = {
341
+ results: SaveMultipleEffectPropsResult[];
342
+ };
293
343
  export type AddEffectRequest = {
294
344
  fileName: string;
295
345
  sequenceNodePath: SequencePropsSubscriptionKey;
@@ -610,11 +660,22 @@ export type InsertElementRequest = {
610
660
  element: ElementDragData['element'];
611
661
  from: number | null;
612
662
  position: InsertableCompositionElementPosition | null;
663
+ overwriteExisting: boolean;
664
+ };
665
+ export type InsertElementFileConflict = {
666
+ filePath: string;
667
+ existingSource: string;
668
+ incomingSource: string;
613
669
  };
614
670
  export type InsertElementResponse = {
615
671
  success: true;
616
672
  } | {
617
673
  success: false;
674
+ type: 'file-conflict';
675
+ conflict: InsertElementFileConflict;
676
+ } | {
677
+ success: false;
678
+ type: 'error';
618
679
  reason: string;
619
680
  stack: string;
620
681
  };
@@ -703,6 +764,7 @@ export type ApiRoutes = {
703
764
  '/api/subscribe-to-file-existence': ReqAndRes<SubscribeToFileExistenceRequest, SubscribeToFileExistenceResponse>;
704
765
  '/api/remove-render': ReqAndRes<RemoveRenderRequest, undefined>;
705
766
  '/api/open-in-editor': ReqAndRes<OpenInEditorRequest, OpenInEditorResponse>;
767
+ '/api/find-in-file': ReqAndRes<FindInFileRequest, FindInFileResponse>;
706
768
  '/api/open-in-file-explorer': ReqAndRes<OpenInFileExplorerRequest, void>;
707
769
  '/api/register-client-render': ReqAndRes<CompletedClientRender, void>;
708
770
  '/api/unregister-client-render': ReqAndRes<{
@@ -716,6 +778,7 @@ export type ApiRoutes = {
716
778
  '/api/unsubscribe-from-sequence-props': ReqAndRes<UnsubscribeFromSequencePropsRequest, undefined>;
717
779
  '/api/save-sequence-props': ReqAndRes<SaveSequencePropsRequest, SaveSequencePropsResponse>;
718
780
  '/api/save-effect-props': ReqAndRes<SaveEffectPropsRequest, SaveEffectPropsResponse>;
781
+ '/api/save-multiple-effect-props': ReqAndRes<SaveMultipleEffectPropsRequest, SaveMultipleEffectPropsResponse>;
719
782
  '/api/add-effect': ReqAndRes<AddEffectRequest, AddEffectResponse>;
720
783
  '/api/reorder-effect': ReqAndRes<ReorderEffectRequest, ReorderEffectResponse>;
721
784
  '/api/duplicate-effect': ReqAndRes<DuplicateEffectRequest, DuplicateEffectResponse>;
@@ -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
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -2,12 +2,6 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.EFFECT_CATALOG = exports.getEffectCatalogCategories = exports.getEffectPreviewAlt = exports.getEffectPreviewSource = exports.getEffectDocumentationLink = exports.getEffectDocumentationPath = void 0;
4
4
  const getEffectDocumentationPath = (item) => {
5
- if (item.id === 'effects-light-leak') {
6
- return '/docs/light-leaks/light-leak-effect';
7
- }
8
- if (item.id === 'effects-starburst') {
9
- return '/docs/starburst/starburst-effect';
10
- }
11
5
  return `/docs/effects/${item.id.slice('effects-'.length)}`;
12
6
  };
13
7
  exports.getEffectDocumentationPath = getEffectDocumentationPath;
@@ -761,7 +755,7 @@ exports.EFFECT_CATALOG = [
761
755
  description: 'Light leak overlay effect',
762
756
  effect: {
763
757
  name: 'lightLeak',
764
- importPath: '@remotion/light-leaks',
758
+ importPath: '@remotion/effects/light-leak',
765
759
  config: {},
766
760
  },
767
761
  },
@@ -772,7 +766,7 @@ exports.EFFECT_CATALOG = [
772
766
  description: 'Starburst ray effect',
773
767
  effect: {
774
768
  name: 'starburst',
775
- importPath: '@remotion/starburst',
769
+ importPath: '@remotion/effects/starburst',
776
770
  config: {
777
771
  rays: 16,
778
772
  colors: ['#ff6600', '#ffff00'],
package/dist/index.d.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  export { splitAnsi, stripAnsi } from './ansi';
2
- export { AddEffectKeyframeRequest, AddEffectKeyframeResponse, AddEffectRequest, AddEffectResponse, AddKeyframesRequest, AddKeyframesResponse, AddRenderRequest, AddSequenceKeyframeRequest, AddSequenceKeyframeResponse, ApiRoutes, ApplyCodemodRequest, ApplyCodemodResponse, ApplyVisualControlRequest, ApplyVisualControlResponse, BatchUpdateEffectKeyframeSettings, BatchUpdateKeyframeSettingsRequest, BatchUpdateKeyframeSettingsResponse, BatchUpdateSequenceKeyframeSettings, CanUpdateDefaultPropsResponse, CanUpdateSequencePropsRequest, CancelRenderRequest, CancelRenderResponse, 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, 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, UpdatePublicLicenseRequest, UpdatePublicLicenseResponse, UpdateSequenceKeyframeSettingsRequest, UpdateSequenceKeyframeSettingsResponse, type AddEffectKeyframe, type AddSequenceKeyframe, type KeyframeSettings, } from './api-requests';
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");
@@ -3,6 +3,7 @@ declare const KEYFRAME_CLIPBOARD_FIELD_TYPE_SUPPORT: {
3
3
  readonly array: false;
4
4
  readonly asset: false;
5
5
  readonly boolean: false;
6
+ readonly 'remotion-captions': false;
6
7
  readonly color: true;
7
8
  readonly enum: false;
8
9
  readonly 'font-family': false;
@@ -8,6 +8,7 @@ const KEYFRAME_CLIPBOARD_FIELD_TYPE_SUPPORT = {
8
8
  array: false,
9
9
  asset: false,
10
10
  boolean: false,
11
+ 'remotion-captions': false,
11
12
  color: true,
12
13
  enum: false,
13
14
  'font-family': false,
@@ -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',
@@ -1,5 +1,6 @@
1
- export declare const packages: 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"];
2
- export type Pkgs = (typeof packages)[number];
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
+ 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-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")[];
3
4
  export type ExtraPackage = {
4
5
  name: string;
5
6
  version: string;
@@ -16,3 +17,4 @@ export declare const installableMap: {
16
17
  export declare const apiDocs: {
17
18
  [key in Pkgs]: string | null;
18
19
  };
20
+ export {};
@@ -1,7 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.apiDocs = exports.installableMap = exports.descriptions = exports.extraPackages = exports.packages = void 0;
4
- exports.packages = [
4
+ const remotion_1 = require("remotion");
5
+ const release_package_policy_1 = require("./release-package-policy");
6
+ const allPackages = [
5
7
  'svg-3d-engine',
6
8
  'animation-utils',
7
9
  'animated-emoji',
@@ -72,6 +74,7 @@ exports.packages = [
72
74
  'serverless-client',
73
75
  'skills',
74
76
  'skills-evals',
77
+ 'studio-codemods',
75
78
  'studio-server',
76
79
  'studio-shared',
77
80
  'studio',
@@ -104,6 +107,10 @@ exports.packages = [
104
107
  'sfx',
105
108
  'effects',
106
109
  ];
110
+ exports.packages = allPackages.filter((pkg) => (0, release_package_policy_1.shouldReleasePackage)({
111
+ packageName: pkg === 'core' ? 'remotion' : `@remotion/${pkg}`,
112
+ releaseVersion: remotion_1.VERSION,
113
+ }));
107
114
  exports.extraPackages = [
108
115
  {
109
116
  name: 'mediabunny',
@@ -144,6 +151,7 @@ exports.descriptions = {
144
151
  bundler: 'Bundle Remotion compositions using Webpack',
145
152
  'browser-studio': 'Run Remotion Studio in the browser',
146
153
  'canvas-capture': 'Capture HTML-in-canvas content as a video',
154
+ 'studio-codemods': 'Shared codemods for Remotion Studio',
147
155
  'studio-server': 'Run a Remotion Studio with a server backend',
148
156
  'install-whisper-cpp': 'Helpers for installing and using Whisper.cpp',
149
157
  'whisper-web': 'Helpers for using Whisper.cpp in browser using WASM',
@@ -305,6 +313,7 @@ exports.installableMap = {
305
313
  'promo-pages': false,
306
314
  streaming: false,
307
315
  serverless: false,
316
+ 'studio-codemods': false,
308
317
  'studio-server': false,
309
318
  'studio-shared': false,
310
319
  studio: true,
@@ -314,10 +323,16 @@ exports.installableMap = {
314
323
  'test-utils': false,
315
324
  three: true,
316
325
  transitions: true,
317
- 'media-parser': true,
326
+ 'media-parser': (0, release_package_policy_1.shouldReleasePackage)({
327
+ packageName: '@remotion/media-parser',
328
+ releaseVersion: remotion_1.VERSION,
329
+ }),
318
330
  'zod-types': true,
319
331
  'zod-types-v3': true,
320
- webcodecs: true,
332
+ webcodecs: (0, release_package_policy_1.shouldReleasePackage)({
333
+ packageName: '@remotion/webcodecs',
334
+ releaseVersion: remotion_1.VERSION,
335
+ }),
321
336
  convert: false,
322
337
  captions: true,
323
338
  'openai-whisper': true,
@@ -329,9 +344,15 @@ exports.installableMap = {
329
344
  'web-renderer': false,
330
345
  design: false,
331
346
  'drag-and-drop': true,
332
- 'light-leaks': true,
347
+ 'light-leaks': (0, release_package_policy_1.shouldReleasePackage)({
348
+ packageName: '@remotion/light-leaks',
349
+ releaseVersion: remotion_1.VERSION,
350
+ }),
333
351
  'rough-notation': true,
334
- starburst: true,
352
+ starburst: (0, release_package_policy_1.shouldReleasePackage)({
353
+ packageName: '@remotion/starburst',
354
+ releaseVersion: remotion_1.VERSION,
355
+ }),
335
356
  vercel: true,
336
357
  sfx: true,
337
358
  effects: true,
@@ -349,6 +370,7 @@ exports.apiDocs = {
349
370
  bundler: 'https://www.remotion.dev/docs/bundler',
350
371
  'browser-studio': null,
351
372
  'canvas-capture': null,
373
+ 'studio-codemods': null,
352
374
  'lambda-client': null,
353
375
  'serverless-client': null,
354
376
  'studio-server': null,
@@ -0,0 +1,15 @@
1
+ export declare const packagesRemovedInV5: readonly ["@remotion/light-leaks", "@remotion/media-parser", "@remotion/starburst", "@remotion/webcodecs"];
2
+ export declare const shouldReleasePackage: ({ packageName, releaseVersion, }: {
3
+ packageName: string;
4
+ releaseVersion: string;
5
+ }) => boolean;
6
+ type PackageJsonWithDependencies = {
7
+ dependencies?: Record<string, string>;
8
+ devDependencies?: Record<string, string>;
9
+ };
10
+ type PackageJsonForRelease<T> = Omit<T, 'dependencies' | 'devDependencies'> & PackageJsonWithDependencies;
11
+ export declare const moveRemovedDependenciesToDevDependencies: <T extends PackageJsonWithDependencies>({ packageJson, releaseVersion, }: {
12
+ packageJson: T;
13
+ releaseVersion: string;
14
+ }) => PackageJsonForRelease<T>;
15
+ export {};
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.moveRemovedDependenciesToDevDependencies = exports.shouldReleasePackage = exports.packagesRemovedInV5 = void 0;
4
+ exports.packagesRemovedInV5 = [
5
+ '@remotion/light-leaks',
6
+ '@remotion/media-parser',
7
+ '@remotion/starburst',
8
+ '@remotion/webcodecs',
9
+ ];
10
+ const packagesRemovedInV5Set = new Set(exports.packagesRemovedInV5);
11
+ const shouldReleasePackage = ({ packageName, releaseVersion, }) => {
12
+ const majorVersion = Number.parseInt(releaseVersion.split('.')[0], 10);
13
+ if (!Number.isInteger(majorVersion)) {
14
+ throw new Error(`Invalid release version: ${releaseVersion}`);
15
+ }
16
+ return majorVersion < 5 || !packagesRemovedInV5Set.has(packageName);
17
+ };
18
+ exports.shouldReleasePackage = shouldReleasePackage;
19
+ const moveRemovedDependenciesToDevDependencies = ({ packageJson, releaseVersion, }) => {
20
+ const dependencies = { ...packageJson.dependencies };
21
+ const devDependencies = { ...packageJson.devDependencies };
22
+ let movedDependency = false;
23
+ for (const [packageName, dependencyVersion] of Object.entries(dependencies)) {
24
+ if (!(0, exports.shouldReleasePackage)({ packageName, releaseVersion })) {
25
+ delete dependencies[packageName];
26
+ devDependencies[packageName] = dependencyVersion;
27
+ movedDependency = true;
28
+ }
29
+ }
30
+ if (!movedDependency) {
31
+ return packageJson;
32
+ }
33
+ return { ...packageJson, dependencies, devDependencies };
34
+ };
35
+ exports.moveRemovedDependenciesToDevDependencies = moveRemovedDependenciesToDevDependencies;
@@ -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' | 'text';
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,12 +41,22 @@ 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";
47
+ }, {
48
+ readonly id: "crop";
49
+ readonly label: "Crop";
50
+ }, {
51
+ readonly id: "layout";
52
+ readonly label: "Layout";
44
53
  }];
45
54
  export declare const getSchemaFieldGroup: (key: string) => SchemaFieldGroup;
46
55
  declare const TIMELINE_SCHEMA_FIELD_TYPE_SUPPORT: {
47
56
  readonly array: true;
48
57
  readonly asset: true;
49
58
  readonly boolean: true;
59
+ readonly 'remotion-captions': false;
50
60
  readonly color: true;
51
61
  readonly enum: true;
52
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,9 @@ 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' },
16
+ { id: 'crop', label: 'Crop' },
17
+ { id: 'layout', label: 'Layout' },
14
18
  ];
15
19
  const schemaFieldGroupOrder = exports.SCHEMA_FIELD_GROUPS.reduce((acc, group, index) => {
16
20
  acc[group.id] = index;
@@ -23,12 +27,51 @@ const TRANSFORM_FIELD_KEYS = new Set([
23
27
  'style.rotate',
24
28
  'style.opacity',
25
29
  ]);
30
+ const CROP_FIELD_KEYS = new Set([
31
+ 'cropLeft',
32
+ 'cropRight',
33
+ 'cropTop',
34
+ 'cropBottom',
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
+ };
26
68
  const BORDER_FIELD_KEYS = new Set([
27
69
  'style.borderWidth',
28
70
  'style.borderStyle',
29
71
  'style.borderColor',
30
72
  ]);
31
73
  const BACKGROUND_FIELD_KEYS = new Set(['style.backgroundColor']);
74
+ const LAYOUT_FIELD_KEYS = new Set(['layout', 'premountFor']);
32
75
  const TEXT_FIELD_KEYS = new Set([
33
76
  'children',
34
77
  'style.color',
@@ -47,12 +90,21 @@ const getSchemaFieldGroup = (key) => {
47
90
  if (TRANSFORM_FIELD_KEYS.has(key)) {
48
91
  return 'transforms';
49
92
  }
93
+ if (CROP_FIELD_KEYS.has(key)) {
94
+ return 'crop';
95
+ }
96
+ if (BORDER_RADIUS_FIELD_KEYS.has(key)) {
97
+ return 'border-radius';
98
+ }
50
99
  if (BORDER_FIELD_KEYS.has(key)) {
51
100
  return 'border';
52
101
  }
53
102
  if (BACKGROUND_FIELD_KEYS.has(key)) {
54
103
  return 'background';
55
104
  }
105
+ if (LAYOUT_FIELD_KEYS.has(key)) {
106
+ return 'layout';
107
+ }
56
108
  if (TEXT_FIELD_KEYS.has(key)) {
57
109
  return 'text';
58
110
  }
@@ -75,6 +127,7 @@ const TIMELINE_SCHEMA_FIELD_TYPE_SUPPORT = {
75
127
  array: true,
76
128
  asset: true,
77
129
  boolean: true,
130
+ 'remotion-captions': false,
78
131
  color: true,
79
132
  enum: true,
80
133
  'font-family': true,
@@ -131,8 +184,18 @@ const getFieldsToShow = ({ getDragOverrides, propStatuses, nodePath, schema, cur
131
184
  frame: null,
132
185
  });
133
186
  const activeSchema = remotion_1.Internals.flattenActiveSchema(schema, (key) => valuesDotNotation[key]);
187
+ const borderRadiusFieldKeysToShow = getBorderRadiusFieldKeysToShow({
188
+ activeSchema,
189
+ propStatuses,
190
+ nodePath,
191
+ });
134
192
  const fields = Object.entries(activeSchema)
135
193
  .map(([key, fieldSchema]) => {
194
+ if (BORDER_RADIUS_FIELD_KEYS.has(key) &&
195
+ borderRadiusFieldKeysToShow !== null &&
196
+ !borderRadiusFieldKeysToShow.has(key)) {
197
+ return null;
198
+ }
136
199
  if (!isTimelineSchemaFieldSupported(fieldSchema)) {
137
200
  return null;
138
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.499",
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.499",
24
- "remotion": "4.0.499"
23
+ "@remotion/drag-and-drop": "4.0.501",
24
+ "remotion": "4.0.501"
25
25
  },
26
26
  "devDependencies": {
27
- "@remotion/renderer": "4.0.499",
28
- "@remotion/eslint-config-internal": "4.0.499",
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
  },