@remotion/studio 4.0.522 → 4.0.524
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/install-package.js +4 -2
- package/dist/components/ActionTooltip.d.ts +9 -0
- package/dist/components/ActionTooltip.js +143 -0
- package/dist/components/AssetAudioVolume.d.ts +5 -0
- package/dist/components/AssetAudioVolume.js +33 -0
- package/dist/components/Canvas.js +8 -8
- package/dist/components/CaptionInspector.js +74 -20
- package/dist/components/CheckboardToggle.js +9 -10
- package/dist/components/Checkbox.d.ts +1 -0
- package/dist/components/Checkbox.js +2 -2
- package/dist/components/CompositionContextButton.js +4 -1
- package/dist/components/CompositionSelectorItem.js +2 -2
- package/dist/components/ConfigureLicenseModal.js +1 -1
- package/dist/components/CurrentAsset.js +40 -6
- package/dist/components/EditorContexts.js +3 -1
- package/dist/components/ElementInstallConfirmation.js +254 -137
- package/dist/components/FixComputedValueModal.js +38 -8
- package/dist/components/FullscreenToggle.js +8 -10
- package/dist/components/GlobalKeybindings.js +107 -49
- package/dist/components/InspectorPanel/MultiSequenceField.d.ts +12 -0
- package/dist/components/InspectorPanel/MultiSequenceField.js +131 -0
- package/dist/components/InspectorPanel/MultiSequenceInspector.d.ts +8 -0
- package/dist/components/InspectorPanel/MultiSequenceInspector.js +102 -0
- package/dist/components/InspectorPanel/MultiSequenceNumberField.d.ts +9 -0
- package/dist/components/InspectorPanel/MultiSequenceNumberField.js +88 -0
- package/dist/components/InspectorPanel.js +4 -0
- package/dist/components/InspectorSequenceSection.js +69 -6
- package/dist/components/InstallPackage.js +4 -5
- package/dist/components/KeyboardShortcutsSettings.js +212 -33
- package/dist/components/LazySyntaxHighlightedSource.d.ts +4 -0
- package/dist/components/LazySyntaxHighlightedSource.js +43 -0
- package/dist/components/LoopToggle.js +8 -2
- package/dist/components/MenuToolbar.js +11 -7
- package/dist/components/ModalContainer.d.ts +1 -0
- package/dist/components/ModalContainer.js +2 -2
- package/dist/components/Modals.js +3 -1
- package/dist/components/ModelManager.d.ts +16 -0
- package/dist/components/ModelManager.js +200 -0
- package/dist/components/ModelsSettings.d.ts +2 -0
- package/dist/components/ModelsSettings.js +133 -0
- package/dist/components/MuteToggle.d.ts +1 -0
- package/dist/components/MuteToggle.js +16 -6
- package/dist/components/NewComposition/DismissableModal.d.ts +1 -0
- package/dist/components/NewComposition/DismissableModal.js +2 -2
- package/dist/components/NewComposition/InputDragger.d.ts +2 -2
- package/dist/components/NewComposition/InputDragger.js +6 -6
- package/dist/components/NewComposition/NewComposition.d.ts +1 -0
- package/dist/components/NewComposition/NewComposition.js +5 -4
- package/dist/components/NewComposition/NewFolder.js +9 -8
- package/dist/components/NewComposition/RenameComposition.js +3 -2
- package/dist/components/NewComposition/RenameFolder.js +15 -10
- package/dist/components/NewComposition/SlugPreview.d.ts +7 -0
- package/dist/components/NewComposition/SlugPreview.js +18 -0
- package/dist/components/OptionalPackageModal.d.ts +11 -0
- package/dist/components/OptionalPackageModal.js +155 -0
- package/dist/components/OutlineToggle.js +16 -10
- package/dist/components/PlayPause.js +11 -9
- package/dist/components/PlaybackKeyboardShortcutsManager.d.ts +2 -0
- package/dist/components/PlaybackKeyboardShortcutsManager.js +39 -7
- package/dist/components/PlaybackRateSelector.js +2 -2
- package/dist/components/PreviewToolbar.js +1 -1
- package/dist/components/PreviewToolbarOverflowButton.js +19 -4
- package/dist/components/QuickSwitcher/ExplorerQuickSwitcherTrigger.js +5 -2
- package/dist/components/RadioButton.d.ts +1 -0
- package/dist/components/RadioButton.js +2 -2
- package/dist/components/RenderButton.js +5 -1
- package/dist/components/RenderModal/NumberSetting.d.ts +6 -1
- package/dist/components/RenderModal/NumberSetting.js +2 -2
- package/dist/components/RenderModal/RenderModalBasic.js +1 -1
- package/dist/components/RenderModal/RenderModalOutputName.d.ts +3 -1
- package/dist/components/RenderModal/RenderModalOutputName.js +4 -4
- package/dist/components/RenderModal/SeparateAudioOption.js +1 -1
- package/dist/components/RenderModal/WebRenderModalBasic.js +1 -1
- package/dist/components/RenderQueue/CaptionQueueItem.d.ts +6 -0
- package/dist/components/RenderQueue/CaptionQueueItem.js +130 -0
- package/dist/components/RenderQueue/CaptionQueueProcessor.d.ts +1 -0
- package/dist/components/RenderQueue/CaptionQueueProcessor.js +110 -0
- package/dist/components/RenderQueue/CaptionQueueProcessorLoader.d.ts +2 -0
- package/dist/components/RenderQueue/CaptionQueueProcessorLoader.js +54 -0
- package/dist/components/RenderQueue/RenderQueueCopyToClipboard.js +2 -1
- package/dist/components/RenderQueue/RenderQueueDownloadItem.js +2 -1
- package/dist/components/RenderQueue/RenderQueueItem.js +3 -3
- package/dist/components/RenderQueue/RenderQueueItemCancelButton.js +2 -1
- package/dist/components/RenderQueue/RenderQueueOpenInFolder.js +2 -1
- package/dist/components/RenderQueue/RenderQueueRemoveItem.js +2 -1
- package/dist/components/RenderQueue/RenderQueueRepeat.js +2 -1
- package/dist/components/RenderQueue/VideoMattingQueueItem.d.ts +6 -0
- package/dist/components/RenderQueue/VideoMattingQueueItem.js +130 -0
- package/dist/components/RenderQueue/VideoMattingQueueProcessor.d.ts +1 -0
- package/dist/components/RenderQueue/VideoMattingQueueProcessor.js +105 -0
- package/dist/components/RenderQueue/VideoMattingQueueProcessorLoader.d.ts +2 -0
- package/dist/components/RenderQueue/VideoMattingQueueProcessorLoader.js +54 -0
- package/dist/components/RenderQueue/caption-job-types.d.ts +47 -0
- package/dist/components/RenderQueue/caption-job-types.js +7 -0
- package/dist/components/RenderQueue/context.d.ts +16 -0
- package/dist/components/RenderQueue/context.js +224 -11
- package/dist/components/RenderQueue/index.js +34 -10
- package/dist/components/RenderQueue/item-style.d.ts +1 -0
- package/dist/components/RenderQueue/item-style.js +2 -1
- package/dist/components/RenderQueue/load-model-for-job.d.ts +11 -0
- package/dist/components/RenderQueue/load-model-for-job.js +14 -0
- package/dist/components/RenderQueue/video-matting-job-types.d.ts +38 -0
- package/dist/components/RenderQueue/video-matting-job-types.js +5 -0
- package/dist/components/RendersTab.js +4 -4
- package/dist/components/RulersAndGuidesToggle.js +7 -1
- package/dist/components/SegmentedControl.d.ts +2 -2
- package/dist/components/SegmentedControl.js +38 -13
- package/dist/components/SelectedOutlinePolygon.js +8 -2
- package/dist/components/SettingsButton.d.ts +4 -0
- package/dist/components/SettingsButton.js +51 -0
- package/dist/components/SettingsModal.d.ts +1 -1
- package/dist/components/SettingsModal.js +3 -1
- package/dist/components/ShowOutlinesProvider.js +12 -0
- package/dist/components/SidebarCollapserControls.js +17 -21
- package/dist/components/SizeSelector.js +12 -4
- package/dist/components/SkillsSettings.js +2 -3
- package/dist/components/SnappingToggle.js +9 -8
- package/dist/components/StudioSettings.js +32 -18
- package/dist/components/SyntaxHighlightedSource.d.ts +5 -0
- package/dist/components/SyntaxHighlightedSource.js +78 -0
- package/dist/components/Tabs/vertical.d.ts +1 -0
- package/dist/components/Tabs/vertical.js +2 -2
- package/dist/components/TimeValue.js +2 -3
- package/dist/components/Timeline/SequencePropsObserver.js +4 -0
- package/dist/components/Timeline/Timeline.js +49 -81
- package/dist/components/Timeline/TimelineClipboardKeybindings.js +2 -4
- package/dist/components/Timeline/TimelineDeleteKeybindings.js +3 -18
- package/dist/components/Timeline/TimelineDragHandler.js +2 -2
- package/dist/components/Timeline/TimelineExpandedKeyframeRow.js +1 -0
- package/dist/components/Timeline/TimelineLayerChildren.js +12 -9
- package/dist/components/Timeline/TimelineRowChrome.js +11 -3
- package/dist/components/Timeline/TimelineSchemaField.js +8 -4
- package/dist/components/Timeline/TimelineSelection.d.ts +2 -0
- package/dist/components/Timeline/TimelineSelection.js +55 -2
- package/dist/components/Timeline/TimelineSequence.js +75 -17
- package/dist/components/Timeline/TimelineSequenceItem.d.ts +0 -1
- package/dist/components/Timeline/TimelineSequenceItem.js +208 -111
- package/dist/components/Timeline/TimelineSequenceRightEdgeDragHandle.d.ts +23 -3
- package/dist/components/Timeline/TimelineSequenceRightEdgeDragHandle.js +73 -25
- package/dist/components/Timeline/TimelineTimeIndicators.js +1 -0
- package/dist/components/Timeline/TimelineZoomControls.js +2 -1
- package/dist/components/Timeline/timeline-field-display-utils.js +8 -5
- package/dist/components/Timeline/use-asset-timeline-context-menu.d.ts +2 -0
- package/dist/components/Timeline/use-asset-timeline-context-menu.js +52 -0
- package/dist/components/TimelineCombobox.d.ts +1 -0
- package/dist/components/TimelineCombobox.js +8 -4
- package/dist/components/TimelineInOutToggle.js +14 -18
- package/dist/components/Transcription/LazyModels.d.ts +1 -0
- package/dist/components/Transcription/LazyModels.js +5 -0
- package/dist/components/Transcription/Models.d.ts +6 -0
- package/dist/components/Transcription/Models.js +18 -0
- package/dist/components/Transcription/TranscriptionModal.d.ts +3 -0
- package/dist/components/Transcription/TranscriptionModal.js +428 -0
- package/dist/components/Transcription/TranscriptionModalWithOptionalWhisper.d.ts +5 -0
- package/dist/components/Transcription/TranscriptionModalWithOptionalWhisper.js +48 -0
- package/dist/components/Transcription/caption-output-name.d.ts +2 -0
- package/dist/components/Transcription/caption-output-name.js +10 -0
- package/dist/components/Transcription/resample-media-to-16-khz.d.ts +6 -0
- package/dist/components/Transcription/resample-media-to-16-khz.js +82 -0
- package/dist/components/Transcription/whisper-languages.d.ts +2 -0
- package/dist/components/Transcription/whisper-languages.js +104 -0
- package/dist/components/Transcription/whisper-webgpu-capability.d.ts +2 -0
- package/dist/components/Transcription/whisper-webgpu-capability.js +7 -0
- package/dist/components/UndoRedoButtons.js +13 -38
- package/dist/components/UpdatesSettings.js +8 -12
- package/dist/components/VideoMatting/LazyModels.d.ts +1 -0
- package/dist/components/VideoMatting/LazyModels.js +5 -0
- package/dist/components/VideoMatting/Models.d.ts +6 -0
- package/dist/components/VideoMatting/Models.js +18 -0
- package/dist/components/VideoMatting/VideoMattingModal.d.ts +3 -0
- package/dist/components/VideoMatting/VideoMattingModal.js +207 -0
- package/dist/components/VideoMatting/VideoMattingModalWithOptionalPackage.d.ts +5 -0
- package/dist/components/VideoMatting/VideoMattingModalWithOptionalPackage.js +46 -0
- package/dist/components/VideoMatting/video-matting-capability.d.ts +2 -0
- package/dist/components/VideoMatting/video-matting-capability.js +7 -0
- package/dist/components/WebMcp.js +439 -22
- package/dist/components/handle-drop.js +3 -2
- package/dist/components/import-assets.d.ts +3 -2
- package/dist/components/import-assets.js +5 -9
- package/dist/components/keyboard-shortcuts.d.ts +17 -1
- package/dist/components/keyboard-shortcuts.js +191 -89
- package/dist/components/public-output-name.d.ts +5 -0
- package/dist/components/public-output-name.js +60 -0
- package/dist/components/use-model-cache-status.d.ts +7 -0
- package/dist/components/use-model-cache-status.js +35 -0
- package/dist/error-overlay/remotion-overlay/CodeFrame.js +29 -18
- package/dist/esm/CaptionQueueProcessor-k0yrm3dj.mjs +211 -0
- package/dist/esm/LazyModels-hc33szyn.mjs +11 -0
- package/dist/esm/LazyModels-sg40rjw6.mjs +11 -0
- package/dist/esm/SyntaxHighlightedSource-3xks91rz.mjs +1236 -0
- package/dist/esm/TranscriptionModal-3ctnxpt6.mjs +1011 -0
- package/dist/esm/VideoMattingModal-b0r7e60n.mjs +374 -0
- package/dist/esm/VideoMattingQueueProcessor-t1hgm2rm.mjs +109 -0
- package/dist/esm/index-1b9skrrd.mjs +142 -0
- package/dist/esm/index-2j3d1g81.mjs +261 -0
- package/dist/esm/index-5zrb1ft4.mjs +39 -0
- package/dist/esm/index-7tt71e8n.mjs +36 -0
- package/dist/esm/index-9qtvmwtx.mjs +1366 -0
- package/dist/esm/index-9x6e1dq0.mjs +428 -0
- package/dist/esm/index-c37kme2v.mjs +46209 -0
- package/dist/esm/index-cw0pnpg5.mjs +50 -0
- package/dist/esm/index-e3zwf3e7.mjs +36 -0
- package/dist/esm/index-er3mh6em.mjs +54688 -0
- package/dist/esm/{chunk-je0h1bgt.js → index-k426ye99.mjs} +4 -1
- package/dist/esm/index-q2epbw93.mjs +423 -0
- package/dist/esm/index-q5xv20xx.mjs +41 -0
- package/dist/esm/{chunk-6jf1natv.js → index-rcv7qkt5.mjs} +18 -1
- package/dist/esm/index-v4tr1bft.mjs +20 -0
- package/dist/esm/index-wbmp5srk.mjs +35 -0
- package/dist/esm/index-yfrysr5f.mjs +1154 -0
- package/dist/esm/index.mjs +45 -933
- package/dist/esm/internals.mjs +13 -114393
- package/dist/esm/previewEntry.mjs +387 -115050
- package/dist/esm/renderEntry.mjs +5 -5
- package/dist/esm/{chunk-m0jqdbkr.js → resolve-composition-component-location-bt2d6qxq.mjs} +1 -1
- package/dist/helpers/colors.d.ts +1 -0
- package/dist/helpers/colors.js +4 -3
- package/dist/helpers/drag-aware-double-click.d.ts +2 -1
- package/dist/helpers/drag-aware-double-click.js +12 -1
- package/dist/helpers/get-asset-metadata.d.ts +1 -0
- package/dist/helpers/get-asset-metadata.js +4 -0
- package/dist/helpers/hoverable.js +8 -0
- package/dist/helpers/inject-css.js +2 -0
- package/dist/helpers/optional-package-dependencies.d.ts +3 -0
- package/dist/helpers/optional-package-dependencies.js +24 -0
- package/dist/helpers/pointer-session.d.ts +6 -0
- package/dist/helpers/pointer-session.js +36 -14
- package/dist/helpers/prism-vsc-dark-plus.d.ts +1 -0
- package/dist/helpers/prism-vsc-dark-plus.js +305 -0
- package/dist/helpers/sequence-node-path-mutations.js +11 -0
- package/dist/helpers/slugify-name.d.ts +1 -0
- package/dist/helpers/slugify-name.js +14 -0
- package/dist/helpers/studio-runtime-config.d.ts +1 -0
- package/dist/helpers/studio-runtime-config.js +6 -1
- package/dist/helpers/use-create-composition.d.ts +1 -0
- package/dist/helpers/use-create-composition.js +12 -7
- package/dist/helpers/use-keybinding.d.ts +9 -3
- package/dist/helpers/use-keybinding.js +8 -9
- package/dist/helpers/use-keyboard-shortcut-label.d.ts +2 -0
- package/dist/helpers/use-keyboard-shortcut-label.js +15 -0
- package/dist/helpers/use-menu-structure.js +59 -14
- package/dist/helpers/use-rename-composition.d.ts +1 -0
- package/dist/helpers/use-rename-composition.js +11 -5
- package/dist/icons/input-props.d.ts +1 -1
- package/dist/icons/input-props.js +2 -2
- package/dist/icons/models.d.ts +4 -0
- package/dist/icons/models.js +7 -0
- package/dist/icons/separation.d.ts +4 -0
- package/dist/icons/separation.js +7 -0
- package/dist/icons/skills.js +1 -1
- package/dist/icons/transcription.d.ts +4 -0
- package/dist/icons/transcription.js +7 -0
- package/dist/icons/upload.js +1 -1
- package/dist/renderEntry.js +2 -2
- package/dist/state/modals.d.ts +14 -2
- package/package.json +35 -21
- package/dist/components/UpdateCheck.d.ts +0 -1
- package/dist/components/UpdateCheck.js +0 -79
- package/dist/esm/chunk-3netyjd9.js +0 -99793
|
@@ -60,6 +60,7 @@ const getTimelineSelectedTrackHighlightStyle = (timelineWidth, backgroundColor =
|
|
|
60
60
|
position: 'absolute',
|
|
61
61
|
top: 0,
|
|
62
62
|
width: timelineWidth,
|
|
63
|
+
minWidth: `calc(100% + ${timeline_layout_1.TIMELINE_PADDING * 2}px)`,
|
|
63
64
|
});
|
|
64
65
|
exports.getTimelineSelectedTrackHighlightStyle = getTimelineSelectedTrackHighlightStyle;
|
|
65
66
|
const getTimelineRowHighlightBackground = ({ showSelectedBackground, selected, containsSelection, hovered, selectedBackground, }) => {
|
|
@@ -219,6 +220,7 @@ const defaultTimelineSelectionContextValue = {
|
|
|
219
220
|
selectedItems: [],
|
|
220
221
|
}),
|
|
221
222
|
containsSelection: () => false,
|
|
223
|
+
remapSelectionNodePaths: () => undefined,
|
|
222
224
|
clearSelection: () => undefined,
|
|
223
225
|
};
|
|
224
226
|
const TimelineSelectionContext = (0, react_1.createContext)(defaultTimelineSelectionContextValue);
|
|
@@ -414,7 +416,7 @@ const TimelineSelectAllKeybindings = ({ timeline }) => {
|
|
|
414
416
|
}
|
|
415
417
|
const selectAll = keybindings.registerKeybinding({
|
|
416
418
|
event: 'keydown',
|
|
417
|
-
|
|
419
|
+
action: 'selectAllSequenceRows',
|
|
418
420
|
callback: () => {
|
|
419
421
|
const latestSelectableSequenceSelections = selectableSequenceSelectionsRef.current;
|
|
420
422
|
if (latestSelectableSequenceSelections.length === 0) {
|
|
@@ -422,7 +424,6 @@ const TimelineSelectAllKeybindings = ({ timeline }) => {
|
|
|
422
424
|
}
|
|
423
425
|
currentSelection.current.selectItems(latestSelectableSequenceSelections);
|
|
424
426
|
},
|
|
425
|
-
commandCtrlKey: true,
|
|
426
427
|
preventDefault: true,
|
|
427
428
|
triggerIfInputFieldFocused: false,
|
|
428
429
|
keepRegisteredWhenNotHighestContext: false,
|
|
@@ -684,6 +685,56 @@ const TimelineSelectionProvider = ({ children }) => {
|
|
|
684
685
|
return availableSelectedItems.some((selected) => selected.type !== 'guide' &&
|
|
685
686
|
nodePathDescendsFrom(selected.nodePathInfo, nodePathInfo));
|
|
686
687
|
}, [availableSelectedItems]);
|
|
688
|
+
const remapSelectionNodePaths = (0, react_1.useCallback)((mutations) => {
|
|
689
|
+
const remapItem = (item) => {
|
|
690
|
+
if (item === null || item.type === 'guide') {
|
|
691
|
+
return item;
|
|
692
|
+
}
|
|
693
|
+
const { sequenceSubscriptionKey } = item.nodePathInfo;
|
|
694
|
+
let { nodePath } = sequenceSubscriptionKey;
|
|
695
|
+
let wasRemapped = false;
|
|
696
|
+
for (const mutation of mutations) {
|
|
697
|
+
const file = mutation.files.find((candidate) => candidate.absolutePath === sequenceSubscriptionKey.absolutePath);
|
|
698
|
+
if (!file) {
|
|
699
|
+
continue;
|
|
700
|
+
}
|
|
701
|
+
const nodePathString = JSON.stringify(nodePath);
|
|
702
|
+
const remapping = file.remappings.find((candidate) => candidate.oldNodePath !== null &&
|
|
703
|
+
JSON.stringify(candidate.oldNodePath) === nodePathString);
|
|
704
|
+
if (!remapping) {
|
|
705
|
+
continue;
|
|
706
|
+
}
|
|
707
|
+
wasRemapped = true;
|
|
708
|
+
if (remapping.newNodePath === null) {
|
|
709
|
+
return null;
|
|
710
|
+
}
|
|
711
|
+
nodePath = remapping.newNodePath;
|
|
712
|
+
}
|
|
713
|
+
if (!wasRemapped) {
|
|
714
|
+
return item;
|
|
715
|
+
}
|
|
716
|
+
return {
|
|
717
|
+
...item,
|
|
718
|
+
nodePathInfo: {
|
|
719
|
+
...item.nodePathInfo,
|
|
720
|
+
sequenceSubscriptionKey: {
|
|
721
|
+
...sequenceSubscriptionKey,
|
|
722
|
+
nodePath,
|
|
723
|
+
},
|
|
724
|
+
},
|
|
725
|
+
};
|
|
726
|
+
};
|
|
727
|
+
const snapshot = selectionController.getSnapshot();
|
|
728
|
+
const selectedItems = snapshot.selectedItems
|
|
729
|
+
.map(remapItem)
|
|
730
|
+
.filter((item) => item !== null);
|
|
731
|
+
const anchor = remapItem(snapshot.anchor);
|
|
732
|
+
if (selectedItems.some((item, index) => item !== snapshot.selectedItems[index]) ||
|
|
733
|
+
selectedItems.length !== snapshot.selectedItems.length ||
|
|
734
|
+
anchor !== snapshot.anchor) {
|
|
735
|
+
selectionController.setSnapshot({ selectedItems, anchor });
|
|
736
|
+
}
|
|
737
|
+
}, [selectionController]);
|
|
687
738
|
const value = (0, react_1.useMemo)(() => ({
|
|
688
739
|
canSelect,
|
|
689
740
|
revealRequest,
|
|
@@ -694,6 +745,7 @@ const TimelineSelectionProvider = ({ children }) => {
|
|
|
694
745
|
registerMarqueeSelectableItem,
|
|
695
746
|
getMarqueeSelection: getMarqueeSelectionForRect,
|
|
696
747
|
containsSelection,
|
|
748
|
+
remapSelectionNodePaths,
|
|
697
749
|
clearSelection,
|
|
698
750
|
}), [
|
|
699
751
|
canSelect,
|
|
@@ -705,6 +757,7 @@ const TimelineSelectionProvider = ({ children }) => {
|
|
|
705
757
|
registerMarqueeSelectableItem,
|
|
706
758
|
getMarqueeSelectionForRect,
|
|
707
759
|
containsSelection,
|
|
760
|
+
remapSelectionNodePaths,
|
|
708
761
|
clearSelection,
|
|
709
762
|
]);
|
|
710
763
|
const currentSelection = (0, react_1.useRef)(value);
|
|
@@ -69,6 +69,7 @@ const TimelineSequenceRightEdgeDragHandle_1 = require("./TimelineSequenceRightEd
|
|
|
69
69
|
const TimelineVideoInfo_1 = require("./TimelineVideoInfo");
|
|
70
70
|
const TimelineViewport_1 = require("./TimelineViewport");
|
|
71
71
|
const TimelineWidthProvider_1 = require("./TimelineWidthProvider");
|
|
72
|
+
const use_asset_timeline_context_menu_1 = require("./use-asset-timeline-context-menu");
|
|
72
73
|
const use_delete_timeline_items_1 = require("./use-delete-timeline-items");
|
|
73
74
|
const use_open_sequence_in_apps_1 = require("./use-open-sequence-in-apps");
|
|
74
75
|
const use_sequence_freeze_frame_menu_item_1 = require("./use-sequence-freeze-frame-menu-item");
|
|
@@ -118,8 +119,10 @@ const TimelineSequenceNegativeStartInner = ({ left, width, leftEdgeVisible, clip
|
|
|
118
119
|
return (jsx_runtime_1.jsx("div", { style: outerStyle, children: jsx_runtime_1.jsx("div", { style: innerStyle }) }));
|
|
119
120
|
};
|
|
120
121
|
const TimelineSequenceNegativeStart = react_1.default.memo(TimelineSequenceNegativeStartInner);
|
|
121
|
-
const TimelineSequenceCurrentFrame = ({ s, displayDurationInFrames, premount, postmount, negativeStart, leftEdgeVisible, negativeStartClipped, style, children, edgeDragHandles, nodePathInfo, sequenceFrameOffset, fromCanUpdate, frozenFrame, onMoveDragPointerDown, onPointerDownCapture,
|
|
122
|
+
const TimelineSequenceCurrentFrame = ({ s, displayDurationInFrames, premount, postmount, negativeStart, leftEdgeVisible, negativeStartClipped, style, children, edgeDragHandles, nodePathInfo, sequenceFrameOffset, fromCanUpdate, frozenFrame, onMoveDragPointerDown, onPointerDownCapture, onClick, }) => {
|
|
122
123
|
var _a, _b, _c;
|
|
124
|
+
const { canvasContent } = (0, react_1.useContext)(remotion_1.Internals.CompositionManager);
|
|
125
|
+
const isAsset = (canvasContent === null || canvasContent === void 0 ? void 0 : canvasContent.type) === 'asset';
|
|
123
126
|
const ref = (0, react_1.useRef)(null);
|
|
124
127
|
const { onSelect, selectable, selected, selectionItem } = (0, TimelineSelection_1.useTimelineRowSelection)(nodePathInfo);
|
|
125
128
|
(0, TimelineSelection_1.useTimelineMarqueeSelectableItem)(selectionItem, ref);
|
|
@@ -163,9 +166,9 @@ const TimelineSequenceCurrentFrame = ({ s, displayDurationInFrames, premount, po
|
|
|
163
166
|
...style,
|
|
164
167
|
background: negativeStart ? colors_1.TRANSPARENT : style.background,
|
|
165
168
|
border: negativeStart ? 'none' : style.border,
|
|
166
|
-
opacity: selected ? 1 : 0.75,
|
|
169
|
+
opacity: selected || isAsset ? 1 : 0.75,
|
|
167
170
|
};
|
|
168
|
-
}, [negativeStart, selected, style]);
|
|
171
|
+
}, [isAsset, negativeStart, selected, style]);
|
|
169
172
|
const content = (jsx_runtime_1.jsxs(jsx_runtime_1.Fragment, { children: [premount ? (jsx_runtime_1.jsx("div", { style: {
|
|
170
173
|
left: premount.left,
|
|
171
174
|
width: premount.width,
|
|
@@ -200,7 +203,7 @@ const TimelineSequenceCurrentFrame = ({ s, displayDurationInFrames, premount, po
|
|
|
200
203
|
display: 'flex',
|
|
201
204
|
alignItems: 'center',
|
|
202
205
|
}, children: jsx_runtime_1.jsx(TimelineSequenceFrame_1.TimelineSequenceFrame, { premounted: isPremounting, postmounted: isPostmounting ? s.duration - 1 : null, roundedFrame: roundedFrame, frozenFrame: frozenFrame }) })) : null] }));
|
|
203
|
-
return (jsx_runtime_1.jsxs("div", { ref: ref, [TimelineSelection_1.TIMELINE_MARQUEE_ITEM_ATTR]: true, style: actualStyle, title: s.displayName, onPointerDownCapture: onPointerDownCapture, onPointerDown: selectable ? onPointerDown : undefined,
|
|
206
|
+
return (jsx_runtime_1.jsxs("div", { ref: ref, [TimelineSelection_1.TIMELINE_MARQUEE_ITEM_ATTR]: true, style: actualStyle, title: s.displayName, onPointerDownCapture: onPointerDownCapture, onPointerDown: selectable ? onPointerDown : undefined, onClick: onClick !== null && onClick !== void 0 ? onClick : undefined, children: [negativeStart ? (jsx_runtime_1.jsxs(jsx_runtime_1.Fragment, { children: [
|
|
204
207
|
jsx_runtime_1.jsx(TimelineSequenceNegativeStart, { left: negativeStart.left, width: negativeStart.width, leftEdgeVisible: leftEdgeVisible, clipped: negativeStartClipped }), jsx_runtime_1.jsx("div", { style: {
|
|
205
208
|
background: style.background,
|
|
206
209
|
border: style.border,
|
|
@@ -235,18 +238,19 @@ const TimelineSequenceInner = ({ s, connectedCompositions, windowWidth, nodePath
|
|
|
235
238
|
// If a duration is 1, it is essentially a still and it should have width 0
|
|
236
239
|
// Some compositions may not be longer than their media duration,
|
|
237
240
|
// if that is the case, it needs to be asynchronously determined
|
|
238
|
-
var _a, _b, _c;
|
|
239
|
-
var
|
|
241
|
+
var _a, _b, _c, _d, _e;
|
|
242
|
+
var _f, _g, _h, _j, _k, _l, _m;
|
|
240
243
|
const video = remotion_1.Internals.useVideo();
|
|
241
244
|
const { sequences } = (0, react_1.useContext)(remotion_1.Internals.SequenceManager);
|
|
242
245
|
const renderWindow = (0, react_1.useContext)(TimelineViewport_1.TimelineViewportContext);
|
|
246
|
+
const mediaDurationDragLimitsRegistry = (0, react_1.useContext)(TimelineSequenceRightEdgeDragHandle_1.TimelineSequenceMediaDurationDragLimitsContext);
|
|
243
247
|
const dragAwareDoubleClick = (0, react_1.useMemo)(() => (0, drag_aware_double_click_1.createDragAwareDoubleClickTracker)(), []);
|
|
244
248
|
const mediaMetadata = (0, use_media_metadata_1.useMediaMetadata)(s.type === 'audio' || s.type === 'video' ? s.src : null);
|
|
245
249
|
const extendVideoLastFrame = (0, is_video_with_last_frame_hold_1.isVideoWithLastFrameHold)(s);
|
|
246
250
|
const naturalMediaDuration = (s.type === 'audio' || s.type === 'video') &&
|
|
247
251
|
mediaMetadata !== null &&
|
|
248
252
|
s.playbackRate > 0
|
|
249
|
-
? Math.max(0, (mediaMetadata.duration * ((
|
|
253
|
+
? Math.max(0, (mediaMetadata.duration * ((_f = video === null || video === void 0 ? void 0 : video.fps) !== null && _f !== void 0 ? _f : 30) -
|
|
250
254
|
(0, get_timeline_media_start_frame_1.getTimelineMediaStartFrame)({
|
|
251
255
|
startMediaFrom: s.startMediaFrom,
|
|
252
256
|
mediaFrameAtSequenceZero: s.mediaFrameAtSequenceZero,
|
|
@@ -274,7 +278,7 @@ const TimelineSequenceInner = ({ s, connectedCompositions, windowWidth, nodePath
|
|
|
274
278
|
};
|
|
275
279
|
}, [originalLocation]);
|
|
276
280
|
const { propStatuses } = (0, react_1.useContext)(remotion_1.Internals.VisualModePropStatusesContext);
|
|
277
|
-
const nodePath = (
|
|
281
|
+
const nodePath = (_g = nodePathInfo === null || nodePathInfo === void 0 ? void 0 : nodePathInfo.sequenceSubscriptionKey) !== null && _g !== void 0 ? _g : null;
|
|
278
282
|
const propStatusesForOverride = (0, react_1.useMemo)(() => {
|
|
279
283
|
return nodePath
|
|
280
284
|
? remotion_1.Internals.getPropStatusesCtx(propStatuses, nodePath)
|
|
@@ -284,7 +288,6 @@ const TimelineSequenceInner = ({ s, connectedCompositions, windowWidth, nodePath
|
|
|
284
288
|
((_a = propStatusesForOverride === null || propStatusesForOverride === void 0 ? void 0 : propStatusesForOverride.durationInFrames) === null || _a === void 0 ? void 0 : _a.status) === 'static');
|
|
285
289
|
const durationCanResize = Boolean((0, interactivity_enabled_1.isStudioInteractivityEnabled)() &&
|
|
286
290
|
(0, TimelineSequenceRightEdgeDragHandle_1.canResizeTimelineSequenceDuration)({
|
|
287
|
-
sequence: s,
|
|
288
291
|
status: propStatusesForOverride === null || propStatusesForOverride === void 0 ? void 0 : propStatusesForOverride.durationInFrames,
|
|
289
292
|
}));
|
|
290
293
|
const fromCanUpdate = Boolean((0, interactivity_enabled_1.isStudioInteractivityEnabled)() &&
|
|
@@ -297,6 +300,7 @@ const TimelineSequenceInner = ({ s, connectedCompositions, windowWidth, nodePath
|
|
|
297
300
|
const { setPropStatuses } = (0, react_1.useContext)(remotion_1.Internals.VisualModeSettersContext);
|
|
298
301
|
const { setSelectedModal } = (0, react_1.useContext)(modals_1.SetSelectedModalContext);
|
|
299
302
|
const selectAsset = (0, use_select_asset_1.useSelectAsset)();
|
|
303
|
+
const assetContextMenu = (0, use_asset_timeline_context_menu_1.useAssetTimelineContextMenu)();
|
|
300
304
|
const selectComposition = (0, InitialCompositionLoader_1.useSelectComposition)();
|
|
301
305
|
const confirm = (0, ConfirmationDialog_1.useConfirmationDialog)();
|
|
302
306
|
const deleteTimelineItems = (0, use_delete_timeline_items_1.useDeleteTimelineItems)();
|
|
@@ -310,7 +314,7 @@ const TimelineSequenceInner = ({ s, connectedCompositions, windowWidth, nodePath
|
|
|
310
314
|
}
|
|
311
315
|
return selectedItems.flatMap((item) => item.type === 'sequence' ? [item.nodePathInfo] : []);
|
|
312
316
|
}, [selected, selectedItems]);
|
|
313
|
-
const
|
|
317
|
+
const performSequenceDoubleClick = (0, react_1.useCallback)((e) => {
|
|
314
318
|
if ((0, TimelineSelection_1.isTimelineSelectionModifierEvent)(e)) {
|
|
315
319
|
e.stopPropagation();
|
|
316
320
|
return;
|
|
@@ -344,10 +348,16 @@ const TimelineSequenceInner = ({ s, connectedCompositions, windowWidth, nodePath
|
|
|
344
348
|
selectComposition,
|
|
345
349
|
sequenceFrameOffset,
|
|
346
350
|
]);
|
|
351
|
+
const onSequenceClick = (0, react_1.useCallback)((e) => {
|
|
352
|
+
if (!dragAwareDoubleClick.acceptClickAsDoubleClick(e)) {
|
|
353
|
+
return;
|
|
354
|
+
}
|
|
355
|
+
performSequenceDoubleClick(e);
|
|
356
|
+
}, [dragAwareDoubleClick, performSequenceDoubleClick]);
|
|
347
357
|
const canHandleSequenceDoubleClick = connectedCompositions.length === 1 || canOpenInEditor;
|
|
348
358
|
const canDeleteFromSource = Boolean(nodePath && (validatedLocation === null || validatedLocation === void 0 ? void 0 : validatedLocation.source));
|
|
349
359
|
const deleteDisabled = !previewInteractive || !s.controls || !canDeleteFromSource;
|
|
350
|
-
const isProgrammaticallyDuplicated = ((
|
|
360
|
+
const isProgrammaticallyDuplicated = ((_h = nodePathInfo === null || nodePathInfo === void 0 ? void 0 : nodePathInfo.numberOfSequencesWithThisNodePath) !== null && _h !== void 0 ? _h : 1) > 1;
|
|
351
361
|
const duplicateDisabled = deleteDisabled || isProgrammaticallyDuplicated;
|
|
352
362
|
const disableInteractivityDisabled = !previewInteractive ||
|
|
353
363
|
!s.showInTimeline ||
|
|
@@ -414,6 +424,9 @@ const TimelineSequenceInner = ({ s, connectedCompositions, windowWidth, nodePath
|
|
|
414
424
|
]);
|
|
415
425
|
const getContextMenuItems = (0, react_1.useCallback)(() => {
|
|
416
426
|
var _a;
|
|
427
|
+
if (assetContextMenu !== null) {
|
|
428
|
+
return assetContextMenu;
|
|
429
|
+
}
|
|
417
430
|
if (selectable && !selected) {
|
|
418
431
|
onSelect({ shiftKey: false, toggleKey: false });
|
|
419
432
|
}
|
|
@@ -482,6 +495,7 @@ const TimelineSequenceInner = ({ s, connectedCompositions, windowWidth, nodePath
|
|
|
482
495
|
: [],
|
|
483
496
|
});
|
|
484
497
|
}, [
|
|
498
|
+
assetContextMenu,
|
|
485
499
|
canOpenInEditor,
|
|
486
500
|
canConfigureApps,
|
|
487
501
|
codingAgentInfo,
|
|
@@ -520,7 +534,7 @@ const TimelineSequenceInner = ({ s, connectedCompositions, windowWidth, nodePath
|
|
|
520
534
|
const { onPointerDown: onMoveDragPointerDown } = (0, TimelineSequenceRightEdgeDragHandle_1.useTimelineSequenceFromDrag)({
|
|
521
535
|
nodePathInfo,
|
|
522
536
|
windowWidth,
|
|
523
|
-
timelineDurationInFrames: (
|
|
537
|
+
timelineDurationInFrames: (_j = video === null || video === void 0 ? void 0 : video.durationInFrames) !== null && _j !== void 0 ? _j : 1,
|
|
524
538
|
onDragEnd: dragAwareDoubleClick.endPointerGesture,
|
|
525
539
|
});
|
|
526
540
|
if (!video) {
|
|
@@ -582,7 +596,7 @@ const TimelineSequenceInner = ({ s, connectedCompositions, windowWidth, nodePath
|
|
|
582
596
|
}, [visibleLayout]);
|
|
583
597
|
const showLeftBorderRadius = (visibleLayout === null || visibleLayout === void 0 ? void 0 : visibleLayout.leftEdgeVisible) === true &&
|
|
584
598
|
localStart >= 0 &&
|
|
585
|
-
((
|
|
599
|
+
((_k = s.trimBefore) !== null && _k !== void 0 ? _k : 0) === 0 &&
|
|
586
600
|
(s.type === 'sequence' ||
|
|
587
601
|
s.type === 'image' ||
|
|
588
602
|
(0, get_timeline_media_start_frame_1.getTimelineMediaStartFrame)({
|
|
@@ -607,6 +621,49 @@ const TimelineSequenceInner = ({ s, connectedCompositions, windowWidth, nodePath
|
|
|
607
621
|
: video.durationInFrames;
|
|
608
622
|
const endsAtContainerBoundary = Math.ceil(s.from + displayDurationInFrames) >=
|
|
609
623
|
Math.ceil(Math.min(parentEnd, video.durationInFrames));
|
|
624
|
+
const hasImplicitMediaDuration = (s.type === 'audio' || s.type === 'video') &&
|
|
625
|
+
((_d = propStatusesForOverride === null || propStatusesForOverride === void 0 ? void 0 : propStatusesForOverride.durationInFrames) === null || _d === void 0 ? void 0 : _d.status) === 'static' &&
|
|
626
|
+
propStatusesForOverride.durationInFrames.codeValue === undefined;
|
|
627
|
+
const durationInFramesCodeValue = ((_e = propStatusesForOverride === null || propStatusesForOverride === void 0 ? void 0 : propStatusesForOverride.durationInFrames) === null || _e === void 0 ? void 0 : _e.status) === 'static'
|
|
628
|
+
? propStatusesForOverride.durationInFrames.codeValue
|
|
629
|
+
: null;
|
|
630
|
+
const explicitDurationInFrames = typeof durationInFramesCodeValue === 'number' &&
|
|
631
|
+
Number.isFinite(durationInFramesCodeValue)
|
|
632
|
+
? durationInFramesCodeValue
|
|
633
|
+
: null;
|
|
634
|
+
const isMedia = s.type === 'audio' || s.type === 'video';
|
|
635
|
+
const mediaDurationDragLimits = isMedia
|
|
636
|
+
? (0, TimelineSequenceRightEdgeDragHandle_1.getTimelineSequenceMediaDurationDragLimits)({
|
|
637
|
+
cascadedStart,
|
|
638
|
+
displayDurationInFrames: s.duration,
|
|
639
|
+
displayStart: s.from,
|
|
640
|
+
effectiveMaxMediaDuration,
|
|
641
|
+
explicitDurationInFrames,
|
|
642
|
+
hasImplicitDuration: hasImplicitMediaDuration,
|
|
643
|
+
naturalMediaDuration,
|
|
644
|
+
timelineDurationInFrames: video.durationInFrames,
|
|
645
|
+
})
|
|
646
|
+
: null;
|
|
647
|
+
const mediaDurationDragSelectionKey = nodePathInfo
|
|
648
|
+
? (0, TimelineSelection_1.getTimelineSequenceSelectionKey)(nodePathInfo)
|
|
649
|
+
: null;
|
|
650
|
+
(0, react_1.useEffect)(() => {
|
|
651
|
+
if (mediaDurationDragLimitsRegistry === null ||
|
|
652
|
+
mediaDurationDragSelectionKey === null ||
|
|
653
|
+
!isMedia) {
|
|
654
|
+
return;
|
|
655
|
+
}
|
|
656
|
+
const registry = mediaDurationDragLimitsRegistry.current;
|
|
657
|
+
registry.set(mediaDurationDragSelectionKey, mediaDurationDragLimits);
|
|
658
|
+
return () => {
|
|
659
|
+
registry.delete(mediaDurationDragSelectionKey);
|
|
660
|
+
};
|
|
661
|
+
}, [
|
|
662
|
+
isMedia,
|
|
663
|
+
mediaDurationDragLimits,
|
|
664
|
+
mediaDurationDragLimitsRegistry,
|
|
665
|
+
mediaDurationDragSelectionKey,
|
|
666
|
+
]);
|
|
610
667
|
const showRightBorderRadius = (visibleLayout === null || visibleLayout === void 0 ? void 0 : visibleLayout.rightEdgeVisible) === true &&
|
|
611
668
|
(endsAtContainerBoundary || endsAtNaturalMediaDuration);
|
|
612
669
|
const style = (0, react_1.useMemo)(() => {
|
|
@@ -646,7 +703,8 @@ const TimelineSequenceInner = ({ s, connectedCompositions, windowWidth, nodePath
|
|
|
646
703
|
const showRightEdgeDragHandle = (0, TimelineSequenceRightEdgeDragHandle_1.isTimelineSequenceDurationDraggable)(s) &&
|
|
647
704
|
nodePath !== null &&
|
|
648
705
|
validatedLocation !== null &&
|
|
649
|
-
durationCanResize
|
|
706
|
+
durationCanResize &&
|
|
707
|
+
(!isMedia || mediaDurationDragLimits !== null);
|
|
650
708
|
const showLeftEdgeDragHandle = (0, TimelineSequenceRightEdgeDragHandle_1.isTimelineSequenceLeftEdgeDraggable)(s) &&
|
|
651
709
|
nodePath !== null &&
|
|
652
710
|
validatedLocation !== null &&
|
|
@@ -663,14 +721,14 @@ const TimelineSequenceInner = ({ s, connectedCompositions, windowWidth, nodePath
|
|
|
663
721
|
const mediaDisplayDurationInFrames = visibleLayout.media
|
|
664
722
|
? visibleLayout.media.width / frameIncrement
|
|
665
723
|
: 0;
|
|
666
|
-
const sequence = (jsx_runtime_1.jsxs(TimelineSequenceCurrentFrame, { s: s, displayDurationInFrames: displayDurationInFrames, premount: visibleLayout.premount, postmount: visibleLayout.postmount, negativeStart: visibleLayout.negativeStart, leftEdgeVisible: visibleLayout.leftEdgeVisible, negativeStartClipped: negativeStartClipped, style: style, nodePathInfo: nodePathInfo, sequenceFrameOffset: sequenceFrameOffset, fromCanUpdate: fromCanUpdate, frozenFrame: frozenFrame, onMoveDragPointerDown: onMoveDragPointerDown, onPointerDownCapture: dragAwareDoubleClick.beginPointerGesture, edgeDragHandles: jsx_runtime_1.jsxs(jsx_runtime_1.Fragment, { children: [showLeftEdgeDragHandle &&
|
|
724
|
+
const sequence = (jsx_runtime_1.jsxs(TimelineSequenceCurrentFrame, { s: s, displayDurationInFrames: displayDurationInFrames, premount: visibleLayout.premount, postmount: visibleLayout.postmount, negativeStart: visibleLayout.negativeStart, leftEdgeVisible: visibleLayout.leftEdgeVisible, negativeStartClipped: negativeStartClipped, style: style, nodePathInfo: nodePathInfo, sequenceFrameOffset: sequenceFrameOffset, fromCanUpdate: fromCanUpdate, frozenFrame: frozenFrame, onMoveDragPointerDown: onMoveDragPointerDown, onPointerDownCapture: dragAwareDoubleClick.beginPointerGesture, onClick: canHandleSequenceDoubleClick ? onSequenceClick : null, edgeDragHandles: jsx_runtime_1.jsxs(jsx_runtime_1.Fragment, { children: [showLeftEdgeDragHandle &&
|
|
667
725
|
visibleLayout.leftEdgeVisible &&
|
|
668
726
|
negativeStartWidth === 0 &&
|
|
669
727
|
nodePathInfo &&
|
|
670
|
-
validatedLocation ? (jsx_runtime_1.jsx(TimelineSequenceRightEdgeDragHandle_1.TimelineSequenceLeftEdgeDragHandle, { nodePathInfo: nodePathInfo, windowWidth: windowWidth, timelineDurationInFrames: (
|
|
728
|
+
validatedLocation ? (jsx_runtime_1.jsx(TimelineSequenceRightEdgeDragHandle_1.TimelineSequenceLeftEdgeDragHandle, { nodePathInfo: nodePathInfo, windowWidth: windowWidth, timelineDurationInFrames: (_l = video.durationInFrames) !== null && _l !== void 0 ? _l : 1, onDragEnd: dragAwareDoubleClick.endPointerGesture, onSelect: onSelect, selected: selected })) : null, showRightEdgeDragHandle &&
|
|
671
729
|
visibleLayout.rightEdgeVisible &&
|
|
672
730
|
nodePathInfo &&
|
|
673
|
-
validatedLocation ? (jsx_runtime_1.jsx(TimelineSequenceRightEdgeDragHandle_1.TimelineSequenceRightEdgeDragHandle, { nodePathInfo: nodePathInfo, windowWidth: windowWidth, timelineDurationInFrames: (
|
|
731
|
+
validatedLocation ? (jsx_runtime_1.jsx(TimelineSequenceRightEdgeDragHandle_1.TimelineSequenceRightEdgeDragHandle, { nodePathInfo: nodePathInfo, mediaDurationDragLimits: mediaDurationDragLimits, windowWidth: windowWidth, timelineDurationInFrames: (_m = video.durationInFrames) !== null && _m !== void 0 ? _m : 1, onDragEnd: dragAwareDoubleClick.endPointerGesture, onSelect: onSelect, selected: selected })) : null] }), children: [s.type === 'audio' && visibleLayout.media ? (jsx_runtime_1.jsx("div", { style: mediaVisualizationStyle, children: jsx_runtime_1.jsx(AudioWaveform_1.AudioWaveform, { src: s.src, height: timeline_layout_1.TIMELINE_LAYER_HEIGHT_AUDIO, doesVolumeChange: s.doesVolumeChange, muted: s.muted, visualizationWidth: visibleLayout.media.width, startFrom: s.startMediaFrom, durationInFrames: s.duration, displayOffsetInFrames: mediaDisplayOffsetInFrames, displayDurationInFrames: mediaDisplayDurationInFrames, volume: s.volume, playbackRate: s.playbackRate, loopDisplay: s.loopDisplay }) })) : null, s.type === 'video' && visibleLayout.media ? (jsx_runtime_1.jsx(TimelineVideoInfo_1.TimelineVideoInfo, { src: s.src, visualizationWidth: visibleLayout.media.width, displayOffsetInFrames: mediaDisplayOffsetInFrames, displayDurationInFrames: mediaDisplayDurationInFrames, startMediaFrom: s.startMediaFrom, mediaFrameAtSequenceZero: s.mediaFrameAtSequenceZero, sequenceFrameOffset: sequenceFrameOffset, playbackRate: s.playbackRate, volume: s.volume, muted: s.muted, doesVolumeChange: s.doesVolumeChange, marginLeft: visibleLayout.media.left, loopDisplay: s.loopDisplay, frozenMediaFrame: s.frozenMediaFrame, extendLastFrame: extendVideoLastFrame })) : null, s.type === 'image' && visibleLayout.media ? (jsx_runtime_1.jsx("div", { style: mediaVisualizationStyle, children: jsx_runtime_1.jsx(TimelineImageInfo_1.TimelineImageInfo, { src: s.src, offsetInPixels: visibleLayout.media.offset }) })) : null, s.loopDisplay === undefined ? null : (jsx_runtime_1.jsx(LoopedTimelineIndicators_1.LoopedTimelineIndicator, { loops: s.loopDisplay.numberOfTimes, fullWidth: width, visibleOffset: visibleLayout.cropLeft, visibleWidth: visibleLayout.width }))] }));
|
|
674
732
|
return previewConnected || window.remotion_isReadOnlyStudio ? (jsx_runtime_1.jsx(ContextMenu_1.ContextMenu, { getItems: getContextMenuItems, children: sequence })) : (sequence);
|
|
675
733
|
};
|
|
676
734
|
exports.TimelineSequence = react_1.default.memo(TimelineSequenceFn);
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import type { TSequence } from 'remotion';
|
|
3
3
|
import type { SequenceNodePathInfo } from '../../helpers/get-timeline-sequence-sort-key';
|
|
4
|
-
export declare const SEQUENCE_REORDER_MIME_TYPE = "application/remotion-sequence-reorder";
|
|
5
4
|
export declare const TimelineSequenceItem: React.NamedExoticComponent<{
|
|
6
5
|
readonly afterDropLineOffset: number;
|
|
7
6
|
readonly sequence: TSequence;
|