@therealtinhtute/baroiplayer 1.0.5 → 1.0.7

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