@remotion/studio 4.0.526 → 4.0.528
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/AgentPrompt.js +1 -2
- package/dist/components/AudioWaveform.d.ts +1 -0
- package/dist/components/AudioWaveform.js +10 -14
- package/dist/components/Canvas.js +88 -26
- package/dist/components/CanvasCaptureDropHandler.js +63 -0
- package/dist/components/CanvasOrLoading.js +10 -2
- package/dist/components/CodeFrame.js +1 -1
- package/dist/components/ColorPicker/checker.d.ts +1 -1
- package/dist/components/CompositionSelectorItem.js +1 -0
- package/dist/components/CurrentAsset.js +4 -2
- package/dist/components/EditorRuler/Ruler.js +6 -3
- package/dist/components/EffectPickerModal.js +69 -43
- package/dist/components/ElementInstallConfirmation.js +3 -3
- package/dist/components/ElementLibrariesSettings.d.ts +2 -0
- package/dist/components/ElementLibrariesSettings.js +200 -0
- package/dist/components/InitialCompositionLoader.js +4 -2
- package/dist/components/InlineDropdown.js +26 -2
- package/dist/components/InlineEditableTitle.js +1 -0
- package/dist/components/InspectorOpenInEditor.js +13 -0
- package/dist/components/InspectorPanel/AlignmentControls.js +28 -9
- package/dist/components/InspectorPanel/CollapsibleInspectorSectionHeader.js +2 -1
- package/dist/components/InspectorPanel/CompositionInspector.js +3 -3
- package/dist/components/InspectorPanel/CompositionMetadata.js +4 -0
- package/dist/components/InspectorPanel/EasingInspector.js +6 -2
- package/dist/components/InspectorPanel/ElementLibraryButton.js +2 -1
- package/dist/components/InspectorPanel/KeyframeEasingNavigator.js +1 -1
- package/dist/components/InspectorPanel/KeyframeInspector.js +28 -24
- package/dist/components/InspectorPanel/MultiSequenceInspector.js +32 -1
- package/dist/components/InspectorPanel/MultiSequenceNumberField.js +1 -1
- package/dist/components/InspectorPanel/SequenceInspectorHeader.d.ts +3 -1
- package/dist/components/InspectorPanel/SequenceSelectionInspector.js +70 -2
- package/dist/components/InspectorPanel/SequenceWrapAction.d.ts +8 -0
- package/dist/components/InspectorPanel/SequenceWrapAction.js +151 -0
- package/dist/components/InspectorPanel/common.js +1 -0
- package/dist/components/InspectorPanel/easing-inspector-selection.d.ts +2 -1
- package/dist/components/InspectorPanel/easing-inspector-selection.js +4 -3
- package/dist/components/InspectorPanel/keyframe-inspector-frame.d.ts +2 -1
- package/dist/components/InspectorPanel/keyframe-inspector-frame.js +2 -2
- package/dist/components/InspectorPanel/styles.js +2 -0
- package/dist/components/InspectorPanel/use-composition-actions.js +1 -0
- package/dist/components/InspectorSequenceSection.d.ts +1 -0
- package/dist/components/InspectorSequenceSection.js +7 -5
- package/dist/components/InspectorSourceLocation.js +3 -0
- package/dist/components/KeyboardShortcutsSettings.js +1 -1
- package/dist/components/Menu/styles.d.ts +2 -2
- package/dist/components/MenuBuildIndicator.js +1 -0
- package/dist/components/Modals.js +7 -6
- package/dist/components/ModelManager.js +10 -9
- package/dist/components/NewComposition/CancelButton.js +11 -5
- package/dist/components/NewComposition/InputDragger.d.ts +3 -1
- package/dist/components/NewComposition/InputDragger.js +28 -9
- package/dist/components/NewComposition/NewComposition.js +7 -6
- package/dist/components/NewComposition/RemInput.d.ts +1 -1
- package/dist/components/NewComposition/menu-typeahead.js +1 -1
- package/dist/components/Preview.js +4 -0
- package/dist/components/QuickSwitcher/ExplorerQuickSwitcherTrigger.js +1 -0
- package/dist/components/QuickSwitcher/QuickSwitcherContent.js +1 -0
- package/dist/components/RadioButton.js +1 -0
- package/dist/components/RenderModal/DataEditor.js +4 -1
- package/dist/components/RenderModal/SchemaEditor/create-zod-values.js +1 -2
- package/dist/components/RenderModal/WebRenderModalPicture.js +1 -2
- package/dist/components/RenderQueue/CaptionQueueItem.js +19 -7
- package/dist/components/RenderQueue/CaptionQueueProcessor.js +65 -15
- package/dist/components/RenderQueue/QueueJobError.d.ts +8 -0
- package/dist/components/RenderQueue/QueueJobError.js +24 -0
- package/dist/components/RenderQueue/QueueJobErrorModal.d.ts +8 -0
- package/dist/components/RenderQueue/QueueJobErrorModal.js +63 -0
- package/dist/components/RenderQueue/RenderQueueItemCancelButton.d.ts +3 -1
- package/dist/components/RenderQueue/RenderQueueItemCancelButton.js +11 -4
- package/dist/components/RenderQueue/RenderQueueRepeat.d.ts +3 -1
- package/dist/components/RenderQueue/RenderQueueRepeat.js +20 -3
- package/dist/components/RenderQueue/VideoMattingQueueItem.js +25 -27
- package/dist/components/RenderQueue/VideoMattingQueueProcessor.js +68 -28
- package/dist/components/RenderQueue/caption-job-types.d.ts +9 -1
- package/dist/components/RenderQueue/context.d.ts +4 -0
- package/dist/components/RenderQueue/context.js +58 -8
- package/dist/components/RenderQueue/index.js +3 -3
- package/dist/components/RenderQueue/load-model-for-job.d.ts +2 -1
- package/dist/components/RenderQueue/load-model-for-job.js +5 -1
- package/dist/components/RenderQueue/video-matting-job-types.d.ts +13 -6
- package/dist/components/RendersTab.js +2 -0
- package/dist/components/SelectedOutlineCropControls.js +2 -1
- package/dist/components/SelectedOutlineEditingHandles.js +9 -2
- package/dist/components/SelectedOutlineElement.js +9 -3
- package/dist/components/SelectedOutlineKeyboardControls.d.ts +2 -4
- package/dist/components/SelectedOutlineKeyboardControls.js +4 -22
- package/dist/components/SelectedOutlineOverlay.js +152 -106
- package/dist/components/SelectedOutlinePathPoints.d.ts +8 -0
- package/dist/components/SelectedOutlinePathPoints.js +433 -0
- package/dist/components/SelectedOutlinePolygon.js +21 -46
- package/dist/components/SelectedOutlineRenderer.d.ts +3 -5
- package/dist/components/SelectedOutlineRenderer.js +32 -136
- package/dist/components/SelectedOutlineSnapIndicators.d.ts +6 -0
- package/dist/components/SelectedOutlineSnapIndicators.js +16 -12
- package/dist/components/SelectedOutlineTransformOriginHandle.js +3 -2
- package/dist/components/SelectedOutlineUvControls.js +12 -7
- package/dist/components/SequencePropsSubscriptionProvider.d.ts +3 -0
- package/dist/components/SequencePropsSubscriptionProvider.js +8 -6
- package/dist/components/SettingsModal.js +30 -3
- package/dist/components/SettingsModalFooter.d.ts +1 -0
- package/dist/components/SettingsModalFooter.js +7 -3
- package/dist/components/ShowOutlinesProvider.js +1 -1
- package/dist/components/SkillsSettings.d.ts +0 -1
- package/dist/components/SkillsSettings.js +13 -14
- package/dist/components/Splitter/SplitterElement.js +1 -2
- package/dist/components/TimeValue.js +1 -1
- package/dist/components/Timeline/LoopedTimelineIndicators.d.ts +1 -0
- package/dist/components/Timeline/LoopedTimelineIndicators.js +7 -6
- package/dist/components/Timeline/TimelineArrayField.js +1 -1
- package/dist/components/Timeline/TimelineClipboardKeybindings.js +0 -1
- package/dist/components/Timeline/TimelineColorField.js +1 -1
- package/dist/components/Timeline/TimelineDeleteKeybindings.js +6 -9
- package/dist/components/Timeline/TimelineDragHandler.js +1 -1
- package/dist/components/Timeline/TimelineEffectItem.js +1 -0
- package/dist/components/Timeline/TimelineEffectPropItem.d.ts +1 -0
- package/dist/components/Timeline/TimelineEffectPropItem.js +12 -5
- package/dist/components/Timeline/TimelineExpandArrowButton.js +1 -0
- package/dist/components/Timeline/TimelineExpandedRow.d.ts +1 -0
- package/dist/components/Timeline/TimelineExpandedRow.js +6 -4
- package/dist/components/Timeline/TimelineExpandedSection.d.ts +1 -0
- package/dist/components/Timeline/TimelineExpandedSection.js +2 -2
- package/dist/components/Timeline/TimelineExpandedTrackKeyframes.d.ts +1 -0
- package/dist/components/Timeline/TimelineExpandedTrackKeyframes.js +3 -1
- package/dist/components/Timeline/TimelineFieldLabel.js +1 -0
- package/dist/components/Timeline/TimelineFontFamilyField.js +12 -12
- package/dist/components/Timeline/TimelineKeyframeControls.d.ts +1 -0
- package/dist/components/Timeline/TimelineKeyframeControls.js +40 -28
- package/dist/components/Timeline/TimelineLayerChildren.js +1 -1
- package/dist/components/Timeline/TimelineList.js +1 -1
- package/dist/components/Timeline/TimelineNumberField.js +2 -4
- package/dist/components/Timeline/TimelinePrimitiveFieldValue.js +1 -1
- package/dist/components/Timeline/TimelineSelection.d.ts +9 -9
- package/dist/components/Timeline/TimelineSelection.js +16 -9
- package/dist/components/Timeline/TimelineSequence.d.ts +3 -1
- package/dist/components/Timeline/TimelineSequence.js +65 -21
- package/dist/components/Timeline/TimelineSequenceFrame.js +1 -0
- package/dist/components/Timeline/TimelineSequenceItem.d.ts +1 -0
- package/dist/components/Timeline/TimelineSequenceItem.js +46 -8
- package/dist/components/Timeline/TimelineSequencePropItem.d.ts +3 -0
- package/dist/components/Timeline/TimelineSequencePropItem.js +262 -25
- package/dist/components/Timeline/TimelineSequenceRightEdgeDragHandle.d.ts +11 -13
- package/dist/components/Timeline/TimelineSequenceRightEdgeDragHandle.js +98 -77
- package/dist/components/Timeline/TimelineTextContentField.js +27 -4
- package/dist/components/Timeline/TimelineTimeIndicators.js +10 -5
- package/dist/components/Timeline/TimelineTrack.js +1 -1
- package/dist/components/Timeline/TimelineTrimTooltip.d.ts +11 -0
- package/dist/components/Timeline/TimelineTrimTooltip.js +41 -0
- package/dist/components/Timeline/TimelineVideoInfo.d.ts +1 -0
- package/dist/components/Timeline/TimelineVideoInfo.js +13 -10
- package/dist/components/Timeline/TimelineViewport.d.ts +1 -0
- package/dist/components/Timeline/TimelineViewport.js +10 -1
- package/dist/components/Timeline/delete-selected-keyframe.js +22 -8
- package/dist/components/Timeline/delete-selected-timeline-item.d.ts +1 -5
- package/dist/components/Timeline/delete-selected-timeline-item.js +9 -95
- package/dist/components/Timeline/get-animation-item-selection-for-frame.d.ts +2 -1
- package/dist/components/Timeline/get-animation-item-selection-for-frame.js +7 -5
- package/dist/components/Timeline/get-keyframed-sequence-drag-targets.d.ts +23 -0
- package/dist/components/Timeline/get-keyframed-sequence-drag-targets.js +57 -0
- package/dist/components/Timeline/get-node-keyframes.d.ts +2 -1
- package/dist/components/Timeline/get-node-keyframes.js +6 -4
- package/dist/components/Timeline/get-playback-rate-keyframe-changes.d.ts +21 -0
- package/dist/components/Timeline/get-playback-rate-keyframe-changes.js +142 -0
- package/dist/components/Timeline/get-sequence-context-menu-items.d.ts +3 -1
- package/dist/components/Timeline/get-sequence-context-menu-items.js +13 -1
- package/dist/components/Timeline/get-timeline-keyframes.d.ts +15 -2
- package/dist/components/Timeline/get-timeline-keyframes.js +44 -6
- package/dist/components/Timeline/keyframe-clipboard.js +17 -3
- package/dist/components/Timeline/split-selected-timeline-item.d.ts +13 -10
- package/dist/components/Timeline/split-selected-timeline-item.js +61 -35
- package/dist/components/Timeline/timeline-field-display-utils.js +1 -0
- package/dist/components/Timeline/timeline-field-row-layout.js +1 -0
- package/dist/components/Timeline/use-delete-timeline-items.js +17 -11
- package/dist/components/Timeline/use-expanded-track-keyframe-rows.d.ts +2 -1
- package/dist/components/Timeline/use-expanded-track-keyframe-rows.js +3 -1
- package/dist/components/Timeline/use-sequence-freeze-frame-menu-item.js +7 -3
- package/dist/components/Timeline/use-timeline-keyframe-drag.js +28 -19
- package/dist/components/TimelineCombobox.js +1 -0
- package/dist/components/Transcription/Models.js +1 -1
- package/dist/components/Transcription/TranscriptionModal.js +18 -11
- package/dist/components/Transcription/TranscriptionModalWithOptionalWhisper.js +1 -1
- package/dist/components/Transcription/resample-media-to-16-khz.d.ts +2 -1
- package/dist/components/Transcription/resample-media-to-16-khz.js +20 -2
- package/dist/components/UpdatesSettings.js +2 -0
- package/dist/components/VideoMatting/Models.js +1 -1
- package/dist/components/VideoMatting/VideoMattingModal.js +30 -47
- package/dist/components/VideoMatting/VideoMattingModalWithOptionalPackage.js +1 -1
- package/dist/components/WebMcp.js +23 -40
- package/dist/components/composition-drop-preview.d.ts +9 -2
- package/dist/components/composition-drop-preview.js +8 -4
- package/dist/components/composition-menu-items.js +4 -4
- package/dist/components/delete-jsx-nodes-api.d.ts +2 -0
- package/dist/components/{delete-jsx-node-api.js → delete-jsx-nodes-api.js} +5 -5
- package/dist/components/effect-drag-and-drop.d.ts +13 -5
- package/dist/components/effect-drag-and-drop.js +19 -4
- package/dist/components/get-open-in-menu-items.d.ts +2 -1
- package/dist/components/get-open-in-menu-items.js +24 -8
- package/dist/components/keyboard-shortcuts.d.ts +4 -4
- package/dist/components/keyboard-shortcuts.js +3 -1
- package/dist/components/public-output-name.d.ts +1 -0
- package/dist/components/public-output-name.js +7 -3
- package/dist/components/selected-outline-drag.d.ts +1 -6
- package/dist/components/selected-outline-drag.js +22 -6
- package/dist/components/selected-outline-geometry.d.ts +2 -18
- package/dist/components/selected-outline-measurement.d.ts +23 -41
- package/dist/components/selected-outline-measurement.js +14 -252
- package/dist/components/selected-outline-order.d.ts +4 -11
- package/dist/components/selected-outline-order.js +2 -254
- package/dist/components/selected-outline-snap.d.ts +1 -1
- package/dist/components/selected-outline-snap.js +2 -1
- package/dist/components/selected-outline-types.d.ts +18 -28
- package/dist/components/selected-outline-uv.d.ts +4 -4
- package/dist/components/selected-outline-uv.js +6 -111
- package/dist/components/sequence-props-api.js +0 -10
- package/dist/components/use-selected-outline-control-target.js +12 -21
- package/dist/components/wrap-jsx-node-api.d.ts +2 -0
- package/dist/components/wrap-jsx-node-api.js +13 -0
- package/dist/error-overlay/remotion-overlay/OpenInEditor.js +45 -2
- package/dist/error-overlay/remotion-overlay/StackFrame.js +32 -3
- package/dist/esm/{CaptionQueueProcessor-k0yrm3dj.mjs → CaptionQueueProcessor-nr7hjcga.mjs} +96 -19
- package/dist/esm/LazyModels-ajkn7fs3.mjs +12 -0
- package/dist/esm/LazyModels-g1g7cf4e.mjs +12 -0
- package/dist/esm/{TranscriptionModal-ymnx1c7m.mjs → TranscriptionModal-e18bzbkb.mjs} +30 -22
- package/dist/esm/{VideoMattingModal-05vpczks.mjs → VideoMattingModal-5bz2s4rs.mjs} +47 -62
- package/dist/esm/{VideoMattingQueueProcessor-t1hgm2rm.mjs → VideoMattingQueueProcessor-4tkj0f4k.mjs} +69 -26
- package/dist/esm/{index-v4tr1bft.mjs → index-09txs1bj.mjs} +5 -0
- package/dist/esm/{index-4dsz9035.mjs → index-5ycb9e9q.mjs} +2 -4
- package/dist/esm/index-890dd9b3.mjs +768 -0
- package/dist/esm/{index-5bfxbpca.mjs → index-8nt6a0mw.mjs} +3 -3
- package/dist/esm/{index-5gd8k9yv.mjs → index-9q9w8v9p.mjs} +3 -3
- package/dist/esm/{index-x40wwfmt.mjs → index-c2wabcdt.mjs} +8 -6
- package/dist/esm/index-dfy1t576.mjs +129 -0
- package/dist/esm/index-dh3zk2hv.mjs +220 -0
- package/dist/esm/{index-0gewwxse.mjs → index-dpyss74p.mjs} +6179 -5011
- package/dist/esm/{index-9x6e1dq0.mjs → index-hqxc6tzp.mjs} +40 -6
- package/dist/esm/{index-cdy8v54v.mjs → index-qve7mdfp.mjs} +36 -539
- package/dist/esm/{index-eb5txqp6.mjs → index-s6qya2gg.mjs} +8 -88
- package/dist/esm/index-t7tbt980.mjs +103 -0
- package/dist/esm/{index-g7k2dvar.mjs → index-t7xnxdf8.mjs} +44 -26
- package/dist/esm/index-wqc43mw0.mjs +158 -0
- package/dist/esm/{index-bs39wngg.mjs → index-x6r9bn12.mjs} +5623 -6218
- package/dist/esm/{index-f97r9e2g.mjs → index-xac20sv4.mjs} +46 -57
- package/dist/esm/index.mjs +4 -4
- package/dist/esm/internals.mjs +13 -10
- package/dist/esm/previewEntry.mjs +18 -12
- package/dist/esm/renderEntry.mjs +5 -1
- package/dist/esm/{resolve-composition-component-location-bt2d6qxq.mjs → resolve-composition-component-location-2hgf6g0a.mjs} +1 -1
- package/dist/helpers/calculate-timeline.d.ts +5 -1
- package/dist/helpers/calculate-timeline.js +1 -1
- package/dist/helpers/checkerboard-background.d.ts +2 -2
- package/dist/helpers/colors.d.ts +132 -112
- package/dist/helpers/colors.js +117 -95
- package/dist/helpers/copy-text.js +1 -16
- package/dist/helpers/create-folder-tree.js +2 -1
- package/dist/helpers/editor-guide-selection.d.ts +1 -1
- package/dist/helpers/editor-ruler.js +23 -12
- package/dist/helpers/get-connected-compositions.d.ts +6 -1
- package/dist/helpers/get-connected-compositions.js +1 -1
- package/dist/helpers/get-sequence-double-click-action.js +1 -1
- package/dist/helpers/get-sequence-visible-range.d.ts +1 -1
- package/dist/helpers/get-sequence-visible-range.js +2 -5
- package/dist/helpers/get-timeline-nestedness.d.ts +1 -1
- package/dist/helpers/get-timeline-nestedness.js +1 -1
- package/dist/helpers/get-timeline-sequence-sort-key.d.ts +1 -1
- package/dist/helpers/get-timeline-sequence-sort-key.js +1 -1
- package/dist/helpers/hoverable.js +6 -5
- package/dist/helpers/inject-css.js +5 -7
- package/dist/helpers/open-in-editor.js +1 -1
- package/dist/helpers/prism-vsc-dark-plus.d.ts +1 -1
- package/dist/helpers/prism-vsc-dark-plus.js +52 -51
- package/dist/helpers/resolve-studio-color.d.ts +1 -0
- package/dist/helpers/resolve-studio-color.js +11 -0
- package/dist/helpers/studio-css-variables.d.ts +1 -0
- package/dist/helpers/studio-css-variables.js +105 -0
- package/dist/helpers/studio-pixel-ratio.d.ts +1 -0
- package/dist/helpers/studio-pixel-ratio.js +7 -0
- package/dist/helpers/studio-runtime-config.d.ts +1 -1
- package/dist/helpers/timeline-node-path-key.d.ts +1 -1
- package/dist/helpers/timeline-node-path-key.js +2 -2
- package/dist/helpers/use-keybinding.d.ts +1 -1
- package/dist/helpers/use-keyboard-shortcut-label.d.ts +2 -2
- package/dist/helpers/use-menu-structure.js +15 -9
- package/dist/helpers/use-runtime-values.js +2 -28
- package/dist/hot-middleware-client/client.js +5 -3
- package/dist/icons/align-center-horizontal.js +2 -1
- package/dist/icons/align-left.js +2 -1
- package/dist/icons/align-right.js +2 -1
- package/dist/icons/{separation.d.ts → background-removal.d.ts} +1 -1
- package/dist/icons/background-removal.js +9 -0
- package/dist/icons/wrap.d.ts +4 -0
- package/dist/icons/wrap.js +10 -0
- package/dist/previewEntry.js +2 -0
- package/dist/renderEntry.js +2 -0
- package/dist/state/modals.d.ts +20 -1
- package/dist/state/timeline-sequence-hover.d.ts +6 -16
- package/dist/state/timeline-sequence-hover.js +6 -67
- package/dist/state/timeline-zoom.js +4 -0
- package/package.json +20 -19
- package/dist/components/Timeline/get-easing-selection-after-keyframe-delete.d.ts +0 -15
- package/dist/components/Timeline/get-easing-selection-after-keyframe-delete.js +0 -31
- package/dist/components/delete-jsx-node-api.d.ts +0 -2
- package/dist/esm/LazyModels-mtggyjye.mjs +0 -11
- package/dist/esm/LazyModels-nk7py0zt.mjs +0 -11
- package/dist/esm/index-cw0pnpg5.mjs +0 -50
- package/dist/esm/index-k426ye99.mjs +0 -139
- package/dist/helpers/get-box-quads-polyfill-internals.d.ts +0 -82
- package/dist/helpers/get-box-quads-polyfill-internals.js +0 -2403
- package/dist/helpers/get-box-quads-ponyfill.d.ts +0 -10
- package/dist/helpers/get-box-quads-ponyfill.js +0 -23
- package/dist/icons/separation.js +0 -7
|
@@ -476,6 +476,7 @@ const WebMcp = () => {
|
|
|
476
476
|
model: model.name,
|
|
477
477
|
noRepeatNgramSize,
|
|
478
478
|
outName: outputPath,
|
|
479
|
+
target: null,
|
|
479
480
|
repetitionPenalty,
|
|
480
481
|
requestInit: null,
|
|
481
482
|
src,
|
|
@@ -488,9 +489,9 @@ const WebMcp = () => {
|
|
|
488
489
|
},
|
|
489
490
|
}, { signal: controller.signal }),
|
|
490
491
|
modelContext.registerTool({
|
|
491
|
-
name: '
|
|
492
|
-
title: '
|
|
493
|
-
description: '
|
|
492
|
+
name: 'remove_video_background',
|
|
493
|
+
title: 'Remove video background',
|
|
494
|
+
description: 'Remove the background from a video asset in the public folder and add the work to the Jobs queue. If assetPath is omitted, the asset currently open in Studio is used.',
|
|
494
495
|
inputSchema: {
|
|
495
496
|
type: 'object',
|
|
496
497
|
properties: {
|
|
@@ -498,13 +499,9 @@ const WebMcp = () => {
|
|
|
498
499
|
type: 'string',
|
|
499
500
|
description: 'Optional path relative to public/. Defaults to the asset currently open in Studio.',
|
|
500
501
|
},
|
|
501
|
-
|
|
502
|
-
type: 'string',
|
|
503
|
-
description: 'Optional background output path relative to public/.',
|
|
504
|
-
},
|
|
505
|
-
foregroundOutputPath: {
|
|
502
|
+
outputPath: {
|
|
506
503
|
type: 'string',
|
|
507
|
-
description: 'Optional
|
|
504
|
+
description: 'Optional transparent video output path relative to public/.',
|
|
508
505
|
},
|
|
509
506
|
model: {
|
|
510
507
|
type: 'string',
|
|
@@ -512,8 +509,8 @@ const WebMcp = () => {
|
|
|
512
509
|
},
|
|
513
510
|
audio: {
|
|
514
511
|
type: 'string',
|
|
515
|
-
enum: ['
|
|
516
|
-
default: '
|
|
512
|
+
enum: ['keep', 'none'],
|
|
513
|
+
default: 'keep',
|
|
517
514
|
},
|
|
518
515
|
videoBitrate: {
|
|
519
516
|
oneOf: [
|
|
@@ -531,7 +528,7 @@ const WebMcp = () => {
|
|
|
531
528
|
annotations: { readOnlyHint: false },
|
|
532
529
|
execute: async (input) => {
|
|
533
530
|
var _a;
|
|
534
|
-
var _b, _c, _d, _e, _f
|
|
531
|
+
var _b, _c, _d, _e, _f;
|
|
535
532
|
if (!(0, OptionalPackageModal_1.isOptionalPackageInstalled)(video_matting_capability_1.VIDEO_MATTING_PACKAGE)) {
|
|
536
533
|
return missingOptionalPackageResult(video_matting_capability_1.VIDEO_MATTING_PACKAGE);
|
|
537
534
|
}
|
|
@@ -541,7 +538,7 @@ const WebMcp = () => {
|
|
|
541
538
|
staticFiles: staticFilesRef.current,
|
|
542
539
|
});
|
|
543
540
|
if ((0, get_preview_file_type_1.getPreviewFileType)(assetPath) !== 'video') {
|
|
544
|
-
throw new Error('The
|
|
541
|
+
throw new Error('The input asset must be a video.');
|
|
545
542
|
}
|
|
546
543
|
const videoMatting = await Promise.resolve().then(() => __importStar(require('@remotion/video-matting')));
|
|
547
544
|
const modelName = (_b = input.model) !== null && _b !== void 0 ? _b : 'ben2-base';
|
|
@@ -554,12 +551,9 @@ const WebMcp = () => {
|
|
|
554
551
|
if (!model) {
|
|
555
552
|
throw new Error(`Unknown video matting model: ${modelName}.`);
|
|
556
553
|
}
|
|
557
|
-
const audio = (_c = input.audio) !== null && _c !== void 0 ? _c : '
|
|
558
|
-
if (audio !== '
|
|
559
|
-
audio
|
|
560
|
-
audio !== 'both' &&
|
|
561
|
-
audio !== 'none') {
|
|
562
|
-
throw new Error('audio must be base, foreground, both, or none.');
|
|
554
|
+
const audio = (_c = input.audio) !== null && _c !== void 0 ? _c : 'keep';
|
|
555
|
+
if (audio !== 'keep' && audio !== 'none') {
|
|
556
|
+
throw new Error('audio must be keep or none.');
|
|
563
557
|
}
|
|
564
558
|
const videoBitrate = (_d = input.videoBitrate) !== null && _d !== void 0 ? _d : 'very-high';
|
|
565
559
|
if ((typeof videoBitrate !== 'number' ||
|
|
@@ -575,39 +569,28 @@ const WebMcp = () => {
|
|
|
575
569
|
const src = (0, remotion_1.staticFile)(assetPath);
|
|
576
570
|
const displayName = (_e = assetPath.split('/').at(-1)) !== null && _e !== void 0 ? _e : assetPath;
|
|
577
571
|
const baseName = (0, public_output_name_1.getDefaultOutputBaseName)(src, displayName, 'video');
|
|
578
|
-
const
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
typeof foregroundOutputPath !== 'string') {
|
|
582
|
-
throw new Error('Output paths must be strings.');
|
|
572
|
+
const outputPath = (_f = input.outputPath) !== null && _f !== void 0 ? _f : `${baseName}-no-background.webm`;
|
|
573
|
+
if (typeof outputPath !== 'string') {
|
|
574
|
+
throw new Error('Output path must be a string.');
|
|
583
575
|
}
|
|
584
|
-
const
|
|
585
|
-
extension: '.webm',
|
|
586
|
-
outName: baseOutputPath,
|
|
587
|
-
});
|
|
588
|
-
const foregroundError = (0, public_output_name_1.validatePublicOutputName)({
|
|
576
|
+
const outputError = (0, public_output_name_1.validatePublicOutputName)({
|
|
589
577
|
extension: '.webm',
|
|
590
|
-
outName:
|
|
578
|
+
outName: outputPath,
|
|
591
579
|
});
|
|
592
|
-
if (
|
|
593
|
-
throw new Error(
|
|
594
|
-
}
|
|
595
|
-
if (baseOutputPath.normalize('NFC').toLowerCase() ===
|
|
596
|
-
foregroundOutputPath.normalize('NFC').toLowerCase()) {
|
|
597
|
-
throw new Error('Background and foreground outputs must be different.');
|
|
580
|
+
if (outputError !== null) {
|
|
581
|
+
throw new Error(outputError);
|
|
598
582
|
}
|
|
599
583
|
const jobId = addVideoMattingJob({
|
|
600
584
|
audio,
|
|
601
|
-
baseOutName: baseOutputPath,
|
|
602
585
|
displayName,
|
|
603
|
-
|
|
586
|
+
outName: outputPath,
|
|
604
587
|
model,
|
|
605
588
|
src,
|
|
589
|
+
target: null,
|
|
606
590
|
videoBitrate,
|
|
607
591
|
});
|
|
608
592
|
return {
|
|
609
|
-
|
|
610
|
-
foregroundOutputPath,
|
|
593
|
+
outputPath,
|
|
611
594
|
jobId,
|
|
612
595
|
success: true,
|
|
613
596
|
};
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import type { PreviewSize } from 'remotion';
|
|
2
|
+
import type { Guide } from '../state/editor-guides';
|
|
2
3
|
import { type InsertElementDropPosition } from './import-assets';
|
|
4
|
+
import { type SelectedOutlineSnapPoint } from './selected-outline-snap';
|
|
3
5
|
type Dimensions = {
|
|
4
6
|
readonly width: number;
|
|
5
7
|
readonly height: number;
|
|
@@ -11,6 +13,7 @@ type CanvasSize = {
|
|
|
11
13
|
export type CompositionDropPreview = {
|
|
12
14
|
readonly compositionDimensions: Dimensions;
|
|
13
15
|
readonly dropPosition: InsertElementDropPosition;
|
|
16
|
+
readonly snapPoints: readonly SelectedOutlineSnapPoint[];
|
|
14
17
|
};
|
|
15
18
|
export type CompositionDropPreviewBox = {
|
|
16
19
|
readonly left: number;
|
|
@@ -18,12 +21,16 @@ export type CompositionDropPreviewBox = {
|
|
|
18
21
|
readonly width: number;
|
|
19
22
|
readonly height: number;
|
|
20
23
|
};
|
|
21
|
-
export declare const snapCompositionDropPosition: ({ compositionDimensions, destinationDimensions, dropPosition, scale, }: {
|
|
24
|
+
export declare const snapCompositionDropPosition: ({ compositionDimensions, destinationDimensions, dropPosition, guides, scale, }: {
|
|
22
25
|
readonly compositionDimensions: Dimensions;
|
|
23
26
|
readonly destinationDimensions: Dimensions;
|
|
24
27
|
readonly dropPosition: InsertElementDropPosition;
|
|
28
|
+
readonly guides: readonly Guide[];
|
|
25
29
|
readonly scale: number;
|
|
26
|
-
}) =>
|
|
30
|
+
}) => {
|
|
31
|
+
readonly dropPosition: InsertElementDropPosition;
|
|
32
|
+
readonly snapPoints: readonly SelectedOutlineSnapPoint[];
|
|
33
|
+
};
|
|
27
34
|
export declare const getCompositionDropPreviewBox: ({ canvasSize, destinationDimensions, preview, previewSize, }: {
|
|
28
35
|
readonly canvasSize: CanvasSize;
|
|
29
36
|
readonly destinationDimensions: Dimensions;
|
|
@@ -4,7 +4,7 @@ exports.getCompositionDropPreviewBox = exports.snapCompositionDropPosition = voi
|
|
|
4
4
|
const studio_fit_padding_1 = require("../helpers/studio-fit-padding");
|
|
5
5
|
const import_assets_1 = require("./import-assets");
|
|
6
6
|
const selected_outline_snap_1 = require("./selected-outline-snap");
|
|
7
|
-
const snapCompositionDropPosition = ({ compositionDimensions, destinationDimensions, dropPosition, scale, }) => {
|
|
7
|
+
const snapCompositionDropPosition = ({ compositionDimensions, destinationDimensions, dropPosition, guides, scale, }) => {
|
|
8
8
|
var _a, _b;
|
|
9
9
|
const left = dropPosition.centerX - compositionDimensions.width / 2;
|
|
10
10
|
const top = dropPosition.centerY - compositionDimensions.height / 2;
|
|
@@ -14,6 +14,7 @@ const snapCompositionDropPosition = ({ compositionDimensions, destinationDimensi
|
|
|
14
14
|
key: 'composition-drop-preview',
|
|
15
15
|
dimensions: compositionDimensions,
|
|
16
16
|
uncroppedPoints: null,
|
|
17
|
+
path: null,
|
|
17
18
|
points: [
|
|
18
19
|
{ x: left * scale, y: top * scale },
|
|
19
20
|
{ x: right * scale, y: top * scale },
|
|
@@ -31,12 +32,15 @@ const snapCompositionDropPosition = ({ compositionDimensions, destinationDimensi
|
|
|
31
32
|
targets: (0, selected_outline_snap_1.getSelectedOutlineSnapTargets)({
|
|
32
33
|
compositionHeight: destinationDimensions.height,
|
|
33
34
|
compositionWidth: destinationDimensions.width,
|
|
34
|
-
guides
|
|
35
|
+
guides,
|
|
35
36
|
}),
|
|
36
37
|
});
|
|
37
38
|
return {
|
|
38
|
-
|
|
39
|
-
|
|
39
|
+
dropPosition: {
|
|
40
|
+
centerX: dropPosition.centerX + ((_a = snap.snapOffsetX) !== null && _a !== void 0 ? _a : 0),
|
|
41
|
+
centerY: dropPosition.centerY + ((_b = snap.snapOffsetY) !== null && _b !== void 0 ? _b : 0),
|
|
42
|
+
},
|
|
43
|
+
snapPoints: snap.activeSnapPoints,
|
|
40
44
|
};
|
|
41
45
|
};
|
|
42
46
|
exports.snapCompositionDropPosition = snapCompositionDropPosition;
|
|
@@ -176,7 +176,7 @@ const getCompositionMenuItems = ({ composition, connectionStatus, resolvedLocati
|
|
|
176
176
|
(0, get_git_menu_item_1.openGitSource)({ folder: false, location: resolvedLocation });
|
|
177
177
|
}
|
|
178
178
|
},
|
|
179
|
-
quickSwitcherLabel: `Open
|
|
179
|
+
quickSwitcherLabel: `Composition: Open in ${defaultOpenInName}`,
|
|
180
180
|
subMenu: null,
|
|
181
181
|
type: 'item',
|
|
182
182
|
value: defaultOpenInTarget === 'editor'
|
|
@@ -194,7 +194,7 @@ const getCompositionMenuItems = ({ composition, connectionStatus, resolvedLocati
|
|
|
194
194
|
label: 'Open composition in...',
|
|
195
195
|
leftItem: null,
|
|
196
196
|
onClick: () => undefined,
|
|
197
|
-
quickSwitcherLabel:
|
|
197
|
+
quickSwitcherLabel: 'Composition',
|
|
198
198
|
subMenu: {
|
|
199
199
|
items: compositionOpenInMenuItems,
|
|
200
200
|
leaveLeftSpace: true,
|
|
@@ -220,7 +220,7 @@ const getCompositionMenuItems = ({ composition, connectionStatus, resolvedLocati
|
|
|
220
220
|
openComponentInGitSource().catch(() => undefined);
|
|
221
221
|
}
|
|
222
222
|
},
|
|
223
|
-
quickSwitcherLabel: `Open
|
|
223
|
+
quickSwitcherLabel: `Component: Open in ${defaultOpenInName}`,
|
|
224
224
|
subMenu: null,
|
|
225
225
|
type: 'item',
|
|
226
226
|
value: defaultOpenInTarget === 'editor'
|
|
@@ -238,7 +238,7 @@ const getCompositionMenuItems = ({ composition, connectionStatus, resolvedLocati
|
|
|
238
238
|
label: 'Open component in...',
|
|
239
239
|
leftItem: null,
|
|
240
240
|
onClick: () => undefined,
|
|
241
|
-
quickSwitcherLabel:
|
|
241
|
+
quickSwitcherLabel: 'Component',
|
|
242
242
|
subMenu: {
|
|
243
243
|
items: componentOpenInMenuItems,
|
|
244
244
|
leaveLeftSpace: true,
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.deleteJsxNodes = void 0;
|
|
4
4
|
const browser_studio_operations_1 = require("../helpers/browser-studio-operations");
|
|
5
5
|
const call_api_1 = require("./call-api");
|
|
6
|
-
const
|
|
6
|
+
const deleteJsxNodes = (request) => {
|
|
7
7
|
const browserStudioOperations = (0, browser_studio_operations_1.getBrowserStudioOperations)();
|
|
8
8
|
return browserStudioOperations
|
|
9
|
-
? browserStudioOperations.
|
|
10
|
-
: (0, call_api_1.callApi)('/api/delete-jsx-
|
|
9
|
+
? browserStudioOperations.deleteJsxNodes(request)
|
|
10
|
+
: (0, call_api_1.callApi)('/api/delete-jsx-nodes', request);
|
|
11
11
|
};
|
|
12
|
-
exports.
|
|
12
|
+
exports.deleteJsxNodes = deleteJsxNodes;
|
|
@@ -1,18 +1,26 @@
|
|
|
1
1
|
import { type EffectDragData } from '@remotion/studio-protocol';
|
|
2
2
|
import { type EffectDefinition } from '@remotion/studio-shared';
|
|
3
|
-
import type {
|
|
3
|
+
import type { SequenceNodePathInfo } from '../helpers/get-timeline-sequence-sort-key';
|
|
4
4
|
export declare const hasEffectDragType: (dataTransfer: DataTransfer) => boolean;
|
|
5
5
|
export declare const hasExplicitEffectDragType: (dataTransfer: DataTransfer) => boolean;
|
|
6
6
|
export declare const getEffectDragData: (dataTransfer: DataTransfer) => EffectDragData | null;
|
|
7
|
-
export declare const addEffectFromDragData: ({ clientId, dragData, fileName,
|
|
7
|
+
export declare const addEffectFromDragData: ({ clientId, dragData, fileName, nodePathInfo, selectItems, }: {
|
|
8
8
|
readonly clientId: string;
|
|
9
9
|
readonly dragData: EffectDragData;
|
|
10
10
|
readonly fileName: string;
|
|
11
|
-
readonly
|
|
11
|
+
readonly nodePathInfo: SequenceNodePathInfo;
|
|
12
|
+
readonly selectItems: (items: readonly import("@remotion/canvas").CanvasSelectionItem[], options?: {
|
|
13
|
+
readonly reveal?: boolean | undefined;
|
|
14
|
+
readonly revealInInspector?: boolean | undefined;
|
|
15
|
+
} | undefined) => void;
|
|
12
16
|
}) => Promise<void>;
|
|
13
|
-
export declare const addEffectToSequence: ({ clientId, effect, fileName,
|
|
17
|
+
export declare const addEffectToSequence: ({ clientId, effect, fileName, nodePathInfo, selectItems, }: {
|
|
14
18
|
readonly clientId: string;
|
|
15
19
|
readonly effect: EffectDefinition;
|
|
16
20
|
readonly fileName: string;
|
|
17
|
-
readonly
|
|
21
|
+
readonly nodePathInfo: SequenceNodePathInfo;
|
|
22
|
+
readonly selectItems: (items: readonly import("@remotion/canvas").CanvasSelectionItem[], options?: {
|
|
23
|
+
readonly reveal?: boolean | undefined;
|
|
24
|
+
readonly revealInInspector?: boolean | undefined;
|
|
25
|
+
} | undefined) => void;
|
|
18
26
|
}) => Promise<void>;
|
|
@@ -22,16 +22,17 @@ const getEffectDragData = (dataTransfer) => {
|
|
|
22
22
|
return (parsed === null || parsed === void 0 ? void 0 : parsed.type) === 'effect' ? parsed.data : null;
|
|
23
23
|
};
|
|
24
24
|
exports.getEffectDragData = getEffectDragData;
|
|
25
|
-
const addEffectFromDragData = ({ clientId, dragData, fileName,
|
|
25
|
+
const addEffectFromDragData = ({ clientId, dragData, fileName, nodePathInfo, selectItems, }) => {
|
|
26
26
|
return (0, exports.addEffectToSequence)({
|
|
27
27
|
clientId,
|
|
28
28
|
effect: dragData.effect,
|
|
29
29
|
fileName,
|
|
30
|
-
|
|
30
|
+
nodePathInfo,
|
|
31
|
+
selectItems,
|
|
31
32
|
});
|
|
32
33
|
};
|
|
33
34
|
exports.addEffectFromDragData = addEffectFromDragData;
|
|
34
|
-
const addEffectToSequence = async ({ clientId, effect, fileName,
|
|
35
|
+
const addEffectToSequence = async ({ clientId, effect, fileName, nodePathInfo, selectItems, }) => {
|
|
35
36
|
try {
|
|
36
37
|
const requiredPackage = (0, studio_shared_1.getRequiredPackageForEffectImportPath)(effect.importPath);
|
|
37
38
|
if ((0, browser_studio_operations_1.getBrowserStudioEffectOperations)() === null) {
|
|
@@ -39,7 +40,7 @@ const addEffectToSequence = async ({ clientId, effect, fileName, nodePath, }) =>
|
|
|
39
40
|
}
|
|
40
41
|
const result = await (0, effect_operations_api_1.addEffect)({
|
|
41
42
|
fileName,
|
|
42
|
-
sequenceNodePath:
|
|
43
|
+
sequenceNodePath: nodePathInfo.sequenceSubscriptionKey,
|
|
43
44
|
effectName: effect.name,
|
|
44
45
|
effectImportPath: effect.importPath,
|
|
45
46
|
effectConfig: effect.config,
|
|
@@ -47,7 +48,21 @@ const addEffectToSequence = async ({ clientId, effect, fileName, nodePath, }) =>
|
|
|
47
48
|
});
|
|
48
49
|
if (!result.success) {
|
|
49
50
|
(0, NotificationCenter_1.showNotification)(result.reason, 4000);
|
|
51
|
+
return;
|
|
50
52
|
}
|
|
53
|
+
selectItems([
|
|
54
|
+
{
|
|
55
|
+
type: 'sequence-effect',
|
|
56
|
+
nodePathInfo: {
|
|
57
|
+
...nodePathInfo,
|
|
58
|
+
sequenceSubscriptionKey: {
|
|
59
|
+
...nodePathInfo.sequenceSubscriptionKey,
|
|
60
|
+
nodePath: result.insertedEffect.nodePath,
|
|
61
|
+
},
|
|
62
|
+
},
|
|
63
|
+
i: result.insertedEffect.effectIndex,
|
|
64
|
+
},
|
|
65
|
+
], { revealInInspector: true });
|
|
51
66
|
}
|
|
52
67
|
catch (err) {
|
|
53
68
|
(0, NotificationCenter_1.showNotification)(err.message, 4000);
|
|
@@ -4,7 +4,7 @@ export declare const getConfigureDefaultAppsMenuItems: ({ hasPreviousItems, onCo
|
|
|
4
4
|
readonly hasPreviousItems: boolean;
|
|
5
5
|
readonly onConfigureApps: (() => void) | null;
|
|
6
6
|
}) => ComboboxValue[];
|
|
7
|
-
export declare const getOpenInMenuItems: ({ canOpenDesktopApps, codingAgentInfo, editorDisabled, editorInfo, excludeCodingAgentId, excludeEditorId, excludeGitSource, fileManagerDisabled, folder, gitSourceDisabled, onConfigureApps, onOpenInCodingAgent, onOpenInEditor, onOpenInFileExplorer, onOpenInGitClient, onOpenInGitSource, onOpenInTerminal, }: {
|
|
7
|
+
export declare const getOpenInMenuItems: ({ canOpenDesktopApps, codingAgentInfo, editorDisabled, editorInfo, excludeCodingAgentId, excludeEditorId, excludeGitSource, fileManagerDisabled, folder, gitSourceDisabled, onConfigureApps, onCopyPath, onOpenInCodingAgent, onOpenInEditor, onOpenInFileExplorer, onOpenInGitClient, onOpenInGitSource, onOpenInTerminal, }: {
|
|
8
8
|
readonly canOpenDesktopApps: boolean;
|
|
9
9
|
readonly codingAgentInfo: GetDefaultCodingAgentInfoResponse | null;
|
|
10
10
|
readonly editorDisabled: boolean;
|
|
@@ -16,6 +16,7 @@ export declare const getOpenInMenuItems: ({ canOpenDesktopApps, codingAgentInfo,
|
|
|
16
16
|
readonly folder: boolean;
|
|
17
17
|
readonly gitSourceDisabled: boolean;
|
|
18
18
|
readonly onConfigureApps: (() => void) | null;
|
|
19
|
+
readonly onCopyPath?: (() => void) | undefined;
|
|
19
20
|
readonly onOpenInCodingAgent: (codingAgentId: "claude-code" | "codex" | "copilot" | "cursor", codingAgentName: string) => void;
|
|
20
21
|
readonly onOpenInEditor: (editorId: EditorPickerId) => void;
|
|
21
22
|
readonly onOpenInFileExplorer: () => void;
|
|
@@ -3,7 +3,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.getOpenInMenuItems = exports.getConfigureDefaultAppsMenuItems = void 0;
|
|
4
4
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
5
|
const no_react_1 = require("remotion/no-react");
|
|
6
|
+
const colors_1 = require("../helpers/colors");
|
|
6
7
|
const get_file_manager_name_1 = require("../helpers/get-file-manager-name");
|
|
8
|
+
const clipboard_1 = require("../icons/clipboard");
|
|
7
9
|
const editor_1 = require("../icons/editor");
|
|
8
10
|
const finder_1 = require("../icons/finder");
|
|
9
11
|
const git_client_1 = require("../icons/git-client");
|
|
@@ -16,6 +18,7 @@ const menuLabel = {
|
|
|
16
18
|
fontSize: 13,
|
|
17
19
|
lineHeight: '16px',
|
|
18
20
|
};
|
|
21
|
+
const copyIcon = { height: 16, width: 16 };
|
|
19
22
|
const getConfigureDefaultAppsMenuItems = ({ hasPreviousItems, onConfigureApps, }) => {
|
|
20
23
|
if (!onConfigureApps) {
|
|
21
24
|
return [];
|
|
@@ -30,7 +33,7 @@ const getConfigureDefaultAppsMenuItems = ({ hasPreviousItems, onConfigureApps, }
|
|
|
30
33
|
label: jsx_runtime_1.jsx("span", { style: menuLabel, children: "Configure default apps..." }),
|
|
31
34
|
leftItem: null,
|
|
32
35
|
onClick: onConfigureApps,
|
|
33
|
-
quickSwitcherLabel:
|
|
36
|
+
quickSwitcherLabel: 'Configure default apps...',
|
|
34
37
|
subMenu: null,
|
|
35
38
|
type: 'item',
|
|
36
39
|
value: 'change-default-apps',
|
|
@@ -38,7 +41,7 @@ const getConfigureDefaultAppsMenuItems = ({ hasPreviousItems, onConfigureApps, }
|
|
|
38
41
|
];
|
|
39
42
|
};
|
|
40
43
|
exports.getConfigureDefaultAppsMenuItems = getConfigureDefaultAppsMenuItems;
|
|
41
|
-
const getOpenInMenuItems = ({ canOpenDesktopApps, codingAgentInfo, editorDisabled, editorInfo, excludeCodingAgentId, excludeEditorId, excludeGitSource, fileManagerDisabled, folder, gitSourceDisabled, onConfigureApps, onOpenInCodingAgent, onOpenInEditor, onOpenInFileExplorer, onOpenInGitClient, onOpenInGitSource, onOpenInTerminal, }) => {
|
|
44
|
+
const getOpenInMenuItems = ({ canOpenDesktopApps, codingAgentInfo, editorDisabled, editorInfo, excludeCodingAgentId, excludeEditorId, excludeGitSource, fileManagerDisabled, folder, gitSourceDisabled, onConfigureApps, onCopyPath, onOpenInCodingAgent, onOpenInEditor, onOpenInFileExplorer, onOpenInGitClient, onOpenInGitSource, onOpenInTerminal, }) => {
|
|
42
45
|
var _a, _b, _c, _d;
|
|
43
46
|
const showFinder = canOpenDesktopApps && window.remotion_fileSystemPlatform === 'darwin';
|
|
44
47
|
const fileManagerName = (0, get_file_manager_name_1.getFileManagerName)(window.remotion_fileSystemPlatform);
|
|
@@ -55,7 +58,7 @@ const getOpenInMenuItems = ({ canOpenDesktopApps, codingAgentInfo, editorDisable
|
|
|
55
58
|
onOpenInEditor(editor.id);
|
|
56
59
|
}
|
|
57
60
|
},
|
|
58
|
-
quickSwitcherLabel:
|
|
61
|
+
quickSwitcherLabel: `Open in ${editor.name}`,
|
|
59
62
|
subMenu: null,
|
|
60
63
|
type: 'item',
|
|
61
64
|
value: editor.id,
|
|
@@ -68,7 +71,7 @@ const getOpenInMenuItems = ({ canOpenDesktopApps, codingAgentInfo, editorDisable
|
|
|
68
71
|
label: jsx_runtime_1.jsx("span", { style: menuLabel, children: codingAgent.name }),
|
|
69
72
|
leftItem: jsx_runtime_1.jsx(CodingAgentIcon_1.CodingAgentIcon, { codingAgentId: codingAgent.id, size: 18 }),
|
|
70
73
|
onClick: () => onOpenInCodingAgent(codingAgent.id, codingAgent.nameWithType),
|
|
71
|
-
quickSwitcherLabel:
|
|
74
|
+
quickSwitcherLabel: `Open in ${codingAgent.nameWithType}`,
|
|
72
75
|
subMenu: null,
|
|
73
76
|
type: 'item',
|
|
74
77
|
value: `coding-agent-${codingAgent.id}`,
|
|
@@ -91,7 +94,7 @@ const getOpenInMenuItems = ({ canOpenDesktopApps, codingAgentInfo, editorDisable
|
|
|
91
94
|
onOpenInGitSource();
|
|
92
95
|
}
|
|
93
96
|
},
|
|
94
|
-
quickSwitcherLabel:
|
|
97
|
+
quickSwitcherLabel: 'Open in GitHub.com',
|
|
95
98
|
subMenu: null,
|
|
96
99
|
type: 'item',
|
|
97
100
|
value: 'github',
|
|
@@ -111,12 +114,25 @@ const getOpenInMenuItems = ({ canOpenDesktopApps, codingAgentInfo, editorDisable
|
|
|
111
114
|
onOpenInFileExplorer();
|
|
112
115
|
}
|
|
113
116
|
},
|
|
114
|
-
quickSwitcherLabel:
|
|
117
|
+
quickSwitcherLabel: `Open in ${fileManagerName}`,
|
|
115
118
|
subMenu: null,
|
|
116
119
|
type: 'item',
|
|
117
120
|
value: 'file-explorer',
|
|
118
121
|
}
|
|
119
122
|
: null,
|
|
123
|
+
onCopyPath
|
|
124
|
+
? {
|
|
125
|
+
id: 'copy-path',
|
|
126
|
+
keyHint: null,
|
|
127
|
+
label: jsx_runtime_1.jsx("span", { style: menuLabel, children: "Copy path" }),
|
|
128
|
+
leftItem: jsx_runtime_1.jsx(clipboard_1.ClipboardIcon, { color: colors_1.LIGHT_TEXT, style: copyIcon }),
|
|
129
|
+
onClick: onCopyPath,
|
|
130
|
+
quickSwitcherLabel: 'Copy path',
|
|
131
|
+
subMenu: null,
|
|
132
|
+
type: 'item',
|
|
133
|
+
value: 'copy-path',
|
|
134
|
+
}
|
|
135
|
+
: null,
|
|
120
136
|
].filter(no_react_1.NoReactInternals.truthy);
|
|
121
137
|
const hasCategorizedApps = editors.length > 0 ||
|
|
122
138
|
codingAgents.length > 0 ||
|
|
@@ -156,7 +172,7 @@ const getOpenInMenuItems = ({ canOpenDesktopApps, codingAgentInfo, editorDisable
|
|
|
156
172
|
label: jsx_runtime_1.jsx("span", { style: menuLabel, children: terminal.name }),
|
|
157
173
|
leftItem: jsx_runtime_1.jsx(terminal_1.TerminalIcon, { terminalId: terminal.id, size: 18 }),
|
|
158
174
|
onClick: () => onOpenInTerminal === null || onOpenInTerminal === void 0 ? void 0 : onOpenInTerminal(terminal.id),
|
|
159
|
-
quickSwitcherLabel:
|
|
175
|
+
quickSwitcherLabel: `Open in ${terminal.name}`,
|
|
160
176
|
subMenu: null,
|
|
161
177
|
type: 'item',
|
|
162
178
|
value: `terminal-${terminal.id}`,
|
|
@@ -176,7 +192,7 @@ const getOpenInMenuItems = ({ canOpenDesktopApps, codingAgentInfo, editorDisable
|
|
|
176
192
|
label: jsx_runtime_1.jsx("span", { style: menuLabel, children: gitClient.name }),
|
|
177
193
|
leftItem: jsx_runtime_1.jsx(git_client_1.GitClientIcon, { gitClientId: gitClient.id, size: 18 }),
|
|
178
194
|
onClick: () => onOpenInGitClient(gitClient.id),
|
|
179
|
-
quickSwitcherLabel:
|
|
195
|
+
quickSwitcherLabel: `Open in ${gitClient.name}`,
|
|
180
196
|
subMenu: null,
|
|
181
197
|
type: 'item',
|
|
182
198
|
value: `git-client-${gitClient.id}`,
|
|
@@ -12,15 +12,15 @@ export type KeyboardShortcutGroup = {
|
|
|
12
12
|
export declare const defaultKeyboardShortcuts: Record<StudioKeyboardShortcutAction, readonly StudioKeyboardShortcut[]>;
|
|
13
13
|
export declare const keyboardShortcutGroups: readonly KeyboardShortcutGroup[];
|
|
14
14
|
export declare const askAIKeyboardShortcutGroup: KeyboardShortcutGroup;
|
|
15
|
-
export declare const getKeyboardShortcutsForAction: (action: "askAI" | "clearInOutPoints" | "copyEffectsAndValues" | "cutEffects" | "deleteSelection" | "duplicateSequences" | "enterFullscreen" | "goToFrame" | "jumpToBeginning" | "jumpToEnd" | "nextComposition" | "pauseAndReturnToPlaybackStart" | "pausePlayback" | "pickColor" | "playForward" | "playPause" | "previousComposition" | "quickSwitcher" | "redo" | "render" | "resetZoom" | "reversePlayback" | "selectAllSequenceRows" | "selectOpacityProp" | "selectRotateProp" | "selectScaleProp" | "selectTranslateProp" | "setInPoint" | "setOutPoint" | "showKeyboardShortcuts" | "toggleBothSidebars" | "toggleCheckerboard" | "toggleLeftSidebar" | "toggleLoop" | "toggleMute" | "toggleOutlines" | "toggleRightSidebar" | "toggleRulersAndGuides" | "toggleSnapping" | "undo" | "zoomIn" | "zoomOut", configured?: Partial<Record<"askAI" | "clearInOutPoints" | "copyEffectsAndValues" | "cutEffects" | "deleteSelection" | "duplicateSequences" | "enterFullscreen" | "goToFrame" | "jumpToBeginning" | "jumpToEnd" | "nextComposition" | "pauseAndReturnToPlaybackStart" | "pausePlayback" | "pickColor" | "playForward" | "playPause" | "previousComposition" | "quickSwitcher" | "redo" | "render" | "resetZoom" | "reversePlayback" | "selectAllSequenceRows" | "selectOpacityProp" | "selectRotateProp" | "selectScaleProp" | "selectTranslateProp" | "setInPoint" | "setOutPoint" | "showKeyboardShortcuts" | "toggleBothSidebars" | "toggleCheckerboard" | "toggleLeftSidebar" | "toggleLoop" | "toggleMute" | "toggleOutlines" | "toggleRightSidebar" | "toggleRulersAndGuides" | "toggleSnapping" | "undo" | "zoomIn" | "zoomOut", StudioKeyboardShortcutValue>> | null) => readonly StudioKeyboardShortcut[];
|
|
15
|
+
export declare const getKeyboardShortcutsForAction: (action: "askAI" | "clearInOutPoints" | "copyEffectsAndValues" | "cutEffects" | "deleteSelection" | "duplicateSequences" | "enterFullscreen" | "goToFrame" | "jumpToBeginning" | "jumpToEnd" | "nextComposition" | "pauseAndReturnToPlaybackStart" | "pausePlayback" | "pickColor" | "playForward" | "playPause" | "previousComposition" | "quickSwitcher" | "redo" | "render" | "resetZoom" | "reversePlayback" | "selectAllSequenceRows" | "selectOpacityProp" | "selectRotateProp" | "selectScaleProp" | "selectTranslateProp" | "setInPoint" | "setOutPoint" | "showKeyboardShortcuts" | "splitSequences" | "toggleBothSidebars" | "toggleCheckerboard" | "toggleLeftSidebar" | "toggleLoop" | "toggleMute" | "toggleOutlines" | "toggleRightSidebar" | "toggleRulersAndGuides" | "toggleSnapping" | "undo" | "zoomIn" | "zoomOut", configured?: Partial<Record<"askAI" | "clearInOutPoints" | "copyEffectsAndValues" | "cutEffects" | "deleteSelection" | "duplicateSequences" | "enterFullscreen" | "goToFrame" | "jumpToBeginning" | "jumpToEnd" | "nextComposition" | "pauseAndReturnToPlaybackStart" | "pausePlayback" | "pickColor" | "playForward" | "playPause" | "previousComposition" | "quickSwitcher" | "redo" | "render" | "resetZoom" | "reversePlayback" | "selectAllSequenceRows" | "selectOpacityProp" | "selectRotateProp" | "selectScaleProp" | "selectTranslateProp" | "setInPoint" | "setOutPoint" | "showKeyboardShortcuts" | "splitSequences" | "toggleBothSidebars" | "toggleCheckerboard" | "toggleLeftSidebar" | "toggleLoop" | "toggleMute" | "toggleOutlines" | "toggleRightSidebar" | "toggleRulersAndGuides" | "toggleSnapping" | "undo" | "zoomIn" | "zoomOut", StudioKeyboardShortcutValue>> | null) => readonly StudioKeyboardShortcut[];
|
|
16
16
|
export declare const keyboardEventMatchesShortcut: ({ event, shortcut: value, }: {
|
|
17
17
|
readonly event: KeyboardEvent;
|
|
18
18
|
readonly shortcut: StudioKeyboardShortcut;
|
|
19
19
|
}) => boolean;
|
|
20
20
|
export declare const keyboardShortcutsOverlap: (first: StudioKeyboardShortcut, second: StudioKeyboardShortcut) => boolean;
|
|
21
|
-
export declare const keyboardEventMatchesAction: (event: KeyboardEvent, action: "askAI" | "clearInOutPoints" | "copyEffectsAndValues" | "cutEffects" | "deleteSelection" | "duplicateSequences" | "enterFullscreen" | "goToFrame" | "jumpToBeginning" | "jumpToEnd" | "nextComposition" | "pauseAndReturnToPlaybackStart" | "pausePlayback" | "pickColor" | "playForward" | "playPause" | "previousComposition" | "quickSwitcher" | "redo" | "render" | "resetZoom" | "reversePlayback" | "selectAllSequenceRows" | "selectOpacityProp" | "selectRotateProp" | "selectScaleProp" | "selectTranslateProp" | "setInPoint" | "setOutPoint" | "showKeyboardShortcuts" | "toggleBothSidebars" | "toggleCheckerboard" | "toggleLeftSidebar" | "toggleLoop" | "toggleMute" | "toggleOutlines" | "toggleRightSidebar" | "toggleRulersAndGuides" | "toggleSnapping" | "undo" | "zoomIn" | "zoomOut") => boolean;
|
|
21
|
+
export declare const keyboardEventMatchesAction: (event: KeyboardEvent, action: "askAI" | "clearInOutPoints" | "copyEffectsAndValues" | "cutEffects" | "deleteSelection" | "duplicateSequences" | "enterFullscreen" | "goToFrame" | "jumpToBeginning" | "jumpToEnd" | "nextComposition" | "pauseAndReturnToPlaybackStart" | "pausePlayback" | "pickColor" | "playForward" | "playPause" | "previousComposition" | "quickSwitcher" | "redo" | "render" | "resetZoom" | "reversePlayback" | "selectAllSequenceRows" | "selectOpacityProp" | "selectRotateProp" | "selectScaleProp" | "selectTranslateProp" | "setInPoint" | "setOutPoint" | "showKeyboardShortcuts" | "splitSequences" | "toggleBothSidebars" | "toggleCheckerboard" | "toggleLeftSidebar" | "toggleLoop" | "toggleMute" | "toggleOutlines" | "toggleRightSidebar" | "toggleRulersAndGuides" | "toggleSnapping" | "undo" | "zoomIn" | "zoomOut") => boolean;
|
|
22
22
|
export declare const formatKeyboardShortcut: (value: StudioKeyboardShortcut) => readonly string[];
|
|
23
23
|
export declare const formatKeyboardShortcutForAria: (value: StudioKeyboardShortcut) => string;
|
|
24
|
-
export declare const getKeyboardShortcutLabel: (action: "askAI" | "clearInOutPoints" | "copyEffectsAndValues" | "cutEffects" | "deleteSelection" | "duplicateSequences" | "enterFullscreen" | "goToFrame" | "jumpToBeginning" | "jumpToEnd" | "nextComposition" | "pauseAndReturnToPlaybackStart" | "pausePlayback" | "pickColor" | "playForward" | "playPause" | "previousComposition" | "quickSwitcher" | "redo" | "render" | "resetZoom" | "reversePlayback" | "selectAllSequenceRows" | "selectOpacityProp" | "selectRotateProp" | "selectScaleProp" | "selectTranslateProp" | "setInPoint" | "setOutPoint" | "showKeyboardShortcuts" | "toggleBothSidebars" | "toggleCheckerboard" | "toggleLeftSidebar" | "toggleLoop" | "toggleMute" | "toggleOutlines" | "toggleRightSidebar" | "toggleRulersAndGuides" | "toggleSnapping" | "undo" | "zoomIn" | "zoomOut") => string;
|
|
25
|
-
export declare const getKeyboardShortcutAriaKeyShortcuts: (action: "askAI" | "clearInOutPoints" | "copyEffectsAndValues" | "cutEffects" | "deleteSelection" | "duplicateSequences" | "enterFullscreen" | "goToFrame" | "jumpToBeginning" | "jumpToEnd" | "nextComposition" | "pauseAndReturnToPlaybackStart" | "pausePlayback" | "pickColor" | "playForward" | "playPause" | "previousComposition" | "quickSwitcher" | "redo" | "render" | "resetZoom" | "reversePlayback" | "selectAllSequenceRows" | "selectOpacityProp" | "selectRotateProp" | "selectScaleProp" | "selectTranslateProp" | "setInPoint" | "setOutPoint" | "showKeyboardShortcuts" | "toggleBothSidebars" | "toggleCheckerboard" | "toggleLeftSidebar" | "toggleLoop" | "toggleMute" | "toggleOutlines" | "toggleRightSidebar" | "toggleRulersAndGuides" | "toggleSnapping" | "undo" | "zoomIn" | "zoomOut") => string;
|
|
24
|
+
export declare const getKeyboardShortcutLabel: (action: "askAI" | "clearInOutPoints" | "copyEffectsAndValues" | "cutEffects" | "deleteSelection" | "duplicateSequences" | "enterFullscreen" | "goToFrame" | "jumpToBeginning" | "jumpToEnd" | "nextComposition" | "pauseAndReturnToPlaybackStart" | "pausePlayback" | "pickColor" | "playForward" | "playPause" | "previousComposition" | "quickSwitcher" | "redo" | "render" | "resetZoom" | "reversePlayback" | "selectAllSequenceRows" | "selectOpacityProp" | "selectRotateProp" | "selectScaleProp" | "selectTranslateProp" | "setInPoint" | "setOutPoint" | "showKeyboardShortcuts" | "splitSequences" | "toggleBothSidebars" | "toggleCheckerboard" | "toggleLeftSidebar" | "toggleLoop" | "toggleMute" | "toggleOutlines" | "toggleRightSidebar" | "toggleRulersAndGuides" | "toggleSnapping" | "undo" | "zoomIn" | "zoomOut") => string;
|
|
25
|
+
export declare const getKeyboardShortcutAriaKeyShortcuts: (action: "askAI" | "clearInOutPoints" | "copyEffectsAndValues" | "cutEffects" | "deleteSelection" | "duplicateSequences" | "enterFullscreen" | "goToFrame" | "jumpToBeginning" | "jumpToEnd" | "nextComposition" | "pauseAndReturnToPlaybackStart" | "pausePlayback" | "pickColor" | "playForward" | "playPause" | "previousComposition" | "quickSwitcher" | "redo" | "render" | "resetZoom" | "reversePlayback" | "selectAllSequenceRows" | "selectOpacityProp" | "selectRotateProp" | "selectScaleProp" | "selectTranslateProp" | "setInPoint" | "setOutPoint" | "showKeyboardShortcuts" | "splitSequences" | "toggleBothSidebars" | "toggleCheckerboard" | "toggleLeftSidebar" | "toggleLoop" | "toggleMute" | "toggleOutlines" | "toggleRightSidebar" | "toggleRulersAndGuides" | "toggleSnapping" | "undo" | "zoomIn" | "zoomOut") => string;
|
|
26
26
|
export declare const shortcutFromKeyboardEvent: (event: KeyboardEvent) => StudioKeyboardShortcut | null;
|
|
@@ -45,7 +45,8 @@ exports.defaultKeyboardShortcuts = {
|
|
|
45
45
|
selectOpacityProp: [{ key: 't' }],
|
|
46
46
|
selectRotateProp: [{ key: 'r', shift: false }],
|
|
47
47
|
selectScaleProp: [{ key: 's' }],
|
|
48
|
-
duplicateSequences: [{ key: 'd', commandOrControl: true }],
|
|
48
|
+
duplicateSequences: [{ key: 'd', commandOrControl: true, shift: false }],
|
|
49
|
+
splitSequences: [{ key: 'd', commandOrControl: true, shift: true }],
|
|
49
50
|
copyEffectsAndValues: [{ key: 'c', commandOrControl: true }],
|
|
50
51
|
cutEffects: [{ key: 'x', commandOrControl: true }],
|
|
51
52
|
deleteSelection: [{ key: 'Backspace' }, { key: 'Delete' }],
|
|
@@ -136,6 +137,7 @@ exports.keyboardShortcutGroups = [
|
|
|
136
137
|
shortcut('Select rotate prop', 'selectRotateProp'),
|
|
137
138
|
shortcut('Select scale prop', 'selectScaleProp'),
|
|
138
139
|
shortcut('Duplicate sequences', 'duplicateSequences'),
|
|
140
|
+
shortcut('Split sequences at playhead', 'splitSequences'),
|
|
139
141
|
shortcut('Copy effects / values', 'copyEffectsAndValues'),
|
|
140
142
|
shortcut('Cut effects', 'cutEffects'),
|
|
141
143
|
fixedShortcut('Paste effects / values', [[is_mac_1.isMac ? '⌘' : 'Ctrl', 'V']], 'Handled by the browser clipboard event'),
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
export declare const getMediaFileName: (src: string, displayName: string) => string;
|
|
1
2
|
export declare const getDefaultOutputBaseName: (src: string, displayName: string, fallbackName: string) => string;
|
|
2
3
|
export declare const validatePublicOutputName: ({ extension, outName, }: {
|
|
3
4
|
extension: string;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.validatePublicOutputName = exports.getDefaultOutputBaseName = void 0;
|
|
3
|
+
exports.validatePublicOutputName = exports.getDefaultOutputBaseName = exports.getMediaFileName = void 0;
|
|
4
4
|
const invalidCharacters = ['?', '*', '+', ':', '%'];
|
|
5
|
-
const
|
|
5
|
+
const getMediaFileName = (src, displayName) => {
|
|
6
6
|
var _a;
|
|
7
7
|
let pathname = displayName;
|
|
8
8
|
if (!/^(data|blob):/i.test(src.trimStart())) {
|
|
@@ -24,7 +24,11 @@ const getDefaultOutputBaseName = (src, displayName, fallbackName) => {
|
|
|
24
24
|
catch (_c) {
|
|
25
25
|
// Keep the encoded name if it contains an invalid escape sequence.
|
|
26
26
|
}
|
|
27
|
-
return
|
|
27
|
+
return decoded;
|
|
28
|
+
};
|
|
29
|
+
exports.getMediaFileName = getMediaFileName;
|
|
30
|
+
const getDefaultOutputBaseName = (src, displayName, fallbackName) => {
|
|
31
|
+
return ((0, exports.getMediaFileName)(src, displayName)
|
|
28
32
|
.replace(/\.[^/.]+$/, '')
|
|
29
33
|
.replace(/[^a-zA-Z0-9-_ ]/g, '-')
|
|
30
34
|
.trim()
|
|
@@ -198,12 +198,7 @@ export declare const snapSelectedOutlineUv: ({ point, points, thresholdPx, uv, }
|
|
|
198
198
|
}) => UvCoordinate;
|
|
199
199
|
export declare const selectedOutlineTransformOriginSnapThresholdPx = 10;
|
|
200
200
|
export declare const snapSelectedOutlineTransformOriginUv: ({ crop, point, points, thresholdPx, uv, }: {
|
|
201
|
-
readonly crop:
|
|
202
|
-
readonly left: number;
|
|
203
|
-
readonly right: number;
|
|
204
|
-
readonly top: number;
|
|
205
|
-
readonly bottom: number;
|
|
206
|
-
} | null;
|
|
201
|
+
readonly crop: import("@remotion/canvas").CanvasOutlineCrop | null;
|
|
207
202
|
readonly point: OutlinePoint;
|
|
208
203
|
readonly points: readonly [OutlinePoint, OutlinePoint, OutlinePoint, OutlinePoint];
|
|
209
204
|
readonly thresholdPx: number | null;
|