@remotion/studio 4.0.513 → 4.0.514

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 (174) hide show
  1. package/dist/Studio.js +2 -1
  2. package/dist/components/AskAiModal.js +1 -1
  3. package/dist/components/AssetSelector.js +2 -0
  4. package/dist/components/AssetSelectorItem.js +1 -2
  5. package/dist/components/AudioWaveform.d.ts +3 -0
  6. package/dist/components/AudioWaveform.js +55 -67
  7. package/dist/components/Canvas.js +40 -5
  8. package/dist/components/CanvasOrLoading.js +5 -0
  9. package/dist/components/CompositionSelector.js +2 -0
  10. package/dist/components/ConfigureDefaultEditorModal.js +17 -11
  11. package/dist/components/Editor.js +16 -1
  12. package/dist/components/ElementInstallConfirmation.d.ts +1 -0
  13. package/dist/components/ElementInstallConfirmation.js +4 -2
  14. package/dist/components/FixComputedValueModal.d.ts +9 -0
  15. package/dist/components/FixComputedValueModal.js +217 -0
  16. package/dist/components/InitialCompositionLoader.js +19 -0
  17. package/dist/components/InlineDropdown.js +4 -4
  18. package/dist/components/InspectorInfoHeader.js +3 -3
  19. package/dist/components/InspectorOpenInEditor.js +3 -1
  20. package/dist/components/InspectorPanel/CompositionInspector.js +11 -1
  21. package/dist/components/InspectorPanel/CompositionInspectorHeader.js +2 -2
  22. package/dist/components/InspectorPanel/ConnectedCompositionsSection.js +1 -1
  23. package/dist/components/InspectorPanel/EasingInspector.js +1 -1
  24. package/dist/components/InspectorPanel/KeyframeInspector.js +2 -2
  25. package/dist/components/InspectorPanel/SequenceInspectorHeader.js +1 -1
  26. package/dist/components/InspectorPanel/SequenceSelectionInspector.js +35 -6
  27. package/dist/components/InspectorPanel/common.d.ts +5 -5
  28. package/dist/components/InspectorPanel/common.js +8 -8
  29. package/dist/components/InspectorPanel/styles.d.ts +1 -1
  30. package/dist/components/InspectorPanel/styles.js +4 -2
  31. package/dist/components/InspectorSourceLocation.d.ts +1 -1
  32. package/dist/components/InspectorSourceLocation.js +2 -2
  33. package/dist/components/LicenseKeyValidation.js +2 -2
  34. package/dist/components/Modals.js +2 -1
  35. package/dist/components/NewComposition/CodemodFooter.d.ts +1 -0
  36. package/dist/components/NewComposition/CodemodFooter.js +10 -8
  37. package/dist/components/NewComposition/DeleteComposition.js +1 -1
  38. package/dist/components/NewComposition/DeleteFolder.js +1 -1
  39. package/dist/components/NewComposition/DuplicateComposition.js +7 -2
  40. package/dist/components/NewComposition/NewComposition.js +1 -1
  41. package/dist/components/NewComposition/NewFolder.js +1 -1
  42. package/dist/components/NewComposition/RenameComposition.js +1 -1
  43. package/dist/components/NewComposition/RenameFolder.js +1 -1
  44. package/dist/components/NewComposition/duplicate-composition-api.d.ts +16 -0
  45. package/dist/components/NewComposition/duplicate-composition-api.js +16 -0
  46. package/dist/components/NoRegisterRoot.js +1 -1
  47. package/dist/components/QuickSwitcher/ExplorerQuickSwitcherTrigger.js +4 -3
  48. package/dist/components/QuickSwitcher/QuickSwitcherContent.js +1 -0
  49. package/dist/components/QuickSwitcher/fuzzy-search.js +1 -1
  50. package/dist/components/RefreshCompositionOverlay.js +1 -1
  51. package/dist/components/RenderButton.js +6 -3
  52. package/dist/components/RenderModal/WebRenderModal.js +6 -2
  53. package/dist/components/RenderModal/WebRenderModalAdvanced.d.ts +2 -0
  54. package/dist/components/RenderModal/WebRenderModalAdvanced.js +9 -2
  55. package/dist/components/RenderModal/render-modals.js +5 -1
  56. package/dist/components/RenderQueue/ClientRenderQueueProcessor.js +5 -1
  57. package/dist/components/RenderQueue/actions.js +12 -2
  58. package/dist/components/RenderQueue/client-side-render-types.d.ts +1 -0
  59. package/dist/components/RenderingSettings.d.ts +2 -0
  60. package/dist/components/RenderingSettings.js +355 -0
  61. package/dist/components/SelectedOutlineElement.js +3 -3
  62. package/dist/components/SelectedOutlinePolygon.d.ts +1 -0
  63. package/dist/components/SelectedOutlinePolygon.js +53 -9
  64. package/dist/components/SettingsContext.d.ts +4 -1
  65. package/dist/components/SettingsContext.js +9 -2
  66. package/dist/components/SettingsModal.d.ts +1 -1
  67. package/dist/components/SettingsModal.js +10 -1
  68. package/dist/components/SettingsModalFooter.js +1 -1
  69. package/dist/components/StudioSettings.d.ts +2 -0
  70. package/dist/components/StudioSettings.js +185 -0
  71. package/dist/components/Timeline/LoopedIndicator.js +1 -1
  72. package/dist/components/Timeline/LoopedTimelineIndicators.d.ts +3 -0
  73. package/dist/components/Timeline/LoopedTimelineIndicators.js +22 -14
  74. package/dist/components/Timeline/Timeline.js +11 -9
  75. package/dist/components/Timeline/TimelineAssetField.d.ts +2 -2
  76. package/dist/components/Timeline/TimelineAssetField.js +1 -1
  77. package/dist/components/Timeline/TimelineDragHandler.js +62 -76
  78. package/dist/components/Timeline/TimelineEffectItem.js +1 -1
  79. package/dist/components/Timeline/TimelineEffectPropItem.d.ts +4 -2
  80. package/dist/components/Timeline/TimelineEffectPropItem.js +16 -11
  81. package/dist/components/Timeline/TimelineExpandedRow.d.ts +1 -1
  82. package/dist/components/Timeline/TimelineExpandedRow.js +4 -4
  83. package/dist/components/Timeline/TimelineExpandedSection.js +1 -1
  84. package/dist/components/Timeline/TimelineHeightContainer.d.ts +0 -4
  85. package/dist/components/Timeline/TimelineHeightContainer.js +4 -4
  86. package/dist/components/Timeline/TimelineImageInfo.d.ts +1 -0
  87. package/dist/components/Timeline/TimelineImageInfo.js +3 -2
  88. package/dist/components/Timeline/TimelineKeyframeControls.js +6 -1
  89. package/dist/components/Timeline/TimelineList.d.ts +1 -5
  90. package/dist/components/Timeline/TimelineList.js +14 -9
  91. package/dist/components/Timeline/TimelinePinchZoom.js +5 -5
  92. package/dist/components/Timeline/TimelineRowChrome.d.ts +0 -2
  93. package/dist/components/Timeline/TimelineRowChrome.js +12 -5
  94. package/dist/components/Timeline/TimelineSchemaField.d.ts +7 -3
  95. package/dist/components/Timeline/TimelineSchemaField.js +71 -13
  96. package/dist/components/Timeline/TimelineScrollable.js +3 -1
  97. package/dist/components/Timeline/TimelineSelection.d.ts +5 -2
  98. package/dist/components/Timeline/TimelineSelection.js +90 -103
  99. package/dist/components/Timeline/TimelineSequence.js +59 -25
  100. package/dist/components/Timeline/TimelineSequenceItem.d.ts +1 -1
  101. package/dist/components/Timeline/TimelineSequenceItem.js +15 -9
  102. package/dist/components/Timeline/TimelineSequencePropItem.d.ts +2 -1
  103. package/dist/components/Timeline/TimelineSequencePropItem.js +3 -3
  104. package/dist/components/Timeline/TimelineSequenceRightEdgeDragHandle.js +33 -10
  105. package/dist/components/Timeline/TimelineSlider.js +42 -33
  106. package/dist/components/Timeline/TimelineTimeIndicators.js +90 -98
  107. package/dist/components/Timeline/TimelineTracks.d.ts +0 -2
  108. package/dist/components/Timeline/TimelineTracks.js +11 -4
  109. package/dist/components/Timeline/TimelineTransformOriginField.js +1 -1
  110. package/dist/components/Timeline/TimelineVideoInfo.d.ts +4 -4
  111. package/dist/components/Timeline/TimelineVideoInfo.js +151 -61
  112. package/dist/components/Timeline/TimelineViewport.d.ts +12 -0
  113. package/dist/components/Timeline/TimelineViewport.js +62 -0
  114. package/dist/components/Timeline/TimelineVirtualization.d.ts +22 -0
  115. package/dist/components/Timeline/TimelineVirtualization.js +144 -0
  116. package/dist/components/Timeline/TimelineZoomControls.js +16 -8
  117. package/dist/components/Timeline/call-add-keyframe.js +31 -3
  118. package/dist/components/Timeline/call-delete-keyframe.js +13 -3
  119. package/dist/components/Timeline/call-move-keyframe.js +11 -1
  120. package/dist/components/Timeline/call-update-keyframe-settings.js +31 -3
  121. package/dist/components/Timeline/delete-selected-timeline-item.js +2 -1
  122. package/dist/components/Timeline/get-timeline-keyframes.d.ts +1 -2
  123. package/dist/components/Timeline/get-timeline-keyframes.js +1 -8
  124. package/dist/components/Timeline/get-timeline-sequence-visible-layout.d.ts +30 -0
  125. package/dist/components/Timeline/get-timeline-sequence-visible-layout.js +61 -0
  126. package/dist/components/Timeline/split-selected-timeline-item.js +2 -2
  127. package/dist/components/Timeline/timeline-scroll-logic.d.ts +24 -0
  128. package/dist/components/Timeline/timeline-scroll-logic.js +127 -4
  129. package/dist/components/Timeline/use-timeline-height.d.ts +3 -5
  130. package/dist/components/Timeline/use-timeline-height.js +16 -18
  131. package/dist/components/UpdateCheck.d.ts +2 -10
  132. package/dist/components/UpdateCheck.js +8 -2
  133. package/dist/components/VisualControls/VisualControlHandle.js +8 -0
  134. package/dist/components/delete-jsx-node-api.d.ts +2 -0
  135. package/dist/components/delete-jsx-node-api.js +12 -0
  136. package/dist/components/element-install-api.d.ts +3 -0
  137. package/dist/components/element-install-api.js +19 -0
  138. package/dist/components/import-assets.js +20 -9
  139. package/dist/components/reorder-sequence-api.d.ts +2 -0
  140. package/dist/components/reorder-sequence-api.js +12 -0
  141. package/dist/components/split-jsx-sequence-api.d.ts +2 -0
  142. package/dist/components/split-jsx-sequence-api.js +12 -0
  143. package/dist/components/split-video-from-audio-api.d.ts +2 -0
  144. package/dist/components/split-video-from-audio-api.js +12 -0
  145. package/dist/error-overlay/remotion-overlay/Overlay.js +1 -1
  146. package/dist/esm/{chunk-tv7r0jy3.js → chunk-xn2q7eem.js} +11073 -7495
  147. package/dist/esm/index.mjs +7 -5
  148. package/dist/esm/internals.mjs +11073 -7495
  149. package/dist/esm/previewEntry.mjs +10905 -7327
  150. package/dist/esm/renderEntry.mjs +2 -3
  151. package/dist/helpers/browser-studio-operations.d.ts +2 -0
  152. package/dist/helpers/browser-studio-operations.js +10 -1
  153. package/dist/helpers/get-timeline-max-zoom.d.ts +26 -0
  154. package/dist/helpers/get-timeline-max-zoom.js +45 -0
  155. package/dist/helpers/inject-css.js +2 -2
  156. package/dist/helpers/render-codec-label.d.ts +1 -1
  157. package/dist/helpers/retry-payload.js +1 -0
  158. package/dist/helpers/studio-runtime-config.d.ts +1 -1
  159. package/dist/helpers/studio-runtime-config.js +2 -3
  160. package/dist/helpers/timeline-layout.d.ts +3 -1
  161. package/dist/helpers/timeline-layout.js +6 -1
  162. package/dist/helpers/url-state.js +3 -2
  163. package/dist/helpers/use-menu-structure.js +1 -5
  164. package/dist/helpers/use-runtime-values.d.ts +2 -1
  165. package/dist/helpers/use-runtime-values.js +7 -3
  166. package/dist/icons/remotion-triangle.d.ts +2 -0
  167. package/dist/icons/remotion-triangle.js +7 -0
  168. package/dist/renderEntry.js +1 -1
  169. package/dist/state/composition-list.d.ts +13 -0
  170. package/dist/state/composition-list.js +21 -0
  171. package/dist/state/modals.d.ts +7 -1
  172. package/dist/state/timeline-zoom.d.ts +1 -2
  173. package/dist/state/timeline-zoom.js +9 -5
  174. package/package.json +14 -13
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.useTimelineHeight = void 0;
3
+ exports.useTimelineTrackHeights = void 0;
4
4
  const react_1 = require("react");
5
5
  const remotion_1 = require("remotion");
6
6
  const client_id_1 = require("../../helpers/client-id");
@@ -8,11 +8,9 @@ const timeline_layout_1 = require("../../helpers/timeline-layout");
8
8
  const use_runtime_values_1 = require("../../helpers/use-runtime-values");
9
9
  const ExpandedTracksProvider_1 = require("../ExpandedTracksProvider");
10
10
  const get_node_keyframes_1 = require("./get-node-keyframes");
11
- const MaxTimelineTracks_1 = require("./MaxTimelineTracks");
12
11
  const timeline_expanded_filter_1 = require("./timeline-expanded-filter");
13
12
  const TimelineSelection_1 = require("./TimelineSelection");
14
- const TimelineTimeIndicators_1 = require("./TimelineTimeIndicators");
15
- const useTimelineHeight = ({ shown, hasBeenCut, isStill, }) => {
13
+ const useTimelineTrackHeights = ({ timeline, }) => {
16
14
  const { getIsExpanded } = (0, react_1.useContext)(ExpandedTracksProvider_1.ExpandedTracksGetterContext);
17
15
  const { previewServerState } = (0, react_1.useContext)(client_id_1.StudioServerConnectionCtx);
18
16
  const { propStatuses } = (0, react_1.useContext)(remotion_1.Internals.VisualModePropStatusesContext);
@@ -20,7 +18,7 @@ const useTimelineHeight = ({ shown, hasBeenCut, isStill, }) => {
20
18
  const { selectedItems } = (0, TimelineSelection_1.useTimelineSelection)();
21
19
  const previewServerConnected = previewServerState.type === 'connected';
22
20
  const selectedRowKeys = (0, react_1.useMemo)(() => (0, timeline_expanded_filter_1.getSelectedTimelineExpandedRowKeys)(selectedItems), [selectedItems]);
23
- const expandedControls = (0, react_1.useMemo)(() => shown.flatMap((track) => {
21
+ const expandedControls = (0, react_1.useMemo)(() => timeline.flatMap((track) => {
24
22
  if (!previewServerConnected ||
25
23
  track.nodePathInfo === null ||
26
24
  !getIsExpanded(track.nodePathInfo) ||
@@ -28,14 +26,14 @@ const useTimelineHeight = ({ shown, hasBeenCut, isStill, }) => {
28
26
  return [];
29
27
  }
30
28
  return [track.sequence.controls];
31
- }), [getIsExpanded, previewServerConnected, shown]);
29
+ }), [getIsExpanded, previewServerConnected, timeline]);
32
30
  const runtimeValueSnapshots = (0, use_runtime_values_1.useRuntimeValueSnapshots)(expandedControls);
33
31
  const runtimeValuesByStore = (0, react_1.useMemo)(() => new Map(expandedControls.map((controls, index) => [
34
32
  controls.runtimeValues,
35
33
  runtimeValueSnapshots[index],
36
34
  ])), [expandedControls, runtimeValueSnapshots]);
37
- return (0, react_1.useMemo)(() => {
38
- const tracksHeight = shown.reduce((acc, track) => {
35
+ const heights = (0, react_1.useMemo)(() => {
36
+ return timeline.map((track) => {
39
37
  const isExpanded = previewServerConnected &&
40
38
  track.nodePathInfo !== null &&
41
39
  getIsExpanded(track.nodePathInfo);
@@ -84,16 +82,10 @@ const useTimelineHeight = ({ shown, hasBeenCut, isStill, }) => {
84
82
  const separators = Math.max(0, flat.length - 1);
85
83
  return totalRowsHeight + separators + timeline_layout_1.TIMELINE_ITEM_BORDER_BOTTOM;
86
84
  })();
87
- return acc + layerHeight + expandedHeight;
88
- }, 0);
89
- return (tracksHeight +
90
- timeline_layout_1.TIMELINE_ITEM_BORDER_BOTTOM +
91
- (hasBeenCut ? MaxTimelineTracks_1.MAX_TIMELINE_TRACKS_NOTICE_HEIGHT : 0) +
92
- (isStill ? 0 : TimelineTimeIndicators_1.TIMELINE_TIME_INDICATOR_HEIGHT));
85
+ return layerHeight + expandedHeight;
86
+ });
93
87
  }, [
94
- shown,
95
- hasBeenCut,
96
- isStill,
88
+ timeline,
97
89
  previewServerConnected,
98
90
  getIsExpanded,
99
91
  propStatuses,
@@ -102,5 +94,11 @@ const useTimelineHeight = ({ shown, hasBeenCut, isStill, }) => {
102
94
  selectedRowKeys,
103
95
  runtimeValuesByStore,
104
96
  ]);
97
+ const stableHeights = (0, react_1.useRef)(heights);
98
+ if (stableHeights.current.length !== heights.length ||
99
+ heights.some((height, index) => stableHeights.current[index] !== height)) {
100
+ stableHeights.current = heights;
101
+ }
102
+ return stableHeights.current;
105
103
  };
106
- exports.useTimelineHeight = useTimelineHeight;
104
+ exports.useTimelineTrackHeights = useTimelineTrackHeights;
@@ -1,13 +1,5 @@
1
- import type { PackageManager } from '@remotion/studio-shared';
2
- export type UpdateInfo = {
3
- currentVersion: string;
4
- latestVersion: string;
5
- updateAvailable: boolean;
6
- skillsUpdateAvailable: boolean;
7
- remotionUpgradeSkillAvailable: boolean;
8
- timedOut: boolean;
9
- packageManager: PackageManager | 'unknown';
10
- };
1
+ import type { GetRemotionSkillsInfoResponse, UpdateAvailableResponse } from '@remotion/studio-shared';
2
+ export type UpdateInfo = UpdateAvailableResponse & Pick<GetRemotionSkillsInfoResponse, 'remotionUpgradeSkillAvailable'>;
11
3
  export type Bug = {
12
4
  title: string;
13
5
  description: string;
@@ -9,6 +9,7 @@ const modals_1 = require("../state/modals");
9
9
  const z_index_1 = require("../state/z-index");
10
10
  const InlineAction_1 = require("./InlineAction");
11
11
  const actions_1 = require("./RenderQueue/actions");
12
+ const SettingsContext_1 = require("./SettingsContext");
12
13
  const buttonStyle = {
13
14
  appearance: 'none',
14
15
  border: 'none',
@@ -28,6 +29,7 @@ const updateIconContainer = {
28
29
  const UpdateCheck = () => {
29
30
  const [info, setInfo] = (0, react_1.useState)(null);
30
31
  const { setSelectedModal } = (0, react_1.useContext)(modals_1.SetSelectedModalContext);
32
+ const { remotionSkillsInfo } = (0, SettingsContext_1.useSettings)();
31
33
  const { tabIndex } = (0, z_index_1.useZIndex)();
32
34
  const [knownBugs, setKnownBugs] = (0, react_1.useState)(null);
33
35
  const [hovered, setHovered] = (0, react_1.useState)(false);
@@ -76,12 +78,16 @@ const UpdateCheck = () => {
76
78
  };
77
79
  }, [checkForBugs, checkForUpdates]);
78
80
  const openModal = (0, react_1.useCallback)(() => {
81
+ var _a;
79
82
  setSelectedModal({
80
83
  type: 'update',
81
- info: info,
84
+ info: {
85
+ ...info,
86
+ remotionUpgradeSkillAvailable: (_a = remotionSkillsInfo === null || remotionSkillsInfo === void 0 ? void 0 : remotionSkillsInfo.remotionUpgradeSkillAvailable) !== null && _a !== void 0 ? _a : false,
87
+ },
82
88
  knownBugs: knownBugs,
83
89
  });
84
- }, [info, knownBugs, setSelectedModal]);
90
+ }, [info, knownBugs, remotionSkillsInfo, setSelectedModal]);
85
91
  const dynButtonStyle = (0, react_1.useMemo)(() => {
86
92
  return {
87
93
  ...buttonStyle,
@@ -5,6 +5,7 @@ const jsx_runtime_1 = require("react/jsx-runtime");
5
5
  const react_1 = require("react");
6
6
  const no_react_1 = require("remotion/no-react");
7
7
  const fast_refresh_context_1 = require("../../fast-refresh-context");
8
+ const browser_studio_operations_1 = require("../../helpers/browser-studio-operations");
8
9
  const get_current_edited_value_1 = require("../../visual-controls/get-current-edited-value");
9
10
  const VisualControls_1 = require("../../visual-controls/VisualControls");
10
11
  const get_zod_if_possible_1 = require("../get-zod-if-possible");
@@ -35,6 +36,13 @@ const VisualControlHandle = ({ value, keyName }) => {
35
36
  if (disableSave) {
36
37
  return;
37
38
  }
39
+ // Saving visual control changes goes through
40
+ // /api/apply-visual-control-change, which Browser Studio does not
41
+ // support.
42
+ if ((0, browser_studio_operations_1.getBrowserStudioOperations)()) {
43
+ (0, NotificationCenter_1.showNotification)('Saving visual control changes is not supported in Browser Studio', 4000);
44
+ return;
45
+ }
38
46
  if (originalFileName.type !== 'loaded') {
39
47
  throw new Error('Original file name is not loaded');
40
48
  }
@@ -0,0 +1,2 @@
1
+ import type { DeleteJsxNodeRequest, DeleteJsxNodeResponse } from '@remotion/studio-shared';
2
+ export declare const deleteJsxNode: (request: DeleteJsxNodeRequest) => Promise<DeleteJsxNodeResponse>;
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.deleteJsxNode = void 0;
4
+ const browser_studio_operations_1 = require("../helpers/browser-studio-operations");
5
+ const call_api_1 = require("./call-api");
6
+ const deleteJsxNode = (request) => {
7
+ const browserStudioOperations = (0, browser_studio_operations_1.getBrowserStudioOperations)();
8
+ return browserStudioOperations
9
+ ? browserStudioOperations.deleteJsxNode(request)
10
+ : (0, call_api_1.callApi)('/api/delete-jsx-node', request);
11
+ };
12
+ exports.deleteJsxNode = deleteJsxNode;
@@ -0,0 +1,3 @@
1
+ import type { InsertElementRequest, InsertElementResponse, PrepareElementInstallRequest, PrepareElementInstallResponse } from '@remotion/studio-shared';
2
+ export declare const prepareElementInstall: (request: PrepareElementInstallRequest) => Promise<PrepareElementInstallResponse>;
3
+ export declare const installElement: (request: InsertElementRequest) => Promise<InsertElementResponse>;
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.installElement = exports.prepareElementInstall = void 0;
4
+ const browser_studio_operations_1 = require("../helpers/browser-studio-operations");
5
+ const call_api_1 = require("./call-api");
6
+ const prepareElementInstall = (request) => {
7
+ const browserStudioOperations = (0, browser_studio_operations_1.getBrowserStudioOperations)();
8
+ return browserStudioOperations
9
+ ? browserStudioOperations.prepareElementInstall(request)
10
+ : (0, call_api_1.callApi)('/api/prepare-element-install', request);
11
+ };
12
+ exports.prepareElementInstall = prepareElementInstall;
13
+ const installElement = (request) => {
14
+ const browserStudioOperations = (0, browser_studio_operations_1.getBrowserStudioOperations)();
15
+ return browserStudioOperations
16
+ ? browserStudioOperations.insertElement(request)
17
+ : (0, call_api_1.callApi)('/api/insert-element', request);
18
+ };
19
+ exports.installElement = installElement;
@@ -6,11 +6,13 @@ const remotion_1 = require("remotion");
6
6
  const no_react_1 = require("remotion/no-react");
7
7
  const get_static_files_1 = require("../api/get-static-files");
8
8
  const write_static_file_1 = require("../api/write-static-file");
9
+ const browser_studio_operations_1 = require("../helpers/browser-studio-operations");
9
10
  const clipboard_figma_1 = require("../helpers/clipboard-figma");
10
11
  const inserted_element_selection_1 = require("../helpers/inserted-element-selection");
11
12
  const install_required_package_1 = require("../helpers/install-required-package");
12
13
  const use_media_metadata_1 = require("../helpers/use-media-metadata");
13
14
  const call_api_1 = require("./call-api");
15
+ const element_install_api_1 = require("./element-install-api");
14
16
  const NotificationCenter_1 = require("./Notifications/NotificationCenter");
15
17
  const getFromForDrop = ({ durationInFrames, from, preferCompositionStart, }) => {
16
18
  if (preferCompositionStart !== true) {
@@ -494,13 +496,14 @@ const notifyUnsupportedFiles = (unsupportedFiles) => {
494
496
  };
495
497
  const insertCompositionElement = async ({ compositionFile, compositionId, element, from, }) => {
496
498
  const requiredPackage = (0, studio_shared_1.getRequiredPackageForInsertableElement)(element);
497
- await (0, install_required_package_1.installRequiredPackages)(requiredPackage ? [{ name: requiredPackage, version: null }] : []);
498
- const result = await (0, call_api_1.callApi)('/api/insert-jsx-element', {
499
- compositionFile,
500
- compositionId,
501
- element,
502
- from,
503
- });
499
+ const browserStudioOperations = (0, browser_studio_operations_1.getBrowserStudioOperations)();
500
+ if (browserStudioOperations === null) {
501
+ await (0, install_required_package_1.installRequiredPackages)(requiredPackage ? [{ name: requiredPackage, version: null }] : []);
502
+ }
503
+ const request = { compositionFile, compositionId, element, from };
504
+ const result = browserStudioOperations
505
+ ? await browserStudioOperations.insertJsxElement(request)
506
+ : await (0, call_api_1.callApi)('/api/insert-jsx-element', request);
504
507
  if (!result.success) {
505
508
  (0, NotificationCenter_1.showNotification)(result.reason, 4000);
506
509
  return false;
@@ -635,6 +638,12 @@ const importAssets = async ({ compositionFile, compositionId, destinationDimensi
635
638
  };
636
639
  exports.importAssets = importAssets;
637
640
  const importFigmaClipboard = async ({ compositionFile, compositionId, destinationDimensions, dropPosition, html, }) => {
641
+ // Figma clipboard conversion requires the SVGR-based pipeline in
642
+ // @remotion/studio-server, which Browser Studio does not support.
643
+ if ((0, browser_studio_operations_1.getBrowserStudioOperations)()) {
644
+ (0, NotificationCenter_1.showNotification)('Importing Figma clipboard data is not supported in Browser Studio', 4000);
645
+ return;
646
+ }
638
647
  try {
639
648
  const converted = await (0, call_api_1.callApi)('/api/convert-figma-clipboard-to-svg', {
640
649
  html,
@@ -925,8 +934,10 @@ const insertComposition = async ({ composition, compositionFile, compositionId,
925
934
  exports.insertComposition = insertComposition;
926
935
  const insertElement = async ({ compositionFile, compositionId, element, expectedFileState, position, from, overwriteExisting, }) => {
927
936
  try {
928
- await (0, install_required_package_1.installRequiredPackages)(element.dependencies);
929
- const response = await (0, call_api_1.callApi)('/api/insert-element', {
937
+ if ((0, browser_studio_operations_1.getBrowserStudioOperations)() === null) {
938
+ await (0, install_required_package_1.installRequiredPackages)(element.dependencies);
939
+ }
940
+ const response = await (0, element_install_api_1.installElement)({
930
941
  compositionFile,
931
942
  compositionId,
932
943
  element,
@@ -0,0 +1,2 @@
1
+ import type { ReorderSequenceRequest, ReorderSequenceResponse } from '@remotion/studio-shared';
2
+ export declare const reorderSequence: (request: ReorderSequenceRequest) => Promise<ReorderSequenceResponse>;
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.reorderSequence = void 0;
4
+ const browser_studio_operations_1 = require("../helpers/browser-studio-operations");
5
+ const call_api_1 = require("./call-api");
6
+ const reorderSequence = (request) => {
7
+ const browserStudioOperations = (0, browser_studio_operations_1.getBrowserStudioOperations)();
8
+ return browserStudioOperations
9
+ ? browserStudioOperations.reorderSequence(request)
10
+ : (0, call_api_1.callApi)('/api/reorder-sequence', request);
11
+ };
12
+ exports.reorderSequence = reorderSequence;
@@ -0,0 +1,2 @@
1
+ import type { SplitJsxSequenceRequest, SplitJsxSequenceResponse } from '@remotion/studio-shared';
2
+ export declare const splitJsxSequence: (request: SplitJsxSequenceRequest) => Promise<SplitJsxSequenceResponse>;
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.splitJsxSequence = void 0;
4
+ const browser_studio_operations_1 = require("../helpers/browser-studio-operations");
5
+ const call_api_1 = require("./call-api");
6
+ const splitJsxSequence = (request) => {
7
+ const browserStudioOperations = (0, browser_studio_operations_1.getBrowserStudioOperations)();
8
+ return browserStudioOperations
9
+ ? browserStudioOperations.splitJsxSequence(request)
10
+ : (0, call_api_1.callApi)('/api/split-jsx-sequence', request);
11
+ };
12
+ exports.splitJsxSequence = splitJsxSequence;
@@ -0,0 +1,2 @@
1
+ import type { SplitVideoFromAudioRequest, SplitVideoFromAudioResponse } from '@remotion/studio-shared';
2
+ export declare const splitVideoFromAudio: (request: SplitVideoFromAudioRequest) => Promise<SplitVideoFromAudioResponse>;
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.splitVideoFromAudio = void 0;
4
+ const browser_studio_operations_1 = require("../helpers/browser-studio-operations");
5
+ const call_api_1 = require("./call-api");
6
+ const splitVideoFromAudio = (request) => {
7
+ const browserStudioOperations = (0, browser_studio_operations_1.getBrowserStudioOperations)();
8
+ return browserStudioOperations
9
+ ? browserStudioOperations.splitVideoFromAudio(request)
10
+ : (0, call_api_1.callApi)('/api/split-video-from-audio', request);
11
+ };
12
+ exports.splitVideoFromAudio = splitVideoFromAudio;
@@ -43,7 +43,7 @@ const Overlay = () => {
43
43
  if (errors.errors.length === 0) {
44
44
  return null;
45
45
  }
46
- return (jsx_runtime_1.jsx(client_id_1.PreviewServerConnection, { children: jsx_runtime_1.jsx(SettingsContext_1.SettingsProvider, { children: jsx_runtime_1.jsx(keybindings_1.KeybindingContextProvider, { children: jsx_runtime_1.jsx(remotion_1.AbsoluteFill, { style: {
46
+ return (jsx_runtime_1.jsx(client_id_1.PreviewServerConnection, { children: jsx_runtime_1.jsx(SettingsContext_1.SettingsProvider, { children: jsx_runtime_1.jsx(keybindings_1.KeybindingContextProvider, { children: jsx_runtime_1.jsx(remotion_1.Internals.AbsoluteFillElement, { style: {
47
47
  backgroundColor: BACKGROUND_COLOR,
48
48
  overflow: 'auto',
49
49
  color: colors_1.WHITE,