@remotion/studio 4.0.472 → 4.0.474

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 (165) hide show
  1. package/dist/api/rename-static-file.d.ts +6 -0
  2. package/dist/api/rename-static-file.js +18 -0
  3. package/dist/components/AssetSelector.js +45 -4
  4. package/dist/components/AssetSelectorItem.js +177 -27
  5. package/dist/components/Canvas.js +131 -11
  6. package/dist/components/ConfirmationDialog-types.d.ts +8 -0
  7. package/dist/components/ConfirmationDialog-types.js +2 -0
  8. package/dist/components/ConfirmationDialog.d.ts +7 -0
  9. package/dist/components/ConfirmationDialog.js +103 -0
  10. package/dist/components/ContextMenu.d.ts +9 -1
  11. package/dist/components/ContextMenu.js +49 -5
  12. package/dist/components/CurrentAsset.d.ts +1 -0
  13. package/dist/components/CurrentAsset.js +13 -2
  14. package/dist/components/EditorContent.js +15 -2
  15. package/dist/components/EditorContexts.js +2 -1
  16. package/dist/components/EditorRuler/Ruler.js +2 -0
  17. package/dist/components/ExplorerPanel.d.ts +0 -4
  18. package/dist/components/ExplorerPanel.js +8 -4
  19. package/dist/components/ExplorerPanelRef.d.ts +4 -0
  20. package/dist/components/ExplorerPanelRef.js +5 -0
  21. package/dist/components/FilePreview.d.ts +1 -1
  22. package/dist/components/InitialCompositionLoader.d.ts +0 -1
  23. package/dist/components/InitialCompositionLoader.js +5 -27
  24. package/dist/components/Menu/MenuItem.js +7 -1
  25. package/dist/components/Menu/SubMenu.js +5 -1
  26. package/dist/components/Menu/portals.js +17 -8
  27. package/dist/components/MenuToolbar.js +5 -1
  28. package/dist/components/ModalContainer.js +6 -1
  29. package/dist/components/Modals.js +5 -2
  30. package/dist/components/NewComposition/ComboBox.js +8 -2
  31. package/dist/components/NewComposition/InputDragger.d.ts +1 -0
  32. package/dist/components/NewComposition/InputDragger.js +9 -6
  33. package/dist/components/NewComposition/RenameStaticFile.d.ts +4 -0
  34. package/dist/components/NewComposition/RenameStaticFile.js +118 -0
  35. package/dist/components/OptionsPanel.js +5 -1
  36. package/dist/components/OutlineToggle.d.ts +2 -0
  37. package/dist/components/OutlineToggle.js +20 -0
  38. package/dist/components/Preview.d.ts +0 -2
  39. package/dist/components/Preview.js +23 -33
  40. package/dist/components/PreviewToolbar.js +19 -6
  41. package/dist/components/RenderButton.js +8 -2
  42. package/dist/components/RenderPreview.js +2 -2
  43. package/dist/components/SelectedOutlineOverlay.d.ts +29 -3
  44. package/dist/components/SelectedOutlineOverlay.js +259 -80
  45. package/dist/components/ShowOutlinesProvider.d.ts +4 -0
  46. package/dist/components/ShowOutlinesProvider.js +24 -0
  47. package/dist/components/SizeSelector.js +3 -3
  48. package/dist/components/Splitter/SplitterHandle.js +2 -0
  49. package/dist/components/StaticFilePreview.js +2 -2
  50. package/dist/components/Timeline/KeyframeSettingsModal.d.ts +15 -0
  51. package/dist/components/Timeline/KeyframeSettingsModal.js +150 -0
  52. package/dist/components/Timeline/SequencePropsObserver.js +3 -3
  53. package/dist/components/Timeline/Timeline.js +3 -13
  54. package/dist/components/Timeline/TimelineClipboardKeybindings.d.ts +26 -3
  55. package/dist/components/Timeline/TimelineClipboardKeybindings.js +242 -25
  56. package/dist/components/Timeline/TimelineDeleteKeybindings.js +23 -11
  57. package/dist/components/Timeline/TimelineEffectItem.js +8 -7
  58. package/dist/components/Timeline/TimelineEffectPropItem.js +69 -19
  59. package/dist/components/Timeline/TimelineExpandedKeyframeRow.js +6 -1
  60. package/dist/components/Timeline/TimelineExpandedSection.js +5 -5
  61. package/dist/components/Timeline/TimelineKeyframeControls.js +13 -23
  62. package/dist/components/Timeline/TimelineKeyframeDiamond.js +24 -22
  63. package/dist/components/Timeline/TimelineKeyframeDiamondIcon.d.ts +6 -0
  64. package/dist/components/Timeline/TimelineKeyframeDiamondIcon.js +14 -0
  65. package/dist/components/Timeline/TimelineKeyframeDragState.d.ts +17 -0
  66. package/dist/components/Timeline/TimelineKeyframeDragState.js +39 -0
  67. package/dist/components/Timeline/TimelineKeyframeEasingLine.d.ts +9 -0
  68. package/dist/components/Timeline/TimelineKeyframeEasingLine.js +120 -0
  69. package/dist/components/Timeline/TimelineKeyframedValue.js +1 -1
  70. package/dist/components/Timeline/TimelineList.js +2 -2
  71. package/dist/components/Timeline/TimelineMediaInfo.d.ts +0 -13
  72. package/dist/components/Timeline/TimelineMediaInfo.js +8 -73
  73. package/dist/components/Timeline/TimelineNumberField.js +15 -7
  74. package/dist/components/Timeline/TimelineRotationField.js +17 -11
  75. package/dist/components/Timeline/TimelineScaleField.js +17 -13
  76. package/dist/components/Timeline/TimelineSelection.d.ts +15 -0
  77. package/dist/components/Timeline/TimelineSelection.js +26 -1
  78. package/dist/components/Timeline/TimelineSequence.js +6 -6
  79. package/dist/components/Timeline/TimelineSequenceItem.d.ts +1 -0
  80. package/dist/components/Timeline/TimelineSequenceItem.js +297 -36
  81. package/dist/components/Timeline/TimelineSequencePropItem.js +113 -48
  82. package/dist/components/Timeline/TimelineSequenceRightEdgeDragHandle.d.ts +5 -5
  83. package/dist/components/Timeline/TimelineSequenceRightEdgeDragHandle.js +69 -70
  84. package/dist/components/Timeline/TimelineTranslateField.js +24 -19
  85. package/dist/components/Timeline/TimelineUvCoordinateField.js +18 -12
  86. package/dist/components/Timeline/apply-effect-response-to-prop-statuses.d.ts +5 -0
  87. package/dist/components/Timeline/apply-effect-response-to-prop-statuses.js +19 -0
  88. package/dist/components/Timeline/call-add-keyframe.d.ts +5 -5
  89. package/dist/components/Timeline/call-add-keyframe.js +6 -4
  90. package/dist/components/Timeline/call-delete-keyframe.d.ts +7 -7
  91. package/dist/components/Timeline/call-delete-keyframe.js +7 -7
  92. package/dist/components/Timeline/call-move-keyframe.d.ts +19 -0
  93. package/dist/components/Timeline/call-move-keyframe.js +71 -0
  94. package/dist/components/Timeline/call-update-keyframe-settings.d.ts +22 -0
  95. package/dist/components/Timeline/call-update-keyframe-settings.js +52 -0
  96. package/dist/components/Timeline/delete-selected-keyframe.d.ts +5 -5
  97. package/dist/components/Timeline/delete-selected-keyframe.js +5 -5
  98. package/dist/components/Timeline/delete-selected-timeline-item.d.ts +10 -7
  99. package/dist/components/Timeline/delete-selected-timeline-item.js +37 -23
  100. package/dist/components/Timeline/duplicate-selected-timeline-item.d.ts +4 -2
  101. package/dist/components/Timeline/duplicate-selected-timeline-item.js +39 -34
  102. package/dist/components/Timeline/get-bounded-keyframe-drag-delta.d.ts +8 -0
  103. package/dist/components/Timeline/get-bounded-keyframe-drag-delta.js +12 -0
  104. package/dist/components/Timeline/get-keyframe-navigation.d.ts +2 -2
  105. package/dist/components/Timeline/get-keyframe-navigation.js +14 -6
  106. package/dist/components/Timeline/get-node-keyframes.d.ts +3 -3
  107. package/dist/components/Timeline/get-node-keyframes.js +4 -4
  108. package/dist/components/Timeline/get-timeline-easing-segments.d.ts +9 -0
  109. package/dist/components/Timeline/get-timeline-easing-segments.js +19 -0
  110. package/dist/components/Timeline/reset-selected-timeline-props.d.ts +7 -7
  111. package/dist/components/Timeline/reset-selected-timeline-props.js +13 -12
  112. package/dist/components/Timeline/save-effect-prop.d.ts +16 -5
  113. package/dist/components/Timeline/save-effect-prop.js +37 -19
  114. package/dist/components/Timeline/save-prop-queue.d.ts +4 -3
  115. package/dist/components/Timeline/save-prop-queue.js +6 -3
  116. package/dist/components/Timeline/save-sequence-prop.d.ts +5 -10
  117. package/dist/components/Timeline/save-sequence-prop.js +35 -32
  118. package/dist/components/Timeline/should-clear-selection-on-pointer-down.d.ts +3 -0
  119. package/dist/components/Timeline/should-clear-selection-on-pointer-down.js +7 -0
  120. package/dist/components/Timeline/timeline-asset-link.d.ts +13 -0
  121. package/dist/components/Timeline/timeline-asset-link.js +37 -0
  122. package/dist/components/Timeline/timeline-field-utils.d.ts +10 -0
  123. package/dist/components/Timeline/timeline-field-utils.js +26 -5
  124. package/dist/components/Timeline/timeline-translate-utils.d.ts +1 -1
  125. package/dist/components/Timeline/timeline-translate-utils.js +6 -4
  126. package/dist/components/Timeline/use-expanded-track-keyframe-rows.js +7 -7
  127. package/dist/components/Timeline/use-sequence-props-subscription.js +3 -3
  128. package/dist/components/Timeline/use-timeline-height.js +3 -3
  129. package/dist/components/Timeline/use-timeline-keyframe-drag.d.ts +10 -0
  130. package/dist/components/Timeline/use-timeline-keyframe-drag.js +380 -0
  131. package/dist/components/import-assets.d.ts +31 -0
  132. package/dist/components/import-assets.js +216 -17
  133. package/dist/components/load-canvas-content-from-url.d.ts +1 -0
  134. package/dist/components/load-canvas-content-from-url.js +9 -3
  135. package/dist/components/use-select-asset.d.ts +1 -0
  136. package/dist/components/use-select-asset.js +30 -0
  137. package/dist/error-overlay/error-origin.d.ts +3 -0
  138. package/dist/error-overlay/error-origin.js +42 -0
  139. package/dist/error-overlay/react-overlay/listen-to-runtime-errors.js +6 -2
  140. package/dist/error-overlay/remotion-overlay/ErrorLoader.js +38 -0
  141. package/dist/error-overlay/remotion-overlay/ShortcutHint.js +1 -1
  142. package/dist/error-overlay/remotion-overlay/log-studio-error.d.ts +3 -0
  143. package/dist/error-overlay/remotion-overlay/log-studio-error.js +27 -0
  144. package/dist/esm/{chunk-48grt472.js → chunk-xjvc8qen.js} +21838 -18862
  145. package/dist/esm/internals.mjs +21838 -18862
  146. package/dist/esm/previewEntry.mjs +21127 -18127
  147. package/dist/esm/renderEntry.mjs +1 -1
  148. package/dist/helpers/get-asset-metadata.js +2 -2
  149. package/dist/helpers/get-preview-file-type.d.ts +2 -0
  150. package/dist/helpers/get-preview-file-type.js +33 -0
  151. package/dist/helpers/install-required-package.d.ts +1 -0
  152. package/dist/helpers/install-required-package.js +39 -0
  153. package/dist/helpers/remote-asset-drag.d.ts +4 -0
  154. package/dist/helpers/remote-asset-drag.js +73 -0
  155. package/dist/helpers/timeline-layout.d.ts +6 -6
  156. package/dist/helpers/timeline-layout.js +5 -5
  157. package/dist/helpers/use-asset-drag-events.d.ts +5 -2
  158. package/dist/helpers/use-asset-drag-events.js +13 -2
  159. package/dist/hot-middleware-client/client.js +6 -0
  160. package/dist/state/editor-outlines.d.ts +8 -0
  161. package/dist/state/editor-outlines.js +18 -0
  162. package/dist/state/modals.d.ts +16 -2
  163. package/package.json +10 -10
  164. package/dist/helpers/detect-file-type.d.ts +0 -69
  165. package/dist/helpers/detect-file-type.js +0 -278
@@ -17,27 +17,32 @@ const containerStyle = {
17
17
  gap: 4,
18
18
  };
19
19
  const TimelineTranslateField = ({ field, propStatus, effectiveValue, onSave, onDragValueChange, onDragEnd, }) => {
20
- var _a;
21
20
  const [dragX, setDragX] = (0, react_1.useState)(null);
22
21
  const [dragY, setDragY] = (0, react_1.useState)(null);
23
22
  const [codeX, codeY] = (0, react_1.useMemo)(() => (0, timeline_translate_utils_1.parseTranslate)(String(effectiveValue !== null && effectiveValue !== void 0 ? effectiveValue : '0px 0px')), [effectiveValue]);
24
- const step = field.fieldSchema.type === 'translate' ? ((_a = field.fieldSchema.step) !== null && _a !== void 0 ? _a : 1) : 1;
25
- const stepDecimals = (0, react_1.useMemo)(() => (0, timeline_field_utils_1.getDecimalPlaces)(step), [step]);
23
+ const configuredStep = field.fieldSchema.type === 'translate' ? field.fieldSchema.step : undefined;
24
+ const step = configuredStep !== null && configuredStep !== void 0 ? configuredStep : 1;
25
+ const decimalPlaces = (0, react_1.useMemo)(() => (0, timeline_field_utils_1.getTimelineDisplayDecimalPlaces)({
26
+ defaultDecimalPlaces: 1,
27
+ step: configuredStep,
28
+ }), [configuredStep]);
26
29
  const formatter = (0, react_1.useCallback)((v) => {
27
- const num = (0, timeline_field_utils_1.normalizeTimelineNumber)(Number(v));
28
- const digits = Math.max(stepDecimals, (0, timeline_field_utils_1.getDecimalPlaces)(num));
29
- const formatted = digits === 0 ? String(num) : num.toFixed(digits);
30
+ const formatted = (0, timeline_field_utils_1.formatTimelineNumber)({
31
+ decimalPlaces,
32
+ fixed: false,
33
+ value: v,
34
+ });
30
35
  return `${formatted}px`;
31
- }, [stepDecimals]);
36
+ }, [decimalPlaces]);
32
37
  // --- X callbacks ---
33
38
  const onXChange = (0, react_1.useCallback)((newVal) => {
34
39
  setDragX(newVal);
35
40
  const currentY = dragY !== null && dragY !== void 0 ? dragY : codeY;
36
- onDragValueChange((0, timeline_translate_utils_1.serializeTranslate)(newVal, currentY));
37
- }, [onDragValueChange, dragY, codeY]);
41
+ onDragValueChange((0, timeline_translate_utils_1.serializeTranslate)(newVal, currentY, decimalPlaces));
42
+ }, [onDragValueChange, dragY, codeY, decimalPlaces]);
38
43
  const onXChangeEnd = (0, react_1.useCallback)((newVal) => {
39
44
  const currentY = dragY !== null && dragY !== void 0 ? dragY : codeY;
40
- const newStr = (0, timeline_translate_utils_1.serializeTranslate)(newVal, currentY);
45
+ const newStr = (0, timeline_translate_utils_1.serializeTranslate)(newVal, currentY, decimalPlaces);
41
46
  if (newStr !== propStatus.codeValue) {
42
47
  onSave(newStr).finally(() => {
43
48
  setDragX(null);
@@ -48,12 +53,12 @@ const TimelineTranslateField = ({ field, propStatus, effectiveValue, onSave, onD
48
53
  setDragX(null);
49
54
  onDragEnd();
50
55
  }
51
- }, [dragY, codeY, propStatus, onSave, onDragEnd]);
56
+ }, [dragY, codeY, decimalPlaces, propStatus, onSave, onDragEnd]);
52
57
  const onXTextChange = (0, react_1.useCallback)((newVal) => {
53
58
  const parsed = Number(newVal);
54
59
  if (!Number.isNaN(parsed)) {
55
60
  const currentY = dragY !== null && dragY !== void 0 ? dragY : codeY;
56
- const newStr = (0, timeline_translate_utils_1.serializeTranslate)(parsed, currentY);
61
+ const newStr = (0, timeline_translate_utils_1.serializeTranslate)(parsed, currentY, decimalPlaces);
57
62
  if (newStr !== propStatus.codeValue) {
58
63
  setDragX(parsed);
59
64
  onSave(newStr).finally(() => {
@@ -61,16 +66,16 @@ const TimelineTranslateField = ({ field, propStatus, effectiveValue, onSave, onD
61
66
  });
62
67
  }
63
68
  }
64
- }, [propStatus, dragY, codeY, onSave]);
69
+ }, [propStatus, dragY, codeY, decimalPlaces, onSave]);
65
70
  // --- Y callbacks ---
66
71
  const onYChange = (0, react_1.useCallback)((newVal) => {
67
72
  setDragY(newVal);
68
73
  const currentX = dragX !== null && dragX !== void 0 ? dragX : codeX;
69
- onDragValueChange((0, timeline_translate_utils_1.serializeTranslate)(currentX, newVal));
70
- }, [onDragValueChange, dragX, codeX]);
74
+ onDragValueChange((0, timeline_translate_utils_1.serializeTranslate)(currentX, newVal, decimalPlaces));
75
+ }, [onDragValueChange, dragX, codeX, decimalPlaces]);
71
76
  const onYChangeEnd = (0, react_1.useCallback)((newVal) => {
72
77
  const currentX = dragX !== null && dragX !== void 0 ? dragX : codeX;
73
- const newStr = (0, timeline_translate_utils_1.serializeTranslate)(currentX, newVal);
78
+ const newStr = (0, timeline_translate_utils_1.serializeTranslate)(currentX, newVal, decimalPlaces);
74
79
  if (newStr !== propStatus.codeValue) {
75
80
  onSave(newStr).finally(() => {
76
81
  setDragY(null);
@@ -81,12 +86,12 @@ const TimelineTranslateField = ({ field, propStatus, effectiveValue, onSave, onD
81
86
  setDragY(null);
82
87
  onDragEnd();
83
88
  }
84
- }, [dragX, codeX, propStatus, onSave, onDragEnd]);
89
+ }, [dragX, codeX, decimalPlaces, propStatus, onSave, onDragEnd]);
85
90
  const onYTextChange = (0, react_1.useCallback)((newVal) => {
86
91
  const parsed = Number(newVal);
87
92
  if (!Number.isNaN(parsed)) {
88
93
  const currentX = dragX !== null && dragX !== void 0 ? dragX : codeX;
89
- const newStr = (0, timeline_translate_utils_1.serializeTranslate)(currentX, parsed);
94
+ const newStr = (0, timeline_translate_utils_1.serializeTranslate)(currentX, parsed, decimalPlaces);
90
95
  if (newStr !== propStatus.codeValue) {
91
96
  setDragY(parsed);
92
97
  onSave(newStr).finally(() => {
@@ -94,7 +99,7 @@ const TimelineTranslateField = ({ field, propStatus, effectiveValue, onSave, onD
94
99
  });
95
100
  }
96
101
  }
97
- }, [propStatus, onSave, dragX, codeX]);
102
+ }, [propStatus, onSave, dragX, codeX, decimalPlaces]);
98
103
  return (jsx_runtime_1.jsxs("span", { style: containerStyle, children: [
99
104
  jsx_runtime_1.jsx(InputDragger_1.InputDragger, { type: "number", value: dragX !== null && dragX !== void 0 ? dragX : codeX, style: leftDraggerStyle, status: "ok", small: true, onValueChange: onXChange, onValueChangeEnd: onXChangeEnd, onTextChange: onXTextChange, min: -Infinity, max: Infinity, step: step, formatter: formatter, rightAlign: false }), jsx_runtime_1.jsx("div", { style: { marginLeft: -6, marginRight: -6 } }), jsx_runtime_1.jsx(InputDragger_1.InputDragger, { type: "number", value: dragY !== null && dragY !== void 0 ? dragY : codeY, style: rightDraggerStyle, status: "ok", small: true, onValueChange: onYChange, onValueChangeEnd: onYChangeEnd, onTextChange: onYTextChange, min: -Infinity, max: Infinity, step: step, formatter: formatter, rightAlign: false })
100
105
  ] }));
@@ -30,25 +30,31 @@ const tuplesEqual = (left, right) => {
30
30
  return left[0] === right[0] && left[1] === right[1];
31
31
  };
32
32
  const TimelineUvCoordinateField = ({ field, propStatus, effectiveValue, onSave, onDragValueChange, onDragEnd, }) => {
33
- var _a, _b, _c;
33
+ var _a, _b;
34
34
  const [dragX, setDragX] = (0, react_1.useState)(null);
35
35
  const [dragY, setDragY] = (0, react_1.useState)(null);
36
36
  const [codeX, codeY] = (0, react_1.useMemo)(() => parseUvCoordinate(effectiveValue), [effectiveValue]);
37
- const step = field.fieldSchema.type === 'uv-coordinate'
38
- ? ((_a = field.fieldSchema.step) !== null && _a !== void 0 ? _a : 0.01)
39
- : 0.01;
37
+ const configuredStep = field.fieldSchema.type === 'uv-coordinate'
38
+ ? field.fieldSchema.step
39
+ : undefined;
40
+ const step = configuredStep !== null && configuredStep !== void 0 ? configuredStep : 0.01;
40
41
  const min = field.fieldSchema.type === 'uv-coordinate'
41
- ? ((_b = field.fieldSchema.min) !== null && _b !== void 0 ? _b : -Infinity)
42
+ ? ((_a = field.fieldSchema.min) !== null && _a !== void 0 ? _a : -Infinity)
42
43
  : -Infinity;
43
44
  const max = field.fieldSchema.type === 'uv-coordinate'
44
- ? ((_c = field.fieldSchema.max) !== null && _c !== void 0 ? _c : Infinity)
45
+ ? ((_b = field.fieldSchema.max) !== null && _b !== void 0 ? _b : Infinity)
45
46
  : Infinity;
46
- const stepDecimals = (0, react_1.useMemo)(() => (0, timeline_field_utils_1.getDecimalPlaces)(step), [step]);
47
+ const decimalPlaces = (0, react_1.useMemo)(() => (0, timeline_field_utils_1.getTimelineDisplayDecimalPlaces)({
48
+ defaultDecimalPlaces: 2,
49
+ step: configuredStep,
50
+ }), [configuredStep]);
47
51
  const formatter = (0, react_1.useCallback)((v) => {
48
- const num = Number(v);
49
- const digits = Math.max(stepDecimals, (0, timeline_field_utils_1.getDecimalPlaces)(num));
50
- return digits === 0 ? String(num) : num.toFixed(digits);
51
- }, [stepDecimals]);
52
+ return (0, timeline_field_utils_1.formatTimelineNumber)({
53
+ decimalPlaces,
54
+ fixed: true,
55
+ value: v,
56
+ });
57
+ }, [decimalPlaces]);
52
58
  const onXChange = (0, react_1.useCallback)((newVal) => {
53
59
  setDragX(newVal);
54
60
  const currentY = dragY !== null && dragY !== void 0 ? dragY : codeY;
@@ -114,7 +120,7 @@ const TimelineUvCoordinateField = ({ field, propStatus, effectiveValue, onSave,
114
120
  }
115
121
  }, [propStatus, onSave, dragX, codeX]);
116
122
  return (jsx_runtime_1.jsxs("span", { style: containerStyle, children: [
117
- jsx_runtime_1.jsx(InputDragger_1.InputDragger, { type: "number", value: dragX !== null && dragX !== void 0 ? dragX : codeX, style: leftDraggerStyle, status: "ok", small: true, onValueChange: onXChange, onValueChangeEnd: onXChangeEnd, onTextChange: onXTextChange, min: min, max: max, step: step, formatter: formatter, rightAlign: false }), jsx_runtime_1.jsx("div", { style: { marginLeft: -6, marginRight: -6 } }), jsx_runtime_1.jsx(InputDragger_1.InputDragger, { type: "number", value: dragY !== null && dragY !== void 0 ? dragY : codeY, style: rightDraggerStyle, status: "ok", small: true, onValueChange: onYChange, onValueChangeEnd: onYChangeEnd, onTextChange: onYTextChange, min: min, max: max, step: step, formatter: formatter, rightAlign: false })
123
+ jsx_runtime_1.jsx(InputDragger_1.InputDragger, { type: "number", value: dragX !== null && dragX !== void 0 ? dragX : codeX, style: leftDraggerStyle, status: "ok", small: true, onValueChange: onXChange, onValueChangeEnd: onXChangeEnd, onTextChange: onXTextChange, min: min, max: max, step: step, formatter: formatter, rightAlign: false, snapToStep: false }), jsx_runtime_1.jsx("div", { style: { marginLeft: -6, marginRight: -6 } }), jsx_runtime_1.jsx(InputDragger_1.InputDragger, { type: "number", value: dragY !== null && dragY !== void 0 ? dragY : codeY, style: rightDraggerStyle, status: "ok", small: true, onValueChange: onYChange, onValueChangeEnd: onYChangeEnd, onTextChange: onYTextChange, min: min, max: max, step: step, formatter: formatter, rightAlign: false, snapToStep: false })
118
124
  ] }));
119
125
  };
120
126
  exports.TimelineUvCoordinateField = TimelineUvCoordinateField;
@@ -0,0 +1,5 @@
1
+ import type { CanUpdateEffectPropsResponse, CanUpdateSequencePropsResponse } from 'remotion';
2
+ export declare const applyEffectResponseToPropStatuses: ({ previous, response, }: {
3
+ previous: CanUpdateSequencePropsResponse;
4
+ response: CanUpdateEffectPropsResponse;
5
+ }) => CanUpdateSequencePropsResponse;
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.applyEffectResponseToPropStatuses = void 0;
4
+ const applyEffectResponseToPropStatuses = ({ previous, response, }) => {
5
+ if (!previous.canUpdate) {
6
+ return previous;
7
+ }
8
+ const targetIndex = previous.effects.findIndex((effect) => effect.effectIndex === response.effectIndex);
9
+ if (targetIndex === -1) {
10
+ return previous;
11
+ }
12
+ const effects = [...previous.effects];
13
+ effects[targetIndex] = response;
14
+ return {
15
+ ...previous,
16
+ effects,
17
+ };
18
+ };
19
+ exports.applyEffectResponseToPropStatuses = applyEffectResponseToPropStatuses;
@@ -1,16 +1,16 @@
1
1
  import type { SequencePropsSubscriptionKey, SequenceSchema } from 'remotion';
2
- import type { SetCodeValues } from './save-sequence-prop';
3
- export declare const callAddSequenceKeyframe: ({ fileName, nodePath, fieldKey, sourceFrame, value, schema, setCodeValues, clientId, }: {
2
+ import type { SetPropStatuses } from './save-sequence-prop';
3
+ export declare const callAddSequenceKeyframe: ({ fileName, nodePath, fieldKey, sourceFrame, value, schema, setPropStatuses, clientId, }: {
4
4
  fileName: string;
5
5
  nodePath: SequencePropsSubscriptionKey;
6
6
  fieldKey: string;
7
7
  sourceFrame: number;
8
8
  value: unknown;
9
9
  schema: SequenceSchema;
10
- setCodeValues: SetCodeValues;
10
+ setPropStatuses: SetPropStatuses;
11
11
  clientId: string;
12
12
  }) => Promise<void>;
13
- export declare const callAddEffectKeyframe: ({ fileName, nodePath, effectIndex, fieldKey, sourceFrame, value, schema, setCodeValues, clientId, }: {
13
+ export declare const callAddEffectKeyframe: ({ fileName, nodePath, effectIndex, fieldKey, sourceFrame, value, schema, setPropStatuses, clientId, }: {
14
14
  fileName: string;
15
15
  nodePath: SequencePropsSubscriptionKey;
16
16
  effectIndex: number;
@@ -18,6 +18,6 @@ export declare const callAddEffectKeyframe: ({ fileName, nodePath, effectIndex,
18
18
  sourceFrame: number;
19
19
  value: unknown;
20
20
  schema: SequenceSchema;
21
- setCodeValues: SetCodeValues;
21
+ setPropStatuses: SetPropStatuses;
22
22
  clientId: string;
23
23
  }) => Promise<void>;
@@ -3,11 +3,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.callAddEffectKeyframe = exports.callAddSequenceKeyframe = void 0;
4
4
  const studio_shared_1 = require("@remotion/studio-shared");
5
5
  const call_api_1 = require("../call-api");
6
+ const apply_effect_response_to_prop_statuses_1 = require("./apply-effect-response-to-prop-statuses");
6
7
  const save_prop_queue_1 = require("./save-prop-queue");
7
- const callAddSequenceKeyframe = ({ fileName, nodePath, fieldKey, sourceFrame, value, schema, setCodeValues, clientId, }) => {
8
+ const callAddSequenceKeyframe = ({ fileName, nodePath, fieldKey, sourceFrame, value, schema, setPropStatuses, clientId, }) => {
8
9
  return (0, save_prop_queue_1.enqueueSavePropChange)({
9
10
  nodePath,
10
- setCodeValues,
11
+ setPropStatuses,
11
12
  applyOptimistic: (prev) => (0, studio_shared_1.optimisticAddSequenceKeyframe)({
12
13
  previous: prev,
13
14
  fieldKey,
@@ -28,10 +29,10 @@ const callAddSequenceKeyframe = ({ fileName, nodePath, fieldKey, sourceFrame, va
28
29
  });
29
30
  };
30
31
  exports.callAddSequenceKeyframe = callAddSequenceKeyframe;
31
- const callAddEffectKeyframe = ({ fileName, nodePath, effectIndex, fieldKey, sourceFrame, value, schema, setCodeValues, clientId, }) => {
32
+ const callAddEffectKeyframe = ({ fileName, nodePath, effectIndex, fieldKey, sourceFrame, value, schema, setPropStatuses, clientId, }) => {
32
33
  return (0, save_prop_queue_1.enqueueSavePropChange)({
33
34
  nodePath,
34
- setCodeValues,
35
+ setPropStatuses,
35
36
  applyOptimistic: (prev) => (0, studio_shared_1.optimisticAddEffectKeyframe)({
36
37
  previous: prev,
37
38
  effectIndex,
@@ -40,6 +41,7 @@ const callAddEffectKeyframe = ({ fileName, nodePath, effectIndex, fieldKey, sour
40
41
  value,
41
42
  schema,
42
43
  }),
44
+ applyServerResponse: (prev, response) => (0, apply_effect_response_to_prop_statuses_1.applyEffectResponseToPropStatuses)({ previous: prev, response }),
43
45
  apiCall: () => (0, call_api_1.callApi)('/api/add-effect-keyframe', {
44
46
  fileName,
45
47
  sequenceNodePath: nodePath,
@@ -1,5 +1,5 @@
1
1
  import type { SequencePropsSubscriptionKey, SequenceSchema } from 'remotion';
2
- import type { SetCodeValues } from './save-sequence-prop';
2
+ import type { SetPropStatuses } from './save-sequence-prop';
3
3
  export type DeleteSequenceKeyframeChange = {
4
4
  fileName: string;
5
5
  nodePath: SequencePropsSubscriptionKey;
@@ -10,28 +10,28 @@ export type DeleteSequenceKeyframeChange = {
10
10
  export type DeleteEffectKeyframeChange = DeleteSequenceKeyframeChange & {
11
11
  effectIndex: number;
12
12
  };
13
- export declare const callDeleteSequenceKeyframe: ({ fileName, nodePath, fieldKey, sourceFrame, schema, setCodeValues, clientId, }: {
13
+ export declare const callDeleteSequenceKeyframe: ({ fileName, nodePath, fieldKey, sourceFrame, schema, setPropStatuses, clientId, }: {
14
14
  fileName: string;
15
15
  nodePath: SequencePropsSubscriptionKey;
16
16
  fieldKey: string;
17
17
  sourceFrame: number;
18
18
  schema: SequenceSchema;
19
- setCodeValues: SetCodeValues;
19
+ setPropStatuses: SetPropStatuses;
20
20
  clientId: string;
21
21
  }) => Promise<void>;
22
- export declare const callDeleteEffectKeyframe: ({ fileName, nodePath, effectIndex, fieldKey, sourceFrame, schema, setCodeValues, clientId, }: {
22
+ export declare const callDeleteEffectKeyframe: ({ fileName, nodePath, effectIndex, fieldKey, sourceFrame, schema, setPropStatuses, clientId, }: {
23
23
  fileName: string;
24
24
  nodePath: SequencePropsSubscriptionKey;
25
25
  effectIndex: number;
26
26
  fieldKey: string;
27
27
  sourceFrame: number;
28
28
  schema: SequenceSchema;
29
- setCodeValues: SetCodeValues;
29
+ setPropStatuses: SetPropStatuses;
30
30
  clientId: string;
31
31
  }) => Promise<void>;
32
- export declare const callDeleteKeyframes: ({ sequenceKeyframes, effectKeyframes, setCodeValues, clientId, }: {
32
+ export declare const callDeleteKeyframes: ({ sequenceKeyframes, effectKeyframes, setPropStatuses, clientId, }: {
33
33
  sequenceKeyframes: DeleteSequenceKeyframeChange[];
34
34
  effectKeyframes: DeleteEffectKeyframeChange[];
35
- setCodeValues: SetCodeValues;
35
+ setPropStatuses: SetPropStatuses;
36
36
  clientId: string;
37
37
  }) => Promise<void>;
@@ -15,10 +15,10 @@ const groupByNodePath = (keyframes) => {
15
15
  }
16
16
  return [...groups.values()];
17
17
  };
18
- const callDeleteSequenceKeyframe = ({ fileName, nodePath, fieldKey, sourceFrame, schema, setCodeValues, clientId, }) => {
18
+ const callDeleteSequenceKeyframe = ({ fileName, nodePath, fieldKey, sourceFrame, schema, setPropStatuses, clientId, }) => {
19
19
  return (0, save_prop_queue_1.enqueueSavePropChange)({
20
20
  nodePath,
21
- setCodeValues,
21
+ setPropStatuses,
22
22
  applyOptimistic: (prev) => (0, studio_shared_1.optimisticDeleteSequenceKeyframe)({
23
23
  previous: prev,
24
24
  fieldKey,
@@ -41,10 +41,10 @@ const callDeleteSequenceKeyframe = ({ fileName, nodePath, fieldKey, sourceFrame,
41
41
  });
42
42
  };
43
43
  exports.callDeleteSequenceKeyframe = callDeleteSequenceKeyframe;
44
- const callDeleteEffectKeyframe = ({ fileName, nodePath, effectIndex, fieldKey, sourceFrame, schema, setCodeValues, clientId, }) => {
44
+ const callDeleteEffectKeyframe = ({ fileName, nodePath, effectIndex, fieldKey, sourceFrame, schema, setPropStatuses, clientId, }) => {
45
45
  return (0, save_prop_queue_1.enqueueSavePropChange)({
46
46
  nodePath,
47
- setCodeValues,
47
+ setPropStatuses,
48
48
  applyOptimistic: (prev) => (0, studio_shared_1.optimisticDeleteEffectKeyframe)({
49
49
  previous: prev,
50
50
  effectIndex,
@@ -69,7 +69,7 @@ const callDeleteEffectKeyframe = ({ fileName, nodePath, effectIndex, fieldKey, s
69
69
  });
70
70
  };
71
71
  exports.callDeleteEffectKeyframe = callDeleteEffectKeyframe;
72
- const callDeleteKeyframes = ({ sequenceKeyframes, effectKeyframes, setCodeValues, clientId, }) => {
72
+ const callDeleteKeyframes = ({ sequenceKeyframes, effectKeyframes, setPropStatuses, clientId, }) => {
73
73
  if (sequenceKeyframes.length === 0 && effectKeyframes.length === 0) {
74
74
  return Promise.resolve();
75
75
  }
@@ -78,7 +78,7 @@ const callDeleteKeyframes = ({ sequenceKeyframes, effectKeyframes, setCodeValues
78
78
  if (!firstKeyframe) {
79
79
  continue;
80
80
  }
81
- setCodeValues(firstKeyframe.nodePath, (prev) => (0, studio_shared_1.optimisticDeleteSequenceKeyframes)({
81
+ setPropStatuses(firstKeyframe.nodePath, (prev) => (0, studio_shared_1.optimisticDeleteSequenceKeyframes)({
82
82
  previous: prev,
83
83
  keyframes: keyframes.map((keyframe) => ({
84
84
  fieldKey: keyframe.fieldKey,
@@ -91,7 +91,7 @@ const callDeleteKeyframes = ({ sequenceKeyframes, effectKeyframes, setCodeValues
91
91
  if (!firstKeyframe) {
92
92
  continue;
93
93
  }
94
- setCodeValues(firstKeyframe.nodePath, (prev) => (0, studio_shared_1.optimisticDeleteEffectKeyframes)({
94
+ setPropStatuses(firstKeyframe.nodePath, (prev) => (0, studio_shared_1.optimisticDeleteEffectKeyframes)({
95
95
  previous: prev,
96
96
  keyframes: keyframes.map((keyframe) => ({
97
97
  effectIndex: keyframe.effectIndex,
@@ -0,0 +1,19 @@
1
+ import type { SequencePropsSubscriptionKey, SequenceSchema } from 'remotion';
2
+ import type { SetPropStatuses } from './save-sequence-prop';
3
+ export type MoveSequenceKeyframeChange = {
4
+ fileName: string;
5
+ nodePath: SequencePropsSubscriptionKey;
6
+ fieldKey: string;
7
+ fromFrame: number;
8
+ toFrame: number;
9
+ schema: SequenceSchema;
10
+ };
11
+ export type MoveEffectKeyframeChange = MoveSequenceKeyframeChange & {
12
+ effectIndex: number;
13
+ };
14
+ export declare const callMoveKeyframes: ({ sequenceKeyframes, effectKeyframes, setPropStatuses, clientId, }: {
15
+ sequenceKeyframes: MoveSequenceKeyframeChange[];
16
+ effectKeyframes: MoveEffectKeyframeChange[];
17
+ setPropStatuses: SetPropStatuses;
18
+ clientId: string;
19
+ }) => Promise<void>;
@@ -0,0 +1,71 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.callMoveKeyframes = void 0;
4
+ const studio_shared_1 = require("@remotion/studio-shared");
5
+ const call_api_1 = require("../call-api");
6
+ const groupByNodePath = (keyframes) => {
7
+ var _a;
8
+ const groups = new Map();
9
+ for (const keyframe of keyframes) {
10
+ const key = JSON.stringify(keyframe.nodePath);
11
+ const group = (_a = groups.get(key)) !== null && _a !== void 0 ? _a : [];
12
+ group.push(keyframe);
13
+ groups.set(key, group);
14
+ }
15
+ return [...groups.values()];
16
+ };
17
+ const callMoveKeyframes = ({ sequenceKeyframes, effectKeyframes, setPropStatuses, clientId, }) => {
18
+ if (sequenceKeyframes.length === 0 && effectKeyframes.length === 0) {
19
+ return Promise.resolve();
20
+ }
21
+ for (const keyframes of groupByNodePath(sequenceKeyframes)) {
22
+ const [firstKeyframe] = keyframes;
23
+ if (!firstKeyframe) {
24
+ continue;
25
+ }
26
+ setPropStatuses(firstKeyframe.nodePath, (prev) => (0, studio_shared_1.optimisticMoveSequenceKeyframes)({
27
+ previous: prev,
28
+ keyframes: keyframes.map((keyframe) => ({
29
+ fieldKey: keyframe.fieldKey,
30
+ fromFrame: keyframe.fromFrame,
31
+ toFrame: keyframe.toFrame,
32
+ })),
33
+ }));
34
+ }
35
+ for (const keyframes of groupByNodePath(effectKeyframes)) {
36
+ const [firstKeyframe] = keyframes;
37
+ if (!firstKeyframe) {
38
+ continue;
39
+ }
40
+ setPropStatuses(firstKeyframe.nodePath, (prev) => (0, studio_shared_1.optimisticMoveEffectKeyframes)({
41
+ previous: prev,
42
+ keyframes: keyframes.map((keyframe) => ({
43
+ effectIndex: keyframe.effectIndex,
44
+ fieldKey: keyframe.fieldKey,
45
+ fromFrame: keyframe.fromFrame,
46
+ toFrame: keyframe.toFrame,
47
+ })),
48
+ }));
49
+ }
50
+ return (0, call_api_1.callApi)('/api/move-keyframes', {
51
+ sequenceKeyframes: sequenceKeyframes.map((keyframe) => ({
52
+ fileName: keyframe.fileName,
53
+ nodePath: keyframe.nodePath,
54
+ key: keyframe.fieldKey,
55
+ fromFrame: keyframe.fromFrame,
56
+ toFrame: keyframe.toFrame,
57
+ schema: keyframe.schema,
58
+ })),
59
+ effectKeyframes: effectKeyframes.map((keyframe) => ({
60
+ fileName: keyframe.fileName,
61
+ sequenceNodePath: keyframe.nodePath,
62
+ effectIndex: keyframe.effectIndex,
63
+ key: keyframe.fieldKey,
64
+ fromFrame: keyframe.fromFrame,
65
+ toFrame: keyframe.toFrame,
66
+ schema: keyframe.schema,
67
+ })),
68
+ clientId,
69
+ }).then(() => undefined);
70
+ };
71
+ exports.callMoveKeyframes = callMoveKeyframes;
@@ -0,0 +1,22 @@
1
+ import { type KeyframeSettings } from '@remotion/studio-shared';
2
+ import type { SequencePropsSubscriptionKey, SequenceSchema } from 'remotion';
3
+ import type { SetPropStatuses } from './save-sequence-prop';
4
+ export declare const callUpdateSequenceKeyframeSettings: ({ fileName, nodePath, fieldKey, settings, schema, setPropStatuses, clientId, }: {
5
+ fileName: string;
6
+ nodePath: SequencePropsSubscriptionKey;
7
+ fieldKey: string;
8
+ settings: KeyframeSettings;
9
+ schema: SequenceSchema;
10
+ setPropStatuses: SetPropStatuses;
11
+ clientId: string;
12
+ }) => Promise<void>;
13
+ export declare const callUpdateEffectKeyframeSettings: ({ fileName, nodePath, effectIndex, fieldKey, settings, schema, setPropStatuses, clientId, }: {
14
+ fileName: string;
15
+ nodePath: SequencePropsSubscriptionKey;
16
+ effectIndex: number;
17
+ fieldKey: string;
18
+ settings: KeyframeSettings;
19
+ schema: SequenceSchema;
20
+ setPropStatuses: SetPropStatuses;
21
+ clientId: string;
22
+ }) => Promise<void>;
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.callUpdateEffectKeyframeSettings = exports.callUpdateSequenceKeyframeSettings = void 0;
4
+ const studio_shared_1 = require("@remotion/studio-shared");
5
+ const call_api_1 = require("../call-api");
6
+ const apply_effect_response_to_prop_statuses_1 = require("./apply-effect-response-to-prop-statuses");
7
+ const save_prop_queue_1 = require("./save-prop-queue");
8
+ const callUpdateSequenceKeyframeSettings = ({ fileName, nodePath, fieldKey, settings, schema, setPropStatuses, clientId, }) => {
9
+ return (0, save_prop_queue_1.enqueueSavePropChange)({
10
+ nodePath,
11
+ setPropStatuses,
12
+ applyOptimistic: (prev) => (0, studio_shared_1.optimisticUpdateSequenceKeyframeSettings)({
13
+ previous: prev,
14
+ fieldKey,
15
+ settings,
16
+ }),
17
+ apiCall: () => (0, call_api_1.callApi)('/api/update-sequence-keyframe-settings', {
18
+ fileName,
19
+ nodePath,
20
+ key: fieldKey,
21
+ settings,
22
+ schema,
23
+ clientId,
24
+ }),
25
+ errorLabel: 'Could not update keyframe settings',
26
+ });
27
+ };
28
+ exports.callUpdateSequenceKeyframeSettings = callUpdateSequenceKeyframeSettings;
29
+ const callUpdateEffectKeyframeSettings = ({ fileName, nodePath, effectIndex, fieldKey, settings, schema, setPropStatuses, clientId, }) => {
30
+ return (0, save_prop_queue_1.enqueueSavePropChange)({
31
+ nodePath,
32
+ setPropStatuses,
33
+ applyOptimistic: (prev) => (0, studio_shared_1.optimisticUpdateEffectKeyframeSettings)({
34
+ previous: prev,
35
+ effectIndex,
36
+ fieldKey,
37
+ settings,
38
+ }),
39
+ applyServerResponse: (prev, response) => (0, apply_effect_response_to_prop_statuses_1.applyEffectResponseToPropStatuses)({ previous: prev, response }),
40
+ apiCall: () => (0, call_api_1.callApi)('/api/update-effect-keyframe-settings', {
41
+ fileName,
42
+ sequenceNodePath: nodePath,
43
+ effectIndex,
44
+ key: fieldKey,
45
+ settings,
46
+ schema,
47
+ clientId,
48
+ }),
49
+ errorLabel: 'Could not update keyframe settings',
50
+ });
51
+ };
52
+ exports.callUpdateEffectKeyframeSettings = callUpdateEffectKeyframeSettings;
@@ -1,21 +1,21 @@
1
1
  import type { OverrideIdToNodePaths, TSequence } from 'remotion';
2
2
  import type { SequenceNodePathInfo } from '../../helpers/get-timeline-sequence-sort-key';
3
- import type { SetCodeValues } from './save-sequence-prop';
4
- export declare const deleteSelectedKeyframe: ({ nodePathInfo, frame, sequences, overrideIdsToNodePaths, setCodeValues, clientId, }: {
3
+ import type { SetPropStatuses } from './save-sequence-prop';
4
+ export declare const deleteSelectedKeyframe: ({ nodePathInfo, frame, sequences, overrideIdsToNodePaths, setPropStatuses, clientId, }: {
5
5
  nodePathInfo: SequenceNodePathInfo;
6
6
  frame: number;
7
7
  sequences: TSequence[];
8
8
  overrideIdsToNodePaths: OverrideIdToNodePaths;
9
- setCodeValues: SetCodeValues;
9
+ setPropStatuses: SetPropStatuses;
10
10
  clientId: string;
11
11
  }) => Promise<void> | null;
12
- export declare const deleteSelectedKeyframes: ({ keyframes, sequences, overrideIdsToNodePaths, setCodeValues, clientId, }: {
12
+ export declare const deleteSelectedKeyframes: ({ keyframes, sequences, overrideIdsToNodePaths, setPropStatuses, clientId, }: {
13
13
  keyframes: {
14
14
  nodePathInfo: SequenceNodePathInfo;
15
15
  frame: number;
16
16
  }[];
17
17
  sequences: TSequence[];
18
18
  overrideIdsToNodePaths: OverrideIdToNodePaths;
19
- setCodeValues: SetCodeValues;
19
+ setPropStatuses: SetPropStatuses;
20
20
  clientId: string;
21
21
  }) => Promise<void> | null;
@@ -46,7 +46,7 @@ const getSelectedKeyframeDeletion = ({ nodePathInfo, frame, sequences, overrideI
46
46
  schema: sequence.controls.schema,
47
47
  };
48
48
  };
49
- const deleteSelectedKeyframe = ({ nodePathInfo, frame, sequences, overrideIdsToNodePaths, setCodeValues, clientId, }) => {
49
+ const deleteSelectedKeyframe = ({ nodePathInfo, frame, sequences, overrideIdsToNodePaths, setPropStatuses, clientId, }) => {
50
50
  const deletion = getSelectedKeyframeDeletion({
51
51
  nodePathInfo,
52
52
  frame,
@@ -59,18 +59,18 @@ const deleteSelectedKeyframe = ({ nodePathInfo, frame, sequences, overrideIdsToN
59
59
  if (deletion.type === 'effect') {
60
60
  return (0, call_delete_keyframe_1.callDeleteEffectKeyframe)({
61
61
  ...deletion,
62
- setCodeValues,
62
+ setPropStatuses,
63
63
  clientId,
64
64
  });
65
65
  }
66
66
  return (0, call_delete_keyframe_1.callDeleteSequenceKeyframe)({
67
67
  ...deletion,
68
- setCodeValues,
68
+ setPropStatuses,
69
69
  clientId,
70
70
  });
71
71
  };
72
72
  exports.deleteSelectedKeyframe = deleteSelectedKeyframe;
73
- const deleteSelectedKeyframes = ({ keyframes, sequences, overrideIdsToNodePaths, setCodeValues, clientId, }) => {
73
+ const deleteSelectedKeyframes = ({ keyframes, sequences, overrideIdsToNodePaths, setPropStatuses, clientId, }) => {
74
74
  const deletions = keyframes
75
75
  .map((keyframe) => getSelectedKeyframeDeletion({
76
76
  nodePathInfo: keyframe.nodePathInfo,
@@ -85,7 +85,7 @@ const deleteSelectedKeyframes = ({ keyframes, sequences, overrideIdsToNodePaths,
85
85
  return (0, call_delete_keyframe_1.callDeleteKeyframes)({
86
86
  sequenceKeyframes: deletions.filter((deletion) => deletion.type === 'sequence'),
87
87
  effectKeyframes: deletions.filter((deletion) => deletion.type === 'effect'),
88
- setCodeValues,
88
+ setPropStatuses,
89
89
  clientId,
90
90
  });
91
91
  };
@@ -1,17 +1,20 @@
1
1
  import type { OverrideIdToNodePaths, TSequence } from 'remotion';
2
- import type { SetCodeValues } from './save-sequence-prop';
2
+ import type { ConfirmationDialogFunction } from '../ConfirmationDialog-types';
3
+ import type { SetPropStatuses } from './save-sequence-prop';
3
4
  import type { TimelineSelection } from './TimelineSelection';
4
- export declare const deleteSelectedTimelineItem: ({ selection, sequences, overrideIdsToNodePaths, setCodeValues, clientId, }: {
5
+ export declare const deleteSelectedTimelineItem: ({ selection, sequences, overrideIdsToNodePaths, setPropStatuses, clientId, confirm, }: {
5
6
  selection: TimelineSelection;
6
7
  sequences: TSequence[];
7
8
  overrideIdsToNodePaths: OverrideIdToNodePaths;
8
- setCodeValues: SetCodeValues;
9
+ setPropStatuses: SetPropStatuses;
9
10
  clientId: string;
10
- }) => Promise<void> | null;
11
- export declare const deleteSelectedTimelineItems: ({ selections, sequences, overrideIdsToNodePaths, setCodeValues, clientId, }: {
11
+ confirm: ConfirmationDialogFunction;
12
+ }) => Promise<boolean> | null;
13
+ export declare const deleteSelectedTimelineItems: ({ selections, sequences, overrideIdsToNodePaths, setPropStatuses, clientId, confirm, }: {
12
14
  selections: readonly TimelineSelection[];
13
15
  sequences: TSequence[];
14
16
  overrideIdsToNodePaths: OverrideIdToNodePaths;
15
- setCodeValues: SetCodeValues;
17
+ setPropStatuses: SetPropStatuses;
16
18
  clientId: string;
17
- }) => Promise<void> | null;
19
+ confirm: ConfirmationDialogFunction;
20
+ }) => Promise<boolean> | null;