@remotion/studio 4.0.524 → 4.0.526
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/ActionTooltip.d.ts +2 -0
- package/dist/components/ActionTooltip.js +14 -4
- package/dist/components/AgentPrompt.d.ts +6 -0
- package/dist/components/AgentPrompt.js +107 -0
- package/dist/components/AppLaunchButton.js +2 -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/AssetSelectorModal.d.ts +6 -0
- package/dist/components/AssetSelectorModal.js +174 -0
- package/dist/components/Canvas.js +21 -4
- package/dist/components/CaptionInspector.js +9 -3
- package/dist/components/CheckboardToggle.js +2 -1
- package/dist/{error-overlay/remotion-overlay → components}/CodeFrame.d.ts +2 -0
- package/dist/components/CodeFrame.js +77 -0
- package/dist/components/ColorPicker/AlphaSlider.js +1 -1
- package/dist/components/ColorPicker/HueSlider.js +1 -1
- package/dist/components/ColorPicker/SaturationValueArea.js +1 -1
- package/dist/components/CompositionSelector.js +1 -0
- package/dist/components/CompositionSelectorItem.js +7 -17
- package/dist/components/CurrentAsset.js +5 -4
- package/dist/components/EditorGuides/Guide.js +1 -1
- package/dist/components/ElementInstallConfirmation.js +100 -61
- package/dist/components/FilePreview.js +4 -0
- package/dist/components/FixComputedValueModal.js +64 -96
- package/dist/components/FullscreenToggle.js +1 -1
- package/dist/components/GenerateWithAgentModal.d.ts +9 -0
- package/dist/components/GenerateWithAgentModal.js +39 -0
- package/dist/components/GlobalKeybindings.js +14 -0
- package/dist/components/InlineEditableTitle.js +2 -0
- package/dist/components/InspectorLocationCopy.js +1 -1
- package/dist/components/InspectorOpenInEditor.d.ts +1 -0
- package/dist/components/InspectorOpenInEditor.js +25 -18
- 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 +19 -8
- package/dist/components/InspectorPanel/CompositionInspector.js +30 -13
- package/dist/components/InspectorPanel/CompositionInspectorHeader.js +6 -7
- package/dist/components/InspectorPanel/CompositionMetadata.js +4 -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 +2 -1
- package/dist/components/InspectorPanel/SequenceInspectorHeader.js +4 -12
- package/dist/components/InspectorPanel/SequenceSelectionInspector.js +4 -3
- package/dist/components/InspectorPanel/common.d.ts +4 -0
- package/dist/components/InspectorPanel/common.js +14 -2
- package/dist/components/InspectorPanel/styles.d.ts +0 -3
- package/dist/components/InspectorPanel/styles.js +1 -27
- package/dist/components/InspectorPanel/use-composition-actions.d.ts +2 -0
- package/dist/components/InspectorPanel/use-composition-actions.js +15 -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 +61 -43
- package/dist/components/InspectorSourceLocation.js +1 -0
- package/dist/components/KeyboardShortcutsSettings.js +12 -4
- package/dist/components/LoopToggle.js +2 -1
- package/dist/components/LutPreview.d.ts +4 -0
- package/dist/components/LutPreview.js +192 -0
- package/dist/components/Menu/MenuItem.js +1 -2
- package/dist/components/MenuBuildIndicator.js +1 -1
- package/dist/components/MenuCompositionName.js +4 -9
- package/dist/components/Modals.js +4 -6
- package/dist/components/ModelsSettings.js +15 -4
- package/dist/components/MuteToggle.js +2 -1
- package/dist/components/NewComposition/CodemodFooter.js +1 -0
- package/dist/components/NewComposition/DeleteComposition.js +42 -6
- package/dist/components/NewComposition/DeleteFolder.js +1 -0
- package/dist/components/NewComposition/DuplicateComposition.js +5 -0
- package/dist/components/NewComposition/InputDragger.js +2 -2
- package/dist/components/NewComposition/NewFolder.js +29 -2
- package/dist/components/NewComposition/RenameFolder.js +1 -0
- package/dist/components/NewComposition/duplicate-composition-api.d.ts +3 -2
- package/dist/components/NewComposition/duplicate-composition-api.js +9 -2
- package/dist/components/OutlineToggle.js +2 -1
- package/dist/components/PlayPause.js +1 -1
- package/dist/components/Preview.js +0 -3
- package/dist/components/PreviewToolbar.js +3 -6
- package/dist/components/PreviewToolbarOverflowButton.js +2 -1
- package/dist/components/QuickSwitcher/QuickSwitcherContent.js +1 -1
- package/dist/components/QuickSwitcher/QuickSwitcherResult.js +4 -9
- package/dist/components/RenderButton.js +40 -4
- 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/RenderModal/WebRenderModalBasic.js +1 -1
- package/dist/components/RenderModal/render-modals.js +3 -0
- package/dist/components/RenderQueue/RenderQueueCopyToClipboard.js +1 -1
- package/dist/components/RenderQueue/RenderQueueItemCancelButton.js +1 -1
- package/dist/components/RenderQueue/actions.d.ts +2 -1
- package/dist/components/RenderQueue/actions.js +2 -1
- package/dist/components/RendersTab.js +2 -0
- package/dist/components/RulersAndGuidesToggle.js +2 -1
- package/dist/components/SegmentedButton.d.ts +1 -0
- package/dist/components/SegmentedButton.js +9 -3
- package/dist/components/SelectedOutlineElement.js +22 -6
- package/dist/components/SelectedOutlinePolygon.js +4 -2
- package/dist/components/SettingsButton.js +11 -2
- package/dist/components/SettingsContext.d.ts +8 -0
- package/dist/components/SettingsContext.js +57 -2
- package/dist/components/SettingsModal.d.ts +1 -2
- package/dist/components/SettingsModal.js +27 -6
- package/dist/components/SettingsModalFooter.js +17 -3
- package/dist/components/SidebarCollapserControls.js +1 -1
- package/dist/components/SkillsSettings.d.ts +5 -0
- package/dist/components/SkillsSettings.js +49 -15
- package/dist/components/SnappingToggle.js +2 -1
- package/dist/components/Splitter/SplitterHandle.js +1 -2
- package/dist/components/Tabs/vertical.d.ts +1 -1
- package/dist/components/Tabs/vertical.js +16 -2
- package/dist/components/Timeline/EasingEditorModal.js +2 -2
- package/dist/components/Timeline/Timeline.js +10 -11
- package/dist/components/Timeline/TimelineAssetField.js +178 -9
- package/dist/components/Timeline/TimelineDragHandler.js +1 -2
- package/dist/components/Timeline/TimelineEffectItem.d.ts +1 -0
- package/dist/components/Timeline/TimelineEffectItem.js +2 -2
- package/dist/components/Timeline/TimelineEffectPropItem.d.ts +1 -0
- package/dist/components/Timeline/TimelineEffectPropItem.js +2 -2
- package/dist/components/Timeline/TimelineExpandedRow.js +2 -2
- package/dist/components/Timeline/TimelineHeightContainer.js +11 -1
- package/dist/components/Timeline/TimelineInOutDragHandler.js +1 -2
- package/dist/components/Timeline/TimelineKeyframeControls.js +15 -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 +10 -7
- package/dist/components/Timeline/TimelineSelection.d.ts +17 -4
- package/dist/components/Timeline/TimelineSelection.js +121 -52
- package/dist/components/Timeline/TimelineSequence.js +8 -8
- package/dist/components/Timeline/TimelineSequenceItem.d.ts +2 -0
- package/dist/components/Timeline/TimelineSequenceItem.js +29 -23
- package/dist/components/Timeline/TimelineSequenceRightEdgeDragHandle.js +3 -12
- package/dist/components/Timeline/TimelineTranslateField.js +25 -12
- package/dist/components/Timeline/TimelineVirtualization.d.ts +3 -3
- package/dist/components/Timeline/TimelineZoomControls.js +1 -1
- package/dist/components/Timeline/get-sequence-context-menu-items.d.ts +3 -1
- package/dist/components/Timeline/get-sequence-context-menu-items.js +152 -51
- 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/timeline-display-groups.d.ts +9 -0
- package/dist/components/Timeline/timeline-display-groups.js +66 -0
- package/dist/components/Timeline/timeline-field-display-utils.js +4 -2
- package/dist/components/Timeline/timeline-translate-utils.d.ts +17 -0
- package/dist/components/Timeline/timeline-translate-utils.js +53 -12
- package/dist/components/Timeline/use-open-sequence-in-apps.d.ts +2 -0
- package/dist/components/Timeline/use-open-sequence-in-apps.js +17 -0
- package/dist/components/Timeline/use-timeline-asset-drop.js +20 -6
- 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/Timeline/use-timeline-keyframe-drag.js +4 -4
- package/dist/components/TimelineCombobox.js +1 -0
- package/dist/components/UndoRedoButtons.js +11 -0
- 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 +40 -41
- package/dist/components/asset-context-menu.d.ts +32 -0
- package/dist/components/asset-context-menu.js +242 -0
- package/dist/components/composition-menu-items.d.ts +4 -6
- package/dist/components/composition-menu-items.js +212 -42
- package/dist/components/folder-menu-items.js +44 -0
- package/dist/components/get-open-in-menu-items.d.ts +6 -5
- package/dist/components/get-open-in-menu-items.js +16 -10
- package/dist/components/import-assets.d.ts +24 -1
- package/dist/components/import-assets.js +3 -1
- package/dist/components/keyboard-shortcuts.d.ts +4 -4
- package/dist/components/keyboard-shortcuts.js +5 -0
- 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/{LazyModels-hc33szyn.mjs → LazyModels-mtggyjye.mjs} +3 -3
- package/dist/esm/{LazyModels-sg40rjw6.mjs → LazyModels-nk7py0zt.mjs} +3 -3
- package/dist/esm/{TranscriptionModal-3ctnxpt6.mjs → TranscriptionModal-ymnx1c7m.mjs} +6 -6
- package/dist/esm/{VideoMattingModal-b0r7e60n.mjs → VideoMattingModal-05vpczks.mjs} +6 -6
- package/dist/esm/{index-er3mh6em.mjs → index-0gewwxse.mjs} +7031 -5834
- package/dist/esm/{index-q5xv20xx.mjs → index-4dsz9035.mjs} +8 -8
- package/dist/esm/{index-wbmp5srk.mjs → index-5bfxbpca.mjs} +1 -1
- package/dist/esm/{index-e3zwf3e7.mjs → index-5gd8k9yv.mjs} +1 -1
- package/dist/esm/{index-c37kme2v.mjs → index-bs39wngg.mjs} +4929 -3801
- package/dist/esm/{index-yfrysr5f.mjs → index-cdy8v54v.mjs} +17 -3
- package/dist/esm/{index-9qtvmwtx.mjs → index-eb5txqp6.mjs} +12 -9
- package/dist/esm/{index-q2epbw93.mjs → index-f97r9e2g.mjs} +4 -21
- package/dist/esm/{index-2j3d1g81.mjs → index-g7k2dvar.mjs} +1 -1
- package/dist/esm/{index-1b9skrrd.mjs → index-x40wwfmt.mjs} +3 -3
- package/dist/esm/index.mjs +12 -6
- package/dist/esm/internals.mjs +7 -7
- package/dist/esm/previewEntry.mjs +7 -7
- package/dist/helpers/client-id.d.ts +1 -0
- package/dist/helpers/client-id.js +8 -4
- package/dist/helpers/cube-lut.d.ts +12 -0
- package/dist/helpers/cube-lut.js +160 -0
- package/dist/helpers/get-git-menu-item.d.ts +4 -0
- package/dist/helpers/get-git-menu-item.js +8 -1
- package/dist/helpers/get-preview-file-type.d.ts +1 -1
- package/dist/helpers/get-preview-file-type.js +3 -0
- package/dist/helpers/get-sequence-double-click-action.d.ts +3 -3
- package/dist/helpers/get-sequence-double-click-action.js +2 -2
- package/dist/helpers/open-in-editor.d.ts +5 -2
- package/dist/helpers/open-in-editor.js +12 -4
- package/dist/helpers/pointer-session.d.ts +1 -0
- package/dist/helpers/pointer-session.js +10 -1
- 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-create-composition.js +5 -0
- package/dist/helpers/use-keybinding.d.ts +1 -1
- package/dist/helpers/use-keyboard-shortcut-label.d.ts +2 -2
- package/dist/helpers/use-media-metadata.js +5 -1
- package/dist/helpers/use-menu-structure.js +21 -13
- package/dist/helpers/use-rename-composition.js +6 -1
- 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 +25 -3
- package/dist/state/z-index.js +1 -3
- package/package.json +19 -19
- package/dist/error-overlay/remotion-overlay/CodeFrame.js +0 -62
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import type { EditorPickerId } from '@remotion/studio-shared';
|
|
2
2
|
import type { TSequence } from 'remotion';
|
|
3
3
|
export declare const useOpenSequenceInApps: (sequence: TSequence) => {
|
|
4
|
+
canOpenSource: boolean;
|
|
4
5
|
canOpenInEditor: boolean;
|
|
5
6
|
canConfigureApps: boolean;
|
|
6
7
|
codingAgentInfo: import("@remotion/studio-shared").GetDefaultCodingAgentInfoResponse | null;
|
|
7
8
|
editorInfo: import("@remotion/studio-shared").GetDefaultEditorInfoResponse | null;
|
|
8
9
|
openInCodingAgent: (codingAgentId: "claude-code" | "codex" | "copilot" | "cursor", codingAgentName: string, contextForAgents: string | null) => Promise<void>;
|
|
9
10
|
openInEditor: (editorId: EditorPickerId | null) => Promise<void>;
|
|
11
|
+
openSource: () => void;
|
|
10
12
|
originalLocation: import("remotion").ResolvedStackLocation | null;
|
|
11
13
|
};
|
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.useOpenSequenceInApps = void 0;
|
|
4
4
|
const react_1 = require("react");
|
|
5
5
|
const client_id_1 = require("../../helpers/client-id");
|
|
6
|
+
const get_git_menu_item_1 = require("../../helpers/get-git-menu-item");
|
|
6
7
|
const open_in_editor_1 = require("../../helpers/open-in-editor");
|
|
7
8
|
const NotificationCenter_1 = require("../Notifications/NotificationCenter");
|
|
8
9
|
const use_default_editor_info_1 = require("../use-default-editor-info");
|
|
@@ -16,6 +17,8 @@ const useOpenSequenceInApps = (sequence) => {
|
|
|
16
17
|
const { canConfigureApps, canOpenInEditor: editorAvailable, defaultEditorId, editorInfo, } = (0, use_default_editor_info_1.useEditorOpening)(previewConnected);
|
|
17
18
|
const codingAgentInfo = (0, use_default_editor_info_1.useDefaultCodingAgentInfo)(canConfigureApps);
|
|
18
19
|
const canOpenInEditor = (0, react_1.useMemo)(() => Boolean(editorAvailable && originalLocation), [editorAvailable, originalLocation]);
|
|
20
|
+
const defaultOpenInTarget = (0, get_git_menu_item_1.getDefaultOpenInTarget)({ canOpenInEditor });
|
|
21
|
+
const canOpenSource = defaultOpenInTarget !== null && originalLocation !== null;
|
|
19
22
|
const openInEditor = (0, react_1.useCallback)(async (editorId) => {
|
|
20
23
|
const resolvedEditorId = editorId !== null && editorId !== void 0 ? editorId : defaultEditorId;
|
|
21
24
|
if (!canOpenInEditor || !originalLocation || !resolvedEditorId) {
|
|
@@ -28,6 +31,18 @@ const useOpenSequenceInApps = (sequence) => {
|
|
|
28
31
|
(0, NotificationCenter_1.showNotification)(err.message, 2000);
|
|
29
32
|
}
|
|
30
33
|
}, [canOpenInEditor, defaultEditorId, originalLocation]);
|
|
34
|
+
const openSource = (0, react_1.useCallback)(() => {
|
|
35
|
+
if (!originalLocation) {
|
|
36
|
+
return;
|
|
37
|
+
}
|
|
38
|
+
if (defaultOpenInTarget === 'editor') {
|
|
39
|
+
openInEditor(null);
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
if (defaultOpenInTarget === 'git-source') {
|
|
43
|
+
(0, get_git_menu_item_1.openGitSource)({ folder: false, location: originalLocation });
|
|
44
|
+
}
|
|
45
|
+
}, [defaultOpenInTarget, openInEditor, originalLocation]);
|
|
31
46
|
const openInCodingAgent = (0, react_1.useCallback)(async (codingAgentId, codingAgentName, contextForAgents) => {
|
|
32
47
|
try {
|
|
33
48
|
const response = await (0, open_in_editor_1.openInCodingAgent)(codingAgentId, contextForAgents);
|
|
@@ -40,12 +55,14 @@ const useOpenSequenceInApps = (sequence) => {
|
|
|
40
55
|
}
|
|
41
56
|
}, []);
|
|
42
57
|
return {
|
|
58
|
+
canOpenSource,
|
|
43
59
|
canOpenInEditor,
|
|
44
60
|
canConfigureApps,
|
|
45
61
|
codingAgentInfo,
|
|
46
62
|
editorInfo,
|
|
47
63
|
openInCodingAgent,
|
|
48
64
|
openInEditor,
|
|
65
|
+
openSource,
|
|
49
66
|
originalLocation,
|
|
50
67
|
};
|
|
51
68
|
};
|
|
@@ -10,6 +10,7 @@ const modals_1 = require("../../state/modals");
|
|
|
10
10
|
const canvas_capture_drop_1 = require("../canvas-capture-drop");
|
|
11
11
|
const drop_handler_data_1 = require("../drop-handler-data");
|
|
12
12
|
const effect_drag_and_drop_1 = require("../effect-drag-and-drop");
|
|
13
|
+
const element_drag_and_drop_1 = require("../element-drag-and-drop");
|
|
13
14
|
const handle_drop_1 = require("../handle-drop");
|
|
14
15
|
const NotificationCenter_1 = require("../Notifications/NotificationCenter");
|
|
15
16
|
const SvgImportDialog_1 = require("../SvgImportDialog");
|
|
@@ -41,13 +42,13 @@ const useTimelineAssetDrop = () => {
|
|
|
41
42
|
compositionId: currentCompositionId,
|
|
42
43
|
});
|
|
43
44
|
const previewInteractive = previewServerState.type === 'connected' && (0, interactivity_enabled_1.isStudioInteractivityEnabled)();
|
|
44
|
-
const
|
|
45
|
+
const canReceiveElementDrop = previewInteractive &&
|
|
45
46
|
!window.remotion_isReadOnlyStudio &&
|
|
46
|
-
(compositionComponentInfo === null || compositionComponentInfo === void 0 ? void 0 : compositionComponentInfo.canAddSequence) === true &&
|
|
47
47
|
currentCompositionId !== null &&
|
|
48
48
|
compositionFile !== null &&
|
|
49
49
|
videoConfig !== null &&
|
|
50
50
|
!isAddingAsset;
|
|
51
|
+
const canInsertAsset = canReceiveElementDrop && (compositionComponentInfo === null || compositionComponentInfo === void 0 ? void 0 : compositionComponentInfo.canAddSequence) === true;
|
|
51
52
|
const getDropFrame = (0, react_1.useCallback)((event) => {
|
|
52
53
|
if (videoConfig === null) {
|
|
53
54
|
return null;
|
|
@@ -74,15 +75,24 @@ const useTimelineAssetDrop = () => {
|
|
|
74
75
|
setAssetDropFrame(null);
|
|
75
76
|
return;
|
|
76
77
|
}
|
|
78
|
+
const canDropElementIntoNewComposition = (compositionComponentInfo === null || compositionComponentInfo === void 0 ? void 0 : compositionComponentInfo.canAddSequence) === false &&
|
|
79
|
+
canReceiveElementDrop &&
|
|
80
|
+
(0, element_drag_and_drop_1.hasElementDragType)(dataTransfer);
|
|
77
81
|
event.preventDefault();
|
|
78
82
|
event.stopPropagation();
|
|
79
|
-
dataTransfer.dropEffect =
|
|
83
|
+
dataTransfer.dropEffect =
|
|
84
|
+
canInsertAsset || canDropElementIntoNewComposition ? 'copy' : 'none';
|
|
80
85
|
const scrollable = timeline_refs_1.scrollableRef.current;
|
|
81
86
|
const shouldShowDropFrame = canInsertAsset &&
|
|
82
87
|
scrollable !== null &&
|
|
83
88
|
isEventTargetInsideElement(event, scrollable);
|
|
84
89
|
setAssetDropFrame(shouldShowDropFrame ? getDropFrame(event) : null);
|
|
85
|
-
}, [
|
|
90
|
+
}, [
|
|
91
|
+
canInsertAsset,
|
|
92
|
+
canReceiveElementDrop,
|
|
93
|
+
compositionComponentInfo === null || compositionComponentInfo === void 0 ? void 0 : compositionComponentInfo.canAddSequence,
|
|
94
|
+
getDropFrame,
|
|
95
|
+
]);
|
|
86
96
|
const onAssetDrop = (0, react_1.useCallback)(async (event) => {
|
|
87
97
|
setAssetDropFrame(null);
|
|
88
98
|
const timeline = timeline_refs_1.timelineVerticalScroll.current;
|
|
@@ -118,12 +128,15 @@ const useTimelineAssetDrop = () => {
|
|
|
118
128
|
}
|
|
119
129
|
event.preventDefault();
|
|
120
130
|
event.stopPropagation();
|
|
121
|
-
|
|
131
|
+
const canDropElementIntoNewComposition = (compositionComponentInfo === null || compositionComponentInfo === void 0 ? void 0 : compositionComponentInfo.canAddSequence) === false &&
|
|
132
|
+
canReceiveElementDrop &&
|
|
133
|
+
(0, element_drag_and_drop_1.getElementDragData)(dataTransfer) !== null;
|
|
134
|
+
if ((!canInsertAsset && !canDropElementIntoNewComposition) ||
|
|
122
135
|
currentCompositionId === null ||
|
|
123
136
|
compositionFile === null ||
|
|
124
137
|
videoConfig === null) {
|
|
125
138
|
if ((compositionComponentInfo === null || compositionComponentInfo === void 0 ? void 0 : compositionComponentInfo.canAddSequence) === false) {
|
|
126
|
-
(0, NotificationCenter_1.showNotification)('Cannot insert
|
|
139
|
+
(0, NotificationCenter_1.showNotification)('Cannot insert this item: This composition component cannot accept a new <Sequence>.', 3000);
|
|
127
140
|
}
|
|
128
141
|
return;
|
|
129
142
|
}
|
|
@@ -157,6 +170,7 @@ const useTimelineAssetDrop = () => {
|
|
|
157
170
|
}
|
|
158
171
|
}, [
|
|
159
172
|
canInsertAsset,
|
|
173
|
+
canReceiveElementDrop,
|
|
160
174
|
chooseSvgImportMode,
|
|
161
175
|
compositionComponentInfo === null || compositionComponentInfo === void 0 ? void 0 : compositionComponentInfo.canAddSequence,
|
|
162
176
|
compositionFile,
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { type TSequence } from 'remotion';
|
|
2
2
|
import type { SequenceNodePathInfo } from '../../helpers/get-timeline-sequence-sort-key';
|
|
3
|
-
export declare const useTimelineSequenceHasExpandableContent: ({ sequence, nodePathInfo, }: {
|
|
3
|
+
export declare const useTimelineSequenceHasExpandableContent: ({ sequence, nodePathInfo, selectedItems, }: {
|
|
4
4
|
readonly sequence: TSequence;
|
|
5
5
|
readonly nodePathInfo: SequenceNodePathInfo;
|
|
6
|
+
readonly selectedItems: readonly import("@remotion/canvas").CanvasSelectionItem[];
|
|
6
7
|
}) => boolean;
|
|
7
8
|
export declare const useTimelineExpandedTree: ({ sequence, nodePathInfo, includeTextContent, includeSourceControls, }: {
|
|
8
9
|
readonly sequence: TSequence;
|
|
@@ -9,10 +9,9 @@ const ExpandedTracksProvider_1 = require("../ExpandedTracksProvider");
|
|
|
9
9
|
const get_node_keyframes_1 = require("./get-node-keyframes");
|
|
10
10
|
const timeline_expanded_filter_1 = require("./timeline-expanded-filter");
|
|
11
11
|
const TimelineSelection_1 = require("./TimelineSelection");
|
|
12
|
-
const useTimelineSequenceHasExpandableContent = ({ sequence, nodePathInfo, }) => {
|
|
12
|
+
const useTimelineSequenceHasExpandableContent = ({ sequence, nodePathInfo, selectedItems, }) => {
|
|
13
13
|
const { propStatuses: visualModePropStatuses } = (0, react_1.useContext)(remotion_1.Internals.VisualModePropStatusesContext);
|
|
14
14
|
const { getDragOverrides, getEffectDragOverrides } = (0, react_1.useContext)(remotion_1.Internals.VisualModeDragOverridesContext);
|
|
15
|
-
const { selectedItems } = (0, TimelineSelection_1.useTimelineSelection)();
|
|
16
15
|
const selectedRowKeys = (0, react_1.useMemo)(() => (0, timeline_expanded_filter_1.getSelectedTimelineExpandedRowKeys)(selectedItems), [selectedItems]);
|
|
17
16
|
const selectHasExpandableContent = (0, react_1.useCallback)((runtimeValues) => {
|
|
18
17
|
const tree = (0, timeline_layout_1.buildTimelineTree)({
|
|
@@ -450,8 +450,8 @@ const useTimelineKeyframeDrag = ({ frame, nodePathInfo, onSelect, selectable, se
|
|
|
450
450
|
event: e,
|
|
451
451
|
captureTarget: e.currentTarget,
|
|
452
452
|
onMove: onPointerMove,
|
|
453
|
-
onEnd: (reason) => {
|
|
454
|
-
if (
|
|
453
|
+
onEnd: (reason, endEvent) => {
|
|
454
|
+
if ((0, pointer_session_1.isPointerSessionRelease)(reason, endEvent)) {
|
|
455
455
|
onPointerUp();
|
|
456
456
|
}
|
|
457
457
|
else {
|
|
@@ -657,8 +657,8 @@ const useTimelineEasingKeyframeDrag = ({ onSelect, selectable, selected, selecti
|
|
|
657
657
|
event: e,
|
|
658
658
|
captureTarget: e.currentTarget,
|
|
659
659
|
onMove: onPointerMove,
|
|
660
|
-
onEnd: (reason) => {
|
|
661
|
-
if (
|
|
660
|
+
onEnd: (reason, endEvent) => {
|
|
661
|
+
if ((0, pointer_session_1.isPointerSessionRelease)(reason, endEvent)) {
|
|
662
662
|
onPointerUp();
|
|
663
663
|
}
|
|
664
664
|
else {
|
|
@@ -6,6 +6,7 @@ const react_1 = require("react");
|
|
|
6
6
|
const browser_studio_operations_1 = require("../helpers/browser-studio-operations");
|
|
7
7
|
const client_id_1 = require("../helpers/client-id");
|
|
8
8
|
const colors_1 = require("../helpers/colors");
|
|
9
|
+
const url_state_1 = require("../helpers/url-state");
|
|
9
10
|
const use_keybinding_1 = require("../helpers/use-keybinding");
|
|
10
11
|
const use_keyboard_shortcut_label_1 = require("../helpers/use-keyboard-shortcut-label");
|
|
11
12
|
const redo_1 = require("../icons/redo");
|
|
@@ -43,6 +44,11 @@ const UndoRedoButtons = () => {
|
|
|
43
44
|
? browserStudioOperations.undo()
|
|
44
45
|
: (0, call_api_1.callApi)('/api/undo', {});
|
|
45
46
|
promise
|
|
47
|
+
.then((response) => {
|
|
48
|
+
if (response.success && response.route !== null) {
|
|
49
|
+
(0, url_state_1.pushUrl)(response.route);
|
|
50
|
+
}
|
|
51
|
+
})
|
|
46
52
|
.catch(() => {
|
|
47
53
|
// Ignore errors
|
|
48
54
|
})
|
|
@@ -60,6 +66,11 @@ const UndoRedoButtons = () => {
|
|
|
60
66
|
? browserStudioOperations.redo()
|
|
61
67
|
: (0, call_api_1.callApi)('/api/redo', {});
|
|
62
68
|
promise
|
|
69
|
+
.then((response) => {
|
|
70
|
+
if (response.success && response.route !== null) {
|
|
71
|
+
(0, url_state_1.pushUrl)(response.route);
|
|
72
|
+
}
|
|
73
|
+
})
|
|
63
74
|
.catch(() => {
|
|
64
75
|
// Ignore errors
|
|
65
76
|
})
|
|
@@ -6,12 +6,12 @@ export type Bug = {
|
|
|
6
6
|
link: string;
|
|
7
7
|
versions: string[];
|
|
8
8
|
};
|
|
9
|
-
type UpgradeState = 'idle' | 'upgrading' | 'upgraded' | '
|
|
9
|
+
type UpgradeState = 'idle' | 'upgrading' | 'upgraded' | 'restarting';
|
|
10
10
|
type UpdateStatusContextValue = {
|
|
11
11
|
readonly upgradeState: UpgradeState;
|
|
12
12
|
readonly upgradeError: string | null;
|
|
13
13
|
readonly upgrade: (version: string) => Promise<void>;
|
|
14
|
-
readonly
|
|
14
|
+
readonly restart: () => Promise<void>;
|
|
15
15
|
readonly error: string | null;
|
|
16
16
|
readonly info: UpdateAvailableResponse | null;
|
|
17
17
|
readonly knownBugs: Bug[] | null;
|
|
@@ -4,7 +4,7 @@ exports.useUpdateStatus = exports.UpdateStatusProvider = void 0;
|
|
|
4
4
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
5
|
const react_1 = require("react");
|
|
6
6
|
const remotion_1 = require("remotion");
|
|
7
|
-
const
|
|
7
|
+
const restart_studio_1 = require("../api/restart-studio");
|
|
8
8
|
const browser_studio_operations_1 = require("../helpers/browser-studio-operations");
|
|
9
9
|
const can_show_updates_1 = require("../helpers/can-show-updates");
|
|
10
10
|
const client_id_1 = require("../helpers/client-id");
|
|
@@ -35,16 +35,15 @@ const UpdateStatusProvider = ({ children }) => {
|
|
|
35
35
|
busy.current = false;
|
|
36
36
|
}
|
|
37
37
|
}, []);
|
|
38
|
-
const
|
|
38
|
+
const restart = (0, react_1.useCallback)(async () => {
|
|
39
39
|
if (busy.current) {
|
|
40
40
|
return;
|
|
41
41
|
}
|
|
42
42
|
busy.current = true;
|
|
43
|
-
setUpgradeState('
|
|
43
|
+
setUpgradeState('restarting');
|
|
44
44
|
setUpgradeError(null);
|
|
45
45
|
try {
|
|
46
|
-
await (0,
|
|
47
|
-
setUpgradeState('shutdown');
|
|
46
|
+
await (0, restart_studio_1.restartStudio)();
|
|
48
47
|
}
|
|
49
48
|
catch (err) {
|
|
50
49
|
setUpgradeError(err.message);
|
|
@@ -109,9 +108,9 @@ const UpdateStatusProvider = ({ children }) => {
|
|
|
109
108
|
upgradeState,
|
|
110
109
|
upgradeError,
|
|
111
110
|
upgrade,
|
|
112
|
-
|
|
111
|
+
restart,
|
|
113
112
|
};
|
|
114
|
-
}, [error, info, knownBugs, upgradeState, upgradeError, upgrade,
|
|
113
|
+
}, [error, info, knownBugs, upgradeState, upgradeError, upgrade, restart]);
|
|
115
114
|
return (jsx_runtime_1.jsx(UpdateStatusContext.Provider, { value: value, children: children }));
|
|
116
115
|
};
|
|
117
116
|
exports.UpdateStatusProvider = UpdateStatusProvider;
|
|
@@ -173,7 +173,7 @@ const RenderedReleaseNotes = ({ release }) => {
|
|
|
173
173
|
};
|
|
174
174
|
const UpdatesSettings = () => {
|
|
175
175
|
const { remotionSkillsInfo } = (0, SettingsContext_1.useSettings)();
|
|
176
|
-
const { error, info, knownBugs, upgradeState, upgradeError, upgrade,
|
|
176
|
+
const { error, info, knownBugs, upgradeState, upgradeError, upgrade, restart } = (0, UpdateStatusContext_1.useUpdateStatus)();
|
|
177
177
|
const [releaseNotes, setReleaseNotes] = (0, react_1.useState)(null);
|
|
178
178
|
(0, react_1.useEffect)(() => {
|
|
179
179
|
if (!(info === null || info === void 0 ? void 0 : info.updateAvailable)) {
|
|
@@ -239,11 +239,11 @@ const UpdatesSettings = () => {
|
|
|
239
239
|
? 'Upgrading Remotion...'
|
|
240
240
|
: 'Remotion has been upgraded.' }), jsx_runtime_1.jsx("div", { style: text, children: upgradeState === 'upgrading'
|
|
241
241
|
? 'This may take a few minutes. You can follow the progress in your terminal.'
|
|
242
|
-
: upgradeState === '
|
|
243
|
-
? 'Studio is
|
|
244
|
-
: 'Restart Studio to use the new version.
|
|
245
|
-
? '
|
|
246
|
-
: '
|
|
242
|
+
: upgradeState === 'restarting'
|
|
243
|
+
? 'Studio is restarting with the new version.'
|
|
244
|
+
: 'Restart Studio to use the new version.' }), upgradeState === 'upgraded' || upgradeState === 'restarting' ? (jsx_runtime_1.jsx("div", { style: { marginTop: 12 }, children: jsx_runtime_1.jsx(ModalButton_1.ModalButton, { onClick: restart, disabled: upgradeState === 'restarting', children: upgradeState === 'restarting'
|
|
245
|
+
? 'Restarting...'
|
|
246
|
+
: 'Restart Studio' }) })) : null, upgradeError ? (jsx_runtime_1.jsx(ValidationMessage_1.ValidationMessage, { message: upgradeError, type: "error", align: "flex-start" })) : null] }));
|
|
247
247
|
}
|
|
248
248
|
if (info === null) {
|
|
249
249
|
return (jsx_runtime_1.jsx("div", { style: container, children: error ? (jsx_runtime_1.jsx("div", { style: { paddingTop: 12 }, children: jsx_runtime_1.jsx(ValidationMessage_1.ValidationMessage, { message: 'Could not check for updates: ' + error, align: "flex-start", type: "error" }) })) : (jsx_runtime_1.jsx("div", { style: title, children: "Checking for updates..." })) }));
|
|
@@ -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);
|
|
@@ -766,7 +764,7 @@ const WebMcp = () => {
|
|
|
766
764
|
if (compositionId === null) {
|
|
767
765
|
throw new Error('No composition is currently selected.');
|
|
768
766
|
}
|
|
769
|
-
if (!
|
|
767
|
+
if (!timelineSelectionRef.current.canSelect) {
|
|
770
768
|
throw new Error('Studio sequence selection is unavailable.');
|
|
771
769
|
}
|
|
772
770
|
const timelineTrack = getCurrentTimeline().find((candidate) => candidate.sequence.id === sequenceId);
|
|
@@ -777,7 +775,9 @@ const WebMcp = () => {
|
|
|
777
775
|
if (selection === null) {
|
|
778
776
|
throw new Error(`Sequence ${sequenceId} cannot be selected.`);
|
|
779
777
|
}
|
|
780
|
-
selectItems([selection], {
|
|
778
|
+
timelineSelectionRef.current.selectItems([selection], {
|
|
779
|
+
reveal: true,
|
|
780
|
+
});
|
|
781
781
|
return Promise.resolve({
|
|
782
782
|
currentContent: currentContentRef.current,
|
|
783
783
|
selectedSequence: serializeSequence(timelineTrack),
|
|
@@ -1025,8 +1025,8 @@ const WebMcp = () => {
|
|
|
1025
1025
|
currentFrame: (0, imperative_state_1.getCurrentFrame)(),
|
|
1026
1026
|
currentSelection: currentSelectionRef.current,
|
|
1027
1027
|
currentContent: currentContentRef.current,
|
|
1028
|
-
selectionType:
|
|
1029
|
-
?
|
|
1028
|
+
selectionType: timelineSelectionRef.current.selectedItems.length === 1
|
|
1029
|
+
? timelineSelectionRef.current.selectedItems[0].type
|
|
1030
1030
|
: null,
|
|
1031
1031
|
selectedSequence: selectedSequenceRef.current,
|
|
1032
1032
|
}),
|
|
@@ -1181,9 +1181,9 @@ const WebMcp = () => {
|
|
|
1181
1181
|
guidesListRef.current = nextGuides;
|
|
1182
1182
|
setGuidesList(() => nextGuides);
|
|
1183
1183
|
(0, editor_guides_1.persistGuidesList)(nextGuides);
|
|
1184
|
-
const removedGuideWasSelected =
|
|
1184
|
+
const removedGuideWasSelected = timelineSelectionRef.current.selectedItems.some((item) => item.type === 'guide' && item.guideId === guideId);
|
|
1185
1185
|
if (removedGuideWasSelected) {
|
|
1186
|
-
clearSelection();
|
|
1186
|
+
timelineSelectionRef.current.clearSelection();
|
|
1187
1187
|
}
|
|
1188
1188
|
return Promise.resolve({
|
|
1189
1189
|
currentContent: currentContentRef.current,
|
|
@@ -1426,16 +1426,15 @@ const WebMcp = () => {
|
|
|
1426
1426
|
}, [
|
|
1427
1427
|
addCaptionJob,
|
|
1428
1428
|
addVideoMattingJob,
|
|
1429
|
-
clearSelection,
|
|
1430
1429
|
isPlaying,
|
|
1431
1430
|
selectComposition,
|
|
1432
|
-
selectItems,
|
|
1433
1431
|
setEditorShowGuides,
|
|
1434
1432
|
setGuidesList,
|
|
1435
1433
|
setPlaybackRate,
|
|
1436
1434
|
setPlayerMuted,
|
|
1437
1435
|
setTimelineZoom,
|
|
1436
|
+
timelineSelectionRef,
|
|
1438
1437
|
]);
|
|
1439
|
-
return
|
|
1438
|
+
return (jsx_runtime_1.jsx(WebMcpSelectionSync, { currentSelectionRef: currentSelectionRef, selectedSequenceRef: selectedSequenceRef }));
|
|
1440
1439
|
};
|
|
1441
1440
|
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
|
+
};
|