ts-video-player 0.1.0

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 (251) hide show
  1. package/LICENSE.md +21 -0
  2. package/README.md +438 -0
  3. package/dist/cdn.d.ts +10 -0
  4. package/dist/cdn.d.ts.map +1 -0
  5. package/dist/cdn.min.js +1046 -0
  6. package/dist/cdn.min.js.map +54 -0
  7. package/dist/cdn.test.d.ts +2 -0
  8. package/dist/cdn.test.d.ts.map +1 -0
  9. package/dist/chunk-36x4yhjn.js +765 -0
  10. package/dist/chunk-36x4yhjn.js.map +12 -0
  11. package/dist/chunk-eajts2jv.js +4243 -0
  12. package/dist/chunk-eajts2jv.js.map +42 -0
  13. package/dist/chunk-z1ehbz9f.js +380 -0
  14. package/dist/chunk-z1ehbz9f.js.map +19 -0
  15. package/dist/config.d.ts +9 -0
  16. package/dist/config.d.ts.map +1 -0
  17. package/dist/core/audio-gain.d.ts +67 -0
  18. package/dist/core/audio-gain.d.ts.map +1 -0
  19. package/dist/core/caption-styles.d.ts +121 -0
  20. package/dist/core/caption-styles.d.ts.map +1 -0
  21. package/dist/core/chapters.d.ts +150 -0
  22. package/dist/core/chapters.d.ts.map +1 -0
  23. package/dist/core/error-overlay.d.ts +71 -0
  24. package/dist/core/error-overlay.d.ts.map +1 -0
  25. package/dist/core/events.d.ts +119 -0
  26. package/dist/core/events.d.ts.map +1 -0
  27. package/dist/core/features.d.ts +64 -0
  28. package/dist/core/features.d.ts.map +1 -0
  29. package/dist/core/i18n.d.ts +132 -0
  30. package/dist/core/i18n.d.ts.map +1 -0
  31. package/dist/core/index.d.ts +37 -0
  32. package/dist/core/index.d.ts.map +1 -0
  33. package/dist/core/live.d.ts +130 -0
  34. package/dist/core/live.d.ts.map +1 -0
  35. package/dist/core/media-session.d.ts +38 -0
  36. package/dist/core/media-session.d.ts.map +1 -0
  37. package/dist/core/orientation.d.ts +22 -0
  38. package/dist/core/orientation.d.ts.map +1 -0
  39. package/dist/core/popover.d.ts +42 -0
  40. package/dist/core/popover.d.ts.map +1 -0
  41. package/dist/core/remote-playback.d.ts +195 -0
  42. package/dist/core/remote-playback.d.ts.map +1 -0
  43. package/dist/core/settings-menu.d.ts +132 -0
  44. package/dist/core/settings-menu.d.ts.map +1 -0
  45. package/dist/core/spinner.d.ts +67 -0
  46. package/dist/core/spinner.d.ts.map +1 -0
  47. package/dist/core/state.d.ts +142 -0
  48. package/dist/core/state.d.ts.map +1 -0
  49. package/dist/core/text-tracks.d.ts +162 -0
  50. package/dist/core/text-tracks.d.ts.map +1 -0
  51. package/dist/core/themes.d.ts +213 -0
  52. package/dist/core/themes.d.ts.map +1 -0
  53. package/dist/core/thumbnails.d.ts +124 -0
  54. package/dist/core/thumbnails.d.ts.map +1 -0
  55. package/dist/core/tooltips.d.ts +100 -0
  56. package/dist/core/tooltips.d.ts.map +1 -0
  57. package/dist/elements/base.d.ts +3 -0
  58. package/dist/elements/base.d.ts.map +1 -0
  59. package/dist/elements/index.d.ts +33 -0
  60. package/dist/elements/index.d.ts.map +1 -0
  61. package/dist/elements/index.js +55 -0
  62. package/dist/elements/index.js.map +9 -0
  63. package/dist/elements/media-airplay-button.d.ts +13 -0
  64. package/dist/elements/media-airplay-button.d.ts.map +1 -0
  65. package/dist/elements/media-error-display.d.ts +13 -0
  66. package/dist/elements/media-error-display.d.ts.map +1 -0
  67. package/dist/elements/media-fullscreen-button.d.ts +13 -0
  68. package/dist/elements/media-fullscreen-button.d.ts.map +1 -0
  69. package/dist/elements/media-live-button.d.ts +13 -0
  70. package/dist/elements/media-live-button.d.ts.map +1 -0
  71. package/dist/elements/media-mute-button.d.ts +13 -0
  72. package/dist/elements/media-mute-button.d.ts.map +1 -0
  73. package/dist/elements/media-pip-button.d.ts +13 -0
  74. package/dist/elements/media-pip-button.d.ts.map +1 -0
  75. package/dist/elements/media-play-button.d.ts +14 -0
  76. package/dist/elements/media-play-button.d.ts.map +1 -0
  77. package/dist/elements/media-playback-rate-button.d.ts +10 -0
  78. package/dist/elements/media-playback-rate-button.d.ts.map +1 -0
  79. package/dist/elements/media-preview-time.d.ts +18 -0
  80. package/dist/elements/media-preview-time.d.ts.map +1 -0
  81. package/dist/elements/media-progress-bar.d.ts +16 -0
  82. package/dist/elements/media-progress-bar.d.ts.map +1 -0
  83. package/dist/elements/media-remote-playback-button.d.ts +16 -0
  84. package/dist/elements/media-remote-playback-button.d.ts.map +1 -0
  85. package/dist/elements/media-seek-button.d.ts +9 -0
  86. package/dist/elements/media-seek-button.d.ts.map +1 -0
  87. package/dist/elements/media-settings-menu.d.ts +32 -0
  88. package/dist/elements/media-settings-menu.d.ts.map +1 -0
  89. package/dist/elements/media-time-display.d.ts +21 -0
  90. package/dist/elements/media-time-display.d.ts.map +1 -0
  91. package/dist/elements/media-time-group.d.ts +22 -0
  92. package/dist/elements/media-time-group.d.ts.map +1 -0
  93. package/dist/elements/media-time-separator.d.ts +13 -0
  94. package/dist/elements/media-time-separator.d.ts.map +1 -0
  95. package/dist/elements/media-volume-slider.d.ts +16 -0
  96. package/dist/elements/media-volume-slider.d.ts.map +1 -0
  97. package/dist/elements/utils.d.ts +27 -0
  98. package/dist/elements/utils.d.ts.map +1 -0
  99. package/dist/elements/video-player.d.ts +23 -0
  100. package/dist/elements/video-player.d.ts.map +1 -0
  101. package/dist/elements/video-skin.d.ts +23 -0
  102. package/dist/elements/video-skin.d.ts.map +1 -0
  103. package/dist/features/captions.d.ts +8 -0
  104. package/dist/features/captions.d.ts.map +1 -0
  105. package/dist/features/create-player.d.ts +45 -0
  106. package/dist/features/create-player.d.ts.map +1 -0
  107. package/dist/features/fullscreen.d.ts +8 -0
  108. package/dist/features/fullscreen.d.ts.map +1 -0
  109. package/dist/features/gestures.d.ts +8 -0
  110. package/dist/features/gestures.d.ts.map +1 -0
  111. package/dist/features/index.d.ts +26 -0
  112. package/dist/features/index.d.ts.map +1 -0
  113. package/dist/features/index.js +31 -0
  114. package/dist/features/index.js.map +9 -0
  115. package/dist/features/keyboard.d.ts +8 -0
  116. package/dist/features/keyboard.d.ts.map +1 -0
  117. package/dist/features/pip.d.ts +8 -0
  118. package/dist/features/pip.d.ts.map +1 -0
  119. package/dist/features/playback.d.ts +8 -0
  120. package/dist/features/playback.d.ts.map +1 -0
  121. package/dist/features/quality.d.ts +8 -0
  122. package/dist/features/quality.d.ts.map +1 -0
  123. package/dist/features/types.d.ts +26 -0
  124. package/dist/features/types.d.ts.map +1 -0
  125. package/dist/features/volume.d.ts +8 -0
  126. package/dist/features/volume.d.ts.map +1 -0
  127. package/dist/index.d.ts +84 -0
  128. package/dist/index.d.ts.map +1 -0
  129. package/dist/index.js +8149 -0
  130. package/dist/index.js.map +31 -0
  131. package/dist/layouts/index.d.ts +58 -0
  132. package/dist/layouts/index.d.ts.map +1 -0
  133. package/dist/player.d.ts +90 -0
  134. package/dist/player.d.ts.map +1 -0
  135. package/dist/plugins/ads.d.ts +311 -0
  136. package/dist/plugins/ads.d.ts.map +1 -0
  137. package/dist/plugins/analytics.d.ts +203 -0
  138. package/dist/plugins/analytics.d.ts.map +1 -0
  139. package/dist/plugins/end-screen.d.ts +184 -0
  140. package/dist/plugins/end-screen.d.ts.map +1 -0
  141. package/dist/plugins/index.d.ts +13 -0
  142. package/dist/plugins/index.d.ts.map +1 -0
  143. package/dist/plugins/index.js +20 -0
  144. package/dist/plugins/index.js.map +9 -0
  145. package/dist/plugins/skip-segments.d.ts +159 -0
  146. package/dist/plugins/skip-segments.d.ts.map +1 -0
  147. package/dist/plugins/watermark.d.ts +157 -0
  148. package/dist/plugins/watermark.d.ts.map +1 -0
  149. package/dist/providers/base.d.ts +56 -0
  150. package/dist/providers/base.d.ts.map +1 -0
  151. package/dist/providers/dash.d.ts +94 -0
  152. package/dist/providers/dash.d.ts.map +1 -0
  153. package/dist/providers/hls.d.ts +182 -0
  154. package/dist/providers/hls.d.ts.map +1 -0
  155. package/dist/providers/html5.d.ts +64 -0
  156. package/dist/providers/html5.d.ts.map +1 -0
  157. package/dist/providers/index.d.ts +41 -0
  158. package/dist/providers/index.d.ts.map +1 -0
  159. package/dist/providers/vimeo.d.ts +157 -0
  160. package/dist/providers/vimeo.d.ts.map +1 -0
  161. package/dist/providers/youtube.d.ts +134 -0
  162. package/dist/providers/youtube.d.ts.map +1 -0
  163. package/dist/stx/index.d.ts +59 -0
  164. package/dist/stx/index.d.ts.map +1 -0
  165. package/dist/stx/index.js +480 -0
  166. package/dist/stx/index.js.map +11 -0
  167. package/dist/types.d.ts +724 -0
  168. package/dist/types.d.ts.map +1 -0
  169. package/dist/ui/components.d.ts +121 -0
  170. package/dist/ui/components.d.ts.map +1 -0
  171. package/dist/ui/index.d.ts +9 -0
  172. package/dist/ui/index.d.ts.map +1 -0
  173. package/dist/ui/index.js +16 -0
  174. package/dist/ui/index.js.map +9 -0
  175. package/package.json +109 -0
  176. package/src/cdn.test.ts +10 -0
  177. package/src/cdn.ts +60 -0
  178. package/src/config.ts +25 -0
  179. package/src/core/audio-gain.ts +171 -0
  180. package/src/core/caption-styles.ts +568 -0
  181. package/src/core/chapters.ts +551 -0
  182. package/src/core/error-overlay.ts +354 -0
  183. package/src/core/events.ts +552 -0
  184. package/src/core/features.ts +287 -0
  185. package/src/core/i18n.ts +590 -0
  186. package/src/core/index.ts +249 -0
  187. package/src/core/live.ts +472 -0
  188. package/src/core/media-session.ts +137 -0
  189. package/src/core/orientation.ts +57 -0
  190. package/src/core/popover.ts +143 -0
  191. package/src/core/remote-playback.ts +661 -0
  192. package/src/core/settings-menu.ts +630 -0
  193. package/src/core/spinner.ts +310 -0
  194. package/src/core/state.ts +476 -0
  195. package/src/core/text-tracks.ts +599 -0
  196. package/src/core/themes.ts +607 -0
  197. package/src/core/thumbnails.ts +457 -0
  198. package/src/core/tooltips.ts +370 -0
  199. package/src/elements/base.ts +2 -0
  200. package/src/elements/index.ts +82 -0
  201. package/src/elements/media-airplay-button.ts +78 -0
  202. package/src/elements/media-error-display.ts +47 -0
  203. package/src/elements/media-fullscreen-button.ts +72 -0
  204. package/src/elements/media-live-button.ts +65 -0
  205. package/src/elements/media-mute-button.ts +69 -0
  206. package/src/elements/media-pip-button.ts +66 -0
  207. package/src/elements/media-play-button.ts +69 -0
  208. package/src/elements/media-playback-rate-button.ts +59 -0
  209. package/src/elements/media-preview-time.ts +75 -0
  210. package/src/elements/media-progress-bar.ts +200 -0
  211. package/src/elements/media-remote-playback-button.ts +108 -0
  212. package/src/elements/media-seek-button.ts +50 -0
  213. package/src/elements/media-settings-menu.ts +302 -0
  214. package/src/elements/media-time-display.ts +99 -0
  215. package/src/elements/media-time-group.ts +41 -0
  216. package/src/elements/media-time-separator.ts +35 -0
  217. package/src/elements/media-volume-slider.ts +140 -0
  218. package/src/elements/utils.ts +82 -0
  219. package/src/elements/video-player.ts +175 -0
  220. package/src/elements/video-skin.ts +127 -0
  221. package/src/features/captions.ts +56 -0
  222. package/src/features/create-player.ts +91 -0
  223. package/src/features/fullscreen.ts +44 -0
  224. package/src/features/gestures.ts +44 -0
  225. package/src/features/index.ts +44 -0
  226. package/src/features/keyboard.ts +89 -0
  227. package/src/features/pip.ts +47 -0
  228. package/src/features/playback.ts +68 -0
  229. package/src/features/quality.ts +19 -0
  230. package/src/features/types.ts +28 -0
  231. package/src/features/volume.ts +46 -0
  232. package/src/index.ts +635 -0
  233. package/src/layouts/index.ts +672 -0
  234. package/src/player.ts +821 -0
  235. package/src/plugins/ads.ts +1045 -0
  236. package/src/plugins/analytics.ts +673 -0
  237. package/src/plugins/end-screen.ts +793 -0
  238. package/src/plugins/index.ts +61 -0
  239. package/src/plugins/skip-segments.ts +537 -0
  240. package/src/plugins/watermark.ts +537 -0
  241. package/src/providers/base.ts +197 -0
  242. package/src/providers/dash.ts +588 -0
  243. package/src/providers/hls.ts +624 -0
  244. package/src/providers/html5.ts +473 -0
  245. package/src/providers/index.ts +97 -0
  246. package/src/providers/vimeo.ts +533 -0
  247. package/src/providers/youtube.ts +542 -0
  248. package/src/stx/index.ts +606 -0
  249. package/src/types.ts +874 -0
  250. package/src/ui/components.ts +910 -0
  251. package/src/ui/index.ts +29 -0
@@ -0,0 +1,23 @@
1
+ /**
2
+ * ts-video-player <video-skin> Custom Element
3
+ *
4
+ * Adaptive skin wrapper that provides a default layout for player controls.
5
+ * Adjusts visibility of controls based on available features.
6
+ *
7
+ * Follows the v10 layered model:
8
+ * <video-player> ← Behavior
9
+ * <video-skin> ← Appearance (this element)
10
+ * <media-*> ← UI controls
11
+ * </video-skin>
12
+ * </video-player>
13
+ *
14
+ * @module elements/video-skin
15
+ */
16
+ import { HTMLElementBase } from './base';
17
+ export declare class VideoSkin extends HTMLElementBase {
18
+ private _cleanups;
19
+ connectedCallback(): void;
20
+ disconnectedCallback(): void;
21
+ private attach;
22
+ }
23
+ //# sourceMappingURL=video-skin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"video-skin.d.ts","sourceRoot":"","sources":["../../src/elements/video-skin.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH,OAAO,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAA;AAExC,qBAAa,SAAU,SAAQ,eAAe;IAC5C,OAAO,CAAC,SAAS,CAAwB;IAEzC,iBAAiB,IAAI,IAAI;IAoEzB,oBAAoB,IAAI,IAAI;IAK5B,OAAO,CAAC,MAAM;CA8Bf"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Captions feature — text track management.
3
+ *
4
+ * @module features/captions
5
+ */
6
+ import type { Feature } from './types';
7
+ export declare const captions: Feature;
8
+ //# sourceMappingURL=captions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"captions.d.ts","sourceRoot":"","sources":["../../src/features/captions.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAkB,MAAM,SAAS,CAAA;AAGtD,eAAO,MAAM,QAAQ,EAAE,OA8CtB,CAAA"}
@@ -0,0 +1,45 @@
1
+ /**
2
+ * Composable Player Factory
3
+ *
4
+ * Creates a lightweight player with only the features you need.
5
+ *
6
+ * @module features/create-player
7
+ */
8
+ import type { Feature } from './types';
9
+ import type { PlayerState } from '../types';
10
+ import { StateStore } from '../core/state';
11
+ export interface ComposablePlayer {
12
+ /** The container element */
13
+ el: HTMLElement;
14
+ /** Current state */
15
+ readonly state: PlayerState;
16
+ /** Subscribe to state changes */
17
+ subscribe: StateStore['subscribe'];
18
+ /** Get the media element */
19
+ getMediaElement: () => HTMLMediaElement | null;
20
+ /** Destroy the player and all features */
21
+ destroy: () => void;
22
+ }
23
+ export interface ComposablePlayerOptions {
24
+ /** Features to enable */
25
+ features: Feature[];
26
+ /** Initial state overrides */
27
+ state?: Partial<PlayerState>;
28
+ /** Player options */
29
+ options?: Record<string, unknown>;
30
+ }
31
+ /**
32
+ * Create a composable player with only the specified features.
33
+ *
34
+ * @example
35
+ * ```ts
36
+ * import { createComposablePlayer } from 'ts-video-player/features'
37
+ * import { playback, volume, fullscreen } from 'ts-video-player/features'
38
+ *
39
+ * const player = createComposablePlayer(container, {
40
+ * features: [playback, volume, fullscreen],
41
+ * })
42
+ * ```
43
+ */
44
+ export declare function createComposablePlayer(container: HTMLElement, opts: ComposablePlayerOptions): ComposablePlayer;
45
+ //# sourceMappingURL=create-player.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-player.d.ts","sourceRoot":"","sources":["../../src/features/create-player.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAkB,MAAM,SAAS,CAAA;AACtD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAE1C,MAAM,WAAW,gBAAgB;IAC/B,4BAA4B;IAC5B,EAAE,EAAE,WAAW,CAAA;IACf,oBAAoB;IACpB,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAA;IAC3B,iCAAiC;IACjC,SAAS,EAAE,UAAU,CAAC,WAAW,CAAC,CAAA;IAClC,4BAA4B;IAC5B,eAAe,EAAE,MAAM,gBAAgB,GAAG,IAAI,CAAA;IAC9C,0CAA0C;IAC1C,OAAO,EAAE,MAAM,IAAI,CAAA;CACpB;AAED,MAAM,WAAW,uBAAuB;IACtC,yBAAyB;IACzB,QAAQ,EAAE,OAAO,EAAE,CAAA;IACnB,8BAA8B;IAC9B,KAAK,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,CAAA;IAC5B,qBAAqB;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAClC;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,sBAAsB,CACpC,SAAS,EAAE,WAAW,EACtB,IAAI,EAAE,uBAAuB,GAC5B,gBAAgB,CAwClB"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Fullscreen feature — fullscreen state + availability detection.
3
+ *
4
+ * @module features/fullscreen
5
+ */
6
+ import type { Feature } from './types';
7
+ export declare const fullscreen: Feature;
8
+ //# sourceMappingURL=fullscreen.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fullscreen.d.ts","sourceRoot":"","sources":["../../src/features/fullscreen.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAkB,MAAM,SAAS,CAAA;AAItD,eAAO,MAAM,UAAU,EAAE,OAiCxB,CAAA"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Gestures feature — touch gesture detection.
3
+ *
4
+ * @module features/gestures
5
+ */
6
+ import type { Feature } from './types';
7
+ export declare const gestures: Feature;
8
+ //# sourceMappingURL=gestures.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gestures.d.ts","sourceRoot":"","sources":["../../src/features/gestures.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAkB,MAAM,SAAS,CAAA;AAGtD,eAAO,MAAM,QAAQ,EAAE,OAkCtB,CAAA"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * ts-video-player Composable Features
3
+ *
4
+ * Tree-shakeable feature composition system.
5
+ *
6
+ * @module features
7
+ */
8
+ export { playback } from './playback';
9
+ export { volume } from './volume';
10
+ export { fullscreen } from './fullscreen';
11
+ export { pip } from './pip';
12
+ export { captions } from './captions';
13
+ export { quality } from './quality';
14
+ export { keyboard } from './keyboard';
15
+ export { gestures } from './gestures';
16
+ export type { Feature, FeatureContext } from './types';
17
+ export { createComposablePlayer } from './create-player';
18
+ export type { ComposablePlayer, ComposablePlayerOptions } from './create-player';
19
+ import type { Feature } from './types';
20
+ /** All features for video playback */
21
+ export declare const videoFeatures: Feature[];
22
+ /** Features for audio-only playback */
23
+ export declare const audioFeatures: Feature[];
24
+ /** Minimal features (playback only) */
25
+ export declare const minimalFeatures: Feature[];
26
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/features/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AACjC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAA;AAC3B,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAGrC,YAAY,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAGtD,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAA;AACxD,YAAY,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAA;AAWhF,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AAEtC,sCAAsC;AACtC,eAAO,MAAM,aAAa,EAAE,OAAO,EAA+E,CAAA;AAElH,uCAAuC;AACvC,eAAO,MAAM,aAAa,EAAE,OAAO,EAAiC,CAAA;AAEpE,uCAAuC;AACvC,eAAO,MAAM,eAAe,EAAE,OAAO,EAAe,CAAA"}
@@ -0,0 +1,31 @@
1
+ import {
2
+ audioFeatures,
3
+ captions,
4
+ createComposablePlayer,
5
+ fullscreen,
6
+ gestures,
7
+ keyboard,
8
+ minimalFeatures,
9
+ pip,
10
+ playback,
11
+ quality,
12
+ videoFeatures,
13
+ volume
14
+ } from "../chunk-z1ehbz9f.js";
15
+ import"../chunk-36x4yhjn.js";
16
+ export {
17
+ volume,
18
+ videoFeatures,
19
+ quality,
20
+ playback,
21
+ pip,
22
+ minimalFeatures,
23
+ keyboard,
24
+ gestures,
25
+ fullscreen,
26
+ createComposablePlayer,
27
+ captions,
28
+ audioFeatures
29
+ };
30
+
31
+ //# debugId=2742186C65CD802C64756E2164756E21
@@ -0,0 +1,9 @@
1
+ {
2
+ "version": 3,
3
+ "sources": [],
4
+ "sourcesContent": [
5
+ ],
6
+ "mappings": "",
7
+ "debugId": "2742186C65CD802C64756E2164756E21",
8
+ "names": []
9
+ }
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Keyboard feature — keyboard shortcut handling.
3
+ *
4
+ * @module features/keyboard
5
+ */
6
+ import type { Feature } from './types';
7
+ export declare const keyboard: Feature;
8
+ //# sourceMappingURL=keyboard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"keyboard.d.ts","sourceRoot":"","sources":["../../src/features/keyboard.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAkB,MAAM,SAAS,CAAA;AAGtD,eAAO,MAAM,QAAQ,EAAE,OA+EtB,CAAA"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Picture-in-Picture feature — PiP state + availability detection.
3
+ *
4
+ * @module features/pip
5
+ */
6
+ import type { Feature } from './types';
7
+ export declare const pip: Feature;
8
+ //# sourceMappingURL=pip.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pip.d.ts","sourceRoot":"","sources":["../../src/features/pip.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAkB,MAAM,SAAS,CAAA;AAItD,eAAO,MAAM,GAAG,EAAE,OAoCjB,CAAA"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Playback feature — core playback state management.
3
+ *
4
+ * @module features/playback
5
+ */
6
+ import type { Feature } from './types';
7
+ export declare const playback: Feature;
8
+ //# sourceMappingURL=playback.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"playback.d.ts","sourceRoot":"","sources":["../../src/features/playback.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAkB,MAAM,SAAS,CAAA;AAEtD,eAAO,MAAM,QAAQ,EAAE,OA2DtB,CAAA"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Quality feature — quality selection state.
3
+ *
4
+ * @module features/quality
5
+ */
6
+ import type { Feature } from './types';
7
+ export declare const quality: Feature;
8
+ //# sourceMappingURL=quality.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"quality.d.ts","sourceRoot":"","sources":["../../src/features/quality.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAkB,MAAM,SAAS,CAAA;AAEtD,eAAO,MAAM,OAAO,EAAE,OAUrB,CAAA"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * ts-video-player Feature Types
3
+ *
4
+ * @module features/types
5
+ */
6
+ import type { PlayerState } from '../types';
7
+ import type { StateStore } from '../core/state';
8
+ export interface FeatureContext {
9
+ /** The player container element */
10
+ container: HTMLElement;
11
+ /** The state store */
12
+ store: StateStore;
13
+ /** Options passed to the player */
14
+ options: Record<string, unknown>;
15
+ /** Get the current media element (may be null before load) */
16
+ getMediaElement: () => HTMLMediaElement | null;
17
+ }
18
+ export interface Feature {
19
+ /** Unique feature name */
20
+ name: string;
21
+ /** State keys this feature manages */
22
+ stateKeys?: (keyof PlayerState)[];
23
+ /** Initialize the feature. Returns a cleanup function. */
24
+ setup(ctx: FeatureContext): (() => void) | void;
25
+ }
26
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/features/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAC3C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAE/C,MAAM,WAAW,cAAc;IAC7B,mCAAmC;IACnC,SAAS,EAAE,WAAW,CAAA;IACtB,sBAAsB;IACtB,KAAK,EAAE,UAAU,CAAA;IACjB,mCAAmC;IACnC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAChC,8DAA8D;IAC9D,eAAe,EAAE,MAAM,gBAAgB,GAAG,IAAI,CAAA;CAC/C;AAED,MAAM,WAAW,OAAO;IACtB,0BAA0B;IAC1B,IAAI,EAAE,MAAM,CAAA;IACZ,sCAAsC;IACtC,SAAS,CAAC,EAAE,CAAC,MAAM,WAAW,CAAC,EAAE,CAAA;IACjC,0DAA0D;IAC1D,KAAK,CAAC,GAAG,EAAE,cAAc,GAAG,CAAC,MAAM,IAAI,CAAC,GAAG,IAAI,CAAA;CAChD"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Volume feature — volume state + availability detection.
3
+ *
4
+ * @module features/volume
5
+ */
6
+ import type { Feature } from './types';
7
+ export declare const volume: Feature;
8
+ //# sourceMappingURL=volume.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"volume.d.ts","sourceRoot":"","sources":["../../src/features/volume.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAkB,MAAM,SAAS,CAAA;AAGtD,eAAO,MAAM,MAAM,EAAE,OAoCpB,CAAA"}
@@ -0,0 +1,84 @@
1
+ /**
2
+ * ts-video-player
3
+ *
4
+ * A modern, framework-agnostic video player with deep stx integration.
5
+ *
6
+ * @module ts-video-player
7
+ *
8
+ * @example
9
+ * ```typescript
10
+ * import { createPlayer } from 'ts-video-player'
11
+ *
12
+ * const player = createPlayer('#video-container', {
13
+ * src: 'https://example.com/video.mp4',
14
+ * poster: '/poster.jpg',
15
+ * autoplay: false,
16
+ * controls: true,
17
+ * })
18
+ *
19
+ * player.on('playing', () => console.log('Video is playing!'))
20
+ * player.on('ended', () => console.log('Video ended'))
21
+ *
22
+ * // Control playback
23
+ * await player.play()
24
+ * player.pause()
25
+ * player.seekTo(30)
26
+ *
27
+ * // Volume
28
+ * player.setVolume(0.5)
29
+ * player.toggleMute()
30
+ *
31
+ * // Fullscreen
32
+ * await player.toggleFullscreen()
33
+ * ```
34
+ */
35
+ export { Player, createPlayer, getPlayer } from './player';
36
+ export { StateStore, createSignal, computed, shallowEqual, createDefaultState, loadPersistedState, savePersistedState, createStorageSync, selectBufferedAmount, selectProgress, selectRemainingTime, selectIsIdle, selectIsLoading, selectIsLive, selectIsDVR, selectCurrentQuality, selectCurrentTextTrack, selectCurrentAudioTrack, } from './core/state';
37
+ export { EventEmitter, MediaEventsNormalizer, onFullscreenChange, onPiPChange, DEFAULT_KEYBOARD_SHORTCUTS, createKeyboardHandler, createActivityDetector, createGestureDetector, } from './core/events';
38
+ export { AudioGain, createAudioGain, GAIN_PRESETS, GAIN_STEPS, } from './core/audio-gain';
39
+ export type { AudioGainAdapter } from './core/audio-gain';
40
+ export { TextTrackList, TextTrackReadyState, CaptionRenderer, createTextTrackList, createCaptionRenderer, } from './core/text-tracks';
41
+ export type { TextTrackInit, VTTCueInit, CaptionRendererOptions } from './core/text-tracks';
42
+ export { defaultTheme, darkTheme, lightTheme, minimalTheme, netflixTheme, youtubeTheme, vimeoTheme, presetThemes, mergeThemes, generateThemeCSS, createThemeStyleElement, applyTheme, injectThemeStyles, } from './core/themes';
43
+ export type { Theme, ThemeColors, ThemeTypography, ThemeSpacing, ThemeBorderRadius, ThemeShadows, ThemeTransitions, ThemeSlider, ThemeControls, ThemeMenu, ThemeCaptions, ThemeThumbnails, ThemeLive, PresetThemeName, } from './core/themes';
44
+ export { Thumbnails, createThumbnails, parseThumbnailVTT, generateSpriteCues, } from './core/thumbnails';
45
+ export type { ThumbnailSprite, ThumbnailCue, ThumbnailsConfig, } from './core/thumbnails';
46
+ export { I18n, createI18n, getI18n, setI18n, t, englishStrings, spanishStrings, frenchStrings, germanStrings, japaneseStrings, chineseStrings, defaultTranslations, } from './core/i18n';
47
+ export type { TranslationStrings, TranslationKey, I18nConfig, } from './core/i18n';
48
+ export { LiveIndicator, SeekToLiveButton, LiveController, createLiveIndicator, createSeekToLiveButton, createLiveController, } from './core/live';
49
+ export type { LiveConfig, LiveState, } from './core/live';
50
+ export { RemotePlaybackController, AirPlayButton, GoogleCastButton, createRemotePlaybackController, createAirPlayButton, createGoogleCastButton, isAirPlaySupported, isAirPlayAvailable, showAirPlayPicker, isAirPlaying, isGoogleCastSupported, loadGoogleCastSDK, initializeGoogleCast, requestCastSession, endCastSession, isCasting, getCastSession, castMedia, } from './core/remote-playback';
51
+ export type { RemotePlaybackType, RemotePlaybackState, RemoteDevice, RemotePlaybackConfig, } from './core/remote-playback';
52
+ export { ChaptersManager, ChapterMenu, createChaptersManager, createChapterMenu, parseChaptersVTT, } from './core/chapters';
53
+ export type { Chapter, ChaptersConfig, } from './core/chapters';
54
+ export { Spinner, createSpinner, SPINNER_STYLES, } from './core/spinner';
55
+ export type { SpinnerConfig } from './core/spinner';
56
+ export { CaptionStyleManager, CaptionSettingsMenu, createCaptionStyleManager, createCaptionSettingsMenu, defaultCaptionStyles, captionPresets, } from './core/caption-styles';
57
+ export type { CaptionStyleOptions, CaptionStylePreset, } from './core/caption-styles';
58
+ export { Tooltip, TooltipManager, createTooltip, createTooltipManager, TOOLTIP_STYLES, } from './core/tooltips';
59
+ export type { TooltipPlacement, TooltipConfig, } from './core/tooltips';
60
+ export { ErrorOverlay, createErrorOverlay, ERROR_OVERLAY_STYLES, } from './core/error-overlay';
61
+ export type { ErrorOverlayConfig } from './core/error-overlay';
62
+ export { SettingsMenu, createSettingsMenu, } from './core/settings-menu';
63
+ export type { SettingsMenuConfig, SettingsMenuState, } from './core/settings-menu';
64
+ export { BaseProvider, HTML5Provider, html5Loader, isHTML5Source, YouTubeProvider, youtubeLoader, isYouTubeSource, extractYouTubeId, VimeoProvider, vimeoLoader, isVimeoSource, extractVimeoId, extractVimeoHash, HLSProvider, hlsLoader, isHLSSource, isNativeHLSSupported, DASHProvider, dashLoader, isDASHSource, defaultLoaders, findLoader, detectMediaType, getPreconnectHints, } from './providers';
65
+ export type { DRMConfig, DASHProviderConfig } from './providers';
66
+ export { LayoutManager, createLayoutManager, getLayout, registerLayout, layouts, defaultLayout, minimalLayout, cinemaLayout, youtubeLayout, vimeoLayout, audioLayout, } from './layouts';
67
+ export type { LayoutConfig, LayoutName } from './layouts';
68
+ export { BaseComponent, PlayButton, MuteButton, FullscreenButton, PiPButton, TimeDisplay, Slider, ProgressBar, VolumeSlider, Menu, formatTime, UI_STYLES, } from './ui/components';
69
+ export type { MediaType, StreamType, ProviderType, MediaSource, YouTubeSource, VimeoSource, HLSSource, DASHSource, Src, PreloadStrategy, CrossOrigin, LoadingState, PlaybackState, TimeRange, VideoQuality, AudioTrack, TextTrack, TextTrackCue, PlayerState, PlayerOptions, ControlsConfig, CustomControl, KeyboardConfig, StorageConfig, Provider, ProviderLoader, MediaError, ProviderEventMap, PlayerEventMap, UIComponent, TooltipOptions, MenuItem, SliderOptions, VideoComponentProps, VideoDirectiveOptions, VideoRenderResult, } from './types';
70
+ export { renderVideoComponent, parseVideoComponent, createVideoDirective, videoDirective, registerVideoDirectives, } from './stx';
71
+ export { VideoAnalytics, createVideoAnalytics, analyticsPlugin, VASTParser, AdsManager, createAdsManager, adsPlugin, SkipSegmentsManager, createSkipSegments, skipSegmentsPlugin, EndScreenManager, createEndScreen, endScreenPlugin, WatermarkManager, createWatermarkManager, watermarkPlugin, } from './plugins';
72
+ export type { VideoEventName, VideoAnalyticsConfig, Ad, AdMediaFile, AdBreak, AdConfig, AdState, SegmentType, SkipSegment, SkipSegmentsConfig, SkipSegmentsState, EndScreenRecommendation, EndScreenConfig, EndScreenState, WatermarkPosition, WatermarkConfig, WatermarkAnimation, DynamicWatermark, } from './plugins';
73
+ import { createPlayer } from './player';
74
+ export default createPlayer;
75
+ export { isIOSSafari, isSafari, isStandalonePWA, detectVolumeAvailability, probeVolumeAvailability, detectFullscreenAvailability, isVideoOnlyFullscreen, detectPipAvailability, detectAllFeatures, enterFullscreen, exitFullscreen, enterPiP, exitPiP, } from './core/features';
76
+ export { VideoPlayerElement, VideoSkin, MediaPlayButton, MediaMuteButton, MediaFullscreenButton, MediaPipButton, MediaTimeDisplay, MediaTimeGroup, MediaTimeSeparator, MediaPreviewTime, MediaProgressBar, MediaVolumeSlider, MediaSettingsMenu, registerElements, formatTime as formatElementTime, formatTimePhrase, toISODuration, } from './elements';
77
+ export { playback, volume as volumeFeature, fullscreen as fullscreenFeature, pip as pipFeature, captions as captionsFeature, quality as qualityFeature, keyboard as keyboardFeature, gestures as gesturesFeature, videoFeatures, audioFeatures, minimalFeatures, createComposablePlayer, } from './features';
78
+ export type { Feature, FeatureContext, ComposablePlayer, ComposablePlayerOptions } from './features';
79
+ export { isMediaSessionSupported, createMediaSession, updateMetadata, } from './core/media-session';
80
+ export type { MediaSessionOptions } from './core/media-session';
81
+ export { isOrientationLockSupported, lockOrientation, unlockOrientation, } from './core/orientation';
82
+ export { computePosition, applyPosition, } from './core/popover';
83
+ export type { Rect, Placement, PositionOptions, PositionResult } from './core/popover';
84
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}