@therealtinhtute/baroiplayer 1.0.6 → 1.0.8

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 (597) hide show
  1. package/dist/index.d.ts +1 -1
  2. package/dist/index.js +1 -7
  3. package/dist/index.mjs +1 -2
  4. package/dist/package.json +1 -1
  5. package/package.json +1 -1
  6. package/dist/context/media.js +0 -2
  7. package/dist/context/media.js.map +0 -1
  8. package/dist/context/media.mjs +0 -15
  9. package/dist/context/media.mjs.map +0 -1
  10. package/dist/context/store.js +0 -2
  11. package/dist/context/store.js.map +0 -1
  12. package/dist/context/store.mjs +0 -5
  13. package/dist/context/store.mjs.map +0 -1
  14. package/dist/context-Af84FynT.js +0 -1179
  15. package/dist/context-Af84FynT.js.map +0 -1
  16. package/dist/context-CwZnPdz0.cjs +0 -23
  17. package/dist/context-CwZnPdz0.cjs.map +0 -1
  18. package/dist/core-events-B5W_j8yU.js +0 -480
  19. package/dist/core-events-B5W_j8yU.js.map +0 -1
  20. package/dist/core-events-CN0-Vhhq.cjs +0 -2
  21. package/dist/core-events-CN0-Vhhq.cjs.map +0 -1
  22. package/dist/core-plugins-Bq9KLany.js +0 -696
  23. package/dist/core-plugins-Bq9KLany.js.map +0 -1
  24. package/dist/core-plugins-CPDSHMiQ.cjs +0 -2
  25. package/dist/core-plugins-CPDSHMiQ.cjs.map +0 -1
  26. package/dist/core.js +0 -37
  27. package/dist/core.js.map +0 -1
  28. package/dist/core.mjs +0 -1217
  29. package/dist/core.mjs.map +0 -1
  30. package/dist/enhanced-components-CXnYiOt6.cjs +0 -2
  31. package/dist/enhanced-components-CXnYiOt6.cjs.map +0 -1
  32. package/dist/enhanced-components-Da0TSvKe.js +0 -1073
  33. package/dist/enhanced-components-Da0TSvKe.js.map +0 -1
  34. package/dist/hooks-BCMilGRf.cjs +0 -4
  35. package/dist/hooks-BCMilGRf.cjs.map +0 -1
  36. package/dist/hooks-BPtHV1ZT.js +0 -2042
  37. package/dist/hooks-BPtHV1ZT.js.map +0 -1
  38. package/dist/index.js.map +0 -1
  39. package/dist/index.mjs.map +0 -1
  40. package/dist/minimal-components-BHJMuaL7.cjs +0 -2
  41. package/dist/minimal-components-BHJMuaL7.cjs.map +0 -1
  42. package/dist/minimal-components-BmqRefl1.js +0 -2002
  43. package/dist/minimal-components-BmqRefl1.js.map +0 -1
  44. package/dist/mona-loading.gif +0 -0
  45. package/dist/performance-monitor--rzKTlbj.js +0 -302
  46. package/dist/performance-monitor--rzKTlbj.js.map +0 -1
  47. package/dist/performance-monitor-cjIvZE2D.cjs +0 -2
  48. package/dist/performance-monitor-cjIvZE2D.cjs.map +0 -1
  49. package/dist/src/adapters/videojs-adapter.d.ts.map +0 -1
  50. package/dist/src/adapters/videojs-adapter.js +0 -350
  51. package/dist/src/assets/mona-loading.gif +0 -0
  52. package/dist/src/components/AnimateLoading.d.ts.map +0 -1
  53. package/dist/src/components/AnimateLoading.js +0 -41
  54. package/dist/src/components/LoadingState.d.ts.map +0 -1
  55. package/dist/src/components/LoadingState.js +0 -111
  56. package/dist/src/components/accessibility/keyboard-help-overlay.d.ts.map +0 -1
  57. package/dist/src/components/accessibility/keyboard-help-overlay.js +0 -90
  58. package/dist/src/components/audio-player.d.ts.map +0 -1
  59. package/dist/src/components/audio-player.js +0 -31
  60. package/dist/src/components/basic/index.d.ts.map +0 -1
  61. package/dist/src/components/basic/index.js +0 -29
  62. package/dist/src/components/enhanced/advanced-features.d.ts.map +0 -1
  63. package/dist/src/components/enhanced/advanced-features.js +0 -64
  64. package/dist/src/components/enhanced/debug-panel.d.ts.map +0 -1
  65. package/dist/src/components/enhanced/debug-panel.js +0 -94
  66. package/dist/src/components/enhanced/enhanced-controls.d.ts.map +0 -1
  67. package/dist/src/components/enhanced/enhanced-controls.js +0 -233
  68. package/dist/src/components/enhanced/enhanced-media-player.d.ts.map +0 -1
  69. package/dist/src/components/enhanced/enhanced-media-player.js +0 -316
  70. package/dist/src/components/enhanced/error-handling.d.ts.map +0 -1
  71. package/dist/src/components/enhanced/error-handling.js +0 -153
  72. package/dist/src/components/enhanced/index.d.ts.map +0 -1
  73. package/dist/src/components/enhanced/index.js +0 -10
  74. package/dist/src/components/enhanced/media-player-enhanced.d.ts.map +0 -1
  75. package/dist/src/components/enhanced/media-player-enhanced.js +0 -250
  76. package/dist/src/components/examples/basic-video-player.d.ts.map +0 -1
  77. package/dist/src/components/examples/basic-video-player.js +0 -16
  78. package/dist/src/components/examples/custom-controls-example.d.ts.map +0 -1
  79. package/dist/src/components/examples/custom-controls-example.js +0 -12
  80. package/dist/src/components/examples/enhanced-controls-example.d.ts.map +0 -1
  81. package/dist/src/components/examples/enhanced-controls-example.js +0 -18
  82. package/dist/src/components/examples/enhanced-media-player-example.d.ts.map +0 -1
  83. package/dist/src/components/examples/enhanced-media-player-example.js +0 -13
  84. package/dist/src/components/examples/loading-states-demo.d.ts.map +0 -1
  85. package/dist/src/components/examples/loading-states-demo.js +0 -41
  86. package/dist/src/components/examples/react-19-demo.d.ts.map +0 -1
  87. package/dist/src/components/examples/react-19-demo.js +0 -104
  88. package/dist/src/components/examples/volume-orientation-demo.d.ts.map +0 -1
  89. package/dist/src/components/examples/volume-orientation-demo.js +0 -31
  90. package/dist/src/components/icon-demo.d.ts.map +0 -1
  91. package/dist/src/components/icon-demo.js +0 -16
  92. package/dist/src/components/icons/index.d.ts.map +0 -1
  93. package/dist/src/components/icons/index.js +0 -59
  94. package/dist/src/components/icons/svg-icons/ArrowLeftIcon.d.ts.map +0 -1
  95. package/dist/src/components/icons/svg-icons/ArrowLeftIcon.js +0 -3
  96. package/dist/src/components/icons/svg-icons/ArrowRightIcon.d.ts.map +0 -1
  97. package/dist/src/components/icons/svg-icons/ArrowRightIcon.js +0 -3
  98. package/dist/src/components/icons/svg-icons/AudioIcon.d.ts.map +0 -1
  99. package/dist/src/components/icons/svg-icons/AudioIcon.js +0 -4
  100. package/dist/src/components/icons/svg-icons/BackwardIcon.d.ts.map +0 -1
  101. package/dist/src/components/icons/svg-icons/BackwardIcon.js +0 -3
  102. package/dist/src/components/icons/svg-icons/CameraIcon.d.ts.map +0 -1
  103. package/dist/src/components/icons/svg-icons/CameraIcon.js +0 -4
  104. package/dist/src/components/icons/svg-icons/CheckIcon.d.ts.map +0 -1
  105. package/dist/src/components/icons/svg-icons/CheckIcon.js +0 -4
  106. package/dist/src/components/icons/svg-icons/EnablePiPIcon.d.ts.map +0 -1
  107. package/dist/src/components/icons/svg-icons/EnablePiPIcon.js +0 -5
  108. package/dist/src/components/icons/svg-icons/ForwardIcon.d.ts.map +0 -1
  109. package/dist/src/components/icons/svg-icons/ForwardIcon.js +0 -3
  110. package/dist/src/components/icons/svg-icons/FullscreenEnterIcon.d.ts.map +0 -1
  111. package/dist/src/components/icons/svg-icons/FullscreenEnterIcon.js +0 -3
  112. package/dist/src/components/icons/svg-icons/FullscreenExitIcon.d.ts.map +0 -1
  113. package/dist/src/components/icons/svg-icons/FullscreenExitIcon.js +0 -3
  114. package/dist/src/components/icons/svg-icons/LoadingIcon.d.ts.map +0 -1
  115. package/dist/src/components/icons/svg-icons/LoadingIcon.js +0 -3
  116. package/dist/src/components/icons/svg-icons/PauseIcon.d.ts.map +0 -1
  117. package/dist/src/components/icons/svg-icons/PauseIcon.js +0 -3
  118. package/dist/src/components/icons/svg-icons/PlayIcon.d.ts.map +0 -1
  119. package/dist/src/components/icons/svg-icons/PlayIcon.js +0 -3
  120. package/dist/src/components/icons/svg-icons/PlaybackSpeedIcon.d.ts.map +0 -1
  121. package/dist/src/components/icons/svg-icons/PlaybackSpeedIcon.js +0 -3
  122. package/dist/src/components/icons/svg-icons/QualityIcon.d.ts.map +0 -1
  123. package/dist/src/components/icons/svg-icons/QualityIcon.js +0 -3
  124. package/dist/src/components/icons/svg-icons/SettingsIcon.d.ts.map +0 -1
  125. package/dist/src/components/icons/svg-icons/SettingsIcon.js +0 -3
  126. package/dist/src/components/icons/svg-icons/SliderIcon.d.ts.map +0 -1
  127. package/dist/src/components/icons/svg-icons/SliderIcon.js +0 -3
  128. package/dist/src/components/icons/svg-icons/SubtitleIcon.d.ts.map +0 -1
  129. package/dist/src/components/icons/svg-icons/SubtitleIcon.js +0 -3
  130. package/dist/src/components/icons/svg-icons/SubtitleOffIcon.d.ts.map +0 -1
  131. package/dist/src/components/icons/svg-icons/SubtitleOffIcon.js +0 -3
  132. package/dist/src/components/icons/svg-icons/UnPiPIcon.d.ts.map +0 -1
  133. package/dist/src/components/icons/svg-icons/UnPiPIcon.js +0 -5
  134. package/dist/src/components/icons/svg-icons/VolumeMutedIcon.d.ts.map +0 -1
  135. package/dist/src/components/icons/svg-icons/VolumeMutedIcon.js +0 -3
  136. package/dist/src/components/icons/svg-icons/VolumeOneIcon.d.ts.map +0 -1
  137. package/dist/src/components/icons/svg-icons/VolumeOneIcon.js +0 -3
  138. package/dist/src/components/icons/svg-icons/VolumeThreeIcon.d.ts.map +0 -1
  139. package/dist/src/components/icons/svg-icons/VolumeThreeIcon.js +0 -3
  140. package/dist/src/components/icons/svg-icons/VolumeTwoIcon.d.ts.map +0 -1
  141. package/dist/src/components/icons/svg-icons/VolumeTwoIcon.js +0 -3
  142. package/dist/src/components/legacy.d.ts.map +0 -1
  143. package/dist/src/components/legacy.js +0 -52
  144. package/dist/src/components/media-metadata-display.d.ts.map +0 -1
  145. package/dist/src/components/media-metadata-display.js +0 -20
  146. package/dist/src/components/media-player-audio.d.ts.map +0 -1
  147. package/dist/src/components/media-player-audio.js +0 -18
  148. package/dist/src/components/media-player-controls.d.ts.map +0 -1
  149. package/dist/src/components/media-player-controls.js +0 -150
  150. package/dist/src/components/media-player-error.d.ts.map +0 -1
  151. package/dist/src/components/media-player-error.js +0 -85
  152. package/dist/src/components/media-player-fullscreen.d.ts.map +0 -1
  153. package/dist/src/components/media-player-fullscreen.js +0 -68
  154. package/dist/src/components/media-player-hls.d.ts.map +0 -1
  155. package/dist/src/components/media-player-hls.js +0 -20
  156. package/dist/src/components/media-player-loading.d.ts.map +0 -1
  157. package/dist/src/components/media-player-loading.js +0 -53
  158. package/dist/src/components/media-player-play.d.ts.map +0 -1
  159. package/dist/src/components/media-player-play.js +0 -44
  160. package/dist/src/components/media-player-root.d.ts.map +0 -1
  161. package/dist/src/components/media-player-root.js +0 -243
  162. package/dist/src/components/media-player-seek.d.ts.map +0 -1
  163. package/dist/src/components/media-player-seek.js +0 -92
  164. package/dist/src/components/media-player-time.d.ts.map +0 -1
  165. package/dist/src/components/media-player-time.js +0 -57
  166. package/dist/src/components/media-player-tooltip.d.ts.map +0 -1
  167. package/dist/src/components/media-player-tooltip.js +0 -14
  168. package/dist/src/components/media-player-video.d.ts.map +0 -1
  169. package/dist/src/components/media-player-video.js +0 -18
  170. package/dist/src/components/media-player-volume.d.ts.map +0 -1
  171. package/dist/src/components/media-player-volume.js +0 -88
  172. package/dist/src/components/media-player.d.ts.map +0 -1
  173. package/dist/src/components/media-player.js +0 -67
  174. package/dist/src/components/media-suspense.d.ts.map +0 -1
  175. package/dist/src/components/media-suspense.js +0 -173
  176. package/dist/src/components/player-settings-form.d.ts.map +0 -1
  177. package/dist/src/components/player-settings-form.js +0 -46
  178. package/dist/src/components/react-player-wrapper.d.ts.map +0 -1
  179. package/dist/src/components/react-player-wrapper.js +0 -163
  180. package/dist/src/components/simple-video-player.d.ts.map +0 -1
  181. package/dist/src/components/simple-video-player.js +0 -41
  182. package/dist/src/components/ui/enhanced-seek-bar.d.ts.map +0 -1
  183. package/dist/src/components/ui/enhanced-seek-bar.js +0 -112
  184. package/dist/src/components/ui/fullscreen-button.d.ts.map +0 -1
  185. package/dist/src/components/ui/fullscreen-button.js +0 -21
  186. package/dist/src/components/ui/media-resource-preloader.d.ts.map +0 -1
  187. package/dist/src/components/ui/media-resource-preloader.js +0 -295
  188. package/dist/src/components/ui/play-button.d.ts.map +0 -1
  189. package/dist/src/components/ui/play-button.js +0 -26
  190. package/dist/src/components/ui/seek-bar.d.ts.map +0 -1
  191. package/dist/src/components/ui/seek-bar.js +0 -54
  192. package/dist/src/components/ui/time-display.d.ts.map +0 -1
  193. package/dist/src/components/ui/time-display.js +0 -18
  194. package/dist/src/components/ui/volume-control.d.ts.map +0 -1
  195. package/dist/src/components/ui/volume-control.js +0 -71
  196. package/dist/src/components/unified/base-media-player.d.ts.map +0 -1
  197. package/dist/src/components/unified/base-media-player.js +0 -104
  198. package/dist/src/components/unified/media-player.d.ts.map +0 -1
  199. package/dist/src/components/unified/media-player.js +0 -41
  200. package/dist/src/components/variants/minimal/AccessibleMinimalPlayer.d.ts.map +0 -1
  201. package/dist/src/components/variants/minimal/AccessibleMinimalPlayer.js +0 -322
  202. package/dist/src/components/variants/minimal/EnhancedMinimalMediaPlayer.d.ts.map +0 -1
  203. package/dist/src/components/variants/minimal/EnhancedMinimalMediaPlayer.js +0 -280
  204. package/dist/src/components/variants/minimal/MinimalControls.d.ts.map +0 -1
  205. package/dist/src/components/variants/minimal/MinimalControls.js +0 -19
  206. package/dist/src/components/variants/minimal/MinimalLoading.d.ts.map +0 -1
  207. package/dist/src/components/variants/minimal/MinimalLoading.js +0 -6
  208. package/dist/src/components/variants/minimal/MinimalMediaPlayer.d.ts.map +0 -1
  209. package/dist/src/components/variants/minimal/MinimalMediaPlayer.js +0 -135
  210. package/dist/src/components/variants/minimal/MinimalOverlay.d.ts.map +0 -1
  211. package/dist/src/components/variants/minimal/MinimalOverlay.js +0 -15
  212. package/dist/src/components/variants/minimal/MinimalPlayButton.d.ts.map +0 -1
  213. package/dist/src/components/variants/minimal/MinimalPlayButton.js +0 -29
  214. package/dist/src/components/variants/minimal/MinimalSeekBar.d.ts.map +0 -1
  215. package/dist/src/components/variants/minimal/MinimalSeekBar.js +0 -73
  216. package/dist/src/components/variants/minimal/MinimalVolumeControl.d.ts.map +0 -1
  217. package/dist/src/components/variants/minimal/MinimalVolumeControl.js +0 -29
  218. package/dist/src/components/variants/minimal/SimpleMinimalPlayer.d.ts.map +0 -1
  219. package/dist/src/components/variants/minimal/SimpleMinimalPlayer.js +0 -51
  220. package/dist/src/components/variants/minimal/components/CenterPlayButton.d.ts.map +0 -1
  221. package/dist/src/components/variants/minimal/components/CenterPlayButton.js +0 -8
  222. package/dist/src/components/variants/minimal/components/ControlBar.d.ts.map +0 -1
  223. package/dist/src/components/variants/minimal/components/ControlBar.js +0 -10
  224. package/dist/src/components/variants/minimal/components/EnhancedSettingsMenu.d.ts.map +0 -1
  225. package/dist/src/components/variants/minimal/components/EnhancedSettingsMenu.js +0 -68
  226. package/dist/src/components/variants/minimal/components/PlaybackControls.d.ts.map +0 -1
  227. package/dist/src/components/variants/minimal/components/PlaybackControls.js +0 -9
  228. package/dist/src/components/variants/minimal/components/RightControls.d.ts.map +0 -1
  229. package/dist/src/components/variants/minimal/components/RightControls.js +0 -40
  230. package/dist/src/components/variants/minimal/components/SeekBar.d.ts.map +0 -1
  231. package/dist/src/components/variants/minimal/components/SeekBar.js +0 -43
  232. package/dist/src/components/variants/minimal/components/SettingsDropdown.d.ts.map +0 -1
  233. package/dist/src/components/variants/minimal/components/SettingsDropdown.js +0 -18
  234. package/dist/src/components/variants/minimal/components/SubtitleDisplay.d.ts.map +0 -1
  235. package/dist/src/components/variants/minimal/components/SubtitleDisplay.js +0 -6
  236. package/dist/src/components/variants/minimal/components/TimeDisplay.d.ts.map +0 -1
  237. package/dist/src/components/variants/minimal/components/TimeDisplay.js +0 -5
  238. package/dist/src/components/variants/minimal/components/VideoElement.d.ts.map +0 -1
  239. package/dist/src/components/variants/minimal/components/VideoElement.js +0 -4
  240. package/dist/src/components/variants/minimal/components/VolumeControl.d.ts.map +0 -1
  241. package/dist/src/components/variants/minimal/components/VolumeControl.js +0 -99
  242. package/dist/src/components/variants/minimal/index.d.ts.map +0 -1
  243. package/dist/src/components/variants/minimal/index.js +0 -8
  244. package/dist/src/components/video-player.d.ts.map +0 -1
  245. package/dist/src/components/video-player.js +0 -38
  246. package/dist/src/context/error-handling.d.ts.map +0 -1
  247. package/dist/src/context/error-handling.js +0 -300
  248. package/dist/src/context/media-context.d.ts.map +0 -1
  249. package/dist/src/context/media-context.js +0 -121
  250. package/dist/src/context/media-provider.d.ts.map +0 -1
  251. package/dist/src/context/media-provider.js +0 -164
  252. package/dist/src/context/media-store.d.ts.map +0 -1
  253. package/dist/src/context/media-store.js +0 -273
  254. package/dist/src/context/persistence.d.ts.map +0 -1
  255. package/dist/src/context/persistence.js +0 -356
  256. package/dist/src/core/events/event-system.d.ts.map +0 -1
  257. package/dist/src/core/events/event-system.js +0 -288
  258. package/dist/src/core/events/hooks.d.ts.map +0 -1
  259. package/dist/src/core/events/hooks.js +0 -198
  260. package/dist/src/core/events/index.d.ts.map +0 -1
  261. package/dist/src/core/events/index.js +0 -7
  262. package/dist/src/core/events/middleware.d.ts.map +0 -1
  263. package/dist/src/core/events/middleware.js +0 -219
  264. package/dist/src/core/index.d.ts.map +0 -1
  265. package/dist/src/core/index.js +0 -15
  266. package/dist/src/core/optimization/bundle-optimizer.d.ts.map +0 -1
  267. package/dist/src/core/optimization/bundle-optimizer.js +0 -217
  268. package/dist/src/core/performance/cicd.d.ts.map +0 -1
  269. package/dist/src/core/performance/cicd.js +0 -83
  270. package/dist/src/core/performance/index.d.ts.map +0 -1
  271. package/dist/src/core/performance/index.js +0 -14
  272. package/dist/src/core/performance/media-loading-optimizer.d.ts.map +0 -1
  273. package/dist/src/core/performance/media-loading-optimizer.js +0 -404
  274. package/dist/src/core/performance/performance-budgets.d.ts.map +0 -1
  275. package/dist/src/core/performance/performance-budgets.js +0 -326
  276. package/dist/src/core/performance/performance-monitor.d.ts.map +0 -1
  277. package/dist/src/core/performance/performance-monitor.js +0 -297
  278. package/dist/src/core/performance/performance-testing.d.ts.map +0 -1
  279. package/dist/src/core/performance/performance-testing.js +0 -314
  280. package/dist/src/core/plugins/base-plugin.d.ts.map +0 -1
  281. package/dist/src/core/plugins/base-plugin.js +0 -151
  282. package/dist/src/core/plugins/enhanced-plugin-system.d.ts.map +0 -1
  283. package/dist/src/core/plugins/enhanced-plugin-system.js +0 -305
  284. package/dist/src/core/plugins/examples/analytics-plugin.d.ts.map +0 -1
  285. package/dist/src/core/plugins/examples/analytics-plugin.js +0 -191
  286. package/dist/src/core/plugins/index.d.ts.map +0 -1
  287. package/dist/src/core/plugins/index.js +0 -9
  288. package/dist/src/core/plugins/registry.d.ts.map +0 -1
  289. package/dist/src/core/plugins/registry.js +0 -261
  290. package/dist/src/core/plugins/types.d.ts.map +0 -1
  291. package/dist/src/core/plugins/types.js +0 -31
  292. package/dist/src/core/plugins/utils.d.ts.map +0 -1
  293. package/dist/src/core/plugins/utils.js +0 -274
  294. package/dist/src/core/progressive-loading.d.ts.map +0 -1
  295. package/dist/src/core/progressive-loading.js +0 -239
  296. package/dist/src/core/providers/enhanced-hls-provider.d.ts.map +0 -1
  297. package/dist/src/core/providers/enhanced-hls-provider.js +0 -273
  298. package/dist/src/core/providers/service-provider.d.ts.map +0 -1
  299. package/dist/src/core/providers/service-provider.js +0 -105
  300. package/dist/src/core/utils.d.ts.map +0 -1
  301. package/dist/src/core/utils.js +0 -21
  302. package/dist/src/features/media-session/media-session-manager.d.ts.map +0 -1
  303. package/dist/src/features/media-session/media-session-manager.js +0 -331
  304. package/dist/src/features/picture-in-picture/pip-manager.d.ts.map +0 -1
  305. package/dist/src/features/picture-in-picture/pip-manager.js +0 -353
  306. package/dist/src/features/playlist/playlist-manager.d.ts.map +0 -1
  307. package/dist/src/features/playlist/playlist-manager.js +0 -475
  308. package/dist/src/features/subtitles/subtitle-manager.d.ts.map +0 -1
  309. package/dist/src/features/subtitles/subtitle-manager.js +0 -335
  310. package/dist/src/features/subtitles/subtitle-parser.d.ts.map +0 -1
  311. package/dist/src/features/subtitles/subtitle-parser.js +0 -217
  312. package/dist/src/features/thumbnails/thumbnail-generator.d.ts.map +0 -1
  313. package/dist/src/features/thumbnails/thumbnail-generator.js +0 -388
  314. package/dist/src/hooks/accessibility/index.d.ts.map +0 -1
  315. package/dist/src/hooks/accessibility/index.js +0 -4
  316. package/dist/src/hooks/accessibility/use-accessibility-preferences.d.ts.map +0 -1
  317. package/dist/src/hooks/accessibility/use-accessibility-preferences.js +0 -156
  318. package/dist/src/hooks/accessibility/use-focus-management.d.ts.map +0 -1
  319. package/dist/src/hooks/accessibility/use-focus-management.js +0 -142
  320. package/dist/src/hooks/accessibility/use-keyboard-shortcuts.d.ts.map +0 -1
  321. package/dist/src/hooks/accessibility/use-keyboard-shortcuts.js +0 -101
  322. package/dist/src/hooks/accessibility/use-screen-reader.d.ts.map +0 -1
  323. package/dist/src/hooks/accessibility/use-screen-reader.js +0 -148
  324. package/dist/src/hooks/core/index.d.ts.map +0 -1
  325. package/dist/src/hooks/core/index.js +0 -19
  326. package/dist/src/hooks/legacy.d.ts.map +0 -1
  327. package/dist/src/hooks/legacy.js +0 -17
  328. package/dist/src/hooks/use-enhanced-media-player.d.ts.map +0 -1
  329. package/dist/src/hooks/use-enhanced-media-player.js +0 -395
  330. package/dist/src/hooks/use-intelligent-preloading.d.ts.map +0 -1
  331. package/dist/src/hooks/use-intelligent-preloading.js +0 -258
  332. package/dist/src/hooks/use-keyboard-controls.d.ts.map +0 -1
  333. package/dist/src/hooks/use-keyboard-controls.js +0 -83
  334. package/dist/src/hooks/use-media-actions.d.ts.map +0 -1
  335. package/dist/src/hooks/use-media-actions.js +0 -121
  336. package/dist/src/hooks/use-media-metadata.d.ts.map +0 -1
  337. package/dist/src/hooks/use-media-metadata.js +0 -74
  338. package/dist/src/hooks/use-media-optimistic.d.ts.map +0 -1
  339. package/dist/src/hooks/use-media-optimistic.js +0 -205
  340. package/dist/src/hooks/use-media-player.d.ts.map +0 -1
  341. package/dist/src/hooks/use-media-player.js +0 -251
  342. package/dist/src/hooks/use-media-state.d.ts.map +0 -1
  343. package/dist/src/hooks/use-media-state.js +0 -162
  344. package/dist/src/hooks/use-memory-optimization.d.ts.map +0 -1
  345. package/dist/src/hooks/use-memory-optimization.js +0 -288
  346. package/dist/src/hooks/use-optimistic-controls.d.ts.map +0 -1
  347. package/dist/src/hooks/use-optimistic-controls.js +0 -60
  348. package/dist/src/hooks/use-optimized-media.d.ts.map +0 -1
  349. package/dist/src/hooks/use-optimized-media.js +0 -211
  350. package/dist/src/hooks/use-touch-gestures.d.ts.map +0 -1
  351. package/dist/src/hooks/use-touch-gestures.js +0 -289
  352. package/dist/src/hooks/useEnhancedSubtitles.d.ts.map +0 -1
  353. package/dist/src/hooks/useEnhancedSubtitles.js +0 -205
  354. package/dist/src/hooks/useKeyboardShortcuts.d.ts.map +0 -1
  355. package/dist/src/hooks/useKeyboardShortcuts.js +0 -59
  356. package/dist/src/hooks/useMediaControls.d.ts.map +0 -1
  357. package/dist/src/hooks/useMediaControls.js +0 -44
  358. package/dist/src/hooks/useScreenshot.d.ts.map +0 -1
  359. package/dist/src/hooks/useScreenshot.js +0 -56
  360. package/dist/src/hooks/useSubtitles.d.ts.map +0 -1
  361. package/dist/src/hooks/useSubtitles.js +0 -73
  362. package/dist/src/hooks/useVideoPlayer.d.ts.map +0 -1
  363. package/dist/src/hooks/useVideoPlayer.js +0 -184
  364. package/dist/src/icons/components/FullscreenIcon.d.ts.map +0 -1
  365. package/dist/src/icons/components/FullscreenIcon.js +0 -11
  366. package/dist/src/icons/components/SettingsIcon.d.ts.map +0 -1
  367. package/dist/src/icons/components/SettingsIcon.js +0 -11
  368. package/dist/src/icons/components/animated/LoadingIcon.d.ts.map +0 -1
  369. package/dist/src/icons/components/animated/LoadingIcon.js +0 -11
  370. package/dist/src/icons/components/animated/PlayPauseIcon.d.ts.map +0 -1
  371. package/dist/src/icons/components/animated/PlayPauseIcon.js +0 -9
  372. package/dist/src/icons/components/media/PauseIcon.d.ts.map +0 -1
  373. package/dist/src/icons/components/media/PauseIcon.js +0 -12
  374. package/dist/src/icons/components/media/PlayIcon.d.ts.map +0 -1
  375. package/dist/src/icons/components/media/PlayIcon.js +0 -12
  376. package/dist/src/icons/components/volume/VolumeIcon.d.ts.map +0 -1
  377. package/dist/src/icons/components/volume/VolumeIcon.js +0 -11
  378. package/dist/src/icons/components/volume/VolumeOffIcon.d.ts.map +0 -1
  379. package/dist/src/icons/components/volume/VolumeOffIcon.js +0 -11
  380. package/dist/src/icons/index.d.ts.map +0 -1
  381. package/dist/src/icons/index.js +0 -45
  382. package/dist/src/icons/provider.d.ts.map +0 -1
  383. package/dist/src/icons/provider.js +0 -37
  384. package/dist/src/icons/types.d.ts.map +0 -1
  385. package/dist/src/icons/types.js +0 -1
  386. package/dist/src/index-enhanced.d.ts.map +0 -1
  387. package/dist/src/index-enhanced.js +0 -16
  388. package/dist/src/index-legacy.d.ts.map +0 -1
  389. package/dist/src/index-legacy.js +0 -97
  390. package/dist/src/index.d.ts.map +0 -1
  391. package/dist/src/index.js +0 -90
  392. package/dist/src/index.minimal.d.ts.map +0 -1
  393. package/dist/src/index.minimal.js +0 -3
  394. package/dist/src/lib/deprecation.d.ts.map +0 -1
  395. package/dist/src/lib/deprecation.js +0 -31
  396. package/dist/src/lib/format-time.d.ts.map +0 -1
  397. package/dist/src/lib/format-time.js +0 -32
  398. package/dist/src/lib/index.d.ts.map +0 -1
  399. package/dist/src/lib/index.js +0 -3
  400. package/dist/src/lib/utils.d.ts.map +0 -1
  401. package/dist/src/lib/utils.js +0 -5
  402. package/dist/src/test/setup.d.ts.map +0 -1
  403. package/dist/src/test/setup.js +0 -65
  404. package/dist/src/types/events.d.ts.map +0 -1
  405. package/dist/src/types/events.js +0 -2
  406. package/dist/src/types/formats.d.ts.map +0 -1
  407. package/dist/src/types/formats.js +0 -63
  408. package/dist/src/types/index.d.ts.map +0 -1
  409. package/dist/src/types/index.js +0 -4
  410. package/dist/utils-Db13763z.cjs +0 -9
  411. package/dist/utils-Db13763z.cjs.map +0 -1
  412. package/dist/utils-nTO4AnHo.js +0 -2809
  413. package/dist/utils-nTO4AnHo.js.map +0 -1
  414. package/dist/utils.js +0 -2
  415. package/dist/utils.js.map +0 -1
  416. package/dist/utils.mjs +0 -7
  417. package/dist/utils.mjs.map +0 -1
  418. package/src/adapters/videojs-adapter.js +0 -350
  419. package/src/components/AnimateLoading.js +0 -41
  420. package/src/components/LoadingState.js +0 -111
  421. package/src/components/accessibility/keyboard-help-overlay.js +0 -90
  422. package/src/components/audio-player.js +0 -31
  423. package/src/components/basic/index.js +0 -29
  424. package/src/components/enhanced/advanced-features.js +0 -64
  425. package/src/components/enhanced/debug-panel.js +0 -94
  426. package/src/components/enhanced/enhanced-controls.js +0 -233
  427. package/src/components/enhanced/enhanced-media-player.js +0 -316
  428. package/src/components/enhanced/error-handling.js +0 -153
  429. package/src/components/enhanced/index.js +0 -10
  430. package/src/components/enhanced/media-player-enhanced.js +0 -250
  431. package/src/components/examples/basic-video-player.js +0 -16
  432. package/src/components/examples/custom-controls-example.js +0 -12
  433. package/src/components/examples/enhanced-controls-example.js +0 -18
  434. package/src/components/examples/enhanced-media-player-example.js +0 -13
  435. package/src/components/examples/loading-states-demo.js +0 -41
  436. package/src/components/examples/react-19-demo.js +0 -104
  437. package/src/components/examples/volume-orientation-demo.js +0 -31
  438. package/src/components/icon-demo.js +0 -16
  439. package/src/components/icons/index.js +0 -59
  440. package/src/components/icons/svg-icons/ArrowLeftIcon.js +0 -3
  441. package/src/components/icons/svg-icons/ArrowRightIcon.js +0 -3
  442. package/src/components/icons/svg-icons/AudioIcon.js +0 -4
  443. package/src/components/icons/svg-icons/BackwardIcon.js +0 -3
  444. package/src/components/icons/svg-icons/CameraIcon.js +0 -4
  445. package/src/components/icons/svg-icons/CheckIcon.js +0 -4
  446. package/src/components/icons/svg-icons/EnablePiPIcon.js +0 -5
  447. package/src/components/icons/svg-icons/ForwardIcon.js +0 -3
  448. package/src/components/icons/svg-icons/FullscreenEnterIcon.js +0 -3
  449. package/src/components/icons/svg-icons/FullscreenExitIcon.js +0 -3
  450. package/src/components/icons/svg-icons/LoadingIcon.js +0 -3
  451. package/src/components/icons/svg-icons/PauseIcon.js +0 -3
  452. package/src/components/icons/svg-icons/PlayIcon.js +0 -3
  453. package/src/components/icons/svg-icons/PlaybackSpeedIcon.js +0 -3
  454. package/src/components/icons/svg-icons/QualityIcon.js +0 -3
  455. package/src/components/icons/svg-icons/SettingsIcon.js +0 -3
  456. package/src/components/icons/svg-icons/SliderIcon.js +0 -3
  457. package/src/components/icons/svg-icons/SubtitleIcon.js +0 -3
  458. package/src/components/icons/svg-icons/SubtitleOffIcon.js +0 -3
  459. package/src/components/icons/svg-icons/UnPiPIcon.js +0 -5
  460. package/src/components/icons/svg-icons/VolumeMutedIcon.js +0 -3
  461. package/src/components/icons/svg-icons/VolumeOneIcon.js +0 -3
  462. package/src/components/icons/svg-icons/VolumeThreeIcon.js +0 -3
  463. package/src/components/icons/svg-icons/VolumeTwoIcon.js +0 -3
  464. package/src/components/legacy.js +0 -52
  465. package/src/components/media-metadata-display.js +0 -20
  466. package/src/components/media-player-audio.js +0 -18
  467. package/src/components/media-player-controls.js +0 -150
  468. package/src/components/media-player-error.js +0 -85
  469. package/src/components/media-player-fullscreen.js +0 -68
  470. package/src/components/media-player-hls.js +0 -20
  471. package/src/components/media-player-loading.js +0 -53
  472. package/src/components/media-player-play.js +0 -44
  473. package/src/components/media-player-root.js +0 -243
  474. package/src/components/media-player-seek.js +0 -92
  475. package/src/components/media-player-time.js +0 -57
  476. package/src/components/media-player-tooltip.js +0 -14
  477. package/src/components/media-player-video.js +0 -18
  478. package/src/components/media-player-volume.js +0 -88
  479. package/src/components/media-player.js +0 -67
  480. package/src/components/media-suspense.js +0 -173
  481. package/src/components/player-settings-form.js +0 -46
  482. package/src/components/react-player-wrapper.js +0 -163
  483. package/src/components/simple-video-player.js +0 -41
  484. package/src/components/ui/enhanced-seek-bar.js +0 -112
  485. package/src/components/ui/fullscreen-button.js +0 -21
  486. package/src/components/ui/media-resource-preloader.js +0 -295
  487. package/src/components/ui/play-button.js +0 -26
  488. package/src/components/ui/seek-bar.js +0 -54
  489. package/src/components/ui/time-display.js +0 -18
  490. package/src/components/ui/volume-control.js +0 -71
  491. package/src/components/unified/base-media-player.js +0 -104
  492. package/src/components/unified/media-player.js +0 -41
  493. package/src/components/variants/minimal/AccessibleMinimalPlayer.js +0 -322
  494. package/src/components/variants/minimal/EnhancedMinimalMediaPlayer.js +0 -280
  495. package/src/components/variants/minimal/MinimalControls.js +0 -19
  496. package/src/components/variants/minimal/MinimalLoading.js +0 -6
  497. package/src/components/variants/minimal/MinimalMediaPlayer.js +0 -135
  498. package/src/components/variants/minimal/MinimalOverlay.js +0 -15
  499. package/src/components/variants/minimal/MinimalPlayButton.js +0 -29
  500. package/src/components/variants/minimal/MinimalSeekBar.js +0 -73
  501. package/src/components/variants/minimal/MinimalVolumeControl.js +0 -29
  502. package/src/components/variants/minimal/SimpleMinimalPlayer.js +0 -51
  503. package/src/components/variants/minimal/components/CenterPlayButton.js +0 -8
  504. package/src/components/variants/minimal/components/ControlBar.js +0 -10
  505. package/src/components/variants/minimal/components/EnhancedSettingsMenu.js +0 -68
  506. package/src/components/variants/minimal/components/PlaybackControls.js +0 -9
  507. package/src/components/variants/minimal/components/RightControls.js +0 -40
  508. package/src/components/variants/minimal/components/SeekBar.js +0 -43
  509. package/src/components/variants/minimal/components/SettingsDropdown.js +0 -18
  510. package/src/components/variants/minimal/components/SubtitleDisplay.js +0 -6
  511. package/src/components/variants/minimal/components/TimeDisplay.js +0 -5
  512. package/src/components/variants/minimal/components/VideoElement.js +0 -4
  513. package/src/components/variants/minimal/components/VolumeControl.js +0 -99
  514. package/src/components/variants/minimal/index.js +0 -8
  515. package/src/components/video-player.js +0 -38
  516. package/src/context/error-handling.js +0 -300
  517. package/src/context/media-context.js +0 -121
  518. package/src/context/media-provider.js +0 -164
  519. package/src/context/media-store.js +0 -273
  520. package/src/context/persistence.js +0 -356
  521. package/src/core/events/event-system.js +0 -288
  522. package/src/core/events/hooks.js +0 -198
  523. package/src/core/events/index.js +0 -7
  524. package/src/core/events/middleware.js +0 -219
  525. package/src/core/index.js +0 -15
  526. package/src/core/optimization/bundle-optimizer.js +0 -217
  527. package/src/core/performance/cicd.js +0 -83
  528. package/src/core/performance/index.js +0 -14
  529. package/src/core/performance/media-loading-optimizer.js +0 -404
  530. package/src/core/performance/performance-budgets.js +0 -326
  531. package/src/core/performance/performance-monitor.js +0 -297
  532. package/src/core/performance/performance-testing.js +0 -314
  533. package/src/core/plugins/base-plugin.js +0 -151
  534. package/src/core/plugins/enhanced-plugin-system.js +0 -305
  535. package/src/core/plugins/examples/analytics-plugin.js +0 -191
  536. package/src/core/plugins/index.js +0 -9
  537. package/src/core/plugins/registry.js +0 -261
  538. package/src/core/plugins/types.js +0 -31
  539. package/src/core/plugins/utils.js +0 -274
  540. package/src/core/progressive-loading.js +0 -239
  541. package/src/core/providers/enhanced-hls-provider.js +0 -273
  542. package/src/core/providers/service-provider.js +0 -105
  543. package/src/core/utils.js +0 -21
  544. package/src/features/media-session/media-session-manager.js +0 -331
  545. package/src/features/picture-in-picture/pip-manager.js +0 -353
  546. package/src/features/playlist/playlist-manager.js +0 -475
  547. package/src/features/subtitles/subtitle-manager.js +0 -335
  548. package/src/features/subtitles/subtitle-parser.js +0 -217
  549. package/src/features/thumbnails/thumbnail-generator.js +0 -388
  550. package/src/hooks/accessibility/index.js +0 -4
  551. package/src/hooks/accessibility/use-accessibility-preferences.js +0 -156
  552. package/src/hooks/accessibility/use-focus-management.js +0 -142
  553. package/src/hooks/accessibility/use-keyboard-shortcuts.js +0 -101
  554. package/src/hooks/accessibility/use-screen-reader.js +0 -148
  555. package/src/hooks/core/index.js +0 -19
  556. package/src/hooks/legacy.js +0 -17
  557. package/src/hooks/use-enhanced-media-player.js +0 -395
  558. package/src/hooks/use-intelligent-preloading.js +0 -258
  559. package/src/hooks/use-keyboard-controls.js +0 -83
  560. package/src/hooks/use-media-actions.js +0 -121
  561. package/src/hooks/use-media-metadata.js +0 -74
  562. package/src/hooks/use-media-optimistic.js +0 -205
  563. package/src/hooks/use-media-player.js +0 -251
  564. package/src/hooks/use-media-state.js +0 -162
  565. package/src/hooks/use-memory-optimization.js +0 -288
  566. package/src/hooks/use-optimistic-controls.js +0 -60
  567. package/src/hooks/use-optimized-media.js +0 -211
  568. package/src/hooks/use-touch-gestures.js +0 -289
  569. package/src/hooks/useEnhancedSubtitles.js +0 -205
  570. package/src/hooks/useKeyboardShortcuts.js +0 -59
  571. package/src/hooks/useMediaControls.js +0 -44
  572. package/src/hooks/useScreenshot.js +0 -56
  573. package/src/hooks/useSubtitles.js +0 -73
  574. package/src/hooks/useVideoPlayer.js +0 -184
  575. package/src/icons/components/FullscreenIcon.js +0 -11
  576. package/src/icons/components/SettingsIcon.js +0 -11
  577. package/src/icons/components/animated/LoadingIcon.js +0 -11
  578. package/src/icons/components/animated/PlayPauseIcon.js +0 -9
  579. package/src/icons/components/media/PauseIcon.js +0 -12
  580. package/src/icons/components/media/PlayIcon.js +0 -12
  581. package/src/icons/components/volume/VolumeIcon.js +0 -11
  582. package/src/icons/components/volume/VolumeOffIcon.js +0 -11
  583. package/src/icons/index.js +0 -45
  584. package/src/icons/provider.js +0 -37
  585. package/src/icons/types.js +0 -1
  586. package/src/index-enhanced.js +0 -16
  587. package/src/index-legacy.js +0 -97
  588. package/src/index.js +0 -90
  589. package/src/index.minimal.js +0 -3
  590. package/src/lib/deprecation.js +0 -31
  591. package/src/lib/format-time.js +0 -32
  592. package/src/lib/index.js +0 -3
  593. package/src/lib/utils.js +0 -5
  594. package/src/test/setup.js +0 -65
  595. package/src/types/events.js +0 -2
  596. package/src/types/formats.js +0 -63
  597. package/src/types/index.js +0 -4
@@ -1,258 +0,0 @@
1
- /**
2
- * Intelligent Preloading Hook
3
- * Combines user behavior analysis with network conditions for optimal preloading
4
- */
5
- import { useEffect, useRef, useCallback, useMemo } from 'react';
6
- export const useIntelligentPreloading = (sources, options = {}) => {
7
- const { trackUserBehavior = true, adaptToNetwork = true, strategy = 'balanced', maxPreloadItems = 3, preloadRadius = 2, } = options;
8
- const userBehaviorRef = useRef({
9
- mouseMovements: 0,
10
- scrollEvents: 0,
11
- keyPresses: 0,
12
- focusEvents: 0,
13
- timeOnPage: 0,
14
- engagementScore: 0,
15
- lastInteraction: Date.now(),
16
- });
17
- const networkInfoRef = useRef(null);
18
- const preloadedItemsRef = useRef(new Set());
19
- const preloadQueueRef = useRef([]);
20
- // Calculate user engagement score
21
- const calculateEngagementScore = useCallback(() => {
22
- const behavior = userBehaviorRef.current;
23
- const timeFactor = Math.min(behavior.timeOnPage / 60000, 1); // Cap at 1 minute
24
- const interactionFactor = Math.min((behavior.mouseMovements + behavior.scrollEvents + behavior.keyPresses) / 100, 1);
25
- return (timeFactor * 0.4 + interactionFactor * 0.6) * 100;
26
- }, []);
27
- // Update user behavior tracking
28
- const updateUserBehavior = useCallback((type, increment = 1) => {
29
- const behavior = userBehaviorRef.current;
30
- behavior[type] = typeof behavior[type] === 'number' ? behavior[type] + increment : Date.now();
31
- behavior.engagementScore = calculateEngagementScore();
32
- behavior.lastInteraction = Date.now();
33
- }, [calculateEngagementScore]);
34
- // Get current network conditions
35
- const getNetworkConditions = useCallback(() => {
36
- if (!networkInfoRef.current || !adaptToNetwork) {
37
- return { type: 'unknown', downlink: 10, effectiveType: '4g', saveData: false };
38
- }
39
- const network = networkInfoRef.current;
40
- return {
41
- type: network.type,
42
- downlink: network.downlink || 10,
43
- effectiveType: network.effectiveType || '4g',
44
- saveData: network.saveData || false,
45
- rtt: network.rtt || 100,
46
- };
47
- }, [adaptToNetwork]);
48
- // Determine if a source should be preloaded
49
- const shouldPreloadSource = useCallback((source, index, currentIndex = 0) => {
50
- // Skip if already preloaded
51
- if (preloadedItemsRef.current.has(source.src)) {
52
- return { shouldPreload: false, priority: 'low', reason: 'Already preloaded' };
53
- }
54
- // Check if within preload radius
55
- const distance = Math.abs(index - currentIndex);
56
- if (distance > preloadRadius) {
57
- return { shouldPreload: false, priority: 'low', reason: 'Outside preload radius' };
58
- }
59
- const behavior = userBehaviorRef.current;
60
- const network = getNetworkConditions();
61
- const engagementScore = behavior.engagementScore;
62
- const timeSinceInteraction = Date.now() - behavior.lastInteraction;
63
- // Network-based decisions
64
- if (network.saveData) {
65
- return { shouldPreload: false, priority: 'low', reason: 'Data saver mode' };
66
- }
67
- // Strategy-based filtering
68
- let shouldPreload = false;
69
- let priority = 'medium';
70
- let reason = '';
71
- switch (strategy) {
72
- case 'conservative':
73
- shouldPreload = engagementScore > 70 && network.effectiveType !== '2g' && distance === 1;
74
- priority = shouldPreload ? 'medium' : 'low';
75
- reason = shouldPreload ? 'High engagement and optimal network' : 'Conservative strategy';
76
- break;
77
- case 'aggressive':
78
- shouldPreload = engagementScore > 30 && network.effectiveType !== 'slow-2g';
79
- priority = engagementScore > 70 ? 'high' : engagementScore > 50 ? 'medium' : 'low';
80
- reason = shouldPreload ? 'Aggressive preloading' : 'Low engagement';
81
- break;
82
- case 'balanced':
83
- default:
84
- const networkMultiplier = network.effectiveType === '4g' ? 1 :
85
- network.effectiveType === '3g' ? 0.7 : 0.3;
86
- const adjustedScore = engagementScore * networkMultiplier;
87
- shouldPreload = adjustedScore > 40 && distance <= 2;
88
- priority = adjustedScore > 70 ? 'high' : adjustedScore > 55 ? 'medium' : 'low';
89
- reason = shouldPreload ? `Balanced: score ${adjustedScore.toFixed(1)}` : 'Low adjusted score';
90
- break;
91
- }
92
- // Additional heuristics
93
- if (shouldPreload) {
94
- // Prioritize HLS and adaptive streaming
95
- if (source.type === 'hls' || source.type === 'm3u8') {
96
- priority = priority === 'low' ? 'medium' : 'high';
97
- }
98
- // Boost priority for recent user interaction
99
- if (timeSinceInteraction < 5000) { // Within 5 seconds
100
- priority = 'high';
101
- reason += ' + Recent interaction';
102
- }
103
- // Consider content type (video gets higher priority than audio)
104
- if (source.type === 'mp4' || source.type === 'webm') {
105
- priority = priority === 'low' ? 'medium' : priority;
106
- }
107
- }
108
- return { shouldPreload, priority, reason };
109
- }, [strategy, preloadRadius, getNetworkConditions, calculateEngagementScore]);
110
- // Preload a specific source
111
- const preloadSource = useCallback(async (source, priority) => {
112
- try {
113
- // Create a preload link element
114
- const link = document.createElement('link');
115
- link.rel = 'preload';
116
- link.href = source.src;
117
- // Determine the correct 'as' attribute
118
- switch (source.type) {
119
- case 'hls':
120
- case 'm3u8':
121
- link.as = 'fetch';
122
- break;
123
- case 'mp4':
124
- case 'webm':
125
- link.as = 'video';
126
- break;
127
- case 'mp3':
128
- case 'wav':
129
- case 'ogg':
130
- link.as = 'audio';
131
- break;
132
- default:
133
- link.as = 'fetch';
134
- }
135
- link.crossOrigin = 'anonymous';
136
- // Add to document head
137
- document.head.appendChild(link);
138
- // Mark as preloaded
139
- preloadedItemsRef.current.add(source.src);
140
- console.debug(`Preloaded: ${source.src} (${priority})`);
141
- // Cleanup after 30 seconds to prevent memory issues
142
- setTimeout(() => {
143
- if (document.head.contains(link)) {
144
- document.head.removeChild(link);
145
- }
146
- }, 30000);
147
- }
148
- catch (error) {
149
- console.warn('Failed to preload source:', source.src, error);
150
- }
151
- }, []);
152
- // Process preload queue
153
- const processPreloadQueue = useCallback(() => {
154
- if (preloadQueueRef.current.length === 0)
155
- return;
156
- // Sort by priority (higher number = higher priority)
157
- const sortedQueue = [...preloadQueueRef.current].sort((a, b) => b.priority - a.priority);
158
- // Take top items based on maxPreloadItems
159
- const itemsToPreload = sortedQueue.slice(0, maxPreloadItems);
160
- // Clear queue
161
- preloadQueueRef.current = [];
162
- // Preload items
163
- itemsToPreload.forEach(({ source, priority }) => {
164
- preloadSource(source, priority);
165
- });
166
- }, [maxPreloadItems, preloadSource]);
167
- // Update preloading decisions
168
- const updatePreloading = useCallback((currentIndex = 0) => {
169
- preloadQueueRef.current = [];
170
- sources.forEach((source, index) => {
171
- const decision = shouldPreloadSource(source, index, currentIndex);
172
- if (decision.shouldPreload) {
173
- const priority = decision.priority === 'high' ? 3 :
174
- decision.priority === 'medium' ? 2 : 1;
175
- preloadQueueRef.current.push({ source, priority });
176
- }
177
- });
178
- processPreloadQueue();
179
- }, [sources, shouldPreloadSource, processPreloadQueue]);
180
- // Set up user behavior tracking
181
- useEffect(() => {
182
- if (!trackUserBehavior)
183
- return;
184
- const handleMouseMove = () => updateUserBehavior('mouseMovements');
185
- const handleScroll = () => updateUserBehavior('scrollEvents');
186
- const handleKeyPress = () => updateUserBehavior('keyPresses');
187
- const handleFocus = () => updateUserBehavior('focusEvents');
188
- // Add event listeners
189
- document.addEventListener('mousemove', handleMouseMove, { passive: true });
190
- document.addEventListener('scroll', handleScroll, { passive: true });
191
- document.addEventListener('keydown', handleKeyPress, { passive: true });
192
- document.addEventListener('focusin', handleFocus, { passive: true });
193
- // Update time on page every second
194
- const timeInterval = setInterval(() => {
195
- updateUserBehavior('timeOnPage', 1);
196
- }, 1000);
197
- return () => {
198
- document.removeEventListener('mousemove', handleMouseMove);
199
- document.removeEventListener('scroll', handleScroll);
200
- document.removeEventListener('keydown', handleKeyPress);
201
- document.removeEventListener('focusin', handleFocus);
202
- clearInterval(timeInterval);
203
- };
204
- }, [trackUserBehavior, updateUserBehavior]);
205
- // Set up network monitoring
206
- useEffect(() => {
207
- if (!adaptToNetwork || !('connection' in navigator))
208
- return;
209
- const network = navigator.connection;
210
- networkInfoRef.current = network;
211
- const handleNetworkChange = () => {
212
- // Re-evaluate preloading when network conditions change
213
- updatePreloading();
214
- };
215
- network.addEventListener('change', handleNetworkChange);
216
- return () => {
217
- network.removeEventListener('change', handleNetworkChange);
218
- };
219
- }, [adaptToNetwork, updatePreloading]);
220
- // Initial preloading
221
- useEffect(() => {
222
- updatePreloading();
223
- }, [updatePreloading]);
224
- // Memoize return values
225
- const controls = useMemo(() => ({
226
- /**
227
- * Manually trigger preloading for specific index
228
- */
229
- preloadAtIndex: (index) => {
230
- updatePreloading(index);
231
- },
232
- /**
233
- * Get current user behavior data
234
- */
235
- getUserBehavior: () => ({ ...userBehaviorRef.current }),
236
- /**
237
- * Get current network conditions
238
- */
239
- getNetworkConditions: getNetworkConditions,
240
- /**
241
- * Clear preloaded items cache
242
- */
243
- clearCache: () => {
244
- preloadedItemsRef.current.clear();
245
- },
246
- /**
247
- * Get preloading statistics
248
- */
249
- getStats: () => ({
250
- preloadedItems: preloadedItemsRef.current.size,
251
- engagementScore: userBehaviorRef.current.engagementScore,
252
- queueLength: preloadQueueRef.current.length,
253
- maxPreloadItems,
254
- }),
255
- }), [updatePreloading, getNetworkConditions, maxPreloadItems]);
256
- return controls;
257
- };
258
- export default useIntelligentPreloading;
@@ -1,83 +0,0 @@
1
- "use client";
2
- import { useEffect } from "react";
3
- export function useKeyboardControls({ enabled = true, state, controls, seekStep = 10, volumeStep = 0.1 }) {
4
- const handleKeyDown = (event) => {
5
- if (!enabled)
6
- return;
7
- // Don't handle keyboard events if user is typing in an input
8
- const target = event.target;
9
- if (target.tagName === "INPUT" ||
10
- target.tagName === "TEXTAREA" ||
11
- target.contentEditable === "true") {
12
- return;
13
- }
14
- switch (event.code) {
15
- case "Space":
16
- case "KeyK":
17
- event.preventDefault();
18
- controls.toggle();
19
- break;
20
- case "KeyM":
21
- event.preventDefault();
22
- controls.toggleMute();
23
- break;
24
- case "KeyF":
25
- event.preventDefault();
26
- controls.toggleFullscreen();
27
- break;
28
- case "ArrowLeft":
29
- event.preventDefault();
30
- controls.seek(Math.max(0, state.currentTime - seekStep));
31
- break;
32
- case "ArrowRight":
33
- event.preventDefault();
34
- controls.seek(Math.min(state.duration, state.currentTime + seekStep));
35
- break;
36
- case "ArrowUp":
37
- event.preventDefault();
38
- controls.setVolume(Math.min(1, state.volume + volumeStep));
39
- break;
40
- case "ArrowDown":
41
- event.preventDefault();
42
- controls.setVolume(Math.max(0, state.volume - volumeStep));
43
- break;
44
- case "Digit0":
45
- case "Digit1":
46
- case "Digit2":
47
- case "Digit3":
48
- case "Digit4":
49
- case "Digit5":
50
- case "Digit6":
51
- case "Digit7":
52
- case "Digit8":
53
- case "Digit9":
54
- event.preventDefault();
55
- const digit = parseInt(event.code.replace("Digit", ""), 10);
56
- const percentage = digit / 10;
57
- controls.seek(state.duration * percentage);
58
- break;
59
- case "Home":
60
- event.preventDefault();
61
- controls.seek(0);
62
- break;
63
- case "End":
64
- event.preventDefault();
65
- controls.seek(state.duration);
66
- break;
67
- default:
68
- // Don't prevent default for unhandled keys
69
- break;
70
- }
71
- };
72
- useEffect(() => {
73
- if (!enabled)
74
- return;
75
- document.addEventListener("keydown", handleKeyDown);
76
- return () => {
77
- document.removeEventListener("keydown", handleKeyDown);
78
- };
79
- }, [enabled, handleKeyDown]);
80
- return {
81
- handleKeyDown
82
- };
83
- }
@@ -1,121 +0,0 @@
1
- "use client";
2
- import React from "react";
3
- import { MediaActionTypes } from "../context/media-context";
4
- // Action creator factory
5
- function createOptimisticAction(type, store) {
6
- return ((payload, optimistic = false) => {
7
- const action = {
8
- type,
9
- detail: payload,
10
- optimistic,
11
- timestamp: Date.now()
12
- };
13
- if (optimistic) {
14
- return store.dispatchOptimistic(action);
15
- }
16
- else {
17
- store.dispatch(action);
18
- return Promise.resolve();
19
- }
20
- });
21
- }
22
- // React 19 useActionState integration
23
- export function useMediaActionState(store) {
24
- const [actionState, setActionState] = React.useState(store.getActionState());
25
- // Subscribe to action state changes
26
- React.useEffect(() => {
27
- const unsubscribe = store.subscribe(() => {
28
- const newActionState = store.getActionState();
29
- setActionState(current => JSON.stringify(current) !== JSON.stringify(newActionState)
30
- ? newActionState
31
- : current);
32
- });
33
- return unsubscribe;
34
- }, [store]);
35
- return actionState;
36
- }
37
- // Media actions hook with React 19 optimistic updates
38
- export function useMediaActions(store) {
39
- // Create action creators with optimistic support
40
- const actions = React.useMemo(() => ({
41
- // Playback actions
42
- play: createOptimisticAction(MediaActionTypes.PLAY, store),
43
- pause: createOptimisticAction(MediaActionTypes.PAUSE, store),
44
- seek: createOptimisticAction(MediaActionTypes.SEEK, store),
45
- // Volume actions
46
- setVolume: createOptimisticAction(MediaActionTypes.SET_VOLUME, store),
47
- mute: createOptimisticAction(MediaActionTypes.MUTE, store),
48
- unmute: createOptimisticAction(MediaActionTypes.UNMUTE, store),
49
- toggleMute: createOptimisticAction(MediaActionTypes.TOGGLE_MUTE, store),
50
- // Media state actions
51
- setDuration: createOptimisticAction(MediaActionTypes.SET_DURATION, store),
52
- setCurrentTime: createOptimisticAction(MediaActionTypes.SET_CURRENT_TIME, store),
53
- setBuffered: createOptimisticAction(MediaActionTypes.SET_BUFFERED, store),
54
- setLoading: createOptimisticAction(MediaActionTypes.SET_LOADING, store),
55
- setError: createOptimisticAction(MediaActionTypes.SET_ERROR, store),
56
- // Display actions
57
- enterFullscreen: createOptimisticAction(MediaActionTypes.ENTER_FULLSCREEN, store),
58
- exitFullscreen: createOptimisticAction(MediaActionTypes.EXIT_FULLSCREEN, store),
59
- enterPiP: createOptimisticAction(MediaActionTypes.ENTER_PIP, store),
60
- exitPiP: createOptimisticAction(MediaActionTypes.EXIT_PIP, store),
61
- // Advanced actions
62
- setPlaybackRate: createOptimisticAction(MediaActionTypes.SET_PLAYBACK_RATE, store),
63
- setSubtitleTrack: createOptimisticAction(MediaActionTypes.SET_SUBTITLE_TRACK, store),
64
- setRendition: createOptimisticAction(MediaActionTypes.SET_RENDITION, store),
65
- toggleSubtitles: createOptimisticAction(MediaActionTypes.TOGGLE_SUBTITLES, store),
66
- // Preview actions
67
- previewTime: createOptimisticAction(MediaActionTypes.PREVIEW_TIME, store),
68
- clearPreview: createOptimisticAction(MediaActionTypes.CLEAR_PREVIEW, store)
69
- }), [store]);
70
- // Get action state for loading/error handling
71
- const actionState = useMediaActionState(store);
72
- // Convenience methods that commonly use optimistic updates
73
- const optimisticActions = React.useMemo(() => ({
74
- // These actions benefit from immediate UI feedback
75
- togglePlayPause: async (isPlaying) => {
76
- if (isPlaying) {
77
- await actions.pause(true); // optimistic
78
- }
79
- else {
80
- await actions.play(true); // optimistic
81
- }
82
- },
83
- seekWithPreview: async (time) => {
84
- // Immediate preview update, then actual seek
85
- await actions.previewTime(time, true);
86
- await actions.seek(time, true);
87
- },
88
- adjustVolume: async (delta, currentVolume) => {
89
- const newVolume = Math.max(0, Math.min(1, currentVolume + delta));
90
- await actions.setVolume(newVolume, true);
91
- },
92
- toggleFullscreenOptimistic: async (isFullscreen) => {
93
- if (isFullscreen) {
94
- await actions.exitFullscreen(true);
95
- }
96
- else {
97
- await actions.enterFullscreen(true);
98
- }
99
- }
100
- }), [actions]);
101
- // Retry failed action
102
- const retryLastAction = React.useCallback(async () => {
103
- const { lastAction } = actionState;
104
- if (lastAction && actionState.error) {
105
- await store.dispatchOptimistic({
106
- ...lastAction,
107
- retryCount: (lastAction.retryCount || 0) + 1
108
- });
109
- }
110
- }, [store, actionState]);
111
- return {
112
- ...actions,
113
- ...optimisticActions,
114
- actionState,
115
- retryLastAction,
116
- isLoading: actionState.pending,
117
- hasError: !!actionState.error,
118
- errorMessage: actionState.error,
119
- retryCount: actionState.retryCount
120
- };
121
- }
@@ -1,74 +0,0 @@
1
- import { use, cache } from 'react';
2
- // Cache metadata fetches to prevent duplicate requests
3
- const fetchMetadata = cache(async (src) => {
4
- try {
5
- // Create a video element to get metadata
6
- const video = document.createElement('video');
7
- video.crossOrigin = 'anonymous';
8
- video.preload = 'metadata';
9
- return new Promise((resolve, reject) => {
10
- const timeout = setTimeout(() => {
11
- video.removeEventListener('loadedmetadata', onMetadata);
12
- video.removeEventListener('error', onError);
13
- reject(new Error('Metadata loading timeout'));
14
- }, 10000); // 10 second timeout
15
- const onMetadata = () => {
16
- clearTimeout(timeout);
17
- video.removeEventListener('loadedmetadata', onMetadata);
18
- video.removeEventListener('error', onError);
19
- const metadata = {
20
- duration: video.duration || 0,
21
- format: getFormatFromSrc(src),
22
- width: video.videoWidth || undefined,
23
- height: video.videoHeight || undefined,
24
- };
25
- resolve(metadata);
26
- };
27
- const onError = (error) => {
28
- clearTimeout(timeout);
29
- video.removeEventListener('loadedmetadata', onMetadata);
30
- video.removeEventListener('error', onError);
31
- reject(new Error('Failed to load media metadata'));
32
- };
33
- video.addEventListener('loadedmetadata', onMetadata);
34
- video.addEventListener('error', onError);
35
- video.src = src;
36
- });
37
- }
38
- catch (error) {
39
- throw new Error(`Failed to fetch metadata: ${error instanceof Error ? error.message : 'Unknown error'}`);
40
- }
41
- });
42
- function getFormatFromSrc(src) {
43
- const url = new URL(src, window.location.href);
44
- const pathname = url.pathname.toLowerCase();
45
- if (pathname.endsWith('.mp4'))
46
- return 'MP4';
47
- if (pathname.endsWith('.webm'))
48
- return 'WebM';
49
- if (pathname.endsWith('.ogg'))
50
- return 'OGG';
51
- if (pathname.endsWith('.m3u8'))
52
- return 'HLS';
53
- if (pathname.endsWith('.mpd'))
54
- return 'DASH';
55
- return 'Unknown';
56
- }
57
- export function useMediaMetadata(src) {
58
- // Use the React 19 use() hook for async data
59
- return use(fetchMetadata(src));
60
- }
61
- // Utility function to format time
62
- export function formatTime(seconds) {
63
- if (!isFinite(seconds) || isNaN(seconds))
64
- return '0:00';
65
- const hours = Math.floor(seconds / 3600);
66
- const minutes = Math.floor((seconds % 3600) / 60);
67
- const secs = Math.floor(seconds % 60);
68
- if (hours > 0) {
69
- return `${hours}:${minutes.toString().padStart(2, '0')}:${secs.toString().padStart(2, '0')}`;
70
- }
71
- else {
72
- return `${minutes}:${secs.toString().padStart(2, '0')}`;
73
- }
74
- }