@therealtinhtute/baroiplayer 1.0.6 → 1.0.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (595) hide show
  1. package/dist/index.d.ts +1 -1
  2. package/dist/package.json +1 -1
  3. package/package.json +1 -1
  4. package/dist/context/media.js +0 -2
  5. package/dist/context/media.js.map +0 -1
  6. package/dist/context/media.mjs +0 -15
  7. package/dist/context/media.mjs.map +0 -1
  8. package/dist/context/store.js +0 -2
  9. package/dist/context/store.js.map +0 -1
  10. package/dist/context/store.mjs +0 -5
  11. package/dist/context/store.mjs.map +0 -1
  12. package/dist/context-Af84FynT.js +0 -1179
  13. package/dist/context-Af84FynT.js.map +0 -1
  14. package/dist/context-CwZnPdz0.cjs +0 -23
  15. package/dist/context-CwZnPdz0.cjs.map +0 -1
  16. package/dist/core-events-B5W_j8yU.js +0 -480
  17. package/dist/core-events-B5W_j8yU.js.map +0 -1
  18. package/dist/core-events-CN0-Vhhq.cjs +0 -2
  19. package/dist/core-events-CN0-Vhhq.cjs.map +0 -1
  20. package/dist/core-plugins-Bq9KLany.js +0 -696
  21. package/dist/core-plugins-Bq9KLany.js.map +0 -1
  22. package/dist/core-plugins-CPDSHMiQ.cjs +0 -2
  23. package/dist/core-plugins-CPDSHMiQ.cjs.map +0 -1
  24. package/dist/core.js +0 -37
  25. package/dist/core.js.map +0 -1
  26. package/dist/core.mjs +0 -1217
  27. package/dist/core.mjs.map +0 -1
  28. package/dist/enhanced-components-CXnYiOt6.cjs +0 -2
  29. package/dist/enhanced-components-CXnYiOt6.cjs.map +0 -1
  30. package/dist/enhanced-components-Da0TSvKe.js +0 -1073
  31. package/dist/enhanced-components-Da0TSvKe.js.map +0 -1
  32. package/dist/hooks-BCMilGRf.cjs +0 -4
  33. package/dist/hooks-BCMilGRf.cjs.map +0 -1
  34. package/dist/hooks-BPtHV1ZT.js +0 -2042
  35. package/dist/hooks-BPtHV1ZT.js.map +0 -1
  36. package/dist/index.js.map +0 -1
  37. package/dist/index.mjs.map +0 -1
  38. package/dist/minimal-components-BHJMuaL7.cjs +0 -2
  39. package/dist/minimal-components-BHJMuaL7.cjs.map +0 -1
  40. package/dist/minimal-components-BmqRefl1.js +0 -2002
  41. package/dist/minimal-components-BmqRefl1.js.map +0 -1
  42. package/dist/mona-loading.gif +0 -0
  43. package/dist/performance-monitor--rzKTlbj.js +0 -302
  44. package/dist/performance-monitor--rzKTlbj.js.map +0 -1
  45. package/dist/performance-monitor-cjIvZE2D.cjs +0 -2
  46. package/dist/performance-monitor-cjIvZE2D.cjs.map +0 -1
  47. package/dist/src/adapters/videojs-adapter.d.ts.map +0 -1
  48. package/dist/src/adapters/videojs-adapter.js +0 -350
  49. package/dist/src/assets/mona-loading.gif +0 -0
  50. package/dist/src/components/AnimateLoading.d.ts.map +0 -1
  51. package/dist/src/components/AnimateLoading.js +0 -41
  52. package/dist/src/components/LoadingState.d.ts.map +0 -1
  53. package/dist/src/components/LoadingState.js +0 -111
  54. package/dist/src/components/accessibility/keyboard-help-overlay.d.ts.map +0 -1
  55. package/dist/src/components/accessibility/keyboard-help-overlay.js +0 -90
  56. package/dist/src/components/audio-player.d.ts.map +0 -1
  57. package/dist/src/components/audio-player.js +0 -31
  58. package/dist/src/components/basic/index.d.ts.map +0 -1
  59. package/dist/src/components/basic/index.js +0 -29
  60. package/dist/src/components/enhanced/advanced-features.d.ts.map +0 -1
  61. package/dist/src/components/enhanced/advanced-features.js +0 -64
  62. package/dist/src/components/enhanced/debug-panel.d.ts.map +0 -1
  63. package/dist/src/components/enhanced/debug-panel.js +0 -94
  64. package/dist/src/components/enhanced/enhanced-controls.d.ts.map +0 -1
  65. package/dist/src/components/enhanced/enhanced-controls.js +0 -233
  66. package/dist/src/components/enhanced/enhanced-media-player.d.ts.map +0 -1
  67. package/dist/src/components/enhanced/enhanced-media-player.js +0 -316
  68. package/dist/src/components/enhanced/error-handling.d.ts.map +0 -1
  69. package/dist/src/components/enhanced/error-handling.js +0 -153
  70. package/dist/src/components/enhanced/index.d.ts.map +0 -1
  71. package/dist/src/components/enhanced/index.js +0 -10
  72. package/dist/src/components/enhanced/media-player-enhanced.d.ts.map +0 -1
  73. package/dist/src/components/enhanced/media-player-enhanced.js +0 -250
  74. package/dist/src/components/examples/basic-video-player.d.ts.map +0 -1
  75. package/dist/src/components/examples/basic-video-player.js +0 -16
  76. package/dist/src/components/examples/custom-controls-example.d.ts.map +0 -1
  77. package/dist/src/components/examples/custom-controls-example.js +0 -12
  78. package/dist/src/components/examples/enhanced-controls-example.d.ts.map +0 -1
  79. package/dist/src/components/examples/enhanced-controls-example.js +0 -18
  80. package/dist/src/components/examples/enhanced-media-player-example.d.ts.map +0 -1
  81. package/dist/src/components/examples/enhanced-media-player-example.js +0 -13
  82. package/dist/src/components/examples/loading-states-demo.d.ts.map +0 -1
  83. package/dist/src/components/examples/loading-states-demo.js +0 -41
  84. package/dist/src/components/examples/react-19-demo.d.ts.map +0 -1
  85. package/dist/src/components/examples/react-19-demo.js +0 -104
  86. package/dist/src/components/examples/volume-orientation-demo.d.ts.map +0 -1
  87. package/dist/src/components/examples/volume-orientation-demo.js +0 -31
  88. package/dist/src/components/icon-demo.d.ts.map +0 -1
  89. package/dist/src/components/icon-demo.js +0 -16
  90. package/dist/src/components/icons/index.d.ts.map +0 -1
  91. package/dist/src/components/icons/index.js +0 -59
  92. package/dist/src/components/icons/svg-icons/ArrowLeftIcon.d.ts.map +0 -1
  93. package/dist/src/components/icons/svg-icons/ArrowLeftIcon.js +0 -3
  94. package/dist/src/components/icons/svg-icons/ArrowRightIcon.d.ts.map +0 -1
  95. package/dist/src/components/icons/svg-icons/ArrowRightIcon.js +0 -3
  96. package/dist/src/components/icons/svg-icons/AudioIcon.d.ts.map +0 -1
  97. package/dist/src/components/icons/svg-icons/AudioIcon.js +0 -4
  98. package/dist/src/components/icons/svg-icons/BackwardIcon.d.ts.map +0 -1
  99. package/dist/src/components/icons/svg-icons/BackwardIcon.js +0 -3
  100. package/dist/src/components/icons/svg-icons/CameraIcon.d.ts.map +0 -1
  101. package/dist/src/components/icons/svg-icons/CameraIcon.js +0 -4
  102. package/dist/src/components/icons/svg-icons/CheckIcon.d.ts.map +0 -1
  103. package/dist/src/components/icons/svg-icons/CheckIcon.js +0 -4
  104. package/dist/src/components/icons/svg-icons/EnablePiPIcon.d.ts.map +0 -1
  105. package/dist/src/components/icons/svg-icons/EnablePiPIcon.js +0 -5
  106. package/dist/src/components/icons/svg-icons/ForwardIcon.d.ts.map +0 -1
  107. package/dist/src/components/icons/svg-icons/ForwardIcon.js +0 -3
  108. package/dist/src/components/icons/svg-icons/FullscreenEnterIcon.d.ts.map +0 -1
  109. package/dist/src/components/icons/svg-icons/FullscreenEnterIcon.js +0 -3
  110. package/dist/src/components/icons/svg-icons/FullscreenExitIcon.d.ts.map +0 -1
  111. package/dist/src/components/icons/svg-icons/FullscreenExitIcon.js +0 -3
  112. package/dist/src/components/icons/svg-icons/LoadingIcon.d.ts.map +0 -1
  113. package/dist/src/components/icons/svg-icons/LoadingIcon.js +0 -3
  114. package/dist/src/components/icons/svg-icons/PauseIcon.d.ts.map +0 -1
  115. package/dist/src/components/icons/svg-icons/PauseIcon.js +0 -3
  116. package/dist/src/components/icons/svg-icons/PlayIcon.d.ts.map +0 -1
  117. package/dist/src/components/icons/svg-icons/PlayIcon.js +0 -3
  118. package/dist/src/components/icons/svg-icons/PlaybackSpeedIcon.d.ts.map +0 -1
  119. package/dist/src/components/icons/svg-icons/PlaybackSpeedIcon.js +0 -3
  120. package/dist/src/components/icons/svg-icons/QualityIcon.d.ts.map +0 -1
  121. package/dist/src/components/icons/svg-icons/QualityIcon.js +0 -3
  122. package/dist/src/components/icons/svg-icons/SettingsIcon.d.ts.map +0 -1
  123. package/dist/src/components/icons/svg-icons/SettingsIcon.js +0 -3
  124. package/dist/src/components/icons/svg-icons/SliderIcon.d.ts.map +0 -1
  125. package/dist/src/components/icons/svg-icons/SliderIcon.js +0 -3
  126. package/dist/src/components/icons/svg-icons/SubtitleIcon.d.ts.map +0 -1
  127. package/dist/src/components/icons/svg-icons/SubtitleIcon.js +0 -3
  128. package/dist/src/components/icons/svg-icons/SubtitleOffIcon.d.ts.map +0 -1
  129. package/dist/src/components/icons/svg-icons/SubtitleOffIcon.js +0 -3
  130. package/dist/src/components/icons/svg-icons/UnPiPIcon.d.ts.map +0 -1
  131. package/dist/src/components/icons/svg-icons/UnPiPIcon.js +0 -5
  132. package/dist/src/components/icons/svg-icons/VolumeMutedIcon.d.ts.map +0 -1
  133. package/dist/src/components/icons/svg-icons/VolumeMutedIcon.js +0 -3
  134. package/dist/src/components/icons/svg-icons/VolumeOneIcon.d.ts.map +0 -1
  135. package/dist/src/components/icons/svg-icons/VolumeOneIcon.js +0 -3
  136. package/dist/src/components/icons/svg-icons/VolumeThreeIcon.d.ts.map +0 -1
  137. package/dist/src/components/icons/svg-icons/VolumeThreeIcon.js +0 -3
  138. package/dist/src/components/icons/svg-icons/VolumeTwoIcon.d.ts.map +0 -1
  139. package/dist/src/components/icons/svg-icons/VolumeTwoIcon.js +0 -3
  140. package/dist/src/components/legacy.d.ts.map +0 -1
  141. package/dist/src/components/legacy.js +0 -52
  142. package/dist/src/components/media-metadata-display.d.ts.map +0 -1
  143. package/dist/src/components/media-metadata-display.js +0 -20
  144. package/dist/src/components/media-player-audio.d.ts.map +0 -1
  145. package/dist/src/components/media-player-audio.js +0 -18
  146. package/dist/src/components/media-player-controls.d.ts.map +0 -1
  147. package/dist/src/components/media-player-controls.js +0 -150
  148. package/dist/src/components/media-player-error.d.ts.map +0 -1
  149. package/dist/src/components/media-player-error.js +0 -85
  150. package/dist/src/components/media-player-fullscreen.d.ts.map +0 -1
  151. package/dist/src/components/media-player-fullscreen.js +0 -68
  152. package/dist/src/components/media-player-hls.d.ts.map +0 -1
  153. package/dist/src/components/media-player-hls.js +0 -20
  154. package/dist/src/components/media-player-loading.d.ts.map +0 -1
  155. package/dist/src/components/media-player-loading.js +0 -53
  156. package/dist/src/components/media-player-play.d.ts.map +0 -1
  157. package/dist/src/components/media-player-play.js +0 -44
  158. package/dist/src/components/media-player-root.d.ts.map +0 -1
  159. package/dist/src/components/media-player-root.js +0 -243
  160. package/dist/src/components/media-player-seek.d.ts.map +0 -1
  161. package/dist/src/components/media-player-seek.js +0 -92
  162. package/dist/src/components/media-player-time.d.ts.map +0 -1
  163. package/dist/src/components/media-player-time.js +0 -57
  164. package/dist/src/components/media-player-tooltip.d.ts.map +0 -1
  165. package/dist/src/components/media-player-tooltip.js +0 -14
  166. package/dist/src/components/media-player-video.d.ts.map +0 -1
  167. package/dist/src/components/media-player-video.js +0 -18
  168. package/dist/src/components/media-player-volume.d.ts.map +0 -1
  169. package/dist/src/components/media-player-volume.js +0 -88
  170. package/dist/src/components/media-player.d.ts.map +0 -1
  171. package/dist/src/components/media-player.js +0 -67
  172. package/dist/src/components/media-suspense.d.ts.map +0 -1
  173. package/dist/src/components/media-suspense.js +0 -173
  174. package/dist/src/components/player-settings-form.d.ts.map +0 -1
  175. package/dist/src/components/player-settings-form.js +0 -46
  176. package/dist/src/components/react-player-wrapper.d.ts.map +0 -1
  177. package/dist/src/components/react-player-wrapper.js +0 -163
  178. package/dist/src/components/simple-video-player.d.ts.map +0 -1
  179. package/dist/src/components/simple-video-player.js +0 -41
  180. package/dist/src/components/ui/enhanced-seek-bar.d.ts.map +0 -1
  181. package/dist/src/components/ui/enhanced-seek-bar.js +0 -112
  182. package/dist/src/components/ui/fullscreen-button.d.ts.map +0 -1
  183. package/dist/src/components/ui/fullscreen-button.js +0 -21
  184. package/dist/src/components/ui/media-resource-preloader.d.ts.map +0 -1
  185. package/dist/src/components/ui/media-resource-preloader.js +0 -295
  186. package/dist/src/components/ui/play-button.d.ts.map +0 -1
  187. package/dist/src/components/ui/play-button.js +0 -26
  188. package/dist/src/components/ui/seek-bar.d.ts.map +0 -1
  189. package/dist/src/components/ui/seek-bar.js +0 -54
  190. package/dist/src/components/ui/time-display.d.ts.map +0 -1
  191. package/dist/src/components/ui/time-display.js +0 -18
  192. package/dist/src/components/ui/volume-control.d.ts.map +0 -1
  193. package/dist/src/components/ui/volume-control.js +0 -71
  194. package/dist/src/components/unified/base-media-player.d.ts.map +0 -1
  195. package/dist/src/components/unified/base-media-player.js +0 -104
  196. package/dist/src/components/unified/media-player.d.ts.map +0 -1
  197. package/dist/src/components/unified/media-player.js +0 -41
  198. package/dist/src/components/variants/minimal/AccessibleMinimalPlayer.d.ts.map +0 -1
  199. package/dist/src/components/variants/minimal/AccessibleMinimalPlayer.js +0 -322
  200. package/dist/src/components/variants/minimal/EnhancedMinimalMediaPlayer.d.ts.map +0 -1
  201. package/dist/src/components/variants/minimal/EnhancedMinimalMediaPlayer.js +0 -280
  202. package/dist/src/components/variants/minimal/MinimalControls.d.ts.map +0 -1
  203. package/dist/src/components/variants/minimal/MinimalControls.js +0 -19
  204. package/dist/src/components/variants/minimal/MinimalLoading.d.ts.map +0 -1
  205. package/dist/src/components/variants/minimal/MinimalLoading.js +0 -6
  206. package/dist/src/components/variants/minimal/MinimalMediaPlayer.d.ts.map +0 -1
  207. package/dist/src/components/variants/minimal/MinimalMediaPlayer.js +0 -135
  208. package/dist/src/components/variants/minimal/MinimalOverlay.d.ts.map +0 -1
  209. package/dist/src/components/variants/minimal/MinimalOverlay.js +0 -15
  210. package/dist/src/components/variants/minimal/MinimalPlayButton.d.ts.map +0 -1
  211. package/dist/src/components/variants/minimal/MinimalPlayButton.js +0 -29
  212. package/dist/src/components/variants/minimal/MinimalSeekBar.d.ts.map +0 -1
  213. package/dist/src/components/variants/minimal/MinimalSeekBar.js +0 -73
  214. package/dist/src/components/variants/minimal/MinimalVolumeControl.d.ts.map +0 -1
  215. package/dist/src/components/variants/minimal/MinimalVolumeControl.js +0 -29
  216. package/dist/src/components/variants/minimal/SimpleMinimalPlayer.d.ts.map +0 -1
  217. package/dist/src/components/variants/minimal/SimpleMinimalPlayer.js +0 -51
  218. package/dist/src/components/variants/minimal/components/CenterPlayButton.d.ts.map +0 -1
  219. package/dist/src/components/variants/minimal/components/CenterPlayButton.js +0 -8
  220. package/dist/src/components/variants/minimal/components/ControlBar.d.ts.map +0 -1
  221. package/dist/src/components/variants/minimal/components/ControlBar.js +0 -10
  222. package/dist/src/components/variants/minimal/components/EnhancedSettingsMenu.d.ts.map +0 -1
  223. package/dist/src/components/variants/minimal/components/EnhancedSettingsMenu.js +0 -68
  224. package/dist/src/components/variants/minimal/components/PlaybackControls.d.ts.map +0 -1
  225. package/dist/src/components/variants/minimal/components/PlaybackControls.js +0 -9
  226. package/dist/src/components/variants/minimal/components/RightControls.d.ts.map +0 -1
  227. package/dist/src/components/variants/minimal/components/RightControls.js +0 -40
  228. package/dist/src/components/variants/minimal/components/SeekBar.d.ts.map +0 -1
  229. package/dist/src/components/variants/minimal/components/SeekBar.js +0 -43
  230. package/dist/src/components/variants/minimal/components/SettingsDropdown.d.ts.map +0 -1
  231. package/dist/src/components/variants/minimal/components/SettingsDropdown.js +0 -18
  232. package/dist/src/components/variants/minimal/components/SubtitleDisplay.d.ts.map +0 -1
  233. package/dist/src/components/variants/minimal/components/SubtitleDisplay.js +0 -6
  234. package/dist/src/components/variants/minimal/components/TimeDisplay.d.ts.map +0 -1
  235. package/dist/src/components/variants/minimal/components/TimeDisplay.js +0 -5
  236. package/dist/src/components/variants/minimal/components/VideoElement.d.ts.map +0 -1
  237. package/dist/src/components/variants/minimal/components/VideoElement.js +0 -4
  238. package/dist/src/components/variants/minimal/components/VolumeControl.d.ts.map +0 -1
  239. package/dist/src/components/variants/minimal/components/VolumeControl.js +0 -99
  240. package/dist/src/components/variants/minimal/index.d.ts.map +0 -1
  241. package/dist/src/components/variants/minimal/index.js +0 -8
  242. package/dist/src/components/video-player.d.ts.map +0 -1
  243. package/dist/src/components/video-player.js +0 -38
  244. package/dist/src/context/error-handling.d.ts.map +0 -1
  245. package/dist/src/context/error-handling.js +0 -300
  246. package/dist/src/context/media-context.d.ts.map +0 -1
  247. package/dist/src/context/media-context.js +0 -121
  248. package/dist/src/context/media-provider.d.ts.map +0 -1
  249. package/dist/src/context/media-provider.js +0 -164
  250. package/dist/src/context/media-store.d.ts.map +0 -1
  251. package/dist/src/context/media-store.js +0 -273
  252. package/dist/src/context/persistence.d.ts.map +0 -1
  253. package/dist/src/context/persistence.js +0 -356
  254. package/dist/src/core/events/event-system.d.ts.map +0 -1
  255. package/dist/src/core/events/event-system.js +0 -288
  256. package/dist/src/core/events/hooks.d.ts.map +0 -1
  257. package/dist/src/core/events/hooks.js +0 -198
  258. package/dist/src/core/events/index.d.ts.map +0 -1
  259. package/dist/src/core/events/index.js +0 -7
  260. package/dist/src/core/events/middleware.d.ts.map +0 -1
  261. package/dist/src/core/events/middleware.js +0 -219
  262. package/dist/src/core/index.d.ts.map +0 -1
  263. package/dist/src/core/index.js +0 -15
  264. package/dist/src/core/optimization/bundle-optimizer.d.ts.map +0 -1
  265. package/dist/src/core/optimization/bundle-optimizer.js +0 -217
  266. package/dist/src/core/performance/cicd.d.ts.map +0 -1
  267. package/dist/src/core/performance/cicd.js +0 -83
  268. package/dist/src/core/performance/index.d.ts.map +0 -1
  269. package/dist/src/core/performance/index.js +0 -14
  270. package/dist/src/core/performance/media-loading-optimizer.d.ts.map +0 -1
  271. package/dist/src/core/performance/media-loading-optimizer.js +0 -404
  272. package/dist/src/core/performance/performance-budgets.d.ts.map +0 -1
  273. package/dist/src/core/performance/performance-budgets.js +0 -326
  274. package/dist/src/core/performance/performance-monitor.d.ts.map +0 -1
  275. package/dist/src/core/performance/performance-monitor.js +0 -297
  276. package/dist/src/core/performance/performance-testing.d.ts.map +0 -1
  277. package/dist/src/core/performance/performance-testing.js +0 -314
  278. package/dist/src/core/plugins/base-plugin.d.ts.map +0 -1
  279. package/dist/src/core/plugins/base-plugin.js +0 -151
  280. package/dist/src/core/plugins/enhanced-plugin-system.d.ts.map +0 -1
  281. package/dist/src/core/plugins/enhanced-plugin-system.js +0 -305
  282. package/dist/src/core/plugins/examples/analytics-plugin.d.ts.map +0 -1
  283. package/dist/src/core/plugins/examples/analytics-plugin.js +0 -191
  284. package/dist/src/core/plugins/index.d.ts.map +0 -1
  285. package/dist/src/core/plugins/index.js +0 -9
  286. package/dist/src/core/plugins/registry.d.ts.map +0 -1
  287. package/dist/src/core/plugins/registry.js +0 -261
  288. package/dist/src/core/plugins/types.d.ts.map +0 -1
  289. package/dist/src/core/plugins/types.js +0 -31
  290. package/dist/src/core/plugins/utils.d.ts.map +0 -1
  291. package/dist/src/core/plugins/utils.js +0 -274
  292. package/dist/src/core/progressive-loading.d.ts.map +0 -1
  293. package/dist/src/core/progressive-loading.js +0 -239
  294. package/dist/src/core/providers/enhanced-hls-provider.d.ts.map +0 -1
  295. package/dist/src/core/providers/enhanced-hls-provider.js +0 -273
  296. package/dist/src/core/providers/service-provider.d.ts.map +0 -1
  297. package/dist/src/core/providers/service-provider.js +0 -105
  298. package/dist/src/core/utils.d.ts.map +0 -1
  299. package/dist/src/core/utils.js +0 -21
  300. package/dist/src/features/media-session/media-session-manager.d.ts.map +0 -1
  301. package/dist/src/features/media-session/media-session-manager.js +0 -331
  302. package/dist/src/features/picture-in-picture/pip-manager.d.ts.map +0 -1
  303. package/dist/src/features/picture-in-picture/pip-manager.js +0 -353
  304. package/dist/src/features/playlist/playlist-manager.d.ts.map +0 -1
  305. package/dist/src/features/playlist/playlist-manager.js +0 -475
  306. package/dist/src/features/subtitles/subtitle-manager.d.ts.map +0 -1
  307. package/dist/src/features/subtitles/subtitle-manager.js +0 -335
  308. package/dist/src/features/subtitles/subtitle-parser.d.ts.map +0 -1
  309. package/dist/src/features/subtitles/subtitle-parser.js +0 -217
  310. package/dist/src/features/thumbnails/thumbnail-generator.d.ts.map +0 -1
  311. package/dist/src/features/thumbnails/thumbnail-generator.js +0 -388
  312. package/dist/src/hooks/accessibility/index.d.ts.map +0 -1
  313. package/dist/src/hooks/accessibility/index.js +0 -4
  314. package/dist/src/hooks/accessibility/use-accessibility-preferences.d.ts.map +0 -1
  315. package/dist/src/hooks/accessibility/use-accessibility-preferences.js +0 -156
  316. package/dist/src/hooks/accessibility/use-focus-management.d.ts.map +0 -1
  317. package/dist/src/hooks/accessibility/use-focus-management.js +0 -142
  318. package/dist/src/hooks/accessibility/use-keyboard-shortcuts.d.ts.map +0 -1
  319. package/dist/src/hooks/accessibility/use-keyboard-shortcuts.js +0 -101
  320. package/dist/src/hooks/accessibility/use-screen-reader.d.ts.map +0 -1
  321. package/dist/src/hooks/accessibility/use-screen-reader.js +0 -148
  322. package/dist/src/hooks/core/index.d.ts.map +0 -1
  323. package/dist/src/hooks/core/index.js +0 -19
  324. package/dist/src/hooks/legacy.d.ts.map +0 -1
  325. package/dist/src/hooks/legacy.js +0 -17
  326. package/dist/src/hooks/use-enhanced-media-player.d.ts.map +0 -1
  327. package/dist/src/hooks/use-enhanced-media-player.js +0 -395
  328. package/dist/src/hooks/use-intelligent-preloading.d.ts.map +0 -1
  329. package/dist/src/hooks/use-intelligent-preloading.js +0 -258
  330. package/dist/src/hooks/use-keyboard-controls.d.ts.map +0 -1
  331. package/dist/src/hooks/use-keyboard-controls.js +0 -83
  332. package/dist/src/hooks/use-media-actions.d.ts.map +0 -1
  333. package/dist/src/hooks/use-media-actions.js +0 -121
  334. package/dist/src/hooks/use-media-metadata.d.ts.map +0 -1
  335. package/dist/src/hooks/use-media-metadata.js +0 -74
  336. package/dist/src/hooks/use-media-optimistic.d.ts.map +0 -1
  337. package/dist/src/hooks/use-media-optimistic.js +0 -205
  338. package/dist/src/hooks/use-media-player.d.ts.map +0 -1
  339. package/dist/src/hooks/use-media-player.js +0 -251
  340. package/dist/src/hooks/use-media-state.d.ts.map +0 -1
  341. package/dist/src/hooks/use-media-state.js +0 -162
  342. package/dist/src/hooks/use-memory-optimization.d.ts.map +0 -1
  343. package/dist/src/hooks/use-memory-optimization.js +0 -288
  344. package/dist/src/hooks/use-optimistic-controls.d.ts.map +0 -1
  345. package/dist/src/hooks/use-optimistic-controls.js +0 -60
  346. package/dist/src/hooks/use-optimized-media.d.ts.map +0 -1
  347. package/dist/src/hooks/use-optimized-media.js +0 -211
  348. package/dist/src/hooks/use-touch-gestures.d.ts.map +0 -1
  349. package/dist/src/hooks/use-touch-gestures.js +0 -289
  350. package/dist/src/hooks/useEnhancedSubtitles.d.ts.map +0 -1
  351. package/dist/src/hooks/useEnhancedSubtitles.js +0 -205
  352. package/dist/src/hooks/useKeyboardShortcuts.d.ts.map +0 -1
  353. package/dist/src/hooks/useKeyboardShortcuts.js +0 -59
  354. package/dist/src/hooks/useMediaControls.d.ts.map +0 -1
  355. package/dist/src/hooks/useMediaControls.js +0 -44
  356. package/dist/src/hooks/useScreenshot.d.ts.map +0 -1
  357. package/dist/src/hooks/useScreenshot.js +0 -56
  358. package/dist/src/hooks/useSubtitles.d.ts.map +0 -1
  359. package/dist/src/hooks/useSubtitles.js +0 -73
  360. package/dist/src/hooks/useVideoPlayer.d.ts.map +0 -1
  361. package/dist/src/hooks/useVideoPlayer.js +0 -184
  362. package/dist/src/icons/components/FullscreenIcon.d.ts.map +0 -1
  363. package/dist/src/icons/components/FullscreenIcon.js +0 -11
  364. package/dist/src/icons/components/SettingsIcon.d.ts.map +0 -1
  365. package/dist/src/icons/components/SettingsIcon.js +0 -11
  366. package/dist/src/icons/components/animated/LoadingIcon.d.ts.map +0 -1
  367. package/dist/src/icons/components/animated/LoadingIcon.js +0 -11
  368. package/dist/src/icons/components/animated/PlayPauseIcon.d.ts.map +0 -1
  369. package/dist/src/icons/components/animated/PlayPauseIcon.js +0 -9
  370. package/dist/src/icons/components/media/PauseIcon.d.ts.map +0 -1
  371. package/dist/src/icons/components/media/PauseIcon.js +0 -12
  372. package/dist/src/icons/components/media/PlayIcon.d.ts.map +0 -1
  373. package/dist/src/icons/components/media/PlayIcon.js +0 -12
  374. package/dist/src/icons/components/volume/VolumeIcon.d.ts.map +0 -1
  375. package/dist/src/icons/components/volume/VolumeIcon.js +0 -11
  376. package/dist/src/icons/components/volume/VolumeOffIcon.d.ts.map +0 -1
  377. package/dist/src/icons/components/volume/VolumeOffIcon.js +0 -11
  378. package/dist/src/icons/index.d.ts.map +0 -1
  379. package/dist/src/icons/index.js +0 -45
  380. package/dist/src/icons/provider.d.ts.map +0 -1
  381. package/dist/src/icons/provider.js +0 -37
  382. package/dist/src/icons/types.d.ts.map +0 -1
  383. package/dist/src/icons/types.js +0 -1
  384. package/dist/src/index-enhanced.d.ts.map +0 -1
  385. package/dist/src/index-enhanced.js +0 -16
  386. package/dist/src/index-legacy.d.ts.map +0 -1
  387. package/dist/src/index-legacy.js +0 -97
  388. package/dist/src/index.d.ts.map +0 -1
  389. package/dist/src/index.js +0 -90
  390. package/dist/src/index.minimal.d.ts.map +0 -1
  391. package/dist/src/index.minimal.js +0 -3
  392. package/dist/src/lib/deprecation.d.ts.map +0 -1
  393. package/dist/src/lib/deprecation.js +0 -31
  394. package/dist/src/lib/format-time.d.ts.map +0 -1
  395. package/dist/src/lib/format-time.js +0 -32
  396. package/dist/src/lib/index.d.ts.map +0 -1
  397. package/dist/src/lib/index.js +0 -3
  398. package/dist/src/lib/utils.d.ts.map +0 -1
  399. package/dist/src/lib/utils.js +0 -5
  400. package/dist/src/test/setup.d.ts.map +0 -1
  401. package/dist/src/test/setup.js +0 -65
  402. package/dist/src/types/events.d.ts.map +0 -1
  403. package/dist/src/types/events.js +0 -2
  404. package/dist/src/types/formats.d.ts.map +0 -1
  405. package/dist/src/types/formats.js +0 -63
  406. package/dist/src/types/index.d.ts.map +0 -1
  407. package/dist/src/types/index.js +0 -4
  408. package/dist/utils-Db13763z.cjs +0 -9
  409. package/dist/utils-Db13763z.cjs.map +0 -1
  410. package/dist/utils-nTO4AnHo.js +0 -2809
  411. package/dist/utils-nTO4AnHo.js.map +0 -1
  412. package/dist/utils.js +0 -2
  413. package/dist/utils.js.map +0 -1
  414. package/dist/utils.mjs +0 -7
  415. package/dist/utils.mjs.map +0 -1
  416. package/src/adapters/videojs-adapter.js +0 -350
  417. package/src/components/AnimateLoading.js +0 -41
  418. package/src/components/LoadingState.js +0 -111
  419. package/src/components/accessibility/keyboard-help-overlay.js +0 -90
  420. package/src/components/audio-player.js +0 -31
  421. package/src/components/basic/index.js +0 -29
  422. package/src/components/enhanced/advanced-features.js +0 -64
  423. package/src/components/enhanced/debug-panel.js +0 -94
  424. package/src/components/enhanced/enhanced-controls.js +0 -233
  425. package/src/components/enhanced/enhanced-media-player.js +0 -316
  426. package/src/components/enhanced/error-handling.js +0 -153
  427. package/src/components/enhanced/index.js +0 -10
  428. package/src/components/enhanced/media-player-enhanced.js +0 -250
  429. package/src/components/examples/basic-video-player.js +0 -16
  430. package/src/components/examples/custom-controls-example.js +0 -12
  431. package/src/components/examples/enhanced-controls-example.js +0 -18
  432. package/src/components/examples/enhanced-media-player-example.js +0 -13
  433. package/src/components/examples/loading-states-demo.js +0 -41
  434. package/src/components/examples/react-19-demo.js +0 -104
  435. package/src/components/examples/volume-orientation-demo.js +0 -31
  436. package/src/components/icon-demo.js +0 -16
  437. package/src/components/icons/index.js +0 -59
  438. package/src/components/icons/svg-icons/ArrowLeftIcon.js +0 -3
  439. package/src/components/icons/svg-icons/ArrowRightIcon.js +0 -3
  440. package/src/components/icons/svg-icons/AudioIcon.js +0 -4
  441. package/src/components/icons/svg-icons/BackwardIcon.js +0 -3
  442. package/src/components/icons/svg-icons/CameraIcon.js +0 -4
  443. package/src/components/icons/svg-icons/CheckIcon.js +0 -4
  444. package/src/components/icons/svg-icons/EnablePiPIcon.js +0 -5
  445. package/src/components/icons/svg-icons/ForwardIcon.js +0 -3
  446. package/src/components/icons/svg-icons/FullscreenEnterIcon.js +0 -3
  447. package/src/components/icons/svg-icons/FullscreenExitIcon.js +0 -3
  448. package/src/components/icons/svg-icons/LoadingIcon.js +0 -3
  449. package/src/components/icons/svg-icons/PauseIcon.js +0 -3
  450. package/src/components/icons/svg-icons/PlayIcon.js +0 -3
  451. package/src/components/icons/svg-icons/PlaybackSpeedIcon.js +0 -3
  452. package/src/components/icons/svg-icons/QualityIcon.js +0 -3
  453. package/src/components/icons/svg-icons/SettingsIcon.js +0 -3
  454. package/src/components/icons/svg-icons/SliderIcon.js +0 -3
  455. package/src/components/icons/svg-icons/SubtitleIcon.js +0 -3
  456. package/src/components/icons/svg-icons/SubtitleOffIcon.js +0 -3
  457. package/src/components/icons/svg-icons/UnPiPIcon.js +0 -5
  458. package/src/components/icons/svg-icons/VolumeMutedIcon.js +0 -3
  459. package/src/components/icons/svg-icons/VolumeOneIcon.js +0 -3
  460. package/src/components/icons/svg-icons/VolumeThreeIcon.js +0 -3
  461. package/src/components/icons/svg-icons/VolumeTwoIcon.js +0 -3
  462. package/src/components/legacy.js +0 -52
  463. package/src/components/media-metadata-display.js +0 -20
  464. package/src/components/media-player-audio.js +0 -18
  465. package/src/components/media-player-controls.js +0 -150
  466. package/src/components/media-player-error.js +0 -85
  467. package/src/components/media-player-fullscreen.js +0 -68
  468. package/src/components/media-player-hls.js +0 -20
  469. package/src/components/media-player-loading.js +0 -53
  470. package/src/components/media-player-play.js +0 -44
  471. package/src/components/media-player-root.js +0 -243
  472. package/src/components/media-player-seek.js +0 -92
  473. package/src/components/media-player-time.js +0 -57
  474. package/src/components/media-player-tooltip.js +0 -14
  475. package/src/components/media-player-video.js +0 -18
  476. package/src/components/media-player-volume.js +0 -88
  477. package/src/components/media-player.js +0 -67
  478. package/src/components/media-suspense.js +0 -173
  479. package/src/components/player-settings-form.js +0 -46
  480. package/src/components/react-player-wrapper.js +0 -163
  481. package/src/components/simple-video-player.js +0 -41
  482. package/src/components/ui/enhanced-seek-bar.js +0 -112
  483. package/src/components/ui/fullscreen-button.js +0 -21
  484. package/src/components/ui/media-resource-preloader.js +0 -295
  485. package/src/components/ui/play-button.js +0 -26
  486. package/src/components/ui/seek-bar.js +0 -54
  487. package/src/components/ui/time-display.js +0 -18
  488. package/src/components/ui/volume-control.js +0 -71
  489. package/src/components/unified/base-media-player.js +0 -104
  490. package/src/components/unified/media-player.js +0 -41
  491. package/src/components/variants/minimal/AccessibleMinimalPlayer.js +0 -322
  492. package/src/components/variants/minimal/EnhancedMinimalMediaPlayer.js +0 -280
  493. package/src/components/variants/minimal/MinimalControls.js +0 -19
  494. package/src/components/variants/minimal/MinimalLoading.js +0 -6
  495. package/src/components/variants/minimal/MinimalMediaPlayer.js +0 -135
  496. package/src/components/variants/minimal/MinimalOverlay.js +0 -15
  497. package/src/components/variants/minimal/MinimalPlayButton.js +0 -29
  498. package/src/components/variants/minimal/MinimalSeekBar.js +0 -73
  499. package/src/components/variants/minimal/MinimalVolumeControl.js +0 -29
  500. package/src/components/variants/minimal/SimpleMinimalPlayer.js +0 -51
  501. package/src/components/variants/minimal/components/CenterPlayButton.js +0 -8
  502. package/src/components/variants/minimal/components/ControlBar.js +0 -10
  503. package/src/components/variants/minimal/components/EnhancedSettingsMenu.js +0 -68
  504. package/src/components/variants/minimal/components/PlaybackControls.js +0 -9
  505. package/src/components/variants/minimal/components/RightControls.js +0 -40
  506. package/src/components/variants/minimal/components/SeekBar.js +0 -43
  507. package/src/components/variants/minimal/components/SettingsDropdown.js +0 -18
  508. package/src/components/variants/minimal/components/SubtitleDisplay.js +0 -6
  509. package/src/components/variants/minimal/components/TimeDisplay.js +0 -5
  510. package/src/components/variants/minimal/components/VideoElement.js +0 -4
  511. package/src/components/variants/minimal/components/VolumeControl.js +0 -99
  512. package/src/components/variants/minimal/index.js +0 -8
  513. package/src/components/video-player.js +0 -38
  514. package/src/context/error-handling.js +0 -300
  515. package/src/context/media-context.js +0 -121
  516. package/src/context/media-provider.js +0 -164
  517. package/src/context/media-store.js +0 -273
  518. package/src/context/persistence.js +0 -356
  519. package/src/core/events/event-system.js +0 -288
  520. package/src/core/events/hooks.js +0 -198
  521. package/src/core/events/index.js +0 -7
  522. package/src/core/events/middleware.js +0 -219
  523. package/src/core/index.js +0 -15
  524. package/src/core/optimization/bundle-optimizer.js +0 -217
  525. package/src/core/performance/cicd.js +0 -83
  526. package/src/core/performance/index.js +0 -14
  527. package/src/core/performance/media-loading-optimizer.js +0 -404
  528. package/src/core/performance/performance-budgets.js +0 -326
  529. package/src/core/performance/performance-monitor.js +0 -297
  530. package/src/core/performance/performance-testing.js +0 -314
  531. package/src/core/plugins/base-plugin.js +0 -151
  532. package/src/core/plugins/enhanced-plugin-system.js +0 -305
  533. package/src/core/plugins/examples/analytics-plugin.js +0 -191
  534. package/src/core/plugins/index.js +0 -9
  535. package/src/core/plugins/registry.js +0 -261
  536. package/src/core/plugins/types.js +0 -31
  537. package/src/core/plugins/utils.js +0 -274
  538. package/src/core/progressive-loading.js +0 -239
  539. package/src/core/providers/enhanced-hls-provider.js +0 -273
  540. package/src/core/providers/service-provider.js +0 -105
  541. package/src/core/utils.js +0 -21
  542. package/src/features/media-session/media-session-manager.js +0 -331
  543. package/src/features/picture-in-picture/pip-manager.js +0 -353
  544. package/src/features/playlist/playlist-manager.js +0 -475
  545. package/src/features/subtitles/subtitle-manager.js +0 -335
  546. package/src/features/subtitles/subtitle-parser.js +0 -217
  547. package/src/features/thumbnails/thumbnail-generator.js +0 -388
  548. package/src/hooks/accessibility/index.js +0 -4
  549. package/src/hooks/accessibility/use-accessibility-preferences.js +0 -156
  550. package/src/hooks/accessibility/use-focus-management.js +0 -142
  551. package/src/hooks/accessibility/use-keyboard-shortcuts.js +0 -101
  552. package/src/hooks/accessibility/use-screen-reader.js +0 -148
  553. package/src/hooks/core/index.js +0 -19
  554. package/src/hooks/legacy.js +0 -17
  555. package/src/hooks/use-enhanced-media-player.js +0 -395
  556. package/src/hooks/use-intelligent-preloading.js +0 -258
  557. package/src/hooks/use-keyboard-controls.js +0 -83
  558. package/src/hooks/use-media-actions.js +0 -121
  559. package/src/hooks/use-media-metadata.js +0 -74
  560. package/src/hooks/use-media-optimistic.js +0 -205
  561. package/src/hooks/use-media-player.js +0 -251
  562. package/src/hooks/use-media-state.js +0 -162
  563. package/src/hooks/use-memory-optimization.js +0 -288
  564. package/src/hooks/use-optimistic-controls.js +0 -60
  565. package/src/hooks/use-optimized-media.js +0 -211
  566. package/src/hooks/use-touch-gestures.js +0 -289
  567. package/src/hooks/useEnhancedSubtitles.js +0 -205
  568. package/src/hooks/useKeyboardShortcuts.js +0 -59
  569. package/src/hooks/useMediaControls.js +0 -44
  570. package/src/hooks/useScreenshot.js +0 -56
  571. package/src/hooks/useSubtitles.js +0 -73
  572. package/src/hooks/useVideoPlayer.js +0 -184
  573. package/src/icons/components/FullscreenIcon.js +0 -11
  574. package/src/icons/components/SettingsIcon.js +0 -11
  575. package/src/icons/components/animated/LoadingIcon.js +0 -11
  576. package/src/icons/components/animated/PlayPauseIcon.js +0 -9
  577. package/src/icons/components/media/PauseIcon.js +0 -12
  578. package/src/icons/components/media/PlayIcon.js +0 -12
  579. package/src/icons/components/volume/VolumeIcon.js +0 -11
  580. package/src/icons/components/volume/VolumeOffIcon.js +0 -11
  581. package/src/icons/index.js +0 -45
  582. package/src/icons/provider.js +0 -37
  583. package/src/icons/types.js +0 -1
  584. package/src/index-enhanced.js +0 -16
  585. package/src/index-legacy.js +0 -97
  586. package/src/index.js +0 -90
  587. package/src/index.minimal.js +0 -3
  588. package/src/lib/deprecation.js +0 -31
  589. package/src/lib/format-time.js +0 -32
  590. package/src/lib/index.js +0 -3
  591. package/src/lib/utils.js +0 -5
  592. package/src/test/setup.js +0 -65
  593. package/src/types/events.js +0 -2
  594. package/src/types/formats.js +0 -63
  595. 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
- }