@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,205 +0,0 @@
1
- "use client";
2
- import React, { useOptimistic } from "react";
3
- // Optimistic update reducer function
4
- function optimisticMediaReducer(state, action) {
5
- if (!action.optimistic)
6
- return state;
7
- // Apply immediate optimistic updates for better UX
8
- switch (action.type) {
9
- case "PLAY":
10
- return { ...state, isPlaying: true, error: null };
11
- case "PAUSE":
12
- return { ...state, isPlaying: false };
13
- case "SEEK":
14
- return { ...state, currentTime: action.detail };
15
- case "SET_VOLUME":
16
- return { ...state, volume: Math.max(0, Math.min(1, action.detail)) };
17
- case "MUTE":
18
- return { ...state, isMuted: true };
19
- case "UNMUTE":
20
- return { ...state, isMuted: false };
21
- case "TOGGLE_MUTE":
22
- return { ...state, isMuted: !state.isMuted };
23
- case "ENTER_FULLSCREEN":
24
- return { ...state, isFullscreen: true };
25
- case "EXIT_FULLSCREEN":
26
- return { ...state, isFullscreen: false };
27
- case "SET_PLAYBACK_RATE":
28
- return { ...state, playbackRate: action.detail };
29
- case "TOGGLE_SUBTITLES":
30
- return { ...state, subtitlesShowing: !state.subtitlesShowing };
31
- case "PREVIEW_TIME":
32
- return { ...state, previewTime: action.detail };
33
- case "CLEAR_PREVIEW":
34
- return {
35
- ...state,
36
- previewTime: null,
37
- previewImage: null,
38
- previewCoords: null
39
- };
40
- default:
41
- return state;
42
- }
43
- }
44
- // Media optimistic state hook using React 19's useOptimistic
45
- export function useMediaOptimistic(store) {
46
- const actualState = React.useSyncExternalStore(store.subscribe, store.getState, store.getState);
47
- const [optimisticState, addOptimistic] = useOptimistic(actualState, optimisticMediaReducer);
48
- // Enhanced dispatch that uses optimistic updates
49
- const dispatchOptimistic = React.useCallback(async (action) => {
50
- // Add optimistic update immediately
51
- if (action.optimistic) {
52
- addOptimistic(action);
53
- }
54
- // Dispatch the actual action
55
- await store.dispatchOptimistic(action);
56
- }, [store, addOptimistic]);
57
- // Quick actions with optimistic updates
58
- const optimisticActions = React.useMemo(() => ({
59
- // Play/Pause with immediate feedback
60
- togglePlayPause: async () => {
61
- const action = {
62
- type: optimisticState.isPlaying ? "PAUSE" : "PLAY",
63
- optimistic: true,
64
- timestamp: Date.now()
65
- };
66
- await dispatchOptimistic(action);
67
- },
68
- // Volume control with immediate slider feedback
69
- setVolumeOptimistic: async (volume) => {
70
- const action = {
71
- type: "SET_VOLUME",
72
- detail: Math.max(0, Math.min(1, volume)),
73
- optimistic: true,
74
- timestamp: Date.now()
75
- };
76
- await dispatchOptimistic(action);
77
- },
78
- // Seek with immediate scrub feedback
79
- seekOptimistic: async (time) => {
80
- const action = {
81
- type: "SEEK",
82
- detail: time,
83
- optimistic: true,
84
- timestamp: Date.now()
85
- };
86
- await dispatchOptimistic(action);
87
- },
88
- // Mute toggle with immediate icon change
89
- toggleMuteOptimistic: async () => {
90
- const action = {
91
- type: "TOGGLE_MUTE",
92
- optimistic: true,
93
- timestamp: Date.now()
94
- };
95
- await dispatchOptimistic(action);
96
- },
97
- // Fullscreen toggle with immediate layout change
98
- toggleFullscreenOptimistic: async () => {
99
- const action = {
100
- type: optimisticState.isFullscreen ? "EXIT_FULLSCREEN" : "ENTER_FULLSCREEN",
101
- optimistic: true,
102
- timestamp: Date.now()
103
- };
104
- await dispatchOptimistic(action);
105
- },
106
- // Playback rate with immediate feedback
107
- setPlaybackRateOptimistic: async (rate) => {
108
- const action = {
109
- type: "SET_PLAYBACK_RATE",
110
- detail: rate,
111
- optimistic: true,
112
- timestamp: Date.now()
113
- };
114
- await dispatchOptimistic(action);
115
- },
116
- // Subtitle toggle with immediate visibility change
117
- toggleSubtitlesOptimistic: async () => {
118
- const action = {
119
- type: "TOGGLE_SUBTITLES",
120
- optimistic: true,
121
- timestamp: Date.now()
122
- };
123
- await dispatchOptimistic(action);
124
- }
125
- }), [optimisticState, dispatchOptimistic]);
126
- // State selectors that return optimistic values
127
- const selectors = React.useMemo(() => ({
128
- isPlaying: optimisticState.isPlaying,
129
- currentTime: optimisticState.currentTime,
130
- volume: optimisticState.volume,
131
- isMuted: optimisticState.isMuted,
132
- isFullscreen: optimisticState.isFullscreen,
133
- playbackRate: optimisticState.playbackRate,
134
- subtitlesShowing: optimisticState.subtitlesShowing,
135
- previewTime: optimisticState.previewTime,
136
- // Computed values
137
- progress: optimisticState.duration > 0
138
- ? optimisticState.currentTime / optimisticState.duration
139
- : 0,
140
- formattedTime: formatTime(optimisticState.currentTime),
141
- formattedDuration: formatTime(optimisticState.duration),
142
- // State checks
143
- canPlay: !optimisticState.isLoading && !optimisticState.error,
144
- hasError: !!optimisticState.error,
145
- isBuffering: optimisticState.isLoading
146
- }), [optimisticState]);
147
- return {
148
- state: optimisticState,
149
- actualState,
150
- ...selectors,
151
- ...optimisticActions,
152
- dispatchOptimistic
153
- };
154
- }
155
- // Time formatting utility
156
- function formatTime(seconds) {
157
- if (!seconds || !isFinite(seconds))
158
- return "0:00";
159
- const mins = Math.floor(seconds / 60);
160
- const secs = Math.floor(seconds % 60);
161
- const hours = Math.floor(mins / 60);
162
- if (hours > 0) {
163
- return `${hours}:${String(mins % 60).padStart(2, '0')}:${String(secs).padStart(2, '0')}`;
164
- }
165
- return `${mins}:${String(secs).padStart(2, '0')}`;
166
- }
167
- // Hook for components that need to detect optimistic updates
168
- export function useOptimisticUpdates(store) {
169
- const [hasOptimisticUpdates, setHasOptimisticUpdates] = React.useState(false);
170
- React.useEffect(() => {
171
- const unsubscribe = store.subscribe(() => {
172
- const actualState = store.getState();
173
- const optimisticState = store.getOptimisticState();
174
- const hasUpdates = JSON.stringify(actualState) !== JSON.stringify(optimisticState);
175
- setHasOptimisticUpdates(hasUpdates);
176
- });
177
- return unsubscribe;
178
- }, [store]);
179
- return hasOptimisticUpdates;
180
- }
181
- // Hook to get both actual and optimistic state for debugging
182
- export function useMediaStateComparison(store) {
183
- const actualState = React.useSyncExternalStore(store.subscribe, store.getState, store.getState);
184
- const optimisticState = React.useSyncExternalStore(store.subscribe, store.getOptimisticState, store.getOptimisticState);
185
- const differences = React.useMemo(() => {
186
- const diffs = [];
187
- const stateKeys = Object.keys(actualState);
188
- stateKeys.forEach(key => {
189
- if (JSON.stringify(actualState[key]) !== JSON.stringify(optimisticState[key])) {
190
- diffs.push({
191
- key: key,
192
- actual: actualState[key],
193
- optimistic: optimisticState[key]
194
- });
195
- }
196
- });
197
- return diffs;
198
- }, [actualState, optimisticState]);
199
- return {
200
- actualState,
201
- optimisticState,
202
- differences,
203
- hasOptimisticUpdates: differences.length > 0
204
- };
205
- }
@@ -1,251 +0,0 @@
1
- "use client";
2
- import { useEffect, useRef } from "react";
3
- import { useMediaState } from "./use-media-state";
4
- export function useMediaPlayer(options) {
5
- const mediaRef = useRef(null);
6
- const containerRef = useRef(null);
7
- const { state, setPlaying, setCurrentTime, setDuration, setVolume, setMuted, setLoading, setFullscreen, setError, setBuffered } = useMediaState();
8
- // Initialize media element with options
9
- useEffect(() => {
10
- const media = mediaRef.current;
11
- if (!media)
12
- return;
13
- // Set initial properties
14
- if (options.volume !== undefined) {
15
- media.volume = options.volume;
16
- setVolume(options.volume);
17
- }
18
- if (options.muted !== undefined) {
19
- media.muted = options.muted;
20
- setMuted(options.muted);
21
- }
22
- if (options.autoPlay !== undefined) {
23
- media.autoplay = options.autoPlay;
24
- }
25
- if (options.loop !== undefined) {
26
- media.loop = options.loop;
27
- }
28
- if (options.preload !== undefined) {
29
- media.preload = options.preload;
30
- }
31
- if (options.crossOrigin !== undefined) {
32
- media.crossOrigin = options.crossOrigin;
33
- }
34
- }, [options, setVolume, setMuted]);
35
- // Event handlers
36
- const handlePlay = () => {
37
- setPlaying(true);
38
- options.onPlay?.();
39
- };
40
- const handlePause = () => {
41
- setPlaying(false);
42
- options.onPause?.();
43
- };
44
- const handleTimeUpdate = () => {
45
- const media = mediaRef.current;
46
- if (!media)
47
- return;
48
- setCurrentTime(media.currentTime);
49
- options.onTimeUpdate?.(media.currentTime);
50
- };
51
- const handleDurationChange = () => {
52
- const media = mediaRef.current;
53
- if (!media)
54
- return;
55
- setDuration(media.duration);
56
- options.onDurationChange?.(media.duration);
57
- };
58
- const handleVolumeChange = () => {
59
- const media = mediaRef.current;
60
- if (!media)
61
- return;
62
- setVolume(media.volume);
63
- setMuted(media.muted);
64
- options.onVolumeChange?.(media.volume);
65
- };
66
- const handleLoadStart = () => {
67
- setLoading(true);
68
- setError(null);
69
- options.onLoadStart?.();
70
- };
71
- const handleLoadedData = () => {
72
- setLoading(false);
73
- options.onLoadedData?.();
74
- };
75
- const handleError = () => {
76
- const media = mediaRef.current;
77
- if (!media)
78
- return;
79
- const errorMessage = media.error?.message || "An error occurred while loading the media";
80
- setError(errorMessage);
81
- setLoading(false);
82
- options.onError?.(errorMessage);
83
- };
84
- const handleEnded = () => {
85
- setPlaying(false);
86
- options.onEnded?.();
87
- };
88
- const handleProgress = () => {
89
- const media = mediaRef.current;
90
- if (!media)
91
- return;
92
- setBuffered(media.buffered);
93
- };
94
- // Attach event listeners
95
- useEffect(() => {
96
- const media = mediaRef.current;
97
- if (!media)
98
- return;
99
- media.addEventListener("play", handlePlay);
100
- media.addEventListener("pause", handlePause);
101
- media.addEventListener("timeupdate", handleTimeUpdate);
102
- media.addEventListener("durationchange", handleDurationChange);
103
- media.addEventListener("volumechange", handleVolumeChange);
104
- media.addEventListener("loadstart", handleLoadStart);
105
- media.addEventListener("loadeddata", handleLoadedData);
106
- media.addEventListener("error", handleError);
107
- media.addEventListener("ended", handleEnded);
108
- media.addEventListener("progress", handleProgress);
109
- return () => {
110
- media.removeEventListener("play", handlePlay);
111
- media.removeEventListener("pause", handlePause);
112
- media.removeEventListener("timeupdate", handleTimeUpdate);
113
- media.removeEventListener("durationchange", handleDurationChange);
114
- media.removeEventListener("volumechange", handleVolumeChange);
115
- media.removeEventListener("loadstart", handleLoadStart);
116
- media.removeEventListener("loadeddata", handleLoadedData);
117
- media.removeEventListener("error", handleError);
118
- media.removeEventListener("ended", handleEnded);
119
- media.removeEventListener("progress", handleProgress);
120
- };
121
- }, [
122
- handlePlay,
123
- handlePause,
124
- handleTimeUpdate,
125
- handleDurationChange,
126
- handleVolumeChange,
127
- handleLoadStart,
128
- handleLoadedData,
129
- handleError,
130
- handleEnded,
131
- handleProgress
132
- ]);
133
- // Control functions
134
- const play = async () => {
135
- const media = mediaRef.current;
136
- if (!media)
137
- return;
138
- try {
139
- await media.play();
140
- }
141
- catch (error) {
142
- console.error("Failed to play media:", error);
143
- setError("Failed to play media");
144
- }
145
- };
146
- const pause = () => {
147
- const media = mediaRef.current;
148
- if (!media)
149
- return;
150
- media.pause();
151
- };
152
- const toggle = () => {
153
- if (state.isPlaying) {
154
- pause();
155
- }
156
- else {
157
- play();
158
- }
159
- };
160
- const seek = (time) => {
161
- const media = mediaRef.current;
162
- if (!media)
163
- return;
164
- media.currentTime = Math.max(0, Math.min(time, media.duration || 0));
165
- };
166
- const setVolumeControl = (volume) => {
167
- const media = mediaRef.current;
168
- if (!media)
169
- return;
170
- const clampedVolume = Math.max(0, Math.min(1, volume));
171
- media.volume = clampedVolume;
172
- };
173
- const mute = () => {
174
- const media = mediaRef.current;
175
- if (!media)
176
- return;
177
- media.muted = true;
178
- };
179
- const unmute = () => {
180
- const media = mediaRef.current;
181
- if (!media)
182
- return;
183
- media.muted = false;
184
- };
185
- const toggleMute = () => {
186
- const media = mediaRef.current;
187
- if (!media)
188
- return;
189
- media.muted = !media.muted;
190
- };
191
- const enterFullscreen = async () => {
192
- const container = containerRef.current;
193
- if (!container || !document.fullscreenEnabled)
194
- return;
195
- try {
196
- await container.requestFullscreen();
197
- setFullscreen(true);
198
- }
199
- catch (error) {
200
- console.error("Failed to enter fullscreen:", error);
201
- }
202
- };
203
- const exitFullscreen = async () => {
204
- if (!document.fullscreenElement)
205
- return;
206
- try {
207
- await document.exitFullscreen();
208
- setFullscreen(false);
209
- }
210
- catch (error) {
211
- console.error("Failed to exit fullscreen:", error);
212
- }
213
- };
214
- const toggleFullscreen = () => {
215
- if (document.fullscreenElement) {
216
- exitFullscreen();
217
- }
218
- else {
219
- enterFullscreen();
220
- }
221
- };
222
- // Listen for fullscreen changes
223
- useEffect(() => {
224
- const handleFullscreenChange = () => {
225
- setFullscreen(!!document.fullscreenElement);
226
- };
227
- document.addEventListener("fullscreenchange", handleFullscreenChange);
228
- return () => {
229
- document.removeEventListener("fullscreenchange", handleFullscreenChange);
230
- };
231
- }, [setFullscreen]);
232
- const controls = {
233
- play,
234
- pause,
235
- toggle,
236
- seek,
237
- setVolume: setVolumeControl,
238
- mute,
239
- unmute,
240
- toggleMute,
241
- enterFullscreen,
242
- exitFullscreen,
243
- toggleFullscreen
244
- };
245
- return {
246
- state,
247
- controls,
248
- mediaRef,
249
- containerRef
250
- };
251
- }
@@ -1,162 +0,0 @@
1
- "use client";
2
- import { useState } from "react";
3
- import { useMediaStore } from "../context/media-context";
4
- import { useMediaOptimistic } from "./use-media-optimistic";
5
- import { useMediaActions } from "./use-media-actions";
6
- // Legacy hook for backward compatibility
7
- export function useMediaState() {
8
- const [state, setState] = useState({
9
- isPlaying: false,
10
- currentTime: 0,
11
- duration: 0,
12
- volume: 1,
13
- isMuted: false,
14
- isLoading: false,
15
- isFullscreen: false,
16
- error: null,
17
- buffered: null
18
- });
19
- const updateState = (updates) => {
20
- setState((prev) => ({ ...prev, ...updates }));
21
- };
22
- const setPlaying = (isPlaying) => {
23
- updateState({ isPlaying });
24
- };
25
- const setCurrentTime = (currentTime) => {
26
- updateState({ currentTime });
27
- };
28
- const setDuration = (duration) => {
29
- updateState({ duration });
30
- };
31
- const setVolume = (volume) => {
32
- updateState({ volume: Math.max(0, Math.min(1, volume)) });
33
- };
34
- const setMuted = (isMuted) => {
35
- updateState({ isMuted });
36
- };
37
- const setLoading = (isLoading) => {
38
- updateState({ isLoading });
39
- };
40
- const setFullscreen = (isFullscreen) => {
41
- updateState({ isFullscreen });
42
- };
43
- const setError = (error) => {
44
- updateState({ error });
45
- };
46
- const setBuffered = (buffered) => {
47
- updateState({ buffered });
48
- };
49
- return {
50
- state,
51
- updateState,
52
- setPlaying,
53
- setCurrentTime,
54
- setDuration,
55
- setVolume,
56
- setMuted,
57
- setLoading,
58
- setFullscreen,
59
- setError,
60
- setBuffered
61
- };
62
- }
63
- // React 19 enhanced media state hook
64
- export function useEnhancedMediaState() {
65
- const store = useMediaStore();
66
- // Check if this is an enhanced store
67
- const isEnhanced = 'getOptimisticState' in store;
68
- if (!isEnhanced) {
69
- // Fall back to regular media state if not enhanced
70
- return useMediaState();
71
- }
72
- // Cast to enhanced store type
73
- const enhancedStore = store;
74
- // Use React 19 optimistic updates
75
- const optimisticState = useMediaOptimistic(enhancedStore);
76
- // Get action handlers with React 19 features
77
- const actions = useMediaActions(enhancedStore);
78
- return {
79
- // State (optimistic values for immediate UI feedback)
80
- state: optimisticState.state,
81
- actualState: optimisticState.actualState,
82
- // Individual state selectors
83
- isPlaying: optimisticState.isPlaying,
84
- currentTime: optimisticState.currentTime,
85
- duration: optimisticState.state.duration,
86
- volume: optimisticState.volume,
87
- isMuted: optimisticState.isMuted,
88
- isLoading: optimisticState.isBuffering,
89
- isFullscreen: optimisticState.isFullscreen,
90
- error: optimisticState.state.error,
91
- buffered: optimisticState.state.buffered,
92
- // Computed values
93
- progress: optimisticState.progress,
94
- formattedTime: optimisticState.formattedTime,
95
- formattedDuration: optimisticState.formattedDuration,
96
- // Actions with optimistic updates
97
- actions,
98
- // Action state for loading/error handling
99
- isActionLoading: actions.isLoading,
100
- actionError: actions.errorMessage,
101
- retryLastAction: actions.retryLastAction,
102
- // Legacy compatibility methods
103
- updateState: (updates) => {
104
- // Map legacy updates to new actions
105
- if ('isPlaying' in updates) {
106
- updates.isPlaying ? actions.play() : actions.pause();
107
- }
108
- if ('currentTime' in updates) {
109
- actions.setCurrentTime(updates.currentTime);
110
- }
111
- if ('duration' in updates) {
112
- actions.setDuration(updates.duration);
113
- }
114
- if ('volume' in updates) {
115
- actions.setVolume(updates.volume);
116
- }
117
- if ('isMuted' in updates) {
118
- updates.isMuted ? actions.mute() : actions.unmute();
119
- }
120
- if ('isLoading' in updates) {
121
- actions.setLoading(updates.isLoading);
122
- }
123
- if ('isFullscreen' in updates) {
124
- updates.isFullscreen ? actions.enterFullscreen() : actions.exitFullscreen();
125
- }
126
- if ('error' in updates) {
127
- actions.setError(updates.error ?? null);
128
- }
129
- if ('buffered' in updates) {
130
- actions.setBuffered(updates.buffered ?? null);
131
- }
132
- },
133
- // Individual action methods for legacy compatibility
134
- setPlaying: (isPlaying) => {
135
- isPlaying ? actions.play(true) : actions.pause(true); // Use optimistic updates
136
- },
137
- setCurrentTime: (time) => actions.setCurrentTime(time),
138
- setDuration: (duration) => actions.setDuration(duration),
139
- setVolume: (volume) => actions.setVolume(volume, true),
140
- setMuted: (muted) => {
141
- muted ? actions.mute(true) : actions.unmute(true);
142
- },
143
- setLoading: (loading) => actions.setLoading(loading),
144
- setFullscreen: (fullscreen) => {
145
- fullscreen ? actions.enterFullscreen(true) : actions.exitFullscreen(true);
146
- },
147
- setError: (error) => actions.setError(error),
148
- setBuffered: (buffered) => actions.setBuffered(buffered)
149
- };
150
- }
151
- // Hook that automatically chooses between legacy and enhanced based on context availability
152
- export function useAdaptiveMediaState() {
153
- try {
154
- // Try to use the enhanced version if MediaStore context is available
155
- return useEnhancedMediaState();
156
- }
157
- catch (error) {
158
- // Fall back to legacy version if not in MediaProvider context
159
- console.warn('MediaStore context not available, using legacy state management');
160
- return useMediaState();
161
- }
162
- }