@remotion/studio 4.0.505 → 4.0.506
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/api/install-package.d.ts +2 -3
- package/dist/api/install-package.js +1 -3
- package/dist/api/visual-control.d.ts +3 -0
- package/dist/api/visual-control.js +3 -0
- package/dist/components/AssetSelectorItem.js +1 -1
- package/dist/components/Canvas.js +2 -0
- package/dist/components/CompositionSelector.js +1 -1
- package/dist/components/CompositionSelectorItem.js +1 -1
- package/dist/components/ConfigureDefaultEditorModal.d.ts +3 -1
- package/dist/components/ConfigureDefaultEditorModal.js +90 -32
- package/dist/components/ConfigureLicenseModal.d.ts +2 -1
- package/dist/components/ConfigureLicenseModal.js +40 -32
- package/dist/components/ConfirmationDialog.js +2 -2
- package/dist/components/Editor.js +2 -0
- package/dist/components/EffectPickerModal.js +1 -1
- package/dist/components/GlobalKeybindings.js +3 -2
- package/dist/components/InlineCaptionInspector.d.ts +2 -2
- package/dist/components/InlineDropdown.d.ts +2 -1
- package/dist/components/InlineDropdown.js +10 -4
- package/dist/components/InspectorOpenInEditor.d.ts +1 -0
- package/dist/components/InspectorOpenInEditor.js +33 -9
- package/dist/components/InspectorPanel/AlignmentControls.js +5 -2
- package/dist/components/InspectorPanel/CompositionInspector.js +15 -1
- package/dist/components/InspectorPanel/ConnectedCompositionsSection.js +1 -1
- package/dist/components/InspectorPanel/EasingInspector.js +7 -4
- package/dist/components/InspectorPanel/KeyframeInspector.js +5 -1
- package/dist/components/InspectorPanel/common.d.ts +1 -0
- package/dist/components/InspectorPanel/common.js +2 -2
- package/dist/components/InspectorPanel/use-composition-actions.js +4 -1
- package/dist/components/InspectorSequenceSection.js +4 -4
- package/dist/components/InstallPackage.js +1 -1
- package/dist/components/MenuBuildIndicator.js +1 -0
- package/dist/components/MenuToolbar.js +1 -1
- package/dist/components/ModalFooter.d.ts +1 -0
- package/dist/components/ModalFooter.js +6 -2
- package/dist/components/ModalHeader.js +1 -1
- package/dist/components/Modals.js +18 -7
- package/dist/components/ModalsProvider.js +5 -6
- package/dist/components/NewComposition/CodemodFooter.js +1 -1
- package/dist/components/NewComposition/DismissableModal.js +1 -1
- package/dist/components/NewComposition/RenameStaticFile.js +1 -1
- package/dist/components/OverrideInputProps.js +1 -1
- package/dist/components/PlayPause.js +2 -1
- package/dist/components/PlaybackKeyboardShortcutsManager.js +7 -5
- package/dist/components/PreviewToolbarOverflowButton.js +4 -2
- package/dist/components/QuickSwitcher/ExplorerQuickSwitcherTrigger.js +1 -1
- package/dist/components/QuickSwitcher/QuickSwitcherContent.js +1 -1
- package/dist/components/RenderButton.d.ts +3 -3
- package/dist/components/RenderButton.js +42 -7
- package/dist/components/RenderModal/RenderStatusModal.js +1 -1
- package/dist/components/RenderModal/ServerRenderModal.js +1 -1
- package/dist/components/RenderModal/WebRenderModal.js +3 -2
- package/dist/components/RenderQueue/RenderQueueError.js +1 -1
- package/dist/components/RenderQueue/RenderQueueItemStatus.js +1 -1
- package/dist/components/RenderQueue/RenderQueueProgressMessage.js +1 -1
- package/dist/components/RenderQueue/RenderQueueRepeat.js +1 -1
- package/dist/components/SelectedOutlineElement.js +1 -1
- package/dist/components/SelectedOutlineOverlay.js +62 -19
- package/dist/components/SettingsModal.d.ts +7 -0
- package/dist/components/SettingsModal.js +50 -0
- package/dist/components/SettingsModalFooter.d.ts +4 -0
- package/dist/components/SettingsModalFooter.js +46 -0
- package/dist/components/SidebarRenderButton.js +1 -1
- package/dist/components/SvgImportDialog.js +2 -2
- package/dist/components/TimeValue.js +1 -1
- package/dist/components/Timeline/Timeline.js +1 -0
- package/dist/components/Timeline/TimelineAssetField.js +1 -1
- package/dist/components/Timeline/TimelineDragHandler.js +3 -3
- package/dist/components/Timeline/TimelineEffectPropItem.js +5 -3
- package/dist/components/Timeline/TimelineExpandedRow.d.ts +4 -2
- package/dist/components/Timeline/TimelineExpandedRow.js +2 -2
- package/dist/components/Timeline/TimelineFontFamilyField.js +3 -1
- package/dist/components/Timeline/TimelineKeyframeControls.js +1 -0
- package/dist/components/Timeline/TimelineSelection.js +1 -0
- package/dist/components/Timeline/TimelineSequenceItem.js +28 -34
- package/dist/components/Timeline/TimelineSequenceRightEdgeDragHandle.js +1 -1
- package/dist/components/Timeline/reset-selected-timeline-props.js +1 -1
- package/dist/components/Timeline/should-subscribe-to-sequence-props.d.ts +1 -1
- package/dist/components/Timeline/timeline-asset-link.d.ts +2 -2
- package/dist/components/Timeline/timeline-asset-link.js +2 -2
- package/dist/components/Timeline/use-expanded-track-keyframe-rows.js +4 -0
- package/dist/components/Timeline/use-timeline-asset-drop.js +1 -0
- package/dist/components/Timeline/use-timeline-expanded-tree.d.ts +1 -0
- package/dist/components/Timeline/use-timeline-expanded-tree.js +5 -0
- package/dist/components/Timeline/use-timeline-height.js +20 -0
- package/dist/components/TimelineInOutToggle.js +5 -1
- package/dist/components/TopPanel.js +16 -0
- package/dist/components/UpdateCheck.js +1 -1
- package/dist/components/effect-drag-and-drop.js +1 -1
- package/dist/components/handle-drop.d.ts +2 -1
- package/dist/components/handle-drop.js +12 -2
- package/dist/components/import-assets.d.ts +18 -6
- package/dist/components/import-assets.js +76 -32
- package/dist/esm/{chunk-7pgk8h5m.js → chunk-b49ec3nz.js} +8334 -7701
- package/dist/esm/internals.mjs +8334 -7701
- package/dist/esm/previewEntry.mjs +8343 -7710
- package/dist/esm/renderEntry.mjs +1 -1
- package/dist/helpers/client-id.d.ts +3 -1
- package/dist/helpers/client-id.js +21 -4
- package/dist/helpers/install-required-package.d.ts +3 -3
- package/dist/helpers/install-required-package.js +1 -6
- package/dist/helpers/studio-fit-padding.d.ts +1 -1
- package/dist/helpers/studio-fit-padding.js +1 -1
- package/dist/helpers/timeline-layout.d.ts +2 -1
- package/dist/helpers/timeline-layout.js +5 -2
- package/dist/helpers/use-menu-structure.js +23 -33
- package/dist/helpers/use-runtime-values.d.ts +11 -0
- package/dist/helpers/use-runtime-values.js +76 -0
- package/dist/icons/apps.d.ts +2 -0
- package/dist/icons/apps.js +7 -0
- package/dist/icons/browse-elements.d.ts +4 -0
- package/dist/icons/browse-elements.js +10 -0
- package/dist/state/modals.d.ts +5 -6
- package/dist/state/modals.js +5 -3
- package/package.json +12 -12
|
@@ -18,6 +18,7 @@ const clickButton = (id) => {
|
|
|
18
18
|
(_a = document.getElementById(id)) === null || _a === void 0 ? void 0 : _a.click();
|
|
19
19
|
};
|
|
20
20
|
const PreviewToolbarOverflowButton = ({ showFullscreen, showPlaybackRate, showLoop, showCompositionControls, playbackRate, setPlaybackRate, loop, setLoop, }) => {
|
|
21
|
+
const keyboardShortcutsDisabled = (0, use_keybinding_1.areKeyboardShortcutsDisabled)();
|
|
21
22
|
const { checkerboard, setCheckerboard } = (0, react_1.useContext)(checkerboard_1.CheckerboardContext);
|
|
22
23
|
const { editorShowOutlines, setEditorShowOutlines } = (0, react_1.useContext)(editor_outlines_1.EditorShowOutlinesContext);
|
|
23
24
|
const { items: previewSizeItems, selectedId: selectedPreviewSize, zoomable, } = (0, SizeSelector_1.usePreviewSizeMenuItems)();
|
|
@@ -88,7 +89,7 @@ const PreviewToolbarOverflowButton = ({ showFullscreen, showPlaybackRate, showLo
|
|
|
88
89
|
label: 'Transparency as checkerboard',
|
|
89
90
|
value: 'checkerboard',
|
|
90
91
|
onClick: () => setCheckerboard((current) => !current),
|
|
91
|
-
keyHint:
|
|
92
|
+
keyHint: keyboardShortcutsDisabled ? null : 'T',
|
|
92
93
|
leftItem: checkerboard ? jsx_runtime_1.jsx(Checkmark_1.Checkmark, {}) : null,
|
|
93
94
|
subMenu: null,
|
|
94
95
|
quickSwitcherLabel: null,
|
|
@@ -112,7 +113,7 @@ const PreviewToolbarOverflowButton = ({ showFullscreen, showPlaybackRate, showLo
|
|
|
112
113
|
label: 'Fullscreen',
|
|
113
114
|
value: 'fullscreen',
|
|
114
115
|
onClick: () => clickButton('fullscreen-toggle'),
|
|
115
|
-
keyHint:
|
|
116
|
+
keyHint: keyboardShortcutsDisabled ? null : 'F',
|
|
116
117
|
leftItem: null,
|
|
117
118
|
subMenu: null,
|
|
118
119
|
quickSwitcherLabel: null,
|
|
@@ -135,6 +136,7 @@ const PreviewToolbarOverflowButton = ({ showFullscreen, showPlaybackRate, showLo
|
|
|
135
136
|
setEditorShowOutlines,
|
|
136
137
|
setLoop,
|
|
137
138
|
zoomable,
|
|
139
|
+
keyboardShortcutsDisabled,
|
|
138
140
|
]);
|
|
139
141
|
if (values.length === 0) {
|
|
140
142
|
return null;
|
|
@@ -30,7 +30,7 @@ const shortcutLabel = {
|
|
|
30
30
|
opacity: 0.6,
|
|
31
31
|
};
|
|
32
32
|
const ExplorerQuickSwitcherTrigger = ({ mode, showShortcut, tabIndex }) => {
|
|
33
|
-
const { setSelectedModal } = (0, react_1.useContext)(modals_1.
|
|
33
|
+
const { setSelectedModal } = (0, react_1.useContext)(modals_1.SetSelectedModalContext);
|
|
34
34
|
const openQuickSwitcher = (0, react_1.useCallback)(() => {
|
|
35
35
|
setSelectedModal({
|
|
36
36
|
type: 'quick-switcher',
|
|
@@ -125,7 +125,7 @@ const QuickSwitcherContent = ({ initialMode, invocationTimestamp, readOnlyStudio
|
|
|
125
125
|
const closeMenu = (0, react_1.useCallback)(() => undefined, []);
|
|
126
126
|
const actions = (0, use_menu_structure_1.useMenuStructure)(closeMenu, readOnlyStudio);
|
|
127
127
|
const [docResults, setDocResults] = (0, react_1.useState)({ type: 'initial' });
|
|
128
|
-
const { setSelectedModal } = (0, react_1.useContext)(modals_1.
|
|
128
|
+
const { setSelectedModal } = (0, react_1.useContext)(modals_1.SetSelectedModalContext);
|
|
129
129
|
const keybindings = (0, use_keybinding_1.useKeybinding)();
|
|
130
130
|
const mode = assetSelection !== null
|
|
131
131
|
? 'assets'
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
export type RenderType = 'server-render' | 'client-render' | 'render-command';
|
|
3
|
-
export declare const RenderButton: React.
|
|
3
|
+
export declare const RenderButton: React.NamedExoticComponent<{
|
|
4
4
|
readonly readOnlyStudio: boolean;
|
|
5
|
-
readonly size?:
|
|
6
|
-
readonly narrow?: boolean;
|
|
5
|
+
readonly size?: "compact" | "default" | undefined;
|
|
6
|
+
readonly narrow?: boolean | undefined;
|
|
7
7
|
}>;
|
|
@@ -1,4 +1,37 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
2
35
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
36
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
37
|
};
|
|
@@ -6,7 +39,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
39
|
exports.RenderButton = void 0;
|
|
7
40
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
8
41
|
const player_1 = require("@remotion/player");
|
|
9
|
-
const react_1 = require("react");
|
|
42
|
+
const react_1 = __importStar(require("react"));
|
|
10
43
|
const react_dom_1 = __importDefault(require("react-dom"));
|
|
11
44
|
const remotion_1 = require("remotion");
|
|
12
45
|
const client_id_1 = require("../helpers/client-id");
|
|
@@ -117,9 +150,9 @@ const getInitialRenderType = (readOnlyStudio) => {
|
|
|
117
150
|
}
|
|
118
151
|
return 'server-render';
|
|
119
152
|
};
|
|
120
|
-
const
|
|
153
|
+
const RenderButtonInner = ({ readOnlyStudio, size: controlSize = 'default', narrow = false }) => {
|
|
121
154
|
const { inFrame, outFrame } = (0, in_out_1.useTimelineInOutFramePosition)();
|
|
122
|
-
const { setSelectedModal } = (0, react_1.useContext)(modals_1.
|
|
155
|
+
const { setSelectedModal } = (0, react_1.useContext)(modals_1.SetSelectedModalContext);
|
|
123
156
|
const [preferredRenderType, setPreferredRenderType] = (0, react_1.useState)(() => getInitialRenderType(readOnlyStudio));
|
|
124
157
|
const [dropdownOpened, setDropdownOpened] = (0, react_1.useState)(false);
|
|
125
158
|
const [hovered, setHovered] = (0, react_1.useState)(false);
|
|
@@ -193,8 +226,10 @@ const RenderButton = ({ readOnlyStudio, size: controlSize = 'default', narrow =
|
|
|
193
226
|
};
|
|
194
227
|
}, [controlSize]);
|
|
195
228
|
const video = remotion_1.Internals.useVideo();
|
|
196
|
-
const { getCurrentFrame } = player_1.PlayerInternals.
|
|
229
|
+
const { getCurrentFrame } = player_1.PlayerInternals.usePlayerMethods();
|
|
197
230
|
const { props } = (0, react_1.useContext)(remotion_1.Internals.EditorPropsContext);
|
|
231
|
+
// Read the frame when the modal opens instead of subscribing this button to
|
|
232
|
+
// every timeline position update.
|
|
198
233
|
const openServerRenderModal = (0, react_1.useCallback)((copyCommandOnly) => {
|
|
199
234
|
var _a;
|
|
200
235
|
var _b, _c;
|
|
@@ -258,7 +293,7 @@ const RenderButton = ({ readOnlyStudio, size: controlSize = 'default', narrow =
|
|
|
258
293
|
initialMediaCacheSizeInBytes: defaults.mediaCacheSizeInBytes,
|
|
259
294
|
renderDefaults: defaults,
|
|
260
295
|
});
|
|
261
|
-
}, [video, setSelectedModal,
|
|
296
|
+
}, [video, setSelectedModal, props, inFrame, outFrame, getCurrentFrame]);
|
|
262
297
|
const openClientRenderModal = (0, react_1.useCallback)(() => {
|
|
263
298
|
var _a;
|
|
264
299
|
if (!video) {
|
|
@@ -292,7 +327,7 @@ const RenderButton = ({ readOnlyStudio, size: controlSize = 'default', narrow =
|
|
|
292
327
|
initialMediaCacheSizeInBytes: defaults.mediaCacheSizeInBytes,
|
|
293
328
|
initialPageResponsiveness: 'medium',
|
|
294
329
|
});
|
|
295
|
-
}, [video, setSelectedModal,
|
|
330
|
+
}, [video, setSelectedModal, props, inFrame, outFrame, getCurrentFrame]);
|
|
296
331
|
const onClick = (0, react_1.useCallback)(() => {
|
|
297
332
|
if (renderType === 'render-command') {
|
|
298
333
|
openServerRenderModal(true);
|
|
@@ -469,4 +504,4 @@ const RenderButton = ({ readOnlyStudio, size: controlSize = 'default', narrow =
|
|
|
469
504
|
? 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: onHideDropdown, onEscape: onHideDropdown, children: jsx_runtime_1.jsx("div", { style: portalStyle, onPointerDown: onMenuPointerDown, children: jsx_runtime_1.jsx(MenuContent_1.MenuContent, { onNextMenu: () => { }, onPreviousMenu: () => { }, values: dropdownValues, onHide: onHideDropdown, leaveLeftSpace: false, preselectIndex: dropdownValues.findIndex((v) => v.id === renderType), topItemCanBeUnselected: false, fixedHeight: derivedMaxHeight }) }) }) }) }), (0, portals_1.getPortal)(currentZIndex))
|
|
470
505
|
: null] }));
|
|
471
506
|
};
|
|
472
|
-
exports.RenderButton =
|
|
507
|
+
exports.RenderButton = react_1.default.memo(RenderButtonInner);
|
|
@@ -41,7 +41,7 @@ const buttonRow = {
|
|
|
41
41
|
justifyContent: 'flex-end',
|
|
42
42
|
};
|
|
43
43
|
const RenderStatusModal = ({ jobId, }) => {
|
|
44
|
-
const { setSelectedModal } = (0, react_1.useContext)(modals_1.
|
|
44
|
+
const { setSelectedModal } = (0, react_1.useContext)(modals_1.SetSelectedModalContext);
|
|
45
45
|
const { jobs, removeClientJob, cancelClientJob } = (0, react_1.useContext)(context_1.RenderQueueContext);
|
|
46
46
|
const job = jobs.find((j) => j.id === jobId);
|
|
47
47
|
if (!job) {
|
|
@@ -67,7 +67,7 @@ const reducer = (state, action) => {
|
|
|
67
67
|
return state;
|
|
68
68
|
};
|
|
69
69
|
const RenderModal = ({ readOnlyStudio, initialFrame, initialVideoImageFormat, initialStillImageFormat, initialJpegQuality, initialScale, initialLogLevel, initialConcurrency, maxConcurrency, minConcurrency, initialMuted, initialEnforceAudioTrack, initialProResProfile, initialx264Preset, initialGopSize, initialPixelFormat, initialVideoBitrate, initialAudioBitrate, initialEveryNthFrame, initialNumberOfGifLoops, initialDelayRenderTimeout, initialOffthreadVideoCacheSizeInBytes, initialEnvVariables, initialDisableWebSecurity, initialGl, initialHeadless, initialIgnoreCertificateErrors, initialEncodingBufferSize, initialEncodingMaxRate, initialOffthreadVideoThreads, initialMediaCacheSizeInBytes, initialDarkMode, initialUserAgent, defaultProps, inFrameMark, outFrameMark, initialColorSpace, initialMultiProcessOnLinux, defaultConfigurationAudioCodec, defaultConfigurationVideoCodec, initialBeep, initialRepro, initialForSeamlessAacConcatenation, renderTypeOfLastRender, initialHardwareAcceleration, initialSampleRate, defaultMetadata, initialChromeMode, renderDefaults, }) => {
|
|
70
|
-
const { setSelectedModal } = (0, react_1.useContext)(modals_1.
|
|
70
|
+
const { setSelectedModal } = (0, react_1.useContext)(modals_1.SetSelectedModalContext);
|
|
71
71
|
const context = (0, react_1.useContext)(ResolveCompositionBeforeModal_1.ResolvedCompositionContext);
|
|
72
72
|
if (!context) {
|
|
73
73
|
throw new Error('Should not be able to render without resolving comp first');
|
|
@@ -82,7 +82,7 @@ const validateOutnameForStill = ({ outName, stillImageFormat, }) => {
|
|
|
82
82
|
const WebRenderModal = ({ initialFrame, defaultProps, inFrameMark, outFrameMark, initialLogLevel, initialStillImageFormat, initialDefaultOutName, initialScale, initialDelayRenderTimeout, initialMediaCacheSizeInBytes, initialContainer, initialVideoCodec, initialAudioCodec, initialAudioBitrate, initialVideoBitrate, initialHardwareAcceleration, initialKeyframeIntervalInSeconds, initialTransparent, initialMuted, initialPageResponsiveness, }) => {
|
|
83
83
|
var _a;
|
|
84
84
|
const context = (0, react_1.useContext)(ResolveCompositionBeforeModal_1.ResolvedCompositionContext);
|
|
85
|
-
const { setSelectedModal } = (0, react_1.useContext)(modals_1.
|
|
85
|
+
const { setSelectedModal } = (0, react_1.useContext)(modals_1.SetSelectedModalContext);
|
|
86
86
|
const { setSidebarCollapsedState } = (0, react_1.useContext)(sidebar_1.SidebarContext);
|
|
87
87
|
const { addClientStillJob, addClientVideoJob } = (0, react_1.useContext)(context_1.RenderQueueContext);
|
|
88
88
|
if (!context) {
|
|
@@ -415,7 +415,8 @@ const WebRenderModal = ({ initialFrame, defaultProps, inFrameMark, outFrameMark,
|
|
|
415
415
|
] })
|
|
416
416
|
] }), jsx_runtime_1.jsxs("div", { style: render_modals_1.horizontalLayout, children: [
|
|
417
417
|
jsx_runtime_1.jsxs("div", { style: render_modals_1.leftSidebar, children: [jsx_runtime_1.jsx(vertical_1.VerticalTab, { style: render_modals_1.horizontalTab, selected: tab === 'general', onClick: () => setTab('general'), renderIcon: (color) => (jsx_runtime_1.jsx("div", { style: render_modals_1.iconContainer, children: jsx_runtime_1.jsx(file_1.FileIcon, { color: color, style: render_modals_1.icon }) })), children: "General" }), jsx_runtime_1.jsx(vertical_1.VerticalTab, { style: render_modals_1.horizontalTab, selected: tab === 'data', onClick: () => setTab('data'), renderIcon: (color) => (jsx_runtime_1.jsx("div", { style: render_modals_1.iconContainer, children: jsx_runtime_1.jsx(input_props_1.InputPropsIcon, { color: color, style: render_modals_1.icon }) })), children: "Input Props" }), renderMode !== 'audio' ? (jsx_runtime_1.jsx(vertical_1.VerticalTab, { style: render_modals_1.horizontalTab, selected: tab === 'picture', onClick: () => setTab('picture'), renderIcon: (color) => (jsx_runtime_1.jsx("div", { style: render_modals_1.iconContainer, children: jsx_runtime_1.jsx(frame_1.PicIcon, { color: color, style: render_modals_1.icon }) })), children: "Picture" })) : null, renderMode === 'video' || renderMode === 'audio' ? (jsx_runtime_1.jsx(vertical_1.VerticalTab, { style: render_modals_1.horizontalTab, selected: tab === 'audio', onClick: () => setTab('audio'), renderIcon: (color) => (jsx_runtime_1.jsx("div", { style: render_modals_1.iconContainer, children: jsx_runtime_1.jsx(audio_1.AudioIcon, { color: color, style: render_modals_1.icon }) })), children: "Audio" })) : null, jsx_runtime_1.jsx(vertical_1.VerticalTab, { style: render_modals_1.horizontalTab, selected: tab === 'advanced', onClick: () => setTab('advanced'), renderIcon: (color) => (jsx_runtime_1.jsx("div", { style: render_modals_1.iconContainer, children: jsx_runtime_1.jsx(gear_1.GearIcon, { color: color, style: render_modals_1.icon }) })), children: "Other" }), jsx_runtime_1.jsx(vertical_1.VerticalTab, { style: render_modals_1.horizontalTab, selected: false, onClick: () => setSelectedModal({
|
|
418
|
-
type: '
|
|
418
|
+
type: 'settings',
|
|
419
|
+
initialTab: 'license',
|
|
419
420
|
initialPublicLicenseKey: publicLicenseKey,
|
|
420
421
|
}), renderIcon: (color) => (jsx_runtime_1.jsx("div", { style: render_modals_1.iconContainer, children: jsx_runtime_1.jsx(certificate_1.CertificateIcon, { color: color, style: render_modals_1.icon }) })), children: "License" })] }), jsx_runtime_1.jsx("div", { style: render_modals_1.optionsPanel, className: is_menu_item_1.VERTICAL_SCROLLBAR_CLASSNAME, children: tab === 'general' ? (jsx_runtime_1.jsx(WebRenderModalBasic_1.WebRenderModalBasic, { renderMode: renderMode, resolvedComposition: resolvedComposition, imageFormat: imageFormat, setStillFormat: setStillFormat, frame: frame, onFrameChanged: onFrameChanged, onFrameSetDirectly: onFrameSetDirectly, container: container, setContainerFormat: setContainerFormat, setCodec: setCodecWithContainer, encodableVideoCodecs: encodableVideoCodecs, effectiveVideoCodec: effectiveVideoCodec, startFrame: finalStartFrame, setStartFrame: setStartFrame, endFrame: finalEndFrame, setEndFrame: setEndFrame, outName: outName, onOutNameChange: onOutNameChange, validationMessage: outnameValidation.valid ? null : outnameValidation.error.message, logLevel: logLevel, setLogLevel: setLogLevel })) : tab === 'data' ? (jsx_runtime_1.jsx(DataEditor_1.DataEditor, { defaultProps: inputProps, setDefaultProps: setInputProps, unresolvedComposition: unresolvedComposition, propsEditType: "input-props", canSaveDefaultProps: {
|
|
421
422
|
canUpdate: false,
|
|
@@ -10,7 +10,7 @@ const outputLocation = {
|
|
|
10
10
|
...item_style_1.renderQueueItemSubtitleStyle,
|
|
11
11
|
};
|
|
12
12
|
const RenderQueueError = ({ job }) => {
|
|
13
|
-
const { setSelectedModal } = (0, react_1.useContext)(modals_1.
|
|
13
|
+
const { setSelectedModal } = (0, react_1.useContext)(modals_1.SetSelectedModalContext);
|
|
14
14
|
const { tabIndex } = (0, z_index_1.useZIndex)();
|
|
15
15
|
const onClick = (0, react_1.useCallback)(() => {
|
|
16
16
|
setSelectedModal({
|
|
@@ -52,7 +52,7 @@ const invisibleStyle = {
|
|
|
52
52
|
display: 'flex',
|
|
53
53
|
};
|
|
54
54
|
const RenderQueueItemStatus = ({ job }) => {
|
|
55
|
-
const { setSelectedModal } = (0, react_1.useContext)(modals_1.
|
|
55
|
+
const { setSelectedModal } = (0, react_1.useContext)(modals_1.SetSelectedModalContext);
|
|
56
56
|
const [hovered, setHovered] = react_1.default.useState(false);
|
|
57
57
|
const isClientJob = (0, context_1.isClientRenderJob)(job);
|
|
58
58
|
const onPointerEnter = (0, react_1.useCallback)(() => {
|
|
@@ -15,7 +15,7 @@ const RenderQueueProgressMessage = ({ job }) => {
|
|
|
15
15
|
if (job.status !== 'running') {
|
|
16
16
|
throw new Error('should not have rendered this component');
|
|
17
17
|
}
|
|
18
|
-
const { setSelectedModal } = (0, react_1.useContext)(modals_1.
|
|
18
|
+
const { setSelectedModal } = (0, react_1.useContext)(modals_1.SetSelectedModalContext);
|
|
19
19
|
const { tabIndex } = (0, z_index_1.useZIndex)();
|
|
20
20
|
const isClientJob = (0, context_1.isClientRenderJob)(job);
|
|
21
21
|
const onClick = (0, react_1.useCallback)(() => {
|
|
@@ -9,7 +9,7 @@ const modals_1 = require("../../state/modals");
|
|
|
9
9
|
const InlineAction_1 = require("../InlineAction");
|
|
10
10
|
const context_1 = require("./context");
|
|
11
11
|
const RenderQueueRepeatItem = ({ job }) => {
|
|
12
|
-
const { setSelectedModal } = (0, react_1.useContext)(modals_1.
|
|
12
|
+
const { setSelectedModal } = (0, react_1.useContext)(modals_1.SetSelectedModalContext);
|
|
13
13
|
const isClientJob = (0, context_1.isClientRenderJob)(job);
|
|
14
14
|
const onClick = (0, react_1.useCallback)((e) => {
|
|
15
15
|
e.stopPropagation();
|
|
@@ -956,7 +956,7 @@ const SelectedOutlineElement = ({ allDragTargets, allDragOutlines, allRotationDr
|
|
|
956
956
|
const selectAsset = (0, use_select_asset_1.useSelectAsset)();
|
|
957
957
|
const selectComposition = (0, InitialCompositionLoader_1.useSelectComposition)();
|
|
958
958
|
const { compositions } = (0, react_1.useContext)(remotion_1.Internals.CompositionManager);
|
|
959
|
-
const { setSelectedModal } = (0, react_1.useContext)(modals_1.
|
|
959
|
+
const { setSelectedModal } = (0, react_1.useContext)(modals_1.SetSelectedModalContext);
|
|
960
960
|
const resolveOriginalLocation = react_1.default.useCallback(async (resolveTarget) => {
|
|
961
961
|
const stack = resolveTarget.sequence.getStack();
|
|
962
962
|
if (!stack) {
|
|
@@ -43,6 +43,7 @@ const client_id_1 = require("../helpers/client-id");
|
|
|
43
43
|
const interactivity_enabled_1 = require("../helpers/interactivity-enabled");
|
|
44
44
|
const use_is_fullscreen_1 = require("../helpers/use-is-fullscreen");
|
|
45
45
|
const use_keybinding_1 = require("../helpers/use-keybinding");
|
|
46
|
+
const use_runtime_values_1 = require("../helpers/use-runtime-values");
|
|
46
47
|
const editor_guides_1 = require("../state/editor-guides");
|
|
47
48
|
const editor_outlines_1 = require("../state/editor-outlines");
|
|
48
49
|
const scale_lock_1 = require("../state/scale-lock");
|
|
@@ -99,7 +100,7 @@ Object.defineProperty(exports, "getSequencesWithSelectableOutlines", { enumerabl
|
|
|
99
100
|
Object.defineProperty(exports, "getTransformedSvgViewportPoints", { enumerable: true, get: function () { return selected_outline_measurement_2.getTransformedSvgViewportPoints; } });
|
|
100
101
|
const selected_outline_types_2 = require("./selected-outline-types");
|
|
101
102
|
Object.defineProperty(exports, "selectedOutlineDragThresholdPx", { enumerable: true, get: function () { return selected_outline_types_2.selectedOutlineDragThresholdPx; } });
|
|
102
|
-
const getEffectiveCropValue = ({ activeSchema,
|
|
103
|
+
const getEffectiveCropValue = ({ activeSchema, dragOverrides, fieldKey, frame, propStatuses, runtimeValues, }) => {
|
|
103
104
|
var _a;
|
|
104
105
|
const fieldSchema = activeSchema === null || activeSchema === void 0 ? void 0 : activeSchema[fieldKey];
|
|
105
106
|
if ((fieldSchema === null || fieldSchema === void 0 ? void 0 : fieldSchema.type) !== 'number') {
|
|
@@ -114,7 +115,7 @@ const getEffectiveCropValue = ({ activeSchema, controls, dragOverrides, fieldKey
|
|
|
114
115
|
frame,
|
|
115
116
|
shouldResortToDefaultValueIfUndefined: true,
|
|
116
117
|
})
|
|
117
|
-
: ((_a =
|
|
118
|
+
: ((_a = runtimeValues[fieldKey]) !== null && _a !== void 0 ? _a : fieldSchema.default);
|
|
118
119
|
return typeof value === 'number' && Number.isFinite(value) ? value : 0;
|
|
119
120
|
};
|
|
120
121
|
const getCropDragFields = ({ activeSchema, cropValues, propStatuses, }) => {
|
|
@@ -424,7 +425,7 @@ const SelectedOutlineOverlay = ({ compositionHeight, compositionWidth, scale, tr
|
|
|
424
425
|
const { hoveredSequence, setHoveredSequence } = (0, react_1.useContext)(timeline_sequence_hover_1.TimelineSequenceHoverContext);
|
|
425
426
|
const { editorShowGuides, guidesList } = (0, react_1.useContext)(editor_guides_1.EditorShowGuidesContext);
|
|
426
427
|
const isFullscreen = (0, use_is_fullscreen_1.useIsFullscreen)();
|
|
427
|
-
const { frameBack, frameForward, getCurrentFrame, seek } = player_1.PlayerInternals.
|
|
428
|
+
const { frameBack, frameForward, getCurrentFrame, seek } = player_1.PlayerInternals.usePlayerMethods();
|
|
428
429
|
const keybindings = (0, use_keybinding_1.useKeybinding)();
|
|
429
430
|
const timelinePosition = remotion_1.Internals.Timeline.useTimelinePosition();
|
|
430
431
|
const [outlines, setOutlines] = (0, react_1.useState)([]);
|
|
@@ -458,6 +459,44 @@ const SelectedOutlineOverlay = ({ compositionHeight, compositionWidth, scale, tr
|
|
|
458
459
|
const selectOutlineItem = (0, react_1.useCallback)((item, interaction) => {
|
|
459
460
|
selectItem(item, interaction, undefined, { reveal: true });
|
|
460
461
|
}, [selectItem]);
|
|
462
|
+
const outlineRuntimeControls = (0, react_1.useMemo)(() => {
|
|
463
|
+
if (isFullscreen ||
|
|
464
|
+
!(0, interactivity_enabled_1.isStudioSelectionEnabled)() ||
|
|
465
|
+
!previewSelectionAvailable ||
|
|
466
|
+
!editorShowOutlines) {
|
|
467
|
+
return [];
|
|
468
|
+
}
|
|
469
|
+
const selectedSequenceKeys = (0, selected_outline_measurement_1.getSelectedSequenceKeys)(selectedItems);
|
|
470
|
+
const sequenceKeysContainingSelection = (0, selected_outline_measurement_1.getSequenceKeysContainingSelection)(selectedItems);
|
|
471
|
+
return (0, selected_outline_measurement_1.getSequencesWithSelectableOutlines)({
|
|
472
|
+
sequences,
|
|
473
|
+
overrideIdsToNodePaths: overrideIdToNodePathMappings,
|
|
474
|
+
compositions,
|
|
475
|
+
timelinePosition,
|
|
476
|
+
}).flatMap(({ key, sequence }) => {
|
|
477
|
+
if (!selectedSequenceKeys.has(key) &&
|
|
478
|
+
!sequenceKeysContainingSelection.has(key) &&
|
|
479
|
+
(hoveredSequence === null || hoveredSequence === void 0 ? void 0 : hoveredSequence.key) !== key) {
|
|
480
|
+
return [];
|
|
481
|
+
}
|
|
482
|
+
return sequence.controls ? [sequence.controls] : [];
|
|
483
|
+
});
|
|
484
|
+
}, [
|
|
485
|
+
compositions,
|
|
486
|
+
editorShowOutlines,
|
|
487
|
+
hoveredSequence === null || hoveredSequence === void 0 ? void 0 : hoveredSequence.key,
|
|
488
|
+
isFullscreen,
|
|
489
|
+
overrideIdToNodePathMappings,
|
|
490
|
+
previewSelectionAvailable,
|
|
491
|
+
selectedItems,
|
|
492
|
+
sequences,
|
|
493
|
+
timelinePosition,
|
|
494
|
+
]);
|
|
495
|
+
const outlineRuntimeSnapshots = (0, use_runtime_values_1.useRuntimeValueSnapshots)(outlineRuntimeControls);
|
|
496
|
+
const outlineRuntimeValuesByStore = (0, react_1.useMemo)(() => new Map(outlineRuntimeControls.map((controls, index) => [
|
|
497
|
+
controls.runtimeValues,
|
|
498
|
+
outlineRuntimeSnapshots[index],
|
|
499
|
+
])), [outlineRuntimeControls, outlineRuntimeSnapshots]);
|
|
461
500
|
const outlineTargets = (0, react_1.useMemo)(() => {
|
|
462
501
|
if (isFullscreen ||
|
|
463
502
|
!(0, interactivity_enabled_1.isStudioSelectionEnabled)() ||
|
|
@@ -479,7 +518,7 @@ const SelectedOutlineOverlay = ({ compositionHeight, compositionWidth, scale, tr
|
|
|
479
518
|
compositions,
|
|
480
519
|
timelinePosition,
|
|
481
520
|
}).map(({ key, keyframeDisplayOffset, nodePathInfo, sequence }) => {
|
|
482
|
-
var _a, _b, _c, _d, _e, _f;
|
|
521
|
+
var _a, _b, _c, _d, _e, _f, _g;
|
|
483
522
|
if (sequence.refForOutline === null) {
|
|
484
523
|
throw new Error('Expected sequence to have a ref for outline');
|
|
485
524
|
}
|
|
@@ -490,10 +529,13 @@ const SelectedOutlineOverlay = ({ compositionHeight, compositionWidth, scale, tr
|
|
|
490
529
|
const nodePropStatuses = remotion_1.Internals.getPropStatusesCtx(propStatuses, nodePath);
|
|
491
530
|
const sourceFrame = timelinePosition - keyframeDisplayOffset;
|
|
492
531
|
const dragOverrides = (_a = getDragOverrides(nodePath)) !== null && _a !== void 0 ? _a : {};
|
|
532
|
+
const runtimeValues = controls
|
|
533
|
+
? ((_b = outlineRuntimeValuesByStore.get(controls.runtimeValues)) !== null && _b !== void 0 ? _b : controls.runtimeValues.getSnapshot())
|
|
534
|
+
: {};
|
|
493
535
|
const activeSchema = controls
|
|
494
536
|
? (0, selected_outline_drag_1.getSelectedOutlineActiveSchema)({
|
|
495
537
|
schema: controls.schema,
|
|
496
|
-
currentRuntimeValueDotNotation:
|
|
538
|
+
currentRuntimeValueDotNotation: runtimeValues,
|
|
497
539
|
dragOverrides,
|
|
498
540
|
propStatus: nodePropStatuses,
|
|
499
541
|
frame: sourceFrame,
|
|
@@ -502,35 +544,35 @@ const SelectedOutlineOverlay = ({ compositionHeight, compositionWidth, scale, tr
|
|
|
502
544
|
const cropValues = {
|
|
503
545
|
cropLeft: getEffectiveCropValue({
|
|
504
546
|
activeSchema,
|
|
505
|
-
controls,
|
|
506
547
|
dragOverrides,
|
|
507
548
|
fieldKey: selected_outline_types_1.cropFieldKeys.left,
|
|
508
549
|
frame: sourceFrame,
|
|
509
550
|
propStatuses: nodePropStatuses,
|
|
551
|
+
runtimeValues,
|
|
510
552
|
}),
|
|
511
553
|
cropRight: getEffectiveCropValue({
|
|
512
554
|
activeSchema,
|
|
513
|
-
controls,
|
|
514
555
|
dragOverrides,
|
|
515
556
|
fieldKey: selected_outline_types_1.cropFieldKeys.right,
|
|
516
557
|
frame: sourceFrame,
|
|
517
558
|
propStatuses: nodePropStatuses,
|
|
559
|
+
runtimeValues,
|
|
518
560
|
}),
|
|
519
561
|
cropTop: getEffectiveCropValue({
|
|
520
562
|
activeSchema,
|
|
521
|
-
controls,
|
|
522
563
|
dragOverrides,
|
|
523
564
|
fieldKey: selected_outline_types_1.cropFieldKeys.top,
|
|
524
565
|
frame: sourceFrame,
|
|
525
566
|
propStatuses: nodePropStatuses,
|
|
567
|
+
runtimeValues,
|
|
526
568
|
}),
|
|
527
569
|
cropBottom: getEffectiveCropValue({
|
|
528
570
|
activeSchema,
|
|
529
|
-
controls,
|
|
530
571
|
dragOverrides,
|
|
531
572
|
fieldKey: selected_outline_types_1.cropFieldKeys.bottom,
|
|
532
573
|
frame: sourceFrame,
|
|
533
574
|
propStatuses: nodePropStatuses,
|
|
575
|
+
runtimeValues,
|
|
534
576
|
}),
|
|
535
577
|
};
|
|
536
578
|
const crop = remotion_1.Internals.resolveSequenceCrop(cropValues);
|
|
@@ -550,13 +592,13 @@ const SelectedOutlineOverlay = ({ compositionHeight, compositionWidth, scale, tr
|
|
|
550
592
|
const transformOriginValueForRotation = (transformOriginFieldSchema === null || transformOriginFieldSchema === void 0 ? void 0 : transformOriginFieldSchema.type) === 'transform-origin' &&
|
|
551
593
|
((transformOriginPropStatus === null || transformOriginPropStatus === void 0 ? void 0 : transformOriginPropStatus.status) === 'static' ||
|
|
552
594
|
(transformOriginPropStatus === null || transformOriginPropStatus === void 0 ? void 0 : transformOriginPropStatus.status) === 'keyframed')
|
|
553
|
-
? String((
|
|
595
|
+
? String((_c = remotion_1.Internals.getEffectiveVisualModeValue({
|
|
554
596
|
propStatus: transformOriginPropStatus,
|
|
555
597
|
dragOverrideValue: dragOverrides[selected_outline_types_1.transformOriginFieldKey],
|
|
556
598
|
defaultValue: transformOriginFieldSchema.default,
|
|
557
599
|
frame: sourceFrame,
|
|
558
600
|
shouldResortToDefaultValueIfUndefined: true,
|
|
559
|
-
})) !== null &&
|
|
601
|
+
})) !== null && _c !== void 0 ? _c : transformOriginFieldSchema.default)
|
|
560
602
|
: '50% 50%';
|
|
561
603
|
const canDragStatus = (propStatus === null || propStatus === void 0 ? void 0 : propStatus.status) === 'static' ||
|
|
562
604
|
((propStatus === null || propStatus === void 0 ? void 0 : propStatus.status) === 'keyframed' &&
|
|
@@ -696,16 +738,16 @@ const SelectedOutlineOverlay = ({ compositionHeight, compositionWidth, scale, tr
|
|
|
696
738
|
nodePath,
|
|
697
739
|
originDefault: transformOriginFieldSchema.default,
|
|
698
740
|
originPropStatus: transformOriginPropStatus,
|
|
699
|
-
originValue: String((
|
|
741
|
+
originValue: String((_d = remotion_1.Internals.getEffectiveVisualModeValue({
|
|
700
742
|
propStatus: transformOriginPropStatus,
|
|
701
743
|
dragOverrideValue: dragOverrides[selected_outline_types_1.transformOriginFieldKey],
|
|
702
744
|
defaultValue: transformOriginFieldSchema.default,
|
|
703
745
|
frame: transformOriginSourceFrame,
|
|
704
746
|
shouldResortToDefaultValueIfUndefined: true,
|
|
705
|
-
})) !== null &&
|
|
747
|
+
})) !== null && _d !== void 0 ? _d : transformOriginFieldSchema.default),
|
|
706
748
|
rotateValue: String((rotationPropStatus === null || rotationPropStatus === void 0 ? void 0 : rotationPropStatus.status) === 'static' ||
|
|
707
749
|
(rotationPropStatus === null || rotationPropStatus === void 0 ? void 0 : rotationPropStatus.status) === 'keyframed'
|
|
708
|
-
? ((
|
|
750
|
+
? ((_e = remotion_1.Internals.getEffectiveVisualModeValue({
|
|
709
751
|
propStatus: rotationPropStatus,
|
|
710
752
|
dragOverrideValue: dragOverrides[selected_outline_types_1.rotateFieldKey],
|
|
711
753
|
defaultValue: (rotationFieldSchema === null || rotationFieldSchema === void 0 ? void 0 : rotationFieldSchema.type) === 'rotation-css'
|
|
@@ -713,11 +755,11 @@ const SelectedOutlineOverlay = ({ compositionHeight, compositionWidth, scale, tr
|
|
|
713
755
|
: '0deg',
|
|
714
756
|
frame: transformOriginSourceFrame,
|
|
715
757
|
shouldResortToDefaultValueIfUndefined: true,
|
|
716
|
-
})) !== null &&
|
|
758
|
+
})) !== null && _e !== void 0 ? _e : '0deg')
|
|
717
759
|
: '0deg'),
|
|
718
760
|
scaleValue: (scalePropStatus === null || scalePropStatus === void 0 ? void 0 : scalePropStatus.status) === 'static' ||
|
|
719
761
|
(scalePropStatus === null || scalePropStatus === void 0 ? void 0 : scalePropStatus.status) === 'keyframed'
|
|
720
|
-
? String((
|
|
762
|
+
? String((_f = remotion_1.Internals.getEffectiveVisualModeValue({
|
|
721
763
|
propStatus: scalePropStatus,
|
|
722
764
|
dragOverrideValue: dragOverrides[selected_outline_types_1.scaleFieldKey],
|
|
723
765
|
defaultValue: (scaleFieldSchema === null || scaleFieldSchema === void 0 ? void 0 : scaleFieldSchema.type) === 'scale'
|
|
@@ -725,19 +767,19 @@ const SelectedOutlineOverlay = ({ compositionHeight, compositionWidth, scale, tr
|
|
|
725
767
|
: 1,
|
|
726
768
|
frame: transformOriginSourceFrame,
|
|
727
769
|
shouldResortToDefaultValueIfUndefined: true,
|
|
728
|
-
})) !== null &&
|
|
770
|
+
})) !== null && _f !== void 0 ? _f : 1)
|
|
729
771
|
: '1',
|
|
730
772
|
schema: controls.schema,
|
|
731
773
|
sourceFrame: transformOriginSourceFrame,
|
|
732
774
|
translateDefault: fieldSchema.default,
|
|
733
775
|
translatePropStatus: propStatus,
|
|
734
|
-
translateValue: String((
|
|
776
|
+
translateValue: String((_g = remotion_1.Internals.getEffectiveVisualModeValue({
|
|
735
777
|
propStatus,
|
|
736
778
|
dragOverrideValue: dragOverrides[selected_outline_types_1.translateFieldKey],
|
|
737
779
|
defaultValue: fieldSchema.default,
|
|
738
780
|
frame: transformOriginSourceFrame,
|
|
739
781
|
shouldResortToDefaultValueIfUndefined: true,
|
|
740
|
-
})) !== null &&
|
|
782
|
+
})) !== null && _g !== void 0 ? _g : fieldSchema.default),
|
|
741
783
|
}
|
|
742
784
|
: null,
|
|
743
785
|
uvHandles: containsSelection
|
|
@@ -768,6 +810,7 @@ const SelectedOutlineOverlay = ({ compositionHeight, compositionWidth, scale, tr
|
|
|
768
810
|
sequences,
|
|
769
811
|
compositions,
|
|
770
812
|
timelinePosition,
|
|
813
|
+
outlineRuntimeValuesByStore,
|
|
771
814
|
]);
|
|
772
815
|
(0, react_1.useEffect)(() => {
|
|
773
816
|
if ((hoveredSequence === null || hoveredSequence === void 0 ? void 0 : hoveredSequence.source) === 'canvas' &&
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SettingsModal = void 0;
|
|
4
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
+
const react_1 = require("react");
|
|
6
|
+
const apps_1 = require("../icons/apps");
|
|
7
|
+
const certificate_1 = require("../icons/certificate");
|
|
8
|
+
const modals_1 = require("../state/modals");
|
|
9
|
+
const ConfigureDefaultEditorModal_1 = require("./ConfigureDefaultEditorModal");
|
|
10
|
+
const ConfigureLicenseModal_1 = require("./ConfigureLicenseModal");
|
|
11
|
+
const is_menu_item_1 = require("./Menu/is-menu-item");
|
|
12
|
+
const ModalHeader_1 = require("./ModalHeader");
|
|
13
|
+
const DismissableModal_1 = require("./NewComposition/DismissableModal");
|
|
14
|
+
const render_modals_1 = require("./RenderModal/render-modals");
|
|
15
|
+
const vertical_1 = require("./Tabs/vertical");
|
|
16
|
+
const hiddenPanel = {
|
|
17
|
+
display: 'none',
|
|
18
|
+
};
|
|
19
|
+
const appsIcon = {
|
|
20
|
+
...render_modals_1.icon,
|
|
21
|
+
height: 20,
|
|
22
|
+
width: 20,
|
|
23
|
+
};
|
|
24
|
+
const appsIconContainer = {
|
|
25
|
+
...render_modals_1.iconContainer,
|
|
26
|
+
height: 20,
|
|
27
|
+
width: 20,
|
|
28
|
+
};
|
|
29
|
+
const SettingsModal = ({ initialPublicLicenseKey, initialTab }) => {
|
|
30
|
+
const { setSelectedModal } = (0, react_1.useContext)(modals_1.SetSelectedModalContext);
|
|
31
|
+
const [tab, setTab] = (0, react_1.useState)(initialTab);
|
|
32
|
+
const [openedTabs, setOpenedTabs] = (0, react_1.useState)([initialTab]);
|
|
33
|
+
const dismiss = (0, react_1.useCallback)(() => {
|
|
34
|
+
setSelectedModal(null);
|
|
35
|
+
}, [setSelectedModal]);
|
|
36
|
+
const selectTab = (0, react_1.useCallback)((newTab) => {
|
|
37
|
+
setTab(newTab);
|
|
38
|
+
setOpenedTabs((currentOpenedTabs) => {
|
|
39
|
+
if (currentOpenedTabs.includes(newTab)) {
|
|
40
|
+
return currentOpenedTabs;
|
|
41
|
+
}
|
|
42
|
+
return [...currentOpenedTabs, newTab];
|
|
43
|
+
});
|
|
44
|
+
}, []);
|
|
45
|
+
return (jsx_runtime_1.jsxs(DismissableModal_1.DismissableModal, { panelStyle: render_modals_1.outerModalStyle, children: [
|
|
46
|
+
jsx_runtime_1.jsx(ModalHeader_1.ModalHeader, { title: "Settings", onClose: dismiss }), jsx_runtime_1.jsxs("div", { style: render_modals_1.horizontalLayout, children: [
|
|
47
|
+
jsx_runtime_1.jsxs("div", { style: render_modals_1.leftSidebar, children: [jsx_runtime_1.jsx(vertical_1.VerticalTab, { style: render_modals_1.horizontalTab, selected: tab === 'apps', onClick: () => selectTab('apps'), renderIcon: (color) => (jsx_runtime_1.jsx("div", { style: appsIconContainer, children: jsx_runtime_1.jsx(apps_1.AppsIcon, { color: color, style: appsIcon }) })), children: "Apps" }), jsx_runtime_1.jsx(vertical_1.VerticalTab, { style: render_modals_1.horizontalTab, selected: tab === 'license', onClick: () => selectTab('license'), renderIcon: (color) => (jsx_runtime_1.jsx("div", { style: render_modals_1.iconContainer, children: jsx_runtime_1.jsx(certificate_1.CertificateIcon, { color: color, style: render_modals_1.icon }) })), children: "License" })] }), openedTabs.includes('apps') ? (jsx_runtime_1.jsx("div", { style: tab === 'apps' ? render_modals_1.optionsPanel : hiddenPanel, className: is_menu_item_1.VERTICAL_SCROLLBAR_CLASSNAME, children: jsx_runtime_1.jsx(ConfigureDefaultEditorModal_1.DefaultEditorSettings, { onSaved: dismiss }) })) : null, openedTabs.includes('license') ? (jsx_runtime_1.jsx("div", { style: tab === 'license' ? render_modals_1.optionsPanel : hiddenPanel, className: is_menu_item_1.VERTICAL_SCROLLBAR_CLASSNAME, children: jsx_runtime_1.jsx(ConfigureLicenseModal_1.LicenseSettings, { initialPublicLicenseKey: initialPublicLicenseKey, onSaved: dismiss }) })) : null] })
|
|
48
|
+
] }));
|
|
49
|
+
};
|
|
50
|
+
exports.SettingsModal = SettingsModal;
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SettingsModalFooter = void 0;
|
|
4
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
+
const react_1 = require("react");
|
|
6
|
+
const colors_1 = require("../helpers/colors");
|
|
7
|
+
const InspectorOpenInEditor_1 = require("./InspectorOpenInEditor");
|
|
8
|
+
const ModalFooter_1 = require("./ModalFooter");
|
|
9
|
+
const footer = {
|
|
10
|
+
flex: 'none',
|
|
11
|
+
};
|
|
12
|
+
const footerRow = {
|
|
13
|
+
alignItems: 'center',
|
|
14
|
+
display: 'flex',
|
|
15
|
+
justifyContent: 'space-between',
|
|
16
|
+
};
|
|
17
|
+
const configFileHint = {
|
|
18
|
+
alignItems: 'center',
|
|
19
|
+
color: colors_1.LIGHT_TEXT,
|
|
20
|
+
display: 'flex',
|
|
21
|
+
fontFamily: 'sans-serif',
|
|
22
|
+
fontSize: 13,
|
|
23
|
+
lineHeight: '20px',
|
|
24
|
+
whiteSpace: 'nowrap',
|
|
25
|
+
};
|
|
26
|
+
const configFileName = {
|
|
27
|
+
color: colors_1.BLUE,
|
|
28
|
+
fontFamily: 'inherit',
|
|
29
|
+
fontSize: 13,
|
|
30
|
+
fontWeight: 'bold',
|
|
31
|
+
lineHeight: '20px',
|
|
32
|
+
};
|
|
33
|
+
const SettingsModalFooter = ({ children }) => {
|
|
34
|
+
const configFileLocation = (0, react_1.useMemo)(() => {
|
|
35
|
+
return {
|
|
36
|
+
source: 'remotion.config.ts',
|
|
37
|
+
line: 1,
|
|
38
|
+
column: 1,
|
|
39
|
+
};
|
|
40
|
+
}, []);
|
|
41
|
+
return (jsx_runtime_1.jsx(ModalFooter_1.ModalFooterContainer, { style: footer, noBorder: true, children: jsx_runtime_1.jsxs("div", { style: footerRow, children: [
|
|
42
|
+
jsx_runtime_1.jsxs("div", { style: configFileHint, children: ["Changes save to",
|
|
43
|
+
jsx_runtime_1.jsx(InspectorOpenInEditor_1.InspectorOpenInEditor, { location: configFileLocation, label: jsx_runtime_1.jsx("strong", { style: configFileName, children: "remotion.config.ts" }) })
|
|
44
|
+
] }), children] }) }));
|
|
45
|
+
};
|
|
46
|
+
exports.SettingsModalFooter = SettingsModalFooter;
|
|
@@ -9,7 +9,7 @@ const render_1 = require("../icons/render");
|
|
|
9
9
|
const modals_1 = require("../state/modals");
|
|
10
10
|
const InlineAction_1 = require("./InlineAction");
|
|
11
11
|
const SidebarRenderButton = ({ composition, visible }) => {
|
|
12
|
-
const { setSelectedModal } = (0, react_1.useContext)(modals_1.
|
|
12
|
+
const { setSelectedModal } = (0, react_1.useContext)(modals_1.SetSelectedModalContext);
|
|
13
13
|
const iconStyle = (0, react_1.useMemo)(() => {
|
|
14
14
|
return {
|
|
15
15
|
style: {
|
|
@@ -25,7 +25,7 @@ const inlineCode = {
|
|
|
25
25
|
color: 'inherit',
|
|
26
26
|
};
|
|
27
27
|
const useSvgImportDialog = () => {
|
|
28
|
-
const { setSelectedModal } = (0, react_1.useContext)(modals_1.
|
|
28
|
+
const { setSelectedModal } = (0, react_1.useContext)(modals_1.SetSelectedModalContext);
|
|
29
29
|
return (0, react_1.useCallback)(() => {
|
|
30
30
|
return new Promise((resolve) => {
|
|
31
31
|
let settled = false;
|
|
@@ -48,7 +48,7 @@ const useSvgImportDialog = () => {
|
|
|
48
48
|
};
|
|
49
49
|
exports.useSvgImportDialog = useSvgImportDialog;
|
|
50
50
|
const SvgImportDialog = ({ state }) => {
|
|
51
|
-
const { setSelectedModal } = (0, react_1.useContext)(modals_1.
|
|
51
|
+
const { setSelectedModal } = (0, react_1.useContext)(modals_1.SetSelectedModalContext);
|
|
52
52
|
const settledRef = (0, react_1.useRef)(false);
|
|
53
53
|
const closeCurrentModal = (0, react_1.useCallback)(() => {
|
|
54
54
|
setSelectedModal((modal) => (modal === null || modal === void 0 ? void 0 : modal.type) === 'svg-import-dialog' && modal.id === state.id
|