@therealtinhtute/baroiplayer 1.0.8 → 1.2.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 (1004) hide show
  1. package/LICENSE +2 -2
  2. package/README.md +15 -15
  3. package/dist/context/media.js +2 -0
  4. package/dist/context/media.js.map +1 -0
  5. package/dist/context/media.mjs +15 -0
  6. package/dist/context/media.mjs.map +1 -0
  7. package/dist/context/store.js +2 -0
  8. package/dist/context/store.js.map +1 -0
  9. package/dist/context/store.mjs +5 -0
  10. package/dist/context/store.mjs.map +1 -0
  11. package/dist/context-BYwDoSRX.js +1172 -0
  12. package/dist/context-BYwDoSRX.js.map +1 -0
  13. package/dist/context-eNS62_ac.cjs +23 -0
  14. package/dist/context-eNS62_ac.cjs.map +1 -0
  15. package/dist/core-events-B1iM2F46.cjs +2 -0
  16. package/dist/core-events-B1iM2F46.cjs.map +1 -0
  17. package/dist/core-events-DunPHKRE.js +484 -0
  18. package/dist/core-events-DunPHKRE.js.map +1 -0
  19. package/dist/core-plugins-By-4-kGs.cjs +2 -0
  20. package/dist/core-plugins-By-4-kGs.cjs.map +1 -0
  21. package/dist/core-plugins-DSBWcTuX.js +821 -0
  22. package/dist/core-plugins-DSBWcTuX.js.map +1 -0
  23. package/dist/core.js +37 -0
  24. package/dist/core.js.map +1 -0
  25. package/dist/core.mjs +1233 -0
  26. package/dist/core.mjs.map +1 -0
  27. package/dist/enhanced-components-B_l3cist.js +1142 -0
  28. package/dist/enhanced-components-B_l3cist.js.map +1 -0
  29. package/dist/enhanced-components-BspFs9OO.cjs +2 -0
  30. package/dist/enhanced-components-BspFs9OO.cjs.map +1 -0
  31. package/dist/hooks-BXwI8QG6.cjs +4 -0
  32. package/dist/hooks-BXwI8QG6.cjs.map +1 -0
  33. package/dist/hooks-Bpi-jDiO.js +1816 -0
  34. package/dist/hooks-Bpi-jDiO.js.map +1 -0
  35. package/dist/index.css +1 -102
  36. package/dist/index.js +112 -21
  37. package/dist/index.js.map +1 -0
  38. package/dist/index.mjs +6273 -16
  39. package/dist/index.mjs.map +1 -0
  40. package/dist/minimal-components-C4z900Ro.js +1926 -0
  41. package/dist/minimal-components-C4z900Ro.js.map +1 -0
  42. package/dist/minimal-components-v4qBp6jv.cjs +2 -0
  43. package/dist/minimal-components-v4qBp6jv.cjs.map +1 -0
  44. package/dist/minimal-components.css +1 -589
  45. package/dist/mona-loading.gif +0 -0
  46. package/dist/performance-monitor-C5k6FDXw.js +301 -0
  47. package/dist/performance-monitor-C5k6FDXw.js.map +1 -0
  48. package/dist/performance-monitor-lJmuUjQQ.cjs +2 -0
  49. package/dist/performance-monitor-lJmuUjQQ.cjs.map +1 -0
  50. package/dist/utils-CFOue_9K.cjs +9 -0
  51. package/dist/utils-CFOue_9K.cjs.map +1 -0
  52. package/dist/utils-Dzpl2ArK.js +2844 -0
  53. package/dist/utils-Dzpl2ArK.js.map +1 -0
  54. package/dist/utils.js +2 -0
  55. package/dist/utils.js.map +1 -0
  56. package/dist/utils.mjs +11 -0
  57. package/dist/utils.mjs.map +1 -0
  58. package/package.json +11 -40
  59. package/src/adapters/videojs-adapter.tsx +441 -441
  60. package/src/components/AnimateLoading.tsx +85 -93
  61. package/src/components/LoadingState.tsx +199 -208
  62. package/src/components/__tests__/media-player-accessibility.test.tsx +510 -0
  63. package/src/components/__tests__/media-player-react19.test.tsx +457 -0
  64. package/src/components/accessibility/keyboard-help-overlay.tsx +201 -207
  65. package/src/components/basic/index.ts +28 -28
  66. package/src/components/enhanced/advanced-features.tsx +49 -54
  67. package/src/components/enhanced/debug-panel.tsx +148 -122
  68. package/src/components/enhanced/enhanced-controls.tsx +117 -120
  69. package/src/components/enhanced/enhanced-media-player.tsx +281 -224
  70. package/src/components/enhanced/error-handling.tsx +50 -57
  71. package/src/components/enhanced/index.ts +27 -27
  72. package/src/components/enhanced/media-player-enhanced.tsx +117 -83
  73. package/src/components/examples/basic-video-player.tsx +35 -40
  74. package/src/components/examples/enhanced-controls-example.tsx +16 -30
  75. package/src/components/examples/enhanced-media-player-example.tsx +196 -187
  76. package/src/components/examples/loading-states-demo.tsx +113 -113
  77. package/src/components/examples/react-19-demo.tsx +88 -116
  78. package/src/components/examples/volume-orientation-demo.tsx +77 -85
  79. package/src/components/icon-demo.tsx +189 -202
  80. package/src/components/icons/svg-icons/ArrowLeftIcon.tsx +13 -13
  81. package/src/components/icons/svg-icons/ArrowRightIcon.tsx +13 -13
  82. package/src/components/icons/svg-icons/AudioIcon.tsx +16 -16
  83. package/src/components/icons/svg-icons/BackwardIcon.tsx +7 -7
  84. package/src/components/icons/svg-icons/CameraIcon.tsx +13 -13
  85. package/src/components/icons/svg-icons/CheckIcon.tsx +13 -13
  86. package/src/components/icons/svg-icons/EnablePiPIcon.tsx +13 -13
  87. package/src/components/icons/svg-icons/ForwardIcon.tsx +7 -7
  88. package/src/components/icons/svg-icons/FullscreenEnterIcon.tsx +18 -18
  89. package/src/components/icons/svg-icons/FullscreenExitIcon.tsx +18 -18
  90. package/src/components/icons/svg-icons/LoadingIcon.tsx +27 -27
  91. package/src/components/icons/svg-icons/PauseIcon.tsx +18 -18
  92. package/src/components/icons/svg-icons/PlayIcon.tsx +16 -16
  93. package/src/components/icons/svg-icons/PlaybackSpeedIcon.tsx +18 -18
  94. package/src/components/icons/svg-icons/QualityIcon.tsx +16 -16
  95. package/src/components/icons/svg-icons/SettingsIcon.tsx +7 -7
  96. package/src/components/icons/svg-icons/SliderIcon.tsx +16 -16
  97. package/src/components/icons/svg-icons/SubtitleIcon.tsx +16 -16
  98. package/src/components/icons/svg-icons/SubtitleOffIcon.tsx +20 -20
  99. package/src/components/icons/svg-icons/UnPiPIcon.tsx +13 -13
  100. package/src/components/icons/svg-icons/VolumeMutedIcon.tsx +11 -11
  101. package/src/components/icons/svg-icons/VolumeOneIcon.tsx +17 -17
  102. package/src/components/icons/svg-icons/VolumeThreeIcon.tsx +11 -11
  103. package/src/components/icons/svg-icons/VolumeTwoIcon.tsx +11 -11
  104. package/src/components/legacy.tsx +14 -20
  105. package/src/components/media-metadata-display.tsx +78 -79
  106. package/src/components/media-player-controls.tsx +37 -40
  107. package/src/components/media-player-error.tsx +2 -2
  108. package/src/components/media-player-fullscreen.tsx +2 -2
  109. package/src/components/media-player-hls.tsx +89 -89
  110. package/src/components/media-player-play.tsx +2 -2
  111. package/src/components/media-player-root.tsx +20 -22
  112. package/src/components/media-player-seek.tsx +1 -1
  113. package/src/components/media-player-tooltip.tsx +1 -1
  114. package/src/components/media-player-video.tsx +21 -6
  115. package/src/components/media-player-volume.tsx +3 -3
  116. package/src/components/media-player.tsx +209 -174
  117. package/src/components/media-suspense.tsx +71 -89
  118. package/src/components/player-settings-form.tsx +143 -148
  119. package/src/components/react-player-wrapper.tsx +23 -23
  120. package/src/components/simple-video-player.tsx +53 -51
  121. package/src/components/ui/blur-poster.tsx +93 -0
  122. package/src/components/ui/empty-state.tsx +91 -0
  123. package/src/components/ui/enhanced-seek-bar.tsx +77 -58
  124. package/src/components/ui/error-state.tsx +124 -0
  125. package/src/components/ui/fullscreen-button.tsx +71 -50
  126. package/src/components/ui/loading-skeleton.tsx +107 -0
  127. package/src/components/ui/media-resource-preloader.tsx +262 -197
  128. package/src/components/ui/offline-message.tsx +98 -0
  129. package/src/components/ui/play-button.tsx +79 -87
  130. package/src/components/ui/seek-bar.tsx +170 -140
  131. package/src/components/ui/time-display.tsx +33 -12
  132. package/src/components/ui/volume-control.tsx +91 -44
  133. package/src/components/unified/base-media-player.tsx +61 -55
  134. package/src/components/unified/media-player.tsx +3 -3
  135. package/src/components/variants/minimal/AccessibleMinimalPlayer.tsx +528 -502
  136. package/src/components/variants/minimal/EnhancedMinimalMediaPlayer.tsx +110 -89
  137. package/src/components/variants/minimal/MinimalControls.tsx +100 -118
  138. package/src/components/variants/minimal/MinimalLoading.tsx +19 -23
  139. package/src/components/variants/minimal/MinimalMediaPlayer.tsx +283 -280
  140. package/src/components/variants/minimal/MinimalOverlay.tsx +43 -49
  141. package/src/components/variants/minimal/MinimalPlayButton.tsx +44 -53
  142. package/src/components/variants/minimal/MinimalSeekBar.tsx +130 -140
  143. package/src/components/variants/minimal/MinimalVolumeControl.tsx +59 -64
  144. package/src/components/variants/minimal/SimpleMinimalPlayer.tsx +29 -32
  145. package/src/components/variants/minimal/components/CenterPlayButton.tsx +1 -1
  146. package/src/components/variants/minimal/components/ControlBar.tsx +7 -11
  147. package/src/components/variants/minimal/components/EnhancedSettingsMenu.tsx +381 -330
  148. package/src/components/variants/minimal/components/PlaybackControls.tsx +6 -11
  149. package/src/components/variants/minimal/components/RightControls.tsx +8 -17
  150. package/src/components/variants/minimal/components/SeekBar.tsx +16 -20
  151. package/src/components/variants/minimal/components/SettingsDropdown.tsx +12 -14
  152. package/src/components/variants/minimal/components/SubtitleDisplay.tsx +1 -1
  153. package/src/components/variants/minimal/components/TimeDisplay.tsx +2 -5
  154. package/src/components/variants/minimal/components/VideoElement.tsx +3 -10
  155. package/src/components/variants/minimal/components/VolumeControl.tsx +42 -39
  156. package/src/components/video-player.tsx +10 -10
  157. package/src/context/__tests__/media-store.test.ts +509 -0
  158. package/src/context/error-handling.ts +106 -102
  159. package/src/context/media-context.tsx +56 -10
  160. package/src/context/media-provider.tsx +16 -17
  161. package/src/context/media-store.ts +68 -60
  162. package/src/context/persistence.ts +74 -65
  163. package/src/core/events/event-system.ts +422 -416
  164. package/src/core/events/hooks.ts +275 -252
  165. package/src/core/events/index.ts +14 -14
  166. package/src/core/events/middleware.ts +269 -252
  167. package/src/core/index.ts +8 -8
  168. package/src/core/optimization/bundle-optimizer.tsx +76 -72
  169. package/src/core/performance/cicd.ts +91 -89
  170. package/src/core/performance/index.ts +22 -22
  171. package/src/core/performance/media-loading-optimizer.ts +518 -512
  172. package/src/core/performance/performance-budgets.ts +414 -409
  173. package/src/core/performance/performance-monitor.tsx +451 -439
  174. package/src/core/performance/performance-testing.ts +439 -437
  175. package/src/core/plugins/__tests__/registry.test.ts +595 -0
  176. package/src/core/plugins/base-plugin.ts +197 -196
  177. package/src/core/plugins/enhanced-plugin-system.ts +157 -139
  178. package/src/core/plugins/examples/analytics-plugin.ts +229 -230
  179. package/src/core/plugins/index.ts +26 -26
  180. package/src/core/plugins/registry.ts +544 -325
  181. package/src/core/plugins/types.ts +115 -105
  182. package/src/core/plugins/utils.ts +292 -291
  183. package/src/core/progressive-loading.tsx +297 -288
  184. package/src/core/providers/enhanced-hls-provider.ts +98 -99
  185. package/src/core/providers/lazy-provider.tsx +14 -0
  186. package/src/core/providers/service-provider.tsx +104 -108
  187. package/src/core/utils.tsx +22 -26
  188. package/src/features/media-session/media-session-manager.ts +391 -409
  189. package/src/features/picture-in-picture/pip-manager.ts +364 -365
  190. package/src/features/playlist/playlist-manager.ts +605 -585
  191. package/src/features/subtitles/subtitle-manager.ts +424 -430
  192. package/src/features/subtitles/subtitle-parser.ts +277 -273
  193. package/src/features/thumbnails/thumbnail-generator.ts +511 -502
  194. package/src/hooks/__tests__/currentTime-fix.test.ts +149 -0
  195. package/src/hooks/__tests__/use-media-player.test.ts +712 -0
  196. package/src/hooks/__tests__/use-media-state.test.tsx +316 -0
  197. package/src/hooks/accessibility/index.ts +20 -20
  198. package/src/hooks/accessibility/use-accessibility-preferences.ts +177 -175
  199. package/src/hooks/accessibility/use-focus-management.ts +170 -163
  200. package/src/hooks/accessibility/use-keyboard-shortcuts.ts +132 -124
  201. package/src/hooks/accessibility/use-screen-reader.ts +191 -161
  202. package/src/hooks/core/index.ts +30 -30
  203. package/src/hooks/legacy.ts +3 -9
  204. package/src/hooks/use-buffer-health.ts +218 -0
  205. package/src/hooks/use-enhanced-media-player.ts +171 -81
  206. package/src/hooks/use-focus-trap.tsx +162 -0
  207. package/src/hooks/use-intelligent-preloading.ts +256 -232
  208. package/src/hooks/use-keyboard-controls.ts +80 -80
  209. package/src/hooks/use-keyboard-shortcuts.ts +255 -0
  210. package/src/hooks/use-media-actions.ts +81 -72
  211. package/src/hooks/use-media-metadata.ts +75 -73
  212. package/src/hooks/use-media-optimistic.ts +145 -151
  213. package/src/hooks/use-media-player.ts +193 -160
  214. package/src/hooks/use-media-state.ts +63 -59
  215. package/src/hooks/use-memory-optimization.ts +121 -119
  216. package/src/hooks/use-network-status.ts +124 -0
  217. package/src/hooks/use-optimistic-controls.ts +91 -88
  218. package/src/hooks/use-optimized-media.ts +76 -56
  219. package/src/hooks/use-smart-preload.ts +229 -0
  220. package/src/hooks/use-touch-gestures.ts +427 -383
  221. package/src/hooks/useEnhancedSubtitles.ts +245 -245
  222. package/src/hooks/useKeyboardShortcuts.ts +84 -52
  223. package/src/hooks/useMediaControls.ts +22 -22
  224. package/src/hooks/useScreenshot.ts +51 -47
  225. package/src/hooks/useSubtitles.ts +53 -53
  226. package/src/hooks/useVideoPlayer.ts +107 -61
  227. package/src/icons/components/FullscreenIcon.tsx +34 -35
  228. package/src/icons/components/SettingsIcon.tsx +35 -36
  229. package/src/icons/components/animated/LoadingIcon.tsx +25 -41
  230. package/src/icons/components/animated/PlayPauseIcon.tsx +38 -46
  231. package/src/icons/components/media/PauseIcon.tsx +36 -37
  232. package/src/icons/components/media/PlayIcon.tsx +35 -36
  233. package/src/icons/components/volume/VolumeIcon.tsx +36 -37
  234. package/src/icons/components/volume/VolumeOffIcon.tsx +36 -37
  235. package/src/icons/index.ts +38 -38
  236. package/src/icons/provider.tsx +40 -46
  237. package/src/icons/types.ts +51 -31
  238. package/src/index-enhanced.ts +10 -10
  239. package/src/index-legacy.ts +4 -7
  240. package/src/index.css +80 -80
  241. package/src/index.ts +8 -23
  242. package/src/lib/__tests__/async-utils.test.ts +291 -0
  243. package/src/lib/async-utils.ts +194 -0
  244. package/src/lib/deprecation.ts +4 -4
  245. package/src/lib/index.ts +3 -2
  246. package/src/lib/utils.ts +3 -3
  247. package/src/styles/globals.css +3 -3
  248. package/src/styles/minimal-player.css +606 -574
  249. package/src/styles/pixel-art.css +23 -28
  250. package/src/styles/videojs.css +43 -43
  251. package/src/test/accessibility-utils.ts +208 -0
  252. package/src/test/browser-simulation.ts +235 -0
  253. package/src/test/media-mocks.ts +169 -0
  254. package/src/test/performance-utils.ts +192 -0
  255. package/src/test/setup.ts +256 -41
  256. package/src/types/events.ts +30 -30
  257. package/src/types/formats.ts +56 -72
  258. package/src/types/index.ts +16 -38
  259. package/src/types/videojs-plugins.d.ts +6 -6
  260. package/dist/index.d.ts +0 -1425
  261. package/dist/package.json +0 -62
  262. package/dist/src/adapters/videojs-adapter.d.ts +0 -38
  263. package/dist/src/adapters/videojs-adapter.tsx +0 -470
  264. package/dist/src/components/AnimateLoading.d.ts +0 -9
  265. package/dist/src/components/AnimateLoading.tsx +0 -115
  266. package/dist/src/components/LoadingState.d.ts +0 -33
  267. package/dist/src/components/LoadingState.tsx +0 -248
  268. package/dist/src/components/accessibility/keyboard-help-overlay.d.ts +0 -17
  269. package/dist/src/components/accessibility/keyboard-help-overlay.tsx +0 -213
  270. package/dist/src/components/audio-player.d.ts +0 -3
  271. package/dist/src/components/audio-player.tsx +0 -85
  272. package/dist/src/components/basic/index.d.ts +0 -26
  273. package/dist/src/components/basic/index.ts +0 -37
  274. package/dist/src/components/enhanced/advanced-features.d.ts +0 -45
  275. package/dist/src/components/enhanced/advanced-features.tsx +0 -316
  276. package/dist/src/components/enhanced/debug-panel.d.ts +0 -70
  277. package/dist/src/components/enhanced/debug-panel.tsx +0 -422
  278. package/dist/src/components/enhanced/enhanced-controls.d.ts +0 -50
  279. package/dist/src/components/enhanced/enhanced-controls.tsx +0 -600
  280. package/dist/src/components/enhanced/enhanced-media-player.d.ts +0 -26
  281. package/dist/src/components/enhanced/enhanced-media-player.tsx +0 -509
  282. package/dist/src/components/enhanced/error-handling.d.ts +0 -36
  283. package/dist/src/components/enhanced/error-handling.tsx +0 -345
  284. package/dist/src/components/enhanced/index.d.ts +0 -7
  285. package/dist/src/components/enhanced/index.ts +0 -39
  286. package/dist/src/components/enhanced/media-player-enhanced.d.ts +0 -21
  287. package/dist/src/components/enhanced/media-player-enhanced.tsx +0 -349
  288. package/dist/src/components/examples/basic-video-player.d.ts +0 -10
  289. package/dist/src/components/examples/basic-video-player.tsx +0 -55
  290. package/dist/src/components/examples/custom-controls-example.d.ts +0 -10
  291. package/dist/src/components/examples/custom-controls-example.tsx +0 -63
  292. package/dist/src/components/examples/enhanced-controls-example.d.ts +0 -9
  293. package/dist/src/components/examples/enhanced-controls-example.tsx +0 -114
  294. package/dist/src/components/examples/enhanced-media-player-example.d.ts +0 -9
  295. package/dist/src/components/examples/enhanced-media-player-example.tsx +0 -293
  296. package/dist/src/components/examples/loading-states-demo.d.ts +0 -2
  297. package/dist/src/components/examples/loading-states-demo.tsx +0 -142
  298. package/dist/src/components/examples/react-19-demo.d.ts +0 -10
  299. package/dist/src/components/examples/react-19-demo.tsx +0 -381
  300. package/dist/src/components/examples/volume-orientation-demo.d.ts +0 -2
  301. package/dist/src/components/examples/volume-orientation-demo.tsx +0 -114
  302. package/dist/src/components/icon-demo.d.ts +0 -2
  303. package/dist/src/components/icon-demo.tsx +0 -209
  304. package/dist/src/components/icons/index.d.ts +0 -36
  305. package/dist/src/components/icons/index.tsx +0 -166
  306. package/dist/src/components/icons/svg-icons/ArrowLeftIcon.d.ts +0 -4
  307. package/dist/src/components/icons/svg-icons/ArrowLeftIcon.tsx +0 -18
  308. package/dist/src/components/icons/svg-icons/ArrowRightIcon.d.ts +0 -4
  309. package/dist/src/components/icons/svg-icons/ArrowRightIcon.tsx +0 -18
  310. package/dist/src/components/icons/svg-icons/AudioIcon.d.ts +0 -4
  311. package/dist/src/components/icons/svg-icons/AudioIcon.tsx +0 -22
  312. package/dist/src/components/icons/svg-icons/BackwardIcon.d.ts +0 -4
  313. package/dist/src/components/icons/svg-icons/BackwardIcon.tsx +0 -12
  314. package/dist/src/components/icons/svg-icons/CameraIcon.d.ts +0 -4
  315. package/dist/src/components/icons/svg-icons/CameraIcon.tsx +0 -19
  316. package/dist/src/components/icons/svg-icons/CheckIcon.d.ts +0 -4
  317. package/dist/src/components/icons/svg-icons/CheckIcon.tsx +0 -19
  318. package/dist/src/components/icons/svg-icons/EnablePiPIcon.d.ts +0 -4
  319. package/dist/src/components/icons/svg-icons/EnablePiPIcon.tsx +0 -17
  320. package/dist/src/components/icons/svg-icons/ForwardIcon.d.ts +0 -4
  321. package/dist/src/components/icons/svg-icons/ForwardIcon.tsx +0 -12
  322. package/dist/src/components/icons/svg-icons/FullscreenEnterIcon.d.ts +0 -4
  323. package/dist/src/components/icons/svg-icons/FullscreenEnterIcon.tsx +0 -23
  324. package/dist/src/components/icons/svg-icons/FullscreenExitIcon.d.ts +0 -4
  325. package/dist/src/components/icons/svg-icons/FullscreenExitIcon.tsx +0 -23
  326. package/dist/src/components/icons/svg-icons/LoadingIcon.d.ts +0 -4
  327. package/dist/src/components/icons/svg-icons/LoadingIcon.tsx +0 -32
  328. package/dist/src/components/icons/svg-icons/PauseIcon.d.ts +0 -4
  329. package/dist/src/components/icons/svg-icons/PauseIcon.tsx +0 -23
  330. package/dist/src/components/icons/svg-icons/PlayIcon.d.ts +0 -4
  331. package/dist/src/components/icons/svg-icons/PlayIcon.tsx +0 -21
  332. package/dist/src/components/icons/svg-icons/PlaybackSpeedIcon.d.ts +0 -4
  333. package/dist/src/components/icons/svg-icons/PlaybackSpeedIcon.tsx +0 -23
  334. package/dist/src/components/icons/svg-icons/QualityIcon.d.ts +0 -4
  335. package/dist/src/components/icons/svg-icons/QualityIcon.tsx +0 -21
  336. package/dist/src/components/icons/svg-icons/SettingsIcon.d.ts +0 -4
  337. package/dist/src/components/icons/svg-icons/SettingsIcon.tsx +0 -12
  338. package/dist/src/components/icons/svg-icons/SliderIcon.d.ts +0 -4
  339. package/dist/src/components/icons/svg-icons/SliderIcon.tsx +0 -21
  340. package/dist/src/components/icons/svg-icons/SubtitleIcon.d.ts +0 -4
  341. package/dist/src/components/icons/svg-icons/SubtitleIcon.tsx +0 -21
  342. package/dist/src/components/icons/svg-icons/SubtitleOffIcon.d.ts +0 -4
  343. package/dist/src/components/icons/svg-icons/SubtitleOffIcon.tsx +0 -25
  344. package/dist/src/components/icons/svg-icons/UnPiPIcon.d.ts +0 -4
  345. package/dist/src/components/icons/svg-icons/UnPiPIcon.tsx +0 -17
  346. package/dist/src/components/icons/svg-icons/VolumeMutedIcon.d.ts +0 -4
  347. package/dist/src/components/icons/svg-icons/VolumeMutedIcon.tsx +0 -16
  348. package/dist/src/components/icons/svg-icons/VolumeOneIcon.d.ts +0 -4
  349. package/dist/src/components/icons/svg-icons/VolumeOneIcon.tsx +0 -22
  350. package/dist/src/components/icons/svg-icons/VolumeThreeIcon.d.ts +0 -4
  351. package/dist/src/components/icons/svg-icons/VolumeThreeIcon.tsx +0 -16
  352. package/dist/src/components/icons/svg-icons/VolumeTwoIcon.d.ts +0 -4
  353. package/dist/src/components/icons/svg-icons/VolumeTwoIcon.tsx +0 -16
  354. package/dist/src/components/legacy.d.ts +0 -13
  355. package/dist/src/components/legacy.tsx +0 -93
  356. package/dist/src/components/media-metadata-display.d.ts +0 -11
  357. package/dist/src/components/media-metadata-display.tsx +0 -100
  358. package/dist/src/components/media-player-audio.d.ts +0 -9
  359. package/dist/src/components/media-player-audio.tsx +0 -39
  360. package/dist/src/components/media-player-controls.d.ts +0 -23
  361. package/dist/src/components/media-player-controls.tsx +0 -226
  362. package/dist/src/components/media-player-error.d.ts +0 -16
  363. package/dist/src/components/media-player-error.tsx +0 -163
  364. package/dist/src/components/media-player-fullscreen.d.ts +0 -12
  365. package/dist/src/components/media-player-fullscreen.tsx +0 -109
  366. package/dist/src/components/media-player-hls.d.ts +0 -23
  367. package/dist/src/components/media-player-hls.tsx +0 -111
  368. package/dist/src/components/media-player-loading.d.ts +0 -12
  369. package/dist/src/components/media-player-loading.tsx +0 -76
  370. package/dist/src/components/media-player-play.d.ts +0 -11
  371. package/dist/src/components/media-player-play.tsx +0 -75
  372. package/dist/src/components/media-player-root.d.ts +0 -28
  373. package/dist/src/components/media-player-root.tsx +0 -340
  374. package/dist/src/components/media-player-seek.d.ts +0 -15
  375. package/dist/src/components/media-player-seek.tsx +0 -168
  376. package/dist/src/components/media-player-time.d.ts +0 -12
  377. package/dist/src/components/media-player-time.tsx +0 -99
  378. package/dist/src/components/media-player-tooltip.d.ts +0 -13
  379. package/dist/src/components/media-player-tooltip.tsx +0 -58
  380. package/dist/src/components/media-player-video.d.ts +0 -9
  381. package/dist/src/components/media-player-video.tsx +0 -39
  382. package/dist/src/components/media-player-volume.d.ts +0 -13
  383. package/dist/src/components/media-player-volume.tsx +0 -155
  384. package/dist/src/components/media-player.d.ts +0 -3
  385. package/dist/src/components/media-player.tsx +0 -257
  386. package/dist/src/components/media-suspense.d.ts +0 -78
  387. package/dist/src/components/media-suspense.tsx +0 -362
  388. package/dist/src/components/player-settings-form.d.ts +0 -8
  389. package/dist/src/components/player-settings-form.tsx +0 -163
  390. package/dist/src/components/react-player-wrapper.d.ts +0 -64
  391. package/dist/src/components/react-player-wrapper.tsx +0 -651
  392. package/dist/src/components/simple-video-player.d.ts +0 -9
  393. package/dist/src/components/simple-video-player.tsx +0 -60
  394. package/dist/src/components/ui/button.tsx +0 -49
  395. package/dist/src/components/ui/dropdown-menu.tsx +0 -137
  396. package/dist/src/components/ui/enhanced-seek-bar.d.ts +0 -3
  397. package/dist/src/components/ui/enhanced-seek-bar.tsx +0 -235
  398. package/dist/src/components/ui/fullscreen-button.d.ts +0 -3
  399. package/dist/src/components/ui/fullscreen-button.tsx +0 -60
  400. package/dist/src/components/ui/icons.tsx +0 -174
  401. package/dist/src/components/ui/media-resource-preloader.d.ts +0 -21
  402. package/dist/src/components/ui/media-resource-preloader.tsx +0 -393
  403. package/dist/src/components/ui/play-button.d.ts +0 -3
  404. package/dist/src/components/ui/play-button.tsx +0 -107
  405. package/dist/src/components/ui/seek-bar.d.ts +0 -3
  406. package/dist/src/components/ui/seek-bar.tsx +0 -161
  407. package/dist/src/components/ui/slider.tsx +0 -55
  408. package/dist/src/components/ui/time-display.d.ts +0 -3
  409. package/dist/src/components/ui/time-display.tsx +0 -40
  410. package/dist/src/components/ui/tooltip.tsx +0 -131
  411. package/dist/src/components/ui/volume-control.d.ts +0 -3
  412. package/dist/src/components/ui/volume-control.tsx +0 -143
  413. package/dist/src/components/unified/base-media-player.d.ts +0 -18
  414. package/dist/src/components/unified/base-media-player.tsx +0 -246
  415. package/dist/src/components/unified/media-player.d.ts +0 -37
  416. package/dist/src/components/unified/media-player.tsx +0 -75
  417. package/dist/src/components/variants/minimal/AccessibleMinimalPlayer.d.ts +0 -42
  418. package/dist/src/components/variants/minimal/AccessibleMinimalPlayer.tsx +0 -561
  419. package/dist/src/components/variants/minimal/EnhancedMinimalMediaPlayer.d.ts +0 -44
  420. package/dist/src/components/variants/minimal/EnhancedMinimalMediaPlayer.tsx +0 -552
  421. package/dist/src/components/variants/minimal/MinimalControls.d.ts +0 -19
  422. package/dist/src/components/variants/minimal/MinimalControls.tsx +0 -142
  423. package/dist/src/components/variants/minimal/MinimalLoading.d.ts +0 -10
  424. package/dist/src/components/variants/minimal/MinimalLoading.tsx +0 -32
  425. package/dist/src/components/variants/minimal/MinimalMediaPlayer.d.ts +0 -38
  426. package/dist/src/components/variants/minimal/MinimalMediaPlayer.tsx +0 -315
  427. package/dist/src/components/variants/minimal/MinimalOverlay.d.ts +0 -11
  428. package/dist/src/components/variants/minimal/MinimalOverlay.tsx +0 -64
  429. package/dist/src/components/variants/minimal/MinimalPlayButton.d.ts +0 -9
  430. package/dist/src/components/variants/minimal/MinimalPlayButton.tsx +0 -65
  431. package/dist/src/components/variants/minimal/MinimalSeekBar.d.ts +0 -7
  432. package/dist/src/components/variants/minimal/MinimalSeekBar.tsx +0 -150
  433. package/dist/src/components/variants/minimal/MinimalVolumeControl.d.ts +0 -7
  434. package/dist/src/components/variants/minimal/MinimalVolumeControl.tsx +0 -80
  435. package/dist/src/components/variants/minimal/SimpleMinimalPlayer.d.ts +0 -22
  436. package/dist/src/components/variants/minimal/SimpleMinimalPlayer.tsx +0 -209
  437. package/dist/src/components/variants/minimal/components/CenterPlayButton.d.ts +0 -7
  438. package/dist/src/components/variants/minimal/components/CenterPlayButton.tsx +0 -22
  439. package/dist/src/components/variants/minimal/components/ControlBar.d.ts +0 -43
  440. package/dist/src/components/variants/minimal/components/ControlBar.tsx +0 -146
  441. package/dist/src/components/variants/minimal/components/EnhancedSettingsMenu.d.ts +0 -24
  442. package/dist/src/components/variants/minimal/components/EnhancedSettingsMenu.tsx +0 -361
  443. package/dist/src/components/variants/minimal/components/PlaybackControls.d.ts +0 -9
  444. package/dist/src/components/variants/minimal/components/PlaybackControls.tsx +0 -51
  445. package/dist/src/components/variants/minimal/components/RightControls.d.ts +0 -25
  446. package/dist/src/components/variants/minimal/components/RightControls.tsx +0 -173
  447. package/dist/src/components/variants/minimal/components/SeekBar.d.ts +0 -11
  448. package/dist/src/components/variants/minimal/components/SeekBar.tsx +0 -131
  449. package/dist/src/components/variants/minimal/components/SettingsDropdown.d.ts +0 -9
  450. package/dist/src/components/variants/minimal/components/SettingsDropdown.tsx +0 -70
  451. package/dist/src/components/variants/minimal/components/SubtitleDisplay.d.ts +0 -7
  452. package/dist/src/components/variants/minimal/components/SubtitleDisplay.tsx +0 -21
  453. package/dist/src/components/variants/minimal/components/TimeDisplay.d.ts +0 -7
  454. package/dist/src/components/variants/minimal/components/TimeDisplay.tsx +0 -18
  455. package/dist/src/components/variants/minimal/components/VideoElement.d.ts +0 -13
  456. package/dist/src/components/variants/minimal/components/VideoElement.tsx +0 -40
  457. package/dist/src/components/variants/minimal/components/VolumeControl.d.ts +0 -13
  458. package/dist/src/components/variants/minimal/components/VolumeControl.tsx +0 -217
  459. package/dist/src/components/variants/minimal/index.d.ts +0 -17
  460. package/dist/src/components/variants/minimal/index.ts +0 -23
  461. package/dist/src/components/video-player.d.ts +0 -3
  462. package/dist/src/components/video-player.tsx +0 -100
  463. package/dist/src/context/error-handling.d.ts +0 -72
  464. package/dist/src/context/error-handling.ts +0 -394
  465. package/dist/src/context/media-context.d.ts +0 -104
  466. package/dist/src/context/media-context.tsx +0 -208
  467. package/dist/src/context/media-provider.d.ts +0 -26
  468. package/dist/src/context/media-provider.tsx +0 -265
  469. package/dist/src/context/media-store.d.ts +0 -33
  470. package/dist/src/context/media-store.ts +0 -379
  471. package/dist/src/context/persistence.d.ts +0 -83
  472. package/dist/src/context/persistence.ts +0 -453
  473. package/dist/src/core/events/event-system.d.ts +0 -170
  474. package/dist/src/core/events/event-system.ts +0 -442
  475. package/dist/src/core/events/hooks.d.ts +0 -33
  476. package/dist/src/core/events/hooks.ts +0 -302
  477. package/dist/src/core/events/index.d.ts +0 -6
  478. package/dist/src/core/events/index.ts +0 -22
  479. package/dist/src/core/events/middleware.d.ts +0 -39
  480. package/dist/src/core/events/middleware.ts +0 -269
  481. package/dist/src/core/index.d.ts +0 -8
  482. package/dist/src/core/index.ts +0 -22
  483. package/dist/src/core/optimization/bundle-optimizer.d.ts +0 -44
  484. package/dist/src/core/optimization/bundle-optimizer.tsx +0 -308
  485. package/dist/src/core/performance/cicd.d.ts +0 -8
  486. package/dist/src/core/performance/cicd.ts +0 -96
  487. package/dist/src/core/performance/index.d.ts +0 -10
  488. package/dist/src/core/performance/index.ts +0 -38
  489. package/dist/src/core/performance/media-loading-optimizer.d.ts +0 -105
  490. package/dist/src/core/performance/media-loading-optimizer.ts +0 -538
  491. package/dist/src/core/performance/performance-budgets.d.ts +0 -68
  492. package/dist/src/core/performance/performance-budgets.ts +0 -432
  493. package/dist/src/core/performance/performance-monitor.d.ts +0 -95
  494. package/dist/src/core/performance/performance-monitor.tsx +0 -476
  495. package/dist/src/core/performance/performance-testing.d.ts +0 -69
  496. package/dist/src/core/performance/performance-testing.ts +0 -459
  497. package/dist/src/core/plugins/base-plugin.d.ts +0 -52
  498. package/dist/src/core/plugins/base-plugin.ts +0 -224
  499. package/dist/src/core/plugins/enhanced-plugin-system.d.ts +0 -160
  500. package/dist/src/core/plugins/enhanced-plugin-system.ts +0 -417
  501. package/dist/src/core/plugins/examples/analytics-plugin.d.ts +0 -30
  502. package/dist/src/core/plugins/examples/analytics-plugin.ts +0 -242
  503. package/dist/src/core/plugins/index.d.ts +0 -8
  504. package/dist/src/core/plugins/index.ts +0 -39
  505. package/dist/src/core/plugins/registry.d.ts +0 -31
  506. package/dist/src/core/plugins/registry.ts +0 -327
  507. package/dist/src/core/plugins/types.d.ts +0 -101
  508. package/dist/src/core/plugins/types.ts +0 -159
  509. package/dist/src/core/plugins/utils.d.ts +0 -38
  510. package/dist/src/core/plugins/utils.ts +0 -316
  511. package/dist/src/core/progressive-loading.d.ts +0 -88
  512. package/dist/src/core/progressive-loading.tsx +0 -322
  513. package/dist/src/core/providers/enhanced-hls-provider.d.ts +0 -50
  514. package/dist/src/core/providers/enhanced-hls-provider.ts +0 -308
  515. package/dist/src/core/providers/service-provider.d.ts +0 -49
  516. package/dist/src/core/providers/service-provider.tsx +0 -168
  517. package/dist/src/core/utils.d.ts +0 -25
  518. package/dist/src/core/utils.tsx +0 -38
  519. package/dist/src/features/media-session/media-session-manager.d.ts +0 -132
  520. package/dist/src/features/media-session/media-session-manager.ts +0 -429
  521. package/dist/src/features/picture-in-picture/pip-manager.d.ts +0 -94
  522. package/dist/src/features/picture-in-picture/pip-manager.ts +0 -429
  523. package/dist/src/features/playlist/playlist-manager.d.ts +0 -208
  524. package/dist/src/features/playlist/playlist-manager.ts +0 -606
  525. package/dist/src/features/subtitles/subtitle-manager.d.ts +0 -136
  526. package/dist/src/features/subtitles/subtitle-manager.ts +0 -441
  527. package/dist/src/features/subtitles/subtitle-parser.d.ts +0 -60
  528. package/dist/src/features/subtitles/subtitle-parser.ts +0 -280
  529. package/dist/src/features/thumbnails/thumbnail-generator.d.ts +0 -136
  530. package/dist/src/features/thumbnails/thumbnail-generator.ts +0 -519
  531. package/dist/src/hooks/accessibility/index.d.ts +0 -5
  532. package/dist/src/hooks/accessibility/index.ts +0 -27
  533. package/dist/src/hooks/accessibility/use-accessibility-preferences.d.ts +0 -14
  534. package/dist/src/hooks/accessibility/use-accessibility-preferences.ts +0 -188
  535. package/dist/src/hooks/accessibility/use-focus-management.d.ts +0 -31
  536. package/dist/src/hooks/accessibility/use-focus-management.ts +0 -176
  537. package/dist/src/hooks/accessibility/use-keyboard-shortcuts.d.ts +0 -38
  538. package/dist/src/hooks/accessibility/use-keyboard-shortcuts.ts +0 -144
  539. package/dist/src/hooks/accessibility/use-screen-reader.d.ts +0 -22
  540. package/dist/src/hooks/accessibility/use-screen-reader.ts +0 -182
  541. package/dist/src/hooks/core/index.d.ts +0 -18
  542. package/dist/src/hooks/core/index.ts +0 -47
  543. package/dist/src/hooks/legacy.d.ts +0 -18
  544. package/dist/src/hooks/legacy.ts +0 -27
  545. package/dist/src/hooks/use-enhanced-media-player.d.ts +0 -88
  546. package/dist/src/hooks/use-enhanced-media-player.ts +0 -485
  547. package/dist/src/hooks/use-intelligent-preloading.d.ts +0 -66
  548. package/dist/src/hooks/use-intelligent-preloading.ts +0 -363
  549. package/dist/src/hooks/use-keyboard-controls.d.ts +0 -13
  550. package/dist/src/hooks/use-keyboard-controls.ts +0 -115
  551. package/dist/src/hooks/use-media-actions.d.ts +0 -62
  552. package/dist/src/hooks/use-media-actions.ts +0 -175
  553. package/dist/src/hooks/use-media-metadata.d.ts +0 -11
  554. package/dist/src/hooks/use-media-metadata.ts +0 -89
  555. package/dist/src/hooks/use-media-optimistic.d.ts +0 -36
  556. package/dist/src/hooks/use-media-optimistic.ts +0 -270
  557. package/dist/src/hooks/use-media-player.d.ts +0 -31
  558. package/dist/src/hooks/use-media-player.ts +0 -310
  559. package/dist/src/hooks/use-media-state.d.ts +0 -17
  560. package/dist/src/hooks/use-media-state.ts +0 -190
  561. package/dist/src/hooks/use-memory-optimization.d.ts +0 -40
  562. package/dist/src/hooks/use-memory-optimization.ts +0 -358
  563. package/dist/src/hooks/use-mobile.ts +0 -125
  564. package/dist/src/hooks/use-optimistic-controls.d.ts +0 -22
  565. package/dist/src/hooks/use-optimistic-controls.ts +0 -92
  566. package/dist/src/hooks/use-optimized-media.d.ts +0 -46
  567. package/dist/src/hooks/use-optimized-media.ts +0 -263
  568. package/dist/src/hooks/use-touch-gestures.d.ts +0 -47
  569. package/dist/src/hooks/use-touch-gestures.ts +0 -417
  570. package/dist/src/hooks/useEnhancedSubtitles.d.ts +0 -39
  571. package/dist/src/hooks/useEnhancedSubtitles.ts +0 -258
  572. package/dist/src/hooks/useKeyboardShortcuts.d.ts +0 -10
  573. package/dist/src/hooks/useKeyboardShortcuts.ts +0 -74
  574. package/dist/src/hooks/useMediaControls.d.ts +0 -9
  575. package/dist/src/hooks/useMediaControls.ts +0 -52
  576. package/dist/src/hooks/useScreenshot.d.ts +0 -4
  577. package/dist/src/hooks/useScreenshot.ts +0 -57
  578. package/dist/src/hooks/useSubtitles.d.ts +0 -8
  579. package/dist/src/hooks/useSubtitles.ts +0 -91
  580. package/dist/src/hooks/useVideoPlayer.d.ts +0 -32
  581. package/dist/src/hooks/useVideoPlayer.ts +0 -232
  582. package/dist/src/icons/components/FullscreenIcon.d.ts +0 -3
  583. package/dist/src/icons/components/FullscreenIcon.tsx +0 -37
  584. package/dist/src/icons/components/SettingsIcon.d.ts +0 -3
  585. package/dist/src/icons/components/SettingsIcon.tsx +0 -38
  586. package/dist/src/icons/components/animated/LoadingIcon.d.ts +0 -3
  587. package/dist/src/icons/components/animated/LoadingIcon.tsx +0 -43
  588. package/dist/src/icons/components/animated/PlayPauseIcon.d.ts +0 -7
  589. package/dist/src/icons/components/animated/PlayPauseIcon.tsx +0 -50
  590. package/dist/src/icons/components/media/PauseIcon.d.ts +0 -3
  591. package/dist/src/icons/components/media/PauseIcon.tsx +0 -39
  592. package/dist/src/icons/components/media/PlayIcon.d.ts +0 -3
  593. package/dist/src/icons/components/media/PlayIcon.tsx +0 -38
  594. package/dist/src/icons/components/volume/VolumeIcon.d.ts +0 -3
  595. package/dist/src/icons/components/volume/VolumeIcon.tsx +0 -39
  596. package/dist/src/icons/components/volume/VolumeOffIcon.d.ts +0 -3
  597. package/dist/src/icons/components/volume/VolumeOffIcon.tsx +0 -39
  598. package/dist/src/icons/index.d.ts +0 -28
  599. package/dist/src/icons/index.ts +0 -56
  600. package/dist/src/icons/provider.d.ts +0 -13
  601. package/dist/src/icons/provider.tsx +0 -64
  602. package/dist/src/icons/types.d.ts +0 -18
  603. package/dist/src/icons/types.ts +0 -40
  604. package/dist/src/index-enhanced.d.ts +0 -13
  605. package/dist/src/index-enhanced.ts +0 -35
  606. package/dist/src/index-legacy.d.ts +0 -81
  607. package/dist/src/index-legacy.ts +0 -327
  608. package/dist/src/index.css +0 -102
  609. package/dist/src/index.d.ts +0 -38
  610. package/dist/src/index.minimal.d.ts +0 -2
  611. package/dist/src/index.minimal.ts +0 -4
  612. package/dist/src/index.ts +0 -216
  613. package/dist/src/lib/deprecation.d.ts +0 -7
  614. package/dist/src/lib/deprecation.ts +0 -51
  615. package/dist/src/lib/format-time.d.ts +0 -9
  616. package/dist/src/lib/format-time.ts +0 -37
  617. package/dist/src/lib/index.d.ts +0 -3
  618. package/dist/src/lib/index.ts +0 -3
  619. package/dist/src/lib/utils.d.ts +0 -3
  620. package/dist/src/lib/utils.ts +0 -6
  621. package/dist/src/styles/globals.css +0 -462
  622. package/dist/src/styles/minimal-player.css +0 -589
  623. package/dist/src/styles/pixel-art.css +0 -46
  624. package/dist/src/styles/videojs.css +0 -100
  625. package/dist/src/test/setup.d.ts +0 -2
  626. package/dist/src/test/setup.ts +0 -79
  627. package/dist/src/types/events.d.ts +0 -41
  628. package/dist/src/types/events.ts +0 -47
  629. package/dist/src/types/formats.d.ts +0 -45
  630. package/dist/src/types/formats.ts +0 -95
  631. package/dist/src/types/index.d.ts +0 -128
  632. package/dist/src/types/index.ts +0 -225
  633. package/dist/src/types/videojs-plugins.d.ts +0 -14
  634. package/dist/styles/globals.css +0 -462
  635. package/dist/styles/minimal-player.css +0 -589
  636. package/dist/styles/pixel-art.css +0 -46
  637. package/dist/styles/videojs.css +0 -100
  638. package/src/adapters/videojs-adapter.d.ts +0 -38
  639. package/src/adapters/videojs-adapter.d.ts.map +0 -1
  640. package/src/components/AnimateLoading.d.ts +0 -9
  641. package/src/components/AnimateLoading.d.ts.map +0 -1
  642. package/src/components/LoadingState.d.ts +0 -33
  643. package/src/components/LoadingState.d.ts.map +0 -1
  644. package/src/components/accessibility/keyboard-help-overlay.d.ts +0 -17
  645. package/src/components/accessibility/keyboard-help-overlay.d.ts.map +0 -1
  646. package/src/components/audio-player.d.ts +0 -3
  647. package/src/components/audio-player.d.ts.map +0 -1
  648. package/src/components/basic/index.d.ts +0 -26
  649. package/src/components/basic/index.d.ts.map +0 -1
  650. package/src/components/enhanced/advanced-features.d.ts +0 -45
  651. package/src/components/enhanced/advanced-features.d.ts.map +0 -1
  652. package/src/components/enhanced/debug-panel.d.ts +0 -70
  653. package/src/components/enhanced/debug-panel.d.ts.map +0 -1
  654. package/src/components/enhanced/enhanced-controls.d.ts +0 -50
  655. package/src/components/enhanced/enhanced-controls.d.ts.map +0 -1
  656. package/src/components/enhanced/enhanced-media-player.d.ts +0 -26
  657. package/src/components/enhanced/enhanced-media-player.d.ts.map +0 -1
  658. package/src/components/enhanced/error-handling.d.ts +0 -36
  659. package/src/components/enhanced/error-handling.d.ts.map +0 -1
  660. package/src/components/enhanced/index.d.ts +0 -7
  661. package/src/components/enhanced/index.d.ts.map +0 -1
  662. package/src/components/enhanced/media-player-enhanced.d.ts +0 -21
  663. package/src/components/enhanced/media-player-enhanced.d.ts.map +0 -1
  664. package/src/components/examples/basic-video-player.d.ts +0 -10
  665. package/src/components/examples/basic-video-player.d.ts.map +0 -1
  666. package/src/components/examples/custom-controls-example.d.ts +0 -10
  667. package/src/components/examples/custom-controls-example.d.ts.map +0 -1
  668. package/src/components/examples/enhanced-controls-example.d.ts +0 -9
  669. package/src/components/examples/enhanced-controls-example.d.ts.map +0 -1
  670. package/src/components/examples/enhanced-media-player-example.d.ts +0 -9
  671. package/src/components/examples/enhanced-media-player-example.d.ts.map +0 -1
  672. package/src/components/examples/loading-states-demo.d.ts +0 -2
  673. package/src/components/examples/loading-states-demo.d.ts.map +0 -1
  674. package/src/components/examples/react-19-demo.d.ts +0 -10
  675. package/src/components/examples/react-19-demo.d.ts.map +0 -1
  676. package/src/components/examples/volume-orientation-demo.d.ts +0 -2
  677. package/src/components/examples/volume-orientation-demo.d.ts.map +0 -1
  678. package/src/components/icon-demo.d.ts +0 -2
  679. package/src/components/icon-demo.d.ts.map +0 -1
  680. package/src/components/icons/index.d.ts +0 -36
  681. package/src/components/icons/index.d.ts.map +0 -1
  682. package/src/components/icons/svg-icons/ArrowLeftIcon.d.ts +0 -4
  683. package/src/components/icons/svg-icons/ArrowLeftIcon.d.ts.map +0 -1
  684. package/src/components/icons/svg-icons/ArrowRightIcon.d.ts +0 -4
  685. package/src/components/icons/svg-icons/ArrowRightIcon.d.ts.map +0 -1
  686. package/src/components/icons/svg-icons/AudioIcon.d.ts +0 -4
  687. package/src/components/icons/svg-icons/AudioIcon.d.ts.map +0 -1
  688. package/src/components/icons/svg-icons/BackwardIcon.d.ts +0 -4
  689. package/src/components/icons/svg-icons/BackwardIcon.d.ts.map +0 -1
  690. package/src/components/icons/svg-icons/CameraIcon.d.ts +0 -4
  691. package/src/components/icons/svg-icons/CameraIcon.d.ts.map +0 -1
  692. package/src/components/icons/svg-icons/CheckIcon.d.ts +0 -4
  693. package/src/components/icons/svg-icons/CheckIcon.d.ts.map +0 -1
  694. package/src/components/icons/svg-icons/EnablePiPIcon.d.ts +0 -4
  695. package/src/components/icons/svg-icons/EnablePiPIcon.d.ts.map +0 -1
  696. package/src/components/icons/svg-icons/ForwardIcon.d.ts +0 -4
  697. package/src/components/icons/svg-icons/ForwardIcon.d.ts.map +0 -1
  698. package/src/components/icons/svg-icons/FullscreenEnterIcon.d.ts +0 -4
  699. package/src/components/icons/svg-icons/FullscreenEnterIcon.d.ts.map +0 -1
  700. package/src/components/icons/svg-icons/FullscreenExitIcon.d.ts +0 -4
  701. package/src/components/icons/svg-icons/FullscreenExitIcon.d.ts.map +0 -1
  702. package/src/components/icons/svg-icons/LoadingIcon.d.ts +0 -4
  703. package/src/components/icons/svg-icons/LoadingIcon.d.ts.map +0 -1
  704. package/src/components/icons/svg-icons/PauseIcon.d.ts +0 -4
  705. package/src/components/icons/svg-icons/PauseIcon.d.ts.map +0 -1
  706. package/src/components/icons/svg-icons/PlayIcon.d.ts +0 -4
  707. package/src/components/icons/svg-icons/PlayIcon.d.ts.map +0 -1
  708. package/src/components/icons/svg-icons/PlaybackSpeedIcon.d.ts +0 -4
  709. package/src/components/icons/svg-icons/PlaybackSpeedIcon.d.ts.map +0 -1
  710. package/src/components/icons/svg-icons/QualityIcon.d.ts +0 -4
  711. package/src/components/icons/svg-icons/QualityIcon.d.ts.map +0 -1
  712. package/src/components/icons/svg-icons/SettingsIcon.d.ts +0 -4
  713. package/src/components/icons/svg-icons/SettingsIcon.d.ts.map +0 -1
  714. package/src/components/icons/svg-icons/SliderIcon.d.ts +0 -4
  715. package/src/components/icons/svg-icons/SliderIcon.d.ts.map +0 -1
  716. package/src/components/icons/svg-icons/SubtitleIcon.d.ts +0 -4
  717. package/src/components/icons/svg-icons/SubtitleIcon.d.ts.map +0 -1
  718. package/src/components/icons/svg-icons/SubtitleOffIcon.d.ts +0 -4
  719. package/src/components/icons/svg-icons/SubtitleOffIcon.d.ts.map +0 -1
  720. package/src/components/icons/svg-icons/UnPiPIcon.d.ts +0 -4
  721. package/src/components/icons/svg-icons/UnPiPIcon.d.ts.map +0 -1
  722. package/src/components/icons/svg-icons/VolumeMutedIcon.d.ts +0 -4
  723. package/src/components/icons/svg-icons/VolumeMutedIcon.d.ts.map +0 -1
  724. package/src/components/icons/svg-icons/VolumeOneIcon.d.ts +0 -4
  725. package/src/components/icons/svg-icons/VolumeOneIcon.d.ts.map +0 -1
  726. package/src/components/icons/svg-icons/VolumeThreeIcon.d.ts +0 -4
  727. package/src/components/icons/svg-icons/VolumeThreeIcon.d.ts.map +0 -1
  728. package/src/components/icons/svg-icons/VolumeTwoIcon.d.ts +0 -4
  729. package/src/components/icons/svg-icons/VolumeTwoIcon.d.ts.map +0 -1
  730. package/src/components/legacy.d.ts +0 -13
  731. package/src/components/legacy.d.ts.map +0 -1
  732. package/src/components/media-metadata-display.d.ts +0 -11
  733. package/src/components/media-metadata-display.d.ts.map +0 -1
  734. package/src/components/media-player-audio.d.ts +0 -9
  735. package/src/components/media-player-audio.d.ts.map +0 -1
  736. package/src/components/media-player-controls.d.ts +0 -23
  737. package/src/components/media-player-controls.d.ts.map +0 -1
  738. package/src/components/media-player-error.d.ts +0 -16
  739. package/src/components/media-player-error.d.ts.map +0 -1
  740. package/src/components/media-player-fullscreen.d.ts +0 -12
  741. package/src/components/media-player-fullscreen.d.ts.map +0 -1
  742. package/src/components/media-player-hls.d.ts +0 -23
  743. package/src/components/media-player-hls.d.ts.map +0 -1
  744. package/src/components/media-player-loading.d.ts +0 -12
  745. package/src/components/media-player-loading.d.ts.map +0 -1
  746. package/src/components/media-player-play.d.ts +0 -11
  747. package/src/components/media-player-play.d.ts.map +0 -1
  748. package/src/components/media-player-root.d.ts +0 -28
  749. package/src/components/media-player-root.d.ts.map +0 -1
  750. package/src/components/media-player-seek.d.ts +0 -15
  751. package/src/components/media-player-seek.d.ts.map +0 -1
  752. package/src/components/media-player-time.d.ts +0 -12
  753. package/src/components/media-player-time.d.ts.map +0 -1
  754. package/src/components/media-player-tooltip.d.ts +0 -13
  755. package/src/components/media-player-tooltip.d.ts.map +0 -1
  756. package/src/components/media-player-video.d.ts +0 -9
  757. package/src/components/media-player-video.d.ts.map +0 -1
  758. package/src/components/media-player-volume.d.ts +0 -13
  759. package/src/components/media-player-volume.d.ts.map +0 -1
  760. package/src/components/media-player.d.ts +0 -3
  761. package/src/components/media-player.d.ts.map +0 -1
  762. package/src/components/media-suspense.d.ts +0 -78
  763. package/src/components/media-suspense.d.ts.map +0 -1
  764. package/src/components/player-settings-form.d.ts +0 -8
  765. package/src/components/player-settings-form.d.ts.map +0 -1
  766. package/src/components/react-player-wrapper.d.ts +0 -64
  767. package/src/components/react-player-wrapper.d.ts.map +0 -1
  768. package/src/components/simple-video-player.d.ts +0 -9
  769. package/src/components/simple-video-player.d.ts.map +0 -1
  770. package/src/components/ui/button.tsx +0 -49
  771. package/src/components/ui/dropdown-menu.tsx +0 -137
  772. package/src/components/ui/enhanced-seek-bar.d.ts +0 -3
  773. package/src/components/ui/enhanced-seek-bar.d.ts.map +0 -1
  774. package/src/components/ui/fullscreen-button.d.ts +0 -3
  775. package/src/components/ui/fullscreen-button.d.ts.map +0 -1
  776. package/src/components/ui/icons.tsx +0 -174
  777. package/src/components/ui/media-resource-preloader.d.ts +0 -21
  778. package/src/components/ui/media-resource-preloader.d.ts.map +0 -1
  779. package/src/components/ui/play-button.d.ts +0 -3
  780. package/src/components/ui/play-button.d.ts.map +0 -1
  781. package/src/components/ui/seek-bar.d.ts +0 -3
  782. package/src/components/ui/seek-bar.d.ts.map +0 -1
  783. package/src/components/ui/slider.tsx +0 -55
  784. package/src/components/ui/time-display.d.ts +0 -3
  785. package/src/components/ui/time-display.d.ts.map +0 -1
  786. package/src/components/ui/tooltip.tsx +0 -131
  787. package/src/components/ui/volume-control.d.ts +0 -3
  788. package/src/components/ui/volume-control.d.ts.map +0 -1
  789. package/src/components/unified/base-media-player.d.ts +0 -18
  790. package/src/components/unified/base-media-player.d.ts.map +0 -1
  791. package/src/components/unified/media-player.d.ts +0 -37
  792. package/src/components/unified/media-player.d.ts.map +0 -1
  793. package/src/components/variants/minimal/AccessibleMinimalPlayer.d.ts +0 -42
  794. package/src/components/variants/minimal/AccessibleMinimalPlayer.d.ts.map +0 -1
  795. package/src/components/variants/minimal/EnhancedMinimalMediaPlayer.d.ts +0 -44
  796. package/src/components/variants/minimal/EnhancedMinimalMediaPlayer.d.ts.map +0 -1
  797. package/src/components/variants/minimal/MinimalControls.d.ts +0 -19
  798. package/src/components/variants/minimal/MinimalControls.d.ts.map +0 -1
  799. package/src/components/variants/minimal/MinimalLoading.d.ts +0 -10
  800. package/src/components/variants/minimal/MinimalLoading.d.ts.map +0 -1
  801. package/src/components/variants/minimal/MinimalMediaPlayer.d.ts +0 -38
  802. package/src/components/variants/minimal/MinimalMediaPlayer.d.ts.map +0 -1
  803. package/src/components/variants/minimal/MinimalOverlay.d.ts +0 -11
  804. package/src/components/variants/minimal/MinimalOverlay.d.ts.map +0 -1
  805. package/src/components/variants/minimal/MinimalPlayButton.d.ts +0 -9
  806. package/src/components/variants/minimal/MinimalPlayButton.d.ts.map +0 -1
  807. package/src/components/variants/minimal/MinimalSeekBar.d.ts +0 -7
  808. package/src/components/variants/minimal/MinimalSeekBar.d.ts.map +0 -1
  809. package/src/components/variants/minimal/MinimalVolumeControl.d.ts +0 -7
  810. package/src/components/variants/minimal/MinimalVolumeControl.d.ts.map +0 -1
  811. package/src/components/variants/minimal/SimpleMinimalPlayer.d.ts +0 -22
  812. package/src/components/variants/minimal/SimpleMinimalPlayer.d.ts.map +0 -1
  813. package/src/components/variants/minimal/components/CenterPlayButton.d.ts +0 -7
  814. package/src/components/variants/minimal/components/CenterPlayButton.d.ts.map +0 -1
  815. package/src/components/variants/minimal/components/ControlBar.d.ts +0 -43
  816. package/src/components/variants/minimal/components/ControlBar.d.ts.map +0 -1
  817. package/src/components/variants/minimal/components/EnhancedSettingsMenu.d.ts +0 -24
  818. package/src/components/variants/minimal/components/EnhancedSettingsMenu.d.ts.map +0 -1
  819. package/src/components/variants/minimal/components/PlaybackControls.d.ts +0 -9
  820. package/src/components/variants/minimal/components/PlaybackControls.d.ts.map +0 -1
  821. package/src/components/variants/minimal/components/RightControls.d.ts +0 -25
  822. package/src/components/variants/minimal/components/RightControls.d.ts.map +0 -1
  823. package/src/components/variants/minimal/components/SeekBar.d.ts +0 -11
  824. package/src/components/variants/minimal/components/SeekBar.d.ts.map +0 -1
  825. package/src/components/variants/minimal/components/SettingsDropdown.d.ts +0 -9
  826. package/src/components/variants/minimal/components/SettingsDropdown.d.ts.map +0 -1
  827. package/src/components/variants/minimal/components/SubtitleDisplay.d.ts +0 -7
  828. package/src/components/variants/minimal/components/SubtitleDisplay.d.ts.map +0 -1
  829. package/src/components/variants/minimal/components/TimeDisplay.d.ts +0 -7
  830. package/src/components/variants/minimal/components/TimeDisplay.d.ts.map +0 -1
  831. package/src/components/variants/minimal/components/VideoElement.d.ts +0 -13
  832. package/src/components/variants/minimal/components/VideoElement.d.ts.map +0 -1
  833. package/src/components/variants/minimal/components/VolumeControl.d.ts +0 -13
  834. package/src/components/variants/minimal/components/VolumeControl.d.ts.map +0 -1
  835. package/src/components/variants/minimal/index.d.ts +0 -17
  836. package/src/components/variants/minimal/index.d.ts.map +0 -1
  837. package/src/components/video-player.d.ts +0 -3
  838. package/src/components/video-player.d.ts.map +0 -1
  839. package/src/context/error-handling.d.ts +0 -72
  840. package/src/context/error-handling.d.ts.map +0 -1
  841. package/src/context/media-context.d.ts +0 -104
  842. package/src/context/media-context.d.ts.map +0 -1
  843. package/src/context/media-provider.d.ts +0 -26
  844. package/src/context/media-provider.d.ts.map +0 -1
  845. package/src/context/media-store.d.ts +0 -33
  846. package/src/context/media-store.d.ts.map +0 -1
  847. package/src/context/persistence.d.ts +0 -83
  848. package/src/context/persistence.d.ts.map +0 -1
  849. package/src/core/events/event-system.d.ts +0 -170
  850. package/src/core/events/event-system.d.ts.map +0 -1
  851. package/src/core/events/hooks.d.ts +0 -33
  852. package/src/core/events/hooks.d.ts.map +0 -1
  853. package/src/core/events/index.d.ts +0 -6
  854. package/src/core/events/index.d.ts.map +0 -1
  855. package/src/core/events/middleware.d.ts +0 -39
  856. package/src/core/events/middleware.d.ts.map +0 -1
  857. package/src/core/index.d.ts +0 -8
  858. package/src/core/index.d.ts.map +0 -1
  859. package/src/core/optimization/bundle-optimizer.d.ts +0 -44
  860. package/src/core/optimization/bundle-optimizer.d.ts.map +0 -1
  861. package/src/core/performance/cicd.d.ts +0 -8
  862. package/src/core/performance/cicd.d.ts.map +0 -1
  863. package/src/core/performance/index.d.ts +0 -10
  864. package/src/core/performance/index.d.ts.map +0 -1
  865. package/src/core/performance/media-loading-optimizer.d.ts +0 -105
  866. package/src/core/performance/media-loading-optimizer.d.ts.map +0 -1
  867. package/src/core/performance/performance-budgets.d.ts +0 -68
  868. package/src/core/performance/performance-budgets.d.ts.map +0 -1
  869. package/src/core/performance/performance-monitor.d.ts +0 -95
  870. package/src/core/performance/performance-monitor.d.ts.map +0 -1
  871. package/src/core/performance/performance-testing.d.ts +0 -69
  872. package/src/core/performance/performance-testing.d.ts.map +0 -1
  873. package/src/core/plugins/base-plugin.d.ts +0 -52
  874. package/src/core/plugins/base-plugin.d.ts.map +0 -1
  875. package/src/core/plugins/enhanced-plugin-system.d.ts +0 -160
  876. package/src/core/plugins/enhanced-plugin-system.d.ts.map +0 -1
  877. package/src/core/plugins/examples/analytics-plugin.d.ts +0 -30
  878. package/src/core/plugins/examples/analytics-plugin.d.ts.map +0 -1
  879. package/src/core/plugins/index.d.ts +0 -8
  880. package/src/core/plugins/index.d.ts.map +0 -1
  881. package/src/core/plugins/registry.d.ts +0 -31
  882. package/src/core/plugins/registry.d.ts.map +0 -1
  883. package/src/core/plugins/types.d.ts +0 -101
  884. package/src/core/plugins/types.d.ts.map +0 -1
  885. package/src/core/plugins/utils.d.ts +0 -38
  886. package/src/core/plugins/utils.d.ts.map +0 -1
  887. package/src/core/progressive-loading.d.ts +0 -88
  888. package/src/core/progressive-loading.d.ts.map +0 -1
  889. package/src/core/providers/enhanced-hls-provider.d.ts +0 -50
  890. package/src/core/providers/enhanced-hls-provider.d.ts.map +0 -1
  891. package/src/core/providers/service-provider.d.ts +0 -49
  892. package/src/core/providers/service-provider.d.ts.map +0 -1
  893. package/src/core/utils.d.ts +0 -25
  894. package/src/core/utils.d.ts.map +0 -1
  895. package/src/features/media-session/media-session-manager.d.ts +0 -132
  896. package/src/features/media-session/media-session-manager.d.ts.map +0 -1
  897. package/src/features/picture-in-picture/pip-manager.d.ts +0 -94
  898. package/src/features/picture-in-picture/pip-manager.d.ts.map +0 -1
  899. package/src/features/playlist/playlist-manager.d.ts +0 -208
  900. package/src/features/playlist/playlist-manager.d.ts.map +0 -1
  901. package/src/features/subtitles/subtitle-manager.d.ts +0 -136
  902. package/src/features/subtitles/subtitle-manager.d.ts.map +0 -1
  903. package/src/features/subtitles/subtitle-parser.d.ts +0 -60
  904. package/src/features/subtitles/subtitle-parser.d.ts.map +0 -1
  905. package/src/features/thumbnails/thumbnail-generator.d.ts +0 -136
  906. package/src/features/thumbnails/thumbnail-generator.d.ts.map +0 -1
  907. package/src/hooks/accessibility/index.d.ts +0 -5
  908. package/src/hooks/accessibility/index.d.ts.map +0 -1
  909. package/src/hooks/accessibility/use-accessibility-preferences.d.ts +0 -14
  910. package/src/hooks/accessibility/use-accessibility-preferences.d.ts.map +0 -1
  911. package/src/hooks/accessibility/use-focus-management.d.ts +0 -31
  912. package/src/hooks/accessibility/use-focus-management.d.ts.map +0 -1
  913. package/src/hooks/accessibility/use-keyboard-shortcuts.d.ts +0 -38
  914. package/src/hooks/accessibility/use-keyboard-shortcuts.d.ts.map +0 -1
  915. package/src/hooks/accessibility/use-screen-reader.d.ts +0 -22
  916. package/src/hooks/accessibility/use-screen-reader.d.ts.map +0 -1
  917. package/src/hooks/core/index.d.ts +0 -18
  918. package/src/hooks/core/index.d.ts.map +0 -1
  919. package/src/hooks/legacy.d.ts +0 -18
  920. package/src/hooks/legacy.d.ts.map +0 -1
  921. package/src/hooks/use-enhanced-media-player.d.ts +0 -88
  922. package/src/hooks/use-enhanced-media-player.d.ts.map +0 -1
  923. package/src/hooks/use-intelligent-preloading.d.ts +0 -66
  924. package/src/hooks/use-intelligent-preloading.d.ts.map +0 -1
  925. package/src/hooks/use-keyboard-controls.d.ts +0 -13
  926. package/src/hooks/use-keyboard-controls.d.ts.map +0 -1
  927. package/src/hooks/use-media-actions.d.ts +0 -62
  928. package/src/hooks/use-media-actions.d.ts.map +0 -1
  929. package/src/hooks/use-media-metadata.d.ts +0 -11
  930. package/src/hooks/use-media-metadata.d.ts.map +0 -1
  931. package/src/hooks/use-media-optimistic.d.ts +0 -36
  932. package/src/hooks/use-media-optimistic.d.ts.map +0 -1
  933. package/src/hooks/use-media-player.d.ts +0 -31
  934. package/src/hooks/use-media-player.d.ts.map +0 -1
  935. package/src/hooks/use-media-state.d.ts +0 -17
  936. package/src/hooks/use-media-state.d.ts.map +0 -1
  937. package/src/hooks/use-memory-optimization.d.ts +0 -40
  938. package/src/hooks/use-memory-optimization.d.ts.map +0 -1
  939. package/src/hooks/use-mobile.ts +0 -125
  940. package/src/hooks/use-optimistic-controls.d.ts +0 -22
  941. package/src/hooks/use-optimistic-controls.d.ts.map +0 -1
  942. package/src/hooks/use-optimized-media.d.ts +0 -46
  943. package/src/hooks/use-optimized-media.d.ts.map +0 -1
  944. package/src/hooks/use-touch-gestures.d.ts +0 -47
  945. package/src/hooks/use-touch-gestures.d.ts.map +0 -1
  946. package/src/hooks/useEnhancedSubtitles.d.ts +0 -39
  947. package/src/hooks/useEnhancedSubtitles.d.ts.map +0 -1
  948. package/src/hooks/useKeyboardShortcuts.d.ts +0 -10
  949. package/src/hooks/useKeyboardShortcuts.d.ts.map +0 -1
  950. package/src/hooks/useMediaControls.d.ts +0 -9
  951. package/src/hooks/useMediaControls.d.ts.map +0 -1
  952. package/src/hooks/useScreenshot.d.ts +0 -4
  953. package/src/hooks/useScreenshot.d.ts.map +0 -1
  954. package/src/hooks/useSubtitles.d.ts +0 -8
  955. package/src/hooks/useSubtitles.d.ts.map +0 -1
  956. package/src/hooks/useVideoPlayer.d.ts +0 -32
  957. package/src/hooks/useVideoPlayer.d.ts.map +0 -1
  958. package/src/icons/components/FullscreenIcon.d.ts +0 -3
  959. package/src/icons/components/FullscreenIcon.d.ts.map +0 -1
  960. package/src/icons/components/SettingsIcon.d.ts +0 -3
  961. package/src/icons/components/SettingsIcon.d.ts.map +0 -1
  962. package/src/icons/components/animated/LoadingIcon.d.ts +0 -3
  963. package/src/icons/components/animated/LoadingIcon.d.ts.map +0 -1
  964. package/src/icons/components/animated/PlayPauseIcon.d.ts +0 -7
  965. package/src/icons/components/animated/PlayPauseIcon.d.ts.map +0 -1
  966. package/src/icons/components/media/PauseIcon.d.ts +0 -3
  967. package/src/icons/components/media/PauseIcon.d.ts.map +0 -1
  968. package/src/icons/components/media/PlayIcon.d.ts +0 -3
  969. package/src/icons/components/media/PlayIcon.d.ts.map +0 -1
  970. package/src/icons/components/volume/VolumeIcon.d.ts +0 -3
  971. package/src/icons/components/volume/VolumeIcon.d.ts.map +0 -1
  972. package/src/icons/components/volume/VolumeOffIcon.d.ts +0 -3
  973. package/src/icons/components/volume/VolumeOffIcon.d.ts.map +0 -1
  974. package/src/icons/index.d.ts +0 -28
  975. package/src/icons/index.d.ts.map +0 -1
  976. package/src/icons/provider.d.ts +0 -13
  977. package/src/icons/provider.d.ts.map +0 -1
  978. package/src/icons/types.d.ts +0 -18
  979. package/src/icons/types.d.ts.map +0 -1
  980. package/src/index-enhanced.d.ts +0 -13
  981. package/src/index-enhanced.d.ts.map +0 -1
  982. package/src/index-legacy.d.ts +0 -81
  983. package/src/index-legacy.d.ts.map +0 -1
  984. package/src/index.d.ts +0 -38
  985. package/src/index.d.ts.map +0 -1
  986. package/src/index.minimal.d.ts +0 -2
  987. package/src/index.minimal.d.ts.map +0 -1
  988. package/src/index.minimal.ts +0 -4
  989. package/src/lib/deprecation.d.ts +0 -7
  990. package/src/lib/deprecation.d.ts.map +0 -1
  991. package/src/lib/format-time.d.ts +0 -9
  992. package/src/lib/format-time.d.ts.map +0 -1
  993. package/src/lib/index.d.ts +0 -3
  994. package/src/lib/index.d.ts.map +0 -1
  995. package/src/lib/utils.d.ts +0 -3
  996. package/src/lib/utils.d.ts.map +0 -1
  997. package/src/test/setup.d.ts +0 -2
  998. package/src/test/setup.d.ts.map +0 -1
  999. package/src/types/events.d.ts +0 -41
  1000. package/src/types/events.d.ts.map +0 -1
  1001. package/src/types/formats.d.ts +0 -45
  1002. package/src/types/formats.d.ts.map +0 -1
  1003. package/src/types/index.d.ts +0 -128
  1004. package/src/types/index.d.ts.map +0 -1
@@ -11,460 +11,460 @@ let videojs: any = null
11
11
  let Hls: any = null
12
12
 
13
13
  async function loadVideoJS() {
14
- if (!videojs) {
15
- const [videojsModule, hlsModule] = await Promise.all([
16
- import("video.js"),
17
- import("hls.js")
18
- ])
19
- videojs = videojsModule.default
20
- Hls = hlsModule.default
21
-
22
- // Import plugins after Video.js is loaded
23
- await Promise.all([
24
- // @ts-ignore
25
- import("@videojs/http-streaming"),
26
- // @ts-ignore
27
- import("videojs-contrib-quality-levels"),
28
- // @ts-ignore
29
- import("videojs-hls-quality-selector")
30
- ])
31
- }
32
- return { videojs, Hls }
14
+ if (!videojs) {
15
+ const [videojsModule, hlsModule] = await Promise.all([import("video.js"), import("hls.js")])
16
+ videojs = videojsModule.default
17
+ Hls = hlsModule.default
18
+
19
+ // Import plugins after Video.js is loaded
20
+ await Promise.all([
21
+ // @ts-ignore
22
+ import("@videojs/http-streaming"),
23
+ // @ts-ignore
24
+ import("videojs-contrib-quality-levels"),
25
+ // @ts-ignore
26
+ import("videojs-hls-quality-selector")
27
+ ])
28
+ }
29
+ return { videojs, Hls }
33
30
  }
34
31
 
35
32
  export interface VideoSource {
36
- src: string
37
- type: string
38
- label?: string
39
- selected?: boolean
33
+ src: string
34
+ type: string
35
+ label?: string
36
+ selected?: boolean
40
37
  }
41
38
 
42
39
  export interface TextTrack {
43
- src: string
44
- kind: "subtitles" | "captions" | "descriptions" | "chapters" | "metadata"
45
- srclang: string
46
- label: string
47
- default?: boolean
40
+ src: string
41
+ kind: "subtitles" | "captions" | "descriptions" | "chapters" | "metadata"
42
+ srclang: string
43
+ label: string
44
+ default?: boolean
48
45
  }
49
46
 
50
47
  export interface VideoJSAdapterProps {
51
- sources: VideoSource[]
52
- poster?: string
53
- textTracks?: TextTrack[]
54
- autoplay?: boolean
55
- muted?: boolean
56
- controls?: boolean
57
- preload?: "auto" | "metadata" | "none"
58
- fluid?: boolean
59
- responsive?: boolean
60
- playbackRates?: number[]
61
- className?: string
62
- onReady?: (player: VideoJsPlayer) => void
63
- onError?: (error: any) => void
64
- hlsConfig?: any // HLS.js config
65
- enableQualitySelector?: boolean
66
- enableSubtitles?: boolean
48
+ sources: VideoSource[]
49
+ poster?: string
50
+ textTracks?: TextTrack[]
51
+ autoplay?: boolean
52
+ muted?: boolean
53
+ controls?: boolean
54
+ preload?: "auto" | "metadata" | "none"
55
+ fluid?: boolean
56
+ responsive?: boolean
57
+ playbackRates?: number[]
58
+ className?: string
59
+ onReady?: (player: VideoJsPlayer) => void
60
+ onError?: (error: any) => void
61
+ hlsConfig?: any // HLS.js config
62
+ enableQualitySelector?: boolean
63
+ enableSubtitles?: boolean
67
64
  }
68
65
 
69
66
  export function VideoJSAdapter({
70
- sources,
71
- poster,
72
- textTracks = [],
73
- autoplay = false,
74
- muted = false,
75
- controls = false,
76
- preload = "metadata",
77
- fluid = true,
78
- responsive = true,
79
- playbackRates = [0.5, 0.75, 1, 1.25, 1.5, 2],
80
- className,
81
- onReady,
82
- onError,
83
- hlsConfig = {},
84
- enableQualitySelector = true,
85
- enableSubtitles = true
67
+ sources,
68
+ poster,
69
+ textTracks = [],
70
+ autoplay = false,
71
+ muted = false,
72
+ controls = false,
73
+ preload = "metadata",
74
+ fluid = true,
75
+ responsive = true,
76
+ playbackRates = [0.5, 0.75, 1, 1.25, 1.5, 2],
77
+ className,
78
+ onReady,
79
+ onError,
80
+ hlsConfig = {},
81
+ enableQualitySelector = true,
82
+ enableSubtitles = true
86
83
  }: VideoJSAdapterProps) {
87
- const videoRef = useRef<HTMLVideoElement>(null)
88
- const playerRef = useRef<VideoJsPlayer | null>(null)
89
- const hlsRef = useRef<any | null>(null) // HLS.js instance
90
- const [isLoading, setIsLoading] = useState(true)
91
- const [error, setError] = useState<string | null>(null)
92
-
93
- const context = useMediaContext()
94
- const dispatch = useMediaDispatch()
95
-
96
- // Initialize Video.js player
97
- const initializePlayer = async () => {
98
- if (!videoRef.current || playerRef.current) return
99
-
100
- try {
101
- setIsLoading(true)
102
- const { videojs, Hls: HlsLib } = await loadVideoJS()
103
-
104
- // Check if we need HLS.js (for non-Safari browsers)
105
- const needsHlsJs = sources.some(s => s.type === "application/x-mpegURL") &&
106
- !videoRef.current.canPlayType("application/vnd.apple.mpegurl")
107
-
108
- // Video.js options
109
- const options: any = {
110
- autoplay,
111
- muted,
112
- controls,
113
- preload,
114
- fluid,
115
- responsive,
116
- playbackRates,
117
- sources: needsHlsJs ? [] : sources, // Don't set sources if using HLS.js
118
- poster,
119
- html5: {
120
- vhs: {
121
- // Video.js HTTP Streaming options
122
- overrideNative: !videoRef.current.canPlayType("application/vnd.apple.mpegurl"),
123
- enableLowInitialPlaylist: true,
124
- fastQualityChange: true,
125
- handleManifestRedirects: true
126
- }
127
- }
128
- }
129
-
130
- // Create Video.js player
131
- const player = videojs(videoRef.current, options, function() {
132
- console.log("Video.js player ready")
133
- }) as VideoJsPlayer
134
-
135
- playerRef.current = player
136
-
137
- // Add text tracks
138
- textTracks.forEach(track => {
139
- player.addRemoteTextTrack({
140
- kind: track.kind,
141
- src: track.src,
142
- srclang: track.srclang,
143
- label: track.label,
144
- default: track.default
145
- }, false)
146
- })
147
-
148
- // Setup HLS.js for non-Safari browsers if needed
149
- if (needsHlsJs) {
150
- const hlsSource = sources.find(s => s.type === "application/x-mpegURL")
151
- if (hlsSource) {
152
- const hls = new HlsLib({
153
- debug: false,
154
- enableWorker: true,
155
- lowLatencyMode: false,
156
- backBufferLength: 30,
157
- maxBufferLength: 30,
158
- maxMaxBufferLength: 600,
159
- maxBufferSize: 60 * 1000 * 1000,
160
- maxBufferHole: 0.1,
161
- highBufferWatchdogPeriod: 2,
162
- // ABR settings
163
- abrEwmaFastLive: 3.0,
164
- abrEwmaSlowLive: 9.0,
165
- abrEwmaFastVoD: 3.0,
166
- abrEwmaSlowVoD: 9.0,
167
- abrEwmaDefaultEstimate: 500000,
168
- abrBandWidthFactor: 0.95,
169
- abrBandWidthUpFactor: 0.7,
170
- abrMaxWithRealBitrate: false,
171
- maxStarvationDelay: 4,
172
- maxLoadingDelay: 4,
173
- capLevelToPlayerSize: true,
174
- capLevelOnFPSDrop: true,
175
- // Subtitle settings
176
- renderTextTracksNatively: false,
177
- subtitlePreference: {
178
- lang: navigator.language.split("-")[0],
179
- forced: false
180
- },
181
- ...hlsConfig
182
- })
183
-
184
- hlsRef.current = hls
185
-
186
- // Attach HLS to video element
187
- hls.loadSource(hlsSource.src)
188
- hls.attachMedia(videoRef.current)
189
-
190
- // HLS.js event handlers
191
- hls.on(HlsLib.Events.MANIFEST_PARSED, () => {
192
- console.log("HLS manifest parsed", {
193
- levels: hls.levels.map((l: any) => ({
194
- height: l.height,
195
- bitrate: l.bitrate,
196
- codec: l.codecSet
197
- }))
198
- })
199
-
200
- // Add quality levels to Video.js
201
- if (enableQualitySelector && (player as any).qualityLevels) {
202
- const qualityLevels = (player as any).qualityLevels()
203
-
204
- hls.levels.forEach((level: any, index: number) => {
205
- qualityLevels.addQualityLevel({
206
- id: index.toString(),
207
- label: `${level.height}p`,
208
- width: level.width,
209
- height: level.height,
210
- bitrate: level.bitrate,
211
- enabled: true
212
- })
213
- })
214
- }
215
- })
216
-
217
- hls.on(HlsLib.Events.LEVEL_SWITCHED, (_event: any, data: any) => {
218
- console.log(`HLS quality switched to level ${data.level}`)
219
- dispatch({
220
- type: MediaActionTypes.SET_QUALITY_LEVEL,
221
- detail: data.level
222
- })
223
- })
224
-
225
- hls.on(HlsLib.Events.ERROR, (_event: any, data: any) => {
226
- if (data.fatal) {
227
- switch (data.type) {
228
- case HlsLib.ErrorTypes.NETWORK_ERROR:
229
- console.error("Fatal network error encountered, try to recover")
230
- hls.startLoad()
231
- break
232
- case HlsLib.ErrorTypes.MEDIA_ERROR:
233
- console.error("Fatal media error encountered, try to recover")
234
- hls.recoverMediaError()
235
- break
236
- default:
237
- console.error("Fatal error, cannot recover")
238
- setError("Streaming error occurred")
239
- onError?.(data)
240
- hls.destroy()
241
- break
242
- }
243
- }
244
- })
245
-
246
- // Update bandwidth estimate in context
247
- hls.on(HlsLib.Events.FRAG_LOADED, () => {
248
- const estimate = hls.bandwidthEstimate
249
- if (estimate) {
250
- dispatch({
251
- type: MediaActionTypes.SET_BANDWIDTH_ESTIMATE,
252
- detail: estimate
253
- })
254
- }
255
- })
256
- }
257
- }
258
-
259
- // Enable quality selector plugin
260
- if (enableQualitySelector && (player as any).qualityLevels) {
261
- ;(player as any).hlsQualitySelector({
262
- displayCurrentQuality: true
263
- })
264
- }
265
-
266
- // Video.js event handlers to sync with MediaContext
267
- player.on("play", () => {
268
- dispatch({ type: MediaActionTypes.PLAY })
269
- })
270
-
271
- player.on("pause", () => {
272
- dispatch({ type: MediaActionTypes.PAUSE })
273
- })
274
-
275
- player.on("timeupdate", () => {
276
- dispatch({
277
- type: MediaActionTypes.SET_CURRENT_TIME,
278
- detail: player.currentTime() || 0
279
- })
280
- })
281
-
282
- player.on("durationchange", () => {
283
- dispatch({
284
- type: MediaActionTypes.SET_DURATION,
285
- detail: player.duration() || 0
286
- })
287
- })
288
-
289
- player.on("volumechange", () => {
290
- dispatch({
291
- type: MediaActionTypes.SET_VOLUME,
292
- detail: player.volume() || 0
293
- })
294
- dispatch({
295
- type: player.muted() ? MediaActionTypes.MUTE : MediaActionTypes.UNMUTE
296
- })
297
- })
298
-
299
- player.on("ended", () => {
300
- dispatch({ type: MediaActionTypes.PAUSE })
301
- })
302
-
303
- player.on("error", (e: any) => {
304
- const error = player.error()
305
- setError(error?.message || "An error occurred")
306
- dispatch({
307
- type: MediaActionTypes.SET_ERROR,
308
- detail: error?.message || "Playback error"
309
- })
310
- onError?.(error)
311
- })
312
-
313
- player.on("loadstart", () => {
314
- dispatch({ type: MediaActionTypes.SET_LOADING, detail: true })
315
- })
316
-
317
- player.on("loadeddata", () => {
318
- setIsLoading(false)
319
- dispatch({ type: MediaActionTypes.SET_LOADING, detail: false })
320
- })
321
-
322
- player.on("waiting", () => {
323
- dispatch({ type: MediaActionTypes.SET_BUFFERING, detail: true })
324
- })
325
-
326
- player.on("playing", () => {
327
- dispatch({ type: MediaActionTypes.SET_BUFFERING, detail: false })
328
- })
329
-
330
- // Text track changes
331
- player.on("texttrackchange", () => {
332
- const tracks = player.textTracks() as any
333
- const activeTracks: any[] = []
334
-
335
- if (tracks && tracks.length) {
336
- for (let i = 0; i < tracks.length; i++) {
337
- const track = tracks[i]
338
- if (track.mode === "showing") {
339
- activeTracks.push({
340
- id: track.id,
341
- label: track.label,
342
- language: track.language,
343
- kind: track.kind
344
- })
345
- }
346
- }
347
- }
348
-
349
- dispatch({
350
- type: MediaActionTypes.SET_ACTIVE_TEXT_TRACKS,
351
- detail: activeTracks
352
- })
353
- })
354
-
355
- // Update media ref in context for gesture/keyboard controls
356
- if (context.mediaRef) {
357
- context.mediaRef.current = videoRef.current
358
- }
359
-
360
- onReady?.(player)
361
- setIsLoading(false)
362
-
363
- } catch (err) {
364
- console.error("Failed to initialize Video.js player:", err)
365
- setError("Failed to initialize player")
366
- setIsLoading(false)
367
- onError?.(err)
368
- }
369
- }
370
-
371
- // Cleanup on unmount
372
- useEffect(() => {
373
- initializePlayer()
374
-
375
- return () => {
376
- if (hlsRef.current) {
377
- hlsRef.current.destroy()
378
- hlsRef.current = null
379
- }
380
-
381
- if (playerRef.current) {
382
- playerRef.current.dispose()
383
- playerRef.current = null
384
- }
385
- }
386
- }, [initializePlayer])
387
-
388
- // Expose player methods to MediaContext
389
- useEffect(() => {
390
- if (!playerRef.current || !context.mediaRef) return
391
-
392
- // Create a proxy object that bridges Video.js methods to native HTMLVideoElement methods
393
- const proxyMethods = {
394
- play: () => playerRef.current?.play(),
395
- pause: () => playerRef.current?.pause(),
396
- seekTo: (time: number) => {
397
- if (playerRef.current) {
398
- playerRef.current.currentTime(time)
399
- }
400
- },
401
- setVolume: (volume: number) => {
402
- if (playerRef.current) {
403
- playerRef.current.volume(volume)
404
- }
405
- },
406
- setMuted: (muted: boolean) => {
407
- if (playerRef.current) {
408
- playerRef.current.muted(muted)
409
- }
410
- },
411
- setQualityLevel: (level: number) => {
412
- if (hlsRef.current) {
413
- hlsRef.current.currentLevel = level
414
- }
415
- },
416
- getQualityLevels: () => {
417
- if (hlsRef.current) {
418
- return hlsRef.current.levels
419
- }
420
- return []
421
- },
422
- getCurrentQualityLevel: () => {
423
- if (hlsRef.current) {
424
- return hlsRef.current.currentLevel
425
- }
426
- return -1
427
- },
428
- getBandwidthEstimate: () => {
429
- if (hlsRef.current) {
430
- return hlsRef.current.bandwidthEstimate
431
- }
432
- return 0
433
- }
434
- }
435
-
436
- // Attach proxy methods to video element for external access
437
- if (videoRef.current) {
438
- Object.assign(videoRef.current, proxyMethods)
439
- }
440
- }, [context.mediaRef])
441
-
442
- return (
443
- <div className={cn("relative h-full w-full", className)}>
444
- <video
445
- ref={videoRef}
446
- className="video-js vjs-default-skin vjs-big-play-centered h-full w-full"
447
- playsInline
448
- />
449
-
450
- {isLoading && (
451
- <div className="absolute inset-0 flex items-center justify-center bg-black/50">
452
- <div className="text-white">
453
- <div className="h-8 w-8 animate-spin rounded-full border-white border-b-2" />
454
- </div>
455
- </div>
456
- )}
457
-
458
- {error && (
459
- <div className="absolute inset-0 flex items-center justify-center bg-black/80">
460
- <div className="text-center text-white">
461
- <p className="font-semibold text-lg">Error</p>
462
- <p className="text-sm opacity-80">{error}</p>
463
- </div>
464
- </div>
465
- )}
466
- </div>
467
- )
84
+ const videoRef = useRef<HTMLVideoElement>(null)
85
+ const playerRef = useRef<VideoJsPlayer | null>(null)
86
+ const hlsRef = useRef<any | null>(null) // HLS.js instance
87
+ const [isLoading, setIsLoading] = useState(true)
88
+ const [error, setError] = useState<string | null>(null)
89
+
90
+ const context = useMediaContext()
91
+ const dispatch = useMediaDispatch()
92
+
93
+ // Initialize Video.js player
94
+ const initializePlayer = async () => {
95
+ if (!videoRef.current || playerRef.current) return
96
+
97
+ try {
98
+ setIsLoading(true)
99
+ const { videojs, Hls: HlsLib } = await loadVideoJS()
100
+
101
+ // Check if we need HLS.js (for non-Safari browsers)
102
+ const needsHlsJs =
103
+ sources.some((s) => s.type === "application/x-mpegURL") &&
104
+ !videoRef.current.canPlayType("application/vnd.apple.mpegurl")
105
+
106
+ // Video.js options
107
+ const options: any = {
108
+ autoplay,
109
+ muted,
110
+ controls,
111
+ preload,
112
+ fluid,
113
+ responsive,
114
+ playbackRates,
115
+ sources: needsHlsJs ? [] : sources, // Don't set sources if using HLS.js
116
+ poster,
117
+ html5: {
118
+ vhs: {
119
+ // Video.js HTTP Streaming options
120
+ overrideNative: !videoRef.current.canPlayType("application/vnd.apple.mpegurl"),
121
+ enableLowInitialPlaylist: true,
122
+ fastQualityChange: true,
123
+ handleManifestRedirects: true
124
+ }
125
+ }
126
+ }
127
+
128
+ // Create Video.js player
129
+ const player = videojs(videoRef.current, options, function () {
130
+ console.log("Video.js player ready")
131
+ }) as VideoJsPlayer
132
+
133
+ playerRef.current = player
134
+
135
+ // Add text tracks
136
+ textTracks.forEach((track) => {
137
+ player.addRemoteTextTrack(
138
+ {
139
+ kind: track.kind,
140
+ src: track.src,
141
+ srclang: track.srclang,
142
+ label: track.label,
143
+ default: track.default
144
+ },
145
+ false
146
+ )
147
+ })
148
+
149
+ // Setup HLS.js for non-Safari browsers if needed
150
+ if (needsHlsJs) {
151
+ const hlsSource = sources.find((s) => s.type === "application/x-mpegURL")
152
+ if (hlsSource) {
153
+ const hls = new HlsLib({
154
+ debug: false,
155
+ enableWorker: true,
156
+ lowLatencyMode: false,
157
+ backBufferLength: 30,
158
+ maxBufferLength: 30,
159
+ maxMaxBufferLength: 600,
160
+ maxBufferSize: 60 * 1000 * 1000,
161
+ maxBufferHole: 0.1,
162
+ highBufferWatchdogPeriod: 2,
163
+ // ABR settings
164
+ abrEwmaFastLive: 3.0,
165
+ abrEwmaSlowLive: 9.0,
166
+ abrEwmaFastVoD: 3.0,
167
+ abrEwmaSlowVoD: 9.0,
168
+ abrEwmaDefaultEstimate: 500000,
169
+ abrBandWidthFactor: 0.95,
170
+ abrBandWidthUpFactor: 0.7,
171
+ abrMaxWithRealBitrate: false,
172
+ maxStarvationDelay: 4,
173
+ maxLoadingDelay: 4,
174
+ capLevelToPlayerSize: true,
175
+ capLevelOnFPSDrop: true,
176
+ // Subtitle settings
177
+ renderTextTracksNatively: false,
178
+ subtitlePreference: {
179
+ lang: navigator.language.split("-")[0],
180
+ forced: false
181
+ },
182
+ ...hlsConfig
183
+ })
184
+
185
+ hlsRef.current = hls
186
+
187
+ // Attach HLS to video element
188
+ hls.loadSource(hlsSource.src)
189
+ hls.attachMedia(videoRef.current)
190
+
191
+ // HLS.js event handlers
192
+ hls.on(HlsLib.Events.MANIFEST_PARSED, () => {
193
+ console.log("HLS manifest parsed", {
194
+ levels: hls.levels.map((l: any) => ({
195
+ height: l.height,
196
+ bitrate: l.bitrate,
197
+ codec: l.codecSet
198
+ }))
199
+ })
200
+
201
+ // Add quality levels to Video.js
202
+ if (enableQualitySelector && (player as any).qualityLevels) {
203
+ const qualityLevels = (player as any).qualityLevels()
204
+
205
+ hls.levels.forEach((level: any, index: number) => {
206
+ qualityLevels.addQualityLevel({
207
+ id: index.toString(),
208
+ label: `${level.height}p`,
209
+ width: level.width,
210
+ height: level.height,
211
+ bitrate: level.bitrate,
212
+ enabled: true
213
+ })
214
+ })
215
+ }
216
+ })
217
+
218
+ hls.on(HlsLib.Events.LEVEL_SWITCHED, (_event: any, data: any) => {
219
+ console.log(`HLS quality switched to level ${data.level}`)
220
+ dispatch({
221
+ type: MediaActionTypes.SET_QUALITY_LEVEL,
222
+ detail: data.level
223
+ })
224
+ })
225
+
226
+ hls.on(HlsLib.Events.ERROR, (_event: any, data: any) => {
227
+ if (data.fatal) {
228
+ switch (data.type) {
229
+ case HlsLib.ErrorTypes.NETWORK_ERROR:
230
+ console.error("Fatal network error encountered, try to recover")
231
+ hls.startLoad()
232
+ break
233
+ case HlsLib.ErrorTypes.MEDIA_ERROR:
234
+ console.error("Fatal media error encountered, try to recover")
235
+ hls.recoverMediaError()
236
+ break
237
+ default:
238
+ console.error("Fatal error, cannot recover")
239
+ setError("Streaming error occurred")
240
+ onError?.(data)
241
+ hls.destroy()
242
+ break
243
+ }
244
+ }
245
+ })
246
+
247
+ // Update bandwidth estimate in context
248
+ hls.on(HlsLib.Events.FRAG_LOADED, () => {
249
+ const estimate = hls.bandwidthEstimate
250
+ if (estimate) {
251
+ dispatch({
252
+ type: MediaActionTypes.SET_BANDWIDTH_ESTIMATE,
253
+ detail: estimate
254
+ })
255
+ }
256
+ })
257
+ }
258
+ }
259
+
260
+ // Enable quality selector plugin
261
+ if (enableQualitySelector && (player as any).qualityLevels) {
262
+ ;(player as any).hlsQualitySelector({
263
+ displayCurrentQuality: true
264
+ })
265
+ }
266
+
267
+ // Video.js event handlers to sync with MediaContext
268
+ player.on("play", () => {
269
+ dispatch({ type: MediaActionTypes.PLAY })
270
+ })
271
+
272
+ player.on("pause", () => {
273
+ dispatch({ type: MediaActionTypes.PAUSE })
274
+ })
275
+
276
+ player.on("timeupdate", () => {
277
+ dispatch({
278
+ type: MediaActionTypes.SET_CURRENT_TIME,
279
+ detail: player.currentTime() || 0
280
+ })
281
+ })
282
+
283
+ player.on("durationchange", () => {
284
+ dispatch({
285
+ type: MediaActionTypes.SET_DURATION,
286
+ detail: player.duration() || 0
287
+ })
288
+ })
289
+
290
+ player.on("volumechange", () => {
291
+ dispatch({
292
+ type: MediaActionTypes.SET_VOLUME,
293
+ detail: player.volume() || 0
294
+ })
295
+ dispatch({
296
+ type: player.muted() ? MediaActionTypes.MUTE : MediaActionTypes.UNMUTE
297
+ })
298
+ })
299
+
300
+ player.on("ended", () => {
301
+ dispatch({ type: MediaActionTypes.PAUSE })
302
+ })
303
+
304
+ player.on("error", (e: any) => {
305
+ const error = player.error()
306
+ setError(error?.message || "An error occurred")
307
+ dispatch({
308
+ type: MediaActionTypes.SET_ERROR,
309
+ detail: error?.message || "Playback error"
310
+ })
311
+ onError?.(error)
312
+ })
313
+
314
+ player.on("loadstart", () => {
315
+ dispatch({ type: MediaActionTypes.SET_LOADING, detail: true })
316
+ })
317
+
318
+ player.on("loadeddata", () => {
319
+ setIsLoading(false)
320
+ dispatch({ type: MediaActionTypes.SET_LOADING, detail: false })
321
+ })
322
+
323
+ player.on("waiting", () => {
324
+ dispatch({ type: MediaActionTypes.SET_BUFFERING, detail: true })
325
+ })
326
+
327
+ player.on("playing", () => {
328
+ dispatch({ type: MediaActionTypes.SET_BUFFERING, detail: false })
329
+ })
330
+
331
+ // Text track changes
332
+ player.on("texttrackchange", () => {
333
+ const tracks = player.textTracks() as any
334
+ const activeTracks: any[] = []
335
+
336
+ if (tracks && tracks.length) {
337
+ for (let i = 0; i < tracks.length; i++) {
338
+ const track = tracks[i]
339
+ if (track.mode === "showing") {
340
+ activeTracks.push({
341
+ id: track.id,
342
+ label: track.label,
343
+ language: track.language,
344
+ kind: track.kind
345
+ })
346
+ }
347
+ }
348
+ }
349
+
350
+ dispatch({
351
+ type: MediaActionTypes.SET_ACTIVE_TEXT_TRACKS,
352
+ detail: activeTracks
353
+ })
354
+ })
355
+
356
+ // Update media ref in context for gesture/keyboard controls
357
+ if (context.mediaRef) {
358
+ context.mediaRef.current = videoRef.current
359
+ }
360
+
361
+ onReady?.(player)
362
+ setIsLoading(false)
363
+ } catch (err) {
364
+ console.error("Failed to initialize Video.js player:", err)
365
+ setError("Failed to initialize player")
366
+ setIsLoading(false)
367
+ onError?.(err)
368
+ }
369
+ }
370
+
371
+ // Cleanup on unmount
372
+ useEffect(() => {
373
+ initializePlayer()
374
+
375
+ return () => {
376
+ if (hlsRef.current) {
377
+ hlsRef.current.destroy()
378
+ hlsRef.current = null
379
+ }
380
+
381
+ if (playerRef.current) {
382
+ playerRef.current.dispose()
383
+ playerRef.current = null
384
+ }
385
+ }
386
+ }, [initializePlayer])
387
+
388
+ // Expose player methods to MediaContext
389
+ useEffect(() => {
390
+ if (!playerRef.current || !context.mediaRef) return
391
+
392
+ // Create a proxy object that bridges Video.js methods to native HTMLVideoElement methods
393
+ const proxyMethods = {
394
+ play: () => playerRef.current?.play(),
395
+ pause: () => playerRef.current?.pause(),
396
+ seekTo: (time: number) => {
397
+ if (playerRef.current) {
398
+ playerRef.current.currentTime(time)
399
+ }
400
+ },
401
+ setVolume: (volume: number) => {
402
+ if (playerRef.current) {
403
+ playerRef.current.volume(volume)
404
+ }
405
+ },
406
+ setMuted: (muted: boolean) => {
407
+ if (playerRef.current) {
408
+ playerRef.current.muted(muted)
409
+ }
410
+ },
411
+ setQualityLevel: (level: number) => {
412
+ if (hlsRef.current) {
413
+ hlsRef.current.currentLevel = level
414
+ }
415
+ },
416
+ getQualityLevels: () => {
417
+ if (hlsRef.current) {
418
+ return hlsRef.current.levels
419
+ }
420
+ return []
421
+ },
422
+ getCurrentQualityLevel: () => {
423
+ if (hlsRef.current) {
424
+ return hlsRef.current.currentLevel
425
+ }
426
+ return -1
427
+ },
428
+ getBandwidthEstimate: () => {
429
+ if (hlsRef.current) {
430
+ return hlsRef.current.bandwidthEstimate
431
+ }
432
+ return 0
433
+ }
434
+ }
435
+
436
+ // Attach proxy methods to video element for external access
437
+ if (videoRef.current) {
438
+ Object.assign(videoRef.current, proxyMethods)
439
+ }
440
+ }, [context.mediaRef])
441
+
442
+ return (
443
+ <div className={cn("relative h-full w-full", className)}>
444
+ <video
445
+ ref={videoRef}
446
+ className="video-js vjs-default-skin vjs-big-play-centered h-full w-full"
447
+ playsInline
448
+ />
449
+
450
+ {isLoading && (
451
+ <div className="absolute inset-0 flex items-center justify-center bg-black/50">
452
+ <div className="text-white">
453
+ <div className="h-8 w-8 animate-spin rounded-full border-white border-b-2" />
454
+ </div>
455
+ </div>
456
+ )}
457
+
458
+ {error && (
459
+ <div className="absolute inset-0 flex items-center justify-center bg-black/80">
460
+ <div className="text-center text-white">
461
+ <p className="font-semibold text-lg">Error</p>
462
+ <p className="text-sm opacity-80">{error}</p>
463
+ </div>
464
+ </div>
465
+ )}
466
+ </div>
467
+ )
468
468
  }
469
469
 
470
470
  VideoJSAdapter.displayName = "VideoJSAdapter"