@therealtinhtute/baroiplayer 1.0.7 → 1.1.0

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 (1003) hide show
  1. package/LICENSE +2 -2
  2. package/README.md +15 -15
  3. package/dist/context/media.js +2 -0
  4. package/dist/context/media.js.map +1 -0
  5. package/dist/context/media.mjs +15 -0
  6. package/dist/context/media.mjs.map +1 -0
  7. package/dist/context/store.js +2 -0
  8. package/dist/context/store.js.map +1 -0
  9. package/dist/context/store.mjs +5 -0
  10. package/dist/context/store.mjs.map +1 -0
  11. package/dist/context-BYwDoSRX.js +1172 -0
  12. package/dist/context-BYwDoSRX.js.map +1 -0
  13. package/dist/context-eNS62_ac.cjs +23 -0
  14. package/dist/context-eNS62_ac.cjs.map +1 -0
  15. package/dist/core-events-B1iM2F46.cjs +2 -0
  16. package/dist/core-events-B1iM2F46.cjs.map +1 -0
  17. package/dist/core-events-DunPHKRE.js +484 -0
  18. package/dist/core-events-DunPHKRE.js.map +1 -0
  19. package/dist/core-plugins-CROGvQUy.js +686 -0
  20. package/dist/core-plugins-CROGvQUy.js.map +1 -0
  21. package/dist/core-plugins-DtsHBOtF.cjs +2 -0
  22. package/dist/core-plugins-DtsHBOtF.cjs.map +1 -0
  23. package/dist/core.js +37 -0
  24. package/dist/core.js.map +1 -0
  25. package/dist/core.mjs +1233 -0
  26. package/dist/core.mjs.map +1 -0
  27. package/dist/enhanced-components-DUw2KrmQ.js +1142 -0
  28. package/dist/enhanced-components-DUw2KrmQ.js.map +1 -0
  29. package/dist/enhanced-components-DXBCHU0v.cjs +2 -0
  30. package/dist/enhanced-components-DXBCHU0v.cjs.map +1 -0
  31. package/dist/hooks-BW-JjVgP.cjs +4 -0
  32. package/dist/hooks-BW-JjVgP.cjs.map +1 -0
  33. package/dist/hooks-CyX6De5M.js +1693 -0
  34. package/dist/hooks-CyX6De5M.js.map +1 -0
  35. package/dist/index.css +1 -102
  36. package/dist/index.js +112 -27
  37. package/dist/index.js.map +1 -0
  38. package/dist/index.mjs +6275 -17
  39. package/dist/index.mjs.map +1 -0
  40. package/dist/minimal-components-Bdcpxav5.cjs +2 -0
  41. package/dist/minimal-components-Bdcpxav5.cjs.map +1 -0
  42. package/dist/minimal-components-DlRK7Qu_.js +1927 -0
  43. package/dist/minimal-components-DlRK7Qu_.js.map +1 -0
  44. package/dist/minimal-components.css +1 -589
  45. package/dist/mona-loading.gif +0 -0
  46. package/dist/performance-monitor-C5k6FDXw.js +301 -0
  47. package/dist/performance-monitor-C5k6FDXw.js.map +1 -0
  48. package/dist/performance-monitor-lJmuUjQQ.cjs +2 -0
  49. package/dist/performance-monitor-lJmuUjQQ.cjs.map +1 -0
  50. package/dist/utils-CFOue_9K.cjs +9 -0
  51. package/dist/utils-CFOue_9K.cjs.map +1 -0
  52. package/dist/utils-Dzpl2ArK.js +2844 -0
  53. package/dist/utils-Dzpl2ArK.js.map +1 -0
  54. package/dist/utils.js +2 -0
  55. package/dist/utils.js.map +1 -0
  56. package/dist/utils.mjs +11 -0
  57. package/dist/utils.mjs.map +1 -0
  58. package/package.json +11 -40
  59. package/src/adapters/videojs-adapter.tsx +441 -441
  60. package/src/components/AnimateLoading.tsx +85 -93
  61. package/src/components/LoadingState.tsx +199 -208
  62. package/src/components/__tests__/media-player-accessibility.test.tsx +510 -0
  63. package/src/components/__tests__/media-player-react19.test.tsx +457 -0
  64. package/src/components/accessibility/keyboard-help-overlay.tsx +199 -207
  65. package/src/components/basic/index.ts +28 -28
  66. package/src/components/enhanced/advanced-features.tsx +49 -54
  67. package/src/components/enhanced/debug-panel.tsx +148 -122
  68. package/src/components/enhanced/enhanced-controls.tsx +117 -120
  69. package/src/components/enhanced/enhanced-media-player.tsx +228 -214
  70. package/src/components/enhanced/error-handling.tsx +50 -57
  71. package/src/components/enhanced/index.ts +27 -27
  72. package/src/components/enhanced/media-player-enhanced.tsx +117 -83
  73. package/src/components/examples/basic-video-player.tsx +35 -40
  74. package/src/components/examples/enhanced-controls-example.tsx +16 -30
  75. package/src/components/examples/enhanced-media-player-example.tsx +196 -187
  76. package/src/components/examples/loading-states-demo.tsx +113 -113
  77. package/src/components/examples/react-19-demo.tsx +88 -116
  78. package/src/components/examples/volume-orientation-demo.tsx +77 -85
  79. package/src/components/icon-demo.tsx +189 -202
  80. package/src/components/icons/svg-icons/ArrowLeftIcon.tsx +13 -13
  81. package/src/components/icons/svg-icons/ArrowRightIcon.tsx +13 -13
  82. package/src/components/icons/svg-icons/AudioIcon.tsx +16 -16
  83. package/src/components/icons/svg-icons/BackwardIcon.tsx +7 -7
  84. package/src/components/icons/svg-icons/CameraIcon.tsx +13 -13
  85. package/src/components/icons/svg-icons/CheckIcon.tsx +13 -13
  86. package/src/components/icons/svg-icons/EnablePiPIcon.tsx +13 -13
  87. package/src/components/icons/svg-icons/ForwardIcon.tsx +7 -7
  88. package/src/components/icons/svg-icons/FullscreenEnterIcon.tsx +18 -18
  89. package/src/components/icons/svg-icons/FullscreenExitIcon.tsx +18 -18
  90. package/src/components/icons/svg-icons/LoadingIcon.tsx +27 -27
  91. package/src/components/icons/svg-icons/PauseIcon.tsx +18 -18
  92. package/src/components/icons/svg-icons/PlayIcon.tsx +16 -16
  93. package/src/components/icons/svg-icons/PlaybackSpeedIcon.tsx +18 -18
  94. package/src/components/icons/svg-icons/QualityIcon.tsx +16 -16
  95. package/src/components/icons/svg-icons/SettingsIcon.tsx +7 -7
  96. package/src/components/icons/svg-icons/SliderIcon.tsx +16 -16
  97. package/src/components/icons/svg-icons/SubtitleIcon.tsx +16 -16
  98. package/src/components/icons/svg-icons/SubtitleOffIcon.tsx +20 -20
  99. package/src/components/icons/svg-icons/UnPiPIcon.tsx +13 -13
  100. package/src/components/icons/svg-icons/VolumeMutedIcon.tsx +11 -11
  101. package/src/components/icons/svg-icons/VolumeOneIcon.tsx +17 -17
  102. package/src/components/icons/svg-icons/VolumeThreeIcon.tsx +11 -11
  103. package/src/components/icons/svg-icons/VolumeTwoIcon.tsx +11 -11
  104. package/src/components/legacy.tsx +8 -14
  105. package/src/components/media-metadata-display.tsx +78 -79
  106. package/src/components/media-player-controls.tsx +37 -40
  107. package/src/components/media-player-error.tsx +2 -2
  108. package/src/components/media-player-fullscreen.tsx +2 -2
  109. package/src/components/media-player-hls.tsx +89 -89
  110. package/src/components/media-player-play.tsx +2 -2
  111. package/src/components/media-player-root.tsx +20 -22
  112. package/src/components/media-player-seek.tsx +1 -1
  113. package/src/components/media-player-tooltip.tsx +1 -1
  114. package/src/components/media-player-video.tsx +28 -6
  115. package/src/components/media-player-volume.tsx +3 -3
  116. package/src/components/media-player.tsx +209 -174
  117. package/src/components/media-suspense.tsx +71 -89
  118. package/src/components/player-settings-form.tsx +143 -148
  119. package/src/components/react-player-wrapper.tsx +23 -23
  120. package/src/components/simple-video-player.tsx +53 -51
  121. package/src/components/ui/blur-poster.tsx +93 -0
  122. package/src/components/ui/empty-state.tsx +91 -0
  123. package/src/components/ui/enhanced-seek-bar.tsx +75 -56
  124. package/src/components/ui/error-state.tsx +124 -0
  125. package/src/components/ui/fullscreen-button.tsx +71 -50
  126. package/src/components/ui/loading-skeleton.tsx +107 -0
  127. package/src/components/ui/media-resource-preloader.tsx +265 -198
  128. package/src/components/ui/offline-message.tsx +98 -0
  129. package/src/components/ui/play-button.tsx +79 -87
  130. package/src/components/ui/seek-bar.tsx +170 -140
  131. package/src/components/ui/time-display.tsx +33 -12
  132. package/src/components/ui/volume-control.tsx +91 -44
  133. package/src/components/unified/base-media-player.tsx +45 -51
  134. package/src/components/unified/media-player.tsx +3 -3
  135. package/src/components/variants/minimal/AccessibleMinimalPlayer.tsx +508 -502
  136. package/src/components/variants/minimal/EnhancedMinimalMediaPlayer.tsx +108 -87
  137. package/src/components/variants/minimal/MinimalControls.tsx +100 -118
  138. package/src/components/variants/minimal/MinimalLoading.tsx +19 -23
  139. package/src/components/variants/minimal/MinimalMediaPlayer.tsx +283 -280
  140. package/src/components/variants/minimal/MinimalOverlay.tsx +43 -49
  141. package/src/components/variants/minimal/MinimalPlayButton.tsx +44 -53
  142. package/src/components/variants/minimal/MinimalSeekBar.tsx +130 -140
  143. package/src/components/variants/minimal/MinimalVolumeControl.tsx +59 -64
  144. package/src/components/variants/minimal/SimpleMinimalPlayer.tsx +29 -32
  145. package/src/components/variants/minimal/components/CenterPlayButton.tsx +1 -1
  146. package/src/components/variants/minimal/components/ControlBar.tsx +7 -11
  147. package/src/components/variants/minimal/components/EnhancedSettingsMenu.tsx +381 -330
  148. package/src/components/variants/minimal/components/PlaybackControls.tsx +6 -11
  149. package/src/components/variants/minimal/components/RightControls.tsx +8 -17
  150. package/src/components/variants/minimal/components/SeekBar.tsx +16 -20
  151. package/src/components/variants/minimal/components/SettingsDropdown.tsx +12 -14
  152. package/src/components/variants/minimal/components/SubtitleDisplay.tsx +1 -1
  153. package/src/components/variants/minimal/components/TimeDisplay.tsx +2 -5
  154. package/src/components/variants/minimal/components/VideoElement.tsx +3 -10
  155. package/src/components/variants/minimal/components/VolumeControl.tsx +42 -39
  156. package/src/components/video-player.tsx +10 -10
  157. package/src/context/__tests__/media-store.test.ts +509 -0
  158. package/src/context/error-handling.ts +106 -102
  159. package/src/context/media-context.tsx +56 -10
  160. package/src/context/media-provider.tsx +16 -17
  161. package/src/context/media-store.ts +68 -60
  162. package/src/context/persistence.ts +74 -65
  163. package/src/core/events/event-system.ts +422 -416
  164. package/src/core/events/hooks.ts +275 -252
  165. package/src/core/events/index.ts +14 -14
  166. package/src/core/events/middleware.ts +269 -252
  167. package/src/core/index.ts +8 -8
  168. package/src/core/optimization/bundle-optimizer.tsx +65 -60
  169. package/src/core/performance/cicd.ts +91 -89
  170. package/src/core/performance/index.ts +22 -22
  171. package/src/core/performance/media-loading-optimizer.ts +518 -512
  172. package/src/core/performance/performance-budgets.ts +414 -409
  173. package/src/core/performance/performance-monitor.tsx +451 -439
  174. package/src/core/performance/performance-testing.ts +439 -437
  175. package/src/core/plugins/__tests__/registry.test.ts +595 -0
  176. package/src/core/plugins/base-plugin.ts +197 -196
  177. package/src/core/plugins/enhanced-plugin-system.ts +136 -136
  178. package/src/core/plugins/examples/analytics-plugin.ts +229 -230
  179. package/src/core/plugins/index.ts +26 -26
  180. package/src/core/plugins/registry.ts +315 -323
  181. package/src/core/plugins/types.ts +97 -105
  182. package/src/core/plugins/utils.ts +292 -291
  183. package/src/core/progressive-loading.tsx +297 -288
  184. package/src/core/providers/enhanced-hls-provider.ts +118 -90
  185. package/src/core/providers/lazy-provider.tsx +51 -0
  186. package/src/core/providers/service-provider.tsx +104 -108
  187. package/src/core/utils.tsx +22 -26
  188. package/src/features/media-session/media-session-manager.ts +406 -402
  189. package/src/features/picture-in-picture/pip-manager.ts +364 -365
  190. package/src/features/playlist/playlist-manager.ts +597 -585
  191. package/src/features/subtitles/subtitle-manager.ts +424 -430
  192. package/src/features/subtitles/subtitle-parser.ts +274 -273
  193. package/src/features/thumbnails/thumbnail-generator.ts +504 -502
  194. package/src/hooks/__tests__/use-media-player.test.ts +712 -0
  195. package/src/hooks/__tests__/use-media-state.test.tsx +316 -0
  196. package/src/hooks/accessibility/index.ts +20 -20
  197. package/src/hooks/accessibility/use-accessibility-preferences.ts +177 -175
  198. package/src/hooks/accessibility/use-focus-management.ts +170 -163
  199. package/src/hooks/accessibility/use-keyboard-shortcuts.ts +132 -124
  200. package/src/hooks/accessibility/use-screen-reader.ts +191 -161
  201. package/src/hooks/core/index.ts +30 -30
  202. package/src/hooks/legacy.ts +3 -9
  203. package/src/hooks/use-buffer-health.ts +218 -0
  204. package/src/hooks/use-enhanced-media-player.ts +74 -82
  205. package/src/hooks/use-focus-trap.tsx +162 -0
  206. package/src/hooks/use-intelligent-preloading.ts +236 -232
  207. package/src/hooks/use-keyboard-controls.ts +80 -80
  208. package/src/hooks/use-keyboard-shortcuts.ts +255 -0
  209. package/src/hooks/use-media-actions.ts +81 -72
  210. package/src/hooks/use-media-metadata.ts +75 -73
  211. package/src/hooks/use-media-optimistic.ts +145 -151
  212. package/src/hooks/use-media-player.ts +109 -107
  213. package/src/hooks/use-media-state.ts +63 -59
  214. package/src/hooks/use-memory-optimization.ts +119 -117
  215. package/src/hooks/use-network-status.ts +124 -0
  216. package/src/hooks/use-optimistic-controls.ts +91 -88
  217. package/src/hooks/use-optimized-media.ts +76 -56
  218. package/src/hooks/use-smart-preload.ts +230 -0
  219. package/src/hooks/use-touch-gestures.ts +427 -383
  220. package/src/hooks/useEnhancedSubtitles.ts +245 -245
  221. package/src/hooks/useKeyboardShortcuts.ts +52 -52
  222. package/src/hooks/useMediaControls.ts +22 -22
  223. package/src/hooks/useScreenshot.ts +51 -47
  224. package/src/hooks/useSubtitles.ts +53 -53
  225. package/src/hooks/useVideoPlayer.ts +61 -61
  226. package/src/icons/components/FullscreenIcon.tsx +34 -35
  227. package/src/icons/components/SettingsIcon.tsx +35 -36
  228. package/src/icons/components/animated/LoadingIcon.tsx +25 -41
  229. package/src/icons/components/animated/PlayPauseIcon.tsx +38 -46
  230. package/src/icons/components/media/PauseIcon.tsx +36 -37
  231. package/src/icons/components/media/PlayIcon.tsx +35 -36
  232. package/src/icons/components/volume/VolumeIcon.tsx +36 -37
  233. package/src/icons/components/volume/VolumeOffIcon.tsx +36 -37
  234. package/src/icons/index.ts +38 -38
  235. package/src/icons/provider.tsx +40 -46
  236. package/src/icons/types.ts +51 -31
  237. package/src/index-enhanced.ts +10 -10
  238. package/src/index-legacy.ts +3 -4
  239. package/src/index.css +80 -80
  240. package/src/index.ts +8 -23
  241. package/src/lib/__tests__/async-utils.test.ts +291 -0
  242. package/src/lib/async-utils.ts +194 -0
  243. package/src/lib/deprecation.ts +4 -4
  244. package/src/lib/index.ts +3 -2
  245. package/src/lib/utils.ts +3 -3
  246. package/src/styles/globals.css +3 -3
  247. package/src/styles/minimal-player.css +606 -574
  248. package/src/styles/pixel-art.css +23 -28
  249. package/src/styles/videojs.css +43 -43
  250. package/src/test/accessibility-utils.ts +208 -0
  251. package/src/test/browser-simulation.ts +235 -0
  252. package/src/test/media-mocks.ts +156 -0
  253. package/src/test/performance-utils.ts +192 -0
  254. package/src/test/setup.ts +241 -44
  255. package/src/types/events.ts +30 -30
  256. package/src/types/formats.ts +56 -72
  257. package/src/types/index.ts +5 -40
  258. package/src/types/videojs-plugins.d.ts +6 -6
  259. package/dist/index.d.ts +0 -1425
  260. package/dist/package.json +0 -62
  261. package/dist/src/adapters/videojs-adapter.d.ts +0 -38
  262. package/dist/src/adapters/videojs-adapter.tsx +0 -470
  263. package/dist/src/components/AnimateLoading.d.ts +0 -9
  264. package/dist/src/components/AnimateLoading.tsx +0 -115
  265. package/dist/src/components/LoadingState.d.ts +0 -33
  266. package/dist/src/components/LoadingState.tsx +0 -248
  267. package/dist/src/components/accessibility/keyboard-help-overlay.d.ts +0 -17
  268. package/dist/src/components/accessibility/keyboard-help-overlay.tsx +0 -213
  269. package/dist/src/components/audio-player.d.ts +0 -3
  270. package/dist/src/components/audio-player.tsx +0 -85
  271. package/dist/src/components/basic/index.d.ts +0 -26
  272. package/dist/src/components/basic/index.ts +0 -37
  273. package/dist/src/components/enhanced/advanced-features.d.ts +0 -45
  274. package/dist/src/components/enhanced/advanced-features.tsx +0 -316
  275. package/dist/src/components/enhanced/debug-panel.d.ts +0 -70
  276. package/dist/src/components/enhanced/debug-panel.tsx +0 -422
  277. package/dist/src/components/enhanced/enhanced-controls.d.ts +0 -50
  278. package/dist/src/components/enhanced/enhanced-controls.tsx +0 -600
  279. package/dist/src/components/enhanced/enhanced-media-player.d.ts +0 -26
  280. package/dist/src/components/enhanced/enhanced-media-player.tsx +0 -509
  281. package/dist/src/components/enhanced/error-handling.d.ts +0 -36
  282. package/dist/src/components/enhanced/error-handling.tsx +0 -345
  283. package/dist/src/components/enhanced/index.d.ts +0 -7
  284. package/dist/src/components/enhanced/index.ts +0 -39
  285. package/dist/src/components/enhanced/media-player-enhanced.d.ts +0 -21
  286. package/dist/src/components/enhanced/media-player-enhanced.tsx +0 -349
  287. package/dist/src/components/examples/basic-video-player.d.ts +0 -10
  288. package/dist/src/components/examples/basic-video-player.tsx +0 -55
  289. package/dist/src/components/examples/custom-controls-example.d.ts +0 -10
  290. package/dist/src/components/examples/custom-controls-example.tsx +0 -63
  291. package/dist/src/components/examples/enhanced-controls-example.d.ts +0 -9
  292. package/dist/src/components/examples/enhanced-controls-example.tsx +0 -114
  293. package/dist/src/components/examples/enhanced-media-player-example.d.ts +0 -9
  294. package/dist/src/components/examples/enhanced-media-player-example.tsx +0 -293
  295. package/dist/src/components/examples/loading-states-demo.d.ts +0 -2
  296. package/dist/src/components/examples/loading-states-demo.tsx +0 -142
  297. package/dist/src/components/examples/react-19-demo.d.ts +0 -10
  298. package/dist/src/components/examples/react-19-demo.tsx +0 -381
  299. package/dist/src/components/examples/volume-orientation-demo.d.ts +0 -2
  300. package/dist/src/components/examples/volume-orientation-demo.tsx +0 -114
  301. package/dist/src/components/icon-demo.d.ts +0 -2
  302. package/dist/src/components/icon-demo.tsx +0 -209
  303. package/dist/src/components/icons/index.d.ts +0 -36
  304. package/dist/src/components/icons/index.tsx +0 -166
  305. package/dist/src/components/icons/svg-icons/ArrowLeftIcon.d.ts +0 -4
  306. package/dist/src/components/icons/svg-icons/ArrowLeftIcon.tsx +0 -18
  307. package/dist/src/components/icons/svg-icons/ArrowRightIcon.d.ts +0 -4
  308. package/dist/src/components/icons/svg-icons/ArrowRightIcon.tsx +0 -18
  309. package/dist/src/components/icons/svg-icons/AudioIcon.d.ts +0 -4
  310. package/dist/src/components/icons/svg-icons/AudioIcon.tsx +0 -22
  311. package/dist/src/components/icons/svg-icons/BackwardIcon.d.ts +0 -4
  312. package/dist/src/components/icons/svg-icons/BackwardIcon.tsx +0 -12
  313. package/dist/src/components/icons/svg-icons/CameraIcon.d.ts +0 -4
  314. package/dist/src/components/icons/svg-icons/CameraIcon.tsx +0 -19
  315. package/dist/src/components/icons/svg-icons/CheckIcon.d.ts +0 -4
  316. package/dist/src/components/icons/svg-icons/CheckIcon.tsx +0 -19
  317. package/dist/src/components/icons/svg-icons/EnablePiPIcon.d.ts +0 -4
  318. package/dist/src/components/icons/svg-icons/EnablePiPIcon.tsx +0 -17
  319. package/dist/src/components/icons/svg-icons/ForwardIcon.d.ts +0 -4
  320. package/dist/src/components/icons/svg-icons/ForwardIcon.tsx +0 -12
  321. package/dist/src/components/icons/svg-icons/FullscreenEnterIcon.d.ts +0 -4
  322. package/dist/src/components/icons/svg-icons/FullscreenEnterIcon.tsx +0 -23
  323. package/dist/src/components/icons/svg-icons/FullscreenExitIcon.d.ts +0 -4
  324. package/dist/src/components/icons/svg-icons/FullscreenExitIcon.tsx +0 -23
  325. package/dist/src/components/icons/svg-icons/LoadingIcon.d.ts +0 -4
  326. package/dist/src/components/icons/svg-icons/LoadingIcon.tsx +0 -32
  327. package/dist/src/components/icons/svg-icons/PauseIcon.d.ts +0 -4
  328. package/dist/src/components/icons/svg-icons/PauseIcon.tsx +0 -23
  329. package/dist/src/components/icons/svg-icons/PlayIcon.d.ts +0 -4
  330. package/dist/src/components/icons/svg-icons/PlayIcon.tsx +0 -21
  331. package/dist/src/components/icons/svg-icons/PlaybackSpeedIcon.d.ts +0 -4
  332. package/dist/src/components/icons/svg-icons/PlaybackSpeedIcon.tsx +0 -23
  333. package/dist/src/components/icons/svg-icons/QualityIcon.d.ts +0 -4
  334. package/dist/src/components/icons/svg-icons/QualityIcon.tsx +0 -21
  335. package/dist/src/components/icons/svg-icons/SettingsIcon.d.ts +0 -4
  336. package/dist/src/components/icons/svg-icons/SettingsIcon.tsx +0 -12
  337. package/dist/src/components/icons/svg-icons/SliderIcon.d.ts +0 -4
  338. package/dist/src/components/icons/svg-icons/SliderIcon.tsx +0 -21
  339. package/dist/src/components/icons/svg-icons/SubtitleIcon.d.ts +0 -4
  340. package/dist/src/components/icons/svg-icons/SubtitleIcon.tsx +0 -21
  341. package/dist/src/components/icons/svg-icons/SubtitleOffIcon.d.ts +0 -4
  342. package/dist/src/components/icons/svg-icons/SubtitleOffIcon.tsx +0 -25
  343. package/dist/src/components/icons/svg-icons/UnPiPIcon.d.ts +0 -4
  344. package/dist/src/components/icons/svg-icons/UnPiPIcon.tsx +0 -17
  345. package/dist/src/components/icons/svg-icons/VolumeMutedIcon.d.ts +0 -4
  346. package/dist/src/components/icons/svg-icons/VolumeMutedIcon.tsx +0 -16
  347. package/dist/src/components/icons/svg-icons/VolumeOneIcon.d.ts +0 -4
  348. package/dist/src/components/icons/svg-icons/VolumeOneIcon.tsx +0 -22
  349. package/dist/src/components/icons/svg-icons/VolumeThreeIcon.d.ts +0 -4
  350. package/dist/src/components/icons/svg-icons/VolumeThreeIcon.tsx +0 -16
  351. package/dist/src/components/icons/svg-icons/VolumeTwoIcon.d.ts +0 -4
  352. package/dist/src/components/icons/svg-icons/VolumeTwoIcon.tsx +0 -16
  353. package/dist/src/components/legacy.d.ts +0 -13
  354. package/dist/src/components/legacy.tsx +0 -93
  355. package/dist/src/components/media-metadata-display.d.ts +0 -11
  356. package/dist/src/components/media-metadata-display.tsx +0 -100
  357. package/dist/src/components/media-player-audio.d.ts +0 -9
  358. package/dist/src/components/media-player-audio.tsx +0 -39
  359. package/dist/src/components/media-player-controls.d.ts +0 -23
  360. package/dist/src/components/media-player-controls.tsx +0 -226
  361. package/dist/src/components/media-player-error.d.ts +0 -16
  362. package/dist/src/components/media-player-error.tsx +0 -163
  363. package/dist/src/components/media-player-fullscreen.d.ts +0 -12
  364. package/dist/src/components/media-player-fullscreen.tsx +0 -109
  365. package/dist/src/components/media-player-hls.d.ts +0 -23
  366. package/dist/src/components/media-player-hls.tsx +0 -111
  367. package/dist/src/components/media-player-loading.d.ts +0 -12
  368. package/dist/src/components/media-player-loading.tsx +0 -76
  369. package/dist/src/components/media-player-play.d.ts +0 -11
  370. package/dist/src/components/media-player-play.tsx +0 -75
  371. package/dist/src/components/media-player-root.d.ts +0 -28
  372. package/dist/src/components/media-player-root.tsx +0 -340
  373. package/dist/src/components/media-player-seek.d.ts +0 -15
  374. package/dist/src/components/media-player-seek.tsx +0 -168
  375. package/dist/src/components/media-player-time.d.ts +0 -12
  376. package/dist/src/components/media-player-time.tsx +0 -99
  377. package/dist/src/components/media-player-tooltip.d.ts +0 -13
  378. package/dist/src/components/media-player-tooltip.tsx +0 -58
  379. package/dist/src/components/media-player-video.d.ts +0 -9
  380. package/dist/src/components/media-player-video.tsx +0 -39
  381. package/dist/src/components/media-player-volume.d.ts +0 -13
  382. package/dist/src/components/media-player-volume.tsx +0 -155
  383. package/dist/src/components/media-player.d.ts +0 -3
  384. package/dist/src/components/media-player.tsx +0 -257
  385. package/dist/src/components/media-suspense.d.ts +0 -78
  386. package/dist/src/components/media-suspense.tsx +0 -362
  387. package/dist/src/components/player-settings-form.d.ts +0 -8
  388. package/dist/src/components/player-settings-form.tsx +0 -163
  389. package/dist/src/components/react-player-wrapper.d.ts +0 -64
  390. package/dist/src/components/react-player-wrapper.tsx +0 -651
  391. package/dist/src/components/simple-video-player.d.ts +0 -9
  392. package/dist/src/components/simple-video-player.tsx +0 -60
  393. package/dist/src/components/ui/button.tsx +0 -49
  394. package/dist/src/components/ui/dropdown-menu.tsx +0 -137
  395. package/dist/src/components/ui/enhanced-seek-bar.d.ts +0 -3
  396. package/dist/src/components/ui/enhanced-seek-bar.tsx +0 -235
  397. package/dist/src/components/ui/fullscreen-button.d.ts +0 -3
  398. package/dist/src/components/ui/fullscreen-button.tsx +0 -60
  399. package/dist/src/components/ui/icons.tsx +0 -174
  400. package/dist/src/components/ui/media-resource-preloader.d.ts +0 -21
  401. package/dist/src/components/ui/media-resource-preloader.tsx +0 -393
  402. package/dist/src/components/ui/play-button.d.ts +0 -3
  403. package/dist/src/components/ui/play-button.tsx +0 -107
  404. package/dist/src/components/ui/seek-bar.d.ts +0 -3
  405. package/dist/src/components/ui/seek-bar.tsx +0 -161
  406. package/dist/src/components/ui/slider.tsx +0 -55
  407. package/dist/src/components/ui/time-display.d.ts +0 -3
  408. package/dist/src/components/ui/time-display.tsx +0 -40
  409. package/dist/src/components/ui/tooltip.tsx +0 -131
  410. package/dist/src/components/ui/volume-control.d.ts +0 -3
  411. package/dist/src/components/ui/volume-control.tsx +0 -143
  412. package/dist/src/components/unified/base-media-player.d.ts +0 -18
  413. package/dist/src/components/unified/base-media-player.tsx +0 -246
  414. package/dist/src/components/unified/media-player.d.ts +0 -37
  415. package/dist/src/components/unified/media-player.tsx +0 -75
  416. package/dist/src/components/variants/minimal/AccessibleMinimalPlayer.d.ts +0 -42
  417. package/dist/src/components/variants/minimal/AccessibleMinimalPlayer.tsx +0 -561
  418. package/dist/src/components/variants/minimal/EnhancedMinimalMediaPlayer.d.ts +0 -44
  419. package/dist/src/components/variants/minimal/EnhancedMinimalMediaPlayer.tsx +0 -552
  420. package/dist/src/components/variants/minimal/MinimalControls.d.ts +0 -19
  421. package/dist/src/components/variants/minimal/MinimalControls.tsx +0 -142
  422. package/dist/src/components/variants/minimal/MinimalLoading.d.ts +0 -10
  423. package/dist/src/components/variants/minimal/MinimalLoading.tsx +0 -32
  424. package/dist/src/components/variants/minimal/MinimalMediaPlayer.d.ts +0 -38
  425. package/dist/src/components/variants/minimal/MinimalMediaPlayer.tsx +0 -315
  426. package/dist/src/components/variants/minimal/MinimalOverlay.d.ts +0 -11
  427. package/dist/src/components/variants/minimal/MinimalOverlay.tsx +0 -64
  428. package/dist/src/components/variants/minimal/MinimalPlayButton.d.ts +0 -9
  429. package/dist/src/components/variants/minimal/MinimalPlayButton.tsx +0 -65
  430. package/dist/src/components/variants/minimal/MinimalSeekBar.d.ts +0 -7
  431. package/dist/src/components/variants/minimal/MinimalSeekBar.tsx +0 -150
  432. package/dist/src/components/variants/minimal/MinimalVolumeControl.d.ts +0 -7
  433. package/dist/src/components/variants/minimal/MinimalVolumeControl.tsx +0 -80
  434. package/dist/src/components/variants/minimal/SimpleMinimalPlayer.d.ts +0 -22
  435. package/dist/src/components/variants/minimal/SimpleMinimalPlayer.tsx +0 -209
  436. package/dist/src/components/variants/minimal/components/CenterPlayButton.d.ts +0 -7
  437. package/dist/src/components/variants/minimal/components/CenterPlayButton.tsx +0 -22
  438. package/dist/src/components/variants/minimal/components/ControlBar.d.ts +0 -43
  439. package/dist/src/components/variants/minimal/components/ControlBar.tsx +0 -146
  440. package/dist/src/components/variants/minimal/components/EnhancedSettingsMenu.d.ts +0 -24
  441. package/dist/src/components/variants/minimal/components/EnhancedSettingsMenu.tsx +0 -361
  442. package/dist/src/components/variants/minimal/components/PlaybackControls.d.ts +0 -9
  443. package/dist/src/components/variants/minimal/components/PlaybackControls.tsx +0 -51
  444. package/dist/src/components/variants/minimal/components/RightControls.d.ts +0 -25
  445. package/dist/src/components/variants/minimal/components/RightControls.tsx +0 -173
  446. package/dist/src/components/variants/minimal/components/SeekBar.d.ts +0 -11
  447. package/dist/src/components/variants/minimal/components/SeekBar.tsx +0 -131
  448. package/dist/src/components/variants/minimal/components/SettingsDropdown.d.ts +0 -9
  449. package/dist/src/components/variants/minimal/components/SettingsDropdown.tsx +0 -70
  450. package/dist/src/components/variants/minimal/components/SubtitleDisplay.d.ts +0 -7
  451. package/dist/src/components/variants/minimal/components/SubtitleDisplay.tsx +0 -21
  452. package/dist/src/components/variants/minimal/components/TimeDisplay.d.ts +0 -7
  453. package/dist/src/components/variants/minimal/components/TimeDisplay.tsx +0 -18
  454. package/dist/src/components/variants/minimal/components/VideoElement.d.ts +0 -13
  455. package/dist/src/components/variants/minimal/components/VideoElement.tsx +0 -40
  456. package/dist/src/components/variants/minimal/components/VolumeControl.d.ts +0 -13
  457. package/dist/src/components/variants/minimal/components/VolumeControl.tsx +0 -217
  458. package/dist/src/components/variants/minimal/index.d.ts +0 -17
  459. package/dist/src/components/variants/minimal/index.ts +0 -23
  460. package/dist/src/components/video-player.d.ts +0 -3
  461. package/dist/src/components/video-player.tsx +0 -100
  462. package/dist/src/context/error-handling.d.ts +0 -72
  463. package/dist/src/context/error-handling.ts +0 -394
  464. package/dist/src/context/media-context.d.ts +0 -104
  465. package/dist/src/context/media-context.tsx +0 -208
  466. package/dist/src/context/media-provider.d.ts +0 -26
  467. package/dist/src/context/media-provider.tsx +0 -265
  468. package/dist/src/context/media-store.d.ts +0 -33
  469. package/dist/src/context/media-store.ts +0 -379
  470. package/dist/src/context/persistence.d.ts +0 -83
  471. package/dist/src/context/persistence.ts +0 -453
  472. package/dist/src/core/events/event-system.d.ts +0 -170
  473. package/dist/src/core/events/event-system.ts +0 -442
  474. package/dist/src/core/events/hooks.d.ts +0 -33
  475. package/dist/src/core/events/hooks.ts +0 -302
  476. package/dist/src/core/events/index.d.ts +0 -6
  477. package/dist/src/core/events/index.ts +0 -22
  478. package/dist/src/core/events/middleware.d.ts +0 -39
  479. package/dist/src/core/events/middleware.ts +0 -269
  480. package/dist/src/core/index.d.ts +0 -8
  481. package/dist/src/core/index.ts +0 -22
  482. package/dist/src/core/optimization/bundle-optimizer.d.ts +0 -44
  483. package/dist/src/core/optimization/bundle-optimizer.tsx +0 -308
  484. package/dist/src/core/performance/cicd.d.ts +0 -8
  485. package/dist/src/core/performance/cicd.ts +0 -96
  486. package/dist/src/core/performance/index.d.ts +0 -10
  487. package/dist/src/core/performance/index.ts +0 -38
  488. package/dist/src/core/performance/media-loading-optimizer.d.ts +0 -105
  489. package/dist/src/core/performance/media-loading-optimizer.ts +0 -538
  490. package/dist/src/core/performance/performance-budgets.d.ts +0 -68
  491. package/dist/src/core/performance/performance-budgets.ts +0 -432
  492. package/dist/src/core/performance/performance-monitor.d.ts +0 -95
  493. package/dist/src/core/performance/performance-monitor.tsx +0 -476
  494. package/dist/src/core/performance/performance-testing.d.ts +0 -69
  495. package/dist/src/core/performance/performance-testing.ts +0 -459
  496. package/dist/src/core/plugins/base-plugin.d.ts +0 -52
  497. package/dist/src/core/plugins/base-plugin.ts +0 -224
  498. package/dist/src/core/plugins/enhanced-plugin-system.d.ts +0 -160
  499. package/dist/src/core/plugins/enhanced-plugin-system.ts +0 -417
  500. package/dist/src/core/plugins/examples/analytics-plugin.d.ts +0 -30
  501. package/dist/src/core/plugins/examples/analytics-plugin.ts +0 -242
  502. package/dist/src/core/plugins/index.d.ts +0 -8
  503. package/dist/src/core/plugins/index.ts +0 -39
  504. package/dist/src/core/plugins/registry.d.ts +0 -31
  505. package/dist/src/core/plugins/registry.ts +0 -327
  506. package/dist/src/core/plugins/types.d.ts +0 -101
  507. package/dist/src/core/plugins/types.ts +0 -159
  508. package/dist/src/core/plugins/utils.d.ts +0 -38
  509. package/dist/src/core/plugins/utils.ts +0 -316
  510. package/dist/src/core/progressive-loading.d.ts +0 -88
  511. package/dist/src/core/progressive-loading.tsx +0 -322
  512. package/dist/src/core/providers/enhanced-hls-provider.d.ts +0 -50
  513. package/dist/src/core/providers/enhanced-hls-provider.ts +0 -308
  514. package/dist/src/core/providers/service-provider.d.ts +0 -49
  515. package/dist/src/core/providers/service-provider.tsx +0 -168
  516. package/dist/src/core/utils.d.ts +0 -25
  517. package/dist/src/core/utils.tsx +0 -38
  518. package/dist/src/features/media-session/media-session-manager.d.ts +0 -132
  519. package/dist/src/features/media-session/media-session-manager.ts +0 -429
  520. package/dist/src/features/picture-in-picture/pip-manager.d.ts +0 -94
  521. package/dist/src/features/picture-in-picture/pip-manager.ts +0 -429
  522. package/dist/src/features/playlist/playlist-manager.d.ts +0 -208
  523. package/dist/src/features/playlist/playlist-manager.ts +0 -606
  524. package/dist/src/features/subtitles/subtitle-manager.d.ts +0 -136
  525. package/dist/src/features/subtitles/subtitle-manager.ts +0 -441
  526. package/dist/src/features/subtitles/subtitle-parser.d.ts +0 -60
  527. package/dist/src/features/subtitles/subtitle-parser.ts +0 -280
  528. package/dist/src/features/thumbnails/thumbnail-generator.d.ts +0 -136
  529. package/dist/src/features/thumbnails/thumbnail-generator.ts +0 -519
  530. package/dist/src/hooks/accessibility/index.d.ts +0 -5
  531. package/dist/src/hooks/accessibility/index.ts +0 -27
  532. package/dist/src/hooks/accessibility/use-accessibility-preferences.d.ts +0 -14
  533. package/dist/src/hooks/accessibility/use-accessibility-preferences.ts +0 -188
  534. package/dist/src/hooks/accessibility/use-focus-management.d.ts +0 -31
  535. package/dist/src/hooks/accessibility/use-focus-management.ts +0 -176
  536. package/dist/src/hooks/accessibility/use-keyboard-shortcuts.d.ts +0 -38
  537. package/dist/src/hooks/accessibility/use-keyboard-shortcuts.ts +0 -144
  538. package/dist/src/hooks/accessibility/use-screen-reader.d.ts +0 -22
  539. package/dist/src/hooks/accessibility/use-screen-reader.ts +0 -182
  540. package/dist/src/hooks/core/index.d.ts +0 -18
  541. package/dist/src/hooks/core/index.ts +0 -47
  542. package/dist/src/hooks/legacy.d.ts +0 -18
  543. package/dist/src/hooks/legacy.ts +0 -27
  544. package/dist/src/hooks/use-enhanced-media-player.d.ts +0 -88
  545. package/dist/src/hooks/use-enhanced-media-player.ts +0 -485
  546. package/dist/src/hooks/use-intelligent-preloading.d.ts +0 -66
  547. package/dist/src/hooks/use-intelligent-preloading.ts +0 -363
  548. package/dist/src/hooks/use-keyboard-controls.d.ts +0 -13
  549. package/dist/src/hooks/use-keyboard-controls.ts +0 -115
  550. package/dist/src/hooks/use-media-actions.d.ts +0 -62
  551. package/dist/src/hooks/use-media-actions.ts +0 -175
  552. package/dist/src/hooks/use-media-metadata.d.ts +0 -11
  553. package/dist/src/hooks/use-media-metadata.ts +0 -89
  554. package/dist/src/hooks/use-media-optimistic.d.ts +0 -36
  555. package/dist/src/hooks/use-media-optimistic.ts +0 -270
  556. package/dist/src/hooks/use-media-player.d.ts +0 -31
  557. package/dist/src/hooks/use-media-player.ts +0 -310
  558. package/dist/src/hooks/use-media-state.d.ts +0 -17
  559. package/dist/src/hooks/use-media-state.ts +0 -190
  560. package/dist/src/hooks/use-memory-optimization.d.ts +0 -40
  561. package/dist/src/hooks/use-memory-optimization.ts +0 -358
  562. package/dist/src/hooks/use-mobile.ts +0 -125
  563. package/dist/src/hooks/use-optimistic-controls.d.ts +0 -22
  564. package/dist/src/hooks/use-optimistic-controls.ts +0 -92
  565. package/dist/src/hooks/use-optimized-media.d.ts +0 -46
  566. package/dist/src/hooks/use-optimized-media.ts +0 -263
  567. package/dist/src/hooks/use-touch-gestures.d.ts +0 -47
  568. package/dist/src/hooks/use-touch-gestures.ts +0 -417
  569. package/dist/src/hooks/useEnhancedSubtitles.d.ts +0 -39
  570. package/dist/src/hooks/useEnhancedSubtitles.ts +0 -258
  571. package/dist/src/hooks/useKeyboardShortcuts.d.ts +0 -10
  572. package/dist/src/hooks/useKeyboardShortcuts.ts +0 -74
  573. package/dist/src/hooks/useMediaControls.d.ts +0 -9
  574. package/dist/src/hooks/useMediaControls.ts +0 -52
  575. package/dist/src/hooks/useScreenshot.d.ts +0 -4
  576. package/dist/src/hooks/useScreenshot.ts +0 -57
  577. package/dist/src/hooks/useSubtitles.d.ts +0 -8
  578. package/dist/src/hooks/useSubtitles.ts +0 -91
  579. package/dist/src/hooks/useVideoPlayer.d.ts +0 -32
  580. package/dist/src/hooks/useVideoPlayer.ts +0 -232
  581. package/dist/src/icons/components/FullscreenIcon.d.ts +0 -3
  582. package/dist/src/icons/components/FullscreenIcon.tsx +0 -37
  583. package/dist/src/icons/components/SettingsIcon.d.ts +0 -3
  584. package/dist/src/icons/components/SettingsIcon.tsx +0 -38
  585. package/dist/src/icons/components/animated/LoadingIcon.d.ts +0 -3
  586. package/dist/src/icons/components/animated/LoadingIcon.tsx +0 -43
  587. package/dist/src/icons/components/animated/PlayPauseIcon.d.ts +0 -7
  588. package/dist/src/icons/components/animated/PlayPauseIcon.tsx +0 -50
  589. package/dist/src/icons/components/media/PauseIcon.d.ts +0 -3
  590. package/dist/src/icons/components/media/PauseIcon.tsx +0 -39
  591. package/dist/src/icons/components/media/PlayIcon.d.ts +0 -3
  592. package/dist/src/icons/components/media/PlayIcon.tsx +0 -38
  593. package/dist/src/icons/components/volume/VolumeIcon.d.ts +0 -3
  594. package/dist/src/icons/components/volume/VolumeIcon.tsx +0 -39
  595. package/dist/src/icons/components/volume/VolumeOffIcon.d.ts +0 -3
  596. package/dist/src/icons/components/volume/VolumeOffIcon.tsx +0 -39
  597. package/dist/src/icons/index.d.ts +0 -28
  598. package/dist/src/icons/index.ts +0 -56
  599. package/dist/src/icons/provider.d.ts +0 -13
  600. package/dist/src/icons/provider.tsx +0 -64
  601. package/dist/src/icons/types.d.ts +0 -18
  602. package/dist/src/icons/types.ts +0 -40
  603. package/dist/src/index-enhanced.d.ts +0 -13
  604. package/dist/src/index-enhanced.ts +0 -35
  605. package/dist/src/index-legacy.d.ts +0 -81
  606. package/dist/src/index-legacy.ts +0 -327
  607. package/dist/src/index.css +0 -102
  608. package/dist/src/index.d.ts +0 -38
  609. package/dist/src/index.minimal.d.ts +0 -2
  610. package/dist/src/index.minimal.ts +0 -4
  611. package/dist/src/index.ts +0 -216
  612. package/dist/src/lib/deprecation.d.ts +0 -7
  613. package/dist/src/lib/deprecation.ts +0 -51
  614. package/dist/src/lib/format-time.d.ts +0 -9
  615. package/dist/src/lib/format-time.ts +0 -37
  616. package/dist/src/lib/index.d.ts +0 -3
  617. package/dist/src/lib/index.ts +0 -3
  618. package/dist/src/lib/utils.d.ts +0 -3
  619. package/dist/src/lib/utils.ts +0 -6
  620. package/dist/src/styles/globals.css +0 -462
  621. package/dist/src/styles/minimal-player.css +0 -589
  622. package/dist/src/styles/pixel-art.css +0 -46
  623. package/dist/src/styles/videojs.css +0 -100
  624. package/dist/src/test/setup.d.ts +0 -2
  625. package/dist/src/test/setup.ts +0 -79
  626. package/dist/src/types/events.d.ts +0 -41
  627. package/dist/src/types/events.ts +0 -47
  628. package/dist/src/types/formats.d.ts +0 -45
  629. package/dist/src/types/formats.ts +0 -95
  630. package/dist/src/types/index.d.ts +0 -128
  631. package/dist/src/types/index.ts +0 -225
  632. package/dist/src/types/videojs-plugins.d.ts +0 -14
  633. package/dist/styles/globals.css +0 -462
  634. package/dist/styles/minimal-player.css +0 -589
  635. package/dist/styles/pixel-art.css +0 -46
  636. package/dist/styles/videojs.css +0 -100
  637. package/src/adapters/videojs-adapter.d.ts +0 -38
  638. package/src/adapters/videojs-adapter.d.ts.map +0 -1
  639. package/src/components/AnimateLoading.d.ts +0 -9
  640. package/src/components/AnimateLoading.d.ts.map +0 -1
  641. package/src/components/LoadingState.d.ts +0 -33
  642. package/src/components/LoadingState.d.ts.map +0 -1
  643. package/src/components/accessibility/keyboard-help-overlay.d.ts +0 -17
  644. package/src/components/accessibility/keyboard-help-overlay.d.ts.map +0 -1
  645. package/src/components/audio-player.d.ts +0 -3
  646. package/src/components/audio-player.d.ts.map +0 -1
  647. package/src/components/basic/index.d.ts +0 -26
  648. package/src/components/basic/index.d.ts.map +0 -1
  649. package/src/components/enhanced/advanced-features.d.ts +0 -45
  650. package/src/components/enhanced/advanced-features.d.ts.map +0 -1
  651. package/src/components/enhanced/debug-panel.d.ts +0 -70
  652. package/src/components/enhanced/debug-panel.d.ts.map +0 -1
  653. package/src/components/enhanced/enhanced-controls.d.ts +0 -50
  654. package/src/components/enhanced/enhanced-controls.d.ts.map +0 -1
  655. package/src/components/enhanced/enhanced-media-player.d.ts +0 -26
  656. package/src/components/enhanced/enhanced-media-player.d.ts.map +0 -1
  657. package/src/components/enhanced/error-handling.d.ts +0 -36
  658. package/src/components/enhanced/error-handling.d.ts.map +0 -1
  659. package/src/components/enhanced/index.d.ts +0 -7
  660. package/src/components/enhanced/index.d.ts.map +0 -1
  661. package/src/components/enhanced/media-player-enhanced.d.ts +0 -21
  662. package/src/components/enhanced/media-player-enhanced.d.ts.map +0 -1
  663. package/src/components/examples/basic-video-player.d.ts +0 -10
  664. package/src/components/examples/basic-video-player.d.ts.map +0 -1
  665. package/src/components/examples/custom-controls-example.d.ts +0 -10
  666. package/src/components/examples/custom-controls-example.d.ts.map +0 -1
  667. package/src/components/examples/enhanced-controls-example.d.ts +0 -9
  668. package/src/components/examples/enhanced-controls-example.d.ts.map +0 -1
  669. package/src/components/examples/enhanced-media-player-example.d.ts +0 -9
  670. package/src/components/examples/enhanced-media-player-example.d.ts.map +0 -1
  671. package/src/components/examples/loading-states-demo.d.ts +0 -2
  672. package/src/components/examples/loading-states-demo.d.ts.map +0 -1
  673. package/src/components/examples/react-19-demo.d.ts +0 -10
  674. package/src/components/examples/react-19-demo.d.ts.map +0 -1
  675. package/src/components/examples/volume-orientation-demo.d.ts +0 -2
  676. package/src/components/examples/volume-orientation-demo.d.ts.map +0 -1
  677. package/src/components/icon-demo.d.ts +0 -2
  678. package/src/components/icon-demo.d.ts.map +0 -1
  679. package/src/components/icons/index.d.ts +0 -36
  680. package/src/components/icons/index.d.ts.map +0 -1
  681. package/src/components/icons/svg-icons/ArrowLeftIcon.d.ts +0 -4
  682. package/src/components/icons/svg-icons/ArrowLeftIcon.d.ts.map +0 -1
  683. package/src/components/icons/svg-icons/ArrowRightIcon.d.ts +0 -4
  684. package/src/components/icons/svg-icons/ArrowRightIcon.d.ts.map +0 -1
  685. package/src/components/icons/svg-icons/AudioIcon.d.ts +0 -4
  686. package/src/components/icons/svg-icons/AudioIcon.d.ts.map +0 -1
  687. package/src/components/icons/svg-icons/BackwardIcon.d.ts +0 -4
  688. package/src/components/icons/svg-icons/BackwardIcon.d.ts.map +0 -1
  689. package/src/components/icons/svg-icons/CameraIcon.d.ts +0 -4
  690. package/src/components/icons/svg-icons/CameraIcon.d.ts.map +0 -1
  691. package/src/components/icons/svg-icons/CheckIcon.d.ts +0 -4
  692. package/src/components/icons/svg-icons/CheckIcon.d.ts.map +0 -1
  693. package/src/components/icons/svg-icons/EnablePiPIcon.d.ts +0 -4
  694. package/src/components/icons/svg-icons/EnablePiPIcon.d.ts.map +0 -1
  695. package/src/components/icons/svg-icons/ForwardIcon.d.ts +0 -4
  696. package/src/components/icons/svg-icons/ForwardIcon.d.ts.map +0 -1
  697. package/src/components/icons/svg-icons/FullscreenEnterIcon.d.ts +0 -4
  698. package/src/components/icons/svg-icons/FullscreenEnterIcon.d.ts.map +0 -1
  699. package/src/components/icons/svg-icons/FullscreenExitIcon.d.ts +0 -4
  700. package/src/components/icons/svg-icons/FullscreenExitIcon.d.ts.map +0 -1
  701. package/src/components/icons/svg-icons/LoadingIcon.d.ts +0 -4
  702. package/src/components/icons/svg-icons/LoadingIcon.d.ts.map +0 -1
  703. package/src/components/icons/svg-icons/PauseIcon.d.ts +0 -4
  704. package/src/components/icons/svg-icons/PauseIcon.d.ts.map +0 -1
  705. package/src/components/icons/svg-icons/PlayIcon.d.ts +0 -4
  706. package/src/components/icons/svg-icons/PlayIcon.d.ts.map +0 -1
  707. package/src/components/icons/svg-icons/PlaybackSpeedIcon.d.ts +0 -4
  708. package/src/components/icons/svg-icons/PlaybackSpeedIcon.d.ts.map +0 -1
  709. package/src/components/icons/svg-icons/QualityIcon.d.ts +0 -4
  710. package/src/components/icons/svg-icons/QualityIcon.d.ts.map +0 -1
  711. package/src/components/icons/svg-icons/SettingsIcon.d.ts +0 -4
  712. package/src/components/icons/svg-icons/SettingsIcon.d.ts.map +0 -1
  713. package/src/components/icons/svg-icons/SliderIcon.d.ts +0 -4
  714. package/src/components/icons/svg-icons/SliderIcon.d.ts.map +0 -1
  715. package/src/components/icons/svg-icons/SubtitleIcon.d.ts +0 -4
  716. package/src/components/icons/svg-icons/SubtitleIcon.d.ts.map +0 -1
  717. package/src/components/icons/svg-icons/SubtitleOffIcon.d.ts +0 -4
  718. package/src/components/icons/svg-icons/SubtitleOffIcon.d.ts.map +0 -1
  719. package/src/components/icons/svg-icons/UnPiPIcon.d.ts +0 -4
  720. package/src/components/icons/svg-icons/UnPiPIcon.d.ts.map +0 -1
  721. package/src/components/icons/svg-icons/VolumeMutedIcon.d.ts +0 -4
  722. package/src/components/icons/svg-icons/VolumeMutedIcon.d.ts.map +0 -1
  723. package/src/components/icons/svg-icons/VolumeOneIcon.d.ts +0 -4
  724. package/src/components/icons/svg-icons/VolumeOneIcon.d.ts.map +0 -1
  725. package/src/components/icons/svg-icons/VolumeThreeIcon.d.ts +0 -4
  726. package/src/components/icons/svg-icons/VolumeThreeIcon.d.ts.map +0 -1
  727. package/src/components/icons/svg-icons/VolumeTwoIcon.d.ts +0 -4
  728. package/src/components/icons/svg-icons/VolumeTwoIcon.d.ts.map +0 -1
  729. package/src/components/legacy.d.ts +0 -13
  730. package/src/components/legacy.d.ts.map +0 -1
  731. package/src/components/media-metadata-display.d.ts +0 -11
  732. package/src/components/media-metadata-display.d.ts.map +0 -1
  733. package/src/components/media-player-audio.d.ts +0 -9
  734. package/src/components/media-player-audio.d.ts.map +0 -1
  735. package/src/components/media-player-controls.d.ts +0 -23
  736. package/src/components/media-player-controls.d.ts.map +0 -1
  737. package/src/components/media-player-error.d.ts +0 -16
  738. package/src/components/media-player-error.d.ts.map +0 -1
  739. package/src/components/media-player-fullscreen.d.ts +0 -12
  740. package/src/components/media-player-fullscreen.d.ts.map +0 -1
  741. package/src/components/media-player-hls.d.ts +0 -23
  742. package/src/components/media-player-hls.d.ts.map +0 -1
  743. package/src/components/media-player-loading.d.ts +0 -12
  744. package/src/components/media-player-loading.d.ts.map +0 -1
  745. package/src/components/media-player-play.d.ts +0 -11
  746. package/src/components/media-player-play.d.ts.map +0 -1
  747. package/src/components/media-player-root.d.ts +0 -28
  748. package/src/components/media-player-root.d.ts.map +0 -1
  749. package/src/components/media-player-seek.d.ts +0 -15
  750. package/src/components/media-player-seek.d.ts.map +0 -1
  751. package/src/components/media-player-time.d.ts +0 -12
  752. package/src/components/media-player-time.d.ts.map +0 -1
  753. package/src/components/media-player-tooltip.d.ts +0 -13
  754. package/src/components/media-player-tooltip.d.ts.map +0 -1
  755. package/src/components/media-player-video.d.ts +0 -9
  756. package/src/components/media-player-video.d.ts.map +0 -1
  757. package/src/components/media-player-volume.d.ts +0 -13
  758. package/src/components/media-player-volume.d.ts.map +0 -1
  759. package/src/components/media-player.d.ts +0 -3
  760. package/src/components/media-player.d.ts.map +0 -1
  761. package/src/components/media-suspense.d.ts +0 -78
  762. package/src/components/media-suspense.d.ts.map +0 -1
  763. package/src/components/player-settings-form.d.ts +0 -8
  764. package/src/components/player-settings-form.d.ts.map +0 -1
  765. package/src/components/react-player-wrapper.d.ts +0 -64
  766. package/src/components/react-player-wrapper.d.ts.map +0 -1
  767. package/src/components/simple-video-player.d.ts +0 -9
  768. package/src/components/simple-video-player.d.ts.map +0 -1
  769. package/src/components/ui/button.tsx +0 -49
  770. package/src/components/ui/dropdown-menu.tsx +0 -137
  771. package/src/components/ui/enhanced-seek-bar.d.ts +0 -3
  772. package/src/components/ui/enhanced-seek-bar.d.ts.map +0 -1
  773. package/src/components/ui/fullscreen-button.d.ts +0 -3
  774. package/src/components/ui/fullscreen-button.d.ts.map +0 -1
  775. package/src/components/ui/icons.tsx +0 -174
  776. package/src/components/ui/media-resource-preloader.d.ts +0 -21
  777. package/src/components/ui/media-resource-preloader.d.ts.map +0 -1
  778. package/src/components/ui/play-button.d.ts +0 -3
  779. package/src/components/ui/play-button.d.ts.map +0 -1
  780. package/src/components/ui/seek-bar.d.ts +0 -3
  781. package/src/components/ui/seek-bar.d.ts.map +0 -1
  782. package/src/components/ui/slider.tsx +0 -55
  783. package/src/components/ui/time-display.d.ts +0 -3
  784. package/src/components/ui/time-display.d.ts.map +0 -1
  785. package/src/components/ui/tooltip.tsx +0 -131
  786. package/src/components/ui/volume-control.d.ts +0 -3
  787. package/src/components/ui/volume-control.d.ts.map +0 -1
  788. package/src/components/unified/base-media-player.d.ts +0 -18
  789. package/src/components/unified/base-media-player.d.ts.map +0 -1
  790. package/src/components/unified/media-player.d.ts +0 -37
  791. package/src/components/unified/media-player.d.ts.map +0 -1
  792. package/src/components/variants/minimal/AccessibleMinimalPlayer.d.ts +0 -42
  793. package/src/components/variants/minimal/AccessibleMinimalPlayer.d.ts.map +0 -1
  794. package/src/components/variants/minimal/EnhancedMinimalMediaPlayer.d.ts +0 -44
  795. package/src/components/variants/minimal/EnhancedMinimalMediaPlayer.d.ts.map +0 -1
  796. package/src/components/variants/minimal/MinimalControls.d.ts +0 -19
  797. package/src/components/variants/minimal/MinimalControls.d.ts.map +0 -1
  798. package/src/components/variants/minimal/MinimalLoading.d.ts +0 -10
  799. package/src/components/variants/minimal/MinimalLoading.d.ts.map +0 -1
  800. package/src/components/variants/minimal/MinimalMediaPlayer.d.ts +0 -38
  801. package/src/components/variants/minimal/MinimalMediaPlayer.d.ts.map +0 -1
  802. package/src/components/variants/minimal/MinimalOverlay.d.ts +0 -11
  803. package/src/components/variants/minimal/MinimalOverlay.d.ts.map +0 -1
  804. package/src/components/variants/minimal/MinimalPlayButton.d.ts +0 -9
  805. package/src/components/variants/minimal/MinimalPlayButton.d.ts.map +0 -1
  806. package/src/components/variants/minimal/MinimalSeekBar.d.ts +0 -7
  807. package/src/components/variants/minimal/MinimalSeekBar.d.ts.map +0 -1
  808. package/src/components/variants/minimal/MinimalVolumeControl.d.ts +0 -7
  809. package/src/components/variants/minimal/MinimalVolumeControl.d.ts.map +0 -1
  810. package/src/components/variants/minimal/SimpleMinimalPlayer.d.ts +0 -22
  811. package/src/components/variants/minimal/SimpleMinimalPlayer.d.ts.map +0 -1
  812. package/src/components/variants/minimal/components/CenterPlayButton.d.ts +0 -7
  813. package/src/components/variants/minimal/components/CenterPlayButton.d.ts.map +0 -1
  814. package/src/components/variants/minimal/components/ControlBar.d.ts +0 -43
  815. package/src/components/variants/minimal/components/ControlBar.d.ts.map +0 -1
  816. package/src/components/variants/minimal/components/EnhancedSettingsMenu.d.ts +0 -24
  817. package/src/components/variants/minimal/components/EnhancedSettingsMenu.d.ts.map +0 -1
  818. package/src/components/variants/minimal/components/PlaybackControls.d.ts +0 -9
  819. package/src/components/variants/minimal/components/PlaybackControls.d.ts.map +0 -1
  820. package/src/components/variants/minimal/components/RightControls.d.ts +0 -25
  821. package/src/components/variants/minimal/components/RightControls.d.ts.map +0 -1
  822. package/src/components/variants/minimal/components/SeekBar.d.ts +0 -11
  823. package/src/components/variants/minimal/components/SeekBar.d.ts.map +0 -1
  824. package/src/components/variants/minimal/components/SettingsDropdown.d.ts +0 -9
  825. package/src/components/variants/minimal/components/SettingsDropdown.d.ts.map +0 -1
  826. package/src/components/variants/minimal/components/SubtitleDisplay.d.ts +0 -7
  827. package/src/components/variants/minimal/components/SubtitleDisplay.d.ts.map +0 -1
  828. package/src/components/variants/minimal/components/TimeDisplay.d.ts +0 -7
  829. package/src/components/variants/minimal/components/TimeDisplay.d.ts.map +0 -1
  830. package/src/components/variants/minimal/components/VideoElement.d.ts +0 -13
  831. package/src/components/variants/minimal/components/VideoElement.d.ts.map +0 -1
  832. package/src/components/variants/minimal/components/VolumeControl.d.ts +0 -13
  833. package/src/components/variants/minimal/components/VolumeControl.d.ts.map +0 -1
  834. package/src/components/variants/minimal/index.d.ts +0 -17
  835. package/src/components/variants/minimal/index.d.ts.map +0 -1
  836. package/src/components/video-player.d.ts +0 -3
  837. package/src/components/video-player.d.ts.map +0 -1
  838. package/src/context/error-handling.d.ts +0 -72
  839. package/src/context/error-handling.d.ts.map +0 -1
  840. package/src/context/media-context.d.ts +0 -104
  841. package/src/context/media-context.d.ts.map +0 -1
  842. package/src/context/media-provider.d.ts +0 -26
  843. package/src/context/media-provider.d.ts.map +0 -1
  844. package/src/context/media-store.d.ts +0 -33
  845. package/src/context/media-store.d.ts.map +0 -1
  846. package/src/context/persistence.d.ts +0 -83
  847. package/src/context/persistence.d.ts.map +0 -1
  848. package/src/core/events/event-system.d.ts +0 -170
  849. package/src/core/events/event-system.d.ts.map +0 -1
  850. package/src/core/events/hooks.d.ts +0 -33
  851. package/src/core/events/hooks.d.ts.map +0 -1
  852. package/src/core/events/index.d.ts +0 -6
  853. package/src/core/events/index.d.ts.map +0 -1
  854. package/src/core/events/middleware.d.ts +0 -39
  855. package/src/core/events/middleware.d.ts.map +0 -1
  856. package/src/core/index.d.ts +0 -8
  857. package/src/core/index.d.ts.map +0 -1
  858. package/src/core/optimization/bundle-optimizer.d.ts +0 -44
  859. package/src/core/optimization/bundle-optimizer.d.ts.map +0 -1
  860. package/src/core/performance/cicd.d.ts +0 -8
  861. package/src/core/performance/cicd.d.ts.map +0 -1
  862. package/src/core/performance/index.d.ts +0 -10
  863. package/src/core/performance/index.d.ts.map +0 -1
  864. package/src/core/performance/media-loading-optimizer.d.ts +0 -105
  865. package/src/core/performance/media-loading-optimizer.d.ts.map +0 -1
  866. package/src/core/performance/performance-budgets.d.ts +0 -68
  867. package/src/core/performance/performance-budgets.d.ts.map +0 -1
  868. package/src/core/performance/performance-monitor.d.ts +0 -95
  869. package/src/core/performance/performance-monitor.d.ts.map +0 -1
  870. package/src/core/performance/performance-testing.d.ts +0 -69
  871. package/src/core/performance/performance-testing.d.ts.map +0 -1
  872. package/src/core/plugins/base-plugin.d.ts +0 -52
  873. package/src/core/plugins/base-plugin.d.ts.map +0 -1
  874. package/src/core/plugins/enhanced-plugin-system.d.ts +0 -160
  875. package/src/core/plugins/enhanced-plugin-system.d.ts.map +0 -1
  876. package/src/core/plugins/examples/analytics-plugin.d.ts +0 -30
  877. package/src/core/plugins/examples/analytics-plugin.d.ts.map +0 -1
  878. package/src/core/plugins/index.d.ts +0 -8
  879. package/src/core/plugins/index.d.ts.map +0 -1
  880. package/src/core/plugins/registry.d.ts +0 -31
  881. package/src/core/plugins/registry.d.ts.map +0 -1
  882. package/src/core/plugins/types.d.ts +0 -101
  883. package/src/core/plugins/types.d.ts.map +0 -1
  884. package/src/core/plugins/utils.d.ts +0 -38
  885. package/src/core/plugins/utils.d.ts.map +0 -1
  886. package/src/core/progressive-loading.d.ts +0 -88
  887. package/src/core/progressive-loading.d.ts.map +0 -1
  888. package/src/core/providers/enhanced-hls-provider.d.ts +0 -50
  889. package/src/core/providers/enhanced-hls-provider.d.ts.map +0 -1
  890. package/src/core/providers/service-provider.d.ts +0 -49
  891. package/src/core/providers/service-provider.d.ts.map +0 -1
  892. package/src/core/utils.d.ts +0 -25
  893. package/src/core/utils.d.ts.map +0 -1
  894. package/src/features/media-session/media-session-manager.d.ts +0 -132
  895. package/src/features/media-session/media-session-manager.d.ts.map +0 -1
  896. package/src/features/picture-in-picture/pip-manager.d.ts +0 -94
  897. package/src/features/picture-in-picture/pip-manager.d.ts.map +0 -1
  898. package/src/features/playlist/playlist-manager.d.ts +0 -208
  899. package/src/features/playlist/playlist-manager.d.ts.map +0 -1
  900. package/src/features/subtitles/subtitle-manager.d.ts +0 -136
  901. package/src/features/subtitles/subtitle-manager.d.ts.map +0 -1
  902. package/src/features/subtitles/subtitle-parser.d.ts +0 -60
  903. package/src/features/subtitles/subtitle-parser.d.ts.map +0 -1
  904. package/src/features/thumbnails/thumbnail-generator.d.ts +0 -136
  905. package/src/features/thumbnails/thumbnail-generator.d.ts.map +0 -1
  906. package/src/hooks/accessibility/index.d.ts +0 -5
  907. package/src/hooks/accessibility/index.d.ts.map +0 -1
  908. package/src/hooks/accessibility/use-accessibility-preferences.d.ts +0 -14
  909. package/src/hooks/accessibility/use-accessibility-preferences.d.ts.map +0 -1
  910. package/src/hooks/accessibility/use-focus-management.d.ts +0 -31
  911. package/src/hooks/accessibility/use-focus-management.d.ts.map +0 -1
  912. package/src/hooks/accessibility/use-keyboard-shortcuts.d.ts +0 -38
  913. package/src/hooks/accessibility/use-keyboard-shortcuts.d.ts.map +0 -1
  914. package/src/hooks/accessibility/use-screen-reader.d.ts +0 -22
  915. package/src/hooks/accessibility/use-screen-reader.d.ts.map +0 -1
  916. package/src/hooks/core/index.d.ts +0 -18
  917. package/src/hooks/core/index.d.ts.map +0 -1
  918. package/src/hooks/legacy.d.ts +0 -18
  919. package/src/hooks/legacy.d.ts.map +0 -1
  920. package/src/hooks/use-enhanced-media-player.d.ts +0 -88
  921. package/src/hooks/use-enhanced-media-player.d.ts.map +0 -1
  922. package/src/hooks/use-intelligent-preloading.d.ts +0 -66
  923. package/src/hooks/use-intelligent-preloading.d.ts.map +0 -1
  924. package/src/hooks/use-keyboard-controls.d.ts +0 -13
  925. package/src/hooks/use-keyboard-controls.d.ts.map +0 -1
  926. package/src/hooks/use-media-actions.d.ts +0 -62
  927. package/src/hooks/use-media-actions.d.ts.map +0 -1
  928. package/src/hooks/use-media-metadata.d.ts +0 -11
  929. package/src/hooks/use-media-metadata.d.ts.map +0 -1
  930. package/src/hooks/use-media-optimistic.d.ts +0 -36
  931. package/src/hooks/use-media-optimistic.d.ts.map +0 -1
  932. package/src/hooks/use-media-player.d.ts +0 -31
  933. package/src/hooks/use-media-player.d.ts.map +0 -1
  934. package/src/hooks/use-media-state.d.ts +0 -17
  935. package/src/hooks/use-media-state.d.ts.map +0 -1
  936. package/src/hooks/use-memory-optimization.d.ts +0 -40
  937. package/src/hooks/use-memory-optimization.d.ts.map +0 -1
  938. package/src/hooks/use-mobile.ts +0 -125
  939. package/src/hooks/use-optimistic-controls.d.ts +0 -22
  940. package/src/hooks/use-optimistic-controls.d.ts.map +0 -1
  941. package/src/hooks/use-optimized-media.d.ts +0 -46
  942. package/src/hooks/use-optimized-media.d.ts.map +0 -1
  943. package/src/hooks/use-touch-gestures.d.ts +0 -47
  944. package/src/hooks/use-touch-gestures.d.ts.map +0 -1
  945. package/src/hooks/useEnhancedSubtitles.d.ts +0 -39
  946. package/src/hooks/useEnhancedSubtitles.d.ts.map +0 -1
  947. package/src/hooks/useKeyboardShortcuts.d.ts +0 -10
  948. package/src/hooks/useKeyboardShortcuts.d.ts.map +0 -1
  949. package/src/hooks/useMediaControls.d.ts +0 -9
  950. package/src/hooks/useMediaControls.d.ts.map +0 -1
  951. package/src/hooks/useScreenshot.d.ts +0 -4
  952. package/src/hooks/useScreenshot.d.ts.map +0 -1
  953. package/src/hooks/useSubtitles.d.ts +0 -8
  954. package/src/hooks/useSubtitles.d.ts.map +0 -1
  955. package/src/hooks/useVideoPlayer.d.ts +0 -32
  956. package/src/hooks/useVideoPlayer.d.ts.map +0 -1
  957. package/src/icons/components/FullscreenIcon.d.ts +0 -3
  958. package/src/icons/components/FullscreenIcon.d.ts.map +0 -1
  959. package/src/icons/components/SettingsIcon.d.ts +0 -3
  960. package/src/icons/components/SettingsIcon.d.ts.map +0 -1
  961. package/src/icons/components/animated/LoadingIcon.d.ts +0 -3
  962. package/src/icons/components/animated/LoadingIcon.d.ts.map +0 -1
  963. package/src/icons/components/animated/PlayPauseIcon.d.ts +0 -7
  964. package/src/icons/components/animated/PlayPauseIcon.d.ts.map +0 -1
  965. package/src/icons/components/media/PauseIcon.d.ts +0 -3
  966. package/src/icons/components/media/PauseIcon.d.ts.map +0 -1
  967. package/src/icons/components/media/PlayIcon.d.ts +0 -3
  968. package/src/icons/components/media/PlayIcon.d.ts.map +0 -1
  969. package/src/icons/components/volume/VolumeIcon.d.ts +0 -3
  970. package/src/icons/components/volume/VolumeIcon.d.ts.map +0 -1
  971. package/src/icons/components/volume/VolumeOffIcon.d.ts +0 -3
  972. package/src/icons/components/volume/VolumeOffIcon.d.ts.map +0 -1
  973. package/src/icons/index.d.ts +0 -28
  974. package/src/icons/index.d.ts.map +0 -1
  975. package/src/icons/provider.d.ts +0 -13
  976. package/src/icons/provider.d.ts.map +0 -1
  977. package/src/icons/types.d.ts +0 -18
  978. package/src/icons/types.d.ts.map +0 -1
  979. package/src/index-enhanced.d.ts +0 -13
  980. package/src/index-enhanced.d.ts.map +0 -1
  981. package/src/index-legacy.d.ts +0 -81
  982. package/src/index-legacy.d.ts.map +0 -1
  983. package/src/index.d.ts +0 -38
  984. package/src/index.d.ts.map +0 -1
  985. package/src/index.minimal.d.ts +0 -2
  986. package/src/index.minimal.d.ts.map +0 -1
  987. package/src/index.minimal.ts +0 -4
  988. package/src/lib/deprecation.d.ts +0 -7
  989. package/src/lib/deprecation.d.ts.map +0 -1
  990. package/src/lib/format-time.d.ts +0 -9
  991. package/src/lib/format-time.d.ts.map +0 -1
  992. package/src/lib/index.d.ts +0 -3
  993. package/src/lib/index.d.ts.map +0 -1
  994. package/src/lib/utils.d.ts +0 -3
  995. package/src/lib/utils.d.ts.map +0 -1
  996. package/src/test/setup.d.ts +0 -2
  997. package/src/test/setup.d.ts.map +0 -1
  998. package/src/types/events.d.ts +0 -41
  999. package/src/types/events.d.ts.map +0 -1
  1000. package/src/types/formats.d.ts +0 -45
  1001. package/src/types/formats.d.ts.map +0 -1
  1002. package/src/types/index.d.ts +0 -128
  1003. package/src/types/index.d.ts.map +0 -1
@@ -1,476 +1,488 @@
1
- import React, { useState, useEffect, useRef, useCallback } from 'react';
1
+ import React, { useState, useEffect, useRef, useCallback, useReducer } from "react"
2
2
  // Import type safely with fallback
3
- type ReportHandler = (metric: { name: string; value: number }) => void;
3
+ type ReportHandler = (metric: { name: string; value: number }) => void
4
4
 
5
5
  // Performance metrics types
6
6
  export interface PerformanceMetrics {
7
- // Core Web Vitals
8
- lcp?: number; // Largest Contentful Paint
9
- fid?: number; // First Input Delay
10
- cls?: number; // Cumulative Layout Shift
11
- fcp?: number; // First Contentful Paint
12
- ttfb?: number; // Time to First Byte
13
- inp?: number; // Interaction to Next Paint
14
-
15
- // Custom metrics
16
- componentRenderTime: number;
17
- bundleLoadTime: number;
18
- mediaLoadTime: number;
19
- memoryUsage: number;
20
-
21
- // Performance scores
22
- performanceScore: number;
23
- timestamp: number;
7
+ // Core Web Vitals
8
+ lcp?: number // Largest Contentful Paint
9
+ fid?: number // First Input Delay
10
+ cls?: number // Cumulative Layout Shift
11
+ fcp?: number // First Contentful Paint
12
+ ttfb?: number // Time to First Byte
13
+ inp?: number // Interaction to Next Paint
14
+
15
+ // Custom metrics
16
+ componentRenderTime: number
17
+ bundleLoadTime: number
18
+ mediaLoadTime: number
19
+ memoryUsage: number
20
+
21
+ // Performance scores
22
+ performanceScore: number
23
+ timestamp: number
24
24
  }
25
25
 
26
26
  export interface PerformanceThresholds {
27
- lcp: { good: number; poor: number };
28
- fid: { good: number; poor: number };
29
- cls: { good: number; poor: number };
30
- renderTime: { good: number; poor: number };
31
- memoryUsage: { good: number; poor: number };
27
+ lcp: { good: number; poor: number }
28
+ fid: { good: number; poor: number }
29
+ cls: { good: number; poor: number }
30
+ renderTime: { good: number; poor: number }
31
+ memoryUsage: { good: number; poor: number }
32
32
  }
33
33
 
34
34
  export const defaultThresholds: PerformanceThresholds = {
35
- lcp: { good: 2500, poor: 4000 },
36
- fid: { good: 100, poor: 300 },
37
- cls: { good: 0.1, poor: 0.25 },
38
- renderTime: { good: 16, poor: 100 }, // Target 60fps = 16.67ms per frame
39
- memoryUsage: { good: 50 * 1024 * 1024, poor: 100 * 1024 * 1024 } // 50MB good, 100MB poor
40
- };
35
+ lcp: { good: 2500, poor: 4000 },
36
+ fid: { good: 100, poor: 300 },
37
+ cls: { good: 0.1, poor: 0.25 },
38
+ renderTime: { good: 16, poor: 100 }, // Target 60fps = 16.67ms per frame
39
+ memoryUsage: { good: 50 * 1024 * 1024, poor: 100 * 1024 * 1024 } // 50MB good, 100MB poor
40
+ }
41
41
 
42
42
  // Performance monitoring class
43
43
  export class PerformanceMonitor {
44
- private metrics: PerformanceMetrics[] = [];
45
- private listeners: Set<(metrics: PerformanceMetrics) => void> = new Set();
46
- private thresholds: PerformanceThresholds;
47
- private observer?: PerformanceObserver;
48
- private isMonitoring = false;
49
-
50
- constructor(thresholds: PerformanceThresholds = defaultThresholds) {
51
- this.thresholds = thresholds;
52
- this.initializeWebVitals();
53
- this.initializePerformanceObserver();
54
- }
55
-
56
- private async initializeWebVitals() {
57
- if (typeof window === 'undefined') return;
58
-
59
- try {
60
- // Try to import web-vitals dynamically and handle different versions
61
- const webVitals = await import('web-vitals').catch(() => null);
62
-
63
- if (!webVitals) {
64
- console.warn('web-vitals package not available, Core Web Vitals tracking disabled');
65
- return;
66
- }
67
-
68
- const reportHandler: ReportHandler = (metric) => {
69
- this.updateMetric(metric.name.toLowerCase() as keyof PerformanceMetrics, metric.value);
70
- };
71
-
72
- // Handle different web-vitals versions safely
73
- const vitalsAny = webVitals as any;
74
- if (vitalsAny.getCLS) vitalsAny.getCLS(reportHandler);
75
- if (vitalsAny.getFID) vitalsAny.getFID(reportHandler);
76
- if (vitalsAny.getFCP) vitalsAny.getFCP(reportHandler);
77
- if (vitalsAny.getLCP) vitalsAny.getLCP(reportHandler);
78
- if (vitalsAny.getTTFB) vitalsAny.getTTFB(reportHandler);
79
- if (vitalsAny.onINP) vitalsAny.onINP(reportHandler);
80
- } catch (error) {
81
- console.warn('Web Vitals initialization failed:', error);
82
- }
83
- }
84
-
85
- private initializePerformanceObserver() {
86
- if (typeof window === 'undefined' || !('PerformanceObserver' in window)) return;
87
-
88
- try {
89
- this.observer = new PerformanceObserver((list) => {
90
- for (const entry of list.getEntries()) {
91
- this.handlePerformanceEntry(entry);
92
- }
93
- });
94
-
95
- this.observer.observe({ entryTypes: ['measure', 'navigation', 'resource', 'paint'] });
96
- } catch (error) {
97
- console.warn('PerformanceObserver not supported:', error);
98
- }
99
- }
100
-
101
- private handlePerformanceEntry(entry: PerformanceEntry) {
102
- switch (entry.entryType) {
103
- case 'measure':
104
- if (entry.name.startsWith('baroiplayer-render')) {
105
- this.updateMetric('componentRenderTime', entry.duration);
106
- }
107
- break;
108
-
109
- case 'resource':
110
- if (entry.name.includes('.js') || entry.name.includes('.css')) {
111
- this.updateMetric('bundleLoadTime', entry.duration);
112
- }
113
- break;
114
-
115
- case 'paint':
116
- if (entry.name === 'first-contentful-paint') {
117
- this.updateMetric('fcp', entry.startTime);
118
- }
119
- break;
120
- }
121
- }
122
-
123
- private updateMetric(key: keyof PerformanceMetrics, value: number) {
124
- const currentMetrics = this.getCurrentMetrics();
125
- const updatedMetrics = {
126
- ...currentMetrics,
127
- [key]: value,
128
- timestamp: Date.now(),
129
- performanceScore: this.calculatePerformanceScore({ ...currentMetrics, [key]: value })
130
- };
131
-
132
- this.metrics.push(updatedMetrics);
133
-
134
- // Keep only last 100 metrics
135
- if (this.metrics.length > 100) {
136
- this.metrics = this.metrics.slice(-100);
137
- }
138
-
139
- this.listeners.forEach(listener => listener(updatedMetrics));
140
- }
141
-
142
- private getCurrentMetrics(): PerformanceMetrics {
143
- const latest = this.metrics[this.metrics.length - 1];
144
- return latest || {
145
- componentRenderTime: 0,
146
- bundleLoadTime: 0,
147
- mediaLoadTime: 0,
148
- memoryUsage: this.getMemoryUsage(),
149
- performanceScore: 0,
150
- timestamp: Date.now()
151
- };
152
- }
153
-
154
- private getMemoryUsage(): number {
155
- if ('memory' in performance) {
156
- return (performance as any).memory.usedJSHeapSize || 0;
157
- }
158
- return 0;
159
- }
160
-
161
- private calculatePerformanceScore(metrics: PerformanceMetrics): number {
162
- let score = 100;
163
-
164
- // Penalize based on thresholds
165
- if (metrics.lcp && metrics.lcp > this.thresholds.lcp.good) {
166
- score -= metrics.lcp > this.thresholds.lcp.poor ? 30 : 15;
167
- }
168
-
169
- if (metrics.fid && metrics.fid > this.thresholds.fid.good) {
170
- score -= metrics.fid > this.thresholds.fid.poor ? 25 : 10;
171
- }
172
-
173
- if (metrics.cls && metrics.cls > this.thresholds.cls.good) {
174
- score -= metrics.cls > this.thresholds.cls.poor ? 20 : 10;
175
- }
176
-
177
- if (metrics.componentRenderTime > this.thresholds.renderTime.good) {
178
- score -= metrics.componentRenderTime > this.thresholds.renderTime.poor ? 20 : 10;
179
- }
180
-
181
- if (metrics.memoryUsage > this.thresholds.memoryUsage.good) {
182
- score -= metrics.memoryUsage > this.thresholds.memoryUsage.poor ? 15 : 5;
183
- }
184
-
185
- return Math.max(0, score);
186
- }
187
-
188
- // Public API
189
- public startMonitoring() {
190
- this.isMonitoring = true;
191
- this.startMemoryMonitoring();
192
- }
193
-
194
- public stopMonitoring() {
195
- this.isMonitoring = false;
196
- if (this.observer) {
197
- this.observer.disconnect();
198
- }
199
- }
200
-
201
- private startMemoryMonitoring() {
202
- if (!this.isMonitoring) return;
203
-
204
- this.updateMetric('memoryUsage', this.getMemoryUsage());
205
- setTimeout(() => this.startMemoryMonitoring(), 5000); // Check every 5 seconds
206
- }
207
-
208
- public measureComponentRender(componentName: string, renderFn: () => any): any {
209
- const startMark = `baroiplayer-render-${componentName}-start`;
210
- const endMark = `baroiplayer-render-${componentName}-end`;
211
- const measureName = `baroiplayer-render-${componentName}`;
212
-
213
- performance.mark(startMark);
214
- const result = renderFn();
215
- performance.mark(endMark);
216
-
217
- try {
218
- performance.measure(measureName, startMark, endMark);
219
- } catch (error) {
220
- console.warn('Performance measurement failed:', error);
221
- }
222
-
223
- return result;
224
- }
225
-
226
- public subscribe(listener: (metrics: PerformanceMetrics) => void): () => void {
227
- this.listeners.add(listener);
228
- return () => this.listeners.delete(listener);
229
- }
230
-
231
- public getLatestMetrics(): PerformanceMetrics | null {
232
- return this.metrics[this.metrics.length - 1] || null;
233
- }
234
-
235
- public getAllMetrics(): PerformanceMetrics[] {
236
- return [...this.metrics];
237
- }
238
-
239
- public getAverageMetrics(count = 10): Partial<PerformanceMetrics> {
240
- const recentMetrics = this.metrics.slice(-count);
241
- if (recentMetrics.length === 0) return {};
242
-
243
- const averages: Partial<PerformanceMetrics> = {};
244
- const keys: Array<keyof PerformanceMetrics> = [
245
- 'lcp', 'fid', 'cls', 'fcp', 'ttfb', 'inp',
246
- 'componentRenderTime', 'bundleLoadTime', 'mediaLoadTime',
247
- 'memoryUsage', 'performanceScore'
248
- ];
249
-
250
- keys.forEach(key => {
251
- const values = recentMetrics
252
- .map(m => m[key] as number)
253
- .filter(v => typeof v === 'number' && !isNaN(v));
254
-
255
- if (values.length > 0) {
256
- (averages as any)[key] = values.reduce((sum, v) => sum + v, 0) / values.length;
257
- }
258
- });
259
-
260
- return averages;
261
- }
262
-
263
- public getThresholds(): PerformanceThresholds {
264
- return this.thresholds;
265
- }
266
-
267
- public updateThresholds(newThresholds: Partial<PerformanceThresholds>) {
268
- this.thresholds = { ...this.thresholds, ...newThresholds };
269
- }
44
+ private metrics: PerformanceMetrics[] = []
45
+ private listeners: Set<(metrics: PerformanceMetrics) => void> = new Set()
46
+ private thresholds: PerformanceThresholds
47
+ private observer?: PerformanceObserver
48
+ private isMonitoring = false
49
+
50
+ constructor(thresholds: PerformanceThresholds = defaultThresholds) {
51
+ this.thresholds = thresholds
52
+ this.initializeWebVitals()
53
+ this.initializePerformanceObserver()
54
+ }
55
+
56
+ private async initializeWebVitals() {
57
+ if (typeof window === "undefined") return
58
+
59
+ try {
60
+ // Try to import web-vitals dynamically and handle different versions
61
+ const webVitals = await import("web-vitals").catch(() => null)
62
+
63
+ if (!webVitals) {
64
+ console.warn("web-vitals package not available, Core Web Vitals tracking disabled")
65
+ return
66
+ }
67
+
68
+ const reportHandler: ReportHandler = (metric) => {
69
+ this.updateMetric(metric.name.toLowerCase() as keyof PerformanceMetrics, metric.value)
70
+ }
71
+
72
+ // Handle different web-vitals versions safely
73
+ const vitalsAny = webVitals as any
74
+ if (vitalsAny.getCLS) vitalsAny.getCLS(reportHandler)
75
+ if (vitalsAny.getFID) vitalsAny.getFID(reportHandler)
76
+ if (vitalsAny.getFCP) vitalsAny.getFCP(reportHandler)
77
+ if (vitalsAny.getLCP) vitalsAny.getLCP(reportHandler)
78
+ if (vitalsAny.getTTFB) vitalsAny.getTTFB(reportHandler)
79
+ if (vitalsAny.onINP) vitalsAny.onINP(reportHandler)
80
+ } catch (error) {
81
+ console.warn("Web Vitals initialization failed:", error)
82
+ }
83
+ }
84
+
85
+ private initializePerformanceObserver() {
86
+ if (typeof window === "undefined" || !("PerformanceObserver" in window)) return
87
+
88
+ try {
89
+ this.observer = new PerformanceObserver((list) => {
90
+ for (const entry of list.getEntries()) {
91
+ this.handlePerformanceEntry(entry)
92
+ }
93
+ })
94
+
95
+ this.observer.observe({ entryTypes: ["measure", "navigation", "resource", "paint"] })
96
+ } catch (error) {
97
+ console.warn("PerformanceObserver not supported:", error)
98
+ }
99
+ }
100
+
101
+ private handlePerformanceEntry(entry: PerformanceEntry) {
102
+ switch (entry.entryType) {
103
+ case "measure":
104
+ if (entry.name.startsWith("baroiplayer-render")) {
105
+ this.updateMetric("componentRenderTime", entry.duration)
106
+ }
107
+ break
108
+
109
+ case "resource":
110
+ if (entry.name.includes(".js") || entry.name.includes(".css")) {
111
+ this.updateMetric("bundleLoadTime", entry.duration)
112
+ }
113
+ break
114
+
115
+ case "paint":
116
+ if (entry.name === "first-contentful-paint") {
117
+ this.updateMetric("fcp", entry.startTime)
118
+ }
119
+ break
120
+ }
121
+ }
122
+
123
+ private updateMetric(key: keyof PerformanceMetrics, value: number) {
124
+ const currentMetrics = this.getCurrentMetrics()
125
+ const updatedMetrics = {
126
+ ...currentMetrics,
127
+ [key]: value,
128
+ timestamp: Date.now(),
129
+ performanceScore: this.calculatePerformanceScore({ ...currentMetrics, [key]: value })
130
+ }
131
+
132
+ this.metrics.push(updatedMetrics)
133
+
134
+ // Keep only last 100 metrics
135
+ if (this.metrics.length > 100) {
136
+ this.metrics = this.metrics.slice(-100)
137
+ }
138
+
139
+ this.listeners.forEach((listener) => listener(updatedMetrics))
140
+ }
141
+
142
+ private getCurrentMetrics(): PerformanceMetrics {
143
+ const latest = this.metrics[this.metrics.length - 1]
144
+ return (
145
+ latest || {
146
+ componentRenderTime: 0,
147
+ bundleLoadTime: 0,
148
+ mediaLoadTime: 0,
149
+ memoryUsage: this.getMemoryUsage(),
150
+ performanceScore: 0,
151
+ timestamp: Date.now()
152
+ }
153
+ )
154
+ }
155
+
156
+ private getMemoryUsage(): number {
157
+ if ("memory" in performance) {
158
+ return (performance as any).memory.usedJSHeapSize || 0
159
+ }
160
+ return 0
161
+ }
162
+
163
+ private calculatePerformanceScore(metrics: PerformanceMetrics): number {
164
+ let score = 100
165
+
166
+ // Penalize based on thresholds
167
+ if (metrics.lcp && metrics.lcp > this.thresholds.lcp.good) {
168
+ score -= metrics.lcp > this.thresholds.lcp.poor ? 30 : 15
169
+ }
170
+
171
+ if (metrics.fid && metrics.fid > this.thresholds.fid.good) {
172
+ score -= metrics.fid > this.thresholds.fid.poor ? 25 : 10
173
+ }
174
+
175
+ if (metrics.cls && metrics.cls > this.thresholds.cls.good) {
176
+ score -= metrics.cls > this.thresholds.cls.poor ? 20 : 10
177
+ }
178
+
179
+ if (metrics.componentRenderTime > this.thresholds.renderTime.good) {
180
+ score -= metrics.componentRenderTime > this.thresholds.renderTime.poor ? 20 : 10
181
+ }
182
+
183
+ if (metrics.memoryUsage > this.thresholds.memoryUsage.good) {
184
+ score -= metrics.memoryUsage > this.thresholds.memoryUsage.poor ? 15 : 5
185
+ }
186
+
187
+ return Math.max(0, score)
188
+ }
189
+
190
+ // Public API
191
+ public startMonitoring() {
192
+ this.isMonitoring = true
193
+ this.startMemoryMonitoring()
194
+ }
195
+
196
+ public stopMonitoring() {
197
+ this.isMonitoring = false
198
+ if (this.observer) {
199
+ this.observer.disconnect()
200
+ }
201
+ }
202
+
203
+ private startMemoryMonitoring() {
204
+ if (!this.isMonitoring) return
205
+
206
+ this.updateMetric("memoryUsage", this.getMemoryUsage())
207
+ setTimeout(() => this.startMemoryMonitoring(), 5000) // Check every 5 seconds
208
+ }
209
+
210
+ public measureComponentRender(componentName: string, renderFn: () => any): any {
211
+ const startMark = `baroiplayer-render-${componentName}-start`
212
+ const endMark = `baroiplayer-render-${componentName}-end`
213
+ const measureName = `baroiplayer-render-${componentName}`
214
+
215
+ performance.mark(startMark)
216
+ const result = renderFn()
217
+ performance.mark(endMark)
218
+
219
+ try {
220
+ performance.measure(measureName, startMark, endMark)
221
+ } catch (error) {
222
+ console.warn("Performance measurement failed:", error)
223
+ }
224
+
225
+ return result
226
+ }
227
+
228
+ public subscribe(listener: (metrics: PerformanceMetrics) => void): () => void {
229
+ this.listeners.add(listener)
230
+ return () => this.listeners.delete(listener)
231
+ }
232
+
233
+ public getLatestMetrics(): PerformanceMetrics | null {
234
+ return this.metrics[this.metrics.length - 1] || null
235
+ }
236
+
237
+ public getAllMetrics(): PerformanceMetrics[] {
238
+ return [...this.metrics]
239
+ }
240
+
241
+ public getAverageMetrics(count = 10): Partial<PerformanceMetrics> {
242
+ const recentMetrics = this.metrics.slice(-count)
243
+ if (recentMetrics.length === 0) return {}
244
+
245
+ const averages: Partial<PerformanceMetrics> = {}
246
+ const keys: Array<keyof PerformanceMetrics> = [
247
+ "lcp",
248
+ "fid",
249
+ "cls",
250
+ "fcp",
251
+ "ttfb",
252
+ "inp",
253
+ "componentRenderTime",
254
+ "bundleLoadTime",
255
+ "mediaLoadTime",
256
+ "memoryUsage",
257
+ "performanceScore"
258
+ ]
259
+
260
+ keys.forEach((key) => {
261
+ const values = recentMetrics
262
+ .map((m) => m[key] as number)
263
+ .filter((v) => typeof v === "number" && !isNaN(v))
264
+
265
+ if (values.length > 0) {
266
+ ;(averages as any)[key] = values.reduce((sum, v) => sum + v, 0) / values.length
267
+ }
268
+ })
269
+
270
+ return averages
271
+ }
272
+
273
+ public getThresholds(): PerformanceThresholds {
274
+ return this.thresholds
275
+ }
276
+
277
+ public updateThresholds(newThresholds: Partial<PerformanceThresholds>) {
278
+ this.thresholds = { ...this.thresholds, ...newThresholds }
279
+ }
270
280
  }
271
281
 
272
282
  // Global performance monitor instance
273
- export const performanceMonitor = new PerformanceMonitor();
283
+ export const performanceMonitor = new PerformanceMonitor()
274
284
 
275
285
  // React hook for performance monitoring
276
286
  export function usePerformanceMonitor() {
277
- const [metrics, setMetrics] = useState<PerformanceMetrics | null>(null);
278
- const [isSupported, setIsSupported] = useState(true);
279
-
280
- useEffect(() => {
281
- setIsSupported(typeof window !== 'undefined' && 'performance' in window);
282
-
283
- if (!isSupported) return;
284
-
285
- performanceMonitor.startMonitoring();
286
- const unsubscribe = performanceMonitor.subscribe(setMetrics);
287
-
288
- return () => {
289
- unsubscribe();
290
- performanceMonitor.stopMonitoring();
291
- };
292
- }, [isSupported]);
293
-
294
- const measureRender = useCallback(
295
- (componentName: string, renderFn: () => any): any => {
296
- return performanceMonitor.measureComponentRender(componentName, renderFn);
297
- },
298
- []
299
- );
300
-
301
- return {
302
- metrics,
303
- isSupported,
304
- measureRender,
305
- averageMetrics: performanceMonitor.getAverageMetrics(),
306
- allMetrics: performanceMonitor.getAllMetrics(),
307
- thresholds: performanceMonitor.getThresholds()
308
- };
287
+ const [metrics, setMetrics] = useState<PerformanceMetrics | null>(null)
288
+ const [isSupported, setIsSupported] = useState(true)
289
+
290
+ useEffect(() => {
291
+ setIsSupported(typeof window !== "undefined" && "performance" in window)
292
+
293
+ if (!isSupported) return
294
+
295
+ performanceMonitor.startMonitoring()
296
+ const unsubscribe = performanceMonitor.subscribe(setMetrics)
297
+
298
+ return () => {
299
+ unsubscribe()
300
+ performanceMonitor.stopMonitoring()
301
+ }
302
+ }, [isSupported])
303
+
304
+ const measureRender = useCallback((componentName: string, renderFn: () => any): any => {
305
+ return performanceMonitor.measureComponentRender(componentName, renderFn)
306
+ }, [])
307
+
308
+ return {
309
+ metrics,
310
+ isSupported,
311
+ measureRender,
312
+ averageMetrics: performanceMonitor.getAverageMetrics(),
313
+ allMetrics: performanceMonitor.getAllMetrics(),
314
+ thresholds: performanceMonitor.getThresholds()
315
+ }
309
316
  }
310
317
 
311
318
  // HOC for performance monitoring
312
319
  export function withPerformanceMonitoring(
313
- WrappedComponent: React.ComponentType<any>,
314
- componentName?: string
320
+ WrappedComponent: React.ComponentType<any>,
321
+ componentName?: string
315
322
  ) {
316
- const displayName = componentName || WrappedComponent.displayName || WrappedComponent.name || 'Component';
317
-
318
- function PerformanceMonitoredComponent(props: any) {
319
- const renderRef = useRef(0);
320
- const { measureRender } = usePerformanceMonitor();
321
-
322
- return measureRender(`${displayName}-${renderRef.current++}`, () => (
323
- <WrappedComponent {...props} />
324
- ));
325
- }
326
-
327
- PerformanceMonitoredComponent.displayName = `withPerformanceMonitoring(${displayName})`;
328
- return PerformanceMonitoredComponent;
323
+ const displayName =
324
+ componentName || WrappedComponent.displayName || WrappedComponent.name || "Component"
325
+
326
+ function PerformanceMonitoredComponent(props: any) {
327
+ const renderRef = useRef(0)
328
+ const { measureRender } = usePerformanceMonitor()
329
+
330
+ // Use a simple counter that increments during render but doesn't access the ref value
331
+ const renderKey = useState(() => Math.random())[0]
332
+
333
+ // Update ref in effect to track count without accessing during render
334
+ useEffect(() => {
335
+ renderRef.current += 1
336
+ })
337
+
338
+ return measureRender(`${displayName}-${renderKey}`, () => <WrappedComponent {...props} />)
339
+ }
340
+
341
+ PerformanceMonitoredComponent.displayName = `withPerformanceMonitoring(${displayName})`
342
+ return PerformanceMonitoredComponent
329
343
  }
330
344
 
331
345
  // Performance regression detector
332
346
  export class PerformanceRegressionDetector {
333
- private baselineMetrics: PerformanceMetrics | null = null;
334
- private regressionThreshold = 0.2; // 20% degradation threshold
335
-
336
- setBaseline(metrics: PerformanceMetrics) {
337
- this.baselineMetrics = metrics;
338
- }
339
-
340
- detectRegression(currentMetrics: PerformanceMetrics): Array<{
341
- metric: keyof PerformanceMetrics;
342
- baseline: number;
343
- current: number;
344
- degradation: number;
345
- }> {
346
- if (!this.baselineMetrics) return [];
347
-
348
- const regressions: Array<{
349
- metric: keyof PerformanceMetrics;
350
- baseline: number;
351
- current: number;
352
- degradation: number;
353
- }> = [];
354
-
355
- const metricsToCheck: Array<keyof PerformanceMetrics> = [
356
- 'componentRenderTime', 'bundleLoadTime', 'mediaLoadTime', 'memoryUsage'
357
- ];
358
-
359
- metricsToCheck.forEach(metric => {
360
- const baseline = this.baselineMetrics![metric] as number;
361
- const current = currentMetrics[metric] as number;
362
-
363
- if (baseline && current && baseline > 0) {
364
- const degradation = (current - baseline) / baseline;
365
- if (degradation > this.regressionThreshold) {
366
- regressions.push({ metric, baseline, current, degradation });
367
- }
368
- }
369
- });
370
-
371
- return regressions;
372
- }
373
-
374
- setRegressionThreshold(threshold: number) {
375
- this.regressionThreshold = Math.max(0, Math.min(1, threshold));
376
- }
347
+ private baselineMetrics: PerformanceMetrics | null = null
348
+ private regressionThreshold = 0.2 // 20% degradation threshold
349
+
350
+ setBaseline(metrics: PerformanceMetrics) {
351
+ this.baselineMetrics = metrics
352
+ }
353
+
354
+ detectRegression(currentMetrics: PerformanceMetrics): Array<{
355
+ metric: keyof PerformanceMetrics
356
+ baseline: number
357
+ current: number
358
+ degradation: number
359
+ }> {
360
+ if (!this.baselineMetrics) return []
361
+
362
+ const regressions: Array<{
363
+ metric: keyof PerformanceMetrics
364
+ baseline: number
365
+ current: number
366
+ degradation: number
367
+ }> = []
368
+
369
+ const metricsToCheck: Array<keyof PerformanceMetrics> = [
370
+ "componentRenderTime",
371
+ "bundleLoadTime",
372
+ "mediaLoadTime",
373
+ "memoryUsage"
374
+ ]
375
+
376
+ metricsToCheck.forEach((metric) => {
377
+ const baseline = this.baselineMetrics![metric] as number
378
+ const current = currentMetrics[metric] as number
379
+
380
+ if (baseline && current && baseline > 0) {
381
+ const degradation = (current - baseline) / baseline
382
+ if (degradation > this.regressionThreshold) {
383
+ regressions.push({ metric, baseline, current, degradation })
384
+ }
385
+ }
386
+ })
387
+
388
+ return regressions
389
+ }
390
+
391
+ setRegressionThreshold(threshold: number) {
392
+ this.regressionThreshold = Math.max(0, Math.min(1, threshold))
393
+ }
377
394
  }
378
395
 
379
396
  // Development dashboard component
380
397
  export interface PerformanceDashboardProps {
381
- className?: string;
382
- showAdvanced?: boolean;
398
+ className?: string
399
+ showAdvanced?: boolean
383
400
  }
384
401
 
385
- export function PerformanceDashboard({
386
- className = '',
387
- showAdvanced = false
402
+ export function PerformanceDashboard({
403
+ className = "",
404
+ showAdvanced = false
388
405
  }: PerformanceDashboardProps) {
389
- const { metrics, averageMetrics, thresholds, isSupported } = usePerformanceMonitor();
390
-
391
- if (!isSupported || !metrics) {
392
- return (
393
- <div className={`performance-dashboard ${className}`}>
394
- <p>Performance monitoring not supported in this environment</p>
395
- </div>
396
- );
397
- }
398
-
399
- const getScoreColor = (score: number) => {
400
- if (score >= 90) return 'text-green-600';
401
- if (score >= 70) return 'text-yellow-600';
402
- return 'text-red-600';
403
- };
404
-
405
- const formatBytes = (bytes: number) => {
406
- return `${(bytes / 1024 / 1024).toFixed(2)} MB`;
407
- };
408
-
409
- return (
410
- <div className={`performance-dashboard rounded-lg bg-white p-4 shadow ${className}`}>
411
- <h3 className="mb-4 font-semibold text-lg">Performance Dashboard</h3>
412
-
413
- {/* Performance Score */}
414
- <div className="mb-4">
415
- <div className="flex items-center justify-between">
416
- <span>Performance Score</span>
417
- <span className={`font-bold ${getScoreColor(metrics.performanceScore)}`}>
418
- {metrics.performanceScore.toFixed(0)}
419
- </span>
420
- </div>
421
- <div className="mt-1 h-2 w-full rounded-full bg-gray-200">
422
- <div
423
- className={`h-2 rounded-full transition-all duration-300 ${
424
- metrics.performanceScore >= 90 ? 'bg-green-500' :
425
- metrics.performanceScore >= 70 ? 'bg-yellow-500' : 'bg-red-500'
426
- }`}
427
- style={{ width: `${metrics.performanceScore}%` }}
428
- />
429
- </div>
430
- </div>
431
-
432
- {/* Core Web Vitals */}
433
- <div className="mb-4 grid grid-cols-2 gap-4">
434
- <div>
435
- <h4 className="mb-2 font-medium">Core Web Vitals</h4>
436
- <div className="space-y-1 text-sm">
437
- {metrics.lcp && (
438
- <div>LCP: {metrics.lcp.toFixed(0)}ms</div>
439
- )}
440
- {metrics.fid && (
441
- <div>FID: {metrics.fid.toFixed(0)}ms</div>
442
- )}
443
- {metrics.cls && (
444
- <div>CLS: {metrics.cls.toFixed(3)}</div>
445
- )}
446
- </div>
447
- </div>
448
-
449
- <div>
450
- <h4 className="mb-2 font-medium">Custom Metrics</h4>
451
- <div className="space-y-1 text-sm">
452
- <div>Render: {metrics.componentRenderTime.toFixed(2)}ms</div>
453
- <div>Memory: {formatBytes(metrics.memoryUsage)}</div>
454
- {metrics.bundleLoadTime > 0 && (
455
- <div>Bundle: {metrics.bundleLoadTime.toFixed(0)}ms</div>
456
- )}
457
- </div>
458
- </div>
459
- </div>
460
-
461
- {/* Advanced metrics */}
462
- {showAdvanced && (
463
- <div>
464
- <h4 className="mb-2 font-medium">Advanced Metrics</h4>
465
- <div className="space-y-1 text-sm">
466
- <div>Average Render Time: {(averageMetrics.componentRenderTime || 0).toFixed(2)}ms</div>
467
- <div>Average Memory: {formatBytes(averageMetrics.memoryUsage || 0)}</div>
468
- <div>Average Score: {(averageMetrics.performanceScore || 0).toFixed(0)}</div>
469
- </div>
470
- </div>
471
- )}
472
- </div>
473
- );
406
+ const { metrics, averageMetrics, thresholds, isSupported } = usePerformanceMonitor()
407
+
408
+ if (!isSupported || !metrics) {
409
+ return (
410
+ <div className={`performance-dashboard ${className}`}>
411
+ <p>Performance monitoring not supported in this environment</p>
412
+ </div>
413
+ )
414
+ }
415
+
416
+ const getScoreColor = (score: number) => {
417
+ if (score >= 90) return "text-green-600"
418
+ if (score >= 70) return "text-yellow-600"
419
+ return "text-red-600"
420
+ }
421
+
422
+ const formatBytes = (bytes: number) => {
423
+ return `${(bytes / 1024 / 1024).toFixed(2)} MB`
424
+ }
425
+
426
+ return (
427
+ <div className={`performance-dashboard rounded-lg bg-white p-4 shadow ${className}`}>
428
+ <h3 className="mb-4 font-semibold text-lg">Performance Dashboard</h3>
429
+
430
+ {/* Performance Score */}
431
+ <div className="mb-4">
432
+ <div className="flex items-center justify-between">
433
+ <span>Performance Score</span>
434
+ <span className={`font-bold ${getScoreColor(metrics.performanceScore)}`}>
435
+ {metrics.performanceScore.toFixed(0)}
436
+ </span>
437
+ </div>
438
+ <div className="mt-1 h-2 w-full rounded-full bg-gray-200">
439
+ <div
440
+ className={`h-2 rounded-full transition-all duration-300 ${
441
+ metrics.performanceScore >= 90
442
+ ? "bg-green-500"
443
+ : metrics.performanceScore >= 70
444
+ ? "bg-yellow-500"
445
+ : "bg-red-500"
446
+ }`}
447
+ style={{ width: `${metrics.performanceScore}%` }}
448
+ />
449
+ </div>
450
+ </div>
451
+
452
+ {/* Core Web Vitals */}
453
+ <div className="mb-4 grid grid-cols-2 gap-4">
454
+ <div>
455
+ <h4 className="mb-2 font-medium">Core Web Vitals</h4>
456
+ <div className="space-y-1 text-sm">
457
+ {metrics.lcp && <div>LCP: {metrics.lcp.toFixed(0)}ms</div>}
458
+ {metrics.fid && <div>FID: {metrics.fid.toFixed(0)}ms</div>}
459
+ {metrics.cls && <div>CLS: {metrics.cls.toFixed(3)}</div>}
460
+ </div>
461
+ </div>
462
+
463
+ <div>
464
+ <h4 className="mb-2 font-medium">Custom Metrics</h4>
465
+ <div className="space-y-1 text-sm">
466
+ <div>Render: {metrics.componentRenderTime.toFixed(2)}ms</div>
467
+ <div>Memory: {formatBytes(metrics.memoryUsage)}</div>
468
+ {metrics.bundleLoadTime > 0 && <div>Bundle: {metrics.bundleLoadTime.toFixed(0)}ms</div>}
469
+ </div>
470
+ </div>
471
+ </div>
472
+
473
+ {/* Advanced metrics */}
474
+ {showAdvanced && (
475
+ <div>
476
+ <h4 className="mb-2 font-medium">Advanced Metrics</h4>
477
+ <div className="space-y-1 text-sm">
478
+ <div>Average Render Time: {(averageMetrics.componentRenderTime || 0).toFixed(2)}ms</div>
479
+ <div>Average Memory: {formatBytes(averageMetrics.memoryUsage || 0)}</div>
480
+ <div>Average Score: {(averageMetrics.performanceScore || 0).toFixed(0)}</div>
481
+ </div>
482
+ </div>
483
+ )}
484
+ </div>
485
+ )
474
486
  }
475
487
 
476
- export default PerformanceMonitor;
488
+ export default PerformanceMonitor