@remotion/studio 4.0.526 → 4.0.528
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/AgentPrompt.js +1 -2
- package/dist/components/AudioWaveform.d.ts +1 -0
- package/dist/components/AudioWaveform.js +10 -14
- package/dist/components/Canvas.js +88 -26
- package/dist/components/CanvasCaptureDropHandler.js +63 -0
- package/dist/components/CanvasOrLoading.js +10 -2
- package/dist/components/CodeFrame.js +1 -1
- package/dist/components/ColorPicker/checker.d.ts +1 -1
- package/dist/components/CompositionSelectorItem.js +1 -0
- package/dist/components/CurrentAsset.js +4 -2
- package/dist/components/EditorRuler/Ruler.js +6 -3
- package/dist/components/EffectPickerModal.js +69 -43
- package/dist/components/ElementInstallConfirmation.js +3 -3
- package/dist/components/ElementLibrariesSettings.d.ts +2 -0
- package/dist/components/ElementLibrariesSettings.js +200 -0
- package/dist/components/InitialCompositionLoader.js +4 -2
- package/dist/components/InlineDropdown.js +26 -2
- package/dist/components/InlineEditableTitle.js +1 -0
- package/dist/components/InspectorOpenInEditor.js +13 -0
- package/dist/components/InspectorPanel/AlignmentControls.js +28 -9
- package/dist/components/InspectorPanel/CollapsibleInspectorSectionHeader.js +2 -1
- package/dist/components/InspectorPanel/CompositionInspector.js +3 -3
- package/dist/components/InspectorPanel/CompositionMetadata.js +4 -0
- package/dist/components/InspectorPanel/EasingInspector.js +6 -2
- package/dist/components/InspectorPanel/ElementLibraryButton.js +2 -1
- package/dist/components/InspectorPanel/KeyframeEasingNavigator.js +1 -1
- package/dist/components/InspectorPanel/KeyframeInspector.js +28 -24
- package/dist/components/InspectorPanel/MultiSequenceInspector.js +32 -1
- package/dist/components/InspectorPanel/MultiSequenceNumberField.js +1 -1
- package/dist/components/InspectorPanel/SequenceInspectorHeader.d.ts +3 -1
- package/dist/components/InspectorPanel/SequenceSelectionInspector.js +70 -2
- package/dist/components/InspectorPanel/SequenceWrapAction.d.ts +8 -0
- package/dist/components/InspectorPanel/SequenceWrapAction.js +151 -0
- package/dist/components/InspectorPanel/common.js +1 -0
- package/dist/components/InspectorPanel/easing-inspector-selection.d.ts +2 -1
- package/dist/components/InspectorPanel/easing-inspector-selection.js +4 -3
- package/dist/components/InspectorPanel/keyframe-inspector-frame.d.ts +2 -1
- package/dist/components/InspectorPanel/keyframe-inspector-frame.js +2 -2
- package/dist/components/InspectorPanel/styles.js +2 -0
- package/dist/components/InspectorPanel/use-composition-actions.js +1 -0
- package/dist/components/InspectorSequenceSection.d.ts +1 -0
- package/dist/components/InspectorSequenceSection.js +7 -5
- package/dist/components/InspectorSourceLocation.js +3 -0
- package/dist/components/KeyboardShortcutsSettings.js +1 -1
- package/dist/components/Menu/styles.d.ts +2 -2
- package/dist/components/MenuBuildIndicator.js +1 -0
- package/dist/components/Modals.js +7 -6
- package/dist/components/ModelManager.js +10 -9
- package/dist/components/NewComposition/CancelButton.js +11 -5
- package/dist/components/NewComposition/InputDragger.d.ts +3 -1
- package/dist/components/NewComposition/InputDragger.js +28 -9
- package/dist/components/NewComposition/NewComposition.js +7 -6
- package/dist/components/NewComposition/RemInput.d.ts +1 -1
- package/dist/components/NewComposition/menu-typeahead.js +1 -1
- package/dist/components/Preview.js +4 -0
- package/dist/components/QuickSwitcher/ExplorerQuickSwitcherTrigger.js +1 -0
- package/dist/components/QuickSwitcher/QuickSwitcherContent.js +1 -0
- package/dist/components/RadioButton.js +1 -0
- package/dist/components/RenderModal/DataEditor.js +4 -1
- package/dist/components/RenderModal/SchemaEditor/create-zod-values.js +1 -2
- package/dist/components/RenderModal/WebRenderModalPicture.js +1 -2
- package/dist/components/RenderQueue/CaptionQueueItem.js +19 -7
- package/dist/components/RenderQueue/CaptionQueueProcessor.js +65 -15
- package/dist/components/RenderQueue/QueueJobError.d.ts +8 -0
- package/dist/components/RenderQueue/QueueJobError.js +24 -0
- package/dist/components/RenderQueue/QueueJobErrorModal.d.ts +8 -0
- package/dist/components/RenderQueue/QueueJobErrorModal.js +63 -0
- package/dist/components/RenderQueue/RenderQueueItemCancelButton.d.ts +3 -1
- package/dist/components/RenderQueue/RenderQueueItemCancelButton.js +11 -4
- package/dist/components/RenderQueue/RenderQueueRepeat.d.ts +3 -1
- package/dist/components/RenderQueue/RenderQueueRepeat.js +20 -3
- package/dist/components/RenderQueue/VideoMattingQueueItem.js +25 -27
- package/dist/components/RenderQueue/VideoMattingQueueProcessor.js +68 -28
- package/dist/components/RenderQueue/caption-job-types.d.ts +9 -1
- package/dist/components/RenderQueue/context.d.ts +4 -0
- package/dist/components/RenderQueue/context.js +58 -8
- package/dist/components/RenderQueue/index.js +3 -3
- package/dist/components/RenderQueue/load-model-for-job.d.ts +2 -1
- package/dist/components/RenderQueue/load-model-for-job.js +5 -1
- package/dist/components/RenderQueue/video-matting-job-types.d.ts +13 -6
- package/dist/components/RendersTab.js +2 -0
- package/dist/components/SelectedOutlineCropControls.js +2 -1
- package/dist/components/SelectedOutlineEditingHandles.js +9 -2
- package/dist/components/SelectedOutlineElement.js +9 -3
- package/dist/components/SelectedOutlineKeyboardControls.d.ts +2 -4
- package/dist/components/SelectedOutlineKeyboardControls.js +4 -22
- package/dist/components/SelectedOutlineOverlay.js +152 -106
- package/dist/components/SelectedOutlinePathPoints.d.ts +8 -0
- package/dist/components/SelectedOutlinePathPoints.js +433 -0
- package/dist/components/SelectedOutlinePolygon.js +21 -46
- package/dist/components/SelectedOutlineRenderer.d.ts +3 -5
- package/dist/components/SelectedOutlineRenderer.js +32 -136
- package/dist/components/SelectedOutlineSnapIndicators.d.ts +6 -0
- package/dist/components/SelectedOutlineSnapIndicators.js +16 -12
- package/dist/components/SelectedOutlineTransformOriginHandle.js +3 -2
- package/dist/components/SelectedOutlineUvControls.js +12 -7
- package/dist/components/SequencePropsSubscriptionProvider.d.ts +3 -0
- package/dist/components/SequencePropsSubscriptionProvider.js +8 -6
- package/dist/components/SettingsModal.js +30 -3
- package/dist/components/SettingsModalFooter.d.ts +1 -0
- package/dist/components/SettingsModalFooter.js +7 -3
- package/dist/components/ShowOutlinesProvider.js +1 -1
- package/dist/components/SkillsSettings.d.ts +0 -1
- package/dist/components/SkillsSettings.js +13 -14
- package/dist/components/Splitter/SplitterElement.js +1 -2
- package/dist/components/TimeValue.js +1 -1
- package/dist/components/Timeline/LoopedTimelineIndicators.d.ts +1 -0
- package/dist/components/Timeline/LoopedTimelineIndicators.js +7 -6
- package/dist/components/Timeline/TimelineArrayField.js +1 -1
- package/dist/components/Timeline/TimelineClipboardKeybindings.js +0 -1
- package/dist/components/Timeline/TimelineColorField.js +1 -1
- package/dist/components/Timeline/TimelineDeleteKeybindings.js +6 -9
- package/dist/components/Timeline/TimelineDragHandler.js +1 -1
- package/dist/components/Timeline/TimelineEffectItem.js +1 -0
- package/dist/components/Timeline/TimelineEffectPropItem.d.ts +1 -0
- package/dist/components/Timeline/TimelineEffectPropItem.js +12 -5
- package/dist/components/Timeline/TimelineExpandArrowButton.js +1 -0
- package/dist/components/Timeline/TimelineExpandedRow.d.ts +1 -0
- package/dist/components/Timeline/TimelineExpandedRow.js +6 -4
- package/dist/components/Timeline/TimelineExpandedSection.d.ts +1 -0
- package/dist/components/Timeline/TimelineExpandedSection.js +2 -2
- package/dist/components/Timeline/TimelineExpandedTrackKeyframes.d.ts +1 -0
- package/dist/components/Timeline/TimelineExpandedTrackKeyframes.js +3 -1
- package/dist/components/Timeline/TimelineFieldLabel.js +1 -0
- package/dist/components/Timeline/TimelineFontFamilyField.js +12 -12
- package/dist/components/Timeline/TimelineKeyframeControls.d.ts +1 -0
- package/dist/components/Timeline/TimelineKeyframeControls.js +40 -28
- package/dist/components/Timeline/TimelineLayerChildren.js +1 -1
- package/dist/components/Timeline/TimelineList.js +1 -1
- package/dist/components/Timeline/TimelineNumberField.js +2 -4
- package/dist/components/Timeline/TimelinePrimitiveFieldValue.js +1 -1
- package/dist/components/Timeline/TimelineSelection.d.ts +9 -9
- package/dist/components/Timeline/TimelineSelection.js +16 -9
- package/dist/components/Timeline/TimelineSequence.d.ts +3 -1
- package/dist/components/Timeline/TimelineSequence.js +65 -21
- package/dist/components/Timeline/TimelineSequenceFrame.js +1 -0
- package/dist/components/Timeline/TimelineSequenceItem.d.ts +1 -0
- package/dist/components/Timeline/TimelineSequenceItem.js +46 -8
- package/dist/components/Timeline/TimelineSequencePropItem.d.ts +3 -0
- package/dist/components/Timeline/TimelineSequencePropItem.js +262 -25
- package/dist/components/Timeline/TimelineSequenceRightEdgeDragHandle.d.ts +11 -13
- package/dist/components/Timeline/TimelineSequenceRightEdgeDragHandle.js +98 -77
- package/dist/components/Timeline/TimelineTextContentField.js +27 -4
- package/dist/components/Timeline/TimelineTimeIndicators.js +10 -5
- package/dist/components/Timeline/TimelineTrack.js +1 -1
- package/dist/components/Timeline/TimelineTrimTooltip.d.ts +11 -0
- package/dist/components/Timeline/TimelineTrimTooltip.js +41 -0
- package/dist/components/Timeline/TimelineVideoInfo.d.ts +1 -0
- package/dist/components/Timeline/TimelineVideoInfo.js +13 -10
- package/dist/components/Timeline/TimelineViewport.d.ts +1 -0
- package/dist/components/Timeline/TimelineViewport.js +10 -1
- package/dist/components/Timeline/delete-selected-keyframe.js +22 -8
- package/dist/components/Timeline/delete-selected-timeline-item.d.ts +1 -5
- package/dist/components/Timeline/delete-selected-timeline-item.js +9 -95
- package/dist/components/Timeline/get-animation-item-selection-for-frame.d.ts +2 -1
- package/dist/components/Timeline/get-animation-item-selection-for-frame.js +7 -5
- package/dist/components/Timeline/get-keyframed-sequence-drag-targets.d.ts +23 -0
- package/dist/components/Timeline/get-keyframed-sequence-drag-targets.js +57 -0
- package/dist/components/Timeline/get-node-keyframes.d.ts +2 -1
- package/dist/components/Timeline/get-node-keyframes.js +6 -4
- package/dist/components/Timeline/get-playback-rate-keyframe-changes.d.ts +21 -0
- package/dist/components/Timeline/get-playback-rate-keyframe-changes.js +142 -0
- package/dist/components/Timeline/get-sequence-context-menu-items.d.ts +3 -1
- package/dist/components/Timeline/get-sequence-context-menu-items.js +13 -1
- package/dist/components/Timeline/get-timeline-keyframes.d.ts +15 -2
- package/dist/components/Timeline/get-timeline-keyframes.js +44 -6
- package/dist/components/Timeline/keyframe-clipboard.js +17 -3
- package/dist/components/Timeline/split-selected-timeline-item.d.ts +13 -10
- package/dist/components/Timeline/split-selected-timeline-item.js +61 -35
- package/dist/components/Timeline/timeline-field-display-utils.js +1 -0
- package/dist/components/Timeline/timeline-field-row-layout.js +1 -0
- package/dist/components/Timeline/use-delete-timeline-items.js +17 -11
- package/dist/components/Timeline/use-expanded-track-keyframe-rows.d.ts +2 -1
- package/dist/components/Timeline/use-expanded-track-keyframe-rows.js +3 -1
- package/dist/components/Timeline/use-sequence-freeze-frame-menu-item.js +7 -3
- package/dist/components/Timeline/use-timeline-keyframe-drag.js +28 -19
- package/dist/components/TimelineCombobox.js +1 -0
- package/dist/components/Transcription/Models.js +1 -1
- package/dist/components/Transcription/TranscriptionModal.js +18 -11
- package/dist/components/Transcription/TranscriptionModalWithOptionalWhisper.js +1 -1
- package/dist/components/Transcription/resample-media-to-16-khz.d.ts +2 -1
- package/dist/components/Transcription/resample-media-to-16-khz.js +20 -2
- package/dist/components/UpdatesSettings.js +2 -0
- package/dist/components/VideoMatting/Models.js +1 -1
- package/dist/components/VideoMatting/VideoMattingModal.js +30 -47
- package/dist/components/VideoMatting/VideoMattingModalWithOptionalPackage.js +1 -1
- package/dist/components/WebMcp.js +23 -40
- package/dist/components/composition-drop-preview.d.ts +9 -2
- package/dist/components/composition-drop-preview.js +8 -4
- package/dist/components/composition-menu-items.js +4 -4
- package/dist/components/delete-jsx-nodes-api.d.ts +2 -0
- package/dist/components/{delete-jsx-node-api.js → delete-jsx-nodes-api.js} +5 -5
- package/dist/components/effect-drag-and-drop.d.ts +13 -5
- package/dist/components/effect-drag-and-drop.js +19 -4
- package/dist/components/get-open-in-menu-items.d.ts +2 -1
- package/dist/components/get-open-in-menu-items.js +24 -8
- package/dist/components/keyboard-shortcuts.d.ts +4 -4
- package/dist/components/keyboard-shortcuts.js +3 -1
- package/dist/components/public-output-name.d.ts +1 -0
- package/dist/components/public-output-name.js +7 -3
- package/dist/components/selected-outline-drag.d.ts +1 -6
- package/dist/components/selected-outline-drag.js +22 -6
- package/dist/components/selected-outline-geometry.d.ts +2 -18
- package/dist/components/selected-outline-measurement.d.ts +23 -41
- package/dist/components/selected-outline-measurement.js +14 -252
- package/dist/components/selected-outline-order.d.ts +4 -11
- package/dist/components/selected-outline-order.js +2 -254
- package/dist/components/selected-outline-snap.d.ts +1 -1
- package/dist/components/selected-outline-snap.js +2 -1
- package/dist/components/selected-outline-types.d.ts +18 -28
- package/dist/components/selected-outline-uv.d.ts +4 -4
- package/dist/components/selected-outline-uv.js +6 -111
- package/dist/components/sequence-props-api.js +0 -10
- package/dist/components/use-selected-outline-control-target.js +12 -21
- package/dist/components/wrap-jsx-node-api.d.ts +2 -0
- package/dist/components/wrap-jsx-node-api.js +13 -0
- package/dist/error-overlay/remotion-overlay/OpenInEditor.js +45 -2
- package/dist/error-overlay/remotion-overlay/StackFrame.js +32 -3
- package/dist/esm/{CaptionQueueProcessor-k0yrm3dj.mjs → CaptionQueueProcessor-nr7hjcga.mjs} +96 -19
- package/dist/esm/LazyModels-ajkn7fs3.mjs +12 -0
- package/dist/esm/LazyModels-g1g7cf4e.mjs +12 -0
- package/dist/esm/{TranscriptionModal-ymnx1c7m.mjs → TranscriptionModal-e18bzbkb.mjs} +30 -22
- package/dist/esm/{VideoMattingModal-05vpczks.mjs → VideoMattingModal-5bz2s4rs.mjs} +47 -62
- package/dist/esm/{VideoMattingQueueProcessor-t1hgm2rm.mjs → VideoMattingQueueProcessor-4tkj0f4k.mjs} +69 -26
- package/dist/esm/{index-v4tr1bft.mjs → index-09txs1bj.mjs} +5 -0
- package/dist/esm/{index-4dsz9035.mjs → index-5ycb9e9q.mjs} +2 -4
- package/dist/esm/index-890dd9b3.mjs +768 -0
- package/dist/esm/{index-5bfxbpca.mjs → index-8nt6a0mw.mjs} +3 -3
- package/dist/esm/{index-5gd8k9yv.mjs → index-9q9w8v9p.mjs} +3 -3
- package/dist/esm/{index-x40wwfmt.mjs → index-c2wabcdt.mjs} +8 -6
- package/dist/esm/index-dfy1t576.mjs +129 -0
- package/dist/esm/index-dh3zk2hv.mjs +220 -0
- package/dist/esm/{index-0gewwxse.mjs → index-dpyss74p.mjs} +6179 -5011
- package/dist/esm/{index-9x6e1dq0.mjs → index-hqxc6tzp.mjs} +40 -6
- package/dist/esm/{index-cdy8v54v.mjs → index-qve7mdfp.mjs} +36 -539
- package/dist/esm/{index-eb5txqp6.mjs → index-s6qya2gg.mjs} +8 -88
- package/dist/esm/index-t7tbt980.mjs +103 -0
- package/dist/esm/{index-g7k2dvar.mjs → index-t7xnxdf8.mjs} +44 -26
- package/dist/esm/index-wqc43mw0.mjs +158 -0
- package/dist/esm/{index-bs39wngg.mjs → index-x6r9bn12.mjs} +5623 -6218
- package/dist/esm/{index-f97r9e2g.mjs → index-xac20sv4.mjs} +46 -57
- package/dist/esm/index.mjs +4 -4
- package/dist/esm/internals.mjs +13 -10
- package/dist/esm/previewEntry.mjs +18 -12
- package/dist/esm/renderEntry.mjs +5 -1
- package/dist/esm/{resolve-composition-component-location-bt2d6qxq.mjs → resolve-composition-component-location-2hgf6g0a.mjs} +1 -1
- package/dist/helpers/calculate-timeline.d.ts +5 -1
- package/dist/helpers/calculate-timeline.js +1 -1
- package/dist/helpers/checkerboard-background.d.ts +2 -2
- package/dist/helpers/colors.d.ts +132 -112
- package/dist/helpers/colors.js +117 -95
- package/dist/helpers/copy-text.js +1 -16
- package/dist/helpers/create-folder-tree.js +2 -1
- package/dist/helpers/editor-guide-selection.d.ts +1 -1
- package/dist/helpers/editor-ruler.js +23 -12
- package/dist/helpers/get-connected-compositions.d.ts +6 -1
- package/dist/helpers/get-connected-compositions.js +1 -1
- package/dist/helpers/get-sequence-double-click-action.js +1 -1
- package/dist/helpers/get-sequence-visible-range.d.ts +1 -1
- package/dist/helpers/get-sequence-visible-range.js +2 -5
- package/dist/helpers/get-timeline-nestedness.d.ts +1 -1
- package/dist/helpers/get-timeline-nestedness.js +1 -1
- package/dist/helpers/get-timeline-sequence-sort-key.d.ts +1 -1
- package/dist/helpers/get-timeline-sequence-sort-key.js +1 -1
- package/dist/helpers/hoverable.js +6 -5
- package/dist/helpers/inject-css.js +5 -7
- package/dist/helpers/open-in-editor.js +1 -1
- package/dist/helpers/prism-vsc-dark-plus.d.ts +1 -1
- package/dist/helpers/prism-vsc-dark-plus.js +52 -51
- package/dist/helpers/resolve-studio-color.d.ts +1 -0
- package/dist/helpers/resolve-studio-color.js +11 -0
- package/dist/helpers/studio-css-variables.d.ts +1 -0
- package/dist/helpers/studio-css-variables.js +105 -0
- package/dist/helpers/studio-pixel-ratio.d.ts +1 -0
- package/dist/helpers/studio-pixel-ratio.js +7 -0
- package/dist/helpers/studio-runtime-config.d.ts +1 -1
- package/dist/helpers/timeline-node-path-key.d.ts +1 -1
- package/dist/helpers/timeline-node-path-key.js +2 -2
- package/dist/helpers/use-keybinding.d.ts +1 -1
- package/dist/helpers/use-keyboard-shortcut-label.d.ts +2 -2
- package/dist/helpers/use-menu-structure.js +15 -9
- package/dist/helpers/use-runtime-values.js +2 -28
- package/dist/hot-middleware-client/client.js +5 -3
- package/dist/icons/align-center-horizontal.js +2 -1
- package/dist/icons/align-left.js +2 -1
- package/dist/icons/align-right.js +2 -1
- package/dist/icons/{separation.d.ts → background-removal.d.ts} +1 -1
- package/dist/icons/background-removal.js +9 -0
- package/dist/icons/wrap.d.ts +4 -0
- package/dist/icons/wrap.js +10 -0
- package/dist/previewEntry.js +2 -0
- package/dist/renderEntry.js +2 -0
- package/dist/state/modals.d.ts +20 -1
- package/dist/state/timeline-sequence-hover.d.ts +6 -16
- package/dist/state/timeline-sequence-hover.js +6 -67
- package/dist/state/timeline-zoom.js +4 -0
- package/package.json +20 -19
- package/dist/components/Timeline/get-easing-selection-after-keyframe-delete.d.ts +0 -15
- package/dist/components/Timeline/get-easing-selection-after-keyframe-delete.js +0 -31
- package/dist/components/delete-jsx-node-api.d.ts +0 -2
- package/dist/esm/LazyModels-mtggyjye.mjs +0 -11
- package/dist/esm/LazyModels-nk7py0zt.mjs +0 -11
- package/dist/esm/index-cw0pnpg5.mjs +0 -50
- package/dist/esm/index-k426ye99.mjs +0 -139
- package/dist/helpers/get-box-quads-polyfill-internals.d.ts +0 -82
- package/dist/helpers/get-box-quads-polyfill-internals.js +0 -2403
- package/dist/helpers/get-box-quads-ponyfill.d.ts +0 -10
- package/dist/helpers/get-box-quads-ponyfill.js +0 -23
- package/dist/icons/separation.js +0 -7
|
@@ -10,7 +10,9 @@ const use_copy_feedback_1 = require("../helpers/use-copy-feedback");
|
|
|
10
10
|
const check_circle_filled_1 = require("../icons/check-circle-filled");
|
|
11
11
|
const cloud_download_1 = require("../icons/cloud-download");
|
|
12
12
|
const copy_1 = require("../icons/copy");
|
|
13
|
+
const skills_1 = require("../icons/skills");
|
|
13
14
|
const trash_1 = require("../icons/trash");
|
|
15
|
+
const ActionTooltip_1 = require("./ActionTooltip");
|
|
14
16
|
const InlineAction_1 = require("./InlineAction");
|
|
15
17
|
const ValidationMessage_1 = require("./NewComposition/ValidationMessage");
|
|
16
18
|
const NotificationCenter_1 = require("./Notifications/NotificationCenter");
|
|
@@ -33,7 +35,7 @@ const description = {
|
|
|
33
35
|
};
|
|
34
36
|
const commandField = {
|
|
35
37
|
alignItems: 'center',
|
|
36
|
-
backgroundColor:
|
|
38
|
+
backgroundColor: colors_1.BLACK_ALPHA_22,
|
|
37
39
|
borderRadius: 4,
|
|
38
40
|
display: 'flex',
|
|
39
41
|
marginTop: 8,
|
|
@@ -59,15 +61,14 @@ const list = {
|
|
|
59
61
|
};
|
|
60
62
|
const skillRow = {
|
|
61
63
|
alignItems: 'center',
|
|
62
|
-
borderBottom: colors_1.BORDER_WHITE_ALPHA_12,
|
|
63
64
|
display: 'flex',
|
|
64
65
|
gap: 10,
|
|
65
66
|
minHeight: 38,
|
|
66
|
-
padding: '0 10px',
|
|
67
67
|
};
|
|
68
|
-
const
|
|
69
|
-
|
|
70
|
-
|
|
68
|
+
const skillIcon = {
|
|
69
|
+
flexShrink: 0,
|
|
70
|
+
height: 16,
|
|
71
|
+
width: 16,
|
|
71
72
|
};
|
|
72
73
|
const statusIcon = {
|
|
73
74
|
flexShrink: 0,
|
|
@@ -75,7 +76,7 @@ const statusIcon = {
|
|
|
75
76
|
width: 14,
|
|
76
77
|
};
|
|
77
78
|
const skillName = {
|
|
78
|
-
color: colors_1.
|
|
79
|
+
color: colors_1.LIGHT_TEXT,
|
|
79
80
|
flex: 1,
|
|
80
81
|
fontFamily: 'monospace',
|
|
81
82
|
fontSize: 13,
|
|
@@ -107,7 +108,7 @@ const loading = {
|
|
|
107
108
|
...description,
|
|
108
109
|
marginTop: 14,
|
|
109
110
|
};
|
|
110
|
-
const SkillSettingsRow = ({
|
|
111
|
+
const SkillSettingsRow = ({ skill }) => {
|
|
111
112
|
const { installSkill, removeSkill, skillAction } = (0, SettingsContext_1.useSettings)();
|
|
112
113
|
const { previewServerState } = (0, react_1.useContext)(client_id_1.StudioServerConnectionCtx);
|
|
113
114
|
const canInstall = !window.remotion_isReadOnlyStudio &&
|
|
@@ -127,10 +128,8 @@ const SkillSettingsRow = ({ isLast, skill }) => {
|
|
|
127
128
|
const renderRemoveAction = (0, react_1.useCallback)((color) => {
|
|
128
129
|
return jsx_runtime_1.jsx(trash_1.TrashIcon, { color: color, style: actionIcon });
|
|
129
130
|
}, []);
|
|
130
|
-
return (jsx_runtime_1.jsxs("div", { role: "listitem", style:
|
|
131
|
-
jsx_runtime_1.jsxs("span", { style: skillName, children: ["/", skill.name] }), processingThisSkill ? (jsx_runtime_1.jsx("span", { style: status, children: skillAction.type === 'installing' ? 'Installing…' : 'Removing…' })) : installedLocation ? (jsx_runtime_1.jsx("span", { style: status, children: installedLocation })) : null, installed ? (jsx_runtime_1.jsx(check_circle_filled_1.CheckCircleFilled, { "aria-hidden": true, style: { ...statusIcon, fill: colors_1.BLUE } })) : null, processingThisSkill ? (jsx_runtime_1.jsx("span", { style: actionSlot, children: jsx_runtime_1.jsx(Spinner_1.Spinner, { duration: 0.5, size: 14 }) })) : installed && canInstall ? (jsx_runtime_1.jsx(InlineAction_1.InlineAction, { title: skill.
|
|
132
|
-
? `Remove ${skill.name} from this project`
|
|
133
|
-
: `Remove ${skill.name} globally`, disabled: skillAction !== null, onClick: () => removeSkill(skill.name), renderAction: renderRemoveAction, variant: null })) : canInstall ? (jsx_runtime_1.jsx(InlineAction_1.InlineAction, { title: `Install ${skill.name} in this project`, disabled: skillAction !== null, onClick: () => installSkill(skill.name), renderAction: renderInstallAction, variant: null })) : null] }));
|
|
131
|
+
return (jsx_runtime_1.jsxs("div", { role: "listitem", style: skillRow, children: [
|
|
132
|
+
jsx_runtime_1.jsx(skills_1.SkillsIcon, { "aria-hidden": true, color: colors_1.LIGHT_TEXT, style: skillIcon }), jsx_runtime_1.jsxs("span", { style: skillName, children: ["/", skill.name] }), processingThisSkill ? (jsx_runtime_1.jsx("span", { style: status, children: skillAction.type === 'installing' ? 'Installing…' : 'Removing…' })) : installedLocation ? (jsx_runtime_1.jsx("span", { style: status, children: installedLocation })) : null, installed ? (jsx_runtime_1.jsx(check_circle_filled_1.CheckCircleFilled, { "aria-hidden": true, style: { ...statusIcon, fill: colors_1.BLUE } })) : null, processingThisSkill ? (jsx_runtime_1.jsx("span", { style: actionSlot, children: jsx_runtime_1.jsx(Spinner_1.Spinner, { duration: 0.5, size: 14 }) })) : installed && canInstall ? (jsx_runtime_1.jsx(ActionTooltip_1.ActionTooltip, { label: "Uninstall", shortcut: null, delay: 800, dismissOnClick: true, children: jsx_runtime_1.jsx(InlineAction_1.InlineAction, { "aria-label": `Remove ${skill.name}`, title: "", disabled: skillAction !== null, onClick: () => removeSkill(skill.name), renderAction: renderRemoveAction, variant: null }) })) : canInstall ? (jsx_runtime_1.jsx(ActionTooltip_1.ActionTooltip, { label: "Install", shortcut: null, delay: 800, dismissOnClick: true, children: jsx_runtime_1.jsx(InlineAction_1.InlineAction, { "aria-label": `Install ${skill.name}`, title: "", disabled: skillAction !== null, onClick: () => installSkill(skill.name), renderAction: renderInstallAction, variant: null }) })) : null] }));
|
|
134
133
|
};
|
|
135
134
|
exports.SkillSettingsRow = SkillSettingsRow;
|
|
136
135
|
const SkillsSettings = () => {
|
|
@@ -159,8 +158,8 @@ const SkillsSettings = () => {
|
|
|
159
158
|
jsx_runtime_1.jsx("p", { style: description, children: "Not all skills are installed. Run this command in the project directory, then reload Studio and restart your coding agent." }), jsx_runtime_1.jsxs("div", { style: commandField, children: [
|
|
160
159
|
jsx_runtime_1.jsx("pre", { style: command, children: INSTALL_COMMAND }), jsx_runtime_1.jsx(InlineAction_1.InlineAction, { variant: null, onClick: onCopy, renderAction: renderCopyAction, title: "Copy install command" })
|
|
161
160
|
] })
|
|
162
|
-
] })) : null, remotionSkillsInfo ? (jsx_runtime_1.jsx("div", { style: list, role: "list", "aria-label": "Remotion Agent Skills", children: remotionSkillsInfo.skills.map((skill
|
|
163
|
-
return
|
|
161
|
+
] })) : null, remotionSkillsInfo ? (jsx_runtime_1.jsx("div", { style: list, role: "list", "aria-label": "Remotion Agent Skills", children: remotionSkillsInfo.skills.map((skill) => {
|
|
162
|
+
return jsx_runtime_1.jsx(exports.SkillSettingsRow, { skill: skill }, skill.name);
|
|
164
163
|
}) })) : null] }));
|
|
165
164
|
};
|
|
166
165
|
exports.SkillsSettings = SkillsSettings;
|
|
@@ -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: [
|
|
@@ -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)({
|
|
@@ -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',
|
|
@@ -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);
|
|
@@ -6,6 +6,7 @@ const remotion_1 = require("remotion");
|
|
|
6
6
|
const client_id_1 = require("../../helpers/client-id");
|
|
7
7
|
const use_keybinding_1 = require("../../helpers/use-keybinding");
|
|
8
8
|
const ConfirmationDialog_1 = require("../ConfirmationDialog");
|
|
9
|
+
const SequencePropsSubscriptionProvider_1 = require("../SequencePropsSubscriptionProvider");
|
|
9
10
|
const duplicate_selected_timeline_item_1 = require("./duplicate-selected-timeline-item");
|
|
10
11
|
const imperative_state_1 = require("./imperative-state");
|
|
11
12
|
const split_selected_timeline_item_1 = require("./split-selected-timeline-item");
|
|
@@ -15,7 +16,7 @@ const TimelineDeleteKeybindings = () => {
|
|
|
15
16
|
const keybindings = (0, use_keybinding_1.useKeybinding)();
|
|
16
17
|
const { previewServerState } = (0, react_1.useContext)(client_id_1.StudioServerConnectionCtx);
|
|
17
18
|
const sequencesRef = (0, react_1.useContext)(remotion_1.Internals.SequenceManagerRefContext);
|
|
18
|
-
const
|
|
19
|
+
const overrideIdToNodePathMappingsRef = (0, react_1.useContext)(SequencePropsSubscriptionProvider_1.OverrideIdToNodePathMappingsRefContext);
|
|
19
20
|
const propStatusesRef = (0, react_1.useContext)(remotion_1.Internals.VisualModePropStatusesRefContext);
|
|
20
21
|
const { canSelect } = (0, TimelineSelection_1.useTimelineSelection)();
|
|
21
22
|
const currentSelection = (0, TimelineSelection_1.useCurrentTimelineSelectionStateAsRef)();
|
|
@@ -56,11 +57,8 @@ const TimelineDeleteKeybindings = () => {
|
|
|
56
57
|
});
|
|
57
58
|
const split = keybindings.registerKeybinding({
|
|
58
59
|
event: 'keydown',
|
|
59
|
-
|
|
60
|
-
callback: (
|
|
61
|
-
if (!(0, split_selected_timeline_item_1.shouldHandleTimelineSplitShortcut)(event)) {
|
|
62
|
-
return;
|
|
63
|
-
}
|
|
60
|
+
action: 'splitSequences',
|
|
61
|
+
callback: () => {
|
|
64
62
|
const { selectedItems } = currentSelection.current;
|
|
65
63
|
if (selectedItems.length === 0) {
|
|
66
64
|
return;
|
|
@@ -68,7 +66,7 @@ const TimelineDeleteKeybindings = () => {
|
|
|
68
66
|
const splitPromise = (0, split_selected_timeline_item_1.splitSelectedTimelineItems)({
|
|
69
67
|
selections: selectedItems,
|
|
70
68
|
sequences: sequencesRef.current,
|
|
71
|
-
overrideIdsToNodePaths:
|
|
69
|
+
overrideIdsToNodePaths: overrideIdToNodePathMappingsRef.current,
|
|
72
70
|
propStatuses: propStatusesRef.current,
|
|
73
71
|
splitFrame: (0, imperative_state_1.getCurrentFrame)(),
|
|
74
72
|
});
|
|
@@ -77,7 +75,6 @@ const TimelineDeleteKeybindings = () => {
|
|
|
77
75
|
}
|
|
78
76
|
splitPromise.catch(() => undefined);
|
|
79
77
|
},
|
|
80
|
-
commandCtrlKey: true,
|
|
81
78
|
preventDefault: true,
|
|
82
79
|
triggerIfInputFieldFocused: false,
|
|
83
80
|
keepRegisteredWhenNotHighestContext: false,
|
|
@@ -93,7 +90,7 @@ const TimelineDeleteKeybindings = () => {
|
|
|
93
90
|
currentSelection,
|
|
94
91
|
deleteTimelineItems,
|
|
95
92
|
keybindings,
|
|
96
|
-
|
|
93
|
+
overrideIdToNodePathMappingsRef,
|
|
97
94
|
propStatusesRef,
|
|
98
95
|
previewServerState,
|
|
99
96
|
sequencesRef,
|
|
@@ -122,7 +122,7 @@ const TimelineDragHandlerInner = () => {
|
|
|
122
122
|
shouldApplyCssTransforms: true,
|
|
123
123
|
});
|
|
124
124
|
const { isHighestContext } = (0, z_index_1.useZIndex)();
|
|
125
|
-
const setFrame = remotion_1.Internals.
|
|
125
|
+
const setFrame = 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)({
|
|
@@ -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;
|
|
@@ -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>;
|
|
@@ -20,11 +20,13 @@ const rowLabel = {
|
|
|
20
20
|
fontSize: 12,
|
|
21
21
|
color: colors_1.WHITE_ALPHA_80,
|
|
22
22
|
userSelect: 'none',
|
|
23
|
+
WebkitUserSelect: 'none',
|
|
23
24
|
};
|
|
24
|
-
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, }) => {
|
|
25
26
|
const rowDepth = (rowDepthBase !== null && rowDepthBase !== void 0 ? rowDepthBase : (0, timeline_row_layout_1.getExpandedRowDepth)({ nestedDepth, treeDepth: 0 })) + depth;
|
|
26
27
|
const isInspector = keyframeControlsMode === 'inspector';
|
|
27
28
|
const selection = (0, TimelineSelection_1.useTimelineRowSelection)(node.nodePathInfo);
|
|
29
|
+
const containsSelection = (0, TimelineSelection_1.useTimelineRowContainsSelection)(node.nodePathInfo);
|
|
28
30
|
const labelStyle = react_1.default.useMemo(() => ({
|
|
29
31
|
...rowLabel,
|
|
30
32
|
...(0, TimelineSelection_1.getTimelineSelectedLabelStyle)(selection.selected, true),
|
|
@@ -46,14 +48,14 @@ const TimelineExpandedRowInner = ({ node, depth, nestedDepth, rowDepthBase, getI
|
|
|
46
48
|
const isExpanded = getIsExpanded(node.nodePathInfo);
|
|
47
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: {
|
|
48
50
|
height: timeline_layout_1.TREE_GROUP_ROW_HEIGHT,
|
|
49
|
-
}, 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 }) }));
|
|
50
52
|
}
|
|
51
53
|
if (node.field) {
|
|
52
54
|
if (node.field.kind === 'effect-field') {
|
|
53
|
-
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 }));
|
|
54
56
|
}
|
|
55
57
|
if (node.field.kind === 'sequence-field') {
|
|
56
|
-
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 }));
|
|
57
59
|
}
|
|
58
60
|
throw new Error('Unexpected field kind: ' + JSON.stringify(node.field));
|
|
59
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) &&
|
|
@@ -12,6 +12,7 @@ const fieldNameBase = {
|
|
|
12
12
|
lineHeight: `${timeline_field_row_layout_1.TIMELINE_STACKED_FIELD_HEADER_HEIGHT}px`,
|
|
13
13
|
color: colors_1.WHITE_ALPHA_80,
|
|
14
14
|
userSelect: 'none',
|
|
15
|
+
WebkitUserSelect: 'none',
|
|
15
16
|
whiteSpace: 'nowrap',
|
|
16
17
|
overflow: 'hidden',
|
|
17
18
|
textOverflow: 'ellipsis',
|
|
@@ -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, }) => {
|
|
@@ -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();
|
|
@@ -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;
|