@remotion/studio 4.0.469 → 4.0.471
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/Studio.js +1 -1
- package/dist/api/save-render-output.js +3 -12
- package/dist/components/AudioWaveform.js +19 -2
- package/dist/components/ContextMenu.d.ts +7 -2
- package/dist/components/ContextMenu.js +53 -9
- package/dist/components/EditorContent.js +5 -4
- package/dist/components/Menu/MenuItem.d.ts +1 -1
- package/dist/components/MenuBuildIndicator.js +0 -1
- package/dist/components/NewComposition/InputDragger.js +1 -0
- package/dist/components/Preview.js +6 -2
- package/dist/components/SelectedOutlineOverlay.d.ts +49 -0
- package/dist/components/SelectedOutlineOverlay.js +710 -0
- package/dist/components/Timeline/Timeline.js +102 -13
- package/dist/components/Timeline/TimelineDeleteKeybindings.d.ts +2 -0
- package/dist/components/Timeline/TimelineDeleteKeybindings.js +101 -0
- package/dist/components/Timeline/TimelineDragHandler.js +20 -244
- package/dist/components/Timeline/{TimelineEffectGroupRow.d.ts → TimelineEffectItem.d.ts} +1 -1
- package/dist/components/Timeline/TimelineEffectItem.js +323 -0
- package/dist/components/Timeline/{TimelineEffectFieldRow.d.ts → TimelineEffectPropItem.d.ts} +2 -1
- package/dist/components/Timeline/{TimelineEffectFieldRow.js → TimelineEffectPropItem.js} +97 -8
- package/dist/components/Timeline/TimelineExpandArrowButton.js +5 -1
- package/dist/components/Timeline/TimelineExpandedKeyframeRow.js +37 -5
- package/dist/components/Timeline/TimelineExpandedRow.d.ts +1 -0
- package/dist/components/Timeline/TimelineExpandedRow.js +9 -7
- package/dist/components/Timeline/TimelineExpandedSection.d.ts +1 -0
- package/dist/components/Timeline/TimelineExpandedSection.js +2 -2
- package/dist/components/Timeline/TimelineInOutDragHandler.d.ts +2 -0
- package/dist/components/Timeline/TimelineInOutDragHandler.js +324 -0
- package/dist/components/Timeline/TimelineInOutPointer.js +3 -1
- package/dist/components/Timeline/TimelineInOutPointerHandle.d.ts +1 -0
- package/dist/components/Timeline/TimelineInOutPointerHandle.js +5 -4
- package/dist/components/Timeline/TimelineKeyframeControls.d.ts +17 -0
- package/dist/components/Timeline/TimelineKeyframeControls.js +222 -0
- package/dist/components/Timeline/TimelineKeyframeDiamond.js +7 -6
- package/dist/components/Timeline/TimelineKeyframedValue.d.ts +8 -0
- package/dist/components/Timeline/TimelineKeyframedValue.js +36 -0
- package/dist/components/Timeline/TimelineList.js +3 -15
- package/dist/components/Timeline/TimelineRowChrome.d.ts +6 -1
- package/dist/components/Timeline/TimelineRowChrome.js +25 -7
- package/dist/components/Timeline/TimelineSelection.d.ts +53 -9
- package/dist/components/Timeline/TimelineSelection.js +305 -48
- package/dist/components/Timeline/TimelineSequence.d.ts +2 -0
- package/dist/components/Timeline/TimelineSequence.js +18 -6
- package/dist/components/Timeline/TimelineSequenceFrame.js +1 -0
- package/dist/components/Timeline/{TimelineListItem.d.ts → TimelineSequenceItem.d.ts} +2 -1
- package/dist/components/Timeline/{TimelineListItem.js → TimelineSequenceItem.js} +140 -34
- package/dist/components/Timeline/{TimelineFieldRow.d.ts → TimelineSequencePropItem.d.ts} +2 -1
- package/dist/components/Timeline/{TimelineFieldRow.js → TimelineSequencePropItem.js} +81 -5
- package/dist/components/Timeline/TimelineTimeIndicators.js +0 -1
- package/dist/components/Timeline/TimelineTrack.js +3 -1
- package/dist/components/Timeline/TimelineTranslateField.js +14 -22
- package/dist/components/Timeline/call-add-keyframe.d.ts +23 -0
- package/dist/components/Timeline/call-add-keyframe.js +54 -0
- package/dist/components/Timeline/call-delete-keyframe.d.ts +37 -0
- package/dist/components/Timeline/call-delete-keyframe.js +122 -0
- package/dist/components/Timeline/delete-selected-keyframe.d.ts +21 -0
- package/dist/components/Timeline/delete-selected-keyframe.js +92 -0
- package/dist/components/Timeline/delete-selected-timeline-item.d.ts +17 -0
- package/dist/components/Timeline/delete-selected-timeline-item.js +178 -0
- package/dist/components/Timeline/duplicate-selected-timeline-item.d.ts +13 -0
- package/dist/components/Timeline/duplicate-selected-timeline-item.js +66 -0
- package/dist/components/Timeline/find-track-for-node-path-info.d.ts +7 -0
- package/dist/components/Timeline/find-track-for-node-path-info.js +13 -0
- package/dist/components/Timeline/get-keyframe-navigation.d.ts +9 -0
- package/dist/components/Timeline/get-keyframe-navigation.js +26 -0
- package/dist/components/Timeline/parse-keyframe-field-from-node-path.d.ts +8 -0
- package/dist/components/Timeline/parse-keyframe-field-from-node-path.js +26 -0
- package/dist/components/Timeline/reset-selected-timeline-props.d.ts +38 -0
- package/dist/components/Timeline/reset-selected-timeline-props.js +143 -0
- package/dist/components/Timeline/save-sequence-prop.d.ts +14 -2
- package/dist/components/Timeline/save-sequence-prop.js +42 -7
- package/dist/components/Timeline/sequence-props-subscription-store.d.ts +3 -2
- package/dist/components/Timeline/sequence-props-subscription-store.js +2 -1
- package/dist/components/Timeline/timeline-row-layout.d.ts +1 -0
- package/dist/components/Timeline/timeline-row-layout.js +2 -1
- package/dist/components/Timeline/timeline-scroll-logic.js +3 -3
- package/dist/components/Timeline/timeline-translate-utils.d.ts +2 -0
- package/dist/components/Timeline/timeline-translate-utils.js +20 -0
- package/dist/components/Timeline/use-expanded-track-keyframe-rows.js +10 -3
- package/dist/components/Timeline/use-sequence-props-subscription.js +2 -1
- package/dist/components/composition-menu-items.js +32 -1
- package/dist/error-overlay/remotion-overlay/OpenInEditor.js +0 -1
- package/dist/esm/{chunk-1mp51e0w.js → chunk-z0z9d4r0.js} +10422 -5958
- package/dist/esm/internals.mjs +10422 -5958
- package/dist/esm/previewEntry.mjs +10419 -5953
- package/dist/esm/renderEntry.mjs +3 -1
- package/dist/helpers/format-file-location.d.ts +9 -0
- package/dist/helpers/format-file-location.js +27 -0
- package/dist/helpers/get-box-quads-polyfill-internals.d.ts +82 -0
- package/dist/helpers/get-box-quads-polyfill-internals.js +2395 -0
- package/dist/helpers/get-box-quads-ponyfill.d.ts +10 -0
- package/dist/helpers/get-box-quads-ponyfill.js +23 -0
- package/dist/helpers/get-left-of-timeline-slider.js +1 -1
- package/dist/helpers/get-timeline-sequence-layout.js +10 -11
- package/dist/helpers/open-in-editor.d.ts +20 -2
- package/dist/helpers/open-in-editor.js +53 -30
- package/dist/helpers/use-menu-structure.js +8 -17
- package/dist/renderEntry.js +2 -2
- package/dist/state/z-index.js +5 -2
- package/package.json +10 -10
- package/dist/components/Timeline/TimelineEffectGroupRow.js +0 -153
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TimelineKeyframedValue = void 0;
|
|
4
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
+
const react_1 = require("react");
|
|
6
|
+
const remotion_1 = require("remotion");
|
|
7
|
+
const TimelineSchemaField_1 = require("./TimelineSchemaField");
|
|
8
|
+
const wrapperStyle = {
|
|
9
|
+
opacity: 0.5,
|
|
10
|
+
pointerEvents: 'none',
|
|
11
|
+
};
|
|
12
|
+
const noop = () => undefined;
|
|
13
|
+
const noopAsync = () => Promise.resolve();
|
|
14
|
+
const TimelineKeyframedValue = ({ field, propStatus, keyframeDisplayOffset }) => {
|
|
15
|
+
const timelinePosition = remotion_1.Internals.Timeline.useTimelinePosition();
|
|
16
|
+
const jsxFrame = timelinePosition - keyframeDisplayOffset;
|
|
17
|
+
const computedValue = (0, react_1.useMemo)(() => {
|
|
18
|
+
const raw = remotion_1.Internals.interpolateKeyframedStatus({
|
|
19
|
+
frame: jsxFrame,
|
|
20
|
+
status: propStatus,
|
|
21
|
+
});
|
|
22
|
+
if (typeof raw === 'number') {
|
|
23
|
+
return Math.round(raw * 100) / 100;
|
|
24
|
+
}
|
|
25
|
+
return raw;
|
|
26
|
+
}, [jsxFrame, propStatus]);
|
|
27
|
+
const fakeStatus = (0, react_1.useMemo)(() => ({
|
|
28
|
+
canUpdate: true,
|
|
29
|
+
codeValue: computedValue,
|
|
30
|
+
}), [computedValue]);
|
|
31
|
+
if (computedValue === null) {
|
|
32
|
+
return null;
|
|
33
|
+
}
|
|
34
|
+
return (jsx_runtime_1.jsx("div", { style: wrapperStyle, children: jsx_runtime_1.jsx(TimelineSchemaField_1.TimelineFieldValue, { field: field, propStatus: fakeStatus, effectiveValue: computedValue, onSave: noopAsync, onDragValueChange: noop, onDragEnd: noop }) }));
|
|
35
|
+
};
|
|
36
|
+
exports.TimelineKeyframedValue = TimelineKeyframedValue;
|
|
@@ -2,29 +2,17 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.TimelineList = void 0;
|
|
4
4
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
-
const react_1 = require("react");
|
|
6
5
|
const colors_1 = require("../../helpers/colors");
|
|
7
|
-
const
|
|
8
|
-
const TimelineSelection_1 = require("./TimelineSelection");
|
|
6
|
+
const TimelineSequenceItem_1 = require("./TimelineSequenceItem");
|
|
9
7
|
const TimelineTimeIndicators_1 = require("./TimelineTimeIndicators");
|
|
10
8
|
const container = {
|
|
11
9
|
flex: 1,
|
|
12
10
|
background: colors_1.BACKGROUND,
|
|
13
11
|
};
|
|
14
12
|
const TimelineList = ({ timeline }) => {
|
|
15
|
-
|
|
16
|
-
// Selection-triggering click handlers in children call e.stopPropagation(),
|
|
17
|
-
// so any pointerdown that bubbles up here is by definition on empty space
|
|
18
|
-
// and should clear the current selection.
|
|
19
|
-
const onPointerDown = (0, react_1.useCallback)((e) => {
|
|
20
|
-
if (e.button !== 0) {
|
|
21
|
-
return;
|
|
22
|
-
}
|
|
23
|
-
clearSelection();
|
|
24
|
-
}, [clearSelection]);
|
|
25
|
-
return (jsx_runtime_1.jsxs("div", { style: container, onPointerDown: onPointerDown, children: [
|
|
13
|
+
return (jsx_runtime_1.jsxs("div", { style: container, children: [
|
|
26
14
|
jsx_runtime_1.jsx(TimelineTimeIndicators_1.TimelineTimePadding, {}), timeline.map((track) => {
|
|
27
|
-
return (jsx_runtime_1.jsx("div", { children: jsx_runtime_1.jsx(
|
|
15
|
+
return (jsx_runtime_1.jsx("div", { children: jsx_runtime_1.jsx(TimelineSequenceItem_1.TimelineSequenceItem, { nestedDepth: track.depth, sequence: track.sequence, nodePathInfo: track.nodePathInfo, keyframeDisplayOffset: track.keyframeDisplayOffset }, track.sequence.id) }, track.sequence.id));
|
|
28
16
|
})] }));
|
|
29
17
|
};
|
|
30
18
|
exports.TimelineList = TimelineList;
|
|
@@ -1,15 +1,20 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
+
import type { TimelineSelectionInteraction } from './TimelineSelection';
|
|
2
3
|
export declare const TimelineRowChrome: React.FC<{
|
|
3
4
|
readonly depth: number;
|
|
4
5
|
readonly eye: React.ReactNode;
|
|
6
|
+
readonly keyframeControls?: React.ReactNode;
|
|
5
7
|
readonly arrow: React.ReactNode;
|
|
6
8
|
readonly children: React.ReactNode;
|
|
7
9
|
readonly style: React.CSSProperties;
|
|
8
10
|
readonly selected: boolean;
|
|
9
11
|
readonly selectable: boolean;
|
|
10
|
-
readonly onSelect: () => void;
|
|
12
|
+
readonly onSelect: (interaction?: TimelineSelectionInteraction) => void;
|
|
11
13
|
readonly showSelectedBackground: boolean;
|
|
12
14
|
readonly containsSelection: boolean;
|
|
13
15
|
readonly outerHeight: number | null;
|
|
16
|
+
readonly onDragLeave?: (e: React.DragEvent<HTMLDivElement>) => void;
|
|
17
|
+
readonly onDragOver?: (e: React.DragEvent<HTMLDivElement>) => void;
|
|
18
|
+
readonly onDrop?: (e: React.DragEvent<HTMLDivElement>) => void;
|
|
14
19
|
readonly onDoubleClick?: (e: React.MouseEvent<HTMLDivElement>) => void;
|
|
15
20
|
}>;
|
|
@@ -11,19 +11,36 @@ const rowBase = {
|
|
|
11
11
|
alignItems: 'stretch',
|
|
12
12
|
display: 'flex',
|
|
13
13
|
};
|
|
14
|
-
const
|
|
14
|
+
const leftChromeStyle = {
|
|
15
15
|
alignItems: 'center',
|
|
16
16
|
alignSelf: 'stretch',
|
|
17
17
|
display: 'flex',
|
|
18
18
|
flexShrink: 0,
|
|
19
|
-
paddingLeft: timeline_row_layout_1.TIMELINE_ROW_BASE_PADDING,
|
|
20
19
|
};
|
|
21
|
-
const
|
|
20
|
+
const keyframeControlsColumnStyle = {
|
|
21
|
+
alignItems: 'center',
|
|
22
|
+
display: 'flex',
|
|
23
|
+
flexShrink: 0,
|
|
24
|
+
justifyContent: 'flex-start',
|
|
25
|
+
marginRight: -(timeline_row_layout_1.TIMELINE_KEYFRAME_CONTROLS_WIDTH - timeline_row_layout_1.TIMELINE_ROW_BASE_PADDING),
|
|
26
|
+
width: timeline_row_layout_1.TIMELINE_KEYFRAME_CONTROLS_WIDTH,
|
|
27
|
+
};
|
|
28
|
+
const TimelineRowChrome = ({ depth, eye, keyframeControls, arrow, children, style, selected, selectable, onSelect, showSelectedBackground, containsSelection, outerHeight, onDragLeave, onDragOver, onDrop, onDoubleClick, }) => {
|
|
22
29
|
const indentWidth = (0, timeline_row_layout_1.getTimelineRowIndentWidth)(depth);
|
|
30
|
+
const chromeColumnStyle = (0, react_1.useMemo)(() => ({
|
|
31
|
+
alignItems: 'center',
|
|
32
|
+
alignSelf: 'stretch',
|
|
33
|
+
display: 'flex',
|
|
34
|
+
flexShrink: 0,
|
|
35
|
+
paddingLeft: keyframeControls ? 0 : timeline_row_layout_1.TIMELINE_ROW_BASE_PADDING,
|
|
36
|
+
}), [keyframeControls]);
|
|
23
37
|
const onPointerDown = (0, react_1.useCallback)((e) => {
|
|
24
38
|
if (e.button === 0) {
|
|
25
39
|
e.stopPropagation();
|
|
26
|
-
onSelect(
|
|
40
|
+
onSelect({
|
|
41
|
+
shiftKey: e.shiftKey,
|
|
42
|
+
toggleKey: e.metaKey || e.ctrlKey,
|
|
43
|
+
});
|
|
27
44
|
}
|
|
28
45
|
}, [onSelect]);
|
|
29
46
|
const onContextMenu = (0, react_1.useCallback)((e) => {
|
|
@@ -52,10 +69,11 @@ const TimelineRowChrome = ({ depth, eye, arrow, children, style, selected, selec
|
|
|
52
69
|
};
|
|
53
70
|
}, [outerHeight, highlightBackground]);
|
|
54
71
|
const chrome = (jsx_runtime_1.jsxs(jsx_runtime_1.Fragment, { children: [
|
|
55
|
-
jsx_runtime_1.jsxs("div", { style: chromeColumnStyle, children: [eye, indentWidth > 0 ? jsx_runtime_1.jsx(Padder_1.Padder, { depth: depth }) : null, arrow] })
|
|
72
|
+
jsx_runtime_1.jsxs("div", { style: leftChromeStyle, children: [keyframeControls ? (jsx_runtime_1.jsx("div", { style: keyframeControlsColumnStyle, children: keyframeControls })) : null, jsx_runtime_1.jsxs("div", { style: chromeColumnStyle, children: [eye, indentWidth > 0 ? jsx_runtime_1.jsx(Padder_1.Padder, { depth: depth }) : null, arrow] })
|
|
73
|
+
] }), children] }));
|
|
56
74
|
if (outerStyle) {
|
|
57
|
-
return (jsx_runtime_1.jsx("div", { style: outerStyle, onPointerDown: selectable ? onPointerDown : undefined, onContextMenu: selectable ? onContextMenu : undefined, onDoubleClick: onDoubleClick, children: jsx_runtime_1.jsx("div", { style: innerRowStyle, children: chrome }) }));
|
|
75
|
+
return (jsx_runtime_1.jsx("div", { style: outerStyle, onDragLeave: onDragLeave, onDragOver: onDragOver, onDrop: onDrop, onPointerDown: selectable ? onPointerDown : undefined, onContextMenu: selectable ? onContextMenu : undefined, onDoubleClick: onDoubleClick, children: jsx_runtime_1.jsx("div", { style: innerRowStyle, children: chrome }) }));
|
|
58
76
|
}
|
|
59
|
-
return (jsx_runtime_1.jsx("div", { onPointerDown: selectable ? onPointerDown : undefined, onContextMenu: selectable ? onContextMenu : undefined, onDoubleClick: onDoubleClick, style: innerRowStyle, children: chrome }));
|
|
77
|
+
return (jsx_runtime_1.jsx("div", { onDragLeave: onDragLeave, onDragOver: onDragOver, onDrop: onDrop, onPointerDown: selectable ? onPointerDown : undefined, onContextMenu: selectable ? onContextMenu : undefined, onDoubleClick: onDoubleClick, style: innerRowStyle, children: chrome }));
|
|
60
78
|
};
|
|
61
79
|
exports.TimelineRowChrome = TimelineRowChrome;
|
|
@@ -1,39 +1,83 @@
|
|
|
1
1
|
import React, { type CSSProperties } from 'react';
|
|
2
|
-
import type { SequenceNodePathInfo } from '../../helpers/get-timeline-sequence-sort-key';
|
|
2
|
+
import type { SequenceNodePathInfo, TrackWithHash } from '../../helpers/get-timeline-sequence-sort-key';
|
|
3
3
|
export declare const TIMELINE_SELECTED_BACKGROUND = "#3B3F42";
|
|
4
4
|
export declare const TIMELINE_SELECTED_LABEL_BACKGROUND = "#B0B0B0";
|
|
5
5
|
export declare const TIMELINE_SELECTED_LABEL_TEXT = "black";
|
|
6
6
|
export declare const TIMELINE_SELECTED_LABEL_HORIZONTAL_PADDING = 2;
|
|
7
7
|
export declare const getTimelineSelectedLabelStyle: (selected: boolean, subcategory: boolean) => CSSProperties;
|
|
8
8
|
export declare const getTimelineColor: (selected: boolean, subcategory: boolean) => "black" | "rgba(255, 255, 255, 0.8)";
|
|
9
|
-
export declare const
|
|
9
|
+
export declare const getTimelineSelectedTrackHighlightStyle: (timelineWidth: number) => CSSProperties;
|
|
10
10
|
export declare const SELECTION_ENABLED = false;
|
|
11
|
-
export
|
|
12
|
-
|
|
11
|
+
export declare const TIMELINE_TOP_DRAG = false;
|
|
12
|
+
export declare const ENABLE_OUTLINES = false;
|
|
13
|
+
type TimelineSelectionBase = {
|
|
13
14
|
readonly nodePathInfo: SequenceNodePathInfo;
|
|
14
|
-
}
|
|
15
|
+
};
|
|
16
|
+
export type TimelineSelection = (TimelineSelectionBase & {
|
|
17
|
+
readonly type: 'sequence';
|
|
18
|
+
}) | (TimelineSelectionBase & {
|
|
19
|
+
readonly type: 'sequence-prop';
|
|
20
|
+
readonly key: string;
|
|
21
|
+
}) | (TimelineSelectionBase & {
|
|
22
|
+
readonly type: 'sequence-all-effects';
|
|
23
|
+
}) | (TimelineSelectionBase & {
|
|
24
|
+
readonly type: 'sequence-effect';
|
|
25
|
+
readonly i: number;
|
|
26
|
+
}) | (TimelineSelectionBase & {
|
|
27
|
+
readonly type: 'sequence-effect-prop';
|
|
28
|
+
readonly i: number;
|
|
29
|
+
readonly key: string;
|
|
30
|
+
}) | (TimelineSelectionBase & {
|
|
15
31
|
readonly type: 'keyframe';
|
|
16
|
-
readonly nodePathInfo: SequenceNodePathInfo;
|
|
17
32
|
readonly frame: number;
|
|
33
|
+
});
|
|
34
|
+
export type TimelineSelectionInteraction = {
|
|
35
|
+
readonly shiftKey: boolean;
|
|
36
|
+
readonly toggleKey: boolean;
|
|
18
37
|
};
|
|
38
|
+
export declare const isTimelineSelectionModifierEvent: ({ shiftKey, metaKey, ctrlKey, }: {
|
|
39
|
+
readonly shiftKey: boolean;
|
|
40
|
+
readonly metaKey: boolean;
|
|
41
|
+
readonly ctrlKey: boolean;
|
|
42
|
+
}) => boolean;
|
|
43
|
+
export type TimelineSelectionState = {
|
|
44
|
+
readonly selectedItems: readonly TimelineSelection[];
|
|
45
|
+
readonly anchor: TimelineSelection | null;
|
|
46
|
+
};
|
|
47
|
+
export declare const getTimelineSelectionAfterInteraction: ({ currentState, clickedItem, interaction, allSelectableItems, }: {
|
|
48
|
+
readonly currentState: TimelineSelectionState;
|
|
49
|
+
readonly clickedItem: TimelineSelection;
|
|
50
|
+
readonly interaction: TimelineSelectionInteraction;
|
|
51
|
+
readonly allSelectableItems: readonly TimelineSelection[];
|
|
52
|
+
}) => TimelineSelectionState;
|
|
19
53
|
type TimelineSelectionContextValue = {
|
|
20
54
|
readonly canSelect: boolean;
|
|
55
|
+
readonly selectedItems: readonly TimelineSelection[];
|
|
21
56
|
readonly isSelected: (item: TimelineSelection) => boolean;
|
|
22
|
-
readonly selectItem: (item: TimelineSelection) => void;
|
|
57
|
+
readonly selectItem: (item: TimelineSelection, interaction?: TimelineSelectionInteraction) => void;
|
|
58
|
+
readonly selectItems: (items: readonly TimelineSelection[]) => void;
|
|
59
|
+
readonly registerSelectableItem: (item: TimelineSelection) => () => void;
|
|
23
60
|
readonly containsSelection: (nodePathInfo: SequenceNodePathInfo) => boolean;
|
|
24
61
|
readonly clearSelection: () => void;
|
|
25
62
|
};
|
|
63
|
+
export declare const getTimelineSelectionFromNodePathInfo: (nodePathInfo: SequenceNodePathInfo | null) => TimelineSelection | null;
|
|
64
|
+
export declare const getSelectableTimelineSequenceSelections: (tracks: readonly Pick<TrackWithHash, "nodePathInfo">[]) => TimelineSelection[];
|
|
65
|
+
export declare const getTimelineSequenceSelectionKey: (nodePathInfo: SequenceNodePathInfo) => string;
|
|
66
|
+
export declare const TimelineSelectAllKeybindings: React.FC<{
|
|
67
|
+
readonly timeline: readonly TrackWithHash[];
|
|
68
|
+
}>;
|
|
26
69
|
export declare const TimelineSelectionProvider: React.FC<{
|
|
27
70
|
readonly children: React.ReactNode;
|
|
28
71
|
}>;
|
|
29
72
|
export declare const useTimelineSelection: () => TimelineSelectionContextValue;
|
|
73
|
+
export declare const useCurrentTimelineSelectionStateAsRef: () => React.RefObject<TimelineSelectionContextValue>;
|
|
30
74
|
export declare const useTimelineRowSelection: (nodePathInfo: SequenceNodePathInfo | null) => {
|
|
31
|
-
onSelect: () => void;
|
|
75
|
+
onSelect: (interaction?: TimelineSelectionInteraction | undefined) => void;
|
|
32
76
|
selectable: boolean;
|
|
33
77
|
selected: boolean;
|
|
34
78
|
};
|
|
35
79
|
export declare const useTimelineKeyframeSelection: (nodePathInfo: SequenceNodePathInfo, frame: number) => {
|
|
36
|
-
onSelect: () => void;
|
|
80
|
+
onSelect: (interaction?: TimelineSelectionInteraction | undefined) => void;
|
|
37
81
|
selectable: boolean;
|
|
38
82
|
selected: boolean;
|
|
39
83
|
};
|