@therealtinhtute/baroiplayer 1.0.6 → 1.0.8

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 (597) hide show
  1. package/dist/index.d.ts +1 -1
  2. package/dist/index.js +1 -7
  3. package/dist/index.mjs +1 -2
  4. package/dist/package.json +1 -1
  5. package/package.json +1 -1
  6. package/dist/context/media.js +0 -2
  7. package/dist/context/media.js.map +0 -1
  8. package/dist/context/media.mjs +0 -15
  9. package/dist/context/media.mjs.map +0 -1
  10. package/dist/context/store.js +0 -2
  11. package/dist/context/store.js.map +0 -1
  12. package/dist/context/store.mjs +0 -5
  13. package/dist/context/store.mjs.map +0 -1
  14. package/dist/context-Af84FynT.js +0 -1179
  15. package/dist/context-Af84FynT.js.map +0 -1
  16. package/dist/context-CwZnPdz0.cjs +0 -23
  17. package/dist/context-CwZnPdz0.cjs.map +0 -1
  18. package/dist/core-events-B5W_j8yU.js +0 -480
  19. package/dist/core-events-B5W_j8yU.js.map +0 -1
  20. package/dist/core-events-CN0-Vhhq.cjs +0 -2
  21. package/dist/core-events-CN0-Vhhq.cjs.map +0 -1
  22. package/dist/core-plugins-Bq9KLany.js +0 -696
  23. package/dist/core-plugins-Bq9KLany.js.map +0 -1
  24. package/dist/core-plugins-CPDSHMiQ.cjs +0 -2
  25. package/dist/core-plugins-CPDSHMiQ.cjs.map +0 -1
  26. package/dist/core.js +0 -37
  27. package/dist/core.js.map +0 -1
  28. package/dist/core.mjs +0 -1217
  29. package/dist/core.mjs.map +0 -1
  30. package/dist/enhanced-components-CXnYiOt6.cjs +0 -2
  31. package/dist/enhanced-components-CXnYiOt6.cjs.map +0 -1
  32. package/dist/enhanced-components-Da0TSvKe.js +0 -1073
  33. package/dist/enhanced-components-Da0TSvKe.js.map +0 -1
  34. package/dist/hooks-BCMilGRf.cjs +0 -4
  35. package/dist/hooks-BCMilGRf.cjs.map +0 -1
  36. package/dist/hooks-BPtHV1ZT.js +0 -2042
  37. package/dist/hooks-BPtHV1ZT.js.map +0 -1
  38. package/dist/index.js.map +0 -1
  39. package/dist/index.mjs.map +0 -1
  40. package/dist/minimal-components-BHJMuaL7.cjs +0 -2
  41. package/dist/minimal-components-BHJMuaL7.cjs.map +0 -1
  42. package/dist/minimal-components-BmqRefl1.js +0 -2002
  43. package/dist/minimal-components-BmqRefl1.js.map +0 -1
  44. package/dist/mona-loading.gif +0 -0
  45. package/dist/performance-monitor--rzKTlbj.js +0 -302
  46. package/dist/performance-monitor--rzKTlbj.js.map +0 -1
  47. package/dist/performance-monitor-cjIvZE2D.cjs +0 -2
  48. package/dist/performance-monitor-cjIvZE2D.cjs.map +0 -1
  49. package/dist/src/adapters/videojs-adapter.d.ts.map +0 -1
  50. package/dist/src/adapters/videojs-adapter.js +0 -350
  51. package/dist/src/assets/mona-loading.gif +0 -0
  52. package/dist/src/components/AnimateLoading.d.ts.map +0 -1
  53. package/dist/src/components/AnimateLoading.js +0 -41
  54. package/dist/src/components/LoadingState.d.ts.map +0 -1
  55. package/dist/src/components/LoadingState.js +0 -111
  56. package/dist/src/components/accessibility/keyboard-help-overlay.d.ts.map +0 -1
  57. package/dist/src/components/accessibility/keyboard-help-overlay.js +0 -90
  58. package/dist/src/components/audio-player.d.ts.map +0 -1
  59. package/dist/src/components/audio-player.js +0 -31
  60. package/dist/src/components/basic/index.d.ts.map +0 -1
  61. package/dist/src/components/basic/index.js +0 -29
  62. package/dist/src/components/enhanced/advanced-features.d.ts.map +0 -1
  63. package/dist/src/components/enhanced/advanced-features.js +0 -64
  64. package/dist/src/components/enhanced/debug-panel.d.ts.map +0 -1
  65. package/dist/src/components/enhanced/debug-panel.js +0 -94
  66. package/dist/src/components/enhanced/enhanced-controls.d.ts.map +0 -1
  67. package/dist/src/components/enhanced/enhanced-controls.js +0 -233
  68. package/dist/src/components/enhanced/enhanced-media-player.d.ts.map +0 -1
  69. package/dist/src/components/enhanced/enhanced-media-player.js +0 -316
  70. package/dist/src/components/enhanced/error-handling.d.ts.map +0 -1
  71. package/dist/src/components/enhanced/error-handling.js +0 -153
  72. package/dist/src/components/enhanced/index.d.ts.map +0 -1
  73. package/dist/src/components/enhanced/index.js +0 -10
  74. package/dist/src/components/enhanced/media-player-enhanced.d.ts.map +0 -1
  75. package/dist/src/components/enhanced/media-player-enhanced.js +0 -250
  76. package/dist/src/components/examples/basic-video-player.d.ts.map +0 -1
  77. package/dist/src/components/examples/basic-video-player.js +0 -16
  78. package/dist/src/components/examples/custom-controls-example.d.ts.map +0 -1
  79. package/dist/src/components/examples/custom-controls-example.js +0 -12
  80. package/dist/src/components/examples/enhanced-controls-example.d.ts.map +0 -1
  81. package/dist/src/components/examples/enhanced-controls-example.js +0 -18
  82. package/dist/src/components/examples/enhanced-media-player-example.d.ts.map +0 -1
  83. package/dist/src/components/examples/enhanced-media-player-example.js +0 -13
  84. package/dist/src/components/examples/loading-states-demo.d.ts.map +0 -1
  85. package/dist/src/components/examples/loading-states-demo.js +0 -41
  86. package/dist/src/components/examples/react-19-demo.d.ts.map +0 -1
  87. package/dist/src/components/examples/react-19-demo.js +0 -104
  88. package/dist/src/components/examples/volume-orientation-demo.d.ts.map +0 -1
  89. package/dist/src/components/examples/volume-orientation-demo.js +0 -31
  90. package/dist/src/components/icon-demo.d.ts.map +0 -1
  91. package/dist/src/components/icon-demo.js +0 -16
  92. package/dist/src/components/icons/index.d.ts.map +0 -1
  93. package/dist/src/components/icons/index.js +0 -59
  94. package/dist/src/components/icons/svg-icons/ArrowLeftIcon.d.ts.map +0 -1
  95. package/dist/src/components/icons/svg-icons/ArrowLeftIcon.js +0 -3
  96. package/dist/src/components/icons/svg-icons/ArrowRightIcon.d.ts.map +0 -1
  97. package/dist/src/components/icons/svg-icons/ArrowRightIcon.js +0 -3
  98. package/dist/src/components/icons/svg-icons/AudioIcon.d.ts.map +0 -1
  99. package/dist/src/components/icons/svg-icons/AudioIcon.js +0 -4
  100. package/dist/src/components/icons/svg-icons/BackwardIcon.d.ts.map +0 -1
  101. package/dist/src/components/icons/svg-icons/BackwardIcon.js +0 -3
  102. package/dist/src/components/icons/svg-icons/CameraIcon.d.ts.map +0 -1
  103. package/dist/src/components/icons/svg-icons/CameraIcon.js +0 -4
  104. package/dist/src/components/icons/svg-icons/CheckIcon.d.ts.map +0 -1
  105. package/dist/src/components/icons/svg-icons/CheckIcon.js +0 -4
  106. package/dist/src/components/icons/svg-icons/EnablePiPIcon.d.ts.map +0 -1
  107. package/dist/src/components/icons/svg-icons/EnablePiPIcon.js +0 -5
  108. package/dist/src/components/icons/svg-icons/ForwardIcon.d.ts.map +0 -1
  109. package/dist/src/components/icons/svg-icons/ForwardIcon.js +0 -3
  110. package/dist/src/components/icons/svg-icons/FullscreenEnterIcon.d.ts.map +0 -1
  111. package/dist/src/components/icons/svg-icons/FullscreenEnterIcon.js +0 -3
  112. package/dist/src/components/icons/svg-icons/FullscreenExitIcon.d.ts.map +0 -1
  113. package/dist/src/components/icons/svg-icons/FullscreenExitIcon.js +0 -3
  114. package/dist/src/components/icons/svg-icons/LoadingIcon.d.ts.map +0 -1
  115. package/dist/src/components/icons/svg-icons/LoadingIcon.js +0 -3
  116. package/dist/src/components/icons/svg-icons/PauseIcon.d.ts.map +0 -1
  117. package/dist/src/components/icons/svg-icons/PauseIcon.js +0 -3
  118. package/dist/src/components/icons/svg-icons/PlayIcon.d.ts.map +0 -1
  119. package/dist/src/components/icons/svg-icons/PlayIcon.js +0 -3
  120. package/dist/src/components/icons/svg-icons/PlaybackSpeedIcon.d.ts.map +0 -1
  121. package/dist/src/components/icons/svg-icons/PlaybackSpeedIcon.js +0 -3
  122. package/dist/src/components/icons/svg-icons/QualityIcon.d.ts.map +0 -1
  123. package/dist/src/components/icons/svg-icons/QualityIcon.js +0 -3
  124. package/dist/src/components/icons/svg-icons/SettingsIcon.d.ts.map +0 -1
  125. package/dist/src/components/icons/svg-icons/SettingsIcon.js +0 -3
  126. package/dist/src/components/icons/svg-icons/SliderIcon.d.ts.map +0 -1
  127. package/dist/src/components/icons/svg-icons/SliderIcon.js +0 -3
  128. package/dist/src/components/icons/svg-icons/SubtitleIcon.d.ts.map +0 -1
  129. package/dist/src/components/icons/svg-icons/SubtitleIcon.js +0 -3
  130. package/dist/src/components/icons/svg-icons/SubtitleOffIcon.d.ts.map +0 -1
  131. package/dist/src/components/icons/svg-icons/SubtitleOffIcon.js +0 -3
  132. package/dist/src/components/icons/svg-icons/UnPiPIcon.d.ts.map +0 -1
  133. package/dist/src/components/icons/svg-icons/UnPiPIcon.js +0 -5
  134. package/dist/src/components/icons/svg-icons/VolumeMutedIcon.d.ts.map +0 -1
  135. package/dist/src/components/icons/svg-icons/VolumeMutedIcon.js +0 -3
  136. package/dist/src/components/icons/svg-icons/VolumeOneIcon.d.ts.map +0 -1
  137. package/dist/src/components/icons/svg-icons/VolumeOneIcon.js +0 -3
  138. package/dist/src/components/icons/svg-icons/VolumeThreeIcon.d.ts.map +0 -1
  139. package/dist/src/components/icons/svg-icons/VolumeThreeIcon.js +0 -3
  140. package/dist/src/components/icons/svg-icons/VolumeTwoIcon.d.ts.map +0 -1
  141. package/dist/src/components/icons/svg-icons/VolumeTwoIcon.js +0 -3
  142. package/dist/src/components/legacy.d.ts.map +0 -1
  143. package/dist/src/components/legacy.js +0 -52
  144. package/dist/src/components/media-metadata-display.d.ts.map +0 -1
  145. package/dist/src/components/media-metadata-display.js +0 -20
  146. package/dist/src/components/media-player-audio.d.ts.map +0 -1
  147. package/dist/src/components/media-player-audio.js +0 -18
  148. package/dist/src/components/media-player-controls.d.ts.map +0 -1
  149. package/dist/src/components/media-player-controls.js +0 -150
  150. package/dist/src/components/media-player-error.d.ts.map +0 -1
  151. package/dist/src/components/media-player-error.js +0 -85
  152. package/dist/src/components/media-player-fullscreen.d.ts.map +0 -1
  153. package/dist/src/components/media-player-fullscreen.js +0 -68
  154. package/dist/src/components/media-player-hls.d.ts.map +0 -1
  155. package/dist/src/components/media-player-hls.js +0 -20
  156. package/dist/src/components/media-player-loading.d.ts.map +0 -1
  157. package/dist/src/components/media-player-loading.js +0 -53
  158. package/dist/src/components/media-player-play.d.ts.map +0 -1
  159. package/dist/src/components/media-player-play.js +0 -44
  160. package/dist/src/components/media-player-root.d.ts.map +0 -1
  161. package/dist/src/components/media-player-root.js +0 -243
  162. package/dist/src/components/media-player-seek.d.ts.map +0 -1
  163. package/dist/src/components/media-player-seek.js +0 -92
  164. package/dist/src/components/media-player-time.d.ts.map +0 -1
  165. package/dist/src/components/media-player-time.js +0 -57
  166. package/dist/src/components/media-player-tooltip.d.ts.map +0 -1
  167. package/dist/src/components/media-player-tooltip.js +0 -14
  168. package/dist/src/components/media-player-video.d.ts.map +0 -1
  169. package/dist/src/components/media-player-video.js +0 -18
  170. package/dist/src/components/media-player-volume.d.ts.map +0 -1
  171. package/dist/src/components/media-player-volume.js +0 -88
  172. package/dist/src/components/media-player.d.ts.map +0 -1
  173. package/dist/src/components/media-player.js +0 -67
  174. package/dist/src/components/media-suspense.d.ts.map +0 -1
  175. package/dist/src/components/media-suspense.js +0 -173
  176. package/dist/src/components/player-settings-form.d.ts.map +0 -1
  177. package/dist/src/components/player-settings-form.js +0 -46
  178. package/dist/src/components/react-player-wrapper.d.ts.map +0 -1
  179. package/dist/src/components/react-player-wrapper.js +0 -163
  180. package/dist/src/components/simple-video-player.d.ts.map +0 -1
  181. package/dist/src/components/simple-video-player.js +0 -41
  182. package/dist/src/components/ui/enhanced-seek-bar.d.ts.map +0 -1
  183. package/dist/src/components/ui/enhanced-seek-bar.js +0 -112
  184. package/dist/src/components/ui/fullscreen-button.d.ts.map +0 -1
  185. package/dist/src/components/ui/fullscreen-button.js +0 -21
  186. package/dist/src/components/ui/media-resource-preloader.d.ts.map +0 -1
  187. package/dist/src/components/ui/media-resource-preloader.js +0 -295
  188. package/dist/src/components/ui/play-button.d.ts.map +0 -1
  189. package/dist/src/components/ui/play-button.js +0 -26
  190. package/dist/src/components/ui/seek-bar.d.ts.map +0 -1
  191. package/dist/src/components/ui/seek-bar.js +0 -54
  192. package/dist/src/components/ui/time-display.d.ts.map +0 -1
  193. package/dist/src/components/ui/time-display.js +0 -18
  194. package/dist/src/components/ui/volume-control.d.ts.map +0 -1
  195. package/dist/src/components/ui/volume-control.js +0 -71
  196. package/dist/src/components/unified/base-media-player.d.ts.map +0 -1
  197. package/dist/src/components/unified/base-media-player.js +0 -104
  198. package/dist/src/components/unified/media-player.d.ts.map +0 -1
  199. package/dist/src/components/unified/media-player.js +0 -41
  200. package/dist/src/components/variants/minimal/AccessibleMinimalPlayer.d.ts.map +0 -1
  201. package/dist/src/components/variants/minimal/AccessibleMinimalPlayer.js +0 -322
  202. package/dist/src/components/variants/minimal/EnhancedMinimalMediaPlayer.d.ts.map +0 -1
  203. package/dist/src/components/variants/minimal/EnhancedMinimalMediaPlayer.js +0 -280
  204. package/dist/src/components/variants/minimal/MinimalControls.d.ts.map +0 -1
  205. package/dist/src/components/variants/minimal/MinimalControls.js +0 -19
  206. package/dist/src/components/variants/minimal/MinimalLoading.d.ts.map +0 -1
  207. package/dist/src/components/variants/minimal/MinimalLoading.js +0 -6
  208. package/dist/src/components/variants/minimal/MinimalMediaPlayer.d.ts.map +0 -1
  209. package/dist/src/components/variants/minimal/MinimalMediaPlayer.js +0 -135
  210. package/dist/src/components/variants/minimal/MinimalOverlay.d.ts.map +0 -1
  211. package/dist/src/components/variants/minimal/MinimalOverlay.js +0 -15
  212. package/dist/src/components/variants/minimal/MinimalPlayButton.d.ts.map +0 -1
  213. package/dist/src/components/variants/minimal/MinimalPlayButton.js +0 -29
  214. package/dist/src/components/variants/minimal/MinimalSeekBar.d.ts.map +0 -1
  215. package/dist/src/components/variants/minimal/MinimalSeekBar.js +0 -73
  216. package/dist/src/components/variants/minimal/MinimalVolumeControl.d.ts.map +0 -1
  217. package/dist/src/components/variants/minimal/MinimalVolumeControl.js +0 -29
  218. package/dist/src/components/variants/minimal/SimpleMinimalPlayer.d.ts.map +0 -1
  219. package/dist/src/components/variants/minimal/SimpleMinimalPlayer.js +0 -51
  220. package/dist/src/components/variants/minimal/components/CenterPlayButton.d.ts.map +0 -1
  221. package/dist/src/components/variants/minimal/components/CenterPlayButton.js +0 -8
  222. package/dist/src/components/variants/minimal/components/ControlBar.d.ts.map +0 -1
  223. package/dist/src/components/variants/minimal/components/ControlBar.js +0 -10
  224. package/dist/src/components/variants/minimal/components/EnhancedSettingsMenu.d.ts.map +0 -1
  225. package/dist/src/components/variants/minimal/components/EnhancedSettingsMenu.js +0 -68
  226. package/dist/src/components/variants/minimal/components/PlaybackControls.d.ts.map +0 -1
  227. package/dist/src/components/variants/minimal/components/PlaybackControls.js +0 -9
  228. package/dist/src/components/variants/minimal/components/RightControls.d.ts.map +0 -1
  229. package/dist/src/components/variants/minimal/components/RightControls.js +0 -40
  230. package/dist/src/components/variants/minimal/components/SeekBar.d.ts.map +0 -1
  231. package/dist/src/components/variants/minimal/components/SeekBar.js +0 -43
  232. package/dist/src/components/variants/minimal/components/SettingsDropdown.d.ts.map +0 -1
  233. package/dist/src/components/variants/minimal/components/SettingsDropdown.js +0 -18
  234. package/dist/src/components/variants/minimal/components/SubtitleDisplay.d.ts.map +0 -1
  235. package/dist/src/components/variants/minimal/components/SubtitleDisplay.js +0 -6
  236. package/dist/src/components/variants/minimal/components/TimeDisplay.d.ts.map +0 -1
  237. package/dist/src/components/variants/minimal/components/TimeDisplay.js +0 -5
  238. package/dist/src/components/variants/minimal/components/VideoElement.d.ts.map +0 -1
  239. package/dist/src/components/variants/minimal/components/VideoElement.js +0 -4
  240. package/dist/src/components/variants/minimal/components/VolumeControl.d.ts.map +0 -1
  241. package/dist/src/components/variants/minimal/components/VolumeControl.js +0 -99
  242. package/dist/src/components/variants/minimal/index.d.ts.map +0 -1
  243. package/dist/src/components/variants/minimal/index.js +0 -8
  244. package/dist/src/components/video-player.d.ts.map +0 -1
  245. package/dist/src/components/video-player.js +0 -38
  246. package/dist/src/context/error-handling.d.ts.map +0 -1
  247. package/dist/src/context/error-handling.js +0 -300
  248. package/dist/src/context/media-context.d.ts.map +0 -1
  249. package/dist/src/context/media-context.js +0 -121
  250. package/dist/src/context/media-provider.d.ts.map +0 -1
  251. package/dist/src/context/media-provider.js +0 -164
  252. package/dist/src/context/media-store.d.ts.map +0 -1
  253. package/dist/src/context/media-store.js +0 -273
  254. package/dist/src/context/persistence.d.ts.map +0 -1
  255. package/dist/src/context/persistence.js +0 -356
  256. package/dist/src/core/events/event-system.d.ts.map +0 -1
  257. package/dist/src/core/events/event-system.js +0 -288
  258. package/dist/src/core/events/hooks.d.ts.map +0 -1
  259. package/dist/src/core/events/hooks.js +0 -198
  260. package/dist/src/core/events/index.d.ts.map +0 -1
  261. package/dist/src/core/events/index.js +0 -7
  262. package/dist/src/core/events/middleware.d.ts.map +0 -1
  263. package/dist/src/core/events/middleware.js +0 -219
  264. package/dist/src/core/index.d.ts.map +0 -1
  265. package/dist/src/core/index.js +0 -15
  266. package/dist/src/core/optimization/bundle-optimizer.d.ts.map +0 -1
  267. package/dist/src/core/optimization/bundle-optimizer.js +0 -217
  268. package/dist/src/core/performance/cicd.d.ts.map +0 -1
  269. package/dist/src/core/performance/cicd.js +0 -83
  270. package/dist/src/core/performance/index.d.ts.map +0 -1
  271. package/dist/src/core/performance/index.js +0 -14
  272. package/dist/src/core/performance/media-loading-optimizer.d.ts.map +0 -1
  273. package/dist/src/core/performance/media-loading-optimizer.js +0 -404
  274. package/dist/src/core/performance/performance-budgets.d.ts.map +0 -1
  275. package/dist/src/core/performance/performance-budgets.js +0 -326
  276. package/dist/src/core/performance/performance-monitor.d.ts.map +0 -1
  277. package/dist/src/core/performance/performance-monitor.js +0 -297
  278. package/dist/src/core/performance/performance-testing.d.ts.map +0 -1
  279. package/dist/src/core/performance/performance-testing.js +0 -314
  280. package/dist/src/core/plugins/base-plugin.d.ts.map +0 -1
  281. package/dist/src/core/plugins/base-plugin.js +0 -151
  282. package/dist/src/core/plugins/enhanced-plugin-system.d.ts.map +0 -1
  283. package/dist/src/core/plugins/enhanced-plugin-system.js +0 -305
  284. package/dist/src/core/plugins/examples/analytics-plugin.d.ts.map +0 -1
  285. package/dist/src/core/plugins/examples/analytics-plugin.js +0 -191
  286. package/dist/src/core/plugins/index.d.ts.map +0 -1
  287. package/dist/src/core/plugins/index.js +0 -9
  288. package/dist/src/core/plugins/registry.d.ts.map +0 -1
  289. package/dist/src/core/plugins/registry.js +0 -261
  290. package/dist/src/core/plugins/types.d.ts.map +0 -1
  291. package/dist/src/core/plugins/types.js +0 -31
  292. package/dist/src/core/plugins/utils.d.ts.map +0 -1
  293. package/dist/src/core/plugins/utils.js +0 -274
  294. package/dist/src/core/progressive-loading.d.ts.map +0 -1
  295. package/dist/src/core/progressive-loading.js +0 -239
  296. package/dist/src/core/providers/enhanced-hls-provider.d.ts.map +0 -1
  297. package/dist/src/core/providers/enhanced-hls-provider.js +0 -273
  298. package/dist/src/core/providers/service-provider.d.ts.map +0 -1
  299. package/dist/src/core/providers/service-provider.js +0 -105
  300. package/dist/src/core/utils.d.ts.map +0 -1
  301. package/dist/src/core/utils.js +0 -21
  302. package/dist/src/features/media-session/media-session-manager.d.ts.map +0 -1
  303. package/dist/src/features/media-session/media-session-manager.js +0 -331
  304. package/dist/src/features/picture-in-picture/pip-manager.d.ts.map +0 -1
  305. package/dist/src/features/picture-in-picture/pip-manager.js +0 -353
  306. package/dist/src/features/playlist/playlist-manager.d.ts.map +0 -1
  307. package/dist/src/features/playlist/playlist-manager.js +0 -475
  308. package/dist/src/features/subtitles/subtitle-manager.d.ts.map +0 -1
  309. package/dist/src/features/subtitles/subtitle-manager.js +0 -335
  310. package/dist/src/features/subtitles/subtitle-parser.d.ts.map +0 -1
  311. package/dist/src/features/subtitles/subtitle-parser.js +0 -217
  312. package/dist/src/features/thumbnails/thumbnail-generator.d.ts.map +0 -1
  313. package/dist/src/features/thumbnails/thumbnail-generator.js +0 -388
  314. package/dist/src/hooks/accessibility/index.d.ts.map +0 -1
  315. package/dist/src/hooks/accessibility/index.js +0 -4
  316. package/dist/src/hooks/accessibility/use-accessibility-preferences.d.ts.map +0 -1
  317. package/dist/src/hooks/accessibility/use-accessibility-preferences.js +0 -156
  318. package/dist/src/hooks/accessibility/use-focus-management.d.ts.map +0 -1
  319. package/dist/src/hooks/accessibility/use-focus-management.js +0 -142
  320. package/dist/src/hooks/accessibility/use-keyboard-shortcuts.d.ts.map +0 -1
  321. package/dist/src/hooks/accessibility/use-keyboard-shortcuts.js +0 -101
  322. package/dist/src/hooks/accessibility/use-screen-reader.d.ts.map +0 -1
  323. package/dist/src/hooks/accessibility/use-screen-reader.js +0 -148
  324. package/dist/src/hooks/core/index.d.ts.map +0 -1
  325. package/dist/src/hooks/core/index.js +0 -19
  326. package/dist/src/hooks/legacy.d.ts.map +0 -1
  327. package/dist/src/hooks/legacy.js +0 -17
  328. package/dist/src/hooks/use-enhanced-media-player.d.ts.map +0 -1
  329. package/dist/src/hooks/use-enhanced-media-player.js +0 -395
  330. package/dist/src/hooks/use-intelligent-preloading.d.ts.map +0 -1
  331. package/dist/src/hooks/use-intelligent-preloading.js +0 -258
  332. package/dist/src/hooks/use-keyboard-controls.d.ts.map +0 -1
  333. package/dist/src/hooks/use-keyboard-controls.js +0 -83
  334. package/dist/src/hooks/use-media-actions.d.ts.map +0 -1
  335. package/dist/src/hooks/use-media-actions.js +0 -121
  336. package/dist/src/hooks/use-media-metadata.d.ts.map +0 -1
  337. package/dist/src/hooks/use-media-metadata.js +0 -74
  338. package/dist/src/hooks/use-media-optimistic.d.ts.map +0 -1
  339. package/dist/src/hooks/use-media-optimistic.js +0 -205
  340. package/dist/src/hooks/use-media-player.d.ts.map +0 -1
  341. package/dist/src/hooks/use-media-player.js +0 -251
  342. package/dist/src/hooks/use-media-state.d.ts.map +0 -1
  343. package/dist/src/hooks/use-media-state.js +0 -162
  344. package/dist/src/hooks/use-memory-optimization.d.ts.map +0 -1
  345. package/dist/src/hooks/use-memory-optimization.js +0 -288
  346. package/dist/src/hooks/use-optimistic-controls.d.ts.map +0 -1
  347. package/dist/src/hooks/use-optimistic-controls.js +0 -60
  348. package/dist/src/hooks/use-optimized-media.d.ts.map +0 -1
  349. package/dist/src/hooks/use-optimized-media.js +0 -211
  350. package/dist/src/hooks/use-touch-gestures.d.ts.map +0 -1
  351. package/dist/src/hooks/use-touch-gestures.js +0 -289
  352. package/dist/src/hooks/useEnhancedSubtitles.d.ts.map +0 -1
  353. package/dist/src/hooks/useEnhancedSubtitles.js +0 -205
  354. package/dist/src/hooks/useKeyboardShortcuts.d.ts.map +0 -1
  355. package/dist/src/hooks/useKeyboardShortcuts.js +0 -59
  356. package/dist/src/hooks/useMediaControls.d.ts.map +0 -1
  357. package/dist/src/hooks/useMediaControls.js +0 -44
  358. package/dist/src/hooks/useScreenshot.d.ts.map +0 -1
  359. package/dist/src/hooks/useScreenshot.js +0 -56
  360. package/dist/src/hooks/useSubtitles.d.ts.map +0 -1
  361. package/dist/src/hooks/useSubtitles.js +0 -73
  362. package/dist/src/hooks/useVideoPlayer.d.ts.map +0 -1
  363. package/dist/src/hooks/useVideoPlayer.js +0 -184
  364. package/dist/src/icons/components/FullscreenIcon.d.ts.map +0 -1
  365. package/dist/src/icons/components/FullscreenIcon.js +0 -11
  366. package/dist/src/icons/components/SettingsIcon.d.ts.map +0 -1
  367. package/dist/src/icons/components/SettingsIcon.js +0 -11
  368. package/dist/src/icons/components/animated/LoadingIcon.d.ts.map +0 -1
  369. package/dist/src/icons/components/animated/LoadingIcon.js +0 -11
  370. package/dist/src/icons/components/animated/PlayPauseIcon.d.ts.map +0 -1
  371. package/dist/src/icons/components/animated/PlayPauseIcon.js +0 -9
  372. package/dist/src/icons/components/media/PauseIcon.d.ts.map +0 -1
  373. package/dist/src/icons/components/media/PauseIcon.js +0 -12
  374. package/dist/src/icons/components/media/PlayIcon.d.ts.map +0 -1
  375. package/dist/src/icons/components/media/PlayIcon.js +0 -12
  376. package/dist/src/icons/components/volume/VolumeIcon.d.ts.map +0 -1
  377. package/dist/src/icons/components/volume/VolumeIcon.js +0 -11
  378. package/dist/src/icons/components/volume/VolumeOffIcon.d.ts.map +0 -1
  379. package/dist/src/icons/components/volume/VolumeOffIcon.js +0 -11
  380. package/dist/src/icons/index.d.ts.map +0 -1
  381. package/dist/src/icons/index.js +0 -45
  382. package/dist/src/icons/provider.d.ts.map +0 -1
  383. package/dist/src/icons/provider.js +0 -37
  384. package/dist/src/icons/types.d.ts.map +0 -1
  385. package/dist/src/icons/types.js +0 -1
  386. package/dist/src/index-enhanced.d.ts.map +0 -1
  387. package/dist/src/index-enhanced.js +0 -16
  388. package/dist/src/index-legacy.d.ts.map +0 -1
  389. package/dist/src/index-legacy.js +0 -97
  390. package/dist/src/index.d.ts.map +0 -1
  391. package/dist/src/index.js +0 -90
  392. package/dist/src/index.minimal.d.ts.map +0 -1
  393. package/dist/src/index.minimal.js +0 -3
  394. package/dist/src/lib/deprecation.d.ts.map +0 -1
  395. package/dist/src/lib/deprecation.js +0 -31
  396. package/dist/src/lib/format-time.d.ts.map +0 -1
  397. package/dist/src/lib/format-time.js +0 -32
  398. package/dist/src/lib/index.d.ts.map +0 -1
  399. package/dist/src/lib/index.js +0 -3
  400. package/dist/src/lib/utils.d.ts.map +0 -1
  401. package/dist/src/lib/utils.js +0 -5
  402. package/dist/src/test/setup.d.ts.map +0 -1
  403. package/dist/src/test/setup.js +0 -65
  404. package/dist/src/types/events.d.ts.map +0 -1
  405. package/dist/src/types/events.js +0 -2
  406. package/dist/src/types/formats.d.ts.map +0 -1
  407. package/dist/src/types/formats.js +0 -63
  408. package/dist/src/types/index.d.ts.map +0 -1
  409. package/dist/src/types/index.js +0 -4
  410. package/dist/utils-Db13763z.cjs +0 -9
  411. package/dist/utils-Db13763z.cjs.map +0 -1
  412. package/dist/utils-nTO4AnHo.js +0 -2809
  413. package/dist/utils-nTO4AnHo.js.map +0 -1
  414. package/dist/utils.js +0 -2
  415. package/dist/utils.js.map +0 -1
  416. package/dist/utils.mjs +0 -7
  417. package/dist/utils.mjs.map +0 -1
  418. package/src/adapters/videojs-adapter.js +0 -350
  419. package/src/components/AnimateLoading.js +0 -41
  420. package/src/components/LoadingState.js +0 -111
  421. package/src/components/accessibility/keyboard-help-overlay.js +0 -90
  422. package/src/components/audio-player.js +0 -31
  423. package/src/components/basic/index.js +0 -29
  424. package/src/components/enhanced/advanced-features.js +0 -64
  425. package/src/components/enhanced/debug-panel.js +0 -94
  426. package/src/components/enhanced/enhanced-controls.js +0 -233
  427. package/src/components/enhanced/enhanced-media-player.js +0 -316
  428. package/src/components/enhanced/error-handling.js +0 -153
  429. package/src/components/enhanced/index.js +0 -10
  430. package/src/components/enhanced/media-player-enhanced.js +0 -250
  431. package/src/components/examples/basic-video-player.js +0 -16
  432. package/src/components/examples/custom-controls-example.js +0 -12
  433. package/src/components/examples/enhanced-controls-example.js +0 -18
  434. package/src/components/examples/enhanced-media-player-example.js +0 -13
  435. package/src/components/examples/loading-states-demo.js +0 -41
  436. package/src/components/examples/react-19-demo.js +0 -104
  437. package/src/components/examples/volume-orientation-demo.js +0 -31
  438. package/src/components/icon-demo.js +0 -16
  439. package/src/components/icons/index.js +0 -59
  440. package/src/components/icons/svg-icons/ArrowLeftIcon.js +0 -3
  441. package/src/components/icons/svg-icons/ArrowRightIcon.js +0 -3
  442. package/src/components/icons/svg-icons/AudioIcon.js +0 -4
  443. package/src/components/icons/svg-icons/BackwardIcon.js +0 -3
  444. package/src/components/icons/svg-icons/CameraIcon.js +0 -4
  445. package/src/components/icons/svg-icons/CheckIcon.js +0 -4
  446. package/src/components/icons/svg-icons/EnablePiPIcon.js +0 -5
  447. package/src/components/icons/svg-icons/ForwardIcon.js +0 -3
  448. package/src/components/icons/svg-icons/FullscreenEnterIcon.js +0 -3
  449. package/src/components/icons/svg-icons/FullscreenExitIcon.js +0 -3
  450. package/src/components/icons/svg-icons/LoadingIcon.js +0 -3
  451. package/src/components/icons/svg-icons/PauseIcon.js +0 -3
  452. package/src/components/icons/svg-icons/PlayIcon.js +0 -3
  453. package/src/components/icons/svg-icons/PlaybackSpeedIcon.js +0 -3
  454. package/src/components/icons/svg-icons/QualityIcon.js +0 -3
  455. package/src/components/icons/svg-icons/SettingsIcon.js +0 -3
  456. package/src/components/icons/svg-icons/SliderIcon.js +0 -3
  457. package/src/components/icons/svg-icons/SubtitleIcon.js +0 -3
  458. package/src/components/icons/svg-icons/SubtitleOffIcon.js +0 -3
  459. package/src/components/icons/svg-icons/UnPiPIcon.js +0 -5
  460. package/src/components/icons/svg-icons/VolumeMutedIcon.js +0 -3
  461. package/src/components/icons/svg-icons/VolumeOneIcon.js +0 -3
  462. package/src/components/icons/svg-icons/VolumeThreeIcon.js +0 -3
  463. package/src/components/icons/svg-icons/VolumeTwoIcon.js +0 -3
  464. package/src/components/legacy.js +0 -52
  465. package/src/components/media-metadata-display.js +0 -20
  466. package/src/components/media-player-audio.js +0 -18
  467. package/src/components/media-player-controls.js +0 -150
  468. package/src/components/media-player-error.js +0 -85
  469. package/src/components/media-player-fullscreen.js +0 -68
  470. package/src/components/media-player-hls.js +0 -20
  471. package/src/components/media-player-loading.js +0 -53
  472. package/src/components/media-player-play.js +0 -44
  473. package/src/components/media-player-root.js +0 -243
  474. package/src/components/media-player-seek.js +0 -92
  475. package/src/components/media-player-time.js +0 -57
  476. package/src/components/media-player-tooltip.js +0 -14
  477. package/src/components/media-player-video.js +0 -18
  478. package/src/components/media-player-volume.js +0 -88
  479. package/src/components/media-player.js +0 -67
  480. package/src/components/media-suspense.js +0 -173
  481. package/src/components/player-settings-form.js +0 -46
  482. package/src/components/react-player-wrapper.js +0 -163
  483. package/src/components/simple-video-player.js +0 -41
  484. package/src/components/ui/enhanced-seek-bar.js +0 -112
  485. package/src/components/ui/fullscreen-button.js +0 -21
  486. package/src/components/ui/media-resource-preloader.js +0 -295
  487. package/src/components/ui/play-button.js +0 -26
  488. package/src/components/ui/seek-bar.js +0 -54
  489. package/src/components/ui/time-display.js +0 -18
  490. package/src/components/ui/volume-control.js +0 -71
  491. package/src/components/unified/base-media-player.js +0 -104
  492. package/src/components/unified/media-player.js +0 -41
  493. package/src/components/variants/minimal/AccessibleMinimalPlayer.js +0 -322
  494. package/src/components/variants/minimal/EnhancedMinimalMediaPlayer.js +0 -280
  495. package/src/components/variants/minimal/MinimalControls.js +0 -19
  496. package/src/components/variants/minimal/MinimalLoading.js +0 -6
  497. package/src/components/variants/minimal/MinimalMediaPlayer.js +0 -135
  498. package/src/components/variants/minimal/MinimalOverlay.js +0 -15
  499. package/src/components/variants/minimal/MinimalPlayButton.js +0 -29
  500. package/src/components/variants/minimal/MinimalSeekBar.js +0 -73
  501. package/src/components/variants/minimal/MinimalVolumeControl.js +0 -29
  502. package/src/components/variants/minimal/SimpleMinimalPlayer.js +0 -51
  503. package/src/components/variants/minimal/components/CenterPlayButton.js +0 -8
  504. package/src/components/variants/minimal/components/ControlBar.js +0 -10
  505. package/src/components/variants/minimal/components/EnhancedSettingsMenu.js +0 -68
  506. package/src/components/variants/minimal/components/PlaybackControls.js +0 -9
  507. package/src/components/variants/minimal/components/RightControls.js +0 -40
  508. package/src/components/variants/minimal/components/SeekBar.js +0 -43
  509. package/src/components/variants/minimal/components/SettingsDropdown.js +0 -18
  510. package/src/components/variants/minimal/components/SubtitleDisplay.js +0 -6
  511. package/src/components/variants/minimal/components/TimeDisplay.js +0 -5
  512. package/src/components/variants/minimal/components/VideoElement.js +0 -4
  513. package/src/components/variants/minimal/components/VolumeControl.js +0 -99
  514. package/src/components/variants/minimal/index.js +0 -8
  515. package/src/components/video-player.js +0 -38
  516. package/src/context/error-handling.js +0 -300
  517. package/src/context/media-context.js +0 -121
  518. package/src/context/media-provider.js +0 -164
  519. package/src/context/media-store.js +0 -273
  520. package/src/context/persistence.js +0 -356
  521. package/src/core/events/event-system.js +0 -288
  522. package/src/core/events/hooks.js +0 -198
  523. package/src/core/events/index.js +0 -7
  524. package/src/core/events/middleware.js +0 -219
  525. package/src/core/index.js +0 -15
  526. package/src/core/optimization/bundle-optimizer.js +0 -217
  527. package/src/core/performance/cicd.js +0 -83
  528. package/src/core/performance/index.js +0 -14
  529. package/src/core/performance/media-loading-optimizer.js +0 -404
  530. package/src/core/performance/performance-budgets.js +0 -326
  531. package/src/core/performance/performance-monitor.js +0 -297
  532. package/src/core/performance/performance-testing.js +0 -314
  533. package/src/core/plugins/base-plugin.js +0 -151
  534. package/src/core/plugins/enhanced-plugin-system.js +0 -305
  535. package/src/core/plugins/examples/analytics-plugin.js +0 -191
  536. package/src/core/plugins/index.js +0 -9
  537. package/src/core/plugins/registry.js +0 -261
  538. package/src/core/plugins/types.js +0 -31
  539. package/src/core/plugins/utils.js +0 -274
  540. package/src/core/progressive-loading.js +0 -239
  541. package/src/core/providers/enhanced-hls-provider.js +0 -273
  542. package/src/core/providers/service-provider.js +0 -105
  543. package/src/core/utils.js +0 -21
  544. package/src/features/media-session/media-session-manager.js +0 -331
  545. package/src/features/picture-in-picture/pip-manager.js +0 -353
  546. package/src/features/playlist/playlist-manager.js +0 -475
  547. package/src/features/subtitles/subtitle-manager.js +0 -335
  548. package/src/features/subtitles/subtitle-parser.js +0 -217
  549. package/src/features/thumbnails/thumbnail-generator.js +0 -388
  550. package/src/hooks/accessibility/index.js +0 -4
  551. package/src/hooks/accessibility/use-accessibility-preferences.js +0 -156
  552. package/src/hooks/accessibility/use-focus-management.js +0 -142
  553. package/src/hooks/accessibility/use-keyboard-shortcuts.js +0 -101
  554. package/src/hooks/accessibility/use-screen-reader.js +0 -148
  555. package/src/hooks/core/index.js +0 -19
  556. package/src/hooks/legacy.js +0 -17
  557. package/src/hooks/use-enhanced-media-player.js +0 -395
  558. package/src/hooks/use-intelligent-preloading.js +0 -258
  559. package/src/hooks/use-keyboard-controls.js +0 -83
  560. package/src/hooks/use-media-actions.js +0 -121
  561. package/src/hooks/use-media-metadata.js +0 -74
  562. package/src/hooks/use-media-optimistic.js +0 -205
  563. package/src/hooks/use-media-player.js +0 -251
  564. package/src/hooks/use-media-state.js +0 -162
  565. package/src/hooks/use-memory-optimization.js +0 -288
  566. package/src/hooks/use-optimistic-controls.js +0 -60
  567. package/src/hooks/use-optimized-media.js +0 -211
  568. package/src/hooks/use-touch-gestures.js +0 -289
  569. package/src/hooks/useEnhancedSubtitles.js +0 -205
  570. package/src/hooks/useKeyboardShortcuts.js +0 -59
  571. package/src/hooks/useMediaControls.js +0 -44
  572. package/src/hooks/useScreenshot.js +0 -56
  573. package/src/hooks/useSubtitles.js +0 -73
  574. package/src/hooks/useVideoPlayer.js +0 -184
  575. package/src/icons/components/FullscreenIcon.js +0 -11
  576. package/src/icons/components/SettingsIcon.js +0 -11
  577. package/src/icons/components/animated/LoadingIcon.js +0 -11
  578. package/src/icons/components/animated/PlayPauseIcon.js +0 -9
  579. package/src/icons/components/media/PauseIcon.js +0 -12
  580. package/src/icons/components/media/PlayIcon.js +0 -12
  581. package/src/icons/components/volume/VolumeIcon.js +0 -11
  582. package/src/icons/components/volume/VolumeOffIcon.js +0 -11
  583. package/src/icons/index.js +0 -45
  584. package/src/icons/provider.js +0 -37
  585. package/src/icons/types.js +0 -1
  586. package/src/index-enhanced.js +0 -16
  587. package/src/index-legacy.js +0 -97
  588. package/src/index.js +0 -90
  589. package/src/index.minimal.js +0 -3
  590. package/src/lib/deprecation.js +0 -31
  591. package/src/lib/format-time.js +0 -32
  592. package/src/lib/index.js +0 -3
  593. package/src/lib/utils.js +0 -5
  594. package/src/test/setup.js +0 -65
  595. package/src/types/events.js +0 -2
  596. package/src/types/formats.js +0 -63
  597. package/src/types/index.js +0 -4
@@ -1,295 +0,0 @@
1
- /**
2
- * Media Resource Preloader using React 19's resource preloading APIs
3
- * Implements intelligent preloading strategies based on user behavior and network conditions
4
- */
5
- import { useEffect, useRef, useMemo } from 'react';
6
- import { prefetchDNS, preconnect, preload, preinit } from 'react-dom';
7
- export const MediaResourcePreloader = ({ sources, enableIntelligentPreloading = true, adaptToNetworkConditions = true, priority = 'auto', strategy = 'adaptive', }) => {
8
- const networkInfoRef = useRef(null);
9
- const userBehaviorRef = useRef(null);
10
- const preloadingHistoryRef = useRef(new Map());
11
- // Analyze sources and determine preloading configuration
12
- const preloadingConfig = useMemo(() => {
13
- const config = {
14
- dnsPrefetch: [],
15
- preconnect: [],
16
- preload: [],
17
- preinit: [],
18
- };
19
- sources.forEach((source) => {
20
- const url = new URL(source.src);
21
- const domain = url.origin;
22
- // DNS prefetch for CDN domains
23
- if (isCDNDomain(domain)) {
24
- config.dnsPrefetch.push(domain);
25
- }
26
- // Preconnect to media domains
27
- if (shouldPreconnect(source.type, strategy)) {
28
- config.preconnect.push(domain);
29
- }
30
- // Preload media files based on strategy
31
- if (shouldPreload(source, priority, strategy)) {
32
- config.preload.push({
33
- url: source.src,
34
- type: getPreloadType(source.type),
35
- });
36
- }
37
- // Preinit critical resources
38
- if (shouldPreinit(source, strategy)) {
39
- config.preinit.push({
40
- url: source.src,
41
- type: 'script',
42
- });
43
- }
44
- });
45
- return config;
46
- }, [sources, priority, strategy]);
47
- // Initialize network monitoring
48
- useEffect(() => {
49
- if (adaptToNetworkConditions && 'connection' in navigator) {
50
- networkInfoRef.current = navigator.connection;
51
- const handleNetworkChange = () => {
52
- adjustPreloadingStrategy();
53
- };
54
- networkInfoRef.current.addEventListener('change', handleNetworkChange);
55
- return () => {
56
- networkInfoRef.current?.removeEventListener('change', handleNetworkChange);
57
- };
58
- }
59
- }, [adaptToNetworkConditions]);
60
- // Initialize user behavior tracking
61
- useEffect(() => {
62
- if (enableIntelligentPreloading) {
63
- userBehaviorRef.current = new UserBehaviorTracker();
64
- userBehaviorRef.current.startTracking();
65
- return () => {
66
- userBehaviorRef.current?.stopTracking();
67
- };
68
- }
69
- }, [enableIntelligentPreloading]);
70
- // Apply DNS prefetching
71
- useEffect(() => {
72
- preloadingConfig.dnsPrefetch.forEach((domain) => {
73
- prefetchDNS(domain);
74
- });
75
- }, [preloadingConfig.dnsPrefetch]);
76
- // Apply preconnections
77
- useEffect(() => {
78
- preloadingConfig.preconnect.forEach((origin) => {
79
- preconnect(origin, { crossOrigin: 'anonymous' });
80
- });
81
- }, [preloadingConfig.preconnect]);
82
- // Apply preloading
83
- useEffect(() => {
84
- preloadingConfig.preload.forEach(({ url, type }) => {
85
- const crossOrigin = shouldUseCrossOrigin(url) ? 'anonymous' : undefined;
86
- preload(url, {
87
- as: type,
88
- crossOrigin,
89
- integrity: getAssetIntegrity(url),
90
- priority,
91
- });
92
- });
93
- }, [preloadingConfig.preload, priority]);
94
- // Apply preinit for critical resources
95
- useEffect(() => {
96
- preloadingConfig.preinit.forEach(({ url, type }) => {
97
- const crossOrigin = shouldUseCrossOrigin(url) ? 'anonymous' : undefined;
98
- preinit(url, {
99
- as: type,
100
- crossOrigin,
101
- });
102
- });
103
- }, [preloadingConfig.preinit]);
104
- // Intelligent preloading based on user behavior
105
- useEffect(() => {
106
- if (!enableIntelligentPreloading || !userBehaviorRef.current)
107
- return;
108
- const handleUserBehavior = (behavior) => {
109
- if (behavior.isLikelyToInteract) {
110
- preloadLikelyContent(behavior.predictedSources);
111
- }
112
- };
113
- userBehaviorRef.current.onBehaviorChange(handleUserBehavior);
114
- }, [enableIntelligentPreloading]);
115
- // Helper functions
116
- function isCDNDomain(domain) {
117
- const cdnDomains = [
118
- 'cdn.jsdelivr.net',
119
- 'cdnjs.cloudflare.com',
120
- 'unpkg.com',
121
- 'cloudflare.com',
122
- 'fastly.net',
123
- 'akamaized.net',
124
- ];
125
- return cdnDomains.some((cdn) => domain.includes(cdn));
126
- }
127
- function shouldPreconnect(mediaType, strategy) {
128
- if (strategy === 'aggressive')
129
- return true;
130
- if (strategy === 'conservative')
131
- return ['hls', 'm3u8'].includes(mediaType);
132
- return ['hls', 'm3u8', 'mp4'].includes(mediaType);
133
- }
134
- function shouldPreload(source, priority, strategy) {
135
- // Check if already preloaded recently
136
- const lastPreload = preloadingHistoryRef.current.get(source.src);
137
- if (lastPreload && Date.now() - lastPreload < 300000)
138
- return false; // 5 minutes
139
- // Strategy-based decision
140
- if (strategy === 'conservative') {
141
- return priority === 'high' && source.type === 'hls';
142
- }
143
- if (strategy === 'aggressive') {
144
- return true;
145
- }
146
- // Adaptive strategy
147
- return shouldAdaptivePreload(source, priority);
148
- }
149
- function shouldAdaptivePreload(source, priority) {
150
- // Consider network conditions
151
- if (networkInfoRef.current) {
152
- const { effectiveType, saveData } = networkInfoRef.current;
153
- if (saveData)
154
- return false;
155
- if (effectiveType === 'slow-2g' || effectiveType === '2g') {
156
- return priority === 'high' && source.type === 'hls';
157
- }
158
- if (effectiveType === '3g') {
159
- return ['hls', 'm3u8'].includes(source.type);
160
- }
161
- }
162
- // Consider user behavior
163
- if (userBehaviorRef.current) {
164
- const behavior = userBehaviorRef.current.getCurrentBehavior();
165
- if (behavior.engagementScore > 0.7) {
166
- return true;
167
- }
168
- }
169
- return priority !== 'low';
170
- }
171
- function shouldPreinit(source, strategy) {
172
- return strategy === 'aggressive' && source.type === 'hls';
173
- }
174
- function getPreloadType(mediaType) {
175
- switch (mediaType) {
176
- case 'hls':
177
- case 'm3u8':
178
- return 'fetch';
179
- case 'mp4':
180
- case 'webm':
181
- return 'video';
182
- case 'mp3':
183
- case 'wav':
184
- return 'audio';
185
- default:
186
- return 'fetch';
187
- }
188
- }
189
- function shouldUseCrossOrigin(url) {
190
- return !url.includes(window.location.origin);
191
- }
192
- function getAssetIntegrity(url) {
193
- // Return integrity hash if available for the asset
194
- // This would typically come from a build process or asset manifest
195
- return undefined;
196
- }
197
- function adjustPreloadingStrategy() {
198
- // Adjust preloading based on network conditions
199
- if (!networkInfoRef.current)
200
- return;
201
- const { effectiveType, downlink } = networkInfoRef.current;
202
- // This would update the preloading configuration
203
- // Implementation depends on specific requirements
204
- }
205
- function preloadLikelyContent(sources) {
206
- sources.forEach((url) => {
207
- // Mark as preloaded
208
- preloadingHistoryRef.current.set(url, Date.now());
209
- // Preload the content
210
- preload(url, {
211
- as: 'fetch',
212
- crossOrigin: 'anonymous',
213
- priority: 'high',
214
- });
215
- });
216
- }
217
- // This component doesn't render anything visible
218
- return null;
219
- };
220
- /**
221
- * User behavior tracker for intelligent preloading
222
- */
223
- class UserBehaviorTracker {
224
- behaviorData = {
225
- isLikelyToInteract: false,
226
- engagementScore: 0,
227
- predictedSources: [],
228
- interactionHistory: [],
229
- };
230
- listeners = [];
231
- mouseMoveTimer = null;
232
- startTracking() {
233
- // Track mouse movements as interaction indicators
234
- document.addEventListener('mousemove', this.handleMouseMove);
235
- document.addEventListener('scroll', this.handleScroll);
236
- document.addEventListener('keydown', this.handleKeydown);
237
- // Track focus events
238
- document.addEventListener('focusin', this.handleFocus);
239
- document.addEventListener('visibilitychange', this.handleVisibilityChange);
240
- }
241
- stopTracking() {
242
- document.removeEventListener('mousemove', this.handleMouseMove);
243
- document.removeEventListener('scroll', this.handleScroll);
244
- document.removeEventListener('keydown', this.handleKeydown);
245
- document.removeEventListener('focusin', this.handleFocus);
246
- document.removeEventListener('visibilitychange', this.handleVisibilityChange);
247
- if (this.mouseMoveTimer) {
248
- clearTimeout(this.mouseMoveTimer);
249
- }
250
- }
251
- onBehaviorChange(listener) {
252
- this.listeners.push(listener);
253
- }
254
- getCurrentBehavior() {
255
- return this.behaviorData;
256
- }
257
- handleMouseMove = () => {
258
- if (this.mouseMoveTimer)
259
- return;
260
- this.mouseMoveTimer = window.setTimeout(() => {
261
- this.updateEngagementScore(0.1);
262
- this.mouseMoveTimer = null;
263
- }, 100);
264
- };
265
- handleScroll = () => {
266
- this.updateEngagementScore(0.2);
267
- };
268
- handleKeydown = () => {
269
- this.updateEngagementScore(0.3);
270
- this.behaviorData.isLikelyToInteract = true;
271
- };
272
- handleFocus = () => {
273
- this.updateEngagementScore(0.4);
274
- this.behaviorData.isLikelyToInteract = true;
275
- };
276
- handleVisibilityChange = () => {
277
- if (!document.hidden) {
278
- this.updateEngagementScore(0.5);
279
- this.behaviorData.isLikelyToInteract = true;
280
- }
281
- };
282
- updateEngagementScore(increment) {
283
- this.behaviorData.engagementScore = Math.min(1, this.behaviorData.engagementScore + increment);
284
- // Decay engagement score over time
285
- setTimeout(() => {
286
- this.behaviorData.engagementScore = Math.max(0, this.behaviorData.engagementScore - increment * 0.5);
287
- this.notifyListeners();
288
- }, 30000); // 30 seconds decay
289
- this.notifyListeners();
290
- }
291
- notifyListeners() {
292
- this.listeners.forEach((listener) => listener(this.behaviorData));
293
- }
294
- }
295
- export default MediaResourcePreloader;
@@ -1 +0,0 @@
1
- {"version":3,"file":"play-button.d.ts","sourceRoot":"","sources":["play-button.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AASxD,eAAO,MAAM,UAAU,+GA0FtB,CAAA"}
@@ -1,26 +0,0 @@
1
- "use client";
2
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
- import { Pause, Play } from "lucide-react";
4
- import { forwardRef } from "react";
5
- import { cn } from "../../lib/utils";
6
- const sizeVariants = {
7
- sm: { button: "size-8", icon: 16 },
8
- md: { button: "size-10", icon: 20 },
9
- lg: { button: "size-12", icon: 24 },
10
- xl: { button: "size-16", icon: 32 }
11
- };
12
- export const PlayButton = forwardRef(({ isPlaying, onToggle, disabled = false, size = "lg", className }, ref) => {
13
- const sizeConfig = sizeVariants[size] || sizeVariants.lg;
14
- return (_jsxs("button", { ref: ref, type: "button", onClick: onToggle, disabled: disabled, "data-state": isPlaying ? "playing" : "paused", className: cn(
15
- // Base styles with new design system
16
- "group relative inline-flex items-center justify-center", "glass-strong media-control rounded-full contain-layout", "focus-ring touch-manipulation", sizeConfig.button,
17
- // Color transitions with OKLCH
18
- "text-[color:var(--media-text)] transition-all duration-300", "bg-[color:var(--media-control-bg)] backdrop-blur-sm", "border border-[color:var(--media-border)]/30",
19
- // Interactive states
20
- "hover:bg-[color:var(--media-control-hover)]", "hover:border-[color:var(--media-border)]/50", "hover:shadow-[color:var(--media-bg)]/20 hover:shadow-lg", "hover:-translate-y-0.5 hover:scale-105", "active:bg-[color:var(--media-control-active)]", "active:translate-y-0 active:scale-100",
21
- // Focus state
22
- "focus-visible:ring-2 focus-visible:ring-[color:var(--media-focus)]", "focus-visible:ring-offset-2 focus-visible:ring-offset-[color:var(--media-bg)]",
23
- // Disabled state
24
- "disabled:cursor-not-allowed disabled:opacity-50", "disabled:hover:translate-y-0 disabled:hover:scale-100", "disabled:hover:bg-[color:var(--media-control-bg)]", className), "aria-label": isPlaying ? "Pause media" : "Play media", "aria-pressed": isPlaying, children: [_jsx("div", { className: cn("absolute inset-0 rounded-full opacity-0 transition-opacity duration-300", "bg-gradient-to-br from-[color:var(--color-media-play)] to-[color:var(--color-media-pause)]", "blur-sm group-hover:opacity-20", isPlaying && "opacity-10") }), isPlaying ? (_jsx(Pause, { size: sizeConfig.icon, className: cn("relative z-10 fill-current transition-all duration-200", "text-[color:var(--color-media-pause)]", "group-hover:scale-110 group-active:scale-95", "drop-shadow-sm") })) : (_jsx(Play, { size: sizeConfig.icon, className: cn("relative z-10 fill-current transition-all duration-200", "ml-0.5 text-[color:var(--color-media-play)]", "group-hover:scale-110 group-active:scale-95", "drop-shadow-sm") })), _jsx("div", { className: cn("absolute inset-0 rounded-full opacity-0", "scale-75 bg-[color:var(--media-text)]/10", "group-active:scale-100 group-active:opacity-100", "transition-all duration-150 ease-out") })] }));
25
- });
26
- PlayButton.displayName = "PlayButton";
@@ -1 +0,0 @@
1
- {"version":3,"file":"seek-bar.d.ts","sourceRoot":"","sources":["seek-bar.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAErD,eAAO,MAAM,OAAO,yGAqJnB,CAAA"}
@@ -1,54 +0,0 @@
1
- "use client";
2
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
- import * as Slider from "@radix-ui/react-slider";
4
- import * as Tooltip from "@radix-ui/react-tooltip";
5
- import { forwardRef, useState, useMemo, useTransition, useDeferredValue, useRef } from "react";
6
- import { formatTime } from "../../lib/format-time";
7
- import { cn } from "../../lib/utils";
8
- export const SeekBar = forwardRef(({ currentTime, duration, buffered, onSeek, size = "sm", className }, ref) => {
9
- // React 19 concurrent features
10
- const [isPending, startTransition] = useTransition();
11
- const [isDragging, setIsDragging] = useState(false);
12
- const [previewTime, setPreviewTime] = useState(0);
13
- const [isHovering, setIsHovering] = useState(false);
14
- // Defer non-critical updates for better performance
15
- const deferredHovering = useDeferredValue(isHovering);
16
- const deferredPreviewTime = useDeferredValue(previewTime);
17
- // Memoize expensive calculations
18
- const progress = useMemo(() => duration > 0 ? (currentTime / duration) * 100 : 0, [currentTime, duration]);
19
- // Calculate buffered ranges with memoization
20
- const bufferedRanges = useMemo(() => {
21
- const ranges = [];
22
- if (buffered && duration > 0) {
23
- for (let i = 0; i < buffered.length; i++) {
24
- const start = (buffered.start(i) / duration) * 100;
25
- const end = (buffered.end(i) / duration) * 100;
26
- ranges.push({ start, end });
27
- }
28
- }
29
- return ranges;
30
- }, [buffered, duration]);
31
- // Throttled seek handler with React 19 transitions
32
- const seekTimeoutRef = useRef();
33
- const lastSeekTime = useRef(0);
34
- const handleValueChange = ([value]) => {
35
- const time = ((value ?? 0) / 100) * duration;
36
- setPreviewTime(time);
37
- if (isDragging) {
38
- onSeek(time);
39
- }
40
- };
41
- const handleValueCommit = ([value]) => {
42
- const time = ((value ?? 0) / 100) * duration;
43
- onSeek(time);
44
- setIsDragging(false);
45
- };
46
- const handlePointerDown = () => {
47
- setIsDragging(true);
48
- };
49
- return (_jsx("div", { ref: ref, className: cn("media-container relative w-full text-[color:var(--media-text)]", "touch-manipulation contain-layout", className), onMouseEnter: () => setIsHovering(true), onMouseLeave: () => setIsHovering(false), children: _jsx(Tooltip.Provider, { children: _jsxs(Tooltip.Root, { children: [_jsx(Tooltip.Trigger, { asChild: true, children: _jsx("div", { className: "relative animate-enter", children: _jsxs(Slider.Root, { className: cn("group relative flex w-full touch-none select-none items-center", "media-md:h-4 media-sm:h-3 media-xs:h-2", "focus-ring cursor-pointer"), value: [progress], max: 100, step: 0.1, onValueChange: handleValueChange, onValueCommit: handleValueCommit, onPointerDown: handlePointerDown, "aria-label": "Seek to position", children: [_jsxs(Slider.Track, { className: cn("relative grow overflow-hidden rounded-full", "bg-[color:var(--media-control-bg)]/40 backdrop-blur-sm", "border border-[color:var(--media-border)]/20", "shadow-inner transition-all duration-300 ease-out", "h-1 group-focus-within:h-1.5 group-hover:h-1.5", "group-hover:bg-[color:var(--media-control-bg)]/60", "group-hover:border-[color:var(--media-border)]/40"), children: [bufferedRanges.map((range, index) => (_jsx("div", { className: cn("absolute h-full rounded-full transition-all duration-500", "bg-[color:var(--color-media-buffered)] shadow-inner", "opacity-60 group-hover:opacity-80"), style: {
50
- left: `${range.start}%`,
51
- width: `${range.end - range.start}%`
52
- } }, index))), _jsx(Slider.Range, { className: cn("absolute h-full rounded-full transition-all duration-300", "bg-gradient-to-r from-[color:var(--color-media-progress)] to-[color:var(--color-brand-accent)]", "shadow-[color:var(--color-brand-primary)]/20 shadow-lg", "group-hover:shadow-xl") })] }), _jsx(Slider.Thumb, { className: cn("block size-4 rounded-full border-white/20 bg-white", "shadow-lg hover:shadow-xl", "opacity-0 group-hover:opacity-100", "hover:scale-110 hover:bg-white/95 active:scale-95", "focus:opacity-100 focus:outline-none focus:ring-2 focus:ring-white/50", "focus:ring-offset-2 focus:ring-offset-black/20", "transition-all duration-300 ease-out", isDragging && "opacity-100"), "aria-label": "Seek" })] }) }) }), isDragging && (_jsx(Tooltip.Portal, { children: _jsxs(Tooltip.Content, { className: cn("rounded bg-black/80 px-2 py-1 text-sm text-white", "fade-in-0 zoom-in-95 animate-in"), sideOffset: 10, children: [formatTime(previewTime), _jsx(Tooltip.Arrow, { className: "fill-black/80" })] }) }))] }) }) }));
53
- });
54
- SeekBar.displayName = "SeekBar";
@@ -1 +0,0 @@
1
- {"version":3,"file":"time-display.d.ts","sourceRoot":"","sources":["time-display.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AAEzD,eAAO,MAAM,WAAW,6GA8BvB,CAAA"}
@@ -1,18 +0,0 @@
1
- "use client";
2
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
- import { forwardRef } from "react";
4
- import { formatTime } from "../../lib/format-time";
5
- import { cn } from "../../lib/utils";
6
- export const TimeDisplay = forwardRef(({ currentTime, duration, showRemaining = false, size = "sm", className }, ref) => {
7
- const current = formatTime(currentTime);
8
- const total = formatTime(duration);
9
- const remaining = formatTime(duration - currentTime);
10
- const sizeClasses = {
11
- sm: "text-xs",
12
- md: "text-sm",
13
- lg: "text-base",
14
- xl: "text-lg"
15
- };
16
- return (_jsxs("div", { ref: ref, className: cn("flex items-center font-mono text-white text-xs", "rounded-lg backdrop-blur-sm", "px-3 py-1.5", sizeClasses[size], "select-none", className), children: [_jsx("span", { className: "tabular-nums", children: current }), _jsx("span", { className: "mx-1 text-white", children: "/" }), _jsx("span", { className: "tabular-nums", children: showRemaining ? `-${remaining}` : total })] }));
17
- });
18
- TimeDisplay.displayName = "TimeDisplay";
@@ -1 +0,0 @@
1
- {"version":3,"file":"volume-control.d.ts","sourceRoot":"","sources":["volume-control.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AA0B3D,eAAO,MAAM,aAAa,+GA2GzB,CAAA"}
@@ -1,71 +0,0 @@
1
- "use client";
2
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
- import * as Slider from "@radix-ui/react-slider";
4
- import * as Tooltip from "@radix-ui/react-tooltip";
5
- import { Volume1, Volume2, VolumeX } from "lucide-react";
6
- import { forwardRef } from "react";
7
- import { cn } from "../../lib/utils";
8
- const sizeConfig = {
9
- md: {
10
- button: "size-10",
11
- icon: 18,
12
- slider: "h-6",
13
- thumb: "size-3",
14
- track: "h-1"
15
- },
16
- lg: {
17
- button: "size-12",
18
- icon: 22,
19
- slider: "h-7",
20
- thumb: "size-4",
21
- track: "h-1.5"
22
- },
23
- xl: {
24
- button: "size-14",
25
- icon: 26,
26
- slider: "h-8",
27
- thumb: "size-5",
28
- track: "h-2"
29
- }
30
- };
31
- export const VolumeControl = forwardRef(({ volume, isMuted, onVolumeChange, onToggleMute, size = "lg", className }, ref) => {
32
- const getVolumeIcon = () => {
33
- if (isMuted || volume === 0) {
34
- return VolumeX;
35
- }
36
- else if (volume < 0.5) {
37
- return Volume1;
38
- }
39
- else {
40
- return Volume2;
41
- }
42
- };
43
- const VolumeIcon = getVolumeIcon();
44
- const buttonSizes = {
45
- md: "h-11 w-11",
46
- lg: "h-12 w-12",
47
- xl: "h-14 w-14"
48
- };
49
- const iconSizes = {
50
- md: "h-5 w-5",
51
- lg: "h-6 w-6",
52
- xl: "h-7 w-7"
53
- };
54
- const sliderHeight = {
55
- md: "h-6",
56
- lg: "h-7",
57
- xl: "h-8"
58
- };
59
- const thumbSize = {
60
- md: "h-4 w-4",
61
- lg: "h-4 w-4",
62
- xl: "h-5 w-5"
63
- };
64
- const trackHeight = {
65
- md: "h-1.5",
66
- lg: "h-2",
67
- xl: "h-2.5"
68
- };
69
- return (_jsxs("div", { ref: ref, className: cn("flex items-center space-x-3 text-white", className), children: [_jsx(Tooltip.Provider, { children: _jsxs(Tooltip.Root, { children: [_jsx(Tooltip.Trigger, { asChild: true, children: _jsx("button", { type: "button", onClick: onToggleMute, className: cn("inline-flex items-center justify-center rounded-lg bg-transparent p-0 text-white transition-all hover:text-cyan-700 active:scale-95", "focus:outline-none focus:ring-2 focus:ring-white/50 focus:ring-offset-2 focus:ring-offset-black/20", buttonSizes[size]), "aria-label": isMuted ? "Unmute" : "Mute", children: _jsx(VolumeIcon, { className: cn(iconSizes[size]) }) }) }), _jsx(Tooltip.Portal, { children: _jsxs(Tooltip.Content, { className: cn("rounded bg-black/80 px-2 py-1 text-sm text-white", "fade-in-0 zoom-in-95 animate-in"), sideOffset: 5, children: [isMuted ? "Unmute" : "Mute", _jsx(Tooltip.Arrow, { className: "fill-black/80" })] }) })] }) }), _jsx("div", { className: "w-32", children: _jsxs(Slider.Root, { className: cn("group relative flex w-full touch-none select-none items-center", sliderHeight[size]), value: [isMuted ? 0 : volume], max: 1, step: 0.01, onValueChange: ([value]) => onVolumeChange(value ?? 0), "aria-label": "Volume", children: [_jsx(Slider.Track, { className: cn("relative grow rounded-full bg-white/20 shadow-inner transition-all duration-300 group-hover:bg-white/30", "border border-white/10", trackHeight[size]), children: _jsx(Slider.Range, { className: "absolute h-full rounded-full bg-white shadow-sm" }) }), _jsx(Slider.Thumb, { className: cn("block rounded-full border-2 border-white/20 bg-white shadow-lg", "transition-all duration-300 ease-out hover:scale-110 hover:bg-white/95 active:scale-95", "focus:outline-none focus:ring-2 focus:ring-white/50 focus:ring-offset-2 focus:ring-offset-black/20", thumbSize[size]), "aria-label": "Volume" })] }) }), _jsx("span", { className: "w-10 text-right text-sm text-white", children: Math.round((isMuted ? 0 : volume) * 100) })] }));
70
- });
71
- VolumeControl.displayName = "VolumeControl";
@@ -1 +0,0 @@
1
- {"version":3,"file":"base-media-player.d.ts","sourceRoot":"","sources":["base-media-player.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAUH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAEnD,MAAM,WAAW,oBAAqB,SAAQ,IAAI,CAAC,gBAAgB,EAAE,QAAQ,GAAG,aAAa,GAAG,OAAO,GAAG,QAAQ,CAAC;IAElH,SAAS,CAAC,EAAE,OAAO,GAAG,OAAO,GAAG,MAAM,CAAA;IAGtC,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACvB,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IAGxB,2BAA2B,CAAC,EAAE,OAAO,CAAA;IACrC,iBAAiB,CAAC,EAAE,UAAU,GAAG,cAAc,GAAG,YAAY,CAAA;IAC9D,eAAe,CAAC,EAAE,aAAa,GAAG,OAAO,GAAG,MAAM,CAAA;IAClD,mBAAmB,CAAC,EAAE,OAAO,CAAA;CAC7B;AAED,eAAO,MAAM,eAAe,iHAmN3B,CAAA"}
@@ -1,104 +0,0 @@
1
- /**
2
- * Base Media Player - Core unified functionality for video and audio
3
- * This consolidates the logic from MediaPlayer, VideoPlayer, and AudioPlayer
4
- */
5
- "use client";
6
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
7
- import { forwardRef, useMemo, useTransition } from "react";
8
- import { useKeyboardControls } from "../../hooks/use-keyboard-controls";
9
- import { useEnhancedMediaPlayer } from "../../hooks/use-enhanced-media-player";
10
- import { useMemoryOptimization } from "../../hooks/use-memory-optimization";
11
- import { EnhancedMediaWrapper } from "../media-suspense";
12
- import { cn } from "../../lib/utils";
13
- export const BaseMediaPlayer = forwardRef(({ src, mediaType = 'auto', className, children, keyboardControls = true, showControls = true, customControls = false, crossOrigin, enablePerformanceMonitoring = true, bufferingStrategy = "adaptive", preloadStrategy = "progressive", enableOptimizations = true,
14
- // Video-specific props
15
- poster, aspectRatio = "16/9", width = "100%", height = "auto", ...options }, ref) => {
16
- // React 19 concurrent features
17
- const [isPending] = useTransition();
18
- // Auto-detect media type if not specified
19
- const detectedMediaType = useMemo(() => {
20
- if (mediaType !== 'auto')
21
- return mediaType;
22
- // Simple detection based on file extension
23
- if (typeof src === 'string') {
24
- const videoExtensions = ['.mp4', '.webm', '.ogg', '.mov', '.avi', '.mkv'];
25
- const audioExtensions = ['.mp3', '.wav', '.ogg', '.aac', '.flac', '.m4a'];
26
- const extension = src.toLowerCase().split('.').pop();
27
- if (extension && videoExtensions.some(ext => extension.endsWith(ext))) {
28
- return 'video';
29
- }
30
- if (extension && audioExtensions.some(ext => extension.endsWith(ext))) {
31
- return 'audio';
32
- }
33
- }
34
- // Default to video for unknown types
35
- return 'video';
36
- }, [src, mediaType]);
37
- // Enhanced media player with optimizations
38
- const { state, controls, mediaRef, containerRef, performanceMetrics, isEnhanced } = useEnhancedMediaPlayer({
39
- src,
40
- crossOrigin,
41
- enablePerformanceMonitoring,
42
- bufferingStrategy,
43
- preloadStrategy,
44
- enableTimeUpdateThrottling: true,
45
- timeUpdateThrottleMs: 100,
46
- enableSeekPreview: true,
47
- ...options
48
- });
49
- // Memory optimization
50
- const { memoryStats, addEventListener } = useMemoryOptimization({
51
- maxMemoryUsage: 50, // 50MB for media player
52
- cleanupInterval: 15000, // 15 seconds
53
- enableGC: true,
54
- monitorMemory: enableOptimizations
55
- });
56
- // Keyboard controls
57
- useKeyboardControls({
58
- enabled: keyboardControls,
59
- state,
60
- controls
61
- });
62
- // Determine the media element based on type
63
- const MediaElement = useMemo(() => {
64
- const commonProps = {
65
- ref: mediaRef,
66
- src,
67
- className: cn("w-full h-full", state.isLoading && "opacity-0", !customControls && showControls && "cursor-pointer"),
68
- onPlay: controls.play,
69
- onPause: controls.pause,
70
- onVolumeChange: (e) => controls.setVolume(e.target.volume),
71
- onTimeUpdate: (e) => controls.setCurrentTime(e.target.currentTime),
72
- onSeeked: (e) => controls.setCurrentTime(e.target.currentTime),
73
- crossOrigin
74
- };
75
- if (detectedMediaType === 'audio') {
76
- return (_jsxs("audio", { ...commonProps, controls: !customControls && showControls, children: [src && _jsx("source", { src: typeof src === 'string' ? src : src.src }), "Your browser does not support the audio element."] }));
77
- }
78
- // Video (default)
79
- return (_jsxs("video", { ...commonProps, poster: poster, muted: state.isMuted, playsInline: true, controls: !customControls && showControls, children: [Array.isArray(src) ? (src.map((source, index) => (_jsx("source", { src: source.src, type: source.type }, index)))) : src ? (_jsx("source", { src: typeof src === 'string' ? src : src.src })) : null, "Your browser does not support the video element."] }));
80
- }, [detectedMediaType, src, mediaRef, state, controls, customControls, showControls, poster]);
81
- // Container styles based on media type
82
- const containerStyles = useMemo(() => {
83
- if (detectedMediaType === 'audio') {
84
- return cn("relative bg-gradient-to-br from-gray-900 to-gray-800 rounded-lg overflow-hidden", "flex items-center justify-center p-8", className);
85
- }
86
- // Video styles
87
- return cn("relative bg-black rounded-lg overflow-hidden", className);
88
- }, [detectedMediaType, className]);
89
- // Video-specific aspect ratio
90
- const aspectRatioStyles = useMemo(() => {
91
- if (detectedMediaType === 'video' && aspectRatio) {
92
- return {
93
- aspectRatio,
94
- width: typeof width === 'number' ? `${width}px` : width,
95
- height: typeof height === 'number' ? `${height}px` : height
96
- };
97
- }
98
- return {};
99
- }, [detectedMediaType, aspectRatio, width, height]);
100
- return (_jsx(EnhancedMediaWrapper, { children: _jsxs("div", { ref: containerRef, className: containerStyles, style: aspectRatioStyles, "data-media-type": detectedMediaType, "data-enhanced": isEnhanced, children: [MediaElement, state.isLoading && (_jsx("div", { className: "absolute inset-0 flex items-center justify-center bg-black/50 backdrop-blur-sm", children: _jsxs("div", { className: "text-center", children: [_jsx("div", { className: "mx-auto mb-4 h-12 w-12 animate-spin rounded-full border-4 border-white/20 border-t-white" }), _jsx("p", { className: "font-medium text-sm text-white", children: state.isBuffering ? "Buffering..." : "Loading..." })] }) })), state.error && (_jsx("div", { className: "absolute inset-0 flex items-center justify-center bg-black/50 backdrop-blur-sm", children: _jsxs("div", { className: "p-4 text-center text-white", children: [_jsx("div", { className: "mb-2 text-lg text-red-400", children: "\u26A0\uFE0F" }), _jsx("p", { className: "text-sm", children: "Failed to load media" }), _jsx("p", { className: "mt-1 text-xs opacity-75", children: state.error.message })] }) })), children && (_jsx("div", { className: "pointer-events-none absolute inset-0", children: typeof children === "function"
101
- ? children({ state, controls, mediaType: detectedMediaType })
102
- : children })), process.env.NODE_ENV === 'development' && enablePerformanceMonitoring && (_jsxs("div", { className: "absolute bottom-2 left-2 rounded bg-black/50 px-2 py-1 text-white text-xs", children: [_jsxs("div", { children: ["FPS: ", performanceMetrics.frameRate || 0] }), _jsxs("div", { children: ["Memory: ", memoryStats.usage.toFixed(1), "MB"] }), _jsxs("div", { children: ["Type: ", detectedMediaType] }), isEnhanced && _jsx("div", { children: "Enhanced \u2713" })] }))] }) }));
103
- });
104
- BaseMediaPlayer.displayName = "BaseMediaPlayer";
@@ -1 +0,0 @@
1
- {"version":3,"file":"media-player.d.ts","sourceRoot":"","sources":["media-player.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAEnD,MAAM,WAAW,uBAAwB,SAAQ,gBAAgB;IAEhE,SAAS,CAAC,EAAE,OAAO,GAAG,OAAO,GAAG,MAAM,CAAA;IAGtC,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACvB,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;CACxB;AAED;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,WAAW,oHAEtB,CAAA;AAIF;;GAEG;AACH,eAAO,MAAM,WAAW,oHAUtB,CAAA;AAIF;;GAEG;AACH,eAAO,MAAM,WAAW,oHAStB,CAAA"}
@@ -1,41 +0,0 @@
1
- /**
2
- * Unified MediaPlayer - The primary media player component
3
- * Consolidates MediaPlayer, VideoPlayer, and AudioPlayer into one component
4
- */
5
- "use client";
6
- import { jsx as _jsx } from "react/jsx-runtime";
7
- import { forwardRef } from "react";
8
- import { BaseMediaPlayer } from "./base-media-player";
9
- /**
10
- * The primary MediaPlayer component
11
- *
12
- * @example
13
- * // Video player (auto-detected)
14
- * <MediaPlayer src="/video.mp4" poster="/poster.jpg" />
15
- *
16
- * @example
17
- * // Audio player (auto-detected)
18
- * <MediaPlayer src="/audio.mp3" />
19
- *
20
- * @example
21
- * // Explicit media type
22
- * <MediaPlayer src="/media.mp4" mediaType="video" />
23
- */
24
- export const MediaPlayer = forwardRef((props, ref) => {
25
- return _jsx(BaseMediaPlayer, { ...props, ref: ref });
26
- });
27
- MediaPlayer.displayName = "MediaPlayer";
28
- /**
29
- * Video-specific component with video defaults
30
- */
31
- export const VideoPlayer = forwardRef((props, ref) => {
32
- return (_jsx(BaseMediaPlayer, { ...props, ref: ref, mediaType: "video", aspectRatio: props.aspectRatio || "16/9", showControls: props.showControls ?? true }));
33
- });
34
- VideoPlayer.displayName = "VideoPlayer";
35
- /**
36
- * Audio-specific component with audio defaults
37
- */
38
- export const AudioPlayer = forwardRef((props, ref) => {
39
- return (_jsx(BaseMediaPlayer, { ...props, ref: ref, mediaType: "audio", showControls: props.showControls ?? true }));
40
- });
41
- AudioPlayer.displayName = "AudioPlayer";
@@ -1 +0,0 @@
1
- {"version":3,"file":"AccessibleMinimalPlayer.d.ts","sourceRoot":"","sources":["AccessibleMinimalPlayer.tsx"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAY1C,MAAM,WAAW,4BAA4B;IAC3C,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;IACtB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,aAAa,CAAA;IACxC,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,oBAAoB,CAAC,EAAE,OAAO,CAAA;IAC9B,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAA;IACnB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;IACpB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;IACpB,YAAY,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,IAAI,CAAA;IAC5C,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAA;IACzC,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IAC/B,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAA;IAChC,SAAS,CAAC,EAAE;QACV,GAAG,EAAE,MAAM,CAAA;QACX,QAAQ,CAAC,EAAE,UAAU,GAAG,WAAW,GAAG,aAAa,GAAG,cAAc,CAAA;QACpE,OAAO,CAAC,EAAE,MAAM,CAAA;QAChB,IAAI,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAA;KACpC,CAAA;IACD,SAAS,CAAC,EAAE,KAAK,CAAC;QAChB,GAAG,EAAE,MAAM,CAAA;QACX,OAAO,EAAE,MAAM,CAAA;QACf,OAAO,CAAC,EAAE,OAAO,CAAA;KAClB,CAAC,CAAA;IACF,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAA;IAEnB,uBAAuB,CAAC,EAAE,OAAO,CAAA;IACjC,sBAAsB,CAAC,EAAE,OAAO,CAAA;IAChC,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,eAAe,CAAC,EAAE,MAAM,CAAA;CACzB;AAED,wBAAgB,uBAAuB,CAAC,EACtC,GAAG,EACH,MAAM,EACN,QAAgB,EAChB,KAAa,EACb,IAAY,EACZ,gBAAuB,EACvB,SAAgB,EAChB,KAAc,EACd,WAAW,EACX,oBAA2B,EAC3B,kBAAyB,EACzB,SAAS,EACT,MAAM,EACN,OAAO,EACP,OAAO,EACP,YAAY,EACZ,cAAc,EACd,MAAM,EACN,OAAO,EACP,SAAS,EACT,SAAS,EACT,mBAA2B,EAC3B,gBAAwB,EACxB,UAAU,EACV,uBAA8B,EAC9B,sBAA6B,EAC7B,SAA0B,EAC1B,eAAe,GAChB,EAAE,4BAA4B,2CAqd9B"}