@vocalstack/player 0.1.0-alpha.3 → 0.1.0-alpha.31
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 +13 -1
- package/dist/core/voiceFollow.d.ts +1 -0
- package/dist/data/connect.d.ts +5 -3
- package/dist/data/title.d.ts +8 -0
- package/dist/ds/Controls.d.ts +2 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +3507 -3051
- package/dist/index.js.map +1 -1
- package/dist/style.css +1 -1
- package/dist/ui/FileFollow.d.ts +7 -0
- package/dist/ui/IdleSettings.d.ts +17 -0
- package/dist/ui/Providers.d.ts +1 -0
- package/dist/ui/SourceGate.d.ts +36 -5
- package/dist/ui/VocalStackPlayer.d.ts +22 -1
- package/dist/ui/core.d.ts +4 -1
- package/dist/ui/full.d.ts +2 -1
- package/dist/ui/shared.d.ts +2 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -21,7 +21,7 @@ export function Video() {
|
|
|
21
21
|
|
|
22
22
|
| Prop | Default | |
|
|
23
23
|
|---|---|---|
|
|
24
|
-
| `id` | | A share code. Or, with `token`, a transcription id. |
|
|
24
|
+
| `id` | | A share code. Or, with `token`, a transcription id. With neither `id` nor `src`, the player opens on a box where the visitor pastes any video link and transcribes it in their own VocalStack account. |
|
|
25
25
|
| `src` | | A video or audio link (YouTube, Vimeo, an mp3 or any media URL) instead of `id`. If the visitor has already transcribed it with VocalStack, it plays. If not, they are asked whether to start transcribing it. With `token`, the link is looked up in that account instead. |
|
|
26
26
|
| `token` | | A browser token (or a function returning one) for a private transcription. Never pass an API key to a browser. |
|
|
27
27
|
| `mode` | `'video'` | `'video'` for the full player, `'transcript'` for the reading view with a player. |
|
|
@@ -35,6 +35,10 @@ export function Video() {
|
|
|
35
35
|
| `endCard` | on | At the end of a video, offers to transcribe another link in the visitor's own VocalStack account. Pass `false` to turn it off. |
|
|
36
36
|
| `baseUrl` | `https://api.vocalstack.com` | |
|
|
37
37
|
| `onSource`, `onProgress`, `onError` | | Called with the loaded transcription, the transcription progress (0-100, `null` when done), and errors. |
|
|
38
|
+
| `onPlayback` | | Called about ten times a second while anything changes, with `{ t, dur, playing, idx, seekN, lang }`: the time in seconds, the length, whether it plays, the index of the current line, a counter that grows on every seek, and the language shown. |
|
|
39
|
+
| `ref` | | A `PlayerHandle`: `seek(t)`, `play()`, `pause()`, `toggle()`. |
|
|
40
|
+
| `compact` | `false` | Small controls at any width, and no title, summary or share card when paused. For a player inside a side column or card. |
|
|
41
|
+
| `poster` | | An image shown behind the player before a video is chosen or before the visitor connects. |
|
|
38
42
|
|
|
39
43
|
### Settings
|
|
40
44
|
|
|
@@ -61,6 +65,14 @@ export function Video() {
|
|
|
61
65
|
<VocalStackPlayer src="https://www.youtube.com/watch?v=QWCLiPOgeuw" />
|
|
62
66
|
```
|
|
63
67
|
|
|
68
|
+
Follow and drive it from your page:
|
|
69
|
+
|
|
70
|
+
```tsx
|
|
71
|
+
const player = useRef<PlayerHandle>(null);
|
|
72
|
+
<VocalStackPlayer ref={player} id="r4m4srrrhi24" onPlayback={(s) => setAt(s.t)} />
|
|
73
|
+
<button onClick={() => player.current?.seek(42)}>Jump to 0:42</button>
|
|
74
|
+
```
|
|
75
|
+
|
|
64
76
|
Theme it by overriding the CSS variables on `.vsp`, for example `--vsp-radius`, `--brand` and `--vs-font-sans`.
|
|
65
77
|
|
|
66
78
|
## License
|
|
@@ -27,6 +27,7 @@ export declare const FOLLOW_DRIFT_S = 0.5;
|
|
|
27
27
|
export declare const FOLLOW_AHEAD = 3;
|
|
28
28
|
export declare function lineAt(lines: readonly FollowLine[], t: number): number;
|
|
29
29
|
export declare function followTarget(lines: readonly FollowLine[], clips: ReadonlyMap<number, readonly FollowClip[]>, t: number): FollowTarget;
|
|
30
|
+
export declare function mayRunOn(lines: readonly FollowLine[], t: number, playingSid: number | null): boolean;
|
|
30
31
|
export declare function upcomingSrcs(lines: readonly FollowLine[], clips: ReadonlyMap<number, readonly FollowClip[]>, t: number, n?: number): string[];
|
|
31
32
|
export interface FollowState {
|
|
32
33
|
missing: number | null;
|
package/dist/data/connect.d.ts
CHANGED
|
@@ -5,11 +5,13 @@ export interface Started {
|
|
|
5
5
|
token: string;
|
|
6
6
|
expiresAt: string | null;
|
|
7
7
|
}
|
|
8
|
-
export type PopupStatus = 'signing-in' | 'consent' | 'checking' | 'starting';
|
|
8
|
+
export type PopupStatus = 'signing-in' | 'consent' | 'looking' | 'confirm' | 'checking' | 'starting';
|
|
9
9
|
export declare function openPopup(appUrl: string | undefined, ask: {
|
|
10
10
|
url?: string;
|
|
11
11
|
transcription?: string;
|
|
12
12
|
ask?: boolean;
|
|
13
|
-
|
|
13
|
+
connect?: boolean;
|
|
14
|
+
}, onStatus?: (s: PopupStatus) => void): Promise<Started | 'connected' | null>;
|
|
14
15
|
export declare function startFromEmbed(appUrl: string | undefined, url: string, onStatus?: (s: PopupStatus) => void): Promise<Started | null>;
|
|
15
|
-
export declare function
|
|
16
|
+
export declare function wasConnected(appUrl: string | undefined): boolean;
|
|
17
|
+
export declare function rememberConnected(appUrl: string | undefined): void;
|
package/dist/ds/Controls.d.ts
CHANGED
|
@@ -67,7 +67,7 @@ export declare function IconButton({ children, onClick, label, size, variant, bo
|
|
|
67
67
|
active?: boolean;
|
|
68
68
|
title?: string;
|
|
69
69
|
}): import("react").JSX.Element;
|
|
70
|
-
export declare function LanguageChip({ flag, code, label, onClick, variant, block, bordered, size, style }: {
|
|
70
|
+
export declare function LanguageChip({ flag, code, label, onClick, variant, block, bordered, size, style, flagOnly }: {
|
|
71
71
|
flag: ReactNode;
|
|
72
72
|
code: string;
|
|
73
73
|
label?: string;
|
|
@@ -77,6 +77,7 @@ export declare function LanguageChip({ flag, code, label, onClick, variant, bloc
|
|
|
77
77
|
bordered?: boolean;
|
|
78
78
|
size?: 'sm';
|
|
79
79
|
style?: React.CSSProperties;
|
|
80
|
+
flagOnly?: boolean;
|
|
80
81
|
}): import("react").JSX.Element;
|
|
81
82
|
export declare function CopyButton({ value, label, onCopied }: {
|
|
82
83
|
value: string;
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import './styles.css';
|
|
2
|
-
export { VocalStackPlayer, type VocalStackPlayerProps, type PlayerSettings, type PlayerControls } from './ui/VocalStackPlayer';
|
|
2
|
+
export { VocalStackPlayer, type VocalStackPlayerProps, type PlayerSettings, type PlayerControls, type PlayerHandle, type PlaybackState } from './ui/VocalStackPlayer';
|
|
3
3
|
export type { EndCardOptions } from './ui/EndCard';
|
|
4
4
|
export { PlayerApiProvider, usePlayerApi, useApi, type PlayerApi, type PlayerApiProviderProps, type ApiOptions, type PlayerSource, type TokenSource, type Listen } from './data/context';
|
|
5
5
|
export type { ErrorLike } from './data/errors';
|