@remotion/studio 4.0.89 → 4.0.90
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/.eslintrc +33 -28
- package/.turbo/turbo-build.log +1 -1
- package/dist/Studio.js +6 -1
- package/dist/components/AssetSelectorItem.js +2 -1
- package/dist/components/ControlButton.d.ts +1 -1
- package/dist/components/CopyButton.js +1 -1
- package/dist/components/CurrentComposition.d.ts +1 -2
- package/dist/components/CurrentCompositionSideEffects.d.ts +3 -1
- package/dist/components/CurrentCompositionSideEffects.js +5 -2
- package/dist/components/Editor.d.ts +1 -0
- package/dist/components/Editor.js +6 -3
- package/dist/components/EditorContent.d.ts +3 -1
- package/dist/components/EditorContent.js +2 -2
- package/dist/components/EditorContexts.d.ts +1 -0
- package/dist/components/EditorContexts.js +2 -2
- package/dist/components/FilePreview.js +2 -2
- package/dist/components/InitialCompositionLoader.js +3 -2
- package/dist/components/MenuToolbar.d.ts +3 -1
- package/dist/components/MenuToolbar.js +3 -3
- package/dist/components/Modals.d.ts +3 -1
- package/dist/components/Modals.js +2 -2
- package/dist/components/NewComposition/NewCompCode.d.ts +1 -2
- package/dist/components/NewComposition/RemInput.d.ts +1 -1
- package/dist/components/NewComposition/RemInputTypeColor.d.ts +1 -1
- package/dist/components/NewComposition/RemTextarea.d.ts +1 -1
- package/dist/components/OptionsPanel.d.ts +3 -1
- package/dist/components/OptionsPanel.js +7 -4
- package/dist/components/PreviewToolbar.d.ts +3 -1
- package/dist/components/PreviewToolbar.js +2 -2
- package/dist/components/QuickSwitcher/QuickSwitcher.d.ts +1 -0
- package/dist/components/QuickSwitcher/QuickSwitcher.js +2 -2
- package/dist/components/QuickSwitcher/QuickSwitcherContent.d.ts +1 -0
- package/dist/components/QuickSwitcher/QuickSwitcherContent.js +2 -2
- package/dist/components/RenderButton.js +1 -1
- package/dist/components/RenderModal/DataEditor.d.ts +1 -0
- package/dist/components/RenderModal/DataEditor.js +3 -3
- package/dist/components/RenderModal/GuiRenderStatus.d.ts +1 -1
- package/dist/components/RenderModal/OptionExplainer.js +1 -1
- package/dist/components/RenderModal/RenderModal.js +10 -10
- package/dist/components/RenderModal/RenderModalAdvanced.d.ts +1 -1
- package/dist/components/RenderModal/RenderModalAudio.js +2 -2
- package/dist/components/RenderModal/RenderModalEnvironmentVariables.js +1 -1
- package/dist/components/RenderModal/RenderModalInput.d.ts +1 -1
- package/dist/components/RenderModal/RenderModalJSONPropsEditor.js +1 -1
- package/dist/components/RenderModal/RenderStatusModal.js +2 -2
- package/dist/components/RenderModal/SchemaEditor/SchemaErrorMessages.d.ts +3 -3
- package/dist/components/RenderModal/SchemaEditor/SchemaErrorMessages.js +2 -2
- package/dist/components/RenderModal/SchemaEditor/extract-enum-json-paths.d.ts +0 -1
- package/dist/components/RenderModal/SchemaEditor/local-state.d.ts +1 -1
- package/dist/components/RenderQueue/RenderQueueCopyToClipboard.d.ts +1 -1
- package/dist/components/RenderQueue/RenderQueueError.d.ts +1 -1
- package/dist/components/RenderQueue/RenderQueueItem.d.ts +1 -1
- package/dist/components/RenderQueue/RenderQueueItem.js +2 -1
- package/dist/components/RenderQueue/RenderQueueItemCancelButton.d.ts +1 -1
- package/dist/components/RenderQueue/RenderQueueItemStatus.d.ts +1 -1
- package/dist/components/RenderQueue/RenderQueueOpenInFolder.d.ts +1 -1
- package/dist/components/RenderQueue/RenderQueueOutputName.d.ts +1 -1
- package/dist/components/RenderQueue/RenderQueueProgressMessage.d.ts +1 -1
- package/dist/components/RenderQueue/RenderQueueRemoveItem.d.ts +1 -1
- package/dist/components/RenderQueue/RenderQueueRepeat.d.ts +1 -1
- package/dist/components/RenderQueue/RenderQueueRepeat.js +1 -1
- package/dist/components/RenderQueue/actions.d.ts +5 -7
- package/dist/components/RenderQueue/actions.js +7 -1
- package/dist/components/RenderQueue/context.d.ts +2 -2
- package/dist/components/RenderQueue/context.js +2 -1
- package/dist/components/ResetZoomButton.js +1 -1
- package/dist/components/Timeline/MaxTimelineTracks.d.ts +0 -1
- package/dist/components/Timeline/MaxTimelineTracks.js +3 -3
- package/dist/components/Timeline/TimelineStack/index.js +9 -8
- package/dist/components/TopPanel.d.ts +3 -1
- package/dist/components/TopPanel.js +2 -2
- package/dist/components/UpdateCheck.d.ts +2 -3
- package/dist/components/ZoomPersistor.js +4 -3
- package/dist/error-overlay/entry-basic.d.ts +95 -1
- package/dist/error-overlay/entry-basic.js +20 -15
- package/dist/error-overlay/react-overlay/effects/resolve-file-source.d.ts +1 -2
- package/dist/error-overlay/react-overlay/listen-to-runtime-errors.d.ts +7 -1
- package/dist/error-overlay/react-overlay/listen-to-runtime-errors.js +2 -7
- package/dist/error-overlay/react-overlay/utils/get-lines-around.d.ts +1 -1
- package/dist/error-overlay/react-overlay/utils/get-stack-frames.d.ts +7 -1
- package/dist/error-overlay/react-overlay/utils/get-stack-frames.js +0 -6
- package/dist/error-overlay/react-overlay/utils/parser.d.ts +7 -1
- package/dist/error-overlay/react-overlay/utils/parser.js +5 -11
- package/dist/error-overlay/react-overlay/utils/unmapper.d.ts +7 -1
- package/dist/error-overlay/react-overlay/utils/unmapper.js +0 -8
- package/dist/error-overlay/remotion-overlay/AskOnDiscord.js +1 -1
- package/dist/error-overlay/remotion-overlay/CodeFrame.d.ts +1 -1
- package/dist/error-overlay/remotion-overlay/DismissButton.js +2 -1
- package/dist/error-overlay/remotion-overlay/ErrorDisplay.js +2 -2
- package/dist/error-overlay/remotion-overlay/HelpLink.js +1 -1
- package/dist/error-overlay/remotion-overlay/OpenInEditor.d.ts +1 -1
- package/dist/error-overlay/remotion-overlay/OpenInEditor.js +1 -2
- package/dist/error-overlay/remotion-overlay/Retry.js +1 -1
- package/dist/error-overlay/remotion-overlay/SearchGitHubIssues.js +1 -1
- package/dist/error-overlay/remotion-overlay/ShortcutHint.d.ts +1 -1
- package/dist/error-overlay/remotion-overlay/ShortcutHint.js +8 -8
- package/dist/error-overlay/remotion-overlay/StackFrame.d.ts +1 -1
- package/dist/error-overlay/remotion-overlay/StackFrame.js +1 -1
- package/dist/error-overlay/remotion-overlay/carets.d.ts +1 -1
- package/dist/helpers/client-id.d.ts +2 -1
- package/dist/helpers/client-id.js +7 -3
- package/dist/helpers/colors.d.ts +1 -1
- package/dist/helpers/document-title.d.ts +1 -1
- package/dist/helpers/get-location-of-sequence.d.ts +1 -1
- package/dist/helpers/open-in-editor.d.ts +1 -1
- package/dist/helpers/presets-labels.d.ts +1 -1
- package/dist/helpers/url-state.d.ts +4 -0
- package/dist/helpers/url-state.js +33 -0
- package/dist/helpers/use-menu-structure.d.ts +1 -1
- package/dist/helpers/use-menu-structure.js +148 -113
- package/dist/helpers/use-studio-canvas-dimensions.d.ts +4 -4
- package/dist/helpers/use-studio-canvas-dimensions.js +4 -4
- package/dist/hot-middleware-client/process-update.js +3 -2
- package/dist/icons/Checkmark.d.ts +1 -2
- package/dist/icons/audio.d.ts +1 -1
- package/dist/icons/caret.d.ts +2 -2
- package/dist/icons/data.d.ts +1 -1
- package/dist/icons/frame.d.ts +1 -1
- package/dist/icons/gear.d.ts +1 -1
- package/dist/icons/gif.d.ts +1 -1
- package/dist/index.d.ts +2 -64
- package/dist/index.js +3 -25
- package/dist/previewEntry.d.ts +1 -1
- package/dist/previewEntry.js +6 -3
- package/package.json +23 -10
- package/prettierrc.js +14 -0
- package/tsconfig.tsbuildinfo +1 -1
- package/dist/ansi/ansi-diff.d.ts +0 -41
- package/dist/ansi/ansi-diff.js +0 -220
- package/dist/ansi/ansi-split.d.ts +0 -2
- package/dist/ansi/ansi-split.js +0 -44
- package/dist/better-opn/index.d.ts +0 -6
- package/dist/better-opn/index.js +0 -202
- package/dist/codemods/stringify-with-path.d.ts +0 -5
- package/dist/codemods/stringify-with-path.js +0 -49
- package/dist/codemods/update-default-props.d.ts +0 -7
- package/dist/codemods/update-default-props.js +0 -137
- package/dist/components/Studio.d.ts +0 -4
- package/dist/components/Studio.js +0 -16
- package/dist/components/render-defaults.d.ts +0 -40
- package/dist/components/render-defaults.js +0 -2
- package/dist/error-overlay/react-overlay/effects/map-error-to-react-stack.d.ts +0 -7
- package/dist/error-overlay/react-overlay/effects/map-error-to-react-stack.js +0 -46
- package/dist/error-overlay/react-overlay/utils/get-file-source.d.ts +0 -1
- package/dist/error-overlay/react-overlay/utils/get-file-source.js +0 -22
- package/dist/error-overlay/react-overlay/utils/open-in-editor.d.ts +0 -16
- package/dist/error-overlay/react-overlay/utils/open-in-editor.js +0 -503
- package/dist/error-overlay/react-overlay/utils/source-map-endpoint.d.ts +0 -1
- package/dist/error-overlay/react-overlay/utils/source-map-endpoint.js +0 -4
- package/dist/error-overlay/react-overlay/utils/stack-frame.d.ts +0 -40
- package/dist/error-overlay/react-overlay/utils/stack-frame.js +0 -31
- package/dist/error-overlay/remotion-overlay/Button.d.ts +0 -11
- package/dist/error-overlay/remotion-overlay/Button.js +0 -35
- package/dist/event-source-events.d.ts +0 -31
- package/dist/event-source-events.js +0 -2
- package/dist/file-watcher.d.ts +0 -9
- package/dist/file-watcher.js +0 -35
- package/dist/get-default-out-name.d.ts +0 -5
- package/dist/get-default-out-name.js +0 -10
- package/dist/get-latest-remotion-version.d.ts +0 -1
- package/dist/get-latest-remotion-version.js +0 -31
- package/dist/get-network-address.d.ts +0 -1
- package/dist/get-network-address.js +0 -16
- package/dist/helpers/format-bytes.d.ts +0 -6
- package/dist/helpers/format-bytes.js +0 -103
- package/dist/helpers/open-directory-in-finder.d.ts +0 -1
- package/dist/helpers/open-directory-in-finder.js +0 -49
- package/dist/max-timeline-tracks.d.ts +0 -2
- package/dist/max-timeline-tracks.js +0 -25
- package/dist/preview-server/api-routes.d.ts +0 -4
- package/dist/preview-server/api-routes.js +0 -25
- package/dist/preview-server/api-types.d.ts +0 -40
- package/dist/preview-server/api-types.js +0 -2
- package/dist/preview-server/dev-middleware/compatible-api.d.ts +0 -7
- package/dist/preview-server/dev-middleware/compatible-api.js +0 -20
- package/dist/preview-server/dev-middleware/get-paths.d.ts +0 -7
- package/dist/preview-server/dev-middleware/get-paths.js +0 -19
- package/dist/preview-server/dev-middleware/index.d.ts +0 -3
- package/dist/preview-server/dev-middleware/index.js +0 -27
- package/dist/preview-server/dev-middleware/middleware.d.ts +0 -9
- package/dist/preview-server/dev-middleware/middleware.js +0 -222
- package/dist/preview-server/dev-middleware/range-parser.d.ts +0 -15
- package/dist/preview-server/dev-middleware/range-parser.js +0 -96
- package/dist/preview-server/dev-middleware/ready.d.ts +0 -3
- package/dist/preview-server/dev-middleware/ready.js +0 -11
- package/dist/preview-server/dev-middleware/setup-hooks.d.ts +0 -2
- package/dist/preview-server/dev-middleware/setup-hooks.js +0 -52
- package/dist/preview-server/dev-middleware/setup-output-filesystem.d.ts +0 -2
- package/dist/preview-server/dev-middleware/setup-output-filesystem.js +0 -13
- package/dist/preview-server/dev-middleware/types.d.ts +0 -10
- package/dist/preview-server/dev-middleware/types.js +0 -2
- package/dist/preview-server/env-supports-fs-recursive.d.ts +0 -1
- package/dist/preview-server/env-supports-fs-recursive.js +0 -18
- package/dist/preview-server/file-existence-watchers.d.ts +0 -13
- package/dist/preview-server/file-existence-watchers.js +0 -62
- package/dist/preview-server/get-absolute-public-dir.d.ts +0 -4
- package/dist/preview-server/get-absolute-public-dir.js +0 -14
- package/dist/preview-server/get-package-manager.d.ts +0 -10
- package/dist/preview-server/get-package-manager.js +0 -62
- package/dist/preview-server/handler.d.ts +0 -12
- package/dist/preview-server/handler.js +0 -36
- package/dist/preview-server/hot-middleware/client.d.ts +0 -21
- package/dist/preview-server/hot-middleware/client.js +0 -179
- package/dist/preview-server/hot-middleware/index.d.ts +0 -102
- package/dist/preview-server/hot-middleware/index.js +0 -149
- package/dist/preview-server/hot-middleware/process-update.d.ts +0 -7
- package/dist/preview-server/hot-middleware/process-update.js +0 -162
- package/dist/preview-server/hot-middleware/types.d.ts +0 -27
- package/dist/preview-server/hot-middleware/types.js +0 -10
- package/dist/preview-server/job.d.ts +0 -232
- package/dist/preview-server/job.js +0 -2
- package/dist/preview-server/live-events.d.ts +0 -10
- package/dist/preview-server/live-events.js +0 -76
- package/dist/preview-server/parse-body.d.ts +0 -2
- package/dist/preview-server/parse-body.js +0 -16
- package/dist/preview-server/project-info.d.ts +0 -5
- package/dist/preview-server/project-info.js +0 -32
- package/dist/preview-server/public-folder.d.ts +0 -12
- package/dist/preview-server/public-folder.js +0 -58
- package/dist/preview-server/retry-payload.d.ts +0 -3
- package/dist/preview-server/retry-payload.js +0 -142
- package/dist/preview-server/routes/add-render.d.ts +0 -3
- package/dist/preview-server/routes/add-render.js +0 -122
- package/dist/preview-server/routes/can-update-default-props.d.ts +0 -4
- package/dist/preview-server/routes/can-update-default-props.js +0 -40
- package/dist/preview-server/routes/cancel-render.d.ts +0 -3
- package/dist/preview-server/routes/cancel-render.js +0 -8
- package/dist/preview-server/routes/copy-still-to-clipboard-handler.d.ts +0 -3
- package/dist/preview-server/routes/copy-still-to-clipboard-handler.js +0 -17
- package/dist/preview-server/routes/open-in-file-explorer.d.ts +0 -3
- package/dist/preview-server/routes/open-in-file-explorer.js +0 -8
- package/dist/preview-server/routes/remove-render.d.ts +0 -3
- package/dist/preview-server/routes/remove-render.js +0 -8
- package/dist/preview-server/routes/subscribe-to-file-existence.d.ts +0 -3
- package/dist/preview-server/routes/subscribe-to-file-existence.js +0 -13
- package/dist/preview-server/routes/unsubscribe-from-file-existence.d.ts +0 -3
- package/dist/preview-server/routes/unsubscribe-from-file-existence.js +0 -13
- package/dist/preview-server/routes/update-available.d.ts +0 -3
- package/dist/preview-server/routes/update-available.js +0 -9
- package/dist/preview-server/routes/update-default-props.d.ts +0 -3
- package/dist/preview-server/routes/update-default-props.js +0 -34
- package/dist/preview-server/serve-static.d.ts +0 -14
- package/dist/preview-server/serve-static.js +0 -75
- package/dist/preview-server/start-server.d.ts +0 -31
- package/dist/preview-server/start-server.js +0 -127
- package/dist/preview-server/update-available.d.ts +0 -3
- package/dist/preview-server/update-available.js +0 -47
- package/dist/required-chromium-options.d.ts +0 -3
- package/dist/required-chromium-options.js +0 -2
- package/dist/routes.d.ts +0 -25
- package/dist/routes.js +0 -242
- package/dist/server-ready.d.ts +0 -2
- package/dist/server-ready.js +0 -13
- package/dist/start-studio.d.ts +0 -26
- package/dist/start-studio.js +0 -117
- package/dist/watch-root-file.d.ts +0 -1
- package/dist/watch-root-file.js +0 -22
- package/out.txt +0 -1
- package/web/beep.wav +0 -0
- package/web/favicon.png +0 -0
- /package/{styles/styles.css → styles.css} +0 -0
package/.eslintrc
CHANGED
|
@@ -1,30 +1,35 @@
|
|
|
1
1
|
{
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
2
|
+
"extends": "@jonny",
|
|
3
|
+
"rules": {
|
|
4
|
+
"no-console": "error",
|
|
5
|
+
"no-restricted-imports": [
|
|
6
|
+
"error",
|
|
7
|
+
{
|
|
8
|
+
"patterns": [
|
|
9
|
+
"@remotion/*/src",
|
|
10
|
+
"@remotion/*/src/*",
|
|
11
|
+
"@remotion/*/dist/*",
|
|
12
|
+
"remotion/src/*"
|
|
13
|
+
]
|
|
14
|
+
}
|
|
15
|
+
],
|
|
16
|
+
"@typescript-eslint/no-use-before-define": "off",
|
|
17
|
+
"@typescript-eslint/no-restricted-imports": [
|
|
18
|
+
"error",
|
|
19
|
+
{
|
|
20
|
+
"paths": [
|
|
21
|
+
{
|
|
22
|
+
"name": "zod",
|
|
23
|
+
"message": "Can only import zod as a type",
|
|
24
|
+
"allowTypeImports": true
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
"name": "@remotion/zod-types",
|
|
28
|
+
"message": "Can only import @remotion/zod-types as a type",
|
|
29
|
+
"allowTypeImports": true
|
|
30
|
+
}
|
|
31
|
+
]
|
|
32
|
+
}
|
|
33
|
+
]
|
|
34
|
+
}
|
|
30
35
|
}
|
package/.turbo/turbo-build.log
CHANGED
package/dist/Studio.js
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.Studio = void 0;
|
|
4
4
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
+
const react_1 = require("react");
|
|
5
6
|
const react_dom_1 = require("react-dom");
|
|
6
7
|
const remotion_1 = require("remotion");
|
|
7
8
|
require("../styles.css");
|
|
@@ -12,7 +13,11 @@ const getServerDisconnectedDomElement = () => {
|
|
|
12
13
|
return document.getElementById('server-disconnected-overlay');
|
|
13
14
|
};
|
|
14
15
|
const Studio = ({ rootComponent, readOnly }) => {
|
|
15
|
-
|
|
16
|
+
(0, react_1.useLayoutEffect)(() => {
|
|
17
|
+
window.remotion_isStudio = true;
|
|
18
|
+
remotion_1.Internals.enableSequenceStackTraces();
|
|
19
|
+
}, []);
|
|
20
|
+
return ((0, jsx_runtime_1.jsx)(remotion_1.Internals.RemotionRoot, { numberOfAudioTags: window.remotion_numberOfAudioTags, children: (0, jsx_runtime_1.jsxs)(EditorContexts_1.EditorContexts, { readOnlyStudio: readOnly, children: [(0, jsx_runtime_1.jsx)(Editor_1.Editor, { readOnlyStudio: readOnly, Root: rootComponent }), readOnly
|
|
16
21
|
? null
|
|
17
22
|
: (0, react_dom_1.createPortal)((0, jsx_runtime_1.jsx)(ServerDisconnected_1.ServerDisconnected, {}), getServerDisconnectedDomElement())] }) }));
|
|
18
23
|
};
|
|
@@ -30,6 +30,7 @@ const remotion_1 = require("remotion");
|
|
|
30
30
|
const no_react_1 = require("remotion/no-react");
|
|
31
31
|
const colors_1 = require("../helpers/colors");
|
|
32
32
|
const copy_text_1 = require("../helpers/copy-text");
|
|
33
|
+
const url_state_1 = require("../helpers/url-state");
|
|
33
34
|
const clipboard_1 = require("../icons/clipboard");
|
|
34
35
|
const file_1 = require("../icons/file");
|
|
35
36
|
const folder_1 = require("../icons/folder");
|
|
@@ -133,7 +134,7 @@ const AssetSelectorItem = ({ item, tabIndex, level, parentFolder }) => {
|
|
|
133
134
|
? parentFolder + '/' + item.name
|
|
134
135
|
: item.name;
|
|
135
136
|
setCanvasContent({ type: 'asset', asset: relativePath });
|
|
136
|
-
|
|
137
|
+
(0, url_state_1.pushUrl)(`/assets/${relativePath}`);
|
|
137
138
|
}, [item.name, parentFolder, setCanvasContent]);
|
|
138
139
|
const style = (0, react_1.useMemo)(() => {
|
|
139
140
|
return {
|
|
@@ -2,4 +2,4 @@ import React from 'react';
|
|
|
2
2
|
export declare const CONTROL_BUTTON_PADDING = 6;
|
|
3
3
|
export declare const ControlButton: (props: React.DetailedHTMLProps<React.ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement> & {
|
|
4
4
|
title: string;
|
|
5
|
-
}) => JSX.Element;
|
|
5
|
+
}) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -3,8 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.CopyButton = void 0;
|
|
4
4
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
5
|
const react_1 = require("react");
|
|
6
|
-
const Button_1 = require("../error-overlay/remotion-overlay/Button");
|
|
7
6
|
const copy_text_1 = require("../helpers/copy-text");
|
|
7
|
+
const Button_1 = require("./Button");
|
|
8
8
|
const layout_1 = require("./layout");
|
|
9
9
|
const NotificationCenter_1 = require("./Notifications/NotificationCenter");
|
|
10
10
|
const iconStyle = {
|
|
@@ -33,7 +33,7 @@ const TitleUpdater = () => {
|
|
|
33
33
|
return null;
|
|
34
34
|
};
|
|
35
35
|
exports.TitleUpdater = TitleUpdater;
|
|
36
|
-
const CurrentCompositionKeybindings = () => {
|
|
36
|
+
const CurrentCompositionKeybindings = ({ readOnlyStudio }) => {
|
|
37
37
|
const keybindings = (0, use_keybinding_1.useKeybinding)();
|
|
38
38
|
const video = remotion_1.Internals.useVideo();
|
|
39
39
|
const { type } = (0, react_1.useContext)(client_id_1.StudioServerConnectionCtx).previewServerState;
|
|
@@ -41,13 +41,16 @@ const CurrentCompositionKeybindings = () => {
|
|
|
41
41
|
if (!video) {
|
|
42
42
|
return;
|
|
43
43
|
}
|
|
44
|
+
if (readOnlyStudio) {
|
|
45
|
+
return (0, NotificationCenter_1.sendErrorNotification)('Studio is read-only');
|
|
46
|
+
}
|
|
44
47
|
if (type !== 'connected') {
|
|
45
48
|
(0, NotificationCenter_1.sendErrorNotification)('Studio server is offline');
|
|
46
49
|
return;
|
|
47
50
|
}
|
|
48
51
|
const renderButton = document.getElementById('render-modal-button');
|
|
49
52
|
renderButton.click();
|
|
50
|
-
}, [type, video]);
|
|
53
|
+
}, [readOnlyStudio, type, video]);
|
|
51
54
|
(0, react_1.useEffect)(() => {
|
|
52
55
|
const binding = keybindings.registerKeybinding({
|
|
53
56
|
event: 'keydown',
|
|
@@ -20,8 +20,11 @@ const background = {
|
|
|
20
20
|
flexDirection: 'column',
|
|
21
21
|
position: 'absolute',
|
|
22
22
|
};
|
|
23
|
-
const Editor = ({ Root }) => {
|
|
23
|
+
const Editor = ({ Root, readOnlyStudio, }) => {
|
|
24
24
|
(0, react_1.useEffect)(() => {
|
|
25
|
+
if (readOnlyStudio) {
|
|
26
|
+
return;
|
|
27
|
+
}
|
|
25
28
|
const listenToChanges = (e) => {
|
|
26
29
|
if (window.remotion_unsavedProps) {
|
|
27
30
|
e.returnValue = 'Are you sure you want to leave?';
|
|
@@ -31,7 +34,7 @@ const Editor = ({ Root }) => {
|
|
|
31
34
|
return () => {
|
|
32
35
|
window.removeEventListener('beforeunload', listenToChanges);
|
|
33
36
|
};
|
|
34
|
-
}, []);
|
|
35
|
-
return ((0, jsx_runtime_1.jsx)(z_index_1.HigherZIndex, { onEscape: noop_1.noop, onOutsideClick: noop_1.noop, children: (0, jsx_runtime_1.jsxs)(timeline_zoom_1.TimelineZoomContext, { children: [(0, jsx_runtime_1.jsxs)("div", { style: background, children: [(0, jsx_runtime_1.jsx)(Root, {}), (0, jsx_runtime_1.jsxs)(remotion_1.Internals.CanUseRemotionHooksProvider, { children: [(0, jsx_runtime_1.jsx)(EditorContent_1.EditorContent, {}), (0, jsx_runtime_1.jsx)(GlobalKeybindings_1.GlobalKeybindings, {})] }), (0, jsx_runtime_1.jsx)(NotificationCenter_1.NotificationCenter, {})] }), (0, jsx_runtime_1.jsx)(Modals_1.Modals, {})] }) }));
|
|
37
|
+
}, [readOnlyStudio]);
|
|
38
|
+
return ((0, jsx_runtime_1.jsx)(z_index_1.HigherZIndex, { onEscape: noop_1.noop, onOutsideClick: noop_1.noop, children: (0, jsx_runtime_1.jsxs)(timeline_zoom_1.TimelineZoomContext, { children: [(0, jsx_runtime_1.jsxs)("div", { style: background, children: [(0, jsx_runtime_1.jsx)(Root, {}), (0, jsx_runtime_1.jsxs)(remotion_1.Internals.CanUseRemotionHooksProvider, { children: [(0, jsx_runtime_1.jsx)(EditorContent_1.EditorContent, { readOnlyStudio: readOnlyStudio }), (0, jsx_runtime_1.jsx)(GlobalKeybindings_1.GlobalKeybindings, {})] }), (0, jsx_runtime_1.jsx)(NotificationCenter_1.NotificationCenter, {})] }), (0, jsx_runtime_1.jsx)(Modals_1.Modals, { readOnlyStudio: readOnlyStudio })] }) }));
|
|
36
39
|
};
|
|
37
40
|
exports.Editor = Editor;
|
|
@@ -19,11 +19,11 @@ const container = {
|
|
|
19
19
|
flex: 1,
|
|
20
20
|
height: 0,
|
|
21
21
|
};
|
|
22
|
-
const EditorContent = () => {
|
|
22
|
+
const EditorContent = ({ readOnlyStudio }) => {
|
|
23
23
|
const isStill = (0, is_current_selected_still_1.useIsStill)();
|
|
24
24
|
const { canvasContent } = (0, react_1.useContext)(remotion_1.Internals.CompositionManager);
|
|
25
25
|
// Preventing multiple renders so the update check doesn't get rendered twice and needs to be aborted
|
|
26
26
|
const onlyTopPanel = canvasContent === null || isStill || canvasContent.type !== 'composition';
|
|
27
|
-
return ((0, jsx_runtime_1.jsxs)("div", { style: container, children: [(0, jsx_runtime_1.jsx)(InitialCompositionLoader_1.InitialCompositionLoader, {}), (0, jsx_runtime_1.jsx)(MenuToolbar_1.MenuToolbar, {}), onlyTopPanel ? ((0, jsx_runtime_1.jsx)(TopPanel_1.TopPanel, {})) : ((0, jsx_runtime_1.jsxs)(SplitterContainer_1.SplitterContainer, { orientation: "horizontal", id: "top-to-bottom", maxFlex: 0.9, minFlex: 0.2, defaultFlex: 0.75, children: [(0, jsx_runtime_1.jsx)(SplitterElement_1.SplitterElement, { sticky: null, type: "flexer", children: (0, jsx_runtime_1.jsx)(TopPanel_1.TopPanel, {}) }), (0, jsx_runtime_1.jsx)(SplitterHandle_1.SplitterHandle, { allowToCollapse: "none", onCollapse: noop }), (0, jsx_runtime_1.jsx)(SplitterElement_1.SplitterElement, { sticky: null, type: "anti-flexer", children: (0, jsx_runtime_1.jsx)(Timeline_1.Timeline, {}) })] }))] }));
|
|
27
|
+
return ((0, jsx_runtime_1.jsxs)("div", { style: container, children: [(0, jsx_runtime_1.jsx)(InitialCompositionLoader_1.InitialCompositionLoader, {}), (0, jsx_runtime_1.jsx)(MenuToolbar_1.MenuToolbar, { readOnlyStudio: readOnlyStudio }), onlyTopPanel ? ((0, jsx_runtime_1.jsx)(TopPanel_1.TopPanel, { readOnlyStudio: readOnlyStudio })) : ((0, jsx_runtime_1.jsxs)(SplitterContainer_1.SplitterContainer, { orientation: "horizontal", id: "top-to-bottom", maxFlex: 0.9, minFlex: 0.2, defaultFlex: 0.75, children: [(0, jsx_runtime_1.jsx)(SplitterElement_1.SplitterElement, { sticky: null, type: "flexer", children: (0, jsx_runtime_1.jsx)(TopPanel_1.TopPanel, { readOnlyStudio: readOnlyStudio }) }), (0, jsx_runtime_1.jsx)(SplitterHandle_1.SplitterHandle, { allowToCollapse: "none", onCollapse: noop }), (0, jsx_runtime_1.jsx)(SplitterElement_1.SplitterElement, { sticky: null, type: "anti-flexer", children: (0, jsx_runtime_1.jsx)(Timeline_1.Timeline, {}) })] }))] }));
|
|
28
28
|
};
|
|
29
29
|
exports.EditorContent = EditorContent;
|
|
@@ -18,7 +18,7 @@ const SetTimelineInOutProvider_1 = require("./SetTimelineInOutProvider");
|
|
|
18
18
|
const ShowGuidesProvider_1 = require("./ShowGuidesProvider");
|
|
19
19
|
const ShowRulersProvider_1 = require("./ShowRulersProvider");
|
|
20
20
|
const ZoomGesturesProvider_1 = require("./ZoomGesturesProvider");
|
|
21
|
-
const EditorContexts = ({ children }) => {
|
|
22
|
-
return ((0, jsx_runtime_1.jsx)(get_zod_if_possible_1.ZodProvider, { children: (0, jsx_runtime_1.jsx)(client_id_1.PreviewServerConnection, { children: (0, jsx_runtime_1.jsx)(context_1.RenderQueueContextProvider, { children: (0, jsx_runtime_1.jsx)(keybindings_1.KeybindingContextProvider, { children: (0, jsx_runtime_1.jsx)(CheckerboardProvider_1.CheckerboardProvider, { children: (0, jsx_runtime_1.jsx)(ZoomGesturesProvider_1.ZoomGesturesProvider, { children: (0, jsx_runtime_1.jsx)(ShowRulersProvider_1.ShowRulersProvider, { children: (0, jsx_runtime_1.jsx)(ShowGuidesProvider_1.ShowGuidesProvider, { children: (0, jsx_runtime_1.jsx)(preview_size_1.PreviewSizeProvider, { children: (0, jsx_runtime_1.jsx)(ModalsProvider_1.ModalsProvider, { children: (0, jsx_runtime_1.jsx)(MediaVolumeProvider_1.MediaVolumeProvider, { children: (0, jsx_runtime_1.jsx)(PlayerEmitterContext_1.PlayerEmitterContext, { children: (0, jsx_runtime_1.jsx)(sidebar_1.SidebarContextProvider, { children: (0, jsx_runtime_1.jsx)(folders_1.FolderContextProvider, { children: (0, jsx_runtime_1.jsx)(highest_z_index_1.HighestZIndexProvider, { children: (0, jsx_runtime_1.jsx)(SetTimelineInOutProvider_1.SetTimelineInOutProvider, { children: children }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }));
|
|
21
|
+
const EditorContexts = ({ children, readOnlyStudio }) => {
|
|
22
|
+
return ((0, jsx_runtime_1.jsx)(get_zod_if_possible_1.ZodProvider, { children: (0, jsx_runtime_1.jsx)(client_id_1.PreviewServerConnection, { readOnlyStudio: readOnlyStudio, children: (0, jsx_runtime_1.jsx)(context_1.RenderQueueContextProvider, { children: (0, jsx_runtime_1.jsx)(keybindings_1.KeybindingContextProvider, { children: (0, jsx_runtime_1.jsx)(CheckerboardProvider_1.CheckerboardProvider, { children: (0, jsx_runtime_1.jsx)(ZoomGesturesProvider_1.ZoomGesturesProvider, { children: (0, jsx_runtime_1.jsx)(ShowRulersProvider_1.ShowRulersProvider, { children: (0, jsx_runtime_1.jsx)(ShowGuidesProvider_1.ShowGuidesProvider, { children: (0, jsx_runtime_1.jsx)(preview_size_1.PreviewSizeProvider, { children: (0, jsx_runtime_1.jsx)(ModalsProvider_1.ModalsProvider, { children: (0, jsx_runtime_1.jsx)(MediaVolumeProvider_1.MediaVolumeProvider, { children: (0, jsx_runtime_1.jsx)(PlayerEmitterContext_1.PlayerEmitterContext, { children: (0, jsx_runtime_1.jsx)(sidebar_1.SidebarContextProvider, { children: (0, jsx_runtime_1.jsx)(folders_1.FolderContextProvider, { children: (0, jsx_runtime_1.jsx)(highest_z_index_1.HighestZIndexProvider, { children: (0, jsx_runtime_1.jsx)(SetTimelineInOutProvider_1.SetTimelineInOutProvider, { children: children }) }) }) }) }) }) }) }) }) }) }) }) }) }) }) }));
|
|
23
23
|
};
|
|
24
24
|
exports.EditorContexts = EditorContexts;
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.FilePreview = void 0;
|
|
4
4
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
-
const
|
|
5
|
+
const studio_shared_1 = require("@remotion/studio-shared");
|
|
6
6
|
const JSONViewer_1 = require("./JSONViewer");
|
|
7
7
|
const layout_1 = require("./layout");
|
|
8
8
|
const TextViewer_1 = require("./TextViewer");
|
|
@@ -35,6 +35,6 @@ const FilePreview = ({ fileType, src, currentAsset, assetMetadata }) => {
|
|
|
35
35
|
if (fileType === 'txt') {
|
|
36
36
|
return (0, jsx_runtime_1.jsx)(TextViewer_1.TextViewer, { src: src });
|
|
37
37
|
}
|
|
38
|
-
return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)("div", { style: msgStyle, children: currentAsset }), (0, jsx_runtime_1.jsx)(layout_1.Spacing, { y: 0.5 }), (0, jsx_runtime_1.jsxs)("div", { style: msgStyle, children: ["Size: ", (0,
|
|
38
|
+
return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)("div", { style: msgStyle, children: currentAsset }), (0, jsx_runtime_1.jsx)(layout_1.Spacing, { y: 0.5 }), (0, jsx_runtime_1.jsxs)("div", { style: msgStyle, children: ["Size: ", (0, studio_shared_1.formatBytes)(assetMetadata.size), " "] })] }));
|
|
39
39
|
};
|
|
40
40
|
exports.FilePreview = FilePreview;
|
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.InitialCompositionLoader = exports.useSelectComposition = exports.useSelectAsset = void 0;
|
|
4
4
|
const react_1 = require("react");
|
|
5
5
|
const remotion_1 = require("remotion");
|
|
6
|
+
const url_state_1 = require("../helpers/url-state");
|
|
6
7
|
const folders_1 = require("../state/folders");
|
|
7
8
|
const CompositionSelector_1 = require("./CompositionSelector");
|
|
8
9
|
const ExplorerPanel_1 = require("./ExplorerPanel");
|
|
@@ -36,7 +37,7 @@ const useSelectComposition = () => {
|
|
|
36
37
|
return (c, push) => {
|
|
37
38
|
var _a;
|
|
38
39
|
if (push) {
|
|
39
|
-
|
|
40
|
+
(0, url_state_1.pushUrl)(`/${c.id}`);
|
|
40
41
|
}
|
|
41
42
|
(_a = ExplorerPanel_1.explorerSidebarTabs.current) === null || _a === void 0 ? void 0 : _a.selectCompositionPanel();
|
|
42
43
|
setCanvasContent({ type: 'composition', compositionId: c.id });
|
|
@@ -94,7 +95,7 @@ const InitialCompositionLoader = () => {
|
|
|
94
95
|
const onchange = () => {
|
|
95
96
|
const newCanvas = (0, ZoomPersistor_1.deriveCanvasContentFromUrl)();
|
|
96
97
|
if (newCanvas && newCanvas.type === 'composition') {
|
|
97
|
-
const newComp =
|
|
98
|
+
const newComp = (0, url_state_1.getPathname)().substring(1);
|
|
98
99
|
const exists = compositions.find((c) => c.id === newComp);
|
|
99
100
|
if (exists) {
|
|
100
101
|
selectComposition(exists, false);
|
|
@@ -36,7 +36,7 @@ const fixedWidthLeft = {
|
|
|
36
36
|
const flex = {
|
|
37
37
|
flex: 1,
|
|
38
38
|
};
|
|
39
|
-
const MenuToolbar = () => {
|
|
39
|
+
const MenuToolbar = ({ readOnlyStudio }) => {
|
|
40
40
|
const [selected, setSelected] = (0, react_1.useState)(null);
|
|
41
41
|
const itemClicked = (0, react_1.useCallback)((itemId) => {
|
|
42
42
|
setSelected(itemId);
|
|
@@ -49,7 +49,7 @@ const MenuToolbar = () => {
|
|
|
49
49
|
const closeMenu = (0, react_1.useCallback)(() => {
|
|
50
50
|
setSelected(null);
|
|
51
51
|
}, []);
|
|
52
|
-
const structure = (0, use_menu_structure_1.useMenuStructure)(closeMenu);
|
|
52
|
+
const structure = (0, use_menu_structure_1.useMenuStructure)(closeMenu, readOnlyStudio);
|
|
53
53
|
const menus = (0, react_1.useMemo)(() => {
|
|
54
54
|
return structure.map((s) => s.id);
|
|
55
55
|
}, [structure]);
|
|
@@ -77,6 +77,6 @@ const MenuToolbar = () => {
|
|
|
77
77
|
}, [setSelected]);
|
|
78
78
|
return ((0, jsx_runtime_1.jsxs)(layout_1.Row, { align: "center", className: "css-reset", style: row, children: [(0, jsx_runtime_1.jsxs)("div", { style: fixedWidthLeft, children: [structure.map((s) => {
|
|
79
79
|
return ((0, jsx_runtime_1.jsx)(MenuItem_1.MenuItem, { selected: selected === s.id, onItemSelected: itemClicked, onItemHovered: itemHovered, id: s.id, label: s.label, onItemQuit: onItemQuit, menu: s, onPreviousMenu: onPreviousMenu, onNextMenu: onNextMenu, leaveLeftPadding: s.leaveLeftPadding }, s.id));
|
|
80
|
-
}), (0, jsx_runtime_1.jsx)(UpdateCheck_1.UpdateCheck, {})] }), (0, jsx_runtime_1.jsx)("div", { style: flex }), (0, jsx_runtime_1.jsx)(MenuBuildIndicator_1.MenuBuildIndicator, {}), (0, jsx_runtime_1.jsx)("div", { style: flex }), (0, jsx_runtime_1.jsx)("div", { style: fixedWidthRight, children: (0, jsx_runtime_1.jsx)(SidebarCollapserControls_1.SidebarCollapserControls, {}) }), (0, jsx_runtime_1.jsx)(layout_1.Spacing, { x: 1 })] }));
|
|
80
|
+
}), readOnlyStudio ? null : (0, jsx_runtime_1.jsx)(UpdateCheck_1.UpdateCheck, {})] }), (0, jsx_runtime_1.jsx)("div", { style: flex }), (0, jsx_runtime_1.jsx)(MenuBuildIndicator_1.MenuBuildIndicator, {}), (0, jsx_runtime_1.jsx)("div", { style: flex }), (0, jsx_runtime_1.jsx)("div", { style: fixedWidthRight, children: (0, jsx_runtime_1.jsx)(SidebarCollapserControls_1.SidebarCollapserControls, {}) }), (0, jsx_runtime_1.jsx)(layout_1.Spacing, { x: 1 })] }));
|
|
81
81
|
};
|
|
82
82
|
exports.MenuToolbar = MenuToolbar;
|
|
@@ -13,12 +13,12 @@ const QuickSwitcher_1 = __importDefault(require("./QuickSwitcher/QuickSwitcher")
|
|
|
13
13
|
const RenderModal_1 = require("./RenderModal/RenderModal");
|
|
14
14
|
const RenderStatusModal_1 = require("./RenderModal/RenderStatusModal");
|
|
15
15
|
const UpdateModal_1 = require("./UpdateModal/UpdateModal");
|
|
16
|
-
const Modals = () => {
|
|
16
|
+
const Modals = ({ readOnlyStudio }) => {
|
|
17
17
|
const { selectedModal: modalContextType } = (0, react_1.useContext)(modals_1.ModalsContext);
|
|
18
18
|
const canRender = (0, react_1.useContext)(client_id_1.StudioServerConnectionCtx).previewServerState.type ===
|
|
19
19
|
'connected';
|
|
20
20
|
return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [modalContextType && modalContextType.type === 'new-comp' && ((0, jsx_runtime_1.jsx)(NewComposition_1.default, { initialCompType: modalContextType.compType })), modalContextType && canRender && modalContextType.type === 'render' && ((0, jsx_runtime_1.jsx)(RenderModal_1.RenderModalWithLoader, { initialFrame: modalContextType.initialFrame, compositionId: modalContextType.compositionId, initialVideoImageFormat: modalContextType.initialVideoImageFormat, initialJpegQuality: modalContextType.initialJpegQuality, initialScale: modalContextType.initialScale, initialLogLevel: modalContextType.initialLogLevel, initialOffthreadVideoCacheSizeInBytes: modalContextType.initialOffthreadVideoCacheSizeInBytes, initialConcurrency: modalContextType.initialConcurrency, maxConcurrency: modalContextType.maxConcurrency, minConcurrency: modalContextType.minConcurrency, initialStillImageFormat: modalContextType.initialStillImageFormat, initialMuted: modalContextType.initialMuted, initialEnforceAudioTrack: modalContextType.initialEnforceAudioTrack, initialProResProfile: modalContextType.initialProResProfile, initialx264Preset: modalContextType.initialx264Preset, initialPixelFormat: modalContextType.initialPixelFormat, initialAudioBitrate: modalContextType.initialAudioBitrate, initialVideoBitrate: modalContextType.initialVideoBitrate, initialEveryNthFrame: modalContextType.initialEveryNthFrame, initialNumberOfGifLoops: modalContextType.initialNumberOfGifLoops, initialDelayRenderTimeout: modalContextType.initialDelayRenderTimeout, initialEnvVariables: modalContextType.initialEnvVariables, initialDisableWebSecurity: modalContextType.initialDisableWebSecurity, initialGl: modalContextType.initialOpenGlRenderer, initialHeadless: modalContextType.initialHeadless, initialIgnoreCertificateErrors: modalContextType.initialIgnoreCertificateErrors, initialEncodingBufferSize: modalContextType.initialEncodingBufferSize, initialEncodingMaxRate: modalContextType.initialEncodingMaxRate, initialUserAgent: modalContextType.initialUserAgent, initialColorSpace: modalContextType.initialColorSpace, initialMultiProcessOnLinux: modalContextType.initialMultiProcessOnLinux, initialRepro: modalContextType.initialRepro, initialBeep: modalContextType.initialBeep, defaultProps: modalContextType.defaultProps, inFrameMark: modalContextType.inFrameMark, outFrameMark: modalContextType.outFrameMark, defaultConfigurationAudioCodec: modalContextType.defaultConfigurationAudioCodec, defaultConfigurationVideoCodec: modalContextType.defaultConfigurationVideoCodec })), modalContextType &&
|
|
21
21
|
canRender &&
|
|
22
|
-
modalContextType.type === 'render-progress' && ((0, jsx_runtime_1.jsx)(RenderStatusModal_1.RenderStatusModal, { jobId: modalContextType.jobId })), modalContextType && modalContextType.type === 'update' && ((0, jsx_runtime_1.jsx)(UpdateModal_1.UpdateModal, { info: modalContextType.info, knownBugs: modalContextType.knownBugs })), modalContextType && modalContextType.type === 'quick-switcher' && ((0, jsx_runtime_1.jsx)(QuickSwitcher_1.default, { invocationTimestamp: modalContextType.invocationTimestamp, initialMode: modalContextType.mode }))] }));
|
|
22
|
+
modalContextType.type === 'render-progress' && ((0, jsx_runtime_1.jsx)(RenderStatusModal_1.RenderStatusModal, { jobId: modalContextType.jobId })), modalContextType && modalContextType.type === 'update' && ((0, jsx_runtime_1.jsx)(UpdateModal_1.UpdateModal, { info: modalContextType.info, knownBugs: modalContextType.knownBugs })), modalContextType && modalContextType.type === 'quick-switcher' && ((0, jsx_runtime_1.jsx)(QuickSwitcher_1.default, { readOnlyStudio: readOnlyStudio, invocationTimestamp: modalContextType.invocationTimestamp, initialMode: modalContextType.mode }))] }));
|
|
23
23
|
};
|
|
24
24
|
exports.Modals = Modals;
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
/// <reference types="react" />
|
|
2
1
|
export declare const getNewCompositionCode: ({ type, height, width, fps, durationInFrames, name, raw, }: {
|
|
3
2
|
type: 'still' | 'composition';
|
|
4
3
|
height: number;
|
|
@@ -7,4 +6,4 @@ export declare const getNewCompositionCode: ({ type, height, width, fps, duratio
|
|
|
7
6
|
durationInFrames: number;
|
|
8
7
|
name: string;
|
|
9
8
|
raw: boolean;
|
|
10
|
-
}) => string | (string | JSX.Element | (string | JSX.Element)[])[];
|
|
9
|
+
}) => string | (string | import("react/jsx-runtime").JSX.Element | (string | import("react/jsx-runtime").JSX.Element)[])[];
|
|
@@ -13,5 +13,5 @@ export declare const getInputBorderColor: ({ status, isFocused, isHovered, }: {
|
|
|
13
13
|
isFocused: boolean;
|
|
14
14
|
isHovered: boolean;
|
|
15
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<
|
|
16
|
+
export declare const RemotionInput: React.ForwardRefExoticComponent<Omit<Props, "ref"> & 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<
|
|
7
|
+
export declare const RemInputTypeColor: React.ForwardRefExoticComponent<Omit<Props, "ref"> & React.RefAttributes<HTMLInputElement>>;
|
|
8
8
|
export {};
|
|
@@ -2,5 +2,5 @@ import React from 'react';
|
|
|
2
2
|
type Props = React.DetailedHTMLProps<React.InputHTMLAttributes<HTMLTextAreaElement>, HTMLTextAreaElement> & {
|
|
3
3
|
status: 'error' | 'warning' | 'ok';
|
|
4
4
|
};
|
|
5
|
-
export declare const RemTextarea: React.ForwardRefExoticComponent<
|
|
5
|
+
export declare const RemTextarea: React.ForwardRefExoticComponent<Omit<Props, "ref"> & React.RefAttributes<HTMLTextAreaElement>>;
|
|
6
6
|
export {};
|
|
@@ -4,5 +4,7 @@ export declare const persistSelectedOptionsSidebarPanel: (panel: OptionsSidebarP
|
|
|
4
4
|
export declare const optionsSidebarTabs: React.RefObject<{
|
|
5
5
|
selectRendersPanel: () => void;
|
|
6
6
|
}>;
|
|
7
|
-
export declare const OptionsPanel: React.FC<{
|
|
7
|
+
export declare const OptionsPanel: React.FC<{
|
|
8
|
+
readOnlyStudio: boolean;
|
|
9
|
+
}>;
|
|
8
10
|
export {};
|
|
@@ -24,7 +24,10 @@ const circle = {
|
|
|
24
24
|
borderRadius: 4,
|
|
25
25
|
};
|
|
26
26
|
const localStorageKey = 'remotion.sidebarPanel';
|
|
27
|
-
const getSelectedPanel = () => {
|
|
27
|
+
const getSelectedPanel = (readOnlyStudio) => {
|
|
28
|
+
if (readOnlyStudio) {
|
|
29
|
+
return 'input-props';
|
|
30
|
+
}
|
|
28
31
|
const panel = localStorage.getItem(localStorageKey);
|
|
29
32
|
if (panel === 'renders') {
|
|
30
33
|
return 'renders';
|
|
@@ -39,10 +42,10 @@ const persistSelectedOptionsSidebarPanel = (panel) => {
|
|
|
39
42
|
};
|
|
40
43
|
exports.persistSelectedOptionsSidebarPanel = persistSelectedOptionsSidebarPanel;
|
|
41
44
|
exports.optionsSidebarTabs = (0, react_1.createRef)();
|
|
42
|
-
const OptionsPanel = () => {
|
|
45
|
+
const OptionsPanel = ({ readOnlyStudio }) => {
|
|
43
46
|
const { props, updateProps } = (0, react_1.useContext)(remotion_1.Internals.EditorPropsContext);
|
|
44
47
|
const [saving, setSaving] = (0, react_1.useState)(false);
|
|
45
|
-
const [panel, setPanel] = (0, react_1.useState)(() => getSelectedPanel());
|
|
48
|
+
const [panel, setPanel] = (0, react_1.useState)(() => getSelectedPanel(readOnlyStudio));
|
|
46
49
|
const onPropsSelected = (0, react_1.useCallback)(() => {
|
|
47
50
|
setPanel('input-props');
|
|
48
51
|
(0, exports.persistSelectedOptionsSidebarPanel)('input-props');
|
|
@@ -107,6 +110,6 @@ const OptionsPanel = () => {
|
|
|
107
110
|
}
|
|
108
111
|
return !(0, deep_equal_1.deepEqual)(composition.defaultProps, actualProps);
|
|
109
112
|
}, [actualProps, composition]);
|
|
110
|
-
return ((0, jsx_runtime_1.jsxs)("div", { style: container, className: "css-reset", children: [(0, jsx_runtime_1.jsx)("div", { style: tabsContainer, children: (0, jsx_runtime_1.jsxs)(Tabs_1.Tabs, { children: [composition ? ((0, jsx_runtime_1.jsxs)(Tabs_1.Tab, { selected: panel === 'input-props', onClick: onPropsSelected, style: { justifyContent: 'space-between' }, children: ["Props", unsavedChangesExist ? ((0, jsx_runtime_1.jsx)("div", { title: saveToolTip, style: circleStyle })) : null] })) : null, (0, jsx_runtime_1.jsx)(RendersTab_1.RendersTab, { onClick: onRendersSelected, selected: panel === 'renders' })] }) }), panel === `input-props` && composition ? ((0, jsx_runtime_1.jsx)(DataEditor_1.DataEditor, { unresolvedComposition: composition, inputProps: actualProps, setInputProps: setInputProps, mayShowSaveButton: true, propsEditType: "default-props", saving: saving, setSaving: setSaving }, composition.id)) : ((0, jsx_runtime_1.jsx)(RenderQueue_1.RenderQueue, {}))] }));
|
|
113
|
+
return ((0, jsx_runtime_1.jsxs)("div", { style: container, className: "css-reset", children: [(0, jsx_runtime_1.jsx)("div", { style: tabsContainer, children: (0, jsx_runtime_1.jsxs)(Tabs_1.Tabs, { children: [composition ? ((0, jsx_runtime_1.jsxs)(Tabs_1.Tab, { selected: panel === 'input-props', onClick: onPropsSelected, style: { justifyContent: 'space-between' }, children: ["Props", unsavedChangesExist ? ((0, jsx_runtime_1.jsx)("div", { title: saveToolTip, style: circleStyle })) : null] })) : null, readOnlyStudio ? null : ((0, jsx_runtime_1.jsx)(RendersTab_1.RendersTab, { onClick: onRendersSelected, selected: panel === 'renders' }))] }) }), panel === `input-props` && composition ? ((0, jsx_runtime_1.jsx)(DataEditor_1.DataEditor, { unresolvedComposition: composition, inputProps: actualProps, setInputProps: setInputProps, mayShowSaveButton: true, propsEditType: "default-props", saving: saving, setSaving: setSaving, readOnlyStudio: readOnlyStudio }, composition.id)) : readOnlyStudio ? null : ((0, jsx_runtime_1.jsx)(RenderQueue_1.RenderQueue, {}))] }));
|
|
111
114
|
};
|
|
112
115
|
exports.OptionsPanel = OptionsPanel;
|
|
@@ -42,7 +42,7 @@ const sideContainer = {
|
|
|
42
42
|
const padding = {
|
|
43
43
|
width: timeline_layout_1.TIMELINE_PADDING,
|
|
44
44
|
};
|
|
45
|
-
const PreviewToolbar = () => {
|
|
45
|
+
const PreviewToolbar = ({ readOnlyStudio }) => {
|
|
46
46
|
const { playbackRate, setPlaybackRate } = (0, react_1.useContext)(remotion_1.Internals.Timeline.TimelineContext);
|
|
47
47
|
const { mediaMuted } = (0, react_1.useContext)(remotion_1.Internals.MediaVolumeContext);
|
|
48
48
|
const { setMediaMuted } = (0, react_1.useContext)(remotion_1.Internals.SetMediaVolumeContext);
|
|
@@ -50,6 +50,6 @@ const PreviewToolbar = () => {
|
|
|
50
50
|
const isStill = (0, is_current_selected_still_1.useIsStill)();
|
|
51
51
|
const [loop, setLoop] = (0, react_1.useState)((0, loop_1.loadLoopOption)());
|
|
52
52
|
const isFullscreenSupported = document.fullscreenEnabled || document.webkitFullscreenEnabled;
|
|
53
|
-
return ((0, jsx_runtime_1.jsxs)("div", { style: container, className: "css-reset", children: [(0, jsx_runtime_1.jsxs)("div", { style: sideContainer, children: [(0, jsx_runtime_1.jsx)("div", { style: padding }), (0, jsx_runtime_1.jsx)(TimelineZoomControls_1.TimelineZoomControls, {})] }), (0, jsx_runtime_1.jsx)(layout_1.Flex, {}), (0, jsx_runtime_1.jsx)(SizeSelector_1.SizeSelector, {}), isStill || isVideoComposition ? ((0, jsx_runtime_1.jsx)(PlaybackRateSelector_1.PlaybackRateSelector, { setPlaybackRate: setPlaybackRate, playbackRate: playbackRate })) : null, isVideoComposition ? ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(layout_1.Spacing, { x: 2 }), (0, jsx_runtime_1.jsx)(PlayPause_1.PlayPause, { loop: loop, playbackRate: playbackRate }), (0, jsx_runtime_1.jsx)(layout_1.Spacing, { x: 2 }), (0, jsx_runtime_1.jsx)(LoopToggle_1.LoopToggle, { loop: loop, setLoop: setLoop }), (0, jsx_runtime_1.jsx)(MuteToggle_1.MuteToggle, { muted: mediaMuted, setMuted: setMediaMuted }), (0, jsx_runtime_1.jsx)(layout_1.Spacing, { x: 2 }), (0, jsx_runtime_1.jsx)(TimelineInOutToggle_1.TimelineInOutPointToggle, {}), (0, jsx_runtime_1.jsx)(layout_1.Spacing, { x: 2 }), (0, jsx_runtime_1.jsx)(CheckboardToggle_1.CheckboardToggle, {}), (0, jsx_runtime_1.jsx)(layout_1.Spacing, { x: 1 })] })) : null, isFullscreenSupported && (0, jsx_runtime_1.jsx)(FullscreenToggle_1.FullScreenToggle, {}), (0, jsx_runtime_1.jsx)(layout_1.Flex, {}), (0, jsx_runtime_1.jsxs)("div", { style: sideContainer, children: [(0, jsx_runtime_1.jsx)(layout_1.Flex, {}), (0, jsx_runtime_1.jsx)(FpsCounter_1.FpsCounter, { playbackSpeed: playbackRate }), (0, jsx_runtime_1.jsx)(layout_1.Spacing, { x: 2 }), (0, jsx_runtime_1.jsx)(RenderButton_1.RenderButton, {}), (0, jsx_runtime_1.jsx)(layout_1.Spacing, { x: 1.5 })] }), (0, jsx_runtime_1.jsx)(PlaybackKeyboardShortcutsManager_1.PlaybackKeyboardShortcutsManager, { setPlaybackRate: setPlaybackRate }), (0, jsx_runtime_1.jsx)(PlaybackRatePersistor_1.PlaybackRatePersistor, {})] }));
|
|
53
|
+
return ((0, jsx_runtime_1.jsxs)("div", { style: container, className: "css-reset", children: [(0, jsx_runtime_1.jsxs)("div", { style: sideContainer, children: [(0, jsx_runtime_1.jsx)("div", { style: padding }), (0, jsx_runtime_1.jsx)(TimelineZoomControls_1.TimelineZoomControls, {})] }), (0, jsx_runtime_1.jsx)(layout_1.Flex, {}), (0, jsx_runtime_1.jsx)(SizeSelector_1.SizeSelector, {}), isStill || isVideoComposition ? ((0, jsx_runtime_1.jsx)(PlaybackRateSelector_1.PlaybackRateSelector, { setPlaybackRate: setPlaybackRate, playbackRate: playbackRate })) : null, isVideoComposition ? ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(layout_1.Spacing, { x: 2 }), (0, jsx_runtime_1.jsx)(PlayPause_1.PlayPause, { loop: loop, playbackRate: playbackRate }), (0, jsx_runtime_1.jsx)(layout_1.Spacing, { x: 2 }), (0, jsx_runtime_1.jsx)(LoopToggle_1.LoopToggle, { loop: loop, setLoop: setLoop }), (0, jsx_runtime_1.jsx)(MuteToggle_1.MuteToggle, { muted: mediaMuted, setMuted: setMediaMuted }), (0, jsx_runtime_1.jsx)(layout_1.Spacing, { x: 2 }), (0, jsx_runtime_1.jsx)(TimelineInOutToggle_1.TimelineInOutPointToggle, {}), (0, jsx_runtime_1.jsx)(layout_1.Spacing, { x: 2 }), (0, jsx_runtime_1.jsx)(CheckboardToggle_1.CheckboardToggle, {}), (0, jsx_runtime_1.jsx)(layout_1.Spacing, { x: 1 })] })) : null, isFullscreenSupported && (0, jsx_runtime_1.jsx)(FullscreenToggle_1.FullScreenToggle, {}), (0, jsx_runtime_1.jsx)(layout_1.Flex, {}), (0, jsx_runtime_1.jsxs)("div", { style: sideContainer, children: [(0, jsx_runtime_1.jsx)(layout_1.Flex, {}), (0, jsx_runtime_1.jsx)(FpsCounter_1.FpsCounter, { playbackSpeed: playbackRate }), (0, jsx_runtime_1.jsx)(layout_1.Spacing, { x: 2 }), readOnlyStudio ? null : (0, jsx_runtime_1.jsx)(RenderButton_1.RenderButton, {}), (0, jsx_runtime_1.jsx)(layout_1.Spacing, { x: 1.5 })] }), (0, jsx_runtime_1.jsx)(PlaybackKeyboardShortcutsManager_1.PlaybackKeyboardShortcutsManager, { setPlaybackRate: setPlaybackRate }), (0, jsx_runtime_1.jsx)(PlaybackRatePersistor_1.PlaybackRatePersistor, {})] }));
|
|
54
54
|
};
|
|
55
55
|
exports.PreviewToolbar = PreviewToolbar;
|
|
@@ -5,12 +5,12 @@ const react_1 = require("react");
|
|
|
5
5
|
const modals_1 = require("../../state/modals");
|
|
6
6
|
const ModalContainer_1 = require("../ModalContainer");
|
|
7
7
|
const QuickSwitcherContent_1 = require("./QuickSwitcherContent");
|
|
8
|
-
const QuickSwitcher = ({ initialMode, invocationTimestamp }) => {
|
|
8
|
+
const QuickSwitcher = ({ initialMode, invocationTimestamp, readOnlyStudio }) => {
|
|
9
9
|
const { setSelectedModal } = (0, react_1.useContext)(modals_1.ModalsContext);
|
|
10
10
|
const onQuit = (0, react_1.useCallback)(() => {
|
|
11
11
|
setSelectedModal(null);
|
|
12
12
|
}, [setSelectedModal]);
|
|
13
13
|
// Separate child component to correctly capture keybindings
|
|
14
|
-
return ((0, jsx_runtime_1.jsx)(ModalContainer_1.ModalContainer, { onOutsideClick: onQuit, onEscape: onQuit, children: (0, jsx_runtime_1.jsx)(QuickSwitcherContent_1.QuickSwitcherContent, { invocationTimestamp: invocationTimestamp, initialMode: initialMode }) }));
|
|
14
|
+
return ((0, jsx_runtime_1.jsx)(ModalContainer_1.ModalContainer, { onOutsideClick: onQuit, onEscape: onQuit, children: (0, jsx_runtime_1.jsx)(QuickSwitcherContent_1.QuickSwitcherContent, { readOnlyStudio: readOnlyStudio, invocationTimestamp: invocationTimestamp, initialMode: initialMode }) }));
|
|
15
15
|
};
|
|
16
16
|
exports.default = QuickSwitcher;
|
|
@@ -88,7 +88,7 @@ const mapModeToQuery = (mode) => {
|
|
|
88
88
|
}
|
|
89
89
|
throw new Error('no mode' + mode);
|
|
90
90
|
};
|
|
91
|
-
const QuickSwitcherContent = ({ initialMode, invocationTimestamp }) => {
|
|
91
|
+
const QuickSwitcherContent = ({ initialMode, invocationTimestamp, readOnlyStudio }) => {
|
|
92
92
|
const { compositions } = (0, react_1.useContext)(remotion_1.Internals.CompositionManager);
|
|
93
93
|
const [state, setState] = (0, react_1.useState)(() => {
|
|
94
94
|
return {
|
|
@@ -105,7 +105,7 @@ const QuickSwitcherContent = ({ initialMode, invocationTimestamp }) => {
|
|
|
105
105
|
const inputRef = (0, react_1.useRef)(null);
|
|
106
106
|
const selectComposition = (0, InitialCompositionLoader_1.useSelectComposition)();
|
|
107
107
|
const closeMenu = (0, react_1.useCallback)(() => undefined, []);
|
|
108
|
-
const actions = (0, use_menu_structure_1.useMenuStructure)(closeMenu);
|
|
108
|
+
const actions = (0, use_menu_structure_1.useMenuStructure)(closeMenu, readOnlyStudio);
|
|
109
109
|
const [docResults, setDocResults] = (0, react_1.useState)({ type: 'initial' });
|
|
110
110
|
const { setSelectedModal } = (0, react_1.useContext)(modals_1.ModalsContext);
|
|
111
111
|
const keybindings = (0, use_keybinding_1.useKeybinding)();
|
|
@@ -4,12 +4,12 @@ exports.RenderButton = void 0;
|
|
|
4
4
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
5
|
const react_1 = require("react");
|
|
6
6
|
const remotion_1 = require("remotion");
|
|
7
|
-
const Button_1 = require("../error-overlay/remotion-overlay/Button");
|
|
8
7
|
const client_id_1 = require("../helpers/client-id");
|
|
9
8
|
const use_keybinding_1 = require("../helpers/use-keybinding");
|
|
10
9
|
const render_1 = require("../icons/render");
|
|
11
10
|
const in_out_1 = require("../state/in-out");
|
|
12
11
|
const modals_1 = require("../state/modals");
|
|
12
|
+
const Button_1 = require("./Button");
|
|
13
13
|
const layout_1 = require("./layout");
|
|
14
14
|
const button = {
|
|
15
15
|
paddingLeft: 7,
|
|
@@ -87,7 +87,7 @@ const getPersistedShowWarningState = () => {
|
|
|
87
87
|
const setPersistedShowWarningState = (val) => {
|
|
88
88
|
localStorage.setItem(persistanceKey, String(Boolean(val)));
|
|
89
89
|
};
|
|
90
|
-
const DataEditor = ({ unresolvedComposition, inputProps, setInputProps, mayShowSaveButton, propsEditType, saving, setSaving, }) => {
|
|
90
|
+
const DataEditor = ({ unresolvedComposition, inputProps, setInputProps, mayShowSaveButton, propsEditType, saving, setSaving, readOnlyStudio, }) => {
|
|
91
91
|
const [mode, setMode] = (0, react_1.useState)('schema');
|
|
92
92
|
const [showWarning, setShowWarningWithoutPersistance] = (0, react_1.useState)(() => getPersistedShowWarningState());
|
|
93
93
|
const inJSONEditor = mode === 'json';
|
|
@@ -147,7 +147,7 @@ const DataEditor = ({ unresolvedComposition, inputProps, setInputProps, mayShowS
|
|
|
147
147
|
const { fastRefreshes } = (0, react_1.useContext)(remotion_1.Internals.NonceContext);
|
|
148
148
|
const checkIfCanSaveDefaultProps = (0, react_1.useCallback)(async () => {
|
|
149
149
|
try {
|
|
150
|
-
const can = await (0, actions_1.canUpdateDefaultProps)(unresolvedComposition.id);
|
|
150
|
+
const can = await (0, actions_1.canUpdateDefaultProps)(unresolvedComposition.id, readOnlyStudio);
|
|
151
151
|
if (can.canUpdate) {
|
|
152
152
|
setCanSaveDefaultProps((prevState) => ({
|
|
153
153
|
...prevState,
|
|
@@ -177,7 +177,7 @@ const DataEditor = ({ unresolvedComposition, inputProps, setInputProps, mayShowS
|
|
|
177
177
|
},
|
|
178
178
|
}));
|
|
179
179
|
}
|
|
180
|
-
}, [unresolvedComposition.id]);
|
|
180
|
+
}, [readOnlyStudio, unresolvedComposition.id]);
|
|
181
181
|
(0, react_1.useEffect)(() => {
|
|
182
182
|
checkIfCanSaveDefaultProps();
|
|
183
183
|
}, [checkIfCanSaveDefaultProps]);
|
|
@@ -3,8 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.OptionExplainer = void 0;
|
|
4
4
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
5
|
const colors_1 = require("../../helpers/colors");
|
|
6
|
-
const MenuDivider_1 = require("../Menu/MenuDivider");
|
|
7
6
|
const layout_1 = require("../layout");
|
|
7
|
+
const MenuDivider_1 = require("../Menu/MenuDivider");
|
|
8
8
|
const CliCopyButton_1 = require("./CliCopyButton");
|
|
9
9
|
const container = {
|
|
10
10
|
fontSize: 14,
|