@remotion/studio 4.0.428 → 4.0.430
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/README.md +7 -7
- package/dist/components/AssetSelectorItem.js +1 -1
- package/dist/components/Canvas.js +1 -1
- package/dist/components/CopyButton.js +1 -1
- package/dist/components/FilePreview.js +1 -1
- package/dist/components/InstallPackage.js +1 -1
- package/dist/components/Menu/MenuSubItem.js +1 -1
- package/dist/components/MenuBuildIndicator.js +1 -1
- package/dist/components/MenuToolbar.js +1 -1
- package/dist/components/ModalHeader.js +1 -1
- package/dist/components/NewComposition/CodemodFooter.js +1 -1
- package/dist/components/NewComposition/ComboBox.js +1 -1
- package/dist/components/NewComposition/DuplicateComposition.js +15 -15
- package/dist/components/NewComposition/InputDragger.d.ts +1 -0
- package/dist/components/NewComposition/InputDragger.js +8 -2
- package/dist/components/NewComposition/MenuContent.js +1 -1
- package/dist/components/NewComposition/NewCompDuration.js +5 -5
- package/dist/components/NewComposition/RenameComposition.js +5 -5
- package/dist/components/OverrideInputProps.js +1 -1
- package/dist/components/PreviewToolbar.js +4 -3
- package/dist/components/QuickSwitcher/QuickSwitcherContent.js +3 -3
- package/dist/components/RenderButton.js +1 -1
- package/dist/components/RenderModal/DataEditor.js +4 -4
- package/dist/components/RenderModal/EnforceAudioTrackSetting.js +1 -1
- package/dist/components/RenderModal/EnvInput.js +1 -1
- package/dist/components/RenderModal/MutedSetting.js +1 -1
- package/dist/components/RenderModal/NumberSetting.js +2 -2
- package/dist/components/RenderModal/OptionExplainer.js +1 -1
- package/dist/components/RenderModal/RenderModalAdvanced.js +2 -2
- package/dist/components/RenderModal/RenderModalAudio.js +3 -3
- package/dist/components/RenderModal/RenderModalBasic.js +3 -3
- package/dist/components/RenderModal/RenderModalGif.js +1 -1
- package/dist/components/RenderModal/RenderModalJSONPropsEditor.js +2 -2
- package/dist/components/RenderModal/RenderModalOutputName.js +1 -1
- package/dist/components/RenderModal/RenderModalPicture.js +2 -2
- package/dist/components/RenderModal/RenderStatusModal.js +1 -1
- package/dist/components/RenderModal/ResolveCompositionBeforeModal.js +1 -1
- package/dist/components/RenderModal/SchemaEditor/SchemaEditor.js +3 -3
- package/dist/components/RenderModal/SchemaEditor/SchemaErrorMessages.js +1 -1
- package/dist/components/RenderModal/SchemaEditor/SchemaLabel.js +1 -1
- package/dist/components/RenderModal/SchemaEditor/ZodArrayEditor.d.ts +1 -1
- package/dist/components/RenderModal/SchemaEditor/ZodArrayEditor.js +4 -4
- package/dist/components/RenderModal/SchemaEditor/ZodArrayItemEditor.d.ts +1 -1
- package/dist/components/RenderModal/SchemaEditor/ZodBooleanEditor.d.ts +1 -1
- package/dist/components/RenderModal/SchemaEditor/ZodBooleanEditor.js +1 -1
- package/dist/components/RenderModal/SchemaEditor/ZodColorEditor.d.ts +1 -1
- package/dist/components/RenderModal/SchemaEditor/ZodColorEditor.js +3 -3
- package/dist/components/RenderModal/SchemaEditor/ZodDateEditor.d.ts +1 -1
- package/dist/components/RenderModal/SchemaEditor/ZodDateEditor.js +2 -2
- package/dist/components/RenderModal/SchemaEditor/ZodDiscriminatedUnionEditor.d.ts +1 -1
- package/dist/components/RenderModal/SchemaEditor/ZodDiscriminatedUnionEditor.js +4 -4
- package/dist/components/RenderModal/SchemaEditor/ZodEffectEditor.d.ts +1 -1
- package/dist/components/RenderModal/SchemaEditor/ZodEffectEditor.js +2 -2
- package/dist/components/RenderModal/SchemaEditor/ZodEnumEditor.d.ts +1 -1
- package/dist/components/RenderModal/SchemaEditor/ZodEnumEditor.js +2 -2
- package/dist/components/RenderModal/SchemaEditor/ZodErrorMessages.js +1 -1
- package/dist/components/RenderModal/SchemaEditor/ZodMatrixEditor.d.ts +1 -1
- package/dist/components/RenderModal/SchemaEditor/ZodMatrixEditor.js +4 -4
- package/dist/components/RenderModal/SchemaEditor/ZodNullableEditor.d.ts +1 -1
- package/dist/components/RenderModal/SchemaEditor/ZodNullableEditor.js +1 -1
- package/dist/components/RenderModal/SchemaEditor/ZodNumberEditor.d.ts +1 -1
- package/dist/components/RenderModal/SchemaEditor/ZodNumberEditor.js +3 -66
- package/dist/components/RenderModal/SchemaEditor/ZodObjectEditor.d.ts +1 -1
- package/dist/components/RenderModal/SchemaEditor/ZodObjectEditor.js +3 -3
- package/dist/components/RenderModal/SchemaEditor/ZodOptionalEditor.d.ts +1 -1
- package/dist/components/RenderModal/SchemaEditor/ZodOptionalEditor.js +1 -1
- package/dist/components/RenderModal/SchemaEditor/ZodOrNullishEditor.d.ts +1 -1
- package/dist/components/RenderModal/SchemaEditor/ZodOrNullishEditor.js +2 -2
- package/dist/components/RenderModal/SchemaEditor/ZodStaticFileEditor.d.ts +1 -1
- package/dist/components/RenderModal/SchemaEditor/ZodStaticFileEditor.js +1 -1
- package/dist/components/RenderModal/SchemaEditor/ZodStringEditor.d.ts +1 -1
- package/dist/components/RenderModal/SchemaEditor/ZodStringEditor.js +2 -2
- package/dist/components/RenderModal/SchemaEditor/ZodTextareaEditor.d.ts +1 -1
- package/dist/components/RenderModal/SchemaEditor/ZodTextareaEditor.js +2 -2
- package/dist/components/RenderModal/SchemaEditor/ZodTupleItemEditor.d.ts +1 -1
- package/dist/components/RenderModal/SchemaEditor/ZodUnionEditor.d.ts +1 -1
- package/dist/components/RenderModal/SchemaEditor/ZodUnionEditor.js +1 -1
- package/dist/components/RenderModal/SchemaEditor/local-state.d.ts +1 -1
- package/dist/components/RenderModal/SchemaEditor/zod-number-constraints.d.ts +4 -0
- package/dist/components/RenderModal/SchemaEditor/zod-number-constraints.js +70 -0
- package/dist/components/RenderModal/SeparateAudioOption.js +2 -2
- package/dist/components/RenderModal/ServerRenderModal.js +5 -5
- package/dist/components/RenderModal/WebRenderModalAudio.js +3 -3
- package/dist/components/RenderModal/WebRenderModalLicense.js +1 -1
- package/dist/components/RenderQueue/index.js +2 -2
- package/dist/components/RendersTab.js +1 -1
- package/dist/components/RunningCalculateMetadata.js +1 -1
- package/dist/components/TimeValue.js +1 -1
- package/dist/components/Timeline/Timeline.js +2 -2
- package/dist/components/Timeline/TimelineDragHandler.js +2 -2
- package/dist/components/Timeline/TimelineExpandedSection.d.ts +7 -0
- package/dist/components/Timeline/TimelineExpandedSection.js +186 -0
- package/dist/components/Timeline/TimelineListItem.js +23 -14
- package/dist/components/Timeline/TimelineSchemaField.d.ts +14 -0
- package/dist/components/Timeline/TimelineSchemaField.js +106 -0
- package/dist/components/Timeline/TimelineSequenceFrame.js +1 -0
- package/dist/components/Timeline/TimelineSlider.js +2 -2
- package/dist/components/Timeline/TimelineStack/index.d.ts +2 -0
- package/dist/components/Timeline/TimelineStack/index.js +2 -17
- package/dist/components/Timeline/TimelineTimeIndicators.js +1 -1
- package/dist/components/Timeline/TimelineTracks.js +9 -6
- package/dist/components/Timeline/TimelineVideoInfo.js +49 -34
- package/dist/components/Timeline/timeline-scroll-logic.js +1 -1
- package/dist/components/UpdateModal/UpdateModal.js +1 -1
- package/dist/components/VisualControls/VisualControlHandle.js +5 -5
- package/dist/error-overlay/react-overlay/listen-to-runtime-errors.js +1 -1
- package/dist/error-overlay/remotion-overlay/CompositionIdsDropdown.js +1 -1
- package/dist/error-overlay/remotion-overlay/ErrorDisplay.js +2 -2
- package/dist/error-overlay/remotion-overlay/StackFrame.js +1 -1
- package/dist/esm/{chunk-btxgxqx6.js → chunk-59m8tgkh.js} +3700 -3330
- package/dist/esm/chunk-m17t3vjq.js +9 -0
- package/dist/esm/index.mjs +0 -16
- package/dist/esm/internals.mjs +3696 -3341
- package/dist/esm/previewEntry.mjs +32590 -32228
- package/dist/esm/renderEntry.mjs +3 -5
- package/dist/helpers/calculate-timeline.js +1 -0
- package/dist/helpers/extract-frames.js +23 -7
- package/dist/helpers/get-timeline-sequence-layout.js +4 -18
- package/dist/helpers/timeline-layout.d.ts +14 -0
- package/dist/helpers/timeline-layout.js +33 -1
- package/dist/helpers/use-menu-structure.js +1 -1
- package/dist/previewEntry.js +1 -2
- package/dist/renderEntry.js +0 -1
- package/package.json +12 -11
- package/dist/esm/chunk-6jf1natv.js +0 -25
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TimelineFieldSavingSpinner = exports.TimelineFieldValue = void 0;
|
|
4
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
+
const react_1 = require("react");
|
|
6
|
+
const Checkbox_1 = require("../Checkbox");
|
|
7
|
+
const InputDragger_1 = require("../NewComposition/InputDragger");
|
|
8
|
+
const Spinner_1 = require("../Spinner");
|
|
9
|
+
const unsupportedLabel = {
|
|
10
|
+
color: 'rgba(255, 255, 255, 0.4)',
|
|
11
|
+
fontSize: 12,
|
|
12
|
+
marginLeft: 'auto',
|
|
13
|
+
fontStyle: 'italic',
|
|
14
|
+
};
|
|
15
|
+
const draggerStyle = {
|
|
16
|
+
width: 80,
|
|
17
|
+
marginLeft: 'auto',
|
|
18
|
+
};
|
|
19
|
+
const checkboxContainer = {
|
|
20
|
+
marginLeft: 'auto',
|
|
21
|
+
};
|
|
22
|
+
const notEditableBackground = {
|
|
23
|
+
backgroundColor: 'rgba(255, 0, 0, 0.2)',
|
|
24
|
+
borderRadius: 3,
|
|
25
|
+
padding: '0 4px',
|
|
26
|
+
};
|
|
27
|
+
const TimelineNumberField = ({ field, codeValue, canUpdate, onSave, onDragValueChange, onDragEnd }) => {
|
|
28
|
+
var _a, _b, _c;
|
|
29
|
+
const [dragValue, setDragValue] = (0, react_1.useState)(null);
|
|
30
|
+
const dragging = (0, react_1.useRef)(false);
|
|
31
|
+
const onValueChange = (0, react_1.useCallback)((newVal) => {
|
|
32
|
+
dragging.current = true;
|
|
33
|
+
setDragValue(newVal);
|
|
34
|
+
onDragValueChange(field.key, newVal);
|
|
35
|
+
}, [onDragValueChange, field.key]);
|
|
36
|
+
(0, react_1.useEffect)(() => {
|
|
37
|
+
setDragValue(null);
|
|
38
|
+
onDragEnd();
|
|
39
|
+
}, [field.currentValue, onDragEnd]);
|
|
40
|
+
const onValueChangeEnd = (0, react_1.useCallback)((newVal) => {
|
|
41
|
+
if (canUpdate && newVal !== codeValue) {
|
|
42
|
+
onSave(field.key, newVal).catch(() => {
|
|
43
|
+
setDragValue(null);
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
setDragValue(null);
|
|
48
|
+
}
|
|
49
|
+
}, [canUpdate, onSave, field.key, codeValue]);
|
|
50
|
+
const onTextChange = (0, react_1.useCallback)((newVal) => {
|
|
51
|
+
if (canUpdate) {
|
|
52
|
+
const parsed = Number(newVal);
|
|
53
|
+
if (!Number.isNaN(parsed) && parsed !== codeValue) {
|
|
54
|
+
setDragValue(parsed);
|
|
55
|
+
onSave(field.key, parsed).catch(() => {
|
|
56
|
+
setDragValue(null);
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
}, [canUpdate, onSave, field.key, codeValue]);
|
|
61
|
+
return (jsx_runtime_1.jsx(InputDragger_1.InputDragger, { type: "number", value: dragValue !== null && dragValue !== void 0 ? dragValue : codeValue, style: draggerStyle, status: "ok", onValueChange: onValueChange, onValueChangeEnd: onValueChangeEnd, onTextChange: onTextChange, min: field.fieldSchema.type === 'number'
|
|
62
|
+
? ((_a = field.fieldSchema.min) !== null && _a !== void 0 ? _a : -Infinity)
|
|
63
|
+
: -Infinity, max: field.fieldSchema.type === 'number'
|
|
64
|
+
? ((_b = field.fieldSchema.max) !== null && _b !== void 0 ? _b : Infinity)
|
|
65
|
+
: Infinity, step: field.fieldSchema.type === 'number' ? ((_c = field.fieldSchema.step) !== null && _c !== void 0 ? _c : 1) : 1, rightAlign: true }));
|
|
66
|
+
};
|
|
67
|
+
const TimelineBooleanField = ({ field, codeValue, canUpdate, onSave }) => {
|
|
68
|
+
const checked = Boolean(codeValue);
|
|
69
|
+
const onChange = (0, react_1.useCallback)(() => {
|
|
70
|
+
if (canUpdate) {
|
|
71
|
+
onSave(field.key, !checked);
|
|
72
|
+
}
|
|
73
|
+
}, [canUpdate, onSave, field.key, checked]);
|
|
74
|
+
return (jsx_runtime_1.jsx("div", { style: checkboxContainer, children: jsx_runtime_1.jsx(Checkbox_1.Checkbox, { checked: checked, onChange: onChange, name: field.key, disabled: !canUpdate }) }));
|
|
75
|
+
};
|
|
76
|
+
const TimelineFieldValue = ({ field, onSave, onDragValueChange, onDragEnd, propStatus, canUpdate }) => {
|
|
77
|
+
var _a, _b;
|
|
78
|
+
const wrapperStyle = canUpdate === null || canUpdate === false
|
|
79
|
+
? notEditableBackground
|
|
80
|
+
: undefined;
|
|
81
|
+
if (!field.supported) {
|
|
82
|
+
return jsx_runtime_1.jsx("span", { style: unsupportedLabel, children: "unsupported" });
|
|
83
|
+
}
|
|
84
|
+
if (propStatus !== null && !propStatus.canUpdate) {
|
|
85
|
+
return jsx_runtime_1.jsx("span", { style: unsupportedLabel, children: propStatus.reason });
|
|
86
|
+
}
|
|
87
|
+
if (propStatus === null) {
|
|
88
|
+
return (jsx_runtime_1.jsx("span", { style: { ...notEditableBackground }, children: jsx_runtime_1.jsx("span", { style: unsupportedLabel, children: "error" }) }));
|
|
89
|
+
}
|
|
90
|
+
const effectiveCodeValue = (_b = (_a = propStatus.codeValue) !== null && _a !== void 0 ? _a : field.currentValue) !== null && _b !== void 0 ? _b : field.fieldSchema.default;
|
|
91
|
+
if (field.typeName === 'number') {
|
|
92
|
+
return (jsx_runtime_1.jsx("span", { style: wrapperStyle, children: jsx_runtime_1.jsx(TimelineNumberField, { field: field, codeValue: effectiveCodeValue, canUpdate: canUpdate, onSave: onSave, onDragValueChange: onDragValueChange, onDragEnd: onDragEnd }) }));
|
|
93
|
+
}
|
|
94
|
+
if (field.typeName === 'boolean') {
|
|
95
|
+
return (jsx_runtime_1.jsx("span", { style: wrapperStyle, children: jsx_runtime_1.jsx(TimelineBooleanField, { field: field, codeValue: effectiveCodeValue, canUpdate: canUpdate, onSave: onSave }) }));
|
|
96
|
+
}
|
|
97
|
+
return (jsx_runtime_1.jsx("span", { style: { ...unsupportedLabel, fontStyle: 'normal' }, children: String(effectiveCodeValue) }));
|
|
98
|
+
};
|
|
99
|
+
exports.TimelineFieldValue = TimelineFieldValue;
|
|
100
|
+
const TimelineFieldSavingSpinner = ({ saving }) => {
|
|
101
|
+
if (!saving) {
|
|
102
|
+
return null;
|
|
103
|
+
}
|
|
104
|
+
return jsx_runtime_1.jsx(Spinner_1.Spinner, { duration: 0.5, size: 12 });
|
|
105
|
+
};
|
|
106
|
+
exports.TimelineFieldSavingSpinner = TimelineFieldSavingSpinner;
|
|
@@ -7,6 +7,7 @@ const relativeFrameStyle = {
|
|
|
7
7
|
fontFamily: 'Arial, Helvetica, sans-serif',
|
|
8
8
|
color: 'white',
|
|
9
9
|
opacity: 0.5,
|
|
10
|
+
whiteSpace: 'nowrap',
|
|
10
11
|
};
|
|
11
12
|
const TimelineSequenceFrame = ({ roundedFrame, premounted, postmounted }) => {
|
|
12
13
|
return (jsx_runtime_1.jsx("div", { style: relativeFrameStyle, children: premounted
|
|
@@ -5,10 +5,10 @@ const jsx_runtime_1 = require("react/jsx-runtime");
|
|
|
5
5
|
const react_1 = require("react");
|
|
6
6
|
const remotion_1 = require("remotion");
|
|
7
7
|
const get_left_of_timeline_slider_1 = require("../../helpers/get-left-of-timeline-slider");
|
|
8
|
-
const TimelineSliderHandle_1 = require("./TimelineSliderHandle");
|
|
9
|
-
const TimelineWidthProvider_1 = require("./TimelineWidthProvider");
|
|
10
8
|
const imperative_state_1 = require("./imperative-state");
|
|
11
9
|
const timeline_refs_1 = require("./timeline-refs");
|
|
10
|
+
const TimelineSliderHandle_1 = require("./TimelineSliderHandle");
|
|
11
|
+
const TimelineWidthProvider_1 = require("./TimelineWidthProvider");
|
|
12
12
|
const container = {
|
|
13
13
|
position: 'absolute',
|
|
14
14
|
bottom: 0,
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import type { TSequence } from 'remotion';
|
|
3
|
+
import type { OriginalPosition } from '../../../error-overlay/react-overlay/utils/get-source-map';
|
|
3
4
|
export declare const TimelineStack: React.FC<{
|
|
4
5
|
readonly isCompact: boolean;
|
|
5
6
|
readonly sequence: TSequence;
|
|
7
|
+
readonly originalLocation: OriginalPosition | null;
|
|
6
8
|
}>;
|
|
@@ -11,10 +11,9 @@ const get_git_menu_item_1 = require("../../../helpers/get-git-menu-item");
|
|
|
11
11
|
const open_in_editor_1 = require("../../../helpers/open-in-editor");
|
|
12
12
|
const url_state_1 = require("../../../helpers/url-state");
|
|
13
13
|
const InitialCompositionLoader_1 = require("../../InitialCompositionLoader");
|
|
14
|
+
const layout_1 = require("../../layout");
|
|
14
15
|
const NotificationCenter_1 = require("../../Notifications/NotificationCenter");
|
|
15
16
|
const Spinner_1 = require("../../Spinner");
|
|
16
|
-
const layout_1 = require("../../layout");
|
|
17
|
-
const get_stack_1 = require("./get-stack");
|
|
18
17
|
const source_attribution_1 = require("./source-attribution");
|
|
19
18
|
const publicPath = window.remotion_publicPath === '/' ? '' : window.remotion_publicPath;
|
|
20
19
|
const withoutSlashInTheEnd = publicPath.endsWith('/')
|
|
@@ -24,8 +23,7 @@ const withoutSlashInTheEnd = publicPath.endsWith('/')
|
|
|
24
23
|
source_map_1.SourceMapConsumer.initialize({
|
|
25
24
|
'lib/mappings.wasm': withoutSlashInTheEnd + studio_shared_1.SOURCE_MAP_ENDPOINT,
|
|
26
25
|
});
|
|
27
|
-
const TimelineStack = ({ isCompact, sequence }) => {
|
|
28
|
-
const [originalLocation, setOriginalLocation] = (0, react_1.useState)(null);
|
|
26
|
+
const TimelineStack = ({ isCompact, sequence, originalLocation }) => {
|
|
29
27
|
const [stackHovered, setStackHovered] = (0, react_1.useState)(false);
|
|
30
28
|
const [titleHovered, setTitleHovered] = (0, react_1.useState)(false);
|
|
31
29
|
const [opening, setOpening] = (0, react_1.useState)(false);
|
|
@@ -107,19 +105,6 @@ const TimelineStack = ({ isCompact, sequence }) => {
|
|
|
107
105
|
window.open((0, get_git_menu_item_1.getGitRefUrl)(window.remotion_gitSource, originalLocation), '_blank');
|
|
108
106
|
}
|
|
109
107
|
}, [canOpenInEditor, canOpenInGitHub, openEditor, originalLocation]);
|
|
110
|
-
(0, react_1.useEffect)(() => {
|
|
111
|
-
if (!sequence.stack) {
|
|
112
|
-
return;
|
|
113
|
-
}
|
|
114
|
-
(0, get_stack_1.getOriginalLocationFromStack)(sequence.stack, 'sequence')
|
|
115
|
-
.then((frame) => {
|
|
116
|
-
setOriginalLocation(frame);
|
|
117
|
-
})
|
|
118
|
-
.catch((err) => {
|
|
119
|
-
// eslint-disable-next-line no-console
|
|
120
|
-
console.error('Could not get original location of Sequence', err);
|
|
121
|
-
});
|
|
122
|
-
}, [sequence.stack]);
|
|
123
108
|
const onStackPointerEnter = (0, react_1.useCallback)(() => {
|
|
124
109
|
setStackHovered(true);
|
|
125
110
|
}, []);
|
|
@@ -9,9 +9,9 @@ const timeline_layout_1 = require("../../helpers/timeline-layout");
|
|
|
9
9
|
const render_frame_1 = require("../../state/render-frame");
|
|
10
10
|
const SplitterHandle_1 = require("../Splitter/SplitterHandle");
|
|
11
11
|
const TimeValue_1 = require("../TimeValue");
|
|
12
|
-
const TimelineWidthProvider_1 = require("./TimelineWidthProvider");
|
|
13
12
|
const timeline_refs_1 = require("./timeline-refs");
|
|
14
13
|
const timeline_scroll_logic_1 = require("./timeline-scroll-logic");
|
|
14
|
+
const TimelineWidthProvider_1 = require("./TimelineWidthProvider");
|
|
15
15
|
exports.TIMELINE_TIME_INDICATOR_HEIGHT = 39;
|
|
16
16
|
const container = {
|
|
17
17
|
height: exports.TIMELINE_TIME_INDICATOR_HEIGHT - 4,
|
|
@@ -3,12 +3,13 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.TimelineTracks = void 0;
|
|
4
4
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
5
|
const react_1 = require("react");
|
|
6
|
+
const client_id_1 = require("../../helpers/client-id");
|
|
6
7
|
const timeline_layout_1 = require("../../helpers/timeline-layout");
|
|
7
8
|
const ExpandedTracksProvider_1 = require("../ExpandedTracksProvider");
|
|
9
|
+
const is_collapsed_1 = require("./is-collapsed");
|
|
8
10
|
const MaxTimelineTracks_1 = require("./MaxTimelineTracks");
|
|
9
11
|
const TimelineSequence_1 = require("./TimelineSequence");
|
|
10
12
|
const TimelineTimeIndicators_1 = require("./TimelineTimeIndicators");
|
|
11
|
-
const is_collapsed_1 = require("./is-collapsed");
|
|
12
13
|
const content = {
|
|
13
14
|
paddingLeft: timeline_layout_1.TIMELINE_PADDING,
|
|
14
15
|
paddingRight: timeline_layout_1.TIMELINE_PADDING,
|
|
@@ -17,12 +18,14 @@ const content = {
|
|
|
17
18
|
const timelineContent = {
|
|
18
19
|
minHeight: '100%',
|
|
19
20
|
};
|
|
20
|
-
const
|
|
21
|
-
height: timeline_layout_1.
|
|
22
|
-
};
|
|
21
|
+
const getExpandedPlaceholderStyle = (controls) => ({
|
|
22
|
+
height: (0, timeline_layout_1.getExpandedTrackHeight)(controls) + timeline_layout_1.TIMELINE_ITEM_BORDER_BOTTOM,
|
|
23
|
+
});
|
|
23
24
|
const TimelineTracks = ({ timeline, hasBeenCut }) => {
|
|
24
25
|
const { expandedTracks } = (0, react_1.useContext)(ExpandedTracksProvider_1.ExpandedTracksContext);
|
|
25
|
-
const
|
|
26
|
+
const { previewServerState } = (0, react_1.useContext)(client_id_1.StudioServerConnectionCtx);
|
|
27
|
+
const visualModeEnabled = Boolean(process.env.EXPERIMENTAL_VISUAL_MODE_ENABLED) &&
|
|
28
|
+
previewServerState.type === 'connected';
|
|
26
29
|
const timelineStyle = (0, react_1.useMemo)(() => {
|
|
27
30
|
return {
|
|
28
31
|
...timelineContent,
|
|
@@ -41,7 +44,7 @@ const TimelineTracks = ({ timeline, hasBeenCut }) => {
|
|
|
41
44
|
jsx_runtime_1.jsx("div", { style: {
|
|
42
45
|
height: (0, timeline_layout_1.getTimelineLayerHeight)(track.sequence.type === 'video' ? 'video' : 'other'),
|
|
43
46
|
marginBottom: timeline_layout_1.TIMELINE_ITEM_BORDER_BOTTOM,
|
|
44
|
-
}, children: jsx_runtime_1.jsx(TimelineSequence_1.TimelineSequence, { s: track.sequence }) }), visualModeEnabled && isExpanded ? (jsx_runtime_1.jsx("div", { style:
|
|
47
|
+
}, children: jsx_runtime_1.jsx(TimelineSequence_1.TimelineSequence, { s: track.sequence }) }), visualModeEnabled && isExpanded ? (jsx_runtime_1.jsx("div", { style: getExpandedPlaceholderStyle(track.sequence.controls) })) : null] }, track.sequence.id));
|
|
45
48
|
})] }), hasBeenCut ? jsx_runtime_1.jsx(MaxTimelineTracks_1.MaxTimelineTracksReached, {}) : null] }));
|
|
46
49
|
};
|
|
47
50
|
exports.TimelineTracks = TimelineTracks;
|
|
@@ -213,47 +213,62 @@ const TimelineVideoInfo = ({ src, visualizationWidth, naturalWidth, trimBefore,
|
|
|
213
213
|
},
|
|
214
214
|
src,
|
|
215
215
|
onVideoSample: (sample) => {
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
frame
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
216
|
+
let frame;
|
|
217
|
+
try {
|
|
218
|
+
frame = sample.toVideoFrame();
|
|
219
|
+
const scale = (HEIGHT / frame.displayHeight) * window.devicePixelRatio;
|
|
220
|
+
const transformed = (0, resize_video_frame_1.resizeVideoFrame)({
|
|
221
|
+
frame,
|
|
222
|
+
scale,
|
|
223
|
+
});
|
|
224
|
+
if (transformed !== frame) {
|
|
225
|
+
frame.close();
|
|
226
|
+
}
|
|
227
|
+
frame = undefined;
|
|
228
|
+
const databaseKey = (0, frame_database_1.makeFrameDatabaseKey)(src, transformed.timestamp);
|
|
229
|
+
const existingFrame = frame_database_1.frameDatabase.get(databaseKey);
|
|
230
|
+
if (existingFrame) {
|
|
231
|
+
existingFrame.frame.close();
|
|
232
|
+
}
|
|
233
|
+
frame_database_1.frameDatabase.set(databaseKey, {
|
|
234
|
+
frame: transformed,
|
|
235
|
+
lastUsed: Date.now(),
|
|
236
|
+
});
|
|
237
|
+
if (aspectRatio.current === null) {
|
|
238
|
+
throw new Error('Aspect ratio is not set');
|
|
239
|
+
}
|
|
240
|
+
ensureSlots({
|
|
241
|
+
filledSlots,
|
|
242
|
+
fromSeconds,
|
|
243
|
+
toSeconds,
|
|
244
|
+
naturalWidth,
|
|
245
|
+
aspectRatio: aspectRatio.current,
|
|
246
|
+
});
|
|
247
|
+
fillFrameWhereItFits({
|
|
248
|
+
ctx,
|
|
249
|
+
filledSlots,
|
|
250
|
+
visualizationWidth: naturalWidth,
|
|
251
|
+
frame: transformed,
|
|
252
|
+
segmentDuration: toSeconds - fromSeconds,
|
|
253
|
+
fromSeconds,
|
|
254
|
+
});
|
|
224
255
|
}
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
256
|
+
catch (e) {
|
|
257
|
+
if (frame) {
|
|
258
|
+
frame.close();
|
|
259
|
+
}
|
|
260
|
+
throw e;
|
|
229
261
|
}
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
lastUsed: Date.now(),
|
|
233
|
-
});
|
|
234
|
-
if (aspectRatio.current === null) {
|
|
235
|
-
throw new Error('Aspect ratio is not set');
|
|
262
|
+
finally {
|
|
263
|
+
sample.close();
|
|
236
264
|
}
|
|
237
|
-
ensureSlots({
|
|
238
|
-
filledSlots,
|
|
239
|
-
fromSeconds,
|
|
240
|
-
toSeconds,
|
|
241
|
-
naturalWidth,
|
|
242
|
-
aspectRatio: aspectRatio.current,
|
|
243
|
-
});
|
|
244
|
-
fillFrameWhereItFits({
|
|
245
|
-
ctx,
|
|
246
|
-
filledSlots,
|
|
247
|
-
visualizationWidth: naturalWidth,
|
|
248
|
-
frame: transformed,
|
|
249
|
-
segmentDuration: toSeconds - fromSeconds,
|
|
250
|
-
fromSeconds,
|
|
251
|
-
});
|
|
252
|
-
sample.close();
|
|
253
265
|
},
|
|
254
266
|
signal: controller.signal,
|
|
255
267
|
})
|
|
256
268
|
.then(() => {
|
|
269
|
+
if (controller.signal.aborted) {
|
|
270
|
+
return;
|
|
271
|
+
}
|
|
257
272
|
fillWithCachedFrames({
|
|
258
273
|
ctx,
|
|
259
274
|
naturalWidth,
|
|
@@ -3,8 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.zoomAndPreserveCursor = exports.getFrameFromX = exports.getFrameWhileScrollingRight = exports.getFrameIncrementFromWidth = exports.getScrollPositionForCursorOnRightEdge = exports.getScrollPositionForCursorOnLeftEdge = exports.scrollToTimelineXOffset = exports.ensureFrameIsInViewport = exports.isCursorInViewport = exports.getFrameWhileScrollingLeft = exports.canScrollTimelineIntoDirection = void 0;
|
|
4
4
|
const remotion_1 = require("remotion");
|
|
5
5
|
const timeline_layout_1 = require("../../helpers/timeline-layout");
|
|
6
|
-
const TimelineSlider_1 = require("./TimelineSlider");
|
|
7
6
|
const timeline_refs_1 = require("./timeline-refs");
|
|
7
|
+
const TimelineSlider_1 = require("./TimelineSlider");
|
|
8
8
|
const canScrollTimelineIntoDirection = () => {
|
|
9
9
|
const current = timeline_refs_1.scrollableRef.current;
|
|
10
10
|
const { scrollWidth, scrollLeft, clientWidth } = current;
|
|
@@ -7,10 +7,10 @@ const colors_1 = require("../../helpers/colors");
|
|
|
7
7
|
const copy_text_1 = require("../../helpers/copy-text");
|
|
8
8
|
const CopyButton_1 = require("../CopyButton");
|
|
9
9
|
const KnownBugs_1 = require("../KnownBugs");
|
|
10
|
+
const layout_1 = require("../layout");
|
|
10
11
|
const ModalHeader_1 = require("../ModalHeader");
|
|
11
12
|
const DismissableModal_1 = require("../NewComposition/DismissableModal");
|
|
12
13
|
const NotificationCenter_1 = require("../Notifications/NotificationCenter");
|
|
13
|
-
const layout_1 = require("../layout");
|
|
14
14
|
const container = {
|
|
15
15
|
padding: 20,
|
|
16
16
|
paddingTop: 0,
|
|
@@ -5,17 +5,17 @@ const jsx_runtime_1 = require("react/jsx-runtime");
|
|
|
5
5
|
const react_1 = require("react");
|
|
6
6
|
const no_react_1 = require("remotion/no-react");
|
|
7
7
|
const fast_refresh_context_1 = require("../../fast-refresh-context");
|
|
8
|
-
const VisualControls_1 = require("../../visual-controls/VisualControls");
|
|
9
8
|
const get_current_edited_value_1 = require("../../visual-controls/get-current-edited-value");
|
|
9
|
+
const VisualControls_1 = require("../../visual-controls/VisualControls");
|
|
10
|
+
const get_zod_if_possible_1 = require("../get-zod-if-possible");
|
|
11
|
+
const layout_1 = require("../layout");
|
|
10
12
|
const NotificationCenter_1 = require("../Notifications/NotificationCenter");
|
|
11
|
-
const ZodSwitch_1 = require("../RenderModal/SchemaEditor/ZodSwitch");
|
|
12
13
|
const extract_enum_json_paths_1 = require("../RenderModal/SchemaEditor/extract-enum-json-paths");
|
|
13
14
|
const local_state_1 = require("../RenderModal/SchemaEditor/local-state");
|
|
15
|
+
const ZodSwitch_1 = require("../RenderModal/SchemaEditor/ZodSwitch");
|
|
14
16
|
const actions_1 = require("../RenderQueue/actions");
|
|
15
|
-
const get_zod_if_possible_1 = require("../get-zod-if-possible");
|
|
16
|
-
const layout_1 = require("../layout");
|
|
17
|
-
const VisualControlHandleHeader_1 = require("./VisualControlHandleHeader");
|
|
18
17
|
const get_original_stack_trace_1 = require("./get-original-stack-trace");
|
|
18
|
+
const VisualControlHandleHeader_1 = require("./VisualControlHandleHeader");
|
|
19
19
|
const VisualControlHandle = ({ value, keyName }) => {
|
|
20
20
|
const z = (0, get_zod_if_possible_1.useZodIfPossible)();
|
|
21
21
|
if (!z) {
|
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.getErrorRecord = void 0;
|
|
4
4
|
exports.listenToRuntimeErrors = listenToRuntimeErrors;
|
|
5
|
+
const url_state_1 = require("../../helpers/url-state");
|
|
5
6
|
const Overlay_1 = require("../remotion-overlay/Overlay");
|
|
6
7
|
const format_warning_1 = require("./effects/format-warning");
|
|
7
8
|
const proxy_console_1 = require("./effects/proxy-console");
|
|
8
9
|
const stack_trace_limit_1 = require("./effects/stack-trace-limit");
|
|
9
|
-
const url_state_1 = require("../../helpers/url-state");
|
|
10
10
|
const unhandled_error_1 = require("./effects/unhandled-error");
|
|
11
11
|
const unhandled_rejection_1 = require("./effects/unhandled-rejection");
|
|
12
12
|
const get_stack_frames_1 = require("./utils/get-stack-frames");
|
|
@@ -5,8 +5,8 @@ const jsx_runtime_1 = require("react/jsx-runtime");
|
|
|
5
5
|
const react_1 = require("react");
|
|
6
6
|
const Button_1 = require("../../components/Button");
|
|
7
7
|
const colors_1 = require("../../helpers/colors");
|
|
8
|
-
const CompositionIdListItem_1 = require("./CompositionIdListItem");
|
|
9
8
|
const carets_1 = require("./carets");
|
|
9
|
+
const CompositionIdListItem_1 = require("./CompositionIdListItem");
|
|
10
10
|
const containerStyle = {
|
|
11
11
|
display: 'inline-block',
|
|
12
12
|
position: 'relative',
|
|
@@ -4,19 +4,19 @@ exports.ErrorDisplay = void 0;
|
|
|
4
4
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
5
|
const studio_shared_1 = require("@remotion/studio-shared");
|
|
6
6
|
const react_1 = require("react");
|
|
7
|
-
const is_menu_item_1 = require("../../components/Menu/is-menu-item");
|
|
8
7
|
const layout_1 = require("../../components/layout");
|
|
8
|
+
const is_menu_item_1 = require("../../components/Menu/is-menu-item");
|
|
9
9
|
const url_state_1 = require("../../helpers/url-state");
|
|
10
10
|
const AskOnDiscord_1 = require("./AskOnDiscord");
|
|
11
11
|
const CalculateMetadataErrorExplainer_1 = require("./CalculateMetadataErrorExplainer");
|
|
12
12
|
const CompositionIdsDropdown_1 = require("./CompositionIdsDropdown");
|
|
13
13
|
const ErrorTitle_1 = require("./ErrorTitle");
|
|
14
|
+
const get_help_link_1 = require("./get-help-link");
|
|
14
15
|
const HelpLink_1 = require("./HelpLink");
|
|
15
16
|
const OpenInEditor_1 = require("./OpenInEditor");
|
|
16
17
|
const Retry_1 = require("./Retry");
|
|
17
18
|
const SearchGitHubIssues_1 = require("./SearchGitHubIssues");
|
|
18
19
|
const StackFrame_1 = require("./StackFrame");
|
|
19
|
-
const get_help_link_1 = require("./get-help-link");
|
|
20
20
|
const stack = {
|
|
21
21
|
marginTop: 17,
|
|
22
22
|
overflowX: 'scroll',
|
|
@@ -4,8 +4,8 @@ exports.StackElement = void 0;
|
|
|
4
4
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
5
|
const react_1 = require("react");
|
|
6
6
|
const Button_1 = require("../../components/Button");
|
|
7
|
-
const CodeFrame_1 = require("./CodeFrame");
|
|
8
7
|
const carets_1 = require("./carets");
|
|
8
|
+
const CodeFrame_1 = require("./CodeFrame");
|
|
9
9
|
const format_location_1 = require("./format-location");
|
|
10
10
|
const location = {
|
|
11
11
|
color: 'rgba(255, 255, 255, 0.6)',
|