@remotion/studio 4.0.518 → 4.0.520
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/visual-control.js +2 -2
- package/dist/components/AppLaunchButton.d.ts +16 -0
- package/dist/components/AppLaunchButton.js +90 -0
- package/dist/components/AssetSelector.js +7 -6
- package/dist/components/AssetSelectorItem.d.ts +12 -0
- package/dist/components/AssetSelectorItem.js +180 -62
- package/dist/components/AudioWaveform.js +6 -1
- package/dist/components/Button.js +20 -7
- package/dist/components/Canvas.js +117 -92
- package/dist/components/CanvasOrLoading.js +7 -7
- package/dist/components/CodingAgentButton.d.ts +7 -0
- package/dist/components/CodingAgentButton.js +59 -0
- package/dist/components/CompositionContextButton.d.ts +1 -0
- package/dist/components/CompositionContextButton.js +6 -3
- package/dist/components/CompositionSelector.js +21 -20
- package/dist/components/CompositionSelectorItem.js +23 -35
- package/dist/components/ConfigureLicenseModal.js +4 -48
- package/dist/components/CurrentAsset.js +1 -1
- package/dist/components/CurrentCompositionSideEffects.js +5 -0
- package/dist/components/ElementInstallConfirmation.d.ts +2 -10
- package/dist/components/ElementInstallConfirmation.js +339 -32
- package/dist/components/FixComputedValueModal.js +5 -131
- package/dist/components/FpsCounter.js +1 -1
- package/dist/components/FramePersistor.js +1 -1
- package/dist/components/InitialCompositionLoader.js +3 -2
- package/dist/components/InspectorOpenInEditor.js +48 -33
- package/dist/components/InspectorPanel/CompositionInspector.js +35 -3
- package/dist/components/InspectorPanel/CompositionInspectorHeader.js +22 -14
- package/dist/components/InspectorPanel/ConnectedCompositionsSection.js +3 -1
- package/dist/components/InspectorPanel/SequenceInspectorHeader.d.ts +1 -1
- package/dist/components/InspectorPanel/SequenceInspectorHeader.js +10 -5
- package/dist/components/InspectorPanel/SequenceSelectionInspector.js +5 -4
- package/dist/components/InspectorPanel/common.js +1 -0
- package/dist/components/InspectorPanel/styles.js +1 -0
- package/dist/components/InspectorPanel/use-composition-actions.js +5 -8
- package/dist/components/InspectorSequenceSection.js +8 -3
- package/dist/components/InspectorSourceLocation.js +5 -1
- package/dist/components/KnownBugs.d.ts +1 -1
- package/dist/components/KnownBugs.js +1 -1
- package/dist/components/LicenseExplanation.d.ts +2 -0
- package/dist/components/LicenseExplanation.js +63 -0
- package/dist/components/MenuToolbar.js +7 -1
- package/dist/components/Modals.js +1 -2
- package/dist/components/NewComposition/InputDragger.js +29 -2
- package/dist/components/NewComposition/NewCompDuration.js +1 -1
- package/dist/components/NewComposition/NewComposition.d.ts +23 -0
- package/dist/components/NewComposition/NewComposition.js +217 -80
- package/dist/components/{UpdateModal/OpenIssueButton.js → OpenIssueButton.js} +1 -1
- package/dist/components/PlayPause.js +2 -13
- package/dist/components/PreviewToolbar.js +1 -1
- package/dist/components/QuickSwitcher/ExplorerQuickSwitcherTrigger.js +2 -1
- package/dist/components/QuickSwitcher/QuickSwitcherContent.js +50 -28
- package/dist/components/QuickSwitcher/QuickSwitcherResult.d.ts +14 -1
- package/dist/components/QuickSwitcher/QuickSwitcherResult.js +64 -9
- package/dist/components/QuickSwitcher/composition-search.d.ts +16 -0
- package/dist/components/QuickSwitcher/composition-search.js +136 -0
- package/dist/components/RenderQueue/actions.d.ts +1 -0
- package/dist/components/RenderQueue/actions.js +5 -1
- package/dist/components/ResetZoomButton.js +17 -2
- package/dist/components/SelectedOutlineCanvasRotation.js +27 -1
- package/dist/components/SelectedOutlineElement.js +12 -31
- package/dist/components/SelectedOutlineKeyboardControls.d.ts +2 -2
- package/dist/components/SelectedOutlineOverlay.d.ts +3 -1
- package/dist/components/SelectedOutlineOverlay.js +21 -26
- package/dist/components/SelectedOutlinePolygon.d.ts +1 -0
- package/dist/components/SelectedOutlinePolygon.js +12 -4
- package/dist/components/SelectedOutlineRenderer.js +88 -21
- package/dist/components/SettingsContext.js +2 -1
- package/dist/components/SettingsModal.d.ts +1 -1
- package/dist/components/SettingsModal.js +19 -3
- package/dist/components/SidebarRenderButton.d.ts +1 -0
- package/dist/components/SidebarRenderButton.js +14 -5
- package/dist/components/Timeline/SequencePropsObserver.js +29 -14
- package/dist/components/Timeline/Timeline.js +2 -1
- package/dist/components/Timeline/TimelineAssetField.js +1 -0
- package/dist/components/Timeline/TimelineDeleteKeybindings.js +5 -90
- package/dist/components/Timeline/TimelineDragHandler.js +18 -8
- package/dist/components/Timeline/TimelineInOutDragHandler.js +2 -3
- package/dist/components/Timeline/TimelineKeyframeControls.js +3 -1
- package/dist/components/Timeline/TimelinePinchZoom.js +14 -4
- package/dist/components/Timeline/TimelinePlayCursorSyncer.js +8 -4
- package/dist/components/Timeline/TimelineRowChrome.js +4 -2
- package/dist/components/Timeline/TimelineSequence.js +52 -45
- package/dist/components/Timeline/TimelineSequenceItem.js +44 -32
- package/dist/components/Timeline/TimelineSequenceRightEdgeDragHandle.js +3 -3
- package/dist/components/Timeline/TimelineSlider.js +2 -2
- package/dist/components/Timeline/TimelineStack/get-stack.d.ts +1 -0
- package/dist/components/Timeline/TimelineStack/get-stack.js +35 -3
- package/dist/components/Timeline/TimelineWidthProvider.js +15 -8
- package/dist/components/Timeline/TimelineZoomControls.js +25 -8
- package/dist/components/Timeline/delete-selected-timeline-item.js +2 -2
- package/dist/components/Timeline/duplicate-selected-timeline-item.js +23 -25
- package/dist/components/Timeline/get-sequence-context-menu-items.d.ts +6 -0
- package/dist/components/Timeline/get-sequence-context-menu-items.js +34 -1
- package/dist/components/Timeline/sequence-props-subscription-store.d.ts +2 -0
- package/dist/components/Timeline/sequence-props-subscription-store.js +22 -1
- package/dist/components/Timeline/timeline-scroll-logic.d.ts +1 -0
- package/dist/components/Timeline/timeline-scroll-logic.js +21 -17
- package/dist/components/Timeline/use-delete-timeline-items.d.ts +1 -0
- package/dist/components/Timeline/use-delete-timeline-items.js +118 -0
- package/dist/components/Timeline/use-sequence-props-subscription.js +7 -0
- package/dist/components/Timeline/use-timeline-asset-drop.js +8 -14
- package/dist/components/TimelineCombobox.js +1 -0
- package/dist/components/UpdateCheck.d.ts +0 -8
- package/dist/components/UpdateCheck.js +7 -54
- package/dist/components/UpdateStatusContext.d.ts +18 -0
- package/dist/components/UpdateStatusContext.js +74 -0
- package/dist/components/UpdatesSettings.d.ts +2 -0
- package/dist/components/UpdatesSettings.js +251 -0
- package/dist/components/WebMcp.js +64 -11
- package/dist/components/ZoomPersistor.js +2 -2
- package/dist/components/composition-drag-data.d.ts +36 -0
- package/dist/components/composition-drag-data.js +232 -0
- package/dist/components/drop-handler-data.d.ts +2 -1
- package/dist/components/drop-handler-data.js +6 -4
- package/dist/components/effect-drag-and-drop.d.ts +2 -5
- package/dist/components/get-open-in-menu-items.d.ts +4 -0
- package/dist/components/get-open-in-menu-items.js +28 -24
- package/dist/components/handle-drop.js +6 -2
- package/dist/components/import-assets.d.ts +5 -13
- package/dist/components/root-composition-menu-items.d.ts +4 -1
- package/dist/components/root-composition-menu-items.js +38 -1
- package/dist/components/selected-outline-geometry.d.ts +21 -2
- package/dist/components/selected-outline-geometry.js +16 -5
- package/dist/components/selected-outline-measurement.d.ts +40 -1
- package/dist/components/selected-outline-measurement.js +239 -1
- 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 +15 -2
- package/dist/components/selected-outline-uv.js +106 -3
- package/dist/components/use-configure-default-apps.d.ts +1 -0
- package/dist/components/use-configure-default-apps.js +24 -0
- package/dist/error-overlay/current-error.d.ts +13 -0
- package/dist/error-overlay/current-error.js +21 -0
- package/dist/error-overlay/remotion-overlay/CodeFrame.js +5 -6
- package/dist/error-overlay/remotion-overlay/CopyStackTrace.js +1 -1
- package/dist/error-overlay/remotion-overlay/ErrorDisplay.js +47 -18
- package/dist/error-overlay/remotion-overlay/ErrorLoader.js +6 -2
- package/dist/error-overlay/remotion-overlay/ErrorTitle.js +5 -4
- package/dist/error-overlay/remotion-overlay/OpenInEditor.js +48 -76
- package/dist/error-overlay/remotion-overlay/SearchGitHubIssues.js +1 -1
- package/dist/error-overlay/remotion-overlay/ShortcutHint.js +2 -2
- package/dist/error-overlay/remotion-overlay/StackFrame.js +13 -8
- package/dist/error-overlay/remotion-overlay/Symbolicating.js +1 -1
- package/dist/esm/chunk-6jf1natv.js +25 -0
- package/dist/esm/{chunk-4bxz1d3g.js → chunk-je0h1bgt.js} +1 -28
- package/dist/esm/chunk-m0jqdbkr.js +14571 -0
- package/dist/esm/{chunk-7prjt5n5.js → chunk-np6q13k5.js} +18637 -12189
- package/dist/esm/index.mjs +4 -3
- package/dist/esm/internals.mjs +35826 -14822
- package/dist/esm/previewEntry.mjs +40028 -18935
- package/dist/esm/renderEntry.mjs +6 -3
- package/dist/helpers/can-show-updates.d.ts +5 -0
- package/dist/helpers/can-show-updates.js +7 -0
- package/dist/helpers/colors.d.ts +0 -3
- package/dist/helpers/colors.js +2 -5
- package/dist/helpers/create-folder-tree.d.ts +5 -0
- package/dist/helpers/create-folder-tree.js +26 -6
- package/dist/helpers/document-title.d.ts +2 -0
- package/dist/helpers/document-title.js +14 -3
- package/dist/helpers/get-asset-metadata.js +1 -1
- package/dist/helpers/get-box-quads-polyfill-internals.d.ts +82 -0
- package/dist/helpers/get-box-quads-polyfill-internals.js +2403 -0
- package/dist/helpers/get-box-quads-ponyfill.d.ts +10 -0
- package/dist/helpers/get-box-quads-ponyfill.js +23 -0
- package/dist/helpers/get-git-menu-item.d.ts +5 -0
- package/dist/helpers/get-git-menu-item.js +15 -1
- package/dist/helpers/get-timeline-max-zoom.d.ts +34 -28
- package/dist/helpers/get-timeline-max-zoom.js +46 -29
- package/dist/helpers/hoverable.js +10 -5
- package/dist/helpers/install-fiber-sequence-order-observer.d.ts +37 -0
- package/dist/helpers/install-fiber-sequence-order-observer.js +109 -0
- package/dist/helpers/open-in-editor.js +53 -2
- package/dist/helpers/preview-server-events.js +3 -0
- package/dist/helpers/timeline-layout.d.ts +0 -1
- package/dist/helpers/timeline-layout.js +1 -5
- package/dist/helpers/url-state.d.ts +1 -0
- package/dist/helpers/url-state.js +12 -5
- package/dist/helpers/use-runtime-values.d.ts +1 -1
- package/dist/helpers/use-runtime-values.js +5 -4
- package/dist/helpers/use-sync-external-store.d.ts +3 -0
- package/dist/helpers/use-sync-external-store.js +5 -0
- package/dist/previewEntry.js +2 -0
- package/dist/renderEntry.js +2 -0
- package/dist/state/folders.d.ts +3 -0
- package/dist/state/folders.js +40 -1
- package/dist/state/modals.d.ts +19 -8
- package/dist/state/timeline-sequence-hover.js +3 -2
- package/dist/state/timeline-zoom.d.ts +0 -1
- package/dist/state/timeline-zoom.js +13 -6
- package/package.json +18 -15
- package/dist/components/UpdateModal/UpdateModal.d.ts +0 -6
- package/dist/components/UpdateModal/UpdateModal.js +0 -104
- package/dist/helpers/sort-by-nonce-history.d.ts +0 -1
- package/dist/helpers/sort-by-nonce-history.js +0 -6
- /package/dist/components/{UpdateModal/OpenIssueButton.d.ts → OpenIssueButton.d.ts} +0 -0
|
@@ -29,8 +29,8 @@ const editor_zoom_gestures_1 = require("../state/editor-zoom-gestures");
|
|
|
29
29
|
const modals_1 = require("../state/modals");
|
|
30
30
|
const call_api_1 = require("./call-api");
|
|
31
31
|
const canvas_capture_drop_1 = require("./canvas-capture-drop");
|
|
32
|
+
const composition_drag_data_1 = require("./composition-drag-data");
|
|
32
33
|
const composition_drop_preview_1 = require("./composition-drop-preview");
|
|
33
|
-
const ConfirmationDialog_1 = require("./ConfirmationDialog");
|
|
34
34
|
const drop_handler_data_1 = require("./drop-handler-data");
|
|
35
35
|
const EditorGuides_1 = __importDefault(require("./EditorGuides"));
|
|
36
36
|
const EditorRuler_1 = require("./EditorRuler");
|
|
@@ -38,7 +38,6 @@ const use_is_ruler_visible_1 = require("./EditorRuler/use-is-ruler-visible");
|
|
|
38
38
|
const effect_drag_and_drop_1 = require("./effect-drag-and-drop");
|
|
39
39
|
const element_install_api_1 = require("./element-install-api");
|
|
40
40
|
const element_install_request_1 = require("./element-install-request");
|
|
41
|
-
const ElementInstallConfirmation_1 = require("./ElementInstallConfirmation");
|
|
42
41
|
const handle_drop_1 = require("./handle-drop");
|
|
43
42
|
const import_assets_1 = require("./import-assets");
|
|
44
43
|
const layout_1 = require("./layout");
|
|
@@ -49,6 +48,19 @@ const SvgImportDialog_1 = require("./SvgImportDialog");
|
|
|
49
48
|
const imperative_state_1 = require("./Timeline/imperative-state");
|
|
50
49
|
const use_resolved_stack_1 = require("./Timeline/use-resolved-stack");
|
|
51
50
|
const elementInstallDependencyIgnoreList = ['react', 'react-dom', 'remotion'];
|
|
51
|
+
const getCanvasDragPreviewMetadata = (mimeTypes) => {
|
|
52
|
+
var _a, _b, _c;
|
|
53
|
+
const composition = (0, composition_drag_data_1.getCompositionDragPreviewMetadata)(mimeTypes);
|
|
54
|
+
if (composition !== null) {
|
|
55
|
+
return {
|
|
56
|
+
...composition,
|
|
57
|
+
width: (_a = composition.width) !== null && _a !== void 0 ? _a : undefined,
|
|
58
|
+
height: (_b = composition.height) !== null && _b !== void 0 ? _b : undefined,
|
|
59
|
+
durationInFrames: (_c = composition.durationInFrames) !== null && _c !== void 0 ? _c : undefined,
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
return studio_protocol_1.StudioProtocolInternals.getDragPreviewMetadata(mimeTypes);
|
|
63
|
+
};
|
|
52
64
|
const getContainerStyle = (editorZoomGestures) => ({
|
|
53
65
|
flex: 1,
|
|
54
66
|
display: 'flex',
|
|
@@ -127,7 +139,6 @@ const Canvas = ({ canvasContent, size }) => {
|
|
|
127
139
|
const suppressWheelFromWebKitPinchRef = (0, react_1.useRef)(false);
|
|
128
140
|
const touchPinchRef = (0, react_1.useRef)(null);
|
|
129
141
|
const keybindings = (0, use_keybinding_1.useKeybinding)();
|
|
130
|
-
const confirm = (0, ConfirmationDialog_1.useConfirmationDialog)();
|
|
131
142
|
const chooseSvgImportMode = (0, SvgImportDialog_1.useSvgImportDialog)();
|
|
132
143
|
const { setSelectedModal } = (0, react_1.useContext)(modals_1.SetSelectedModalContext);
|
|
133
144
|
const config = remotion_1.Internals.useUnsafeVideoConfig();
|
|
@@ -142,7 +153,6 @@ const Canvas = ({ canvasContent, size }) => {
|
|
|
142
153
|
: null;
|
|
143
154
|
const [isAddingAsset, setIsAddingAsset] = (0, react_1.useState)(false);
|
|
144
155
|
const [compositionDropPreview, setCompositionDropPreview] = (0, react_1.useState)(null);
|
|
145
|
-
const [installingElementName, setInstallingElementName] = (0, react_1.useState)(null);
|
|
146
156
|
const [pendingElementInstallRequests, setPendingElementInstallRequests] = (0, react_1.useState)([]);
|
|
147
157
|
const [activeElementInstallRequest, setActiveElementInstallRequest] = (0, react_1.useState)(null);
|
|
148
158
|
const lastFocusedAtRef = (0, react_1.useRef)(typeof document === 'undefined' || document.hasFocus() ? Date.now() : null);
|
|
@@ -162,12 +172,13 @@ const Canvas = ({ canvasContent, size }) => {
|
|
|
162
172
|
compositionFile,
|
|
163
173
|
compositionId: currentCompositionId,
|
|
164
174
|
});
|
|
165
|
-
const
|
|
175
|
+
const canReceiveElementInstallRequest = previewServerClientId !== null &&
|
|
166
176
|
!window.remotion_isReadOnlyStudio &&
|
|
167
|
-
(compositionComponentInfo === null || compositionComponentInfo === void 0 ? void 0 : compositionComponentInfo.canAddSequence) === true &&
|
|
168
177
|
currentCompositionId !== null &&
|
|
169
178
|
compositionFile !== null;
|
|
170
|
-
const
|
|
179
|
+
const canInsertIntoCurrentComposition = canReceiveElementInstallRequest &&
|
|
180
|
+
(compositionComponentInfo === null || compositionComponentInfo === void 0 ? void 0 : compositionComponentInfo.canAddSequence) === true;
|
|
181
|
+
const canDropAssets = canInsertIntoCurrentComposition && !isAddingAsset;
|
|
171
182
|
const cannotAddSequence = (compositionComponentInfo === null || compositionComponentInfo === void 0 ? void 0 : compositionComponentInfo.canAddSequence) === false;
|
|
172
183
|
const contentDimensions = (0, react_1.useMemo)(() => {
|
|
173
184
|
if ((canvasContent.type === 'asset' ||
|
|
@@ -566,15 +577,18 @@ const Canvas = ({ canvasContent, size }) => {
|
|
|
566
577
|
(0, call_api_1.callApi)('/api/update-element-install-target', {
|
|
567
578
|
requestId,
|
|
568
579
|
clientId: previewServerClientId,
|
|
569
|
-
compositionFile:
|
|
570
|
-
|
|
571
|
-
|
|
580
|
+
compositionFile: canReceiveElementInstallRequest
|
|
581
|
+
? compositionFile
|
|
582
|
+
: null,
|
|
583
|
+
compositionId: canReceiveElementInstallRequest
|
|
584
|
+
? currentCompositionId
|
|
585
|
+
: null,
|
|
572
586
|
lastFocusedAt: lastFocusedAtRef.current,
|
|
573
587
|
readOnly: window.remotion_isReadOnlyStudio,
|
|
574
588
|
studioUrl: window.location.href,
|
|
575
589
|
}).catch(() => undefined);
|
|
576
590
|
}, [
|
|
577
|
-
|
|
591
|
+
canReceiveElementInstallRequest,
|
|
578
592
|
compositionFile,
|
|
579
593
|
currentCompositionId,
|
|
580
594
|
previewServerClientId,
|
|
@@ -598,16 +612,6 @@ const Canvas = ({ canvasContent, size }) => {
|
|
|
598
612
|
updateElementInstallTarget(event.requestId);
|
|
599
613
|
});
|
|
600
614
|
}, [subscribeToEvent, updateElementInstallTarget]);
|
|
601
|
-
(0, react_1.useEffect)(() => {
|
|
602
|
-
if (installingElementName === null) {
|
|
603
|
-
return;
|
|
604
|
-
}
|
|
605
|
-
const previousTitle = document.title;
|
|
606
|
-
document.title = `📦 Install ${installingElementName} - Remotion Studio`;
|
|
607
|
-
return () => {
|
|
608
|
-
document.title = previousTitle;
|
|
609
|
-
};
|
|
610
|
-
}, [installingElementName]);
|
|
611
615
|
(0, react_1.useEffect)(() => {
|
|
612
616
|
if (previewServerClientId === null) {
|
|
613
617
|
return;
|
|
@@ -617,21 +621,31 @@ const Canvas = ({ canvasContent, size }) => {
|
|
|
617
621
|
event.request.clientId !== previewServerClientId) {
|
|
618
622
|
return;
|
|
619
623
|
}
|
|
620
|
-
|
|
621
|
-
...requests,
|
|
622
|
-
event.request,
|
|
623
|
-
]);
|
|
624
|
+
(0, element_install_request_1.enqueueElementInstallRequest)(event.request);
|
|
624
625
|
});
|
|
625
626
|
}, [previewServerClientId, subscribeToEvent]);
|
|
626
627
|
(0, react_1.useEffect)(() => {
|
|
627
628
|
return (0, element_install_request_1.subscribeToElementInstallRequests)((request) => {
|
|
628
|
-
|
|
629
|
+
const requestWithFrom = request.source.type === 'drag-and-drop' || request.from !== null
|
|
630
|
+
? request
|
|
631
|
+
: {
|
|
632
|
+
...request,
|
|
633
|
+
from: (0, import_assets_1.getFromForDrop)({
|
|
634
|
+
durationInFrames: request.element.durationInFrames,
|
|
635
|
+
from: (0, imperative_state_1.getCurrentFrame)(),
|
|
636
|
+
preferCompositionStart: true,
|
|
637
|
+
}),
|
|
638
|
+
};
|
|
639
|
+
setPendingElementInstallRequests((requests) => [
|
|
640
|
+
...requests,
|
|
641
|
+
requestWithFrom,
|
|
642
|
+
]);
|
|
629
643
|
});
|
|
630
644
|
}, []);
|
|
631
645
|
(0, react_1.useEffect)(() => {
|
|
632
646
|
var _a;
|
|
633
647
|
var _b;
|
|
634
|
-
if (!
|
|
648
|
+
if (!canReceiveElementInstallRequest ||
|
|
635
649
|
compositionFile === null ||
|
|
636
650
|
currentCompositionId === null) {
|
|
637
651
|
return;
|
|
@@ -654,7 +668,7 @@ const Canvas = ({ canvasContent, size }) => {
|
|
|
654
668
|
type: 'browser-studio-link',
|
|
655
669
|
},
|
|
656
670
|
});
|
|
657
|
-
}, [
|
|
671
|
+
}, [canReceiveElementInstallRequest, compositionFile, currentCompositionId]);
|
|
658
672
|
(0, react_1.useEffect)(() => {
|
|
659
673
|
if (activeElementInstallRequest !== null ||
|
|
660
674
|
pendingElementInstallRequests.length === 0) {
|
|
@@ -667,6 +681,10 @@ const Canvas = ({ canvasContent, size }) => {
|
|
|
667
681
|
setActiveElementInstallRequest(nextRequest);
|
|
668
682
|
setPendingElementInstallRequests(remainingRequests);
|
|
669
683
|
}, [activeElementInstallRequest, pendingElementInstallRequests]);
|
|
684
|
+
const closeElementInstallDialog = (0, react_1.useCallback)(() => {
|
|
685
|
+
setSelectedModal(null);
|
|
686
|
+
setActiveElementInstallRequest(null);
|
|
687
|
+
}, [setSelectedModal]);
|
|
670
688
|
(0, react_1.useEffect)(() => {
|
|
671
689
|
if (activeElementInstallRequest === null) {
|
|
672
690
|
return;
|
|
@@ -674,74 +692,81 @@ const Canvas = ({ canvasContent, size }) => {
|
|
|
674
692
|
let canceled = false;
|
|
675
693
|
const handleInstallRequest = async () => {
|
|
676
694
|
var _a;
|
|
677
|
-
|
|
678
|
-
|
|
679
|
-
|
|
680
|
-
|
|
681
|
-
|
|
682
|
-
|
|
683
|
-
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
|
|
689
|
-
|
|
690
|
-
|
|
691
|
-
|
|
692
|
-
|
|
693
|
-
|
|
694
|
-
|
|
695
|
-
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
|
|
702
|
-
|
|
703
|
-
|
|
704
|
-
|
|
705
|
-
|
|
706
|
-
|
|
707
|
-
|
|
708
|
-
|
|
709
|
-
|
|
710
|
-
|
|
711
|
-
|
|
712
|
-
|
|
713
|
-
|
|
714
|
-
|
|
715
|
-
|
|
716
|
-
|
|
717
|
-
|
|
718
|
-
|
|
719
|
-
|
|
720
|
-
|
|
721
|
-
|
|
722
|
-
|
|
723
|
-
|
|
724
|
-
|
|
695
|
+
try {
|
|
696
|
+
const [newPreflight, currentPreflight] = await Promise.all([
|
|
697
|
+
(0, element_install_api_1.prepareElementInstall)({
|
|
698
|
+
destination: {
|
|
699
|
+
type: 'new-composition',
|
|
700
|
+
compositionFile: null,
|
|
701
|
+
},
|
|
702
|
+
element: activeElementInstallRequest.element,
|
|
703
|
+
}),
|
|
704
|
+
(0, element_install_api_1.prepareElementInstall)({
|
|
705
|
+
destination: {
|
|
706
|
+
type: 'current-composition',
|
|
707
|
+
compositionFile: activeElementInstallRequest.compositionFile,
|
|
708
|
+
compositionId: activeElementInstallRequest.compositionId,
|
|
709
|
+
},
|
|
710
|
+
element: activeElementInstallRequest.element,
|
|
711
|
+
}),
|
|
712
|
+
]);
|
|
713
|
+
if (canceled) {
|
|
714
|
+
return;
|
|
715
|
+
}
|
|
716
|
+
if (!newPreflight.success) {
|
|
717
|
+
(0, NotificationCenter_1.showNotification)(`Could not review Element installation: ${newPreflight.reason}`, 4000);
|
|
718
|
+
setActiveElementInstallRequest(null);
|
|
719
|
+
return;
|
|
720
|
+
}
|
|
721
|
+
const declaredDependencies = Array.from(new Map(activeElementInstallRequest.element.dependencies.map((dependency) => [dependency.name, dependency])).values());
|
|
722
|
+
const missingPackages = (0, install_required_package_1.getMissingPackages)(declaredDependencies).map((dependency) => dependency.name);
|
|
723
|
+
const ignoredDependencies = declaredDependencies.filter((dependency) => elementInstallDependencyIgnoreList.includes(dependency.name) &&
|
|
724
|
+
!missingPackages.includes(dependency.name));
|
|
725
|
+
const dependenciesToReview = declaredDependencies
|
|
726
|
+
.filter((dependency) => !ignoredDependencies.includes(dependency))
|
|
727
|
+
.map((dependency) => dependency.version === null
|
|
728
|
+
? dependency.name
|
|
729
|
+
: `${dependency.name}@${dependency.version}`);
|
|
730
|
+
const { source } = activeElementInstallRequest;
|
|
731
|
+
const sourceLabel = source.type === 'studio-protocol'
|
|
732
|
+
? source.origin
|
|
733
|
+
: source.type === 'browser-studio-link'
|
|
734
|
+
? ((_a = source.origin) !== null && _a !== void 0 ? _a : 'Unverified Browser Studio link')
|
|
735
|
+
: 'Unverified drag-and-drop payload';
|
|
736
|
+
const sourceIsUnverified = source.type === 'drag-and-drop' ||
|
|
737
|
+
(source.type === 'browser-studio-link' && source.origin === null);
|
|
738
|
+
const currentPlan = currentPreflight.success
|
|
739
|
+
? currentPreflight.plan
|
|
740
|
+
: null;
|
|
741
|
+
setSelectedModal({
|
|
742
|
+
type: 'element-install',
|
|
743
|
+
currentPlan,
|
|
744
|
+
dependenciesToReview,
|
|
745
|
+
missingPackages,
|
|
746
|
+
newPlan: newPreflight.plan,
|
|
747
|
+
onClose: closeElementInstallDialog,
|
|
748
|
+
request: activeElementInstallRequest,
|
|
749
|
+
sourceIsUnverified,
|
|
750
|
+
sourceLabel,
|
|
725
751
|
});
|
|
726
752
|
}
|
|
727
|
-
|
|
728
|
-
|
|
729
|
-
|
|
730
|
-
|
|
731
|
-
|
|
753
|
+
catch (error) {
|
|
754
|
+
if (canceled) {
|
|
755
|
+
return;
|
|
756
|
+
}
|
|
757
|
+
(0, NotificationCenter_1.showNotification)(`Could not review Element installation: ${error instanceof Error ? error.message : String(error)}`, 4000);
|
|
758
|
+
setActiveElementInstallRequest(null);
|
|
732
759
|
}
|
|
733
|
-
|
|
734
|
-
|
|
735
|
-
})
|
|
736
|
-
.catch((err) => {
|
|
737
|
-
setTimeout(() => {
|
|
738
|
-
throw err;
|
|
739
|
-
}, 0);
|
|
740
|
-
});
|
|
760
|
+
};
|
|
761
|
+
handleInstallRequest();
|
|
741
762
|
return () => {
|
|
742
763
|
canceled = true;
|
|
743
764
|
};
|
|
744
|
-
}, [
|
|
765
|
+
}, [
|
|
766
|
+
activeElementInstallRequest,
|
|
767
|
+
closeElementInstallDialog,
|
|
768
|
+
setSelectedModal,
|
|
769
|
+
]);
|
|
745
770
|
const onDragOver = (0, react_1.useCallback)((event) => {
|
|
746
771
|
var _a;
|
|
747
772
|
var _b;
|
|
@@ -765,7 +790,7 @@ const Canvas = ({ canvasContent, size }) => {
|
|
|
765
790
|
setCompositionDropPreview(null);
|
|
766
791
|
return;
|
|
767
792
|
}
|
|
768
|
-
const metadata =
|
|
793
|
+
const metadata = getCanvasDragPreviewMetadata((_b = (_a = event.dataTransfer) === null || _a === void 0 ? void 0 : _a.types) !== null && _b !== void 0 ? _b : []);
|
|
769
794
|
if (((metadata === null || metadata === void 0 ? void 0 : metadata.type) !== 'composition' && (metadata === null || metadata === void 0 ? void 0 : metadata.type) !== 'element') ||
|
|
770
795
|
metadata.width === undefined ||
|
|
771
796
|
metadata.height === undefined) {
|
|
@@ -896,7 +921,7 @@ const Canvas = ({ canvasContent, size }) => {
|
|
|
896
921
|
event.stopPropagation();
|
|
897
922
|
setIsAddingAsset(true);
|
|
898
923
|
try {
|
|
899
|
-
const metadata =
|
|
924
|
+
const metadata = getCanvasDragPreviewMetadata((_d = (_b = event.dataTransfer) === null || _b === void 0 ? void 0 : _b.types) !== null && _d !== void 0 ? _d : []);
|
|
900
925
|
const isComposition = (metadata === null || metadata === void 0 ? void 0 : metadata.type) === 'composition';
|
|
901
926
|
let dropPosition = getDropPosition({
|
|
902
927
|
addFitPadding,
|
|
@@ -47,7 +47,7 @@ const CanvasOrLoading = ({ size }) => {
|
|
|
47
47
|
});
|
|
48
48
|
}, [resolved, setZoom]);
|
|
49
49
|
if (renderError) {
|
|
50
|
-
return (jsx_runtime_1.jsx(ErrorLoading, { error: renderError, calculateMetadataContext: false }));
|
|
50
|
+
return (jsx_runtime_1.jsx(ErrorLoading, { error: renderError, calculateMetadataContext: false, onRetry: null }));
|
|
51
51
|
}
|
|
52
52
|
if (!canvasContent) {
|
|
53
53
|
if (compositionListState !== 'ready') {
|
|
@@ -71,7 +71,10 @@ const CanvasOrLoading = ({ size }) => {
|
|
|
71
71
|
return (jsx_runtime_1.jsx("div", { style: container, className: "css-reset", children: jsx_runtime_1.jsx(RunningCalculateMetadata_1.RunningCalculateMetadata, {}) }));
|
|
72
72
|
}
|
|
73
73
|
if (resolved.type === 'error') {
|
|
74
|
-
return jsx_runtime_1.jsx(ErrorLoading, { error: resolved.error, calculateMetadataContext: true
|
|
74
|
+
return (jsx_runtime_1.jsx(ErrorLoading, { error: resolved.error, calculateMetadataContext: true, onRetry: () => {
|
|
75
|
+
var _a;
|
|
76
|
+
return (_a = remotion_1.Internals.resolveCompositionsRef.current) === null || _a === void 0 ? void 0 : _a.reloadCurrentlySelectedComposition();
|
|
77
|
+
} }));
|
|
75
78
|
}
|
|
76
79
|
return (jsx_runtime_1.jsxs(jsx_runtime_1.Fragment, { children: [
|
|
77
80
|
jsx_runtime_1.jsx(FramePersistor_1.FramePersistor, {}),
|
|
@@ -86,9 +89,6 @@ const loaderContainer = {
|
|
|
86
89
|
height: '100%',
|
|
87
90
|
overflowY: 'auto',
|
|
88
91
|
};
|
|
89
|
-
const ErrorLoading = ({ error, calculateMetadataContext }) => {
|
|
90
|
-
return (jsx_runtime_1.jsx("div", { style: loaderContainer, className: is_menu_item_1.VERTICAL_SCROLLBAR_CLASSNAME, children: jsx_runtime_1.jsx(ErrorLoader_1.ErrorLoader, { canHaveDismissButton: false, keyboardShortcuts: true, error: error, onRetry:
|
|
91
|
-
var _a;
|
|
92
|
-
return (_a = remotion_1.Internals.resolveCompositionsRef.current) === null || _a === void 0 ? void 0 : _a.reloadCurrentlySelectedComposition();
|
|
93
|
-
}, calculateMetadata: calculateMetadataContext }, error.stack) }));
|
|
92
|
+
const ErrorLoading = ({ error, calculateMetadataContext, onRetry }) => {
|
|
93
|
+
return (jsx_runtime_1.jsx("div", { style: loaderContainer, className: is_menu_item_1.VERTICAL_SCROLLBAR_CLASSNAME, children: jsx_runtime_1.jsx(ErrorLoader_1.ErrorLoader, { canHaveDismissButton: false, keyboardShortcuts: true, error: error, onRetry: onRetry, calculateMetadata: calculateMetadataContext }, error.stack) }));
|
|
94
94
|
};
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CodingAgentButton = void 0;
|
|
4
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
+
const react_1 = require("react");
|
|
6
|
+
const open_in_editor_1 = require("../helpers/open-in-editor");
|
|
7
|
+
const AppLaunchButton_1 = require("./AppLaunchButton");
|
|
8
|
+
const CodingAgentIcon_1 = require("./CodingAgentIcon");
|
|
9
|
+
const NotificationCenter_1 = require("./Notifications/NotificationCenter");
|
|
10
|
+
const SettingsContext_1 = require("./SettingsContext");
|
|
11
|
+
const use_configure_default_apps_1 = require("./use-configure-default-apps");
|
|
12
|
+
const menuLabel = {
|
|
13
|
+
color: 'inherit',
|
|
14
|
+
fontFamily: 'sans-serif',
|
|
15
|
+
fontSize: 13,
|
|
16
|
+
lineHeight: '16px',
|
|
17
|
+
};
|
|
18
|
+
const CodingAgentButton = ({ label, prompt, size, style }) => {
|
|
19
|
+
var _a, _b;
|
|
20
|
+
const { codingAgentInfo } = (0, SettingsContext_1.useSettings)();
|
|
21
|
+
const configureDefaultApps = (0, use_configure_default_apps_1.useConfigureDefaultApps)();
|
|
22
|
+
const installedCodingAgents = (_a = codingAgentInfo === null || codingAgentInfo === void 0 ? void 0 : codingAgentInfo.installedCodingAgents) !== null && _a !== void 0 ? _a : [];
|
|
23
|
+
const defaultCodingAgent = (_b = installedCodingAgents.find((agent) => agent.id === (codingAgentInfo === null || codingAgentInfo === void 0 ? void 0 : codingAgentInfo.defaultCodingAgent))) !== null && _b !== void 0 ? _b : installedCodingAgents[0];
|
|
24
|
+
const alternativeCodingAgents = installedCodingAgents.filter((agent) => agent.id !== (defaultCodingAgent === null || defaultCodingAgent === void 0 ? void 0 : defaultCodingAgent.id));
|
|
25
|
+
const openWithCodingAgent = (0, react_1.useCallback)(async (codingAgentId, codingAgentName) => {
|
|
26
|
+
try {
|
|
27
|
+
const response = await (0, open_in_editor_1.openInCodingAgent)(codingAgentId, codingAgentId === 'copilot' ? null : prompt);
|
|
28
|
+
if (!response.success) {
|
|
29
|
+
(0, NotificationCenter_1.showNotification)(`Could not open ${codingAgentName}`, 2000);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
catch (err) {
|
|
33
|
+
(0, NotificationCenter_1.showNotification)(err.message, 2000);
|
|
34
|
+
}
|
|
35
|
+
}, [prompt]);
|
|
36
|
+
const agentMenuItems = (0, react_1.useMemo)(() => {
|
|
37
|
+
return alternativeCodingAgents.map((codingAgent) => ({
|
|
38
|
+
id: `open-in-${codingAgent.id}`,
|
|
39
|
+
keyHint: null,
|
|
40
|
+
label: jsx_runtime_1.jsx("span", { style: menuLabel, children: codingAgent.name }),
|
|
41
|
+
leftItem: jsx_runtime_1.jsx(CodingAgentIcon_1.CodingAgentIcon, { codingAgentId: codingAgent.id, size: 18 }),
|
|
42
|
+
onClick: () => {
|
|
43
|
+
openWithCodingAgent(codingAgent.id, codingAgent.nameWithType).catch(() => undefined);
|
|
44
|
+
},
|
|
45
|
+
quickSwitcherLabel: null,
|
|
46
|
+
subMenu: null,
|
|
47
|
+
type: 'item',
|
|
48
|
+
value: `coding-agent-${codingAgent.id}`,
|
|
49
|
+
}));
|
|
50
|
+
}, [alternativeCodingAgents, openWithCodingAgent]);
|
|
51
|
+
if (!defaultCodingAgent) {
|
|
52
|
+
return null;
|
|
53
|
+
}
|
|
54
|
+
return (jsx_runtime_1.jsxs(AppLaunchButton_1.AppLaunchButton, { actionButtonId: null, ariaLabel: `${label} ${defaultCodingAgent.nameWithType}`, disabled: false, menuAriaLabel: `${label} another coding agent`, menuButtonId: null, menuItems: agentMenuItems, onConfigureApps: configureDefaultApps, onClick: () => {
|
|
55
|
+
openWithCodingAgent(defaultCodingAgent.id, defaultCodingAgent.nameWithType).catch(() => undefined);
|
|
56
|
+
}, size: size, style: style, title: `${label} ${defaultCodingAgent.nameWithType}`, children: [
|
|
57
|
+
jsx_runtime_1.jsx(CodingAgentIcon_1.CodingAgentIcon, { codingAgentId: defaultCodingAgent.id, size: size === 'default' ? 14 : 18 }), label, " ", defaultCodingAgent.name] }));
|
|
58
|
+
};
|
|
59
|
+
exports.CodingAgentButton = CodingAgentButton;
|
|
@@ -7,7 +7,10 @@ const client_id_1 = require("../helpers/client-id");
|
|
|
7
7
|
const hoverable_1 = require("../helpers/hoverable");
|
|
8
8
|
const ellipsis_1 = require("../icons/ellipsis");
|
|
9
9
|
const InlineDropdown_1 = require("./InlineDropdown");
|
|
10
|
-
const
|
|
10
|
+
const revealStyle = {
|
|
11
|
+
display: 'flex',
|
|
12
|
+
};
|
|
13
|
+
const CompositionContextButton = ({ visible, getItems, readOnlyStudio }) => {
|
|
11
14
|
const iconStyle = (0, react_1.useMemo)(() => {
|
|
12
15
|
return {
|
|
13
16
|
style: {
|
|
@@ -20,9 +23,9 @@ const CompositionContextButton = ({ visible, getItems }) => {
|
|
|
20
23
|
const renderAction = (0, react_1.useCallback)((color) => {
|
|
21
24
|
return jsx_runtime_1.jsx(ellipsis_1.EllipsisIcon, { fill: color, svgProps: iconStyle });
|
|
22
25
|
}, [iconStyle]);
|
|
23
|
-
if (!visible || connectionStatus !== 'connected') {
|
|
26
|
+
if (!visible || (connectionStatus !== 'connected' && !readOnlyStudio)) {
|
|
24
27
|
return null;
|
|
25
28
|
}
|
|
26
|
-
return (jsx_runtime_1.jsx(InlineDropdown_1.InlineDropdown, { renderAction: renderAction, getItems: getItems, variant: null, style: hoverable_1.NO_HOVER_BACKGROUND_STYLE, className: hoverable_1.FOCUS_VISIBLE_ONLY_CLASS_NAME }));
|
|
29
|
+
return (jsx_runtime_1.jsx("div", { className: hoverable_1.HOVER_GROUP_REVEAL_CLASS_NAME, style: revealStyle, children: jsx_runtime_1.jsx(InlineDropdown_1.InlineDropdown, { renderAction: renderAction, getItems: getItems, variant: null, style: hoverable_1.NO_HOVER_BACKGROUND_STYLE, className: hoverable_1.FOCUS_VISIBLE_ONLY_CLASS_NAME }) }));
|
|
27
30
|
};
|
|
28
31
|
exports.CompositionContextButton = CompositionContextButton;
|
|
@@ -2,17 +2,16 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.CompositionSelector = exports.useCompositionNavigation = void 0;
|
|
4
4
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
-
const studio_protocol_1 = require("@remotion/studio-protocol");
|
|
6
|
-
const studio_shared_1 = require("@remotion/studio-shared");
|
|
7
5
|
const react_1 = require("react");
|
|
8
6
|
const remotion_1 = require("remotion");
|
|
9
7
|
const client_id_1 = require("../helpers/client-id");
|
|
10
8
|
const colors_1 = require("../helpers/colors");
|
|
11
9
|
const create_folder_tree_1 = require("../helpers/create-folder-tree");
|
|
12
10
|
const persist_open_folders_1 = require("../helpers/persist-open-folders");
|
|
13
|
-
const
|
|
11
|
+
const folders_1 = require("../state/folders");
|
|
14
12
|
const modals_1 = require("../state/modals");
|
|
15
13
|
const z_index_1 = require("../state/z-index");
|
|
14
|
+
const composition_drag_data_1 = require("./composition-drag-data");
|
|
16
15
|
const CompositionSelectorItem_1 = require("./CompositionSelectorItem");
|
|
17
16
|
const ContextMenu_1 = require("./ContextMenu");
|
|
18
17
|
const InitialCompositionLoader_1 = require("./InitialCompositionLoader");
|
|
@@ -87,6 +86,7 @@ const getAutoScrollSpeed = ({ clientY, element, }) => {
|
|
|
87
86
|
const CompositionSelector = () => {
|
|
88
87
|
const { compositions, canvasContent, folders } = (0, react_1.useContext)(remotion_1.Internals.CompositionManager);
|
|
89
88
|
const { foldersExpanded } = (0, react_1.useContext)(persist_open_folders_1.ExpandedFoldersContext);
|
|
89
|
+
const { compositionSortOrder, setCompositionSortOrder } = (0, react_1.useContext)(folders_1.FolderContext);
|
|
90
90
|
const { setSelectedModal } = (0, react_1.useContext)(modals_1.SetSelectedModalContext);
|
|
91
91
|
const connectionStatus = (0, react_1.useContext)(client_id_1.StudioServerConnectionCtx)
|
|
92
92
|
.previewServerState.type;
|
|
@@ -95,23 +95,27 @@ const CompositionSelector = () => {
|
|
|
95
95
|
connectionStatus,
|
|
96
96
|
readOnlyStudio: window.remotion_isReadOnlyStudio,
|
|
97
97
|
setSelectedModal,
|
|
98
|
+
compositionSortOrder,
|
|
99
|
+
setCompositionSortOrder,
|
|
98
100
|
});
|
|
99
|
-
}, [
|
|
101
|
+
}, [
|
|
102
|
+
compositionSortOrder,
|
|
103
|
+
connectionStatus,
|
|
104
|
+
setCompositionSortOrder,
|
|
105
|
+
setSelectedModal,
|
|
106
|
+
]);
|
|
100
107
|
const [rootDragHovered, setRootDragHovered] = (0, react_1.useState)(false);
|
|
101
108
|
const listRef = (0, react_1.useRef)(null);
|
|
102
109
|
const autoScrollAnimation = (0, react_1.useRef)(null);
|
|
103
110
|
const autoScrollSpeed = (0, react_1.useRef)(0);
|
|
104
111
|
const { tabIndex } = (0, z_index_1.useZIndex)();
|
|
105
112
|
const selectComposition = (0, InitialCompositionLoader_1.useSelectComposition)();
|
|
106
|
-
const sortedCompositions = (0, react_1.useMemo)(() => {
|
|
107
|
-
return (0, sort_by_nonce_history_1.sortItemsByNonceHistory)(compositions);
|
|
108
|
-
}, [compositions]);
|
|
109
|
-
const sortedFolders = (0, react_1.useMemo)(() => {
|
|
110
|
-
return (0, sort_by_nonce_history_1.sortItemsByNonceHistory)(folders);
|
|
111
|
-
}, [folders]);
|
|
112
113
|
const items = (0, react_1.useMemo)(() => {
|
|
113
|
-
|
|
114
|
-
|
|
114
|
+
const tree = (0, create_folder_tree_1.createFolderTree)(compositions, folders, foldersExpanded);
|
|
115
|
+
return compositionSortOrder === 'alphabetical'
|
|
116
|
+
? (0, create_folder_tree_1.sortFolderTreeAlphabetically)(tree)
|
|
117
|
+
: tree;
|
|
118
|
+
}, [compositionSortOrder, compositions, folders, foldersExpanded]);
|
|
115
119
|
const list = (0, react_1.useMemo)(() => {
|
|
116
120
|
return {
|
|
117
121
|
flex: 1,
|
|
@@ -161,9 +165,8 @@ const CompositionSelector = () => {
|
|
|
161
165
|
}
|
|
162
166
|
}, [runCompositionListAutoScroll, stopCompositionListAutoScroll]);
|
|
163
167
|
const onCompositionListDragOverCapture = (0, react_1.useCallback)((event) => {
|
|
164
|
-
var _a;
|
|
165
168
|
if (window.remotion_isReadOnlyStudio ||
|
|
166
|
-
(
|
|
169
|
+
(0, composition_drag_data_1.getCompositionDragPreviewMetadata)(event.dataTransfer.types) === null) {
|
|
167
170
|
stopCompositionListAutoScroll();
|
|
168
171
|
return;
|
|
169
172
|
}
|
|
@@ -178,9 +181,8 @@ const CompositionSelector = () => {
|
|
|
178
181
|
return stopCompositionListAutoScroll;
|
|
179
182
|
}, [stopCompositionListAutoScroll]);
|
|
180
183
|
const onRootDragOver = (0, react_1.useCallback)((event) => {
|
|
181
|
-
var _a;
|
|
182
184
|
if (window.remotion_isReadOnlyStudio ||
|
|
183
|
-
(
|
|
185
|
+
(0, composition_drag_data_1.getCompositionDragPreviewMetadata)(event.dataTransfer.types) === null) {
|
|
184
186
|
return;
|
|
185
187
|
}
|
|
186
188
|
event.preventDefault();
|
|
@@ -200,11 +202,10 @@ const CompositionSelector = () => {
|
|
|
200
202
|
if (window.remotion_isReadOnlyStudio) {
|
|
201
203
|
return;
|
|
202
204
|
}
|
|
203
|
-
const
|
|
204
|
-
if (
|
|
205
|
+
const compositionDragData = (0, composition_drag_data_1.parseCompositionDragData)(event.dataTransfer);
|
|
206
|
+
if (compositionDragData === null) {
|
|
205
207
|
return;
|
|
206
208
|
}
|
|
207
|
-
const compositionDragData = parsed.data;
|
|
208
209
|
event.preventDefault();
|
|
209
210
|
event.stopPropagation();
|
|
210
211
|
stopCompositionListAutoScroll();
|
|
@@ -225,7 +226,7 @@ const CompositionSelector = () => {
|
|
|
225
226
|
},
|
|
226
227
|
dryRun: false,
|
|
227
228
|
signal: controller.signal,
|
|
228
|
-
symbolicatedStack: (0,
|
|
229
|
+
symbolicatedStack: (0, composition_drag_data_1.compositionDragDataToSymbolicatedStack)(compositionDragData),
|
|
229
230
|
});
|
|
230
231
|
if (result.success) {
|
|
231
232
|
notification.dismiss();
|