@munsonlabs/video-player 0.2.5 → 0.2.7

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.
Files changed (52) hide show
  1. package/README.md +6 -694
  2. package/dist/chunks/ads-B8PU62NC.mjs +1 -0
  3. package/dist/chunks/brightcove-CPKzsnF0.mjs +1 -0
  4. package/dist/chunks/constants-Buc1xZvW.mjs +1 -0
  5. package/dist/chunks/dailymotion-DHCBjqaZ.mjs +1 -0
  6. package/dist/chunks/embedShared-R2ohosIo.mjs +1 -0
  7. package/dist/chunks/jwplayer-D8oOCmi4.mjs +1 -0
  8. package/dist/chunks/sourceHelpers-BNIZ7kmT.mjs +1 -0
  9. package/dist/chunks/vimeo-DC3q3YWJ.mjs +1 -0
  10. package/dist/chunks/youtube-e1csmnHD.mjs +1 -0
  11. package/dist/elements/chunks/ads-B8PU62NC.mjs +1 -0
  12. package/dist/elements/chunks/brightcove-CPKzsnF0.mjs +1 -0
  13. package/dist/elements/chunks/constants-Buc1xZvW.mjs +1 -0
  14. package/dist/elements/chunks/dailymotion-DHCBjqaZ.mjs +1 -0
  15. package/dist/elements/chunks/embedShared-R2ohosIo.mjs +1 -0
  16. package/dist/elements/chunks/font-KFHs3p_4-KFHs3p_4.mjs +1 -0
  17. package/dist/elements/chunks/jwplayer-D8oOCmi4.mjs +1 -0
  18. package/dist/elements/chunks/sourceHelpers-BNIZ7kmT.mjs +1 -0
  19. package/dist/elements/chunks/svg-BLBI83Ed-BjsPx0LR.mjs +1 -0
  20. package/dist/elements/chunks/vimeo-DC3q3YWJ.mjs +1 -0
  21. package/dist/elements/chunks/youtube-e1csmnHD.mjs +1 -0
  22. package/dist/elements/controls.css +1 -1
  23. package/dist/elements/controls.d.mts +23 -17
  24. package/dist/elements/controls.mjs +1 -1
  25. package/dist/elements/core.css +1 -1
  26. package/dist/elements/core.d.mts +32 -23
  27. package/dist/elements/core.mjs +1 -1
  28. package/dist/elements/index.d.mts +53 -40
  29. package/dist/elements/index.mjs +1 -1
  30. package/dist/elements/style.css +1 -1
  31. package/dist/index.d.mts +138 -88
  32. package/dist/index.mjs +1 -1
  33. package/dist/style.css +1 -1
  34. package/package.json +7 -6
  35. package/dist/chunks/ads-Dph3guS9.mjs +0 -1
  36. package/dist/chunks/brightcove-DiJF_74z.mjs +0 -1
  37. package/dist/chunks/constants-35ZnLsDv.mjs +0 -1
  38. package/dist/chunks/dailymotion-DTooszoV.mjs +0 -1
  39. package/dist/chunks/embedShared-CbArTtuR.mjs +0 -1
  40. package/dist/chunks/jwplayer-Dhq65VxK.mjs +0 -1
  41. package/dist/chunks/sourceHelpers-B0tH-grj.mjs +0 -1
  42. package/dist/chunks/vimeo-D0GAjId0.mjs +0 -1
  43. package/dist/chunks/youtube-B8AT2F-4.mjs +0 -1
  44. package/dist/elements/chunks/ads-Dph3guS9.mjs +0 -1
  45. package/dist/elements/chunks/brightcove-DiJF_74z.mjs +0 -1
  46. package/dist/elements/chunks/constants-35ZnLsDv.mjs +0 -1
  47. package/dist/elements/chunks/dailymotion-DTooszoV.mjs +0 -1
  48. package/dist/elements/chunks/embedShared-CbArTtuR.mjs +0 -1
  49. package/dist/elements/chunks/jwplayer-Dhq65VxK.mjs +0 -1
  50. package/dist/elements/chunks/sourceHelpers-B0tH-grj.mjs +0 -1
  51. package/dist/elements/chunks/vimeo-D0GAjId0.mjs +0 -1
  52. package/dist/elements/chunks/youtube-B8AT2F-4.mjs +0 -1
package/dist/index.d.mts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { ComputedRef, Plugin, Ref, UnwrapNestedRefs } from "vue";
2
- //#region src/composables/player/emitter.d.ts
2
+ //#region src/adapters/emitter.d.ts
3
3
  type PlaybackListener = (...args: unknown[]) => void;
4
4
  //#endregion
5
5
  //#region src/types/playback.d.ts
@@ -18,6 +18,23 @@ interface QualityLevelInfo {
18
18
  bitrate: number;
19
19
  label: string;
20
20
  }
21
+ interface AdapterCaptions {
22
+ tracks(): CaptionTrackInfo[];
23
+ active(): number | null;
24
+ select(index: number | null): void;
25
+ }
26
+ interface AdapterQuality {
27
+ levels(): QualityLevelInfo[];
28
+ current(): number | null;
29
+ isAuto(): boolean;
30
+ select(index: number | null): void;
31
+ }
32
+ interface AdapterPip {
33
+ isSupported(): boolean;
34
+ isActive(): boolean;
35
+ toggle(): void;
36
+ }
37
+ type PlaybackEvent = 'play' | 'pause' | 'playing' | 'ended' | 'error' | 'timeupdate' | 'durationchange' | 'progress' | 'volumechange' | 'ratechange' | 'seeked' | 'waiting' | 'canplay' | 'qualitychange' | 'captionschange' | 'pipchange' | 'adstart' | 'adend' | 'nativefullscreenenter' | 'nativefullscreenexit' | 'fullscreen-pending' | 'fullscreen-pending-done';
21
38
  interface PlaybackAdapter {
22
39
  readonly el: HTMLElement;
23
40
  play(): Promise<void>;
@@ -34,24 +51,17 @@ interface PlaybackAdapter {
34
51
  setPlaybackRate(rate: number): void;
35
52
  bufferedEnd(): number;
36
53
  error(): MediaErrorLike | null;
37
- setSrc(src: string, type?: string): void;
54
+ load(src: string, type?: string): void;
55
+ retry(): void;
38
56
  supportsPlaybackRate(): boolean;
39
- supportsCaptions(): boolean;
40
- getCaptionTracks(): CaptionTrackInfo[];
41
- setCaptionTrack(index: number | null): void;
42
- getActiveCaptionTrack(): number | null;
43
- supportsQuality(): boolean;
44
- getQualityLevels(): QualityLevelInfo[];
45
- getCurrentQuality(): number | null;
46
- isAutoQuality(): boolean;
47
- setQuality(index: number | null): void;
48
- supportsPip(): boolean;
49
- isPipActive(): boolean;
50
- togglePip(): void;
57
+ captions?: AdapterCaptions;
58
+ quality?: AdapterQuality;
59
+ pip?: AdapterPip;
60
+ reveal?(videoEl: HTMLVideoElement): void;
51
61
  enterFullscreen(): void;
52
62
  exitFullscreen(): void;
53
- on(event: string, listener: PlaybackListener): void;
54
- off(event: string, listener: PlaybackListener): void;
63
+ on(event: PlaybackEvent, listener: PlaybackListener): void;
64
+ off(event: PlaybackEvent, listener: PlaybackListener): void;
55
65
  dispose(): void;
56
66
  }
57
67
  interface ResolvedSource {
@@ -83,7 +93,7 @@ type PlatformConfig = Pick<Matcher, 'key' | 'test'> & ({
83
93
  resolveSource?: SourceResolver;
84
94
  });
85
95
  //#endregion
86
- //#region src/composables/player/playerState.d.ts
96
+ //#region src/ui/player/playerState.d.ts
87
97
  declare function createPlayerState(props: PlayerProps): {
88
98
  isPlaying: import("vue").Ref<boolean, boolean>;
89
99
  hasEnded: import("vue").Ref<boolean, boolean>;
@@ -93,12 +103,12 @@ declare function createPlayerState(props: PlayerProps): {
93
103
  hasStarted: import("vue").Ref<boolean, boolean>;
94
104
  isError: import("vue").Ref<boolean, boolean>;
95
105
  errorMessage: import("vue").Ref<string, string>;
96
- current: import("vue").Ref<number, number>;
97
- total: import("vue").Ref<number, number>;
106
+ currentTime: import("vue").Ref<number, number>;
107
+ duration: import("vue").Ref<number, number>;
98
108
  buffered: import("vue").Ref<number, number>;
99
109
  progress: import("vue").ComputedRef<number>;
100
110
  bufferedDisplay: import("vue").ComputedRef<number>;
101
- vol: import("vue").Ref<number, number>;
111
+ currentVolume: import("vue").Ref<number, number>;
102
112
  isMuted: import("vue").Ref<boolean, boolean>;
103
113
  isAudible: import("vue").ComputedRef<boolean>;
104
114
  isLooping: import("vue").Ref<boolean, boolean>;
@@ -131,7 +141,7 @@ declare function createPlayerState(props: PlayerProps): {
131
141
  bitrate: number;
132
142
  label: string;
133
143
  }[]>;
134
- currentQualityIndex: import("vue").Ref<number | null, number | null>;
144
+ currentQualityHeight: import("vue").Ref<number | null, number | null>;
135
145
  isAutoQuality: import("vue").Ref<boolean, boolean>;
136
146
  supportsPip: import("vue").Ref<boolean, boolean>;
137
147
  isPipActive: import("vue").Ref<boolean, boolean>;
@@ -139,25 +149,27 @@ declare function createPlayerState(props: PlayerProps): {
139
149
  };
140
150
  type PlayerState = ReturnType<typeof createPlayerState>;
141
151
  //#endregion
142
- //#region src/composables/player/usePlayerControls.d.ts
143
- interface UsePlayerControlsReturn {
152
+ //#region src/ui/player/createPlayerControls.d.ts
153
+ interface PlayerControls {
144
154
  play: () => Promise<void>;
145
155
  pause: () => void;
146
156
  replay: () => Promise<void>;
147
157
  togglePlay: () => void;
148
- seek: (percent: number) => void;
149
- seekTo: (seconds: number) => void;
158
+ seek: (seconds: number) => void;
150
159
  toggleMute: () => void;
151
160
  setVolume: (vol: number) => void;
152
161
  toggleLoop: () => void;
153
162
  setPlaybackRate: (rate: number) => void;
154
163
  setCaptionTrack: (index: number | null) => void;
155
- setQuality: (index: number | null) => void;
164
+ setQuality: (height: number | null) => void;
165
+ applyQuality: (height: number | null, options?: {
166
+ remember?: boolean;
167
+ }) => void;
156
168
  togglePip: () => void;
157
169
  }
158
170
  //#endregion
159
- //#region src/composables/player/usePlayer.d.ts
160
- type UsePlayerReturn = PlayerState & UsePlayerControlsReturn & {
171
+ //#region src/ui/player/usePlayer.d.ts
172
+ type UsePlayerReturn = PlayerState & PlayerControls & {
161
173
  fire: (type: StateChangeType, extras?: Partial<StateChangeEvent>) => void;
162
174
  retry: () => void;
163
175
  isBuffering: Ref<boolean>;
@@ -167,7 +179,7 @@ type UsePlayerReturn = PlayerState & UsePlayerControlsReturn & {
167
179
  toggleFullscreen: () => void;
168
180
  };
169
181
  //#endregion
170
- //#region src/composables/overlay/useHud.d.ts
182
+ //#region src/ui/overlay/useHud.d.ts
171
183
  interface UseHudReturn {
172
184
  showHUD: Ref<boolean>;
173
185
  isOpen: Ref<boolean>;
@@ -182,7 +194,7 @@ interface UseHudReturn {
182
194
  suppressMouseLeave: (ms?: number) => void;
183
195
  }
184
196
  //#endregion
185
- //#region src/composables/player/playerContext.d.ts
197
+ //#region src/ui/player/playerContext.d.ts
186
198
  type PlayerContext = UnwrapNestedRefs<UsePlayerReturn>;
187
199
  type HudContext = UnwrapNestedRefs<UseHudReturn>;
188
200
  interface PlaylistContext {
@@ -195,9 +207,9 @@ interface PlaylistContext {
195
207
  toggleAutoAdvance: () => void;
196
208
  }
197
209
  //#endregion
198
- //#region src/composables/player/playerSurface.d.ts
199
- declare const PLAYER_METHOD_KEYS: readonly ["retry", "play", "pause", "replay", "togglePlay", "seek", "seekTo", "toggleMute", "setVolume", "toggleFullscreen", "toggleLoop", "toggleAdMute", "setPlaybackRate", "setCaptionTrack", "setQuality", "togglePip"];
200
- declare const PLAYER_STATE_KEYS: readonly ["isPlaying", "hasEnded", "isReady", "isLoaded", "isAdPlaying", "isAdPaused", "isAdMuted", "adRemainingTime", "isLive", "isBuffering", "current", "total", "vol", "isMuted", "isAudible", "isLooping", "currentPlaybackRate", "hasStarted", "isError", "errorMessage", "progress", "bufferedDisplay", "isFullscreen", "supportsPlaybackRate", "supportsCaptions", "captionTracks", "activeCaptionIndex", "supportsQuality", "qualityLevels", "currentQualityIndex", "isAutoQuality", "supportsPip", "isPipActive", "isNativeUi"];
210
+ //#region src/ui/player/playerSurface.d.ts
211
+ declare const PLAYER_METHOD_KEYS: readonly ["retry", "play", "pause", "replay", "togglePlay", "seek", "toggleMute", "setVolume", "toggleFullscreen", "toggleLoop", "toggleAdMute", "setPlaybackRate", "setCaptionTrack", "setQuality", "togglePip"];
212
+ declare const PLAYER_STATE_KEYS: readonly ["isPlaying", "hasEnded", "isReady", "isLoaded", "isAdPlaying", "isAdPaused", "isAdMuted", "adRemainingTime", "isLive", "isBuffering", "currentTime", "duration", "currentVolume", "isMuted", "isAudible", "isLooping", "currentPlaybackRate", "hasStarted", "isError", "errorMessage", "progress", "bufferedDisplay", "isFullscreen", "supportsPlaybackRate", "supportsCaptions", "captionTracks", "activeCaptionIndex", "supportsQuality", "qualityLevels", "currentQualityHeight", "isAutoQuality", "supportsPip", "isPipActive", "isNativeUi"];
201
213
  type PlayerMethodKey = (typeof PLAYER_METHOD_KEYS)[number];
202
214
  type PlayerStateKey = (typeof PLAYER_STATE_KEYS)[number];
203
215
  //#endregion
@@ -222,7 +234,7 @@ export interface StateChangeEvent {
222
234
  isMuted?: boolean;
223
235
  playbackRate?: number;
224
236
  captionIndex?: number | null;
225
- qualityIndex?: number | null;
237
+ qualityHeight?: number | null;
226
238
  isPipActive?: boolean;
227
239
  isLooping?: boolean;
228
240
  element?: HTMLElement | null;
@@ -259,10 +271,12 @@ export interface PlayerProps {
259
271
  adMacroParams?: Record<string, string>;
260
272
  headerBidding?: HeaderBiddingConfig;
261
273
  tracks?: CaptionTrackDef[];
274
+ captionLine?: number;
262
275
  autoplay?: boolean;
263
276
  muted?: boolean;
264
277
  volume?: number;
265
278
  playbackRate?: number;
279
+ quality?: number | null;
266
280
  nativeUi?: boolean;
267
281
  payload?: Record<string, unknown> | string;
268
282
  action?: PlayerAction | null;
@@ -293,8 +307,12 @@ export interface TranscriptCue {
293
307
  }
294
308
  export type PlayerHandle = Pick<UnwrapNestedRefs<UsePlayerReturn>, PlayerMethodKey | PlayerStateKey>;
295
309
  //#endregion
296
- //#region src/components/VideoPlayer.vue.d.ts
297
- declare const __VLS_export$17: import("vue").DefineComponent<PlayerProps, PlayerHandle, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
310
+ //#region src/ui/player/VideoPlayer.vue.d.ts
311
+ declare var __VLS_32: {};
312
+ type __VLS_Slots$15 = {} & {
313
+ default?: (props: typeof __VLS_32) => any;
314
+ };
315
+ declare const __VLS_base$15: import("vue").DefineComponent<PlayerProps, PlayerHandle, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
298
316
  "state-change": (event: StateChangeEvent) => any;
299
317
  }, string, import("vue").PublicProps, Readonly<PlayerProps> & Readonly<{
300
318
  "onState-change"?: ((event: StateChangeEvent) => any) | undefined;
@@ -304,8 +322,10 @@ declare const __VLS_export$17: import("vue").DefineComponent<PlayerProps, Player
304
322
  aspectRatio: string;
305
323
  adTagUrl: string;
306
324
  tracks: CaptionTrackDef[];
325
+ captionLine: number;
307
326
  autoplay: boolean;
308
327
  muted: boolean;
328
+ quality: number | null;
309
329
  nativeUi: boolean;
310
330
  payload: Record<string, unknown> | string;
311
331
  action: PlayerAction | null;
@@ -316,28 +336,37 @@ declare const __VLS_export$17: import("vue").DefineComponent<PlayerProps, Player
316
336
  loop: boolean;
317
337
  preload: PreloadMode;
318
338
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
339
+ declare const __VLS_export$17: __VLS_WithSlots$15<typeof __VLS_base$15, __VLS_Slots$15>;
319
340
  declare const _default$15: typeof __VLS_export$17;
341
+ type __VLS_WithSlots$15<T, S> = T & {
342
+ new (): {
343
+ $slots: S;
344
+ };
345
+ };
320
346
  //#endregion
321
- //#region src/components/VideoStage.vue.d.ts
347
+ //#region src/ui/stage/VideoStage.vue.d.ts
322
348
  type __VLS_Props$1 = {
323
349
  pin?: PinCorner | 'full-width';
324
350
  playlist?: VideoEntry[];
325
351
  };
326
352
  declare function playNext(fromGesture?: boolean): void;
327
353
  declare function playPrevious(fromGesture?: boolean): void;
328
- declare const __VLS_export$16: import("vue").DefineComponent<__VLS_Props$1, {
354
+ declare var __VLS_19: {};
355
+ type __VLS_Slots$14 = {} & {
356
+ default?: (props: typeof __VLS_19) => any;
357
+ };
358
+ declare const __VLS_base$14: import("vue").DefineComponent<__VLS_Props$1, {
329
359
  play: () => Promise<void>;
330
360
  pause: () => Promise<void>;
331
361
  replay: () => Promise<void>;
332
362
  togglePlay: () => Promise<void>;
333
- seek: (percent: number) => Promise<void>;
334
- seekTo: (seconds: number) => Promise<void>;
363
+ seek: (seconds: number) => Promise<void>;
335
364
  toggleMute: () => Promise<void>;
336
365
  setVolume: (vol: number) => Promise<void>;
337
366
  toggleLoop: () => Promise<void>;
338
367
  setPlaybackRate: (rate: number) => Promise<void>;
339
368
  setCaptionTrack: (index: number | null) => Promise<void>;
340
- setQuality: (index: number | null) => Promise<void>;
369
+ setQuality: (height: number | null) => Promise<void>;
341
370
  togglePip: () => Promise<void>;
342
371
  retry: () => Promise<void>;
343
372
  toggleAdMute: () => Promise<void>;
@@ -350,11 +379,11 @@ declare const __VLS_export$16: import("vue").DefineComponent<__VLS_Props$1, {
350
379
  hasStarted: import("vue").ComputedRef<boolean>;
351
380
  isError: import("vue").ComputedRef<boolean>;
352
381
  errorMessage: import("vue").ComputedRef<string>;
353
- current: import("vue").ComputedRef<number>;
354
- total: import("vue").ComputedRef<number>;
382
+ currentTime: import("vue").ComputedRef<number>;
383
+ duration: import("vue").ComputedRef<number>;
355
384
  progress: import("vue").ComputedRef<number>;
356
385
  bufferedDisplay: import("vue").ComputedRef<number>;
357
- vol: import("vue").ComputedRef<number>;
386
+ currentVolume: import("vue").ComputedRef<number>;
358
387
  isMuted: import("vue").ComputedRef<boolean>;
359
388
  isAudible: import("vue").ComputedRef<boolean>;
360
389
  isLooping: import("vue").ComputedRef<boolean>;
@@ -378,7 +407,7 @@ declare const __VLS_export$16: import("vue").DefineComponent<__VLS_Props$1, {
378
407
  bitrate: number;
379
408
  label: string;
380
409
  }[]>;
381
- currentQualityIndex: import("vue").ComputedRef<number | null>;
410
+ currentQualityHeight: import("vue").ComputedRef<number | null>;
382
411
  isAutoQuality: import("vue").ComputedRef<boolean>;
383
412
  supportsPip: import("vue").ComputedRef<boolean>;
384
413
  isPipActive: import("vue").ComputedRef<boolean>;
@@ -396,9 +425,15 @@ declare const __VLS_export$16: import("vue").DefineComponent<__VLS_Props$1, {
396
425
  }>, {
397
426
  pin: PinCorner | "full-width";
398
427
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
428
+ declare const __VLS_export$16: __VLS_WithSlots$14<typeof __VLS_base$14, __VLS_Slots$14>;
399
429
  declare const _default$16: typeof __VLS_export$16;
430
+ type __VLS_WithSlots$14<T, S> = T & {
431
+ new (): {
432
+ $slots: S;
433
+ };
434
+ };
400
435
  //#endregion
401
- //#region src/components/VideoPlaceholder.vue.d.ts
436
+ //#region src/ui/stage/VideoPlaceholder.vue.d.ts
402
437
  declare const __VLS_export$15: import("vue").DefineComponent<VideoEntry, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
403
438
  "enter-view": () => any;
404
439
  }, string, import("vue").PublicProps, Readonly<VideoEntry> & Readonly<{
@@ -417,7 +452,7 @@ declare const __VLS_export$15: import("vue").DefineComponent<VideoEntry, {}, {},
417
452
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
418
453
  declare const _default$14: typeof __VLS_export$15;
419
454
  //#endregion
420
- //#region src/composables/useForwardedPlayer.d.ts
455
+ //#region src/ui/player/useForwardedPlayer.d.ts
421
456
  type ForwardedPlayer = { [K in PlayerMethodKey]: (...args: Parameters<PlayerContext[K]>) => Promise<void>; } & { [K in PlayerStateKey]: ComputedRef<PlayerContext[K]>; };
422
457
  interface UseForwardedPlayerReturn {
423
458
  playerRef: Ref<PlayerContext | null>;
@@ -425,8 +460,12 @@ interface UseForwardedPlayerReturn {
425
460
  }
426
461
  export declare function useForwardedPlayer(guard?: (key: PlayerMethodKey) => boolean | Promise<boolean>): UseForwardedPlayerReturn;
427
462
  //#endregion
428
- //#region src/components/VideoCard.vue.d.ts
429
- declare const __VLS_export$14: import("vue").DefineComponent<VideoEntry, ForwardedPlayer, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
463
+ //#region src/ui/stage/VideoCard.vue.d.ts
464
+ declare var __VLS_26: {};
465
+ type __VLS_Slots$13 = {} & {
466
+ default?: (props: typeof __VLS_26) => any;
467
+ };
468
+ declare const __VLS_base$13: import("vue").DefineComponent<VideoEntry, ForwardedPlayer, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
430
469
  "state-change": (event: StateChangeEvent) => any;
431
470
  }, string, import("vue").PublicProps, Readonly<VideoEntry> & Readonly<{
432
471
  "onState-change"?: ((event: StateChangeEvent) => any) | undefined;
@@ -436,19 +475,25 @@ declare const __VLS_export$14: import("vue").DefineComponent<VideoEntry, Forward
436
475
  controls: boolean;
437
476
  lazy: boolean;
438
477
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
478
+ declare const __VLS_export$14: __VLS_WithSlots$13<typeof __VLS_base$13, __VLS_Slots$13>;
439
479
  declare const _default$13: typeof __VLS_export$14;
480
+ type __VLS_WithSlots$13<T, S> = T & {
481
+ new (): {
482
+ $slots: S;
483
+ };
484
+ };
440
485
  //#endregion
441
- //#region src/components/HideMarker.vue.d.ts
486
+ //#region src/ui/stage/HideMarker.vue.d.ts
442
487
  declare const __VLS_export$13: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
443
488
  declare const _default$3: typeof __VLS_export$13;
444
489
  //#endregion
445
- //#region src/composables/controls/useResolvedPlayer.d.ts
490
+ //#region src/ui/controls/useResolvedPlayer.d.ts
446
491
  interface ResolvedPlayerProps {
447
492
  player?: PlayerHandle | null;
448
493
  for?: string;
449
494
  }
450
495
  //#endregion
451
- //#region src/components/controls/Scrubber.vue.d.ts
496
+ //#region src/ui/controls/Scrubber.vue.d.ts
452
497
  declare var __VLS_1$11: {
453
498
  scrubbing: boolean;
454
499
  percent: number;
@@ -467,7 +512,7 @@ type __VLS_WithSlots$12<T, S> = T & {
467
512
  };
468
513
  };
469
514
  //#endregion
470
- //#region src/components/controls/PlayButton.vue.d.ts
515
+ //#region src/ui/controls/PlayButton.vue.d.ts
471
516
  declare var __VLS_1$10: {
472
517
  isPlaying: boolean;
473
518
  hasEnded: boolean;
@@ -485,7 +530,7 @@ type __VLS_WithSlots$11<T, S> = T & {
485
530
  };
486
531
  };
487
532
  //#endregion
488
- //#region src/components/controls/MuteButton.vue.d.ts
533
+ //#region src/ui/controls/MuteButton.vue.d.ts
489
534
  declare var __VLS_1$9: {
490
535
  isMuted: boolean;
491
536
  };
@@ -501,7 +546,7 @@ type __VLS_WithSlots$10<T, S> = T & {
501
546
  };
502
547
  };
503
548
  //#endregion
504
- //#region src/components/controls/FullscreenButton.vue.d.ts
549
+ //#region src/ui/controls/FullscreenButton.vue.d.ts
505
550
  declare var __VLS_1$8: {
506
551
  isFullscreen: boolean;
507
552
  };
@@ -517,8 +562,10 @@ type __VLS_WithSlots$9<T, S> = T & {
517
562
  };
518
563
  };
519
564
  //#endregion
520
- //#region src/components/controls/Buffering.vue.d.ts
521
- declare var __VLS_1$7: {};
565
+ //#region src/ui/controls/Buffering.vue.d.ts
566
+ declare var __VLS_1$7: {
567
+ isBuffering: boolean;
568
+ };
522
569
  type __VLS_Slots$8 = {} & {
523
570
  default?: (props: typeof __VLS_1$7) => any;
524
571
  };
@@ -531,7 +578,7 @@ type __VLS_WithSlots$8<T, S> = T & {
531
578
  };
532
579
  };
533
580
  //#endregion
534
- //#region src/components/controls/LoopButton.vue.d.ts
581
+ //#region src/ui/controls/LoopButton.vue.d.ts
535
582
  declare var __VLS_1$6: {
536
583
  isLooping: boolean;
537
584
  };
@@ -547,7 +594,7 @@ type __VLS_WithSlots$7<T, S> = T & {
547
594
  };
548
595
  };
549
596
  //#endregion
550
- //#region src/components/controls/PipButton.vue.d.ts
597
+ //#region src/ui/controls/PipButton.vue.d.ts
551
598
  declare var __VLS_1$5: {
552
599
  isPipActive: boolean;
553
600
  };
@@ -563,7 +610,7 @@ type __VLS_WithSlots$6<T, S> = T & {
563
610
  };
564
611
  };
565
612
  //#endregion
566
- //#region src/components/controls/CaptionsButton.vue.d.ts
613
+ //#region src/ui/controls/CaptionsButton.vue.d.ts
567
614
  declare var __VLS_1$4: {
568
615
  currentLabel: string;
569
616
  tracks: {
@@ -585,7 +632,7 @@ type __VLS_WithSlots$5<T, S> = T & {
585
632
  };
586
633
  };
587
634
  //#endregion
588
- //#region src/components/controls/QualityButton.vue.d.ts
635
+ //#region src/ui/controls/QualityButton.vue.d.ts
589
636
  declare var __VLS_1$3: {
590
637
  currentLabel: string;
591
638
  levels: {
@@ -594,7 +641,7 @@ declare var __VLS_1$3: {
594
641
  bitrate: number;
595
642
  label: string;
596
643
  }[];
597
- currentIndex: number | null;
644
+ currentHeight: number | null;
598
645
  isAuto: boolean;
599
646
  };
600
647
  type __VLS_Slots$4 = {} & {
@@ -609,7 +656,7 @@ type __VLS_WithSlots$4<T, S> = T & {
609
656
  };
610
657
  };
611
658
  //#endregion
612
- //#region src/components/controls/PlaybackRateButton.vue.d.ts
659
+ //#region src/ui/controls/PlaybackRateButton.vue.d.ts
613
660
  declare var __VLS_1$2: {
614
661
  currentLabel: string;
615
662
  rate: number;
@@ -627,7 +674,7 @@ type __VLS_WithSlots$3<T, S> = T & {
627
674
  };
628
675
  };
629
676
  //#endregion
630
- //#region src/components/controls/VolumeSlider.vue.d.ts
677
+ //#region src/ui/controls/VolumeSlider.vue.d.ts
631
678
  declare var __VLS_1$1: {
632
679
  percent: number;
633
680
  };
@@ -646,11 +693,11 @@ type __VLS_WithSlots$2<T, S> = T & {
646
693
  //#region src/utils/time.d.ts
647
694
  declare function fmtTime(s: number, round?: boolean): string;
648
695
  //#endregion
649
- //#region src/components/controls/TimeDisplay.vue.d.ts
696
+ //#region src/ui/controls/TimeDisplay.vue.d.ts
650
697
  declare var __VLS_1: {
651
698
  isLive: boolean;
652
- current: number;
653
- total: number;
699
+ currentTime: number;
700
+ duration: number;
654
701
  formatTime: typeof fmtTime;
655
702
  };
656
703
  type __VLS_Slots$1 = {} & {
@@ -665,9 +712,11 @@ type __VLS_WithSlots$1<T, S> = T & {
665
712
  };
666
713
  };
667
714
  //#endregion
668
- //#region src/components/controls/Transcript.vue.d.ts
715
+ //#region src/ui/controls/Transcript.vue.d.ts
669
716
  type __VLS_Props = ResolvedPlayerProps & {
670
717
  cues?: TranscriptCue[] | string;
718
+ speechPitch?: number;
719
+ speechRate?: number;
671
720
  };
672
721
  declare var __VLS_11: {
673
722
  cue: TranscriptCue;
@@ -694,42 +743,43 @@ export declare function resolvePlatform(url: string): {
694
743
  };
695
744
  export declare function registerPlatform(config: PlatformConfig): void;
696
745
  //#endregion
697
- //#region src/composables/controls/useScrubber.d.ts
746
+ //#region src/ui/controls/useScrubber.d.ts
698
747
  interface UseScrubberReturn {
699
748
  scrubbing: ComputedRef<boolean>;
700
749
  displayPercent: ComputedRef<number>;
701
750
  previewSeconds: ComputedRef<number>;
702
751
  onInput: (e: Event) => void;
703
752
  onChange: (e: Event) => void;
753
+ onTouchStart: () => void;
704
754
  onTouchEnd: (e: TouchEvent) => void;
755
+ onPointerCancel: () => void;
705
756
  }
706
757
  export declare function useScrubber(player: Ref<PlayerHandle | null | undefined>): UseScrubberReturn;
707
758
  //#endregion
708
- //#region src/composables/overlay/useCaptions.d.ts
709
- interface UseCaptionsReturn {
710
- cycleCaptionTrack: () => void;
711
- currentCaptionLabel: () => string;
759
+ //#region src/ui/controls/useSpokenCues.d.ts
760
+ interface SpokenCuesOptions {
761
+ pitch?: number;
762
+ rate?: number;
712
763
  }
713
- export declare function useCaptions(player: PlayerHandle): UseCaptionsReturn;
714
- //#endregion
715
- //#region src/composables/overlay/useQuality.d.ts
716
- interface UseQualityReturn {
717
- cycleQuality: () => void;
718
- currentQualityLabel: () => string;
764
+ interface UseSpokenCuesReturn {
765
+ canSpeak: boolean;
766
+ speechEnabled: Ref<boolean>;
767
+ toggleSpeech: () => void;
719
768
  }
720
- export declare function useQuality(player: PlayerHandle): UseQualityReturn;
769
+ export declare function useSpokenCues(player: ComputedRef<PlayerHandle | null>, cues: ComputedRef<TranscriptCue[]>, activeIndex: ComputedRef<number | null>, options?: SpokenCuesOptions): UseSpokenCuesReturn;
721
770
  //#endregion
722
- //#region src/composables/overlay/usePlaybackRate.d.ts
723
- interface UsePlaybackRateReturn {
724
- cycleRate: () => void;
725
- fmtRate: (rate: number) => string;
726
- }
727
- export declare function usePlaybackRate(player: PlayerHandle): UsePlaybackRateReturn;
771
+ //#region src/utils/playerActions.d.ts
772
+ export declare function cycleCaptionTrack(player: PlayerHandle): void;
773
+ export declare function captionTrackLabel(player: PlayerHandle): string;
774
+ export declare function cycleQuality(player: PlayerHandle): void;
775
+ export declare function qualityLabel(player: PlayerHandle): string;
776
+ export declare function cyclePlaybackRate(player: PlayerHandle): void;
777
+ export declare function playbackRateLabel(rate: number): string;
728
778
  //#endregion
729
- //#region src/composables/exposePlayerOnElement.d.ts
779
+ //#region src/utils/exposePlayerOnElement.d.ts
730
780
  export declare function exposePlayerOnElement(el: Element, player: object | null | undefined): void;
731
781
  //#endregion
732
782
  //#region src/index.d.ts
733
783
  declare const VideoPlayerPlugin: Plugin;
734
784
  //#endregion
735
- export { _default as Buffering, type CaptionTrackInfo, _default$1 as CaptionsButton, type EmbedAdapterFactory, type EmbedAdapterOptions, type ForwardedPlayer, _default$2 as FullscreenButton, _default$3 as HideMarker, type HudContext, _default$4 as LoopButton, type Matcher, type MediaErrorLike, _default$5 as MuteButton, _default$6 as PipButton, type PlatformConfig, _default$7 as PlayButton, type PlaybackAdapter, _default$8 as PlaybackRateButton, type PlayerContext, type PlayerMethodKey, type PlayerStateKey, type PlaylistContext, _default$9 as QualityButton, type QualityLevelInfo, type ResolvedSource, _default$10 as Scrubber, type SourceResolver, _default$11 as TimeDisplay, _default$12 as Transcript, type UseForwardedPlayerReturn, _default$13 as VideoCard, _default$14 as VideoPlaceholder, _default$15 as VideoPlayer, VideoPlayerPlugin, VideoPlayerPlugin as default, _default$16 as VideoStage, _default$17 as VolumeSlider };
785
+ export { type AdapterCaptions, type AdapterPip, type AdapterQuality, _default as Buffering, type CaptionTrackInfo, _default$1 as CaptionsButton, type EmbedAdapterFactory, type EmbedAdapterOptions, type ForwardedPlayer, _default$2 as FullscreenButton, _default$3 as HideMarker, type HudContext, _default$4 as LoopButton, type Matcher, type MediaErrorLike, _default$5 as MuteButton, _default$6 as PipButton, type PlatformConfig, _default$7 as PlayButton, type PlaybackAdapter, type PlaybackEvent, _default$8 as PlaybackRateButton, type PlayerContext, type PlayerMethodKey, type PlayerStateKey, type PlaylistContext, _default$9 as QualityButton, type QualityLevelInfo, type ResolvedSource, _default$10 as Scrubber, type SourceResolver, type SpokenCuesOptions, _default$11 as TimeDisplay, _default$12 as Transcript, type UseForwardedPlayerReturn, type UseSpokenCuesReturn, _default$13 as VideoCard, _default$14 as VideoPlaceholder, _default$15 as VideoPlayer, VideoPlayerPlugin, VideoPlayerPlugin as default, _default$16 as VideoStage, _default$17 as VolumeSlider };