@remotion/studio 4.0.485 → 4.0.486

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.
Files changed (238) hide show
  1. package/dist/ResolveCompositionConfigInStudio.js +42 -0
  2. package/dist/components/AssetSelector.js +1 -1
  3. package/dist/components/AssetSelectorItem.js +9 -9
  4. package/dist/components/AudioWaveform.js +3 -3
  5. package/dist/components/Button.js +2 -2
  6. package/dist/components/Canvas.js +28 -0
  7. package/dist/components/CanvasOrLoading.js +1 -1
  8. package/dist/components/CheckboardToggle.js +1 -1
  9. package/dist/components/Checkbox.js +3 -3
  10. package/dist/components/ColorPicker/AlphaSlider.js +4 -3
  11. package/dist/components/ColorPicker/ColorPicker.js +4 -4
  12. package/dist/components/ColorPicker/ColorPickerPopup.js +10 -10
  13. package/dist/components/ColorPicker/HueSlider.js +4 -3
  14. package/dist/components/ColorPicker/SaturationValueArea.js +5 -4
  15. package/dist/components/ColorPicker/checker.d.ts +1 -1
  16. package/dist/components/ColorPicker/checker.js +3 -3
  17. package/dist/components/CompactExplanation.js +3 -3
  18. package/dist/components/CompositionSelector.js +141 -5
  19. package/dist/components/CompositionSelectorItem.d.ts +1 -0
  20. package/dist/components/CompositionSelectorItem.js +103 -11
  21. package/dist/components/CopyButton.js +3 -2
  22. package/dist/components/CurrentAsset.d.ts +3 -1
  23. package/dist/components/CurrentAsset.js +15 -2
  24. package/dist/components/EffectPickerModal.js +1 -1
  25. package/dist/components/FilePreview.js +2 -1
  26. package/dist/components/FpsCounter.js +3 -2
  27. package/dist/components/FullscreenToggle.js +2 -1
  28. package/dist/components/GlobalKeybindings.js +0 -12
  29. package/dist/components/InlineAction.js +2 -2
  30. package/dist/components/InlineEditableTitle.d.ts +1 -0
  31. package/dist/components/InlineEditableTitle.js +12 -7
  32. package/dist/components/InspectorInfoHeader.js +2 -2
  33. package/dist/components/InspectorPanel/DefaultInspector.d.ts +1 -0
  34. package/dist/components/InspectorPanel/DefaultInspector.js +2 -2
  35. package/dist/components/InspectorPanel/KeyframeEasingNavigator.js +1 -1
  36. package/dist/components/InspectorPanel/common.js +2 -2
  37. package/dist/components/InspectorPanel/styles.js +3 -3
  38. package/dist/components/InspectorPanel.d.ts +1 -0
  39. package/dist/components/InspectorPanel.js +2 -2
  40. package/dist/components/InspectorSequenceSection.js +1 -1
  41. package/dist/components/InstallablePackage.js +1 -1
  42. package/dist/components/KeyboardShortcutsExplainer.js +5 -5
  43. package/dist/components/LoopToggle.js +1 -1
  44. package/dist/components/Menu/MenuDivider.js +1 -1
  45. package/dist/components/Menu/MenuItem.js +1 -1
  46. package/dist/components/Menu/MenuSubItem.js +1 -1
  47. package/dist/components/Menu/styles.js +3 -3
  48. package/dist/components/MenuToolbar.js +2 -2
  49. package/dist/components/ModalButton.js +1 -1
  50. package/dist/components/ModalContainer.js +3 -3
  51. package/dist/components/ModalFooter.js +2 -1
  52. package/dist/components/ModalHeader.js +3 -2
  53. package/dist/components/Modals.js +2 -1
  54. package/dist/components/NewComposition/CancelButton.js +4 -3
  55. package/dist/components/NewComposition/ComboBox.js +3 -3
  56. package/dist/components/NewComposition/InputDragger.js +11 -3
  57. package/dist/components/NewComposition/MenuContent.js +1 -1
  58. package/dist/components/NewComposition/NewComposition.js +4 -1
  59. package/dist/components/NewComposition/NewFolder.d.ts +5 -0
  60. package/dist/components/NewComposition/NewFolder.js +86 -0
  61. package/dist/components/NewComposition/RemInput.js +3 -3
  62. package/dist/components/NewComposition/RemTextarea.js +1 -1
  63. package/dist/components/NewComposition/RenameStaticFile.js +20 -59
  64. package/dist/components/NewComposition/ValidationMessage.js +1 -1
  65. package/dist/components/NewComposition/use-rename-static-file.d.ts +18 -0
  66. package/dist/components/NewComposition/use-rename-static-file.js +90 -0
  67. package/dist/components/NoRegisterRoot.js +3 -2
  68. package/dist/components/Notifications/ColorDot.js +3 -2
  69. package/dist/components/Notifications/Notification.js +4 -4
  70. package/dist/components/Notifications/NotificationCenter.js +2 -1
  71. package/dist/components/Notifications/ServerDisconnected.js +5 -4
  72. package/dist/components/OptionsPanel.js +1 -1
  73. package/dist/components/OutlineToggle.js +1 -1
  74. package/dist/components/PlayPause.js +4 -3
  75. package/dist/components/PreviewToolbar.js +1 -1
  76. package/dist/components/QuickSwitcher/AlgoliaCredit.js +2 -1
  77. package/dist/components/QuickSwitcher/QuickSwitcherContent.js +1 -1
  78. package/dist/components/QuickSwitcher/QuickSwitcherResult.js +2 -2
  79. package/dist/components/RefreshCompositionOverlay.js +2 -1
  80. package/dist/components/RenderButton.js +9 -9
  81. package/dist/components/RenderModal/CliCopyButton.js +1 -1
  82. package/dist/components/RenderModal/ClientRenderProgress.js +1 -1
  83. package/dist/components/RenderModal/DataEditor.js +1 -1
  84. package/dist/components/RenderModal/GuiRenderStatus.js +1 -1
  85. package/dist/components/RenderModal/InfoBubble.js +2 -2
  86. package/dist/components/RenderModal/InfoTooltip.js +3 -3
  87. package/dist/components/RenderModal/InlineEyeIcon.js +2 -1
  88. package/dist/components/RenderModal/InlineRemoveButton.js +2 -1
  89. package/dist/components/RenderModal/MultiRangeSlider.js +1 -1
  90. package/dist/components/RenderModal/OptionExplainer.js +2 -2
  91. package/dist/components/RenderModal/RenderModalHr.js +2 -1
  92. package/dist/components/RenderModal/RenderStatusModal.js +2 -1
  93. package/dist/components/RenderModal/SchemaEditor/SchemaLabel.js +1 -5
  94. package/dist/components/RenderModal/SchemaEditor/SchemaResetButton.js +2 -1
  95. package/dist/components/RenderModal/SchemaEditor/SchemaSeparationLine.js +1 -1
  96. package/dist/components/RenderModal/SchemaEditor/SchemaVerticalGuide.js +2 -1
  97. package/dist/components/RenderModal/SchemaEditor/ZodDateEditor.js +1 -1
  98. package/dist/components/RenderModal/SchemaEditor/ZodErrorMessages.js +1 -1
  99. package/dist/components/RenderModal/SchemaEditor/ZodNonEditableValue.js +1 -1
  100. package/dist/components/RenderModal/SchemaEditor/create-zod-values.js +2 -1
  101. package/dist/components/RenderModal/ServerRenderModal.js +1 -1
  102. package/dist/components/RenderModal/WarningIndicatorButton.js +4 -6
  103. package/dist/components/RenderModal/WebRenderModalAudio.js +4 -3
  104. package/dist/components/RenderModal/WebRenderModalLicense.js +2 -2
  105. package/dist/components/RenderModal/WebRenderModalPicture.js +2 -1
  106. package/dist/components/RenderModal/render-modals.js +3 -3
  107. package/dist/components/RenderPreview.js +1 -1
  108. package/dist/components/RenderQueue/RenderQueueCopyToClipboard.js +2 -1
  109. package/dist/components/RenderQueue/RenderQueueDownloadItem.js +2 -1
  110. package/dist/components/RenderQueue/RenderQueueItemCancelButton.js +2 -1
  111. package/dist/components/RenderQueue/RenderQueueItemStatus.js +1 -1
  112. package/dist/components/RenderQueue/RenderQueueOpenInFolder.js +2 -1
  113. package/dist/components/RenderQueue/RenderQueueRemoveItem.js +2 -1
  114. package/dist/components/RenderQueue/RenderQueueRepeat.js +2 -1
  115. package/dist/components/RenderQueue/index.js +1 -1
  116. package/dist/components/RendersTab.js +2 -2
  117. package/dist/components/SegmentedControl.js +3 -3
  118. package/dist/components/SelectedOutlineElement.d.ts +5 -0
  119. package/dist/components/SelectedOutlineElement.js +7 -7
  120. package/dist/components/SelectedOutlineOverlay.js +1 -1
  121. package/dist/components/SelectedOutlineUvControls.js +5 -5
  122. package/dist/components/SidebarCollapserControls.js +5 -4
  123. package/dist/components/Splitter/SplitterElement.js +2 -1
  124. package/dist/components/StaticFilePreview.js +1 -1
  125. package/dist/components/Tabs/index.js +3 -3
  126. package/dist/components/Tabs/vertical.js +3 -3
  127. package/dist/components/TextViewer.js +2 -1
  128. package/dist/components/TimeValue.js +1 -1
  129. package/dist/components/Timeline/EasingEditorModal.js +8 -8
  130. package/dist/components/Timeline/KeyframeSettingsModal.js +1 -1
  131. package/dist/components/Timeline/LoopedIndicator.js +2 -2
  132. package/dist/components/Timeline/MaxTimelineTracks.js +3 -2
  133. package/dist/components/Timeline/TimelineArrayField.js +6 -5
  134. package/dist/components/Timeline/TimelineColorField.js +2 -1
  135. package/dist/components/Timeline/TimelineEffectItem.js +3 -2
  136. package/dist/components/Timeline/TimelineEffectPropItem.js +2 -2
  137. package/dist/components/Timeline/TimelineExpandArrowButton.js +3 -2
  138. package/dist/components/Timeline/TimelineExpandedRow.js +2 -1
  139. package/dist/components/Timeline/TimelineExpandedSection.js +1 -1
  140. package/dist/components/Timeline/TimelineFieldLabel.js +2 -1
  141. package/dist/components/Timeline/TimelineFontFamilyField.d.ts +11 -0
  142. package/dist/components/Timeline/TimelineFontFamilyField.js +545 -0
  143. package/dist/components/Timeline/TimelineImageInfo.js +2 -1
  144. package/dist/components/Timeline/TimelineInOutPointer.js +2 -1
  145. package/dist/components/Timeline/TimelineInOutPointerHandle.js +2 -4
  146. package/dist/components/Timeline/TimelineKeyframeControls.js +2 -2
  147. package/dist/components/Timeline/TimelineKeyframeDiamondIcon.js +1 -1
  148. package/dist/components/Timeline/TimelineKeyframeEasingLine.js +1 -1
  149. package/dist/components/Timeline/TimelineLayerEye.js +3 -3
  150. package/dist/components/Timeline/TimelineMediaInfo.js +2 -2
  151. package/dist/components/Timeline/TimelinePrimitiveFieldValue.js +4 -0
  152. package/dist/components/Timeline/TimelineRotationField.js +4 -3
  153. package/dist/components/Timeline/TimelineScaleField.js +1 -1
  154. package/dist/components/Timeline/TimelineSchemaField.d.ts +2 -0
  155. package/dist/components/Timeline/TimelineSchemaField.js +47 -7
  156. package/dist/components/Timeline/TimelineScrollable.js +3 -2
  157. package/dist/components/Timeline/TimelineSelection.js +6 -6
  158. package/dist/components/Timeline/TimelineSequence.js +17 -20
  159. package/dist/components/Timeline/TimelineSequenceFrame.js +3 -2
  160. package/dist/components/Timeline/TimelineSequenceItem.js +8 -7
  161. package/dist/components/Timeline/TimelineSequenceName.js +3 -2
  162. package/dist/components/Timeline/TimelineSequencePropItem.js +2 -1
  163. package/dist/components/Timeline/TimelineSequenceRightEdgeDragHandle.d.ts +20 -1
  164. package/dist/components/Timeline/TimelineSequenceRightEdgeDragHandle.js +128 -11
  165. package/dist/components/Timeline/TimelineSlider.js +2 -1
  166. package/dist/components/Timeline/TimelineSliderHandle.js +2 -1
  167. package/dist/components/Timeline/TimelineTimeIndicators.js +1 -1
  168. package/dist/components/Timeline/TimelineVideoInfo.js +2 -1
  169. package/dist/components/Timeline/TimelineZoomControls.js +4 -3
  170. package/dist/components/Timeline/call-move-keyframe.d.ts +5 -0
  171. package/dist/components/Timeline/call-move-keyframe.js +14 -3
  172. package/dist/components/Timeline/google-fonts-list.d.ts +6 -0
  173. package/dist/components/Timeline/google-fonts-list.js +1512 -0
  174. package/dist/components/Timeline/save-sequence-prop.d.ts +8 -1
  175. package/dist/components/Timeline/save-sequence-prop.js +63 -19
  176. package/dist/components/Timeline/timeline-rotation-field-utils.d.ts +5 -0
  177. package/dist/components/Timeline/timeline-rotation-field-utils.js +16 -0
  178. package/dist/components/Timeline/timeline-scroll-logic.js +5 -2
  179. package/dist/components/TimelineInOutToggle.js +1 -1
  180. package/dist/components/UpdateCheck.js +2 -2
  181. package/dist/components/UpdateModal/OpenIssueButton.js +1 -1
  182. package/dist/components/VisualControls/ClickableFileName.js +2 -2
  183. package/dist/components/effect-drag-and-drop.js +1 -0
  184. package/dist/components/import-assets.d.ts +7 -1
  185. package/dist/components/import-assets.js +55 -1
  186. package/dist/components/selected-outline-measurement.js +2 -1
  187. package/dist/error-overlay/remotion-overlay/CalculateMetadataErrorExplainer.js +2 -2
  188. package/dist/error-overlay/remotion-overlay/CodeFrame.js +7 -5
  189. package/dist/error-overlay/remotion-overlay/CompositionIdListItem.js +2 -2
  190. package/dist/error-overlay/remotion-overlay/DismissButton.js +3 -2
  191. package/dist/error-overlay/remotion-overlay/ErrorLoader.js +3 -2
  192. package/dist/error-overlay/remotion-overlay/ErrorMessage.js +4 -4
  193. package/dist/error-overlay/remotion-overlay/HelpLink.js +1 -1
  194. package/dist/error-overlay/remotion-overlay/MediaPlaybackErrorExplainer.js +4 -4
  195. package/dist/error-overlay/remotion-overlay/Overlay.js +3 -2
  196. package/dist/error-overlay/remotion-overlay/StackFrame.js +4 -3
  197. package/dist/error-overlay/remotion-overlay/Symbolicating.js +2 -1
  198. package/dist/error-overlay/remotion-overlay/carets.js +3 -2
  199. package/dist/esm/{chunk-103pp4n7.js → chunk-975rp13y.js} +9143 -6061
  200. package/dist/esm/chunk-jefhcs5z.js +164 -0
  201. package/dist/esm/internals.mjs +9144 -6028
  202. package/dist/esm/previewEntry.mjs +8335 -5215
  203. package/dist/esm/renderEntry.mjs +8 -5
  204. package/dist/helpers/checkerboard-background.js +4 -12
  205. package/dist/helpers/colors.d.ts +99 -7
  206. package/dist/helpers/colors.js +118 -10
  207. package/dist/helpers/inject-css.js +85 -83
  208. package/dist/helpers/timeline-layout.d.ts +4 -2
  209. package/dist/helpers/use-menu-structure.js +31 -3
  210. package/dist/helpers/validate-folder-rename.js +2 -10
  211. package/dist/helpers/validate-new-folder-name.d.ts +5 -0
  212. package/dist/helpers/validate-new-folder-name.js +16 -0
  213. package/dist/hot-middleware-client/client.js +3 -2
  214. package/dist/icons/Checkmark.js +2 -1
  215. package/dist/icons/audio.js +2 -1
  216. package/dist/icons/caret.js +2 -2
  217. package/dist/icons/certificate.js +2 -1
  218. package/dist/icons/data.js +2 -1
  219. package/dist/icons/eyedropper.js +2 -1
  220. package/dist/icons/file.js +2 -1
  221. package/dist/icons/frame.js +2 -1
  222. package/dist/icons/gear.js +2 -1
  223. package/dist/icons/gif.js +2 -1
  224. package/dist/icons/jump-to-start.js +2 -1
  225. package/dist/icons/keys.js +4 -3
  226. package/dist/icons/media-volume.js +1 -1
  227. package/dist/icons/minus.js +2 -1
  228. package/dist/icons/pause.js +2 -1
  229. package/dist/icons/play.js +2 -1
  230. package/dist/icons/redo.js +2 -1
  231. package/dist/icons/step-back.js +2 -1
  232. package/dist/icons/step-forward.js +2 -1
  233. package/dist/icons/undo.js +2 -1
  234. package/dist/previewEntry.js +2 -1
  235. package/dist/renderEntry.js +4 -3
  236. package/dist/state/modals.d.ts +4 -0
  237. package/package.json +11 -11
  238. package/dist/esm/chunk-6jf1natv.js +0 -25
@@ -12,14 +12,14 @@ const lineStyle = {
12
12
  textOverflow: 'ellipsis',
13
13
  minWidth: 0,
14
14
  fontSize: 12,
15
- color: colors_1.VERY_LIGHT_TEXT,
15
+ color: colors_1.WHITE_ALPHA_30,
16
16
  display: 'inline-block',
17
17
  };
18
18
  const useAssetLink = (src) => {
19
19
  const linkInfo = (0, react_1.useMemo)(() => (0, timeline_asset_link_1.getTimelineAssetLinkInfo)(src), [src]);
20
20
  const fileNameStyle = (0, react_1.useMemo)(() => ({
21
21
  ...lineStyle,
22
- color: colors_1.VERY_LIGHT_TEXT,
22
+ color: colors_1.WHITE_ALPHA_30,
23
23
  textDecoration: 'none',
24
24
  display: 'inline-block',
25
25
  overflow: 'hidden',
@@ -5,6 +5,7 @@ const jsx_runtime_1 = require("react/jsx-runtime");
5
5
  const TimelineBooleanField_1 = require("./TimelineBooleanField");
6
6
  const TimelineColorField_1 = require("./TimelineColorField");
7
7
  const TimelineEnumField_1 = require("./TimelineEnumField");
8
+ const TimelineFontFamilyField_1 = require("./TimelineFontFamilyField");
8
9
  const TimelineNumberField_1 = require("./TimelineNumberField");
9
10
  const TimelineRotationField_1 = require("./TimelineRotationField");
10
11
  const TimelineScaleField_1 = require("./TimelineScaleField");
@@ -56,6 +57,9 @@ const TimelinePrimitiveFieldValue = ({ field, onSave, onDragValueChange, onDragE
56
57
  if (field.typeName === 'text-content') {
57
58
  return (jsx_runtime_1.jsx("span", { style: inlineWrapper, children: jsx_runtime_1.jsx(TimelineTextContentField_1.TimelineTextContentField, { effectiveValue: effectiveValue, field: field, nodePath: scaleLockNodePath, onDragEnd: onDragEnd, onDragValueChange: onDragValueChange, onSave: onSave, propStatus: propStatus }) }));
58
59
  }
60
+ if (field.typeName === 'font-family') {
61
+ return (jsx_runtime_1.jsx("span", { style: inlineWrapper, children: jsx_runtime_1.jsx(TimelineFontFamilyField_1.TimelineFontFamilyField, { effectiveValue: effectiveValue, field: field, onDragEnd: onDragEnd, onDragValueChange: onDragValueChange, onSave: onSave, propStatus: propStatus }) }));
62
+ }
59
63
  throw new Error(`Unsupported field type: ${field.typeName}`);
60
64
  };
61
65
  exports.TimelinePrimitiveFieldValue = TimelinePrimitiveFieldValue;
@@ -4,8 +4,8 @@ exports.TimelineRotationField = void 0;
4
4
  const jsx_runtime_1 = require("react/jsx-runtime");
5
5
  const react_1 = require("react");
6
6
  const InputDragger_1 = require("../NewComposition/InputDragger");
7
- const timeline_field_display_utils_1 = require("./timeline-field-display-utils");
8
7
  const timeline_field_utils_1 = require("./timeline-field-utils");
8
+ const timeline_rotation_field_utils_1 = require("./timeline-rotation-field-utils");
9
9
  const timeline_rotation_utils_1 = require("./timeline-rotation-utils");
10
10
  const TimelineRotationField = ({ field, effectiveValue, propStatus, onSave, onDragValueChange, onDragEnd, }) => {
11
11
  var _a, _b;
@@ -67,11 +67,12 @@ const TimelineRotationField = ({ field, effectiveValue, propStatus, onSave, onDr
67
67
  }
68
68
  }, [propStatus, onSave, serializeValue]);
69
69
  const formatter = (0, react_1.useCallback)((v) => {
70
- return (0, timeline_field_display_utils_1.formatTimelineFieldValueForDisplay)({
70
+ return (0, timeline_rotation_field_utils_1.formatTimelineRotationFieldValue)({
71
+ decimalPlaces,
71
72
  fieldSchema: field.fieldSchema,
72
73
  value: v,
73
74
  });
74
- }, [field.fieldSchema]);
75
+ }, [decimalPlaces, field.fieldSchema]);
75
76
  return (jsx_runtime_1.jsx(InputDragger_1.InputDragger, { type: "number", value: dragValue !== null && dragValue !== void 0 ? dragValue : degrees, style: timeline_field_utils_1.draggerStyle, status: "ok", small: true, onValueChange: onValueChange, onValueChangeEnd: onValueChangeEnd, onTextChange: onTextChange, min: min, max: max, step: step, formatter: formatter, rightAlign: false }));
76
77
  };
77
78
  exports.TimelineRotationField = TimelineRotationField;
@@ -76,7 +76,7 @@ const LinkToggle = ({ linked, onToggle }) => {
76
76
  e.stopPropagation();
77
77
  onToggle();
78
78
  }, [onToggle]);
79
- return (jsx_runtime_1.jsx("button", { type: "button", style: toggleStyle, onPointerDown: onPointerDown, title: linked ? 'Unlink scale axes' : 'Link scale axes', "aria-label": linked ? 'Unlink scale axes' : 'Link scale axes', children: linked ? (jsx_runtime_1.jsx("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 640 640", style: linkIconStyle, children: jsx_runtime_1.jsx("path", { fill: "currentcolor", d: "M32 320C32 214 118 128 224 128L288 128L288 192L224 192C153.3 192 96 249.3 96 320C96 390.7 153.3 448 224 448L288 448L288 512L224 512C118 512 32 426 32 320zM608 320C608 426 522 512 416 512L352 512L352 448L416 448C486.7 448 544 390.7 544 320C544 249.3 486.7 192 416 192L352 192L352 128L416 128C522 128 608 214 608 320zM224 288L448 288L448 352L192 352L192 288L224 288z" }) })) : null }));
79
+ return (jsx_runtime_1.jsx("button", { type: "button", style: toggleStyle, onPointerDown: onPointerDown, title: linked ? 'Unlink scale axes' : 'Link scale axes', "aria-label": linked ? 'Unlink scale axes' : 'Link scale axes', children: linked ? (jsx_runtime_1.jsx("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 640 640", style: linkIconStyle, children: jsx_runtime_1.jsx("path", { fill: colors_1.CURRENT_COLOR_LOWERCASE, d: "M32 320C32 214 118 128 224 128L288 128L288 192L224 192C153.3 192 96 249.3 96 320C96 390.7 153.3 448 224 448L288 448L288 512L224 512C118 512 32 426 32 320zM608 320C608 426 522 512 416 512L352 512L352 448L416 448C486.7 448 544 390.7 544 320C544 249.3 486.7 192 416 192L352 192L352 128L416 128C522 128 608 214 608 320zM224 288L448 288L448 352L192 352L192 288L224 288z" }) })) : null }));
80
80
  };
81
81
  const TimelineScaleField = ({ field, propStatus, effectiveValue, onSave, onDragValueChange, onDragEnd, scaleLockNodePath, }) => {
82
82
  var _a, _b;
@@ -1,8 +1,10 @@
1
1
  import React from 'react';
2
2
  import type { CanUpdateSequencePropStatusFalse, CanUpdateSequencePropStatusStatic, SequencePropsSubscriptionKey } from 'remotion';
3
3
  import type { SchemaFieldInfo, TimelineFieldOnDragValueChange, TimelineFieldOnSave } from '../../helpers/timeline-layout';
4
+ export declare const TIMELINE_COMPUTED_EFFECT_FIX_LINK = "https://www.remotion.dev/docs/studio/interactivity-best-practices#keep-effects-editable";
4
5
  export declare const UnsupportedStatus: React.FC<{
5
6
  readonly label: string;
7
+ readonly fixHref?: string;
6
8
  }>;
7
9
  export declare const TimelineNonEditableStatus: React.FC<{
8
10
  readonly propStatus: CanUpdateSequencePropStatusFalse;
@@ -1,24 +1,64 @@
1
1
  "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
2
5
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.TimelineFieldValue = exports.TimelineNonEditableStatus = exports.UnsupportedStatus = void 0;
6
+ exports.TimelineFieldValue = exports.TimelineNonEditableStatus = exports.UnsupportedStatus = exports.TIMELINE_COMPUTED_EFFECT_FIX_LINK = void 0;
4
7
  const jsx_runtime_1 = require("react/jsx-runtime");
8
+ const react_1 = __importDefault(require("react"));
9
+ const colors_1 = require("../../helpers/colors");
5
10
  const get_timeline_keyframes_1 = require("./get-timeline-keyframes");
6
11
  const TimelineArrayField_1 = require("./TimelineArrayField");
7
12
  const TimelinePrimitiveFieldValue_1 = require("./TimelinePrimitiveFieldValue");
13
+ const INTERACTIVITY_BEST_PRACTICES_DOCS = 'https://www.remotion.dev/docs/studio/interactivity-best-practices';
14
+ const TIMELINE_COMPUTED_VALUE_FIX_LINK = `${INTERACTIVITY_BEST_PRACTICES_DOCS}#keep-editable-values-visible`;
15
+ exports.TIMELINE_COMPUTED_EFFECT_FIX_LINK = `${INTERACTIVITY_BEST_PRACTICES_DOCS}#keep-effects-editable`;
16
+ const unsupportedStatusWrapper = {
17
+ alignItems: 'center',
18
+ display: 'inline-flex',
19
+ gap: 4,
20
+ userSelect: 'none',
21
+ WebkitUserSelect: 'none',
22
+ };
8
23
  const unsupportedLabel = {
9
- color: 'rgba(255, 255, 255, 0.4)',
24
+ color: colors_1.WHITE_ALPHA_40,
10
25
  fontSize: 12,
11
26
  fontStyle: 'italic',
12
- userSelect: 'none',
13
- WebkitUserSelect: 'none',
14
27
  };
15
- const UnsupportedStatus = ({ label }) => {
16
- return jsx_runtime_1.jsx("span", { style: unsupportedLabel, children: label });
28
+ const fixLinkBase = {
29
+ color: colors_1.LIGHT_TEXT,
30
+ display: 'inline-block',
31
+ fontSize: 10,
32
+ fontStyle: 'normal',
33
+ fontWeight: 600,
34
+ lineHeight: 1,
35
+ textDecoration: 'none',
36
+ width: 17,
37
+ };
38
+ const UnsupportedStatus = ({ label, fixHref }) => {
39
+ const [hovered, setHovered] = react_1.default.useState(false);
40
+ const [focused, setFocused] = react_1.default.useState(false);
41
+ const visible = hovered || focused;
42
+ const fixLink = react_1.default.useMemo(() => {
43
+ return {
44
+ ...fixLinkBase,
45
+ opacity: visible ? 1 : 0,
46
+ pointerEvents: visible ? 'auto' : 'none',
47
+ };
48
+ }, [visible]);
49
+ const stopMousePropagation = (event) => {
50
+ event.stopPropagation();
51
+ };
52
+ const stopPointerPropagation = (event) => {
53
+ event.stopPropagation();
54
+ };
55
+ return (jsx_runtime_1.jsxs("span", { style: unsupportedStatusWrapper, onPointerEnter: () => setHovered(true), onPointerLeave: () => setHovered(false), children: [
56
+ jsx_runtime_1.jsx("span", { style: unsupportedLabel, children: label }), fixHref ? (jsx_runtime_1.jsx("a", { href: fixHref, target: "_blank", rel: "noreferrer", style: fixLink, title: "Open docs to fix computed Studio values", onClick: stopMousePropagation, onDoubleClick: stopMousePropagation, onPointerDown: stopPointerPropagation, onFocus: () => setFocused(true), onBlur: () => setFocused(false), tabIndex: visible ? 0 : -1, children: "Fix" })) : null] }));
17
57
  };
18
58
  exports.UnsupportedStatus = UnsupportedStatus;
19
59
  const TimelineNonEditableStatus = ({ propStatus }) => {
20
60
  if (propStatus.status === 'computed') {
21
- return (jsx_runtime_1.jsx("span", { style: unsupportedLabel, children: (0, get_timeline_keyframes_1.getComputedStatusLabel)(propStatus) }));
61
+ return (jsx_runtime_1.jsx(exports.UnsupportedStatus, { label: (0, get_timeline_keyframes_1.getComputedStatusLabel)(propStatus), fixHref: TIMELINE_COMPUTED_VALUE_FIX_LINK }));
22
62
  }
23
63
  };
24
64
  exports.TimelineNonEditableStatus = TimelineNonEditableStatus;
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.TimelineScrollable = void 0;
4
4
  const jsx_runtime_1 = require("react/jsx-runtime");
5
5
  const react_1 = require("react");
6
+ const colors_1 = require("../../helpers/colors");
6
7
  const is_menu_item_1 = require("../Menu/is-menu-item");
7
8
  const timeline_refs_1 = require("./timeline-refs");
8
9
  const TimelineSelection_1 = require("./TimelineSelection");
@@ -15,8 +16,8 @@ const outer = {
15
16
  backgroundColor: TimelineSelection_1.TIMELINE_BACKGROUND,
16
17
  };
17
18
  const marqueeStyle = {
18
- backgroundColor: 'rgba(70, 130, 255, 0.16)',
19
- border: '1px solid rgba(70, 130, 255, 0.75)',
19
+ backgroundColor: colors_1.TIMELINE_MARQUEE_BLUE_ALPHA_16,
20
+ border: colors_1.BORDER_TIMELINE_MARQUEE_BLUE,
20
21
  boxSizing: 'border-box',
21
22
  pointerEvents: 'none',
22
23
  position: 'fixed',
@@ -18,9 +18,9 @@ const timeline_expanded_filter_1 = require("./timeline-expanded-filter");
18
18
  const timeline_refs_1 = require("./timeline-refs");
19
19
  const TimelineClipboardKeybindings_1 = require("./TimelineClipboardKeybindings");
20
20
  const TimelineDeleteKeybindings_1 = require("./TimelineDeleteKeybindings");
21
- exports.TIMELINE_SELECTED_BACKGROUND = '#3B3F42';
22
- exports.TIMELINE_SELECTED_LABEL_BACKGROUND = '#B0B0B0';
23
- exports.TIMELINE_SELECTED_LABEL_TEXT = 'black';
21
+ exports.TIMELINE_SELECTED_BACKGROUND = colors_1.TIMELINE_SELECTED_BACKGROUND_COLOR;
22
+ exports.TIMELINE_SELECTED_LABEL_BACKGROUND = colors_1.TIMELINE_SELECTED_LABEL_BACKGROUND_COLOR;
23
+ exports.TIMELINE_SELECTED_LABEL_TEXT = colors_1.BLACK;
24
24
  exports.TIMELINE_SELECTED_LABEL_HORIZONTAL_PADDING = 2;
25
25
  const getTimelineSelectedLabelStyle = (selected, subcategory) => {
26
26
  return {
@@ -29,7 +29,7 @@ const getTimelineSelectedLabelStyle = (selected, subcategory) => {
29
29
  ...(selected
30
30
  ? {
31
31
  backgroundColor: subcategory
32
- ? 'rgba(255, 255, 255, 0.1)'
32
+ ? colors_1.WHITE_ALPHA_10
33
33
  : exports.TIMELINE_SELECTED_LABEL_BACKGROUND,
34
34
  }
35
35
  : {}),
@@ -39,7 +39,7 @@ exports.getTimelineSelectedLabelStyle = getTimelineSelectedLabelStyle;
39
39
  const getTimelineColor = (selected, subcategory) => {
40
40
  return selected && !subcategory
41
41
  ? exports.TIMELINE_SELECTED_LABEL_TEXT
42
- : 'rgba(255, 255, 255, 0.8)';
42
+ : colors_1.WHITE_ALPHA_80;
43
43
  };
44
44
  exports.getTimelineColor = getTimelineColor;
45
45
  const getTimelineSelectedTrackHighlightStyle = (timelineWidth, backgroundColor = exports.TIMELINE_SELECTED_BACKGROUND) => ({
@@ -58,7 +58,7 @@ const getTimelineRowHighlightBackground = ({ showSelectedBackground, selected, c
58
58
  : undefined;
59
59
  };
60
60
  exports.getTimelineRowHighlightBackground = getTimelineRowHighlightBackground;
61
- exports.TIMELINE_BACKGROUND = '#0F1113';
61
+ exports.TIMELINE_BACKGROUND = colors_1.TIMELINE_BACKGROUND_COLOR;
62
62
  exports.TIMELINE_TICKS_BACKGROUND = colors_1.BACKGROUND;
63
63
  const isTimelineSelectionModifierEvent = ({ shiftKey, metaKey, ctrlKey, }) => {
64
64
  return shiftKey || metaKey || ctrlKey;
@@ -63,9 +63,6 @@ const TimelineVideoInfo_1 = require("./TimelineVideoInfo");
63
63
  const TimelineWidthProvider_1 = require("./TimelineWidthProvider");
64
64
  const use_resolved_stack_react_to_change_1 = require("./use-resolved-stack-react-to-change");
65
65
  const use_sequence_freeze_frame_menu_item_1 = require("./use-sequence-freeze-frame-menu-item");
66
- const AUDIO_GRADIENT = 'linear-gradient(rgb(16 171 58), rgb(43 165 63) 60%)';
67
- const VIDEO_GRADIENT = 'linear-gradient(to top, #8e44ad, #9b59b6)';
68
- const IMAGE_GRADIENT = 'linear-gradient(to top, #2980b9, #3498db)';
69
66
  const TimelineSequenceFn = ({ s, nodePathInfo, sequenceFrameOffset }) => {
70
67
  const windowWidth = (0, react_1.useContext)(TimelineWidthProvider_1.TimelineWidthContext);
71
68
  if (windowWidth === null) {
@@ -120,23 +117,23 @@ const TimelineSequenceCurrentFrame = ({ s, displayDurationInFrames, premountWidt
120
117
  width: premountWidth,
121
118
  height: '100%',
122
119
  background: `repeating-linear-gradient(
123
- -45deg,
124
- transparent,
125
- transparent 2px,
126
- rgba(255, 255, 255, ${isPremounting ? 0.5 : 0.2}) 2px,
127
- rgba(255, 255, 255, ${isPremounting ? 0.5 : 0.2}) 4px
128
- )`,
120
+ -45deg,
121
+ ${colors_1.TRANSPARENT},
122
+ ${colors_1.TRANSPARENT} 2px,
123
+ ${isPremounting ? colors_1.WHITE_ALPHA_50 : colors_1.WHITE_ALPHA_20} 2px,
124
+ ${isPremounting ? colors_1.WHITE_ALPHA_50 : colors_1.WHITE_ALPHA_20} 4px
125
+ )`,
129
126
  position: 'absolute',
130
127
  } })) : null, postmountWidth ? (jsx_runtime_1.jsx("div", { style: {
131
128
  width: postmountWidth,
132
129
  height: '100%',
133
130
  background: `repeating-linear-gradient(
134
- -45deg,
135
- transparent,
136
- transparent 2px,
137
- rgba(255, 255, 255, ${isPostmounting ? 0.5 : 0.2}) 2px,
138
- rgba(255, 255, 255, ${isPostmounting ? 0.5 : 0.2}) 4px
139
- )`,
131
+ -45deg,
132
+ ${colors_1.TRANSPARENT},
133
+ ${colors_1.TRANSPARENT} 2px,
134
+ ${isPostmounting ? colors_1.WHITE_ALPHA_50 : colors_1.WHITE_ALPHA_20} 2px,
135
+ ${isPostmounting ? colors_1.WHITE_ALPHA_50 : colors_1.WHITE_ALPHA_20} 4px
136
+ )`,
140
137
  position: 'absolute',
141
138
  right: 0,
142
139
  } })) : null, children, s.type !== 'audio' &&
@@ -370,19 +367,19 @@ const TimelineSequenceInner = ({ s, windowWidth, nodePathInfo, sequenceFrameOffs
370
367
  const style = (0, react_1.useMemo)(() => {
371
368
  return {
372
369
  background: s.type === 'audio'
373
- ? AUDIO_GRADIENT
370
+ ? colors_1.TIMELINE_AUDIO_GRADIENT
374
371
  : s.type === 'video'
375
- ? VIDEO_GRADIENT
372
+ ? colors_1.TIMELINE_VIDEO_GRADIENT
376
373
  : s.type === 'image'
377
- ? IMAGE_GRADIENT
374
+ ? colors_1.TIMELINE_IMAGE_GRADIENT
378
375
  : colors_1.BLUE,
379
- border: get_timeline_sequence_layout_1.SEQUENCE_BORDER_WIDTH + 'px solid rgba(255, 255, 255, 0.2)',
376
+ border: `${get_timeline_sequence_layout_1.SEQUENCE_BORDER_WIDTH}px solid ${colors_1.WHITE_ALPHA_20}`,
380
377
  borderRadius: 2,
381
378
  position: 'absolute',
382
379
  height: (0, timeline_layout_1.getTimelineLayerHeight)(s.type),
383
380
  marginLeft,
384
381
  width,
385
- color: 'white',
382
+ color: colors_1.WHITE,
386
383
  overflow: 'hidden',
387
384
  };
388
385
  }, [marginLeft, s.type, width]);
@@ -2,13 +2,14 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.TimelineSequenceFrame = void 0;
4
4
  const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const colors_1 = require("../../helpers/colors");
5
6
  const relativeFrameStyle = {
6
7
  alignItems: 'center',
7
8
  display: 'flex',
8
9
  fontSize: 11,
9
10
  fontFamily: 'Arial, Helvetica, sans-serif',
10
11
  gap: 4,
11
- color: 'white',
12
+ color: colors_1.WHITE,
12
13
  opacity: 0.5,
13
14
  whiteSpace: 'nowrap',
14
15
  pointerEvents: 'none',
@@ -20,7 +21,7 @@ const snowflakeStyle = {
20
21
  width: 12,
21
22
  };
22
23
  const FreezeFrameIcon = () => {
23
- return (jsx_runtime_1.jsx("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 512 512", style: snowflakeStyle, fill: "currentColor", children: jsx_runtime_1.jsx("path", { d: "M288 32l0-32-64 0 0 88.4-64-64-39.6 39.6 103.6 103.6 0 56.4-56.4 0-103.6-103.6-39.6 39.6 64 64-88.4 0 0 64 88.4 0c-33.5 33.5-54.9 54.9-64 64L64 391.6c2.5-2.5 37.1-37.1 103.6-103.6l56.4 0 0 56.4C157.5 410.9 122.9 445.5 120.4 448L160 487.6c9.1-9.1 30.5-30.5 64-64l0 88.4 64 0 0-88.4 64 64 39.6-39.6-103.6-103.6 0-56.4 56.4 0 103.6 103.6 39.6-39.6-64-64 88.4 0 0-64-88.4 0c33.5-33.5 54.9-54.9 64-64L448 120.4c-2.5 2.5-37.1 37.1-103.6 103.6l-56.4 0 0-56.4C354.5 101.1 389.1 66.5 391.6 64L352 24.4c-9.1 9.1-30.5 30.5-64 64L288 32z" }) }));
24
+ return (jsx_runtime_1.jsx("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 512 512", style: snowflakeStyle, fill: colors_1.CURRENT_COLOR, children: jsx_runtime_1.jsx("path", { d: "M288 32l0-32-64 0 0 88.4-64-64-39.6 39.6 103.6 103.6 0 56.4-56.4 0-103.6-103.6-39.6 39.6 64 64-88.4 0 0 64 88.4 0c-33.5 33.5-54.9 54.9-64 64L64 391.6c2.5-2.5 37.1-37.1 103.6-103.6l56.4 0 0 56.4C157.5 410.9 122.9 445.5 120.4 448L160 487.6c9.1-9.1 30.5-30.5 64-64l0 88.4 64 0 0-88.4 64 64 39.6-39.6-103.6-103.6 0-56.4 56.4 0 103.6 103.6 39.6-39.6-64-64 88.4 0 0-64-88.4 0c33.5-33.5 54.9-54.9 64-64L448 120.4c-2.5 2.5-37.1 37.1-103.6 103.6l-56.4 0 0-56.4C354.5 101.1 389.1 66.5 391.6 64L352 24.4c-9.1 9.1-30.5 30.5-64 64L288 32z" }) }));
24
25
  };
25
26
  const TimelineSequenceFrame = ({ roundedFrame, frozenFrame, premounted, postmounted }) => {
26
27
  return (jsx_runtime_1.jsxs("div", { style: relativeFrameStyle, children: [frozenFrame === null ? null : jsx_runtime_1.jsx(FreezeFrameIcon, {}), frozenFrame !== null && frozenFrame !== void 0 ? frozenFrame : (premounted
@@ -38,6 +38,7 @@ const jsx_runtime_1 = require("react/jsx-runtime");
38
38
  const react_1 = __importStar(require("react"));
39
39
  const remotion_1 = require("remotion");
40
40
  const client_id_1 = require("../../helpers/client-id");
41
+ const colors_1 = require("../../helpers/colors");
41
42
  const format_file_location_1 = require("../../helpers/format-file-location");
42
43
  const timeline_layout_1 = require("../../helpers/timeline-layout");
43
44
  const use_keybinding_1 = require("../../helpers/use-keybinding");
@@ -74,8 +75,8 @@ const labelContainerStyle = {
74
75
  minWidth: 0,
75
76
  };
76
77
  const effectDropHighlight = {
77
- backgroundColor: 'rgba(0, 155, 255, 0.16)',
78
- outline: '1px solid rgba(0, 155, 255, 0.75)',
78
+ backgroundColor: colors_1.TIMELINE_DROP_BLUE_ALPHA_16,
79
+ outline: colors_1.BORDER_TIMELINE_DROP_BLUE,
79
80
  outlineOffset: -1,
80
81
  };
81
82
  const SEQUENCE_REORDER_MIME_TYPE = 'application/remotion-sequence-reorder';
@@ -95,7 +96,7 @@ const sequenceReorderWrapper = {
95
96
  position: 'relative',
96
97
  };
97
98
  const sequenceReorderLineBase = {
98
- backgroundColor: '#0b84ff',
99
+ backgroundColor: colors_1.TIMELINE_BLUE,
99
100
  height: 2,
100
101
  left: 0,
101
102
  pointerEvents: 'none',
@@ -104,10 +105,10 @@ const sequenceReorderLineBase = {
104
105
  zIndex: 1,
105
106
  };
106
107
  const sequenceReorderRejectionStyle = {
107
- backgroundColor: 'rgba(0, 0, 0, 0.85)',
108
- border: '1px solid rgba(255, 255, 255, 0.2)',
108
+ backgroundColor: colors_1.BLACK_ALPHA_85,
109
+ border: colors_1.BORDER_WHITE_ALPHA_20,
109
110
  borderRadius: 4,
110
- color: 'white',
111
+ color: colors_1.WHITE,
111
112
  fontSize: 11,
112
113
  lineHeight: 1.2,
113
114
  maxWidth: 260,
@@ -501,7 +502,7 @@ const TimelineSequenceItem = ({ nestedDepth, sequence, nodePathInfo, keyframeDis
501
502
  const inner = (0, react_1.useMemo)(() => {
502
503
  return {
503
504
  height: timeline_layout_1.TIMELINE_LIST_ITEM_ROW_HEIGHT,
504
- color: 'white',
505
+ color: colors_1.WHITE,
505
506
  fontFamily: 'Arial, Helvetica, sans-serif',
506
507
  wordBreak: 'break-all',
507
508
  textAlign: 'left',
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.TimelineSequenceName = void 0;
4
4
  const jsx_runtime_1 = require("react/jsx-runtime");
5
5
  const react_1 = require("react");
6
+ const colors_1 = require("../../helpers/colors");
6
7
  const TimelineSelection_1 = require("./TimelineSelection");
7
8
  const MAX_DISPLAY_NAME_LENGTH = 1000;
8
9
  const MAX_RENAME_INPUT_WIDTH = 240;
@@ -38,7 +39,7 @@ const TimelineSequenceName = ({ displayName, fallbackDisplayName, selected, cont
38
39
  const inputStyle = (0, react_1.useMemo)(() => {
39
40
  return {
40
41
  ...style,
41
- background: 'transparent',
42
+ background: colors_1.TRANSPARENT,
42
43
  border: 0,
43
44
  color: (0, TimelineSelection_1.getTimelineColor)(false, false),
44
45
  fontFamily: 'inherit',
@@ -94,7 +95,7 @@ const TimelineSequenceName = ({ displayName, fallbackDisplayName, selected, cont
94
95
  }, [save]);
95
96
  if (editing) {
96
97
  return (jsx_runtime_1.jsxs(jsx_runtime_1.Fragment, { children: [
97
- jsx_runtime_1.jsx("style", { children: `.${RENAME_INPUT_CLASS_NAME}::selection { background: rgba(255, 255, 255, 0.72); color: black; }` }), jsx_runtime_1.jsx("input", { ref: inputRef, className: RENAME_INPUT_CLASS_NAME, value: draftName, onChange: (e) => setDraftName(e.target.value), onBlur: onBlur, onKeyDown: onKeyDown, size: Math.max(1, draftName.length), style: inputStyle })
98
+ jsx_runtime_1.jsx("style", { children: `.${RENAME_INPUT_CLASS_NAME}::selection { background: ${colors_1.WHITE_ALPHA_72}; color: ${colors_1.BLACK}; }` }), jsx_runtime_1.jsx("input", { ref: inputRef, className: RENAME_INPUT_CLASS_NAME, value: draftName, onChange: (e) => setDraftName(e.target.value), onBlur: onBlur, onKeyDown: onKeyDown, size: Math.max(1, draftName.length), style: inputStyle })
98
99
  ] }));
99
100
  }
100
101
  return (jsx_runtime_1.jsx("div", { title: text, style: style, children: text }));
@@ -59,7 +59,7 @@ const Value = ({ field, nodePath, validatedLocation, schema, propStatus }) => {
59
59
  const clientId = previewServerState.type === 'connected'
60
60
  ? previewServerState.clientId
61
61
  : null;
62
- const onSave = (0, react_1.useCallback)((value) => {
62
+ const onSave = (0, react_1.useCallback)((value, options) => {
63
63
  var _a;
64
64
  if (!clientId) {
65
65
  return Promise.reject(new Error('Not connected to studio server'));
@@ -87,6 +87,7 @@ const Value = ({ field, nodePath, validatedLocation, schema, propStatus }) => {
87
87
  value,
88
88
  defaultValue,
89
89
  schema,
90
+ sourceEdit: options === null || options === void 0 ? void 0 : options.sourceEdit,
90
91
  },
91
92
  ],
92
93
  setPropStatuses,
@@ -1,6 +1,7 @@
1
1
  import React from 'react';
2
- import type { OverrideIdToNodePaths, PropStatuses, SequencePropsSubscriptionKey, TSequence, InteractivitySchema } from 'remotion';
2
+ import type { CanUpdateSequencePropStatusKeyframed, OverrideIdToNodePaths, PropStatuses, SequencePropsSubscriptionKey, TSequence, InteractivitySchema } from 'remotion';
3
3
  import type { SequenceNodePathInfo } from '../../helpers/get-timeline-sequence-sort-key';
4
+ import type { MoveEffectKeyframeChange, MoveSequenceKeyframeChange } from './call-move-keyframe';
4
5
  import { type SaveSequencePropChange } from './save-sequence-prop';
5
6
  import { type TimelineSelection } from './TimelineSelection';
6
7
  export type TimelineSequenceDurationDragTarget = {
@@ -17,9 +18,19 @@ export type TimelineSequenceLeftEdgeDragTarget = {
17
18
  readonly schema: InteractivitySchema;
18
19
  };
19
20
  export type TimelineSequenceFromDragTarget = {
21
+ readonly effectKeyframes: TimelineSequenceEffectKeyframeDragTarget[];
20
22
  readonly fileName: string;
21
23
  readonly initialFrom: number;
22
24
  readonly nodePath: SequencePropsSubscriptionKey;
25
+ readonly sequenceKeyframes: TimelineSequenceKeyframeDragTarget[];
26
+ };
27
+ type TimelineSequenceKeyframeDragTarget = {
28
+ readonly fieldKey: string;
29
+ readonly schema: InteractivitySchema;
30
+ readonly status: CanUpdateSequencePropStatusKeyframed;
31
+ };
32
+ type TimelineSequenceEffectKeyframeDragTarget = TimelineSequenceKeyframeDragTarget & {
33
+ readonly effectIndex: number;
23
34
  };
24
35
  export declare const getTimelineSequenceDurationDragValue: ({ initialDuration, deltaFrames, }: {
25
36
  readonly initialDuration: number;
@@ -56,6 +67,13 @@ export declare const getTimelineSequenceFromDragChanges: ({ targets, deltaFrames
56
67
  readonly targets: readonly TimelineSequenceFromDragTarget[];
57
68
  readonly deltaFrames: number;
58
69
  }) => SaveSequencePropChange[];
70
+ export declare const getTimelineSequenceFromDragKeyframeMoves: ({ targets, deltaFrames, }: {
71
+ readonly targets: readonly TimelineSequenceFromDragTarget[];
72
+ readonly deltaFrames: number;
73
+ }) => {
74
+ readonly effectKeyframes: MoveEffectKeyframeChange[];
75
+ readonly sequenceKeyframes: MoveSequenceKeyframeChange[];
76
+ };
59
77
  export declare const getTimelineSequenceDurationDragTargets: ({ draggedNodePathInfo, selectedItems, sequences, overrideIdsToNodePaths, propStatuses, }: {
60
78
  readonly draggedNodePathInfo: SequenceNodePathInfo;
61
79
  readonly selectedItems: readonly TimelineSelection[];
@@ -95,3 +113,4 @@ export declare const TimelineSequenceRightEdgeDragHandle: React.FC<{
95
113
  readonly windowWidth: number;
96
114
  readonly timelineDurationInFrames: number;
97
115
  }>;
116
+ export {};