@remotion/studio 4.0.427 → 4.0.428
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/components/EditorContexts.js +2 -1
- package/dist/components/ExpandedTracksProvider.d.ts +10 -0
- package/dist/components/ExpandedTracksProvider.js +26 -0
- package/dist/components/Timeline/TimelineListItem.js +46 -3
- package/dist/components/Timeline/TimelineStack/index.js +1 -1
- package/dist/components/Timeline/TimelineTracks.js +13 -4
- package/dist/esm/{chunk-k61xktct.js → chunk-btxgxqx6.js} +1649 -1541
- package/dist/esm/internals.mjs +1649 -1541
- package/dist/esm/previewEntry.mjs +1660 -1552
- package/dist/esm/renderEntry.mjs +1 -1
- package/dist/helpers/timeline-layout.d.ts +1 -0
- package/dist/helpers/timeline-layout.js +2 -1
- package/package.json +9 -9
|
@@ -11,6 +11,7 @@ const preview_size_1 = require("../state/preview-size");
|
|
|
11
11
|
const sidebar_1 = require("../state/sidebar");
|
|
12
12
|
const VisualControls_1 = require("../visual-controls/VisualControls");
|
|
13
13
|
const CheckerboardProvider_1 = require("./CheckerboardProvider");
|
|
14
|
+
const ExpandedTracksProvider_1 = require("./ExpandedTracksProvider");
|
|
14
15
|
const get_zod_if_possible_1 = require("./get-zod-if-possible");
|
|
15
16
|
const MediaVolumeProvider_1 = require("./MediaVolumeProvider");
|
|
16
17
|
const ModalsProvider_1 = require("./ModalsProvider");
|
|
@@ -22,7 +23,7 @@ const ShowRulersProvider_1 = require("./ShowRulersProvider");
|
|
|
22
23
|
const ZoomGesturesProvider_1 = require("./ZoomGesturesProvider");
|
|
23
24
|
const EditorContexts = ({ children, readOnlyStudio }) => {
|
|
24
25
|
return (jsx_runtime_1.jsx(get_zod_if_possible_1.ZodProvider, { children: jsx_runtime_1.jsx(VisualControls_1.VisualControlsProvider, { children: jsx_runtime_1.jsx(client_id_1.PreviewServerConnection, { readOnlyStudio: readOnlyStudio, children: jsx_runtime_1.jsxs(context_1.RenderQueueContextProvider, { children: [
|
|
25
|
-
jsx_runtime_1.jsx(ClientRenderQueueProcessor_1.ClientRenderQueueProcessor, {}), jsx_runtime_1.jsx(keybindings_1.KeybindingContextProvider, { children: jsx_runtime_1.jsx(CheckerboardProvider_1.CheckerboardProvider, { children: jsx_runtime_1.jsx(ZoomGesturesProvider_1.ZoomGesturesProvider, { children: jsx_runtime_1.jsx(ShowRulersProvider_1.ShowRulersProvider, { children: jsx_runtime_1.jsx(ShowGuidesProvider_1.ShowGuidesProvider, { children: jsx_runtime_1.jsx(preview_size_1.PreviewSizeProvider, { children: jsx_runtime_1.jsx(ModalsProvider_1.ModalsProvider, { children: jsx_runtime_1.jsx(MediaVolumeProvider_1.MediaVolumeProvider, { children: jsx_runtime_1.jsx(player_1.PlayerInternals.PlayerEmitterProvider, { currentPlaybackRate: null, children: jsx_runtime_1.jsx(sidebar_1.SidebarContextProvider, { children: jsx_runtime_1.jsx(folders_1.FolderContextProvider, { children: jsx_runtime_1.jsx(highest_z_index_1.HighestZIndexProvider, { children: jsx_runtime_1.jsx(SetTimelineInOutProvider_1.SetTimelineInOutProvider, { children: children }) }) }) }) }) }) }) }) }) }) }) }) })
|
|
26
|
+
jsx_runtime_1.jsx(ClientRenderQueueProcessor_1.ClientRenderQueueProcessor, {}), jsx_runtime_1.jsx(keybindings_1.KeybindingContextProvider, { children: jsx_runtime_1.jsx(CheckerboardProvider_1.CheckerboardProvider, { children: jsx_runtime_1.jsx(ZoomGesturesProvider_1.ZoomGesturesProvider, { children: jsx_runtime_1.jsx(ShowRulersProvider_1.ShowRulersProvider, { children: jsx_runtime_1.jsx(ShowGuidesProvider_1.ShowGuidesProvider, { children: jsx_runtime_1.jsx(preview_size_1.PreviewSizeProvider, { children: jsx_runtime_1.jsx(ModalsProvider_1.ModalsProvider, { children: jsx_runtime_1.jsx(MediaVolumeProvider_1.MediaVolumeProvider, { children: jsx_runtime_1.jsx(player_1.PlayerInternals.PlayerEmitterProvider, { currentPlaybackRate: null, children: jsx_runtime_1.jsx(sidebar_1.SidebarContextProvider, { children: jsx_runtime_1.jsx(folders_1.FolderContextProvider, { children: jsx_runtime_1.jsx(highest_z_index_1.HighestZIndexProvider, { children: jsx_runtime_1.jsx(SetTimelineInOutProvider_1.SetTimelineInOutProvider, { children: jsx_runtime_1.jsx(ExpandedTracksProvider_1.ExpandedTracksProvider, { children: children }) }) }) }) }) }) }) }) }) }) }) }) }) })
|
|
26
27
|
] }) }) }) }));
|
|
27
28
|
};
|
|
28
29
|
exports.EditorContexts = EditorContexts;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
type ExpandedTracksContextValue = {
|
|
3
|
+
readonly expandedTracks: Record<string, boolean>;
|
|
4
|
+
readonly toggleTrack: (id: string) => void;
|
|
5
|
+
};
|
|
6
|
+
export declare const ExpandedTracksContext: React.Context<ExpandedTracksContextValue>;
|
|
7
|
+
export declare const ExpandedTracksProvider: React.FC<{
|
|
8
|
+
readonly children: React.ReactNode;
|
|
9
|
+
}>;
|
|
10
|
+
export {};
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ExpandedTracksProvider = exports.ExpandedTracksContext = void 0;
|
|
4
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
+
const react_1 = require("react");
|
|
6
|
+
exports.ExpandedTracksContext = (0, react_1.createContext)({
|
|
7
|
+
expandedTracks: {},
|
|
8
|
+
toggleTrack: () => {
|
|
9
|
+
throw new Error('ExpandedTracksContext not initialized');
|
|
10
|
+
},
|
|
11
|
+
});
|
|
12
|
+
const ExpandedTracksProvider = ({ children }) => {
|
|
13
|
+
const [expandedTracks, setExpandedTracks] = (0, react_1.useState)({});
|
|
14
|
+
const toggleTrack = (0, react_1.useCallback)((id) => {
|
|
15
|
+
setExpandedTracks((prev) => ({
|
|
16
|
+
...prev,
|
|
17
|
+
[id]: !prev[id],
|
|
18
|
+
}));
|
|
19
|
+
}, []);
|
|
20
|
+
const value = (0, react_1.useMemo)(() => ({
|
|
21
|
+
expandedTracks,
|
|
22
|
+
toggleTrack,
|
|
23
|
+
}), [expandedTracks, toggleTrack]);
|
|
24
|
+
return (jsx_runtime_1.jsx(exports.ExpandedTracksContext.Provider, { value: value, children: children }));
|
|
25
|
+
};
|
|
26
|
+
exports.ExpandedTracksProvider = ExpandedTracksProvider;
|
|
@@ -6,6 +6,7 @@ const react_1 = require("react");
|
|
|
6
6
|
const remotion_1 = require("remotion");
|
|
7
7
|
const colors_1 = require("../../helpers/colors");
|
|
8
8
|
const timeline_layout_1 = require("../../helpers/timeline-layout");
|
|
9
|
+
const ExpandedTracksProvider_1 = require("../ExpandedTracksProvider");
|
|
9
10
|
const TimelineLayerEye_1 = require("./TimelineLayerEye");
|
|
10
11
|
const TimelineStack_1 = require("./TimelineStack");
|
|
11
12
|
const SPACING = 5;
|
|
@@ -13,8 +14,43 @@ const space = {
|
|
|
13
14
|
width: SPACING,
|
|
14
15
|
flexShrink: 0,
|
|
15
16
|
};
|
|
17
|
+
const arrowButton = {
|
|
18
|
+
background: 'none',
|
|
19
|
+
border: 'none',
|
|
20
|
+
color: 'white',
|
|
21
|
+
cursor: 'pointer',
|
|
22
|
+
padding: 0,
|
|
23
|
+
display: 'flex',
|
|
24
|
+
alignItems: 'center',
|
|
25
|
+
justifyContent: 'center',
|
|
26
|
+
width: 12,
|
|
27
|
+
height: 12,
|
|
28
|
+
flexShrink: 0,
|
|
29
|
+
fontSize: 8,
|
|
30
|
+
marginRight: 4,
|
|
31
|
+
userSelect: 'none',
|
|
32
|
+
outline: 'none',
|
|
33
|
+
lineHeight: 1,
|
|
34
|
+
};
|
|
35
|
+
const expandedSection = {
|
|
36
|
+
height: timeline_layout_1.TIMELINE_TRACK_EXPANDED_HEIGHT,
|
|
37
|
+
color: 'white',
|
|
38
|
+
fontFamily: 'Arial, Helvetica, sans-serif',
|
|
39
|
+
fontSize: 12,
|
|
40
|
+
display: 'flex',
|
|
41
|
+
alignItems: 'center',
|
|
42
|
+
paddingLeft: 28,
|
|
43
|
+
borderBottom: `1px solid ${colors_1.TIMELINE_TRACK_SEPARATOR}`,
|
|
44
|
+
};
|
|
16
45
|
const TimelineListItem = ({ nestedDepth, sequence, isCompact }) => {
|
|
46
|
+
var _a;
|
|
47
|
+
const visualModeEnabled = Boolean(process.env.EXPERIMENTAL_VISUAL_MODE_ENABLED);
|
|
17
48
|
const { hidden, setHidden } = (0, react_1.useContext)(remotion_1.Internals.SequenceVisibilityToggleContext);
|
|
49
|
+
const { expandedTracks, toggleTrack } = (0, react_1.useContext)(ExpandedTracksProvider_1.ExpandedTracksContext);
|
|
50
|
+
const isExpanded = (_a = expandedTracks[sequence.id]) !== null && _a !== void 0 ? _a : false;
|
|
51
|
+
const onToggleExpand = (0, react_1.useCallback)(() => {
|
|
52
|
+
toggleTrack(sequence.id);
|
|
53
|
+
}, [sequence.id, toggleTrack]);
|
|
18
54
|
const padder = (0, react_1.useMemo)(() => {
|
|
19
55
|
return {
|
|
20
56
|
width: Number(SPACING * 1.5) * nestedDepth,
|
|
@@ -48,8 +84,15 @@ const TimelineListItem = ({ nestedDepth, sequence, isCompact }) => {
|
|
|
48
84
|
borderBottom: `1px solid ${colors_1.TIMELINE_TRACK_SEPARATOR}`,
|
|
49
85
|
};
|
|
50
86
|
}, [sequence.type]);
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
87
|
+
const arrowStyle = (0, react_1.useMemo)(() => {
|
|
88
|
+
return {
|
|
89
|
+
...arrowButton,
|
|
90
|
+
transform: isExpanded ? 'rotate(90deg)' : 'rotate(0deg)',
|
|
91
|
+
};
|
|
92
|
+
}, [isExpanded]);
|
|
93
|
+
return (jsx_runtime_1.jsxs(jsx_runtime_1.Fragment, { children: [
|
|
94
|
+
jsx_runtime_1.jsxs("div", { style: outer, children: [
|
|
95
|
+
jsx_runtime_1.jsx(TimelineLayerEye_1.TimelineLayerEye, { type: sequence.type === 'audio' ? 'speaker' : 'eye', hidden: isItemHidden, onInvoked: onToggleVisibility }), jsx_runtime_1.jsx("div", { style: padder }), sequence.parent && nestedDepth > 0 ? jsx_runtime_1.jsx("div", { style: space }) : null, visualModeEnabled ? (jsx_runtime_1.jsx("button", { type: "button", style: arrowStyle, onClick: onToggleExpand, "aria-expanded": isExpanded, "aria-label": `${isExpanded ? 'Collapse' : 'Expand'} track`, children: jsx_runtime_1.jsx("svg", { width: "12", height: "12", viewBox: "0 0 8 8", style: { display: 'block' }, children: jsx_runtime_1.jsx("path", { d: "M2 1L6 4L2 7Z", fill: "white" }) }) })) : null, jsx_runtime_1.jsx(TimelineStack_1.TimelineStack, { sequence: sequence, isCompact: isCompact })
|
|
96
|
+
] }), visualModeEnabled && isExpanded ? (jsx_runtime_1.jsx("div", { style: expandedSection, children: "Expanded track details" })) : null] }));
|
|
54
97
|
};
|
|
55
98
|
exports.TimelineListItem = TimelineListItem;
|
|
@@ -158,7 +158,7 @@ const TimelineStack = ({ isCompact, sequence }) => {
|
|
|
158
158
|
whiteSpace: 'nowrap',
|
|
159
159
|
textOverflow: 'ellipsis',
|
|
160
160
|
overflow: 'hidden',
|
|
161
|
-
lineHeight: 1,
|
|
161
|
+
lineHeight: 1.2,
|
|
162
162
|
color: opening && isCompact ? colors_1.VERY_LIGHT_TEXT : colors_1.LIGHT_COLOR,
|
|
163
163
|
userSelect: 'none',
|
|
164
164
|
WebkitUserSelect: 'none',
|
|
@@ -4,6 +4,7 @@ exports.TimelineTracks = void 0;
|
|
|
4
4
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
5
|
const react_1 = require("react");
|
|
6
6
|
const timeline_layout_1 = require("../../helpers/timeline-layout");
|
|
7
|
+
const ExpandedTracksProvider_1 = require("../ExpandedTracksProvider");
|
|
7
8
|
const MaxTimelineTracks_1 = require("./MaxTimelineTracks");
|
|
8
9
|
const TimelineSequence_1 = require("./TimelineSequence");
|
|
9
10
|
const TimelineTimeIndicators_1 = require("./TimelineTimeIndicators");
|
|
@@ -16,7 +17,12 @@ const content = {
|
|
|
16
17
|
const timelineContent = {
|
|
17
18
|
minHeight: '100%',
|
|
18
19
|
};
|
|
20
|
+
const expandedPlaceholder = {
|
|
21
|
+
height: timeline_layout_1.TIMELINE_TRACK_EXPANDED_HEIGHT + timeline_layout_1.TIMELINE_ITEM_BORDER_BOTTOM,
|
|
22
|
+
};
|
|
19
23
|
const TimelineTracks = ({ timeline, hasBeenCut }) => {
|
|
24
|
+
const { expandedTracks } = (0, react_1.useContext)(ExpandedTracksProvider_1.ExpandedTracksContext);
|
|
25
|
+
const visualModeEnabled = Boolean(process.env.EXPERIMENTAL_VISUAL_MODE_ENABLED);
|
|
20
26
|
const timelineStyle = (0, react_1.useMemo)(() => {
|
|
21
27
|
return {
|
|
22
28
|
...timelineContent,
|
|
@@ -26,13 +32,16 @@ const TimelineTracks = ({ timeline, hasBeenCut }) => {
|
|
|
26
32
|
return (jsx_runtime_1.jsxs("div", { style: timelineStyle, children: [
|
|
27
33
|
jsx_runtime_1.jsxs("div", { style: content, children: [
|
|
28
34
|
jsx_runtime_1.jsx(TimelineTimeIndicators_1.TimelineTimePadding, {}), timeline.map((track) => {
|
|
35
|
+
var _a;
|
|
29
36
|
if ((0, is_collapsed_1.isTrackHidden)(track)) {
|
|
30
37
|
return null;
|
|
31
38
|
}
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
39
|
+
const isExpanded = (_a = expandedTracks[track.sequence.id]) !== null && _a !== void 0 ? _a : false;
|
|
40
|
+
return (jsx_runtime_1.jsxs("div", { children: [
|
|
41
|
+
jsx_runtime_1.jsx("div", { style: {
|
|
42
|
+
height: (0, timeline_layout_1.getTimelineLayerHeight)(track.sequence.type === 'video' ? 'video' : 'other'),
|
|
43
|
+
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: expandedPlaceholder })) : null] }, track.sequence.id));
|
|
36
45
|
})] }), hasBeenCut ? jsx_runtime_1.jsx(MaxTimelineTracks_1.MaxTimelineTracksReached, {}) : null] }));
|
|
37
46
|
};
|
|
38
47
|
exports.TimelineTracks = TimelineTracks;
|