@remotion/studio 4.0.515 → 4.0.517

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 (277) hide show
  1. package/dist/api/restart-studio.js +4 -0
  2. package/dist/components/AssetSelector.js +4 -10
  3. package/dist/components/AssetSelectorItem.d.ts +2 -1
  4. package/dist/components/AssetSelectorItem.js +24 -29
  5. package/dist/components/Canvas.js +21 -15
  6. package/dist/components/CanvasCaptureDropHandler.d.ts +4 -0
  7. package/dist/components/CanvasCaptureDropHandler.js +42 -0
  8. package/dist/components/CanvasOrLoading.js +4 -3
  9. package/dist/components/CaptionInspector.d.ts +2 -0
  10. package/dist/components/CaptionInspector.js +3 -5
  11. package/dist/components/CheckboardToggle.js +1 -1
  12. package/dist/components/Checkbox.d.ts +0 -1
  13. package/dist/components/Checkbox.js +2 -19
  14. package/dist/components/CompositionSelector.js +6 -3
  15. package/dist/components/CompositionSelectorItem.js +9 -10
  16. package/dist/components/ConfigSelect.d.ts +17 -0
  17. package/dist/components/ConfigSelect.js +50 -0
  18. package/dist/components/ConfigureLicenseModal.js +79 -46
  19. package/dist/components/CurrentAsset.d.ts +10 -2
  20. package/dist/components/CurrentAsset.js +143 -45
  21. package/dist/components/Editor.js +2 -1
  22. package/dist/components/EditorContent.js +5 -2
  23. package/dist/components/EditorContexts.js +2 -1
  24. package/dist/components/EditorRuler/Ruler.d.ts +1 -0
  25. package/dist/components/EditorRuler/Ruler.js +9 -8
  26. package/dist/components/EditorRuler/index.d.ts +1 -0
  27. package/dist/components/EditorRuler/index.js +3 -4
  28. package/dist/components/EditorRuler/use-is-ruler-visible.d.ts +1 -1
  29. package/dist/components/EditorRuler/use-is-ruler-visible.js +8 -2
  30. package/dist/components/ElementLibraryModal.d.ts +5 -0
  31. package/dist/components/ElementLibraryModal.js +38 -0
  32. package/dist/components/FilePreview.js +71 -0
  33. package/dist/components/FixComputedValueModal.js +54 -51
  34. package/dist/components/GlobalKeybindings.js +5 -5
  35. package/dist/components/InlineAction.d.ts +1 -1
  36. package/dist/components/InlineAction.js +12 -2
  37. package/dist/components/InlineCaptionInspector.d.ts +2 -0
  38. package/dist/components/InlineCaptionInspector.js +2 -2
  39. package/dist/components/InlineCompositionName.js +1 -1
  40. package/dist/components/InlineEditableTitle.js +5 -4
  41. package/dist/components/InspectorInfoHeader.js +1 -1
  42. package/dist/components/InspectorOpenInEditor.js +48 -72
  43. package/dist/components/InspectorPanel/AlignmentControls.js +2 -3
  44. package/dist/components/InspectorPanel/CollapsibleInspectorSectionHeader.d.ts +7 -0
  45. package/dist/components/InspectorPanel/CollapsibleInspectorSectionHeader.js +39 -0
  46. package/dist/components/InspectorPanel/CompositionInspector.js +25 -45
  47. package/dist/components/InspectorPanel/CompositionInspectorHeader.js +2 -2
  48. package/dist/components/InspectorPanel/CompositionMetadata.js +11 -4
  49. package/dist/components/InspectorPanel/EasingInspector.js +2 -2
  50. package/dist/components/InspectorPanel/ElementLibraryButton.d.ts +2 -0
  51. package/dist/components/InspectorPanel/ElementLibraryButton.js +139 -0
  52. package/dist/components/InspectorPanel/KeyframeEasingNavigator.js +10 -4
  53. package/dist/components/InspectorPanel/KeyframeInspector.js +1 -1
  54. package/dist/components/InspectorPanel/SequenceInspectorHeader.js +14 -6
  55. package/dist/components/InspectorPanel/SequenceSelectionInspector.js +2 -7
  56. package/dist/components/InspectorPanel/common.d.ts +0 -13
  57. package/dist/components/InspectorPanel/common.js +6 -59
  58. package/dist/components/InspectorPanel/inspector-selection.d.ts +2 -2
  59. package/dist/components/InspectorPanel/styles.d.ts +0 -1
  60. package/dist/components/InspectorPanel/styles.js +3 -4
  61. package/dist/components/InspectorPanel/use-composition-actions.js +0 -1
  62. package/dist/components/InspectorPanel/use-track-for-selection.d.ts +1 -2
  63. package/dist/components/InspectorPanelLayout.d.ts +1 -1
  64. package/dist/components/InspectorPanelLayout.js +1 -1
  65. package/dist/components/InspectorSequenceSection.d.ts +1 -2
  66. package/dist/components/InspectorSequenceSection.js +40 -54
  67. package/dist/components/InspectorSourceLocation.js +1 -1
  68. package/dist/components/InstallPackage.d.ts +2 -1
  69. package/dist/components/InstallPackage.js +60 -30
  70. package/dist/components/InstallablePackage.js +37 -11
  71. package/dist/components/KeyboardShortcutsSettings.d.ts +2 -0
  72. package/dist/components/KeyboardShortcutsSettings.js +177 -0
  73. package/dist/components/Menu/MenuItem.js +15 -6
  74. package/dist/components/MenuBuildIndicator.js +1 -1
  75. package/dist/components/MenuToolbar.js +7 -3
  76. package/dist/components/Modals.js +7 -5
  77. package/dist/components/NewComposition/CodemodFooter.d.ts +0 -1
  78. package/dist/components/NewComposition/CodemodFooter.js +2 -8
  79. package/dist/components/NewComposition/DeleteComposition.js +1 -1
  80. package/dist/components/NewComposition/DeleteFolder.js +1 -1
  81. package/dist/components/NewComposition/DuplicateComposition.js +1 -1
  82. package/dist/components/NewComposition/InputDragger.js +27 -4
  83. package/dist/components/NewComposition/NewComposition.js +1 -1
  84. package/dist/components/NewComposition/NewFolder.js +1 -3
  85. package/dist/components/NewComposition/RenameComposition.js +1 -1
  86. package/dist/components/NewComposition/RenameFolder.js +1 -1
  87. package/dist/components/NewComposition/use-rename-static-file.js +1 -1
  88. package/dist/components/Notifications/NotificationCenter.d.ts +1 -0
  89. package/dist/components/Notifications/NotificationCenter.js +5 -0
  90. package/dist/components/OptionsPanel.js +9 -12
  91. package/dist/components/PlaybackRateSelector.js +1 -1
  92. package/dist/components/Preview.js +83 -5
  93. package/dist/components/PreviewToolbar.js +12 -3
  94. package/dist/components/PreviewToolbarOverflowButton.d.ts +1 -0
  95. package/dist/components/PreviewToolbarOverflowButton.js +39 -2
  96. package/dist/components/QuickSwitcher/ExplorerQuickSwitcherTrigger.js +2 -2
  97. package/dist/components/QuickSwitcher/QuickSwitcherContent.js +14 -30
  98. package/dist/components/RadioButton.d.ts +6 -0
  99. package/dist/components/RadioButton.js +62 -0
  100. package/dist/components/RenderButton.js +68 -184
  101. package/dist/components/RenderModal/DataEditor.js +15 -12
  102. package/dist/components/RenderModal/RenderStatusModal.js +0 -1
  103. package/dist/components/RenderModal/SchemaEditor/ZodSwitch.js +3 -1
  104. package/dist/components/RenderModal/SchemaEditor/infer-zod-schema-from-value.d.ts +15 -0
  105. package/dist/components/RenderModal/SchemaEditor/infer-zod-schema-from-value.js +95 -0
  106. package/dist/components/RenderQueue/RenderQueueRemoveItem.js +1 -6
  107. package/dist/components/RenderingSettings.js +7 -4
  108. package/dist/components/RulersAndGuidesToggle.d.ts +4 -0
  109. package/dist/components/RulersAndGuidesToggle.js +34 -0
  110. package/dist/components/SegmentedButton.d.ts +29 -0
  111. package/dist/components/SegmentedButton.js +226 -0
  112. package/dist/components/SelectedOutlineEditingHandles.d.ts +16 -0
  113. package/dist/components/SelectedOutlineEditingHandles.js +66 -0
  114. package/dist/components/SelectedOutlineElement.d.ts +2 -4
  115. package/dist/components/SelectedOutlineElement.js +15 -54
  116. package/dist/components/SelectedOutlineOverlay.js +32 -6
  117. package/dist/components/SelectedOutlinePolygon.d.ts +4 -6
  118. package/dist/components/SelectedOutlinePolygon.js +18 -16
  119. package/dist/components/SelectedOutlineRenderer.d.ts +1 -2
  120. package/dist/components/SelectedOutlineRenderer.js +66 -14
  121. package/dist/components/SelectedOutlineUvControls.d.ts +1 -1
  122. package/dist/components/SettingsModal.d.ts +1 -1
  123. package/dist/components/SettingsModal.js +30 -7
  124. package/dist/components/SettingsModalFooter.d.ts +3 -1
  125. package/dist/components/SettingsModalFooter.js +20 -4
  126. package/dist/components/ShowPixelGridProvider.d.ts +4 -0
  127. package/dist/components/ShowPixelGridProvider.js +24 -0
  128. package/dist/components/SidebarCollapserControls.js +2 -2
  129. package/dist/components/SkillsSettings.d.ts +2 -0
  130. package/dist/components/SkillsSettings.js +129 -0
  131. package/dist/components/StaticFilePreview.js +7 -1
  132. package/dist/components/StudioSettings.js +7 -48
  133. package/dist/components/Tabs/index.js +1 -1
  134. package/dist/components/Timeline/Timeline.js +41 -1
  135. package/dist/components/Timeline/TimelineAssetField.d.ts +1 -1
  136. package/dist/components/Timeline/TimelineAssetField.js +15 -9
  137. package/dist/components/Timeline/TimelineBooleanField.js +1 -4
  138. package/dist/components/Timeline/TimelineClipboardKeybindings.d.ts +6 -7
  139. package/dist/components/Timeline/TimelineClipboardKeybindings.js +7 -10
  140. package/dist/components/Timeline/TimelineDragHandler.js +11 -4
  141. package/dist/components/Timeline/TimelineEffectItem.d.ts +1 -0
  142. package/dist/components/Timeline/TimelineEffectItem.js +23 -10
  143. package/dist/components/Timeline/TimelineEffectPropItem.js +15 -2
  144. package/dist/components/Timeline/TimelineExpandedRow.js +5 -4
  145. package/dist/components/Timeline/TimelineFieldLabel.js +4 -2
  146. package/dist/components/Timeline/TimelineFieldRowContent.d.ts +1 -2
  147. package/dist/components/Timeline/TimelineFieldRowContent.js +8 -21
  148. package/dist/components/Timeline/TimelineImageInfo.d.ts +0 -1
  149. package/dist/components/Timeline/TimelineImageInfo.js +13 -32
  150. package/dist/components/Timeline/TimelineKeyframeControls.d.ts +1 -2
  151. package/dist/components/Timeline/TimelineKeyframeControls.js +10 -4
  152. package/dist/components/Timeline/TimelinePlayCursorSyncer.js +4 -2
  153. package/dist/components/Timeline/TimelinePrimitiveFieldValue.js +1 -1
  154. package/dist/components/Timeline/TimelineRotationField.js +0 -2
  155. package/dist/components/Timeline/TimelineRowChrome.d.ts +0 -1
  156. package/dist/components/Timeline/TimelineRowChrome.js +3 -4
  157. package/dist/components/Timeline/TimelineRowLayoutContext.d.ts +0 -1
  158. package/dist/components/Timeline/TimelineRowLayoutContext.js +1 -4
  159. package/dist/components/Timeline/TimelineScaleField.js +2 -6
  160. package/dist/components/Timeline/TimelineSchemaField.js +9 -3
  161. package/dist/components/Timeline/TimelineSelection.d.ts +29 -66
  162. package/dist/components/Timeline/TimelineSelection.js +31 -171
  163. package/dist/components/Timeline/TimelineSequence.d.ts +2 -0
  164. package/dist/components/Timeline/TimelineSequence.js +110 -19
  165. package/dist/components/Timeline/TimelineSequenceItem.d.ts +1 -0
  166. package/dist/components/Timeline/TimelineSequenceItem.js +13 -11
  167. package/dist/components/Timeline/TimelineSequencePropItem.js +15 -2
  168. package/dist/components/Timeline/TimelineSequenceRightEdgeDragHandle.d.ts +7 -6
  169. package/dist/components/Timeline/TimelineSequenceRightEdgeDragHandle.js +85 -91
  170. package/dist/components/Timeline/TimelineTrack.js +1 -1
  171. package/dist/components/Timeline/TimelineTransformOriginField.js +0 -4
  172. package/dist/components/Timeline/TimelineTranslateField.js +0 -4
  173. package/dist/components/Timeline/TimelineVirtualization.js +3 -1
  174. package/dist/components/Timeline/delete-selected-timeline-item.d.ts +3 -4
  175. package/dist/components/Timeline/duplicate-selected-timeline-item.d.ts +3 -4
  176. package/dist/components/Timeline/duplicate-selected-timeline-item.js +3 -12
  177. package/dist/components/Timeline/find-track-for-node-path-info.d.ts +1 -1
  178. package/dist/components/Timeline/get-copy-context-for-agents-menu-item.d.ts +4 -0
  179. package/dist/components/Timeline/get-copy-context-for-agents-menu-item.js +26 -0
  180. package/dist/components/Timeline/get-sequence-context-menu-items.js +2 -19
  181. package/dist/components/Timeline/get-timeline-sequence-visible-layout.d.ts +6 -1
  182. package/dist/components/Timeline/get-timeline-sequence-visible-layout.js +11 -4
  183. package/dist/components/Timeline/keyframe-clipboard.d.ts +2 -3
  184. package/dist/components/Timeline/reset-selected-timeline-props.d.ts +2 -3
  185. package/dist/components/Timeline/sequence-prop-clipboard.d.ts +2 -3
  186. package/dist/components/Timeline/split-selected-timeline-item.d.ts +2 -3
  187. package/dist/components/Timeline/split-selected-timeline-item.js +0 -1
  188. package/dist/components/Timeline/timeline-expanded-filter.d.ts +1 -2
  189. package/dist/components/Timeline/timeline-field-row-layout.d.ts +1 -1
  190. package/dist/components/Timeline/timeline-field-row-layout.js +4 -7
  191. package/dist/components/Timeline/timeline-field-utils.js +0 -2
  192. package/dist/components/Timeline/timeline-scroll-logic.d.ts +7 -5
  193. package/dist/components/Timeline/timeline-scroll-logic.js +12 -7
  194. package/dist/components/Timeline/update-selected-easing.d.ts +7 -7
  195. package/dist/components/Timeline/use-timeline-asset-drop.js +24 -0
  196. package/dist/components/Timeline/use-timeline-keyframe-drag.d.ts +6 -7
  197. package/dist/components/TimelineCombobox.js +25 -160
  198. package/dist/components/TimelineInOutToggle.js +4 -1
  199. package/dist/components/canvas-capture-drop.d.ts +4 -0
  200. package/dist/components/canvas-capture-drop.js +22 -0
  201. package/dist/components/duplicate-jsx-node-api.d.ts +2 -0
  202. package/dist/components/duplicate-jsx-node-api.js +12 -0
  203. package/dist/components/effect-drag-and-drop.js +1 -4
  204. package/dist/components/handle-drop.d.ts +2 -1
  205. package/dist/components/handle-drop.js +3 -3
  206. package/dist/components/import-assets.js +9 -65
  207. package/dist/components/keyboard-shortcuts.d.ts +10 -0
  208. package/dist/components/keyboard-shortcuts.js +135 -0
  209. package/dist/components/selected-outline-control-layout.js +2 -6
  210. package/dist/components/selected-outline-measurement.d.ts +8 -9
  211. package/dist/components/selected-outline-measurement.js +16 -3
  212. package/dist/components/use-delete-asset.d.ts +1 -0
  213. package/dist/components/use-delete-asset.js +40 -0
  214. package/dist/components/use-selected-outline-control-target.d.ts +11 -0
  215. package/dist/components/use-selected-outline-control-target.js +79 -0
  216. package/dist/esm/{chunk-s6k99gh2.js → chunk-4bxz1d3g.js} +3 -2
  217. package/dist/esm/{chunk-v5a8vpv4.js → chunk-gzqm3g2m.js} +47432 -40444
  218. package/dist/esm/index.mjs +3 -0
  219. package/dist/esm/internals.mjs +47431 -40443
  220. package/dist/esm/previewEntry.mjs +47169 -40181
  221. package/dist/esm/renderEntry.mjs +2 -2
  222. package/dist/helpers/add-asset-cache-bust.d.ts +4 -0
  223. package/dist/helpers/add-asset-cache-bust.js +10 -0
  224. package/dist/helpers/calculate-timeline.d.ts +1 -7
  225. package/dist/helpers/calculate-timeline.js +2 -145
  226. package/dist/helpers/colors.d.ts +2 -0
  227. package/dist/helpers/colors.js +6 -2
  228. package/dist/helpers/drag-aware-double-click.d.ts +6 -0
  229. package/dist/helpers/drag-aware-double-click.js +20 -0
  230. package/dist/helpers/editor-ruler.js +6 -5
  231. package/dist/helpers/get-asset-metadata.d.ts +19 -0
  232. package/dist/helpers/get-asset-metadata.js +75 -21
  233. package/dist/helpers/get-connected-compositions.d.ts +1 -6
  234. package/dist/helpers/get-connected-compositions.js +2 -8
  235. package/dist/helpers/get-sequence-double-click-action.d.ts +2 -1
  236. package/dist/helpers/get-sequence-double-click-action.js +7 -1
  237. package/dist/helpers/get-sequence-visible-range.d.ts +1 -5
  238. package/dist/helpers/get-sequence-visible-range.js +6 -51
  239. package/dist/helpers/get-timeline-nestedness.d.ts +1 -2
  240. package/dist/helpers/get-timeline-nestedness.js +2 -12
  241. package/dist/helpers/get-timeline-sequence-layout.d.ts +4 -1
  242. package/dist/helpers/get-timeline-sequence-layout.js +15 -6
  243. package/dist/helpers/get-timeline-sequence-sort-key.d.ts +2 -21
  244. package/dist/helpers/get-timeline-sequence-sort-key.js +2 -16
  245. package/dist/helpers/hoverable.d.ts +1 -0
  246. package/dist/helpers/hoverable.js +2 -1
  247. package/dist/helpers/inject-css.js +3 -1
  248. package/dist/helpers/is-current-selected-still.js +4 -2
  249. package/dist/helpers/open-in-remotion-convert.d.ts +7 -0
  250. package/dist/helpers/open-in-remotion-convert.js +18 -0
  251. package/dist/helpers/sort-by-nonce-history.d.ts +1 -5
  252. package/dist/helpers/sort-by-nonce-history.js +3 -148
  253. package/dist/helpers/timeline-node-path-key.d.ts +1 -2
  254. package/dist/helpers/timeline-node-path-key.js +2 -2
  255. package/dist/helpers/use-media-metadata.d.ts +2 -1
  256. package/dist/helpers/use-media-metadata.js +12 -5
  257. package/dist/helpers/use-menu-structure.js +52 -32
  258. package/dist/icons/align-center-horizontal.js +1 -1
  259. package/dist/icons/align-left.js +1 -1
  260. package/dist/icons/align-right.js +1 -1
  261. package/dist/icons/keyboard.d.ts +4 -0
  262. package/dist/icons/keyboard.js +10 -0
  263. package/dist/icons/license.d.ts +4 -0
  264. package/dist/icons/license.js +8 -0
  265. package/dist/icons/package.d.ts +4 -0
  266. package/dist/icons/package.js +8 -0
  267. package/dist/icons/react.js +1 -1
  268. package/dist/icons/remotion-convert.d.ts +4 -0
  269. package/dist/icons/remotion-convert.js +10 -0
  270. package/dist/icons/skills.d.ts +4 -0
  271. package/dist/icons/skills.js +10 -0
  272. package/dist/state/editor-pixel-grid.d.ts +8 -0
  273. package/dist/state/editor-pixel-grid.js +18 -0
  274. package/dist/state/modals.d.ts +6 -5
  275. package/package.json +14 -12
  276. package/dist/components/KeyboardShortcutsExplainer.d.ts +0 -2
  277. package/dist/components/KeyboardShortcutsExplainer.js +0 -194
@@ -3,36 +3,23 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.TimelineFieldRowContent = void 0;
4
4
  const jsx_runtime_1 = require("react/jsx-runtime");
5
5
  const react_1 = require("react");
6
- const timeline_layout_1 = require("../../helpers/timeline-layout");
7
6
  const timeline_field_row_layout_1 = require("./timeline-field-row-layout");
8
7
  const TimelineFieldLabel_1 = require("./TimelineFieldLabel");
9
- const TimelineRowChrome_1 = require("./TimelineRowChrome");
10
- const TimelineRowLayoutContext_1 = require("./TimelineRowLayoutContext");
8
+ const TimelineSelection_1 = require("./TimelineSelection");
11
9
  const Transform3DModeContext_1 = require("./Transform3DModeContext");
12
- const stackedHeaderStyle = {
13
- display: 'flex',
14
- flex: `0 0 ${timeline_layout_1.SCHEMA_FIELD_ROW_HEIGHT}px`,
15
- minWidth: 0,
10
+ const stackedValueStyle = {
11
+ ...timeline_field_row_layout_1.timelineFieldValueColumnStyle,
12
+ paddingLeft: TimelineSelection_1.TIMELINE_SELECTED_LABEL_HORIZONTAL_PADDING,
16
13
  };
17
- const stackedLabelStyle = {
18
- flex: 1,
19
- minWidth: 0,
20
- };
21
- const TimelineFieldRowContent = ({ field, rowDepth, selected, keyframeControls, children }) => {
14
+ const TimelineFieldRowContent = ({ field, rowDepth, selected, children }) => {
22
15
  var _a;
23
16
  const transform3DMode = (0, react_1.useContext)(Transform3DModeContext_1.Transform3DModeContext);
24
- const { keyframeControlsPlacement } = (0, react_1.useContext)(TimelineRowLayoutContext_1.TimelineRowLayoutContext);
25
17
  const stacked = (0, timeline_field_row_layout_1.isTimelineFieldStacked)({ field, transform3DMode });
26
- const compactStacked = stacked && field.typeName !== 'text-content';
27
18
  const label = (jsx_runtime_1.jsx(TimelineFieldLabel_1.TimelineFieldLabel, { rowDepth: rowDepth, selected: selected, label: (_a = field.description) !== null && _a !== void 0 ? _a : field.key, stacked: stacked }));
28
- const value = (jsx_runtime_1.jsx("div", { style: compactStacked
29
- ? timeline_field_row_layout_1.timelineCompactStackedFieldValueColumnStyle
30
- : timeline_field_row_layout_1.timelineFieldValueColumnStyle, children: children }));
31
- const controls = keyframeControlsPlacement === 'after-label' ? (jsx_runtime_1.jsx(TimelineRowChrome_1.TimelineRowKeyframeControlsColumn, { depth: rowDepth, children: keyframeControls })) : null;
19
+ const value = (jsx_runtime_1.jsx("div", { style: stacked ? stackedValueStyle : timeline_field_row_layout_1.timelineFieldValueColumnStyle, children: children }));
32
20
  if (stacked) {
33
- return (jsx_runtime_1.jsxs("div", { style: timeline_field_row_layout_1.timelineStackedFieldContentStyle, children: [controls ? (jsx_runtime_1.jsxs("div", { style: stackedHeaderStyle, children: [
34
- jsx_runtime_1.jsx("div", { style: stackedLabelStyle, children: label }), controls] })) : (label), value] }));
21
+ return (jsx_runtime_1.jsxs("div", { style: timeline_field_row_layout_1.timelineStackedFieldContentStyle, children: [label, value] }));
35
22
  }
36
- return (jsx_runtime_1.jsxs(jsx_runtime_1.Fragment, { children: [label, controls, value] }));
23
+ return (jsx_runtime_1.jsxs(jsx_runtime_1.Fragment, { children: [label, value] }));
37
24
  };
38
25
  exports.TimelineFieldRowContent = TimelineFieldRowContent;
@@ -1,6 +1,5 @@
1
1
  import React from 'react';
2
2
  export declare const TimelineImageInfo: React.FC<{
3
3
  readonly src: string;
4
- readonly visualizationWidth: number;
5
4
  readonly offsetInPixels: number;
6
5
  }>;
@@ -2,7 +2,6 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.TimelineImageInfo = void 0;
4
4
  const jsx_runtime_1 = require("react/jsx-runtime");
5
- const timeline_utils_1 = require("@remotion/timeline-utils");
6
5
  const react_1 = require("react");
7
6
  const colors_1 = require("../../helpers/colors");
8
7
  const timeline_layout_1 = require("../../helpers/timeline-layout");
@@ -14,38 +13,20 @@ const containerStyle = {
14
13
  display: 'flex',
15
14
  borderTopLeftRadius: 2,
16
15
  borderBottomLeftRadius: 2,
16
+ backgroundRepeat: 'repeat-x',
17
+ backgroundSize: 'auto 100%',
18
+ backgroundPositionY: 0,
17
19
  };
18
- const TimelineImageInfo = ({ src, visualizationWidth, offsetInPixels }) => {
19
- const ref = (0, react_1.useRef)(null);
20
- (0, react_1.useEffect)(() => {
21
- const { current } = ref;
22
- if (!current) {
23
- return;
24
- }
25
- const canvas = document.createElement('canvas');
26
- canvas.width = visualizationWidth * window.devicePixelRatio;
27
- canvas.height = HEIGHT * window.devicePixelRatio;
28
- canvas.style.width = visualizationWidth + 'px';
29
- canvas.style.height = HEIGHT + 'px';
30
- const ctx = canvas.getContext('2d');
31
- if (!ctx) {
32
- return;
33
- }
34
- current.appendChild(canvas);
35
- const img = new Image();
36
- img.crossOrigin = 'anonymous';
37
- img.onload = () => {
38
- (0, timeline_utils_1.drawRepeatingImageThumbnail)({
39
- canvas,
40
- image: img,
41
- offsetInPixels: offsetInPixels * window.devicePixelRatio,
42
- });
20
+ const TimelineImageInfo = ({ src, offsetInPixels }) => {
21
+ const style = (0, react_1.useMemo)(() => {
22
+ return {
23
+ ...containerStyle,
24
+ // This is Studio UI, not a Remotion composition that needs to wait for
25
+ // background images before rendering.
26
+ backgroundImage: `url(${JSON.stringify(src)})`,
27
+ backgroundPositionX: -offsetInPixels,
43
28
  };
44
- img.src = src;
45
- return () => {
46
- current.removeChild(canvas);
47
- };
48
- }, [offsetInPixels, src, visualizationWidth]);
49
- return jsx_runtime_1.jsx("div", { ref: ref, style: containerStyle });
29
+ }, [offsetInPixels, src]);
30
+ return jsx_runtime_1.jsx("div", { style: style });
50
31
  };
51
32
  exports.TimelineImageInfo = TimelineImageInfo;
@@ -1,10 +1,9 @@
1
1
  import React from 'react';
2
2
  import type { CanUpdateSequencePropStatus, DragOverrideValue, InteractivitySchema, SequencePropsSubscriptionKey } from 'remotion';
3
3
  import type { SequenceNodePathInfo } from '../../helpers/get-timeline-sequence-sort-key';
4
- import { type TimelineSelection } from './TimelineSelection';
5
4
  export declare const getSelectedKeyframeControlNodePathInfos: ({ clickedNodePathInfo, selectedItems, }: {
6
5
  readonly clickedNodePathInfo: SequenceNodePathInfo;
7
- readonly selectedItems: readonly TimelineSelection[];
6
+ readonly selectedItems: readonly import("@remotion/canvas").CanvasSelectionItem[];
8
7
  }) => readonly SequenceNodePathInfo[];
9
8
  export declare const shouldShowTimelineKeyframeControls: ({ propStatus, selected, keyframable, }: {
10
9
  propStatus: CanUpdateSequencePropStatus | null;
@@ -15,6 +15,7 @@ const call_delete_keyframe_1 = require("./call-delete-keyframe");
15
15
  const get_easing_selection_after_keyframe_delete_1 = require("./get-easing-selection-after-keyframe-delete");
16
16
  const get_keyframe_navigation_1 = require("./get-keyframe-navigation");
17
17
  const get_timeline_keyframes_1 = require("./get-timeline-keyframes");
18
+ const timeline_scroll_logic_1 = require("./timeline-scroll-logic");
18
19
  const TimelineKeyframeDiamondIcon_1 = require("./TimelineKeyframeDiamondIcon");
19
20
  const TimelineKeyframeTracksContext_1 = require("./TimelineKeyframeTracksContext");
20
21
  const TimelineSelection_1 = require("./TimelineSelection");
@@ -405,23 +406,28 @@ const TimelineKeyframeControls = ({ fieldKey, propStatus, nodePath, fileName, ke
405
406
  timelinePosition,
406
407
  tracks,
407
408
  ]);
408
- const seekToDisplayFrame = (0, react_1.useCallback)((frame) => {
409
+ const seekToDisplayFrame = (0, react_1.useCallback)((frame, direction) => {
409
410
  setFrame((current) => {
410
411
  const next = { ...current, [videoConfig.id]: frame };
411
412
  remotion_1.Internals.persistCurrentFrame(next);
412
413
  return next;
413
414
  });
414
- }, [setFrame, videoConfig.id]);
415
+ (0, timeline_scroll_logic_1.ensureFrameIsInViewport)({
416
+ direction,
417
+ durationInFrames: videoConfig.durationInFrames,
418
+ frame,
419
+ });
420
+ }, [setFrame, videoConfig.durationInFrames, videoConfig.id]);
415
421
  const onPrevious = (0, react_1.useCallback)((e) => {
416
422
  e.stopPropagation();
417
423
  if (previousDisplayFrame !== null) {
418
- seekToDisplayFrame(previousDisplayFrame);
424
+ seekToDisplayFrame(previousDisplayFrame, 'fit-left');
419
425
  }
420
426
  }, [previousDisplayFrame, seekToDisplayFrame]);
421
427
  const onNext = (0, react_1.useCallback)((e) => {
422
428
  e.stopPropagation();
423
429
  if (nextDisplayFrame !== null) {
424
- seekToDisplayFrame(nextDisplayFrame);
430
+ seekToDisplayFrame(nextDisplayFrame, 'fit-right');
425
431
  }
426
432
  }, [nextDisplayFrame, seekToDisplayFrame]);
427
433
  const onToggleKeyframe = (0, react_1.useCallback)(async (e) => {
@@ -19,10 +19,12 @@ const TimelinePlayCursorSyncer = () => {
19
19
  const compositionId = canvasContent && canvasContent.type === 'composition'
20
20
  ? canvasContent.compositionId
21
21
  : null;
22
+ // Asset previews have a synthetic video config, but no composition ID
23
+ // with which to look up a persisted timeline zoom.
22
24
  const zoom = compositionId
23
25
  ? ((_a = zoomMap[compositionId]) !== null && _a !== void 0 ? _a : timeline_zoom_1.TIMELINE_MIN_ZOOM)
24
- : null;
25
- if (zoom && video) {
26
+ : timeline_zoom_1.TIMELINE_MIN_ZOOM;
27
+ if (video) {
26
28
  (0, imperative_state_1.setCurrentFrame)(timelinePosition);
27
29
  (0, imperative_state_1.setCurrentZoom)(zoom);
28
30
  (0, imperative_state_1.setCurrentDuration)(video.durationInFrames);
@@ -31,7 +31,7 @@ const isTimelinePrimitiveFieldInfo = (field) => {
31
31
  exports.isTimelinePrimitiveFieldInfo = isTimelinePrimitiveFieldInfo;
32
32
  const TimelinePrimitiveFieldValue = ({ field, onSave, onDragValueChange, onDragEnd, propStatus, effectiveValue, scaleLockNodePath, }) => {
33
33
  if (field.typeName === 'number') {
34
- return (jsx_runtime_1.jsx("span", { children: jsx_runtime_1.jsx(TimelineNumberField_1.TimelineNumberField, { effectiveValue: effectiveValue, field: field, onDragEnd: onDragEnd, onDragValueChange: onDragValueChange, onSave: onSave, propStatus: propStatus }) }));
34
+ return (jsx_runtime_1.jsx(TimelineNumberField_1.TimelineNumberField, { effectiveValue: effectiveValue, field: field, onDragEnd: onDragEnd, onDragValueChange: onDragValueChange, onSave: onSave, propStatus: propStatus }));
35
35
  }
36
36
  if (field.typeName === 'rotation-css' ||
37
37
  field.typeName === 'rotation-degrees') {
@@ -14,10 +14,8 @@ const containerStyle = {
14
14
  gap: 4,
15
15
  };
16
16
  const compactDraggerStyle = {
17
- paddingBottom: 2,
18
17
  paddingLeft: 2,
19
18
  paddingRight: 2,
20
- paddingTop: 2,
21
19
  };
22
20
  const ROTATION_LABELS = ['X', 'Y', 'Z'];
23
21
  const TimelineRotationField = ({ field, effectiveValue, propStatus, onSave, onDragValueChange, onDragEnd, }) => {
@@ -18,7 +18,6 @@ export declare const TimelineRowChrome: React.FC<{
18
18
  readonly showSelectedBackground: boolean;
19
19
  readonly containsSelection: boolean;
20
20
  readonly hovered?: boolean;
21
- readonly isFieldRow: boolean;
22
21
  readonly outerHeight: number | null;
23
22
  readonly onDragLeave?: (e: React.DragEvent<HTMLDivElement>) => void;
24
23
  readonly onDragOver?: (e: React.DragEvent<HTMLDivElement>) => void;
@@ -69,8 +69,8 @@ const TimelineRowKeyframeControlsColumn = ({ children, depth }) => {
69
69
  return (jsx_runtime_1.jsx("div", { style: leftChromeStyle, children: jsx_runtime_1.jsx("div", { style: style, children: children }) }));
70
70
  };
71
71
  exports.TimelineRowKeyframeControlsColumn = TimelineRowKeyframeControlsColumn;
72
- const TimelineRowChrome = ({ depth, eye, keyframeControls, arrow, children, style, selected, selectable, onSelect, showSelectedBackground, containsSelection, hovered = false, isFieldRow, outerHeight, onDragLeave, onDragOver, onDrop, onDoubleClick, onPointerEnter, onPointerLeave, }) => {
73
- const { basePadding, keyframeControlsPlacement, rowBorderRadius, rowHorizontalMargin, } = (0, react_1.useContext)(TimelineRowLayoutContext_1.TimelineRowLayoutContext);
72
+ const TimelineRowChrome = ({ depth, eye, keyframeControls, arrow, children, style, selected, selectable, onSelect, showSelectedBackground, containsSelection, hovered = false, outerHeight, onDragLeave, onDragOver, onDrop, onDoubleClick, onPointerEnter, onPointerLeave, }) => {
73
+ const { basePadding, rowBorderRadius, rowHorizontalMargin } = (0, react_1.useContext)(TimelineRowLayoutContext_1.TimelineRowLayoutContext);
74
74
  const selectedBackground = (0, react_1.useContext)(exports.TimelineRowSelectedBackgroundContext);
75
75
  const indentWidth = (0, timeline_row_layout_1.getTimelineRowIndentWidth)(depth);
76
76
  const chromeColumnStyle = (0, react_1.useMemo)(() => ({
@@ -135,8 +135,7 @@ const TimelineRowChrome = ({ depth, eye, keyframeControls, arrow, children, styl
135
135
  backgroundColor: highlightBackground,
136
136
  };
137
137
  }, [outerHeight, highlightBackground]);
138
- const shouldRenderLeftChrome = !isFieldRow || keyframeControlsPlacement === 'before-label';
139
- const chrome = (jsx_runtime_1.jsxs(jsx_runtime_1.Fragment, { children: [shouldRenderLeftChrome ? (keyframeControls ? (jsx_runtime_1.jsx(exports.TimelineRowKeyframeControlsColumn, { depth: depth, children: keyframeControls })) : (jsx_runtime_1.jsx("div", { style: leftChromeStyle, children: jsx_runtime_1.jsxs("div", { style: chromeColumnStyle, children: [eye, indentWidth > 0 ? jsx_runtime_1.jsx(Padder_1.Padder, { depth: depth }) : null, arrow] }) }))) : null, children] }));
138
+ const chrome = (jsx_runtime_1.jsxs(jsx_runtime_1.Fragment, { children: [keyframeControls ? (jsx_runtime_1.jsx(exports.TimelineRowKeyframeControlsColumn, { depth: depth, children: keyframeControls })) : (jsx_runtime_1.jsx("div", { style: leftChromeStyle, children: jsx_runtime_1.jsxs("div", { style: chromeColumnStyle, children: [eye, indentWidth > 0 ? jsx_runtime_1.jsx(Padder_1.Padder, { depth: depth }) : null, arrow] }) })), children] }));
140
139
  if (outerStyle) {
141
140
  return (jsx_runtime_1.jsx("div", { style: outerStyle, onDragLeave: onDragLeave, onDragOver: onDragOver, onDrop: onDrop, onPointerDown: selectable ? onPointerDown : undefined, onContextMenu: selectable ? onContextMenu : undefined, onDoubleClick: onDoubleClickIfNotInteractive, onPointerEnter: onPointerEnter, onPointerLeave: onPointerLeave, children: jsx_runtime_1.jsx("div", { style: innerRowStyle, children: chrome }) }));
142
141
  }
@@ -2,7 +2,6 @@ type TimelineRowLayout = {
2
2
  readonly basePadding: number;
3
3
  readonly highlightSelectedLabel: boolean;
4
4
  readonly keyframeControlsPadding: number;
5
- readonly keyframeControlsPlacement: 'before-label' | 'after-label';
6
5
  readonly rowBorderRadius: number;
7
6
  readonly rowHorizontalMargin: number;
8
7
  };
@@ -2,21 +2,18 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.TimelineRowLayoutContext = exports.INSPECTOR_TIMELINE_ROW_LAYOUT = void 0;
4
4
  const react_1 = require("react");
5
- const InspectorPanelLayout_1 = require("../InspectorPanelLayout");
6
5
  const timeline_row_layout_1 = require("./timeline-row-layout");
7
6
  exports.INSPECTOR_TIMELINE_ROW_LAYOUT = {
8
7
  basePadding: timeline_row_layout_1.INSPECTOR_ROW_BASE_PADDING,
9
8
  highlightSelectedLabel: false,
10
9
  keyframeControlsPadding: 0,
11
- keyframeControlsPlacement: 'after-label',
12
10
  rowBorderRadius: 4,
13
- rowHorizontalMargin: InspectorPanelLayout_1.INSPECTOR_PANEL_HORIZONTAL_PADDING,
11
+ rowHorizontalMargin: 4,
14
12
  };
15
13
  exports.TimelineRowLayoutContext = (0, react_1.createContext)({
16
14
  basePadding: timeline_row_layout_1.TIMELINE_ROW_BASE_PADDING,
17
15
  highlightSelectedLabel: true,
18
16
  keyframeControlsPadding: timeline_row_layout_1.TIMELINE_ROW_BASE_PADDING,
19
- keyframeControlsPlacement: 'before-label',
20
17
  rowBorderRadius: 0,
21
18
  rowHorizontalMargin: 0,
22
19
  });
@@ -12,18 +12,14 @@ const timeline_field_utils_1 = require("./timeline-field-utils");
12
12
  const TimelineLayerEye_1 = require("./TimelineLayerEye");
13
13
  const Transform3DModeContext_1 = require("./Transform3DModeContext");
14
14
  const leftDraggerStyle = {
15
- paddingBottom: 2,
16
15
  paddingLeft: 0,
17
- paddingTop: 2,
18
16
  textAlign: 'left',
19
- width: 52,
17
+ width: 40,
20
18
  };
21
19
  const rightDraggerStyle = {
22
- paddingBottom: 2,
23
20
  paddingRight: 0,
24
- paddingTop: 2,
25
21
  textAlign: 'left',
26
- width: 52,
22
+ width: 40,
27
23
  };
28
24
  const containerStyle = {
29
25
  alignItems: 'center',
@@ -37,6 +37,7 @@ exports.TimelineFieldValue = exports.TimelineNonEditableStatus = exports.Unsuppo
37
37
  const jsx_runtime_1 = require("react/jsx-runtime");
38
38
  const react_1 = __importStar(require("react"));
39
39
  const colors_1 = require("../../helpers/colors");
40
+ const hoverable_1 = require("../../helpers/hoverable");
40
41
  const modals_1 = require("../../state/modals");
41
42
  const SettingsContext_1 = require("../SettingsContext");
42
43
  const timeline_field_display_utils_1 = require("./timeline-field-display-utils");
@@ -62,7 +63,12 @@ const computedValue = {
62
63
  pointerEvents: 'none',
63
64
  };
64
65
  const fixLinkBase = {
65
- color: colors_1.LIGHT_TEXT,
66
+ ...(0, hoverable_1.hoverableStyle)({
67
+ idleBackground: colors_1.TRANSPARENT,
68
+ hoverBackground: colors_1.TRANSPARENT,
69
+ idleColor: colors_1.LIGHT_TEXT,
70
+ hoverColor: colors_1.WHITE,
71
+ }),
66
72
  display: 'inline-block',
67
73
  fontSize: 10,
68
74
  fontStyle: 'normal',
@@ -73,7 +79,7 @@ const fixLinkBase = {
73
79
  appearance: 'none',
74
80
  background: 'none',
75
81
  border: 'none',
76
- cursor: 'pointer',
82
+ cursor: 'default',
77
83
  padding: 0,
78
84
  };
79
85
  const UnsupportedStatus = ({ label, onFix, formattedValue }) => {
@@ -94,7 +100,7 @@ const UnsupportedStatus = ({ label, onFix, formattedValue }) => {
94
100
  event.stopPropagation();
95
101
  };
96
102
  return (jsx_runtime_1.jsxs("span", { style: unsupportedStatusWrapper, onPointerEnter: () => setHovered(true), onPointerLeave: () => setHovered(false), children: [
97
- jsx_runtime_1.jsx("span", { style: formattedValue ? computedValue : unsupportedLabel, inert: formattedValue, children: label }), onFix ? (jsx_runtime_1.jsx("button", { type: "button", style: fixLink, title: "Fix computed Studio value", onClick: (event) => {
103
+ jsx_runtime_1.jsx("span", { style: formattedValue ? computedValue : unsupportedLabel, inert: formattedValue, children: label }), onFix ? (jsx_runtime_1.jsx("button", { type: "button", className: `${hoverable_1.FOCUS_VISIBLE_ONLY_CLASS_NAME} ${hoverable_1.HOVERABLE_CLASS_NAME}`, style: fixLink, title: "Fix computed Studio value", onClick: (event) => {
98
104
  stopMousePropagation(event);
99
105
  onFix();
100
106
  }, onDoubleClick: stopMousePropagation, onPointerDown: stopPointerPropagation, onFocus: () => setFocused(true), onBlur: () => setFocused(false), tabIndex: visible ? 0 : -1, children: "Fix" })) : null] }));
@@ -1,3 +1,4 @@
1
+ import { type CanvasSelectionInteraction, type CanvasSelectionItem, type CanvasSelectionSnapshot } from '@remotion/canvas';
1
2
  import React, { type CSSProperties } from 'react';
2
3
  import { type GetDragOverrides, type GetEffectDragOverrides, type PropStatuses } from 'remotion';
3
4
  import type { SequenceNodePathInfo, TimelineTrackData } from '../../helpers/get-timeline-sequence-sort-key';
@@ -20,46 +21,11 @@ export declare const getTimelineRowHighlightBackground: ({ showSelectedBackgroun
20
21
  }) => string | undefined;
21
22
  export declare const TIMELINE_BACKGROUND = "#15181B";
22
23
  export declare const TIMELINE_TICKS_BACKGROUND = "rgb(31,36,40)";
23
- export type TimelineSelection = {
24
- readonly type: 'guide';
25
- readonly guideId: string;
26
- } | {
27
- readonly type: 'sequence';
28
- readonly nodePathInfo: SequenceNodePathInfo;
29
- } | {
30
- readonly type: 'sequence-prop';
31
- readonly nodePathInfo: SequenceNodePathInfo;
32
- readonly key: string;
33
- } | {
34
- readonly type: 'sequence-all-effects';
35
- readonly nodePathInfo: SequenceNodePathInfo;
36
- } | {
37
- readonly type: 'sequence-effect';
38
- readonly nodePathInfo: SequenceNodePathInfo;
39
- readonly i: number;
40
- } | {
41
- readonly type: 'sequence-effect-prop';
42
- readonly nodePathInfo: SequenceNodePathInfo;
43
- readonly i: number;
44
- readonly key: string;
45
- } | {
46
- readonly type: 'keyframe';
47
- readonly nodePathInfo: SequenceNodePathInfo;
48
- readonly frame: number;
49
- } | {
50
- readonly type: 'easing';
51
- readonly nodePathInfo: SequenceNodePathInfo;
52
- readonly fromFrame: number;
53
- readonly toFrame: number;
54
- readonly segmentIndex: number;
55
- };
24
+ export type TimelineSelection = CanvasSelectionItem;
56
25
  export type TimelineEasingSelection = Extract<TimelineSelection, {
57
26
  type: 'easing';
58
27
  }>;
59
- export type TimelineSelectionInteraction = {
60
- readonly shiftKey: boolean;
61
- readonly toggleKey: boolean;
62
- };
28
+ export type TimelineSelectionInteraction = CanvasSelectionInteraction;
63
29
  export declare const isTimelineSelectionModifierEvent: ({ shiftKey, metaKey, ctrlKey, }: {
64
30
  readonly shiftKey: boolean;
65
31
  readonly metaKey: boolean;
@@ -71,10 +37,7 @@ export declare const shouldSelectTimelineRowOnPointerDown: ({ selected, shiftKey
71
37
  readonly metaKey: boolean;
72
38
  readonly ctrlKey: boolean;
73
39
  }) => boolean;
74
- export type TimelineSelectionState = {
75
- readonly selectedItems: readonly TimelineSelection[];
76
- readonly anchor: TimelineSelection | null;
77
- };
40
+ export type TimelineSelectionState = CanvasSelectionSnapshot;
78
41
  export declare const EMPTY_TIMELINE_SELECTION_STATE: TimelineSelectionState;
79
42
  export type TimelineMarqueeRect = {
80
43
  readonly left: number;
@@ -88,16 +51,16 @@ export type TimelineMarqueeSelectionCandidate = {
88
51
  readonly rect: TimelineMarqueeRect;
89
52
  };
90
53
  export declare const getTimelineSelectionAfterInteraction: ({ currentState, clickedItem, interaction, allSelectableItems, }: {
91
- readonly currentState: TimelineSelectionState;
92
- readonly clickedItem: TimelineSelection;
93
- readonly interaction: TimelineSelectionInteraction;
94
- readonly allSelectableItems: readonly TimelineSelection[];
95
- }) => TimelineSelectionState;
54
+ readonly currentState: CanvasSelectionSnapshot;
55
+ readonly clickedItem: CanvasSelectionItem;
56
+ readonly interaction: CanvasSelectionInteraction;
57
+ readonly allSelectableItems: readonly CanvasSelectionItem[];
58
+ }) => CanvasSelectionSnapshot;
96
59
  export declare const getAvailableTimelineSelectionState: ({ availableKeys, availableItemsByKey, state, }: {
97
60
  readonly availableKeys: ReadonlySet<string>;
98
- readonly availableItemsByKey?: ReadonlyMap<string, TimelineSelection> | undefined;
99
- readonly state: TimelineSelectionState;
100
- }) => TimelineSelectionState;
61
+ readonly availableItemsByKey?: ReadonlyMap<string, CanvasSelectionItem> | undefined;
62
+ readonly state: CanvasSelectionSnapshot;
63
+ }) => CanvasSelectionSnapshot;
101
64
  export declare const getNormalizedTimelineMarqueeRect: ({ startX, startY, currentX, currentY, }: {
102
65
  readonly startX: number;
103
66
  readonly startY: number;
@@ -119,12 +82,12 @@ export declare const getTimelineMarqueeSelection: ({ candidates, lockedSelection
119
82
  readonly marqueeRect: TimelineMarqueeRect;
120
83
  }) => {
121
84
  readonly lockedSelectionKind: TimelineMarqueeSelectionKind | null;
122
- readonly selectedItems: readonly TimelineSelection[];
85
+ readonly selectedItems: readonly CanvasSelectionItem[];
123
86
  };
124
87
  export declare const extendTimelineMarqueeSelection: ({ currentSelection, marqueeSelection, }: {
125
- readonly currentSelection: readonly TimelineSelection[];
126
- readonly marqueeSelection: readonly TimelineSelection[];
127
- }) => readonly TimelineSelection[];
88
+ readonly currentSelection: readonly CanvasSelectionItem[];
89
+ readonly marqueeSelection: readonly CanvasSelectionItem[];
90
+ }) => readonly CanvasSelectionItem[];
128
91
  type TimelineSelectionContextValue = {
129
92
  readonly canSelect: boolean;
130
93
  readonly revealRequest: TimelineSelectionRevealRequest | null;
@@ -151,23 +114,23 @@ type TimelineSelectionRevealRequest = {
151
114
  readonly item: TimelineSelection;
152
115
  readonly token: number;
153
116
  };
154
- export declare const getTimelineSelectionFromNodePathInfo: (nodePathInfo: SequenceNodePathInfo | null) => TimelineSelection | null;
155
- export declare const getTimelineSelectionKey: (item: TimelineSelection) => string;
156
- export declare const getSelectableTimelineSequenceSelections: (tracks: readonly Pick<TimelineTrackData, "nodePathInfo">[]) => TimelineSelection[];
117
+ export declare const getTimelineSelectionFromNodePathInfo: (nodePathInfo: SequenceNodePathInfo | null) => CanvasSelectionItem | null;
118
+ export declare const getTimelineSelectionKey: (item: CanvasSelectionItem) => string;
119
+ export declare const getSelectableTimelineSequenceSelections: (tracks: readonly Pick<TimelineTrackData, "nodePathInfo">[]) => CanvasSelectionItem[];
157
120
  export declare const getSelectableTimelineItems: ({ getDragOverrides, getEffectDragOverrides, getIsExpanded, propStatuses, selectedItems, timeline, timelinePosition, }: {
158
121
  readonly getDragOverrides: GetDragOverrides;
159
122
  readonly getEffectDragOverrides: GetEffectDragOverrides;
160
123
  readonly getIsExpanded: GetIsExpanded;
161
124
  readonly propStatuses: PropStatuses;
162
- readonly selectedItems: readonly TimelineSelection[];
125
+ readonly selectedItems: readonly CanvasSelectionItem[];
163
126
  readonly timeline: readonly TimelineTrackData[];
164
127
  readonly timelinePosition: number;
165
- }) => TimelineSelection[];
128
+ }) => CanvasSelectionItem[];
166
129
  export declare const getTimelineSequenceSelectionKey: (nodePathInfo: SequenceNodePathInfo) => string;
167
130
  export declare const TimelineSelectAllKeybindings: React.FC<{
168
131
  readonly timeline: readonly TimelineTrackData[];
169
132
  }>;
170
- export declare const getTimelineSequenceSelectionForEscape: (selectedItems: readonly TimelineSelection[]) => {
133
+ export declare const getTimelineSequenceSelectionForEscape: (selectedItems: readonly CanvasSelectionItem[]) => {
171
134
  readonly type: "sequence";
172
135
  readonly nodePathInfo: SequenceNodePathInfo;
173
136
  } | null;
@@ -186,17 +149,17 @@ export declare const useTimelineMarqueeSelection: () => {
186
149
  marqueeRect: TimelineMarqueeRect | null;
187
150
  onPointerDownCapture: (event: React.PointerEvent<HTMLDivElement>) => void;
188
151
  };
189
- export declare const useTimelineMarqueeSelectableItem: (item: TimelineSelection | null, ref: React.RefObject<Element | null>) => void;
152
+ export declare const useTimelineMarqueeSelectableItem: (item: CanvasSelectionItem | null, ref: React.RefObject<Element | null>) => void;
190
153
  export declare const useTimelineRowSelection: (nodePathInfo: SequenceNodePathInfo | null) => {
191
- onSelect: (interaction?: TimelineSelectionInteraction | undefined) => void;
154
+ onSelect: (interaction?: CanvasSelectionInteraction | undefined) => void;
192
155
  selectable: boolean;
193
- selectionItem: TimelineSelection | null;
156
+ selectionItem: CanvasSelectionItem | null;
194
157
  selected: boolean;
195
158
  };
196
159
  export declare const useTimelineKeyframeSelection: (nodePathInfo: SequenceNodePathInfo, frame: number) => {
197
- onSelect: (interaction?: TimelineSelectionInteraction | undefined) => void;
160
+ onSelect: (interaction?: CanvasSelectionInteraction | undefined) => void;
198
161
  selectable: boolean;
199
- selectionItem: TimelineSelection;
162
+ selectionItem: CanvasSelectionItem;
200
163
  selected: boolean;
201
164
  };
202
165
  export declare const useTimelineEasingSelection: ({ nodePathInfo, fromFrame, toFrame, segmentIndex, }: {
@@ -205,7 +168,7 @@ export declare const useTimelineEasingSelection: ({ nodePathInfo, fromFrame, toF
205
168
  readonly toFrame: number;
206
169
  readonly segmentIndex: number;
207
170
  }) => {
208
- onSelect: (interaction?: TimelineSelectionInteraction | undefined) => void;
171
+ onSelect: (interaction?: CanvasSelectionInteraction | undefined) => void;
209
172
  selectable: boolean;
210
173
  selected: boolean;
211
174
  selectionItem: {
@@ -221,7 +184,7 @@ export declare const useTimelineGuideSelection: (guideId: string) => {
221
184
  onSelect: () => void;
222
185
  selectable: boolean;
223
186
  selected: boolean;
224
- selectionItem: TimelineSelection;
187
+ selectionItem: CanvasSelectionItem;
225
188
  };
226
189
  export declare const useTimelineRowContainsSelection: (nodePathInfo: SequenceNodePathInfo | null) => boolean;
227
190
  export declare const useTimelineRowHighlightBackground: (nodePathInfo: SequenceNodePathInfo | null, { hovered, selectedBackground, }: {