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