@videojs/react 10.0.0-beta.24 → 10.0.0-beta.25
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/default/icons/dist/react/default/airplay-enter.js +16 -0
- package/dist/default/icons/dist/react/default/airplay-enter.js.map +1 -0
- package/dist/default/icons/dist/react/default/airplay-exit.js +28 -0
- package/dist/default/icons/dist/react/default/airplay-exit.js.map +1 -0
- package/dist/default/icons/dist/react/default/captions-off.js +5 -0
- package/dist/default/icons/dist/react/default/captions-off.js.map +1 -1
- package/dist/default/icons/dist/react/default/gear.js +16 -0
- package/dist/default/icons/dist/react/default/gear.js.map +1 -0
- package/dist/default/icons/dist/react/default/quality.js +16 -0
- package/dist/default/icons/dist/react/default/quality.js.map +1 -0
- package/dist/default/icons/dist/react/default/speech.js +19 -0
- package/dist/default/icons/dist/react/default/speech.js.map +1 -0
- package/dist/default/icons/dist/react/default/speed.js +52 -0
- package/dist/default/icons/dist/react/default/speed.js.map +1 -0
- package/dist/default/icons/dist/react/default/switches.js +19 -0
- package/dist/default/icons/dist/react/default/switches.js.map +1 -0
- package/dist/default/icons/dist/react/minimal/airplay-enter.js +16 -0
- package/dist/default/icons/dist/react/minimal/airplay-enter.js.map +1 -0
- package/dist/default/icons/dist/react/minimal/airplay-exit.js +28 -0
- package/dist/default/icons/dist/react/minimal/airplay-exit.js.map +1 -0
- package/dist/default/icons/dist/react/minimal/captions-off.js +5 -0
- package/dist/default/icons/dist/react/minimal/captions-off.js.map +1 -1
- package/dist/default/icons/dist/react/minimal/gear.js +16 -0
- package/dist/default/icons/dist/react/minimal/gear.js.map +1 -0
- package/dist/default/icons/dist/react/minimal/quality.js +16 -0
- package/dist/default/icons/dist/react/minimal/quality.js.map +1 -0
- package/dist/default/icons/dist/react/minimal/speech.js +54 -0
- package/dist/default/icons/dist/react/minimal/speech.js.map +1 -0
- package/dist/default/icons/dist/react/minimal/speed.js +52 -0
- package/dist/default/icons/dist/react/minimal/speed.js.map +1 -0
- package/dist/default/icons/dist/react/minimal/switches.js +19 -0
- package/dist/default/icons/dist/react/minimal/switches.js.map +1 -0
- package/dist/default/icons/index.js +8 -1
- package/dist/default/icons/minimal/index.js +8 -1
- package/dist/default/index.js +21 -17
- package/dist/default/media/dash-video/index.js +5 -1
- package/dist/default/media/dash-video/index.js.map +1 -1
- package/dist/default/media/{hls-video → hlsjs-video}/index.js +9 -5
- package/dist/default/media/hlsjs-video/index.js.map +1 -0
- package/dist/default/media/mux-audio/index.js +9 -3
- package/dist/default/media/mux-audio/index.js.map +1 -1
- package/dist/default/media/mux-video/index.js +9 -3
- package/dist/default/media/mux-video/index.js.map +1 -1
- package/dist/default/media/native-hls-video/index.js +5 -1
- package/dist/default/media/native-hls-video/index.js.map +1 -1
- package/dist/default/media/simple-hls-audio-only/index.js +22 -0
- package/dist/default/media/simple-hls-audio-only/index.js.map +1 -0
- package/dist/default/media/simple-hls-video/index.js +1 -1
- package/dist/default/media/vimeo-video/index.js +37 -0
- package/dist/default/media/vimeo-video/index.js.map +1 -0
- package/dist/default/player/context.js.map +1 -1
- package/dist/default/player/create-player.js +13 -4
- package/dist/default/player/create-player.js.map +1 -1
- package/dist/default/presets/audio/minimal-skin.css +414 -69
- package/dist/default/presets/audio/minimal-skin.js +69 -39
- package/dist/default/presets/audio/minimal-skin.js.map +1 -1
- package/dist/default/presets/audio/minimal-skin.tailwind.js +71 -42
- package/dist/default/presets/audio/minimal-skin.tailwind.js.map +1 -1
- package/dist/default/presets/audio/skin.css +419 -121
- package/dist/default/presets/audio/skin.js +70 -40
- package/dist/default/presets/audio/skin.js.map +1 -1
- package/dist/default/presets/audio/skin.tailwind.js +72 -42
- package/dist/default/presets/audio/skin.tailwind.js.map +1 -1
- package/dist/default/presets/live-audio/index.js +2 -2
- package/dist/default/presets/live-audio/minimal-skin.css +414 -69
- package/dist/default/presets/live-audio/minimal-skin.js +26 -12
- package/dist/default/presets/live-audio/minimal-skin.js.map +1 -1
- package/dist/default/presets/live-audio/minimal-skin.tailwind.js +27 -14
- package/dist/default/presets/live-audio/minimal-skin.tailwind.js.map +1 -1
- package/dist/default/presets/live-audio/skin.css +419 -121
- package/dist/default/presets/live-audio/skin.js +32 -14
- package/dist/default/presets/live-audio/skin.js.map +1 -1
- package/dist/default/presets/live-audio/skin.tailwind.js +27 -13
- package/dist/default/presets/live-audio/skin.tailwind.js.map +1 -1
- package/dist/default/presets/live-video/minimal-skin.css +566 -210
- package/dist/default/presets/live-video/minimal-skin.js +93 -12
- package/dist/default/presets/live-video/minimal-skin.js.map +1 -1
- package/dist/default/presets/live-video/minimal-skin.tailwind.js +94 -13
- package/dist/default/presets/live-video/minimal-skin.tailwind.js.map +1 -1
- package/dist/default/presets/live-video/skin.css +581 -264
- package/dist/default/presets/live-video/skin.js +95 -16
- package/dist/default/presets/live-video/skin.js.map +1 -1
- package/dist/default/presets/live-video/skin.tailwind.js +95 -17
- package/dist/default/presets/live-video/skin.tailwind.js.map +1 -1
- package/dist/default/presets/video/minimal-skin.css +566 -210
- package/dist/default/presets/video/minimal-skin.js +281 -53
- package/dist/default/presets/video/minimal-skin.js.map +1 -1
- package/dist/default/presets/video/minimal-skin.tailwind.js +284 -57
- package/dist/default/presets/video/minimal-skin.tailwind.js.map +1 -1
- package/dist/default/presets/video/skin.css +581 -264
- package/dist/default/presets/video/skin.js +282 -57
- package/dist/default/presets/video/skin.js.map +1 -1
- package/dist/default/presets/video/skin.tailwind.js +285 -61
- package/dist/default/presets/video/skin.tailwind.js.map +1 -1
- package/dist/default/skins/dist/default/default/tailwind/audio.tailwind.js +8 -3
- package/dist/default/skins/dist/default/default/tailwind/audio.tailwind.js.map +1 -1
- package/dist/default/skins/dist/default/default/tailwind/components/badge.js +6 -0
- package/dist/default/skins/dist/default/default/tailwind/components/badge.js.map +1 -0
- package/dist/default/skins/dist/default/default/tailwind/components/buffering.js +1 -4
- package/dist/default/skins/dist/default/default/tailwind/components/buffering.js.map +1 -1
- package/dist/default/skins/dist/default/default/tailwind/components/icon.js +1 -1
- package/dist/default/skins/dist/default/default/tailwind/components/icon.js.map +1 -1
- package/dist/default/skins/dist/default/default/tailwind/components/input-feedback.js +9 -9
- package/dist/default/skins/dist/default/default/tailwind/components/input-feedback.js.map +1 -1
- package/dist/default/skins/dist/default/default/tailwind/components/menu.js +26 -4
- package/dist/default/skins/dist/default/default/tailwind/components/menu.js.map +1 -1
- package/dist/default/skins/dist/default/default/tailwind/components/overlay.js +1 -1
- package/dist/default/skins/dist/default/default/tailwind/components/overlay.js.map +1 -1
- package/dist/default/skins/dist/default/default/tailwind/components/popup.js +4 -3
- package/dist/default/skins/dist/default/default/tailwind/components/popup.js.map +1 -1
- package/dist/default/skins/dist/default/default/tailwind/components/poster.js +7 -1
- package/dist/default/skins/dist/default/default/tailwind/components/poster.js.map +1 -1
- package/dist/default/skins/dist/default/default/tailwind/components/root.js +1 -1
- package/dist/default/skins/dist/default/default/tailwind/components/root.js.map +1 -1
- package/dist/default/skins/dist/default/default/tailwind/components/seek.js +1 -1
- package/dist/default/skins/dist/default/default/tailwind/components/seek.js.map +1 -1
- package/dist/default/skins/dist/default/default/tailwind/components/slider.js +5 -3
- package/dist/default/skins/dist/default/default/tailwind/components/slider.js.map +1 -1
- package/dist/default/skins/dist/default/default/tailwind/components/thumbnail.js +12 -0
- package/dist/default/skins/dist/default/default/tailwind/components/thumbnail.js.map +1 -0
- package/dist/default/skins/dist/default/default/tailwind/components/time.js +1 -1
- package/dist/default/skins/dist/default/default/tailwind/components/time.js.map +1 -1
- package/dist/default/skins/dist/default/default/tailwind/video.tailwind.js +26 -13
- package/dist/default/skins/dist/default/default/tailwind/video.tailwind.js.map +1 -1
- package/dist/default/skins/dist/default/minimal/tailwind/audio.tailwind.js +13 -3
- package/dist/default/skins/dist/default/minimal/tailwind/audio.tailwind.js.map +1 -1
- package/dist/default/skins/dist/default/minimal/tailwind/components/badge.js +6 -0
- package/dist/default/skins/dist/default/minimal/tailwind/components/badge.js.map +1 -0
- package/dist/default/skins/dist/default/minimal/tailwind/components/buffering.js +1 -1
- package/dist/default/skins/dist/default/minimal/tailwind/components/buffering.js.map +1 -1
- package/dist/default/skins/dist/default/minimal/tailwind/components/icon.js +1 -1
- package/dist/default/skins/dist/default/minimal/tailwind/components/icon.js.map +1 -1
- package/dist/default/skins/dist/default/minimal/tailwind/components/input-feedback.js +9 -9
- package/dist/default/skins/dist/default/minimal/tailwind/components/input-feedback.js.map +1 -1
- package/dist/default/skins/dist/default/minimal/tailwind/components/menu.js +25 -4
- package/dist/default/skins/dist/default/minimal/tailwind/components/menu.js.map +1 -1
- package/dist/default/skins/dist/default/minimal/tailwind/components/overlay.js +1 -1
- package/dist/default/skins/dist/default/minimal/tailwind/components/overlay.js.map +1 -1
- package/dist/default/skins/dist/default/minimal/tailwind/components/popup.js +3 -2
- package/dist/default/skins/dist/default/minimal/tailwind/components/popup.js.map +1 -1
- package/dist/default/skins/dist/default/minimal/tailwind/components/poster.js +7 -1
- package/dist/default/skins/dist/default/minimal/tailwind/components/poster.js.map +1 -1
- package/dist/default/skins/dist/default/minimal/tailwind/components/root.js +1 -1
- package/dist/default/skins/dist/default/minimal/tailwind/components/root.js.map +1 -1
- package/dist/default/skins/dist/default/minimal/tailwind/components/seek.js +1 -1
- package/dist/default/skins/dist/default/minimal/tailwind/components/seek.js.map +1 -1
- package/dist/default/skins/dist/default/minimal/tailwind/components/slider.js +5 -3
- package/dist/default/skins/dist/default/minimal/tailwind/components/slider.js.map +1 -1
- package/dist/default/skins/dist/default/minimal/tailwind/components/thumbnail.js +13 -0
- package/dist/default/skins/dist/default/minimal/tailwind/components/thumbnail.js.map +1 -0
- package/dist/default/skins/dist/default/minimal/tailwind/components/time.js +1 -1
- package/dist/default/skins/dist/default/minimal/tailwind/components/time.js.map +1 -1
- package/dist/default/skins/dist/default/minimal/tailwind/video.tailwind.js +27 -11
- package/dist/default/skins/dist/default/minimal/tailwind/video.tailwind.js.map +1 -1
- package/dist/default/skins/dist/default/shared/tailwind/icon-state.js +17 -2
- package/dist/default/skins/dist/default/shared/tailwind/icon-state.js.map +1 -1
- package/dist/default/tailwind.css +0 -24
- package/dist/default/ui/airplay-button/airplay-button.js +17 -0
- package/dist/default/ui/airplay-button/airplay-button.js.map +1 -0
- package/dist/default/ui/airplay-button/index.js +2 -0
- package/dist/default/ui/alert-dialog/alert-dialog-close.js +1 -1
- package/dist/default/ui/alert-dialog/alert-dialog-popup.js +1 -1
- package/dist/default/ui/audio-track/index.js +2 -0
- package/dist/default/ui/audio-track/use-audio-track-options.js +31 -0
- package/dist/default/ui/audio-track/use-audio-track-options.js.map +1 -0
- package/dist/default/ui/captions-radio-group/index.js +2 -0
- package/dist/default/ui/captions-radio-group/use-captions-options.js +37 -0
- package/dist/default/ui/captions-radio-group/use-captions-options.js.map +1 -0
- package/dist/default/ui/create-media-button.js +23 -10
- package/dist/default/ui/create-media-button.js.map +1 -1
- package/dist/default/ui/error-dialog/error-dialog-description.js +1 -1
- package/dist/default/ui/hooks/use-button.js.map +1 -1
- package/dist/default/ui/hotkey/use-hotkey-shortcut.js +28 -0
- package/dist/default/ui/hotkey/use-hotkey-shortcut.js.map +1 -0
- package/dist/default/ui/hotkey/use-hotkey.js +1 -2
- package/dist/default/ui/hotkey/use-hotkey.js.map +1 -1
- package/dist/default/ui/input-indicators/use-input-indicator-root.js +2 -2
- package/dist/default/ui/input-indicators/use-input-indicator-root.js.map +1 -1
- package/dist/default/ui/input-indicators/use-rendered-indicator-state.js +7 -4
- package/dist/default/ui/input-indicators/use-rendered-indicator-state.js.map +1 -1
- package/dist/default/ui/live-button/live-button.js +1 -1
- package/dist/default/ui/live-button/live-button.js.map +1 -1
- package/dist/default/ui/menu/context.js +16 -1
- package/dist/default/ui/menu/context.js.map +1 -1
- package/dist/default/ui/menu/index.parts.js +4 -2
- package/dist/default/ui/menu/index.parts.js.map +1 -1
- package/dist/default/ui/menu/menu-back.js +0 -1
- package/dist/default/ui/menu/menu-back.js.map +1 -1
- package/dist/default/ui/menu/menu-checkbox-item.js +1 -2
- package/dist/default/ui/menu/menu-checkbox-item.js.map +1 -1
- package/dist/default/ui/menu/menu-content.js +23 -5
- package/dist/default/ui/menu/menu-content.js.map +1 -1
- package/dist/default/ui/menu/menu-group-label.js +29 -0
- package/dist/default/ui/menu/menu-group-label.js.map +1 -0
- package/dist/default/ui/menu/menu-group.js +7 -9
- package/dist/default/ui/menu/menu-group.js.map +1 -1
- package/dist/default/ui/menu/menu-item-indicator.js +1 -2
- package/dist/default/ui/menu/menu-item-indicator.js.map +1 -1
- package/dist/default/ui/menu/menu-item-setting-provider.js +72 -0
- package/dist/default/ui/menu/menu-item-setting-provider.js.map +1 -0
- package/dist/default/ui/menu/menu-item-value.js +28 -0
- package/dist/default/ui/menu/menu-item-value.js.map +1 -0
- package/dist/default/ui/menu/menu-item.js +44 -23
- package/dist/default/ui/menu/menu-item.js.map +1 -1
- package/dist/default/ui/menu/menu-radio-group.js +6 -9
- package/dist/default/ui/menu/menu-radio-group.js.map +1 -1
- package/dist/default/ui/menu/menu-radio-item.js +1 -2
- package/dist/default/ui/menu/menu-radio-item.js.map +1 -1
- package/dist/default/ui/menu/menu-root.js +1 -1
- package/dist/default/ui/menu/menu-separator.js +1 -2
- package/dist/default/ui/menu/menu-separator.js.map +1 -1
- package/dist/default/ui/menu/menu-trigger.js +85 -29
- package/dist/default/ui/menu/menu-trigger.js.map +1 -1
- package/dist/default/ui/menu/use-menu-group.js +31 -0
- package/dist/default/ui/menu/use-menu-group.js.map +1 -0
- package/dist/default/ui/playback-rate/index.js +2 -0
- package/dist/default/ui/playback-rate/use-playback-rate-options.js +34 -0
- package/dist/default/ui/playback-rate/use-playback-rate-options.js.map +1 -0
- package/dist/default/ui/playback-rate-button/playback-rate-button.js +2 -1
- package/dist/default/ui/playback-rate-button/playback-rate-button.js.map +1 -1
- package/dist/default/ui/poster/poster.js +17 -3
- package/dist/default/ui/poster/poster.js.map +1 -1
- package/dist/default/ui/quality/index.js +2 -0
- package/dist/default/ui/quality/use-quality-options.js +37 -0
- package/dist/default/ui/quality/use-quality-options.js.map +1 -0
- package/dist/default/ui/seek-button/seek-button.js +3 -1
- package/dist/default/ui/seek-button/seek-button.js.map +1 -1
- package/dist/default/ui/time/time-value.js +32 -5
- package/dist/default/ui/time/time-value.js.map +1 -1
- package/dist/default/ui/time-slider/time-slider-root.js +18 -6
- package/dist/default/ui/time-slider/time-slider-root.js.map +1 -1
- package/dist/default/ui/tooltip/context.js.map +1 -1
- package/dist/default/ui/tooltip/index.parts.js +4 -0
- package/dist/default/ui/tooltip/index.parts.js.map +1 -1
- package/dist/default/ui/tooltip/tooltip-arrow.js +1 -1
- package/dist/default/ui/tooltip/tooltip-label.js +24 -0
- package/dist/default/ui/tooltip/tooltip-label.js.map +1 -0
- package/dist/default/ui/tooltip/tooltip-popup.js +7 -3
- package/dist/default/ui/tooltip/tooltip-popup.js.map +1 -1
- package/dist/default/ui/tooltip/tooltip-root.js +1 -1
- package/dist/default/ui/tooltip/tooltip-root.js.map +1 -1
- package/dist/default/ui/tooltip/tooltip-shortcut.js +25 -0
- package/dist/default/ui/tooltip/tooltip-shortcut.js.map +1 -0
- package/dist/default/ui/volume-indicator/volume-indicator-root.js +1 -1
- package/dist/default/ui/volume-indicator/volume-indicator-root.js.map +1 -1
- package/dist/default/utils/use-attach-iframe.js +14 -0
- package/dist/default/utils/use-attach-iframe.js.map +1 -0
- package/dist/default/utils/use-media-instance.js +11 -3
- package/dist/default/utils/use-media-instance.js.map +1 -1
- package/dist/default/utils/use-render.js +1 -1
- package/dist/default/utils/use-render.js.map +1 -1
- package/dist/dev/icons/dist/react/default/airplay-enter.js +16 -0
- package/dist/dev/icons/dist/react/default/airplay-enter.js.map +1 -0
- package/dist/dev/icons/dist/react/default/airplay-exit.js +28 -0
- package/dist/dev/icons/dist/react/default/airplay-exit.js.map +1 -0
- package/dist/dev/icons/dist/react/default/captions-off.js +5 -0
- package/dist/dev/icons/dist/react/default/captions-off.js.map +1 -1
- package/dist/dev/icons/dist/react/default/gear.js +16 -0
- package/dist/dev/icons/dist/react/default/gear.js.map +1 -0
- package/dist/dev/icons/dist/react/default/index.d.ts +8 -1
- package/dist/dev/icons/dist/react/default/index.d.ts.map +1 -1
- package/dist/dev/icons/dist/react/default/quality.js +16 -0
- package/dist/dev/icons/dist/react/default/quality.js.map +1 -0
- package/dist/dev/icons/dist/react/default/speech.js +19 -0
- package/dist/dev/icons/dist/react/default/speech.js.map +1 -0
- package/dist/dev/icons/dist/react/default/speed.js +52 -0
- package/dist/dev/icons/dist/react/default/speed.js.map +1 -0
- package/dist/dev/icons/dist/react/default/switches.js +19 -0
- package/dist/dev/icons/dist/react/default/switches.js.map +1 -0
- package/dist/dev/icons/dist/react/minimal/airplay-enter.js +16 -0
- package/dist/dev/icons/dist/react/minimal/airplay-enter.js.map +1 -0
- package/dist/dev/icons/dist/react/minimal/airplay-exit.js +28 -0
- package/dist/dev/icons/dist/react/minimal/airplay-exit.js.map +1 -0
- package/dist/dev/icons/dist/react/minimal/captions-off.js +5 -0
- package/dist/dev/icons/dist/react/minimal/captions-off.js.map +1 -1
- package/dist/dev/icons/dist/react/minimal/gear.js +16 -0
- package/dist/dev/icons/dist/react/minimal/gear.js.map +1 -0
- package/dist/dev/icons/dist/react/minimal/index.d.ts +8 -1
- package/dist/dev/icons/dist/react/minimal/index.d.ts.map +1 -1
- package/dist/dev/icons/dist/react/minimal/quality.js +16 -0
- package/dist/dev/icons/dist/react/minimal/quality.js.map +1 -0
- package/dist/dev/icons/dist/react/minimal/speech.js +54 -0
- package/dist/dev/icons/dist/react/minimal/speech.js.map +1 -0
- package/dist/dev/icons/dist/react/minimal/speed.js +52 -0
- package/dist/dev/icons/dist/react/minimal/speed.js.map +1 -0
- package/dist/dev/icons/dist/react/minimal/switches.js +19 -0
- package/dist/dev/icons/dist/react/minimal/switches.js.map +1 -0
- package/dist/dev/icons/index.d.ts +2 -2
- package/dist/dev/icons/index.js +8 -1
- package/dist/dev/icons/minimal/index.d.ts +2 -2
- package/dist/dev/icons/minimal/index.js +8 -1
- package/dist/dev/index.d.ts +19 -15
- package/dist/dev/index.js +21 -17
- package/dist/dev/media/dash-video/index.d.ts.map +1 -1
- package/dist/dev/media/dash-video/index.js +5 -1
- package/dist/dev/media/dash-video/index.js.map +1 -1
- package/dist/dev/media/hlsjs-video/index.d.ts +15 -0
- package/dist/dev/media/hlsjs-video/index.d.ts.map +1 -0
- package/dist/dev/media/{hls-video → hlsjs-video}/index.js +9 -5
- package/dist/dev/media/hlsjs-video/index.js.map +1 -0
- package/dist/dev/media/mux-audio/index.d.ts +2 -2
- package/dist/dev/media/mux-audio/index.d.ts.map +1 -1
- package/dist/dev/media/mux-audio/index.js +9 -3
- package/dist/dev/media/mux-audio/index.js.map +1 -1
- package/dist/dev/media/mux-video/index.d.ts +2 -2
- package/dist/dev/media/mux-video/index.d.ts.map +1 -1
- package/dist/dev/media/mux-video/index.js +9 -3
- package/dist/dev/media/mux-video/index.js.map +1 -1
- package/dist/dev/media/native-hls-video/index.d.ts.map +1 -1
- package/dist/dev/media/native-hls-video/index.js +5 -1
- package/dist/dev/media/native-hls-video/index.js.map +1 -1
- package/dist/dev/media/simple-hls-audio-only/index.d.ts +15 -0
- package/dist/dev/media/simple-hls-audio-only/index.d.ts.map +1 -0
- package/dist/dev/media/simple-hls-audio-only/index.js +22 -0
- package/dist/dev/media/simple-hls-audio-only/index.js.map +1 -0
- package/dist/dev/media/simple-hls-video/index.js +1 -1
- package/dist/dev/media/vimeo-video/index.d.ts +15 -0
- package/dist/dev/media/vimeo-video/index.d.ts.map +1 -0
- package/dist/dev/media/vimeo-video/index.js +37 -0
- package/dist/dev/media/vimeo-video/index.js.map +1 -0
- package/dist/dev/player/context.d.ts +8 -0
- package/dist/dev/player/context.d.ts.map +1 -1
- package/dist/dev/player/context.js.map +1 -1
- package/dist/dev/player/create-player.js +13 -4
- package/dist/dev/player/create-player.js.map +1 -1
- package/dist/dev/presets/audio/minimal-skin.css +414 -69
- package/dist/dev/presets/audio/minimal-skin.d.ts.map +1 -1
- package/dist/dev/presets/audio/minimal-skin.js +69 -39
- package/dist/dev/presets/audio/minimal-skin.js.map +1 -1
- package/dist/dev/presets/audio/minimal-skin.tailwind.d.ts.map +1 -1
- package/dist/dev/presets/audio/minimal-skin.tailwind.js +71 -42
- package/dist/dev/presets/audio/minimal-skin.tailwind.js.map +1 -1
- package/dist/dev/presets/audio/skin.css +419 -121
- package/dist/dev/presets/audio/skin.d.ts.map +1 -1
- package/dist/dev/presets/audio/skin.js +70 -40
- package/dist/dev/presets/audio/skin.js.map +1 -1
- package/dist/dev/presets/audio/skin.tailwind.d.ts.map +1 -1
- package/dist/dev/presets/audio/skin.tailwind.js +72 -42
- package/dist/dev/presets/audio/skin.tailwind.js.map +1 -1
- package/dist/dev/presets/live-audio/index.d.ts +2 -2
- package/dist/dev/presets/live-audio/index.js +2 -2
- package/dist/dev/presets/live-audio/minimal-skin.css +414 -69
- package/dist/dev/presets/live-audio/minimal-skin.d.ts.map +1 -1
- package/dist/dev/presets/live-audio/minimal-skin.js +26 -12
- package/dist/dev/presets/live-audio/minimal-skin.js.map +1 -1
- package/dist/dev/presets/live-audio/minimal-skin.tailwind.d.ts.map +1 -1
- package/dist/dev/presets/live-audio/minimal-skin.tailwind.js +27 -14
- package/dist/dev/presets/live-audio/minimal-skin.tailwind.js.map +1 -1
- package/dist/dev/presets/live-audio/skin.css +419 -121
- package/dist/dev/presets/live-audio/skin.d.ts +3 -1
- package/dist/dev/presets/live-audio/skin.d.ts.map +1 -1
- package/dist/dev/presets/live-audio/skin.js +32 -14
- package/dist/dev/presets/live-audio/skin.js.map +1 -1
- package/dist/dev/presets/live-audio/skin.tailwind.d.ts.map +1 -1
- package/dist/dev/presets/live-audio/skin.tailwind.js +27 -13
- package/dist/dev/presets/live-audio/skin.tailwind.js.map +1 -1
- package/dist/dev/presets/live-video/minimal-skin.css +566 -210
- package/dist/dev/presets/live-video/minimal-skin.d.ts +0 -7
- package/dist/dev/presets/live-video/minimal-skin.d.ts.map +1 -1
- package/dist/dev/presets/live-video/minimal-skin.js +93 -12
- package/dist/dev/presets/live-video/minimal-skin.js.map +1 -1
- package/dist/dev/presets/live-video/minimal-skin.tailwind.d.ts.map +1 -1
- package/dist/dev/presets/live-video/minimal-skin.tailwind.js +94 -13
- package/dist/dev/presets/live-video/minimal-skin.tailwind.js.map +1 -1
- package/dist/dev/presets/live-video/skin.css +581 -264
- package/dist/dev/presets/live-video/skin.d.ts +0 -6
- package/dist/dev/presets/live-video/skin.d.ts.map +1 -1
- package/dist/dev/presets/live-video/skin.js +95 -16
- package/dist/dev/presets/live-video/skin.js.map +1 -1
- package/dist/dev/presets/live-video/skin.tailwind.d.ts.map +1 -1
- package/dist/dev/presets/live-video/skin.tailwind.js +95 -17
- package/dist/dev/presets/live-video/skin.tailwind.js.map +1 -1
- package/dist/dev/presets/types.d.ts +2 -1
- package/dist/dev/presets/types.d.ts.map +1 -1
- package/dist/dev/presets/video/minimal-skin.css +566 -210
- package/dist/dev/presets/video/minimal-skin.d.ts.map +1 -1
- package/dist/dev/presets/video/minimal-skin.js +281 -53
- package/dist/dev/presets/video/minimal-skin.js.map +1 -1
- package/dist/dev/presets/video/minimal-skin.tailwind.d.ts.map +1 -1
- package/dist/dev/presets/video/minimal-skin.tailwind.js +284 -57
- package/dist/dev/presets/video/minimal-skin.tailwind.js.map +1 -1
- package/dist/dev/presets/video/skin.css +581 -264
- package/dist/dev/presets/video/skin.d.ts.map +1 -1
- package/dist/dev/presets/video/skin.js +282 -57
- package/dist/dev/presets/video/skin.js.map +1 -1
- package/dist/dev/presets/video/skin.tailwind.d.ts.map +1 -1
- package/dist/dev/presets/video/skin.tailwind.js +285 -61
- package/dist/dev/presets/video/skin.tailwind.js.map +1 -1
- package/dist/dev/skins/dist/default/default/tailwind/audio.tailwind.js +8 -3
- package/dist/dev/skins/dist/default/default/tailwind/audio.tailwind.js.map +1 -1
- package/dist/dev/skins/dist/default/default/tailwind/components/badge.js +6 -0
- package/dist/dev/skins/dist/default/default/tailwind/components/badge.js.map +1 -0
- package/dist/dev/skins/dist/default/default/tailwind/components/buffering.js +1 -4
- package/dist/dev/skins/dist/default/default/tailwind/components/buffering.js.map +1 -1
- package/dist/dev/skins/dist/default/default/tailwind/components/icon.js +1 -1
- package/dist/dev/skins/dist/default/default/tailwind/components/icon.js.map +1 -1
- package/dist/dev/skins/dist/default/default/tailwind/components/input-feedback.js +9 -9
- package/dist/dev/skins/dist/default/default/tailwind/components/input-feedback.js.map +1 -1
- package/dist/dev/skins/dist/default/default/tailwind/components/menu.js +26 -4
- package/dist/dev/skins/dist/default/default/tailwind/components/menu.js.map +1 -1
- package/dist/dev/skins/dist/default/default/tailwind/components/overlay.js +1 -1
- package/dist/dev/skins/dist/default/default/tailwind/components/overlay.js.map +1 -1
- package/dist/dev/skins/dist/default/default/tailwind/components/popup.js +4 -3
- package/dist/dev/skins/dist/default/default/tailwind/components/popup.js.map +1 -1
- package/dist/dev/skins/dist/default/default/tailwind/components/poster.js +7 -1
- package/dist/dev/skins/dist/default/default/tailwind/components/poster.js.map +1 -1
- package/dist/dev/skins/dist/default/default/tailwind/components/root.js +1 -1
- package/dist/dev/skins/dist/default/default/tailwind/components/root.js.map +1 -1
- package/dist/dev/skins/dist/default/default/tailwind/components/seek.js +1 -1
- package/dist/dev/skins/dist/default/default/tailwind/components/seek.js.map +1 -1
- package/dist/dev/skins/dist/default/default/tailwind/components/slider.js +5 -3
- package/dist/dev/skins/dist/default/default/tailwind/components/slider.js.map +1 -1
- package/dist/dev/skins/dist/default/default/tailwind/components/thumbnail.js +12 -0
- package/dist/dev/skins/dist/default/default/tailwind/components/thumbnail.js.map +1 -0
- package/dist/dev/skins/dist/default/default/tailwind/components/time.js +1 -1
- package/dist/dev/skins/dist/default/default/tailwind/components/time.js.map +1 -1
- package/dist/dev/skins/dist/default/default/tailwind/video.tailwind.js +26 -13
- package/dist/dev/skins/dist/default/default/tailwind/video.tailwind.js.map +1 -1
- package/dist/dev/skins/dist/default/minimal/tailwind/audio.tailwind.js +13 -3
- package/dist/dev/skins/dist/default/minimal/tailwind/audio.tailwind.js.map +1 -1
- package/dist/dev/skins/dist/default/minimal/tailwind/components/badge.js +6 -0
- package/dist/dev/skins/dist/default/minimal/tailwind/components/badge.js.map +1 -0
- package/dist/dev/skins/dist/default/minimal/tailwind/components/buffering.js +1 -1
- package/dist/dev/skins/dist/default/minimal/tailwind/components/buffering.js.map +1 -1
- package/dist/dev/skins/dist/default/minimal/tailwind/components/icon.js +1 -1
- package/dist/dev/skins/dist/default/minimal/tailwind/components/icon.js.map +1 -1
- package/dist/dev/skins/dist/default/minimal/tailwind/components/input-feedback.js +9 -9
- package/dist/dev/skins/dist/default/minimal/tailwind/components/input-feedback.js.map +1 -1
- package/dist/dev/skins/dist/default/minimal/tailwind/components/menu.js +25 -4
- package/dist/dev/skins/dist/default/minimal/tailwind/components/menu.js.map +1 -1
- package/dist/dev/skins/dist/default/minimal/tailwind/components/overlay.js +1 -1
- package/dist/dev/skins/dist/default/minimal/tailwind/components/overlay.js.map +1 -1
- package/dist/dev/skins/dist/default/minimal/tailwind/components/popup.js +3 -2
- package/dist/dev/skins/dist/default/minimal/tailwind/components/popup.js.map +1 -1
- package/dist/dev/skins/dist/default/minimal/tailwind/components/poster.js +7 -1
- package/dist/dev/skins/dist/default/minimal/tailwind/components/poster.js.map +1 -1
- package/dist/dev/skins/dist/default/minimal/tailwind/components/root.js +1 -1
- package/dist/dev/skins/dist/default/minimal/tailwind/components/root.js.map +1 -1
- package/dist/dev/skins/dist/default/minimal/tailwind/components/seek.js +1 -1
- package/dist/dev/skins/dist/default/minimal/tailwind/components/seek.js.map +1 -1
- package/dist/dev/skins/dist/default/minimal/tailwind/components/slider.js +5 -3
- package/dist/dev/skins/dist/default/minimal/tailwind/components/slider.js.map +1 -1
- package/dist/dev/skins/dist/default/minimal/tailwind/components/thumbnail.js +13 -0
- package/dist/dev/skins/dist/default/minimal/tailwind/components/thumbnail.js.map +1 -0
- package/dist/dev/skins/dist/default/minimal/tailwind/components/time.js +1 -1
- package/dist/dev/skins/dist/default/minimal/tailwind/components/time.js.map +1 -1
- package/dist/dev/skins/dist/default/minimal/tailwind/video.tailwind.js +27 -11
- package/dist/dev/skins/dist/default/minimal/tailwind/video.tailwind.js.map +1 -1
- package/dist/dev/skins/dist/default/shared/tailwind/icon-state.js +17 -2
- package/dist/dev/skins/dist/default/shared/tailwind/icon-state.js.map +1 -1
- package/dist/dev/tailwind.css +0 -24
- package/dist/dev/ui/airplay-button/airplay-button.d.ts +15 -0
- package/dist/dev/ui/airplay-button/airplay-button.d.ts.map +1 -0
- package/dist/dev/ui/airplay-button/airplay-button.js +17 -0
- package/dist/dev/ui/airplay-button/airplay-button.js.map +1 -0
- package/dist/dev/ui/airplay-button/index.d.ts +2 -0
- package/dist/dev/ui/airplay-button/index.js +2 -0
- package/dist/dev/ui/alert-dialog/alert-dialog-close.js +1 -1
- package/dist/dev/ui/alert-dialog/alert-dialog-popup.js +1 -1
- package/dist/dev/ui/audio-track/index.d.ts +2 -0
- package/dist/dev/ui/audio-track/index.js +2 -0
- package/dist/dev/ui/audio-track/use-audio-track-options.d.ts +25 -0
- package/dist/dev/ui/audio-track/use-audio-track-options.d.ts.map +1 -0
- package/dist/dev/ui/audio-track/use-audio-track-options.js +34 -0
- package/dist/dev/ui/audio-track/use-audio-track-options.js.map +1 -0
- package/dist/dev/ui/captions-radio-group/index.d.ts +2 -0
- package/dist/dev/ui/captions-radio-group/index.js +2 -0
- package/dist/dev/ui/captions-radio-group/use-captions-options.d.ts +26 -0
- package/dist/dev/ui/captions-radio-group/use-captions-options.d.ts.map +1 -0
- package/dist/dev/ui/captions-radio-group/use-captions-options.js +40 -0
- package/dist/dev/ui/captions-radio-group/use-captions-options.js.map +1 -0
- package/dist/dev/ui/create-media-button.js +23 -10
- package/dist/dev/ui/create-media-button.js.map +1 -1
- package/dist/dev/ui/error-dialog/error-dialog-description.js +1 -1
- package/dist/dev/ui/hooks/use-button.d.ts +2 -1
- package/dist/dev/ui/hooks/use-button.d.ts.map +1 -1
- package/dist/dev/ui/hooks/use-button.js.map +1 -1
- package/dist/dev/ui/hotkey/use-hotkey-shortcut.d.ts +7 -0
- package/dist/dev/ui/hotkey/use-hotkey-shortcut.d.ts.map +1 -0
- package/dist/dev/ui/hotkey/use-hotkey-shortcut.js +28 -0
- package/dist/dev/ui/hotkey/use-hotkey-shortcut.js.map +1 -0
- package/dist/dev/ui/hotkey/use-hotkey.js +1 -2
- package/dist/dev/ui/hotkey/use-hotkey.js.map +1 -1
- package/dist/dev/ui/input-indicators/use-input-indicator-root.js +2 -2
- package/dist/dev/ui/input-indicators/use-input-indicator-root.js.map +1 -1
- package/dist/dev/ui/input-indicators/use-rendered-indicator-state.js +7 -4
- package/dist/dev/ui/input-indicators/use-rendered-indicator-state.js.map +1 -1
- package/dist/dev/ui/live-button/live-button.js +1 -1
- package/dist/dev/ui/live-button/live-button.js.map +1 -1
- package/dist/dev/ui/menu/context.d.ts.map +1 -1
- package/dist/dev/ui/menu/context.js +16 -1
- package/dist/dev/ui/menu/context.js.map +1 -1
- package/dist/dev/ui/menu/index.parts.d.ts +3 -2
- package/dist/dev/ui/menu/index.parts.js +4 -2
- package/dist/dev/ui/menu/index.parts.js.map +1 -1
- package/dist/dev/ui/menu/menu-back.d.ts.map +1 -1
- package/dist/dev/ui/menu/menu-back.js +0 -1
- package/dist/dev/ui/menu/menu-back.js.map +1 -1
- package/dist/dev/ui/menu/menu-checkbox-item.d.ts.map +1 -1
- package/dist/dev/ui/menu/menu-checkbox-item.js +1 -2
- package/dist/dev/ui/menu/menu-checkbox-item.js.map +1 -1
- package/dist/dev/ui/menu/menu-content.d.ts.map +1 -1
- package/dist/dev/ui/menu/menu-content.js +23 -5
- package/dist/dev/ui/menu/menu-content.js.map +1 -1
- package/dist/dev/ui/menu/menu-group-label.d.ts +15 -0
- package/dist/dev/ui/menu/menu-group-label.d.ts.map +1 -0
- package/dist/dev/ui/menu/menu-group-label.js +29 -0
- package/dist/dev/ui/menu/menu-group-label.js.map +1 -0
- package/dist/dev/ui/menu/menu-group.d.ts +1 -4
- package/dist/dev/ui/menu/menu-group.d.ts.map +1 -1
- package/dist/dev/ui/menu/menu-group.js +7 -9
- package/dist/dev/ui/menu/menu-group.js.map +1 -1
- package/dist/dev/ui/menu/menu-item-indicator.d.ts.map +1 -1
- package/dist/dev/ui/menu/menu-item-indicator.js +1 -2
- package/dist/dev/ui/menu/menu-item-indicator.js.map +1 -1
- package/dist/dev/ui/menu/menu-item-setting-provider.js +72 -0
- package/dist/dev/ui/menu/menu-item-setting-provider.js.map +1 -0
- package/dist/dev/ui/menu/menu-item-type.d.ts +5 -0
- package/dist/dev/ui/menu/menu-item-type.d.ts.map +1 -0
- package/dist/dev/ui/menu/menu-item-value.d.ts +14 -0
- package/dist/dev/ui/menu/menu-item-value.d.ts.map +1 -0
- package/dist/dev/ui/menu/menu-item-value.js +28 -0
- package/dist/dev/ui/menu/menu-item-value.js.map +1 -0
- package/dist/dev/ui/menu/menu-item.d.ts +3 -0
- package/dist/dev/ui/menu/menu-item.d.ts.map +1 -1
- package/dist/dev/ui/menu/menu-item.js +44 -23
- package/dist/dev/ui/menu/menu-item.js.map +1 -1
- package/dist/dev/ui/menu/menu-radio-group.d.ts +0 -2
- package/dist/dev/ui/menu/menu-radio-group.d.ts.map +1 -1
- package/dist/dev/ui/menu/menu-radio-group.js +6 -9
- package/dist/dev/ui/menu/menu-radio-group.js.map +1 -1
- package/dist/dev/ui/menu/menu-radio-item.d.ts.map +1 -1
- package/dist/dev/ui/menu/menu-radio-item.js +1 -2
- package/dist/dev/ui/menu/menu-radio-item.js.map +1 -1
- package/dist/dev/ui/menu/menu-root.js +1 -1
- package/dist/dev/ui/menu/menu-separator.d.ts.map +1 -1
- package/dist/dev/ui/menu/menu-separator.js +1 -2
- package/dist/dev/ui/menu/menu-separator.js.map +1 -1
- package/dist/dev/ui/menu/menu-trigger.d.ts +5 -2
- package/dist/dev/ui/menu/menu-trigger.d.ts.map +1 -1
- package/dist/dev/ui/menu/menu-trigger.js +85 -29
- package/dist/dev/ui/menu/menu-trigger.js.map +1 -1
- package/dist/dev/ui/menu/use-menu-group.js +31 -0
- package/dist/dev/ui/menu/use-menu-group.js.map +1 -0
- package/dist/dev/ui/playback-rate/index.d.ts +2 -0
- package/dist/dev/ui/playback-rate/index.js +2 -0
- package/dist/dev/ui/playback-rate/use-playback-rate-options.d.ts +28 -0
- package/dist/dev/ui/playback-rate/use-playback-rate-options.d.ts.map +1 -0
- package/dist/dev/ui/playback-rate/use-playback-rate-options.js +37 -0
- package/dist/dev/ui/playback-rate/use-playback-rate-options.js.map +1 -0
- package/dist/dev/ui/playback-rate-button/playback-rate-button.d.ts.map +1 -1
- package/dist/dev/ui/playback-rate-button/playback-rate-button.js +2 -1
- package/dist/dev/ui/playback-rate-button/playback-rate-button.js.map +1 -1
- package/dist/dev/ui/poster/poster.d.ts.map +1 -1
- package/dist/dev/ui/poster/poster.js +17 -3
- package/dist/dev/ui/poster/poster.js.map +1 -1
- package/dist/dev/ui/quality/index.d.ts +2 -0
- package/dist/dev/ui/quality/index.js +2 -0
- package/dist/dev/ui/quality/use-quality-options.d.ts +27 -0
- package/dist/dev/ui/quality/use-quality-options.d.ts.map +1 -0
- package/dist/dev/ui/quality/use-quality-options.js +40 -0
- package/dist/dev/ui/quality/use-quality-options.js.map +1 -0
- package/dist/dev/ui/seek-button/seek-button.d.ts.map +1 -1
- package/dist/dev/ui/seek-button/seek-button.js +3 -1
- package/dist/dev/ui/seek-button/seek-button.js.map +1 -1
- package/dist/dev/ui/time/time-value.d.ts.map +1 -1
- package/dist/dev/ui/time/time-value.js +32 -5
- package/dist/dev/ui/time/time-value.js.map +1 -1
- package/dist/dev/ui/time-slider/time-slider-root.d.ts.map +1 -1
- package/dist/dev/ui/time-slider/time-slider-root.js +18 -6
- package/dist/dev/ui/time-slider/time-slider-root.js.map +1 -1
- package/dist/dev/ui/tooltip/context.d.ts +7 -3
- package/dist/dev/ui/tooltip/context.d.ts.map +1 -1
- package/dist/dev/ui/tooltip/context.js.map +1 -1
- package/dist/dev/ui/tooltip/index.d.ts +2 -2
- package/dist/dev/ui/tooltip/index.parts.d.ts +3 -1
- package/dist/dev/ui/tooltip/index.parts.js +4 -0
- package/dist/dev/ui/tooltip/index.parts.js.map +1 -1
- package/dist/dev/ui/tooltip/tooltip-arrow.js +1 -1
- package/dist/dev/ui/tooltip/tooltip-label.d.ts +15 -0
- package/dist/dev/ui/tooltip/tooltip-label.d.ts.map +1 -0
- package/dist/dev/ui/tooltip/tooltip-label.js +24 -0
- package/dist/dev/ui/tooltip/tooltip-label.js.map +1 -0
- package/dist/dev/ui/tooltip/tooltip-popup.d.ts.map +1 -1
- package/dist/dev/ui/tooltip/tooltip-popup.js +7 -3
- package/dist/dev/ui/tooltip/tooltip-popup.js.map +1 -1
- package/dist/dev/ui/tooltip/tooltip-root.js +1 -1
- package/dist/dev/ui/tooltip/tooltip-root.js.map +1 -1
- package/dist/dev/ui/tooltip/tooltip-shortcut.d.ts +15 -0
- package/dist/dev/ui/tooltip/tooltip-shortcut.d.ts.map +1 -0
- package/dist/dev/ui/tooltip/tooltip-shortcut.js +25 -0
- package/dist/dev/ui/tooltip/tooltip-shortcut.js.map +1 -0
- package/dist/dev/ui/volume-indicator/volume-indicator-root.d.ts.map +1 -1
- package/dist/dev/ui/volume-indicator/volume-indicator-root.js +1 -1
- package/dist/dev/ui/volume-indicator/volume-indicator-root.js.map +1 -1
- package/dist/dev/utils/use-attach-iframe.js +14 -0
- package/dist/dev/utils/use-attach-iframe.js.map +1 -0
- package/dist/dev/utils/use-media-instance.d.ts +7 -2
- package/dist/dev/utils/use-media-instance.d.ts.map +1 -1
- package/dist/dev/utils/use-media-instance.js +11 -3
- package/dist/dev/utils/use-media-instance.js.map +1 -1
- package/dist/dev/utils/use-render.d.ts.map +1 -1
- package/dist/dev/utils/use-render.js +1 -1
- package/dist/dev/utils/use-render.js.map +1 -1
- package/docs/README.md +1 -1
- package/docs/concepts/browser-support.md +1 -1
- package/docs/concepts/cast.md +162 -0
- package/docs/concepts/features.md +1 -1
- package/docs/concepts/overview.md +4 -4
- package/docs/concepts/presets.md +32 -6
- package/docs/concepts/skins.md +903 -318
- package/docs/concepts/why-videojs.md +1 -1
- package/docs/how-to/build-with-ai.md +7 -7
- package/docs/how-to/build-your-own-component.md +3 -3
- package/docs/how-to/customize-skins.md +2721 -847
- package/docs/how-to/installation.md +10 -10
- package/docs/llms.txt +23 -1
- package/docs/reference/airplay-button.md +264 -0
- package/docs/reference/audio-track-radio-group.md +59 -0
- package/docs/reference/background-video.md +76 -0
- package/docs/reference/captions-button.md +16 -0
- package/docs/reference/cast-button.md +236 -0
- package/docs/reference/dash-video.md +138 -0
- package/docs/reference/feature-audio-track.md +60 -0
- package/docs/reference/feature-fullscreen.md +20 -3
- package/docs/reference/feature-orientation-lock.md +35 -0
- package/docs/reference/feature-quality.md +70 -0
- package/docs/reference/feature-remote-playback.md +3 -1
- package/docs/reference/feature-text-tracks.md +10 -0
- package/docs/reference/hlsjs-video.md +274 -0
- package/docs/reference/menu.md +1194 -0
- package/docs/reference/mux-audio.md +218 -0
- package/docs/reference/mux-video.md +275 -0
- package/docs/reference/native-hls-video.md +212 -0
- package/docs/reference/play-button.md +1 -1
- package/docs/reference/playback-rate-button.md +16 -0
- package/docs/reference/player-container.md +9 -3
- package/docs/reference/player-provider.md +3 -1
- package/docs/reference/quality-radio-group.md +59 -0
- package/docs/reference/simple-hls-audio-only.md +93 -0
- package/docs/reference/simple-hls-video.md +150 -0
- package/docs/reference/time-slider.md +12 -0
- package/docs/reference/time.md +24 -0
- package/docs/reference/tooltip.md +89 -5
- package/docs/reference/use-media-attach.md +2 -2
- package/docs/reference/use-media.md +103 -2
- package/docs/reference/use-player-context.md +1 -1
- package/docs/reference/use-player.md +16 -1
- package/docs/reference/use-selector.md +1 -1
- package/docs/reference/use-snapshot.md +3 -3
- package/docs/reference/volume-slider.md +1 -1
- package/package.json +7 -7
- package/dist/default/media/hls-video/index.js.map +0 -1
- package/dist/default/skins/dist/default/default/tailwind/components/preview.js +0 -12
- package/dist/default/skins/dist/default/default/tailwind/components/preview.js.map +0 -1
- package/dist/default/skins/dist/default/minimal/tailwind/components/preview.js +0 -13
- package/dist/default/skins/dist/default/minimal/tailwind/components/preview.js.map +0 -1
- package/dist/default/ui/hotkey/use-aria-key-shortcuts.js +0 -16
- package/dist/default/ui/hotkey/use-aria-key-shortcuts.js.map +0 -1
- package/dist/default/ui/menu/menu-label.js +0 -23
- package/dist/default/ui/menu/menu-label.js.map +0 -1
- package/dist/default/ui/playback-rate-menu/context.js +0 -20
- package/dist/default/ui/playback-rate-menu/context.js.map +0 -1
- package/dist/default/ui/playback-rate-menu/index.js +0 -3
- package/dist/default/ui/playback-rate-menu/index.parts.js +0 -17
- package/dist/default/ui/playback-rate-menu/index.parts.js.map +0 -1
- package/dist/default/ui/playback-rate-menu/playback-rate-menu-content.js +0 -28
- package/dist/default/ui/playback-rate-menu/playback-rate-menu-content.js.map +0 -1
- package/dist/default/ui/playback-rate-menu/playback-rate-menu-root.js +0 -36
- package/dist/default/ui/playback-rate-menu/playback-rate-menu-root.js.map +0 -1
- package/dist/default/ui/playback-rate-menu/playback-rate-menu-trigger.js +0 -51
- package/dist/default/ui/playback-rate-menu/playback-rate-menu-trigger.js.map +0 -1
- package/dist/default/ui/playback-rate-menu/use-playback-rate-menu.js +0 -27
- package/dist/default/ui/playback-rate-menu/use-playback-rate-menu.js.map +0 -1
- package/dist/dev/media/hls-video/index.d.ts +0 -15
- package/dist/dev/media/hls-video/index.d.ts.map +0 -1
- package/dist/dev/media/hls-video/index.js.map +0 -1
- package/dist/dev/skins/dist/default/default/tailwind/components/preview.js +0 -12
- package/dist/dev/skins/dist/default/default/tailwind/components/preview.js.map +0 -1
- package/dist/dev/skins/dist/default/minimal/tailwind/components/preview.js +0 -13
- package/dist/dev/skins/dist/default/minimal/tailwind/components/preview.js.map +0 -1
- package/dist/dev/ui/hotkey/use-aria-key-shortcuts.d.ts +0 -5
- package/dist/dev/ui/hotkey/use-aria-key-shortcuts.d.ts.map +0 -1
- package/dist/dev/ui/hotkey/use-aria-key-shortcuts.js +0 -16
- package/dist/dev/ui/hotkey/use-aria-key-shortcuts.js.map +0 -1
- package/dist/dev/ui/menu/menu-label.d.ts +0 -15
- package/dist/dev/ui/menu/menu-label.d.ts.map +0 -1
- package/dist/dev/ui/menu/menu-label.js +0 -23
- package/dist/dev/ui/menu/menu-label.js.map +0 -1
- package/dist/dev/ui/playback-rate-menu/context.js +0 -20
- package/dist/dev/ui/playback-rate-menu/context.js.map +0 -1
- package/dist/dev/ui/playback-rate-menu/index.d.ts +0 -3
- package/dist/dev/ui/playback-rate-menu/index.js +0 -3
- package/dist/dev/ui/playback-rate-menu/index.parts.d.ts +0 -12
- package/dist/dev/ui/playback-rate-menu/index.parts.d.ts.map +0 -1
- package/dist/dev/ui/playback-rate-menu/index.parts.js +0 -17
- package/dist/dev/ui/playback-rate-menu/index.parts.js.map +0 -1
- package/dist/dev/ui/playback-rate-menu/playback-rate-menu-content.d.ts +0 -14
- package/dist/dev/ui/playback-rate-menu/playback-rate-menu-content.d.ts.map +0 -1
- package/dist/dev/ui/playback-rate-menu/playback-rate-menu-content.js +0 -28
- package/dist/dev/ui/playback-rate-menu/playback-rate-menu-content.js.map +0 -1
- package/dist/dev/ui/playback-rate-menu/playback-rate-menu-root.d.ts +0 -23
- package/dist/dev/ui/playback-rate-menu/playback-rate-menu-root.d.ts.map +0 -1
- package/dist/dev/ui/playback-rate-menu/playback-rate-menu-root.js +0 -39
- package/dist/dev/ui/playback-rate-menu/playback-rate-menu-root.js.map +0 -1
- package/dist/dev/ui/playback-rate-menu/playback-rate-menu-trigger.d.ts +0 -14
- package/dist/dev/ui/playback-rate-menu/playback-rate-menu-trigger.d.ts.map +0 -1
- package/dist/dev/ui/playback-rate-menu/playback-rate-menu-trigger.js +0 -51
- package/dist/dev/ui/playback-rate-menu/playback-rate-menu-trigger.js.map +0 -1
- package/dist/dev/ui/playback-rate-menu/use-playback-rate-menu.d.ts +0 -26
- package/dist/dev/ui/playback-rate-menu/use-playback-rate-menu.d.ts.map +0 -1
- package/dist/dev/ui/playback-rate-menu/use-playback-rate-menu.js +0 -27
- package/dist/dev/ui/playback-rate-menu/use-playback-rate-menu.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-playback-rate-options.js","names":["PlaybackRateRadioGroupCoreClass"],"sources":["../../../../src/ui/playback-rate/use-playback-rate-options.ts"],"sourcesContent":["'use client';\n\nimport {\n type PlaybackRateRadioGroupCore,\n PlaybackRateRadioGroupCore as PlaybackRateRadioGroupCoreClass,\n} from '@videojs/core';\nimport { logMissingFeature, selectPlaybackRate } from '@videojs/core/dom';\nimport { useCallback, useState } from 'react';\n\nimport { usePlayer } from '../../player/context';\n\nexport interface PlaybackRateOptionsProps extends PlaybackRateRadioGroupCore.Props {}\n\nexport interface PlaybackRateOption {\n rate: number;\n value: string;\n label: string;\n disabled: boolean;\n}\n\nexport interface PlaybackRateOptionsResult {\n state: PlaybackRateRadioGroupCore.State;\n rate: number;\n value: string;\n options: PlaybackRateOption[];\n disabled: boolean;\n setRate: (rate: number) => void;\n setValue: (value: string) => void;\n}\n\nexport function usePlaybackRateOptions(props?: PlaybackRateOptionsProps): PlaybackRateOptionsResult | null {\n const media = usePlayer(selectPlaybackRate);\n const [core] = useState(() => new PlaybackRateRadioGroupCoreClass());\n\n core.setProps(props ?? {});\n\n const setRate = useCallback((rate: number) => core.select(media!, rate), [core, media]);\n const setValue = useCallback((value: string) => core.selectValue(media!, value), [core, media]);\n\n if (!media) {\n if (__DEV__) logMissingFeature('usePlaybackRateOptions', selectPlaybackRate.displayName ?? 'playbackRate');\n return null;\n }\n\n core.setMedia(media);\n const state = core.getState();\n\n return {\n state,\n rate: state.rate,\n value: core.getRateValue(state.rate),\n options: state.rates.map((rate) => ({\n rate,\n value: core.getRateValue(rate),\n label: core.getRateLabel(rate),\n disabled: state.disabled,\n })),\n disabled: state.disabled,\n setRate,\n setValue,\n };\n}\n\nexport namespace usePlaybackRateOptions {\n export type Props = PlaybackRateOptionsProps;\n export type Result = PlaybackRateOptionsResult;\n export type Option = PlaybackRateOption;\n}\n"],"mappings":";;;;;;AA8BA,SAAgB,uBAAuB,OAAoE;CACzG,MAAM,QAAQ,UAAU,mBAAmB;CAC3C,MAAM,CAAC,QAAQ,eAAe,IAAIA,4BAAiC,CAAC;AAEpE,MAAK,SAAS,SAAS,EAAE,CAAC;CAE1B,MAAM,UAAU,aAAa,SAAiB,KAAK,OAAO,OAAQ,KAAK,EAAE,CAAC,MAAM,MAAM,CAAC;CACvF,MAAM,WAAW,aAAa,UAAkB,KAAK,YAAY,OAAQ,MAAM,EAAE,CAAC,MAAM,MAAM,CAAC;AAE/F,KAAI,CAAC,OAAO;AACG,oBAAkB,0BAA0B,mBAAmB,eAAe,eAAe;AAC1G,SAAO;;AAGT,MAAK,SAAS,MAAM;CACpB,MAAM,QAAQ,KAAK,UAAU;AAE7B,QAAO;EACL;EACA,MAAM,MAAM;EACZ,OAAO,KAAK,aAAa,MAAM,KAAK;EACpC,SAAS,MAAM,MAAM,KAAK,UAAU;GAClC;GACA,OAAO,KAAK,aAAa,KAAK;GAC9B,OAAO,KAAK,aAAa,KAAK;GAC9B,UAAU,MAAM;GACjB,EAAE;EACH,UAAU,MAAM;EAChB;EACA;EACD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"playback-rate-button.d.ts","names":[],"sources":["../../../../src/ui/playback-rate-button/playback-rate-button.tsx"],"mappings":";;;;;UAQiB,uBAAA,SACP,gBAAA,WAA2B,sBAAA,CAAuB,KAAA,GACxD,sBAAA,CAAuB,KAAA;;AAF3B;;;;;;;;;;;;;;;cAoBa,kBAAA,EAAkB,OAAA,CAAA,yBAAA,CAAA,uBAAA,GAAA,OAAA,CAAA,aAAA,CAAA,iBAAA;AAAA,
|
|
1
|
+
{"version":3,"file":"playback-rate-button.d.ts","names":[],"sources":["../../../../src/ui/playback-rate-button/playback-rate-button.tsx"],"mappings":";;;;;UAQiB,uBAAA,SACP,gBAAA,WAA2B,sBAAA,CAAuB,KAAA,GACxD,sBAAA,CAAuB,KAAA;;AAF3B;;;;;;;;;;;;;;;cAoBa,kBAAA,EAAkB,OAAA,CAAA,yBAAA,CAAA,uBAAA,GAAA,OAAA,CAAA,aAAA,CAAA,iBAAA;AAAA,kBASd,kBAAA;EAAA,KACH,KAAA,GAAQ,uBAAA;EAAA,KACR,KAAA,GAAQ,sBAAA,CAAuB,KAAA;AAAA"}
|
|
@@ -24,7 +24,8 @@ const PlaybackRateButton = createMediaButton({
|
|
|
24
24
|
core: PlaybackRateButtonCore,
|
|
25
25
|
stateAttrMap: PlaybackRateButtonDataAttrs,
|
|
26
26
|
selector: selectPlaybackRate,
|
|
27
|
-
action: (core, state) => core.cycle(state)
|
|
27
|
+
action: (core, state) => core.cycle(state),
|
|
28
|
+
hotkeyAction: "speedUp"
|
|
28
29
|
});
|
|
29
30
|
//#endregion
|
|
30
31
|
export { PlaybackRateButton };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"playback-rate-button.js","names":[],"sources":["../../../../src/ui/playback-rate-button/playback-rate-button.tsx"],"sourcesContent":["'use client';\n\nimport { PlaybackRateButtonCore, PlaybackRateButtonDataAttrs } from '@videojs/core';\nimport { selectPlaybackRate } from '@videojs/core/dom';\n\nimport type { UIComponentProps } from '../../utils/types';\nimport { createMediaButton } from '../create-media-button';\n\nexport interface PlaybackRateButtonProps\n extends UIComponentProps<'button', PlaybackRateButtonCore.State>,\n PlaybackRateButtonCore.Props {}\n\n/**\n * A button that cycles through playback rates.\n *\n * @example\n * ```tsx\n * <PlaybackRateButton />\n *\n * <PlaybackRateButton\n * render={(props, state) => (\n * <button {...props}>\n * {state.rate}×\n * </button>\n * )}\n * />\n * ```\n */\nexport const PlaybackRateButton = createMediaButton<PlaybackRateButtonCore, PlaybackRateButtonProps>({\n displayName: 'PlaybackRateButton',\n core: PlaybackRateButtonCore,\n stateAttrMap: PlaybackRateButtonDataAttrs,\n selector: selectPlaybackRate,\n action: (core, state) => core.cycle(state),\n});\n\nexport namespace PlaybackRateButton {\n export type Props = PlaybackRateButtonProps;\n export type State = PlaybackRateButtonCore.State;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AA4BA,MAAa,qBAAqB,kBAAmE;CACnG,aAAa;CACb,MAAM;CACN,cAAc;CACd,UAAU;CACV,SAAS,MAAM,UAAU,KAAK,MAAM,MAAM;
|
|
1
|
+
{"version":3,"file":"playback-rate-button.js","names":[],"sources":["../../../../src/ui/playback-rate-button/playback-rate-button.tsx"],"sourcesContent":["'use client';\n\nimport { PlaybackRateButtonCore, PlaybackRateButtonDataAttrs } from '@videojs/core';\nimport { selectPlaybackRate } from '@videojs/core/dom';\n\nimport type { UIComponentProps } from '../../utils/types';\nimport { createMediaButton } from '../create-media-button';\n\nexport interface PlaybackRateButtonProps\n extends UIComponentProps<'button', PlaybackRateButtonCore.State>,\n PlaybackRateButtonCore.Props {}\n\n/**\n * A button that cycles through playback rates.\n *\n * @example\n * ```tsx\n * <PlaybackRateButton />\n *\n * <PlaybackRateButton\n * render={(props, state) => (\n * <button {...props}>\n * {state.rate}×\n * </button>\n * )}\n * />\n * ```\n */\nexport const PlaybackRateButton = createMediaButton<PlaybackRateButtonCore, PlaybackRateButtonProps>({\n displayName: 'PlaybackRateButton',\n core: PlaybackRateButtonCore,\n stateAttrMap: PlaybackRateButtonDataAttrs,\n selector: selectPlaybackRate,\n action: (core, state) => core.cycle(state),\n hotkeyAction: 'speedUp',\n});\n\nexport namespace PlaybackRateButton {\n export type Props = PlaybackRateButtonProps;\n export type State = PlaybackRateButtonCore.State;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AA4BA,MAAa,qBAAqB,kBAAmE;CACnG,aAAa;CACb,MAAM;CACN,cAAc;CACd,UAAU;CACV,SAAS,MAAM,UAAU,KAAK,MAAM,MAAM;CAC1C,cAAc;CACf,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"poster.d.ts","names":[],"sources":["../../../../src/ui/poster/poster.tsx"],"mappings":";;;;;UAWiB,WAAA,SAAoB,gBAAA,QAAwB,UAAA,CAAW,KAAA;;AAAxE;;;;;;;;;AAgBA;;;;cAAa,MAAA,EAAM,OAAA,CAAA,yBAAA,CAAA,IAAA,CAAA,WAAA,WAAA,OAAA,CAAA,aAAA,CAAA,gBAAA;AAAA,
|
|
1
|
+
{"version":3,"file":"poster.d.ts","names":[],"sources":["../../../../src/ui/poster/poster.tsx"],"mappings":";;;;;UAWiB,WAAA,SAAoB,gBAAA,QAAwB,UAAA,CAAW,KAAA;;AAAxE;;;;;;;;;AAgBA;;;;cAAa,MAAA,EAAM,OAAA,CAAA,yBAAA,CAAA,IAAA,CAAA,WAAA,WAAA,OAAA,CAAA,aAAA,CAAA,gBAAA;AAAA,kBAiDF,MAAA;EAAA,KACH,KAAA,GAAQ,WAAA;EAAA,KACR,KAAA,GAAQ,UAAA,CAAW,KAAA;AAAA"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import { usePlayer } from "../../player/context.js";
|
|
3
3
|
import { renderElement } from "../../utils/use-render.js";
|
|
4
4
|
import { logMissingFeature, selectPlayback } from "@videojs/core/dom";
|
|
5
|
-
import { forwardRef, useState } from "react";
|
|
5
|
+
import { forwardRef, useCallback, useEffect, useRef, useState } from "react";
|
|
6
6
|
import { PosterCore, PosterDataAttrs } from "@videojs/core";
|
|
7
7
|
//#region src/ui/poster/poster.tsx
|
|
8
8
|
/**
|
|
@@ -23,6 +23,17 @@ const Poster = forwardRef(function Poster(componentProps, forwardedRef) {
|
|
|
23
23
|
const { render, className, style, ...elementProps } = componentProps;
|
|
24
24
|
const playback = usePlayer(selectPlayback);
|
|
25
25
|
const [core] = useState(() => new PosterCore());
|
|
26
|
+
const src = elementProps.src;
|
|
27
|
+
const [loadedSrc, setLoadedSrc] = useState(void 0);
|
|
28
|
+
const loaded = loadedSrc === src;
|
|
29
|
+
const imgRef = useRef(null);
|
|
30
|
+
useEffect(() => {
|
|
31
|
+
const img = imgRef.current;
|
|
32
|
+
if (img?.complete && img.naturalWidth > 0 && img.getAttribute("src") === src) setLoadedSrc(src);
|
|
33
|
+
}, [src]);
|
|
34
|
+
const handleLoad = useCallback((event) => {
|
|
35
|
+
setLoadedSrc(event.currentTarget.getAttribute("src") ?? void 0);
|
|
36
|
+
}, []);
|
|
26
37
|
if (!playback) {
|
|
27
38
|
logMissingFeature("Poster", "playback");
|
|
28
39
|
return null;
|
|
@@ -35,8 +46,11 @@ const Poster = forwardRef(function Poster(componentProps, forwardedRef) {
|
|
|
35
46
|
}, {
|
|
36
47
|
state: core.getState(),
|
|
37
48
|
stateAttrMap: PosterDataAttrs,
|
|
38
|
-
ref: [forwardedRef],
|
|
39
|
-
props: [elementProps
|
|
49
|
+
ref: [forwardedRef, imgRef],
|
|
50
|
+
props: [elementProps, {
|
|
51
|
+
"data-loaded": loaded ? "" : void 0,
|
|
52
|
+
onLoad: handleLoad
|
|
53
|
+
}]
|
|
40
54
|
});
|
|
41
55
|
});
|
|
42
56
|
//#endregion
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"poster.js","names":[],"sources":["../../../../src/ui/poster/poster.tsx"],"sourcesContent":["'use client';\n\nimport { PosterCore, PosterDataAttrs } from '@videojs/core';\nimport { logMissingFeature, selectPlayback } from '@videojs/core/dom';\nimport type { ForwardedRef } from 'react';\nimport { forwardRef, useState } from 'react';\n\nimport { usePlayer } from '../../player/context';\nimport type { UIComponentProps } from '../../utils/types';\nimport { renderElement } from '../../utils/use-render';\n\nexport interface PosterProps extends UIComponentProps<'img', PosterCore.State> {}\n\n/**\n * Displays the video poster image. Shows before playback starts, hides after.\n *\n * @example\n * ```tsx\n * <Poster src=\"poster.jpg\" alt=\"Video description\" />\n *\n * <Poster\n * src=\"poster.jpg\"\n * alt=\"Video description\"\n * className={(state) => state.visible ? 'visible' : 'hidden'}\n * />\n * ```\n */\nexport const Poster = forwardRef(function Poster(\n componentProps: PosterProps,\n forwardedRef: ForwardedRef<HTMLImageElement>\n) {\n const { render, className, style, ...elementProps } = componentProps;\n\n const playback = usePlayer(selectPlayback);\n\n const [core] = useState(() => new PosterCore());\n\n if (!playback) {\n if (__DEV__) logMissingFeature('Poster', 'playback');\n return null;\n }\n\n core.setMedia(playback);\n\n return renderElement(\n 'img',\n { render, className, style },\n {\n state: core.getState(),\n stateAttrMap: PosterDataAttrs,\n ref: [forwardedRef],\n props: [elementProps],\n }\n );\n});\n\nexport namespace Poster {\n export type Props = PosterProps;\n export type State = PosterCore.State;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AA2BA,MAAa,SAAS,WAAW,SAAS,OACxC,gBACA,cACA;CACA,MAAM,EAAE,QAAQ,WAAW,OAAO,GAAG,iBAAiB;CAEtD,MAAM,WAAW,UAAU,eAAe;CAE1C,MAAM,CAAC,QAAQ,eAAe,IAAI,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"poster.js","names":[],"sources":["../../../../src/ui/poster/poster.tsx"],"sourcesContent":["'use client';\n\nimport { PosterCore, PosterDataAttrs } from '@videojs/core';\nimport { logMissingFeature, selectPlayback } from '@videojs/core/dom';\nimport type { ForwardedRef, SyntheticEvent } from 'react';\nimport { forwardRef, useCallback, useEffect, useRef, useState } from 'react';\n\nimport { usePlayer } from '../../player/context';\nimport type { UIComponentProps } from '../../utils/types';\nimport { renderElement } from '../../utils/use-render';\n\nexport interface PosterProps extends UIComponentProps<'img', PosterCore.State> {}\n\n/**\n * Displays the video poster image. Shows before playback starts, hides after.\n *\n * @example\n * ```tsx\n * <Poster src=\"poster.jpg\" alt=\"Video description\" />\n *\n * <Poster\n * src=\"poster.jpg\"\n * alt=\"Video description\"\n * className={(state) => state.visible ? 'visible' : 'hidden'}\n * />\n * ```\n */\nexport const Poster = forwardRef(function Poster(\n componentProps: PosterProps,\n forwardedRef: ForwardedRef<HTMLImageElement>\n) {\n const { render, className, style, ...elementProps } = componentProps;\n\n const playback = usePlayer(selectPlayback);\n\n const [core] = useState(() => new PosterCore());\n\n // Track when the current src has finished loading so the CSS blur-up\n // sequence can show the placeholder first, then crossfade to the full image.\n const src = (elementProps as { src?: string }).src;\n const [loadedSrc, setLoadedSrc] = useState<string | undefined>(undefined);\n const loaded = loadedSrc === src;\n const imgRef = useRef<HTMLImageElement | null>(null);\n\n // A cached image may already be complete when the element mounts, in which\n // case onLoad never fires. Check synchronously after mount and on src change.\n useEffect(() => {\n const img = imgRef.current;\n if (img?.complete && img.naturalWidth > 0 && img.getAttribute('src') === src) {\n setLoadedSrc(src);\n }\n }, [src]);\n\n const handleLoad = useCallback((event: SyntheticEvent<HTMLImageElement>) => {\n setLoadedSrc(event.currentTarget.getAttribute('src') ?? undefined);\n }, []);\n\n if (!playback) {\n if (__DEV__) logMissingFeature('Poster', 'playback');\n return null;\n }\n\n core.setMedia(playback);\n\n return renderElement(\n 'img',\n { render, className, style },\n {\n state: core.getState(),\n stateAttrMap: PosterDataAttrs,\n ref: [forwardedRef, imgRef],\n props: [elementProps, { 'data-loaded': loaded ? '' : undefined, onLoad: handleLoad }],\n }\n );\n});\n\nexport namespace Poster {\n export type Props = PosterProps;\n export type State = PosterCore.State;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AA2BA,MAAa,SAAS,WAAW,SAAS,OACxC,gBACA,cACA;CACA,MAAM,EAAE,QAAQ,WAAW,OAAO,GAAG,iBAAiB;CAEtD,MAAM,WAAW,UAAU,eAAe;CAE1C,MAAM,CAAC,QAAQ,eAAe,IAAI,YAAY,CAAC;CAI/C,MAAM,MAAO,aAAkC;CAC/C,MAAM,CAAC,WAAW,gBAAgB,SAA6B,KAAA,EAAU;CACzE,MAAM,SAAS,cAAc;CAC7B,MAAM,SAAS,OAAgC,KAAK;AAIpD,iBAAgB;EACd,MAAM,MAAM,OAAO;AACnB,MAAI,KAAK,YAAY,IAAI,eAAe,KAAK,IAAI,aAAa,MAAM,KAAK,IACvE,cAAa,IAAI;IAElB,CAAC,IAAI,CAAC;CAET,MAAM,aAAa,aAAa,UAA4C;AAC1E,eAAa,MAAM,cAAc,aAAa,MAAM,IAAI,KAAA,EAAU;IACjE,EAAE,CAAC;AAEN,KAAI,CAAC,UAAU;AACA,oBAAkB,UAAU,WAAW;AACpD,SAAO;;AAGT,MAAK,SAAS,SAAS;AAEvB,QAAO,cACL,OACA;EAAE;EAAQ;EAAW;EAAO,EAC5B;EACE,OAAO,KAAK,UAAU;EACtB,cAAc;EACd,KAAK,CAAC,cAAc,OAAO;EAC3B,OAAO,CAAC,cAAc;GAAE,eAAe,SAAS,KAAK,KAAA;GAAW,QAAQ;GAAY,CAAC;EACtF,CACF;EACD"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { QualityRadioGroupCore } from "@videojs/core";
|
|
2
|
+
|
|
3
|
+
//#region src/ui/quality/use-quality-options.d.ts
|
|
4
|
+
interface QualityOptionsProps extends QualityRadioGroupCore.Props {}
|
|
5
|
+
interface QualityOption {
|
|
6
|
+
value: string;
|
|
7
|
+
label: string;
|
|
8
|
+
tier?: string | undefined;
|
|
9
|
+
badge?: string | undefined;
|
|
10
|
+
disabled: boolean;
|
|
11
|
+
}
|
|
12
|
+
interface QualityOptionsResult {
|
|
13
|
+
state: QualityRadioGroupCore.State;
|
|
14
|
+
value: string;
|
|
15
|
+
options: QualityOption[];
|
|
16
|
+
disabled: boolean;
|
|
17
|
+
setValue: (value: string) => void;
|
|
18
|
+
}
|
|
19
|
+
declare function useQualityOptions(props?: QualityOptionsProps): QualityOptionsResult | null;
|
|
20
|
+
declare namespace useQualityOptions {
|
|
21
|
+
type Props = QualityOptionsProps;
|
|
22
|
+
type Result = QualityOptionsResult;
|
|
23
|
+
type Option = QualityOption;
|
|
24
|
+
}
|
|
25
|
+
//#endregion
|
|
26
|
+
export { QualityOption, QualityOptionsProps, QualityOptionsResult, useQualityOptions };
|
|
27
|
+
//# sourceMappingURL=use-quality-options.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-quality-options.d.ts","names":[],"sources":["../../../../src/ui/quality/use-quality-options.ts"],"mappings":";;;UAQiB,mBAAA,SAA4B,qBAAA,CAAsB,KAAA;AAAA,UAElD,aAAA;EACf,KAAA;EACA,KAAA;EACA,IAAA;EACA,KAAA;EACA,QAAA;AAAA;AAAA,UAGe,oBAAA;EACf,KAAA,EAAO,qBAAA,CAAsB,KAAA;EAC7B,KAAA;EACA,OAAA,EAAS,aAAA;EACT,QAAA;EACA,QAAA,GAAW,KAAA;AAAA;AAAA,iBAGG,iBAAA,CAAkB,KAAA,GAAQ,mBAAA,GAAsB,oBAAA;AAAA,kBAoC/C,iBAAA;EAAA,KACH,KAAA,GAAQ,mBAAA;EAAA,KACR,MAAA,GAAS,oBAAA;EAAA,KACT,MAAA,GAAS,aAAA;AAAA"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { usePlayer } from "../../player/context.js";
|
|
3
|
+
import { logMissingFeature, selectQuality } from "@videojs/core/dom";
|
|
4
|
+
import { useCallback, useState } from "react";
|
|
5
|
+
import { QUALITY_AUTO_VALUE, QualityRadioGroupCore } from "@videojs/core";
|
|
6
|
+
//#region src/ui/quality/use-quality-options.ts
|
|
7
|
+
function useQualityOptions(props) {
|
|
8
|
+
"use no memo";
|
|
9
|
+
const media = usePlayer(selectQuality);
|
|
10
|
+
const [core] = useState(() => new QualityRadioGroupCore());
|
|
11
|
+
core.setProps(props ?? {});
|
|
12
|
+
const setValue = useCallback((value) => core.selectValue(media, value), [core, media]);
|
|
13
|
+
if (!media) {
|
|
14
|
+
logMissingFeature("useQualityOptions", selectQuality.displayName ?? "quality");
|
|
15
|
+
return null;
|
|
16
|
+
}
|
|
17
|
+
core.setMedia(media);
|
|
18
|
+
const state = core.getState();
|
|
19
|
+
return {
|
|
20
|
+
state,
|
|
21
|
+
value: state.value,
|
|
22
|
+
options: [{
|
|
23
|
+
value: QUALITY_AUTO_VALUE,
|
|
24
|
+
label: state.autoLabel,
|
|
25
|
+
disabled: state.disabled
|
|
26
|
+
}, ...state.renditions.map((rendition) => ({
|
|
27
|
+
value: rendition.value,
|
|
28
|
+
label: rendition.label,
|
|
29
|
+
...rendition.tier && { tier: rendition.tier },
|
|
30
|
+
...rendition.badge && { badge: rendition.badge },
|
|
31
|
+
disabled: state.disabled
|
|
32
|
+
}))],
|
|
33
|
+
disabled: state.disabled,
|
|
34
|
+
setValue
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
//#endregion
|
|
38
|
+
export { useQualityOptions };
|
|
39
|
+
|
|
40
|
+
//# sourceMappingURL=use-quality-options.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-quality-options.js","names":[],"sources":["../../../../src/ui/quality/use-quality-options.ts"],"sourcesContent":["'use client';\n\nimport { QUALITY_AUTO_VALUE, QualityRadioGroupCore } from '@videojs/core';\nimport { logMissingFeature, selectQuality } from '@videojs/core/dom';\nimport { useCallback, useState } from 'react';\n\nimport { usePlayer } from '../../player/context';\n\nexport interface QualityOptionsProps extends QualityRadioGroupCore.Props {}\n\nexport interface QualityOption {\n value: string;\n label: string;\n tier?: string | undefined;\n badge?: string | undefined;\n disabled: boolean;\n}\n\nexport interface QualityOptionsResult {\n state: QualityRadioGroupCore.State;\n value: string;\n options: QualityOption[];\n disabled: boolean;\n setValue: (value: string) => void;\n}\n\nexport function useQualityOptions(props?: QualityOptionsProps): QualityOptionsResult | null {\n 'use no memo';\n\n const media = usePlayer(selectQuality);\n const [core] = useState(() => new QualityRadioGroupCore());\n\n core.setProps(props ?? {});\n\n const setValue = useCallback((value: string) => core.selectValue(media!, value), [core, media]);\n\n if (!media) {\n if (__DEV__) logMissingFeature('useQualityOptions', selectQuality.displayName ?? 'quality');\n return null;\n }\n\n core.setMedia(media);\n const state = core.getState();\n\n return {\n state,\n value: state.value,\n options: [\n { value: QUALITY_AUTO_VALUE, label: state.autoLabel, disabled: state.disabled },\n ...state.renditions.map((rendition) => ({\n value: rendition.value,\n label: rendition.label,\n ...(rendition.tier && { tier: rendition.tier }),\n ...(rendition.badge && { badge: rendition.badge }),\n disabled: state.disabled,\n })),\n ],\n disabled: state.disabled,\n setValue,\n };\n}\n\nexport namespace useQualityOptions {\n export type Props = QualityOptionsProps;\n export type Result = QualityOptionsResult;\n export type Option = QualityOption;\n}\n"],"mappings":";;;;;;AA0BA,SAAgB,kBAAkB,OAA0D;AAC1F;CAEA,MAAM,QAAQ,UAAU,cAAc;CACtC,MAAM,CAAC,QAAQ,eAAe,IAAI,uBAAuB,CAAC;AAE1D,MAAK,SAAS,SAAS,EAAE,CAAC;CAE1B,MAAM,WAAW,aAAa,UAAkB,KAAK,YAAY,OAAQ,MAAM,EAAE,CAAC,MAAM,MAAM,CAAC;AAE/F,KAAI,CAAC,OAAO;AACG,oBAAkB,qBAAqB,cAAc,eAAe,UAAU;AAC3F,SAAO;;AAGT,MAAK,SAAS,MAAM;CACpB,MAAM,QAAQ,KAAK,UAAU;AAE7B,QAAO;EACL;EACA,OAAO,MAAM;EACb,SAAS,CACP;GAAE,OAAO;GAAoB,OAAO,MAAM;GAAW,UAAU,MAAM;GAAU,EAC/E,GAAG,MAAM,WAAW,KAAK,eAAe;GACtC,OAAO,UAAU;GACjB,OAAO,UAAU;GACjB,GAAI,UAAU,QAAQ,EAAE,MAAM,UAAU,MAAM;GAC9C,GAAI,UAAU,SAAS,EAAE,OAAO,UAAU,OAAO;GACjD,UAAU,MAAM;GACjB,EAAE,CACJ;EACD,UAAU,MAAM;EAChB;EACD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"seek-button.d.ts","names":[],"sources":["../../../../src/ui/seek-button/seek-button.tsx"],"mappings":";;;;;UAQiB,eAAA,SAAwB,gBAAA,WAA2B,cAAA,CAAe,KAAA,GAAQ,cAAA,CAAe,KAAA;;AAA1G;;;;;;;;;;;;;;;AAmBA;cAAa,UAAA,EAAU,OAAA,CAAA,yBAAA,CAAA,eAAA,GAAA,OAAA,CAAA,aAAA,CAAA,iBAAA;AAAA,
|
|
1
|
+
{"version":3,"file":"seek-button.d.ts","names":[],"sources":["../../../../src/ui/seek-button/seek-button.tsx"],"mappings":";;;;;UAQiB,eAAA,SAAwB,gBAAA,WAA2B,cAAA,CAAe,KAAA,GAAQ,cAAA,CAAe,KAAA;;AAA1G;;;;;;;;;;;;;;;AAmBA;cAAa,UAAA,EAAU,OAAA,CAAA,yBAAA,CAAA,eAAA,GAAA,OAAA,CAAA,aAAA,CAAA,iBAAA;AAAA,kBAUN,UAAA;EAAA,KACH,KAAA,GAAQ,eAAA;EAAA,KACR,KAAA,GAAQ,cAAA,CAAe,KAAA;AAAA"}
|
|
@@ -25,7 +25,9 @@ const SeekButton = createMediaButton({
|
|
|
25
25
|
core: SeekButtonCore,
|
|
26
26
|
stateAttrMap: SeekButtonDataAttrs,
|
|
27
27
|
selector: selectTime,
|
|
28
|
-
action: (core, state) => core.seek(state)
|
|
28
|
+
action: (core, state) => core.seek(state),
|
|
29
|
+
hotkeyAction: "seekStep",
|
|
30
|
+
hotkeyValue: (props) => typeof props.seconds === "number" ? props.seconds : SeekButtonCore.defaultProps.seconds
|
|
29
31
|
});
|
|
30
32
|
//#endregion
|
|
31
33
|
export { SeekButton };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"seek-button.js","names":[],"sources":["../../../../src/ui/seek-button/seek-button.tsx"],"sourcesContent":["'use client';\n\nimport { SeekButtonCore, SeekButtonDataAttrs } from '@videojs/core';\nimport { selectTime } from '@videojs/core/dom';\n\nimport type { UIComponentProps } from '../../utils/types';\nimport { createMediaButton } from '../create-media-button';\n\nexport interface SeekButtonProps extends UIComponentProps<'button', SeekButtonCore.State>, SeekButtonCore.Props {}\n\n/**\n * A button that seeks forward or backward by a configurable number of seconds.\n *\n * @example\n * ```tsx\n * <SeekButton seconds={-10} />\n *\n * <SeekButton\n * seconds={30}\n * render={(props, state) => (\n * <button {...props}>\n * {state.direction === 'backward' ? <RewindIcon /> : <FastForwardIcon />}\n * </button>\n * )}\n * />\n * ```\n */\nexport const SeekButton = createMediaButton<SeekButtonCore, SeekButtonProps>({\n displayName: 'SeekButton',\n core: SeekButtonCore,\n stateAttrMap: SeekButtonDataAttrs,\n selector: selectTime,\n action: (core, state) => core.seek(state),\n});\n\nexport namespace SeekButton {\n export type Props = SeekButtonProps;\n export type State = SeekButtonCore.State;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AA2BA,MAAa,aAAa,kBAAmD;CAC3E,aAAa;CACb,MAAM;CACN,cAAc;CACd,UAAU;CACV,SAAS,MAAM,UAAU,KAAK,KAAK,MAAM;
|
|
1
|
+
{"version":3,"file":"seek-button.js","names":[],"sources":["../../../../src/ui/seek-button/seek-button.tsx"],"sourcesContent":["'use client';\n\nimport { SeekButtonCore, SeekButtonDataAttrs } from '@videojs/core';\nimport { selectTime } from '@videojs/core/dom';\n\nimport type { UIComponentProps } from '../../utils/types';\nimport { createMediaButton } from '../create-media-button';\n\nexport interface SeekButtonProps extends UIComponentProps<'button', SeekButtonCore.State>, SeekButtonCore.Props {}\n\n/**\n * A button that seeks forward or backward by a configurable number of seconds.\n *\n * @example\n * ```tsx\n * <SeekButton seconds={-10} />\n *\n * <SeekButton\n * seconds={30}\n * render={(props, state) => (\n * <button {...props}>\n * {state.direction === 'backward' ? <RewindIcon /> : <FastForwardIcon />}\n * </button>\n * )}\n * />\n * ```\n */\nexport const SeekButton = createMediaButton<SeekButtonCore, SeekButtonProps>({\n displayName: 'SeekButton',\n core: SeekButtonCore,\n stateAttrMap: SeekButtonDataAttrs,\n selector: selectTime,\n action: (core, state) => core.seek(state),\n hotkeyAction: 'seekStep',\n hotkeyValue: (props) => (typeof props.seconds === 'number' ? props.seconds : SeekButtonCore.defaultProps.seconds),\n});\n\nexport namespace SeekButton {\n export type Props = SeekButtonProps;\n export type State = SeekButtonCore.State;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AA2BA,MAAa,aAAa,kBAAmD;CAC3E,aAAa;CACb,MAAM;CACN,cAAc;CACd,UAAU;CACV,SAAS,MAAM,UAAU,KAAK,KAAK,MAAM;CACzC,cAAc;CACd,cAAc,UAAW,OAAO,MAAM,YAAY,WAAW,MAAM,UAAU,eAAe,aAAa;CAC1G,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"time-value.d.ts","names":[],"sources":["../../../../src/ui/time/time-value.tsx"],"mappings":";;;;;UAWiB,UAAA,SAAmB,IAAA,CAAK,gBAAA,SAAyB,QAAA,CAAS,KAAA,gBAAqB,QAAA,CAAS,KAAA;;AAAzG;;;;;;;;;cAYa,KAAA,EAAK,OAAA,CAAA,yBAAA,CAAA,IAAA,CAAA,UAAA,WAAA,OAAA,CAAA,aAAA,CAAA,eAAA;AAAA,
|
|
1
|
+
{"version":3,"file":"time-value.d.ts","names":[],"sources":["../../../../src/ui/time/time-value.tsx"],"mappings":";;;;;UAWiB,UAAA,SAAmB,IAAA,CAAK,gBAAA,SAAyB,QAAA,CAAS,KAAA,gBAAqB,QAAA,CAAS,KAAA;;AAAzG;;;;;;;;;cAYa,KAAA,EAAK,OAAA,CAAA,yBAAA,CAAA,IAAA,CAAA,UAAA,WAAA,OAAA,CAAA,aAAA,CAAA,eAAA;AAAA,kBA6ED,KAAA;EAAA,KACH,KAAA,GAAQ,UAAA;EAAA,KACR,KAAA,GAAQ,QAAA,CAAS,KAAA;AAAA"}
|
|
@@ -2,9 +2,10 @@
|
|
|
2
2
|
import { usePlayer } from "../../player/context.js";
|
|
3
3
|
import { renderElement } from "../../utils/use-render.js";
|
|
4
4
|
import { logMissingFeature, selectTime } from "@videojs/core/dom";
|
|
5
|
-
import { forwardRef, useState } from "react";
|
|
5
|
+
import { forwardRef, useEffect, useState } from "react";
|
|
6
6
|
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
7
7
|
import { TimeCore, TimeDataAttrs } from "@videojs/core";
|
|
8
|
+
import { isInteractiveActivation } from "@videojs/utils/dom";
|
|
8
9
|
//#region src/ui/time/time-value.tsx
|
|
9
10
|
/**
|
|
10
11
|
* Displays a formatted time value (current, duration, or remaining).
|
|
@@ -17,13 +18,19 @@ import { TimeCore, TimeDataAttrs } from "@videojs/core";
|
|
|
17
18
|
* ```
|
|
18
19
|
*/
|
|
19
20
|
const Value = forwardRef(function Value(componentProps, forwardedRef) {
|
|
20
|
-
const { render, className, style, type, negativeSign, label, ...elementProps } = componentProps;
|
|
21
|
+
const { render, className, style, type, negativeSign, label, toggle = false, ...elementProps } = componentProps;
|
|
21
22
|
const time = usePlayer(selectTime);
|
|
22
23
|
const [core] = useState(() => new TimeCore());
|
|
24
|
+
const defaultType = type ?? TimeCore.defaultProps.type;
|
|
25
|
+
const [activeType, setActiveType] = useState(defaultType);
|
|
26
|
+
useEffect(() => {
|
|
27
|
+
setActiveType(defaultType);
|
|
28
|
+
}, [defaultType, toggle]);
|
|
23
29
|
core.setProps({
|
|
24
|
-
type,
|
|
30
|
+
type: activeType,
|
|
25
31
|
negativeSign,
|
|
26
|
-
label
|
|
32
|
+
label,
|
|
33
|
+
toggle
|
|
27
34
|
});
|
|
28
35
|
if (!time) {
|
|
29
36
|
logMissingFeature("Time.Value", "time");
|
|
@@ -35,6 +42,22 @@ const Value = forwardRef(function Value(componentProps, forwardedRef) {
|
|
|
35
42
|
"aria-hidden": "true",
|
|
36
43
|
children: negativeSign ?? TimeCore.defaultProps.negativeSign
|
|
37
44
|
}), state.text] }) : state.text;
|
|
45
|
+
const toggleType = () => {
|
|
46
|
+
setActiveType((value) => {
|
|
47
|
+
if (defaultType === "current") return value === "remaining" ? "current" : "remaining";
|
|
48
|
+
return value === "duration" ? "remaining" : "duration";
|
|
49
|
+
});
|
|
50
|
+
};
|
|
51
|
+
const handleClick = (event) => {
|
|
52
|
+
if (event.defaultPrevented) return;
|
|
53
|
+
toggleType();
|
|
54
|
+
};
|
|
55
|
+
const handleKeyDown = (event) => {
|
|
56
|
+
if (event.defaultPrevented || !isInteractiveActivation(event.nativeEvent)) return;
|
|
57
|
+
event.preventDefault();
|
|
58
|
+
if (event.repeat) return;
|
|
59
|
+
toggleType();
|
|
60
|
+
};
|
|
38
61
|
return renderElement("time", {
|
|
39
62
|
render,
|
|
40
63
|
className,
|
|
@@ -46,7 +69,11 @@ const Value = forwardRef(function Value(componentProps, forwardedRef) {
|
|
|
46
69
|
props: [{
|
|
47
70
|
dateTime: state.datetime,
|
|
48
71
|
children: content,
|
|
49
|
-
...core.getAttrs(state)
|
|
72
|
+
...core.getAttrs(state, defaultType),
|
|
73
|
+
...toggle ? {
|
|
74
|
+
onClick: handleClick,
|
|
75
|
+
onKeyDown: handleKeyDown
|
|
76
|
+
} : void 0
|
|
50
77
|
}, elementProps]
|
|
51
78
|
});
|
|
52
79
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"time-value.js","names":[],"sources":["../../../../src/ui/time/time-value.tsx"],"sourcesContent":["'use client';\n\nimport { TimeCore, TimeDataAttrs } from '@videojs/core';\nimport { logMissingFeature, selectTime } from '@videojs/core/dom';\nimport type { ForwardedRef } from 'react';\nimport { forwardRef, useState } from 'react';\
|
|
1
|
+
{"version":3,"file":"time-value.js","names":[],"sources":["../../../../src/ui/time/time-value.tsx"],"sourcesContent":["'use client';\n\nimport { TimeCore, TimeDataAttrs } from '@videojs/core';\nimport { logMissingFeature, selectTime } from '@videojs/core/dom';\nimport { isInteractiveActivation } from '@videojs/utils/dom';\nimport type { ForwardedRef, KeyboardEvent, MouseEvent } from 'react';\nimport { forwardRef, useEffect, useState } from 'react';\nimport { usePlayer } from '../../player/context';\nimport type { UIComponentProps } from '../../utils/types';\nimport { renderElement } from '../../utils/use-render';\n\nexport interface ValueProps extends Omit<UIComponentProps<'time', TimeCore.State>, 'children'>, TimeCore.Props {}\n\n/**\n * Displays a formatted time value (current, duration, or remaining).\n *\n * @example\n * ```tsx\n * <Time.Value />\n * <Time.Value type=\"duration\" />\n * <Time.Value type=\"remaining\" negativeSign=\"−\" />\n * ```\n */\nexport const Value = forwardRef(function Value(\n componentProps: ValueProps,\n forwardedRef: ForwardedRef<HTMLTimeElement>\n) {\n const { render, className, style, type, negativeSign, label, toggle = false, ...elementProps } = componentProps;\n\n const time = usePlayer(selectTime);\n const [core] = useState(() => new TimeCore());\n\n const defaultType = type ?? TimeCore.defaultProps.type;\n const [activeType, setActiveType] = useState(defaultType);\n // biome-ignore lint/correctness/useExhaustiveDependencies: We want to listen for changes to defaultType and toggle (so we revert to default), this just means one less useEffect.\n useEffect(() => {\n setActiveType(defaultType);\n }, [defaultType, toggle]);\n\n core.setProps({ type: activeType, negativeSign, label, toggle });\n\n if (!time) {\n if (__DEV__) logMissingFeature('Time.Value', 'time');\n return null;\n }\n\n core.setMedia(time);\n const state = core.getState();\n\n const content = state.negative ? (\n <>\n <span aria-hidden=\"true\">{negativeSign ?? TimeCore.defaultProps.negativeSign}</span>\n {state.text}\n </>\n ) : (\n state.text\n );\n\n const toggleType = () => {\n setActiveType((value) => {\n if (defaultType === 'current') {\n return value === 'remaining' ? 'current' : 'remaining';\n }\n return value === 'duration' ? 'remaining' : 'duration';\n });\n };\n\n const handleClick = (event: MouseEvent<HTMLTimeElement>) => {\n if (event.defaultPrevented) return;\n toggleType();\n };\n\n const handleKeyDown = (event: KeyboardEvent<HTMLTimeElement>) => {\n if (event.defaultPrevented || !isInteractiveActivation(event.nativeEvent)) return;\n // Prevent space from scrolling page.\n event.preventDefault();\n if (event.repeat) return;\n toggleType();\n };\n\n return renderElement(\n 'time',\n { render, className, style },\n {\n state,\n stateAttrMap: TimeDataAttrs,\n ref: [forwardedRef],\n props: [\n {\n dateTime: state.datetime,\n children: content,\n ...core.getAttrs(state, defaultType),\n ...(toggle ? { onClick: handleClick, onKeyDown: handleKeyDown } : undefined),\n },\n elementProps,\n ],\n }\n );\n});\n\nexport namespace Value {\n export type Props = ValueProps;\n export type State = TimeCore.State;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAuBA,MAAa,QAAQ,WAAW,SAAS,MACvC,gBACA,cACA;CACA,MAAM,EAAE,QAAQ,WAAW,OAAO,MAAM,cAAc,OAAO,SAAS,OAAO,GAAG,iBAAiB;CAEjG,MAAM,OAAO,UAAU,WAAW;CAClC,MAAM,CAAC,QAAQ,eAAe,IAAI,UAAU,CAAC;CAE7C,MAAM,cAAc,QAAQ,SAAS,aAAa;CAClD,MAAM,CAAC,YAAY,iBAAiB,SAAS,YAAY;AAEzD,iBAAgB;AACd,gBAAc,YAAY;IACzB,CAAC,aAAa,OAAO,CAAC;AAEzB,MAAK,SAAS;EAAE,MAAM;EAAY;EAAc;EAAO;EAAQ,CAAC;AAEhE,KAAI,CAAC,MAAM;AACI,oBAAkB,cAAc,OAAO;AACpD,SAAO;;AAGT,MAAK,SAAS,KAAK;CACnB,MAAM,QAAQ,KAAK,UAAU;CAE7B,MAAM,UAAU,MAAM,WACpB,qBAAA,UAAA,EAAA,UAAA,CACE,oBAAC,QAAD;EAAM,eAAY;YAAQ,gBAAgB,SAAS,aAAa;EAAoB,CAAA,EACnF,MAAM,KACN,EAAA,CAAA,GAEH,MAAM;CAGR,MAAM,mBAAmB;AACvB,iBAAe,UAAU;AACvB,OAAI,gBAAgB,UAClB,QAAO,UAAU,cAAc,YAAY;AAE7C,UAAO,UAAU,aAAa,cAAc;IAC5C;;CAGJ,MAAM,eAAe,UAAuC;AAC1D,MAAI,MAAM,iBAAkB;AAC5B,cAAY;;CAGd,MAAM,iBAAiB,UAA0C;AAC/D,MAAI,MAAM,oBAAoB,CAAC,wBAAwB,MAAM,YAAY,CAAE;AAE3E,QAAM,gBAAgB;AACtB,MAAI,MAAM,OAAQ;AAClB,cAAY;;AAGd,QAAO,cACL,QACA;EAAE;EAAQ;EAAW;EAAO,EAC5B;EACE;EACA,cAAc;EACd,KAAK,CAAC,aAAa;EACnB,OAAO,CACL;GACE,UAAU,MAAM;GAChB,UAAU;GACV,GAAG,KAAK,SAAS,OAAO,YAAY;GACpC,GAAI,SAAS;IAAE,SAAS;IAAa,WAAW;IAAe,GAAG,KAAA;GACnE,EACD,aACD;EACF,CACF;EACD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"time-slider-root.d.ts","names":[],"sources":["../../../../src/ui/time-slider/time-slider-root.tsx"],"mappings":";;;;;UAgBiB,mBAAA,SAA4B,gBAAA,QAAwB,cAAA,CAAe,KAAA,GAAQ,cAAA,CAAe,KAAA;EACzG,WAAA;EACA,SAAA;AAAA;AAAA,cAGW,cAAA,EAAc,OAAA,CAAA,yBAAA,CAAA,IAAA,CAAA,mBAAA,WAAA,OAAA,CAAA,aAAA,CAAA,cAAA;AAAA,
|
|
1
|
+
{"version":3,"file":"time-slider-root.d.ts","names":[],"sources":["../../../../src/ui/time-slider/time-slider-root.tsx"],"mappings":";;;;;UAgBiB,mBAAA,SAA4B,gBAAA,QAAwB,cAAA,CAAe,KAAA,GAAQ,cAAA,CAAe,KAAA;EACzG,WAAA;EACA,SAAA;AAAA;AAAA,cAGW,cAAA,EAAc,OAAA,CAAA,yBAAA,CAAA,IAAA,CAAA,mBAAA,WAAA,OAAA,CAAA,aAAA,CAAA,cAAA;AAAA,kBA+GV,cAAA;EAAA,KACH,KAAA,GAAQ,mBAAA;EAAA,KACR,KAAA,GAAQ,cAAA,CAAe,KAAA;AAAA"}
|
|
@@ -4,17 +4,18 @@ import { useLatestRef } from "../../utils/use-latest-ref.js";
|
|
|
4
4
|
import { renderElement } from "../../utils/use-render.js";
|
|
5
5
|
import { useSlider } from "../hooks/use-slider.js";
|
|
6
6
|
import { SliderProvider } from "../slider/context.js";
|
|
7
|
-
import { getTimeSliderCSSVars, logMissingFeature, selectBuffer, selectTime } from "@videojs/core/dom";
|
|
8
|
-
import { forwardRef, useState } from "react";
|
|
7
|
+
import { getTimeSliderCSSVars, logMissingFeature, selectBuffer, selectPlayback, selectTime } from "@videojs/core/dom";
|
|
8
|
+
import { forwardRef, useEffect, useState } from "react";
|
|
9
9
|
import { jsx } from "react/jsx-runtime";
|
|
10
10
|
import { TimeSliderCore, TimeSliderDataAttrs } from "@videojs/core";
|
|
11
11
|
import { formatTime } from "@videojs/utils/time";
|
|
12
12
|
//#region src/ui/time-slider/time-slider-root.tsx
|
|
13
13
|
const noopSeek = () => Promise.resolve(0);
|
|
14
14
|
const TimeSliderRoot = forwardRef(function TimeSliderRoot(componentProps, forwardedRef) {
|
|
15
|
-
const { render, className, style, label, changeThrottle = TimeSliderCore.defaultProps.changeThrottle, step = TimeSliderCore.defaultProps.step, largeStep = TimeSliderCore.defaultProps.largeStep, orientation, disabled, thumbAlignment, onDragStart, onDragEnd, ...elementProps } = componentProps;
|
|
15
|
+
const { render, className, style, label, changeThrottle = TimeSliderCore.defaultProps.changeThrottle, step = TimeSliderCore.defaultProps.step, largeStep = TimeSliderCore.defaultProps.largeStep, orientation, disabled, thumbAlignment, onDragStart, onDragEnd, pauseOnDrag, ...elementProps } = componentProps;
|
|
16
16
|
const time = usePlayer(selectTime);
|
|
17
17
|
const buffer = usePlayer(selectBuffer);
|
|
18
|
+
const playback = usePlayer(selectPlayback);
|
|
18
19
|
const [core] = useState(() => new TimeSliderCore());
|
|
19
20
|
core.setProps({
|
|
20
21
|
label,
|
|
@@ -22,12 +23,17 @@ const TimeSliderRoot = forwardRef(function TimeSliderRoot(componentProps, forwar
|
|
|
22
23
|
largeStep,
|
|
23
24
|
orientation,
|
|
24
25
|
disabled,
|
|
25
|
-
thumbAlignment
|
|
26
|
+
thumbAlignment,
|
|
27
|
+
pauseOnDrag
|
|
26
28
|
});
|
|
27
29
|
const mediaRef = useLatestRef(time && buffer ? {
|
|
28
30
|
...time,
|
|
29
31
|
...buffer
|
|
30
32
|
} : null);
|
|
33
|
+
const playbackRef = useLatestRef(playback);
|
|
34
|
+
useEffect(() => {
|
|
35
|
+
return () => core.endDrag(playbackRef.current);
|
|
36
|
+
}, [core]);
|
|
31
37
|
const duration = time?.duration ?? 0;
|
|
32
38
|
const { state, cssVars, rootRef, thumbRef, rootProps, rootStyle, thumbProps } = useSlider({
|
|
33
39
|
computeState: (input) => {
|
|
@@ -58,8 +64,14 @@ const TimeSliderRoot = forwardRef(function TimeSliderRoot(componentProps, forwar
|
|
|
58
64
|
const media = mediaRef.current;
|
|
59
65
|
if (media) media.seek(core.rawValueFromPercent(percent));
|
|
60
66
|
},
|
|
61
|
-
onDragStart
|
|
62
|
-
|
|
67
|
+
onDragStart: () => {
|
|
68
|
+
core.startDrag(playbackRef.current);
|
|
69
|
+
onDragStart?.();
|
|
70
|
+
},
|
|
71
|
+
onDragEnd: () => {
|
|
72
|
+
core.endDrag(playbackRef.current);
|
|
73
|
+
onDragEnd?.();
|
|
74
|
+
}
|
|
63
75
|
});
|
|
64
76
|
if (!time) {
|
|
65
77
|
logMissingFeature("TimeSlider", "time");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"time-slider-root.js","names":[],"sources":["../../../../src/ui/time-slider/time-slider-root.tsx"],"sourcesContent":["'use client';\n\nimport { TimeSliderCore, TimeSliderDataAttrs } from '@videojs/core';\nimport { getTimeSliderCSSVars, logMissingFeature, selectBuffer, selectTime } from '@videojs/core/dom';\nimport { formatTime } from '@videojs/utils/time';\nimport { forwardRef, useState } from 'react';\n\nimport { usePlayer } from '../../player/context';\nimport type { UIComponentProps } from '../../utils/types';\nimport { useLatestRef } from '../../utils/use-latest-ref';\nimport { renderElement } from '../../utils/use-render';\nimport { useSlider } from '../hooks/use-slider';\nimport { SliderProvider } from '../slider/context';\n\nconst noopSeek = (): Promise<number> => Promise.resolve(0);\n\nexport interface TimeSliderRootProps extends UIComponentProps<'div', TimeSliderCore.State>, TimeSliderCore.Props {\n onDragStart?: (() => void) | undefined;\n onDragEnd?: (() => void) | undefined;\n}\n\nexport const TimeSliderRoot = forwardRef<HTMLDivElement, TimeSliderRootProps>(\n function TimeSliderRoot(componentProps, forwardedRef) {\n const {\n render,\n className,\n style,\n label,\n changeThrottle = TimeSliderCore.defaultProps.changeThrottle,\n step = TimeSliderCore.defaultProps.step,\n largeStep = TimeSliderCore.defaultProps.largeStep,\n orientation,\n disabled,\n thumbAlignment,\n onDragStart,\n onDragEnd,\n ...elementProps\n } = componentProps;\n\n const time = usePlayer(selectTime);\n const buffer = usePlayer(selectBuffer);\n\n const [core] = useState(() => new TimeSliderCore());\n core.setProps({ label, step, largeStep, orientation, disabled, thumbAlignment });\n\n // Keep a ref to the latest media state for callbacks that fire outside the render cycle.\n const mediaRef = useLatestRef(time && buffer ? { ...time, ...buffer } : null);\n\n const duration = time?.duration ?? 0;\n\n const { state, cssVars, rootRef, thumbRef, rootProps, rootStyle, thumbProps } = useSlider<TimeSliderCore.State>({\n computeState: (input) => {\n core.setInput(input);\n if (!time || !buffer) {\n core.setMedia({\n currentTime: 0,\n duration: 0,\n seeking: false,\n seek: noopSeek,\n buffered: [],\n seekable: [],\n });\n } else {\n core.setMedia({ ...time, ...buffer });\n }\n\n return core.getState();\n },\n getPercent: () => (duration > 0 ? ((time?.currentTime ?? 0) / duration) * 100 : 0),\n getStepPercent: () => core.getStepPercent(),\n getLargeStepPercent: () => core.getLargeStepPercent(),\n orientation,\n disabled,\n changeThrottle,\n adjustPercent: (rawPercent, thumbSize, trackSize) =>\n core.adjustPercentForAlignment(rawPercent, thumbSize, trackSize),\n getCSSVars: getTimeSliderCSSVars,\n onValueCommit: (percent) => {\n const media = mediaRef.current;\n if (media) media.seek(core.rawValueFromPercent(percent));\n },\n onDragStart,\n onDragEnd,\n });\n\n if (!time) {\n if (__DEV__) logMissingFeature('TimeSlider', 'time');\n return null;\n }\n\n return (\n <SliderProvider\n value={{\n state,\n pointerValue: core.valueFromPercent(state.pointerPercent),\n thumbRef,\n thumbProps,\n stateAttrMap: TimeSliderDataAttrs,\n getAttrs: (sliderState) => core.getAttrs(sliderState as TimeSliderCore.State),\n formatValue: (value) => formatTime(value, duration),\n }}\n >\n {renderElement(\n 'div',\n { render, className, style },\n {\n state,\n stateAttrMap: TimeSliderDataAttrs,\n ref: [forwardedRef, rootRef],\n props: [{ style: { ...cssVars, ...rootStyle } }, rootProps, elementProps],\n }\n )}\n </SliderProvider>\n );\n }\n);\n\nexport namespace TimeSliderRoot {\n export type Props = TimeSliderRootProps;\n export type State = TimeSliderCore.State;\n}\n"],"mappings":";;;;;;;;;;;;AAcA,MAAM,iBAAkC,QAAQ,QAAQ,EAAE;AAO1D,MAAa,iBAAiB,WAC5B,SAAS,eAAe,gBAAgB,cAAc;CACpD,MAAM,EACJ,QACA,WACA,OACA,OACA,iBAAiB,eAAe,aAAa,gBAC7C,OAAO,eAAe,aAAa,MACnC,YAAY,eAAe,aAAa,WACxC,aACA,UACA,gBACA,aACA,WACA,GAAG,iBACD;CAEJ,MAAM,OAAO,UAAU,WAAW;CAClC,MAAM,SAAS,UAAU,aAAa;
|
|
1
|
+
{"version":3,"file":"time-slider-root.js","names":[],"sources":["../../../../src/ui/time-slider/time-slider-root.tsx"],"sourcesContent":["'use client';\n\nimport { TimeSliderCore, TimeSliderDataAttrs } from '@videojs/core';\nimport { getTimeSliderCSSVars, logMissingFeature, selectBuffer, selectPlayback, selectTime } from '@videojs/core/dom';\nimport { formatTime } from '@videojs/utils/time';\nimport { forwardRef, useEffect, useState } from 'react';\n\nimport { usePlayer } from '../../player/context';\nimport type { UIComponentProps } from '../../utils/types';\nimport { useLatestRef } from '../../utils/use-latest-ref';\nimport { renderElement } from '../../utils/use-render';\nimport { useSlider } from '../hooks/use-slider';\nimport { SliderProvider } from '../slider/context';\n\nconst noopSeek = (): Promise<number> => Promise.resolve(0);\n\nexport interface TimeSliderRootProps extends UIComponentProps<'div', TimeSliderCore.State>, TimeSliderCore.Props {\n onDragStart?: (() => void) | undefined;\n onDragEnd?: (() => void) | undefined;\n}\n\nexport const TimeSliderRoot = forwardRef<HTMLDivElement, TimeSliderRootProps>(\n function TimeSliderRoot(componentProps, forwardedRef) {\n const {\n render,\n className,\n style,\n label,\n changeThrottle = TimeSliderCore.defaultProps.changeThrottle,\n step = TimeSliderCore.defaultProps.step,\n largeStep = TimeSliderCore.defaultProps.largeStep,\n orientation,\n disabled,\n thumbAlignment,\n onDragStart,\n onDragEnd,\n pauseOnDrag,\n ...elementProps\n } = componentProps;\n\n const time = usePlayer(selectTime);\n const buffer = usePlayer(selectBuffer);\n const playback = usePlayer(selectPlayback);\n\n const [core] = useState(() => new TimeSliderCore());\n core.setProps({ label, step, largeStep, orientation, disabled, thumbAlignment, pauseOnDrag });\n\n // Keep a ref to the latest media state for callbacks that fire outside the render cycle.\n const mediaRef = useLatestRef(time && buffer ? { ...time, ...buffer } : null);\n const playbackRef = useLatestRef(playback);\n\n // Resume playback if the slider unmounts mid-drag — createSlider's destroy()\n // does not fire onDragEnd, so without this the player would stay paused.\n useEffect(() => {\n return () => core.endDrag(playbackRef.current);\n }, [core]);\n\n const duration = time?.duration ?? 0;\n\n const { state, cssVars, rootRef, thumbRef, rootProps, rootStyle, thumbProps } = useSlider<TimeSliderCore.State>({\n computeState: (input) => {\n core.setInput(input);\n if (!time || !buffer) {\n core.setMedia({\n currentTime: 0,\n duration: 0,\n seeking: false,\n seek: noopSeek,\n buffered: [],\n seekable: [],\n });\n } else {\n core.setMedia({ ...time, ...buffer });\n }\n\n return core.getState();\n },\n getPercent: () => (duration > 0 ? ((time?.currentTime ?? 0) / duration) * 100 : 0),\n getStepPercent: () => core.getStepPercent(),\n getLargeStepPercent: () => core.getLargeStepPercent(),\n orientation,\n disabled,\n changeThrottle,\n adjustPercent: (rawPercent, thumbSize, trackSize) =>\n core.adjustPercentForAlignment(rawPercent, thumbSize, trackSize),\n getCSSVars: getTimeSliderCSSVars,\n onValueCommit: (percent) => {\n const media = mediaRef.current;\n if (media) media.seek(core.rawValueFromPercent(percent));\n },\n onDragStart: () => {\n core.startDrag(playbackRef.current);\n onDragStart?.();\n },\n onDragEnd: () => {\n core.endDrag(playbackRef.current);\n onDragEnd?.();\n },\n });\n\n if (!time) {\n if (__DEV__) logMissingFeature('TimeSlider', 'time');\n return null;\n }\n\n return (\n <SliderProvider\n value={{\n state,\n pointerValue: core.valueFromPercent(state.pointerPercent),\n thumbRef,\n thumbProps,\n stateAttrMap: TimeSliderDataAttrs,\n getAttrs: (sliderState) => core.getAttrs(sliderState as TimeSliderCore.State),\n formatValue: (value) => formatTime(value, duration),\n }}\n >\n {renderElement(\n 'div',\n { render, className, style },\n {\n state,\n stateAttrMap: TimeSliderDataAttrs,\n ref: [forwardedRef, rootRef],\n props: [{ style: { ...cssVars, ...rootStyle } }, rootProps, elementProps],\n }\n )}\n </SliderProvider>\n );\n }\n);\n\nexport namespace TimeSliderRoot {\n export type Props = TimeSliderRootProps;\n export type State = TimeSliderCore.State;\n}\n"],"mappings":";;;;;;;;;;;;AAcA,MAAM,iBAAkC,QAAQ,QAAQ,EAAE;AAO1D,MAAa,iBAAiB,WAC5B,SAAS,eAAe,gBAAgB,cAAc;CACpD,MAAM,EACJ,QACA,WACA,OACA,OACA,iBAAiB,eAAe,aAAa,gBAC7C,OAAO,eAAe,aAAa,MACnC,YAAY,eAAe,aAAa,WACxC,aACA,UACA,gBACA,aACA,WACA,aACA,GAAG,iBACD;CAEJ,MAAM,OAAO,UAAU,WAAW;CAClC,MAAM,SAAS,UAAU,aAAa;CACtC,MAAM,WAAW,UAAU,eAAe;CAE1C,MAAM,CAAC,QAAQ,eAAe,IAAI,gBAAgB,CAAC;AACnD,MAAK,SAAS;EAAE;EAAO;EAAM;EAAW;EAAa;EAAU;EAAgB;EAAa,CAAC;CAG7F,MAAM,WAAW,aAAa,QAAQ,SAAS;EAAE,GAAG;EAAM,GAAG;EAAQ,GAAG,KAAK;CAC7E,MAAM,cAAc,aAAa,SAAS;AAI1C,iBAAgB;AACd,eAAa,KAAK,QAAQ,YAAY,QAAQ;IAC7C,CAAC,KAAK,CAAC;CAEV,MAAM,WAAW,MAAM,YAAY;CAEnC,MAAM,EAAE,OAAO,SAAS,SAAS,UAAU,WAAW,WAAW,eAAe,UAAgC;EAC9G,eAAe,UAAU;AACvB,QAAK,SAAS,MAAM;AACpB,OAAI,CAAC,QAAQ,CAAC,OACZ,MAAK,SAAS;IACZ,aAAa;IACb,UAAU;IACV,SAAS;IACT,MAAM;IACN,UAAU,EAAE;IACZ,UAAU,EAAE;IACb,CAAC;OAEF,MAAK,SAAS;IAAE,GAAG;IAAM,GAAG;IAAQ,CAAC;AAGvC,UAAO,KAAK,UAAU;;EAExB,kBAAmB,WAAW,KAAM,MAAM,eAAe,KAAK,WAAY,MAAM;EAChF,sBAAsB,KAAK,gBAAgB;EAC3C,2BAA2B,KAAK,qBAAqB;EACrD;EACA;EACA;EACA,gBAAgB,YAAY,WAAW,cACrC,KAAK,0BAA0B,YAAY,WAAW,UAAU;EAClE,YAAY;EACZ,gBAAgB,YAAY;GAC1B,MAAM,QAAQ,SAAS;AACvB,OAAI,MAAO,OAAM,KAAK,KAAK,oBAAoB,QAAQ,CAAC;;EAE1D,mBAAmB;AACjB,QAAK,UAAU,YAAY,QAAQ;AACnC,kBAAe;;EAEjB,iBAAiB;AACf,QAAK,QAAQ,YAAY,QAAQ;AACjC,gBAAa;;EAEhB,CAAC;AAEF,KAAI,CAAC,MAAM;AACI,oBAAkB,cAAc,OAAO;AACpD,SAAO;;AAGT,QACE,oBAAC,gBAAD;EACE,OAAO;GACL;GACA,cAAc,KAAK,iBAAiB,MAAM,eAAe;GACzD;GACA;GACA,cAAc;GACd,WAAW,gBAAgB,KAAK,SAAS,YAAoC;GAC7E,cAAc,UAAU,WAAW,OAAO,SAAS;GACpD;YAEA,cACC,OACA;GAAE;GAAQ;GAAW;GAAO,EAC5B;GACE;GACA,cAAc;GACd,KAAK,CAAC,cAAc,QAAQ;GAC5B,OAAO;IAAC,EAAE,OAAO;KAAE,GAAG;KAAS,GAAG;KAAW,EAAE;IAAE;IAAW;IAAa;GAC1E,CACF;EACc,CAAA;EAGtB"}
|
|
@@ -2,6 +2,10 @@ import { MediaContainer, PositioningBoundary, TooltipApi } from "@videojs/core/d
|
|
|
2
2
|
import { StateAttrMap as StateAttrMap$1, TooltipCore } from "@videojs/core";
|
|
3
3
|
|
|
4
4
|
//#region src/ui/tooltip/context.d.ts
|
|
5
|
+
interface TooltipContent {
|
|
6
|
+
label?: string | undefined;
|
|
7
|
+
shortcut?: string | undefined;
|
|
8
|
+
}
|
|
5
9
|
interface TooltipContextValue {
|
|
6
10
|
core: TooltipCore;
|
|
7
11
|
tooltip: TooltipApi;
|
|
@@ -9,13 +13,13 @@ interface TooltipContextValue {
|
|
|
9
13
|
stateAttrMap: StateAttrMap$1<TooltipCore.State>;
|
|
10
14
|
anchorName: string;
|
|
11
15
|
popupId: string;
|
|
12
|
-
content:
|
|
13
|
-
setContent: (content:
|
|
16
|
+
content: TooltipContent | undefined;
|
|
17
|
+
setContent: (content: TooltipContent | undefined) => void;
|
|
14
18
|
boundary: PositioningBoundary;
|
|
15
19
|
container: MediaContainer | null;
|
|
16
20
|
}
|
|
17
21
|
declare function useTooltipContext(): TooltipContextValue;
|
|
18
22
|
declare function useOptionalTooltipContext(): TooltipContextValue | null;
|
|
19
23
|
//#endregion
|
|
20
|
-
export { TooltipContextValue, useOptionalTooltipContext, useTooltipContext };
|
|
24
|
+
export { TooltipContent, TooltipContextValue, useOptionalTooltipContext, useTooltipContext };
|
|
21
25
|
//# sourceMappingURL=context.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.d.ts","names":[],"sources":["../../../../src/ui/tooltip/context.tsx"],"mappings":";;;;UAMiB,mBAAA;EACf,IAAA,EAAM,WAAA;EACN,OAAA,EAAS,UAAA;EACT,KAAA,EAAO,WAAA,CAAY,KAAA;EACnB,YAAA,EAAc,cAAA,CAAa,WAAA,CAAY,KAAA;EACvC,UAAA;EACA,OAAA;EACA,OAAA;
|
|
1
|
+
{"version":3,"file":"context.d.ts","names":[],"sources":["../../../../src/ui/tooltip/context.tsx"],"mappings":";;;;UAMiB,cAAA;EACf,KAAA;EACA,QAAA;AAAA;AAAA,UAGe,mBAAA;EACf,IAAA,EAAM,WAAA;EACN,OAAA,EAAS,UAAA;EACT,KAAA,EAAO,WAAA,CAAY,KAAA;EACnB,YAAA,EAAc,cAAA,CAAa,WAAA,CAAY,KAAA;EACvC,UAAA;EACA,OAAA;EACA,OAAA,EAAS,cAAA;EACT,UAAA,GAAa,OAAA,EAAS,cAAA;EACtB,QAAA,EAAU,mBAAA;EACV,SAAA,EAAW,cAAA;AAAA;AAAA,iBAOG,iBAAA,CAAA,GAAqB,mBAAA;AAAA,iBAMrB,yBAAA,CAAA,GAA6B,mBAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.js","names":[],"sources":["../../../../src/ui/tooltip/context.tsx"],"sourcesContent":["'use client';\n\nimport type { StateAttrMap, TooltipCore } from '@videojs/core';\nimport type { MediaContainer, PositioningBoundary, TooltipApi } from '@videojs/core/dom';\nimport { createContext, useContext } from 'react';\n\nexport interface TooltipContextValue {\n core: TooltipCore;\n tooltip: TooltipApi;\n state: TooltipCore.State;\n stateAttrMap: StateAttrMap<TooltipCore.State>;\n anchorName: string;\n popupId: string;\n content:
|
|
1
|
+
{"version":3,"file":"context.js","names":[],"sources":["../../../../src/ui/tooltip/context.tsx"],"sourcesContent":["'use client';\n\nimport type { StateAttrMap, TooltipCore } from '@videojs/core';\nimport type { MediaContainer, PositioningBoundary, TooltipApi } from '@videojs/core/dom';\nimport { createContext, useContext } from 'react';\n\nexport interface TooltipContent {\n label?: string | undefined;\n shortcut?: string | undefined;\n}\n\nexport interface TooltipContextValue {\n core: TooltipCore;\n tooltip: TooltipApi;\n state: TooltipCore.State;\n stateAttrMap: StateAttrMap<TooltipCore.State>;\n anchorName: string;\n popupId: string;\n content: TooltipContent | undefined;\n setContent: (content: TooltipContent | undefined) => void;\n boundary: PositioningBoundary;\n container: MediaContainer | null;\n}\n\nconst TooltipContext = createContext<TooltipContextValue | null>(null);\n\nexport const TooltipContextProvider = TooltipContext.Provider;\n\nexport function useTooltipContext(): TooltipContextValue {\n const ctx = useContext(TooltipContext);\n if (!ctx) throw new Error('Tooltip compound components must be used within a Tooltip.Root');\n return ctx;\n}\n\nexport function useOptionalTooltipContext(): TooltipContextValue | null {\n return useContext(TooltipContext);\n}\n"],"mappings":";;;AAwBA,MAAM,iBAAiB,cAA0C,KAAK;AAEtE,MAAa,yBAAyB,eAAe;AAErD,SAAgB,oBAAyC;CACvD,MAAM,MAAM,WAAW,eAAe;AACtC,KAAI,CAAC,IAAK,OAAM,IAAI,MAAM,iEAAiE;AAC3F,QAAO;;AAGT,SAAgB,4BAAwD;AACtE,QAAO,WAAW,eAAe"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { TooltipContextValue, useOptionalTooltipContext, useTooltipContext } from "./context.js";
|
|
1
|
+
import { TooltipContent, TooltipContextValue, useOptionalTooltipContext, useTooltipContext } from "./context.js";
|
|
2
2
|
import { index_parts_d_exports } from "./index.parts.js";
|
|
3
|
-
export { index_parts_d_exports as Tooltip, type TooltipContextValue, useOptionalTooltipContext, useTooltipContext };
|
|
3
|
+
export { index_parts_d_exports as Tooltip, type TooltipContent, type TooltipContextValue, useOptionalTooltipContext, useTooltipContext };
|
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
import { TooltipArrow, TooltipArrowProps } from "./tooltip-arrow.js";
|
|
2
|
+
import { TooltipLabel, TooltipLabelProps } from "./tooltip-label.js";
|
|
2
3
|
import { TooltipPopup, TooltipPopupProps } from "./tooltip-popup.js";
|
|
3
4
|
import { TooltipProvider, TooltipProviderProps } from "./tooltip-provider.js";
|
|
4
5
|
import { TooltipRoot, TooltipRootProps } from "./tooltip-root.js";
|
|
6
|
+
import { TooltipShortcut, TooltipShortcutProps } from "./tooltip-shortcut.js";
|
|
5
7
|
import { TooltipTrigger, TooltipTriggerProps } from "./tooltip-trigger.js";
|
|
6
8
|
|
|
7
9
|
//#region src/ui/tooltip/index.parts.d.ts
|
|
8
10
|
declare namespace index_parts_d_exports {
|
|
9
|
-
export { TooltipArrow as Arrow, TooltipArrowProps as ArrowProps, TooltipPopup as Popup, TooltipPopupProps as PopupProps, TooltipProvider as Provider, TooltipProviderProps as ProviderProps, TooltipRoot as Root, TooltipRootProps as RootProps, TooltipTrigger as Trigger, TooltipTriggerProps as TriggerProps };
|
|
11
|
+
export { TooltipArrow as Arrow, TooltipArrowProps as ArrowProps, TooltipLabel as Label, TooltipLabelProps as LabelProps, TooltipPopup as Popup, TooltipPopupProps as PopupProps, TooltipProvider as Provider, TooltipProviderProps as ProviderProps, TooltipRoot as Root, TooltipRootProps as RootProps, TooltipShortcut as Shortcut, TooltipShortcutProps as ShortcutProps, TooltipTrigger as Trigger, TooltipTriggerProps as TriggerProps };
|
|
10
12
|
}
|
|
11
13
|
//#endregion
|
|
12
14
|
export { index_parts_d_exports };
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { __exportAll } from "../../_virtual/_rolldown/runtime.js";
|
|
2
2
|
import { TooltipArrow } from "./tooltip-arrow.js";
|
|
3
|
+
import { TooltipLabel } from "./tooltip-label.js";
|
|
4
|
+
import { TooltipShortcut } from "./tooltip-shortcut.js";
|
|
3
5
|
import { TooltipPopup } from "./tooltip-popup.js";
|
|
4
6
|
import { TooltipProvider } from "./tooltip-provider.js";
|
|
5
7
|
import { TooltipRoot } from "./tooltip-root.js";
|
|
@@ -7,9 +9,11 @@ import { TooltipTrigger } from "./tooltip-trigger.js";
|
|
|
7
9
|
//#region src/ui/tooltip/index.parts.ts
|
|
8
10
|
var index_parts_exports = /* @__PURE__ */ __exportAll({
|
|
9
11
|
Arrow: () => TooltipArrow,
|
|
12
|
+
Label: () => TooltipLabel,
|
|
10
13
|
Popup: () => TooltipPopup,
|
|
11
14
|
Provider: () => TooltipProvider,
|
|
12
15
|
Root: () => TooltipRoot,
|
|
16
|
+
Shortcut: () => TooltipShortcut,
|
|
13
17
|
Trigger: () => TooltipTrigger
|
|
14
18
|
});
|
|
15
19
|
//#endregion
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.parts.js","names":[],"sources":["../../../../src/ui/tooltip/index.parts.ts"],"sourcesContent":["export { TooltipArrow as Arrow, type TooltipArrowProps as ArrowProps } from './tooltip-arrow';\nexport { TooltipPopup as Popup, type TooltipPopupProps as PopupProps } from './tooltip-popup';\nexport { TooltipProvider as Provider, type TooltipProviderProps as ProviderProps } from './tooltip-provider';\nexport { TooltipRoot as Root, type TooltipRootProps as RootProps } from './tooltip-root';\nexport { TooltipTrigger as Trigger, type TooltipTriggerProps as TriggerProps } from './tooltip-trigger';\n"],"mappings":""}
|
|
1
|
+
{"version":3,"file":"index.parts.js","names":[],"sources":["../../../../src/ui/tooltip/index.parts.ts"],"sourcesContent":["export { TooltipArrow as Arrow, type TooltipArrowProps as ArrowProps } from './tooltip-arrow';\nexport { TooltipLabel as Label, type TooltipLabelProps as LabelProps } from './tooltip-label';\nexport { TooltipPopup as Popup, type TooltipPopupProps as PopupProps } from './tooltip-popup';\nexport { TooltipProvider as Provider, type TooltipProviderProps as ProviderProps } from './tooltip-provider';\nexport { TooltipRoot as Root, type TooltipRootProps as RootProps } from './tooltip-root';\nexport { TooltipShortcut as Shortcut, type TooltipShortcutProps as ShortcutProps } from './tooltip-shortcut';\nexport { TooltipTrigger as Trigger, type TooltipTriggerProps as TriggerProps } from './tooltip-trigger';\n"],"mappings":""}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { createContextPart } from "../create-context-part.js";
|
|
3
2
|
import { useTooltipContext } from "./context.js";
|
|
3
|
+
import { createContextPart } from "../create-context-part.js";
|
|
4
4
|
//#region src/ui/tooltip/tooltip-arrow.tsx
|
|
5
5
|
/** Decorative arrow pointing from the tooltip toward the trigger. Hidden from assistive technology. */
|
|
6
6
|
const TooltipArrow = createContextPart({
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { UIComponentProps } from "../../utils/types.js";
|
|
2
|
+
import * as _$react from "react";
|
|
3
|
+
import { TooltipState } from "@videojs/core";
|
|
4
|
+
|
|
5
|
+
//#region src/ui/tooltip/tooltip-label.d.ts
|
|
6
|
+
interface TooltipLabelProps extends UIComponentProps<'span', TooltipState> {}
|
|
7
|
+
/** Tooltip body label; defaults to context `content.label` from the linked trigger. */
|
|
8
|
+
declare const TooltipLabel: _$react.ForwardRefExoticComponent<Omit<TooltipLabelProps, "ref"> & _$react.RefAttributes<HTMLSpanElement>>;
|
|
9
|
+
declare namespace TooltipLabel {
|
|
10
|
+
type Props = TooltipLabelProps;
|
|
11
|
+
type State = TooltipState;
|
|
12
|
+
}
|
|
13
|
+
//#endregion
|
|
14
|
+
export { TooltipLabel, TooltipLabelProps };
|
|
15
|
+
//# sourceMappingURL=tooltip-label.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tooltip-label.d.ts","names":[],"sources":["../../../../src/ui/tooltip/tooltip-label.tsx"],"mappings":";;;;;UASiB,iBAAA,SAA0B,gBAAA,SAAyB,YAAA;;cAGvD,YAAA,EAAY,OAAA,CAAA,yBAAA,CAAA,IAAA,CAAA,iBAAA,WAAA,OAAA,CAAA,aAAA,CAAA,eAAA;AAAA,kBAmBR,YAAA;EAAA,KACH,KAAA,GAAQ,iBAAA;EAAA,KACR,KAAA,GAAQ,YAAA;AAAA"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { renderElement } from "../../utils/use-render.js";
|
|
3
|
+
import { useTooltipContext } from "./context.js";
|
|
4
|
+
import { forwardRef } from "react";
|
|
5
|
+
//#region src/ui/tooltip/tooltip-label.tsx
|
|
6
|
+
/** Tooltip body label; defaults to context `content.label` from the linked trigger. */
|
|
7
|
+
const TooltipLabel = forwardRef(function TooltipLabel({ render, className, style, children, ...elementProps }, forwardedRef) {
|
|
8
|
+
const { state, stateAttrMap, content } = useTooltipContext();
|
|
9
|
+
const body = children !== void 0 ? children : content?.label ?? "";
|
|
10
|
+
return renderElement("span", {
|
|
11
|
+
render,
|
|
12
|
+
className,
|
|
13
|
+
style
|
|
14
|
+
}, {
|
|
15
|
+
state,
|
|
16
|
+
stateAttrMap,
|
|
17
|
+
ref: forwardedRef,
|
|
18
|
+
props: [elementProps, { children: body }]
|
|
19
|
+
});
|
|
20
|
+
});
|
|
21
|
+
//#endregion
|
|
22
|
+
export { TooltipLabel };
|
|
23
|
+
|
|
24
|
+
//# sourceMappingURL=tooltip-label.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tooltip-label.js","names":[],"sources":["../../../../src/ui/tooltip/tooltip-label.tsx"],"sourcesContent":["'use client';\n\nimport type { TooltipState } from '@videojs/core';\nimport { forwardRef } from 'react';\n\nimport type { UIComponentProps } from '../../utils/types';\nimport { renderElement } from '../../utils/use-render';\nimport { useTooltipContext } from './context';\n\nexport interface TooltipLabelProps extends UIComponentProps<'span', TooltipState> {}\n\n/** Tooltip body label; defaults to context `content.label` from the linked trigger. */\nexport const TooltipLabel = forwardRef<HTMLSpanElement, TooltipLabelProps>(function TooltipLabel(\n { render, className, style, children, ...elementProps },\n forwardedRef\n) {\n const { state, stateAttrMap, content } = useTooltipContext();\n const body = children !== undefined ? children : (content?.label ?? '');\n\n return renderElement(\n 'span',\n { render, className, style },\n {\n state,\n stateAttrMap,\n ref: forwardedRef,\n props: [elementProps, { children: body }],\n }\n );\n});\n\nexport namespace TooltipLabel {\n export type Props = TooltipLabelProps;\n export type State = TooltipState;\n}\n"],"mappings":";;;;;;AAYA,MAAa,eAAe,WAA+C,SAAS,aAClF,EAAE,QAAQ,WAAW,OAAO,UAAU,GAAG,gBACzC,cACA;CACA,MAAM,EAAE,OAAO,cAAc,YAAY,mBAAmB;CAC5D,MAAM,OAAO,aAAa,KAAA,IAAY,WAAY,SAAS,SAAS;AAEpE,QAAO,cACL,QACA;EAAE;EAAQ;EAAW;EAAO,EAC5B;EACE;EACA;EACA,KAAK;EACL,OAAO,CAAC,cAAc,EAAE,UAAU,MAAM,CAAC;EAC1C,CACF;EACD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tooltip-popup.d.ts","names":[],"sources":["../../../../src/ui/tooltip/tooltip-popup.tsx"],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"tooltip-popup.d.ts","names":[],"sources":["../../../../src/ui/tooltip/tooltip-popup.tsx"],"mappings":";;;;;UAsBiB,iBAAA,SAA0B,gBAAA,QAAwB,YAAA;;cAKtD,YAAA,EAAY,OAAA,CAAA,yBAAA,CAAA,IAAA,CAAA,iBAAA,WAAA,OAAA,CAAA,aAAA,CAAA,cAAA;AAAA,kBAyKR,YAAA;EAAA,KACH,KAAA,GAAQ,iBAAA;EAAA,KACR,KAAA,GAAQ,YAAA;AAAA"}
|