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