@remotion/cli 3.3.83 → 3.3.84
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/editor/components/NewComposition/RemInputTypeColor.d.ts +0 -1
- package/dist/editor/components/NewComposition/RemInputTypeColor.js +3 -3
- package/dist/editor/components/RenderButton.js +4 -1
- package/dist/editor/components/RenderModal/CrfSetting.js +1 -1
- package/dist/editor/components/RenderModal/EnvInput.js +1 -1
- package/dist/editor/components/RenderModal/FrameRangeSetting.js +1 -1
- package/dist/editor/components/RenderModal/NumberOfLoopsSetting.js +1 -1
- package/dist/editor/components/RenderModal/NumberSetting.js +1 -1
- package/dist/editor/components/RenderModal/RenderModal.js +18 -9
- package/dist/editor/components/RenderModal/RenderModalAudio.js +1 -1
- package/dist/editor/components/RenderModal/RenderModalBasic.js +1 -1
- package/dist/editor/components/RenderModal/RenderModalData.js +30 -1
- package/dist/editor/components/RenderModal/RenderModalInput.js +1 -1
- package/dist/editor/components/RenderModal/RenderModalPicture.js +1 -1
- package/dist/editor/components/RenderModal/SchemaEditor/SchemaEditor.js +3 -40
- package/dist/editor/components/RenderModal/SchemaEditor/SchemaErrorMessages.d.ts +11 -0
- package/dist/editor/components/RenderModal/SchemaEditor/SchemaErrorMessages.js +55 -0
- package/dist/editor/components/RenderModal/SchemaEditor/ZodColorEditor.js +1 -1
- package/dist/editor/components/RenderModal/SchemaEditor/ZodDateEditor.js +1 -1
- package/dist/editor/components/RenderModal/SchemaEditor/ZodNullableEditor.d.ts +14 -0
- package/dist/editor/components/RenderModal/SchemaEditor/ZodNullableEditor.js +10 -0
- package/dist/editor/components/RenderModal/SchemaEditor/ZodNumberEditor.js +1 -1
- package/dist/editor/components/RenderModal/SchemaEditor/ZodOptionalEditor.d.ts +14 -0
- package/dist/editor/components/RenderModal/SchemaEditor/ZodOptionalEditor.js +10 -0
- package/dist/editor/components/RenderModal/SchemaEditor/ZodOrNullishEditor.js +1 -2
- package/dist/editor/components/RenderModal/SchemaEditor/ZodStringEditor.js +1 -1
- package/dist/editor/components/RenderModal/SchemaEditor/ZodSwitch.js +8 -0
- package/dist/editor/components/RenderModal/layout.js +0 -1
- package/dist/editor/components/RenderModal/out-name-checker.d.ts +0 -1
- package/dist/editor/components/RenderModal/out-name-checker.js +3 -3
- package/dist/editor/components/RenderQueue/actions.d.ts +0 -2
- package/dist/editor/components/RenderQueue/actions.js +10 -11
- package/dist/editor/components/RenderQueue/index.js +25 -1
- package/dist/editor/components/RenderToolbarIcon.js +21 -8
- package/dist/editor/components/SegmentedControl.d.ts +0 -5
- package/dist/editor/components/SegmentedControl.js +2 -3
- package/dist/editor/components/Splitter/SplitterElement.js +1 -0
- package/dist/editor/components/Tabs/index.d.ts +0 -1
- package/dist/editor/components/Tabs/index.js +3 -3
- package/dist/editor/components/Tabs/vertical.d.ts +0 -5
- package/dist/editor/components/Tabs/vertical.js +3 -17
- package/dist/editor/components/TimeValue.js +3 -4
- package/dist/editor/components/Timeline/TimelineListItem.js +9 -1
- package/dist/preview-server/api-types.d.ts +0 -4
- package/dist/preview-server/render-queue/job.d.ts +1 -1
- package/dist/preview-server/render-queue/queue.d.ts +1 -13
- package/dist/preview-server/render-queue/queue.js +6 -9
- package/package.json +6 -6
|
@@ -38,6 +38,6 @@ const ZodStringEditor = ({ jsonPath, value, setValue, showSaveButton, defaultVal
|
|
|
38
38
|
const save = (0, react_1.useCallback)(() => {
|
|
39
39
|
onSave(() => value);
|
|
40
40
|
}, [onSave, value]);
|
|
41
|
-
return ((0, jsx_runtime_1.jsxs)("div", { style: compact ? layout_2.narrowOption : layout_2.optionRow, children: [(0, jsx_runtime_1.jsx)(SchemaLabel_1.SchemaLabel, { compact: compact, isDefaultValue: value === defaultValue, jsonPath: jsonPath, onReset: reset, onSave: save, showSaveButton: showSaveButton, onRemove: onRemove }), (0, jsx_runtime_1.jsxs)("div", { style: fullWidth, children: [(0, jsx_runtime_1.jsx)(RemInput_1.RemotionInput, { value: localValue.value, status: localValue.zodValidation.success ? 'ok' : 'error', placeholder: jsonPath.join('.'), onChange: onChange }), !localValue.zodValidation.success && ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(layout_1.Spacing, { y: 1, block: true }), (0, jsx_runtime_1.jsx)(ValidationMessage_1.ValidationMessage, { align: "flex-end", message: localValue.zodValidation.error.format()._errors[0], type: "error" })] }))] })] }));
|
|
41
|
+
return ((0, jsx_runtime_1.jsxs)("div", { style: compact ? layout_2.narrowOption : layout_2.optionRow, children: [(0, jsx_runtime_1.jsx)(SchemaLabel_1.SchemaLabel, { compact: compact, isDefaultValue: value === defaultValue, jsonPath: jsonPath, onReset: reset, onSave: save, showSaveButton: showSaveButton, onRemove: onRemove }), (0, jsx_runtime_1.jsxs)("div", { style: fullWidth, children: [(0, jsx_runtime_1.jsx)(RemInput_1.RemotionInput, { value: localValue.value, status: localValue.zodValidation.success ? 'ok' : 'error', placeholder: jsonPath.join('.'), onChange: onChange, rightAlign: false }), !localValue.zodValidation.success && ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(layout_1.Spacing, { y: 1, block: true }), (0, jsx_runtime_1.jsx)(ValidationMessage_1.ValidationMessage, { align: "flex-end", message: localValue.zodValidation.error.format()._errors[0], type: "error" })] }))] })] }));
|
|
42
42
|
};
|
|
43
43
|
exports.ZodStringEditor = ZodStringEditor;
|
|
@@ -10,8 +10,10 @@ const ZodDateEditor_1 = require("./ZodDateEditor");
|
|
|
10
10
|
const ZodEffectEditor_1 = require("./ZodEffectEditor");
|
|
11
11
|
const ZodEnumEditor_1 = require("./ZodEnumEditor");
|
|
12
12
|
const ZodNonEditableValue_1 = require("./ZodNonEditableValue");
|
|
13
|
+
const ZodNullableEditor_1 = require("./ZodNullableEditor");
|
|
13
14
|
const ZodNumberEditor_1 = require("./ZodNumberEditor");
|
|
14
15
|
const ZodObjectEditor_1 = require("./ZodObjectEditor");
|
|
16
|
+
const ZodOptionalEditor_1 = require("./ZodOptionalEditor");
|
|
15
17
|
const ZodStringEditor_1 = require("./ZodStringEditor");
|
|
16
18
|
const ZodUnionEditor_1 = require("./ZodUnionEditor");
|
|
17
19
|
const ZodSwitch = ({ schema, jsonPath, compact, value, setValue, defaultValue, onSave, showSaveButton, onRemove, }) => {
|
|
@@ -64,6 +66,12 @@ const ZodSwitch = ({ schema, jsonPath, compact, value, setValue, defaultValue, o
|
|
|
64
66
|
if (typeName === remotion_1.z.ZodFirstPartyTypeKind.ZodUnion) {
|
|
65
67
|
return ((0, jsx_runtime_1.jsx)(ZodUnionEditor_1.ZodUnionEditor, { schema: schema, showSaveButton: showSaveButton, jsonPath: jsonPath, compact: compact, value: value, defaultValue: defaultValue, setValue: setValue, onSave: onSave, onRemove: onRemove }));
|
|
66
68
|
}
|
|
69
|
+
if (typeName === remotion_1.z.ZodFirstPartyTypeKind.ZodOptional) {
|
|
70
|
+
return ((0, jsx_runtime_1.jsx)(ZodOptionalEditor_1.ZodOptionalEditor, { compact: compact, jsonPath: jsonPath, showSaveButton: showSaveButton, defaultValue: defaultValue, value: value, setValue: setValue, onSave: onSave, onRemove: onRemove, schema: schema }));
|
|
71
|
+
}
|
|
72
|
+
if (typeName === remotion_1.z.ZodFirstPartyTypeKind.ZodNullable) {
|
|
73
|
+
return ((0, jsx_runtime_1.jsx)(ZodNullableEditor_1.ZodNullableEditor, { compact: compact, jsonPath: jsonPath, showSaveButton: showSaveButton, defaultValue: defaultValue, value: value, setValue: setValue, onSave: onSave, onRemove: onRemove, schema: schema }));
|
|
74
|
+
}
|
|
67
75
|
return ((0, jsx_runtime_1.jsx)(ZodNonEditableValue_1.ZonNonEditableValue, { compact: compact, jsonPath: jsonPath, showSaveButton: showSaveButton, label: `${typeName} (not editable)` }));
|
|
68
76
|
};
|
|
69
77
|
exports.ZodSwitch = ZodSwitch;
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import type { AudioCodec, Codec, StillImageFormat } from '@remotion/renderer';
|
|
2
2
|
import type { RenderType } from './RenderModalAdvanced';
|
|
3
|
-
export declare const invalidCharacters: string[];
|
|
4
3
|
export declare const validateOutnameGui: ({ outName, codec, audioCodec, renderMode, stillImageFormat, }: {
|
|
5
4
|
outName: string;
|
|
6
5
|
codec: Codec;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.validateOutnameGui =
|
|
3
|
+
exports.validateOutnameGui = void 0;
|
|
4
4
|
const client_1 = require("@remotion/renderer/client");
|
|
5
|
-
|
|
5
|
+
const invalidCharacters = ['?', '*', '+', ':', '%'];
|
|
6
6
|
const isValidStillExtension = (extension, stillImageFormat) => {
|
|
7
7
|
if (stillImageFormat === 'jpeg' && extension === 'jpg') {
|
|
8
8
|
return true;
|
|
@@ -43,7 +43,7 @@ const isValidOutName = ({ outName, codec, audioCodec, renderMode, stillImageForm
|
|
|
43
43
|
return false;
|
|
44
44
|
};
|
|
45
45
|
const hasInvalidChar = () => {
|
|
46
|
-
return prefix.split('').some((char) =>
|
|
46
|
+
return prefix.split('').some((char) => invalidCharacters.includes(char));
|
|
47
47
|
};
|
|
48
48
|
if (renderMode === 'video') {
|
|
49
49
|
client_1.BrowserSafeApis.validateOutputFilename({
|
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
import type { AudioCodec, Codec, PixelFormat, ProResProfile, StillImageFormat, VideoImageFormat } from '@remotion/renderer';
|
|
2
|
-
import type { ApiRoutes } from '../../../preview-server/api-types';
|
|
3
2
|
import type { RenderJob } from '../../../preview-server/render-queue/job';
|
|
4
3
|
import type { RequiredChromiumOptions } from '../../../required-chromium-options';
|
|
5
|
-
export declare const callApi: <Endpoint extends keyof ApiRoutes>(endpoint: Endpoint, body: ApiRoutes[Endpoint]["Request"]) => Promise<ApiRoutes[Endpoint]["Response"]>;
|
|
6
4
|
export declare const addStillRenderJob: ({ compositionId, outName, imageFormat, jpegQuality, frame, scale, verbose, chromiumOptions, delayRenderTimeout, envVariables, inputProps, }: {
|
|
7
5
|
compositionId: string;
|
|
8
6
|
outName: string;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.canUpdateDefaultProps = exports.updateDefaultProps = exports.cancelRenderJob = exports.removeRenderJob = exports.openInFileExplorer = exports.subscribeToFileExistenceWatcher = exports.unsubscribeFromFileExistenceWatcher = exports.addVideoRenderJob = exports.addStillRenderJob =
|
|
3
|
+
exports.canUpdateDefaultProps = exports.updateDefaultProps = exports.cancelRenderJob = exports.removeRenderJob = exports.openInFileExplorer = exports.subscribeToFileExistenceWatcher = exports.unsubscribeFromFileExistenceWatcher = exports.addVideoRenderJob = exports.addStillRenderJob = void 0;
|
|
4
4
|
const date_serialization_1 = require("../RenderModal/SchemaEditor/date-serialization");
|
|
5
5
|
const callApi = (endpoint, body) => {
|
|
6
6
|
return new Promise((resolve, reject) => {
|
|
@@ -25,9 +25,8 @@ const callApi = (endpoint, body) => {
|
|
|
25
25
|
});
|
|
26
26
|
});
|
|
27
27
|
};
|
|
28
|
-
exports.callApi = callApi;
|
|
29
28
|
const addStillRenderJob = ({ compositionId, outName, imageFormat, jpegQuality, frame, scale, verbose, chromiumOptions, delayRenderTimeout, envVariables, inputProps, }) => {
|
|
30
|
-
return
|
|
29
|
+
return callApi('/api/render', {
|
|
31
30
|
compositionId,
|
|
32
31
|
type: 'still',
|
|
33
32
|
outName,
|
|
@@ -44,7 +43,7 @@ const addStillRenderJob = ({ compositionId, outName, imageFormat, jpegQuality, f
|
|
|
44
43
|
};
|
|
45
44
|
exports.addStillRenderJob = addStillRenderJob;
|
|
46
45
|
const addVideoRenderJob = ({ compositionId, outName, imageFormat, jpegQuality, scale, verbose, codec, concurrency, crf, startFrame, endFrame, muted, enforceAudioTrack, proResProfile, pixelFormat, audioBitrate, videoBitrate, everyNthFrame, numberOfGifLoops, delayRenderTimeout, audioCodec, disallowParallelEncoding, chromiumOptions, envVariables, inputProps, }) => {
|
|
47
|
-
return
|
|
46
|
+
return callApi('/api/render', {
|
|
48
47
|
compositionId,
|
|
49
48
|
type: 'video',
|
|
50
49
|
outName,
|
|
@@ -75,11 +74,11 @@ const addVideoRenderJob = ({ compositionId, outName, imageFormat, jpegQuality, s
|
|
|
75
74
|
};
|
|
76
75
|
exports.addVideoRenderJob = addVideoRenderJob;
|
|
77
76
|
const unsubscribeFromFileExistenceWatcher = ({ file, clientId, }) => {
|
|
78
|
-
return
|
|
77
|
+
return callApi('/api/unsubscribe-from-file-existence', { file, clientId });
|
|
79
78
|
};
|
|
80
79
|
exports.unsubscribeFromFileExistenceWatcher = unsubscribeFromFileExistenceWatcher;
|
|
81
80
|
const subscribeToFileExistenceWatcher = async ({ file, clientId, }) => {
|
|
82
|
-
const { exists } = await
|
|
81
|
+
const { exists } = await callApi('/api/subscribe-to-file-existence', {
|
|
83
82
|
file,
|
|
84
83
|
clientId,
|
|
85
84
|
});
|
|
@@ -90,30 +89,30 @@ const openInFileExplorer = ({ directory }) => {
|
|
|
90
89
|
const body = {
|
|
91
90
|
directory,
|
|
92
91
|
};
|
|
93
|
-
return
|
|
92
|
+
return callApi('/api/open-in-file-explorer', body);
|
|
94
93
|
};
|
|
95
94
|
exports.openInFileExplorer = openInFileExplorer;
|
|
96
95
|
const removeRenderJob = (job) => {
|
|
97
|
-
return
|
|
96
|
+
return callApi('/api/remove-render', {
|
|
98
97
|
jobId: job.id,
|
|
99
98
|
});
|
|
100
99
|
};
|
|
101
100
|
exports.removeRenderJob = removeRenderJob;
|
|
102
101
|
const cancelRenderJob = (job) => {
|
|
103
|
-
return
|
|
102
|
+
return callApi('/api/cancel', {
|
|
104
103
|
jobId: job.id,
|
|
105
104
|
});
|
|
106
105
|
};
|
|
107
106
|
exports.cancelRenderJob = cancelRenderJob;
|
|
108
107
|
const updateDefaultProps = (compositionId, defaultProps) => {
|
|
109
|
-
return
|
|
108
|
+
return callApi('/api/update-default-props', {
|
|
110
109
|
compositionId,
|
|
111
110
|
defaultProps: (0, date_serialization_1.serializeJSONWithDate)(defaultProps, undefined),
|
|
112
111
|
});
|
|
113
112
|
};
|
|
114
113
|
exports.updateDefaultProps = updateDefaultProps;
|
|
115
114
|
const canUpdateDefaultProps = (compositionId) => {
|
|
116
|
-
return
|
|
115
|
+
return callApi('/api/can-update-default-props', {
|
|
117
116
|
compositionId,
|
|
118
117
|
});
|
|
119
118
|
};
|
|
@@ -3,15 +3,39 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.RenderQueue = void 0;
|
|
4
4
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
5
|
const react_1 = require("react");
|
|
6
|
+
const client_id_1 = require("../../helpers/client-id");
|
|
6
7
|
const colors_1 = require("../../helpers/colors");
|
|
8
|
+
const layout_1 = require("../layout");
|
|
7
9
|
const context_1 = require("./context");
|
|
8
10
|
const RenderQueueItem_1 = require("./RenderQueueItem");
|
|
9
11
|
const separatorStyle = {
|
|
10
12
|
borderBottom: `1px solid ${colors_1.BORDER_COLOR}`,
|
|
11
13
|
};
|
|
12
|
-
|
|
14
|
+
const errorExplanation = {
|
|
15
|
+
fontSize: 14,
|
|
16
|
+
color: colors_1.LIGHT_TEXT,
|
|
17
|
+
fontFamily: 'sans-serif',
|
|
18
|
+
lineHeight: 1.5,
|
|
19
|
+
};
|
|
20
|
+
const explainer = {
|
|
21
|
+
display: 'flex',
|
|
22
|
+
flex: 1,
|
|
23
|
+
flexDirection: 'column',
|
|
24
|
+
padding: '0 12px',
|
|
25
|
+
justifyContent: 'center',
|
|
26
|
+
alignItems: 'center',
|
|
27
|
+
textAlign: 'center',
|
|
28
|
+
};
|
|
13
29
|
const RenderQueue = () => {
|
|
30
|
+
const connectionStatus = (0, react_1.useContext)(client_id_1.PreviewServerConnectionCtx).type;
|
|
14
31
|
const { jobs } = (0, react_1.useContext)(context_1.RenderQueueContext);
|
|
32
|
+
const jobCount = jobs.length;
|
|
33
|
+
if (connectionStatus === 'disconnected') {
|
|
34
|
+
return ((0, jsx_runtime_1.jsxs)("div", { style: explainer, children: [(0, jsx_runtime_1.jsx)(layout_1.Spacing, { y: 5 }), (0, jsx_runtime_1.jsx)("div", { style: errorExplanation, children: "The preview server has disconnected." }), (0, jsx_runtime_1.jsx)(layout_1.Spacing, { y: 2, block: true })] }));
|
|
35
|
+
}
|
|
36
|
+
if (jobCount === 0) {
|
|
37
|
+
return ((0, jsx_runtime_1.jsxs)("div", { style: explainer, children: [(0, jsx_runtime_1.jsx)(layout_1.Spacing, { y: 5 }), (0, jsx_runtime_1.jsx)("div", { style: errorExplanation, children: "No renders in the queue." }), (0, jsx_runtime_1.jsx)(layout_1.Spacing, { y: 2, block: true })] }));
|
|
38
|
+
}
|
|
15
39
|
return ((0, jsx_runtime_1.jsx)("div", { children: jobs.map((j, index) => {
|
|
16
40
|
return ((0, jsx_runtime_1.jsx)("div", { style: index === jobs.length - 1 ? undefined : separatorStyle, children: (0, jsx_runtime_1.jsx)(RenderQueueItem_1.RenderQueueItem, { job: j }) }, j.id));
|
|
17
41
|
}) }));
|
|
@@ -2,29 +2,40 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.RenderButton = void 0;
|
|
4
4
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
+
const client_1 = require("@remotion/renderer/client");
|
|
5
6
|
const react_1 = require("react");
|
|
6
7
|
const remotion_1 = require("remotion");
|
|
7
8
|
const get_default_out_name_1 = require("../../get-default-out-name");
|
|
9
|
+
const Button_1 = require("../../preview-server/error-overlay/remotion-overlay/Button");
|
|
8
10
|
const get_default_video_contexts_1 = require("../../preview-server/render-queue/get-default-video-contexts");
|
|
9
11
|
const client_id_1 = require("../helpers/client-id");
|
|
10
12
|
const use_keybinding_1 = require("../helpers/use-keybinding");
|
|
11
13
|
const render_1 = require("../icons/render");
|
|
12
14
|
const modals_1 = require("../state/modals");
|
|
13
|
-
const
|
|
15
|
+
const layout_1 = require("./layout");
|
|
16
|
+
const button = {
|
|
17
|
+
paddingLeft: 7,
|
|
18
|
+
paddingRight: 7,
|
|
19
|
+
paddingTop: 7,
|
|
20
|
+
paddingBottom: 7,
|
|
21
|
+
};
|
|
22
|
+
const label = {
|
|
23
|
+
fontSize: 14,
|
|
24
|
+
};
|
|
14
25
|
const RenderButton = () => {
|
|
15
26
|
const { setSelectedModal } = (0, react_1.useContext)(modals_1.ModalsContext);
|
|
16
27
|
const { type } = (0, react_1.useContext)(client_id_1.PreviewServerConnectionCtx);
|
|
28
|
+
const shortcut = (0, use_keybinding_1.areKeyboardShortcutsDisabled)() ? '' : '(R)';
|
|
29
|
+
const tooltip = type === 'connected'
|
|
30
|
+
? 'Export the current composition ' + shortcut
|
|
31
|
+
: 'Connect to the preview server to render';
|
|
17
32
|
const iconStyle = (0, react_1.useMemo)(() => {
|
|
18
33
|
return {
|
|
19
34
|
style: {
|
|
20
|
-
height:
|
|
35
|
+
height: 16,
|
|
21
36
|
},
|
|
22
37
|
};
|
|
23
38
|
}, []);
|
|
24
|
-
const shortcut = (0, use_keybinding_1.areKeyboardShortcutsDisabled)() ? '' : '(R)';
|
|
25
|
-
const tooltip = type === 'connected'
|
|
26
|
-
? 'Export the current composition ' + shortcut
|
|
27
|
-
: 'Connect to the preview server to render';
|
|
28
39
|
const video = remotion_1.Internals.useVideo();
|
|
29
40
|
const frame = (0, remotion_1.useCurrentFrame)();
|
|
30
41
|
const onClick = (0, react_1.useCallback)(() => {
|
|
@@ -49,7 +60,9 @@ const RenderButton = () => {
|
|
|
49
60
|
initialVideoImageFormat: defaults.videoImageFormat,
|
|
50
61
|
initialOutName: (0, get_default_out_name_1.getDefaultOutLocation)({
|
|
51
62
|
compositionName: video.id,
|
|
52
|
-
defaultExtension: isVideo
|
|
63
|
+
defaultExtension: isVideo
|
|
64
|
+
? client_1.BrowserSafeApis.getFileExtensionFromCodec(initialVideoCodec, defaults.audioCodec)
|
|
65
|
+
: defaults.stillImageFormat,
|
|
53
66
|
type: 'asset',
|
|
54
67
|
}),
|
|
55
68
|
initialJpegQuality: defaults.jpegQuality,
|
|
@@ -81,6 +94,6 @@ const RenderButton = () => {
|
|
|
81
94
|
if (!video) {
|
|
82
95
|
return null;
|
|
83
96
|
}
|
|
84
|
-
return ((0, jsx_runtime_1.jsx)(
|
|
97
|
+
return ((0, jsx_runtime_1.jsx)(Button_1.Button, { id: "render-modal-button", title: tooltip, onClick: onClick, buttonContainerStyle: button, children: (0, jsx_runtime_1.jsxs)(layout_1.Row, { align: "center", children: [(0, jsx_runtime_1.jsx)(render_1.RenderIcon, { svgProps: iconStyle }), (0, jsx_runtime_1.jsx)(layout_1.Spacing, { x: 1 }), (0, jsx_runtime_1.jsx)("span", { style: label, children: "Render" })] }) }));
|
|
85
98
|
};
|
|
86
99
|
exports.RenderButton = RenderButton;
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import type { PropsWithChildren } from 'react';
|
|
2
1
|
import React from 'react';
|
|
3
2
|
export declare type SegmentedControlItem = {
|
|
4
3
|
label: React.ReactNode;
|
|
@@ -10,7 +9,3 @@ export declare const SegmentedControl: React.FC<{
|
|
|
10
9
|
items: SegmentedControlItem[];
|
|
11
10
|
needsWrapping: boolean;
|
|
12
11
|
}>;
|
|
13
|
-
export declare const Item: React.FC<PropsWithChildren<{
|
|
14
|
-
selected: boolean;
|
|
15
|
-
onClick: () => void;
|
|
16
|
-
}>>;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.SegmentedControl = void 0;
|
|
4
4
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
5
|
const react_1 = require("react");
|
|
6
6
|
const colors_1 = require("../helpers/colors");
|
|
@@ -38,7 +38,7 @@ const SegmentedControl = ({ items, needsWrapping }) => {
|
|
|
38
38
|
};
|
|
39
39
|
}, [needsWrapping]);
|
|
40
40
|
return ((0, jsx_runtime_1.jsx)("div", { style: controlStyle, children: items.map((i) => {
|
|
41
|
-
return ((0, jsx_runtime_1.jsx)(
|
|
41
|
+
return ((0, jsx_runtime_1.jsx)(Item, { onClick: i.onClick, selected: i.selected, children: i.label }, i.key));
|
|
42
42
|
}) }));
|
|
43
43
|
};
|
|
44
44
|
exports.SegmentedControl = SegmentedControl;
|
|
@@ -60,4 +60,3 @@ const Item = ({ selected, onClick, children }) => {
|
|
|
60
60
|
}, [hovered, selected]);
|
|
61
61
|
return ((0, jsx_runtime_1.jsx)("button", { type: "button", onPointerEnter: onPointerEnter, onPointerLeave: onPointerLeave, style: itemStyle, tabIndex: tabIndex, onClick: onClick, children: children }));
|
|
62
62
|
};
|
|
63
|
-
exports.Item = Item;
|
|
@@ -14,6 +14,7 @@ const SplitterElement = ({ children, type }) => {
|
|
|
14
14
|
display: 'flex',
|
|
15
15
|
position: 'relative',
|
|
16
16
|
overflow: 'hidden',
|
|
17
|
+
flexDirection: 'column',
|
|
17
18
|
};
|
|
18
19
|
}, [context.flexValue, type]);
|
|
19
20
|
return (0, jsx_runtime_1.jsx)("div", { style: style, children: children });
|
|
@@ -3,7 +3,6 @@ export declare const Tabs: React.FC<{
|
|
|
3
3
|
children: React.ReactNode;
|
|
4
4
|
style?: React.CSSProperties;
|
|
5
5
|
}>;
|
|
6
|
-
export declare const selectorButton: React.CSSProperties;
|
|
7
6
|
export declare const Tab: React.FC<{
|
|
8
7
|
children: React.ReactNode;
|
|
9
8
|
onClick: React.MouseEventHandler<HTMLButtonElement>;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.Tab = exports.
|
|
3
|
+
exports.Tab = exports.Tabs = void 0;
|
|
4
4
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
5
|
const react_1 = require("react");
|
|
6
6
|
const colors_1 = require("../../helpers/colors");
|
|
@@ -19,7 +19,7 @@ const Tabs = ({ children, style }) => {
|
|
|
19
19
|
return (0, jsx_runtime_1.jsx)("div", { style: definiteStyle, children: children });
|
|
20
20
|
};
|
|
21
21
|
exports.Tabs = Tabs;
|
|
22
|
-
|
|
22
|
+
const selectorButton = {
|
|
23
23
|
border: 'none',
|
|
24
24
|
flex: 1,
|
|
25
25
|
padding: 8,
|
|
@@ -41,7 +41,7 @@ const Tab = ({ children, onClick, style, selected }) => {
|
|
|
41
41
|
}, []);
|
|
42
42
|
const definiteStyle = (0, react_1.useMemo)(() => {
|
|
43
43
|
return {
|
|
44
|
-
...
|
|
44
|
+
...selectorButton,
|
|
45
45
|
backgroundColor: selected
|
|
46
46
|
? 'transparent'
|
|
47
47
|
: hovered
|
|
@@ -1,9 +1,4 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
export declare const VerticalTabs: React.FC<{
|
|
3
|
-
children: React.ReactNode;
|
|
4
|
-
style?: React.CSSProperties;
|
|
5
|
-
}>;
|
|
6
|
-
export declare const selectorButton: React.CSSProperties;
|
|
7
2
|
export declare const VerticalTab: React.FC<{
|
|
8
3
|
children: React.ReactNode;
|
|
9
4
|
onClick: React.MouseEventHandler<HTMLButtonElement>;
|
|
@@ -1,25 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.VerticalTab =
|
|
3
|
+
exports.VerticalTab = void 0;
|
|
4
4
|
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
|
|
9
|
-
display: 'flex',
|
|
10
|
-
flexDirection: 'row',
|
|
11
|
-
};
|
|
12
|
-
const VerticalTabs = ({ children, style }) => {
|
|
13
|
-
const definiteStyle = (0, react_1.useMemo)(() => {
|
|
14
|
-
return {
|
|
15
|
-
...tabsContainer,
|
|
16
|
-
...style,
|
|
17
|
-
};
|
|
18
|
-
}, [style]);
|
|
19
|
-
return (0, jsx_runtime_1.jsx)("div", { style: definiteStyle, children: children });
|
|
20
|
-
};
|
|
21
|
-
exports.VerticalTabs = VerticalTabs;
|
|
22
|
-
exports.selectorButton = {
|
|
8
|
+
const selectorButton = {
|
|
23
9
|
border: 'none',
|
|
24
10
|
flex: 1,
|
|
25
11
|
padding: 8,
|
|
@@ -41,7 +27,7 @@ const VerticalTab = ({ children, onClick, style, selected }) => {
|
|
|
41
27
|
}, []);
|
|
42
28
|
const definiteStyle = (0, react_1.useMemo)(() => {
|
|
43
29
|
return {
|
|
44
|
-
...
|
|
30
|
+
...selectorButton,
|
|
45
31
|
backgroundColor: selected
|
|
46
32
|
? colors_1.SELECTED_BACKGROUND
|
|
47
33
|
: hovered
|
|
@@ -18,14 +18,13 @@ const text = {
|
|
|
18
18
|
const time = {
|
|
19
19
|
display: 'inline-block',
|
|
20
20
|
fontSize: 18,
|
|
21
|
+
lineHeight: 1,
|
|
21
22
|
};
|
|
22
23
|
const frameStyle = {
|
|
23
24
|
color: '#ccc',
|
|
24
25
|
fontSize: 10,
|
|
25
26
|
fontWeight: 500,
|
|
26
|
-
|
|
27
|
-
const spacer = {
|
|
28
|
-
width: layout_1.SPACING_UNIT,
|
|
27
|
+
lineHeight: 1,
|
|
29
28
|
};
|
|
30
29
|
const TimeValue = () => {
|
|
31
30
|
const frame = (0, remotion_1.useCurrentFrame)();
|
|
@@ -37,6 +36,6 @@ const TimeValue = () => {
|
|
|
37
36
|
if (isStill) {
|
|
38
37
|
return null;
|
|
39
38
|
}
|
|
40
|
-
return ((0, jsx_runtime_1.jsxs)("div", { style: text, children: [(0, jsx_runtime_1.jsx)("div", { style: time, children: (0, render_frame_1.renderFrame)(frame, config.fps) }),
|
|
39
|
+
return ((0, jsx_runtime_1.jsxs)("div", { style: text, children: [(0, jsx_runtime_1.jsx)("div", { style: time, children: (0, render_frame_1.renderFrame)(frame, config.fps) }), " ", (0, jsx_runtime_1.jsx)(layout_1.Spacing, { x: 1 }), (0, jsx_runtime_1.jsxs)("div", { style: frameStyle, children: [frame, " ", (0, jsx_runtime_1.jsxs)("span", { style: frameStyle, children: ["(", config.fps, " fps)"] })] })] }));
|
|
41
40
|
};
|
|
42
41
|
exports.TimeValue = TimeValue;
|
|
@@ -5,6 +5,7 @@ const jsx_runtime_1 = require("react/jsx-runtime");
|
|
|
5
5
|
const react_1 = require("react");
|
|
6
6
|
const timeline_layout_1 = require("../../helpers/timeline-layout");
|
|
7
7
|
const z_index_1 = require("../../state/z-index");
|
|
8
|
+
const layout_1 = require("../layout");
|
|
8
9
|
const TimelineCollapseToggle_1 = require("./TimelineCollapseToggle");
|
|
9
10
|
const TimelineSequenceFrame_1 = require("./TimelineSequenceFrame");
|
|
10
11
|
const HOOK_WIDTH = 7;
|
|
@@ -16,6 +17,9 @@ const TIMELINE_COLLAPSER_MARGIN_RIGHT = 10;
|
|
|
16
17
|
exports.TOTAL_TIMELINE_LAYER_LEFT_PADDING = TIMELINE_COLLAPSER_WIDTH + TIMELINE_COLLAPSER_MARGIN_RIGHT + timeline_layout_1.TIMELINE_PADDING;
|
|
17
18
|
const textStyle = {
|
|
18
19
|
fontSize: 13,
|
|
20
|
+
whiteSpace: 'nowrap',
|
|
21
|
+
textOverflow: 'ellipsis',
|
|
22
|
+
overflow: 'hidden',
|
|
19
23
|
};
|
|
20
24
|
const outer = {
|
|
21
25
|
height: timeline_layout_1.TIMELINE_LAYER_HEIGHT + timeline_layout_1.TIMELINE_BORDER * 2,
|
|
@@ -43,14 +47,17 @@ const hook = {
|
|
|
43
47
|
};
|
|
44
48
|
const space = {
|
|
45
49
|
width: SPACING,
|
|
50
|
+
flexShrink: 0,
|
|
46
51
|
};
|
|
47
52
|
const smallSpace = {
|
|
48
53
|
width: SPACING * 0.5,
|
|
54
|
+
flexShrink: 0,
|
|
49
55
|
};
|
|
50
56
|
const collapser = {
|
|
51
57
|
width: TIMELINE_COLLAPSER_WIDTH,
|
|
52
58
|
userSelect: 'none',
|
|
53
59
|
marginRight: TIMELINE_COLLAPSER_MARGIN_RIGHT,
|
|
60
|
+
flexShrink: 0,
|
|
54
61
|
};
|
|
55
62
|
const collapserButton = {
|
|
56
63
|
...collapser,
|
|
@@ -71,6 +78,7 @@ const TimelineListItem = ({ nestedDepth, sequence, collapsed, beforeDepth, dispa
|
|
|
71
78
|
const padder = (0, react_1.useMemo)(() => {
|
|
72
79
|
return {
|
|
73
80
|
width: leftOffset * nestedDepth,
|
|
81
|
+
flexShrink: 0,
|
|
74
82
|
};
|
|
75
83
|
}, [leftOffset, nestedDepth]);
|
|
76
84
|
const toggleCollapse = (0, react_1.useCallback)(() => {
|
|
@@ -90,6 +98,6 @@ const TimelineListItem = ({ nestedDepth, sequence, collapsed, beforeDepth, dispa
|
|
|
90
98
|
const text = sequence.displayName.length > 80
|
|
91
99
|
? sequence.displayName.slice(0, 80) + '...'
|
|
92
100
|
: sequence.displayName;
|
|
93
|
-
return ((0, jsx_runtime_1.jsxs)("div", { style: outer, children: [(0, jsx_runtime_1.jsx)("div", { style: padder }), canCollapse ? ((0, jsx_runtime_1.jsx)("button", { tabIndex: tabIndex, type: "button", style: collapserButton, onClick: toggleCollapse, children: (0, jsx_runtime_1.jsx)(TimelineCollapseToggle_1.TimelineCollapseToggle, { collapsed: collapsed }) })) : ((0, jsx_runtime_1.jsx)("div", { style: collapser })), sequence.parent && nestedDepth > 0 ? ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)("div", { style: smallSpace }), (0, jsx_runtime_1.jsx)("div", { style: hookContainer, children: (0, jsx_runtime_1.jsx)("div", { style: hookStyle }) }), (0, jsx_runtime_1.jsx)("div", { style: space })] })) : null, (0, jsx_runtime_1.jsxs)("div", { style: textStyle, children: [text || 'Untitled', (0, jsx_runtime_1.jsx)(TimelineSequenceFrame_1.TimelineSequenceFrame, { duration: sequence.duration, from: sequence.from })] })] }));
|
|
101
|
+
return ((0, jsx_runtime_1.jsxs)("div", { style: outer, children: [(0, jsx_runtime_1.jsx)("div", { style: padder }), canCollapse ? ((0, jsx_runtime_1.jsx)("button", { tabIndex: tabIndex, type: "button", style: collapserButton, onClick: toggleCollapse, children: (0, jsx_runtime_1.jsx)(TimelineCollapseToggle_1.TimelineCollapseToggle, { collapsed: collapsed }) })) : ((0, jsx_runtime_1.jsx)("div", { style: collapser })), sequence.parent && nestedDepth > 0 ? ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)("div", { style: smallSpace }), (0, jsx_runtime_1.jsx)("div", { style: hookContainer, children: (0, jsx_runtime_1.jsx)("div", { style: hookStyle }) }), (0, jsx_runtime_1.jsx)("div", { style: space })] })) : null, (0, jsx_runtime_1.jsxs)("div", { title: text || 'Untitled', style: textStyle, children: [text || 'Untitled', (0, jsx_runtime_1.jsx)(TimelineSequenceFrame_1.TimelineSequenceFrame, { duration: sequence.duration, from: sequence.from })] }), (0, jsx_runtime_1.jsx)(layout_1.Spacing, { x: 1 })] }));
|
|
94
102
|
};
|
|
95
103
|
exports.TimelineListItem = TimelineListItem;
|
|
@@ -8,10 +8,6 @@ export declare type ApiHandler<ReqData, ResData> = (params: {
|
|
|
8
8
|
request: IncomingMessage;
|
|
9
9
|
response: ServerResponse;
|
|
10
10
|
}) => Promise<ResData>;
|
|
11
|
-
export declare type ApiRoute<ReqData, ResData> = {
|
|
12
|
-
handler: ApiHandler<ReqData, ResData>;
|
|
13
|
-
endpoint: string;
|
|
14
|
-
};
|
|
15
11
|
declare type ReqAndRes<A, B> = {
|
|
16
12
|
Request: A;
|
|
17
13
|
Response: B;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { AudioCodec, Codec, makeCancelSignal, PixelFormat, ProResProfile, StillImageFormat, VideoImageFormat } from '@remotion/renderer';
|
|
2
2
|
import type { AggregateRenderProgress } from '../../progress-types';
|
|
3
3
|
import type { RequiredChromiumOptions } from '../../required-chromium-options';
|
|
4
|
-
|
|
4
|
+
declare type BaseRenderProgress = {
|
|
5
5
|
message: string;
|
|
6
6
|
value: number;
|
|
7
7
|
};
|
|
@@ -1,13 +1,5 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { RenderJob, RenderJobWithCleanup } from './job';
|
|
2
2
|
export declare const getRenderQueue: () => RenderJob[];
|
|
3
|
-
export declare const notifyClientsOfJobUpdate: () => void;
|
|
4
|
-
export declare const processJob: ({ job, remotionRoot, entryPoint, onProgress, addCleanupCallback, }: {
|
|
5
|
-
job: RenderJob;
|
|
6
|
-
remotionRoot: string;
|
|
7
|
-
entryPoint: string;
|
|
8
|
-
onProgress: JobProgressCallback;
|
|
9
|
-
addCleanupCallback: (cb: () => void) => void;
|
|
10
|
-
}) => Promise<void>;
|
|
11
3
|
export declare const addJob: ({ job, entryPoint, remotionRoot, }: {
|
|
12
4
|
job: RenderJobWithCleanup;
|
|
13
5
|
entryPoint: string;
|
|
@@ -15,7 +7,3 @@ export declare const addJob: ({ job, entryPoint, remotionRoot, }: {
|
|
|
15
7
|
}) => void;
|
|
16
8
|
export declare const removeJob: (jobId: string) => void;
|
|
17
9
|
export declare const cancelJob: (jobId: string) => void;
|
|
18
|
-
export declare const processJobIfPossible: ({ remotionRoot, entryPoint, }: {
|
|
19
|
-
remotionRoot: string;
|
|
20
|
-
entryPoint: string;
|
|
21
|
-
}) => Promise<void>;
|
|
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.
|
|
6
|
+
exports.cancelJob = exports.removeJob = exports.addJob = exports.getRenderQueue = void 0;
|
|
7
7
|
const path_1 = __importDefault(require("path"));
|
|
8
8
|
const chalk_1 = require("../../chalk");
|
|
9
9
|
const file_watcher_1 = require("../../file-watcher");
|
|
@@ -21,7 +21,7 @@ const updateJob = (id, updater) => {
|
|
|
21
21
|
}
|
|
22
22
|
return j;
|
|
23
23
|
});
|
|
24
|
-
|
|
24
|
+
notifyClientsOfJobUpdate();
|
|
25
25
|
};
|
|
26
26
|
const getRenderQueue = () => {
|
|
27
27
|
return jobQueue.map((j) => {
|
|
@@ -38,7 +38,6 @@ const notifyClientsOfJobUpdate = () => {
|
|
|
38
38
|
});
|
|
39
39
|
});
|
|
40
40
|
};
|
|
41
|
-
exports.notifyClientsOfJobUpdate = notifyClientsOfJobUpdate;
|
|
42
41
|
const processJob = async ({ job, remotionRoot, entryPoint, onProgress, addCleanupCallback, }) => {
|
|
43
42
|
if (job.type === 'still') {
|
|
44
43
|
await (0, process_still_1.processStill)({
|
|
@@ -62,11 +61,10 @@ const processJob = async ({ job, remotionRoot, entryPoint, onProgress, addCleanu
|
|
|
62
61
|
}
|
|
63
62
|
throw new Error(`Unknown job ${JSON.stringify(job)}`);
|
|
64
63
|
};
|
|
65
|
-
exports.processJob = processJob;
|
|
66
64
|
const addJob = ({ job, entryPoint, remotionRoot, }) => {
|
|
67
65
|
jobQueue.push(job);
|
|
68
|
-
|
|
69
|
-
|
|
66
|
+
processJobIfPossible({ entryPoint, remotionRoot });
|
|
67
|
+
notifyClientsOfJobUpdate();
|
|
70
68
|
};
|
|
71
69
|
exports.addJob = addJob;
|
|
72
70
|
const removeJob = (jobId) => {
|
|
@@ -79,7 +77,7 @@ const removeJob = (jobId) => {
|
|
|
79
77
|
}
|
|
80
78
|
return true;
|
|
81
79
|
});
|
|
82
|
-
|
|
80
|
+
notifyClientsOfJobUpdate();
|
|
83
81
|
};
|
|
84
82
|
exports.removeJob = removeJob;
|
|
85
83
|
const cancelJob = (jobId) => {
|
|
@@ -118,7 +116,7 @@ const processJobIfPossible = async ({ remotionRoot, entryPoint, }) => {
|
|
|
118
116
|
const startTime = Date.now();
|
|
119
117
|
log_1.Log.info(chalk_1.chalk.gray('╭─ Starting render '));
|
|
120
118
|
let lastProgress = null;
|
|
121
|
-
await
|
|
119
|
+
await processJob({
|
|
122
120
|
job: nextJob,
|
|
123
121
|
entryPoint,
|
|
124
122
|
remotionRoot,
|
|
@@ -205,4 +203,3 @@ const processJobIfPossible = async ({ remotionRoot, entryPoint, }) => {
|
|
|
205
203
|
await Promise.all(jobCleanups.map((c) => c()));
|
|
206
204
|
}
|
|
207
205
|
};
|
|
208
|
-
exports.processJobIfPossible = processJobIfPossible;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@remotion/cli",
|
|
3
|
-
"version": "3.3.
|
|
3
|
+
"version": "3.3.84",
|
|
4
4
|
"description": "CLI for Remotion",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"sideEffects": false,
|
|
@@ -16,16 +16,16 @@
|
|
|
16
16
|
"author": "Jonny Burger <jonny@remotion.dev>",
|
|
17
17
|
"license": "SEE LICENSE IN LICENSE.md",
|
|
18
18
|
"dependencies": {
|
|
19
|
-
"@remotion/bundler": "3.3.
|
|
20
|
-
"@remotion/media-utils": "3.3.
|
|
21
|
-
"@remotion/player": "3.3.
|
|
22
|
-
"@remotion/renderer": "3.3.
|
|
19
|
+
"@remotion/bundler": "3.3.84",
|
|
20
|
+
"@remotion/media-utils": "3.3.84",
|
|
21
|
+
"@remotion/player": "3.3.84",
|
|
22
|
+
"@remotion/renderer": "3.3.84",
|
|
23
23
|
"dotenv": "9.0.2",
|
|
24
24
|
"memfs": "3.4.3",
|
|
25
25
|
"minimist": "1.2.6",
|
|
26
26
|
"open": "^8.4.2",
|
|
27
27
|
"prompts": "2.4.1",
|
|
28
|
-
"remotion": "3.3.
|
|
28
|
+
"remotion": "3.3.84",
|
|
29
29
|
"semver": "7.3.5",
|
|
30
30
|
"source-map": "0.6.1"
|
|
31
31
|
},
|