@therealtinhtute/baroiplayer 1.0.6 → 1.0.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (595) hide show
  1. package/dist/index.d.ts +1 -1
  2. package/dist/package.json +1 -1
  3. package/package.json +1 -1
  4. package/dist/context/media.js +0 -2
  5. package/dist/context/media.js.map +0 -1
  6. package/dist/context/media.mjs +0 -15
  7. package/dist/context/media.mjs.map +0 -1
  8. package/dist/context/store.js +0 -2
  9. package/dist/context/store.js.map +0 -1
  10. package/dist/context/store.mjs +0 -5
  11. package/dist/context/store.mjs.map +0 -1
  12. package/dist/context-Af84FynT.js +0 -1179
  13. package/dist/context-Af84FynT.js.map +0 -1
  14. package/dist/context-CwZnPdz0.cjs +0 -23
  15. package/dist/context-CwZnPdz0.cjs.map +0 -1
  16. package/dist/core-events-B5W_j8yU.js +0 -480
  17. package/dist/core-events-B5W_j8yU.js.map +0 -1
  18. package/dist/core-events-CN0-Vhhq.cjs +0 -2
  19. package/dist/core-events-CN0-Vhhq.cjs.map +0 -1
  20. package/dist/core-plugins-Bq9KLany.js +0 -696
  21. package/dist/core-plugins-Bq9KLany.js.map +0 -1
  22. package/dist/core-plugins-CPDSHMiQ.cjs +0 -2
  23. package/dist/core-plugins-CPDSHMiQ.cjs.map +0 -1
  24. package/dist/core.js +0 -37
  25. package/dist/core.js.map +0 -1
  26. package/dist/core.mjs +0 -1217
  27. package/dist/core.mjs.map +0 -1
  28. package/dist/enhanced-components-CXnYiOt6.cjs +0 -2
  29. package/dist/enhanced-components-CXnYiOt6.cjs.map +0 -1
  30. package/dist/enhanced-components-Da0TSvKe.js +0 -1073
  31. package/dist/enhanced-components-Da0TSvKe.js.map +0 -1
  32. package/dist/hooks-BCMilGRf.cjs +0 -4
  33. package/dist/hooks-BCMilGRf.cjs.map +0 -1
  34. package/dist/hooks-BPtHV1ZT.js +0 -2042
  35. package/dist/hooks-BPtHV1ZT.js.map +0 -1
  36. package/dist/index.js.map +0 -1
  37. package/dist/index.mjs.map +0 -1
  38. package/dist/minimal-components-BHJMuaL7.cjs +0 -2
  39. package/dist/minimal-components-BHJMuaL7.cjs.map +0 -1
  40. package/dist/minimal-components-BmqRefl1.js +0 -2002
  41. package/dist/minimal-components-BmqRefl1.js.map +0 -1
  42. package/dist/mona-loading.gif +0 -0
  43. package/dist/performance-monitor--rzKTlbj.js +0 -302
  44. package/dist/performance-monitor--rzKTlbj.js.map +0 -1
  45. package/dist/performance-monitor-cjIvZE2D.cjs +0 -2
  46. package/dist/performance-monitor-cjIvZE2D.cjs.map +0 -1
  47. package/dist/src/adapters/videojs-adapter.d.ts.map +0 -1
  48. package/dist/src/adapters/videojs-adapter.js +0 -350
  49. package/dist/src/assets/mona-loading.gif +0 -0
  50. package/dist/src/components/AnimateLoading.d.ts.map +0 -1
  51. package/dist/src/components/AnimateLoading.js +0 -41
  52. package/dist/src/components/LoadingState.d.ts.map +0 -1
  53. package/dist/src/components/LoadingState.js +0 -111
  54. package/dist/src/components/accessibility/keyboard-help-overlay.d.ts.map +0 -1
  55. package/dist/src/components/accessibility/keyboard-help-overlay.js +0 -90
  56. package/dist/src/components/audio-player.d.ts.map +0 -1
  57. package/dist/src/components/audio-player.js +0 -31
  58. package/dist/src/components/basic/index.d.ts.map +0 -1
  59. package/dist/src/components/basic/index.js +0 -29
  60. package/dist/src/components/enhanced/advanced-features.d.ts.map +0 -1
  61. package/dist/src/components/enhanced/advanced-features.js +0 -64
  62. package/dist/src/components/enhanced/debug-panel.d.ts.map +0 -1
  63. package/dist/src/components/enhanced/debug-panel.js +0 -94
  64. package/dist/src/components/enhanced/enhanced-controls.d.ts.map +0 -1
  65. package/dist/src/components/enhanced/enhanced-controls.js +0 -233
  66. package/dist/src/components/enhanced/enhanced-media-player.d.ts.map +0 -1
  67. package/dist/src/components/enhanced/enhanced-media-player.js +0 -316
  68. package/dist/src/components/enhanced/error-handling.d.ts.map +0 -1
  69. package/dist/src/components/enhanced/error-handling.js +0 -153
  70. package/dist/src/components/enhanced/index.d.ts.map +0 -1
  71. package/dist/src/components/enhanced/index.js +0 -10
  72. package/dist/src/components/enhanced/media-player-enhanced.d.ts.map +0 -1
  73. package/dist/src/components/enhanced/media-player-enhanced.js +0 -250
  74. package/dist/src/components/examples/basic-video-player.d.ts.map +0 -1
  75. package/dist/src/components/examples/basic-video-player.js +0 -16
  76. package/dist/src/components/examples/custom-controls-example.d.ts.map +0 -1
  77. package/dist/src/components/examples/custom-controls-example.js +0 -12
  78. package/dist/src/components/examples/enhanced-controls-example.d.ts.map +0 -1
  79. package/dist/src/components/examples/enhanced-controls-example.js +0 -18
  80. package/dist/src/components/examples/enhanced-media-player-example.d.ts.map +0 -1
  81. package/dist/src/components/examples/enhanced-media-player-example.js +0 -13
  82. package/dist/src/components/examples/loading-states-demo.d.ts.map +0 -1
  83. package/dist/src/components/examples/loading-states-demo.js +0 -41
  84. package/dist/src/components/examples/react-19-demo.d.ts.map +0 -1
  85. package/dist/src/components/examples/react-19-demo.js +0 -104
  86. package/dist/src/components/examples/volume-orientation-demo.d.ts.map +0 -1
  87. package/dist/src/components/examples/volume-orientation-demo.js +0 -31
  88. package/dist/src/components/icon-demo.d.ts.map +0 -1
  89. package/dist/src/components/icon-demo.js +0 -16
  90. package/dist/src/components/icons/index.d.ts.map +0 -1
  91. package/dist/src/components/icons/index.js +0 -59
  92. package/dist/src/components/icons/svg-icons/ArrowLeftIcon.d.ts.map +0 -1
  93. package/dist/src/components/icons/svg-icons/ArrowLeftIcon.js +0 -3
  94. package/dist/src/components/icons/svg-icons/ArrowRightIcon.d.ts.map +0 -1
  95. package/dist/src/components/icons/svg-icons/ArrowRightIcon.js +0 -3
  96. package/dist/src/components/icons/svg-icons/AudioIcon.d.ts.map +0 -1
  97. package/dist/src/components/icons/svg-icons/AudioIcon.js +0 -4
  98. package/dist/src/components/icons/svg-icons/BackwardIcon.d.ts.map +0 -1
  99. package/dist/src/components/icons/svg-icons/BackwardIcon.js +0 -3
  100. package/dist/src/components/icons/svg-icons/CameraIcon.d.ts.map +0 -1
  101. package/dist/src/components/icons/svg-icons/CameraIcon.js +0 -4
  102. package/dist/src/components/icons/svg-icons/CheckIcon.d.ts.map +0 -1
  103. package/dist/src/components/icons/svg-icons/CheckIcon.js +0 -4
  104. package/dist/src/components/icons/svg-icons/EnablePiPIcon.d.ts.map +0 -1
  105. package/dist/src/components/icons/svg-icons/EnablePiPIcon.js +0 -5
  106. package/dist/src/components/icons/svg-icons/ForwardIcon.d.ts.map +0 -1
  107. package/dist/src/components/icons/svg-icons/ForwardIcon.js +0 -3
  108. package/dist/src/components/icons/svg-icons/FullscreenEnterIcon.d.ts.map +0 -1
  109. package/dist/src/components/icons/svg-icons/FullscreenEnterIcon.js +0 -3
  110. package/dist/src/components/icons/svg-icons/FullscreenExitIcon.d.ts.map +0 -1
  111. package/dist/src/components/icons/svg-icons/FullscreenExitIcon.js +0 -3
  112. package/dist/src/components/icons/svg-icons/LoadingIcon.d.ts.map +0 -1
  113. package/dist/src/components/icons/svg-icons/LoadingIcon.js +0 -3
  114. package/dist/src/components/icons/svg-icons/PauseIcon.d.ts.map +0 -1
  115. package/dist/src/components/icons/svg-icons/PauseIcon.js +0 -3
  116. package/dist/src/components/icons/svg-icons/PlayIcon.d.ts.map +0 -1
  117. package/dist/src/components/icons/svg-icons/PlayIcon.js +0 -3
  118. package/dist/src/components/icons/svg-icons/PlaybackSpeedIcon.d.ts.map +0 -1
  119. package/dist/src/components/icons/svg-icons/PlaybackSpeedIcon.js +0 -3
  120. package/dist/src/components/icons/svg-icons/QualityIcon.d.ts.map +0 -1
  121. package/dist/src/components/icons/svg-icons/QualityIcon.js +0 -3
  122. package/dist/src/components/icons/svg-icons/SettingsIcon.d.ts.map +0 -1
  123. package/dist/src/components/icons/svg-icons/SettingsIcon.js +0 -3
  124. package/dist/src/components/icons/svg-icons/SliderIcon.d.ts.map +0 -1
  125. package/dist/src/components/icons/svg-icons/SliderIcon.js +0 -3
  126. package/dist/src/components/icons/svg-icons/SubtitleIcon.d.ts.map +0 -1
  127. package/dist/src/components/icons/svg-icons/SubtitleIcon.js +0 -3
  128. package/dist/src/components/icons/svg-icons/SubtitleOffIcon.d.ts.map +0 -1
  129. package/dist/src/components/icons/svg-icons/SubtitleOffIcon.js +0 -3
  130. package/dist/src/components/icons/svg-icons/UnPiPIcon.d.ts.map +0 -1
  131. package/dist/src/components/icons/svg-icons/UnPiPIcon.js +0 -5
  132. package/dist/src/components/icons/svg-icons/VolumeMutedIcon.d.ts.map +0 -1
  133. package/dist/src/components/icons/svg-icons/VolumeMutedIcon.js +0 -3
  134. package/dist/src/components/icons/svg-icons/VolumeOneIcon.d.ts.map +0 -1
  135. package/dist/src/components/icons/svg-icons/VolumeOneIcon.js +0 -3
  136. package/dist/src/components/icons/svg-icons/VolumeThreeIcon.d.ts.map +0 -1
  137. package/dist/src/components/icons/svg-icons/VolumeThreeIcon.js +0 -3
  138. package/dist/src/components/icons/svg-icons/VolumeTwoIcon.d.ts.map +0 -1
  139. package/dist/src/components/icons/svg-icons/VolumeTwoIcon.js +0 -3
  140. package/dist/src/components/legacy.d.ts.map +0 -1
  141. package/dist/src/components/legacy.js +0 -52
  142. package/dist/src/components/media-metadata-display.d.ts.map +0 -1
  143. package/dist/src/components/media-metadata-display.js +0 -20
  144. package/dist/src/components/media-player-audio.d.ts.map +0 -1
  145. package/dist/src/components/media-player-audio.js +0 -18
  146. package/dist/src/components/media-player-controls.d.ts.map +0 -1
  147. package/dist/src/components/media-player-controls.js +0 -150
  148. package/dist/src/components/media-player-error.d.ts.map +0 -1
  149. package/dist/src/components/media-player-error.js +0 -85
  150. package/dist/src/components/media-player-fullscreen.d.ts.map +0 -1
  151. package/dist/src/components/media-player-fullscreen.js +0 -68
  152. package/dist/src/components/media-player-hls.d.ts.map +0 -1
  153. package/dist/src/components/media-player-hls.js +0 -20
  154. package/dist/src/components/media-player-loading.d.ts.map +0 -1
  155. package/dist/src/components/media-player-loading.js +0 -53
  156. package/dist/src/components/media-player-play.d.ts.map +0 -1
  157. package/dist/src/components/media-player-play.js +0 -44
  158. package/dist/src/components/media-player-root.d.ts.map +0 -1
  159. package/dist/src/components/media-player-root.js +0 -243
  160. package/dist/src/components/media-player-seek.d.ts.map +0 -1
  161. package/dist/src/components/media-player-seek.js +0 -92
  162. package/dist/src/components/media-player-time.d.ts.map +0 -1
  163. package/dist/src/components/media-player-time.js +0 -57
  164. package/dist/src/components/media-player-tooltip.d.ts.map +0 -1
  165. package/dist/src/components/media-player-tooltip.js +0 -14
  166. package/dist/src/components/media-player-video.d.ts.map +0 -1
  167. package/dist/src/components/media-player-video.js +0 -18
  168. package/dist/src/components/media-player-volume.d.ts.map +0 -1
  169. package/dist/src/components/media-player-volume.js +0 -88
  170. package/dist/src/components/media-player.d.ts.map +0 -1
  171. package/dist/src/components/media-player.js +0 -67
  172. package/dist/src/components/media-suspense.d.ts.map +0 -1
  173. package/dist/src/components/media-suspense.js +0 -173
  174. package/dist/src/components/player-settings-form.d.ts.map +0 -1
  175. package/dist/src/components/player-settings-form.js +0 -46
  176. package/dist/src/components/react-player-wrapper.d.ts.map +0 -1
  177. package/dist/src/components/react-player-wrapper.js +0 -163
  178. package/dist/src/components/simple-video-player.d.ts.map +0 -1
  179. package/dist/src/components/simple-video-player.js +0 -41
  180. package/dist/src/components/ui/enhanced-seek-bar.d.ts.map +0 -1
  181. package/dist/src/components/ui/enhanced-seek-bar.js +0 -112
  182. package/dist/src/components/ui/fullscreen-button.d.ts.map +0 -1
  183. package/dist/src/components/ui/fullscreen-button.js +0 -21
  184. package/dist/src/components/ui/media-resource-preloader.d.ts.map +0 -1
  185. package/dist/src/components/ui/media-resource-preloader.js +0 -295
  186. package/dist/src/components/ui/play-button.d.ts.map +0 -1
  187. package/dist/src/components/ui/play-button.js +0 -26
  188. package/dist/src/components/ui/seek-bar.d.ts.map +0 -1
  189. package/dist/src/components/ui/seek-bar.js +0 -54
  190. package/dist/src/components/ui/time-display.d.ts.map +0 -1
  191. package/dist/src/components/ui/time-display.js +0 -18
  192. package/dist/src/components/ui/volume-control.d.ts.map +0 -1
  193. package/dist/src/components/ui/volume-control.js +0 -71
  194. package/dist/src/components/unified/base-media-player.d.ts.map +0 -1
  195. package/dist/src/components/unified/base-media-player.js +0 -104
  196. package/dist/src/components/unified/media-player.d.ts.map +0 -1
  197. package/dist/src/components/unified/media-player.js +0 -41
  198. package/dist/src/components/variants/minimal/AccessibleMinimalPlayer.d.ts.map +0 -1
  199. package/dist/src/components/variants/minimal/AccessibleMinimalPlayer.js +0 -322
  200. package/dist/src/components/variants/minimal/EnhancedMinimalMediaPlayer.d.ts.map +0 -1
  201. package/dist/src/components/variants/minimal/EnhancedMinimalMediaPlayer.js +0 -280
  202. package/dist/src/components/variants/minimal/MinimalControls.d.ts.map +0 -1
  203. package/dist/src/components/variants/minimal/MinimalControls.js +0 -19
  204. package/dist/src/components/variants/minimal/MinimalLoading.d.ts.map +0 -1
  205. package/dist/src/components/variants/minimal/MinimalLoading.js +0 -6
  206. package/dist/src/components/variants/minimal/MinimalMediaPlayer.d.ts.map +0 -1
  207. package/dist/src/components/variants/minimal/MinimalMediaPlayer.js +0 -135
  208. package/dist/src/components/variants/minimal/MinimalOverlay.d.ts.map +0 -1
  209. package/dist/src/components/variants/minimal/MinimalOverlay.js +0 -15
  210. package/dist/src/components/variants/minimal/MinimalPlayButton.d.ts.map +0 -1
  211. package/dist/src/components/variants/minimal/MinimalPlayButton.js +0 -29
  212. package/dist/src/components/variants/minimal/MinimalSeekBar.d.ts.map +0 -1
  213. package/dist/src/components/variants/minimal/MinimalSeekBar.js +0 -73
  214. package/dist/src/components/variants/minimal/MinimalVolumeControl.d.ts.map +0 -1
  215. package/dist/src/components/variants/minimal/MinimalVolumeControl.js +0 -29
  216. package/dist/src/components/variants/minimal/SimpleMinimalPlayer.d.ts.map +0 -1
  217. package/dist/src/components/variants/minimal/SimpleMinimalPlayer.js +0 -51
  218. package/dist/src/components/variants/minimal/components/CenterPlayButton.d.ts.map +0 -1
  219. package/dist/src/components/variants/minimal/components/CenterPlayButton.js +0 -8
  220. package/dist/src/components/variants/minimal/components/ControlBar.d.ts.map +0 -1
  221. package/dist/src/components/variants/minimal/components/ControlBar.js +0 -10
  222. package/dist/src/components/variants/minimal/components/EnhancedSettingsMenu.d.ts.map +0 -1
  223. package/dist/src/components/variants/minimal/components/EnhancedSettingsMenu.js +0 -68
  224. package/dist/src/components/variants/minimal/components/PlaybackControls.d.ts.map +0 -1
  225. package/dist/src/components/variants/minimal/components/PlaybackControls.js +0 -9
  226. package/dist/src/components/variants/minimal/components/RightControls.d.ts.map +0 -1
  227. package/dist/src/components/variants/minimal/components/RightControls.js +0 -40
  228. package/dist/src/components/variants/minimal/components/SeekBar.d.ts.map +0 -1
  229. package/dist/src/components/variants/minimal/components/SeekBar.js +0 -43
  230. package/dist/src/components/variants/minimal/components/SettingsDropdown.d.ts.map +0 -1
  231. package/dist/src/components/variants/minimal/components/SettingsDropdown.js +0 -18
  232. package/dist/src/components/variants/minimal/components/SubtitleDisplay.d.ts.map +0 -1
  233. package/dist/src/components/variants/minimal/components/SubtitleDisplay.js +0 -6
  234. package/dist/src/components/variants/minimal/components/TimeDisplay.d.ts.map +0 -1
  235. package/dist/src/components/variants/minimal/components/TimeDisplay.js +0 -5
  236. package/dist/src/components/variants/minimal/components/VideoElement.d.ts.map +0 -1
  237. package/dist/src/components/variants/minimal/components/VideoElement.js +0 -4
  238. package/dist/src/components/variants/minimal/components/VolumeControl.d.ts.map +0 -1
  239. package/dist/src/components/variants/minimal/components/VolumeControl.js +0 -99
  240. package/dist/src/components/variants/minimal/index.d.ts.map +0 -1
  241. package/dist/src/components/variants/minimal/index.js +0 -8
  242. package/dist/src/components/video-player.d.ts.map +0 -1
  243. package/dist/src/components/video-player.js +0 -38
  244. package/dist/src/context/error-handling.d.ts.map +0 -1
  245. package/dist/src/context/error-handling.js +0 -300
  246. package/dist/src/context/media-context.d.ts.map +0 -1
  247. package/dist/src/context/media-context.js +0 -121
  248. package/dist/src/context/media-provider.d.ts.map +0 -1
  249. package/dist/src/context/media-provider.js +0 -164
  250. package/dist/src/context/media-store.d.ts.map +0 -1
  251. package/dist/src/context/media-store.js +0 -273
  252. package/dist/src/context/persistence.d.ts.map +0 -1
  253. package/dist/src/context/persistence.js +0 -356
  254. package/dist/src/core/events/event-system.d.ts.map +0 -1
  255. package/dist/src/core/events/event-system.js +0 -288
  256. package/dist/src/core/events/hooks.d.ts.map +0 -1
  257. package/dist/src/core/events/hooks.js +0 -198
  258. package/dist/src/core/events/index.d.ts.map +0 -1
  259. package/dist/src/core/events/index.js +0 -7
  260. package/dist/src/core/events/middleware.d.ts.map +0 -1
  261. package/dist/src/core/events/middleware.js +0 -219
  262. package/dist/src/core/index.d.ts.map +0 -1
  263. package/dist/src/core/index.js +0 -15
  264. package/dist/src/core/optimization/bundle-optimizer.d.ts.map +0 -1
  265. package/dist/src/core/optimization/bundle-optimizer.js +0 -217
  266. package/dist/src/core/performance/cicd.d.ts.map +0 -1
  267. package/dist/src/core/performance/cicd.js +0 -83
  268. package/dist/src/core/performance/index.d.ts.map +0 -1
  269. package/dist/src/core/performance/index.js +0 -14
  270. package/dist/src/core/performance/media-loading-optimizer.d.ts.map +0 -1
  271. package/dist/src/core/performance/media-loading-optimizer.js +0 -404
  272. package/dist/src/core/performance/performance-budgets.d.ts.map +0 -1
  273. package/dist/src/core/performance/performance-budgets.js +0 -326
  274. package/dist/src/core/performance/performance-monitor.d.ts.map +0 -1
  275. package/dist/src/core/performance/performance-monitor.js +0 -297
  276. package/dist/src/core/performance/performance-testing.d.ts.map +0 -1
  277. package/dist/src/core/performance/performance-testing.js +0 -314
  278. package/dist/src/core/plugins/base-plugin.d.ts.map +0 -1
  279. package/dist/src/core/plugins/base-plugin.js +0 -151
  280. package/dist/src/core/plugins/enhanced-plugin-system.d.ts.map +0 -1
  281. package/dist/src/core/plugins/enhanced-plugin-system.js +0 -305
  282. package/dist/src/core/plugins/examples/analytics-plugin.d.ts.map +0 -1
  283. package/dist/src/core/plugins/examples/analytics-plugin.js +0 -191
  284. package/dist/src/core/plugins/index.d.ts.map +0 -1
  285. package/dist/src/core/plugins/index.js +0 -9
  286. package/dist/src/core/plugins/registry.d.ts.map +0 -1
  287. package/dist/src/core/plugins/registry.js +0 -261
  288. package/dist/src/core/plugins/types.d.ts.map +0 -1
  289. package/dist/src/core/plugins/types.js +0 -31
  290. package/dist/src/core/plugins/utils.d.ts.map +0 -1
  291. package/dist/src/core/plugins/utils.js +0 -274
  292. package/dist/src/core/progressive-loading.d.ts.map +0 -1
  293. package/dist/src/core/progressive-loading.js +0 -239
  294. package/dist/src/core/providers/enhanced-hls-provider.d.ts.map +0 -1
  295. package/dist/src/core/providers/enhanced-hls-provider.js +0 -273
  296. package/dist/src/core/providers/service-provider.d.ts.map +0 -1
  297. package/dist/src/core/providers/service-provider.js +0 -105
  298. package/dist/src/core/utils.d.ts.map +0 -1
  299. package/dist/src/core/utils.js +0 -21
  300. package/dist/src/features/media-session/media-session-manager.d.ts.map +0 -1
  301. package/dist/src/features/media-session/media-session-manager.js +0 -331
  302. package/dist/src/features/picture-in-picture/pip-manager.d.ts.map +0 -1
  303. package/dist/src/features/picture-in-picture/pip-manager.js +0 -353
  304. package/dist/src/features/playlist/playlist-manager.d.ts.map +0 -1
  305. package/dist/src/features/playlist/playlist-manager.js +0 -475
  306. package/dist/src/features/subtitles/subtitle-manager.d.ts.map +0 -1
  307. package/dist/src/features/subtitles/subtitle-manager.js +0 -335
  308. package/dist/src/features/subtitles/subtitle-parser.d.ts.map +0 -1
  309. package/dist/src/features/subtitles/subtitle-parser.js +0 -217
  310. package/dist/src/features/thumbnails/thumbnail-generator.d.ts.map +0 -1
  311. package/dist/src/features/thumbnails/thumbnail-generator.js +0 -388
  312. package/dist/src/hooks/accessibility/index.d.ts.map +0 -1
  313. package/dist/src/hooks/accessibility/index.js +0 -4
  314. package/dist/src/hooks/accessibility/use-accessibility-preferences.d.ts.map +0 -1
  315. package/dist/src/hooks/accessibility/use-accessibility-preferences.js +0 -156
  316. package/dist/src/hooks/accessibility/use-focus-management.d.ts.map +0 -1
  317. package/dist/src/hooks/accessibility/use-focus-management.js +0 -142
  318. package/dist/src/hooks/accessibility/use-keyboard-shortcuts.d.ts.map +0 -1
  319. package/dist/src/hooks/accessibility/use-keyboard-shortcuts.js +0 -101
  320. package/dist/src/hooks/accessibility/use-screen-reader.d.ts.map +0 -1
  321. package/dist/src/hooks/accessibility/use-screen-reader.js +0 -148
  322. package/dist/src/hooks/core/index.d.ts.map +0 -1
  323. package/dist/src/hooks/core/index.js +0 -19
  324. package/dist/src/hooks/legacy.d.ts.map +0 -1
  325. package/dist/src/hooks/legacy.js +0 -17
  326. package/dist/src/hooks/use-enhanced-media-player.d.ts.map +0 -1
  327. package/dist/src/hooks/use-enhanced-media-player.js +0 -395
  328. package/dist/src/hooks/use-intelligent-preloading.d.ts.map +0 -1
  329. package/dist/src/hooks/use-intelligent-preloading.js +0 -258
  330. package/dist/src/hooks/use-keyboard-controls.d.ts.map +0 -1
  331. package/dist/src/hooks/use-keyboard-controls.js +0 -83
  332. package/dist/src/hooks/use-media-actions.d.ts.map +0 -1
  333. package/dist/src/hooks/use-media-actions.js +0 -121
  334. package/dist/src/hooks/use-media-metadata.d.ts.map +0 -1
  335. package/dist/src/hooks/use-media-metadata.js +0 -74
  336. package/dist/src/hooks/use-media-optimistic.d.ts.map +0 -1
  337. package/dist/src/hooks/use-media-optimistic.js +0 -205
  338. package/dist/src/hooks/use-media-player.d.ts.map +0 -1
  339. package/dist/src/hooks/use-media-player.js +0 -251
  340. package/dist/src/hooks/use-media-state.d.ts.map +0 -1
  341. package/dist/src/hooks/use-media-state.js +0 -162
  342. package/dist/src/hooks/use-memory-optimization.d.ts.map +0 -1
  343. package/dist/src/hooks/use-memory-optimization.js +0 -288
  344. package/dist/src/hooks/use-optimistic-controls.d.ts.map +0 -1
  345. package/dist/src/hooks/use-optimistic-controls.js +0 -60
  346. package/dist/src/hooks/use-optimized-media.d.ts.map +0 -1
  347. package/dist/src/hooks/use-optimized-media.js +0 -211
  348. package/dist/src/hooks/use-touch-gestures.d.ts.map +0 -1
  349. package/dist/src/hooks/use-touch-gestures.js +0 -289
  350. package/dist/src/hooks/useEnhancedSubtitles.d.ts.map +0 -1
  351. package/dist/src/hooks/useEnhancedSubtitles.js +0 -205
  352. package/dist/src/hooks/useKeyboardShortcuts.d.ts.map +0 -1
  353. package/dist/src/hooks/useKeyboardShortcuts.js +0 -59
  354. package/dist/src/hooks/useMediaControls.d.ts.map +0 -1
  355. package/dist/src/hooks/useMediaControls.js +0 -44
  356. package/dist/src/hooks/useScreenshot.d.ts.map +0 -1
  357. package/dist/src/hooks/useScreenshot.js +0 -56
  358. package/dist/src/hooks/useSubtitles.d.ts.map +0 -1
  359. package/dist/src/hooks/useSubtitles.js +0 -73
  360. package/dist/src/hooks/useVideoPlayer.d.ts.map +0 -1
  361. package/dist/src/hooks/useVideoPlayer.js +0 -184
  362. package/dist/src/icons/components/FullscreenIcon.d.ts.map +0 -1
  363. package/dist/src/icons/components/FullscreenIcon.js +0 -11
  364. package/dist/src/icons/components/SettingsIcon.d.ts.map +0 -1
  365. package/dist/src/icons/components/SettingsIcon.js +0 -11
  366. package/dist/src/icons/components/animated/LoadingIcon.d.ts.map +0 -1
  367. package/dist/src/icons/components/animated/LoadingIcon.js +0 -11
  368. package/dist/src/icons/components/animated/PlayPauseIcon.d.ts.map +0 -1
  369. package/dist/src/icons/components/animated/PlayPauseIcon.js +0 -9
  370. package/dist/src/icons/components/media/PauseIcon.d.ts.map +0 -1
  371. package/dist/src/icons/components/media/PauseIcon.js +0 -12
  372. package/dist/src/icons/components/media/PlayIcon.d.ts.map +0 -1
  373. package/dist/src/icons/components/media/PlayIcon.js +0 -12
  374. package/dist/src/icons/components/volume/VolumeIcon.d.ts.map +0 -1
  375. package/dist/src/icons/components/volume/VolumeIcon.js +0 -11
  376. package/dist/src/icons/components/volume/VolumeOffIcon.d.ts.map +0 -1
  377. package/dist/src/icons/components/volume/VolumeOffIcon.js +0 -11
  378. package/dist/src/icons/index.d.ts.map +0 -1
  379. package/dist/src/icons/index.js +0 -45
  380. package/dist/src/icons/provider.d.ts.map +0 -1
  381. package/dist/src/icons/provider.js +0 -37
  382. package/dist/src/icons/types.d.ts.map +0 -1
  383. package/dist/src/icons/types.js +0 -1
  384. package/dist/src/index-enhanced.d.ts.map +0 -1
  385. package/dist/src/index-enhanced.js +0 -16
  386. package/dist/src/index-legacy.d.ts.map +0 -1
  387. package/dist/src/index-legacy.js +0 -97
  388. package/dist/src/index.d.ts.map +0 -1
  389. package/dist/src/index.js +0 -90
  390. package/dist/src/index.minimal.d.ts.map +0 -1
  391. package/dist/src/index.minimal.js +0 -3
  392. package/dist/src/lib/deprecation.d.ts.map +0 -1
  393. package/dist/src/lib/deprecation.js +0 -31
  394. package/dist/src/lib/format-time.d.ts.map +0 -1
  395. package/dist/src/lib/format-time.js +0 -32
  396. package/dist/src/lib/index.d.ts.map +0 -1
  397. package/dist/src/lib/index.js +0 -3
  398. package/dist/src/lib/utils.d.ts.map +0 -1
  399. package/dist/src/lib/utils.js +0 -5
  400. package/dist/src/test/setup.d.ts.map +0 -1
  401. package/dist/src/test/setup.js +0 -65
  402. package/dist/src/types/events.d.ts.map +0 -1
  403. package/dist/src/types/events.js +0 -2
  404. package/dist/src/types/formats.d.ts.map +0 -1
  405. package/dist/src/types/formats.js +0 -63
  406. package/dist/src/types/index.d.ts.map +0 -1
  407. package/dist/src/types/index.js +0 -4
  408. package/dist/utils-Db13763z.cjs +0 -9
  409. package/dist/utils-Db13763z.cjs.map +0 -1
  410. package/dist/utils-nTO4AnHo.js +0 -2809
  411. package/dist/utils-nTO4AnHo.js.map +0 -1
  412. package/dist/utils.js +0 -2
  413. package/dist/utils.js.map +0 -1
  414. package/dist/utils.mjs +0 -7
  415. package/dist/utils.mjs.map +0 -1
  416. package/src/adapters/videojs-adapter.js +0 -350
  417. package/src/components/AnimateLoading.js +0 -41
  418. package/src/components/LoadingState.js +0 -111
  419. package/src/components/accessibility/keyboard-help-overlay.js +0 -90
  420. package/src/components/audio-player.js +0 -31
  421. package/src/components/basic/index.js +0 -29
  422. package/src/components/enhanced/advanced-features.js +0 -64
  423. package/src/components/enhanced/debug-panel.js +0 -94
  424. package/src/components/enhanced/enhanced-controls.js +0 -233
  425. package/src/components/enhanced/enhanced-media-player.js +0 -316
  426. package/src/components/enhanced/error-handling.js +0 -153
  427. package/src/components/enhanced/index.js +0 -10
  428. package/src/components/enhanced/media-player-enhanced.js +0 -250
  429. package/src/components/examples/basic-video-player.js +0 -16
  430. package/src/components/examples/custom-controls-example.js +0 -12
  431. package/src/components/examples/enhanced-controls-example.js +0 -18
  432. package/src/components/examples/enhanced-media-player-example.js +0 -13
  433. package/src/components/examples/loading-states-demo.js +0 -41
  434. package/src/components/examples/react-19-demo.js +0 -104
  435. package/src/components/examples/volume-orientation-demo.js +0 -31
  436. package/src/components/icon-demo.js +0 -16
  437. package/src/components/icons/index.js +0 -59
  438. package/src/components/icons/svg-icons/ArrowLeftIcon.js +0 -3
  439. package/src/components/icons/svg-icons/ArrowRightIcon.js +0 -3
  440. package/src/components/icons/svg-icons/AudioIcon.js +0 -4
  441. package/src/components/icons/svg-icons/BackwardIcon.js +0 -3
  442. package/src/components/icons/svg-icons/CameraIcon.js +0 -4
  443. package/src/components/icons/svg-icons/CheckIcon.js +0 -4
  444. package/src/components/icons/svg-icons/EnablePiPIcon.js +0 -5
  445. package/src/components/icons/svg-icons/ForwardIcon.js +0 -3
  446. package/src/components/icons/svg-icons/FullscreenEnterIcon.js +0 -3
  447. package/src/components/icons/svg-icons/FullscreenExitIcon.js +0 -3
  448. package/src/components/icons/svg-icons/LoadingIcon.js +0 -3
  449. package/src/components/icons/svg-icons/PauseIcon.js +0 -3
  450. package/src/components/icons/svg-icons/PlayIcon.js +0 -3
  451. package/src/components/icons/svg-icons/PlaybackSpeedIcon.js +0 -3
  452. package/src/components/icons/svg-icons/QualityIcon.js +0 -3
  453. package/src/components/icons/svg-icons/SettingsIcon.js +0 -3
  454. package/src/components/icons/svg-icons/SliderIcon.js +0 -3
  455. package/src/components/icons/svg-icons/SubtitleIcon.js +0 -3
  456. package/src/components/icons/svg-icons/SubtitleOffIcon.js +0 -3
  457. package/src/components/icons/svg-icons/UnPiPIcon.js +0 -5
  458. package/src/components/icons/svg-icons/VolumeMutedIcon.js +0 -3
  459. package/src/components/icons/svg-icons/VolumeOneIcon.js +0 -3
  460. package/src/components/icons/svg-icons/VolumeThreeIcon.js +0 -3
  461. package/src/components/icons/svg-icons/VolumeTwoIcon.js +0 -3
  462. package/src/components/legacy.js +0 -52
  463. package/src/components/media-metadata-display.js +0 -20
  464. package/src/components/media-player-audio.js +0 -18
  465. package/src/components/media-player-controls.js +0 -150
  466. package/src/components/media-player-error.js +0 -85
  467. package/src/components/media-player-fullscreen.js +0 -68
  468. package/src/components/media-player-hls.js +0 -20
  469. package/src/components/media-player-loading.js +0 -53
  470. package/src/components/media-player-play.js +0 -44
  471. package/src/components/media-player-root.js +0 -243
  472. package/src/components/media-player-seek.js +0 -92
  473. package/src/components/media-player-time.js +0 -57
  474. package/src/components/media-player-tooltip.js +0 -14
  475. package/src/components/media-player-video.js +0 -18
  476. package/src/components/media-player-volume.js +0 -88
  477. package/src/components/media-player.js +0 -67
  478. package/src/components/media-suspense.js +0 -173
  479. package/src/components/player-settings-form.js +0 -46
  480. package/src/components/react-player-wrapper.js +0 -163
  481. package/src/components/simple-video-player.js +0 -41
  482. package/src/components/ui/enhanced-seek-bar.js +0 -112
  483. package/src/components/ui/fullscreen-button.js +0 -21
  484. package/src/components/ui/media-resource-preloader.js +0 -295
  485. package/src/components/ui/play-button.js +0 -26
  486. package/src/components/ui/seek-bar.js +0 -54
  487. package/src/components/ui/time-display.js +0 -18
  488. package/src/components/ui/volume-control.js +0 -71
  489. package/src/components/unified/base-media-player.js +0 -104
  490. package/src/components/unified/media-player.js +0 -41
  491. package/src/components/variants/minimal/AccessibleMinimalPlayer.js +0 -322
  492. package/src/components/variants/minimal/EnhancedMinimalMediaPlayer.js +0 -280
  493. package/src/components/variants/minimal/MinimalControls.js +0 -19
  494. package/src/components/variants/minimal/MinimalLoading.js +0 -6
  495. package/src/components/variants/minimal/MinimalMediaPlayer.js +0 -135
  496. package/src/components/variants/minimal/MinimalOverlay.js +0 -15
  497. package/src/components/variants/minimal/MinimalPlayButton.js +0 -29
  498. package/src/components/variants/minimal/MinimalSeekBar.js +0 -73
  499. package/src/components/variants/minimal/MinimalVolumeControl.js +0 -29
  500. package/src/components/variants/minimal/SimpleMinimalPlayer.js +0 -51
  501. package/src/components/variants/minimal/components/CenterPlayButton.js +0 -8
  502. package/src/components/variants/minimal/components/ControlBar.js +0 -10
  503. package/src/components/variants/minimal/components/EnhancedSettingsMenu.js +0 -68
  504. package/src/components/variants/minimal/components/PlaybackControls.js +0 -9
  505. package/src/components/variants/minimal/components/RightControls.js +0 -40
  506. package/src/components/variants/minimal/components/SeekBar.js +0 -43
  507. package/src/components/variants/minimal/components/SettingsDropdown.js +0 -18
  508. package/src/components/variants/minimal/components/SubtitleDisplay.js +0 -6
  509. package/src/components/variants/minimal/components/TimeDisplay.js +0 -5
  510. package/src/components/variants/minimal/components/VideoElement.js +0 -4
  511. package/src/components/variants/minimal/components/VolumeControl.js +0 -99
  512. package/src/components/variants/minimal/index.js +0 -8
  513. package/src/components/video-player.js +0 -38
  514. package/src/context/error-handling.js +0 -300
  515. package/src/context/media-context.js +0 -121
  516. package/src/context/media-provider.js +0 -164
  517. package/src/context/media-store.js +0 -273
  518. package/src/context/persistence.js +0 -356
  519. package/src/core/events/event-system.js +0 -288
  520. package/src/core/events/hooks.js +0 -198
  521. package/src/core/events/index.js +0 -7
  522. package/src/core/events/middleware.js +0 -219
  523. package/src/core/index.js +0 -15
  524. package/src/core/optimization/bundle-optimizer.js +0 -217
  525. package/src/core/performance/cicd.js +0 -83
  526. package/src/core/performance/index.js +0 -14
  527. package/src/core/performance/media-loading-optimizer.js +0 -404
  528. package/src/core/performance/performance-budgets.js +0 -326
  529. package/src/core/performance/performance-monitor.js +0 -297
  530. package/src/core/performance/performance-testing.js +0 -314
  531. package/src/core/plugins/base-plugin.js +0 -151
  532. package/src/core/plugins/enhanced-plugin-system.js +0 -305
  533. package/src/core/plugins/examples/analytics-plugin.js +0 -191
  534. package/src/core/plugins/index.js +0 -9
  535. package/src/core/plugins/registry.js +0 -261
  536. package/src/core/plugins/types.js +0 -31
  537. package/src/core/plugins/utils.js +0 -274
  538. package/src/core/progressive-loading.js +0 -239
  539. package/src/core/providers/enhanced-hls-provider.js +0 -273
  540. package/src/core/providers/service-provider.js +0 -105
  541. package/src/core/utils.js +0 -21
  542. package/src/features/media-session/media-session-manager.js +0 -331
  543. package/src/features/picture-in-picture/pip-manager.js +0 -353
  544. package/src/features/playlist/playlist-manager.js +0 -475
  545. package/src/features/subtitles/subtitle-manager.js +0 -335
  546. package/src/features/subtitles/subtitle-parser.js +0 -217
  547. package/src/features/thumbnails/thumbnail-generator.js +0 -388
  548. package/src/hooks/accessibility/index.js +0 -4
  549. package/src/hooks/accessibility/use-accessibility-preferences.js +0 -156
  550. package/src/hooks/accessibility/use-focus-management.js +0 -142
  551. package/src/hooks/accessibility/use-keyboard-shortcuts.js +0 -101
  552. package/src/hooks/accessibility/use-screen-reader.js +0 -148
  553. package/src/hooks/core/index.js +0 -19
  554. package/src/hooks/legacy.js +0 -17
  555. package/src/hooks/use-enhanced-media-player.js +0 -395
  556. package/src/hooks/use-intelligent-preloading.js +0 -258
  557. package/src/hooks/use-keyboard-controls.js +0 -83
  558. package/src/hooks/use-media-actions.js +0 -121
  559. package/src/hooks/use-media-metadata.js +0 -74
  560. package/src/hooks/use-media-optimistic.js +0 -205
  561. package/src/hooks/use-media-player.js +0 -251
  562. package/src/hooks/use-media-state.js +0 -162
  563. package/src/hooks/use-memory-optimization.js +0 -288
  564. package/src/hooks/use-optimistic-controls.js +0 -60
  565. package/src/hooks/use-optimized-media.js +0 -211
  566. package/src/hooks/use-touch-gestures.js +0 -289
  567. package/src/hooks/useEnhancedSubtitles.js +0 -205
  568. package/src/hooks/useKeyboardShortcuts.js +0 -59
  569. package/src/hooks/useMediaControls.js +0 -44
  570. package/src/hooks/useScreenshot.js +0 -56
  571. package/src/hooks/useSubtitles.js +0 -73
  572. package/src/hooks/useVideoPlayer.js +0 -184
  573. package/src/icons/components/FullscreenIcon.js +0 -11
  574. package/src/icons/components/SettingsIcon.js +0 -11
  575. package/src/icons/components/animated/LoadingIcon.js +0 -11
  576. package/src/icons/components/animated/PlayPauseIcon.js +0 -9
  577. package/src/icons/components/media/PauseIcon.js +0 -12
  578. package/src/icons/components/media/PlayIcon.js +0 -12
  579. package/src/icons/components/volume/VolumeIcon.js +0 -11
  580. package/src/icons/components/volume/VolumeOffIcon.js +0 -11
  581. package/src/icons/index.js +0 -45
  582. package/src/icons/provider.js +0 -37
  583. package/src/icons/types.js +0 -1
  584. package/src/index-enhanced.js +0 -16
  585. package/src/index-legacy.js +0 -97
  586. package/src/index.js +0 -90
  587. package/src/index.minimal.js +0 -3
  588. package/src/lib/deprecation.js +0 -31
  589. package/src/lib/format-time.js +0 -32
  590. package/src/lib/index.js +0 -3
  591. package/src/lib/utils.js +0 -5
  592. package/src/test/setup.js +0 -65
  593. package/src/types/events.js +0 -2
  594. package/src/types/formats.js +0 -63
  595. package/src/types/index.js +0 -4
@@ -1,18 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { useCallback } from "react";
3
- import { cn } from "../../../../lib/utils";
4
- import { defaultMinimalIcons } from "../../../icons";
5
- export const SettingsDropdown = function SettingsDropdown({ showSettings, playbackRate, onToggleSettings, onChangePlaybackRate }) {
6
- const playbackRates = [0.25, 0.5, 0.75, 1, 1.25, 1.5, 1.75, 2];
7
- const handleSettingsClick = useCallback((e) => {
8
- e.stopPropagation();
9
- onToggleSettings();
10
- }, [onToggleSettings]);
11
- const handleDropdownClick = useCallback((e) => {
12
- e.stopPropagation();
13
- }, []);
14
- return (_jsxs("div", { className: "relative", style: { zIndex: showSettings ? 60 : "auto" }, children: [_jsx("button", { className: cn("minimal-btn h-9 w-9", showSettings && "text-cyan-500"), onClick: handleSettingsClick, "aria-label": "Settings", children: defaultMinimalIcons.settings && _jsx(defaultMinimalIcons.settings, { size: 18 }) }), showSettings && (_jsxs("div", { className: "absolute right-0 mb-2 min-w-[200px] rounded-lg border border-gray-700 bg-gray-900 py-2 shadow-xl", style: {
15
- bottom: "100%",
16
- zIndex: 1000
17
- }, onClick: handleDropdownClick, children: [_jsx("div", { className: "px-3 py-1 text-gray-400 text-xs uppercase tracking-wider", children: "Speed" }), _jsx("div", { className: "px-1", children: playbackRates.map((rate) => (_jsx("button", { className: cn("w-full rounded px-3 py-1.5 text-left text-sm transition-colors hover:bg-gray-800", "text-white", playbackRate === rate && "bg-cyan-700/20 text-cyan-400"), onClick: () => onChangePlaybackRate(rate), children: rate === 1 ? "Normal" : `${rate}x` }, rate))) })] }))] }));
18
- };
@@ -1 +0,0 @@
1
- {"version":3,"file":"SubtitleDisplay.d.ts","sourceRoot":"","sources":["SubtitleDisplay.tsx"],"names":[],"mappings":"AAEA,UAAU,oBAAoB;IAC7B,gBAAgB,EAAE,OAAO,CAAA;IACzB,YAAY,EAAE,MAAM,CAAA;CACpB;AAED,eAAO,MAAM,eAAe,GAA4B,oCAGrD,oBAAoB,mDAUtB,CAAA"}
@@ -1,6 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- export const SubtitleDisplay = function SubtitleDisplay({ subtitlesEnabled, subtitleText }) {
3
- if (!subtitlesEnabled || !subtitleText)
4
- return null;
5
- return (_jsx("div", { className: "pointer-events-none absolute right-0 bottom-20 left-0 px-4 text-center", children: _jsx("div", { className: "inline-block rounded bg-black/75 px-4 py-2 font-medium text-lg text-white", children: subtitleText }) }));
6
- };
@@ -1 +0,0 @@
1
- {"version":3,"file":"TimeDisplay.d.ts","sourceRoot":"","sources":["TimeDisplay.tsx"],"names":[],"mappings":"AAGA,UAAU,gBAAgB;IACzB,WAAW,EAAE,MAAM,CAAA;IACnB,QAAQ,EAAE,MAAM,CAAA;CAChB;AAED,eAAO,MAAM,WAAW,GAAwB,2BAG7C,gBAAgB,4CAMlB,CAAA"}
@@ -1,5 +0,0 @@
1
- import { jsxs as _jsxs } from "react/jsx-runtime";
2
- import { formatTime } from "../../../../lib/format-time";
3
- export const TimeDisplay = function TimeDisplay({ currentTime, duration }) {
4
- return (_jsxs("div", { className: "font-mono text-sm text-white", children: [formatTime(currentTime), " / ", formatTime(duration)] }));
5
- };
@@ -1 +0,0 @@
1
- {"version":3,"file":"VideoElement.d.ts","sourceRoot":"","sources":["VideoElement.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAe,MAAM,OAAO,CAAA;AAEnC,UAAU,iBAAiB;IAC1B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAAA;IAClD,GAAG,EAAE,MAAM,CAAA;IACX,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,gBAAgB,EAAE,OAAO,CAAA;IACzB,WAAW,CAAC,EAAE,WAAW,GAAG,iBAAiB,CAAA;IAC7C,YAAY,EAAE,MAAM,IAAI,CAAA;CACxB;AAED,eAAO,MAAM,YAAY,GAAyB,qFAQ/C,iBAAiB,4CAmBnB,CAAA"}
@@ -1,4 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- export const VideoElement = function VideoElement({ videoRef, src, poster, subtitleSrc, subtitlesEnabled, crossOrigin, onTogglePlay }) {
3
- return (_jsx("video", { ref: videoRef, src: src, poster: poster, crossOrigin: crossOrigin, className: "h-full w-full object-contain", onClick: onTogglePlay, children: subtitleSrc && (_jsx("track", { kind: "subtitles", src: subtitleSrc, default: subtitlesEnabled })) }));
4
- };
@@ -1 +0,0 @@
1
- {"version":3,"file":"VolumeControl.d.ts","sourceRoot":"","sources":["VolumeControl.tsx"],"names":[],"mappings":"AAIA,UAAU,kBAAkB;IAC3B,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,OAAO,CAAA;IAChB,gBAAgB,EAAE,OAAO,CAAA;IACzB,YAAY,EAAE,MAAM,IAAI,CAAA;IACxB,cAAc,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAA;IACxC,kBAAkB,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAA;IAC3C,WAAW,CAAC,EAAE,YAAY,GAAG,UAAU,CAAA;IACvC,SAAS,CAAC,EAAE,MAAM,CAAA;CAClB;AAED,eAAO,MAAM,aAAa,GAA0B,iHASjD,kBAAkB,4CAgMpB,CAAA"}
@@ -1,99 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import React, { useCallback, useRef, useEffect } from "react";
3
- import { cn } from "../../../../lib/utils";
4
- import { defaultMinimalIcons } from "../../../icons";
5
- export const VolumeControl = function VolumeControl({ volume, isMuted, showVolumeSlider, onToggleMute, onVolumeChange, onShowVolumeSlider, orientation = "horizontal", className }) {
6
- const VolumeIcon = defaultMinimalIcons.volume;
7
- const VolumeMutedIcon = defaultMinimalIcons.volumeMuted;
8
- const sliderRefHorizontal = useRef(null);
9
- const sliderRefVertical = useRef(null);
10
- const isDragging = useRef(false);
11
- const [isDraggingState, setIsDraggingState] = React.useState(false);
12
- const [isHovering, setIsHovering] = React.useState(false);
13
- const hideTimeoutRef = useRef(null);
14
- const handleVolumeChange = useCallback((e) => {
15
- const newVolume = parseFloat(e.target.value);
16
- onVolumeChange(newVolume);
17
- }, [onVolumeChange]);
18
- const handleSliderClick = useCallback((e, isVertical) => {
19
- const sliderRef = isVertical ? sliderRefVertical : sliderRefHorizontal;
20
- if (!sliderRef.current)
21
- return;
22
- const rect = sliderRef.current.getBoundingClientRect();
23
- let percentage;
24
- if (!isVertical) {
25
- percentage = Math.max(0, Math.min(1, (e.clientX - rect.left) / rect.width));
26
- }
27
- else {
28
- percentage = Math.max(0, Math.min(1, 1 - (e.clientY - rect.top) / rect.height));
29
- }
30
- onVolumeChange(percentage);
31
- }, [onVolumeChange]);
32
- const handleMouseDown = useCallback((e, isVertical) => {
33
- e.preventDefault();
34
- e.stopPropagation();
35
- isDragging.current = true;
36
- setIsDraggingState(true);
37
- handleSliderClick(e, isVertical);
38
- }, [handleSliderClick]);
39
- useEffect(() => {
40
- const handleMouseMove = (e) => {
41
- if (!isDragging.current)
42
- return;
43
- const sliderRef = orientation === "vertical" ? sliderRefVertical : sliderRefHorizontal;
44
- if (!sliderRef.current)
45
- return;
46
- const rect = sliderRef.current.getBoundingClientRect();
47
- let percentage;
48
- if (orientation === "horizontal") {
49
- percentage = Math.max(0, Math.min(1, (e.clientX - rect.left) / rect.width));
50
- }
51
- else {
52
- percentage = Math.max(0, Math.min(1, 1 - (e.clientY - rect.top) / rect.height));
53
- }
54
- onVolumeChange(percentage);
55
- };
56
- const handleMouseUp = () => {
57
- isDragging.current = false;
58
- setIsDraggingState(false);
59
- };
60
- if (isDraggingState) {
61
- document.addEventListener("mousemove", handleMouseMove);
62
- document.addEventListener("mouseup", handleMouseUp);
63
- return () => {
64
- document.removeEventListener("mousemove", handleMouseMove);
65
- document.removeEventListener("mouseup", handleMouseUp);
66
- };
67
- }
68
- }, [isDraggingState, orientation, onVolumeChange]);
69
- const handleMouseEnter = useCallback(() => {
70
- if (hideTimeoutRef.current) {
71
- clearTimeout(hideTimeoutRef.current);
72
- }
73
- setIsHovering(true);
74
- onShowVolumeSlider(true);
75
- }, [onShowVolumeSlider]);
76
- const handleMouseLeave = useCallback(() => {
77
- // Add a small delay before hiding to prevent flickering
78
- hideTimeoutRef.current = setTimeout(() => {
79
- if (!isDragging.current) {
80
- setIsHovering(false);
81
- onShowVolumeSlider(false);
82
- }
83
- }, 200);
84
- }, [onShowVolumeSlider]);
85
- // Clean up timeout on unmount
86
- useEffect(() => {
87
- return () => {
88
- if (hideTimeoutRef.current) {
89
- clearTimeout(hideTimeoutRef.current);
90
- }
91
- };
92
- }, []);
93
- const volumePercentage = (isMuted ? 0 : volume) * 100;
94
- return (_jsxs("div", { className: cn("volume-control-wrapper", orientation === "vertical" ? "relative" : "flex items-center gap-2", className), onMouseEnter: handleMouseEnter, onMouseLeave: handleMouseLeave, children: [orientation === "vertical" && (_jsx("div", { className: cn("volume-slider-vertical", "-translate-x-1/2 absolute bottom-full left-1/2 mb-2", "transition-all duration-300 ease-out", (showVolumeSlider || isHovering || isDraggingState)
95
- ? "pointer-events-auto translate-y-0 opacity-100"
96
- : "pointer-events-none translate-y-2 opacity-0"), children: _jsxs("div", { className: "rounded-lg bg-black/80 p-3 backdrop-blur-sm", children: [_jsxs("div", { ref: sliderRefVertical, className: "volume-slider-track-vertical group", onMouseDown: (e) => handleMouseDown(e, true), onClick: (e) => handleSliderClick(e, true), children: [_jsx("div", { className: "volume-slider-fill-vertical pointer-events-none", style: { height: `${volumePercentage}%` } }), _jsx("div", { className: cn("volume-slider-thumb-vertical pointer-events-none", isDraggingState && "active"), style: { bottom: `${volumePercentage}%` } })] }), _jsxs("div", { className: "mt-2 text-center text-white/70 text-xs", children: [Math.round(volumePercentage), "%"] })] }) })), _jsx("button", { className: "minimal-btn h-10 w-10", onClick: onToggleMute, "aria-label": isMuted ? "Unmute" : "Mute", children: isMuted || volume === 0
97
- ? VolumeMutedIcon && _jsx(VolumeMutedIcon, { size: 20 })
98
- : VolumeIcon && _jsx(VolumeIcon, { size: 20 }) }), orientation === "horizontal" && (_jsx("div", { className: cn("volume-slider-horizontal-wrapper", "overflow-hidden transition-all duration-300 ease-out", (showVolumeSlider || isHovering || isDraggingState) ? "w-24 opacity-100" : "w-0 opacity-0"), children: _jsxs("div", { ref: sliderRefHorizontal, className: "volume-slider-track-horizontal group", onMouseDown: (e) => handleMouseDown(e, false), onClick: (e) => handleSliderClick(e, false), children: [_jsx("div", { className: "volume-slider-fill-horizontal pointer-events-none", style: { width: `${volumePercentage}%` } }), _jsx("div", { className: cn("volume-slider-thumb-horizontal pointer-events-none", isDraggingState && "active"), style: { left: `${volumePercentage}%` } })] }) }))] }));
99
- };
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AACzD,YAAY,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAA;AAEnE,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACnD,YAAY,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAA;AAE7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AACvD,YAAY,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAA;AAEjE,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACjD,YAAY,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAA;AAE3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAC7D,YAAY,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAA;AAEvE,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACjD,YAAY,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAA;AAE3D,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACjD,YAAY,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAA;AAE3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAC3D,YAAY,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAA"}
@@ -1,8 +0,0 @@
1
- export { MinimalMediaPlayer } from "./MinimalMediaPlayer";
2
- export { MinimalControls } from "./MinimalControls";
3
- export { MinimalPlayButton } from "./MinimalPlayButton";
4
- export { MinimalSeekBar } from "./MinimalSeekBar";
5
- export { MinimalVolumeControl } from "./MinimalVolumeControl";
6
- export { MinimalOverlay } from "./MinimalOverlay";
7
- export { MinimalLoading } from "./MinimalLoading";
8
- export { SimpleMinimalPlayer } from "./SimpleMinimalPlayer";
@@ -1 +0,0 @@
1
- {"version":3,"file":"video-player.d.ts","sourceRoot":"","sources":["video-player.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AAEtD,eAAO,MAAM,WAAW,6GAyFvB,CAAA"}
@@ -1,38 +0,0 @@
1
- "use client";
2
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
- import { forwardRef } from "react";
4
- import { useKeyboardControls } from "../hooks/use-keyboard-controls";
5
- import { useMediaPlayer } from "../hooks/use-media-player";
6
- import { cn } from "../lib/utils";
7
- export const VideoPlayer = forwardRef(({ src, poster, width = "100%", height = "auto", aspectRatio = "16/9", className, children, keyboardControls = true, showControls = true, customControls = false, crossOrigin, ...options }, ref) => {
8
- const { state, controls, mediaRef, containerRef } = useMediaPlayer({
9
- src,
10
- crossOrigin,
11
- ...options
12
- });
13
- useKeyboardControls({
14
- enabled: keyboardControls,
15
- state,
16
- controls
17
- });
18
- const renderSources = () => {
19
- if (Array.isArray(src)) {
20
- return src.map((source, index) => _jsx("source", { src: source }, index));
21
- }
22
- return null;
23
- };
24
- const containerStyle = {
25
- width,
26
- height,
27
- aspectRatio: height === "auto" ? aspectRatio : undefined
28
- };
29
- const videoProps = {
30
- ref: mediaRef,
31
- controls: showControls && !customControls,
32
- poster,
33
- className: "w-full h-full object-contain bg-black",
34
- ...(Array.isArray(src) ? {} : { src })
35
- };
36
- return (_jsxs("div", { ref: ref || containerRef, style: containerStyle, className: cn("relative overflow-hidden bg-black", "focus-within:outline-none", className), tabIndex: 0, children: [_jsxs("video", { ...videoProps, children: [Array.isArray(src) && renderSources(), "Your browser does not support the video element."] }), state.error && (_jsx("div", { className: "absolute inset-0 flex items-center justify-center bg-black/80", children: _jsxs("div", { className: "text-center text-white", children: [_jsx("p", { className: "font-semibold text-lg", children: "Error" }), _jsx("p", { className: "text-sm opacity-80", children: state.error })] }) })), state.isLoading && (_jsx("div", { className: "absolute inset-0 flex items-center justify-center bg-black/50", children: _jsx("div", { className: "text-white", children: _jsx("div", { className: "h-8 w-8 animate-spin rounded-full border-white border-b-2" }) }) })), customControls && typeof children === "function" && (_jsx("div", { className: "pointer-events-none absolute inset-0", children: _jsx("div", { className: "pointer-events-auto", children: children({ state, controls }) }) })), customControls && typeof children !== "function" && children] }));
37
- });
38
- VideoPlayer.displayName = "VideoPlayer";
@@ -1 +0,0 @@
1
- {"version":3,"file":"error-handling.d.ts","sourceRoot":"","sources":["error-handling.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AACtD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAA;AAG1D,oBAAY,cAAc;IACzB,aAAa,kBAAkB;IAC/B,cAAc,mBAAmB;IACjC,gBAAgB,qBAAqB;IACrC,mBAAmB,wBAAwB;IAC3C,aAAa,kBAAkB;IAC/B,aAAa,kBAAkB;CAC/B;AAGD,MAAM,WAAW,UAAU;IAC1B,IAAI,EAAE,cAAc,CAAA;IACpB,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,qBAAqB,CAAA;IAC9B,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,OAAO,CAAA;IAClB,UAAU,EAAE,MAAM,CAAA;IAClB,aAAa,CAAC,EAAE,KAAK,CAAA;CACrB;AAGD,MAAM,WAAW,WAAW;IAC3B,UAAU,EAAE,MAAM,CAAA;IAClB,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,EAAE,MAAM,CAAA;IAChB,kBAAkB,EAAE,OAAO,CAAA;IAC3B,eAAe,EAAE,cAAc,EAAE,CAAA;IACjC,gBAAgB,EAAE,eAAe,EAAE,CAAA;CACnC;AAuBD,MAAM,WAAW,qBAAqB;IACrC,UAAU,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAA;IACtC,OAAO,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CACzC;AA8DD,qBAAa,iBAAiB;IAC7B,OAAO,CAAC,MAAM,CAAa;IAC3B,OAAO,CAAC,kBAAkB,CAAyB;IACnD,OAAO,CAAC,UAAU,CAAqC;IACvD,OAAO,CAAC,SAAS,CAA8C;gBAG9D,MAAM,GAAE,OAAO,CAAC,WAAW,CAAM,EACjC,kBAAkB,GAAE,qBAAqB,EAAO;IAYjD,gBAAgB,CACf,KAAK,EAAE,OAAO,EACd,MAAM,CAAC,EAAE,qBAAqB,EAC9B,UAAU,SAAI,GACZ,UAAU;IA2Bb,OAAO,CAAC,eAAe;IA4CvB,OAAO,CAAC,WAAW;IAOnB,OAAO,CAAC,mBAAmB;IAUrB,WAAW,CAChB,KAAK,EAAE,OAAO,EACd,MAAM,CAAC,EAAE,qBAAqB,EAC9B,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,qBAAqB,KAAK,OAAO,CAAC,IAAI,CAAC,GAC9D,OAAO,CAAC,UAAU,CAAC;IAsDtB,SAAS,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,GAAG,MAAM,IAAI;IAM5D,SAAS,IAAI,UAAU,EAAE;IAKzB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAKjC,cAAc,IAAI,IAAI;IAKtB,aAAa,IAAI;QAChB,WAAW,EAAE,MAAM,CAAA;QACnB,YAAY,EAAE,MAAM,CAAC,cAAc,EAAE,MAAM,CAAC,CAAA;QAC5C,eAAe,EAAE,MAAM,CAAA;QACvB,YAAY,EAAE,UAAU,EAAE,CAAA;KAC1B;CAoBD;AAGD,wBAAgB,oBAAoB,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC;;;0BAYlB,MAAM;;;qBAvCvC,MAAM;sBACL,MAAM,CAAC,cAAc,EAAE,MAAM,CAAC;yBAC3B,MAAM;sBACT,UAAU,EAAE;;EAqD3B;AAGD,wBAAgB,qBAAqB;;;;0BAOW,OAAO,WAAW,qBAAqB;EAYtF"}
@@ -1,300 +0,0 @@
1
- "use client";
2
- import React from "react";
3
- // Error types specific to media operations
4
- export var MediaErrorType;
5
- (function (MediaErrorType) {
6
- MediaErrorType["NETWORK_ERROR"] = "NETWORK_ERROR";
7
- MediaErrorType["PLAYBACK_ERROR"] = "PLAYBACK_ERROR";
8
- MediaErrorType["PERMISSION_ERROR"] = "PERMISSION_ERROR";
9
- MediaErrorType["NOT_SUPPORTED_ERROR"] = "NOT_SUPPORTED_ERROR";
10
- MediaErrorType["TIMEOUT_ERROR"] = "TIMEOUT_ERROR";
11
- MediaErrorType["UNKNOWN_ERROR"] = "UNKNOWN_ERROR";
12
- })(MediaErrorType || (MediaErrorType = {}));
13
- // Default retry configuration
14
- const DEFAULT_RETRY_CONFIG = {
15
- maxRetries: 3,
16
- baseDelay: 1000,
17
- maxDelay: 10000,
18
- exponentialBackoff: true,
19
- retryableErrors: [
20
- MediaErrorType.NETWORK_ERROR,
21
- MediaErrorType.TIMEOUT_ERROR
22
- ],
23
- retryableActions: [
24
- "PLAY",
25
- "PAUSE",
26
- "SEEK",
27
- "SET_VOLUME",
28
- "ENTER_FULLSCREEN",
29
- "EXIT_FULLSCREEN"
30
- ]
31
- };
32
- // Network error recovery
33
- class NetworkErrorRecovery {
34
- canRecover(error) {
35
- return error.type === MediaErrorType.NETWORK_ERROR && error.retryCount < 3;
36
- }
37
- async recover(error) {
38
- // Wait for network to become available
39
- if (navigator.onLine === false) {
40
- await new Promise(resolve => {
41
- const handleOnline = () => {
42
- window.removeEventListener('online', handleOnline);
43
- resolve(void 0);
44
- };
45
- window.addEventListener('online', handleOnline);
46
- });
47
- }
48
- // Additional delay for network stability
49
- await new Promise(resolve => setTimeout(resolve, 2000));
50
- }
51
- }
52
- // Playback error recovery
53
- class PlaybackErrorRecovery {
54
- canRecover(error) {
55
- return error.type === MediaErrorType.PLAYBACK_ERROR && error.retryCount < 2;
56
- }
57
- async recover(error) {
58
- // Try to reload the media element
59
- const mediaElement = document.querySelector('video, audio');
60
- if (mediaElement) {
61
- mediaElement.load();
62
- await new Promise(resolve => {
63
- const handleCanPlay = () => {
64
- mediaElement.removeEventListener('canplay', handleCanPlay);
65
- resolve(void 0);
66
- };
67
- mediaElement.addEventListener('canplay', handleCanPlay);
68
- });
69
- }
70
- }
71
- }
72
- // Permission error recovery (for fullscreen, etc.)
73
- class PermissionErrorRecovery {
74
- canRecover(error) {
75
- return error.type === MediaErrorType.PERMISSION_ERROR &&
76
- error.action?.type === 'ENTER_FULLSCREEN';
77
- }
78
- async recover(error) {
79
- // Request user interaction for fullscreen
80
- console.warn('Fullscreen requires user interaction');
81
- // In a real implementation, you might show a message to the user
82
- }
83
- }
84
- // Error handler class
85
- export class MediaErrorHandler {
86
- config;
87
- recoveryStrategies;
88
- errorQueue = new Map();
89
- listeners = new Set();
90
- constructor(config = {}, recoveryStrategies = []) {
91
- this.config = { ...DEFAULT_RETRY_CONFIG, ...config };
92
- this.recoveryStrategies = [
93
- new NetworkErrorRecovery(),
94
- new PlaybackErrorRecovery(),
95
- new PermissionErrorRecovery(),
96
- ...recoveryStrategies
97
- ];
98
- }
99
- // Create a media error from a generic error
100
- createMediaError(error, action, retryCount = 0) {
101
- const timestamp = Date.now();
102
- if (error instanceof Error) {
103
- const errorType = this.categorizeError(error, action);
104
- return {
105
- type: errorType,
106
- message: error.message,
107
- action,
108
- timestamp,
109
- retryable: this.isRetryable(errorType, action),
110
- retryCount,
111
- originalError: error
112
- };
113
- }
114
- return {
115
- type: MediaErrorType.UNKNOWN_ERROR,
116
- message: typeof error === 'string' ? error : 'Unknown error occurred',
117
- action,
118
- timestamp,
119
- retryable: this.isRetryable(MediaErrorType.UNKNOWN_ERROR, action),
120
- retryCount
121
- };
122
- }
123
- // Categorize errors based on error properties and action context
124
- categorizeError(error, action) {
125
- const message = error.message.toLowerCase();
126
- // Network-related errors
127
- if (message.includes('network') ||
128
- message.includes('fetch') ||
129
- message.includes('connection') ||
130
- error.name === 'NetworkError') {
131
- return MediaErrorType.NETWORK_ERROR;
132
- }
133
- // Permission errors
134
- if (message.includes('permission') ||
135
- message.includes('denied') ||
136
- message.includes('fullscreen') ||
137
- error.name === 'NotAllowedError') {
138
- return MediaErrorType.PERMISSION_ERROR;
139
- }
140
- // Playback errors
141
- if (message.includes('decode') ||
142
- message.includes('format') ||
143
- message.includes('codec') ||
144
- action?.type === 'PLAY') {
145
- return MediaErrorType.PLAYBACK_ERROR;
146
- }
147
- // Timeout errors
148
- if (message.includes('timeout') ||
149
- error.name === 'TimeoutError') {
150
- return MediaErrorType.TIMEOUT_ERROR;
151
- }
152
- // Not supported errors
153
- if (message.includes('not supported') ||
154
- message.includes('unsupported') ||
155
- error.name === 'NotSupportedError') {
156
- return MediaErrorType.NOT_SUPPORTED_ERROR;
157
- }
158
- return MediaErrorType.UNKNOWN_ERROR;
159
- }
160
- // Check if an error/action combination is retryable
161
- isRetryable(errorType, action) {
162
- const errorRetryable = this.config.retryableErrors.includes(errorType);
163
- const actionRetryable = !action || this.config.retryableActions.includes(action.type);
164
- return errorRetryable && actionRetryable;
165
- }
166
- // Calculate retry delay with exponential backoff
167
- calculateRetryDelay(retryCount) {
168
- if (!this.config.exponentialBackoff) {
169
- return this.config.baseDelay;
170
- }
171
- const delay = this.config.baseDelay * Math.pow(2, retryCount);
172
- return Math.min(delay, this.config.maxDelay);
173
- }
174
- // Handle an error with automatic retry logic
175
- async handleError(error, action, retryCallback) {
176
- const mediaError = this.createMediaError(error, action, action?.retryCount || 0);
177
- const errorId = `${action?.type}-${mediaError.timestamp}`;
178
- // Store error for tracking
179
- this.errorQueue.set(errorId, mediaError);
180
- // Notify listeners
181
- this.listeners.forEach(listener => listener(mediaError));
182
- // Try recovery strategies
183
- for (const strategy of this.recoveryStrategies) {
184
- if (strategy.canRecover(mediaError)) {
185
- try {
186
- await strategy.recover(mediaError);
187
- break;
188
- }
189
- catch (recoveryError) {
190
- console.warn('Recovery strategy failed:', recoveryError);
191
- }
192
- }
193
- }
194
- // Retry if possible
195
- if (mediaError.retryable &&
196
- mediaError.retryCount < this.config.maxRetries &&
197
- retryCallback &&
198
- action) {
199
- const delay = this.calculateRetryDelay(mediaError.retryCount);
200
- console.log(`Retrying action ${action.type} in ${delay}ms (attempt ${mediaError.retryCount + 1}/${this.config.maxRetries})`);
201
- setTimeout(async () => {
202
- try {
203
- await retryCallback({
204
- ...action,
205
- retryCount: mediaError.retryCount + 1
206
- });
207
- // Remove from error queue on successful retry
208
- this.errorQueue.delete(errorId);
209
- }
210
- catch (retryError) {
211
- // Handle retry failure
212
- await this.handleError(retryError, {
213
- ...action,
214
- retryCount: mediaError.retryCount + 1
215
- }, retryCallback);
216
- }
217
- }, delay);
218
- }
219
- return mediaError;
220
- }
221
- // Subscribe to error events
222
- subscribe(listener) {
223
- this.listeners.add(listener);
224
- return () => this.listeners.delete(listener);
225
- }
226
- // Get current errors
227
- getErrors() {
228
- return Array.from(this.errorQueue.values());
229
- }
230
- // Clear specific error
231
- clearError(errorId) {
232
- this.errorQueue.delete(errorId);
233
- }
234
- // Clear all errors
235
- clearAllErrors() {
236
- this.errorQueue.clear();
237
- }
238
- // Get error statistics
239
- getErrorStats() {
240
- const errors = this.getErrors();
241
- const now = Date.now();
242
- const recentThreshold = 5 * 60 * 1000; // 5 minutes
243
- const errorsByType = errors.reduce((acc, error) => {
244
- acc[error.type] = (acc[error.type] || 0) + 1;
245
- return acc;
246
- }, {});
247
- const retryableErrors = errors.filter(e => e.retryable).length;
248
- const recentErrors = errors.filter(e => now - e.timestamp < recentThreshold);
249
- return {
250
- totalErrors: errors.length,
251
- errorsByType,
252
- retryableErrors,
253
- recentErrors
254
- };
255
- }
256
- }
257
- // Hook for using error handling in components
258
- export function useMediaErrorHandler(config) {
259
- const [handler] = React.useState(() => new MediaErrorHandler(config));
260
- const [errors, setErrors] = React.useState([]);
261
- React.useEffect(() => {
262
- const unsubscribe = handler.subscribe((error) => {
263
- setErrors(current => [...current, error]);
264
- });
265
- return unsubscribe;
266
- }, [handler]);
267
- const clearError = React.useCallback((errorId) => {
268
- handler.clearError(errorId);
269
- setErrors(current => current.filter(e => `${e.action?.type}-${e.timestamp}` !== errorId));
270
- }, [handler]);
271
- const clearAllErrors = React.useCallback(() => {
272
- handler.clearAllErrors();
273
- setErrors([]);
274
- }, [handler]);
275
- return {
276
- handler,
277
- errors,
278
- clearError,
279
- clearAllErrors,
280
- errorStats: handler.getErrorStats()
281
- };
282
- }
283
- // Hook for error boundaries
284
- export function useMediaErrorBoundary() {
285
- const [error, setError] = React.useState(null);
286
- const resetError = React.useCallback(() => {
287
- setError(null);
288
- }, []);
289
- const captureError = React.useCallback((error, action) => {
290
- const handler = new MediaErrorHandler();
291
- const mediaError = handler.createMediaError(error, action);
292
- setError(mediaError);
293
- }, []);
294
- return {
295
- error,
296
- hasError: !!error,
297
- resetError,
298
- captureError
299
- };
300
- }
@@ -1 +0,0 @@
1
- {"version":3,"file":"media-context.d.ts","sourceRoot":"","sources":["media-context.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAA;AAGzB,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4BnB,CAAA;AAEV,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,OAAO,gBAAgB,CAAC,CAAA;AAGtF,MAAM,WAAW,UAAU;IAE1B,SAAS,EAAE,OAAO,CAAA;IAClB,WAAW,EAAE,MAAM,CAAA;IACnB,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,UAAU,GAAG,IAAI,CAAA;IAC3B,SAAS,EAAE,OAAO,CAAA;IAClB,WAAW,EAAE,OAAO,CAAA;IACpB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IAGpB,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,OAAO,CAAA;IAGhB,YAAY,EAAE,OAAO,CAAA;IACrB,kBAAkB,EAAE,OAAO,CAAA;IAG3B,YAAY,EAAE,MAAM,CAAA;IACpB,gBAAgB,EAAE,OAAO,CAAA;IACzB,qBAAqB,EAAE,SAAS,GAAG,IAAI,CAAA;IACvC,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAA;IAChC,YAAY,EAAE,MAAM,CAAA;IACpB,iBAAiB,EAAE,MAAM,CAAA;IACzB,gBAAgB,EAAE,GAAG,EAAE,CAAA;IAGvB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3B,aAAa,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAA;IAG7E,aAAa,EAAE,SAAS,EAAE,CAAA;IAC1B,aAAa,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CACpF;AAGD,MAAM,WAAW,WAAW;IAC3B,IAAI,EAAE,eAAe,CAAA;IACrB,MAAM,CAAC,EAAE,GAAG,CAAA;CACZ;AAGD,MAAM,WAAW,iBAAiB;IACjC,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,MAAM,CAAA;IACf,aAAa,EAAE,MAAM,CAAA;IACrB,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAA;IACnB,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,CAAA;IAC/C,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC,gBAAgB,GAAG,gBAAgB,GAAG,IAAI,CAAC,CAAA;IACrE,eAAe,CAAC,EAAE,WAAW,CAAA;IAC7B,oBAAoB,EAAE,MAAM,CAAA;IAC5B,iBAAiB,EAAE,MAAM,CAAA;IACzB,QAAQ,EAAE,OAAO,CAAA;IACjB,OAAO,EAAE,OAAO,CAAA;IAChB,cAAc,EAAE,OAAO,CAAA;CACvB;AAGD,MAAM,WAAW,UAAU;IAC1B,SAAS,EAAE,CAAC,QAAQ,EAAE,MAAM,IAAI,KAAK,MAAM,IAAI,CAAA;IAC/C,QAAQ,EAAE,MAAM,UAAU,CAAA;IAC1B,QAAQ,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,UAAU,CAAC,KAAK,IAAI,CAAA;IAChD,QAAQ,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,IAAI,CAAA;CACvC;AAGD,eAAO,MAAM,YAAY,yCAAsD,CAAA;AAG/E,wBAAgB,eAAe,sBAM9B;AAGD,eAAO,MAAM,iBAAiB,kCAA+C,CAAA;AAG7E,wBAAgB,aAAa,eAM5B;AAGD,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,CAAC,GAAG,CAAC,CAOzE;AAGD,wBAAgB,gBAAgB,aAtCZ,WAAW,KAAK,IAAI,CAyCvC;AAGD,wBAAgB,0BAA0B,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,CAAC,GAAG,CAAC,CAiBnF;AAGD,wBAAgB,oBAAoB;;;;;EAcnC;AAGD,eAAO,MAAM,iBAAiB,EAAE,UAwB/B,CAAA"}
@@ -1,121 +0,0 @@
1
- "use client";
2
- import React from "react";
3
- // Media action types
4
- export const MediaActionTypes = {
5
- PLAY: "PLAY",
6
- PAUSE: "PAUSE",
7
- SEEK: "SEEK",
8
- SET_VOLUME: "SET_VOLUME",
9
- MUTE: "MUTE",
10
- UNMUTE: "UNMUTE",
11
- TOGGLE_MUTE: "TOGGLE_MUTE",
12
- SET_DURATION: "SET_DURATION",
13
- SET_CURRENT_TIME: "SET_CURRENT_TIME",
14
- SET_BUFFERED: "SET_BUFFERED",
15
- SET_LOADING: "SET_LOADING",
16
- SET_ERROR: "SET_ERROR",
17
- ENTER_FULLSCREEN: "ENTER_FULLSCREEN",
18
- EXIT_FULLSCREEN: "EXIT_FULLSCREEN",
19
- ENTER_PIP: "ENTER_PIP",
20
- EXIT_PIP: "EXIT_PIP",
21
- SET_PLAYBACK_RATE: "SET_PLAYBACK_RATE",
22
- SET_SUBTITLE_TRACK: "SET_SUBTITLE_TRACK",
23
- SET_RENDITION: "SET_RENDITION",
24
- TOGGLE_SUBTITLES: "TOGGLE_SUBTITLES",
25
- PREVIEW_TIME: "PREVIEW_TIME",
26
- CLEAR_PREVIEW: "CLEAR_PREVIEW",
27
- // New actions for Video.js adapter
28
- SET_BUFFERING: "SET_BUFFERING",
29
- SET_QUALITY_LEVEL: "SET_QUALITY_LEVEL",
30
- SET_BANDWIDTH_ESTIMATE: "SET_BANDWIDTH_ESTIMATE",
31
- SET_ACTIVE_TEXT_TRACKS: "SET_ACTIVE_TEXT_TRACKS"
32
- };
33
- // Create the media context
34
- export const MediaContext = React.createContext(null);
35
- // Hook to use media context
36
- export function useMediaContext() {
37
- const context = React.useContext(MediaContext);
38
- if (!context) {
39
- throw new Error("useMediaContext must be used within a MediaPlayer");
40
- }
41
- return context;
42
- }
43
- // Store context for state management
44
- export const MediaStoreContext = React.createContext(null);
45
- // Hook to use media store
46
- export function useMediaStore() {
47
- const store = React.useContext(MediaStoreContext);
48
- if (!store) {
49
- throw new Error("useMediaStore must be used within a MediaPlayer");
50
- }
51
- return store;
52
- }
53
- // Hook to select specific state values - React 19 optimized
54
- export function useMediaSelector(selector) {
55
- const store = useMediaStore();
56
- // React 19 compiler will optimize this callback
57
- const getSnapshot = () => selector(store.getState());
58
- return React.useSyncExternalStore(store.subscribe, getSnapshot, getSnapshot);
59
- }
60
- // Hook to get dispatch function
61
- export function useMediaDispatch() {
62
- const store = useMediaStore();
63
- return store.dispatch;
64
- }
65
- // React 19 enhanced context selector with optimistic updates
66
- export function useOptimisticMediaSelector(selector) {
67
- const store = useMediaStore();
68
- // Check if enhanced store is available
69
- const isEnhanced = 'getOptimisticState' in store;
70
- const getSnapshot = () => {
71
- if (isEnhanced) {
72
- // Use optimistic state for immediate UI feedback
73
- return selector(store.getOptimisticState());
74
- }
75
- else {
76
- // Fall back to regular state
77
- return selector(store.getState());
78
- }
79
- };
80
- return React.useSyncExternalStore(store.subscribe, getSnapshot, getSnapshot);
81
- }
82
- // Hook for accessing React 19 enhanced features
83
- export function useMediaEnhancements() {
84
- const store = useMediaStore();
85
- const context = useMediaContext();
86
- const isEnhanced = 'getOptimisticState' in store;
87
- const errorHandler = 'errorHandler' in context ? context.errorHandler : null;
88
- const isRehydrated = 'isRehydrated' in context ? context.isRehydrated : true;
89
- return {
90
- isEnhanced,
91
- errorHandler,
92
- isRehydrated,
93
- actionsState: isEnhanced ? store.getActionState() : null
94
- };
95
- }
96
- // Initial media state
97
- export const initialMediaState = {
98
- isPlaying: false,
99
- currentTime: 0,
100
- duration: 0,
101
- buffered: null,
102
- isLoading: false,
103
- isBuffering: false,
104
- error: null,
105
- volume: 1,
106
- isMuted: false,
107
- isFullscreen: false,
108
- isPictureInPicture: false,
109
- playbackRate: 1,
110
- subtitlesShowing: false,
111
- selectedSubtitleTrack: null,
112
- selectedRendition: null,
113
- qualityLevel: -1,
114
- bandwidthEstimate: 0,
115
- activeTextTracks: [],
116
- previewTime: null,
117
- previewImage: null,
118
- previewCoords: null,
119
- subtitlesList: [],
120
- renditionList: []
121
- };
@@ -1 +0,0 @@
1
- {"version":3,"file":"media-provider.d.ts","sourceRoot":"","sources":["media-provider.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAKN,KAAK,UAAU,EAIf,MAAM,iBAAiB,CAAA;AAExB,OAAO,EAA2B,KAAK,iBAAiB,EAAE,MAAM,eAAe,CAAA;AAC/E,OAAO,EAAqB,KAAK,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAyHtE,MAAM,WAAW,kBAAkB;IAClC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAA;IACnB,eAAe,CAAC,EAAE,WAAW,CAAA;IAC7B,oBAAoB,CAAC,EAAE,MAAM,CAAA;IAC7B,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,YAAY,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,CAAA;IAGlC,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,iBAAiB,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAA;IAC9C,WAAW,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,CAAA;IAClC,uBAAuB,CAAC,EAAE,OAAO,CAAA;IACjC,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,UAAU,CAAC,KAAK,IAAI,CAAA;CACxD;AAGD,wBAAgB,aAAa,CAAC,EAC7B,QAAQ,EACR,OAAwB,EACxB,OAA8B,EAC9B,aAA0C,EAC1C,GAAW,EACX,eAAe,EACf,oBAA0B,EAC1B,iBAAqB,EACrB,QAAgB,EAChB,OAAc,EACd,cAAsB,EACtB,YAAiB,EAEjB,gBAAuB,EACvB,iBAAiB,EACjB,WAAW,EACX,uBAA8B,EAC9B,mBAA0B,EAC1B,iBAAiB,EACjB,EAAE,kBAAkB,2CAoFpB"}