@remotion/studio 4.0.521 → 4.0.523
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/AssetAudioVolume.d.ts +5 -0
- package/dist/components/AssetAudioVolume.js +33 -0
- package/dist/components/Canvas.js +5 -6
- package/dist/components/CanvasIfSizeIsAvailable.js +7 -0
- package/dist/components/CaptionInspector.js +74 -20
- package/dist/components/CheckboardToggle.js +8 -6
- 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/CopyButton.js +7 -14
- package/dist/components/CurrentAsset.js +40 -6
- package/dist/components/Editor.js +6 -5
- package/dist/components/EditorContent.js +1 -1
- package/dist/components/EditorContexts.js +3 -1
- package/dist/components/ElementInstallConfirmation.js +290 -136
- package/dist/components/FixComputedValueModal.js +56 -16
- package/dist/components/FullscreenToggle.js +9 -8
- package/dist/components/GlobalKeybindings.js +50 -49
- package/dist/components/HighlightedElementSource.d.ts +5 -0
- package/dist/components/HighlightedElementSource.js +78 -0
- package/dist/components/InspectorLocationCopy.js +10 -5
- 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 +64 -1
- package/dist/components/InstallPackage.js +4 -5
- package/dist/components/KeyboardShortcutsSettings.js +212 -33
- package/dist/components/MenuBuildIndicator.js +7 -2
- package/dist/components/MenuCompositionName.js +62 -6
- package/dist/components/MenuToolbar.js +7 -5
- 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/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/NewFolder.js +11 -8
- package/dist/components/NewComposition/RenameFolder.js +17 -10
- package/dist/components/OptionalPackageModal.d.ts +11 -0
- package/dist/components/OptionalPackageModal.js +155 -0
- package/dist/components/PlayPause.js +4 -8
- package/dist/components/PlaybackKeyboardShortcutsManager.js +3 -6
- package/dist/components/PreviewToolbarOverflowButton.js +11 -2
- 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/CliCopyButton.js +13 -27
- 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 +129 -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 +7 -4
- package/dist/components/RenderQueue/RenderQueueItem.js +3 -3
- package/dist/components/RenderQueue/VideoMattingQueueItem.d.ts +6 -0
- package/dist/components/RenderQueue/VideoMattingQueueItem.js +129 -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/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 +49 -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 +21 -16
- package/dist/components/SizeSelector.js +10 -2
- package/dist/components/SkillsSettings.js +11 -8
- package/dist/components/SnappingToggle.js +5 -2
- package/dist/components/Splitter/SplitterContainer.js +63 -10
- package/dist/components/Splitter/SplitterContext.d.ts +3 -0
- package/dist/components/Splitter/SplitterContext.js +5 -1
- package/dist/components/Splitter/SplitterElement.js +11 -2
- package/dist/components/Splitter/SplitterHandle.d.ts +1 -0
- package/dist/components/Splitter/SplitterHandle.js +55 -25
- 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/SubscribeToNodePaths.d.ts +2 -1
- package/dist/components/Timeline/SubscribeToNodePaths.js +2 -1
- package/dist/components/Timeline/Timeline.js +17 -46
- package/dist/components/Timeline/TimelineClipboardKeybindings.js +2 -4
- package/dist/components/Timeline/TimelineDeleteKeybindings.js +3 -18
- package/dist/components/Timeline/TimelineDragHandler.js +11 -6
- package/dist/components/Timeline/TimelineExpandedKeyframeRow.js +1 -0
- package/dist/components/Timeline/TimelinePinchZoom.js +6 -30
- package/dist/components/Timeline/TimelinePlayCursorSyncer.js +1 -7
- 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 +148 -25
- package/dist/components/Timeline/TimelineSequenceItem.d.ts +0 -1
- package/dist/components/Timeline/TimelineSequenceItem.js +220 -112
- package/dist/components/Timeline/TimelineSequenceRightEdgeDragHandle.d.ts +35 -5
- package/dist/components/Timeline/TimelineSequenceRightEdgeDragHandle.js +233 -138
- package/dist/components/Timeline/TimelineSlider.js +1 -4
- package/dist/components/Timeline/TimelineTimeIndicators.js +1 -0
- package/dist/components/Timeline/TimelineWidthProvider.js +2 -5
- package/dist/components/Timeline/TimelineZoomControls.js +20 -20
- package/dist/components/Timeline/get-sequence-split-menu-item.d.ts +11 -0
- package/dist/components/Timeline/get-sequence-split-menu-item.js +55 -0
- 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/Timeline/use-sequence-props-subscription.d.ts +3 -2
- package/dist/components/Timeline/use-sequence-props-subscription.js +4 -10
- package/dist/components/TimelineInOutToggle.js +20 -17
- package/dist/components/TopPanel.js +3 -19
- 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 +17 -17
- 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/ZoomPersistor.js +6 -3
- package/dist/components/composition-menu-items.js +1 -1
- 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 +177 -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/esm/CaptionQueueProcessor-k0yrm3dj.mjs +211 -0
- package/dist/esm/HighlightedElementSource-jfc66k4p.mjs +1236 -0
- package/dist/esm/LazyModels-2trdm224.mjs +11 -0
- package/dist/esm/LazyModels-fjb5ckaq.mjs +11 -0
- package/dist/esm/TranscriptionModal-916jqhry.mjs +1011 -0
- package/dist/esm/VideoMattingModal-2tm79s9b.mjs +374 -0
- package/dist/esm/VideoMattingQueueProcessor-t1hgm2rm.mjs +109 -0
- package/dist/esm/index-1x7bsdh6.mjs +261 -0
- package/dist/esm/index-3hgr6gjx.mjs +41 -0
- package/dist/esm/index-5qddp5h7.mjs +36 -0
- package/dist/esm/index-5zrb1ft4.mjs +39 -0
- package/dist/esm/index-6cvm9a65.mjs +45923 -0
- package/dist/esm/index-7tt71e8n.mjs +36 -0
- package/dist/esm/index-9x6e1dq0.mjs +428 -0
- package/dist/esm/index-cw0pnpg5.mjs +50 -0
- package/dist/esm/index-czwvnn9g.mjs +35 -0
- package/dist/esm/index-hy4xcgty.mjs +1366 -0
- package/dist/esm/{chunk-je0h1bgt.js → index-jg13hf2g.mjs} +3 -1
- package/dist/esm/{chunk-6jf1natv.js → index-rcv7qkt5.mjs} +18 -1
- package/dist/esm/index-sgtmgc4h.mjs +423 -0
- package/dist/esm/index-te66vvrp.mjs +142 -0
- package/dist/esm/index-v4tr1bft.mjs +20 -0
- package/dist/esm/index-x7t2y7ws.mjs +54194 -0
- package/dist/esm/index-xhe2m2qr.mjs +1146 -0
- package/dist/esm/index.mjs +45 -933
- package/dist/esm/internals.mjs +13 -114127
- package/dist/esm/previewEntry.mjs +387 -114784
- package/dist/esm/renderEntry.mjs +3 -3
- package/dist/esm/{chunk-m0jqdbkr.js → resolve-composition-component-location-14148845.mjs} +1 -1
- package/dist/helpers/copy-text.js +1 -2
- 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-tomorrow.d.ts +1 -0
- package/dist/helpers/prism-tomorrow.js +151 -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-copy-feedback.d.ts +4 -0
- package/dist/helpers/use-copy-feedback.js +19 -0
- 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 +58 -13
- package/dist/icons/copy.d.ts +5 -0
- package/dist/icons/copy.js +12 -0
- 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/transcription.d.ts +4 -0
- package/dist/icons/transcription.js +7 -0
- package/dist/icons/upload.js +1 -1
- package/dist/state/canvas-ref.d.ts +1 -0
- package/dist/state/canvas-ref.js +2 -1
- package/dist/state/modals.d.ts +14 -2
- package/dist/state/sidebar.d.ts +3 -0
- package/dist/state/sidebar.js +6 -1
- package/dist/state/timeline-zoom.d.ts +1 -1
- package/dist/state/timeline-zoom.js +3 -3
- package/dist/visual-controls/VisualControls.js +4 -0
- package/package.json +34 -20
- package/dist/components/UpdateCheck.d.ts +0 -1
- package/dist/components/UpdateCheck.js +0 -79
- package/dist/esm/chunk-emw4k5b0.js +0 -99527
- package/dist/esm/chunk-vkrvnx2h.js +0 -99378
- package/dist/helpers/use-max-media-duration.d.ts +0 -2
- package/dist/helpers/use-max-media-duration.js +0 -61
|
@@ -35,6 +35,7 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
35
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
36
|
exports.TimelineSequence = void 0;
|
|
37
37
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
38
|
+
const canvas_1 = require("@remotion/canvas");
|
|
38
39
|
const react_1 = __importStar(require("react"));
|
|
39
40
|
const remotion_1 = require("remotion");
|
|
40
41
|
const client_id_1 = require("../../helpers/client-id");
|
|
@@ -45,7 +46,7 @@ const get_timeline_sequence_layout_1 = require("../../helpers/get-timeline-seque
|
|
|
45
46
|
const interactivity_enabled_1 = require("../../helpers/interactivity-enabled");
|
|
46
47
|
const is_video_with_last_frame_hold_1 = require("../../helpers/is-video-with-last-frame-hold");
|
|
47
48
|
const timeline_layout_1 = require("../../helpers/timeline-layout");
|
|
48
|
-
const
|
|
49
|
+
const use_media_metadata_1 = require("../../helpers/use-media-metadata");
|
|
49
50
|
const modals_1 = require("../../state/modals");
|
|
50
51
|
const AudioWaveform_1 = require("../AudioWaveform");
|
|
51
52
|
const ConfirmationDialog_1 = require("../ConfirmationDialog");
|
|
@@ -55,6 +56,8 @@ const use_select_asset_1 = require("../use-select-asset");
|
|
|
55
56
|
const disable_sequence_interactivity_1 = require("./disable-sequence-interactivity");
|
|
56
57
|
const duplicate_selected_timeline_item_1 = require("./duplicate-selected-timeline-item");
|
|
57
58
|
const get_sequence_context_menu_items_1 = require("./get-sequence-context-menu-items");
|
|
59
|
+
const get_sequence_split_menu_item_1 = require("./get-sequence-split-menu-item");
|
|
60
|
+
const get_timeline_media_start_frame_1 = require("./get-timeline-media-start-frame");
|
|
58
61
|
const get_timeline_sequence_visible_layout_1 = require("./get-timeline-sequence-visible-layout");
|
|
59
62
|
const imperative_state_1 = require("./imperative-state");
|
|
60
63
|
const LoopedTimelineIndicators_1 = require("./LoopedTimelineIndicators");
|
|
@@ -66,6 +69,7 @@ const TimelineSequenceRightEdgeDragHandle_1 = require("./TimelineSequenceRightEd
|
|
|
66
69
|
const TimelineVideoInfo_1 = require("./TimelineVideoInfo");
|
|
67
70
|
const TimelineViewport_1 = require("./TimelineViewport");
|
|
68
71
|
const TimelineWidthProvider_1 = require("./TimelineWidthProvider");
|
|
72
|
+
const use_asset_timeline_context_menu_1 = require("./use-asset-timeline-context-menu");
|
|
69
73
|
const use_delete_timeline_items_1 = require("./use-delete-timeline-items");
|
|
70
74
|
const use_open_sequence_in_apps_1 = require("./use-open-sequence-in-apps");
|
|
71
75
|
const use_sequence_freeze_frame_menu_item_1 = require("./use-sequence-freeze-frame-menu-item");
|
|
@@ -115,8 +119,10 @@ const TimelineSequenceNegativeStartInner = ({ left, width, leftEdgeVisible, clip
|
|
|
115
119
|
return (jsx_runtime_1.jsx("div", { style: outerStyle, children: jsx_runtime_1.jsx("div", { style: innerStyle }) }));
|
|
116
120
|
};
|
|
117
121
|
const TimelineSequenceNegativeStart = react_1.default.memo(TimelineSequenceNegativeStartInner);
|
|
118
|
-
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, }) => {
|
|
119
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';
|
|
120
126
|
const ref = (0, react_1.useRef)(null);
|
|
121
127
|
const { onSelect, selectable, selected, selectionItem } = (0, TimelineSelection_1.useTimelineRowSelection)(nodePathInfo);
|
|
122
128
|
(0, TimelineSelection_1.useTimelineMarqueeSelectableItem)(selectionItem, ref);
|
|
@@ -160,9 +166,9 @@ const TimelineSequenceCurrentFrame = ({ s, displayDurationInFrames, premount, po
|
|
|
160
166
|
...style,
|
|
161
167
|
background: negativeStart ? colors_1.TRANSPARENT : style.background,
|
|
162
168
|
border: negativeStart ? 'none' : style.border,
|
|
163
|
-
opacity: selected ? 1 : 0.75,
|
|
169
|
+
opacity: selected || isAsset ? 1 : 0.75,
|
|
164
170
|
};
|
|
165
|
-
}, [negativeStart, selected, style]);
|
|
171
|
+
}, [isAsset, negativeStart, selected, style]);
|
|
166
172
|
const content = (jsx_runtime_1.jsxs(jsx_runtime_1.Fragment, { children: [premount ? (jsx_runtime_1.jsx("div", { style: {
|
|
167
173
|
left: premount.left,
|
|
168
174
|
width: premount.width,
|
|
@@ -197,7 +203,7 @@ const TimelineSequenceCurrentFrame = ({ s, displayDurationInFrames, premount, po
|
|
|
197
203
|
display: 'flex',
|
|
198
204
|
alignItems: 'center',
|
|
199
205
|
}, children: jsx_runtime_1.jsx(TimelineSequenceFrame_1.TimelineSequenceFrame, { premounted: isPremounting, postmounted: isPostmounting ? s.duration - 1 : null, roundedFrame: roundedFrame, frozenFrame: frozenFrame }) })) : null] }));
|
|
200
|
-
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: [
|
|
201
207
|
jsx_runtime_1.jsx(TimelineSequenceNegativeStart, { left: negativeStart.left, width: negativeStart.width, leftEdgeVisible: leftEdgeVisible, clipped: negativeStartClipped }), jsx_runtime_1.jsx("div", { style: {
|
|
202
208
|
background: style.background,
|
|
203
209
|
border: style.border,
|
|
@@ -232,14 +238,31 @@ const TimelineSequenceInner = ({ s, connectedCompositions, windowWidth, nodePath
|
|
|
232
238
|
// If a duration is 1, it is essentially a still and it should have width 0
|
|
233
239
|
// Some compositions may not be longer than their media duration,
|
|
234
240
|
// if that is the case, it needs to be asynchronously determined
|
|
235
|
-
var _a, _b, _c;
|
|
236
|
-
var
|
|
241
|
+
var _a, _b, _c, _d, _e;
|
|
242
|
+
var _f, _g, _h, _j, _k, _l, _m;
|
|
237
243
|
const video = remotion_1.Internals.useVideo();
|
|
244
|
+
const { sequences } = (0, react_1.useContext)(remotion_1.Internals.SequenceManager);
|
|
238
245
|
const renderWindow = (0, react_1.useContext)(TimelineViewport_1.TimelineViewportContext);
|
|
246
|
+
const mediaDurationDragLimitsRegistry = (0, react_1.useContext)(TimelineSequenceRightEdgeDragHandle_1.TimelineSequenceMediaDurationDragLimitsContext);
|
|
239
247
|
const dragAwareDoubleClick = (0, react_1.useMemo)(() => (0, drag_aware_double_click_1.createDragAwareDoubleClickTracker)(), []);
|
|
240
|
-
const
|
|
241
|
-
const effectiveMaxMediaDuration = s.loopDisplay ? null : maxMediaDuration;
|
|
248
|
+
const mediaMetadata = (0, use_media_metadata_1.useMediaMetadata)(s.type === 'audio' || s.type === 'video' ? s.src : null);
|
|
242
249
|
const extendVideoLastFrame = (0, is_video_with_last_frame_hold_1.isVideoWithLastFrameHold)(s);
|
|
250
|
+
const naturalMediaDuration = (s.type === 'audio' || s.type === 'video') &&
|
|
251
|
+
mediaMetadata !== null &&
|
|
252
|
+
s.playbackRate > 0
|
|
253
|
+
? Math.max(0, (mediaMetadata.duration * ((_f = video === null || video === void 0 ? void 0 : video.fps) !== null && _f !== void 0 ? _f : 30) -
|
|
254
|
+
(0, get_timeline_media_start_frame_1.getTimelineMediaStartFrame)({
|
|
255
|
+
startMediaFrom: s.startMediaFrom,
|
|
256
|
+
mediaFrameAtSequenceZero: s.mediaFrameAtSequenceZero,
|
|
257
|
+
sequenceFrameOffset,
|
|
258
|
+
playbackRate: s.playbackRate,
|
|
259
|
+
})) /
|
|
260
|
+
s.playbackRate)
|
|
261
|
+
: null;
|
|
262
|
+
const maxMediaDuration = s.type === 'sequence' || s.type === 'image' || extendVideoLastFrame
|
|
263
|
+
? Infinity
|
|
264
|
+
: naturalMediaDuration;
|
|
265
|
+
const effectiveMaxMediaDuration = s.loopDisplay ? null : maxMediaDuration;
|
|
243
266
|
const { canOpenInEditor, canConfigureApps, codingAgentInfo, editorInfo, openInCodingAgent, openInEditor, originalLocation, } = (0, use_open_sequence_in_apps_1.useOpenSequenceInApps)(s);
|
|
244
267
|
const validatedLocation = (0, react_1.useMemo)(() => {
|
|
245
268
|
var _a;
|
|
@@ -255,7 +278,7 @@ const TimelineSequenceInner = ({ s, connectedCompositions, windowWidth, nodePath
|
|
|
255
278
|
};
|
|
256
279
|
}, [originalLocation]);
|
|
257
280
|
const { propStatuses } = (0, react_1.useContext)(remotion_1.Internals.VisualModePropStatusesContext);
|
|
258
|
-
const nodePath = (
|
|
281
|
+
const nodePath = (_g = nodePathInfo === null || nodePathInfo === void 0 ? void 0 : nodePathInfo.sequenceSubscriptionKey) !== null && _g !== void 0 ? _g : null;
|
|
259
282
|
const propStatusesForOverride = (0, react_1.useMemo)(() => {
|
|
260
283
|
return nodePath
|
|
261
284
|
? remotion_1.Internals.getPropStatusesCtx(propStatuses, nodePath)
|
|
@@ -265,7 +288,6 @@ const TimelineSequenceInner = ({ s, connectedCompositions, windowWidth, nodePath
|
|
|
265
288
|
((_a = propStatusesForOverride === null || propStatusesForOverride === void 0 ? void 0 : propStatusesForOverride.durationInFrames) === null || _a === void 0 ? void 0 : _a.status) === 'static');
|
|
266
289
|
const durationCanResize = Boolean((0, interactivity_enabled_1.isStudioInteractivityEnabled)() &&
|
|
267
290
|
(0, TimelineSequenceRightEdgeDragHandle_1.canResizeTimelineSequenceDuration)({
|
|
268
|
-
sequence: s,
|
|
269
291
|
status: propStatusesForOverride === null || propStatusesForOverride === void 0 ? void 0 : propStatusesForOverride.durationInFrames,
|
|
270
292
|
}));
|
|
271
293
|
const fromCanUpdate = Boolean((0, interactivity_enabled_1.isStudioInteractivityEnabled)() &&
|
|
@@ -278,6 +300,7 @@ const TimelineSequenceInner = ({ s, connectedCompositions, windowWidth, nodePath
|
|
|
278
300
|
const { setPropStatuses } = (0, react_1.useContext)(remotion_1.Internals.VisualModeSettersContext);
|
|
279
301
|
const { setSelectedModal } = (0, react_1.useContext)(modals_1.SetSelectedModalContext);
|
|
280
302
|
const selectAsset = (0, use_select_asset_1.useSelectAsset)();
|
|
303
|
+
const assetContextMenu = (0, use_asset_timeline_context_menu_1.useAssetTimelineContextMenu)();
|
|
281
304
|
const selectComposition = (0, InitialCompositionLoader_1.useSelectComposition)();
|
|
282
305
|
const confirm = (0, ConfirmationDialog_1.useConfirmationDialog)();
|
|
283
306
|
const deleteTimelineItems = (0, use_delete_timeline_items_1.useDeleteTimelineItems)();
|
|
@@ -291,7 +314,7 @@ const TimelineSequenceInner = ({ s, connectedCompositions, windowWidth, nodePath
|
|
|
291
314
|
}
|
|
292
315
|
return selectedItems.flatMap((item) => item.type === 'sequence' ? [item.nodePathInfo] : []);
|
|
293
316
|
}, [selected, selectedItems]);
|
|
294
|
-
const
|
|
317
|
+
const performSequenceDoubleClick = (0, react_1.useCallback)((e) => {
|
|
295
318
|
if ((0, TimelineSelection_1.isTimelineSelectionModifierEvent)(e)) {
|
|
296
319
|
e.stopPropagation();
|
|
297
320
|
return;
|
|
@@ -325,10 +348,16 @@ const TimelineSequenceInner = ({ s, connectedCompositions, windowWidth, nodePath
|
|
|
325
348
|
selectComposition,
|
|
326
349
|
sequenceFrameOffset,
|
|
327
350
|
]);
|
|
351
|
+
const onSequenceClick = (0, react_1.useCallback)((e) => {
|
|
352
|
+
if (!dragAwareDoubleClick.acceptClickAsDoubleClick(e)) {
|
|
353
|
+
return;
|
|
354
|
+
}
|
|
355
|
+
performSequenceDoubleClick(e);
|
|
356
|
+
}, [dragAwareDoubleClick, performSequenceDoubleClick]);
|
|
328
357
|
const canHandleSequenceDoubleClick = connectedCompositions.length === 1 || canOpenInEditor;
|
|
329
358
|
const canDeleteFromSource = Boolean(nodePath && (validatedLocation === null || validatedLocation === void 0 ? void 0 : validatedLocation.source));
|
|
330
359
|
const deleteDisabled = !previewInteractive || !s.controls || !canDeleteFromSource;
|
|
331
|
-
const isProgrammaticallyDuplicated = ((
|
|
360
|
+
const isProgrammaticallyDuplicated = ((_h = nodePathInfo === null || nodePathInfo === void 0 ? void 0 : nodePathInfo.numberOfSequencesWithThisNodePath) !== null && _h !== void 0 ? _h : 1) > 1;
|
|
332
361
|
const duplicateDisabled = deleteDisabled || isProgrammaticallyDuplicated;
|
|
333
362
|
const disableInteractivityDisabled = !previewInteractive ||
|
|
334
363
|
!s.showInTimeline ||
|
|
@@ -395,6 +424,9 @@ const TimelineSequenceInner = ({ s, connectedCompositions, windowWidth, nodePath
|
|
|
395
424
|
]);
|
|
396
425
|
const getContextMenuItems = (0, react_1.useCallback)(() => {
|
|
397
426
|
var _a;
|
|
427
|
+
if (assetContextMenu !== null) {
|
|
428
|
+
return assetContextMenu;
|
|
429
|
+
}
|
|
398
430
|
if (selectable && !selected) {
|
|
399
431
|
onSelect({ shiftKey: false, toggleKey: false });
|
|
400
432
|
}
|
|
@@ -406,6 +438,14 @@ const TimelineSequenceInner = ({ s, connectedCompositions, windowWidth, nodePath
|
|
|
406
438
|
onDuplicateSelectedSequences,
|
|
407
439
|
});
|
|
408
440
|
}
|
|
441
|
+
const splitMenuItem = (0, get_sequence_split_menu_item_1.getSequenceSplitMenuItem)({
|
|
442
|
+
nodePathInfo,
|
|
443
|
+
sequence: s,
|
|
444
|
+
propStatuses: propStatusesForOverride,
|
|
445
|
+
splitFrame: (0, imperative_state_1.getCurrentFrame)(),
|
|
446
|
+
canEditSource: previewInteractive && Boolean(validatedLocation === null || validatedLocation === void 0 ? void 0 : validatedLocation.source),
|
|
447
|
+
hasMultipleSelection: selected && selectedItems.length > 1,
|
|
448
|
+
});
|
|
409
449
|
const freezeFrameMenuItem = (0, use_sequence_freeze_frame_menu_item_1.getSequenceFreezeFrameMenuItem)({
|
|
410
450
|
clientId: previewInteractive && previewServerState.type === 'connected'
|
|
411
451
|
? previewServerState.clientId
|
|
@@ -447,11 +487,15 @@ const TimelineSequenceInner = ({ s, connectedCompositions, windowWidth, nodePath
|
|
|
447
487
|
originalLocation,
|
|
448
488
|
selectAsset,
|
|
449
489
|
sequence: s,
|
|
450
|
-
sourceActions: (0, interactivity_enabled_1.isStudioInteractivityEnabled)()
|
|
451
|
-
? [
|
|
490
|
+
sourceActions: (0, interactivity_enabled_1.isStudioInteractivityEnabled)()
|
|
491
|
+
? [
|
|
492
|
+
...(splitMenuItem ? [splitMenuItem] : []),
|
|
493
|
+
...(freezeFrameMenuItem ? [freezeFrameMenuItem] : []),
|
|
494
|
+
]
|
|
452
495
|
: [],
|
|
453
496
|
});
|
|
454
497
|
}, [
|
|
498
|
+
assetContextMenu,
|
|
455
499
|
canOpenInEditor,
|
|
456
500
|
canConfigureApps,
|
|
457
501
|
codingAgentInfo,
|
|
@@ -462,6 +506,7 @@ const TimelineSequenceInner = ({ s, connectedCompositions, windowWidth, nodePath
|
|
|
462
506
|
isProgrammaticallyDuplicated,
|
|
463
507
|
mediaSrc,
|
|
464
508
|
nodePath,
|
|
509
|
+
nodePathInfo,
|
|
465
510
|
onSelect,
|
|
466
511
|
onDeleteSequenceFromSource,
|
|
467
512
|
onDeleteSelectedSequences,
|
|
@@ -478,6 +523,7 @@ const TimelineSequenceInner = ({ s, connectedCompositions, windowWidth, nodePath
|
|
|
478
523
|
selectAsset,
|
|
479
524
|
selectable,
|
|
480
525
|
selected,
|
|
526
|
+
selectedItems.length,
|
|
481
527
|
selectedSequenceNodePathInfos,
|
|
482
528
|
sequenceFrameOffset,
|
|
483
529
|
setPropStatuses,
|
|
@@ -488,7 +534,7 @@ const TimelineSequenceInner = ({ s, connectedCompositions, windowWidth, nodePath
|
|
|
488
534
|
const { onPointerDown: onMoveDragPointerDown } = (0, TimelineSequenceRightEdgeDragHandle_1.useTimelineSequenceFromDrag)({
|
|
489
535
|
nodePathInfo,
|
|
490
536
|
windowWidth,
|
|
491
|
-
timelineDurationInFrames: (
|
|
537
|
+
timelineDurationInFrames: (_j = video === null || video === void 0 ? void 0 : video.durationInFrames) !== null && _j !== void 0 ? _j : 1,
|
|
492
538
|
onDragEnd: dragAwareDoubleClick.endPointerGesture,
|
|
493
539
|
});
|
|
494
540
|
if (!video) {
|
|
@@ -502,7 +548,8 @@ const TimelineSequenceInner = ({ s, connectedCompositions, windowWidth, nodePath
|
|
|
502
548
|
durationInFrames: displayDurationInFrames,
|
|
503
549
|
startFrom: s.loopDisplay ? s.from + s.loopDisplay.startOffset : s.from,
|
|
504
550
|
cascadedStart,
|
|
505
|
-
|
|
551
|
+
// The media duration cap already accounts for trimming and playback speed.
|
|
552
|
+
startFromMedia: 0,
|
|
506
553
|
maxMediaDuration: effectiveMaxMediaDuration,
|
|
507
554
|
video,
|
|
508
555
|
windowWidth,
|
|
@@ -549,7 +596,76 @@ const TimelineSequenceInner = ({ s, connectedCompositions, windowWidth, nodePath
|
|
|
549
596
|
}, [visibleLayout]);
|
|
550
597
|
const showLeftBorderRadius = (visibleLayout === null || visibleLayout === void 0 ? void 0 : visibleLayout.leftEdgeVisible) === true &&
|
|
551
598
|
localStart >= 0 &&
|
|
552
|
-
((
|
|
599
|
+
((_k = s.trimBefore) !== null && _k !== void 0 ? _k : 0) === 0 &&
|
|
600
|
+
(s.type === 'sequence' ||
|
|
601
|
+
s.type === 'image' ||
|
|
602
|
+
(0, get_timeline_media_start_frame_1.getTimelineMediaStartFrame)({
|
|
603
|
+
startMediaFrom: s.startMediaFrom,
|
|
604
|
+
mediaFrameAtSequenceZero: s.mediaFrameAtSequenceZero,
|
|
605
|
+
sequenceFrameOffset,
|
|
606
|
+
playbackRate: s.playbackRate,
|
|
607
|
+
}) === 0);
|
|
608
|
+
// Compare frame boundaries: fractional media durations still occupy the last frame.
|
|
609
|
+
const endsAtNaturalMediaDuration = !s.loopDisplay &&
|
|
610
|
+
s.frozenFrame === null &&
|
|
611
|
+
(s.type === 'audio' || s.type === 'video') &&
|
|
612
|
+
s.frozenMediaFrame === null &&
|
|
613
|
+
naturalMediaDuration !== null &&
|
|
614
|
+
Number.isFinite(naturalMediaDuration) &&
|
|
615
|
+
naturalMediaDuration > 0 &&
|
|
616
|
+
Math.ceil(Math.min(s.duration, video.durationInFrames - s.from, maxMediaDuration !== null && maxMediaDuration !== void 0 ? maxMediaDuration : Infinity)) === Math.ceil(naturalMediaDuration);
|
|
617
|
+
const parentSequence = sequences.find((candidate) => candidate.id === s.parent);
|
|
618
|
+
const parentEnd = parentSequence
|
|
619
|
+
? (0, canvas_1.getTimelineVisibleStart)(parentSequence, sequences) +
|
|
620
|
+
(0, canvas_1.getTimelineVisibleDuration)(parentSequence, sequences)
|
|
621
|
+
: video.durationInFrames;
|
|
622
|
+
const endsAtContainerBoundary = Math.ceil(s.from + displayDurationInFrames) >=
|
|
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
|
+
]);
|
|
667
|
+
const showRightBorderRadius = (visibleLayout === null || visibleLayout === void 0 ? void 0 : visibleLayout.rightEdgeVisible) === true &&
|
|
668
|
+
(endsAtContainerBoundary || endsAtNaturalMediaDuration);
|
|
553
669
|
const style = (0, react_1.useMemo)(() => {
|
|
554
670
|
var _a, _b;
|
|
555
671
|
return {
|
|
@@ -567,8 +683,8 @@ const TimelineSequenceInner = ({ s, connectedCompositions, windowWidth, nodePath
|
|
|
567
683
|
: colors_1.TRANSPARENT,
|
|
568
684
|
borderTopLeftRadius: showLeftBorderRadius ? 2 : 0,
|
|
569
685
|
borderBottomLeftRadius: showLeftBorderRadius ? 2 : 0,
|
|
570
|
-
borderTopRightRadius:
|
|
571
|
-
borderBottomRightRadius:
|
|
686
|
+
borderTopRightRadius: showRightBorderRadius ? 2 : 0,
|
|
687
|
+
borderBottomRightRadius: showRightBorderRadius ? 2 : 0,
|
|
572
688
|
position: 'absolute',
|
|
573
689
|
height: (0, timeline_layout_1.getTimelineLayerHeight)(s.type),
|
|
574
690
|
marginLeft: (_a = visibleLayout === null || visibleLayout === void 0 ? void 0 : visibleLayout.marginLeft) !== null && _a !== void 0 ? _a : 0,
|
|
@@ -577,11 +693,18 @@ const TimelineSequenceInner = ({ s, connectedCompositions, windowWidth, nodePath
|
|
|
577
693
|
// Edge handles extend outside the layer; media is clipped separately.
|
|
578
694
|
overflow: 'visible',
|
|
579
695
|
};
|
|
580
|
-
}, [
|
|
696
|
+
}, [
|
|
697
|
+
negativeStartClipped,
|
|
698
|
+
s.type,
|
|
699
|
+
showLeftBorderRadius,
|
|
700
|
+
showRightBorderRadius,
|
|
701
|
+
visibleLayout,
|
|
702
|
+
]);
|
|
581
703
|
const showRightEdgeDragHandle = (0, TimelineSequenceRightEdgeDragHandle_1.isTimelineSequenceDurationDraggable)(s) &&
|
|
582
704
|
nodePath !== null &&
|
|
583
705
|
validatedLocation !== null &&
|
|
584
|
-
durationCanResize
|
|
706
|
+
durationCanResize &&
|
|
707
|
+
(!isMedia || mediaDurationDragLimits !== null);
|
|
585
708
|
const showLeftEdgeDragHandle = (0, TimelineSequenceRightEdgeDragHandle_1.isTimelineSequenceLeftEdgeDraggable)(s) &&
|
|
586
709
|
nodePath !== null &&
|
|
587
710
|
validatedLocation !== null &&
|
|
@@ -598,14 +721,14 @@ const TimelineSequenceInner = ({ s, connectedCompositions, windowWidth, nodePath
|
|
|
598
721
|
const mediaDisplayDurationInFrames = visibleLayout.media
|
|
599
722
|
? visibleLayout.media.width / frameIncrement
|
|
600
723
|
: 0;
|
|
601
|
-
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 &&
|
|
602
725
|
visibleLayout.leftEdgeVisible &&
|
|
603
726
|
negativeStartWidth === 0 &&
|
|
604
727
|
nodePathInfo &&
|
|
605
|
-
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 &&
|
|
606
729
|
visibleLayout.rightEdgeVisible &&
|
|
607
730
|
nodePathInfo &&
|
|
608
|
-
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 }))] }));
|
|
609
732
|
return previewConnected || window.remotion_isReadOnlyStudio ? (jsx_runtime_1.jsx(ContextMenu_1.ContextMenu, { getItems: getContextMenuItems, children: sequence })) : (sequence);
|
|
610
733
|
};
|
|
611
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;
|