@therealtinhtute/baroiplayer 1.0.0 → 1.0.2

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 (1330) hide show
  1. package/dist/context/media.js +1 -1
  2. package/dist/context/media.mjs +5 -5
  3. package/dist/context/store.js +1 -1
  4. package/dist/context/store.mjs +1 -1
  5. package/dist/{context-BMteAJDN.js → context-Af84FynT.js} +304 -265
  6. package/dist/context-Af84FynT.js.map +1 -0
  7. package/dist/context-CwZnPdz0.cjs +23 -0
  8. package/dist/context-CwZnPdz0.cjs.map +1 -0
  9. package/dist/core.js +2 -2
  10. package/dist/core.mjs +27 -27
  11. package/dist/{enhanced-components-DTIObgB7.cjs → enhanced-components-CXnYiOt6.cjs} +2 -2
  12. package/dist/{enhanced-components-DTIObgB7.cjs.map → enhanced-components-CXnYiOt6.cjs.map} +1 -1
  13. package/dist/{enhanced-components-DHv0MFvG.js → enhanced-components-Da0TSvKe.js} +158 -158
  14. package/dist/{enhanced-components-DHv0MFvG.js.map → enhanced-components-Da0TSvKe.js.map} +1 -1
  15. package/dist/hooks-BhW_i-9L.js +2013 -0
  16. package/dist/hooks-BhW_i-9L.js.map +1 -0
  17. package/dist/hooks-DTXeB5Z-.cjs +4 -0
  18. package/dist/hooks-DTXeB5Z-.cjs.map +1 -0
  19. package/dist/index.css +102 -1
  20. package/dist/index.d.ts +1388 -0
  21. package/dist/index.js +27 -112
  22. package/dist/index.js.map +1 -1
  23. package/dist/index.mjs +17 -6126
  24. package/dist/index.mjs.map +1 -1
  25. package/dist/{minimal-components-DSq5sQpy.js → minimal-components-B0bILe18.js} +236 -236
  26. package/dist/{minimal-components-DSq5sQpy.js.map → minimal-components-B0bILe18.js.map} +1 -1
  27. package/dist/{minimal-components-DflWiihN.cjs → minimal-components-BsqodtY8.cjs} +2 -2
  28. package/dist/{minimal-components-DflWiihN.cjs.map → minimal-components-BsqodtY8.cjs.map} +1 -1
  29. package/dist/minimal-components.css +589 -1
  30. package/dist/package.json +28 -0
  31. package/dist/{performance-monitor-rMW1RgV3.js → performance-monitor--rzKTlbj.js} +2 -2
  32. package/dist/{performance-monitor-rMW1RgV3.js.map → performance-monitor--rzKTlbj.js.map} +1 -1
  33. package/dist/{performance-monitor-CUW6f5ll.cjs → performance-monitor-cjIvZE2D.cjs} +2 -2
  34. package/dist/{performance-monitor-CUW6f5ll.cjs.map → performance-monitor-cjIvZE2D.cjs.map} +1 -1
  35. package/dist/src/adapters/videojs-adapter.d.ts +38 -0
  36. package/dist/src/adapters/videojs-adapter.d.ts.map +1 -0
  37. package/dist/src/adapters/videojs-adapter.js +350 -0
  38. package/dist/src/adapters/videojs-adapter.tsx +470 -0
  39. package/dist/src/assets/mona-loading.gif +0 -0
  40. package/dist/src/components/AnimateLoading.d.ts +9 -0
  41. package/dist/src/components/AnimateLoading.d.ts.map +1 -0
  42. package/dist/src/components/AnimateLoading.js +41 -0
  43. package/dist/src/components/AnimateLoading.tsx +115 -0
  44. package/dist/src/components/LoadingState.d.ts +33 -0
  45. package/dist/src/components/LoadingState.d.ts.map +1 -0
  46. package/dist/src/components/LoadingState.js +111 -0
  47. package/dist/src/components/LoadingState.tsx +248 -0
  48. package/dist/src/components/accessibility/keyboard-help-overlay.d.ts +17 -0
  49. package/dist/src/components/accessibility/keyboard-help-overlay.d.ts.map +1 -0
  50. package/dist/src/components/accessibility/keyboard-help-overlay.js +90 -0
  51. package/dist/src/components/accessibility/keyboard-help-overlay.tsx +213 -0
  52. package/dist/src/components/audio-player.d.ts +3 -0
  53. package/dist/src/components/audio-player.d.ts.map +1 -0
  54. package/dist/src/components/audio-player.js +31 -0
  55. package/dist/src/components/audio-player.tsx +85 -0
  56. package/dist/src/components/basic/index.d.ts +26 -0
  57. package/dist/src/components/basic/index.d.ts.map +1 -0
  58. package/dist/src/components/basic/index.js +29 -0
  59. package/dist/src/components/basic/index.ts +37 -0
  60. package/dist/src/components/enhanced/advanced-features.d.ts +45 -0
  61. package/dist/src/components/enhanced/advanced-features.d.ts.map +1 -0
  62. package/dist/src/components/enhanced/advanced-features.js +64 -0
  63. package/dist/src/components/enhanced/advanced-features.tsx +316 -0
  64. package/dist/src/components/enhanced/debug-panel.d.ts +70 -0
  65. package/dist/src/components/enhanced/debug-panel.d.ts.map +1 -0
  66. package/dist/src/components/enhanced/debug-panel.js +94 -0
  67. package/dist/src/components/enhanced/debug-panel.tsx +422 -0
  68. package/dist/src/components/enhanced/enhanced-controls.d.ts +50 -0
  69. package/dist/src/components/enhanced/enhanced-controls.d.ts.map +1 -0
  70. package/dist/src/components/enhanced/enhanced-controls.js +233 -0
  71. package/dist/src/components/enhanced/enhanced-controls.tsx +600 -0
  72. package/dist/src/components/enhanced/enhanced-media-player.d.ts +26 -0
  73. package/dist/src/components/enhanced/enhanced-media-player.d.ts.map +1 -0
  74. package/dist/src/components/enhanced/enhanced-media-player.js +316 -0
  75. package/dist/src/components/enhanced/enhanced-media-player.tsx +509 -0
  76. package/dist/src/components/enhanced/error-handling.d.ts +36 -0
  77. package/dist/src/components/enhanced/error-handling.d.ts.map +1 -0
  78. package/dist/src/components/enhanced/error-handling.js +153 -0
  79. package/dist/src/components/enhanced/error-handling.tsx +345 -0
  80. package/dist/src/components/enhanced/index.d.ts +7 -0
  81. package/dist/src/components/enhanced/index.d.ts.map +1 -0
  82. package/dist/src/components/enhanced/index.js +10 -0
  83. package/dist/src/components/enhanced/index.ts +39 -0
  84. package/dist/src/components/enhanced/media-player-enhanced.d.ts +21 -0
  85. package/dist/src/components/enhanced/media-player-enhanced.d.ts.map +1 -0
  86. package/dist/src/components/enhanced/media-player-enhanced.js +250 -0
  87. package/dist/src/components/enhanced/media-player-enhanced.tsx +349 -0
  88. package/dist/src/components/examples/basic-video-player.d.ts +10 -0
  89. package/dist/src/components/examples/basic-video-player.d.ts.map +1 -0
  90. package/dist/src/components/examples/basic-video-player.js +16 -0
  91. package/dist/src/components/examples/basic-video-player.tsx +55 -0
  92. package/dist/src/components/examples/custom-controls-example.d.ts +10 -0
  93. package/dist/src/components/examples/custom-controls-example.d.ts.map +1 -0
  94. package/dist/src/components/examples/custom-controls-example.js +12 -0
  95. package/dist/src/components/examples/custom-controls-example.tsx +63 -0
  96. package/dist/src/components/examples/enhanced-controls-example.d.ts +9 -0
  97. package/dist/src/components/examples/enhanced-controls-example.d.ts.map +1 -0
  98. package/dist/src/components/examples/enhanced-controls-example.js +18 -0
  99. package/dist/src/components/examples/enhanced-controls-example.tsx +114 -0
  100. package/dist/src/components/examples/enhanced-media-player-example.d.ts +9 -0
  101. package/dist/src/components/examples/enhanced-media-player-example.d.ts.map +1 -0
  102. package/dist/src/components/examples/enhanced-media-player-example.js +13 -0
  103. package/dist/src/components/examples/enhanced-media-player-example.tsx +293 -0
  104. package/dist/src/components/examples/loading-states-demo.d.ts +2 -0
  105. package/dist/src/components/examples/loading-states-demo.d.ts.map +1 -0
  106. package/dist/src/components/examples/loading-states-demo.js +41 -0
  107. package/dist/src/components/examples/loading-states-demo.tsx +142 -0
  108. package/dist/src/components/examples/react-19-demo.d.ts +10 -0
  109. package/dist/src/components/examples/react-19-demo.d.ts.map +1 -0
  110. package/dist/src/components/examples/react-19-demo.js +104 -0
  111. package/dist/src/components/examples/react-19-demo.tsx +381 -0
  112. package/dist/src/components/examples/volume-orientation-demo.d.ts +2 -0
  113. package/dist/src/components/examples/volume-orientation-demo.d.ts.map +1 -0
  114. package/dist/src/components/examples/volume-orientation-demo.js +31 -0
  115. package/dist/src/components/examples/volume-orientation-demo.tsx +114 -0
  116. package/dist/src/components/icon-demo.d.ts +2 -0
  117. package/dist/src/components/icon-demo.d.ts.map +1 -0
  118. package/dist/src/components/icon-demo.js +16 -0
  119. package/dist/src/components/icon-demo.tsx +209 -0
  120. package/dist/src/components/icons/index.d.ts +36 -0
  121. package/dist/src/components/icons/index.d.ts.map +1 -0
  122. package/dist/src/components/icons/index.js +59 -0
  123. package/dist/src/components/icons/index.tsx +166 -0
  124. package/dist/src/components/icons/svg-icons/ArrowLeftIcon.d.ts +4 -0
  125. package/dist/src/components/icons/svg-icons/ArrowLeftIcon.d.ts.map +1 -0
  126. package/dist/src/components/icons/svg-icons/ArrowLeftIcon.js +3 -0
  127. package/dist/src/components/icons/svg-icons/ArrowLeftIcon.tsx +18 -0
  128. package/dist/src/components/icons/svg-icons/ArrowRightIcon.d.ts +4 -0
  129. package/dist/src/components/icons/svg-icons/ArrowRightIcon.d.ts.map +1 -0
  130. package/dist/src/components/icons/svg-icons/ArrowRightIcon.js +3 -0
  131. package/dist/src/components/icons/svg-icons/ArrowRightIcon.tsx +18 -0
  132. package/dist/src/components/icons/svg-icons/AudioIcon.d.ts +4 -0
  133. package/dist/src/components/icons/svg-icons/AudioIcon.d.ts.map +1 -0
  134. package/dist/src/components/icons/svg-icons/AudioIcon.js +4 -0
  135. package/dist/src/components/icons/svg-icons/AudioIcon.tsx +22 -0
  136. package/dist/src/components/icons/svg-icons/BackwardIcon.d.ts +4 -0
  137. package/dist/src/components/icons/svg-icons/BackwardIcon.d.ts.map +1 -0
  138. package/dist/src/components/icons/svg-icons/BackwardIcon.js +3 -0
  139. package/dist/src/components/icons/svg-icons/BackwardIcon.tsx +12 -0
  140. package/dist/src/components/icons/svg-icons/CameraIcon.d.ts +4 -0
  141. package/dist/src/components/icons/svg-icons/CameraIcon.d.ts.map +1 -0
  142. package/dist/src/components/icons/svg-icons/CameraIcon.js +4 -0
  143. package/dist/src/components/icons/svg-icons/CameraIcon.tsx +19 -0
  144. package/dist/src/components/icons/svg-icons/CheckIcon.d.ts +4 -0
  145. package/dist/src/components/icons/svg-icons/CheckIcon.d.ts.map +1 -0
  146. package/dist/src/components/icons/svg-icons/CheckIcon.js +4 -0
  147. package/dist/src/components/icons/svg-icons/CheckIcon.tsx +19 -0
  148. package/dist/src/components/icons/svg-icons/EnablePiPIcon.d.ts +4 -0
  149. package/dist/src/components/icons/svg-icons/EnablePiPIcon.d.ts.map +1 -0
  150. package/dist/src/components/icons/svg-icons/EnablePiPIcon.js +5 -0
  151. package/dist/src/components/icons/svg-icons/EnablePiPIcon.tsx +17 -0
  152. package/dist/src/components/icons/svg-icons/ForwardIcon.d.ts +4 -0
  153. package/dist/src/components/icons/svg-icons/ForwardIcon.d.ts.map +1 -0
  154. package/dist/src/components/icons/svg-icons/ForwardIcon.js +3 -0
  155. package/dist/src/components/icons/svg-icons/ForwardIcon.tsx +12 -0
  156. package/dist/src/components/icons/svg-icons/FullscreenEnterIcon.d.ts +4 -0
  157. package/dist/src/components/icons/svg-icons/FullscreenEnterIcon.d.ts.map +1 -0
  158. package/dist/src/components/icons/svg-icons/FullscreenEnterIcon.js +3 -0
  159. package/dist/src/components/icons/svg-icons/FullscreenEnterIcon.tsx +23 -0
  160. package/dist/src/components/icons/svg-icons/FullscreenExitIcon.d.ts +4 -0
  161. package/dist/src/components/icons/svg-icons/FullscreenExitIcon.d.ts.map +1 -0
  162. package/dist/src/components/icons/svg-icons/FullscreenExitIcon.js +3 -0
  163. package/dist/src/components/icons/svg-icons/FullscreenExitIcon.tsx +23 -0
  164. package/dist/src/components/icons/svg-icons/LoadingIcon.d.ts +4 -0
  165. package/dist/src/components/icons/svg-icons/LoadingIcon.d.ts.map +1 -0
  166. package/dist/src/components/icons/svg-icons/LoadingIcon.js +3 -0
  167. package/dist/src/components/icons/svg-icons/LoadingIcon.tsx +32 -0
  168. package/dist/src/components/icons/svg-icons/PauseIcon.d.ts +4 -0
  169. package/dist/src/components/icons/svg-icons/PauseIcon.d.ts.map +1 -0
  170. package/dist/src/components/icons/svg-icons/PauseIcon.js +3 -0
  171. package/dist/src/components/icons/svg-icons/PauseIcon.tsx +23 -0
  172. package/dist/src/components/icons/svg-icons/PlayIcon.d.ts +4 -0
  173. package/dist/src/components/icons/svg-icons/PlayIcon.d.ts.map +1 -0
  174. package/dist/src/components/icons/svg-icons/PlayIcon.js +3 -0
  175. package/dist/src/components/icons/svg-icons/PlayIcon.tsx +21 -0
  176. package/dist/src/components/icons/svg-icons/PlaybackSpeedIcon.d.ts +4 -0
  177. package/dist/src/components/icons/svg-icons/PlaybackSpeedIcon.d.ts.map +1 -0
  178. package/dist/src/components/icons/svg-icons/PlaybackSpeedIcon.js +3 -0
  179. package/dist/src/components/icons/svg-icons/PlaybackSpeedIcon.tsx +23 -0
  180. package/dist/src/components/icons/svg-icons/QualityIcon.d.ts +4 -0
  181. package/dist/src/components/icons/svg-icons/QualityIcon.d.ts.map +1 -0
  182. package/dist/src/components/icons/svg-icons/QualityIcon.js +3 -0
  183. package/dist/src/components/icons/svg-icons/QualityIcon.tsx +21 -0
  184. package/dist/src/components/icons/svg-icons/SettingsIcon.d.ts +4 -0
  185. package/dist/src/components/icons/svg-icons/SettingsIcon.d.ts.map +1 -0
  186. package/dist/src/components/icons/svg-icons/SettingsIcon.js +3 -0
  187. package/dist/src/components/icons/svg-icons/SettingsIcon.tsx +12 -0
  188. package/dist/src/components/icons/svg-icons/SliderIcon.d.ts +4 -0
  189. package/dist/src/components/icons/svg-icons/SliderIcon.d.ts.map +1 -0
  190. package/dist/src/components/icons/svg-icons/SliderIcon.js +3 -0
  191. package/dist/src/components/icons/svg-icons/SliderIcon.tsx +21 -0
  192. package/dist/src/components/icons/svg-icons/SubtitleIcon.d.ts +4 -0
  193. package/dist/src/components/icons/svg-icons/SubtitleIcon.d.ts.map +1 -0
  194. package/dist/src/components/icons/svg-icons/SubtitleIcon.js +3 -0
  195. package/dist/src/components/icons/svg-icons/SubtitleIcon.tsx +21 -0
  196. package/dist/src/components/icons/svg-icons/SubtitleOffIcon.d.ts +4 -0
  197. package/dist/src/components/icons/svg-icons/SubtitleOffIcon.d.ts.map +1 -0
  198. package/dist/src/components/icons/svg-icons/SubtitleOffIcon.js +3 -0
  199. package/dist/src/components/icons/svg-icons/SubtitleOffIcon.tsx +25 -0
  200. package/dist/src/components/icons/svg-icons/UnPiPIcon.d.ts +4 -0
  201. package/dist/src/components/icons/svg-icons/UnPiPIcon.d.ts.map +1 -0
  202. package/dist/src/components/icons/svg-icons/UnPiPIcon.js +5 -0
  203. package/dist/src/components/icons/svg-icons/UnPiPIcon.tsx +17 -0
  204. package/dist/src/components/icons/svg-icons/VolumeMutedIcon.d.ts +4 -0
  205. package/dist/src/components/icons/svg-icons/VolumeMutedIcon.d.ts.map +1 -0
  206. package/dist/src/components/icons/svg-icons/VolumeMutedIcon.js +3 -0
  207. package/dist/src/components/icons/svg-icons/VolumeMutedIcon.tsx +16 -0
  208. package/dist/src/components/icons/svg-icons/VolumeOneIcon.d.ts +4 -0
  209. package/dist/src/components/icons/svg-icons/VolumeOneIcon.d.ts.map +1 -0
  210. package/dist/src/components/icons/svg-icons/VolumeOneIcon.js +3 -0
  211. package/dist/src/components/icons/svg-icons/VolumeOneIcon.tsx +22 -0
  212. package/dist/src/components/icons/svg-icons/VolumeThreeIcon.d.ts +4 -0
  213. package/dist/src/components/icons/svg-icons/VolumeThreeIcon.d.ts.map +1 -0
  214. package/dist/src/components/icons/svg-icons/VolumeThreeIcon.js +3 -0
  215. package/dist/src/components/icons/svg-icons/VolumeThreeIcon.tsx +16 -0
  216. package/dist/src/components/icons/svg-icons/VolumeTwoIcon.d.ts +4 -0
  217. package/dist/src/components/icons/svg-icons/VolumeTwoIcon.d.ts.map +1 -0
  218. package/dist/src/components/icons/svg-icons/VolumeTwoIcon.js +3 -0
  219. package/dist/src/components/icons/svg-icons/VolumeTwoIcon.tsx +16 -0
  220. package/dist/src/components/legacy.d.ts +13 -0
  221. package/dist/src/components/legacy.d.ts.map +1 -0
  222. package/dist/src/components/legacy.js +52 -0
  223. package/dist/src/components/legacy.tsx +93 -0
  224. package/dist/src/components/media-metadata-display.d.ts +11 -0
  225. package/dist/src/components/media-metadata-display.d.ts.map +1 -0
  226. package/dist/src/components/media-metadata-display.js +20 -0
  227. package/dist/src/components/media-metadata-display.tsx +100 -0
  228. package/dist/src/components/media-player-audio.d.ts +9 -0
  229. package/dist/src/components/media-player-audio.d.ts.map +1 -0
  230. package/dist/src/components/media-player-audio.js +18 -0
  231. package/dist/src/components/media-player-audio.tsx +39 -0
  232. package/dist/src/components/media-player-controls.d.ts +23 -0
  233. package/dist/src/components/media-player-controls.d.ts.map +1 -0
  234. package/dist/src/components/media-player-controls.js +150 -0
  235. package/dist/src/components/media-player-controls.tsx +226 -0
  236. package/dist/src/components/media-player-error.d.ts +16 -0
  237. package/dist/src/components/media-player-error.d.ts.map +1 -0
  238. package/dist/src/components/media-player-error.js +85 -0
  239. package/dist/src/components/media-player-error.tsx +163 -0
  240. package/dist/src/components/media-player-fullscreen.d.ts +12 -0
  241. package/dist/src/components/media-player-fullscreen.d.ts.map +1 -0
  242. package/dist/src/components/media-player-fullscreen.js +68 -0
  243. package/dist/src/components/media-player-fullscreen.tsx +109 -0
  244. package/dist/src/components/media-player-hls.d.ts +23 -0
  245. package/dist/src/components/media-player-hls.d.ts.map +1 -0
  246. package/dist/src/components/media-player-hls.js +20 -0
  247. package/dist/src/components/media-player-hls.tsx +111 -0
  248. package/dist/src/components/media-player-loading.d.ts +12 -0
  249. package/dist/src/components/media-player-loading.d.ts.map +1 -0
  250. package/dist/src/components/media-player-loading.js +53 -0
  251. package/dist/src/components/media-player-loading.tsx +76 -0
  252. package/dist/src/components/media-player-play.d.ts +11 -0
  253. package/dist/src/components/media-player-play.d.ts.map +1 -0
  254. package/dist/src/components/media-player-play.js +44 -0
  255. package/dist/src/components/media-player-play.tsx +75 -0
  256. package/dist/src/components/media-player-root.d.ts +28 -0
  257. package/dist/src/components/media-player-root.d.ts.map +1 -0
  258. package/dist/src/components/media-player-root.js +243 -0
  259. package/dist/src/components/media-player-root.tsx +340 -0
  260. package/dist/src/components/media-player-seek.d.ts +15 -0
  261. package/dist/src/components/media-player-seek.d.ts.map +1 -0
  262. package/dist/src/components/media-player-seek.js +92 -0
  263. package/dist/src/components/media-player-seek.tsx +168 -0
  264. package/dist/src/components/media-player-time.d.ts +12 -0
  265. package/dist/src/components/media-player-time.d.ts.map +1 -0
  266. package/dist/src/components/media-player-time.js +57 -0
  267. package/dist/src/components/media-player-time.tsx +99 -0
  268. package/dist/src/components/media-player-tooltip.d.ts +13 -0
  269. package/dist/src/components/media-player-tooltip.d.ts.map +1 -0
  270. package/dist/src/components/media-player-tooltip.js +14 -0
  271. package/dist/src/components/media-player-tooltip.tsx +58 -0
  272. package/dist/src/components/media-player-video.d.ts +9 -0
  273. package/dist/src/components/media-player-video.d.ts.map +1 -0
  274. package/dist/src/components/media-player-video.js +18 -0
  275. package/dist/src/components/media-player-video.tsx +39 -0
  276. package/dist/src/components/media-player-volume.d.ts +13 -0
  277. package/dist/src/components/media-player-volume.d.ts.map +1 -0
  278. package/dist/src/components/media-player-volume.js +88 -0
  279. package/dist/src/components/media-player-volume.tsx +155 -0
  280. package/dist/src/components/media-player.d.ts +3 -0
  281. package/dist/src/components/media-player.d.ts.map +1 -0
  282. package/dist/src/components/media-player.js +67 -0
  283. package/dist/src/components/media-player.tsx +257 -0
  284. package/dist/src/components/media-suspense.d.ts +78 -0
  285. package/dist/src/components/media-suspense.d.ts.map +1 -0
  286. package/dist/src/components/media-suspense.js +173 -0
  287. package/dist/src/components/media-suspense.tsx +362 -0
  288. package/dist/src/components/player-settings-form.d.ts +8 -0
  289. package/dist/src/components/player-settings-form.d.ts.map +1 -0
  290. package/dist/src/components/player-settings-form.js +46 -0
  291. package/dist/src/components/player-settings-form.tsx +163 -0
  292. package/dist/src/components/react-player-wrapper.d.ts +64 -0
  293. package/dist/src/components/react-player-wrapper.d.ts.map +1 -0
  294. package/dist/src/components/react-player-wrapper.js +163 -0
  295. package/dist/src/components/react-player-wrapper.tsx +651 -0
  296. package/dist/src/components/simple-video-player.d.ts +9 -0
  297. package/dist/src/components/simple-video-player.d.ts.map +1 -0
  298. package/dist/src/components/simple-video-player.js +41 -0
  299. package/dist/src/components/simple-video-player.tsx +60 -0
  300. package/dist/src/components/ui/enhanced-seek-bar.d.ts +3 -0
  301. package/dist/src/components/ui/enhanced-seek-bar.d.ts.map +1 -0
  302. package/dist/src/components/ui/enhanced-seek-bar.js +112 -0
  303. package/dist/src/components/ui/enhanced-seek-bar.tsx +235 -0
  304. package/dist/src/components/ui/fullscreen-button.d.ts +3 -0
  305. package/dist/src/components/ui/fullscreen-button.d.ts.map +1 -0
  306. package/dist/src/components/ui/fullscreen-button.js +21 -0
  307. package/dist/src/components/ui/fullscreen-button.tsx +60 -0
  308. package/dist/src/components/ui/media-resource-preloader.d.ts +21 -0
  309. package/dist/src/components/ui/media-resource-preloader.d.ts.map +1 -0
  310. package/dist/src/components/ui/media-resource-preloader.js +295 -0
  311. package/dist/src/components/ui/media-resource-preloader.tsx +393 -0
  312. package/dist/src/components/ui/play-button.d.ts +3 -0
  313. package/dist/src/components/ui/play-button.d.ts.map +1 -0
  314. package/dist/src/components/ui/play-button.js +26 -0
  315. package/dist/src/components/ui/play-button.tsx +107 -0
  316. package/dist/src/components/ui/seek-bar.d.ts +3 -0
  317. package/dist/src/components/ui/seek-bar.d.ts.map +1 -0
  318. package/dist/src/components/ui/seek-bar.js +54 -0
  319. package/dist/src/components/ui/seek-bar.tsx +161 -0
  320. package/dist/src/components/ui/time-display.d.ts +3 -0
  321. package/dist/src/components/ui/time-display.d.ts.map +1 -0
  322. package/dist/src/components/ui/time-display.js +18 -0
  323. package/dist/src/components/ui/time-display.tsx +40 -0
  324. package/dist/src/components/ui/volume-control.d.ts +3 -0
  325. package/dist/src/components/ui/volume-control.d.ts.map +1 -0
  326. package/dist/src/components/ui/volume-control.js +71 -0
  327. package/dist/src/components/ui/volume-control.tsx +143 -0
  328. package/dist/src/components/unified/base-media-player.d.ts +18 -0
  329. package/dist/src/components/unified/base-media-player.d.ts.map +1 -0
  330. package/dist/src/components/unified/base-media-player.js +104 -0
  331. package/dist/src/components/unified/base-media-player.tsx +246 -0
  332. package/dist/src/components/unified/media-player.d.ts +37 -0
  333. package/dist/src/components/unified/media-player.d.ts.map +1 -0
  334. package/dist/src/components/unified/media-player.js +41 -0
  335. package/dist/src/components/unified/media-player.tsx +75 -0
  336. package/dist/src/components/variants/minimal/AccessibleMinimalPlayer.d.ts +42 -0
  337. package/dist/src/components/variants/minimal/AccessibleMinimalPlayer.d.ts.map +1 -0
  338. package/dist/src/components/variants/minimal/AccessibleMinimalPlayer.js +322 -0
  339. package/dist/src/components/variants/minimal/AccessibleMinimalPlayer.tsx +561 -0
  340. package/dist/src/components/variants/minimal/EnhancedMinimalMediaPlayer.d.ts +44 -0
  341. package/dist/src/components/variants/minimal/EnhancedMinimalMediaPlayer.d.ts.map +1 -0
  342. package/dist/src/components/variants/minimal/EnhancedMinimalMediaPlayer.js +280 -0
  343. package/dist/src/components/variants/minimal/EnhancedMinimalMediaPlayer.tsx +552 -0
  344. package/dist/src/components/variants/minimal/MinimalControls.d.ts +19 -0
  345. package/dist/src/components/variants/minimal/MinimalControls.d.ts.map +1 -0
  346. package/dist/src/components/variants/minimal/MinimalControls.js +19 -0
  347. package/dist/src/components/variants/minimal/MinimalControls.tsx +142 -0
  348. package/dist/src/components/variants/minimal/MinimalLoading.d.ts +10 -0
  349. package/dist/src/components/variants/minimal/MinimalLoading.d.ts.map +1 -0
  350. package/dist/src/components/variants/minimal/MinimalLoading.js +6 -0
  351. package/dist/src/components/variants/minimal/MinimalLoading.tsx +32 -0
  352. package/dist/src/components/variants/minimal/MinimalMediaPlayer.d.ts +38 -0
  353. package/dist/src/components/variants/minimal/MinimalMediaPlayer.d.ts.map +1 -0
  354. package/dist/src/components/variants/minimal/MinimalMediaPlayer.js +135 -0
  355. package/dist/src/components/variants/minimal/MinimalMediaPlayer.tsx +315 -0
  356. package/dist/src/components/variants/minimal/MinimalOverlay.d.ts +11 -0
  357. package/dist/src/components/variants/minimal/MinimalOverlay.d.ts.map +1 -0
  358. package/dist/src/components/variants/minimal/MinimalOverlay.js +15 -0
  359. package/dist/src/components/variants/minimal/MinimalOverlay.tsx +64 -0
  360. package/dist/src/components/variants/minimal/MinimalPlayButton.d.ts +9 -0
  361. package/dist/src/components/variants/minimal/MinimalPlayButton.d.ts.map +1 -0
  362. package/dist/src/components/variants/minimal/MinimalPlayButton.js +29 -0
  363. package/dist/src/components/variants/minimal/MinimalPlayButton.tsx +65 -0
  364. package/dist/src/components/variants/minimal/MinimalSeekBar.d.ts +7 -0
  365. package/dist/src/components/variants/minimal/MinimalSeekBar.d.ts.map +1 -0
  366. package/dist/src/components/variants/minimal/MinimalSeekBar.js +73 -0
  367. package/dist/src/components/variants/minimal/MinimalSeekBar.tsx +150 -0
  368. package/dist/src/components/variants/minimal/MinimalVolumeControl.d.ts +7 -0
  369. package/dist/src/components/variants/minimal/MinimalVolumeControl.d.ts.map +1 -0
  370. package/dist/src/components/variants/minimal/MinimalVolumeControl.js +29 -0
  371. package/dist/src/components/variants/minimal/MinimalVolumeControl.tsx +80 -0
  372. package/dist/src/components/variants/minimal/SimpleMinimalPlayer.d.ts +22 -0
  373. package/dist/src/components/variants/minimal/SimpleMinimalPlayer.d.ts.map +1 -0
  374. package/dist/src/components/variants/minimal/SimpleMinimalPlayer.js +51 -0
  375. package/dist/src/components/variants/minimal/SimpleMinimalPlayer.tsx +209 -0
  376. package/dist/src/components/variants/minimal/components/CenterPlayButton.d.ts +7 -0
  377. package/dist/src/components/variants/minimal/components/CenterPlayButton.d.ts.map +1 -0
  378. package/dist/src/components/variants/minimal/components/CenterPlayButton.js +8 -0
  379. package/dist/src/components/variants/minimal/components/CenterPlayButton.tsx +22 -0
  380. package/dist/src/components/variants/minimal/components/ControlBar.d.ts +43 -0
  381. package/dist/src/components/variants/minimal/components/ControlBar.d.ts.map +1 -0
  382. package/dist/src/components/variants/minimal/components/ControlBar.js +10 -0
  383. package/dist/src/components/variants/minimal/components/ControlBar.tsx +146 -0
  384. package/dist/src/components/variants/minimal/components/EnhancedSettingsMenu.d.ts +24 -0
  385. package/dist/src/components/variants/minimal/components/EnhancedSettingsMenu.d.ts.map +1 -0
  386. package/dist/src/components/variants/minimal/components/EnhancedSettingsMenu.js +68 -0
  387. package/dist/src/components/variants/minimal/components/EnhancedSettingsMenu.tsx +361 -0
  388. package/dist/src/components/variants/minimal/components/PlaybackControls.d.ts +9 -0
  389. package/dist/src/components/variants/minimal/components/PlaybackControls.d.ts.map +1 -0
  390. package/dist/src/components/variants/minimal/components/PlaybackControls.js +9 -0
  391. package/dist/src/components/variants/minimal/components/PlaybackControls.tsx +51 -0
  392. package/dist/src/components/variants/minimal/components/RightControls.d.ts +25 -0
  393. package/dist/src/components/variants/minimal/components/RightControls.d.ts.map +1 -0
  394. package/dist/src/components/variants/minimal/components/RightControls.js +40 -0
  395. package/dist/src/components/variants/minimal/components/RightControls.tsx +173 -0
  396. package/dist/src/components/variants/minimal/components/SeekBar.d.ts +11 -0
  397. package/dist/src/components/variants/minimal/components/SeekBar.d.ts.map +1 -0
  398. package/dist/src/components/variants/minimal/components/SeekBar.js +43 -0
  399. package/dist/src/components/variants/minimal/components/SeekBar.tsx +131 -0
  400. package/dist/src/components/variants/minimal/components/SettingsDropdown.d.ts +9 -0
  401. package/dist/src/components/variants/minimal/components/SettingsDropdown.d.ts.map +1 -0
  402. package/dist/src/components/variants/minimal/components/SettingsDropdown.js +18 -0
  403. package/dist/src/components/variants/minimal/components/SettingsDropdown.tsx +70 -0
  404. package/dist/src/components/variants/minimal/components/SubtitleDisplay.d.ts +7 -0
  405. package/dist/src/components/variants/minimal/components/SubtitleDisplay.d.ts.map +1 -0
  406. package/dist/src/components/variants/minimal/components/SubtitleDisplay.js +6 -0
  407. package/dist/src/components/variants/minimal/components/SubtitleDisplay.tsx +21 -0
  408. package/dist/src/components/variants/minimal/components/TimeDisplay.d.ts +7 -0
  409. package/dist/src/components/variants/minimal/components/TimeDisplay.d.ts.map +1 -0
  410. package/dist/src/components/variants/minimal/components/TimeDisplay.js +5 -0
  411. package/dist/src/components/variants/minimal/components/TimeDisplay.tsx +18 -0
  412. package/dist/src/components/variants/minimal/components/VideoElement.d.ts +13 -0
  413. package/dist/src/components/variants/minimal/components/VideoElement.d.ts.map +1 -0
  414. package/dist/src/components/variants/minimal/components/VideoElement.js +4 -0
  415. package/dist/src/components/variants/minimal/components/VideoElement.tsx +40 -0
  416. package/dist/src/components/variants/minimal/components/VolumeControl.d.ts +13 -0
  417. package/dist/src/components/variants/minimal/components/VolumeControl.d.ts.map +1 -0
  418. package/dist/src/components/variants/minimal/components/VolumeControl.js +99 -0
  419. package/dist/src/components/variants/minimal/components/VolumeControl.tsx +217 -0
  420. package/dist/src/components/variants/minimal/index.d.ts +17 -0
  421. package/dist/src/components/variants/minimal/index.d.ts.map +1 -0
  422. package/dist/src/components/variants/minimal/index.js +8 -0
  423. package/dist/src/components/variants/minimal/index.ts +23 -0
  424. package/dist/src/components/video-player.d.ts +3 -0
  425. package/dist/src/components/video-player.d.ts.map +1 -0
  426. package/dist/src/components/video-player.js +38 -0
  427. package/dist/src/components/video-player.tsx +100 -0
  428. package/dist/src/context/error-handling.d.ts +72 -0
  429. package/dist/src/context/error-handling.d.ts.map +1 -0
  430. package/dist/src/context/error-handling.js +300 -0
  431. package/dist/src/context/error-handling.ts +394 -0
  432. package/dist/src/context/media-context.d.ts +104 -0
  433. package/dist/src/context/media-context.d.ts.map +1 -0
  434. package/dist/src/context/media-context.js +121 -0
  435. package/dist/src/context/media-context.tsx +208 -0
  436. package/dist/src/context/media-provider.d.ts +26 -0
  437. package/dist/src/context/media-provider.d.ts.map +1 -0
  438. package/dist/src/context/media-provider.js +164 -0
  439. package/dist/src/context/media-provider.tsx +265 -0
  440. package/dist/src/context/media-store.d.ts +33 -0
  441. package/dist/src/context/media-store.d.ts.map +1 -0
  442. package/dist/src/context/media-store.js +273 -0
  443. package/dist/src/context/media-store.ts +379 -0
  444. package/dist/src/context/persistence.d.ts +83 -0
  445. package/dist/src/context/persistence.d.ts.map +1 -0
  446. package/dist/src/context/persistence.js +356 -0
  447. package/dist/src/context/persistence.ts +453 -0
  448. package/dist/src/core/events/event-system.d.ts +170 -0
  449. package/dist/src/core/events/event-system.d.ts.map +1 -0
  450. package/dist/src/core/events/event-system.js +288 -0
  451. package/dist/src/core/events/event-system.ts +442 -0
  452. package/dist/src/core/events/hooks.d.ts +33 -0
  453. package/dist/src/core/events/hooks.d.ts.map +1 -0
  454. package/dist/src/core/events/hooks.js +198 -0
  455. package/dist/src/core/events/hooks.ts +302 -0
  456. package/dist/src/core/events/index.d.ts +6 -0
  457. package/dist/src/core/events/index.d.ts.map +1 -0
  458. package/dist/src/core/events/index.js +7 -0
  459. package/dist/src/core/events/index.ts +22 -0
  460. package/dist/src/core/events/middleware.d.ts +39 -0
  461. package/dist/src/core/events/middleware.d.ts.map +1 -0
  462. package/dist/src/core/events/middleware.js +219 -0
  463. package/dist/src/core/events/middleware.ts +269 -0
  464. package/dist/src/core/index.d.ts +8 -0
  465. package/dist/src/core/index.d.ts.map +1 -0
  466. package/dist/src/core/index.js +15 -0
  467. package/dist/src/core/index.ts +22 -0
  468. package/dist/src/core/optimization/bundle-optimizer.d.ts +44 -0
  469. package/dist/src/core/optimization/bundle-optimizer.d.ts.map +1 -0
  470. package/dist/src/core/optimization/bundle-optimizer.js +217 -0
  471. package/dist/src/core/optimization/bundle-optimizer.tsx +308 -0
  472. package/dist/src/core/performance/cicd.d.ts +8 -0
  473. package/dist/src/core/performance/cicd.d.ts.map +1 -0
  474. package/dist/src/core/performance/cicd.js +83 -0
  475. package/dist/src/core/performance/cicd.ts +96 -0
  476. package/dist/src/core/performance/index.d.ts +10 -0
  477. package/dist/src/core/performance/index.d.ts.map +1 -0
  478. package/dist/src/core/performance/index.js +14 -0
  479. package/dist/src/core/performance/index.ts +38 -0
  480. package/dist/src/core/performance/media-loading-optimizer.d.ts +105 -0
  481. package/dist/src/core/performance/media-loading-optimizer.d.ts.map +1 -0
  482. package/dist/src/core/performance/media-loading-optimizer.js +404 -0
  483. package/dist/src/core/performance/media-loading-optimizer.ts +538 -0
  484. package/dist/src/core/performance/performance-budgets.d.ts +68 -0
  485. package/dist/src/core/performance/performance-budgets.d.ts.map +1 -0
  486. package/dist/src/core/performance/performance-budgets.js +326 -0
  487. package/dist/src/core/performance/performance-budgets.ts +432 -0
  488. package/dist/src/core/performance/performance-monitor.d.ts +95 -0
  489. package/dist/src/core/performance/performance-monitor.d.ts.map +1 -0
  490. package/dist/src/core/performance/performance-monitor.js +297 -0
  491. package/dist/src/core/performance/performance-monitor.tsx +476 -0
  492. package/dist/src/core/performance/performance-testing.d.ts +69 -0
  493. package/dist/src/core/performance/performance-testing.d.ts.map +1 -0
  494. package/dist/src/core/performance/performance-testing.js +314 -0
  495. package/dist/src/core/performance/performance-testing.ts +459 -0
  496. package/dist/src/core/plugins/base-plugin.d.ts +52 -0
  497. package/dist/src/core/plugins/base-plugin.d.ts.map +1 -0
  498. package/dist/src/core/plugins/base-plugin.js +151 -0
  499. package/dist/src/core/plugins/base-plugin.ts +224 -0
  500. package/dist/src/core/plugins/enhanced-plugin-system.d.ts +160 -0
  501. package/dist/src/core/plugins/enhanced-plugin-system.d.ts.map +1 -0
  502. package/dist/src/core/plugins/enhanced-plugin-system.js +305 -0
  503. package/dist/src/core/plugins/enhanced-plugin-system.ts +417 -0
  504. package/dist/src/core/plugins/examples/analytics-plugin.d.ts +30 -0
  505. package/dist/src/core/plugins/examples/analytics-plugin.d.ts.map +1 -0
  506. package/dist/src/core/plugins/examples/analytics-plugin.js +191 -0
  507. package/dist/src/core/plugins/examples/analytics-plugin.ts +242 -0
  508. package/dist/src/core/plugins/index.d.ts +8 -0
  509. package/dist/src/core/plugins/index.d.ts.map +1 -0
  510. package/dist/src/core/plugins/index.js +9 -0
  511. package/dist/src/core/plugins/index.ts +39 -0
  512. package/dist/src/core/plugins/registry.d.ts +31 -0
  513. package/dist/src/core/plugins/registry.d.ts.map +1 -0
  514. package/dist/src/core/plugins/registry.js +261 -0
  515. package/dist/src/core/plugins/registry.ts +327 -0
  516. package/dist/src/core/plugins/types.d.ts +101 -0
  517. package/dist/src/core/plugins/types.d.ts.map +1 -0
  518. package/dist/src/core/plugins/types.js +31 -0
  519. package/dist/src/core/plugins/types.ts +159 -0
  520. package/dist/src/core/plugins/utils.d.ts +38 -0
  521. package/dist/src/core/plugins/utils.d.ts.map +1 -0
  522. package/dist/src/core/plugins/utils.js +274 -0
  523. package/dist/src/core/plugins/utils.ts +316 -0
  524. package/dist/src/core/progressive-loading.d.ts +88 -0
  525. package/dist/src/core/progressive-loading.d.ts.map +1 -0
  526. package/dist/src/core/progressive-loading.js +239 -0
  527. package/dist/src/core/progressive-loading.tsx +322 -0
  528. package/dist/src/core/providers/enhanced-hls-provider.d.ts +50 -0
  529. package/dist/src/core/providers/enhanced-hls-provider.d.ts.map +1 -0
  530. package/dist/src/core/providers/enhanced-hls-provider.js +273 -0
  531. package/dist/src/core/providers/enhanced-hls-provider.ts +308 -0
  532. package/dist/src/core/providers/service-provider.d.ts +49 -0
  533. package/dist/src/core/providers/service-provider.d.ts.map +1 -0
  534. package/dist/src/core/providers/service-provider.js +105 -0
  535. package/dist/src/core/providers/service-provider.tsx +168 -0
  536. package/dist/src/core/utils.d.ts +25 -0
  537. package/dist/src/core/utils.d.ts.map +1 -0
  538. package/dist/src/core/utils.js +21 -0
  539. package/dist/src/core/utils.tsx +38 -0
  540. package/dist/src/features/media-session/media-session-manager.d.ts +132 -0
  541. package/dist/src/features/media-session/media-session-manager.d.ts.map +1 -0
  542. package/dist/src/features/media-session/media-session-manager.js +331 -0
  543. package/dist/src/features/media-session/media-session-manager.ts +429 -0
  544. package/dist/src/features/picture-in-picture/pip-manager.d.ts +94 -0
  545. package/dist/src/features/picture-in-picture/pip-manager.d.ts.map +1 -0
  546. package/dist/src/features/picture-in-picture/pip-manager.js +353 -0
  547. package/dist/src/features/picture-in-picture/pip-manager.ts +429 -0
  548. package/dist/src/features/playlist/playlist-manager.d.ts +208 -0
  549. package/dist/src/features/playlist/playlist-manager.d.ts.map +1 -0
  550. package/dist/src/features/playlist/playlist-manager.js +475 -0
  551. package/dist/src/features/playlist/playlist-manager.ts +606 -0
  552. package/dist/src/features/subtitles/subtitle-manager.d.ts +136 -0
  553. package/dist/src/features/subtitles/subtitle-manager.d.ts.map +1 -0
  554. package/dist/src/features/subtitles/subtitle-manager.js +335 -0
  555. package/dist/src/features/subtitles/subtitle-manager.ts +441 -0
  556. package/dist/src/features/subtitles/subtitle-parser.d.ts +60 -0
  557. package/dist/src/features/subtitles/subtitle-parser.d.ts.map +1 -0
  558. package/dist/src/features/subtitles/subtitle-parser.js +217 -0
  559. package/dist/src/features/subtitles/subtitle-parser.ts +280 -0
  560. package/dist/src/features/thumbnails/thumbnail-generator.d.ts +136 -0
  561. package/dist/src/features/thumbnails/thumbnail-generator.d.ts.map +1 -0
  562. package/dist/src/features/thumbnails/thumbnail-generator.js +388 -0
  563. package/dist/src/features/thumbnails/thumbnail-generator.ts +519 -0
  564. package/dist/src/hooks/accessibility/index.d.ts +5 -0
  565. package/dist/src/hooks/accessibility/index.d.ts.map +1 -0
  566. package/dist/src/hooks/accessibility/index.js +4 -0
  567. package/dist/src/hooks/accessibility/index.ts +27 -0
  568. package/dist/src/hooks/accessibility/use-accessibility-preferences.d.ts +14 -0
  569. package/dist/src/hooks/accessibility/use-accessibility-preferences.d.ts.map +1 -0
  570. package/dist/src/hooks/accessibility/use-accessibility-preferences.js +156 -0
  571. package/dist/src/hooks/accessibility/use-accessibility-preferences.ts +188 -0
  572. package/dist/src/hooks/accessibility/use-focus-management.d.ts +31 -0
  573. package/dist/src/hooks/accessibility/use-focus-management.d.ts.map +1 -0
  574. package/dist/src/hooks/accessibility/use-focus-management.js +142 -0
  575. package/dist/src/hooks/accessibility/use-focus-management.ts +176 -0
  576. package/dist/src/hooks/accessibility/use-keyboard-shortcuts.d.ts +38 -0
  577. package/dist/src/hooks/accessibility/use-keyboard-shortcuts.d.ts.map +1 -0
  578. package/dist/src/hooks/accessibility/use-keyboard-shortcuts.js +101 -0
  579. package/dist/src/hooks/accessibility/use-keyboard-shortcuts.ts +144 -0
  580. package/dist/src/hooks/accessibility/use-screen-reader.d.ts +22 -0
  581. package/dist/src/hooks/accessibility/use-screen-reader.d.ts.map +1 -0
  582. package/dist/src/hooks/accessibility/use-screen-reader.js +148 -0
  583. package/dist/src/hooks/accessibility/use-screen-reader.ts +182 -0
  584. package/dist/src/hooks/core/index.d.ts +18 -0
  585. package/dist/src/hooks/core/index.d.ts.map +1 -0
  586. package/dist/src/hooks/core/index.js +19 -0
  587. package/dist/src/hooks/core/index.ts +47 -0
  588. package/dist/src/hooks/legacy.d.ts +18 -0
  589. package/dist/src/hooks/legacy.d.ts.map +1 -0
  590. package/dist/src/hooks/legacy.js +17 -0
  591. package/dist/src/hooks/legacy.ts +27 -0
  592. package/dist/src/hooks/use-enhanced-media-player.d.ts +88 -0
  593. package/dist/src/hooks/use-enhanced-media-player.d.ts.map +1 -0
  594. package/dist/src/hooks/use-enhanced-media-player.js +395 -0
  595. package/dist/src/hooks/use-enhanced-media-player.ts +485 -0
  596. package/dist/src/hooks/use-intelligent-preloading.d.ts +66 -0
  597. package/dist/src/hooks/use-intelligent-preloading.d.ts.map +1 -0
  598. package/dist/src/hooks/use-intelligent-preloading.js +258 -0
  599. package/dist/src/hooks/use-intelligent-preloading.ts +358 -0
  600. package/dist/src/hooks/use-keyboard-controls.d.ts +13 -0
  601. package/dist/src/hooks/use-keyboard-controls.d.ts.map +1 -0
  602. package/dist/src/hooks/use-keyboard-controls.js +83 -0
  603. package/dist/src/hooks/use-keyboard-controls.ts +115 -0
  604. package/dist/src/hooks/use-media-actions.d.ts +62 -0
  605. package/dist/src/hooks/use-media-actions.d.ts.map +1 -0
  606. package/dist/src/hooks/use-media-actions.js +121 -0
  607. package/dist/src/hooks/use-media-actions.ts +175 -0
  608. package/dist/src/hooks/use-media-metadata.d.ts +11 -0
  609. package/dist/src/hooks/use-media-metadata.d.ts.map +1 -0
  610. package/dist/src/hooks/use-media-metadata.js +74 -0
  611. package/dist/src/hooks/use-media-metadata.ts +89 -0
  612. package/dist/src/hooks/use-media-optimistic.d.ts +36 -0
  613. package/dist/src/hooks/use-media-optimistic.d.ts.map +1 -0
  614. package/dist/src/hooks/use-media-optimistic.js +205 -0
  615. package/dist/src/hooks/use-media-optimistic.ts +270 -0
  616. package/dist/src/hooks/use-media-player.d.ts +31 -0
  617. package/dist/src/hooks/use-media-player.d.ts.map +1 -0
  618. package/dist/src/hooks/use-media-player.js +251 -0
  619. package/dist/src/hooks/use-media-player.ts +312 -0
  620. package/dist/src/hooks/use-media-state.d.ts +17 -0
  621. package/dist/src/hooks/use-media-state.d.ts.map +1 -0
  622. package/dist/src/hooks/use-media-state.js +162 -0
  623. package/dist/src/hooks/use-media-state.ts +190 -0
  624. package/dist/src/hooks/use-memory-optimization.d.ts +40 -0
  625. package/dist/src/hooks/use-memory-optimization.d.ts.map +1 -0
  626. package/dist/src/hooks/use-memory-optimization.js +288 -0
  627. package/dist/src/hooks/use-memory-optimization.ts +358 -0
  628. package/dist/src/hooks/use-optimistic-controls.d.ts +22 -0
  629. package/dist/src/hooks/use-optimistic-controls.d.ts.map +1 -0
  630. package/dist/src/hooks/use-optimistic-controls.js +60 -0
  631. package/dist/src/hooks/use-optimistic-controls.ts +92 -0
  632. package/dist/src/hooks/use-optimized-media.d.ts +46 -0
  633. package/dist/src/hooks/use-optimized-media.d.ts.map +1 -0
  634. package/dist/src/hooks/use-optimized-media.js +211 -0
  635. package/dist/src/hooks/use-optimized-media.ts +263 -0
  636. package/dist/src/hooks/use-touch-gestures.d.ts +47 -0
  637. package/dist/src/hooks/use-touch-gestures.d.ts.map +1 -0
  638. package/dist/src/hooks/use-touch-gestures.js +289 -0
  639. package/dist/src/hooks/use-touch-gestures.ts +417 -0
  640. package/dist/src/hooks/useEnhancedSubtitles.d.ts +39 -0
  641. package/dist/src/hooks/useEnhancedSubtitles.d.ts.map +1 -0
  642. package/dist/src/hooks/useEnhancedSubtitles.js +205 -0
  643. package/dist/src/hooks/useEnhancedSubtitles.ts +258 -0
  644. package/dist/src/hooks/useKeyboardShortcuts.d.ts +10 -0
  645. package/dist/src/hooks/useKeyboardShortcuts.d.ts.map +1 -0
  646. package/dist/src/hooks/useKeyboardShortcuts.js +59 -0
  647. package/dist/src/hooks/useKeyboardShortcuts.ts +74 -0
  648. package/dist/src/hooks/useMediaControls.d.ts +9 -0
  649. package/dist/src/hooks/useMediaControls.d.ts.map +1 -0
  650. package/dist/src/hooks/useMediaControls.js +44 -0
  651. package/dist/src/hooks/useMediaControls.ts +52 -0
  652. package/dist/src/hooks/useScreenshot.d.ts +4 -0
  653. package/dist/src/hooks/useScreenshot.d.ts.map +1 -0
  654. package/dist/src/hooks/useScreenshot.js +56 -0
  655. package/dist/src/hooks/useScreenshot.ts +57 -0
  656. package/dist/src/hooks/useSubtitles.d.ts +8 -0
  657. package/dist/src/hooks/useSubtitles.d.ts.map +1 -0
  658. package/dist/src/hooks/useSubtitles.js +73 -0
  659. package/dist/src/hooks/useSubtitles.ts +91 -0
  660. package/dist/src/hooks/useVideoPlayer.d.ts +32 -0
  661. package/dist/src/hooks/useVideoPlayer.d.ts.map +1 -0
  662. package/dist/src/hooks/useVideoPlayer.js +184 -0
  663. package/dist/src/hooks/useVideoPlayer.ts +232 -0
  664. package/dist/src/icons/components/FullscreenIcon.d.ts +3 -0
  665. package/dist/src/icons/components/FullscreenIcon.d.ts.map +1 -0
  666. package/dist/src/icons/components/FullscreenIcon.js +11 -0
  667. package/dist/src/icons/components/FullscreenIcon.tsx +37 -0
  668. package/dist/src/icons/components/SettingsIcon.d.ts +3 -0
  669. package/dist/src/icons/components/SettingsIcon.d.ts.map +1 -0
  670. package/dist/src/icons/components/SettingsIcon.js +11 -0
  671. package/dist/src/icons/components/SettingsIcon.tsx +38 -0
  672. package/dist/src/icons/components/animated/LoadingIcon.d.ts +3 -0
  673. package/dist/src/icons/components/animated/LoadingIcon.d.ts.map +1 -0
  674. package/dist/src/icons/components/animated/LoadingIcon.js +11 -0
  675. package/dist/src/icons/components/animated/LoadingIcon.tsx +43 -0
  676. package/dist/src/icons/components/animated/PlayPauseIcon.d.ts +7 -0
  677. package/dist/src/icons/components/animated/PlayPauseIcon.d.ts.map +1 -0
  678. package/dist/src/icons/components/animated/PlayPauseIcon.js +9 -0
  679. package/dist/src/icons/components/animated/PlayPauseIcon.tsx +50 -0
  680. package/dist/src/icons/components/media/PauseIcon.d.ts +3 -0
  681. package/dist/src/icons/components/media/PauseIcon.d.ts.map +1 -0
  682. package/dist/src/icons/components/media/PauseIcon.js +12 -0
  683. package/dist/src/icons/components/media/PauseIcon.tsx +39 -0
  684. package/dist/src/icons/components/media/PlayIcon.d.ts +3 -0
  685. package/dist/src/icons/components/media/PlayIcon.d.ts.map +1 -0
  686. package/dist/src/icons/components/media/PlayIcon.js +12 -0
  687. package/dist/src/icons/components/media/PlayIcon.tsx +38 -0
  688. package/dist/src/icons/components/volume/VolumeIcon.d.ts +3 -0
  689. package/dist/src/icons/components/volume/VolumeIcon.d.ts.map +1 -0
  690. package/dist/src/icons/components/volume/VolumeIcon.js +11 -0
  691. package/dist/src/icons/components/volume/VolumeIcon.tsx +39 -0
  692. package/dist/src/icons/components/volume/VolumeOffIcon.d.ts +3 -0
  693. package/dist/src/icons/components/volume/VolumeOffIcon.d.ts.map +1 -0
  694. package/dist/src/icons/components/volume/VolumeOffIcon.js +11 -0
  695. package/dist/src/icons/components/volume/VolumeOffIcon.tsx +39 -0
  696. package/dist/src/icons/index.d.ts +28 -0
  697. package/dist/src/icons/index.d.ts.map +1 -0
  698. package/dist/src/icons/index.js +45 -0
  699. package/dist/src/icons/index.ts +56 -0
  700. package/dist/src/icons/provider.d.ts +13 -0
  701. package/dist/src/icons/provider.d.ts.map +1 -0
  702. package/dist/src/icons/provider.js +37 -0
  703. package/dist/src/icons/provider.tsx +64 -0
  704. package/dist/src/icons/types.d.ts +18 -0
  705. package/dist/src/icons/types.d.ts.map +1 -0
  706. package/dist/src/icons/types.js +1 -0
  707. package/dist/src/icons/types.ts +40 -0
  708. package/dist/src/index-enhanced.d.ts +13 -0
  709. package/dist/src/index-enhanced.d.ts.map +1 -0
  710. package/dist/src/index-enhanced.js +16 -0
  711. package/dist/src/index-enhanced.ts +35 -0
  712. package/dist/src/index-legacy.d.ts +81 -0
  713. package/dist/src/index-legacy.d.ts.map +1 -0
  714. package/dist/src/index-legacy.js +97 -0
  715. package/dist/src/index-legacy.ts +326 -0
  716. package/dist/src/index.css +102 -0
  717. package/dist/src/index.d.ts +38 -0
  718. package/dist/src/index.d.ts.map +1 -0
  719. package/dist/src/index.js +90 -0
  720. package/dist/src/index.minimal.d.ts +2 -0
  721. package/dist/src/index.minimal.d.ts.map +1 -0
  722. package/dist/src/index.minimal.js +3 -0
  723. package/dist/src/index.minimal.ts +4 -0
  724. package/dist/src/index.ts +216 -0
  725. package/dist/src/lib/deprecation.d.ts +7 -0
  726. package/dist/src/lib/deprecation.d.ts.map +1 -0
  727. package/dist/src/lib/deprecation.js +31 -0
  728. package/dist/src/lib/deprecation.ts +51 -0
  729. package/dist/src/lib/format-time.d.ts +9 -0
  730. package/dist/src/lib/format-time.d.ts.map +1 -0
  731. package/dist/src/lib/format-time.js +32 -0
  732. package/dist/src/lib/format-time.ts +37 -0
  733. package/dist/src/lib/index.d.ts +3 -0
  734. package/dist/src/lib/index.d.ts.map +1 -0
  735. package/dist/src/lib/index.js +3 -0
  736. package/dist/src/lib/index.ts +3 -0
  737. package/dist/src/lib/utils.d.ts +3 -0
  738. package/dist/src/lib/utils.d.ts.map +1 -0
  739. package/dist/src/lib/utils.js +5 -0
  740. package/dist/src/lib/utils.ts +6 -0
  741. package/dist/src/styles/globals.css +462 -0
  742. package/dist/src/styles/minimal-player.css +589 -0
  743. package/dist/src/styles/pixel-art.css +46 -0
  744. package/dist/src/styles/videojs.css +100 -0
  745. package/dist/src/test/setup.d.ts +2 -0
  746. package/dist/src/test/setup.d.ts.map +1 -0
  747. package/dist/src/test/setup.js +65 -0
  748. package/dist/src/test/setup.ts +79 -0
  749. package/dist/src/types/events.d.ts +41 -0
  750. package/dist/src/types/events.d.ts.map +1 -0
  751. package/dist/src/types/events.js +2 -0
  752. package/dist/src/types/events.ts +47 -0
  753. package/dist/src/types/formats.d.ts +45 -0
  754. package/dist/src/types/formats.d.ts.map +1 -0
  755. package/dist/src/types/formats.js +63 -0
  756. package/dist/src/types/formats.ts +95 -0
  757. package/dist/src/types/index.d.ts +128 -0
  758. package/dist/src/types/index.d.ts.map +1 -0
  759. package/dist/src/types/index.js +4 -0
  760. package/dist/src/types/index.ts +225 -0
  761. package/dist/src/types/videojs-plugins.d.ts +14 -0
  762. package/dist/styles/minimal-player.css +589 -0
  763. package/dist/utils-Db13763z.cjs +9 -0
  764. package/dist/utils-Db13763z.cjs.map +1 -0
  765. package/dist/{utils-BnscpYYd.js → utils-nTO4AnHo.js} +210 -199
  766. package/dist/utils-nTO4AnHo.js.map +1 -0
  767. package/dist/utils.js +1 -1
  768. package/dist/utils.mjs +1 -1
  769. package/package.json +7 -4
  770. package/src/adapters/videojs-adapter.d.ts +38 -0
  771. package/src/adapters/videojs-adapter.d.ts.map +1 -0
  772. package/src/adapters/videojs-adapter.js +350 -0
  773. package/src/components/AnimateLoading.d.ts +9 -0
  774. package/src/components/AnimateLoading.d.ts.map +1 -0
  775. package/src/components/AnimateLoading.js +41 -0
  776. package/src/components/AnimateLoading.tsx +1 -1
  777. package/src/components/LoadingState.d.ts +33 -0
  778. package/src/components/LoadingState.d.ts.map +1 -0
  779. package/src/components/LoadingState.js +111 -0
  780. package/src/components/accessibility/keyboard-help-overlay.d.ts +17 -0
  781. package/src/components/accessibility/keyboard-help-overlay.d.ts.map +1 -0
  782. package/src/components/accessibility/keyboard-help-overlay.js +90 -0
  783. package/src/components/audio-player.d.ts +3 -0
  784. package/src/components/audio-player.d.ts.map +1 -0
  785. package/src/components/audio-player.js +31 -0
  786. package/src/components/basic/index.d.ts +26 -0
  787. package/src/components/basic/index.d.ts.map +1 -0
  788. package/src/components/basic/index.js +29 -0
  789. package/src/components/enhanced/advanced-features.d.ts +45 -0
  790. package/src/components/enhanced/advanced-features.d.ts.map +1 -0
  791. package/src/components/enhanced/advanced-features.js +64 -0
  792. package/src/components/enhanced/debug-panel.d.ts +70 -0
  793. package/src/components/enhanced/debug-panel.d.ts.map +1 -0
  794. package/src/components/enhanced/debug-panel.js +94 -0
  795. package/src/components/enhanced/debug-panel.tsx +1 -1
  796. package/src/components/enhanced/enhanced-controls.d.ts +50 -0
  797. package/src/components/enhanced/enhanced-controls.d.ts.map +1 -0
  798. package/src/components/enhanced/enhanced-controls.js +233 -0
  799. package/src/components/enhanced/enhanced-media-player.d.ts +26 -0
  800. package/src/components/enhanced/enhanced-media-player.d.ts.map +1 -0
  801. package/src/components/enhanced/enhanced-media-player.js +316 -0
  802. package/src/components/enhanced/error-handling.d.ts +36 -0
  803. package/src/components/enhanced/error-handling.d.ts.map +1 -0
  804. package/src/components/enhanced/error-handling.js +153 -0
  805. package/src/components/enhanced/index.d.ts +7 -0
  806. package/src/components/enhanced/index.d.ts.map +1 -0
  807. package/src/components/enhanced/index.js +10 -0
  808. package/src/components/enhanced/media-player-enhanced.d.ts +21 -0
  809. package/src/components/enhanced/media-player-enhanced.d.ts.map +1 -0
  810. package/src/components/enhanced/media-player-enhanced.js +250 -0
  811. package/src/components/examples/basic-video-player.d.ts +10 -0
  812. package/src/components/examples/basic-video-player.d.ts.map +1 -0
  813. package/src/components/examples/basic-video-player.js +16 -0
  814. package/src/components/examples/custom-controls-example.d.ts +10 -0
  815. package/src/components/examples/custom-controls-example.d.ts.map +1 -0
  816. package/src/components/examples/custom-controls-example.js +12 -0
  817. package/src/components/examples/enhanced-controls-example.d.ts +9 -0
  818. package/src/components/examples/enhanced-controls-example.d.ts.map +1 -0
  819. package/src/components/examples/enhanced-controls-example.js +18 -0
  820. package/src/components/examples/enhanced-media-player-example.d.ts +9 -0
  821. package/src/components/examples/enhanced-media-player-example.d.ts.map +1 -0
  822. package/src/components/examples/enhanced-media-player-example.js +13 -0
  823. package/src/components/examples/loading-states-demo.d.ts +2 -0
  824. package/src/components/examples/loading-states-demo.d.ts.map +1 -0
  825. package/src/components/examples/loading-states-demo.js +41 -0
  826. package/src/components/examples/react-19-demo.d.ts +10 -0
  827. package/src/components/examples/react-19-demo.d.ts.map +1 -0
  828. package/src/components/examples/react-19-demo.js +104 -0
  829. package/src/components/examples/volume-orientation-demo.d.ts +2 -0
  830. package/src/components/examples/volume-orientation-demo.d.ts.map +1 -0
  831. package/src/components/examples/volume-orientation-demo.js +31 -0
  832. package/src/components/icon-demo.d.ts +2 -0
  833. package/src/components/icon-demo.d.ts.map +1 -0
  834. package/src/components/icon-demo.js +16 -0
  835. package/src/components/icons/index.d.ts +36 -0
  836. package/src/components/icons/index.d.ts.map +1 -0
  837. package/src/components/icons/index.js +59 -0
  838. package/src/components/icons/svg-icons/ArrowLeftIcon.d.ts +4 -0
  839. package/src/components/icons/svg-icons/ArrowLeftIcon.d.ts.map +1 -0
  840. package/src/components/icons/svg-icons/ArrowLeftIcon.js +3 -0
  841. package/src/components/icons/svg-icons/ArrowRightIcon.d.ts +4 -0
  842. package/src/components/icons/svg-icons/ArrowRightIcon.d.ts.map +1 -0
  843. package/src/components/icons/svg-icons/ArrowRightIcon.js +3 -0
  844. package/src/components/icons/svg-icons/AudioIcon.d.ts +4 -0
  845. package/src/components/icons/svg-icons/AudioIcon.d.ts.map +1 -0
  846. package/src/components/icons/svg-icons/AudioIcon.js +4 -0
  847. package/src/components/icons/svg-icons/BackwardIcon.d.ts +4 -0
  848. package/src/components/icons/svg-icons/BackwardIcon.d.ts.map +1 -0
  849. package/src/components/icons/svg-icons/BackwardIcon.js +3 -0
  850. package/src/components/icons/svg-icons/CameraIcon.d.ts +4 -0
  851. package/src/components/icons/svg-icons/CameraIcon.d.ts.map +1 -0
  852. package/src/components/icons/svg-icons/CameraIcon.js +4 -0
  853. package/src/components/icons/svg-icons/CheckIcon.d.ts +4 -0
  854. package/src/components/icons/svg-icons/CheckIcon.d.ts.map +1 -0
  855. package/src/components/icons/svg-icons/CheckIcon.js +4 -0
  856. package/src/components/icons/svg-icons/EnablePiPIcon.d.ts +4 -0
  857. package/src/components/icons/svg-icons/EnablePiPIcon.d.ts.map +1 -0
  858. package/src/components/icons/svg-icons/EnablePiPIcon.js +5 -0
  859. package/src/components/icons/svg-icons/ForwardIcon.d.ts +4 -0
  860. package/src/components/icons/svg-icons/ForwardIcon.d.ts.map +1 -0
  861. package/src/components/icons/svg-icons/ForwardIcon.js +3 -0
  862. package/src/components/icons/svg-icons/FullscreenEnterIcon.d.ts +4 -0
  863. package/src/components/icons/svg-icons/FullscreenEnterIcon.d.ts.map +1 -0
  864. package/src/components/icons/svg-icons/FullscreenEnterIcon.js +3 -0
  865. package/src/components/icons/svg-icons/FullscreenExitIcon.d.ts +4 -0
  866. package/src/components/icons/svg-icons/FullscreenExitIcon.d.ts.map +1 -0
  867. package/src/components/icons/svg-icons/FullscreenExitIcon.js +3 -0
  868. package/src/components/icons/svg-icons/LoadingIcon.d.ts +4 -0
  869. package/src/components/icons/svg-icons/LoadingIcon.d.ts.map +1 -0
  870. package/src/components/icons/svg-icons/LoadingIcon.js +3 -0
  871. package/src/components/icons/svg-icons/PauseIcon.d.ts +4 -0
  872. package/src/components/icons/svg-icons/PauseIcon.d.ts.map +1 -0
  873. package/src/components/icons/svg-icons/PauseIcon.js +3 -0
  874. package/src/components/icons/svg-icons/PlayIcon.d.ts +4 -0
  875. package/src/components/icons/svg-icons/PlayIcon.d.ts.map +1 -0
  876. package/src/components/icons/svg-icons/PlayIcon.js +3 -0
  877. package/src/components/icons/svg-icons/PlaybackSpeedIcon.d.ts +4 -0
  878. package/src/components/icons/svg-icons/PlaybackSpeedIcon.d.ts.map +1 -0
  879. package/src/components/icons/svg-icons/PlaybackSpeedIcon.js +3 -0
  880. package/src/components/icons/svg-icons/QualityIcon.d.ts +4 -0
  881. package/src/components/icons/svg-icons/QualityIcon.d.ts.map +1 -0
  882. package/src/components/icons/svg-icons/QualityIcon.js +3 -0
  883. package/src/components/icons/svg-icons/SettingsIcon.d.ts +4 -0
  884. package/src/components/icons/svg-icons/SettingsIcon.d.ts.map +1 -0
  885. package/src/components/icons/svg-icons/SettingsIcon.js +3 -0
  886. package/src/components/icons/svg-icons/SliderIcon.d.ts +4 -0
  887. package/src/components/icons/svg-icons/SliderIcon.d.ts.map +1 -0
  888. package/src/components/icons/svg-icons/SliderIcon.js +3 -0
  889. package/src/components/icons/svg-icons/SubtitleIcon.d.ts +4 -0
  890. package/src/components/icons/svg-icons/SubtitleIcon.d.ts.map +1 -0
  891. package/src/components/icons/svg-icons/SubtitleIcon.js +3 -0
  892. package/src/components/icons/svg-icons/SubtitleOffIcon.d.ts +4 -0
  893. package/src/components/icons/svg-icons/SubtitleOffIcon.d.ts.map +1 -0
  894. package/src/components/icons/svg-icons/SubtitleOffIcon.js +3 -0
  895. package/src/components/icons/svg-icons/UnPiPIcon.d.ts +4 -0
  896. package/src/components/icons/svg-icons/UnPiPIcon.d.ts.map +1 -0
  897. package/src/components/icons/svg-icons/UnPiPIcon.js +5 -0
  898. package/src/components/icons/svg-icons/VolumeMutedIcon.d.ts +4 -0
  899. package/src/components/icons/svg-icons/VolumeMutedIcon.d.ts.map +1 -0
  900. package/src/components/icons/svg-icons/VolumeMutedIcon.js +3 -0
  901. package/src/components/icons/svg-icons/VolumeOneIcon.d.ts +4 -0
  902. package/src/components/icons/svg-icons/VolumeOneIcon.d.ts.map +1 -0
  903. package/src/components/icons/svg-icons/VolumeOneIcon.js +3 -0
  904. package/src/components/icons/svg-icons/VolumeThreeIcon.d.ts +4 -0
  905. package/src/components/icons/svg-icons/VolumeThreeIcon.d.ts.map +1 -0
  906. package/src/components/icons/svg-icons/VolumeThreeIcon.js +3 -0
  907. package/src/components/icons/svg-icons/VolumeTwoIcon.d.ts +4 -0
  908. package/src/components/icons/svg-icons/VolumeTwoIcon.d.ts.map +1 -0
  909. package/src/components/icons/svg-icons/VolumeTwoIcon.js +3 -0
  910. package/src/components/legacy.d.ts +13 -0
  911. package/src/components/legacy.d.ts.map +1 -0
  912. package/src/components/legacy.js +52 -0
  913. package/src/components/media-metadata-display.d.ts +11 -0
  914. package/src/components/media-metadata-display.d.ts.map +1 -0
  915. package/src/components/media-metadata-display.js +20 -0
  916. package/src/components/media-player-audio.d.ts +9 -0
  917. package/src/components/media-player-audio.d.ts.map +1 -0
  918. package/src/components/media-player-audio.js +18 -0
  919. package/src/components/media-player-controls.d.ts +23 -0
  920. package/src/components/media-player-controls.d.ts.map +1 -0
  921. package/src/components/media-player-controls.js +150 -0
  922. package/src/components/media-player-error.d.ts +16 -0
  923. package/src/components/media-player-error.d.ts.map +1 -0
  924. package/src/components/media-player-error.js +85 -0
  925. package/src/components/media-player-fullscreen.d.ts +12 -0
  926. package/src/components/media-player-fullscreen.d.ts.map +1 -0
  927. package/src/components/media-player-fullscreen.js +68 -0
  928. package/src/components/media-player-hls.d.ts +23 -0
  929. package/src/components/media-player-hls.d.ts.map +1 -0
  930. package/src/components/media-player-hls.js +20 -0
  931. package/src/components/media-player-loading.d.ts +12 -0
  932. package/src/components/media-player-loading.d.ts.map +1 -0
  933. package/src/components/media-player-loading.js +53 -0
  934. package/src/components/media-player-play.d.ts +11 -0
  935. package/src/components/media-player-play.d.ts.map +1 -0
  936. package/src/components/media-player-play.js +44 -0
  937. package/src/components/media-player-root.d.ts +28 -0
  938. package/src/components/media-player-root.d.ts.map +1 -0
  939. package/src/components/media-player-root.js +243 -0
  940. package/src/components/media-player-seek.d.ts +15 -0
  941. package/src/components/media-player-seek.d.ts.map +1 -0
  942. package/src/components/media-player-seek.js +92 -0
  943. package/src/components/media-player-time.d.ts +12 -0
  944. package/src/components/media-player-time.d.ts.map +1 -0
  945. package/src/components/media-player-time.js +57 -0
  946. package/src/components/media-player-tooltip.d.ts +13 -0
  947. package/src/components/media-player-tooltip.d.ts.map +1 -0
  948. package/src/components/media-player-tooltip.js +14 -0
  949. package/src/components/media-player-video.d.ts +9 -0
  950. package/src/components/media-player-video.d.ts.map +1 -0
  951. package/src/components/media-player-video.js +18 -0
  952. package/src/components/media-player-volume.d.ts +13 -0
  953. package/src/components/media-player-volume.d.ts.map +1 -0
  954. package/src/components/media-player-volume.js +88 -0
  955. package/src/components/media-player.d.ts +3 -0
  956. package/src/components/media-player.d.ts.map +1 -0
  957. package/src/components/media-player.js +67 -0
  958. package/src/components/media-player.tsx +2 -2
  959. package/src/components/media-suspense.d.ts +78 -0
  960. package/src/components/media-suspense.d.ts.map +1 -0
  961. package/src/components/media-suspense.js +173 -0
  962. package/src/components/player-settings-form.d.ts +8 -0
  963. package/src/components/player-settings-form.d.ts.map +1 -0
  964. package/src/components/player-settings-form.js +46 -0
  965. package/src/components/react-player-wrapper.d.ts +64 -0
  966. package/src/components/react-player-wrapper.d.ts.map +1 -0
  967. package/src/components/react-player-wrapper.js +163 -0
  968. package/src/components/simple-video-player.d.ts +9 -0
  969. package/src/components/simple-video-player.d.ts.map +1 -0
  970. package/src/components/simple-video-player.js +41 -0
  971. package/src/components/ui/enhanced-seek-bar.d.ts +3 -0
  972. package/src/components/ui/enhanced-seek-bar.d.ts.map +1 -0
  973. package/src/components/ui/enhanced-seek-bar.js +112 -0
  974. package/src/components/ui/fullscreen-button.d.ts +3 -0
  975. package/src/components/ui/fullscreen-button.d.ts.map +1 -0
  976. package/src/components/ui/fullscreen-button.js +21 -0
  977. package/src/components/ui/media-resource-preloader.d.ts +21 -0
  978. package/src/components/ui/media-resource-preloader.d.ts.map +1 -0
  979. package/src/components/ui/media-resource-preloader.js +295 -0
  980. package/src/components/ui/media-resource-preloader.tsx +9 -11
  981. package/src/components/ui/play-button.d.ts +3 -0
  982. package/src/components/ui/play-button.d.ts.map +1 -0
  983. package/src/components/ui/play-button.js +26 -0
  984. package/src/components/ui/seek-bar.d.ts +3 -0
  985. package/src/components/ui/seek-bar.d.ts.map +1 -0
  986. package/src/components/ui/seek-bar.js +54 -0
  987. package/src/components/ui/seek-bar.tsx +1 -1
  988. package/src/components/ui/time-display.d.ts +3 -0
  989. package/src/components/ui/time-display.d.ts.map +1 -0
  990. package/src/components/ui/time-display.js +18 -0
  991. package/src/components/ui/volume-control.d.ts +3 -0
  992. package/src/components/ui/volume-control.d.ts.map +1 -0
  993. package/src/components/ui/volume-control.js +71 -0
  994. package/src/components/unified/base-media-player.d.ts +18 -0
  995. package/src/components/unified/base-media-player.d.ts.map +1 -0
  996. package/src/components/unified/base-media-player.js +104 -0
  997. package/src/components/unified/media-player.d.ts +37 -0
  998. package/src/components/unified/media-player.d.ts.map +1 -0
  999. package/src/components/unified/media-player.js +41 -0
  1000. package/src/components/variants/minimal/AccessibleMinimalPlayer.d.ts +42 -0
  1001. package/src/components/variants/minimal/AccessibleMinimalPlayer.d.ts.map +1 -0
  1002. package/src/components/variants/minimal/AccessibleMinimalPlayer.js +322 -0
  1003. package/src/components/variants/minimal/EnhancedMinimalMediaPlayer.d.ts +44 -0
  1004. package/src/components/variants/minimal/EnhancedMinimalMediaPlayer.d.ts.map +1 -0
  1005. package/src/components/variants/minimal/EnhancedMinimalMediaPlayer.js +280 -0
  1006. package/src/components/variants/minimal/MinimalControls.d.ts +19 -0
  1007. package/src/components/variants/minimal/MinimalControls.d.ts.map +1 -0
  1008. package/src/components/variants/minimal/MinimalControls.js +19 -0
  1009. package/src/components/variants/minimal/MinimalLoading.d.ts +10 -0
  1010. package/src/components/variants/minimal/MinimalLoading.d.ts.map +1 -0
  1011. package/src/components/variants/minimal/MinimalLoading.js +6 -0
  1012. package/src/components/variants/minimal/MinimalMediaPlayer.d.ts +38 -0
  1013. package/src/components/variants/minimal/MinimalMediaPlayer.d.ts.map +1 -0
  1014. package/src/components/variants/minimal/MinimalMediaPlayer.js +135 -0
  1015. package/src/components/variants/minimal/MinimalOverlay.d.ts +11 -0
  1016. package/src/components/variants/minimal/MinimalOverlay.d.ts.map +1 -0
  1017. package/src/components/variants/minimal/MinimalOverlay.js +15 -0
  1018. package/src/components/variants/minimal/MinimalPlayButton.d.ts +9 -0
  1019. package/src/components/variants/minimal/MinimalPlayButton.d.ts.map +1 -0
  1020. package/src/components/variants/minimal/MinimalPlayButton.js +29 -0
  1021. package/src/components/variants/minimal/MinimalSeekBar.d.ts +7 -0
  1022. package/src/components/variants/minimal/MinimalSeekBar.d.ts.map +1 -0
  1023. package/src/components/variants/minimal/MinimalSeekBar.js +73 -0
  1024. package/src/components/variants/minimal/MinimalVolumeControl.d.ts +7 -0
  1025. package/src/components/variants/minimal/MinimalVolumeControl.d.ts.map +1 -0
  1026. package/src/components/variants/minimal/MinimalVolumeControl.js +29 -0
  1027. package/src/components/variants/minimal/SimpleMinimalPlayer.d.ts +22 -0
  1028. package/src/components/variants/minimal/SimpleMinimalPlayer.d.ts.map +1 -0
  1029. package/src/components/variants/minimal/SimpleMinimalPlayer.js +51 -0
  1030. package/src/components/variants/minimal/SimpleMinimalPlayer.tsx +0 -1
  1031. package/src/components/variants/minimal/components/CenterPlayButton.d.ts +7 -0
  1032. package/src/components/variants/minimal/components/CenterPlayButton.d.ts.map +1 -0
  1033. package/src/components/variants/minimal/components/CenterPlayButton.js +8 -0
  1034. package/src/components/variants/minimal/components/ControlBar.d.ts +43 -0
  1035. package/src/components/variants/minimal/components/ControlBar.d.ts.map +1 -0
  1036. package/src/components/variants/minimal/components/ControlBar.js +10 -0
  1037. package/src/components/variants/minimal/components/EnhancedSettingsMenu.d.ts +24 -0
  1038. package/src/components/variants/minimal/components/EnhancedSettingsMenu.d.ts.map +1 -0
  1039. package/src/components/variants/minimal/components/EnhancedSettingsMenu.js +68 -0
  1040. package/src/components/variants/minimal/components/PlaybackControls.d.ts +9 -0
  1041. package/src/components/variants/minimal/components/PlaybackControls.d.ts.map +1 -0
  1042. package/src/components/variants/minimal/components/PlaybackControls.js +9 -0
  1043. package/src/components/variants/minimal/components/RightControls.d.ts +25 -0
  1044. package/src/components/variants/minimal/components/RightControls.d.ts.map +1 -0
  1045. package/src/components/variants/minimal/components/RightControls.js +40 -0
  1046. package/src/components/variants/minimal/components/SeekBar.d.ts +11 -0
  1047. package/src/components/variants/minimal/components/SeekBar.d.ts.map +1 -0
  1048. package/src/components/variants/minimal/components/SeekBar.js +43 -0
  1049. package/src/components/variants/minimal/components/SettingsDropdown.d.ts +9 -0
  1050. package/src/components/variants/minimal/components/SettingsDropdown.d.ts.map +1 -0
  1051. package/src/components/variants/minimal/components/SettingsDropdown.js +18 -0
  1052. package/src/components/variants/minimal/components/SubtitleDisplay.d.ts +7 -0
  1053. package/src/components/variants/minimal/components/SubtitleDisplay.d.ts.map +1 -0
  1054. package/src/components/variants/minimal/components/SubtitleDisplay.js +6 -0
  1055. package/src/components/variants/minimal/components/TimeDisplay.d.ts +7 -0
  1056. package/src/components/variants/minimal/components/TimeDisplay.d.ts.map +1 -0
  1057. package/src/components/variants/minimal/components/TimeDisplay.js +5 -0
  1058. package/src/components/variants/minimal/components/VideoElement.d.ts +13 -0
  1059. package/src/components/variants/minimal/components/VideoElement.d.ts.map +1 -0
  1060. package/src/components/variants/minimal/components/VideoElement.js +4 -0
  1061. package/src/components/variants/minimal/components/VolumeControl.d.ts +13 -0
  1062. package/src/components/variants/minimal/components/VolumeControl.d.ts.map +1 -0
  1063. package/src/components/variants/minimal/components/VolumeControl.js +99 -0
  1064. package/src/components/variants/minimal/index.d.ts +17 -0
  1065. package/src/components/variants/minimal/index.d.ts.map +1 -0
  1066. package/src/components/variants/minimal/index.js +8 -0
  1067. package/src/components/video-player.d.ts +3 -0
  1068. package/src/components/video-player.d.ts.map +1 -0
  1069. package/src/components/video-player.js +38 -0
  1070. package/src/context/error-handling.d.ts +72 -0
  1071. package/src/context/error-handling.d.ts.map +1 -0
  1072. package/src/context/error-handling.js +300 -0
  1073. package/src/context/media-context.d.ts +104 -0
  1074. package/src/context/media-context.d.ts.map +1 -0
  1075. package/src/context/media-context.js +121 -0
  1076. package/src/context/media-provider.d.ts +26 -0
  1077. package/src/context/media-provider.d.ts.map +1 -0
  1078. package/src/context/media-provider.js +164 -0
  1079. package/src/context/media-store.d.ts +33 -0
  1080. package/src/context/media-store.d.ts.map +1 -0
  1081. package/src/context/media-store.js +273 -0
  1082. package/src/context/persistence.d.ts +83 -0
  1083. package/src/context/persistence.d.ts.map +1 -0
  1084. package/src/context/persistence.js +356 -0
  1085. package/src/core/events/event-system.d.ts +170 -0
  1086. package/src/core/events/event-system.d.ts.map +1 -0
  1087. package/src/core/events/event-system.js +288 -0
  1088. package/src/core/events/hooks.d.ts +33 -0
  1089. package/src/core/events/hooks.d.ts.map +1 -0
  1090. package/src/core/events/hooks.js +198 -0
  1091. package/src/core/events/index.d.ts +6 -0
  1092. package/src/core/events/index.d.ts.map +1 -0
  1093. package/src/core/events/index.js +7 -0
  1094. package/src/core/events/middleware.d.ts +39 -0
  1095. package/src/core/events/middleware.d.ts.map +1 -0
  1096. package/src/core/events/middleware.js +219 -0
  1097. package/src/core/index.d.ts +8 -0
  1098. package/src/core/index.d.ts.map +1 -0
  1099. package/src/core/index.js +15 -0
  1100. package/src/core/optimization/bundle-optimizer.d.ts +44 -0
  1101. package/src/core/optimization/bundle-optimizer.d.ts.map +1 -0
  1102. package/src/core/optimization/bundle-optimizer.js +217 -0
  1103. package/src/core/performance/cicd.d.ts +8 -0
  1104. package/src/core/performance/cicd.d.ts.map +1 -0
  1105. package/src/core/performance/cicd.js +83 -0
  1106. package/src/core/performance/index.d.ts +10 -0
  1107. package/src/core/performance/index.d.ts.map +1 -0
  1108. package/src/core/performance/index.js +14 -0
  1109. package/src/core/performance/media-loading-optimizer.d.ts +105 -0
  1110. package/src/core/performance/media-loading-optimizer.d.ts.map +1 -0
  1111. package/src/core/performance/media-loading-optimizer.js +404 -0
  1112. package/src/core/performance/performance-budgets.d.ts +68 -0
  1113. package/src/core/performance/performance-budgets.d.ts.map +1 -0
  1114. package/src/core/performance/performance-budgets.js +326 -0
  1115. package/src/core/performance/performance-monitor.d.ts +95 -0
  1116. package/src/core/performance/performance-monitor.d.ts.map +1 -0
  1117. package/src/core/performance/performance-monitor.js +297 -0
  1118. package/src/core/performance/performance-testing.d.ts +69 -0
  1119. package/src/core/performance/performance-testing.d.ts.map +1 -0
  1120. package/src/core/performance/performance-testing.js +314 -0
  1121. package/src/core/plugins/base-plugin.d.ts +52 -0
  1122. package/src/core/plugins/base-plugin.d.ts.map +1 -0
  1123. package/src/core/plugins/base-plugin.js +151 -0
  1124. package/src/core/plugins/enhanced-plugin-system.d.ts +160 -0
  1125. package/src/core/plugins/enhanced-plugin-system.d.ts.map +1 -0
  1126. package/src/core/plugins/enhanced-plugin-system.js +305 -0
  1127. package/src/core/plugins/enhanced-plugin-system.ts +14 -8
  1128. package/src/core/plugins/examples/analytics-plugin.d.ts +30 -0
  1129. package/src/core/plugins/examples/analytics-plugin.d.ts.map +1 -0
  1130. package/src/core/plugins/examples/analytics-plugin.js +191 -0
  1131. package/src/core/plugins/index.d.ts +8 -0
  1132. package/src/core/plugins/index.d.ts.map +1 -0
  1133. package/src/core/plugins/index.js +9 -0
  1134. package/src/core/plugins/registry.d.ts +31 -0
  1135. package/src/core/plugins/registry.d.ts.map +1 -0
  1136. package/src/core/plugins/registry.js +261 -0
  1137. package/src/core/plugins/types.d.ts +101 -0
  1138. package/src/core/plugins/types.d.ts.map +1 -0
  1139. package/src/core/plugins/types.js +31 -0
  1140. package/src/core/plugins/utils.d.ts +38 -0
  1141. package/src/core/plugins/utils.d.ts.map +1 -0
  1142. package/src/core/plugins/utils.js +274 -0
  1143. package/src/core/progressive-loading.d.ts +88 -0
  1144. package/src/core/progressive-loading.d.ts.map +1 -0
  1145. package/src/core/progressive-loading.js +239 -0
  1146. package/src/core/providers/enhanced-hls-provider.d.ts +50 -0
  1147. package/src/core/providers/enhanced-hls-provider.d.ts.map +1 -0
  1148. package/src/core/providers/enhanced-hls-provider.js +273 -0
  1149. package/src/core/providers/enhanced-hls-provider.ts +22 -53
  1150. package/src/core/providers/service-provider.d.ts +49 -0
  1151. package/src/core/providers/service-provider.d.ts.map +1 -0
  1152. package/src/core/providers/service-provider.js +105 -0
  1153. package/src/core/utils.d.ts +25 -0
  1154. package/src/core/utils.d.ts.map +1 -0
  1155. package/src/core/utils.js +21 -0
  1156. package/src/features/media-session/media-session-manager.d.ts +132 -0
  1157. package/src/features/media-session/media-session-manager.d.ts.map +1 -0
  1158. package/src/features/media-session/media-session-manager.js +331 -0
  1159. package/src/features/picture-in-picture/pip-manager.d.ts +94 -0
  1160. package/src/features/picture-in-picture/pip-manager.d.ts.map +1 -0
  1161. package/src/features/picture-in-picture/pip-manager.js +353 -0
  1162. package/src/features/playlist/playlist-manager.d.ts +208 -0
  1163. package/src/features/playlist/playlist-manager.d.ts.map +1 -0
  1164. package/src/features/playlist/playlist-manager.js +475 -0
  1165. package/src/features/subtitles/subtitle-manager.d.ts +136 -0
  1166. package/src/features/subtitles/subtitle-manager.d.ts.map +1 -0
  1167. package/src/features/subtitles/subtitle-manager.js +335 -0
  1168. package/src/features/subtitles/subtitle-parser.d.ts +60 -0
  1169. package/src/features/subtitles/subtitle-parser.d.ts.map +1 -0
  1170. package/src/features/subtitles/subtitle-parser.js +217 -0
  1171. package/src/features/thumbnails/thumbnail-generator.d.ts +136 -0
  1172. package/src/features/thumbnails/thumbnail-generator.d.ts.map +1 -0
  1173. package/src/features/thumbnails/thumbnail-generator.js +388 -0
  1174. package/src/hooks/accessibility/index.d.ts +5 -0
  1175. package/src/hooks/accessibility/index.d.ts.map +1 -0
  1176. package/src/hooks/accessibility/index.js +4 -0
  1177. package/src/hooks/accessibility/use-accessibility-preferences.d.ts +14 -0
  1178. package/src/hooks/accessibility/use-accessibility-preferences.d.ts.map +1 -0
  1179. package/src/hooks/accessibility/use-accessibility-preferences.js +156 -0
  1180. package/src/hooks/accessibility/use-focus-management.d.ts +31 -0
  1181. package/src/hooks/accessibility/use-focus-management.d.ts.map +1 -0
  1182. package/src/hooks/accessibility/use-focus-management.js +142 -0
  1183. package/src/hooks/accessibility/use-keyboard-shortcuts.d.ts +38 -0
  1184. package/src/hooks/accessibility/use-keyboard-shortcuts.d.ts.map +1 -0
  1185. package/src/hooks/accessibility/use-keyboard-shortcuts.js +101 -0
  1186. package/src/hooks/accessibility/use-screen-reader.d.ts +22 -0
  1187. package/src/hooks/accessibility/use-screen-reader.d.ts.map +1 -0
  1188. package/src/hooks/accessibility/use-screen-reader.js +148 -0
  1189. package/src/hooks/core/index.d.ts +18 -0
  1190. package/src/hooks/core/index.d.ts.map +1 -0
  1191. package/src/hooks/core/index.js +19 -0
  1192. package/src/hooks/legacy.d.ts +18 -0
  1193. package/src/hooks/legacy.d.ts.map +1 -0
  1194. package/src/hooks/legacy.js +17 -0
  1195. package/src/hooks/use-enhanced-media-player.d.ts +88 -0
  1196. package/src/hooks/use-enhanced-media-player.d.ts.map +1 -0
  1197. package/src/hooks/use-enhanced-media-player.js +395 -0
  1198. package/src/hooks/use-enhanced-media-player.ts +19 -2
  1199. package/src/hooks/use-intelligent-preloading.d.ts +66 -0
  1200. package/src/hooks/use-intelligent-preloading.d.ts.map +1 -0
  1201. package/src/hooks/use-intelligent-preloading.js +258 -0
  1202. package/src/hooks/use-keyboard-controls.d.ts +13 -0
  1203. package/src/hooks/use-keyboard-controls.d.ts.map +1 -0
  1204. package/src/hooks/use-keyboard-controls.js +83 -0
  1205. package/src/hooks/use-media-actions.d.ts +62 -0
  1206. package/src/hooks/use-media-actions.d.ts.map +1 -0
  1207. package/src/hooks/use-media-actions.js +121 -0
  1208. package/src/hooks/use-media-metadata.d.ts +11 -0
  1209. package/src/hooks/use-media-metadata.d.ts.map +1 -0
  1210. package/src/hooks/use-media-metadata.js +74 -0
  1211. package/src/hooks/use-media-optimistic.d.ts +36 -0
  1212. package/src/hooks/use-media-optimistic.d.ts.map +1 -0
  1213. package/src/hooks/use-media-optimistic.js +205 -0
  1214. package/src/hooks/use-media-player.d.ts +31 -0
  1215. package/src/hooks/use-media-player.d.ts.map +1 -0
  1216. package/src/hooks/use-media-player.js +251 -0
  1217. package/src/hooks/use-media-state.d.ts +17 -0
  1218. package/src/hooks/use-media-state.d.ts.map +1 -0
  1219. package/src/hooks/use-media-state.js +162 -0
  1220. package/src/hooks/use-memory-optimization.d.ts +40 -0
  1221. package/src/hooks/use-memory-optimization.d.ts.map +1 -0
  1222. package/src/hooks/use-memory-optimization.js +288 -0
  1223. package/src/hooks/use-optimistic-controls.d.ts +22 -0
  1224. package/src/hooks/use-optimistic-controls.d.ts.map +1 -0
  1225. package/src/hooks/use-optimistic-controls.js +60 -0
  1226. package/src/hooks/use-optimized-media.d.ts +46 -0
  1227. package/src/hooks/use-optimized-media.d.ts.map +1 -0
  1228. package/src/hooks/use-optimized-media.js +211 -0
  1229. package/src/hooks/use-touch-gestures.d.ts +47 -0
  1230. package/src/hooks/use-touch-gestures.d.ts.map +1 -0
  1231. package/src/hooks/use-touch-gestures.js +289 -0
  1232. package/src/hooks/useEnhancedSubtitles.d.ts +39 -0
  1233. package/src/hooks/useEnhancedSubtitles.d.ts.map +1 -0
  1234. package/src/hooks/useEnhancedSubtitles.js +205 -0
  1235. package/src/hooks/useKeyboardShortcuts.d.ts +10 -0
  1236. package/src/hooks/useKeyboardShortcuts.d.ts.map +1 -0
  1237. package/src/hooks/useKeyboardShortcuts.js +59 -0
  1238. package/src/hooks/useMediaControls.d.ts +9 -0
  1239. package/src/hooks/useMediaControls.d.ts.map +1 -0
  1240. package/src/hooks/useMediaControls.js +44 -0
  1241. package/src/hooks/useScreenshot.d.ts +4 -0
  1242. package/src/hooks/useScreenshot.d.ts.map +1 -0
  1243. package/src/hooks/useScreenshot.js +56 -0
  1244. package/src/hooks/useSubtitles.d.ts +8 -0
  1245. package/src/hooks/useSubtitles.d.ts.map +1 -0
  1246. package/src/hooks/useSubtitles.js +73 -0
  1247. package/src/hooks/useVideoPlayer.d.ts +32 -0
  1248. package/src/hooks/useVideoPlayer.d.ts.map +1 -0
  1249. package/src/hooks/useVideoPlayer.js +184 -0
  1250. package/src/icons/components/FullscreenIcon.d.ts +3 -0
  1251. package/src/icons/components/FullscreenIcon.d.ts.map +1 -0
  1252. package/src/icons/components/FullscreenIcon.js +11 -0
  1253. package/src/icons/components/SettingsIcon.d.ts +3 -0
  1254. package/src/icons/components/SettingsIcon.d.ts.map +1 -0
  1255. package/src/icons/components/SettingsIcon.js +11 -0
  1256. package/src/icons/components/animated/LoadingIcon.d.ts +3 -0
  1257. package/src/icons/components/animated/LoadingIcon.d.ts.map +1 -0
  1258. package/src/icons/components/animated/LoadingIcon.js +11 -0
  1259. package/src/icons/components/animated/PlayPauseIcon.d.ts +7 -0
  1260. package/src/icons/components/animated/PlayPauseIcon.d.ts.map +1 -0
  1261. package/src/icons/components/animated/PlayPauseIcon.js +9 -0
  1262. package/src/icons/components/media/PauseIcon.d.ts +3 -0
  1263. package/src/icons/components/media/PauseIcon.d.ts.map +1 -0
  1264. package/src/icons/components/media/PauseIcon.js +12 -0
  1265. package/src/icons/components/media/PlayIcon.d.ts +3 -0
  1266. package/src/icons/components/media/PlayIcon.d.ts.map +1 -0
  1267. package/src/icons/components/media/PlayIcon.js +12 -0
  1268. package/src/icons/components/volume/VolumeIcon.d.ts +3 -0
  1269. package/src/icons/components/volume/VolumeIcon.d.ts.map +1 -0
  1270. package/src/icons/components/volume/VolumeIcon.js +11 -0
  1271. package/src/icons/components/volume/VolumeOffIcon.d.ts +3 -0
  1272. package/src/icons/components/volume/VolumeOffIcon.d.ts.map +1 -0
  1273. package/src/icons/components/volume/VolumeOffIcon.js +11 -0
  1274. package/src/icons/index.d.ts +28 -0
  1275. package/src/icons/index.d.ts.map +1 -0
  1276. package/src/icons/index.js +45 -0
  1277. package/src/icons/provider.d.ts +13 -0
  1278. package/src/icons/provider.d.ts.map +1 -0
  1279. package/src/icons/provider.js +37 -0
  1280. package/src/icons/types.d.ts +18 -0
  1281. package/src/icons/types.d.ts.map +1 -0
  1282. package/src/icons/types.js +1 -0
  1283. package/src/index-enhanced.d.ts +13 -0
  1284. package/src/index-enhanced.d.ts.map +1 -0
  1285. package/src/index-enhanced.js +16 -0
  1286. package/src/index-legacy.d.ts +81 -0
  1287. package/src/index-legacy.d.ts.map +1 -0
  1288. package/src/index-legacy.js +97 -0
  1289. package/src/index.d.ts +38 -0
  1290. package/src/index.d.ts.map +1 -0
  1291. package/src/index.js +90 -0
  1292. package/src/index.minimal.d.ts +2 -0
  1293. package/src/index.minimal.d.ts.map +1 -0
  1294. package/src/index.minimal.js +3 -0
  1295. package/src/index.minimal.ts +4 -0
  1296. package/src/lib/deprecation.d.ts +7 -0
  1297. package/src/lib/deprecation.d.ts.map +1 -0
  1298. package/src/lib/deprecation.js +31 -0
  1299. package/src/lib/format-time.d.ts +9 -0
  1300. package/src/lib/format-time.d.ts.map +1 -0
  1301. package/src/lib/format-time.js +32 -0
  1302. package/src/lib/index.d.ts +3 -0
  1303. package/src/lib/index.d.ts.map +1 -0
  1304. package/src/lib/index.js +3 -0
  1305. package/src/lib/utils.d.ts +3 -0
  1306. package/src/lib/utils.d.ts.map +1 -0
  1307. package/src/lib/utils.js +5 -0
  1308. package/src/test/setup.d.ts +2 -0
  1309. package/src/test/setup.d.ts.map +1 -0
  1310. package/src/test/setup.js +65 -0
  1311. package/src/types/events.d.ts +41 -0
  1312. package/src/types/events.d.ts.map +1 -0
  1313. package/src/types/events.js +2 -0
  1314. package/src/types/formats.d.ts +45 -0
  1315. package/src/types/formats.d.ts.map +1 -0
  1316. package/src/types/formats.js +63 -0
  1317. package/src/types/index.d.ts +128 -0
  1318. package/src/types/index.d.ts.map +1 -0
  1319. package/src/types/index.js +4 -0
  1320. package/src/types/index.ts +40 -5
  1321. package/dist/context-BMteAJDN.js.map +0 -1
  1322. package/dist/context-DCJ_scmO.cjs +0 -23
  1323. package/dist/context-DCJ_scmO.cjs.map +0 -1
  1324. package/dist/hooks-C_r8wexn.cjs +0 -4
  1325. package/dist/hooks-C_r8wexn.cjs.map +0 -1
  1326. package/dist/hooks-Da2wVXlF.js +0 -1630
  1327. package/dist/hooks-Da2wVXlF.js.map +0 -1
  1328. package/dist/utils-BnscpYYd.js.map +0 -1
  1329. package/dist/utils-D_czS_0K.cjs +0 -9
  1330. package/dist/utils-D_czS_0K.cjs.map +0 -1
@@ -0,0 +1,2013 @@
1
+ import * as re from "react";
2
+ import N, { useEffect as q, useOptimistic as ce, useRef as W, useTransition as le, useCallback as A, useMemo as ue, useState as Q } from "react";
3
+ import { c as H, d as pe, e as j, M as K } from "./context-Af84FynT.js";
4
+ import { s as ve } from "./utils-nTO4AnHo.js";
5
+ function Ie({ enabled: e = !0, state: t, controls: n, seekStep: s = 10, volumeStep: u = 0.1 }) {
6
+ const o = (a) => {
7
+ if (!e)
8
+ return;
9
+ const d = a.target;
10
+ if (!(d.tagName === "INPUT" || d.tagName === "TEXTAREA" || d.contentEditable === "true"))
11
+ switch (a.code) {
12
+ case "Space":
13
+ case "KeyK":
14
+ a.preventDefault(), n.toggle();
15
+ break;
16
+ case "KeyM":
17
+ a.preventDefault(), n.toggleMute();
18
+ break;
19
+ case "KeyF":
20
+ a.preventDefault(), n.toggleFullscreen();
21
+ break;
22
+ case "ArrowLeft":
23
+ a.preventDefault(), n.seek(Math.max(0, t.currentTime - s));
24
+ break;
25
+ case "ArrowRight":
26
+ a.preventDefault(), n.seek(Math.min(t.duration, t.currentTime + s));
27
+ break;
28
+ case "ArrowUp":
29
+ a.preventDefault(), n.setVolume(Math.min(1, t.volume + u));
30
+ break;
31
+ case "ArrowDown":
32
+ a.preventDefault(), n.setVolume(Math.max(0, t.volume - u));
33
+ break;
34
+ case "Digit0":
35
+ case "Digit1":
36
+ case "Digit2":
37
+ case "Digit3":
38
+ case "Digit4":
39
+ case "Digit5":
40
+ case "Digit6":
41
+ case "Digit7":
42
+ case "Digit8":
43
+ case "Digit9":
44
+ a.preventDefault();
45
+ const D = parseInt(a.code.replace("Digit", ""), 10) / 10;
46
+ n.seek(t.duration * D);
47
+ break;
48
+ case "Home":
49
+ a.preventDefault(), n.seek(0);
50
+ break;
51
+ case "End":
52
+ a.preventDefault(), n.seek(t.duration);
53
+ break;
54
+ }
55
+ };
56
+ return q(() => {
57
+ if (e)
58
+ return document.addEventListener("keydown", o), () => {
59
+ document.removeEventListener("keydown", o);
60
+ };
61
+ }, [e, o]), {
62
+ handleKeyDown: o
63
+ };
64
+ }
65
+ function ye(e, t) {
66
+ if (!t.optimistic)
67
+ return e;
68
+ switch (t.type) {
69
+ case "PLAY":
70
+ return { ...e, isPlaying: !0, error: null };
71
+ case "PAUSE":
72
+ return { ...e, isPlaying: !1 };
73
+ case "SEEK":
74
+ return { ...e, currentTime: t.detail };
75
+ case "SET_VOLUME":
76
+ return { ...e, volume: Math.max(0, Math.min(1, t.detail)) };
77
+ case "MUTE":
78
+ return { ...e, isMuted: !0 };
79
+ case "UNMUTE":
80
+ return { ...e, isMuted: !1 };
81
+ case "TOGGLE_MUTE":
82
+ return { ...e, isMuted: !e.isMuted };
83
+ case "ENTER_FULLSCREEN":
84
+ return { ...e, isFullscreen: !0 };
85
+ case "EXIT_FULLSCREEN":
86
+ return { ...e, isFullscreen: !1 };
87
+ case "SET_PLAYBACK_RATE":
88
+ return { ...e, playbackRate: t.detail };
89
+ case "TOGGLE_SUBTITLES":
90
+ return { ...e, subtitlesShowing: !e.subtitlesShowing };
91
+ case "PREVIEW_TIME":
92
+ return { ...e, previewTime: t.detail };
93
+ case "CLEAR_PREVIEW":
94
+ return {
95
+ ...e,
96
+ previewTime: null,
97
+ previewImage: null,
98
+ previewCoords: null
99
+ };
100
+ default:
101
+ return e;
102
+ }
103
+ }
104
+ function Ee(e) {
105
+ const t = N.useSyncExternalStore(e.subscribe, e.getState, e.getState), [n, s] = ce(t, ye), u = N.useCallback(async (d) => {
106
+ d.optimistic && s(d), await e.dispatchOptimistic(d);
107
+ }, [e, s]), o = N.useMemo(() => ({
108
+ // Play/Pause with immediate feedback
109
+ togglePlayPause: async () => {
110
+ const d = {
111
+ type: n.isPlaying ? "PAUSE" : "PLAY",
112
+ optimistic: !0,
113
+ timestamp: Date.now()
114
+ };
115
+ await u(d);
116
+ },
117
+ // Volume control with immediate slider feedback
118
+ setVolumeOptimistic: async (d) => {
119
+ const S = {
120
+ type: "SET_VOLUME",
121
+ detail: Math.max(0, Math.min(1, d)),
122
+ optimistic: !0,
123
+ timestamp: Date.now()
124
+ };
125
+ await u(S);
126
+ },
127
+ // Seek with immediate scrub feedback
128
+ seekOptimistic: async (d) => {
129
+ const S = {
130
+ type: "SEEK",
131
+ detail: d,
132
+ optimistic: !0,
133
+ timestamp: Date.now()
134
+ };
135
+ await u(S);
136
+ },
137
+ // Mute toggle with immediate icon change
138
+ toggleMuteOptimistic: async () => {
139
+ const d = {
140
+ type: "TOGGLE_MUTE",
141
+ optimistic: !0,
142
+ timestamp: Date.now()
143
+ };
144
+ await u(d);
145
+ },
146
+ // Fullscreen toggle with immediate layout change
147
+ toggleFullscreenOptimistic: async () => {
148
+ const d = {
149
+ type: n.isFullscreen ? "EXIT_FULLSCREEN" : "ENTER_FULLSCREEN",
150
+ optimistic: !0,
151
+ timestamp: Date.now()
152
+ };
153
+ await u(d);
154
+ },
155
+ // Playback rate with immediate feedback
156
+ setPlaybackRateOptimistic: async (d) => {
157
+ const S = {
158
+ type: "SET_PLAYBACK_RATE",
159
+ detail: d,
160
+ optimistic: !0,
161
+ timestamp: Date.now()
162
+ };
163
+ await u(S);
164
+ },
165
+ // Subtitle toggle with immediate visibility change
166
+ toggleSubtitlesOptimistic: async () => {
167
+ const d = {
168
+ type: "TOGGLE_SUBTITLES",
169
+ optimistic: !0,
170
+ timestamp: Date.now()
171
+ };
172
+ await u(d);
173
+ }
174
+ }), [n, u]), a = N.useMemo(() => ({
175
+ isPlaying: n.isPlaying,
176
+ currentTime: n.currentTime,
177
+ volume: n.volume,
178
+ isMuted: n.isMuted,
179
+ isFullscreen: n.isFullscreen,
180
+ playbackRate: n.playbackRate,
181
+ subtitlesShowing: n.subtitlesShowing,
182
+ previewTime: n.previewTime,
183
+ // Computed values
184
+ progress: n.duration > 0 ? n.currentTime / n.duration : 0,
185
+ formattedTime: me(n.currentTime),
186
+ formattedDuration: me(n.duration),
187
+ // State checks
188
+ canPlay: !n.isLoading && !n.error,
189
+ hasError: !!n.error,
190
+ isBuffering: n.isLoading
191
+ }), [n]);
192
+ return {
193
+ state: n,
194
+ actualState: t,
195
+ ...a,
196
+ ...o,
197
+ dispatchOptimistic: u
198
+ };
199
+ }
200
+ function me(e) {
201
+ if (!e || !isFinite(e))
202
+ return "0:00";
203
+ const t = Math.floor(e / 60), n = Math.floor(e % 60), s = Math.floor(t / 60);
204
+ return s > 0 ? `${s}:${String(t % 60).padStart(2, "0")}:${String(n).padStart(2, "0")}` : `${t}:${String(n).padStart(2, "0")}`;
205
+ }
206
+ function $(e, t) {
207
+ return ((n, s = !1) => {
208
+ const u = {
209
+ type: e,
210
+ detail: n,
211
+ optimistic: s,
212
+ timestamp: Date.now()
213
+ };
214
+ return s ? t.dispatchOptimistic(u) : (t.dispatch(u), Promise.resolve());
215
+ });
216
+ }
217
+ function we(e) {
218
+ const [t, n] = N.useState(e.getActionState());
219
+ return N.useEffect(() => e.subscribe(() => {
220
+ const u = e.getActionState();
221
+ n((o) => JSON.stringify(o) !== JSON.stringify(u) ? u : o);
222
+ }), [e]), t;
223
+ }
224
+ function Te(e) {
225
+ const t = N.useMemo(() => ({
226
+ // Playback actions
227
+ play: $(H.PLAY, e),
228
+ pause: $(H.PAUSE, e),
229
+ seek: $(H.SEEK, e),
230
+ // Volume actions
231
+ setVolume: $(H.SET_VOLUME, e),
232
+ mute: $(H.MUTE, e),
233
+ unmute: $(H.UNMUTE, e),
234
+ toggleMute: $(H.TOGGLE_MUTE, e),
235
+ // Media state actions
236
+ setDuration: $(H.SET_DURATION, e),
237
+ setCurrentTime: $(H.SET_CURRENT_TIME, e),
238
+ setBuffered: $(H.SET_BUFFERED, e),
239
+ setLoading: $(H.SET_LOADING, e),
240
+ setError: $(H.SET_ERROR, e),
241
+ // Display actions
242
+ enterFullscreen: $(H.ENTER_FULLSCREEN, e),
243
+ exitFullscreen: $(H.EXIT_FULLSCREEN, e),
244
+ enterPiP: $(H.ENTER_PIP, e),
245
+ exitPiP: $(H.EXIT_PIP, e),
246
+ // Advanced actions
247
+ setPlaybackRate: $(H.SET_PLAYBACK_RATE, e),
248
+ setSubtitleTrack: $(H.SET_SUBTITLE_TRACK, e),
249
+ setRendition: $(H.SET_RENDITION, e),
250
+ toggleSubtitles: $(H.TOGGLE_SUBTITLES, e),
251
+ // Preview actions
252
+ previewTime: $(H.PREVIEW_TIME, e),
253
+ clearPreview: $(H.CLEAR_PREVIEW, e)
254
+ }), [e]), n = we(e), s = N.useMemo(() => ({
255
+ // These actions benefit from immediate UI feedback
256
+ togglePlayPause: async (o) => {
257
+ o ? await t.pause(!0) : await t.play(!0);
258
+ },
259
+ seekWithPreview: async (o) => {
260
+ await t.previewTime(o, !0), await t.seek(o, !0);
261
+ },
262
+ adjustVolume: async (o, a) => {
263
+ const d = Math.max(0, Math.min(1, a + o));
264
+ await t.setVolume(d, !0);
265
+ },
266
+ toggleFullscreenOptimistic: async (o) => {
267
+ o ? await t.exitFullscreen(!0) : await t.enterFullscreen(!0);
268
+ }
269
+ }), [t]), u = N.useCallback(async () => {
270
+ const { lastAction: o } = n;
271
+ o && n.error && await e.dispatchOptimistic({
272
+ ...o,
273
+ retryCount: (o.retryCount || 0) + 1
274
+ });
275
+ }, [e, n]);
276
+ return {
277
+ ...t,
278
+ ...s,
279
+ actionState: n,
280
+ retryLastAction: u,
281
+ isLoading: n.pending,
282
+ hasError: !!n.error,
283
+ errorMessage: n.error,
284
+ retryCount: n.retryCount
285
+ };
286
+ }
287
+ function Oe(e) {
288
+ const t = W(null), n = W(null), [s, u] = le(), [o, a] = le();
289
+ N.useRef(0);
290
+ const d = N.useRef(0), S = N.useRef(0);
291
+ W();
292
+ const D = W(0), R = pe(), g = "getOptimisticState" in R, r = j((i) => i.isPlaying), y = j((i) => i.currentTime), p = j((i) => i.duration), l = j((i) => i.volume), v = j((i) => i.isMuted), M = j((i) => i.isLoading), h = j((i) => i.isBuffering), c = j((i) => i.error), T = j((i) => i.buffered), E = j((i) => i.isFullscreen), b = R, w = g ? Ee(b) : null, m = g ? Te(b) : null, [z, F] = N.useState({
293
+ frameRate: 0,
294
+ averageRenderTime: 0,
295
+ droppedFrames: 0,
296
+ bufferHealth: 0
297
+ }), [O, P] = ce(l, (i, k) => Math.max(0, Math.min(1, k)));
298
+ ce(y, (i, k) => Math.max(0, Math.min(p || 0, k))), q(() => {
299
+ const i = t.current;
300
+ if (!i)
301
+ return;
302
+ const k = {
303
+ volume: e.volume,
304
+ muted: e.muted,
305
+ autoplay: e.autoPlay,
306
+ loop: e.loop,
307
+ preload: e.preload,
308
+ crossOrigin: e.crossOrigin
309
+ };
310
+ Object.entries(k).forEach(([B, Y]) => {
311
+ Y !== void 0 && (i[B] = Y);
312
+ }), i.setAttribute("preload", e.preloadStrategy === "eager" ? "auto" : "metadata"), e.bufferingStrategy === "aggressive" && i.setAttribute("buffered", "auto"), i instanceof HTMLVideoElement && (i.style.willChange = "transform", i.style.transform = "translateZ(0)");
313
+ }, [
314
+ e.volume,
315
+ e.muted,
316
+ e.autoPlay,
317
+ e.loop,
318
+ e.preload,
319
+ e.crossOrigin,
320
+ e.preloadStrategy,
321
+ e.bufferingStrategy
322
+ ]);
323
+ const L = A(() => {
324
+ const i = t.current;
325
+ if (!i)
326
+ return;
327
+ const k = performance.now();
328
+ if (e.enableTimeUpdateThrottling !== !1) {
329
+ if (k - D.current < (e.timeUpdateThrottleMs || 100))
330
+ return;
331
+ D.current = k;
332
+ }
333
+ u(() => {
334
+ g && m && m.setCurrentTime(i.currentTime);
335
+ });
336
+ }, [e.enableTimeUpdateThrottling, e.timeUpdateThrottleMs, g, m]), I = A(() => {
337
+ u(() => {
338
+ g && m && m.play(!0);
339
+ }), e.onPlay?.();
340
+ }, [g, m, e.onPlay]), U = A(() => {
341
+ u(() => {
342
+ g && m && m.pause(!0);
343
+ }), e.onPause?.();
344
+ }, [g, m, e.onPause]), _ = A(() => {
345
+ const i = t.current;
346
+ i && u(() => {
347
+ g && m && (m.setVolume(i.volume, !0), i.muted ? m.mute(!0) : m.unmute(!0));
348
+ });
349
+ }, [g, m]), C = A(() => {
350
+ a(() => {
351
+ });
352
+ }, []), ee = A(() => {
353
+ }, []), f = A(() => {
354
+ const i = t.current;
355
+ i && u(() => {
356
+ g && m && m.setBuffered(i.buffered);
357
+ });
358
+ }, [g, m]), V = A(() => {
359
+ const i = performance.now();
360
+ if (i - S.current > 0 && (d.current++, d.current >= 60)) {
361
+ const B = Math.round(d.current * 1e3 / (i - S.current));
362
+ F((Y) => ({
363
+ ...Y,
364
+ frameRate: B,
365
+ droppedFrames: Math.max(0, 60 - B)
366
+ })), d.current = 0, S.current = i;
367
+ }
368
+ }, []);
369
+ q(() => {
370
+ const i = t.current;
371
+ if (!i)
372
+ return;
373
+ const k = [
374
+ { event: "timeupdate", handler: L, passive: !0 },
375
+ { event: "play", handler: I },
376
+ { event: "pause", handler: U },
377
+ { event: "volumechange", handler: _ },
378
+ { event: "seeking", handler: C },
379
+ { event: "seeked", handler: ee },
380
+ { event: "progress", handler: f, passive: !0 },
381
+ { event: "loadedmetadata", handler: () => V() },
382
+ { event: "loadeddata", handler: () => V() }
383
+ ];
384
+ k.forEach(({ event: te, handler: ne, passive: ie }) => {
385
+ const oe = ie ? { passive: !0 } : {};
386
+ i.addEventListener(te, ne, oe);
387
+ });
388
+ let B;
389
+ const Y = () => {
390
+ V(), B = requestAnimationFrame(Y);
391
+ };
392
+ return e.enablePerformanceMonitoring && Y(), () => {
393
+ k.forEach(({ event: te, handler: ne }) => {
394
+ i.removeEventListener(te, ne);
395
+ }), B && cancelAnimationFrame(B);
396
+ };
397
+ }, [
398
+ L,
399
+ I,
400
+ U,
401
+ _,
402
+ C,
403
+ ee,
404
+ f,
405
+ V,
406
+ e.enablePerformanceMonitoring
407
+ ]);
408
+ const se = ue(() => {
409
+ const i = async () => {
410
+ const x = t.current;
411
+ if (x)
412
+ if (g && m)
413
+ await m.play(!0);
414
+ else
415
+ try {
416
+ await x.play();
417
+ } catch (X) {
418
+ console.error("Failed to play media:", X);
419
+ }
420
+ }, k = () => {
421
+ const x = t.current;
422
+ x && (g && m ? m.pause(!0) : x.pause());
423
+ };
424
+ return {
425
+ play: i,
426
+ pause: k,
427
+ toggle: () => {
428
+ r ? k() : i();
429
+ },
430
+ seek: (x) => {
431
+ const X = t.current;
432
+ if (!X)
433
+ return;
434
+ const Z = Math.max(0, Math.min(x, p || 0));
435
+ g && m ? a(() => {
436
+ m.seek(Z, !0);
437
+ }) : X.currentTime = Z;
438
+ },
439
+ setVolume: (x) => {
440
+ const X = t.current;
441
+ if (!X)
442
+ return;
443
+ const Z = Math.max(0, Math.min(1, x));
444
+ g && m ? (P(Z), u(() => {
445
+ m.setVolume(Z, !0);
446
+ })) : X.volume = Z;
447
+ },
448
+ toggleMute: () => {
449
+ const x = t.current;
450
+ x && (g && m ? m.toggleMute(!0) : x.muted = !x.muted);
451
+ },
452
+ enterFullscreen: async () => {
453
+ const x = n.current;
454
+ if (!(!x || !document.fullscreenEnabled))
455
+ try {
456
+ await x.requestFullscreen(), g && m && m.enterFullscreen(!0);
457
+ } catch (X) {
458
+ console.error("Failed to enter fullscreen:", X);
459
+ }
460
+ },
461
+ exitFullscreen: async () => {
462
+ if (document.fullscreenElement)
463
+ try {
464
+ await document.exitFullscreen(), g && m && m.exitFullscreen(!0);
465
+ } catch (x) {
466
+ console.error("Failed to exit fullscreen:", x);
467
+ }
468
+ }
469
+ };
470
+ }, [
471
+ r,
472
+ p,
473
+ g,
474
+ m,
475
+ u,
476
+ a,
477
+ P
478
+ ]), ae = ue(() => ({
479
+ isPlaying: w?.isPlaying ?? r,
480
+ currentTime: w?.currentTime ?? y,
481
+ duration: w?.duration ?? p,
482
+ volume: w?.volume ?? O,
483
+ isMuted: w?.isMuted ?? v,
484
+ isLoading: w?.isBuffering ?? M,
485
+ isBuffering: w?.isBuffering ?? h,
486
+ error: w?.error ?? c,
487
+ buffered: w?.buffered ?? T,
488
+ isFullscreen: w?.isFullscreen ?? E,
489
+ progress: p > 0 ? y / p : 0,
490
+ isTransitioning: s || o,
491
+ canPlay: !M && !h && !c
492
+ }), [
493
+ w,
494
+ r,
495
+ y,
496
+ p,
497
+ O,
498
+ v,
499
+ M,
500
+ h,
501
+ c,
502
+ T,
503
+ E,
504
+ s,
505
+ o
506
+ ]);
507
+ return {
508
+ // Refs
509
+ mediaRef: t,
510
+ containerRef: n,
511
+ // State
512
+ state: ae,
513
+ actualState: w?.actualState,
514
+ // Controls
515
+ controls: se,
516
+ // Performance metrics
517
+ performanceMetrics: z,
518
+ isTransitioning: s || o,
519
+ // Enhanced features
520
+ actions: w?.actions,
521
+ actionState: w?.actionState,
522
+ // Optimistic features
523
+ optimisticState: w,
524
+ isEnhanced: g
525
+ };
526
+ }
527
+ function Ue(e = {}) {
528
+ const {
529
+ maxMemoryUsage: t = 100,
530
+ // 100MB default
531
+ cleanupInterval: n = 3e4,
532
+ // 30 seconds default
533
+ enableGC: s = !0,
534
+ monitorMemory: u = !0
535
+ } = e;
536
+ W();
537
+ const o = W(/* @__PURE__ */ new Set()), a = W(/* @__PURE__ */ new Map()), d = W(/* @__PURE__ */ new Set()), S = W(/* @__PURE__ */ new Set()), D = A(() => {
538
+ if (typeof window > "u" || !("memory" in performance))
539
+ return { used: 0, total: 0, limit: 0 };
540
+ const h = performance.memory;
541
+ return {
542
+ used: h.usedJSHeapSize,
543
+ total: h.totalJSHeapSize,
544
+ limit: h.jsHeapSizeLimit
545
+ };
546
+ }, []), [R, g] = N.useState({
547
+ used: 0,
548
+ total: 0,
549
+ limit: 0,
550
+ usage: 0,
551
+ isHighUsage: !1
552
+ });
553
+ q(() => {
554
+ if (!u)
555
+ return;
556
+ const h = () => {
557
+ const T = D(), E = T.used / 1024 / 1024, b = E > t;
558
+ g({
559
+ ...T,
560
+ usage: E,
561
+ isHighUsage: b
562
+ }), b && s && r();
563
+ };
564
+ h();
565
+ const c = p(h, n);
566
+ return d.current.add(c), () => {
567
+ clearInterval(c), d.current.delete(c);
568
+ };
569
+ }, [u, D, t, s, n]);
570
+ const r = A(() => {
571
+ d.current.forEach((h) => {
572
+ clearTimeout(h);
573
+ }), d.current.clear(), S.current.forEach((h) => {
574
+ cancelAnimationFrame(h);
575
+ }), S.current.clear(), o.current.forEach((h) => {
576
+ h.disconnect();
577
+ }), o.current.clear(), a.current.forEach((h, c) => {
578
+ h.forEach(({ event: T, handler: E }) => {
579
+ c.removeEventListener(T, E);
580
+ });
581
+ }), a.current.clear(), s && "gc" in window && window.gc();
582
+ }, [s]), y = A((h, c, T, E) => (h.addEventListener(c, T, E), a.current.has(h) || a.current.set(h, []), a.current.get(h).push({ event: c, handler: T }), () => {
583
+ h.removeEventListener(c, T);
584
+ const b = a.current.get(h);
585
+ if (b) {
586
+ const w = b.findIndex((m) => m.event === c && m.handler === T);
587
+ w > -1 && b.splice(w, 1), b.length === 0 && a.current.delete(h);
588
+ }
589
+ }), []), p = A((h, c) => {
590
+ const T = p(h, c);
591
+ return d.current.add(T), () => {
592
+ clearInterval(T), d.current.delete(T);
593
+ };
594
+ }, []), l = A((h, c) => {
595
+ const T = l(h, c);
596
+ return d.current.add(T), () => {
597
+ clearTimeout(T), d.current.delete(T);
598
+ };
599
+ }, []), v = A((h) => {
600
+ const c = v(h);
601
+ return S.current.add(c), () => {
602
+ cancelAnimationFrame(c), S.current.delete(c);
603
+ };
604
+ }, []), M = A((h) => (o.current.add(h), () => {
605
+ h.disconnect(), o.current.delete(h);
606
+ }), []);
607
+ return q(() => () => {
608
+ r();
609
+ }, [r]), {
610
+ // Memory stats
611
+ memoryStats: R,
612
+ getMemoryUsage: D,
613
+ // Cleanup functions
614
+ performCleanup: r,
615
+ // Safe API functions
616
+ addEventListener: y,
617
+ setInterval: p,
618
+ setTimeout: l,
619
+ requestAnimationFrame: v,
620
+ addObserver: M,
621
+ // Utilities
622
+ formatBytes: (h) => {
623
+ if (h === 0)
624
+ return "0 Bytes";
625
+ const c = 1024, T = ["Bytes", "KB", "MB", "GB"], E = Math.floor(Math.log(h) / Math.log(c));
626
+ return parseFloat((h / Math.pow(c, E)).toFixed(2)) + " " + T[E];
627
+ }
628
+ };
629
+ }
630
+ function be({
631
+ enabled: e = !0,
632
+ state: t,
633
+ controls: n,
634
+ seekStep: s = 10,
635
+ volumeStep: u = 0.1
636
+ }) {
637
+ const o = (a) => {
638
+ if (!e) return;
639
+ const d = a.target;
640
+ if (!(d.tagName === "INPUT" || d.tagName === "TEXTAREA" || d.contentEditable === "true"))
641
+ switch (a.code) {
642
+ case "Space":
643
+ case "KeyK":
644
+ a.preventDefault(), n.toggle();
645
+ break;
646
+ case "KeyM":
647
+ a.preventDefault(), n.toggleMute();
648
+ break;
649
+ case "KeyF":
650
+ a.preventDefault(), n.toggleFullscreen();
651
+ break;
652
+ case "ArrowLeft":
653
+ a.preventDefault(), n.seek(Math.max(0, t.currentTime - s));
654
+ break;
655
+ case "ArrowRight":
656
+ a.preventDefault(), n.seek(Math.min(t.duration, t.currentTime + s));
657
+ break;
658
+ case "ArrowUp":
659
+ a.preventDefault(), n.setVolume(Math.min(1, t.volume + u));
660
+ break;
661
+ case "ArrowDown":
662
+ a.preventDefault(), n.setVolume(Math.max(0, t.volume - u));
663
+ break;
664
+ case "Digit0":
665
+ case "Digit1":
666
+ case "Digit2":
667
+ case "Digit3":
668
+ case "Digit4":
669
+ case "Digit5":
670
+ case "Digit6":
671
+ case "Digit7":
672
+ case "Digit8":
673
+ case "Digit9":
674
+ a.preventDefault();
675
+ const D = parseInt(a.code.replace("Digit", ""), 10) / 10;
676
+ n.seek(t.duration * D);
677
+ break;
678
+ case "Home":
679
+ a.preventDefault(), n.seek(0);
680
+ break;
681
+ case "End":
682
+ a.preventDefault(), n.seek(t.duration);
683
+ break;
684
+ }
685
+ };
686
+ return q(() => {
687
+ if (e)
688
+ return document.addEventListener("keydown", o), () => {
689
+ document.removeEventListener("keydown", o);
690
+ };
691
+ }, [e, o]), {
692
+ handleKeyDown: o
693
+ };
694
+ }
695
+ const Ve = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
696
+ __proto__: null,
697
+ useKeyboardControls: be
698
+ }, Symbol.toStringTag, { value: "Module" }));
699
+ function G(e, t) {
700
+ return ((n, s = !1) => {
701
+ const u = {
702
+ type: e,
703
+ detail: n,
704
+ optimistic: s,
705
+ timestamp: Date.now()
706
+ };
707
+ return s ? t.dispatchOptimistic(u) : (t.dispatch(u), Promise.resolve());
708
+ });
709
+ }
710
+ function Se(e) {
711
+ const [t, n] = N.useState(e.getActionState());
712
+ return N.useEffect(() => e.subscribe(() => {
713
+ const u = e.getActionState();
714
+ n(
715
+ (o) => JSON.stringify(o) !== JSON.stringify(u) ? u : o
716
+ );
717
+ }), [e]), t;
718
+ }
719
+ function _e(e) {
720
+ const t = N.useMemo(() => ({
721
+ // Playback actions
722
+ play: G(K.PLAY, e),
723
+ pause: G(K.PAUSE, e),
724
+ seek: G(K.SEEK, e),
725
+ // Volume actions
726
+ setVolume: G(K.SET_VOLUME, e),
727
+ mute: G(K.MUTE, e),
728
+ unmute: G(K.UNMUTE, e),
729
+ toggleMute: G(K.TOGGLE_MUTE, e),
730
+ // Media state actions
731
+ setDuration: G(K.SET_DURATION, e),
732
+ setCurrentTime: G(K.SET_CURRENT_TIME, e),
733
+ setBuffered: G(K.SET_BUFFERED, e),
734
+ setLoading: G(K.SET_LOADING, e),
735
+ setError: G(K.SET_ERROR, e),
736
+ // Display actions
737
+ enterFullscreen: G(K.ENTER_FULLSCREEN, e),
738
+ exitFullscreen: G(K.EXIT_FULLSCREEN, e),
739
+ enterPiP: G(K.ENTER_PIP, e),
740
+ exitPiP: G(K.EXIT_PIP, e),
741
+ // Advanced actions
742
+ setPlaybackRate: G(K.SET_PLAYBACK_RATE, e),
743
+ setSubtitleTrack: G(K.SET_SUBTITLE_TRACK, e),
744
+ setRendition: G(K.SET_RENDITION, e),
745
+ toggleSubtitles: G(K.TOGGLE_SUBTITLES, e),
746
+ // Preview actions
747
+ previewTime: G(K.PREVIEW_TIME, e),
748
+ clearPreview: G(K.CLEAR_PREVIEW, e)
749
+ }), [e]), n = Se(e), s = N.useMemo(() => ({
750
+ // These actions benefit from immediate UI feedback
751
+ togglePlayPause: async (o) => {
752
+ o ? await t.pause(!0) : await t.play(!0);
753
+ },
754
+ seekWithPreview: async (o) => {
755
+ await t.previewTime(o, !0), await t.seek(o, !0);
756
+ },
757
+ adjustVolume: async (o, a) => {
758
+ const d = Math.max(0, Math.min(1, a + o));
759
+ await t.setVolume(d, !0);
760
+ },
761
+ toggleFullscreenOptimistic: async (o) => {
762
+ o ? await t.exitFullscreen(!0) : await t.enterFullscreen(!0);
763
+ }
764
+ }), [t]), u = N.useCallback(async () => {
765
+ const { lastAction: o } = n;
766
+ o && n.error && await e.dispatchOptimistic({
767
+ ...o,
768
+ retryCount: (o.retryCount || 0) + 1
769
+ });
770
+ }, [e, n]);
771
+ return {
772
+ ...t,
773
+ ...s,
774
+ actionState: n,
775
+ retryLastAction: u,
776
+ isLoading: n.pending,
777
+ hasError: !!n.error,
778
+ errorMessage: n.error,
779
+ retryCount: n.retryCount
780
+ };
781
+ }
782
+ function Me() {
783
+ const [e, t] = Q({
784
+ isPlaying: !1,
785
+ currentTime: 0,
786
+ duration: 0,
787
+ volume: 1,
788
+ isMuted: !1,
789
+ isLoading: !1,
790
+ isFullscreen: !1,
791
+ error: null,
792
+ buffered: null
793
+ }), n = (r) => {
794
+ t((y) => ({ ...y, ...r }));
795
+ };
796
+ return {
797
+ state: e,
798
+ updateState: n,
799
+ setPlaying: (r) => {
800
+ n({ isPlaying: r });
801
+ },
802
+ setCurrentTime: (r) => {
803
+ n({ currentTime: r });
804
+ },
805
+ setDuration: (r) => {
806
+ n({ duration: r });
807
+ },
808
+ setVolume: (r) => {
809
+ n({ volume: Math.max(0, Math.min(1, r)) });
810
+ },
811
+ setMuted: (r) => {
812
+ n({ isMuted: r });
813
+ },
814
+ setLoading: (r) => {
815
+ n({ isLoading: r });
816
+ },
817
+ setFullscreen: (r) => {
818
+ n({ isFullscreen: r });
819
+ },
820
+ setError: (r) => {
821
+ n({ error: r });
822
+ },
823
+ setBuffered: (r) => {
824
+ n({ buffered: r });
825
+ }
826
+ };
827
+ }
828
+ function Le(e) {
829
+ const t = W(null), n = W(null), {
830
+ state: s,
831
+ setPlaying: u,
832
+ setCurrentTime: o,
833
+ setDuration: a,
834
+ setVolume: d,
835
+ setMuted: S,
836
+ setLoading: D,
837
+ setFullscreen: R,
838
+ setError: g,
839
+ setBuffered: r
840
+ } = Me();
841
+ q(() => {
842
+ const f = t.current;
843
+ f && (e.volume !== void 0 && (f.volume = e.volume, d(e.volume)), e.muted !== void 0 && (f.muted = e.muted, S(e.muted)), e.autoPlay !== void 0 && (f.autoplay = e.autoPlay), e.loop !== void 0 && (f.loop = e.loop), e.preload !== void 0 && (f.preload = e.preload), e.crossOrigin !== void 0 && (f.crossOrigin = e.crossOrigin));
844
+ }, [e, d, S]);
845
+ const y = () => {
846
+ u(!0), e.onPlay?.();
847
+ }, p = () => {
848
+ u(!1), e.onPause?.();
849
+ }, l = () => {
850
+ const f = t.current;
851
+ f && (o(f.currentTime), e.onTimeUpdate?.(f.currentTime));
852
+ }, v = () => {
853
+ const f = t.current;
854
+ f && (a(f.duration), e.onDurationChange?.(f.duration));
855
+ }, M = () => {
856
+ const f = t.current;
857
+ f && (d(f.volume), S(f.muted), e.onVolumeChange?.(f.volume));
858
+ }, h = () => {
859
+ D(!0), g(null), e.onLoadStart?.();
860
+ }, c = () => {
861
+ D(!1), e.onLoadedData?.();
862
+ }, T = () => {
863
+ const f = t.current;
864
+ if (!f) return;
865
+ const V = f.error?.message || "An error occurred while loading the media";
866
+ g(V), D(!1), e.onError?.(V);
867
+ }, E = () => {
868
+ u(!1), e.onEnded?.();
869
+ }, b = () => {
870
+ const f = t.current;
871
+ f && r(f.buffered);
872
+ };
873
+ q(() => {
874
+ const f = t.current;
875
+ if (f)
876
+ return f.addEventListener("play", y), f.addEventListener("pause", p), f.addEventListener("timeupdate", l), f.addEventListener("durationchange", v), f.addEventListener("volumechange", M), f.addEventListener("loadstart", h), f.addEventListener("loadeddata", c), f.addEventListener("error", T), f.addEventListener("ended", E), f.addEventListener("progress", b), () => {
877
+ f.removeEventListener("play", y), f.removeEventListener("pause", p), f.removeEventListener("timeupdate", l), f.removeEventListener("durationchange", v), f.removeEventListener("volumechange", M), f.removeEventListener("loadstart", h), f.removeEventListener("loadeddata", c), f.removeEventListener("error", T), f.removeEventListener("ended", E), f.removeEventListener("progress", b);
878
+ };
879
+ }, [
880
+ y,
881
+ p,
882
+ l,
883
+ v,
884
+ M,
885
+ h,
886
+ c,
887
+ T,
888
+ E,
889
+ b
890
+ ]);
891
+ const w = async () => {
892
+ const f = t.current;
893
+ if (f)
894
+ try {
895
+ await f.play();
896
+ } catch (V) {
897
+ console.error("Failed to play media:", V), g("Failed to play media");
898
+ }
899
+ }, m = () => {
900
+ const f = t.current;
901
+ f && f.pause();
902
+ }, z = () => {
903
+ s.isPlaying ? m() : w();
904
+ }, F = (f) => {
905
+ const V = t.current;
906
+ V && (V.currentTime = Math.max(0, Math.min(f, V.duration || 0)));
907
+ }, O = (f) => {
908
+ const V = t.current;
909
+ if (!V) return;
910
+ const se = Math.max(0, Math.min(1, f));
911
+ V.volume = se;
912
+ }, P = () => {
913
+ const f = t.current;
914
+ f && (f.muted = !0);
915
+ }, L = () => {
916
+ const f = t.current;
917
+ f && (f.muted = !1);
918
+ }, I = () => {
919
+ const f = t.current;
920
+ f && (f.muted = !f.muted);
921
+ }, U = async () => {
922
+ const f = n.current;
923
+ if (!(!f || !document.fullscreenEnabled))
924
+ try {
925
+ await f.requestFullscreen(), R(!0);
926
+ } catch (V) {
927
+ console.error("Failed to enter fullscreen:", V);
928
+ }
929
+ }, _ = async () => {
930
+ if (document.fullscreenElement)
931
+ try {
932
+ await document.exitFullscreen(), R(!1);
933
+ } catch (f) {
934
+ console.error("Failed to exit fullscreen:", f);
935
+ }
936
+ }, C = () => {
937
+ document.fullscreenElement ? _() : U();
938
+ };
939
+ return q(() => {
940
+ const f = () => {
941
+ R(!!document.fullscreenElement);
942
+ };
943
+ return document.addEventListener("fullscreenchange", f), () => {
944
+ document.removeEventListener("fullscreenchange", f);
945
+ };
946
+ }, [R]), {
947
+ state: s,
948
+ controls: {
949
+ play: w,
950
+ pause: m,
951
+ toggle: z,
952
+ seek: F,
953
+ setVolume: O,
954
+ mute: P,
955
+ unmute: L,
956
+ toggleMute: I,
957
+ enterFullscreen: U,
958
+ exitFullscreen: _,
959
+ toggleFullscreen: C
960
+ },
961
+ mediaRef: t,
962
+ containerRef: n
963
+ };
964
+ }
965
+ const J = {
966
+ mobile: 768,
967
+ desktop: 1280
968
+ };
969
+ function fe() {
970
+ if (typeof window > "u") return "unknown";
971
+ const e = window.navigator.userAgent.toLowerCase();
972
+ return /iphone|ipad|ipod/.test(e) ? "ios" : /android/.test(e) ? "android" : /windows|mac|linux/.test(e) ? "desktop" : "unknown";
973
+ }
974
+ function ge() {
975
+ return typeof window > "u" ? !1 : "ontouchstart" in window || navigator.maxTouchPoints > 0 || // @ts-ignore - for older browsers
976
+ navigator.msMaxTouchPoints > 0;
977
+ }
978
+ function he() {
979
+ return typeof window > "u" ? !1 : "vibrate" in navigator || // @ts-ignore - for newer Vibration API
980
+ "vibration" in navigator || // @ts-ignore - for iOS haptic feedback
981
+ "ondevicemotion" in window;
982
+ }
983
+ function de() {
984
+ const [e, t] = re.useState(() => {
985
+ if (typeof window > "u")
986
+ return {
987
+ isMobile: !1,
988
+ isTablet: !1,
989
+ isDesktop: !0,
990
+ isTouchDevice: !1,
991
+ platform: "unknown",
992
+ supportsHaptics: !1,
993
+ screenSize: { width: 1920, height: 1080 },
994
+ orientation: "landscape"
995
+ };
996
+ const n = window.innerWidth, s = window.innerHeight;
997
+ return {
998
+ isMobile: n < J.mobile,
999
+ isTablet: n >= J.mobile && n < J.desktop,
1000
+ isDesktop: n >= J.desktop,
1001
+ isTouchDevice: ge(),
1002
+ platform: fe(),
1003
+ supportsHaptics: he(),
1004
+ screenSize: { width: n, height: s },
1005
+ orientation: n > s ? "landscape" : "portrait"
1006
+ };
1007
+ });
1008
+ return re.useEffect(() => {
1009
+ const n = () => {
1010
+ const a = window.innerWidth, d = window.innerHeight;
1011
+ t({
1012
+ isMobile: a < J.mobile,
1013
+ isTablet: a >= J.mobile && a < J.desktop,
1014
+ isDesktop: a >= J.desktop,
1015
+ isTouchDevice: ge(),
1016
+ platform: fe(),
1017
+ supportsHaptics: he(),
1018
+ screenSize: { width: a, height: d },
1019
+ orientation: a > d ? "landscape" : "portrait"
1020
+ });
1021
+ };
1022
+ window.addEventListener("resize", n), window.addEventListener("orientationchange", n);
1023
+ const s = window.matchMedia(`(max-width: ${J.mobile - 1}px)`), u = window.matchMedia(`(min-width: ${J.mobile}px) and (max-width: ${J.desktop - 1}px)`), o = window.matchMedia(`(min-width: ${J.desktop}px)`);
1024
+ return s.addEventListener("change", n), u.addEventListener("change", n), o.addEventListener("change", n), () => {
1025
+ window.removeEventListener("resize", n), window.removeEventListener("orientationchange", n), s.removeEventListener("change", n), u.removeEventListener("change", n), o.removeEventListener("change", n);
1026
+ };
1027
+ }, []), e;
1028
+ }
1029
+ function Be() {
1030
+ const { platform: e, isMobile: t } = de();
1031
+ re.useEffect(() => {
1032
+ if (t) {
1033
+ if (e === "ios") {
1034
+ const n = (s) => {
1035
+ s.touches.length > 1 && s.preventDefault();
1036
+ };
1037
+ return document.addEventListener("touchstart", n, { passive: !1 }), document.body.style.webkitOverflowScrolling = "touch", () => {
1038
+ document.removeEventListener("touchstart", n);
1039
+ };
1040
+ }
1041
+ e === "android" && (document.body.style.touchAction = "manipulation"), document.documentElement.style.setProperty("--webkit-transform", "translateZ(0)"), document.documentElement.style.setProperty("--transform", "translateZ(0)");
1042
+ }
1043
+ }, [e, t]);
1044
+ }
1045
+ function ke() {
1046
+ const { supportsHaptics: e } = de();
1047
+ return { triggerHaptic: re.useCallback((n = "light") => {
1048
+ if (!e) return;
1049
+ const u = {
1050
+ light: [10],
1051
+ medium: [20],
1052
+ heavy: [30],
1053
+ success: [10, 10, 10],
1054
+ warning: [20, 20],
1055
+ error: [50, 20, 50]
1056
+ }[n];
1057
+ "vibrate" in navigator && navigator.vibrate(u);
1058
+ }, [e]), supportsHaptics: e };
1059
+ }
1060
+ const Pe = {
1061
+ enabledGestures: ["tap", "double-tap", "long-press", "swipe-left", "swipe-right", "swipe-up", "swipe-down", "pinch-in", "pinch-out"],
1062
+ tapThreshold: 200,
1063
+ doubleTapThreshold: 300,
1064
+ longPressThreshold: 500,
1065
+ swipeThreshold: 50,
1066
+ swipeVelocityThreshold: 0.5,
1067
+ pinchThreshold: 0.1,
1068
+ rotationThreshold: 15,
1069
+ enableHapticFeedback: !0
1070
+ };
1071
+ function Fe(e, t, n = {}) {
1072
+ const s = { ...Pe, ...n }, { isTouchDevice: u } = de(), { triggerHaptic: o } = ke(), a = re.useRef({
1073
+ isTracking: !1,
1074
+ touches: [],
1075
+ startTouches: []
1076
+ }), d = (p) => ({
1077
+ id: p.identifier,
1078
+ x: p.clientX,
1079
+ y: p.clientY,
1080
+ timestamp: Date.now()
1081
+ }), S = (p, l) => Math.sqrt(Math.pow(l.x - p.x, 2) + Math.pow(l.y - p.y, 2)), D = (p, l) => {
1082
+ const v = Math.max(l.timestamp - p.timestamp, 1);
1083
+ return {
1084
+ x: (l.x - p.x) / v,
1085
+ y: (l.y - p.y) / v
1086
+ };
1087
+ }, R = (p, l, v, M = {}) => ({
1088
+ type: p,
1089
+ startPoint: { x: l.x, y: l.y },
1090
+ currentPoint: { x: v.x, y: v.y },
1091
+ duration: v.timestamp - l.timestamp,
1092
+ target: e.current,
1093
+ preventDefault: () => {
1094
+ },
1095
+ ...M
1096
+ }), g = re.useCallback((p) => {
1097
+ if (!s.enabledGestures.length) return;
1098
+ const l = Array.from(p.touches).map(d), v = a.current;
1099
+ v.isTracking = !0, v.touches = l, v.startTouches = [...l], v.longPressTimer && clearTimeout(v.longPressTimer), l.length === 1 && s.enabledGestures.includes("long-press") && (v.longPressTimer = setTimeout(() => {
1100
+ if (v.touches.length === 1 && l[0]) {
1101
+ const M = R("long-press", l[0], l[0]);
1102
+ t(M), s.enableHapticFeedback && o("heavy");
1103
+ }
1104
+ }, s.longPressThreshold)), l.length === 2 && l[0] && l[1] && (v.initialDistance = S(l[0], l[1]), v.initialScale = 1, v.lastScale = 1);
1105
+ }, [s, t, o]), r = re.useCallback((p) => {
1106
+ const l = a.current;
1107
+ if (!l.isTracking) return;
1108
+ const v = Array.from(p.touches).map(d);
1109
+ if (l.touches = v, v.length === 2 && l.initialDistance && v[0] && v[1]) {
1110
+ const M = S(v[0], v[1]), h = M / l.initialDistance;
1111
+ if (Math.abs(h - (l.lastScale || 1)) > s.pinchThreshold) {
1112
+ const T = h > (l.lastScale || 1) ? "pinch-out" : "pinch-in";
1113
+ if (s.enabledGestures.includes(T)) {
1114
+ const E = {
1115
+ x: (v[0].x + v[1].x) / 2,
1116
+ y: (v[0].y + v[1].y) / 2,
1117
+ timestamp: Date.now()
1118
+ }, b = {
1119
+ x: ((l.startTouches[0]?.x ?? 0) + (l.startTouches[1]?.x ?? 0)) / 2,
1120
+ y: ((l.startTouches[0]?.y ?? 0) + (l.startTouches[1]?.y ?? 0)) / 2,
1121
+ timestamp: l.startTouches[0]?.timestamp ?? Date.now()
1122
+ }, w = R(T, b, E, {
1123
+ scale: h,
1124
+ distance: M
1125
+ });
1126
+ t(w), l.lastScale = h;
1127
+ }
1128
+ }
1129
+ }
1130
+ if (l.longPressTimer && v.length === 1 && l.startTouches[0] && v[0]) {
1131
+ const M = l.startTouches[0], h = v[0];
1132
+ S(M, h) > s.swipeThreshold && (clearTimeout(l.longPressTimer), l.longPressTimer = void 0);
1133
+ }
1134
+ }, [s, t]), y = re.useCallback((p) => {
1135
+ const l = a.current;
1136
+ if (!l.isTracking) return;
1137
+ const v = Array.from(p.changedTouches).map(d), M = Date.now();
1138
+ if (l.longPressTimer && (clearTimeout(l.longPressTimer), l.longPressTimer = void 0), l.startTouches.length === 1 && v.length === 1 && l.startTouches[0] && v[0]) {
1139
+ const h = l.startTouches[0], c = v[0], T = S(h, c), E = c.timestamp - h.timestamp;
1140
+ if (T > s.swipeThreshold) {
1141
+ const b = D(h, c), w = Math.abs(b.x), m = Math.abs(b.y);
1142
+ if (w > s.swipeVelocityThreshold || m > s.swipeVelocityThreshold) {
1143
+ let z;
1144
+ if (w > m ? z = b.x > 0 ? "swipe-right" : "swipe-left" : z = b.y > 0 ? "swipe-down" : "swipe-up", s.enabledGestures.includes(z)) {
1145
+ const F = R(z, h, c, {
1146
+ velocity: b,
1147
+ distance: T
1148
+ });
1149
+ t(F), s.enableHapticFeedback && o("light");
1150
+ }
1151
+ }
1152
+ } else if (E < s.tapThreshold && T < s.swipeThreshold)
1153
+ if (l.lastTap && M - l.lastTap.timestamp < s.doubleTapThreshold && S({ ...l.lastTap.point }, c) < s.swipeThreshold) {
1154
+ if (s.enabledGestures.includes("double-tap")) {
1155
+ const b = R("double-tap", h, c);
1156
+ t(b), s.enableHapticFeedback && o("medium");
1157
+ }
1158
+ l.lastTap = void 0;
1159
+ } else {
1160
+ if (s.enabledGestures.includes("tap")) {
1161
+ const b = R("tap", h, c);
1162
+ t(b), s.enableHapticFeedback && o("light");
1163
+ }
1164
+ l.lastTap = {
1165
+ timestamp: M,
1166
+ point: { x: c.x, y: c.y }
1167
+ };
1168
+ }
1169
+ }
1170
+ p.touches.length === 0 && (l.isTracking = !1, l.touches = [], l.startTouches = [], l.initialDistance = void 0, l.initialScale = void 0, l.lastScale = void 0);
1171
+ }, [s, t, o]);
1172
+ return re.useEffect(() => {
1173
+ const p = e.current;
1174
+ if (!(!p || !u))
1175
+ return p.addEventListener("touchstart", g, { passive: !1 }), p.addEventListener("touchmove", r, { passive: !1 }), p.addEventListener("touchend", y, { passive: !1 }), p.addEventListener("touchcancel", y, { passive: !1 }), () => {
1176
+ p.removeEventListener("touchstart", g), p.removeEventListener("touchmove", r), p.removeEventListener("touchend", y), p.removeEventListener("touchcancel", y);
1177
+ };
1178
+ }, [g, r, y, u]), {
1179
+ isGestureEnabled: u && s.enabledGestures.length > 0
1180
+ };
1181
+ }
1182
+ function Ne(e, t) {
1183
+ const n = re.useCallback((u) => {
1184
+ const { type: o, distance: a, scale: d } = u;
1185
+ switch (o) {
1186
+ case "double-tap":
1187
+ t.onPlayPause?.();
1188
+ break;
1189
+ case "swipe-left":
1190
+ const S = Math.min((a || 0) / 10, 30);
1191
+ t.onSeek?.("backward", S);
1192
+ break;
1193
+ case "swipe-right":
1194
+ const D = Math.min((a || 0) / 10, 30);
1195
+ t.onSeek?.("forward", D);
1196
+ break;
1197
+ case "swipe-up":
1198
+ if (u.startPoint.x > (e.current?.clientWidth || 0) / 2) {
1199
+ const R = Math.min((a || 0) / 100, 0.2);
1200
+ t.onVolumeChange?.("up", R);
1201
+ }
1202
+ break;
1203
+ case "swipe-down":
1204
+ if (u.startPoint.x > (e.current?.clientWidth || 0) / 2) {
1205
+ const R = Math.min((a || 0) / 100, 0.2);
1206
+ t.onVolumeChange?.("down", R);
1207
+ }
1208
+ break;
1209
+ case "pinch-out":
1210
+ t.onZoom?.(d || 1);
1211
+ break;
1212
+ case "pinch-in":
1213
+ t.onZoom?.(d || 1);
1214
+ break;
1215
+ case "long-press":
1216
+ t.onToggleFullscreen?.();
1217
+ break;
1218
+ }
1219
+ }, [t, e]);
1220
+ return Fe(e, n, {
1221
+ enabledGestures: ["tap", "double-tap", "long-press", "swipe-left", "swipe-right", "swipe-up", "swipe-down", "pinch-in", "pinch-out"],
1222
+ enableHapticFeedback: !0,
1223
+ swipeThreshold: 30,
1224
+ swipeVelocityThreshold: 0.3
1225
+ });
1226
+ }
1227
+ function He(e) {
1228
+ const t = W(null), [n, s] = Q({
1229
+ isPlaying: !1,
1230
+ currentTime: 0,
1231
+ duration: 0,
1232
+ volume: 1,
1233
+ isMuted: !1,
1234
+ isFullscreen: !1,
1235
+ isLoading: !0,
1236
+ isSeeking: !1,
1237
+ isBuffering: !1,
1238
+ bufferedRanges: []
1239
+ });
1240
+ return q(() => {
1241
+ const r = t.current;
1242
+ if (!r) return;
1243
+ const y = () => {
1244
+ s((F) => ({ ...F, currentTime: r.currentTime }));
1245
+ }, p = () => {
1246
+ s((F) => ({ ...F, duration: r.duration }));
1247
+ }, l = () => {
1248
+ s((F) => ({ ...F, isPlaying: !0, isBuffering: !1 }));
1249
+ }, v = () => {
1250
+ s((F) => ({ ...F, isPlaying: !1 }));
1251
+ }, M = () => {
1252
+ s((F) => ({
1253
+ ...F,
1254
+ volume: r.volume,
1255
+ isMuted: r.muted
1256
+ }));
1257
+ }, h = () => {
1258
+ s((F) => ({ ...F, isLoading: !0 }));
1259
+ }, c = () => {
1260
+ s((F) => ({ ...F, isLoading: !1 }));
1261
+ }, T = () => {
1262
+ s((F) => ({ ...F, isSeeking: !0 }));
1263
+ }, E = () => {
1264
+ s((F) => ({ ...F, isSeeking: !1 }));
1265
+ }, b = () => {
1266
+ s((F) => ({ ...F, isBuffering: !0 }));
1267
+ }, w = () => {
1268
+ s((F) => ({ ...F, isBuffering: !1, isLoading: !1 }));
1269
+ }, m = () => {
1270
+ s((F) => ({ ...F, isLoading: !1, isBuffering: !1 }));
1271
+ }, z = () => {
1272
+ if (!r.buffered || r.buffered.length === 0 || r.duration === 0) {
1273
+ s((O) => ({ ...O, bufferedRanges: [] }));
1274
+ return;
1275
+ }
1276
+ const F = [];
1277
+ for (let O = 0; O < r.buffered.length; O++) {
1278
+ const P = r.buffered.start(O), L = r.buffered.end(O);
1279
+ F.push({
1280
+ start: P,
1281
+ end: L,
1282
+ percentage: (L - P) / r.duration * 100
1283
+ });
1284
+ }
1285
+ s((O) => ({ ...O, bufferedRanges: F }));
1286
+ };
1287
+ return r.addEventListener("timeupdate", y), r.addEventListener("loadedmetadata", p), r.addEventListener("play", l), r.addEventListener("pause", v), r.addEventListener("volumechange", M), r.addEventListener("loadstart", h), r.addEventListener("loadeddata", c), r.addEventListener("seeking", T), r.addEventListener("seeked", E), r.addEventListener("waiting", b), r.addEventListener("playing", w), r.addEventListener("canplay", m), r.addEventListener("progress", z), () => {
1288
+ r.removeEventListener("timeupdate", y), r.removeEventListener("loadedmetadata", p), r.removeEventListener("play", l), r.removeEventListener("pause", v), r.removeEventListener("volumechange", M), r.removeEventListener("loadstart", h), r.removeEventListener("loadeddata", c), r.removeEventListener("seeking", T), r.removeEventListener("seeked", E), r.removeEventListener("waiting", b), r.removeEventListener("playing", w), r.removeEventListener("canplay", m), r.removeEventListener("progress", z);
1289
+ };
1290
+ }, []), {
1291
+ videoRef: t,
1292
+ state: n,
1293
+ controls: {
1294
+ togglePlay: () => {
1295
+ const r = t.current;
1296
+ r && (n.isPlaying ? r.pause() : r.play());
1297
+ },
1298
+ seekForward: (r = 10) => {
1299
+ const y = t.current;
1300
+ y && (y.currentTime = Math.min(n.duration, y.currentTime + r));
1301
+ },
1302
+ seekBackward: (r = 10) => {
1303
+ const y = t.current;
1304
+ y && (y.currentTime = Math.max(0, y.currentTime - r));
1305
+ },
1306
+ toggleMute: () => {
1307
+ const r = t.current;
1308
+ r && (r.muted = !n.isMuted);
1309
+ },
1310
+ setVolume: (r) => {
1311
+ const y = t.current;
1312
+ y && (y.volume = r, r > 0 && n.isMuted && (y.muted = !1));
1313
+ },
1314
+ toggleFullscreen: () => {
1315
+ const r = e.current;
1316
+ r && (n.isFullscreen ? document.exitFullscreen && document.exitFullscreen() : r.requestFullscreen && r.requestFullscreen(), s((y) => ({ ...y, isFullscreen: !y.isFullscreen })));
1317
+ },
1318
+ seekTo: (r) => {
1319
+ const y = t.current;
1320
+ !y || n.duration === 0 || (y.currentTime = Math.max(0, Math.min(n.duration, r)));
1321
+ }
1322
+ }
1323
+ };
1324
+ }
1325
+ function De({
1326
+ subtitleSrc: e,
1327
+ subtitleTracks: t = [],
1328
+ defaultFontSize: n = "medium",
1329
+ onLoadError: s
1330
+ } = {}) {
1331
+ const [u, o] = Q(!1), [a, d] = Q([]), [S, D] = Q(""), [R, g] = Q(null), [r, y] = Q(n), [p, l] = Q(null), [v, M] = Q(!1), h = {
1332
+ small: "text-sm",
1333
+ medium: "text-base",
1334
+ large: "text-lg"
1335
+ }, c = !!(e || t && t.length > 0), T = (P) => {
1336
+ const L = P.split(":"), I = L[2] ? parseFloat(L[2]) : 0, U = L[1] ? parseInt(L[1], 10) * 60 : 0;
1337
+ return (L[0] ? parseInt(L[0], 10) * 3600 : 0) + U + I;
1338
+ }, E = (P) => {
1339
+ const [L, I] = P.split(","), U = (L || "").split(":"), _ = I ? parseInt(I, 10) / 1e3 : 0, C = U[2] ? parseInt(U[2], 10) : 0, ee = U[1] ? parseInt(U[1], 10) * 60 : 0;
1340
+ return (U[0] ? parseInt(U[0], 10) * 3600 : 0) + ee + C + _;
1341
+ }, b = async (P) => {
1342
+ M(!0), l(null);
1343
+ try {
1344
+ const L = await fetch(P);
1345
+ if (!L.ok)
1346
+ throw new Error(`Failed to load subtitles: ${L.status} ${L.statusText}`);
1347
+ const I = await L.text(), U = [], _ = I.split(`
1348
+ `);
1349
+ let C = 0;
1350
+ const ee = I.includes("WEBVTT") || P.endsWith(".vtt"), f = P.endsWith(".srt") || /^\d+$/.test(_[0]?.trim() || "");
1351
+ if (ee)
1352
+ for (; C < _.length; ) {
1353
+ if (_[C]?.includes("-->")) {
1354
+ const [V, se] = (_[C] || "").split("-->").map((B) => B.trim()), ae = T(V || ""), i = T(se || "");
1355
+ C++;
1356
+ let k = "";
1357
+ for (; C < _.length && _[C]?.trim() !== ""; )
1358
+ k += (k ? " " : "") + _[C]?.trim(), C++;
1359
+ k && U.push({ start: ae, end: i, text: k });
1360
+ }
1361
+ C++;
1362
+ }
1363
+ else if (f)
1364
+ for (; C < _.length; ) {
1365
+ if (/^\d+$/.test(_[C]?.trim() || "") && (C++, _[C]?.includes("-->"))) {
1366
+ const [V, se] = (_[C] || "").split("-->").map((B) => B.trim()), ae = E(V || ""), i = E(se || "");
1367
+ C++;
1368
+ let k = "";
1369
+ for (; C < _.length && _[C]?.trim() !== ""; )
1370
+ k += (k ? " " : "") + _[C]?.trim(), C++;
1371
+ k && U.push({ start: ae, end: i, text: k });
1372
+ }
1373
+ C++;
1374
+ }
1375
+ else
1376
+ throw new Error("Unsupported subtitle format. Only VTT and SRT are supported.");
1377
+ if (U.length === 0)
1378
+ throw new Error("No subtitle cues found in file");
1379
+ d(U), M(!1);
1380
+ } catch (L) {
1381
+ const I = L instanceof Error ? L : new Error("Failed to load subtitles");
1382
+ console.error("Failed to load subtitles:", I), l(I), M(!1), d([]), s?.(I);
1383
+ }
1384
+ }, w = (P) => !u || a.length === 0 ? "" : a.find(
1385
+ (I) => P >= I.start && P <= I.end
1386
+ )?.text || "", m = () => {
1387
+ o((P) => {
1388
+ const L = !P;
1389
+ if (L && !p) {
1390
+ if (a.length === 0 && !v) {
1391
+ const I = e || t[0]?.src;
1392
+ I && (b(I), t[0] && g(t[0].id));
1393
+ }
1394
+ } else L || D("");
1395
+ return L;
1396
+ });
1397
+ }, z = (P) => {
1398
+ if (!P) {
1399
+ o(!1), g(null), D("");
1400
+ return;
1401
+ }
1402
+ const L = t.find((I) => I.id === P);
1403
+ L?.src && (g(P), b(L.src), o(!0));
1404
+ }, F = (P) => {
1405
+ y(P);
1406
+ }, O = {
1407
+ fontSize: h[r],
1408
+ className: `${h[r]} font-medium`
1409
+ };
1410
+ return q(() => {
1411
+ u || D("");
1412
+ }, [u]), q(() => {
1413
+ }, []), {
1414
+ // State
1415
+ subtitlesEnabled: u,
1416
+ currentSubtitle: S,
1417
+ subtitleCues: a,
1418
+ currentTrackId: R,
1419
+ fontSize: r,
1420
+ loadError: p,
1421
+ isLoading: v,
1422
+ hasSubtitles: c,
1423
+ // Actions
1424
+ toggleSubtitles: m,
1425
+ selectSubtitleTrack: z,
1426
+ changeSubtitleFontSize: F,
1427
+ setCurrentSubtitle: D,
1428
+ // Utilities
1429
+ getCurrentSubtitle: w,
1430
+ getSubtitleStyles: O,
1431
+ // Track info
1432
+ availableTracks: t
1433
+ };
1434
+ }
1435
+ const Ke = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
1436
+ __proto__: null,
1437
+ useEnhancedSubtitles: De
1438
+ }, Symbol.toStringTag, { value: "Module" }));
1439
+ function $e(e, t) {
1440
+ const [n, s] = Q(!0), [u, o] = Q(!1), a = W(null), d = () => {
1441
+ s(!0), a.current && clearTimeout(a.current), e && !t && (a.current = setTimeout(() => {
1442
+ s(!1);
1443
+ }, 3e3));
1444
+ }, S = () => {
1445
+ d();
1446
+ }, D = () => {
1447
+ s(!0);
1448
+ }, R = () => {
1449
+ e && s(!1);
1450
+ };
1451
+ return q(() => (d(), () => {
1452
+ a.current && clearTimeout(a.current);
1453
+ }), [d]), {
1454
+ controlsVisible: n,
1455
+ showVolumeSlider: u,
1456
+ setShowVolumeSlider: o,
1457
+ handleMouseMove: S,
1458
+ handleMouseEnter: D,
1459
+ handleMouseLeave: R
1460
+ };
1461
+ }
1462
+ function Ge({
1463
+ videoControls: e,
1464
+ toggleSubtitles: t,
1465
+ takeScreenshot: n,
1466
+ duration: s
1467
+ }) {
1468
+ const u = (o) => {
1469
+ const a = document.querySelector("video");
1470
+ if (a)
1471
+ switch (o.key.toLowerCase()) {
1472
+ case " ":
1473
+ case "k":
1474
+ o.preventDefault(), e.togglePlay();
1475
+ break;
1476
+ case "j":
1477
+ o.preventDefault(), e.seekBackward();
1478
+ break;
1479
+ case "l":
1480
+ o.preventDefault(), e.seekForward();
1481
+ break;
1482
+ case "arrowleft":
1483
+ o.preventDefault(), a.currentTime = Math.max(0, a.currentTime - 5);
1484
+ break;
1485
+ case "arrowright":
1486
+ o.preventDefault(), a.currentTime = Math.min(s, a.currentTime + 5);
1487
+ break;
1488
+ case "arrowup":
1489
+ o.preventDefault(), a.volume = Math.min(1, a.volume + 0.1);
1490
+ break;
1491
+ case "arrowdown":
1492
+ o.preventDefault(), a.volume = Math.max(0, a.volume - 0.1);
1493
+ break;
1494
+ case "m":
1495
+ o.preventDefault(), e.toggleMute();
1496
+ break;
1497
+ case "f":
1498
+ o.preventDefault(), e.toggleFullscreen();
1499
+ break;
1500
+ case "c":
1501
+ o.preventDefault(), t();
1502
+ break;
1503
+ case "s":
1504
+ o.preventDefault(), n(o.ctrlKey || o.metaKey);
1505
+ break;
1506
+ }
1507
+ };
1508
+ q(() => (document.addEventListener("keydown", u), () => document.removeEventListener("keydown", u)), [u]);
1509
+ }
1510
+ function ze(e) {
1511
+ return { takeScreenshot: (n = !1) => {
1512
+ if (!e.current) return;
1513
+ const s = e.current, u = document.createElement("canvas");
1514
+ u.width = s.videoWidth, u.height = s.videoHeight;
1515
+ const o = u.getContext("2d");
1516
+ if (o)
1517
+ try {
1518
+ o.drawImage(s, 0, 0), u.toBlob((a) => {
1519
+ if (!a) {
1520
+ console.error("Failed to create blob from canvas");
1521
+ return;
1522
+ }
1523
+ if (n)
1524
+ if (navigator.clipboard && window.ClipboardItem) {
1525
+ const d = new ClipboardItem({ "image/png": a });
1526
+ navigator.clipboard.write([d]).catch((S) => {
1527
+ console.error("Failed to copy to clipboard:", S);
1528
+ });
1529
+ } else
1530
+ console.warn("Clipboard API not supported");
1531
+ else {
1532
+ const d = URL.createObjectURL(a), S = document.createElement("a");
1533
+ S.href = d, S.download = `screenshot-${Date.now()}.png`, S.click(), URL.revokeObjectURL(d);
1534
+ }
1535
+ }, "image/png");
1536
+ } catch (a) {
1537
+ a instanceof Error && a.message.includes("tainted") ? (console.error("Canvas is tainted - video source may not have proper CORS headers. Try setting crossOrigin='anonymous' on the video element."), alert("Screenshot failed: The video source doesn't allow screenshots due to CORS policy. Please ensure the video server includes proper CORS headers or set crossOrigin='anonymous' on the video player.")) : (console.error("Screenshot failed:", a), alert("Screenshot failed: " + (a instanceof Error ? a.message : "Unknown error")));
1538
+ }
1539
+ } };
1540
+ }
1541
+ function We(e) {
1542
+ const t = W(null), n = W(null), [s, u] = le(), [o, a] = le();
1543
+ N.useRef(0);
1544
+ const d = N.useRef(0), S = N.useRef(0);
1545
+ W(void 0);
1546
+ const D = W(0), R = pe(), g = "getOptimisticState" in R, r = j((i) => i.isPlaying), y = j((i) => i.currentTime), p = j((i) => i.duration), l = j((i) => i.volume), v = j((i) => i.isMuted), M = j((i) => i.isLoading), h = j((i) => i.isBuffering), c = j((i) => i.error), T = j((i) => i.buffered), E = j((i) => i.isFullscreen), b = R, w = g ? Ee(b) : null, m = g ? Te(b) : null, [z, F] = N.useState({
1547
+ frameRate: 0,
1548
+ averageRenderTime: 0,
1549
+ droppedFrames: 0,
1550
+ bufferHealth: 0
1551
+ }), [O, P] = ce(l, (i, k) => Math.max(0, Math.min(1, k)));
1552
+ ce(y, (i, k) => Math.max(0, Math.min(p || 0, k))), q(() => {
1553
+ const i = t.current;
1554
+ if (!i) return;
1555
+ const k = {
1556
+ volume: e.volume,
1557
+ muted: e.muted,
1558
+ autoplay: e.autoPlay,
1559
+ loop: e.loop,
1560
+ preload: e.preload,
1561
+ crossOrigin: e.crossOrigin
1562
+ };
1563
+ Object.entries(k).forEach(([B, Y]) => {
1564
+ Y !== void 0 && (i[B] = Y);
1565
+ }), i.setAttribute("preload", e.preloadStrategy === "eager" ? "auto" : "metadata"), e.bufferingStrategy === "aggressive" && i.setAttribute("buffered", "auto"), i instanceof HTMLVideoElement && (i.style.willChange = "transform", i.style.transform = "translateZ(0)");
1566
+ }, [
1567
+ e.volume,
1568
+ e.muted,
1569
+ e.autoPlay,
1570
+ e.loop,
1571
+ e.preload,
1572
+ e.crossOrigin,
1573
+ e.preloadStrategy,
1574
+ e.bufferingStrategy
1575
+ ]);
1576
+ const L = A(() => {
1577
+ const i = t.current;
1578
+ if (!i) return;
1579
+ const k = performance.now();
1580
+ if (e.enableTimeUpdateThrottling !== !1) {
1581
+ if (k - D.current < (e.timeUpdateThrottleMs || 100))
1582
+ return;
1583
+ D.current = k;
1584
+ }
1585
+ u(() => {
1586
+ g && m && m.setCurrentTime(i.currentTime);
1587
+ });
1588
+ }, [e.enableTimeUpdateThrottling, e.timeUpdateThrottleMs, g, m]), I = A(() => {
1589
+ u(() => {
1590
+ g && m && m.play(!0);
1591
+ }), e.onPlay?.();
1592
+ }, [g, m, e.onPlay]), U = A(() => {
1593
+ u(() => {
1594
+ g && m && m.pause(!0);
1595
+ }), e.onPause?.();
1596
+ }, [g, m, e.onPause]), _ = A(() => {
1597
+ const i = t.current;
1598
+ i && u(() => {
1599
+ g && m && (m.setVolume(i.volume, !0), i.muted ? m.mute(!0) : m.unmute(!0));
1600
+ });
1601
+ }, [g, m]), C = A(() => {
1602
+ a(() => {
1603
+ });
1604
+ }, []), ee = A(() => {
1605
+ }, []), f = A(() => {
1606
+ const i = t.current;
1607
+ i && u(() => {
1608
+ g && m && m.setBuffered(i.buffered);
1609
+ });
1610
+ }, [g, m]), V = A(() => {
1611
+ const i = performance.now();
1612
+ if (i - S.current > 0 && (d.current++, d.current >= 60)) {
1613
+ const B = Math.round(d.current * 1e3 / (i - S.current));
1614
+ F((Y) => ({
1615
+ ...Y,
1616
+ frameRate: B,
1617
+ droppedFrames: Math.max(0, 60 - B)
1618
+ })), d.current = 0, S.current = i;
1619
+ }
1620
+ }, []);
1621
+ q(() => {
1622
+ const i = t.current;
1623
+ if (!i) return;
1624
+ const k = [
1625
+ { event: "timeupdate", handler: L, passive: !0 },
1626
+ { event: "play", handler: I },
1627
+ { event: "pause", handler: U },
1628
+ { event: "volumechange", handler: _ },
1629
+ { event: "seeking", handler: C },
1630
+ { event: "seeked", handler: ee },
1631
+ { event: "progress", handler: f, passive: !0 },
1632
+ { event: "loadedmetadata", handler: () => V() },
1633
+ { event: "loadeddata", handler: () => V() }
1634
+ ];
1635
+ k.forEach(({ event: te, handler: ne, passive: ie }) => {
1636
+ const oe = ie ? { passive: !0 } : {};
1637
+ i.addEventListener(te, ne, oe);
1638
+ });
1639
+ let B;
1640
+ const Y = () => {
1641
+ V(), B = requestAnimationFrame(Y);
1642
+ };
1643
+ return e.enablePerformanceMonitoring && Y(), () => {
1644
+ k.forEach(({ event: te, handler: ne }) => {
1645
+ i.removeEventListener(te, ne);
1646
+ }), B && cancelAnimationFrame(B);
1647
+ };
1648
+ }, [
1649
+ L,
1650
+ I,
1651
+ U,
1652
+ _,
1653
+ C,
1654
+ ee,
1655
+ f,
1656
+ V,
1657
+ e.enablePerformanceMonitoring
1658
+ ]);
1659
+ const se = ue(() => {
1660
+ const i = async () => {
1661
+ const x = t.current;
1662
+ if (x)
1663
+ if (g && m)
1664
+ await m.play(!0);
1665
+ else
1666
+ try {
1667
+ await x.play();
1668
+ } catch (X) {
1669
+ console.error("Failed to play media:", X);
1670
+ }
1671
+ }, k = () => {
1672
+ const x = t.current;
1673
+ x && (g && m ? m.pause(!0) : x.pause());
1674
+ }, B = () => {
1675
+ r ? k() : i();
1676
+ }, Y = (x) => {
1677
+ const X = t.current;
1678
+ if (!X) return;
1679
+ const Z = Math.max(0, Math.min(x, p || 0));
1680
+ g && m ? a(() => {
1681
+ m.seek(Z, !0);
1682
+ }) : X.currentTime = Z;
1683
+ }, te = (x) => {
1684
+ const X = t.current;
1685
+ if (!X) return;
1686
+ const Z = Math.max(0, Math.min(1, x));
1687
+ g && m ? (P(Z), u(() => {
1688
+ m.setVolume(Z, !0);
1689
+ })) : X.volume = Z;
1690
+ }, ne = () => {
1691
+ const x = t.current;
1692
+ x && (g && m ? m.toggleMute(!0) : x.muted = !x.muted);
1693
+ }, ie = async () => {
1694
+ const x = n.current;
1695
+ if (!(!x || !document.fullscreenEnabled))
1696
+ try {
1697
+ await x.requestFullscreen(), g && m && m.enterFullscreen(!0);
1698
+ } catch (X) {
1699
+ console.error("Failed to enter fullscreen:", X);
1700
+ }
1701
+ }, oe = async () => {
1702
+ if (document.fullscreenElement)
1703
+ try {
1704
+ await document.exitFullscreen(), g && m && m.exitFullscreen(!0);
1705
+ } catch (x) {
1706
+ console.error("Failed to exit fullscreen:", x);
1707
+ }
1708
+ };
1709
+ return {
1710
+ play: i,
1711
+ pause: k,
1712
+ toggle: B,
1713
+ seek: Y,
1714
+ setVolume: te,
1715
+ toggleMute: ne,
1716
+ enterFullscreen: ie,
1717
+ exitFullscreen: oe,
1718
+ toggleFullscreen: () => {
1719
+ document.fullscreenElement ? oe() : ie();
1720
+ }
1721
+ };
1722
+ }, [
1723
+ r,
1724
+ p,
1725
+ g,
1726
+ m,
1727
+ u,
1728
+ a,
1729
+ P
1730
+ ]), ae = ue(() => ({
1731
+ isPlaying: w?.isPlaying ?? r,
1732
+ currentTime: w?.currentTime ?? y,
1733
+ duration: w?.duration ?? p,
1734
+ volume: w?.volume ?? O,
1735
+ isMuted: w?.isMuted ?? v,
1736
+ isLoading: w?.isBuffering ?? M,
1737
+ isBuffering: w?.isBuffering ?? h,
1738
+ error: w?.error ?? c,
1739
+ buffered: w?.buffered ?? T,
1740
+ isFullscreen: w?.isFullscreen ?? E,
1741
+ progress: p > 0 ? y / p : 0,
1742
+ isTransitioning: s || o,
1743
+ canPlay: !M && !h && !c
1744
+ }), [
1745
+ w,
1746
+ r,
1747
+ y,
1748
+ p,
1749
+ O,
1750
+ v,
1751
+ M,
1752
+ h,
1753
+ c,
1754
+ T,
1755
+ E,
1756
+ s,
1757
+ o
1758
+ ]);
1759
+ return {
1760
+ // Refs
1761
+ mediaRef: t,
1762
+ containerRef: n,
1763
+ // State
1764
+ state: ae,
1765
+ actualState: w?.actualState,
1766
+ // Controls
1767
+ controls: se,
1768
+ // Performance metrics
1769
+ performanceMetrics: z,
1770
+ isTransitioning: s || o,
1771
+ // Enhanced features
1772
+ actions: w?.actions,
1773
+ actionState: w?.actionState,
1774
+ // Optimistic features
1775
+ optimisticState: w,
1776
+ isEnhanced: g
1777
+ };
1778
+ }
1779
+ const je = (e, t = {}) => {
1780
+ const {
1781
+ trackUserBehavior: n = !0,
1782
+ adaptToNetwork: s = !0,
1783
+ strategy: u = "balanced",
1784
+ maxPreloadItems: o = 3,
1785
+ preloadRadius: a = 2
1786
+ } = t, d = W({
1787
+ mouseMovements: 0,
1788
+ scrollEvents: 0,
1789
+ keyPresses: 0,
1790
+ focusEvents: 0,
1791
+ timeOnPage: 0,
1792
+ engagementScore: 0,
1793
+ lastInteraction: Date.now()
1794
+ }), S = W(null), D = W(/* @__PURE__ */ new Set()), R = W([]), g = A(() => {
1795
+ const c = d.current, T = Math.min(c.timeOnPage / 6e4, 1), E = Math.min(
1796
+ (c.mouseMovements + c.scrollEvents + c.keyPresses) / 100,
1797
+ 1
1798
+ );
1799
+ return (T * 0.4 + E * 0.6) * 100;
1800
+ }, []), r = A((c, T = 1) => {
1801
+ const E = d.current;
1802
+ E[c] = typeof E[c] == "number" ? E[c] + T : Date.now(), E.engagementScore = g(), E.lastInteraction = Date.now();
1803
+ }, [g]), y = A(() => {
1804
+ if (!S.current || !s)
1805
+ return { type: "unknown", downlink: 10, effectiveType: "4g", saveData: !1 };
1806
+ const c = S.current;
1807
+ return {
1808
+ type: c.type,
1809
+ downlink: c.downlink || 10,
1810
+ effectiveType: c.effectiveType || "4g",
1811
+ saveData: c.saveData || !1,
1812
+ rtt: c.rtt || 100
1813
+ };
1814
+ }, [s]), p = A((c, T, E = 0) => {
1815
+ if (D.current.has(c.src))
1816
+ return { shouldPreload: !1, priority: "low", reason: "Already preloaded" };
1817
+ const b = Math.abs(T - E);
1818
+ if (b > a)
1819
+ return { shouldPreload: !1, priority: "low", reason: "Outside preload radius" };
1820
+ const w = d.current, m = y(), z = w.engagementScore, F = Date.now() - w.lastInteraction;
1821
+ if (m.saveData)
1822
+ return { shouldPreload: !1, priority: "low", reason: "Data saver mode" };
1823
+ let O = !1, P = "medium", L = "";
1824
+ switch (u) {
1825
+ case "conservative":
1826
+ O = z > 70 && m.effectiveType !== "2g" && b === 1, P = O ? "medium" : "low", L = O ? "High engagement and optimal network" : "Conservative strategy";
1827
+ break;
1828
+ case "aggressive":
1829
+ O = z > 30 && m.effectiveType !== "slow-2g", P = z > 70 ? "high" : z > 50 ? "medium" : "low", L = O ? "Aggressive preloading" : "Low engagement";
1830
+ break;
1831
+ case "balanced":
1832
+ default:
1833
+ const I = m.effectiveType === "4g" ? 1 : m.effectiveType === "3g" ? 0.7 : 0.3, U = z * I;
1834
+ O = U > 40 && b <= 2, P = U > 70 ? "high" : U > 55 ? "medium" : "low", L = O ? `Balanced: score ${U.toFixed(1)}` : "Low adjusted score";
1835
+ break;
1836
+ }
1837
+ return O && ((c.type === "hls" || c.type === "m3u8") && (P = P === "low" ? "medium" : "high"), F < 5e3 && (P = "high", L += " + Recent interaction"), (c.type === "mp4" || c.type === "webm") && (P = P === "low" ? "medium" : P)), { shouldPreload: O, priority: P, reason: L };
1838
+ }, [u, a, y, g]), l = A(async (c, T) => {
1839
+ try {
1840
+ const E = document.createElement("link");
1841
+ switch (E.rel = "preload", E.href = c.src, c.type) {
1842
+ case "hls":
1843
+ case "m3u8":
1844
+ E.as = "fetch";
1845
+ break;
1846
+ case "mp4":
1847
+ case "webm":
1848
+ E.as = "video";
1849
+ break;
1850
+ case "mp3":
1851
+ case "wav":
1852
+ case "ogg":
1853
+ E.as = "audio";
1854
+ break;
1855
+ default:
1856
+ E.as = "fetch";
1857
+ }
1858
+ E.crossOrigin = "anonymous", document.head.appendChild(E), D.current.add(c.src), console.debug(`Preloaded: ${c.src} (${T})`), setTimeout(() => {
1859
+ document.head.contains(E) && document.head.removeChild(E);
1860
+ }, 3e4);
1861
+ } catch (E) {
1862
+ console.warn("Failed to preload source:", c.src, E);
1863
+ }
1864
+ }, []), v = A(() => {
1865
+ if (R.current.length === 0) return;
1866
+ const T = [...R.current].sort((E, b) => b.priority - E.priority).slice(0, o);
1867
+ R.current = [], T.forEach(({ source: E, priority: b }) => {
1868
+ l(E, b);
1869
+ });
1870
+ }, [o, l]), M = A((c = 0) => {
1871
+ R.current = [], e.forEach((T, E) => {
1872
+ const b = p(T, E, c);
1873
+ if (b.shouldPreload) {
1874
+ const w = b.priority === "high" ? 3 : b.priority === "medium" ? 2 : 1;
1875
+ R.current.push({ source: T, priority: w });
1876
+ }
1877
+ }), v();
1878
+ }, [e, p, v]);
1879
+ return q(() => {
1880
+ if (!n) return;
1881
+ const c = () => r("mouseMovements"), T = () => r("scrollEvents"), E = () => r("keyPresses"), b = () => r("focusEvents");
1882
+ document.addEventListener("mousemove", c, { passive: !0 }), document.addEventListener("scroll", T, { passive: !0 }), document.addEventListener("keydown", E, { passive: !0 }), document.addEventListener("focusin", b, { passive: !0 });
1883
+ const w = setInterval(() => {
1884
+ r("timeOnPage", 1);
1885
+ }, 1e3);
1886
+ return () => {
1887
+ document.removeEventListener("mousemove", c), document.removeEventListener("scroll", T), document.removeEventListener("keydown", E), document.removeEventListener("focusin", b), clearInterval(w);
1888
+ };
1889
+ }, [n, r]), q(() => {
1890
+ if (!s || !("connection" in navigator)) return;
1891
+ const c = navigator.connection;
1892
+ S.current = c;
1893
+ const T = () => {
1894
+ M();
1895
+ };
1896
+ return c.addEventListener("change", T), () => {
1897
+ c.removeEventListener("change", T);
1898
+ };
1899
+ }, [s, M]), q(() => {
1900
+ M();
1901
+ }, [M]), ue(() => ({
1902
+ /**
1903
+ * Manually trigger preloading for specific index
1904
+ */
1905
+ preloadAtIndex: (c) => {
1906
+ M(c);
1907
+ },
1908
+ /**
1909
+ * Get current user behavior data
1910
+ */
1911
+ getUserBehavior: () => ({ ...d.current }),
1912
+ /**
1913
+ * Get current network conditions
1914
+ */
1915
+ getNetworkConditions: y,
1916
+ /**
1917
+ * Clear preloaded items cache
1918
+ */
1919
+ clearCache: () => {
1920
+ D.current.clear();
1921
+ },
1922
+ /**
1923
+ * Get preloading statistics
1924
+ */
1925
+ getStats: () => ({
1926
+ preloadedItems: D.current.size,
1927
+ engagementScore: d.current.engagementScore,
1928
+ queueLength: R.current.length,
1929
+ maxPreloadItems: o
1930
+ })
1931
+ }), [M, y, o]);
1932
+ };
1933
+ function Re(e) {
1934
+ const [t, n] = Q(!1), [s, u] = Q([]), [o, a] = Q(""), d = (g) => {
1935
+ const r = g.split(":"), y = r[2] ? parseFloat(r[2]) : 0, p = r[1] ? parseInt(r[1], 10) * 60 : 0;
1936
+ return (r[0] ? parseInt(r[0], 10) * 3600 : 0) + p + y;
1937
+ }, S = async (g) => {
1938
+ try {
1939
+ const y = await (await fetch(g)).text(), p = [], l = y.split(`
1940
+ `);
1941
+ let v = 0;
1942
+ for (; v < l.length; ) {
1943
+ if (l[v]?.includes("-->")) {
1944
+ const [M, h] = (l[v] || "").split("-->").map((b) => b.trim()), c = d(M || ""), T = d(h || "");
1945
+ v++;
1946
+ let E = "";
1947
+ for (; v < l.length && l[v]?.trim() !== ""; )
1948
+ E += (E ? " " : "") + l[v]?.trim(), v++;
1949
+ E && p.push({ start: c, end: T, text: E });
1950
+ }
1951
+ v++;
1952
+ }
1953
+ u(p);
1954
+ } catch (r) {
1955
+ console.error("Failed to load subtitles:", r);
1956
+ }
1957
+ }, D = (g) => !t || s.length === 0 ? "" : s.find(
1958
+ (y) => g >= y.start && g <= y.end
1959
+ )?.text || "", R = () => {
1960
+ n((g) => {
1961
+ const r = !g;
1962
+ return r && e && s.length === 0 ? S(e) : r || a(""), r;
1963
+ });
1964
+ };
1965
+ return q(() => {
1966
+ t || a("");
1967
+ }, [t]), {
1968
+ subtitlesEnabled: t,
1969
+ currentSubtitle: o,
1970
+ toggleSubtitles: R,
1971
+ getCurrentSubtitle: D,
1972
+ setCurrentSubtitle: a
1973
+ };
1974
+ }
1975
+ function qe(e) {
1976
+ return ve(
1977
+ "useVideoPlayer",
1978
+ "useMediaPlayer (the primary media player hook)"
1979
+ ), Le(e);
1980
+ }
1981
+ function Xe(e) {
1982
+ return ve(
1983
+ "useEnhancedSubtitles",
1984
+ "useSubtitles (the current subtitle hook)"
1985
+ ), Re(e);
1986
+ }
1987
+ export {
1988
+ Be as a,
1989
+ Ne as b,
1990
+ He as c,
1991
+ De as d,
1992
+ $e as e,
1993
+ Ge as f,
1994
+ ze as g,
1995
+ Oe as h,
1996
+ Ue as i,
1997
+ Ie as j,
1998
+ Le as k,
1999
+ be as l,
2000
+ Me as m,
2001
+ We as n,
2002
+ _e as o,
2003
+ Se as p,
2004
+ je as q,
2005
+ Fe as r,
2006
+ Re as s,
2007
+ qe as t,
2008
+ de as u,
2009
+ Xe as v,
2010
+ Ve as w,
2011
+ Ke as x
2012
+ };
2013
+ //# sourceMappingURL=hooks-BhW_i-9L.js.map