@therealtinhtute/baroiplayer 1.0.5 → 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 (611) hide show
  1. package/dist/index.d.ts +1 -1
  2. package/dist/package.json +1 -1
  3. package/dist/src/components/media-player-error.tsx +2 -2
  4. package/dist/src/components/media-player-fullscreen.tsx +2 -2
  5. package/dist/src/components/media-player-play.tsx +2 -2
  6. package/dist/src/components/media-player-seek.tsx +1 -1
  7. package/dist/src/components/media-player-tooltip.tsx +1 -1
  8. package/dist/src/components/media-player-volume.tsx +3 -3
  9. package/dist/src/components/react-player-wrapper.tsx +5 -5
  10. package/dist/src/hooks/use-touch-gestures.ts +1 -1
  11. package/package.json +1 -1
  12. package/src/components/media-player-error.tsx +2 -2
  13. package/src/components/media-player-fullscreen.tsx +2 -2
  14. package/src/components/media-player-play.tsx +2 -2
  15. package/src/components/media-player-seek.tsx +1 -1
  16. package/src/components/media-player-tooltip.tsx +1 -1
  17. package/src/components/media-player-volume.tsx +3 -3
  18. package/src/components/react-player-wrapper.tsx +5 -5
  19. package/src/hooks/use-touch-gestures.ts +1 -1
  20. package/dist/context/media.js +0 -2
  21. package/dist/context/media.js.map +0 -1
  22. package/dist/context/media.mjs +0 -15
  23. package/dist/context/media.mjs.map +0 -1
  24. package/dist/context/store.js +0 -2
  25. package/dist/context/store.js.map +0 -1
  26. package/dist/context/store.mjs +0 -5
  27. package/dist/context/store.mjs.map +0 -1
  28. package/dist/context-Af84FynT.js +0 -1179
  29. package/dist/context-Af84FynT.js.map +0 -1
  30. package/dist/context-CwZnPdz0.cjs +0 -23
  31. package/dist/context-CwZnPdz0.cjs.map +0 -1
  32. package/dist/core-events-B5W_j8yU.js +0 -480
  33. package/dist/core-events-B5W_j8yU.js.map +0 -1
  34. package/dist/core-events-CN0-Vhhq.cjs +0 -2
  35. package/dist/core-events-CN0-Vhhq.cjs.map +0 -1
  36. package/dist/core-plugins-Bq9KLany.js +0 -696
  37. package/dist/core-plugins-Bq9KLany.js.map +0 -1
  38. package/dist/core-plugins-CPDSHMiQ.cjs +0 -2
  39. package/dist/core-plugins-CPDSHMiQ.cjs.map +0 -1
  40. package/dist/core.js +0 -37
  41. package/dist/core.js.map +0 -1
  42. package/dist/core.mjs +0 -1217
  43. package/dist/core.mjs.map +0 -1
  44. package/dist/enhanced-components-CXnYiOt6.cjs +0 -2
  45. package/dist/enhanced-components-CXnYiOt6.cjs.map +0 -1
  46. package/dist/enhanced-components-Da0TSvKe.js +0 -1073
  47. package/dist/enhanced-components-Da0TSvKe.js.map +0 -1
  48. package/dist/hooks-BCMilGRf.cjs +0 -4
  49. package/dist/hooks-BCMilGRf.cjs.map +0 -1
  50. package/dist/hooks-BPtHV1ZT.js +0 -2042
  51. package/dist/hooks-BPtHV1ZT.js.map +0 -1
  52. package/dist/index.js.map +0 -1
  53. package/dist/index.mjs.map +0 -1
  54. package/dist/minimal-components-BHJMuaL7.cjs +0 -2
  55. package/dist/minimal-components-BHJMuaL7.cjs.map +0 -1
  56. package/dist/minimal-components-BmqRefl1.js +0 -2002
  57. package/dist/minimal-components-BmqRefl1.js.map +0 -1
  58. package/dist/mona-loading.gif +0 -0
  59. package/dist/performance-monitor--rzKTlbj.js +0 -302
  60. package/dist/performance-monitor--rzKTlbj.js.map +0 -1
  61. package/dist/performance-monitor-cjIvZE2D.cjs +0 -2
  62. package/dist/performance-monitor-cjIvZE2D.cjs.map +0 -1
  63. package/dist/src/adapters/videojs-adapter.d.ts.map +0 -1
  64. package/dist/src/adapters/videojs-adapter.js +0 -350
  65. package/dist/src/assets/mona-loading.gif +0 -0
  66. package/dist/src/components/AnimateLoading.d.ts.map +0 -1
  67. package/dist/src/components/AnimateLoading.js +0 -41
  68. package/dist/src/components/LoadingState.d.ts.map +0 -1
  69. package/dist/src/components/LoadingState.js +0 -111
  70. package/dist/src/components/accessibility/keyboard-help-overlay.d.ts.map +0 -1
  71. package/dist/src/components/accessibility/keyboard-help-overlay.js +0 -90
  72. package/dist/src/components/audio-player.d.ts.map +0 -1
  73. package/dist/src/components/audio-player.js +0 -31
  74. package/dist/src/components/basic/index.d.ts.map +0 -1
  75. package/dist/src/components/basic/index.js +0 -29
  76. package/dist/src/components/enhanced/advanced-features.d.ts.map +0 -1
  77. package/dist/src/components/enhanced/advanced-features.js +0 -64
  78. package/dist/src/components/enhanced/debug-panel.d.ts.map +0 -1
  79. package/dist/src/components/enhanced/debug-panel.js +0 -94
  80. package/dist/src/components/enhanced/enhanced-controls.d.ts.map +0 -1
  81. package/dist/src/components/enhanced/enhanced-controls.js +0 -233
  82. package/dist/src/components/enhanced/enhanced-media-player.d.ts.map +0 -1
  83. package/dist/src/components/enhanced/enhanced-media-player.js +0 -316
  84. package/dist/src/components/enhanced/error-handling.d.ts.map +0 -1
  85. package/dist/src/components/enhanced/error-handling.js +0 -153
  86. package/dist/src/components/enhanced/index.d.ts.map +0 -1
  87. package/dist/src/components/enhanced/index.js +0 -10
  88. package/dist/src/components/enhanced/media-player-enhanced.d.ts.map +0 -1
  89. package/dist/src/components/enhanced/media-player-enhanced.js +0 -250
  90. package/dist/src/components/examples/basic-video-player.d.ts.map +0 -1
  91. package/dist/src/components/examples/basic-video-player.js +0 -16
  92. package/dist/src/components/examples/custom-controls-example.d.ts.map +0 -1
  93. package/dist/src/components/examples/custom-controls-example.js +0 -12
  94. package/dist/src/components/examples/enhanced-controls-example.d.ts.map +0 -1
  95. package/dist/src/components/examples/enhanced-controls-example.js +0 -18
  96. package/dist/src/components/examples/enhanced-media-player-example.d.ts.map +0 -1
  97. package/dist/src/components/examples/enhanced-media-player-example.js +0 -13
  98. package/dist/src/components/examples/loading-states-demo.d.ts.map +0 -1
  99. package/dist/src/components/examples/loading-states-demo.js +0 -41
  100. package/dist/src/components/examples/react-19-demo.d.ts.map +0 -1
  101. package/dist/src/components/examples/react-19-demo.js +0 -104
  102. package/dist/src/components/examples/volume-orientation-demo.d.ts.map +0 -1
  103. package/dist/src/components/examples/volume-orientation-demo.js +0 -31
  104. package/dist/src/components/icon-demo.d.ts.map +0 -1
  105. package/dist/src/components/icon-demo.js +0 -16
  106. package/dist/src/components/icons/index.d.ts.map +0 -1
  107. package/dist/src/components/icons/index.js +0 -59
  108. package/dist/src/components/icons/svg-icons/ArrowLeftIcon.d.ts.map +0 -1
  109. package/dist/src/components/icons/svg-icons/ArrowLeftIcon.js +0 -3
  110. package/dist/src/components/icons/svg-icons/ArrowRightIcon.d.ts.map +0 -1
  111. package/dist/src/components/icons/svg-icons/ArrowRightIcon.js +0 -3
  112. package/dist/src/components/icons/svg-icons/AudioIcon.d.ts.map +0 -1
  113. package/dist/src/components/icons/svg-icons/AudioIcon.js +0 -4
  114. package/dist/src/components/icons/svg-icons/BackwardIcon.d.ts.map +0 -1
  115. package/dist/src/components/icons/svg-icons/BackwardIcon.js +0 -3
  116. package/dist/src/components/icons/svg-icons/CameraIcon.d.ts.map +0 -1
  117. package/dist/src/components/icons/svg-icons/CameraIcon.js +0 -4
  118. package/dist/src/components/icons/svg-icons/CheckIcon.d.ts.map +0 -1
  119. package/dist/src/components/icons/svg-icons/CheckIcon.js +0 -4
  120. package/dist/src/components/icons/svg-icons/EnablePiPIcon.d.ts.map +0 -1
  121. package/dist/src/components/icons/svg-icons/EnablePiPIcon.js +0 -5
  122. package/dist/src/components/icons/svg-icons/ForwardIcon.d.ts.map +0 -1
  123. package/dist/src/components/icons/svg-icons/ForwardIcon.js +0 -3
  124. package/dist/src/components/icons/svg-icons/FullscreenEnterIcon.d.ts.map +0 -1
  125. package/dist/src/components/icons/svg-icons/FullscreenEnterIcon.js +0 -3
  126. package/dist/src/components/icons/svg-icons/FullscreenExitIcon.d.ts.map +0 -1
  127. package/dist/src/components/icons/svg-icons/FullscreenExitIcon.js +0 -3
  128. package/dist/src/components/icons/svg-icons/LoadingIcon.d.ts.map +0 -1
  129. package/dist/src/components/icons/svg-icons/LoadingIcon.js +0 -3
  130. package/dist/src/components/icons/svg-icons/PauseIcon.d.ts.map +0 -1
  131. package/dist/src/components/icons/svg-icons/PauseIcon.js +0 -3
  132. package/dist/src/components/icons/svg-icons/PlayIcon.d.ts.map +0 -1
  133. package/dist/src/components/icons/svg-icons/PlayIcon.js +0 -3
  134. package/dist/src/components/icons/svg-icons/PlaybackSpeedIcon.d.ts.map +0 -1
  135. package/dist/src/components/icons/svg-icons/PlaybackSpeedIcon.js +0 -3
  136. package/dist/src/components/icons/svg-icons/QualityIcon.d.ts.map +0 -1
  137. package/dist/src/components/icons/svg-icons/QualityIcon.js +0 -3
  138. package/dist/src/components/icons/svg-icons/SettingsIcon.d.ts.map +0 -1
  139. package/dist/src/components/icons/svg-icons/SettingsIcon.js +0 -3
  140. package/dist/src/components/icons/svg-icons/SliderIcon.d.ts.map +0 -1
  141. package/dist/src/components/icons/svg-icons/SliderIcon.js +0 -3
  142. package/dist/src/components/icons/svg-icons/SubtitleIcon.d.ts.map +0 -1
  143. package/dist/src/components/icons/svg-icons/SubtitleIcon.js +0 -3
  144. package/dist/src/components/icons/svg-icons/SubtitleOffIcon.d.ts.map +0 -1
  145. package/dist/src/components/icons/svg-icons/SubtitleOffIcon.js +0 -3
  146. package/dist/src/components/icons/svg-icons/UnPiPIcon.d.ts.map +0 -1
  147. package/dist/src/components/icons/svg-icons/UnPiPIcon.js +0 -5
  148. package/dist/src/components/icons/svg-icons/VolumeMutedIcon.d.ts.map +0 -1
  149. package/dist/src/components/icons/svg-icons/VolumeMutedIcon.js +0 -3
  150. package/dist/src/components/icons/svg-icons/VolumeOneIcon.d.ts.map +0 -1
  151. package/dist/src/components/icons/svg-icons/VolumeOneIcon.js +0 -3
  152. package/dist/src/components/icons/svg-icons/VolumeThreeIcon.d.ts.map +0 -1
  153. package/dist/src/components/icons/svg-icons/VolumeThreeIcon.js +0 -3
  154. package/dist/src/components/icons/svg-icons/VolumeTwoIcon.d.ts.map +0 -1
  155. package/dist/src/components/icons/svg-icons/VolumeTwoIcon.js +0 -3
  156. package/dist/src/components/legacy.d.ts.map +0 -1
  157. package/dist/src/components/legacy.js +0 -52
  158. package/dist/src/components/media-metadata-display.d.ts.map +0 -1
  159. package/dist/src/components/media-metadata-display.js +0 -20
  160. package/dist/src/components/media-player-audio.d.ts.map +0 -1
  161. package/dist/src/components/media-player-audio.js +0 -18
  162. package/dist/src/components/media-player-controls.d.ts.map +0 -1
  163. package/dist/src/components/media-player-controls.js +0 -150
  164. package/dist/src/components/media-player-error.d.ts.map +0 -1
  165. package/dist/src/components/media-player-error.js +0 -85
  166. package/dist/src/components/media-player-fullscreen.d.ts.map +0 -1
  167. package/dist/src/components/media-player-fullscreen.js +0 -68
  168. package/dist/src/components/media-player-hls.d.ts.map +0 -1
  169. package/dist/src/components/media-player-hls.js +0 -20
  170. package/dist/src/components/media-player-loading.d.ts.map +0 -1
  171. package/dist/src/components/media-player-loading.js +0 -53
  172. package/dist/src/components/media-player-play.d.ts.map +0 -1
  173. package/dist/src/components/media-player-play.js +0 -44
  174. package/dist/src/components/media-player-root.d.ts.map +0 -1
  175. package/dist/src/components/media-player-root.js +0 -243
  176. package/dist/src/components/media-player-seek.d.ts.map +0 -1
  177. package/dist/src/components/media-player-seek.js +0 -92
  178. package/dist/src/components/media-player-time.d.ts.map +0 -1
  179. package/dist/src/components/media-player-time.js +0 -57
  180. package/dist/src/components/media-player-tooltip.d.ts.map +0 -1
  181. package/dist/src/components/media-player-tooltip.js +0 -14
  182. package/dist/src/components/media-player-video.d.ts.map +0 -1
  183. package/dist/src/components/media-player-video.js +0 -18
  184. package/dist/src/components/media-player-volume.d.ts.map +0 -1
  185. package/dist/src/components/media-player-volume.js +0 -88
  186. package/dist/src/components/media-player.d.ts.map +0 -1
  187. package/dist/src/components/media-player.js +0 -67
  188. package/dist/src/components/media-suspense.d.ts.map +0 -1
  189. package/dist/src/components/media-suspense.js +0 -173
  190. package/dist/src/components/player-settings-form.d.ts.map +0 -1
  191. package/dist/src/components/player-settings-form.js +0 -46
  192. package/dist/src/components/react-player-wrapper.d.ts.map +0 -1
  193. package/dist/src/components/react-player-wrapper.js +0 -163
  194. package/dist/src/components/simple-video-player.d.ts.map +0 -1
  195. package/dist/src/components/simple-video-player.js +0 -41
  196. package/dist/src/components/ui/enhanced-seek-bar.d.ts.map +0 -1
  197. package/dist/src/components/ui/enhanced-seek-bar.js +0 -112
  198. package/dist/src/components/ui/fullscreen-button.d.ts.map +0 -1
  199. package/dist/src/components/ui/fullscreen-button.js +0 -21
  200. package/dist/src/components/ui/media-resource-preloader.d.ts.map +0 -1
  201. package/dist/src/components/ui/media-resource-preloader.js +0 -295
  202. package/dist/src/components/ui/play-button.d.ts.map +0 -1
  203. package/dist/src/components/ui/play-button.js +0 -26
  204. package/dist/src/components/ui/seek-bar.d.ts.map +0 -1
  205. package/dist/src/components/ui/seek-bar.js +0 -54
  206. package/dist/src/components/ui/time-display.d.ts.map +0 -1
  207. package/dist/src/components/ui/time-display.js +0 -18
  208. package/dist/src/components/ui/volume-control.d.ts.map +0 -1
  209. package/dist/src/components/ui/volume-control.js +0 -71
  210. package/dist/src/components/unified/base-media-player.d.ts.map +0 -1
  211. package/dist/src/components/unified/base-media-player.js +0 -104
  212. package/dist/src/components/unified/media-player.d.ts.map +0 -1
  213. package/dist/src/components/unified/media-player.js +0 -41
  214. package/dist/src/components/variants/minimal/AccessibleMinimalPlayer.d.ts.map +0 -1
  215. package/dist/src/components/variants/minimal/AccessibleMinimalPlayer.js +0 -322
  216. package/dist/src/components/variants/minimal/EnhancedMinimalMediaPlayer.d.ts.map +0 -1
  217. package/dist/src/components/variants/minimal/EnhancedMinimalMediaPlayer.js +0 -280
  218. package/dist/src/components/variants/minimal/MinimalControls.d.ts.map +0 -1
  219. package/dist/src/components/variants/minimal/MinimalControls.js +0 -19
  220. package/dist/src/components/variants/minimal/MinimalLoading.d.ts.map +0 -1
  221. package/dist/src/components/variants/minimal/MinimalLoading.js +0 -6
  222. package/dist/src/components/variants/minimal/MinimalMediaPlayer.d.ts.map +0 -1
  223. package/dist/src/components/variants/minimal/MinimalMediaPlayer.js +0 -135
  224. package/dist/src/components/variants/minimal/MinimalOverlay.d.ts.map +0 -1
  225. package/dist/src/components/variants/minimal/MinimalOverlay.js +0 -15
  226. package/dist/src/components/variants/minimal/MinimalPlayButton.d.ts.map +0 -1
  227. package/dist/src/components/variants/minimal/MinimalPlayButton.js +0 -29
  228. package/dist/src/components/variants/minimal/MinimalSeekBar.d.ts.map +0 -1
  229. package/dist/src/components/variants/minimal/MinimalSeekBar.js +0 -73
  230. package/dist/src/components/variants/minimal/MinimalVolumeControl.d.ts.map +0 -1
  231. package/dist/src/components/variants/minimal/MinimalVolumeControl.js +0 -29
  232. package/dist/src/components/variants/minimal/SimpleMinimalPlayer.d.ts.map +0 -1
  233. package/dist/src/components/variants/minimal/SimpleMinimalPlayer.js +0 -51
  234. package/dist/src/components/variants/minimal/components/CenterPlayButton.d.ts.map +0 -1
  235. package/dist/src/components/variants/minimal/components/CenterPlayButton.js +0 -8
  236. package/dist/src/components/variants/minimal/components/ControlBar.d.ts.map +0 -1
  237. package/dist/src/components/variants/minimal/components/ControlBar.js +0 -10
  238. package/dist/src/components/variants/minimal/components/EnhancedSettingsMenu.d.ts.map +0 -1
  239. package/dist/src/components/variants/minimal/components/EnhancedSettingsMenu.js +0 -68
  240. package/dist/src/components/variants/minimal/components/PlaybackControls.d.ts.map +0 -1
  241. package/dist/src/components/variants/minimal/components/PlaybackControls.js +0 -9
  242. package/dist/src/components/variants/minimal/components/RightControls.d.ts.map +0 -1
  243. package/dist/src/components/variants/minimal/components/RightControls.js +0 -40
  244. package/dist/src/components/variants/minimal/components/SeekBar.d.ts.map +0 -1
  245. package/dist/src/components/variants/minimal/components/SeekBar.js +0 -43
  246. package/dist/src/components/variants/minimal/components/SettingsDropdown.d.ts.map +0 -1
  247. package/dist/src/components/variants/minimal/components/SettingsDropdown.js +0 -18
  248. package/dist/src/components/variants/minimal/components/SubtitleDisplay.d.ts.map +0 -1
  249. package/dist/src/components/variants/minimal/components/SubtitleDisplay.js +0 -6
  250. package/dist/src/components/variants/minimal/components/TimeDisplay.d.ts.map +0 -1
  251. package/dist/src/components/variants/minimal/components/TimeDisplay.js +0 -5
  252. package/dist/src/components/variants/minimal/components/VideoElement.d.ts.map +0 -1
  253. package/dist/src/components/variants/minimal/components/VideoElement.js +0 -4
  254. package/dist/src/components/variants/minimal/components/VolumeControl.d.ts.map +0 -1
  255. package/dist/src/components/variants/minimal/components/VolumeControl.js +0 -99
  256. package/dist/src/components/variants/minimal/index.d.ts.map +0 -1
  257. package/dist/src/components/variants/minimal/index.js +0 -8
  258. package/dist/src/components/video-player.d.ts.map +0 -1
  259. package/dist/src/components/video-player.js +0 -38
  260. package/dist/src/context/error-handling.d.ts.map +0 -1
  261. package/dist/src/context/error-handling.js +0 -300
  262. package/dist/src/context/media-context.d.ts.map +0 -1
  263. package/dist/src/context/media-context.js +0 -121
  264. package/dist/src/context/media-provider.d.ts.map +0 -1
  265. package/dist/src/context/media-provider.js +0 -164
  266. package/dist/src/context/media-store.d.ts.map +0 -1
  267. package/dist/src/context/media-store.js +0 -273
  268. package/dist/src/context/persistence.d.ts.map +0 -1
  269. package/dist/src/context/persistence.js +0 -356
  270. package/dist/src/core/events/event-system.d.ts.map +0 -1
  271. package/dist/src/core/events/event-system.js +0 -288
  272. package/dist/src/core/events/hooks.d.ts.map +0 -1
  273. package/dist/src/core/events/hooks.js +0 -198
  274. package/dist/src/core/events/index.d.ts.map +0 -1
  275. package/dist/src/core/events/index.js +0 -7
  276. package/dist/src/core/events/middleware.d.ts.map +0 -1
  277. package/dist/src/core/events/middleware.js +0 -219
  278. package/dist/src/core/index.d.ts.map +0 -1
  279. package/dist/src/core/index.js +0 -15
  280. package/dist/src/core/optimization/bundle-optimizer.d.ts.map +0 -1
  281. package/dist/src/core/optimization/bundle-optimizer.js +0 -217
  282. package/dist/src/core/performance/cicd.d.ts.map +0 -1
  283. package/dist/src/core/performance/cicd.js +0 -83
  284. package/dist/src/core/performance/index.d.ts.map +0 -1
  285. package/dist/src/core/performance/index.js +0 -14
  286. package/dist/src/core/performance/media-loading-optimizer.d.ts.map +0 -1
  287. package/dist/src/core/performance/media-loading-optimizer.js +0 -404
  288. package/dist/src/core/performance/performance-budgets.d.ts.map +0 -1
  289. package/dist/src/core/performance/performance-budgets.js +0 -326
  290. package/dist/src/core/performance/performance-monitor.d.ts.map +0 -1
  291. package/dist/src/core/performance/performance-monitor.js +0 -297
  292. package/dist/src/core/performance/performance-testing.d.ts.map +0 -1
  293. package/dist/src/core/performance/performance-testing.js +0 -314
  294. package/dist/src/core/plugins/base-plugin.d.ts.map +0 -1
  295. package/dist/src/core/plugins/base-plugin.js +0 -151
  296. package/dist/src/core/plugins/enhanced-plugin-system.d.ts.map +0 -1
  297. package/dist/src/core/plugins/enhanced-plugin-system.js +0 -305
  298. package/dist/src/core/plugins/examples/analytics-plugin.d.ts.map +0 -1
  299. package/dist/src/core/plugins/examples/analytics-plugin.js +0 -191
  300. package/dist/src/core/plugins/index.d.ts.map +0 -1
  301. package/dist/src/core/plugins/index.js +0 -9
  302. package/dist/src/core/plugins/registry.d.ts.map +0 -1
  303. package/dist/src/core/plugins/registry.js +0 -261
  304. package/dist/src/core/plugins/types.d.ts.map +0 -1
  305. package/dist/src/core/plugins/types.js +0 -31
  306. package/dist/src/core/plugins/utils.d.ts.map +0 -1
  307. package/dist/src/core/plugins/utils.js +0 -274
  308. package/dist/src/core/progressive-loading.d.ts.map +0 -1
  309. package/dist/src/core/progressive-loading.js +0 -239
  310. package/dist/src/core/providers/enhanced-hls-provider.d.ts.map +0 -1
  311. package/dist/src/core/providers/enhanced-hls-provider.js +0 -273
  312. package/dist/src/core/providers/service-provider.d.ts.map +0 -1
  313. package/dist/src/core/providers/service-provider.js +0 -105
  314. package/dist/src/core/utils.d.ts.map +0 -1
  315. package/dist/src/core/utils.js +0 -21
  316. package/dist/src/features/media-session/media-session-manager.d.ts.map +0 -1
  317. package/dist/src/features/media-session/media-session-manager.js +0 -331
  318. package/dist/src/features/picture-in-picture/pip-manager.d.ts.map +0 -1
  319. package/dist/src/features/picture-in-picture/pip-manager.js +0 -353
  320. package/dist/src/features/playlist/playlist-manager.d.ts.map +0 -1
  321. package/dist/src/features/playlist/playlist-manager.js +0 -475
  322. package/dist/src/features/subtitles/subtitle-manager.d.ts.map +0 -1
  323. package/dist/src/features/subtitles/subtitle-manager.js +0 -335
  324. package/dist/src/features/subtitles/subtitle-parser.d.ts.map +0 -1
  325. package/dist/src/features/subtitles/subtitle-parser.js +0 -217
  326. package/dist/src/features/thumbnails/thumbnail-generator.d.ts.map +0 -1
  327. package/dist/src/features/thumbnails/thumbnail-generator.js +0 -388
  328. package/dist/src/hooks/accessibility/index.d.ts.map +0 -1
  329. package/dist/src/hooks/accessibility/index.js +0 -4
  330. package/dist/src/hooks/accessibility/use-accessibility-preferences.d.ts.map +0 -1
  331. package/dist/src/hooks/accessibility/use-accessibility-preferences.js +0 -156
  332. package/dist/src/hooks/accessibility/use-focus-management.d.ts.map +0 -1
  333. package/dist/src/hooks/accessibility/use-focus-management.js +0 -142
  334. package/dist/src/hooks/accessibility/use-keyboard-shortcuts.d.ts.map +0 -1
  335. package/dist/src/hooks/accessibility/use-keyboard-shortcuts.js +0 -101
  336. package/dist/src/hooks/accessibility/use-screen-reader.d.ts.map +0 -1
  337. package/dist/src/hooks/accessibility/use-screen-reader.js +0 -148
  338. package/dist/src/hooks/core/index.d.ts.map +0 -1
  339. package/dist/src/hooks/core/index.js +0 -19
  340. package/dist/src/hooks/legacy.d.ts.map +0 -1
  341. package/dist/src/hooks/legacy.js +0 -17
  342. package/dist/src/hooks/use-enhanced-media-player.d.ts.map +0 -1
  343. package/dist/src/hooks/use-enhanced-media-player.js +0 -395
  344. package/dist/src/hooks/use-intelligent-preloading.d.ts.map +0 -1
  345. package/dist/src/hooks/use-intelligent-preloading.js +0 -258
  346. package/dist/src/hooks/use-keyboard-controls.d.ts.map +0 -1
  347. package/dist/src/hooks/use-keyboard-controls.js +0 -83
  348. package/dist/src/hooks/use-media-actions.d.ts.map +0 -1
  349. package/dist/src/hooks/use-media-actions.js +0 -121
  350. package/dist/src/hooks/use-media-metadata.d.ts.map +0 -1
  351. package/dist/src/hooks/use-media-metadata.js +0 -74
  352. package/dist/src/hooks/use-media-optimistic.d.ts.map +0 -1
  353. package/dist/src/hooks/use-media-optimistic.js +0 -205
  354. package/dist/src/hooks/use-media-player.d.ts.map +0 -1
  355. package/dist/src/hooks/use-media-player.js +0 -251
  356. package/dist/src/hooks/use-media-state.d.ts.map +0 -1
  357. package/dist/src/hooks/use-media-state.js +0 -162
  358. package/dist/src/hooks/use-memory-optimization.d.ts.map +0 -1
  359. package/dist/src/hooks/use-memory-optimization.js +0 -288
  360. package/dist/src/hooks/use-optimistic-controls.d.ts.map +0 -1
  361. package/dist/src/hooks/use-optimistic-controls.js +0 -60
  362. package/dist/src/hooks/use-optimized-media.d.ts.map +0 -1
  363. package/dist/src/hooks/use-optimized-media.js +0 -211
  364. package/dist/src/hooks/use-touch-gestures.d.ts.map +0 -1
  365. package/dist/src/hooks/use-touch-gestures.js +0 -289
  366. package/dist/src/hooks/useEnhancedSubtitles.d.ts.map +0 -1
  367. package/dist/src/hooks/useEnhancedSubtitles.js +0 -205
  368. package/dist/src/hooks/useKeyboardShortcuts.d.ts.map +0 -1
  369. package/dist/src/hooks/useKeyboardShortcuts.js +0 -59
  370. package/dist/src/hooks/useMediaControls.d.ts.map +0 -1
  371. package/dist/src/hooks/useMediaControls.js +0 -44
  372. package/dist/src/hooks/useScreenshot.d.ts.map +0 -1
  373. package/dist/src/hooks/useScreenshot.js +0 -56
  374. package/dist/src/hooks/useSubtitles.d.ts.map +0 -1
  375. package/dist/src/hooks/useSubtitles.js +0 -73
  376. package/dist/src/hooks/useVideoPlayer.d.ts.map +0 -1
  377. package/dist/src/hooks/useVideoPlayer.js +0 -184
  378. package/dist/src/icons/components/FullscreenIcon.d.ts.map +0 -1
  379. package/dist/src/icons/components/FullscreenIcon.js +0 -11
  380. package/dist/src/icons/components/SettingsIcon.d.ts.map +0 -1
  381. package/dist/src/icons/components/SettingsIcon.js +0 -11
  382. package/dist/src/icons/components/animated/LoadingIcon.d.ts.map +0 -1
  383. package/dist/src/icons/components/animated/LoadingIcon.js +0 -11
  384. package/dist/src/icons/components/animated/PlayPauseIcon.d.ts.map +0 -1
  385. package/dist/src/icons/components/animated/PlayPauseIcon.js +0 -9
  386. package/dist/src/icons/components/media/PauseIcon.d.ts.map +0 -1
  387. package/dist/src/icons/components/media/PauseIcon.js +0 -12
  388. package/dist/src/icons/components/media/PlayIcon.d.ts.map +0 -1
  389. package/dist/src/icons/components/media/PlayIcon.js +0 -12
  390. package/dist/src/icons/components/volume/VolumeIcon.d.ts.map +0 -1
  391. package/dist/src/icons/components/volume/VolumeIcon.js +0 -11
  392. package/dist/src/icons/components/volume/VolumeOffIcon.d.ts.map +0 -1
  393. package/dist/src/icons/components/volume/VolumeOffIcon.js +0 -11
  394. package/dist/src/icons/index.d.ts.map +0 -1
  395. package/dist/src/icons/index.js +0 -45
  396. package/dist/src/icons/provider.d.ts.map +0 -1
  397. package/dist/src/icons/provider.js +0 -37
  398. package/dist/src/icons/types.d.ts.map +0 -1
  399. package/dist/src/icons/types.js +0 -1
  400. package/dist/src/index-enhanced.d.ts.map +0 -1
  401. package/dist/src/index-enhanced.js +0 -16
  402. package/dist/src/index-legacy.d.ts.map +0 -1
  403. package/dist/src/index-legacy.js +0 -97
  404. package/dist/src/index.d.ts.map +0 -1
  405. package/dist/src/index.js +0 -90
  406. package/dist/src/index.minimal.d.ts.map +0 -1
  407. package/dist/src/index.minimal.js +0 -3
  408. package/dist/src/lib/deprecation.d.ts.map +0 -1
  409. package/dist/src/lib/deprecation.js +0 -31
  410. package/dist/src/lib/format-time.d.ts.map +0 -1
  411. package/dist/src/lib/format-time.js +0 -32
  412. package/dist/src/lib/index.d.ts.map +0 -1
  413. package/dist/src/lib/index.js +0 -3
  414. package/dist/src/lib/utils.d.ts.map +0 -1
  415. package/dist/src/lib/utils.js +0 -5
  416. package/dist/src/test/setup.d.ts.map +0 -1
  417. package/dist/src/test/setup.js +0 -65
  418. package/dist/src/types/events.d.ts.map +0 -1
  419. package/dist/src/types/events.js +0 -2
  420. package/dist/src/types/formats.d.ts.map +0 -1
  421. package/dist/src/types/formats.js +0 -63
  422. package/dist/src/types/index.d.ts.map +0 -1
  423. package/dist/src/types/index.js +0 -4
  424. package/dist/utils-Db13763z.cjs +0 -9
  425. package/dist/utils-Db13763z.cjs.map +0 -1
  426. package/dist/utils-nTO4AnHo.js +0 -2809
  427. package/dist/utils-nTO4AnHo.js.map +0 -1
  428. package/dist/utils.js +0 -2
  429. package/dist/utils.js.map +0 -1
  430. package/dist/utils.mjs +0 -7
  431. package/dist/utils.mjs.map +0 -1
  432. package/src/adapters/videojs-adapter.js +0 -350
  433. package/src/components/AnimateLoading.js +0 -41
  434. package/src/components/LoadingState.js +0 -111
  435. package/src/components/accessibility/keyboard-help-overlay.js +0 -90
  436. package/src/components/audio-player.js +0 -31
  437. package/src/components/basic/index.js +0 -29
  438. package/src/components/enhanced/advanced-features.js +0 -64
  439. package/src/components/enhanced/debug-panel.js +0 -94
  440. package/src/components/enhanced/enhanced-controls.js +0 -233
  441. package/src/components/enhanced/enhanced-media-player.js +0 -316
  442. package/src/components/enhanced/error-handling.js +0 -153
  443. package/src/components/enhanced/index.js +0 -10
  444. package/src/components/enhanced/media-player-enhanced.js +0 -250
  445. package/src/components/examples/basic-video-player.js +0 -16
  446. package/src/components/examples/custom-controls-example.js +0 -12
  447. package/src/components/examples/enhanced-controls-example.js +0 -18
  448. package/src/components/examples/enhanced-media-player-example.js +0 -13
  449. package/src/components/examples/loading-states-demo.js +0 -41
  450. package/src/components/examples/react-19-demo.js +0 -104
  451. package/src/components/examples/volume-orientation-demo.js +0 -31
  452. package/src/components/icon-demo.js +0 -16
  453. package/src/components/icons/index.js +0 -59
  454. package/src/components/icons/svg-icons/ArrowLeftIcon.js +0 -3
  455. package/src/components/icons/svg-icons/ArrowRightIcon.js +0 -3
  456. package/src/components/icons/svg-icons/AudioIcon.js +0 -4
  457. package/src/components/icons/svg-icons/BackwardIcon.js +0 -3
  458. package/src/components/icons/svg-icons/CameraIcon.js +0 -4
  459. package/src/components/icons/svg-icons/CheckIcon.js +0 -4
  460. package/src/components/icons/svg-icons/EnablePiPIcon.js +0 -5
  461. package/src/components/icons/svg-icons/ForwardIcon.js +0 -3
  462. package/src/components/icons/svg-icons/FullscreenEnterIcon.js +0 -3
  463. package/src/components/icons/svg-icons/FullscreenExitIcon.js +0 -3
  464. package/src/components/icons/svg-icons/LoadingIcon.js +0 -3
  465. package/src/components/icons/svg-icons/PauseIcon.js +0 -3
  466. package/src/components/icons/svg-icons/PlayIcon.js +0 -3
  467. package/src/components/icons/svg-icons/PlaybackSpeedIcon.js +0 -3
  468. package/src/components/icons/svg-icons/QualityIcon.js +0 -3
  469. package/src/components/icons/svg-icons/SettingsIcon.js +0 -3
  470. package/src/components/icons/svg-icons/SliderIcon.js +0 -3
  471. package/src/components/icons/svg-icons/SubtitleIcon.js +0 -3
  472. package/src/components/icons/svg-icons/SubtitleOffIcon.js +0 -3
  473. package/src/components/icons/svg-icons/UnPiPIcon.js +0 -5
  474. package/src/components/icons/svg-icons/VolumeMutedIcon.js +0 -3
  475. package/src/components/icons/svg-icons/VolumeOneIcon.js +0 -3
  476. package/src/components/icons/svg-icons/VolumeThreeIcon.js +0 -3
  477. package/src/components/icons/svg-icons/VolumeTwoIcon.js +0 -3
  478. package/src/components/legacy.js +0 -52
  479. package/src/components/media-metadata-display.js +0 -20
  480. package/src/components/media-player-audio.js +0 -18
  481. package/src/components/media-player-controls.js +0 -150
  482. package/src/components/media-player-error.js +0 -85
  483. package/src/components/media-player-fullscreen.js +0 -68
  484. package/src/components/media-player-hls.js +0 -20
  485. package/src/components/media-player-loading.js +0 -53
  486. package/src/components/media-player-play.js +0 -44
  487. package/src/components/media-player-root.js +0 -243
  488. package/src/components/media-player-seek.js +0 -92
  489. package/src/components/media-player-time.js +0 -57
  490. package/src/components/media-player-tooltip.js +0 -14
  491. package/src/components/media-player-video.js +0 -18
  492. package/src/components/media-player-volume.js +0 -88
  493. package/src/components/media-player.js +0 -67
  494. package/src/components/media-suspense.js +0 -173
  495. package/src/components/player-settings-form.js +0 -46
  496. package/src/components/react-player-wrapper.js +0 -163
  497. package/src/components/simple-video-player.js +0 -41
  498. package/src/components/ui/enhanced-seek-bar.js +0 -112
  499. package/src/components/ui/fullscreen-button.js +0 -21
  500. package/src/components/ui/media-resource-preloader.js +0 -295
  501. package/src/components/ui/play-button.js +0 -26
  502. package/src/components/ui/seek-bar.js +0 -54
  503. package/src/components/ui/time-display.js +0 -18
  504. package/src/components/ui/volume-control.js +0 -71
  505. package/src/components/unified/base-media-player.js +0 -104
  506. package/src/components/unified/media-player.js +0 -41
  507. package/src/components/variants/minimal/AccessibleMinimalPlayer.js +0 -322
  508. package/src/components/variants/minimal/EnhancedMinimalMediaPlayer.js +0 -280
  509. package/src/components/variants/minimal/MinimalControls.js +0 -19
  510. package/src/components/variants/minimal/MinimalLoading.js +0 -6
  511. package/src/components/variants/minimal/MinimalMediaPlayer.js +0 -135
  512. package/src/components/variants/minimal/MinimalOverlay.js +0 -15
  513. package/src/components/variants/minimal/MinimalPlayButton.js +0 -29
  514. package/src/components/variants/minimal/MinimalSeekBar.js +0 -73
  515. package/src/components/variants/minimal/MinimalVolumeControl.js +0 -29
  516. package/src/components/variants/minimal/SimpleMinimalPlayer.js +0 -51
  517. package/src/components/variants/minimal/components/CenterPlayButton.js +0 -8
  518. package/src/components/variants/minimal/components/ControlBar.js +0 -10
  519. package/src/components/variants/minimal/components/EnhancedSettingsMenu.js +0 -68
  520. package/src/components/variants/minimal/components/PlaybackControls.js +0 -9
  521. package/src/components/variants/minimal/components/RightControls.js +0 -40
  522. package/src/components/variants/minimal/components/SeekBar.js +0 -43
  523. package/src/components/variants/minimal/components/SettingsDropdown.js +0 -18
  524. package/src/components/variants/minimal/components/SubtitleDisplay.js +0 -6
  525. package/src/components/variants/minimal/components/TimeDisplay.js +0 -5
  526. package/src/components/variants/minimal/components/VideoElement.js +0 -4
  527. package/src/components/variants/minimal/components/VolumeControl.js +0 -99
  528. package/src/components/variants/minimal/index.js +0 -8
  529. package/src/components/video-player.js +0 -38
  530. package/src/context/error-handling.js +0 -300
  531. package/src/context/media-context.js +0 -121
  532. package/src/context/media-provider.js +0 -164
  533. package/src/context/media-store.js +0 -273
  534. package/src/context/persistence.js +0 -356
  535. package/src/core/events/event-system.js +0 -288
  536. package/src/core/events/hooks.js +0 -198
  537. package/src/core/events/index.js +0 -7
  538. package/src/core/events/middleware.js +0 -219
  539. package/src/core/index.js +0 -15
  540. package/src/core/optimization/bundle-optimizer.js +0 -217
  541. package/src/core/performance/cicd.js +0 -83
  542. package/src/core/performance/index.js +0 -14
  543. package/src/core/performance/media-loading-optimizer.js +0 -404
  544. package/src/core/performance/performance-budgets.js +0 -326
  545. package/src/core/performance/performance-monitor.js +0 -297
  546. package/src/core/performance/performance-testing.js +0 -314
  547. package/src/core/plugins/base-plugin.js +0 -151
  548. package/src/core/plugins/enhanced-plugin-system.js +0 -305
  549. package/src/core/plugins/examples/analytics-plugin.js +0 -191
  550. package/src/core/plugins/index.js +0 -9
  551. package/src/core/plugins/registry.js +0 -261
  552. package/src/core/plugins/types.js +0 -31
  553. package/src/core/plugins/utils.js +0 -274
  554. package/src/core/progressive-loading.js +0 -239
  555. package/src/core/providers/enhanced-hls-provider.js +0 -273
  556. package/src/core/providers/service-provider.js +0 -105
  557. package/src/core/utils.js +0 -21
  558. package/src/features/media-session/media-session-manager.js +0 -331
  559. package/src/features/picture-in-picture/pip-manager.js +0 -353
  560. package/src/features/playlist/playlist-manager.js +0 -475
  561. package/src/features/subtitles/subtitle-manager.js +0 -335
  562. package/src/features/subtitles/subtitle-parser.js +0 -217
  563. package/src/features/thumbnails/thumbnail-generator.js +0 -388
  564. package/src/hooks/accessibility/index.js +0 -4
  565. package/src/hooks/accessibility/use-accessibility-preferences.js +0 -156
  566. package/src/hooks/accessibility/use-focus-management.js +0 -142
  567. package/src/hooks/accessibility/use-keyboard-shortcuts.js +0 -101
  568. package/src/hooks/accessibility/use-screen-reader.js +0 -148
  569. package/src/hooks/core/index.js +0 -19
  570. package/src/hooks/legacy.js +0 -17
  571. package/src/hooks/use-enhanced-media-player.js +0 -395
  572. package/src/hooks/use-intelligent-preloading.js +0 -258
  573. package/src/hooks/use-keyboard-controls.js +0 -83
  574. package/src/hooks/use-media-actions.js +0 -121
  575. package/src/hooks/use-media-metadata.js +0 -74
  576. package/src/hooks/use-media-optimistic.js +0 -205
  577. package/src/hooks/use-media-player.js +0 -251
  578. package/src/hooks/use-media-state.js +0 -162
  579. package/src/hooks/use-memory-optimization.js +0 -288
  580. package/src/hooks/use-optimistic-controls.js +0 -60
  581. package/src/hooks/use-optimized-media.js +0 -211
  582. package/src/hooks/use-touch-gestures.js +0 -289
  583. package/src/hooks/useEnhancedSubtitles.js +0 -205
  584. package/src/hooks/useKeyboardShortcuts.js +0 -59
  585. package/src/hooks/useMediaControls.js +0 -44
  586. package/src/hooks/useScreenshot.js +0 -56
  587. package/src/hooks/useSubtitles.js +0 -73
  588. package/src/hooks/useVideoPlayer.js +0 -184
  589. package/src/icons/components/FullscreenIcon.js +0 -11
  590. package/src/icons/components/SettingsIcon.js +0 -11
  591. package/src/icons/components/animated/LoadingIcon.js +0 -11
  592. package/src/icons/components/animated/PlayPauseIcon.js +0 -9
  593. package/src/icons/components/media/PauseIcon.js +0 -12
  594. package/src/icons/components/media/PlayIcon.js +0 -12
  595. package/src/icons/components/volume/VolumeIcon.js +0 -11
  596. package/src/icons/components/volume/VolumeOffIcon.js +0 -11
  597. package/src/icons/index.js +0 -45
  598. package/src/icons/provider.js +0 -37
  599. package/src/icons/types.js +0 -1
  600. package/src/index-enhanced.js +0 -16
  601. package/src/index-legacy.js +0 -97
  602. package/src/index.js +0 -90
  603. package/src/index.minimal.js +0 -3
  604. package/src/lib/deprecation.js +0 -31
  605. package/src/lib/format-time.js +0 -32
  606. package/src/lib/index.js +0 -3
  607. package/src/lib/utils.js +0 -5
  608. package/src/test/setup.js +0 -65
  609. package/src/types/events.js +0 -2
  610. package/src/types/formats.js +0 -63
  611. package/src/types/index.js +0 -4
@@ -1,388 +0,0 @@
1
- export class ThumbnailGenerator {
2
- config;
3
- cache = new Map();
4
- videoElement = null;
5
- canvas;
6
- context;
7
- constructor(config) {
8
- this.config = {
9
- defaultWidth: 160,
10
- defaultHeight: 90,
11
- defaultQuality: 0.8,
12
- defaultFormat: 'jpeg',
13
- maxCacheSize: 50,
14
- enableCaching: true,
15
- ...config
16
- };
17
- this.canvas = document.createElement('canvas');
18
- const ctx = this.canvas.getContext('2d');
19
- if (!ctx) {
20
- throw new Error('Canvas 2D context not supported');
21
- }
22
- this.context = ctx;
23
- }
24
- /**
25
- * Set the video element to generate thumbnails from
26
- */
27
- setVideoElement(video) {
28
- this.videoElement = video;
29
- }
30
- /**
31
- * Generate thumbnail at specific time
32
- */
33
- async generateThumbnail(time, options = {}) {
34
- if (!this.videoElement) {
35
- throw new Error('Video element not set');
36
- }
37
- const cacheKey = this.getCacheKey(time, options);
38
- // Check cache first
39
- if (this.config.enableCaching && this.cache.has(cacheKey)) {
40
- const cached = this.cache.get(cacheKey);
41
- return { ...cached };
42
- }
43
- const width = options.width || this.config.defaultWidth;
44
- const height = options.height || this.config.defaultHeight;
45
- const quality = options.quality || this.config.defaultQuality;
46
- const format = options.format || this.config.defaultFormat;
47
- // Setup canvas
48
- this.canvas.width = width;
49
- this.canvas.height = height;
50
- // Set video time and wait for seek
51
- const originalTime = this.videoElement.currentTime;
52
- await this.seekToTime(time);
53
- // Draw video frame to canvas
54
- this.context.clearRect(0, 0, width, height);
55
- // Calculate aspect ratio preserving dimensions
56
- const videoAspect = this.videoElement.videoWidth / this.videoElement.videoHeight;
57
- const canvasAspect = width / height;
58
- let drawWidth = width;
59
- let drawHeight = height;
60
- let offsetX = 0;
61
- let offsetY = 0;
62
- if (videoAspect > canvasAspect) {
63
- // Video is wider, fit to height
64
- drawHeight = height;
65
- drawWidth = height * videoAspect;
66
- offsetX = (width - drawWidth) / 2;
67
- }
68
- else {
69
- // Video is taller, fit to width
70
- drawWidth = width;
71
- drawHeight = width / videoAspect;
72
- offsetY = (height - drawHeight) / 2;
73
- }
74
- this.context.drawImage(this.videoElement, offsetX, offsetY, drawWidth, drawHeight);
75
- // Convert to blob
76
- const blob = await this.canvasToBlob(format, quality);
77
- const dataUrl = this.canvas.toDataURL(`image/${format}`, quality);
78
- const objectUrl = URL.createObjectURL(blob);
79
- const thumbnail = {
80
- blob,
81
- dataUrl,
82
- objectUrl,
83
- width,
84
- height,
85
- timestamp: time
86
- };
87
- // Cache thumbnail
88
- if (this.config.enableCaching) {
89
- this.addToCache(cacheKey, thumbnail);
90
- }
91
- // Restore original time
92
- if (originalTime !== time) {
93
- await this.seekToTime(originalTime);
94
- }
95
- return thumbnail;
96
- }
97
- /**
98
- * Generate multiple thumbnails for scrub bar
99
- */
100
- async generateScrubThumbnails(count, options = {}) {
101
- if (!this.videoElement) {
102
- throw new Error('Video element not set');
103
- }
104
- const duration = this.videoElement.duration;
105
- if (!duration || duration === 0) {
106
- throw new Error('Video duration not available');
107
- }
108
- const thumbnails = [];
109
- const interval = duration / count;
110
- for (let i = 0; i < count; i++) {
111
- const time = i * interval;
112
- try {
113
- const thumbnail = await this.generateThumbnail(time, options);
114
- thumbnails.push(thumbnail);
115
- }
116
- catch (error) {
117
- console.warn(`Failed to generate thumbnail at ${time}s:`, error);
118
- }
119
- }
120
- return thumbnails;
121
- }
122
- /**
123
- * Generate thumbnail sprite sheet
124
- */
125
- async generateSprite(count, options = {}) {
126
- if (!this.videoElement) {
127
- throw new Error('Video element not set');
128
- }
129
- const duration = this.videoElement.duration;
130
- if (!duration || duration === 0) {
131
- throw new Error('Video duration not available');
132
- }
133
- const thumbnailWidth = options.width || this.config.defaultWidth;
134
- const thumbnailHeight = options.height || this.config.defaultHeight;
135
- const quality = options.quality || this.config.defaultQuality;
136
- const format = options.format || this.config.defaultFormat;
137
- // Calculate sprite dimensions
138
- const columns = options.columns || Math.ceil(Math.sqrt(count));
139
- const rows = Math.ceil(count / columns);
140
- const spriteWidth = columns * thumbnailWidth;
141
- const spriteHeight = rows * thumbnailHeight;
142
- // Create sprite canvas
143
- const spriteCanvas = document.createElement('canvas');
144
- spriteCanvas.width = spriteWidth;
145
- spriteCanvas.height = spriteHeight;
146
- const spriteContext = spriteCanvas.getContext('2d');
147
- if (!spriteContext) {
148
- throw new Error('Canvas 2D context not supported');
149
- }
150
- const thumbnails = [];
151
- const interval = duration / count;
152
- // Generate each thumbnail
153
- for (let i = 0; i < count; i++) {
154
- const time = i * interval;
155
- const col = i % columns;
156
- const row = Math.floor(i / columns);
157
- const x = col * thumbnailWidth;
158
- const y = row * thumbnailHeight;
159
- try {
160
- // Generate individual thumbnail
161
- const thumbnail = await this.generateThumbnail(time, {
162
- width: thumbnailWidth,
163
- height: thumbnailHeight,
164
- quality,
165
- format
166
- });
167
- // Draw thumbnail to sprite
168
- const img = new Image();
169
- img.src = thumbnail.dataUrl;
170
- await new Promise((resolve, reject) => {
171
- img.onload = () => {
172
- spriteContext.drawImage(img, x, y, thumbnailWidth, thumbnailHeight);
173
- resolve();
174
- };
175
- img.onerror = reject;
176
- });
177
- thumbnails.push({
178
- x,
179
- y,
180
- width: thumbnailWidth,
181
- height: thumbnailHeight,
182
- time
183
- });
184
- // Clean up individual thumbnail
185
- URL.revokeObjectURL(thumbnail.objectUrl);
186
- }
187
- catch (error) {
188
- console.warn(`Failed to add thumbnail at ${time}s to sprite:`, error);
189
- }
190
- }
191
- // Create final sprite image
192
- const spriteImage = new Image();
193
- spriteImage.src = spriteCanvas.toDataURL(`image/${format}`, quality);
194
- const sprite = {
195
- image: spriteImage,
196
- thumbnails,
197
- spriteWidth,
198
- spriteHeight,
199
- thumbnailWidth,
200
- thumbnailHeight
201
- };
202
- return sprite;
203
- }
204
- /**
205
- * Extract thumbnail from sprite at specific time
206
- */
207
- getThumbnailFromSprite(sprite, time) {
208
- // Find closest thumbnail
209
- const thumbnail = sprite.thumbnails.reduce((closest, current) => {
210
- return Math.abs(current.time - time) < Math.abs(closest.time - time)
211
- ? current
212
- : closest;
213
- });
214
- if (!thumbnail)
215
- return null;
216
- // Create canvas for extracted thumbnail
217
- const canvas = document.createElement('canvas');
218
- canvas.width = thumbnail.width;
219
- canvas.height = thumbnail.height;
220
- const context = canvas.getContext('2d');
221
- if (!context)
222
- return null;
223
- // Draw portion of sprite to canvas
224
- context.drawImage(sprite.image, thumbnail.x, thumbnail.y, thumbnail.width, thumbnail.height, 0, 0, thumbnail.width, thumbnail.height);
225
- return canvas;
226
- }
227
- /**
228
- * Clear cache
229
- */
230
- clearCache() {
231
- // Revoke object URLs to prevent memory leaks
232
- this.cache.forEach(thumbnail => {
233
- URL.revokeObjectURL(thumbnail.objectUrl);
234
- });
235
- this.cache.clear();
236
- }
237
- /**
238
- * Get cache size
239
- */
240
- getCacheSize() {
241
- return this.cache.size;
242
- }
243
- /**
244
- * Get cache info
245
- */
246
- getCacheInfo() {
247
- return Array.from(this.cache.entries()).map(([key, thumbnail]) => ({
248
- key,
249
- timestamp: thumbnail.timestamp,
250
- size: thumbnail.blob.size
251
- }));
252
- }
253
- /**
254
- * Set configuration
255
- */
256
- updateConfig(config) {
257
- this.config = { ...this.config, ...config };
258
- }
259
- /**
260
- * Seek video to specific time
261
- */
262
- async seekToTime(time) {
263
- if (!this.videoElement)
264
- return;
265
- return new Promise((resolve, reject) => {
266
- let timeoutId;
267
- const onSeeked = () => {
268
- this.videoElement.removeEventListener('seeked', onSeeked);
269
- clearTimeout(timeoutId);
270
- resolve();
271
- };
272
- const onError = () => {
273
- this.videoElement.removeEventListener('error', onError);
274
- this.videoElement.removeEventListener('seeked', onSeeked);
275
- clearTimeout(timeoutId);
276
- reject(new Error('Seek failed'));
277
- };
278
- // Set timeout to avoid hanging
279
- timeoutId = window.setTimeout(() => {
280
- this.videoElement.removeEventListener('seeked', onSeeked);
281
- this.videoElement.removeEventListener('error', onError);
282
- reject(new Error('Seek timeout'));
283
- }, 5000);
284
- this.videoElement.addEventListener('seeked', onSeeked);
285
- this.videoElement.addEventListener('error', onError);
286
- this.videoElement.currentTime = Math.max(0, Math.min(time, this.videoElement.duration));
287
- });
288
- }
289
- /**
290
- * Convert canvas to blob
291
- */
292
- canvasToBlob(format, quality) {
293
- return new Promise((resolve, reject) => {
294
- this.canvas.toBlob((blob) => {
295
- if (blob) {
296
- resolve(blob);
297
- }
298
- else {
299
- reject(new Error('Failed to create blob from canvas'));
300
- }
301
- }, `image/${format}`, quality);
302
- });
303
- }
304
- /**
305
- * Generate cache key
306
- */
307
- getCacheKey(time, options) {
308
- const width = options.width || this.config.defaultWidth;
309
- const height = options.height || this.config.defaultHeight;
310
- const quality = options.quality || this.config.defaultQuality;
311
- const format = options.format || this.config.defaultFormat;
312
- return `${time}-${width}x${height}-${quality}-${format}`;
313
- }
314
- /**
315
- * Add thumbnail to cache
316
- */
317
- addToCache(key, thumbnail) {
318
- // Remove oldest items if cache is full
319
- if (this.cache.size >= this.config.maxCacheSize) {
320
- const oldestKey = this.cache.keys().next().value;
321
- const oldThumbnail = this.cache.get(oldestKey);
322
- if (oldThumbnail) {
323
- URL.revokeObjectURL(oldThumbnail.objectUrl);
324
- }
325
- this.cache.delete(oldestKey);
326
- }
327
- this.cache.set(key, thumbnail);
328
- }
329
- /**
330
- * Cleanup resources
331
- */
332
- destroy() {
333
- this.clearCache();
334
- this.videoElement = null;
335
- this.context.clearRect(0, 0, this.canvas.width, this.canvas.height);
336
- }
337
- }
338
- // Utility functions for thumbnail operations
339
- export const thumbnailUtils = {
340
- /**
341
- * Calculate optimal thumbnail dimensions maintaining aspect ratio
342
- */
343
- calculateDimensions(sourceWidth, sourceHeight, targetWidth, targetHeight) {
344
- const sourceAspect = sourceWidth / sourceHeight;
345
- const targetAspect = targetWidth / targetHeight;
346
- let width = targetWidth;
347
- let height = targetHeight;
348
- let offsetX = 0;
349
- let offsetY = 0;
350
- if (sourceAspect > targetAspect) {
351
- height = targetHeight;
352
- width = targetHeight * sourceAspect;
353
- offsetX = (targetWidth - width) / 2;
354
- }
355
- else {
356
- width = targetWidth;
357
- height = targetWidth / sourceAspect;
358
- offsetY = (targetHeight - height) / 2;
359
- }
360
- return { width, height, offsetX, offsetY };
361
- },
362
- /**
363
- * Create thumbnail URL from blob
364
- */
365
- createThumbnailUrl(blob) {
366
- return URL.createObjectURL(blob);
367
- },
368
- /**
369
- * Revoke thumbnail URL
370
- */
371
- revokeThumbnailUrl(url) {
372
- URL.revokeObjectURL(url);
373
- },
374
- /**
375
- * Convert time to thumbnail index
376
- */
377
- timeToIndex(time, duration, count) {
378
- const normalizedTime = Math.max(0, Math.min(time, duration));
379
- const index = Math.floor((normalizedTime / duration) * count);
380
- return Math.min(index, count - 1);
381
- },
382
- /**
383
- * Convert index to time
384
- */
385
- indexToTime(index, duration, count) {
386
- return (index / count) * duration;
387
- }
388
- };
@@ -1,4 +0,0 @@
1
- export { useKeyboardShortcuts, createMediaKeyboardShortcuts } from './use-keyboard-shortcuts';
2
- export { useFocusManagement, useMediaPlayerFocus } from './use-focus-management';
3
- export { useScreenReader, useMediaScreenReader } from './use-screen-reader';
4
- export { useAccessibilityPreferences, useAccessibilityStyles, useFocusVisible } from './use-accessibility-preferences';
@@ -1,156 +0,0 @@
1
- import { useState, useEffect, useCallback } from 'react';
2
- export function useAccessibilityPreferences() {
3
- const [preferences, setPreferences] = useState({
4
- prefersReducedMotion: false,
5
- prefersHighContrast: false,
6
- prefersColorScheme: 'no-preference',
7
- prefersReducedTransparency: false
8
- });
9
- const updatePreferences = useCallback(() => {
10
- if (typeof window === 'undefined')
11
- return;
12
- const prefersReducedMotion = window.matchMedia('(prefers-reduced-motion: reduce)').matches;
13
- const prefersHighContrast = window.matchMedia('(prefers-contrast: high)').matches;
14
- const prefersReducedTransparency = window.matchMedia('(prefers-reduced-transparency: reduce)').matches;
15
- let prefersColorScheme = 'no-preference';
16
- if (window.matchMedia('(prefers-color-scheme: dark)').matches) {
17
- prefersColorScheme = 'dark';
18
- }
19
- else if (window.matchMedia('(prefers-color-scheme: light)').matches) {
20
- prefersColorScheme = 'light';
21
- }
22
- setPreferences({
23
- prefersReducedMotion,
24
- prefersHighContrast,
25
- prefersColorScheme,
26
- prefersReducedTransparency
27
- });
28
- }, []);
29
- useEffect(() => {
30
- if (typeof window === 'undefined')
31
- return;
32
- // Initial check
33
- updatePreferences();
34
- // Set up media query listeners
35
- const mediaQueries = [
36
- window.matchMedia('(prefers-reduced-motion: reduce)'),
37
- window.matchMedia('(prefers-contrast: high)'),
38
- window.matchMedia('(prefers-color-scheme: dark)'),
39
- window.matchMedia('(prefers-color-scheme: light)'),
40
- window.matchMedia('(prefers-reduced-transparency: reduce)')
41
- ];
42
- // Add listeners
43
- mediaQueries.forEach(mq => {
44
- mq.addEventListener('change', updatePreferences);
45
- });
46
- // Cleanup
47
- return () => {
48
- mediaQueries.forEach(mq => {
49
- mq.removeEventListener('change', updatePreferences);
50
- });
51
- };
52
- }, [updatePreferences]);
53
- return preferences;
54
- }
55
- // Hook for applying accessibility styles
56
- export function useAccessibilityStyles() {
57
- const preferences = useAccessibilityPreferences();
58
- // Generate CSS custom properties based on preferences
59
- const cssVariables = useCallback(() => {
60
- const vars = {};
61
- if (preferences.prefersHighContrast) {
62
- vars['--media-contrast'] = 'high';
63
- vars['--media-bg-opacity'] = '1';
64
- vars['--media-border-width'] = '2px';
65
- vars['--media-focus-outline-width'] = '3px';
66
- }
67
- else {
68
- vars['--media-contrast'] = 'normal';
69
- vars['--media-bg-opacity'] = '0.8';
70
- vars['--media-border-width'] = '1px';
71
- vars['--media-focus-outline-width'] = '2px';
72
- }
73
- if (preferences.prefersReducedMotion) {
74
- vars['--media-transition-duration'] = '0ms';
75
- vars['--media-animation-duration'] = '0ms';
76
- vars['--media-motion'] = 'none';
77
- }
78
- else {
79
- vars['--media-transition-duration'] = '200ms';
80
- vars['--media-animation-duration'] = '300ms';
81
- vars['--media-motion'] = 'auto';
82
- }
83
- if (preferences.prefersReducedTransparency) {
84
- vars['--media-backdrop-blur'] = '0px';
85
- vars['--media-bg-opacity'] = '1';
86
- }
87
- else {
88
- vars['--media-backdrop-blur'] = '10px';
89
- }
90
- return vars;
91
- }, [preferences]);
92
- // Apply styles to document
93
- const applyStyles = useCallback(() => {
94
- if (typeof document === 'undefined')
95
- return;
96
- const vars = cssVariables();
97
- Object.entries(vars).forEach(([property, value]) => {
98
- document.documentElement.style.setProperty(property, value);
99
- });
100
- }, [cssVariables]);
101
- useEffect(() => {
102
- applyStyles();
103
- }, [applyStyles]);
104
- return {
105
- preferences,
106
- cssVariables: cssVariables(),
107
- applyStyles
108
- };
109
- }
110
- // Hook for managing focus visibility
111
- export function useFocusVisible() {
112
- const [isFocusVisible, setIsFocusVisible] = useState(false);
113
- useEffect(() => {
114
- if (typeof window === 'undefined')
115
- return;
116
- let hadKeyboardEvent = true;
117
- let keyboardThrottleTimeoutID;
118
- const handleKeyDown = (e) => {
119
- if (e.metaKey || e.altKey || e.ctrlKey) {
120
- return;
121
- }
122
- hadKeyboardEvent = true;
123
- setIsFocusVisible(true);
124
- };
125
- const handlePointerDown = () => {
126
- hadKeyboardEvent = false;
127
- setIsFocusVisible(false);
128
- };
129
- const handleFocus = (e) => {
130
- if (hadKeyboardEvent || e.target?.matches(':focus-visible')) {
131
- setIsFocusVisible(true);
132
- }
133
- };
134
- const handleBlur = () => {
135
- setIsFocusVisible(false);
136
- };
137
- document.addEventListener('keydown', handleKeyDown, true);
138
- document.addEventListener('mousedown', handlePointerDown, true);
139
- document.addEventListener('pointerdown', handlePointerDown, true);
140
- document.addEventListener('touchstart', handlePointerDown, true);
141
- document.addEventListener('focus', handleFocus, true);
142
- document.addEventListener('blur', handleBlur, true);
143
- return () => {
144
- document.removeEventListener('keydown', handleKeyDown, true);
145
- document.removeEventListener('mousedown', handlePointerDown, true);
146
- document.removeEventListener('pointerdown', handlePointerDown, true);
147
- document.removeEventListener('touchstart', handlePointerDown, true);
148
- document.removeEventListener('focus', handleFocus, true);
149
- document.removeEventListener('blur', handleBlur, true);
150
- if (keyboardThrottleTimeoutID) {
151
- clearTimeout(keyboardThrottleTimeoutID);
152
- }
153
- };
154
- }, []);
155
- return isFocusVisible;
156
- }
@@ -1,142 +0,0 @@
1
- import { useRef, useCallback, useEffect } from 'react';
2
- export function useFocusManagement({ restoreFocus = true, initialFocus } = {}) {
3
- const previousFocusRef = useRef(null);
4
- const containerRef = useRef(null);
5
- // Store the previously focused element
6
- const storePreviousFocus = useCallback(() => {
7
- previousFocusRef.current = document.activeElement;
8
- }, []);
9
- // Restore focus to the previously focused element
10
- const restorePreviousFocus = useCallback((options = {}) => {
11
- if (previousFocusRef.current && restoreFocus) {
12
- previousFocusRef.current.focus({
13
- preventScroll: options.preventScroll
14
- });
15
- previousFocusRef.current = null;
16
- }
17
- }, [restoreFocus]);
18
- // Focus an element by selector or element
19
- const focusElement = useCallback((target, options = {}) => {
20
- let element = null;
21
- if (typeof target === 'string') {
22
- element = containerRef.current?.querySelector(target) ||
23
- document.querySelector(target);
24
- }
25
- else if (typeof target === 'function') {
26
- element = target();
27
- }
28
- else {
29
- element = target;
30
- }
31
- if (element) {
32
- element.focus({
33
- preventScroll: options.preventScroll
34
- });
35
- }
36
- }, []);
37
- // Get all focusable elements within a container
38
- const getFocusableElements = useCallback((container) => {
39
- const root = container || containerRef.current || document;
40
- const focusableSelectors = [
41
- 'button:not([disabled])',
42
- 'input:not([disabled])',
43
- 'textarea:not([disabled])',
44
- 'select:not([disabled])',
45
- 'a[href]',
46
- '[tabindex]:not([tabindex="-1"])',
47
- 'audio[controls]',
48
- 'video[controls]',
49
- '[contenteditable]:not([contenteditable="false"])'
50
- ].join(', ');
51
- return Array.from(root.querySelectorAll(focusableSelectors));
52
- }, []);
53
- // Create a focus trap within the container
54
- const createFocusTrap = useCallback(() => {
55
- const handleKeyDown = (event) => {
56
- if (event.key !== 'Tab')
57
- return;
58
- const focusableElements = getFocusableElements();
59
- if (focusableElements.length === 0)
60
- return;
61
- const firstFocusable = focusableElements[0];
62
- const lastFocusable = focusableElements[focusableElements.length - 1];
63
- if (event.shiftKey) {
64
- // Shift + Tab
65
- if (document.activeElement === firstFocusable) {
66
- event.preventDefault();
67
- lastFocusable.focus();
68
- }
69
- }
70
- else {
71
- // Tab
72
- if (document.activeElement === lastFocusable) {
73
- event.preventDefault();
74
- firstFocusable.focus();
75
- }
76
- }
77
- };
78
- document.addEventListener('keydown', handleKeyDown);
79
- return () => document.removeEventListener('keydown', handleKeyDown);
80
- }, [getFocusableElements]);
81
- // Navigate to next/previous focusable element
82
- const navigateFocus = useCallback((direction) => {
83
- const focusableElements = getFocusableElements();
84
- const currentIndex = focusableElements.indexOf(document.activeElement);
85
- let nextIndex;
86
- if (direction === 'next') {
87
- nextIndex = currentIndex + 1 >= focusableElements.length ? 0 : currentIndex + 1;
88
- }
89
- else {
90
- nextIndex = currentIndex - 1 < 0 ? focusableElements.length - 1 : currentIndex - 1;
91
- }
92
- focusableElements[nextIndex]?.focus();
93
- }, [getFocusableElements]);
94
- // Initialize focus on mount
95
- useEffect(() => {
96
- if (initialFocus) {
97
- const timer = setTimeout(() => {
98
- focusElement(initialFocus);
99
- }, 0);
100
- return () => clearTimeout(timer);
101
- }
102
- }, [initialFocus, focusElement]);
103
- return {
104
- containerRef,
105
- storePreviousFocus,
106
- restorePreviousFocus,
107
- focusElement,
108
- getFocusableElements,
109
- createFocusTrap,
110
- navigateFocus
111
- };
112
- }
113
- // Hook for managing focus within media player controls
114
- export function useMediaPlayerFocus() {
115
- const focusManager = useFocusManagement({
116
- restoreFocus: true,
117
- initialFocus: '[data-media-control="play-pause"]'
118
- });
119
- // Focus on play/pause button
120
- const focusPlayPause = useCallback(() => {
121
- focusManager.focusElement('[data-media-control="play-pause"]');
122
- }, [focusManager]);
123
- // Focus on seek bar
124
- const focusSeekBar = useCallback(() => {
125
- focusManager.focusElement('[data-media-control="seek-bar"]');
126
- }, [focusManager]);
127
- // Focus on volume control
128
- const focusVolumeControl = useCallback(() => {
129
- focusManager.focusElement('[data-media-control="volume"]');
130
- }, [focusManager]);
131
- // Focus on settings button
132
- const focusSettings = useCallback(() => {
133
- focusManager.focusElement('[data-media-control="settings"]');
134
- }, [focusManager]);
135
- return {
136
- ...focusManager,
137
- focusPlayPause,
138
- focusSeekBar,
139
- focusVolumeControl,
140
- focusSettings
141
- };
142
- }