@remotion/studio 4.0.526 → 4.0.527
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/Canvas.js +88 -26
- package/dist/components/CanvasCaptureDropHandler.js +63 -0
- package/dist/components/CanvasOrLoading.js +10 -2
- package/dist/components/CompositionSelectorItem.js +1 -0
- package/dist/components/CurrentAsset.js +2 -1
- package/dist/components/InitialCompositionLoader.js +1 -1
- package/dist/components/InlineDropdown.js +26 -2
- package/dist/components/InlineEditableTitle.js +1 -0
- package/dist/components/InspectorPanel/CollapsibleInspectorSectionHeader.js +1 -0
- package/dist/components/InspectorPanel/CompositionInspector.js +3 -3
- package/dist/components/InspectorPanel/CompositionMetadata.js +4 -0
- package/dist/components/InspectorPanel/ElementLibraryButton.js +1 -0
- package/dist/components/InspectorPanel/MultiSequenceInspector.js +32 -1
- package/dist/components/InspectorPanel/SequenceSelectionInspector.js +41 -1
- package/dist/components/InspectorPanel/common.js +1 -0
- package/dist/components/InspectorPanel/styles.js +2 -0
- package/dist/components/InspectorPanel/use-composition-actions.js +1 -0
- package/dist/components/InspectorSourceLocation.js +3 -0
- package/dist/components/MenuBuildIndicator.js +1 -0
- package/dist/components/NewComposition/CancelButton.js +1 -1
- package/dist/components/Preview.js +3 -0
- package/dist/components/QuickSwitcher/ExplorerQuickSwitcherTrigger.js +1 -0
- package/dist/components/QuickSwitcher/QuickSwitcherContent.js +1 -0
- package/dist/components/RadioButton.js +1 -0
- package/dist/components/RenderModal/DataEditor.js +4 -1
- package/dist/components/RenderQueue/CaptionQueueItem.js +5 -2
- package/dist/components/RenderQueue/CaptionQueueProcessor.js +35 -8
- package/dist/components/RenderQueue/VideoMattingQueueItem.js +1 -0
- package/dist/components/RenderQueue/caption-job-types.d.ts +6 -0
- package/dist/components/RenderQueue/index.js +1 -0
- package/dist/components/RendersTab.js +2 -0
- package/dist/components/SelectedOutlineSnapIndicators.d.ts +6 -0
- package/dist/components/SelectedOutlineSnapIndicators.js +16 -12
- package/dist/components/SequencePropsSubscriptionProvider.d.ts +3 -0
- package/dist/components/SequencePropsSubscriptionProvider.js +8 -6
- package/dist/components/Timeline/TimelineDeleteKeybindings.js +6 -9
- package/dist/components/Timeline/TimelineEffectItem.js +1 -0
- package/dist/components/Timeline/TimelineExpandArrowButton.js +1 -0
- package/dist/components/Timeline/TimelineExpandedRow.js +1 -0
- package/dist/components/Timeline/TimelineFieldLabel.js +1 -0
- package/dist/components/Timeline/TimelineKeyframeControls.js +1 -0
- package/dist/components/Timeline/TimelineSequence.js +26 -0
- package/dist/components/Timeline/TimelineSequenceFrame.js +1 -0
- package/dist/components/Timeline/TimelineSequenceItem.js +28 -0
- package/dist/components/Timeline/TimelineViewport.d.ts +1 -0
- package/dist/components/Timeline/TimelineViewport.js +10 -1
- package/dist/components/Timeline/delete-selected-timeline-item.js +2 -2
- package/dist/components/Timeline/get-sequence-context-menu-items.d.ts +3 -1
- package/dist/components/Timeline/get-sequence-context-menu-items.js +13 -1
- package/dist/components/Timeline/split-selected-timeline-item.d.ts +13 -10
- package/dist/components/Timeline/split-selected-timeline-item.js +58 -35
- package/dist/components/TimelineCombobox.js +1 -0
- package/dist/components/Transcription/TranscriptionModal.js +16 -11
- package/dist/components/Transcription/TranscriptionModalWithOptionalWhisper.js +1 -1
- package/dist/components/WebMcp.js +1 -0
- package/dist/components/composition-drop-preview.d.ts +9 -2
- package/dist/components/composition-drop-preview.js +7 -4
- package/dist/components/composition-menu-items.js +4 -4
- package/dist/components/delete-jsx-nodes-api.d.ts +2 -0
- package/dist/components/{delete-jsx-node-api.js → delete-jsx-nodes-api.js} +5 -5
- package/dist/components/get-open-in-menu-items.js +7 -7
- package/dist/components/keyboard-shortcuts.d.ts +4 -4
- package/dist/components/keyboard-shortcuts.js +3 -1
- package/dist/components/public-output-name.d.ts +1 -0
- package/dist/components/public-output-name.js +7 -3
- package/dist/esm/{CaptionQueueProcessor-k0yrm3dj.mjs → CaptionQueueProcessor-npa6szn1.mjs} +39 -8
- package/dist/esm/{LazyModels-nk7py0zt.mjs → LazyModels-nh3c8h9p.mjs} +4 -3
- package/dist/esm/{LazyModels-mtggyjye.mjs → LazyModels-rr5v8h5y.mjs} +4 -3
- package/dist/esm/{TranscriptionModal-ymnx1c7m.mjs → TranscriptionModal-79m5wgcj.mjs} +25 -17
- package/dist/esm/{VideoMattingModal-05vpczks.mjs → VideoMattingModal-31pew0xj.mjs} +9 -6
- package/dist/esm/index-21hxsfaa.mjs +239 -0
- package/dist/esm/{index-0gewwxse.mjs → index-4zen9prq.mjs} +2293 -2203
- package/dist/esm/index-5t2dwxsk.mjs +530 -0
- package/dist/esm/{index-5gd8k9yv.mjs → index-614tdz2q.mjs} +1 -1
- package/dist/esm/{index-cdy8v54v.mjs → index-9xxg6218.mjs} +20 -541
- package/dist/esm/{index-5bfxbpca.mjs → index-ac5550e7.mjs} +1 -1
- package/dist/esm/{index-eb5txqp6.mjs → index-e855w59j.mjs} +8 -86
- package/dist/esm/{index-4dsz9035.mjs → index-n5gmcvhz.mjs} +1 -1
- package/dist/esm/{index-bs39wngg.mjs → index-ppspzgn9.mjs} +3134 -2994
- package/dist/esm/{index-g7k2dvar.mjs → index-r0ejh5sy.mjs} +1 -1
- package/dist/esm/index-r1gr3j3a.mjs +80 -0
- package/dist/esm/{index-x40wwfmt.mjs → index-s7qa3xbw.mjs} +6 -4
- package/dist/esm/{index-f97r9e2g.mjs → index-vxwg66ar.mjs} +5 -3
- package/dist/esm/index.mjs +3 -2
- package/dist/esm/internals.mjs +10 -7
- package/dist/esm/previewEntry.mjs +10 -7
- package/dist/esm/{resolve-composition-component-location-bt2d6qxq.mjs → resolve-composition-component-location-qrp05g62.mjs} +1 -1
- package/dist/helpers/copy-text.js +1 -16
- package/dist/helpers/hoverable.js +2 -1
- package/dist/helpers/open-in-editor.js +1 -1
- package/dist/helpers/studio-runtime-config.d.ts +1 -1
- package/dist/helpers/use-keybinding.d.ts +1 -1
- package/dist/helpers/use-keyboard-shortcut-label.d.ts +2 -2
- package/dist/helpers/use-menu-structure.js +15 -9
- package/dist/state/modals.d.ts +5 -0
- package/dist/state/timeline-zoom.js +4 -0
- package/package.json +19 -19
- package/dist/components/delete-jsx-node-api.d.ts +0 -2
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
// src/helpers/inserted-element-selection.ts
|
|
2
|
+
var pendingSelection = null;
|
|
3
|
+
var listeners = new Set;
|
|
4
|
+
var requestInsertedElementSelection = (selection) => {
|
|
5
|
+
pendingSelection = selection;
|
|
6
|
+
for (const listener of listeners) {
|
|
7
|
+
listener();
|
|
8
|
+
}
|
|
9
|
+
};
|
|
10
|
+
var clearInsertedElementSelection = (selection) => {
|
|
11
|
+
if (pendingSelection !== selection) {
|
|
12
|
+
return;
|
|
13
|
+
}
|
|
14
|
+
pendingSelection = null;
|
|
15
|
+
for (const listener of listeners) {
|
|
16
|
+
listener();
|
|
17
|
+
}
|
|
18
|
+
};
|
|
19
|
+
var subscribeToInsertedElementSelection = (listener) => {
|
|
20
|
+
listeners.add(listener);
|
|
21
|
+
return () => listeners.delete(listener);
|
|
22
|
+
};
|
|
23
|
+
var getInsertedElementSelection = () => pendingSelection;
|
|
24
|
+
|
|
25
|
+
// src/helpers/sequence-node-path-mutations.ts
|
|
26
|
+
var pendingMutations = [];
|
|
27
|
+
var seenMutationIds = new Set;
|
|
28
|
+
var queueSequenceNodePathMutation = (mutation) => {
|
|
29
|
+
if (seenMutationIds.has(mutation.mutationId)) {
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
seenMutationIds.add(mutation.mutationId);
|
|
33
|
+
pendingMutations.push(mutation);
|
|
34
|
+
if (mutation.timelineSelection !== null) {
|
|
35
|
+
requestInsertedElementSelection({
|
|
36
|
+
compositionId: mutation.timelineSelection.compositionId,
|
|
37
|
+
nodePath: {
|
|
38
|
+
absolutePath: mutation.timelineSelection.absolutePath,
|
|
39
|
+
nodePath: mutation.timelineSelection.nodePath
|
|
40
|
+
},
|
|
41
|
+
notification: null
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
};
|
|
45
|
+
var queueSequenceNodePathMutationFromApiResponse = (response) => {
|
|
46
|
+
if (typeof response !== "object" || response === null || !("nodePathMutation" in response)) {
|
|
47
|
+
return;
|
|
48
|
+
}
|
|
49
|
+
const { nodePathMutation } = response;
|
|
50
|
+
if (typeof nodePathMutation !== "object" || nodePathMutation === null || !("mutationId" in nodePathMutation) || typeof nodePathMutation.mutationId !== "string") {
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
queueSequenceNodePathMutation(nodePathMutation);
|
|
54
|
+
};
|
|
55
|
+
var takePendingSequenceNodePathMutations = () => pendingMutations.splice(0);
|
|
56
|
+
|
|
57
|
+
// src/components/call-api.ts
|
|
58
|
+
var callApi = (endpoint, body, signal) => {
|
|
59
|
+
return new Promise((resolve, reject) => {
|
|
60
|
+
fetch(endpoint, {
|
|
61
|
+
method: "post",
|
|
62
|
+
headers: {
|
|
63
|
+
"content-type": "application/json"
|
|
64
|
+
},
|
|
65
|
+
signal,
|
|
66
|
+
body: JSON.stringify(body)
|
|
67
|
+
}).then((res) => res.json()).then((data) => {
|
|
68
|
+
if (data.success) {
|
|
69
|
+
queueSequenceNodePathMutationFromApiResponse(data.data);
|
|
70
|
+
resolve(data.data);
|
|
71
|
+
} else {
|
|
72
|
+
reject(new Error(data.error));
|
|
73
|
+
}
|
|
74
|
+
}).catch((err) => {
|
|
75
|
+
reject(err);
|
|
76
|
+
});
|
|
77
|
+
});
|
|
78
|
+
};
|
|
79
|
+
|
|
80
|
+
export { requestInsertedElementSelection, clearInsertedElementSelection, subscribeToInsertedElementSelection, getInsertedElementSelection, queueSequenceNodePathMutation, takePendingSequenceNodePathMutations, callApi };
|
|
@@ -4,12 +4,14 @@ import {
|
|
|
4
4
|
getFileManagerName,
|
|
5
5
|
label,
|
|
6
6
|
optionRow,
|
|
7
|
-
rightRow
|
|
7
|
+
rightRow
|
|
8
|
+
} from "./index-ppspzgn9.mjs";
|
|
9
|
+
import {
|
|
8
10
|
showNotification
|
|
9
|
-
} from "./index-
|
|
11
|
+
} from "./index-21hxsfaa.mjs";
|
|
10
12
|
import {
|
|
11
13
|
openInFileExplorer
|
|
12
|
-
} from "./index-
|
|
14
|
+
} from "./index-e855w59j.mjs";
|
|
13
15
|
import {
|
|
14
16
|
getBrowserStudioOperations
|
|
15
17
|
} from "./index-cw0pnpg5.mjs";
|
|
@@ -18,7 +20,7 @@ import {
|
|
|
18
20
|
InlineAction,
|
|
19
21
|
Spacing,
|
|
20
22
|
ValidationMessage
|
|
21
|
-
} from "./index-
|
|
23
|
+
} from "./index-5t2dwxsk.mjs";
|
|
22
24
|
import {
|
|
23
25
|
WHITE
|
|
24
26
|
} from "./index-k426ye99.mjs";
|
|
@@ -9,13 +9,15 @@ import {
|
|
|
9
9
|
label,
|
|
10
10
|
optionRow,
|
|
11
11
|
rightRow,
|
|
12
|
-
showNotification,
|
|
13
12
|
useCopyFeedback,
|
|
14
13
|
validatePublicOutputName
|
|
15
|
-
} from "./index-
|
|
14
|
+
} from "./index-ppspzgn9.mjs";
|
|
15
|
+
import {
|
|
16
|
+
showNotification
|
|
17
|
+
} from "./index-21hxsfaa.mjs";
|
|
16
18
|
import {
|
|
17
19
|
Spacing
|
|
18
|
-
} from "./index-
|
|
20
|
+
} from "./index-5t2dwxsk.mjs";
|
|
19
21
|
import {
|
|
20
22
|
BLUE,
|
|
21
23
|
CURRENT_COLOR_LOWERCASE,
|
package/dist/esm/index.mjs
CHANGED
|
@@ -3,7 +3,7 @@ import {
|
|
|
3
3
|
play,
|
|
4
4
|
seek,
|
|
5
5
|
shutDownStudio
|
|
6
|
-
} from "./index-
|
|
6
|
+
} from "./index-n5gmcvhz.mjs";
|
|
7
7
|
import {
|
|
8
8
|
CodingAgentIcon,
|
|
9
9
|
DEFAULT_PROPS_PATH_ACTIVE_CLASSNAME,
|
|
@@ -21,7 +21,8 @@ import {
|
|
|
21
21
|
visualControlRef,
|
|
22
22
|
visualControlStore,
|
|
23
23
|
watchPublicFolder
|
|
24
|
-
} from "./index-
|
|
24
|
+
} from "./index-e855w59j.mjs";
|
|
25
|
+
import"./index-r1gr3j3a.mjs";
|
|
25
26
|
import {
|
|
26
27
|
getBrowserStudioOperations,
|
|
27
28
|
writeStaticFile
|
package/dist/esm/internals.mjs
CHANGED
|
@@ -1,14 +1,17 @@
|
|
|
1
1
|
import {
|
|
2
2
|
Studio
|
|
3
|
-
} from "./index-
|
|
4
|
-
import"./index-
|
|
5
|
-
import"./index-
|
|
6
|
-
import"./index-
|
|
3
|
+
} from "./index-4zen9prq.mjs";
|
|
4
|
+
import"./index-vxwg66ar.mjs";
|
|
5
|
+
import"./index-s7qa3xbw.mjs";
|
|
6
|
+
import"./index-ppspzgn9.mjs";
|
|
7
|
+
import"./index-21hxsfaa.mjs";
|
|
7
8
|
import"./index-9x6e1dq0.mjs";
|
|
8
|
-
import"./index-
|
|
9
|
-
import"./index-
|
|
9
|
+
import"./index-n5gmcvhz.mjs";
|
|
10
|
+
import"./index-e855w59j.mjs";
|
|
11
|
+
import"./index-r1gr3j3a.mjs";
|
|
10
12
|
import"./index-cw0pnpg5.mjs";
|
|
11
|
-
import"./index-
|
|
13
|
+
import"./index-5t2dwxsk.mjs";
|
|
14
|
+
import"./index-9xxg6218.mjs";
|
|
12
15
|
import"./index-5zrb1ft4.mjs";
|
|
13
16
|
import"./index-k426ye99.mjs";
|
|
14
17
|
import"./index-rcv7qkt5.mjs";
|
|
@@ -5,18 +5,21 @@ import {
|
|
|
5
5
|
markErrorMessageAsLoggedByServer,
|
|
6
6
|
setErrorsRef,
|
|
7
7
|
startReportingRuntimeErrors
|
|
8
|
-
} from "./index-
|
|
9
|
-
import"./index-
|
|
10
|
-
import"./index-
|
|
8
|
+
} from "./index-4zen9prq.mjs";
|
|
9
|
+
import"./index-vxwg66ar.mjs";
|
|
10
|
+
import"./index-s7qa3xbw.mjs";
|
|
11
11
|
import {
|
|
12
12
|
reloadUrl,
|
|
13
13
|
subscribeToPreviewServerEvents
|
|
14
|
-
} from "./index-
|
|
14
|
+
} from "./index-ppspzgn9.mjs";
|
|
15
|
+
import"./index-21hxsfaa.mjs";
|
|
15
16
|
import"./index-9x6e1dq0.mjs";
|
|
16
|
-
import"./index-
|
|
17
|
-
import"./index-
|
|
17
|
+
import"./index-n5gmcvhz.mjs";
|
|
18
|
+
import"./index-e855w59j.mjs";
|
|
19
|
+
import"./index-r1gr3j3a.mjs";
|
|
18
20
|
import"./index-cw0pnpg5.mjs";
|
|
19
|
-
import"./index-
|
|
21
|
+
import"./index-5t2dwxsk.mjs";
|
|
22
|
+
import"./index-9xxg6218.mjs";
|
|
20
23
|
import"./index-5zrb1ft4.mjs";
|
|
21
24
|
import {
|
|
22
25
|
BACKGROUND_HEX,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import"./index-rcv7qkt5.mjs";
|
|
2
2
|
|
|
3
|
-
// ../
|
|
3
|
+
// ../codemods/dist/esm/resolve-composition-component-location.mjs
|
|
4
4
|
var __create = Object.create;
|
|
5
5
|
var __getProtoOf = Object.getPrototypeOf;
|
|
6
6
|
var __defProp = Object.defineProperty;
|
|
@@ -2,21 +2,6 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.copyText = void 0;
|
|
4
4
|
const copyText = (cmd) => {
|
|
5
|
-
|
|
6
|
-
return new Promise((resolve, reject) => {
|
|
7
|
-
navigator.permissions
|
|
8
|
-
.query({ name: permissionName })
|
|
9
|
-
.then((result) => {
|
|
10
|
-
if (result.state === 'granted' || result.state === 'prompt') {
|
|
11
|
-
navigator.clipboard.writeText(cmd).then(resolve).catch(reject);
|
|
12
|
-
}
|
|
13
|
-
else {
|
|
14
|
-
reject(new Error('Permission to copy not granted'));
|
|
15
|
-
}
|
|
16
|
-
})
|
|
17
|
-
.catch((err) => {
|
|
18
|
-
reject(err);
|
|
19
|
-
});
|
|
20
|
-
});
|
|
5
|
+
return navigator.clipboard.writeText(cmd);
|
|
21
6
|
};
|
|
22
7
|
exports.copyText = copyText;
|
|
@@ -174,7 +174,7 @@ const loadCompositionComponentInfo = async ({ compositionFile, compositionId, })
|
|
|
174
174
|
if (files === null) {
|
|
175
175
|
throw new Error(`Could not find source map contents for ${compositionFile}`);
|
|
176
176
|
}
|
|
177
|
-
const { resolveCompositionComponentLocation } = await Promise.resolve().then(() => __importStar(require('@remotion/
|
|
177
|
+
const { resolveCompositionComponentLocation } = await Promise.resolve().then(() => __importStar(require('@remotion/codemods/resolve-composition-component-location')));
|
|
178
178
|
return {
|
|
179
179
|
canAddSequence: false,
|
|
180
180
|
location: resolveCompositionComponentLocation({
|
|
@@ -2,6 +2,6 @@ export declare const DEFAULT_BUFFER_STATE_DELAY_IN_MILLISECONDS = 300;
|
|
|
2
2
|
export declare const getStudioAskAIEnabled: () => boolean;
|
|
3
3
|
export declare const getStudioInteractivityEnabled: () => boolean;
|
|
4
4
|
export declare const getStudioKeyboardShortcutsEnabled: () => boolean;
|
|
5
|
-
export declare const getStudioKeyboardShortcuts: () => Partial<Record<"askAI" | "clearInOutPoints" | "copyEffectsAndValues" | "cutEffects" | "deleteSelection" | "duplicateSequences" | "enterFullscreen" | "goToFrame" | "jumpToBeginning" | "jumpToEnd" | "nextComposition" | "pauseAndReturnToPlaybackStart" | "pausePlayback" | "pickColor" | "playForward" | "playPause" | "previousComposition" | "quickSwitcher" | "redo" | "render" | "resetZoom" | "reversePlayback" | "selectAllSequenceRows" | "selectOpacityProp" | "selectRotateProp" | "selectScaleProp" | "selectTranslateProp" | "setInPoint" | "setOutPoint" | "showKeyboardShortcuts" | "toggleBothSidebars" | "toggleCheckerboard" | "toggleLeftSidebar" | "toggleLoop" | "toggleMute" | "toggleOutlines" | "toggleRightSidebar" | "toggleRulersAndGuides" | "toggleSnapping" | "undo" | "zoomIn" | "zoomOut", import("@remotion/studio-shared").StudioKeyboardShortcutValue>> | null;
|
|
5
|
+
export declare const getStudioKeyboardShortcuts: () => Partial<Record<"askAI" | "clearInOutPoints" | "copyEffectsAndValues" | "cutEffects" | "deleteSelection" | "duplicateSequences" | "enterFullscreen" | "goToFrame" | "jumpToBeginning" | "jumpToEnd" | "nextComposition" | "pauseAndReturnToPlaybackStart" | "pausePlayback" | "pickColor" | "playForward" | "playPause" | "previousComposition" | "quickSwitcher" | "redo" | "render" | "resetZoom" | "reversePlayback" | "selectAllSequenceRows" | "selectOpacityProp" | "selectRotateProp" | "selectScaleProp" | "selectTranslateProp" | "setInPoint" | "setOutPoint" | "showKeyboardShortcuts" | "splitSequences" | "toggleBothSidebars" | "toggleCheckerboard" | "toggleLeftSidebar" | "toggleLoop" | "toggleMute" | "toggleOutlines" | "toggleRightSidebar" | "toggleRulersAndGuides" | "toggleSnapping" | "undo" | "zoomIn" | "zoomOut", import("@remotion/studio-shared").StudioKeyboardShortcutValue>> | null;
|
|
6
6
|
export declare const getStudioMaxTimelineTracks: () => number | null;
|
|
7
7
|
export declare const getStudioBufferStateDelayInMilliseconds: () => number;
|
|
@@ -8,7 +8,7 @@ export declare const useKeybinding: () => {
|
|
|
8
8
|
triggerIfInputFieldFocused: boolean;
|
|
9
9
|
keepRegisteredWhenNotHighestContext: boolean;
|
|
10
10
|
} & ({
|
|
11
|
-
action: "askAI" | "clearInOutPoints" | "copyEffectsAndValues" | "cutEffects" | "deleteSelection" | "duplicateSequences" | "enterFullscreen" | "goToFrame" | "jumpToBeginning" | "jumpToEnd" | "nextComposition" | "pauseAndReturnToPlaybackStart" | "pausePlayback" | "pickColor" | "playForward" | "playPause" | "previousComposition" | "quickSwitcher" | "redo" | "render" | "resetZoom" | "reversePlayback" | "selectAllSequenceRows" | "selectOpacityProp" | "selectRotateProp" | "selectScaleProp" | "selectTranslateProp" | "setInPoint" | "setOutPoint" | "showKeyboardShortcuts" | "toggleBothSidebars" | "toggleCheckerboard" | "toggleLeftSidebar" | "toggleLoop" | "toggleMute" | "toggleOutlines" | "toggleRightSidebar" | "toggleRulersAndGuides" | "toggleSnapping" | "undo" | "zoomIn" | "zoomOut";
|
|
11
|
+
action: "askAI" | "clearInOutPoints" | "copyEffectsAndValues" | "cutEffects" | "deleteSelection" | "duplicateSequences" | "enterFullscreen" | "goToFrame" | "jumpToBeginning" | "jumpToEnd" | "nextComposition" | "pauseAndReturnToPlaybackStart" | "pausePlayback" | "pickColor" | "playForward" | "playPause" | "previousComposition" | "quickSwitcher" | "redo" | "render" | "resetZoom" | "reversePlayback" | "selectAllSequenceRows" | "selectOpacityProp" | "selectRotateProp" | "selectScaleProp" | "selectTranslateProp" | "setInPoint" | "setOutPoint" | "showKeyboardShortcuts" | "splitSequences" | "toggleBothSidebars" | "toggleCheckerboard" | "toggleLeftSidebar" | "toggleLoop" | "toggleMute" | "toggleOutlines" | "toggleRightSidebar" | "toggleRulersAndGuides" | "toggleSnapping" | "undo" | "zoomIn" | "zoomOut";
|
|
12
12
|
key?: undefined;
|
|
13
13
|
commandCtrlKey?: undefined;
|
|
14
14
|
} | {
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const useKeyboardShortcutLabel: (action: "askAI" | "clearInOutPoints" | "copyEffectsAndValues" | "cutEffects" | "deleteSelection" | "duplicateSequences" | "enterFullscreen" | "goToFrame" | "jumpToBeginning" | "jumpToEnd" | "nextComposition" | "pauseAndReturnToPlaybackStart" | "pausePlayback" | "pickColor" | "playForward" | "playPause" | "previousComposition" | "quickSwitcher" | "redo" | "render" | "resetZoom" | "reversePlayback" | "selectAllSequenceRows" | "selectOpacityProp" | "selectRotateProp" | "selectScaleProp" | "selectTranslateProp" | "setInPoint" | "setOutPoint" | "showKeyboardShortcuts" | "toggleBothSidebars" | "toggleCheckerboard" | "toggleLeftSidebar" | "toggleLoop" | "toggleMute" | "toggleOutlines" | "toggleRightSidebar" | "toggleRulersAndGuides" | "toggleSnapping" | "undo" | "zoomIn" | "zoomOut") => string;
|
|
2
|
-
export declare const useKeyboardShortcutAriaKeyShortcuts: (action: "askAI" | "clearInOutPoints" | "copyEffectsAndValues" | "cutEffects" | "deleteSelection" | "duplicateSequences" | "enterFullscreen" | "goToFrame" | "jumpToBeginning" | "jumpToEnd" | "nextComposition" | "pauseAndReturnToPlaybackStart" | "pausePlayback" | "pickColor" | "playForward" | "playPause" | "previousComposition" | "quickSwitcher" | "redo" | "render" | "resetZoom" | "reversePlayback" | "selectAllSequenceRows" | "selectOpacityProp" | "selectRotateProp" | "selectScaleProp" | "selectTranslateProp" | "setInPoint" | "setOutPoint" | "showKeyboardShortcuts" | "toggleBothSidebars" | "toggleCheckerboard" | "toggleLeftSidebar" | "toggleLoop" | "toggleMute" | "toggleOutlines" | "toggleRightSidebar" | "toggleRulersAndGuides" | "toggleSnapping" | "undo" | "zoomIn" | "zoomOut") => string;
|
|
1
|
+
export declare const useKeyboardShortcutLabel: (action: "askAI" | "clearInOutPoints" | "copyEffectsAndValues" | "cutEffects" | "deleteSelection" | "duplicateSequences" | "enterFullscreen" | "goToFrame" | "jumpToBeginning" | "jumpToEnd" | "nextComposition" | "pauseAndReturnToPlaybackStart" | "pausePlayback" | "pickColor" | "playForward" | "playPause" | "previousComposition" | "quickSwitcher" | "redo" | "render" | "resetZoom" | "reversePlayback" | "selectAllSequenceRows" | "selectOpacityProp" | "selectRotateProp" | "selectScaleProp" | "selectTranslateProp" | "setInPoint" | "setOutPoint" | "showKeyboardShortcuts" | "splitSequences" | "toggleBothSidebars" | "toggleCheckerboard" | "toggleLeftSidebar" | "toggleLoop" | "toggleMute" | "toggleOutlines" | "toggleRightSidebar" | "toggleRulersAndGuides" | "toggleSnapping" | "undo" | "zoomIn" | "zoomOut") => string;
|
|
2
|
+
export declare const useKeyboardShortcutAriaKeyShortcuts: (action: "askAI" | "clearInOutPoints" | "copyEffectsAndValues" | "cutEffects" | "deleteSelection" | "duplicateSequences" | "enterFullscreen" | "goToFrame" | "jumpToBeginning" | "jumpToEnd" | "nextComposition" | "pauseAndReturnToPlaybackStart" | "pausePlayback" | "pickColor" | "playForward" | "playPause" | "previousComposition" | "quickSwitcher" | "redo" | "render" | "resetZoom" | "reversePlayback" | "selectAllSequenceRows" | "selectOpacityProp" | "selectRotateProp" | "selectScaleProp" | "selectTranslateProp" | "setInPoint" | "setOutPoint" | "showKeyboardShortcuts" | "splitSequences" | "toggleBothSidebars" | "toggleCheckerboard" | "toggleLeftSidebar" | "toggleLoop" | "toggleMute" | "toggleOutlines" | "toggleRightSidebar" | "toggleRulersAndGuides" | "toggleSnapping" | "undo" | "zoomIn" | "zoomOut") => string;
|
|
@@ -186,7 +186,7 @@ const getFileMenu = ({ readOnlyStudio, closeMenu, editorName, editorId, previewS
|
|
|
186
186
|
quickSwitcherLabel: null,
|
|
187
187
|
};
|
|
188
188
|
};
|
|
189
|
-
const getRenderMenuItems = ({ closeMenu, previewServerState, readOnlyStudio, renderShortcut, }) => {
|
|
189
|
+
const getRenderMenuItems = ({ closeMenu, previewServerState, readOnlyStudio, renderShortcut, compositionSelected, }) => {
|
|
190
190
|
return [
|
|
191
191
|
readOnlyStudio
|
|
192
192
|
? null
|
|
@@ -210,6 +210,7 @@ const getRenderMenuItems = ({ closeMenu, previewServerState, readOnlyStudio, ren
|
|
|
210
210
|
leftItem: null,
|
|
211
211
|
subMenu: null,
|
|
212
212
|
quickSwitcherLabel: 'Render...',
|
|
213
|
+
disabled: !compositionSelected,
|
|
213
214
|
},
|
|
214
215
|
{
|
|
215
216
|
id: 'render-on-web',
|
|
@@ -225,6 +226,7 @@ const getRenderMenuItems = ({ closeMenu, previewServerState, readOnlyStudio, ren
|
|
|
225
226
|
leftItem: null,
|
|
226
227
|
subMenu: null,
|
|
227
228
|
quickSwitcherLabel: 'Render in browser...',
|
|
229
|
+
disabled: !compositionSelected,
|
|
228
230
|
},
|
|
229
231
|
{
|
|
230
232
|
type: 'divider',
|
|
@@ -778,6 +780,7 @@ const useMenuStructure = (closeMenu, readOnlyStudio) => {
|
|
|
778
780
|
previewServerState: type,
|
|
779
781
|
readOnlyStudio,
|
|
780
782
|
renderShortcut,
|
|
783
|
+
compositionSelected: currentComposition !== null,
|
|
781
784
|
}),
|
|
782
785
|
...(0, composition_menu_items_1.getCompositionMenuItems)({
|
|
783
786
|
closeMenu,
|
|
@@ -1100,7 +1103,7 @@ const getItemLabel = (item) => {
|
|
|
1100
1103
|
}
|
|
1101
1104
|
return (_a = item.label) === null || _a === void 0 ? void 0 : _a.toString();
|
|
1102
1105
|
};
|
|
1103
|
-
const itemToSearchResult = (item, setSelectedModal, prefixes) => {
|
|
1106
|
+
const itemToSearchResult = (item, setSelectedModal, prefixes, path) => {
|
|
1104
1107
|
if (item.disabled) {
|
|
1105
1108
|
return [];
|
|
1106
1109
|
}
|
|
@@ -1110,23 +1113,26 @@ const itemToSearchResult = (item, setSelectedModal, prefixes) => {
|
|
|
1110
1113
|
if (subItem.type !== 'item') {
|
|
1111
1114
|
return null;
|
|
1112
1115
|
}
|
|
1113
|
-
return itemToSearchResult(subItem, setSelectedModal, [
|
|
1114
|
-
...prefixes,
|
|
1115
|
-
getItemLabel(item),
|
|
1116
|
-
]);
|
|
1116
|
+
return itemToSearchResult(subItem, setSelectedModal, [...prefixes, getItemLabel(item)], [...path, subItem.id]);
|
|
1117
1117
|
})
|
|
1118
1118
|
.flat(1)
|
|
1119
1119
|
.filter(no_react_1.NoReactInternals.truthy);
|
|
1120
1120
|
}
|
|
1121
|
+
const label = getItemLabel(item);
|
|
1122
|
+
const distinctPrefixes = prefixes.filter((prefix, index) => prefix !== prefixes[index + 1]);
|
|
1123
|
+
if (distinctPrefixes.length > 0 &&
|
|
1124
|
+
label.startsWith(`${distinctPrefixes.at(-1)}: `)) {
|
|
1125
|
+
distinctPrefixes.pop();
|
|
1126
|
+
}
|
|
1121
1127
|
return [
|
|
1122
1128
|
{
|
|
1123
1129
|
type: 'menu-item',
|
|
1124
|
-
id:
|
|
1130
|
+
id: path.join(':'),
|
|
1125
1131
|
onSelected: () => {
|
|
1126
1132
|
setSelectedModal(null);
|
|
1127
1133
|
item.onClick(item.id, null);
|
|
1128
1134
|
},
|
|
1129
|
-
title: [...
|
|
1135
|
+
title: [...distinctPrefixes, label].join(': '),
|
|
1130
1136
|
},
|
|
1131
1137
|
];
|
|
1132
1138
|
};
|
|
@@ -1137,7 +1143,7 @@ const makeSearchResults = (actions, setSelectedModal) => {
|
|
|
1137
1143
|
if (item.type !== 'item') {
|
|
1138
1144
|
return null;
|
|
1139
1145
|
}
|
|
1140
|
-
return itemToSearchResult(item, setSelectedModal, []);
|
|
1146
|
+
return itemToSearchResult(item, setSelectedModal, [], [menu.id, item.id]);
|
|
1141
1147
|
});
|
|
1142
1148
|
})
|
|
1143
1149
|
.flat(Infinity)
|
package/dist/state/modals.d.ts
CHANGED
|
@@ -127,6 +127,11 @@ export type TranscriptionModalState = {
|
|
|
127
127
|
displayName: string;
|
|
128
128
|
audioStreamIndex: number | null;
|
|
129
129
|
requestInit: Omit<RequestInit, 'signal'> | null;
|
|
130
|
+
target: {
|
|
131
|
+
fileName: string;
|
|
132
|
+
nodePath: SequencePropsSubscriptionKey;
|
|
133
|
+
durationInFrames: number | null;
|
|
134
|
+
} | null;
|
|
130
135
|
};
|
|
131
136
|
export type VideoMattingModalState = {
|
|
132
137
|
type: 'video-matting';
|
|
@@ -7,6 +7,7 @@ const react_dom_1 = require("react-dom");
|
|
|
7
7
|
const imperative_state_1 = require("../components/Timeline/imperative-state");
|
|
8
8
|
const timeline_refs_1 = require("../components/Timeline/timeline-refs");
|
|
9
9
|
const timeline_scroll_logic_1 = require("../components/Timeline/timeline-scroll-logic");
|
|
10
|
+
const TimelineViewport_1 = require("../components/Timeline/TimelineViewport");
|
|
10
11
|
const ZoomPersistor_1 = require("../components/ZoomPersistor");
|
|
11
12
|
const get_timeline_max_zoom_1 = require("../helpers/get-timeline-max-zoom");
|
|
12
13
|
exports.TimelineZoomCtx = (0, react_1.createContext)({
|
|
@@ -48,6 +49,9 @@ const TimelineZoomContext = ({ children }) => {
|
|
|
48
49
|
// The new scroll range exists now, so the browser will not clamp the offset
|
|
49
50
|
// against the previous width.
|
|
50
51
|
preserveTimelineCursor();
|
|
52
|
+
// A large zoom can move beyond the old horizontal render window. Commit
|
|
53
|
+
// the new window before the browser paints the new scroll position.
|
|
54
|
+
(0, react_dom_1.flushSync)(TimelineViewport_1.syncTimelineViewport);
|
|
51
55
|
}, []);
|
|
52
56
|
const value = (0, react_1.useMemo)(() => {
|
|
53
57
|
return {
|
package/package.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"url": "https://github.com/remotion-dev/remotion/tree/main/packages/studio"
|
|
4
4
|
},
|
|
5
5
|
"name": "@remotion/studio",
|
|
6
|
-
"version": "4.0.
|
|
6
|
+
"version": "4.0.527",
|
|
7
7
|
"description": "APIs for interacting with the Remotion Studio",
|
|
8
8
|
"main": "dist",
|
|
9
9
|
"scripts": {
|
|
@@ -20,8 +20,8 @@
|
|
|
20
20
|
"url": "https://github.com/remotion-dev/remotion/issues"
|
|
21
21
|
},
|
|
22
22
|
"peerDependencies": {
|
|
23
|
-
"@remotion/video-matting": "4.0.
|
|
24
|
-
"@remotion/whisper-webgpu": "4.0.
|
|
23
|
+
"@remotion/video-matting": "4.0.527",
|
|
24
|
+
"@remotion/whisper-webgpu": "4.0.527",
|
|
25
25
|
"react": ">=16.8.0",
|
|
26
26
|
"react-dom": ">=16.8.0"
|
|
27
27
|
},
|
|
@@ -35,32 +35,32 @@
|
|
|
35
35
|
},
|
|
36
36
|
"dependencies": {
|
|
37
37
|
"@jridgewell/trace-mapping": "0.3.31",
|
|
38
|
-
"@remotion/canvas": "4.0.
|
|
39
|
-
"@remotion/captions": "4.0.
|
|
40
|
-
"@remotion/media": "4.0.
|
|
41
|
-
"@remotion/media-utils": "4.0.
|
|
42
|
-
"@remotion/player": "4.0.
|
|
43
|
-
"@remotion/renderer": "4.0.
|
|
44
|
-
"@remotion/
|
|
45
|
-
"@remotion/studio-protocol": "4.0.
|
|
46
|
-
"@remotion/studio-shared": "4.0.
|
|
47
|
-
"@remotion/timeline-utils": "4.0.
|
|
48
|
-
"@remotion/web-renderer": "4.0.
|
|
49
|
-
"@remotion/zod-types": "4.0.
|
|
38
|
+
"@remotion/canvas": "4.0.527",
|
|
39
|
+
"@remotion/captions": "4.0.527",
|
|
40
|
+
"@remotion/media": "4.0.527",
|
|
41
|
+
"@remotion/media-utils": "4.0.527",
|
|
42
|
+
"@remotion/player": "4.0.527",
|
|
43
|
+
"@remotion/renderer": "4.0.527",
|
|
44
|
+
"@remotion/codemods": "4.0.527",
|
|
45
|
+
"@remotion/studio-protocol": "4.0.527",
|
|
46
|
+
"@remotion/studio-shared": "4.0.527",
|
|
47
|
+
"@remotion/timeline-utils": "4.0.527",
|
|
48
|
+
"@remotion/web-renderer": "4.0.527",
|
|
49
|
+
"@remotion/zod-types": "4.0.527",
|
|
50
50
|
"@tanstack/react-virtual": "3.14.9",
|
|
51
51
|
"mediabunny": "1.56.1",
|
|
52
52
|
"memfs": "3.4.3",
|
|
53
53
|
"open": "8.4.2",
|
|
54
54
|
"prismjs": "1.30.0",
|
|
55
|
-
"remotion": "4.0.
|
|
55
|
+
"remotion": "4.0.527",
|
|
56
56
|
"semver": "7.5.3",
|
|
57
57
|
"zod": "4.5.4"
|
|
58
58
|
},
|
|
59
59
|
"devDependencies": {
|
|
60
60
|
"@happy-dom/global-registrator": "14.5.1",
|
|
61
|
-
"@remotion/eslint-config-internal": "4.0.
|
|
62
|
-
"@remotion/video-matting": "4.0.
|
|
63
|
-
"@remotion/whisper-webgpu": "4.0.
|
|
61
|
+
"@remotion/eslint-config-internal": "4.0.527",
|
|
62
|
+
"@remotion/video-matting": "4.0.527",
|
|
63
|
+
"@remotion/whisper-webgpu": "4.0.527",
|
|
64
64
|
"@testing-library/react": "16.1.0",
|
|
65
65
|
"@types/prismjs": "1.26.4",
|
|
66
66
|
"@types/semver": "7.5.3",
|