@remotion/studio 4.0.525 → 4.0.527
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/focus-default-props-path.js +7 -1
- package/dist/api/restart-studio.d.ts +1 -1
- package/dist/api/restart-studio.js +1 -1
- package/dist/components/AgentPrompt.d.ts +6 -0
- package/dist/components/AgentPrompt.js +107 -0
- package/dist/components/AssetFileIcon.js +2 -0
- package/dist/components/AssetSelectorItem.d.ts +1 -23
- package/dist/components/AssetSelectorItem.js +10 -200
- package/dist/components/Canvas.js +109 -44
- package/dist/components/CanvasCaptureDropHandler.js +63 -0
- package/dist/components/CanvasOrLoading.js +10 -2
- package/dist/components/CaptionInspector.js +9 -3
- package/dist/{error-overlay/remotion-overlay → components}/CodeFrame.d.ts +2 -0
- package/dist/components/CodeFrame.js +77 -0
- package/dist/components/CompositionSelectorItem.js +7 -17
- package/dist/components/CurrentAsset.js +6 -4
- package/dist/components/ElementInstallConfirmation.js +69 -38
- package/dist/components/FilePreview.js +4 -0
- package/dist/components/FixComputedValueModal.js +64 -96
- package/dist/components/GenerateWithAgentModal.d.ts +9 -0
- package/dist/components/GenerateWithAgentModal.js +39 -0
- package/dist/components/InitialCompositionLoader.js +1 -1
- package/dist/components/InlineDropdown.js +26 -2
- package/dist/components/InlineEditableTitle.js +3 -0
- package/dist/components/InspectorOpenInEditor.js +8 -4
- package/dist/components/InspectorPanel/CollapsibleInspectorSection.d.ts +7 -0
- package/dist/components/InspectorPanel/CollapsibleInspectorSection.js +14 -0
- package/dist/components/InspectorPanel/CollapsibleInspectorSectionHeader.d.ts +1 -1
- package/dist/components/InspectorPanel/CollapsibleInspectorSectionHeader.js +20 -8
- package/dist/components/InspectorPanel/CompositionInspector.js +32 -15
- package/dist/components/InspectorPanel/CompositionMetadata.js +7 -0
- package/dist/components/InspectorPanel/ConnectedCompositionsSection.js +6 -12
- package/dist/components/InspectorPanel/ElementLibraryButton.js +2 -0
- package/dist/components/InspectorPanel/GuideInspector.js +2 -3
- package/dist/components/InspectorPanel/KeyframeSettings.js +5 -6
- package/dist/components/InspectorPanel/MultiSequenceInspector.js +34 -2
- package/dist/components/InspectorPanel/SequenceSelectionInspector.js +45 -4
- package/dist/components/InspectorPanel/common.d.ts +4 -0
- package/dist/components/InspectorPanel/common.js +15 -2
- package/dist/components/InspectorPanel/styles.d.ts +0 -3
- package/dist/components/InspectorPanel/styles.js +3 -27
- package/dist/components/InspectorPanel/use-composition-actions.d.ts +2 -0
- package/dist/components/InspectorPanel/use-composition-actions.js +16 -0
- package/dist/components/InspectorPanel/use-inspector-section-expanded.d.ts +1 -0
- package/dist/components/InspectorPanel/use-inspector-section-expanded.js +21 -0
- package/dist/components/InspectorSequenceSection.js +44 -35
- package/dist/components/InspectorSourceLocation.js +4 -0
- package/dist/components/KeyboardShortcutsSettings.js +12 -4
- package/dist/components/LutPreview.d.ts +4 -0
- package/dist/components/LutPreview.js +192 -0
- package/dist/components/MenuBuildIndicator.js +1 -0
- package/dist/components/MenuCompositionName.js +4 -9
- package/dist/components/Modals.js +3 -6
- package/dist/components/ModelsSettings.js +15 -4
- package/dist/components/NewComposition/CancelButton.js +1 -1
- package/dist/components/Notifications/NotificationCenter.d.ts +0 -1
- package/dist/components/Notifications/NotificationCenter.js +1 -22
- package/dist/components/Preview.js +3 -0
- package/dist/components/QuickSwitcher/ExplorerQuickSwitcherTrigger.js +1 -0
- package/dist/components/QuickSwitcher/QuickSwitcherContent.js +1 -0
- package/dist/components/QuickSwitcher/QuickSwitcherResult.js +4 -9
- package/dist/components/RadioButton.js +1 -0
- package/dist/components/RenderModal/DataEditor.js +4 -1
- package/dist/components/RenderModal/SchemaEditor/scroll-to-default-props-path.d.ts +1 -0
- package/dist/components/RenderModal/SchemaEditor/scroll-to-default-props-path.js +2 -1
- package/dist/components/RenderModal/WebRenderModal.js +10 -2
- package/dist/components/RenderQueue/CaptionQueueItem.js +5 -2
- package/dist/components/RenderQueue/CaptionQueueProcessor.js +35 -8
- package/dist/components/RenderQueue/VideoMattingQueueItem.js +1 -0
- package/dist/components/RenderQueue/caption-job-types.d.ts +6 -0
- package/dist/components/RenderQueue/index.js +1 -0
- package/dist/components/RendersTab.js +4 -0
- package/dist/components/SelectedOutlineElement.js +6 -0
- package/dist/components/SelectedOutlineSnapIndicators.d.ts +6 -0
- package/dist/components/SelectedOutlineSnapIndicators.js +16 -12
- package/dist/components/SequencePropsSubscriptionProvider.d.ts +3 -0
- package/dist/components/SequencePropsSubscriptionProvider.js +8 -6
- package/dist/components/SettingsButton.js +11 -2
- package/dist/components/SettingsModal.d.ts +1 -2
- package/dist/components/SettingsModal.js +24 -6
- package/dist/components/SettingsModalFooter.js +17 -3
- package/dist/components/SkillsSettings.d.ts +5 -0
- package/dist/components/SkillsSettings.js +29 -26
- package/dist/components/Timeline/Timeline.js +10 -11
- package/dist/components/Timeline/TimelineAssetField.js +81 -51
- package/dist/components/Timeline/TimelineDeleteKeybindings.js +6 -9
- package/dist/components/Timeline/TimelineEffectItem.js +1 -0
- package/dist/components/Timeline/TimelineExpandArrowButton.js +1 -0
- package/dist/components/Timeline/TimelineExpandedRow.js +1 -0
- package/dist/components/Timeline/TimelineFieldLabel.js +1 -0
- package/dist/components/Timeline/TimelineHeightContainer.js +11 -1
- package/dist/components/Timeline/TimelineKeyframeControls.js +16 -1
- package/dist/components/Timeline/TimelineLayerChildren.d.ts +3 -3
- package/dist/components/Timeline/TimelineLayerChildren.js +11 -9
- package/dist/components/Timeline/TimelineLayerEye.d.ts +1 -1
- package/dist/components/Timeline/TimelineLayerEye.js +6 -3
- package/dist/components/Timeline/TimelineList.js +9 -3
- package/dist/components/Timeline/TimelineSchemaField.js +2 -6
- package/dist/components/Timeline/TimelineSelection.d.ts +14 -3
- package/dist/components/Timeline/TimelineSelection.js +91 -49
- package/dist/components/Timeline/TimelineSequence.js +28 -2
- package/dist/components/Timeline/TimelineSequenceFrame.js +1 -0
- package/dist/components/Timeline/TimelineSequenceItem.d.ts +2 -0
- package/dist/components/Timeline/TimelineSequenceItem.js +45 -13
- package/dist/components/Timeline/TimelineViewport.d.ts +1 -0
- package/dist/components/Timeline/TimelineViewport.js +10 -1
- package/dist/components/Timeline/TimelineVirtualization.d.ts +3 -3
- package/dist/components/Timeline/delete-selected-timeline-item.js +2 -2
- package/dist/components/Timeline/get-sequence-context-menu-items.d.ts +6 -2
- package/dist/components/Timeline/get-sequence-context-menu-items.js +143 -46
- package/dist/components/Timeline/normalize-font-weight-for-keyframe.d.ts +1 -0
- package/dist/components/Timeline/normalize-font-weight-for-keyframe.js +19 -0
- package/dist/components/Timeline/split-selected-timeline-item.d.ts +13 -10
- package/dist/components/Timeline/split-selected-timeline-item.js +58 -35
- package/dist/components/Timeline/timeline-display-groups.d.ts +9 -0
- package/dist/components/Timeline/timeline-display-groups.js +66 -0
- package/dist/components/Timeline/use-timeline-asset-drop.js +21 -21
- package/dist/components/Timeline/use-timeline-expanded-tree.d.ts +2 -1
- package/dist/components/Timeline/use-timeline-expanded-tree.js +1 -2
- package/dist/components/TimelineCombobox.js +1 -0
- package/dist/components/Transcription/TranscriptionModal.js +16 -11
- package/dist/components/Transcription/TranscriptionModalWithOptionalWhisper.js +1 -1
- package/dist/components/UpdateStatusContext.d.ts +2 -2
- package/dist/components/UpdateStatusContext.js +6 -7
- package/dist/components/UpdatesSettings.js +6 -6
- package/dist/components/WebMcp.js +41 -41
- package/dist/components/asset-context-menu.d.ts +32 -0
- package/dist/components/asset-context-menu.js +242 -0
- package/dist/components/composition-drop-preview.d.ts +9 -2
- package/dist/components/composition-drop-preview.js +7 -4
- package/dist/components/composition-menu-items.d.ts +4 -6
- package/dist/components/composition-menu-items.js +191 -75
- package/dist/components/delete-jsx-nodes-api.d.ts +2 -0
- package/dist/components/{delete-jsx-node-api.js → delete-jsx-nodes-api.js} +5 -5
- package/dist/components/get-open-in-menu-items.d.ts +6 -5
- package/dist/components/get-open-in-menu-items.js +22 -16
- package/dist/components/keyboard-shortcuts.d.ts +4 -4
- package/dist/components/keyboard-shortcuts.js +3 -1
- package/dist/components/public-output-name.d.ts +1 -0
- package/dist/components/public-output-name.js +7 -3
- package/dist/components/selected-outline-order.js +18 -12
- package/dist/components/use-open-in-menu-apps.d.ts +14 -0
- package/dist/components/use-open-in-menu-apps.js +33 -0
- package/dist/error-overlay/remotion-overlay/ErrorDisplay.js +2 -2
- package/dist/error-overlay/remotion-overlay/OpenInEditor.d.ts +1 -0
- package/dist/error-overlay/remotion-overlay/OpenInEditor.js +3 -3
- package/dist/error-overlay/remotion-overlay/StackFrame.d.ts +5 -1
- package/dist/error-overlay/remotion-overlay/StackFrame.js +26 -19
- package/dist/esm/{CaptionQueueProcessor-k0yrm3dj.mjs → CaptionQueueProcessor-npa6szn1.mjs} +39 -8
- package/dist/esm/{LazyModels-gfmpcy4h.mjs → LazyModels-nh3c8h9p.mjs} +4 -3
- package/dist/esm/{LazyModels-m1rf06wh.mjs → LazyModels-rr5v8h5y.mjs} +4 -3
- package/dist/esm/{TranscriptionModal-8pvrehg4.mjs → TranscriptionModal-79m5wgcj.mjs} +25 -17
- package/dist/esm/{VideoMattingModal-fefbzgka.mjs → VideoMattingModal-31pew0xj.mjs} +9 -6
- package/dist/esm/index-21hxsfaa.mjs +239 -0
- package/dist/esm/{index-s848rffx.mjs → index-4zen9prq.mjs} +5438 -4686
- package/dist/esm/index-5t2dwxsk.mjs +530 -0
- package/dist/esm/{index-vsxrxfpj.mjs → index-614tdz2q.mjs} +1 -1
- package/dist/esm/{index-0x13f28h.mjs → index-9xxg6218.mjs} +20 -541
- package/dist/esm/{index-hbezgbbq.mjs → index-ac5550e7.mjs} +1 -1
- package/dist/esm/{index-41kqns5c.mjs → index-e855w59j.mjs} +15 -92
- package/dist/esm/{index-tzxb8808.mjs → index-n5gmcvhz.mjs} +8 -8
- package/dist/esm/{index-ggqpre9v.mjs → index-ppspzgn9.mjs} +4963 -4178
- package/dist/esm/{index-jrw61pkj.mjs → index-r0ejh5sy.mjs} +1 -1
- package/dist/esm/index-r1gr3j3a.mjs +80 -0
- package/dist/esm/{index-mww32xc8.mjs → index-s7qa3xbw.mjs} +6 -4
- package/dist/esm/{index-1089795y.mjs → index-vxwg66ar.mjs} +7 -22
- package/dist/esm/index.mjs +13 -6
- package/dist/esm/internals.mjs +10 -7
- package/dist/esm/previewEntry.mjs +10 -7
- package/dist/esm/{resolve-composition-component-location-bt2d6qxq.mjs → resolve-composition-component-location-qrp05g62.mjs} +1 -1
- package/dist/helpers/client-id.d.ts +1 -0
- package/dist/helpers/client-id.js +8 -4
- package/dist/helpers/copy-text.js +1 -16
- package/dist/helpers/cube-lut.d.ts +12 -0
- package/dist/helpers/cube-lut.js +160 -0
- package/dist/helpers/get-preview-file-type.d.ts +1 -1
- package/dist/helpers/get-preview-file-type.js +3 -0
- package/dist/helpers/hoverable.js +2 -1
- package/dist/helpers/open-in-editor.d.ts +5 -2
- package/dist/helpers/open-in-editor.js +13 -5
- package/dist/helpers/settings-tab-availability.d.ts +14 -0
- package/dist/helpers/settings-tab-availability.js +35 -0
- package/dist/helpers/studio-runtime-config.d.ts +1 -1
- package/dist/helpers/use-keybinding.d.ts +1 -1
- package/dist/helpers/use-keyboard-shortcut-label.d.ts +2 -2
- package/dist/helpers/use-menu-structure.js +31 -21
- package/dist/icons/lut.d.ts +4 -0
- package/dist/icons/lut.js +6 -0
- package/dist/icons/sparkles.d.ts +4 -0
- package/dist/icons/sparkles.js +6 -0
- package/dist/state/modals.d.ts +17 -2
- package/dist/state/timeline-zoom.js +4 -0
- package/package.json +19 -19
- package/dist/components/delete-jsx-node-api.d.ts +0 -2
- package/dist/error-overlay/remotion-overlay/CodeFrame.js +0 -62
|
@@ -34,6 +34,7 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
34
34
|
})();
|
|
35
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
36
|
exports.WebMcp = void 0;
|
|
37
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
37
38
|
const studio_shared_1 = require("@remotion/studio-shared");
|
|
38
39
|
const react_1 = require("react");
|
|
39
40
|
const remotion_1 = require("remotion");
|
|
@@ -128,20 +129,10 @@ const resolveAssetPath = ({ assetPath, currentContent, staticFiles, }) => {
|
|
|
128
129
|
}
|
|
129
130
|
return resolvedAssetPath;
|
|
130
131
|
};
|
|
131
|
-
const
|
|
132
|
+
const WebMcpSelectionSync = ({ currentSelectionRef, selectedSequenceRef }) => {
|
|
132
133
|
var _a;
|
|
133
|
-
var _b, _c, _d, _e
|
|
134
|
-
const {
|
|
135
|
-
const staticFiles = (0, use_static_files_1.useStaticFiles)();
|
|
136
|
-
const { canSelect, clearSelection, selectedItems, selectItems } = (0, TimelineSelection_1.useTimelineSelection)();
|
|
137
|
-
const { canvasContent, compositions, currentCompositionMetadata, folders } = (0, react_1.useContext)(remotion_1.Internals.CompositionManager);
|
|
138
|
-
const { playbackRate: currentPlaybackRate, setPlaybackRate } = remotion_1.Internals.usePlaybackRate();
|
|
139
|
-
const { isPlaying } = remotion_1.Internals.Timeline.useTimelineContext();
|
|
140
|
-
const { mediaVolume, playerMuted } = (0, react_1.useContext)(remotion_1.Internals.MediaVolumeContext);
|
|
141
|
-
const { setPlayerMuted } = (0, react_1.useContext)(remotion_1.Internals.SetMediaVolumeContext);
|
|
142
|
-
const { setZoom: setTimelineZoom, zoom: timelineZoomMap } = (0, react_1.useContext)(timeline_zoom_1.TimelineZoomCtx);
|
|
143
|
-
const selectComposition = (0, InitialCompositionLoader_1.useSelectComposition)();
|
|
144
|
-
const { editorShowGuides, guidesList, setEditorShowGuides, setGuidesList } = (0, react_1.useContext)(editor_guides_1.EditorShowGuidesContext);
|
|
134
|
+
var _b, _c, _d, _e;
|
|
135
|
+
const { selectedItems } = (0, TimelineSelection_1.useTimelineSelection)();
|
|
145
136
|
const { sequences } = (0, react_1.useContext)(remotion_1.Internals.SequenceManager);
|
|
146
137
|
const { overrideIdToNodePathMappings } = (0, react_1.useContext)(remotion_1.Internals.OverrideIdsToNodePathsGettersContext);
|
|
147
138
|
const selectedItem = selectedItems.length === 1 ? selectedItems[0] : null;
|
|
@@ -161,16 +152,10 @@ const WebMcp = () => {
|
|
|
161
152
|
const currentResolvedLocation = stack === currentStack ? resolvedLocation : null;
|
|
162
153
|
const currentSelection = (0, react_1.useMemo)(() => {
|
|
163
154
|
var _a;
|
|
164
|
-
if (selectedItems.length
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
return null;
|
|
169
|
-
}
|
|
170
|
-
if (selectedItem === null || selectedItem.type === 'guide') {
|
|
171
|
-
return null;
|
|
172
|
-
}
|
|
173
|
-
if (track === null) {
|
|
155
|
+
if (selectedItems.length !== 1 ||
|
|
156
|
+
selectedItem === null ||
|
|
157
|
+
selectedItem.type === 'guide' ||
|
|
158
|
+
track === null) {
|
|
174
159
|
return null;
|
|
175
160
|
}
|
|
176
161
|
let name;
|
|
@@ -209,15 +194,28 @@ const WebMcp = () => {
|
|
|
209
194
|
root: window.remotion_cwd,
|
|
210
195
|
});
|
|
211
196
|
}, [currentResolvedLocation, selectedItem, selectedItems.length, track]);
|
|
212
|
-
const currentSelectionRef = (0, react_1.useRef)(currentSelection);
|
|
213
197
|
currentSelectionRef.current = currentSelection;
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
198
|
+
selectedSequenceRef.current =
|
|
199
|
+
track === null ? null : serializeSequence(track);
|
|
200
|
+
return null;
|
|
201
|
+
};
|
|
202
|
+
const WebMcp = () => {
|
|
203
|
+
var _a;
|
|
204
|
+
const { addCaptionJob, addVideoMattingJob } = (0, react_1.useContext)(context_1.RenderQueueContext);
|
|
205
|
+
const staticFiles = (0, use_static_files_1.useStaticFiles)();
|
|
206
|
+
const timelineSelectionRef = (0, TimelineSelection_1.useCurrentTimelineSelectionStateAsRef)();
|
|
207
|
+
const currentSelectionRef = (0, react_1.useRef)(null);
|
|
208
|
+
const selectedSequenceRef = (0, react_1.useRef)(null);
|
|
209
|
+
const { canvasContent, compositions, currentCompositionMetadata, folders } = (0, react_1.useContext)(remotion_1.Internals.CompositionManager);
|
|
210
|
+
const { playbackRate: currentPlaybackRate, setPlaybackRate } = remotion_1.Internals.usePlaybackRate();
|
|
211
|
+
const { isPlaying } = remotion_1.Internals.Timeline.useTimelineContext();
|
|
212
|
+
const { mediaVolume, playerMuted } = (0, react_1.useContext)(remotion_1.Internals.MediaVolumeContext);
|
|
213
|
+
const { setPlayerMuted } = (0, react_1.useContext)(remotion_1.Internals.SetMediaVolumeContext);
|
|
214
|
+
const { setZoom: setTimelineZoom, zoom: timelineZoomMap } = (0, react_1.useContext)(timeline_zoom_1.TimelineZoomCtx);
|
|
215
|
+
const selectComposition = (0, InitialCompositionLoader_1.useSelectComposition)();
|
|
216
|
+
const { editorShowGuides, guidesList, setEditorShowGuides, setGuidesList } = (0, react_1.useContext)(editor_guides_1.EditorShowGuidesContext);
|
|
217
|
+
const { sequences } = (0, react_1.useContext)(remotion_1.Internals.SequenceManager);
|
|
218
|
+
const { overrideIdToNodePathMappings } = (0, react_1.useContext)(remotion_1.Internals.OverrideIdsToNodePathsGettersContext);
|
|
221
219
|
const currentCompositionDefinition = (0, react_1.useMemo)(() => {
|
|
222
220
|
var _a;
|
|
223
221
|
if ((canvasContent === null || canvasContent === void 0 ? void 0 : canvasContent.type) !== 'composition') {
|
|
@@ -241,7 +239,7 @@ const WebMcp = () => {
|
|
|
241
239
|
currentContentRef.current = currentContent;
|
|
242
240
|
const staticFilesRef = (0, react_1.useRef)(staticFiles);
|
|
243
241
|
staticFilesRef.current = staticFiles;
|
|
244
|
-
const currentComposition = (
|
|
242
|
+
const currentComposition = (_a = currentCompositionDefinition === null || currentCompositionDefinition === void 0 ? void 0 : currentCompositionDefinition.id) !== null && _a !== void 0 ? _a : null;
|
|
245
243
|
const currentCompositionRef = (0, react_1.useRef)(currentComposition);
|
|
246
244
|
currentCompositionRef.current = currentComposition;
|
|
247
245
|
const currentCompositionDefinitionRef = (0, react_1.useRef)(currentCompositionDefinition);
|
|
@@ -478,6 +476,7 @@ const WebMcp = () => {
|
|
|
478
476
|
model: model.name,
|
|
479
477
|
noRepeatNgramSize,
|
|
480
478
|
outName: outputPath,
|
|
479
|
+
target: null,
|
|
481
480
|
repetitionPenalty,
|
|
482
481
|
requestInit: null,
|
|
483
482
|
src,
|
|
@@ -766,7 +765,7 @@ const WebMcp = () => {
|
|
|
766
765
|
if (compositionId === null) {
|
|
767
766
|
throw new Error('No composition is currently selected.');
|
|
768
767
|
}
|
|
769
|
-
if (!
|
|
768
|
+
if (!timelineSelectionRef.current.canSelect) {
|
|
770
769
|
throw new Error('Studio sequence selection is unavailable.');
|
|
771
770
|
}
|
|
772
771
|
const timelineTrack = getCurrentTimeline().find((candidate) => candidate.sequence.id === sequenceId);
|
|
@@ -777,7 +776,9 @@ const WebMcp = () => {
|
|
|
777
776
|
if (selection === null) {
|
|
778
777
|
throw new Error(`Sequence ${sequenceId} cannot be selected.`);
|
|
779
778
|
}
|
|
780
|
-
selectItems([selection], {
|
|
779
|
+
timelineSelectionRef.current.selectItems([selection], {
|
|
780
|
+
reveal: true,
|
|
781
|
+
});
|
|
781
782
|
return Promise.resolve({
|
|
782
783
|
currentContent: currentContentRef.current,
|
|
783
784
|
selectedSequence: serializeSequence(timelineTrack),
|
|
@@ -1025,8 +1026,8 @@ const WebMcp = () => {
|
|
|
1025
1026
|
currentFrame: (0, imperative_state_1.getCurrentFrame)(),
|
|
1026
1027
|
currentSelection: currentSelectionRef.current,
|
|
1027
1028
|
currentContent: currentContentRef.current,
|
|
1028
|
-
selectionType:
|
|
1029
|
-
?
|
|
1029
|
+
selectionType: timelineSelectionRef.current.selectedItems.length === 1
|
|
1030
|
+
? timelineSelectionRef.current.selectedItems[0].type
|
|
1030
1031
|
: null,
|
|
1031
1032
|
selectedSequence: selectedSequenceRef.current,
|
|
1032
1033
|
}),
|
|
@@ -1181,9 +1182,9 @@ const WebMcp = () => {
|
|
|
1181
1182
|
guidesListRef.current = nextGuides;
|
|
1182
1183
|
setGuidesList(() => nextGuides);
|
|
1183
1184
|
(0, editor_guides_1.persistGuidesList)(nextGuides);
|
|
1184
|
-
const removedGuideWasSelected =
|
|
1185
|
+
const removedGuideWasSelected = timelineSelectionRef.current.selectedItems.some((item) => item.type === 'guide' && item.guideId === guideId);
|
|
1185
1186
|
if (removedGuideWasSelected) {
|
|
1186
|
-
clearSelection();
|
|
1187
|
+
timelineSelectionRef.current.clearSelection();
|
|
1187
1188
|
}
|
|
1188
1189
|
return Promise.resolve({
|
|
1189
1190
|
currentContent: currentContentRef.current,
|
|
@@ -1426,16 +1427,15 @@ const WebMcp = () => {
|
|
|
1426
1427
|
}, [
|
|
1427
1428
|
addCaptionJob,
|
|
1428
1429
|
addVideoMattingJob,
|
|
1429
|
-
clearSelection,
|
|
1430
1430
|
isPlaying,
|
|
1431
1431
|
selectComposition,
|
|
1432
|
-
selectItems,
|
|
1433
1432
|
setEditorShowGuides,
|
|
1434
1433
|
setGuidesList,
|
|
1435
1434
|
setPlaybackRate,
|
|
1436
1435
|
setPlayerMuted,
|
|
1437
1436
|
setTimelineZoom,
|
|
1437
|
+
timelineSelectionRef,
|
|
1438
1438
|
]);
|
|
1439
|
-
return
|
|
1439
|
+
return (jsx_runtime_1.jsx(WebMcpSelectionSync, { currentSelectionRef: currentSelectionRef, selectedSequenceRef: selectedSequenceRef }));
|
|
1440
1440
|
};
|
|
1441
1441
|
exports.WebMcp = WebMcp;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import type { ComboboxValue } from './NewComposition/ComboBox';
|
|
2
|
+
export declare const getAssetActionAvailability: ({ browserStudioCanMutateAssets, readOnlyStudio, connectionStatus, publicFolderExists, }: {
|
|
3
|
+
browserStudioCanMutateAssets: boolean | null;
|
|
4
|
+
readOnlyStudio: boolean;
|
|
5
|
+
connectionStatus: "connected" | "disconnected" | "init";
|
|
6
|
+
publicFolderExists: string | null;
|
|
7
|
+
}) => {
|
|
8
|
+
mutationsDisabled: boolean;
|
|
9
|
+
fileExplorerDisabled: boolean;
|
|
10
|
+
};
|
|
11
|
+
export declare const getAssetContextMenuItems: ({ relativePath, fileManagerName, copyFileName, copyStaticFilePath, copyAbsolutePath, openAssetInConvert, openAssetInExplorer, renameAsset, deleteAsset, fileExplorerAvailable, fileExplorerDisabled, mutationsDisabled, }: {
|
|
12
|
+
relativePath: string;
|
|
13
|
+
fileManagerName: string;
|
|
14
|
+
copyFileName: () => void;
|
|
15
|
+
copyStaticFilePath: () => void;
|
|
16
|
+
copyAbsolutePath: (() => void) | null;
|
|
17
|
+
openAssetInConvert: () => void;
|
|
18
|
+
openAssetInExplorer: () => void;
|
|
19
|
+
renameAsset: () => void;
|
|
20
|
+
deleteAsset: () => void;
|
|
21
|
+
fileExplorerAvailable: boolean;
|
|
22
|
+
fileExplorerDisabled: boolean;
|
|
23
|
+
mutationsDisabled: boolean;
|
|
24
|
+
}) => ComboboxValue[];
|
|
25
|
+
export declare const useAssetContextMenuItems: ({ relativePath, readOnlyStudio, }: {
|
|
26
|
+
relativePath: string | null;
|
|
27
|
+
readOnlyStudio: boolean;
|
|
28
|
+
}) => {
|
|
29
|
+
fileExplorerDisabled: boolean;
|
|
30
|
+
fileManagerName: string;
|
|
31
|
+
getContextMenuItems: () => ComboboxValue[];
|
|
32
|
+
};
|
|
@@ -0,0 +1,242 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.useAssetContextMenuItems = exports.getAssetContextMenuItems = exports.getAssetActionAvailability = void 0;
|
|
4
|
+
const react_1 = require("react");
|
|
5
|
+
const no_react_1 = require("remotion/no-react");
|
|
6
|
+
const browser_studio_operations_1 = require("../helpers/browser-studio-operations");
|
|
7
|
+
const client_id_1 = require("../helpers/client-id");
|
|
8
|
+
const copy_text_1 = require("../helpers/copy-text");
|
|
9
|
+
const get_file_manager_name_1 = require("../helpers/get-file-manager-name");
|
|
10
|
+
const get_preview_file_type_1 = require("../helpers/get-preview-file-type");
|
|
11
|
+
const open_in_remotion_convert_1 = require("../helpers/open-in-remotion-convert");
|
|
12
|
+
const modals_1 = require("../state/modals");
|
|
13
|
+
const NotificationCenter_1 = require("./Notifications/NotificationCenter");
|
|
14
|
+
const open_in_new_window_1 = require("./open-in-new-window");
|
|
15
|
+
const actions_1 = require("./RenderQueue/actions");
|
|
16
|
+
const use_delete_asset_1 = require("./use-delete-asset");
|
|
17
|
+
const getAssetActionAvailability = ({ browserStudioCanMutateAssets, readOnlyStudio, connectionStatus, publicFolderExists, }) => {
|
|
18
|
+
return {
|
|
19
|
+
mutationsDisabled: browserStudioCanMutateAssets !== true &&
|
|
20
|
+
(readOnlyStudio || connectionStatus !== 'connected'),
|
|
21
|
+
fileExplorerDisabled: browserStudioCanMutateAssets !== null ||
|
|
22
|
+
publicFolderExists === null ||
|
|
23
|
+
readOnlyStudio ||
|
|
24
|
+
connectionStatus !== 'connected',
|
|
25
|
+
};
|
|
26
|
+
};
|
|
27
|
+
exports.getAssetActionAvailability = getAssetActionAvailability;
|
|
28
|
+
const getAssetContextMenuItems = ({ relativePath, fileManagerName, copyFileName, copyStaticFilePath, copyAbsolutePath, openAssetInConvert, openAssetInExplorer, renameAsset, deleteAsset, fileExplorerAvailable, fileExplorerDisabled, mutationsDisabled, }) => {
|
|
29
|
+
const previewFileType = (0, get_preview_file_type_1.getPreviewFileType)(relativePath);
|
|
30
|
+
const canOpenInConvert = previewFileType === 'audio' || previewFileType === 'video';
|
|
31
|
+
const items = [
|
|
32
|
+
(0, open_in_new_window_1.getOpenInNewWindowMenuItem)(`/assets/${relativePath}`),
|
|
33
|
+
canOpenInConvert
|
|
34
|
+
? {
|
|
35
|
+
id: 'open-asset-in-convert',
|
|
36
|
+
keyHint: null,
|
|
37
|
+
label: 'Open in Remotion Convert',
|
|
38
|
+
leftItem: null,
|
|
39
|
+
onClick: openAssetInConvert,
|
|
40
|
+
quickSwitcherLabel: 'Open asset in Remotion Convert',
|
|
41
|
+
subMenu: null,
|
|
42
|
+
type: 'item',
|
|
43
|
+
value: 'open-asset-in-convert',
|
|
44
|
+
}
|
|
45
|
+
: null,
|
|
46
|
+
{
|
|
47
|
+
type: 'divider',
|
|
48
|
+
id: 'open-in-new-window-divider',
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
id: 'copy-asset-file-name',
|
|
52
|
+
keyHint: null,
|
|
53
|
+
label: 'Copy file name',
|
|
54
|
+
leftItem: null,
|
|
55
|
+
onClick: copyFileName,
|
|
56
|
+
quickSwitcherLabel: 'Copy asset file name',
|
|
57
|
+
subMenu: null,
|
|
58
|
+
type: 'item',
|
|
59
|
+
value: 'copy-asset-file-name',
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
id: 'copy-asset-static-file-path',
|
|
63
|
+
keyHint: null,
|
|
64
|
+
label: 'Copy staticFile() path',
|
|
65
|
+
leftItem: null,
|
|
66
|
+
onClick: copyStaticFilePath,
|
|
67
|
+
quickSwitcherLabel: 'Copy staticFile() path',
|
|
68
|
+
subMenu: null,
|
|
69
|
+
type: 'item',
|
|
70
|
+
value: 'copy-asset-static-file-path',
|
|
71
|
+
},
|
|
72
|
+
copyAbsolutePath
|
|
73
|
+
? {
|
|
74
|
+
id: 'copy-asset-absolute-path',
|
|
75
|
+
keyHint: null,
|
|
76
|
+
label: 'Copy absolute path',
|
|
77
|
+
leftItem: null,
|
|
78
|
+
onClick: copyAbsolutePath,
|
|
79
|
+
quickSwitcherLabel: 'Copy asset absolute path',
|
|
80
|
+
subMenu: null,
|
|
81
|
+
type: 'item',
|
|
82
|
+
value: 'copy-asset-absolute-path',
|
|
83
|
+
}
|
|
84
|
+
: null,
|
|
85
|
+
{
|
|
86
|
+
type: 'divider',
|
|
87
|
+
id: 'asset-file-actions-divider',
|
|
88
|
+
},
|
|
89
|
+
fileExplorerAvailable
|
|
90
|
+
? {
|
|
91
|
+
id: 'open-asset-in-explorer',
|
|
92
|
+
keyHint: null,
|
|
93
|
+
label: `Show in ${fileManagerName}`,
|
|
94
|
+
leftItem: null,
|
|
95
|
+
onClick: openAssetInExplorer,
|
|
96
|
+
quickSwitcherLabel: `Show asset in ${fileManagerName}`,
|
|
97
|
+
subMenu: null,
|
|
98
|
+
type: 'item',
|
|
99
|
+
value: 'open-asset-in-explorer',
|
|
100
|
+
disabled: fileExplorerDisabled,
|
|
101
|
+
}
|
|
102
|
+
: null,
|
|
103
|
+
{
|
|
104
|
+
id: 'rename-asset',
|
|
105
|
+
keyHint: null,
|
|
106
|
+
label: 'Rename...',
|
|
107
|
+
leftItem: null,
|
|
108
|
+
onClick: renameAsset,
|
|
109
|
+
quickSwitcherLabel: 'Rename asset...',
|
|
110
|
+
subMenu: null,
|
|
111
|
+
type: 'item',
|
|
112
|
+
value: 'rename-asset',
|
|
113
|
+
disabled: mutationsDisabled,
|
|
114
|
+
},
|
|
115
|
+
{
|
|
116
|
+
id: 'delete-asset',
|
|
117
|
+
keyHint: null,
|
|
118
|
+
label: 'Delete...',
|
|
119
|
+
leftItem: null,
|
|
120
|
+
onClick: deleteAsset,
|
|
121
|
+
quickSwitcherLabel: 'Delete asset...',
|
|
122
|
+
subMenu: null,
|
|
123
|
+
type: 'item',
|
|
124
|
+
value: 'delete-asset',
|
|
125
|
+
disabled: mutationsDisabled,
|
|
126
|
+
},
|
|
127
|
+
];
|
|
128
|
+
return items.filter(no_react_1.NoReactInternals.truthy);
|
|
129
|
+
};
|
|
130
|
+
exports.getAssetContextMenuItems = getAssetContextMenuItems;
|
|
131
|
+
const useAssetContextMenuItems = ({ relativePath, readOnlyStudio, }) => {
|
|
132
|
+
var _a;
|
|
133
|
+
const fileManagerName = (0, get_file_manager_name_1.getFileManagerName)(window.remotion_fileSystemPlatform);
|
|
134
|
+
const { setSelectedModal } = (0, react_1.useContext)(modals_1.SetSelectedModalContext);
|
|
135
|
+
const connectionStatus = (0, react_1.useContext)(client_id_1.StudioServerConnectionCtx)
|
|
136
|
+
.previewServerState.type;
|
|
137
|
+
const fileName = (_a = relativePath === null || relativePath === void 0 ? void 0 : relativePath.split('/').pop()) !== null && _a !== void 0 ? _a : null;
|
|
138
|
+
const copyFileName = (0, react_1.useCallback)(() => {
|
|
139
|
+
if (fileName === null) {
|
|
140
|
+
return;
|
|
141
|
+
}
|
|
142
|
+
(0, copy_text_1.copyText)(fileName)
|
|
143
|
+
.then(() => {
|
|
144
|
+
(0, NotificationCenter_1.showNotification)(`Copied '${fileName}' to clipboard`, 1000);
|
|
145
|
+
})
|
|
146
|
+
.catch((err) => {
|
|
147
|
+
(0, NotificationCenter_1.showNotification)(`Could not copy: ${err.message}`, 2000);
|
|
148
|
+
});
|
|
149
|
+
}, [fileName]);
|
|
150
|
+
const copyStaticFilePath = (0, react_1.useCallback)(() => {
|
|
151
|
+
if (relativePath === null) {
|
|
152
|
+
return;
|
|
153
|
+
}
|
|
154
|
+
const content = `staticFile("${relativePath}")`;
|
|
155
|
+
(0, copy_text_1.copyText)(content)
|
|
156
|
+
.then(() => {
|
|
157
|
+
(0, NotificationCenter_1.showNotification)(`Copied '${content}' to clipboard`, 1000);
|
|
158
|
+
})
|
|
159
|
+
.catch((err) => {
|
|
160
|
+
(0, NotificationCenter_1.showNotification)(`Could not copy: ${err.message}`, 2000);
|
|
161
|
+
});
|
|
162
|
+
}, [relativePath]);
|
|
163
|
+
const copyAbsolutePath = (0, react_1.useCallback)(() => {
|
|
164
|
+
if (relativePath === null || window.remotion_publicFolderExists === null) {
|
|
165
|
+
return;
|
|
166
|
+
}
|
|
167
|
+
const content = `${window.remotion_publicFolderExists}/${relativePath}`;
|
|
168
|
+
(0, copy_text_1.copyText)(content)
|
|
169
|
+
.then(() => {
|
|
170
|
+
(0, NotificationCenter_1.showNotification)(`Copied '${content}' to clipboard`, 1000);
|
|
171
|
+
})
|
|
172
|
+
.catch((err) => {
|
|
173
|
+
(0, NotificationCenter_1.showNotification)(`Could not copy: ${err.message}`, 2000);
|
|
174
|
+
});
|
|
175
|
+
}, [relativePath]);
|
|
176
|
+
const openAssetInConvert = (0, react_1.useCallback)(() => {
|
|
177
|
+
if (relativePath === null) {
|
|
178
|
+
return;
|
|
179
|
+
}
|
|
180
|
+
(0, open_in_remotion_convert_1.openInRemotionConvert)({ relativePath });
|
|
181
|
+
}, [relativePath]);
|
|
182
|
+
const openAssetInExplorer = (0, react_1.useCallback)(() => {
|
|
183
|
+
if (relativePath === null || !window.remotion_publicFolderExists) {
|
|
184
|
+
(0, NotificationCenter_1.showNotification)('Could not find the public folder', 2000);
|
|
185
|
+
return;
|
|
186
|
+
}
|
|
187
|
+
(0, actions_1.openInFileExplorer)({
|
|
188
|
+
directory: window.remotion_publicFolderExists + '/' + relativePath,
|
|
189
|
+
}).catch((err) => {
|
|
190
|
+
(0, NotificationCenter_1.showNotification)(`Could not open file: ${err.message}`, 2000);
|
|
191
|
+
});
|
|
192
|
+
}, [relativePath]);
|
|
193
|
+
const { mutationsDisabled, fileExplorerDisabled } = (0, exports.getAssetActionAvailability)({
|
|
194
|
+
browserStudioCanMutateAssets: (0, browser_studio_operations_1.getBrowserStudioOperations)() === null ? null : true,
|
|
195
|
+
readOnlyStudio,
|
|
196
|
+
connectionStatus,
|
|
197
|
+
publicFolderExists: window.remotion_publicFolderExists,
|
|
198
|
+
});
|
|
199
|
+
const deleteAsset = (0, use_delete_asset_1.useDeleteAsset)(relativePath);
|
|
200
|
+
const renameAsset = (0, react_1.useCallback)(() => {
|
|
201
|
+
if (relativePath === null) {
|
|
202
|
+
return;
|
|
203
|
+
}
|
|
204
|
+
setSelectedModal({
|
|
205
|
+
type: 'rename-static-file',
|
|
206
|
+
relativePath,
|
|
207
|
+
});
|
|
208
|
+
}, [relativePath, setSelectedModal]);
|
|
209
|
+
const getContextMenuItems = (0, react_1.useCallback)(() => {
|
|
210
|
+
if (relativePath === null) {
|
|
211
|
+
return [];
|
|
212
|
+
}
|
|
213
|
+
return (0, exports.getAssetContextMenuItems)({
|
|
214
|
+
relativePath,
|
|
215
|
+
fileManagerName,
|
|
216
|
+
copyFileName,
|
|
217
|
+
copyStaticFilePath,
|
|
218
|
+
copyAbsolutePath: window.remotion_publicFolderExists === null ? null : copyAbsolutePath,
|
|
219
|
+
openAssetInConvert,
|
|
220
|
+
openAssetInExplorer,
|
|
221
|
+
renameAsset,
|
|
222
|
+
deleteAsset,
|
|
223
|
+
fileExplorerAvailable: (0, browser_studio_operations_1.getBrowserStudioOperations)() === null,
|
|
224
|
+
fileExplorerDisabled,
|
|
225
|
+
mutationsDisabled,
|
|
226
|
+
});
|
|
227
|
+
}, [
|
|
228
|
+
copyFileName,
|
|
229
|
+
copyStaticFilePath,
|
|
230
|
+
copyAbsolutePath,
|
|
231
|
+
deleteAsset,
|
|
232
|
+
fileExplorerDisabled,
|
|
233
|
+
fileManagerName,
|
|
234
|
+
mutationsDisabled,
|
|
235
|
+
openAssetInConvert,
|
|
236
|
+
openAssetInExplorer,
|
|
237
|
+
renameAsset,
|
|
238
|
+
relativePath,
|
|
239
|
+
]);
|
|
240
|
+
return { fileExplorerDisabled, fileManagerName, getContextMenuItems };
|
|
241
|
+
};
|
|
242
|
+
exports.useAssetContextMenuItems = useAssetContextMenuItems;
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import type { PreviewSize } from 'remotion';
|
|
2
|
+
import type { Guide } from '../state/editor-guides';
|
|
2
3
|
import { type InsertElementDropPosition } from './import-assets';
|
|
4
|
+
import { type SelectedOutlineSnapPoint } from './selected-outline-snap';
|
|
3
5
|
type Dimensions = {
|
|
4
6
|
readonly width: number;
|
|
5
7
|
readonly height: number;
|
|
@@ -11,6 +13,7 @@ type CanvasSize = {
|
|
|
11
13
|
export type CompositionDropPreview = {
|
|
12
14
|
readonly compositionDimensions: Dimensions;
|
|
13
15
|
readonly dropPosition: InsertElementDropPosition;
|
|
16
|
+
readonly snapPoints: readonly SelectedOutlineSnapPoint[];
|
|
14
17
|
};
|
|
15
18
|
export type CompositionDropPreviewBox = {
|
|
16
19
|
readonly left: number;
|
|
@@ -18,12 +21,16 @@ export type CompositionDropPreviewBox = {
|
|
|
18
21
|
readonly width: number;
|
|
19
22
|
readonly height: number;
|
|
20
23
|
};
|
|
21
|
-
export declare const snapCompositionDropPosition: ({ compositionDimensions, destinationDimensions, dropPosition, scale, }: {
|
|
24
|
+
export declare const snapCompositionDropPosition: ({ compositionDimensions, destinationDimensions, dropPosition, guides, scale, }: {
|
|
22
25
|
readonly compositionDimensions: Dimensions;
|
|
23
26
|
readonly destinationDimensions: Dimensions;
|
|
24
27
|
readonly dropPosition: InsertElementDropPosition;
|
|
28
|
+
readonly guides: readonly Guide[];
|
|
25
29
|
readonly scale: number;
|
|
26
|
-
}) =>
|
|
30
|
+
}) => {
|
|
31
|
+
readonly dropPosition: InsertElementDropPosition;
|
|
32
|
+
readonly snapPoints: readonly SelectedOutlineSnapPoint[];
|
|
33
|
+
};
|
|
27
34
|
export declare const getCompositionDropPreviewBox: ({ canvasSize, destinationDimensions, preview, previewSize, }: {
|
|
28
35
|
readonly canvasSize: CanvasSize;
|
|
29
36
|
readonly destinationDimensions: Dimensions;
|
|
@@ -4,7 +4,7 @@ exports.getCompositionDropPreviewBox = exports.snapCompositionDropPosition = voi
|
|
|
4
4
|
const studio_fit_padding_1 = require("../helpers/studio-fit-padding");
|
|
5
5
|
const import_assets_1 = require("./import-assets");
|
|
6
6
|
const selected_outline_snap_1 = require("./selected-outline-snap");
|
|
7
|
-
const snapCompositionDropPosition = ({ compositionDimensions, destinationDimensions, dropPosition, scale, }) => {
|
|
7
|
+
const snapCompositionDropPosition = ({ compositionDimensions, destinationDimensions, dropPosition, guides, scale, }) => {
|
|
8
8
|
var _a, _b;
|
|
9
9
|
const left = dropPosition.centerX - compositionDimensions.width / 2;
|
|
10
10
|
const top = dropPosition.centerY - compositionDimensions.height / 2;
|
|
@@ -31,12 +31,15 @@ const snapCompositionDropPosition = ({ compositionDimensions, destinationDimensi
|
|
|
31
31
|
targets: (0, selected_outline_snap_1.getSelectedOutlineSnapTargets)({
|
|
32
32
|
compositionHeight: destinationDimensions.height,
|
|
33
33
|
compositionWidth: destinationDimensions.width,
|
|
34
|
-
guides
|
|
34
|
+
guides,
|
|
35
35
|
}),
|
|
36
36
|
});
|
|
37
37
|
return {
|
|
38
|
-
|
|
39
|
-
|
|
38
|
+
dropPosition: {
|
|
39
|
+
centerX: dropPosition.centerX + ((_a = snap.snapOffsetX) !== null && _a !== void 0 ? _a : 0),
|
|
40
|
+
centerY: dropPosition.centerY + ((_b = snap.snapOffsetY) !== null && _b !== void 0 ? _b : 0),
|
|
41
|
+
},
|
|
42
|
+
snapPoints: snap.activeSnapPoints,
|
|
40
43
|
};
|
|
41
44
|
};
|
|
42
45
|
exports.snapCompositionDropPosition = snapCompositionDropPosition;
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import type { EditorPickerId } from '@remotion/studio-shared';
|
|
2
1
|
import type { SetStateAction } from 'react';
|
|
3
2
|
import type { ResolvedStackLocation } from 'remotion';
|
|
4
3
|
import type { ModalState } from '../state/modals';
|
|
5
4
|
import type { ComboboxValue } from './NewComposition/ComboBox';
|
|
6
|
-
|
|
5
|
+
import type { OpenInMenuApps } from './use-open-in-menu-apps';
|
|
6
|
+
export declare const getCompositionMenuItems: ({ composition, connectionStatus, resolvedLocation, setSelectedModal, closeMenu, readOnlyStudio, includeCompositionManagementItems, openInApps, }: {
|
|
7
7
|
composition: import("remotion").AnyComposition | null;
|
|
8
8
|
connectionStatus: "connected" | "disconnected" | "init";
|
|
9
9
|
resolvedLocation: ResolvedStackLocation | null;
|
|
@@ -11,8 +11,7 @@ export declare const getCompositionMenuItems: ({ composition, connectionStatus,
|
|
|
11
11
|
closeMenu: () => void;
|
|
12
12
|
readOnlyStudio: boolean;
|
|
13
13
|
includeCompositionManagementItems: boolean;
|
|
14
|
-
|
|
15
|
-
editorName: string | null;
|
|
14
|
+
openInApps: OpenInMenuApps;
|
|
16
15
|
}) => ComboboxValue[];
|
|
17
16
|
export declare const getCompositionContextMenuItems: (args: Omit<{
|
|
18
17
|
composition: import("remotion").AnyComposition | null;
|
|
@@ -22,8 +21,7 @@ export declare const getCompositionContextMenuItems: (args: Omit<{
|
|
|
22
21
|
closeMenu: () => void;
|
|
23
22
|
readOnlyStudio: boolean;
|
|
24
23
|
includeCompositionManagementItems: boolean;
|
|
25
|
-
|
|
26
|
-
editorName: string | null;
|
|
24
|
+
openInApps: OpenInMenuApps;
|
|
27
25
|
}, "includeCompositionManagementItems"> & {
|
|
28
26
|
readonly includeCompositionManagementItems: boolean;
|
|
29
27
|
}) => ComboboxValue[];
|