playron 1.0.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 (249) hide show
  1. package/README.md +287 -0
  2. package/dist/Docs.d.ts +2 -0
  3. package/dist/Docs.d.ts.map +1 -0
  4. package/dist/ErrorManager-CDf_sFKX.cjs +1 -0
  5. package/dist/ErrorManager-i9WcRsWb.js +43 -0
  6. package/dist/Why.d.ts +2 -0
  7. package/dist/Why.d.ts.map +1 -0
  8. package/dist/components/PlayerConfig.d.ts +34 -0
  9. package/dist/components/PlayerConfig.d.ts.map +1 -0
  10. package/dist/components/PlayronControls.d.ts +26 -0
  11. package/dist/components/PlayronControls.d.ts.map +1 -0
  12. package/dist/components/PlayronPlayer.d.ts +37 -0
  13. package/dist/components/PlayronPlayer.d.ts.map +1 -0
  14. package/dist/components/SiteHeader.d.ts +6 -0
  15. package/dist/components/SiteHeader.d.ts.map +1 -0
  16. package/dist/constants/sample-intro-outro.d.ts +3 -0
  17. package/dist/constants/sample-intro-outro.d.ts.map +1 -0
  18. package/dist/constants/source.d.ts +2 -0
  19. package/dist/constants/source.d.ts.map +1 -0
  20. package/dist/constants/sports-events.d.ts +58 -0
  21. package/dist/constants/sports-events.d.ts.map +1 -0
  22. package/dist/context/PlayerContext.d.ts +3 -0
  23. package/dist/context/PlayerContext.d.ts.map +1 -0
  24. package/dist/context/PlayerMethodsContext.d.ts +63 -0
  25. package/dist/context/PlayerMethodsContext.d.ts.map +1 -0
  26. package/dist/context/PlayerProvider.d.ts +9 -0
  27. package/dist/context/PlayerProvider.d.ts.map +1 -0
  28. package/dist/context/PlayerStateContext.d.ts +4 -0
  29. package/dist/context/PlayerStateContext.d.ts.map +1 -0
  30. package/dist/context/PlayronContext.d.ts +100 -0
  31. package/dist/context/PlayronContext.d.ts.map +1 -0
  32. package/dist/context/SubtitleStyleContext.d.ts +22 -0
  33. package/dist/context/SubtitleStyleContext.d.ts.map +1 -0
  34. package/dist/core/ConfigManager.d.ts +78 -0
  35. package/dist/core/ConfigManager.d.ts.map +1 -0
  36. package/dist/core/ErrorManager.d.ts +22 -0
  37. package/dist/core/ErrorManager.d.ts.map +1 -0
  38. package/dist/core/EventBus.d.ts +32 -0
  39. package/dist/core/EventBus.d.ts.map +1 -0
  40. package/dist/core/PlayerCore.d.ts +170 -0
  41. package/dist/core/PlayerCore.d.ts.map +1 -0
  42. package/dist/core/PlayronEventEmitter.d.ts +162 -0
  43. package/dist/core/PlayronEventEmitter.d.ts.map +1 -0
  44. package/dist/core/PluginSystem.d.ts +111 -0
  45. package/dist/core/PluginSystem.d.ts.map +1 -0
  46. package/dist/core/StallDetector.d.ts +27 -0
  47. package/dist/core/StallDetector.d.ts.map +1 -0
  48. package/dist/core/StateManager.d.ts +90 -0
  49. package/dist/core/StateManager.d.ts.map +1 -0
  50. package/dist/core/VideoEngine.d.ts +92 -0
  51. package/dist/core/VideoEngine.d.ts.map +1 -0
  52. package/dist/core/adaptive/StreamDetector.d.ts +73 -0
  53. package/dist/core/adaptive/StreamDetector.d.ts.map +1 -0
  54. package/dist/core/drm/DrmCapabilityProbe.d.ts +13 -0
  55. package/dist/core/drm/DrmCapabilityProbe.d.ts.map +1 -0
  56. package/dist/core/network/index.d.ts +6 -0
  57. package/dist/core/network/index.d.ts.map +1 -0
  58. package/dist/core/streaming/DashEngine.d.ts +149 -0
  59. package/dist/core/streaming/DashEngine.d.ts.map +1 -0
  60. package/dist/core/streaming/HlsEngine.d.ts +168 -0
  61. package/dist/core/streaming/HlsEngine.d.ts.map +1 -0
  62. package/dist/core/streaming/SubtitleManager.d.ts +88 -0
  63. package/dist/core/streaming/SubtitleManager.d.ts.map +1 -0
  64. package/dist/core/streaming/ThumbnailManager.d.ts +44 -0
  65. package/dist/core/streaming/ThumbnailManager.d.ts.map +1 -0
  66. package/dist/core/streaming/index.d.ts +11 -0
  67. package/dist/core/streaming/index.d.ts.map +1 -0
  68. package/dist/core/streaming/parsers/WebVttParser.d.ts +56 -0
  69. package/dist/core/streaming/parsers/WebVttParser.d.ts.map +1 -0
  70. package/dist/hooks/useClickOutside.d.ts +4 -0
  71. package/dist/hooks/useClickOutside.d.ts.map +1 -0
  72. package/dist/hooks/useKeyboardControls.d.ts +20 -0
  73. package/dist/hooks/useKeyboardControls.d.ts.map +1 -0
  74. package/dist/hooks/useMobileGestures.d.ts +17 -0
  75. package/dist/hooks/useMobileGestures.d.ts.map +1 -0
  76. package/dist/hooks/useMouseActivity.d.ts +10 -0
  77. package/dist/hooks/useMouseActivity.d.ts.map +1 -0
  78. package/dist/hooks/usePlayer.d.ts +6 -0
  79. package/dist/hooks/usePlayer.d.ts.map +1 -0
  80. package/dist/hooks/usePlayerMethods.d.ts +6 -0
  81. package/dist/hooks/usePlayerMethods.d.ts.map +1 -0
  82. package/dist/hooks/usePlayerState.d.ts +11 -0
  83. package/dist/hooks/usePlayerState.d.ts.map +1 -0
  84. package/dist/index.d.ts +99 -0
  85. package/dist/index.d.ts.map +1 -0
  86. package/dist/layout/ControlsContainer.d.ts +9 -0
  87. package/dist/layout/ControlsContainer.d.ts.map +1 -0
  88. package/dist/layout/ControlsContainer.responsive.d.ts +8 -0
  89. package/dist/layout/ControlsContainer.responsive.d.ts.map +1 -0
  90. package/dist/layout/SeekBarContainer.d.ts +16 -0
  91. package/dist/layout/SeekBarContainer.d.ts.map +1 -0
  92. package/dist/playron.cjs.js +248 -0
  93. package/dist/playron.css +1 -0
  94. package/dist/playron.es.js +47631 -0
  95. package/dist/plugins/AdPlugin.d.ts +8 -0
  96. package/dist/plugins/AdPlugin.d.ts.map +1 -0
  97. package/dist/plugins/AnalyticsPlugin.d.ts +50 -0
  98. package/dist/plugins/AnalyticsPlugin.d.ts.map +1 -0
  99. package/dist/plugins/PluginManager.d.ts +2 -0
  100. package/dist/plugins/PluginManager.d.ts.map +1 -0
  101. package/dist/plugins/SocialPlugin.d.ts +2 -0
  102. package/dist/plugins/SocialPlugin.d.ts.map +1 -0
  103. package/dist/plugins/ads/AdManager.d.ts +79 -0
  104. package/dist/plugins/ads/AdManager.d.ts.map +1 -0
  105. package/dist/plugins/ads/AdPlayer.d.ts +33 -0
  106. package/dist/plugins/ads/AdPlayer.d.ts.map +1 -0
  107. package/dist/plugins/ads/AdTracker.d.ts +34 -0
  108. package/dist/plugins/ads/AdTracker.d.ts.map +1 -0
  109. package/dist/plugins/ads/VASTParser.d.ts +52 -0
  110. package/dist/plugins/ads/VASTParser.d.ts.map +1 -0
  111. package/dist/plugins/ads/VMAPParser.d.ts +31 -0
  112. package/dist/plugins/ads/VMAPParser.d.ts.map +1 -0
  113. package/dist/plugins/ads/types.d.ts +108 -0
  114. package/dist/plugins/ads/types.d.ts.map +1 -0
  115. package/dist/poster.png +0 -0
  116. package/dist/test-ad.xml +37 -0
  117. package/dist/test-vmap.xml +30 -0
  118. package/dist/types/analytics.d.ts +86 -0
  119. package/dist/types/analytics.d.ts.map +1 -0
  120. package/dist/types/chapters.types.d.ts +17 -0
  121. package/dist/types/chapters.types.d.ts.map +1 -0
  122. package/dist/types/config.d.ts +23 -0
  123. package/dist/types/config.d.ts.map +1 -0
  124. package/dist/types/config.types.d.ts +244 -0
  125. package/dist/types/config.types.d.ts.map +1 -0
  126. package/dist/types/controlbar.types.d.ts +5 -0
  127. package/dist/types/controlbar.types.d.ts.map +1 -0
  128. package/dist/types/drm.types.d.ts +163 -0
  129. package/dist/types/drm.types.d.ts.map +1 -0
  130. package/dist/types/events.d.ts +36 -0
  131. package/dist/types/events.d.ts.map +1 -0
  132. package/dist/types/extended.types.d.ts +85 -0
  133. package/dist/types/extended.types.d.ts.map +1 -0
  134. package/dist/types/manifest.types.d.ts +297 -0
  135. package/dist/types/manifest.types.d.ts.map +1 -0
  136. package/dist/types/playbutton.types.d.ts +2 -0
  137. package/dist/types/playbutton.types.d.ts.map +1 -0
  138. package/dist/types/player.types.d.ts +13 -0
  139. package/dist/types/player.types.d.ts.map +1 -0
  140. package/dist/types/seekbar.types.d.ts +5 -0
  141. package/dist/types/seekbar.types.d.ts.map +1 -0
  142. package/dist/types/streaming.types.d.ts +168 -0
  143. package/dist/types/streaming.types.d.ts.map +1 -0
  144. package/dist/types/timeline.types.d.ts +46 -0
  145. package/dist/types/timeline.types.d.ts.map +1 -0
  146. package/dist/types/video-events.d.ts +51 -0
  147. package/dist/types/video-events.d.ts.map +1 -0
  148. package/dist/ui/Common/BufferingIndicator.d.ts +2 -0
  149. package/dist/ui/Common/BufferingIndicator.d.ts.map +1 -0
  150. package/dist/ui/Common/ControlBar.d.ts +3 -0
  151. package/dist/ui/Common/ControlBar.d.ts.map +1 -0
  152. package/dist/ui/Common/ControlBar.responsive.d.ts +3 -0
  153. package/dist/ui/Common/ControlBar.responsive.d.ts.map +1 -0
  154. package/dist/ui/Common/Dropdown/Dropdown.d.ts +14 -0
  155. package/dist/ui/Common/Dropdown/Dropdown.d.ts.map +1 -0
  156. package/dist/ui/Common/Dropdown/DropdownItem.d.ts +11 -0
  157. package/dist/ui/Common/Dropdown/DropdownItem.d.ts.map +1 -0
  158. package/dist/ui/Common/Dropdown/DropdownPanel.d.ts +9 -0
  159. package/dist/ui/Common/Dropdown/DropdownPanel.d.ts.map +1 -0
  160. package/dist/ui/Common/Dropdown/DropdownTrigger.d.ts +7 -0
  161. package/dist/ui/Common/Dropdown/DropdownTrigger.d.ts.map +1 -0
  162. package/dist/ui/Common/LoadingSpinner.d.ts +6 -0
  163. package/dist/ui/Common/LoadingSpinner.d.ts.map +1 -0
  164. package/dist/ui/Common/Overlay.d.ts +11 -0
  165. package/dist/ui/Common/Overlay.d.ts.map +1 -0
  166. package/dist/ui/Common/SeekBar.d.ts +15 -0
  167. package/dist/ui/Common/SeekBar.d.ts.map +1 -0
  168. package/dist/ui/Common/SeekBar.responsive.d.ts +10 -0
  169. package/dist/ui/Common/SeekBar.responsive.d.ts.map +1 -0
  170. package/dist/ui/Common/TimeDisplay.d.ts +2 -0
  171. package/dist/ui/Common/TimeDisplay.d.ts.map +1 -0
  172. package/dist/ui/Common/TimelineMarker.d.ts +11 -0
  173. package/dist/ui/Common/TimelineMarker.d.ts.map +1 -0
  174. package/dist/ui/Common/Tooltip.d.ts +2 -0
  175. package/dist/ui/Common/Tooltip.d.ts.map +1 -0
  176. package/dist/ui/Common/VolumePanel.d.ts +2 -0
  177. package/dist/ui/Common/VolumePanel.d.ts.map +1 -0
  178. package/dist/ui/Controls/AudioTrackSelector.d.ts +2 -0
  179. package/dist/ui/Controls/AudioTrackSelector.d.ts.map +1 -0
  180. package/dist/ui/Controls/CaptionsButton.d.ts +2 -0
  181. package/dist/ui/Controls/CaptionsButton.d.ts.map +1 -0
  182. package/dist/ui/Controls/CastButton.d.ts +17 -0
  183. package/dist/ui/Controls/CastButton.d.ts.map +1 -0
  184. package/dist/ui/Controls/DownloadButton.d.ts +2 -0
  185. package/dist/ui/Controls/DownloadButton.d.ts.map +1 -0
  186. package/dist/ui/Controls/EpisodeSelector.d.ts +2 -0
  187. package/dist/ui/Controls/EpisodeSelector.d.ts.map +1 -0
  188. package/dist/ui/Controls/FullscreenButton.d.ts +5 -0
  189. package/dist/ui/Controls/FullscreenButton.d.ts.map +1 -0
  190. package/dist/ui/Controls/JumpToLiveButton.d.ts +2 -0
  191. package/dist/ui/Controls/JumpToLiveButton.d.ts.map +1 -0
  192. package/dist/ui/Controls/LiveLatencyDisplay.d.ts +2 -0
  193. package/dist/ui/Controls/LiveLatencyDisplay.d.ts.map +1 -0
  194. package/dist/ui/Controls/MuteButton.d.ts +5 -0
  195. package/dist/ui/Controls/MuteButton.d.ts.map +1 -0
  196. package/dist/ui/Controls/NextEpisodeButton.d.ts +7 -0
  197. package/dist/ui/Controls/NextEpisodeButton.d.ts.map +1 -0
  198. package/dist/ui/Controls/PipButton.d.ts +5 -0
  199. package/dist/ui/Controls/PipButton.d.ts.map +1 -0
  200. package/dist/ui/Controls/PlayButton.d.ts +5 -0
  201. package/dist/ui/Controls/PlayButton.d.ts.map +1 -0
  202. package/dist/ui/Controls/PlaybackSpeedSelector.d.ts +2 -0
  203. package/dist/ui/Controls/PlaybackSpeedSelector.d.ts.map +1 -0
  204. package/dist/ui/Controls/PlaylistButton.d.ts +2 -0
  205. package/dist/ui/Controls/PlaylistButton.d.ts.map +1 -0
  206. package/dist/ui/Controls/QualitySelector.d.ts +2 -0
  207. package/dist/ui/Controls/QualitySelector.d.ts.map +1 -0
  208. package/dist/ui/Controls/SeekBar.d.ts +2 -0
  209. package/dist/ui/Controls/SeekBar.d.ts.map +1 -0
  210. package/dist/ui/Controls/SeekBarProgress.d.ts +2 -0
  211. package/dist/ui/Controls/SeekBarProgress.d.ts.map +1 -0
  212. package/dist/ui/Controls/SettingsButton.d.ts +2 -0
  213. package/dist/ui/Controls/SettingsButton.d.ts.map +1 -0
  214. package/dist/ui/Controls/SettingsPanel.d.ts +17 -0
  215. package/dist/ui/Controls/SettingsPanel.d.ts.map +1 -0
  216. package/dist/ui/Controls/SkipBackwardButton.d.ts +6 -0
  217. package/dist/ui/Controls/SkipBackwardButton.d.ts.map +1 -0
  218. package/dist/ui/Controls/SkipForwardButton.d.ts +6 -0
  219. package/dist/ui/Controls/SkipForwardButton.d.ts.map +1 -0
  220. package/dist/ui/Controls/SkipIntroButton.d.ts +7 -0
  221. package/dist/ui/Controls/SkipIntroButton.d.ts.map +1 -0
  222. package/dist/ui/Controls/SubtitleOverlay.d.ts +6 -0
  223. package/dist/ui/Controls/SubtitleOverlay.d.ts.map +1 -0
  224. package/dist/ui/Controls/SubtitlesMenu.d.ts +2 -0
  225. package/dist/ui/Controls/SubtitlesMenu.d.ts.map +1 -0
  226. package/dist/ui/Controls/TheaterModeButton.d.ts +2 -0
  227. package/dist/ui/Controls/TheaterModeButton.d.ts.map +1 -0
  228. package/dist/ui/Controls/TimeDisplay.d.ts +5 -0
  229. package/dist/ui/Controls/TimeDisplay.d.ts.map +1 -0
  230. package/dist/ui/Controls/VolumeControl.d.ts +2 -0
  231. package/dist/ui/Controls/VolumeControl.d.ts.map +1 -0
  232. package/dist/ui/Controls/VolumeSlider.d.ts +2 -0
  233. package/dist/ui/Controls/VolumeSlider.d.ts.map +1 -0
  234. package/dist/ui/Overlay/ContextMenu.d.ts +17 -0
  235. package/dist/ui/Overlay/ContextMenu.d.ts.map +1 -0
  236. package/dist/ui/Overlay/EndCard.d.ts +11 -0
  237. package/dist/ui/Overlay/EndCard.d.ts.map +1 -0
  238. package/dist/ui/Overlay/ErrorOverlay.d.ts +13 -0
  239. package/dist/ui/Overlay/ErrorOverlay.d.ts.map +1 -0
  240. package/dist/ui/Overlay/GestureHintOverlay.d.ts +14 -0
  241. package/dist/ui/Overlay/GestureHintOverlay.d.ts.map +1 -0
  242. package/dist/ui/Overlay/KeyboardShortcutsOverlay.d.ts +7 -0
  243. package/dist/ui/Overlay/KeyboardShortcutsOverlay.d.ts.map +1 -0
  244. package/dist/ui/Overlay/VideoOverlay.d.ts +9 -0
  245. package/dist/ui/Overlay/VideoOverlay.d.ts.map +1 -0
  246. package/dist/ui/Player.d.ts +19 -0
  247. package/dist/ui/Player.d.ts.map +1 -0
  248. package/dist/vite.svg +1 -0
  249. package/package.json +71 -0
@@ -0,0 +1,168 @@
1
+ import { QualityLevel } from '../../types/streaming.types';
2
+ import { PlayerConfig } from '../../types/config.types';
3
+ export interface HlsEngineConfig {
4
+ /** Kaynak yüklendiğinde otomatik başlat. Varsayılan: true */
5
+ autoStart?: boolean;
6
+ /** Buffer'da tutulacak maksimum saniye (önde). Varsayılan: 30 */
7
+ maxBufferAhead?: number;
8
+ /** Buffer'da tutulacak maksimum saniye (arkada). Varsayılan: 10 */
9
+ maxBufferBehind?: number;
10
+ /** Düşük gecikme modu. Varsayılan: false */
11
+ lowLatency?: boolean;
12
+ /** Debug log'larını aç. Varsayılan: false */
13
+ debug?: boolean;
14
+ /** DRM konfigürasyonu — Widevine lisans sunucusu bilgileri */
15
+ drmConfig?: PlayerConfig['drm'];
16
+ }
17
+ /** HlsEngine'in emit ettiği olayların tip eşlemesi */
18
+ interface HlsEngineEventMap {
19
+ 'quality-changed': {
20
+ quality: QualityLevel;
21
+ };
22
+ 'audio-track-changed': {
23
+ trackId: string;
24
+ };
25
+ 'subtitle-track-changed': {
26
+ language: string | null;
27
+ };
28
+ 'error': {
29
+ error: {
30
+ code: string;
31
+ message: string;
32
+ fatal: boolean;
33
+ details?: unknown;
34
+ };
35
+ };
36
+ 'state-change': {
37
+ state: 'buffering' | 'playing' | 'paused' | 'idle';
38
+ };
39
+ }
40
+ type HlsEngineListener<K extends keyof HlsEngineEventMap> = (data: HlsEngineEventMap[K]) => void;
41
+ export declare class HlsEngine {
42
+ private hls;
43
+ private readonly videoElement;
44
+ private readonly config;
45
+ private readonly listeners;
46
+ private destroyed;
47
+ private activeSubtitleLanguage;
48
+ private readonly onPlaying;
49
+ private readonly onPause;
50
+ private readonly onWaiting;
51
+ constructor(videoElement: HTMLVideoElement, config?: HlsEngineConfig);
52
+ /**
53
+ * HLS manifestini yükle ve oynatmayı hazırla.
54
+ * Safari'de native HLS varsa doğrudan video.src üzerinden çalışır.
55
+ */
56
+ load(url: string): Promise<void>;
57
+ private setupHlsListeners;
58
+ /** Video element native olaylarına abone ol */
59
+ private attachVideoListeners;
60
+ /** Video element native olaylarından ayrıl */
61
+ private detachVideoListeners;
62
+ /**
63
+ * Tüm kalite seviyelerini döndür. İlk eleman her zaman "Auto" seviyesidir.
64
+ */
65
+ getQualities(): QualityLevel[];
66
+ /**
67
+ * Aktif kalite seviyesini döndür.
68
+ * ABR aktifse "Auto" döner.
69
+ */
70
+ getCurrentQuality(): QualityLevel | null;
71
+ /**
72
+ * Manuel kalite seçimi.
73
+ * qualityId: level index'i string olarak ("0", "1", "2" gibi).
74
+ * "auto" geçilirse ABR aktifleşir.
75
+ */
76
+ setQuality(qualityId: string): void;
77
+ /**
78
+ * ABR (Adaptive Bitrate) modunu etkinleştir.
79
+ */
80
+ enableAutoQuality(): void;
81
+ /**
82
+ * Manifest'teki tüm ses izlerini döndür.
83
+ */
84
+ getAudioTracks(): Array<{
85
+ id: string;
86
+ label: string;
87
+ language: string;
88
+ }>;
89
+ /**
90
+ * Aktif ses izi ID'sini döndür.
91
+ */
92
+ getActiveAudioTrackId(): string;
93
+ /**
94
+ * Ses izini değiştir (dublaj seçimi).
95
+ * trackId: ses izi index'i string olarak.
96
+ */
97
+ setAudioTrack(trackId: string): void;
98
+ /**
99
+ * Manifest'teki tüm altyazı izlerini döndür.
100
+ */
101
+ getSubtitleTracks(): Array<{
102
+ language: string;
103
+ label: string;
104
+ url: string;
105
+ }>;
106
+ /**
107
+ * Altyazı izini değiştir. null → altyazıyı kapat.
108
+ */
109
+ setSubtitleTrack(language: string | null): Promise<void>;
110
+ /**
111
+ * Aktif altyazı dilini döndür (veya null).
112
+ */
113
+ getActiveSubtitleLanguage(): string | null;
114
+ /**
115
+ * CEA-608/708 kapalı altyazı overlay bağla.
116
+ * hls.js bu altyazıları video.textTracks üzerinden yönetir.
117
+ * enableCEA708Captions constructor config'de aktif — ekstra işlem gerekmez.
118
+ */
119
+ attachCaptions(_container: HTMLElement): void;
120
+ /**
121
+ * WebVTT altyazı overlay bağla.
122
+ * hls.js manifest subtitle'larını video.textTracks olarak expose eder.
123
+ */
124
+ attachSubtitles(_container: HTMLElement): void;
125
+ /**
126
+ * Stream canlı (LIVE) mı?
127
+ */
128
+ isLiveStream(): boolean;
129
+ /**
130
+ * Live edge zamanını saniye cinsinden döndür (seekable range sonu).
131
+ */
132
+ getLiveEdgeTime(): number;
133
+ /**
134
+ * Canlı yayın kenarına atla (en düşük gecikme).
135
+ */
136
+ seekToLiveEdge(): void;
137
+ /**
138
+ * DVR aralığını döndür. VOD veya DVR yoksa null.
139
+ */
140
+ getDVRRange(): {
141
+ start: number;
142
+ end: number;
143
+ } | null;
144
+ on<K extends keyof HlsEngineEventMap>(event: K, callback: HlsEngineListener<K>): void;
145
+ off<K extends keyof HlsEngineEventMap>(event: K, callback: HlsEngineListener<K>): void;
146
+ private emit;
147
+ /** hls.js Level → QualityLevel dönüşümü */
148
+ private mapLevelToQuality;
149
+ private qualityFromLevelIndex;
150
+ /**
151
+ * Real-time player stats for "Stats for Nerds" panel.
152
+ */
153
+ getStats(): {
154
+ bandwidth: number;
155
+ bufferHealth: number;
156
+ droppedFrames: number;
157
+ totalFrames: number;
158
+ codec: string;
159
+ resolution: string;
160
+ segmentUrl: string;
161
+ };
162
+ /**
163
+ * HLS engine'i tamamen temizle. Tüm olayları ve referansları kaldır.
164
+ */
165
+ destroy(): Promise<void>;
166
+ }
167
+ export {};
168
+ //# sourceMappingURL=HlsEngine.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HlsEngine.d.ts","sourceRoot":"","sources":["../../../src/core/streaming/HlsEngine.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,88 @@
1
+ /**
2
+ * SubtitleManager
3
+ *
4
+ * Handles WebVTT subtitle track loading, scheduling, and DOM rendering.
5
+ *
6
+ * Features:
7
+ * - Fetches .vtt files via fetch() with optional auth headers
8
+ * - Parses cues using WebVttParser
9
+ * - Creates an overlay <div> positioned over the video element
10
+ * - Shows/hides cues based on video currentTime using requestAnimationFrame
11
+ * - Supports multiple tracks + track switching
12
+ * - Strip HTML-like tags or allow safe passthrough
13
+ *
14
+ * Usage:
15
+ * const subtitles = new SubtitleManager(videoElement, container);
16
+ * await subtitles.loadTrack({ url: 'subs/en.vtt', label: 'English', language: 'en' });
17
+ * subtitles.selectTrack('en');
18
+ * subtitles.enable();
19
+ *
20
+ * // On destroy:
21
+ * subtitles.destroy();
22
+ */
23
+ export interface SubtitleTrackInfo {
24
+ /** BCP-47 language code (e.g. 'en', 'tr') — used as track ID */
25
+ language: string;
26
+ /** Human-readable label (e.g. 'English', 'Türkçe') */
27
+ label: string;
28
+ /** Absolute URL to the .vtt file */
29
+ url: string;
30
+ /** Optional HTTP headers (e.g. Authorization) */
31
+ headers?: Record<string, string>;
32
+ }
33
+ export declare class SubtitleManager {
34
+ private videoElement;
35
+ private container;
36
+ private parser;
37
+ private tracks;
38
+ private activeLanguage;
39
+ private enabled;
40
+ /** The overlay <div> rendered on top of the video */
41
+ private overlay;
42
+ /** Currently displayed cue element */
43
+ private cueElement;
44
+ /** requestAnimationFrame handle */
45
+ private rafHandle;
46
+ /** Index into active cues for fast lookup */
47
+ private lastCueIndex;
48
+ /**
49
+ * @param videoElement The <video> element to synchronise with
50
+ * @param container A positioned container element that wraps the video
51
+ * (must have position: relative/absolute so overlay is positioned correctly)
52
+ */
53
+ constructor(videoElement: HTMLVideoElement, container: HTMLElement);
54
+ /**
55
+ * Fetch and parse a WebVTT track.
56
+ * Can be called multiple times for different languages.
57
+ */
58
+ loadTrack(info: SubtitleTrackInfo): Promise<void>;
59
+ /**
60
+ * Load a track from pre-fetched and concatenated WebVTT text (no network fetch).
61
+ * Used for HLS subtitle playlists where segments are fetched externally.
62
+ */
63
+ loadTrackFromText(info: SubtitleTrackInfo, vttText: string): void;
64
+ /**
65
+ * Select the active subtitle track by language code.
66
+ * Pass null to deactivate subtitles (same as disable()).
67
+ */
68
+ selectTrack(language: string | null): void;
69
+ /** Start rendering subtitles (idempotent). */
70
+ enable(): void;
71
+ /** Stop rendering subtitles (idempotent). Hides the overlay. */
72
+ disable(): void;
73
+ /** Get all loaded track metadata (for a track selector UI). */
74
+ getTracks(): SubtitleTrackInfo[];
75
+ /** Get the currently selected language code. */
76
+ getActiveLanguage(): string | null;
77
+ /** Clean up DOM elements and cancel animation loop. */
78
+ destroy(): void;
79
+ private ensureOverlay;
80
+ private startRaf;
81
+ private stopRaf;
82
+ private updateCue;
83
+ private findActiveCue;
84
+ private showCue;
85
+ private clearCue;
86
+ private fetchVtt;
87
+ }
88
+ //# sourceMappingURL=SubtitleManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SubtitleManager.d.ts","sourceRoot":"","sources":["../../../src/core/streaming/SubtitleManager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAOH,MAAM,WAAW,iBAAiB;IAChC,gEAAgE;IAChE,QAAQ,EAAE,MAAM,CAAC;IACjB,sDAAsD;IACtD,KAAK,EAAE,MAAM,CAAC;IACd,oCAAoC;IACpC,GAAG,EAAE,MAAM,CAAC;IACZ,iDAAiD;IACjD,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC;AASD,qBAAa,eAAe;IAC1B,OAAO,CAAC,YAAY,CAAmB;IACvC,OAAO,CAAC,SAAS,CAAc;IAE/B,OAAO,CAAC,MAAM,CAAsB;IACpC,OAAO,CAAC,MAAM,CAAuC;IACrD,OAAO,CAAC,cAAc,CAAuB;IAC7C,OAAO,CAAC,OAAO,CAAS;IAExB,qDAAqD;IACrD,OAAO,CAAC,OAAO,CAA+B;IAC9C,sCAAsC;IACtC,OAAO,CAAC,UAAU,CAA+B;IACjD,mCAAmC;IACnC,OAAO,CAAC,SAAS,CAAuB;IACxC,6CAA6C;IAC7C,OAAO,CAAC,YAAY,CAAK;IAEzB;;;;OAIG;gBACS,YAAY,EAAE,gBAAgB,EAAE,SAAS,EAAE,WAAW;IAOlE;;;OAGG;IACG,SAAS,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IAUvD;;;OAGG;IACH,iBAAiB,CAAC,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;IAOjE;;;OAGG;IACH,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAY1C,8CAA8C;IAC9C,MAAM,IAAI,IAAI;IAQd,gEAAgE;IAChE,OAAO,IAAI,IAAI;IAWf,+DAA+D;IAC/D,SAAS,IAAI,iBAAiB,EAAE;IAIhC,gDAAgD;IAChD,iBAAiB,IAAI,MAAM,GAAG,IAAI;IAIlC,uDAAuD;IACvD,OAAO,IAAI,IAAI;IAef,OAAO,CAAC,aAAa;IAkBrB,OAAO,CAAC,QAAQ;IAUhB,OAAO,CAAC,OAAO;IAOf,OAAO,CAAC,SAAS;IA4BjB,OAAO,CAAC,aAAa;IAmBrB,OAAO,CAAC,OAAO;IAqCf,OAAO,CAAC,QAAQ;YAUF,QAAQ;CA4BvB"}
@@ -0,0 +1,44 @@
1
+ /**
2
+ * ThumbnailManager — WebVTT storyboard thumbnail loader.
3
+ *
4
+ * Accepts a thumbnail VTT URL where each cue maps a time range to
5
+ * an image URL (optionally with a #xywh media fragment for sprite sheets).
6
+ *
7
+ * VTT format example:
8
+ * WEBVTT
9
+ *
10
+ * 00:00:00.000 --> 00:00:05.000
11
+ * https://cdn.example.com/thumbs.jpg#xywh=0,0,160,90
12
+ *
13
+ * 00:00:05.000 --> 00:00:10.000
14
+ * https://cdn.example.com/thumbs.jpg#xywh=160,0,160,90
15
+ */
16
+ export interface ThumbnailCue {
17
+ startTime: number;
18
+ endTime: number;
19
+ /** Full image URL (without fragment) */
20
+ url: string;
21
+ /** Sprite x offset (0 when whole image) */
22
+ x: number;
23
+ /** Sprite y offset (0 when whole image) */
24
+ y: number;
25
+ /** Sprite/image width (0 = full image width) */
26
+ w: number;
27
+ /** Sprite/image height (0 = full image height) */
28
+ h: number;
29
+ }
30
+ export declare class ThumbnailManager {
31
+ private cues;
32
+ private loaded;
33
+ /** Fetch and parse a WebVTT thumbnail track. */
34
+ load(vttUrl: string): Promise<void>;
35
+ /** Return the thumbnail cue covering the given time, or null. */
36
+ getThumbnailAt(time: number): ThumbnailCue | null;
37
+ isLoaded(): boolean;
38
+ destroy(): void;
39
+ private parseVtt;
40
+ private parseCueLine;
41
+ private resolveUrl;
42
+ private parseTime;
43
+ }
44
+ //# sourceMappingURL=ThumbnailManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ThumbnailManager.d.ts","sourceRoot":"","sources":["../../../src/core/streaming/ThumbnailManager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,wCAAwC;IACxC,GAAG,EAAE,MAAM,CAAC;IACZ,2CAA2C;IAC3C,CAAC,EAAE,MAAM,CAAC;IACV,2CAA2C;IAC3C,CAAC,EAAE,MAAM,CAAC;IACV,gDAAgD;IAChD,CAAC,EAAE,MAAM,CAAC;IACV,kDAAkD;IAClD,CAAC,EAAE,MAAM,CAAC;CACX;AAED,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,IAAI,CAAsB;IAClC,OAAO,CAAC,MAAM,CAAS;IAEvB,gDAAgD;IAC1C,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAYzC,iEAAiE;IACjE,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI;IAkBjD,QAAQ,IAAI,OAAO;IAInB,OAAO,IAAI,IAAI;IAOf,OAAO,CAAC,QAAQ;IAiChB,OAAO,CAAC,YAAY;IAuBpB,OAAO,CAAC,UAAU;IAWlB,OAAO,CAAC,SAAS;CAMlB"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Streaming Module Exports
3
+ *
4
+ * HLS: hls.js tabanlı HlsEngine
5
+ * DASH: dashjs tabanlı DashEngine
6
+ */
7
+ export { HlsEngine } from './HlsEngine';
8
+ export type { HlsEngineConfig } from './HlsEngine';
9
+ export { DashEngine } from './DashEngine';
10
+ export type { DashEngineConfig } from './DashEngine';
11
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/streaming/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,YAAY,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEnD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,YAAY,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC"}
@@ -0,0 +1,56 @@
1
+ /**
2
+ * WebVTT Parser
3
+ *
4
+ * Parses WebVTT (.vtt) files and extracts cue timing + text.
5
+ *
6
+ * WebVTT spec: https://www.w3.org/TR/webvtt1/
7
+ *
8
+ * Supported:
9
+ * - WEBVTT header (with optional BOM)
10
+ * - Cue identifiers (optional)
11
+ * - Cue timings: HH:MM:SS.mmm --> HH:MM:SS.mmm [cue-settings]
12
+ * - Multi-line cue text
13
+ * - NOTE blocks (skipped)
14
+ * - REGION blocks (skipped)
15
+ * - STYLE blocks (skipped)
16
+ *
17
+ * Not supported (out of scope):
18
+ * - <ruby>, <rt> tags
19
+ * - Chapter metadata
20
+ */
21
+ export interface VttCue {
22
+ /** Optional identifier (e.g. "1", "intro") */
23
+ id: string;
24
+ /** Cue start time in seconds */
25
+ startTime: number;
26
+ /** Cue end time in seconds */
27
+ endTime: number;
28
+ /** Raw cue text (may contain HTML-like tags such as <b>, <i>, <c>) */
29
+ text: string;
30
+ /** Cue settings string (e.g. "line:10% position:50%"), if present */
31
+ settings: string;
32
+ }
33
+ export interface VttTrack {
34
+ cues: VttCue[];
35
+ }
36
+ export declare class WebVttParser {
37
+ /**
38
+ * Parse a WebVTT string and return all cues sorted by startTime.
39
+ *
40
+ * @param vttText Full content of a .vtt file (UTF-8 string)
41
+ * @throws Error if the file does not start with the WEBVTT header
42
+ */
43
+ parse(vttText: string): VttTrack;
44
+ /**
45
+ * Strip basic WebVTT markup tags (e.g. <b>, <i>, <u>, <c>, timestamp tags).
46
+ * Returns plain text suitable for display.
47
+ */
48
+ stripTags(text: string): string;
49
+ private parseTiming;
50
+ /**
51
+ * Parse a WebVTT timestamp into seconds.
52
+ * Accepts: HH:MM:SS.mmm or MM:SS.mmm
53
+ */
54
+ private parseTimestamp;
55
+ }
56
+ //# sourceMappingURL=WebVttParser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WebVttParser.d.ts","sourceRoot":"","sources":["../../../../src/core/streaming/parsers/WebVttParser.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAIH,MAAM,WAAW,MAAM;IACrB,8CAA8C;IAC9C,EAAE,EAAE,MAAM,CAAC;IACX,gCAAgC;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,8BAA8B;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,sEAAsE;IACtE,IAAI,EAAE,MAAM,CAAC;IACb,qEAAqE;IACrE,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB;AAID,qBAAa,YAAY;IACvB;;;;;OAKG;IACH,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,QAAQ;IA+EhC;;;OAGG;IACH,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAM/B,OAAO,CAAC,WAAW;IAqBnB;;;OAGG;IACH,OAAO,CAAC,cAAc;CAYvB"}
@@ -0,0 +1,4 @@
1
+ export declare function useClickOutside(ref: {
2
+ current: HTMLElement | null;
3
+ }, handler: () => void, enabled?: boolean): void;
4
+ //# sourceMappingURL=useClickOutside.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useClickOutside.d.ts","sourceRoot":"","sources":["../../src/hooks/useClickOutside.ts"],"names":[],"mappings":"AACA,wBAAgB,eAAe,CAC7B,GAAG,EAAE;IAAE,OAAO,EAAE,WAAW,GAAG,IAAI,CAAA;CAAE,EACpC,OAAO,EAAE,MAAM,IAAI,EACnB,OAAO,GAAE,OAAc,QAyBxB"}
@@ -0,0 +1,20 @@
1
+ import { PlayerCore } from '../core/PlayerCore';
2
+ interface UseKeyboardControlsOptions {
3
+ player: PlayerCore | PlayerCore | null;
4
+ seekStep?: number;
5
+ enabled?: boolean;
6
+ onShowShortcuts?: () => void;
7
+ }
8
+ /**
9
+ * Klavye kontrollerini yöneten hook
10
+ * Space: Oynat/Duraklat
11
+ * ArrowLeft: Geri sar
12
+ * ArrowRight: İleri sar
13
+ * ArrowUp: Ses arttır
14
+ * ArrowDown: Ses azalt
15
+ * M: Sessiz aç/kapat
16
+ * F: Tam ekran
17
+ */
18
+ export declare function useKeyboardControls({ player, seekStep, enabled, onShowShortcuts, }: UseKeyboardControlsOptions): void;
19
+ export {};
20
+ //# sourceMappingURL=useKeyboardControls.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useKeyboardControls.d.ts","sourceRoot":"","sources":["../../src/hooks/useKeyboardControls.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAGhD,UAAU,0BAA0B;IAClC,MAAM,EAAE,UAAU,GAAG,UAAU,GAAG,IAAI,CAAC;IACvC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,IAAI,CAAC;CAC9B;AAED;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CAAC,EAClC,MAAM,EACN,QAAa,EACb,OAAc,EACd,eAAe,GAChB,EAAE,0BAA0B,QA8F5B"}
@@ -0,0 +1,17 @@
1
+ import { PlayerCore } from '../core/PlayerCore';
2
+ interface GestureHint {
3
+ type: 'seek-forward' | 'seek-backward' | 'volume';
4
+ value: string;
5
+ }
6
+ interface UseMobileGesturesOptions {
7
+ player: PlayerCore | null;
8
+ skipSec?: number;
9
+ }
10
+ export declare function useMobileGestures({ player, skipSec }: UseMobileGesturesOptions): {
11
+ onTouchStart: (e: React.TouchEvent<HTMLDivElement>) => void;
12
+ onTouchMove: (e: React.TouchEvent<HTMLDivElement>) => void;
13
+ onTouchEnd: () => void;
14
+ gestureHint: GestureHint | null;
15
+ };
16
+ export {};
17
+ //# sourceMappingURL=useMobileGestures.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useMobileGestures.d.ts","sourceRoot":"","sources":["../../src/hooks/useMobileGestures.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAErD,UAAU,WAAW;IACnB,IAAI,EAAE,cAAc,GAAG,eAAe,GAAG,QAAQ,CAAC;IAClD,KAAK,EAAE,MAAM,CAAC;CACf;AAED,UAAU,wBAAwB;IAChC,MAAM,EAAE,UAAU,GAAG,IAAI,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,wBAAgB,iBAAiB,CAAC,EAAE,MAAM,EAAE,OAAY,EAAE,EAAE,wBAAwB;sBAmB7C,KAAK,CAAC,UAAU,CAAC,cAAc,CAAC;qBAkCjC,KAAK,CAAC,UAAU,CAAC,cAAc,CAAC;;;EAerE"}
@@ -0,0 +1,10 @@
1
+ interface UseMouseActivityOptions {
2
+ timeout?: number;
3
+ initialVisible?: boolean;
4
+ }
5
+ export declare function useMouseActivity({ timeout, initialVisible }?: UseMouseActivityOptions): {
6
+ isActive: boolean;
7
+ setIsActive: import('react').Dispatch<import('react').SetStateAction<boolean>>;
8
+ };
9
+ export {};
10
+ //# sourceMappingURL=useMouseActivity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useMouseActivity.d.ts","sourceRoot":"","sources":["../../src/hooks/useMouseActivity.ts"],"names":[],"mappings":"AAEA,UAAU,uBAAuB;IAC/B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAcD,wBAAgB,gBAAgB,CAAC,EAC/B,OAAc,EACd,cAAqB,EACtB,GAAE,uBAA4B;;;EAkD9B"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Get player instance
3
+ * Use this when you need access to the full PlayerCore instance
4
+ */
5
+ export declare function usePlayer(): import('..').PlayerCore;
6
+ //# sourceMappingURL=usePlayer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usePlayer.d.ts","sourceRoot":"","sources":["../../src/hooks/usePlayer.ts"],"names":[],"mappings":"AAGA;;;GAGG;AACH,wBAAgB,SAAS,4BAQxB"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Get player methods (stable reference, won't cause re-renders)
3
+ * Use this when you only need to call player methods
4
+ */
5
+ export declare function usePlayerMethods(): import('../context/PlayerMethodsContext').PlayerMethods;
6
+ //# sourceMappingURL=usePlayerMethods.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usePlayerMethods.d.ts","sourceRoot":"","sources":["../../src/hooks/usePlayerMethods.ts"],"names":[],"mappings":"AAGA;;;GAGG;AACH,wBAAgB,gBAAgB,4DAQ/B"}
@@ -0,0 +1,11 @@
1
+ import { PlayerState } from '../types/config';
2
+ /**
3
+ * Get player state (reactive)
4
+ * Component will re-render when state changes
5
+ *
6
+ * @param selector - Optional selector to get only specific state values
7
+ * @returns Player state or selected value
8
+ */
9
+ export declare function usePlayerState(): PlayerState;
10
+ export declare function usePlayerState<T>(selector: (state: PlayerState) => T): T;
11
+ //# sourceMappingURL=usePlayerState.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usePlayerState.d.ts","sourceRoot":"","sources":["../../src/hooks/usePlayerState.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAEnD;;;;;;GAMG;AACH,wBAAgB,cAAc,IAAI,WAAW,CAAC;AAC9C,wBAAgB,cAAc,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,CAAC,GAAG,CAAC,CAAC"}
@@ -0,0 +1,99 @@
1
+ import { AllPlayerEvents, EventCallback } from './types/events';
2
+ import { VanillaPlayerConfig, PlayerState } from './types/config';
3
+ export { default as Player } from './ui/Player';
4
+ export { default } from './ui/Player';
5
+ export { PlayerCore } from './core/PlayerCore';
6
+ export { PlayronEventEmitter } from './core/PlayronEventEmitter';
7
+ export { EventBus, eventBus } from './core/EventBus';
8
+ export { StreamDetector, streamDetector } from './core/adaptive/StreamDetector';
9
+ export type { StreamType, StreamInfo } from './core/adaptive/StreamDetector';
10
+ export { default as ControlBar } from './ui/Common/ControlBar';
11
+ export { default as PlayButton } from './ui/Controls/PlayButton';
12
+ export { default as MuteButton } from './ui/Controls/MuteButton';
13
+ export { default as FullscreenButton } from './ui/Controls/FullscreenButton';
14
+ export { default as PipButton } from './ui/Controls/PipButton';
15
+ export { default as TheaterModeButton } from './ui/Controls/TheaterModeButton';
16
+ export { default as SettingsButton } from './ui/Controls/SettingsButton';
17
+ export { default as TimeDisplay } from './ui/Controls/TimeDisplay';
18
+ export { default as JumpToLiveButton } from './ui/Controls/JumpToLiveButton';
19
+ export { default as LiveLatencyDisplay } from './ui/Controls/LiveLatencyDisplay';
20
+ export { default as SkipIntroButton } from './ui/Controls/SkipIntroButton';
21
+ export { default as SeekBar } from './ui/Common/SeekBar';
22
+ export { default as SkipBackwardButton } from './ui/Controls/SkipBackwardButton';
23
+ export { default as SkipForwardButton } from './ui/Controls/SkipForwardButton';
24
+ export { default as VolumeControl } from './ui/Controls/VolumeControl';
25
+ export { default as PlaybackSpeedSelector } from './ui/Controls/PlaybackSpeedSelector';
26
+ export { default as SettingsPanel } from './ui/Controls/SettingsPanel';
27
+ export { ControlsVisibilityContext } from './ui/Player';
28
+ export { default as EndCard } from './ui/Overlay/EndCard';
29
+ export { default as KeyboardShortcutsOverlay } from './ui/Overlay/KeyboardShortcutsOverlay';
30
+ export { default as ContextMenu } from './ui/Overlay/ContextMenu';
31
+ export type { ContextMenuAction } from './ui/Overlay/ContextMenu';
32
+ export { default as GestureHintOverlay } from './ui/Overlay/GestureHintOverlay';
33
+ export { ThumbnailManager } from './core/streaming/ThumbnailManager';
34
+ export type { ThumbnailCue } from './core/streaming/ThumbnailManager';
35
+ export { StallDetector } from './core/StallDetector';
36
+ export type { StallDetectorOptions } from './core/StallDetector';
37
+ export type { PlayerConfig } from './types/config.types';
38
+ export type { VanillaPlayerConfig, PlayerState } from './types/config';
39
+ export type { PlayerProps } from './types/player.types';
40
+ export type { ControlBarProps } from './types/controlbar.types';
41
+ export type { PlayerEvent, PlayEvent, PauseEvent, MuteEvent, VolumeChangeEvent, AllPlayerEvents, EventCallback } from './types/events';
42
+ export type { VirtusEventMap, VirtusEventType } from './core/PlayronEventEmitter';
43
+ export { VideoEventType, MediaErrorCode, isVideoEventType } from './types/video-events';
44
+ export type { VideoEventType as VideoEventTypeType, MediaErrorCode as MediaErrorCodeType } from './types/video-events';
45
+ export type { TimelineEvent } from './types/timeline.types';
46
+ export type { Chapter, IntroOutro } from './types/chapters.types';
47
+ export type { AdConfig, Ad, AdPosition } from './plugins/ads/types';
48
+ export { usePlayer } from './hooks/usePlayer';
49
+ export { usePlayerState } from './hooks/usePlayerState';
50
+ export { usePlayerMethods } from './hooks/usePlayerMethods';
51
+ export { useMobileGestures } from './hooks/useMobileGestures';
52
+ export { PlayerProvider } from './context/PlayerProvider';
53
+ declare class Playron {
54
+ private playerCore;
55
+ private videoElement;
56
+ private container;
57
+ constructor(videoElementOrConfig: HTMLVideoElement | VanillaPlayerConfig);
58
+ /**
59
+ * Mevcut video element ile başlat
60
+ */
61
+ private initWithElement;
62
+ /**
63
+ * Konfigürasyon ile kendi player'ı oluştur
64
+ */
65
+ private initWithConfig;
66
+ on<T extends AllPlayerEvents>(eventType: T['type'], callback: EventCallback<T>): void;
67
+ off<T extends AllPlayerEvents>(eventType: T['type'], callback: EventCallback<T>): void;
68
+ play(): Promise<void>;
69
+ pause(): void;
70
+ toggleMute(): void;
71
+ setVolume(volume: number): void;
72
+ getState(): PlayerState | null;
73
+ /**
74
+ * Video source'u değiştir (auto-detects stream type)
75
+ */
76
+ setSource(src: string): Promise<void>;
77
+ /**
78
+ * Belirli bir zamana git
79
+ */
80
+ seekTo(time: number): void;
81
+ /**
82
+ * Oynatma hızını ayarla
83
+ */
84
+ setPlaybackRate(rate: number): void;
85
+ /**
86
+ * Video poster'ını ayarla
87
+ */
88
+ setPoster(poster: string): void;
89
+ /**
90
+ * Video boyutlarını ayarla
91
+ */
92
+ setDimensions(width: number | string, height: number | string): void;
93
+ /**
94
+ * Player'ı temizle
95
+ */
96
+ destroy(): void;
97
+ }
98
+ export { Playron };
99
+ //# 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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"}
@@ -0,0 +1,9 @@
1
+ import { FunctionComponent } from 'react';
2
+ import { PlayerMode } from '../types/player.types';
3
+ interface ControlsContainerProps {
4
+ /** Optional override — if omitted, live/VOD is auto-detected from stream state */
5
+ mode?: PlayerMode;
6
+ }
7
+ declare const ControlsContainer: FunctionComponent<ControlsContainerProps>;
8
+ export default ControlsContainer;
9
+ //# sourceMappingURL=ControlsContainer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ControlsContainer.d.ts","sourceRoot":"","sources":["../../src/layout/ControlsContainer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAU/C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAGxD,UAAU,sBAAsB;IAC9B,kFAAkF;IAClF,IAAI,CAAC,EAAE,UAAU,CAAC;CACnB;AAED,QAAA,MAAM,iBAAiB,EAAE,iBAAiB,CAAC,sBAAsB,CAuBhE,CAAC;AAEF,eAAe,iBAAiB,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { FunctionComponent } from 'react';
2
+ import { PlayerMode } from '../types/player.types';
3
+ interface ControlsContainerProps {
4
+ mode?: PlayerMode;
5
+ }
6
+ declare const ControlsContainerResponsive: FunctionComponent<ControlsContainerProps>;
7
+ export default ControlsContainerResponsive;
8
+ //# sourceMappingURL=ControlsContainer.responsive.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ControlsContainer.responsive.d.ts","sourceRoot":"","sources":["../../src/layout/ControlsContainer.responsive.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAe/C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAExD,UAAU,sBAAsB;IAC9B,IAAI,CAAC,EAAE,UAAU,CAAC;CACnB;AAED,QAAA,MAAM,2BAA2B,EAAE,iBAAiB,CAAC,sBAAsB,CAgJ1E,CAAC;AAEF,eAAe,2BAA2B,CAAC"}