@remotion/studio 4.0.505 → 4.0.507
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/copy-render-output-to-asset.d.ts +4 -0
- package/dist/api/copy-render-output-to-asset.js +11 -0
- package/dist/api/install-package.d.ts +2 -3
- package/dist/api/install-package.js +1 -3
- package/dist/api/visual-control.d.ts +3 -0
- package/dist/api/visual-control.js +3 -0
- package/dist/components/AssetSelector.js +19 -4
- package/dist/components/AssetSelectorItem.js +3 -3
- package/dist/components/Canvas.js +2 -0
- package/dist/components/CodingAgentIcon.d.ts +4 -0
- package/dist/components/CodingAgentIcon.js +17 -0
- package/dist/components/CompositionSelector.js +1 -1
- package/dist/components/CompositionSelectorItem.js +1 -1
- package/dist/components/ConfigureDefaultEditorModal.d.ts +1 -1
- package/dist/components/ConfigureDefaultEditorModal.js +117 -69
- package/dist/components/ConfigureLicenseModal.d.ts +1 -3
- package/dist/components/ConfigureLicenseModal.js +105 -89
- package/dist/components/ConfirmationDialog.js +2 -2
- package/dist/components/ContextMenu.js +10 -8
- package/dist/components/Editor.js +2 -0
- package/dist/components/EditorContexts.js +6 -5
- package/dist/components/EffectPickerModal.js +1 -1
- package/dist/components/ExpandedTracksProvider.js +10 -53
- package/dist/components/GlobalKeybindings.js +3 -2
- package/dist/components/InlineCaptionInspector.d.ts +2 -2
- package/dist/components/InlineDropdown.d.ts +2 -1
- package/dist/components/InlineDropdown.js +10 -4
- package/dist/components/InspectorLocationCopy.js +8 -8
- package/dist/components/InspectorOpenInEditor.d.ts +2 -0
- package/dist/components/InspectorOpenInEditor.js +63 -49
- package/dist/components/InspectorPanel/AlignmentControls.js +5 -2
- package/dist/components/InspectorPanel/CompositionInspector.js +15 -1
- package/dist/components/InspectorPanel/ConnectedCompositionsSection.js +1 -1
- package/dist/components/InspectorPanel/EasingInspector.js +7 -4
- package/dist/components/InspectorPanel/KeyframeInspector.js +5 -1
- package/dist/components/InspectorPanel/SequenceInspectorHeader.d.ts +3 -0
- package/dist/components/InspectorPanel/SequenceInspectorHeader.js +22 -4
- package/dist/components/InspectorPanel/SequenceSelectionInspector.js +1 -1
- package/dist/components/InspectorPanel/common.d.ts +1 -0
- package/dist/components/InspectorPanel/common.js +2 -2
- package/dist/components/InspectorPanel/use-composition-actions.js +4 -1
- package/dist/components/InspectorSequenceSection.js +4 -4
- package/dist/components/InstallPackage.js +1 -1
- package/dist/components/Menu/MenuSectionHeader.d.ts +4 -0
- package/dist/components/Menu/MenuSectionHeader.js +20 -0
- package/dist/components/Menu/SubMenu.js +13 -2
- package/dist/components/Menu/menu-tree-context.d.ts +3 -0
- package/dist/components/Menu/menu-tree-context.js +13 -0
- package/dist/components/MenuBuildIndicator.js +1 -0
- package/dist/components/MenuToolbar.js +1 -1
- package/dist/components/ModalFooter.d.ts +1 -0
- package/dist/components/ModalFooter.js +6 -2
- package/dist/components/ModalHeader.js +1 -1
- package/dist/components/Modals.js +18 -7
- package/dist/components/ModalsProvider.js +5 -6
- package/dist/components/NewComposition/CodemodFooter.js +1 -1
- package/dist/components/NewComposition/ComboBox.d.ts +6 -1
- package/dist/components/NewComposition/DismissableModal.js +1 -1
- package/dist/components/NewComposition/MenuContent.js +27 -19
- package/dist/components/NewComposition/RenameStaticFile.js +1 -1
- package/dist/components/NewComposition/menu-typeahead.js +2 -2
- package/dist/components/OverrideInputProps.js +1 -1
- package/dist/components/PlayPause.js +2 -1
- package/dist/components/PlaybackKeyboardShortcutsManager.js +7 -5
- package/dist/components/Preview.js +29 -4
- package/dist/components/PreviewToolbarOverflowButton.js +4 -2
- package/dist/components/QuickSwitcher/ExplorerQuickSwitcherTrigger.js +1 -1
- package/dist/components/QuickSwitcher/QuickSwitcherContent.js +1 -1
- package/dist/components/RenderButton.d.ts +3 -3
- package/dist/components/RenderButton.js +42 -7
- package/dist/components/RenderModal/RenderStatusModal.js +1 -1
- package/dist/components/RenderModal/SchemaEditor/ZodEnumEditor.d.ts +1 -0
- package/dist/components/RenderModal/SchemaEditor/ZodEnumEditor.js +2 -2
- package/dist/components/RenderModal/SchemaEditor/ZodOrNullishEditor.js +3 -3
- package/dist/components/RenderModal/SchemaEditor/ZodSwitch.js +1 -1
- package/dist/components/RenderModal/ServerRenderModal.js +5 -1
- package/dist/components/RenderModal/WebRenderModal.js +3 -2
- package/dist/components/RenderQueue/RenderQueueError.js +1 -1
- package/dist/components/RenderQueue/RenderQueueItem.js +8 -2
- package/dist/components/RenderQueue/RenderQueueItemStatus.js +1 -1
- package/dist/components/RenderQueue/RenderQueueProgressMessage.js +1 -1
- package/dist/components/RenderQueue/RenderQueueRepeat.js +1 -1
- package/dist/components/RenderQueue/actions.d.ts +4 -2
- package/dist/components/RenderQueue/actions.js +4 -2
- package/dist/components/RenderQueue/index.js +3 -4
- package/dist/components/RenderQueue/use-render-output-file-drag.d.ts +8 -0
- package/dist/components/RenderQueue/use-render-output-file-drag.js +121 -0
- package/dist/components/SegmentedControl.js +0 -1
- package/dist/components/SelectedOutlineElement.d.ts +14 -17
- package/dist/components/SelectedOutlineElement.js +113 -931
- package/dist/components/SelectedOutlineKeyboardControls.d.ts +7 -0
- package/dist/components/SelectedOutlineKeyboardControls.js +261 -0
- package/dist/components/SelectedOutlineOverlay.d.ts +6 -13
- package/dist/components/SelectedOutlineOverlay.js +360 -832
- package/dist/components/SelectedOutlinePolygon.d.ts +25 -0
- package/dist/components/SelectedOutlinePolygon.js +359 -0
- package/dist/components/SelectedOutlineRenderer.d.ts +18 -0
- package/dist/components/SelectedOutlineRenderer.js +208 -0
- package/dist/components/SelectedOutlineRotationCornerHandle.d.ts +16 -0
- package/dist/components/SelectedOutlineRotationCornerHandle.js +269 -0
- package/dist/components/SelectedOutlineScaleEdgeLine.d.ts +16 -0
- package/dist/components/SelectedOutlineScaleEdgeLine.js +211 -0
- package/dist/components/SelectedOutlineSnapIndicators.d.ts +9 -0
- package/dist/components/SelectedOutlineSnapIndicators.js +29 -0
- package/dist/components/SelectedOutlineTransformOriginHandle.d.ts +9 -0
- package/dist/components/SelectedOutlineTransformOriginHandle.js +286 -0
- package/dist/components/SelectedOutlineUvControls.d.ts +3 -9
- package/dist/components/SelectedOutlineUvControls.js +57 -12
- package/dist/components/SettingsContext.d.ts +15 -0
- package/dist/components/SettingsContext.js +116 -0
- package/dist/components/SettingsModal.d.ts +7 -0
- package/dist/components/SettingsModal.js +56 -0
- package/dist/components/SettingsModalFooter.d.ts +2 -0
- package/dist/components/SettingsModalFooter.js +44 -0
- package/dist/components/ShowOutlinesProvider.js +2 -3
- package/dist/components/SidebarRenderButton.js +1 -1
- package/dist/components/SvgImportDialog.js +2 -2
- package/dist/components/TimeValue.js +1 -1
- package/dist/components/Timeline/EasingEditorModal.js +66 -22
- package/dist/components/Timeline/Timeline.js +23 -5
- package/dist/components/Timeline/TimelineAssetField.js +1 -1
- package/dist/components/Timeline/TimelineDragHandler.js +3 -3
- package/dist/components/Timeline/TimelineDuplicateCount.d.ts +4 -0
- package/dist/components/Timeline/TimelineDuplicateCount.js +28 -0
- package/dist/components/Timeline/TimelineEffectPropItem.js +5 -3
- package/dist/components/Timeline/TimelineExpandedKeyframeRow.js +3 -23
- package/dist/components/Timeline/TimelineExpandedRow.d.ts +4 -2
- package/dist/components/Timeline/TimelineExpandedRow.js +2 -2
- package/dist/components/Timeline/TimelineExpandedTrackKeyframes.d.ts +4 -2
- package/dist/components/Timeline/TimelineExpandedTrackKeyframes.js +11 -1
- package/dist/components/Timeline/TimelineFontFamilyField.js +3 -1
- package/dist/components/Timeline/TimelineKeyframeControls.js +1 -0
- package/dist/components/Timeline/TimelineSelection.js +1 -0
- package/dist/components/Timeline/TimelineSequence.js +28 -25
- package/dist/components/Timeline/TimelineSequenceItem.js +74 -58
- package/dist/components/Timeline/TimelineSequenceRightEdgeDragHandle.js +1 -1
- package/dist/components/Timeline/TimelineTrack.js +2 -1
- package/dist/components/Timeline/get-sequence-context-menu-items.d.ts +6 -3
- package/dist/components/Timeline/get-sequence-context-menu-items.js +58 -53
- package/dist/components/Timeline/reset-selected-timeline-props.js +1 -1
- package/dist/components/Timeline/should-subscribe-to-sequence-props.d.ts +1 -1
- package/dist/components/Timeline/timeline-asset-link.d.ts +2 -2
- package/dist/components/Timeline/timeline-asset-link.js +2 -2
- package/dist/components/Timeline/use-expanded-track-keyframe-rows.js +38 -2
- package/dist/components/Timeline/{use-open-sequence-in-editor.d.ts → use-open-sequence-in-apps.d.ts} +4 -1
- package/dist/components/Timeline/{use-open-sequence-in-editor.js → use-open-sequence-in-apps.js} +20 -4
- package/dist/components/Timeline/use-timeline-asset-drop.js +1 -0
- package/dist/components/Timeline/use-timeline-expanded-tree.d.ts +5 -0
- package/dist/components/Timeline/use-timeline-expanded-tree.js +50 -1
- package/dist/components/Timeline/use-timeline-height.js +20 -0
- package/dist/components/TimelineInOutToggle.js +5 -1
- package/dist/components/TopPanel.js +16 -0
- package/dist/components/UpdateCheck.js +1 -1
- package/dist/components/effect-drag-and-drop.js +1 -1
- package/dist/components/get-open-in-menu-items.d.ts +12 -0
- package/dist/components/get-open-in-menu-items.js +83 -0
- package/dist/components/handle-drop.d.ts +2 -1
- package/dist/components/handle-drop.js +12 -2
- package/dist/components/import-assets.d.ts +18 -6
- package/dist/components/import-assets.js +76 -32
- package/dist/components/selected-outline-measurement.d.ts +2 -2
- package/dist/components/selected-outline-order.d.ts +12 -0
- package/dist/components/selected-outline-order.js +251 -0
- package/dist/components/selected-outline-types.d.ts +9 -10
- package/dist/components/svg-point-to-client-point.d.ts +2 -0
- package/dist/components/svg-point-to-client-point.js +10 -0
- package/dist/components/use-auto-save-config.d.ts +8 -0
- package/dist/components/use-auto-save-config.js +74 -0
- package/dist/components/use-default-editor-info.d.ts +1 -0
- package/dist/components/use-default-editor-info.js +10 -30
- package/dist/esm/{chunk-jefhcs5z.js → chunk-fgedsvhb.js} +1 -2
- package/dist/esm/{chunk-7pgk8h5m.js → chunk-ptnd65a9.js} +14596 -12725
- package/dist/esm/internals.mjs +14595 -12724
- package/dist/esm/previewEntry.mjs +12726 -10855
- package/dist/esm/renderEntry.mjs +2 -2
- package/dist/helpers/are-sequence-node-path-infos-equal.d.ts +2 -0
- package/dist/helpers/are-sequence-node-path-infos-equal.js +27 -0
- package/dist/helpers/calculate-timeline.js +3 -3
- package/dist/helpers/client-id.d.ts +3 -1
- package/dist/helpers/client-id.js +28 -4
- package/dist/helpers/format-file-location.d.ts +1 -1
- package/dist/helpers/format-file-location.js +3 -3
- package/dist/helpers/install-required-package.d.ts +3 -3
- package/dist/helpers/install-required-package.js +1 -6
- package/dist/helpers/migrate-expanded-tracks-for-subscription-key.js +3 -3
- package/dist/helpers/open-in-editor.d.ts +1 -0
- package/dist/helpers/open-in-editor.js +5 -1
- package/dist/helpers/studio-fit-padding.d.ts +1 -1
- package/dist/helpers/studio-fit-padding.js +1 -1
- package/dist/helpers/studio-runtime-config.js +3 -0
- package/dist/helpers/timeline-layout.d.ts +2 -1
- package/dist/helpers/timeline-layout.js +5 -2
- package/dist/helpers/timeline-node-path-key.d.ts +2 -0
- package/dist/helpers/timeline-node-path-key.js +3 -1
- package/dist/helpers/use-asset-drag-events.d.ts +2 -1
- package/dist/helpers/use-asset-drag-events.js +14 -6
- package/dist/helpers/use-menu-structure.js +25 -35
- package/dist/helpers/use-runtime-values.d.ts +9 -0
- package/dist/helpers/use-runtime-values.js +76 -0
- package/dist/icons/apps.d.ts +2 -0
- package/dist/icons/apps.js +7 -0
- package/dist/icons/browse-elements.d.ts +4 -0
- package/dist/icons/browse-elements.js +10 -0
- package/dist/state/modals.d.ts +5 -6
- package/dist/state/modals.js +5 -3
- package/dist/state/timeline-sequence-hover.d.ts +9 -3
- package/dist/state/timeline-sequence-hover.js +63 -12
- package/package.json +12 -12
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getOpenInMenuItems = void 0;
|
|
4
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
+
const editor_1 = require("../icons/editor");
|
|
6
|
+
const CodingAgentIcon_1 = require("./CodingAgentIcon");
|
|
7
|
+
const menuLabel = {
|
|
8
|
+
color: 'inherit',
|
|
9
|
+
fontFamily: 'sans-serif',
|
|
10
|
+
fontSize: 13,
|
|
11
|
+
lineHeight: '16px',
|
|
12
|
+
};
|
|
13
|
+
const getOpenInMenuItems = ({ codingAgentInfo, editorDisabled, editorInfo, excludeCodingAgentId, excludeEditorId, onConfigureApps, onOpenInCodingAgent, onOpenInEditor, }) => {
|
|
14
|
+
var _a, _b;
|
|
15
|
+
const editors = ((_a = editorInfo === null || editorInfo === void 0 ? void 0 : editorInfo.installedEditors) !== null && _a !== void 0 ? _a : [])
|
|
16
|
+
.filter((editor) => editor.id !== excludeEditorId)
|
|
17
|
+
.map((editor) => ({
|
|
18
|
+
disabled: editorDisabled,
|
|
19
|
+
id: `open-in-${editor.id}`,
|
|
20
|
+
keyHint: null,
|
|
21
|
+
label: jsx_runtime_1.jsx("span", { style: menuLabel, children: editor.name }),
|
|
22
|
+
leftItem: jsx_runtime_1.jsx(editor_1.EditorIcon, { editorId: editor.id, size: 18 }),
|
|
23
|
+
onClick: () => {
|
|
24
|
+
if (!editorDisabled) {
|
|
25
|
+
onOpenInEditor(editor.id);
|
|
26
|
+
}
|
|
27
|
+
},
|
|
28
|
+
quickSwitcherLabel: null,
|
|
29
|
+
subMenu: null,
|
|
30
|
+
type: 'item',
|
|
31
|
+
value: editor.id,
|
|
32
|
+
}));
|
|
33
|
+
const codingAgents = ((_b = codingAgentInfo === null || codingAgentInfo === void 0 ? void 0 : codingAgentInfo.installedCodingAgents) !== null && _b !== void 0 ? _b : [])
|
|
34
|
+
.filter((codingAgent) => codingAgent.id !== excludeCodingAgentId)
|
|
35
|
+
.map((codingAgent) => ({
|
|
36
|
+
id: `open-in-coding-agent-${codingAgent.id}`,
|
|
37
|
+
keyHint: null,
|
|
38
|
+
label: jsx_runtime_1.jsx("span", { style: menuLabel, children: codingAgent.name }),
|
|
39
|
+
leftItem: jsx_runtime_1.jsx(CodingAgentIcon_1.CodingAgentIcon, { iconDataUrl: codingAgent.iconDataUrl }),
|
|
40
|
+
onClick: () => onOpenInCodingAgent(codingAgent.id, codingAgent.nameWithType),
|
|
41
|
+
quickSwitcherLabel: null,
|
|
42
|
+
subMenu: null,
|
|
43
|
+
type: 'item',
|
|
44
|
+
value: `coding-agent-${codingAgent.id}`,
|
|
45
|
+
}));
|
|
46
|
+
return [
|
|
47
|
+
...(editors.length > 0
|
|
48
|
+
? [
|
|
49
|
+
{
|
|
50
|
+
type: 'section-header',
|
|
51
|
+
id: 'editors-header',
|
|
52
|
+
label: 'Editors',
|
|
53
|
+
},
|
|
54
|
+
...editors,
|
|
55
|
+
]
|
|
56
|
+
: []),
|
|
57
|
+
...(codingAgents.length > 0
|
|
58
|
+
? [
|
|
59
|
+
{
|
|
60
|
+
type: 'section-header',
|
|
61
|
+
id: 'agents-header',
|
|
62
|
+
label: 'Agents',
|
|
63
|
+
},
|
|
64
|
+
...codingAgents,
|
|
65
|
+
]
|
|
66
|
+
: []),
|
|
67
|
+
...(editors.length > 0 || codingAgents.length > 0
|
|
68
|
+
? [{ type: 'divider', id: 'open-in-settings-divider' }]
|
|
69
|
+
: []),
|
|
70
|
+
{
|
|
71
|
+
id: 'change-default-apps',
|
|
72
|
+
keyHint: null,
|
|
73
|
+
label: jsx_runtime_1.jsx("span", { style: menuLabel, children: "Change default apps..." }),
|
|
74
|
+
leftItem: null,
|
|
75
|
+
onClick: onConfigureApps,
|
|
76
|
+
quickSwitcherLabel: null,
|
|
77
|
+
subMenu: null,
|
|
78
|
+
type: 'item',
|
|
79
|
+
value: 'change-default-apps',
|
|
80
|
+
},
|
|
81
|
+
];
|
|
82
|
+
};
|
|
83
|
+
exports.getOpenInMenuItems = getOpenInMenuItems;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { Dimensions } from '../helpers/is-current-selected-still';
|
|
2
2
|
import { type InsertElementDropPosition } from './import-assets';
|
|
3
3
|
import type { SvgImportMode } from './SvgImportDialog';
|
|
4
|
-
export declare const handleDrop: ({ chooseSvgImportMode, compositionFile, compositionId, destinationDimensions, dropPosition, event, fps, from, }: {
|
|
4
|
+
export declare const handleDrop: ({ chooseSvgImportMode, compositionFile, compositionId, destinationDimensions, dropPosition, event, fps, from, preferCompositionStart, }: {
|
|
5
5
|
chooseSvgImportMode: () => Promise<SvgImportMode | null>;
|
|
6
6
|
compositionFile: string;
|
|
7
7
|
compositionId: string;
|
|
@@ -10,4 +10,5 @@ export declare const handleDrop: ({ chooseSvgImportMode, compositionFile, compos
|
|
|
10
10
|
event: DragEvent;
|
|
11
11
|
fps: number;
|
|
12
12
|
from: number | null;
|
|
13
|
+
preferCompositionStart: boolean;
|
|
13
14
|
}) => Promise<void>;
|
|
@@ -6,7 +6,7 @@ const drop_handler_data_1 = require("./drop-handler-data");
|
|
|
6
6
|
const element_drag_and_drop_1 = require("./element-drag-and-drop");
|
|
7
7
|
const element_install_request_1 = require("./element-install-request");
|
|
8
8
|
const import_assets_1 = require("./import-assets");
|
|
9
|
-
const handleDrop = async ({ chooseSvgImportMode, compositionFile, compositionId, destinationDimensions, dropPosition, event, fps, from, }) => {
|
|
9
|
+
const handleDrop = async ({ chooseSvgImportMode, compositionFile, compositionId, destinationDimensions, dropPosition, event, fps, from, preferCompositionStart, }) => {
|
|
10
10
|
var _a;
|
|
11
11
|
var _b;
|
|
12
12
|
if ((0, drop_handler_data_1.isFileDragEvent)(event)) {
|
|
@@ -28,6 +28,7 @@ const handleDrop = async ({ chooseSvgImportMode, compositionFile, compositionId,
|
|
|
28
28
|
files,
|
|
29
29
|
fps,
|
|
30
30
|
from,
|
|
31
|
+
preferCompositionStart,
|
|
31
32
|
svgImportMode,
|
|
32
33
|
});
|
|
33
34
|
return;
|
|
@@ -45,6 +46,7 @@ const handleDrop = async ({ chooseSvgImportMode, compositionFile, compositionId,
|
|
|
45
46
|
dropPosition,
|
|
46
47
|
fps,
|
|
47
48
|
from,
|
|
49
|
+
preferCompositionStart,
|
|
48
50
|
});
|
|
49
51
|
return;
|
|
50
52
|
}
|
|
@@ -58,6 +60,7 @@ const handleDrop = async ({ chooseSvgImportMode, compositionFile, compositionId,
|
|
|
58
60
|
compositionId,
|
|
59
61
|
fps,
|
|
60
62
|
from,
|
|
63
|
+
preferCompositionStart,
|
|
61
64
|
url: sfxUrl,
|
|
62
65
|
});
|
|
63
66
|
return;
|
|
@@ -73,6 +76,7 @@ const handleDrop = async ({ chooseSvgImportMode, compositionFile, compositionId,
|
|
|
73
76
|
compositionId,
|
|
74
77
|
dropPosition,
|
|
75
78
|
from,
|
|
79
|
+
preferCompositionStart,
|
|
76
80
|
});
|
|
77
81
|
return;
|
|
78
82
|
}
|
|
@@ -85,7 +89,11 @@ const handleDrop = async ({ chooseSvgImportMode, compositionFile, compositionId,
|
|
|
85
89
|
compositionFile,
|
|
86
90
|
compositionId,
|
|
87
91
|
element: element.element,
|
|
88
|
-
from,
|
|
92
|
+
from: (0, import_assets_1.getFromForDrop)({
|
|
93
|
+
durationInFrames: element.element.durationInFrames,
|
|
94
|
+
from,
|
|
95
|
+
preferCompositionStart,
|
|
96
|
+
}),
|
|
89
97
|
position: (0, import_assets_1.getElementPositionForDrop)({
|
|
90
98
|
dimensions: element.element.dimensions,
|
|
91
99
|
dropPosition,
|
|
@@ -102,6 +110,7 @@ const handleDrop = async ({ chooseSvgImportMode, compositionFile, compositionId,
|
|
|
102
110
|
compositionId,
|
|
103
111
|
dropPosition,
|
|
104
112
|
from,
|
|
113
|
+
preferCompositionStart,
|
|
105
114
|
});
|
|
106
115
|
return;
|
|
107
116
|
}
|
|
@@ -116,6 +125,7 @@ const handleDrop = async ({ chooseSvgImportMode, compositionFile, compositionId,
|
|
|
116
125
|
dropPosition,
|
|
117
126
|
fps,
|
|
118
127
|
from,
|
|
128
|
+
preferCompositionStart,
|
|
119
129
|
url: remoteAssetUrl,
|
|
120
130
|
});
|
|
121
131
|
};
|
|
@@ -5,6 +5,11 @@ export type InsertElementDropPosition = {
|
|
|
5
5
|
readonly centerX: number;
|
|
6
6
|
readonly centerY: number;
|
|
7
7
|
};
|
|
8
|
+
export declare const getFromForDrop: ({ durationInFrames, from, preferCompositionStart, }: {
|
|
9
|
+
durationInFrames: number | null | undefined;
|
|
10
|
+
from: number | null;
|
|
11
|
+
preferCompositionStart: boolean | null;
|
|
12
|
+
}) => number | null;
|
|
8
13
|
export declare const getAssetElement: ({ fileType, src, }: {
|
|
9
14
|
fileType: FileType;
|
|
10
15
|
src: string;
|
|
@@ -75,7 +80,7 @@ export declare const getDurationInFrames: ({ durationInSeconds, fps, }: {
|
|
|
75
80
|
export declare const pickFilesToImport: ({ multiple, }?: {
|
|
76
81
|
readonly multiple?: boolean | undefined;
|
|
77
82
|
}) => Promise<File[]>;
|
|
78
|
-
export declare const importAssets: ({ compositionFile, compositionId, destinationDimensions, dropPosition, files, fps, from, svgImportMode, }: {
|
|
83
|
+
export declare const importAssets: ({ compositionFile, compositionId, destinationDimensions, dropPosition, files, fps, from, preferCompositionStart, svgImportMode, }: {
|
|
79
84
|
compositionFile: string;
|
|
80
85
|
compositionId: string;
|
|
81
86
|
destinationDimensions: Dimensions | null;
|
|
@@ -83,6 +88,7 @@ export declare const importAssets: ({ compositionFile, compositionId, destinatio
|
|
|
83
88
|
files: File[];
|
|
84
89
|
fps: number;
|
|
85
90
|
from: number | null;
|
|
91
|
+
preferCompositionStart: boolean | null;
|
|
86
92
|
svgImportMode: "image" | "inline";
|
|
87
93
|
}) => Promise<void>;
|
|
88
94
|
export declare const importFigmaClipboard: ({ compositionFile, compositionId, destinationDimensions, dropPosition, html, }: {
|
|
@@ -99,23 +105,25 @@ export declare const insertSvgMarkup: ({ compositionFile, compositionId, destina
|
|
|
99
105
|
dropPosition: InsertElementDropPosition | null;
|
|
100
106
|
markup: string;
|
|
101
107
|
}) => Promise<void>;
|
|
102
|
-
export declare const importRemoteAsset: ({ compositionFile, compositionId, destinationDimensions, dropPosition, fps, from, url, }: {
|
|
108
|
+
export declare const importRemoteAsset: ({ compositionFile, compositionId, destinationDimensions, dropPosition, fps, from, preferCompositionStart, url, }: {
|
|
103
109
|
compositionFile: string;
|
|
104
110
|
compositionId: string;
|
|
105
111
|
destinationDimensions: Dimensions | null;
|
|
106
112
|
dropPosition: InsertElementDropPosition | null;
|
|
107
113
|
fps: number;
|
|
108
114
|
from: number | null;
|
|
115
|
+
preferCompositionStart: boolean | null;
|
|
109
116
|
url: string;
|
|
110
117
|
}) => Promise<void>;
|
|
111
|
-
export declare const insertRemoteAudio: ({ compositionFile, compositionId, fps, from, url, }: {
|
|
118
|
+
export declare const insertRemoteAudio: ({ compositionFile, compositionId, fps, from, preferCompositionStart, url, }: {
|
|
112
119
|
compositionFile: string;
|
|
113
120
|
compositionId: string;
|
|
114
121
|
fps: number;
|
|
115
122
|
from: number | null;
|
|
123
|
+
preferCompositionStart: boolean | null;
|
|
116
124
|
url: string;
|
|
117
125
|
}) => Promise<void>;
|
|
118
|
-
export declare const insertExistingAssets: ({ assetPaths, compositionFile, compositionId, destinationDimensions, dropPosition, fps, from, }: {
|
|
126
|
+
export declare const insertExistingAssets: ({ assetPaths, compositionFile, compositionId, destinationDimensions, dropPosition, fps, from, preferCompositionStart, }: {
|
|
119
127
|
assetPaths: string[];
|
|
120
128
|
compositionFile: string;
|
|
121
129
|
compositionId: string;
|
|
@@ -123,8 +131,9 @@ export declare const insertExistingAssets: ({ assetPaths, compositionFile, compo
|
|
|
123
131
|
dropPosition: InsertElementDropPosition | null;
|
|
124
132
|
fps: number;
|
|
125
133
|
from: number | null;
|
|
134
|
+
preferCompositionStart: boolean | null;
|
|
126
135
|
}) => Promise<void>;
|
|
127
|
-
export declare const insertComponent: ({ component, compositionFile, compositionId, dropPosition, from, }: {
|
|
136
|
+
export declare const insertComponent: ({ component, compositionFile, compositionId, dropPosition, from, preferCompositionStart, }: {
|
|
128
137
|
component: {
|
|
129
138
|
componentName: string;
|
|
130
139
|
dimensions?: import("@remotion/studio-protocol").ComponentDimensions | undefined;
|
|
@@ -136,13 +145,15 @@ export declare const insertComponent: ({ component, compositionFile, composition
|
|
|
136
145
|
compositionId: string;
|
|
137
146
|
dropPosition: InsertElementDropPosition | null;
|
|
138
147
|
from: number | null;
|
|
148
|
+
preferCompositionStart: boolean | null;
|
|
139
149
|
}) => Promise<void>;
|
|
140
|
-
export declare const insertComposition: ({ composition, compositionFile, compositionId, dropPosition, from, }: {
|
|
150
|
+
export declare const insertComposition: ({ composition, compositionFile, compositionId, dropPosition, from, preferCompositionStart, }: {
|
|
141
151
|
composition: CompositionDragData;
|
|
142
152
|
compositionFile: string;
|
|
143
153
|
compositionId: string;
|
|
144
154
|
dropPosition: InsertElementDropPosition | null;
|
|
145
155
|
from: number | null;
|
|
156
|
+
preferCompositionStart: boolean | null;
|
|
146
157
|
}) => Promise<void>;
|
|
147
158
|
export declare const insertElement: ({ compositionFile, compositionId, element, expectedFileState, position, from, overwriteExisting, }: {
|
|
148
159
|
compositionFile: string;
|
|
@@ -150,6 +161,7 @@ export declare const insertElement: ({ compositionFile, compositionId, element,
|
|
|
150
161
|
element: {
|
|
151
162
|
dependencies: import("@remotion/studio-protocol").ElementDependency[];
|
|
152
163
|
durationInFrames?: number | undefined;
|
|
164
|
+
installationMode?: import("@remotion/studio-protocol").ElementInstallationMode | undefined;
|
|
153
165
|
slug: string;
|
|
154
166
|
displayName: string;
|
|
155
167
|
sourceCode: string;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.insertElement = exports.insertComposition = exports.insertComponent = exports.insertExistingAssets = exports.insertRemoteAudio = exports.importRemoteAsset = exports.insertSvgMarkup = exports.importFigmaClipboard = exports.importAssets = exports.pickFilesToImport = exports.getDurationInFrames = exports.getComponentDimensions = exports.getAssetPositionForDrop = exports.getCompositionPositionForDrop = exports.getElementPositionForDrop = exports.hasSvgFile = exports.getAssetElementForDroppedFile = exports.getAssetElementFromPath = exports.getAssetElement = void 0;
|
|
3
|
+
exports.insertElement = exports.insertComposition = exports.insertComponent = exports.insertExistingAssets = exports.insertRemoteAudio = exports.importRemoteAsset = exports.insertSvgMarkup = exports.importFigmaClipboard = exports.importAssets = exports.pickFilesToImport = exports.getDurationInFrames = exports.getComponentDimensions = exports.getAssetPositionForDrop = exports.getCompositionPositionForDrop = exports.getElementPositionForDrop = exports.hasSvgFile = exports.getAssetElementForDroppedFile = exports.getAssetElementFromPath = exports.getAssetElement = exports.getFromForDrop = void 0;
|
|
4
4
|
const studio_shared_1 = require("@remotion/studio-shared");
|
|
5
5
|
const remotion_1 = require("remotion");
|
|
6
6
|
const no_react_1 = require("remotion/no-react");
|
|
@@ -11,6 +11,19 @@ const install_required_package_1 = require("../helpers/install-required-package"
|
|
|
11
11
|
const use_media_metadata_1 = require("../helpers/use-media-metadata");
|
|
12
12
|
const call_api_1 = require("./call-api");
|
|
13
13
|
const NotificationCenter_1 = require("./Notifications/NotificationCenter");
|
|
14
|
+
const getFromForDrop = ({ durationInFrames, from, preferCompositionStart, }) => {
|
|
15
|
+
if (preferCompositionStart !== true) {
|
|
16
|
+
return from;
|
|
17
|
+
}
|
|
18
|
+
if (durationInFrames !== null &&
|
|
19
|
+
durationInFrames !== undefined &&
|
|
20
|
+
from !== null &&
|
|
21
|
+
from >= durationInFrames) {
|
|
22
|
+
return from;
|
|
23
|
+
}
|
|
24
|
+
return null;
|
|
25
|
+
};
|
|
26
|
+
exports.getFromForDrop = getFromForDrop;
|
|
14
27
|
const getAssetElement = ({ fileType, src, }) => {
|
|
15
28
|
if (fileType.type === 'webp' && fileType.animated) {
|
|
16
29
|
return {
|
|
@@ -496,7 +509,7 @@ const insertCompositionElement = async ({ compositionFile, compositionId, elemen
|
|
|
496
509
|
const downloadRemoteAsset = (url) => {
|
|
497
510
|
return (0, call_api_1.callApi)('/api/download-remote-asset', { url });
|
|
498
511
|
};
|
|
499
|
-
const importAssets = async ({ compositionFile, compositionId, destinationDimensions, dropPosition, files, fps, from, svgImportMode, }) => {
|
|
512
|
+
const importAssets = async ({ compositionFile, compositionId, destinationDimensions, dropPosition, files, fps, from, preferCompositionStart, svgImportMode, }) => {
|
|
500
513
|
var _a;
|
|
501
514
|
if (files.length === 0) {
|
|
502
515
|
return;
|
|
@@ -534,7 +547,11 @@ const importAssets = async ({ compositionFile, compositionId, destinationDimensi
|
|
|
534
547
|
const svgInserted = await insertCompositionElement({
|
|
535
548
|
compositionFile,
|
|
536
549
|
compositionId,
|
|
537
|
-
from,
|
|
550
|
+
from: (0, exports.getFromForDrop)({
|
|
551
|
+
durationInFrames: null,
|
|
552
|
+
from,
|
|
553
|
+
preferCompositionStart,
|
|
554
|
+
}),
|
|
538
555
|
element: {
|
|
539
556
|
type: 'svg',
|
|
540
557
|
markup: new TextDecoder().decode(contents),
|
|
@@ -570,19 +587,24 @@ const importAssets = async ({ compositionFile, compositionId, destinationDimensi
|
|
|
570
587
|
addedStaticFiles.push(file.name);
|
|
571
588
|
}
|
|
572
589
|
const resolvedDimensions = (_a = element.dimensions) !== null && _a !== void 0 ? _a : metadata.dimensions;
|
|
590
|
+
const durationInFrames = assetTypeHasDuration(element.assetType)
|
|
591
|
+
? (0, exports.getDurationInFrames)({
|
|
592
|
+
durationInSeconds: metadata.durationInSeconds,
|
|
593
|
+
fps,
|
|
594
|
+
})
|
|
595
|
+
: null;
|
|
573
596
|
const inserted = await insertCompositionElement({
|
|
574
597
|
compositionFile,
|
|
575
598
|
compositionId,
|
|
576
|
-
from,
|
|
599
|
+
from: (0, exports.getFromForDrop)({
|
|
600
|
+
durationInFrames,
|
|
601
|
+
from,
|
|
602
|
+
preferCompositionStart,
|
|
603
|
+
}),
|
|
577
604
|
element: {
|
|
578
605
|
...element,
|
|
579
606
|
dimensions: resolvedDimensions,
|
|
580
|
-
durationInFrames
|
|
581
|
-
? (0, exports.getDurationInFrames)({
|
|
582
|
-
durationInSeconds: metadata.durationInSeconds,
|
|
583
|
-
fps,
|
|
584
|
-
})
|
|
585
|
-
: null,
|
|
607
|
+
durationInFrames,
|
|
586
608
|
position: (0, exports.getAssetPositionForDrop)({
|
|
587
609
|
assetDimensions: resolvedDimensions,
|
|
588
610
|
destinationDimensions,
|
|
@@ -663,7 +685,7 @@ const insertSvgMarkup = async ({ compositionFile, compositionId, destinationDime
|
|
|
663
685
|
}
|
|
664
686
|
};
|
|
665
687
|
exports.insertSvgMarkup = insertSvgMarkup;
|
|
666
|
-
const importRemoteAsset = async ({ compositionFile, compositionId, destinationDimensions, dropPosition, fps, from, url, }) => {
|
|
688
|
+
const importRemoteAsset = async ({ compositionFile, compositionId, destinationDimensions, dropPosition, fps, from, preferCompositionStart, url, }) => {
|
|
667
689
|
var _a;
|
|
668
690
|
try {
|
|
669
691
|
const { assetPath, created, element } = await downloadRemoteAsset(url);
|
|
@@ -676,19 +698,24 @@ const importRemoteAsset = async ({ compositionFile, compositionId, destinationDi
|
|
|
676
698
|
}
|
|
677
699
|
const metadata = await getStaticAssetMetadataOrNull(assetPath, element.assetType);
|
|
678
700
|
const dimensions = (_a = element.dimensions) !== null && _a !== void 0 ? _a : metadata.dimensions;
|
|
701
|
+
const durationInFrames = assetTypeHasDuration(element.assetType)
|
|
702
|
+
? (0, exports.getDurationInFrames)({
|
|
703
|
+
durationInSeconds: metadata.durationInSeconds,
|
|
704
|
+
fps,
|
|
705
|
+
})
|
|
706
|
+
: null;
|
|
679
707
|
const inserted = await insertCompositionElement({
|
|
680
708
|
compositionFile,
|
|
681
709
|
compositionId,
|
|
682
|
-
from,
|
|
710
|
+
from: (0, exports.getFromForDrop)({
|
|
711
|
+
durationInFrames,
|
|
712
|
+
from,
|
|
713
|
+
preferCompositionStart,
|
|
714
|
+
}),
|
|
683
715
|
element: {
|
|
684
716
|
...element,
|
|
685
717
|
dimensions,
|
|
686
|
-
durationInFrames
|
|
687
|
-
? (0, exports.getDurationInFrames)({
|
|
688
|
-
durationInSeconds: metadata.durationInSeconds,
|
|
689
|
-
fps,
|
|
690
|
-
})
|
|
691
|
-
: null,
|
|
718
|
+
durationInFrames,
|
|
692
719
|
position: (0, exports.getAssetPositionForDrop)({
|
|
693
720
|
assetDimensions: dimensions,
|
|
694
721
|
destinationDimensions,
|
|
@@ -706,7 +733,7 @@ const importRemoteAsset = async ({ compositionFile, compositionId, destinationDi
|
|
|
706
733
|
}
|
|
707
734
|
};
|
|
708
735
|
exports.importRemoteAsset = importRemoteAsset;
|
|
709
|
-
const insertRemoteAudio = async ({ compositionFile, compositionId, fps, from, url, }) => {
|
|
736
|
+
const insertRemoteAudio = async ({ compositionFile, compositionId, fps, from, preferCompositionStart, url, }) => {
|
|
710
737
|
if (!(0, studio_shared_1.isUrl)(url)) {
|
|
711
738
|
(0, NotificationCenter_1.showNotification)('Cannot add sound effect: Unsupported URL', 3000);
|
|
712
739
|
return;
|
|
@@ -729,7 +756,11 @@ const insertRemoteAudio = async ({ compositionFile, compositionId, fps, from, ur
|
|
|
729
756
|
compositionFile,
|
|
730
757
|
compositionId,
|
|
731
758
|
element,
|
|
732
|
-
from,
|
|
759
|
+
from: (0, exports.getFromForDrop)({
|
|
760
|
+
durationInFrames: element.durationInFrames,
|
|
761
|
+
from,
|
|
762
|
+
preferCompositionStart,
|
|
763
|
+
}),
|
|
733
764
|
});
|
|
734
765
|
if (!inserted) {
|
|
735
766
|
return;
|
|
@@ -741,7 +772,7 @@ const insertRemoteAudio = async ({ compositionFile, compositionId, fps, from, ur
|
|
|
741
772
|
}
|
|
742
773
|
};
|
|
743
774
|
exports.insertRemoteAudio = insertRemoteAudio;
|
|
744
|
-
const insertExistingAssets = async ({ assetPaths, compositionFile, compositionId, destinationDimensions, dropPosition, fps, from, }) => {
|
|
775
|
+
const insertExistingAssets = async ({ assetPaths, compositionFile, compositionId, destinationDimensions, dropPosition, fps, from, preferCompositionStart, }) => {
|
|
745
776
|
var _a;
|
|
746
777
|
if (assetPaths.length === 0) {
|
|
747
778
|
return;
|
|
@@ -757,19 +788,24 @@ const insertExistingAssets = async ({ assetPaths, compositionFile, compositionId
|
|
|
757
788
|
}
|
|
758
789
|
const metadata = await getStaticAssetMetadataOrNull(assetPath, element.assetType);
|
|
759
790
|
const dimensions = (_a = element.dimensions) !== null && _a !== void 0 ? _a : metadata.dimensions;
|
|
791
|
+
const durationInFrames = assetTypeHasDuration(element.assetType)
|
|
792
|
+
? (0, exports.getDurationInFrames)({
|
|
793
|
+
durationInSeconds: metadata.durationInSeconds,
|
|
794
|
+
fps,
|
|
795
|
+
})
|
|
796
|
+
: null;
|
|
760
797
|
const inserted = await insertCompositionElement({
|
|
761
798
|
compositionFile,
|
|
762
799
|
compositionId,
|
|
763
|
-
from,
|
|
800
|
+
from: (0, exports.getFromForDrop)({
|
|
801
|
+
durationInFrames,
|
|
802
|
+
from,
|
|
803
|
+
preferCompositionStart,
|
|
804
|
+
}),
|
|
764
805
|
element: {
|
|
765
806
|
...element,
|
|
766
807
|
dimensions,
|
|
767
|
-
durationInFrames
|
|
768
|
-
? (0, exports.getDurationInFrames)({
|
|
769
|
-
durationInSeconds: metadata.durationInSeconds,
|
|
770
|
-
fps,
|
|
771
|
-
})
|
|
772
|
-
: null,
|
|
808
|
+
durationInFrames,
|
|
773
809
|
position: (0, exports.getAssetPositionForDrop)({
|
|
774
810
|
assetDimensions: dimensions,
|
|
775
811
|
destinationDimensions,
|
|
@@ -790,12 +826,16 @@ const insertExistingAssets = async ({ assetPaths, compositionFile, compositionId
|
|
|
790
826
|
}
|
|
791
827
|
};
|
|
792
828
|
exports.insertExistingAssets = insertExistingAssets;
|
|
793
|
-
const insertComponent = async ({ component, compositionFile, compositionId, dropPosition, from, }) => {
|
|
829
|
+
const insertComponent = async ({ component, compositionFile, compositionId, dropPosition, from, preferCompositionStart, }) => {
|
|
794
830
|
try {
|
|
795
831
|
const inserted = await insertCompositionElement({
|
|
796
832
|
compositionFile,
|
|
797
833
|
compositionId,
|
|
798
|
-
from,
|
|
834
|
+
from: (0, exports.getFromForDrop)({
|
|
835
|
+
durationInFrames: null,
|
|
836
|
+
from,
|
|
837
|
+
preferCompositionStart,
|
|
838
|
+
}),
|
|
799
839
|
element: {
|
|
800
840
|
type: 'component',
|
|
801
841
|
componentName: component.componentName,
|
|
@@ -825,7 +865,7 @@ const serializeResolvedPropsForSourceCode = (props) => {
|
|
|
825
865
|
staticBase: window.remotion_staticBase,
|
|
826
866
|
}).serializedString;
|
|
827
867
|
};
|
|
828
|
-
const insertComposition = async ({ composition, compositionFile, compositionId, dropPosition, from, }) => {
|
|
868
|
+
const insertComposition = async ({ composition, compositionFile, compositionId, dropPosition, from, preferCompositionStart, }) => {
|
|
829
869
|
if (composition.compositionId === compositionId) {
|
|
830
870
|
(0, NotificationCenter_1.showNotification)('Cannot add a composition to itself', 3000);
|
|
831
871
|
return;
|
|
@@ -847,7 +887,11 @@ const insertComposition = async ({ composition, compositionFile, compositionId,
|
|
|
847
887
|
const inserted = await insertCompositionElement({
|
|
848
888
|
compositionFile,
|
|
849
889
|
compositionId,
|
|
850
|
-
from,
|
|
890
|
+
from: (0, exports.getFromForDrop)({
|
|
891
|
+
durationInFrames: calculated.durationInFrames,
|
|
892
|
+
from,
|
|
893
|
+
preferCompositionStart,
|
|
894
|
+
}),
|
|
851
895
|
element: {
|
|
852
896
|
type: 'composition',
|
|
853
897
|
compositionId: composition.compositionId,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { OverrideIdToNodePaths, TSequence } from 'remotion';
|
|
2
2
|
import type { OutlinePoint, SelectedOutline } from './selected-outline-geometry';
|
|
3
|
-
import type {
|
|
3
|
+
import type { SelectedOutlineLayoutTarget, SequenceWithSelectedOutline } from './selected-outline-types';
|
|
4
4
|
import { type TimelineSelection, type TimelineSelectionInteraction } from './Timeline/TimelineSelection';
|
|
5
5
|
export declare const pointToString: (point: OutlinePoint) => string;
|
|
6
6
|
export declare const midpoint: (from: OutlinePoint, to: OutlinePoint) => OutlinePoint;
|
|
@@ -75,6 +75,6 @@ export declare const getSequencesWithSelectableOutlines: ({ sequences, overrideI
|
|
|
75
75
|
readonly compositions?: readonly import("remotion").AnyComposition[] | undefined;
|
|
76
76
|
readonly timelinePosition: number;
|
|
77
77
|
}) => SequenceWithSelectedOutline[];
|
|
78
|
-
export declare const measureOutlines: (container: SVGSVGElement, targets: readonly
|
|
78
|
+
export declare const measureOutlines: (container: SVGSVGElement, targets: readonly SelectedOutlineLayoutTarget[]) => SelectedOutline[];
|
|
79
79
|
export declare const outlinesAreEqual: (a: readonly SelectedOutline[], b: readonly SelectedOutline[]) => boolean;
|
|
80
80
|
export {};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { SelectedOutline } from './selected-outline-geometry';
|
|
2
|
+
import type { SelectedOutlineLayoutTarget } from './selected-outline-types';
|
|
3
|
+
type OutlineSequenceParent = {
|
|
4
|
+
readonly id: string;
|
|
5
|
+
readonly parent: string | null;
|
|
6
|
+
};
|
|
7
|
+
export declare const orderOutlinesForRendering: ({ outlines, sequences, targetsByKey, }: {
|
|
8
|
+
readonly outlines: readonly SelectedOutline[];
|
|
9
|
+
readonly sequences: readonly OutlineSequenceParent[];
|
|
10
|
+
readonly targetsByKey: ReadonlyMap<string, SelectedOutlineLayoutTarget>;
|
|
11
|
+
}) => readonly SelectedOutline[];
|
|
12
|
+
export {};
|