@vocalstack/player 0.1.0-alpha.0 → 0.1.0-alpha.2

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,31 +1,46 @@
1
1
  import { type ReactNode } from 'react';
2
2
  import { type ErrorLike } from '../data/transcript';
3
- import { type PlayerSource, type TokenSource } from '../data/context';
3
+ import { type PlayerSource as LoadedSource, type TokenSource } from '../data/context';
4
4
  import { type EndCardOptions } from './EndCard';
5
5
  export interface PlayerSettings {
6
6
  lang?: string | null;
7
- labels?: 'on' | 'off' | null;
8
- words?: 'on' | 'off' | null;
9
- cc?: boolean;
7
+ subtitles?: boolean;
8
+ speakerLabels?: boolean;
9
+ wordHighlight?: boolean;
10
10
  translateAudio?: boolean;
11
- clonedVoices?: boolean;
11
+ voices?: 'cloned' | 'synthetic';
12
12
  removeBackground?: boolean;
13
- startAt?: number | null;
13
+ }
14
+ export interface PlayerControls {
15
+ language?: boolean;
16
+ subtitles?: boolean;
17
+ audio?: boolean;
18
+ export?: boolean;
19
+ share?: boolean;
20
+ fullscreen?: boolean;
21
+ settings?: boolean;
14
22
  }
15
23
  export interface VocalStackPlayerProps {
16
- id: string;
24
+ id?: string;
25
+ src?: string;
17
26
  token?: TokenSource | null;
18
27
  baseUrl?: string | null;
19
28
  mode?: 'video' | 'transcript';
20
29
  layout?: 'embed' | 'page';
21
30
  dark?: boolean;
22
31
  desk?: boolean;
32
+ settings?: PlayerSettings;
23
33
  initial?: PlayerSettings;
34
+ onSettingsChange?: (s: Required<PlayerSettings>) => void;
35
+ controls?: PlayerControls;
36
+ autoplay?: boolean;
37
+ startAt?: number | null;
24
38
  syncUrl?: boolean;
25
39
  endCard?: EndCardOptions | false;
40
+ appUrl?: string;
26
41
  settingsExtra?: ReactNode;
27
42
  shareUrl?: (t: number | null) => string;
28
- onSource?: (s: PlayerSource) => void;
43
+ onSource?: (s: LoadedSource) => void;
29
44
  onProgress?: (pct: number | null) => void;
30
45
  onError?: (e: ErrorLike) => void;
31
46
  className?: string;
package/dist/ui/core.d.ts CHANGED
@@ -91,18 +91,31 @@ export declare const PUB_SIDE: {
91
91
  title: string;
92
92
  note: string;
93
93
  };
94
+ export interface VoiceSheetCtx {
95
+ people: CastMember[];
96
+ gvList: AvailableVoice[];
97
+ autoOf: (key: number) => AvailableVoice | null;
98
+ savedFor: (sp: CastMember) => AvailableVoice | null;
99
+ }
100
+ export interface NoCloneNote {
101
+ busy?: boolean;
102
+ title: string;
103
+ sub: string;
104
+ tip?: string;
105
+ action?: () => void;
106
+ }
94
107
  export interface VoiceSheetHooks {
95
108
  cloneOn?: boolean;
109
+ pendingClones?: boolean;
96
110
  titleNode?: React.ReactNode;
111
+ badge?: (ctx: VoiceSheetCtx) => number;
97
112
  onAddVoice?: (v: AvailableVoice) => void;
98
113
  onPickVoice?: (v: AvailableVoice) => boolean | void;
99
- noCloneFor?: (sp: CastMember, auto: AvailableVoice | null) => {
100
- busy?: boolean;
101
- title: string;
102
- sub: string;
103
- tip?: string;
104
- action?: () => void;
105
- } | null;
114
+ onSelectSpeaker?: (key: number) => void;
115
+ noCloneFor?: (sp: CastMember, auto: AvailableVoice | null, ctx: VoiceSheetCtx) => NoCloneNote | null;
116
+ castNoClone?: (sp: CastMember, ctx: VoiceSheetCtx) => boolean;
117
+ castShort?: (sp: CastMember, ctx: VoiceSheetCtx) => boolean;
118
+ castBuilding?: (sp: CastMember, ctx: VoiceSheetCtx) => boolean;
106
119
  }
107
120
  export declare function useTxVoice({ recordingId, model, rows, lenS, ended, cred, langs, srcLang, canTranslate, pickedLang, setPickedLang, side, hearOriginal, timed, stockVoices, stickyPicker, pickerBusy, voiceSheet }: {
108
121
  voiceSheet?: VoiceSheetHooks;
@@ -156,12 +169,18 @@ export declare function useTxVoice({ recordingId, model, rows, lenS, ended, cred
156
169
  openPicker: () => void;
157
170
  original: boolean;
158
171
  reloadVoices: () => void;
172
+ voicesVer: number;
159
173
  people: CastMember[];
160
174
  gvList: AvailableVoice[];
161
175
  autoOf: (key: number) => AvailableVoice | null;
162
176
  savedFor: (sp: CastMember) => AvailableVoice | null;
163
177
  closeVoices: () => void;
164
178
  setSheet: import("react").Dispatch<import("react").SetStateAction<boolean>>;
179
+ selectedSpeaker: CastMember | null;
180
+ armVoice: (v: import("../data/voicePreview").PreviewableVoice) => void;
181
+ resetPreview: () => void;
182
+ armedId: string | null;
183
+ resetCast: () => void;
165
184
  readLang: string | null;
166
185
  readVoiceKey: string;
167
186
  readVoiceName: string;
package/dist/ui/full.d.ts CHANGED
@@ -29,6 +29,9 @@ export type PlayerTransport = {
29
29
  onPlay?: () => void;
30
30
  busy?: boolean;
31
31
  };
32
+ export declare function PanelSeek({ pos }: {
33
+ pos: PlayerPos;
34
+ }): import("react").JSX.Element;
32
35
  export declare function MiniPlayer({ pos, transport, chip, voices, onShare, onFull, copied }: {
33
36
  pos: PlayerPos;
34
37
  transport: PlayerTransport;
@@ -38,7 +41,8 @@ export declare function MiniPlayer({ pos, transport, chip, voices, onShare, onFu
38
41
  onFull: () => void;
39
42
  copied: React.ReactNode;
40
43
  }): import("react").JSX.Element;
41
- export declare function FullVideo({ page, picture, title, desk, pos, sub, wait, pct, mute, cc, ad, chip, transport, picker, sheet, voices, voicesBtn, sheetOpen, onShare, onSettings, paused, copied, onTouch, onClose }: {
44
+ export declare function FullVideo({ noFull, page, picture, title, desk, pos, sub, wait, pct, mute, cc, ad, chip, transport, picker, sheet, voices, voicesBtn, sheetOpen, onShare, onSettings, paused, copied, onTouch, onClose }: {
45
+ noFull?: boolean;
42
46
  page?: boolean;
43
47
  onTouch: () => void;
44
48
  onSettings?: () => void;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vocalstack/player",
3
- "version": "0.1.0-alpha.0",
3
+ "version": "0.1.0-alpha.2",
4
4
  "description": "VocalStack video and transcript player for React: synced transcript, subtitles, spoken translations and background sound, over the public VocalStack API.",
5
5
  "license": "MIT",
6
6
  "type": "module",