@remotion/studio 4.0.527 → 4.0.529
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/Studio.js +2 -0
- package/dist/components/AgentPrompt.js +3 -4
- package/dist/components/AppLaunchButton.d.ts +0 -1
- package/dist/components/AppLaunchButton.js +2 -5
- package/dist/components/AssetAudioVolume.js +2 -2
- package/dist/components/AssetSelectorItem.js +5 -5
- package/dist/components/AudioWaveform.d.ts +1 -0
- package/dist/components/AudioWaveform.js +10 -14
- package/dist/components/Button.d.ts +1 -1
- package/dist/components/Button.js +2 -2
- package/dist/components/CaptionInspector.js +1 -1
- package/dist/components/CaptionTextEditor.js +1 -1
- package/dist/components/CheckboardToggle.js +1 -1
- package/dist/components/CodeFrame.js +1 -1
- package/dist/components/CodingAgentButton.js +1 -1
- package/dist/components/ColorPicker/ColorPicker.d.ts +1 -1
- package/dist/components/ColorPicker/ColorPicker.js +2 -2
- package/dist/components/ColorPicker/ColorPickerPopup.js +1 -1
- package/dist/components/ColorPicker/checker.d.ts +1 -1
- package/dist/components/CompactExplanation.js +3 -3
- package/dist/components/CompositionSelectorItem.js +2 -2
- package/dist/components/ConfigSelect.js +1 -1
- package/dist/components/ConfigureDefaultEditorModal.js +2 -2
- package/dist/components/ControlButton.d.ts +0 -1
- package/dist/components/ControlButton.js +2 -2
- package/dist/components/CurrentAsset.js +4 -3
- 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/ElementLibraryModal.js +1 -1
- package/dist/components/FramePersistor.js +3 -3
- package/dist/components/FullscreenToggle.js +1 -1
- package/dist/components/InitialCompositionLoader.js +5 -3
- package/dist/components/InlineAction.d.ts +2 -2
- package/dist/components/InlineAction.js +2 -3
- package/dist/components/InlineEditableTitle.d.ts +1 -1
- package/dist/components/InlineEditableTitle.js +3 -3
- package/dist/components/InspectorLocationCopy.js +1 -1
- package/dist/components/InspectorOpenInEditor.js +14 -3
- package/dist/components/InspectorPanel/AlignmentControls.js +31 -12
- package/dist/components/InspectorPanel/CollapsibleInspectorSectionHeader.js +1 -1
- package/dist/components/InspectorPanel/CompositionInspector.js +1 -5
- package/dist/components/InspectorPanel/CompositionMetadata.js +4 -4
- package/dist/components/InspectorPanel/EasingInspector.js +7 -3
- package/dist/components/InspectorPanel/ElementLibraryButton.js +3 -14
- package/dist/components/InspectorPanel/KeyframeEasingNavigator.js +6 -8
- package/dist/components/InspectorPanel/KeyframeInspector.js +29 -25
- package/dist/components/InspectorPanel/KeyframeSettings.js +16 -11
- package/dist/components/InspectorPanel/MultiSequenceField.js +1 -1
- package/dist/components/InspectorPanel/MultiSequenceInspector.js +2 -7
- package/dist/components/InspectorPanel/MultiSequenceNumberField.js +2 -2
- package/dist/components/InspectorPanel/SequenceInspectorHeader.d.ts +3 -1
- package/dist/components/InspectorPanel/SequenceInspectorHeader.js +1 -1
- package/dist/components/InspectorPanel/SequenceSelectionInspector.js +33 -14
- package/dist/components/InspectorPanel/SequenceWrapAction.d.ts +8 -0
- package/dist/components/InspectorPanel/SequenceWrapAction.js +143 -0
- package/dist/components/InspectorPanel/common.d.ts +6 -2
- package/dist/components/InspectorPanel/common.js +25 -9
- 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/InspectorSequenceSection.d.ts +1 -0
- package/dist/components/InspectorSequenceSection.js +12 -10
- package/dist/components/InspectorSourceLocation.js +2 -2
- package/dist/components/KeyboardShortcutsSettings.js +2 -2
- package/dist/components/LicenseKeyValidation.js +2 -2
- package/dist/components/LoopToggle.js +1 -1
- package/dist/components/Menu/MenuSubItem.js +4 -2
- package/dist/components/Menu/styles.d.ts +2 -2
- package/dist/components/MenuBuildIndicator.js +1 -1
- package/dist/components/MenuCompositionName.js +1 -1
- package/dist/components/Modals.js +7 -6
- package/dist/components/ModelManager.js +10 -9
- package/dist/components/MuteToggle.js +1 -1
- package/dist/components/NewComposition/CancelButton.js +10 -4
- package/dist/components/NewComposition/ComboBox.d.ts +1 -1
- package/dist/components/NewComposition/ComboBox.js +2 -2
- package/dist/components/NewComposition/DuplicateComposition.js +1 -1
- package/dist/components/NewComposition/InputDragger.d.ts +4 -2
- package/dist/components/NewComposition/InputDragger.js +29 -10
- package/dist/components/NewComposition/NewComposition.js +8 -7
- package/dist/components/NewComposition/RemInput.d.ts +1 -1
- package/dist/components/NewComposition/menu-typeahead.js +1 -1
- package/dist/components/OpenIssueButton.js +1 -1
- package/dist/components/OutlineToggle.js +1 -1
- package/dist/components/PlayPause.js +1 -1
- package/dist/components/PlaybackRateSelector.js +1 -1
- package/dist/components/PreviewToolbarOverflowButton.js +1 -1
- package/dist/components/QuickSwitcher/ExplorerQuickSwitcherTrigger.js +1 -1
- package/dist/components/RenderButton.js +2 -4
- package/dist/components/RenderModal/InfoBubble.d.ts +1 -1
- package/dist/components/RenderModal/InfoBubble.js +2 -2
- package/dist/components/RenderModal/NumberSetting.js +1 -1
- package/dist/components/RenderModal/OptionExplainerBubble.js +2 -2
- package/dist/components/RenderModal/RenderModalAdvanced.js +2 -2
- package/dist/components/RenderModal/RenderModalAudio.js +2 -2
- package/dist/components/RenderModal/RenderModalBasic.js +3 -3
- package/dist/components/RenderModal/RenderModalEncoding.js +4 -4
- package/dist/components/RenderModal/RenderModalOutputName.js +1 -1
- package/dist/components/RenderModal/SchemaEditor/SchemaLabel.js +1 -1
- package/dist/components/RenderModal/SchemaEditor/ZodDiscriminatedUnionEditor.js +1 -1
- package/dist/components/RenderModal/SchemaEditor/ZodEnumEditor.js +1 -1
- package/dist/components/RenderModal/SchemaEditor/ZodFieldValidation.js +1 -1
- package/dist/components/RenderModal/SchemaEditor/ZodStaticFileEditor.js +1 -1
- package/dist/components/RenderModal/SchemaEditor/create-zod-values.js +1 -2
- package/dist/components/RenderModal/WebRenderModalAdvanced.js +2 -2
- package/dist/components/RenderModal/WebRenderModalAudio.js +2 -2
- package/dist/components/RenderModal/WebRenderModalBasic.js +3 -3
- package/dist/components/RenderModal/WebRenderModalPicture.js +2 -3
- package/dist/components/RenderQueue/CaptionQueueItem.js +14 -5
- package/dist/components/RenderQueue/CaptionQueueProcessor.js +30 -7
- 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/RenderQueueError.js +1 -1
- package/dist/components/RenderQueue/RenderQueueItemCancelButton.d.ts +3 -1
- package/dist/components/RenderQueue/RenderQueueItemCancelButton.js +11 -4
- package/dist/components/RenderQueue/RenderQueueOutputName.js +1 -1
- package/dist/components/RenderQueue/RenderQueueProgressMessage.js +1 -1
- package/dist/components/RenderQueue/RenderQueueRepeat.d.ts +3 -1
- package/dist/components/RenderQueue/RenderQueueRepeat.js +20 -3
- package/dist/components/RenderQueue/VideoMattingQueueItem.js +24 -27
- package/dist/components/RenderQueue/VideoMattingQueueProcessor.js +68 -28
- package/dist/components/RenderQueue/caption-job-types.d.ts +3 -1
- package/dist/components/RenderQueue/context.d.ts +4 -0
- package/dist/components/RenderQueue/context.js +58 -8
- package/dist/components/RenderQueue/index.js +2 -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/RenderingSettings.js +6 -6
- package/dist/components/RulersAndGuidesToggle.js +1 -1
- package/dist/components/SegmentedButton.d.ts +0 -2
- package/dist/components/SegmentedButton.js +6 -6
- 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 +165 -106
- package/dist/components/SelectedOutlinePathPoints.d.ts +8 -0
- package/dist/components/SelectedOutlinePathPoints.js +457 -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/SelectedOutlineTransformOriginHandle.js +3 -2
- package/dist/components/SelectedOutlineUvControls.js +12 -7
- package/dist/components/SettingsButton.js +1 -1
- 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/SizeSelector.js +1 -1
- package/dist/components/SkillsSettings.d.ts +0 -1
- package/dist/components/SkillsSettings.js +14 -15
- package/dist/components/SnappingToggle.js +1 -1
- package/dist/components/Splitter/SplitterElement.js +1 -2
- package/dist/components/StudioSettings.js +2 -2
- package/dist/components/TimeValue.js +2 -4
- package/dist/components/Timeline/EasingEditorModal.js +3 -3
- package/dist/components/Timeline/LoopedTimelineIndicators.d.ts +1 -0
- package/dist/components/Timeline/LoopedTimelineIndicators.js +7 -6
- package/dist/components/Timeline/TimelineArrayField.js +3 -3
- package/dist/components/Timeline/TimelineAssetField.js +3 -3
- package/dist/components/Timeline/TimelineClipboardKeybindings.js +0 -1
- package/dist/components/Timeline/TimelineColorField.js +3 -3
- package/dist/components/Timeline/TimelineDragHandler.js +3 -3
- package/dist/components/Timeline/TimelineDuplicateCount.js +1 -1
- package/dist/components/Timeline/TimelineEffectItem.js +1 -1
- package/dist/components/Timeline/TimelineEffectPropItem.d.ts +1 -0
- package/dist/components/Timeline/TimelineEffectPropItem.js +12 -5
- package/dist/components/Timeline/TimelineEnumField.js +1 -1
- package/dist/components/Timeline/TimelineExpandedRow.d.ts +1 -0
- package/dist/components/Timeline/TimelineExpandedRow.js +5 -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 -1
- package/dist/components/Timeline/TimelineFontFamilyField.js +14 -14
- package/dist/components/Timeline/TimelineFontWeightField.js +1 -1
- package/dist/components/Timeline/TimelineKeyframeControls.d.ts +1 -0
- package/dist/components/Timeline/TimelineKeyframeControls.js +42 -31
- package/dist/components/Timeline/TimelineKeyframeDiamond.js +1 -1
- package/dist/components/Timeline/TimelineKeyframeEasingLine.js +1 -1
- package/dist/components/Timeline/TimelineLayerChildren.js +2 -2
- package/dist/components/Timeline/TimelineList.js +16 -8
- package/dist/components/Timeline/TimelineMediaInfo.js +1 -1
- package/dist/components/Timeline/TimelineNumberField.js +2 -4
- package/dist/components/Timeline/TimelinePrimitiveFieldValue.js +1 -1
- package/dist/components/Timeline/TimelineScaleField.js +1 -1
- package/dist/components/Timeline/TimelineSchemaField.js +2 -2
- 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 +40 -22
- package/dist/components/Timeline/TimelineSequenceItem.d.ts +1 -0
- package/dist/components/Timeline/TimelineSequenceItem.js +52 -24
- package/dist/components/Timeline/TimelineSequenceName.d.ts +1 -0
- package/dist/components/Timeline/TimelineSequenceName.js +38 -6
- package/dist/components/Timeline/TimelineSequencePropItem.d.ts +3 -0
- package/dist/components/Timeline/TimelineSequencePropItem.js +266 -27
- 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/TimelineZoomControls.js +2 -2
- 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 +7 -93
- 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-split-menu-item.js +2 -2
- 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.js +4 -1
- 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-expanded-tree.d.ts +1 -1
- package/dist/components/Timeline/use-timeline-expanded-tree.js +3 -0
- package/dist/components/Timeline/use-timeline-keyframe-drag.js +28 -19
- package/dist/components/TimelineCombobox.d.ts +1 -1
- package/dist/components/TimelineCombobox.js +5 -6
- package/dist/components/TimelineInOutToggle.js +1 -1
- package/dist/components/Transcription/Models.js +1 -1
- package/dist/components/Transcription/TranscriptionModal.js +9 -7
- 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/UndoRedoButtons.js +1 -1
- package/dist/components/UpdatesSettings.js +4 -2
- package/dist/components/VideoMatting/Models.js +1 -1
- package/dist/components/VideoMatting/VideoMattingModal.js +34 -51
- package/dist/components/VideoMatting/VideoMattingModalWithOptionalPackage.js +1 -1
- package/dist/components/WebMcp.js +22 -40
- package/dist/components/composition-drop-preview.js +1 -0
- 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 +17 -1
- 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 +20 -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/CompositionIdListItem.js +1 -1
- package/dist/error-overlay/remotion-overlay/OpenInEditor.js +46 -3
- package/dist/error-overlay/remotion-overlay/StackFrame.js +32 -3
- package/dist/esm/{CaptionQueueProcessor-npa6szn1.mjs → CaptionQueueProcessor-qj37c6r2.mjs} +63 -17
- package/dist/esm/LazyModels-rjsrgap5.mjs +12 -0
- package/dist/esm/LazyModels-rnbjx98t.mjs +12 -0
- package/dist/esm/{TranscriptionModal-79m5wgcj.mjs → TranscriptionModal-y7zeqj2d.mjs} +21 -21
- package/dist/esm/{VideoMattingModal-31pew0xj.mjs → VideoMattingModal-jzrkhah1.mjs} +51 -69
- 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-e855w59j.mjs → index-19d05w9e.mjs} +3 -5
- package/dist/esm/index-24wge6y5.mjs +102 -0
- package/dist/esm/index-3qb54r5j.mjs +157 -0
- package/dist/esm/{index-n5gmcvhz.mjs → index-5ycb9e9q.mjs} +2 -4
- package/dist/esm/{index-s7qa3xbw.mjs → index-cakcjjy2.mjs} +7 -7
- package/dist/esm/{index-r1gr3j3a.mjs → index-dfy1t576.mjs} +50 -1
- package/dist/esm/{index-614tdz2q.mjs → index-f9hxt5yh.mjs} +3 -3
- package/dist/esm/{index-9x6e1dq0.mjs → index-hqxc6tzp.mjs} +40 -6
- package/dist/esm/{index-ac5550e7.mjs → index-jc22b2wb.mjs} +3 -3
- package/dist/esm/{index-5t2dwxsk.mjs → index-m01zjph7.mjs} +261 -25
- package/dist/esm/{index-ppspzgn9.mjs → index-m2a95v3p.mjs} +4904 -4951
- package/dist/esm/{index-9xxg6218.mjs → index-qve7mdfp.mjs} +19 -1
- package/dist/esm/{index-vxwg66ar.mjs → index-r9bj4tta.mjs} +47 -60
- package/dist/esm/{index-r0ejh5sy.mjs → index-vnc2wdfd.mjs} +44 -27
- package/dist/esm/{index-21hxsfaa.mjs → index-vtr5qzam.mjs} +6 -25
- package/dist/esm/{index-4zen9prq.mjs → index-x7kg7jqv.mjs} +6809 -5640
- package/dist/esm/index.mjs +4 -5
- package/dist/esm/internals.mjs +13 -13
- package/dist/esm/previewEntry.mjs +18 -15
- package/dist/esm/renderEntry.mjs +5 -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/checkerboard-background.js +1 -1
- package/dist/helpers/colors.d.ts +131 -112
- package/dist/helpers/colors.js +121 -100
- 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 +4 -4
- package/dist/helpers/inject-css.js +5 -7
- 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 +104 -0
- package/dist/helpers/studio-pixel-ratio.d.ts +1 -0
- package/dist/helpers/studio-pixel-ratio.js +7 -0
- 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-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/snowflake.js +1 -3
- package/dist/icons/{scissors.d.ts → split.d.ts} +1 -1
- package/dist/icons/split.js +8 -0
- package/dist/icons/trash.js +2 -2
- 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 +15 -1
- package/dist/state/timeline-sequence-hover.d.ts +6 -16
- package/dist/state/timeline-sequence-hover.js +6 -67
- 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/esm/LazyModels-nh3c8h9p.mjs +0 -12
- package/dist/esm/LazyModels-rr5v8h5y.mjs +0 -12
- 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/scissors.js +0 -8
- package/dist/icons/separation.js +0 -7
- /package/dist/esm/{resolve-composition-component-location-qrp05g62.mjs → resolve-composition-component-location-2hgf6g0a.mjs} +0 -0
|
@@ -8,9 +8,10 @@ const client_id_1 = require("../../helpers/client-id");
|
|
|
8
8
|
const interactivity_enabled_1 = require("../../helpers/interactivity-enabled");
|
|
9
9
|
const use_media_metadata_1 = require("../../helpers/use-media-metadata");
|
|
10
10
|
const audio_1 = require("../../icons/audio");
|
|
11
|
+
const background_removal_1 = require("../../icons/background-removal");
|
|
11
12
|
const duplicate_1 = require("../../icons/duplicate");
|
|
12
|
-
const scissors_1 = require("../../icons/scissors");
|
|
13
13
|
const snowflake_1 = require("../../icons/snowflake");
|
|
14
|
+
const split_1 = require("../../icons/split");
|
|
14
15
|
const transcription_1 = require("../../icons/transcription");
|
|
15
16
|
const trash_1 = require("../../icons/trash");
|
|
16
17
|
const modals_1 = require("../../state/modals");
|
|
@@ -30,18 +31,9 @@ const CollapsibleInspectorSection_1 = require("./CollapsibleInspectorSection");
|
|
|
30
31
|
const common_1 = require("./common");
|
|
31
32
|
const ConnectedCompositionsSection_1 = require("./ConnectedCompositionsSection");
|
|
32
33
|
const SequenceInspectorHeader_1 = require("./SequenceInspectorHeader");
|
|
34
|
+
const SequenceWrapAction_1 = require("./SequenceWrapAction");
|
|
33
35
|
const styles_1 = require("./styles");
|
|
34
36
|
const use_track_for_selection_1 = require("./use-track-for-selection");
|
|
35
|
-
const actionIconStyle = {
|
|
36
|
-
display: 'block',
|
|
37
|
-
height: 16,
|
|
38
|
-
width: 16,
|
|
39
|
-
};
|
|
40
|
-
const largeActionIconStyle = {
|
|
41
|
-
...actionIconStyle,
|
|
42
|
-
height: 20,
|
|
43
|
-
width: 20,
|
|
44
|
-
};
|
|
45
37
|
const SplitSequenceQuickAction = ({ selection, track }) => {
|
|
46
38
|
const timelinePosition = remotion_1.Internals.Timeline.useTimelinePosition();
|
|
47
39
|
const { propStatuses } = (0, react_1.useContext)(remotion_1.Internals.VisualModePropStatusesContext);
|
|
@@ -71,7 +63,7 @@ const SplitSequenceQuickAction = ({ selection, track }) => {
|
|
|
71
63
|
: eligibility.canSplit
|
|
72
64
|
? undefined
|
|
73
65
|
: eligibility.reason;
|
|
74
|
-
return (jsx_runtime_1.jsx(common_1.InspectorQuickAction, { disabled: !canSplit, onClick: onSplit,
|
|
66
|
+
return (jsx_runtime_1.jsx(common_1.InspectorQuickAction, { disabled: !canSplit, iconContainerStyle: common_1.largeInspectorActionIconContainerStyle, onClick: onSplit, "aria-label": disabledReason, renderIcon: (color) => (jsx_runtime_1.jsx(split_1.SplitIcon, { style: common_1.largeInspectorActionIconStyle, color: color })), children: "Split clip" }));
|
|
75
67
|
};
|
|
76
68
|
const SequenceSourceQuickActions = ({ selection, track, validatedSource }) => {
|
|
77
69
|
var _a;
|
|
@@ -105,6 +97,11 @@ const SequenceSourceQuickActions = ({ selection, track, validatedSource }) => {
|
|
|
105
97
|
: selection.nodePathInfo.numberOfSequencesWithThisNodePath > 1
|
|
106
98
|
? 'Programmatically duplicated media cannot be transcribed from source'
|
|
107
99
|
: undefined;
|
|
100
|
+
const videoMattingDisabledReason = sourceActionsDisabled
|
|
101
|
+
? 'Studio is read-only'
|
|
102
|
+
: selection.nodePathInfo.numberOfSequencesWithThisNodePath > 1
|
|
103
|
+
? 'Programmatically duplicated videos cannot have their background removed from source'
|
|
104
|
+
: undefined;
|
|
108
105
|
const onGenerateCaptions = (0, react_1.useCallback)(() => {
|
|
109
106
|
if (transcriptionDisabledReason !== undefined || mediaSequence === null) {
|
|
110
107
|
return;
|
|
@@ -130,6 +127,27 @@ const SequenceSourceQuickActions = ({ selection, track, validatedSource }) => {
|
|
|
130
127
|
mediaSequence,
|
|
131
128
|
transcriptionDisabledReason,
|
|
132
129
|
]);
|
|
130
|
+
const onRemoveBackground = (0, react_1.useCallback)(() => {
|
|
131
|
+
if (videoMattingDisabledReason !== undefined ||
|
|
132
|
+
track.sequence.type !== 'video') {
|
|
133
|
+
return;
|
|
134
|
+
}
|
|
135
|
+
const nodePath = selection.nodePathInfo.sequenceSubscriptionKey;
|
|
136
|
+
setSelectedModal({
|
|
137
|
+
type: 'video-matting',
|
|
138
|
+
src: track.sequence.src,
|
|
139
|
+
displayName: (0, public_output_name_1.getMediaFileName)(track.sequence.src, track.sequence.displayName),
|
|
140
|
+
target: {
|
|
141
|
+
fileName: nodePath.absolutePath,
|
|
142
|
+
nodePath,
|
|
143
|
+
},
|
|
144
|
+
});
|
|
145
|
+
}, [
|
|
146
|
+
selection.nodePathInfo,
|
|
147
|
+
setSelectedModal,
|
|
148
|
+
track.sequence,
|
|
149
|
+
videoMattingDisabledReason,
|
|
150
|
+
]);
|
|
133
151
|
const onDuplicate = (0, react_1.useCallback)(() => {
|
|
134
152
|
if (sourceActionsDisabled) {
|
|
135
153
|
return;
|
|
@@ -165,7 +183,8 @@ const SequenceSourceQuickActions = ({ selection, track, validatedSource }) => {
|
|
|
165
183
|
(0, NotificationCenter_1.showNotification)(err.message, 4000);
|
|
166
184
|
});
|
|
167
185
|
}, [selection.nodePathInfo, splitVideoFromAudioDisabledReason]);
|
|
168
|
-
|
|
186
|
+
// Pad the larger SVG glyphs so they have similar visible bounds at 22px.
|
|
187
|
+
return (jsx_runtime_1.jsxs(jsx_runtime_1.Fragment, { children: [(freezeFrameMenuItem === null || freezeFrameMenuItem === void 0 ? void 0 : freezeFrameMenuItem.type) === 'item' ? (jsx_runtime_1.jsx(common_1.InspectorQuickAction, { disabled: Boolean(freezeFrameMenuItem.disabled), iconContainerStyle: common_1.largeInspectorActionIconContainerStyle, onClick: () => freezeFrameMenuItem.onClick(freezeFrameMenuItem.id, null), renderIcon: (color) => (jsx_runtime_1.jsx(snowflake_1.SnowflakeIcon, { style: common_1.largeInspectorActionIconStyle, color: color })), children: freezeFrameMenuItem.label })) : null, track.sequence.type === 'video' ? (jsx_runtime_1.jsx(common_1.InspectorQuickAction, { disabled: videoMattingDisabledReason !== undefined, iconContainerStyle: common_1.largeInspectorActionIconContainerStyle, onClick: onRemoveBackground, "aria-label": videoMattingDisabledReason, renderIcon: (color) => (jsx_runtime_1.jsx(background_removal_1.BackgroundRemovalIcon, { style: common_1.largeInspectorActionIconStyle, color: color, viewBox: "-32 -32 704 704" })), children: "Remove background" })) : null, track.sequence.type === 'video' ? (jsx_runtime_1.jsx(common_1.InspectorQuickAction, { disabled: splitVideoFromAudioDisabledReason !== undefined, iconContainerStyle: common_1.largeInspectorActionIconContainerStyle, onClick: onSplitVideoFromAudio, "aria-label": splitVideoFromAudioDisabledReason, renderIcon: (color) => (jsx_runtime_1.jsx(audio_1.AudioIcon, { style: common_1.largeInspectorActionIconStyle, color: color, viewBox: "-96 -64 704 640", preserveAspectRatio: "none" })), children: "Split video from audio" })) : null, mediaSequence !== null && (mediaMetadata === null || mediaMetadata === void 0 ? void 0 : mediaMetadata.hasAudioTrack) !== false ? (jsx_runtime_1.jsx(common_1.InspectorQuickAction, { disabled: transcriptionDisabledReason !== undefined, iconContainerStyle: common_1.largeInspectorActionIconContainerStyle, onClick: onGenerateCaptions, "aria-label": transcriptionDisabledReason, renderIcon: (color) => (jsx_runtime_1.jsx(transcription_1.TranscriptionIcon, { style: common_1.largeInspectorActionIconStyle, color: color, viewBox: "-96 -16 704 544", preserveAspectRatio: "none" })), children: "Generate captions" })) : null, jsx_runtime_1.jsx(common_1.InspectorQuickAction, { disabled: sourceActionsDisabled, iconContainerStyle: common_1.largeInspectorActionIconContainerStyle, onClick: onDuplicate, renderIcon: (color) => (jsx_runtime_1.jsx(duplicate_1.DuplicateIcon, { style: common_1.largeInspectorActionIconStyle, color: color, viewBox: "-32 -32 704 704" })), children: "Duplicate" }), jsx_runtime_1.jsx(SequenceWrapAction_1.SequenceWrapAction, { nodePathInfo: selection.nodePathInfo, sequence: track.sequence, sourceActionsDisabled: sourceActionsDisabled }), jsx_runtime_1.jsx(common_1.InspectorQuickAction, { disabled: sourceActionsDisabled, iconContainerStyle: common_1.largeInspectorActionIconContainerStyle, onClick: onDelete, renderIcon: (color) => (jsx_runtime_1.jsx(trash_1.TrashIcon, { style: common_1.largeInspectorActionIconStyle, color: color, viewBox: "-120 -96 688 688" })), children: "Delete" })] }));
|
|
169
188
|
};
|
|
170
189
|
const SequenceExpandedInspector = ({ track, readOnlyStudio }) => {
|
|
171
190
|
const { previewServerState } = (0, react_1.useContext)(client_id_1.StudioServerConnectionCtx);
|
|
@@ -210,7 +229,7 @@ const SequenceExpandedInspector = ({ track, readOnlyStudio }) => {
|
|
|
210
229
|
return jsx_runtime_1.jsx(common_1.InspectorMessage, { children: "Sequence inspector unavailable" });
|
|
211
230
|
}
|
|
212
231
|
return (jsx_runtime_1.jsxs("div", { style: styles_1.selectedContainer, className: is_menu_item_1.VERTICAL_SCROLLBAR_CLASSNAME, onPointerDown: selectSequenceOnInspectorPointerDown, children: [
|
|
213
|
-
jsx_runtime_1.jsx(SequenceInspectorHeader_1.SequenceInspectorHeader, { sourceLocation: sourceLocation, track: track }, stackKey !== null && stackKey !== void 0 ? stackKey : track.sequence.id), jsx_runtime_1.jsx(SequenceInspectorHeader_1.SequenceInspectorDuplicationSection, { track: track }), connectedCompositions.length > 0 ? (jsx_runtime_1.jsx(ConnectedCompositionsSection_1.ConnectedCompositionsSection, { connectedCompositions: connectedCompositions })) : null, validatedLocation ? (jsx_runtime_1.jsxs(jsx_runtime_1.Fragment, { children: [jsx_runtime_1.jsx(InspectorSequenceSection_1.InspectorSequenceSection, { sequence: track.sequence, readOnlyStudio: readOnlyStudio, validatedLocation: validatedLocation, nodePathInfo: track.nodePathInfo, keyframeDisplayOffset: track.keyframeDisplayOffset, renderTransformControls: () => jsx_runtime_1.jsx(AlignmentControls_1.AlignmentControls, { track: track }) }), jsx_runtime_1.jsx(CollapsibleInspectorSection_1.CollapsibleInspectorSection, { collapsible: true, label: "Actions", sectionId: "sequence-actions", children: jsx_runtime_1.jsxs(common_1.InspectorQuickActionsSection, { children: [
|
|
232
|
+
jsx_runtime_1.jsx(SequenceInspectorHeader_1.SequenceInspectorHeader, { sourceLocation: sourceLocation, track: track }, stackKey !== null && stackKey !== void 0 ? stackKey : track.sequence.id), jsx_runtime_1.jsx(SequenceInspectorHeader_1.SequenceInspectorDuplicationSection, { track: track }), connectedCompositions.length > 0 ? (jsx_runtime_1.jsx(ConnectedCompositionsSection_1.ConnectedCompositionsSection, { connectedCompositions: connectedCompositions })) : null, validatedLocation ? (jsx_runtime_1.jsxs(jsx_runtime_1.Fragment, { children: [jsx_runtime_1.jsx(InspectorSequenceSection_1.InspectorSequenceSection, { sequence: track.sequence, readOnlyStudio: readOnlyStudio, validatedLocation: validatedLocation, nodePathInfo: track.nodePathInfo, keyframeDisplayOffset: track.keyframeDisplayOffset, keyframePlaybackRate: track.keyframePlaybackRate, renderTransformControls: () => jsx_runtime_1.jsx(AlignmentControls_1.AlignmentControls, { track: track }) }), jsx_runtime_1.jsx(CollapsibleInspectorSection_1.CollapsibleInspectorSection, { collapsible: true, label: "Actions", sectionId: "sequence-actions", children: jsx_runtime_1.jsxs(common_1.InspectorQuickActionsSection, { children: [
|
|
214
233
|
jsx_runtime_1.jsx(SplitSequenceQuickAction, { selection: sequenceSelection, track: track }), jsx_runtime_1.jsx(SequenceSourceQuickActions, { selection: sequenceSelection, track: track, validatedSource: validatedLocation.source })
|
|
215
234
|
] }) })
|
|
216
235
|
] })) : (jsx_runtime_1.jsx(common_1.InspectorMessage, { children: "Source controls unavailable" }))] }));
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { SequenceNodePathInfo } from '../../helpers/get-timeline-sequence-sort-key';
|
|
3
|
+
import type { TimelineTrackData } from '../../helpers/get-timeline-sequence-sort-key';
|
|
4
|
+
export declare const SequenceWrapAction: React.FC<{
|
|
5
|
+
readonly nodePathInfo: SequenceNodePathInfo;
|
|
6
|
+
readonly sequence: TimelineTrackData['sequence'];
|
|
7
|
+
readonly sourceActionsDisabled: boolean;
|
|
8
|
+
}>;
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SequenceWrapAction = void 0;
|
|
4
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
+
const react_1 = require("react");
|
|
6
|
+
const remotion_1 = require("remotion");
|
|
7
|
+
const colors_1 = require("../../helpers/colors");
|
|
8
|
+
const caret_1 = require("../../icons/caret");
|
|
9
|
+
const wrap_1 = require("../../icons/wrap");
|
|
10
|
+
const InspectorPanelLayout_1 = require("../InspectorPanelLayout");
|
|
11
|
+
const NotificationCenter_1 = require("../Notifications/NotificationCenter");
|
|
12
|
+
const SegmentedButton_1 = require("../SegmentedButton");
|
|
13
|
+
const wrap_jsx_node_api_1 = require("../wrap-jsx-node-api");
|
|
14
|
+
const common_1 = require("./common");
|
|
15
|
+
const wrapperNames = ['AbsoluteFill', 'Sequence', 'HtmlInCanvas'];
|
|
16
|
+
const buttonStyle = {
|
|
17
|
+
borderRadius: 4,
|
|
18
|
+
height: 28,
|
|
19
|
+
margin: '0 4px',
|
|
20
|
+
width: 'calc(100% - 8px)',
|
|
21
|
+
};
|
|
22
|
+
const segmentStyle = {
|
|
23
|
+
fontSize: 13,
|
|
24
|
+
gap: 8,
|
|
25
|
+
justifyContent: 'flex-start',
|
|
26
|
+
padding: `0 ${InspectorPanelLayout_1.INSPECTOR_PANEL_HORIZONTAL_PADDING - 4}px`,
|
|
27
|
+
width: '100%',
|
|
28
|
+
};
|
|
29
|
+
const labelStyle = {
|
|
30
|
+
flex: 1,
|
|
31
|
+
fontFamily: 'sans-serif',
|
|
32
|
+
fontSize: 13,
|
|
33
|
+
lineHeight: '18px',
|
|
34
|
+
minWidth: 0,
|
|
35
|
+
overflow: 'hidden',
|
|
36
|
+
textAlign: 'left',
|
|
37
|
+
textOverflow: 'ellipsis',
|
|
38
|
+
userSelect: 'none',
|
|
39
|
+
WebkitUserSelect: 'none',
|
|
40
|
+
whiteSpace: 'nowrap',
|
|
41
|
+
};
|
|
42
|
+
const caretStyle = {
|
|
43
|
+
display: 'flex',
|
|
44
|
+
flexShrink: 0,
|
|
45
|
+
height: 12,
|
|
46
|
+
width: 12,
|
|
47
|
+
};
|
|
48
|
+
const SequenceWrapAction = ({ nodePathInfo, sequence, sourceActionsDisabled }) => {
|
|
49
|
+
const { width, height } = (0, remotion_1.useVideoConfig)();
|
|
50
|
+
const nodePathKey = JSON.stringify(nodePathInfo.sequenceSubscriptionKey);
|
|
51
|
+
const [eligibility, setEligibility] = (0, react_1.useState)(null);
|
|
52
|
+
const [busy, setBusy] = (0, react_1.useState)(false);
|
|
53
|
+
(0, react_1.useEffect)(() => {
|
|
54
|
+
setEligibility(null);
|
|
55
|
+
if (sourceActionsDisabled) {
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
58
|
+
let cancelled = false;
|
|
59
|
+
const nodePath = JSON.parse(nodePathKey);
|
|
60
|
+
(0, wrap_jsx_node_api_1.wrapJsxNode)({
|
|
61
|
+
fileName: nodePath.absolutePath,
|
|
62
|
+
nodePath: nodePath.nodePath,
|
|
63
|
+
wrapper: null,
|
|
64
|
+
width: null,
|
|
65
|
+
height: null,
|
|
66
|
+
})
|
|
67
|
+
.then((result) => {
|
|
68
|
+
if (!cancelled && result.success) {
|
|
69
|
+
setEligibility({
|
|
70
|
+
canWrap: result.canWrap,
|
|
71
|
+
canWrapHtmlInCanvas: result.canWrapHtmlInCanvas,
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
})
|
|
75
|
+
.catch(() => undefined);
|
|
76
|
+
return () => {
|
|
77
|
+
cancelled = true;
|
|
78
|
+
};
|
|
79
|
+
}, [nodePathKey, sequence, sourceActionsDisabled]);
|
|
80
|
+
const onWrap = (0, react_1.useCallback)((wrapper) => {
|
|
81
|
+
if (busy || sourceActionsDisabled || !(eligibility === null || eligibility === void 0 ? void 0 : eligibility.canWrap)) {
|
|
82
|
+
return;
|
|
83
|
+
}
|
|
84
|
+
setBusy(true);
|
|
85
|
+
const nodePath = JSON.parse(nodePathKey);
|
|
86
|
+
(0, wrap_jsx_node_api_1.wrapJsxNode)({
|
|
87
|
+
fileName: nodePath.absolutePath,
|
|
88
|
+
nodePath: nodePath.nodePath,
|
|
89
|
+
wrapper,
|
|
90
|
+
width,
|
|
91
|
+
height,
|
|
92
|
+
})
|
|
93
|
+
.then((result) => {
|
|
94
|
+
if (!result.success) {
|
|
95
|
+
(0, NotificationCenter_1.showNotification)(result.reason, 4000);
|
|
96
|
+
}
|
|
97
|
+
})
|
|
98
|
+
.catch((error) => {
|
|
99
|
+
(0, NotificationCenter_1.showNotification)(error.message, 4000);
|
|
100
|
+
})
|
|
101
|
+
.finally(() => setBusy(false));
|
|
102
|
+
}, [busy, eligibility, height, nodePathKey, sourceActionsDisabled, width]);
|
|
103
|
+
const values = (0, react_1.useMemo)(() => wrapperNames.map((wrapper) => ({
|
|
104
|
+
type: 'item',
|
|
105
|
+
id: wrapper,
|
|
106
|
+
label: `<${wrapper}>`,
|
|
107
|
+
value: wrapper,
|
|
108
|
+
onClick: () => onWrap(wrapper),
|
|
109
|
+
keyHint: null,
|
|
110
|
+
leftItem: null,
|
|
111
|
+
subMenu: null,
|
|
112
|
+
quickSwitcherLabel: null,
|
|
113
|
+
disabled: busy ||
|
|
114
|
+
(wrapper === 'HtmlInCanvas' &&
|
|
115
|
+
(!(eligibility === null || eligibility === void 0 ? void 0 : eligibility.canWrapHtmlInCanvas) || !(0, remotion_1.isHtmlInCanvasSupported)())),
|
|
116
|
+
})), [busy, eligibility, onWrap]);
|
|
117
|
+
const segments = (0, react_1.useMemo)(() => [
|
|
118
|
+
{
|
|
119
|
+
ariaLabel: nodePathInfo.numberOfSequencesWithThisNodePath > 1
|
|
120
|
+
? `Wrap all ${nodePathInfo.numberOfSequencesWithThisNodePath} instances of this JSX element`
|
|
121
|
+
: 'Wrap this JSX element',
|
|
122
|
+
buttonId: null,
|
|
123
|
+
disabled: busy,
|
|
124
|
+
idleColor: colors_1.LIGHT_TEXT,
|
|
125
|
+
leaveLeftSpace: false,
|
|
126
|
+
onOpenChange: null,
|
|
127
|
+
renderContent: (color) => (jsx_runtime_1.jsxs(jsx_runtime_1.Fragment, { children: [
|
|
128
|
+
jsx_runtime_1.jsx("span", { style: common_1.largeInspectorActionIconContainerStyle, children: jsx_runtime_1.jsx(wrap_1.WrapIcon, { color: color, style: common_1.largeInspectorActionIconStyle }) }), jsx_runtime_1.jsx("span", { style: labelStyle, children: "Wrap" }), jsx_runtime_1.jsx("span", { style: caretStyle, children: jsx_runtime_1.jsx(caret_1.CaretDown, { color: color }) })
|
|
129
|
+
] })),
|
|
130
|
+
segmentId: 'wrap',
|
|
131
|
+
selectedId: null,
|
|
132
|
+
style: segmentStyle,
|
|
133
|
+
tooltipLabel: null,
|
|
134
|
+
type: 'menu',
|
|
135
|
+
values,
|
|
136
|
+
},
|
|
137
|
+
], [busy, nodePathInfo.numberOfSequencesWithThisNodePath, values]);
|
|
138
|
+
if (!(eligibility === null || eligibility === void 0 ? void 0 : eligibility.canWrap) || sourceActionsDisabled) {
|
|
139
|
+
return null;
|
|
140
|
+
}
|
|
141
|
+
return jsx_runtime_1.jsx(SegmentedButton_1.SegmentedButton, { segments: segments, style: buttonStyle });
|
|
142
|
+
};
|
|
143
|
+
exports.SequenceWrapAction = SequenceWrapAction;
|
|
@@ -18,7 +18,7 @@ export declare const InspectorBackAction: React.FC<{
|
|
|
18
18
|
readonly children: React.ReactNode;
|
|
19
19
|
readonly disabled: boolean;
|
|
20
20
|
readonly onClick: React.MouseEventHandler<HTMLButtonElement>;
|
|
21
|
-
readonly
|
|
21
|
+
readonly 'aria-label': string;
|
|
22
22
|
}>;
|
|
23
23
|
export declare const InspectorMessage: React.FC<{
|
|
24
24
|
readonly children: React.ReactNode;
|
|
@@ -27,6 +27,10 @@ export declare const InspectorDetailRow: React.FC<{
|
|
|
27
27
|
readonly label: React.ReactNode | ((hovered: boolean) => React.ReactNode);
|
|
28
28
|
readonly children: React.ReactNode;
|
|
29
29
|
}>;
|
|
30
|
+
export declare const inspectorActionIconStyle: React.CSSProperties;
|
|
31
|
+
export declare const inspectorActionIconContainerStyle: React.CSSProperties;
|
|
32
|
+
export declare const largeInspectorActionIconStyle: React.CSSProperties;
|
|
33
|
+
export declare const largeInspectorActionIconContainerStyle: React.CSSProperties;
|
|
30
34
|
export type InspectorQuickActionProps = {
|
|
31
35
|
readonly children: React.ReactNode;
|
|
32
36
|
readonly disabled: boolean;
|
|
@@ -35,7 +39,7 @@ export type InspectorQuickActionProps = {
|
|
|
35
39
|
readonly renderIcon?: (color: string) => React.ReactNode;
|
|
36
40
|
readonly size?: 'default' | 'compact';
|
|
37
41
|
readonly style?: React.CSSProperties;
|
|
38
|
-
readonly
|
|
42
|
+
readonly 'aria-label'?: string;
|
|
39
43
|
};
|
|
40
44
|
export declare const InspectorQuickAction: React.FC<InspectorQuickActionProps>;
|
|
41
45
|
export declare const InspectorDefaultPropsWarnings: React.FC<{
|
|
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.InspectorDefaultPropsWarnings = exports.InspectorQuickAction = exports.InspectorDetailRow = exports.InspectorMessage = exports.InspectorBackAction = exports.InspectorSection = exports.InspectorSectionBody = exports.InspectorQuickActionsSection = exports.InspectorSectionHeader = void 0;
|
|
6
|
+
exports.InspectorDefaultPropsWarnings = exports.InspectorQuickAction = exports.largeInspectorActionIconContainerStyle = exports.largeInspectorActionIconStyle = exports.inspectorActionIconContainerStyle = exports.inspectorActionIconStyle = exports.InspectorDetailRow = exports.InspectorMessage = exports.InspectorBackAction = exports.InspectorSection = exports.InspectorSectionBody = exports.InspectorQuickActionsSection = exports.InspectorSectionHeader = void 0;
|
|
7
7
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
8
8
|
const react_1 = __importDefault(require("react"));
|
|
9
9
|
const colors_1 = require("../../helpers/colors");
|
|
@@ -41,8 +41,8 @@ const backArrowIcon = {
|
|
|
41
41
|
const BackArrow = ({ color }) => {
|
|
42
42
|
return (jsx_runtime_1.jsx("svg", { viewBox: "0 0 512 512", style: backArrowIcon, children: jsx_runtime_1.jsx("path", { d: "M7 239c-9.4 9.4-9.4 24.6 0 33.9L175 441c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L81.9 280 488 280c13.3 0 24-10.7 24-24s-10.7-24-24-24L81.9 232 209 105c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L7 239z", fill: color }) }));
|
|
43
43
|
};
|
|
44
|
-
const InspectorBackAction = ({ children, disabled, onClick,
|
|
45
|
-
return (jsx_runtime_1.jsx("div", { style: styles_1.inspectorQuickActionsSection, children: jsx_runtime_1.jsx(exports.InspectorQuickAction, { disabled: disabled, onClick: onClick, renderIcon: (color) => jsx_runtime_1.jsx(BackArrow, { color: color }),
|
|
44
|
+
const InspectorBackAction = ({ children, disabled, onClick, 'aria-label': ariaLabel }) => {
|
|
45
|
+
return (jsx_runtime_1.jsx("div", { style: styles_1.inspectorQuickActionsSection, children: jsx_runtime_1.jsx(exports.InspectorQuickAction, { disabled: disabled, onClick: onClick, renderIcon: (color) => jsx_runtime_1.jsx(BackArrow, { color: color }), "aria-label": ariaLabel, children: children }) }));
|
|
46
46
|
};
|
|
47
47
|
exports.InspectorBackAction = InspectorBackAction;
|
|
48
48
|
const InspectorMessage = ({ children }) => jsx_runtime_1.jsx("div", { style: styles_1.centeredMessage, children: children });
|
|
@@ -92,15 +92,31 @@ const inlineLabelText = {
|
|
|
92
92
|
WebkitUserSelect: 'none',
|
|
93
93
|
whiteSpace: 'nowrap',
|
|
94
94
|
};
|
|
95
|
-
const
|
|
95
|
+
const INSPECTOR_ACTION_ICON_SIZE = 18;
|
|
96
|
+
exports.inspectorActionIconStyle = {
|
|
97
|
+
display: 'block',
|
|
98
|
+
height: INSPECTOR_ACTION_ICON_SIZE,
|
|
99
|
+
width: INSPECTOR_ACTION_ICON_SIZE,
|
|
100
|
+
};
|
|
101
|
+
exports.inspectorActionIconContainerStyle = {
|
|
96
102
|
alignItems: 'center',
|
|
97
103
|
display: 'flex',
|
|
98
104
|
flexShrink: 0,
|
|
99
|
-
height:
|
|
105
|
+
height: INSPECTOR_ACTION_ICON_SIZE,
|
|
100
106
|
justifyContent: 'center',
|
|
101
|
-
width:
|
|
107
|
+
width: INSPECTOR_ACTION_ICON_SIZE,
|
|
108
|
+
};
|
|
109
|
+
exports.largeInspectorActionIconStyle = {
|
|
110
|
+
height: 22,
|
|
111
|
+
width: 22,
|
|
112
|
+
};
|
|
113
|
+
exports.largeInspectorActionIconContainerStyle = {
|
|
114
|
+
height: 22,
|
|
115
|
+
marginLeft: -2,
|
|
116
|
+
marginRight: -2,
|
|
117
|
+
width: 22,
|
|
102
118
|
};
|
|
103
|
-
const InspectorQuickAction = ({ children, disabled, iconContainerStyle, onClick, renderIcon, size = 'default', style,
|
|
119
|
+
const InspectorQuickAction = ({ children, disabled, iconContainerStyle, onClick, renderIcon, size = 'default', style, 'aria-label': ariaLabel, }) => {
|
|
104
120
|
const showsHover = !disabled && onClick !== null;
|
|
105
121
|
const buttonStyle = react_1.default.useMemo(() => ({
|
|
106
122
|
...(disabled ? inlineLabelButtonDisabled : inlineLabelButton),
|
|
@@ -115,9 +131,9 @@ const InspectorQuickAction = ({ children, disabled, iconContainerStyle, onClick,
|
|
|
115
131
|
...(size === 'compact' ? compactInlineLabelButton : null),
|
|
116
132
|
...style,
|
|
117
133
|
}), [disabled, showsHover, size, style]);
|
|
118
|
-
const mainContent = (jsx_runtime_1.jsxs(jsx_runtime_1.Fragment, { children: [renderIcon ? (jsx_runtime_1.jsx("span", { style: { ...
|
|
134
|
+
const mainContent = (jsx_runtime_1.jsxs(jsx_runtime_1.Fragment, { children: [renderIcon ? (jsx_runtime_1.jsx("span", { style: { ...exports.inspectorActionIconContainerStyle, ...iconContainerStyle }, children: renderIcon(colors_1.CURRENT_COLOR) })) : null, jsx_runtime_1.jsx("span", { style: inlineLabelText, children: children })
|
|
119
135
|
] }));
|
|
120
|
-
const mainAction = onClick ? (jsx_runtime_1.jsx("button", { className: `__remotion-inspector-quick-action ${hoverable_1.HOVERABLE_CLASS_NAME}`, type: "button", disabled: disabled, style: buttonStyle,
|
|
136
|
+
const mainAction = onClick ? (jsx_runtime_1.jsx("button", { className: `__remotion-inspector-quick-action ${hoverable_1.HOVERABLE_CLASS_NAME}`, type: "button", disabled: disabled, style: buttonStyle, "aria-label": ariaLabel, onClick: onClick, children: mainContent })) : (jsx_runtime_1.jsx("div", { className: hoverable_1.HOVERABLE_CLASS_NAME, style: buttonStyle, "aria-label": ariaLabel, role: "group", children: mainContent }));
|
|
121
137
|
return mainAction;
|
|
122
138
|
};
|
|
123
139
|
exports.InspectorQuickAction = InspectorQuickAction;
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import type { CanUpdateSequencePropStatusKeyframed } from 'remotion';
|
|
2
2
|
import type { SequenceNodePathInfo } from '../../helpers/get-timeline-sequence-sort-key';
|
|
3
|
-
export declare const getEasingSelectionFromCurrentKeyframes: ({ keyframeDisplayOffset, nodePathInfo, propStatus, segmentIndex, }: {
|
|
3
|
+
export declare const getEasingSelectionFromCurrentKeyframes: ({ keyframeDisplayOffset, keyframePlaybackRate, nodePathInfo, propStatus, segmentIndex, }: {
|
|
4
4
|
readonly keyframeDisplayOffset: number;
|
|
5
|
+
readonly keyframePlaybackRate: number;
|
|
5
6
|
readonly nodePathInfo: SequenceNodePathInfo;
|
|
6
7
|
readonly propStatus: CanUpdateSequencePropStatusKeyframed;
|
|
7
8
|
readonly segmentIndex: number;
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.getEasingSelectionFromCurrentKeyframes = void 0;
|
|
4
4
|
const get_timeline_keyframes_1 = require("../Timeline/get-timeline-keyframes");
|
|
5
|
-
const getEasingSelectionFromCurrentKeyframes = ({ keyframeDisplayOffset, nodePathInfo, propStatus, segmentIndex, }) => {
|
|
5
|
+
const getEasingSelectionFromCurrentKeyframes = ({ keyframeDisplayOffset, keyframePlaybackRate, nodePathInfo, propStatus, segmentIndex, }) => {
|
|
6
6
|
const fromKeyframe = propStatus.keyframes[segmentIndex];
|
|
7
7
|
const toKeyframe = propStatus.keyframes[segmentIndex + 1];
|
|
8
8
|
if (!fromKeyframe || !toKeyframe) {
|
|
@@ -11,12 +11,13 @@ const getEasingSelectionFromCurrentKeyframes = ({ keyframeDisplayOffset, nodePat
|
|
|
11
11
|
const resolvedKeyframeDisplayOffset = (0, get_timeline_keyframes_1.getKeyframeDisplayOffset)({
|
|
12
12
|
propStatus,
|
|
13
13
|
keyframeDisplayOffset,
|
|
14
|
+
keyframePlaybackRate,
|
|
14
15
|
});
|
|
15
16
|
return {
|
|
16
17
|
type: 'easing',
|
|
17
18
|
nodePathInfo,
|
|
18
|
-
fromFrame: fromKeyframe.frame + resolvedKeyframeDisplayOffset,
|
|
19
|
-
toFrame: toKeyframe.frame + resolvedKeyframeDisplayOffset,
|
|
19
|
+
fromFrame: fromKeyframe.frame / keyframePlaybackRate + resolvedKeyframeDisplayOffset,
|
|
20
|
+
toFrame: toKeyframe.frame / keyframePlaybackRate + resolvedKeyframeDisplayOffset,
|
|
20
21
|
segmentIndex,
|
|
21
22
|
};
|
|
22
23
|
};
|
|
@@ -2,7 +2,8 @@ export declare const clampInspectorKeyframeDisplayFrame: ({ durationInFrames, fr
|
|
|
2
2
|
readonly durationInFrames: number;
|
|
3
3
|
readonly frame: number;
|
|
4
4
|
}) => number;
|
|
5
|
-
export declare const getInspectorKeyframeSourceFrame: ({ displayFrame, keyframeDisplayOffset, }: {
|
|
5
|
+
export declare const getInspectorKeyframeSourceFrame: ({ displayFrame, keyframeDisplayOffset, keyframePlaybackRate, }: {
|
|
6
6
|
readonly displayFrame: number;
|
|
7
7
|
readonly keyframeDisplayOffset: number;
|
|
8
|
+
readonly keyframePlaybackRate: number;
|
|
8
9
|
}) => number;
|
|
@@ -8,7 +8,7 @@ const clampInspectorKeyframeDisplayFrame = ({ durationInFrames, frame, }) => {
|
|
|
8
8
|
return Math.min(Math.max(Math.round(frame), 0), durationInFrames - 1);
|
|
9
9
|
};
|
|
10
10
|
exports.clampInspectorKeyframeDisplayFrame = clampInspectorKeyframeDisplayFrame;
|
|
11
|
-
const getInspectorKeyframeSourceFrame = ({ displayFrame, keyframeDisplayOffset, }) => {
|
|
12
|
-
return displayFrame - keyframeDisplayOffset;
|
|
11
|
+
const getInspectorKeyframeSourceFrame = ({ displayFrame, keyframeDisplayOffset, keyframePlaybackRate, }) => {
|
|
12
|
+
return (displayFrame - keyframeDisplayOffset) * keyframePlaybackRate;
|
|
13
13
|
};
|
|
14
14
|
exports.getInspectorKeyframeSourceFrame = getInspectorKeyframeSourceFrame;
|
|
@@ -14,6 +14,7 @@ export declare const InspectorSequenceSection: React.FC<{
|
|
|
14
14
|
readonly validatedLocation: CodePosition;
|
|
15
15
|
readonly nodePathInfo: SequenceNodePathInfo;
|
|
16
16
|
readonly keyframeDisplayOffset: number;
|
|
17
|
+
readonly keyframePlaybackRate: number;
|
|
17
18
|
readonly renderTransformControls: () => React.ReactNode;
|
|
18
19
|
}>;
|
|
19
20
|
export {};
|
|
@@ -200,7 +200,7 @@ const hasSequenceControls = (sequence) => {
|
|
|
200
200
|
return sequence.controls !== null;
|
|
201
201
|
};
|
|
202
202
|
exports.hasSequenceControls = hasSequenceControls;
|
|
203
|
-
const InspectorSequenceSection = ({ sequence, readOnlyStudio, validatedLocation, nodePathInfo, keyframeDisplayOffset, renderTransformControls, }) => {
|
|
203
|
+
const InspectorSequenceSection = ({ sequence, readOnlyStudio, validatedLocation, nodePathInfo, keyframeDisplayOffset, keyframePlaybackRate, renderTransformControls, }) => {
|
|
204
204
|
var _a;
|
|
205
205
|
var _b;
|
|
206
206
|
const { tree, propStatuses, runtimeValues } = (0, use_timeline_expanded_tree_1.useTimelineExpandedTree)({
|
|
@@ -209,7 +209,7 @@ const InspectorSequenceSection = ({ sequence, readOnlyStudio, validatedLocation,
|
|
|
209
209
|
includeTextContent: true,
|
|
210
210
|
includeSourceControls: true,
|
|
211
211
|
});
|
|
212
|
-
const { inspectorRevealRequest, selectedItems } = (0, TimelineSelection_1.useTimelineSelection)();
|
|
212
|
+
const { inspectorRevealRequest, selectedItems, selectItems } = (0, TimelineSelection_1.useTimelineSelection)();
|
|
213
213
|
const selectedEffect = selectedItems.length === 1 &&
|
|
214
214
|
(selectedItems[0].type === 'sequence-effect' ||
|
|
215
215
|
selectedItems[0].type === 'sequence-effect-prop')
|
|
@@ -248,7 +248,7 @@ const InspectorSequenceSection = ({ sequence, readOnlyStudio, validatedLocation,
|
|
|
248
248
|
disabled: false,
|
|
249
249
|
onClick: () => (0, timeline_asset_link_1.openTimelineAssetLink)(linkInfo, selectAsset),
|
|
250
250
|
renderIcon: (color) => (jsx_runtime_1.jsx(AssetFileIcon_1.AssetFileIcon, { color: color, fileType: (0, get_preview_file_type_1.getPreviewFileType)(linkInfo.assetPath), style: assetSelectorIcon })),
|
|
251
|
-
|
|
251
|
+
'aria-label': linkInfo.assetPath,
|
|
252
252
|
};
|
|
253
253
|
}
|
|
254
254
|
if ((linkInfo === null || linkInfo === void 0 ? void 0 : linkInfo.kind) === 'remote') {
|
|
@@ -259,7 +259,7 @@ const InspectorSequenceSection = ({ sequence, readOnlyStudio, validatedLocation,
|
|
|
259
259
|
] })),
|
|
260
260
|
disabled: false,
|
|
261
261
|
onClick: () => (0, timeline_asset_link_1.openTimelineAssetLink)(linkInfo, selectAsset),
|
|
262
|
-
|
|
262
|
+
'aria-label': linkInfo.href,
|
|
263
263
|
};
|
|
264
264
|
}
|
|
265
265
|
return null;
|
|
@@ -521,14 +521,16 @@ const InspectorSequenceSection = ({ sequence, readOnlyStudio, validatedLocation,
|
|
|
521
521
|
type: 'add-effect',
|
|
522
522
|
clientId: previewServerState.clientId,
|
|
523
523
|
fileName: validatedLocation.source,
|
|
524
|
-
|
|
524
|
+
nodePathInfo,
|
|
525
|
+
selectItems,
|
|
525
526
|
});
|
|
526
527
|
}, [
|
|
527
528
|
canAddEffect,
|
|
528
|
-
nodePathInfo
|
|
529
|
+
nodePathInfo,
|
|
529
530
|
previewServerState,
|
|
530
531
|
setAdditionalSectionExpanded,
|
|
531
532
|
setSelectedModal,
|
|
533
|
+
selectItems,
|
|
532
534
|
validatedLocation.source,
|
|
533
535
|
]);
|
|
534
536
|
const onConvertBorderRadius = (0, react_1.useCallback)(() => {
|
|
@@ -561,21 +563,21 @@ const InspectorSequenceSection = ({ sequence, readOnlyStudio, validatedLocation,
|
|
|
561
563
|
validatedLocation.source,
|
|
562
564
|
]);
|
|
563
565
|
const borderRadiusAction = borderRadiusGroup ? (jsx_runtime_1.jsx(InlineAction_1.InlineAction, { variant: null, disabled: borderRadiusConversion === null ||
|
|
564
|
-
previewServerState.type !== 'connected', onClick: onConvertBorderRadius,
|
|
566
|
+
previewServerState.type !== 'connected', onClick: onConvertBorderRadius, "aria-label": borderRadiusConversion === null
|
|
565
567
|
? borderRadiusUsesShorthand
|
|
566
568
|
? 'A static border radius is required to use individual corners'
|
|
567
569
|
: 'All four corners must have the same static value'
|
|
568
570
|
: borderRadiusUsesShorthand
|
|
569
571
|
? 'Use individual corner radii'
|
|
570
572
|
: 'Use one border radius value', renderAction: (color) => borderRadiusUsesShorthand ? (jsx_runtime_1.jsx(fullscreen_1.FullscreenIcon, { color: color, style: borderRadiusToggleIcon })) : (jsx_runtime_1.jsx(border_radius_1.BorderRadiusIcon, { color: color, style: borderRadiusToggleIcon })) })) : null;
|
|
571
|
-
const transform3DAction = (jsx_runtime_1.jsx(InlineAction_1.InlineAction, { variant: null, disabled: automaticallyEnabled3DTransform, onClick: onToggle3DTransform,
|
|
573
|
+
const transform3DAction = (jsx_runtime_1.jsx(InlineAction_1.InlineAction, { variant: null, disabled: automaticallyEnabled3DTransform, onClick: onToggle3DTransform, "aria-label": automaticallyEnabled3DTransform
|
|
572
574
|
? '3D controls are required by the current transform values'
|
|
573
575
|
: show3DTransformControls
|
|
574
576
|
? 'Hide 3D transform controls'
|
|
575
577
|
: 'Show 3D transform controls', hoveredColor: show3DTransformControls ? colors_1.BLUE : undefined, unhoveredColor: show3DTransformControls ? colors_1.BLUE : colors_1.LIGHT_TEXT, renderAction: (color) => (jsx_runtime_1.jsx(cube_1.CubeIcon, { color: color, style: transform3DToggleIcon })) }));
|
|
576
|
-
const effectsHeader = (jsx_runtime_1.jsx(CollapsibleInspectorSectionHeader_1.CollapsibleInspectorSectionHeader, { action: jsx_runtime_1.jsx(InlineAction_1.InlineAction, { variant: null, disabled: !canAddEffect, onClick: onAddEffect,
|
|
578
|
+
const effectsHeader = (jsx_runtime_1.jsx(CollapsibleInspectorSectionHeader_1.CollapsibleInspectorSectionHeader, { action: jsx_runtime_1.jsx(InlineAction_1.InlineAction, { variant: null, disabled: !canAddEffect, onClick: onAddEffect, "aria-label": canAddEffect ? 'Add effect' : undefined, renderAction: (color) => jsx_runtime_1.jsx(plus_1.Plus, { color: color, style: plusIcon }) }), expanded: effectsExpanded, label: "Effects", onToggle: hasEffects ? () => toggleAdditionalSection('effects') : null }));
|
|
577
579
|
const renderRow = ({ node, depth }) => {
|
|
578
|
-
return (jsx_runtime_1.jsx(TimelineRowLayoutContext_1.TimelineRowLayoutContext.Provider, { value: TimelineRowLayoutContext_1.INSPECTOR_TIMELINE_ROW_LAYOUT, children: jsx_runtime_1.jsx(TimelineExpandedRow_1.TimelineExpandedRow, { node: node, depth: depth, nestedDepth: 0, rowDepthBase: 0, getIsExpanded: getIsExpanded, toggleTrack: toggleTrack, validatedLocation: validatedLocation, nodePath: nodePathInfo.sequenceSubscriptionKey, schema: schema, keyframeDisplayOffset: keyframeDisplayOffset, keyframeControlsMode: "inspector" }) }, JSON.stringify(node.nodePathInfo)));
|
|
580
|
+
return (jsx_runtime_1.jsx(TimelineRowLayoutContext_1.TimelineRowLayoutContext.Provider, { value: TimelineRowLayoutContext_1.INSPECTOR_TIMELINE_ROW_LAYOUT, children: jsx_runtime_1.jsx(TimelineExpandedRow_1.TimelineExpandedRow, { node: node, depth: depth, nestedDepth: 0, rowDepthBase: 0, getIsExpanded: getIsExpanded, toggleTrack: toggleTrack, validatedLocation: validatedLocation, nodePath: nodePathInfo.sequenceSubscriptionKey, schema: schema, keyframeDisplayOffset: keyframeDisplayOffset, keyframePlaybackRate: keyframePlaybackRate, keyframeControlsMode: "inspector" }) }, JSON.stringify(node.nodePathInfo)));
|
|
579
581
|
};
|
|
580
582
|
const renderControlGroupHeader = (group) => {
|
|
581
583
|
const expanded = isControlGroupExpanded(group);
|
|
@@ -90,9 +90,9 @@ const InspectorSourceLocation = ({ location, canOpen, onOpen, renderIcon, size =
|
|
|
90
90
|
return null;
|
|
91
91
|
}
|
|
92
92
|
if (size === 'quick-action') {
|
|
93
|
-
return (jsx_runtime_1.jsx(common_1.InspectorQuickAction, { disabled: !canOpen, onClick: onClick, renderIcon: (iconColor) => renderIcon === null || renderIcon === void 0 ? void 0 : renderIcon(iconColor), style: quickActionStyle,
|
|
93
|
+
return (jsx_runtime_1.jsx(common_1.InspectorQuickAction, { disabled: !canOpen, onClick: onClick, renderIcon: (iconColor) => renderIcon === null || renderIcon === void 0 ? void 0 : renderIcon(iconColor), style: quickActionStyle, "aria-label": fileLocation !== null && fileLocation !== void 0 ? fileLocation : undefined, children: label }));
|
|
94
94
|
}
|
|
95
|
-
return (jsx_runtime_1.jsxs("button", { type: "button", style: style,
|
|
95
|
+
return (jsx_runtime_1.jsxs("button", { type: "button", style: style, "aria-label": fileLocation !== null && fileLocation !== void 0 ? fileLocation : undefined, onClick: onClick, onPointerEnter: () => setHovered(true), onPointerLeave: () => setHovered(false), children: [renderIcon ? renderIcon(color) : null, jsx_runtime_1.jsx("span", { style: sourceLocationLabelStyle, children: label })
|
|
96
96
|
] }));
|
|
97
97
|
};
|
|
98
98
|
exports.InspectorSourceLocation = InspectorSourceLocation;
|
|
@@ -125,7 +125,7 @@ const key = {
|
|
|
125
125
|
};
|
|
126
126
|
const chordButton = {
|
|
127
127
|
alignItems: 'center',
|
|
128
|
-
background:
|
|
128
|
+
background: colors_1.TRANSPARENT,
|
|
129
129
|
border: 0,
|
|
130
130
|
cursor: 'pointer',
|
|
131
131
|
display: 'flex',
|
|
@@ -354,7 +354,7 @@ const KeyboardShortcutsSettings = () => {
|
|
|
354
354
|
});
|
|
355
355
|
setShortcutsEdited(true);
|
|
356
356
|
setRecording(null);
|
|
357
|
-
}, children: recording === shortcut.actionId ? (jsx_runtime_1.jsx("span", { style: emptyShortcut, children: "Press shortcut\u2026" })) : (jsx_runtime_1.jsx(ShortcutChords, { values: shortcutValues })) }) }), jsx_runtime_1.jsx("span", { style: actionCell, children: jsx_runtime_1.jsx(InlineDropdown_1.InlineDropdown, { renderAction: (color) => jsx_runtime_1.jsx(caret_1.CaretDown, { color: color }),
|
|
357
|
+
}, children: recording === shortcut.actionId ? (jsx_runtime_1.jsx("span", { style: emptyShortcut, children: "Press shortcut\u2026" })) : (jsx_runtime_1.jsx(ShortcutChords, { values: shortcutValues })) }) }), jsx_runtime_1.jsx("span", { style: actionCell, children: jsx_runtime_1.jsx(InlineDropdown_1.InlineDropdown, { renderAction: (color) => jsx_runtime_1.jsx(caret_1.CaretDown, { color: color }), "aria-label": `Actions for ${shortcut.action}`, values: shortcutMenuItems, variant: "compact" }) })
|
|
358
358
|
] }))] }, shortcut.action));
|
|
359
359
|
}) })
|
|
360
360
|
] }, group.name))), (error !== null && error !== void 0 ? error : settingsError) ? (jsx_runtime_1.jsxs(jsx_runtime_1.Fragment, { children: [
|
|
@@ -102,9 +102,9 @@ const LicenseKeyDetailsDisplay = ({ details }) => {
|
|
|
102
102
|
const projectUrl = `${PRO_HOST}/projects/${details.projectSlug}`;
|
|
103
103
|
const usageUrl = `${projectUrl}/usage#client-renders-usage`;
|
|
104
104
|
const hasActiveLicense = (0, exports.hasActiveCompanyLicense)(details);
|
|
105
|
-
return (jsx_runtime_1.jsxs("div", { children: [jsx_runtime_1.jsx(common_1.InspectorQuickAction, { disabled: false, onClick: () => window.open(usageUrl, '_blank', 'noopener,noreferrer'), renderIcon: (color) => (jsx_runtime_1.jsx(check_circle_filled_1.CheckCircleFilled, { style: { ...iconStyle, fill: color } })), style: actionStyle,
|
|
105
|
+
return (jsx_runtime_1.jsxs("div", { children: [jsx_runtime_1.jsx(common_1.InspectorQuickAction, { disabled: false, onClick: () => window.open(usageUrl, '_blank', 'noopener,noreferrer'), renderIcon: (color) => (jsx_runtime_1.jsx(check_circle_filled_1.CheckCircleFilled, { style: { ...iconStyle, fill: color } })), style: actionStyle, "aria-label": "View license usage", children: jsx_runtime_1.jsxs("span", { style: actionContent, children: [
|
|
106
106
|
jsx_runtime_1.jsxs("span", { style: actionText, children: ["Belongs to ", details.projectName] }), jsx_runtime_1.jsx("span", { style: actionLabel, children: "View usage" })
|
|
107
|
-
] }) }), jsx_runtime_1.jsx(common_1.InspectorQuickAction, { disabled: false, onClick: () => window.open(projectUrl, '_blank', 'noopener,noreferrer'), renderIcon: (color) => hasActiveLicense ? (jsx_runtime_1.jsx(check_circle_filled_1.CheckCircleFilled, { style: { ...iconStyle, fill: color } })) : (jsx_runtime_1.jsx(ErrorIcon, {})), style: actionStyle,
|
|
107
|
+
] }) }), jsx_runtime_1.jsx(common_1.InspectorQuickAction, { disabled: false, onClick: () => window.open(projectUrl, '_blank', 'noopener,noreferrer'), renderIcon: (color) => hasActiveLicense ? (jsx_runtime_1.jsx(check_circle_filled_1.CheckCircleFilled, { style: { ...iconStyle, fill: color } })) : (jsx_runtime_1.jsx(ErrorIcon, {})), style: actionStyle, "aria-label": "Manage Company License", children: jsx_runtime_1.jsxs("span", { style: actionContent, children: [
|
|
108
108
|
jsx_runtime_1.jsx("span", { style: hasActiveLicense ? actionText : inactiveLicenseText, children: hasActiveLicense
|
|
109
109
|
? 'Active Company License'
|
|
110
110
|
: 'No active Company License' }), jsx_runtime_1.jsx("span", { style: actionLabel, children: "Manage" })
|
|
@@ -25,6 +25,6 @@ const LoopToggle = ({ loop, setLoop }) => {
|
|
|
25
25
|
const onClick = (0, react_1.useCallback)(() => {
|
|
26
26
|
(0, exports.toggleLoop)(setLoop);
|
|
27
27
|
}, [setLoop]);
|
|
28
|
-
return (jsx_runtime_1.jsx(ActionTooltip_1.ActionTooltip, { label: accessibilityLabel, shortcut: shortcutsDisabled ? null : shortcut, delay: 800, dismissOnClick: false, children: jsx_runtime_1.jsx(ControlButton_1.ControlButton, {
|
|
28
|
+
return (jsx_runtime_1.jsx(ActionTooltip_1.ActionTooltip, { label: accessibilityLabel, shortcut: shortcutsDisabled ? null : shortcut, delay: 800, dismissOnClick: false, children: jsx_runtime_1.jsx(ControlButton_1.ControlButton, { "aria-label": accessibilityLabel, "aria-keyshortcuts": shortcutsDisabled ? undefined : ariaShortcut || undefined, "aria-pressed": loop, onClick: onClick, style: buttonStyle, children: (color) => (jsx_runtime_1.jsx("svg", { viewBox: "0 0 512 512", style: { width: 18, height: 18 }, children: jsx_runtime_1.jsx("path", { fill: loop ? colors_1.BLUE : color, d: "M384 150.3V41.6l64 53.3v2l-64 53.3zM352 23.5V80H192C86 80 0 166 0 272c0 8.8 7.2 16 16 16s16-7.2 16-16c0-88.4 71.6-160 160-160h160v56.5c0 13 10.5 23.5 23.5 23.5 5.5 0 10.8-1.9 15-5.4l78-65c7.3-6.1 11.5-15.1 11.5-24.6v-2c0-9.5-4.2-18.5-11.5-24.6l-78-65c-4.2-3.5-9.5-5.4-15-5.4-13 0-23.5 10.5-23.5 23.5zM128 415.9v54.5l-64-53.3v-2l64-53.3v54.1zM160 400v-56.5c0-13-10.5-23.5-23.5-23.5-5.5 0-10.8 1.9-15 5.4l-78 65C36.2 396.5 32 405.5 32 415v2c0 9.5 4.2 18.5 11.5 24.6l78 65c4.2 3.5 9.5 5.4 15 5.4 13 0 23.5-10.5 23.5-23.5V432h160c106 0 192-86 192-192 0-8.8-7.2-16-16-16s-16 7.2-16 16c0 88.4-71.6 160-160 160H160z" }) })) }) }));
|
|
29
29
|
};
|
|
30
30
|
exports.LoopToggle = LoopToggle;
|
|
@@ -124,9 +124,11 @@ const MenuSubItem = ({ label, leaveLeftSpace, leftItem, onActionChosen, id, sele
|
|
|
124
124
|
});
|
|
125
125
|
}
|
|
126
126
|
}, [selected]);
|
|
127
|
-
return (jsx_runtime_1.jsx("div", { ref: ref, onPointerEnter: onPointerEnter, onPointerLeave: onPointerLeave, style: style, onPointerUp: onPointerUp, role: "button", className: is_menu_item_1.MENU_ITEM_CLASSNAME, children: jsx_runtime_1.jsxs(layout_1.Row, { align: "center", children: [leaveLeftSpace ? (jsx_runtime_1.jsxs(jsx_runtime_1.Fragment, { children: [
|
|
127
|
+
return (jsx_runtime_1.jsx("div", { ref: ref, "aria-label": typeof label === 'string' ? label : undefined, onPointerEnter: onPointerEnter, onPointerLeave: onPointerLeave, style: style, onPointerUp: onPointerUp, role: "button", className: is_menu_item_1.MENU_ITEM_CLASSNAME, children: jsx_runtime_1.jsxs(layout_1.Row, { align: "center", children: [leaveLeftSpace ? (jsx_runtime_1.jsxs(jsx_runtime_1.Fragment, { children: [
|
|
128
128
|
jsx_runtime_1.jsx("div", { style: leftSpace, children: leftItem }), jsx_runtime_1.jsx(layout_1.Spacing, { x: 1 })
|
|
129
|
-
] })) : null, jsx_runtime_1.jsx("div", { style: labelStyle,
|
|
129
|
+
] })) : null, jsx_runtime_1.jsx("div", { style: labelStyle, children: label }),
|
|
130
|
+
" ",
|
|
131
|
+
jsx_runtime_1.jsx(layout_1.Spacing, { x: 2 }), subMenu ? jsx_runtime_1.jsx(caret_1.CaretRight, {}) : null, keyHint && !(0, use_keybinding_1.areKeyboardShortcutsDisabled)() ? (jsx_runtime_1.jsx("span", { style: keyHintCss, children: keyHint })) : null, portalStyle && subMenu
|
|
130
132
|
? react_dom_1.default.createPortal(jsx_runtime_1.jsx(SubMenu_1.SubMenuComponent, { onQuitFullMenu: onQuitMenu, subMenu: subMenu, onQuitSubMenu: onQuitSubmenu, portalStyle: portalStyle, subMenuActivated: subMenuActivated }), (0, portals_1.getPortal)(currentZIndex))
|
|
131
133
|
: null] }) }));
|
|
132
134
|
};
|
|
@@ -3,8 +3,8 @@ export declare const MENU_VERTICAL_PADDING = 4;
|
|
|
3
3
|
export declare const SUBMENU_LEFT_INSET = -8;
|
|
4
4
|
export declare const MAX_MENU_WIDTH = 400;
|
|
5
5
|
export declare const MAX_MOBILE_MENU_WIDTH = 300;
|
|
6
|
-
export declare const SHADOW_TOWARDS_BOTTOM = "0 2px 8px
|
|
7
|
-
export declare const SHADOW_TOWARDS_TOP = "0 -2px 8px
|
|
6
|
+
export declare const SHADOW_TOWARDS_BOTTOM = "0 2px 8px var(--remotion-studio-black-alpha-50)";
|
|
7
|
+
export declare const SHADOW_TOWARDS_TOP = "0 -2px 8px var(--remotion-studio-black-alpha-50)";
|
|
8
8
|
export declare const menuContainerTowardsBottom: React.CSSProperties;
|
|
9
9
|
export declare const menuContainerTowardsTop: React.CSSProperties;
|
|
10
10
|
export declare const fullScreenOverlay: React.CSSProperties;
|
|
@@ -53,7 +53,7 @@ const MenuBuildIndicator = ({ mobileLayout }) => {
|
|
|
53
53
|
window.remotion_finishedBuilding = undefined;
|
|
54
54
|
};
|
|
55
55
|
}, []);
|
|
56
|
-
return (jsx_runtime_1.jsxs("div", { style: cwd,
|
|
56
|
+
return (jsx_runtime_1.jsxs("div", { role: "group", style: cwd, "aria-label": window.remotion_cwd, children: [
|
|
57
57
|
jsx_runtime_1.jsx(layout_1.Spacing, { x: mobileLayout ? 0.5 : 2 }), window.remotion_projectName, jsx_runtime_1.jsx(MenuCompositionName_1.MenuCompositionName, {}), jsx_runtime_1.jsx(layout_1.Spacing, { x: 1 }), jsx_runtime_1.jsx("div", { style: openInEditor, children: jsx_runtime_1.jsx(InspectorOpenInEditor_1.InspectorOpenInEditor, { location: folderLocation, locationType: "folder", showTooltips: true }) }), mobileLayout ? null : jsx_runtime_1.jsx(layout_1.Spacing, { x: 0.5 }), mobileLayout ? (isBuilding ? (jsx_runtime_1.jsxs(jsx_runtime_1.Fragment, { children: [
|
|
58
58
|
jsx_runtime_1.jsx(layout_1.Spacing, { x: 0.5 }), jsx_runtime_1.jsx("div", { style: spinner, children: jsx_runtime_1.jsx(Spinner_1.Spinner, { duration: 0.5, size: spinnerSize, color: colors_1.WHITE_ALPHA_80 }) })
|
|
59
59
|
] })) : null) : isBuilding ? (jsx_runtime_1.jsx("div", { style: spinner, children: jsx_runtime_1.jsx(Spinner_1.Spinner, { duration: 0.5, size: spinnerSize, color: colors_1.WHITE_ALPHA_80 }) })) : (jsx_runtime_1.jsx("div", { style: noSpinner }))] }));
|