@therealtinhtute/baroiplayer 1.0.6 → 1.0.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (595) hide show
  1. package/dist/index.d.ts +1 -1
  2. package/dist/package.json +1 -1
  3. package/package.json +1 -1
  4. package/dist/context/media.js +0 -2
  5. package/dist/context/media.js.map +0 -1
  6. package/dist/context/media.mjs +0 -15
  7. package/dist/context/media.mjs.map +0 -1
  8. package/dist/context/store.js +0 -2
  9. package/dist/context/store.js.map +0 -1
  10. package/dist/context/store.mjs +0 -5
  11. package/dist/context/store.mjs.map +0 -1
  12. package/dist/context-Af84FynT.js +0 -1179
  13. package/dist/context-Af84FynT.js.map +0 -1
  14. package/dist/context-CwZnPdz0.cjs +0 -23
  15. package/dist/context-CwZnPdz0.cjs.map +0 -1
  16. package/dist/core-events-B5W_j8yU.js +0 -480
  17. package/dist/core-events-B5W_j8yU.js.map +0 -1
  18. package/dist/core-events-CN0-Vhhq.cjs +0 -2
  19. package/dist/core-events-CN0-Vhhq.cjs.map +0 -1
  20. package/dist/core-plugins-Bq9KLany.js +0 -696
  21. package/dist/core-plugins-Bq9KLany.js.map +0 -1
  22. package/dist/core-plugins-CPDSHMiQ.cjs +0 -2
  23. package/dist/core-plugins-CPDSHMiQ.cjs.map +0 -1
  24. package/dist/core.js +0 -37
  25. package/dist/core.js.map +0 -1
  26. package/dist/core.mjs +0 -1217
  27. package/dist/core.mjs.map +0 -1
  28. package/dist/enhanced-components-CXnYiOt6.cjs +0 -2
  29. package/dist/enhanced-components-CXnYiOt6.cjs.map +0 -1
  30. package/dist/enhanced-components-Da0TSvKe.js +0 -1073
  31. package/dist/enhanced-components-Da0TSvKe.js.map +0 -1
  32. package/dist/hooks-BCMilGRf.cjs +0 -4
  33. package/dist/hooks-BCMilGRf.cjs.map +0 -1
  34. package/dist/hooks-BPtHV1ZT.js +0 -2042
  35. package/dist/hooks-BPtHV1ZT.js.map +0 -1
  36. package/dist/index.js.map +0 -1
  37. package/dist/index.mjs.map +0 -1
  38. package/dist/minimal-components-BHJMuaL7.cjs +0 -2
  39. package/dist/minimal-components-BHJMuaL7.cjs.map +0 -1
  40. package/dist/minimal-components-BmqRefl1.js +0 -2002
  41. package/dist/minimal-components-BmqRefl1.js.map +0 -1
  42. package/dist/mona-loading.gif +0 -0
  43. package/dist/performance-monitor--rzKTlbj.js +0 -302
  44. package/dist/performance-monitor--rzKTlbj.js.map +0 -1
  45. package/dist/performance-monitor-cjIvZE2D.cjs +0 -2
  46. package/dist/performance-monitor-cjIvZE2D.cjs.map +0 -1
  47. package/dist/src/adapters/videojs-adapter.d.ts.map +0 -1
  48. package/dist/src/adapters/videojs-adapter.js +0 -350
  49. package/dist/src/assets/mona-loading.gif +0 -0
  50. package/dist/src/components/AnimateLoading.d.ts.map +0 -1
  51. package/dist/src/components/AnimateLoading.js +0 -41
  52. package/dist/src/components/LoadingState.d.ts.map +0 -1
  53. package/dist/src/components/LoadingState.js +0 -111
  54. package/dist/src/components/accessibility/keyboard-help-overlay.d.ts.map +0 -1
  55. package/dist/src/components/accessibility/keyboard-help-overlay.js +0 -90
  56. package/dist/src/components/audio-player.d.ts.map +0 -1
  57. package/dist/src/components/audio-player.js +0 -31
  58. package/dist/src/components/basic/index.d.ts.map +0 -1
  59. package/dist/src/components/basic/index.js +0 -29
  60. package/dist/src/components/enhanced/advanced-features.d.ts.map +0 -1
  61. package/dist/src/components/enhanced/advanced-features.js +0 -64
  62. package/dist/src/components/enhanced/debug-panel.d.ts.map +0 -1
  63. package/dist/src/components/enhanced/debug-panel.js +0 -94
  64. package/dist/src/components/enhanced/enhanced-controls.d.ts.map +0 -1
  65. package/dist/src/components/enhanced/enhanced-controls.js +0 -233
  66. package/dist/src/components/enhanced/enhanced-media-player.d.ts.map +0 -1
  67. package/dist/src/components/enhanced/enhanced-media-player.js +0 -316
  68. package/dist/src/components/enhanced/error-handling.d.ts.map +0 -1
  69. package/dist/src/components/enhanced/error-handling.js +0 -153
  70. package/dist/src/components/enhanced/index.d.ts.map +0 -1
  71. package/dist/src/components/enhanced/index.js +0 -10
  72. package/dist/src/components/enhanced/media-player-enhanced.d.ts.map +0 -1
  73. package/dist/src/components/enhanced/media-player-enhanced.js +0 -250
  74. package/dist/src/components/examples/basic-video-player.d.ts.map +0 -1
  75. package/dist/src/components/examples/basic-video-player.js +0 -16
  76. package/dist/src/components/examples/custom-controls-example.d.ts.map +0 -1
  77. package/dist/src/components/examples/custom-controls-example.js +0 -12
  78. package/dist/src/components/examples/enhanced-controls-example.d.ts.map +0 -1
  79. package/dist/src/components/examples/enhanced-controls-example.js +0 -18
  80. package/dist/src/components/examples/enhanced-media-player-example.d.ts.map +0 -1
  81. package/dist/src/components/examples/enhanced-media-player-example.js +0 -13
  82. package/dist/src/components/examples/loading-states-demo.d.ts.map +0 -1
  83. package/dist/src/components/examples/loading-states-demo.js +0 -41
  84. package/dist/src/components/examples/react-19-demo.d.ts.map +0 -1
  85. package/dist/src/components/examples/react-19-demo.js +0 -104
  86. package/dist/src/components/examples/volume-orientation-demo.d.ts.map +0 -1
  87. package/dist/src/components/examples/volume-orientation-demo.js +0 -31
  88. package/dist/src/components/icon-demo.d.ts.map +0 -1
  89. package/dist/src/components/icon-demo.js +0 -16
  90. package/dist/src/components/icons/index.d.ts.map +0 -1
  91. package/dist/src/components/icons/index.js +0 -59
  92. package/dist/src/components/icons/svg-icons/ArrowLeftIcon.d.ts.map +0 -1
  93. package/dist/src/components/icons/svg-icons/ArrowLeftIcon.js +0 -3
  94. package/dist/src/components/icons/svg-icons/ArrowRightIcon.d.ts.map +0 -1
  95. package/dist/src/components/icons/svg-icons/ArrowRightIcon.js +0 -3
  96. package/dist/src/components/icons/svg-icons/AudioIcon.d.ts.map +0 -1
  97. package/dist/src/components/icons/svg-icons/AudioIcon.js +0 -4
  98. package/dist/src/components/icons/svg-icons/BackwardIcon.d.ts.map +0 -1
  99. package/dist/src/components/icons/svg-icons/BackwardIcon.js +0 -3
  100. package/dist/src/components/icons/svg-icons/CameraIcon.d.ts.map +0 -1
  101. package/dist/src/components/icons/svg-icons/CameraIcon.js +0 -4
  102. package/dist/src/components/icons/svg-icons/CheckIcon.d.ts.map +0 -1
  103. package/dist/src/components/icons/svg-icons/CheckIcon.js +0 -4
  104. package/dist/src/components/icons/svg-icons/EnablePiPIcon.d.ts.map +0 -1
  105. package/dist/src/components/icons/svg-icons/EnablePiPIcon.js +0 -5
  106. package/dist/src/components/icons/svg-icons/ForwardIcon.d.ts.map +0 -1
  107. package/dist/src/components/icons/svg-icons/ForwardIcon.js +0 -3
  108. package/dist/src/components/icons/svg-icons/FullscreenEnterIcon.d.ts.map +0 -1
  109. package/dist/src/components/icons/svg-icons/FullscreenEnterIcon.js +0 -3
  110. package/dist/src/components/icons/svg-icons/FullscreenExitIcon.d.ts.map +0 -1
  111. package/dist/src/components/icons/svg-icons/FullscreenExitIcon.js +0 -3
  112. package/dist/src/components/icons/svg-icons/LoadingIcon.d.ts.map +0 -1
  113. package/dist/src/components/icons/svg-icons/LoadingIcon.js +0 -3
  114. package/dist/src/components/icons/svg-icons/PauseIcon.d.ts.map +0 -1
  115. package/dist/src/components/icons/svg-icons/PauseIcon.js +0 -3
  116. package/dist/src/components/icons/svg-icons/PlayIcon.d.ts.map +0 -1
  117. package/dist/src/components/icons/svg-icons/PlayIcon.js +0 -3
  118. package/dist/src/components/icons/svg-icons/PlaybackSpeedIcon.d.ts.map +0 -1
  119. package/dist/src/components/icons/svg-icons/PlaybackSpeedIcon.js +0 -3
  120. package/dist/src/components/icons/svg-icons/QualityIcon.d.ts.map +0 -1
  121. package/dist/src/components/icons/svg-icons/QualityIcon.js +0 -3
  122. package/dist/src/components/icons/svg-icons/SettingsIcon.d.ts.map +0 -1
  123. package/dist/src/components/icons/svg-icons/SettingsIcon.js +0 -3
  124. package/dist/src/components/icons/svg-icons/SliderIcon.d.ts.map +0 -1
  125. package/dist/src/components/icons/svg-icons/SliderIcon.js +0 -3
  126. package/dist/src/components/icons/svg-icons/SubtitleIcon.d.ts.map +0 -1
  127. package/dist/src/components/icons/svg-icons/SubtitleIcon.js +0 -3
  128. package/dist/src/components/icons/svg-icons/SubtitleOffIcon.d.ts.map +0 -1
  129. package/dist/src/components/icons/svg-icons/SubtitleOffIcon.js +0 -3
  130. package/dist/src/components/icons/svg-icons/UnPiPIcon.d.ts.map +0 -1
  131. package/dist/src/components/icons/svg-icons/UnPiPIcon.js +0 -5
  132. package/dist/src/components/icons/svg-icons/VolumeMutedIcon.d.ts.map +0 -1
  133. package/dist/src/components/icons/svg-icons/VolumeMutedIcon.js +0 -3
  134. package/dist/src/components/icons/svg-icons/VolumeOneIcon.d.ts.map +0 -1
  135. package/dist/src/components/icons/svg-icons/VolumeOneIcon.js +0 -3
  136. package/dist/src/components/icons/svg-icons/VolumeThreeIcon.d.ts.map +0 -1
  137. package/dist/src/components/icons/svg-icons/VolumeThreeIcon.js +0 -3
  138. package/dist/src/components/icons/svg-icons/VolumeTwoIcon.d.ts.map +0 -1
  139. package/dist/src/components/icons/svg-icons/VolumeTwoIcon.js +0 -3
  140. package/dist/src/components/legacy.d.ts.map +0 -1
  141. package/dist/src/components/legacy.js +0 -52
  142. package/dist/src/components/media-metadata-display.d.ts.map +0 -1
  143. package/dist/src/components/media-metadata-display.js +0 -20
  144. package/dist/src/components/media-player-audio.d.ts.map +0 -1
  145. package/dist/src/components/media-player-audio.js +0 -18
  146. package/dist/src/components/media-player-controls.d.ts.map +0 -1
  147. package/dist/src/components/media-player-controls.js +0 -150
  148. package/dist/src/components/media-player-error.d.ts.map +0 -1
  149. package/dist/src/components/media-player-error.js +0 -85
  150. package/dist/src/components/media-player-fullscreen.d.ts.map +0 -1
  151. package/dist/src/components/media-player-fullscreen.js +0 -68
  152. package/dist/src/components/media-player-hls.d.ts.map +0 -1
  153. package/dist/src/components/media-player-hls.js +0 -20
  154. package/dist/src/components/media-player-loading.d.ts.map +0 -1
  155. package/dist/src/components/media-player-loading.js +0 -53
  156. package/dist/src/components/media-player-play.d.ts.map +0 -1
  157. package/dist/src/components/media-player-play.js +0 -44
  158. package/dist/src/components/media-player-root.d.ts.map +0 -1
  159. package/dist/src/components/media-player-root.js +0 -243
  160. package/dist/src/components/media-player-seek.d.ts.map +0 -1
  161. package/dist/src/components/media-player-seek.js +0 -92
  162. package/dist/src/components/media-player-time.d.ts.map +0 -1
  163. package/dist/src/components/media-player-time.js +0 -57
  164. package/dist/src/components/media-player-tooltip.d.ts.map +0 -1
  165. package/dist/src/components/media-player-tooltip.js +0 -14
  166. package/dist/src/components/media-player-video.d.ts.map +0 -1
  167. package/dist/src/components/media-player-video.js +0 -18
  168. package/dist/src/components/media-player-volume.d.ts.map +0 -1
  169. package/dist/src/components/media-player-volume.js +0 -88
  170. package/dist/src/components/media-player.d.ts.map +0 -1
  171. package/dist/src/components/media-player.js +0 -67
  172. package/dist/src/components/media-suspense.d.ts.map +0 -1
  173. package/dist/src/components/media-suspense.js +0 -173
  174. package/dist/src/components/player-settings-form.d.ts.map +0 -1
  175. package/dist/src/components/player-settings-form.js +0 -46
  176. package/dist/src/components/react-player-wrapper.d.ts.map +0 -1
  177. package/dist/src/components/react-player-wrapper.js +0 -163
  178. package/dist/src/components/simple-video-player.d.ts.map +0 -1
  179. package/dist/src/components/simple-video-player.js +0 -41
  180. package/dist/src/components/ui/enhanced-seek-bar.d.ts.map +0 -1
  181. package/dist/src/components/ui/enhanced-seek-bar.js +0 -112
  182. package/dist/src/components/ui/fullscreen-button.d.ts.map +0 -1
  183. package/dist/src/components/ui/fullscreen-button.js +0 -21
  184. package/dist/src/components/ui/media-resource-preloader.d.ts.map +0 -1
  185. package/dist/src/components/ui/media-resource-preloader.js +0 -295
  186. package/dist/src/components/ui/play-button.d.ts.map +0 -1
  187. package/dist/src/components/ui/play-button.js +0 -26
  188. package/dist/src/components/ui/seek-bar.d.ts.map +0 -1
  189. package/dist/src/components/ui/seek-bar.js +0 -54
  190. package/dist/src/components/ui/time-display.d.ts.map +0 -1
  191. package/dist/src/components/ui/time-display.js +0 -18
  192. package/dist/src/components/ui/volume-control.d.ts.map +0 -1
  193. package/dist/src/components/ui/volume-control.js +0 -71
  194. package/dist/src/components/unified/base-media-player.d.ts.map +0 -1
  195. package/dist/src/components/unified/base-media-player.js +0 -104
  196. package/dist/src/components/unified/media-player.d.ts.map +0 -1
  197. package/dist/src/components/unified/media-player.js +0 -41
  198. package/dist/src/components/variants/minimal/AccessibleMinimalPlayer.d.ts.map +0 -1
  199. package/dist/src/components/variants/minimal/AccessibleMinimalPlayer.js +0 -322
  200. package/dist/src/components/variants/minimal/EnhancedMinimalMediaPlayer.d.ts.map +0 -1
  201. package/dist/src/components/variants/minimal/EnhancedMinimalMediaPlayer.js +0 -280
  202. package/dist/src/components/variants/minimal/MinimalControls.d.ts.map +0 -1
  203. package/dist/src/components/variants/minimal/MinimalControls.js +0 -19
  204. package/dist/src/components/variants/minimal/MinimalLoading.d.ts.map +0 -1
  205. package/dist/src/components/variants/minimal/MinimalLoading.js +0 -6
  206. package/dist/src/components/variants/minimal/MinimalMediaPlayer.d.ts.map +0 -1
  207. package/dist/src/components/variants/minimal/MinimalMediaPlayer.js +0 -135
  208. package/dist/src/components/variants/minimal/MinimalOverlay.d.ts.map +0 -1
  209. package/dist/src/components/variants/minimal/MinimalOverlay.js +0 -15
  210. package/dist/src/components/variants/minimal/MinimalPlayButton.d.ts.map +0 -1
  211. package/dist/src/components/variants/minimal/MinimalPlayButton.js +0 -29
  212. package/dist/src/components/variants/minimal/MinimalSeekBar.d.ts.map +0 -1
  213. package/dist/src/components/variants/minimal/MinimalSeekBar.js +0 -73
  214. package/dist/src/components/variants/minimal/MinimalVolumeControl.d.ts.map +0 -1
  215. package/dist/src/components/variants/minimal/MinimalVolumeControl.js +0 -29
  216. package/dist/src/components/variants/minimal/SimpleMinimalPlayer.d.ts.map +0 -1
  217. package/dist/src/components/variants/minimal/SimpleMinimalPlayer.js +0 -51
  218. package/dist/src/components/variants/minimal/components/CenterPlayButton.d.ts.map +0 -1
  219. package/dist/src/components/variants/minimal/components/CenterPlayButton.js +0 -8
  220. package/dist/src/components/variants/minimal/components/ControlBar.d.ts.map +0 -1
  221. package/dist/src/components/variants/minimal/components/ControlBar.js +0 -10
  222. package/dist/src/components/variants/minimal/components/EnhancedSettingsMenu.d.ts.map +0 -1
  223. package/dist/src/components/variants/minimal/components/EnhancedSettingsMenu.js +0 -68
  224. package/dist/src/components/variants/minimal/components/PlaybackControls.d.ts.map +0 -1
  225. package/dist/src/components/variants/minimal/components/PlaybackControls.js +0 -9
  226. package/dist/src/components/variants/minimal/components/RightControls.d.ts.map +0 -1
  227. package/dist/src/components/variants/minimal/components/RightControls.js +0 -40
  228. package/dist/src/components/variants/minimal/components/SeekBar.d.ts.map +0 -1
  229. package/dist/src/components/variants/minimal/components/SeekBar.js +0 -43
  230. package/dist/src/components/variants/minimal/components/SettingsDropdown.d.ts.map +0 -1
  231. package/dist/src/components/variants/minimal/components/SettingsDropdown.js +0 -18
  232. package/dist/src/components/variants/minimal/components/SubtitleDisplay.d.ts.map +0 -1
  233. package/dist/src/components/variants/minimal/components/SubtitleDisplay.js +0 -6
  234. package/dist/src/components/variants/minimal/components/TimeDisplay.d.ts.map +0 -1
  235. package/dist/src/components/variants/minimal/components/TimeDisplay.js +0 -5
  236. package/dist/src/components/variants/minimal/components/VideoElement.d.ts.map +0 -1
  237. package/dist/src/components/variants/minimal/components/VideoElement.js +0 -4
  238. package/dist/src/components/variants/minimal/components/VolumeControl.d.ts.map +0 -1
  239. package/dist/src/components/variants/minimal/components/VolumeControl.js +0 -99
  240. package/dist/src/components/variants/minimal/index.d.ts.map +0 -1
  241. package/dist/src/components/variants/minimal/index.js +0 -8
  242. package/dist/src/components/video-player.d.ts.map +0 -1
  243. package/dist/src/components/video-player.js +0 -38
  244. package/dist/src/context/error-handling.d.ts.map +0 -1
  245. package/dist/src/context/error-handling.js +0 -300
  246. package/dist/src/context/media-context.d.ts.map +0 -1
  247. package/dist/src/context/media-context.js +0 -121
  248. package/dist/src/context/media-provider.d.ts.map +0 -1
  249. package/dist/src/context/media-provider.js +0 -164
  250. package/dist/src/context/media-store.d.ts.map +0 -1
  251. package/dist/src/context/media-store.js +0 -273
  252. package/dist/src/context/persistence.d.ts.map +0 -1
  253. package/dist/src/context/persistence.js +0 -356
  254. package/dist/src/core/events/event-system.d.ts.map +0 -1
  255. package/dist/src/core/events/event-system.js +0 -288
  256. package/dist/src/core/events/hooks.d.ts.map +0 -1
  257. package/dist/src/core/events/hooks.js +0 -198
  258. package/dist/src/core/events/index.d.ts.map +0 -1
  259. package/dist/src/core/events/index.js +0 -7
  260. package/dist/src/core/events/middleware.d.ts.map +0 -1
  261. package/dist/src/core/events/middleware.js +0 -219
  262. package/dist/src/core/index.d.ts.map +0 -1
  263. package/dist/src/core/index.js +0 -15
  264. package/dist/src/core/optimization/bundle-optimizer.d.ts.map +0 -1
  265. package/dist/src/core/optimization/bundle-optimizer.js +0 -217
  266. package/dist/src/core/performance/cicd.d.ts.map +0 -1
  267. package/dist/src/core/performance/cicd.js +0 -83
  268. package/dist/src/core/performance/index.d.ts.map +0 -1
  269. package/dist/src/core/performance/index.js +0 -14
  270. package/dist/src/core/performance/media-loading-optimizer.d.ts.map +0 -1
  271. package/dist/src/core/performance/media-loading-optimizer.js +0 -404
  272. package/dist/src/core/performance/performance-budgets.d.ts.map +0 -1
  273. package/dist/src/core/performance/performance-budgets.js +0 -326
  274. package/dist/src/core/performance/performance-monitor.d.ts.map +0 -1
  275. package/dist/src/core/performance/performance-monitor.js +0 -297
  276. package/dist/src/core/performance/performance-testing.d.ts.map +0 -1
  277. package/dist/src/core/performance/performance-testing.js +0 -314
  278. package/dist/src/core/plugins/base-plugin.d.ts.map +0 -1
  279. package/dist/src/core/plugins/base-plugin.js +0 -151
  280. package/dist/src/core/plugins/enhanced-plugin-system.d.ts.map +0 -1
  281. package/dist/src/core/plugins/enhanced-plugin-system.js +0 -305
  282. package/dist/src/core/plugins/examples/analytics-plugin.d.ts.map +0 -1
  283. package/dist/src/core/plugins/examples/analytics-plugin.js +0 -191
  284. package/dist/src/core/plugins/index.d.ts.map +0 -1
  285. package/dist/src/core/plugins/index.js +0 -9
  286. package/dist/src/core/plugins/registry.d.ts.map +0 -1
  287. package/dist/src/core/plugins/registry.js +0 -261
  288. package/dist/src/core/plugins/types.d.ts.map +0 -1
  289. package/dist/src/core/plugins/types.js +0 -31
  290. package/dist/src/core/plugins/utils.d.ts.map +0 -1
  291. package/dist/src/core/plugins/utils.js +0 -274
  292. package/dist/src/core/progressive-loading.d.ts.map +0 -1
  293. package/dist/src/core/progressive-loading.js +0 -239
  294. package/dist/src/core/providers/enhanced-hls-provider.d.ts.map +0 -1
  295. package/dist/src/core/providers/enhanced-hls-provider.js +0 -273
  296. package/dist/src/core/providers/service-provider.d.ts.map +0 -1
  297. package/dist/src/core/providers/service-provider.js +0 -105
  298. package/dist/src/core/utils.d.ts.map +0 -1
  299. package/dist/src/core/utils.js +0 -21
  300. package/dist/src/features/media-session/media-session-manager.d.ts.map +0 -1
  301. package/dist/src/features/media-session/media-session-manager.js +0 -331
  302. package/dist/src/features/picture-in-picture/pip-manager.d.ts.map +0 -1
  303. package/dist/src/features/picture-in-picture/pip-manager.js +0 -353
  304. package/dist/src/features/playlist/playlist-manager.d.ts.map +0 -1
  305. package/dist/src/features/playlist/playlist-manager.js +0 -475
  306. package/dist/src/features/subtitles/subtitle-manager.d.ts.map +0 -1
  307. package/dist/src/features/subtitles/subtitle-manager.js +0 -335
  308. package/dist/src/features/subtitles/subtitle-parser.d.ts.map +0 -1
  309. package/dist/src/features/subtitles/subtitle-parser.js +0 -217
  310. package/dist/src/features/thumbnails/thumbnail-generator.d.ts.map +0 -1
  311. package/dist/src/features/thumbnails/thumbnail-generator.js +0 -388
  312. package/dist/src/hooks/accessibility/index.d.ts.map +0 -1
  313. package/dist/src/hooks/accessibility/index.js +0 -4
  314. package/dist/src/hooks/accessibility/use-accessibility-preferences.d.ts.map +0 -1
  315. package/dist/src/hooks/accessibility/use-accessibility-preferences.js +0 -156
  316. package/dist/src/hooks/accessibility/use-focus-management.d.ts.map +0 -1
  317. package/dist/src/hooks/accessibility/use-focus-management.js +0 -142
  318. package/dist/src/hooks/accessibility/use-keyboard-shortcuts.d.ts.map +0 -1
  319. package/dist/src/hooks/accessibility/use-keyboard-shortcuts.js +0 -101
  320. package/dist/src/hooks/accessibility/use-screen-reader.d.ts.map +0 -1
  321. package/dist/src/hooks/accessibility/use-screen-reader.js +0 -148
  322. package/dist/src/hooks/core/index.d.ts.map +0 -1
  323. package/dist/src/hooks/core/index.js +0 -19
  324. package/dist/src/hooks/legacy.d.ts.map +0 -1
  325. package/dist/src/hooks/legacy.js +0 -17
  326. package/dist/src/hooks/use-enhanced-media-player.d.ts.map +0 -1
  327. package/dist/src/hooks/use-enhanced-media-player.js +0 -395
  328. package/dist/src/hooks/use-intelligent-preloading.d.ts.map +0 -1
  329. package/dist/src/hooks/use-intelligent-preloading.js +0 -258
  330. package/dist/src/hooks/use-keyboard-controls.d.ts.map +0 -1
  331. package/dist/src/hooks/use-keyboard-controls.js +0 -83
  332. package/dist/src/hooks/use-media-actions.d.ts.map +0 -1
  333. package/dist/src/hooks/use-media-actions.js +0 -121
  334. package/dist/src/hooks/use-media-metadata.d.ts.map +0 -1
  335. package/dist/src/hooks/use-media-metadata.js +0 -74
  336. package/dist/src/hooks/use-media-optimistic.d.ts.map +0 -1
  337. package/dist/src/hooks/use-media-optimistic.js +0 -205
  338. package/dist/src/hooks/use-media-player.d.ts.map +0 -1
  339. package/dist/src/hooks/use-media-player.js +0 -251
  340. package/dist/src/hooks/use-media-state.d.ts.map +0 -1
  341. package/dist/src/hooks/use-media-state.js +0 -162
  342. package/dist/src/hooks/use-memory-optimization.d.ts.map +0 -1
  343. package/dist/src/hooks/use-memory-optimization.js +0 -288
  344. package/dist/src/hooks/use-optimistic-controls.d.ts.map +0 -1
  345. package/dist/src/hooks/use-optimistic-controls.js +0 -60
  346. package/dist/src/hooks/use-optimized-media.d.ts.map +0 -1
  347. package/dist/src/hooks/use-optimized-media.js +0 -211
  348. package/dist/src/hooks/use-touch-gestures.d.ts.map +0 -1
  349. package/dist/src/hooks/use-touch-gestures.js +0 -289
  350. package/dist/src/hooks/useEnhancedSubtitles.d.ts.map +0 -1
  351. package/dist/src/hooks/useEnhancedSubtitles.js +0 -205
  352. package/dist/src/hooks/useKeyboardShortcuts.d.ts.map +0 -1
  353. package/dist/src/hooks/useKeyboardShortcuts.js +0 -59
  354. package/dist/src/hooks/useMediaControls.d.ts.map +0 -1
  355. package/dist/src/hooks/useMediaControls.js +0 -44
  356. package/dist/src/hooks/useScreenshot.d.ts.map +0 -1
  357. package/dist/src/hooks/useScreenshot.js +0 -56
  358. package/dist/src/hooks/useSubtitles.d.ts.map +0 -1
  359. package/dist/src/hooks/useSubtitles.js +0 -73
  360. package/dist/src/hooks/useVideoPlayer.d.ts.map +0 -1
  361. package/dist/src/hooks/useVideoPlayer.js +0 -184
  362. package/dist/src/icons/components/FullscreenIcon.d.ts.map +0 -1
  363. package/dist/src/icons/components/FullscreenIcon.js +0 -11
  364. package/dist/src/icons/components/SettingsIcon.d.ts.map +0 -1
  365. package/dist/src/icons/components/SettingsIcon.js +0 -11
  366. package/dist/src/icons/components/animated/LoadingIcon.d.ts.map +0 -1
  367. package/dist/src/icons/components/animated/LoadingIcon.js +0 -11
  368. package/dist/src/icons/components/animated/PlayPauseIcon.d.ts.map +0 -1
  369. package/dist/src/icons/components/animated/PlayPauseIcon.js +0 -9
  370. package/dist/src/icons/components/media/PauseIcon.d.ts.map +0 -1
  371. package/dist/src/icons/components/media/PauseIcon.js +0 -12
  372. package/dist/src/icons/components/media/PlayIcon.d.ts.map +0 -1
  373. package/dist/src/icons/components/media/PlayIcon.js +0 -12
  374. package/dist/src/icons/components/volume/VolumeIcon.d.ts.map +0 -1
  375. package/dist/src/icons/components/volume/VolumeIcon.js +0 -11
  376. package/dist/src/icons/components/volume/VolumeOffIcon.d.ts.map +0 -1
  377. package/dist/src/icons/components/volume/VolumeOffIcon.js +0 -11
  378. package/dist/src/icons/index.d.ts.map +0 -1
  379. package/dist/src/icons/index.js +0 -45
  380. package/dist/src/icons/provider.d.ts.map +0 -1
  381. package/dist/src/icons/provider.js +0 -37
  382. package/dist/src/icons/types.d.ts.map +0 -1
  383. package/dist/src/icons/types.js +0 -1
  384. package/dist/src/index-enhanced.d.ts.map +0 -1
  385. package/dist/src/index-enhanced.js +0 -16
  386. package/dist/src/index-legacy.d.ts.map +0 -1
  387. package/dist/src/index-legacy.js +0 -97
  388. package/dist/src/index.d.ts.map +0 -1
  389. package/dist/src/index.js +0 -90
  390. package/dist/src/index.minimal.d.ts.map +0 -1
  391. package/dist/src/index.minimal.js +0 -3
  392. package/dist/src/lib/deprecation.d.ts.map +0 -1
  393. package/dist/src/lib/deprecation.js +0 -31
  394. package/dist/src/lib/format-time.d.ts.map +0 -1
  395. package/dist/src/lib/format-time.js +0 -32
  396. package/dist/src/lib/index.d.ts.map +0 -1
  397. package/dist/src/lib/index.js +0 -3
  398. package/dist/src/lib/utils.d.ts.map +0 -1
  399. package/dist/src/lib/utils.js +0 -5
  400. package/dist/src/test/setup.d.ts.map +0 -1
  401. package/dist/src/test/setup.js +0 -65
  402. package/dist/src/types/events.d.ts.map +0 -1
  403. package/dist/src/types/events.js +0 -2
  404. package/dist/src/types/formats.d.ts.map +0 -1
  405. package/dist/src/types/formats.js +0 -63
  406. package/dist/src/types/index.d.ts.map +0 -1
  407. package/dist/src/types/index.js +0 -4
  408. package/dist/utils-Db13763z.cjs +0 -9
  409. package/dist/utils-Db13763z.cjs.map +0 -1
  410. package/dist/utils-nTO4AnHo.js +0 -2809
  411. package/dist/utils-nTO4AnHo.js.map +0 -1
  412. package/dist/utils.js +0 -2
  413. package/dist/utils.js.map +0 -1
  414. package/dist/utils.mjs +0 -7
  415. package/dist/utils.mjs.map +0 -1
  416. package/src/adapters/videojs-adapter.js +0 -350
  417. package/src/components/AnimateLoading.js +0 -41
  418. package/src/components/LoadingState.js +0 -111
  419. package/src/components/accessibility/keyboard-help-overlay.js +0 -90
  420. package/src/components/audio-player.js +0 -31
  421. package/src/components/basic/index.js +0 -29
  422. package/src/components/enhanced/advanced-features.js +0 -64
  423. package/src/components/enhanced/debug-panel.js +0 -94
  424. package/src/components/enhanced/enhanced-controls.js +0 -233
  425. package/src/components/enhanced/enhanced-media-player.js +0 -316
  426. package/src/components/enhanced/error-handling.js +0 -153
  427. package/src/components/enhanced/index.js +0 -10
  428. package/src/components/enhanced/media-player-enhanced.js +0 -250
  429. package/src/components/examples/basic-video-player.js +0 -16
  430. package/src/components/examples/custom-controls-example.js +0 -12
  431. package/src/components/examples/enhanced-controls-example.js +0 -18
  432. package/src/components/examples/enhanced-media-player-example.js +0 -13
  433. package/src/components/examples/loading-states-demo.js +0 -41
  434. package/src/components/examples/react-19-demo.js +0 -104
  435. package/src/components/examples/volume-orientation-demo.js +0 -31
  436. package/src/components/icon-demo.js +0 -16
  437. package/src/components/icons/index.js +0 -59
  438. package/src/components/icons/svg-icons/ArrowLeftIcon.js +0 -3
  439. package/src/components/icons/svg-icons/ArrowRightIcon.js +0 -3
  440. package/src/components/icons/svg-icons/AudioIcon.js +0 -4
  441. package/src/components/icons/svg-icons/BackwardIcon.js +0 -3
  442. package/src/components/icons/svg-icons/CameraIcon.js +0 -4
  443. package/src/components/icons/svg-icons/CheckIcon.js +0 -4
  444. package/src/components/icons/svg-icons/EnablePiPIcon.js +0 -5
  445. package/src/components/icons/svg-icons/ForwardIcon.js +0 -3
  446. package/src/components/icons/svg-icons/FullscreenEnterIcon.js +0 -3
  447. package/src/components/icons/svg-icons/FullscreenExitIcon.js +0 -3
  448. package/src/components/icons/svg-icons/LoadingIcon.js +0 -3
  449. package/src/components/icons/svg-icons/PauseIcon.js +0 -3
  450. package/src/components/icons/svg-icons/PlayIcon.js +0 -3
  451. package/src/components/icons/svg-icons/PlaybackSpeedIcon.js +0 -3
  452. package/src/components/icons/svg-icons/QualityIcon.js +0 -3
  453. package/src/components/icons/svg-icons/SettingsIcon.js +0 -3
  454. package/src/components/icons/svg-icons/SliderIcon.js +0 -3
  455. package/src/components/icons/svg-icons/SubtitleIcon.js +0 -3
  456. package/src/components/icons/svg-icons/SubtitleOffIcon.js +0 -3
  457. package/src/components/icons/svg-icons/UnPiPIcon.js +0 -5
  458. package/src/components/icons/svg-icons/VolumeMutedIcon.js +0 -3
  459. package/src/components/icons/svg-icons/VolumeOneIcon.js +0 -3
  460. package/src/components/icons/svg-icons/VolumeThreeIcon.js +0 -3
  461. package/src/components/icons/svg-icons/VolumeTwoIcon.js +0 -3
  462. package/src/components/legacy.js +0 -52
  463. package/src/components/media-metadata-display.js +0 -20
  464. package/src/components/media-player-audio.js +0 -18
  465. package/src/components/media-player-controls.js +0 -150
  466. package/src/components/media-player-error.js +0 -85
  467. package/src/components/media-player-fullscreen.js +0 -68
  468. package/src/components/media-player-hls.js +0 -20
  469. package/src/components/media-player-loading.js +0 -53
  470. package/src/components/media-player-play.js +0 -44
  471. package/src/components/media-player-root.js +0 -243
  472. package/src/components/media-player-seek.js +0 -92
  473. package/src/components/media-player-time.js +0 -57
  474. package/src/components/media-player-tooltip.js +0 -14
  475. package/src/components/media-player-video.js +0 -18
  476. package/src/components/media-player-volume.js +0 -88
  477. package/src/components/media-player.js +0 -67
  478. package/src/components/media-suspense.js +0 -173
  479. package/src/components/player-settings-form.js +0 -46
  480. package/src/components/react-player-wrapper.js +0 -163
  481. package/src/components/simple-video-player.js +0 -41
  482. package/src/components/ui/enhanced-seek-bar.js +0 -112
  483. package/src/components/ui/fullscreen-button.js +0 -21
  484. package/src/components/ui/media-resource-preloader.js +0 -295
  485. package/src/components/ui/play-button.js +0 -26
  486. package/src/components/ui/seek-bar.js +0 -54
  487. package/src/components/ui/time-display.js +0 -18
  488. package/src/components/ui/volume-control.js +0 -71
  489. package/src/components/unified/base-media-player.js +0 -104
  490. package/src/components/unified/media-player.js +0 -41
  491. package/src/components/variants/minimal/AccessibleMinimalPlayer.js +0 -322
  492. package/src/components/variants/minimal/EnhancedMinimalMediaPlayer.js +0 -280
  493. package/src/components/variants/minimal/MinimalControls.js +0 -19
  494. package/src/components/variants/minimal/MinimalLoading.js +0 -6
  495. package/src/components/variants/minimal/MinimalMediaPlayer.js +0 -135
  496. package/src/components/variants/minimal/MinimalOverlay.js +0 -15
  497. package/src/components/variants/minimal/MinimalPlayButton.js +0 -29
  498. package/src/components/variants/minimal/MinimalSeekBar.js +0 -73
  499. package/src/components/variants/minimal/MinimalVolumeControl.js +0 -29
  500. package/src/components/variants/minimal/SimpleMinimalPlayer.js +0 -51
  501. package/src/components/variants/minimal/components/CenterPlayButton.js +0 -8
  502. package/src/components/variants/minimal/components/ControlBar.js +0 -10
  503. package/src/components/variants/minimal/components/EnhancedSettingsMenu.js +0 -68
  504. package/src/components/variants/minimal/components/PlaybackControls.js +0 -9
  505. package/src/components/variants/minimal/components/RightControls.js +0 -40
  506. package/src/components/variants/minimal/components/SeekBar.js +0 -43
  507. package/src/components/variants/minimal/components/SettingsDropdown.js +0 -18
  508. package/src/components/variants/minimal/components/SubtitleDisplay.js +0 -6
  509. package/src/components/variants/minimal/components/TimeDisplay.js +0 -5
  510. package/src/components/variants/minimal/components/VideoElement.js +0 -4
  511. package/src/components/variants/minimal/components/VolumeControl.js +0 -99
  512. package/src/components/variants/minimal/index.js +0 -8
  513. package/src/components/video-player.js +0 -38
  514. package/src/context/error-handling.js +0 -300
  515. package/src/context/media-context.js +0 -121
  516. package/src/context/media-provider.js +0 -164
  517. package/src/context/media-store.js +0 -273
  518. package/src/context/persistence.js +0 -356
  519. package/src/core/events/event-system.js +0 -288
  520. package/src/core/events/hooks.js +0 -198
  521. package/src/core/events/index.js +0 -7
  522. package/src/core/events/middleware.js +0 -219
  523. package/src/core/index.js +0 -15
  524. package/src/core/optimization/bundle-optimizer.js +0 -217
  525. package/src/core/performance/cicd.js +0 -83
  526. package/src/core/performance/index.js +0 -14
  527. package/src/core/performance/media-loading-optimizer.js +0 -404
  528. package/src/core/performance/performance-budgets.js +0 -326
  529. package/src/core/performance/performance-monitor.js +0 -297
  530. package/src/core/performance/performance-testing.js +0 -314
  531. package/src/core/plugins/base-plugin.js +0 -151
  532. package/src/core/plugins/enhanced-plugin-system.js +0 -305
  533. package/src/core/plugins/examples/analytics-plugin.js +0 -191
  534. package/src/core/plugins/index.js +0 -9
  535. package/src/core/plugins/registry.js +0 -261
  536. package/src/core/plugins/types.js +0 -31
  537. package/src/core/plugins/utils.js +0 -274
  538. package/src/core/progressive-loading.js +0 -239
  539. package/src/core/providers/enhanced-hls-provider.js +0 -273
  540. package/src/core/providers/service-provider.js +0 -105
  541. package/src/core/utils.js +0 -21
  542. package/src/features/media-session/media-session-manager.js +0 -331
  543. package/src/features/picture-in-picture/pip-manager.js +0 -353
  544. package/src/features/playlist/playlist-manager.js +0 -475
  545. package/src/features/subtitles/subtitle-manager.js +0 -335
  546. package/src/features/subtitles/subtitle-parser.js +0 -217
  547. package/src/features/thumbnails/thumbnail-generator.js +0 -388
  548. package/src/hooks/accessibility/index.js +0 -4
  549. package/src/hooks/accessibility/use-accessibility-preferences.js +0 -156
  550. package/src/hooks/accessibility/use-focus-management.js +0 -142
  551. package/src/hooks/accessibility/use-keyboard-shortcuts.js +0 -101
  552. package/src/hooks/accessibility/use-screen-reader.js +0 -148
  553. package/src/hooks/core/index.js +0 -19
  554. package/src/hooks/legacy.js +0 -17
  555. package/src/hooks/use-enhanced-media-player.js +0 -395
  556. package/src/hooks/use-intelligent-preloading.js +0 -258
  557. package/src/hooks/use-keyboard-controls.js +0 -83
  558. package/src/hooks/use-media-actions.js +0 -121
  559. package/src/hooks/use-media-metadata.js +0 -74
  560. package/src/hooks/use-media-optimistic.js +0 -205
  561. package/src/hooks/use-media-player.js +0 -251
  562. package/src/hooks/use-media-state.js +0 -162
  563. package/src/hooks/use-memory-optimization.js +0 -288
  564. package/src/hooks/use-optimistic-controls.js +0 -60
  565. package/src/hooks/use-optimized-media.js +0 -211
  566. package/src/hooks/use-touch-gestures.js +0 -289
  567. package/src/hooks/useEnhancedSubtitles.js +0 -205
  568. package/src/hooks/useKeyboardShortcuts.js +0 -59
  569. package/src/hooks/useMediaControls.js +0 -44
  570. package/src/hooks/useScreenshot.js +0 -56
  571. package/src/hooks/useSubtitles.js +0 -73
  572. package/src/hooks/useVideoPlayer.js +0 -184
  573. package/src/icons/components/FullscreenIcon.js +0 -11
  574. package/src/icons/components/SettingsIcon.js +0 -11
  575. package/src/icons/components/animated/LoadingIcon.js +0 -11
  576. package/src/icons/components/animated/PlayPauseIcon.js +0 -9
  577. package/src/icons/components/media/PauseIcon.js +0 -12
  578. package/src/icons/components/media/PlayIcon.js +0 -12
  579. package/src/icons/components/volume/VolumeIcon.js +0 -11
  580. package/src/icons/components/volume/VolumeOffIcon.js +0 -11
  581. package/src/icons/index.js +0 -45
  582. package/src/icons/provider.js +0 -37
  583. package/src/icons/types.js +0 -1
  584. package/src/index-enhanced.js +0 -16
  585. package/src/index-legacy.js +0 -97
  586. package/src/index.js +0 -90
  587. package/src/index.minimal.js +0 -3
  588. package/src/lib/deprecation.js +0 -31
  589. package/src/lib/format-time.js +0 -32
  590. package/src/lib/index.js +0 -3
  591. package/src/lib/utils.js +0 -5
  592. package/src/test/setup.js +0 -65
  593. package/src/types/events.js +0 -2
  594. package/src/types/formats.js +0 -63
  595. 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
- }