@remotion/studio 4.0.291 → 4.0.293
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/.turbo/turbo-make.log +2 -2
- package/dist/api/get-zod-schema-from-primitive.js +6 -1
- package/dist/api/save-default-props.js +13 -1
- package/dist/api/update-default-props.js +1 -1
- package/dist/api/use-visual-control.js +1 -2
- package/dist/api/use-visual-controls.d.ts +7 -0
- package/dist/api/use-visual-controls.js +57 -0
- package/dist/api/visual-control.d.ts +2 -0
- package/dist/api/visual-control.js +11 -0
- package/dist/components/AskAiModal.d.ts +7 -0
- package/dist/components/AskAiModal.js +65 -0
- package/dist/components/Canvas.d.ts +0 -1
- package/dist/components/Canvas.js +2 -2
- package/dist/components/CanvasOrLoading.js +1 -1
- package/dist/components/EditorContexts.js +2 -1
- package/dist/components/GlobalKeybindings.js +14 -0
- package/dist/components/GlobalPropsEditorUpdateButton.js +6 -2
- package/dist/components/KeyboardShortcutsExplainer.js +1 -1
- package/dist/components/ModalContainer.d.ts +1 -0
- package/dist/components/ModalContainer.js +2 -2
- package/dist/components/ModalHeader.d.ts +1 -0
- package/dist/components/ModalHeader.js +2 -2
- package/dist/components/Modals.js +2 -1
- package/dist/components/OptionsPanel.d.ts +1 -1
- package/dist/components/OptionsPanel.js +12 -2
- package/dist/components/Preview.d.ts +0 -1
- package/dist/components/Preview.js +3 -5
- package/dist/components/QuickSwitcher/QuickSwitcherResult.js +1 -1
- package/dist/components/RenderModal/DataEditor.js +11 -4
- package/dist/components/RenderModal/RenderModalJSONPropsEditor.js +1 -1
- package/dist/components/RenderModal/SchemaEditor/Fieldset.d.ts +1 -0
- package/dist/components/RenderModal/SchemaEditor/Fieldset.js +5 -5
- package/dist/components/RenderModal/SchemaEditor/SchemaLabel.js +1 -1
- package/dist/components/RenderModal/SchemaEditor/ZodArrayEditor.js +1 -1
- package/dist/components/RenderModal/SchemaEditor/ZodArrayItemEditor.d.ts +1 -0
- package/dist/components/RenderModal/SchemaEditor/ZodArrayItemEditor.js +2 -2
- package/dist/components/RenderModal/SchemaEditor/ZodMatrixEditor.js +3 -6
- package/dist/components/RenderModal/SchemaEditor/ZodSwitch.js +6 -0
- package/dist/components/RenderModal/SchemaEditor/create-zod-values.js +9 -0
- package/dist/components/RenderModal/SchemaEditor/extract-enum-json-paths.d.ts +7 -2
- package/dist/components/RenderModal/SchemaEditor/extract-enum-json-paths.js +96 -22
- package/dist/components/RenderQueue/actions.d.ts +5 -1
- package/dist/components/RenderQueue/actions.js +12 -5
- package/dist/components/Tabs/index.js +3 -1
- package/dist/components/Timeline/TimelineStack/get-stack.d.ts +1 -1
- package/dist/components/Timeline/TimelineStack/get-stack.js +4 -2
- package/dist/components/Timeline/TimelineStack/index.js +2 -8
- package/dist/components/VisualControls/ClickableFileName.d.ts +12 -2
- package/dist/components/VisualControls/ClickableFileName.js +17 -13
- package/dist/components/VisualControls/VisualControlHandle.d.ts +0 -2
- package/dist/components/VisualControls/VisualControlHandle.js +69 -7
- package/dist/components/VisualControls/VisualControlHandleHeader.d.ts +4 -0
- package/dist/components/VisualControls/VisualControlHandleHeader.js +9 -0
- package/dist/components/VisualControls/VisualControlsContent.js +40 -16
- package/dist/components/VisualControls/get-original-stack-trace.d.ts +2 -2
- package/dist/components/VisualControls/get-original-stack-trace.js +10 -2
- package/dist/esm/index.mjs +153 -29
- package/dist/esm/internals.mjs +4430 -3644
- package/dist/esm/previewEntry.mjs +4520 -3734
- package/dist/esm/renderEntry.mjs +4545 -3721
- package/dist/helpers/get-location-of-sequence.d.ts +1 -0
- package/dist/helpers/get-location-of-sequence.js +18 -1
- package/dist/helpers/open-in-editor.d.ts +2 -0
- package/dist/helpers/open-in-editor.js +11 -1
- package/dist/helpers/retry-payload.js +3 -3
- package/dist/helpers/use-menu-structure.js +16 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +3 -1
- package/dist/renderEntry.js +5 -5
- package/dist/state/z-index.d.ts +1 -0
- package/dist/state/z-index.js +13 -5
- package/dist/visual-controls/VisualControls.d.ts +11 -18
- package/dist/visual-controls/VisualControls.js +69 -64
- package/dist/visual-controls/get-current-edited-value.d.ts +2 -3
- package/dist/visual-controls/get-current-edited-value.js +3 -3
- package/package.json +9 -9
- package/tsconfig.tsbuildinfo +1 -1
package/.turbo/turbo-make.log
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
|
|
2
2
|
|
|
3
|
-
> @remotion/studio@4.0.
|
|
3
|
+
> @remotion/studio@4.0.293 make /Users/jonathanburger/remotion/packages/studio
|
|
4
4
|
> tsc -d && bun --env-file=../.env.bundle bundle.ts
|
|
5
5
|
|
|
6
|
-
[0m[2m[[
|
|
6
|
+
[0m[2m[[1m62.19ms[0m[2m][0m Generated.
|
|
@@ -8,6 +8,11 @@ const getZodSchemaFromPrimitive = (value, z) => {
|
|
|
8
8
|
if (typeof value === 'number') {
|
|
9
9
|
return z.number();
|
|
10
10
|
}
|
|
11
|
-
|
|
11
|
+
let stringified;
|
|
12
|
+
try {
|
|
13
|
+
stringified = JSON.stringify(value);
|
|
14
|
+
}
|
|
15
|
+
catch (_a) { }
|
|
16
|
+
throw new Error(`visualControl(): Specify a schema for this value: ${stringified !== null && stringified !== void 0 ? stringified : '[non-serializable value]'}. See https://remotion.dev/docs/studio/visual-control`);
|
|
12
17
|
};
|
|
13
18
|
exports.getZodSchemaFromPrimitive = getZodSchemaFromPrimitive;
|
|
@@ -56,8 +56,20 @@ const saveDefaultProps = async ({ compositionId, defaultProps, }) => {
|
|
|
56
56
|
throw new Error('"zod" is required to use saveDefaultProps(), but is not installed.');
|
|
57
57
|
}
|
|
58
58
|
const z = await Promise.resolve().then(() => __importStar(require('zod')));
|
|
59
|
+
let zodTypes = null;
|
|
60
|
+
try {
|
|
61
|
+
zodTypes = await Promise.resolve().then(() => __importStar(require('@remotion/zod-types')));
|
|
62
|
+
}
|
|
63
|
+
catch (_b) { }
|
|
59
64
|
const { generatedDefaultProps, composition } = (0, calc_new_props_1.calcNewProps)(compositionId, defaultProps);
|
|
60
|
-
const res = await (0, actions_1.callUpdateDefaultPropsApi)(compositionId, generatedDefaultProps, composition.schema
|
|
65
|
+
const res = await (0, actions_1.callUpdateDefaultPropsApi)(compositionId, generatedDefaultProps, composition.schema
|
|
66
|
+
? (0, extract_enum_json_paths_1.extractEnumJsonPaths)({
|
|
67
|
+
schema: composition.schema,
|
|
68
|
+
zodRuntime: z,
|
|
69
|
+
currentPath: [],
|
|
70
|
+
zodTypes,
|
|
71
|
+
})
|
|
72
|
+
: []);
|
|
61
73
|
if (res.success) {
|
|
62
74
|
return Promise.resolve();
|
|
63
75
|
}
|
|
@@ -8,7 +8,6 @@ const VisualControls_1 = require("../visual-controls/VisualControls");
|
|
|
8
8
|
const get_zod_schema_from_primitive_1 = require("./get-zod-schema-from-primitive");
|
|
9
9
|
const useVisualControl = () => {
|
|
10
10
|
const { addHook, removeHook, setControl, updateHandles } = (0, react_1.useContext)(VisualControls_1.SetVisualControlsContext);
|
|
11
|
-
const { handles } = (0, react_1.useContext)(VisualControls_1.VisualControlsContext);
|
|
12
11
|
const changed = (0, react_1.useRef)(false);
|
|
13
12
|
const [stack] = (0, react_1.useState)(() => {
|
|
14
13
|
return new Error().stack;
|
|
@@ -53,6 +52,6 @@ const useVisualControl = () => {
|
|
|
53
52
|
}
|
|
54
53
|
return currentValue;
|
|
55
54
|
},
|
|
56
|
-
}), [
|
|
55
|
+
}), [hook, setControl, z]);
|
|
57
56
|
};
|
|
58
57
|
exports.useVisualControl = useVisualControl;
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.useVisualControls = void 0;
|
|
4
|
+
const react_1 = require("react");
|
|
5
|
+
const remotion_1 = require("remotion");
|
|
6
|
+
const get_zod_if_possible_1 = require("../components/get-zod-if-possible");
|
|
7
|
+
const VisualControls_1 = require("../visual-controls/VisualControls");
|
|
8
|
+
const get_zod_schema_from_primitive_1 = require("./get-zod-schema-from-primitive");
|
|
9
|
+
const useVisualControls = () => {
|
|
10
|
+
const { addHook, removeHook, setControl, updateHandles } = (0, react_1.useContext)(VisualControls_1.SetVisualControlsContext);
|
|
11
|
+
const { handles } = (0, react_1.useContext)(VisualControls_1.VisualControlsContext);
|
|
12
|
+
const changedRef = (0, react_1.useRef)(false);
|
|
13
|
+
const [stack] = (0, react_1.useState)(() => {
|
|
14
|
+
return new Error().stack;
|
|
15
|
+
});
|
|
16
|
+
const [hook] = (0, react_1.useState)(() => {
|
|
17
|
+
return (0, VisualControls_1.makeHook)(stack);
|
|
18
|
+
});
|
|
19
|
+
(0, react_1.useEffect)(() => {
|
|
20
|
+
if (!(0, remotion_1.getRemotionEnvironment)().isStudio) {
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
23
|
+
addHook(hook);
|
|
24
|
+
}, [addHook, hook]);
|
|
25
|
+
(0, react_1.useEffect)(() => {
|
|
26
|
+
return () => {
|
|
27
|
+
removeHook(hook);
|
|
28
|
+
};
|
|
29
|
+
}, [hook, removeHook]);
|
|
30
|
+
(0, react_1.useEffect)(() => {
|
|
31
|
+
if (changedRef.current) {
|
|
32
|
+
updateHandles();
|
|
33
|
+
changedRef.current = false;
|
|
34
|
+
}
|
|
35
|
+
}, [updateHandles]);
|
|
36
|
+
const z = (0, get_zod_if_possible_1.useZodIfPossible)();
|
|
37
|
+
return (0, react_1.useMemo)(() => ({
|
|
38
|
+
visualControl(key, value, schema) {
|
|
39
|
+
if (!(0, remotion_1.getRemotionEnvironment)().isStudio) {
|
|
40
|
+
return value;
|
|
41
|
+
}
|
|
42
|
+
if (!z) {
|
|
43
|
+
return value;
|
|
44
|
+
}
|
|
45
|
+
const { changed, currentValue } = setControl(hook, key, {
|
|
46
|
+
valueInCode: value,
|
|
47
|
+
schema: schema !== null && schema !== void 0 ? schema : (0, get_zod_schema_from_primitive_1.getZodSchemaFromPrimitive)(value, z),
|
|
48
|
+
stack: new Error().stack,
|
|
49
|
+
});
|
|
50
|
+
if (changed) {
|
|
51
|
+
changedRef.current = true;
|
|
52
|
+
}
|
|
53
|
+
return currentValue;
|
|
54
|
+
},
|
|
55
|
+
}), [hook, setControl, handles, z]);
|
|
56
|
+
};
|
|
57
|
+
exports.useVisualControls = useVisualControls;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.visualControl = void 0;
|
|
4
|
+
const VisualControls_1 = require("../visual-controls/VisualControls");
|
|
5
|
+
const visualControl = (key, value, schema) => {
|
|
6
|
+
if (!VisualControls_1.visualControlRef.current) {
|
|
7
|
+
throw new Error('visualControlRef is not set');
|
|
8
|
+
}
|
|
9
|
+
return VisualControls_1.visualControlRef.current.globalVisualControl(key, value, schema);
|
|
10
|
+
};
|
|
11
|
+
exports.visualControl = visualControl;
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AskAiModal = exports.askAiModalRef = void 0;
|
|
4
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
+
const react_1 = require("react");
|
|
6
|
+
const remotion_1 = require("remotion");
|
|
7
|
+
const ModalContainer_1 = require("./ModalContainer");
|
|
8
|
+
const ModalHeader_1 = require("./ModalHeader");
|
|
9
|
+
const container = {
|
|
10
|
+
height: 'calc(100vh - 100px)',
|
|
11
|
+
width: 'calc(100vw - 160px)',
|
|
12
|
+
maxWidth: 800,
|
|
13
|
+
maxHeight: 900,
|
|
14
|
+
display: 'block',
|
|
15
|
+
};
|
|
16
|
+
exports.askAiModalRef = (0, react_1.createRef)();
|
|
17
|
+
const AskAiModal = () => {
|
|
18
|
+
const [state, setState] = (0, react_1.useState)('never-opened');
|
|
19
|
+
const iframe = (0, react_1.useRef)(null);
|
|
20
|
+
(0, react_1.useImperativeHandle)(exports.askAiModalRef, () => ({
|
|
21
|
+
toggle: () => {
|
|
22
|
+
setState((s) => {
|
|
23
|
+
var _a, _b, _c;
|
|
24
|
+
if (s === 'visible') {
|
|
25
|
+
(_a = iframe.current) === null || _a === void 0 ? void 0 : _a.blur();
|
|
26
|
+
(_c = (_b = iframe.current) === null || _b === void 0 ? void 0 : _b.contentWindow) === null || _c === void 0 ? void 0 : _c.blur();
|
|
27
|
+
}
|
|
28
|
+
return s === 'visible' ? 'hidden' : 'visible';
|
|
29
|
+
});
|
|
30
|
+
},
|
|
31
|
+
}), []);
|
|
32
|
+
(0, react_1.useEffect)(() => {
|
|
33
|
+
const onMessage = (event) => {
|
|
34
|
+
var _a;
|
|
35
|
+
const json = typeof event.data === 'string' ? JSON.parse(event.data) : event.data;
|
|
36
|
+
if (json.type === 'cmd-j') {
|
|
37
|
+
(_a = exports.askAiModalRef.current) === null || _a === void 0 ? void 0 : _a.toggle();
|
|
38
|
+
}
|
|
39
|
+
};
|
|
40
|
+
window.addEventListener('message', onMessage);
|
|
41
|
+
return () => {
|
|
42
|
+
window.removeEventListener('message', onMessage);
|
|
43
|
+
};
|
|
44
|
+
}, []);
|
|
45
|
+
const onQuit = (0, react_1.useCallback)(() => {
|
|
46
|
+
setState('hidden');
|
|
47
|
+
}, [setState]);
|
|
48
|
+
// When re-toggling the modal, focus the text box
|
|
49
|
+
(0, react_1.useEffect)(() => {
|
|
50
|
+
var _a;
|
|
51
|
+
if (!iframe.current) {
|
|
52
|
+
return;
|
|
53
|
+
}
|
|
54
|
+
if (state === 'visible') {
|
|
55
|
+
(_a = iframe.current.contentWindow) === null || _a === void 0 ? void 0 : _a.postMessage({
|
|
56
|
+
type: 'focus',
|
|
57
|
+
}, '*');
|
|
58
|
+
}
|
|
59
|
+
}, [state]);
|
|
60
|
+
if (state === 'never-opened') {
|
|
61
|
+
return null;
|
|
62
|
+
}
|
|
63
|
+
return ((0, jsx_runtime_1.jsx)(remotion_1.AbsoluteFill, { style: { display: state === 'visible' ? 'block' : 'none' }, children: (0, jsx_runtime_1.jsxs)(ModalContainer_1.ModalContainer, { noZIndex: state === 'hidden', onOutsideClick: onQuit, onEscape: onQuit, children: [(0, jsx_runtime_1.jsx)(ModalHeader_1.ModalHeader, { title: "Ask AI", onClose: onQuit }), (0, jsx_runtime_1.jsx)("iframe", { ref: iframe, frameBorder: 0, style: container, src: "https://www.remotion.dev/ai-embed" })] }) }));
|
|
64
|
+
};
|
|
65
|
+
exports.AskAiModal = AskAiModal;
|
|
@@ -34,7 +34,7 @@ const resetZoom = {
|
|
|
34
34
|
right: layout_1.SPACING_UNIT * 2,
|
|
35
35
|
};
|
|
36
36
|
const ZOOM_PX_FACTOR = 0.003;
|
|
37
|
-
const Canvas = ({ canvasContent, size
|
|
37
|
+
const Canvas = ({ canvasContent, size }) => {
|
|
38
38
|
const { setSize, size: previewSize } = (0, react_1.useContext)(remotion_1.Internals.PreviewSizeContext);
|
|
39
39
|
const { editorZoomGestures } = (0, react_1.useContext)(editor_zoom_gestures_1.EditorZoomGesturesContext);
|
|
40
40
|
const keybindings = (0, use_keybinding_1.useKeybinding)();
|
|
@@ -260,6 +260,6 @@ const Canvas = ({ canvasContent, size, isRefreshing }) => {
|
|
|
260
260
|
(0, react_1.useEffect)(() => {
|
|
261
261
|
fetchMetadata();
|
|
262
262
|
}, [fetchMetadata]);
|
|
263
|
-
return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsxs)("div", { ref: canvas_ref_1.canvasRef, style: container, children: [size ? ((0, jsx_runtime_1.jsx)(Preview_1.VideoPreview, { canvasContent: canvasContent, contentDimensions: contentDimensions, canvasSize: size, assetMetadata: assetResolution
|
|
263
|
+
return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsxs)("div", { ref: canvas_ref_1.canvasRef, style: container, children: [size ? ((0, jsx_runtime_1.jsx)(Preview_1.VideoPreview, { canvasContent: canvasContent, contentDimensions: contentDimensions, canvasSize: size, assetMetadata: assetResolution })) : null, isFit ? null : ((0, jsx_runtime_1.jsx)("div", { style: resetZoom, className: "css-reset", children: (0, jsx_runtime_1.jsx)(ResetZoomButton_1.ResetZoomButton, { onClick: onReset }) })), editorShowGuides && canvasContent.type === 'composition' && ((0, jsx_runtime_1.jsx)(EditorGuides_1.default, { canvasSize: size, contentDimensions: contentDimensions, assetMetadata: assetResolution }))] }), areRulersVisible && ((0, jsx_runtime_1.jsx)(EditorRuler_1.EditorRulers, { contentDimensions: contentDimensions, canvasSize: size, assetMetadata: assetResolution, containerRef: canvas_ref_1.canvasRef }))] }));
|
|
264
264
|
};
|
|
265
265
|
exports.Canvas = Canvas;
|
|
@@ -46,7 +46,7 @@ const CanvasOrLoading = ({ size }) => {
|
|
|
46
46
|
const compname = window.location.pathname.replace('/', '');
|
|
47
47
|
return ((0, jsx_runtime_1.jsx)("div", { style: container, className: "css-reset", children: (0, jsx_runtime_1.jsxs)("div", { style: RunningCalculateMetadata_1.loaderLabel, children: ["Composition with ID ", compname, " not found."] }) }));
|
|
48
48
|
}
|
|
49
|
-
const content = ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(ZoomPersistor_1.ZoomPersistor, {}), (0, jsx_runtime_1.jsx)(Canvas_1.Canvas, {
|
|
49
|
+
const content = ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(ZoomPersistor_1.ZoomPersistor, {}), (0, jsx_runtime_1.jsx)(Canvas_1.Canvas, { size: size, canvasContent: canvasContent }), (resolved === null || resolved === void 0 ? void 0 : resolved.type) === 'success-and-refreshing' ? ((0, jsx_runtime_1.jsx)(RefreshCompositionOverlay_1.RefreshCompositionOverlay, {})) : null] }));
|
|
50
50
|
if (canvasContent.type === 'asset' || canvasContent.type === 'output') {
|
|
51
51
|
return content;
|
|
52
52
|
}
|
|
@@ -9,6 +9,7 @@ const highest_z_index_1 = require("../state/highest-z-index");
|
|
|
9
9
|
const keybindings_1 = require("../state/keybindings");
|
|
10
10
|
const preview_size_1 = require("../state/preview-size");
|
|
11
11
|
const sidebar_1 = require("../state/sidebar");
|
|
12
|
+
const VisualControls_1 = require("../visual-controls/VisualControls");
|
|
12
13
|
const CheckerboardProvider_1 = require("./CheckerboardProvider");
|
|
13
14
|
const get_zod_if_possible_1 = require("./get-zod-if-possible");
|
|
14
15
|
const MediaVolumeProvider_1 = require("./MediaVolumeProvider");
|
|
@@ -19,6 +20,6 @@ const ShowGuidesProvider_1 = require("./ShowGuidesProvider");
|
|
|
19
20
|
const ShowRulersProvider_1 = require("./ShowRulersProvider");
|
|
20
21
|
const ZoomGesturesProvider_1 = require("./ZoomGesturesProvider");
|
|
21
22
|
const EditorContexts = ({ children, readOnlyStudio }) => {
|
|
22
|
-
return ((0, jsx_runtime_1.jsx)(get_zod_if_possible_1.ZodProvider, { children: (0, jsx_runtime_1.jsx)(client_id_1.PreviewServerConnection, { readOnlyStudio: readOnlyStudio, children: (0, jsx_runtime_1.jsx)(context_1.RenderQueueContextProvider, { children: (0, jsx_runtime_1.jsx)(keybindings_1.KeybindingContextProvider, { children: (0, jsx_runtime_1.jsx)(CheckerboardProvider_1.CheckerboardProvider, { children: (0, jsx_runtime_1.jsx)(ZoomGesturesProvider_1.ZoomGesturesProvider, { children: (0, jsx_runtime_1.jsx)(ShowRulersProvider_1.ShowRulersProvider, { children: (0, jsx_runtime_1.jsx)(ShowGuidesProvider_1.ShowGuidesProvider, { children: (0, jsx_runtime_1.jsx)(preview_size_1.PreviewSizeProvider, { children: (0, jsx_runtime_1.jsx)(ModalsProvider_1.ModalsProvider, { children: (0, jsx_runtime_1.jsx)(MediaVolumeProvider_1.MediaVolumeProvider, { children: (0, jsx_runtime_1.jsx)(player_1.PlayerInternals.PlayerEmitterProvider, { currentPlaybackRate: null, children: (0, jsx_runtime_1.jsx)(sidebar_1.SidebarContextProvider, { children: (0, jsx_runtime_1.jsx)(folders_1.FolderContextProvider, { children: (0, jsx_runtime_1.jsx)(highest_z_index_1.HighestZIndexProvider, { children: (0, jsx_runtime_1.jsx)(SetTimelineInOutProvider_1.SetTimelineInOutProvider, { children: children }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }));
|
|
23
|
+
return ((0, jsx_runtime_1.jsx)(get_zod_if_possible_1.ZodProvider, { children: (0, jsx_runtime_1.jsx)(VisualControls_1.VisualControlsProvider, { children: (0, jsx_runtime_1.jsx)(client_id_1.PreviewServerConnection, { readOnlyStudio: readOnlyStudio, children: (0, jsx_runtime_1.jsx)(context_1.RenderQueueContextProvider, { children: (0, jsx_runtime_1.jsx)(keybindings_1.KeybindingContextProvider, { children: (0, jsx_runtime_1.jsx)(CheckerboardProvider_1.CheckerboardProvider, { children: (0, jsx_runtime_1.jsx)(ZoomGesturesProvider_1.ZoomGesturesProvider, { children: (0, jsx_runtime_1.jsx)(ShowRulersProvider_1.ShowRulersProvider, { children: (0, jsx_runtime_1.jsx)(ShowGuidesProvider_1.ShowGuidesProvider, { children: (0, jsx_runtime_1.jsx)(preview_size_1.PreviewSizeProvider, { children: (0, jsx_runtime_1.jsx)(ModalsProvider_1.ModalsProvider, { children: (0, jsx_runtime_1.jsx)(MediaVolumeProvider_1.MediaVolumeProvider, { children: (0, jsx_runtime_1.jsx)(player_1.PlayerInternals.PlayerEmitterProvider, { currentPlaybackRate: null, children: (0, jsx_runtime_1.jsx)(sidebar_1.SidebarContextProvider, { children: (0, jsx_runtime_1.jsx)(folders_1.FolderContextProvider, { children: (0, jsx_runtime_1.jsx)(highest_z_index_1.HighestZIndexProvider, { children: (0, jsx_runtime_1.jsx)(SetTimelineInOutProvider_1.SetTimelineInOutProvider, { children: children }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }));
|
|
23
24
|
};
|
|
24
25
|
exports.EditorContexts = EditorContexts;
|
|
@@ -5,6 +5,7 @@ const react_1 = require("react");
|
|
|
5
5
|
const use_keybinding_1 = require("../helpers/use-keybinding");
|
|
6
6
|
const checkerboard_1 = require("../state/checkerboard");
|
|
7
7
|
const modals_1 = require("../state/modals");
|
|
8
|
+
const AskAiModal_1 = require("./AskAiModal");
|
|
8
9
|
const NotificationCenter_1 = require("./Notifications/NotificationCenter");
|
|
9
10
|
const GlobalKeybindings = () => {
|
|
10
11
|
const keybindings = (0, use_keybinding_1.useKeybinding)();
|
|
@@ -37,6 +38,18 @@ const GlobalKeybindings = () => {
|
|
|
37
38
|
commandCtrlKey: true,
|
|
38
39
|
preventDefault: true,
|
|
39
40
|
});
|
|
41
|
+
const cmdJKey = keybindings.registerKeybinding({
|
|
42
|
+
event: 'keydown',
|
|
43
|
+
key: 'j',
|
|
44
|
+
callback: () => {
|
|
45
|
+
var _a;
|
|
46
|
+
(_a = AskAiModal_1.askAiModalRef.current) === null || _a === void 0 ? void 0 : _a.toggle();
|
|
47
|
+
},
|
|
48
|
+
triggerIfInputFieldFocused: true,
|
|
49
|
+
keepRegisteredWhenNotHighestContext: true,
|
|
50
|
+
commandCtrlKey: true,
|
|
51
|
+
preventDefault: true,
|
|
52
|
+
});
|
|
40
53
|
const cKey = keybindings.registerKeybinding({
|
|
41
54
|
event: 'keypress',
|
|
42
55
|
key: 't',
|
|
@@ -68,6 +81,7 @@ const GlobalKeybindings = () => {
|
|
|
68
81
|
cKey.unregister();
|
|
69
82
|
questionMark.unregister();
|
|
70
83
|
cmdKKey.unregister();
|
|
84
|
+
cmdJKey.unregister();
|
|
71
85
|
};
|
|
72
86
|
}, [keybindings, setCheckerboard, setSelectedModal]);
|
|
73
87
|
return null;
|
|
@@ -64,8 +64,12 @@ const GlobalPropsEditorUpdateButton = ({ compositionId, currentDefaultProps }) =
|
|
|
64
64
|
}, [compositionId, currentDefaultProps, fastRefreshes]);
|
|
65
65
|
const onReset = (0, react_1.useCallback)(() => {
|
|
66
66
|
window.remotion_ignoreFastRefreshUpdate = null;
|
|
67
|
-
window.dispatchEvent(new CustomEvent(remotion_1.Internals.PROPS_UPDATED_EXTERNALLY
|
|
68
|
-
|
|
67
|
+
window.dispatchEvent(new CustomEvent(remotion_1.Internals.PROPS_UPDATED_EXTERNALLY, {
|
|
68
|
+
detail: {
|
|
69
|
+
resetUnsaved: compositionId,
|
|
70
|
+
},
|
|
71
|
+
}));
|
|
72
|
+
}, [compositionId]);
|
|
69
73
|
return ((0, jsx_runtime_1.jsxs)("div", { style: container, children: [(0, jsx_runtime_1.jsx)(SchemaResetButton_1.SchemaResetButton, { onClick: onReset }), (0, jsx_runtime_1.jsx)(SchemaSaveButton_1.SchemaSaveButton, { disabled: disabled, onClick: onClicked })] }));
|
|
70
74
|
};
|
|
71
75
|
exports.GlobalPropsEditorUpdateButton = GlobalPropsEditorUpdateButton;
|
|
@@ -52,6 +52,6 @@ const li = {
|
|
|
52
52
|
fontSize: 14,
|
|
53
53
|
};
|
|
54
54
|
const KeyboardShortcutsExplainer = () => {
|
|
55
|
-
return ((0, jsx_runtime_1.jsxs)("div", { children: [(0, use_keybinding_1.areKeyboardShortcutsDisabled)() ? ((0, jsx_runtime_1.jsxs)("div", { style: keyboardShortcutsDisabled, children: ["Keyboard shortcuts disabled either due to:", (0, jsx_runtime_1.jsxs)("ul", { style: ul, children: [(0, jsx_runtime_1.jsx)("li", { style: li, children: "a) --disable-keyboard-shortcuts being passed" }), (0, jsx_runtime_1.jsx)("li", { style: li, children: "b) Config.setKeyboardShortcutsEnabled(false) being set or" }), (0, jsx_runtime_1.jsx)("li", { style: li, children: " c) a Remotion version mismatch." })] })] })) : null, (0, jsx_runtime_1.jsxs)(layout_1.Row, { style: container, children: [(0, jsx_runtime_1.jsxs)(layout_1.Column, { children: [(0, jsx_runtime_1.jsx)("div", { style: title, children: "Playback" }), (0, jsx_runtime_1.jsxs)(layout_1.Row, { align: "center", children: [(0, jsx_runtime_1.jsxs)("div", { style: left, children: [(0, jsx_runtime_1.jsx)("kbd", { style: key, children: (0, jsx_runtime_1.jsx)(keys_1.ShiftIcon, {}) }), (0, jsx_runtime_1.jsx)(layout_1.Spacing, { x: 0.3 }), (0, jsx_runtime_1.jsx)("kbd", { style: key, children: (0, jsx_runtime_1.jsx)(keys_1.ArrowLeft, {}) })] }), (0, jsx_runtime_1.jsx)("div", { style: right, children: "1 second back" })] }), (0, jsx_runtime_1.jsxs)(layout_1.Row, { align: "center", children: [(0, jsx_runtime_1.jsx)("div", { style: left, children: (0, jsx_runtime_1.jsx)("kbd", { style: key, children: (0, jsx_runtime_1.jsx)(keys_1.ArrowLeft, {}) }) }), (0, jsx_runtime_1.jsx)("div", { style: right, children: "Previous frame" })] }), (0, jsx_runtime_1.jsxs)(layout_1.Row, { align: "center", children: [(0, jsx_runtime_1.jsx)("div", { style: left, children: (0, jsx_runtime_1.jsx)("kbd", { style: key, children: "Space" }) }), (0, jsx_runtime_1.jsx)("div", { style: right, children: "Play / Pause" })] }), (0, jsx_runtime_1.jsxs)(layout_1.Row, { align: "center", children: [(0, jsx_runtime_1.jsx)("div", { style: left, children: (0, jsx_runtime_1.jsx)("kbd", { style: key, children: (0, jsx_runtime_1.jsx)(keys_1.ArrowRight, {}) }) }), (0, jsx_runtime_1.jsx)("div", { style: right, children: "Next frame" })] }), (0, jsx_runtime_1.jsxs)(layout_1.Row, { align: "center", children: [(0, jsx_runtime_1.jsxs)("div", { style: left, children: [(0, jsx_runtime_1.jsx)("kbd", { style: key, children: (0, jsx_runtime_1.jsx)(keys_1.ShiftIcon, {}) }), (0, jsx_runtime_1.jsx)(layout_1.Spacing, { x: 0.3 }), (0, jsx_runtime_1.jsx)("kbd", { style: key, children: (0, jsx_runtime_1.jsx)(keys_1.ArrowRight, {}) })] }), (0, jsx_runtime_1.jsx)("div", { style: right, children: "1 second forward" })] }), (0, jsx_runtime_1.jsxs)(layout_1.Row, { align: "center", children: [(0, jsx_runtime_1.jsx)("div", { style: left, children: (0, jsx_runtime_1.jsx)("kbd", { style: key, children: "A" }) }), (0, jsx_runtime_1.jsx)("div", { style: right, children: "Jump to beginning" })] }), (0, jsx_runtime_1.jsxs)(layout_1.Row, { align: "center", children: [(0, jsx_runtime_1.jsx)("div", { style: left, children: (0, jsx_runtime_1.jsx)("kbd", { style: key, children: "E" }) }), (0, jsx_runtime_1.jsx)("div", { style: right, children: "Jump to end" })] }), (0, jsx_runtime_1.jsxs)(layout_1.Row, { align: "center", children: [(0, jsx_runtime_1.jsx)("div", { style: left, children: (0, jsx_runtime_1.jsx)("kbd", { style: key, children: "J" }) }), (0, jsx_runtime_1.jsx)("div", { style: right, children: "Reverse playback" })] }), (0, jsx_runtime_1.jsxs)(layout_1.Row, { align: "center", children: [(0, jsx_runtime_1.jsx)("div", { style: left, children: (0, jsx_runtime_1.jsx)("kbd", { style: key, children: "K" }) }), (0, jsx_runtime_1.jsx)("div", { style: right, children: "Pause" })] }), (0, jsx_runtime_1.jsxs)(layout_1.Row, { align: "center", children: [(0, jsx_runtime_1.jsx)("div", { style: left, children: (0, jsx_runtime_1.jsx)("kbd", { style: key, children: "L" }) }), (0, jsx_runtime_1.jsx)("div", { style: right, children: "Play / Speed up" })] }), (0, jsx_runtime_1.jsxs)(layout_1.Row, { align: "center", children: [(0, jsx_runtime_1.jsx)("div", { style: left, children: (0, jsx_runtime_1.jsx)("kbd", { style: key, children: "G" }) }), (0, jsx_runtime_1.jsx)("div", { style: right, children: "Go to frame" })] }), (0, jsx_runtime_1.jsxs)(layout_1.Row, { align: "center", children: [(0, jsx_runtime_1.jsx)("div", { style: left, children: (0, jsx_runtime_1.jsx)("kbd", { style: key, children: "Enter" }) }), (0, jsx_runtime_1.jsx)("div", { style: right, children: "Pause & return to playback start" })] }), (0, jsx_runtime_1.jsx)("br", {}), (0, jsx_runtime_1.jsx)("div", { style: title, children: "Sidebar" }), (0, jsx_runtime_1.jsxs)(layout_1.Row, { align: "center", children: [(0, jsx_runtime_1.jsxs)("div", { style: left, children: [(0, jsx_runtime_1.jsx)("kbd", { style: key, children: ShortcutHint_1.cmdOrCtrlCharacter }), (0, jsx_runtime_1.jsx)(layout_1.Spacing, { x: 0.3 }), (0, jsx_runtime_1.jsx)("kbd", { style: key, children: "B" })] }), (0, jsx_runtime_1.jsx)("div", { style: right, children: "Toggle left sidebar" })] }), (0, jsx_runtime_1.jsxs)(layout_1.Row, { align: "center", children: [(0, jsx_runtime_1.jsxs)("div", { style: left, children: [(0, jsx_runtime_1.jsx)("kbd", { style: key, children: ShortcutHint_1.cmdOrCtrlCharacter }), (0, jsx_runtime_1.jsx)(layout_1.Spacing, { x: 0.3 }), (0, jsx_runtime_1.jsx)("kbd", { style: key, children: "J" })] }), (0, jsx_runtime_1.jsx)("div", { style: right, children: "Toggle right sidebar" })] }), (0, jsx_runtime_1.jsxs)(layout_1.Row, { align: "center", children: [(0, jsx_runtime_1.jsxs)("div", { style: left, children: [(0, jsx_runtime_1.jsx)("kbd", { style: key, children: ShortcutHint_1.cmdOrCtrlCharacter }), (0, jsx_runtime_1.jsx)(layout_1.Spacing, { x: 0.3 }), (0, jsx_runtime_1.jsx)("kbd", { style: key, children: "G" })] }), (0, jsx_runtime_1.jsx)("div", { style: right, children: "Toggle both sidebars" })] }), (0, jsx_runtime_1.jsx)("br", {}), (0, jsx_runtime_1.jsx)("div", { style: title, children: "View" }), (0, jsx_runtime_1.jsxs)(layout_1.Row, { align: "center", children: [(0, jsx_runtime_1.jsx)("div", { style: left, children: (0, jsx_runtime_1.jsx)("kbd", { style: key, children: "F" }) }), (0, jsx_runtime_1.jsx)("div", { style: right, children: "Enter fullscreen" })] }), (0, jsx_runtime_1.jsxs)(layout_1.Row, { align: "center", children: [(0, jsx_runtime_1.jsx)("div", { style: left, children: (0, jsx_runtime_1.jsx)("kbd", { style: key, children: "Esc" }) }), (0, jsx_runtime_1.jsx)("div", { style: right, children: "Exit fullscreen" })] })] }), (0, jsx_runtime_1.jsx)(layout_1.Spacing, { x: 8 }), (0, jsx_runtime_1.jsxs)(layout_1.Column, { children: [(0, jsx_runtime_1.jsx)("div", { style: title, children: "Navigation" }), (0, jsx_runtime_1.jsxs)(layout_1.Row, { align: "center", children: [(0, jsx_runtime_1.jsx)("div", { style: left, children: (0, jsx_runtime_1.jsx)("kbd", { style: key, children: "R" }) }), (0, jsx_runtime_1.jsx)("div", { style: right, children: "Render composition" })] }), (0, jsx_runtime_1.jsxs)(layout_1.Row, { align: "center", children: [(0, jsx_runtime_1.jsx)("div", { style: left, children: (0, jsx_runtime_1.jsx)("kbd", { style: key, children: "T" }) }), (0, jsx_runtime_1.jsx)("div", { style: right, children: "Toggle checkerboard background" })] }), (0, jsx_runtime_1.jsxs)(layout_1.Row, { align: "center", children: [(0, jsx_runtime_1.jsx)("div", { style: left, children: (0, jsx_runtime_1.jsx)("kbd", { style: key, children: "?" }) }), (0, jsx_runtime_1.jsx)("div", { style: right, children: "Show keyboard shortcuts" })] }), (0, jsx_runtime_1.jsxs)(layout_1.Row, { align: "center", children: [(0, jsx_runtime_1.jsxs)("div", { style: left, children: [(0, jsx_runtime_1.jsx)("kbd", { style: key, children: ShortcutHint_1.cmdOrCtrlCharacter }), (0, jsx_runtime_1.jsx)(layout_1.Spacing, { x: 0.3 }), (0, jsx_runtime_1.jsx)("kbd", { style: key, children: "K" })] }), (0, jsx_runtime_1.jsx)("div", { style: right, children: "Quick Switcher" })] }), (0, jsx_runtime_1.jsx)("br", {}), (0, jsx_runtime_1.jsx)("div", { style: title, children: "Playback range" }), (0, jsx_runtime_1.jsxs)(layout_1.Row, { align: "center", children: [(0, jsx_runtime_1.jsx)("div", { style: left, children: (0, jsx_runtime_1.jsx)("kbd", { style: key, children: "I" }) }), (0, jsx_runtime_1.jsx)("div", { style: right, children: "Set In Point" })] }), (0, jsx_runtime_1.jsxs)(layout_1.Row, { align: "center", children: [(0, jsx_runtime_1.jsx)("div", { style: left, children: (0, jsx_runtime_1.jsx)("kbd", { style: key, children: "O" }) }), (0, jsx_runtime_1.jsx)("div", { style: right, children: "Set Out Point" })] }), (0, jsx_runtime_1.jsxs)(layout_1.Row, { align: "center", children: [(0, jsx_runtime_1.jsx)("div", { style: left, children: (0, jsx_runtime_1.jsx)("kbd", { style: key, children: "X" }) }), (0, jsx_runtime_1.jsx)("div", { style: right, children: "Clear In/Out Points" })] }), (0, jsx_runtime_1.jsx)("br", {}), (0, jsx_runtime_1.jsx)("div", { style: title, children: "Zoom" }), (0, jsx_runtime_1.jsxs)(layout_1.Row, { align: "center", children: [(0, jsx_runtime_1.jsx)("div", { style: left, children: (0, jsx_runtime_1.jsx)("kbd", { style: key, children: "+" }) }), (0, jsx_runtime_1.jsx)("div", { style: right, children: "Zoom in" })] }), (0, jsx_runtime_1.jsxs)(layout_1.Row, { align: "center", children: [(0, jsx_runtime_1.jsx)("div", { style: left, children: (0, jsx_runtime_1.jsx)("kbd", { style: key, children: "-" }) }), (0, jsx_runtime_1.jsx)("div", { style: right, children: "Zoom out" })] }), (0, jsx_runtime_1.jsxs)(layout_1.Row, { align: "center", children: [(0, jsx_runtime_1.jsx)("div", { style: left, children: (0, jsx_runtime_1.jsx)("kbd", { style: key, children: "0" }) }), (0, jsx_runtime_1.jsx)("div", { style: right, children: "Reset zoom" })] }), ' ', (0, jsx_runtime_1.jsx)("br", {}), (0, jsx_runtime_1.jsx)("div", { style: title, children: "Props Editor" }), (0, jsx_runtime_1.jsxs)(layout_1.Row, { align: "center", children: [(0, jsx_runtime_1.jsxs)("div", { style: left, children: [(0, jsx_runtime_1.jsx)("kbd", { style: key, children: ShortcutHint_1.cmdOrCtrlCharacter }), (0, jsx_runtime_1.jsx)(layout_1.Spacing, { x: 0.3 }), (0, jsx_runtime_1.jsx)("kbd", { style: key, children: "S" })] }), (0, jsx_runtime_1.jsx)("div", { style: right, children: "Save" })] })] })] })] }));
|
|
55
|
+
return ((0, jsx_runtime_1.jsxs)("div", { children: [(0, use_keybinding_1.areKeyboardShortcutsDisabled)() ? ((0, jsx_runtime_1.jsxs)("div", { style: keyboardShortcutsDisabled, children: ["Keyboard shortcuts disabled either due to:", (0, jsx_runtime_1.jsxs)("ul", { style: ul, children: [(0, jsx_runtime_1.jsx)("li", { style: li, children: "a) --disable-keyboard-shortcuts being passed" }), (0, jsx_runtime_1.jsx)("li", { style: li, children: "b) Config.setKeyboardShortcutsEnabled(false) being set or" }), (0, jsx_runtime_1.jsx)("li", { style: li, children: " c) a Remotion version mismatch." })] })] })) : null, (0, jsx_runtime_1.jsxs)(layout_1.Row, { style: container, children: [(0, jsx_runtime_1.jsxs)(layout_1.Column, { children: [(0, jsx_runtime_1.jsx)("div", { style: title, children: "Playback" }), (0, jsx_runtime_1.jsxs)(layout_1.Row, { align: "center", children: [(0, jsx_runtime_1.jsxs)("div", { style: left, children: [(0, jsx_runtime_1.jsx)("kbd", { style: key, children: (0, jsx_runtime_1.jsx)(keys_1.ShiftIcon, {}) }), (0, jsx_runtime_1.jsx)(layout_1.Spacing, { x: 0.3 }), (0, jsx_runtime_1.jsx)("kbd", { style: key, children: (0, jsx_runtime_1.jsx)(keys_1.ArrowLeft, {}) })] }), (0, jsx_runtime_1.jsx)("div", { style: right, children: "1 second back" })] }), (0, jsx_runtime_1.jsxs)(layout_1.Row, { align: "center", children: [(0, jsx_runtime_1.jsx)("div", { style: left, children: (0, jsx_runtime_1.jsx)("kbd", { style: key, children: (0, jsx_runtime_1.jsx)(keys_1.ArrowLeft, {}) }) }), (0, jsx_runtime_1.jsx)("div", { style: right, children: "Previous frame" })] }), (0, jsx_runtime_1.jsxs)(layout_1.Row, { align: "center", children: [(0, jsx_runtime_1.jsx)("div", { style: left, children: (0, jsx_runtime_1.jsx)("kbd", { style: key, children: "Space" }) }), (0, jsx_runtime_1.jsx)("div", { style: right, children: "Play / Pause" })] }), (0, jsx_runtime_1.jsxs)(layout_1.Row, { align: "center", children: [(0, jsx_runtime_1.jsx)("div", { style: left, children: (0, jsx_runtime_1.jsx)("kbd", { style: key, children: (0, jsx_runtime_1.jsx)(keys_1.ArrowRight, {}) }) }), (0, jsx_runtime_1.jsx)("div", { style: right, children: "Next frame" })] }), (0, jsx_runtime_1.jsxs)(layout_1.Row, { align: "center", children: [(0, jsx_runtime_1.jsxs)("div", { style: left, children: [(0, jsx_runtime_1.jsx)("kbd", { style: key, children: (0, jsx_runtime_1.jsx)(keys_1.ShiftIcon, {}) }), (0, jsx_runtime_1.jsx)(layout_1.Spacing, { x: 0.3 }), (0, jsx_runtime_1.jsx)("kbd", { style: key, children: (0, jsx_runtime_1.jsx)(keys_1.ArrowRight, {}) })] }), (0, jsx_runtime_1.jsx)("div", { style: right, children: "1 second forward" })] }), (0, jsx_runtime_1.jsxs)(layout_1.Row, { align: "center", children: [(0, jsx_runtime_1.jsx)("div", { style: left, children: (0, jsx_runtime_1.jsx)("kbd", { style: key, children: "A" }) }), (0, jsx_runtime_1.jsx)("div", { style: right, children: "Jump to beginning" })] }), (0, jsx_runtime_1.jsxs)(layout_1.Row, { align: "center", children: [(0, jsx_runtime_1.jsx)("div", { style: left, children: (0, jsx_runtime_1.jsx)("kbd", { style: key, children: "E" }) }), (0, jsx_runtime_1.jsx)("div", { style: right, children: "Jump to end" })] }), (0, jsx_runtime_1.jsxs)(layout_1.Row, { align: "center", children: [(0, jsx_runtime_1.jsx)("div", { style: left, children: (0, jsx_runtime_1.jsx)("kbd", { style: key, children: "J" }) }), (0, jsx_runtime_1.jsx)("div", { style: right, children: "Reverse playback" })] }), (0, jsx_runtime_1.jsxs)(layout_1.Row, { align: "center", children: [(0, jsx_runtime_1.jsx)("div", { style: left, children: (0, jsx_runtime_1.jsx)("kbd", { style: key, children: "K" }) }), (0, jsx_runtime_1.jsx)("div", { style: right, children: "Pause" })] }), (0, jsx_runtime_1.jsxs)(layout_1.Row, { align: "center", children: [(0, jsx_runtime_1.jsx)("div", { style: left, children: (0, jsx_runtime_1.jsx)("kbd", { style: key, children: "L" }) }), (0, jsx_runtime_1.jsx)("div", { style: right, children: "Play / Speed up" })] }), (0, jsx_runtime_1.jsxs)(layout_1.Row, { align: "center", children: [(0, jsx_runtime_1.jsx)("div", { style: left, children: (0, jsx_runtime_1.jsx)("kbd", { style: key, children: "G" }) }), (0, jsx_runtime_1.jsx)("div", { style: right, children: "Go to frame" })] }), (0, jsx_runtime_1.jsxs)(layout_1.Row, { align: "center", children: [(0, jsx_runtime_1.jsx)("div", { style: left, children: (0, jsx_runtime_1.jsx)("kbd", { style: key, children: "Enter" }) }), (0, jsx_runtime_1.jsx)("div", { style: right, children: "Pause & return to playback start" })] }), (0, jsx_runtime_1.jsx)("br", {}), (0, jsx_runtime_1.jsx)("div", { style: title, children: "Sidebar" }), (0, jsx_runtime_1.jsxs)(layout_1.Row, { align: "center", children: [(0, jsx_runtime_1.jsxs)("div", { style: left, children: [(0, jsx_runtime_1.jsx)("kbd", { style: key, children: ShortcutHint_1.cmdOrCtrlCharacter }), (0, jsx_runtime_1.jsx)(layout_1.Spacing, { x: 0.3 }), (0, jsx_runtime_1.jsx)("kbd", { style: key, children: "B" })] }), (0, jsx_runtime_1.jsx)("div", { style: right, children: "Toggle left sidebar" })] }), (0, jsx_runtime_1.jsxs)(layout_1.Row, { align: "center", children: [(0, jsx_runtime_1.jsxs)("div", { style: left, children: [(0, jsx_runtime_1.jsx)("kbd", { style: key, children: ShortcutHint_1.cmdOrCtrlCharacter }), (0, jsx_runtime_1.jsx)(layout_1.Spacing, { x: 0.3 }), (0, jsx_runtime_1.jsx)("kbd", { style: key, children: "J" })] }), (0, jsx_runtime_1.jsx)("div", { style: right, children: "Toggle right sidebar" })] }), (0, jsx_runtime_1.jsxs)(layout_1.Row, { align: "center", children: [(0, jsx_runtime_1.jsxs)("div", { style: left, children: [(0, jsx_runtime_1.jsx)("kbd", { style: key, children: ShortcutHint_1.cmdOrCtrlCharacter }), (0, jsx_runtime_1.jsx)(layout_1.Spacing, { x: 0.3 }), (0, jsx_runtime_1.jsx)("kbd", { style: key, children: "G" })] }), (0, jsx_runtime_1.jsx)("div", { style: right, children: "Toggle both sidebars" })] }), (0, jsx_runtime_1.jsx)("br", {}), (0, jsx_runtime_1.jsx)("div", { style: title, children: "View" }), (0, jsx_runtime_1.jsxs)(layout_1.Row, { align: "center", children: [(0, jsx_runtime_1.jsx)("div", { style: left, children: (0, jsx_runtime_1.jsx)("kbd", { style: key, children: "F" }) }), (0, jsx_runtime_1.jsx)("div", { style: right, children: "Enter fullscreen" })] }), (0, jsx_runtime_1.jsxs)(layout_1.Row, { align: "center", children: [(0, jsx_runtime_1.jsx)("div", { style: left, children: (0, jsx_runtime_1.jsx)("kbd", { style: key, children: "Esc" }) }), (0, jsx_runtime_1.jsx)("div", { style: right, children: "Exit fullscreen" })] })] }), (0, jsx_runtime_1.jsx)(layout_1.Spacing, { x: 8 }), (0, jsx_runtime_1.jsxs)(layout_1.Column, { children: [(0, jsx_runtime_1.jsx)("div", { style: title, children: "Navigation" }), (0, jsx_runtime_1.jsxs)(layout_1.Row, { align: "center", children: [(0, jsx_runtime_1.jsx)("div", { style: left, children: (0, jsx_runtime_1.jsx)("kbd", { style: key, children: "R" }) }), (0, jsx_runtime_1.jsx)("div", { style: right, children: "Render composition" })] }), (0, jsx_runtime_1.jsxs)(layout_1.Row, { align: "center", children: [(0, jsx_runtime_1.jsx)("div", { style: left, children: (0, jsx_runtime_1.jsx)("kbd", { style: key, children: "T" }) }), (0, jsx_runtime_1.jsx)("div", { style: right, children: "Toggle checkerboard background" })] }), (0, jsx_runtime_1.jsxs)(layout_1.Row, { align: "center", children: [(0, jsx_runtime_1.jsx)("div", { style: left, children: (0, jsx_runtime_1.jsx)("kbd", { style: key, children: "?" }) }), (0, jsx_runtime_1.jsx)("div", { style: right, children: "Show keyboard shortcuts" })] }), (0, jsx_runtime_1.jsxs)(layout_1.Row, { align: "center", children: [(0, jsx_runtime_1.jsxs)("div", { style: left, children: [(0, jsx_runtime_1.jsx)("kbd", { style: key, children: ShortcutHint_1.cmdOrCtrlCharacter }), (0, jsx_runtime_1.jsx)(layout_1.Spacing, { x: 0.3 }), (0, jsx_runtime_1.jsx)("kbd", { style: key, children: "K" })] }), (0, jsx_runtime_1.jsx)("div", { style: right, children: "Quick Switcher" })] }), (0, jsx_runtime_1.jsx)("br", {}), (0, jsx_runtime_1.jsx)("div", { style: title, children: "Playback range" }), (0, jsx_runtime_1.jsxs)(layout_1.Row, { align: "center", children: [(0, jsx_runtime_1.jsx)("div", { style: left, children: (0, jsx_runtime_1.jsx)("kbd", { style: key, children: "I" }) }), (0, jsx_runtime_1.jsx)("div", { style: right, children: "Set In Point" })] }), (0, jsx_runtime_1.jsxs)(layout_1.Row, { align: "center", children: [(0, jsx_runtime_1.jsx)("div", { style: left, children: (0, jsx_runtime_1.jsx)("kbd", { style: key, children: "O" }) }), (0, jsx_runtime_1.jsx)("div", { style: right, children: "Set Out Point" })] }), (0, jsx_runtime_1.jsxs)(layout_1.Row, { align: "center", children: [(0, jsx_runtime_1.jsx)("div", { style: left, children: (0, jsx_runtime_1.jsx)("kbd", { style: key, children: "X" }) }), (0, jsx_runtime_1.jsx)("div", { style: right, children: "Clear In/Out Points" })] }), (0, jsx_runtime_1.jsx)("br", {}), (0, jsx_runtime_1.jsx)("div", { style: title, children: "Zoom" }), (0, jsx_runtime_1.jsxs)(layout_1.Row, { align: "center", children: [(0, jsx_runtime_1.jsx)("div", { style: left, children: (0, jsx_runtime_1.jsx)("kbd", { style: key, children: "+" }) }), (0, jsx_runtime_1.jsx)("div", { style: right, children: "Zoom in" })] }), (0, jsx_runtime_1.jsxs)(layout_1.Row, { align: "center", children: [(0, jsx_runtime_1.jsx)("div", { style: left, children: (0, jsx_runtime_1.jsx)("kbd", { style: key, children: "-" }) }), (0, jsx_runtime_1.jsx)("div", { style: right, children: "Zoom out" })] }), (0, jsx_runtime_1.jsxs)(layout_1.Row, { align: "center", children: [(0, jsx_runtime_1.jsx)("div", { style: left, children: (0, jsx_runtime_1.jsx)("kbd", { style: key, children: "0" }) }), (0, jsx_runtime_1.jsx)("div", { style: right, children: "Reset zoom" })] }), ' ', (0, jsx_runtime_1.jsx)("br", {}), (0, jsx_runtime_1.jsx)("div", { style: title, children: "Props Editor" }), (0, jsx_runtime_1.jsxs)(layout_1.Row, { align: "center", children: [(0, jsx_runtime_1.jsxs)("div", { style: left, children: [(0, jsx_runtime_1.jsx)("kbd", { style: key, children: ShortcutHint_1.cmdOrCtrlCharacter }), (0, jsx_runtime_1.jsx)(layout_1.Spacing, { x: 0.3 }), (0, jsx_runtime_1.jsx)("kbd", { style: key, children: "S" })] }), (0, jsx_runtime_1.jsx)("div", { style: right, children: "Save" })] }), (0, jsx_runtime_1.jsx)("br", {}), (0, jsx_runtime_1.jsx)("div", { style: title, children: "AI" }), (0, jsx_runtime_1.jsxs)(layout_1.Row, { align: "center", children: [(0, jsx_runtime_1.jsxs)("div", { style: left, children: [(0, jsx_runtime_1.jsx)("kbd", { style: key, children: ShortcutHint_1.cmdOrCtrlCharacter }), (0, jsx_runtime_1.jsx)(layout_1.Spacing, { x: 0.3 }), (0, jsx_runtime_1.jsx)("kbd", { style: key, children: "J" })] }), (0, jsx_runtime_1.jsx)("div", { style: right, children: "Ask AI" })] })] })] })] }));
|
|
56
56
|
};
|
|
57
57
|
exports.KeyboardShortcutsExplainer = KeyboardShortcutsExplainer;
|
|
@@ -28,7 +28,7 @@ const panel = {
|
|
|
28
28
|
color: 'white',
|
|
29
29
|
margin: 'auto',
|
|
30
30
|
};
|
|
31
|
-
const ModalContainer = ({ children, onEscape, onOutsideClick }) => {
|
|
32
|
-
return ((0, jsx_runtime_1.jsx)("div", { className: "css-reset", style: backgroundOverlay, role: "dialog", "aria-modal": "true", children: (0, jsx_runtime_1.jsx)(z_index_1.HigherZIndex, { onOutsideClick: onOutsideClick, onEscape: onEscape, children: (0, jsx_runtime_1.jsx)("div", { style: panel, children: children }) }) }));
|
|
31
|
+
const ModalContainer = ({ children, onEscape, onOutsideClick, noZIndex }) => {
|
|
32
|
+
return ((0, jsx_runtime_1.jsx)("div", { className: "css-reset", style: backgroundOverlay, role: "dialog", "aria-modal": "true", children: (0, jsx_runtime_1.jsx)(z_index_1.HigherZIndex, { disabled: noZIndex, onOutsideClick: onOutsideClick, onEscape: onEscape, children: (0, jsx_runtime_1.jsx)("div", { style: panel, children: children }) }) }));
|
|
33
33
|
};
|
|
34
34
|
exports.ModalContainer = ModalContainer;
|
|
@@ -22,11 +22,11 @@ const icon = {
|
|
|
22
22
|
height: 20,
|
|
23
23
|
width: 20,
|
|
24
24
|
};
|
|
25
|
-
const ModalHeader = ({ title }) => {
|
|
25
|
+
const ModalHeader = ({ title, onClose }) => {
|
|
26
26
|
const { setSelectedModal } = (0, react_1.useContext)(modals_1.ModalsContext);
|
|
27
27
|
const onPress = (0, react_1.useCallback)(() => {
|
|
28
28
|
setSelectedModal(null);
|
|
29
29
|
}, [setSelectedModal]);
|
|
30
|
-
return ((0, jsx_runtime_1.jsxs)("div", { style: container, children: [(0, jsx_runtime_1.jsx)("div", { style: titleStyle, children: title }), (0, jsx_runtime_1.jsx)(layout_1.Flex, {}), (0, jsx_runtime_1.jsx)(CancelButton_1.CancelButton, { style: icon, onPress: onPress })] }));
|
|
30
|
+
return ((0, jsx_runtime_1.jsxs)("div", { style: container, children: [(0, jsx_runtime_1.jsx)("div", { style: titleStyle, children: title }), (0, jsx_runtime_1.jsx)(layout_1.Flex, {}), (0, jsx_runtime_1.jsx)(CancelButton_1.CancelButton, { style: icon, onPress: onClose !== null && onClose !== void 0 ? onClose : onPress })] }));
|
|
31
31
|
};
|
|
32
32
|
exports.ModalHeader = ModalHeader;
|
|
@@ -8,6 +8,7 @@ const jsx_runtime_1 = require("react/jsx-runtime");
|
|
|
8
8
|
const react_1 = require("react");
|
|
9
9
|
const client_id_1 = require("../helpers/client-id");
|
|
10
10
|
const modals_1 = require("../state/modals");
|
|
11
|
+
const AskAiModal_1 = require("./AskAiModal");
|
|
11
12
|
const InstallPackage_1 = require("./InstallPackage");
|
|
12
13
|
const DeleteComposition_1 = require("./NewComposition/DeleteComposition");
|
|
13
14
|
const DuplicateComposition_1 = require("./NewComposition/DuplicateComposition");
|
|
@@ -22,6 +23,6 @@ const Modals = ({ readOnlyStudio }) => {
|
|
|
22
23
|
'connected';
|
|
23
24
|
return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [modalContextType && modalContextType.type === 'duplicate-comp' && ((0, jsx_runtime_1.jsx)(DuplicateComposition_1.DuplicateComposition, { compositionType: modalContextType.compositionType, compositionId: modalContextType.compositionId })), modalContextType && modalContextType.type === 'delete-comp' && ((0, jsx_runtime_1.jsx)(DeleteComposition_1.DeleteComposition, { compositionId: modalContextType.compositionId })), modalContextType && modalContextType.type === 'rename-comp' && ((0, jsx_runtime_1.jsx)(RenameComposition_1.RenameComposition, { compositionId: modalContextType.compositionId })), modalContextType && canRender && modalContextType.type === 'render' && ((0, jsx_runtime_1.jsx)(RenderModal_1.RenderModalWithLoader, { initialFrame: modalContextType.initialFrame, compositionId: modalContextType.compositionId, initialVideoImageFormat: modalContextType.initialVideoImageFormat, initialJpegQuality: modalContextType.initialJpegQuality, initialScale: modalContextType.initialScale, initialLogLevel: modalContextType.initialLogLevel, initialOffthreadVideoCacheSizeInBytes: modalContextType.initialOffthreadVideoCacheSizeInBytes, initialOffthreadVideoThreads: modalContextType.initialOffthreadVideoThreads, initialConcurrency: modalContextType.initialConcurrency, maxConcurrency: modalContextType.maxConcurrency, minConcurrency: modalContextType.minConcurrency, initialStillImageFormat: modalContextType.initialStillImageFormat, initialMuted: modalContextType.initialMuted, initialEnforceAudioTrack: modalContextType.initialEnforceAudioTrack, initialProResProfile: modalContextType.initialProResProfile, initialx264Preset: modalContextType.initialx264Preset, initialPixelFormat: modalContextType.initialPixelFormat, initialAudioBitrate: modalContextType.initialAudioBitrate, initialVideoBitrate: modalContextType.initialVideoBitrate, initialEveryNthFrame: modalContextType.initialEveryNthFrame, initialNumberOfGifLoops: modalContextType.initialNumberOfGifLoops, initialDelayRenderTimeout: modalContextType.initialDelayRenderTimeout, initialEnvVariables: modalContextType.initialEnvVariables, initialDisableWebSecurity: modalContextType.initialDisableWebSecurity, initialGl: modalContextType.initialOpenGlRenderer, initialHeadless: modalContextType.initialHeadless, initialIgnoreCertificateErrors: modalContextType.initialIgnoreCertificateErrors, initialEncodingBufferSize: modalContextType.initialEncodingBufferSize, initialEncodingMaxRate: modalContextType.initialEncodingMaxRate, initialUserAgent: modalContextType.initialUserAgent, initialColorSpace: modalContextType.initialColorSpace, initialMultiProcessOnLinux: modalContextType.initialMultiProcessOnLinux, initialRepro: modalContextType.initialRepro, initialBeep: modalContextType.initialBeep, initialForSeamlessAacConcatenation: modalContextType.initialForSeamlessAacConcatenation, defaultProps: modalContextType.defaultProps, inFrameMark: modalContextType.inFrameMark, outFrameMark: modalContextType.outFrameMark, defaultConfigurationAudioCodec: modalContextType.defaultConfigurationAudioCodec, defaultConfigurationVideoCodec: modalContextType.defaultConfigurationVideoCodec, renderTypeOfLastRender: modalContextType.renderTypeOfLastRender, defaultMetadata: modalContextType.defaulMetadata, initialHardwareAcceleration: modalContextType.initialHardwareAcceleration, initialChromeMode: modalContextType.initialChromeMode })), modalContextType &&
|
|
24
25
|
canRender &&
|
|
25
|
-
modalContextType.type === 'render-progress' && ((0, jsx_runtime_1.jsx)(RenderStatusModal_1.RenderStatusModal, { jobId: modalContextType.jobId })), modalContextType && modalContextType.type === 'update' && ((0, jsx_runtime_1.jsx)(UpdateModal_1.UpdateModal, { info: modalContextType.info, knownBugs: modalContextType.knownBugs })), modalContextType && modalContextType.type === 'install-packages' && ((0, jsx_runtime_1.jsx)(InstallPackage_1.InstallPackageModal, { packageManager: modalContextType.packageManager })), modalContextType && modalContextType.type === 'quick-switcher' && ((0, jsx_runtime_1.jsx)(QuickSwitcher_1.default, { readOnlyStudio: readOnlyStudio, invocationTimestamp: modalContextType.invocationTimestamp, initialMode: modalContextType.mode }))] }));
|
|
26
|
+
modalContextType.type === 'render-progress' && ((0, jsx_runtime_1.jsx)(RenderStatusModal_1.RenderStatusModal, { jobId: modalContextType.jobId })), modalContextType && modalContextType.type === 'update' && ((0, jsx_runtime_1.jsx)(UpdateModal_1.UpdateModal, { info: modalContextType.info, knownBugs: modalContextType.knownBugs })), modalContextType && modalContextType.type === 'install-packages' && ((0, jsx_runtime_1.jsx)(InstallPackage_1.InstallPackageModal, { packageManager: modalContextType.packageManager })), modalContextType && modalContextType.type === 'quick-switcher' && ((0, jsx_runtime_1.jsx)(QuickSwitcher_1.default, { readOnlyStudio: readOnlyStudio, invocationTimestamp: modalContextType.invocationTimestamp, initialMode: modalContextType.mode })), (0, jsx_runtime_1.jsx)(AskAiModal_1.AskAiModal, {})] }));
|
|
26
27
|
};
|
|
27
28
|
exports.Modals = Modals;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
type OptionsSidebarPanel = 'input-props' | 'renders';
|
|
2
|
+
type OptionsSidebarPanel = 'input-props' | 'renders' | 'visual-controls';
|
|
3
3
|
export declare const persistSelectedOptionsSidebarPanel: (panel: OptionsSidebarPanel) => void;
|
|
4
4
|
export declare const optionsSidebarTabs: React.RefObject<{
|
|
5
5
|
selectRendersPanel: () => void;
|
|
@@ -6,12 +6,14 @@ const react_1 = require("react");
|
|
|
6
6
|
const remotion_1 = require("remotion");
|
|
7
7
|
const colors_1 = require("../helpers/colors");
|
|
8
8
|
const mobile_layout_1 = require("../helpers/mobile-layout");
|
|
9
|
+
const VisualControls_1 = require("../visual-controls/VisualControls");
|
|
9
10
|
const GlobalPropsEditorUpdateButton_1 = require("./GlobalPropsEditorUpdateButton");
|
|
10
11
|
const DataEditor_1 = require("./RenderModal/DataEditor");
|
|
11
12
|
const deep_equal_1 = require("./RenderModal/SchemaEditor/deep-equal");
|
|
12
13
|
const RenderQueue_1 = require("./RenderQueue");
|
|
13
14
|
const RendersTab_1 = require("./RendersTab");
|
|
14
15
|
const Tabs_1 = require("./Tabs");
|
|
16
|
+
const VisualControlsContent_1 = require("./VisualControls/VisualControlsContent");
|
|
15
17
|
const localStorageKey = 'remotion.sidebarPanel';
|
|
16
18
|
const getSelectedPanel = (readOnlyStudio) => {
|
|
17
19
|
if (readOnlyStudio) {
|
|
@@ -21,6 +23,9 @@ const getSelectedPanel = (readOnlyStudio) => {
|
|
|
21
23
|
if (panel === 'renders') {
|
|
22
24
|
return 'renders';
|
|
23
25
|
}
|
|
26
|
+
if (panel === 'visual-controls') {
|
|
27
|
+
return 'visual-controls';
|
|
28
|
+
}
|
|
24
29
|
return 'input-props';
|
|
25
30
|
};
|
|
26
31
|
const tabsContainer = {
|
|
@@ -35,6 +40,7 @@ const OptionsPanel = ({ readOnlyStudio }) => {
|
|
|
35
40
|
const { props, updateProps, resetUnsaved } = (0, react_1.useContext)(remotion_1.Internals.EditorPropsContext);
|
|
36
41
|
const [saving, setSaving] = (0, react_1.useState)(false);
|
|
37
42
|
const isMobileLayout = (0, mobile_layout_1.useMobileLayout)();
|
|
43
|
+
const visualControlsTabActivated = (0, react_1.useContext)(VisualControls_1.VisualControlsTabActivatedContext);
|
|
38
44
|
const container = (0, react_1.useMemo)(() => ({
|
|
39
45
|
height: '100%',
|
|
40
46
|
width: '100%',
|
|
@@ -52,6 +58,10 @@ const OptionsPanel = ({ readOnlyStudio }) => {
|
|
|
52
58
|
setPanel('renders');
|
|
53
59
|
(0, exports.persistSelectedOptionsSidebarPanel)('renders');
|
|
54
60
|
}, []);
|
|
61
|
+
const onVisualControlsSelected = (0, react_1.useCallback)(() => {
|
|
62
|
+
setPanel('visual-controls');
|
|
63
|
+
(0, exports.persistSelectedOptionsSidebarPanel)('visual-controls');
|
|
64
|
+
}, []);
|
|
55
65
|
(0, react_1.useImperativeHandle)(exports.optionsSidebarTabs, () => {
|
|
56
66
|
return {
|
|
57
67
|
selectRendersPanel: () => {
|
|
@@ -98,7 +108,7 @@ const OptionsPanel = ({ readOnlyStudio }) => {
|
|
|
98
108
|
}, [currentDefaultProps, composition]);
|
|
99
109
|
const reset = (0, react_1.useCallback)((e) => {
|
|
100
110
|
if (e.detail.resetUnsaved) {
|
|
101
|
-
resetUnsaved();
|
|
111
|
+
resetUnsaved(e.detail.resetUnsaved);
|
|
102
112
|
}
|
|
103
113
|
}, [resetUnsaved]);
|
|
104
114
|
(0, react_1.useEffect)(() => {
|
|
@@ -107,6 +117,6 @@ const OptionsPanel = ({ readOnlyStudio }) => {
|
|
|
107
117
|
window.removeEventListener(remotion_1.Internals.PROPS_UPDATED_EXTERNALLY, reset);
|
|
108
118
|
};
|
|
109
119
|
}, [reset]);
|
|
110
|
-
return ((0, jsx_runtime_1.jsxs)("div", { style: container, className: "css-reset", children: [(0, jsx_runtime_1.jsx)("div", { style: tabsContainer, children: (0, jsx_runtime_1.jsxs)(Tabs_1.Tabs, { children: [composition ? ((0, jsx_runtime_1.jsxs)(Tabs_1.Tab, { selected: panel === 'input-props', onClick: onPropsSelected, style: { justifyContent: 'space-between' }, children: ["Props", unsavedChangesExist ? ((0, jsx_runtime_1.jsx)(GlobalPropsEditorUpdateButton_1.GlobalPropsEditorUpdateButton, { compositionId: composition.id, currentDefaultProps: currentDefaultProps })) : null] })) : null, readOnlyStudio ? null : ((0, jsx_runtime_1.jsx)(RendersTab_1.RendersTab, { onClick: onRendersSelected, selected: panel === 'renders' }))] }) }), panel === `input-props` && composition ? ((0, jsx_runtime_1.jsx)(DataEditor_1.DataEditor, { unresolvedComposition: composition, defaultProps: currentDefaultProps, setDefaultProps: setDefaultProps, mayShowSaveButton: true, propsEditType: "default-props", saving: saving, setSaving: setSaving, readOnlyStudio: readOnlyStudio }, composition.id)) : readOnlyStudio ? null : ((0, jsx_runtime_1.jsx)(RenderQueue_1.RenderQueue, {}))] }));
|
|
120
|
+
return ((0, jsx_runtime_1.jsxs)("div", { style: container, className: "css-reset", children: [(0, jsx_runtime_1.jsx)("div", { style: tabsContainer, children: (0, jsx_runtime_1.jsxs)(Tabs_1.Tabs, { children: [visualControlsTabActivated ? ((0, jsx_runtime_1.jsx)(Tabs_1.Tab, { selected: panel === 'visual-controls', onClick: onVisualControlsSelected, children: "Controls" })) : null, composition ? ((0, jsx_runtime_1.jsxs)(Tabs_1.Tab, { selected: panel === 'input-props', onClick: onPropsSelected, style: { justifyContent: 'space-between' }, children: ["Props", unsavedChangesExist ? ((0, jsx_runtime_1.jsx)(GlobalPropsEditorUpdateButton_1.GlobalPropsEditorUpdateButton, { compositionId: composition.id, currentDefaultProps: currentDefaultProps })) : null] })) : null, readOnlyStudio ? null : ((0, jsx_runtime_1.jsx)(RendersTab_1.RendersTab, { onClick: onRendersSelected, selected: panel === 'renders' }))] }) }), panel === `input-props` && composition ? ((0, jsx_runtime_1.jsx)(DataEditor_1.DataEditor, { unresolvedComposition: composition, defaultProps: currentDefaultProps, setDefaultProps: setDefaultProps, mayShowSaveButton: true, propsEditType: "default-props", saving: saving, setSaving: setSaving, readOnlyStudio: readOnlyStudio }, composition.id)) : panel === 'visual-controls' && visualControlsTabActivated ? ((0, jsx_runtime_1.jsx)(VisualControlsContent_1.VisualControlsContent, {})) : readOnlyStudio ? null : ((0, jsx_runtime_1.jsx)(RenderQueue_1.RenderQueue, {}))] }));
|
|
111
121
|
};
|
|
112
122
|
exports.OptionsPanel = OptionsPanel;
|
|
@@ -68,17 +68,17 @@ const containerStyle = (options) => {
|
|
|
68
68
|
backgroundPosition: (0, checkerboard_background_1.getCheckerboardBackgroundPos)(checkerboardSize) /* Must be half of one side of the square */,
|
|
69
69
|
};
|
|
70
70
|
};
|
|
71
|
-
const VideoPreview = ({ canvasSize, contentDimensions, canvasContent, assetMetadata
|
|
71
|
+
const VideoPreview = ({ canvasSize, contentDimensions, canvasContent, assetMetadata }) => {
|
|
72
72
|
if (assetMetadata && assetMetadata.type === 'not-found') {
|
|
73
73
|
return ((0, jsx_runtime_1.jsx)("div", { style: centeredContainer, children: (0, jsx_runtime_1.jsx)("div", { style: label, children: "File does not exist" }) }));
|
|
74
74
|
}
|
|
75
75
|
if (contentDimensions === null) {
|
|
76
76
|
return ((0, jsx_runtime_1.jsx)("div", { style: centeredContainer, children: (0, jsx_runtime_1.jsx)(Spinner_1.Spinner, { duration: 0.5, size: 24 }) }));
|
|
77
77
|
}
|
|
78
|
-
return ((0, jsx_runtime_1.jsx)(CompWhenItHasDimensions, { contentDimensions: contentDimensions, canvasSize: canvasSize, canvasContent: canvasContent, assetMetadata: assetMetadata
|
|
78
|
+
return ((0, jsx_runtime_1.jsx)(CompWhenItHasDimensions, { contentDimensions: contentDimensions, canvasSize: canvasSize, canvasContent: canvasContent, assetMetadata: assetMetadata }));
|
|
79
79
|
};
|
|
80
80
|
exports.VideoPreview = VideoPreview;
|
|
81
|
-
const CompWhenItHasDimensions = ({ contentDimensions, canvasSize, canvasContent, assetMetadata
|
|
81
|
+
const CompWhenItHasDimensions = ({ contentDimensions, canvasSize, canvasContent, assetMetadata }) => {
|
|
82
82
|
const { size: previewSize } = (0, react_1.useContext)(remotion_1.Internals.PreviewSizeContext);
|
|
83
83
|
const { centerX, centerY, yCorrection, xCorrection, scale } = (0, react_1.useMemo)(() => {
|
|
84
84
|
if (contentDimensions === 'none') {
|
|
@@ -114,7 +114,6 @@ const CompWhenItHasDimensions = ({ contentDimensions, canvasSize, canvasContent,
|
|
|
114
114
|
(0, exports.getPreviewFileType)(canvasContent.asset) === 'audio'
|
|
115
115
|
? 'center'
|
|
116
116
|
: 'normal',
|
|
117
|
-
opacity: isRefreshing ? 0.5 : 1,
|
|
118
117
|
};
|
|
119
118
|
}, [
|
|
120
119
|
contentDimensions,
|
|
@@ -124,7 +123,6 @@ const CompWhenItHasDimensions = ({ contentDimensions, canvasSize, canvasContent,
|
|
|
124
123
|
previewSize.translation.y,
|
|
125
124
|
centerY,
|
|
126
125
|
canvasContent,
|
|
127
|
-
isRefreshing,
|
|
128
126
|
]);
|
|
129
127
|
return ((0, jsx_runtime_1.jsx)("div", { style: outer, children: canvasContent.type === 'asset' ? ((0, jsx_runtime_1.jsx)(StaticFilePreview_1.StaticFilePreview, { assetMetadata: assetMetadata, currentAsset: canvasContent.asset })) : canvasContent.type === 'output' ? ((0, jsx_runtime_1.jsx)(RenderPreview_1.RenderPreview, { path: canvasContent.path, assetMetadata: assetMetadata })) : ((0, jsx_runtime_1.jsx)(PortalContainer, { contentDimensions: contentDimensions, scale: scale, xCorrection: xCorrection, yCorrection: yCorrection })) }));
|
|
130
128
|
};
|
|
@@ -62,7 +62,7 @@ const QuickSwitcherResult = ({ result, selected }) => {
|
|
|
62
62
|
commandCtrlKey: false,
|
|
63
63
|
event: 'keydown',
|
|
64
64
|
preventDefault: true,
|
|
65
|
-
// Input will be focused while
|
|
65
|
+
// Input will be focused while selection
|
|
66
66
|
triggerIfInputFieldFocused: true,
|
|
67
67
|
keepRegisteredWhenNotHighestContext: false,
|
|
68
68
|
});
|