@therealtinhtute/baroiplayer 1.0.0 → 1.0.1

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 (1326) hide show
  1. package/dist/index.css +102 -1
  2. package/dist/index.d.ts +1388 -0
  3. package/dist/index.js +27 -112
  4. package/dist/index.mjs +17 -6126
  5. package/dist/package.json +28 -0
  6. package/dist/src/adapters/videojs-adapter.d.ts +38 -0
  7. package/dist/src/adapters/videojs-adapter.d.ts.map +1 -0
  8. package/dist/src/adapters/videojs-adapter.js +350 -0
  9. package/dist/src/adapters/videojs-adapter.tsx +470 -0
  10. package/dist/src/components/AnimateLoading.d.ts +9 -0
  11. package/dist/src/components/AnimateLoading.d.ts.map +1 -0
  12. package/dist/src/components/AnimateLoading.js +41 -0
  13. package/dist/src/components/AnimateLoading.tsx +115 -0
  14. package/dist/src/components/LoadingState.d.ts +33 -0
  15. package/dist/src/components/LoadingState.d.ts.map +1 -0
  16. package/dist/src/components/LoadingState.js +111 -0
  17. package/dist/src/components/LoadingState.tsx +248 -0
  18. package/dist/src/components/accessibility/keyboard-help-overlay.d.ts +17 -0
  19. package/dist/src/components/accessibility/keyboard-help-overlay.d.ts.map +1 -0
  20. package/dist/src/components/accessibility/keyboard-help-overlay.js +90 -0
  21. package/dist/src/components/accessibility/keyboard-help-overlay.tsx +213 -0
  22. package/dist/src/components/audio-player.d.ts +3 -0
  23. package/dist/src/components/audio-player.d.ts.map +1 -0
  24. package/dist/src/components/audio-player.js +31 -0
  25. package/dist/src/components/audio-player.tsx +85 -0
  26. package/dist/src/components/basic/index.d.ts +26 -0
  27. package/dist/src/components/basic/index.d.ts.map +1 -0
  28. package/dist/src/components/basic/index.js +29 -0
  29. package/dist/src/components/basic/index.ts +37 -0
  30. package/dist/src/components/enhanced/advanced-features.d.ts +45 -0
  31. package/dist/src/components/enhanced/advanced-features.d.ts.map +1 -0
  32. package/dist/src/components/enhanced/advanced-features.js +64 -0
  33. package/dist/src/components/enhanced/advanced-features.tsx +316 -0
  34. package/dist/src/components/enhanced/debug-panel.d.ts +70 -0
  35. package/dist/src/components/enhanced/debug-panel.d.ts.map +1 -0
  36. package/dist/src/components/enhanced/debug-panel.js +94 -0
  37. package/dist/src/components/enhanced/debug-panel.tsx +422 -0
  38. package/dist/src/components/enhanced/enhanced-controls.d.ts +50 -0
  39. package/dist/src/components/enhanced/enhanced-controls.d.ts.map +1 -0
  40. package/dist/src/components/enhanced/enhanced-controls.js +233 -0
  41. package/dist/src/components/enhanced/enhanced-controls.tsx +600 -0
  42. package/dist/src/components/enhanced/enhanced-media-player.d.ts +26 -0
  43. package/dist/src/components/enhanced/enhanced-media-player.d.ts.map +1 -0
  44. package/dist/src/components/enhanced/enhanced-media-player.js +316 -0
  45. package/dist/src/components/enhanced/enhanced-media-player.tsx +509 -0
  46. package/dist/src/components/enhanced/error-handling.d.ts +36 -0
  47. package/dist/src/components/enhanced/error-handling.d.ts.map +1 -0
  48. package/dist/src/components/enhanced/error-handling.js +153 -0
  49. package/dist/src/components/enhanced/error-handling.tsx +345 -0
  50. package/dist/src/components/enhanced/index.d.ts +7 -0
  51. package/dist/src/components/enhanced/index.d.ts.map +1 -0
  52. package/dist/src/components/enhanced/index.js +10 -0
  53. package/dist/src/components/enhanced/index.ts +39 -0
  54. package/dist/src/components/enhanced/media-player-enhanced.d.ts +21 -0
  55. package/dist/src/components/enhanced/media-player-enhanced.d.ts.map +1 -0
  56. package/dist/src/components/enhanced/media-player-enhanced.js +250 -0
  57. package/dist/src/components/enhanced/media-player-enhanced.tsx +349 -0
  58. package/dist/src/components/examples/basic-video-player.d.ts +10 -0
  59. package/dist/src/components/examples/basic-video-player.d.ts.map +1 -0
  60. package/dist/src/components/examples/basic-video-player.js +16 -0
  61. package/dist/src/components/examples/basic-video-player.tsx +55 -0
  62. package/dist/src/components/examples/custom-controls-example.d.ts +10 -0
  63. package/dist/src/components/examples/custom-controls-example.d.ts.map +1 -0
  64. package/dist/src/components/examples/custom-controls-example.js +12 -0
  65. package/dist/src/components/examples/custom-controls-example.tsx +63 -0
  66. package/dist/src/components/examples/enhanced-controls-example.d.ts +9 -0
  67. package/dist/src/components/examples/enhanced-controls-example.d.ts.map +1 -0
  68. package/dist/src/components/examples/enhanced-controls-example.js +18 -0
  69. package/dist/src/components/examples/enhanced-controls-example.tsx +114 -0
  70. package/dist/src/components/examples/enhanced-media-player-example.d.ts +9 -0
  71. package/dist/src/components/examples/enhanced-media-player-example.d.ts.map +1 -0
  72. package/dist/src/components/examples/enhanced-media-player-example.js +13 -0
  73. package/dist/src/components/examples/enhanced-media-player-example.tsx +293 -0
  74. package/dist/src/components/examples/loading-states-demo.d.ts +2 -0
  75. package/dist/src/components/examples/loading-states-demo.d.ts.map +1 -0
  76. package/dist/src/components/examples/loading-states-demo.js +41 -0
  77. package/dist/src/components/examples/loading-states-demo.tsx +142 -0
  78. package/dist/src/components/examples/react-19-demo.d.ts +10 -0
  79. package/dist/src/components/examples/react-19-demo.d.ts.map +1 -0
  80. package/dist/src/components/examples/react-19-demo.js +104 -0
  81. package/dist/src/components/examples/react-19-demo.tsx +381 -0
  82. package/dist/src/components/examples/volume-orientation-demo.d.ts +2 -0
  83. package/dist/src/components/examples/volume-orientation-demo.d.ts.map +1 -0
  84. package/dist/src/components/examples/volume-orientation-demo.js +31 -0
  85. package/dist/src/components/examples/volume-orientation-demo.tsx +114 -0
  86. package/dist/src/components/icon-demo.d.ts +2 -0
  87. package/dist/src/components/icon-demo.d.ts.map +1 -0
  88. package/dist/src/components/icon-demo.js +16 -0
  89. package/dist/src/components/icon-demo.tsx +209 -0
  90. package/dist/src/components/icons/index.d.ts +36 -0
  91. package/dist/src/components/icons/index.d.ts.map +1 -0
  92. package/dist/src/components/icons/index.js +59 -0
  93. package/dist/src/components/icons/index.tsx +166 -0
  94. package/dist/src/components/icons/svg-icons/ArrowLeftIcon.d.ts +4 -0
  95. package/dist/src/components/icons/svg-icons/ArrowLeftIcon.d.ts.map +1 -0
  96. package/dist/src/components/icons/svg-icons/ArrowLeftIcon.js +3 -0
  97. package/dist/src/components/icons/svg-icons/ArrowLeftIcon.tsx +18 -0
  98. package/dist/src/components/icons/svg-icons/ArrowRightIcon.d.ts +4 -0
  99. package/dist/src/components/icons/svg-icons/ArrowRightIcon.d.ts.map +1 -0
  100. package/dist/src/components/icons/svg-icons/ArrowRightIcon.js +3 -0
  101. package/dist/src/components/icons/svg-icons/ArrowRightIcon.tsx +18 -0
  102. package/dist/src/components/icons/svg-icons/AudioIcon.d.ts +4 -0
  103. package/dist/src/components/icons/svg-icons/AudioIcon.d.ts.map +1 -0
  104. package/dist/src/components/icons/svg-icons/AudioIcon.js +4 -0
  105. package/dist/src/components/icons/svg-icons/AudioIcon.tsx +22 -0
  106. package/dist/src/components/icons/svg-icons/BackwardIcon.d.ts +4 -0
  107. package/dist/src/components/icons/svg-icons/BackwardIcon.d.ts.map +1 -0
  108. package/dist/src/components/icons/svg-icons/BackwardIcon.js +3 -0
  109. package/dist/src/components/icons/svg-icons/BackwardIcon.tsx +12 -0
  110. package/dist/src/components/icons/svg-icons/CameraIcon.d.ts +4 -0
  111. package/dist/src/components/icons/svg-icons/CameraIcon.d.ts.map +1 -0
  112. package/dist/src/components/icons/svg-icons/CameraIcon.js +4 -0
  113. package/dist/src/components/icons/svg-icons/CameraIcon.tsx +19 -0
  114. package/dist/src/components/icons/svg-icons/CheckIcon.d.ts +4 -0
  115. package/dist/src/components/icons/svg-icons/CheckIcon.d.ts.map +1 -0
  116. package/dist/src/components/icons/svg-icons/CheckIcon.js +4 -0
  117. package/dist/src/components/icons/svg-icons/CheckIcon.tsx +19 -0
  118. package/dist/src/components/icons/svg-icons/EnablePiPIcon.d.ts +4 -0
  119. package/dist/src/components/icons/svg-icons/EnablePiPIcon.d.ts.map +1 -0
  120. package/dist/src/components/icons/svg-icons/EnablePiPIcon.js +5 -0
  121. package/dist/src/components/icons/svg-icons/EnablePiPIcon.tsx +17 -0
  122. package/dist/src/components/icons/svg-icons/ForwardIcon.d.ts +4 -0
  123. package/dist/src/components/icons/svg-icons/ForwardIcon.d.ts.map +1 -0
  124. package/dist/src/components/icons/svg-icons/ForwardIcon.js +3 -0
  125. package/dist/src/components/icons/svg-icons/ForwardIcon.tsx +12 -0
  126. package/dist/src/components/icons/svg-icons/FullscreenEnterIcon.d.ts +4 -0
  127. package/dist/src/components/icons/svg-icons/FullscreenEnterIcon.d.ts.map +1 -0
  128. package/dist/src/components/icons/svg-icons/FullscreenEnterIcon.js +3 -0
  129. package/dist/src/components/icons/svg-icons/FullscreenEnterIcon.tsx +23 -0
  130. package/dist/src/components/icons/svg-icons/FullscreenExitIcon.d.ts +4 -0
  131. package/dist/src/components/icons/svg-icons/FullscreenExitIcon.d.ts.map +1 -0
  132. package/dist/src/components/icons/svg-icons/FullscreenExitIcon.js +3 -0
  133. package/dist/src/components/icons/svg-icons/FullscreenExitIcon.tsx +23 -0
  134. package/dist/src/components/icons/svg-icons/LoadingIcon.d.ts +4 -0
  135. package/dist/src/components/icons/svg-icons/LoadingIcon.d.ts.map +1 -0
  136. package/dist/src/components/icons/svg-icons/LoadingIcon.js +3 -0
  137. package/dist/src/components/icons/svg-icons/LoadingIcon.tsx +32 -0
  138. package/dist/src/components/icons/svg-icons/PauseIcon.d.ts +4 -0
  139. package/dist/src/components/icons/svg-icons/PauseIcon.d.ts.map +1 -0
  140. package/dist/src/components/icons/svg-icons/PauseIcon.js +3 -0
  141. package/dist/src/components/icons/svg-icons/PauseIcon.tsx +23 -0
  142. package/dist/src/components/icons/svg-icons/PlayIcon.d.ts +4 -0
  143. package/dist/src/components/icons/svg-icons/PlayIcon.d.ts.map +1 -0
  144. package/dist/src/components/icons/svg-icons/PlayIcon.js +3 -0
  145. package/dist/src/components/icons/svg-icons/PlayIcon.tsx +21 -0
  146. package/dist/src/components/icons/svg-icons/PlaybackSpeedIcon.d.ts +4 -0
  147. package/dist/src/components/icons/svg-icons/PlaybackSpeedIcon.d.ts.map +1 -0
  148. package/dist/src/components/icons/svg-icons/PlaybackSpeedIcon.js +3 -0
  149. package/dist/src/components/icons/svg-icons/PlaybackSpeedIcon.tsx +23 -0
  150. package/dist/src/components/icons/svg-icons/QualityIcon.d.ts +4 -0
  151. package/dist/src/components/icons/svg-icons/QualityIcon.d.ts.map +1 -0
  152. package/dist/src/components/icons/svg-icons/QualityIcon.js +3 -0
  153. package/dist/src/components/icons/svg-icons/QualityIcon.tsx +21 -0
  154. package/dist/src/components/icons/svg-icons/SettingsIcon.d.ts +4 -0
  155. package/dist/src/components/icons/svg-icons/SettingsIcon.d.ts.map +1 -0
  156. package/dist/src/components/icons/svg-icons/SettingsIcon.js +3 -0
  157. package/dist/src/components/icons/svg-icons/SettingsIcon.tsx +12 -0
  158. package/dist/src/components/icons/svg-icons/SliderIcon.d.ts +4 -0
  159. package/dist/src/components/icons/svg-icons/SliderIcon.d.ts.map +1 -0
  160. package/dist/src/components/icons/svg-icons/SliderIcon.js +3 -0
  161. package/dist/src/components/icons/svg-icons/SliderIcon.tsx +21 -0
  162. package/dist/src/components/icons/svg-icons/SubtitleIcon.d.ts +4 -0
  163. package/dist/src/components/icons/svg-icons/SubtitleIcon.d.ts.map +1 -0
  164. package/dist/src/components/icons/svg-icons/SubtitleIcon.js +3 -0
  165. package/dist/src/components/icons/svg-icons/SubtitleIcon.tsx +21 -0
  166. package/dist/src/components/icons/svg-icons/SubtitleOffIcon.d.ts +4 -0
  167. package/dist/src/components/icons/svg-icons/SubtitleOffIcon.d.ts.map +1 -0
  168. package/dist/src/components/icons/svg-icons/SubtitleOffIcon.js +3 -0
  169. package/dist/src/components/icons/svg-icons/SubtitleOffIcon.tsx +25 -0
  170. package/dist/src/components/icons/svg-icons/UnPiPIcon.d.ts +4 -0
  171. package/dist/src/components/icons/svg-icons/UnPiPIcon.d.ts.map +1 -0
  172. package/dist/src/components/icons/svg-icons/UnPiPIcon.js +5 -0
  173. package/dist/src/components/icons/svg-icons/UnPiPIcon.tsx +17 -0
  174. package/dist/src/components/icons/svg-icons/VolumeMutedIcon.d.ts +4 -0
  175. package/dist/src/components/icons/svg-icons/VolumeMutedIcon.d.ts.map +1 -0
  176. package/dist/src/components/icons/svg-icons/VolumeMutedIcon.js +3 -0
  177. package/dist/src/components/icons/svg-icons/VolumeMutedIcon.tsx +16 -0
  178. package/dist/src/components/icons/svg-icons/VolumeOneIcon.d.ts +4 -0
  179. package/dist/src/components/icons/svg-icons/VolumeOneIcon.d.ts.map +1 -0
  180. package/dist/src/components/icons/svg-icons/VolumeOneIcon.js +3 -0
  181. package/dist/src/components/icons/svg-icons/VolumeOneIcon.tsx +22 -0
  182. package/dist/src/components/icons/svg-icons/VolumeThreeIcon.d.ts +4 -0
  183. package/dist/src/components/icons/svg-icons/VolumeThreeIcon.d.ts.map +1 -0
  184. package/dist/src/components/icons/svg-icons/VolumeThreeIcon.js +3 -0
  185. package/dist/src/components/icons/svg-icons/VolumeThreeIcon.tsx +16 -0
  186. package/dist/src/components/icons/svg-icons/VolumeTwoIcon.d.ts +4 -0
  187. package/dist/src/components/icons/svg-icons/VolumeTwoIcon.d.ts.map +1 -0
  188. package/dist/src/components/icons/svg-icons/VolumeTwoIcon.js +3 -0
  189. package/dist/src/components/icons/svg-icons/VolumeTwoIcon.tsx +16 -0
  190. package/dist/src/components/legacy.d.ts +13 -0
  191. package/dist/src/components/legacy.d.ts.map +1 -0
  192. package/dist/src/components/legacy.js +52 -0
  193. package/dist/src/components/legacy.tsx +93 -0
  194. package/dist/src/components/media-metadata-display.d.ts +11 -0
  195. package/dist/src/components/media-metadata-display.d.ts.map +1 -0
  196. package/dist/src/components/media-metadata-display.js +20 -0
  197. package/dist/src/components/media-metadata-display.tsx +100 -0
  198. package/dist/src/components/media-player-audio.d.ts +9 -0
  199. package/dist/src/components/media-player-audio.d.ts.map +1 -0
  200. package/dist/src/components/media-player-audio.js +18 -0
  201. package/dist/src/components/media-player-audio.tsx +39 -0
  202. package/dist/src/components/media-player-controls.d.ts +23 -0
  203. package/dist/src/components/media-player-controls.d.ts.map +1 -0
  204. package/dist/src/components/media-player-controls.js +150 -0
  205. package/dist/src/components/media-player-controls.tsx +226 -0
  206. package/dist/src/components/media-player-error.d.ts +16 -0
  207. package/dist/src/components/media-player-error.d.ts.map +1 -0
  208. package/dist/src/components/media-player-error.js +85 -0
  209. package/dist/src/components/media-player-error.tsx +163 -0
  210. package/dist/src/components/media-player-fullscreen.d.ts +12 -0
  211. package/dist/src/components/media-player-fullscreen.d.ts.map +1 -0
  212. package/dist/src/components/media-player-fullscreen.js +68 -0
  213. package/dist/src/components/media-player-fullscreen.tsx +109 -0
  214. package/dist/src/components/media-player-hls.d.ts +23 -0
  215. package/dist/src/components/media-player-hls.d.ts.map +1 -0
  216. package/dist/src/components/media-player-hls.js +20 -0
  217. package/dist/src/components/media-player-hls.tsx +111 -0
  218. package/dist/src/components/media-player-loading.d.ts +12 -0
  219. package/dist/src/components/media-player-loading.d.ts.map +1 -0
  220. package/dist/src/components/media-player-loading.js +53 -0
  221. package/dist/src/components/media-player-loading.tsx +76 -0
  222. package/dist/src/components/media-player-play.d.ts +11 -0
  223. package/dist/src/components/media-player-play.d.ts.map +1 -0
  224. package/dist/src/components/media-player-play.js +44 -0
  225. package/dist/src/components/media-player-play.tsx +75 -0
  226. package/dist/src/components/media-player-root.d.ts +28 -0
  227. package/dist/src/components/media-player-root.d.ts.map +1 -0
  228. package/dist/src/components/media-player-root.js +243 -0
  229. package/dist/src/components/media-player-root.tsx +340 -0
  230. package/dist/src/components/media-player-seek.d.ts +15 -0
  231. package/dist/src/components/media-player-seek.d.ts.map +1 -0
  232. package/dist/src/components/media-player-seek.js +92 -0
  233. package/dist/src/components/media-player-seek.tsx +168 -0
  234. package/dist/src/components/media-player-time.d.ts +12 -0
  235. package/dist/src/components/media-player-time.d.ts.map +1 -0
  236. package/dist/src/components/media-player-time.js +57 -0
  237. package/dist/src/components/media-player-time.tsx +99 -0
  238. package/dist/src/components/media-player-tooltip.d.ts +13 -0
  239. package/dist/src/components/media-player-tooltip.d.ts.map +1 -0
  240. package/dist/src/components/media-player-tooltip.js +14 -0
  241. package/dist/src/components/media-player-tooltip.tsx +58 -0
  242. package/dist/src/components/media-player-video.d.ts +9 -0
  243. package/dist/src/components/media-player-video.d.ts.map +1 -0
  244. package/dist/src/components/media-player-video.js +18 -0
  245. package/dist/src/components/media-player-video.tsx +39 -0
  246. package/dist/src/components/media-player-volume.d.ts +13 -0
  247. package/dist/src/components/media-player-volume.d.ts.map +1 -0
  248. package/dist/src/components/media-player-volume.js +88 -0
  249. package/dist/src/components/media-player-volume.tsx +155 -0
  250. package/dist/src/components/media-player.d.ts +3 -0
  251. package/dist/src/components/media-player.d.ts.map +1 -0
  252. package/dist/src/components/media-player.js +67 -0
  253. package/dist/src/components/media-player.tsx +257 -0
  254. package/dist/src/components/media-suspense.d.ts +78 -0
  255. package/dist/src/components/media-suspense.d.ts.map +1 -0
  256. package/dist/src/components/media-suspense.js +173 -0
  257. package/dist/src/components/media-suspense.tsx +362 -0
  258. package/dist/src/components/player-settings-form.d.ts +8 -0
  259. package/dist/src/components/player-settings-form.d.ts.map +1 -0
  260. package/dist/src/components/player-settings-form.js +46 -0
  261. package/dist/src/components/player-settings-form.tsx +163 -0
  262. package/dist/src/components/react-player-wrapper.d.ts +64 -0
  263. package/dist/src/components/react-player-wrapper.d.ts.map +1 -0
  264. package/dist/src/components/react-player-wrapper.js +163 -0
  265. package/dist/src/components/react-player-wrapper.tsx +651 -0
  266. package/dist/src/components/simple-video-player.d.ts +9 -0
  267. package/dist/src/components/simple-video-player.d.ts.map +1 -0
  268. package/dist/src/components/simple-video-player.js +41 -0
  269. package/dist/src/components/simple-video-player.tsx +60 -0
  270. package/dist/src/components/ui/enhanced-seek-bar.d.ts +3 -0
  271. package/dist/src/components/ui/enhanced-seek-bar.d.ts.map +1 -0
  272. package/dist/src/components/ui/enhanced-seek-bar.js +112 -0
  273. package/dist/src/components/ui/enhanced-seek-bar.tsx +235 -0
  274. package/dist/src/components/ui/fullscreen-button.d.ts +3 -0
  275. package/dist/src/components/ui/fullscreen-button.d.ts.map +1 -0
  276. package/dist/src/components/ui/fullscreen-button.js +21 -0
  277. package/dist/src/components/ui/fullscreen-button.tsx +60 -0
  278. package/dist/src/components/ui/media-resource-preloader.d.ts +21 -0
  279. package/dist/src/components/ui/media-resource-preloader.d.ts.map +1 -0
  280. package/dist/src/components/ui/media-resource-preloader.js +295 -0
  281. package/dist/src/components/ui/media-resource-preloader.tsx +395 -0
  282. package/dist/src/components/ui/play-button.d.ts +3 -0
  283. package/dist/src/components/ui/play-button.d.ts.map +1 -0
  284. package/dist/src/components/ui/play-button.js +26 -0
  285. package/dist/src/components/ui/play-button.tsx +107 -0
  286. package/dist/src/components/ui/seek-bar.d.ts +3 -0
  287. package/dist/src/components/ui/seek-bar.d.ts.map +1 -0
  288. package/dist/src/components/ui/seek-bar.js +54 -0
  289. package/dist/src/components/ui/seek-bar.tsx +161 -0
  290. package/dist/src/components/ui/time-display.d.ts +3 -0
  291. package/dist/src/components/ui/time-display.d.ts.map +1 -0
  292. package/dist/src/components/ui/time-display.js +18 -0
  293. package/dist/src/components/ui/time-display.tsx +40 -0
  294. package/dist/src/components/ui/volume-control.d.ts +3 -0
  295. package/dist/src/components/ui/volume-control.d.ts.map +1 -0
  296. package/dist/src/components/ui/volume-control.js +71 -0
  297. package/dist/src/components/ui/volume-control.tsx +143 -0
  298. package/dist/src/components/unified/base-media-player.d.ts +18 -0
  299. package/dist/src/components/unified/base-media-player.d.ts.map +1 -0
  300. package/dist/src/components/unified/base-media-player.js +104 -0
  301. package/dist/src/components/unified/base-media-player.tsx +246 -0
  302. package/dist/src/components/unified/media-player.d.ts +37 -0
  303. package/dist/src/components/unified/media-player.d.ts.map +1 -0
  304. package/dist/src/components/unified/media-player.js +41 -0
  305. package/dist/src/components/unified/media-player.tsx +75 -0
  306. package/dist/src/components/variants/minimal/AccessibleMinimalPlayer.d.ts +42 -0
  307. package/dist/src/components/variants/minimal/AccessibleMinimalPlayer.d.ts.map +1 -0
  308. package/dist/src/components/variants/minimal/AccessibleMinimalPlayer.js +322 -0
  309. package/dist/src/components/variants/minimal/AccessibleMinimalPlayer.tsx +561 -0
  310. package/dist/src/components/variants/minimal/EnhancedMinimalMediaPlayer.d.ts +44 -0
  311. package/dist/src/components/variants/minimal/EnhancedMinimalMediaPlayer.d.ts.map +1 -0
  312. package/dist/src/components/variants/minimal/EnhancedMinimalMediaPlayer.js +280 -0
  313. package/dist/src/components/variants/minimal/EnhancedMinimalMediaPlayer.tsx +552 -0
  314. package/dist/src/components/variants/minimal/MinimalControls.d.ts +19 -0
  315. package/dist/src/components/variants/minimal/MinimalControls.d.ts.map +1 -0
  316. package/dist/src/components/variants/minimal/MinimalControls.js +19 -0
  317. package/dist/src/components/variants/minimal/MinimalControls.tsx +142 -0
  318. package/dist/src/components/variants/minimal/MinimalLoading.d.ts +10 -0
  319. package/dist/src/components/variants/minimal/MinimalLoading.d.ts.map +1 -0
  320. package/dist/src/components/variants/minimal/MinimalLoading.js +6 -0
  321. package/dist/src/components/variants/minimal/MinimalLoading.tsx +32 -0
  322. package/dist/src/components/variants/minimal/MinimalMediaPlayer.d.ts +38 -0
  323. package/dist/src/components/variants/minimal/MinimalMediaPlayer.d.ts.map +1 -0
  324. package/dist/src/components/variants/minimal/MinimalMediaPlayer.js +135 -0
  325. package/dist/src/components/variants/minimal/MinimalMediaPlayer.tsx +315 -0
  326. package/dist/src/components/variants/minimal/MinimalOverlay.d.ts +11 -0
  327. package/dist/src/components/variants/minimal/MinimalOverlay.d.ts.map +1 -0
  328. package/dist/src/components/variants/minimal/MinimalOverlay.js +15 -0
  329. package/dist/src/components/variants/minimal/MinimalOverlay.tsx +64 -0
  330. package/dist/src/components/variants/minimal/MinimalPlayButton.d.ts +9 -0
  331. package/dist/src/components/variants/minimal/MinimalPlayButton.d.ts.map +1 -0
  332. package/dist/src/components/variants/minimal/MinimalPlayButton.js +29 -0
  333. package/dist/src/components/variants/minimal/MinimalPlayButton.tsx +65 -0
  334. package/dist/src/components/variants/minimal/MinimalSeekBar.d.ts +7 -0
  335. package/dist/src/components/variants/minimal/MinimalSeekBar.d.ts.map +1 -0
  336. package/dist/src/components/variants/minimal/MinimalSeekBar.js +73 -0
  337. package/dist/src/components/variants/minimal/MinimalSeekBar.tsx +150 -0
  338. package/dist/src/components/variants/minimal/MinimalVolumeControl.d.ts +7 -0
  339. package/dist/src/components/variants/minimal/MinimalVolumeControl.d.ts.map +1 -0
  340. package/dist/src/components/variants/minimal/MinimalVolumeControl.js +29 -0
  341. package/dist/src/components/variants/minimal/MinimalVolumeControl.tsx +80 -0
  342. package/dist/src/components/variants/minimal/SimpleMinimalPlayer.d.ts +22 -0
  343. package/dist/src/components/variants/minimal/SimpleMinimalPlayer.d.ts.map +1 -0
  344. package/dist/src/components/variants/minimal/SimpleMinimalPlayer.js +51 -0
  345. package/dist/src/components/variants/minimal/SimpleMinimalPlayer.tsx +209 -0
  346. package/dist/src/components/variants/minimal/components/CenterPlayButton.d.ts +7 -0
  347. package/dist/src/components/variants/minimal/components/CenterPlayButton.d.ts.map +1 -0
  348. package/dist/src/components/variants/minimal/components/CenterPlayButton.js +8 -0
  349. package/dist/src/components/variants/minimal/components/CenterPlayButton.tsx +22 -0
  350. package/dist/src/components/variants/minimal/components/ControlBar.d.ts +43 -0
  351. package/dist/src/components/variants/minimal/components/ControlBar.d.ts.map +1 -0
  352. package/dist/src/components/variants/minimal/components/ControlBar.js +10 -0
  353. package/dist/src/components/variants/minimal/components/ControlBar.tsx +146 -0
  354. package/dist/src/components/variants/minimal/components/EnhancedSettingsMenu.d.ts +24 -0
  355. package/dist/src/components/variants/minimal/components/EnhancedSettingsMenu.d.ts.map +1 -0
  356. package/dist/src/components/variants/minimal/components/EnhancedSettingsMenu.js +68 -0
  357. package/dist/src/components/variants/minimal/components/EnhancedSettingsMenu.tsx +361 -0
  358. package/dist/src/components/variants/minimal/components/PlaybackControls.d.ts +9 -0
  359. package/dist/src/components/variants/minimal/components/PlaybackControls.d.ts.map +1 -0
  360. package/dist/src/components/variants/minimal/components/PlaybackControls.js +9 -0
  361. package/dist/src/components/variants/minimal/components/PlaybackControls.tsx +51 -0
  362. package/dist/src/components/variants/minimal/components/RightControls.d.ts +25 -0
  363. package/dist/src/components/variants/minimal/components/RightControls.d.ts.map +1 -0
  364. package/dist/src/components/variants/minimal/components/RightControls.js +40 -0
  365. package/dist/src/components/variants/minimal/components/RightControls.tsx +173 -0
  366. package/dist/src/components/variants/minimal/components/SeekBar.d.ts +11 -0
  367. package/dist/src/components/variants/minimal/components/SeekBar.d.ts.map +1 -0
  368. package/dist/src/components/variants/minimal/components/SeekBar.js +43 -0
  369. package/dist/src/components/variants/minimal/components/SeekBar.tsx +131 -0
  370. package/dist/src/components/variants/minimal/components/SettingsDropdown.d.ts +9 -0
  371. package/dist/src/components/variants/minimal/components/SettingsDropdown.d.ts.map +1 -0
  372. package/dist/src/components/variants/minimal/components/SettingsDropdown.js +18 -0
  373. package/dist/src/components/variants/minimal/components/SettingsDropdown.tsx +70 -0
  374. package/dist/src/components/variants/minimal/components/SubtitleDisplay.d.ts +7 -0
  375. package/dist/src/components/variants/minimal/components/SubtitleDisplay.d.ts.map +1 -0
  376. package/dist/src/components/variants/minimal/components/SubtitleDisplay.js +6 -0
  377. package/dist/src/components/variants/minimal/components/SubtitleDisplay.tsx +21 -0
  378. package/dist/src/components/variants/minimal/components/TimeDisplay.d.ts +7 -0
  379. package/dist/src/components/variants/minimal/components/TimeDisplay.d.ts.map +1 -0
  380. package/dist/src/components/variants/minimal/components/TimeDisplay.js +5 -0
  381. package/dist/src/components/variants/minimal/components/TimeDisplay.tsx +18 -0
  382. package/dist/src/components/variants/minimal/components/VideoElement.d.ts +13 -0
  383. package/dist/src/components/variants/minimal/components/VideoElement.d.ts.map +1 -0
  384. package/dist/src/components/variants/minimal/components/VideoElement.js +4 -0
  385. package/dist/src/components/variants/minimal/components/VideoElement.tsx +40 -0
  386. package/dist/src/components/variants/minimal/components/VolumeControl.d.ts +13 -0
  387. package/dist/src/components/variants/minimal/components/VolumeControl.d.ts.map +1 -0
  388. package/dist/src/components/variants/minimal/components/VolumeControl.js +99 -0
  389. package/dist/src/components/variants/minimal/components/VolumeControl.tsx +217 -0
  390. package/dist/src/components/variants/minimal/index.d.ts +17 -0
  391. package/dist/src/components/variants/minimal/index.d.ts.map +1 -0
  392. package/dist/src/components/variants/minimal/index.js +8 -0
  393. package/dist/src/components/variants/minimal/index.ts +23 -0
  394. package/dist/src/components/video-player.d.ts +3 -0
  395. package/dist/src/components/video-player.d.ts.map +1 -0
  396. package/dist/src/components/video-player.js +38 -0
  397. package/dist/src/components/video-player.tsx +100 -0
  398. package/dist/src/context/error-handling.d.ts +72 -0
  399. package/dist/src/context/error-handling.d.ts.map +1 -0
  400. package/dist/src/context/error-handling.js +300 -0
  401. package/dist/src/context/error-handling.ts +394 -0
  402. package/dist/src/context/media-context.d.ts +104 -0
  403. package/dist/src/context/media-context.d.ts.map +1 -0
  404. package/dist/src/context/media-context.js +121 -0
  405. package/dist/src/context/media-context.tsx +208 -0
  406. package/dist/src/context/media-provider.d.ts +26 -0
  407. package/dist/src/context/media-provider.d.ts.map +1 -0
  408. package/dist/src/context/media-provider.js +164 -0
  409. package/dist/src/context/media-provider.tsx +265 -0
  410. package/dist/src/context/media-store.d.ts +33 -0
  411. package/dist/src/context/media-store.d.ts.map +1 -0
  412. package/dist/src/context/media-store.js +273 -0
  413. package/dist/src/context/media-store.ts +379 -0
  414. package/dist/src/context/persistence.d.ts +83 -0
  415. package/dist/src/context/persistence.d.ts.map +1 -0
  416. package/dist/src/context/persistence.js +356 -0
  417. package/dist/src/context/persistence.ts +453 -0
  418. package/dist/src/core/events/event-system.d.ts +170 -0
  419. package/dist/src/core/events/event-system.d.ts.map +1 -0
  420. package/dist/src/core/events/event-system.js +288 -0
  421. package/dist/src/core/events/event-system.ts +442 -0
  422. package/dist/src/core/events/hooks.d.ts +33 -0
  423. package/dist/src/core/events/hooks.d.ts.map +1 -0
  424. package/dist/src/core/events/hooks.js +198 -0
  425. package/dist/src/core/events/hooks.ts +302 -0
  426. package/dist/src/core/events/index.d.ts +6 -0
  427. package/dist/src/core/events/index.d.ts.map +1 -0
  428. package/dist/src/core/events/index.js +7 -0
  429. package/dist/src/core/events/index.ts +22 -0
  430. package/dist/src/core/events/middleware.d.ts +39 -0
  431. package/dist/src/core/events/middleware.d.ts.map +1 -0
  432. package/dist/src/core/events/middleware.js +219 -0
  433. package/dist/src/core/events/middleware.ts +269 -0
  434. package/dist/src/core/index.d.ts +8 -0
  435. package/dist/src/core/index.d.ts.map +1 -0
  436. package/dist/src/core/index.js +15 -0
  437. package/dist/src/core/index.ts +22 -0
  438. package/dist/src/core/optimization/bundle-optimizer.d.ts +44 -0
  439. package/dist/src/core/optimization/bundle-optimizer.d.ts.map +1 -0
  440. package/dist/src/core/optimization/bundle-optimizer.js +217 -0
  441. package/dist/src/core/optimization/bundle-optimizer.tsx +308 -0
  442. package/dist/src/core/performance/cicd.d.ts +8 -0
  443. package/dist/src/core/performance/cicd.d.ts.map +1 -0
  444. package/dist/src/core/performance/cicd.js +83 -0
  445. package/dist/src/core/performance/cicd.ts +96 -0
  446. package/dist/src/core/performance/index.d.ts +10 -0
  447. package/dist/src/core/performance/index.d.ts.map +1 -0
  448. package/dist/src/core/performance/index.js +14 -0
  449. package/dist/src/core/performance/index.ts +38 -0
  450. package/dist/src/core/performance/media-loading-optimizer.d.ts +105 -0
  451. package/dist/src/core/performance/media-loading-optimizer.d.ts.map +1 -0
  452. package/dist/src/core/performance/media-loading-optimizer.js +404 -0
  453. package/dist/src/core/performance/media-loading-optimizer.ts +538 -0
  454. package/dist/src/core/performance/performance-budgets.d.ts +68 -0
  455. package/dist/src/core/performance/performance-budgets.d.ts.map +1 -0
  456. package/dist/src/core/performance/performance-budgets.js +326 -0
  457. package/dist/src/core/performance/performance-budgets.ts +432 -0
  458. package/dist/src/core/performance/performance-monitor.d.ts +95 -0
  459. package/dist/src/core/performance/performance-monitor.d.ts.map +1 -0
  460. package/dist/src/core/performance/performance-monitor.js +297 -0
  461. package/dist/src/core/performance/performance-monitor.tsx +476 -0
  462. package/dist/src/core/performance/performance-testing.d.ts +69 -0
  463. package/dist/src/core/performance/performance-testing.d.ts.map +1 -0
  464. package/dist/src/core/performance/performance-testing.js +314 -0
  465. package/dist/src/core/performance/performance-testing.ts +459 -0
  466. package/dist/src/core/plugins/base-plugin.d.ts +52 -0
  467. package/dist/src/core/plugins/base-plugin.d.ts.map +1 -0
  468. package/dist/src/core/plugins/base-plugin.js +151 -0
  469. package/dist/src/core/plugins/base-plugin.ts +224 -0
  470. package/dist/src/core/plugins/enhanced-plugin-system.d.ts +160 -0
  471. package/dist/src/core/plugins/enhanced-plugin-system.d.ts.map +1 -0
  472. package/dist/src/core/plugins/enhanced-plugin-system.js +305 -0
  473. package/dist/src/core/plugins/enhanced-plugin-system.ts +411 -0
  474. package/dist/src/core/plugins/examples/analytics-plugin.d.ts +30 -0
  475. package/dist/src/core/plugins/examples/analytics-plugin.d.ts.map +1 -0
  476. package/dist/src/core/plugins/examples/analytics-plugin.js +191 -0
  477. package/dist/src/core/plugins/examples/analytics-plugin.ts +242 -0
  478. package/dist/src/core/plugins/index.d.ts +8 -0
  479. package/dist/src/core/plugins/index.d.ts.map +1 -0
  480. package/dist/src/core/plugins/index.js +9 -0
  481. package/dist/src/core/plugins/index.ts +39 -0
  482. package/dist/src/core/plugins/registry.d.ts +31 -0
  483. package/dist/src/core/plugins/registry.d.ts.map +1 -0
  484. package/dist/src/core/plugins/registry.js +261 -0
  485. package/dist/src/core/plugins/registry.ts +327 -0
  486. package/dist/src/core/plugins/types.d.ts +101 -0
  487. package/dist/src/core/plugins/types.d.ts.map +1 -0
  488. package/dist/src/core/plugins/types.js +31 -0
  489. package/dist/src/core/plugins/types.ts +159 -0
  490. package/dist/src/core/plugins/utils.d.ts +38 -0
  491. package/dist/src/core/plugins/utils.d.ts.map +1 -0
  492. package/dist/src/core/plugins/utils.js +274 -0
  493. package/dist/src/core/plugins/utils.ts +316 -0
  494. package/dist/src/core/progressive-loading.d.ts +88 -0
  495. package/dist/src/core/progressive-loading.d.ts.map +1 -0
  496. package/dist/src/core/progressive-loading.js +239 -0
  497. package/dist/src/core/progressive-loading.tsx +322 -0
  498. package/dist/src/core/providers/enhanced-hls-provider.d.ts +50 -0
  499. package/dist/src/core/providers/enhanced-hls-provider.d.ts.map +1 -0
  500. package/dist/src/core/providers/enhanced-hls-provider.js +273 -0
  501. package/dist/src/core/providers/enhanced-hls-provider.ts +339 -0
  502. package/dist/src/core/providers/service-provider.d.ts +49 -0
  503. package/dist/src/core/providers/service-provider.d.ts.map +1 -0
  504. package/dist/src/core/providers/service-provider.js +105 -0
  505. package/dist/src/core/providers/service-provider.tsx +168 -0
  506. package/dist/src/core/utils.d.ts +25 -0
  507. package/dist/src/core/utils.d.ts.map +1 -0
  508. package/dist/src/core/utils.js +21 -0
  509. package/dist/src/core/utils.tsx +38 -0
  510. package/dist/src/features/media-session/media-session-manager.d.ts +132 -0
  511. package/dist/src/features/media-session/media-session-manager.d.ts.map +1 -0
  512. package/dist/src/features/media-session/media-session-manager.js +331 -0
  513. package/dist/src/features/media-session/media-session-manager.ts +429 -0
  514. package/dist/src/features/picture-in-picture/pip-manager.d.ts +94 -0
  515. package/dist/src/features/picture-in-picture/pip-manager.d.ts.map +1 -0
  516. package/dist/src/features/picture-in-picture/pip-manager.js +353 -0
  517. package/dist/src/features/picture-in-picture/pip-manager.ts +429 -0
  518. package/dist/src/features/playlist/playlist-manager.d.ts +208 -0
  519. package/dist/src/features/playlist/playlist-manager.d.ts.map +1 -0
  520. package/dist/src/features/playlist/playlist-manager.js +475 -0
  521. package/dist/src/features/playlist/playlist-manager.ts +606 -0
  522. package/dist/src/features/subtitles/subtitle-manager.d.ts +136 -0
  523. package/dist/src/features/subtitles/subtitle-manager.d.ts.map +1 -0
  524. package/dist/src/features/subtitles/subtitle-manager.js +335 -0
  525. package/dist/src/features/subtitles/subtitle-manager.ts +441 -0
  526. package/dist/src/features/subtitles/subtitle-parser.d.ts +60 -0
  527. package/dist/src/features/subtitles/subtitle-parser.d.ts.map +1 -0
  528. package/dist/src/features/subtitles/subtitle-parser.js +217 -0
  529. package/dist/src/features/subtitles/subtitle-parser.ts +280 -0
  530. package/dist/src/features/thumbnails/thumbnail-generator.d.ts +136 -0
  531. package/dist/src/features/thumbnails/thumbnail-generator.d.ts.map +1 -0
  532. package/dist/src/features/thumbnails/thumbnail-generator.js +388 -0
  533. package/dist/src/features/thumbnails/thumbnail-generator.ts +519 -0
  534. package/dist/src/hooks/accessibility/index.d.ts +5 -0
  535. package/dist/src/hooks/accessibility/index.d.ts.map +1 -0
  536. package/dist/src/hooks/accessibility/index.js +4 -0
  537. package/dist/src/hooks/accessibility/index.ts +27 -0
  538. package/dist/src/hooks/accessibility/use-accessibility-preferences.d.ts +14 -0
  539. package/dist/src/hooks/accessibility/use-accessibility-preferences.d.ts.map +1 -0
  540. package/dist/src/hooks/accessibility/use-accessibility-preferences.js +156 -0
  541. package/dist/src/hooks/accessibility/use-accessibility-preferences.ts +188 -0
  542. package/dist/src/hooks/accessibility/use-focus-management.d.ts +31 -0
  543. package/dist/src/hooks/accessibility/use-focus-management.d.ts.map +1 -0
  544. package/dist/src/hooks/accessibility/use-focus-management.js +142 -0
  545. package/dist/src/hooks/accessibility/use-focus-management.ts +176 -0
  546. package/dist/src/hooks/accessibility/use-keyboard-shortcuts.d.ts +38 -0
  547. package/dist/src/hooks/accessibility/use-keyboard-shortcuts.d.ts.map +1 -0
  548. package/dist/src/hooks/accessibility/use-keyboard-shortcuts.js +101 -0
  549. package/dist/src/hooks/accessibility/use-keyboard-shortcuts.ts +144 -0
  550. package/dist/src/hooks/accessibility/use-screen-reader.d.ts +22 -0
  551. package/dist/src/hooks/accessibility/use-screen-reader.d.ts.map +1 -0
  552. package/dist/src/hooks/accessibility/use-screen-reader.js +148 -0
  553. package/dist/src/hooks/accessibility/use-screen-reader.ts +182 -0
  554. package/dist/src/hooks/core/index.d.ts +18 -0
  555. package/dist/src/hooks/core/index.d.ts.map +1 -0
  556. package/dist/src/hooks/core/index.js +19 -0
  557. package/dist/src/hooks/core/index.ts +47 -0
  558. package/dist/src/hooks/legacy.d.ts +18 -0
  559. package/dist/src/hooks/legacy.d.ts.map +1 -0
  560. package/dist/src/hooks/legacy.js +17 -0
  561. package/dist/src/hooks/legacy.ts +27 -0
  562. package/dist/src/hooks/use-enhanced-media-player.d.ts +88 -0
  563. package/dist/src/hooks/use-enhanced-media-player.d.ts.map +1 -0
  564. package/dist/src/hooks/use-enhanced-media-player.js +395 -0
  565. package/dist/src/hooks/use-enhanced-media-player.ts +468 -0
  566. package/dist/src/hooks/use-intelligent-preloading.d.ts +66 -0
  567. package/dist/src/hooks/use-intelligent-preloading.d.ts.map +1 -0
  568. package/dist/src/hooks/use-intelligent-preloading.js +258 -0
  569. package/dist/src/hooks/use-intelligent-preloading.ts +358 -0
  570. package/dist/src/hooks/use-keyboard-controls.d.ts +13 -0
  571. package/dist/src/hooks/use-keyboard-controls.d.ts.map +1 -0
  572. package/dist/src/hooks/use-keyboard-controls.js +83 -0
  573. package/dist/src/hooks/use-keyboard-controls.ts +115 -0
  574. package/dist/src/hooks/use-media-actions.d.ts +62 -0
  575. package/dist/src/hooks/use-media-actions.d.ts.map +1 -0
  576. package/dist/src/hooks/use-media-actions.js +121 -0
  577. package/dist/src/hooks/use-media-actions.ts +175 -0
  578. package/dist/src/hooks/use-media-metadata.d.ts +11 -0
  579. package/dist/src/hooks/use-media-metadata.d.ts.map +1 -0
  580. package/dist/src/hooks/use-media-metadata.js +74 -0
  581. package/dist/src/hooks/use-media-metadata.ts +89 -0
  582. package/dist/src/hooks/use-media-optimistic.d.ts +36 -0
  583. package/dist/src/hooks/use-media-optimistic.d.ts.map +1 -0
  584. package/dist/src/hooks/use-media-optimistic.js +205 -0
  585. package/dist/src/hooks/use-media-optimistic.ts +270 -0
  586. package/dist/src/hooks/use-media-player.d.ts +31 -0
  587. package/dist/src/hooks/use-media-player.d.ts.map +1 -0
  588. package/dist/src/hooks/use-media-player.js +251 -0
  589. package/dist/src/hooks/use-media-player.ts +312 -0
  590. package/dist/src/hooks/use-media-state.d.ts +17 -0
  591. package/dist/src/hooks/use-media-state.d.ts.map +1 -0
  592. package/dist/src/hooks/use-media-state.js +162 -0
  593. package/dist/src/hooks/use-media-state.ts +190 -0
  594. package/dist/src/hooks/use-memory-optimization.d.ts +40 -0
  595. package/dist/src/hooks/use-memory-optimization.d.ts.map +1 -0
  596. package/dist/src/hooks/use-memory-optimization.js +288 -0
  597. package/dist/src/hooks/use-memory-optimization.ts +358 -0
  598. package/dist/src/hooks/use-optimistic-controls.d.ts +22 -0
  599. package/dist/src/hooks/use-optimistic-controls.d.ts.map +1 -0
  600. package/dist/src/hooks/use-optimistic-controls.js +60 -0
  601. package/dist/src/hooks/use-optimistic-controls.ts +92 -0
  602. package/dist/src/hooks/use-optimized-media.d.ts +46 -0
  603. package/dist/src/hooks/use-optimized-media.d.ts.map +1 -0
  604. package/dist/src/hooks/use-optimized-media.js +211 -0
  605. package/dist/src/hooks/use-optimized-media.ts +263 -0
  606. package/dist/src/hooks/use-touch-gestures.d.ts +47 -0
  607. package/dist/src/hooks/use-touch-gestures.d.ts.map +1 -0
  608. package/dist/src/hooks/use-touch-gestures.js +289 -0
  609. package/dist/src/hooks/use-touch-gestures.ts +417 -0
  610. package/dist/src/hooks/useEnhancedSubtitles.d.ts +39 -0
  611. package/dist/src/hooks/useEnhancedSubtitles.d.ts.map +1 -0
  612. package/dist/src/hooks/useEnhancedSubtitles.js +205 -0
  613. package/dist/src/hooks/useEnhancedSubtitles.ts +258 -0
  614. package/dist/src/hooks/useKeyboardShortcuts.d.ts +10 -0
  615. package/dist/src/hooks/useKeyboardShortcuts.d.ts.map +1 -0
  616. package/dist/src/hooks/useKeyboardShortcuts.js +59 -0
  617. package/dist/src/hooks/useKeyboardShortcuts.ts +74 -0
  618. package/dist/src/hooks/useMediaControls.d.ts +9 -0
  619. package/dist/src/hooks/useMediaControls.d.ts.map +1 -0
  620. package/dist/src/hooks/useMediaControls.js +44 -0
  621. package/dist/src/hooks/useMediaControls.ts +52 -0
  622. package/dist/src/hooks/useScreenshot.d.ts +4 -0
  623. package/dist/src/hooks/useScreenshot.d.ts.map +1 -0
  624. package/dist/src/hooks/useScreenshot.js +56 -0
  625. package/dist/src/hooks/useScreenshot.ts +57 -0
  626. package/dist/src/hooks/useSubtitles.d.ts +8 -0
  627. package/dist/src/hooks/useSubtitles.d.ts.map +1 -0
  628. package/dist/src/hooks/useSubtitles.js +73 -0
  629. package/dist/src/hooks/useSubtitles.ts +91 -0
  630. package/dist/src/hooks/useVideoPlayer.d.ts +32 -0
  631. package/dist/src/hooks/useVideoPlayer.d.ts.map +1 -0
  632. package/dist/src/hooks/useVideoPlayer.js +184 -0
  633. package/dist/src/hooks/useVideoPlayer.ts +232 -0
  634. package/dist/src/icons/components/FullscreenIcon.d.ts +3 -0
  635. package/dist/src/icons/components/FullscreenIcon.d.ts.map +1 -0
  636. package/dist/src/icons/components/FullscreenIcon.js +11 -0
  637. package/dist/src/icons/components/FullscreenIcon.tsx +37 -0
  638. package/dist/src/icons/components/SettingsIcon.d.ts +3 -0
  639. package/dist/src/icons/components/SettingsIcon.d.ts.map +1 -0
  640. package/dist/src/icons/components/SettingsIcon.js +11 -0
  641. package/dist/src/icons/components/SettingsIcon.tsx +38 -0
  642. package/dist/src/icons/components/animated/LoadingIcon.d.ts +3 -0
  643. package/dist/src/icons/components/animated/LoadingIcon.d.ts.map +1 -0
  644. package/dist/src/icons/components/animated/LoadingIcon.js +11 -0
  645. package/dist/src/icons/components/animated/LoadingIcon.tsx +43 -0
  646. package/dist/src/icons/components/animated/PlayPauseIcon.d.ts +7 -0
  647. package/dist/src/icons/components/animated/PlayPauseIcon.d.ts.map +1 -0
  648. package/dist/src/icons/components/animated/PlayPauseIcon.js +9 -0
  649. package/dist/src/icons/components/animated/PlayPauseIcon.tsx +50 -0
  650. package/dist/src/icons/components/media/PauseIcon.d.ts +3 -0
  651. package/dist/src/icons/components/media/PauseIcon.d.ts.map +1 -0
  652. package/dist/src/icons/components/media/PauseIcon.js +12 -0
  653. package/dist/src/icons/components/media/PauseIcon.tsx +39 -0
  654. package/dist/src/icons/components/media/PlayIcon.d.ts +3 -0
  655. package/dist/src/icons/components/media/PlayIcon.d.ts.map +1 -0
  656. package/dist/src/icons/components/media/PlayIcon.js +12 -0
  657. package/dist/src/icons/components/media/PlayIcon.tsx +38 -0
  658. package/dist/src/icons/components/volume/VolumeIcon.d.ts +3 -0
  659. package/dist/src/icons/components/volume/VolumeIcon.d.ts.map +1 -0
  660. package/dist/src/icons/components/volume/VolumeIcon.js +11 -0
  661. package/dist/src/icons/components/volume/VolumeIcon.tsx +39 -0
  662. package/dist/src/icons/components/volume/VolumeOffIcon.d.ts +3 -0
  663. package/dist/src/icons/components/volume/VolumeOffIcon.d.ts.map +1 -0
  664. package/dist/src/icons/components/volume/VolumeOffIcon.js +11 -0
  665. package/dist/src/icons/components/volume/VolumeOffIcon.tsx +39 -0
  666. package/dist/src/icons/index.d.ts +28 -0
  667. package/dist/src/icons/index.d.ts.map +1 -0
  668. package/dist/src/icons/index.js +45 -0
  669. package/dist/src/icons/index.ts +56 -0
  670. package/dist/src/icons/provider.d.ts +13 -0
  671. package/dist/src/icons/provider.d.ts.map +1 -0
  672. package/dist/src/icons/provider.js +37 -0
  673. package/dist/src/icons/provider.tsx +64 -0
  674. package/dist/src/icons/types.d.ts +18 -0
  675. package/dist/src/icons/types.d.ts.map +1 -0
  676. package/dist/src/icons/types.js +1 -0
  677. package/dist/src/icons/types.ts +40 -0
  678. package/dist/src/index-enhanced.d.ts +13 -0
  679. package/dist/src/index-enhanced.d.ts.map +1 -0
  680. package/dist/src/index-enhanced.js +16 -0
  681. package/dist/src/index-enhanced.ts +35 -0
  682. package/dist/src/index-legacy.d.ts +81 -0
  683. package/dist/src/index-legacy.d.ts.map +1 -0
  684. package/dist/src/index-legacy.js +97 -0
  685. package/dist/src/index-legacy.ts +326 -0
  686. package/dist/src/index.css +102 -0
  687. package/dist/src/index.d.ts +38 -0
  688. package/dist/src/index.d.ts.map +1 -0
  689. package/dist/src/index.js +90 -0
  690. package/dist/src/index.minimal.d.ts +2 -0
  691. package/dist/src/index.minimal.d.ts.map +1 -0
  692. package/dist/src/index.minimal.js +3 -0
  693. package/dist/src/index.minimal.ts +4 -0
  694. package/dist/src/index.ts +216 -0
  695. package/dist/src/lib/deprecation.d.ts +7 -0
  696. package/dist/src/lib/deprecation.d.ts.map +1 -0
  697. package/dist/src/lib/deprecation.js +31 -0
  698. package/dist/src/lib/deprecation.ts +51 -0
  699. package/dist/src/lib/format-time.d.ts +9 -0
  700. package/dist/src/lib/format-time.d.ts.map +1 -0
  701. package/dist/src/lib/format-time.js +32 -0
  702. package/dist/src/lib/format-time.ts +37 -0
  703. package/dist/src/lib/index.d.ts +3 -0
  704. package/dist/src/lib/index.d.ts.map +1 -0
  705. package/dist/src/lib/index.js +3 -0
  706. package/dist/src/lib/index.ts +3 -0
  707. package/dist/src/lib/utils.d.ts +3 -0
  708. package/dist/src/lib/utils.d.ts.map +1 -0
  709. package/dist/src/lib/utils.js +5 -0
  710. package/dist/src/lib/utils.ts +6 -0
  711. package/dist/src/styles/globals.css +462 -0
  712. package/dist/src/styles/minimal-player.css +589 -0
  713. package/dist/src/styles/pixel-art.css +46 -0
  714. package/dist/src/styles/videojs.css +100 -0
  715. package/dist/src/test/setup.d.ts +2 -0
  716. package/dist/src/test/setup.d.ts.map +1 -0
  717. package/dist/src/test/setup.js +65 -0
  718. package/dist/src/test/setup.ts +79 -0
  719. package/dist/src/types/events.d.ts +41 -0
  720. package/dist/src/types/events.d.ts.map +1 -0
  721. package/dist/src/types/events.js +2 -0
  722. package/dist/src/types/events.ts +47 -0
  723. package/dist/src/types/formats.d.ts +45 -0
  724. package/dist/src/types/formats.d.ts.map +1 -0
  725. package/dist/src/types/formats.js +63 -0
  726. package/dist/src/types/formats.ts +95 -0
  727. package/dist/src/types/index.d.ts +128 -0
  728. package/dist/src/types/index.d.ts.map +1 -0
  729. package/dist/src/types/index.js +4 -0
  730. package/dist/src/types/index.ts +190 -0
  731. package/dist/src/types/videojs-plugins.d.ts +14 -0
  732. package/package.json +7 -4
  733. package/src/adapters/videojs-adapter.d.ts +38 -0
  734. package/src/adapters/videojs-adapter.d.ts.map +1 -0
  735. package/src/adapters/videojs-adapter.js +350 -0
  736. package/src/components/AnimateLoading.d.ts +9 -0
  737. package/src/components/AnimateLoading.d.ts.map +1 -0
  738. package/src/components/AnimateLoading.js +41 -0
  739. package/src/components/LoadingState.d.ts +33 -0
  740. package/src/components/LoadingState.d.ts.map +1 -0
  741. package/src/components/LoadingState.js +111 -0
  742. package/src/components/accessibility/keyboard-help-overlay.d.ts +17 -0
  743. package/src/components/accessibility/keyboard-help-overlay.d.ts.map +1 -0
  744. package/src/components/accessibility/keyboard-help-overlay.js +90 -0
  745. package/src/components/audio-player.d.ts +3 -0
  746. package/src/components/audio-player.d.ts.map +1 -0
  747. package/src/components/audio-player.js +31 -0
  748. package/src/components/basic/index.d.ts +26 -0
  749. package/src/components/basic/index.d.ts.map +1 -0
  750. package/src/components/basic/index.js +29 -0
  751. package/src/components/enhanced/advanced-features.d.ts +45 -0
  752. package/src/components/enhanced/advanced-features.d.ts.map +1 -0
  753. package/src/components/enhanced/advanced-features.js +64 -0
  754. package/src/components/enhanced/debug-panel.d.ts +70 -0
  755. package/src/components/enhanced/debug-panel.d.ts.map +1 -0
  756. package/src/components/enhanced/debug-panel.js +94 -0
  757. package/src/components/enhanced/enhanced-controls.d.ts +50 -0
  758. package/src/components/enhanced/enhanced-controls.d.ts.map +1 -0
  759. package/src/components/enhanced/enhanced-controls.js +233 -0
  760. package/src/components/enhanced/enhanced-media-player.d.ts +26 -0
  761. package/src/components/enhanced/enhanced-media-player.d.ts.map +1 -0
  762. package/src/components/enhanced/enhanced-media-player.js +316 -0
  763. package/src/components/enhanced/error-handling.d.ts +36 -0
  764. package/src/components/enhanced/error-handling.d.ts.map +1 -0
  765. package/src/components/enhanced/error-handling.js +153 -0
  766. package/src/components/enhanced/index.d.ts +7 -0
  767. package/src/components/enhanced/index.d.ts.map +1 -0
  768. package/src/components/enhanced/index.js +10 -0
  769. package/src/components/enhanced/media-player-enhanced.d.ts +21 -0
  770. package/src/components/enhanced/media-player-enhanced.d.ts.map +1 -0
  771. package/src/components/enhanced/media-player-enhanced.js +250 -0
  772. package/src/components/examples/basic-video-player.d.ts +10 -0
  773. package/src/components/examples/basic-video-player.d.ts.map +1 -0
  774. package/src/components/examples/basic-video-player.js +16 -0
  775. package/src/components/examples/custom-controls-example.d.ts +10 -0
  776. package/src/components/examples/custom-controls-example.d.ts.map +1 -0
  777. package/src/components/examples/custom-controls-example.js +12 -0
  778. package/src/components/examples/enhanced-controls-example.d.ts +9 -0
  779. package/src/components/examples/enhanced-controls-example.d.ts.map +1 -0
  780. package/src/components/examples/enhanced-controls-example.js +18 -0
  781. package/src/components/examples/enhanced-media-player-example.d.ts +9 -0
  782. package/src/components/examples/enhanced-media-player-example.d.ts.map +1 -0
  783. package/src/components/examples/enhanced-media-player-example.js +13 -0
  784. package/src/components/examples/loading-states-demo.d.ts +2 -0
  785. package/src/components/examples/loading-states-demo.d.ts.map +1 -0
  786. package/src/components/examples/loading-states-demo.js +41 -0
  787. package/src/components/examples/react-19-demo.d.ts +10 -0
  788. package/src/components/examples/react-19-demo.d.ts.map +1 -0
  789. package/src/components/examples/react-19-demo.js +104 -0
  790. package/src/components/examples/volume-orientation-demo.d.ts +2 -0
  791. package/src/components/examples/volume-orientation-demo.d.ts.map +1 -0
  792. package/src/components/examples/volume-orientation-demo.js +31 -0
  793. package/src/components/icon-demo.d.ts +2 -0
  794. package/src/components/icon-demo.d.ts.map +1 -0
  795. package/src/components/icon-demo.js +16 -0
  796. package/src/components/icons/index.d.ts +36 -0
  797. package/src/components/icons/index.d.ts.map +1 -0
  798. package/src/components/icons/index.js +59 -0
  799. package/src/components/icons/svg-icons/ArrowLeftIcon.d.ts +4 -0
  800. package/src/components/icons/svg-icons/ArrowLeftIcon.d.ts.map +1 -0
  801. package/src/components/icons/svg-icons/ArrowLeftIcon.js +3 -0
  802. package/src/components/icons/svg-icons/ArrowRightIcon.d.ts +4 -0
  803. package/src/components/icons/svg-icons/ArrowRightIcon.d.ts.map +1 -0
  804. package/src/components/icons/svg-icons/ArrowRightIcon.js +3 -0
  805. package/src/components/icons/svg-icons/AudioIcon.d.ts +4 -0
  806. package/src/components/icons/svg-icons/AudioIcon.d.ts.map +1 -0
  807. package/src/components/icons/svg-icons/AudioIcon.js +4 -0
  808. package/src/components/icons/svg-icons/BackwardIcon.d.ts +4 -0
  809. package/src/components/icons/svg-icons/BackwardIcon.d.ts.map +1 -0
  810. package/src/components/icons/svg-icons/BackwardIcon.js +3 -0
  811. package/src/components/icons/svg-icons/CameraIcon.d.ts +4 -0
  812. package/src/components/icons/svg-icons/CameraIcon.d.ts.map +1 -0
  813. package/src/components/icons/svg-icons/CameraIcon.js +4 -0
  814. package/src/components/icons/svg-icons/CheckIcon.d.ts +4 -0
  815. package/src/components/icons/svg-icons/CheckIcon.d.ts.map +1 -0
  816. package/src/components/icons/svg-icons/CheckIcon.js +4 -0
  817. package/src/components/icons/svg-icons/EnablePiPIcon.d.ts +4 -0
  818. package/src/components/icons/svg-icons/EnablePiPIcon.d.ts.map +1 -0
  819. package/src/components/icons/svg-icons/EnablePiPIcon.js +5 -0
  820. package/src/components/icons/svg-icons/ForwardIcon.d.ts +4 -0
  821. package/src/components/icons/svg-icons/ForwardIcon.d.ts.map +1 -0
  822. package/src/components/icons/svg-icons/ForwardIcon.js +3 -0
  823. package/src/components/icons/svg-icons/FullscreenEnterIcon.d.ts +4 -0
  824. package/src/components/icons/svg-icons/FullscreenEnterIcon.d.ts.map +1 -0
  825. package/src/components/icons/svg-icons/FullscreenEnterIcon.js +3 -0
  826. package/src/components/icons/svg-icons/FullscreenExitIcon.d.ts +4 -0
  827. package/src/components/icons/svg-icons/FullscreenExitIcon.d.ts.map +1 -0
  828. package/src/components/icons/svg-icons/FullscreenExitIcon.js +3 -0
  829. package/src/components/icons/svg-icons/LoadingIcon.d.ts +4 -0
  830. package/src/components/icons/svg-icons/LoadingIcon.d.ts.map +1 -0
  831. package/src/components/icons/svg-icons/LoadingIcon.js +3 -0
  832. package/src/components/icons/svg-icons/PauseIcon.d.ts +4 -0
  833. package/src/components/icons/svg-icons/PauseIcon.d.ts.map +1 -0
  834. package/src/components/icons/svg-icons/PauseIcon.js +3 -0
  835. package/src/components/icons/svg-icons/PlayIcon.d.ts +4 -0
  836. package/src/components/icons/svg-icons/PlayIcon.d.ts.map +1 -0
  837. package/src/components/icons/svg-icons/PlayIcon.js +3 -0
  838. package/src/components/icons/svg-icons/PlaybackSpeedIcon.d.ts +4 -0
  839. package/src/components/icons/svg-icons/PlaybackSpeedIcon.d.ts.map +1 -0
  840. package/src/components/icons/svg-icons/PlaybackSpeedIcon.js +3 -0
  841. package/src/components/icons/svg-icons/QualityIcon.d.ts +4 -0
  842. package/src/components/icons/svg-icons/QualityIcon.d.ts.map +1 -0
  843. package/src/components/icons/svg-icons/QualityIcon.js +3 -0
  844. package/src/components/icons/svg-icons/SettingsIcon.d.ts +4 -0
  845. package/src/components/icons/svg-icons/SettingsIcon.d.ts.map +1 -0
  846. package/src/components/icons/svg-icons/SettingsIcon.js +3 -0
  847. package/src/components/icons/svg-icons/SliderIcon.d.ts +4 -0
  848. package/src/components/icons/svg-icons/SliderIcon.d.ts.map +1 -0
  849. package/src/components/icons/svg-icons/SliderIcon.js +3 -0
  850. package/src/components/icons/svg-icons/SubtitleIcon.d.ts +4 -0
  851. package/src/components/icons/svg-icons/SubtitleIcon.d.ts.map +1 -0
  852. package/src/components/icons/svg-icons/SubtitleIcon.js +3 -0
  853. package/src/components/icons/svg-icons/SubtitleOffIcon.d.ts +4 -0
  854. package/src/components/icons/svg-icons/SubtitleOffIcon.d.ts.map +1 -0
  855. package/src/components/icons/svg-icons/SubtitleOffIcon.js +3 -0
  856. package/src/components/icons/svg-icons/UnPiPIcon.d.ts +4 -0
  857. package/src/components/icons/svg-icons/UnPiPIcon.d.ts.map +1 -0
  858. package/src/components/icons/svg-icons/UnPiPIcon.js +5 -0
  859. package/src/components/icons/svg-icons/VolumeMutedIcon.d.ts +4 -0
  860. package/src/components/icons/svg-icons/VolumeMutedIcon.d.ts.map +1 -0
  861. package/src/components/icons/svg-icons/VolumeMutedIcon.js +3 -0
  862. package/src/components/icons/svg-icons/VolumeOneIcon.d.ts +4 -0
  863. package/src/components/icons/svg-icons/VolumeOneIcon.d.ts.map +1 -0
  864. package/src/components/icons/svg-icons/VolumeOneIcon.js +3 -0
  865. package/src/components/icons/svg-icons/VolumeThreeIcon.d.ts +4 -0
  866. package/src/components/icons/svg-icons/VolumeThreeIcon.d.ts.map +1 -0
  867. package/src/components/icons/svg-icons/VolumeThreeIcon.js +3 -0
  868. package/src/components/icons/svg-icons/VolumeTwoIcon.d.ts +4 -0
  869. package/src/components/icons/svg-icons/VolumeTwoIcon.d.ts.map +1 -0
  870. package/src/components/icons/svg-icons/VolumeTwoIcon.js +3 -0
  871. package/src/components/legacy.d.ts +13 -0
  872. package/src/components/legacy.d.ts.map +1 -0
  873. package/src/components/legacy.js +52 -0
  874. package/src/components/media-metadata-display.d.ts +11 -0
  875. package/src/components/media-metadata-display.d.ts.map +1 -0
  876. package/src/components/media-metadata-display.js +20 -0
  877. package/src/components/media-player-audio.d.ts +9 -0
  878. package/src/components/media-player-audio.d.ts.map +1 -0
  879. package/src/components/media-player-audio.js +18 -0
  880. package/src/components/media-player-controls.d.ts +23 -0
  881. package/src/components/media-player-controls.d.ts.map +1 -0
  882. package/src/components/media-player-controls.js +150 -0
  883. package/src/components/media-player-error.d.ts +16 -0
  884. package/src/components/media-player-error.d.ts.map +1 -0
  885. package/src/components/media-player-error.js +85 -0
  886. package/src/components/media-player-fullscreen.d.ts +12 -0
  887. package/src/components/media-player-fullscreen.d.ts.map +1 -0
  888. package/src/components/media-player-fullscreen.js +68 -0
  889. package/src/components/media-player-hls.d.ts +23 -0
  890. package/src/components/media-player-hls.d.ts.map +1 -0
  891. package/src/components/media-player-hls.js +20 -0
  892. package/src/components/media-player-loading.d.ts +12 -0
  893. package/src/components/media-player-loading.d.ts.map +1 -0
  894. package/src/components/media-player-loading.js +53 -0
  895. package/src/components/media-player-play.d.ts +11 -0
  896. package/src/components/media-player-play.d.ts.map +1 -0
  897. package/src/components/media-player-play.js +44 -0
  898. package/src/components/media-player-root.d.ts +28 -0
  899. package/src/components/media-player-root.d.ts.map +1 -0
  900. package/src/components/media-player-root.js +243 -0
  901. package/src/components/media-player-seek.d.ts +15 -0
  902. package/src/components/media-player-seek.d.ts.map +1 -0
  903. package/src/components/media-player-seek.js +92 -0
  904. package/src/components/media-player-time.d.ts +12 -0
  905. package/src/components/media-player-time.d.ts.map +1 -0
  906. package/src/components/media-player-time.js +57 -0
  907. package/src/components/media-player-tooltip.d.ts +13 -0
  908. package/src/components/media-player-tooltip.d.ts.map +1 -0
  909. package/src/components/media-player-tooltip.js +14 -0
  910. package/src/components/media-player-video.d.ts +9 -0
  911. package/src/components/media-player-video.d.ts.map +1 -0
  912. package/src/components/media-player-video.js +18 -0
  913. package/src/components/media-player-volume.d.ts +13 -0
  914. package/src/components/media-player-volume.d.ts.map +1 -0
  915. package/src/components/media-player-volume.js +88 -0
  916. package/src/components/media-player.d.ts +3 -0
  917. package/src/components/media-player.d.ts.map +1 -0
  918. package/src/components/media-player.js +67 -0
  919. package/src/components/media-suspense.d.ts +78 -0
  920. package/src/components/media-suspense.d.ts.map +1 -0
  921. package/src/components/media-suspense.js +173 -0
  922. package/src/components/player-settings-form.d.ts +8 -0
  923. package/src/components/player-settings-form.d.ts.map +1 -0
  924. package/src/components/player-settings-form.js +46 -0
  925. package/src/components/react-player-wrapper.d.ts +64 -0
  926. package/src/components/react-player-wrapper.d.ts.map +1 -0
  927. package/src/components/react-player-wrapper.js +163 -0
  928. package/src/components/simple-video-player.d.ts +9 -0
  929. package/src/components/simple-video-player.d.ts.map +1 -0
  930. package/src/components/simple-video-player.js +41 -0
  931. package/src/components/ui/enhanced-seek-bar.d.ts +3 -0
  932. package/src/components/ui/enhanced-seek-bar.d.ts.map +1 -0
  933. package/src/components/ui/enhanced-seek-bar.js +112 -0
  934. package/src/components/ui/fullscreen-button.d.ts +3 -0
  935. package/src/components/ui/fullscreen-button.d.ts.map +1 -0
  936. package/src/components/ui/fullscreen-button.js +21 -0
  937. package/src/components/ui/media-resource-preloader.d.ts +21 -0
  938. package/src/components/ui/media-resource-preloader.d.ts.map +1 -0
  939. package/src/components/ui/media-resource-preloader.js +295 -0
  940. package/src/components/ui/play-button.d.ts +3 -0
  941. package/src/components/ui/play-button.d.ts.map +1 -0
  942. package/src/components/ui/play-button.js +26 -0
  943. package/src/components/ui/seek-bar.d.ts +3 -0
  944. package/src/components/ui/seek-bar.d.ts.map +1 -0
  945. package/src/components/ui/seek-bar.js +54 -0
  946. package/src/components/ui/time-display.d.ts +3 -0
  947. package/src/components/ui/time-display.d.ts.map +1 -0
  948. package/src/components/ui/time-display.js +18 -0
  949. package/src/components/ui/volume-control.d.ts +3 -0
  950. package/src/components/ui/volume-control.d.ts.map +1 -0
  951. package/src/components/ui/volume-control.js +71 -0
  952. package/src/components/unified/base-media-player.d.ts +18 -0
  953. package/src/components/unified/base-media-player.d.ts.map +1 -0
  954. package/src/components/unified/base-media-player.js +104 -0
  955. package/src/components/unified/media-player.d.ts +37 -0
  956. package/src/components/unified/media-player.d.ts.map +1 -0
  957. package/src/components/unified/media-player.js +41 -0
  958. package/src/components/variants/minimal/AccessibleMinimalPlayer.d.ts +42 -0
  959. package/src/components/variants/minimal/AccessibleMinimalPlayer.d.ts.map +1 -0
  960. package/src/components/variants/minimal/AccessibleMinimalPlayer.js +322 -0
  961. package/src/components/variants/minimal/EnhancedMinimalMediaPlayer.d.ts +44 -0
  962. package/src/components/variants/minimal/EnhancedMinimalMediaPlayer.d.ts.map +1 -0
  963. package/src/components/variants/minimal/EnhancedMinimalMediaPlayer.js +280 -0
  964. package/src/components/variants/minimal/MinimalControls.d.ts +19 -0
  965. package/src/components/variants/minimal/MinimalControls.d.ts.map +1 -0
  966. package/src/components/variants/minimal/MinimalControls.js +19 -0
  967. package/src/components/variants/minimal/MinimalLoading.d.ts +10 -0
  968. package/src/components/variants/minimal/MinimalLoading.d.ts.map +1 -0
  969. package/src/components/variants/minimal/MinimalLoading.js +6 -0
  970. package/src/components/variants/minimal/MinimalMediaPlayer.d.ts +38 -0
  971. package/src/components/variants/minimal/MinimalMediaPlayer.d.ts.map +1 -0
  972. package/src/components/variants/minimal/MinimalMediaPlayer.js +135 -0
  973. package/src/components/variants/minimal/MinimalOverlay.d.ts +11 -0
  974. package/src/components/variants/minimal/MinimalOverlay.d.ts.map +1 -0
  975. package/src/components/variants/minimal/MinimalOverlay.js +15 -0
  976. package/src/components/variants/minimal/MinimalPlayButton.d.ts +9 -0
  977. package/src/components/variants/minimal/MinimalPlayButton.d.ts.map +1 -0
  978. package/src/components/variants/minimal/MinimalPlayButton.js +29 -0
  979. package/src/components/variants/minimal/MinimalSeekBar.d.ts +7 -0
  980. package/src/components/variants/minimal/MinimalSeekBar.d.ts.map +1 -0
  981. package/src/components/variants/minimal/MinimalSeekBar.js +73 -0
  982. package/src/components/variants/minimal/MinimalVolumeControl.d.ts +7 -0
  983. package/src/components/variants/minimal/MinimalVolumeControl.d.ts.map +1 -0
  984. package/src/components/variants/minimal/MinimalVolumeControl.js +29 -0
  985. package/src/components/variants/minimal/SimpleMinimalPlayer.d.ts +22 -0
  986. package/src/components/variants/minimal/SimpleMinimalPlayer.d.ts.map +1 -0
  987. package/src/components/variants/minimal/SimpleMinimalPlayer.js +51 -0
  988. package/src/components/variants/minimal/SimpleMinimalPlayer.tsx +0 -1
  989. package/src/components/variants/minimal/components/CenterPlayButton.d.ts +7 -0
  990. package/src/components/variants/minimal/components/CenterPlayButton.d.ts.map +1 -0
  991. package/src/components/variants/minimal/components/CenterPlayButton.js +8 -0
  992. package/src/components/variants/minimal/components/ControlBar.d.ts +43 -0
  993. package/src/components/variants/minimal/components/ControlBar.d.ts.map +1 -0
  994. package/src/components/variants/minimal/components/ControlBar.js +10 -0
  995. package/src/components/variants/minimal/components/EnhancedSettingsMenu.d.ts +24 -0
  996. package/src/components/variants/minimal/components/EnhancedSettingsMenu.d.ts.map +1 -0
  997. package/src/components/variants/minimal/components/EnhancedSettingsMenu.js +68 -0
  998. package/src/components/variants/minimal/components/PlaybackControls.d.ts +9 -0
  999. package/src/components/variants/minimal/components/PlaybackControls.d.ts.map +1 -0
  1000. package/src/components/variants/minimal/components/PlaybackControls.js +9 -0
  1001. package/src/components/variants/minimal/components/RightControls.d.ts +25 -0
  1002. package/src/components/variants/minimal/components/RightControls.d.ts.map +1 -0
  1003. package/src/components/variants/minimal/components/RightControls.js +40 -0
  1004. package/src/components/variants/minimal/components/SeekBar.d.ts +11 -0
  1005. package/src/components/variants/minimal/components/SeekBar.d.ts.map +1 -0
  1006. package/src/components/variants/minimal/components/SeekBar.js +43 -0
  1007. package/src/components/variants/minimal/components/SettingsDropdown.d.ts +9 -0
  1008. package/src/components/variants/minimal/components/SettingsDropdown.d.ts.map +1 -0
  1009. package/src/components/variants/minimal/components/SettingsDropdown.js +18 -0
  1010. package/src/components/variants/minimal/components/SubtitleDisplay.d.ts +7 -0
  1011. package/src/components/variants/minimal/components/SubtitleDisplay.d.ts.map +1 -0
  1012. package/src/components/variants/minimal/components/SubtitleDisplay.js +6 -0
  1013. package/src/components/variants/minimal/components/TimeDisplay.d.ts +7 -0
  1014. package/src/components/variants/minimal/components/TimeDisplay.d.ts.map +1 -0
  1015. package/src/components/variants/minimal/components/TimeDisplay.js +5 -0
  1016. package/src/components/variants/minimal/components/VideoElement.d.ts +13 -0
  1017. package/src/components/variants/minimal/components/VideoElement.d.ts.map +1 -0
  1018. package/src/components/variants/minimal/components/VideoElement.js +4 -0
  1019. package/src/components/variants/minimal/components/VolumeControl.d.ts +13 -0
  1020. package/src/components/variants/minimal/components/VolumeControl.d.ts.map +1 -0
  1021. package/src/components/variants/minimal/components/VolumeControl.js +99 -0
  1022. package/src/components/variants/minimal/index.d.ts +17 -0
  1023. package/src/components/variants/minimal/index.d.ts.map +1 -0
  1024. package/src/components/variants/minimal/index.js +8 -0
  1025. package/src/components/video-player.d.ts +3 -0
  1026. package/src/components/video-player.d.ts.map +1 -0
  1027. package/src/components/video-player.js +38 -0
  1028. package/src/context/error-handling.d.ts +72 -0
  1029. package/src/context/error-handling.d.ts.map +1 -0
  1030. package/src/context/error-handling.js +300 -0
  1031. package/src/context/media-context.d.ts +104 -0
  1032. package/src/context/media-context.d.ts.map +1 -0
  1033. package/src/context/media-context.js +121 -0
  1034. package/src/context/media-provider.d.ts +26 -0
  1035. package/src/context/media-provider.d.ts.map +1 -0
  1036. package/src/context/media-provider.js +164 -0
  1037. package/src/context/media-store.d.ts +33 -0
  1038. package/src/context/media-store.d.ts.map +1 -0
  1039. package/src/context/media-store.js +273 -0
  1040. package/src/context/persistence.d.ts +83 -0
  1041. package/src/context/persistence.d.ts.map +1 -0
  1042. package/src/context/persistence.js +356 -0
  1043. package/src/core/events/event-system.d.ts +170 -0
  1044. package/src/core/events/event-system.d.ts.map +1 -0
  1045. package/src/core/events/event-system.js +288 -0
  1046. package/src/core/events/hooks.d.ts +33 -0
  1047. package/src/core/events/hooks.d.ts.map +1 -0
  1048. package/src/core/events/hooks.js +198 -0
  1049. package/src/core/events/index.d.ts +6 -0
  1050. package/src/core/events/index.d.ts.map +1 -0
  1051. package/src/core/events/index.js +7 -0
  1052. package/src/core/events/middleware.d.ts +39 -0
  1053. package/src/core/events/middleware.d.ts.map +1 -0
  1054. package/src/core/events/middleware.js +219 -0
  1055. package/src/core/index.d.ts +8 -0
  1056. package/src/core/index.d.ts.map +1 -0
  1057. package/src/core/index.js +15 -0
  1058. package/src/core/optimization/bundle-optimizer.d.ts +44 -0
  1059. package/src/core/optimization/bundle-optimizer.d.ts.map +1 -0
  1060. package/src/core/optimization/bundle-optimizer.js +217 -0
  1061. package/src/core/performance/cicd.d.ts +8 -0
  1062. package/src/core/performance/cicd.d.ts.map +1 -0
  1063. package/src/core/performance/cicd.js +83 -0
  1064. package/src/core/performance/index.d.ts +10 -0
  1065. package/src/core/performance/index.d.ts.map +1 -0
  1066. package/src/core/performance/index.js +14 -0
  1067. package/src/core/performance/media-loading-optimizer.d.ts +105 -0
  1068. package/src/core/performance/media-loading-optimizer.d.ts.map +1 -0
  1069. package/src/core/performance/media-loading-optimizer.js +404 -0
  1070. package/src/core/performance/performance-budgets.d.ts +68 -0
  1071. package/src/core/performance/performance-budgets.d.ts.map +1 -0
  1072. package/src/core/performance/performance-budgets.js +326 -0
  1073. package/src/core/performance/performance-monitor.d.ts +95 -0
  1074. package/src/core/performance/performance-monitor.d.ts.map +1 -0
  1075. package/src/core/performance/performance-monitor.js +297 -0
  1076. package/src/core/performance/performance-testing.d.ts +69 -0
  1077. package/src/core/performance/performance-testing.d.ts.map +1 -0
  1078. package/src/core/performance/performance-testing.js +314 -0
  1079. package/src/core/plugins/base-plugin.d.ts +52 -0
  1080. package/src/core/plugins/base-plugin.d.ts.map +1 -0
  1081. package/src/core/plugins/base-plugin.js +151 -0
  1082. package/src/core/plugins/enhanced-plugin-system.d.ts +160 -0
  1083. package/src/core/plugins/enhanced-plugin-system.d.ts.map +1 -0
  1084. package/src/core/plugins/enhanced-plugin-system.js +305 -0
  1085. package/src/core/plugins/examples/analytics-plugin.d.ts +30 -0
  1086. package/src/core/plugins/examples/analytics-plugin.d.ts.map +1 -0
  1087. package/src/core/plugins/examples/analytics-plugin.js +191 -0
  1088. package/src/core/plugins/index.d.ts +8 -0
  1089. package/src/core/plugins/index.d.ts.map +1 -0
  1090. package/src/core/plugins/index.js +9 -0
  1091. package/src/core/plugins/registry.d.ts +31 -0
  1092. package/src/core/plugins/registry.d.ts.map +1 -0
  1093. package/src/core/plugins/registry.js +261 -0
  1094. package/src/core/plugins/types.d.ts +101 -0
  1095. package/src/core/plugins/types.d.ts.map +1 -0
  1096. package/src/core/plugins/types.js +31 -0
  1097. package/src/core/plugins/utils.d.ts +38 -0
  1098. package/src/core/plugins/utils.d.ts.map +1 -0
  1099. package/src/core/plugins/utils.js +274 -0
  1100. package/src/core/progressive-loading.d.ts +88 -0
  1101. package/src/core/progressive-loading.d.ts.map +1 -0
  1102. package/src/core/progressive-loading.js +239 -0
  1103. package/src/core/providers/enhanced-hls-provider.d.ts +50 -0
  1104. package/src/core/providers/enhanced-hls-provider.d.ts.map +1 -0
  1105. package/src/core/providers/enhanced-hls-provider.js +273 -0
  1106. package/src/core/providers/service-provider.d.ts +49 -0
  1107. package/src/core/providers/service-provider.d.ts.map +1 -0
  1108. package/src/core/providers/service-provider.js +105 -0
  1109. package/src/core/utils.d.ts +25 -0
  1110. package/src/core/utils.d.ts.map +1 -0
  1111. package/src/core/utils.js +21 -0
  1112. package/src/features/media-session/media-session-manager.d.ts +132 -0
  1113. package/src/features/media-session/media-session-manager.d.ts.map +1 -0
  1114. package/src/features/media-session/media-session-manager.js +331 -0
  1115. package/src/features/picture-in-picture/pip-manager.d.ts +94 -0
  1116. package/src/features/picture-in-picture/pip-manager.d.ts.map +1 -0
  1117. package/src/features/picture-in-picture/pip-manager.js +353 -0
  1118. package/src/features/playlist/playlist-manager.d.ts +208 -0
  1119. package/src/features/playlist/playlist-manager.d.ts.map +1 -0
  1120. package/src/features/playlist/playlist-manager.js +475 -0
  1121. package/src/features/subtitles/subtitle-manager.d.ts +136 -0
  1122. package/src/features/subtitles/subtitle-manager.d.ts.map +1 -0
  1123. package/src/features/subtitles/subtitle-manager.js +335 -0
  1124. package/src/features/subtitles/subtitle-parser.d.ts +60 -0
  1125. package/src/features/subtitles/subtitle-parser.d.ts.map +1 -0
  1126. package/src/features/subtitles/subtitle-parser.js +217 -0
  1127. package/src/features/thumbnails/thumbnail-generator.d.ts +136 -0
  1128. package/src/features/thumbnails/thumbnail-generator.d.ts.map +1 -0
  1129. package/src/features/thumbnails/thumbnail-generator.js +388 -0
  1130. package/src/hooks/accessibility/index.d.ts +5 -0
  1131. package/src/hooks/accessibility/index.d.ts.map +1 -0
  1132. package/src/hooks/accessibility/index.js +4 -0
  1133. package/src/hooks/accessibility/use-accessibility-preferences.d.ts +14 -0
  1134. package/src/hooks/accessibility/use-accessibility-preferences.d.ts.map +1 -0
  1135. package/src/hooks/accessibility/use-accessibility-preferences.js +156 -0
  1136. package/src/hooks/accessibility/use-focus-management.d.ts +31 -0
  1137. package/src/hooks/accessibility/use-focus-management.d.ts.map +1 -0
  1138. package/src/hooks/accessibility/use-focus-management.js +142 -0
  1139. package/src/hooks/accessibility/use-keyboard-shortcuts.d.ts +38 -0
  1140. package/src/hooks/accessibility/use-keyboard-shortcuts.d.ts.map +1 -0
  1141. package/src/hooks/accessibility/use-keyboard-shortcuts.js +101 -0
  1142. package/src/hooks/accessibility/use-screen-reader.d.ts +22 -0
  1143. package/src/hooks/accessibility/use-screen-reader.d.ts.map +1 -0
  1144. package/src/hooks/accessibility/use-screen-reader.js +148 -0
  1145. package/src/hooks/core/index.d.ts +18 -0
  1146. package/src/hooks/core/index.d.ts.map +1 -0
  1147. package/src/hooks/core/index.js +19 -0
  1148. package/src/hooks/legacy.d.ts +18 -0
  1149. package/src/hooks/legacy.d.ts.map +1 -0
  1150. package/src/hooks/legacy.js +17 -0
  1151. package/src/hooks/use-enhanced-media-player.d.ts +88 -0
  1152. package/src/hooks/use-enhanced-media-player.d.ts.map +1 -0
  1153. package/src/hooks/use-enhanced-media-player.js +395 -0
  1154. package/src/hooks/use-intelligent-preloading.d.ts +66 -0
  1155. package/src/hooks/use-intelligent-preloading.d.ts.map +1 -0
  1156. package/src/hooks/use-intelligent-preloading.js +258 -0
  1157. package/src/hooks/use-keyboard-controls.d.ts +13 -0
  1158. package/src/hooks/use-keyboard-controls.d.ts.map +1 -0
  1159. package/src/hooks/use-keyboard-controls.js +83 -0
  1160. package/src/hooks/use-media-actions.d.ts +62 -0
  1161. package/src/hooks/use-media-actions.d.ts.map +1 -0
  1162. package/src/hooks/use-media-actions.js +121 -0
  1163. package/src/hooks/use-media-metadata.d.ts +11 -0
  1164. package/src/hooks/use-media-metadata.d.ts.map +1 -0
  1165. package/src/hooks/use-media-metadata.js +74 -0
  1166. package/src/hooks/use-media-optimistic.d.ts +36 -0
  1167. package/src/hooks/use-media-optimistic.d.ts.map +1 -0
  1168. package/src/hooks/use-media-optimistic.js +205 -0
  1169. package/src/hooks/use-media-player.d.ts +31 -0
  1170. package/src/hooks/use-media-player.d.ts.map +1 -0
  1171. package/src/hooks/use-media-player.js +251 -0
  1172. package/src/hooks/use-media-state.d.ts +17 -0
  1173. package/src/hooks/use-media-state.d.ts.map +1 -0
  1174. package/src/hooks/use-media-state.js +162 -0
  1175. package/src/hooks/use-memory-optimization.d.ts +40 -0
  1176. package/src/hooks/use-memory-optimization.d.ts.map +1 -0
  1177. package/src/hooks/use-memory-optimization.js +288 -0
  1178. package/src/hooks/use-optimistic-controls.d.ts +22 -0
  1179. package/src/hooks/use-optimistic-controls.d.ts.map +1 -0
  1180. package/src/hooks/use-optimistic-controls.js +60 -0
  1181. package/src/hooks/use-optimized-media.d.ts +46 -0
  1182. package/src/hooks/use-optimized-media.d.ts.map +1 -0
  1183. package/src/hooks/use-optimized-media.js +211 -0
  1184. package/src/hooks/use-touch-gestures.d.ts +47 -0
  1185. package/src/hooks/use-touch-gestures.d.ts.map +1 -0
  1186. package/src/hooks/use-touch-gestures.js +289 -0
  1187. package/src/hooks/useEnhancedSubtitles.d.ts +39 -0
  1188. package/src/hooks/useEnhancedSubtitles.d.ts.map +1 -0
  1189. package/src/hooks/useEnhancedSubtitles.js +205 -0
  1190. package/src/hooks/useKeyboardShortcuts.d.ts +10 -0
  1191. package/src/hooks/useKeyboardShortcuts.d.ts.map +1 -0
  1192. package/src/hooks/useKeyboardShortcuts.js +59 -0
  1193. package/src/hooks/useMediaControls.d.ts +9 -0
  1194. package/src/hooks/useMediaControls.d.ts.map +1 -0
  1195. package/src/hooks/useMediaControls.js +44 -0
  1196. package/src/hooks/useScreenshot.d.ts +4 -0
  1197. package/src/hooks/useScreenshot.d.ts.map +1 -0
  1198. package/src/hooks/useScreenshot.js +56 -0
  1199. package/src/hooks/useSubtitles.d.ts +8 -0
  1200. package/src/hooks/useSubtitles.d.ts.map +1 -0
  1201. package/src/hooks/useSubtitles.js +73 -0
  1202. package/src/hooks/useVideoPlayer.d.ts +32 -0
  1203. package/src/hooks/useVideoPlayer.d.ts.map +1 -0
  1204. package/src/hooks/useVideoPlayer.js +184 -0
  1205. package/src/icons/components/FullscreenIcon.d.ts +3 -0
  1206. package/src/icons/components/FullscreenIcon.d.ts.map +1 -0
  1207. package/src/icons/components/FullscreenIcon.js +11 -0
  1208. package/src/icons/components/SettingsIcon.d.ts +3 -0
  1209. package/src/icons/components/SettingsIcon.d.ts.map +1 -0
  1210. package/src/icons/components/SettingsIcon.js +11 -0
  1211. package/src/icons/components/animated/LoadingIcon.d.ts +3 -0
  1212. package/src/icons/components/animated/LoadingIcon.d.ts.map +1 -0
  1213. package/src/icons/components/animated/LoadingIcon.js +11 -0
  1214. package/src/icons/components/animated/PlayPauseIcon.d.ts +7 -0
  1215. package/src/icons/components/animated/PlayPauseIcon.d.ts.map +1 -0
  1216. package/src/icons/components/animated/PlayPauseIcon.js +9 -0
  1217. package/src/icons/components/media/PauseIcon.d.ts +3 -0
  1218. package/src/icons/components/media/PauseIcon.d.ts.map +1 -0
  1219. package/src/icons/components/media/PauseIcon.js +12 -0
  1220. package/src/icons/components/media/PlayIcon.d.ts +3 -0
  1221. package/src/icons/components/media/PlayIcon.d.ts.map +1 -0
  1222. package/src/icons/components/media/PlayIcon.js +12 -0
  1223. package/src/icons/components/volume/VolumeIcon.d.ts +3 -0
  1224. package/src/icons/components/volume/VolumeIcon.d.ts.map +1 -0
  1225. package/src/icons/components/volume/VolumeIcon.js +11 -0
  1226. package/src/icons/components/volume/VolumeOffIcon.d.ts +3 -0
  1227. package/src/icons/components/volume/VolumeOffIcon.d.ts.map +1 -0
  1228. package/src/icons/components/volume/VolumeOffIcon.js +11 -0
  1229. package/src/icons/index.d.ts +28 -0
  1230. package/src/icons/index.d.ts.map +1 -0
  1231. package/src/icons/index.js +45 -0
  1232. package/src/icons/provider.d.ts +13 -0
  1233. package/src/icons/provider.d.ts.map +1 -0
  1234. package/src/icons/provider.js +37 -0
  1235. package/src/icons/types.d.ts +18 -0
  1236. package/src/icons/types.d.ts.map +1 -0
  1237. package/src/icons/types.js +1 -0
  1238. package/src/index-enhanced.d.ts +13 -0
  1239. package/src/index-enhanced.d.ts.map +1 -0
  1240. package/src/index-enhanced.js +16 -0
  1241. package/src/index-legacy.d.ts +81 -0
  1242. package/src/index-legacy.d.ts.map +1 -0
  1243. package/src/index-legacy.js +97 -0
  1244. package/src/index.d.ts +38 -0
  1245. package/src/index.d.ts.map +1 -0
  1246. package/src/index.js +90 -0
  1247. package/src/index.minimal.d.ts +2 -0
  1248. package/src/index.minimal.d.ts.map +1 -0
  1249. package/src/index.minimal.js +3 -0
  1250. package/src/index.minimal.ts +4 -0
  1251. package/src/lib/deprecation.d.ts +7 -0
  1252. package/src/lib/deprecation.d.ts.map +1 -0
  1253. package/src/lib/deprecation.js +31 -0
  1254. package/src/lib/format-time.d.ts +9 -0
  1255. package/src/lib/format-time.d.ts.map +1 -0
  1256. package/src/lib/format-time.js +32 -0
  1257. package/src/lib/index.d.ts +3 -0
  1258. package/src/lib/index.d.ts.map +1 -0
  1259. package/src/lib/index.js +3 -0
  1260. package/src/lib/utils.d.ts +3 -0
  1261. package/src/lib/utils.d.ts.map +1 -0
  1262. package/src/lib/utils.js +5 -0
  1263. package/src/test/setup.d.ts +2 -0
  1264. package/src/test/setup.d.ts.map +1 -0
  1265. package/src/test/setup.js +65 -0
  1266. package/src/types/events.d.ts +41 -0
  1267. package/src/types/events.d.ts.map +1 -0
  1268. package/src/types/events.js +2 -0
  1269. package/src/types/formats.d.ts +45 -0
  1270. package/src/types/formats.d.ts.map +1 -0
  1271. package/src/types/formats.js +63 -0
  1272. package/src/types/index.d.ts +128 -0
  1273. package/src/types/index.d.ts.map +1 -0
  1274. package/src/types/index.js +4 -0
  1275. package/dist/context/media.js +0 -2
  1276. package/dist/context/media.js.map +0 -1
  1277. package/dist/context/media.mjs +0 -15
  1278. package/dist/context/media.mjs.map +0 -1
  1279. package/dist/context/store.js +0 -2
  1280. package/dist/context/store.js.map +0 -1
  1281. package/dist/context/store.mjs +0 -5
  1282. package/dist/context/store.mjs.map +0 -1
  1283. package/dist/context-BMteAJDN.js +0 -1140
  1284. package/dist/context-BMteAJDN.js.map +0 -1
  1285. package/dist/context-DCJ_scmO.cjs +0 -23
  1286. package/dist/context-DCJ_scmO.cjs.map +0 -1
  1287. package/dist/core-events-B5W_j8yU.js +0 -480
  1288. package/dist/core-events-B5W_j8yU.js.map +0 -1
  1289. package/dist/core-events-CN0-Vhhq.cjs +0 -2
  1290. package/dist/core-events-CN0-Vhhq.cjs.map +0 -1
  1291. package/dist/core-plugins-Bq9KLany.js +0 -696
  1292. package/dist/core-plugins-Bq9KLany.js.map +0 -1
  1293. package/dist/core-plugins-CPDSHMiQ.cjs +0 -2
  1294. package/dist/core-plugins-CPDSHMiQ.cjs.map +0 -1
  1295. package/dist/core.js +0 -37
  1296. package/dist/core.js.map +0 -1
  1297. package/dist/core.mjs +0 -1217
  1298. package/dist/core.mjs.map +0 -1
  1299. package/dist/enhanced-components-DHv0MFvG.js +0 -1073
  1300. package/dist/enhanced-components-DHv0MFvG.js.map +0 -1
  1301. package/dist/enhanced-components-DTIObgB7.cjs +0 -2
  1302. package/dist/enhanced-components-DTIObgB7.cjs.map +0 -1
  1303. package/dist/hooks-C_r8wexn.cjs +0 -4
  1304. package/dist/hooks-C_r8wexn.cjs.map +0 -1
  1305. package/dist/hooks-Da2wVXlF.js +0 -1630
  1306. package/dist/hooks-Da2wVXlF.js.map +0 -1
  1307. package/dist/index.js.map +0 -1
  1308. package/dist/index.mjs.map +0 -1
  1309. package/dist/minimal-components-DSq5sQpy.js +0 -2002
  1310. package/dist/minimal-components-DSq5sQpy.js.map +0 -1
  1311. package/dist/minimal-components-DflWiihN.cjs +0 -2
  1312. package/dist/minimal-components-DflWiihN.cjs.map +0 -1
  1313. package/dist/minimal-components.css +0 -1
  1314. package/dist/performance-monitor-CUW6f5ll.cjs +0 -2
  1315. package/dist/performance-monitor-CUW6f5ll.cjs.map +0 -1
  1316. package/dist/performance-monitor-rMW1RgV3.js +0 -302
  1317. package/dist/performance-monitor-rMW1RgV3.js.map +0 -1
  1318. package/dist/utils-BnscpYYd.js +0 -2798
  1319. package/dist/utils-BnscpYYd.js.map +0 -1
  1320. package/dist/utils-D_czS_0K.cjs +0 -9
  1321. package/dist/utils-D_czS_0K.cjs.map +0 -1
  1322. package/dist/utils.js +0 -2
  1323. package/dist/utils.js.map +0 -1
  1324. package/dist/utils.mjs +0 -7
  1325. package/dist/utils.mjs.map +0 -1
  1326. /package/dist/{mona-loading.gif → src/assets/mona-loading.gif} +0 -0
package/dist/core.mjs.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"core.mjs","sources":["../src/core/performance/performance-testing.ts","../src/core/performance/performance-budgets.ts","../src/core/performance/media-loading-optimizer.ts","../src/core/providers/service-provider.tsx","../src/core/utils.tsx","../src/core/progressive-loading.tsx","../src/core/index.ts"],"sourcesContent":["import { performanceMonitor, PerformanceRegressionDetector } from './performance-monitor';\nimport type { PerformanceMetrics } from './performance-monitor';\n\n// Performance test configuration\nexport interface PerformanceTestConfig {\n name: string;\n iterations: number;\n warmupIterations: number;\n timeout: number;\n expectedThreshold: {\n renderTime: number;\n memoryUsage: number;\n };\n}\n\n// Performance test result\nexport interface PerformanceTestResult {\n testName: string;\n passed: boolean;\n metrics: {\n averageRenderTime: number;\n minRenderTime: number;\n maxRenderTime: number;\n memoryUsage: number;\n iterations: number;\n };\n threshold: PerformanceTestConfig['expectedThreshold'];\n error?: string;\n}\n\n// Performance benchmark suite\nexport class PerformanceBenchmark {\n private results: PerformanceTestResult[] = [];\n private regressionDetector = new PerformanceRegressionDetector();\n\n async runTest(\n config: PerformanceTestConfig,\n testFunction: () => any | Promise<any>\n ): Promise<PerformanceTestResult> {\n const renderTimes: number[] = [];\n let memoryBefore = 0;\n let memoryAfter = 0;\n let error: string | undefined;\n\n try {\n // Warmup iterations\n for (let i = 0; i < config.warmupIterations; i++) {\n await testFunction();\n }\n\n // Force garbage collection if available\n if (global.gc) {\n global.gc();\n }\n\n memoryBefore = this.getMemoryUsage();\n\n // Main test iterations\n for (let i = 0; i < config.iterations; i++) {\n const startTime = performance.now();\n await testFunction();\n const endTime = performance.now();\n renderTimes.push(endTime - startTime);\n }\n\n memoryAfter = this.getMemoryUsage();\n\n } catch (err) {\n error = err instanceof Error ? err.message : String(err);\n }\n\n const averageRenderTime = renderTimes.reduce((sum, time) => sum + time, 0) / renderTimes.length;\n const minRenderTime = Math.min(...renderTimes);\n const maxRenderTime = Math.max(...renderTimes);\n const memoryUsage = memoryAfter - memoryBefore;\n\n const passed = !error && \n averageRenderTime <= config.expectedThreshold.renderTime &&\n memoryUsage <= config.expectedThreshold.memoryUsage;\n\n const result: PerformanceTestResult = {\n testName: config.name,\n passed,\n metrics: {\n averageRenderTime,\n minRenderTime: isFinite(minRenderTime) ? minRenderTime : 0,\n maxRenderTime: isFinite(maxRenderTime) ? maxRenderTime : 0,\n memoryUsage,\n iterations: config.iterations\n },\n threshold: config.expectedThreshold,\n error\n };\n\n this.results.push(result);\n return result;\n }\n\n private getMemoryUsage(): number {\n if ('memory' in performance) {\n return (performance as any).memory.usedJSHeapSize || 0;\n }\n return 0;\n }\n\n // Component rendering performance test\n async testComponentRender(\n componentName: string,\n renderFunction: () => any,\n expectedRenderTime = 16 // 60fps target\n ): Promise<PerformanceTestResult> {\n const config: PerformanceTestConfig = {\n name: `${componentName} Render Performance`,\n iterations: 100,\n warmupIterations: 10,\n timeout: 5000,\n expectedThreshold: {\n renderTime: expectedRenderTime,\n memoryUsage: 1024 * 1024 // 1MB\n }\n };\n\n return this.runTest(config, renderFunction);\n }\n\n // Bundle loading performance test\n async testBundleLoading(\n bundlePath: string,\n expectedLoadTime = 1000 // 1 second\n ): Promise<PerformanceTestResult> {\n const config: PerformanceTestConfig = {\n name: `Bundle Loading: ${bundlePath}`,\n iterations: 5,\n warmupIterations: 1,\n timeout: 10000,\n expectedThreshold: {\n renderTime: expectedLoadTime,\n memoryUsage: 5 * 1024 * 1024 // 5MB\n }\n };\n\n return this.runTest(config, async () => {\n // Simulate bundle loading\n const startTime = performance.now();\n try {\n // Use fetch instead of dynamic import to avoid bundler issues\n const response = await fetch(bundlePath);\n if (!response.ok) {\n throw new Error(`Failed to load bundle: ${response.status}`);\n }\n await response.blob(); // Consume the response\n } catch (error) {\n console.warn(`Bundle loading test failed for ${bundlePath}:`, error);\n // Return a mock time for testing purposes\n }\n const endTime = performance.now();\n return endTime - startTime;\n });\n }\n\n // Memory leak detection test\n async testMemoryLeaks(\n testFunction: () => any,\n iterations = 1000\n ): Promise<PerformanceTestResult> {\n const config: PerformanceTestConfig = {\n name: 'Memory Leak Detection',\n iterations,\n warmupIterations: 100,\n timeout: 30000,\n expectedThreshold: {\n renderTime: Infinity, // Not testing render time\n memoryUsage: 10 * 1024 * 1024 // 10MB max increase\n }\n };\n\n const memoryBefore = this.getMemoryUsage();\n \n const result = await this.runTest(config, testFunction);\n \n const memoryAfter = this.getMemoryUsage();\n const memoryIncrease = memoryAfter - memoryBefore;\n \n // Check for memory leaks (memory should not increase significantly)\n const hasMemoryLeak = memoryIncrease > config.expectedThreshold.memoryUsage;\n \n return {\n ...result,\n passed: result.passed && !hasMemoryLeak,\n error: hasMemoryLeak ? `Potential memory leak detected: ${Math.round(memoryIncrease / 1024 / 1024)}MB increase` : result.error\n };\n }\n\n // Interaction delay test\n async testInteractionDelay(\n interactionFunction: () => any,\n expectedDelay = 100 // 100ms\n ): Promise<PerformanceTestResult> {\n const config: PerformanceTestConfig = {\n name: 'Interaction Delay',\n iterations: 50,\n warmupIterations: 5,\n timeout: 5000,\n expectedThreshold: {\n renderTime: expectedDelay,\n memoryUsage: 1024 * 1024 // 1MB\n }\n };\n\n return this.runTest(config, interactionFunction);\n }\n\n // Regression testing\n async runRegressionTests(\n currentMetrics: PerformanceMetrics,\n baselineMetrics?: PerformanceMetrics\n ): Promise<{\n passed: boolean;\n regressions: ReturnType<PerformanceRegressionDetector['detectRegression']>;\n }> {\n if (baselineMetrics) {\n this.regressionDetector.setBaseline(baselineMetrics);\n }\n\n const regressions = this.regressionDetector.detectRegression(currentMetrics);\n const passed = regressions.length === 0;\n\n return { passed, regressions };\n }\n\n // Get all test results\n getResults(): PerformanceTestResult[] {\n return [...this.results];\n }\n\n // Get test summary\n getSummary(): {\n totalTests: number;\n passedTests: number;\n failedTests: number;\n passRate: number;\n } {\n const totalTests = this.results.length;\n const passedTests = this.results.filter(result => result.passed).length;\n const failedTests = totalTests - passedTests;\n const passRate = totalTests > 0 ? (passedTests / totalTests) * 100 : 0;\n\n return { totalTests, passedTests, failedTests, passRate };\n }\n\n // Clear test results\n clearResults(): void {\n this.results = [];\n }\n\n // Generate performance report\n generateReport(): string {\n const summary = this.getSummary();\n let report = `Performance Test Report\\n`;\n report += `========================\\n\\n`;\n report += `Total Tests: ${summary.totalTests}\\n`;\n report += `Passed: ${summary.passedTests}\\n`;\n report += `Failed: ${summary.failedTests}\\n`;\n report += `Pass Rate: ${summary.passRate.toFixed(1)}%\\n\\n`;\n\n if (this.results.length > 0) {\n report += `Detailed Results:\\n`;\n report += `-----------------\\n\\n`;\n\n this.results.forEach((result, index) => {\n report += `${index + 1}. ${result.testName}\\n`;\n report += ` Status: ${result.passed ? 'PASS' : 'FAIL'}\\n`;\n report += ` Average Render Time: ${result.metrics.averageRenderTime.toFixed(2)}ms\\n`;\n report += ` Min/Max Render Time: ${result.metrics.minRenderTime.toFixed(2)}ms / ${result.metrics.maxRenderTime.toFixed(2)}ms\\n`;\n report += ` Memory Usage: ${Math.round(result.metrics.memoryUsage / 1024)} KB\\n`;\n report += ` Iterations: ${result.metrics.iterations}\\n`;\n \n if (result.error) {\n report += ` Error: ${result.error}\\n`;\n }\n \n report += `\\n`;\n });\n }\n\n return report;\n }\n}\n\n// Global performance benchmark instance\nexport const performanceBenchmark = new PerformanceBenchmark();\n\n// Utility functions for common performance tests\nexport const performanceTestUtils = {\n // Test component rendering performance\n async testComponent(\n Component: any,\n props: any = {},\n expectedRenderTime = 16\n ): Promise<PerformanceTestResult> {\n return performanceBenchmark.testComponentRender(\n Component.displayName || Component.name || 'Component',\n () => {\n // This would need React Testing Library in a real test environment\n // For now, we'll simulate component rendering\n return { type: Component, props }; // Mock element\n },\n expectedRenderTime\n );\n },\n\n // Test hook performance\n async testHook(\n hookFunction: () => any,\n hookName: string,\n expectedExecutionTime = 1\n ): Promise<PerformanceTestResult> {\n const config: PerformanceTestConfig = {\n name: `Hook Performance: ${hookName}`,\n iterations: 1000,\n warmupIterations: 100,\n timeout: 5000,\n expectedThreshold: {\n renderTime: expectedExecutionTime,\n memoryUsage: 1024 * 1024 // 1MB\n }\n };\n\n return performanceBenchmark.runTest(config, hookFunction);\n },\n\n // Test async operation performance\n async testAsyncOperation(\n operation: () => Promise<any>,\n operationName: string,\n expectedTime = 1000\n ): Promise<PerformanceTestResult> {\n const config: PerformanceTestConfig = {\n name: `Async Operation: ${operationName}`,\n iterations: 10,\n warmupIterations: 2,\n timeout: 30000,\n expectedThreshold: {\n renderTime: expectedTime,\n memoryUsage: 2 * 1024 * 1024 // 2MB\n }\n };\n\n return performanceBenchmark.runTest(config, operation);\n },\n\n // Test bundle size impact\n async measureBundleImpact(\n beforeFunction: () => void,\n afterFunction: () => void,\n featureName: string\n ): Promise<{\n bundleIncrease: number;\n memoryIncrease: number;\n renderTimeImpact: number;\n }> {\n const beforeMemory = (performance as any).memory?.usedJSHeapSize || 0;\n const beforeTime = performance.now();\n \n beforeFunction();\n \n const midMemory = (performance as any).memory?.usedJSHeapSize || 0;\n const midTime = performance.now();\n \n afterFunction();\n \n const afterMemory = (performance as any).memory?.usedJSHeapSize || 0;\n const afterTime = performance.now();\n\n return {\n bundleIncrease: afterMemory - beforeMemory,\n memoryIncrease: midMemory - beforeMemory,\n renderTimeImpact: (afterTime - midTime) - (midTime - beforeTime)\n };\n }\n};\n\n// Performance testing framework\nexport class PerformanceTestFramework {\n private benchmark = new PerformanceBenchmark();\n private suites: Map<string, PerformanceTestConfig[]> = new Map();\n\n // Register a test suite\n registerSuite(suiteName: string, tests: PerformanceTestConfig[]) {\n this.suites.set(suiteName, tests);\n }\n\n // Run all tests in a suite\n async runSuite(\n suiteName: string,\n testImplementations: Map<string, () => any>\n ): Promise<PerformanceTestResult[]> {\n const tests = this.suites.get(suiteName);\n if (!tests) {\n throw new Error(`Test suite '${suiteName}' not found`);\n }\n\n const results: PerformanceTestResult[] = [];\n\n for (const test of tests) {\n const implementation = testImplementations.get(test.name);\n if (!implementation) {\n console.warn(`No implementation found for test '${test.name}'`);\n continue;\n }\n\n const result = await this.benchmark.runTest(test, implementation);\n results.push(result);\n }\n\n return results;\n }\n\n // Run all registered test suites\n async runAllSuites(\n implementations: Map<string, Map<string, () => any>>\n ): Promise<Map<string, PerformanceTestResult[]>> {\n const allResults = new Map<string, PerformanceTestResult[]>();\n\n for (const [suiteName] of this.suites) {\n const suiteImplementations = implementations.get(suiteName);\n if (!suiteImplementations) {\n console.warn(`No implementations found for suite '${suiteName}'`);\n continue;\n }\n\n const results = await this.runSuite(suiteName, suiteImplementations);\n allResults.set(suiteName, results);\n }\n\n return allResults;\n }\n\n // Generate comprehensive report\n generateComprehensiveReport(): string {\n const summary = this.benchmark.getSummary();\n let report = this.benchmark.generateReport();\n\n // Add suite breakdown if available\n if (this.suites.size > 0) {\n report += `\\nTest Suites:\\n`;\n report += `============\\n\\n`;\n\n for (const [suiteName, tests] of this.suites) {\n report += `Suite: ${suiteName}\\n`;\n report += `Tests: ${tests.length}\\n\\n`;\n }\n }\n\n return report;\n }\n}\n\nexport const performanceTestFramework = new PerformanceTestFramework();","// Performance budget configuration\nexport interface PerformanceBudget {\n name: string;\n category: 'bundle' | 'runtime' | 'network' | 'memory';\n limit: number;\n unit: 'bytes' | 'ms' | 'score' | 'percent';\n severity: 'error' | 'warning' | 'info';\n description: string;\n}\n\n// Performance budget violation\nexport interface BudgetViolation {\n budget: PerformanceBudget;\n actualValue: number;\n overageAmount: number;\n overagePercentage: number;\n timestamp: number;\n}\n\n// Alert configuration\nexport interface AlertConfig {\n enabled: boolean;\n channels: AlertChannel[];\n threshold: number; // Number of violations before alerting\n cooldown: number; // Minimum time between alerts (ms)\n}\n\nexport interface AlertChannel {\n type: 'console' | 'webhook' | 'email' | 'slack';\n config: {\n url?: string;\n email?: string;\n token?: string;\n channel?: string;\n };\n}\n\n// Default performance budgets for media player\nexport const defaultPerformanceBudgets: PerformanceBudget[] = [\n // Bundle size budgets\n {\n name: 'Main Bundle Size (ESM)',\n category: 'bundle',\n limit: 250 * 1024, // 250KB\n unit: 'bytes',\n severity: 'error',\n description: 'Main bundle should stay under 250KB for fast initial loading'\n },\n {\n name: 'Main Bundle Size (CJS)',\n category: 'bundle', \n limit: 200 * 1024, // 200KB\n unit: 'bytes',\n severity: 'error',\n description: 'CJS bundle should be smaller due to better compression'\n },\n {\n name: 'Core Module Size',\n category: 'bundle',\n limit: 15 * 1024, // 15KB\n unit: 'bytes',\n severity: 'warning',\n description: 'Core architecture should remain lightweight'\n },\n {\n name: 'Enhanced Components Size',\n category: 'bundle',\n limit: 40 * 1024, // 40KB\n unit: 'bytes',\n severity: 'warning',\n description: 'Enhanced components bundle size'\n },\n \n // Runtime performance budgets\n {\n name: 'Component Render Time',\n category: 'runtime',\n limit: 16, // 16ms for 60fps\n unit: 'ms',\n severity: 'error',\n description: 'Component rendering should complete within one frame'\n },\n {\n name: 'First Input Delay',\n category: 'runtime',\n limit: 100, // 100ms\n unit: 'ms',\n severity: 'error',\n description: 'First Input Delay should be under 100ms for good UX'\n },\n {\n name: 'Largest Contentful Paint',\n category: 'runtime',\n limit: 2500, // 2.5s\n unit: 'ms',\n severity: 'warning',\n description: 'LCP should be under 2.5s for good Core Web Vitals score'\n },\n {\n name: 'Cumulative Layout Shift',\n category: 'runtime',\n limit: 0.1,\n unit: 'score',\n severity: 'warning',\n description: 'CLS should be under 0.1 for good visual stability'\n },\n \n // Memory budgets\n {\n name: 'Memory Usage',\n category: 'memory',\n limit: 50 * 1024 * 1024, // 50MB\n unit: 'bytes',\n severity: 'warning',\n description: 'Memory usage should stay under 50MB for good performance'\n },\n {\n name: 'Memory Increase Per Operation',\n category: 'memory',\n limit: 1024 * 1024, // 1MB\n unit: 'bytes',\n severity: 'error',\n description: 'Each operation should not increase memory by more than 1MB'\n },\n \n // Network budgets (for media loading)\n {\n name: 'Media Load Time',\n category: 'network',\n limit: 3000, // 3s\n unit: 'ms',\n severity: 'warning',\n description: 'Media should start loading within 3 seconds'\n }\n];\n\n// Performance budget monitor\nexport class PerformanceBudgetMonitor {\n private budgets: Map<string, PerformanceBudget> = new Map();\n private violations: BudgetViolation[] = [];\n private alertConfig: AlertConfig;\n private lastAlertTime = 0;\n\n constructor(\n budgets: PerformanceBudget[] = defaultPerformanceBudgets,\n alertConfig: AlertConfig = {\n enabled: true,\n channels: [{ type: 'console', config: {} }],\n threshold: 1,\n cooldown: 5 * 60 * 1000 // 5 minutes\n }\n ) {\n budgets.forEach(budget => {\n this.budgets.set(budget.name, budget);\n });\n this.alertConfig = alertConfig;\n }\n\n // Check a single metric against budgets\n checkMetric(\n metricName: string,\n value: number,\n category: PerformanceBudget['category'] = 'runtime'\n ): BudgetViolation[] {\n const violations: BudgetViolation[] = [];\n \n for (const [name, budget] of this.budgets) {\n if (budget.category === category && \n (name.includes(metricName) || metricName.includes(name.split(' ')[0]?.toLowerCase() || ''))) {\n \n if (value > budget.limit) {\n const violation: BudgetViolation = {\n budget,\n actualValue: value,\n overageAmount: value - budget.limit,\n overagePercentage: ((value - budget.limit) / budget.limit) * 100,\n timestamp: Date.now()\n };\n \n violations.push(violation);\n this.violations.push(violation);\n }\n }\n }\n\n if (violations.length > 0) {\n this.handleViolations(violations);\n }\n\n return violations;\n }\n\n // Check bundle sizes\n async checkBundleSizes(distPath: string): Promise<BudgetViolation[]> {\n const violations: BudgetViolation[] = [];\n \n // Only check bundle sizes in Node.js environment\n if (typeof window !== 'undefined' || typeof process === 'undefined') {\n console.warn('Bundle size checking is only available in Node.js environment');\n return violations;\n }\n \n // Bundle size checking is disabled in browser environments\n console.warn('Bundle size checking disabled - use Node.js cicdIntegration from @rp/baroiplayer/core/performance/cicd for CI/CD environments');\n\n return violations;\n }\n\n // Check runtime performance\n checkRuntimeMetrics(metrics: {\n renderTime?: number;\n fid?: number;\n lcp?: number;\n cls?: number;\n memoryUsage?: number;\n mediaLoadTime?: number;\n }): BudgetViolation[] {\n const allViolations: BudgetViolation[] = [];\n\n if (metrics.renderTime !== undefined) {\n allViolations.push(...this.checkMetric('Component Render Time', metrics.renderTime, 'runtime'));\n }\n \n if (metrics.fid !== undefined) {\n allViolations.push(...this.checkMetric('First Input Delay', metrics.fid, 'runtime'));\n }\n \n if (metrics.lcp !== undefined) {\n allViolations.push(...this.checkMetric('Largest Contentful Paint', metrics.lcp, 'runtime'));\n }\n \n if (metrics.cls !== undefined) {\n allViolations.push(...this.checkMetric('Cumulative Layout Shift', metrics.cls, 'runtime'));\n }\n \n if (metrics.memoryUsage !== undefined) {\n allViolations.push(...this.checkMetric('Memory Usage', metrics.memoryUsage, 'memory'));\n }\n \n if (metrics.mediaLoadTime !== undefined) {\n allViolations.push(...this.checkMetric('Media Load Time', metrics.mediaLoadTime, 'network'));\n }\n\n return allViolations;\n }\n\n // Handle budget violations\n private async handleViolations(violations: BudgetViolation[]) {\n if (!this.alertConfig.enabled) return;\n \n const now = Date.now();\n const errorViolations = violations.filter(v => v.budget.severity === 'error');\n \n // Check if we should send an alert based on threshold and cooldown\n if (errorViolations.length >= this.alertConfig.threshold &&\n now - this.lastAlertTime >= this.alertConfig.cooldown) {\n \n await this.sendAlerts(violations);\n this.lastAlertTime = now;\n }\n }\n\n // Send alerts through configured channels\n private async sendAlerts(violations: BudgetViolation[]) {\n const message = this.formatAlertMessage(violations);\n \n for (const channel of this.alertConfig.channels) {\n try {\n await this.sendAlert(channel, message);\n } catch (error) {\n console.error(`Failed to send alert via ${channel.type}:`, error);\n }\n }\n }\n\n // Format alert message\n private formatAlertMessage(violations: BudgetViolation[]): string {\n let message = `🚨 Performance Budget Violations Detected!\\n\\n`;\n \n violations.forEach(violation => {\n const { budget, actualValue, overageAmount, overagePercentage } = violation;\n const unit = this.getUnitDisplay(budget.unit);\n \n message += `❌ ${budget.name}\\n`;\n message += ` Limit: ${this.formatValue(budget.limit, budget.unit)}\\n`;\n message += ` Actual: ${this.formatValue(actualValue, budget.unit)}\\n`;\n message += ` Overage: ${this.formatValue(overageAmount, budget.unit)} (+${overagePercentage.toFixed(1)}%)\\n`;\n message += ` Severity: ${budget.severity.toUpperCase()}\\n\\n`;\n });\n \n message += `Time: ${new Date().toISOString()}\\n`;\n message += `Total Violations: ${violations.length}`;\n \n return message;\n }\n\n // Send alert to specific channel\n private async sendAlert(channel: AlertChannel, message: string) {\n switch (channel.type) {\n case 'console':\n console.error(message);\n break;\n \n case 'webhook':\n if (channel.config.url) {\n const response = await fetch(channel.config.url, {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({ text: message, timestamp: Date.now() })\n });\n if (!response.ok) {\n throw new Error(`Webhook failed: ${response.status}`);\n }\n }\n break;\n \n case 'slack':\n if (channel.config.url) {\n const response = await fetch(channel.config.url, {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({\n text: message,\n channel: channel.config.channel,\n username: 'BaroiPlayer Performance Monitor'\n })\n });\n if (!response.ok) {\n throw new Error(`Slack webhook failed: ${response.status}`);\n }\n }\n break;\n \n default:\n console.warn(`Unsupported alert channel: ${channel.type}`);\n }\n }\n\n // Helper methods\n private formatValue(value: number, unit: PerformanceBudget['unit']): string {\n switch (unit) {\n case 'bytes':\n return this.formatBytes(value);\n case 'ms':\n return `${value.toFixed(2)}ms`;\n case 'score':\n return value.toFixed(3);\n case 'percent':\n return `${value.toFixed(1)}%`;\n default:\n return value.toString();\n }\n }\n\n private formatBytes(bytes: number): string {\n if (bytes >= 1024 * 1024) {\n return `${(bytes / 1024 / 1024).toFixed(2)}MB`;\n }\n if (bytes >= 1024) {\n return `${(bytes / 1024).toFixed(2)}KB`;\n }\n return `${bytes}B`;\n }\n\n private getUnitDisplay(unit: PerformanceBudget['unit']): string {\n const displays = {\n 'bytes': 'bytes',\n 'ms': 'milliseconds', \n 'score': 'score',\n 'percent': 'percent'\n };\n return displays[unit] || unit;\n }\n\n // Management methods\n addBudget(budget: PerformanceBudget) {\n this.budgets.set(budget.name, budget);\n }\n\n removeBudget(name: string) {\n this.budgets.delete(name);\n }\n\n updateBudget(name: string, updates: Partial<PerformanceBudget>) {\n const existing = this.budgets.get(name);\n if (existing) {\n this.budgets.set(name, { ...existing, ...updates });\n }\n }\n\n getBudgets(): PerformanceBudget[] {\n return Array.from(this.budgets.values());\n }\n\n getViolations(since?: number): BudgetViolation[] {\n if (since) {\n return this.violations.filter(v => v.timestamp >= since);\n }\n return [...this.violations];\n }\n\n clearViolations() {\n this.violations = [];\n }\n\n getViolationSummary(): {\n total: number;\n byCategory: Record<string, number>;\n bySeverity: Record<string, number>;\n } {\n const byCategory: Record<string, number> = {};\n const bySeverity: Record<string, number> = {};\n\n this.violations.forEach(violation => {\n const category = violation.budget.category;\n const severity = violation.budget.severity;\n \n byCategory[category] = (byCategory[category] || 0) + 1;\n bySeverity[severity] = (bySeverity[severity] || 0) + 1;\n });\n\n return {\n total: this.violations.length,\n byCategory,\n bySeverity\n };\n }\n}\n\n// Global performance budget monitor\nexport const performanceBudgetMonitor = new PerformanceBudgetMonitor();\n\n","import React from 'react';\n\n// Network monitoring and adaptive loading\nexport interface NetworkInfo {\n effectiveType: '2g' | '3g' | '4g' | '5g' | 'unknown';\n downlink: number; // Mbps\n rtt: number; // Round trip time in ms\n saveData: boolean;\n isOnline: boolean;\n}\n\nexport interface MediaLoadingConfig {\n preloadStrategy: 'none' | 'metadata' | 'auto';\n adaptiveBitrate: boolean;\n maxPreloadSize: number; // bytes\n networkThresholds: {\n '2g': { maxBitrate: number; preload: boolean };\n '3g': { maxBitrate: number; preload: boolean };\n '4g': { maxBitrate: number; preload: boolean };\n '5g': { maxBitrate: number; preload: boolean };\n };\n bufferSize: number; // seconds\n enableServiceWorker: boolean;\n}\n\nexport const defaultMediaLoadingConfig: MediaLoadingConfig = {\n preloadStrategy: 'metadata',\n adaptiveBitrate: true,\n maxPreloadSize: 2 * 1024 * 1024, // 2MB\n networkThresholds: {\n '2g': { maxBitrate: 128, preload: false }, // 128 kbps\n '3g': { maxBitrate: 500, preload: false }, // 500 kbps \n '4g': { maxBitrate: 2000, preload: true }, // 2 Mbps\n '5g': { maxBitrate: 10000, preload: true } // 10 Mbps\n },\n bufferSize: 10, // 10 seconds\n enableServiceWorker: true\n};\n\n// Media loading performance tracker\nexport interface MediaLoadingMetrics {\n loadStartTime: number;\n firstByteTime?: number;\n loadCompleteTime?: number;\n totalLoadTime?: number;\n bytesLoaded: number;\n loadSpeed: number; // bytes per second\n networkType: string;\n quality: string;\n bufferHealth: number; // 0-1 scale\n stallsCount: number;\n stallsDuration: number;\n}\n\n// Network monitoring utility\nexport class NetworkMonitor {\n private connection: any;\n private listeners: Set<(info: NetworkInfo) => void> = new Set();\n private currentInfo: NetworkInfo;\n\n constructor() {\n if (typeof window === 'undefined' || typeof navigator === 'undefined') {\n // Server-side rendering fallback\n this.connection = null;\n this.currentInfo = {\n effectiveType: 'unknown',\n downlink: 0,\n rtt: 0,\n saveData: false,\n isOnline: true\n };\n return;\n }\n\n this.connection = (navigator as any).connection || \n (navigator as any).mozConnection || \n (navigator as any).webkitConnection;\n \n this.currentInfo = this.getNetworkInfo();\n this.initializeListeners();\n }\n\n private getNetworkInfo(): NetworkInfo {\n if (typeof navigator === 'undefined') {\n // Server-side rendering fallback\n return {\n effectiveType: 'unknown',\n downlink: 0,\n rtt: 0,\n saveData: false,\n isOnline: true\n };\n }\n\n const isOnline = navigator.onLine;\n \n if (this.connection) {\n return {\n effectiveType: this.connection.effectiveType || 'unknown',\n downlink: this.connection.downlink || 0,\n rtt: this.connection.rtt || 0,\n saveData: this.connection.saveData || false,\n isOnline\n };\n }\n\n // Fallback for browsers without Network Information API\n return {\n effectiveType: 'unknown',\n downlink: 0,\n rtt: 0,\n saveData: false,\n isOnline\n };\n }\n\n private initializeListeners() {\n if (typeof window === 'undefined') {\n // Server-side rendering - skip event listeners\n return;\n }\n\n if (this.connection) {\n this.connection.addEventListener('change', this.handleNetworkChange.bind(this));\n }\n \n window.addEventListener('online', this.handleNetworkChange.bind(this));\n window.addEventListener('offline', this.handleNetworkChange.bind(this));\n }\n\n private handleNetworkChange() {\n const newInfo = this.getNetworkInfo();\n this.currentInfo = newInfo;\n this.listeners.forEach(listener => listener(newInfo));\n }\n\n getCurrentNetworkInfo(): NetworkInfo {\n return { ...this.currentInfo };\n }\n\n subscribe(listener: (info: NetworkInfo) => void): () => void {\n this.listeners.add(listener);\n return () => this.listeners.delete(listener);\n }\n\n // Estimate available bandwidth with fallback detection\n async estimateBandwidth(): Promise<number> {\n if (this.connection && this.connection.downlink) {\n return this.connection.downlink * 1000; // Convert to kbps\n }\n\n // Fallback: simple bandwidth test\n try {\n const startTime = performance.now();\n const testUrl = '/api/bandwidth-test?size=100kb'; // Would need to be implemented\n const response = await fetch(testUrl);\n const blob = await response.blob();\n const endTime = performance.now();\n \n const timeInSeconds = (endTime - startTime) / 1000;\n const bytesLoaded = blob.size;\n const bitsPerSecond = (bytesLoaded * 8) / timeInSeconds;\n \n return bitsPerSecond / 1000; // Return in kbps\n } catch (error) {\n console.warn('Bandwidth estimation failed:', error);\n return 1000; // Default to 1Mbps\n }\n }\n}\n\n// Media loading optimizer\nexport class MediaLoadingOptimizer {\n private config: MediaLoadingConfig;\n private networkMonitor: NetworkMonitor;\n private loadingMetrics: Map<string, MediaLoadingMetrics> = new Map();\n private preloadCache: Map<string, Promise<Blob>> = new Map();\n\n constructor(config: Partial<MediaLoadingConfig> = {}) {\n this.config = { ...defaultMediaLoadingConfig, ...config };\n this.networkMonitor = new NetworkMonitor();\n this.initializeNetworkMonitoring();\n }\n\n private initializeNetworkMonitoring() {\n this.networkMonitor.subscribe((networkInfo) => {\n this.handleNetworkChange(networkInfo);\n });\n }\n\n private handleNetworkChange(networkInfo: NetworkInfo) {\n console.log('Network changed:', networkInfo);\n \n // Adjust quality based on network conditions\n if (this.config.adaptiveBitrate) {\n this.adjustQualityForNetwork(networkInfo);\n }\n\n // Clear preload cache if on slow network\n if (networkInfo.effectiveType === '2g' || networkInfo.saveData) {\n this.clearPreloadCache();\n }\n }\n\n // Optimize media loading based on network conditions\n async optimizeMediaLoading(\n mediaUrl: string,\n element: HTMLMediaElement,\n options: {\n quality?: string;\n preload?: boolean;\n priority?: 'high' | 'normal' | 'low';\n } = {}\n ): Promise<MediaLoadingMetrics> {\n const startTime = performance.now();\n const networkInfo = this.networkMonitor.getCurrentNetworkInfo();\n \n const metrics: MediaLoadingMetrics = {\n loadStartTime: startTime,\n bytesLoaded: 0,\n loadSpeed: 0,\n networkType: networkInfo.effectiveType,\n quality: options.quality || 'auto',\n bufferHealth: 0,\n stallsCount: 0,\n stallsDuration: 0\n };\n\n this.loadingMetrics.set(mediaUrl, metrics);\n\n try {\n // Choose optimal loading strategy\n const loadingStrategy = this.chooseLoadingStrategy(networkInfo, options);\n \n // Apply preload strategy\n if (loadingStrategy.shouldPreload) {\n await this.preloadMedia(mediaUrl, loadingStrategy.preloadAmount);\n }\n\n // Set appropriate preload attribute\n element.preload = loadingStrategy.preloadAttribute;\n\n // Monitor loading progress\n this.monitorLoadingProgress(element, metrics);\n\n // Apply quality adjustments\n if (this.config.adaptiveBitrate && loadingStrategy.suggestedQuality) {\n this.applyQualitySettings(element, loadingStrategy.suggestedQuality);\n }\n\n return metrics;\n } catch (error) {\n console.error('Media loading optimization failed:', error);\n return metrics;\n }\n }\n\n private chooseLoadingStrategy(\n networkInfo: NetworkInfo,\n options: { preload?: boolean; priority?: string; quality?: string }\n ) {\n const effectiveType = networkInfo.effectiveType === 'unknown' ? '4g' : networkInfo.effectiveType;\n const threshold = this.config.networkThresholds[effectiveType] || \n this.config.networkThresholds['4g'];\n \n return {\n shouldPreload: options.preload !== false && threshold.preload && !networkInfo.saveData,\n preloadAmount: networkInfo.saveData ? 0 : this.config.maxPreloadSize,\n preloadAttribute: this.getPreloadAttribute(networkInfo),\n suggestedQuality: this.getSuggestedQuality(networkInfo, threshold.maxBitrate),\n bufferTarget: this.getBufferTarget(networkInfo)\n };\n }\n\n private getPreloadAttribute(networkInfo: NetworkInfo): 'none' | 'metadata' | 'auto' {\n if (networkInfo.saveData || networkInfo.effectiveType === '2g') {\n return 'none';\n }\n \n if (networkInfo.effectiveType === '3g') {\n return 'metadata';\n }\n \n return this.config.preloadStrategy;\n }\n\n private getSuggestedQuality(networkInfo: NetworkInfo, maxBitrate: number): string {\n const availableBandwidth = networkInfo.downlink * 1000; // Convert to kbps\n \n if (availableBandwidth >= maxBitrate * 2) return 'high';\n if (availableBandwidth >= maxBitrate) return 'medium';\n return 'low';\n }\n\n private getBufferTarget(networkInfo: NetworkInfo): number {\n switch (networkInfo.effectiveType) {\n case '2g': return 2; // 2 seconds\n case '3g': return 5; // 5 seconds\n case '4g': return this.config.bufferSize;\n case '5g': return this.config.bufferSize * 1.5;\n default: return this.config.bufferSize;\n }\n }\n\n // Preload media content\n async preloadMedia(url: string, maxSize: number): Promise<void> {\n if (this.preloadCache.has(url)) {\n return; // Already preloading or preloaded\n }\n\n const preloadPromise = this.fetchWithProgress(url, maxSize);\n this.preloadCache.set(url, preloadPromise);\n\n try {\n await preloadPromise;\n } catch (error) {\n console.warn(`Preload failed for ${url}:`, error);\n this.preloadCache.delete(url);\n }\n }\n\n private async fetchWithProgress(url: string, maxSize: number): Promise<Blob> {\n const response = await fetch(url, {\n headers: {\n 'Range': `bytes=0-${maxSize - 1}` // Limit preload size\n }\n });\n\n if (!response.ok) {\n throw new Error(`Failed to preload: ${response.status}`);\n }\n\n const reader = response.body?.getReader();\n if (!reader) {\n throw new Error('Response body not readable');\n }\n\n const chunks: Uint8Array[] = [];\n let bytesRead = 0;\n\n try {\n while (bytesRead < maxSize) {\n const { done, value } = await reader.read();\n if (done) break;\n \n chunks.push(value);\n bytesRead += value.length;\n }\n } finally {\n reader.releaseLock();\n }\n\n return new Blob(chunks);\n }\n\n // Monitor loading progress and update metrics\n private monitorLoadingProgress(element: HTMLMediaElement, metrics: MediaLoadingMetrics) {\n let stallStartTime: number | null = null;\n\n const updateMetrics = () => {\n if (element.buffered.length > 0) {\n const bufferedEnd = element.buffered.end(element.buffered.length - 1);\n const currentTime = element.currentTime;\n metrics.bufferHealth = Math.min((bufferedEnd - currentTime) / this.config.bufferSize, 1);\n }\n };\n\n // Track first byte\n const onLoadStart = () => {\n metrics.firstByteTime = performance.now();\n };\n\n // Track load completion\n const onCanPlay = () => {\n metrics.loadCompleteTime = performance.now();\n metrics.totalLoadTime = metrics.loadCompleteTime - metrics.loadStartTime;\n \n // Calculate load speed\n if (metrics.totalLoadTime && metrics.bytesLoaded > 0) {\n metrics.loadSpeed = metrics.bytesLoaded / (metrics.totalLoadTime / 1000);\n }\n };\n\n // Track stalls\n const onWaiting = () => {\n if (stallStartTime === null) {\n stallStartTime = performance.now();\n metrics.stallsCount++;\n }\n };\n\n const onPlaying = () => {\n if (stallStartTime !== null) {\n metrics.stallsDuration += performance.now() - stallStartTime;\n stallStartTime = null;\n }\n updateMetrics();\n };\n\n // Track progress\n const onProgress = () => {\n if (element.buffered.length > 0) {\n const bufferedBytes = element.buffered.end(0) * 1000; // Rough estimate\n metrics.bytesLoaded = bufferedBytes;\n }\n updateMetrics();\n };\n\n // Add event listeners\n element.addEventListener('loadstart', onLoadStart);\n element.addEventListener('canplay', onCanPlay);\n element.addEventListener('waiting', onWaiting);\n element.addEventListener('playing', onPlaying);\n element.addEventListener('progress', onProgress);\n\n // Cleanup function\n const cleanup = () => {\n element.removeEventListener('loadstart', onLoadStart);\n element.removeEventListener('canplay', onCanPlay);\n element.removeEventListener('waiting', onWaiting);\n element.removeEventListener('playing', onPlaying);\n element.removeEventListener('progress', onProgress);\n };\n\n // Auto-cleanup after 5 minutes\n setTimeout(cleanup, 5 * 60 * 1000);\n }\n\n // Apply quality settings (would integrate with HLS.js or similar)\n private applyQualitySettings(element: HTMLMediaElement, quality: string) {\n // This would integrate with your video streaming library\n console.log(`Applying quality setting: ${quality} to`, element);\n \n // Example integration with HLS.js:\n // if (element.hls) {\n // element.hls.currentLevel = this.getQualityLevel(quality);\n // }\n }\n\n private adjustQualityForNetwork(networkInfo: NetworkInfo) {\n // Auto-adjust quality for all active media elements\n console.log('Adjusting quality for network conditions:', networkInfo.effectiveType);\n }\n\n // Clear preload cache to save memory\n clearPreloadCache() {\n this.preloadCache.clear();\n }\n\n // Get loading metrics for a specific media URL\n getLoadingMetrics(url: string): MediaLoadingMetrics | undefined {\n return this.loadingMetrics.get(url);\n }\n\n // Get all loading metrics\n getAllMetrics(): MediaLoadingMetrics[] {\n return Array.from(this.loadingMetrics.values());\n }\n\n // Calculate average loading performance\n getAverageLoadingTime(): number {\n const metrics = this.getAllMetrics();\n const completedLoads = metrics.filter(m => m.totalLoadTime !== undefined);\n \n if (completedLoads.length === 0) return 0;\n \n const total = completedLoads.reduce((sum, m) => sum + (m.totalLoadTime || 0), 0);\n return total / completedLoads.length;\n }\n\n // Get network-specific performance stats\n getNetworkPerformanceStats(): {\n networkType: string;\n avgLoadTime: number;\n avgStalls: number;\n avgBufferHealth: number;\n }[] {\n const statsByNetwork = new Map<string, MediaLoadingMetrics[]>();\n \n this.getAllMetrics().forEach(metrics => {\n const network = metrics.networkType;\n if (!statsByNetwork.has(network)) {\n statsByNetwork.set(network, []);\n }\n statsByNetwork.get(network)!.push(metrics);\n });\n\n return Array.from(statsByNetwork.entries()).map(([networkType, metrics]) => ({\n networkType,\n avgLoadTime: metrics.reduce((sum, m) => sum + (m.totalLoadTime || 0), 0) / metrics.length,\n avgStalls: metrics.reduce((sum, m) => sum + m.stallsCount, 0) / metrics.length,\n avgBufferHealth: metrics.reduce((sum, m) => sum + m.bufferHealth, 0) / metrics.length\n }));\n }\n}\n\n// Global media loading optimizer instance\nexport const mediaLoadingOptimizer = new MediaLoadingOptimizer();\n\n// React hook for media loading optimization\nexport function useMediaLoadingOptimizer(config?: Partial<MediaLoadingConfig>) {\n const [optimizer] = React.useState(() => \n config ? new MediaLoadingOptimizer(config) : mediaLoadingOptimizer\n );\n \n const [networkInfo, setNetworkInfo] = React.useState<NetworkInfo | null>(null);\n const [loadingMetrics, setLoadingMetrics] = React.useState<MediaLoadingMetrics[]>([]);\n\n React.useEffect(() => {\n const unsubscribe = optimizer['networkMonitor'].subscribe(setNetworkInfo);\n setNetworkInfo(optimizer['networkMonitor'].getCurrentNetworkInfo());\n\n // Update metrics periodically\n const interval = setInterval(() => {\n setLoadingMetrics(optimizer.getAllMetrics());\n }, 1000);\n\n return () => {\n unsubscribe();\n clearInterval(interval);\n };\n }, [optimizer]);\n\n const optimizeLoading = React.useCallback(\n (mediaUrl: string, element: HTMLMediaElement, options?: any) => {\n return optimizer.optimizeMediaLoading(mediaUrl, element, options);\n },\n [optimizer]\n );\n\n return {\n networkInfo,\n loadingMetrics,\n optimizeLoading,\n averageLoadTime: optimizer.getAverageLoadingTime(),\n networkStats: optimizer.getNetworkPerformanceStats()\n };\n}","import React, { createContext, useContext, useMemo } from 'react'\nimport { EventBus } from '../events'\nimport { PluginRegistry, ConsolePluginLogger } from '../plugins'\n\n// Service interfaces\nexport interface MediaService {\n loadMedia(src: string): Promise<void>\n play(): Promise<void>\n pause(): Promise<void>\n seek(time: number): Promise<void>\n setVolume(volume: number): Promise<void>\n}\n\nexport interface StorageService {\n get<T>(key: string): T | null\n set<T>(key: string, value: T): void\n remove(key: string): void\n clear(): void\n}\n\nexport interface AnalyticsService {\n track(event: string, data?: any): void\n identify(userId: string, traits?: any): void\n page(name: string, properties?: any): void\n}\n\nexport interface LoggerService {\n info(message: string, data?: any): void\n warn(message: string, data?: any): void\n error(message: string, data?: any): void\n debug(message: string, data?: any): void\n}\n\n// Service implementations\nclass LocalStorageService implements StorageService {\n get<T>(key: string): T | null {\n try {\n const item = localStorage.getItem(`baroi-player-${key}`)\n return item ? JSON.parse(item) as T : null\n } catch {\n return null\n }\n }\n\n set<T>(key: string, value: T): void {\n try {\n localStorage.setItem(`baroi-player-${key}`, JSON.stringify(value))\n } catch (error) {\n console.warn('Failed to store data:', error)\n }\n }\n\n remove(key: string): void {\n try {\n localStorage.removeItem(`baroi-player-${key}`)\n } catch (error) {\n console.warn('Failed to remove data:', error)\n }\n }\n\n clear(): void {\n try {\n Object.keys(localStorage).forEach(key => {\n if (key.startsWith('baroi-player-')) {\n localStorage.removeItem(key)\n }\n })\n } catch (error) {\n console.warn('Failed to clear data:', error)\n }\n }\n}\n\nclass NoOpAnalyticsService implements AnalyticsService {\n track(event: string, data?: any): void {\n console.log('Analytics:', event, data)\n }\n\n identify(userId: string, traits?: any): void {\n console.log('Analytics identify:', userId, traits)\n }\n\n page(name: string, properties?: any): void {\n console.log('Analytics page:', name, properties)\n }\n}\n\n// Service container\nexport interface ServiceContainer {\n eventBus: EventBus\n pluginRegistry: PluginRegistry\n storage: StorageService\n analytics: AnalyticsService\n logger: LoggerService\n}\n\n// Service provider context\nconst ServiceContext = createContext<ServiceContainer | null>(null)\n\n// Service provider props\nexport interface ServiceProviderProps {\n children: React.ReactNode\n services?: Partial<ServiceContainer>\n}\n\n// Service provider component\nexport function ServiceProvider({ children, services = {} }: ServiceProviderProps) {\n const container = useMemo<ServiceContainer>(() => {\n const logger = services.logger || new ConsolePluginLogger('[BaroiPlayer]')\n const eventBus = services.eventBus || new EventBus()\n const pluginRegistry = services.pluginRegistry || new PluginRegistry(logger)\n const storage = services.storage || new LocalStorageService()\n const analytics = services.analytics || new NoOpAnalyticsService()\n\n return {\n eventBus,\n pluginRegistry,\n storage,\n analytics,\n logger\n }\n }, [services])\n\n return (\n <ServiceContext.Provider value={container}>\n {children}\n </ServiceContext.Provider>\n )\n}\n\n// Service hooks\nexport function useServices(): ServiceContainer {\n const context = useContext(ServiceContext)\n if (!context) {\n throw new Error('useServices must be used within ServiceProvider')\n }\n return context\n}\n\nexport function useServiceEventBus(): EventBus {\n return useServices().eventBus\n}\n\nexport function usePluginRegistry(): PluginRegistry {\n return useServices().pluginRegistry\n}\n\nexport function useStorage(): StorageService {\n return useServices().storage\n}\n\nexport function useAnalytics(): AnalyticsService {\n return useServices().analytics\n}\n\nexport function useLogger(): LoggerService {\n return useServices().logger\n}\n\n// Service decorators for dependency injection\nexport function withServices<P extends object>(\n Component: React.ComponentType<P & { services: ServiceContainer }>\n): React.ComponentType<P> {\n return function WithServicesComponent(props: P) {\n const services = useServices()\n return <Component {...props} services={services} />\n }\n}","import React from 'react'\nimport { EventBus } from './events'\nimport { PluginRegistry } from './plugins'\nimport { ServiceProvider, type ServiceContainer } from './providers/service-provider'\n\n// Architecture configuration\nexport interface ArchitectureConfig {\n plugins?: string[]\n services?: Partial<ServiceContainer>\n eventMiddleware?: any[]\n debug?: boolean\n}\n\n// Create architecture wrapper component\nexport function createArchitecture(config: ArchitectureConfig = {}) {\n return function ArchitectureProvider({ children }: { children: React.ReactNode }) {\n return (\n <ServiceProvider services={config.services}>\n {children}\n </ServiceProvider>\n )\n }\n}\n\n// Architecture health check\nexport async function healthCheck(services: ServiceContainer) {\n const results = {\n eventBus: {\n healthy: true,\n listenerCount: services.eventBus.getListenerCount(),\n eventTypes: services.eventBus.getEventTypes().length\n },\n plugins: await services.pluginRegistry.healthCheck(),\n timestamp: Date.now()\n }\n\n return results\n}","import React, { lazy, Suspense } from 'react';\n\n// Feature flags for progressive loading\nexport const FEATURES = {\n SUBTITLES: 'subtitles',\n PLAYLISTS: 'playlists', \n ADVANCED_CONTROLS: 'advanced_controls',\n ANALYTICS: 'analytics',\n PICTURE_IN_PICTURE: 'picture_in_picture',\n QUALITY_SELECTOR: 'quality_selector',\n PLAYBACK_SPEED: 'playback_speed',\n CHAPTERS: 'chapters',\n THUMBNAILS: 'thumbnails',\n KEYBOARD_SHORTCUTS: 'keyboard_shortcuts'\n} as const;\n\nexport type FeatureType = typeof FEATURES[keyof typeof FEATURES];\n\n// Progressive loading configuration\nexport interface ProgressiveLoadingConfig {\n enabledFeatures: FeatureType[];\n loadingStrategy: 'lazy' | 'preload' | 'immediate';\n fallbackTimeout: number;\n retryAttempts: number;\n}\n\nexport const defaultProgressiveConfig: ProgressiveLoadingConfig = {\n enabledFeatures: [\n FEATURES.SUBTITLES,\n FEATURES.ADVANCED_CONTROLS,\n FEATURES.KEYBOARD_SHORTCUTS\n ],\n loadingStrategy: 'lazy',\n fallbackTimeout: 5000,\n retryAttempts: 3\n};\n\n// Dynamic imports with error handling and retry logic\nexport const lazyComponents = {\n // Subtitle system\n SubtitleSelector: lazy(() => \n import('../components/enhanced/advanced-features')\n .then(module => ({ default: module.SubtitleSelector }))\n ),\n\n // Playlist functionality \n PlaylistManager: lazy(() =>\n import('../components/enhanced/advanced-features')\n .then(module => ({ default: module.SubtitleSelector })) // Use existing component as placeholder\n ),\n\n // Advanced controls\n QualitySelector: lazy(() =>\n import('../components/enhanced/advanced-features')\n .then(module => ({ default: module.QualitySelector }))\n ),\n\n PlaybackSpeedSelector: lazy(() =>\n import('../components/enhanced/advanced-features')\n .then(module => ({ default: module.PlaybackSpeedSelector }))\n ),\n\n ChaptersPanel: lazy(() =>\n import('../components/enhanced/advanced-features')\n .then(module => ({ default: module.ChaptersPanel }))\n ),\n\n PictureInPictureButton: lazy(() =>\n import('../components/enhanced/advanced-features')\n .then(module => ({ default: module.PictureInPictureButton }))\n ),\n\n // Analytics\n AnalyticsTracker: lazy(() =>\n import('../components/enhanced/advanced-features')\n .then(module => ({ default: module.SubtitleSelector })) // Use existing component as placeholder\n ),\n};\n\n// Feature detection utilities\nexport class FeatureDetector {\n private static cache = new Map<FeatureType, boolean>();\n\n static async isSupported(feature: FeatureType): Promise<boolean> {\n if (this.cache.has(feature)) {\n return this.cache.get(feature)!;\n }\n\n const supported = await this.checkFeatureSupport(feature);\n this.cache.set(feature, supported);\n return supported;\n }\n\n private static async checkFeatureSupport(feature: FeatureType): Promise<boolean> {\n if (typeof window === 'undefined' || typeof document === 'undefined') {\n // Server-side rendering - assume basic support\n return true;\n }\n\n switch (feature) {\n case FEATURES.SUBTITLES:\n return 'TextTrack' in window;\n \n case FEATURES.PICTURE_IN_PICTURE:\n return 'pictureInPictureEnabled' in document;\n \n case FEATURES.ADVANCED_CONTROLS:\n return true; // Always supported\n \n case FEATURES.PLAYLISTS:\n return 'MediaSession' in window;\n \n case FEATURES.ANALYTICS:\n return 'IntersectionObserver' in window;\n \n case FEATURES.QUALITY_SELECTOR:\n return 'MediaSource' in window;\n \n case FEATURES.PLAYBACK_SPEED:\n return true; // HTML5 video supports this\n \n case FEATURES.CHAPTERS:\n return 'TextTrack' in window;\n \n case FEATURES.THUMBNAILS:\n return 'OffscreenCanvas' in window || 'canvas' in document.createElement('canvas');\n \n case FEATURES.KEYBOARD_SHORTCUTS:\n return 'KeyboardEvent' in window;\n \n default:\n return false;\n }\n }\n}\n\n// Progressive loading manager\nexport class ProgressiveLoader {\n private config: ProgressiveLoadingConfig;\n private loadedFeatures = new Set<FeatureType>();\n private loadingPromises = new Map<FeatureType, Promise<any>>();\n\n constructor(config: Partial<ProgressiveLoadingConfig> = {}) {\n this.config = { ...defaultProgressiveConfig, ...config };\n }\n\n async loadFeature<T = any>(feature: FeatureType): Promise<T | null> {\n // Check if feature is enabled\n if (!this.config.enabledFeatures.includes(feature)) {\n return null;\n }\n\n // Check if already loaded\n if (this.loadedFeatures.has(feature)) {\n return this.getLoadedFeature(feature);\n }\n\n // Check if currently loading\n if (this.loadingPromises.has(feature)) {\n return this.loadingPromises.get(feature);\n }\n\n // Check browser support\n const isSupported = await FeatureDetector.isSupported(feature);\n if (!isSupported) {\n console.warn(`Feature ${feature} is not supported in this browser`);\n return null;\n }\n\n // Start loading with retry logic\n const loadingPromise = this.loadWithRetry(feature);\n this.loadingPromises.set(feature, loadingPromise);\n\n try {\n const result = await loadingPromise;\n this.loadedFeatures.add(feature);\n return result as T;\n } catch (error) {\n console.error(`Failed to load feature ${feature}:`, error);\n this.loadingPromises.delete(feature);\n return null;\n }\n }\n\n private async loadWithRetry<T>(feature: FeatureType, attempt = 1): Promise<T> {\n try {\n const result = await this.loadFeatureModule(feature);\n return result as T;\n } catch (error) {\n if (attempt < this.config.retryAttempts) {\n console.warn(`Loading feature ${feature} failed, retrying (${attempt}/${this.config.retryAttempts})`);\n await new Promise(resolve => setTimeout(resolve, 1000 * attempt));\n return this.loadWithRetry(feature, attempt + 1);\n }\n throw error;\n }\n }\n\n private async loadFeatureModule(feature: FeatureType) {\n switch (feature) {\n case FEATURES.SUBTITLES:\n return import('../hooks/useEnhancedSubtitles');\n \n case FEATURES.PLAYLISTS:\n return import('../components/enhanced/advanced-features'); // Use existing features\n \n case FEATURES.ADVANCED_CONTROLS:\n return import('../components/enhanced/advanced-features');\n \n case FEATURES.ANALYTICS:\n return import('../components/enhanced/advanced-features'); // Use existing features\n \n case FEATURES.PICTURE_IN_PICTURE:\n return import('../components/enhanced/advanced-features'); // Use existing features\n \n case FEATURES.QUALITY_SELECTOR:\n return import('../components/enhanced/advanced-features'); // Use existing features\n \n case FEATURES.PLAYBACK_SPEED:\n return import('../components/enhanced/advanced-features'); // Use existing features\n \n case FEATURES.CHAPTERS:\n return import('../components/enhanced/advanced-features'); // Use existing features\n \n case FEATURES.THUMBNAILS:\n return import('../components/enhanced/advanced-features'); // Use existing features\n \n case FEATURES.KEYBOARD_SHORTCUTS:\n return import('../hooks/use-keyboard-controls');\n \n default:\n throw new Error(`Unknown feature: ${feature}`);\n }\n }\n\n private getLoadedFeature(feature: FeatureType) {\n // Return cached feature instance\n return this.loadingPromises.get(feature);\n }\n\n // Preload features for faster access\n async preloadFeatures(features: FeatureType[] = this.config.enabledFeatures) {\n const preloadPromises = features.map(feature => this.loadFeature(feature));\n await Promise.allSettled(preloadPromises);\n }\n\n // Get loading state\n getLoadingState() {\n return {\n loaded: Array.from(this.loadedFeatures),\n loading: Array.from(this.loadingPromises.keys()),\n enabled: this.config.enabledFeatures\n };\n }\n}\n\n// Global progressive loader instance\nexport const progressiveLoader = new ProgressiveLoader();\n\n// React hook for progressive loading\nexport function useProgressiveFeature<T = any>(feature: FeatureType): {\n feature: T | null;\n loading: boolean;\n error: Error | null;\n load: () => Promise<void>;\n} {\n const [featureModule, setFeatureModule] = React.useState<T | null>(null);\n const [loading, setLoading] = React.useState(false);\n const [error, setError] = React.useState<Error | null>(null);\n\n const load = React.useCallback(async () => {\n if (loading || featureModule) return;\n \n setLoading(true);\n setError(null);\n \n try {\n const module = await progressiveLoader.loadFeature<T>(feature);\n setFeatureModule(module);\n } catch (err) {\n setError(err as Error);\n } finally {\n setLoading(false);\n }\n }, [feature, loading, featureModule]);\n\n // Auto-load if strategy is immediate\n React.useEffect(() => {\n if (progressiveLoader['config'].loadingStrategy === 'immediate') {\n load();\n }\n }, [load]);\n\n return {\n feature: featureModule,\n loading,\n error,\n load\n };\n}\n\n// HOC for progressive feature loading\nexport function withProgressiveFeature<P extends object>(\n WrappedComponent: React.ComponentType<P>,\n feature: FeatureType,\n fallback?: React.ComponentType<P>\n) {\n return function ProgressiveFeatureWrapper(props: P) {\n const { feature: featureModule, loading, error } = useProgressiveFeature(feature);\n\n if (loading) {\n return <div className=\"h-8 animate-pulse rounded bg-gray-200\" />;\n }\n\n if (error || !featureModule) {\n const Fallback = fallback;\n return Fallback ? <Fallback {...props} /> : null;\n }\n\n return <WrappedComponent {...props} />;\n };\n}\n","// Core architecture exports\n\n// Plugin system\nexport * from './plugins'\n\n// Event system \nexport * from './events'\n\n// Service providers\nexport * from './providers/service-provider'\n\n// Version\nexport const CORE_ARCHITECTURE_VERSION = '1.0.0'\n\n// Architecture utilities\nexport { createArchitecture } from './utils'\n\n// Progressive loading system\nexport * from './progressive-loading'\n\n// Performance monitoring and testing\nexport * from './performance'\n"],"names":["PerformanceBenchmark","__publicField","PerformanceRegressionDetector","config","testFunction","renderTimes","memoryBefore","memoryAfter","error","i","startTime","endTime","err","averageRenderTime","sum","time","minRenderTime","maxRenderTime","memoryUsage","passed","result","componentName","renderFunction","expectedRenderTime","bundlePath","expectedLoadTime","response","iterations","memoryIncrease","hasMemoryLeak","interactionFunction","expectedDelay","currentMetrics","baselineMetrics","regressions","totalTests","passedTests","failedTests","passRate","summary","report","index","performanceBenchmark","performanceTestUtils","Component","props","hookFunction","hookName","expectedExecutionTime","operation","operationName","expectedTime","beforeFunction","afterFunction","featureName","beforeMemory","beforeTime","midMemory","midTime","afterMemory","afterTime","PerformanceTestFramework","suiteName","tests","testImplementations","results","test","implementation","implementations","allResults","suiteImplementations","performanceTestFramework","defaultPerformanceBudgets","PerformanceBudgetMonitor","budgets","alertConfig","budget","metricName","value","category","violations","name","violation","distPath","metrics","allViolations","now","v","message","channel","actualValue","overageAmount","overagePercentage","unit","bytes","updates","existing","since","byCategory","bySeverity","severity","performanceBudgetMonitor","defaultMediaLoadingConfig","NetworkMonitor","isOnline","newInfo","listener","blob","timeInSeconds","MediaLoadingOptimizer","networkInfo","mediaUrl","element","options","loadingStrategy","effectiveType","threshold","maxBitrate","availableBandwidth","url","maxSize","preloadPromise","reader","chunks","bytesRead","done","stallStartTime","updateMetrics","bufferedEnd","currentTime","onLoadStart","onCanPlay","onWaiting","onPlaying","onProgress","bufferedBytes","quality","completedLoads","m","statsByNetwork","network","networkType","mediaLoadingOptimizer","useMediaLoadingOptimizer","optimizer","React","setNetworkInfo","loadingMetrics","setLoadingMetrics","unsubscribe","interval","optimizeLoading","LocalStorageService","key","item","NoOpAnalyticsService","event","data","userId","traits","properties","ServiceContext","createContext","ServiceProvider","children","services","container","useMemo","logger","ConsolePluginLogger","eventBus","EventBus","pluginRegistry","PluginRegistry","storage","analytics","useServices","context","useContext","useServiceEventBus","usePluginRegistry","useStorage","useAnalytics","useLogger","withServices","jsx","createArchitecture","FEATURES","defaultProgressiveConfig","lazyComponents","lazy","n","module","FeatureDetector","feature","supported","ProgressiveLoader","loadingPromise","attempt","resolve","features","preloadPromises","progressiveLoader","useProgressiveFeature","featureModule","setFeatureModule","loading","setLoading","setError","load","withProgressiveFeature","WrappedComponent","fallback","Fallback","CORE_ARCHITECTURE_VERSION"],"mappings":"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"}