@linker-design-plus/timeline-track 2.0.21 → 2.0.22
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/panel/ClipConfigPanel.d.ts +15 -1
- package/dist/components/panel/ClipConfigPanelRenderer.d.ts +5 -3
- package/dist/components/track/Track.d.ts +1 -1
- package/dist/core/controllers/timelineClipConfigController.d.ts +4 -0
- package/dist/core/facade/timelineManager.d.ts +2 -0
- package/dist/core/layout/timelineManagerDom.d.ts +1 -1
- package/dist/index.cjs.js +168 -170
- package/dist/index.es.js +3211 -3095
- package/package.json +1 -1
|
@@ -13,6 +13,17 @@ export interface ClipConfigPanelTheme {
|
|
|
13
13
|
buttonActiveBorder: string;
|
|
14
14
|
buttonActiveText: string;
|
|
15
15
|
}
|
|
16
|
+
export type ClipConfigPanelGroupKind = 'video' | 'audio' | 'text' | 'mixed' | 'empty';
|
|
17
|
+
export interface ClipConfigPanelSelectionState {
|
|
18
|
+
primaryClip: Clip | null;
|
|
19
|
+
selectedClips: Clip[];
|
|
20
|
+
selectionCount: number;
|
|
21
|
+
groupKind: ClipConfigPanelGroupKind;
|
|
22
|
+
supportsVoiceBatch: boolean;
|
|
23
|
+
supportsTextContentBatch: boolean;
|
|
24
|
+
supportsVisualBatch: boolean;
|
|
25
|
+
supportsVolumeBatch: boolean;
|
|
26
|
+
}
|
|
16
27
|
export declare const defaultDarkTheme: ClipConfigPanelTheme;
|
|
17
28
|
export interface ClipConfigPanelConfig {
|
|
18
29
|
container: HTMLElement;
|
|
@@ -75,6 +86,7 @@ export declare class ClipConfigPanel {
|
|
|
75
86
|
private readonly onGenerateVoice?;
|
|
76
87
|
private readonly voiceCatalog;
|
|
77
88
|
private currentClip;
|
|
89
|
+
private selectionState;
|
|
78
90
|
private activeTab;
|
|
79
91
|
private readonly iconCache;
|
|
80
92
|
private pendingPreferredTab;
|
|
@@ -91,13 +103,15 @@ export declare class ClipConfigPanel {
|
|
|
91
103
|
private previewingVoiceId;
|
|
92
104
|
constructor(config: ClipConfigPanelConfig);
|
|
93
105
|
setClip(clip: Clip | null): void;
|
|
106
|
+
setSelectionState(selectionState: ClipConfigPanelSelectionState): void;
|
|
94
107
|
setPreferredTab(tab: 'voice' | null): void;
|
|
95
108
|
setVoiceGenerationBusy(isBusy: boolean): void;
|
|
96
109
|
destroy(): void;
|
|
97
110
|
private render;
|
|
98
111
|
private getAvailableTabs;
|
|
112
|
+
private getEmptyStateMessage;
|
|
99
113
|
private resetVoiceState;
|
|
100
|
-
private
|
|
114
|
+
private syncVoiceStateForSelection;
|
|
101
115
|
private syncActiveTab;
|
|
102
116
|
private supportsVoicePanel;
|
|
103
117
|
private ensureVoiceFilters;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { type TemplateResult } from 'lit';
|
|
2
2
|
import { type Clip, type VoiceOption } from '../../core/models';
|
|
3
3
|
import { LitDomRenderer } from '../../core/renderers/domRenderer';
|
|
4
|
-
import type { ClipConfigPanelTheme } from './ClipConfigPanel';
|
|
4
|
+
import type { ClipConfigPanelSelectionState, ClipConfigPanelTheme } from './ClipConfigPanel';
|
|
5
5
|
export type ClipConfigPanelTabKey = 'visual' | 'audio' | 'text' | 'voice';
|
|
6
6
|
export interface ClipConfigPanelCallbacks {
|
|
7
7
|
onTabChange: (tab: ClipConfigPanelTabKey) => void;
|
|
@@ -18,9 +18,12 @@ export interface ClipConfigPanelCallbacks {
|
|
|
18
18
|
}
|
|
19
19
|
export interface ClipConfigPanelViewModel {
|
|
20
20
|
clip: Clip | null;
|
|
21
|
+
selectionState: ClipConfigPanelSelectionState;
|
|
21
22
|
activeTab: ClipConfigPanelTabKey;
|
|
23
|
+
availableTabs: ClipConfigPanelTabKey[];
|
|
22
24
|
theme: ClipConfigPanelTheme;
|
|
23
|
-
|
|
25
|
+
emptyStateMessage: string | null;
|
|
26
|
+
isTextContentEditable: boolean;
|
|
24
27
|
loadingIconSvg: string;
|
|
25
28
|
selectedIconSvg: string;
|
|
26
29
|
textDraftContent: string;
|
|
@@ -107,7 +110,6 @@ export declare class ClipConfigPanelRenderer extends LitDomRenderer<ClipConfigPa
|
|
|
107
110
|
private renderLabeledNumberInput;
|
|
108
111
|
private getContainerStyle;
|
|
109
112
|
private getSliderStyle;
|
|
110
|
-
private getAvailableTabs;
|
|
111
113
|
private supportsVoicePanel;
|
|
112
114
|
private getTransform;
|
|
113
115
|
private calculatePresetPosition;
|
|
@@ -133,7 +133,7 @@ export declare class Track {
|
|
|
133
133
|
private buildPreviewClip;
|
|
134
134
|
private constrainResizePreviewToTrackBounds;
|
|
135
135
|
private getResizeLeftBoundaryStart;
|
|
136
|
-
private
|
|
136
|
+
private computeResizeRightPushFollowers;
|
|
137
137
|
private buildResizeLeftPreviewClip;
|
|
138
138
|
private buildResizeRightPreviewClip;
|
|
139
139
|
private applyClipSnap;
|
|
@@ -3,6 +3,7 @@ export interface TimelineClipConfigControllerConfig {
|
|
|
3
3
|
container: HTMLElement;
|
|
4
4
|
theme: Theme;
|
|
5
5
|
getPrimarySelectedClip: () => Clip | null;
|
|
6
|
+
getSelectedClips: () => Clip[];
|
|
6
7
|
voiceCatalog: VoiceOption[];
|
|
7
8
|
updateClip: (clipId: string, updates: Partial<Clip>) => void;
|
|
8
9
|
onGenerateVoice?: (clip: Clip, voice: VoiceOption, followTextUpdates: boolean) => Promise<void>;
|
|
@@ -10,6 +11,7 @@ export interface TimelineClipConfigControllerConfig {
|
|
|
10
11
|
export declare class TimelineClipConfigController {
|
|
11
12
|
private panel;
|
|
12
13
|
private config;
|
|
14
|
+
private currentSelectionState;
|
|
13
15
|
private isInternalUpdate;
|
|
14
16
|
init(config: TimelineClipConfigControllerConfig): void;
|
|
15
17
|
update(): void;
|
|
@@ -17,5 +19,7 @@ export declare class TimelineClipConfigController {
|
|
|
17
19
|
destroy(): void;
|
|
18
20
|
setPreferredTab(tab: 'voice' | null): void;
|
|
19
21
|
setVoiceGenerationBusy(isBusy: boolean): void;
|
|
22
|
+
private buildSelectionState;
|
|
23
|
+
private resolveUpdateTargets;
|
|
20
24
|
private convertTheme;
|
|
21
25
|
}
|
|
@@ -81,6 +81,7 @@ export declare class TimelineManager {
|
|
|
81
81
|
private lastSteadyPlaybackPreviewSyncAt;
|
|
82
82
|
private previewSyncInteractionMode;
|
|
83
83
|
private readonly resourceCacheManager;
|
|
84
|
+
private voiceLinkedTextRegenerationTimer;
|
|
84
85
|
constructor(config?: Partial<TimelineConfig>);
|
|
85
86
|
private createPlaybackAttemptId;
|
|
86
87
|
private refreshPlaybackAttempt;
|
|
@@ -356,6 +357,7 @@ export declare class TimelineManager {
|
|
|
356
357
|
private relocateClipIfNeeded;
|
|
357
358
|
private regenerateVoiceLinkedAudioClips;
|
|
358
359
|
private getSelectedTextClipsForVoiceGeneration;
|
|
360
|
+
private getSelectedTtsAudioClipsForVoiceGeneration;
|
|
359
361
|
private handleVoiceGenerateAction;
|
|
360
362
|
private primeOrLoadClipThumbnails;
|
|
361
363
|
private markClipThumbnailLoadCompleted;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { Theme } from '../models/types';
|
|
2
2
|
import { type TimelineManagerLayoutElements } from './TimelineManagerLayoutRenderer';
|
|
3
|
-
export declare const TIMELINE_MANAGER_LEFT_PANEL_WIDTH =
|
|
3
|
+
export declare const TIMELINE_MANAGER_LEFT_PANEL_WIDTH = 80;
|
|
4
4
|
export declare const TIMELINE_MANAGER_SCROLLBAR_SIZE = 8;
|
|
5
5
|
export type { TimelineManagerLayoutElements };
|
|
6
6
|
export interface CreateTimelineManagerLayoutOptions {
|