@remotion/studio 4.0.491 → 4.0.492
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/components/AssetSelectorItem.js +7 -4
- package/dist/components/Canvas.js +1 -0
- package/dist/components/CompositionOrStillIcon.d.ts +7 -0
- package/dist/components/CompositionOrStillIcon.js +11 -0
- package/dist/components/CompositionSelector.js +13 -1
- package/dist/components/CompositionSelectorItem.js +33 -5
- package/dist/components/CurrentAsset.d.ts +6 -0
- package/dist/components/CurrentAsset.js +14 -8
- package/dist/components/InlineEditableTitle.d.ts +1 -0
- package/dist/components/InlineEditableTitle.js +12 -7
- package/dist/components/InspectorInfoHeader.d.ts +1 -0
- package/dist/components/InspectorInfoHeader.js +7 -4
- package/dist/components/InspectorPanel/SequenceCompositionsSection.d.ts +5 -0
- package/dist/components/InspectorPanel/SequenceCompositionsSection.js +37 -0
- package/dist/components/InspectorPanel/SequenceInspectorHeader.js +2 -1
- package/dist/components/InspectorPanel/SequenceSelectionInspector.js +2 -1
- package/dist/components/InspectorPanel/common.js +1 -1
- package/dist/components/InspectorPanel/get-compositions-matching-single-child.d.ts +6 -0
- package/dist/components/InspectorPanel/get-compositions-matching-single-child.js +11 -0
- package/dist/components/InspectorSequenceSection.js +57 -3
- package/dist/components/NewComposition/NewComposition.js +11 -4
- package/dist/components/NewComposition/get-new-composition-defaults.d.ts +4 -0
- package/dist/components/NewComposition/get-new-composition-defaults.js +13 -0
- package/dist/components/Timeline/TimelineAssetField.d.ts +14 -0
- package/dist/components/Timeline/TimelineAssetField.js +125 -0
- package/dist/components/Timeline/TimelineExpandedSection.js +1 -0
- package/dist/components/Timeline/TimelineFieldLabel.js +4 -2
- package/dist/components/Timeline/TimelineKeyframeControls.js +1 -0
- package/dist/components/Timeline/TimelinePrimitiveFieldValue.js +4 -0
- package/dist/components/Timeline/TimelineRowChrome.js +8 -6
- package/dist/components/Timeline/TimelineRowLayoutContext.d.ts +7 -0
- package/dist/components/Timeline/TimelineRowLayoutContext.js +13 -0
- package/dist/components/Timeline/TimelineSelection.js +1 -0
- package/dist/components/Timeline/TimelineSequenceItem.js +1 -0
- package/dist/components/Timeline/get-sequence-context-menu-items.js +3 -3
- package/dist/components/Timeline/sequence-props-subscription-store.js +5 -1
- package/dist/components/Timeline/timeline-asset-link.d.ts +6 -0
- package/dist/components/Timeline/timeline-asset-link.js +27 -1
- package/dist/components/Timeline/timeline-field-display-utils.js +1 -0
- package/dist/components/Timeline/timeline-field-row-layout.d.ts +1 -1
- package/dist/components/Timeline/timeline-field-row-layout.js +2 -2
- package/dist/components/Timeline/timeline-row-layout.d.ts +3 -2
- package/dist/components/Timeline/timeline-row-layout.js +6 -5
- package/dist/components/Timeline/use-expanded-track-keyframe-rows.js +1 -0
- package/dist/components/Timeline/use-timeline-expanded-tree.d.ts +2 -1
- package/dist/components/Timeline/use-timeline-expanded-tree.js +3 -1
- package/dist/components/Timeline/use-timeline-height.js +1 -0
- package/dist/components/import-assets.d.ts +10 -2
- package/dist/components/import-assets.js +20 -6
- package/dist/components/root-composition-menu-items.d.ts +8 -0
- package/dist/components/root-composition-menu-items.js +45 -0
- package/dist/esm/{chunk-9wh9k3jj.js → chunk-ewx0568t.js} +5366 -4870
- package/dist/esm/internals.mjs +5366 -4870
- package/dist/esm/previewEntry.mjs +4742 -4246
- package/dist/esm/renderEntry.mjs +1 -1
- package/dist/helpers/get-file-manager-name.d.ts +1 -0
- package/dist/helpers/get-file-manager-name.js +13 -0
- package/dist/helpers/timeline-layout.d.ts +2 -1
- package/dist/helpers/timeline-layout.js +5 -1
- package/dist/helpers/url-state.d.ts +1 -0
- package/dist/helpers/url-state.js +8 -6
- package/dist/helpers/use-menu-structure.js +4 -2
- package/package.json +11 -11
|
@@ -11,6 +11,7 @@ const ModalHeader_1 = require("../ModalHeader");
|
|
|
11
11
|
const layout_2 = require("../RenderModal/layout");
|
|
12
12
|
const CodemodFooter_1 = require("./CodemodFooter");
|
|
13
13
|
const DismissableModal_1 = require("./DismissableModal");
|
|
14
|
+
const get_new_composition_defaults_1 = require("./get-new-composition-defaults");
|
|
14
15
|
const InputAndValidationContainer_1 = require("./InputAndValidationContainer");
|
|
15
16
|
const InputDragger_1 = require("./InputDragger");
|
|
16
17
|
const NewCompDuration_1 = require("./NewCompDuration");
|
|
@@ -28,13 +29,19 @@ const folderPathStyle = {
|
|
|
28
29
|
};
|
|
29
30
|
const NewCompositionLoaded = ({ folderName, parentName, stack }) => {
|
|
30
31
|
const { compositions } = (0, react_1.useContext)(remotion_1.Internals.CompositionManager);
|
|
32
|
+
const resolvedComposition = remotion_1.Internals.useResolvedVideoConfig(null);
|
|
33
|
+
const initialComposition = (resolvedComposition === null || resolvedComposition === void 0 ? void 0 : resolvedComposition.type) === 'success' ||
|
|
34
|
+
(resolvedComposition === null || resolvedComposition === void 0 ? void 0 : resolvedComposition.type) === 'success-and-refreshing'
|
|
35
|
+
? resolvedComposition.result
|
|
36
|
+
: null;
|
|
37
|
+
const initialDimensions = (0, get_new_composition_defaults_1.getNewCompositionDefaults)(initialComposition);
|
|
31
38
|
const [newId, setName] = (0, react_1.useState)(() => (0, use_create_composition_1.getUniqueCompositionName)(compositions));
|
|
32
|
-
const [selectedFrameRate, setFrameRate] = (0, react_1.useState)(
|
|
39
|
+
const [selectedFrameRate, setFrameRate] = (0, react_1.useState)(initialDimensions.fps);
|
|
33
40
|
const [size, setSize] = (0, react_1.useState)(() => ({
|
|
34
|
-
width:
|
|
35
|
-
height:
|
|
41
|
+
width: initialDimensions.width,
|
|
42
|
+
height: initialDimensions.height,
|
|
36
43
|
}));
|
|
37
|
-
const [durationInFrames, setDurationInFrames] = (0, react_1.useState)(
|
|
44
|
+
const [durationInFrames, setDurationInFrames] = (0, react_1.useState)(initialDimensions.durationInFrames);
|
|
38
45
|
const onWidthChanged = (0, react_1.useCallback)((newValue) => {
|
|
39
46
|
setSize((s) => {
|
|
40
47
|
return {
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { VideoConfig } from 'remotion';
|
|
2
|
+
type CompositionDimensions = Pick<VideoConfig, 'width' | 'height' | 'fps' | 'durationInFrames'>;
|
|
3
|
+
export declare const getNewCompositionDefaults: (composition: CompositionDimensions | null) => CompositionDimensions;
|
|
4
|
+
export {};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getNewCompositionDefaults = void 0;
|
|
4
|
+
const defaultCompositionDimensions = {
|
|
5
|
+
width: 1920,
|
|
6
|
+
height: 1080,
|
|
7
|
+
fps: 30,
|
|
8
|
+
durationInFrames: 150,
|
|
9
|
+
};
|
|
10
|
+
const getNewCompositionDefaults = (composition) => {
|
|
11
|
+
return composition !== null && composition !== void 0 ? composition : defaultCompositionDimensions;
|
|
12
|
+
};
|
|
13
|
+
exports.getNewCompositionDefaults = getNewCompositionDefaults;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { CanUpdateSequencePropStatusStatic } from 'remotion';
|
|
3
|
+
import type { SchemaFieldInfo, TimelineFieldOnDragValueChange, TimelineFieldOnSave } from '../../helpers/timeline-layout';
|
|
4
|
+
type TimelineAssetFieldProps = {
|
|
5
|
+
readonly field: SchemaFieldInfo;
|
|
6
|
+
readonly propStatus: CanUpdateSequencePropStatusStatic;
|
|
7
|
+
readonly effectiveValue: unknown;
|
|
8
|
+
readonly onSave: TimelineFieldOnSave;
|
|
9
|
+
readonly onDragValueChange: TimelineFieldOnDragValueChange;
|
|
10
|
+
readonly onDragEnd: () => void;
|
|
11
|
+
};
|
|
12
|
+
export declare const isStaticFileAssetValue: (value: unknown) => value is string;
|
|
13
|
+
export declare const TimelineAssetField: React.FC<TimelineAssetFieldProps>;
|
|
14
|
+
export {};
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TimelineAssetField = exports.isStaticFileAssetValue = void 0;
|
|
4
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
+
const react_1 = require("react");
|
|
6
|
+
const no_react_1 = require("remotion/no-react");
|
|
7
|
+
const write_static_file_1 = require("../../api/write-static-file");
|
|
8
|
+
const Checkmark_1 = require("../../icons/Checkmark");
|
|
9
|
+
const import_assets_1 = require("../import-assets");
|
|
10
|
+
const ComboBox_1 = require("../NewComposition/ComboBox");
|
|
11
|
+
const NotificationCenter_1 = require("../Notifications/NotificationCenter");
|
|
12
|
+
const use_static_files_1 = require("../use-static-files");
|
|
13
|
+
const comboboxStyle = {
|
|
14
|
+
marginLeft: 8,
|
|
15
|
+
maxWidth: 180,
|
|
16
|
+
};
|
|
17
|
+
const remoteAssetStyle = {
|
|
18
|
+
display: 'inline-block',
|
|
19
|
+
marginLeft: 8,
|
|
20
|
+
maxWidth: 180,
|
|
21
|
+
overflow: 'hidden',
|
|
22
|
+
textOverflow: 'ellipsis',
|
|
23
|
+
verticalAlign: 'middle',
|
|
24
|
+
whiteSpace: 'nowrap',
|
|
25
|
+
};
|
|
26
|
+
const toFileToken = (name) => {
|
|
27
|
+
return `${no_react_1.NoReactInternals.FILE_TOKEN}${name
|
|
28
|
+
.split('/')
|
|
29
|
+
.map(encodeURIComponent)
|
|
30
|
+
.join('/')}`;
|
|
31
|
+
};
|
|
32
|
+
const toStaticFileUrl = (fileToken) => {
|
|
33
|
+
return `${window.remotion_staticBase}/${fileToken.slice(no_react_1.NoReactInternals.FILE_TOKEN.length)}`;
|
|
34
|
+
};
|
|
35
|
+
const isStaticFileAssetValue = (value) => {
|
|
36
|
+
return (typeof value === 'string' && value.startsWith(no_react_1.NoReactInternals.FILE_TOKEN));
|
|
37
|
+
};
|
|
38
|
+
exports.isStaticFileAssetValue = isStaticFileAssetValue;
|
|
39
|
+
const TimelineStaticFileAssetField = ({ propStatus, effectiveValue, onSave, onDragValueChange, onDragEnd, }) => {
|
|
40
|
+
const staticFiles = (0, use_static_files_1.useStaticFiles)();
|
|
41
|
+
const current = String(effectiveValue !== null && effectiveValue !== void 0 ? effectiveValue : '');
|
|
42
|
+
const onSelect = (0, react_1.useCallback)((sourceValue, previewValue) => {
|
|
43
|
+
if (sourceValue === propStatus.codeValue) {
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
onDragValueChange(previewValue);
|
|
47
|
+
onSave(sourceValue).finally(() => {
|
|
48
|
+
onDragEnd();
|
|
49
|
+
});
|
|
50
|
+
}, [propStatus.codeValue, onDragValueChange, onSave, onDragEnd]);
|
|
51
|
+
const upload = (0, react_1.useCallback)(async () => {
|
|
52
|
+
const [file] = await (0, import_assets_1.pickFilesToImport)({ multiple: false });
|
|
53
|
+
if (!file) {
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
56
|
+
const existing = staticFiles.find((candidate) => candidate.name === file.name);
|
|
57
|
+
if (existing && existing.sizeInBytes !== file.size) {
|
|
58
|
+
(0, NotificationCenter_1.showNotification)(`File with name ${file.name} already exists and is different`, 4000);
|
|
59
|
+
return;
|
|
60
|
+
}
|
|
61
|
+
try {
|
|
62
|
+
if (!existing) {
|
|
63
|
+
await (0, write_static_file_1.writeStaticFile)({
|
|
64
|
+
contents: await file.arrayBuffer(),
|
|
65
|
+
filePath: file.name,
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
const fileToken = toFileToken(file.name);
|
|
69
|
+
onSelect(fileToken, toStaticFileUrl(fileToken));
|
|
70
|
+
if (!existing) {
|
|
71
|
+
(0, NotificationCenter_1.showNotification)(`Created ${file.name} in public folder`, 3000);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
catch (error) {
|
|
75
|
+
(0, NotificationCenter_1.showNotification)(`Could not upload asset: ${error instanceof Error ? error.message : String(error)}`, 4000);
|
|
76
|
+
}
|
|
77
|
+
}, [onSelect, staticFiles]);
|
|
78
|
+
const items = (0, react_1.useMemo)(() => {
|
|
79
|
+
const publicFileItems = staticFiles.map((file) => {
|
|
80
|
+
const fileToken = toFileToken(file.name);
|
|
81
|
+
return {
|
|
82
|
+
type: 'item',
|
|
83
|
+
id: fileToken,
|
|
84
|
+
value: fileToken,
|
|
85
|
+
label: file.name,
|
|
86
|
+
onClick: () => onSelect(fileToken, file.src),
|
|
87
|
+
keyHint: null,
|
|
88
|
+
leftItem: fileToken === current ? jsx_runtime_1.jsx(Checkmark_1.Checkmark, {}) : null,
|
|
89
|
+
subMenu: null,
|
|
90
|
+
quickSwitcherLabel: null,
|
|
91
|
+
};
|
|
92
|
+
});
|
|
93
|
+
return [
|
|
94
|
+
...publicFileItems,
|
|
95
|
+
{ type: 'divider', id: 'upload-asset-divider' },
|
|
96
|
+
{
|
|
97
|
+
type: 'item',
|
|
98
|
+
id: 'upload-asset',
|
|
99
|
+
value: 'upload-asset',
|
|
100
|
+
label: 'Upload…',
|
|
101
|
+
onClick: () => {
|
|
102
|
+
upload().catch(() => undefined);
|
|
103
|
+
},
|
|
104
|
+
keyHint: null,
|
|
105
|
+
leftItem: null,
|
|
106
|
+
subMenu: null,
|
|
107
|
+
quickSwitcherLabel: null,
|
|
108
|
+
disabled: window.remotion_isReadOnlyStudio,
|
|
109
|
+
},
|
|
110
|
+
];
|
|
111
|
+
}, [current, onSelect, staticFiles, upload]);
|
|
112
|
+
return (jsx_runtime_1.jsx(ComboBox_1.Combobox, { small: true, title: current, selectedId: current, values: items, style: comboboxStyle }));
|
|
113
|
+
};
|
|
114
|
+
const TimelineAssetField = (props) => {
|
|
115
|
+
var _a;
|
|
116
|
+
if (props.field.fieldSchema.type !== 'asset') {
|
|
117
|
+
throw new Error('TimelineAssetField rendered for non-asset field');
|
|
118
|
+
}
|
|
119
|
+
if (!(0, exports.isStaticFileAssetValue)(props.effectiveValue)) {
|
|
120
|
+
const remote = String((_a = props.effectiveValue) !== null && _a !== void 0 ? _a : '');
|
|
121
|
+
return (jsx_runtime_1.jsx("span", { style: remoteAssetStyle, title: remote, children: remote }));
|
|
122
|
+
}
|
|
123
|
+
return jsx_runtime_1.jsx(TimelineStaticFileAssetField, { ...props });
|
|
124
|
+
};
|
|
125
|
+
exports.TimelineAssetField = TimelineAssetField;
|
|
@@ -57,6 +57,7 @@ const TimelineExpandedSection = ({ sequence, validatedLocation, nodePathInfo, ne
|
|
|
57
57
|
sequence,
|
|
58
58
|
nodePathInfo,
|
|
59
59
|
includeTextContent: false,
|
|
60
|
+
includeSourceControls: false,
|
|
60
61
|
});
|
|
61
62
|
const flat = (0, react_1.useMemo)(() => (0, timeline_layout_1.flattenVisibleTreeNodes)({ nodes: filteredTree, getIsExpanded }), [filteredTree, getIsExpanded]);
|
|
62
63
|
const expandedHeight = (0, react_1.useMemo)(() => {
|
|
@@ -6,6 +6,7 @@ const react_1 = require("react");
|
|
|
6
6
|
const colors_1 = require("../../helpers/colors");
|
|
7
7
|
const timeline_layout_1 = require("../../helpers/timeline-layout");
|
|
8
8
|
const timeline_field_row_layout_1 = require("./timeline-field-row-layout");
|
|
9
|
+
const TimelineRowLayoutContext_1 = require("./TimelineRowLayoutContext");
|
|
9
10
|
const TimelineSelection_1 = require("./TimelineSelection");
|
|
10
11
|
const fieldNameBase = {
|
|
11
12
|
fontSize: 12,
|
|
@@ -18,12 +19,13 @@ const fieldNameBase = {
|
|
|
18
19
|
minWidth: 0,
|
|
19
20
|
};
|
|
20
21
|
const TimelineFieldLabel = ({ rowDepth, selected, label, stacked = false }) => {
|
|
22
|
+
const { basePadding } = (0, react_1.useContext)(TimelineRowLayoutContext_1.TimelineRowLayoutContext);
|
|
21
23
|
const labelRowStyle = (0, react_1.useMemo)(() => ({
|
|
22
|
-
...(0, timeline_field_row_layout_1.getTimelineFieldLabelRowStyle)(rowDepth),
|
|
24
|
+
...(0, timeline_field_row_layout_1.getTimelineFieldLabelRowStyle)(rowDepth, basePadding),
|
|
23
25
|
...(0, TimelineSelection_1.getTimelineSelectedLabelStyle)(selected, true),
|
|
24
26
|
...(stacked ? { flex: `0 0 ${timeline_layout_1.SCHEMA_FIELD_ROW_HEIGHT}px` } : null),
|
|
25
27
|
alignSelf: 'stretch',
|
|
26
|
-
}), [rowDepth, selected, stacked]);
|
|
28
|
+
}), [basePadding, rowDepth, selected, stacked]);
|
|
27
29
|
const fieldNameStyle = (0, react_1.useMemo)(() => ({
|
|
28
30
|
...fieldNameBase,
|
|
29
31
|
color: (0, TimelineSelection_1.getTimelineColor)(selected, true),
|
|
@@ -114,6 +114,7 @@ const resolveKeyframeControlTarget = ({ nodePathInfo, tracks, propStatuses, getD
|
|
|
114
114
|
getEffectDragOverrides,
|
|
115
115
|
propStatuses,
|
|
116
116
|
includeTextContent: false,
|
|
117
|
+
includeSourceControls: false,
|
|
117
118
|
});
|
|
118
119
|
const fieldNode = findFieldNode(tree, (0, timeline_node_path_key_1.timelineNodePathInfoToKey)(nodePathInfo));
|
|
119
120
|
if (fieldNode === null || fieldNode.field === null) {
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.TimelinePrimitiveFieldValue = exports.isTimelinePrimitiveFieldInfo = void 0;
|
|
4
4
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
+
const TimelineAssetField_1 = require("./TimelineAssetField");
|
|
5
6
|
const TimelineBooleanField_1 = require("./TimelineBooleanField");
|
|
6
7
|
const TimelineColorField_1 = require("./TimelineColorField");
|
|
7
8
|
const TimelineEnumField_1 = require("./TimelineEnumField");
|
|
@@ -60,6 +61,9 @@ const TimelinePrimitiveFieldValue = ({ field, onSave, onDragValueChange, onDragE
|
|
|
60
61
|
if (field.typeName === 'font-family') {
|
|
61
62
|
return (jsx_runtime_1.jsx("span", { style: inlineWrapper, children: jsx_runtime_1.jsx(TimelineFontFamilyField_1.TimelineFontFamilyField, { effectiveValue: effectiveValue, field: field, onDragEnd: onDragEnd, onDragValueChange: onDragValueChange, onSave: onSave, propStatus: propStatus }) }));
|
|
62
63
|
}
|
|
64
|
+
if (field.typeName === 'asset') {
|
|
65
|
+
return (jsx_runtime_1.jsx("span", { style: inlineWrapper, children: jsx_runtime_1.jsx(TimelineAssetField_1.TimelineAssetField, { effectiveValue: effectiveValue, field: field, onDragEnd: onDragEnd, onDragValueChange: onDragValueChange, onSave: onSave, propStatus: propStatus }) }));
|
|
66
|
+
}
|
|
63
67
|
throw new Error(`Unsupported field type: ${field.typeName}`);
|
|
64
68
|
};
|
|
65
69
|
exports.TimelinePrimitiveFieldValue = TimelinePrimitiveFieldValue;
|
|
@@ -6,6 +6,7 @@ const react_1 = require("react");
|
|
|
6
6
|
const colors_1 = require("../../helpers/colors");
|
|
7
7
|
const Padder_1 = require("./Padder");
|
|
8
8
|
const timeline_row_layout_1 = require("./timeline-row-layout");
|
|
9
|
+
const TimelineRowLayoutContext_1 = require("./TimelineRowLayoutContext");
|
|
9
10
|
const TimelineSelection_1 = require("./TimelineSelection");
|
|
10
11
|
const rowBase = {
|
|
11
12
|
alignItems: 'stretch',
|
|
@@ -19,27 +20,28 @@ const leftChromeStyle = {
|
|
|
19
20
|
};
|
|
20
21
|
const keyframeControlsColumnBaseStyle = {
|
|
21
22
|
alignItems: 'center',
|
|
22
|
-
boxSizing: 'border-box',
|
|
23
23
|
display: 'flex',
|
|
24
24
|
flexShrink: 0,
|
|
25
25
|
justifyContent: 'flex-start',
|
|
26
|
-
paddingLeft: timeline_row_layout_1.TIMELINE_ROW_BASE_PADDING,
|
|
27
26
|
};
|
|
28
27
|
const TimelineRowChrome = ({ depth, eye, keyframeControls, arrow, children, style, selected, selectable, selectionItem, onSelect, showSelectedBackground, containsSelection, outerHeight, onDragLeave, onDragOver, onDrop, onDoubleClick, }) => {
|
|
29
28
|
const ref = (0, react_1.useRef)(null);
|
|
29
|
+
const { basePadding, keyframeControlsPadding } = (0, react_1.useContext)(TimelineRowLayoutContext_1.TimelineRowLayoutContext);
|
|
30
30
|
const indentWidth = (0, timeline_row_layout_1.getTimelineRowIndentWidth)(depth);
|
|
31
31
|
(0, TimelineSelection_1.useTimelineFocusableItem)(selectionItem, ref);
|
|
32
32
|
const keyframeControlsColumnStyle = (0, react_1.useMemo)(() => ({
|
|
33
33
|
...keyframeControlsColumnBaseStyle,
|
|
34
|
-
|
|
35
|
-
|
|
34
|
+
boxSizing: keyframeControlsPadding === 0 ? undefined : 'border-box',
|
|
35
|
+
paddingLeft: keyframeControlsPadding,
|
|
36
|
+
width: (0, timeline_row_layout_1.getTimelineRowLeftChromeWidth)(depth, basePadding),
|
|
37
|
+
}), [basePadding, depth, keyframeControlsPadding]);
|
|
36
38
|
const chromeColumnStyle = (0, react_1.useMemo)(() => ({
|
|
37
39
|
alignItems: 'center',
|
|
38
40
|
alignSelf: 'stretch',
|
|
39
41
|
display: 'flex',
|
|
40
42
|
flexShrink: 0,
|
|
41
|
-
paddingLeft:
|
|
42
|
-
}), []);
|
|
43
|
+
paddingLeft: basePadding,
|
|
44
|
+
}), [basePadding]);
|
|
43
45
|
const onPointerDown = (0, react_1.useCallback)((e) => {
|
|
44
46
|
if (e.button === 0) {
|
|
45
47
|
e.stopPropagation();
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
type TimelineRowLayout = {
|
|
2
|
+
readonly basePadding: number;
|
|
3
|
+
readonly keyframeControlsPadding: number;
|
|
4
|
+
};
|
|
5
|
+
export declare const INSPECTOR_TIMELINE_ROW_LAYOUT: TimelineRowLayout;
|
|
6
|
+
export declare const TimelineRowLayoutContext: import("react").Context<TimelineRowLayout>;
|
|
7
|
+
export {};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TimelineRowLayoutContext = exports.INSPECTOR_TIMELINE_ROW_LAYOUT = void 0;
|
|
4
|
+
const react_1 = require("react");
|
|
5
|
+
const timeline_row_layout_1 = require("./timeline-row-layout");
|
|
6
|
+
exports.INSPECTOR_TIMELINE_ROW_LAYOUT = {
|
|
7
|
+
basePadding: timeline_row_layout_1.INSPECTOR_ROW_BASE_PADDING,
|
|
8
|
+
keyframeControlsPadding: 0,
|
|
9
|
+
};
|
|
10
|
+
exports.TimelineRowLayoutContext = (0, react_1.createContext)({
|
|
11
|
+
basePadding: timeline_row_layout_1.TIMELINE_ROW_BASE_PADDING,
|
|
12
|
+
keyframeControlsPadding: timeline_row_layout_1.TIMELINE_ROW_BASE_PADDING,
|
|
13
|
+
});
|
|
@@ -407,6 +407,7 @@ const getSelectableTimelineItems = ({ getDragOverrides, getEffectDragOverrides,
|
|
|
407
407
|
getEffectDragOverrides,
|
|
408
408
|
propStatuses,
|
|
409
409
|
includeTextContent: false,
|
|
410
|
+
includeSourceControls: false,
|
|
410
411
|
});
|
|
411
412
|
const filteredTree = (0, timeline_expanded_filter_1.filterTimelineExpandedTree)({
|
|
412
413
|
nodes: tree,
|
|
@@ -88,6 +88,7 @@ const TimelineSequenceExpandArrow = ({ disabled, isExpanded, nodePathInfo, onTog
|
|
|
88
88
|
sequence,
|
|
89
89
|
nodePathInfo,
|
|
90
90
|
includeTextContent: false,
|
|
91
|
+
includeSourceControls: false,
|
|
91
92
|
});
|
|
92
93
|
if (filteredTree.length === 0) {
|
|
93
94
|
return jsx_runtime_1.jsx(TimelineExpandArrowButton_1.TimelineExpandArrowSpacer, {});
|
|
@@ -31,15 +31,15 @@ const getSequenceContextMenuItems = ({ assetLinkInfo, canOpenInEditor, deleteDis
|
|
|
31
31
|
editorName
|
|
32
32
|
? {
|
|
33
33
|
type: 'item',
|
|
34
|
-
id: '
|
|
34
|
+
id: 'open-in-editor',
|
|
35
35
|
keyHint: null,
|
|
36
|
-
label: `
|
|
36
|
+
label: `Open in ${editorName}`,
|
|
37
37
|
leftItem: null,
|
|
38
38
|
disabled: !canOpenInEditor || !originalLocation,
|
|
39
39
|
onClick: openInEditor,
|
|
40
40
|
quickSwitcherLabel: null,
|
|
41
41
|
subMenu: null,
|
|
42
|
-
value: '
|
|
42
|
+
value: 'open-in-editor',
|
|
43
43
|
}
|
|
44
44
|
: null,
|
|
45
45
|
{
|
|
@@ -4,10 +4,11 @@ exports.acquireSequencePropsSubscription = void 0;
|
|
|
4
4
|
const studio_shared_1 = require("@remotion/studio-shared");
|
|
5
5
|
const remotion_1 = require("remotion");
|
|
6
6
|
const call_api_1 = require("../call-api");
|
|
7
|
-
const makeKey = ({ fileName, line, column, componentIdentity, sequenceKeys, effectKeys, videoConfigValues, }) => `${fileName}\0${line}\0${column}\0${componentIdentity !== null && componentIdentity !== void 0 ? componentIdentity : ''}\0${sequenceKeys.join('\0')}\0${effectKeys.map((keys) => keys.join('\0')).join('\0\0')}\0${JSON.stringify(videoConfigValues)}`;
|
|
7
|
+
const makeKey = ({ fileName, line, column, componentIdentity, sequenceKeys, assetKeys, effectKeys, videoConfigValues, }) => `${fileName}\0${line}\0${column}\0${componentIdentity !== null && componentIdentity !== void 0 ? componentIdentity : ''}\0${sequenceKeys.join('\0')}\0${assetKeys.join('\0')}\0${effectKeys.map((keys) => keys.join('\0')).join('\0\0')}\0${JSON.stringify(videoConfigValues)}`;
|
|
8
8
|
const entries = new Map();
|
|
9
9
|
const acquireSequencePropsSubscription = ({ fileName, line, column, schema, componentIdentity, effects, nodePath, clientId, applyOnce, applyEach, videoConfigValues, }) => {
|
|
10
10
|
const sequenceKeys = (0, studio_shared_1.getAllSchemaKeys)(schema);
|
|
11
|
+
const assetKeys = (0, studio_shared_1.getAssetSchemaKeys)(schema);
|
|
11
12
|
const effectKeys = effects.map((effect) => (0, studio_shared_1.getAllSchemaKeys)(effect));
|
|
12
13
|
const key = makeKey({
|
|
13
14
|
fileName,
|
|
@@ -15,6 +16,7 @@ const acquireSequencePropsSubscription = ({ fileName, line, column, schema, comp
|
|
|
15
16
|
column,
|
|
16
17
|
componentIdentity,
|
|
17
18
|
sequenceKeys,
|
|
19
|
+
assetKeys,
|
|
18
20
|
effectKeys,
|
|
19
21
|
videoConfigValues,
|
|
20
22
|
});
|
|
@@ -27,6 +29,7 @@ const acquireSequencePropsSubscription = ({ fileName, line, column, schema, comp
|
|
|
27
29
|
nodePath,
|
|
28
30
|
componentIdentity,
|
|
29
31
|
keys: (0, studio_shared_1.getAllSchemaKeys)(schema),
|
|
32
|
+
assetKeys,
|
|
30
33
|
effects: effectKeys,
|
|
31
34
|
clientId,
|
|
32
35
|
videoConfigValues,
|
|
@@ -88,6 +91,7 @@ const acquireSequencePropsSubscription = ({ fileName, line, column, schema, comp
|
|
|
88
91
|
nodePath: result.nodePath,
|
|
89
92
|
clientId: acquired.clientId,
|
|
90
93
|
sequenceKeys,
|
|
94
|
+
assetKeys,
|
|
91
95
|
effectKeys,
|
|
92
96
|
});
|
|
93
97
|
})
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { SequenceControls } from 'remotion';
|
|
1
2
|
type LinkInfo = {
|
|
2
3
|
kind: 'local';
|
|
3
4
|
assetPath: string;
|
|
@@ -8,6 +9,11 @@ type LinkInfo = {
|
|
|
8
9
|
title: string;
|
|
9
10
|
} | null;
|
|
10
11
|
export type TimelineAssetLinkInfo = Exclude<LinkInfo, null>;
|
|
12
|
+
export declare const splitRemoteSourceForMiddleEllipsis: (src: string) => {
|
|
13
|
+
leading: string;
|
|
14
|
+
trailing: string;
|
|
15
|
+
};
|
|
16
|
+
export declare const getTimelineAssetSrcFromSchema: (controls: SequenceControls | null) => string | null;
|
|
11
17
|
export declare const getTimelineAssetLinkInfo: (src: string) => LinkInfo;
|
|
12
18
|
export declare const openTimelineAssetLink: (linkInfo: TimelineAssetLinkInfo, selectAsset: (asset: string) => void) => void;
|
|
13
19
|
export {};
|
|
@@ -1,7 +1,33 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.openTimelineAssetLink = exports.getTimelineAssetLinkInfo = void 0;
|
|
3
|
+
exports.openTimelineAssetLink = exports.getTimelineAssetLinkInfo = exports.getTimelineAssetSrcFromSchema = exports.splitRemoteSourceForMiddleEllipsis = void 0;
|
|
4
|
+
const studio_shared_1 = require("@remotion/studio-shared");
|
|
4
5
|
const url_state_1 = require("../../helpers/url-state");
|
|
6
|
+
const splitRemoteSourceForMiddleEllipsis = (src) => {
|
|
7
|
+
const protocolEnd = src.indexOf('://');
|
|
8
|
+
const minimumSlashIndex = protocolEnd === -1 ? 0 : protocolEnd + 3;
|
|
9
|
+
const lastSlash = src.lastIndexOf('/');
|
|
10
|
+
if (lastSlash >= minimumSlashIndex && lastSlash < src.length - 1) {
|
|
11
|
+
return {
|
|
12
|
+
leading: src.slice(0, lastSlash + 1),
|
|
13
|
+
trailing: src.slice(lastSlash + 1),
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
const middle = Math.ceil(src.length / 2);
|
|
17
|
+
return {
|
|
18
|
+
leading: src.slice(0, middle),
|
|
19
|
+
trailing: src.slice(middle),
|
|
20
|
+
};
|
|
21
|
+
};
|
|
22
|
+
exports.splitRemoteSourceForMiddleEllipsis = splitRemoteSourceForMiddleEllipsis;
|
|
23
|
+
const getTimelineAssetSrcFromSchema = (controls) => {
|
|
24
|
+
if (!controls || !(0, studio_shared_1.getAssetSchemaKeys)(controls.schema).includes('src')) {
|
|
25
|
+
return null;
|
|
26
|
+
}
|
|
27
|
+
const { src } = controls.currentRuntimeValueDotNotation;
|
|
28
|
+
return typeof src === 'string' ? src : null;
|
|
29
|
+
};
|
|
30
|
+
exports.getTimelineAssetSrcFromSchema = getTimelineAssetSrcFromSchema;
|
|
5
31
|
const getTimelineAssetLinkInfo = (src) => {
|
|
6
32
|
const staticBase = typeof window === 'undefined' ? null : window.remotion_staticBase;
|
|
7
33
|
if (staticBase && src.startsWith(staticBase + '/')) {
|
|
@@ -236,6 +236,7 @@ const formatTimelineFieldValueForDisplay = ({ fieldSchema, value, }) => {
|
|
|
236
236
|
return ((_e = formatUvCoordinateTimelineFieldValueForDisplay({ fieldSchema, value })) !== null && _e !== void 0 ? _e : formatUnknownTimelineValueForDisplay(value));
|
|
237
237
|
case 'text-content':
|
|
238
238
|
return String(value);
|
|
239
|
+
case 'asset':
|
|
239
240
|
case 'array':
|
|
240
241
|
case 'boolean':
|
|
241
242
|
case 'color':
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import type React from 'react';
|
|
2
|
-
export declare const getTimelineFieldLabelRowStyle: (depth: number) => React.CSSProperties;
|
|
2
|
+
export declare const getTimelineFieldLabelRowStyle: (depth: number, basePadding?: number | undefined) => React.CSSProperties;
|
|
3
3
|
export declare const timelineFieldValueColumnStyle: React.CSSProperties;
|
|
4
4
|
export declare const timelineStackedFieldContentStyle: React.CSSProperties;
|
|
@@ -3,9 +3,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.timelineStackedFieldContentStyle = exports.timelineFieldValueColumnStyle = exports.getTimelineFieldLabelRowStyle = void 0;
|
|
4
4
|
const timeline_layout_1 = require("../../helpers/timeline-layout");
|
|
5
5
|
const timeline_row_layout_1 = require("./timeline-row-layout");
|
|
6
|
-
const getTimelineFieldLabelRowStyle = (depth) => {
|
|
6
|
+
const getTimelineFieldLabelRowStyle = (depth, basePadding) => {
|
|
7
7
|
return {
|
|
8
|
-
flex: `0 0 ${(0, timeline_row_layout_1.getTimelineFieldLabelFlexBasis)(depth)}`,
|
|
8
|
+
flex: `0 0 ${(0, timeline_row_layout_1.getTimelineFieldLabelFlexBasis)(depth, basePadding)}`,
|
|
9
9
|
minWidth: 0,
|
|
10
10
|
display: 'flex',
|
|
11
11
|
flexDirection: 'row',
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
export declare const TIMELINE_ROW_BASE_PADDING = 10;
|
|
2
|
+
export declare const INSPECTOR_ROW_BASE_PADDING = 5;
|
|
2
3
|
export declare const TIMELINE_EYE_COLUMN_WIDTH = 22;
|
|
3
4
|
export declare const TIMELINE_ARROW_COLUMN_WIDTH = 16;
|
|
4
5
|
export declare const TIMELINE_KEYFRAME_CONTROLS_WIDTH = 38;
|
|
5
6
|
export declare const TIMELINE_FIELD_LABEL_EXTRA_WIDTH = 15;
|
|
6
7
|
export declare const getTimelineRowIndentWidth: (depth: number) => number;
|
|
7
|
-
export declare const getTimelineRowLeftChromeWidth: (depth: number) => number;
|
|
8
|
-
export declare const getTimelineFieldLabelFlexBasis: (depth: number) => string;
|
|
8
|
+
export declare const getTimelineRowLeftChromeWidth: (depth: number, basePadding?: number) => number;
|
|
9
|
+
export declare const getTimelineFieldLabelFlexBasis: (depth: number, basePadding?: number) => string;
|
|
9
10
|
export declare const getExpandedRowDepth: ({ nestedDepth, treeDepth, }: {
|
|
10
11
|
nestedDepth: number;
|
|
11
12
|
treeDepth: number;
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getExpandedRowDepth = exports.getTimelineFieldLabelFlexBasis = exports.getTimelineRowLeftChromeWidth = exports.getTimelineRowIndentWidth = exports.TIMELINE_FIELD_LABEL_EXTRA_WIDTH = exports.TIMELINE_KEYFRAME_CONTROLS_WIDTH = exports.TIMELINE_ARROW_COLUMN_WIDTH = exports.TIMELINE_EYE_COLUMN_WIDTH = exports.TIMELINE_ROW_BASE_PADDING = void 0;
|
|
3
|
+
exports.getExpandedRowDepth = exports.getTimelineFieldLabelFlexBasis = exports.getTimelineRowLeftChromeWidth = exports.getTimelineRowIndentWidth = exports.TIMELINE_FIELD_LABEL_EXTRA_WIDTH = exports.TIMELINE_KEYFRAME_CONTROLS_WIDTH = exports.TIMELINE_ARROW_COLUMN_WIDTH = exports.TIMELINE_EYE_COLUMN_WIDTH = exports.INSPECTOR_ROW_BASE_PADDING = exports.TIMELINE_ROW_BASE_PADDING = void 0;
|
|
4
4
|
const timeline_indent_1 = require("./timeline-indent");
|
|
5
5
|
exports.TIMELINE_ROW_BASE_PADDING = 10;
|
|
6
|
+
exports.INSPECTOR_ROW_BASE_PADDING = 5;
|
|
6
7
|
exports.TIMELINE_EYE_COLUMN_WIDTH = 22;
|
|
7
8
|
exports.TIMELINE_ARROW_COLUMN_WIDTH = 16;
|
|
8
9
|
exports.TIMELINE_KEYFRAME_CONTROLS_WIDTH = 38;
|
|
@@ -11,15 +12,15 @@ const getTimelineRowIndentWidth = (depth) => {
|
|
|
11
12
|
return depth * timeline_indent_1.TIMELINE_INDENT;
|
|
12
13
|
};
|
|
13
14
|
exports.getTimelineRowIndentWidth = getTimelineRowIndentWidth;
|
|
14
|
-
const getTimelineRowLeftChromeWidth = (depth) => {
|
|
15
|
-
return (
|
|
15
|
+
const getTimelineRowLeftChromeWidth = (depth, basePadding = exports.TIMELINE_ROW_BASE_PADDING) => {
|
|
16
|
+
return (basePadding +
|
|
16
17
|
exports.TIMELINE_EYE_COLUMN_WIDTH +
|
|
17
18
|
(0, exports.getTimelineRowIndentWidth)(depth) +
|
|
18
19
|
exports.TIMELINE_ARROW_COLUMN_WIDTH);
|
|
19
20
|
};
|
|
20
21
|
exports.getTimelineRowLeftChromeWidth = getTimelineRowLeftChromeWidth;
|
|
21
|
-
const getTimelineFieldLabelFlexBasis = (depth) => {
|
|
22
|
-
return `calc(50% - ${(0, exports.getTimelineRowLeftChromeWidth)(depth) - exports.TIMELINE_FIELD_LABEL_EXTRA_WIDTH}px)`;
|
|
22
|
+
const getTimelineFieldLabelFlexBasis = (depth, basePadding = exports.TIMELINE_ROW_BASE_PADDING) => {
|
|
23
|
+
return `calc(50% - ${(0, exports.getTimelineRowLeftChromeWidth)(depth, basePadding) - exports.TIMELINE_FIELD_LABEL_EXTRA_WIDTH}px)`;
|
|
23
24
|
};
|
|
24
25
|
exports.getTimelineFieldLabelFlexBasis = getTimelineFieldLabelFlexBasis;
|
|
25
26
|
const getExpandedRowDepth = ({ nestedDepth, treeDepth, }) => {
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { type TSequence } from 'remotion';
|
|
2
2
|
import type { SequenceNodePathInfo } from '../../helpers/get-timeline-sequence-sort-key';
|
|
3
|
-
export declare const useTimelineExpandedTree: ({ sequence, nodePathInfo, includeTextContent, }: {
|
|
3
|
+
export declare const useTimelineExpandedTree: ({ sequence, nodePathInfo, includeTextContent, includeSourceControls, }: {
|
|
4
4
|
readonly sequence: TSequence;
|
|
5
5
|
readonly nodePathInfo: SequenceNodePathInfo;
|
|
6
6
|
readonly includeTextContent: boolean;
|
|
7
|
+
readonly includeSourceControls: boolean;
|
|
7
8
|
}) => {
|
|
8
9
|
filteredTree: import("../../helpers/timeline-layout").TimelineTreeNode[];
|
|
9
10
|
getIsExpanded: import("../ExpandedTracksProvider").GetIsExpanded;
|
|
@@ -8,7 +8,7 @@ const ExpandedTracksProvider_1 = require("../ExpandedTracksProvider");
|
|
|
8
8
|
const get_node_keyframes_1 = require("./get-node-keyframes");
|
|
9
9
|
const timeline_expanded_filter_1 = require("./timeline-expanded-filter");
|
|
10
10
|
const TimelineSelection_1 = require("./TimelineSelection");
|
|
11
|
-
const useTimelineExpandedTree = ({ sequence, nodePathInfo, includeTextContent, }) => {
|
|
11
|
+
const useTimelineExpandedTree = ({ sequence, nodePathInfo, includeTextContent, includeSourceControls, }) => {
|
|
12
12
|
const { getIsExpanded } = (0, react_1.useContext)(ExpandedTracksProvider_1.ExpandedTracksGetterContext);
|
|
13
13
|
const { toggleTrack } = (0, react_1.useContext)(ExpandedTracksProvider_1.ExpandedTracksSetterContext);
|
|
14
14
|
const { propStatuses: visualModePropStatuses } = (0, react_1.useContext)(remotion_1.Internals.VisualModePropStatusesContext);
|
|
@@ -21,6 +21,7 @@ const useTimelineExpandedTree = ({ sequence, nodePathInfo, includeTextContent, }
|
|
|
21
21
|
getEffectDragOverrides,
|
|
22
22
|
propStatuses: visualModePropStatuses,
|
|
23
23
|
includeTextContent,
|
|
24
|
+
includeSourceControls,
|
|
24
25
|
}), [
|
|
25
26
|
sequence,
|
|
26
27
|
nodePathInfo,
|
|
@@ -28,6 +29,7 @@ const useTimelineExpandedTree = ({ sequence, nodePathInfo, includeTextContent, }
|
|
|
28
29
|
getEffectDragOverrides,
|
|
29
30
|
visualModePropStatuses,
|
|
30
31
|
includeTextContent,
|
|
32
|
+
includeSourceControls,
|
|
31
33
|
]);
|
|
32
34
|
const selectedRowKeys = (0, react_1.useMemo)(() => (0, timeline_expanded_filter_1.getSelectedTimelineExpandedRowKeys)(selectedItems), [selectedItems]);
|
|
33
35
|
const filteredTree = (0, react_1.useMemo)(() => (0, timeline_expanded_filter_1.filterTimelineExpandedTree)({
|
|
@@ -38,6 +38,7 @@ const useTimelineHeight = ({ shown, hasBeenCut, }) => {
|
|
|
38
38
|
getEffectDragOverrides,
|
|
39
39
|
propStatuses,
|
|
40
40
|
includeTextContent: false,
|
|
41
|
+
includeSourceControls: false,
|
|
41
42
|
});
|
|
42
43
|
const filteredTree = (0, timeline_expanded_filter_1.filterTimelineExpandedTree)({
|
|
43
44
|
nodes: tree,
|
|
@@ -33,6 +33,11 @@ export declare const getElementPositionForDrop: ({ dimensions, dropPosition, }:
|
|
|
33
33
|
dimensions: Dimensions | null;
|
|
34
34
|
dropPosition: InsertElementDropPosition | null;
|
|
35
35
|
}) => InsertableCompositionElementPosition | null;
|
|
36
|
+
export declare const getCompositionPositionForDrop: ({ compositionDimensions, destinationDimensions, dropPosition, }: {
|
|
37
|
+
compositionDimensions: Dimensions;
|
|
38
|
+
destinationDimensions: Dimensions | null;
|
|
39
|
+
dropPosition: InsertElementDropPosition | null;
|
|
40
|
+
}) => InsertableCompositionElementPosition | null;
|
|
36
41
|
export declare const getComponentDimensions: (component: {
|
|
37
42
|
componentName: string;
|
|
38
43
|
dimensions?: import("@remotion/studio-shared").ComponentDimensions | undefined;
|
|
@@ -40,7 +45,9 @@ export declare const getComponentDimensions: (component: {
|
|
|
40
45
|
importPath: string;
|
|
41
46
|
props: ComponentProp[];
|
|
42
47
|
}) => Dimensions | null;
|
|
43
|
-
export declare const pickFilesToImport: (
|
|
48
|
+
export declare const pickFilesToImport: ({ multiple, }?: {
|
|
49
|
+
readonly multiple?: boolean | undefined;
|
|
50
|
+
}) => Promise<File[]>;
|
|
44
51
|
export declare const importAssets: ({ compositionFile, compositionId, dropPosition, files, }: {
|
|
45
52
|
compositionFile: string;
|
|
46
53
|
compositionId: string;
|
|
@@ -76,10 +83,11 @@ export declare const insertComponent: ({ component, compositionFile, composition
|
|
|
76
83
|
compositionId: string;
|
|
77
84
|
dropPosition: InsertElementDropPosition | null;
|
|
78
85
|
}) => Promise<void>;
|
|
79
|
-
export declare const insertComposition: ({ composition, compositionFile, compositionId, dropPosition, }: {
|
|
86
|
+
export declare const insertComposition: ({ composition, compositionFile, compositionId, destinationDimensions, dropPosition, }: {
|
|
80
87
|
composition: CompositionDragData;
|
|
81
88
|
compositionFile: string;
|
|
82
89
|
compositionId: string;
|
|
90
|
+
destinationDimensions: Dimensions | null;
|
|
83
91
|
dropPosition: InsertElementDropPosition | null;
|
|
84
92
|
}) => Promise<void>;
|
|
85
93
|
export declare const insertElement: ({ compositionFile, compositionId, dropPosition, element, }: {
|