@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,289 +0,0 @@
1
- "use client";
2
- import * as React from "react";
3
- import { useDeviceInfo, useHapticFeedback } from "./use-mobile";
4
- // Default configuration
5
- const defaultConfig = {
6
- enabledGestures: ['tap', 'double-tap', 'long-press', 'swipe-left', 'swipe-right', 'swipe-up', 'swipe-down', 'pinch-in', 'pinch-out'],
7
- tapThreshold: 200,
8
- doubleTapThreshold: 300,
9
- longPressThreshold: 500,
10
- swipeThreshold: 50,
11
- swipeVelocityThreshold: 0.5,
12
- pinchThreshold: 0.1,
13
- rotationThreshold: 15,
14
- enableHapticFeedback: true
15
- };
16
- // Touch gesture hook
17
- export function useTouchGestures(ref, onGesture, config = {}) {
18
- const mergedConfig = { ...defaultConfig, ...config };
19
- const { isTouchDevice } = useDeviceInfo();
20
- const { triggerHaptic } = useHapticFeedback();
21
- const gestureState = React.useRef({
22
- isTracking: false,
23
- touches: [],
24
- startTouches: []
25
- });
26
- // Helper functions
27
- const getTouchPoint = (touch) => ({
28
- id: touch.identifier,
29
- x: touch.clientX,
30
- y: touch.clientY,
31
- timestamp: Date.now()
32
- });
33
- const getDistance = (p1, p2) => Math.sqrt(Math.pow(p2.x - p1.x, 2) + Math.pow(p2.y - p1.y, 2));
34
- const getVelocity = (start, end) => {
35
- const timeDiff = Math.max(end.timestamp - start.timestamp, 1);
36
- return {
37
- x: (end.x - start.x) / timeDiff,
38
- y: (end.y - start.y) / timeDiff
39
- };
40
- };
41
- const createGestureEvent = (type, startPoint, currentPoint, additionalData = {}) => ({
42
- type,
43
- startPoint: { x: startPoint.x, y: startPoint.y },
44
- currentPoint: { x: currentPoint.x, y: currentPoint.y },
45
- duration: currentPoint.timestamp - startPoint.timestamp,
46
- target: ref.current,
47
- preventDefault: () => { },
48
- ...additionalData
49
- });
50
- // Handle touch start
51
- const handleTouchStart = React.useCallback((e) => {
52
- if (!mergedConfig.enabledGestures.length)
53
- return;
54
- const touches = Array.from(e.touches).map(getTouchPoint);
55
- const state = gestureState.current;
56
- state.isTracking = true;
57
- state.touches = touches;
58
- state.startTouches = [...touches];
59
- // Clear any existing long press timer
60
- if (state.longPressTimer) {
61
- clearTimeout(state.longPressTimer);
62
- }
63
- // Set up long press detection for single touch
64
- if (touches.length === 1 && mergedConfig.enabledGestures.includes('long-press')) {
65
- state.longPressTimer = setTimeout(() => {
66
- if (state.touches.length === 1 && touches[0]) {
67
- const gestureEvent = createGestureEvent('long-press', touches[0], touches[0]);
68
- onGesture(gestureEvent);
69
- if (mergedConfig.enableHapticFeedback) {
70
- triggerHaptic('heavy');
71
- }
72
- }
73
- }, mergedConfig.longPressThreshold);
74
- }
75
- // Handle multi-touch gestures
76
- if (touches.length === 2 && touches[0] && touches[1]) {
77
- state.initialDistance = getDistance(touches[0], touches[1]);
78
- state.initialScale = 1;
79
- state.lastScale = 1;
80
- }
81
- }, [mergedConfig, onGesture, triggerHaptic]);
82
- // Handle touch move
83
- const handleTouchMove = React.useCallback((e) => {
84
- const state = gestureState.current;
85
- if (!state.isTracking)
86
- return;
87
- const touches = Array.from(e.touches).map(getTouchPoint);
88
- state.touches = touches;
89
- // Handle pinch gesture
90
- if (touches.length === 2 && state.initialDistance && touches[0] && touches[1]) {
91
- const currentDistance = getDistance(touches[0], touches[1]);
92
- const scale = currentDistance / state.initialDistance;
93
- const scaleDiff = Math.abs(scale - (state.lastScale || 1));
94
- if (scaleDiff > mergedConfig.pinchThreshold) {
95
- const gestureType = scale > (state.lastScale || 1) ? 'pinch-out' : 'pinch-in';
96
- if (mergedConfig.enabledGestures.includes(gestureType)) {
97
- const centerPoint = {
98
- x: (touches[0].x + touches[1].x) / 2,
99
- y: (touches[0].y + touches[1].y) / 2,
100
- id: -1,
101
- timestamp: Date.now()
102
- };
103
- const startCenterPoint = {
104
- x: ((state.startTouches[0]?.x ?? 0) + (state.startTouches[1]?.x ?? 0)) / 2,
105
- y: ((state.startTouches[0]?.y ?? 0) + (state.startTouches[1]?.y ?? 0)) / 2,
106
- id: -1,
107
- timestamp: state.startTouches[0]?.timestamp ?? Date.now()
108
- };
109
- const gestureEvent = createGestureEvent(gestureType, startCenterPoint, centerPoint, {
110
- scale,
111
- distance: currentDistance
112
- });
113
- onGesture(gestureEvent);
114
- state.lastScale = scale;
115
- }
116
- }
117
- }
118
- // Clear long press timer on move
119
- if (state.longPressTimer && touches.length === 1 && state.startTouches[0] && touches[0]) {
120
- const startTouch = state.startTouches[0];
121
- const currentTouch = touches[0];
122
- const distance = getDistance(startTouch, currentTouch);
123
- if (distance > mergedConfig.swipeThreshold) {
124
- clearTimeout(state.longPressTimer);
125
- state.longPressTimer = undefined;
126
- }
127
- }
128
- }, [mergedConfig, onGesture]);
129
- // Handle touch end
130
- const handleTouchEnd = React.useCallback((e) => {
131
- const state = gestureState.current;
132
- if (!state.isTracking)
133
- return;
134
- const endTouches = Array.from(e.changedTouches).map(getTouchPoint);
135
- const currentTime = Date.now();
136
- // Clear long press timer
137
- if (state.longPressTimer) {
138
- clearTimeout(state.longPressTimer);
139
- state.longPressTimer = undefined;
140
- }
141
- // Handle single touch gestures
142
- if (state.startTouches.length === 1 && endTouches.length === 1 && state.startTouches[0] && endTouches[0]) {
143
- const startTouch = state.startTouches[0];
144
- const endTouch = endTouches[0];
145
- const distance = getDistance(startTouch, endTouch);
146
- const duration = endTouch.timestamp - startTouch.timestamp;
147
- // Check for swipe gestures
148
- if (distance > mergedConfig.swipeThreshold) {
149
- const velocity = getVelocity(startTouch, endTouch);
150
- const absVelX = Math.abs(velocity.x);
151
- const absVelY = Math.abs(velocity.y);
152
- if (absVelX > mergedConfig.swipeVelocityThreshold || absVelY > mergedConfig.swipeVelocityThreshold) {
153
- let gestureType;
154
- if (absVelX > absVelY) {
155
- gestureType = velocity.x > 0 ? 'swipe-right' : 'swipe-left';
156
- }
157
- else {
158
- gestureType = velocity.y > 0 ? 'swipe-down' : 'swipe-up';
159
- }
160
- if (mergedConfig.enabledGestures.includes(gestureType)) {
161
- const gestureEvent = createGestureEvent(gestureType, startTouch, endTouch, {
162
- velocity,
163
- distance
164
- });
165
- onGesture(gestureEvent);
166
- if (mergedConfig.enableHapticFeedback) {
167
- triggerHaptic('light');
168
- }
169
- }
170
- }
171
- }
172
- // Check for tap gestures
173
- else if (duration < mergedConfig.tapThreshold && distance < mergedConfig.swipeThreshold) {
174
- // Check for double tap
175
- if (state.lastTap &&
176
- currentTime - state.lastTap.timestamp < mergedConfig.doubleTapThreshold &&
177
- getDistance({ ...state.lastTap.point, id: -1, timestamp: state.lastTap.timestamp }, endTouch) < mergedConfig.swipeThreshold) {
178
- if (mergedConfig.enabledGestures.includes('double-tap')) {
179
- const gestureEvent = createGestureEvent('double-tap', startTouch, endTouch);
180
- onGesture(gestureEvent);
181
- if (mergedConfig.enableHapticFeedback) {
182
- triggerHaptic('medium');
183
- }
184
- }
185
- state.lastTap = undefined;
186
- }
187
- else {
188
- // Single tap
189
- if (mergedConfig.enabledGestures.includes('tap')) {
190
- const gestureEvent = createGestureEvent('tap', startTouch, endTouch);
191
- onGesture(gestureEvent);
192
- if (mergedConfig.enableHapticFeedback) {
193
- triggerHaptic('light');
194
- }
195
- }
196
- state.lastTap = {
197
- timestamp: currentTime,
198
- point: { x: endTouch.x, y: endTouch.y }
199
- };
200
- }
201
- }
202
- }
203
- // Reset gesture state
204
- if (e.touches.length === 0) {
205
- state.isTracking = false;
206
- state.touches = [];
207
- state.startTouches = [];
208
- state.initialDistance = undefined;
209
- state.initialScale = undefined;
210
- state.lastScale = undefined;
211
- }
212
- }, [mergedConfig, onGesture, triggerHaptic]);
213
- // Attach event listeners
214
- React.useEffect(() => {
215
- const element = ref.current;
216
- if (!element || !isTouchDevice)
217
- return;
218
- element.addEventListener('touchstart', handleTouchStart, { passive: false });
219
- element.addEventListener('touchmove', handleTouchMove, { passive: false });
220
- element.addEventListener('touchend', handleTouchEnd, { passive: false });
221
- element.addEventListener('touchcancel', handleTouchEnd, { passive: false });
222
- return () => {
223
- element.removeEventListener('touchstart', handleTouchStart);
224
- element.removeEventListener('touchmove', handleTouchMove);
225
- element.removeEventListener('touchend', handleTouchEnd);
226
- element.removeEventListener('touchcancel', handleTouchEnd);
227
- };
228
- }, [handleTouchStart, handleTouchMove, handleTouchEnd, isTouchDevice]);
229
- return {
230
- isGestureEnabled: isTouchDevice && mergedConfig.enabledGestures.length > 0
231
- };
232
- }
233
- // Media player specific gesture hook with predefined actions
234
- export function useMediaGestures(ref, actions) {
235
- const handleGesture = React.useCallback((event) => {
236
- const { type, velocity, distance, scale } = event;
237
- switch (type) {
238
- case 'double-tap':
239
- // Double tap to play/pause
240
- actions.onPlayPause?.();
241
- break;
242
- case 'swipe-left':
243
- // Swipe left to seek backward
244
- const backwardAmount = Math.min((distance || 0) / 10, 30); // Max 30 seconds
245
- actions.onSeek?.('backward', backwardAmount);
246
- break;
247
- case 'swipe-right':
248
- // Swipe right to seek forward
249
- const forwardAmount = Math.min((distance || 0) / 10, 30); // Max 30 seconds
250
- actions.onSeek?.('forward', forwardAmount);
251
- break;
252
- case 'swipe-up':
253
- // Swipe up on right side for volume up
254
- if (event.startPoint.x > (ref.current?.clientWidth || 0) / 2) {
255
- const volumeAmount = Math.min((distance || 0) / 100, 0.2); // Max 20%
256
- actions.onVolumeChange?.('up', volumeAmount);
257
- }
258
- break;
259
- case 'swipe-down':
260
- // Swipe down on right side for volume down
261
- if (event.startPoint.x > (ref.current?.clientWidth || 0) / 2) {
262
- const volumeAmount = Math.min((distance || 0) / 100, 0.2); // Max 20%
263
- actions.onVolumeChange?.('down', volumeAmount);
264
- }
265
- break;
266
- case 'pinch-out':
267
- // Pinch out to zoom in (for video zoom functionality)
268
- actions.onZoom?.(scale || 1);
269
- break;
270
- case 'pinch-in':
271
- // Pinch in to zoom out
272
- actions.onZoom?.(scale || 1);
273
- break;
274
- case 'long-press':
275
- // Long press for fullscreen toggle
276
- actions.onToggleFullscreen?.();
277
- break;
278
- default:
279
- break;
280
- }
281
- }, [actions, ref]);
282
- const gestureConfig = {
283
- enabledGestures: ['tap', 'double-tap', 'long-press', 'swipe-left', 'swipe-right', 'swipe-up', 'swipe-down', 'pinch-in', 'pinch-out'],
284
- enableHapticFeedback: true,
285
- swipeThreshold: 30,
286
- swipeVelocityThreshold: 0.3
287
- };
288
- return useTouchGestures(ref, handleGesture, gestureConfig);
289
- }
@@ -1,205 +0,0 @@
1
- import { useState, useEffect } from "react";
2
- export function useEnhancedSubtitles({ subtitleSrc, subtitleTracks = [], defaultFontSize = "medium", onLoadError } = {}) {
3
- const [subtitlesEnabled, setSubtitlesEnabled] = useState(false);
4
- const [subtitleCues, setSubtitleCues] = useState([]);
5
- const [currentSubtitle, setCurrentSubtitle] = useState("");
6
- const [currentTrackId, setCurrentTrackId] = useState(null);
7
- const [fontSize, setFontSize] = useState(defaultFontSize);
8
- const [loadError, setLoadError] = useState(null);
9
- const [isLoading, setIsLoading] = useState(false);
10
- // Size mapping for subtitle font sizes
11
- const sizeMap = {
12
- small: "text-sm",
13
- medium: "text-base",
14
- large: "text-lg"
15
- };
16
- // Determine if subtitles are available
17
- const hasSubtitles = !!(subtitleSrc || (subtitleTracks && subtitleTracks.length > 0));
18
- // Parse VTT/WebVTT timestamp
19
- const parseVTTTime = (timeStr) => {
20
- const parts = timeStr.split(":");
21
- const seconds = parts[2] ? parseFloat(parts[2]) : 0;
22
- const minutes = parts[1] ? parseInt(parts[1], 10) * 60 : 0;
23
- const hours = parts[0] ? parseInt(parts[0], 10) * 3600 : 0;
24
- return hours + minutes + seconds;
25
- };
26
- // Parse SRT timestamp
27
- const parseSRTTime = (timeStr) => {
28
- // SRT format: 00:00:00,000 (hours:minutes:seconds,milliseconds)
29
- const [time, ms] = timeStr.split(",");
30
- const parts = (time || "").split(":");
31
- const milliseconds = ms ? parseInt(ms, 10) / 1000 : 0;
32
- const seconds = parts[2] ? parseInt(parts[2], 10) : 0;
33
- const minutes = parts[1] ? parseInt(parts[1], 10) * 60 : 0;
34
- const hours = parts[0] ? parseInt(parts[0], 10) * 3600 : 0;
35
- return hours + minutes + seconds + milliseconds;
36
- };
37
- // Load and parse subtitle file
38
- const loadSubtitles = async (url) => {
39
- setIsLoading(true);
40
- setLoadError(null);
41
- try {
42
- const response = await fetch(url);
43
- if (!response.ok) {
44
- throw new Error(`Failed to load subtitles: ${response.status} ${response.statusText}`);
45
- }
46
- const text = await response.text();
47
- const cues = [];
48
- const lines = text.split("\n");
49
- let i = 0;
50
- // Detect format (VTT or SRT)
51
- const isVTT = text.includes("WEBVTT") || url.endsWith(".vtt");
52
- const isSRT = url.endsWith(".srt") || /^\d+$/.test(lines[0]?.trim() || "");
53
- if (isVTT) {
54
- // Parse VTT format
55
- while (i < lines.length) {
56
- if (lines[i]?.includes("-->")) {
57
- const [startStr, endStr] = (lines[i] || "").split("-->").map((s) => s.trim());
58
- const start = parseVTTTime(startStr || "");
59
- const end = parseVTTTime(endStr || "");
60
- i++;
61
- let subtitleText = "";
62
- while (i < lines.length && lines[i]?.trim() !== "") {
63
- subtitleText += (subtitleText ? " " : "") + lines[i]?.trim();
64
- i++;
65
- }
66
- if (subtitleText) {
67
- cues.push({ start, end, text: subtitleText });
68
- }
69
- }
70
- i++;
71
- }
72
- }
73
- else if (isSRT) {
74
- // Parse SRT format
75
- while (i < lines.length) {
76
- // Skip the sequence number
77
- if (/^\d+$/.test(lines[i]?.trim() || "")) {
78
- i++;
79
- // Parse timestamp line
80
- if (lines[i]?.includes("-->")) {
81
- const [startStr, endStr] = (lines[i] || "").split("-->").map((s) => s.trim());
82
- const start = parseSRTTime(startStr || "");
83
- const end = parseSRTTime(endStr || "");
84
- i++;
85
- let subtitleText = "";
86
- while (i < lines.length && lines[i]?.trim() !== "") {
87
- subtitleText += (subtitleText ? " " : "") + lines[i]?.trim();
88
- i++;
89
- }
90
- if (subtitleText) {
91
- cues.push({ start, end, text: subtitleText });
92
- }
93
- }
94
- }
95
- i++;
96
- }
97
- }
98
- else {
99
- throw new Error("Unsupported subtitle format. Only VTT and SRT are supported.");
100
- }
101
- if (cues.length === 0) {
102
- throw new Error("No subtitle cues found in file");
103
- }
104
- setSubtitleCues(cues);
105
- setIsLoading(false);
106
- }
107
- catch (error) {
108
- const err = error instanceof Error ? error : new Error("Failed to load subtitles");
109
- console.error("Failed to load subtitles:", err);
110
- setLoadError(err);
111
- setIsLoading(false);
112
- setSubtitleCues([]);
113
- onLoadError?.(err);
114
- }
115
- };
116
- // Get current subtitle text based on time
117
- const getCurrentSubtitle = (currentTime) => {
118
- if (!subtitlesEnabled || subtitleCues.length === 0)
119
- return "";
120
- const currentCue = subtitleCues.find((cue) => currentTime >= cue.start && currentTime <= cue.end);
121
- return currentCue?.text || "";
122
- };
123
- // Toggle subtitles on/off
124
- const toggleSubtitles = () => {
125
- setSubtitlesEnabled(prev => {
126
- const newEnabled = !prev;
127
- if (newEnabled && !loadError) {
128
- // Try to load subtitles if not already loaded
129
- if (subtitleCues.length === 0 && !isLoading) {
130
- // Load default subtitle source or first track
131
- const srcToLoad = subtitleSrc || subtitleTracks[0]?.src;
132
- if (srcToLoad) {
133
- loadSubtitles(srcToLoad);
134
- if (subtitleTracks[0]) {
135
- setCurrentTrackId(subtitleTracks[0].id);
136
- }
137
- }
138
- }
139
- }
140
- else if (!newEnabled) {
141
- setCurrentSubtitle("");
142
- }
143
- return newEnabled;
144
- });
145
- };
146
- // Select a specific subtitle track
147
- const selectSubtitleTrack = (trackId) => {
148
- if (!trackId) {
149
- // Turn off subtitles
150
- setSubtitlesEnabled(false);
151
- setCurrentTrackId(null);
152
- setCurrentSubtitle("");
153
- return;
154
- }
155
- const track = subtitleTracks.find(t => t.id === trackId);
156
- if (track?.src) {
157
- setCurrentTrackId(trackId);
158
- loadSubtitles(track.src);
159
- setSubtitlesEnabled(true);
160
- }
161
- };
162
- // Change subtitle font size
163
- const changeSubtitleFontSize = (size) => {
164
- setFontSize(size);
165
- };
166
- // Get CSS classes for subtitle display
167
- const getSubtitleStyles = {
168
- fontSize: sizeMap[fontSize],
169
- className: `${sizeMap[fontSize]} font-medium`
170
- };
171
- // Clear subtitle on disable
172
- useEffect(() => {
173
- if (!subtitlesEnabled) {
174
- setCurrentSubtitle("");
175
- }
176
- }, [subtitlesEnabled]);
177
- // Auto-load default subtitles on mount if available
178
- useEffect(() => {
179
- if (subtitleSrc && !subtitleCues.length && !loadError && !isLoading) {
180
- // Don't auto-load, wait for user to enable
181
- // This prevents errors on initial load
182
- }
183
- }, []);
184
- return {
185
- // State
186
- subtitlesEnabled,
187
- currentSubtitle,
188
- subtitleCues,
189
- currentTrackId,
190
- fontSize,
191
- loadError,
192
- isLoading,
193
- hasSubtitles,
194
- // Actions
195
- toggleSubtitles,
196
- selectSubtitleTrack,
197
- changeSubtitleFontSize,
198
- setCurrentSubtitle,
199
- // Utilities
200
- getCurrentSubtitle,
201
- getSubtitleStyles,
202
- // Track info
203
- availableTracks: subtitleTracks
204
- };
205
- }
@@ -1,59 +0,0 @@
1
- import { useEffect } from "react";
2
- export function useKeyboardShortcuts({ videoControls, toggleSubtitles, takeScreenshot, duration }) {
3
- const handleKeyDown = (e) => {
4
- const video = document.querySelector('video');
5
- if (!video)
6
- return;
7
- switch (e.key.toLowerCase()) {
8
- case " ":
9
- case "k":
10
- e.preventDefault();
11
- videoControls.togglePlay();
12
- break;
13
- case "j":
14
- e.preventDefault();
15
- videoControls.seekBackward();
16
- break;
17
- case "l":
18
- e.preventDefault();
19
- videoControls.seekForward();
20
- break;
21
- case "arrowleft":
22
- e.preventDefault();
23
- video.currentTime = Math.max(0, video.currentTime - 5);
24
- break;
25
- case "arrowright":
26
- e.preventDefault();
27
- video.currentTime = Math.min(duration, video.currentTime + 5);
28
- break;
29
- case "arrowup":
30
- e.preventDefault();
31
- video.volume = Math.min(1, video.volume + 0.1);
32
- break;
33
- case "arrowdown":
34
- e.preventDefault();
35
- video.volume = Math.max(0, video.volume - 0.1);
36
- break;
37
- case "m":
38
- e.preventDefault();
39
- videoControls.toggleMute();
40
- break;
41
- case "f":
42
- e.preventDefault();
43
- videoControls.toggleFullscreen();
44
- break;
45
- case "c":
46
- e.preventDefault();
47
- toggleSubtitles();
48
- break;
49
- case "s":
50
- e.preventDefault();
51
- takeScreenshot(e.ctrlKey || e.metaKey);
52
- break;
53
- }
54
- };
55
- useEffect(() => {
56
- document.addEventListener("keydown", handleKeyDown);
57
- return () => document.removeEventListener("keydown", handleKeyDown);
58
- }, [handleKeyDown]);
59
- }
@@ -1,44 +0,0 @@
1
- import { useState, useRef, useEffect } from "react";
2
- export function useMediaControls(isPlaying, showSettings) {
3
- const [controlsVisible, setControlsVisible] = useState(true);
4
- const [showVolumeSlider, setShowVolumeSlider] = useState(false);
5
- const hideTimeoutRef = useRef(null);
6
- const showControls = () => {
7
- setControlsVisible(true);
8
- if (hideTimeoutRef.current) {
9
- clearTimeout(hideTimeoutRef.current);
10
- }
11
- if (isPlaying && !showSettings) {
12
- hideTimeoutRef.current = setTimeout(() => {
13
- setControlsVisible(false);
14
- }, 3000);
15
- }
16
- };
17
- const handleMouseMove = () => {
18
- showControls();
19
- };
20
- const handleMouseEnter = () => {
21
- setControlsVisible(true);
22
- };
23
- const handleMouseLeave = () => {
24
- if (isPlaying) {
25
- setControlsVisible(false);
26
- }
27
- };
28
- useEffect(() => {
29
- showControls();
30
- return () => {
31
- if (hideTimeoutRef.current) {
32
- clearTimeout(hideTimeoutRef.current);
33
- }
34
- };
35
- }, [showControls]);
36
- return {
37
- controlsVisible,
38
- showVolumeSlider,
39
- setShowVolumeSlider,
40
- handleMouseMove,
41
- handleMouseEnter,
42
- handleMouseLeave
43
- };
44
- }
@@ -1,56 +0,0 @@
1
- export function useScreenshot(videoRef) {
2
- const takeScreenshot = (ctrlKey = false) => {
3
- if (!videoRef.current)
4
- return;
5
- const video = videoRef.current;
6
- const canvas = document.createElement("canvas");
7
- canvas.width = video.videoWidth;
8
- canvas.height = video.videoHeight;
9
- const ctx = canvas.getContext("2d");
10
- if (!ctx)
11
- return;
12
- try {
13
- // Draw the video frame to canvas
14
- ctx.drawImage(video, 0, 0);
15
- // Try to export the canvas
16
- canvas.toBlob((blob) => {
17
- if (!blob) {
18
- console.error("Failed to create blob from canvas");
19
- return;
20
- }
21
- if (ctrlKey) {
22
- // Copy to clipboard
23
- if (navigator.clipboard && window.ClipboardItem) {
24
- const item = new ClipboardItem({ "image/png": blob });
25
- navigator.clipboard.write([item]).catch(err => {
26
- console.error("Failed to copy to clipboard:", err);
27
- });
28
- }
29
- else {
30
- console.warn("Clipboard API not supported");
31
- }
32
- }
33
- else {
34
- // Download
35
- const url = URL.createObjectURL(blob);
36
- const a = document.createElement("a");
37
- a.href = url;
38
- a.download = `screenshot-${Date.now()}.png`;
39
- a.click();
40
- URL.revokeObjectURL(url);
41
- }
42
- }, "image/png");
43
- }
44
- catch (error) {
45
- if (error instanceof Error && error.message.includes("tainted")) {
46
- console.error("Canvas is tainted - video source may not have proper CORS headers. Try setting crossOrigin='anonymous' on the video element.");
47
- alert("Screenshot failed: The video source doesn't allow screenshots due to CORS policy. Please ensure the video server includes proper CORS headers or set crossOrigin='anonymous' on the video player.");
48
- }
49
- else {
50
- console.error("Screenshot failed:", error);
51
- alert("Screenshot failed: " + (error instanceof Error ? error.message : "Unknown error"));
52
- }
53
- }
54
- };
55
- return { takeScreenshot };
56
- }