@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
|
@@ -4,7 +4,6 @@ exports.SplitterElement = void 0;
|
|
|
4
4
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
5
|
const react_1 = require("react");
|
|
6
6
|
const remotion_1 = require("remotion");
|
|
7
|
-
const colors_1 = require("../../helpers/colors");
|
|
8
7
|
const SplitterContext_1 = require("./SplitterContext");
|
|
9
8
|
const SplitterElement = ({ children, type, sticky }) => {
|
|
10
9
|
const context = (0, react_1.useContext)(SplitterContext_1.SplitterContext);
|
|
@@ -44,7 +43,7 @@ const SplitterElement = ({ children, type, sticky }) => {
|
|
|
44
43
|
left: (type === 'flexer' ? 0 : context.flexValue) * 100 + '%',
|
|
45
44
|
width: (type === 'flexer' ? context.flexValue : 1 - context.flexValue) * 100 +
|
|
46
45
|
'%',
|
|
47
|
-
backgroundColor: (0, remotion_1.interpolateColors)((0, remotion_1.random)(context.flexValue), [0, 1], [
|
|
46
|
+
backgroundColor: (0, remotion_1.interpolateColors)((0, remotion_1.random)(context.flexValue), [0, 1], ['red', 'blue']),
|
|
48
47
|
};
|
|
49
48
|
}, [context.flexValue, type]);
|
|
50
49
|
return (jsx_runtime_1.jsxs(jsx_runtime_1.Fragment, { children: [
|
|
@@ -52,7 +52,7 @@ const initialSettings = {
|
|
|
52
52
|
const ConfigNumber = ({ defaultValue, name, onChange, onChangeEnd, value, }) => {
|
|
53
53
|
return (jsx_runtime_1.jsxs("div", { style: layout_2.optionRow, children: [
|
|
54
54
|
jsx_runtime_1.jsx("div", { style: layout_2.label, children: name }), jsx_runtime_1.jsxs("div", { style: { ...layout_2.rightRow, gap: 6 }, children: [
|
|
55
|
-
jsx_runtime_1.jsx(InputDragger_1.InputDragger, { "aria-label": name, buttonStyle: { textAlign: 'right', width: 140 }, formatter: () => value === null ? `Default (${defaultValue})` : String(value), min: 0, onTextChange: () => undefined, onValueChange: onChange, onValueChangeEnd: onChangeEnd, placeholder: `Default (${defaultValue})`, rightAlign: true, status: "ok", step: 1, value: value !== null && value !== void 0 ? value : defaultValue }), jsx_runtime_1.jsx(Button_1.Button, { disabled: value === null, onClick: () => onChangeEnd(null), size: "compact", style: { color: colors_1.LIGHT_TEXT },
|
|
55
|
+
jsx_runtime_1.jsx(InputDragger_1.InputDragger, { "aria-label": name, buttonStyle: { textAlign: 'right', width: 140 }, formatter: () => value === null ? `Default (${defaultValue})` : String(value), min: 0, onTextChange: () => undefined, onValueChange: onChange, onValueChangeEnd: onChangeEnd, placeholder: `Default (${defaultValue})`, rightAlign: true, status: "ok", step: 1, value: value !== null && value !== void 0 ? value : defaultValue }), jsx_runtime_1.jsx(Button_1.Button, { disabled: value === null, onClick: () => onChangeEnd(null), size: "compact", style: { color: colors_1.LIGHT_TEXT }, "aria-label": `Use default (${defaultValue})`, children: jsx_runtime_1.jsx(undo_1.UndoIcon, { style: resetIcon }) })
|
|
56
56
|
] })
|
|
57
57
|
] }));
|
|
58
58
|
};
|
|
@@ -130,7 +130,7 @@ const StudioSettings = () => {
|
|
|
130
130
|
{ label: 'Webpack', value: false },
|
|
131
131
|
], value: settings.rspack }), jsx_runtime_1.jsxs("div", { style: layout_2.optionRow, children: [
|
|
132
132
|
jsx_runtime_1.jsxs("div", { style: layout_2.label, children: ["Cross-site isolation",
|
|
133
|
-
jsx_runtime_1.jsx(InfoBubble_1.InfoBubble, {
|
|
133
|
+
jsx_runtime_1.jsx(InfoBubble_1.InfoBubble, { "aria-label": "About cross-site isolation", horizontalAlignment: "right", children: jsx_runtime_1.jsx("div", { style: {
|
|
134
134
|
padding: 12,
|
|
135
135
|
maxWidth: 280,
|
|
136
136
|
fontSize: 14,
|
|
@@ -49,7 +49,7 @@ const currentTimeButtonStyle = {
|
|
|
49
49
|
padding: 0,
|
|
50
50
|
border: 'none',
|
|
51
51
|
lineHeight: '21px',
|
|
52
|
-
'--remotion-
|
|
52
|
+
'--remotion-studio-blue-hovered': colors_1.WHITE,
|
|
53
53
|
};
|
|
54
54
|
const currentTimeSubtitle = {
|
|
55
55
|
...(0, hoverable_1.hoverableStyle)({
|
|
@@ -124,9 +124,7 @@ const TimeValue = () => {
|
|
|
124
124
|
}
|
|
125
125
|
return (jsx_runtime_1.jsxs("div", { style: text, children: [
|
|
126
126
|
jsx_runtime_1.jsxs("div", { style: currentTimeStack, children: [
|
|
127
|
-
jsx_runtime_1.jsx(InputDragger_1.InputDragger, { ref: ref, "aria-label": String(frame), value: frame, onTextChange: onTextChange, onValueChange: onValueChange, formatter: formatter, formatterStyle: currentTimeTypography, buttonStyle: currentTimeButtonStyle, rightAlign: false, status: "ok", style: currentTimeInputStyle }), jsx_runtime_1.jsx("button", { type: "button", className: `${hoverable_1.HOVERABLE_CLASS_NAME} ${hoverable_1.FOCUS_VISIBLE_ONLY_CLASS_NAME}`, style: currentTimeSubtitle, onClick: toggleTickFormat, "aria-label": "Show timeline ticks as frames", "aria-pressed": showFrames,
|
|
128
|
-
? 'Show timeline ticks as timecode'
|
|
129
|
-
: 'Show timeline ticks as frames', children: frame })
|
|
127
|
+
jsx_runtime_1.jsx(InputDragger_1.InputDragger, { ref: ref, "aria-label": String(frame), value: frame, onTextChange: onTextChange, onValueChange: onValueChange, formatter: formatter, formatterStyle: currentTimeTypography, buttonStyle: currentTimeButtonStyle, rightAlign: false, status: "ok", style: currentTimeInputStyle }), jsx_runtime_1.jsx("button", { type: "button", className: `${hoverable_1.HOVERABLE_CLASS_NAME} ${hoverable_1.FOCUS_VISIBLE_ONLY_CLASS_NAME}`, style: currentTimeSubtitle, onClick: toggleTickFormat, "aria-label": "Show timeline ticks as frames", "aria-pressed": showFrames, children: frame })
|
|
130
128
|
] }), jsx_runtime_1.jsx(layout_1.Spacing, { x: 2 }), jsx_runtime_1.jsx(layout_1.Flex, {}), jsx_runtime_1.jsx(TimelineZoomControls_1.TimelineZoomControls, { sliderMaxWidth: 80 }), jsx_runtime_1.jsx(layout_1.Spacing, { x: 0.5 })
|
|
131
129
|
] }));
|
|
132
130
|
};
|
|
@@ -395,10 +395,10 @@ const EasingGraphScaffold = ({ labels }) => {
|
|
|
395
395
|
const bottomLabelWidth = getEasingGraphLabelWidth(labels.start);
|
|
396
396
|
const topLabelWidth = getEasingGraphLabelWidth(labels.end);
|
|
397
397
|
return (jsx_runtime_1.jsxs(jsx_runtime_1.Fragment, { children: [
|
|
398
|
-
jsx_runtime_1.jsx("line", { x1: PLOT_LEFT, y1: yZero, x2: PLOT_LEFT + PLOT_WIDTH, y2: yZero, stroke: EASING_GRAPH_GUIDE_COLOR, strokeWidth: 1 }), jsx_runtime_1.jsx("line", { x1: PLOT_LEFT, y1: yOne, x2: PLOT_LEFT + PLOT_WIDTH, y2: yOne, stroke: EASING_GRAPH_GUIDE_COLOR, strokeWidth: 1 }), jsx_runtime_1.jsx("foreignObject", { x: PLOT_LEFT - EASING_GRAPH_LABEL_HORIZONTAL_PADDING, y: yOne - EASING_GRAPH_LABEL_HEIGHT / 2, width: topLabelWidth, height: EASING_GRAPH_LABEL_HEIGHT, children: jsx_runtime_1.jsx("div", { style: getEasingGraphLabelStyle('left'),
|
|
398
|
+
jsx_runtime_1.jsx("line", { x1: PLOT_LEFT, y1: yZero, x2: PLOT_LEFT + PLOT_WIDTH, y2: yZero, stroke: EASING_GRAPH_GUIDE_COLOR, strokeWidth: 1 }), jsx_runtime_1.jsx("line", { x1: PLOT_LEFT, y1: yOne, x2: PLOT_LEFT + PLOT_WIDTH, y2: yOne, stroke: EASING_GRAPH_GUIDE_COLOR, strokeWidth: 1 }), jsx_runtime_1.jsx("foreignObject", { x: PLOT_LEFT - EASING_GRAPH_LABEL_HORIZONTAL_PADDING, y: yOne - EASING_GRAPH_LABEL_HEIGHT / 2, width: topLabelWidth, height: EASING_GRAPH_LABEL_HEIGHT, children: jsx_runtime_1.jsx("div", { role: "group", style: getEasingGraphLabelStyle('left'), "aria-label": labels.end, children: labels.end }) }), jsx_runtime_1.jsx("foreignObject", { x: PLOT_LEFT +
|
|
399
399
|
PLOT_WIDTH -
|
|
400
400
|
bottomLabelWidth +
|
|
401
|
-
EASING_GRAPH_LABEL_HORIZONTAL_PADDING, y: yZero - EASING_GRAPH_LABEL_HEIGHT / 2, width: bottomLabelWidth, height: EASING_GRAPH_LABEL_HEIGHT, children: jsx_runtime_1.jsx("div", { style: getEasingGraphLabelStyle('right'),
|
|
401
|
+
EASING_GRAPH_LABEL_HORIZONTAL_PADDING, y: yZero - EASING_GRAPH_LABEL_HEIGHT / 2, width: bottomLabelWidth, height: EASING_GRAPH_LABEL_HEIGHT, children: jsx_runtime_1.jsx("div", { role: "group", style: getEasingGraphLabelStyle('right'), "aria-label": labels.start, children: labels.start }) })
|
|
402
402
|
] }));
|
|
403
403
|
};
|
|
404
404
|
const EasingPresetButton = ({ currentEasing, disabled, onClick, preset }) => {
|
|
@@ -419,7 +419,7 @@ const EasingPresetButton = ({ currentEasing, disabled, onClick, preset }) => {
|
|
|
419
419
|
const handleClick = (0, react_1.useCallback)(() => {
|
|
420
420
|
onClick(preset.easing);
|
|
421
421
|
}, [onClick, preset.easing]);
|
|
422
|
-
return (jsx_runtime_1.jsx("button", { type: "button", style: style,
|
|
422
|
+
return (jsx_runtime_1.jsx("button", { type: "button", style: style, "aria-label": `Apply ${preset.label} easing`, disabled: disabled, onClick: handleClick, onPointerEnter: onPointerEnter, onPointerLeave: onPointerLeave, children: jsx_runtime_1.jsx(exports.EasingPresetPreview, { color: selected || hovered ? colors_1.WHITE : colors_1.LIGHT_TEXT, easing: preset.easing }) }));
|
|
423
423
|
};
|
|
424
424
|
const EasingEditor = ({ state, renderHeader }) => {
|
|
425
425
|
var _a, _b;
|
|
@@ -7,18 +7,19 @@ const LoopedIndicator_1 = require("./LoopedIndicator");
|
|
|
7
7
|
const row = {
|
|
8
8
|
overflow: 'hidden',
|
|
9
9
|
};
|
|
10
|
-
const LoopedTimelineIndicator = ({ loops, fullWidth, visibleOffset, visibleWidth }) => {
|
|
11
|
-
if (loops <= 1 || fullWidth <= 0 || visibleWidth <= 0) {
|
|
10
|
+
const LoopedTimelineIndicator = ({ loops, phase, fullWidth, visibleOffset, visibleWidth }) => {
|
|
11
|
+
if (loops + phase <= 1 || fullWidth <= 0 || visibleWidth <= 0) {
|
|
12
12
|
return null;
|
|
13
13
|
}
|
|
14
14
|
const loopWidth = fullWidth / loops;
|
|
15
|
-
const
|
|
16
|
-
const
|
|
17
|
-
const
|
|
15
|
+
const phaseWidth = phase * loopWidth;
|
|
16
|
+
const lastBoundaryIndex = Math.ceil(loops + phase) - 1;
|
|
17
|
+
const firstVisibleBoundaryIndex = Math.max(1, Math.floor((visibleOffset + phaseWidth) / loopWidth));
|
|
18
|
+
const lastVisibleBoundaryIndex = Math.min(lastBoundaryIndex, Math.ceil((visibleOffset + visibleWidth + phaseWidth) / loopWidth));
|
|
18
19
|
const visibleBoundaryCount = Math.max(0, lastVisibleBoundaryIndex - firstVisibleBoundaryIndex + 1);
|
|
19
20
|
const boundaries = new Array(visibleBoundaryCount)
|
|
20
21
|
.fill(true)
|
|
21
|
-
.map((_, index) => (firstVisibleBoundaryIndex + index) * loopWidth);
|
|
22
|
+
.map((_, index) => (firstVisibleBoundaryIndex + index) * loopWidth - phaseWidth);
|
|
22
23
|
return (jsx_runtime_1.jsx(remotion_1.Internals.AbsoluteFillElement, { style: row, children: boundaries.map((boundary) => {
|
|
23
24
|
return (jsx_runtime_1.jsx("div", { style: {
|
|
24
25
|
position: 'absolute',
|
|
@@ -67,7 +67,7 @@ const getFallbackItemValue = (field) => {
|
|
|
67
67
|
return [0.5, 0.5];
|
|
68
68
|
}
|
|
69
69
|
if (field.item.type === 'color') {
|
|
70
|
-
return
|
|
70
|
+
return '#000000';
|
|
71
71
|
}
|
|
72
72
|
if (field.item.type === 'enum') {
|
|
73
73
|
const [firstVariant] = field.item.variants;
|
|
@@ -205,8 +205,8 @@ const TimelineArrayField = ({ field, effectiveValue, onSave, onDragValueChange,
|
|
|
205
205
|
return (jsx_runtime_1.jsxs("span", { style: container, children: [items.map((_item, index) => {
|
|
206
206
|
const itemKey = itemKeys.current[index];
|
|
207
207
|
return (jsx_runtime_1.jsxs("span", { style: itemContainer, children: [
|
|
208
|
-
jsx_runtime_1.jsx("span", { style: itemLabel, children: index }), jsx_runtime_1.jsx(ItemEditor, { arrayField: arrayField, field: field, index: index, items: items, onDragEnd: onDragEnd, onDragValueChange: onDragValueChange, onSave: onSave }), jsx_runtime_1.jsx("button", { disabled: !canRemove, onClick: () => onRemove(index), style: canRemove ? button : disabledButton,
|
|
208
|
+
jsx_runtime_1.jsx("span", { style: itemLabel, children: index }), jsx_runtime_1.jsx(ItemEditor, { arrayField: arrayField, field: field, index: index, items: items, onDragEnd: onDragEnd, onDragValueChange: onDragValueChange, onSave: onSave }), jsx_runtime_1.jsx("button", { disabled: !canRemove, onClick: () => onRemove(index), style: canRemove ? button : disabledButton, "aria-label": `Remove item ${index}`, type: "button", children: "-" })
|
|
209
209
|
] }, itemKey));
|
|
210
|
-
}), canAdd ? (jsx_runtime_1.jsx("span", { style: addButtonRow, children: jsx_runtime_1.jsx("button", { type: "button", style: button, onClick: onAdd,
|
|
210
|
+
}), canAdd ? (jsx_runtime_1.jsx("span", { style: addButtonRow, children: jsx_runtime_1.jsx("button", { type: "button", style: button, onClick: onAdd, "aria-label": "Add item", children: "+" }) })) : null] }));
|
|
211
211
|
};
|
|
212
212
|
exports.TimelineArrayField = TimelineArrayField;
|
|
@@ -229,7 +229,7 @@ const TimelineAssetField = ({ field, effectiveValue, propStatus, onSave, onDragV
|
|
|
229
229
|
selectFile,
|
|
230
230
|
setSelectedModal,
|
|
231
231
|
]);
|
|
232
|
-
const action = (jsx_runtime_1.jsx(InlineAction_1.InlineAction, { variant: null, onClick: openAssetSelection, disabled: window.remotion_isReadOnlyStudio,
|
|
232
|
+
const action = (jsx_runtime_1.jsx(InlineAction_1.InlineAction, { variant: null, onClick: openAssetSelection, disabled: window.remotion_isReadOnlyStudio, "aria-label": "Change source", renderAction: (color) => jsx_runtime_1.jsx(pen_1.PenIcon, { color: color, style: penIcon }) }));
|
|
233
233
|
if (imageLinkInfo !== null) {
|
|
234
234
|
const linkInfo = imageLinkInfo;
|
|
235
235
|
let name;
|
|
@@ -258,7 +258,7 @@ const TimelineAssetField = ({ field, effectiveValue, propStatus, onSave, onDragV
|
|
|
258
258
|
const opensSource = linkInfo.kind === 'local' &&
|
|
259
259
|
inlineSourceAction !== null &&
|
|
260
260
|
inlineSourceAction.onClick !== null;
|
|
261
|
-
const
|
|
261
|
+
const sourceDescription = (_b = inlineSourceAction === null || inlineSourceAction === void 0 ? void 0 : inlineSourceAction['aria-label']) !== null && _b !== void 0 ? _b : linkInfo.title;
|
|
262
262
|
const onPreviewClick = opensSource
|
|
263
263
|
? inlineSourceAction.onClick
|
|
264
264
|
: openAssetSelection;
|
|
@@ -277,7 +277,7 @@ const TimelineAssetField = ({ field, effectiveValue, propStatus, onSave, onDragV
|
|
|
277
277
|
hoverColor: previewDisabled ? colors_1.LIGHT_TEXT : colors_1.WHITE,
|
|
278
278
|
}),
|
|
279
279
|
};
|
|
280
|
-
const previewAction = (jsx_runtime_1.jsxs("button", { "aria-label": previewLabel, className: `${hoverable_1.HOVERABLE_CLASS_NAME} ${hoverable_1.FOCUS_VISIBLE_ONLY_CLASS_NAME}`, disabled: previewDisabled, onClick: onPreviewClick, style: previewButtonStyle,
|
|
280
|
+
const previewAction = (jsx_runtime_1.jsxs("button", { "aria-label": previewLabel, "aria-description": sourceDescription, className: `${hoverable_1.HOVERABLE_CLASS_NAME} ${hoverable_1.FOCUS_VISIBLE_ONLY_CLASS_NAME}`, disabled: previewDisabled, onClick: onPreviewClick, style: previewButtonStyle, type: "button", children: [
|
|
281
281
|
jsx_runtime_1.jsx("span", { style: thumbnailContainer, children: jsx_runtime_1.jsx("img", { alt: "", draggable: false, src: previewSrc, style: thumbnail }) }), jsx_runtime_1.jsxs("span", { style: imageAssetInfo, children: [
|
|
282
282
|
jsx_runtime_1.jsx("span", { style: imageAssetName, children: name }), source === null ? null : (jsx_runtime_1.jsx("span", { style: imageAssetSource, children: source }))] })
|
|
283
283
|
] }));
|
|
@@ -560,7 +560,6 @@ const TimelineClipboardKeybindings = () => {
|
|
|
560
560
|
}
|
|
561
561
|
const nextSelection = (0, delete_selected_timeline_item_1.getTimelineSelectionAfterDeletingItems)({
|
|
562
562
|
selections: selectedItems,
|
|
563
|
-
propStatuses,
|
|
564
563
|
});
|
|
565
564
|
if (nextSelection.length === 0) {
|
|
566
565
|
clearSelection();
|
|
@@ -31,7 +31,7 @@ const TimelineColorField = ({ field, effectiveValue, propStatus, onSave, onDragV
|
|
|
31
31
|
const currentValue = typeof effectiveValue === 'string'
|
|
32
32
|
? effectiveValue
|
|
33
33
|
: field.fieldSchema.type === 'color'
|
|
34
|
-
? ((_a = field.fieldSchema.default) !== null && _a !== void 0 ? _a :
|
|
34
|
+
? ((_a = field.fieldSchema.default) !== null && _a !== void 0 ? _a : '#000')
|
|
35
35
|
: '';
|
|
36
36
|
const onChange = (0, react_1.useCallback)((next) => {
|
|
37
37
|
onDragValueChange(next);
|
|
@@ -44,9 +44,9 @@ const TimelineColorField = ({ field, effectiveValue, propStatus, onSave, onDragV
|
|
|
44
44
|
}, [onSave, onDragEnd, propStatus]);
|
|
45
45
|
if (currentValue === 'none') {
|
|
46
46
|
return (jsx_runtime_1.jsxs("span", { style: containerStyle, children: [
|
|
47
|
-
jsx_runtime_1.jsx("span", { style: noneLabelStyle, children: "None" }), jsx_runtime_1.jsx("button", { type: "button", style: setButtonStyle,
|
|
47
|
+
jsx_runtime_1.jsx("span", { style: noneLabelStyle, children: "None" }), jsx_runtime_1.jsx("button", { type: "button", style: setButtonStyle, "aria-label": `Set ${(_b = field.description) !== null && _b !== void 0 ? _b : field.key} to gray`, onClick: () => onChangeComplete(DEFAULT_SET_COLOR), children: "Set" })
|
|
48
48
|
] }));
|
|
49
49
|
}
|
|
50
|
-
return (jsx_runtime_1.jsx("span", { style: containerStyle, children: jsx_runtime_1.jsx(ColorPicker_1.ColorPicker, { value: currentValue, status: "ok", onChange: onChange, onChangeComplete: onChangeComplete, width: SWATCH_WIDTH, height: SWATCH_HEIGHT, disabled: false, name: field.key,
|
|
50
|
+
return (jsx_runtime_1.jsx("span", { style: containerStyle, children: jsx_runtime_1.jsx(ColorPicker_1.ColorPicker, { value: currentValue, status: "ok", onChange: onChange, onChangeComplete: onChangeComplete, width: SWATCH_WIDTH, height: SWATCH_HEIGHT, disabled: false, name: field.key, "aria-label": currentValue }) }));
|
|
51
51
|
};
|
|
52
52
|
exports.TimelineColorField = TimelineColorField;
|
|
@@ -122,7 +122,7 @@ const TimelineDragHandlerInner = () => {
|
|
|
122
122
|
shouldApplyCssTransforms: true,
|
|
123
123
|
});
|
|
124
124
|
const { isHighestContext } = (0, z_index_1.useZIndex)();
|
|
125
|
-
const
|
|
125
|
+
const seekFrame = remotion_1.Internals.Timeline.useTimelineSeekFrame();
|
|
126
126
|
const width = (0, timeline_scroll_logic_1.getTimelineContentWidth)();
|
|
127
127
|
const left = (_a = size === null || size === void 0 ? void 0 : size.left) !== null && _a !== void 0 ? _a : 0;
|
|
128
128
|
const [dragging, setDragging] = (0, react_1.useState)({
|
|
@@ -238,7 +238,7 @@ const TimelineDragHandlerInner = () => {
|
|
|
238
238
|
width,
|
|
239
239
|
extrapolate: 'clamp',
|
|
240
240
|
});
|
|
241
|
-
|
|
241
|
+
seekFrame((c) => {
|
|
242
242
|
if (c[videoConfig.id] === frame) {
|
|
243
243
|
return c;
|
|
244
244
|
}
|
|
@@ -249,7 +249,7 @@ const TimelineDragHandlerInner = () => {
|
|
|
249
249
|
if (dragging.wasPlaying) {
|
|
250
250
|
play();
|
|
251
251
|
}
|
|
252
|
-
}, [dragging, left, play, videoConfig,
|
|
252
|
+
}, [dragging, left, play, videoConfig, seekFrame, width]);
|
|
253
253
|
const onPointerCancelScrubbing = (0, react_1.useCallback)(() => {
|
|
254
254
|
var _a;
|
|
255
255
|
(_a = autoScroller.current) === null || _a === void 0 ? void 0 : _a.stop();
|
|
@@ -23,6 +23,6 @@ const badgeStyle = {
|
|
|
23
23
|
};
|
|
24
24
|
const TimelineDuplicateCount = ({ count }) => {
|
|
25
25
|
const label = `${count} other programmatically duplicated ${count === 1 ? 'instance is' : 'instances are'} hidden`;
|
|
26
|
-
return (jsx_runtime_1.jsxs("span", {
|
|
26
|
+
return (jsx_runtime_1.jsxs("span", { role: "group", style: badgeStyle, "aria-label": label, children: ["+", count] }));
|
|
27
27
|
};
|
|
28
28
|
exports.TimelineDuplicateCount = TimelineDuplicateCount;
|
|
@@ -351,7 +351,7 @@ const TimelineEffectItem = ({ label, nodePathInfo, effectIndex, effectSchema, do
|
|
|
351
351
|
};
|
|
352
352
|
}, [dropIndicator]);
|
|
353
353
|
const row = (jsx_runtime_1.jsx(TimelineRowChrome_1.TimelineRowChrome, { depth: rowDepth, eye: canToggle ? (jsx_runtime_1.jsx(TimelineLayerEye_1.TimelineLayerEye, { type: "effect", hidden: isDisabled, onInvoked: onToggle })) : (jsx_runtime_1.jsx(TimelineLayerEye_1.TimelineLayerEyeSpacer, {})), arrow: labelNextToToggle ? null : jsx_runtime_1.jsx(TimelineExpandArrowButton_1.TimelineExpandArrowSpacer, {}), style: rowStyle, selected: selection.selected, selectable: selection.selectable, onSelect: selection.onSelect, showSelectedBackground: true, containsSelection: containsSelection, outerHeight: null, children: jsx_runtime_1.jsxs("div", { style: labelContainerStyle, children: [
|
|
354
|
-
jsx_runtime_1.jsx("span", {
|
|
354
|
+
jsx_runtime_1.jsx("span", { role: "group", "aria-label": label, style: labelStyle, children: label }), jsx_runtime_1.jsx(TimelineExpandArrowButton_1.TimelineExpandArrowButton, { isExpanded: isExpanded, onClick: () => toggleTrack(nodePathInfo), label: `${label} section`, disabled: false })
|
|
355
355
|
] }) }));
|
|
356
356
|
const draggableRow = canReorder ? (jsx_runtime_1.jsxs("div", { draggable: true, onDragStart: onDragStart, onDragEnd: onDragEnd, onDragOver: onDragOver, onDragLeave: onDragLeave, onDrop: onDrop, style: reorderWrapper, children: [reorderLineStyle ? jsx_runtime_1.jsx("div", { style: reorderLineStyle }) : null, row] })) : (row);
|
|
357
357
|
return previewConnected ? (jsx_runtime_1.jsx(ContextMenu_1.ContextMenu, { getItems: getContextMenuItems, children: draggableRow })) : (draggableRow);
|
|
@@ -18,6 +18,7 @@ export declare const TimelineEffectPropItem: React.FC<{
|
|
|
18
18
|
readonly nodePath: SequencePropsSubscriptionKey;
|
|
19
19
|
readonly nodePathInfo: SequenceNodePathInfo;
|
|
20
20
|
readonly keyframeDisplayOffset: number;
|
|
21
|
+
readonly keyframePlaybackRate: number;
|
|
21
22
|
readonly keyframeControlsMode: TimelineKeyframeControlsMode;
|
|
22
23
|
readonly revealInInspector: boolean;
|
|
23
24
|
readonly runtimeValueStore: RuntimeValueStore | null;
|
|
@@ -228,11 +228,16 @@ const TimelineEffectPropValue = ({ field, nodePath, validatedLocation, sourceFra
|
|
|
228
228
|
return (jsx_runtime_1.jsx(TimelineSchemaField_1.TimelineFieldValue, { field: field, propStatus: propStatus, onSave: onSave, onDragValueChange: onDragValueChange, onDragEnd: onDragEnd, effectiveValue: effectiveValue, scaleLockNodePath: null }));
|
|
229
229
|
};
|
|
230
230
|
exports.TimelineEffectPropValue = TimelineEffectPropValue;
|
|
231
|
-
const TimelineEffectPropValueAtCurrentFrame = ({ field, nodePath, validatedLocation, keyframeDisplayOffset, runtimeValueStore, }) => {
|
|
231
|
+
const TimelineEffectPropValueAtCurrentFrame = ({ field, nodePath, validatedLocation, keyframeDisplayOffset, keyframePlaybackRate, propStatus, runtimeValueStore, }) => {
|
|
232
232
|
const timelinePosition = remotion_1.Internals.Timeline.useTimelinePosition();
|
|
233
|
-
return (jsx_runtime_1.jsx(exports.TimelineEffectPropValue, { field: field, nodePath: nodePath, validatedLocation: validatedLocation, sourceFrame:
|
|
233
|
+
return (jsx_runtime_1.jsx(exports.TimelineEffectPropValue, { field: field, nodePath: nodePath, validatedLocation: validatedLocation, sourceFrame: (0, get_timeline_keyframes_1.getKeyframeSourceFrame)({
|
|
234
|
+
displayFrame: timelinePosition,
|
|
235
|
+
keyframeDisplayOffset,
|
|
236
|
+
keyframePlaybackRate,
|
|
237
|
+
propStatus,
|
|
238
|
+
}), runtimeValueStore: runtimeValueStore }));
|
|
234
239
|
};
|
|
235
|
-
const TimelineEffectPropItem = ({ field, validatedLocation, rowDepth, nodePath, nodePathInfo, keyframeDisplayOffset, keyframeControlsMode, revealInInspector, runtimeValueStore, }) => {
|
|
240
|
+
const TimelineEffectPropItem = ({ field, validatedLocation, rowDepth, nodePath, nodePathInfo, keyframeDisplayOffset, keyframePlaybackRate, keyframeControlsMode, revealInInspector, runtimeValueStore, }) => {
|
|
236
241
|
var _a;
|
|
237
242
|
var _b;
|
|
238
243
|
const { previewServerState } = (0, react_1.useContext)(client_id_1.StudioServerConnectionCtx);
|
|
@@ -241,6 +246,7 @@ const TimelineEffectPropItem = ({ field, validatedLocation, rowDepth, nodePath,
|
|
|
241
246
|
const { propStatuses } = (0, react_1.useContext)(remotion_1.Internals.VisualModePropStatusesContext);
|
|
242
247
|
const { getEffectDragOverrides } = (0, react_1.useContext)(remotion_1.Internals.VisualModeDragOverridesContext);
|
|
243
248
|
const selection = (0, TimelineSelection_1.useTimelineRowSelection)(nodePathInfo, revealInInspector);
|
|
249
|
+
const containsSelection = (0, TimelineSelection_1.useTimelineRowContainsSelection)(nodePathInfo);
|
|
244
250
|
const style = (0, react_1.useMemo)(() => {
|
|
245
251
|
return field.typeName === 'text-content'
|
|
246
252
|
? fieldRowBase
|
|
@@ -257,6 +263,7 @@ const TimelineEffectPropItem = ({ field, validatedLocation, rowDepth, nodePath,
|
|
|
257
263
|
const resolvedKeyframeDisplayOffset = (0, get_timeline_keyframes_1.getKeyframeDisplayOffset)({
|
|
258
264
|
propStatus,
|
|
259
265
|
keyframeDisplayOffset,
|
|
266
|
+
keyframePlaybackRate,
|
|
260
267
|
});
|
|
261
268
|
const dragOverrideValue = (0, react_1.useMemo)(() => {
|
|
262
269
|
const overrides = getEffectDragOverrides(nodePath, field.effectIndex);
|
|
@@ -273,7 +280,7 @@ const TimelineEffectPropItem = ({ field, validatedLocation, rowDepth, nodePath,
|
|
|
273
280
|
propStatus,
|
|
274
281
|
selected: selection.selected,
|
|
275
282
|
keyframable,
|
|
276
|
-
})) ? (jsx_runtime_1.jsx(TimelineKeyframeControls_1.TimelineKeyframeControls, { fieldKey: field.key, propStatus: propStatus, nodePath: nodePath, fileName: validatedLocation.source, keyframeDisplayOffset: keyframeDisplayOffset, defaultValue: field.fieldSchema.default, dragOverrideValue: dragOverrideValue, schema: field.effectSchema, effectIndex: field.effectIndex, nodePathInfo: nodePathInfo, mode: keyframeControlsMode })) : null;
|
|
283
|
+
})) ? (jsx_runtime_1.jsx(TimelineKeyframeControls_1.TimelineKeyframeControls, { fieldKey: field.key, propStatus: propStatus, nodePath: nodePath, fileName: validatedLocation.source, keyframeDisplayOffset: keyframeDisplayOffset, keyframePlaybackRate: keyframePlaybackRate, defaultValue: field.fieldSchema.default, dragOverrideValue: dragOverrideValue, schema: field.effectSchema, effectIndex: field.effectIndex, nodePathInfo: nodePathInfo, mode: keyframeControlsMode })) : null;
|
|
277
284
|
const canResetToDefault = (0, react_1.useMemo)(() => {
|
|
278
285
|
if (!propStatus || propStatus.status === 'computed') {
|
|
279
286
|
return false;
|
|
@@ -361,7 +368,7 @@ const TimelineEffectPropItem = ({ field, validatedLocation, rowDepth, nodePath,
|
|
|
361
368
|
property: field.key,
|
|
362
369
|
}).catch(() => undefined);
|
|
363
370
|
}, [canOpenInEditor, defaultEditorId, field.key, validatedLocation]);
|
|
364
|
-
const row = (jsx_runtime_1.jsx(TimelineRowChrome_1.TimelineRowChrome, { depth: rowDepth, eye: jsx_runtime_1.jsx(TimelineLayerEye_1.TimelineLayerEyeSpacer, {}), keyframeControls: keyframeControls, arrow: jsx_runtime_1.jsx(TimelineExpandArrowButton_1.TimelineExpandArrowSpacer, {}), style: style, selected: selection.selected, selectable: selection.selectable, onSelect: selection.onSelect, onDoubleClick: onPropertyDoubleClick, showSelectedBackground: true, containsSelection:
|
|
371
|
+
const row = (jsx_runtime_1.jsx(TimelineRowChrome_1.TimelineRowChrome, { depth: rowDepth, eye: jsx_runtime_1.jsx(TimelineLayerEye_1.TimelineLayerEyeSpacer, {}), keyframeControls: keyframeControls, arrow: jsx_runtime_1.jsx(TimelineExpandArrowButton_1.TimelineExpandArrowSpacer, {}), style: style, selected: selection.selected, selectable: selection.selectable, onSelect: selection.onSelect, onDoubleClick: onPropertyDoubleClick, showSelectedBackground: true, containsSelection: containsSelection, outerHeight: null, children: jsx_runtime_1.jsx(TimelineFieldRowContent_1.TimelineFieldRowContent, { field: field, rowDepth: rowDepth, selected: selection.selected || containsSelection, children: jsx_runtime_1.jsx(TimelineEffectPropValueAtCurrentFrame, { field: field, nodePath: nodePath, validatedLocation: validatedLocation, keyframeDisplayOffset: resolvedKeyframeDisplayOffset, keyframePlaybackRate: keyframePlaybackRate, propStatus: propStatus, runtimeValueStore: runtimeValueStore }) }) }));
|
|
365
372
|
return jsx_runtime_1.jsx(ContextMenu_1.ContextMenu, { getItems: getContextMenuItems, children: row });
|
|
366
373
|
};
|
|
367
374
|
exports.TimelineEffectPropItem = TimelineEffectPropItem;
|
|
@@ -34,6 +34,6 @@ const TimelineEnumField = ({ field, propStatus, effectiveValue, onSave, onDragVa
|
|
|
34
34
|
disabled: false,
|
|
35
35
|
}));
|
|
36
36
|
}, [variantKeys, onSelect]);
|
|
37
|
-
return (jsx_runtime_1.jsx(ComboBox_1.Combobox, { size: "small",
|
|
37
|
+
return (jsx_runtime_1.jsx(ComboBox_1.Combobox, { size: "small", "aria-label": field.key, selectedId: current, values: items }));
|
|
38
38
|
};
|
|
39
39
|
exports.TimelineEnumField = TimelineEnumField;
|
|
@@ -16,6 +16,7 @@ type TimelineExpandedRowProps = {
|
|
|
16
16
|
readonly nodePath: SequencePropsSubscriptionKey;
|
|
17
17
|
readonly schema: InteractivitySchema;
|
|
18
18
|
readonly keyframeDisplayOffset: number;
|
|
19
|
+
readonly keyframePlaybackRate: number;
|
|
19
20
|
readonly keyframeControlsMode: TimelineKeyframeControlsMode;
|
|
20
21
|
};
|
|
21
22
|
export declare const TimelineExpandedRow: React.NamedExoticComponent<TimelineExpandedRowProps>;
|
|
@@ -22,10 +22,11 @@ const rowLabel = {
|
|
|
22
22
|
userSelect: 'none',
|
|
23
23
|
WebkitUserSelect: 'none',
|
|
24
24
|
};
|
|
25
|
-
const TimelineExpandedRowInner = ({ node, depth, nestedDepth, rowDepthBase, getIsExpanded, toggleTrack, validatedLocation, nodePath, schema, keyframeDisplayOffset, keyframeControlsMode, }) => {
|
|
25
|
+
const TimelineExpandedRowInner = ({ node, depth, nestedDepth, rowDepthBase, getIsExpanded, toggleTrack, validatedLocation, nodePath, schema, keyframeDisplayOffset, keyframePlaybackRate, keyframeControlsMode, }) => {
|
|
26
26
|
const rowDepth = (rowDepthBase !== null && rowDepthBase !== void 0 ? rowDepthBase : (0, timeline_row_layout_1.getExpandedRowDepth)({ nestedDepth, treeDepth: 0 })) + depth;
|
|
27
27
|
const isInspector = keyframeControlsMode === 'inspector';
|
|
28
28
|
const selection = (0, TimelineSelection_1.useTimelineRowSelection)(node.nodePathInfo);
|
|
29
|
+
const containsSelection = (0, TimelineSelection_1.useTimelineRowContainsSelection)(node.nodePathInfo);
|
|
29
30
|
const labelStyle = react_1.default.useMemo(() => ({
|
|
30
31
|
...rowLabel,
|
|
31
32
|
...(0, TimelineSelection_1.getTimelineSelectedLabelStyle)(selection.selected, true),
|
|
@@ -47,14 +48,14 @@ const TimelineExpandedRowInner = ({ node, depth, nestedDepth, rowDepthBase, getI
|
|
|
47
48
|
const isExpanded = getIsExpanded(node.nodePathInfo);
|
|
48
49
|
return (jsx_runtime_1.jsx(TimelineRowChrome_1.TimelineRowChrome, { depth: rowDepth, eye: jsx_runtime_1.jsx(TimelineLayerEye_1.TimelineLayerEyeSpacer, {}), arrow: jsx_runtime_1.jsx(TimelineExpandArrowButton_1.TimelineExpandArrowButton, { isExpanded: isExpanded, onClick: () => toggleTrack(node.nodePathInfo), label: `${node.label} section`, disabled: false }), style: {
|
|
49
50
|
height: timeline_layout_1.TREE_GROUP_ROW_HEIGHT,
|
|
50
|
-
}, selected: selection.selected, selectable: selection.selectable, onSelect: selection.onSelect, showSelectedBackground: true, containsSelection:
|
|
51
|
+
}, selected: selection.selected, selectable: selection.selectable, onSelect: selection.onSelect, showSelectedBackground: true, containsSelection: containsSelection, outerHeight: null, children: jsx_runtime_1.jsx("span", { style: labelStyle, children: node.label }) }));
|
|
51
52
|
}
|
|
52
53
|
if (node.field) {
|
|
53
54
|
if (node.field.kind === 'effect-field') {
|
|
54
|
-
return (jsx_runtime_1.jsx(TimelineEffectPropItem_1.TimelineEffectPropItem, { field: node.field, validatedLocation: validatedLocation, rowDepth: isInspector ? rowDepth - 1 : rowDepth, nodePath: nodePath, nodePathInfo: node.nodePathInfo, keyframeDisplayOffset: keyframeDisplayOffset, keyframeControlsMode: keyframeControlsMode, revealInInspector: !isInspector, runtimeValueStore: node.runtimeValueStore }));
|
|
55
|
+
return (jsx_runtime_1.jsx(TimelineEffectPropItem_1.TimelineEffectPropItem, { field: node.field, validatedLocation: validatedLocation, rowDepth: isInspector ? rowDepth - 1 : rowDepth, nodePath: nodePath, nodePathInfo: node.nodePathInfo, keyframeDisplayOffset: keyframeDisplayOffset, keyframePlaybackRate: keyframePlaybackRate, keyframeControlsMode: keyframeControlsMode, revealInInspector: !isInspector, runtimeValueStore: node.runtimeValueStore }));
|
|
55
56
|
}
|
|
56
57
|
if (node.field.kind === 'sequence-field') {
|
|
57
|
-
return (jsx_runtime_1.jsx(TimelineSequencePropItem_1.TimelineSequencePropItem, { field: node.field, validatedLocation: validatedLocation, rowDepth: rowDepth, nodePath: nodePath, nodePathInfo: node.nodePathInfo, schema: schema, keyframeDisplayOffset: keyframeDisplayOffset, keyframeControlsMode: keyframeControlsMode, runtimeValue: node.runtimeValue }));
|
|
58
|
+
return (jsx_runtime_1.jsx(TimelineSequencePropItem_1.TimelineSequencePropItem, { field: node.field, validatedLocation: validatedLocation, rowDepth: rowDepth, nodePath: nodePath, nodePathInfo: node.nodePathInfo, schema: schema, keyframeDisplayOffset: keyframeDisplayOffset, keyframePlaybackRate: keyframePlaybackRate, keyframeControlsMode: keyframeControlsMode, runtimeValue: node.runtimeValue }));
|
|
58
59
|
}
|
|
59
60
|
throw new Error('Unexpected field kind: ' + JSON.stringify(node.field));
|
|
60
61
|
}
|
|
@@ -55,7 +55,7 @@ const separator = {
|
|
|
55
55
|
height: 0,
|
|
56
56
|
borderBottom: `1px solid ${colors_1.TIMELINE_TRACK_SEPARATOR}`,
|
|
57
57
|
};
|
|
58
|
-
const TimelineExpandedSection = ({ sequence, validatedLocation, nodePathInfo, nestedDepth, keyframeDisplayOffset, }) => {
|
|
58
|
+
const TimelineExpandedSection = ({ sequence, validatedLocation, nodePathInfo, nestedDepth, keyframeDisplayOffset, keyframePlaybackRate, }) => {
|
|
59
59
|
const { filteredTree, getIsExpanded, toggleTrack } = (0, use_timeline_expanded_tree_1.useTimelineExpandedTree)({
|
|
60
60
|
sequence,
|
|
61
61
|
nodePathInfo,
|
|
@@ -79,7 +79,7 @@ const TimelineExpandedSection = ({ sequence, validatedLocation, nodePathInfo, ne
|
|
|
79
79
|
return null;
|
|
80
80
|
}
|
|
81
81
|
return (jsx_runtime_1.jsx(TimelineRowChrome_1.TimelineRowSelectedBackgroundContext.Provider, { value: TimelineSelection_1.TIMELINE_EXPANDED_SELECTED_BACKGROUND, children: jsx_runtime_1.jsx("div", { style: style, children: flat.map(({ node, depth }, i) => {
|
|
82
|
-
return (jsx_runtime_1.jsxs(react_1.default.Fragment, { children: [i > 0 ? jsx_runtime_1.jsx("div", { style: separator }) : null, jsx_runtime_1.jsx(TimelineExpandedRow_1.TimelineExpandedRow, { node: node, depth: depth, nestedDepth: nestedDepth, getIsExpanded: getIsExpanded, toggleTrack: toggleTrack, validatedLocation: validatedLocation, nodePath: nodePathInfo.sequenceSubscriptionKey, schema: schema, keyframeDisplayOffset: keyframeDisplayOffset, keyframeControlsMode: "timeline" })
|
|
82
|
+
return (jsx_runtime_1.jsxs(react_1.default.Fragment, { children: [i > 0 ? jsx_runtime_1.jsx("div", { style: separator }) : null, jsx_runtime_1.jsx(TimelineExpandedRow_1.TimelineExpandedRow, { node: node, depth: depth, nestedDepth: nestedDepth, getIsExpanded: getIsExpanded, toggleTrack: toggleTrack, validatedLocation: validatedLocation, nodePath: nodePathInfo.sequenceSubscriptionKey, schema: schema, keyframeDisplayOffset: keyframeDisplayOffset, keyframePlaybackRate: keyframePlaybackRate, keyframeControlsMode: "timeline" })
|
|
83
83
|
] }, JSON.stringify(node.nodePathInfo)));
|
|
84
84
|
}) }) }));
|
|
85
85
|
};
|
|
@@ -5,6 +5,7 @@ type TimelineExpandedTrackKeyframesProps = {
|
|
|
5
5
|
readonly sequence: TSequence;
|
|
6
6
|
readonly nodePathInfo: SequenceNodePathInfo;
|
|
7
7
|
readonly keyframeDisplayOffset: number;
|
|
8
|
+
readonly keyframePlaybackRate: number;
|
|
8
9
|
};
|
|
9
10
|
export declare const TimelineExpandedTrackKeyframes: React.NamedExoticComponent<TimelineExpandedTrackKeyframesProps>;
|
|
10
11
|
export {};
|
|
@@ -9,17 +9,19 @@ const react_1 = __importDefault(require("react"));
|
|
|
9
9
|
const are_sequence_node_path_infos_equal_1 = require("../../helpers/are-sequence-node-path-infos-equal");
|
|
10
10
|
const TimelineExpandedKeyframeRow_1 = require("./TimelineExpandedKeyframeRow");
|
|
11
11
|
const use_expanded_track_keyframe_rows_1 = require("./use-expanded-track-keyframe-rows");
|
|
12
|
-
const TimelineExpandedTrackKeyframesInner = ({ nodePathInfo, sequence, keyframeDisplayOffset }) => {
|
|
12
|
+
const TimelineExpandedTrackKeyframesInner = ({ nodePathInfo, sequence, keyframeDisplayOffset, keyframePlaybackRate }) => {
|
|
13
13
|
const { rows, expandedHeight } = (0, use_expanded_track_keyframe_rows_1.useExpandedTrackKeyframeRows)({
|
|
14
14
|
sequence,
|
|
15
15
|
nodePathInfo,
|
|
16
16
|
keyframeDisplayOffset,
|
|
17
|
+
keyframePlaybackRate,
|
|
17
18
|
});
|
|
18
19
|
return (jsx_runtime_1.jsx("div", { style: { height: expandedHeight }, children: rows.map((row, index) => (jsx_runtime_1.jsx(TimelineExpandedKeyframeRow_1.TimelineExpandedKeyframeRow, { height: row.height, keyframes: row.keyframes, canEditEasing: row.canEditEasing, nodePathInfo: row.nodePathInfo, showSeparator: index > 0 }, row.rowKey))) }));
|
|
19
20
|
};
|
|
20
21
|
const areTimelineExpandedTrackKeyframesPropsEqual = (first, second) => {
|
|
21
22
|
var _a, _b, _c, _d;
|
|
22
23
|
return (first.keyframeDisplayOffset === second.keyframeDisplayOffset &&
|
|
24
|
+
first.keyframePlaybackRate === second.keyframePlaybackRate &&
|
|
23
25
|
((_a = first.sequence.controls) === null || _a === void 0 ? void 0 : _a.schema) === ((_b = second.sequence.controls) === null || _b === void 0 ? void 0 : _b.schema) &&
|
|
24
26
|
((_c = first.sequence.controls) === null || _c === void 0 ? void 0 : _c.runtimeValues) ===
|
|
25
27
|
((_d = second.sequence.controls) === null || _d === void 0 ? void 0 : _d.runtimeValues) &&
|
|
@@ -33,6 +33,6 @@ const TimelineFieldLabel = ({ rowDepth, selected, label, stacked = false }) => {
|
|
|
33
33
|
...fieldNameBase,
|
|
34
34
|
color: (0, TimelineSelection_1.getTimelineColor)(selected, true),
|
|
35
35
|
}), [selected]);
|
|
36
|
-
return (jsx_runtime_1.jsx("div", { style: labelRowStyle, children: jsx_runtime_1.jsx("span", { style: fieldNameStyle,
|
|
36
|
+
return (jsx_runtime_1.jsx("div", { style: labelRowStyle, children: jsx_runtime_1.jsx("span", { role: "group", style: fieldNameStyle, "aria-label": label, children: label }) }));
|
|
37
37
|
};
|
|
38
38
|
exports.TimelineFieldLabel = TimelineFieldLabel;
|
|
@@ -22,9 +22,9 @@ const ROW_HEIGHT = 30;
|
|
|
22
22
|
const LIST_HEIGHT = 280;
|
|
23
23
|
const OVERSCAN = 10;
|
|
24
24
|
const POPOVER_WIDTH = 280;
|
|
25
|
-
const CLEAR_HOVER =
|
|
26
|
-
const INPUT_BORDER_COLOR_UNHOVERED =
|
|
27
|
-
const INPUT_BORDER_COLOR_HOVERED =
|
|
25
|
+
const CLEAR_HOVER = colors_1.WHITE_ALPHA_06;
|
|
26
|
+
const INPUT_BORDER_COLOR_UNHOVERED = colors_1.BLACK_ALPHA_60;
|
|
27
|
+
const INPUT_BORDER_COLOR_HOVERED = colors_1.WHITE_ALPHA_05;
|
|
28
28
|
const googleFonts = google_fonts_list_1.GOOGLE_FONTS_LIST.map((font) => ({
|
|
29
29
|
id: `google-${font.importName}`,
|
|
30
30
|
fontFamily: font.fontFamily,
|
|
@@ -67,7 +67,7 @@ const triggerStyle = {
|
|
|
67
67
|
borderWidth: 1,
|
|
68
68
|
borderStyle: 'solid',
|
|
69
69
|
maxWidth: 140,
|
|
70
|
-
color:
|
|
70
|
+
color: colors_1.WHITE,
|
|
71
71
|
userSelect: 'none',
|
|
72
72
|
WebkitUserSelect: 'none',
|
|
73
73
|
};
|
|
@@ -83,17 +83,17 @@ const popover = {
|
|
|
83
83
|
position: 'fixed',
|
|
84
84
|
width: POPOVER_WIDTH,
|
|
85
85
|
backgroundColor: colors_1.BACKGROUND,
|
|
86
|
-
color:
|
|
86
|
+
color: colors_1.WHITE,
|
|
87
87
|
userSelect: 'none',
|
|
88
88
|
WebkitUserSelect: 'none',
|
|
89
|
-
border:
|
|
89
|
+
border: `1px solid ${colors_1.WHITE_ALPHA_08}`,
|
|
90
90
|
};
|
|
91
91
|
const searchInput = {
|
|
92
92
|
boxSizing: 'border-box',
|
|
93
93
|
width: '100%',
|
|
94
94
|
backgroundColor: colors_1.INPUT_BACKGROUND,
|
|
95
|
-
border:
|
|
96
|
-
color:
|
|
95
|
+
border: colors_1.BORDER_WHITE_ALPHA_12,
|
|
96
|
+
color: colors_1.WHITE,
|
|
97
97
|
fontSize: 12,
|
|
98
98
|
outline: 'none',
|
|
99
99
|
padding: '6px 8px',
|
|
@@ -113,8 +113,8 @@ const optionButton = {
|
|
|
113
113
|
height: ROW_HEIGHT,
|
|
114
114
|
width: '100%',
|
|
115
115
|
border: 'none',
|
|
116
|
-
background:
|
|
117
|
-
color:
|
|
116
|
+
background: colors_1.TRANSPARENT,
|
|
117
|
+
color: colors_1.WHITE,
|
|
118
118
|
display: 'flex',
|
|
119
119
|
alignItems: 'center',
|
|
120
120
|
padding: '0 8px',
|
|
@@ -136,7 +136,7 @@ const optionSource = {
|
|
|
136
136
|
};
|
|
137
137
|
const errorText = {
|
|
138
138
|
padding: '6px 8px',
|
|
139
|
-
color:
|
|
139
|
+
color: colors_1.FONT_FAMILY_ERROR_COLOR,
|
|
140
140
|
fontSize: 10,
|
|
141
141
|
};
|
|
142
142
|
const portalStyle = ({ size, }) => {
|
|
@@ -495,7 +495,7 @@ const TimelineFontFamilyField = ({ field, propStatus, effectiveValue, onSave, on
|
|
|
495
495
|
}, [hovered, opened]);
|
|
496
496
|
const selectedPreviewStyle = getOptionPreviewStyle(selected);
|
|
497
497
|
return (jsx_runtime_1.jsxs(jsx_runtime_1.Fragment, { children: [
|
|
498
|
-
jsx_runtime_1.jsxs("button", { ref: buttonRef,
|
|
498
|
+
jsx_runtime_1.jsxs("button", { ref: buttonRef, "aria-label": field.key, tabIndex: tabIndex, type: "button", style: style, className: is_menu_item_1.MENU_INITIATOR_CLASSNAME, onPointerDown: (event) => {
|
|
499
499
|
event.stopPropagation();
|
|
500
500
|
toggleOpened();
|
|
501
501
|
}, onClick: (event) => {
|
|
@@ -504,7 +504,7 @@ const TimelineFontFamilyField = ({ field, propStatus, effectiveValue, onSave, on
|
|
|
504
504
|
toggleOpened();
|
|
505
505
|
}
|
|
506
506
|
}, onMouseEnter: () => setHovered(true), onMouseLeave: () => setHovered(false), children: [
|
|
507
|
-
jsx_runtime_1.jsx("div", {
|
|
507
|
+
jsx_runtime_1.jsx("div", { role: "group", "aria-label": selected.label, style: { ...triggerLabel, ...selectedPreviewStyle }, children: selected.label }), jsx_runtime_1.jsx(layout_1.Spacing, { x: 0.5 }), jsx_runtime_1.jsx(caret_1.CaretDown, { small: true })
|
|
508
508
|
] }), saveError === null ? null : jsx_runtime_1.jsx("div", { style: errorText, children: saveError }), opened && size
|
|
509
509
|
? react_dom_1.default.createPortal(jsx_runtime_1.jsx("div", { style: styles_1.fullScreenOverlay, onPointerDown: (event) => event.stopPropagation(), children: jsx_runtime_1.jsx("div", { style: styles_1.outerPortal, className: "css-reset", children: jsx_runtime_1.jsx(z_index_1.HigherZIndex, { onOutsideClick: hide, onEscape: hide, children: jsx_runtime_1.jsxs("div", { style: portalStyle({ size }), children: [
|
|
510
510
|
jsx_runtime_1.jsx("div", { style: { padding: 6 }, children: jsx_runtime_1.jsx("input", { ref: inputRef, value: query, onChange: (event) => setQuery(event.target.value), onKeyDown: onKeyDown, placeholder: "Search fonts", style: searchInput }) }), filteredOptions.length === 0 ? (jsx_runtime_1.jsx("div", { style: noResults, children: "No fonts found" })) : (jsx_runtime_1.jsxs("div", { ref: listRef, style: listStyle, className: is_menu_item_1.VERTICAL_SCROLLBAR_CLASSNAME, onScroll: (event) => {
|
|
@@ -520,7 +520,7 @@ const TimelineFontFamilyField = ({ field, propStatus, effectiveValue, onSave, on
|
|
|
520
520
|
? CLEAR_HOVER
|
|
521
521
|
: isSelected
|
|
522
522
|
? colors_1.SELECTED_BACKGROUND
|
|
523
|
-
:
|
|
523
|
+
: colors_1.TRANSPARENT,
|
|
524
524
|
}, onPointerEnter: () => setHighlightedIndex(actualIndex), onPointerDown: (event) => {
|
|
525
525
|
event.preventDefault();
|
|
526
526
|
event.stopPropagation();
|
|
@@ -41,7 +41,7 @@ const TimelineFontWeightField = ({ field, propStatus, effectiveValue, onSave, on
|
|
|
41
41
|
return (jsx_runtime_1.jsx(TimelineNumberField_1.TimelineNumberField, { effectiveValue: currentValue, field: field, onDragEnd: onDragEnd, onDragValueChange: onDragValueChange, onSave: onSave, propStatus: propStatus }));
|
|
42
42
|
}
|
|
43
43
|
if (FONT_WEIGHT_KEYWORDS.includes(sourceValue)) {
|
|
44
|
-
return (jsx_runtime_1.jsx(ComboBox_1.Combobox, { size: "small",
|
|
44
|
+
return (jsx_runtime_1.jsx(ComboBox_1.Combobox, { size: "small", "aria-label": field.key, selectedId: String(currentValue), values: keywordItems }));
|
|
45
45
|
}
|
|
46
46
|
return (jsx_runtime_1.jsx(RemInput_1.RemotionInput, { status: "ok", rightAlign: false, small: true, defaultValue: String(currentValue !== null && currentValue !== void 0 ? currentValue : ''), onBlur: (event) => {
|
|
47
47
|
const newValue = event.currentTarget.value;
|
|
@@ -21,6 +21,7 @@ export declare const TimelineKeyframeControls: React.FC<{
|
|
|
21
21
|
readonly nodePath: SequencePropsSubscriptionKey;
|
|
22
22
|
readonly fileName: string;
|
|
23
23
|
readonly keyframeDisplayOffset: number;
|
|
24
|
+
readonly keyframePlaybackRate: number;
|
|
24
25
|
readonly defaultValue: unknown;
|
|
25
26
|
readonly dragOverrideValue: DragOverrideValue | undefined;
|
|
26
27
|
readonly schema: InteractivitySchema;
|