@therealtinhtute/baroiplayer 1.0.6 → 1.0.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (595) hide show
  1. package/dist/index.d.ts +1 -1
  2. package/dist/package.json +1 -1
  3. package/package.json +1 -1
  4. package/dist/context/media.js +0 -2
  5. package/dist/context/media.js.map +0 -1
  6. package/dist/context/media.mjs +0 -15
  7. package/dist/context/media.mjs.map +0 -1
  8. package/dist/context/store.js +0 -2
  9. package/dist/context/store.js.map +0 -1
  10. package/dist/context/store.mjs +0 -5
  11. package/dist/context/store.mjs.map +0 -1
  12. package/dist/context-Af84FynT.js +0 -1179
  13. package/dist/context-Af84FynT.js.map +0 -1
  14. package/dist/context-CwZnPdz0.cjs +0 -23
  15. package/dist/context-CwZnPdz0.cjs.map +0 -1
  16. package/dist/core-events-B5W_j8yU.js +0 -480
  17. package/dist/core-events-B5W_j8yU.js.map +0 -1
  18. package/dist/core-events-CN0-Vhhq.cjs +0 -2
  19. package/dist/core-events-CN0-Vhhq.cjs.map +0 -1
  20. package/dist/core-plugins-Bq9KLany.js +0 -696
  21. package/dist/core-plugins-Bq9KLany.js.map +0 -1
  22. package/dist/core-plugins-CPDSHMiQ.cjs +0 -2
  23. package/dist/core-plugins-CPDSHMiQ.cjs.map +0 -1
  24. package/dist/core.js +0 -37
  25. package/dist/core.js.map +0 -1
  26. package/dist/core.mjs +0 -1217
  27. package/dist/core.mjs.map +0 -1
  28. package/dist/enhanced-components-CXnYiOt6.cjs +0 -2
  29. package/dist/enhanced-components-CXnYiOt6.cjs.map +0 -1
  30. package/dist/enhanced-components-Da0TSvKe.js +0 -1073
  31. package/dist/enhanced-components-Da0TSvKe.js.map +0 -1
  32. package/dist/hooks-BCMilGRf.cjs +0 -4
  33. package/dist/hooks-BCMilGRf.cjs.map +0 -1
  34. package/dist/hooks-BPtHV1ZT.js +0 -2042
  35. package/dist/hooks-BPtHV1ZT.js.map +0 -1
  36. package/dist/index.js.map +0 -1
  37. package/dist/index.mjs.map +0 -1
  38. package/dist/minimal-components-BHJMuaL7.cjs +0 -2
  39. package/dist/minimal-components-BHJMuaL7.cjs.map +0 -1
  40. package/dist/minimal-components-BmqRefl1.js +0 -2002
  41. package/dist/minimal-components-BmqRefl1.js.map +0 -1
  42. package/dist/mona-loading.gif +0 -0
  43. package/dist/performance-monitor--rzKTlbj.js +0 -302
  44. package/dist/performance-monitor--rzKTlbj.js.map +0 -1
  45. package/dist/performance-monitor-cjIvZE2D.cjs +0 -2
  46. package/dist/performance-monitor-cjIvZE2D.cjs.map +0 -1
  47. package/dist/src/adapters/videojs-adapter.d.ts.map +0 -1
  48. package/dist/src/adapters/videojs-adapter.js +0 -350
  49. package/dist/src/assets/mona-loading.gif +0 -0
  50. package/dist/src/components/AnimateLoading.d.ts.map +0 -1
  51. package/dist/src/components/AnimateLoading.js +0 -41
  52. package/dist/src/components/LoadingState.d.ts.map +0 -1
  53. package/dist/src/components/LoadingState.js +0 -111
  54. package/dist/src/components/accessibility/keyboard-help-overlay.d.ts.map +0 -1
  55. package/dist/src/components/accessibility/keyboard-help-overlay.js +0 -90
  56. package/dist/src/components/audio-player.d.ts.map +0 -1
  57. package/dist/src/components/audio-player.js +0 -31
  58. package/dist/src/components/basic/index.d.ts.map +0 -1
  59. package/dist/src/components/basic/index.js +0 -29
  60. package/dist/src/components/enhanced/advanced-features.d.ts.map +0 -1
  61. package/dist/src/components/enhanced/advanced-features.js +0 -64
  62. package/dist/src/components/enhanced/debug-panel.d.ts.map +0 -1
  63. package/dist/src/components/enhanced/debug-panel.js +0 -94
  64. package/dist/src/components/enhanced/enhanced-controls.d.ts.map +0 -1
  65. package/dist/src/components/enhanced/enhanced-controls.js +0 -233
  66. package/dist/src/components/enhanced/enhanced-media-player.d.ts.map +0 -1
  67. package/dist/src/components/enhanced/enhanced-media-player.js +0 -316
  68. package/dist/src/components/enhanced/error-handling.d.ts.map +0 -1
  69. package/dist/src/components/enhanced/error-handling.js +0 -153
  70. package/dist/src/components/enhanced/index.d.ts.map +0 -1
  71. package/dist/src/components/enhanced/index.js +0 -10
  72. package/dist/src/components/enhanced/media-player-enhanced.d.ts.map +0 -1
  73. package/dist/src/components/enhanced/media-player-enhanced.js +0 -250
  74. package/dist/src/components/examples/basic-video-player.d.ts.map +0 -1
  75. package/dist/src/components/examples/basic-video-player.js +0 -16
  76. package/dist/src/components/examples/custom-controls-example.d.ts.map +0 -1
  77. package/dist/src/components/examples/custom-controls-example.js +0 -12
  78. package/dist/src/components/examples/enhanced-controls-example.d.ts.map +0 -1
  79. package/dist/src/components/examples/enhanced-controls-example.js +0 -18
  80. package/dist/src/components/examples/enhanced-media-player-example.d.ts.map +0 -1
  81. package/dist/src/components/examples/enhanced-media-player-example.js +0 -13
  82. package/dist/src/components/examples/loading-states-demo.d.ts.map +0 -1
  83. package/dist/src/components/examples/loading-states-demo.js +0 -41
  84. package/dist/src/components/examples/react-19-demo.d.ts.map +0 -1
  85. package/dist/src/components/examples/react-19-demo.js +0 -104
  86. package/dist/src/components/examples/volume-orientation-demo.d.ts.map +0 -1
  87. package/dist/src/components/examples/volume-orientation-demo.js +0 -31
  88. package/dist/src/components/icon-demo.d.ts.map +0 -1
  89. package/dist/src/components/icon-demo.js +0 -16
  90. package/dist/src/components/icons/index.d.ts.map +0 -1
  91. package/dist/src/components/icons/index.js +0 -59
  92. package/dist/src/components/icons/svg-icons/ArrowLeftIcon.d.ts.map +0 -1
  93. package/dist/src/components/icons/svg-icons/ArrowLeftIcon.js +0 -3
  94. package/dist/src/components/icons/svg-icons/ArrowRightIcon.d.ts.map +0 -1
  95. package/dist/src/components/icons/svg-icons/ArrowRightIcon.js +0 -3
  96. package/dist/src/components/icons/svg-icons/AudioIcon.d.ts.map +0 -1
  97. package/dist/src/components/icons/svg-icons/AudioIcon.js +0 -4
  98. package/dist/src/components/icons/svg-icons/BackwardIcon.d.ts.map +0 -1
  99. package/dist/src/components/icons/svg-icons/BackwardIcon.js +0 -3
  100. package/dist/src/components/icons/svg-icons/CameraIcon.d.ts.map +0 -1
  101. package/dist/src/components/icons/svg-icons/CameraIcon.js +0 -4
  102. package/dist/src/components/icons/svg-icons/CheckIcon.d.ts.map +0 -1
  103. package/dist/src/components/icons/svg-icons/CheckIcon.js +0 -4
  104. package/dist/src/components/icons/svg-icons/EnablePiPIcon.d.ts.map +0 -1
  105. package/dist/src/components/icons/svg-icons/EnablePiPIcon.js +0 -5
  106. package/dist/src/components/icons/svg-icons/ForwardIcon.d.ts.map +0 -1
  107. package/dist/src/components/icons/svg-icons/ForwardIcon.js +0 -3
  108. package/dist/src/components/icons/svg-icons/FullscreenEnterIcon.d.ts.map +0 -1
  109. package/dist/src/components/icons/svg-icons/FullscreenEnterIcon.js +0 -3
  110. package/dist/src/components/icons/svg-icons/FullscreenExitIcon.d.ts.map +0 -1
  111. package/dist/src/components/icons/svg-icons/FullscreenExitIcon.js +0 -3
  112. package/dist/src/components/icons/svg-icons/LoadingIcon.d.ts.map +0 -1
  113. package/dist/src/components/icons/svg-icons/LoadingIcon.js +0 -3
  114. package/dist/src/components/icons/svg-icons/PauseIcon.d.ts.map +0 -1
  115. package/dist/src/components/icons/svg-icons/PauseIcon.js +0 -3
  116. package/dist/src/components/icons/svg-icons/PlayIcon.d.ts.map +0 -1
  117. package/dist/src/components/icons/svg-icons/PlayIcon.js +0 -3
  118. package/dist/src/components/icons/svg-icons/PlaybackSpeedIcon.d.ts.map +0 -1
  119. package/dist/src/components/icons/svg-icons/PlaybackSpeedIcon.js +0 -3
  120. package/dist/src/components/icons/svg-icons/QualityIcon.d.ts.map +0 -1
  121. package/dist/src/components/icons/svg-icons/QualityIcon.js +0 -3
  122. package/dist/src/components/icons/svg-icons/SettingsIcon.d.ts.map +0 -1
  123. package/dist/src/components/icons/svg-icons/SettingsIcon.js +0 -3
  124. package/dist/src/components/icons/svg-icons/SliderIcon.d.ts.map +0 -1
  125. package/dist/src/components/icons/svg-icons/SliderIcon.js +0 -3
  126. package/dist/src/components/icons/svg-icons/SubtitleIcon.d.ts.map +0 -1
  127. package/dist/src/components/icons/svg-icons/SubtitleIcon.js +0 -3
  128. package/dist/src/components/icons/svg-icons/SubtitleOffIcon.d.ts.map +0 -1
  129. package/dist/src/components/icons/svg-icons/SubtitleOffIcon.js +0 -3
  130. package/dist/src/components/icons/svg-icons/UnPiPIcon.d.ts.map +0 -1
  131. package/dist/src/components/icons/svg-icons/UnPiPIcon.js +0 -5
  132. package/dist/src/components/icons/svg-icons/VolumeMutedIcon.d.ts.map +0 -1
  133. package/dist/src/components/icons/svg-icons/VolumeMutedIcon.js +0 -3
  134. package/dist/src/components/icons/svg-icons/VolumeOneIcon.d.ts.map +0 -1
  135. package/dist/src/components/icons/svg-icons/VolumeOneIcon.js +0 -3
  136. package/dist/src/components/icons/svg-icons/VolumeThreeIcon.d.ts.map +0 -1
  137. package/dist/src/components/icons/svg-icons/VolumeThreeIcon.js +0 -3
  138. package/dist/src/components/icons/svg-icons/VolumeTwoIcon.d.ts.map +0 -1
  139. package/dist/src/components/icons/svg-icons/VolumeTwoIcon.js +0 -3
  140. package/dist/src/components/legacy.d.ts.map +0 -1
  141. package/dist/src/components/legacy.js +0 -52
  142. package/dist/src/components/media-metadata-display.d.ts.map +0 -1
  143. package/dist/src/components/media-metadata-display.js +0 -20
  144. package/dist/src/components/media-player-audio.d.ts.map +0 -1
  145. package/dist/src/components/media-player-audio.js +0 -18
  146. package/dist/src/components/media-player-controls.d.ts.map +0 -1
  147. package/dist/src/components/media-player-controls.js +0 -150
  148. package/dist/src/components/media-player-error.d.ts.map +0 -1
  149. package/dist/src/components/media-player-error.js +0 -85
  150. package/dist/src/components/media-player-fullscreen.d.ts.map +0 -1
  151. package/dist/src/components/media-player-fullscreen.js +0 -68
  152. package/dist/src/components/media-player-hls.d.ts.map +0 -1
  153. package/dist/src/components/media-player-hls.js +0 -20
  154. package/dist/src/components/media-player-loading.d.ts.map +0 -1
  155. package/dist/src/components/media-player-loading.js +0 -53
  156. package/dist/src/components/media-player-play.d.ts.map +0 -1
  157. package/dist/src/components/media-player-play.js +0 -44
  158. package/dist/src/components/media-player-root.d.ts.map +0 -1
  159. package/dist/src/components/media-player-root.js +0 -243
  160. package/dist/src/components/media-player-seek.d.ts.map +0 -1
  161. package/dist/src/components/media-player-seek.js +0 -92
  162. package/dist/src/components/media-player-time.d.ts.map +0 -1
  163. package/dist/src/components/media-player-time.js +0 -57
  164. package/dist/src/components/media-player-tooltip.d.ts.map +0 -1
  165. package/dist/src/components/media-player-tooltip.js +0 -14
  166. package/dist/src/components/media-player-video.d.ts.map +0 -1
  167. package/dist/src/components/media-player-video.js +0 -18
  168. package/dist/src/components/media-player-volume.d.ts.map +0 -1
  169. package/dist/src/components/media-player-volume.js +0 -88
  170. package/dist/src/components/media-player.d.ts.map +0 -1
  171. package/dist/src/components/media-player.js +0 -67
  172. package/dist/src/components/media-suspense.d.ts.map +0 -1
  173. package/dist/src/components/media-suspense.js +0 -173
  174. package/dist/src/components/player-settings-form.d.ts.map +0 -1
  175. package/dist/src/components/player-settings-form.js +0 -46
  176. package/dist/src/components/react-player-wrapper.d.ts.map +0 -1
  177. package/dist/src/components/react-player-wrapper.js +0 -163
  178. package/dist/src/components/simple-video-player.d.ts.map +0 -1
  179. package/dist/src/components/simple-video-player.js +0 -41
  180. package/dist/src/components/ui/enhanced-seek-bar.d.ts.map +0 -1
  181. package/dist/src/components/ui/enhanced-seek-bar.js +0 -112
  182. package/dist/src/components/ui/fullscreen-button.d.ts.map +0 -1
  183. package/dist/src/components/ui/fullscreen-button.js +0 -21
  184. package/dist/src/components/ui/media-resource-preloader.d.ts.map +0 -1
  185. package/dist/src/components/ui/media-resource-preloader.js +0 -295
  186. package/dist/src/components/ui/play-button.d.ts.map +0 -1
  187. package/dist/src/components/ui/play-button.js +0 -26
  188. package/dist/src/components/ui/seek-bar.d.ts.map +0 -1
  189. package/dist/src/components/ui/seek-bar.js +0 -54
  190. package/dist/src/components/ui/time-display.d.ts.map +0 -1
  191. package/dist/src/components/ui/time-display.js +0 -18
  192. package/dist/src/components/ui/volume-control.d.ts.map +0 -1
  193. package/dist/src/components/ui/volume-control.js +0 -71
  194. package/dist/src/components/unified/base-media-player.d.ts.map +0 -1
  195. package/dist/src/components/unified/base-media-player.js +0 -104
  196. package/dist/src/components/unified/media-player.d.ts.map +0 -1
  197. package/dist/src/components/unified/media-player.js +0 -41
  198. package/dist/src/components/variants/minimal/AccessibleMinimalPlayer.d.ts.map +0 -1
  199. package/dist/src/components/variants/minimal/AccessibleMinimalPlayer.js +0 -322
  200. package/dist/src/components/variants/minimal/EnhancedMinimalMediaPlayer.d.ts.map +0 -1
  201. package/dist/src/components/variants/minimal/EnhancedMinimalMediaPlayer.js +0 -280
  202. package/dist/src/components/variants/minimal/MinimalControls.d.ts.map +0 -1
  203. package/dist/src/components/variants/minimal/MinimalControls.js +0 -19
  204. package/dist/src/components/variants/minimal/MinimalLoading.d.ts.map +0 -1
  205. package/dist/src/components/variants/minimal/MinimalLoading.js +0 -6
  206. package/dist/src/components/variants/minimal/MinimalMediaPlayer.d.ts.map +0 -1
  207. package/dist/src/components/variants/minimal/MinimalMediaPlayer.js +0 -135
  208. package/dist/src/components/variants/minimal/MinimalOverlay.d.ts.map +0 -1
  209. package/dist/src/components/variants/minimal/MinimalOverlay.js +0 -15
  210. package/dist/src/components/variants/minimal/MinimalPlayButton.d.ts.map +0 -1
  211. package/dist/src/components/variants/minimal/MinimalPlayButton.js +0 -29
  212. package/dist/src/components/variants/minimal/MinimalSeekBar.d.ts.map +0 -1
  213. package/dist/src/components/variants/minimal/MinimalSeekBar.js +0 -73
  214. package/dist/src/components/variants/minimal/MinimalVolumeControl.d.ts.map +0 -1
  215. package/dist/src/components/variants/minimal/MinimalVolumeControl.js +0 -29
  216. package/dist/src/components/variants/minimal/SimpleMinimalPlayer.d.ts.map +0 -1
  217. package/dist/src/components/variants/minimal/SimpleMinimalPlayer.js +0 -51
  218. package/dist/src/components/variants/minimal/components/CenterPlayButton.d.ts.map +0 -1
  219. package/dist/src/components/variants/minimal/components/CenterPlayButton.js +0 -8
  220. package/dist/src/components/variants/minimal/components/ControlBar.d.ts.map +0 -1
  221. package/dist/src/components/variants/minimal/components/ControlBar.js +0 -10
  222. package/dist/src/components/variants/minimal/components/EnhancedSettingsMenu.d.ts.map +0 -1
  223. package/dist/src/components/variants/minimal/components/EnhancedSettingsMenu.js +0 -68
  224. package/dist/src/components/variants/minimal/components/PlaybackControls.d.ts.map +0 -1
  225. package/dist/src/components/variants/minimal/components/PlaybackControls.js +0 -9
  226. package/dist/src/components/variants/minimal/components/RightControls.d.ts.map +0 -1
  227. package/dist/src/components/variants/minimal/components/RightControls.js +0 -40
  228. package/dist/src/components/variants/minimal/components/SeekBar.d.ts.map +0 -1
  229. package/dist/src/components/variants/minimal/components/SeekBar.js +0 -43
  230. package/dist/src/components/variants/minimal/components/SettingsDropdown.d.ts.map +0 -1
  231. package/dist/src/components/variants/minimal/components/SettingsDropdown.js +0 -18
  232. package/dist/src/components/variants/minimal/components/SubtitleDisplay.d.ts.map +0 -1
  233. package/dist/src/components/variants/minimal/components/SubtitleDisplay.js +0 -6
  234. package/dist/src/components/variants/minimal/components/TimeDisplay.d.ts.map +0 -1
  235. package/dist/src/components/variants/minimal/components/TimeDisplay.js +0 -5
  236. package/dist/src/components/variants/minimal/components/VideoElement.d.ts.map +0 -1
  237. package/dist/src/components/variants/minimal/components/VideoElement.js +0 -4
  238. package/dist/src/components/variants/minimal/components/VolumeControl.d.ts.map +0 -1
  239. package/dist/src/components/variants/minimal/components/VolumeControl.js +0 -99
  240. package/dist/src/components/variants/minimal/index.d.ts.map +0 -1
  241. package/dist/src/components/variants/minimal/index.js +0 -8
  242. package/dist/src/components/video-player.d.ts.map +0 -1
  243. package/dist/src/components/video-player.js +0 -38
  244. package/dist/src/context/error-handling.d.ts.map +0 -1
  245. package/dist/src/context/error-handling.js +0 -300
  246. package/dist/src/context/media-context.d.ts.map +0 -1
  247. package/dist/src/context/media-context.js +0 -121
  248. package/dist/src/context/media-provider.d.ts.map +0 -1
  249. package/dist/src/context/media-provider.js +0 -164
  250. package/dist/src/context/media-store.d.ts.map +0 -1
  251. package/dist/src/context/media-store.js +0 -273
  252. package/dist/src/context/persistence.d.ts.map +0 -1
  253. package/dist/src/context/persistence.js +0 -356
  254. package/dist/src/core/events/event-system.d.ts.map +0 -1
  255. package/dist/src/core/events/event-system.js +0 -288
  256. package/dist/src/core/events/hooks.d.ts.map +0 -1
  257. package/dist/src/core/events/hooks.js +0 -198
  258. package/dist/src/core/events/index.d.ts.map +0 -1
  259. package/dist/src/core/events/index.js +0 -7
  260. package/dist/src/core/events/middleware.d.ts.map +0 -1
  261. package/dist/src/core/events/middleware.js +0 -219
  262. package/dist/src/core/index.d.ts.map +0 -1
  263. package/dist/src/core/index.js +0 -15
  264. package/dist/src/core/optimization/bundle-optimizer.d.ts.map +0 -1
  265. package/dist/src/core/optimization/bundle-optimizer.js +0 -217
  266. package/dist/src/core/performance/cicd.d.ts.map +0 -1
  267. package/dist/src/core/performance/cicd.js +0 -83
  268. package/dist/src/core/performance/index.d.ts.map +0 -1
  269. package/dist/src/core/performance/index.js +0 -14
  270. package/dist/src/core/performance/media-loading-optimizer.d.ts.map +0 -1
  271. package/dist/src/core/performance/media-loading-optimizer.js +0 -404
  272. package/dist/src/core/performance/performance-budgets.d.ts.map +0 -1
  273. package/dist/src/core/performance/performance-budgets.js +0 -326
  274. package/dist/src/core/performance/performance-monitor.d.ts.map +0 -1
  275. package/dist/src/core/performance/performance-monitor.js +0 -297
  276. package/dist/src/core/performance/performance-testing.d.ts.map +0 -1
  277. package/dist/src/core/performance/performance-testing.js +0 -314
  278. package/dist/src/core/plugins/base-plugin.d.ts.map +0 -1
  279. package/dist/src/core/plugins/base-plugin.js +0 -151
  280. package/dist/src/core/plugins/enhanced-plugin-system.d.ts.map +0 -1
  281. package/dist/src/core/plugins/enhanced-plugin-system.js +0 -305
  282. package/dist/src/core/plugins/examples/analytics-plugin.d.ts.map +0 -1
  283. package/dist/src/core/plugins/examples/analytics-plugin.js +0 -191
  284. package/dist/src/core/plugins/index.d.ts.map +0 -1
  285. package/dist/src/core/plugins/index.js +0 -9
  286. package/dist/src/core/plugins/registry.d.ts.map +0 -1
  287. package/dist/src/core/plugins/registry.js +0 -261
  288. package/dist/src/core/plugins/types.d.ts.map +0 -1
  289. package/dist/src/core/plugins/types.js +0 -31
  290. package/dist/src/core/plugins/utils.d.ts.map +0 -1
  291. package/dist/src/core/plugins/utils.js +0 -274
  292. package/dist/src/core/progressive-loading.d.ts.map +0 -1
  293. package/dist/src/core/progressive-loading.js +0 -239
  294. package/dist/src/core/providers/enhanced-hls-provider.d.ts.map +0 -1
  295. package/dist/src/core/providers/enhanced-hls-provider.js +0 -273
  296. package/dist/src/core/providers/service-provider.d.ts.map +0 -1
  297. package/dist/src/core/providers/service-provider.js +0 -105
  298. package/dist/src/core/utils.d.ts.map +0 -1
  299. package/dist/src/core/utils.js +0 -21
  300. package/dist/src/features/media-session/media-session-manager.d.ts.map +0 -1
  301. package/dist/src/features/media-session/media-session-manager.js +0 -331
  302. package/dist/src/features/picture-in-picture/pip-manager.d.ts.map +0 -1
  303. package/dist/src/features/picture-in-picture/pip-manager.js +0 -353
  304. package/dist/src/features/playlist/playlist-manager.d.ts.map +0 -1
  305. package/dist/src/features/playlist/playlist-manager.js +0 -475
  306. package/dist/src/features/subtitles/subtitle-manager.d.ts.map +0 -1
  307. package/dist/src/features/subtitles/subtitle-manager.js +0 -335
  308. package/dist/src/features/subtitles/subtitle-parser.d.ts.map +0 -1
  309. package/dist/src/features/subtitles/subtitle-parser.js +0 -217
  310. package/dist/src/features/thumbnails/thumbnail-generator.d.ts.map +0 -1
  311. package/dist/src/features/thumbnails/thumbnail-generator.js +0 -388
  312. package/dist/src/hooks/accessibility/index.d.ts.map +0 -1
  313. package/dist/src/hooks/accessibility/index.js +0 -4
  314. package/dist/src/hooks/accessibility/use-accessibility-preferences.d.ts.map +0 -1
  315. package/dist/src/hooks/accessibility/use-accessibility-preferences.js +0 -156
  316. package/dist/src/hooks/accessibility/use-focus-management.d.ts.map +0 -1
  317. package/dist/src/hooks/accessibility/use-focus-management.js +0 -142
  318. package/dist/src/hooks/accessibility/use-keyboard-shortcuts.d.ts.map +0 -1
  319. package/dist/src/hooks/accessibility/use-keyboard-shortcuts.js +0 -101
  320. package/dist/src/hooks/accessibility/use-screen-reader.d.ts.map +0 -1
  321. package/dist/src/hooks/accessibility/use-screen-reader.js +0 -148
  322. package/dist/src/hooks/core/index.d.ts.map +0 -1
  323. package/dist/src/hooks/core/index.js +0 -19
  324. package/dist/src/hooks/legacy.d.ts.map +0 -1
  325. package/dist/src/hooks/legacy.js +0 -17
  326. package/dist/src/hooks/use-enhanced-media-player.d.ts.map +0 -1
  327. package/dist/src/hooks/use-enhanced-media-player.js +0 -395
  328. package/dist/src/hooks/use-intelligent-preloading.d.ts.map +0 -1
  329. package/dist/src/hooks/use-intelligent-preloading.js +0 -258
  330. package/dist/src/hooks/use-keyboard-controls.d.ts.map +0 -1
  331. package/dist/src/hooks/use-keyboard-controls.js +0 -83
  332. package/dist/src/hooks/use-media-actions.d.ts.map +0 -1
  333. package/dist/src/hooks/use-media-actions.js +0 -121
  334. package/dist/src/hooks/use-media-metadata.d.ts.map +0 -1
  335. package/dist/src/hooks/use-media-metadata.js +0 -74
  336. package/dist/src/hooks/use-media-optimistic.d.ts.map +0 -1
  337. package/dist/src/hooks/use-media-optimistic.js +0 -205
  338. package/dist/src/hooks/use-media-player.d.ts.map +0 -1
  339. package/dist/src/hooks/use-media-player.js +0 -251
  340. package/dist/src/hooks/use-media-state.d.ts.map +0 -1
  341. package/dist/src/hooks/use-media-state.js +0 -162
  342. package/dist/src/hooks/use-memory-optimization.d.ts.map +0 -1
  343. package/dist/src/hooks/use-memory-optimization.js +0 -288
  344. package/dist/src/hooks/use-optimistic-controls.d.ts.map +0 -1
  345. package/dist/src/hooks/use-optimistic-controls.js +0 -60
  346. package/dist/src/hooks/use-optimized-media.d.ts.map +0 -1
  347. package/dist/src/hooks/use-optimized-media.js +0 -211
  348. package/dist/src/hooks/use-touch-gestures.d.ts.map +0 -1
  349. package/dist/src/hooks/use-touch-gestures.js +0 -289
  350. package/dist/src/hooks/useEnhancedSubtitles.d.ts.map +0 -1
  351. package/dist/src/hooks/useEnhancedSubtitles.js +0 -205
  352. package/dist/src/hooks/useKeyboardShortcuts.d.ts.map +0 -1
  353. package/dist/src/hooks/useKeyboardShortcuts.js +0 -59
  354. package/dist/src/hooks/useMediaControls.d.ts.map +0 -1
  355. package/dist/src/hooks/useMediaControls.js +0 -44
  356. package/dist/src/hooks/useScreenshot.d.ts.map +0 -1
  357. package/dist/src/hooks/useScreenshot.js +0 -56
  358. package/dist/src/hooks/useSubtitles.d.ts.map +0 -1
  359. package/dist/src/hooks/useSubtitles.js +0 -73
  360. package/dist/src/hooks/useVideoPlayer.d.ts.map +0 -1
  361. package/dist/src/hooks/useVideoPlayer.js +0 -184
  362. package/dist/src/icons/components/FullscreenIcon.d.ts.map +0 -1
  363. package/dist/src/icons/components/FullscreenIcon.js +0 -11
  364. package/dist/src/icons/components/SettingsIcon.d.ts.map +0 -1
  365. package/dist/src/icons/components/SettingsIcon.js +0 -11
  366. package/dist/src/icons/components/animated/LoadingIcon.d.ts.map +0 -1
  367. package/dist/src/icons/components/animated/LoadingIcon.js +0 -11
  368. package/dist/src/icons/components/animated/PlayPauseIcon.d.ts.map +0 -1
  369. package/dist/src/icons/components/animated/PlayPauseIcon.js +0 -9
  370. package/dist/src/icons/components/media/PauseIcon.d.ts.map +0 -1
  371. package/dist/src/icons/components/media/PauseIcon.js +0 -12
  372. package/dist/src/icons/components/media/PlayIcon.d.ts.map +0 -1
  373. package/dist/src/icons/components/media/PlayIcon.js +0 -12
  374. package/dist/src/icons/components/volume/VolumeIcon.d.ts.map +0 -1
  375. package/dist/src/icons/components/volume/VolumeIcon.js +0 -11
  376. package/dist/src/icons/components/volume/VolumeOffIcon.d.ts.map +0 -1
  377. package/dist/src/icons/components/volume/VolumeOffIcon.js +0 -11
  378. package/dist/src/icons/index.d.ts.map +0 -1
  379. package/dist/src/icons/index.js +0 -45
  380. package/dist/src/icons/provider.d.ts.map +0 -1
  381. package/dist/src/icons/provider.js +0 -37
  382. package/dist/src/icons/types.d.ts.map +0 -1
  383. package/dist/src/icons/types.js +0 -1
  384. package/dist/src/index-enhanced.d.ts.map +0 -1
  385. package/dist/src/index-enhanced.js +0 -16
  386. package/dist/src/index-legacy.d.ts.map +0 -1
  387. package/dist/src/index-legacy.js +0 -97
  388. package/dist/src/index.d.ts.map +0 -1
  389. package/dist/src/index.js +0 -90
  390. package/dist/src/index.minimal.d.ts.map +0 -1
  391. package/dist/src/index.minimal.js +0 -3
  392. package/dist/src/lib/deprecation.d.ts.map +0 -1
  393. package/dist/src/lib/deprecation.js +0 -31
  394. package/dist/src/lib/format-time.d.ts.map +0 -1
  395. package/dist/src/lib/format-time.js +0 -32
  396. package/dist/src/lib/index.d.ts.map +0 -1
  397. package/dist/src/lib/index.js +0 -3
  398. package/dist/src/lib/utils.d.ts.map +0 -1
  399. package/dist/src/lib/utils.js +0 -5
  400. package/dist/src/test/setup.d.ts.map +0 -1
  401. package/dist/src/test/setup.js +0 -65
  402. package/dist/src/types/events.d.ts.map +0 -1
  403. package/dist/src/types/events.js +0 -2
  404. package/dist/src/types/formats.d.ts.map +0 -1
  405. package/dist/src/types/formats.js +0 -63
  406. package/dist/src/types/index.d.ts.map +0 -1
  407. package/dist/src/types/index.js +0 -4
  408. package/dist/utils-Db13763z.cjs +0 -9
  409. package/dist/utils-Db13763z.cjs.map +0 -1
  410. package/dist/utils-nTO4AnHo.js +0 -2809
  411. package/dist/utils-nTO4AnHo.js.map +0 -1
  412. package/dist/utils.js +0 -2
  413. package/dist/utils.js.map +0 -1
  414. package/dist/utils.mjs +0 -7
  415. package/dist/utils.mjs.map +0 -1
  416. package/src/adapters/videojs-adapter.js +0 -350
  417. package/src/components/AnimateLoading.js +0 -41
  418. package/src/components/LoadingState.js +0 -111
  419. package/src/components/accessibility/keyboard-help-overlay.js +0 -90
  420. package/src/components/audio-player.js +0 -31
  421. package/src/components/basic/index.js +0 -29
  422. package/src/components/enhanced/advanced-features.js +0 -64
  423. package/src/components/enhanced/debug-panel.js +0 -94
  424. package/src/components/enhanced/enhanced-controls.js +0 -233
  425. package/src/components/enhanced/enhanced-media-player.js +0 -316
  426. package/src/components/enhanced/error-handling.js +0 -153
  427. package/src/components/enhanced/index.js +0 -10
  428. package/src/components/enhanced/media-player-enhanced.js +0 -250
  429. package/src/components/examples/basic-video-player.js +0 -16
  430. package/src/components/examples/custom-controls-example.js +0 -12
  431. package/src/components/examples/enhanced-controls-example.js +0 -18
  432. package/src/components/examples/enhanced-media-player-example.js +0 -13
  433. package/src/components/examples/loading-states-demo.js +0 -41
  434. package/src/components/examples/react-19-demo.js +0 -104
  435. package/src/components/examples/volume-orientation-demo.js +0 -31
  436. package/src/components/icon-demo.js +0 -16
  437. package/src/components/icons/index.js +0 -59
  438. package/src/components/icons/svg-icons/ArrowLeftIcon.js +0 -3
  439. package/src/components/icons/svg-icons/ArrowRightIcon.js +0 -3
  440. package/src/components/icons/svg-icons/AudioIcon.js +0 -4
  441. package/src/components/icons/svg-icons/BackwardIcon.js +0 -3
  442. package/src/components/icons/svg-icons/CameraIcon.js +0 -4
  443. package/src/components/icons/svg-icons/CheckIcon.js +0 -4
  444. package/src/components/icons/svg-icons/EnablePiPIcon.js +0 -5
  445. package/src/components/icons/svg-icons/ForwardIcon.js +0 -3
  446. package/src/components/icons/svg-icons/FullscreenEnterIcon.js +0 -3
  447. package/src/components/icons/svg-icons/FullscreenExitIcon.js +0 -3
  448. package/src/components/icons/svg-icons/LoadingIcon.js +0 -3
  449. package/src/components/icons/svg-icons/PauseIcon.js +0 -3
  450. package/src/components/icons/svg-icons/PlayIcon.js +0 -3
  451. package/src/components/icons/svg-icons/PlaybackSpeedIcon.js +0 -3
  452. package/src/components/icons/svg-icons/QualityIcon.js +0 -3
  453. package/src/components/icons/svg-icons/SettingsIcon.js +0 -3
  454. package/src/components/icons/svg-icons/SliderIcon.js +0 -3
  455. package/src/components/icons/svg-icons/SubtitleIcon.js +0 -3
  456. package/src/components/icons/svg-icons/SubtitleOffIcon.js +0 -3
  457. package/src/components/icons/svg-icons/UnPiPIcon.js +0 -5
  458. package/src/components/icons/svg-icons/VolumeMutedIcon.js +0 -3
  459. package/src/components/icons/svg-icons/VolumeOneIcon.js +0 -3
  460. package/src/components/icons/svg-icons/VolumeThreeIcon.js +0 -3
  461. package/src/components/icons/svg-icons/VolumeTwoIcon.js +0 -3
  462. package/src/components/legacy.js +0 -52
  463. package/src/components/media-metadata-display.js +0 -20
  464. package/src/components/media-player-audio.js +0 -18
  465. package/src/components/media-player-controls.js +0 -150
  466. package/src/components/media-player-error.js +0 -85
  467. package/src/components/media-player-fullscreen.js +0 -68
  468. package/src/components/media-player-hls.js +0 -20
  469. package/src/components/media-player-loading.js +0 -53
  470. package/src/components/media-player-play.js +0 -44
  471. package/src/components/media-player-root.js +0 -243
  472. package/src/components/media-player-seek.js +0 -92
  473. package/src/components/media-player-time.js +0 -57
  474. package/src/components/media-player-tooltip.js +0 -14
  475. package/src/components/media-player-video.js +0 -18
  476. package/src/components/media-player-volume.js +0 -88
  477. package/src/components/media-player.js +0 -67
  478. package/src/components/media-suspense.js +0 -173
  479. package/src/components/player-settings-form.js +0 -46
  480. package/src/components/react-player-wrapper.js +0 -163
  481. package/src/components/simple-video-player.js +0 -41
  482. package/src/components/ui/enhanced-seek-bar.js +0 -112
  483. package/src/components/ui/fullscreen-button.js +0 -21
  484. package/src/components/ui/media-resource-preloader.js +0 -295
  485. package/src/components/ui/play-button.js +0 -26
  486. package/src/components/ui/seek-bar.js +0 -54
  487. package/src/components/ui/time-display.js +0 -18
  488. package/src/components/ui/volume-control.js +0 -71
  489. package/src/components/unified/base-media-player.js +0 -104
  490. package/src/components/unified/media-player.js +0 -41
  491. package/src/components/variants/minimal/AccessibleMinimalPlayer.js +0 -322
  492. package/src/components/variants/minimal/EnhancedMinimalMediaPlayer.js +0 -280
  493. package/src/components/variants/minimal/MinimalControls.js +0 -19
  494. package/src/components/variants/minimal/MinimalLoading.js +0 -6
  495. package/src/components/variants/minimal/MinimalMediaPlayer.js +0 -135
  496. package/src/components/variants/minimal/MinimalOverlay.js +0 -15
  497. package/src/components/variants/minimal/MinimalPlayButton.js +0 -29
  498. package/src/components/variants/minimal/MinimalSeekBar.js +0 -73
  499. package/src/components/variants/minimal/MinimalVolumeControl.js +0 -29
  500. package/src/components/variants/minimal/SimpleMinimalPlayer.js +0 -51
  501. package/src/components/variants/minimal/components/CenterPlayButton.js +0 -8
  502. package/src/components/variants/minimal/components/ControlBar.js +0 -10
  503. package/src/components/variants/minimal/components/EnhancedSettingsMenu.js +0 -68
  504. package/src/components/variants/minimal/components/PlaybackControls.js +0 -9
  505. package/src/components/variants/minimal/components/RightControls.js +0 -40
  506. package/src/components/variants/minimal/components/SeekBar.js +0 -43
  507. package/src/components/variants/minimal/components/SettingsDropdown.js +0 -18
  508. package/src/components/variants/minimal/components/SubtitleDisplay.js +0 -6
  509. package/src/components/variants/minimal/components/TimeDisplay.js +0 -5
  510. package/src/components/variants/minimal/components/VideoElement.js +0 -4
  511. package/src/components/variants/minimal/components/VolumeControl.js +0 -99
  512. package/src/components/variants/minimal/index.js +0 -8
  513. package/src/components/video-player.js +0 -38
  514. package/src/context/error-handling.js +0 -300
  515. package/src/context/media-context.js +0 -121
  516. package/src/context/media-provider.js +0 -164
  517. package/src/context/media-store.js +0 -273
  518. package/src/context/persistence.js +0 -356
  519. package/src/core/events/event-system.js +0 -288
  520. package/src/core/events/hooks.js +0 -198
  521. package/src/core/events/index.js +0 -7
  522. package/src/core/events/middleware.js +0 -219
  523. package/src/core/index.js +0 -15
  524. package/src/core/optimization/bundle-optimizer.js +0 -217
  525. package/src/core/performance/cicd.js +0 -83
  526. package/src/core/performance/index.js +0 -14
  527. package/src/core/performance/media-loading-optimizer.js +0 -404
  528. package/src/core/performance/performance-budgets.js +0 -326
  529. package/src/core/performance/performance-monitor.js +0 -297
  530. package/src/core/performance/performance-testing.js +0 -314
  531. package/src/core/plugins/base-plugin.js +0 -151
  532. package/src/core/plugins/enhanced-plugin-system.js +0 -305
  533. package/src/core/plugins/examples/analytics-plugin.js +0 -191
  534. package/src/core/plugins/index.js +0 -9
  535. package/src/core/plugins/registry.js +0 -261
  536. package/src/core/plugins/types.js +0 -31
  537. package/src/core/plugins/utils.js +0 -274
  538. package/src/core/progressive-loading.js +0 -239
  539. package/src/core/providers/enhanced-hls-provider.js +0 -273
  540. package/src/core/providers/service-provider.js +0 -105
  541. package/src/core/utils.js +0 -21
  542. package/src/features/media-session/media-session-manager.js +0 -331
  543. package/src/features/picture-in-picture/pip-manager.js +0 -353
  544. package/src/features/playlist/playlist-manager.js +0 -475
  545. package/src/features/subtitles/subtitle-manager.js +0 -335
  546. package/src/features/subtitles/subtitle-parser.js +0 -217
  547. package/src/features/thumbnails/thumbnail-generator.js +0 -388
  548. package/src/hooks/accessibility/index.js +0 -4
  549. package/src/hooks/accessibility/use-accessibility-preferences.js +0 -156
  550. package/src/hooks/accessibility/use-focus-management.js +0 -142
  551. package/src/hooks/accessibility/use-keyboard-shortcuts.js +0 -101
  552. package/src/hooks/accessibility/use-screen-reader.js +0 -148
  553. package/src/hooks/core/index.js +0 -19
  554. package/src/hooks/legacy.js +0 -17
  555. package/src/hooks/use-enhanced-media-player.js +0 -395
  556. package/src/hooks/use-intelligent-preloading.js +0 -258
  557. package/src/hooks/use-keyboard-controls.js +0 -83
  558. package/src/hooks/use-media-actions.js +0 -121
  559. package/src/hooks/use-media-metadata.js +0 -74
  560. package/src/hooks/use-media-optimistic.js +0 -205
  561. package/src/hooks/use-media-player.js +0 -251
  562. package/src/hooks/use-media-state.js +0 -162
  563. package/src/hooks/use-memory-optimization.js +0 -288
  564. package/src/hooks/use-optimistic-controls.js +0 -60
  565. package/src/hooks/use-optimized-media.js +0 -211
  566. package/src/hooks/use-touch-gestures.js +0 -289
  567. package/src/hooks/useEnhancedSubtitles.js +0 -205
  568. package/src/hooks/useKeyboardShortcuts.js +0 -59
  569. package/src/hooks/useMediaControls.js +0 -44
  570. package/src/hooks/useScreenshot.js +0 -56
  571. package/src/hooks/useSubtitles.js +0 -73
  572. package/src/hooks/useVideoPlayer.js +0 -184
  573. package/src/icons/components/FullscreenIcon.js +0 -11
  574. package/src/icons/components/SettingsIcon.js +0 -11
  575. package/src/icons/components/animated/LoadingIcon.js +0 -11
  576. package/src/icons/components/animated/PlayPauseIcon.js +0 -9
  577. package/src/icons/components/media/PauseIcon.js +0 -12
  578. package/src/icons/components/media/PlayIcon.js +0 -12
  579. package/src/icons/components/volume/VolumeIcon.js +0 -11
  580. package/src/icons/components/volume/VolumeOffIcon.js +0 -11
  581. package/src/icons/index.js +0 -45
  582. package/src/icons/provider.js +0 -37
  583. package/src/icons/types.js +0 -1
  584. package/src/index-enhanced.js +0 -16
  585. package/src/index-legacy.js +0 -97
  586. package/src/index.js +0 -90
  587. package/src/index.minimal.js +0 -3
  588. package/src/lib/deprecation.js +0 -31
  589. package/src/lib/format-time.js +0 -32
  590. package/src/lib/index.js +0 -3
  591. package/src/lib/utils.js +0 -5
  592. package/src/test/setup.js +0 -65
  593. package/src/types/events.js +0 -2
  594. package/src/types/formats.js +0 -63
  595. package/src/types/index.js +0 -4
@@ -1,101 +0,0 @@
1
- import { useEffect, useCallback, useRef } from 'react';
2
- export function useKeyboardShortcuts({ shortcuts, enabled = true, target }) {
3
- const shortcutsRef = useRef(shortcuts);
4
- shortcutsRef.current = shortcuts;
5
- const handleKeyDown = useCallback((event) => {
6
- if (!enabled)
7
- return;
8
- // Don't trigger shortcuts when user is typing in inputs
9
- if (event.target instanceof HTMLInputElement ||
10
- event.target instanceof HTMLTextAreaElement ||
11
- event.target?.contentEditable === 'true') {
12
- return;
13
- }
14
- const shortcut = shortcutsRef.current.find(s => s.key.toLowerCase() === event.key.toLowerCase() &&
15
- !!s.ctrlKey === event.ctrlKey &&
16
- !!s.altKey === event.altKey &&
17
- !!s.shiftKey === event.shiftKey);
18
- if (shortcut) {
19
- if (shortcut.preventDefault !== false) {
20
- event.preventDefault();
21
- }
22
- shortcut.action();
23
- }
24
- }, [enabled]);
25
- useEffect(() => {
26
- const element = target || document;
27
- element.addEventListener('keydown', handleKeyDown);
28
- return () => {
29
- element.removeEventListener('keydown', handleKeyDown);
30
- };
31
- }, [handleKeyDown, target]);
32
- return {
33
- shortcuts: shortcuts.map(s => ({
34
- key: s.key,
35
- description: s.description,
36
- modifiers: {
37
- ctrl: s.ctrlKey,
38
- alt: s.altKey,
39
- shift: s.shiftKey
40
- }
41
- }))
42
- };
43
- }
44
- // Pre-defined media player shortcuts
45
- export const createMediaKeyboardShortcuts = (controls) => [
46
- {
47
- key: ' ',
48
- action: controls.togglePlayPause,
49
- description: 'Play/Pause'
50
- },
51
- {
52
- key: 'k',
53
- action: controls.togglePlayPause,
54
- description: 'Play/Pause (K)'
55
- },
56
- {
57
- key: 'ArrowLeft',
58
- action: () => controls.seekBackward(10),
59
- description: 'Seek backward 10 seconds'
60
- },
61
- {
62
- key: 'ArrowRight',
63
- action: () => controls.seekForward(10),
64
- description: 'Seek forward 10 seconds'
65
- },
66
- {
67
- key: 'j',
68
- action: () => controls.seekBackward(10),
69
- description: 'Seek backward 10 seconds (J)'
70
- },
71
- {
72
- key: 'l',
73
- action: () => controls.seekForward(10),
74
- description: 'Seek forward 10 seconds (L)'
75
- },
76
- {
77
- key: 'ArrowUp',
78
- action: controls.volumeUp,
79
- description: 'Volume up'
80
- },
81
- {
82
- key: 'ArrowDown',
83
- action: controls.volumeDown,
84
- description: 'Volume down'
85
- },
86
- {
87
- key: 'm',
88
- action: controls.toggleMute,
89
- description: 'Toggle mute'
90
- },
91
- {
92
- key: 'f',
93
- action: controls.toggleFullscreen,
94
- description: 'Toggle fullscreen'
95
- },
96
- ...(controls.showHelp ? [{
97
- key: '?',
98
- action: controls.showHelp,
99
- description: 'Show keyboard shortcuts help'
100
- }] : [])
101
- ];
@@ -1,148 +0,0 @@
1
- import { useRef, useCallback, useEffect } from 'react';
2
- export function useScreenReader({ defaultPriority = 'polite', debounceMs = 100 } = {}) {
3
- const liveRegionRef = useRef(null);
4
- const timeoutRef = useRef();
5
- // Create or get the live region for announcements
6
- const getLiveRegion = useCallback((priority) => {
7
- if (!liveRegionRef.current) {
8
- const liveRegion = document.createElement('div');
9
- liveRegion.setAttribute('aria-live', priority);
10
- liveRegion.setAttribute('aria-atomic', 'true');
11
- liveRegion.setAttribute('class', 'sr-only');
12
- liveRegion.style.cssText = `
13
- position: absolute !important;
14
- width: 1px !important;
15
- height: 1px !important;
16
- padding: 0 !important;
17
- margin: -1px !important;
18
- overflow: hidden !important;
19
- clip: rect(0, 0, 0, 0) !important;
20
- white-space: nowrap !important;
21
- border: 0 !important;
22
- `;
23
- document.body.appendChild(liveRegion);
24
- liveRegionRef.current = liveRegion;
25
- }
26
- // Update priority if needed
27
- if (liveRegionRef.current.getAttribute('aria-live') !== priority) {
28
- liveRegionRef.current.setAttribute('aria-live', priority);
29
- }
30
- return liveRegionRef.current;
31
- }, []);
32
- // Announce a message to screen readers
33
- const announce = useCallback((message, priority = defaultPriority) => {
34
- if (!message.trim() || priority === 'off')
35
- return;
36
- // Clear existing timeout
37
- if (timeoutRef.current) {
38
- clearTimeout(timeoutRef.current);
39
- }
40
- // Debounce announcements
41
- timeoutRef.current = setTimeout(() => {
42
- const liveRegion = getLiveRegion(priority);
43
- // Clear and then set the message to ensure it's announced
44
- liveRegion.textContent = '';
45
- // Use requestAnimationFrame to ensure the clear happens first
46
- requestAnimationFrame(() => {
47
- liveRegion.textContent = message;
48
- });
49
- }, debounceMs);
50
- }, [defaultPriority, debounceMs, getLiveRegion]);
51
- // Cleanup on unmount
52
- useEffect(() => {
53
- return () => {
54
- if (timeoutRef.current) {
55
- clearTimeout(timeoutRef.current);
56
- }
57
- if (liveRegionRef.current) {
58
- document.body.removeChild(liveRegionRef.current);
59
- liveRegionRef.current = null;
60
- }
61
- };
62
- }, []);
63
- return { announce };
64
- }
65
- // Hook specifically for media player screen reader announcements
66
- export function useMediaScreenReader() {
67
- const { announce } = useScreenReader({ defaultPriority: 'polite' });
68
- // Announce playback state changes
69
- const announcePlaybackState = useCallback((isPlaying) => {
70
- announce(isPlaying ? 'Playing' : 'Paused', 'assertive');
71
- }, [announce]);
72
- // Announce volume changes
73
- const announceVolume = useCallback((volume, isMuted) => {
74
- if (isMuted) {
75
- announce('Muted', 'assertive');
76
- }
77
- else {
78
- const volumePercent = Math.round(volume * 100);
79
- announce(`Volume ${volumePercent}%`, 'polite');
80
- }
81
- }, [announce]);
82
- // Announce time position changes
83
- const announceTime = useCallback((currentTime, duration) => {
84
- const formatTime = (seconds) => {
85
- const hours = Math.floor(seconds / 3600);
86
- const minutes = Math.floor((seconds % 3600) / 60);
87
- const secs = Math.floor(seconds % 60);
88
- if (hours > 0) {
89
- return `${hours}:${minutes.toString().padStart(2, '0')}:${secs.toString().padStart(2, '0')}`;
90
- }
91
- return `${minutes}:${secs.toString().padStart(2, '0')}`;
92
- };
93
- const current = formatTime(currentTime);
94
- const total = formatTime(duration);
95
- announce(`${current} of ${total}`, 'polite');
96
- }, [announce]);
97
- // Announce fullscreen state changes
98
- const announceFullscreen = useCallback((isFullscreen) => {
99
- announce(isFullscreen ? 'Entered fullscreen' : 'Exited fullscreen', 'assertive');
100
- }, [announce]);
101
- // Announce subtitle state changes
102
- const announceSubtitles = useCallback((enabled, language) => {
103
- if (enabled) {
104
- announce(language ? `Subtitles enabled in ${language}` : 'Subtitles enabled', 'assertive');
105
- }
106
- else {
107
- announce('Subtitles disabled', 'assertive');
108
- }
109
- }, [announce]);
110
- // Announce playback speed changes
111
- const announcePlaybackSpeed = useCallback((speed) => {
112
- if (speed === 1) {
113
- announce('Normal playback speed', 'assertive');
114
- }
115
- else {
116
- announce(`Playback speed ${speed}x`, 'assertive');
117
- }
118
- }, [announce]);
119
- // Announce quality changes
120
- const announceQuality = useCallback((quality) => {
121
- announce(`Quality changed to ${quality}`, 'polite');
122
- }, [announce]);
123
- // Announce loading state
124
- const announceLoading = useCallback((isLoading) => {
125
- announce(isLoading ? 'Loading...' : 'Loading complete', 'polite');
126
- }, [announce]);
127
- // Announce errors
128
- const announceError = useCallback((error) => {
129
- announce(`Error: ${error}`, 'assertive');
130
- }, [announce]);
131
- // Announce buffering state
132
- const announceBuffering = useCallback((isBuffering) => {
133
- announce(isBuffering ? 'Buffering...' : 'Buffering complete', 'polite');
134
- }, [announce]);
135
- return {
136
- announce,
137
- announcePlaybackState,
138
- announceVolume,
139
- announceTime,
140
- announceFullscreen,
141
- announceSubtitles,
142
- announcePlaybackSpeed,
143
- announceQuality,
144
- announceLoading,
145
- announceError,
146
- announceBuffering
147
- };
148
- }
@@ -1,19 +0,0 @@
1
- // Core Media Player Hooks
2
- export { useKeyboardControls } from "../use-keyboard-controls";
3
- export { useMediaPlayer } from "../use-media-player";
4
- // Media State Hooks
5
- export { useAdaptiveMediaState, useEnhancedMediaState, useMediaState } from "../use-media-state";
6
- // React 19 Advanced Hooks
7
- export { useMediaActions, useMediaActionState } from "../use-media-actions";
8
- export { useMediaOptimistic, useMediaStateComparison, useOptimisticUpdates } from "../use-media-optimistic";
9
- // Mobile-First Touch Gestures
10
- export { useMediaGestures, useTouchGestures } from "../use-touch-gestures";
11
- // Refactored Hooks (React 19 optimized)
12
- export { useVideoPlayer } from "../useVideoPlayer";
13
- export { useSubtitles } from "../useSubtitles";
14
- export { useEnhancedSubtitles } from "../useEnhancedSubtitles";
15
- export { useMediaControls } from "../useMediaControls";
16
- export { useScreenshot } from "../useScreenshot";
17
- // Specialized hooks
18
- export { useMediaMetadata } from "../use-media-metadata";
19
- export { useOptimisticControls } from "../use-optimistic-controls";
@@ -1,17 +0,0 @@
1
- /**
2
- * Legacy Hooks (Deprecated)
3
- * These hooks are wrapped with deprecation warnings
4
- */
5
- import { showDeprecationWarning } from "../lib/deprecation";
6
- // Import current hooks
7
- import { useMediaPlayer } from "./use-media-player";
8
- import { useSubtitles } from "./useSubtitles";
9
- // Legacy hook wrappers with deprecation warnings
10
- export function useVideoPlayer(props) {
11
- showDeprecationWarning("useVideoPlayer", "useMediaPlayer (the primary media player hook)");
12
- return useMediaPlayer(props);
13
- }
14
- export function useEnhancedSubtitles(props) {
15
- showDeprecationWarning("useEnhancedSubtitles", "useSubtitles (the current subtitle hook)");
16
- return useSubtitles(props);
17
- }
@@ -1,395 +0,0 @@
1
- "use client";
2
- import React, { useCallback, useEffect, useRef, useMemo, useTransition, useOptimistic } from "react";
3
- import { useMediaStore, useMediaSelector } from "../context/media-context";
4
- import { useMediaOptimistic } from "./use-media-optimistic";
5
- import { useMediaActions } from "./use-media-actions";
6
- // Performance-optimized media player hook with React 19 features
7
- export function useEnhancedMediaPlayer(options) {
8
- const mediaRef = useRef(null);
9
- const containerRef = useRef(null);
10
- // React 19 concurrent features
11
- const [isPending, startTransition] = useTransition();
12
- const [isSeeking, startSeekTransition] = useTransition();
13
- // Performance monitoring
14
- const renderStartTime = React.useRef(0);
15
- const frameCount = React.useRef(0);
16
- const lastFrameTime = React.useRef(0);
17
- // Throttled time update
18
- const timeUpdateTimeoutRef = useRef();
19
- const lastTimeUpdate = useRef(0);
20
- // Store integration
21
- const store = useMediaStore();
22
- const isEnhanced = 'getOptimisticState' in store;
23
- // Select only the state we need to minimize re-renders
24
- const isPlaying = useMediaSelector(state => state.isPlaying);
25
- const currentTime = useMediaSelector(state => state.currentTime);
26
- const duration = useMediaSelector(state => state.duration);
27
- const volume = useMediaSelector(state => state.volume);
28
- const isMuted = useMediaSelector(state => state.isMuted);
29
- const isLoading = useMediaSelector(state => state.isLoading);
30
- const isBuffering = useMediaSelector(state => state.isBuffering);
31
- const error = useMediaSelector(state => state.error);
32
- const buffered = useMediaSelector(state => state.buffered);
33
- const isFullscreen = useMediaSelector(state => state.isFullscreen);
34
- // Enhanced features if available
35
- const enhancedStore = store;
36
- const optimisticState = isEnhanced ? useMediaOptimistic(enhancedStore) : null;
37
- const actions = isEnhanced ? useMediaActions(enhancedStore) : null;
38
- // Performance state
39
- const [performanceMetrics, setPerformanceMetrics] = React.useState({
40
- frameRate: 0,
41
- averageRenderTime: 0,
42
- droppedFrames: 0,
43
- bufferHealth: 0
44
- });
45
- // Optimistic state updates for immediate UI feedback
46
- const [optimisticVolume, setOptimisticVolume] = useOptimistic(volume, (state, newVolume) => {
47
- return Math.max(0, Math.min(1, newVolume));
48
- });
49
- const [optimisticTime, setOptimisticTime] = useOptimistic(currentTime, (state, newTime) => {
50
- return Math.max(0, Math.min(duration || 0, newTime));
51
- });
52
- // Initialize media element with performance optimizations
53
- useEffect(() => {
54
- const media = mediaRef.current;
55
- if (!media)
56
- return;
57
- // Set initial properties
58
- const initProps = {
59
- volume: options.volume,
60
- muted: options.muted,
61
- autoplay: options.autoPlay,
62
- loop: options.loop,
63
- preload: options.preload,
64
- crossOrigin: options.crossOrigin
65
- };
66
- Object.entries(initProps).forEach(([key, value]) => {
67
- if (value !== undefined) {
68
- media[key] = value;
69
- }
70
- });
71
- // Performance optimizations
72
- media.setAttribute('preload', options.preloadStrategy === 'eager' ? 'auto' : 'metadata');
73
- if (options.bufferingStrategy === 'aggressive') {
74
- media.setAttribute('buffered', 'auto');
75
- }
76
- // Hardware acceleration
77
- if (media instanceof HTMLVideoElement) {
78
- media.style.willChange = 'transform';
79
- media.style.transform = 'translateZ(0)';
80
- }
81
- }, [
82
- options.volume,
83
- options.muted,
84
- options.autoPlay,
85
- options.loop,
86
- options.preload,
87
- options.crossOrigin,
88
- options.preloadStrategy,
89
- options.bufferingStrategy
90
- ]);
91
- // Optimized event handlers with React 19 patterns
92
- const handleTimeUpdate = useCallback(() => {
93
- const media = mediaRef.current;
94
- if (!media)
95
- return;
96
- const now = performance.now();
97
- // Throttle time updates for performance
98
- if (options.enableTimeUpdateThrottling !== false) {
99
- if (now - lastTimeUpdate.current < (options.timeUpdateThrottleMs || 100)) {
100
- return;
101
- }
102
- lastTimeUpdate.current = now;
103
- }
104
- startTransition(() => {
105
- if (isEnhanced && actions) {
106
- actions.setCurrentTime(media.currentTime);
107
- }
108
- });
109
- }, [options.enableTimeUpdateThrottling, options.timeUpdateThrottleMs, isEnhanced, actions]);
110
- const handlePlay = useCallback(() => {
111
- startTransition(() => {
112
- if (isEnhanced && actions) {
113
- actions.play(true); // Optimistic update
114
- }
115
- });
116
- options.onPlay?.();
117
- }, [isEnhanced, actions, options.onPlay]);
118
- const handlePause = useCallback(() => {
119
- startTransition(() => {
120
- if (isEnhanced && actions) {
121
- actions.pause(true); // Optimistic update
122
- }
123
- });
124
- options.onPause?.();
125
- }, [isEnhanced, actions, options.onPause]);
126
- const handleVolumeChange = useCallback(() => {
127
- const media = mediaRef.current;
128
- if (!media)
129
- return;
130
- startTransition(() => {
131
- if (isEnhanced && actions) {
132
- actions.setVolume(media.volume, true); // Optimistic update
133
- media.muted ? actions.mute(true) : actions.unmute(true);
134
- }
135
- });
136
- }, [isEnhanced, actions]);
137
- const handleSeeking = useCallback(() => {
138
- startSeekTransition(() => {
139
- // Seek operations get their own transition
140
- });
141
- }, []);
142
- const handleSeeked = useCallback(() => {
143
- // Seek completed
144
- }, []);
145
- const handleProgress = useCallback(() => {
146
- const media = mediaRef.current;
147
- if (!media)
148
- return;
149
- startTransition(() => {
150
- if (isEnhanced && actions) {
151
- actions.setBuffered(media.buffered);
152
- }
153
- });
154
- }, [isEnhanced, actions]);
155
- // Performance monitoring
156
- const measureRenderTime = useCallback(() => {
157
- const now = performance.now();
158
- const deltaTime = now - lastFrameTime.current;
159
- if (deltaTime > 0) {
160
- frameCount.current++;
161
- // Calculate frame rate every second
162
- if (frameCount.current >= 60) {
163
- const fps = Math.round((frameCount.current * 1000) / (now - lastFrameTime.current));
164
- setPerformanceMetrics(prev => ({
165
- ...prev,
166
- frameRate: fps,
167
- droppedFrames: Math.max(0, 60 - fps)
168
- }));
169
- frameCount.current = 0;
170
- lastFrameTime.current = now;
171
- }
172
- }
173
- }, []);
174
- // Attach event listeners with performance optimization
175
- useEffect(() => {
176
- const media = mediaRef.current;
177
- if (!media)
178
- return;
179
- // Use passive listeners where possible for better performance
180
- const eventListeners = [
181
- { event: "timeupdate", handler: handleTimeUpdate, passive: true },
182
- { event: "play", handler: handlePlay },
183
- { event: "pause", handler: handlePause },
184
- { event: "volumechange", handler: handleVolumeChange },
185
- { event: "seeking", handler: handleSeeking },
186
- { event: "seeked", handler: handleSeeked },
187
- { event: "progress", handler: handleProgress, passive: true },
188
- { event: "loadedmetadata", handler: () => measureRenderTime() },
189
- { event: "loadeddata", handler: () => measureRenderTime() }
190
- ];
191
- eventListeners.forEach(({ event, handler, passive }) => {
192
- const options = passive ? { passive: true } : {};
193
- media.addEventListener(event, handler, options);
194
- });
195
- // Performance monitoring frame loop
196
- let rafId;
197
- const performanceLoop = () => {
198
- measureRenderTime();
199
- rafId = requestAnimationFrame(performanceLoop);
200
- };
201
- if (options.enablePerformanceMonitoring) {
202
- performanceLoop();
203
- }
204
- return () => {
205
- eventListeners.forEach(({ event, handler }) => {
206
- media.removeEventListener(event, handler);
207
- });
208
- if (rafId) {
209
- cancelAnimationFrame(rafId);
210
- }
211
- };
212
- }, [
213
- handleTimeUpdate,
214
- handlePlay,
215
- handlePause,
216
- handleVolumeChange,
217
- handleSeeking,
218
- handleSeeked,
219
- handleProgress,
220
- measureRenderTime,
221
- options.enablePerformanceMonitoring
222
- ]);
223
- // Optimized control functions with React 19 features
224
- const controls = useMemo(() => {
225
- const play = async () => {
226
- const media = mediaRef.current;
227
- if (!media)
228
- return;
229
- if (isEnhanced && actions) {
230
- await actions.play(true); // Optimistic
231
- }
232
- else {
233
- try {
234
- await media.play();
235
- }
236
- catch (error) {
237
- console.error("Failed to play media:", error);
238
- }
239
- }
240
- };
241
- const pause = () => {
242
- const media = mediaRef.current;
243
- if (!media)
244
- return;
245
- if (isEnhanced && actions) {
246
- actions.pause(true); // Optimistic
247
- }
248
- else {
249
- media.pause();
250
- }
251
- };
252
- const toggle = () => {
253
- if (isPlaying) {
254
- pause();
255
- }
256
- else {
257
- play();
258
- }
259
- };
260
- const seek = (time) => {
261
- const media = mediaRef.current;
262
- if (!media)
263
- return;
264
- const clampedTime = Math.max(0, Math.min(time, duration || 0));
265
- if (isEnhanced && actions) {
266
- startSeekTransition(() => {
267
- actions.seek(clampedTime, true); // Optimistic
268
- });
269
- }
270
- else {
271
- media.currentTime = clampedTime;
272
- }
273
- };
274
- const setVolume = (volume) => {
275
- const media = mediaRef.current;
276
- if (!media)
277
- return;
278
- const clampedVolume = Math.max(0, Math.min(1, volume));
279
- if (isEnhanced && actions) {
280
- setOptimisticVolume(clampedVolume);
281
- startTransition(() => {
282
- actions.setVolume(clampedVolume, true);
283
- });
284
- }
285
- else {
286
- media.volume = clampedVolume;
287
- }
288
- };
289
- const toggleMute = () => {
290
- const media = mediaRef.current;
291
- if (!media)
292
- return;
293
- if (isEnhanced && actions) {
294
- actions.toggleMute(true); // Optimistic
295
- }
296
- else {
297
- media.muted = !media.muted;
298
- }
299
- };
300
- const enterFullscreen = async () => {
301
- const container = containerRef.current;
302
- if (!container || !document.fullscreenEnabled)
303
- return;
304
- try {
305
- await container.requestFullscreen();
306
- if (isEnhanced && actions) {
307
- actions.enterFullscreen(true);
308
- }
309
- }
310
- catch (error) {
311
- console.error("Failed to enter fullscreen:", error);
312
- }
313
- };
314
- const exitFullscreen = async () => {
315
- if (!document.fullscreenElement)
316
- return;
317
- try {
318
- await document.exitFullscreen();
319
- if (isEnhanced && actions) {
320
- actions.exitFullscreen(true);
321
- }
322
- }
323
- catch (error) {
324
- console.error("Failed to exit fullscreen:", error);
325
- }
326
- };
327
- return {
328
- play,
329
- pause,
330
- toggle,
331
- seek,
332
- setVolume,
333
- toggleMute,
334
- enterFullscreen,
335
- exitFullscreen
336
- };
337
- }, [
338
- isPlaying,
339
- duration,
340
- isEnhanced,
341
- actions,
342
- startTransition,
343
- startSeekTransition,
344
- setOptimisticVolume
345
- ]);
346
- // Computed state
347
- const computedState = useMemo(() => ({
348
- isPlaying: optimisticState?.isPlaying ?? isPlaying,
349
- currentTime: optimisticState?.currentTime ?? currentTime,
350
- duration: optimisticState?.duration ?? duration,
351
- volume: optimisticState?.volume ?? optimisticVolume,
352
- isMuted: optimisticState?.isMuted ?? isMuted,
353
- isLoading: optimisticState?.isBuffering ?? isLoading,
354
- isBuffering: optimisticState?.isBuffering ?? isBuffering,
355
- error: optimisticState?.error ?? error,
356
- buffered: optimisticState?.buffered ?? buffered,
357
- isFullscreen: optimisticState?.isFullscreen ?? isFullscreen,
358
- progress: duration > 0 ? currentTime / duration : 0,
359
- isTransitioning: isPending || isSeeking,
360
- canPlay: !isLoading && !isBuffering && !error
361
- }), [
362
- optimisticState,
363
- isPlaying,
364
- currentTime,
365
- duration,
366
- optimisticVolume,
367
- isMuted,
368
- isLoading,
369
- isBuffering,
370
- error,
371
- buffered,
372
- isFullscreen,
373
- isPending,
374
- isSeeking
375
- ]);
376
- return {
377
- // Refs
378
- mediaRef,
379
- containerRef,
380
- // State
381
- state: computedState,
382
- actualState: optimisticState?.actualState,
383
- // Controls
384
- controls,
385
- // Performance metrics
386
- performanceMetrics,
387
- isTransitioning: isPending || isSeeking,
388
- // Enhanced features
389
- actions: optimisticState?.actions,
390
- actionState: optimisticState?.actionState,
391
- // Optimistic features
392
- optimisticState,
393
- isEnhanced
394
- };
395
- }