@remotion/studio 4.0.498 → 4.0.500
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/AssetSelector.js +8 -6
- package/dist/components/AssetSelectorItem.d.ts +24 -0
- package/dist/components/AssetSelectorItem.js +144 -83
- package/dist/components/Canvas.js +162 -7
- package/dist/components/CompositionSelector.js +15 -42
- package/dist/components/CompositionSelectorItem.js +21 -13
- package/dist/components/ControlButton.js +1 -0
- package/dist/components/EditorContent.js +1 -1
- package/dist/components/EditorRuler/Ruler.js +5 -3
- package/dist/components/ExplorerPanel.js +2 -1
- package/dist/components/ExplorerPanelRef.d.ts +2 -0
- package/dist/components/ForceSpecificCursor.js +13 -1
- package/dist/components/GlobalKeybindings.js +7 -1
- package/dist/components/InlineAction.d.ts +2 -1
- package/dist/components/InlineAction.js +2 -2
- package/dist/components/InlineDropdown.d.ts +1 -1
- package/dist/components/InlineDropdown.js +3 -2
- package/dist/components/InspectorPanel/AlignmentControls.d.ts +2 -2
- package/dist/components/InspectorPanel/AlignmentControls.js +5 -2
- package/dist/components/InspectorPanel/CompositionInspector.js +8 -7
- package/dist/components/InspectorPanel/CompositionMetadata.js +170 -57
- package/dist/components/InspectorPanel/ConnectedCompositionsSection.d.ts +2 -2
- package/dist/components/InspectorPanel/SequenceInspectorHeader.d.ts +3 -3
- package/dist/components/InspectorPanel/SequenceSelectionInspector.js +7 -7
- package/dist/components/InspectorPanel/common.d.ts +17 -4
- package/dist/components/InspectorPanel/common.js +60 -6
- package/dist/components/InspectorPanel/use-composition-actions.js +1 -0
- package/dist/components/InspectorPanel/use-track-for-selection.d.ts +1 -1
- package/dist/components/InspectorSequenceSection.js +43 -19
- package/dist/components/KeyboardShortcutsExplainer.js +4 -2
- package/dist/components/Menu/MenuItem.js +2 -1
- package/dist/components/MenuCompositionName.js +30 -7
- package/dist/components/MenuToolbar.d.ts +0 -1
- package/dist/components/MenuToolbar.js +8 -7
- package/dist/components/MobilePanel.d.ts +2 -1
- package/dist/components/MobilePanel.js +29 -25
- package/dist/components/ModalContainer.d.ts +1 -0
- package/dist/components/ModalContainer.js +2 -2
- package/dist/components/Modals.js +1 -1
- package/dist/components/NewComposition/DismissableModal.d.ts +1 -0
- package/dist/components/NewComposition/DismissableModal.js +2 -2
- package/dist/components/NewComposition/InputDragger.d.ts +34 -0
- package/dist/components/NewComposition/InputDragger.js +262 -23
- package/dist/components/OutlineToggle.d.ts +1 -3
- package/dist/components/OutlineToggle.js +2 -2
- package/dist/components/PreviewToolbar.js +10 -4
- package/dist/components/QuickSwitcher/ExplorerQuickSwitcherTrigger.d.ts +7 -0
- package/dist/components/QuickSwitcher/ExplorerQuickSwitcherTrigger.js +44 -0
- package/dist/components/QuickSwitcher/NoResults.d.ts +1 -1
- package/dist/components/QuickSwitcher/NoResults.js +1 -0
- package/dist/components/QuickSwitcher/QuickSwitcher.d.ts +5 -0
- package/dist/components/QuickSwitcher/QuickSwitcher.js +6 -2
- package/dist/components/QuickSwitcher/QuickSwitcherContent.d.ts +5 -0
- package/dist/components/QuickSwitcher/QuickSwitcherContent.js +76 -12
- package/dist/components/QuickSwitcher/QuickSwitcherResult.d.ts +4 -0
- package/dist/components/QuickSwitcher/QuickSwitcherResult.js +11 -8
- package/dist/components/QuickSwitcher/asset-search.d.ts +9 -0
- package/dist/components/QuickSwitcher/asset-search.js +42 -0
- package/dist/components/SelectedOutlineCropControls.d.ts +8 -0
- package/dist/components/SelectedOutlineCropControls.js +299 -0
- package/dist/components/SelectedOutlineElement.js +83 -43
- package/dist/components/SelectedOutlineOverlay.d.ts +2 -2
- package/dist/components/SelectedOutlineOverlay.js +130 -8
- package/dist/components/SequencePropsSubscriptionProvider.d.ts +2 -0
- package/dist/components/SequencePropsSubscriptionProvider.js +31 -3
- package/dist/components/SidebarCollapserControls.d.ts +3 -1
- package/dist/components/SidebarCollapserControls.js +34 -29
- package/dist/components/SnappingToggle.d.ts +1 -3
- package/dist/components/SnappingToggle.js +2 -2
- package/dist/components/Splitter/SplitterContainer.d.ts +2 -0
- package/dist/components/Splitter/SplitterContainer.js +5 -1
- package/dist/components/Splitter/SplitterContext.d.ts +2 -0
- package/dist/components/Splitter/SplitterContext.js +2 -0
- package/dist/components/Splitter/SplitterElement.js +6 -1
- package/dist/components/Splitter/SplitterHandle.js +27 -2
- package/dist/components/Timeline/Timeline.js +1 -1
- package/dist/components/Timeline/TimelineAssetField.d.ts +9 -1
- package/dist/components/Timeline/TimelineAssetField.js +52 -100
- package/dist/components/Timeline/TimelineClipboardKeybindings.d.ts +7 -3
- package/dist/components/Timeline/TimelineClipboardKeybindings.js +65 -38
- package/dist/components/Timeline/TimelineColorField.js +20 -1
- package/dist/components/Timeline/TimelineEffectPropItem.js +8 -77
- package/dist/components/Timeline/TimelineExpandedKeyframeRow.js +1 -0
- package/dist/components/Timeline/TimelineHeightContainer.d.ts +2 -2
- package/dist/components/Timeline/TimelineInOutDragHandler.js +25 -1
- package/dist/components/Timeline/TimelineKeyframeTracksContext.d.ts +3 -3
- package/dist/components/Timeline/TimelineLayerEye.js +4 -1
- package/dist/components/Timeline/TimelineList.d.ts +2 -2
- package/dist/components/Timeline/TimelinePrimitiveFieldValue.js +7 -1
- package/dist/components/Timeline/TimelineSelection.d.ts +5 -5
- package/dist/components/Timeline/TimelineSelection.js +8 -6
- package/dist/components/Timeline/TimelineSequence.js +7 -6
- package/dist/components/Timeline/TimelineSequenceItem.js +57 -10
- package/dist/components/Timeline/TimelineSequenceName.js +1 -0
- package/dist/components/Timeline/TimelineSequencePropItem.js +27 -75
- package/dist/components/Timeline/TimelineSequenceRightEdgeDragHandle.d.ts +5 -1
- package/dist/components/Timeline/TimelineSequenceRightEdgeDragHandle.js +29 -12
- package/dist/components/Timeline/TimelineTrack.d.ts +2 -2
- package/dist/components/Timeline/TimelineTracks.d.ts +2 -2
- package/dist/components/Timeline/find-track-for-node-path-info.d.ts +1 -1
- package/dist/components/Timeline/get-sequence-context-menu-items.js +14 -12
- package/dist/components/Timeline/reset-selected-timeline-props.js +18 -10
- package/dist/components/Timeline/save-effect-prop.d.ts +10 -0
- package/dist/components/Timeline/save-effect-prop.js +52 -1
- package/dist/components/Timeline/should-show-track-in-timeline.d.ts +2 -2
- package/dist/components/Timeline/timeline-asset-link.js +17 -1
- package/dist/components/Timeline/use-sequence-freeze-frame-menu-item.d.ts +4 -0
- package/dist/components/Timeline/use-sequence-freeze-frame-menu-item.js +9 -3
- package/dist/components/Timeline/use-timeline-height.d.ts +2 -2
- package/dist/components/Timeline/use-timeline-keyframe-drag.js +6 -4
- package/dist/components/TopPanel.js +3 -2
- package/dist/components/UndoRedoButtons.js +27 -5
- package/dist/components/composition-drop-preview.d.ts +33 -0
- package/dist/components/composition-drop-preview.js +68 -0
- package/dist/components/drop-handler-data.d.ts +1 -1
- package/dist/components/drop-handler-data.js +27 -60
- package/dist/components/effect-drag-and-drop.d.ts +1 -1
- package/dist/components/effect-drag-and-drop.js +7 -55
- package/dist/components/element-drag-and-drop.d.ts +1 -1
- package/dist/components/element-drag-and-drop.js +5 -17
- package/dist/components/handle-drop.js +0 -1
- package/dist/components/import-assets.d.ts +7 -8
- package/dist/components/import-assets.js +2 -9
- package/dist/components/menu-toolbar-height.d.ts +1 -0
- package/dist/components/menu-toolbar-height.js +4 -0
- package/dist/components/selected-outline-drag.d.ts +41 -4
- package/dist/components/selected-outline-drag.js +179 -2
- package/dist/components/selected-outline-geometry.d.ts +1 -0
- package/dist/components/selected-outline-measurement.d.ts +11 -0
- package/dist/components/selected-outline-measurement.js +64 -3
- package/dist/components/selected-outline-types.d.ts +44 -1
- package/dist/components/selected-outline-types.js +21 -1
- package/dist/error-overlay/remotion-overlay/Overlay.js +3 -3
- package/dist/error-overlay/remotion-overlay/ShortcutHint.js +2 -3
- package/dist/esm/{chunk-7a6q9hk2.js → chunk-dr1y1vm3.js} +11851 -9494
- package/dist/esm/internals.mjs +11851 -9494
- package/dist/esm/previewEntry.mjs +55150 -52795
- package/dist/esm/renderEntry.mjs +1 -1
- package/dist/helpers/calculate-timeline.d.ts +2 -2
- package/dist/helpers/calculate-timeline.js +8 -28
- package/dist/helpers/get-effective-translation.d.ts +13 -1
- package/dist/helpers/get-effective-translation.js +12 -6
- package/dist/helpers/get-timeline-sequence-sort-key.d.ts +3 -10
- package/dist/helpers/get-timeline-sequence-sort-key.js +5 -13
- package/dist/helpers/interactivity-enabled.d.ts +1 -0
- package/dist/helpers/interactivity-enabled.js +7 -2
- package/dist/helpers/is-mac.d.ts +1 -0
- package/dist/helpers/is-mac.js +4 -0
- package/dist/helpers/open-in-editor.d.ts +5 -1
- package/dist/helpers/open-in-editor.js +15 -1
- package/dist/helpers/ruler-canvas-size.d.ts +7 -0
- package/dist/helpers/ruler-canvas-size.js +14 -1
- package/dist/helpers/sort-by-nonce-history.js +97 -19
- package/dist/helpers/use-image-metadata.d.ts +1 -0
- package/dist/helpers/use-image-metadata.js +8 -5
- package/dist/helpers/use-keybinding.js +2 -3
- package/dist/helpers/use-media-metadata.d.ts +1 -0
- package/dist/helpers/use-media-metadata.js +8 -5
- package/dist/helpers/use-menu-structure.js +10 -1
- package/dist/icons/caret.d.ts +1 -0
- package/dist/icons/caret.js +2 -2
- package/dist/icons/pen.d.ts +5 -0
- package/dist/icons/pen.js +8 -0
- package/dist/state/modals.d.ts +5 -0
- package/package.json +13 -12
- package/dist/helpers/get-timeline-sequence-hash.d.ts +0 -6
- package/dist/helpers/get-timeline-sequence-hash.js +0 -33
|
@@ -2,22 +2,22 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.CompositionSelector = exports.useCompositionNavigation = void 0;
|
|
4
4
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
+
const drag_and_drop_1 = require("@remotion/drag-and-drop");
|
|
5
6
|
const studio_shared_1 = require("@remotion/studio-shared");
|
|
6
7
|
const react_1 = require("react");
|
|
7
8
|
const remotion_1 = require("remotion");
|
|
8
|
-
const ShortcutHint_1 = require("../error-overlay/remotion-overlay/ShortcutHint");
|
|
9
9
|
const client_id_1 = require("../helpers/client-id");
|
|
10
10
|
const colors_1 = require("../helpers/colors");
|
|
11
11
|
const create_folder_tree_1 = require("../helpers/create-folder-tree");
|
|
12
12
|
const persist_open_folders_1 = require("../helpers/persist-open-folders");
|
|
13
13
|
const sort_by_nonce_history_1 = require("../helpers/sort-by-nonce-history");
|
|
14
|
-
const use_keybinding_1 = require("../helpers/use-keybinding");
|
|
15
14
|
const modals_1 = require("../state/modals");
|
|
16
15
|
const z_index_1 = require("../state/z-index");
|
|
17
16
|
const CompositionSelectorItem_1 = require("./CompositionSelectorItem");
|
|
18
17
|
const ContextMenu_1 = require("./ContextMenu");
|
|
19
18
|
const InitialCompositionLoader_1 = require("./InitialCompositionLoader");
|
|
20
19
|
const NotificationCenter_1 = require("./Notifications/NotificationCenter");
|
|
20
|
+
const ExplorerQuickSwitcherTrigger_1 = require("./QuickSwitcher/ExplorerQuickSwitcherTrigger");
|
|
21
21
|
const actions_1 = require("./RenderQueue/actions");
|
|
22
22
|
const root_composition_menu_items_1 = require("./root-composition-menu-items");
|
|
23
23
|
const useCompositionNavigation = () => {
|
|
@@ -64,28 +64,6 @@ const container = {
|
|
|
64
64
|
overflow: 'hidden',
|
|
65
65
|
backgroundColor: colors_1.BACKGROUND,
|
|
66
66
|
};
|
|
67
|
-
const quickSwitcherArea = {
|
|
68
|
-
padding: '4px 12px',
|
|
69
|
-
borderBottom: `1px solid ${colors_1.BLACK_HEX}`,
|
|
70
|
-
};
|
|
71
|
-
const quickSwitcherTrigger = {
|
|
72
|
-
backgroundColor: colors_1.WHITE_ALPHA_06,
|
|
73
|
-
borderRadius: 5,
|
|
74
|
-
padding: '4px 10px',
|
|
75
|
-
color: colors_1.LIGHT_TEXT,
|
|
76
|
-
fontSize: 12,
|
|
77
|
-
cursor: 'pointer',
|
|
78
|
-
display: 'flex',
|
|
79
|
-
alignItems: 'center',
|
|
80
|
-
justifyContent: 'space-between',
|
|
81
|
-
border: 'none',
|
|
82
|
-
width: '100%',
|
|
83
|
-
appearance: 'none',
|
|
84
|
-
};
|
|
85
|
-
const shortcutLabel = {
|
|
86
|
-
fontSize: 11,
|
|
87
|
-
opacity: 0.6,
|
|
88
|
-
};
|
|
89
67
|
const autoScrollThreshold = 70;
|
|
90
68
|
const maxAutoScrollSpeed = 18;
|
|
91
69
|
const getAutoScrollSpeed = ({ clientY, element, }) => {
|
|
@@ -145,13 +123,6 @@ const CompositionSelector = () => {
|
|
|
145
123
|
var _a;
|
|
146
124
|
(_a = remotion_1.Internals.compositionSelectorRef.current) === null || _a === void 0 ? void 0 : _a.toggleFolder(folderName, parentName);
|
|
147
125
|
}, []);
|
|
148
|
-
const openQuickSwitcher = (0, react_1.useCallback)(() => {
|
|
149
|
-
setSelectedModal({
|
|
150
|
-
type: 'quick-switcher',
|
|
151
|
-
mode: 'compositions',
|
|
152
|
-
invocationTimestamp: Date.now(),
|
|
153
|
-
});
|
|
154
|
-
}, [setSelectedModal]);
|
|
155
126
|
const clearRootDragHover = (0, react_1.useCallback)(() => {
|
|
156
127
|
setRootDragHovered(false);
|
|
157
128
|
}, []);
|
|
@@ -188,8 +159,9 @@ const CompositionSelector = () => {
|
|
|
188
159
|
}
|
|
189
160
|
}, [runCompositionListAutoScroll, stopCompositionListAutoScroll]);
|
|
190
161
|
const onCompositionListDragOverCapture = (0, react_1.useCallback)((event) => {
|
|
162
|
+
var _a;
|
|
191
163
|
if (window.remotion_isReadOnlyStudio ||
|
|
192
|
-
|
|
164
|
+
((_a = drag_and_drop_1.DragAndDropInternals.getDragPreviewMetadata(event.dataTransfer.types)) === null || _a === void 0 ? void 0 : _a.type) !== 'composition') {
|
|
193
165
|
stopCompositionListAutoScroll();
|
|
194
166
|
return;
|
|
195
167
|
}
|
|
@@ -204,8 +176,9 @@ const CompositionSelector = () => {
|
|
|
204
176
|
return stopCompositionListAutoScroll;
|
|
205
177
|
}, [stopCompositionListAutoScroll]);
|
|
206
178
|
const onRootDragOver = (0, react_1.useCallback)((event) => {
|
|
179
|
+
var _a;
|
|
207
180
|
if (window.remotion_isReadOnlyStudio ||
|
|
208
|
-
|
|
181
|
+
((_a = drag_and_drop_1.DragAndDropInternals.getDragPreviewMetadata(event.dataTransfer.types)) === null || _a === void 0 ? void 0 : _a.type) !== 'composition') {
|
|
209
182
|
return;
|
|
210
183
|
}
|
|
211
184
|
event.preventDefault();
|
|
@@ -225,35 +198,35 @@ const CompositionSelector = () => {
|
|
|
225
198
|
if (window.remotion_isReadOnlyStudio) {
|
|
226
199
|
return;
|
|
227
200
|
}
|
|
228
|
-
const
|
|
229
|
-
|
|
230
|
-
if (parsed === null) {
|
|
201
|
+
const parsed = drag_and_drop_1.DragAndDropInternals.parseDragData(event.dataTransfer);
|
|
202
|
+
if ((parsed === null || parsed === void 0 ? void 0 : parsed.type) !== 'composition') {
|
|
231
203
|
return;
|
|
232
204
|
}
|
|
205
|
+
const compositionDragData = parsed.data;
|
|
233
206
|
event.preventDefault();
|
|
234
207
|
event.stopPropagation();
|
|
235
208
|
stopCompositionListAutoScroll();
|
|
236
209
|
setRootDragHovered(false);
|
|
237
|
-
const composition = compositions.find((c) => c.id ===
|
|
210
|
+
const composition = compositions.find((c) => c.id === compositionDragData.compositionId);
|
|
238
211
|
if (!composition || composition.folderName === null) {
|
|
239
212
|
return;
|
|
240
213
|
}
|
|
241
|
-
const notification = (0, NotificationCenter_1.showNotification)(`Moving ${
|
|
214
|
+
const notification = (0, NotificationCenter_1.showNotification)(`Moving ${compositionDragData.compositionId}...`, null);
|
|
242
215
|
const controller = new AbortController();
|
|
243
216
|
try {
|
|
244
217
|
const result = await (0, actions_1.applyCodemod)({
|
|
245
218
|
codemod: {
|
|
246
219
|
type: 'move-composition-to-folder',
|
|
247
|
-
idToMove:
|
|
220
|
+
idToMove: compositionDragData.compositionId,
|
|
248
221
|
folderName: null,
|
|
249
222
|
parentName: null,
|
|
250
223
|
},
|
|
251
224
|
dryRun: false,
|
|
252
225
|
signal: controller.signal,
|
|
253
|
-
symbolicatedStack: (0, studio_shared_1.compositionDragDataToSymbolicatedStack)(
|
|
226
|
+
symbolicatedStack: (0, studio_shared_1.compositionDragDataToSymbolicatedStack)(compositionDragData),
|
|
254
227
|
});
|
|
255
228
|
notification.replaceContent(result.success
|
|
256
|
-
? `Moved ${
|
|
229
|
+
? `Moved ${compositionDragData.compositionId} outside of folder`
|
|
257
230
|
: result.reason, result.success ? 2000 : 4000);
|
|
258
231
|
}
|
|
259
232
|
catch (err) {
|
|
@@ -261,7 +234,7 @@ const CompositionSelector = () => {
|
|
|
261
234
|
}
|
|
262
235
|
}, [compositions, stopCompositionListAutoScroll]);
|
|
263
236
|
return (jsx_runtime_1.jsxs("div", { style: container, children: [
|
|
264
|
-
jsx_runtime_1.jsx(ContextMenu_1.ContextMenuForTarget, { triggerRef: listRef, values: rootContextMenuItems, onOpen: null }), jsx_runtime_1.jsx(
|
|
237
|
+
jsx_runtime_1.jsx(ContextMenu_1.ContextMenuForTarget, { triggerRef: listRef, values: rootContextMenuItems, onOpen: null }), jsx_runtime_1.jsx(ExplorerQuickSwitcherTrigger_1.ExplorerQuickSwitcherTrigger, { mode: "compositions", showShortcut: true, tabIndex: tabIndex }), jsx_runtime_1.jsx("div", { ref: listRef, className: "__remotion-vertical-scrollbar", style: list, onDragOverCapture: onCompositionListDragOverCapture, onDragEndCapture: stopCompositionListAutoScroll, onDragOver: onRootDragOver, onDragLeave: onRootDragLeave, onDropCapture: stopCompositionListAutoScroll, onDrop: onRootDrop, children: items.map((c) => {
|
|
265
238
|
return (jsx_runtime_1.jsx(CompositionSelectorItem_1.CompositionSelectorItem, { level: 0, currentComposition: canvasContent && canvasContent.type === 'composition'
|
|
266
239
|
? canvasContent.compositionId
|
|
267
240
|
: null, selectComposition: selectComposition, toggleFolder: toggleFolder, clearRootDragHover: clearRootDragHover, tabIndex: tabIndex, item: c }, c.key + c.type));
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.CompositionSelectorItem = void 0;
|
|
4
4
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
+
const drag_and_drop_1 = require("@remotion/drag-and-drop");
|
|
5
6
|
const studio_shared_1 = require("@remotion/studio-shared");
|
|
6
7
|
const react_1 = require("react");
|
|
7
8
|
const client_id_1 = require("../helpers/client-id");
|
|
@@ -142,25 +143,31 @@ const CompositionSelectorItem = ({ item, level, currentComposition, tabIndex, se
|
|
|
142
143
|
});
|
|
143
144
|
}, [connectionStatus, item, resolvedLocation, setSelectedModal]);
|
|
144
145
|
const onCompositionDragStart = (0, react_1.useCallback)((event) => {
|
|
145
|
-
var _a;
|
|
146
|
+
var _a, _b, _c, _d;
|
|
146
147
|
if (item.type !== 'composition' || window.remotion_isReadOnlyStudio) {
|
|
147
148
|
event.preventDefault();
|
|
148
149
|
return;
|
|
149
150
|
}
|
|
150
151
|
setIsDragging(true);
|
|
151
152
|
event.dataTransfer.effectAllowed = 'copyMove';
|
|
152
|
-
|
|
153
|
+
const dragData = drag_and_drop_1.DragAndDropInternals.makeDragData({
|
|
154
|
+
type: 'composition',
|
|
153
155
|
compositionFile: (_a = resolvedLocation === null || resolvedLocation === void 0 ? void 0 : resolvedLocation.source) !== null && _a !== void 0 ? _a : null,
|
|
154
156
|
compositionId: item.composition.id,
|
|
155
|
-
|
|
157
|
+
width: (_b = item.composition.width) !== null && _b !== void 0 ? _b : null,
|
|
158
|
+
height: (_c = item.composition.height) !== null && _c !== void 0 ? _c : null,
|
|
159
|
+
durationInFrames: (_d = item.composition.durationInFrames) !== null && _d !== void 0 ? _d : null,
|
|
160
|
+
});
|
|
161
|
+
event.dataTransfer.setData(dragData.mimeType, dragData.payload);
|
|
156
162
|
}, [item, resolvedLocation === null || resolvedLocation === void 0 ? void 0 : resolvedLocation.source]);
|
|
157
163
|
const onCompositionDragEnd = (0, react_1.useCallback)(() => {
|
|
158
164
|
setIsDragging(false);
|
|
159
165
|
}, []);
|
|
160
166
|
const onFolderDragOver = (0, react_1.useCallback)((event) => {
|
|
167
|
+
var _a;
|
|
161
168
|
if (item.type !== 'folder' ||
|
|
162
169
|
window.remotion_isReadOnlyStudio ||
|
|
163
|
-
|
|
170
|
+
((_a = drag_and_drop_1.DragAndDropInternals.getDragPreviewMetadata(event.dataTransfer.types)) === null || _a === void 0 ? void 0 : _a.type) !== 'composition') {
|
|
164
171
|
return;
|
|
165
172
|
}
|
|
166
173
|
event.preventDefault();
|
|
@@ -173,9 +180,10 @@ const CompositionSelectorItem = ({ item, level, currentComposition, tabIndex, se
|
|
|
173
180
|
setDragHovered(false);
|
|
174
181
|
}, []);
|
|
175
182
|
const onFolderChildListDragOver = (0, react_1.useCallback)((event) => {
|
|
183
|
+
var _a;
|
|
176
184
|
if (item.type !== 'folder' ||
|
|
177
185
|
window.remotion_isReadOnlyStudio ||
|
|
178
|
-
|
|
186
|
+
((_a = drag_and_drop_1.DragAndDropInternals.getDragPreviewMetadata(event.dataTransfer.types)) === null || _a === void 0 ? void 0 : _a.type) !== 'composition') {
|
|
179
187
|
return;
|
|
180
188
|
}
|
|
181
189
|
event.preventDefault();
|
|
@@ -187,18 +195,18 @@ const CompositionSelectorItem = ({ item, level, currentComposition, tabIndex, se
|
|
|
187
195
|
if (item.type !== 'folder' || window.remotion_isReadOnlyStudio) {
|
|
188
196
|
return;
|
|
189
197
|
}
|
|
190
|
-
const
|
|
191
|
-
|
|
192
|
-
if (parsed === null) {
|
|
198
|
+
const parsed = drag_and_drop_1.DragAndDropInternals.parseDragData(event.dataTransfer);
|
|
199
|
+
if ((parsed === null || parsed === void 0 ? void 0 : parsed.type) !== 'composition') {
|
|
193
200
|
return;
|
|
194
201
|
}
|
|
202
|
+
const compositionDragData = parsed.data;
|
|
195
203
|
event.preventDefault();
|
|
196
204
|
event.stopPropagation();
|
|
197
205
|
clearRootDragHover();
|
|
198
206
|
setDragHovered(false);
|
|
199
207
|
const isAlreadyDirectChild = item.items.some((child) => {
|
|
200
208
|
return (child.type === 'composition' &&
|
|
201
|
-
child.composition.id ===
|
|
209
|
+
child.composition.id === compositionDragData.compositionId);
|
|
202
210
|
});
|
|
203
211
|
if (isAlreadyDirectChild) {
|
|
204
212
|
return;
|
|
@@ -207,22 +215,22 @@ const CompositionSelectorItem = ({ item, level, currentComposition, tabIndex, se
|
|
|
207
215
|
folderName: item.folderName,
|
|
208
216
|
parentName: item.parentName,
|
|
209
217
|
});
|
|
210
|
-
const notification = (0, NotificationCenter_1.showNotification)(`Moving ${
|
|
218
|
+
const notification = (0, NotificationCenter_1.showNotification)(`Moving ${compositionDragData.compositionId}...`, null);
|
|
211
219
|
const controller = new AbortController();
|
|
212
220
|
try {
|
|
213
221
|
const result = await (0, actions_1.applyCodemod)({
|
|
214
222
|
codemod: {
|
|
215
223
|
type: 'move-composition-to-folder',
|
|
216
|
-
idToMove:
|
|
224
|
+
idToMove: compositionDragData.compositionId,
|
|
217
225
|
folderName: item.folderName,
|
|
218
226
|
parentName: item.parentName,
|
|
219
227
|
},
|
|
220
228
|
dryRun: false,
|
|
221
229
|
signal: controller.signal,
|
|
222
|
-
symbolicatedStack: (0, studio_shared_1.compositionDragDataToSymbolicatedStack)(
|
|
230
|
+
symbolicatedStack: (0, studio_shared_1.compositionDragDataToSymbolicatedStack)(compositionDragData),
|
|
223
231
|
});
|
|
224
232
|
notification.replaceContent(result.success
|
|
225
|
-
? `Moved ${
|
|
233
|
+
? `Moved ${compositionDragData.compositionId} to ${folderId}`
|
|
226
234
|
: result.reason, result.success ? 2000 : 4000);
|
|
227
235
|
if (result.success && !item.expanded) {
|
|
228
236
|
toggleFolder(item.folderName, item.parentName);
|
|
@@ -35,7 +35,7 @@ const StudioClearSelectionArea = ({ children }) => {
|
|
|
35
35
|
const EditorContent = ({ readOnlyStudio, children }) => {
|
|
36
36
|
const { canvasContent } = (0, react_1.useContext)(remotion_1.Internals.CompositionManager);
|
|
37
37
|
const showTimeline = canvasContent !== null && canvasContent.type === 'composition';
|
|
38
|
-
const content = (jsx_runtime_1.jsxs(SplitterContainer_1.SplitterContainer, { orientation: "horizontal", id: "top-to-bottom", maxFlex: 0.9, minFlex: 0.2, defaultFlex: 0.75, children: [
|
|
38
|
+
const content = (jsx_runtime_1.jsxs(SplitterContainer_1.SplitterContainer, { orientation: "horizontal", id: "top-to-bottom", maxFlex: 0.9, minFlex: 0.2, defaultFlex: 0.75, maxFlexerSize: null, maxAntiFlexerSize: null, children: [
|
|
39
39
|
jsx_runtime_1.jsx(SplitterElement_1.SplitterElement, { sticky: null, type: "flexer", children: children }), jsx_runtime_1.jsx(SplitterHandle_1.SplitterHandle, { allowToCollapse: "none", onCollapse: noop }), jsx_runtime_1.jsx(SplitterElement_1.SplitterElement, { sticky: null, type: "anti-flexer", children: showTimeline ? jsx_runtime_1.jsx(Timeline_1.Timeline, {}) : jsx_runtime_1.jsx(TimelineEmptyState_1.TimelineEmptyState, {}) })
|
|
40
40
|
] }));
|
|
41
41
|
return (jsx_runtime_1.jsx(TimelineSelection_1.TimelineSelectionProvider, { children: jsx_runtime_1.jsxs(StudioClearSelectionArea, { children: [
|
|
@@ -6,8 +6,8 @@ const remotion_1 = require("remotion");
|
|
|
6
6
|
const colors_1 = require("../../helpers/colors");
|
|
7
7
|
const editor_guide_selection_1 = require("../../helpers/editor-guide-selection");
|
|
8
8
|
const editor_ruler_1 = require("../../helpers/editor-ruler");
|
|
9
|
+
const ruler_canvas_size_1 = require("../../helpers/ruler-canvas-size");
|
|
9
10
|
const editor_guides_1 = require("../../state/editor-guides");
|
|
10
|
-
const editor_rulers_1 = require("../../state/editor-rulers");
|
|
11
11
|
const ForceSpecificCursor_1 = require("../ForceSpecificCursor");
|
|
12
12
|
const should_clear_selection_on_pointer_down_1 = require("../Timeline/should-clear-selection-on-pointer-down");
|
|
13
13
|
const TimelineSelection_1 = require("../Timeline/TimelineSelection");
|
|
@@ -30,8 +30,10 @@ const Ruler = ({ scale, points, originOffset, startMarking, size, markingGaps, o
|
|
|
30
30
|
hoveredGuideId,
|
|
31
31
|
draggingGuideId,
|
|
32
32
|
}), [draggingGuideId, guidesList, hoveredGuideId, selectedItems]);
|
|
33
|
-
const
|
|
34
|
-
|
|
33
|
+
const { width: rulerWidth, height: rulerHeight } = (0, ruler_canvas_size_1.getRulerCanvasSize)({
|
|
34
|
+
orientation,
|
|
35
|
+
size,
|
|
36
|
+
});
|
|
35
37
|
(0, react_1.useEffect)(() => {
|
|
36
38
|
(0, editor_ruler_1.drawMarkingOnRulerCanvas)({
|
|
37
39
|
scale,
|
|
@@ -43,6 +43,7 @@ const ExplorerPanel = ({ readOnlyStudio }) => {
|
|
|
43
43
|
}, []);
|
|
44
44
|
(0, react_1.useImperativeHandle)(ExplorerPanelRef_1.explorerSidebarTabs, () => {
|
|
45
45
|
return {
|
|
46
|
+
getSelectedPanel: () => panel,
|
|
46
47
|
selectAssetsPanel: () => {
|
|
47
48
|
setPanel('assets');
|
|
48
49
|
persistSelectedOptionsSidebarPanel('assets');
|
|
@@ -52,7 +53,7 @@ const ExplorerPanel = ({ readOnlyStudio }) => {
|
|
|
52
53
|
persistSelectedOptionsSidebarPanel('compositions');
|
|
53
54
|
},
|
|
54
55
|
};
|
|
55
|
-
}, []);
|
|
56
|
+
}, [panel]);
|
|
56
57
|
const onPointerDown = (0, react_1.useCallback)((e) => {
|
|
57
58
|
// Prevent deselection of currently selected items
|
|
58
59
|
e.stopPropagation();
|
|
@@ -37,17 +37,29 @@ exports.ForceSpecificCursor = exports.stopForcingSpecificCursor = exports.forceS
|
|
|
37
37
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
38
38
|
const react_1 = __importStar(require("react"));
|
|
39
39
|
const ref = react_1.default.createRef();
|
|
40
|
+
const removeAutomaticCleanupListeners = () => {
|
|
41
|
+
window.removeEventListener('pointerup', exports.stopForcingSpecificCursor, true);
|
|
42
|
+
window.removeEventListener('pointercancel', exports.stopForcingSpecificCursor, true);
|
|
43
|
+
window.removeEventListener('blur', exports.stopForcingSpecificCursor, true);
|
|
44
|
+
};
|
|
40
45
|
const forceSpecificCursor = (cursor) => {
|
|
41
46
|
if (!ref.current) {
|
|
42
47
|
throw new Error('ForceSpecificCursor is not mounted');
|
|
43
48
|
}
|
|
44
49
|
ref.current.style.cursor = cursor;
|
|
45
50
|
ref.current.style.pointerEvents = 'auto';
|
|
51
|
+
// The component which initiated the drag may unmount before it gets a chance
|
|
52
|
+
// to handle the end of the gesture. Keep this fallback independent from the
|
|
53
|
+
// initiator so the cursor overlay can never remain stuck.
|
|
54
|
+
window.addEventListener('pointerup', exports.stopForcingSpecificCursor, true);
|
|
55
|
+
window.addEventListener('pointercancel', exports.stopForcingSpecificCursor, true);
|
|
56
|
+
window.addEventListener('blur', exports.stopForcingSpecificCursor, true);
|
|
46
57
|
};
|
|
47
58
|
exports.forceSpecificCursor = forceSpecificCursor;
|
|
48
59
|
const stopForcingSpecificCursor = () => {
|
|
60
|
+
removeAutomaticCleanupListeners();
|
|
49
61
|
if (!ref.current) {
|
|
50
|
-
|
|
62
|
+
return;
|
|
51
63
|
}
|
|
52
64
|
ref.current.style.cursor = '';
|
|
53
65
|
ref.current.style.pointerEvents = 'none';
|
|
@@ -12,6 +12,7 @@ const editor_snapping_1 = require("../state/editor-snapping");
|
|
|
12
12
|
const modals_1 = require("../state/modals");
|
|
13
13
|
const AskAiModal_1 = require("./AskAiModal");
|
|
14
14
|
const CompositionSelector_1 = require("./CompositionSelector");
|
|
15
|
+
const ExplorerPanelRef_1 = require("./ExplorerPanelRef");
|
|
15
16
|
const NotificationCenter_1 = require("./Notifications/NotificationCenter");
|
|
16
17
|
const TimelineSelection_1 = require("./Timeline/TimelineSelection");
|
|
17
18
|
const sequencePropShortcuts = {
|
|
@@ -106,10 +107,14 @@ const GlobalKeybindings = () => {
|
|
|
106
107
|
event: 'keydown',
|
|
107
108
|
key: 'k',
|
|
108
109
|
callback: () => {
|
|
110
|
+
var _a;
|
|
109
111
|
setSelectedModal({
|
|
110
112
|
type: 'quick-switcher',
|
|
111
|
-
mode: '
|
|
113
|
+
mode: ((_a = ExplorerPanelRef_1.explorerSidebarTabs.current) === null || _a === void 0 ? void 0 : _a.getSelectedPanel()) === 'assets'
|
|
114
|
+
? 'assets'
|
|
115
|
+
: 'compositions',
|
|
112
116
|
invocationTimestamp: Date.now(),
|
|
117
|
+
assetSelection: null,
|
|
113
118
|
});
|
|
114
119
|
},
|
|
115
120
|
triggerIfInputFieldFocused: true,
|
|
@@ -159,6 +164,7 @@ const GlobalKeybindings = () => {
|
|
|
159
164
|
type: 'quick-switcher',
|
|
160
165
|
mode: 'docs',
|
|
161
166
|
invocationTimestamp: Date.now(),
|
|
167
|
+
assetSelection: null,
|
|
162
168
|
});
|
|
163
169
|
},
|
|
164
170
|
commandCtrlKey: false,
|
|
@@ -5,5 +5,6 @@ export type InlineActionProps = {
|
|
|
5
5
|
readonly disabled?: boolean;
|
|
6
6
|
readonly renderAction: RenderInlineAction;
|
|
7
7
|
readonly title?: string;
|
|
8
|
+
readonly unhoveredColor?: string;
|
|
8
9
|
};
|
|
9
|
-
export declare const InlineAction: ({ renderAction, onClick, disabled, title, }: InlineActionProps) => import("react/jsx-runtime").JSX.Element;
|
|
10
|
+
export declare const InlineAction: ({ renderAction, onClick, disabled, title, unhoveredColor, }: InlineActionProps) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -5,7 +5,7 @@ const jsx_runtime_1 = require("react/jsx-runtime");
|
|
|
5
5
|
const react_1 = require("react");
|
|
6
6
|
const colors_1 = require("../helpers/colors");
|
|
7
7
|
const z_index_1 = require("../state/z-index");
|
|
8
|
-
const InlineAction = ({ renderAction, onClick, disabled, title, }) => {
|
|
8
|
+
const InlineAction = ({ renderAction, onClick, disabled, title, unhoveredColor = colors_1.LIGHT_TEXT, }) => {
|
|
9
9
|
const { tabIndex } = (0, z_index_1.useZIndex)();
|
|
10
10
|
const [hovered, setHovered] = (0, react_1.useState)(false);
|
|
11
11
|
const onPointerEnter = (0, react_1.useCallback)(() => {
|
|
@@ -30,6 +30,6 @@ const InlineAction = ({ renderAction, onClick, disabled, title, }) => {
|
|
|
30
30
|
pointerEvents: disabled ? 'none' : 'auto',
|
|
31
31
|
};
|
|
32
32
|
}, [disabled, hovered]);
|
|
33
|
-
return (jsx_runtime_1.jsx("button", { type: "button", onPointerEnter: onPointerEnter, onPointerLeave: onPointerLeave, onClick: onClick, style: style, tabIndex: tabIndex, title: title, children: renderAction(hovered ? colors_1.WHITE :
|
|
33
|
+
return (jsx_runtime_1.jsx("button", { type: "button", disabled: disabled, onPointerEnter: onPointerEnter, onPointerLeave: onPointerLeave, onClick: onClick, style: style, tabIndex: tabIndex, title: title, children: renderAction(hovered ? colors_1.WHITE : unhoveredColor) }));
|
|
34
34
|
};
|
|
35
35
|
exports.InlineAction = InlineAction;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type InlineActionProps } from './InlineAction';
|
|
2
2
|
import type { ComboboxValue } from './NewComposition/ComboBox';
|
|
3
|
-
export declare const InlineDropdown: ({ values, ...props }: Omit<InlineActionProps, "onClick"> & {
|
|
3
|
+
export declare const InlineDropdown: ({ values, unhoveredColor, ...props }: Omit<InlineActionProps, "onClick"> & {
|
|
4
4
|
readonly values: ComboboxValue[];
|
|
5
5
|
}) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -8,6 +8,7 @@ const jsx_runtime_1 = require("react/jsx-runtime");
|
|
|
8
8
|
const player_1 = require("@remotion/player");
|
|
9
9
|
const react_1 = require("react");
|
|
10
10
|
const react_dom_1 = __importDefault(require("react-dom"));
|
|
11
|
+
const colors_1 = require("../helpers/colors");
|
|
11
12
|
const mobile_layout_1 = require("../helpers/mobile-layout");
|
|
12
13
|
const noop_1 = require("../helpers/noop");
|
|
13
14
|
const z_index_1 = require("../state/z-index");
|
|
@@ -15,7 +16,7 @@ const InlineAction_1 = require("./InlineAction");
|
|
|
15
16
|
const portals_1 = require("./Menu/portals");
|
|
16
17
|
const styles_1 = require("./Menu/styles");
|
|
17
18
|
const MenuContent_1 = require("./NewComposition/MenuContent");
|
|
18
|
-
const InlineDropdown = ({ values, ...props }) => {
|
|
19
|
+
const InlineDropdown = ({ values, unhoveredColor, ...props }) => {
|
|
19
20
|
const ref = (0, react_1.useRef)(null);
|
|
20
21
|
const [opened, setOpened] = (0, react_1.useState)({ type: 'not-open' });
|
|
21
22
|
const { currentZIndex } = (0, z_index_1.useZIndex)();
|
|
@@ -79,7 +80,7 @@ const InlineDropdown = ({ values, ...props }) => {
|
|
|
79
80
|
setOpened({ type: 'not-open' });
|
|
80
81
|
}, []);
|
|
81
82
|
return (jsx_runtime_1.jsxs(jsx_runtime_1.Fragment, { children: [
|
|
82
|
-
jsx_runtime_1.jsx("div", { ref: ref, children: jsx_runtime_1.jsx(InlineAction_1.InlineAction, { onClick: onClick, ...props }) }), portalStyle
|
|
83
|
+
jsx_runtime_1.jsx("div", { ref: ref, children: jsx_runtime_1.jsx(InlineAction_1.InlineAction, { onClick: onClick, unhoveredColor: opened.type === 'open' ? colors_1.WHITE : unhoveredColor, ...props }) }), portalStyle
|
|
83
84
|
? react_dom_1.default.createPortal(jsx_runtime_1.jsx("div", { style: styles_1.fullScreenOverlay, children: jsx_runtime_1.jsx("div", { style: styles_1.outerPortal, className: "css-reset", children: jsx_runtime_1.jsx(z_index_1.HigherZIndex, { onOutsideClick: onHide, onEscape: onHide, children: jsx_runtime_1.jsx("div", { style: portalStyle, children: jsx_runtime_1.jsx(MenuContent_1.MenuContent, { onNextMenu: noop_1.noop, onPreviousMenu: noop_1.noop, values: values, onHide: onHide, leaveLeftSpace: true, preselectIndex: false, topItemCanBeUnselected: false, fixedHeight: null }) }) }) }) }), (0, portals_1.getPortal)(currentZIndex))
|
|
84
85
|
: null] }));
|
|
85
86
|
};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import type {
|
|
2
|
+
import type { TimelineTrackData } from '../../helpers/get-timeline-sequence-sort-key';
|
|
3
3
|
export declare const AlignmentControls: React.FC<{
|
|
4
|
-
readonly track:
|
|
4
|
+
readonly track: TimelineTrackData;
|
|
5
5
|
}>;
|
|
@@ -5,6 +5,7 @@ const jsx_runtime_1 = require("react/jsx-runtime");
|
|
|
5
5
|
const react_1 = require("react");
|
|
6
6
|
const remotion_1 = require("remotion");
|
|
7
7
|
const client_id_1 = require("../../helpers/client-id");
|
|
8
|
+
const interactivity_enabled_1 = require("../../helpers/interactivity-enabled");
|
|
8
9
|
const align_bottom_1 = require("../../icons/align-bottom");
|
|
9
10
|
const align_center_horizontal_1 = require("../../icons/align-center-horizontal");
|
|
10
11
|
const align_center_vertical_1 = require("../../icons/align-center-vertical");
|
|
@@ -62,7 +63,8 @@ const AlignmentControls = ({ track }) => {
|
|
|
62
63
|
const handleAlign = (0, react_1.useCallback)((direction) => {
|
|
63
64
|
var _a;
|
|
64
65
|
var _b, _c, _d, _e;
|
|
65
|
-
if (
|
|
66
|
+
if (!(0, interactivity_enabled_1.isStudioInteractivityEnabled)() ||
|
|
67
|
+
previewServerState.type !== 'connected' ||
|
|
66
68
|
!track.nodePathInfo ||
|
|
67
69
|
!track.sequence.controls) {
|
|
68
70
|
return;
|
|
@@ -177,7 +179,8 @@ const AlignmentControls = ({ track }) => {
|
|
|
177
179
|
getDragOverrides,
|
|
178
180
|
setPropStatuses,
|
|
179
181
|
]);
|
|
180
|
-
if (
|
|
182
|
+
if (!(0, interactivity_enabled_1.isStudioInteractivityEnabled)() ||
|
|
183
|
+
previewServerState.type !== 'connected' ||
|
|
181
184
|
!track.nodePathInfo ||
|
|
182
185
|
!track.sequence.controls ||
|
|
183
186
|
!currentCompositionMetadata) {
|
|
@@ -25,14 +25,14 @@ const actionIconStyle = {
|
|
|
25
25
|
height: 18,
|
|
26
26
|
width: 18,
|
|
27
27
|
};
|
|
28
|
-
const CompositionActions = () => {
|
|
28
|
+
const CompositionActions = ({ readOnlyStudio }) => {
|
|
29
29
|
const { canInsertAsset, canInsertSolid, canShowInsertAsset, canShowInsertSolid, insertAsset, insertSolid, } = (0, use_composition_actions_1.useCompositionActions)();
|
|
30
|
-
if (!canShowInsertAsset && !canShowInsertSolid) {
|
|
30
|
+
if (readOnlyStudio || (!canShowInsertAsset && !canShowInsertSolid)) {
|
|
31
31
|
return null;
|
|
32
32
|
}
|
|
33
33
|
return (jsx_runtime_1.jsxs(common_1.InspectorActionSection, { children: [canShowInsertSolid ? (jsx_runtime_1.jsx(common_1.InspectorInlineAction, { disabled: !canInsertSolid, onClick: insertSolid, renderIcon: (color) => (jsx_runtime_1.jsx(solid_1.SolidIcon, { color: color, style: actionIconStyle })), children: "Add Solid" })) : null, canShowInsertAsset ? (jsx_runtime_1.jsx(common_1.InspectorInlineAction, { disabled: !canInsertAsset, onClick: insertAsset, renderIcon: (color) => (jsx_runtime_1.jsx(frame_1.PicIcon, { color: color, style: actionIconStyle })), children: "Add asset..." })) : null] }));
|
|
34
34
|
};
|
|
35
|
-
const CompositionDefaultPropsSection = ({ composition, currentDefaultProps, setDefaultProps }) => {
|
|
35
|
+
const CompositionDefaultPropsSection = ({ composition, currentDefaultProps, readOnlyStudio, setDefaultProps }) => {
|
|
36
36
|
var _a;
|
|
37
37
|
const z = (0, get_zod_if_possible_1.useZodIfPossible)();
|
|
38
38
|
const canSaveDefaultProps = (0, react_1.useContext)(ObserveDefaultPropsContext_1.ObserveDefaultPropsContext);
|
|
@@ -79,7 +79,7 @@ const CompositionDefaultPropsSection = ({ composition, currentDefaultProps, setD
|
|
|
79
79
|
propsEditType: 'default-props',
|
|
80
80
|
showCannotSaveDefaultPropsWarning: canShowDefaultPropsSection,
|
|
81
81
|
});
|
|
82
|
-
if (!canShowDefaultPropsSection) {
|
|
82
|
+
if (readOnlyStudio || !canShowDefaultPropsSection) {
|
|
83
83
|
return null;
|
|
84
84
|
}
|
|
85
85
|
return (jsx_runtime_1.jsxs(jsx_runtime_1.Fragment, { children: [
|
|
@@ -92,9 +92,10 @@ const CompositionDefaultPropsSection = ({ composition, currentDefaultProps, setD
|
|
|
92
92
|
] })
|
|
93
93
|
] }));
|
|
94
94
|
};
|
|
95
|
-
const CompositionVisualControlsSection = () => {
|
|
95
|
+
const CompositionVisualControlsSection = ({ readOnlyStudio }) => {
|
|
96
96
|
const { handles: visualControlHandles } = (0, react_1.useContext)(VisualControls_1.VisualControlsContext);
|
|
97
|
-
const hasVisualControls =
|
|
97
|
+
const hasVisualControls = !readOnlyStudio &&
|
|
98
|
+
(0, interactivity_enabled_1.isStudioInteractivityEnabled)() &&
|
|
98
99
|
Object.keys(visualControlHandles).length > 0;
|
|
99
100
|
if (!hasVisualControls) {
|
|
100
101
|
return null;
|
|
@@ -109,7 +110,7 @@ const CompositionInspector = ({ composition, currentDefaultProps, readOnlyStudio
|
|
|
109
110
|
return (jsx_runtime_1.jsxs("div", { style: styles_1.scrollableContainer, className: is_menu_item_1.VERTICAL_SCROLLBAR_CLASSNAME, children: [
|
|
110
111
|
jsx_runtime_1.jsxs("div", { style: styles_1.inspectorOverviewSection, children: [
|
|
111
112
|
jsx_runtime_1.jsx(CompositionInspectorHeader_1.CompositionInspectorHeader, {}), jsx_runtime_1.jsx(common_1.InspectorSectionDivider, {}), jsx_runtime_1.jsx(CompositionMetadata_1.CompositionMetadata, { compositionId: composition.id, disabled: readOnlyStudio, stack: composition.stack })
|
|
112
|
-
] }), jsx_runtime_1.jsx(CompositionDefaultPropsSection, { composition: composition, currentDefaultProps: currentDefaultProps, setDefaultProps: setDefaultProps }), jsx_runtime_1.jsx(CompositionVisualControlsSection, {}), jsx_runtime_1.jsx(CompositionActions, {})
|
|
113
|
+
] }), jsx_runtime_1.jsx(CompositionDefaultPropsSection, { composition: composition, currentDefaultProps: currentDefaultProps, readOnlyStudio: readOnlyStudio, setDefaultProps: setDefaultProps }), jsx_runtime_1.jsx(CompositionVisualControlsSection, { readOnlyStudio: readOnlyStudio }), jsx_runtime_1.jsx(CompositionActions, { readOnlyStudio: readOnlyStudio })
|
|
113
114
|
] }));
|
|
114
115
|
};
|
|
115
116
|
exports.CompositionInspector = CompositionInspector;
|