@remotion/cli 4.0.53 → 4.0.55
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/config/image-format.d.ts +1 -1
- package/dist/config/index.d.ts +2 -2
- package/dist/config/presets-profile.d.ts +3 -0
- package/dist/config/presets-profile.js +12 -0
- package/dist/editor/components/CompositionSelector.js +11 -8
- package/dist/editor/components/CurrentComposition.d.ts +1 -0
- package/dist/editor/components/CurrentComposition.js +3 -2
- package/dist/editor/components/DownloadButton.d.ts +0 -0
- package/dist/editor/components/DownloadButton.js +1 -0
- package/dist/editor/components/MenuBuildIndicator.js +1 -1
- package/dist/editor/components/MenuToolbar.js +3 -3
- package/dist/editor/components/NewComposition/RemInput.d.ts +1 -1
- package/dist/editor/components/NewComposition/RemInputTypeColor.d.ts +1 -1
- package/dist/editor/components/NewComposition/RemTextarea.d.ts +1 -1
- package/dist/editor/components/OpenEditorButton.js +2 -3
- package/dist/editor/components/PlayPause.js +5 -1
- package/dist/editor/components/PreviewToolbar.js +1 -1
- package/dist/editor/components/RenderModal/human-readable-codec.d.ts +1 -1
- package/dist/editor/components/Splitter/SplitterHandle.js +6 -1
- package/dist/editor/components/Timeline/is-collapsed.js +5 -0
- package/dist/editor/components/UpdateCheck.js +7 -2
- package/dist/editor/components/UpdateModal/UpdateModal.js +1 -1
- package/dist/editor/helpers/get-timeline-sequence-sort-key.js +3 -1
- package/dist/editor/helpers/presets-labels.d.ts +1 -1
- package/dist/editor/icons/media-volume.js +1 -1
- package/dist/ffmpeg.js +7 -4
- package/dist/get-cli-options.d.ts +2 -2
- package/dist/handle-common-errors.d.ts +2 -0
- package/dist/handle-common-errors.js +60 -0
- package/dist/index.d.ts +7 -7
- package/package.json +8 -8
- package/styles/styles.css +42 -6
|
@@ -2,4 +2,4 @@ import type { StillImageFormat, VideoImageFormat } from '@remotion/renderer';
|
|
|
2
2
|
export declare const setStillImageFormat: (format: StillImageFormat) => void;
|
|
3
3
|
export declare const setVideoImageFormat: (format: VideoImageFormat) => void;
|
|
4
4
|
export declare const getUserPreferredStillImageFormat: () => "png" | "jpeg" | "pdf" | "webp" | undefined;
|
|
5
|
-
export declare const getUserPreferredVideoImageFormat: () => "
|
|
5
|
+
export declare const getUserPreferredVideoImageFormat: () => "none" | "png" | "jpeg" | undefined;
|
package/dist/config/index.d.ts
CHANGED
|
@@ -296,7 +296,7 @@ export declare const ConfigInternals: {
|
|
|
296
296
|
getBrowser: () => null;
|
|
297
297
|
getPixelFormat: () => "yuv420p" | "yuva420p" | "yuv422p" | "yuv444p" | "yuv420p10le" | "yuv422p10le" | "yuv444p10le" | "yuva444p10le";
|
|
298
298
|
getProResProfile: () => "4444-xq" | "4444" | "hq" | "standard" | "light" | "proxy" | undefined;
|
|
299
|
-
getPresetProfile: () => "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "
|
|
299
|
+
getPresetProfile: () => "medium" | "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "slow" | "slower" | "veryslow" | "placebo" | undefined;
|
|
300
300
|
getShouldOverwrite: ({ defaultValue, }: {
|
|
301
301
|
defaultValue: boolean;
|
|
302
302
|
}) => boolean;
|
|
@@ -316,7 +316,7 @@ export declare const ConfigInternals: {
|
|
|
316
316
|
getShouldOutputImageSequence: (frameRange: FrameRange | null) => boolean;
|
|
317
317
|
getDotEnvLocation: () => string | null;
|
|
318
318
|
getUserPreferredStillImageFormat: () => "png" | "jpeg" | "pdf" | "webp" | undefined;
|
|
319
|
-
getUserPreferredVideoImageFormat: () => "
|
|
319
|
+
getUserPreferredVideoImageFormat: () => "none" | "png" | "jpeg" | undefined;
|
|
320
320
|
getWebpackOverrideFn: () => WebpackOverrideFn;
|
|
321
321
|
getWebpackCaching: () => boolean;
|
|
322
322
|
getOutputLocation: () => string | null;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.setPresetProfile = exports.getPresetProfile = void 0;
|
|
4
|
+
let preset;
|
|
5
|
+
const getPresetProfile = () => {
|
|
6
|
+
return preset;
|
|
7
|
+
};
|
|
8
|
+
exports.getPresetProfile = getPresetProfile;
|
|
9
|
+
const setPresetProfile = (profile) => {
|
|
10
|
+
preset = profile;
|
|
11
|
+
};
|
|
12
|
+
exports.setPresetProfile = setPresetProfile;
|
|
@@ -18,10 +18,6 @@ const container = {
|
|
|
18
18
|
overflow: 'hidden',
|
|
19
19
|
backgroundColor: colors_1.BACKGROUND,
|
|
20
20
|
};
|
|
21
|
-
const list = {
|
|
22
|
-
height: 'calc(100% - 80px)',
|
|
23
|
-
overflowY: 'auto',
|
|
24
|
-
};
|
|
25
21
|
const getKeysToExpand = (initialFolderName, parentFolderName, initial = []) => {
|
|
26
22
|
initial.push((0, persist_open_folders_1.openFolderKey)(initialFolderName, parentFolderName));
|
|
27
23
|
const { name, parent } = (0, create_folder_tree_1.splitParentIntoNameAndParent)(parentFolderName);
|
|
@@ -90,10 +86,17 @@ const CompositionSelector = () => {
|
|
|
90
86
|
const items = (0, react_1.useMemo)(() => {
|
|
91
87
|
return (0, create_folder_tree_1.createFolderTree)(compositions, folders, foldersExpanded);
|
|
92
88
|
}, [compositions, folders, foldersExpanded]);
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
89
|
+
const showCurrentComposition = canvasContent && canvasContent.type === 'composition';
|
|
90
|
+
const list = (0, react_1.useMemo)(() => {
|
|
91
|
+
return {
|
|
92
|
+
height: showCurrentComposition
|
|
93
|
+
? `calc(100% - ${CurrentComposition_1.CURRENT_COMPOSITION_HEIGHT}px)`
|
|
94
|
+
: '100%',
|
|
95
|
+
overflowY: 'auto',
|
|
96
|
+
};
|
|
97
|
+
}, [showCurrentComposition]);
|
|
98
|
+
return ((0, jsx_runtime_1.jsxs)("div", { style: container, children: [showCurrentComposition ? (0, jsx_runtime_1.jsx)(CurrentComposition_1.CurrentComposition, {}) : null, (0, jsx_runtime_1.jsx)("div", { className: "__remotion-vertical-scrollbar", style: list, children: items.map((c) => {
|
|
99
|
+
return ((0, jsx_runtime_1.jsx)(CompositionSelectorItem_1.CompositionSelectorItem, { level: 0, currentComposition: showCurrentComposition ? canvasContent.compositionId : null, selectComposition: selectComposition, toggleFolder: toggleFolder, tabIndex: tabIndex, item: c }, c.key + c.type));
|
|
97
100
|
}) })] }));
|
|
98
101
|
};
|
|
99
102
|
exports.CompositionSelector = CompositionSelector;
|
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.CurrentComposition = void 0;
|
|
3
|
+
exports.CurrentComposition = exports.CURRENT_COMPOSITION_HEIGHT = void 0;
|
|
4
4
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
5
|
const remotion_1 = require("remotion");
|
|
6
6
|
const colors_1 = require("../helpers/colors");
|
|
7
7
|
const is_composition_still_1 = require("../helpers/is-composition-still");
|
|
8
8
|
const render_frame_1 = require("../state/render-frame");
|
|
9
|
+
exports.CURRENT_COMPOSITION_HEIGHT = 80;
|
|
9
10
|
const container = {
|
|
10
|
-
height:
|
|
11
|
+
height: exports.CURRENT_COMPOSITION_HEIGHT,
|
|
11
12
|
display: 'block',
|
|
12
13
|
borderBottom: `1px solid ${colors_1.BORDER_COLOR}`,
|
|
13
14
|
padding: 12,
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";
|
|
@@ -40,6 +40,6 @@ const MenuBuildIndicator = () => {
|
|
|
40
40
|
window.remotion_finishedBuilding = undefined;
|
|
41
41
|
};
|
|
42
42
|
}, []);
|
|
43
|
-
return ((0, jsx_runtime_1.jsxs)("div", { style: cwd, title: window.remotion_cwd, children: [showButton ? (0, jsx_runtime_1.jsx)(layout_1.Spacing, { x: 2 }) : null, isBuilding ? ((0, jsx_runtime_1.jsx)("div", { style: spinner, children: (0, jsx_runtime_1.jsx)(Spinner_1.Spinner, { duration: 0.5, size: spinnerSize }) })) : ((0, jsx_runtime_1.jsx)("div", { style: noSpinner })), showButton ? (0, jsx_runtime_1.jsx)(layout_1.Spacing, { x: 0.5 }) : null, window.remotion_projectName, showButton ? (0, jsx_runtime_1.jsx)(layout_1.Spacing, { x: 0.
|
|
43
|
+
return ((0, jsx_runtime_1.jsxs)("div", { style: cwd, title: window.remotion_cwd, children: [showButton ? (0, jsx_runtime_1.jsx)(layout_1.Spacing, { x: 2 }) : null, isBuilding ? ((0, jsx_runtime_1.jsx)("div", { style: spinner, children: (0, jsx_runtime_1.jsx)(Spinner_1.Spinner, { duration: 0.5, size: spinnerSize }) })) : ((0, jsx_runtime_1.jsx)("div", { style: noSpinner })), showButton ? (0, jsx_runtime_1.jsx)(layout_1.Spacing, { x: 0.5 }) : null, window.remotion_projectName, showButton ? (0, jsx_runtime_1.jsx)(layout_1.Spacing, { x: 0.25 }) : null, showButton ? (0, jsx_runtime_1.jsx)(OpenEditorButton_1.OpenEditorButton, {}) : null] }));
|
|
44
44
|
};
|
|
45
45
|
exports.MenuBuildIndicator = MenuBuildIndicator;
|
|
@@ -22,13 +22,13 @@ const row = {
|
|
|
22
22
|
backgroundColor: colors_1.BACKGROUND,
|
|
23
23
|
};
|
|
24
24
|
const fixedWidthRight = {
|
|
25
|
-
|
|
25
|
+
width: '330px',
|
|
26
26
|
display: 'flex',
|
|
27
27
|
alignItems: 'center',
|
|
28
28
|
justifyContent: 'flex-end',
|
|
29
29
|
};
|
|
30
30
|
const fixedWidthLeft = {
|
|
31
|
-
minWidth: '
|
|
31
|
+
minWidth: '330px',
|
|
32
32
|
display: 'flex',
|
|
33
33
|
alignItems: 'center',
|
|
34
34
|
justifyContent: 'flex-start',
|
|
@@ -75,7 +75,7 @@ const MenuToolbar = () => {
|
|
|
75
75
|
const onItemQuit = (0, react_1.useCallback)(() => {
|
|
76
76
|
setSelected(null);
|
|
77
77
|
}, [setSelected]);
|
|
78
|
-
return ((0, jsx_runtime_1.jsxs)(layout_1.Row, {
|
|
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
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 })] }));
|
|
81
81
|
};
|
|
@@ -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<Pick<Props, "
|
|
16
|
+
export declare const RemotionInput: React.ForwardRefExoticComponent<Pick<Props, "key" | keyof React.InputHTMLAttributes<HTMLInputElement> | "status" | "rightAlign"> & React.RefAttributes<HTMLInputElement>>;
|
|
17
17
|
export {};
|
|
@@ -4,5 +4,5 @@ type Props = React.DetailedHTMLProps<React.InputHTMLAttributes<HTMLInputElement>
|
|
|
4
4
|
status: RemInputStatus;
|
|
5
5
|
name: string;
|
|
6
6
|
};
|
|
7
|
-
export declare const RemInputTypeColor: React.ForwardRefExoticComponent<Pick<Props, "
|
|
7
|
+
export declare const RemInputTypeColor: React.ForwardRefExoticComponent<Pick<Props, "key" | keyof React.InputHTMLAttributes<HTMLInputElement> | "status"> & React.RefAttributes<HTMLInputElement>>;
|
|
8
8
|
export {};
|
|
@@ -3,5 +3,5 @@ type Props = React.DetailedHTMLProps<React.InputHTMLAttributes<HTMLTextAreaEleme
|
|
|
3
3
|
status: 'error' | 'warning' | 'ok';
|
|
4
4
|
};
|
|
5
5
|
export declare const inputBaseStyle: React.CSSProperties;
|
|
6
|
-
export declare const RemTextarea: React.ForwardRefExoticComponent<Pick<Props, "
|
|
6
|
+
export declare const RemTextarea: React.ForwardRefExoticComponent<Pick<Props, "key" | "status" | keyof React.InputHTMLAttributes<HTMLTextAreaElement>> & React.RefAttributes<HTMLTextAreaElement>>;
|
|
7
7
|
export {};
|
|
@@ -7,12 +7,11 @@ const colors_1 = require("../helpers/colors");
|
|
|
7
7
|
const open_in_editor_1 = require("../helpers/open-in-editor");
|
|
8
8
|
const NotificationCenter_1 = require("./Notifications/NotificationCenter");
|
|
9
9
|
const svgStyle = {
|
|
10
|
-
width:
|
|
11
|
-
height:
|
|
10
|
+
width: 11,
|
|
11
|
+
height: 11,
|
|
12
12
|
};
|
|
13
13
|
const buttonStyle = {
|
|
14
14
|
border: 'none',
|
|
15
|
-
width: '20px',
|
|
16
15
|
height: '20px',
|
|
17
16
|
display: 'flex',
|
|
18
17
|
justifyContent: 'center',
|
|
@@ -16,6 +16,10 @@ const in_out_1 = require("../state/in-out");
|
|
|
16
16
|
const ControlButton_1 = require("./ControlButton");
|
|
17
17
|
const imperative_state_1 = require("./Timeline/imperative-state");
|
|
18
18
|
const timeline_scroll_logic_1 = require("./Timeline/timeline-scroll-logic");
|
|
19
|
+
const backStyle = {
|
|
20
|
+
height: 18,
|
|
21
|
+
color: 'white',
|
|
22
|
+
};
|
|
19
23
|
const forwardBackStyle = {
|
|
20
24
|
height: 16,
|
|
21
25
|
color: 'white',
|
|
@@ -186,7 +190,7 @@ const PlayPause = ({ playbackRate, loop }) => {
|
|
|
186
190
|
onEnter,
|
|
187
191
|
onSpace,
|
|
188
192
|
]);
|
|
189
|
-
return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(ControlButton_1.ControlButton, { "aria-label": "Jump to beginning", title: "Jump to beginning", disabled: !videoConfig || isFirstFrame, onClick: jumpToStart, children: (0, jsx_runtime_1.jsx)(jump_to_start_1.JumpToStart, { style:
|
|
193
|
+
return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(ControlButton_1.ControlButton, { "aria-label": "Jump to beginning", title: "Jump to beginning", disabled: !videoConfig || isFirstFrame, onClick: jumpToStart, children: (0, jsx_runtime_1.jsx)(jump_to_start_1.JumpToStart, { style: backStyle }) }), (0, jsx_runtime_1.jsx)(ControlButton_1.ControlButton, { "aria-label": "Step back one frame", title: "Step back one frame", disabled: !videoConfig || isFirstFrame, onClick: oneFrameBack, children: (0, jsx_runtime_1.jsx)(step_back_1.StepBack, { style: forwardBackStyle }) }), (0, jsx_runtime_1.jsx)(ControlButton_1.ControlButton, { "aria-label": playing ? 'Pause' : 'Play', title: playing ? 'Pause' : 'Play', onClick: playing ? pause : play, disabled: !videoConfig, children: playing ? ((0, jsx_runtime_1.jsx)(pause_1.Pause, { style: {
|
|
190
194
|
height: 14,
|
|
191
195
|
width: 14,
|
|
192
196
|
color: 'white',
|
|
@@ -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)(
|
|
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, {})] }));
|
|
54
54
|
};
|
|
55
55
|
exports.PreviewToolbar = PreviewToolbar;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import type { Codec } from '@remotion/renderer';
|
|
2
|
-
export declare const humanReadableCodec: (codec: Codec) => "
|
|
2
|
+
export declare const humanReadableCodec: (codec: Codec) => "AAC" | "MP3" | "GIF" | "H.264" | "H.264 Matroska" | "H.265" | "ProRes" | "WebM VP8" | "WebM VP9" | "Waveform" | undefined;
|
|
@@ -115,6 +115,11 @@ const SplitterHandle = ({ allowToCollapse, onCollapse }) => {
|
|
|
115
115
|
lastPointerUp,
|
|
116
116
|
onCollapse,
|
|
117
117
|
]);
|
|
118
|
-
return ((0, jsx_runtime_1.jsx)("div", { ref: ref, className:
|
|
118
|
+
return ((0, jsx_runtime_1.jsx)("div", { ref: ref, className: [
|
|
119
|
+
'remotion-splitter',
|
|
120
|
+
context.orientation === 'horizontal'
|
|
121
|
+
? 'remotion-splitter-horizontal'
|
|
122
|
+
: 'remotion-splitter-vertical',
|
|
123
|
+
].join(' '), style: context.orientation === 'horizontal' ? containerRow : containerColumn }));
|
|
119
124
|
};
|
|
120
125
|
exports.SplitterHandle = SplitterHandle;
|
|
@@ -13,6 +13,11 @@ const isTrackHidden = (track, allTracks, viewState) => {
|
|
|
13
13
|
return false;
|
|
14
14
|
}
|
|
15
15
|
const parent = allTracks.find((t) => t.sequence.id === track.sequence.parent);
|
|
16
|
+
// Due to effects and conditional `showInTimeline`, a parent
|
|
17
|
+
// may not exist in the `allTracks` array.
|
|
18
|
+
if (!parent) {
|
|
19
|
+
return true;
|
|
20
|
+
}
|
|
16
21
|
if ((0, exports.isTrackCollapsed)(parent.hash, viewState)) {
|
|
17
22
|
return true;
|
|
18
23
|
}
|
|
@@ -16,6 +16,8 @@ const buttonStyle = {
|
|
|
16
16
|
backgroundColor: 'transparent',
|
|
17
17
|
cursor: 'pointer',
|
|
18
18
|
fontSize: 14,
|
|
19
|
+
display: 'inline-flex',
|
|
20
|
+
justifyContent: 'center',
|
|
19
21
|
};
|
|
20
22
|
const UpdateCheck = () => {
|
|
21
23
|
const [info, setInfo] = (0, react_1.useState)(null);
|
|
@@ -74,7 +76,7 @@ const UpdateCheck = () => {
|
|
|
74
76
|
const dynButtonStyle = (0, react_1.useMemo)(() => {
|
|
75
77
|
return {
|
|
76
78
|
...buttonStyle,
|
|
77
|
-
color: hasKnownBugs ? colors_1.WARNING_COLOR : colors_1.
|
|
79
|
+
color: hasKnownBugs ? colors_1.WARNING_COLOR : colors_1.LIGHT_TEXT,
|
|
78
80
|
};
|
|
79
81
|
}, [hasKnownBugs]);
|
|
80
82
|
if (!info) {
|
|
@@ -83,6 +85,9 @@ const UpdateCheck = () => {
|
|
|
83
85
|
if (!info.updateAvailable) {
|
|
84
86
|
return null;
|
|
85
87
|
}
|
|
86
|
-
return ((0, jsx_runtime_1.jsx)("button", { tabIndex: tabIndex, style: dynButtonStyle, onClick: openModal, type: "button",
|
|
88
|
+
return ((0, jsx_runtime_1.jsx)("button", { tabIndex: tabIndex, style: dynButtonStyle, onClick: openModal, type: "button", title: hasKnownBugs ? 'Bugfixes available' : 'Update available', children: hasKnownBugs ? ('Bugfixes available') : ((0, jsx_runtime_1.jsx)("svg", { xmlns: "http://www.w3.org/2000/svg", style: {
|
|
89
|
+
height: 16,
|
|
90
|
+
width: 16,
|
|
91
|
+
}, viewBox: "0 0 512 512", children: (0, jsx_runtime_1.jsx)("path", { fill: "currentcolor", d: "M256 48a208 208 0 1 1 0 416 208 208 0 1 1 0-416zm0 464A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM135.1 217.4c-4.5 4.2-7.1 10.1-7.1 16.3c0 12.3 10 22.3 22.3 22.3H208v96c0 17.7 14.3 32 32 32h32c17.7 0 32-14.3 32-32V256h57.7c12.3 0 22.3-10 22.3-22.3c0-6.2-2.6-12.1-7.1-16.3L269.8 117.5c-3.8-3.5-8.7-5.5-13.8-5.5s-10.1 2-13.8 5.5L135.1 217.4z" }) })) }));
|
|
87
92
|
};
|
|
88
93
|
exports.UpdateCheck = UpdateCheck;
|
|
@@ -58,6 +58,6 @@ const UpdateModal = ({ info, knownBugs }) => {
|
|
|
58
58
|
(0, NotificationCenter_1.sendErrorNotification)(`Could not copy: ${err.message}`);
|
|
59
59
|
});
|
|
60
60
|
}, [command]);
|
|
61
|
-
return ((0, jsx_runtime_1.jsxs)(ModalContainer_1.ModalContainer, { onOutsideClick: onQuit, onEscape: onQuit, children: [(0, jsx_runtime_1.jsx)(ModalHeader_1.NewCompHeader, { title: "Update available" }), (0, jsx_runtime_1.jsxs)("div", { style: container, children: [hasKnownBugs ? ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsxs)("div", { style: title, children: ["The currently installed version ", info.currentVersion, " has the following known bugs:"] }), (0, jsx_runtime_1.jsx)(KnownBugs_1.KnownBugs, { bugs: knownBugs }), (0, jsx_runtime_1.jsx)("div", { style: { height: '20px' } }), (0, jsx_runtime_1.jsx)("div", { style: text, children: "To upgrade, run the following command:" })] })) : ((0, jsx_runtime_1.jsx)("div", { style:
|
|
61
|
+
return ((0, jsx_runtime_1.jsxs)(ModalContainer_1.ModalContainer, { onOutsideClick: onQuit, onEscape: onQuit, children: [(0, jsx_runtime_1.jsx)(ModalHeader_1.NewCompHeader, { title: "Update available" }), (0, jsx_runtime_1.jsxs)("div", { style: container, children: [hasKnownBugs ? ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsxs)("div", { style: title, children: ["The currently installed version ", info.currentVersion, " has the following known bugs:"] }), (0, jsx_runtime_1.jsx)(KnownBugs_1.KnownBugs, { bugs: knownBugs }), (0, jsx_runtime_1.jsx)("div", { style: { height: '20px' } }), (0, jsx_runtime_1.jsx)("div", { style: text, children: "To upgrade, run the following command:" })] })) : ((0, jsx_runtime_1.jsx)("div", { style: title, children: "A new update for Remotion is available! Run the following command:" })), (0, jsx_runtime_1.jsxs)(layout_1.Row, { align: "center", children: [(0, jsx_runtime_1.jsx)(layout_1.Flex, { children: (0, jsx_runtime_1.jsx)("pre", { onClick: onClick, style: code, children: command }) }), (0, jsx_runtime_1.jsx)(layout_1.Spacing, { x: 1 }), (0, jsx_runtime_1.jsx)(CopyButton_1.CopyButton, { textToCopy: command, label: "Copy", labelWhenCopied: "Copied!" })] }), (0, jsx_runtime_1.jsxs)("div", { style: text, children: ["This will upgrade Remotion from ", info.currentVersion, " to", ' ', info.latestVersion, "."] }), (0, jsx_runtime_1.jsxs)("div", { style: text, children: ["Read the", ' ', (0, jsx_runtime_1.jsx)("a", { style: link, target: "_blank", href: "https://github.com/remotion-dev/remotion/releases", children: "Release notes" }), ' ', "to know what", "'s", " new in Remotion."] })] })] }));
|
|
62
62
|
};
|
|
63
63
|
exports.UpdateModal = UpdateModal;
|
|
@@ -9,7 +9,9 @@ const getTimelineSequenceSequenceSortKey = (track, tracks, sameHashes = {}) => {
|
|
|
9
9
|
}
|
|
10
10
|
const parent = tracks.find((t) => t.sequence.id === track.sequence.parent);
|
|
11
11
|
if (!parent) {
|
|
12
|
-
|
|
12
|
+
// Due to effects and conditional `showInTimeline`, a parent
|
|
13
|
+
// may not exist in the `allTracks` array.
|
|
14
|
+
return id;
|
|
13
15
|
}
|
|
14
16
|
const firstParentWithSameHash = tracks.find((a) => {
|
|
15
17
|
return sameHashes[parent.hash].includes(a.sequence.id);
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import type { X264Preset } from '@remotion/renderer';
|
|
2
|
-
export declare const labelx264Preset: (profile: X264Preset) => "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "
|
|
2
|
+
export declare const labelx264Preset: (profile: X264Preset) => "medium" | "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "slow" | "slower" | "veryslow" | "placebo";
|
|
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.VolumeOnIcon = exports.VolumeOffIcon = void 0;
|
|
4
4
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
5
|
const colors_1 = require("../helpers/colors");
|
|
6
|
-
const size =
|
|
6
|
+
const size = 22;
|
|
7
7
|
const VolumeOffIcon = () => {
|
|
8
8
|
return ((0, jsx_runtime_1.jsx)("svg", { width: size, height: size, viewBox: "0 0 24 24", children: (0, jsx_runtime_1.jsx)("path", { d: "M3.63 3.63a.996.996 0 000 1.41L7.29 8.7 7 9H4c-.55 0-1 .45-1 1v4c0 .55.45 1 1 1h3l3.29 3.29c.63.63 1.71.18 1.71-.71v-4.17l4.18 4.18c-.49.37-1.02.68-1.6.91-.36.15-.58.53-.58.92 0 .72.73 1.18 1.39.91.8-.33 1.55-.77 2.22-1.31l1.34 1.34a.996.996 0 101.41-1.41L5.05 3.63c-.39-.39-1.02-.39-1.42 0zM19 12c0 .82-.15 1.61-.41 2.34l1.53 1.53c.56-1.17.88-2.48.88-3.87 0-3.83-2.4-7.11-5.78-8.4-.59-.23-1.22.23-1.22.86v.19c0 .38.25.71.61.85C17.18 6.54 19 9.06 19 12zm-8.71-6.29l-.17.17L12 7.76V6.41c0-.89-1.08-1.33-1.71-.7zM16.5 12A4.5 4.5 0 0014 7.97v1.79l2.48 2.48c.01-.08.02-.16.02-.24z", fill: colors_1.BLUE }) }));
|
|
9
9
|
};
|
package/dist/ffmpeg.js
CHANGED
|
@@ -4,25 +4,28 @@ exports.ffprobeCommand = exports.ffmpegCommand = void 0;
|
|
|
4
4
|
const renderer_1 = require("@remotion/renderer");
|
|
5
5
|
const node_child_process_1 = require("node:child_process");
|
|
6
6
|
const node_fs_1 = require("node:fs");
|
|
7
|
+
const config_1 = require("./config");
|
|
7
8
|
const ffmpegCommand = (_root, args) => {
|
|
8
|
-
const
|
|
9
|
+
const logLevel = config_1.ConfigInternals.Logging.getLogLevel();
|
|
10
|
+
const binary = renderer_1.RenderInternals.getExecutablePath('ffmpeg', false, logLevel);
|
|
9
11
|
if (!process.env.READ_ONLY_FS) {
|
|
10
12
|
(0, node_fs_1.chmodSync)(binary, 0o755);
|
|
11
13
|
}
|
|
12
14
|
const done = (0, node_child_process_1.spawnSync)(binary, args, {
|
|
13
|
-
...renderer_1.RenderInternals.dynamicLibraryPathOptions(),
|
|
15
|
+
...renderer_1.RenderInternals.dynamicLibraryPathOptions(false, logLevel),
|
|
14
16
|
stdio: 'inherit',
|
|
15
17
|
});
|
|
16
18
|
process.exit(done.status);
|
|
17
19
|
};
|
|
18
20
|
exports.ffmpegCommand = ffmpegCommand;
|
|
19
21
|
const ffprobeCommand = (_root, args) => {
|
|
20
|
-
const
|
|
22
|
+
const logLevel = config_1.ConfigInternals.Logging.getLogLevel();
|
|
23
|
+
const binary = renderer_1.RenderInternals.getExecutablePath('ffprobe', false, logLevel);
|
|
21
24
|
if (!process.env.READ_ONLY_FS) {
|
|
22
25
|
(0, node_fs_1.chmodSync)(binary, 0o755);
|
|
23
26
|
}
|
|
24
27
|
const done = (0, node_child_process_1.spawnSync)(binary, args, {
|
|
25
|
-
...renderer_1.RenderInternals.dynamicLibraryPathOptions(),
|
|
28
|
+
...renderer_1.RenderInternals.dynamicLibraryPathOptions(false, logLevel),
|
|
26
29
|
stdio: 'inherit',
|
|
27
30
|
});
|
|
28
31
|
process.exit(done.status);
|
|
@@ -16,7 +16,7 @@ export declare const getCliOptions: (options: {
|
|
|
16
16
|
crf: import("@remotion/renderer").Crf | null;
|
|
17
17
|
pixelFormat: "yuv420p" | "yuva420p" | "yuv422p" | "yuv444p" | "yuv420p10le" | "yuv422p10le" | "yuv444p10le" | "yuva444p10le";
|
|
18
18
|
proResProfile: "4444-xq" | "4444" | "hq" | "standard" | "light" | "proxy" | undefined;
|
|
19
|
-
x264Preset: "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "
|
|
19
|
+
x264Preset: "medium" | "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "slow" | "slower" | "veryslow" | "placebo" | undefined;
|
|
20
20
|
everyNthFrame: number;
|
|
21
21
|
numberOfGifLoops: import("./config/number-of-gif-loops").Loop;
|
|
22
22
|
stillFrame: number;
|
|
@@ -34,7 +34,7 @@ export declare const getCliOptions: (options: {
|
|
|
34
34
|
videoBitrate: string | null;
|
|
35
35
|
height: number | null;
|
|
36
36
|
width: number | null;
|
|
37
|
-
configFileImageFormat: "
|
|
37
|
+
configFileImageFormat: "none" | "png" | "jpeg" | undefined;
|
|
38
38
|
offthreadVideoCacheSizeInBytes: number | null;
|
|
39
39
|
deleteAfter: ("1-day" | "3-days" | "7-days" | "30-days") | null;
|
|
40
40
|
colorSpace: "default" | "bt709";
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.handleCommonError = void 0;
|
|
4
|
+
const chalk_1 = require("./chalk");
|
|
5
|
+
const log_1 = require("./log");
|
|
6
|
+
const print_error_1 = require("./print-error");
|
|
7
|
+
const truthy_1 = require("./truthy");
|
|
8
|
+
const handleCommonError = async (err, logLevel) => {
|
|
9
|
+
var _a;
|
|
10
|
+
await (0, print_error_1.printError)(err, logLevel);
|
|
11
|
+
if (err.message.includes('Could not play video with')) {
|
|
12
|
+
log_1.Log.info();
|
|
13
|
+
log_1.Log.info('💡 Get help for this issue at https://remotion.dev/docs/media-playback-error');
|
|
14
|
+
}
|
|
15
|
+
if (err.message.includes('A delayRender()') &&
|
|
16
|
+
err.message.includes('was called but not cleared after')) {
|
|
17
|
+
log_1.Log.info();
|
|
18
|
+
log_1.Log.info('💡 Get help for this issue at https://remotion.dev/docs/timeout');
|
|
19
|
+
}
|
|
20
|
+
if (err.message.includes('Target closed')) {
|
|
21
|
+
log_1.Log.info();
|
|
22
|
+
log_1.Log.info('💡 Get help for this issue at https://remotion.dev/docs/target-closed');
|
|
23
|
+
}
|
|
24
|
+
if (err.message.includes('ENAMETOOLONG')) {
|
|
25
|
+
log_1.Log.info();
|
|
26
|
+
log_1.Log.info('💡 Get help for this issue at https://remotion.dev/docs/enametoolong');
|
|
27
|
+
}
|
|
28
|
+
if (err.message.includes('Error creating WebGL context')) {
|
|
29
|
+
log_1.Log.info();
|
|
30
|
+
log_1.Log.warn('💡 You might need to set the OpenGL renderer to "angle" (or "swangle" if rendering on lambda). Learn why at https://www.remotion.dev/docs/three');
|
|
31
|
+
log_1.Log.warn("💡 Check how it's done at https://www.remotion.dev/docs/chromium-flags#--gl");
|
|
32
|
+
}
|
|
33
|
+
if (err.message.includes('The bucket does not allow ACLs')) {
|
|
34
|
+
log_1.Log.info();
|
|
35
|
+
log_1.Log.info(chalk_1.chalk.green('💡 Fix this issue https://remotion.dev/docs/lambda/troubleshooting/bucket-disallows-acl'));
|
|
36
|
+
}
|
|
37
|
+
if (err.message.includes('Minified React error #306')) {
|
|
38
|
+
const componentName = (_a = err.message.match(/<\w+>/)) === null || _a === void 0 ? void 0 : _a[0];
|
|
39
|
+
log_1.Log.info([
|
|
40
|
+
'💡 This error indicates that the component',
|
|
41
|
+
componentName ? `(${componentName})` : null,
|
|
42
|
+
'you are trying to render is not imported correctly.',
|
|
43
|
+
]
|
|
44
|
+
.filter(truthy_1.truthy)
|
|
45
|
+
.join(' '));
|
|
46
|
+
log_1.Log.info();
|
|
47
|
+
log_1.Log.info(' Check the root file and ensure that the component is not undefined.');
|
|
48
|
+
log_1.Log.info(' Oftentimes, this happens if the component is missing the `export` keyword');
|
|
49
|
+
log_1.Log.info(' or if the component was renamed and the import statement not properly adjusted.');
|
|
50
|
+
}
|
|
51
|
+
if (err.message.includes('GLIBC_')) {
|
|
52
|
+
log_1.Log.info('💡 Remotion requires at least Libc 2.35.');
|
|
53
|
+
log_1.Log.info('💡 Get help for this issue: https://github.com/remotion-dev/remotion/issues/2439');
|
|
54
|
+
}
|
|
55
|
+
if (err.message.includes('EBADF')) {
|
|
56
|
+
log_1.Log.info('💡 This error might be fixed by changing your Node version:');
|
|
57
|
+
log_1.Log.info(' https://github.com/remotion-dev/remotion/issues/2452');
|
|
58
|
+
}
|
|
59
|
+
};
|
|
60
|
+
exports.handleCommonError = handleCommonError;
|
package/dist/index.d.ts
CHANGED
|
@@ -101,7 +101,7 @@ export declare const CliInternals: {
|
|
|
101
101
|
crf: import("@remotion/renderer").Crf | null;
|
|
102
102
|
pixelFormat: "yuv420p" | "yuva420p" | "yuv422p" | "yuv444p" | "yuv420p10le" | "yuv422p10le" | "yuv444p10le" | "yuva444p10le";
|
|
103
103
|
proResProfile: "4444-xq" | "4444" | "hq" | "standard" | "light" | "proxy" | undefined;
|
|
104
|
-
x264Preset: "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "
|
|
104
|
+
x264Preset: "medium" | "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "slow" | "slower" | "veryslow" | "placebo" | undefined;
|
|
105
105
|
everyNthFrame: number;
|
|
106
106
|
numberOfGifLoops: import("./config/number-of-gif-loops").Loop;
|
|
107
107
|
stillFrame: number;
|
|
@@ -119,7 +119,7 @@ export declare const CliInternals: {
|
|
|
119
119
|
videoBitrate: string | null;
|
|
120
120
|
height: number | null;
|
|
121
121
|
width: number | null;
|
|
122
|
-
configFileImageFormat: "
|
|
122
|
+
configFileImageFormat: "none" | "png" | "jpeg" | undefined;
|
|
123
123
|
offthreadVideoCacheSizeInBytes: number | null;
|
|
124
124
|
deleteAfter: ("1-day" | "3-days" | "7-days" | "30-days") | null;
|
|
125
125
|
colorSpace: "default" | "bt709";
|
|
@@ -131,9 +131,9 @@ export declare const CliInternals: {
|
|
|
131
131
|
parsedCli: {
|
|
132
132
|
"browser-executable": import("@remotion/renderer").BrowserExecutable;
|
|
133
133
|
"pixel-format": "yuv420p" | "yuva420p" | "yuv422p" | "yuv444p" | "yuv420p10le" | "yuv422p10le" | "yuv444p10le" | "yuva444p10le";
|
|
134
|
-
"image-format": "
|
|
134
|
+
"image-format": "none" | "png" | "jpeg" | "pdf" | "webp";
|
|
135
135
|
"prores-profile": "4444-xq" | "4444" | "hq" | "standard" | "light" | "proxy";
|
|
136
|
-
"x264-preset": "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "
|
|
136
|
+
"x264-preset": "medium" | "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "slow" | "slower" | "veryslow" | "placebo";
|
|
137
137
|
"bundle-cache": string;
|
|
138
138
|
"env-file": string;
|
|
139
139
|
"ignore-certificate-errors": string;
|
|
@@ -202,7 +202,7 @@ export declare const CliInternals: {
|
|
|
202
202
|
downloadName: string | null;
|
|
203
203
|
outName: string | null;
|
|
204
204
|
configImageFormat: "png" | "jpeg" | "pdf" | "webp" | null;
|
|
205
|
-
cliFlag: "
|
|
205
|
+
cliFlag: "none" | "png" | "jpeg" | "pdf" | "webp" | null;
|
|
206
206
|
isLambda: boolean;
|
|
207
207
|
fromUi: "png" | "jpeg" | "pdf" | "webp" | null;
|
|
208
208
|
}) => {
|
|
@@ -217,8 +217,8 @@ export declare const CliInternals: {
|
|
|
217
217
|
};
|
|
218
218
|
getVideoImageFormat: ({ codec, uiImageFormat, }: {
|
|
219
219
|
codec: import("@remotion/renderer").CodecOrUndefined;
|
|
220
|
-
uiImageFormat: "
|
|
221
|
-
}) => "
|
|
220
|
+
uiImageFormat: "none" | "png" | "jpeg" | null;
|
|
221
|
+
}) => "none" | "png" | "jpeg";
|
|
222
222
|
printCompositions: (compositions: import("remotion").VideoConfig[]) => void;
|
|
223
223
|
getFinalOutputCodec: ({ cliFlag, configFile, downloadName, outName, uiCodec, compositionCodec, }: {
|
|
224
224
|
cliFlag: import("@remotion/renderer").CodecOrUndefined;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@remotion/cli",
|
|
3
|
-
"version": "4.0.
|
|
3
|
+
"version": "4.0.55",
|
|
4
4
|
"description": "CLI for Remotion",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"sideEffects": false,
|
|
@@ -35,11 +35,11 @@
|
|
|
35
35
|
"prompts": "2.4.1",
|
|
36
36
|
"semver": "7.5.3",
|
|
37
37
|
"source-map": "0.6.1",
|
|
38
|
-
"@remotion/bundler": "4.0.
|
|
39
|
-
"@remotion/media-utils": "4.0.
|
|
40
|
-
"@remotion/player": "4.0.
|
|
41
|
-
"
|
|
42
|
-
"remotion": "4.0.
|
|
38
|
+
"@remotion/bundler": "4.0.55",
|
|
39
|
+
"@remotion/media-utils": "4.0.55",
|
|
40
|
+
"@remotion/player": "4.0.55",
|
|
41
|
+
"remotion": "4.0.55",
|
|
42
|
+
"@remotion/renderer": "4.0.55"
|
|
43
43
|
},
|
|
44
44
|
"peerDependencies": {
|
|
45
45
|
"react": ">=16.8.0",
|
|
@@ -65,8 +65,8 @@
|
|
|
65
65
|
"react-dom": "^18.0.0",
|
|
66
66
|
"vitest": "0.31.1",
|
|
67
67
|
"zod": "^3.22.3",
|
|
68
|
-
"@remotion/zod-types": "4.0.
|
|
69
|
-
"@remotion/tailwind": "4.0.
|
|
68
|
+
"@remotion/zod-types": "4.0.55",
|
|
69
|
+
"@remotion/tailwind": "4.0.55"
|
|
70
70
|
},
|
|
71
71
|
"keywords": [
|
|
72
72
|
"remotion",
|
package/styles/styles.css
CHANGED
|
@@ -10,14 +10,47 @@ body {
|
|
|
10
10
|
}
|
|
11
11
|
|
|
12
12
|
.remotion-splitter {
|
|
13
|
-
background-color: black;
|
|
14
|
-
transition: background-color 0.2s ease;
|
|
15
13
|
user-select: none;
|
|
16
14
|
}
|
|
17
15
|
|
|
18
|
-
.remotion-splitter
|
|
19
|
-
|
|
20
|
-
background
|
|
16
|
+
.remotion-splitter-horizontal {
|
|
17
|
+
transform: scaleY(2);
|
|
18
|
+
background: linear-gradient(
|
|
19
|
+
to bottom,
|
|
20
|
+
transparent 25%,
|
|
21
|
+
black 25%,
|
|
22
|
+
black 75%,
|
|
23
|
+
transparent
|
|
24
|
+
);
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
.remotion-splitter-horizontal:hover,
|
|
28
|
+
.remotion-splitter-horizontal.remotion-splitter-active {
|
|
29
|
+
background: linear-gradient(
|
|
30
|
+
to bottom,
|
|
31
|
+
var(--remotion-cli-internals-blue),
|
|
32
|
+
var(--remotion-cli-internals-blue)
|
|
33
|
+
);
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
.remotion-splitter-vertical {
|
|
37
|
+
transform: scaleX(2);
|
|
38
|
+
background: linear-gradient(
|
|
39
|
+
to right,
|
|
40
|
+
transparent 25%,
|
|
41
|
+
black 25%,
|
|
42
|
+
black 75%,
|
|
43
|
+
transparent
|
|
44
|
+
);
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
.remotion-splitter-vertical:hover,
|
|
48
|
+
.remotion-splitter-vertical.remotion-splitter-active {
|
|
49
|
+
background: linear-gradient(
|
|
50
|
+
to right,
|
|
51
|
+
var(--remotion-cli-internals-blue),
|
|
52
|
+
var(--remotion-cli-internals-blue)
|
|
53
|
+
);
|
|
21
54
|
}
|
|
22
55
|
|
|
23
56
|
input::-webkit-outer-spin-button,
|
|
@@ -31,7 +64,10 @@ textarea:focus,
|
|
|
31
64
|
button:focus,
|
|
32
65
|
a:focus {
|
|
33
66
|
outline: none;
|
|
34
|
-
box-shadow:
|
|
67
|
+
box-shadow:
|
|
68
|
+
inset 1px 1px #555,
|
|
69
|
+
inset -1px -1px #555,
|
|
70
|
+
inset 1px -1px #555,
|
|
35
71
|
inset -1px 1px #555;
|
|
36
72
|
border-radius: 0 !important;
|
|
37
73
|
}
|