@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,273 +0,0 @@
1
- "use client";
2
- import { MediaActionTypes, initialMediaState } from "./media-context";
3
- // Default persistence configuration
4
- const DEFAULT_PERSISTENCE_CONFIG = {
5
- enabled: true,
6
- key: "baroi-player-state",
7
- persist: ["volume", "isMuted", "playbackRate", "subtitlesShowing"],
8
- debounceMs: 500
9
- };
10
- // Create enhanced media store with React 19 features
11
- export function createEnhancedMediaStore(initialState = initialMediaState, persistenceConfig = {}) {
12
- let state = { ...initialState };
13
- let optimisticState = { ...initialState };
14
- let actionState = {
15
- pending: false,
16
- error: null,
17
- lastAction: null,
18
- retryCount: 0
19
- };
20
- const config = { ...DEFAULT_PERSISTENCE_CONFIG, ...persistenceConfig };
21
- const listeners = new Set();
22
- const optimisticQueue = new Map();
23
- let persistenceTimeout = null;
24
- const subscribe = (callback) => {
25
- listeners.add(callback);
26
- return () => listeners.delete(callback);
27
- };
28
- const notifyListeners = () => {
29
- listeners.forEach((callback) => callback());
30
- };
31
- const getState = () => state;
32
- const getOptimisticState = () => optimisticState;
33
- const getActionState = () => actionState;
34
- // Persistence helpers
35
- const persistState = async () => {
36
- if (!config.enabled || typeof window === 'undefined')
37
- return;
38
- const persistedData = config.persist.reduce((acc, key) => {
39
- acc[key] = state[key];
40
- return acc;
41
- }, {});
42
- try {
43
- localStorage.setItem(config.key, JSON.stringify({
44
- ...persistedData,
45
- timestamp: Date.now()
46
- }));
47
- }
48
- catch (error) {
49
- console.warn('Failed to persist media state:', error);
50
- }
51
- };
52
- const debouncedPersist = () => {
53
- if (persistenceTimeout) {
54
- clearTimeout(persistenceTimeout);
55
- }
56
- persistenceTimeout = setTimeout(persistState, config.debounceMs);
57
- };
58
- const rehydrateFromStorage = async () => {
59
- if (!config.enabled || typeof window === 'undefined')
60
- return;
61
- try {
62
- const stored = localStorage.getItem(config.key);
63
- if (!stored)
64
- return;
65
- const parsedData = JSON.parse(stored);
66
- const { timestamp, ...persistedState } = parsedData;
67
- // Only rehydrate if data is less than 7 days old
68
- const maxAge = 7 * 24 * 60 * 60 * 1000; // 7 days
69
- if (timestamp && Date.now() - timestamp > maxAge) {
70
- clearPersistedState();
71
- return;
72
- }
73
- // Merge persisted state with current state
74
- const newState = { ...state, ...persistedState };
75
- if (JSON.stringify(newState) !== JSON.stringify(state)) {
76
- state = newState;
77
- optimisticState = { ...newState };
78
- notifyListeners();
79
- }
80
- }
81
- catch (error) {
82
- console.warn('Failed to rehydrate media state:', error);
83
- }
84
- };
85
- const clearPersistedState = () => {
86
- if (typeof window === 'undefined')
87
- return;
88
- try {
89
- localStorage.removeItem(config.key);
90
- }
91
- catch (error) {
92
- console.warn('Failed to clear persisted state:', error);
93
- }
94
- };
95
- const setPersistenceConfig = (newConfig) => {
96
- Object.assign(config, newConfig);
97
- };
98
- const setState = (updates) => {
99
- const newState = { ...state, ...updates };
100
- if (JSON.stringify(newState) !== JSON.stringify(state)) {
101
- state = newState;
102
- optimisticState = { ...newState };
103
- // Persist relevant changes
104
- debouncedPersist();
105
- notifyListeners();
106
- }
107
- };
108
- const applyOptimisticUpdate = (action) => {
109
- const actionId = `${action.type}-${Date.now()}-${Math.random()}`;
110
- // Store original action for rollback
111
- optimisticQueue.set(actionId, { ...action, timestamp: Date.now() });
112
- // Apply optimistic update to optimistic state
113
- const optimisticUpdate = processMediaAction(optimisticState, action);
114
- optimisticState = { ...optimisticState, ...optimisticUpdate };
115
- notifyListeners();
116
- return actionId;
117
- };
118
- const rollbackOptimistic = (actionId) => {
119
- if (!optimisticQueue.has(actionId))
120
- return;
121
- // Remove from queue and recalculate optimistic state
122
- optimisticQueue.delete(actionId);
123
- // Rebuild optimistic state from actual state + remaining optimistic actions
124
- optimisticState = { ...state };
125
- for (const [, action] of optimisticQueue) {
126
- const update = processMediaAction(optimisticState, action);
127
- optimisticState = { ...optimisticState, ...update };
128
- }
129
- notifyListeners();
130
- };
131
- // Process media action and return state updates
132
- const processMediaAction = (currentState, action) => {
133
- switch (action.type) {
134
- case MediaActionTypes.PLAY:
135
- return { isPlaying: true, error: null };
136
- case MediaActionTypes.PAUSE:
137
- return { isPlaying: false };
138
- case MediaActionTypes.SEEK:
139
- return { currentTime: action.detail };
140
- case MediaActionTypes.SET_VOLUME:
141
- return { volume: Math.max(0, Math.min(1, action.detail)) };
142
- case MediaActionTypes.MUTE:
143
- return { isMuted: true };
144
- case MediaActionTypes.UNMUTE:
145
- return { isMuted: false };
146
- case MediaActionTypes.TOGGLE_MUTE:
147
- return { isMuted: !currentState.isMuted };
148
- case MediaActionTypes.SET_DURATION:
149
- return { duration: action.detail };
150
- case MediaActionTypes.SET_CURRENT_TIME:
151
- return { currentTime: action.detail };
152
- case MediaActionTypes.SET_BUFFERED:
153
- return { buffered: action.detail };
154
- case MediaActionTypes.SET_LOADING:
155
- return { isLoading: action.detail };
156
- case MediaActionTypes.SET_ERROR:
157
- return { error: action.detail, isLoading: false };
158
- case MediaActionTypes.ENTER_FULLSCREEN:
159
- return { isFullscreen: true };
160
- case MediaActionTypes.EXIT_FULLSCREEN:
161
- return { isFullscreen: false };
162
- case MediaActionTypes.ENTER_PIP:
163
- return { isPictureInPicture: true };
164
- case MediaActionTypes.EXIT_PIP:
165
- return { isPictureInPicture: false };
166
- case MediaActionTypes.SET_PLAYBACK_RATE:
167
- return { playbackRate: action.detail };
168
- case MediaActionTypes.SET_SUBTITLE_TRACK:
169
- return { selectedSubtitleTrack: action.detail };
170
- case MediaActionTypes.SET_RENDITION:
171
- return { selectedRendition: action.detail };
172
- case MediaActionTypes.TOGGLE_SUBTITLES:
173
- return { subtitlesShowing: !currentState.subtitlesShowing };
174
- case MediaActionTypes.PREVIEW_TIME:
175
- return { previewTime: action.detail };
176
- case MediaActionTypes.CLEAR_PREVIEW:
177
- return { previewTime: null, previewImage: null, previewCoords: null };
178
- default:
179
- console.warn(`Unknown media action type: ${action.type}`);
180
- return {};
181
- }
182
- };
183
- const dispatch = (action) => {
184
- const updates = processMediaAction(state, action);
185
- setState(updates);
186
- };
187
- const dispatchOptimistic = async (action) => {
188
- // Set action state to pending
189
- actionState = {
190
- pending: true,
191
- error: null,
192
- lastAction: action,
193
- retryCount: action.retryCount || 0
194
- };
195
- // Apply optimistic update immediately
196
- const actionId = applyOptimisticUpdate(action);
197
- try {
198
- // Simulate async operation (e.g., network request, DOM manipulation)
199
- await new Promise(resolve => setTimeout(resolve, 0));
200
- // Apply the actual update to the real state
201
- const updates = processMediaAction(state, action);
202
- const newState = { ...state, ...updates };
203
- if (JSON.stringify(newState) !== JSON.stringify(state)) {
204
- state = newState;
205
- debouncedPersist();
206
- }
207
- // Clean up optimistic action
208
- optimisticQueue.delete(actionId);
209
- // Update action state
210
- actionState = {
211
- pending: false,
212
- error: null,
213
- lastAction: action,
214
- retryCount: 0
215
- };
216
- // Sync optimistic state with actual state
217
- optimisticState = { ...state };
218
- for (const [, queuedAction] of optimisticQueue) {
219
- const update = processMediaAction(optimisticState, queuedAction);
220
- optimisticState = { ...optimisticState, ...update };
221
- }
222
- }
223
- catch (error) {
224
- // Rollback optimistic update on error
225
- rollbackOptimistic(actionId);
226
- const errorMessage = error instanceof Error ? error.message : 'Unknown error occurred';
227
- actionState = {
228
- pending: false,
229
- error: errorMessage,
230
- lastAction: action,
231
- retryCount: (action.retryCount || 0) + 1
232
- };
233
- // Auto-retry logic for certain actions
234
- if (actionState.retryCount < 3 && shouldRetry(action.type)) {
235
- setTimeout(() => {
236
- dispatchOptimistic({
237
- ...action,
238
- retryCount: actionState.retryCount
239
- });
240
- }, Math.pow(2, actionState.retryCount) * 1000); // Exponential backoff
241
- }
242
- }
243
- notifyListeners();
244
- };
245
- // Determine if an action should be retried
246
- const shouldRetry = (actionType) => {
247
- const retryableActions = [
248
- MediaActionTypes.PLAY,
249
- MediaActionTypes.PAUSE,
250
- MediaActionTypes.SEEK,
251
- MediaActionTypes.SET_VOLUME,
252
- MediaActionTypes.MUTE,
253
- MediaActionTypes.UNMUTE,
254
- MediaActionTypes.TOGGLE_MUTE
255
- ];
256
- return retryableActions.includes(actionType);
257
- };
258
- // Initialize with rehydrated state
259
- rehydrateFromStorage();
260
- return {
261
- subscribe,
262
- getState,
263
- setState,
264
- dispatch,
265
- getOptimisticState,
266
- dispatchOptimistic,
267
- rollbackOptimistic,
268
- getActionState,
269
- setPersistenceConfig,
270
- rehydrateFromStorage,
271
- clearPersistedState
272
- };
273
- }
@@ -1,356 +0,0 @@
1
- "use client";
2
- // Storage keys
3
- export const STORAGE_KEYS = {
4
- USER_PREFERENCES: "baroi-player-preferences",
5
- SESSION_STATE: "baroi-player-session",
6
- PLAYBACK_HISTORY: "baroi-player-history",
7
- CACHE_TIMESTAMP: "baroi-player-cache-ts"
8
- };
9
- // Default localStorage adapter
10
- class LocalStorageAdapter {
11
- async getItem(key) {
12
- if (typeof window === 'undefined')
13
- return null;
14
- try {
15
- return localStorage.getItem(key);
16
- }
17
- catch (error) {
18
- console.warn('Failed to read from localStorage:', error);
19
- return null;
20
- }
21
- }
22
- async setItem(key, value) {
23
- if (typeof window === 'undefined')
24
- return;
25
- try {
26
- localStorage.setItem(key, value);
27
- }
28
- catch (error) {
29
- console.warn('Failed to write to localStorage:', error);
30
- }
31
- }
32
- async removeItem(key) {
33
- if (typeof window === 'undefined')
34
- return;
35
- try {
36
- localStorage.removeItem(key);
37
- }
38
- catch (error) {
39
- console.warn('Failed to remove from localStorage:', error);
40
- }
41
- }
42
- async clear() {
43
- if (typeof window === 'undefined')
44
- return;
45
- try {
46
- // Only clear baroi-player keys
47
- Object.values(STORAGE_KEYS).forEach(key => {
48
- localStorage.removeItem(key);
49
- });
50
- }
51
- catch (error) {
52
- console.warn('Failed to clear localStorage:', error);
53
- }
54
- }
55
- }
56
- // Default persistence configuration
57
- const DEFAULT_CONFIG = {
58
- userPreferences: true,
59
- sessionState: true,
60
- playbackHistory: true,
61
- maxHistoryItems: 50,
62
- maxCacheAge: 7 * 24 * 60 * 60 * 1000, // 7 days
63
- debounceMs: 1000,
64
- storage: new LocalStorageAdapter()
65
- };
66
- // Persistence manager class
67
- export class MediaPersistenceManager {
68
- config;
69
- storage;
70
- debounceTimeouts = new Map();
71
- constructor(config = {}) {
72
- this.config = { ...DEFAULT_CONFIG, ...config };
73
- this.storage = this.config.storage;
74
- }
75
- // User preferences methods
76
- async getUserPreferences() {
77
- if (!this.config.userPreferences)
78
- return null;
79
- try {
80
- const data = await this.storage.getItem(STORAGE_KEYS.USER_PREFERENCES);
81
- if (!data)
82
- return null;
83
- const parsed = JSON.parse(data);
84
- // Validate cache age
85
- if (this.isCacheExpired(parsed.timestamp)) {
86
- await this.clearUserPreferences();
87
- return null;
88
- }
89
- return parsed.preferences;
90
- }
91
- catch (error) {
92
- console.warn('Failed to get user preferences:', error);
93
- return null;
94
- }
95
- }
96
- async saveUserPreferences(preferences) {
97
- if (!this.config.userPreferences)
98
- return;
99
- this.debounce(STORAGE_KEYS.USER_PREFERENCES, async () => {
100
- try {
101
- const existing = await this.getUserPreferences() || {};
102
- const updated = { ...existing, ...preferences };
103
- await this.storage.setItem(STORAGE_KEYS.USER_PREFERENCES, JSON.stringify({
104
- preferences: updated,
105
- timestamp: Date.now()
106
- }));
107
- }
108
- catch (error) {
109
- console.warn('Failed to save user preferences:', error);
110
- }
111
- });
112
- }
113
- async clearUserPreferences() {
114
- try {
115
- await this.storage.removeItem(STORAGE_KEYS.USER_PREFERENCES);
116
- }
117
- catch (error) {
118
- console.warn('Failed to clear user preferences:', error);
119
- }
120
- }
121
- // Session state methods
122
- async getSessionState() {
123
- if (!this.config.sessionState)
124
- return null;
125
- try {
126
- const data = await this.storage.getItem(STORAGE_KEYS.SESSION_STATE);
127
- if (!data)
128
- return null;
129
- const parsed = JSON.parse(data);
130
- return parsed.state;
131
- }
132
- catch (error) {
133
- console.warn('Failed to get session state:', error);
134
- return null;
135
- }
136
- }
137
- async saveSessionState(state) {
138
- if (!this.config.sessionState)
139
- return;
140
- this.debounce(STORAGE_KEYS.SESSION_STATE, async () => {
141
- try {
142
- const existing = await this.getSessionState() || {
143
- currentTime: 0,
144
- playbackPosition: {}
145
- };
146
- const updated = { ...existing, ...state };
147
- await this.storage.setItem(STORAGE_KEYS.SESSION_STATE, JSON.stringify({
148
- state: updated,
149
- timestamp: Date.now()
150
- }));
151
- }
152
- catch (error) {
153
- console.warn('Failed to save session state:', error);
154
- }
155
- });
156
- }
157
- async clearSessionState() {
158
- try {
159
- await this.storage.removeItem(STORAGE_KEYS.SESSION_STATE);
160
- }
161
- catch (error) {
162
- console.warn('Failed to clear session state:', error);
163
- }
164
- }
165
- // Playback history methods
166
- async getPlaybackHistory() {
167
- if (!this.config.playbackHistory)
168
- return [];
169
- try {
170
- const data = await this.storage.getItem(STORAGE_KEYS.PLAYBACK_HISTORY);
171
- if (!data)
172
- return [];
173
- const parsed = JSON.parse(data);
174
- // Validate cache age
175
- if (this.isCacheExpired(parsed.timestamp)) {
176
- await this.clearPlaybackHistory();
177
- return [];
178
- }
179
- return parsed.history || [];
180
- }
181
- catch (error) {
182
- console.warn('Failed to get playback history:', error);
183
- return [];
184
- }
185
- }
186
- async addToPlaybackHistory(item) {
187
- if (!this.config.playbackHistory)
188
- return;
189
- try {
190
- const history = await this.getPlaybackHistory();
191
- const newItem = {
192
- ...item,
193
- timestamp: Date.now()
194
- };
195
- // Remove existing entry for the same media
196
- const filteredHistory = history.filter(h => h.mediaId !== item.mediaId);
197
- // Add new item at the beginning
198
- const updatedHistory = [newItem, ...filteredHistory]
199
- .slice(0, this.config.maxHistoryItems);
200
- await this.storage.setItem(STORAGE_KEYS.PLAYBACK_HISTORY, JSON.stringify({
201
- history: updatedHistory,
202
- timestamp: Date.now()
203
- }));
204
- }
205
- catch (error) {
206
- console.warn('Failed to add to playback history:', error);
207
- }
208
- }
209
- async clearPlaybackHistory() {
210
- try {
211
- await this.storage.removeItem(STORAGE_KEYS.PLAYBACK_HISTORY);
212
- }
213
- catch (error) {
214
- console.warn('Failed to clear playback history:', error);
215
- }
216
- }
217
- // Utility methods
218
- async savePlaybackPosition(mediaId, position) {
219
- const session = await this.getSessionState();
220
- const playbackPosition = session?.playbackPosition || {};
221
- await this.saveSessionState({
222
- playbackPosition: {
223
- ...playbackPosition,
224
- [mediaId]: position
225
- }
226
- });
227
- }
228
- async getPlaybackPosition(mediaId) {
229
- const session = await this.getSessionState();
230
- return session?.playbackPosition?.[mediaId] || 0;
231
- }
232
- // Extract preferences from MediaState
233
- extractUserPreferences(state) {
234
- return {
235
- volume: state.volume,
236
- isMuted: state.isMuted,
237
- playbackRate: state.playbackRate,
238
- subtitlesShowing: state.subtitlesShowing,
239
- selectedSubtitleTrack: state.selectedSubtitleTrack?.id || null,
240
- preferredRendition: state.selectedRendition,
241
- autoplay: false, // This would come from config
242
- keyboardShortcuts: true // This would come from config
243
- };
244
- }
245
- // Extract session state from MediaState
246
- extractSessionState(state, mediaId) {
247
- return {
248
- currentTime: state.currentTime,
249
- mediaId,
250
- playbackPosition: {}
251
- };
252
- }
253
- // Clear all persisted data
254
- async clearAll() {
255
- await this.storage.clear();
256
- this.debounceTimeouts.clear();
257
- }
258
- // Private helper methods
259
- isCacheExpired(timestamp) {
260
- if (!timestamp)
261
- return true;
262
- return Date.now() - timestamp > this.config.maxCacheAge;
263
- }
264
- debounce(key, fn) {
265
- const existingTimeout = this.debounceTimeouts.get(key);
266
- if (existingTimeout) {
267
- clearTimeout(existingTimeout);
268
- }
269
- const timeout = setTimeout(async () => {
270
- await fn();
271
- this.debounceTimeouts.delete(key);
272
- }, this.config.debounceMs);
273
- this.debounceTimeouts.set(key, timeout);
274
- }
275
- }
276
- // Hook for using persistence in components
277
- export function useMediaPersistence(config) {
278
- const [manager] = React.useState(() => new MediaPersistenceManager(config));
279
- React.useEffect(() => {
280
- return () => {
281
- // Clear any pending debounced operations
282
- manager.clearAll();
283
- };
284
- }, [manager]);
285
- return manager;
286
- }
287
- // React 19 integration for automatic persistence
288
- export function useAutoMediaPersistence(state, mediaId, config) {
289
- const manager = useMediaPersistence(config);
290
- const [isRehydrated, setIsRehydrated] = React.useState(false);
291
- // Rehydrate on mount
292
- React.useEffect(() => {
293
- let isMounted = true;
294
- const rehydrate = async () => {
295
- try {
296
- const [preferences, session] = await Promise.all([
297
- manager.getUserPreferences(),
298
- manager.getSessionState()
299
- ]);
300
- if (!isMounted)
301
- return;
302
- // Return the rehydrated state for the store to apply
303
- const rehydratedState = {
304
- ...(preferences && {
305
- volume: preferences.volume,
306
- isMuted: preferences.isMuted,
307
- playbackRate: preferences.playbackRate,
308
- subtitlesShowing: preferences.subtitlesShowing
309
- }),
310
- ...(session && mediaId === session.mediaId && {
311
- currentTime: session.currentTime
312
- })
313
- };
314
- // Apply rehydrated state via callback if provided
315
- if (Object.keys(rehydratedState).length > 0) {
316
- // This would be handled by the store
317
- console.log('Rehydrated state:', rehydratedState);
318
- }
319
- setIsRehydrated(true);
320
- }
321
- catch (error) {
322
- console.warn('Failed to rehydrate state:', error);
323
- setIsRehydrated(true);
324
- }
325
- };
326
- rehydrate();
327
- return () => {
328
- isMounted = false;
329
- };
330
- }, [manager, mediaId]);
331
- // Auto-persist changes
332
- React.useEffect(() => {
333
- if (!isRehydrated)
334
- return;
335
- // Save user preferences
336
- const preferences = manager.extractUserPreferences(state);
337
- manager.saveUserPreferences(preferences);
338
- // Save session state
339
- if (mediaId) {
340
- const session = manager.extractSessionState(state, mediaId);
341
- manager.saveSessionState(session);
342
- // Save playback position
343
- if (state.currentTime > 0 && state.duration > 0) {
344
- manager.savePlaybackPosition(mediaId, state.currentTime);
345
- }
346
- }
347
- }, [manager, state, mediaId, isRehydrated]);
348
- return {
349
- manager,
350
- isRehydrated
351
- };
352
- }
353
- // Export default storage adapter
354
- export const defaultStorageAdapter = new LocalStorageAdapter();
355
- // Import React for hooks
356
- import React from "react";