@remotion/cli 4.1.0-alpha11 → 4.1.0-alpha12
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/codemods/update-default-props.js +5 -0
- package/dist/config/image-format.d.ts +1 -1
- package/dist/config/index.d.ts +1 -1
- package/dist/editor/components/AssetSelector.d.ts +2 -0
- package/dist/editor/components/AssetSelector.js +85 -0
- package/dist/editor/components/AssetSelectorItem.d.ts +6 -0
- package/dist/editor/components/AssetSelectorItem.js +125 -0
- package/dist/editor/components/CompositionSelector.js +3 -3
- package/dist/editor/components/CopyButton.js +8 -2
- package/dist/editor/components/CurrentCompositionSideEffects.js +9 -5
- package/dist/editor/components/ExplorerPanel.d.ts +8 -0
- package/dist/editor/components/ExplorerPanel.js +67 -0
- package/dist/editor/components/FullscreenToggle.js +23 -1
- package/dist/editor/components/InlineAction.d.ts +1 -0
- package/dist/editor/components/InlineAction.js +2 -2
- package/dist/editor/components/KeyboardShortcutsExplainer.js +1 -1
- package/dist/editor/components/NewComposition/RemInput.d.ts +2 -2
- package/dist/editor/components/NewComposition/RemInputTypeColor.d.ts +1 -1
- package/dist/editor/components/OptionsPanel.d.ts +8 -0
- package/dist/editor/components/OptionsPanel.js +112 -0
- package/dist/editor/components/RenderModal/CliCopyButton.js +2 -1
- package/dist/editor/components/RenderModal/MultiRangeSlider.js +4 -7
- package/dist/editor/components/RenderModal/RenderModal.js +7 -7
- package/dist/editor/components/RenderModal/RenderModalJSONPropsEditor.js +4 -0
- package/dist/editor/components/RenderModal/SchemaEditor/SchemaEditor.js +5 -1
- package/dist/editor/components/RenderModal/SchemaEditor/ZodDiscriminatedUnionEditor.d.ts +17 -0
- package/dist/editor/components/RenderModal/SchemaEditor/ZodDiscriminatedUnionEditor.js +83 -0
- package/dist/editor/components/RenderModal/SchemaEditor/ZodObjectEditor.d.ts +5 -0
- package/dist/editor/components/RenderModal/SchemaEditor/ZodObjectEditor.js +5 -1
- package/dist/editor/components/RenderModal/SchemaEditor/ZodOrNullishEditor.js +1 -1
- package/dist/editor/components/RenderModal/SchemaEditor/ZodSwitch.js +5 -1
- package/dist/editor/components/RenderQueue/RenderQueueOpenInFolder.js +2 -1
- package/dist/editor/components/TopPanel.js +4 -8
- package/dist/editor/components/UpdateModal/UpdateModal.js +4 -1
- package/dist/editor/helpers/colors.d.ts +1 -1
- package/dist/editor/helpers/copy-text.d.ts +1 -1
- package/dist/editor/helpers/copy-text.js +15 -10
- package/dist/editor/helpers/document-title.d.ts +4 -0
- package/dist/editor/helpers/document-title.js +60 -0
- package/dist/editor/helpers/pick-color.js +12 -7
- package/dist/editor/helpers/render-modal-sections.d.ts +0 -1
- package/dist/editor/icons/clipboard.d.ts +4 -0
- package/dist/editor/icons/clipboard.js +6 -0
- package/dist/editor/icons/file.d.ts +3 -1
- package/dist/editor/icons/file.js +1 -1
- package/dist/editor/icons/folder.d.ts +3 -0
- package/dist/editor/icons/folder.js +5 -1
- package/dist/event-source-events.d.ts +1 -0
- package/dist/event-source.js +1 -0
- package/dist/get-cli-options.d.ts +1 -1
- package/dist/get-input-props.js +2 -1
- package/dist/handle-common-errors.js +2 -2
- package/dist/index.d.ts +6 -5
- package/dist/index.js +1 -1
- package/dist/make-on-download.d.ts +12 -0
- package/dist/make-on-download.js +40 -0
- package/dist/parse-command-line.d.ts +1 -0
- package/dist/preview-server/public-folder.js +3 -0
- package/dist/preview-server/render-queue/process-still.js +1 -1
- package/dist/preview-server/routes.d.ts +0 -1
- package/dist/preview-server/routes.js +1 -0
- package/dist/progress-bar.js +2 -7
- package/dist/render-flows/render.js +17 -25
- package/dist/render-flows/still.d.ts +2 -2
- package/dist/render-flows/still.js +30 -40
- package/dist/still.js +1 -1
- package/dist/studio.js +8 -1
- package/dist/upgrade.d.ts +1 -1
- package/dist/upgrade.js +11 -4
- package/package.json +8 -8
- package/styles/styles.css +7 -17
|
@@ -56,6 +56,11 @@ const findEndPosition = (input, currentPosition) => {
|
|
|
56
56
|
const nextEnd = input.indexOf('}', asConstVersion + currentPosition + 1);
|
|
57
57
|
return nextEnd - 1;
|
|
58
58
|
}
|
|
59
|
+
// When updating e.g. `defaultProps={{union: {type: 'car' as const, color: ''}}}`
|
|
60
|
+
const nextTriple = input.indexOf('}}}', currentPosition + 1);
|
|
61
|
+
if (nextTriple !== -1) {
|
|
62
|
+
return nextTriple + 1;
|
|
63
|
+
}
|
|
59
64
|
const next = input.indexOf('}}', currentPosition + 1);
|
|
60
65
|
if (next !== -1) {
|
|
61
66
|
return next;
|
|
@@ -2,4 +2,4 @@ import type { StillImageFormat, VideoImageFormat } from '@remotion/renderer';
|
|
|
2
2
|
export declare const setStillImageFormat: (format: StillImageFormat) => void;
|
|
3
3
|
export declare const setVideoImageFormat: (format: VideoImageFormat) => void;
|
|
4
4
|
export declare const getUserPreferredStillImageFormat: () => "png" | "jpeg" | "pdf" | "webp" | undefined;
|
|
5
|
-
export declare const getUserPreferredVideoImageFormat: () => "
|
|
5
|
+
export declare const getUserPreferredVideoImageFormat: () => "none" | "png" | "jpeg" | undefined;
|
package/dist/config/index.d.ts
CHANGED
|
@@ -297,7 +297,7 @@ export declare const ConfigInternals: {
|
|
|
297
297
|
getShouldOutputImageSequence: (frameRange: FrameRange | null) => boolean;
|
|
298
298
|
getDotEnvLocation: () => string | null;
|
|
299
299
|
getUserPreferredStillImageFormat: () => "png" | "jpeg" | "pdf" | "webp" | undefined;
|
|
300
|
-
getUserPreferredVideoImageFormat: () => "
|
|
300
|
+
getUserPreferredVideoImageFormat: () => "none" | "png" | "jpeg" | undefined;
|
|
301
301
|
getWebpackOverrideFn: () => WebpackOverrideFn;
|
|
302
302
|
getWebpackCaching: () => boolean;
|
|
303
303
|
getOutputLocation: () => string | null;
|
|
@@ -0,0 +1,85 @@
|
|
|
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 (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
+
exports.AssetSelector = void 0;
|
|
27
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
28
|
+
const react_1 = __importStar(require("react"));
|
|
29
|
+
const remotion_1 = require("remotion");
|
|
30
|
+
const event_source_1 = require("../../event-source");
|
|
31
|
+
const colors_1 = require("../helpers/colors");
|
|
32
|
+
const z_index_1 = require("../state/z-index");
|
|
33
|
+
const AssetSelectorItem_1 = require("./AssetSelectorItem");
|
|
34
|
+
const styles_1 = require("./Menu/styles");
|
|
35
|
+
const container = {
|
|
36
|
+
display: 'flex',
|
|
37
|
+
flexDirection: 'column',
|
|
38
|
+
flex: 1,
|
|
39
|
+
overflow: 'hidden',
|
|
40
|
+
backgroundColor: colors_1.BACKGROUND,
|
|
41
|
+
};
|
|
42
|
+
// Some redundancy with packages/cli/src/editor/components/RenderModal/SchemaEditor/SchemaErrorMessages.tsx
|
|
43
|
+
const emptyState = {
|
|
44
|
+
display: 'flex',
|
|
45
|
+
flex: 1,
|
|
46
|
+
justifyContent: 'center',
|
|
47
|
+
alignItems: 'center',
|
|
48
|
+
textAlign: 'center',
|
|
49
|
+
padding: '0 12px',
|
|
50
|
+
};
|
|
51
|
+
const label = {
|
|
52
|
+
color: colors_1.LIGHT_TEXT,
|
|
53
|
+
lineHeight: 1.5,
|
|
54
|
+
fontSize: 14,
|
|
55
|
+
};
|
|
56
|
+
const list = {
|
|
57
|
+
overflowY: 'auto',
|
|
58
|
+
paddingTop: 4,
|
|
59
|
+
paddingBottom: 4,
|
|
60
|
+
};
|
|
61
|
+
const AssetSelector = () => {
|
|
62
|
+
const { tabIndex } = (0, z_index_1.useZIndex)();
|
|
63
|
+
const [{ publicFolderExists, staticFiles }, setState] = react_1.default.useState(() => {
|
|
64
|
+
return {
|
|
65
|
+
staticFiles: (0, remotion_1.getStaticFiles)(),
|
|
66
|
+
publicFolderExists: window.remotion_publicFolderExists,
|
|
67
|
+
};
|
|
68
|
+
});
|
|
69
|
+
(0, react_1.useEffect)(() => {
|
|
70
|
+
const onUpdate = () => {
|
|
71
|
+
setState({
|
|
72
|
+
staticFiles: (0, remotion_1.getStaticFiles)(),
|
|
73
|
+
publicFolderExists: window.remotion_publicFolderExists,
|
|
74
|
+
});
|
|
75
|
+
};
|
|
76
|
+
const unsub = (0, event_source_1.subscribeToEvent)('new-public-folder', onUpdate);
|
|
77
|
+
return () => {
|
|
78
|
+
unsub();
|
|
79
|
+
};
|
|
80
|
+
}, []);
|
|
81
|
+
return ((0, jsx_runtime_1.jsx)("div", { style: container, children: staticFiles.length === 0 ? (publicFolderExists ? ((0, jsx_runtime_1.jsx)("div", { style: emptyState, children: (0, jsx_runtime_1.jsxs)("div", { style: label, children: ["To add assets, place a file in the", ' ', (0, jsx_runtime_1.jsx)("code", { style: styles_1.inlineCodeSnippet, children: "public" }), " folder of your project."] }) })) : ((0, jsx_runtime_1.jsx)("div", { style: emptyState, children: (0, jsx_runtime_1.jsxs)("div", { style: label, children: ["To add assets, create a folder called", ' ', (0, jsx_runtime_1.jsx)("code", { style: styles_1.inlineCodeSnippet, children: "public" }), " in the root of your project and place a file in it."] }) }))) : ((0, jsx_runtime_1.jsx)("div", { className: "__remotion-vertical-scrollbar", style: list, children: staticFiles.map((file) => {
|
|
82
|
+
return ((0, jsx_runtime_1.jsx)(AssetSelectorItem_1.AssetSelectorItem, { item: file, tabIndex: tabIndex }, `${file.src}`));
|
|
83
|
+
}) })) }));
|
|
84
|
+
};
|
|
85
|
+
exports.AssetSelector = AssetSelector;
|
|
@@ -0,0 +1,125 @@
|
|
|
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 (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
+
exports.AssetSelectorItem = void 0;
|
|
27
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
28
|
+
const react_1 = __importStar(require("react"));
|
|
29
|
+
const colors_1 = require("../helpers/colors");
|
|
30
|
+
const copy_text_1 = require("../helpers/copy-text");
|
|
31
|
+
const clipboard_1 = require("../icons/clipboard");
|
|
32
|
+
const file_1 = require("../icons/file");
|
|
33
|
+
const folder_1 = require("../icons/folder");
|
|
34
|
+
const InlineAction_1 = require("./InlineAction");
|
|
35
|
+
const layout_1 = require("./layout");
|
|
36
|
+
const NotificationCenter_1 = require("./Notifications/NotificationCenter");
|
|
37
|
+
const actions_1 = require("./RenderQueue/actions");
|
|
38
|
+
const ASSET_ITEM_HEIGHT = 32;
|
|
39
|
+
const itemStyle = {
|
|
40
|
+
paddingRight: 10,
|
|
41
|
+
paddingTop: 6,
|
|
42
|
+
paddingBottom: 6,
|
|
43
|
+
fontSize: 13,
|
|
44
|
+
display: 'flex',
|
|
45
|
+
textDecoration: 'none',
|
|
46
|
+
cursor: 'default',
|
|
47
|
+
alignItems: 'center',
|
|
48
|
+
marginBottom: 1,
|
|
49
|
+
appearance: 'none',
|
|
50
|
+
border: 'none',
|
|
51
|
+
width: '100%',
|
|
52
|
+
textAlign: 'left',
|
|
53
|
+
backgroundColor: colors_1.BACKGROUND,
|
|
54
|
+
height: ASSET_ITEM_HEIGHT,
|
|
55
|
+
};
|
|
56
|
+
const labelStyle = {
|
|
57
|
+
textAlign: 'left',
|
|
58
|
+
textDecoration: 'none',
|
|
59
|
+
fontSize: 13,
|
|
60
|
+
flex: '1 1 0%',
|
|
61
|
+
whiteSpace: 'nowrap',
|
|
62
|
+
overflow: 'hidden',
|
|
63
|
+
textOverflow: 'ellipsis',
|
|
64
|
+
};
|
|
65
|
+
const iconStyle = {
|
|
66
|
+
width: 18,
|
|
67
|
+
height: 18,
|
|
68
|
+
flexShrink: 0,
|
|
69
|
+
};
|
|
70
|
+
const revealIconStyle = {
|
|
71
|
+
height: 12,
|
|
72
|
+
color: 'currentColor',
|
|
73
|
+
};
|
|
74
|
+
const AssetSelectorItem = ({ item, tabIndex }) => {
|
|
75
|
+
const [hovered, setHovered] = (0, react_1.useState)(false);
|
|
76
|
+
const onPointerEnter = (0, react_1.useCallback)(() => {
|
|
77
|
+
setHovered(true);
|
|
78
|
+
}, []);
|
|
79
|
+
const onPointerLeave = (0, react_1.useCallback)(() => {
|
|
80
|
+
setHovered(false);
|
|
81
|
+
}, []);
|
|
82
|
+
const style = (0, react_1.useMemo)(() => {
|
|
83
|
+
return {
|
|
84
|
+
...itemStyle,
|
|
85
|
+
paddingLeft: 12,
|
|
86
|
+
color: colors_1.LIGHT_TEXT,
|
|
87
|
+
};
|
|
88
|
+
}, []);
|
|
89
|
+
const label = (0, react_1.useMemo)(() => {
|
|
90
|
+
return {
|
|
91
|
+
...labelStyle,
|
|
92
|
+
color: colors_1.LIGHT_TEXT,
|
|
93
|
+
};
|
|
94
|
+
}, []);
|
|
95
|
+
const renderFileExplorerAction = (0, react_1.useCallback)((color) => {
|
|
96
|
+
return (0, jsx_runtime_1.jsx)(folder_1.ExpandedFolderIconSolid, { style: revealIconStyle, color: color });
|
|
97
|
+
}, []);
|
|
98
|
+
const renderCopyAction = (0, react_1.useCallback)((color) => {
|
|
99
|
+
return (0, jsx_runtime_1.jsx)(clipboard_1.ClipboardIcon, { style: revealIconStyle, color: color });
|
|
100
|
+
}, []);
|
|
101
|
+
const revealInExplorer = react_1.default.useCallback(() => {
|
|
102
|
+
(0, actions_1.openInFileExplorer)({
|
|
103
|
+
directory: window.remotion_publicFolderExists + '/' + item.name,
|
|
104
|
+
}).catch((err) => {
|
|
105
|
+
(0, NotificationCenter_1.sendErrorNotification)(`Could not open file: ${err.message}`);
|
|
106
|
+
});
|
|
107
|
+
}, [item.name]);
|
|
108
|
+
const copyToClipboard = (0, react_1.useCallback)(() => {
|
|
109
|
+
(0, copy_text_1.copyText)(`staticFile("${item.name}")`)
|
|
110
|
+
.then(() => {
|
|
111
|
+
var _a;
|
|
112
|
+
(_a = NotificationCenter_1.notificationCenter.current) === null || _a === void 0 ? void 0 : _a.addNotification({
|
|
113
|
+
content: `Copied 'staticFile("${item.name}")' to clipboard`,
|
|
114
|
+
created: Date.now(),
|
|
115
|
+
duration: 1000,
|
|
116
|
+
id: String(Math.random()),
|
|
117
|
+
});
|
|
118
|
+
})
|
|
119
|
+
.catch((err) => {
|
|
120
|
+
(0, NotificationCenter_1.sendErrorNotification)(`Could not copy: ${err.message}`);
|
|
121
|
+
});
|
|
122
|
+
}, [item.name]);
|
|
123
|
+
return ((0, jsx_runtime_1.jsx)(layout_1.Row, { align: "center", children: (0, jsx_runtime_1.jsxs)("div", { style: style, onPointerEnter: onPointerEnter, onPointerLeave: onPointerLeave, tabIndex: tabIndex, title: item.name, children: [(0, jsx_runtime_1.jsx)(file_1.FileIcon, { style: iconStyle, color: colors_1.LIGHT_TEXT }), (0, jsx_runtime_1.jsx)(layout_1.Spacing, { x: 1 }), (0, jsx_runtime_1.jsx)("div", { style: label, children: item.name }), hovered ? ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(layout_1.Spacing, { x: 0.5 }), (0, jsx_runtime_1.jsx)(InlineAction_1.InlineAction, { title: "Copy staticFile() name", renderAction: renderCopyAction, onClick: copyToClipboard }), (0, jsx_runtime_1.jsx)(layout_1.Spacing, { x: 0.5 }), (0, jsx_runtime_1.jsx)(InlineAction_1.InlineAction, { title: "Open in Explorer", renderAction: renderFileExplorerAction, onClick: revealInExplorer })] })) : null] }) }));
|
|
124
|
+
};
|
|
125
|
+
exports.AssetSelectorItem = AssetSelectorItem;
|
|
@@ -12,10 +12,10 @@ const CompositionSelectorItem_1 = require("./CompositionSelectorItem");
|
|
|
12
12
|
const CurrentComposition_1 = require("./CurrentComposition");
|
|
13
13
|
const InitialCompositionLoader_1 = require("./InitialCompositionLoader");
|
|
14
14
|
const container = {
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
width: '100%',
|
|
15
|
+
display: 'flex',
|
|
16
|
+
flexDirection: 'column',
|
|
18
17
|
flex: 1,
|
|
18
|
+
overflow: 'hidden',
|
|
19
19
|
backgroundColor: colors_1.BACKGROUND,
|
|
20
20
|
};
|
|
21
21
|
const list = {
|
|
@@ -6,6 +6,7 @@ const react_1 = require("react");
|
|
|
6
6
|
const Button_1 = require("../../preview-server/error-overlay/remotion-overlay/Button");
|
|
7
7
|
const copy_text_1 = require("../helpers/copy-text");
|
|
8
8
|
const layout_1 = require("./layout");
|
|
9
|
+
const NotificationCenter_1 = require("./Notifications/NotificationCenter");
|
|
9
10
|
const iconStyle = {
|
|
10
11
|
width: 16,
|
|
11
12
|
height: 16,
|
|
@@ -22,8 +23,13 @@ const labelStyle = {
|
|
|
22
23
|
const CopyButton = ({ textToCopy, label, labelWhenCopied }) => {
|
|
23
24
|
const [copied, setCopied] = (0, react_1.useState)(false);
|
|
24
25
|
const onClick = (0, react_1.useCallback)(() => {
|
|
25
|
-
(0, copy_text_1.copyText)(textToCopy)
|
|
26
|
-
|
|
26
|
+
(0, copy_text_1.copyText)(textToCopy)
|
|
27
|
+
.then(() => {
|
|
28
|
+
setCopied(Date.now());
|
|
29
|
+
})
|
|
30
|
+
.catch((err) => {
|
|
31
|
+
(0, NotificationCenter_1.sendErrorNotification)(`Could not copy: ${err.message}`);
|
|
32
|
+
});
|
|
27
33
|
}, [textToCopy]);
|
|
28
34
|
(0, react_1.useEffect)(() => {
|
|
29
35
|
if (!copied) {
|
|
@@ -4,17 +4,21 @@ exports.CurrentCompositionKeybindings = exports.TitleUpdater = void 0;
|
|
|
4
4
|
const react_1 = require("react");
|
|
5
5
|
const remotion_1 = require("remotion");
|
|
6
6
|
const client_id_1 = require("../helpers/client-id");
|
|
7
|
+
const document_title_1 = require("../helpers/document-title");
|
|
7
8
|
const use_keybinding_1 = require("../helpers/use-keybinding");
|
|
8
9
|
const NotificationCenter_1 = require("./Notifications/NotificationCenter");
|
|
10
|
+
const context_1 = require("./RenderQueue/context");
|
|
9
11
|
const TitleUpdater = () => {
|
|
10
12
|
const video = remotion_1.Internals.useVideo();
|
|
13
|
+
const renderQueue = (0, react_1.useContext)(context_1.RenderQueueContext);
|
|
14
|
+
const { jobs } = renderQueue;
|
|
11
15
|
(0, react_1.useEffect)(() => {
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
return;
|
|
15
|
-
}
|
|
16
|
-
document.title = `${video.id} / ${window.remotion_projectName} - Remotion Studio`;
|
|
16
|
+
var _a;
|
|
17
|
+
(0, document_title_1.setCurrentVideoId)((_a = video === null || video === void 0 ? void 0 : video.id) !== null && _a !== void 0 ? _a : null);
|
|
17
18
|
}, [video]);
|
|
19
|
+
(0, react_1.useEffect)(() => {
|
|
20
|
+
(0, document_title_1.setRenderJobs)(jobs);
|
|
21
|
+
}, [jobs]);
|
|
18
22
|
return null;
|
|
19
23
|
};
|
|
20
24
|
exports.TitleUpdater = TitleUpdater;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
type OptionsSidebarPanel = 'compositions' | 'assets';
|
|
3
|
+
export declare const persistSelectedOptionsSidebarPanel: (panel: OptionsSidebarPanel) => void;
|
|
4
|
+
export declare const optionsSidebarTabs: import("react").RefObject<{
|
|
5
|
+
selectRendersPanel: () => void;
|
|
6
|
+
}>;
|
|
7
|
+
export declare const ExplorerPanel: React.FC<{}>;
|
|
8
|
+
export {};
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ExplorerPanel = exports.optionsSidebarTabs = exports.persistSelectedOptionsSidebarPanel = 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 colors_1 = require("../helpers/colors");
|
|
8
|
+
const AssetSelector_1 = require("./AssetSelector");
|
|
9
|
+
const CompositionSelector_1 = require("./CompositionSelector");
|
|
10
|
+
const Tabs_1 = require("./Tabs");
|
|
11
|
+
const container = {
|
|
12
|
+
height: '100%',
|
|
13
|
+
width: '100%',
|
|
14
|
+
maxWidth: '100%',
|
|
15
|
+
display: 'flex',
|
|
16
|
+
flexDirection: 'column',
|
|
17
|
+
flex: 1,
|
|
18
|
+
};
|
|
19
|
+
const localStorageKey = 'remotion.sidebarPanel';
|
|
20
|
+
const getSelectedPanel = () => {
|
|
21
|
+
const panel = localStorage.getItem(localStorageKey);
|
|
22
|
+
if (panel === 'assets') {
|
|
23
|
+
return 'assets';
|
|
24
|
+
}
|
|
25
|
+
return 'compositions';
|
|
26
|
+
};
|
|
27
|
+
const tabsContainer = {
|
|
28
|
+
backgroundColor: colors_1.BACKGROUND,
|
|
29
|
+
};
|
|
30
|
+
const persistSelectedOptionsSidebarPanel = (panel) => {
|
|
31
|
+
localStorage.setItem(localStorageKey, panel);
|
|
32
|
+
};
|
|
33
|
+
exports.persistSelectedOptionsSidebarPanel = persistSelectedOptionsSidebarPanel;
|
|
34
|
+
exports.optionsSidebarTabs = (0, react_1.createRef)();
|
|
35
|
+
const ExplorerPanel = () => {
|
|
36
|
+
const [panel, setPanel] = (0, react_1.useState)(() => getSelectedPanel());
|
|
37
|
+
const onCompositionsSelected = (0, react_1.useCallback)(() => {
|
|
38
|
+
setPanel('compositions');
|
|
39
|
+
(0, exports.persistSelectedOptionsSidebarPanel)('compositions');
|
|
40
|
+
}, []);
|
|
41
|
+
const onAssetsSelected = (0, react_1.useCallback)(() => {
|
|
42
|
+
setPanel('assets');
|
|
43
|
+
(0, exports.persistSelectedOptionsSidebarPanel)('assets');
|
|
44
|
+
}, []);
|
|
45
|
+
(0, react_1.useImperativeHandle)(exports.optionsSidebarTabs, () => {
|
|
46
|
+
return {
|
|
47
|
+
selectRendersPanel: () => {
|
|
48
|
+
setPanel('assets');
|
|
49
|
+
(0, exports.persistSelectedOptionsSidebarPanel)('assets');
|
|
50
|
+
},
|
|
51
|
+
};
|
|
52
|
+
}, []);
|
|
53
|
+
const { compositions, currentComposition } = (0, react_1.useContext)(remotion_1.Internals.CompositionManager);
|
|
54
|
+
const composition = (0, react_1.useMemo)(() => {
|
|
55
|
+
for (const comp of compositions) {
|
|
56
|
+
if (comp.id === currentComposition) {
|
|
57
|
+
return comp;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
return null;
|
|
61
|
+
}, [compositions, currentComposition]);
|
|
62
|
+
if (composition === null) {
|
|
63
|
+
return null;
|
|
64
|
+
}
|
|
65
|
+
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: [(0, jsx_runtime_1.jsx)(Tabs_1.Tab, { selected: panel === 'compositions', onClick: onCompositionsSelected, children: "Compositions" }), (0, jsx_runtime_1.jsx)(Tabs_1.Tab, { selected: panel === 'assets', onClick: onAssetsSelected, children: "Assets" })] }) }), panel === 'compositions' ? (0, jsx_runtime_1.jsx)(CompositionSelector_1.CompositionSelector, {}) : (0, jsx_runtime_1.jsx)(AssetSelector_1.AssetSelector, {})] }));
|
|
66
|
+
};
|
|
67
|
+
exports.ExplorerPanel = ExplorerPanel;
|
|
@@ -3,10 +3,19 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.FullScreenToggle = void 0;
|
|
4
4
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
5
|
const react_1 = require("react");
|
|
6
|
+
const truthy_1 = require("../../truthy");
|
|
7
|
+
const use_keybinding_1 = require("../helpers/use-keybinding");
|
|
6
8
|
const canvas_ref_1 = require("../state/canvas-ref");
|
|
7
9
|
const preview_size_1 = require("../state/preview-size");
|
|
8
10
|
const ControlButton_1 = require("./ControlButton");
|
|
11
|
+
const accessibilityLabel = [
|
|
12
|
+
'Enter fullscreen preview',
|
|
13
|
+
(0, use_keybinding_1.areKeyboardShortcutsDisabled)() ? null : '(F)',
|
|
14
|
+
]
|
|
15
|
+
.filter(truthy_1.truthy)
|
|
16
|
+
.join(' ');
|
|
9
17
|
const FullScreenToggle = () => {
|
|
18
|
+
const keybindings = (0, use_keybinding_1.useKeybinding)();
|
|
10
19
|
const { setSize } = (0, react_1.useContext)(preview_size_1.PreviewSizeContext);
|
|
11
20
|
const onClick = (0, react_1.useCallback)(() => {
|
|
12
21
|
var _a;
|
|
@@ -20,6 +29,19 @@ const FullScreenToggle = () => {
|
|
|
20
29
|
},
|
|
21
30
|
}));
|
|
22
31
|
}, [setSize]);
|
|
23
|
-
|
|
32
|
+
(0, react_1.useEffect)(() => {
|
|
33
|
+
const f = keybindings.registerKeybinding({
|
|
34
|
+
event: 'keydown',
|
|
35
|
+
key: 'f',
|
|
36
|
+
callback: onClick,
|
|
37
|
+
commandCtrlKey: false,
|
|
38
|
+
preventDefault: true,
|
|
39
|
+
triggerIfInputFieldFocused: false,
|
|
40
|
+
});
|
|
41
|
+
return () => {
|
|
42
|
+
f.unregister();
|
|
43
|
+
};
|
|
44
|
+
}, [keybindings, onClick]);
|
|
45
|
+
return ((0, jsx_runtime_1.jsx)(ControlButton_1.ControlButton, { title: accessibilityLabel, "aria-label": accessibilityLabel, onClick: onClick, children: (0, jsx_runtime_1.jsx)("svg", { style: { width: 18, height: 18 }, viewBox: "0 0 448 512", fill: "#fff", children: (0, jsx_runtime_1.jsx)("path", { d: "M0 180V56c0-13.3 10.7-24 24-24h124c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H64v84c0 6.6-5.4 12-12 12H12c-6.6 0-12-5.4-12-12zM288 44v40c0 6.6 5.4 12 12 12h84v84c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12V56c0-13.3-10.7-24-24-24H300c-6.6 0-12 5.4-12 12zm148 276h-40c-6.6 0-12 5.4-12 12v84h-84c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h124c13.3 0 24-10.7 24-24V332c0-6.6-5.4-12-12-12zM160 468v-40c0-6.6-5.4-12-12-12H64v-84c0-6.6-5.4-12-12-12H12c-6.6 0-12 5.4-12 12v124c0 13.3 10.7 24 24 24h124c6.6 0 12-5.4 12-12z" }) }) }));
|
|
24
46
|
};
|
|
25
47
|
exports.FullScreenToggle = FullScreenToggle;
|
|
@@ -5,7 +5,7 @@ const jsx_runtime_1 = require("react/jsx-runtime");
|
|
|
5
5
|
const react_1 = require("react");
|
|
6
6
|
const colors_1 = require("../helpers/colors");
|
|
7
7
|
const z_index_1 = require("../state/z-index");
|
|
8
|
-
const InlineAction = ({ renderAction, onClick, disabled }) => {
|
|
8
|
+
const InlineAction = ({ renderAction, onClick, disabled, title }) => {
|
|
9
9
|
const { tabIndex } = (0, z_index_1.useZIndex)();
|
|
10
10
|
const [hovered, setHovered] = (0, react_1.useState)(false);
|
|
11
11
|
const onPointerEnter = (0, react_1.useCallback)(() => {
|
|
@@ -29,6 +29,6 @@ const InlineAction = ({ renderAction, onClick, disabled }) => {
|
|
|
29
29
|
pointerEvents: disabled ? 'none' : 'auto',
|
|
30
30
|
};
|
|
31
31
|
}, [disabled, hovered]);
|
|
32
|
-
return ((0, jsx_runtime_1.jsx)("a", { type: "button", onPointerEnter: onPointerEnter, onPointerLeave: onPointerLeave, onClick: onClick, style: style, tabIndex: tabIndex, children: renderAction(hovered ? 'white' : colors_1.LIGHT_TEXT) }));
|
|
32
|
+
return ((0, jsx_runtime_1.jsx)("a", { type: "button", onPointerEnter: onPointerEnter, onPointerLeave: onPointerLeave, onClick: onClick, style: style, tabIndex: tabIndex, title: title, children: renderAction(hovered ? 'white' : colors_1.LIGHT_TEXT) }));
|
|
33
33
|
};
|
|
34
34
|
exports.InlineAction = InlineAction;
|
|
@@ -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: "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)(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: "N" }) }), (0, jsx_runtime_1.jsx)("div", { style: right, children: "New 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: "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 transparency" })] }), (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: "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: "N" }) }), (0, jsx_runtime_1.jsx)("div", { style: right, children: "New 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: "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 transparency" })] }), (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" })] })] })] })] }));
|
|
56
56
|
};
|
|
57
57
|
exports.KeyboardShortcutsExplainer = KeyboardShortcutsExplainer;
|
|
@@ -12,6 +12,6 @@ export declare const getInputBorderColor: ({ status, isFocused, isHovered, }: {
|
|
|
12
12
|
status: 'error' | 'warning' | 'ok';
|
|
13
13
|
isFocused: boolean;
|
|
14
14
|
isHovered: boolean;
|
|
15
|
-
}) => "
|
|
16
|
-
export declare const RemotionInput: React.ForwardRefExoticComponent<Pick<Props, "key" | "status" | "rightAlign"
|
|
15
|
+
}) => "hsla(0, 0%, 100%, 0.15)" | "rgba(0, 0, 0, 0.6)" | "rgba(255, 255, 255, 0.05)" | "#ff3232" | "#f1c40f";
|
|
16
|
+
export declare const RemotionInput: React.ForwardRefExoticComponent<Pick<Props, "key" | keyof React.InputHTMLAttributes<HTMLInputElement> | "status" | "rightAlign"> & React.RefAttributes<HTMLInputElement>>;
|
|
17
17
|
export {};
|
|
@@ -4,5 +4,5 @@ type Props = React.DetailedHTMLProps<React.InputHTMLAttributes<HTMLInputElement>
|
|
|
4
4
|
status: RemInputStatus;
|
|
5
5
|
name: string;
|
|
6
6
|
};
|
|
7
|
-
export declare const RemInputTypeColor: React.ForwardRefExoticComponent<Pick<Props, "key" |
|
|
7
|
+
export declare const RemInputTypeColor: React.ForwardRefExoticComponent<Pick<Props, "key" | keyof React.InputHTMLAttributes<HTMLInputElement> | "status"> & React.RefAttributes<HTMLInputElement>>;
|
|
8
8
|
export {};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
type OptionsSidebarPanel = 'input-props' | 'renders';
|
|
3
|
+
export declare const persistSelectedOptionsSidebarPanel: (panel: OptionsSidebarPanel) => void;
|
|
4
|
+
export declare const optionsSidebarTabs: React.RefObject<{
|
|
5
|
+
selectRendersPanel: () => void;
|
|
6
|
+
}>;
|
|
7
|
+
export declare const OptionsPanel: React.FC<{}>;
|
|
8
|
+
export {};
|