@remotion/cli 4.0.52 → 4.0.54

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.
@@ -1 +1 @@
1
- export declare const getLogLevel: () => "error" | "verbose" | "info" | "warn", setLogLevel: (newLogLevel: "error" | "verbose" | "info" | "warn") => void;
1
+ export declare const getLogLevel: () => "verbose" | "info" | "warn" | "error", setLogLevel: (newLogLevel: "verbose" | "info" | "warn" | "error") => void;
@@ -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
- return ((0, jsx_runtime_1.jsxs)("div", { style: container, children: [canvasContent && canvasContent.type === 'composition' ? ((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) => {
94
- return ((0, jsx_runtime_1.jsx)(CompositionSelectorItem_1.CompositionSelectorItem, { level: 0, currentComposition: canvasContent && canvasContent.type === 'composition'
95
- ? canvasContent.compositionId
96
- : null, selectComposition: selectComposition, toggleFolder: toggleFolder, tabIndex: tabIndex, item: c }, c.key + c.type));
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 +1,2 @@
1
+ export declare const CURRENT_COMPOSITION_HEIGHT = 80;
1
2
  export declare const CurrentComposition: () => JSX.Element;
@@ -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: 80,
11
+ height: exports.CURRENT_COMPOSITION_HEIGHT,
11
12
  display: 'block',
12
13
  borderBottom: `1px solid ${colors_1.BORDER_COLOR}`,
13
14
  padding: 12,
@@ -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.5 }) : null, showButton ? (0, jsx_runtime_1.jsx)(OpenEditorButton_1.OpenEditorButton, {}) : null] }));
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
- minWidth: '350px',
25
+ width: '330px',
26
26
  display: 'flex',
27
27
  alignItems: 'center',
28
28
  justifyContent: 'flex-end',
29
29
  };
30
30
  const fixedWidthLeft = {
31
- minWidth: '350px',
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, { justify: "center", align: "center", className: "css-reset", style: row, children: [(0, jsx_runtime_1.jsxs)("div", { style: fixedWidthLeft, children: [structure.map((s) => {
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
  };
@@ -12,6 +12,6 @@ export declare const getInputBorderColor: ({ status, isFocused, isHovered, }: {
12
12
  status: 'error' | 'warning' | 'ok';
13
13
  isFocused: boolean;
14
14
  isHovered: boolean;
15
- }) => "#ff3232" | "hsla(0, 0%, 100%, 0.15)" | "#f1c40f" | "rgba(0, 0, 0, 0.6)" | "rgba(255, 255, 255, 0.05)";
16
- export declare const RemotionInput: React.ForwardRefExoticComponent<Pick<Props, "key" | "status" | "rightAlign" | keyof React.InputHTMLAttributes<HTMLInputElement>> & React.RefAttributes<HTMLInputElement>>;
15
+ }) => "#f1c40f" | "hsla(0, 0%, 100%, 0.15)" | "rgba(0, 0, 0, 0.6)" | "rgba(255, 255, 255, 0.05)" | "#ff3232";
16
+ export declare const RemotionInput: React.ForwardRefExoticComponent<Pick<Props, "key" | keyof React.InputHTMLAttributes<HTMLInputElement> | "status" | "rightAlign"> & React.RefAttributes<HTMLInputElement>>;
17
17
  export {};
@@ -4,5 +4,5 @@ type Props = React.DetailedHTMLProps<React.InputHTMLAttributes<HTMLInputElement>
4
4
  status: RemInputStatus;
5
5
  name: string;
6
6
  };
7
- export declare const RemInputTypeColor: React.ForwardRefExoticComponent<Pick<Props, "key" | "status" | keyof React.InputHTMLAttributes<HTMLInputElement>> & React.RefAttributes<HTMLInputElement>>;
7
+ export declare const RemInputTypeColor: React.ForwardRefExoticComponent<Pick<Props, "key" | keyof React.InputHTMLAttributes<HTMLInputElement> | "status"> & React.RefAttributes<HTMLInputElement>>;
8
8
  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: '11px',
11
- height: '11px',
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: forwardBackStyle }) }), (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: {
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)(CheckboardToggle_1.CheckboardToggle, {}), (0, jsx_runtime_1.jsx)(TimelineInOutToggle_1.TimelineInOutPointToggle, {}), (0, jsx_runtime_1.jsx)(MuteToggle_1.MuteToggle, { muted: mediaMuted, setMuted: setMediaMuted })] })) : 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 }), (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;
@@ -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: "remotion-splitter", style: context.orientation === 'horizontal' ? containerRow : containerColumn }));
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.BLUE,
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", children: hasKnownBugs ? 'Bugfixes available' : 'Update available' }));
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: text, 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."] })] })] }));
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;
@@ -16,4 +16,4 @@ export declare const BLUE_DISABLED = "#284f73";
16
16
  export declare const getBackgroundFromHoverState: ({ selected, hovered, }: {
17
17
  selected: boolean;
18
18
  hovered: boolean;
19
- }) => "transparent" | "hsla(0, 0%, 100%, 0.25)" | "hsla(0, 0%, 100%, 0.15)" | "rgba(255, 255, 255, 0.06)";
19
+ }) => "transparent" | "hsla(0, 0%, 100%, 0.15)" | "hsla(0, 0%, 100%, 0.25)" | "rgba(255, 255, 255, 0.06)";
@@ -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
- throw new Error('Cannot find parent');
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,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import type { Codec } from '@remotion/renderer';
2
3
  import type { RenderType } from '../components/RenderModal/RenderModalAdvanced';
3
4
  type Section = 'general' | 'picture' | 'advanced' | 'data' | 'gif' | 'audio';
@@ -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 = 25;
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
  };
@@ -21,7 +21,7 @@ export declare const getCliOptions: (options: {
21
21
  numberOfGifLoops: import("./config/number-of-gif-loops").Loop;
22
22
  stillFrame: number;
23
23
  browserExecutable: BrowserExecutable;
24
- logLevel: "error" | "verbose" | "info" | "warn";
24
+ logLevel: "verbose" | "info" | "warn" | "error";
25
25
  scale: number;
26
26
  chromiumOptions: ChromiumOptions;
27
27
  overwrite: boolean;
package/dist/index.d.ts CHANGED
@@ -63,24 +63,24 @@ export declare const CliInternals: {
63
63
  verbose: (message?: any, ...optionalParams: any[]) => void;
64
64
  verboseAdvanced: (options: {
65
65
  indent: boolean;
66
- logLevel: "error" | "verbose" | "info" | "warn";
66
+ logLevel: "verbose" | "info" | "warn" | "error";
67
67
  } & {
68
68
  tag?: string | undefined;
69
69
  }, message?: any, ...optionalParams: any[]) => void;
70
70
  info: (message?: any, ...optionalParams: any[]) => void;
71
71
  infoAdvanced: (options: {
72
72
  indent: boolean;
73
- logLevel: "error" | "verbose" | "info" | "warn";
73
+ logLevel: "verbose" | "info" | "warn" | "error";
74
74
  }, message?: any, ...optionalParams: any[]) => void;
75
75
  warn: (message?: any, ...optionalParams: any[]) => void;
76
76
  warnAdvanced: (options: {
77
77
  indent: boolean;
78
- logLevel: "error" | "verbose" | "info" | "warn";
78
+ logLevel: "verbose" | "info" | "warn" | "error";
79
79
  }, message?: any, ...optionalParams: any[]) => void;
80
80
  error: (message?: any, ...optionalParams: any[]) => void;
81
81
  errorAdvanced: (options: {
82
82
  indent: boolean;
83
- logLevel: "error" | "verbose" | "info" | "warn";
83
+ logLevel: "verbose" | "info" | "warn" | "error";
84
84
  } & {
85
85
  tag?: string | undefined;
86
86
  }, message?: any, ...optionalParams: any[]) => void;
@@ -106,7 +106,7 @@ export declare const CliInternals: {
106
106
  numberOfGifLoops: import("./config/number-of-gif-loops").Loop;
107
107
  stillFrame: number;
108
108
  browserExecutable: import("@remotion/renderer").BrowserExecutable;
109
- logLevel: "error" | "verbose" | "info" | "warn";
109
+ logLevel: "verbose" | "info" | "warn" | "error";
110
110
  scale: number;
111
111
  chromiumOptions: import("@remotion/renderer").ChromiumOptions;
112
112
  overwrite: boolean;
@@ -190,7 +190,7 @@ export declare const CliInternals: {
190
190
  } & {
191
191
  _: string[];
192
192
  };
193
- printError: (err: Error, logLevel: "error" | "verbose" | "info" | "warn") => Promise<void>;
193
+ printError: (err: Error, logLevel: "verbose" | "info" | "warn" | "error") => Promise<void>;
194
194
  formatBytes: (number: number, options?: Intl.NumberFormatOptions & {
195
195
  locale: string;
196
196
  bits?: boolean | undefined;
@@ -233,7 +233,7 @@ export declare const CliInternals: {
233
233
  };
234
234
  listOfRemotionPackages: string[];
235
235
  shouldUseNonOverlayingLogger: ({ logLevel, }: {
236
- logLevel: "error" | "verbose" | "info" | "warn";
236
+ logLevel: "verbose" | "info" | "warn" | "error";
237
237
  }) => boolean;
238
238
  getCompositionWithDimensionOverride: ({ height, width, args, compositionIdFromUi, chromiumOptions, envVariables, port, puppeteerInstance, timeoutInMilliseconds, browserExecutable, serveUrlOrWebpackUrl, indent, serializedInputPropsWithCustomSchema, logLevel, server, offthreadVideoCacheSizeInBytes, }: {
239
239
  height: number | null;
@@ -248,7 +248,7 @@ export declare const CliInternals: {
248
248
  browserExecutable: import("@remotion/renderer").BrowserExecutable;
249
249
  serveUrlOrWebpackUrl: string;
250
250
  indent: boolean;
251
- logLevel: "error" | "verbose" | "info" | "warn";
251
+ logLevel: "verbose" | "info" | "warn" | "error";
252
252
  serializedInputPropsWithCustomSchema: string;
253
253
  server: import("@remotion/renderer").RemotionServer;
254
254
  offthreadVideoCacheSizeInBytes: number | null;
@@ -27,5 +27,6 @@ exports.listOfRemotionPackages = [
27
27
  '@remotion/shapes',
28
28
  '@remotion/zod-types',
29
29
  '@remotion/tailwind',
30
+ '@remotion/transitions',
30
31
  'remotion',
31
32
  ];
package/dist/log.d.ts CHANGED
@@ -2,24 +2,24 @@ export declare const Log: {
2
2
  verbose: (message?: any, ...optionalParams: any[]) => void;
3
3
  verboseAdvanced: (options: {
4
4
  indent: boolean;
5
- logLevel: "error" | "verbose" | "info" | "warn";
5
+ logLevel: "verbose" | "info" | "warn" | "error";
6
6
  } & {
7
7
  tag?: string | undefined;
8
8
  }, message?: any, ...optionalParams: any[]) => void;
9
9
  info: (message?: any, ...optionalParams: any[]) => void;
10
10
  infoAdvanced: (options: {
11
11
  indent: boolean;
12
- logLevel: "error" | "verbose" | "info" | "warn";
12
+ logLevel: "verbose" | "info" | "warn" | "error";
13
13
  }, message?: any, ...optionalParams: any[]) => void;
14
14
  warn: (message?: any, ...optionalParams: any[]) => void;
15
15
  warnAdvanced: (options: {
16
16
  indent: boolean;
17
- logLevel: "error" | "verbose" | "info" | "warn";
17
+ logLevel: "verbose" | "info" | "warn" | "error";
18
18
  }, message?: any, ...optionalParams: any[]) => void;
19
19
  error: (message?: any, ...optionalParams: any[]) => void;
20
20
  errorAdvanced: (options: {
21
21
  indent: boolean;
22
- logLevel: "error" | "verbose" | "info" | "warn";
22
+ logLevel: "verbose" | "info" | "warn" | "error";
23
23
  } & {
24
24
  tag?: string | undefined;
25
25
  }, message?: any, ...optionalParams: any[]) => void;
@@ -1,3 +1,4 @@
1
+ /// <reference types="node" />
1
2
  import type { IncomingMessage, ServerResponse } from 'node:http';
2
3
  import type { LiveEventsServer } from './live-events';
3
4
  export declare const handleRoutes: ({ staticHash, staticHashPrefix, outputHash, outputHashPrefix, request, response, liveEventsServer, getCurrentInputProps, getEnvVariables, remotionRoot, entryPoint, publicDir, }: {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@remotion/cli",
3
- "version": "4.0.52",
3
+ "version": "4.0.54",
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.52",
39
- "@remotion/renderer": "4.0.52",
40
- "@remotion/media-utils": "4.0.52",
41
- "@remotion/player": "4.0.52",
42
- "remotion": "4.0.52"
38
+ "@remotion/bundler": "4.0.54",
39
+ "@remotion/media-utils": "4.0.54",
40
+ "remotion": "4.0.54",
41
+ "@remotion/renderer": "4.0.54",
42
+ "@remotion/player": "4.0.54"
43
43
  },
44
44
  "peerDependencies": {
45
45
  "react": ">=16.8.0",
@@ -53,7 +53,7 @@
53
53
  "@types/prompts": "^2.4.1",
54
54
  "@types/react": "18.0.26",
55
55
  "@types/prettier": "^2.7.2",
56
- "@types/react-dom": "18.0.10",
56
+ "@types/react-dom": "18.0.11",
57
57
  "@types/semver": "^7.3.4",
58
58
  "eslint": "8.42.0",
59
59
  "eslint-plugin-10x": "1.5.2",
@@ -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.52",
69
- "@remotion/tailwind": "4.0.52"
68
+ "@remotion/zod-types": "4.0.54",
69
+ "@remotion/tailwind": "4.0.54"
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:hover,
19
- .remotion-splitter-active {
20
- background-color: var(--remotion-cli-internals-blue);
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: inset 1px 1px #555, inset -1px -1px #555, inset 1px -1px #555,
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
  }