@remotion/studio 4.0.491 → 4.0.493
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/ResolveCompositionConfigInStudio.js +16 -6
- package/dist/components/AssetSelectorItem.js +7 -4
- package/dist/components/Canvas.js +1 -0
- package/dist/components/CompositionOrStillIcon.d.ts +7 -0
- package/dist/components/CompositionOrStillIcon.js +11 -0
- package/dist/components/CompositionSelector.js +14 -2
- package/dist/components/CompositionSelectorItem.js +34 -6
- package/dist/components/CurrentAsset.d.ts +6 -0
- package/dist/components/CurrentAsset.js +14 -8
- package/dist/components/CurrentComposition.d.ts +1 -1
- package/dist/components/CurrentComposition.js +3 -4
- package/dist/components/InlineEditableTitle.d.ts +1 -0
- package/dist/components/InlineEditableTitle.js +12 -7
- package/dist/components/InspectorInfoHeader.d.ts +2 -0
- package/dist/components/InspectorInfoHeader.js +12 -4
- package/dist/components/InspectorPanel/CompositionDimensions.d.ts +6 -0
- package/dist/components/InspectorPanel/CompositionDimensions.js +173 -0
- package/dist/components/InspectorPanel/ConnectedCompositionsSection.d.ts +9 -0
- package/dist/components/InspectorPanel/ConnectedCompositionsSection.js +32 -0
- package/dist/components/InspectorPanel/DefaultInspector.js +6 -3
- package/dist/components/InspectorPanel/EasingInspector.js +3 -3
- package/dist/components/InspectorPanel/KeyframeInspector.js +6 -4
- package/dist/components/InspectorPanel/KeyframeSettings.js +1 -1
- package/dist/components/InspectorPanel/SequenceInspectorHeader.d.ts +1 -1
- package/dist/components/InspectorPanel/SequenceInspectorHeader.js +9 -5
- package/dist/components/InspectorPanel/SequenceSelectionInspector.js +5 -1
- package/dist/components/InspectorPanel/common.d.ts +2 -1
- package/dist/components/InspectorPanel/common.js +11 -7
- package/dist/components/InspectorPanel/optimistic-composition-metadata.d.ts +22 -0
- package/dist/components/InspectorPanel/optimistic-composition-metadata.js +41 -0
- package/dist/components/InspectorPanel/styles.d.ts +2 -0
- package/dist/components/InspectorPanel/styles.js +7 -2
- package/dist/components/InspectorSequenceSection.js +58 -7
- package/dist/components/NewComposition/NewComposition.js +11 -4
- package/dist/components/NewComposition/get-new-composition-defaults.d.ts +4 -0
- package/dist/components/NewComposition/get-new-composition-defaults.js +13 -0
- package/dist/components/SelectedOutlineElement.js +21 -2
- package/dist/components/SelectedOutlineOverlay.d.ts +1 -1
- package/dist/components/SelectedOutlineOverlay.js +4 -3
- package/dist/components/Timeline/Timeline.js +8 -1
- package/dist/components/Timeline/TimelineAssetField.d.ts +14 -0
- package/dist/components/Timeline/TimelineAssetField.js +125 -0
- package/dist/components/Timeline/TimelineClipboardKeybindings.js +133 -1
- package/dist/components/Timeline/TimelineExpandedSection.js +1 -0
- package/dist/components/Timeline/TimelineFieldLabel.js +4 -2
- package/dist/components/Timeline/TimelineKeyframeControls.js +1 -0
- package/dist/components/Timeline/TimelineList.js +2 -1
- package/dist/components/Timeline/TimelinePrimitiveFieldValue.js +5 -3
- package/dist/components/Timeline/TimelineRowChrome.js +8 -6
- package/dist/components/Timeline/TimelineRowLayoutContext.d.ts +7 -0
- package/dist/components/Timeline/TimelineRowLayoutContext.js +13 -0
- package/dist/components/Timeline/TimelineSelection.js +20 -5
- package/dist/components/Timeline/TimelineSequenceItem.d.ts +2 -1
- package/dist/components/Timeline/TimelineSequenceItem.js +32 -8
- package/dist/components/Timeline/TimelineSequenceName.js +4 -0
- package/dist/components/Timeline/get-sequence-context-menu-items.js +3 -3
- package/dist/components/Timeline/keyframe-clipboard.d.ts +34 -0
- package/dist/components/Timeline/keyframe-clipboard.js +278 -0
- package/dist/components/Timeline/sequence-props-subscription-store.js +5 -1
- package/dist/components/Timeline/timeline-asset-link.d.ts +6 -0
- package/dist/components/Timeline/timeline-asset-link.js +27 -1
- package/dist/components/Timeline/timeline-field-display-utils.js +3 -1
- package/dist/components/Timeline/timeline-field-row-layout.d.ts +1 -1
- package/dist/components/Timeline/timeline-field-row-layout.js +2 -2
- package/dist/components/Timeline/timeline-row-layout.d.ts +3 -2
- package/dist/components/Timeline/timeline-row-layout.js +6 -5
- package/dist/components/Timeline/update-selected-easing.d.ts +1 -1
- package/dist/components/Timeline/update-selected-easing.js +4 -5
- package/dist/components/Timeline/use-expanded-track-keyframe-rows.js +4 -4
- package/dist/components/Timeline/use-timeline-expanded-tree.d.ts +2 -1
- package/dist/components/Timeline/use-timeline-expanded-tree.js +3 -1
- package/dist/components/Timeline/use-timeline-height.js +1 -0
- package/dist/components/import-assets.d.ts +10 -2
- package/dist/components/import-assets.js +20 -6
- package/dist/components/root-composition-menu-items.d.ts +8 -0
- package/dist/components/root-composition-menu-items.js +45 -0
- package/dist/components/selected-outline-measurement.d.ts +2 -5
- package/dist/components/selected-outline-measurement.js +3 -4
- package/dist/esm/{chunk-9wh9k3jj.js → chunk-mndqr3zx.js} +7439 -6121
- package/dist/esm/internals.mjs +7439 -6121
- package/dist/esm/previewEntry.mjs +7371 -6057
- package/dist/esm/renderEntry.mjs +1 -1
- package/dist/helpers/calculate-timeline.d.ts +2 -1
- package/dist/helpers/calculate-timeline.js +36 -5
- package/dist/helpers/get-connected-compositions.d.ts +6 -0
- package/dist/helpers/get-connected-compositions.js +11 -0
- package/dist/helpers/get-file-manager-name.d.ts +1 -0
- package/dist/helpers/get-file-manager-name.js +13 -0
- package/dist/helpers/get-sequence-double-click-action.d.ts +6 -0
- package/dist/helpers/get-sequence-double-click-action.js +13 -0
- package/dist/helpers/get-timeline-sequence-sort-key.d.ts +2 -1
- package/dist/helpers/timeline-layout.d.ts +2 -1
- package/dist/helpers/timeline-layout.js +5 -1
- package/dist/helpers/url-state.d.ts +1 -0
- package/dist/helpers/url-state.js +8 -6
- package/dist/helpers/use-menu-structure.js +4 -2
- package/package.json +11 -11
package/dist/esm/renderEntry.mjs
CHANGED
|
@@ -212,7 +212,7 @@ var renderContent = (Root) => {
|
|
|
212
212
|
renderToDOM(/* @__PURE__ */ jsx("div", {
|
|
213
213
|
children: /* @__PURE__ */ jsx(DelayedSpinner, {})
|
|
214
214
|
}));
|
|
215
|
-
import("./chunk-
|
|
215
|
+
import("./chunk-mndqr3zx.js").then(({ StudioInternals }) => {
|
|
216
216
|
window.remotion_isStudio = true;
|
|
217
217
|
window.remotion_isReadOnlyStudio = true;
|
|
218
218
|
window.remotion_inputProps = "{}";
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { OverrideIdToNodePaths, TSequence } from 'remotion';
|
|
2
2
|
import type { TrackWithHash } from './get-timeline-sequence-sort-key';
|
|
3
|
-
export declare const calculateTimeline: ({ sequences, overrideIdsToNodePaths, }: {
|
|
3
|
+
export declare const calculateTimeline: ({ sequences, overrideIdsToNodePaths, compositions, }: {
|
|
4
4
|
sequences: TSequence[];
|
|
5
5
|
overrideIdsToNodePaths: OverrideIdToNodePaths;
|
|
6
|
+
compositions?: readonly import("remotion").AnyComposition[] | undefined;
|
|
6
7
|
}) => TrackWithHash[];
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.calculateTimeline = void 0;
|
|
4
4
|
const studio_shared_1 = require("@remotion/studio-shared");
|
|
5
|
+
const get_connected_compositions_1 = require("./get-connected-compositions");
|
|
5
6
|
const get_sequence_visible_range_1 = require("./get-sequence-visible-range");
|
|
6
7
|
const get_timeline_nestedness_1 = require("./get-timeline-nestedness");
|
|
7
8
|
const get_timeline_sequence_hash_1 = require("./get-timeline-sequence-hash");
|
|
@@ -20,19 +21,42 @@ const getInheritedLoopDisplay = (sequence, sequences) => {
|
|
|
20
21
|
}
|
|
21
22
|
return getInheritedLoopDisplay(parent, sequences);
|
|
22
23
|
};
|
|
23
|
-
const calculateTimeline = ({ sequences, overrideIdsToNodePaths, }) => {
|
|
24
|
+
const calculateTimeline = ({ sequences, overrideIdsToNodePaths, compositions = [], }) => {
|
|
24
25
|
var _a, _b;
|
|
25
|
-
var _c;
|
|
26
|
+
var _c, _d;
|
|
26
27
|
const sortedSequences = (0, sort_by_nonce_history_1.sortItemsByNonceHistory)(sequences);
|
|
27
28
|
const tracks = [];
|
|
28
29
|
if (sortedSequences.length === 0) {
|
|
29
30
|
return [];
|
|
30
31
|
}
|
|
32
|
+
const connectedCompositionsBySequenceId = new Map();
|
|
33
|
+
for (const sequence of sortedSequences) {
|
|
34
|
+
const connectedCompositions = (0, get_connected_compositions_1.getConnectedCompositions)({
|
|
35
|
+
compositions,
|
|
36
|
+
singleChildComponent: sequence.singleChildComponent,
|
|
37
|
+
});
|
|
38
|
+
if (connectedCompositions.length > 0) {
|
|
39
|
+
connectedCompositionsBySequenceId.set(sequence.id, connectedCompositions);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
const sequencesById = new Map(sortedSequences.map((sequence) => [sequence.id, sequence]));
|
|
43
|
+
const timelineSequences = sortedSequences.filter((sequence) => {
|
|
44
|
+
var _a;
|
|
45
|
+
var _b;
|
|
46
|
+
let parentId = sequence.parent;
|
|
47
|
+
while (parentId !== null) {
|
|
48
|
+
if (connectedCompositionsBySequenceId.has(parentId)) {
|
|
49
|
+
return false;
|
|
50
|
+
}
|
|
51
|
+
parentId = (_b = (_a = sequencesById.get(parentId)) === null || _a === void 0 ? void 0 : _a.parent) !== null && _b !== void 0 ? _b : null;
|
|
52
|
+
}
|
|
53
|
+
return true;
|
|
54
|
+
});
|
|
31
55
|
const sameHashes = {};
|
|
32
56
|
const hashesUsedInRoot = {};
|
|
33
57
|
const cache = {};
|
|
34
|
-
for (let i = 0; i <
|
|
35
|
-
const sequence =
|
|
58
|
+
for (let i = 0; i < timelineSequences.length; i++) {
|
|
59
|
+
const sequence = timelineSequences[i];
|
|
36
60
|
if (!hashesUsedInRoot[sequence.rootId]) {
|
|
37
61
|
hashesUsedInRoot[sequence.rootId] = [];
|
|
38
62
|
}
|
|
@@ -51,7 +75,9 @@ const calculateTimeline = ({ sequences, overrideIdsToNodePaths, }) => {
|
|
|
51
75
|
const overrideId = (_c = (_a = sequence.controls) === null || _a === void 0 ? void 0 : _a.overrideId) !== null && _c !== void 0 ? _c : null;
|
|
52
76
|
const nodePath = overrideId ? overrideIdsToNodePaths[overrideId] : null;
|
|
53
77
|
const hasKeyframeRows = sequence.controls !== null || sequence.effects.length > 0;
|
|
78
|
+
const connectedCompositions = (_d = connectedCompositionsBySequenceId.get(sequence.id)) !== null && _d !== void 0 ? _d : [];
|
|
54
79
|
tracks.push({
|
|
80
|
+
...(connectedCompositions.length > 0 ? { connectedCompositions } : {}),
|
|
55
81
|
sequence: {
|
|
56
82
|
...sequence,
|
|
57
83
|
from: visibleStart,
|
|
@@ -81,10 +107,15 @@ const calculateTimeline = ({ sequences, overrideIdsToNodePaths, }) => {
|
|
|
81
107
|
}
|
|
82
108
|
const uniqueTracks = [];
|
|
83
109
|
for (const track of tracks) {
|
|
84
|
-
|
|
110
|
+
const existingTrack = uniqueTracks.find((t) => t.hash === track.hash);
|
|
111
|
+
if (!existingTrack) {
|
|
85
112
|
const { cascadedDuration, cascadedStart, ...cleanTrack } = track;
|
|
86
113
|
uniqueTracks.push(cleanTrack);
|
|
87
114
|
}
|
|
115
|
+
else if (existingTrack.connectedCompositions === undefined &&
|
|
116
|
+
track.connectedCompositions !== undefined) {
|
|
117
|
+
existingTrack.connectedCompositions = track.connectedCompositions;
|
|
118
|
+
}
|
|
88
119
|
}
|
|
89
120
|
const nonceRanks = new Map();
|
|
90
121
|
for (let i = 0; i < tracks.length; i++) {
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export declare const getConnectedCompositions: <Composition extends {
|
|
2
|
+
readonly componentFromProps?: unknown;
|
|
3
|
+
}>({ compositions, singleChildComponent, }: {
|
|
4
|
+
readonly compositions: readonly Composition[];
|
|
5
|
+
readonly singleChildComponent: unknown;
|
|
6
|
+
}) => Composition[];
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getConnectedCompositions = void 0;
|
|
4
|
+
const getConnectedCompositions = ({ compositions, singleChildComponent, }) => {
|
|
5
|
+
if (singleChildComponent === null ||
|
|
6
|
+
typeof singleChildComponent === 'undefined') {
|
|
7
|
+
return [];
|
|
8
|
+
}
|
|
9
|
+
return compositions.filter((composition) => composition.componentFromProps === singleChildComponent);
|
|
10
|
+
};
|
|
11
|
+
exports.getConnectedCompositions = getConnectedCompositions;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const getFileManagerName: (platform: string | null) => string;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getFileManagerName = void 0;
|
|
4
|
+
const getFileManagerName = (platform) => {
|
|
5
|
+
if (platform === 'darwin') {
|
|
6
|
+
return 'Finder';
|
|
7
|
+
}
|
|
8
|
+
if (platform === 'win32') {
|
|
9
|
+
return 'File Explorer';
|
|
10
|
+
}
|
|
11
|
+
return 'File Manager';
|
|
12
|
+
};
|
|
13
|
+
exports.getFileManagerName = getFileManagerName;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export type SequenceDoubleClickAction = 'open-connected-composition' | 'open-in-editor';
|
|
2
|
+
export declare const getSequenceDoubleClickAction: ({ button, canOpenInEditor, numberOfConnectedCompositions, }: {
|
|
3
|
+
readonly button: number;
|
|
4
|
+
readonly canOpenInEditor: boolean;
|
|
5
|
+
readonly numberOfConnectedCompositions: number;
|
|
6
|
+
}) => SequenceDoubleClickAction | null;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getSequenceDoubleClickAction = void 0;
|
|
4
|
+
const getSequenceDoubleClickAction = ({ button, canOpenInEditor, numberOfConnectedCompositions, }) => {
|
|
5
|
+
if (button !== 0) {
|
|
6
|
+
return null;
|
|
7
|
+
}
|
|
8
|
+
if (numberOfConnectedCompositions === 1) {
|
|
9
|
+
return 'open-connected-composition';
|
|
10
|
+
}
|
|
11
|
+
return canOpenInEditor ? 'open-in-editor' : null;
|
|
12
|
+
};
|
|
13
|
+
exports.getSequenceDoubleClickAction = getSequenceDoubleClickAction;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { SequencePropsSubscriptionKey, TSequence } from 'remotion';
|
|
1
|
+
import type { _InternalTypes, SequencePropsSubscriptionKey, TSequence } from 'remotion';
|
|
2
2
|
export type SequenceNodePathInfo = {
|
|
3
3
|
sequenceSubscriptionKey: SequencePropsSubscriptionKey;
|
|
4
4
|
auxiliaryKeys: string[];
|
|
@@ -8,6 +8,7 @@ export type SequenceNodePathInfo = {
|
|
|
8
8
|
};
|
|
9
9
|
type Track = {
|
|
10
10
|
sequence: TSequence;
|
|
11
|
+
connectedCompositions?: readonly _InternalTypes['AnyComposition'][];
|
|
11
12
|
depth: number;
|
|
12
13
|
nodePathInfo: SequenceNodePathInfo | null;
|
|
13
14
|
keyframeDisplayOffset: number;
|
|
@@ -31,13 +31,14 @@ export type TimelineTreeNode = {
|
|
|
31
31
|
readonly label: string;
|
|
32
32
|
readonly field: AnySchemaFieldInfo | null;
|
|
33
33
|
};
|
|
34
|
-
export declare const buildTimelineTree: ({ sequence, nodePathInfo, getDragOverrides, getEffectDragOverrides, propStatuses, includeTextContent, }: {
|
|
34
|
+
export declare const buildTimelineTree: ({ sequence, nodePathInfo, getDragOverrides, getEffectDragOverrides, propStatuses, includeTextContent, includeSourceControls, }: {
|
|
35
35
|
sequence: TSequence;
|
|
36
36
|
nodePathInfo: SequenceNodePathInfo;
|
|
37
37
|
getDragOverrides: GetDragOverrides;
|
|
38
38
|
getEffectDragOverrides: GetEffectDragOverrides;
|
|
39
39
|
propStatuses: PropStatuses;
|
|
40
40
|
includeTextContent: boolean;
|
|
41
|
+
includeSourceControls: boolean;
|
|
41
42
|
}) => TimelineTreeNode[];
|
|
42
43
|
export type FlatTreeRow = {
|
|
43
44
|
readonly node: TimelineTreeNode;
|
|
@@ -14,7 +14,7 @@ exports.TIMELINE_ITEM_BORDER_BOTTOM = 1;
|
|
|
14
14
|
exports.TIMELINE_TRACK_EXPANDED_HEIGHT = 100;
|
|
15
15
|
exports.TREE_GROUP_ROW_HEIGHT = 22;
|
|
16
16
|
exports.EXPANDED_SECTION_PADDING_RIGHT = 10;
|
|
17
|
-
const buildTimelineTree = ({ sequence, nodePathInfo, getDragOverrides, getEffectDragOverrides, propStatuses, includeTextContent, }) => {
|
|
17
|
+
const buildTimelineTree = ({ sequence, nodePathInfo, getDragOverrides, getEffectDragOverrides, propStatuses, includeTextContent, includeSourceControls, }) => {
|
|
18
18
|
var _a;
|
|
19
19
|
const roots = [];
|
|
20
20
|
const { sequenceSubscriptionKey, index, auxiliaryKeys, supportsEffects } = nodePathInfo;
|
|
@@ -28,6 +28,9 @@ const buildTimelineTree = ({ sequence, nodePathInfo, getDragOverrides, getEffect
|
|
|
28
28
|
});
|
|
29
29
|
if (controlFields && controlFields.length > 0) {
|
|
30
30
|
for (const f of controlFields) {
|
|
31
|
+
if (!includeSourceControls && f.key === 'src') {
|
|
32
|
+
continue;
|
|
33
|
+
}
|
|
31
34
|
roots.push({
|
|
32
35
|
kind: 'field',
|
|
33
36
|
nodePathInfo: {
|
|
@@ -136,6 +139,7 @@ const getExpandedTrackHeight = ({ sequence, nodePathInfo, getIsExpanded, propSta
|
|
|
136
139
|
getEffectDragOverrides: () => ({}),
|
|
137
140
|
propStatuses,
|
|
138
141
|
includeTextContent: false,
|
|
142
|
+
includeSourceControls: false,
|
|
139
143
|
});
|
|
140
144
|
const flat = (0, exports.flattenVisibleTreeNodes)({ nodes: tree, getIsExpanded });
|
|
141
145
|
if (flat.length === 0) {
|
|
@@ -1,19 +1,21 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getRoute = exports.reloadUrl = exports.clearUrl = exports.pushUrl = void 0;
|
|
3
|
+
exports.getRoute = exports.reloadUrl = exports.clearUrl = exports.pushUrl = exports.getUrlForRoute = void 0;
|
|
4
4
|
const getUrlHandlingType = () => {
|
|
5
5
|
if (window.remotion_isReadOnlyStudio) {
|
|
6
6
|
return 'query-string';
|
|
7
7
|
}
|
|
8
8
|
return 'spa';
|
|
9
9
|
};
|
|
10
|
-
const
|
|
10
|
+
const getUrlForRoute = (route) => {
|
|
11
11
|
if (getUrlHandlingType() === 'query-string') {
|
|
12
|
-
|
|
13
|
-
}
|
|
14
|
-
else {
|
|
15
|
-
window.history.pushState({}, 'Studio', url);
|
|
12
|
+
return `${window.location.pathname}?${route}`;
|
|
16
13
|
}
|
|
14
|
+
return route;
|
|
15
|
+
};
|
|
16
|
+
exports.getUrlForRoute = getUrlForRoute;
|
|
17
|
+
const pushUrl = (url) => {
|
|
18
|
+
window.history.pushState({}, 'Studio', (0, exports.getUrlForRoute)(url));
|
|
17
19
|
};
|
|
18
20
|
exports.pushUrl = pushUrl;
|
|
19
21
|
const clearUrl = () => {
|
|
@@ -27,6 +27,7 @@ const sidebar_1 = require("../state/sidebar");
|
|
|
27
27
|
const check_fullscreen_support_1 = require("./check-fullscreen-support");
|
|
28
28
|
const client_id_1 = require("./client-id");
|
|
29
29
|
const colors_1 = require("./colors");
|
|
30
|
+
const get_file_manager_name_1 = require("./get-file-manager-name");
|
|
30
31
|
const get_git_menu_item_1 = require("./get-git-menu-item");
|
|
31
32
|
const mobile_layout_1 = require("./mobile-layout");
|
|
32
33
|
const open_in_editor_1 = require("./open-in-editor");
|
|
@@ -41,6 +42,7 @@ const rotate = {
|
|
|
41
42
|
};
|
|
42
43
|
const ICON_SIZE = 16;
|
|
43
44
|
const getFileMenu = ({ readOnlyStudio, closeMenu, previewServerState, setSelectedModal, }) => {
|
|
45
|
+
const fileManagerName = (0, get_file_manager_name_1.getFileManagerName)(window.remotion_fileSystemPlatform);
|
|
44
46
|
const items = [
|
|
45
47
|
readOnlyStudio
|
|
46
48
|
? null
|
|
@@ -165,7 +167,7 @@ const getFileMenu = ({ readOnlyStudio, closeMenu, previewServerState, setSelecte
|
|
|
165
167
|
? {
|
|
166
168
|
id: 'open-project-in-explorer',
|
|
167
169
|
value: 'open-project-in-explorer',
|
|
168
|
-
label:
|
|
170
|
+
label: `Open in ${fileManagerName}`,
|
|
169
171
|
onClick: () => {
|
|
170
172
|
closeMenu();
|
|
171
173
|
(0, actions_1.openInFileExplorer)({ directory: window.remotion_cwd }).catch((err) => {
|
|
@@ -176,7 +178,7 @@ const getFileMenu = ({ readOnlyStudio, closeMenu, previewServerState, setSelecte
|
|
|
176
178
|
keyHint: null,
|
|
177
179
|
leftItem: null,
|
|
178
180
|
subMenu: null,
|
|
179
|
-
quickSwitcherLabel:
|
|
181
|
+
quickSwitcherLabel: `Open project in ${fileManagerName}`,
|
|
180
182
|
disabled: previewServerState !== 'connected',
|
|
181
183
|
}
|
|
182
184
|
: null,
|
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.493",
|
|
7
7
|
"description": "APIs for interacting with the Remotion Studio",
|
|
8
8
|
"main": "dist",
|
|
9
9
|
"scripts": {
|
|
@@ -25,15 +25,15 @@
|
|
|
25
25
|
},
|
|
26
26
|
"dependencies": {
|
|
27
27
|
"semver": "7.5.3",
|
|
28
|
-
"remotion": "4.0.
|
|
29
|
-
"@remotion/canvas-capture": "4.0.
|
|
30
|
-
"@remotion/player": "4.0.
|
|
31
|
-
"@remotion/media-utils": "4.0.
|
|
32
|
-
"@remotion/renderer": "4.0.
|
|
33
|
-
"@remotion/web-renderer": "4.0.
|
|
34
|
-
"@remotion/studio-shared": "4.0.
|
|
35
|
-
"@remotion/timeline-utils": "4.0.
|
|
36
|
-
"@remotion/zod-types": "4.0.
|
|
28
|
+
"remotion": "4.0.493",
|
|
29
|
+
"@remotion/canvas-capture": "4.0.493",
|
|
30
|
+
"@remotion/player": "4.0.493",
|
|
31
|
+
"@remotion/media-utils": "4.0.493",
|
|
32
|
+
"@remotion/renderer": "4.0.493",
|
|
33
|
+
"@remotion/web-renderer": "4.0.493",
|
|
34
|
+
"@remotion/studio-shared": "4.0.493",
|
|
35
|
+
"@remotion/timeline-utils": "4.0.493",
|
|
36
|
+
"@remotion/zod-types": "4.0.493",
|
|
37
37
|
"@jridgewell/trace-mapping": "0.3.31",
|
|
38
38
|
"mediabunny": "1.50.8",
|
|
39
39
|
"memfs": "3.4.3",
|
|
@@ -44,7 +44,7 @@
|
|
|
44
44
|
"react": "19.2.3",
|
|
45
45
|
"react-dom": "19.2.3",
|
|
46
46
|
"@types/semver": "7.5.3",
|
|
47
|
-
"@remotion/eslint-config-internal": "4.0.
|
|
47
|
+
"@remotion/eslint-config-internal": "4.0.493",
|
|
48
48
|
"eslint": "9.19.0",
|
|
49
49
|
"@typescript/native-preview": "7.0.0-dev.20260217.1"
|
|
50
50
|
},
|