@videojs/react 10.0.0-beta.31 → 10.0.0-beta.32
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/i18n/context.js.map +1 -1
- package/dist/default/i18n/create-i18n.js +7 -4
- package/dist/default/i18n/create-i18n.js.map +1 -1
- package/dist/default/i18n/get-provider-root-props.js.map +1 -1
- package/dist/default/i18n/locales/all/register.js.map +1 -1
- package/dist/default/i18n/locales/ar/register.js.map +1 -1
- package/dist/default/i18n/locales/az/register.js.map +1 -1
- package/dist/default/i18n/locales/bg/register.js.map +1 -1
- package/dist/default/i18n/locales/bn/register.js.map +1 -1
- package/dist/default/i18n/locales/bs/register.js.map +1 -1
- package/dist/default/i18n/locales/ca/register.js.map +1 -1
- package/dist/default/i18n/locales/cs/register.js.map +1 -1
- package/dist/default/i18n/locales/cy/register.js.map +1 -1
- package/dist/default/i18n/locales/da/register.js.map +1 -1
- package/dist/default/i18n/locales/de/register.js.map +1 -1
- package/dist/default/i18n/locales/el/register.js.map +1 -1
- package/dist/default/i18n/locales/en/register.js.map +1 -1
- package/dist/default/i18n/locales/es/register.js.map +1 -1
- package/dist/default/i18n/locales/et/register.js.map +1 -1
- package/dist/default/i18n/locales/eu/register.js.map +1 -1
- package/dist/default/i18n/locales/fa/register.js.map +1 -1
- package/dist/default/i18n/locales/fi/register.js.map +1 -1
- package/dist/default/i18n/locales/fr/register.js.map +1 -1
- package/dist/default/i18n/locales/gd/register.js.map +1 -1
- package/dist/default/i18n/locales/gl/register.js.map +1 -1
- package/dist/default/i18n/locales/he/register.js.map +1 -1
- package/dist/default/i18n/locales/hi/register.js.map +1 -1
- package/dist/default/i18n/locales/hr/register.js.map +1 -1
- package/dist/default/i18n/locales/hu/register.js.map +1 -1
- package/dist/default/i18n/locales/id/register.js.map +1 -1
- package/dist/default/i18n/locales/it/register.js.map +1 -1
- package/dist/default/i18n/locales/ja/register.js.map +1 -1
- package/dist/default/i18n/locales/ko/register.js.map +1 -1
- package/dist/default/i18n/locales/lt/register.js.map +1 -1
- package/dist/default/i18n/locales/lv/register.js.map +1 -1
- package/dist/default/i18n/locales/mr/register.js.map +1 -1
- package/dist/default/i18n/locales/nb/register.js.map +1 -1
- package/dist/default/i18n/locales/ne/register.js.map +1 -1
- package/dist/default/i18n/locales/nl/register.js.map +1 -1
- package/dist/default/i18n/locales/nn/register.js.map +1 -1
- package/dist/default/i18n/locales/oc/register.js.map +1 -1
- package/dist/default/i18n/locales/pl/register.js.map +1 -1
- package/dist/default/i18n/locales/pt/register.js.map +1 -1
- package/dist/default/i18n/locales/pt-BR/register.js.map +1 -1
- package/dist/default/i18n/locales/pt-PT/register.js.map +1 -1
- package/dist/default/i18n/locales/ro/register.js.map +1 -1
- package/dist/default/i18n/locales/ru/register.js.map +1 -1
- package/dist/default/i18n/locales/sk/register.js.map +1 -1
- package/dist/default/i18n/locales/sl/register.js.map +1 -1
- package/dist/default/i18n/locales/sr/register.js.map +1 -1
- package/dist/default/i18n/locales/sv/register.js.map +1 -1
- package/dist/default/i18n/locales/te/register.js.map +1 -1
- package/dist/default/i18n/locales/th/register.js.map +1 -1
- package/dist/default/i18n/locales/tr/register.js.map +1 -1
- package/dist/default/i18n/locales/uk/register.js.map +1 -1
- package/dist/default/i18n/locales/vi/register.js.map +1 -1
- package/dist/default/i18n/locales/zh/register.js.map +1 -1
- package/dist/default/i18n/locales/zh-CN/register.js.map +1 -1
- package/dist/default/i18n/locales/zh-TW/register.js.map +1 -1
- package/dist/default/i18n/text.js.map +1 -1
- package/dist/default/i18n/use-ambient-lang.js.map +1 -1
- package/dist/default/i18n/use-lang-root-element.js.map +1 -1
- package/dist/default/i18n/use-lazy-translations.js.map +1 -1
- package/dist/default/i18n/use-locale-root-notifications.js.map +1 -1
- package/dist/default/i18n/use-merged-translations.js +4 -2
- package/dist/default/i18n/use-merged-translations.js.map +1 -1
- package/dist/default/icons/dist/react/default/airplay-enter.js +5 -2
- package/dist/default/icons/dist/react/default/airplay-enter.js.map +1 -1
- package/dist/default/icons/dist/react/default/airplay-exit.js +5 -2
- package/dist/default/icons/dist/react/default/airplay-exit.js.map +1 -1
- package/dist/default/icons/dist/react/default/captions-off.js +5 -2
- package/dist/default/icons/dist/react/default/captions-off.js.map +1 -1
- package/dist/default/icons/dist/react/default/captions-on.js +5 -2
- package/dist/default/icons/dist/react/default/captions-on.js.map +1 -1
- package/dist/default/icons/dist/react/default/cast-enter.js +5 -2
- package/dist/default/icons/dist/react/default/cast-enter.js.map +1 -1
- package/dist/default/icons/dist/react/default/cast-exit.js +5 -2
- package/dist/default/icons/dist/react/default/cast-exit.js.map +1 -1
- package/dist/default/icons/dist/react/default/check.js +5 -2
- package/dist/default/icons/dist/react/default/check.js.map +1 -1
- package/dist/default/icons/dist/react/default/chevron.js +5 -2
- package/dist/default/icons/dist/react/default/chevron.js.map +1 -1
- package/dist/default/icons/dist/react/default/fullscreen-enter.js +5 -2
- package/dist/default/icons/dist/react/default/fullscreen-enter.js.map +1 -1
- package/dist/default/icons/dist/react/default/fullscreen-exit.js +5 -2
- package/dist/default/icons/dist/react/default/fullscreen-exit.js.map +1 -1
- package/dist/default/icons/dist/react/default/gear.js +5 -2
- package/dist/default/icons/dist/react/default/gear.js.map +1 -1
- package/dist/default/icons/dist/react/default/pause.js +5 -2
- package/dist/default/icons/dist/react/default/pause.js.map +1 -1
- package/dist/default/icons/dist/react/default/pip-enter.js +5 -2
- package/dist/default/icons/dist/react/default/pip-enter.js.map +1 -1
- package/dist/default/icons/dist/react/default/pip-exit.js +5 -2
- package/dist/default/icons/dist/react/default/pip-exit.js.map +1 -1
- package/dist/default/icons/dist/react/default/play.js +5 -2
- package/dist/default/icons/dist/react/default/play.js.map +1 -1
- package/dist/default/icons/dist/react/default/quality.js +5 -2
- package/dist/default/icons/dist/react/default/quality.js.map +1 -1
- package/dist/default/icons/dist/react/default/restart.js +5 -2
- package/dist/default/icons/dist/react/default/restart.js.map +1 -1
- package/dist/default/icons/dist/react/default/seek.js +5 -2
- package/dist/default/icons/dist/react/default/seek.js.map +1 -1
- package/dist/default/icons/dist/react/default/speech.js +5 -2
- package/dist/default/icons/dist/react/default/speech.js.map +1 -1
- package/dist/default/icons/dist/react/default/speed.js +5 -2
- package/dist/default/icons/dist/react/default/speed.js.map +1 -1
- package/dist/default/icons/dist/react/default/spinner.js +5 -2
- package/dist/default/icons/dist/react/default/spinner.js.map +1 -1
- package/dist/default/icons/dist/react/default/switches.js +5 -2
- package/dist/default/icons/dist/react/default/switches.js.map +1 -1
- package/dist/default/icons/dist/react/default/volume-high.js +5 -2
- package/dist/default/icons/dist/react/default/volume-high.js.map +1 -1
- package/dist/default/icons/dist/react/default/volume-low.js +5 -2
- package/dist/default/icons/dist/react/default/volume-low.js.map +1 -1
- package/dist/default/icons/dist/react/default/volume-off.js +5 -2
- package/dist/default/icons/dist/react/default/volume-off.js.map +1 -1
- package/dist/default/icons/dist/react/minimal/airplay-enter.js +5 -2
- package/dist/default/icons/dist/react/minimal/airplay-enter.js.map +1 -1
- package/dist/default/icons/dist/react/minimal/airplay-exit.js +5 -2
- package/dist/default/icons/dist/react/minimal/airplay-exit.js.map +1 -1
- package/dist/default/icons/dist/react/minimal/captions-off.js +5 -2
- package/dist/default/icons/dist/react/minimal/captions-off.js.map +1 -1
- package/dist/default/icons/dist/react/minimal/captions-on.js +5 -2
- package/dist/default/icons/dist/react/minimal/captions-on.js.map +1 -1
- package/dist/default/icons/dist/react/minimal/cast-enter.js +5 -2
- package/dist/default/icons/dist/react/minimal/cast-enter.js.map +1 -1
- package/dist/default/icons/dist/react/minimal/cast-exit.js +5 -2
- package/dist/default/icons/dist/react/minimal/cast-exit.js.map +1 -1
- package/dist/default/icons/dist/react/minimal/check.js +5 -2
- package/dist/default/icons/dist/react/minimal/check.js.map +1 -1
- package/dist/default/icons/dist/react/minimal/chevron.js +5 -2
- package/dist/default/icons/dist/react/minimal/chevron.js.map +1 -1
- package/dist/default/icons/dist/react/minimal/fullscreen-enter.js +5 -2
- package/dist/default/icons/dist/react/minimal/fullscreen-enter.js.map +1 -1
- package/dist/default/icons/dist/react/minimal/fullscreen-exit.js +5 -2
- package/dist/default/icons/dist/react/minimal/fullscreen-exit.js.map +1 -1
- package/dist/default/icons/dist/react/minimal/gear.js +5 -2
- package/dist/default/icons/dist/react/minimal/gear.js.map +1 -1
- package/dist/default/icons/dist/react/minimal/pause.js +5 -2
- package/dist/default/icons/dist/react/minimal/pause.js.map +1 -1
- package/dist/default/icons/dist/react/minimal/pip-enter.js +5 -2
- package/dist/default/icons/dist/react/minimal/pip-enter.js.map +1 -1
- package/dist/default/icons/dist/react/minimal/pip-exit.js +5 -2
- package/dist/default/icons/dist/react/minimal/pip-exit.js.map +1 -1
- package/dist/default/icons/dist/react/minimal/play.js +5 -2
- package/dist/default/icons/dist/react/minimal/play.js.map +1 -1
- package/dist/default/icons/dist/react/minimal/quality.js +5 -2
- package/dist/default/icons/dist/react/minimal/quality.js.map +1 -1
- package/dist/default/icons/dist/react/minimal/restart.js +5 -2
- package/dist/default/icons/dist/react/minimal/restart.js.map +1 -1
- package/dist/default/icons/dist/react/minimal/seek.js +5 -2
- package/dist/default/icons/dist/react/minimal/seek.js.map +1 -1
- package/dist/default/icons/dist/react/minimal/speech.js +5 -2
- package/dist/default/icons/dist/react/minimal/speech.js.map +1 -1
- package/dist/default/icons/dist/react/minimal/speed.js +5 -2
- package/dist/default/icons/dist/react/minimal/speed.js.map +1 -1
- package/dist/default/icons/dist/react/minimal/spinner.js +5 -2
- package/dist/default/icons/dist/react/minimal/spinner.js.map +1 -1
- package/dist/default/icons/dist/react/minimal/switches.js +5 -2
- package/dist/default/icons/dist/react/minimal/switches.js.map +1 -1
- package/dist/default/icons/dist/react/minimal/volume-high.js +5 -2
- package/dist/default/icons/dist/react/minimal/volume-high.js.map +1 -1
- package/dist/default/icons/dist/react/minimal/volume-low.js +5 -2
- package/dist/default/icons/dist/react/minimal/volume-low.js.map +1 -1
- package/dist/default/icons/dist/react/minimal/volume-off.js +5 -2
- package/dist/default/icons/dist/react/minimal/volume-off.js.map +1 -1
- package/dist/default/icons/index.js +26 -26
- package/dist/default/icons/minimal/index.js +26 -26
- package/dist/default/index.js +15 -13
- package/dist/default/media/audio.js +3 -1
- package/dist/default/media/audio.js.map +1 -1
- package/dist/default/media/background-video/media.js +5 -3
- package/dist/default/media/background-video/media.js.map +1 -1
- package/dist/default/media/cloudflare-video/media.js +2 -1
- package/dist/default/media/cloudflare-video/media.js.map +1 -1
- package/dist/default/media/dash-video/media.js +5 -2
- package/dist/default/media/dash-video/media.js.map +1 -1
- package/dist/default/media/google-cast/google-cast.js +10 -10
- package/dist/default/media/google-cast/google-cast.js.map +1 -1
- package/dist/default/media/hls-audio/media.js +5 -2
- package/dist/default/media/hls-audio/media.js.map +1 -1
- package/dist/default/media/hls-background-video/media.js +15 -20
- package/dist/default/media/hls-background-video/media.js.map +1 -1
- package/dist/default/media/hls-video/media.js +5 -2
- package/dist/default/media/hls-video/media.js.map +1 -1
- package/dist/default/media/hlsjs-video/media.js +5 -2
- package/dist/default/media/hlsjs-video/media.js.map +1 -1
- package/dist/default/media/mux-audio/hls-js.js +5 -2
- package/dist/default/media/mux-audio/hls-js.js.map +1 -1
- package/dist/default/media/mux-audio/spf.js +5 -2
- package/dist/default/media/mux-audio/spf.js.map +1 -1
- package/dist/default/media/mux-data/mux-data.js +13 -17
- package/dist/default/media/mux-data/mux-data.js.map +1 -1
- package/dist/default/media/mux-video/hls-js.js +5 -2
- package/dist/default/media/mux-video/hls-js.js.map +1 -1
- package/dist/default/media/mux-video/spf.js +5 -2
- package/dist/default/media/mux-video/spf.js.map +1 -1
- package/dist/default/media/mux-video/storyboard.js +1 -4
- package/dist/default/media/mux-video/storyboard.js.map +1 -1
- package/dist/default/media/native-hls-video/media.js +5 -2
- package/dist/default/media/native-hls-video/media.js.map +1 -1
- package/dist/default/media/shaka-video/media.js +5 -2
- package/dist/default/media/shaka-video/media.js.map +1 -1
- package/dist/default/media/spotify-audio/media.js +2 -1
- package/dist/default/media/spotify-audio/media.js.map +1 -1
- package/dist/default/media/tiktok-video/media.js +2 -1
- package/dist/default/media/tiktok-video/media.js.map +1 -1
- package/dist/default/media/twitch-video/media.js +2 -1
- package/dist/default/media/twitch-video/media.js.map +1 -1
- package/dist/default/media/video.js +9 -1
- package/dist/default/media/video.js.map +1 -1
- package/dist/default/media/vimeo-video/media.js +2 -1
- package/dist/default/media/vimeo-video/media.js.map +1 -1
- package/dist/default/media/youtube-video/media.js +2 -1
- package/dist/default/media/youtube-video/media.js.map +1 -1
- package/dist/default/player/container.js +8 -2
- package/dist/default/player/container.js.map +1 -1
- package/dist/default/player/context.js +2 -1
- package/dist/default/player/context.js.map +1 -1
- package/dist/default/player/create-player.js +12 -11
- package/dist/default/player/create-player.js.map +1 -1
- package/dist/default/presets/audio/minimal-skin.css +316 -251
- package/dist/default/presets/audio/minimal-skin.js +66 -38
- package/dist/default/presets/audio/minimal-skin.js.map +1 -1
- package/dist/default/presets/audio/minimal-skin.tailwind.js +65 -38
- package/dist/default/presets/audio/minimal-skin.tailwind.js.map +1 -1
- package/dist/default/presets/audio/player.js.map +1 -1
- package/dist/default/presets/audio/skin.css +305 -239
- package/dist/default/presets/audio/skin.js +48 -36
- package/dist/default/presets/audio/skin.js.map +1 -1
- package/dist/default/presets/audio/skin.tailwind.js +46 -35
- package/dist/default/presets/audio/skin.tailwind.js.map +1 -1
- package/dist/default/presets/background/player.js.map +1 -1
- package/dist/default/presets/background/skin.js.map +1 -1
- package/dist/default/presets/live-audio/minimal-skin.css +316 -251
- package/dist/default/presets/live-audio/minimal-skin.js +42 -28
- package/dist/default/presets/live-audio/minimal-skin.js.map +1 -1
- package/dist/default/presets/live-audio/minimal-skin.tailwind.js +41 -25
- package/dist/default/presets/live-audio/minimal-skin.tailwind.js.map +1 -1
- package/dist/default/presets/live-audio/player.js.map +1 -1
- package/dist/default/presets/live-audio/skin.css +305 -239
- package/dist/default/presets/live-audio/skin.js +24 -25
- package/dist/default/presets/live-audio/skin.js.map +1 -1
- package/dist/default/presets/live-audio/skin.tailwind.js +22 -22
- package/dist/default/presets/live-audio/skin.tailwind.js.map +1 -1
- package/dist/default/presets/live-video/minimal-skin.css +404 -366
- package/dist/default/presets/live-video/minimal-skin.js +103 -86
- package/dist/default/presets/live-video/minimal-skin.js.map +1 -1
- package/dist/default/presets/live-video/minimal-skin.tailwind.js +104 -86
- package/dist/default/presets/live-video/minimal-skin.tailwind.js.map +1 -1
- package/dist/default/presets/live-video/player.js.map +1 -1
- package/dist/default/presets/live-video/skin.css +362 -321
- package/dist/default/presets/live-video/skin.js +87 -84
- package/dist/default/presets/live-video/skin.js.map +1 -1
- package/dist/default/presets/live-video/skin.tailwind.js +87 -84
- package/dist/default/presets/live-video/skin.tailwind.js.map +1 -1
- package/dist/default/presets/video/minimal-skin.css +404 -366
- package/dist/default/presets/video/minimal-skin.js +104 -80
- package/dist/default/presets/video/minimal-skin.js.map +1 -1
- package/dist/default/presets/video/minimal-skin.tailwind.js +100 -85
- package/dist/default/presets/video/minimal-skin.tailwind.js.map +1 -1
- package/dist/default/presets/video/player.js.map +1 -1
- package/dist/default/presets/video/skin.css +362 -321
- package/dist/default/presets/video/skin.js +88 -80
- package/dist/default/presets/video/skin.js.map +1 -1
- package/dist/default/presets/video/skin.tailwind.js +84 -84
- package/dist/default/presets/video/skin.tailwind.js.map +1 -1
- package/dist/default/skins/dist/default/default/tailwind/audio.tailwind.js +10 -9
- 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 +1 -1
- package/dist/default/skins/dist/default/default/tailwind/components/badge.js.map +1 -1
- package/dist/default/skins/dist/default/default/tailwind/components/buffering.js +1 -1
- package/dist/default/skins/dist/default/default/tailwind/components/buffering.js.map +1 -1
- package/dist/default/skins/dist/default/default/tailwind/components/button.js +6 -6
- package/dist/default/skins/dist/default/default/tailwind/components/button.js.map +1 -1
- package/dist/default/skins/dist/default/default/tailwind/components/container.js +1 -1
- package/dist/default/skins/dist/default/default/tailwind/components/container.js.map +1 -1
- package/dist/default/skins/dist/default/default/tailwind/components/controls-backdrop.js +7 -0
- package/dist/default/skins/dist/default/default/tailwind/components/controls-backdrop.js.map +1 -0
- package/dist/default/skins/dist/default/default/tailwind/components/controls.js +1 -1
- package/dist/default/skins/dist/default/default/tailwind/components/controls.js.map +1 -1
- package/dist/default/skins/dist/default/default/tailwind/components/dialog.js +15 -0
- package/dist/default/skins/dist/default/default/tailwind/components/dialog.js.map +1 -0
- 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-indicator.js +3 -2
- package/dist/default/skins/dist/default/default/tailwind/components/input-indicator.js.map +1 -1
- package/dist/default/skins/dist/default/default/tailwind/components/menu.js +12 -8
- package/dist/default/skins/dist/default/default/tailwind/components/menu.js.map +1 -1
- package/dist/default/skins/dist/default/default/tailwind/components/popup.js +5 -4
- 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 +2 -2
- package/dist/default/skins/dist/default/default/tailwind/components/poster.js.map +1 -1
- package/dist/default/skins/dist/default/default/tailwind/components/slider.js +13 -13
- package/dist/default/skins/dist/default/default/tailwind/components/slider.js.map +1 -1
- package/dist/default/skins/dist/default/default/tailwind/components/surface.js +1 -1
- package/dist/default/skins/dist/default/default/tailwind/components/surface.js.map +1 -1
- package/dist/default/skins/dist/default/default/tailwind/components/thumbnail.js +2 -2
- package/dist/default/skins/dist/default/default/tailwind/components/thumbnail.js.map +1 -1
- 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 +18 -17
- 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 +10 -10
- 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 +1 -1
- package/dist/default/skins/dist/default/minimal/tailwind/components/badge.js.map +1 -1
- 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/button.js +6 -6
- package/dist/default/skins/dist/default/minimal/tailwind/components/button.js.map +1 -1
- package/dist/default/skins/dist/default/minimal/tailwind/components/container.js +1 -1
- package/dist/default/skins/dist/default/minimal/tailwind/components/container.js.map +1 -1
- package/dist/default/skins/dist/default/minimal/tailwind/components/controls-backdrop.js +7 -0
- package/dist/default/skins/dist/default/minimal/tailwind/components/controls-backdrop.js.map +1 -0
- package/dist/default/skins/dist/default/minimal/tailwind/components/controls.js +1 -1
- package/dist/default/skins/dist/default/minimal/tailwind/components/controls.js.map +1 -1
- package/dist/default/skins/dist/default/minimal/tailwind/components/dialog.js +15 -0
- package/dist/default/skins/dist/default/minimal/tailwind/components/dialog.js.map +1 -0
- 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-indicator.js +5 -4
- package/dist/default/skins/dist/default/minimal/tailwind/components/input-indicator.js.map +1 -1
- package/dist/default/skins/dist/default/minimal/tailwind/components/menu.js +12 -8
- package/dist/default/skins/dist/default/minimal/tailwind/components/menu.js.map +1 -1
- package/dist/default/skins/dist/default/minimal/tailwind/components/popup.js +5 -4
- 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 +2 -2
- package/dist/default/skins/dist/default/minimal/tailwind/components/poster.js.map +1 -1
- package/dist/default/skins/dist/default/minimal/tailwind/components/slider.js +12 -12
- 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 +2 -2
- package/dist/default/skins/dist/default/minimal/tailwind/components/thumbnail.js.map +1 -1
- 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/components/volume-indicator.js +1 -1
- package/dist/default/skins/dist/default/minimal/tailwind/components/volume-indicator.js.map +1 -1
- package/dist/default/skins/dist/default/minimal/tailwind/video.tailwind.js +20 -20
- package/dist/default/skins/dist/default/minimal/tailwind/video.tailwind.js.map +1 -1
- package/dist/default/ui/airplay-button/airplay-button.js.map +1 -1
- package/dist/default/ui/alert-dialog/alert-dialog-root.js +14 -45
- package/dist/default/ui/alert-dialog/alert-dialog-root.js.map +1 -1
- package/dist/default/ui/alert-dialog/index.js +1 -2
- package/dist/default/ui/alert-dialog/index.parts.js +11 -9
- package/dist/default/ui/alert-dialog/index.parts.js.map +1 -1
- package/dist/default/ui/audio-track/use-audio-track-options.js +2 -2
- package/dist/default/ui/audio-track/use-audio-track-options.js.map +1 -1
- package/dist/default/ui/audio-track-radio-group/audio-track-radio-group.js +11 -11
- package/dist/default/ui/audio-track-radio-group/audio-track-radio-group.js.map +1 -1
- package/dist/default/ui/buffering-indicator/buffering-indicator.js +7 -7
- package/dist/default/ui/buffering-indicator/buffering-indicator.js.map +1 -1
- package/dist/default/ui/captions-button/captions-button.js.map +1 -1
- package/dist/default/ui/captions-radio-group/captions-radio-group.js +11 -11
- package/dist/default/ui/captions-radio-group/captions-radio-group.js.map +1 -1
- package/dist/default/ui/captions-radio-group/use-captions-options.js +2 -3
- package/dist/default/ui/captions-radio-group/use-captions-options.js.map +1 -1
- package/dist/default/ui/controls/context.js.map +1 -1
- package/dist/default/ui/controls/controls-backdrop.js +28 -0
- package/dist/default/ui/controls/controls-backdrop.js.map +1 -0
- package/dist/default/ui/controls/controls-content.js +27 -0
- package/dist/default/ui/controls/controls-content.js.map +1 -0
- package/dist/default/ui/controls/controls-root.js +5 -20
- package/dist/default/ui/controls/controls-root.js.map +1 -1
- package/dist/default/ui/controls/index.parts.js +5 -1
- package/dist/default/ui/controls/index.parts.js.map +1 -1
- package/dist/default/ui/create-context-part.js.map +1 -1
- package/dist/default/ui/create-media-button.js.map +1 -1
- package/dist/default/ui/dialog/context.js +17 -0
- package/dist/default/ui/dialog/context.js.map +1 -0
- package/dist/default/ui/dialog/dialog-backdrop.js +26 -0
- package/dist/default/ui/dialog/dialog-backdrop.js.map +1 -0
- package/dist/default/ui/dialog/dialog-close.js +29 -0
- package/dist/default/ui/dialog/dialog-close.js.map +1 -0
- package/dist/default/ui/dialog/dialog-description.js +14 -0
- package/dist/default/ui/dialog/dialog-description.js.map +1 -0
- package/dist/default/ui/dialog/dialog-popup.js +28 -0
- package/dist/default/ui/dialog/dialog-popup.js.map +1 -0
- package/dist/default/ui/dialog/dialog-root.js +23 -0
- package/dist/default/ui/dialog/dialog-root.js.map +1 -0
- package/dist/default/ui/dialog/dialog-title.js +14 -0
- package/dist/default/ui/dialog/dialog-title.js.map +1 -0
- package/dist/default/ui/dialog/dialog-trigger.js +30 -0
- package/dist/default/ui/dialog/dialog-trigger.js.map +1 -0
- package/dist/default/ui/dialog/index.js +3 -0
- package/dist/default/ui/dialog/index.parts.js +22 -0
- package/dist/default/ui/dialog/index.parts.js.map +1 -0
- package/dist/default/ui/dialog/use-dialog-root.js +59 -0
- package/dist/default/ui/dialog/use-dialog-root.js.map +1 -0
- package/dist/default/ui/error-dialog/context.js +1 -0
- package/dist/default/ui/error-dialog/context.js.map +1 -1
- package/dist/default/ui/error-dialog/error-dialog-close.js +3 -2
- package/dist/default/ui/error-dialog/error-dialog-close.js.map +1 -1
- package/dist/default/ui/error-dialog/error-dialog-description.js +3 -2
- package/dist/default/ui/error-dialog/error-dialog-description.js.map +1 -1
- package/dist/default/ui/error-dialog/error-dialog-root.js +19 -34
- package/dist/default/ui/error-dialog/error-dialog-root.js.map +1 -1
- package/dist/default/ui/error-dialog/error-dialog-title.js +3 -2
- package/dist/default/ui/error-dialog/error-dialog-title.js.map +1 -1
- package/dist/default/ui/error-dialog/index.parts.js +5 -3
- package/dist/default/ui/error-dialog/index.parts.js.map +1 -1
- package/dist/default/ui/fullscreen-button/fullscreen-button.js.map +1 -1
- package/dist/default/ui/gesture/use-doubletap-gesture.js +6 -0
- package/dist/default/ui/gesture/use-doubletap-gesture.js.map +1 -1
- package/dist/default/ui/gesture/use-tap-gesture.js +6 -0
- package/dist/default/ui/gesture/use-tap-gesture.js.map +1 -1
- package/dist/default/ui/hooks/create-radio-options-hook.js.map +1 -1
- package/dist/default/ui/hooks/use-button.js +15 -14
- package/dist/default/ui/hooks/use-button.js.map +1 -1
- package/dist/default/ui/hooks/use-slider.js +5 -5
- package/dist/default/ui/hooks/use-slider.js.map +1 -1
- package/dist/default/ui/hotkey/use-hotkey-shortcut.js +6 -0
- package/dist/default/ui/hotkey/use-hotkey-shortcut.js.map +1 -1
- package/dist/default/ui/hotkey/use-hotkey.js +5 -0
- package/dist/default/ui/hotkey/use-hotkey.js.map +1 -1
- package/dist/default/ui/input-indicator/use-indicator-visibility.js.map +1 -1
- package/dist/default/ui/input-indicator/use-input-indicator-root.js +2 -1
- package/dist/default/ui/input-indicator/use-input-indicator-root.js.map +1 -1
- package/dist/default/ui/input-indicator/use-rendered-indicator-state.js.map +1 -1
- package/dist/default/ui/live-button/live-button.js +7 -10
- package/dist/default/ui/live-button/live-button.js.map +1 -1
- package/dist/default/ui/menu/context.js +10 -1
- package/dist/default/ui/menu/context.js.map +1 -1
- package/dist/default/ui/menu/index.parts.js +3 -1
- package/dist/default/ui/menu/index.parts.js.map +1 -1
- package/dist/default/ui/menu/menu-checkbox-item.js.map +1 -1
- package/dist/default/ui/menu/menu-content.js +44 -106
- package/dist/default/ui/menu/menu-content.js.map +1 -1
- package/dist/default/ui/menu/menu-item-indicator.js.map +1 -1
- package/dist/default/ui/menu/menu-item.js +22 -20
- package/dist/default/ui/menu/menu-item.js.map +1 -1
- package/dist/default/ui/menu/menu-keyboard.js.map +1 -1
- package/dist/default/ui/menu/menu-popup.js +69 -0
- package/dist/default/ui/menu/menu-popup.js.map +1 -0
- package/dist/default/ui/menu/menu-radio-item.js.map +1 -1
- package/dist/default/ui/menu/menu-root.js +28 -27
- package/dist/default/ui/menu/menu-root.js.map +1 -1
- package/dist/default/ui/menu/menu-trigger.js +2 -3
- package/dist/default/ui/menu/menu-trigger.js.map +1 -1
- package/dist/default/ui/menu/use-menu-group.js +2 -1
- package/dist/default/ui/menu/use-menu-group.js.map +1 -1
- package/dist/default/ui/play-button/play-button.js +8 -8
- package/dist/default/ui/play-button/play-button.js.map +1 -1
- package/dist/default/ui/playback-rate/use-playback-rate-options.js +2 -2
- package/dist/default/ui/playback-rate/use-playback-rate-options.js.map +1 -1
- package/dist/default/ui/playback-rate-button/playback-rate-button.js +8 -8
- package/dist/default/ui/playback-rate-button/playback-rate-button.js.map +1 -1
- package/dist/default/ui/playback-rate-radio-group/playback-rate-radio-group.js +11 -11
- package/dist/default/ui/playback-rate-radio-group/playback-rate-radio-group.js.map +1 -1
- package/dist/default/ui/popover/context.js +1 -0
- package/dist/default/ui/popover/context.js.map +1 -1
- package/dist/default/ui/popover/popover-popup.js +7 -3
- package/dist/default/ui/popover/popover-popup.js.map +1 -1
- package/dist/default/ui/popover/popover-root.js +1 -1
- package/dist/default/ui/popover/popover-root.js.map +1 -1
- package/dist/default/ui/popover/use-popup-position.js +2 -1
- package/dist/default/ui/popover/use-popup-position.js.map +1 -1
- package/dist/default/ui/poster/poster.js +11 -13
- package/dist/default/ui/poster/poster.js.map +1 -1
- package/dist/default/ui/quality/use-quality-options.js +2 -3
- package/dist/default/ui/quality/use-quality-options.js.map +1 -1
- package/dist/default/ui/quality-radio-group/quality-radio-group.js +12 -12
- package/dist/default/ui/quality-radio-group/quality-radio-group.js.map +1 -1
- package/dist/default/ui/seek-button/seek-button.js +8 -8
- package/dist/default/ui/seek-button/seek-button.js.map +1 -1
- package/dist/default/ui/seek-indicator/context.js.map +1 -1
- package/dist/default/ui/seek-indicator/seek-indicator-root.js.map +1 -1
- package/dist/default/ui/slider/context.js.map +1 -1
- package/dist/default/ui/slider/slider-root.js.map +1 -1
- package/dist/default/ui/slider/slider-thumbnail.js.map +1 -1
- package/dist/default/ui/status-announcer/status-announcer.js.map +1 -1
- package/dist/default/ui/status-indicator/context.js.map +1 -1
- package/dist/default/ui/status-indicator/index.parts.js.map +1 -1
- package/dist/default/ui/status-indicator/status-indicator-root.js +2 -1
- package/dist/default/ui/status-indicator/status-indicator-root.js.map +1 -1
- package/dist/default/ui/thumbnail/thumbnail.js +5 -6
- package/dist/default/ui/thumbnail/thumbnail.js.map +1 -1
- package/dist/default/ui/time/time-group.js +7 -7
- package/dist/default/ui/time/time-group.js.map +1 -1
- package/dist/default/ui/time/time-separator.js +4 -4
- package/dist/default/ui/time/time-separator.js.map +1 -1
- package/dist/default/ui/time/time-value.js +5 -5
- package/dist/default/ui/time/time-value.js.map +1 -1
- package/dist/default/ui/time-slider/time-slider-chapters/slider-segments.js.map +1 -1
- package/dist/default/ui/time-slider/time-slider-chapters/time-slider-chapters.js +1 -1
- package/dist/default/ui/time-slider/time-slider-root.js.map +1 -1
- package/dist/default/ui/title/title.js +5 -6
- package/dist/default/ui/title/title.js.map +1 -1
- package/dist/default/ui/tooltip/context.js +1 -0
- package/dist/default/ui/tooltip/context.js.map +1 -1
- 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-provider.js.map +1 -1
- package/dist/default/ui/tooltip/tooltip-root.js +4 -2
- package/dist/default/ui/tooltip/tooltip-root.js.map +1 -1
- package/dist/default/ui/tooltip/tooltip-shortcut.js.map +1 -1
- package/dist/default/ui/volume-indicator/context.js.map +1 -1
- package/dist/default/ui/volume-indicator/index.parts.js.map +1 -1
- package/dist/default/ui/volume-indicator/volume-indicator-fill.js +3 -2
- package/dist/default/ui/volume-indicator/volume-indicator-fill.js.map +1 -1
- package/dist/default/ui/volume-indicator/volume-indicator-root.js +2 -1
- package/dist/default/ui/volume-indicator/volume-indicator-root.js.map +1 -1
- package/dist/default/ui/volume-popover/context.js +13 -0
- package/dist/default/ui/volume-popover/context.js.map +1 -0
- package/dist/default/ui/volume-popover/index.js +2 -0
- package/dist/default/ui/volume-popover/index.parts.js +14 -0
- package/dist/default/ui/volume-popover/index.parts.js.map +1 -0
- package/dist/default/ui/volume-popover/volume-popover-popup.js +21 -0
- package/dist/default/ui/volume-popover/volume-popover-popup.js.map +1 -0
- package/dist/default/ui/volume-popover/volume-popover-root.js +47 -0
- package/dist/default/ui/volume-popover/volume-popover-root.js.map +1 -0
- package/dist/default/ui/volume-popover/volume-popover-trigger.js +32 -0
- package/dist/default/ui/volume-popover/volume-popover-trigger.js.map +1 -0
- package/dist/default/ui/volume-slider/volume-slider-root.js.map +1 -1
- package/dist/default/utils/merge-props.js +20 -30
- package/dist/default/utils/merge-props.js.map +1 -1
- package/dist/default/utils/use-attach-iframe.js.map +1 -1
- package/dist/default/utils/use-attach-media.js +5 -0
- package/dist/default/utils/use-attach-media.js.map +1 -1
- package/dist/default/utils/use-composed-refs.js +10 -8
- package/dist/default/utils/use-composed-refs.js.map +1 -1
- package/dist/default/utils/use-destroy.js +7 -9
- package/dist/default/utils/use-destroy.js.map +1 -1
- package/dist/default/utils/use-force-render.js.map +1 -1
- package/dist/default/utils/use-latest-ref.js +4 -2
- package/dist/default/utils/use-latest-ref.js.map +1 -1
- package/dist/default/utils/use-media-component.js +7 -6
- package/dist/default/utils/use-media-component.js.map +1 -1
- package/dist/default/utils/use-media-instance.js +8 -7
- package/dist/default/utils/use-media-instance.js.map +1 -1
- package/dist/default/utils/use-render.js +13 -15
- package/dist/default/utils/use-render.js.map +1 -1
- package/dist/default/utils/use-safe-id.js +3 -4
- package/dist/default/utils/use-safe-id.js.map +1 -1
- package/dist/default/utils/use-sync-props.js.map +1 -1
- package/dist/dev/i18n/context.d.ts.map +1 -1
- package/dist/dev/i18n/context.js.map +1 -1
- package/dist/dev/i18n/create-i18n.d.ts +15 -16
- package/dist/dev/i18n/create-i18n.d.ts.map +1 -1
- package/dist/dev/i18n/create-i18n.js +7 -4
- package/dist/dev/i18n/create-i18n.js.map +1 -1
- package/dist/dev/i18n/get-provider-root-props.js.map +1 -1
- package/dist/dev/i18n/locales/all/register.js.map +1 -1
- package/dist/dev/i18n/locales/ar/register.js.map +1 -1
- package/dist/dev/i18n/locales/az/register.js.map +1 -1
- package/dist/dev/i18n/locales/bg/register.js.map +1 -1
- package/dist/dev/i18n/locales/bn/register.js.map +1 -1
- package/dist/dev/i18n/locales/bs/register.js.map +1 -1
- package/dist/dev/i18n/locales/ca/register.js.map +1 -1
- package/dist/dev/i18n/locales/cs/register.js.map +1 -1
- package/dist/dev/i18n/locales/cy/register.js.map +1 -1
- package/dist/dev/i18n/locales/da/register.js.map +1 -1
- package/dist/dev/i18n/locales/de/register.js.map +1 -1
- package/dist/dev/i18n/locales/el/register.js.map +1 -1
- package/dist/dev/i18n/locales/en/register.js.map +1 -1
- package/dist/dev/i18n/locales/es/register.js.map +1 -1
- package/dist/dev/i18n/locales/et/register.js.map +1 -1
- package/dist/dev/i18n/locales/eu/register.js.map +1 -1
- package/dist/dev/i18n/locales/fa/register.js.map +1 -1
- package/dist/dev/i18n/locales/fi/register.js.map +1 -1
- package/dist/dev/i18n/locales/fr/register.js.map +1 -1
- package/dist/dev/i18n/locales/gd/register.js.map +1 -1
- package/dist/dev/i18n/locales/gl/register.js.map +1 -1
- package/dist/dev/i18n/locales/he/register.js.map +1 -1
- package/dist/dev/i18n/locales/hi/register.js.map +1 -1
- package/dist/dev/i18n/locales/hr/register.js.map +1 -1
- package/dist/dev/i18n/locales/hu/register.js.map +1 -1
- package/dist/dev/i18n/locales/id/register.js.map +1 -1
- package/dist/dev/i18n/locales/it/register.js.map +1 -1
- package/dist/dev/i18n/locales/ja/register.js.map +1 -1
- package/dist/dev/i18n/locales/ko/register.js.map +1 -1
- package/dist/dev/i18n/locales/lt/register.js.map +1 -1
- package/dist/dev/i18n/locales/lv/register.js.map +1 -1
- package/dist/dev/i18n/locales/mr/register.js.map +1 -1
- package/dist/dev/i18n/locales/nb/register.js.map +1 -1
- package/dist/dev/i18n/locales/ne/register.js.map +1 -1
- package/dist/dev/i18n/locales/nl/register.js.map +1 -1
- package/dist/dev/i18n/locales/nn/register.js.map +1 -1
- package/dist/dev/i18n/locales/oc/register.js.map +1 -1
- package/dist/dev/i18n/locales/pl/register.js.map +1 -1
- package/dist/dev/i18n/locales/pt/register.js.map +1 -1
- package/dist/dev/i18n/locales/pt-BR/register.js.map +1 -1
- package/dist/dev/i18n/locales/pt-PT/register.js.map +1 -1
- package/dist/dev/i18n/locales/ro/register.js.map +1 -1
- package/dist/dev/i18n/locales/ru/register.js.map +1 -1
- package/dist/dev/i18n/locales/sk/register.js.map +1 -1
- package/dist/dev/i18n/locales/sl/register.js.map +1 -1
- package/dist/dev/i18n/locales/sr/register.js.map +1 -1
- package/dist/dev/i18n/locales/sv/register.js.map +1 -1
- package/dist/dev/i18n/locales/te/register.js.map +1 -1
- package/dist/dev/i18n/locales/th/register.js.map +1 -1
- package/dist/dev/i18n/locales/tr/register.js.map +1 -1
- package/dist/dev/i18n/locales/uk/register.js.map +1 -1
- package/dist/dev/i18n/locales/vi/register.js.map +1 -1
- package/dist/dev/i18n/locales/zh/register.js.map +1 -1
- package/dist/dev/i18n/locales/zh-CN/register.js.map +1 -1
- package/dist/dev/i18n/locales/zh-TW/register.js.map +1 -1
- package/dist/dev/i18n/text.d.ts.map +1 -1
- package/dist/dev/i18n/text.js.map +1 -1
- package/dist/dev/i18n/use-ambient-lang.js.map +1 -1
- package/dist/dev/i18n/use-lang-root-element.js.map +1 -1
- package/dist/dev/i18n/use-lazy-translations.js.map +1 -1
- package/dist/dev/i18n/use-locale-root-notifications.js.map +1 -1
- package/dist/dev/i18n/use-merged-translations.js +4 -2
- package/dist/dev/i18n/use-merged-translations.js.map +1 -1
- package/dist/dev/icons/dist/react/default/airplay-enter.js +5 -2
- package/dist/dev/icons/dist/react/default/airplay-enter.js.map +1 -1
- package/dist/dev/icons/dist/react/default/airplay-exit.js +5 -2
- package/dist/dev/icons/dist/react/default/airplay-exit.js.map +1 -1
- package/dist/dev/icons/dist/react/default/captions-off.js +5 -2
- package/dist/dev/icons/dist/react/default/captions-off.js.map +1 -1
- package/dist/dev/icons/dist/react/default/captions-on.js +5 -2
- package/dist/dev/icons/dist/react/default/captions-on.js.map +1 -1
- package/dist/dev/icons/dist/react/default/cast-enter.js +5 -2
- package/dist/dev/icons/dist/react/default/cast-enter.js.map +1 -1
- package/dist/dev/icons/dist/react/default/cast-exit.js +5 -2
- package/dist/dev/icons/dist/react/default/cast-exit.js.map +1 -1
- package/dist/dev/icons/dist/react/default/check.js +5 -2
- package/dist/dev/icons/dist/react/default/check.js.map +1 -1
- package/dist/dev/icons/dist/react/default/chevron.js +5 -2
- package/dist/dev/icons/dist/react/default/chevron.js.map +1 -1
- package/dist/dev/icons/dist/react/default/fullscreen-enter.js +5 -2
- package/dist/dev/icons/dist/react/default/fullscreen-enter.js.map +1 -1
- package/dist/dev/icons/dist/react/default/fullscreen-exit.js +5 -2
- package/dist/dev/icons/dist/react/default/fullscreen-exit.js.map +1 -1
- package/dist/dev/icons/dist/react/default/gear.js +5 -2
- package/dist/dev/icons/dist/react/default/gear.js.map +1 -1
- package/dist/dev/icons/dist/react/default/index.d.ts +1 -1
- package/dist/dev/icons/dist/react/default/pause.js +5 -2
- package/dist/dev/icons/dist/react/default/pause.js.map +1 -1
- package/dist/dev/icons/dist/react/default/pip-enter.js +5 -2
- package/dist/dev/icons/dist/react/default/pip-enter.js.map +1 -1
- package/dist/dev/icons/dist/react/default/pip-exit.js +5 -2
- package/dist/dev/icons/dist/react/default/pip-exit.js.map +1 -1
- package/dist/dev/icons/dist/react/default/play.js +5 -2
- package/dist/dev/icons/dist/react/default/play.js.map +1 -1
- package/dist/dev/icons/dist/react/default/quality.js +5 -2
- package/dist/dev/icons/dist/react/default/quality.js.map +1 -1
- package/dist/dev/icons/dist/react/default/restart.js +5 -2
- package/dist/dev/icons/dist/react/default/restart.js.map +1 -1
- package/dist/dev/icons/dist/react/default/seek.js +5 -2
- package/dist/dev/icons/dist/react/default/seek.js.map +1 -1
- package/dist/dev/icons/dist/react/default/speech.js +5 -2
- package/dist/dev/icons/dist/react/default/speech.js.map +1 -1
- package/dist/dev/icons/dist/react/default/speed.js +5 -2
- package/dist/dev/icons/dist/react/default/speed.js.map +1 -1
- package/dist/dev/icons/dist/react/default/spinner.js +5 -2
- package/dist/dev/icons/dist/react/default/spinner.js.map +1 -1
- package/dist/dev/icons/dist/react/default/switches.js +5 -2
- package/dist/dev/icons/dist/react/default/switches.js.map +1 -1
- package/dist/dev/icons/dist/react/default/volume-high.js +5 -2
- package/dist/dev/icons/dist/react/default/volume-high.js.map +1 -1
- package/dist/dev/icons/dist/react/default/volume-low.js +5 -2
- package/dist/dev/icons/dist/react/default/volume-low.js.map +1 -1
- package/dist/dev/icons/dist/react/default/volume-off.js +5 -2
- package/dist/dev/icons/dist/react/default/volume-off.js.map +1 -1
- package/dist/dev/icons/dist/react/minimal/airplay-enter.js +5 -2
- package/dist/dev/icons/dist/react/minimal/airplay-enter.js.map +1 -1
- package/dist/dev/icons/dist/react/minimal/airplay-exit.js +5 -2
- package/dist/dev/icons/dist/react/minimal/airplay-exit.js.map +1 -1
- package/dist/dev/icons/dist/react/minimal/captions-off.js +5 -2
- package/dist/dev/icons/dist/react/minimal/captions-off.js.map +1 -1
- package/dist/dev/icons/dist/react/minimal/captions-on.js +5 -2
- package/dist/dev/icons/dist/react/minimal/captions-on.js.map +1 -1
- package/dist/dev/icons/dist/react/minimal/cast-enter.js +5 -2
- package/dist/dev/icons/dist/react/minimal/cast-enter.js.map +1 -1
- package/dist/dev/icons/dist/react/minimal/cast-exit.js +5 -2
- package/dist/dev/icons/dist/react/minimal/cast-exit.js.map +1 -1
- package/dist/dev/icons/dist/react/minimal/check.js +5 -2
- package/dist/dev/icons/dist/react/minimal/check.js.map +1 -1
- package/dist/dev/icons/dist/react/minimal/chevron.js +5 -2
- package/dist/dev/icons/dist/react/minimal/chevron.js.map +1 -1
- package/dist/dev/icons/dist/react/minimal/fullscreen-enter.js +5 -2
- package/dist/dev/icons/dist/react/minimal/fullscreen-enter.js.map +1 -1
- package/dist/dev/icons/dist/react/minimal/fullscreen-exit.js +5 -2
- package/dist/dev/icons/dist/react/minimal/fullscreen-exit.js.map +1 -1
- package/dist/dev/icons/dist/react/minimal/gear.js +5 -2
- package/dist/dev/icons/dist/react/minimal/gear.js.map +1 -1
- package/dist/dev/icons/dist/react/minimal/index.d.ts +1 -1
- package/dist/dev/icons/dist/react/minimal/pause.js +5 -2
- package/dist/dev/icons/dist/react/minimal/pause.js.map +1 -1
- package/dist/dev/icons/dist/react/minimal/pip-enter.js +5 -2
- package/dist/dev/icons/dist/react/minimal/pip-enter.js.map +1 -1
- package/dist/dev/icons/dist/react/minimal/pip-exit.js +5 -2
- package/dist/dev/icons/dist/react/minimal/pip-exit.js.map +1 -1
- package/dist/dev/icons/dist/react/minimal/play.js +5 -2
- package/dist/dev/icons/dist/react/minimal/play.js.map +1 -1
- package/dist/dev/icons/dist/react/minimal/quality.js +5 -2
- package/dist/dev/icons/dist/react/minimal/quality.js.map +1 -1
- package/dist/dev/icons/dist/react/minimal/restart.js +5 -2
- package/dist/dev/icons/dist/react/minimal/restart.js.map +1 -1
- package/dist/dev/icons/dist/react/minimal/seek.js +5 -2
- package/dist/dev/icons/dist/react/minimal/seek.js.map +1 -1
- package/dist/dev/icons/dist/react/minimal/speech.js +5 -2
- package/dist/dev/icons/dist/react/minimal/speech.js.map +1 -1
- package/dist/dev/icons/dist/react/minimal/speed.js +5 -2
- package/dist/dev/icons/dist/react/minimal/speed.js.map +1 -1
- package/dist/dev/icons/dist/react/minimal/spinner.js +5 -2
- package/dist/dev/icons/dist/react/minimal/spinner.js.map +1 -1
- package/dist/dev/icons/dist/react/minimal/switches.js +5 -2
- package/dist/dev/icons/dist/react/minimal/switches.js.map +1 -1
- package/dist/dev/icons/dist/react/minimal/volume-high.js +5 -2
- package/dist/dev/icons/dist/react/minimal/volume-high.js.map +1 -1
- package/dist/dev/icons/dist/react/minimal/volume-low.js +5 -2
- package/dist/dev/icons/dist/react/minimal/volume-low.js.map +1 -1
- package/dist/dev/icons/dist/react/minimal/volume-off.js +5 -2
- package/dist/dev/icons/dist/react/minimal/volume-off.js.map +1 -1
- package/dist/dev/icons/index.js +26 -26
- package/dist/dev/icons/minimal/index.js +26 -26
- package/dist/dev/index.d.ts +19 -14
- package/dist/dev/index.js +15 -13
- package/dist/dev/media/audio.js +3 -1
- package/dist/dev/media/audio.js.map +1 -1
- package/dist/dev/media/background-video/media.js +5 -3
- package/dist/dev/media/background-video/media.js.map +1 -1
- package/dist/dev/media/cloudflare-video/media.d.ts.map +1 -1
- package/dist/dev/media/cloudflare-video/media.js +2 -1
- package/dist/dev/media/cloudflare-video/media.js.map +1 -1
- package/dist/dev/media/dash-video/media.d.ts.map +1 -1
- package/dist/dev/media/dash-video/media.js +5 -2
- package/dist/dev/media/dash-video/media.js.map +1 -1
- package/dist/dev/media/google-cast/google-cast.d.ts +8 -9
- package/dist/dev/media/google-cast/google-cast.d.ts.map +1 -1
- package/dist/dev/media/google-cast/google-cast.js +10 -10
- package/dist/dev/media/google-cast/google-cast.js.map +1 -1
- package/dist/dev/media/hls-audio/media.d.ts.map +1 -1
- package/dist/dev/media/hls-audio/media.js +5 -2
- package/dist/dev/media/hls-audio/media.js.map +1 -1
- package/dist/dev/media/hls-background-video/media.d.ts +13 -19
- package/dist/dev/media/hls-background-video/media.d.ts.map +1 -1
- package/dist/dev/media/hls-background-video/media.js +15 -20
- package/dist/dev/media/hls-background-video/media.js.map +1 -1
- package/dist/dev/media/hls-video/media.d.ts.map +1 -1
- package/dist/dev/media/hls-video/media.js +5 -2
- package/dist/dev/media/hls-video/media.js.map +1 -1
- package/dist/dev/media/hlsjs-video/media.d.ts.map +1 -1
- package/dist/dev/media/hlsjs-video/media.js +5 -2
- package/dist/dev/media/hlsjs-video/media.js.map +1 -1
- package/dist/dev/media/mux-audio/hls-js.d.ts.map +1 -1
- package/dist/dev/media/mux-audio/hls-js.js +5 -2
- package/dist/dev/media/mux-audio/hls-js.js.map +1 -1
- package/dist/dev/media/mux-audio/spf.d.ts.map +1 -1
- package/dist/dev/media/mux-audio/spf.js +5 -2
- package/dist/dev/media/mux-audio/spf.js.map +1 -1
- package/dist/dev/media/mux-data/mux-data.d.ts +13 -17
- package/dist/dev/media/mux-data/mux-data.d.ts.map +1 -1
- package/dist/dev/media/mux-data/mux-data.js +13 -17
- package/dist/dev/media/mux-data/mux-data.js.map +1 -1
- package/dist/dev/media/mux-video/hls-js.d.ts.map +1 -1
- package/dist/dev/media/mux-video/hls-js.js +5 -2
- package/dist/dev/media/mux-video/hls-js.js.map +1 -1
- package/dist/dev/media/mux-video/spf.d.ts.map +1 -1
- package/dist/dev/media/mux-video/spf.js +5 -2
- package/dist/dev/media/mux-video/spf.js.map +1 -1
- package/dist/dev/media/mux-video/storyboard.js +1 -4
- package/dist/dev/media/mux-video/storyboard.js.map +1 -1
- package/dist/dev/media/native-hls-video/media.d.ts.map +1 -1
- package/dist/dev/media/native-hls-video/media.js +5 -2
- package/dist/dev/media/native-hls-video/media.js.map +1 -1
- package/dist/dev/media/shaka-video/media.d.ts.map +1 -1
- package/dist/dev/media/shaka-video/media.js +5 -2
- package/dist/dev/media/shaka-video/media.js.map +1 -1
- package/dist/dev/media/spotify-audio/media.d.ts.map +1 -1
- package/dist/dev/media/spotify-audio/media.js +2 -1
- package/dist/dev/media/spotify-audio/media.js.map +1 -1
- package/dist/dev/media/tiktok-video/media.d.ts.map +1 -1
- package/dist/dev/media/tiktok-video/media.js +2 -1
- package/dist/dev/media/tiktok-video/media.js.map +1 -1
- package/dist/dev/media/twitch-video/media.d.ts.map +1 -1
- package/dist/dev/media/twitch-video/media.js +2 -1
- package/dist/dev/media/twitch-video/media.js.map +1 -1
- package/dist/dev/media/video.d.ts +7 -0
- package/dist/dev/media/video.d.ts.map +1 -1
- package/dist/dev/media/video.js +9 -1
- package/dist/dev/media/video.js.map +1 -1
- package/dist/dev/media/vimeo-video/media.d.ts.map +1 -1
- package/dist/dev/media/vimeo-video/media.js +2 -1
- package/dist/dev/media/vimeo-video/media.js.map +1 -1
- package/dist/dev/media/youtube-video/media.d.ts.map +1 -1
- package/dist/dev/media/youtube-video/media.js +2 -1
- package/dist/dev/media/youtube-video/media.js.map +1 -1
- package/dist/dev/player/container.d.ts.map +1 -1
- package/dist/dev/player/container.js +8 -2
- package/dist/dev/player/container.js.map +1 -1
- package/dist/dev/player/context.d.ts +14 -12
- package/dist/dev/player/context.d.ts.map +1 -1
- package/dist/dev/player/context.js +2 -1
- package/dist/dev/player/context.js.map +1 -1
- package/dist/dev/player/create-player.d.ts +19 -3
- package/dist/dev/player/create-player.d.ts.map +1 -1
- package/dist/dev/player/create-player.js +12 -11
- package/dist/dev/player/create-player.js.map +1 -1
- package/dist/dev/presets/audio/minimal-skin.css +316 -251
- package/dist/dev/presets/audio/minimal-skin.d.ts.map +1 -1
- package/dist/dev/presets/audio/minimal-skin.js +66 -38
- 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 +65 -38
- package/dist/dev/presets/audio/minimal-skin.tailwind.js.map +1 -1
- package/dist/dev/presets/audio/player.d.ts.map +1 -1
- package/dist/dev/presets/audio/player.js.map +1 -1
- package/dist/dev/presets/audio/skin.css +305 -239
- package/dist/dev/presets/audio/skin.d.ts.map +1 -1
- package/dist/dev/presets/audio/skin.js +48 -36
- 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 +46 -35
- package/dist/dev/presets/audio/skin.tailwind.js.map +1 -1
- package/dist/dev/presets/background/player.d.ts.map +1 -1
- package/dist/dev/presets/background/player.js.map +1 -1
- package/dist/dev/presets/background/skin.d.ts.map +1 -1
- package/dist/dev/presets/background/skin.js.map +1 -1
- package/dist/dev/presets/live-audio/minimal-skin.css +316 -251
- package/dist/dev/presets/live-audio/minimal-skin.d.ts +3 -5
- package/dist/dev/presets/live-audio/minimal-skin.d.ts.map +1 -1
- package/dist/dev/presets/live-audio/minimal-skin.js +42 -28
- 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 +41 -25
- package/dist/dev/presets/live-audio/minimal-skin.tailwind.js.map +1 -1
- package/dist/dev/presets/live-audio/player.d.ts.map +1 -1
- package/dist/dev/presets/live-audio/player.js.map +1 -1
- package/dist/dev/presets/live-audio/skin.css +305 -239
- package/dist/dev/presets/live-audio/skin.d.ts +3 -4
- package/dist/dev/presets/live-audio/skin.d.ts.map +1 -1
- package/dist/dev/presets/live-audio/skin.js +24 -25
- 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 +22 -22
- package/dist/dev/presets/live-audio/skin.tailwind.js.map +1 -1
- package/dist/dev/presets/live-video/minimal-skin.css +404 -366
- package/dist/dev/presets/live-video/minimal-skin.d.ts.map +1 -1
- package/dist/dev/presets/live-video/minimal-skin.js +103 -86
- 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 +104 -86
- package/dist/dev/presets/live-video/minimal-skin.tailwind.js.map +1 -1
- package/dist/dev/presets/live-video/player.d.ts.map +1 -1
- package/dist/dev/presets/live-video/player.js.map +1 -1
- package/dist/dev/presets/live-video/skin.css +362 -321
- package/dist/dev/presets/live-video/skin.d.ts.map +1 -1
- package/dist/dev/presets/live-video/skin.js +87 -84
- 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 +87 -84
- package/dist/dev/presets/live-video/skin.tailwind.js.map +1 -1
- package/dist/dev/presets/types.d.ts +13 -10
- package/dist/dev/presets/types.d.ts.map +1 -1
- package/dist/dev/presets/video/minimal-skin.css +404 -366
- package/dist/dev/presets/video/minimal-skin.d.ts +9 -0
- package/dist/dev/presets/video/minimal-skin.d.ts.map +1 -1
- package/dist/dev/presets/video/minimal-skin.js +104 -80
- 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 +100 -85
- package/dist/dev/presets/video/minimal-skin.tailwind.js.map +1 -1
- package/dist/dev/presets/video/player.d.ts.map +1 -1
- package/dist/dev/presets/video/player.js.map +1 -1
- package/dist/dev/presets/video/skin.css +362 -321
- package/dist/dev/presets/video/skin.d.ts +8 -0
- package/dist/dev/presets/video/skin.d.ts.map +1 -1
- package/dist/dev/presets/video/skin.js +88 -80
- 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 +84 -84
- package/dist/dev/presets/video/skin.tailwind.js.map +1 -1
- package/dist/dev/skins/dist/default/default/tailwind/audio.tailwind.js +10 -9
- 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 +1 -1
- package/dist/dev/skins/dist/default/default/tailwind/components/badge.js.map +1 -1
- package/dist/dev/skins/dist/default/default/tailwind/components/buffering.js +1 -1
- package/dist/dev/skins/dist/default/default/tailwind/components/buffering.js.map +1 -1
- package/dist/dev/skins/dist/default/default/tailwind/components/button.js +6 -6
- package/dist/dev/skins/dist/default/default/tailwind/components/button.js.map +1 -1
- package/dist/dev/skins/dist/default/default/tailwind/components/container.js +1 -1
- package/dist/dev/skins/dist/default/default/tailwind/components/container.js.map +1 -1
- package/dist/dev/skins/dist/default/default/tailwind/components/controls-backdrop.js +7 -0
- package/dist/dev/skins/dist/default/default/tailwind/components/controls-backdrop.js.map +1 -0
- package/dist/dev/skins/dist/default/default/tailwind/components/controls.js +1 -1
- package/dist/dev/skins/dist/default/default/tailwind/components/controls.js.map +1 -1
- package/dist/dev/skins/dist/default/default/tailwind/components/dialog.js +15 -0
- package/dist/dev/skins/dist/default/default/tailwind/components/dialog.js.map +1 -0
- 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-indicator.js +3 -2
- package/dist/dev/skins/dist/default/default/tailwind/components/input-indicator.js.map +1 -1
- package/dist/dev/skins/dist/default/default/tailwind/components/menu.js +12 -8
- package/dist/dev/skins/dist/default/default/tailwind/components/menu.js.map +1 -1
- package/dist/dev/skins/dist/default/default/tailwind/components/popup.js +5 -4
- 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 +2 -2
- package/dist/dev/skins/dist/default/default/tailwind/components/poster.js.map +1 -1
- package/dist/dev/skins/dist/default/default/tailwind/components/slider.js +13 -13
- package/dist/dev/skins/dist/default/default/tailwind/components/slider.js.map +1 -1
- package/dist/dev/skins/dist/default/default/tailwind/components/surface.js +1 -1
- package/dist/dev/skins/dist/default/default/tailwind/components/surface.js.map +1 -1
- package/dist/dev/skins/dist/default/default/tailwind/components/thumbnail.js +2 -2
- package/dist/dev/skins/dist/default/default/tailwind/components/thumbnail.js.map +1 -1
- 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 +18 -17
- 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 +10 -10
- 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 +1 -1
- package/dist/dev/skins/dist/default/minimal/tailwind/components/badge.js.map +1 -1
- 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/button.js +6 -6
- package/dist/dev/skins/dist/default/minimal/tailwind/components/button.js.map +1 -1
- package/dist/dev/skins/dist/default/minimal/tailwind/components/container.js +1 -1
- package/dist/dev/skins/dist/default/minimal/tailwind/components/container.js.map +1 -1
- package/dist/dev/skins/dist/default/minimal/tailwind/components/controls-backdrop.js +7 -0
- package/dist/dev/skins/dist/default/minimal/tailwind/components/controls-backdrop.js.map +1 -0
- package/dist/dev/skins/dist/default/minimal/tailwind/components/controls.js +1 -1
- package/dist/dev/skins/dist/default/minimal/tailwind/components/controls.js.map +1 -1
- package/dist/dev/skins/dist/default/minimal/tailwind/components/dialog.js +15 -0
- package/dist/dev/skins/dist/default/minimal/tailwind/components/dialog.js.map +1 -0
- 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-indicator.js +5 -4
- package/dist/dev/skins/dist/default/minimal/tailwind/components/input-indicator.js.map +1 -1
- package/dist/dev/skins/dist/default/minimal/tailwind/components/menu.js +12 -8
- package/dist/dev/skins/dist/default/minimal/tailwind/components/menu.js.map +1 -1
- package/dist/dev/skins/dist/default/minimal/tailwind/components/popup.js +5 -4
- 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 +2 -2
- package/dist/dev/skins/dist/default/minimal/tailwind/components/poster.js.map +1 -1
- package/dist/dev/skins/dist/default/minimal/tailwind/components/slider.js +12 -12
- 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 +2 -2
- package/dist/dev/skins/dist/default/minimal/tailwind/components/thumbnail.js.map +1 -1
- 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/components/volume-indicator.js +1 -1
- package/dist/dev/skins/dist/default/minimal/tailwind/components/volume-indicator.js.map +1 -1
- package/dist/dev/skins/dist/default/minimal/tailwind/video.tailwind.js +20 -20
- package/dist/dev/skins/dist/default/minimal/tailwind/video.tailwind.js.map +1 -1
- package/dist/dev/ui/airplay-button/airplay-button.d.ts.map +1 -1
- package/dist/dev/ui/airplay-button/airplay-button.js.map +1 -1
- package/dist/dev/ui/alert-dialog/alert-dialog-root.d.ts +4 -3
- package/dist/dev/ui/alert-dialog/alert-dialog-root.d.ts.map +1 -1
- package/dist/dev/ui/alert-dialog/alert-dialog-root.js +14 -45
- package/dist/dev/ui/alert-dialog/alert-dialog-root.js.map +1 -1
- package/dist/dev/ui/alert-dialog/index.d.ts +1 -2
- package/dist/dev/ui/alert-dialog/index.js +1 -2
- package/dist/dev/ui/alert-dialog/index.parts.d.ts +8 -6
- package/dist/dev/ui/alert-dialog/index.parts.js +11 -9
- package/dist/dev/ui/alert-dialog/index.parts.js.map +1 -1
- package/dist/dev/ui/audio-track/use-audio-track-options.d.ts +2 -2
- package/dist/dev/ui/audio-track/use-audio-track-options.js +2 -2
- package/dist/dev/ui/audio-track/use-audio-track-options.js.map +1 -1
- package/dist/dev/ui/audio-track-radio-group/audio-track-radio-group.d.ts +10 -10
- package/dist/dev/ui/audio-track-radio-group/audio-track-radio-group.d.ts.map +1 -1
- package/dist/dev/ui/audio-track-radio-group/audio-track-radio-group.js +11 -11
- package/dist/dev/ui/audio-track-radio-group/audio-track-radio-group.js.map +1 -1
- package/dist/dev/ui/buffering-indicator/buffering-indicator.d.ts +7 -7
- package/dist/dev/ui/buffering-indicator/buffering-indicator.d.ts.map +1 -1
- package/dist/dev/ui/buffering-indicator/buffering-indicator.js +7 -7
- package/dist/dev/ui/buffering-indicator/buffering-indicator.js.map +1 -1
- package/dist/dev/ui/captions-button/captions-button.d.ts.map +1 -1
- package/dist/dev/ui/captions-button/captions-button.js.map +1 -1
- package/dist/dev/ui/captions-radio-group/captions-radio-group.d.ts +10 -10
- package/dist/dev/ui/captions-radio-group/captions-radio-group.d.ts.map +1 -1
- package/dist/dev/ui/captions-radio-group/captions-radio-group.js +11 -11
- package/dist/dev/ui/captions-radio-group/captions-radio-group.js.map +1 -1
- package/dist/dev/ui/captions-radio-group/use-captions-options.d.ts +2 -3
- package/dist/dev/ui/captions-radio-group/use-captions-options.d.ts.map +1 -1
- package/dist/dev/ui/captions-radio-group/use-captions-options.js +2 -3
- package/dist/dev/ui/captions-radio-group/use-captions-options.js.map +1 -1
- package/dist/dev/ui/controls/context.js.map +1 -1
- package/dist/dev/ui/controls/controls-backdrop.d.ts +16 -0
- package/dist/dev/ui/controls/controls-backdrop.d.ts.map +1 -0
- package/dist/dev/ui/controls/controls-backdrop.js +28 -0
- package/dist/dev/ui/controls/controls-backdrop.js.map +1 -0
- package/dist/dev/ui/controls/controls-content.d.ts +16 -0
- package/dist/dev/ui/controls/controls-content.d.ts.map +1 -0
- package/dist/dev/ui/controls/controls-content.js +27 -0
- package/dist/dev/ui/controls/controls-content.js.map +1 -0
- package/dist/dev/ui/controls/controls-root.d.ts +3 -4
- package/dist/dev/ui/controls/controls-root.d.ts.map +1 -1
- package/dist/dev/ui/controls/controls-root.js +5 -20
- package/dist/dev/ui/controls/controls-root.js.map +1 -1
- package/dist/dev/ui/controls/index.parts.d.ts +4 -2
- package/dist/dev/ui/controls/index.parts.js +5 -1
- package/dist/dev/ui/controls/index.parts.js.map +1 -1
- package/dist/dev/ui/create-context-part.js.map +1 -1
- package/dist/dev/ui/create-media-button.js.map +1 -1
- package/dist/dev/ui/dialog/context.d.ts +15 -0
- package/dist/dev/ui/dialog/context.d.ts.map +1 -0
- package/dist/dev/ui/dialog/context.js +17 -0
- package/dist/dev/ui/dialog/context.js.map +1 -0
- package/dist/dev/ui/dialog/dialog-backdrop.d.ts +13 -0
- package/dist/dev/ui/dialog/dialog-backdrop.d.ts.map +1 -0
- package/dist/dev/ui/dialog/dialog-backdrop.js +26 -0
- package/dist/dev/ui/dialog/dialog-backdrop.js.map +1 -0
- package/dist/dev/ui/dialog/dialog-close.d.ts +13 -0
- package/dist/dev/ui/dialog/dialog-close.d.ts.map +1 -0
- package/dist/dev/ui/dialog/dialog-close.js +29 -0
- package/dist/dev/ui/dialog/dialog-close.js.map +1 -0
- package/dist/dev/ui/dialog/dialog-description.d.ts +13 -0
- package/dist/dev/ui/dialog/dialog-description.d.ts.map +1 -0
- package/dist/dev/ui/dialog/dialog-description.js +14 -0
- package/dist/dev/ui/dialog/dialog-description.js.map +1 -0
- package/dist/dev/ui/dialog/dialog-popup.d.ts +13 -0
- package/dist/dev/ui/dialog/dialog-popup.d.ts.map +1 -0
- package/dist/dev/ui/dialog/dialog-popup.js +28 -0
- package/dist/dev/ui/dialog/dialog-popup.js.map +1 -0
- package/dist/dev/ui/dialog/dialog-root.d.ts +18 -0
- package/dist/dev/ui/dialog/dialog-root.d.ts.map +1 -0
- package/dist/dev/ui/dialog/dialog-root.js +23 -0
- package/dist/dev/ui/dialog/dialog-root.js.map +1 -0
- package/dist/dev/ui/dialog/dialog-title.d.ts +13 -0
- package/dist/dev/ui/dialog/dialog-title.d.ts.map +1 -0
- package/dist/dev/ui/dialog/dialog-title.js +14 -0
- package/dist/dev/ui/dialog/dialog-title.js.map +1 -0
- package/dist/dev/ui/dialog/dialog-trigger.d.ts +13 -0
- package/dist/dev/ui/dialog/dialog-trigger.d.ts.map +1 -0
- package/dist/dev/ui/dialog/dialog-trigger.js +30 -0
- package/dist/dev/ui/dialog/dialog-trigger.js.map +1 -0
- package/dist/dev/ui/dialog/index.d.ts +3 -0
- package/dist/dev/ui/dialog/index.js +3 -0
- package/dist/dev/ui/dialog/index.parts.d.ts +13 -0
- package/dist/dev/ui/dialog/index.parts.d.ts.map +1 -0
- package/dist/dev/ui/dialog/index.parts.js +22 -0
- package/dist/dev/ui/dialog/index.parts.js.map +1 -0
- package/dist/dev/ui/dialog/use-dialog-root.js +59 -0
- package/dist/dev/ui/dialog/use-dialog-root.js.map +1 -0
- package/dist/dev/ui/error-dialog/context.d.ts +1 -0
- package/dist/dev/ui/error-dialog/context.d.ts.map +1 -1
- package/dist/dev/ui/error-dialog/context.js +1 -0
- package/dist/dev/ui/error-dialog/context.js.map +1 -1
- package/dist/dev/ui/error-dialog/error-dialog-close.d.ts +4 -3
- package/dist/dev/ui/error-dialog/error-dialog-close.d.ts.map +1 -1
- package/dist/dev/ui/error-dialog/error-dialog-close.js +3 -2
- package/dist/dev/ui/error-dialog/error-dialog-close.js.map +1 -1
- package/dist/dev/ui/error-dialog/error-dialog-description.d.ts +4 -3
- package/dist/dev/ui/error-dialog/error-dialog-description.d.ts.map +1 -1
- package/dist/dev/ui/error-dialog/error-dialog-description.js +3 -2
- package/dist/dev/ui/error-dialog/error-dialog-description.js.map +1 -1
- package/dist/dev/ui/error-dialog/error-dialog-root.d.ts +1 -0
- package/dist/dev/ui/error-dialog/error-dialog-root.d.ts.map +1 -1
- package/dist/dev/ui/error-dialog/error-dialog-root.js +19 -34
- package/dist/dev/ui/error-dialog/error-dialog-root.js.map +1 -1
- package/dist/dev/ui/error-dialog/error-dialog-title.d.ts +4 -3
- package/dist/dev/ui/error-dialog/error-dialog-title.d.ts.map +1 -1
- package/dist/dev/ui/error-dialog/error-dialog-title.js +3 -2
- package/dist/dev/ui/error-dialog/error-dialog-title.js.map +1 -1
- package/dist/dev/ui/error-dialog/index.parts.d.ts +5 -3
- package/dist/dev/ui/error-dialog/index.parts.js +5 -3
- package/dist/dev/ui/error-dialog/index.parts.js.map +1 -1
- package/dist/dev/ui/fullscreen-button/fullscreen-button.d.ts.map +1 -1
- package/dist/dev/ui/fullscreen-button/fullscreen-button.js.map +1 -1
- package/dist/dev/ui/gesture/use-doubletap-gesture.d.ts +6 -0
- package/dist/dev/ui/gesture/use-doubletap-gesture.d.ts.map +1 -1
- package/dist/dev/ui/gesture/use-doubletap-gesture.js +6 -0
- package/dist/dev/ui/gesture/use-doubletap-gesture.js.map +1 -1
- package/dist/dev/ui/gesture/use-tap-gesture.d.ts +6 -0
- package/dist/dev/ui/gesture/use-tap-gesture.d.ts.map +1 -1
- package/dist/dev/ui/gesture/use-tap-gesture.js +6 -0
- package/dist/dev/ui/gesture/use-tap-gesture.js.map +1 -1
- package/dist/dev/ui/hooks/create-radio-options-hook.js.map +1 -1
- package/dist/dev/ui/hooks/use-button.d.ts +12 -12
- package/dist/dev/ui/hooks/use-button.d.ts.map +1 -1
- package/dist/dev/ui/hooks/use-button.js +15 -14
- package/dist/dev/ui/hooks/use-button.js.map +1 -1
- package/dist/dev/ui/hooks/use-slider.d.ts +2 -3
- package/dist/dev/ui/hooks/use-slider.d.ts.map +1 -1
- package/dist/dev/ui/hooks/use-slider.js +5 -5
- package/dist/dev/ui/hooks/use-slider.js.map +1 -1
- package/dist/dev/ui/hotkey/use-hotkey-shortcut.d.ts +6 -0
- package/dist/dev/ui/hotkey/use-hotkey-shortcut.d.ts.map +1 -1
- package/dist/dev/ui/hotkey/use-hotkey-shortcut.js +6 -0
- package/dist/dev/ui/hotkey/use-hotkey-shortcut.js.map +1 -1
- package/dist/dev/ui/hotkey/use-hotkey.d.ts +5 -0
- package/dist/dev/ui/hotkey/use-hotkey.d.ts.map +1 -1
- package/dist/dev/ui/hotkey/use-hotkey.js +5 -0
- package/dist/dev/ui/hotkey/use-hotkey.js.map +1 -1
- package/dist/dev/ui/input-indicator/use-indicator-visibility.js.map +1 -1
- package/dist/dev/ui/input-indicator/use-input-indicator-root.js +2 -1
- package/dist/dev/ui/input-indicator/use-input-indicator-root.js.map +1 -1
- package/dist/dev/ui/input-indicator/use-rendered-indicator-state.js.map +1 -1
- package/dist/dev/ui/live-button/live-button.d.ts +7 -10
- package/dist/dev/ui/live-button/live-button.d.ts.map +1 -1
- package/dist/dev/ui/live-button/live-button.js +7 -10
- package/dist/dev/ui/live-button/live-button.js.map +1 -1
- package/dist/dev/ui/menu/context.d.ts +3 -2
- package/dist/dev/ui/menu/context.d.ts.map +1 -1
- package/dist/dev/ui/menu/context.js +10 -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 +3 -1
- package/dist/dev/ui/menu/index.parts.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.map +1 -1
- package/dist/dev/ui/menu/menu-content.d.ts +1 -1
- package/dist/dev/ui/menu/menu-content.d.ts.map +1 -1
- package/dist/dev/ui/menu/menu-content.js +44 -106
- package/dist/dev/ui/menu/menu-content.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.map +1 -1
- package/dist/dev/ui/menu/menu-item.d.ts.map +1 -1
- package/dist/dev/ui/menu/menu-item.js +22 -20
- package/dist/dev/ui/menu/menu-item.js.map +1 -1
- package/dist/dev/ui/menu/menu-keyboard.js.map +1 -1
- package/dist/dev/ui/menu/menu-popup.d.ts +13 -0
- package/dist/dev/ui/menu/menu-popup.d.ts.map +1 -0
- package/dist/dev/ui/menu/menu-popup.js +70 -0
- package/dist/dev/ui/menu/menu-popup.js.map +1 -0
- package/dist/dev/ui/menu/menu-radio-item.d.ts.map +1 -1
- package/dist/dev/ui/menu/menu-radio-item.js.map +1 -1
- package/dist/dev/ui/menu/menu-root.d.ts.map +1 -1
- package/dist/dev/ui/menu/menu-root.js +28 -27
- package/dist/dev/ui/menu/menu-root.js.map +1 -1
- package/dist/dev/ui/menu/menu-trigger.d.ts +2 -3
- package/dist/dev/ui/menu/menu-trigger.d.ts.map +1 -1
- package/dist/dev/ui/menu/menu-trigger.js +2 -3
- package/dist/dev/ui/menu/menu-trigger.js.map +1 -1
- package/dist/dev/ui/menu/use-menu-group.js +2 -1
- package/dist/dev/ui/menu/use-menu-group.js.map +1 -1
- package/dist/dev/ui/play-button/play-button.d.ts +8 -8
- package/dist/dev/ui/play-button/play-button.js +8 -8
- package/dist/dev/ui/play-button/play-button.js.map +1 -1
- package/dist/dev/ui/playback-rate/use-playback-rate-options.d.ts +2 -2
- package/dist/dev/ui/playback-rate/use-playback-rate-options.d.ts.map +1 -1
- package/dist/dev/ui/playback-rate/use-playback-rate-options.js +2 -2
- package/dist/dev/ui/playback-rate/use-playback-rate-options.js.map +1 -1
- package/dist/dev/ui/playback-rate-button/playback-rate-button.d.ts +8 -8
- 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 +8 -8
- package/dist/dev/ui/playback-rate-button/playback-rate-button.js.map +1 -1
- package/dist/dev/ui/playback-rate-radio-group/playback-rate-radio-group.d.ts +10 -10
- package/dist/dev/ui/playback-rate-radio-group/playback-rate-radio-group.d.ts.map +1 -1
- package/dist/dev/ui/playback-rate-radio-group/playback-rate-radio-group.js +11 -11
- package/dist/dev/ui/playback-rate-radio-group/playback-rate-radio-group.js.map +1 -1
- package/dist/dev/ui/popover/context.d.ts +1 -0
- package/dist/dev/ui/popover/context.d.ts.map +1 -1
- package/dist/dev/ui/popover/context.js +1 -0
- package/dist/dev/ui/popover/context.js.map +1 -1
- package/dist/dev/ui/popover/popover-popup.d.ts +4 -1
- package/dist/dev/ui/popover/popover-popup.d.ts.map +1 -1
- package/dist/dev/ui/popover/popover-popup.js +7 -3
- package/dist/dev/ui/popover/popover-popup.js.map +1 -1
- package/dist/dev/ui/popover/popover-root.d.ts.map +1 -1
- package/dist/dev/ui/popover/popover-root.js +1 -1
- package/dist/dev/ui/popover/popover-root.js.map +1 -1
- package/dist/dev/ui/popover/use-popup-position.js +2 -1
- package/dist/dev/ui/popover/use-popup-position.js.map +1 -1
- package/dist/dev/ui/poster/poster.d.ts +11 -13
- package/dist/dev/ui/poster/poster.d.ts.map +1 -1
- package/dist/dev/ui/poster/poster.js +11 -13
- package/dist/dev/ui/poster/poster.js.map +1 -1
- package/dist/dev/ui/quality/use-quality-options.d.ts +2 -3
- package/dist/dev/ui/quality/use-quality-options.d.ts.map +1 -1
- package/dist/dev/ui/quality/use-quality-options.js +2 -3
- package/dist/dev/ui/quality/use-quality-options.js.map +1 -1
- package/dist/dev/ui/quality-radio-group/quality-radio-group.d.ts +11 -11
- package/dist/dev/ui/quality-radio-group/quality-radio-group.d.ts.map +1 -1
- package/dist/dev/ui/quality-radio-group/quality-radio-group.js +12 -12
- package/dist/dev/ui/quality-radio-group/quality-radio-group.js.map +1 -1
- package/dist/dev/ui/seek-button/seek-button.d.ts +8 -8
- package/dist/dev/ui/seek-button/seek-button.js +8 -8
- package/dist/dev/ui/seek-button/seek-button.js.map +1 -1
- package/dist/dev/ui/seek-indicator/context.js.map +1 -1
- package/dist/dev/ui/seek-indicator/seek-indicator-root.d.ts.map +1 -1
- package/dist/dev/ui/seek-indicator/seek-indicator-root.js.map +1 -1
- package/dist/dev/ui/slider/context.js.map +1 -1
- package/dist/dev/ui/slider/slider-root.d.ts.map +1 -1
- package/dist/dev/ui/slider/slider-root.js.map +1 -1
- package/dist/dev/ui/slider/slider-thumbnail.d.ts.map +1 -1
- package/dist/dev/ui/slider/slider-thumbnail.js.map +1 -1
- package/dist/dev/ui/status-announcer/status-announcer.d.ts.map +1 -1
- package/dist/dev/ui/status-announcer/status-announcer.js.map +1 -1
- package/dist/dev/ui/status-indicator/context.js.map +1 -1
- package/dist/dev/ui/status-indicator/index.parts.js.map +1 -1
- package/dist/dev/ui/status-indicator/status-indicator-root.d.ts.map +1 -1
- package/dist/dev/ui/status-indicator/status-indicator-root.js +2 -1
- package/dist/dev/ui/status-indicator/status-indicator-root.js.map +1 -1
- package/dist/dev/ui/thumbnail/thumbnail.d.ts.map +1 -1
- package/dist/dev/ui/thumbnail/thumbnail.js +5 -6
- package/dist/dev/ui/thumbnail/thumbnail.js.map +1 -1
- package/dist/dev/ui/time/time-group.d.ts +7 -7
- package/dist/dev/ui/time/time-group.js +7 -7
- package/dist/dev/ui/time/time-group.js.map +1 -1
- package/dist/dev/ui/time/time-separator.d.ts +4 -4
- package/dist/dev/ui/time/time-separator.js +4 -4
- package/dist/dev/ui/time/time-separator.js.map +1 -1
- package/dist/dev/ui/time/time-value.d.ts +5 -5
- package/dist/dev/ui/time/time-value.d.ts.map +1 -1
- package/dist/dev/ui/time/time-value.js +5 -5
- package/dist/dev/ui/time/time-value.js.map +1 -1
- package/dist/dev/ui/time-slider/time-slider-chapters/slider-segments.js.map +1 -1
- package/dist/dev/ui/time-slider/time-slider-chapters/time-slider-chapters.js +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.map +1 -1
- package/dist/dev/ui/title/title.d.ts +5 -6
- package/dist/dev/ui/title/title.d.ts.map +1 -1
- package/dist/dev/ui/title/title.js +5 -6
- package/dist/dev/ui/title/title.js.map +1 -1
- package/dist/dev/ui/tooltip/context.d.ts +1 -0
- package/dist/dev/ui/tooltip/context.d.ts.map +1 -1
- package/dist/dev/ui/tooltip/context.js +1 -0
- package/dist/dev/ui/tooltip/context.js.map +1 -1
- package/dist/dev/ui/tooltip/tooltip-popup.d.ts +4 -1
- 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-provider.d.ts.map +1 -1
- package/dist/dev/ui/tooltip/tooltip-provider.js.map +1 -1
- package/dist/dev/ui/tooltip/tooltip-root.d.ts +1 -1
- package/dist/dev/ui/tooltip/tooltip-root.d.ts.map +1 -1
- package/dist/dev/ui/tooltip/tooltip-root.js +4 -2
- package/dist/dev/ui/tooltip/tooltip-root.js.map +1 -1
- package/dist/dev/ui/tooltip/tooltip-shortcut.d.ts.map +1 -1
- package/dist/dev/ui/tooltip/tooltip-shortcut.js.map +1 -1
- package/dist/dev/ui/volume-indicator/context.js.map +1 -1
- package/dist/dev/ui/volume-indicator/index.parts.js.map +1 -1
- package/dist/dev/ui/volume-indicator/volume-indicator-fill.js +3 -2
- package/dist/dev/ui/volume-indicator/volume-indicator-fill.js.map +1 -1
- package/dist/dev/ui/volume-indicator/volume-indicator-root.d.ts.map +1 -1
- package/dist/dev/ui/volume-indicator/volume-indicator-root.js +2 -1
- package/dist/dev/ui/volume-indicator/volume-indicator-root.js.map +1 -1
- package/dist/dev/ui/volume-popover/context.js +13 -0
- package/dist/dev/ui/volume-popover/context.js.map +1 -0
- package/dist/dev/ui/volume-popover/index.d.ts +2 -0
- package/dist/dev/ui/volume-popover/index.js +2 -0
- package/dist/dev/ui/volume-popover/index.parts.d.ts +9 -0
- package/dist/dev/ui/volume-popover/index.parts.d.ts.map +1 -0
- package/dist/dev/ui/volume-popover/index.parts.js +14 -0
- package/dist/dev/ui/volume-popover/index.parts.js.map +1 -0
- package/dist/dev/ui/volume-popover/volume-popover-popup.d.ts +11 -0
- package/dist/dev/ui/volume-popover/volume-popover-popup.d.ts.map +1 -0
- package/dist/dev/ui/volume-popover/volume-popover-popup.js +21 -0
- package/dist/dev/ui/volume-popover/volume-popover-popup.js.map +1 -0
- package/dist/dev/ui/volume-popover/volume-popover-root.d.ts +14 -0
- package/dist/dev/ui/volume-popover/volume-popover-root.d.ts.map +1 -0
- package/dist/dev/ui/volume-popover/volume-popover-root.js +47 -0
- package/dist/dev/ui/volume-popover/volume-popover-root.js.map +1 -0
- package/dist/dev/ui/volume-popover/volume-popover-trigger.d.ts +11 -0
- package/dist/dev/ui/volume-popover/volume-popover-trigger.d.ts.map +1 -0
- package/dist/dev/ui/volume-popover/volume-popover-trigger.js +32 -0
- package/dist/dev/ui/volume-popover/volume-popover-trigger.js.map +1 -0
- package/dist/dev/ui/volume-slider/volume-slider-root.d.ts.map +1 -1
- package/dist/dev/ui/volume-slider/volume-slider-root.js.map +1 -1
- package/dist/dev/utils/merge-props.d.ts +14 -12
- package/dist/dev/utils/merge-props.d.ts.map +1 -1
- package/dist/dev/utils/merge-props.js +20 -30
- package/dist/dev/utils/merge-props.js.map +1 -1
- package/dist/dev/utils/types.d.ts +2 -4
- package/dist/dev/utils/types.d.ts.map +1 -1
- package/dist/dev/utils/use-attach-iframe.js.map +1 -1
- package/dist/dev/utils/use-attach-media.d.ts +5 -0
- package/dist/dev/utils/use-attach-media.d.ts.map +1 -1
- package/dist/dev/utils/use-attach-media.js +5 -0
- package/dist/dev/utils/use-attach-media.js.map +1 -1
- package/dist/dev/utils/use-composed-refs.d.ts +10 -8
- package/dist/dev/utils/use-composed-refs.d.ts.map +1 -1
- package/dist/dev/utils/use-composed-refs.js +10 -8
- package/dist/dev/utils/use-composed-refs.js.map +1 -1
- package/dist/dev/utils/use-destroy.d.ts +7 -9
- package/dist/dev/utils/use-destroy.d.ts.map +1 -1
- package/dist/dev/utils/use-destroy.js +7 -9
- package/dist/dev/utils/use-destroy.js.map +1 -1
- package/dist/dev/utils/use-force-render.js.map +1 -1
- package/dist/dev/utils/use-latest-ref.d.ts +4 -2
- package/dist/dev/utils/use-latest-ref.d.ts.map +1 -1
- package/dist/dev/utils/use-latest-ref.js +4 -2
- package/dist/dev/utils/use-latest-ref.js.map +1 -1
- package/dist/dev/utils/use-media-component.d.ts +7 -6
- package/dist/dev/utils/use-media-component.d.ts.map +1 -1
- package/dist/dev/utils/use-media-component.js +7 -6
- package/dist/dev/utils/use-media-component.js.map +1 -1
- package/dist/dev/utils/use-media-instance.d.ts +8 -7
- package/dist/dev/utils/use-media-instance.d.ts.map +1 -1
- package/dist/dev/utils/use-media-instance.js +8 -7
- package/dist/dev/utils/use-media-instance.js.map +1 -1
- package/dist/dev/utils/use-render.d.ts +11 -14
- package/dist/dev/utils/use-render.d.ts.map +1 -1
- package/dist/dev/utils/use-render.js +13 -15
- package/dist/dev/utils/use-render.js.map +1 -1
- package/dist/dev/utils/use-safe-id.js +3 -4
- package/dist/dev/utils/use-safe-id.js.map +1 -1
- package/dist/dev/utils/use-sync-props.js.map +1 -1
- package/docs/README.md +1 -1
- package/docs/concepts/browser-support.md +16 -8
- package/docs/concepts/bundlers.md +43 -0
- package/docs/concepts/media-sources.md +2 -2
- package/docs/concepts/mux-data.md +3 -3
- package/docs/concepts/overview.md +9 -25
- package/docs/concepts/presets.md +2 -1
- package/docs/concepts/skins.md +498 -457
- package/docs/concepts/typescript.md +34 -0
- package/docs/concepts/ui-components.md +12 -5
- package/docs/concepts/why-videojs.md +14 -8
- package/docs/how-to/add-a-background-video.md +210 -0
- package/docs/how-to/add-a-poster-and-loading-placeholder.md +187 -0
- package/docs/how-to/add-keyboard-shortcuts-and-gestures.md +97 -0
- package/docs/how-to/add-quality-selector.md +249 -0
- package/docs/how-to/autoplay.md +172 -0
- package/docs/how-to/build-with-ai.md +2 -2
- package/docs/how-to/build-your-own-component.md +131 -4
- package/docs/how-to/cast-to-airplay-and-chromecast.md +158 -0
- package/docs/how-to/customize-skins.md +3460 -2908
- package/docs/how-to/go-fullscreen-and-lock-orientation.md +153 -0
- package/docs/how-to/handle-playback-errors.md +92 -0
- package/docs/how-to/installation.md +53 -11
- package/docs/how-to/internationalize-the-player.md +358 -0
- package/docs/how-to/migrate-from-media-chrome.md +94 -63
- package/docs/how-to/migrate-from-mux-player.md +180 -54
- package/docs/how-to/migrate-from-plyr.md +51 -32
- package/docs/how-to/migrate-from-video-js-8.md +42 -34
- package/docs/how-to/play-live-streams.md +135 -0
- package/docs/how-to/remember-user-preferences.md +180 -0
- package/docs/how-to/show-and-hide-controls.md +174 -0
- package/docs/how-to/show-captions-and-subtitles.md +156 -0
- package/docs/how-to/show-timeline-thumbnail-previews.md +163 -0
- package/docs/how-to/use-picture-in-picture.md +150 -0
- package/docs/llms.txt +63 -17
- package/docs/reference/airplay-button.md +18 -18
- package/docs/reference/alert-dialog.md +649 -0
- package/docs/reference/audio-track-radio-group.md +32 -22
- package/docs/reference/audio.md +78 -0
- package/docs/reference/background-video.md +17 -45
- package/docs/reference/buffering-indicator.md +8 -0
- package/docs/reference/captions-button.md +24 -16
- package/docs/reference/captions-radio-group.md +32 -22
- package/docs/reference/cast-button.md +21 -19
- package/docs/reference/cloudflare-video.md +8 -8
- package/docs/reference/controls.md +252 -20
- package/docs/reference/create-i18n.md +7 -3
- package/docs/reference/create-player.md +81 -9
- package/docs/reference/create-selector.md +4 -6
- package/docs/reference/create-translator.md +15 -5
- package/docs/reference/dash-video.md +5 -5
- package/docs/reference/dialog.md +833 -0
- package/docs/reference/error-dialog.md +586 -0
- package/docs/reference/feature-buffer.md +10 -4
- package/docs/reference/feature-controls.md +1 -1
- package/docs/reference/feature-error.md +1 -1
- package/docs/reference/feature-live.md +62 -7
- package/docs/reference/feature-metadata.md +4 -4
- package/docs/reference/feature-orientation-lock.md +1 -1
- package/docs/reference/feature-quality.md +1 -1
- package/docs/reference/feature-remote-playback.md +1 -1
- package/docs/reference/feature-source.md +1 -1
- package/docs/reference/feature-stream-type.md +14 -5
- package/docs/reference/feature-text-tracks.md +5 -3
- package/docs/reference/feature-time.md +1 -1
- package/docs/reference/fullscreen-button.md +23 -23
- package/docs/reference/gesture.md +201 -0
- package/docs/reference/get-i18n-translations.md +5 -5
- package/docs/reference/google-cast.md +4 -4
- package/docs/reference/has-registered-locale.md +2 -2
- package/docs/reference/hls-audio.md +9 -3
- package/docs/reference/hls-background-video.md +75 -0
- package/docs/reference/hls-video.md +12 -6
- package/docs/reference/hlsjs-video.md +165 -147
- package/docs/reference/hotkey.md +188 -0
- package/docs/reference/i-18-n-context.md +92 -0
- package/docs/reference/i18n-provider.md +2 -2
- package/docs/reference/menu.md +476 -132
- package/docs/reference/merge-props.md +56 -0
- package/docs/reference/mute-button.md +26 -26
- package/docs/reference/mux-audio.md +711 -3
- package/docs/reference/mux-background-video.md +34 -0
- package/docs/reference/mux-video.md +759 -12
- package/docs/reference/native-hls-video.md +3 -3
- package/docs/reference/pip-button.md +23 -23
- package/docs/reference/play-button.md +11 -3
- package/docs/reference/playback-rate-button.md +14 -6
- package/docs/reference/playback-rate-radio-group.md +30 -20
- package/docs/reference/player-container.md +22 -31
- package/docs/reference/{player-provider.md → player.md} +11 -9
- package/docs/reference/popover.md +173 -25
- package/docs/reference/poster.md +8 -0
- package/docs/reference/quality-radio-group.md +36 -26
- package/docs/reference/register-i18n.md +2 -2
- package/docs/reference/render-element.md +14 -2
- package/docs/reference/seek-button.md +14 -6
- package/docs/reference/seek-indicator.md +448 -0
- package/docs/reference/shaka-video.md +67 -31
- package/docs/reference/slider.md +316 -6
- package/docs/reference/spotify-audio.md +6 -6
- package/docs/reference/status-announcer.md +341 -0
- package/docs/reference/status-indicator.md +535 -0
- package/docs/reference/thumbnail.md +30 -2
- package/docs/reference/tiktok-video.md +13 -13
- package/docs/reference/time-slider.md +354 -20
- package/docs/reference/time.md +83 -3
- package/docs/reference/title.md +9 -1
- package/docs/reference/tooltip.md +281 -75
- package/docs/reference/translation-phrases.md +1 -1
- package/docs/reference/twitch-video.md +6 -6
- package/docs/reference/use-attach-media.md +59 -0
- package/docs/reference/use-audio-track-options.md +44 -2
- package/docs/reference/use-button.md +6 -2
- package/docs/reference/use-captions-options.md +48 -2
- package/docs/reference/use-composed-refs.md +59 -0
- package/docs/reference/use-container.md +39 -0
- package/docs/reference/use-destroy.md +89 -0
- package/docs/reference/use-dialog-context.md +63 -0
- package/docs/reference/use-double-tap-gesture.md +75 -0
- package/docs/reference/use-error-dialog-context.md +41 -0
- package/docs/reference/use-hotkey-shortcut.md +79 -0
- package/docs/reference/use-hotkey.md +62 -0
- package/docs/reference/use-latest-ref.md +73 -0
- package/docs/reference/use-locale.md +3 -2
- package/docs/reference/use-media-component.md +62 -0
- package/docs/reference/use-media-instance.md +79 -0
- package/docs/reference/use-media.md +31 -2
- package/docs/reference/use-menu-context.md +101 -0
- package/docs/reference/use-optional-container.md +33 -0
- package/docs/reference/use-optional-menu-context.md +101 -0
- package/docs/reference/use-optional-player.md +77 -0
- package/docs/reference/use-playback-rate-options.md +58 -2
- package/docs/reference/use-player-context.md +2 -2
- package/docs/reference/use-player.md +1 -1
- package/docs/reference/use-popover-context.md +95 -0
- package/docs/reference/use-quality-options.md +44 -2
- package/docs/reference/use-selector.md +7 -3
- package/docs/reference/use-slider.md +133 -0
- package/docs/reference/use-snapshot.md +25 -7
- package/docs/reference/use-store.md +10 -6
- package/docs/reference/use-tap-gesture.md +75 -0
- package/docs/reference/use-tooltip-context.md +115 -0
- package/docs/reference/video.md +82 -0
- package/docs/reference/vimeo-video.md +58 -60
- package/docs/reference/volume-indicator.md +601 -0
- package/docs/reference/volume-popover.md +556 -0
- package/docs/reference/volume-slider.md +237 -35
- package/docs/reference/youtube-video.md +20 -20
- package/package.json +33 -38
- package/dist/default/__generated__/skins/default-video/styles/base.css +0 -25
- package/dist/default/__generated__/skins/default-video/styles/buttons.css +0 -266
- package/dist/default/__generated__/skins/default-video/styles/captions.css +0 -22
- package/dist/default/__generated__/skins/default-video/styles/container.css +0 -158
- package/dist/default/__generated__/skins/default-video/styles/controls.css +0 -460
- package/dist/default/__generated__/skins/default-video/styles/dialog.css +0 -169
- package/dist/default/__generated__/skins/default-video/styles/indicator.css +0 -459
- package/dist/default/__generated__/skins/default-video/styles/menus.css +0 -254
- package/dist/default/__generated__/skins/default-video/styles/overlays.css +0 -35
- package/dist/default/__generated__/skins/default-video/styles/popups.css +0 -371
- package/dist/default/__generated__/skins/default-video/styles/poster.css +0 -47
- package/dist/default/__generated__/skins/default-video/styles/sliders.css +0 -436
- package/dist/default/__generated__/skins/default-video/styles/styles.css +0 -2753
- package/dist/default/__generated__/skins/default-video/styles/theme.css +0 -7
- package/dist/default/__generated__/skins/default-video/styles/video.css +0 -29
- package/dist/default/__generated__/skins/minimal-video/styles/base.css +0 -25
- package/dist/default/__generated__/skins/minimal-video/styles/buttons.css +0 -266
- package/dist/default/__generated__/skins/minimal-video/styles/captions.css +0 -22
- package/dist/default/__generated__/skins/minimal-video/styles/container.css +0 -158
- package/dist/default/__generated__/skins/minimal-video/styles/controls.css +0 -182
- package/dist/default/__generated__/skins/minimal-video/styles/dialog.css +0 -77
- package/dist/default/__generated__/skins/minimal-video/styles/indicator.css +0 -322
- package/dist/default/__generated__/skins/minimal-video/styles/menus.css +0 -254
- package/dist/default/__generated__/skins/minimal-video/styles/overlays.css +0 -35
- package/dist/default/__generated__/skins/minimal-video/styles/popups.css +0 -371
- package/dist/default/__generated__/skins/minimal-video/styles/poster.css +0 -47
- package/dist/default/__generated__/skins/minimal-video/styles/sliders.css +0 -436
- package/dist/default/__generated__/skins/minimal-video/styles/styles.css +0 -2246
- package/dist/default/__generated__/skins/minimal-video/styles/theme.css +0 -7
- package/dist/default/__generated__/skins/minimal-video/styles/video.css +0 -29
- package/dist/default/skins/dist/default/default/tailwind/components/error.js +0 -14
- package/dist/default/skins/dist/default/default/tailwind/components/error.js.map +0 -1
- package/dist/default/skins/dist/default/default/tailwind/components/input-indicator-overlay.js +0 -7
- package/dist/default/skins/dist/default/default/tailwind/components/input-indicator-overlay.js.map +0 -1
- package/dist/default/skins/dist/default/default/tailwind/components/overlay.js +0 -7
- package/dist/default/skins/dist/default/default/tailwind/components/overlay.js.map +0 -1
- package/dist/default/skins/dist/default/minimal/tailwind/components/error.js +0 -14
- package/dist/default/skins/dist/default/minimal/tailwind/components/error.js.map +0 -1
- package/dist/default/skins/dist/default/minimal/tailwind/components/input-indicator-overlay.js +0 -7
- package/dist/default/skins/dist/default/minimal/tailwind/components/input-indicator-overlay.js.map +0 -1
- package/dist/default/skins/dist/default/minimal/tailwind/components/overlay.js +0 -7
- package/dist/default/skins/dist/default/minimal/tailwind/components/overlay.js.map +0 -1
- package/dist/default/ui/alert-dialog/alert-dialog-close.js +0 -28
- package/dist/default/ui/alert-dialog/alert-dialog-close.js.map +0 -1
- package/dist/default/ui/alert-dialog/alert-dialog-description.js +0 -13
- package/dist/default/ui/alert-dialog/alert-dialog-description.js.map +0 -1
- package/dist/default/ui/alert-dialog/alert-dialog-popup.js +0 -29
- package/dist/default/ui/alert-dialog/alert-dialog-popup.js.map +0 -1
- package/dist/default/ui/alert-dialog/alert-dialog-title.js +0 -13
- package/dist/default/ui/alert-dialog/alert-dialog-title.js.map +0 -1
- package/dist/default/ui/alert-dialog/context.js +0 -13
- package/dist/default/ui/alert-dialog/context.js.map +0 -1
- package/dist/dev/__generated__/skins/default-video/styles/base.css +0 -25
- package/dist/dev/__generated__/skins/default-video/styles/buttons.css +0 -266
- package/dist/dev/__generated__/skins/default-video/styles/captions.css +0 -22
- package/dist/dev/__generated__/skins/default-video/styles/container.css +0 -158
- package/dist/dev/__generated__/skins/default-video/styles/controls.css +0 -460
- package/dist/dev/__generated__/skins/default-video/styles/dialog.css +0 -169
- package/dist/dev/__generated__/skins/default-video/styles/indicator.css +0 -459
- package/dist/dev/__generated__/skins/default-video/styles/menus.css +0 -254
- package/dist/dev/__generated__/skins/default-video/styles/overlays.css +0 -35
- package/dist/dev/__generated__/skins/default-video/styles/popups.css +0 -371
- package/dist/dev/__generated__/skins/default-video/styles/poster.css +0 -47
- package/dist/dev/__generated__/skins/default-video/styles/sliders.css +0 -436
- package/dist/dev/__generated__/skins/default-video/styles/styles.css +0 -2753
- package/dist/dev/__generated__/skins/default-video/styles/theme.css +0 -7
- package/dist/dev/__generated__/skins/default-video/styles/video.css +0 -29
- package/dist/dev/__generated__/skins/minimal-video/styles/base.css +0 -25
- package/dist/dev/__generated__/skins/minimal-video/styles/buttons.css +0 -266
- package/dist/dev/__generated__/skins/minimal-video/styles/captions.css +0 -22
- package/dist/dev/__generated__/skins/minimal-video/styles/container.css +0 -158
- package/dist/dev/__generated__/skins/minimal-video/styles/controls.css +0 -182
- package/dist/dev/__generated__/skins/minimal-video/styles/dialog.css +0 -77
- package/dist/dev/__generated__/skins/minimal-video/styles/indicator.css +0 -322
- package/dist/dev/__generated__/skins/minimal-video/styles/menus.css +0 -254
- package/dist/dev/__generated__/skins/minimal-video/styles/overlays.css +0 -35
- package/dist/dev/__generated__/skins/minimal-video/styles/popups.css +0 -371
- package/dist/dev/__generated__/skins/minimal-video/styles/poster.css +0 -47
- package/dist/dev/__generated__/skins/minimal-video/styles/sliders.css +0 -436
- package/dist/dev/__generated__/skins/minimal-video/styles/styles.css +0 -2246
- package/dist/dev/__generated__/skins/minimal-video/styles/theme.css +0 -7
- package/dist/dev/__generated__/skins/minimal-video/styles/video.css +0 -29
- package/dist/dev/skins/dist/default/default/tailwind/components/error.js +0 -14
- package/dist/dev/skins/dist/default/default/tailwind/components/error.js.map +0 -1
- package/dist/dev/skins/dist/default/default/tailwind/components/input-indicator-overlay.js +0 -7
- package/dist/dev/skins/dist/default/default/tailwind/components/input-indicator-overlay.js.map +0 -1
- package/dist/dev/skins/dist/default/default/tailwind/components/overlay.js +0 -7
- package/dist/dev/skins/dist/default/default/tailwind/components/overlay.js.map +0 -1
- package/dist/dev/skins/dist/default/minimal/tailwind/components/error.js +0 -14
- package/dist/dev/skins/dist/default/minimal/tailwind/components/error.js.map +0 -1
- package/dist/dev/skins/dist/default/minimal/tailwind/components/input-indicator-overlay.js +0 -7
- package/dist/dev/skins/dist/default/minimal/tailwind/components/input-indicator-overlay.js.map +0 -1
- package/dist/dev/skins/dist/default/minimal/tailwind/components/overlay.js +0 -7
- package/dist/dev/skins/dist/default/minimal/tailwind/components/overlay.js.map +0 -1
- package/dist/dev/ui/alert-dialog/alert-dialog-close.d.ts +0 -12
- package/dist/dev/ui/alert-dialog/alert-dialog-close.d.ts.map +0 -1
- package/dist/dev/ui/alert-dialog/alert-dialog-close.js +0 -28
- package/dist/dev/ui/alert-dialog/alert-dialog-close.js.map +0 -1
- package/dist/dev/ui/alert-dialog/alert-dialog-description.d.ts +0 -12
- package/dist/dev/ui/alert-dialog/alert-dialog-description.d.ts.map +0 -1
- package/dist/dev/ui/alert-dialog/alert-dialog-description.js +0 -13
- package/dist/dev/ui/alert-dialog/alert-dialog-description.js.map +0 -1
- package/dist/dev/ui/alert-dialog/alert-dialog-popup.d.ts +0 -12
- package/dist/dev/ui/alert-dialog/alert-dialog-popup.d.ts.map +0 -1
- package/dist/dev/ui/alert-dialog/alert-dialog-popup.js +0 -29
- package/dist/dev/ui/alert-dialog/alert-dialog-popup.js.map +0 -1
- package/dist/dev/ui/alert-dialog/alert-dialog-title.d.ts +0 -12
- package/dist/dev/ui/alert-dialog/alert-dialog-title.d.ts.map +0 -1
- package/dist/dev/ui/alert-dialog/alert-dialog-title.js +0 -13
- package/dist/dev/ui/alert-dialog/alert-dialog-title.js.map +0 -1
- package/dist/dev/ui/alert-dialog/context.d.ts +0 -13
- package/dist/dev/ui/alert-dialog/context.d.ts.map +0 -1
- package/dist/dev/ui/alert-dialog/context.js +0 -13
- package/dist/dev/ui/alert-dialog/context.js.map +0 -1
- package/docs/concepts/cast.md +0 -131
- package/docs/concepts/i18n.md +0 -317
- package/docs/how-to/add-a-poster-placeholder.md +0 -133
- package/docs/how-to/i18n-override-translations.md +0 -114
- package/docs/how-to/i18n-register-locale.md +0 -74
- package/docs/how-to/i18n-ssr.md +0 -104
- package/docs/how-to/i18n-switch-locale.md +0 -197
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
# Automatically show and hide controls
|
|
2
|
+
|
|
3
|
+
Show controls while the user is active, hide them during playback, and toggle them by touch.
|
|
4
|
+
|
|
5
|
+
Show controls while the user is active, fade them out during undisturbed playback, and bring them back on interaction.
|
|
6
|
+
|
|
7
|
+
Note
|
|
8
|
+
|
|
9
|
+
Using a pre-built [skin](../concepts/skins.md)? It already includes the controls shown here. You may still need the media or player setup in this guide. The component examples are for building your own player UI from individual [components](../concepts/ui-components.md).
|
|
10
|
+
|
|
11
|
+
## Recommended approach
|
|
12
|
+
|
|
13
|
+
Wrap your control UI in [Controls](../reference/controls.md). It reads controls visibility from player state, so the whole control bar shows and hides as one unit.
|
|
14
|
+
|
|
15
|
+
Play0:00
|
|
16
|
+
|
|
17
|
+
App.tsx
|
|
18
|
+
|
|
19
|
+
App.css
|
|
20
|
+
|
|
21
|
+
```
|
|
22
|
+
import { Container, Controls, createPlayer, PlayButton, Time } from '@videojs/react';
|
|
23
|
+
import { Video, videoFeatures } from '@videojs/react/video';
|
|
24
|
+
|
|
25
|
+
const { Player } = createPlayer({ features: videoFeatures });
|
|
26
|
+
|
|
27
|
+
export default function BasicUsage() {
|
|
28
|
+
return (
|
|
29
|
+
<Player>
|
|
30
|
+
<Container className="media-container">
|
|
31
|
+
<Video src="https://stream.mux.com/BV3YZtogl89mg9VcNBhhnHm02Y34zI1nlMuMQfAbl3dM/highest.mp4" autoPlay muted playsInline loop />
|
|
32
|
+
|
|
33
|
+
<Controls.Root>
|
|
34
|
+
<Controls.Backdrop className="controls-backdrop" />
|
|
35
|
+
<Controls.Content className="media-controls">
|
|
36
|
+
<Controls.Group className="controls-group" aria-label="Playback controls">
|
|
37
|
+
<PlayButton
|
|
38
|
+
className="button"
|
|
39
|
+
render={(props, state) => <button {...props}>{state.paused ? 'Play' : 'Pause'}</button>}
|
|
40
|
+
/>
|
|
41
|
+
|
|
42
|
+
<Time.Value type="current" className="time" />
|
|
43
|
+
</Controls.Group>
|
|
44
|
+
</Controls.Content>
|
|
45
|
+
</Controls.Root>
|
|
46
|
+
</Container>
|
|
47
|
+
</Player>
|
|
48
|
+
);
|
|
49
|
+
}
|
|
50
|
+
```
|
|
51
|
+
```
|
|
52
|
+
.media-container {
|
|
53
|
+
position: relative;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
.media-container video {
|
|
57
|
+
width: 100%;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
.media-controls {
|
|
61
|
+
position: absolute;
|
|
62
|
+
inset: 0;
|
|
63
|
+
display: flex;
|
|
64
|
+
align-items: flex-end;
|
|
65
|
+
padding: 12px;
|
|
66
|
+
pointer-events: none;
|
|
67
|
+
transition: opacity 0.25s;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
.controls-backdrop {
|
|
71
|
+
position: absolute;
|
|
72
|
+
inset: 0;
|
|
73
|
+
pointer-events: none;
|
|
74
|
+
background: linear-gradient(to top, rgba(0, 0, 0, 0.45), transparent 45%);
|
|
75
|
+
opacity: 1;
|
|
76
|
+
transition: opacity 0.35s;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
.controls-backdrop:not([data-visible]),
|
|
80
|
+
.media-controls:not([data-visible]) {
|
|
81
|
+
opacity: 0;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
.controls-group {
|
|
85
|
+
display: flex;
|
|
86
|
+
align-items: center;
|
|
87
|
+
justify-content: space-between;
|
|
88
|
+
width: 100%;
|
|
89
|
+
pointer-events: auto;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
.time {
|
|
93
|
+
display: inline-flex;
|
|
94
|
+
gap: 4px;
|
|
95
|
+
align-items: center;
|
|
96
|
+
padding-block: 8px;
|
|
97
|
+
padding-inline: 16px;
|
|
98
|
+
font-size: 14px;
|
|
99
|
+
color: black;
|
|
100
|
+
background: rgba(255, 255, 255, 0.75);
|
|
101
|
+
border: 1px solid rgba(255, 255, 255, 0.25);
|
|
102
|
+
border-radius: 9999px;
|
|
103
|
+
backdrop-filter: blur(10px);
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
.button {
|
|
107
|
+
padding-block: 8px;
|
|
108
|
+
padding-inline: 16px;
|
|
109
|
+
font-size: 14px;
|
|
110
|
+
color: black;
|
|
111
|
+
cursor: pointer;
|
|
112
|
+
background: rgba(255, 255, 255, 0.75);
|
|
113
|
+
border: 1px solid rgba(255, 255, 255, 0.25);
|
|
114
|
+
border-radius: 9999px;
|
|
115
|
+
backdrop-filter: blur(10px);
|
|
116
|
+
}
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
## How it works
|
|
120
|
+
|
|
121
|
+
The [controls feature](../reference/feature-controls.md) tracks activity on the player container:
|
|
122
|
+
|
|
123
|
+
* `userActive` is `true` while the user interacts — pointer movement, keyboard input, or focus — and flips to `false` after two seconds of inactivity.
|
|
124
|
+
* `controlsVisible` derives from activity and playback: controls stay visible while paused or while a remote playback session is connecting or connected, regardless of idle state.
|
|
125
|
+
* `toggleControls()` flips visibility, for wiring to custom triggers.
|
|
126
|
+
|
|
127
|
+
On touch devices, a tap on the media toggles the controls instead of relying on pointer movement, and mid-gesture movement doesn’t flicker visibility.
|
|
128
|
+
|
|
129
|
+
The feature needs the player container for activity tracking; without a container it stays inactive and warns in development.
|
|
130
|
+
|
|
131
|
+
## Availability and constraints
|
|
132
|
+
|
|
133
|
+
* Activity tracking listens on the player container, so controls placed outside it don’t keep the player “active” — put control UI inside the container.
|
|
134
|
+
* Keyboard focus counts as activity: controls stay reachable for keyboard and assistive-technology users while focus is inside them.
|
|
135
|
+
* Touch and mouse behave differently by design — mouse movement shows controls, touch requires a tap. Test both.
|
|
136
|
+
* The idle delay is fixed at two seconds.
|
|
137
|
+
|
|
138
|
+
## Common variations
|
|
139
|
+
|
|
140
|
+
### Always-visible controls
|
|
141
|
+
|
|
142
|
+
Skip the visibility wiring: render your controls without consuming `controlsVisible`. State still tracks activity for anything else that needs it.
|
|
143
|
+
|
|
144
|
+
### Custom show/hide styling
|
|
145
|
+
|
|
146
|
+
Controls hide by state, so you own the transition. Style the visible and hidden states in CSS — fade, slide, or scale — driven by the component’s rendered state rather than re-implementing the idle timer.
|
|
147
|
+
|
|
148
|
+
## Troubleshooting
|
|
149
|
+
|
|
150
|
+
### Controls never hide
|
|
151
|
+
|
|
152
|
+
The media is paused (controls intentionally stay visible), a remote playback session is active, an open menu or popover holds a controls lock, or something keeps triggering activity — for example a focused element inside the container receiving repeated events.
|
|
153
|
+
|
|
154
|
+
### Controls don’t come back on touch
|
|
155
|
+
|
|
156
|
+
A tap on the media toggles controls. If a custom overlay covers the media and swallows pointer events, taps never reach the container; let pointer events pass through decorative overlays.
|
|
157
|
+
|
|
158
|
+
### Controls flicker on Android while tapping
|
|
159
|
+
|
|
160
|
+
Use the skin gestures (`tap` with the `toggleControls` action) rather than adding your own tap handlers next to the built-in behavior; competing handlers invert each other. See [Add keyboard shortcuts and gestures](./add-keyboard-shortcuts-and-gestures.md).
|
|
161
|
+
|
|
162
|
+
## Related components
|
|
163
|
+
|
|
164
|
+
* [Controls](../reference/controls.md)
|
|
165
|
+
* [Player container](../reference/player-container.md)
|
|
166
|
+
|
|
167
|
+
## Related API
|
|
168
|
+
|
|
169
|
+
* [Controls feature](../reference/feature-controls.md)
|
|
170
|
+
|
|
171
|
+
## Related guides
|
|
172
|
+
|
|
173
|
+
* [Add keyboard shortcuts and gestures](./add-keyboard-shortcuts-and-gestures.md)
|
|
174
|
+
* [Accessibility](../concepts/accessibility.md)
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
# Show captions and subtitles
|
|
2
|
+
|
|
3
|
+
Show captions and subtitles, and let users turn them on and pick a language.
|
|
4
|
+
|
|
5
|
+
Add captions and subtitles to media, and let users turn them on and pick a language.
|
|
6
|
+
|
|
7
|
+
Note
|
|
8
|
+
|
|
9
|
+
Using a pre-built [skin](../concepts/skins.md)? It already includes the controls shown here. You may still need the media or player setup in this guide. The component examples are for building your own player UI from individual [components](../concepts/ui-components.md).
|
|
10
|
+
|
|
11
|
+
## Recommended approach
|
|
12
|
+
|
|
13
|
+
Add WebVTT tracks as `<track>` children of the media element, and give users a [CaptionsButton](../reference/captions-button.md) to toggle them.
|
|
14
|
+
|
|
15
|
+
App.tsx
|
|
16
|
+
|
|
17
|
+
App.css
|
|
18
|
+
|
|
19
|
+
```
|
|
20
|
+
import { CaptionsButton, Container } from '@videojs/react';
|
|
21
|
+
import { Video, VideoPlayer } from '@videojs/react/video';
|
|
22
|
+
|
|
23
|
+
export default function BasicUsage() {
|
|
24
|
+
return (
|
|
25
|
+
<VideoPlayer>
|
|
26
|
+
<Container className="media-container">
|
|
27
|
+
<Video src="https://stream.mux.com/BV3YZtogl89mg9VcNBhhnHm02Y34zI1nlMuMQfAbl3dM/highest.mp4" autoPlay muted playsInline loop>
|
|
28
|
+
<track kind="captions" src="/docs/demos/text-tracks/captions.vtt" srcLang="en" label="English" default />
|
|
29
|
+
</Video>
|
|
30
|
+
<CaptionsButton
|
|
31
|
+
className="media-captions-button"
|
|
32
|
+
render={(props, state) => (
|
|
33
|
+
<button {...props}>{state.subtitlesShowing ? 'Captions Off' : 'Captions On'}</button>
|
|
34
|
+
)}
|
|
35
|
+
/>
|
|
36
|
+
</Container>
|
|
37
|
+
</VideoPlayer>
|
|
38
|
+
);
|
|
39
|
+
}
|
|
40
|
+
```
|
|
41
|
+
```
|
|
42
|
+
.media-container {
|
|
43
|
+
position: relative;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
.media-container video {
|
|
47
|
+
width: 100%;
|
|
48
|
+
aspect-ratio: 16 / 9;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
.media-captions-button {
|
|
52
|
+
position: absolute;
|
|
53
|
+
bottom: 10px;
|
|
54
|
+
left: 10px;
|
|
55
|
+
padding-block: 8px;
|
|
56
|
+
padding-inline: 20px;
|
|
57
|
+
color: black;
|
|
58
|
+
cursor: pointer;
|
|
59
|
+
background: rgba(255, 255, 255, 0.7);
|
|
60
|
+
border: 1px solid rgba(255, 255, 255, 0.3);
|
|
61
|
+
border-radius: 9999px;
|
|
62
|
+
backdrop-filter: blur(10px);
|
|
63
|
+
}
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
## How it works
|
|
67
|
+
|
|
68
|
+
The [text track feature](../reference/feature-text-tracks.md) mirrors the media element’s `textTracks` into player state:
|
|
69
|
+
|
|
70
|
+
* `textTrackList` holds every track with its `id`, `kind`, `label`, `language`, and `mode`.
|
|
71
|
+
* `subtitlesShowing` is `true` when any caption or subtitle track is showing.
|
|
72
|
+
* `toggleSubtitles(forceShow?)` shows or hides all caption and subtitle tracks.
|
|
73
|
+
* `selectSubtitlesTrack(id)` shows one track and disables the rest; pass `'off'` to disable all.
|
|
74
|
+
|
|
75
|
+
Tracks don’t have to come from `<track>` elements: tracks that streaming media exposes (for example in-manifest HLS captions) appear in `textTrackList` the same way.
|
|
76
|
+
|
|
77
|
+
The browser renders the cues. Style them with the `::cue` pseudo-element.
|
|
78
|
+
|
|
79
|
+
## Availability and constraints
|
|
80
|
+
|
|
81
|
+
* Captions availability is `'unavailable'` until the media has at least one caption or subtitle track; caption controls render nothing in that case.
|
|
82
|
+
* Cues load asynchronously. A track appears in `textTrackList` before its cues are parsed, so cue-driven UI fills in when the track finishes loading.
|
|
83
|
+
* Cross-origin track files require CORS: serve the VTT with CORS headers and set `crossOrigin` on the media element.
|
|
84
|
+
* Track selection UIs identify tracks by `label` and `language`; give every track both.
|
|
85
|
+
* `default` on a `<track>` makes the browser show it initially.
|
|
86
|
+
|
|
87
|
+
## Common variations
|
|
88
|
+
|
|
89
|
+
### Language selection menu
|
|
90
|
+
|
|
91
|
+
For multiple languages, render a menu instead of a toggle.
|
|
92
|
+
|
|
93
|
+
`useCaptionsOptions` provides the option list (including “Off”), the selected value, and availability:
|
|
94
|
+
|
|
95
|
+
tsx
|
|
96
|
+
|
|
97
|
+
```
|
|
98
|
+
import { Menu, useCaptionsOptions } from '@videojs/react';
|
|
99
|
+
|
|
100
|
+
function CaptionsMenu() {
|
|
101
|
+
const captions = useCaptionsOptions();
|
|
102
|
+
if (captions?.state.availability !== 'available') return null;
|
|
103
|
+
|
|
104
|
+
return (
|
|
105
|
+
<Menu.Root side="top" align="end">
|
|
106
|
+
<Menu.Trigger render={<button type="button" />}>Captions</Menu.Trigger>
|
|
107
|
+
<Menu.Content>
|
|
108
|
+
<Menu.RadioGroup value={captions.value} onValueChange={captions.setValue} aria-label="Captions">
|
|
109
|
+
{captions.options.map((option) => (
|
|
110
|
+
<Menu.RadioItem key={option.value} value={option.value} disabled={option.disabled}>
|
|
111
|
+
{option.label}
|
|
112
|
+
</Menu.RadioItem>
|
|
113
|
+
))}
|
|
114
|
+
</Menu.RadioGroup>
|
|
115
|
+
</Menu.Content>
|
|
116
|
+
</Menu.Root>
|
|
117
|
+
);
|
|
118
|
+
}
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
See the [CaptionsRadioGroup](../reference/captions-radio-group.md) reference for the complete pattern.
|
|
122
|
+
|
|
123
|
+
## Troubleshooting
|
|
124
|
+
|
|
125
|
+
### Captions don’t appear
|
|
126
|
+
|
|
127
|
+
Confirm that:
|
|
128
|
+
|
|
129
|
+
* The track `kind` is `captions` or `subtitles`.
|
|
130
|
+
* The VTT file loads (check the network panel for the track request).
|
|
131
|
+
* The track is enabled: `default` on the track element, a CaptionsButton toggle, or `toggleSubtitles(true)`.
|
|
132
|
+
|
|
133
|
+
### Captions work locally but not in production
|
|
134
|
+
|
|
135
|
+
The track file is served from another origin without CORS headers. Serve it with `Access-Control-Allow-Origin` and set `crossOrigin` on the media element.
|
|
136
|
+
|
|
137
|
+
### The selection menu is empty
|
|
138
|
+
|
|
139
|
+
The media has no caption or subtitle tracks, so captions availability is `'unavailable'`. For streaming sources, confirm the manifest actually declares text tracks.
|
|
140
|
+
|
|
141
|
+
## Related components
|
|
142
|
+
|
|
143
|
+
* [Captions button](../reference/captions-button.md)
|
|
144
|
+
* [Captions radio group](../reference/captions-radio-group.md)
|
|
145
|
+
* [Menu](../reference/menu.md)
|
|
146
|
+
|
|
147
|
+
## Related API
|
|
148
|
+
|
|
149
|
+
* [Text track feature](../reference/feature-text-tracks.md)
|
|
150
|
+
* [useCaptionsOptions](../reference/use-captions-options.md)
|
|
151
|
+
|
|
152
|
+
## Related guides
|
|
153
|
+
|
|
154
|
+
* [Show timeline thumbnail previews](./show-timeline-thumbnail-previews.md)
|
|
155
|
+
* [Media sources](../concepts/media-sources.md)
|
|
156
|
+
* [Accessibility](../concepts/accessibility.md)
|
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
# Show timeline thumbnail previews
|
|
2
|
+
|
|
3
|
+
Preview frames along the timeline while the user scrubs, powered by a storyboard track.
|
|
4
|
+
|
|
5
|
+
Show preview frames along the timeline while the user scrubs, like YouTube’s seek previews.
|
|
6
|
+
|
|
7
|
+
Using Mux?
|
|
8
|
+
|
|
9
|
+
With [MuxVideo](../reference/mux-video.md), the storyboard track is wired up for you — skip adding the track and go straight to the slider thumbnail. For other services, generate the storyboard on their platform and add the track yourself.
|
|
10
|
+
|
|
11
|
+
Note
|
|
12
|
+
|
|
13
|
+
Using a pre-built [skin](../concepts/skins.md)? It already includes the controls shown here. You may still need the media or player setup in this guide. The component examples are for building your own player UI from individual [components](../concepts/ui-components.md).
|
|
14
|
+
|
|
15
|
+
## Recommended approach
|
|
16
|
+
|
|
17
|
+
Add a `kind="metadata"` track labeled `thumbnails` whose cues reference storyboard images, then put a slider thumbnail inside the [TimeSlider](../reference/time-slider.md). Scrubbing shows the frame under the pointer; the thumbnail reads the pointer time from the slider, so it takes no props.
|
|
18
|
+
|
|
19
|
+
App.tsx
|
|
20
|
+
|
|
21
|
+
App.css
|
|
22
|
+
|
|
23
|
+
```
|
|
24
|
+
import { Container, createPlayer, Slider, TimeSlider } from '@videojs/react';
|
|
25
|
+
import { Video, videoFeatures } from '@videojs/react/video';
|
|
26
|
+
|
|
27
|
+
const { Player } = createPlayer({ features: videoFeatures });
|
|
28
|
+
|
|
29
|
+
export default function BasicUsage() {
|
|
30
|
+
return (
|
|
31
|
+
<Player>
|
|
32
|
+
<Container className="media-container">
|
|
33
|
+
<Video src="https://stream.mux.com/BV3YZtogl89mg9VcNBhhnHm02Y34zI1nlMuMQfAbl3dM/highest.mp4" autoPlay muted playsInline loop crossOrigin="anonymous">
|
|
34
|
+
<track kind="metadata" label="thumbnails" src="https://image.mux.com/BV3YZtogl89mg9VcNBhhnHm02Y34zI1nlMuMQfAbl3dM/storyboard.vtt" default />
|
|
35
|
+
</Video>
|
|
36
|
+
<TimeSlider.Root className="media-time-slider">
|
|
37
|
+
<TimeSlider.Track className="media-slider-track">
|
|
38
|
+
<TimeSlider.Fill className="media-slider-fill" />
|
|
39
|
+
</TimeSlider.Track>
|
|
40
|
+
<Slider.Thumbnail className="media-slider-thumbnail" />
|
|
41
|
+
</TimeSlider.Root>
|
|
42
|
+
</Container>
|
|
43
|
+
</Player>
|
|
44
|
+
);
|
|
45
|
+
}
|
|
46
|
+
```
|
|
47
|
+
```
|
|
48
|
+
.media-container {
|
|
49
|
+
position: relative;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
.media-container video {
|
|
53
|
+
width: 100%;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
.media-time-slider {
|
|
57
|
+
position: absolute;
|
|
58
|
+
right: 10px;
|
|
59
|
+
bottom: 6px;
|
|
60
|
+
left: 10px;
|
|
61
|
+
display: flex;
|
|
62
|
+
align-items: center;
|
|
63
|
+
height: 20px;
|
|
64
|
+
cursor: pointer;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
.media-slider-track {
|
|
68
|
+
position: absolute;
|
|
69
|
+
right: 0;
|
|
70
|
+
left: 0;
|
|
71
|
+
height: 4px;
|
|
72
|
+
background: rgba(255, 255, 255, 0.3);
|
|
73
|
+
border-radius: 9999px;
|
|
74
|
+
transition: height 150ms ease;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
.media-time-slider[data-interactive] .media-slider-track {
|
|
78
|
+
height: 6px;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
.media-slider-fill {
|
|
82
|
+
position: absolute;
|
|
83
|
+
top: 0;
|
|
84
|
+
left: 0;
|
|
85
|
+
width: var(--media-slider-fill);
|
|
86
|
+
height: 100%;
|
|
87
|
+
background: white;
|
|
88
|
+
border-radius: 9999px;
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
/* Reveal the preview over the pointer while it is on the slider. */
|
|
92
|
+
.media-slider-thumbnail {
|
|
93
|
+
position: absolute;
|
|
94
|
+
bottom: 100%;
|
|
95
|
+
left: var(--media-slider-pointer);
|
|
96
|
+
max-width: 160px;
|
|
97
|
+
margin-bottom: 8px;
|
|
98
|
+
pointer-events: none;
|
|
99
|
+
border-radius: 4px;
|
|
100
|
+
opacity: 0;
|
|
101
|
+
transform: translateX(-50%);
|
|
102
|
+
transition: opacity 150ms ease;
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
.media-time-slider[data-pointing] .media-slider-thumbnail {
|
|
106
|
+
opacity: 1;
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
.media-slider-thumbnail[data-hidden] {
|
|
110
|
+
display: none;
|
|
111
|
+
}
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
## How it works
|
|
115
|
+
|
|
116
|
+
* Previews come from a storyboard: a `kind="metadata"` text track labeled `thumbnails` whose WebVTT cues map time ranges to image URLs (optionally with sprite coordinates). The [text track feature](../reference/feature-text-tracks.md) exposes these as `thumbnailCues` and `thumbnailTrackSrc`.
|
|
117
|
+
* The slider thumbnail renders the storyboard frame for the slider’s pointer position. While the pointer is over the slider, the slider sets `data-pointing` and the `--media-slider-pointer` CSS variable; the demo’s CSS uses them to reveal the preview and position it over the pointer.
|
|
118
|
+
* To render a storyboard frame outside the slider — a fixed preview for a chapter list, for example — use the standalone [Thumbnail](../reference/thumbnail.md) component with an explicit `time`.
|
|
119
|
+
|
|
120
|
+
Each cue’s text is an image URL. An optional `#xywh=x,y,w,h` fragment crops one frame out of a sprite sheet:
|
|
121
|
+
|
|
122
|
+
storyboard.vtt
|
|
123
|
+
|
|
124
|
+
```
|
|
125
|
+
WEBVTT
|
|
126
|
+
|
|
127
|
+
00:00:00.000 --> 00:00:05.000
|
|
128
|
+
storyboard.jpg#xywh=0,0,256,160
|
|
129
|
+
|
|
130
|
+
00:00:05.000 --> 00:00:10.000
|
|
131
|
+
storyboard.jpg#xywh=256,0,256,160
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
## Availability and constraints
|
|
135
|
+
|
|
136
|
+
* Thumbnails require a storyboard asset generated alongside the media; the player doesn’t extract frames from the video itself.
|
|
137
|
+
* Cross-origin storyboards need CORS headers, and `crossOrigin` on the media element for the track to load.
|
|
138
|
+
* Cues load asynchronously. The track appears before its cues are parsed, so previews fill in when the track finishes loading.
|
|
139
|
+
* Storyboard images download on demand; oversized sprite sheets hurt seek-preview responsiveness more than they help quality.
|
|
140
|
+
|
|
141
|
+
## Troubleshooting
|
|
142
|
+
|
|
143
|
+
### Thumbnails don’t appear while scrubbing
|
|
144
|
+
|
|
145
|
+
Confirm the storyboard track is `kind="metadata"` with `label="thumbnails"` and has the `default` attribute — the browser leaves a non-default track disabled and never loads its cues. Then confirm the VTT loads (network panel) and cross-origin assets have CORS headers with `crossOrigin` set on the media element.
|
|
146
|
+
|
|
147
|
+
### Thumbnails are blurry or slow
|
|
148
|
+
|
|
149
|
+
Regenerate the storyboard with a larger frame size, or split giant sprite sheets into smaller images.
|
|
150
|
+
|
|
151
|
+
## Related components
|
|
152
|
+
|
|
153
|
+
* [Thumbnail](../reference/thumbnail.md)
|
|
154
|
+
* [Time slider](../reference/time-slider.md)
|
|
155
|
+
|
|
156
|
+
## Related API
|
|
157
|
+
|
|
158
|
+
* [Text track feature](../reference/feature-text-tracks.md)
|
|
159
|
+
|
|
160
|
+
## Related guides
|
|
161
|
+
|
|
162
|
+
* [Add a poster and loading placeholder](./add-a-poster-and-loading-placeholder.md)
|
|
163
|
+
* [Show captions and subtitles](./show-captions-and-subtitles.md)
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
# Use picture-in-picture
|
|
2
|
+
|
|
3
|
+
Pop the video into a floating window, with availability detection and state that tracks every entry path.
|
|
4
|
+
|
|
5
|
+
Pop the video into a floating always-on-top window so it keeps playing while the user does something else.
|
|
6
|
+
|
|
7
|
+
Note
|
|
8
|
+
|
|
9
|
+
Using a pre-built [skin](../concepts/skins.md)? It already includes the controls shown here. You may still need the media or player setup in this guide. The component examples are for building your own player UI from individual [components](../concepts/ui-components.md).
|
|
10
|
+
|
|
11
|
+
## Recommended approach
|
|
12
|
+
|
|
13
|
+
Add a [PiPButton](../reference/pip-button.md). It requests and exits picture-in-picture, reflects the current state, and renders nothing when picture-in-picture is unsupported.
|
|
14
|
+
|
|
15
|
+
App.tsx
|
|
16
|
+
|
|
17
|
+
App.css
|
|
18
|
+
|
|
19
|
+
```
|
|
20
|
+
import { Container, createPlayer, PiPButton } from '@videojs/react';
|
|
21
|
+
import { Video, videoFeatures } from '@videojs/react/video';
|
|
22
|
+
|
|
23
|
+
const { Player } = createPlayer({ features: videoFeatures });
|
|
24
|
+
|
|
25
|
+
export default function BasicUsage() {
|
|
26
|
+
return (
|
|
27
|
+
<Player>
|
|
28
|
+
<Container className="media-container">
|
|
29
|
+
<Video src="https://stream.mux.com/BV3YZtogl89mg9VcNBhhnHm02Y34zI1nlMuMQfAbl3dM/highest.mp4" autoPlay muted playsInline loop />
|
|
30
|
+
<PiPButton
|
|
31
|
+
className="media-pip-button"
|
|
32
|
+
render={(props, state) => <button {...props}>{state.pip ? 'Exit PiP' : 'Enter PiP'}</button>}
|
|
33
|
+
/>
|
|
34
|
+
</Container>
|
|
35
|
+
</Player>
|
|
36
|
+
);
|
|
37
|
+
}
|
|
38
|
+
```
|
|
39
|
+
```
|
|
40
|
+
.media-container {
|
|
41
|
+
position: relative;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
.media-container video {
|
|
45
|
+
width: 100%;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
.media-pip-button {
|
|
49
|
+
position: absolute;
|
|
50
|
+
right: 10px;
|
|
51
|
+
bottom: 10px;
|
|
52
|
+
padding-block: 8px;
|
|
53
|
+
padding-inline: 20px;
|
|
54
|
+
color: black;
|
|
55
|
+
cursor: pointer;
|
|
56
|
+
background: rgba(255, 255, 255, 0.7);
|
|
57
|
+
border: 1px solid rgba(255, 255, 255, 0.3);
|
|
58
|
+
border-radius: 9999px;
|
|
59
|
+
backdrop-filter: blur(10px);
|
|
60
|
+
}
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
## How it works
|
|
64
|
+
|
|
65
|
+
The [picture-in-picture feature](../reference/feature-pip.md) puts three things in player state.
|
|
66
|
+
|
|
67
|
+
`pip` is `true` while the video is in a floating window. It tracks every way in and out — your button, the native controls, or a control the browser adds on its own.
|
|
68
|
+
|
|
69
|
+
`pipAvailability` answers “can I offer this?” It starts as `'unavailable'`. Once the feature attaches to a media element, it settles to `'available'` or `'unsupported'`.
|
|
70
|
+
|
|
71
|
+
`requestPictureInPicture()`, `exitPictureInPicture()`, and `togglePictureInPicture()` change the presentation. If the browser blocks a request, the returned promise rejects. In a browser with no picture-in-picture API, the actions resolve without changing anything.
|
|
72
|
+
|
|
73
|
+
Picture-in-picture and fullscreen are exclusive: requesting one exits the other first.
|
|
74
|
+
|
|
75
|
+
## Availability and constraints
|
|
76
|
+
|
|
77
|
+
* Show picture-in-picture controls only when `pipAvailability` is `'available'`. PiPButton handles this for you.
|
|
78
|
+
* Requests must come from a user gesture; browsers reject requests outside one.
|
|
79
|
+
* Firefox 153 (July 2026) added the programmatic picture-in-picture API. Earlier versions, including Firefox ESR 140, report `'unsupported'` even though they offer their own built-in picture-in-picture toggle to users.
|
|
80
|
+
* On iOS, picture-in-picture is supported on iPhone and iPad through the WebKit presentation mode; the player handles this path for you.
|
|
81
|
+
* The browser owns the floating window: its size, position, and built-in controls aren’t yours to style.
|
|
82
|
+
* The user can close the window or return the video at any time. React to `pip` state instead of assuming your button is the only entry and exit.
|
|
83
|
+
|
|
84
|
+
## Common variations
|
|
85
|
+
|
|
86
|
+
### Request picture-in-picture from app logic
|
|
87
|
+
|
|
88
|
+
Enter picture-in-picture when the user scrolls the player out of view or navigates within your app. This still requires a recent user gesture in most browsers, so tie it to an interaction:
|
|
89
|
+
|
|
90
|
+
tsx
|
|
91
|
+
|
|
92
|
+
```
|
|
93
|
+
import { Container } from '@videojs/react';
|
|
94
|
+
import { usePlayer, Video, VideoPlayer } from '@videojs/react/video';
|
|
95
|
+
|
|
96
|
+
function WatchElsewhereButton() {
|
|
97
|
+
const store = usePlayer();
|
|
98
|
+
|
|
99
|
+
return (
|
|
100
|
+
<button
|
|
101
|
+
type="button"
|
|
102
|
+
onClick={() => {
|
|
103
|
+
store.requestPictureInPicture().catch(() => {
|
|
104
|
+
// Rejected: no video data yet, or blocked by the browser.
|
|
105
|
+
});
|
|
106
|
+
}}
|
|
107
|
+
>
|
|
108
|
+
Keep watching while you browse
|
|
109
|
+
</button>
|
|
110
|
+
);
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
export default function App() {
|
|
114
|
+
return (
|
|
115
|
+
<VideoPlayer>
|
|
116
|
+
<Container>
|
|
117
|
+
<Video src="https://stream.mux.com/BV3YZtogl89mg9VcNBhhnHm02Y34zI1nlMuMQfAbl3dM/highest.mp4" muted playsInline />
|
|
118
|
+
<WatchElsewhereButton />
|
|
119
|
+
</Container>
|
|
120
|
+
</VideoPlayer>
|
|
121
|
+
);
|
|
122
|
+
}
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
## Troubleshooting
|
|
126
|
+
|
|
127
|
+
### The picture-in-picture button doesn’t render
|
|
128
|
+
|
|
129
|
+
`pipAvailability` is `'unsupported'` — the browser has no programmatic picture-in-picture API (Firefox before 153), or the media isn’t a video.
|
|
130
|
+
|
|
131
|
+
### The request rejects
|
|
132
|
+
|
|
133
|
+
The video has no data yet (wait for it to be ready), the call wasn’t tied to a user gesture, or the browser blocked it. Handle the rejection rather than assuming entry succeeded.
|
|
134
|
+
|
|
135
|
+
### State is wrong after the user closes the floating window
|
|
136
|
+
|
|
137
|
+
Read `pip` from player state instead of tracking entry and exit yourself; it stays in sync with every path in and out of picture-in-picture.
|
|
138
|
+
|
|
139
|
+
## Related components
|
|
140
|
+
|
|
141
|
+
* [PiP button](../reference/pip-button.md)
|
|
142
|
+
|
|
143
|
+
## Related API
|
|
144
|
+
|
|
145
|
+
* [Picture-in-picture feature](../reference/feature-pip.md)
|
|
146
|
+
|
|
147
|
+
## Related guides
|
|
148
|
+
|
|
149
|
+
* [Go fullscreen and lock orientation](./go-fullscreen-and-lock-orientation.md)
|
|
150
|
+
* [Cast to AirPlay and Chromecast](./cast-to-airplay-and-chromecast.md)
|