@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,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"}