@remotion/cli 3.3.62 → 3.3.63
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/convert-entry-point-to-serve-url.d.ts +1 -0
- package/dist/convert-entry-point-to-serve-url.js +15 -0
- package/dist/editor/components/Checkbox.d.ts +5 -0
- package/dist/editor/components/Checkbox.js +38 -0
- package/dist/editor/components/CollapsableOptions.d.ts +6 -0
- package/dist/editor/components/CollapsableOptions.js +35 -0
- package/dist/editor/components/CurrentCompositionSideEffects.d.ts +3 -0
- package/dist/editor/components/CurrentCompositionSideEffects.js +43 -0
- package/dist/editor/components/InlineAction.d.ts +5 -0
- package/dist/editor/components/InlineAction.js +34 -0
- package/dist/editor/components/Modals.d.ts +2 -0
- package/dist/editor/components/Modals.js +23 -0
- package/dist/editor/components/RenderButton.d.ts +6 -0
- package/dist/editor/components/RenderButton.js +67 -0
- package/dist/editor/components/RenderModal/CrfSetting.d.ts +15 -0
- package/dist/editor/components/RenderModal/CrfSetting.js +43 -0
- package/dist/editor/components/RenderModal/EnforceAudioTrackSetting.d.ts +5 -0
- package/dist/editor/components/RenderModal/EnforceAudioTrackSetting.js +14 -0
- package/dist/editor/components/RenderModal/FrameRangeSetting.d.ts +8 -0
- package/dist/editor/components/RenderModal/FrameRangeSetting.js +42 -0
- package/dist/editor/components/RenderModal/MutedSetting.d.ts +5 -0
- package/dist/editor/components/RenderModal/MutedSetting.js +14 -0
- package/dist/editor/components/RenderModal/NumberOfLoopsSetting.d.ts +5 -0
- package/dist/editor/components/RenderModal/NumberOfLoopsSetting.js +26 -0
- package/dist/editor/components/RenderModal/NumberSetting.d.ts +9 -0
- package/dist/editor/components/RenderModal/NumberSetting.js +26 -0
- package/dist/editor/components/RenderModal/QualitySetting.d.ts +5 -0
- package/dist/editor/components/RenderModal/QualitySetting.js +27 -0
- package/dist/editor/components/RenderModal/RenderErrorModal.d.ts +5 -0
- package/dist/editor/components/RenderModal/RenderErrorModal.js +64 -0
- package/dist/editor/components/RenderModal/RenderModal.d.ts +28 -0
- package/dist/editor/components/RenderModal/RenderModal.js +436 -0
- package/dist/editor/components/RenderModal/RenderModalAdvanced.d.ts +11 -0
- package/dist/editor/components/RenderModal/RenderModalAdvanced.js +15 -0
- package/dist/editor/components/RenderModal/RenderModalAudio.d.ts +13 -0
- package/dist/editor/components/RenderModal/RenderModalAudio.js +22 -0
- package/dist/editor/components/RenderModal/RenderModalBasic.d.ts +22 -0
- package/dist/editor/components/RenderModal/RenderModalBasic.js +70 -0
- package/dist/editor/components/RenderModal/RenderModalGif.d.ts +9 -0
- package/dist/editor/components/RenderModal/RenderModalGif.js +16 -0
- package/dist/editor/components/RenderModal/RenderModalHr.d.ts +2 -0
- package/dist/editor/components/RenderModal/RenderModalHr.js +18 -0
- package/dist/editor/components/RenderModal/RenderModalPicture.d.ts +28 -0
- package/dist/editor/components/RenderModal/RenderModalPicture.js +51 -0
- package/dist/editor/components/RenderModal/ScaleSetting.d.ts +5 -0
- package/dist/editor/components/RenderModal/ScaleSetting.js +11 -0
- package/dist/editor/components/RenderModal/human-readable-codec.d.ts +2 -0
- package/dist/editor/components/RenderModal/human-readable-codec.js +36 -0
- package/dist/editor/components/RenderModal/layout.d.ts +5 -0
- package/dist/editor/components/RenderModal/layout.js +31 -0
- package/dist/editor/components/RenderQueue/CircularProgress.d.ts +5 -0
- package/dist/editor/components/RenderQueue/CircularProgress.js +18 -0
- package/dist/editor/components/RenderQueue/RenderQueueError.d.ts +5 -0
- package/dist/editor/components/RenderQueue/RenderQueueError.js +26 -0
- package/dist/editor/components/RenderQueue/RenderQueueItem.d.ts +5 -0
- package/dist/editor/components/RenderQueue/RenderQueueItem.js +39 -0
- package/dist/editor/components/RenderQueue/RenderQueueItemCancelButton.d.ts +5 -0
- package/dist/editor/components/RenderQueue/RenderQueueItemCancelButton.js +22 -0
- package/dist/editor/components/RenderQueue/RenderQueueItemStatus.d.ts +5 -0
- package/dist/editor/components/RenderQueue/RenderQueueItemStatus.js +27 -0
- package/dist/editor/components/RenderQueue/RenderQueueOutputName.d.ts +5 -0
- package/dist/editor/components/RenderQueue/RenderQueueOutputName.js +24 -0
- package/dist/editor/components/RenderQueue/RenderQueueProgressMessage.d.ts +5 -0
- package/dist/editor/components/RenderQueue/RenderQueueProgressMessage.js +27 -0
- package/dist/editor/components/RenderQueue/RenderQueueRemoveItem.d.ts +5 -0
- package/dist/editor/components/RenderQueue/RenderQueueRemoveItem.js +23 -0
- package/dist/editor/components/RenderQueue/RenderQueueRepeat.d.ts +5 -0
- package/dist/editor/components/RenderQueue/RenderQueueRepeat.js +22 -0
- package/dist/editor/components/RenderQueue/actions.d.ts +48 -0
- package/dist/editor/components/RenderQueue/actions.js +97 -0
- package/dist/editor/components/RenderQueue/context.d.ts +19 -0
- package/dist/editor/components/RenderQueue/context.js +56 -0
- package/dist/editor/components/RenderQueue/index.d.ts +2 -0
- package/dist/editor/components/RenderQueue/index.js +18 -0
- package/dist/editor/components/RenderQueue/item-style.d.ts +2 -0
- package/dist/editor/components/RenderQueue/item-style.js +21 -0
- package/dist/editor/components/RenderToolbarIcon.d.ts +2 -0
- package/dist/editor/components/RenderToolbarIcon.js +78 -0
- package/dist/editor/components/RendersTab.d.ts +6 -0
- package/dist/editor/components/RendersTab.js +43 -0
- package/dist/editor/components/SegmentedControl.d.ts +16 -0
- package/dist/editor/components/SegmentedControl.js +63 -0
- package/dist/editor/components/SidebarContent.d.ts +5 -0
- package/dist/editor/components/SidebarContent.js +52 -0
- package/dist/editor/components/Tabs/index.d.ts +11 -0
- package/dist/editor/components/Tabs/index.js +51 -0
- package/dist/editor/components/Timeline/MaxTimelineTracks.js +1 -1
- package/dist/editor/helpers/client-id.d.ts +17 -0
- package/dist/editor/helpers/client-id.js +46 -0
- package/dist/editor/helpers/colors.d.ts +1 -1
- package/dist/editor/helpers/use-file-existence.d.ts +1 -0
- package/dist/editor/helpers/use-file-existence.js +66 -0
- package/dist/editor/icons/RenderStillIcon.d.ts +3 -0
- package/dist/editor/icons/RenderStillIcon.js +8 -0
- package/dist/editor/icons/audio.d.ts +2 -0
- package/dist/editor/icons/audio.js +6 -0
- package/dist/editor/icons/file.d.ts +2 -0
- package/dist/editor/icons/file.js +6 -0
- package/dist/editor/icons/frame.d.ts +2 -0
- package/dist/editor/icons/frame.js +6 -0
- package/dist/editor/icons/gear.d.ts +2 -0
- package/dist/editor/icons/gear.js +6 -0
- package/dist/editor/icons/gif.d.ts +2 -0
- package/dist/editor/icons/gif.js +6 -0
- package/dist/editor/icons/render.d.ts +5 -0
- package/dist/editor/icons/render.js +8 -0
- package/dist/editor/icons/video.d.ts +5 -0
- package/dist/editor/icons/video.js +8 -0
- package/dist/ffmpeg.d.ts +2 -0
- package/dist/ffmpeg.js +21 -0
- package/dist/file-watcher.d.ts +9 -0
- package/dist/file-watcher.js +35 -0
- package/dist/get-default-out-name.d.ts +5 -0
- package/dist/get-default-out-name.js +10 -0
- package/dist/preview-server/api-routes.d.ts +4 -0
- package/dist/preview-server/api-routes.js +17 -0
- package/dist/preview-server/api-types.d.ts +27 -0
- package/dist/preview-server/api-types.js +2 -0
- package/dist/preview-server/file-existence-watchers.d.ts +13 -0
- package/dist/preview-server/file-existence-watchers.js +62 -0
- package/dist/preview-server/handler.d.ts +9 -0
- package/dist/preview-server/handler.js +34 -0
- package/dist/preview-server/parse-body.d.ts +2 -0
- package/dist/preview-server/parse-body.js +16 -0
- package/dist/preview-server/render-queue/get-default-video-contexts.d.ts +10 -0
- package/dist/preview-server/render-queue/get-default-video-contexts.js +13 -0
- package/dist/preview-server/render-queue/job.d.ts +112 -0
- package/dist/preview-server/render-queue/job.js +2 -0
- package/dist/preview-server/render-queue/make-retry-payload.d.ts +3 -0
- package/dist/preview-server/render-queue/make-retry-payload.js +79 -0
- package/dist/preview-server/render-queue/open-directory-in-finder.d.ts +1 -0
- package/dist/preview-server/render-queue/open-directory-in-finder.js +34 -0
- package/dist/preview-server/render-queue/process-still.d.ts +8 -0
- package/dist/preview-server/render-queue/process-still.js +48 -0
- package/dist/preview-server/render-queue/process-video.d.ts +8 -0
- package/dist/preview-server/render-queue/process-video.js +66 -0
- package/dist/preview-server/render-queue/queue.d.ts +21 -0
- package/dist/preview-server/render-queue/queue.js +185 -0
- package/dist/preview-server/routes/add-render.d.ts +3 -0
- package/dist/preview-server/routes/add-render.js +67 -0
- package/dist/preview-server/routes/cancel-render.d.ts +3 -0
- package/dist/preview-server/routes/cancel-render.js +9 -0
- package/dist/preview-server/routes/open-in-file-explorer.d.ts +3 -0
- package/dist/preview-server/routes/open-in-file-explorer.js +14 -0
- package/dist/preview-server/routes/remove-render.d.ts +3 -0
- package/dist/preview-server/routes/remove-render.js +9 -0
- package/dist/preview-server/routes/subscribe-to-file-existence.d.ts +3 -0
- package/dist/preview-server/routes/subscribe-to-file-existence.js +13 -0
- package/dist/preview-server/routes/unsubscribe-from-file-existence.d.ts +3 -0
- package/dist/preview-server/routes/unsubscribe-from-file-existence.js +13 -0
- package/dist/render-flows/render.d.ts +47 -0
- package/dist/render-flows/render.js +279 -0
- package/dist/render-flows/still.d.ts +30 -0
- package/dist/render-flows/still.js +170 -0
- package/package.json +7 -7
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import type { Codec, PixelFormat, ProResProfile, StillImageFormat } from '@remotion/renderer';
|
|
2
|
+
import type { ApiRoutes } from '../../../preview-server/api-types';
|
|
3
|
+
import type { RenderJob } from '../../../preview-server/render-queue/job';
|
|
4
|
+
export declare const callApi: <Endpoint extends keyof ApiRoutes>(endpoint: Endpoint, body: ApiRoutes[Endpoint]["Request"]) => Promise<ApiRoutes[Endpoint]["Response"]>;
|
|
5
|
+
export declare const addStillRenderJob: ({ compositionId, outName, imageFormat, quality, frame, scale, verbose, }: {
|
|
6
|
+
compositionId: string;
|
|
7
|
+
outName: string;
|
|
8
|
+
imageFormat: StillImageFormat;
|
|
9
|
+
quality: number | null;
|
|
10
|
+
frame: number;
|
|
11
|
+
scale: number;
|
|
12
|
+
verbose: boolean;
|
|
13
|
+
}) => Promise<undefined>;
|
|
14
|
+
export declare const addVideoRenderJob: ({ compositionId, outName, imageFormat, quality, scale, verbose, codec, concurrency, crf, startFrame, endFrame, muted, enforceAudioTrack, proResProfile, pixelFormat, audioBitrate, videoBitrate, everyNthFrame, numberOfGifLoops, delayRenderTimeout, }: {
|
|
15
|
+
compositionId: string;
|
|
16
|
+
outName: string;
|
|
17
|
+
imageFormat: StillImageFormat;
|
|
18
|
+
quality: number | null;
|
|
19
|
+
scale: number;
|
|
20
|
+
verbose: boolean;
|
|
21
|
+
codec: Codec;
|
|
22
|
+
concurrency: number;
|
|
23
|
+
crf: number | null;
|
|
24
|
+
startFrame: number;
|
|
25
|
+
endFrame: number;
|
|
26
|
+
muted: boolean;
|
|
27
|
+
enforceAudioTrack: boolean;
|
|
28
|
+
proResProfile: ProResProfile | null;
|
|
29
|
+
pixelFormat: PixelFormat;
|
|
30
|
+
audioBitrate: string | null;
|
|
31
|
+
videoBitrate: string | null;
|
|
32
|
+
everyNthFrame: number;
|
|
33
|
+
numberOfGifLoops: number | null;
|
|
34
|
+
delayRenderTimeout: number;
|
|
35
|
+
}) => Promise<undefined>;
|
|
36
|
+
export declare const unsubscribeFromFileExistenceWatcher: ({ file, clientId, }: {
|
|
37
|
+
file: string;
|
|
38
|
+
clientId: string;
|
|
39
|
+
}) => Promise<undefined>;
|
|
40
|
+
export declare const subscribeToFileExistenceWatcher: ({ file, clientId, }: {
|
|
41
|
+
file: string;
|
|
42
|
+
clientId: string;
|
|
43
|
+
}) => Promise<boolean>;
|
|
44
|
+
export declare const openInFileExplorer: ({ directory }: {
|
|
45
|
+
directory: string;
|
|
46
|
+
}) => Promise<void>;
|
|
47
|
+
export declare const removeRenderJob: (job: RenderJob) => Promise<undefined>;
|
|
48
|
+
export declare const cancelRenderJob: (job: RenderJob) => Promise<import("../../../preview-server/render-queue/job").CancelRenderResponse>;
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.cancelRenderJob = exports.removeRenderJob = exports.openInFileExplorer = exports.subscribeToFileExistenceWatcher = exports.unsubscribeFromFileExistenceWatcher = exports.addVideoRenderJob = exports.addStillRenderJob = exports.callApi = void 0;
|
|
4
|
+
const callApi = (endpoint, body) => {
|
|
5
|
+
return new Promise((resolve, reject) => {
|
|
6
|
+
fetch(endpoint, {
|
|
7
|
+
method: 'post',
|
|
8
|
+
headers: {
|
|
9
|
+
'content-type': 'application/json',
|
|
10
|
+
},
|
|
11
|
+
body: JSON.stringify(body),
|
|
12
|
+
})
|
|
13
|
+
.then((res) => res.json())
|
|
14
|
+
.then((data) => {
|
|
15
|
+
if (data.success) {
|
|
16
|
+
resolve(data.data);
|
|
17
|
+
}
|
|
18
|
+
else {
|
|
19
|
+
reject(new Error(data.error));
|
|
20
|
+
}
|
|
21
|
+
})
|
|
22
|
+
.catch((err) => {
|
|
23
|
+
reject(err);
|
|
24
|
+
});
|
|
25
|
+
});
|
|
26
|
+
};
|
|
27
|
+
exports.callApi = callApi;
|
|
28
|
+
const addStillRenderJob = ({ compositionId, outName, imageFormat, quality, frame, scale, verbose, }) => {
|
|
29
|
+
return (0, exports.callApi)('/api/render', {
|
|
30
|
+
compositionId,
|
|
31
|
+
type: 'still',
|
|
32
|
+
outName,
|
|
33
|
+
imageFormat,
|
|
34
|
+
quality,
|
|
35
|
+
frame,
|
|
36
|
+
scale,
|
|
37
|
+
verbose,
|
|
38
|
+
});
|
|
39
|
+
};
|
|
40
|
+
exports.addStillRenderJob = addStillRenderJob;
|
|
41
|
+
const addVideoRenderJob = ({ compositionId, outName, imageFormat, quality, scale, verbose, codec, concurrency, crf, startFrame, endFrame, muted, enforceAudioTrack, proResProfile, pixelFormat, audioBitrate, videoBitrate, everyNthFrame, numberOfGifLoops, delayRenderTimeout, }) => {
|
|
42
|
+
return (0, exports.callApi)('/api/render', {
|
|
43
|
+
compositionId,
|
|
44
|
+
type: 'video',
|
|
45
|
+
outName,
|
|
46
|
+
imageFormat,
|
|
47
|
+
quality,
|
|
48
|
+
scale,
|
|
49
|
+
verbose,
|
|
50
|
+
codec,
|
|
51
|
+
concurrency,
|
|
52
|
+
crf,
|
|
53
|
+
endFrame,
|
|
54
|
+
startFrame,
|
|
55
|
+
muted,
|
|
56
|
+
enforceAudioTrack,
|
|
57
|
+
proResProfile,
|
|
58
|
+
pixelFormat,
|
|
59
|
+
audioBitrate,
|
|
60
|
+
videoBitrate,
|
|
61
|
+
everyNthFrame,
|
|
62
|
+
numberOfGifLoops,
|
|
63
|
+
delayRenderTimeout,
|
|
64
|
+
});
|
|
65
|
+
};
|
|
66
|
+
exports.addVideoRenderJob = addVideoRenderJob;
|
|
67
|
+
const unsubscribeFromFileExistenceWatcher = ({ file, clientId, }) => {
|
|
68
|
+
return (0, exports.callApi)('/api/unsubscribe-from-file-existence', { file, clientId });
|
|
69
|
+
};
|
|
70
|
+
exports.unsubscribeFromFileExistenceWatcher = unsubscribeFromFileExistenceWatcher;
|
|
71
|
+
const subscribeToFileExistenceWatcher = async ({ file, clientId, }) => {
|
|
72
|
+
const { exists } = await (0, exports.callApi)('/api/subscribe-to-file-existence', {
|
|
73
|
+
file,
|
|
74
|
+
clientId,
|
|
75
|
+
});
|
|
76
|
+
return exists;
|
|
77
|
+
};
|
|
78
|
+
exports.subscribeToFileExistenceWatcher = subscribeToFileExistenceWatcher;
|
|
79
|
+
const openInFileExplorer = ({ directory }) => {
|
|
80
|
+
const body = {
|
|
81
|
+
directory,
|
|
82
|
+
};
|
|
83
|
+
return (0, exports.callApi)('/api/open-in-file-explorer', body);
|
|
84
|
+
};
|
|
85
|
+
exports.openInFileExplorer = openInFileExplorer;
|
|
86
|
+
const removeRenderJob = (job) => {
|
|
87
|
+
return (0, exports.callApi)('/api/remove-render', {
|
|
88
|
+
jobId: job.id,
|
|
89
|
+
});
|
|
90
|
+
};
|
|
91
|
+
exports.removeRenderJob = removeRenderJob;
|
|
92
|
+
const cancelRenderJob = (job) => {
|
|
93
|
+
return (0, exports.callApi)('/api/cancel', {
|
|
94
|
+
jobId: job.id,
|
|
95
|
+
});
|
|
96
|
+
};
|
|
97
|
+
exports.cancelRenderJob = cancelRenderJob;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { RenderJob } from '../../../preview-server/render-queue/job';
|
|
3
|
+
declare global {
|
|
4
|
+
interface Window {
|
|
5
|
+
remotion_initialRenderQueue: RenderJob[];
|
|
6
|
+
}
|
|
7
|
+
}
|
|
8
|
+
declare type RenderQueueContextType = {
|
|
9
|
+
jobs: RenderJob[];
|
|
10
|
+
};
|
|
11
|
+
export declare const RenderQueueContext: React.Context<RenderQueueContextType>;
|
|
12
|
+
export declare const useShouldRenderLeftSidebarTabs: () => boolean;
|
|
13
|
+
export declare const renderJobsRef: React.RefObject<{
|
|
14
|
+
updateRenderJobs: (jobs: RenderJob[]) => void;
|
|
15
|
+
}>;
|
|
16
|
+
export declare const RenderQueueContextProvider: React.FC<{
|
|
17
|
+
children: React.ReactNode;
|
|
18
|
+
}>;
|
|
19
|
+
export {};
|
|
@@ -0,0 +1,56 @@
|
|
|
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.RenderQueueContextProvider = exports.renderJobsRef = exports.useShouldRenderLeftSidebarTabs = exports.RenderQueueContext = void 0;
|
|
27
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
28
|
+
const react_1 = __importStar(require("react"));
|
|
29
|
+
const client_id_1 = require("../../helpers/client-id");
|
|
30
|
+
exports.RenderQueueContext = react_1.default.createContext({
|
|
31
|
+
jobs: [],
|
|
32
|
+
});
|
|
33
|
+
const useShouldRenderLeftSidebarTabs = () => {
|
|
34
|
+
const context = (0, react_1.useContext)(exports.RenderQueueContext);
|
|
35
|
+
const previewServer = (0, react_1.useContext)(client_id_1.PreviewServerConnectionCtx);
|
|
36
|
+
return context.jobs.length > 0 && previewServer.type === 'connected';
|
|
37
|
+
};
|
|
38
|
+
exports.useShouldRenderLeftSidebarTabs = useShouldRenderLeftSidebarTabs;
|
|
39
|
+
exports.renderJobsRef = (0, react_1.createRef)();
|
|
40
|
+
const RenderQueueContextProvider = ({ children }) => {
|
|
41
|
+
const [jobs, setJobs] = (0, react_1.useState)(window.remotion_initialRenderQueue);
|
|
42
|
+
const value = (0, react_1.useMemo)(() => {
|
|
43
|
+
return {
|
|
44
|
+
jobs,
|
|
45
|
+
};
|
|
46
|
+
}, [jobs]);
|
|
47
|
+
(0, react_1.useImperativeHandle)(exports.renderJobsRef, () => {
|
|
48
|
+
return {
|
|
49
|
+
updateRenderJobs: (newJobs) => {
|
|
50
|
+
setJobs(newJobs);
|
|
51
|
+
},
|
|
52
|
+
};
|
|
53
|
+
}, []);
|
|
54
|
+
return ((0, jsx_runtime_1.jsx)(exports.RenderQueueContext.Provider, { value: value, children: children }));
|
|
55
|
+
};
|
|
56
|
+
exports.RenderQueueContextProvider = RenderQueueContextProvider;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RenderQueue = void 0;
|
|
4
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
+
const react_1 = require("react");
|
|
6
|
+
const colors_1 = require("../../helpers/colors");
|
|
7
|
+
const context_1 = require("./context");
|
|
8
|
+
const RenderQueueItem_1 = require("./RenderQueueItem");
|
|
9
|
+
const separatorStyle = {
|
|
10
|
+
borderBottom: `1px solid ${colors_1.BORDER_COLOR}`,
|
|
11
|
+
};
|
|
12
|
+
const RenderQueue = () => {
|
|
13
|
+
const { jobs } = (0, react_1.useContext)(context_1.RenderQueueContext);
|
|
14
|
+
return ((0, jsx_runtime_1.jsx)("div", { children: jobs.map((j, index) => {
|
|
15
|
+
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));
|
|
16
|
+
}) }));
|
|
17
|
+
};
|
|
18
|
+
exports.RenderQueue = RenderQueue;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.renderQueueItemSubtitleStyle = void 0;
|
|
4
|
+
const colors_1 = require("../../helpers/colors");
|
|
5
|
+
const layout_1 = require("../layout");
|
|
6
|
+
exports.renderQueueItemSubtitleStyle = {
|
|
7
|
+
fontSize: 13,
|
|
8
|
+
color: colors_1.LIGHT_TEXT,
|
|
9
|
+
appearance: 'none',
|
|
10
|
+
border: 'none',
|
|
11
|
+
padding: 0,
|
|
12
|
+
cursor: 'pointer',
|
|
13
|
+
lineHeight: 1.2,
|
|
14
|
+
textAlign: 'left',
|
|
15
|
+
whiteSpace: 'nowrap',
|
|
16
|
+
marginRight: layout_1.SPACING_UNIT,
|
|
17
|
+
overflowX: 'hidden',
|
|
18
|
+
// size smaller than viewport causes actual ellipse
|
|
19
|
+
maxWidth: 500,
|
|
20
|
+
textOverflow: 'ellipsis',
|
|
21
|
+
};
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RenderStillButton = 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 get_default_out_name_1 = require("../../get-default-out-name");
|
|
8
|
+
const get_default_video_contexts_1 = require("../../preview-server/render-queue/get-default-video-contexts");
|
|
9
|
+
const client_id_1 = require("../helpers/client-id");
|
|
10
|
+
const render_1 = require("../icons/render");
|
|
11
|
+
const modals_1 = require("../state/modals");
|
|
12
|
+
const ControlButton_1 = require("./ControlButton");
|
|
13
|
+
const RenderStillButton = () => {
|
|
14
|
+
const { setSelectedModal } = (0, react_1.useContext)(modals_1.ModalsContext);
|
|
15
|
+
const { type } = (0, react_1.useContext)(client_id_1.PreviewServerConnectionCtx);
|
|
16
|
+
const iconStyle = (0, react_1.useMemo)(() => {
|
|
17
|
+
return {
|
|
18
|
+
style: {
|
|
19
|
+
height: 15,
|
|
20
|
+
},
|
|
21
|
+
};
|
|
22
|
+
}, []);
|
|
23
|
+
const tooltip = type === 'connected'
|
|
24
|
+
? 'Export the current frame as a still image'
|
|
25
|
+
: 'Connect to the preview server to render';
|
|
26
|
+
const video = remotion_1.Internals.useVideo();
|
|
27
|
+
const frame = (0, remotion_1.useCurrentFrame)();
|
|
28
|
+
const onClick = (0, react_1.useCallback)(() => {
|
|
29
|
+
var _a, _b;
|
|
30
|
+
if (!video) {
|
|
31
|
+
return null;
|
|
32
|
+
}
|
|
33
|
+
const isVideo = video.durationInFrames > 1;
|
|
34
|
+
const defaults = window.remotion_renderDefaults;
|
|
35
|
+
if (!defaults) {
|
|
36
|
+
throw new TypeError('Expected defaults');
|
|
37
|
+
}
|
|
38
|
+
const { initialAudioCodec, initialRenderType, initialVideoCodec } = (0, get_default_video_contexts_1.getDefaultCodecs)({
|
|
39
|
+
defaultCodec: defaults.codec,
|
|
40
|
+
isStill: !isVideo,
|
|
41
|
+
});
|
|
42
|
+
setSelectedModal({
|
|
43
|
+
type: 'render',
|
|
44
|
+
compositionId: video.id,
|
|
45
|
+
initialFrame: frame,
|
|
46
|
+
initialStillImageFormat: defaults.stillImageFormat,
|
|
47
|
+
initialVideoImageFormat: defaults.videoImageFormat,
|
|
48
|
+
initialOutName: (0, get_default_out_name_1.getDefaultOutLocation)({
|
|
49
|
+
compositionName: video.id,
|
|
50
|
+
defaultExtension: isVideo ? 'mp4' : 'png',
|
|
51
|
+
type: 'asset',
|
|
52
|
+
}),
|
|
53
|
+
initialQuality: defaults.quality,
|
|
54
|
+
initialScale: (_b = (_a = window.remotion_renderDefaults) === null || _a === void 0 ? void 0 : _a.scale) !== null && _b !== void 0 ? _b : 1,
|
|
55
|
+
initialVerbose: defaults.logLevel === 'verbose',
|
|
56
|
+
initialAudioCodec,
|
|
57
|
+
initialRenderType,
|
|
58
|
+
initialVideoCodec,
|
|
59
|
+
initialConcurrency: defaults.concurrency,
|
|
60
|
+
maxConcurrency: defaults.maxConcurrency,
|
|
61
|
+
minConcurrency: defaults.minConcurrency,
|
|
62
|
+
initialMuted: defaults.muted,
|
|
63
|
+
initialEnforceAudioTrack: defaults.enforceAudioTrack,
|
|
64
|
+
initialProResProfile: defaults.proResProfile,
|
|
65
|
+
initialPixelFormat: defaults.pixelFormat,
|
|
66
|
+
initialAudioBitrate: defaults.audioBitrate,
|
|
67
|
+
initialVideoBitrate: defaults.videoBitrate,
|
|
68
|
+
initialEveryNthFrame: defaults.everyNthFrame,
|
|
69
|
+
initialNumberOfGifLoops: defaults.numberOfGifLoops,
|
|
70
|
+
initialDelayRenderTimeout: defaults.delayRenderTimeout,
|
|
71
|
+
});
|
|
72
|
+
}, [video, frame, setSelectedModal]);
|
|
73
|
+
if (!video) {
|
|
74
|
+
return null;
|
|
75
|
+
}
|
|
76
|
+
return ((0, jsx_runtime_1.jsx)(ControlButton_1.ControlButton, { id: "render-modal-button", disabled: type !== 'connected', title: tooltip, "aria-label": tooltip, onClick: onClick, children: (0, jsx_runtime_1.jsx)(render_1.RenderIcon, { svgProps: iconStyle }) }));
|
|
77
|
+
};
|
|
78
|
+
exports.RenderStillButton = RenderStillButton;
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RendersTab = void 0;
|
|
4
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
+
const react_1 = require("react");
|
|
6
|
+
const colors_1 = require("../helpers/colors");
|
|
7
|
+
const layout_1 = require("./layout");
|
|
8
|
+
const context_1 = require("./RenderQueue/context");
|
|
9
|
+
const Tabs_1 = require("./Tabs");
|
|
10
|
+
const row = {
|
|
11
|
+
display: 'flex',
|
|
12
|
+
flexDirection: 'row',
|
|
13
|
+
fontSize: 13,
|
|
14
|
+
justifyContent: 'center',
|
|
15
|
+
color: 'inherit',
|
|
16
|
+
alignItems: 'center',
|
|
17
|
+
};
|
|
18
|
+
const badge = {
|
|
19
|
+
height: 16,
|
|
20
|
+
width: 16,
|
|
21
|
+
borderRadius: 8,
|
|
22
|
+
fontSize: 10,
|
|
23
|
+
display: 'inline-flex',
|
|
24
|
+
justifyContent: 'center',
|
|
25
|
+
alignItems: 'center',
|
|
26
|
+
};
|
|
27
|
+
const RendersTab = ({ selected, onClick }) => {
|
|
28
|
+
const { jobs } = (0, react_1.useContext)(context_1.RenderQueueContext);
|
|
29
|
+
const failedJobs = jobs.filter((j) => j.status === 'failed').length;
|
|
30
|
+
const jobCount = jobs.length;
|
|
31
|
+
const badgeStyle = (0, react_1.useMemo)(() => {
|
|
32
|
+
return {
|
|
33
|
+
...badge,
|
|
34
|
+
backgroundColor: failedJobs > 0 ? colors_1.FAIL_COLOR : 'transparent',
|
|
35
|
+
color: failedJobs > 0 ? 'white' : colors_1.LIGHT_TEXT,
|
|
36
|
+
borderWidth: failedJobs > 0 ? 0 : 1,
|
|
37
|
+
borderStyle: 'solid',
|
|
38
|
+
borderColor: colors_1.LIGHT_TEXT,
|
|
39
|
+
};
|
|
40
|
+
}, [failedJobs]);
|
|
41
|
+
return ((0, jsx_runtime_1.jsx)(Tabs_1.Tab, { selected: selected, onClick: onClick, children: (0, jsx_runtime_1.jsxs)("div", { style: row, children: ["Renders", jobCount > 0 ? ((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)("div", { style: badgeStyle, children: jobCount })] })) : null] }) }));
|
|
42
|
+
};
|
|
43
|
+
exports.RendersTab = RendersTab;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { PropsWithChildren } from 'react';
|
|
2
|
+
import React from 'react';
|
|
3
|
+
export declare type SegmentedControlItem = {
|
|
4
|
+
label: React.ReactNode;
|
|
5
|
+
onClick: () => void;
|
|
6
|
+
key: string;
|
|
7
|
+
selected: boolean;
|
|
8
|
+
};
|
|
9
|
+
export declare const SegmentedControl: React.FC<{
|
|
10
|
+
items: SegmentedControlItem[];
|
|
11
|
+
needsWrapping: boolean;
|
|
12
|
+
}>;
|
|
13
|
+
export declare const Item: React.FC<PropsWithChildren<{
|
|
14
|
+
selected: boolean;
|
|
15
|
+
onClick: () => void;
|
|
16
|
+
}>>;
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Item = exports.SegmentedControl = void 0;
|
|
4
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
+
const react_1 = require("react");
|
|
6
|
+
const colors_1 = require("../helpers/colors");
|
|
7
|
+
const z_index_1 = require("../state/z-index");
|
|
8
|
+
const container = {
|
|
9
|
+
display: 'flex',
|
|
10
|
+
flexDirection: 'row',
|
|
11
|
+
overflow: 'hidden',
|
|
12
|
+
border: '1px solid ' + colors_1.INPUT_BORDER_COLOR_UNHOVERED,
|
|
13
|
+
flexWrap: 'wrap',
|
|
14
|
+
maxWidth: '295px',
|
|
15
|
+
justifyContent: 'flex-end',
|
|
16
|
+
};
|
|
17
|
+
const item = {
|
|
18
|
+
display: 'flex',
|
|
19
|
+
fontSize: 15,
|
|
20
|
+
padding: '4px 12px',
|
|
21
|
+
cursor: 'pointer',
|
|
22
|
+
appearance: 'none',
|
|
23
|
+
border: 'none',
|
|
24
|
+
};
|
|
25
|
+
const SegmentedControl = ({ items, needsWrapping }) => {
|
|
26
|
+
const controlStyle = (0, react_1.useMemo)(() => {
|
|
27
|
+
if (needsWrapping) {
|
|
28
|
+
return {
|
|
29
|
+
...container,
|
|
30
|
+
flexWrap: 'wrap',
|
|
31
|
+
maxWidth: '248px',
|
|
32
|
+
justifyContent: 'flex-end',
|
|
33
|
+
marginBottom: '8px',
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
return {
|
|
37
|
+
...container,
|
|
38
|
+
};
|
|
39
|
+
}, [needsWrapping]);
|
|
40
|
+
return ((0, jsx_runtime_1.jsx)("div", { style: controlStyle, children: items.map((i) => {
|
|
41
|
+
return ((0, jsx_runtime_1.jsx)(exports.Item, { onClick: i.onClick, selected: i.selected, children: i.label }, i.key));
|
|
42
|
+
}) }));
|
|
43
|
+
};
|
|
44
|
+
exports.SegmentedControl = SegmentedControl;
|
|
45
|
+
const Item = ({ selected, onClick, children }) => {
|
|
46
|
+
const [hovered, setHovered] = (0, react_1.useState)(false);
|
|
47
|
+
const { tabIndex } = (0, z_index_1.useZIndex)();
|
|
48
|
+
const onPointerEnter = (0, react_1.useCallback)(() => {
|
|
49
|
+
setHovered(true);
|
|
50
|
+
}, []);
|
|
51
|
+
const onPointerLeave = (0, react_1.useCallback)(() => {
|
|
52
|
+
setHovered(false);
|
|
53
|
+
}, []);
|
|
54
|
+
const itemStyle = (0, react_1.useMemo)(() => {
|
|
55
|
+
return {
|
|
56
|
+
...item,
|
|
57
|
+
backgroundColor: selected ? colors_1.INPUT_BACKGROUND : 'transparent',
|
|
58
|
+
color: selected ? 'white' : hovered ? 'white' : colors_1.LIGHT_TEXT,
|
|
59
|
+
};
|
|
60
|
+
}, [hovered, selected]);
|
|
61
|
+
return ((0, jsx_runtime_1.jsx)("button", { type: "button", onPointerEnter: onPointerEnter, onPointerLeave: onPointerLeave, style: itemStyle, tabIndex: tabIndex, onClick: onClick, children: children }));
|
|
62
|
+
};
|
|
63
|
+
exports.Item = Item;
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SidebarContent = exports.leftSidebarTabs = void 0;
|
|
4
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
+
const react_1 = require("react");
|
|
6
|
+
const colors_1 = require("../helpers/colors");
|
|
7
|
+
const CompositionSelector_1 = require("./CompositionSelector");
|
|
8
|
+
const CurrentCompositionSideEffects_1 = require("./CurrentCompositionSideEffects");
|
|
9
|
+
const RenderQueue_1 = require("./RenderQueue");
|
|
10
|
+
const context_1 = require("./RenderQueue/context");
|
|
11
|
+
const RendersTab_1 = require("./RendersTab");
|
|
12
|
+
const Tabs_1 = require("./Tabs");
|
|
13
|
+
const container = {
|
|
14
|
+
width: '100%',
|
|
15
|
+
};
|
|
16
|
+
const tabsContainer = {
|
|
17
|
+
borderBottom: `1px solid ${colors_1.BORDER_COLOR}`,
|
|
18
|
+
};
|
|
19
|
+
exports.leftSidebarTabs = (0, react_1.createRef)();
|
|
20
|
+
const localStorageKey = 'remotion.sidebarPanel';
|
|
21
|
+
const persistSelectedPanel = (panel) => {
|
|
22
|
+
localStorage.setItem(localStorageKey, panel);
|
|
23
|
+
};
|
|
24
|
+
const getSelectedPanel = (shouldRender) => {
|
|
25
|
+
const panel = localStorage.getItem(localStorageKey);
|
|
26
|
+
if (panel === 'renders' && shouldRender) {
|
|
27
|
+
return 'renders';
|
|
28
|
+
}
|
|
29
|
+
return 'compositions';
|
|
30
|
+
};
|
|
31
|
+
const SidebarContent = () => {
|
|
32
|
+
const shouldRender = (0, context_1.useShouldRenderLeftSidebarTabs)();
|
|
33
|
+
const [panel, setPanel] = (0, react_1.useState)(() => getSelectedPanel(shouldRender));
|
|
34
|
+
const onCompositionsSelected = (0, react_1.useCallback)(() => {
|
|
35
|
+
setPanel('compositions');
|
|
36
|
+
persistSelectedPanel('compositions');
|
|
37
|
+
}, []);
|
|
38
|
+
const onRendersSelected = (0, react_1.useCallback)(() => {
|
|
39
|
+
setPanel('renders');
|
|
40
|
+
persistSelectedPanel('renders');
|
|
41
|
+
}, []);
|
|
42
|
+
(0, react_1.useImperativeHandle)(exports.leftSidebarTabs, () => {
|
|
43
|
+
return {
|
|
44
|
+
selectRendersPanel: () => {
|
|
45
|
+
setPanel('renders');
|
|
46
|
+
persistSelectedPanel('renders');
|
|
47
|
+
},
|
|
48
|
+
};
|
|
49
|
+
}, []);
|
|
50
|
+
return ((0, jsx_runtime_1.jsxs)("div", { style: container, children: [shouldRender ? ((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)(RendersTab_1.RendersTab, { onClick: onRendersSelected, selected: panel === 'renders' })] }) })) : null, panel === 'renders' && shouldRender ? ((0, jsx_runtime_1.jsx)(RenderQueue_1.RenderQueue, {})) : ((0, jsx_runtime_1.jsx)(CompositionSelector_1.CompositionSelector, {})), (0, jsx_runtime_1.jsx)(CurrentCompositionSideEffects_1.CurrentCompositionKeybindings, {}), (0, jsx_runtime_1.jsx)(CurrentCompositionSideEffects_1.TitleUpdater, {})] }));
|
|
51
|
+
};
|
|
52
|
+
exports.SidebarContent = SidebarContent;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export declare const Tabs: React.FC<{
|
|
3
|
+
children: React.ReactNode;
|
|
4
|
+
style?: React.CSSProperties;
|
|
5
|
+
}>;
|
|
6
|
+
export declare const Tab: React.FC<{
|
|
7
|
+
children: React.ReactNode;
|
|
8
|
+
onClick: React.MouseEventHandler<HTMLButtonElement>;
|
|
9
|
+
style?: React.CSSProperties;
|
|
10
|
+
selected: boolean;
|
|
11
|
+
}>;
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Tab = exports.Tabs = void 0;
|
|
4
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
+
const react_1 = require("react");
|
|
6
|
+
const colors_1 = require("../../helpers/colors");
|
|
7
|
+
const z_index_1 = require("../../state/z-index");
|
|
8
|
+
const tabsContainer = {
|
|
9
|
+
display: 'flex',
|
|
10
|
+
flexDirection: 'row',
|
|
11
|
+
};
|
|
12
|
+
const Tabs = ({ 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.Tabs = Tabs;
|
|
22
|
+
const selectorButton = {
|
|
23
|
+
border: 'none',
|
|
24
|
+
flex: 1,
|
|
25
|
+
padding: 8,
|
|
26
|
+
fontSize: 13,
|
|
27
|
+
};
|
|
28
|
+
const Tab = ({ children, onClick, style, selected }) => {
|
|
29
|
+
const [hovered, setHovered] = (0, react_1.useState)(false);
|
|
30
|
+
const { tabIndex } = (0, z_index_1.useZIndex)();
|
|
31
|
+
const onPointerEnter = (0, react_1.useCallback)(() => {
|
|
32
|
+
setHovered(true);
|
|
33
|
+
}, []);
|
|
34
|
+
const onPointerLeave = (0, react_1.useCallback)(() => {
|
|
35
|
+
setHovered(false);
|
|
36
|
+
}, []);
|
|
37
|
+
const definiteStyle = (0, react_1.useMemo)(() => {
|
|
38
|
+
return {
|
|
39
|
+
...selectorButton,
|
|
40
|
+
backgroundColor: selected
|
|
41
|
+
? colors_1.SELECTED_BACKGROUND
|
|
42
|
+
: hovered
|
|
43
|
+
? colors_1.CLEAR_HOVER
|
|
44
|
+
: 'transparent',
|
|
45
|
+
color: selected ? 'white' : colors_1.LIGHT_TEXT,
|
|
46
|
+
...style,
|
|
47
|
+
};
|
|
48
|
+
}, [hovered, selected, style]);
|
|
49
|
+
return ((0, jsx_runtime_1.jsx)("button", { style: definiteStyle, type: "button", onClick: onClick, tabIndex: tabIndex, onPointerLeave: onPointerLeave, onPointerEnter: onPointerEnter, children: children }));
|
|
50
|
+
};
|
|
51
|
+
exports.Tab = Tab;
|
|
@@ -18,6 +18,6 @@ const container = {
|
|
|
18
18
|
paddingLeft: timeline_layout_1.TIMELINE_PADDING + 5,
|
|
19
19
|
};
|
|
20
20
|
const MaxTimelineTracksReached = () => {
|
|
21
|
-
return ((0, jsx_runtime_1.jsxs)("div", { style: container, children: ["Limited display to ", exports.MAX_TIMELINE_TRACKS, " tracks to sustain performance.", '', "You can change this by setting Config.
|
|
21
|
+
return ((0, jsx_runtime_1.jsxs)("div", { style: container, children: ["Limited display to ", exports.MAX_TIMELINE_TRACKS, " tracks to sustain performance.", '', "You can change this by setting Config.setMaxTimelineTracks() in your remotion.config.ts file."] }));
|
|
22
22
|
};
|
|
23
23
|
exports.MaxTimelineTracksReached = MaxTimelineTracksReached;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
declare type PreviewServerState = {
|
|
3
|
+
type: 'init';
|
|
4
|
+
} | {
|
|
5
|
+
type: 'connected';
|
|
6
|
+
clientId: string;
|
|
7
|
+
} | {
|
|
8
|
+
type: 'disconnected';
|
|
9
|
+
};
|
|
10
|
+
export declare const PreviewServerConnectionCtx: React.Context<PreviewServerState>;
|
|
11
|
+
export declare const previewServerConnectionRef: React.RefObject<{
|
|
12
|
+
set: (jobs: PreviewServerState) => void;
|
|
13
|
+
}>;
|
|
14
|
+
export declare const PreviewServerConnection: React.FC<{
|
|
15
|
+
children: React.ReactNode;
|
|
16
|
+
}>;
|
|
17
|
+
export {};
|