@remotion/studio 4.0.518 → 4.0.519
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/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/Button.js +20 -7
- package/dist/components/Canvas.js +109 -78
- 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 +15 -10
- package/dist/components/CompositionSelectorItem.js +16 -23
- package/dist/components/ConfigureLicenseModal.js +4 -48
- package/dist/components/CurrentAsset.js +1 -1
- package/dist/components/ElementInstallConfirmation.d.ts +20 -7
- package/dist/components/ElementInstallConfirmation.js +325 -32
- package/dist/components/FixComputedValueModal.js +5 -131
- 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 +1 -1
- package/dist/components/InspectorPanel/common.js +1 -0
- package/dist/components/InspectorPanel/styles.js +1 -0
- 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/QuickSwitcher/ExplorerQuickSwitcherTrigger.js +2 -1
- package/dist/components/QuickSwitcher/QuickSwitcherContent.js +21 -13
- package/dist/components/RenderQueue/actions.d.ts +1 -0
- package/dist/components/RenderQueue/actions.js +5 -1
- package/dist/components/SelectedOutlineCanvasRotation.js +27 -1
- package/dist/components/SelectedOutlineElement.js +2 -1
- 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/TimelineKeyframeControls.js +3 -1
- package/dist/components/Timeline/TimelineRowChrome.js +4 -2
- package/dist/components/Timeline/TimelineSequence.js +40 -8
- package/dist/components/Timeline/TimelineSequenceItem.js +34 -1
- 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/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/use-sequence-props-subscription.js +7 -0
- 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 +3 -3
- 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/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/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 +1 -1
- 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-7prjt5n5.js → chunk-1fkq5bfq.js} +15439 -11610
- 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/index.mjs +0 -2
- package/dist/esm/internals.mjs +32140 -13755
- package/dist/esm/previewEntry.mjs +35408 -17021
- 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 +24 -1
- 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/hoverable.js +10 -5
- package/dist/helpers/open-in-editor.js +51 -1
- 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/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 +1 -6
- package/package.json +17 -14
- package/dist/components/UpdateModal/UpdateModal.d.ts +0 -6
- package/dist/components/UpdateModal/UpdateModal.js +0 -104
- /package/dist/components/{UpdateModal/OpenIssueButton.d.ts → OpenIssueButton.d.ts} +0 -0
|
@@ -30,7 +30,6 @@ 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
32
|
const composition_drop_preview_1 = require("./composition-drop-preview");
|
|
33
|
-
const ConfirmationDialog_1 = require("./ConfirmationDialog");
|
|
34
33
|
const drop_handler_data_1 = require("./drop-handler-data");
|
|
35
34
|
const EditorGuides_1 = __importDefault(require("./EditorGuides"));
|
|
36
35
|
const EditorRuler_1 = require("./EditorRuler");
|
|
@@ -127,7 +126,6 @@ const Canvas = ({ canvasContent, size }) => {
|
|
|
127
126
|
const suppressWheelFromWebKitPinchRef = (0, react_1.useRef)(false);
|
|
128
127
|
const touchPinchRef = (0, react_1.useRef)(null);
|
|
129
128
|
const keybindings = (0, use_keybinding_1.useKeybinding)();
|
|
130
|
-
const confirm = (0, ConfirmationDialog_1.useConfirmationDialog)();
|
|
131
129
|
const chooseSvgImportMode = (0, SvgImportDialog_1.useSvgImportDialog)();
|
|
132
130
|
const { setSelectedModal } = (0, react_1.useContext)(modals_1.SetSelectedModalContext);
|
|
133
131
|
const config = remotion_1.Internals.useUnsafeVideoConfig();
|
|
@@ -145,6 +143,7 @@ const Canvas = ({ canvasContent, size }) => {
|
|
|
145
143
|
const [installingElementName, setInstallingElementName] = (0, react_1.useState)(null);
|
|
146
144
|
const [pendingElementInstallRequests, setPendingElementInstallRequests] = (0, react_1.useState)([]);
|
|
147
145
|
const [activeElementInstallRequest, setActiveElementInstallRequest] = (0, react_1.useState)(null);
|
|
146
|
+
const [elementInstallReview, setElementInstallReview] = (0, react_1.useState)(null);
|
|
148
147
|
const lastFocusedAtRef = (0, react_1.useRef)(typeof document === 'undefined' || document.hasFocus() ? Date.now() : null);
|
|
149
148
|
const [assetResolution, setAssetResolution] = (0, react_1.useState)(null);
|
|
150
149
|
const metadataRequestRef = (0, react_1.useRef)(0);
|
|
@@ -162,12 +161,13 @@ const Canvas = ({ canvasContent, size }) => {
|
|
|
162
161
|
compositionFile,
|
|
163
162
|
compositionId: currentCompositionId,
|
|
164
163
|
});
|
|
165
|
-
const
|
|
164
|
+
const canReceiveElementInstallRequest = previewServerClientId !== null &&
|
|
166
165
|
!window.remotion_isReadOnlyStudio &&
|
|
167
|
-
(compositionComponentInfo === null || compositionComponentInfo === void 0 ? void 0 : compositionComponentInfo.canAddSequence) === true &&
|
|
168
166
|
currentCompositionId !== null &&
|
|
169
167
|
compositionFile !== null;
|
|
170
|
-
const
|
|
168
|
+
const canInsertIntoCurrentComposition = canReceiveElementInstallRequest &&
|
|
169
|
+
(compositionComponentInfo === null || compositionComponentInfo === void 0 ? void 0 : compositionComponentInfo.canAddSequence) === true;
|
|
170
|
+
const canDropAssets = canInsertIntoCurrentComposition && !isAddingAsset;
|
|
171
171
|
const cannotAddSequence = (compositionComponentInfo === null || compositionComponentInfo === void 0 ? void 0 : compositionComponentInfo.canAddSequence) === false;
|
|
172
172
|
const contentDimensions = (0, react_1.useMemo)(() => {
|
|
173
173
|
if ((canvasContent.type === 'asset' ||
|
|
@@ -566,15 +566,18 @@ const Canvas = ({ canvasContent, size }) => {
|
|
|
566
566
|
(0, call_api_1.callApi)('/api/update-element-install-target', {
|
|
567
567
|
requestId,
|
|
568
568
|
clientId: previewServerClientId,
|
|
569
|
-
compositionFile:
|
|
570
|
-
|
|
571
|
-
|
|
569
|
+
compositionFile: canReceiveElementInstallRequest
|
|
570
|
+
? compositionFile
|
|
571
|
+
: null,
|
|
572
|
+
compositionId: canReceiveElementInstallRequest
|
|
573
|
+
? currentCompositionId
|
|
574
|
+
: null,
|
|
572
575
|
lastFocusedAt: lastFocusedAtRef.current,
|
|
573
576
|
readOnly: window.remotion_isReadOnlyStudio,
|
|
574
577
|
studioUrl: window.location.href,
|
|
575
578
|
}).catch(() => undefined);
|
|
576
579
|
}, [
|
|
577
|
-
|
|
580
|
+
canReceiveElementInstallRequest,
|
|
578
581
|
compositionFile,
|
|
579
582
|
currentCompositionId,
|
|
580
583
|
previewServerClientId,
|
|
@@ -617,21 +620,31 @@ const Canvas = ({ canvasContent, size }) => {
|
|
|
617
620
|
event.request.clientId !== previewServerClientId) {
|
|
618
621
|
return;
|
|
619
622
|
}
|
|
620
|
-
|
|
621
|
-
...requests,
|
|
622
|
-
event.request,
|
|
623
|
-
]);
|
|
623
|
+
(0, element_install_request_1.enqueueElementInstallRequest)(event.request);
|
|
624
624
|
});
|
|
625
625
|
}, [previewServerClientId, subscribeToEvent]);
|
|
626
626
|
(0, react_1.useEffect)(() => {
|
|
627
627
|
return (0, element_install_request_1.subscribeToElementInstallRequests)((request) => {
|
|
628
|
-
|
|
628
|
+
const requestWithFrom = request.source.type === 'drag-and-drop' || request.from !== null
|
|
629
|
+
? request
|
|
630
|
+
: {
|
|
631
|
+
...request,
|
|
632
|
+
from: (0, import_assets_1.getFromForDrop)({
|
|
633
|
+
durationInFrames: request.element.durationInFrames,
|
|
634
|
+
from: (0, imperative_state_1.getCurrentFrame)(),
|
|
635
|
+
preferCompositionStart: true,
|
|
636
|
+
}),
|
|
637
|
+
};
|
|
638
|
+
setPendingElementInstallRequests((requests) => [
|
|
639
|
+
...requests,
|
|
640
|
+
requestWithFrom,
|
|
641
|
+
]);
|
|
629
642
|
});
|
|
630
643
|
}, []);
|
|
631
644
|
(0, react_1.useEffect)(() => {
|
|
632
645
|
var _a;
|
|
633
646
|
var _b;
|
|
634
|
-
if (!
|
|
647
|
+
if (!canReceiveElementInstallRequest ||
|
|
635
648
|
compositionFile === null ||
|
|
636
649
|
currentCompositionId === null) {
|
|
637
650
|
return;
|
|
@@ -654,7 +667,7 @@ const Canvas = ({ canvasContent, size }) => {
|
|
|
654
667
|
type: 'browser-studio-link',
|
|
655
668
|
},
|
|
656
669
|
});
|
|
657
|
-
}, [
|
|
670
|
+
}, [canReceiveElementInstallRequest, compositionFile, currentCompositionId]);
|
|
658
671
|
(0, react_1.useEffect)(() => {
|
|
659
672
|
if (activeElementInstallRequest !== null ||
|
|
660
673
|
pendingElementInstallRequests.length === 0) {
|
|
@@ -675,73 +688,82 @@ const Canvas = ({ canvasContent, size }) => {
|
|
|
675
688
|
const handleInstallRequest = async () => {
|
|
676
689
|
var _a;
|
|
677
690
|
setInstallingElementName(activeElementInstallRequest.element.displayName);
|
|
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
|
-
|
|
691
|
+
try {
|
|
692
|
+
const [newPreflight, currentPreflight] = await Promise.all([
|
|
693
|
+
(0, element_install_api_1.prepareElementInstall)({
|
|
694
|
+
destination: {
|
|
695
|
+
type: 'new-composition',
|
|
696
|
+
compositionFile: null,
|
|
697
|
+
},
|
|
698
|
+
element: activeElementInstallRequest.element,
|
|
699
|
+
}),
|
|
700
|
+
(0, element_install_api_1.prepareElementInstall)({
|
|
701
|
+
destination: {
|
|
702
|
+
type: 'current-composition',
|
|
703
|
+
compositionFile: activeElementInstallRequest.compositionFile,
|
|
704
|
+
compositionId: activeElementInstallRequest.compositionId,
|
|
705
|
+
},
|
|
706
|
+
element: activeElementInstallRequest.element,
|
|
707
|
+
}),
|
|
708
|
+
]);
|
|
709
|
+
if (canceled) {
|
|
710
|
+
return;
|
|
711
|
+
}
|
|
712
|
+
if (!newPreflight.success) {
|
|
713
|
+
(0, NotificationCenter_1.showNotification)(`Could not review Element installation: ${newPreflight.reason}`, 4000);
|
|
714
|
+
setInstallingElementName(null);
|
|
715
|
+
setActiveElementInstallRequest(null);
|
|
716
|
+
return;
|
|
717
|
+
}
|
|
718
|
+
const declaredDependencies = Array.from(new Map(activeElementInstallRequest.element.dependencies.map((dependency) => [dependency.name, dependency])).values());
|
|
719
|
+
const missingPackages = (0, install_required_package_1.getMissingPackages)(declaredDependencies).map((dependency) => dependency.name);
|
|
720
|
+
const ignoredDependencies = declaredDependencies.filter((dependency) => elementInstallDependencyIgnoreList.includes(dependency.name) &&
|
|
721
|
+
!missingPackages.includes(dependency.name));
|
|
722
|
+
const dependenciesToReview = declaredDependencies
|
|
723
|
+
.filter((dependency) => !ignoredDependencies.includes(dependency))
|
|
724
|
+
.map((dependency) => dependency.version === null
|
|
725
|
+
? dependency.name
|
|
726
|
+
: `${dependency.name}@${dependency.version}`);
|
|
727
|
+
const { source } = activeElementInstallRequest;
|
|
728
|
+
const sourceLabel = source.type === 'studio-protocol'
|
|
729
|
+
? source.origin
|
|
730
|
+
: source.type === 'browser-studio-link'
|
|
731
|
+
? ((_a = source.origin) !== null && _a !== void 0 ? _a : 'Unverified Browser Studio link')
|
|
732
|
+
: 'Unverified drag-and-drop payload';
|
|
733
|
+
const sourceIsUnverified = source.type === 'drag-and-drop' ||
|
|
734
|
+
(source.type === 'browser-studio-link' && source.origin === null);
|
|
735
|
+
const currentPlan = currentPreflight.success
|
|
736
|
+
? currentPreflight.plan
|
|
737
|
+
: null;
|
|
738
|
+
setSelectedModal(null);
|
|
739
|
+
setElementInstallReview({
|
|
740
|
+
currentPlan,
|
|
741
|
+
dependenciesToReview,
|
|
742
|
+
missingPackages,
|
|
743
|
+
newPlan: newPreflight.plan,
|
|
744
|
+
sourceIsUnverified,
|
|
745
|
+
sourceLabel,
|
|
725
746
|
});
|
|
726
747
|
}
|
|
727
|
-
|
|
728
|
-
|
|
729
|
-
|
|
730
|
-
|
|
731
|
-
|
|
748
|
+
catch (error) {
|
|
749
|
+
if (canceled) {
|
|
750
|
+
return;
|
|
751
|
+
}
|
|
752
|
+
(0, NotificationCenter_1.showNotification)(`Could not review Element installation: ${error instanceof Error ? error.message : String(error)}`, 4000);
|
|
753
|
+
setInstallingElementName(null);
|
|
754
|
+
setActiveElementInstallRequest(null);
|
|
732
755
|
}
|
|
733
|
-
|
|
734
|
-
|
|
735
|
-
})
|
|
736
|
-
.catch((err) => {
|
|
737
|
-
setTimeout(() => {
|
|
738
|
-
throw err;
|
|
739
|
-
}, 0);
|
|
740
|
-
});
|
|
756
|
+
};
|
|
757
|
+
handleInstallRequest();
|
|
741
758
|
return () => {
|
|
742
759
|
canceled = true;
|
|
743
760
|
};
|
|
744
|
-
}, [activeElementInstallRequest,
|
|
761
|
+
}, [activeElementInstallRequest, setSelectedModal]);
|
|
762
|
+
const closeElementInstallDialog = (0, react_1.useCallback)(() => {
|
|
763
|
+
setElementInstallReview(null);
|
|
764
|
+
setInstallingElementName(null);
|
|
765
|
+
setActiveElementInstallRequest(null);
|
|
766
|
+
}, []);
|
|
745
767
|
const onDragOver = (0, react_1.useCallback)((event) => {
|
|
746
768
|
var _a;
|
|
747
769
|
var _b;
|
|
@@ -1100,6 +1122,15 @@ const Canvas = ({ canvasContent, size }) => {
|
|
|
1100
1122
|
};
|
|
1101
1123
|
}, [compositionDropPreview, contentDimensions, previewSize, size]);
|
|
1102
1124
|
return (jsx_runtime_1.jsxs(jsx_runtime_1.Fragment, { children: [
|
|
1103
|
-
jsx_runtime_1.jsxs("div", { ref: canvas_ref_1.canvasRef, style: getContainerStyle(editorZoomGestures), children: [size ? (jsx_runtime_1.jsx(Preview_1.VideoPreview, { canvasContent: canvasContent, contentDimensions: contentDimensions, canvasSize: size, assetMetadata: assetResolution, onRetryAssetMetadata: fetchMetadata })) : null, compositionDropPreviewStyle === null ? null : (jsx_runtime_1.jsx("div", { className: "css-reset", "data-testid": "composition-drop-preview", style: compositionDropPreviewStyle })), isFit ? null : (jsx_runtime_1.jsx("div", { style: resetZoom, className: "css-reset", children: jsx_runtime_1.jsx(ResetZoomButton_1.ResetZoomButton, { onClick: onReset }) })), editorShowGuides && canvasContent.type === 'composition' && (jsx_runtime_1.jsx(EditorGuides_1.default, { canvasSize: size, contentDimensions: contentDimensions, assetMetadata: assetResolution }))] }), areRulersVisible && (jsx_runtime_1.jsx(EditorRuler_1.EditorRulers, { canCreateGuides: canvasContent.type === 'composition', contentDimensions: contentDimensions, canvasSize: size, assetMetadata: assetResolution, containerRef: canvas_ref_1.canvasRef }))
|
|
1125
|
+
jsx_runtime_1.jsxs("div", { ref: canvas_ref_1.canvasRef, style: getContainerStyle(editorZoomGestures), children: [size ? (jsx_runtime_1.jsx(Preview_1.VideoPreview, { canvasContent: canvasContent, contentDimensions: contentDimensions, canvasSize: size, assetMetadata: assetResolution, onRetryAssetMetadata: fetchMetadata })) : null, compositionDropPreviewStyle === null ? null : (jsx_runtime_1.jsx("div", { className: "css-reset", "data-testid": "composition-drop-preview", style: compositionDropPreviewStyle })), isFit ? null : (jsx_runtime_1.jsx("div", { style: resetZoom, className: "css-reset", children: jsx_runtime_1.jsx(ResetZoomButton_1.ResetZoomButton, { onClick: onReset }) })), editorShowGuides && canvasContent.type === 'composition' && (jsx_runtime_1.jsx(EditorGuides_1.default, { canvasSize: size, contentDimensions: contentDimensions, assetMetadata: assetResolution }))] }), areRulersVisible && (jsx_runtime_1.jsx(EditorRuler_1.EditorRulers, { canCreateGuides: canvasContent.type === 'composition', contentDimensions: contentDimensions, canvasSize: size, assetMetadata: assetResolution, containerRef: canvas_ref_1.canvasRef })), activeElementInstallRequest === null ||
|
|
1126
|
+
elementInstallReview === null ? null : (jsx_runtime_1.jsx(ElementInstallConfirmation_1.ElementInstallConfirmation, { currentCompositionMetadata: config === null ||
|
|
1127
|
+
currentCompositionId !== activeElementInstallRequest.compositionId
|
|
1128
|
+
? null
|
|
1129
|
+
: {
|
|
1130
|
+
durationInFrames: config.durationInFrames,
|
|
1131
|
+
fps: config.fps,
|
|
1132
|
+
height: config.height,
|
|
1133
|
+
width: config.width,
|
|
1134
|
+
}, currentPlan: elementInstallReview.currentPlan, dependenciesToReview: elementInstallReview.dependenciesToReview, missingPackages: elementInstallReview.missingPackages, newPlan: elementInstallReview.newPlan, onClose: closeElementInstallDialog, request: activeElementInstallRequest, sourceIsUnverified: elementInstallReview.sourceIsUnverified, sourceLabel: elementInstallReview.sourceLabel, usesBrowserDependencyResolution: (0, browser_studio_operations_1.getBrowserStudioOperations)() !== null }))] }));
|
|
1104
1135
|
};
|
|
1105
1136
|
exports.Canvas = Canvas;
|
|
@@ -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;
|
|
@@ -10,7 +10,7 @@ const client_id_1 = require("../helpers/client-id");
|
|
|
10
10
|
const colors_1 = require("../helpers/colors");
|
|
11
11
|
const create_folder_tree_1 = require("../helpers/create-folder-tree");
|
|
12
12
|
const persist_open_folders_1 = require("../helpers/persist-open-folders");
|
|
13
|
-
const
|
|
13
|
+
const folders_1 = require("../state/folders");
|
|
14
14
|
const modals_1 = require("../state/modals");
|
|
15
15
|
const z_index_1 = require("../state/z-index");
|
|
16
16
|
const CompositionSelectorItem_1 = require("./CompositionSelectorItem");
|
|
@@ -87,6 +87,7 @@ const getAutoScrollSpeed = ({ clientY, element, }) => {
|
|
|
87
87
|
const CompositionSelector = () => {
|
|
88
88
|
const { compositions, canvasContent, folders } = (0, react_1.useContext)(remotion_1.Internals.CompositionManager);
|
|
89
89
|
const { foldersExpanded } = (0, react_1.useContext)(persist_open_folders_1.ExpandedFoldersContext);
|
|
90
|
+
const { compositionSortOrder, setCompositionSortOrder } = (0, react_1.useContext)(folders_1.FolderContext);
|
|
90
91
|
const { setSelectedModal } = (0, react_1.useContext)(modals_1.SetSelectedModalContext);
|
|
91
92
|
const connectionStatus = (0, react_1.useContext)(client_id_1.StudioServerConnectionCtx)
|
|
92
93
|
.previewServerState.type;
|
|
@@ -95,23 +96,27 @@ const CompositionSelector = () => {
|
|
|
95
96
|
connectionStatus,
|
|
96
97
|
readOnlyStudio: window.remotion_isReadOnlyStudio,
|
|
97
98
|
setSelectedModal,
|
|
99
|
+
compositionSortOrder,
|
|
100
|
+
setCompositionSortOrder,
|
|
98
101
|
});
|
|
99
|
-
}, [
|
|
102
|
+
}, [
|
|
103
|
+
compositionSortOrder,
|
|
104
|
+
connectionStatus,
|
|
105
|
+
setCompositionSortOrder,
|
|
106
|
+
setSelectedModal,
|
|
107
|
+
]);
|
|
100
108
|
const [rootDragHovered, setRootDragHovered] = (0, react_1.useState)(false);
|
|
101
109
|
const listRef = (0, react_1.useRef)(null);
|
|
102
110
|
const autoScrollAnimation = (0, react_1.useRef)(null);
|
|
103
111
|
const autoScrollSpeed = (0, react_1.useRef)(0);
|
|
104
112
|
const { tabIndex } = (0, z_index_1.useZIndex)();
|
|
105
113
|
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
114
|
const items = (0, react_1.useMemo)(() => {
|
|
113
|
-
|
|
114
|
-
|
|
115
|
+
const tree = (0, create_folder_tree_1.createFolderTree)(compositions, folders, foldersExpanded);
|
|
116
|
+
return compositionSortOrder === 'alphabetical'
|
|
117
|
+
? (0, create_folder_tree_1.sortFolderTreeAlphabetically)(tree)
|
|
118
|
+
: tree;
|
|
119
|
+
}, [compositionSortOrder, compositions, folders, foldersExpanded]);
|
|
115
120
|
const list = (0, react_1.useMemo)(() => {
|
|
116
121
|
return {
|
|
117
122
|
flex: 1,
|
|
@@ -7,6 +7,7 @@ const studio_shared_1 = require("@remotion/studio-shared");
|
|
|
7
7
|
const react_1 = require("react");
|
|
8
8
|
const client_id_1 = require("../helpers/client-id");
|
|
9
9
|
const colors_1 = require("../helpers/colors");
|
|
10
|
+
const hoverable_1 = require("../helpers/hoverable");
|
|
10
11
|
const noop_1 = require("../helpers/noop");
|
|
11
12
|
const sidebar_scroll_into_view_1 = require("../helpers/sidebar-scroll-into-view");
|
|
12
13
|
const folder_1 = require("../icons/folder");
|
|
@@ -39,7 +40,6 @@ const itemStyle = {
|
|
|
39
40
|
borderRadius: 4,
|
|
40
41
|
width: 'calc(100% - 12px)',
|
|
41
42
|
textAlign: 'left',
|
|
42
|
-
backgroundColor: colors_1.BACKGROUND,
|
|
43
43
|
height: layout_1.COMPACT_CONTROL_ROW_HEIGHT,
|
|
44
44
|
userSelect: 'none',
|
|
45
45
|
};
|
|
@@ -64,13 +64,6 @@ const CompositionSelectorItem = ({ item, level, currentComposition, tabIndex, se
|
|
|
64
64
|
}
|
|
65
65
|
return false;
|
|
66
66
|
}, [item, currentComposition]);
|
|
67
|
-
const [hovered, setHovered] = (0, react_1.useState)(false);
|
|
68
|
-
const onPointerEnter = (0, react_1.useCallback)(() => {
|
|
69
|
-
setHovered(true);
|
|
70
|
-
}, []);
|
|
71
|
-
const onPointerLeave = (0, react_1.useCallback)(() => {
|
|
72
|
-
setHovered(false);
|
|
73
|
-
}, []);
|
|
74
67
|
const [isDragging, setIsDragging] = (0, react_1.useState)(false);
|
|
75
68
|
const [dragHovered, setDragHovered] = (0, react_1.useState)(false);
|
|
76
69
|
const compositionRowRef = (0, react_1.useRef)(null);
|
|
@@ -86,22 +79,22 @@ const CompositionSelectorItem = ({ item, level, currentComposition, tabIndex, se
|
|
|
86
79
|
});
|
|
87
80
|
}, [compositionId, selected]);
|
|
88
81
|
const style = (0, react_1.useMemo)(() => {
|
|
82
|
+
const idleBackground = dragHovered
|
|
83
|
+
? colors_1.WHITE_ALPHA_12
|
|
84
|
+
: selected
|
|
85
|
+
? colors_1.WHITE_ALPHA_06
|
|
86
|
+
: colors_1.TRANSPARENT;
|
|
89
87
|
return {
|
|
90
88
|
...itemStyle,
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
:
|
|
94
|
-
|
|
95
|
-
|
|
89
|
+
...(0, hoverable_1.hoverableStyle)({
|
|
90
|
+
idleBackground,
|
|
91
|
+
hoverBackground: dragHovered ? colors_1.WHITE_ALPHA_12 : colors_1.WHITE_ALPHA_06,
|
|
92
|
+
idleColor: selected ? colors_1.WHITE : colors_1.LIGHT_TEXT,
|
|
93
|
+
hoverColor: colors_1.WHITE,
|
|
94
|
+
}),
|
|
96
95
|
paddingLeft: 12 + level * 8,
|
|
97
96
|
};
|
|
98
|
-
}, [dragHovered,
|
|
99
|
-
const label = (0, react_1.useMemo)(() => {
|
|
100
|
-
return {
|
|
101
|
-
...labelStyle,
|
|
102
|
-
color: selected || hovered ? colors_1.WHITE : colors_1.LIGHT_TEXT,
|
|
103
|
-
};
|
|
104
|
-
}, [hovered, selected]);
|
|
97
|
+
}, [dragHovered, level, selected]);
|
|
105
98
|
const onClick = (0, react_1.useCallback)((evt) => {
|
|
106
99
|
evt.preventDefault();
|
|
107
100
|
if (item.type === 'composition') {
|
|
@@ -253,13 +246,13 @@ const CompositionSelectorItem = ({ item, level, currentComposition, tabIndex, se
|
|
|
253
246
|
}, [clearRootDragHover, item, toggleFolder]);
|
|
254
247
|
if (item.type === 'folder') {
|
|
255
248
|
return (jsx_runtime_1.jsxs(jsx_runtime_1.Fragment, { children: [
|
|
256
|
-
jsx_runtime_1.jsx(ContextMenu_1.ContextMenu, { getItems: getContextMenuItems, children: jsx_runtime_1.jsx(layout_1.Row, { align: "center", children: jsx_runtime_1.jsxs("div", { style: style, className:
|
|
249
|
+
jsx_runtime_1.jsx(ContextMenu_1.ContextMenu, { getItems: getContextMenuItems, children: jsx_runtime_1.jsx(layout_1.Row, { align: "center", children: jsx_runtime_1.jsxs("div", { style: style, className: `__remotion-composition-selector-item ${hoverable_1.HOVERABLE_CLASS_NAME} ${hoverable_1.HOVER_GROUP_CLASS_NAME}`, tabIndex: tabIndex, onClick: onClick, onKeyDown: onKeyDown, onDragOver: onFolderDragOver, onDragLeave: onFolderDragLeave, onDrop: onFolderDrop, title: item.folderName, role: "button", children: [item.expanded ? (jsx_runtime_1.jsx(folder_1.ExpandedFolderIcon, { style: iconStyle, color: colors_1.CURRENT_COLOR })) : (jsx_runtime_1.jsx(folder_1.CollapsedFolderIcon, { color: colors_1.CURRENT_COLOR, style: iconStyle })), jsx_runtime_1.jsx(layout_1.Spacing, { x: 1 }), jsx_runtime_1.jsx("div", { style: labelStyle, children: item.folderName }), jsx_runtime_1.jsx(layout_1.Spacing, { x: 0.5 }), jsx_runtime_1.jsx(CompositionContextButton_1.CompositionContextButton, { getItems: getContextMenuItems, visible: true, readOnlyStudio: window.remotion_isReadOnlyStudio })
|
|
257
250
|
] }) }) }), item.expanded ? (jsx_runtime_1.jsx("div", { onDragOver: onFolderChildListDragOver, onDrop: onFolderDrop, children: item.items.map((childItem) => {
|
|
258
251
|
return (jsx_runtime_1.jsx(exports.CompositionSelectorItem, { currentComposition: currentComposition, selectComposition: selectComposition, item: childItem, tabIndex: tabIndex, level: level + 1, toggleFolder: toggleFolder, clearRootDragHover: clearRootDragHover }, childItem.key + childItem.type));
|
|
259
252
|
}) })) : null] }));
|
|
260
253
|
}
|
|
261
|
-
return (jsx_runtime_1.jsx(ContextMenu_1.ContextMenu, { getItems: getContextMenuItems, children: jsx_runtime_1.jsx(layout_1.Row, { align: "center", children: jsx_runtime_1.jsxs("a", { ref: compositionRowRef, style: style,
|
|
262
|
-
jsx_runtime_1.jsx(CompositionOrStillIcon_1.CompositionOrStillIcon, { composition: item.composition, color:
|
|
254
|
+
return (jsx_runtime_1.jsx(ContextMenu_1.ContextMenu, { getItems: getContextMenuItems, children: jsx_runtime_1.jsx(layout_1.Row, { align: "center", children: jsx_runtime_1.jsxs("a", { ref: compositionRowRef, style: style, tabIndex: tabIndex, onClick: onClick, onKeyDown: onKeyDown, draggable: !window.remotion_isReadOnlyStudio, onDragStart: onCompositionDragStart, onDragEnd: onCompositionDragEnd, type: "button", title: item.composition.id, className: `__remotion-composition __remotion-composition-selector-item ${hoverable_1.HOVERABLE_CLASS_NAME} ${hoverable_1.HOVER_GROUP_CLASS_NAME}`, "data-compname": item.composition.id, children: [
|
|
255
|
+
jsx_runtime_1.jsx(CompositionOrStillIcon_1.CompositionOrStillIcon, { composition: item.composition, color: colors_1.CURRENT_COLOR, style: iconStyle }), jsx_runtime_1.jsx(layout_1.Spacing, { x: 1 }), jsx_runtime_1.jsx("div", { style: labelStyle, children: item.composition.id }), jsx_runtime_1.jsx(layout_1.Spacing, { x: 0.5 }), jsx_runtime_1.jsx(CompositionContextButton_1.CompositionContextButton, { getItems: getContextMenuItems, visible: !isDragging, readOnlyStudio: window.remotion_isReadOnlyStudio }), jsx_runtime_1.jsx(SidebarRenderButton_1.SidebarRenderButton, { visible: !isDragging, composition: item.composition, readOnlyStudio: window.remotion_isReadOnlyStudio })
|
|
263
256
|
] }) }) }));
|
|
264
257
|
};
|
|
265
258
|
exports.CompositionSelectorItem = CompositionSelectorItem;
|