@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,2002 +0,0 @@
1
- import { j as e, f as Me, u as ie, a as Q, b as Z, M as y } from "./context-Af84FynT.js";
2
- import K, { useState as A, useRef as D, useEffect as B, useCallback as V } from "react";
3
- import { u as Ne, a as Le, b as ze, c as Ee, d as ke, e as Ce, f as Ae, g as Oe } from "./hooks-BPtHV1ZT.js";
4
- import { c as x, f as W, a as oe } from "./utils-nTO4AnHo.js";
5
- function Se(...t) {
6
- return (s) => {
7
- t.forEach((n) => {
8
- typeof n == "function" ? n(s) : n && typeof n == "object" && (n.current = s);
9
- });
10
- };
11
- }
12
- function Pe({
13
- children: t,
14
- className: s,
15
- dir: n = "ltr",
16
- disabled: a = !1,
17
- asChild: r = !1,
18
- autoHide: l = !0,
19
- enableGestures: u = !0,
20
- enableMobileOptimizations: o = !0,
21
- onPlay: d,
22
- onPause: p,
23
- onEnded: v,
24
- onTimeUpdate: b,
25
- onVolumeChange: N,
26
- onMuted: M,
27
- onMediaError: z,
28
- onPipError: T,
29
- onFullscreenChange: k,
30
- ...g
31
- }) {
32
- const f = ie(), c = Q(), { isTouchDevice: w } = Ne(), h = Z((i) => i.isPlaying), m = Z((i) => i.currentTime), L = Z((i) => i.volume);
33
- Z((i) => i.isMuted), Z((i) => i.error);
34
- const j = Z((i) => i.isFullscreen);
35
- Z((i) => i.isPictureInPicture), Le();
36
- const C = {
37
- onPlayPause: () => {
38
- a || c({
39
- type: h ? y.PAUSE : y.PLAY
40
- });
41
- },
42
- onSeek: (i, E) => {
43
- if (a || !f.isVideo) return;
44
- const Y = f.mediaRef.current;
45
- if (!Y) return;
46
- const I = i === "forward" ? Math.min(Y.duration || 0, m + E) : Math.max(0, m - E);
47
- c({
48
- type: y.SEEK,
49
- detail: I
50
- });
51
- },
52
- onVolumeChange: (i, E) => {
53
- if (a) return;
54
- const Y = i === "up" ? Math.min(1, L + E) : Math.max(0, L - E);
55
- c({
56
- type: y.SET_VOLUME,
57
- detail: Y
58
- });
59
- },
60
- onToggleFullscreen: () => {
61
- a || !f.isVideo || c({
62
- type: j ? y.EXIT_FULLSCREEN : y.ENTER_FULLSCREEN
63
- });
64
- },
65
- onZoom: (i) => {
66
- console.log("Zoom gesture detected:", i);
67
- }
68
- };
69
- ze(
70
- f.rootRef,
71
- u ? C : {}
72
- );
73
- const O = (i) => {
74
- if (a) return;
75
- const E = i.target;
76
- if (E.tagName === "INPUT" || E.tagName === "TEXTAREA" || E.isContentEditable) return;
77
- const I = f.mediaRef.current;
78
- if (I)
79
- switch (i.code) {
80
- case "Space":
81
- case "KeyK":
82
- i.preventDefault(), c({
83
- type: h ? y.PAUSE : y.PLAY
84
- });
85
- break;
86
- case "KeyF":
87
- i.preventDefault(), c({
88
- type: j ? y.EXIT_FULLSCREEN : y.ENTER_FULLSCREEN
89
- });
90
- break;
91
- case "KeyM":
92
- i.preventDefault(), c({
93
- type: y.TOGGLE_MUTE
94
- });
95
- break;
96
- case "ArrowLeft":
97
- i.preventDefault(), f.isVideo && I instanceof HTMLVideoElement && c({
98
- type: y.SEEK,
99
- detail: Math.max(0, m - 10)
100
- });
101
- break;
102
- case "ArrowRight":
103
- i.preventDefault(), f.isVideo && I instanceof HTMLVideoElement && c({
104
- type: y.SEEK,
105
- detail: Math.min(I.duration || 0, m + 10)
106
- });
107
- break;
108
- case "ArrowUp":
109
- i.preventDefault(), c({
110
- type: y.SET_VOLUME,
111
- detail: Math.min(1, L + 0.1)
112
- });
113
- break;
114
- case "ArrowDown":
115
- i.preventDefault(), c({
116
- type: y.SET_VOLUME,
117
- detail: Math.max(0, L - 0.1)
118
- });
119
- break;
120
- }
121
- };
122
- K.useEffect(() => {
123
- const i = f.mediaRef.current;
124
- if (!i) return;
125
- const E = () => {
126
- c({ type: y.PLAY }), d?.();
127
- }, Y = () => {
128
- c({ type: y.PAUSE }), p?.();
129
- }, I = () => {
130
- c({ type: y.PAUSE }), v?.();
131
- }, S = () => {
132
- const P = i.currentTime;
133
- c({ type: y.SET_CURRENT_TIME, detail: P }), b?.(P);
134
- }, J = () => {
135
- const P = i.volume, X = i.muted;
136
- c({ type: y.SET_VOLUME, detail: P }), c({ type: X ? y.MUTE : y.UNMUTE }), N?.(P), M?.(X);
137
- }, F = () => {
138
- c({ type: y.SET_DURATION, detail: i.duration }), c({ type: y.SET_LOADING, detail: !1 });
139
- }, H = () => {
140
- const P = "An error occurred while loading the media";
141
- c({ type: y.SET_ERROR, detail: P }), z?.(P);
142
- }, U = () => {
143
- c({ type: y.SET_LOADING, detail: !0 });
144
- };
145
- return i.addEventListener("play", E), i.addEventListener("pause", Y), i.addEventListener("ended", I), i.addEventListener("timeupdate", S), i.addEventListener("volumechange", J), i.addEventListener("loadedmetadata", F), i.addEventListener("error", H), i.addEventListener("loadstart", U), () => {
146
- i.removeEventListener("play", E), i.removeEventListener("pause", Y), i.removeEventListener("ended", I), i.removeEventListener("timeupdate", S), i.removeEventListener("volumechange", J), i.removeEventListener("loadedmetadata", F), i.removeEventListener("error", H), i.removeEventListener("loadstart", U);
147
- };
148
- }, [c, d, p, v, b, N, M, z]);
149
- const G = {
150
- "aria-labelledby": f.labelId,
151
- "aria-describedby": f.descriptionId,
152
- "aria-disabled": a,
153
- "data-disabled": a ? "" : void 0,
154
- "data-slot": "media-player",
155
- "data-state": j ? "fullscreen" : "inline",
156
- dir: n,
157
- tabIndex: a ? -1 : 0,
158
- className: x(
159
- "dark relative isolate flex flex-col overflow-hidden rounded-lg bg-background outline-none",
160
- "focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50",
161
- "data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
162
- "[&_video]:relative [&_video]:object-contain",
163
- "data-[state=fullscreen]:[&_video]:size-full",
164
- "[:fullscreen_&]:flex [:fullscreen_&]:h-full [:fullscreen_&]:max-h-screen [:fullscreen_&]:flex-col [:fullscreen_&]:justify-between",
165
- // Mobile-first optimizations
166
- w && [
167
- "touch-manipulation",
168
- // Improves touch responsiveness
169
- "select-none",
170
- // Prevents text selection during gestures
171
- "overscroll-contain"
172
- // Prevents scroll chaining
173
- ],
174
- // Enable hardware acceleration for smooth animations
175
- "will-change-transform",
176
- "transform-gpu",
177
- s
178
- ),
179
- onKeyDown: O,
180
- ...g
181
- };
182
- return /* @__PURE__ */ e.jsx("div", { ref: Se(f.rootRef), ...G, children: t });
183
- }
184
- function ce(t) {
185
- return /* @__PURE__ */ e.jsx(Me, { children: /* @__PURE__ */ e.jsx(Pe, { ...t }) });
186
- }
187
- ce.displayName = "MediaPlayerRoot";
188
- function de({
189
- asChild: t = !1,
190
- className: s,
191
- children: n,
192
- ...a
193
- }) {
194
- const r = ie();
195
- if (t) {
196
- const l = K.Children.only(n);
197
- return K.cloneElement(l, {
198
- ...a,
199
- ref: r.mediaRef,
200
- "data-slot": "media-player-video"
201
- });
202
- }
203
- return /* @__PURE__ */ e.jsx(
204
- "video",
205
- {
206
- ref: r.mediaRef,
207
- "data-slot": "media-player-video",
208
- className: s,
209
- ...a,
210
- children: n
211
- }
212
- );
213
- }
214
- de.displayName = "MediaPlayerVideo";
215
- function se({
216
- variant: t = "current-duration",
217
- className: s,
218
- asChild: n = !1,
219
- children: a,
220
- ...r
221
- }) {
222
- const l = ie(), u = Z((b) => b.currentTime), o = Z((b) => b.duration), d = K.useMemo(() => t === "remaining" ? {
223
- remaining: W(Math.max(0, o - u))
224
- } : t === "duration" ? {
225
- duration: W(o)
226
- } : t === "current" ? {
227
- current: W(u)
228
- } : {
229
- current: W(u),
230
- duration: W(o)
231
- }, [t, u, o]), p = {
232
- "data-slot": "media-player-time",
233
- "data-variant": t,
234
- dir: l.dir,
235
- className: x("text-sm text-foreground/80 tabular-nums", s),
236
- ...r
237
- };
238
- if (t !== "current-duration") {
239
- const b = d[t];
240
- if (n) {
241
- const N = K.Children.only(a);
242
- return K.cloneElement(N, p, b);
243
- }
244
- return /* @__PURE__ */ e.jsx("time", { ...p, children: b });
245
- }
246
- const v = /* @__PURE__ */ e.jsxs(e.Fragment, { children: [
247
- /* @__PURE__ */ e.jsx("time", { children: d.current }),
248
- /* @__PURE__ */ e.jsx("span", { className: "text-foreground/60", children: "/" }),
249
- /* @__PURE__ */ e.jsx("time", { children: d.duration })
250
- ] });
251
- if (n) {
252
- const b = K.Children.only(a);
253
- return K.cloneElement(
254
- b,
255
- {
256
- ...p,
257
- className: x("flex items-center gap-1 text-foreground/80 text-sm", s)
258
- },
259
- v
260
- );
261
- }
262
- return /* @__PURE__ */ e.jsx(
263
- "div",
264
- {
265
- ...p,
266
- className: x("flex items-center gap-1 text-foreground/80 text-sm", s),
267
- children: v
268
- }
269
- );
270
- }
271
- se.displayName = "MediaPlayerTime";
272
- function Te({
273
- isPlaying: t,
274
- icons: s,
275
- size: n = "md",
276
- className: a
277
- }) {
278
- const r = Q(), l = () => {
279
- r({
280
- type: t ? y.PAUSE : y.PLAY
281
- });
282
- }, u = {
283
- sm: "h-10 w-10",
284
- md: "h-12 w-12 minimal-btn",
285
- lg: "h-16 w-16 minimal-btn-lg",
286
- xl: "h-20 w-20 minimal-btn-lg"
287
- }, o = {
288
- sm: 27,
289
- md: 30,
290
- lg: 36,
291
- xl: 42
292
- }, d = s.play, p = s.pause;
293
- return !d || !p ? null : /* @__PURE__ */ e.jsx(
294
- "button",
295
- {
296
- className: x(
297
- "minimal-btn",
298
- u[n],
299
- a
300
- ),
301
- onClick: l,
302
- "aria-label": t ? "Pause" : "Play",
303
- children: t ? /* @__PURE__ */ e.jsx(p, { size: o[n] }) : /* @__PURE__ */ e.jsx(d, { size: o[n] })
304
- }
305
- );
306
- }
307
- function Ie({
308
- thumbnails: t,
309
- onSeek: s,
310
- className: n
311
- }) {
312
- const a = Q(), r = Z((h) => h.currentTime), l = Z((h) => h.duration), u = Z((h) => h.buffered), [o, d] = A(!1), [p, v] = A(0), [b, N] = A(0), M = D(null), z = l > 0 ? r / l * 100 : 0, T = u && u.length > 0 && l > 0 ? u.end(u.length - 1) / l * 100 : 0, k = (h) => {
313
- if (!M.current || l === 0) return;
314
- const m = M.current.getBoundingClientRect(), j = Math.max(0, Math.min(1, (h - m.left) / m.width)) * l;
315
- a({
316
- type: y.SEEK,
317
- detail: j
318
- }), s?.(j);
319
- }, g = (h) => {
320
- h.preventDefault(), d(!0), k(h.clientX);
321
- }, f = (h) => {
322
- if (!M.current || l === 0) return;
323
- const m = M.current.getBoundingClientRect(), j = Math.max(0, Math.min(1, (h.clientX - m.left) / m.width)) * l;
324
- v(j), N(h.clientX - m.left), o && k(h.clientX);
325
- }, c = () => {
326
- d(!1);
327
- }, w = () => {
328
- d(!1), v(0);
329
- };
330
- return K.useEffect(() => {
331
- if (o) {
332
- const h = (L) => {
333
- k(L.clientX);
334
- }, m = () => {
335
- d(!1);
336
- };
337
- return document.addEventListener("mousemove", h), document.addEventListener("mouseup", m), () => {
338
- document.removeEventListener("mousemove", h), document.removeEventListener("mouseup", m);
339
- };
340
- }
341
- }, [o]), /* @__PURE__ */ e.jsxs("div", { className: x("group relative", n), children: [
342
- p > 0 && /* @__PURE__ */ e.jsxs(
343
- "div",
344
- {
345
- className: "pointer-events-none absolute bottom-full z-50 mb-2",
346
- style: { left: `${b}px`, transform: "translateX(-50%)" },
347
- children: [
348
- t && /* @__PURE__ */ e.jsx("div", { className: "mb-1 rounded bg-black/90 p-1", children: /* @__PURE__ */ e.jsx("div", { className: "h-18 w-32 rounded bg-gray-800" }) }),
349
- /* @__PURE__ */ e.jsx("div", { className: "whitespace-nowrap rounded bg-black/90 px-2 py-1 text-white text-xs", children: W(p) })
350
- ]
351
- }
352
- ),
353
- /* @__PURE__ */ e.jsxs(
354
- "div",
355
- {
356
- ref: M,
357
- className: "minimal-seekbar",
358
- onMouseDown: g,
359
- onMouseMove: f,
360
- onMouseUp: c,
361
- onMouseLeave: w,
362
- children: [
363
- /* @__PURE__ */ e.jsx(
364
- "div",
365
- {
366
- className: "minimal-seekbar-buffered",
367
- style: { width: `${T}%` }
368
- }
369
- ),
370
- /* @__PURE__ */ e.jsx(
371
- "div",
372
- {
373
- className: "minimal-seekbar-progress",
374
- style: { width: `${z}%` }
375
- }
376
- ),
377
- /* @__PURE__ */ e.jsx(
378
- "div",
379
- {
380
- className: x(
381
- "minimal-seekbar-thumb",
382
- o && "active"
383
- ),
384
- style: { left: `${z}%` }
385
- }
386
- )
387
- ]
388
- }
389
- )
390
- ] });
391
- }
392
- function qe({
393
- icons: t,
394
- className: s
395
- }) {
396
- const n = Q(), a = Z((v) => v.volume), r = Z((v) => v.isMuted), [l, u] = A(!1), o = (v) => {
397
- const b = parseFloat(v.target.value);
398
- n({
399
- type: y.SET_VOLUME,
400
- detail: b
401
- });
402
- }, d = () => {
403
- n({
404
- type: y.TOGGLE_MUTE
405
- });
406
- }, p = r || a === 0 ? t.volumeMuted : t.volume;
407
- return p ? /* @__PURE__ */ e.jsxs(
408
- "div",
409
- {
410
- className: x(
411
- "minimal-volume-group flex items-center gap-2",
412
- s
413
- ),
414
- onMouseEnter: () => u(!0),
415
- onMouseLeave: () => u(!1),
416
- children: [
417
- /* @__PURE__ */ e.jsx(
418
- "button",
419
- {
420
- className: "minimal-btn inline-flex h-8 w-8 items-center justify-center rounded-full border border-white/20 bg-white/10 text-white transition-all duration-150 hover:border-white/30 hover:bg-white/20",
421
- onClick: d,
422
- "aria-label": r ? "Unmute" : "Mute",
423
- children: /* @__PURE__ */ e.jsx(p, { size: 18 })
424
- }
425
- ),
426
- /* @__PURE__ */ e.jsx(
427
- "div",
428
- {
429
- className: x(
430
- "overflow-hidden transition-all duration-250",
431
- l ? "w-20 opacity-100" : "w-0 opacity-0"
432
- ),
433
- children: /* @__PURE__ */ e.jsx(
434
- "input",
435
- {
436
- type: "range",
437
- min: "0",
438
- max: "1",
439
- step: "0.01",
440
- value: r ? 0 : a,
441
- onChange: o,
442
- className: "minimal-volume-slider h-1 w-full cursor-pointer appearance-none rounded-full bg-white/20",
443
- style: {
444
- background: `linear-gradient(to right, rgb(59 130 246) 0%, rgb(59 130 246) ${(r ? 0 : a) * 100}%, rgba(255,255,255,0.2) ${(r ? 0 : a) * 100}%, rgba(255,255,255,0.2) 100%)`
445
- }
446
- }
447
- )
448
- }
449
- )
450
- ]
451
- }
452
- ) : null;
453
- }
454
- function Ge({
455
- visible: t,
456
- icons: s,
457
- isPlaying: n,
458
- showQualitySelector: a,
459
- showSpeedControl: r,
460
- qualities: l,
461
- thumbnails: u,
462
- onUserInteractionStart: o,
463
- onUserInteractionEnd: d,
464
- onSeek: p
465
- }) {
466
- return /* @__PURE__ */ e.jsxs(
467
- "div",
468
- {
469
- className: x(
470
- "minimal-control-bar",
471
- "absolute right-0 bottom-0 left-0 z-40",
472
- "px-6 py-3 transition-all duration-200",
473
- t ? "minimal-controls-visible" : "minimal-controls-hidden"
474
- ),
475
- "data-hidden": !t,
476
- onMouseDown: o,
477
- onMouseUp: d,
478
- onTouchStart: o,
479
- onTouchEnd: d,
480
- children: [
481
- /* @__PURE__ */ e.jsx("div", { className: "mb-2", children: /* @__PURE__ */ e.jsx(
482
- Ie,
483
- {
484
- thumbnails: u,
485
- onSeek: p
486
- }
487
- ) }),
488
- /* @__PURE__ */ e.jsxs("div", { className: "flex items-center justify-between gap-3", children: [
489
- /* @__PURE__ */ e.jsxs("div", { className: "flex items-center gap-3", children: [
490
- /* @__PURE__ */ e.jsx(
491
- Te,
492
- {
493
- isPlaying: n,
494
- icons: s
495
- }
496
- ),
497
- /* @__PURE__ */ e.jsx(
498
- qe,
499
- {
500
- icons: s
501
- }
502
- ),
503
- /* @__PURE__ */ e.jsxs("div", { className: "minimal-time select-none font-mono text-sm text-white/90", children: [
504
- /* @__PURE__ */ e.jsx(se, { variant: "current" }),
505
- /* @__PURE__ */ e.jsx("span", { className: "mx-1 text-white/60", children: "/" }),
506
- /* @__PURE__ */ e.jsx(se, { variant: "duration" })
507
- ] })
508
- ] }),
509
- /* @__PURE__ */ e.jsxs("div", { className: "flex items-center gap-2", children: [
510
- a && l && l.length > 1 && /* @__PURE__ */ e.jsx(
511
- "button",
512
- {
513
- className: "minimal-btn w-auto px-3 font-medium text-xs",
514
- title: "Quality",
515
- children: l.find((v) => v.default)?.quality || l[0]?.quality || "Auto"
516
- }
517
- ),
518
- r && /* @__PURE__ */ e.jsx(
519
- "button",
520
- {
521
- className: "minimal-btn w-auto px-3 font-medium text-xs",
522
- title: "Playback Speed",
523
- children: "1x"
524
- }
525
- ),
526
- s.settings && (a || r) && /* @__PURE__ */ e.jsx("button", { className: "minimal-btn", title: "Settings", children: /* @__PURE__ */ e.jsx(s.settings, { size: 18 }) }),
527
- /* @__PURE__ */ e.jsx(
528
- "button",
529
- {
530
- className: "minimal-btn",
531
- title: "Toggle Fullscreen",
532
- onClick: () => {
533
- const v = document.documentElement;
534
- document.fullscreenElement ? document.exitFullscreen?.() : v.requestFullscreen?.();
535
- },
536
- children: document.fullscreenElement ? s.exitFullscreen && /* @__PURE__ */ e.jsx(s.exitFullscreen, { size: 18 }) : s.fullscreen && /* @__PURE__ */ e.jsx(s.fullscreen, { size: 18 })
537
- }
538
- )
539
- ] })
540
- ] })
541
- ]
542
- }
543
- );
544
- }
545
- function Ye({
546
- visible: t,
547
- showCenterButton: s = !1,
548
- isPlaying: n = !1,
549
- icons: a,
550
- onPlayPause: r,
551
- className: l
552
- }) {
553
- if (!t || !s) return null;
554
- const u = a.play, o = a.pause;
555
- return !u || !o ? null : /* @__PURE__ */ e.jsx(
556
- "div",
557
- {
558
- className: x(
559
- "absolute inset-0 z-30 flex items-center justify-center",
560
- "bg-black/20 transition-opacity duration-200",
561
- l
562
- ),
563
- onClick: r,
564
- children: /* @__PURE__ */ e.jsx(
565
- "button",
566
- {
567
- className: x(
568
- "minimal-center-play",
569
- "h-20 w-20 rounded-full",
570
- "flex items-center justify-center",
571
- "text-white",
572
- "transition-all duration-200",
573
- "hover:scale-110",
574
- "active:scale-95"
575
- ),
576
- onClick: (d) => {
577
- d.stopPropagation(), r?.();
578
- },
579
- "aria-label": n ? "Pause" : "Play",
580
- children: n ? /* @__PURE__ */ e.jsx(o, { size: 48 }) : /* @__PURE__ */ e.jsx(u, { size: 48, className: "ml-1" })
581
- }
582
- )
583
- }
584
- );
585
- }
586
- function Ze({
587
- icon: t,
588
- className: s
589
- }) {
590
- return /* @__PURE__ */ e.jsx(
591
- "div",
592
- {
593
- className: x(
594
- "absolute inset-0 z-40 flex items-center justify-center",
595
- "bg-black/60 backdrop-blur-sm",
596
- s
597
- ),
598
- children: /* @__PURE__ */ e.jsx("div", { className: "text-white", children: t ? /* @__PURE__ */ e.jsx(t, { size: 48, className: "animate-spin" }) : /* @__PURE__ */ e.jsx("div", { className: "minimal-spinner h-12 w-12 animate-spin rounded-full border-3 border-white/20 border-t-white" }) })
599
- }
600
- );
601
- }
602
- const ue = (t) => /* @__PURE__ */ e.jsx("svg", { xmlns: "http://www.w3.org/2000/svg", width: "1em", height: "1em", viewBox: "0 0 24 24", ...t, children: /* @__PURE__ */ e.jsx(
603
- "path",
604
- {
605
- fill: "currentColor",
606
- d: "M3 2.25a1 1 0 0 0-1 1V9a1 1 0 0 0 1 1h5.25a1 1 0 0 0 0-2H4.863c.985-1.179 2.208-2.113 3.682-2.57a9.435 9.435 0 0 1 6.106.16c1.981.738 3.81 2.232 4.722 3.894a1 1 0 1 0 1.754-.961c-1.175-2.143-3.415-3.927-5.778-4.807a11.435 11.435 0 0 0-7.395-.196C6.378 4.008 5.068 4.9 4 5.979V3.25a1 1 0 0 0-1-1ZM9.75 12a1 1 0 0 0-1.762-.647l-.222.265c-.515.623-1.078 1.303-2.28 2.024a1 1 0 1 0 1.029 1.716c.483-.29.889-.582 1.235-.865V20a1 1 0 0 0 2 0v-8Zm6.5-1c-1.386 0-2.4.635-3.008 1.661c-.564.95-.742 2.161-.742 3.339s.178 2.39.742 3.339C13.85 20.365 14.864 21 16.25 21s2.4-.635 3.008-1.661c.564-.95.742-2.161.742-3.339s-.178-2.39-.742-3.339C18.65 11.635 17.636 11 16.25 11Zm-1.75 5c0-1.031.166-1.82.461-2.318c.251-.422.613-.682 1.289-.682c.676 0 1.038.26 1.288.682c.296.498.462 1.287.462 2.318c0 1.031-.166 1.82-.462 2.318c-.25.422-.612.682-1.288.682s-1.038-.26-1.289-.682c-.295-.498-.461-1.287-.461-2.318Z"
607
- }
608
- ) }), Ke = (t) => /* @__PURE__ */ e.jsx(
609
- "svg",
610
- {
611
- width: 32,
612
- height: 32,
613
- viewBox: "0 0 24 24",
614
- style: { width: "100%", height: "100%" },
615
- ...t,
616
- children: /* @__PURE__ */ e.jsx(
617
- "path",
618
- {
619
- fill: "currentColor",
620
- d: "M12 18q2.075 0 3.538-1.462Q17 15.075 17 13q0-2.075-1.462-3.538Q14.075 8 12 8 9.925 8 8.463 9.462 7 10.925 7 13q0 2.075 1.463 3.538Q9.925 18 12 18Zm0-2q-1.25 0-2.125-.875T9 13q0-1.25.875-2.125T12 10q1.25 0 2.125.875T15 13q0 1.25-.875 2.125T12 16Zm6-6q.425 0 .712-.288Q19 9.425 19 9t-.288-.713Q18.425 8 18 8t-.712.287Q17 8.575 17 9t.288.712Q17.575 10 18 10ZM4 21q-.825 0-1.412-.587Q2 19.825 2 19V7q0-.825.588-1.412Q3.175 5 4 5h3.15L8.7 3.325q.15-.15.337-.238Q9.225 3 9.425 3h5.15q.2 0 .388.087.187.088.337.238L16.85 5H20q.825 0 1.413.588Q22 6.175 22 7v12q0 .825-.587 1.413Q20.825 21 20 21Zm16-2V7h-4.05l-1.825-2h-4.25L8.05 7H4v12Zm-8-6Z"
621
- }
622
- )
623
- }
624
- ), De = Ke, me = (t) => /* @__PURE__ */ e.jsx("svg", { xmlns: "http://www.w3.org/2000/svg", width: "1em", height: "1em", viewBox: "0 0 24 24", ...t, children: /* @__PURE__ */ e.jsx(
625
- "path",
626
- {
627
- fill: "currentColor",
628
- d: "M21 2.25a1 1 0 0 1 1 1V9a1 1 0 0 1-1 1h-5.25a1 1 0 0 1 0-2h3.387c-.985-1.179-2.208-2.113-3.682-2.57a9.435 9.435 0 0 0-6.106.16c-1.981.738-3.81 2.232-4.722 3.894a1 1 0 0 1-1.754-.961C4.048 6.38 6.288 4.596 8.652 3.716a11.435 11.435 0 0 1 7.394-.196c1.576.488 2.886 1.38 3.954 2.459V3.25a1 1 0 0 1 1-1ZM9.095 11.061A1 1 0 0 1 9.75 12v8a1 1 0 0 1-2 0v-5.507c-.346.283-.752.575-1.235.864a1 1 0 1 1-1.03-1.715c1.203-.721 1.766-1.4 2.281-2.024c.074-.09.148-.178.222-.265a1 1 0 0 1 1.107-.292Zm4.147 1.6C13.85 11.635 14.864 11 16.25 11s2.4.635 3.008 1.661c.564.95.742 2.161.742 3.339s-.178 2.39-.742 3.339C18.65 20.365 17.636 21 16.25 21s-2.4-.636-3.008-1.661c-.564-.95-.742-2.161-.742-3.339s.178-2.39.742-3.339Zm1.72 1.021c-.296.498-.462 1.287-.462 2.318c0 1.031.166 1.82.461 2.318c.251.422.613.682 1.289.682c.676 0 1.038-.26 1.288-.682c.296-.498.462-1.287.462-2.318c0-1.031-.166-1.82-.462-2.318c-.25-.422-.612-.682-1.288-.682s-1.038.26-1.289.682Z"
629
- }
630
- ) }), Re = (t) => /* @__PURE__ */ e.jsx(
631
- "svg",
632
- {
633
- width: "24",
634
- height: "24",
635
- viewBox: "0 0 24 24",
636
- fill: "none",
637
- xmlns: "http://www.w3.org/2000/svg",
638
- "data-uia": "control-fullscreen-enter",
639
- style: { width: "100%", height: "100%" },
640
- ...t,
641
- children: /* @__PURE__ */ e.jsx(
642
- "path",
643
- {
644
- fillRule: "evenodd",
645
- clipRule: "evenodd",
646
- d: "M0 5a2 2 0 0 1 2-2h7v2H2v4H0V5Zm22 0h-7V3h7a2 2 0 0 1 2 2v4h-2V5ZM2 15v4h7v2H2a2 2 0 0 1-2-2v-4h2Zm20 4v-4h2v4a2 2 0 0 1-2 2h-7v-2h7Z",
647
- fill: "currentColor"
648
- }
649
- )
650
- }
651
- ), We = (t) => /* @__PURE__ */ e.jsx(
652
- "svg",
653
- {
654
- width: "24",
655
- height: "24",
656
- viewBox: "0 0 24 24",
657
- fill: "none",
658
- xmlns: "http://www.w3.org/2000/svg",
659
- "data-uia": "control-fullscreen-exit",
660
- style: { width: "100%", height: "100%" },
661
- ...t,
662
- children: /* @__PURE__ */ e.jsx(
663
- "path",
664
- {
665
- fillRule: "evenodd",
666
- clipRule: "evenodd",
667
- d: "M24 8h-5V3h-2v7h7V8ZM0 16h5v5h2v-7H0v2Zm7-6H0V8h5V3h2v7Zm12 11v-5h5v-2h-7v7h2Z",
668
- fill: "currentColor"
669
- }
670
- )
671
- }
672
- ), Je = (t) => /* @__PURE__ */ e.jsxs(
673
- "svg",
674
- {
675
- width: "24",
676
- height: "24",
677
- viewBox: "0 0 24 24",
678
- fill: "none",
679
- xmlns: "http://www.w3.org/2000/svg",
680
- className: "svg-icon-nfplayerPlay",
681
- style: { width: "100%", height: "100%" },
682
- ...t,
683
- children: [
684
- /* @__PURE__ */ e.jsx(
685
- "path",
686
- {
687
- fill: "currentColor",
688
- d: "M12 2A10 10 0 1 0 22 12A10 10 0 0 0 12 2Zm0 18a8 8 0 1 1 8-8A8 8 0 0 1 12 20Z",
689
- opacity: ".5"
690
- }
691
- ),
692
- /* @__PURE__ */ e.jsx("path", { fill: "currentColor", d: "M20 12h2A10 10 0 0 0 12 2V4A8 8 0 0 1 20 12Z", children: /* @__PURE__ */ e.jsx(
693
- "animateTransform",
694
- {
695
- attributeName: "transform",
696
- dur: "1s",
697
- from: "0 12 12",
698
- repeatCount: "indefinite",
699
- to: "360 12 12",
700
- type: "rotate"
701
- }
702
- ) })
703
- ]
704
- }
705
- ), He = (t) => /* @__PURE__ */ e.jsx(
706
- "svg",
707
- {
708
- width: "24",
709
- height: "24",
710
- viewBox: "0 0 24 24",
711
- fill: "none",
712
- xmlns: "http://www.w3.org/2000/svg",
713
- className: "svg-icon-nfplayerPause",
714
- style: { width: "100%", height: "100%" },
715
- ...t,
716
- children: /* @__PURE__ */ e.jsx(
717
- "path",
718
- {
719
- fillRule: "evenodd",
720
- clipRule: "evenodd",
721
- d: "M4.5 3a.5.5 0 0 0-.5.5v17a.5.5 0 0 0 .5.5h5a.5.5 0 0 0 .5-.5v-17a.5.5 0 0 0-.5-.5h-5Zm10 0a.5.5 0 0 0-.5.5v17a.5.5 0 0 0 .5.5h5a.5.5 0 0 0 .5-.5v-17a.5.5 0 0 0-.5-.5h-5Z",
722
- fill: "currentColor"
723
- }
724
- )
725
- }
726
- ), Ue = (t) => /* @__PURE__ */ e.jsx(
727
- "svg",
728
- {
729
- width: "24",
730
- height: "24",
731
- viewBox: "0 0 24 24",
732
- fill: "none",
733
- xmlns: "http://www.w3.org/2000/svg",
734
- className: "svg-icon-nfplayerPlay",
735
- style: { width: "100%", height: "100%" },
736
- ...t,
737
- children: /* @__PURE__ */ e.jsx(
738
- "path",
739
- {
740
- d: "M4 2.691a1 1 0 0 1 1.482-.876l16.925 9.309a1 1 0 0 1 0 1.752L5.482 22.185A1 1 0 0 1 4 21.309V2.69Z",
741
- fill: "currentColor"
742
- }
743
- )
744
- }
745
- ), Ve = (t) => /* @__PURE__ */ e.jsx("svg", { width: "24", height: "24", viewBox: "0 0 24 24", ...t, children: /* @__PURE__ */ e.jsx(
746
- "path",
747
- {
748
- fill: "currentColor",
749
- d: "M2 12c0-.865.11-1.703.316-2.504A3 3 0 0 0 4.99 4.867a9.99 9.99 0 0 1 4.335-2.505a3 3 0 0 0 5.348 0a9.99 9.99 0 0 1 4.335 2.505a3 3 0 0 0 2.675 4.63a10.036 10.036 0 0 1 0 5.007a3 3 0 0 0-2.675 4.629a9.99 9.99 0 0 1-4.335 2.505a3 3 0 0 0-5.348 0a9.99 9.99 0 0 1-4.335-2.505a3 3 0 0 0-2.675-4.63A10.056 10.056 0 0 1 2 12zm4.804 3c.63 1.091.81 2.346.564 3.524c.408.29.842.541 1.297.75A4.993 4.993 0 0 1 12 18c1.26 0 2.438.471 3.335 1.274c.455-.209.889-.46 1.297-.75A4.993 4.993 0 0 1 17.196 15a4.993 4.993 0 0 1 2.77-2.25a8.126 8.126 0 0 0 0-1.5A4.993 4.993 0 0 1 17.195 9a4.993 4.993 0 0 1-.564-3.524a7.989 7.989 0 0 0-1.297-.75A4.993 4.993 0 0 1 12 6a4.993 4.993 0 0 1-3.335-1.274a7.99 7.99 0 0 0-1.297.75A4.993 4.993 0 0 1 6.804 9a4.993 4.993 0 0 1-2.77 2.25a8.126 8.126 0 0 0 0 1.5A4.993 4.993 0 0 1 6.805 15zM12 15a3 3 0 1 1 0-6a3 3 0 0 1 0 6zm0-2a1 1 0 1 0 0-2a1 1 0 0 0 0 2z"
750
- }
751
- ) }), Fe = (t) => /* @__PURE__ */ e.jsx(
752
- "svg",
753
- {
754
- width: "24",
755
- height: "24",
756
- viewBox: "0 0 24 24",
757
- fill: "none",
758
- xmlns: "http://www.w3.org/2000/svg",
759
- className: "Hawkins-Icon Hawkins-Icon-Standard",
760
- style: { width: "100%", height: "100%" },
761
- ...t,
762
- children: /* @__PURE__ */ e.jsx(
763
- "path",
764
- {
765
- fill: "currentColor",
766
- d: "M20 4H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 14H4V6h16v12zM6 10h2v2H6zm0 4h8v2H6zm10 0h2v2h-2zm-6-4h8v2h-8z"
767
- }
768
- )
769
- }
770
- ), Xe = (t) => /* @__PURE__ */ e.jsx("svg", { xmlns: "http://www.w3.org/2000/svg", width: "1em", height: "1em", viewBox: "0 0 24 24", ...t, children: /* @__PURE__ */ e.jsxs("g", { fill: "currentColor", children: [
771
- /* @__PURE__ */ e.jsx(
772
- "path",
773
- {
774
- fillRule: "evenodd",
775
- d: "M20.515 6.316a.75.75 0 0 1 .991.376c.468 1.035.994 2.768.994 5.308c0 2.192-.392 3.783-.8 4.844a7.72 7.72 0 0 1-.572 1.195a4.73 4.73 0 0 1-.289.425l-.007.01l-.003.003l-.002.002L20.25 18l.576.48a.75.75 0 0 1-1.156-.956l.003-.004l.031-.041a3.27 3.27 0 0 0 .137-.212c.12-.199.288-.516.459-.961c.342-.889.7-2.298.7-4.306c0-2.326-.48-3.849-.86-4.692a.75.75 0 0 1 .375-.992Zm-2.101 2.95a.75.75 0 0 1 .887.582c.11.53.199 1.24.199 2.152c0 1.11-.132 1.923-.273 2.474a5.172 5.172 0 0 1-.203.631a2.977 2.977 0 0 1-.102.228l-.01.018l-.003.007l-.002.003v.002s-.001.001-.657-.363l.656.364a.75.75 0 0 1-1.317-.719l.005-.01a1.85 1.85 0 0 0 .038-.087a3.66 3.66 0 0 0 .141-.447c.11-.424.227-1.111.227-2.101a9.17 9.17 0 0 0-.168-1.848a.75.75 0 0 1 .582-.886Z",
776
- clipRule: "evenodd"
777
- }
778
- ),
779
- /* @__PURE__ */ e.jsx("path", { d: "M21.78 3.53a.75.75 0 0 0-1.06-1.06l-4.45 4.449a11.265 11.265 0 0 0-.193-1.39c-.172-.788-.477-1.473-1.116-1.923a3.066 3.066 0 0 0-.769-.39c-.818-.28-1.631-.057-2.457.345c-.814.395-1.8 1.046-3.032 1.857l-.267.176c-.447.295-.602.394-.76.464a2.17 2.17 0 0 1-.535.16c-.171.03-.354.032-.89.032h-.162c-1.217 0-2.062-.001-2.814.347A3.962 3.962 0 0 0 1.548 8.22c-.392.729-.438 1.491-.504 2.575l-.008.13C1.014 11.294 1 11.658 1 12c0 .342.014.706.036 1.074l.008.13c.066 1.084.112 1.846.504 2.575a3.962 3.962 0 0 0 1.727 1.624c.61.283 1.283.336 2.166.345L2.72 20.47a.75.75 0 1 0 1.06 1.06l18-18ZM16.5 12a.75.75 0 0 0-1.255-.554l-.071.074l-6 6.274A.778.778 0 0 0 9.34 19c1.039.68 1.899 1.225 2.631 1.549c.743.328 1.48.489 2.222.236a3.08 3.08 0 0 0 .769-.391c.706-.497 1.005-1.28 1.167-2.18c.159-.884.213-2.056.281-3.516l.003-.058a68.23 68.23 0 0 0 .088-2.64Z" })
780
- ] }) }), Be = (t) => /* @__PURE__ */ e.jsx("svg", { xmlns: "http://www.w3.org/2000/svg", width: "1em", height: "1em", viewBox: "0 0 24 24", ...t, children: /* @__PURE__ */ e.jsxs("g", { fill: "currentColor", children: [
781
- /* @__PURE__ */ e.jsx("path", { d: "M2.003 11.716c.037-1.843.056-2.764.668-3.552a3.18 3.18 0 0 1 .413-.431c.752-.636 1.746-.636 3.733-.636c.71 0 1.065 0 1.403-.092c.07-.02.14-.042.209-.067c.33-.121.627-.33 1.22-.746c2.338-1.645 3.508-2.467 4.489-2.11c.188.069.37.168.533.29c.848.635.913 2.115 1.042 5.073a70.58 70.58 0 0 1 .08 2.555c0 .521-.032 1.46-.08 2.555c-.13 2.958-.194 4.438-1.042 5.073a2.109 2.109 0 0 1-.533.29c-.982.357-2.15-.465-4.49-2.11c-.592-.416-.889-.625-1.22-.746a2.61 2.61 0 0 0-.208-.067c-.338-.092-.693-.092-1.403-.092c-1.987 0-2.98 0-3.733-.636a3.145 3.145 0 0 1-.413-.43c-.612-.79-.63-1.71-.668-3.553a14.06 14.06 0 0 1 0-.569Z" }),
782
- /* @__PURE__ */ e.jsx(
783
- "path",
784
- {
785
- fillRule: "evenodd",
786
- d: "M19.49 5.552a.66.66 0 0 1 .97.094l-.529.471l.53-.47l.002.002l.003.004l.007.009a2.572 2.572 0 0 1 .079.112c.047.071.111.173.186.305c.149.264.339.652.526 1.171C21.64 8.291 22 9.851 22 12c0 2.15-.36 3.71-.736 4.75c-.187.52-.377.907-.526 1.172a4.655 4.655 0 0 1-.265.417l-.007.009l-.003.003l-.001.002s-.001.001-.531-.47l.53.471a.66.66 0 0 1-.971.094a.77.77 0 0 1-.09-1.035l.03-.041c.026-.04.07-.11.125-.207a6.28 6.28 0 0 0 .422-.943c.314-.871.644-2.253.644-4.222c0-1.97-.33-3.35-.644-4.222a6.28 6.28 0 0 0-.422-.942a3.152 3.152 0 0 0-.157-.253m-1.641 1.833c.333-.197.753-.07.938.286l-.603.357l.603-.357l.001.002l.002.003l.003.007l.01.018l.024.053c.018.042.042.099.07.17c.053.145.12.35.185.62c.13.54.252 1.337.252 2.425c0 1.089-.122 1.886-.252 2.426c-.065.27-.132.475-.186.619a3.04 3.04 0 0 1-.094.223l-.009.018l-.003.007l-.002.003v.002s-.001.001-.604-.356l.603.357c-.185.355-.605.483-.938.286c-.33-.196-.45-.638-.272-.991l.004-.01l.035-.085c.032-.086.08-.23.13-.438c.1-.416.208-1.09.208-2.06c0-.971-.108-1.645-.208-2.06a3.757 3.757 0 0 0-.165-.524l-.004-.01a.76.76 0 0 1 .272-.991Z",
787
- clipRule: "evenodd"
788
- }
789
- )
790
- ] }) }), Qe = ({
791
- size: t = 24,
792
- className: s = "",
793
- color: n = "currentColor"
794
- }) => /* @__PURE__ */ e.jsx(Ue, { width: t, height: t, className: s, style: { color: n } }), _e = ({
795
- size: t = 24,
796
- className: s = "",
797
- color: n = "currentColor"
798
- }) => /* @__PURE__ */ e.jsx(He, { width: t, height: t, className: s, style: { color: n } }), $e = ({
799
- size: t = 24,
800
- className: s = "",
801
- color: n = "currentColor"
802
- }) => /* @__PURE__ */ e.jsx(Be, { width: t, height: t, className: s, style: { color: n } }), et = ({
803
- size: t = 24,
804
- className: s = "",
805
- color: n = "currentColor"
806
- }) => /* @__PURE__ */ e.jsx(Xe, { width: t, height: t, className: s, style: { color: n } }), tt = ({
807
- size: t = 24,
808
- className: s = "",
809
- color: n = "currentColor"
810
- }) => /* @__PURE__ */ e.jsx(Re, { width: t, height: t, className: s, style: { color: n } }), nt = ({
811
- size: t = 24,
812
- className: s = "",
813
- color: n = "currentColor"
814
- }) => /* @__PURE__ */ e.jsx(We, { width: t, height: t, className: s, style: { color: n } }), st = ({
815
- size: t = 24,
816
- className: s = "",
817
- color: n = "currentColor"
818
- }) => /* @__PURE__ */ e.jsx(Ve, { width: t, height: t, className: s, style: { color: n } }), at = ({
819
- size: t = 24,
820
- className: s = "",
821
- color: n = "currentColor"
822
- }) => /* @__PURE__ */ e.jsx(
823
- Je,
824
- {
825
- width: t,
826
- height: t,
827
- className: `animate-spin ${s}`,
828
- style: { color: n }
829
- }
830
- ), it = ({
831
- size: t = 24,
832
- className: s = "",
833
- color: n = "currentColor"
834
- }) => /* @__PURE__ */ e.jsx(ue, { width: t, height: t, className: s, style: { color: n } }), lt = ({
835
- size: t = 24,
836
- className: s = "",
837
- color: n = "currentColor"
838
- }) => /* @__PURE__ */ e.jsx(me, { width: t, height: t, className: s, style: { color: n } }), rt = ({
839
- size: t = 24,
840
- className: s = "",
841
- color: n = "currentColor"
842
- }) => /* @__PURE__ */ e.jsx(me, { width: t, height: t, className: s, style: { color: n } }), ot = ({
843
- size: t = 24,
844
- className: s = "",
845
- color: n = "currentColor"
846
- }) => /* @__PURE__ */ e.jsx(ue, { width: t, height: t, className: s, style: { color: n } }), he = ({
847
- size: t = 24,
848
- className: s = "",
849
- color: n = "currentColor"
850
- }) => /* @__PURE__ */ e.jsx(Fe, { width: t, height: t, className: s, style: { color: n } }), ct = ({
851
- size: t = 24,
852
- className: s = "",
853
- color: n = "currentColor"
854
- }) => /* @__PURE__ */ e.jsx(De, { width: t, height: t, className: s, style: { color: n } }), R = {
855
- play: Qe,
856
- pause: _e,
857
- volume: $e,
858
- volumeMuted: et,
859
- fullscreen: tt,
860
- exitFullscreen: nt,
861
- settings: st,
862
- forward: it,
863
- backward: lt,
864
- spinner: at,
865
- subtitle: he
866
- };
867
- function kt({
868
- src: t,
869
- poster: s,
870
- autoPlay: n = !1,
871
- muted: a = !1,
872
- loop: r = !1,
873
- autoHideControls: l = !0,
874
- hideDelay: u = 2500,
875
- theme: o = "dark",
876
- customIcons: d,
877
- showCenterPlayButton: p = !0,
878
- showLoadingSpinner: v = !0,
879
- className: b,
880
- onPlay: N,
881
- onPause: M,
882
- onEnded: z,
883
- onTimeUpdate: T,
884
- onVolumeChange: k,
885
- onSeek: g,
886
- onError: f,
887
- watermark: c,
888
- qualities: w,
889
- showQualitySelector: h = !1,
890
- showSpeedControl: m = !1,
891
- thumbnails: L
892
- }) {
893
- const [j, C] = A(!0), [O, G] = A(!1), [i, E] = A(!1), [Y, I] = A(null), S = D(null), J = D(null), [F, H] = A(!1), [U, P] = A(!1), X = { ...R, ...d }, _ = () => {
894
- l && (S.current && clearTimeout(S.current), C(!0), !U && O && (S.current = setTimeout(() => {
895
- C(!1);
896
- }, u)));
897
- }, ve = () => {
898
- _();
899
- }, fe = () => {
900
- H(!0), C(!0), S.current && clearTimeout(S.current);
901
- }, xe = () => {
902
- H(!1), O && l && !U && (S.current = setTimeout(() => {
903
- C(!1);
904
- }, 500));
905
- }, pe = () => {
906
- P(!0), C(!0), S.current && clearTimeout(S.current);
907
- }, ge = () => {
908
- P(!1), _();
909
- }, re = (q) => {
910
- G(q), q ? (N?.(), _()) : (M?.(), C(!0), S.current && clearTimeout(S.current));
911
- }, be = () => {
912
- E(!0), I(null);
913
- }, je = () => {
914
- E(!1);
915
- }, ye = (q) => {
916
- E(!1), I(q.message || "An error occurred"), f?.(q);
917
- };
918
- B(() => () => {
919
- S.current && clearTimeout(S.current);
920
- }, []);
921
- const we = w && w.length > 0 && (w.find((q) => q.default)?.src || w[0]?.src) || (typeof t == "string" ? t : t[0]);
922
- return /* @__PURE__ */ e.jsx(
923
- "div",
924
- {
925
- ref: J,
926
- className: x(
927
- "minimal-player theme-minimal relative overflow-hidden rounded-lg bg-black",
928
- `theme-minimal-${o}`,
929
- b
930
- ),
931
- "data-theme": o,
932
- onMouseMove: ve,
933
- onMouseEnter: fe,
934
- onMouseLeave: xe,
935
- children: /* @__PURE__ */ e.jsxs(
936
- ce,
937
- {
938
- className: "relative h-full w-full",
939
- autoHide: !1,
940
- enableGestures: !0,
941
- enableMobileOptimizations: !0,
942
- children: [
943
- /* @__PURE__ */ e.jsx(
944
- de,
945
- {
946
- src: we,
947
- poster: s,
948
- autoPlay: n,
949
- muted: a,
950
- loop: r,
951
- playsInline: !0,
952
- crossOrigin: "anonymous",
953
- onPlay: () => re(!0),
954
- onPause: () => re(!1),
955
- onEnded: z,
956
- onTimeUpdate: (q) => {
957
- const $ = q.currentTarget;
958
- T?.($.currentTime);
959
- },
960
- onVolumeChange: (q) => {
961
- const $ = q.currentTarget;
962
- k?.($.volume);
963
- },
964
- onLoadStart: be,
965
- onLoadedData: je,
966
- onError: (q) => ye(new Error("Failed to load video"))
967
- }
968
- ),
969
- v && i && /* @__PURE__ */ e.jsx(Ze, { icon: X.spinner }),
970
- Y && /* @__PURE__ */ e.jsx("div", { className: "absolute inset-0 z-50 flex items-center justify-center bg-black/80", children: /* @__PURE__ */ e.jsxs("div", { className: "text-center", children: [
971
- /* @__PURE__ */ e.jsx("div", { className: "mb-4 text-red-500", children: /* @__PURE__ */ e.jsx("svg", { className: "mx-auto h-12 w-12", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", children: /* @__PURE__ */ e.jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M12 8v4m0 4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z" }) }) }),
972
- /* @__PURE__ */ e.jsx("p", { className: "mb-2 text-lg text-white", children: "Playback Error" }),
973
- /* @__PURE__ */ e.jsx("p", { className: "text-gray-400 text-sm", children: Y })
974
- ] }) }),
975
- c && /* @__PURE__ */ e.jsx(
976
- "div",
977
- {
978
- className: x(
979
- "pointer-events-none absolute z-20",
980
- {
981
- "top-4 left-4": c.position === "top-left",
982
- "top-4 right-4": c.position === "top-right",
983
- "bottom-16 left-4": c.position === "bottom-left",
984
- "right-4 bottom-16": c.position === "bottom-right"
985
- }
986
- ),
987
- style: { opacity: c.opacity || 0.7 },
988
- children: /* @__PURE__ */ e.jsx(
989
- "img",
990
- {
991
- src: c.src,
992
- alt: "",
993
- className: x(
994
- "object-contain",
995
- {
996
- "h-8": c.size === "small",
997
- "h-12": c.size === "medium" || !c.size,
998
- "h-16": c.size === "large"
999
- }
1000
- )
1001
- }
1002
- )
1003
- }
1004
- ),
1005
- p && !O && !i && /* @__PURE__ */ e.jsx(
1006
- Ye,
1007
- {
1008
- visible: !0,
1009
- showCenterButton: !0,
1010
- isPlaying: O,
1011
- icons: X,
1012
- onPlayPause: () => {
1013
- const q = J.current?.querySelector("video");
1014
- q && (O ? q.pause() : q.play());
1015
- }
1016
- }
1017
- ),
1018
- /* @__PURE__ */ e.jsx(
1019
- Ge,
1020
- {
1021
- visible: j || !O || F,
1022
- icons: X,
1023
- isPlaying: O,
1024
- showQualitySelector: h,
1025
- showSpeedControl: m,
1026
- qualities: w,
1027
- thumbnails: L,
1028
- onUserInteractionStart: pe,
1029
- onUserInteractionEnd: ge,
1030
- onSeek: g
1031
- }
1032
- )
1033
- ]
1034
- }
1035
- )
1036
- }
1037
- );
1038
- }
1039
- const dt = function({
1040
- videoRef: s,
1041
- src: n,
1042
- poster: a,
1043
- subtitleSrc: r,
1044
- subtitlesEnabled: l,
1045
- crossOrigin: u,
1046
- onTogglePlay: o
1047
- }) {
1048
- return /* @__PURE__ */ e.jsx(
1049
- "video",
1050
- {
1051
- ref: s,
1052
- src: n,
1053
- poster: a,
1054
- crossOrigin: u,
1055
- className: "h-full w-full object-contain",
1056
- onClick: o,
1057
- children: r && /* @__PURE__ */ e.jsx(
1058
- "track",
1059
- {
1060
- kind: "subtitles",
1061
- src: r,
1062
- default: l
1063
- }
1064
- )
1065
- }
1066
- );
1067
- }, ut = function({
1068
- subtitlesEnabled: s,
1069
- subtitleText: n
1070
- }) {
1071
- return !s || !n ? null : /* @__PURE__ */ e.jsx("div", { className: "pointer-events-none absolute right-0 bottom-20 left-0 px-4 text-center", children: /* @__PURE__ */ e.jsx("div", { className: "inline-block rounded bg-black/75 px-4 py-2 font-medium text-lg text-white", children: n }) });
1072
- }, mt = function({
1073
- isPlaying: s,
1074
- onTogglePlay: n
1075
- }) {
1076
- if (s) return null;
1077
- const a = R.play;
1078
- return /* @__PURE__ */ e.jsx("div", { className: "minimal-center-play cursor-pointer", onClick: n, children: a && /* @__PURE__ */ e.jsx(a, { size: 60 }) });
1079
- }, ht = function({
1080
- currentTime: s,
1081
- duration: n,
1082
- bufferedRanges: a = [],
1083
- isSeeking: r = !1,
1084
- onSeek: l
1085
- }) {
1086
- const [u, o] = A(!1), [d, p] = A(0), [v, b] = A(!1), [N, M] = A({ x: 0, y: 0 }), z = D(null), T = n > 0 ? s / n * 100 : 0, k = (w) => {
1087
- if (n === 0) return;
1088
- const h = w.currentTarget.getBoundingClientRect(), m = (w.clientX - h.left) / h.width, L = Math.max(0, Math.min(n, m * n));
1089
- M({ x: w.clientX - h.left, y: w.clientY - h.top }), b(!0), setTimeout(() => b(!1), 600), l(L);
1090
- }, g = (w) => {
1091
- if (!z.current) return;
1092
- const h = z.current.getBoundingClientRect(), m = (w.clientX - h.left) / h.width * 100;
1093
- p(Math.max(0, Math.min(100, m)));
1094
- }, f = () => o(!0), c = () => o(!1);
1095
- return /* @__PURE__ */ e.jsxs("div", { className: "relative mb-3", children: [
1096
- /* @__PURE__ */ e.jsxs(
1097
- "div",
1098
- {
1099
- ref: z,
1100
- className: x(
1101
- "minimal-seekbar group relative cursor-pointer",
1102
- r && "minimal-seekbar-seeking"
1103
- ),
1104
- onClick: k,
1105
- onMouseMove: g,
1106
- onMouseEnter: f,
1107
- onMouseLeave: c,
1108
- children: [
1109
- a.map((w, h) => {
1110
- const m = n > 0 ? w.start / n * 100 : 0, L = n > 0 ? (w.end - w.start) / n * 100 : 0;
1111
- return /* @__PURE__ */ e.jsx(
1112
- "div",
1113
- {
1114
- className: "minimal-seekbar-buffered",
1115
- style: {
1116
- left: `${m}%`,
1117
- width: `${L}%`
1118
- }
1119
- },
1120
- h
1121
- );
1122
- }),
1123
- /* @__PURE__ */ e.jsx(
1124
- "div",
1125
- {
1126
- className: x(
1127
- "minimal-seekbar-progress",
1128
- r && "minimal-seekbar-progress-seeking"
1129
- ),
1130
- style: { width: `${T}%` }
1131
- }
1132
- ),
1133
- u && !r && /* @__PURE__ */ e.jsx(
1134
- "div",
1135
- {
1136
- className: "minimal-seekbar-hover-indicator",
1137
- style: { left: `${d}%` }
1138
- }
1139
- ),
1140
- /* @__PURE__ */ e.jsx(
1141
- "div",
1142
- {
1143
- className: x(
1144
- "minimal-seekbar-thumb",
1145
- (u || r) && "opacity-100",
1146
- r && "minimal-seekbar-thumb-seeking"
1147
- ),
1148
- style: { left: `${T}%` }
1149
- }
1150
- ),
1151
- v && /* @__PURE__ */ e.jsx(
1152
- "div",
1153
- {
1154
- className: "minimal-seekbar-ripple",
1155
- style: {
1156
- left: N.x,
1157
- top: N.y
1158
- }
1159
- }
1160
- )
1161
- ]
1162
- }
1163
- ),
1164
- r && /* @__PURE__ */ e.jsx("div", { className: "-top-6 -translate-x-1/2 absolute left-1/2 transform", children: /* @__PURE__ */ e.jsx("div", { className: "rounded bg-black/80 px-2 py-1 text-white text-xs backdrop-blur-sm", children: "Seeking..." }) })
1165
- ] });
1166
- }, vt = function({
1167
- isPlaying: s,
1168
- onTogglePlay: n,
1169
- onSeekBackward: a,
1170
- onSeekForward: r
1171
- }) {
1172
- const l = R.play, u = R.pause;
1173
- return /* @__PURE__ */ e.jsxs("div", { className: "flex items-center gap-2", children: [
1174
- /* @__PURE__ */ e.jsx(
1175
- "button",
1176
- {
1177
- className: "minimal-btn size-15",
1178
- onClick: n,
1179
- "aria-label": s ? "Pause" : "Play",
1180
- children: s ? u && /* @__PURE__ */ e.jsx(u, { size: 32 }) : l && /* @__PURE__ */ e.jsx(l, { size: 32 })
1181
- }
1182
- ),
1183
- /* @__PURE__ */ e.jsx(
1184
- "button",
1185
- {
1186
- className: "minimal-btn h-9 w-9",
1187
- onClick: a,
1188
- "aria-label": "Backward 10 seconds",
1189
- title: "Backward 10s (J)",
1190
- children: /* @__PURE__ */ e.jsx(ot, { size: 18 })
1191
- }
1192
- ),
1193
- /* @__PURE__ */ e.jsx(
1194
- "button",
1195
- {
1196
- className: "minimal-btn h-9 w-9",
1197
- onClick: r,
1198
- "aria-label": "Forward 10 seconds",
1199
- title: "Forward 10s (L)",
1200
- children: /* @__PURE__ */ e.jsx(rt, { size: 18 })
1201
- }
1202
- )
1203
- ] });
1204
- }, ft = function({
1205
- volume: s,
1206
- isMuted: n,
1207
- showVolumeSlider: a,
1208
- onToggleMute: r,
1209
- onVolumeChange: l,
1210
- onShowVolumeSlider: u,
1211
- orientation: o = "horizontal",
1212
- className: d
1213
- }) {
1214
- const p = R.volume, v = R.volumeMuted, b = D(null), N = D(null), M = D(!1), [z, T] = K.useState(!1), [k, g] = K.useState(!1), f = D(null);
1215
- V(
1216
- (j) => {
1217
- const C = parseFloat(j.target.value);
1218
- l(C);
1219
- },
1220
- [l]
1221
- );
1222
- const c = V(
1223
- (j, C) => {
1224
- const O = C ? N : b;
1225
- if (!O.current) return;
1226
- const G = O.current.getBoundingClientRect();
1227
- let i;
1228
- C ? i = Math.max(0, Math.min(1, 1 - (j.clientY - G.top) / G.height)) : i = Math.max(0, Math.min(1, (j.clientX - G.left) / G.width)), l(i);
1229
- },
1230
- [l]
1231
- ), w = V((j, C) => {
1232
- j.preventDefault(), j.stopPropagation(), M.current = !0, T(!0), c(j, C);
1233
- }, [c]);
1234
- B(() => {
1235
- const j = (O) => {
1236
- if (!M.current) return;
1237
- const G = o === "vertical" ? N : b;
1238
- if (!G.current) return;
1239
- const i = G.current.getBoundingClientRect();
1240
- let E;
1241
- o === "horizontal" ? E = Math.max(0, Math.min(1, (O.clientX - i.left) / i.width)) : E = Math.max(0, Math.min(1, 1 - (O.clientY - i.top) / i.height)), l(E);
1242
- }, C = () => {
1243
- M.current = !1, T(!1);
1244
- };
1245
- if (z)
1246
- return document.addEventListener("mousemove", j), document.addEventListener("mouseup", C), () => {
1247
- document.removeEventListener("mousemove", j), document.removeEventListener("mouseup", C);
1248
- };
1249
- }, [z, o, l]);
1250
- const h = V(() => {
1251
- f.current && clearTimeout(f.current), g(!0), u(!0);
1252
- }, [u]), m = V(() => {
1253
- f.current = setTimeout(() => {
1254
- M.current || (g(!1), u(!1));
1255
- }, 200);
1256
- }, [u]);
1257
- B(() => () => {
1258
- f.current && clearTimeout(f.current);
1259
- }, []);
1260
- const L = (n ? 0 : s) * 100;
1261
- return /* @__PURE__ */ e.jsxs(
1262
- "div",
1263
- {
1264
- className: x(
1265
- "volume-control-wrapper",
1266
- o === "vertical" ? "relative" : "flex items-center gap-2",
1267
- d
1268
- ),
1269
- onMouseEnter: h,
1270
- onMouseLeave: m,
1271
- children: [
1272
- o === "vertical" && /* @__PURE__ */ e.jsx(
1273
- "div",
1274
- {
1275
- className: x(
1276
- "volume-slider-vertical",
1277
- "-translate-x-1/2 absolute bottom-full left-1/2 mb-2",
1278
- "transition-all duration-300 ease-out",
1279
- a || k || z ? "pointer-events-auto translate-y-0 opacity-100" : "pointer-events-none translate-y-2 opacity-0"
1280
- ),
1281
- children: /* @__PURE__ */ e.jsxs("div", { className: "rounded-lg bg-black/80 p-3 backdrop-blur-sm", children: [
1282
- /* @__PURE__ */ e.jsxs(
1283
- "div",
1284
- {
1285
- ref: N,
1286
- className: "volume-slider-track-vertical group",
1287
- onMouseDown: (j) => w(j, !0),
1288
- onClick: (j) => c(j, !0),
1289
- children: [
1290
- /* @__PURE__ */ e.jsx(
1291
- "div",
1292
- {
1293
- className: "volume-slider-fill-vertical pointer-events-none",
1294
- style: { height: `${L}%` }
1295
- }
1296
- ),
1297
- /* @__PURE__ */ e.jsx(
1298
- "div",
1299
- {
1300
- className: x("volume-slider-thumb-vertical pointer-events-none", z && "active"),
1301
- style: { bottom: `${L}%` }
1302
- }
1303
- )
1304
- ]
1305
- }
1306
- ),
1307
- /* @__PURE__ */ e.jsxs("div", { className: "mt-2 text-center text-white/70 text-xs", children: [
1308
- Math.round(L),
1309
- "%"
1310
- ] })
1311
- ] })
1312
- }
1313
- ),
1314
- /* @__PURE__ */ e.jsx(
1315
- "button",
1316
- {
1317
- className: "minimal-btn h-10 w-10",
1318
- onClick: r,
1319
- "aria-label": n ? "Unmute" : "Mute",
1320
- children: n || s === 0 ? v && /* @__PURE__ */ e.jsx(v, { size: 20 }) : p && /* @__PURE__ */ e.jsx(p, { size: 20 })
1321
- }
1322
- ),
1323
- o === "horizontal" && /* @__PURE__ */ e.jsx(
1324
- "div",
1325
- {
1326
- className: x(
1327
- "volume-slider-horizontal-wrapper",
1328
- "overflow-hidden transition-all duration-300 ease-out",
1329
- a || k || z ? "w-24 opacity-100" : "w-0 opacity-0"
1330
- ),
1331
- children: /* @__PURE__ */ e.jsxs(
1332
- "div",
1333
- {
1334
- ref: b,
1335
- className: "volume-slider-track-horizontal group",
1336
- onMouseDown: (j) => w(j, !1),
1337
- onClick: (j) => c(j, !1),
1338
- children: [
1339
- /* @__PURE__ */ e.jsx(
1340
- "div",
1341
- {
1342
- className: "volume-slider-fill-horizontal pointer-events-none",
1343
- style: { width: `${L}%` }
1344
- }
1345
- ),
1346
- /* @__PURE__ */ e.jsx(
1347
- "div",
1348
- {
1349
- className: x("volume-slider-thumb-horizontal pointer-events-none", z && "active"),
1350
- style: { left: `${L}%` }
1351
- }
1352
- )
1353
- ]
1354
- }
1355
- )
1356
- }
1357
- )
1358
- ]
1359
- }
1360
- );
1361
- }, xt = function({
1362
- currentTime: s,
1363
- duration: n
1364
- }) {
1365
- return /* @__PURE__ */ e.jsxs("div", { className: "font-mono text-sm text-white", children: [
1366
- W(s),
1367
- " / ",
1368
- W(n)
1369
- ] });
1370
- }, pt = function({
1371
- showSettings: s,
1372
- playbackRate: n,
1373
- onToggleSettings: a,
1374
- onChangePlaybackRate: r
1375
- }) {
1376
- const l = [0.25, 0.5, 0.75, 1, 1.25, 1.5, 1.75, 2], u = V((d) => {
1377
- d.stopPropagation(), a();
1378
- }, [a]), o = V((d) => {
1379
- d.stopPropagation();
1380
- }, []);
1381
- return /* @__PURE__ */ e.jsxs("div", { className: "relative", style: { zIndex: s ? 60 : "auto" }, children: [
1382
- /* @__PURE__ */ e.jsx(
1383
- "button",
1384
- {
1385
- className: x("minimal-btn h-9 w-9", s && "text-cyan-500"),
1386
- onClick: u,
1387
- "aria-label": "Settings",
1388
- children: R.settings && /* @__PURE__ */ e.jsx(R.settings, { size: 18 })
1389
- }
1390
- ),
1391
- s && /* @__PURE__ */ e.jsxs(
1392
- "div",
1393
- {
1394
- className: "absolute right-0 mb-2 min-w-[200px] rounded-lg border border-gray-700 bg-gray-900 py-2 shadow-xl",
1395
- style: {
1396
- bottom: "100%",
1397
- zIndex: 1e3
1398
- },
1399
- onClick: o,
1400
- children: [
1401
- /* @__PURE__ */ e.jsx("div", { className: "px-3 py-1 text-gray-400 text-xs uppercase tracking-wider", children: "Speed" }),
1402
- /* @__PURE__ */ e.jsx("div", { className: "px-1", children: l.map((d) => /* @__PURE__ */ e.jsx(
1403
- "button",
1404
- {
1405
- className: x(
1406
- "w-full rounded px-3 py-1.5 text-left text-sm transition-colors hover:bg-gray-800",
1407
- "text-white",
1408
- n === d && "bg-cyan-700/20 text-cyan-400"
1409
- ),
1410
- onClick: () => r(d),
1411
- children: d === 1 ? "Normal" : `${d}x`
1412
- },
1413
- d
1414
- )) })
1415
- ]
1416
- }
1417
- )
1418
- ] });
1419
- }, gt = function({
1420
- subtitleSrc: s,
1421
- subtitlesEnabled: n,
1422
- subtitleTracks: a,
1423
- currentTrackId: r,
1424
- hasSubtitles: l,
1425
- subtitleLoadError: u,
1426
- isFullscreen: o,
1427
- showSettings: d,
1428
- playbackRate: p,
1429
- onToggleSubtitles: v,
1430
- onSelectSubtitleTrack: b,
1431
- onTakeScreenshot: N,
1432
- onToggleFullscreen: M,
1433
- onToggleSettings: z,
1434
- onChangePlaybackRate: T
1435
- }) {
1436
- const [k, g] = A(!1), f = D(null), c = R.fullscreen, w = R.exitFullscreen;
1437
- B(() => {
1438
- const m = (L) => {
1439
- f.current && !f.current.contains(L.target) && g(!1);
1440
- };
1441
- if (k)
1442
- return document.addEventListener("mousedown", m), () => document.removeEventListener("mousedown", m);
1443
- }, [k]);
1444
- const h = () => {
1445
- a && a.length > 0 ? g(!k) : v();
1446
- };
1447
- return /* @__PURE__ */ e.jsxs("div", { className: "flex items-center gap-2", children: [
1448
- l && /* @__PURE__ */ e.jsxs("div", { className: "relative", ref: f, children: [
1449
- /* @__PURE__ */ e.jsx(
1450
- "button",
1451
- {
1452
- className: x(
1453
- "minimal-btn h-9 w-9",
1454
- n && "text-cyan-500",
1455
- u && "text-red-500"
1456
- ),
1457
- onClick: h,
1458
- "aria-label": "Subtitles",
1459
- title: u ? "Subtitle Error" : "Subtitles (C)",
1460
- children: /* @__PURE__ */ e.jsx(he, { size: 18 })
1461
- }
1462
- ),
1463
- k && a && a.length > 0 && /* @__PURE__ */ e.jsxs("div", { className: "absolute right-0 bottom-full mb-2 w-48 rounded-md bg-gray-900/95 py-2 shadow-lg backdrop-blur-sm", children: [
1464
- /* @__PURE__ */ e.jsx("div", { className: "px-3 py-1 font-semibold text-gray-400 text-xs", children: "Subtitles" }),
1465
- /* @__PURE__ */ e.jsx(
1466
- "button",
1467
- {
1468
- className: x(
1469
- "flex w-full items-center px-3 py-1.5 text-gray-300 text-sm hover:bg-gray-800",
1470
- !n && "bg-gray-800 text-cyan-500"
1471
- ),
1472
- onClick: () => {
1473
- b?.(null), g(!1);
1474
- },
1475
- children: "Off"
1476
- }
1477
- ),
1478
- a.map((m) => /* @__PURE__ */ e.jsxs(
1479
- "button",
1480
- {
1481
- className: x(
1482
- "flex w-full items-center px-3 py-1.5 text-gray-300 text-sm hover:bg-gray-800",
1483
- r === m.id && "bg-gray-800 text-cyan-500"
1484
- ),
1485
- onClick: () => {
1486
- b?.(m.id), g(!1);
1487
- },
1488
- children: [
1489
- /* @__PURE__ */ e.jsx("span", { children: m.label }),
1490
- m.language && /* @__PURE__ */ e.jsxs("span", { className: "ml-2 text-gray-500 text-xs", children: [
1491
- "(",
1492
- m.language,
1493
- ")"
1494
- ] })
1495
- ]
1496
- },
1497
- m.id
1498
- )),
1499
- u && /* @__PURE__ */ e.jsx("div", { className: "mt-2 border-gray-800 border-t px-3 py-2", children: /* @__PURE__ */ e.jsx("p", { className: "text-red-400 text-xs", children: "Failed to load subtitles" }) })
1500
- ] })
1501
- ] }),
1502
- /* @__PURE__ */ e.jsx(
1503
- "button",
1504
- {
1505
- className: "minimal-btn h-9 w-9",
1506
- onClick: (m) => N(m.ctrlKey || m.metaKey),
1507
- "aria-label": "Take Screenshot",
1508
- title: "Screenshot (S) - Ctrl+Click to copy",
1509
- children: /* @__PURE__ */ e.jsx(ct, { size: 18 })
1510
- }
1511
- ),
1512
- /* @__PURE__ */ e.jsx(
1513
- pt,
1514
- {
1515
- showSettings: d,
1516
- playbackRate: p,
1517
- onToggleSettings: z,
1518
- onChangePlaybackRate: T
1519
- }
1520
- ),
1521
- /* @__PURE__ */ e.jsx(
1522
- "button",
1523
- {
1524
- className: "minimal-btn h-9 w-9",
1525
- onClick: M,
1526
- "aria-label": o ? "Exit Fullscreen" : "Enter Fullscreen",
1527
- title: "Fullscreen (F)",
1528
- children: o ? w && /* @__PURE__ */ e.jsx(w, { size: 18 }) : c && /* @__PURE__ */ e.jsx(c, { size: 18 })
1529
- }
1530
- )
1531
- ] });
1532
- }, bt = function({
1533
- controlsVisible: s,
1534
- currentTime: n,
1535
- duration: a,
1536
- isPlaying: r,
1537
- volume: l,
1538
- isMuted: u,
1539
- showVolumeSlider: o,
1540
- isFullscreen: d,
1541
- showSettings: p,
1542
- playbackRate: v,
1543
- subtitleSrc: b,
1544
- subtitlesEnabled: N,
1545
- subtitleTracks: M,
1546
- currentTrackId: z,
1547
- hasSubtitles: T,
1548
- subtitleLoadError: k,
1549
- volumeOrientation: g = "horizontal",
1550
- bufferedRanges: f,
1551
- isSeeking: c,
1552
- onSeek: w,
1553
- onTogglePlay: h,
1554
- onSeekBackward: m,
1555
- onSeekForward: L,
1556
- onToggleMute: j,
1557
- onVolumeChange: C,
1558
- onShowVolumeSlider: O,
1559
- onToggleSubtitles: G,
1560
- onSelectSubtitleTrack: i,
1561
- onTakeScreenshot: E,
1562
- onToggleFullscreen: Y,
1563
- onToggleSettings: I,
1564
- onChangePlaybackRate: S
1565
- }) {
1566
- return /* @__PURE__ */ e.jsxs(
1567
- "div",
1568
- {
1569
- className: x(
1570
- "minimal-control-bar",
1571
- "absolute right-0 bottom-0 left-0 z-40",
1572
- "px-6 py-3 transition-all duration-200",
1573
- s ? "minimal-controls-visible" : "minimal-controls-hidden"
1574
- ),
1575
- children: [
1576
- /* @__PURE__ */ e.jsx(
1577
- ht,
1578
- {
1579
- currentTime: n,
1580
- duration: a,
1581
- bufferedRanges: f,
1582
- isSeeking: c,
1583
- onSeek: w
1584
- }
1585
- ),
1586
- /* @__PURE__ */ e.jsxs("div", { className: "flex items-center justify-between", children: [
1587
- /* @__PURE__ */ e.jsxs("div", { className: "flex items-center gap-2", children: [
1588
- /* @__PURE__ */ e.jsx(
1589
- vt,
1590
- {
1591
- isPlaying: r,
1592
- onTogglePlay: h,
1593
- onSeekBackward: m,
1594
- onSeekForward: L
1595
- }
1596
- ),
1597
- /* @__PURE__ */ e.jsx(
1598
- ft,
1599
- {
1600
- volume: l,
1601
- isMuted: u,
1602
- showVolumeSlider: o,
1603
- onToggleMute: j,
1604
- onVolumeChange: C,
1605
- onShowVolumeSlider: O,
1606
- orientation: g
1607
- }
1608
- ),
1609
- /* @__PURE__ */ e.jsx(
1610
- xt,
1611
- {
1612
- currentTime: n,
1613
- duration: a
1614
- }
1615
- )
1616
- ] }),
1617
- /* @__PURE__ */ e.jsx(
1618
- gt,
1619
- {
1620
- subtitleSrc: b,
1621
- subtitlesEnabled: N,
1622
- subtitleTracks: M,
1623
- currentTrackId: z,
1624
- hasSubtitles: T,
1625
- subtitleLoadError: k,
1626
- isFullscreen: d,
1627
- showSettings: p,
1628
- playbackRate: v,
1629
- onToggleSubtitles: G,
1630
- onSelectSubtitleTrack: i,
1631
- onTakeScreenshot: E,
1632
- onToggleFullscreen: Y,
1633
- onToggleSettings: I,
1634
- onChangePlaybackRate: S
1635
- }
1636
- )
1637
- ] })
1638
- ]
1639
- }
1640
- );
1641
- }, jt = "data:image/gif;base64,R0lGODlhgAGAAZECAPr7/ERNVv///wAAACH/C05FVFNDQVBFMi4wAwEAAAAh/wtYTVAgRGF0YVhNUDw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQ1IDc5LjE2MzQ5OSwgMjAxOC8wOC8xMy0xNjo0MDoyMiAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDo5OTk5ODkxZS0wMWE2LTRlMTItYWM1Mi00YTIzMzI1MTViYjQiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MkU2QTk5NkYxM0UzMTFFQzg5RkRCRTMwRTcyQUZCRjIiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MkU2QTk5NkUxM0UzMTFFQzg5RkRCRTMwRTcyQUZCRjIiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTkgKE1hY2ludG9zaCkiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDoxOTQyMDFlMi00OGRjLTQ3OTgtOTFlNi05ZjkyNzhjNTJlZTUiIHN0UmVmOmRvY3VtZW50SUQ9ImFkb2JlOmRvY2lkOnBob3Rvc2hvcDplMjk3YTUwZC00MTM4LWVmNDYtYTY3Ni1kZTkzNDU1ZjNmOTkiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRm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";
1642
- let ae;
1643
- try {
1644
- ae = jt;
1645
- } catch {
1646
- ae = void 0;
1647
- }
1648
- function yt({
1649
- loadingText: t = "Loading...",
1650
- gifSrc: s,
1651
- showFallback: n = !0,
1652
- className: a,
1653
- ...r
1654
- }) {
1655
- const [l, u] = A(!1), [o, d] = A(!1), p = [
1656
- s,
1657
- ae,
1658
- "/mona-loading.gif",
1659
- "./mona-loading.gif",
1660
- "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7"
1661
- // 1x1 transparent gif as last resort
1662
- ].filter(Boolean), [v, b] = A(0), N = p[v], M = () => {
1663
- v < p.length - 1 ? b(v + 1) : u(!0);
1664
- }, z = () => /* @__PURE__ */ e.jsxs("div", { className: "relative h-12 w-12", children: [
1665
- /* @__PURE__ */ e.jsx("div", { className: "absolute inset-0 animate-spin rounded-full bg-gradient-to-r from-cyan-400 via-blue-500 to-cyan-400 opacity-75" }),
1666
- /* @__PURE__ */ e.jsx("div", { className: "absolute inset-1 rounded-full bg-black/90" }),
1667
- /* @__PURE__ */ e.jsx("div", { className: "absolute inset-0 flex items-center justify-center", children: /* @__PURE__ */ e.jsxs("div", { className: "relative", children: [
1668
- /* @__PURE__ */ e.jsx("div", { className: "h-8 w-8 rounded-full border-2 border-white/20" }),
1669
- /* @__PURE__ */ e.jsx("div", { className: "absolute inset-0 h-8 w-8 animate-spin rounded-full border-2 border-transparent border-t-cyan-400" }),
1670
- /* @__PURE__ */ e.jsx("div", { className: "absolute inset-0 flex items-center justify-center", children: /* @__PURE__ */ e.jsx("div", { className: "h-2 w-2 animate-pulse rounded-full bg-cyan-400" }) })
1671
- ] }) })
1672
- ] });
1673
- return /* @__PURE__ */ e.jsxs(
1674
- "div",
1675
- {
1676
- className: oe(
1677
- "flex flex-col items-center justify-center space-y-2 rounded py-2 text-white",
1678
- a
1679
- ),
1680
- ...r,
1681
- children: [
1682
- (!o || l) && n && /* @__PURE__ */ e.jsx(z, {}),
1683
- !l && N && /* @__PURE__ */ e.jsx(
1684
- "img",
1685
- {
1686
- alt: "loading",
1687
- height: 50,
1688
- width: 50,
1689
- src: N,
1690
- onError: M,
1691
- onLoad: () => d(!0),
1692
- className: oe(
1693
- "object-contain",
1694
- !o && "hidden"
1695
- ),
1696
- style: { display: o ? "block" : "none" }
1697
- }
1698
- ),
1699
- /* @__PURE__ */ e.jsx("span", { className: "mt-2 text-sm tracking-wider", children: t })
1700
- ]
1701
- }
1702
- );
1703
- }
1704
- const wt = {
1705
- sm: {
1706
- container: "h-8 w-8",
1707
- spinner: "h-6 w-6 border-2",
1708
- dots: "h-1.5 w-1.5"
1709
- },
1710
- md: {
1711
- container: "h-12 w-12",
1712
- spinner: "h-10 w-10 border-3",
1713
- dots: "h-2 w-2"
1714
- },
1715
- lg: {
1716
- container: "h-16 w-16",
1717
- spinner: "h-14 w-14 border-4",
1718
- dots: "h-2.5 w-2.5"
1719
- },
1720
- xl: {
1721
- container: "h-20 w-20",
1722
- spinner: "h-18 w-18 border-4",
1723
- dots: "h-3 w-3"
1724
- }
1725
- }, le = {
1726
- initial: {
1727
- wrapper: "absolute inset-0 z-50 flex items-center justify-center",
1728
- background: "bg-black/80"
1729
- },
1730
- seeking: {
1731
- wrapper: "absolute inset-0 z-40 flex items-center justify-center",
1732
- background: "bg-black/40"
1733
- },
1734
- buffering: {
1735
- wrapper: "absolute inset-0 z-45 flex items-center justify-center",
1736
- background: "bg-black/60"
1737
- }
1738
- }, Mt = function({
1739
- context: s = "initial",
1740
- message: n,
1741
- className: a,
1742
- textSize: r = "text-sm"
1743
- }) {
1744
- const l = le[s], u = () => {
1745
- if (n) return n;
1746
- switch (s) {
1747
- case "initial":
1748
- return "Loading video...";
1749
- case "seeking":
1750
- return "Seeking...";
1751
- case "buffering":
1752
- return "Buffering...";
1753
- default:
1754
- return "Loading...";
1755
- }
1756
- };
1757
- return /* @__PURE__ */ e.jsx("div", { className: x(l.wrapper, l.background, a), children: /* @__PURE__ */ e.jsx(
1758
- yt,
1759
- {
1760
- loadingText: u(),
1761
- className: x("text-white", r)
1762
- }
1763
- ) });
1764
- }, ee = function({
1765
- variant: s = "animate",
1766
- context: n = "initial",
1767
- size: a = "md",
1768
- color: r,
1769
- message: l,
1770
- showMessage: u = !0,
1771
- className: o,
1772
- style: d
1773
- }) {
1774
- const p = wt[a], v = le[n];
1775
- if (s === "animate")
1776
- return /* @__PURE__ */ e.jsx(
1777
- Mt,
1778
- {
1779
- context: n,
1780
- message: l,
1781
- className: o,
1782
- textSize: a === "sm" ? "text-xs" : a === "lg" ? "text-base" : "text-sm"
1783
- }
1784
- );
1785
- const b = () => {
1786
- switch (s) {
1787
- case "spinner":
1788
- return /* @__PURE__ */ e.jsx(
1789
- "div",
1790
- {
1791
- className: x(
1792
- "minimal-loading-spinner animate-spin rounded-full",
1793
- "border-white/20 border-t-cyan-500",
1794
- p.spinner,
1795
- o
1796
- ),
1797
- style: {
1798
- borderTopColor: r || void 0,
1799
- ...d
1800
- }
1801
- }
1802
- );
1803
- case "dots":
1804
- return /* @__PURE__ */ e.jsx("div", { className: "flex items-center gap-1", children: [0, 1, 2].map((M) => /* @__PURE__ */ e.jsx(
1805
- "div",
1806
- {
1807
- className: x(
1808
- "minimal-loading-dot rounded-full bg-cyan-500",
1809
- p.dots,
1810
- o
1811
- ),
1812
- style: {
1813
- backgroundColor: r || void 0,
1814
- animationDelay: `${M * 150}ms`,
1815
- ...d
1816
- }
1817
- },
1818
- M
1819
- )) });
1820
- case "skeleton":
1821
- return /* @__PURE__ */ e.jsxs("div", { className: x("space-y-3", o), children: [
1822
- /* @__PURE__ */ e.jsx("div", { className: "minimal-loading-skeleton h-4 w-32 rounded bg-white/10" }),
1823
- /* @__PURE__ */ e.jsx("div", { className: "minimal-loading-skeleton h-3 w-24 rounded bg-white/10" }),
1824
- /* @__PURE__ */ e.jsx("div", { className: "minimal-loading-skeleton h-3 w-28 rounded bg-white/10" })
1825
- ] });
1826
- default:
1827
- return null;
1828
- }
1829
- }, N = () => {
1830
- if (l) return l;
1831
- switch (n) {
1832
- case "initial":
1833
- return "Loading video...";
1834
- case "seeking":
1835
- return "Seeking...";
1836
- case "buffering":
1837
- return "Buffering...";
1838
- default:
1839
- return "Loading...";
1840
- }
1841
- };
1842
- return /* @__PURE__ */ e.jsx("div", { className: x(v.wrapper, v.background), children: /* @__PURE__ */ e.jsxs("div", { className: "flex flex-col items-center gap-4", children: [
1843
- /* @__PURE__ */ e.jsx("div", { className: x(p.container, "flex items-center justify-center"), children: b() }),
1844
- u && /* @__PURE__ */ e.jsxs("div", { className: "text-center", children: [
1845
- /* @__PURE__ */ e.jsx("p", { className: "font-medium text-sm text-white/90", children: N() }),
1846
- n === "buffering" && /* @__PURE__ */ e.jsx("p", { className: "mt-1 text-white/60 text-xs", children: "Please wait..." })
1847
- ] })
1848
- ] }) });
1849
- }, te = function({
1850
- children: s,
1851
- context: n = "initial",
1852
- className: a
1853
- }) {
1854
- const r = le[n];
1855
- return /* @__PURE__ */ e.jsx("div", { className: x(r.wrapper, r.background, a), children: s });
1856
- }, ne = {
1857
- Initial: (t) => /* @__PURE__ */ e.jsx(ee, { variant: "animate", context: "initial", size: "md", ...t }),
1858
- Seeking: (t) => /* @__PURE__ */ e.jsx(ee, { variant: "animate", context: "seeking", size: "sm", ...t }),
1859
- Buffering: (t) => /* @__PURE__ */ e.jsx(ee, { variant: "animate", context: "buffering", size: "sm", ...t })
1860
- };
1861
- function Ct(t) {
1862
- const {
1863
- src: s,
1864
- poster: n,
1865
- className: a,
1866
- subtitleSrc: r,
1867
- subtitleTracks: l,
1868
- crossOrigin: u,
1869
- volumeOrientation: o = "horizontal",
1870
- loadingComponent: d = void 0,
1871
- showLoadingState: p = !0,
1872
- loadingProps: v = {}
1873
- } = t, b = D(null), [N, M] = A(!1), [z, T] = A(1), { videoRef: k, state: g, controls: f } = Ee(b), {
1874
- subtitlesEnabled: c,
1875
- currentSubtitle: w,
1876
- toggleSubtitles: h,
1877
- getCurrentSubtitle: m,
1878
- setCurrentSubtitle: L,
1879
- selectSubtitleTrack: j,
1880
- availableTracks: C,
1881
- currentTrackId: O,
1882
- loadError: G,
1883
- hasSubtitles: i
1884
- } = ke({
1885
- subtitleSrc: r,
1886
- subtitleTracks: l,
1887
- onLoadError: (P) => console.error("Subtitle load error:", P)
1888
- }), { takeScreenshot: E } = Oe(k), {
1889
- controlsVisible: Y,
1890
- showVolumeSlider: I,
1891
- setShowVolumeSlider: S,
1892
- handleMouseMove: J,
1893
- handleMouseEnter: F,
1894
- handleMouseLeave: H
1895
- } = Ce(g.isPlaying, N);
1896
- B(() => {
1897
- if (c) {
1898
- const P = m(g.currentTime);
1899
- L(P);
1900
- }
1901
- }, [g.currentTime, c, m, L]);
1902
- const U = (P) => {
1903
- k.current && (k.current.playbackRate = P, T(P), M(!1));
1904
- };
1905
- return Ae({
1906
- videoControls: f,
1907
- toggleSubtitles: h,
1908
- takeScreenshot: E,
1909
- duration: g.duration
1910
- }), /* @__PURE__ */ e.jsxs(
1911
- "div",
1912
- {
1913
- ref: b,
1914
- className: x("minimal-player relative rounded-lg bg-black", a),
1915
- style: { overflow: "hidden" },
1916
- onMouseMove: J,
1917
- onMouseEnter: F,
1918
- onMouseLeave: H,
1919
- children: [
1920
- /* @__PURE__ */ e.jsx(
1921
- dt,
1922
- {
1923
- videoRef: k,
1924
- src: s,
1925
- poster: n,
1926
- subtitleSrc: r,
1927
- subtitlesEnabled: c,
1928
- crossOrigin: u,
1929
- onTogglePlay: f.togglePlay
1930
- }
1931
- ),
1932
- /* @__PURE__ */ e.jsx(
1933
- ut,
1934
- {
1935
- subtitlesEnabled: c,
1936
- subtitleText: w
1937
- }
1938
- ),
1939
- !g.isLoading && /* @__PURE__ */ e.jsx(
1940
- mt,
1941
- {
1942
- isPlaying: g.isPlaying,
1943
- onTogglePlay: f.togglePlay
1944
- }
1945
- ),
1946
- /* @__PURE__ */ e.jsx(
1947
- bt,
1948
- {
1949
- controlsVisible: Y,
1950
- currentTime: g.currentTime,
1951
- duration: g.duration,
1952
- isPlaying: g.isPlaying,
1953
- volume: g.volume,
1954
- isMuted: g.isMuted,
1955
- showVolumeSlider: I,
1956
- isFullscreen: g.isFullscreen,
1957
- showSettings: N,
1958
- playbackRate: z,
1959
- subtitleSrc: r,
1960
- subtitlesEnabled: c,
1961
- subtitleTracks: C,
1962
- currentTrackId: O,
1963
- hasSubtitles: i,
1964
- subtitleLoadError: G,
1965
- volumeOrientation: o,
1966
- bufferedRanges: g.bufferedRanges,
1967
- isSeeking: g.isSeeking,
1968
- onSeek: f.seekTo,
1969
- onTogglePlay: f.togglePlay,
1970
- onSeekBackward: f.seekBackward,
1971
- onSeekForward: f.seekForward,
1972
- onToggleMute: f.toggleMute,
1973
- onVolumeChange: f.setVolume,
1974
- onShowVolumeSlider: S,
1975
- onToggleSubtitles: h,
1976
- onSelectSubtitleTrack: j,
1977
- onTakeScreenshot: E,
1978
- onToggleFullscreen: f.toggleFullscreen,
1979
- onToggleSettings: () => M(!N),
1980
- onChangePlaybackRate: U
1981
- }
1982
- ),
1983
- p && /* @__PURE__ */ e.jsxs(e.Fragment, { children: [
1984
- g.isLoading && !g.isSeeking && !g.isBuffering && (d ? /* @__PURE__ */ e.jsx(te, { context: "initial", children: /* @__PURE__ */ e.jsx(d, { context: "initial" }) }) : /* @__PURE__ */ e.jsx(ne.Initial, { ...v })),
1985
- g.isSeeking && (d ? /* @__PURE__ */ e.jsx(te, { context: "seeking", children: /* @__PURE__ */ e.jsx(d, { context: "seeking" }) }) : /* @__PURE__ */ e.jsx(ne.Seeking, { ...v })),
1986
- g.isBuffering && !g.isSeeking && (d ? /* @__PURE__ */ e.jsx(te, { context: "buffering", children: /* @__PURE__ */ e.jsx(d, { context: "buffering" }) }) : /* @__PURE__ */ e.jsx(ne.Buffering, { ...v }))
1987
- ] })
1988
- ]
1989
- }
1990
- );
1991
- }
1992
- export {
1993
- ce as M,
1994
- Ct as S,
1995
- kt as a,
1996
- Qe as b,
1997
- _e as c,
1998
- R as d,
1999
- $e as e,
2000
- tt as f
2001
- };
2002
- //# sourceMappingURL=minimal-components-BmqRefl1.js.map