@remotion/studio-shared 4.0.471 → 4.0.473
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 +131 -5
- package/dist/asset-drag-data.d.ts +8 -0
- package/dist/asset-drag-data.js +38 -0
- package/dist/codemods.d.ts +9 -0
- package/dist/detect-file-type.d.ts +71 -0
- package/dist/detect-file-type.js +295 -0
- package/dist/effect-clipboard-data.d.ts +70 -0
- package/dist/effect-clipboard-data.js +172 -0
- package/dist/index.d.ts +8 -1
- package/dist/index.js +46 -1
- package/dist/keyframe-interpolation-function.d.ts +19 -0
- package/dist/keyframe-interpolation-function.js +69 -0
- package/dist/optimistic-add-keyframe.d.ts +5 -3
- package/dist/optimistic-add-keyframe.js +55 -36
- package/dist/optimistic-delete-keyframe.js +2 -5
- package/dist/optimistic-move-keyframe.d.ts +23 -0
- package/dist/optimistic-move-keyframe.js +142 -0
- package/dist/optimistic-update-for-code-values.js +1 -1
- package/dist/optimistic-update-for-effect-code-values.js +1 -1
- package/dist/optimistic-update-keyframe-settings.d.ts +13 -0
- package/dist/optimistic-update-keyframe-settings.js +60 -0
- package/dist/required-package.d.ts +3 -0
- package/dist/required-package.js +27 -0
- package/dist/schema-field-info.d.ts +1 -1
- package/dist/schema-field-info.js +52 -15
- package/package.json +4 -4
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { CanUpdateSequencePropsResponse, CanUpdateSequencePropStatus } from 'remotion';
|
|
2
|
+
export type OptimisticKeyframeMove = {
|
|
3
|
+
readonly fieldKey: string;
|
|
4
|
+
readonly fromFrame: number;
|
|
5
|
+
readonly toFrame: number;
|
|
6
|
+
};
|
|
7
|
+
export declare const canMoveKeyframesWithoutCollisions: ({ status, moves, }: {
|
|
8
|
+
status: CanUpdateSequencePropStatus;
|
|
9
|
+
moves: readonly {
|
|
10
|
+
fromFrame: number;
|
|
11
|
+
toFrame: number;
|
|
12
|
+
}[];
|
|
13
|
+
}) => boolean;
|
|
14
|
+
export declare const optimisticMoveSequenceKeyframes: ({ previous, keyframes, }: {
|
|
15
|
+
previous: CanUpdateSequencePropsResponse;
|
|
16
|
+
keyframes: readonly OptimisticKeyframeMove[];
|
|
17
|
+
}) => CanUpdateSequencePropsResponse;
|
|
18
|
+
export declare const optimisticMoveEffectKeyframes: ({ previous, keyframes, }: {
|
|
19
|
+
previous: CanUpdateSequencePropsResponse;
|
|
20
|
+
keyframes: readonly (OptimisticKeyframeMove & {
|
|
21
|
+
effectIndex: number;
|
|
22
|
+
})[];
|
|
23
|
+
}) => CanUpdateSequencePropsResponse;
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.optimisticMoveEffectKeyframes = exports.optimisticMoveSequenceKeyframes = exports.canMoveKeyframesWithoutCollisions = void 0;
|
|
4
|
+
const getMoveMap = (moves) => {
|
|
5
|
+
const moveMap = new Map();
|
|
6
|
+
for (const move of moves) {
|
|
7
|
+
if (move.fromFrame === move.toFrame) {
|
|
8
|
+
continue;
|
|
9
|
+
}
|
|
10
|
+
if (moveMap.has(move.fromFrame)) {
|
|
11
|
+
return null;
|
|
12
|
+
}
|
|
13
|
+
moveMap.set(move.fromFrame, move.toFrame);
|
|
14
|
+
}
|
|
15
|
+
return moveMap;
|
|
16
|
+
};
|
|
17
|
+
const canMoveKeyframesWithoutCollisions = ({ status, moves, }) => {
|
|
18
|
+
var _a;
|
|
19
|
+
if (status.status !== 'keyframed') {
|
|
20
|
+
return false;
|
|
21
|
+
}
|
|
22
|
+
const moveMap = getMoveMap(moves);
|
|
23
|
+
if (moveMap === null) {
|
|
24
|
+
return false;
|
|
25
|
+
}
|
|
26
|
+
if (moveMap.size === 0) {
|
|
27
|
+
return true;
|
|
28
|
+
}
|
|
29
|
+
const frames = new Set(status.keyframes.map((keyframe) => keyframe.frame));
|
|
30
|
+
for (const fromFrame of moveMap.keys()) {
|
|
31
|
+
if (!frames.has(fromFrame)) {
|
|
32
|
+
return false;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
const nextFrames = new Set();
|
|
36
|
+
for (const keyframe of status.keyframes) {
|
|
37
|
+
const frame = (_a = moveMap.get(keyframe.frame)) !== null && _a !== void 0 ? _a : keyframe.frame;
|
|
38
|
+
if (nextFrames.has(frame)) {
|
|
39
|
+
return false;
|
|
40
|
+
}
|
|
41
|
+
nextFrames.add(frame);
|
|
42
|
+
}
|
|
43
|
+
return true;
|
|
44
|
+
};
|
|
45
|
+
exports.canMoveKeyframesWithoutCollisions = canMoveKeyframesWithoutCollisions;
|
|
46
|
+
const moveKeyframesInPropStatus = ({ status, moves, }) => {
|
|
47
|
+
if (status.status !== 'keyframed') {
|
|
48
|
+
return status;
|
|
49
|
+
}
|
|
50
|
+
if (!(0, exports.canMoveKeyframesWithoutCollisions)({ status, moves })) {
|
|
51
|
+
return status;
|
|
52
|
+
}
|
|
53
|
+
const moveMap = getMoveMap(moves);
|
|
54
|
+
if (moveMap === null) {
|
|
55
|
+
return status;
|
|
56
|
+
}
|
|
57
|
+
if (moveMap.size === 0) {
|
|
58
|
+
return status;
|
|
59
|
+
}
|
|
60
|
+
return {
|
|
61
|
+
...status,
|
|
62
|
+
keyframes: status.keyframes
|
|
63
|
+
.map((keyframe) => {
|
|
64
|
+
var _a;
|
|
65
|
+
return ({
|
|
66
|
+
...keyframe,
|
|
67
|
+
frame: (_a = moveMap.get(keyframe.frame)) !== null && _a !== void 0 ? _a : keyframe.frame,
|
|
68
|
+
});
|
|
69
|
+
})
|
|
70
|
+
.sort((a, b) => a.frame - b.frame),
|
|
71
|
+
};
|
|
72
|
+
};
|
|
73
|
+
const optimisticMoveSequenceKeyframes = ({ previous, keyframes, }) => {
|
|
74
|
+
var _a;
|
|
75
|
+
if (!previous.canUpdate) {
|
|
76
|
+
return previous;
|
|
77
|
+
}
|
|
78
|
+
const movesByField = new Map();
|
|
79
|
+
for (const keyframe of keyframes) {
|
|
80
|
+
const moves = (_a = movesByField.get(keyframe.fieldKey)) !== null && _a !== void 0 ? _a : [];
|
|
81
|
+
moves.push(keyframe);
|
|
82
|
+
movesByField.set(keyframe.fieldKey, moves);
|
|
83
|
+
}
|
|
84
|
+
const props = { ...previous.props };
|
|
85
|
+
for (const [fieldKey, moves] of movesByField) {
|
|
86
|
+
const status = props[fieldKey];
|
|
87
|
+
if (!status) {
|
|
88
|
+
continue;
|
|
89
|
+
}
|
|
90
|
+
props[fieldKey] = moveKeyframesInPropStatus({ status, moves });
|
|
91
|
+
}
|
|
92
|
+
return {
|
|
93
|
+
...previous,
|
|
94
|
+
props,
|
|
95
|
+
};
|
|
96
|
+
};
|
|
97
|
+
exports.optimisticMoveSequenceKeyframes = optimisticMoveSequenceKeyframes;
|
|
98
|
+
const optimisticMoveEffectKeyframes = ({ previous, keyframes, }) => {
|
|
99
|
+
var _a;
|
|
100
|
+
if (!previous.canUpdate) {
|
|
101
|
+
return previous;
|
|
102
|
+
}
|
|
103
|
+
const movesByEffect = new Map();
|
|
104
|
+
for (const keyframe of keyframes) {
|
|
105
|
+
const moves = (_a = movesByEffect.get(keyframe.effectIndex)) !== null && _a !== void 0 ? _a : [];
|
|
106
|
+
moves.push(keyframe);
|
|
107
|
+
movesByEffect.set(keyframe.effectIndex, moves);
|
|
108
|
+
}
|
|
109
|
+
const effects = previous.effects.map((effect) => {
|
|
110
|
+
var _a;
|
|
111
|
+
if (!effect.canUpdate) {
|
|
112
|
+
return effect;
|
|
113
|
+
}
|
|
114
|
+
const movesForEffect = movesByEffect.get(effect.effectIndex);
|
|
115
|
+
if (!movesForEffect) {
|
|
116
|
+
return effect;
|
|
117
|
+
}
|
|
118
|
+
const props = { ...effect.props };
|
|
119
|
+
const movesByField = new Map();
|
|
120
|
+
for (const move of movesForEffect) {
|
|
121
|
+
const moves = (_a = movesByField.get(move.fieldKey)) !== null && _a !== void 0 ? _a : [];
|
|
122
|
+
moves.push(move);
|
|
123
|
+
movesByField.set(move.fieldKey, moves);
|
|
124
|
+
}
|
|
125
|
+
for (const [fieldKey, moves] of movesByField) {
|
|
126
|
+
const status = props[fieldKey];
|
|
127
|
+
if (!status) {
|
|
128
|
+
continue;
|
|
129
|
+
}
|
|
130
|
+
props[fieldKey] = moveKeyframesInPropStatus({ status, moves });
|
|
131
|
+
}
|
|
132
|
+
return {
|
|
133
|
+
...effect,
|
|
134
|
+
props,
|
|
135
|
+
};
|
|
136
|
+
});
|
|
137
|
+
return {
|
|
138
|
+
...previous,
|
|
139
|
+
effects,
|
|
140
|
+
};
|
|
141
|
+
};
|
|
142
|
+
exports.optimisticMoveEffectKeyframes = optimisticMoveEffectKeyframes;
|
|
@@ -9,7 +9,7 @@ const optimisticUpdateForCodeValues = ({ previous, fieldKey, value, schema, }) =
|
|
|
9
9
|
}
|
|
10
10
|
const props = {
|
|
11
11
|
...previous.props,
|
|
12
|
-
[fieldKey]: {
|
|
12
|
+
[fieldKey]: { status: 'static', codeValue: value },
|
|
13
13
|
};
|
|
14
14
|
if (((_a = schema[fieldKey]) === null || _a === void 0 ? void 0 : _a.type) === 'enum') {
|
|
15
15
|
const propsToDelete = no_react_1.NoReactInternals.findPropsToDelete({
|
|
@@ -17,7 +17,7 @@ const optimisticUpdateForEffectCodeValues = ({ previous, effectIndex, fieldKey,
|
|
|
17
17
|
}
|
|
18
18
|
const props = {
|
|
19
19
|
...target.props,
|
|
20
|
-
[fieldKey]: {
|
|
20
|
+
[fieldKey]: { status: 'static', codeValue: value },
|
|
21
21
|
};
|
|
22
22
|
if (((_a = schema[fieldKey]) === null || _a === void 0 ? void 0 : _a.type) === 'enum') {
|
|
23
23
|
const propsToDelete = no_react_1.NoReactInternals.findPropsToDelete({
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { CanUpdateSequencePropsResponse } from 'remotion';
|
|
2
|
+
import type { KeyframeSettings } from './api-requests';
|
|
3
|
+
export declare const optimisticUpdateSequenceKeyframeSettings: ({ previous, fieldKey, settings, }: {
|
|
4
|
+
previous: CanUpdateSequencePropsResponse;
|
|
5
|
+
fieldKey: string;
|
|
6
|
+
settings: KeyframeSettings;
|
|
7
|
+
}) => CanUpdateSequencePropsResponse;
|
|
8
|
+
export declare const optimisticUpdateEffectKeyframeSettings: ({ previous, effectIndex, fieldKey, settings, }: {
|
|
9
|
+
previous: CanUpdateSequencePropsResponse;
|
|
10
|
+
effectIndex: number;
|
|
11
|
+
fieldKey: string;
|
|
12
|
+
settings: KeyframeSettings;
|
|
13
|
+
}) => CanUpdateSequencePropsResponse;
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.optimisticUpdateEffectKeyframeSettings = exports.optimisticUpdateSequenceKeyframeSettings = void 0;
|
|
4
|
+
const applySettingsToStatus = (status, settings) => {
|
|
5
|
+
if (!status || status.status !== 'keyframed') {
|
|
6
|
+
throw new Error('Expected keyframed status');
|
|
7
|
+
}
|
|
8
|
+
return {
|
|
9
|
+
...status,
|
|
10
|
+
...(settings.clamping ? { clamping: settings.clamping } : {}),
|
|
11
|
+
posterize: settings.posterize,
|
|
12
|
+
};
|
|
13
|
+
};
|
|
14
|
+
const optimisticUpdateSequenceKeyframeSettings = ({ previous, fieldKey, settings, }) => {
|
|
15
|
+
if (!previous.canUpdate) {
|
|
16
|
+
return previous;
|
|
17
|
+
}
|
|
18
|
+
const status = previous.props[fieldKey];
|
|
19
|
+
if (!status || status.status !== 'keyframed') {
|
|
20
|
+
return previous;
|
|
21
|
+
}
|
|
22
|
+
return {
|
|
23
|
+
...previous,
|
|
24
|
+
props: {
|
|
25
|
+
...previous.props,
|
|
26
|
+
[fieldKey]: applySettingsToStatus(status, settings),
|
|
27
|
+
},
|
|
28
|
+
};
|
|
29
|
+
};
|
|
30
|
+
exports.optimisticUpdateSequenceKeyframeSettings = optimisticUpdateSequenceKeyframeSettings;
|
|
31
|
+
const optimisticUpdateEffectKeyframeSettings = ({ previous, effectIndex, fieldKey, settings, }) => {
|
|
32
|
+
if (!previous.canUpdate) {
|
|
33
|
+
return previous;
|
|
34
|
+
}
|
|
35
|
+
const targetIndex = previous.effects.findIndex((effect) => effect.effectIndex === effectIndex);
|
|
36
|
+
if (targetIndex === -1) {
|
|
37
|
+
return previous;
|
|
38
|
+
}
|
|
39
|
+
const target = previous.effects[targetIndex];
|
|
40
|
+
if (!target.canUpdate) {
|
|
41
|
+
return previous;
|
|
42
|
+
}
|
|
43
|
+
const status = target.props[fieldKey];
|
|
44
|
+
if (!status || status.status !== 'keyframed') {
|
|
45
|
+
return previous;
|
|
46
|
+
}
|
|
47
|
+
const effects = [...previous.effects];
|
|
48
|
+
effects[targetIndex] = {
|
|
49
|
+
...target,
|
|
50
|
+
props: {
|
|
51
|
+
...target.props,
|
|
52
|
+
[fieldKey]: applySettingsToStatus(status, settings),
|
|
53
|
+
},
|
|
54
|
+
};
|
|
55
|
+
return {
|
|
56
|
+
...previous,
|
|
57
|
+
effects,
|
|
58
|
+
};
|
|
59
|
+
};
|
|
60
|
+
exports.optimisticUpdateEffectKeyframeSettings = optimisticUpdateEffectKeyframeSettings;
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import type { InsertableCompositionElement } from './api-requests';
|
|
2
|
+
export declare const getRequiredPackageForInsertableElement: (element: InsertableCompositionElement) => string | null;
|
|
3
|
+
export declare const getRequiredPackageForEffectImportPath: (importPath: string) => string | null;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getRequiredPackageForEffectImportPath = exports.getRequiredPackageForInsertableElement = void 0;
|
|
4
|
+
const getRequiredPackageForInsertableElement = (element) => {
|
|
5
|
+
if (element.type === 'solid') {
|
|
6
|
+
return null;
|
|
7
|
+
}
|
|
8
|
+
if (element.assetType === 'video' || element.assetType === 'audio') {
|
|
9
|
+
return '@remotion/media';
|
|
10
|
+
}
|
|
11
|
+
if (element.assetType === 'gif') {
|
|
12
|
+
return '@remotion/gif';
|
|
13
|
+
}
|
|
14
|
+
return null;
|
|
15
|
+
};
|
|
16
|
+
exports.getRequiredPackageForInsertableElement = getRequiredPackageForInsertableElement;
|
|
17
|
+
const getRequiredPackageForEffectImportPath = (importPath) => {
|
|
18
|
+
if (importPath.startsWith('@remotion/effects/')) {
|
|
19
|
+
return '@remotion/effects';
|
|
20
|
+
}
|
|
21
|
+
if (importPath === '@remotion/light-leaks' ||
|
|
22
|
+
importPath === '@remotion/starburst') {
|
|
23
|
+
return importPath;
|
|
24
|
+
}
|
|
25
|
+
return null;
|
|
26
|
+
};
|
|
27
|
+
exports.getRequiredPackageForEffectImportPath = getRequiredPackageForEffectImportPath;
|
|
@@ -17,7 +17,7 @@ export type EffectSchemaFieldInfo = SchemaFieldInfo & {
|
|
|
17
17
|
};
|
|
18
18
|
export type AnySchemaFieldInfo = SequenceSchemaFieldInfo | EffectSchemaFieldInfo;
|
|
19
19
|
export declare const SCHEMA_FIELD_ROW_HEIGHT = 22;
|
|
20
|
-
declare const SUPPORTED_SCHEMA_TYPES: readonly ["number", "boolean", "rotation", "translate", "uv-coordinate", "color", "enum", "hidden"];
|
|
20
|
+
declare const SUPPORTED_SCHEMA_TYPES: readonly ["number", "boolean", "rotation-css", "rotation-degrees", "translate", "scale", "uv-coordinate", "color", "array", "enum", "hidden"];
|
|
21
21
|
type SupportedSchemaType = (typeof SUPPORTED_SCHEMA_TYPES)[number];
|
|
22
22
|
export declare const getFieldsToShow: ({ getDragOverrides, codeValues, nodePath, schema, currentRuntimeValueDotNotation, }: {
|
|
23
23
|
schema: SequenceSchema;
|
|
@@ -7,13 +7,49 @@ exports.SCHEMA_FIELD_ROW_HEIGHT = 22;
|
|
|
7
7
|
const SUPPORTED_SCHEMA_TYPES = [
|
|
8
8
|
'number',
|
|
9
9
|
'boolean',
|
|
10
|
-
'rotation',
|
|
10
|
+
'rotation-css',
|
|
11
|
+
'rotation-degrees',
|
|
11
12
|
'translate',
|
|
13
|
+
'scale',
|
|
12
14
|
'uv-coordinate',
|
|
13
15
|
'color',
|
|
16
|
+
'array',
|
|
14
17
|
'enum',
|
|
15
18
|
'hidden',
|
|
16
19
|
];
|
|
20
|
+
const getArrayRowCount = ({ fieldSchema, value, }) => {
|
|
21
|
+
var _a, _b;
|
|
22
|
+
const items = Array.isArray(value)
|
|
23
|
+
? value
|
|
24
|
+
: Array.isArray(fieldSchema.default)
|
|
25
|
+
? fieldSchema.default
|
|
26
|
+
: Array.from({ length: (_a = fieldSchema.minLength) !== null && _a !== void 0 ? _a : 0 });
|
|
27
|
+
const canAdd = items.length < ((_b = fieldSchema.maxLength) !== null && _b !== void 0 ? _b : Infinity);
|
|
28
|
+
return Math.max(1, items.length + (canAdd ? 1 : 0));
|
|
29
|
+
};
|
|
30
|
+
const getSchemaFieldRowHeight = ({ fieldSchema, value, }) => {
|
|
31
|
+
if (fieldSchema.type === 'array') {
|
|
32
|
+
return (getArrayRowCount({
|
|
33
|
+
fieldSchema,
|
|
34
|
+
value,
|
|
35
|
+
}) * exports.SCHEMA_FIELD_ROW_HEIGHT);
|
|
36
|
+
}
|
|
37
|
+
return exports.SCHEMA_FIELD_ROW_HEIGHT;
|
|
38
|
+
};
|
|
39
|
+
const getEffectFieldValue = ({ key, dragOverrides, effectStatus, }) => {
|
|
40
|
+
const dragOverride = remotion_1.Internals.getStaticDragOverrideValue(dragOverrides[key]);
|
|
41
|
+
if (dragOverride !== undefined) {
|
|
42
|
+
return dragOverride;
|
|
43
|
+
}
|
|
44
|
+
if ((effectStatus === null || effectStatus === void 0 ? void 0 : effectStatus.type) !== 'can-update-effect') {
|
|
45
|
+
return undefined;
|
|
46
|
+
}
|
|
47
|
+
const propStatus = effectStatus.props[key];
|
|
48
|
+
if ((propStatus === null || propStatus === void 0 ? void 0 : propStatus.status) !== 'static') {
|
|
49
|
+
return undefined;
|
|
50
|
+
}
|
|
51
|
+
return propStatus.codeValue;
|
|
52
|
+
};
|
|
17
53
|
const getFieldsToShow = ({ getDragOverrides, codeValues, nodePath, schema, currentRuntimeValueDotNotation, }) => {
|
|
18
54
|
const { merged: valuesDotNotation } = remotion_1.Internals.computeEffectiveSchemaValuesDotNotation({
|
|
19
55
|
schema,
|
|
@@ -32,6 +68,9 @@ const getFieldsToShow = ({ getDragOverrides, codeValues, nodePath, schema, curre
|
|
|
32
68
|
if (typeName === 'hidden') {
|
|
33
69
|
return null;
|
|
34
70
|
}
|
|
71
|
+
if (fieldSchema.type === 'number' && fieldSchema.hiddenFromList) {
|
|
72
|
+
return null;
|
|
73
|
+
}
|
|
35
74
|
// `hidden` is represented as the eye/speaker icon on the timeline track,
|
|
36
75
|
// so we don't render it as a regular field in the expanded section.
|
|
37
76
|
if (key === 'hidden') {
|
|
@@ -42,7 +81,10 @@ const getFieldsToShow = ({ getDragOverrides, codeValues, nodePath, schema, curre
|
|
|
42
81
|
key,
|
|
43
82
|
description: fieldSchema.description,
|
|
44
83
|
typeName,
|
|
45
|
-
rowHeight:
|
|
84
|
+
rowHeight: getSchemaFieldRowHeight({
|
|
85
|
+
fieldSchema,
|
|
86
|
+
value: valuesDotNotation[key],
|
|
87
|
+
}),
|
|
46
88
|
fieldSchema,
|
|
47
89
|
};
|
|
48
90
|
})
|
|
@@ -59,18 +101,7 @@ const getEffectFieldsToShow = ({ effect, effectIndex, nodePath, codeValues, getE
|
|
|
59
101
|
});
|
|
60
102
|
const dragOverrides = nodePath === null ? {} : getEffectDragOverrides(nodePath, effectIndex);
|
|
61
103
|
const activeSchema = remotion_1.Internals.flattenActiveSchema(effect.schema, (key) => {
|
|
62
|
-
|
|
63
|
-
if (dragOverride !== undefined) {
|
|
64
|
-
return dragOverride;
|
|
65
|
-
}
|
|
66
|
-
if ((effectStatus === null || effectStatus === void 0 ? void 0 : effectStatus.type) !== 'can-update-effect') {
|
|
67
|
-
return undefined;
|
|
68
|
-
}
|
|
69
|
-
const propStatus = effectStatus.props[key];
|
|
70
|
-
if (!propStatus || !propStatus.canUpdate) {
|
|
71
|
-
return undefined;
|
|
72
|
-
}
|
|
73
|
-
return propStatus.codeValue;
|
|
104
|
+
return getEffectFieldValue({ key, dragOverrides, effectStatus });
|
|
74
105
|
});
|
|
75
106
|
return Object.entries(activeSchema)
|
|
76
107
|
.map(([key, fieldSchema]) => {
|
|
@@ -78,6 +109,9 @@ const getEffectFieldsToShow = ({ effect, effectIndex, nodePath, codeValues, getE
|
|
|
78
109
|
if (typeName === 'hidden') {
|
|
79
110
|
return null;
|
|
80
111
|
}
|
|
112
|
+
if (fieldSchema.type === 'number' && fieldSchema.hiddenFromList) {
|
|
113
|
+
return null;
|
|
114
|
+
}
|
|
81
115
|
// `disabled` is represented as the eye icon on the effect timeline row,
|
|
82
116
|
// so we don't render it as a regular field in the expanded section.
|
|
83
117
|
if (key === 'disabled') {
|
|
@@ -91,7 +125,10 @@ const getEffectFieldsToShow = ({ effect, effectIndex, nodePath, codeValues, getE
|
|
|
91
125
|
key,
|
|
92
126
|
description: fieldSchema.description,
|
|
93
127
|
typeName,
|
|
94
|
-
rowHeight:
|
|
128
|
+
rowHeight: getSchemaFieldRowHeight({
|
|
129
|
+
fieldSchema,
|
|
130
|
+
value: getEffectFieldValue({ key, dragOverrides, effectStatus }),
|
|
131
|
+
}),
|
|
95
132
|
fieldSchema,
|
|
96
133
|
effectSchema: effect.schema,
|
|
97
134
|
effectIndex,
|
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.473",
|
|
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.
|
|
23
|
+
"remotion": "4.0.473"
|
|
24
24
|
},
|
|
25
25
|
"devDependencies": {
|
|
26
|
-
"@remotion/renderer": "4.0.
|
|
27
|
-
"@remotion/eslint-config-internal": "4.0.
|
|
26
|
+
"@remotion/renderer": "4.0.473",
|
|
27
|
+
"@remotion/eslint-config-internal": "4.0.473",
|
|
28
28
|
"eslint": "9.19.0",
|
|
29
29
|
"@typescript/native-preview": "7.0.0-dev.20260217.1"
|
|
30
30
|
},
|