@therealtinhtute/baroiplayer 1.0.6 → 1.0.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (597) hide show
  1. package/dist/index.d.ts +1 -1
  2. package/dist/index.js +1 -7
  3. package/dist/index.mjs +1 -2
  4. package/dist/package.json +1 -1
  5. package/package.json +1 -1
  6. package/dist/context/media.js +0 -2
  7. package/dist/context/media.js.map +0 -1
  8. package/dist/context/media.mjs +0 -15
  9. package/dist/context/media.mjs.map +0 -1
  10. package/dist/context/store.js +0 -2
  11. package/dist/context/store.js.map +0 -1
  12. package/dist/context/store.mjs +0 -5
  13. package/dist/context/store.mjs.map +0 -1
  14. package/dist/context-Af84FynT.js +0 -1179
  15. package/dist/context-Af84FynT.js.map +0 -1
  16. package/dist/context-CwZnPdz0.cjs +0 -23
  17. package/dist/context-CwZnPdz0.cjs.map +0 -1
  18. package/dist/core-events-B5W_j8yU.js +0 -480
  19. package/dist/core-events-B5W_j8yU.js.map +0 -1
  20. package/dist/core-events-CN0-Vhhq.cjs +0 -2
  21. package/dist/core-events-CN0-Vhhq.cjs.map +0 -1
  22. package/dist/core-plugins-Bq9KLany.js +0 -696
  23. package/dist/core-plugins-Bq9KLany.js.map +0 -1
  24. package/dist/core-plugins-CPDSHMiQ.cjs +0 -2
  25. package/dist/core-plugins-CPDSHMiQ.cjs.map +0 -1
  26. package/dist/core.js +0 -37
  27. package/dist/core.js.map +0 -1
  28. package/dist/core.mjs +0 -1217
  29. package/dist/core.mjs.map +0 -1
  30. package/dist/enhanced-components-CXnYiOt6.cjs +0 -2
  31. package/dist/enhanced-components-CXnYiOt6.cjs.map +0 -1
  32. package/dist/enhanced-components-Da0TSvKe.js +0 -1073
  33. package/dist/enhanced-components-Da0TSvKe.js.map +0 -1
  34. package/dist/hooks-BCMilGRf.cjs +0 -4
  35. package/dist/hooks-BCMilGRf.cjs.map +0 -1
  36. package/dist/hooks-BPtHV1ZT.js +0 -2042
  37. package/dist/hooks-BPtHV1ZT.js.map +0 -1
  38. package/dist/index.js.map +0 -1
  39. package/dist/index.mjs.map +0 -1
  40. package/dist/minimal-components-BHJMuaL7.cjs +0 -2
  41. package/dist/minimal-components-BHJMuaL7.cjs.map +0 -1
  42. package/dist/minimal-components-BmqRefl1.js +0 -2002
  43. package/dist/minimal-components-BmqRefl1.js.map +0 -1
  44. package/dist/mona-loading.gif +0 -0
  45. package/dist/performance-monitor--rzKTlbj.js +0 -302
  46. package/dist/performance-monitor--rzKTlbj.js.map +0 -1
  47. package/dist/performance-monitor-cjIvZE2D.cjs +0 -2
  48. package/dist/performance-monitor-cjIvZE2D.cjs.map +0 -1
  49. package/dist/src/adapters/videojs-adapter.d.ts.map +0 -1
  50. package/dist/src/adapters/videojs-adapter.js +0 -350
  51. package/dist/src/assets/mona-loading.gif +0 -0
  52. package/dist/src/components/AnimateLoading.d.ts.map +0 -1
  53. package/dist/src/components/AnimateLoading.js +0 -41
  54. package/dist/src/components/LoadingState.d.ts.map +0 -1
  55. package/dist/src/components/LoadingState.js +0 -111
  56. package/dist/src/components/accessibility/keyboard-help-overlay.d.ts.map +0 -1
  57. package/dist/src/components/accessibility/keyboard-help-overlay.js +0 -90
  58. package/dist/src/components/audio-player.d.ts.map +0 -1
  59. package/dist/src/components/audio-player.js +0 -31
  60. package/dist/src/components/basic/index.d.ts.map +0 -1
  61. package/dist/src/components/basic/index.js +0 -29
  62. package/dist/src/components/enhanced/advanced-features.d.ts.map +0 -1
  63. package/dist/src/components/enhanced/advanced-features.js +0 -64
  64. package/dist/src/components/enhanced/debug-panel.d.ts.map +0 -1
  65. package/dist/src/components/enhanced/debug-panel.js +0 -94
  66. package/dist/src/components/enhanced/enhanced-controls.d.ts.map +0 -1
  67. package/dist/src/components/enhanced/enhanced-controls.js +0 -233
  68. package/dist/src/components/enhanced/enhanced-media-player.d.ts.map +0 -1
  69. package/dist/src/components/enhanced/enhanced-media-player.js +0 -316
  70. package/dist/src/components/enhanced/error-handling.d.ts.map +0 -1
  71. package/dist/src/components/enhanced/error-handling.js +0 -153
  72. package/dist/src/components/enhanced/index.d.ts.map +0 -1
  73. package/dist/src/components/enhanced/index.js +0 -10
  74. package/dist/src/components/enhanced/media-player-enhanced.d.ts.map +0 -1
  75. package/dist/src/components/enhanced/media-player-enhanced.js +0 -250
  76. package/dist/src/components/examples/basic-video-player.d.ts.map +0 -1
  77. package/dist/src/components/examples/basic-video-player.js +0 -16
  78. package/dist/src/components/examples/custom-controls-example.d.ts.map +0 -1
  79. package/dist/src/components/examples/custom-controls-example.js +0 -12
  80. package/dist/src/components/examples/enhanced-controls-example.d.ts.map +0 -1
  81. package/dist/src/components/examples/enhanced-controls-example.js +0 -18
  82. package/dist/src/components/examples/enhanced-media-player-example.d.ts.map +0 -1
  83. package/dist/src/components/examples/enhanced-media-player-example.js +0 -13
  84. package/dist/src/components/examples/loading-states-demo.d.ts.map +0 -1
  85. package/dist/src/components/examples/loading-states-demo.js +0 -41
  86. package/dist/src/components/examples/react-19-demo.d.ts.map +0 -1
  87. package/dist/src/components/examples/react-19-demo.js +0 -104
  88. package/dist/src/components/examples/volume-orientation-demo.d.ts.map +0 -1
  89. package/dist/src/components/examples/volume-orientation-demo.js +0 -31
  90. package/dist/src/components/icon-demo.d.ts.map +0 -1
  91. package/dist/src/components/icon-demo.js +0 -16
  92. package/dist/src/components/icons/index.d.ts.map +0 -1
  93. package/dist/src/components/icons/index.js +0 -59
  94. package/dist/src/components/icons/svg-icons/ArrowLeftIcon.d.ts.map +0 -1
  95. package/dist/src/components/icons/svg-icons/ArrowLeftIcon.js +0 -3
  96. package/dist/src/components/icons/svg-icons/ArrowRightIcon.d.ts.map +0 -1
  97. package/dist/src/components/icons/svg-icons/ArrowRightIcon.js +0 -3
  98. package/dist/src/components/icons/svg-icons/AudioIcon.d.ts.map +0 -1
  99. package/dist/src/components/icons/svg-icons/AudioIcon.js +0 -4
  100. package/dist/src/components/icons/svg-icons/BackwardIcon.d.ts.map +0 -1
  101. package/dist/src/components/icons/svg-icons/BackwardIcon.js +0 -3
  102. package/dist/src/components/icons/svg-icons/CameraIcon.d.ts.map +0 -1
  103. package/dist/src/components/icons/svg-icons/CameraIcon.js +0 -4
  104. package/dist/src/components/icons/svg-icons/CheckIcon.d.ts.map +0 -1
  105. package/dist/src/components/icons/svg-icons/CheckIcon.js +0 -4
  106. package/dist/src/components/icons/svg-icons/EnablePiPIcon.d.ts.map +0 -1
  107. package/dist/src/components/icons/svg-icons/EnablePiPIcon.js +0 -5
  108. package/dist/src/components/icons/svg-icons/ForwardIcon.d.ts.map +0 -1
  109. package/dist/src/components/icons/svg-icons/ForwardIcon.js +0 -3
  110. package/dist/src/components/icons/svg-icons/FullscreenEnterIcon.d.ts.map +0 -1
  111. package/dist/src/components/icons/svg-icons/FullscreenEnterIcon.js +0 -3
  112. package/dist/src/components/icons/svg-icons/FullscreenExitIcon.d.ts.map +0 -1
  113. package/dist/src/components/icons/svg-icons/FullscreenExitIcon.js +0 -3
  114. package/dist/src/components/icons/svg-icons/LoadingIcon.d.ts.map +0 -1
  115. package/dist/src/components/icons/svg-icons/LoadingIcon.js +0 -3
  116. package/dist/src/components/icons/svg-icons/PauseIcon.d.ts.map +0 -1
  117. package/dist/src/components/icons/svg-icons/PauseIcon.js +0 -3
  118. package/dist/src/components/icons/svg-icons/PlayIcon.d.ts.map +0 -1
  119. package/dist/src/components/icons/svg-icons/PlayIcon.js +0 -3
  120. package/dist/src/components/icons/svg-icons/PlaybackSpeedIcon.d.ts.map +0 -1
  121. package/dist/src/components/icons/svg-icons/PlaybackSpeedIcon.js +0 -3
  122. package/dist/src/components/icons/svg-icons/QualityIcon.d.ts.map +0 -1
  123. package/dist/src/components/icons/svg-icons/QualityIcon.js +0 -3
  124. package/dist/src/components/icons/svg-icons/SettingsIcon.d.ts.map +0 -1
  125. package/dist/src/components/icons/svg-icons/SettingsIcon.js +0 -3
  126. package/dist/src/components/icons/svg-icons/SliderIcon.d.ts.map +0 -1
  127. package/dist/src/components/icons/svg-icons/SliderIcon.js +0 -3
  128. package/dist/src/components/icons/svg-icons/SubtitleIcon.d.ts.map +0 -1
  129. package/dist/src/components/icons/svg-icons/SubtitleIcon.js +0 -3
  130. package/dist/src/components/icons/svg-icons/SubtitleOffIcon.d.ts.map +0 -1
  131. package/dist/src/components/icons/svg-icons/SubtitleOffIcon.js +0 -3
  132. package/dist/src/components/icons/svg-icons/UnPiPIcon.d.ts.map +0 -1
  133. package/dist/src/components/icons/svg-icons/UnPiPIcon.js +0 -5
  134. package/dist/src/components/icons/svg-icons/VolumeMutedIcon.d.ts.map +0 -1
  135. package/dist/src/components/icons/svg-icons/VolumeMutedIcon.js +0 -3
  136. package/dist/src/components/icons/svg-icons/VolumeOneIcon.d.ts.map +0 -1
  137. package/dist/src/components/icons/svg-icons/VolumeOneIcon.js +0 -3
  138. package/dist/src/components/icons/svg-icons/VolumeThreeIcon.d.ts.map +0 -1
  139. package/dist/src/components/icons/svg-icons/VolumeThreeIcon.js +0 -3
  140. package/dist/src/components/icons/svg-icons/VolumeTwoIcon.d.ts.map +0 -1
  141. package/dist/src/components/icons/svg-icons/VolumeTwoIcon.js +0 -3
  142. package/dist/src/components/legacy.d.ts.map +0 -1
  143. package/dist/src/components/legacy.js +0 -52
  144. package/dist/src/components/media-metadata-display.d.ts.map +0 -1
  145. package/dist/src/components/media-metadata-display.js +0 -20
  146. package/dist/src/components/media-player-audio.d.ts.map +0 -1
  147. package/dist/src/components/media-player-audio.js +0 -18
  148. package/dist/src/components/media-player-controls.d.ts.map +0 -1
  149. package/dist/src/components/media-player-controls.js +0 -150
  150. package/dist/src/components/media-player-error.d.ts.map +0 -1
  151. package/dist/src/components/media-player-error.js +0 -85
  152. package/dist/src/components/media-player-fullscreen.d.ts.map +0 -1
  153. package/dist/src/components/media-player-fullscreen.js +0 -68
  154. package/dist/src/components/media-player-hls.d.ts.map +0 -1
  155. package/dist/src/components/media-player-hls.js +0 -20
  156. package/dist/src/components/media-player-loading.d.ts.map +0 -1
  157. package/dist/src/components/media-player-loading.js +0 -53
  158. package/dist/src/components/media-player-play.d.ts.map +0 -1
  159. package/dist/src/components/media-player-play.js +0 -44
  160. package/dist/src/components/media-player-root.d.ts.map +0 -1
  161. package/dist/src/components/media-player-root.js +0 -243
  162. package/dist/src/components/media-player-seek.d.ts.map +0 -1
  163. package/dist/src/components/media-player-seek.js +0 -92
  164. package/dist/src/components/media-player-time.d.ts.map +0 -1
  165. package/dist/src/components/media-player-time.js +0 -57
  166. package/dist/src/components/media-player-tooltip.d.ts.map +0 -1
  167. package/dist/src/components/media-player-tooltip.js +0 -14
  168. package/dist/src/components/media-player-video.d.ts.map +0 -1
  169. package/dist/src/components/media-player-video.js +0 -18
  170. package/dist/src/components/media-player-volume.d.ts.map +0 -1
  171. package/dist/src/components/media-player-volume.js +0 -88
  172. package/dist/src/components/media-player.d.ts.map +0 -1
  173. package/dist/src/components/media-player.js +0 -67
  174. package/dist/src/components/media-suspense.d.ts.map +0 -1
  175. package/dist/src/components/media-suspense.js +0 -173
  176. package/dist/src/components/player-settings-form.d.ts.map +0 -1
  177. package/dist/src/components/player-settings-form.js +0 -46
  178. package/dist/src/components/react-player-wrapper.d.ts.map +0 -1
  179. package/dist/src/components/react-player-wrapper.js +0 -163
  180. package/dist/src/components/simple-video-player.d.ts.map +0 -1
  181. package/dist/src/components/simple-video-player.js +0 -41
  182. package/dist/src/components/ui/enhanced-seek-bar.d.ts.map +0 -1
  183. package/dist/src/components/ui/enhanced-seek-bar.js +0 -112
  184. package/dist/src/components/ui/fullscreen-button.d.ts.map +0 -1
  185. package/dist/src/components/ui/fullscreen-button.js +0 -21
  186. package/dist/src/components/ui/media-resource-preloader.d.ts.map +0 -1
  187. package/dist/src/components/ui/media-resource-preloader.js +0 -295
  188. package/dist/src/components/ui/play-button.d.ts.map +0 -1
  189. package/dist/src/components/ui/play-button.js +0 -26
  190. package/dist/src/components/ui/seek-bar.d.ts.map +0 -1
  191. package/dist/src/components/ui/seek-bar.js +0 -54
  192. package/dist/src/components/ui/time-display.d.ts.map +0 -1
  193. package/dist/src/components/ui/time-display.js +0 -18
  194. package/dist/src/components/ui/volume-control.d.ts.map +0 -1
  195. package/dist/src/components/ui/volume-control.js +0 -71
  196. package/dist/src/components/unified/base-media-player.d.ts.map +0 -1
  197. package/dist/src/components/unified/base-media-player.js +0 -104
  198. package/dist/src/components/unified/media-player.d.ts.map +0 -1
  199. package/dist/src/components/unified/media-player.js +0 -41
  200. package/dist/src/components/variants/minimal/AccessibleMinimalPlayer.d.ts.map +0 -1
  201. package/dist/src/components/variants/minimal/AccessibleMinimalPlayer.js +0 -322
  202. package/dist/src/components/variants/minimal/EnhancedMinimalMediaPlayer.d.ts.map +0 -1
  203. package/dist/src/components/variants/minimal/EnhancedMinimalMediaPlayer.js +0 -280
  204. package/dist/src/components/variants/minimal/MinimalControls.d.ts.map +0 -1
  205. package/dist/src/components/variants/minimal/MinimalControls.js +0 -19
  206. package/dist/src/components/variants/minimal/MinimalLoading.d.ts.map +0 -1
  207. package/dist/src/components/variants/minimal/MinimalLoading.js +0 -6
  208. package/dist/src/components/variants/minimal/MinimalMediaPlayer.d.ts.map +0 -1
  209. package/dist/src/components/variants/minimal/MinimalMediaPlayer.js +0 -135
  210. package/dist/src/components/variants/minimal/MinimalOverlay.d.ts.map +0 -1
  211. package/dist/src/components/variants/minimal/MinimalOverlay.js +0 -15
  212. package/dist/src/components/variants/minimal/MinimalPlayButton.d.ts.map +0 -1
  213. package/dist/src/components/variants/minimal/MinimalPlayButton.js +0 -29
  214. package/dist/src/components/variants/minimal/MinimalSeekBar.d.ts.map +0 -1
  215. package/dist/src/components/variants/minimal/MinimalSeekBar.js +0 -73
  216. package/dist/src/components/variants/minimal/MinimalVolumeControl.d.ts.map +0 -1
  217. package/dist/src/components/variants/minimal/MinimalVolumeControl.js +0 -29
  218. package/dist/src/components/variants/minimal/SimpleMinimalPlayer.d.ts.map +0 -1
  219. package/dist/src/components/variants/minimal/SimpleMinimalPlayer.js +0 -51
  220. package/dist/src/components/variants/minimal/components/CenterPlayButton.d.ts.map +0 -1
  221. package/dist/src/components/variants/minimal/components/CenterPlayButton.js +0 -8
  222. package/dist/src/components/variants/minimal/components/ControlBar.d.ts.map +0 -1
  223. package/dist/src/components/variants/minimal/components/ControlBar.js +0 -10
  224. package/dist/src/components/variants/minimal/components/EnhancedSettingsMenu.d.ts.map +0 -1
  225. package/dist/src/components/variants/minimal/components/EnhancedSettingsMenu.js +0 -68
  226. package/dist/src/components/variants/minimal/components/PlaybackControls.d.ts.map +0 -1
  227. package/dist/src/components/variants/minimal/components/PlaybackControls.js +0 -9
  228. package/dist/src/components/variants/minimal/components/RightControls.d.ts.map +0 -1
  229. package/dist/src/components/variants/minimal/components/RightControls.js +0 -40
  230. package/dist/src/components/variants/minimal/components/SeekBar.d.ts.map +0 -1
  231. package/dist/src/components/variants/minimal/components/SeekBar.js +0 -43
  232. package/dist/src/components/variants/minimal/components/SettingsDropdown.d.ts.map +0 -1
  233. package/dist/src/components/variants/minimal/components/SettingsDropdown.js +0 -18
  234. package/dist/src/components/variants/minimal/components/SubtitleDisplay.d.ts.map +0 -1
  235. package/dist/src/components/variants/minimal/components/SubtitleDisplay.js +0 -6
  236. package/dist/src/components/variants/minimal/components/TimeDisplay.d.ts.map +0 -1
  237. package/dist/src/components/variants/minimal/components/TimeDisplay.js +0 -5
  238. package/dist/src/components/variants/minimal/components/VideoElement.d.ts.map +0 -1
  239. package/dist/src/components/variants/minimal/components/VideoElement.js +0 -4
  240. package/dist/src/components/variants/minimal/components/VolumeControl.d.ts.map +0 -1
  241. package/dist/src/components/variants/minimal/components/VolumeControl.js +0 -99
  242. package/dist/src/components/variants/minimal/index.d.ts.map +0 -1
  243. package/dist/src/components/variants/minimal/index.js +0 -8
  244. package/dist/src/components/video-player.d.ts.map +0 -1
  245. package/dist/src/components/video-player.js +0 -38
  246. package/dist/src/context/error-handling.d.ts.map +0 -1
  247. package/dist/src/context/error-handling.js +0 -300
  248. package/dist/src/context/media-context.d.ts.map +0 -1
  249. package/dist/src/context/media-context.js +0 -121
  250. package/dist/src/context/media-provider.d.ts.map +0 -1
  251. package/dist/src/context/media-provider.js +0 -164
  252. package/dist/src/context/media-store.d.ts.map +0 -1
  253. package/dist/src/context/media-store.js +0 -273
  254. package/dist/src/context/persistence.d.ts.map +0 -1
  255. package/dist/src/context/persistence.js +0 -356
  256. package/dist/src/core/events/event-system.d.ts.map +0 -1
  257. package/dist/src/core/events/event-system.js +0 -288
  258. package/dist/src/core/events/hooks.d.ts.map +0 -1
  259. package/dist/src/core/events/hooks.js +0 -198
  260. package/dist/src/core/events/index.d.ts.map +0 -1
  261. package/dist/src/core/events/index.js +0 -7
  262. package/dist/src/core/events/middleware.d.ts.map +0 -1
  263. package/dist/src/core/events/middleware.js +0 -219
  264. package/dist/src/core/index.d.ts.map +0 -1
  265. package/dist/src/core/index.js +0 -15
  266. package/dist/src/core/optimization/bundle-optimizer.d.ts.map +0 -1
  267. package/dist/src/core/optimization/bundle-optimizer.js +0 -217
  268. package/dist/src/core/performance/cicd.d.ts.map +0 -1
  269. package/dist/src/core/performance/cicd.js +0 -83
  270. package/dist/src/core/performance/index.d.ts.map +0 -1
  271. package/dist/src/core/performance/index.js +0 -14
  272. package/dist/src/core/performance/media-loading-optimizer.d.ts.map +0 -1
  273. package/dist/src/core/performance/media-loading-optimizer.js +0 -404
  274. package/dist/src/core/performance/performance-budgets.d.ts.map +0 -1
  275. package/dist/src/core/performance/performance-budgets.js +0 -326
  276. package/dist/src/core/performance/performance-monitor.d.ts.map +0 -1
  277. package/dist/src/core/performance/performance-monitor.js +0 -297
  278. package/dist/src/core/performance/performance-testing.d.ts.map +0 -1
  279. package/dist/src/core/performance/performance-testing.js +0 -314
  280. package/dist/src/core/plugins/base-plugin.d.ts.map +0 -1
  281. package/dist/src/core/plugins/base-plugin.js +0 -151
  282. package/dist/src/core/plugins/enhanced-plugin-system.d.ts.map +0 -1
  283. package/dist/src/core/plugins/enhanced-plugin-system.js +0 -305
  284. package/dist/src/core/plugins/examples/analytics-plugin.d.ts.map +0 -1
  285. package/dist/src/core/plugins/examples/analytics-plugin.js +0 -191
  286. package/dist/src/core/plugins/index.d.ts.map +0 -1
  287. package/dist/src/core/plugins/index.js +0 -9
  288. package/dist/src/core/plugins/registry.d.ts.map +0 -1
  289. package/dist/src/core/plugins/registry.js +0 -261
  290. package/dist/src/core/plugins/types.d.ts.map +0 -1
  291. package/dist/src/core/plugins/types.js +0 -31
  292. package/dist/src/core/plugins/utils.d.ts.map +0 -1
  293. package/dist/src/core/plugins/utils.js +0 -274
  294. package/dist/src/core/progressive-loading.d.ts.map +0 -1
  295. package/dist/src/core/progressive-loading.js +0 -239
  296. package/dist/src/core/providers/enhanced-hls-provider.d.ts.map +0 -1
  297. package/dist/src/core/providers/enhanced-hls-provider.js +0 -273
  298. package/dist/src/core/providers/service-provider.d.ts.map +0 -1
  299. package/dist/src/core/providers/service-provider.js +0 -105
  300. package/dist/src/core/utils.d.ts.map +0 -1
  301. package/dist/src/core/utils.js +0 -21
  302. package/dist/src/features/media-session/media-session-manager.d.ts.map +0 -1
  303. package/dist/src/features/media-session/media-session-manager.js +0 -331
  304. package/dist/src/features/picture-in-picture/pip-manager.d.ts.map +0 -1
  305. package/dist/src/features/picture-in-picture/pip-manager.js +0 -353
  306. package/dist/src/features/playlist/playlist-manager.d.ts.map +0 -1
  307. package/dist/src/features/playlist/playlist-manager.js +0 -475
  308. package/dist/src/features/subtitles/subtitle-manager.d.ts.map +0 -1
  309. package/dist/src/features/subtitles/subtitle-manager.js +0 -335
  310. package/dist/src/features/subtitles/subtitle-parser.d.ts.map +0 -1
  311. package/dist/src/features/subtitles/subtitle-parser.js +0 -217
  312. package/dist/src/features/thumbnails/thumbnail-generator.d.ts.map +0 -1
  313. package/dist/src/features/thumbnails/thumbnail-generator.js +0 -388
  314. package/dist/src/hooks/accessibility/index.d.ts.map +0 -1
  315. package/dist/src/hooks/accessibility/index.js +0 -4
  316. package/dist/src/hooks/accessibility/use-accessibility-preferences.d.ts.map +0 -1
  317. package/dist/src/hooks/accessibility/use-accessibility-preferences.js +0 -156
  318. package/dist/src/hooks/accessibility/use-focus-management.d.ts.map +0 -1
  319. package/dist/src/hooks/accessibility/use-focus-management.js +0 -142
  320. package/dist/src/hooks/accessibility/use-keyboard-shortcuts.d.ts.map +0 -1
  321. package/dist/src/hooks/accessibility/use-keyboard-shortcuts.js +0 -101
  322. package/dist/src/hooks/accessibility/use-screen-reader.d.ts.map +0 -1
  323. package/dist/src/hooks/accessibility/use-screen-reader.js +0 -148
  324. package/dist/src/hooks/core/index.d.ts.map +0 -1
  325. package/dist/src/hooks/core/index.js +0 -19
  326. package/dist/src/hooks/legacy.d.ts.map +0 -1
  327. package/dist/src/hooks/legacy.js +0 -17
  328. package/dist/src/hooks/use-enhanced-media-player.d.ts.map +0 -1
  329. package/dist/src/hooks/use-enhanced-media-player.js +0 -395
  330. package/dist/src/hooks/use-intelligent-preloading.d.ts.map +0 -1
  331. package/dist/src/hooks/use-intelligent-preloading.js +0 -258
  332. package/dist/src/hooks/use-keyboard-controls.d.ts.map +0 -1
  333. package/dist/src/hooks/use-keyboard-controls.js +0 -83
  334. package/dist/src/hooks/use-media-actions.d.ts.map +0 -1
  335. package/dist/src/hooks/use-media-actions.js +0 -121
  336. package/dist/src/hooks/use-media-metadata.d.ts.map +0 -1
  337. package/dist/src/hooks/use-media-metadata.js +0 -74
  338. package/dist/src/hooks/use-media-optimistic.d.ts.map +0 -1
  339. package/dist/src/hooks/use-media-optimistic.js +0 -205
  340. package/dist/src/hooks/use-media-player.d.ts.map +0 -1
  341. package/dist/src/hooks/use-media-player.js +0 -251
  342. package/dist/src/hooks/use-media-state.d.ts.map +0 -1
  343. package/dist/src/hooks/use-media-state.js +0 -162
  344. package/dist/src/hooks/use-memory-optimization.d.ts.map +0 -1
  345. package/dist/src/hooks/use-memory-optimization.js +0 -288
  346. package/dist/src/hooks/use-optimistic-controls.d.ts.map +0 -1
  347. package/dist/src/hooks/use-optimistic-controls.js +0 -60
  348. package/dist/src/hooks/use-optimized-media.d.ts.map +0 -1
  349. package/dist/src/hooks/use-optimized-media.js +0 -211
  350. package/dist/src/hooks/use-touch-gestures.d.ts.map +0 -1
  351. package/dist/src/hooks/use-touch-gestures.js +0 -289
  352. package/dist/src/hooks/useEnhancedSubtitles.d.ts.map +0 -1
  353. package/dist/src/hooks/useEnhancedSubtitles.js +0 -205
  354. package/dist/src/hooks/useKeyboardShortcuts.d.ts.map +0 -1
  355. package/dist/src/hooks/useKeyboardShortcuts.js +0 -59
  356. package/dist/src/hooks/useMediaControls.d.ts.map +0 -1
  357. package/dist/src/hooks/useMediaControls.js +0 -44
  358. package/dist/src/hooks/useScreenshot.d.ts.map +0 -1
  359. package/dist/src/hooks/useScreenshot.js +0 -56
  360. package/dist/src/hooks/useSubtitles.d.ts.map +0 -1
  361. package/dist/src/hooks/useSubtitles.js +0 -73
  362. package/dist/src/hooks/useVideoPlayer.d.ts.map +0 -1
  363. package/dist/src/hooks/useVideoPlayer.js +0 -184
  364. package/dist/src/icons/components/FullscreenIcon.d.ts.map +0 -1
  365. package/dist/src/icons/components/FullscreenIcon.js +0 -11
  366. package/dist/src/icons/components/SettingsIcon.d.ts.map +0 -1
  367. package/dist/src/icons/components/SettingsIcon.js +0 -11
  368. package/dist/src/icons/components/animated/LoadingIcon.d.ts.map +0 -1
  369. package/dist/src/icons/components/animated/LoadingIcon.js +0 -11
  370. package/dist/src/icons/components/animated/PlayPauseIcon.d.ts.map +0 -1
  371. package/dist/src/icons/components/animated/PlayPauseIcon.js +0 -9
  372. package/dist/src/icons/components/media/PauseIcon.d.ts.map +0 -1
  373. package/dist/src/icons/components/media/PauseIcon.js +0 -12
  374. package/dist/src/icons/components/media/PlayIcon.d.ts.map +0 -1
  375. package/dist/src/icons/components/media/PlayIcon.js +0 -12
  376. package/dist/src/icons/components/volume/VolumeIcon.d.ts.map +0 -1
  377. package/dist/src/icons/components/volume/VolumeIcon.js +0 -11
  378. package/dist/src/icons/components/volume/VolumeOffIcon.d.ts.map +0 -1
  379. package/dist/src/icons/components/volume/VolumeOffIcon.js +0 -11
  380. package/dist/src/icons/index.d.ts.map +0 -1
  381. package/dist/src/icons/index.js +0 -45
  382. package/dist/src/icons/provider.d.ts.map +0 -1
  383. package/dist/src/icons/provider.js +0 -37
  384. package/dist/src/icons/types.d.ts.map +0 -1
  385. package/dist/src/icons/types.js +0 -1
  386. package/dist/src/index-enhanced.d.ts.map +0 -1
  387. package/dist/src/index-enhanced.js +0 -16
  388. package/dist/src/index-legacy.d.ts.map +0 -1
  389. package/dist/src/index-legacy.js +0 -97
  390. package/dist/src/index.d.ts.map +0 -1
  391. package/dist/src/index.js +0 -90
  392. package/dist/src/index.minimal.d.ts.map +0 -1
  393. package/dist/src/index.minimal.js +0 -3
  394. package/dist/src/lib/deprecation.d.ts.map +0 -1
  395. package/dist/src/lib/deprecation.js +0 -31
  396. package/dist/src/lib/format-time.d.ts.map +0 -1
  397. package/dist/src/lib/format-time.js +0 -32
  398. package/dist/src/lib/index.d.ts.map +0 -1
  399. package/dist/src/lib/index.js +0 -3
  400. package/dist/src/lib/utils.d.ts.map +0 -1
  401. package/dist/src/lib/utils.js +0 -5
  402. package/dist/src/test/setup.d.ts.map +0 -1
  403. package/dist/src/test/setup.js +0 -65
  404. package/dist/src/types/events.d.ts.map +0 -1
  405. package/dist/src/types/events.js +0 -2
  406. package/dist/src/types/formats.d.ts.map +0 -1
  407. package/dist/src/types/formats.js +0 -63
  408. package/dist/src/types/index.d.ts.map +0 -1
  409. package/dist/src/types/index.js +0 -4
  410. package/dist/utils-Db13763z.cjs +0 -9
  411. package/dist/utils-Db13763z.cjs.map +0 -1
  412. package/dist/utils-nTO4AnHo.js +0 -2809
  413. package/dist/utils-nTO4AnHo.js.map +0 -1
  414. package/dist/utils.js +0 -2
  415. package/dist/utils.js.map +0 -1
  416. package/dist/utils.mjs +0 -7
  417. package/dist/utils.mjs.map +0 -1
  418. package/src/adapters/videojs-adapter.js +0 -350
  419. package/src/components/AnimateLoading.js +0 -41
  420. package/src/components/LoadingState.js +0 -111
  421. package/src/components/accessibility/keyboard-help-overlay.js +0 -90
  422. package/src/components/audio-player.js +0 -31
  423. package/src/components/basic/index.js +0 -29
  424. package/src/components/enhanced/advanced-features.js +0 -64
  425. package/src/components/enhanced/debug-panel.js +0 -94
  426. package/src/components/enhanced/enhanced-controls.js +0 -233
  427. package/src/components/enhanced/enhanced-media-player.js +0 -316
  428. package/src/components/enhanced/error-handling.js +0 -153
  429. package/src/components/enhanced/index.js +0 -10
  430. package/src/components/enhanced/media-player-enhanced.js +0 -250
  431. package/src/components/examples/basic-video-player.js +0 -16
  432. package/src/components/examples/custom-controls-example.js +0 -12
  433. package/src/components/examples/enhanced-controls-example.js +0 -18
  434. package/src/components/examples/enhanced-media-player-example.js +0 -13
  435. package/src/components/examples/loading-states-demo.js +0 -41
  436. package/src/components/examples/react-19-demo.js +0 -104
  437. package/src/components/examples/volume-orientation-demo.js +0 -31
  438. package/src/components/icon-demo.js +0 -16
  439. package/src/components/icons/index.js +0 -59
  440. package/src/components/icons/svg-icons/ArrowLeftIcon.js +0 -3
  441. package/src/components/icons/svg-icons/ArrowRightIcon.js +0 -3
  442. package/src/components/icons/svg-icons/AudioIcon.js +0 -4
  443. package/src/components/icons/svg-icons/BackwardIcon.js +0 -3
  444. package/src/components/icons/svg-icons/CameraIcon.js +0 -4
  445. package/src/components/icons/svg-icons/CheckIcon.js +0 -4
  446. package/src/components/icons/svg-icons/EnablePiPIcon.js +0 -5
  447. package/src/components/icons/svg-icons/ForwardIcon.js +0 -3
  448. package/src/components/icons/svg-icons/FullscreenEnterIcon.js +0 -3
  449. package/src/components/icons/svg-icons/FullscreenExitIcon.js +0 -3
  450. package/src/components/icons/svg-icons/LoadingIcon.js +0 -3
  451. package/src/components/icons/svg-icons/PauseIcon.js +0 -3
  452. package/src/components/icons/svg-icons/PlayIcon.js +0 -3
  453. package/src/components/icons/svg-icons/PlaybackSpeedIcon.js +0 -3
  454. package/src/components/icons/svg-icons/QualityIcon.js +0 -3
  455. package/src/components/icons/svg-icons/SettingsIcon.js +0 -3
  456. package/src/components/icons/svg-icons/SliderIcon.js +0 -3
  457. package/src/components/icons/svg-icons/SubtitleIcon.js +0 -3
  458. package/src/components/icons/svg-icons/SubtitleOffIcon.js +0 -3
  459. package/src/components/icons/svg-icons/UnPiPIcon.js +0 -5
  460. package/src/components/icons/svg-icons/VolumeMutedIcon.js +0 -3
  461. package/src/components/icons/svg-icons/VolumeOneIcon.js +0 -3
  462. package/src/components/icons/svg-icons/VolumeThreeIcon.js +0 -3
  463. package/src/components/icons/svg-icons/VolumeTwoIcon.js +0 -3
  464. package/src/components/legacy.js +0 -52
  465. package/src/components/media-metadata-display.js +0 -20
  466. package/src/components/media-player-audio.js +0 -18
  467. package/src/components/media-player-controls.js +0 -150
  468. package/src/components/media-player-error.js +0 -85
  469. package/src/components/media-player-fullscreen.js +0 -68
  470. package/src/components/media-player-hls.js +0 -20
  471. package/src/components/media-player-loading.js +0 -53
  472. package/src/components/media-player-play.js +0 -44
  473. package/src/components/media-player-root.js +0 -243
  474. package/src/components/media-player-seek.js +0 -92
  475. package/src/components/media-player-time.js +0 -57
  476. package/src/components/media-player-tooltip.js +0 -14
  477. package/src/components/media-player-video.js +0 -18
  478. package/src/components/media-player-volume.js +0 -88
  479. package/src/components/media-player.js +0 -67
  480. package/src/components/media-suspense.js +0 -173
  481. package/src/components/player-settings-form.js +0 -46
  482. package/src/components/react-player-wrapper.js +0 -163
  483. package/src/components/simple-video-player.js +0 -41
  484. package/src/components/ui/enhanced-seek-bar.js +0 -112
  485. package/src/components/ui/fullscreen-button.js +0 -21
  486. package/src/components/ui/media-resource-preloader.js +0 -295
  487. package/src/components/ui/play-button.js +0 -26
  488. package/src/components/ui/seek-bar.js +0 -54
  489. package/src/components/ui/time-display.js +0 -18
  490. package/src/components/ui/volume-control.js +0 -71
  491. package/src/components/unified/base-media-player.js +0 -104
  492. package/src/components/unified/media-player.js +0 -41
  493. package/src/components/variants/minimal/AccessibleMinimalPlayer.js +0 -322
  494. package/src/components/variants/minimal/EnhancedMinimalMediaPlayer.js +0 -280
  495. package/src/components/variants/minimal/MinimalControls.js +0 -19
  496. package/src/components/variants/minimal/MinimalLoading.js +0 -6
  497. package/src/components/variants/minimal/MinimalMediaPlayer.js +0 -135
  498. package/src/components/variants/minimal/MinimalOverlay.js +0 -15
  499. package/src/components/variants/minimal/MinimalPlayButton.js +0 -29
  500. package/src/components/variants/minimal/MinimalSeekBar.js +0 -73
  501. package/src/components/variants/minimal/MinimalVolumeControl.js +0 -29
  502. package/src/components/variants/minimal/SimpleMinimalPlayer.js +0 -51
  503. package/src/components/variants/minimal/components/CenterPlayButton.js +0 -8
  504. package/src/components/variants/minimal/components/ControlBar.js +0 -10
  505. package/src/components/variants/minimal/components/EnhancedSettingsMenu.js +0 -68
  506. package/src/components/variants/minimal/components/PlaybackControls.js +0 -9
  507. package/src/components/variants/minimal/components/RightControls.js +0 -40
  508. package/src/components/variants/minimal/components/SeekBar.js +0 -43
  509. package/src/components/variants/minimal/components/SettingsDropdown.js +0 -18
  510. package/src/components/variants/minimal/components/SubtitleDisplay.js +0 -6
  511. package/src/components/variants/minimal/components/TimeDisplay.js +0 -5
  512. package/src/components/variants/minimal/components/VideoElement.js +0 -4
  513. package/src/components/variants/minimal/components/VolumeControl.js +0 -99
  514. package/src/components/variants/minimal/index.js +0 -8
  515. package/src/components/video-player.js +0 -38
  516. package/src/context/error-handling.js +0 -300
  517. package/src/context/media-context.js +0 -121
  518. package/src/context/media-provider.js +0 -164
  519. package/src/context/media-store.js +0 -273
  520. package/src/context/persistence.js +0 -356
  521. package/src/core/events/event-system.js +0 -288
  522. package/src/core/events/hooks.js +0 -198
  523. package/src/core/events/index.js +0 -7
  524. package/src/core/events/middleware.js +0 -219
  525. package/src/core/index.js +0 -15
  526. package/src/core/optimization/bundle-optimizer.js +0 -217
  527. package/src/core/performance/cicd.js +0 -83
  528. package/src/core/performance/index.js +0 -14
  529. package/src/core/performance/media-loading-optimizer.js +0 -404
  530. package/src/core/performance/performance-budgets.js +0 -326
  531. package/src/core/performance/performance-monitor.js +0 -297
  532. package/src/core/performance/performance-testing.js +0 -314
  533. package/src/core/plugins/base-plugin.js +0 -151
  534. package/src/core/plugins/enhanced-plugin-system.js +0 -305
  535. package/src/core/plugins/examples/analytics-plugin.js +0 -191
  536. package/src/core/plugins/index.js +0 -9
  537. package/src/core/plugins/registry.js +0 -261
  538. package/src/core/plugins/types.js +0 -31
  539. package/src/core/plugins/utils.js +0 -274
  540. package/src/core/progressive-loading.js +0 -239
  541. package/src/core/providers/enhanced-hls-provider.js +0 -273
  542. package/src/core/providers/service-provider.js +0 -105
  543. package/src/core/utils.js +0 -21
  544. package/src/features/media-session/media-session-manager.js +0 -331
  545. package/src/features/picture-in-picture/pip-manager.js +0 -353
  546. package/src/features/playlist/playlist-manager.js +0 -475
  547. package/src/features/subtitles/subtitle-manager.js +0 -335
  548. package/src/features/subtitles/subtitle-parser.js +0 -217
  549. package/src/features/thumbnails/thumbnail-generator.js +0 -388
  550. package/src/hooks/accessibility/index.js +0 -4
  551. package/src/hooks/accessibility/use-accessibility-preferences.js +0 -156
  552. package/src/hooks/accessibility/use-focus-management.js +0 -142
  553. package/src/hooks/accessibility/use-keyboard-shortcuts.js +0 -101
  554. package/src/hooks/accessibility/use-screen-reader.js +0 -148
  555. package/src/hooks/core/index.js +0 -19
  556. package/src/hooks/legacy.js +0 -17
  557. package/src/hooks/use-enhanced-media-player.js +0 -395
  558. package/src/hooks/use-intelligent-preloading.js +0 -258
  559. package/src/hooks/use-keyboard-controls.js +0 -83
  560. package/src/hooks/use-media-actions.js +0 -121
  561. package/src/hooks/use-media-metadata.js +0 -74
  562. package/src/hooks/use-media-optimistic.js +0 -205
  563. package/src/hooks/use-media-player.js +0 -251
  564. package/src/hooks/use-media-state.js +0 -162
  565. package/src/hooks/use-memory-optimization.js +0 -288
  566. package/src/hooks/use-optimistic-controls.js +0 -60
  567. package/src/hooks/use-optimized-media.js +0 -211
  568. package/src/hooks/use-touch-gestures.js +0 -289
  569. package/src/hooks/useEnhancedSubtitles.js +0 -205
  570. package/src/hooks/useKeyboardShortcuts.js +0 -59
  571. package/src/hooks/useMediaControls.js +0 -44
  572. package/src/hooks/useScreenshot.js +0 -56
  573. package/src/hooks/useSubtitles.js +0 -73
  574. package/src/hooks/useVideoPlayer.js +0 -184
  575. package/src/icons/components/FullscreenIcon.js +0 -11
  576. package/src/icons/components/SettingsIcon.js +0 -11
  577. package/src/icons/components/animated/LoadingIcon.js +0 -11
  578. package/src/icons/components/animated/PlayPauseIcon.js +0 -9
  579. package/src/icons/components/media/PauseIcon.js +0 -12
  580. package/src/icons/components/media/PlayIcon.js +0 -12
  581. package/src/icons/components/volume/VolumeIcon.js +0 -11
  582. package/src/icons/components/volume/VolumeOffIcon.js +0 -11
  583. package/src/icons/index.js +0 -45
  584. package/src/icons/provider.js +0 -37
  585. package/src/icons/types.js +0 -1
  586. package/src/index-enhanced.js +0 -16
  587. package/src/index-legacy.js +0 -97
  588. package/src/index.js +0 -90
  589. package/src/index.minimal.js +0 -3
  590. package/src/lib/deprecation.js +0 -31
  591. package/src/lib/format-time.js +0 -32
  592. package/src/lib/index.js +0 -3
  593. package/src/lib/utils.js +0 -5
  594. package/src/test/setup.js +0 -65
  595. package/src/types/events.js +0 -2
  596. package/src/types/formats.js +0 -63
  597. package/src/types/index.js +0 -4
@@ -1,288 +0,0 @@
1
- "use client";
2
- import React, { useEffect, useRef, useCallback } from "react";
3
- // Memory optimization hook for media players
4
- export function useMemoryOptimization(options = {}) {
5
- const { maxMemoryUsage = 100, // 100MB default
6
- cleanupInterval = 30000, // 30 seconds default
7
- enableGC = true, monitorMemory = true } = options;
8
- const cleanupTimeoutRef = useRef();
9
- const observersRef = useRef(new Set());
10
- const eventListenersRef = useRef(new Map());
11
- const intervalRefs = useRef(new Set());
12
- const animationFrameRefs = useRef(new Set());
13
- // Get current memory usage
14
- const getMemoryUsage = useCallback(() => {
15
- if (typeof window === 'undefined' || !('memory' in performance)) {
16
- return { used: 0, total: 0, limit: 0 };
17
- }
18
- const memory = performance.memory;
19
- return {
20
- used: memory.usedJSHeapSize,
21
- total: memory.totalJSHeapSize,
22
- limit: memory.jsHeapSizeLimit
23
- };
24
- }, []);
25
- // Memory monitoring state
26
- const [memoryStats, setMemoryStats] = React.useState({
27
- used: 0,
28
- total: 0,
29
- limit: 0,
30
- usage: 0,
31
- isHighUsage: false
32
- });
33
- // Memory monitoring
34
- useEffect(() => {
35
- if (!monitorMemory)
36
- return;
37
- const checkMemory = () => {
38
- const memory = getMemoryUsage();
39
- const usage = (memory.used / 1024 / 1024); // Convert to MB
40
- const isHighUsage = usage > maxMemoryUsage;
41
- setMemoryStats({
42
- ...memory,
43
- usage,
44
- isHighUsage
45
- });
46
- // Trigger cleanup if memory usage is high
47
- if (isHighUsage && enableGC) {
48
- performCleanup();
49
- }
50
- };
51
- checkMemory();
52
- const interval = setInterval(checkMemory, cleanupInterval);
53
- intervalRefs.current.add(interval);
54
- return () => {
55
- clearInterval(interval);
56
- intervalRefs.current.delete(interval);
57
- };
58
- }, [monitorMemory, getMemoryUsage, maxMemoryUsage, enableGC, cleanupInterval]);
59
- // Cleanup function
60
- const performCleanup = useCallback(() => {
61
- // Clear all timeouts
62
- intervalRefs.current.forEach(timeout => {
63
- clearTimeout(timeout);
64
- });
65
- intervalRefs.current.clear();
66
- // Cancel all animation frames
67
- animationFrameRefs.current.forEach(frameId => {
68
- cancelAnimationFrame(frameId);
69
- });
70
- animationFrameRefs.current.clear();
71
- // Disconnect all observers
72
- observersRef.current.forEach(observer => {
73
- observer.disconnect();
74
- });
75
- observersRef.current.clear();
76
- // Remove all event listeners
77
- eventListenersRef.current.forEach((listeners, element) => {
78
- listeners.forEach(({ event, handler }) => {
79
- element.removeEventListener(event, handler);
80
- });
81
- });
82
- eventListenersRef.current.clear();
83
- // Trigger garbage collection if available
84
- if (enableGC && 'gc' in window) {
85
- window.gc();
86
- }
87
- }, [enableGC]);
88
- // Safe event listener management
89
- const addEventListener = useCallback((element, event, handler, options) => {
90
- element.addEventListener(event, handler, options);
91
- if (!eventListenersRef.current.has(element)) {
92
- eventListenersRef.current.set(element, []);
93
- }
94
- eventListenersRef.current.get(element).push({ event, handler });
95
- // Return cleanup function
96
- return () => {
97
- element.removeEventListener(event, handler);
98
- const listeners = eventListenersRef.current.get(element);
99
- if (listeners) {
100
- const index = listeners.findIndex(l => l.event === event && l.handler === handler);
101
- if (index > -1) {
102
- listeners.splice(index, 1);
103
- }
104
- if (listeners.length === 0) {
105
- eventListenersRef.current.delete(element);
106
- }
107
- }
108
- };
109
- }, []);
110
- // Safe interval management
111
- const setInterval = useCallback((callback, delay) => {
112
- const timeoutId = setInterval(callback, delay);
113
- intervalRefs.current.add(timeoutId);
114
- return () => {
115
- clearInterval(timeoutId);
116
- intervalRefs.current.delete(timeoutId);
117
- };
118
- }, []);
119
- // Safe timeout management
120
- const setTimeout = useCallback((callback, delay) => {
121
- const timeoutId = setTimeout(callback, delay);
122
- intervalRefs.current.add(timeoutId);
123
- return () => {
124
- clearTimeout(timeoutId);
125
- intervalRefs.current.delete(timeoutId);
126
- };
127
- }, []);
128
- // Safe animation frame management
129
- const requestAnimationFrame = useCallback((callback) => {
130
- const frameId = requestAnimationFrame(callback);
131
- animationFrameRefs.current.add(frameId);
132
- return () => {
133
- cancelAnimationFrame(frameId);
134
- animationFrameRefs.current.delete(frameId);
135
- };
136
- }, []);
137
- // Safe observer management
138
- const addObserver = useCallback((observer) => {
139
- observersRef.current.add(observer);
140
- return () => {
141
- observer.disconnect();
142
- observersRef.current.delete(observer);
143
- };
144
- }, []);
145
- // Cleanup on unmount
146
- useEffect(() => {
147
- return () => {
148
- performCleanup();
149
- };
150
- }, [performCleanup]);
151
- return {
152
- // Memory stats
153
- memoryStats,
154
- getMemoryUsage,
155
- // Cleanup functions
156
- performCleanup,
157
- // Safe API functions
158
- addEventListener,
159
- setInterval,
160
- setTimeout,
161
- requestAnimationFrame,
162
- addObserver,
163
- // Utilities
164
- formatBytes: (bytes) => {
165
- if (bytes === 0)
166
- return '0 Bytes';
167
- const k = 1024;
168
- const sizes = ['Bytes', 'KB', 'MB', 'GB'];
169
- const i = Math.floor(Math.log(bytes) / Math.log(k));
170
- return parseFloat((bytes / Math.pow(k, i)).toFixed(2)) + ' ' + sizes[i];
171
- }
172
- };
173
- }
174
- // Resource cleanup hook for media elements
175
- export function useMediaResourceCleanup(mediaRef) {
176
- const { addEventListener, performCleanup } = useMemoryOptimization();
177
- // Track resource cleanup
178
- const cleanupResources = useCallback(() => {
179
- const media = mediaRef.current;
180
- if (!media)
181
- return;
182
- // Stop media playback
183
- if (!media.paused) {
184
- _media.pause();
185
- }
186
- // Clear source
187
- if (media.src) {
188
- media.src = '';
189
- media.load();
190
- }
191
- // Remove source elements
192
- while (media.firstChild) {
193
- media.removeChild(media.firstChild);
194
- }
195
- // Clear any pending seeks
196
- media.currentTime = 0;
197
- // Clear buffered data
198
- if ('clearBuffered' in media) {
199
- media.clearBuffered();
200
- }
201
- }, [mediaRef]);
202
- // Enhanced event listener registration
203
- const registerMediaEventListener = useCallback((event, handler, options) => {
204
- const media = mediaRef.current;
205
- if (!media)
206
- return () => { };
207
- return addEventListener(media, event, handler, options);
208
- }, [mediaRef, addEventListener]);
209
- // Cleanup on unmount
210
- useEffect(() => {
211
- return cleanupResources;
212
- }, [cleanupResources]);
213
- return {
214
- cleanupResources,
215
- registerMediaEventListener
216
- };
217
- }
218
- // Performance monitoring hook
219
- export function usePerformanceMonitoring() {
220
- const [metrics, setMetrics] = React.useState({
221
- fps: 0,
222
- frameDrops: 0,
223
- longTasks: 0,
224
- totalLongTaskDuration: 0
225
- });
226
- const frameCountRef = useRef(0);
227
- const lastFrameTimeRef = useRef(performance.now());
228
- const longTaskObserverRef = useRef();
229
- // FPS monitoring
230
- useEffect(() => {
231
- let rafId;
232
- const measureFrame = () => {
233
- frameCountRef.current++;
234
- const now = performance.now();
235
- // Calculate FPS every second
236
- if (now - lastFrameTimeRef.current >= 1000) {
237
- const fps = Math.round((frameCountRef.current * 1000) / (now - lastFrameTimeRef.current));
238
- const expectedFrames = Math.round((now - lastFrameTimeRef.current) / 16.67); // 60fps
239
- const frameDrops = Math.max(0, expectedFrames - frameCountRef.current);
240
- setMetrics(prev => ({
241
- ...prev,
242
- fps,
243
- frameDrops: prev.frameDrops + frameDrops
244
- }));
245
- frameCountRef.current = 0;
246
- lastFrameTimeRef.current = now;
247
- }
248
- rafId = requestAnimationFrame(measureFrame);
249
- };
250
- rafId = requestAnimationFrame(measureFrame);
251
- return () => {
252
- cancelAnimationFrame(rafId);
253
- };
254
- }, []);
255
- // Long task monitoring
256
- useEffect(() => {
257
- if (!('PerformanceObserver' in window))
258
- return;
259
- try {
260
- const observer = new PerformanceObserver((list) => {
261
- for (const entry of list.getEntries()) {
262
- if (entry.duration > 50) { // Long task threshold
263
- setMetrics(prev => ({
264
- ...prev,
265
- longTasks: prev.longTasks + 1,
266
- totalLongTaskDuration: prev.totalLongTaskDuration + entry.duration
267
- }));
268
- }
269
- }
270
- });
271
- observer.observe({ entryTypes: ['longtask'] });
272
- longTaskObserverRef.current = observer;
273
- return () => {
274
- observer.disconnect();
275
- };
276
- }
277
- catch (error) {
278
- console.warn('Long task monitoring not supported:', error);
279
- }
280
- }, []);
281
- return {
282
- ...metrics,
283
- averageLongTaskDuration: metrics.longTasks > 0
284
- ? metrics.totalLongTaskDuration / metrics.longTasks
285
- : 0,
286
- isPerformanceGood: metrics.fps >= 50 && metrics.frameDrops < 5
287
- };
288
- }
@@ -1,60 +0,0 @@
1
- import { useOptimistic, useTransition } from 'react';
2
- export function useOptimisticMediaState(initialState, mediaElement) {
3
- const [isPending, startTransition] = useTransition();
4
- // Optimistic state for each property
5
- const [optimisticPlaying, setOptimisticPlaying] = useOptimistic(initialState.isPlaying, (_, value) => value);
6
- const [optimisticVolume, setOptimisticVolume] = useOptimistic(initialState.volume, (_, value) => value);
7
- const [optimisticTime, setOptimisticTime] = useOptimistic(initialState.currentTime, (_, value) => value);
8
- const [optimisticRate, setOptimisticRate] = useOptimistic(initialState.playbackRate, (_, value) => value);
9
- // Wrapped actions with optimistic updates
10
- const actions = {
11
- togglePlay: async () => {
12
- const newState = !optimisticPlaying;
13
- setOptimisticPlaying(newState);
14
- startTransition(async () => {
15
- if (mediaElement) {
16
- if (newState) {
17
- await mediaElement.play();
18
- }
19
- else {
20
- mediaElement.pause();
21
- }
22
- }
23
- });
24
- },
25
- setVolume: async (volume) => {
26
- setOptimisticVolume(volume);
27
- startTransition(async () => {
28
- if (mediaElement) {
29
- mediaElement.volume = volume;
30
- }
31
- });
32
- },
33
- seek: async (time) => {
34
- setOptimisticTime(time);
35
- startTransition(async () => {
36
- if (mediaElement) {
37
- mediaElement.currentTime = time;
38
- }
39
- });
40
- },
41
- setPlaybackRate: async (rate) => {
42
- setOptimisticRate(rate);
43
- startTransition(async () => {
44
- if (mediaElement) {
45
- mediaElement.playbackRate = rate;
46
- }
47
- });
48
- }
49
- };
50
- return {
51
- state: {
52
- isPlaying: optimisticPlaying,
53
- volume: optimisticVolume,
54
- currentTime: optimisticTime,
55
- playbackRate: optimisticRate
56
- },
57
- actions,
58
- isPending
59
- };
60
- }
@@ -1,211 +0,0 @@
1
- "use client";
2
- import React from "react";
3
- import { useMediaSelector, useMediaDispatch, MediaActionTypes } from "../context/media-context";
4
- // Optimized hook for media state with memoized selectors
5
- export function useOptimizedMediaState() {
6
- // Memoized selectors to prevent unnecessary re-renders
7
- const isPlaying = useMediaSelector(React.useCallback(state => state.isPlaying, []));
8
- const currentTime = useMediaSelector(React.useCallback(state => state.currentTime, []));
9
- const duration = useMediaSelector(React.useCallback(state => state.duration, []));
10
- const volume = useMediaSelector(React.useCallback(state => state.volume, []));
11
- const isMuted = useMediaSelector(React.useCallback(state => state.isMuted, []));
12
- const isLoading = useMediaSelector(React.useCallback(state => state.isLoading, []));
13
- const error = useMediaSelector(React.useCallback(state => state.error, []));
14
- const isFullscreen = useMediaSelector(React.useCallback(state => state.isFullscreen, []));
15
- const isPictureInPicture = useMediaSelector(React.useCallback(state => state.isPictureInPicture, []));
16
- const buffered = useMediaSelector(React.useCallback(state => state.buffered, []));
17
- const playbackRate = useMediaSelector(React.useCallback(state => state.playbackRate, []));
18
- // Derived state with memoization
19
- const progress = React.useMemo(() => {
20
- return duration > 0 ? (currentTime / duration) * 100 : 0;
21
- }, [currentTime, duration]);
22
- const remainingTime = React.useMemo(() => {
23
- return Math.max(0, duration - currentTime);
24
- }, [duration, currentTime]);
25
- const bufferedRanges = React.useMemo(() => {
26
- if (!buffered || duration === 0)
27
- return [];
28
- const ranges = [];
29
- for (let i = 0; i < buffered.length; i++) {
30
- ranges.push({
31
- start: (buffered.start(i) / duration) * 100,
32
- end: (buffered.end(i) / duration) * 100
33
- });
34
- }
35
- return ranges;
36
- }, [buffered, duration]);
37
- const canPlay = React.useMemo(() => {
38
- return !isLoading && !error && duration > 0;
39
- }, [isLoading, error, duration]);
40
- return {
41
- // Basic state
42
- isPlaying,
43
- currentTime,
44
- duration,
45
- volume,
46
- isMuted,
47
- isLoading,
48
- error,
49
- isFullscreen,
50
- isPictureInPicture,
51
- buffered,
52
- playbackRate,
53
- // Derived state
54
- progress,
55
- remainingTime,
56
- bufferedRanges,
57
- canPlay
58
- };
59
- }
60
- // Optimized hook for media controls with memoized callbacks
61
- export function useOptimizedMediaControls() {
62
- const dispatch = useMediaDispatch();
63
- // Memoized control functions
64
- const play = React.useCallback(() => {
65
- dispatch({ type: MediaActionTypes.PLAY });
66
- }, [dispatch]);
67
- const pause = React.useCallback(() => {
68
- dispatch({ type: MediaActionTypes.PAUSE });
69
- }, [dispatch]);
70
- const toggle = React.useCallback(() => {
71
- dispatch({ type: MediaActionTypes.PLAY });
72
- }, [dispatch]);
73
- const seek = React.useCallback((time) => {
74
- dispatch({ type: MediaActionTypes.SEEK, detail: time });
75
- }, [dispatch]);
76
- const setVolume = React.useCallback((volume) => {
77
- dispatch({ type: MediaActionTypes.SET_VOLUME, detail: volume });
78
- }, [dispatch]);
79
- const mute = React.useCallback(() => {
80
- dispatch({ type: MediaActionTypes.MUTE });
81
- }, [dispatch]);
82
- const unmute = React.useCallback(() => {
83
- dispatch({ type: MediaActionTypes.UNMUTE });
84
- }, [dispatch]);
85
- const toggleMute = React.useCallback(() => {
86
- dispatch({ type: MediaActionTypes.TOGGLE_MUTE });
87
- }, [dispatch]);
88
- const enterFullscreen = React.useCallback(() => {
89
- dispatch({ type: MediaActionTypes.ENTER_FULLSCREEN });
90
- }, [dispatch]);
91
- const exitFullscreen = React.useCallback(() => {
92
- dispatch({ type: MediaActionTypes.EXIT_FULLSCREEN });
93
- }, [dispatch]);
94
- const toggleFullscreen = React.useCallback(() => {
95
- dispatch({ type: MediaActionTypes.ENTER_FULLSCREEN });
96
- }, [dispatch]);
97
- const enterPictureInPicture = React.useCallback(() => {
98
- dispatch({ type: MediaActionTypes.ENTER_PIP });
99
- }, [dispatch]);
100
- const exitPictureInPicture = React.useCallback(() => {
101
- dispatch({ type: MediaActionTypes.EXIT_PIP });
102
- }, [dispatch]);
103
- const togglePictureInPicture = React.useCallback(() => {
104
- dispatch({ type: MediaActionTypes.ENTER_PIP });
105
- }, [dispatch]);
106
- const setPlaybackRate = React.useCallback((rate) => {
107
- dispatch({ type: MediaActionTypes.SET_PLAYBACK_RATE, detail: rate });
108
- }, [dispatch]);
109
- const skipForward = React.useCallback((seconds = 10) => {
110
- dispatch({ type: MediaActionTypes.SEEK, detail: seconds });
111
- }, [dispatch]);
112
- const skipBackward = React.useCallback((seconds = 10) => {
113
- dispatch({ type: MediaActionTypes.SEEK, detail: -seconds });
114
- }, [dispatch]);
115
- return {
116
- play,
117
- pause,
118
- toggle,
119
- seek,
120
- setVolume,
121
- mute,
122
- unmute,
123
- toggleMute,
124
- enterFullscreen,
125
- exitFullscreen,
126
- toggleFullscreen,
127
- enterPictureInPicture,
128
- exitPictureInPicture,
129
- togglePictureInPicture,
130
- setPlaybackRate,
131
- skipForward,
132
- skipBackward
133
- };
134
- }
135
- // Hook for debounced seek operations
136
- export function useDebouncedSeek(delay = 100) {
137
- const dispatch = useMediaDispatch();
138
- const timeoutRef = React.useRef(null);
139
- const debouncedSeek = React.useCallback((time) => {
140
- if (timeoutRef.current) {
141
- clearTimeout(timeoutRef.current);
142
- }
143
- timeoutRef.current = setTimeout(() => {
144
- dispatch({ type: MediaActionTypes.SEEK, detail: time });
145
- }, delay);
146
- }, [dispatch, delay]);
147
- React.useEffect(() => {
148
- return () => {
149
- if (timeoutRef.current) {
150
- clearTimeout(timeoutRef.current);
151
- }
152
- };
153
- }, []);
154
- return debouncedSeek;
155
- }
156
- // Hook for throttled volume changes
157
- export function useThrottledVolume(delay = 50) {
158
- const dispatch = useMediaDispatch();
159
- const lastUpdateRef = React.useRef(0);
160
- const throttledSetVolume = React.useCallback((volume) => {
161
- const now = Date.now();
162
- if (now - lastUpdateRef.current >= delay) {
163
- dispatch({ type: MediaActionTypes.SET_VOLUME, detail: volume });
164
- lastUpdateRef.current = now;
165
- }
166
- }, [dispatch, delay]);
167
- return throttledSetVolume;
168
- }
169
- // Hook for optimized time formatting
170
- export function useFormattedTime(time) {
171
- return React.useMemo(() => {
172
- const hours = Math.floor(time / 3600);
173
- const minutes = Math.floor((time % 3600) / 60);
174
- const seconds = Math.floor(time % 60);
175
- if (hours > 0) {
176
- return `${hours}:${minutes.toString().padStart(2, '0')}:${seconds.toString().padStart(2, '0')}`;
177
- }
178
- return `${minutes}:${seconds.toString().padStart(2, '0')}`;
179
- }, [time]);
180
- }
181
- // Hook for intersection observer (for lazy loading)
182
- export function useIntersectionObserver(elementRef, options) {
183
- const [isIntersecting, setIsIntersecting] = React.useState(false);
184
- React.useEffect(() => {
185
- const element = elementRef.current;
186
- if (!element)
187
- return;
188
- const observer = new IntersectionObserver(([entry]) => {
189
- setIsIntersecting(entry?.isIntersecting ?? false);
190
- }, options);
191
- observer.observe(element);
192
- return () => {
193
- observer.unobserve(element);
194
- };
195
- }, [elementRef, options]);
196
- return isIntersecting;
197
- }
198
- // Hook for media queries (responsive behavior)
199
- export function useMediaQuery(query) {
200
- const [matches, setMatches] = React.useState(false);
201
- React.useEffect(() => {
202
- const mediaQuery = window.matchMedia(query);
203
- setMatches(mediaQuery.matches);
204
- const handler = (event) => {
205
- setMatches(event.matches);
206
- };
207
- mediaQuery.addEventListener('change', handler);
208
- return () => mediaQuery.removeEventListener('change', handler);
209
- }, [query]);
210
- return matches;
211
- }