@therealtinhtute/baroiplayer 1.0.6 → 1.0.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -7
- package/dist/index.mjs +1 -2
- package/dist/package.json +1 -1
- package/package.json +1 -1
- package/dist/context/media.js +0 -2
- package/dist/context/media.js.map +0 -1
- package/dist/context/media.mjs +0 -15
- package/dist/context/media.mjs.map +0 -1
- package/dist/context/store.js +0 -2
- package/dist/context/store.js.map +0 -1
- package/dist/context/store.mjs +0 -5
- package/dist/context/store.mjs.map +0 -1
- package/dist/context-Af84FynT.js +0 -1179
- package/dist/context-Af84FynT.js.map +0 -1
- package/dist/context-CwZnPdz0.cjs +0 -23
- package/dist/context-CwZnPdz0.cjs.map +0 -1
- package/dist/core-events-B5W_j8yU.js +0 -480
- package/dist/core-events-B5W_j8yU.js.map +0 -1
- package/dist/core-events-CN0-Vhhq.cjs +0 -2
- package/dist/core-events-CN0-Vhhq.cjs.map +0 -1
- package/dist/core-plugins-Bq9KLany.js +0 -696
- package/dist/core-plugins-Bq9KLany.js.map +0 -1
- package/dist/core-plugins-CPDSHMiQ.cjs +0 -2
- package/dist/core-plugins-CPDSHMiQ.cjs.map +0 -1
- package/dist/core.js +0 -37
- package/dist/core.js.map +0 -1
- package/dist/core.mjs +0 -1217
- package/dist/core.mjs.map +0 -1
- package/dist/enhanced-components-CXnYiOt6.cjs +0 -2
- package/dist/enhanced-components-CXnYiOt6.cjs.map +0 -1
- package/dist/enhanced-components-Da0TSvKe.js +0 -1073
- package/dist/enhanced-components-Da0TSvKe.js.map +0 -1
- package/dist/hooks-BCMilGRf.cjs +0 -4
- package/dist/hooks-BCMilGRf.cjs.map +0 -1
- package/dist/hooks-BPtHV1ZT.js +0 -2042
- package/dist/hooks-BPtHV1ZT.js.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/index.mjs.map +0 -1
- package/dist/minimal-components-BHJMuaL7.cjs +0 -2
- package/dist/minimal-components-BHJMuaL7.cjs.map +0 -1
- package/dist/minimal-components-BmqRefl1.js +0 -2002
- package/dist/minimal-components-BmqRefl1.js.map +0 -1
- package/dist/mona-loading.gif +0 -0
- package/dist/performance-monitor--rzKTlbj.js +0 -302
- package/dist/performance-monitor--rzKTlbj.js.map +0 -1
- package/dist/performance-monitor-cjIvZE2D.cjs +0 -2
- package/dist/performance-monitor-cjIvZE2D.cjs.map +0 -1
- package/dist/src/adapters/videojs-adapter.d.ts.map +0 -1
- package/dist/src/adapters/videojs-adapter.js +0 -350
- package/dist/src/assets/mona-loading.gif +0 -0
- package/dist/src/components/AnimateLoading.d.ts.map +0 -1
- package/dist/src/components/AnimateLoading.js +0 -41
- package/dist/src/components/LoadingState.d.ts.map +0 -1
- package/dist/src/components/LoadingState.js +0 -111
- package/dist/src/components/accessibility/keyboard-help-overlay.d.ts.map +0 -1
- package/dist/src/components/accessibility/keyboard-help-overlay.js +0 -90
- package/dist/src/components/audio-player.d.ts.map +0 -1
- package/dist/src/components/audio-player.js +0 -31
- package/dist/src/components/basic/index.d.ts.map +0 -1
- package/dist/src/components/basic/index.js +0 -29
- package/dist/src/components/enhanced/advanced-features.d.ts.map +0 -1
- package/dist/src/components/enhanced/advanced-features.js +0 -64
- package/dist/src/components/enhanced/debug-panel.d.ts.map +0 -1
- package/dist/src/components/enhanced/debug-panel.js +0 -94
- package/dist/src/components/enhanced/enhanced-controls.d.ts.map +0 -1
- package/dist/src/components/enhanced/enhanced-controls.js +0 -233
- package/dist/src/components/enhanced/enhanced-media-player.d.ts.map +0 -1
- package/dist/src/components/enhanced/enhanced-media-player.js +0 -316
- package/dist/src/components/enhanced/error-handling.d.ts.map +0 -1
- package/dist/src/components/enhanced/error-handling.js +0 -153
- package/dist/src/components/enhanced/index.d.ts.map +0 -1
- package/dist/src/components/enhanced/index.js +0 -10
- package/dist/src/components/enhanced/media-player-enhanced.d.ts.map +0 -1
- package/dist/src/components/enhanced/media-player-enhanced.js +0 -250
- package/dist/src/components/examples/basic-video-player.d.ts.map +0 -1
- package/dist/src/components/examples/basic-video-player.js +0 -16
- package/dist/src/components/examples/custom-controls-example.d.ts.map +0 -1
- package/dist/src/components/examples/custom-controls-example.js +0 -12
- package/dist/src/components/examples/enhanced-controls-example.d.ts.map +0 -1
- package/dist/src/components/examples/enhanced-controls-example.js +0 -18
- package/dist/src/components/examples/enhanced-media-player-example.d.ts.map +0 -1
- package/dist/src/components/examples/enhanced-media-player-example.js +0 -13
- package/dist/src/components/examples/loading-states-demo.d.ts.map +0 -1
- package/dist/src/components/examples/loading-states-demo.js +0 -41
- package/dist/src/components/examples/react-19-demo.d.ts.map +0 -1
- package/dist/src/components/examples/react-19-demo.js +0 -104
- package/dist/src/components/examples/volume-orientation-demo.d.ts.map +0 -1
- package/dist/src/components/examples/volume-orientation-demo.js +0 -31
- package/dist/src/components/icon-demo.d.ts.map +0 -1
- package/dist/src/components/icon-demo.js +0 -16
- package/dist/src/components/icons/index.d.ts.map +0 -1
- package/dist/src/components/icons/index.js +0 -59
- package/dist/src/components/icons/svg-icons/ArrowLeftIcon.d.ts.map +0 -1
- package/dist/src/components/icons/svg-icons/ArrowLeftIcon.js +0 -3
- package/dist/src/components/icons/svg-icons/ArrowRightIcon.d.ts.map +0 -1
- package/dist/src/components/icons/svg-icons/ArrowRightIcon.js +0 -3
- package/dist/src/components/icons/svg-icons/AudioIcon.d.ts.map +0 -1
- package/dist/src/components/icons/svg-icons/AudioIcon.js +0 -4
- package/dist/src/components/icons/svg-icons/BackwardIcon.d.ts.map +0 -1
- package/dist/src/components/icons/svg-icons/BackwardIcon.js +0 -3
- package/dist/src/components/icons/svg-icons/CameraIcon.d.ts.map +0 -1
- package/dist/src/components/icons/svg-icons/CameraIcon.js +0 -4
- package/dist/src/components/icons/svg-icons/CheckIcon.d.ts.map +0 -1
- package/dist/src/components/icons/svg-icons/CheckIcon.js +0 -4
- package/dist/src/components/icons/svg-icons/EnablePiPIcon.d.ts.map +0 -1
- package/dist/src/components/icons/svg-icons/EnablePiPIcon.js +0 -5
- package/dist/src/components/icons/svg-icons/ForwardIcon.d.ts.map +0 -1
- package/dist/src/components/icons/svg-icons/ForwardIcon.js +0 -3
- package/dist/src/components/icons/svg-icons/FullscreenEnterIcon.d.ts.map +0 -1
- package/dist/src/components/icons/svg-icons/FullscreenEnterIcon.js +0 -3
- package/dist/src/components/icons/svg-icons/FullscreenExitIcon.d.ts.map +0 -1
- package/dist/src/components/icons/svg-icons/FullscreenExitIcon.js +0 -3
- package/dist/src/components/icons/svg-icons/LoadingIcon.d.ts.map +0 -1
- package/dist/src/components/icons/svg-icons/LoadingIcon.js +0 -3
- package/dist/src/components/icons/svg-icons/PauseIcon.d.ts.map +0 -1
- package/dist/src/components/icons/svg-icons/PauseIcon.js +0 -3
- package/dist/src/components/icons/svg-icons/PlayIcon.d.ts.map +0 -1
- package/dist/src/components/icons/svg-icons/PlayIcon.js +0 -3
- package/dist/src/components/icons/svg-icons/PlaybackSpeedIcon.d.ts.map +0 -1
- package/dist/src/components/icons/svg-icons/PlaybackSpeedIcon.js +0 -3
- package/dist/src/components/icons/svg-icons/QualityIcon.d.ts.map +0 -1
- package/dist/src/components/icons/svg-icons/QualityIcon.js +0 -3
- package/dist/src/components/icons/svg-icons/SettingsIcon.d.ts.map +0 -1
- package/dist/src/components/icons/svg-icons/SettingsIcon.js +0 -3
- package/dist/src/components/icons/svg-icons/SliderIcon.d.ts.map +0 -1
- package/dist/src/components/icons/svg-icons/SliderIcon.js +0 -3
- package/dist/src/components/icons/svg-icons/SubtitleIcon.d.ts.map +0 -1
- package/dist/src/components/icons/svg-icons/SubtitleIcon.js +0 -3
- package/dist/src/components/icons/svg-icons/SubtitleOffIcon.d.ts.map +0 -1
- package/dist/src/components/icons/svg-icons/SubtitleOffIcon.js +0 -3
- package/dist/src/components/icons/svg-icons/UnPiPIcon.d.ts.map +0 -1
- package/dist/src/components/icons/svg-icons/UnPiPIcon.js +0 -5
- package/dist/src/components/icons/svg-icons/VolumeMutedIcon.d.ts.map +0 -1
- package/dist/src/components/icons/svg-icons/VolumeMutedIcon.js +0 -3
- package/dist/src/components/icons/svg-icons/VolumeOneIcon.d.ts.map +0 -1
- package/dist/src/components/icons/svg-icons/VolumeOneIcon.js +0 -3
- package/dist/src/components/icons/svg-icons/VolumeThreeIcon.d.ts.map +0 -1
- package/dist/src/components/icons/svg-icons/VolumeThreeIcon.js +0 -3
- package/dist/src/components/icons/svg-icons/VolumeTwoIcon.d.ts.map +0 -1
- package/dist/src/components/icons/svg-icons/VolumeTwoIcon.js +0 -3
- package/dist/src/components/legacy.d.ts.map +0 -1
- package/dist/src/components/legacy.js +0 -52
- package/dist/src/components/media-metadata-display.d.ts.map +0 -1
- package/dist/src/components/media-metadata-display.js +0 -20
- package/dist/src/components/media-player-audio.d.ts.map +0 -1
- package/dist/src/components/media-player-audio.js +0 -18
- package/dist/src/components/media-player-controls.d.ts.map +0 -1
- package/dist/src/components/media-player-controls.js +0 -150
- package/dist/src/components/media-player-error.d.ts.map +0 -1
- package/dist/src/components/media-player-error.js +0 -85
- package/dist/src/components/media-player-fullscreen.d.ts.map +0 -1
- package/dist/src/components/media-player-fullscreen.js +0 -68
- package/dist/src/components/media-player-hls.d.ts.map +0 -1
- package/dist/src/components/media-player-hls.js +0 -20
- package/dist/src/components/media-player-loading.d.ts.map +0 -1
- package/dist/src/components/media-player-loading.js +0 -53
- package/dist/src/components/media-player-play.d.ts.map +0 -1
- package/dist/src/components/media-player-play.js +0 -44
- package/dist/src/components/media-player-root.d.ts.map +0 -1
- package/dist/src/components/media-player-root.js +0 -243
- package/dist/src/components/media-player-seek.d.ts.map +0 -1
- package/dist/src/components/media-player-seek.js +0 -92
- package/dist/src/components/media-player-time.d.ts.map +0 -1
- package/dist/src/components/media-player-time.js +0 -57
- package/dist/src/components/media-player-tooltip.d.ts.map +0 -1
- package/dist/src/components/media-player-tooltip.js +0 -14
- package/dist/src/components/media-player-video.d.ts.map +0 -1
- package/dist/src/components/media-player-video.js +0 -18
- package/dist/src/components/media-player-volume.d.ts.map +0 -1
- package/dist/src/components/media-player-volume.js +0 -88
- package/dist/src/components/media-player.d.ts.map +0 -1
- package/dist/src/components/media-player.js +0 -67
- package/dist/src/components/media-suspense.d.ts.map +0 -1
- package/dist/src/components/media-suspense.js +0 -173
- package/dist/src/components/player-settings-form.d.ts.map +0 -1
- package/dist/src/components/player-settings-form.js +0 -46
- package/dist/src/components/react-player-wrapper.d.ts.map +0 -1
- package/dist/src/components/react-player-wrapper.js +0 -163
- package/dist/src/components/simple-video-player.d.ts.map +0 -1
- package/dist/src/components/simple-video-player.js +0 -41
- package/dist/src/components/ui/enhanced-seek-bar.d.ts.map +0 -1
- package/dist/src/components/ui/enhanced-seek-bar.js +0 -112
- package/dist/src/components/ui/fullscreen-button.d.ts.map +0 -1
- package/dist/src/components/ui/fullscreen-button.js +0 -21
- package/dist/src/components/ui/media-resource-preloader.d.ts.map +0 -1
- package/dist/src/components/ui/media-resource-preloader.js +0 -295
- package/dist/src/components/ui/play-button.d.ts.map +0 -1
- package/dist/src/components/ui/play-button.js +0 -26
- package/dist/src/components/ui/seek-bar.d.ts.map +0 -1
- package/dist/src/components/ui/seek-bar.js +0 -54
- package/dist/src/components/ui/time-display.d.ts.map +0 -1
- package/dist/src/components/ui/time-display.js +0 -18
- package/dist/src/components/ui/volume-control.d.ts.map +0 -1
- package/dist/src/components/ui/volume-control.js +0 -71
- package/dist/src/components/unified/base-media-player.d.ts.map +0 -1
- package/dist/src/components/unified/base-media-player.js +0 -104
- package/dist/src/components/unified/media-player.d.ts.map +0 -1
- package/dist/src/components/unified/media-player.js +0 -41
- package/dist/src/components/variants/minimal/AccessibleMinimalPlayer.d.ts.map +0 -1
- package/dist/src/components/variants/minimal/AccessibleMinimalPlayer.js +0 -322
- package/dist/src/components/variants/minimal/EnhancedMinimalMediaPlayer.d.ts.map +0 -1
- package/dist/src/components/variants/minimal/EnhancedMinimalMediaPlayer.js +0 -280
- package/dist/src/components/variants/minimal/MinimalControls.d.ts.map +0 -1
- package/dist/src/components/variants/minimal/MinimalControls.js +0 -19
- package/dist/src/components/variants/minimal/MinimalLoading.d.ts.map +0 -1
- package/dist/src/components/variants/minimal/MinimalLoading.js +0 -6
- package/dist/src/components/variants/minimal/MinimalMediaPlayer.d.ts.map +0 -1
- package/dist/src/components/variants/minimal/MinimalMediaPlayer.js +0 -135
- package/dist/src/components/variants/minimal/MinimalOverlay.d.ts.map +0 -1
- package/dist/src/components/variants/minimal/MinimalOverlay.js +0 -15
- package/dist/src/components/variants/minimal/MinimalPlayButton.d.ts.map +0 -1
- package/dist/src/components/variants/minimal/MinimalPlayButton.js +0 -29
- package/dist/src/components/variants/minimal/MinimalSeekBar.d.ts.map +0 -1
- package/dist/src/components/variants/minimal/MinimalSeekBar.js +0 -73
- package/dist/src/components/variants/minimal/MinimalVolumeControl.d.ts.map +0 -1
- package/dist/src/components/variants/minimal/MinimalVolumeControl.js +0 -29
- package/dist/src/components/variants/minimal/SimpleMinimalPlayer.d.ts.map +0 -1
- package/dist/src/components/variants/minimal/SimpleMinimalPlayer.js +0 -51
- package/dist/src/components/variants/minimal/components/CenterPlayButton.d.ts.map +0 -1
- package/dist/src/components/variants/minimal/components/CenterPlayButton.js +0 -8
- package/dist/src/components/variants/minimal/components/ControlBar.d.ts.map +0 -1
- package/dist/src/components/variants/minimal/components/ControlBar.js +0 -10
- package/dist/src/components/variants/minimal/components/EnhancedSettingsMenu.d.ts.map +0 -1
- package/dist/src/components/variants/minimal/components/EnhancedSettingsMenu.js +0 -68
- package/dist/src/components/variants/minimal/components/PlaybackControls.d.ts.map +0 -1
- package/dist/src/components/variants/minimal/components/PlaybackControls.js +0 -9
- package/dist/src/components/variants/minimal/components/RightControls.d.ts.map +0 -1
- package/dist/src/components/variants/minimal/components/RightControls.js +0 -40
- package/dist/src/components/variants/minimal/components/SeekBar.d.ts.map +0 -1
- package/dist/src/components/variants/minimal/components/SeekBar.js +0 -43
- package/dist/src/components/variants/minimal/components/SettingsDropdown.d.ts.map +0 -1
- package/dist/src/components/variants/minimal/components/SettingsDropdown.js +0 -18
- package/dist/src/components/variants/minimal/components/SubtitleDisplay.d.ts.map +0 -1
- package/dist/src/components/variants/minimal/components/SubtitleDisplay.js +0 -6
- package/dist/src/components/variants/minimal/components/TimeDisplay.d.ts.map +0 -1
- package/dist/src/components/variants/minimal/components/TimeDisplay.js +0 -5
- package/dist/src/components/variants/minimal/components/VideoElement.d.ts.map +0 -1
- package/dist/src/components/variants/minimal/components/VideoElement.js +0 -4
- package/dist/src/components/variants/minimal/components/VolumeControl.d.ts.map +0 -1
- package/dist/src/components/variants/minimal/components/VolumeControl.js +0 -99
- package/dist/src/components/variants/minimal/index.d.ts.map +0 -1
- package/dist/src/components/variants/minimal/index.js +0 -8
- package/dist/src/components/video-player.d.ts.map +0 -1
- package/dist/src/components/video-player.js +0 -38
- package/dist/src/context/error-handling.d.ts.map +0 -1
- package/dist/src/context/error-handling.js +0 -300
- package/dist/src/context/media-context.d.ts.map +0 -1
- package/dist/src/context/media-context.js +0 -121
- package/dist/src/context/media-provider.d.ts.map +0 -1
- package/dist/src/context/media-provider.js +0 -164
- package/dist/src/context/media-store.d.ts.map +0 -1
- package/dist/src/context/media-store.js +0 -273
- package/dist/src/context/persistence.d.ts.map +0 -1
- package/dist/src/context/persistence.js +0 -356
- package/dist/src/core/events/event-system.d.ts.map +0 -1
- package/dist/src/core/events/event-system.js +0 -288
- package/dist/src/core/events/hooks.d.ts.map +0 -1
- package/dist/src/core/events/hooks.js +0 -198
- package/dist/src/core/events/index.d.ts.map +0 -1
- package/dist/src/core/events/index.js +0 -7
- package/dist/src/core/events/middleware.d.ts.map +0 -1
- package/dist/src/core/events/middleware.js +0 -219
- package/dist/src/core/index.d.ts.map +0 -1
- package/dist/src/core/index.js +0 -15
- package/dist/src/core/optimization/bundle-optimizer.d.ts.map +0 -1
- package/dist/src/core/optimization/bundle-optimizer.js +0 -217
- package/dist/src/core/performance/cicd.d.ts.map +0 -1
- package/dist/src/core/performance/cicd.js +0 -83
- package/dist/src/core/performance/index.d.ts.map +0 -1
- package/dist/src/core/performance/index.js +0 -14
- package/dist/src/core/performance/media-loading-optimizer.d.ts.map +0 -1
- package/dist/src/core/performance/media-loading-optimizer.js +0 -404
- package/dist/src/core/performance/performance-budgets.d.ts.map +0 -1
- package/dist/src/core/performance/performance-budgets.js +0 -326
- package/dist/src/core/performance/performance-monitor.d.ts.map +0 -1
- package/dist/src/core/performance/performance-monitor.js +0 -297
- package/dist/src/core/performance/performance-testing.d.ts.map +0 -1
- package/dist/src/core/performance/performance-testing.js +0 -314
- package/dist/src/core/plugins/base-plugin.d.ts.map +0 -1
- package/dist/src/core/plugins/base-plugin.js +0 -151
- package/dist/src/core/plugins/enhanced-plugin-system.d.ts.map +0 -1
- package/dist/src/core/plugins/enhanced-plugin-system.js +0 -305
- package/dist/src/core/plugins/examples/analytics-plugin.d.ts.map +0 -1
- package/dist/src/core/plugins/examples/analytics-plugin.js +0 -191
- package/dist/src/core/plugins/index.d.ts.map +0 -1
- package/dist/src/core/plugins/index.js +0 -9
- package/dist/src/core/plugins/registry.d.ts.map +0 -1
- package/dist/src/core/plugins/registry.js +0 -261
- package/dist/src/core/plugins/types.d.ts.map +0 -1
- package/dist/src/core/plugins/types.js +0 -31
- package/dist/src/core/plugins/utils.d.ts.map +0 -1
- package/dist/src/core/plugins/utils.js +0 -274
- package/dist/src/core/progressive-loading.d.ts.map +0 -1
- package/dist/src/core/progressive-loading.js +0 -239
- package/dist/src/core/providers/enhanced-hls-provider.d.ts.map +0 -1
- package/dist/src/core/providers/enhanced-hls-provider.js +0 -273
- package/dist/src/core/providers/service-provider.d.ts.map +0 -1
- package/dist/src/core/providers/service-provider.js +0 -105
- package/dist/src/core/utils.d.ts.map +0 -1
- package/dist/src/core/utils.js +0 -21
- package/dist/src/features/media-session/media-session-manager.d.ts.map +0 -1
- package/dist/src/features/media-session/media-session-manager.js +0 -331
- package/dist/src/features/picture-in-picture/pip-manager.d.ts.map +0 -1
- package/dist/src/features/picture-in-picture/pip-manager.js +0 -353
- package/dist/src/features/playlist/playlist-manager.d.ts.map +0 -1
- package/dist/src/features/playlist/playlist-manager.js +0 -475
- package/dist/src/features/subtitles/subtitle-manager.d.ts.map +0 -1
- package/dist/src/features/subtitles/subtitle-manager.js +0 -335
- package/dist/src/features/subtitles/subtitle-parser.d.ts.map +0 -1
- package/dist/src/features/subtitles/subtitle-parser.js +0 -217
- package/dist/src/features/thumbnails/thumbnail-generator.d.ts.map +0 -1
- package/dist/src/features/thumbnails/thumbnail-generator.js +0 -388
- package/dist/src/hooks/accessibility/index.d.ts.map +0 -1
- package/dist/src/hooks/accessibility/index.js +0 -4
- package/dist/src/hooks/accessibility/use-accessibility-preferences.d.ts.map +0 -1
- package/dist/src/hooks/accessibility/use-accessibility-preferences.js +0 -156
- package/dist/src/hooks/accessibility/use-focus-management.d.ts.map +0 -1
- package/dist/src/hooks/accessibility/use-focus-management.js +0 -142
- package/dist/src/hooks/accessibility/use-keyboard-shortcuts.d.ts.map +0 -1
- package/dist/src/hooks/accessibility/use-keyboard-shortcuts.js +0 -101
- package/dist/src/hooks/accessibility/use-screen-reader.d.ts.map +0 -1
- package/dist/src/hooks/accessibility/use-screen-reader.js +0 -148
- package/dist/src/hooks/core/index.d.ts.map +0 -1
- package/dist/src/hooks/core/index.js +0 -19
- package/dist/src/hooks/legacy.d.ts.map +0 -1
- package/dist/src/hooks/legacy.js +0 -17
- package/dist/src/hooks/use-enhanced-media-player.d.ts.map +0 -1
- package/dist/src/hooks/use-enhanced-media-player.js +0 -395
- package/dist/src/hooks/use-intelligent-preloading.d.ts.map +0 -1
- package/dist/src/hooks/use-intelligent-preloading.js +0 -258
- package/dist/src/hooks/use-keyboard-controls.d.ts.map +0 -1
- package/dist/src/hooks/use-keyboard-controls.js +0 -83
- package/dist/src/hooks/use-media-actions.d.ts.map +0 -1
- package/dist/src/hooks/use-media-actions.js +0 -121
- package/dist/src/hooks/use-media-metadata.d.ts.map +0 -1
- package/dist/src/hooks/use-media-metadata.js +0 -74
- package/dist/src/hooks/use-media-optimistic.d.ts.map +0 -1
- package/dist/src/hooks/use-media-optimistic.js +0 -205
- package/dist/src/hooks/use-media-player.d.ts.map +0 -1
- package/dist/src/hooks/use-media-player.js +0 -251
- package/dist/src/hooks/use-media-state.d.ts.map +0 -1
- package/dist/src/hooks/use-media-state.js +0 -162
- package/dist/src/hooks/use-memory-optimization.d.ts.map +0 -1
- package/dist/src/hooks/use-memory-optimization.js +0 -288
- package/dist/src/hooks/use-optimistic-controls.d.ts.map +0 -1
- package/dist/src/hooks/use-optimistic-controls.js +0 -60
- package/dist/src/hooks/use-optimized-media.d.ts.map +0 -1
- package/dist/src/hooks/use-optimized-media.js +0 -211
- package/dist/src/hooks/use-touch-gestures.d.ts.map +0 -1
- package/dist/src/hooks/use-touch-gestures.js +0 -289
- package/dist/src/hooks/useEnhancedSubtitles.d.ts.map +0 -1
- package/dist/src/hooks/useEnhancedSubtitles.js +0 -205
- package/dist/src/hooks/useKeyboardShortcuts.d.ts.map +0 -1
- package/dist/src/hooks/useKeyboardShortcuts.js +0 -59
- package/dist/src/hooks/useMediaControls.d.ts.map +0 -1
- package/dist/src/hooks/useMediaControls.js +0 -44
- package/dist/src/hooks/useScreenshot.d.ts.map +0 -1
- package/dist/src/hooks/useScreenshot.js +0 -56
- package/dist/src/hooks/useSubtitles.d.ts.map +0 -1
- package/dist/src/hooks/useSubtitles.js +0 -73
- package/dist/src/hooks/useVideoPlayer.d.ts.map +0 -1
- package/dist/src/hooks/useVideoPlayer.js +0 -184
- package/dist/src/icons/components/FullscreenIcon.d.ts.map +0 -1
- package/dist/src/icons/components/FullscreenIcon.js +0 -11
- package/dist/src/icons/components/SettingsIcon.d.ts.map +0 -1
- package/dist/src/icons/components/SettingsIcon.js +0 -11
- package/dist/src/icons/components/animated/LoadingIcon.d.ts.map +0 -1
- package/dist/src/icons/components/animated/LoadingIcon.js +0 -11
- package/dist/src/icons/components/animated/PlayPauseIcon.d.ts.map +0 -1
- package/dist/src/icons/components/animated/PlayPauseIcon.js +0 -9
- package/dist/src/icons/components/media/PauseIcon.d.ts.map +0 -1
- package/dist/src/icons/components/media/PauseIcon.js +0 -12
- package/dist/src/icons/components/media/PlayIcon.d.ts.map +0 -1
- package/dist/src/icons/components/media/PlayIcon.js +0 -12
- package/dist/src/icons/components/volume/VolumeIcon.d.ts.map +0 -1
- package/dist/src/icons/components/volume/VolumeIcon.js +0 -11
- package/dist/src/icons/components/volume/VolumeOffIcon.d.ts.map +0 -1
- package/dist/src/icons/components/volume/VolumeOffIcon.js +0 -11
- package/dist/src/icons/index.d.ts.map +0 -1
- package/dist/src/icons/index.js +0 -45
- package/dist/src/icons/provider.d.ts.map +0 -1
- package/dist/src/icons/provider.js +0 -37
- package/dist/src/icons/types.d.ts.map +0 -1
- package/dist/src/icons/types.js +0 -1
- package/dist/src/index-enhanced.d.ts.map +0 -1
- package/dist/src/index-enhanced.js +0 -16
- package/dist/src/index-legacy.d.ts.map +0 -1
- package/dist/src/index-legacy.js +0 -97
- package/dist/src/index.d.ts.map +0 -1
- package/dist/src/index.js +0 -90
- package/dist/src/index.minimal.d.ts.map +0 -1
- package/dist/src/index.minimal.js +0 -3
- package/dist/src/lib/deprecation.d.ts.map +0 -1
- package/dist/src/lib/deprecation.js +0 -31
- package/dist/src/lib/format-time.d.ts.map +0 -1
- package/dist/src/lib/format-time.js +0 -32
- package/dist/src/lib/index.d.ts.map +0 -1
- package/dist/src/lib/index.js +0 -3
- package/dist/src/lib/utils.d.ts.map +0 -1
- package/dist/src/lib/utils.js +0 -5
- package/dist/src/test/setup.d.ts.map +0 -1
- package/dist/src/test/setup.js +0 -65
- package/dist/src/types/events.d.ts.map +0 -1
- package/dist/src/types/events.js +0 -2
- package/dist/src/types/formats.d.ts.map +0 -1
- package/dist/src/types/formats.js +0 -63
- package/dist/src/types/index.d.ts.map +0 -1
- package/dist/src/types/index.js +0 -4
- package/dist/utils-Db13763z.cjs +0 -9
- package/dist/utils-Db13763z.cjs.map +0 -1
- package/dist/utils-nTO4AnHo.js +0 -2809
- package/dist/utils-nTO4AnHo.js.map +0 -1
- package/dist/utils.js +0 -2
- package/dist/utils.js.map +0 -1
- package/dist/utils.mjs +0 -7
- package/dist/utils.mjs.map +0 -1
- package/src/adapters/videojs-adapter.js +0 -350
- package/src/components/AnimateLoading.js +0 -41
- package/src/components/LoadingState.js +0 -111
- package/src/components/accessibility/keyboard-help-overlay.js +0 -90
- package/src/components/audio-player.js +0 -31
- package/src/components/basic/index.js +0 -29
- package/src/components/enhanced/advanced-features.js +0 -64
- package/src/components/enhanced/debug-panel.js +0 -94
- package/src/components/enhanced/enhanced-controls.js +0 -233
- package/src/components/enhanced/enhanced-media-player.js +0 -316
- package/src/components/enhanced/error-handling.js +0 -153
- package/src/components/enhanced/index.js +0 -10
- package/src/components/enhanced/media-player-enhanced.js +0 -250
- package/src/components/examples/basic-video-player.js +0 -16
- package/src/components/examples/custom-controls-example.js +0 -12
- package/src/components/examples/enhanced-controls-example.js +0 -18
- package/src/components/examples/enhanced-media-player-example.js +0 -13
- package/src/components/examples/loading-states-demo.js +0 -41
- package/src/components/examples/react-19-demo.js +0 -104
- package/src/components/examples/volume-orientation-demo.js +0 -31
- package/src/components/icon-demo.js +0 -16
- package/src/components/icons/index.js +0 -59
- package/src/components/icons/svg-icons/ArrowLeftIcon.js +0 -3
- package/src/components/icons/svg-icons/ArrowRightIcon.js +0 -3
- package/src/components/icons/svg-icons/AudioIcon.js +0 -4
- package/src/components/icons/svg-icons/BackwardIcon.js +0 -3
- package/src/components/icons/svg-icons/CameraIcon.js +0 -4
- package/src/components/icons/svg-icons/CheckIcon.js +0 -4
- package/src/components/icons/svg-icons/EnablePiPIcon.js +0 -5
- package/src/components/icons/svg-icons/ForwardIcon.js +0 -3
- package/src/components/icons/svg-icons/FullscreenEnterIcon.js +0 -3
- package/src/components/icons/svg-icons/FullscreenExitIcon.js +0 -3
- package/src/components/icons/svg-icons/LoadingIcon.js +0 -3
- package/src/components/icons/svg-icons/PauseIcon.js +0 -3
- package/src/components/icons/svg-icons/PlayIcon.js +0 -3
- package/src/components/icons/svg-icons/PlaybackSpeedIcon.js +0 -3
- package/src/components/icons/svg-icons/QualityIcon.js +0 -3
- package/src/components/icons/svg-icons/SettingsIcon.js +0 -3
- package/src/components/icons/svg-icons/SliderIcon.js +0 -3
- package/src/components/icons/svg-icons/SubtitleIcon.js +0 -3
- package/src/components/icons/svg-icons/SubtitleOffIcon.js +0 -3
- package/src/components/icons/svg-icons/UnPiPIcon.js +0 -5
- package/src/components/icons/svg-icons/VolumeMutedIcon.js +0 -3
- package/src/components/icons/svg-icons/VolumeOneIcon.js +0 -3
- package/src/components/icons/svg-icons/VolumeThreeIcon.js +0 -3
- package/src/components/icons/svg-icons/VolumeTwoIcon.js +0 -3
- package/src/components/legacy.js +0 -52
- package/src/components/media-metadata-display.js +0 -20
- package/src/components/media-player-audio.js +0 -18
- package/src/components/media-player-controls.js +0 -150
- package/src/components/media-player-error.js +0 -85
- package/src/components/media-player-fullscreen.js +0 -68
- package/src/components/media-player-hls.js +0 -20
- package/src/components/media-player-loading.js +0 -53
- package/src/components/media-player-play.js +0 -44
- package/src/components/media-player-root.js +0 -243
- package/src/components/media-player-seek.js +0 -92
- package/src/components/media-player-time.js +0 -57
- package/src/components/media-player-tooltip.js +0 -14
- package/src/components/media-player-video.js +0 -18
- package/src/components/media-player-volume.js +0 -88
- package/src/components/media-player.js +0 -67
- package/src/components/media-suspense.js +0 -173
- package/src/components/player-settings-form.js +0 -46
- package/src/components/react-player-wrapper.js +0 -163
- package/src/components/simple-video-player.js +0 -41
- package/src/components/ui/enhanced-seek-bar.js +0 -112
- package/src/components/ui/fullscreen-button.js +0 -21
- package/src/components/ui/media-resource-preloader.js +0 -295
- package/src/components/ui/play-button.js +0 -26
- package/src/components/ui/seek-bar.js +0 -54
- package/src/components/ui/time-display.js +0 -18
- package/src/components/ui/volume-control.js +0 -71
- package/src/components/unified/base-media-player.js +0 -104
- package/src/components/unified/media-player.js +0 -41
- package/src/components/variants/minimal/AccessibleMinimalPlayer.js +0 -322
- package/src/components/variants/minimal/EnhancedMinimalMediaPlayer.js +0 -280
- package/src/components/variants/minimal/MinimalControls.js +0 -19
- package/src/components/variants/minimal/MinimalLoading.js +0 -6
- package/src/components/variants/minimal/MinimalMediaPlayer.js +0 -135
- package/src/components/variants/minimal/MinimalOverlay.js +0 -15
- package/src/components/variants/minimal/MinimalPlayButton.js +0 -29
- package/src/components/variants/minimal/MinimalSeekBar.js +0 -73
- package/src/components/variants/minimal/MinimalVolumeControl.js +0 -29
- package/src/components/variants/minimal/SimpleMinimalPlayer.js +0 -51
- package/src/components/variants/minimal/components/CenterPlayButton.js +0 -8
- package/src/components/variants/minimal/components/ControlBar.js +0 -10
- package/src/components/variants/minimal/components/EnhancedSettingsMenu.js +0 -68
- package/src/components/variants/minimal/components/PlaybackControls.js +0 -9
- package/src/components/variants/minimal/components/RightControls.js +0 -40
- package/src/components/variants/minimal/components/SeekBar.js +0 -43
- package/src/components/variants/minimal/components/SettingsDropdown.js +0 -18
- package/src/components/variants/minimal/components/SubtitleDisplay.js +0 -6
- package/src/components/variants/minimal/components/TimeDisplay.js +0 -5
- package/src/components/variants/minimal/components/VideoElement.js +0 -4
- package/src/components/variants/minimal/components/VolumeControl.js +0 -99
- package/src/components/variants/minimal/index.js +0 -8
- package/src/components/video-player.js +0 -38
- package/src/context/error-handling.js +0 -300
- package/src/context/media-context.js +0 -121
- package/src/context/media-provider.js +0 -164
- package/src/context/media-store.js +0 -273
- package/src/context/persistence.js +0 -356
- package/src/core/events/event-system.js +0 -288
- package/src/core/events/hooks.js +0 -198
- package/src/core/events/index.js +0 -7
- package/src/core/events/middleware.js +0 -219
- package/src/core/index.js +0 -15
- package/src/core/optimization/bundle-optimizer.js +0 -217
- package/src/core/performance/cicd.js +0 -83
- package/src/core/performance/index.js +0 -14
- package/src/core/performance/media-loading-optimizer.js +0 -404
- package/src/core/performance/performance-budgets.js +0 -326
- package/src/core/performance/performance-monitor.js +0 -297
- package/src/core/performance/performance-testing.js +0 -314
- package/src/core/plugins/base-plugin.js +0 -151
- package/src/core/plugins/enhanced-plugin-system.js +0 -305
- package/src/core/plugins/examples/analytics-plugin.js +0 -191
- package/src/core/plugins/index.js +0 -9
- package/src/core/plugins/registry.js +0 -261
- package/src/core/plugins/types.js +0 -31
- package/src/core/plugins/utils.js +0 -274
- package/src/core/progressive-loading.js +0 -239
- package/src/core/providers/enhanced-hls-provider.js +0 -273
- package/src/core/providers/service-provider.js +0 -105
- package/src/core/utils.js +0 -21
- package/src/features/media-session/media-session-manager.js +0 -331
- package/src/features/picture-in-picture/pip-manager.js +0 -353
- package/src/features/playlist/playlist-manager.js +0 -475
- package/src/features/subtitles/subtitle-manager.js +0 -335
- package/src/features/subtitles/subtitle-parser.js +0 -217
- package/src/features/thumbnails/thumbnail-generator.js +0 -388
- package/src/hooks/accessibility/index.js +0 -4
- package/src/hooks/accessibility/use-accessibility-preferences.js +0 -156
- package/src/hooks/accessibility/use-focus-management.js +0 -142
- package/src/hooks/accessibility/use-keyboard-shortcuts.js +0 -101
- package/src/hooks/accessibility/use-screen-reader.js +0 -148
- package/src/hooks/core/index.js +0 -19
- package/src/hooks/legacy.js +0 -17
- package/src/hooks/use-enhanced-media-player.js +0 -395
- package/src/hooks/use-intelligent-preloading.js +0 -258
- package/src/hooks/use-keyboard-controls.js +0 -83
- package/src/hooks/use-media-actions.js +0 -121
- package/src/hooks/use-media-metadata.js +0 -74
- package/src/hooks/use-media-optimistic.js +0 -205
- package/src/hooks/use-media-player.js +0 -251
- package/src/hooks/use-media-state.js +0 -162
- package/src/hooks/use-memory-optimization.js +0 -288
- package/src/hooks/use-optimistic-controls.js +0 -60
- package/src/hooks/use-optimized-media.js +0 -211
- package/src/hooks/use-touch-gestures.js +0 -289
- package/src/hooks/useEnhancedSubtitles.js +0 -205
- package/src/hooks/useKeyboardShortcuts.js +0 -59
- package/src/hooks/useMediaControls.js +0 -44
- package/src/hooks/useScreenshot.js +0 -56
- package/src/hooks/useSubtitles.js +0 -73
- package/src/hooks/useVideoPlayer.js +0 -184
- package/src/icons/components/FullscreenIcon.js +0 -11
- package/src/icons/components/SettingsIcon.js +0 -11
- package/src/icons/components/animated/LoadingIcon.js +0 -11
- package/src/icons/components/animated/PlayPauseIcon.js +0 -9
- package/src/icons/components/media/PauseIcon.js +0 -12
- package/src/icons/components/media/PlayIcon.js +0 -12
- package/src/icons/components/volume/VolumeIcon.js +0 -11
- package/src/icons/components/volume/VolumeOffIcon.js +0 -11
- package/src/icons/index.js +0 -45
- package/src/icons/provider.js +0 -37
- package/src/icons/types.js +0 -1
- package/src/index-enhanced.js +0 -16
- package/src/index-legacy.js +0 -97
- package/src/index.js +0 -90
- package/src/index.minimal.js +0 -3
- package/src/lib/deprecation.js +0 -31
- package/src/lib/format-time.js +0 -32
- package/src/lib/index.js +0 -3
- package/src/lib/utils.js +0 -5
- package/src/test/setup.js +0 -65
- package/src/types/events.js +0 -2
- package/src/types/formats.js +0 -63
- package/src/types/index.js +0 -4
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"core-events-CN0-Vhhq.cjs","sources":["../src/core/events/event-system.ts","../src/core/events/middleware.ts","../src/core/events/hooks.ts","../src/core/events/index.ts"],"sourcesContent":["// Event system types\nexport interface MediaPlayerEvent {\n type: string\n timestamp: number\n target?: string\n detail?: any\n bubbles?: boolean\n cancelable?: boolean\n defaultPrevented?: boolean\n}\n\nexport type EventHandler<T = any> = (event: MediaPlayerEvent & { detail: T }) => void\nexport type EventUnsubscriber = () => void\n\nexport interface EventOptions {\n once?: boolean\n passive?: boolean\n priority?: 'high' | 'normal' | 'low'\n filter?: (event: MediaPlayerEvent) => boolean\n}\n\n// Event categories for organization\nexport type EventCategory = \n | 'media' // Media playback events\n | 'user' // User interaction events \n | 'system' // System/internal events\n | 'plugin' // Plugin events\n | 'error' // Error events\n | 'performance' // Performance events\n\n// Standard media events\nexport interface MediaEvents {\n // Playback events\n 'media:loadstart': { src: string }\n 'media:loadeddata': { duration: number }\n 'media:canplay': {}\n 'media:canplaythrough': {}\n 'media:play': { currentTime: number }\n 'media:pause': { currentTime: number }\n 'media:ended': { duration: number }\n 'media:seeking': { currentTime: number, targetTime: number }\n 'media:seeked': { currentTime: number, previousTime: number }\n 'media:timeupdate': { currentTime: number, duration: number }\n 'media:durationchange': { duration: number }\n 'media:volumechange': { volume: number, muted: boolean }\n 'media:ratechange': { playbackRate: number }\n \n // Loading events\n 'media:loadedmetadata': { src: string }\n 'media:progress': { buffered: TimeRanges }\n 'media:suspend': {}\n 'media:abort': {}\n 'media:error': { error: Error }\n 'media:stalled': {}\n 'media:waiting': {}\n \n // User interaction events \n 'user:click': { x: number, y: number, element: string }\n 'user:hover': { element: string }\n 'user:focus': { element: string }\n 'user:keyboard': { key: string, code: string, altKey: boolean, ctrlKey: boolean, shiftKey: boolean }\n 'user:gesture': { type: string, data: any }\n \n // System events\n 'system:ready': {}\n 'system:resize': { width: number, height: number }\n 'system:fullscreen': { isFullscreen: boolean }\n 'system:pip': { isPictureInPicture: boolean }\n 'system:visibility': { isVisible: boolean }\n \n // Plugin events\n 'plugin:loaded': { name: string }\n 'plugin:enabled': { name: string }\n 'plugin:disabled': { name: string }\n 'plugin:error': { name: string, error: Error }\n \n // Performance events\n 'performance:fps': { fps: number }\n 'performance:memory': { used: number, total: number }\n 'performance:load': { loadTime: number }\n}\n\n// Event bus implementation\nexport class EventBus {\n private listeners = new Map<string, Array<{\n handler: EventHandler\n options: EventOptions\n id: string\n }>>()\n \n private eventQueue: MediaPlayerEvent[] = []\n private isProcessing = false\n private middlewares: Array<(event: MediaPlayerEvent) => MediaPlayerEvent | null> = []\n private eventHistory: MediaPlayerEvent[] = []\n private maxHistorySize = 1000\n\n // Subscribe to events\n on<K extends keyof MediaEvents>(\n type: K,\n handler: EventHandler<MediaEvents[K]>,\n options: EventOptions = {}\n ): EventUnsubscriber {\n return this.addEventListener(type, handler as EventHandler, options)\n }\n\n // Subscribe to events (one-time)\n once<K extends keyof MediaEvents>(\n type: K,\n handler: EventHandler<MediaEvents[K]>,\n options: EventOptions = {}\n ): EventUnsubscriber {\n return this.addEventListener(type, handler as EventHandler, { ...options, once: true })\n }\n\n // Subscribe to events with wildcard support\n addEventListener(\n type: string,\n handler: EventHandler,\n options: EventOptions = {}\n ): EventUnsubscriber {\n const id = this.generateId()\n const listener = { handler, options, id }\n\n if (!this.listeners.has(type)) {\n this.listeners.set(type, [])\n }\n\n const listeners = this.listeners.get(type)!\n \n // Insert based on priority\n const priority = options.priority || 'normal'\n const priorityValue = { high: 2, normal: 1, low: 0 }[priority]\n \n let insertIndex = listeners.length\n for (let i = 0; i < listeners.length; i++) {\n const listener = listeners[i]\n if (!listener) continue\n const listenerPriority = listener.options.priority || 'normal'\n if (priorityValue > { high: 2, normal: 1, low: 0 }[listenerPriority]) {\n insertIndex = i\n break\n }\n }\n \n listeners.splice(insertIndex, 0, listener)\n\n // Return unsubscriber\n return () => {\n const index = listeners.findIndex(l => l.id === id)\n if (index !== -1) {\n listeners.splice(index, 1)\n }\n if (listeners.length === 0) {\n this.listeners.delete(type)\n }\n }\n }\n\n // Remove event listener\n removeEventListener(type: string, handler?: EventHandler): void {\n const listeners = this.listeners.get(type)\n if (!listeners) return\n\n if (handler) {\n const index = listeners.findIndex(l => l.handler === handler)\n if (index !== -1) {\n listeners.splice(index, 1)\n }\n } else {\n this.listeners.delete(type)\n }\n\n if (listeners && listeners.length === 0) {\n this.listeners.delete(type)\n }\n }\n\n // Emit events\n emit<K extends keyof MediaEvents>(\n type: K,\n detail?: MediaEvents[K],\n options?: Partial<MediaPlayerEvent>\n ): boolean {\n const event: MediaPlayerEvent = {\n type,\n timestamp: Date.now(),\n detail,\n bubbles: true,\n cancelable: true,\n defaultPrevented: false,\n ...options\n }\n\n return this.dispatchEvent(event)\n }\n\n // Dispatch event\n dispatchEvent(event: MediaPlayerEvent): boolean {\n // Apply middlewares\n let processedEvent: MediaPlayerEvent | null = event\n for (const middleware of this.middlewares) {\n processedEvent = middleware(processedEvent)\n if (!processedEvent) {\n return false // Event was cancelled by middleware\n }\n }\n\n // Add to history\n this.addToHistory(processedEvent)\n\n // Queue event for processing\n this.eventQueue.push(processedEvent)\n \n if (!this.isProcessing) {\n this.processEventQueue()\n }\n\n return !processedEvent.defaultPrevented\n }\n\n // Process event queue with React 19 concurrent scheduling\n private processEventQueue(): void {\n if (this.isProcessing) return\n\n this.isProcessing = true\n\n // Use scheduler for non-blocking event processing\n const schedule = (typeof window !== 'undefined' && 'scheduler' in window)\n ? (window as any).scheduler.postTask\n : (cb: () => void) => setTimeout(cb, 0)\n\n const processNext = () => {\n if (this.eventQueue.length === 0) {\n this.isProcessing = false\n return\n }\n\n const batchSize = Math.min(this.eventQueue.length, 5) // Process max 5 events per frame\n const events = this.eventQueue.splice(0, batchSize)\n\n // Process events in parallel using Promise.all\n Promise.all(events.map(event => this.processEvent(event).catch(console.error)))\n .then(() => {\n // Schedule next batch in next frame\n schedule(processNext)\n })\n .catch(() => {\n this.isProcessing = false\n })\n }\n\n schedule(processNext)\n }\n\n // Process individual event\n private async processEvent(event: MediaPlayerEvent): Promise<void> {\n const { type } = event\n\n // Get exact matches\n const exactListeners = this.listeners.get(type) || []\n \n // Get wildcard matches\n const wildcardListeners: typeof exactListeners = []\n for (const [pattern, listeners] of this.listeners.entries()) {\n if (pattern.includes('*') && this.matchPattern(type, pattern)) {\n wildcardListeners.push(...listeners)\n }\n }\n\n // Combine and sort by priority\n const allListeners = [...exactListeners, ...wildcardListeners]\n .sort((a, b) => {\n const priorityA = { high: 2, normal: 1, low: 0 }[a.options.priority || 'normal']\n const priorityB = { high: 2, normal: 1, low: 0 }[b.options.priority || 'normal']\n return priorityB - priorityA\n })\n\n // Execute listeners\n const listenersToRemove: string[] = []\n\n for (const listener of allListeners) {\n // Apply filter if present\n if (listener.options.filter && !listener.options.filter(event)) {\n continue\n }\n\n try {\n // Execute handler\n await Promise.resolve(listener.handler(event as any))\n\n // Mark for removal if once\n if (listener.options.once) {\n listenersToRemove.push(listener.id)\n }\n\n // Stop propagation if event was cancelled\n if (event.defaultPrevented && !event.bubbles) {\n break\n }\n } catch (error) {\n console.error(`Error in event handler for ${type}:`, error)\n \n // Log error instead\n console.error(`Event handler error for ${type}:`, error)\n }\n }\n\n // Remove one-time listeners\n for (const id of listenersToRemove) {\n for (const [eventType, listeners] of this.listeners.entries()) {\n const index = listeners.findIndex(l => l.id === id)\n if (index !== -1) {\n listeners.splice(index, 1)\n if (listeners.length === 0) {\n this.listeners.delete(eventType)\n }\n break\n }\n }\n }\n }\n\n // Add middleware\n use(middleware: (event: MediaPlayerEvent) => MediaPlayerEvent | null): () => void {\n this.middlewares.push(middleware)\n return () => {\n const index = this.middlewares.indexOf(middleware)\n if (index !== -1) {\n this.middlewares.splice(index, 1)\n }\n }\n }\n\n // Event history management\n private addToHistory(event: MediaPlayerEvent): void {\n this.eventHistory.push(event)\n if (this.eventHistory.length > this.maxHistorySize) {\n this.eventHistory.shift()\n }\n }\n\n // Get event history\n getHistory(filter?: (event: MediaPlayerEvent) => boolean): MediaPlayerEvent[] {\n return filter ? this.eventHistory.filter(filter) : [...this.eventHistory]\n }\n\n // Clear event history\n clearHistory(): void {\n this.eventHistory = []\n }\n\n // Pattern matching for wildcards\n private matchPattern(eventType: string, pattern: string): boolean {\n const regex = new RegExp(\n '^' + pattern.replace(/\\*/g, '.*').replace(/\\?/g, '.') + '$'\n )\n return regex.test(eventType)\n }\n\n // Generate unique ID\n private generateId(): string {\n return `event_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`\n }\n\n // Get listener count\n getListenerCount(type?: string): number {\n if (type) {\n return this.listeners.get(type)?.length || 0\n }\n return Array.from(this.listeners.values()).reduce((sum, listeners) => sum + listeners.length, 0)\n }\n\n // Get all event types\n getEventTypes(): string[] {\n return Array.from(this.listeners.keys())\n }\n\n // Clear all listeners\n removeAllListeners(type?: string): void {\n if (type) {\n this.listeners.delete(type)\n } else {\n this.listeners.clear()\n }\n }\n\n // Destroy event bus\n destroy(): void {\n this.listeners.clear()\n this.eventQueue = []\n this.middlewares = []\n this.eventHistory = []\n this.isProcessing = false\n }\n}\n\n// Default event bus instance\nexport const defaultEventBus = new EventBus()\n\n// Event delegation helper\nexport class EventDelegator {\n private eventBus: EventBus\n private element: HTMLElement\n private delegatedEvents = new Set<string>()\n\n constructor(eventBus: EventBus, element: HTMLElement) {\n this.eventBus = eventBus\n this.element = element\n }\n\n // Delegate DOM events to event bus\n delegate(domEvent: string, mediaEvent?: string): void {\n if (this.delegatedEvents.has(domEvent)) return\n\n const handler = (e: Event) => {\n this.eventBus.emit(mediaEvent || `dom:${domEvent}` as any, {\n originalEvent: e,\n target: (e.target as HTMLElement)?.tagName.toLowerCase(),\n currentTarget: (e.currentTarget as HTMLElement)?.tagName.toLowerCase()\n })\n }\n\n this.element.addEventListener(domEvent, handler, { passive: true })\n this.delegatedEvents.add(domEvent)\n }\n\n // Setup common delegations\n setupCommonDelegations(): void {\n this.delegate('click', 'user:click')\n this.delegate('mouseenter', 'user:hover')\n this.delegate('mouseleave', 'user:hover')\n this.delegate('focus', 'user:focus')\n this.delegate('blur', 'user:focus')\n this.delegate('keydown', 'user:keyboard')\n this.delegate('keyup', 'user:keyboard')\n }\n\n destroy(): void {\n this.delegatedEvents.clear()\n }\n}\n\n","import type { MediaPlayerEvent } from './event-system'\n\n// Middleware function type\nexport type EventMiddleware = (event: MediaPlayerEvent) => MediaPlayerEvent | null\n\n// Common middleware implementations\nexport const eventMiddlewares = {\n // Logging middleware\n logger: (prefix = '[Event]'): EventMiddleware => (event) => {\n if (process.env.NODE_ENV === 'development') {\n console.log(`${prefix} ${event.type}`, event.detail)\n }\n return event\n },\n\n // Throttling middleware\n throttle: (eventTypes: string[], delay = 100): EventMiddleware => {\n const lastTimes = new Map<string, number>()\n \n return (event) => {\n if (eventTypes.includes(event.type)) {\n const lastTime = lastTimes.get(event.type) || 0\n const now = event.timestamp\n \n if (now - lastTime < delay) {\n return null // Throttle this event\n }\n \n lastTimes.set(event.type, now)\n }\n \n return event\n }\n },\n\n // Debouncing middleware\n debounce: (eventTypes: string[], delay = 100): EventMiddleware => {\n const timeouts = new Map<string, NodeJS.Timeout>()\n const eventQueue = new Map<string, MediaPlayerEvent>()\n \n return (event) => {\n if (eventTypes.includes(event.type)) {\n // Clear existing timeout\n const existingTimeout = timeouts.get(event.type)\n if (existingTimeout) {\n clearTimeout(existingTimeout)\n }\n \n // Store the latest event\n eventQueue.set(event.type, event)\n \n // Set new timeout\n const timeout = setTimeout(() => {\n const queuedEvent = eventQueue.get(event.type)\n if (queuedEvent) {\n // Process the debounced event\n // Note: This is a simplified approach - in a real implementation,\n // you'd need to re-inject the event into the processing pipeline\n eventQueue.delete(event.type)\n timeouts.delete(event.type)\n }\n }, delay)\n \n timeouts.set(event.type, timeout)\n \n return null // Don't process immediately\n }\n \n return event\n }\n },\n\n // Filtering middleware\n filter: (predicate: (event: MediaPlayerEvent) => boolean): EventMiddleware => (event) => {\n return predicate(event) ? event : null\n },\n\n // Event transformation middleware\n transform: (transformer: (event: MediaPlayerEvent) => MediaPlayerEvent): EventMiddleware => (event) => {\n try {\n return transformer(event)\n } catch (error) {\n console.error('Error in event transformer:', error)\n return event\n }\n },\n\n // Performance monitoring middleware\n performance: (): EventMiddleware => {\n const metrics = new Map<string, { count: number; totalTime: number }>()\n \n return (event) => {\n const startTime = performance.now()\n \n // Update metrics\n const existing = metrics.get(event.type) || { count: 0, totalTime: 0 }\n existing.count++\n existing.totalTime += performance.now() - startTime\n metrics.set(event.type, existing)\n \n // Log metrics periodically (every 100 events)\n if (existing.count % 100 === 0) {\n const avgTime = existing.totalTime / existing.count\n console.log(`Event ${event.type}: ${existing.count} calls, avg ${avgTime.toFixed(2)}ms`)\n }\n \n return event\n }\n },\n\n // Error handling middleware\n errorHandler: (onError?: (error: Error, event: MediaPlayerEvent) => void): EventMiddleware => (event) => {\n try {\n // Validate event structure\n if (!event.type || typeof event.type !== 'string') {\n throw new Error('Invalid event: missing or invalid type')\n }\n \n if (!event.timestamp || typeof event.timestamp !== 'number') {\n throw new Error('Invalid event: missing or invalid timestamp')\n }\n \n return event\n } catch (error) {\n if (onError) {\n onError(error as Error, event)\n } else {\n console.error('Event validation error:', error)\n }\n return null\n }\n },\n\n // Security middleware (prevent certain events or sanitize data)\n security: (options: {\n blockedEventTypes?: string[]\n sanitizeDetail?: boolean\n maxDetailSize?: number\n } = {}): EventMiddleware => (event) => {\n const { blockedEventTypes = [], sanitizeDetail = true, maxDetailSize = 10000 } = options\n \n // Block certain event types\n if (blockedEventTypes.includes(event.type)) {\n console.warn(`Blocked event type: ${event.type}`)\n return null\n }\n \n // Sanitize detail if needed\n if (sanitizeDetail && event.detail) {\n try {\n const detailStr = JSON.stringify(event.detail)\n if (detailStr.length > maxDetailSize) {\n console.warn(`Event detail too large, truncating: ${event.type}`)\n event.detail = { ...event.detail, _truncated: true }\n }\n } catch (error) {\n console.warn(`Failed to serialize event detail: ${event.type}`)\n event.detail = { _serializationError: true }\n }\n }\n \n return event\n },\n\n // Conditional middleware\n when: (condition: (event: MediaPlayerEvent) => boolean, middleware: EventMiddleware): EventMiddleware => (event) => {\n return condition(event) ? middleware(event) : event\n },\n\n // Chain multiple middleware\n chain: (...middlewares: EventMiddleware[]): EventMiddleware => (event) => {\n let currentEvent: MediaPlayerEvent | null = event\n \n for (const middleware of middlewares) {\n if (currentEvent === null) break\n currentEvent = middleware(currentEvent)\n }\n \n return currentEvent\n }\n}\n\n// Middleware builder class\nexport class MiddlewareBuilder {\n private middlewares: EventMiddleware[] = []\n\n // Add middleware\n use(middleware: EventMiddleware): this {\n this.middlewares.push(middleware)\n return this\n }\n\n // Add logging\n log(prefix?: string): this {\n return this.use(eventMiddlewares.logger(prefix))\n }\n\n // Add throttling\n throttle(eventTypes: string[], delay?: number): this {\n return this.use(eventMiddlewares.throttle(eventTypes, delay))\n }\n\n // Add debouncing\n debounce(eventTypes: string[], delay?: number): this {\n return this.use(eventMiddlewares.debounce(eventTypes, delay))\n }\n\n // Add filtering\n filter(predicate: (event: MediaPlayerEvent) => boolean): this {\n return this.use(eventMiddlewares.filter(predicate))\n }\n\n // Add transformation\n transform(transformer: (event: MediaPlayerEvent) => MediaPlayerEvent): this {\n return this.use(eventMiddlewares.transform(transformer))\n }\n\n // Add performance monitoring\n performance(): this {\n return this.use(eventMiddlewares.performance())\n }\n\n // Add error handling\n errorHandler(onError?: (error: Error, event: MediaPlayerEvent) => void): this {\n return this.use(eventMiddlewares.errorHandler(onError))\n }\n\n // Add security\n security(options?: Parameters<typeof eventMiddlewares.security>[0]): this {\n return this.use(eventMiddlewares.security(options))\n }\n\n // Add conditional middleware\n when(condition: (event: MediaPlayerEvent) => boolean, middleware: EventMiddleware): this {\n return this.use(eventMiddlewares.when(condition, middleware))\n }\n\n // Build the final middleware\n build(): EventMiddleware {\n return eventMiddlewares.chain(...this.middlewares)\n }\n}\n\n// Helper to create middleware builder\nexport const createMiddleware = () => new MiddlewareBuilder()\n\n// Export commonly used middleware combinations\nexport const commonMiddlewares = {\n // Development middleware stack\n development: () => createMiddleware()\n .log('[Dev Event]')\n .performance()\n .errorHandler()\n .build(),\n\n // Production middleware stack\n production: () => createMiddleware()\n .security()\n .errorHandler()\n .throttle(['media:timeupdate', 'user:mousemove'], 16) // ~60fps\n .build(),\n\n // Testing middleware stack\n testing: () => createMiddleware()\n .errorHandler((error, event) => {\n throw new Error(`Event error in test: ${error.message} for event ${event.type}`)\n })\n .build()\n}","import React, { useEffect, useRef, useCallback, useMemo, useState } from 'react'\nimport { EventBus, type EventHandler, type EventUnsubscriber, type EventOptions, type MediaEvents } from './event-system'\n\n// Hook to use event bus with React\nexport function useEventBus(eventBus?: EventBus): EventBus {\n const eventBusRef = useRef<EventBus | null>(null)\n \n if (!eventBusRef.current) {\n eventBusRef.current = eventBus || new EventBus()\n }\n \n useEffect(() => {\n const currentEventBus = eventBusRef.current!\n \n return () => {\n // Cleanup on unmount\n currentEventBus.destroy()\n }\n }, [])\n \n return eventBusRef.current\n}\n\n// Hook to listen to events\nexport function useEventListener<K extends keyof MediaEvents>(\n eventBus: EventBus,\n type: K,\n handler: EventHandler<MediaEvents[K]>,\n options?: EventOptions,\n deps?: React.DependencyList\n): void {\n const handlerRef = useRef(handler)\n const optionsRef = useRef(options)\n \n // Update refs when dependencies change\n useEffect(() => {\n handlerRef.current = handler\n optionsRef.current = options\n })\n \n useEffect(() => {\n const unsubscribe = eventBus.on(type, handlerRef.current, optionsRef.current)\n return unsubscribe\n }, [eventBus, type, ...(deps || [])])\n}\n\n// Hook to emit events\nexport function useEventEmitter(eventBus: EventBus) {\n return useCallback(<K extends keyof MediaEvents>(\n type: K,\n detail?: MediaEvents[K],\n options?: Partial<MediaEvents[K]>\n ) => {\n return eventBus.emit(type, detail, options)\n }, [eventBus])\n}\n\n// Hook for one-time event listeners\nexport function useEventOnce<K extends keyof MediaEvents>(\n eventBus: EventBus,\n type: K,\n handler: EventHandler<MediaEvents[K]>,\n deps?: React.DependencyList\n): void {\n useEventListener(eventBus, type, handler, { once: true }, deps)\n}\n\n// Hook to create event handlers with automatic cleanup\nexport function useEventHandlers(eventBus: EventBus) {\n const handlersRef = useRef<EventUnsubscriber[]>([])\n \n const addHandler = useCallback(<K extends keyof MediaEvents>(\n type: K,\n handler: EventHandler<MediaEvents[K]>,\n options?: EventOptions\n ) => {\n const unsubscribe = eventBus.on(type, handler, options)\n handlersRef.current.push(unsubscribe)\n return unsubscribe\n }, [eventBus])\n \n const removeAllHandlers = useCallback(() => {\n handlersRef.current.forEach(unsubscribe => unsubscribe())\n handlersRef.current = []\n }, [])\n \n useEffect(() => {\n return removeAllHandlers\n }, [removeAllHandlers])\n \n return {\n on: addHandler,\n removeAll: removeAllHandlers\n }\n}\n\n// Hook for event history\nexport function useEventHistory(\n eventBus: EventBus,\n filter?: (event: any) => boolean,\n maxSize = 100\n) {\n const historyRef = useRef<any[]>([])\n \n useEffect(() => {\n const unsubscribe = eventBus.addEventListener('*', (event) => {\n if (!filter || filter(event)) {\n historyRef.current.push(event)\n \n // Limit history size\n if (historyRef.current.length > maxSize) {\n historyRef.current.shift()\n }\n }\n })\n \n return unsubscribe\n }, [eventBus, filter, maxSize])\n \n const clearHistory = useCallback(() => {\n historyRef.current = []\n }, [])\n \n return {\n history: historyRef.current,\n clearHistory\n }\n}\n\n// Hook for event metrics/analytics\nexport function useEventMetrics(eventBus: EventBus) {\n const metricsRef = useRef<Map<string, {\n count: number\n lastTimestamp: number\n frequency: number // events per second\n }>>(new Map())\n \n useEffect(() => {\n const updateMetrics = (event: any) => {\n const existing = metricsRef.current.get(event.type) || {\n count: 0,\n lastTimestamp: 0,\n frequency: 0\n }\n \n existing.count++\n \n if (existing.lastTimestamp > 0) {\n const timeDiff = (event.timestamp - existing.lastTimestamp) / 1000 // seconds\n existing.frequency = timeDiff > 0 ? 1 / timeDiff : 0\n }\n \n existing.lastTimestamp = event.timestamp\n metricsRef.current.set(event.type, existing)\n }\n \n const unsubscribe = eventBus.addEventListener('*', updateMetrics)\n return unsubscribe\n }, [eventBus])\n \n const getMetrics = useCallback(() => {\n return Object.fromEntries(metricsRef.current.entries())\n }, [])\n \n const resetMetrics = useCallback(() => {\n metricsRef.current.clear()\n }, [])\n \n return {\n getMetrics,\n resetMetrics\n }\n}\n\n// Hook for event debugging\nexport function useEventDebugger(\n eventBus: EventBus, \n options: {\n logEvents?: boolean\n logMetrics?: boolean\n filterEventTypes?: string[]\n } = {}\n) {\n const { logEvents = true, logMetrics = false, filterEventTypes } = options\n \n useEffect(() => {\n if (!logEvents) return\n \n const unsubscribe = eventBus.addEventListener('*', (event) => {\n if (filterEventTypes && !filterEventTypes.includes(event.type)) {\n return\n }\n \n console.group(`🎯 Event: ${event.type}`)\n console.log('Timestamp:', new Date(event.timestamp).toISOString())\n console.log('Detail:', event.detail)\n console.log('Bubbles:', event.bubbles)\n console.log('Cancelable:', event.cancelable)\n console.groupEnd()\n })\n \n return unsubscribe\n }, [eventBus, logEvents, filterEventTypes])\n \n useEffect(() => {\n if (!logMetrics) return\n \n const interval = setInterval(() => {\n const listenerCount = eventBus.getListenerCount()\n const eventTypes = eventBus.getEventTypes()\n \n console.group('📊 Event Metrics')\n console.log('Total Listeners:', listenerCount)\n console.log('Event Types:', eventTypes.length)\n console.log('Active Types:', eventTypes)\n console.groupEnd()\n }, 5000)\n \n return () => clearInterval(interval)\n }, [eventBus, logMetrics])\n}\n\n// Hook for conditional event handling\nexport function useConditionalEventListener<K extends keyof MediaEvents>(\n eventBus: EventBus,\n type: K,\n handler: EventHandler<MediaEvents[K]>,\n condition: boolean | (() => boolean),\n options?: EventOptions,\n deps?: React.DependencyList\n): void {\n const shouldListen = useMemo(() => {\n return typeof condition === 'function' ? condition() : condition\n }, [condition, ...(deps || [])])\n \n useEffect(() => {\n if (!shouldListen) return\n \n const unsubscribe = eventBus.on(type, handler, options)\n return unsubscribe\n }, [eventBus, type, shouldListen, ...(deps || [])])\n}\n\n// Hook for event state synchronization\nexport function useEventState<T>(\n eventBus: EventBus,\n initialValue: T,\n eventMapping: Record<string, (detail: any, currentValue: T) => T>\n) {\n const [state, setState] = useState<T>(initialValue)\n \n useEffect(() => {\n const unsubscribers: EventUnsubscriber[] = []\n \n Object.entries(eventMapping).forEach(([eventType, updater]) => {\n const unsubscribe = eventBus.addEventListener(eventType, (event) => {\n setState(current => updater(event.detail, current))\n })\n unsubscribers.push(unsubscribe)\n })\n \n return () => {\n unsubscribers.forEach(unsubscribe => unsubscribe())\n }\n }, [eventBus, eventMapping])\n \n return state\n}\n\n// Hook for creating event-driven effects\nexport function useEventEffect<K extends keyof MediaEvents>(\n eventBus: EventBus,\n type: K,\n effect: (detail: MediaEvents[K]) => void | (() => void),\n deps?: React.DependencyList\n): void {\n const cleanupRef = useRef<(() => void) | void>(undefined)\n \n useEventListener(\n eventBus,\n type,\n useCallback((event) => {\n // Clean up previous effect\n if (typeof cleanupRef.current === 'function') {\n cleanupRef.current()\n }\n \n // Run new effect\n cleanupRef.current = effect(event.detail)\n }, deps || []),\n undefined,\n deps\n )\n \n useEffect(() => {\n return () => {\n if (typeof cleanupRef.current === 'function') {\n cleanupRef.current()\n }\n }\n }, [])\n}","// Event system exports\nexport {\n EventBus,\n EventDelegator,\n defaultEventBus\n} from './event-system'\n\nexport type {\n MediaPlayerEvent,\n EventHandler,\n EventUnsubscriber,\n EventOptions,\n EventCategory,\n MediaEvents\n} from './event-system'\n\n// Event utilities\nexport * from './middleware'\nexport * from './hooks'\n\n// Version\nexport const EVENT_SYSTEM_VERSION = '1.0.0'"],"names":["EventBus","__publicField","type","handler","options","id","listener","listeners","priority","priorityValue","insertIndex","i","listenerPriority","index","l","detail","event","processedEvent","middleware","schedule","cb","processNext","batchSize","events","exactListeners","wildcardListeners","pattern","allListeners","a","b","priorityA","listenersToRemove","error","eventType","filter","sum","defaultEventBus","EventDelegator","eventBus","element","domEvent","mediaEvent","e","eventMiddlewares","prefix","eventTypes","delay","lastTimes","lastTime","now","timeouts","eventQueue","existingTimeout","timeout","predicate","transformer","metrics","startTime","existing","avgTime","onError","blockedEventTypes","sanitizeDetail","maxDetailSize","condition","middlewares","currentEvent","MiddlewareBuilder","createMiddleware","commonMiddlewares","useEventBus","eventBusRef","useRef","useEffect","currentEventBus","useEventListener","deps","handlerRef","optionsRef","useEventEmitter","useCallback","useEventOnce","useEventHandlers","handlersRef","addHandler","unsubscribe","removeAllHandlers","useEventHistory","maxSize","historyRef","clearHistory","useEventMetrics","metricsRef","updateMetrics","timeDiff","getMetrics","resetMetrics","useEventDebugger","logEvents","logMetrics","filterEventTypes","interval","listenerCount","useConditionalEventListener","shouldListen","useMemo","useEventState","initialValue","eventMapping","state","setState","useState","unsubscribers","updater","current","useEventEffect","effect","cleanupRef","EVENT_SYSTEM_VERSION"],"mappings":"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"}
|