@videojs/react 10.0.0-beta.30 → 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 +10 -5
- package/dist/default/i18n/create-i18n.js.map +1 -1
- package/dist/default/i18n/get-provider-root-props.js +4 -2
- 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 +24 -9
- 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 +347 -250
- 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 +328 -238
- 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 +347 -250
- 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 +328 -238
- 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 +435 -365
- package/dist/default/presets/live-video/minimal-skin.js +103 -83
- package/dist/default/presets/live-video/minimal-skin.js.map +1 -1
- package/dist/default/presets/live-video/minimal-skin.tailwind.js +104 -83
- 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 +385 -320
- package/dist/default/presets/live-video/skin.js +87 -81
- package/dist/default/presets/live-video/skin.js.map +1 -1
- package/dist/default/presets/live-video/skin.tailwind.js +87 -81
- package/dist/default/presets/live-video/skin.tailwind.js.map +1 -1
- package/dist/default/presets/video/minimal-skin.css +435 -365
- package/dist/default/presets/video/minimal-skin.js +131 -91
- package/dist/default/presets/video/minimal-skin.js.map +1 -1
- package/dist/default/presets/video/minimal-skin.tailwind.js +127 -96
- 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 +385 -320
- package/dist/default/presets/video/skin.js +115 -91
- package/dist/default/presets/video/skin.js.map +1 -1
- package/dist/default/presets/video/skin.tailwind.js +111 -95
- 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-group.js +1 -1
- package/dist/default/skins/dist/default/default/tailwind/components/button-group.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 +16 -11
- 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 +2 -2
- 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-group.js +1 -1
- package/dist/default/skins/dist/default/minimal/tailwind/components/button-group.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 +16 -11
- 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 +3 -3
- 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 +6 -7
- 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 +3 -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 +10 -5
- package/dist/dev/i18n/create-i18n.js.map +1 -1
- package/dist/dev/i18n/get-provider-root-props.js +4 -2
- 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 +24 -9
- 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 +347 -250
- 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 +328 -238
- 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 +347 -250
- 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 +328 -238
- 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 +435 -365
- package/dist/dev/presets/live-video/minimal-skin.d.ts.map +1 -1
- package/dist/dev/presets/live-video/minimal-skin.js +103 -83
- 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 -83
- 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 +385 -320
- package/dist/dev/presets/live-video/skin.d.ts.map +1 -1
- package/dist/dev/presets/live-video/skin.js +87 -81
- 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 -81
- 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 +435 -365
- 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 +131 -91
- 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 +127 -96
- 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 +385 -320
- 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 +115 -91
- 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 +111 -95
- 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-group.js +1 -1
- package/dist/dev/skins/dist/default/default/tailwind/components/button-group.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 +16 -11
- 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 +2 -2
- 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-group.js +1 -1
- package/dist/dev/skins/dist/default/minimal/tailwind/components/button-group.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 +16 -11
- 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 +3 -3
- 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 +6 -7
- 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 +28 -4
- 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 +538 -465
- 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 +10009 -1574
- 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 +57 -15
- 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 +52 -33
- 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 +70 -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 +223 -0
- 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 +57 -2
- 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 +6 -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 +33 -1
- package/docs/reference/hls-background-video.md +75 -0
- package/docs/reference/hls-video.md +45 -1
- package/docs/reference/hlsjs-video.md +648 -3
- 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 +44 -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 +395 -0
- package/docs/reference/slider.md +316 -6
- package/docs/reference/spotify-audio.md +188 -0
- 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 +280 -0
- package/docs/reference/time-slider.md +354 -20
- package/docs/reference/time.md +83 -3
- package/docs/reference/title.md +10 -2
- package/docs/reference/tooltip.md +281 -75
- package/docs/reference/translation-phrases.md +1 -1
- package/docs/reference/twitch-video.md +211 -0
- 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 +734 -0
- 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 +339 -0
- 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 -170
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
Move a Video.js 8 integration to v10, mapping the options object, techs, plugins, and player API onto composed components
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
Video.js 8 gives you one function, `videojs()`, and one large options object. It enhances a `<video>` element and returns a player with a control bar, plugin system, and component tree.
|
|
6
6
|
|
|
7
|
-
Video.js v10 is a rebuild
|
|
7
|
+
Video.js v10 is a rebuild, not a drop-in version bump. There is no `videojs()` call, options object, or plugin registry. You compose a player from a few named pieces instead.
|
|
8
8
|
|
|
9
9
|
Caution
|
|
10
10
|
|
|
@@ -91,8 +91,8 @@ import { Video, VideoPlayer, VideoSkin } from '@videojs/react/video';
|
|
|
91
91
|
|
|
92
92
|
export function MyPlayer() {
|
|
93
93
|
return (
|
|
94
|
-
<VideoPlayer>
|
|
95
|
-
<VideoSkin className="aspect-video"
|
|
94
|
+
<VideoPlayer poster="/poster.jpg">
|
|
95
|
+
<VideoSkin className="aspect-video">
|
|
96
96
|
<Video src="/video.mp4" preload="auto" playsInline>
|
|
97
97
|
<track kind="captions" src="/captions/en.vtt" srclang="en" label="English" default />
|
|
98
98
|
<track kind="metadata" src="/storyboard.vtt" label="thumbnails" default />
|
|
@@ -109,7 +109,7 @@ Three differences worth understanding, because each one is a pattern you’ll se
|
|
|
109
109
|
|
|
110
110
|
* **No `videojs()` call and no effect.** `VideoPlayer` owns the lifecycle.
|
|
111
111
|
* **No `controls` prop.** The skin *is* the controls. Rendering a skin is how you ask for them, which is also how you opt out.
|
|
112
|
-
* **The poster is
|
|
112
|
+
* **The poster is player metadata, not a media attribute.** Pass it to `VideoPlayer`, and the skin controls how it appears.
|
|
113
113
|
|
|
114
114
|
The `'use client'` directive is there because the player owns browser state. There’s also a minimal skin, closer to v8’s control bar, if the default’s frosted look is too much of a change.
|
|
115
115
|
|
|
@@ -118,7 +118,7 @@ The `'use client'` directive is there because the player owns browser state. The
|
|
|
118
118
|
The v8 options object is gone, and its contents scattered in four directions. This is the biggest conceptual step, so it’s worth understanding the four buckets before you go looking for a specific option.
|
|
119
119
|
|
|
120
120
|
1. **Media attributes.** Anything the browser itself understands stays exactly where it was, on your media element.
|
|
121
|
-
2. **
|
|
121
|
+
2. **Player metadata.** The title and poster belong to player state, which lets the skin or your custom UI render them.
|
|
122
122
|
3. **Your CSS.** Sizing, aspect ratio, and responsive behavior are layout, and layout is yours.
|
|
123
123
|
4. **Composition.** Which controls exist, which shortcuts fire, which language you’re in. You express these by choosing components rather than by setting flags.
|
|
124
124
|
|
|
@@ -142,7 +142,7 @@ the same attributes on your media
|
|
|
142
142
|
|
|
143
143
|
`disablepictureinpicture`
|
|
144
144
|
|
|
145
|
-
###
|
|
145
|
+
### Player metadata
|
|
146
146
|
|
|
147
147
|
Video.js 8
|
|
148
148
|
|
|
@@ -150,27 +150,29 @@ Video.js v10
|
|
|
150
150
|
|
|
151
151
|
`poster`
|
|
152
152
|
|
|
153
|
-
|
|
153
|
+
`poster` on `<video-player>` or `VideoPlayer`
|
|
154
154
|
|
|
155
155
|
`posterImage: false`
|
|
156
156
|
|
|
157
|
-
leave the poster unset
|
|
157
|
+
leave the player’s poster unset
|
|
158
158
|
|
|
159
159
|
the title in `TitleBar`
|
|
160
160
|
|
|
161
|
-
`content-title` on
|
|
161
|
+
`content-title` on `<video-player>` or `title` on `VideoPlayer`, rendered with the Title component
|
|
162
162
|
|
|
163
|
-
The poster belongs to
|
|
163
|
+
The poster belongs to player state rather than the media, which lets the skin control how it appears:
|
|
164
164
|
|
|
165
165
|
jsx
|
|
166
166
|
|
|
167
167
|
```
|
|
168
|
-
<
|
|
169
|
-
<
|
|
170
|
-
|
|
168
|
+
<VideoPlayer poster="/poster.jpg">
|
|
169
|
+
<VideoSkin>
|
|
170
|
+
<Video src="/video.mp4" />
|
|
171
|
+
</VideoSkin>
|
|
172
|
+
</VideoPlayer>
|
|
171
173
|
```
|
|
172
174
|
|
|
173
|
-
|
|
175
|
+
The packaged skins do not place the title in their default layouts. Add the [Title](../reference/title.md) component as a child of the skin, or place it in an ejected or custom layout. See the [Poster](../reference/poster.md) reference for poster rendering options.
|
|
174
176
|
|
|
175
177
|
### Your CSS
|
|
176
178
|
|
|
@@ -260,6 +262,10 @@ not configurable yet ([#1728](https://github.com/videojs/v10/issues/1728))
|
|
|
260
262
|
|
|
261
263
|
the skins include an error dialog
|
|
262
264
|
|
|
265
|
+
`ModalDialog`
|
|
266
|
+
|
|
267
|
+
compose a [Dialog](../reference/dialog.md); your application controls media playback when it opens and closes
|
|
268
|
+
|
|
263
269
|
## Techs become media components
|
|
264
270
|
|
|
265
271
|
v8’s tech system was one of its harder ideas: an abstraction layer with a registry, a resolution order, and source handlers on top. Getting HLS meant getting VHS, which meant reasoning about `overrideNative` and hoping the right thing won.
|
|
@@ -342,7 +348,7 @@ In v8, customizing meant three different techniques depending on what you wanted
|
|
|
342
348
|
|
|
343
349
|
The default skin is a modern, frosted look. The minimal skin is closer to v8’s control bar. Both bring controls, tooltips, captions, keyboard shortcuts, touch gestures, and a settings menu that appears when there’s something to put in it. See [Skins](../concepts/skins.md).
|
|
344
350
|
|
|
345
|
-
Both also include AirPlay and
|
|
351
|
+
Both also include AirPlay and Cast buttons, which v8 had no answer for. Follow [Cast to AirPlay and Chromecast](./cast-to-airplay-and-chromecast.md) to add the Google Cast integration. Remote playback is a feature you compose in rather than a plugin you install.
|
|
346
352
|
|
|
347
353
|
### Level 2: restyle it
|
|
348
354
|
|
|
@@ -385,16 +391,18 @@ export function MyPlayer() {
|
|
|
385
391
|
<Video src="/video.mp4" playsInline />
|
|
386
392
|
|
|
387
393
|
<Controls.Root>
|
|
388
|
-
<
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
<TimeSlider.
|
|
392
|
-
<TimeSlider.
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
394
|
+
<Controls.Content>
|
|
395
|
+
<PlayButton />
|
|
396
|
+
<MuteButton />
|
|
397
|
+
<TimeSlider.Root>
|
|
398
|
+
<TimeSlider.Track>
|
|
399
|
+
<TimeSlider.Fill />
|
|
400
|
+
<TimeSlider.Buffer />
|
|
401
|
+
</TimeSlider.Track>
|
|
402
|
+
<TimeSlider.Thumb />
|
|
403
|
+
</TimeSlider.Root>
|
|
404
|
+
{/* No PiPButton, so no picture-in-picture control renders. */}
|
|
405
|
+
</Controls.Content>
|
|
398
406
|
</Controls.Root>
|
|
399
407
|
|
|
400
408
|
<Hotkey keys="Space" action="togglePaused" />
|
|
@@ -446,7 +454,7 @@ One category doesn’t survive that translation, because those were never media
|
|
|
446
454
|
|
|
447
455
|
### Player state
|
|
448
456
|
|
|
449
|
-
|
|
457
|
+
Put standard media event props such as `onPlay`, `onTimeUpdate`, `onEnded`, and `onError` on `Video` or your chosen media component. Read player state through the preset’s [`usePlayer`](../reference/use-player.md) hook, typed to that preset’s features:
|
|
450
458
|
|
|
451
459
|
tsx
|
|
452
460
|
|
|
@@ -515,7 +523,7 @@ remove the element, or unmount the component
|
|
|
515
523
|
|
|
516
524
|
`player.tech()`
|
|
517
525
|
|
|
518
|
-
|
|
526
|
+
the media component’s public `engine` escape hatch, where one exists; in React, reach it through `useMedia()`
|
|
519
527
|
|
|
520
528
|
`videojs.getPlayer(id)`
|
|
521
529
|
|
|
@@ -525,7 +533,7 @@ Swapping sources is the change most likely to surprise you. There’s no `player
|
|
|
525
533
|
|
|
526
534
|
## Languages
|
|
527
535
|
|
|
528
|
-
v8 shipped one language and asked you to register more with `videojs.addLanguage`. v10 ships locale packs for around 50 languages, so most apps need no setup at all. See [
|
|
536
|
+
v8 shipped one language and asked you to register more with `videojs.addLanguage`. v10 ships locale packs for around 50 languages, so most apps need no setup at all. See [Internationalize the player](./internationalize-the-player.md).
|
|
529
537
|
|
|
530
538
|
To override individual strings, use [`I18nProvider`](../reference/i18n-provider.md) when you want them scoped to a subtree:
|
|
531
539
|
|
|
@@ -539,7 +547,7 @@ import { I18nProvider } from '@videojs/react/i18n';
|
|
|
539
547
|
</I18nProvider>
|
|
540
548
|
```
|
|
541
549
|
|
|
542
|
-
See [
|
|
550
|
+
See [Internationalize the player](./internationalize-the-player.md) for scoped overrides, custom locales, and runtime switching.
|
|
543
551
|
|
|
544
552
|
## Live and audio-only
|
|
545
553
|
|
|
@@ -548,6 +556,7 @@ v8 turned live UI on with a `liveui` flag, and audio-only on with `audioOnlyMode
|
|
|
548
556
|
tsx
|
|
549
557
|
|
|
550
558
|
```
|
|
559
|
+
import '@videojs/react/live-video/skin.css';
|
|
551
560
|
import { HlsVideo } from '@videojs/react/media/hls-video';
|
|
552
561
|
import { LiveVideoPlayer, LiveVideoSkin } from '@videojs/react/live-video';
|
|
553
562
|
|
|
@@ -560,9 +569,9 @@ import { LiveVideoPlayer, LiveVideoSkin } from '@videojs/react/live-video';
|
|
|
560
569
|
|
|
561
570
|
For audio, use the audio preset, or the live audio one. There’s also a background video preset for muted, chrome-free background video, which v8 had no answer for.
|
|
562
571
|
|
|
563
|
-
You get `
|
|
572
|
+
You get `targetLiveWindow` and `liveEdgeStart` in state, plus a live button that jumps to the live edge. The live preset does not include `streamType`; add the stream type feature to a custom player when you need it. v8’s `liveTracker` tuning has no equivalent ([#1730](https://github.com/videojs/v10/issues/1730)).
|
|
564
573
|
|
|
565
|
-
The live composition is deliberately narrower than the video one. It leaves out playback rate, quality, and audio-track state, so those controls don’t appear in a live skin’s settings menu. If you need
|
|
574
|
+
The live composition is deliberately narrower than the video one. It leaves out playback rate, quality, and audio-track state, so those controls don’t appear in a live skin’s settings menu. If you need an omitted feature on a live player, build your own player from a feature list rather than taking the preset’s.
|
|
566
575
|
|
|
567
576
|
That’s what [`createPlayer`](../reference/create-player.md) is for. Hand it a feature list and you get back a `Player` component and a `usePlayer` hook, the same pair every preset is built from.
|
|
568
577
|
|
|
@@ -573,13 +582,12 @@ Ordered roughly by how likely each is to block a v8 migration.
|
|
|
573
582
|
* **No ads support.** v8’s IMA and ad-plugin ecosystem has no v10 equivalent. This is the most common hard blocker.
|
|
574
583
|
* **No playlist support.** No `videojs-playlist` equivalent.
|
|
575
584
|
* **No plugin system**, by design. Budget for rebuilding UI plugins as components. See [Plugins](#plugins).
|
|
576
|
-
* No skin draws `content-title`, so v8’s `TitleBar` has no visual equivalent ([#1123](https://github.com/videojs/v10/issues/1123)).
|
|
577
585
|
* Playback rates are a fixed set — `0.2`, `0.5`, `0.7`, `1`, `1.2`, `1.5`, `1.7`, `2` — so v8’s `playbackRates` has no equivalent yet ([#1404](https://github.com/videojs/v10/issues/1404)).
|
|
578
586
|
* No text-track settings dialog. v8’s `textTrackSettings` let viewers restyle captions; v10 exposes only the positioning custom properties its skins define.
|
|
579
587
|
* No spatial navigation. v8’s `spatialNavigation` for TV and D-pad remotes has no equivalent.
|
|
580
588
|
* Nothing persists between sessions: volume, captions language, speed, quality. That’s out of scope for GA ([#944](https://github.com/videojs/v10/issues/944)). Default subtitle language is tracked at [#1423](https://github.com/videojs/v10/issues/1423).
|
|
581
589
|
* No VHS-equivalent tuning surface. Engine settings belong to the engine you chose, and the default HLS component deliberately exposes few of them.
|
|
582
|
-
* Chapters render in the time slider from a `<track kind="chapters">`,
|
|
590
|
+
* Chapters render in the time slider from a `<track kind="chapters">`, and its segments reflect `data-active`. There is no player-level active chapter value or chapter menu, so v8’s chapters menu has no equivalent ([#1873](https://github.com/videojs/v10/issues/1873)). Cue points aren’t implemented ([#1442](https://github.com/videojs/v10/issues/1442)).
|
|
583
591
|
* The controls auto-hide delay isn’t configurable, so v8’s `inactivityTimeout` has no equivalent ([#1728](https://github.com/videojs/v10/issues/1728)).
|
|
584
592
|
* No full-window fullscreen fallback. v8 had one for browsers without the Fullscreen API; [support is around 96%](https://caniuse.com/fullscreen) now.
|
|
585
593
|
* Multiple `<source>` elements with `size` metadata don’t become a quality menu. Use HLS or DASH for adaptive quality; picking renditions by resolution won’t be added ([#1415](https://github.com/videojs/v10/issues/1415)).
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
# Play live streams
|
|
2
|
+
|
|
3
|
+
Play live streams with live-edge tracking, DVR windows, and stream-type detection.
|
|
4
|
+
|
|
5
|
+
Play live streams: show a live badge, jump to the live edge, and support DVR windows when the stream allows scrubbing back.
|
|
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
|
+
Use the live feature bundle with a streaming media element, and give users a `LiveButton`: it shows whether playback is at the live edge and seeks back to it when activated.
|
|
14
|
+
|
|
15
|
+
tsx
|
|
16
|
+
|
|
17
|
+
```
|
|
18
|
+
import { Container, LiveButton } from '@videojs/react';
|
|
19
|
+
import { LiveVideoPlayer } from '@videojs/react/live-video';
|
|
20
|
+
import { HlsJsVideo } from '@videojs/react/media/hlsjs-video';
|
|
21
|
+
|
|
22
|
+
export default function App() {
|
|
23
|
+
return (
|
|
24
|
+
<LiveVideoPlayer>
|
|
25
|
+
<Container>
|
|
26
|
+
<HlsJsVideo src="https://your-stream.example.com/live.m3u8" autoPlay muted playsInline />
|
|
27
|
+
<LiveButton render={(props, state) => <button {...props}>{state.liveEdge ? 'LIVE' : 'Go live'}</button>} />
|
|
28
|
+
</Container>
|
|
29
|
+
</LiveVideoPlayer>
|
|
30
|
+
);
|
|
31
|
+
}
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
The `liveVideoFeatures` bundle mirrors [`videoFeatures`](../concepts/features.md) but adds the live feature and drops playback rate (not meaningful for live), quality selection, and audio-track selection. The live presets also ship skins without duration and current-time displays.
|
|
35
|
+
|
|
36
|
+
Both bundles are plain arrays, so extending one is a spread:
|
|
37
|
+
|
|
38
|
+
tsx
|
|
39
|
+
|
|
40
|
+
```
|
|
41
|
+
import { createPlayer, streamTypeFeature } from '@videojs/react';
|
|
42
|
+
import { liveVideoFeatures } from '@videojs/react/live-video';
|
|
43
|
+
|
|
44
|
+
const { Player } = createPlayer({ features: [...liveVideoFeatures, streamTypeFeature] });
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
## How it works
|
|
48
|
+
|
|
49
|
+
Two features describe liveness:
|
|
50
|
+
|
|
51
|
+
* The [stream type feature](../reference/feature-stream-type.md) reports `streamType`: `'live'`, `'on-demand'`, or `'unknown'`. Streaming media derives it from manifest metadata; plain media elements fall back to duration-based detection. `liveVideoFeatures` does not include it; add `streamTypeFeature` to the player’s features when you need `streamType`.
|
|
52
|
+
* The [live feature](../reference/feature-live.md) reports two values:
|
|
53
|
+
* `liveEdgeStart` is where “live” begins on the timeline. When the playhead is at or past this time, the viewer is watching live; behind it, they’re watching earlier moments of the stream.
|
|
54
|
+
* `targetLiveWindow` is how far back the stream lets viewers rewind. `0` means a plain live stream that stays at the edge. `Infinity` means full DVR: rewind as far as the recording goes. `NaN` means the stream isn’t live, or the player doesn’t know yet.
|
|
55
|
+
|
|
56
|
+
The [time feature](../reference/feature-time.md) adjusts for live playback: `duration` reports the live edge (the end of the seekable range) and keeps growing as the stream continues.
|
|
57
|
+
|
|
58
|
+
LiveButton reads this state: it renders as an active “go to live” control while playback is behind the edge, seeks to the edge on activation, and goes inactive at the edge.
|
|
59
|
+
|
|
60
|
+
## Availability and constraints
|
|
61
|
+
|
|
62
|
+
* `liveEdgeStart` and `targetLiveWindow` come from media that implements the live capability — the hls.js-based media elements. With plain media elements, stream type falls back to duration-based detection and `liveEdgeStart` stays `NaN`.
|
|
63
|
+
* Live playback drifts behind the edge when the network stalls or the tab is backgrounded. Always give users a path back to the edge.
|
|
64
|
+
* Seeking makes sense only for DVR streams (`targetLiveWindow` of `Infinity`). For standard-latency streams, omit the time slider.
|
|
65
|
+
* Playback rate control isn’t meaningful for live; `liveVideoFeatures` omits it.
|
|
66
|
+
|
|
67
|
+
## Common variations
|
|
68
|
+
|
|
69
|
+
### DVR: let users scrub back
|
|
70
|
+
|
|
71
|
+
For streams with a DVR window, keep a [TimeSlider](../reference/time-slider.md) in the UI. The slider tracks the sliding window automatically because `duration` follows the live edge.
|
|
72
|
+
|
|
73
|
+
### Switch UI by stream type
|
|
74
|
+
|
|
75
|
+
Render live or on-demand controls from `streamType` when one player handles both kinds of content. Add `streamTypeFeature` to the player’s features; `liveVideoFeatures` does not include it:
|
|
76
|
+
|
|
77
|
+
The preset `LiveVideoPlayer` comes with a fixed feature set. To change it, build the player yourself with [`createPlayer`](../reference/create-player.md) — the escape hatch for custom feature sets:
|
|
78
|
+
|
|
79
|
+
tsx
|
|
80
|
+
|
|
81
|
+
```
|
|
82
|
+
import { Container, createPlayer, LiveButton, streamTypeFeature } from '@videojs/react';
|
|
83
|
+
import { liveVideoFeatures } from '@videojs/react/live-video';
|
|
84
|
+
import { HlsJsVideo } from '@videojs/react/media/hlsjs-video';
|
|
85
|
+
|
|
86
|
+
const { Player, usePlayer } = createPlayer({ features: [...liveVideoFeatures, streamTypeFeature] });
|
|
87
|
+
|
|
88
|
+
function LiveBadge() {
|
|
89
|
+
const streamType = usePlayer((s) => s.streamType);
|
|
90
|
+
if (streamType !== 'live') return null;
|
|
91
|
+
|
|
92
|
+
return <LiveButton render={(props, state) => <button {...props}>{state.liveEdge ? 'LIVE' : 'Go live'}</button>} />;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
export default function App() {
|
|
96
|
+
return (
|
|
97
|
+
<Player>
|
|
98
|
+
<Container>
|
|
99
|
+
<HlsJsVideo src="https://your-stream.example.com/live.m3u8" autoPlay muted playsInline />
|
|
100
|
+
<LiveBadge />
|
|
101
|
+
</Container>
|
|
102
|
+
</Player>
|
|
103
|
+
);
|
|
104
|
+
}
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
## Troubleshooting
|
|
108
|
+
|
|
109
|
+
### The live badge never activates
|
|
110
|
+
|
|
111
|
+
`streamType` isn’t `'live'`. Confirm the player’s features include `streamTypeFeature` (`liveVideoFeatures` does not include it, so `streamType` reads as `undefined`), the source is a live manifest, and it plays through a live-capable media element such as [HlsJsVideo](../reference/hlsjs-video.md).
|
|
112
|
+
|
|
113
|
+
### Playback keeps falling behind the edge
|
|
114
|
+
|
|
115
|
+
Network throughput can’t sustain the stream, or the tab was backgrounded. LiveButton returns users to the edge; for lower drift, review the stream’s latency configuration on the encoder side.
|
|
116
|
+
|
|
117
|
+
### The time slider behaves oddly on a live stream
|
|
118
|
+
|
|
119
|
+
Standard-latency live streams have no meaningful seek range. Show the slider only for DVR streams (`targetLiveWindow` of `Infinity`).
|
|
120
|
+
|
|
121
|
+
## Related components
|
|
122
|
+
|
|
123
|
+
* [Time slider](../reference/time-slider.md)
|
|
124
|
+
* [Buffering indicator](../reference/buffering-indicator.md)
|
|
125
|
+
|
|
126
|
+
## Related API
|
|
127
|
+
|
|
128
|
+
* [Live feature](../reference/feature-live.md)
|
|
129
|
+
* [Stream type feature](../reference/feature-stream-type.md)
|
|
130
|
+
* [Time feature](../reference/feature-time.md)
|
|
131
|
+
* [HlsJsVideo](../reference/hlsjs-video.md)
|
|
132
|
+
|
|
133
|
+
## Related guides
|
|
134
|
+
|
|
135
|
+
* [Media sources](../concepts/media-sources.md)
|
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
# Remember user preferences
|
|
2
|
+
|
|
3
|
+
Persist volume, caption, and quality preferences across sessions by subscribing to player state.
|
|
4
|
+
|
|
5
|
+
Persist player preferences — volume, muted, captions, quality — so returning users get the setup they left with.
|
|
6
|
+
|
|
7
|
+
The player doesn’t persist preferences itself today. Player state gives you everything needed to wire persistence to the storage you choose — local storage, your backend, or per-profile settings.
|
|
8
|
+
|
|
9
|
+
## Recommended approach
|
|
10
|
+
|
|
11
|
+
Subscribe to the state you want to remember, write it to storage when it changes, and restore it once the store attaches to the media.
|
|
12
|
+
|
|
13
|
+
tsx
|
|
14
|
+
|
|
15
|
+
```
|
|
16
|
+
import { useEffect, useRef, useState } from 'react';
|
|
17
|
+
import { Container } from '@videojs/react';
|
|
18
|
+
import { usePlayer, Video, VideoPlayer } from '@videojs/react/video';
|
|
19
|
+
|
|
20
|
+
const STORAGE_KEY = 'player:volume';
|
|
21
|
+
|
|
22
|
+
// Local storage can be unavailable (private modes), so guard reads and writes.
|
|
23
|
+
function readSaved() {
|
|
24
|
+
try {
|
|
25
|
+
return JSON.parse(localStorage.getItem(STORAGE_KEY) ?? 'null');
|
|
26
|
+
} catch {
|
|
27
|
+
return null;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
function save(prefs: { volume: number; muted: boolean }) {
|
|
32
|
+
try {
|
|
33
|
+
localStorage.setItem(STORAGE_KEY, JSON.stringify(prefs));
|
|
34
|
+
} catch {
|
|
35
|
+
// Storage unavailable; skip persistence.
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
function VolumePersistence() {
|
|
40
|
+
const store = usePlayer();
|
|
41
|
+
const { volume, muted } = usePlayer((s) => ({ volume: s.volume, muted: s.muted }));
|
|
42
|
+
// Read the saved value once, before the save effect below can write.
|
|
43
|
+
const [saved] = useState(readSaved);
|
|
44
|
+
const restored = useRef(false);
|
|
45
|
+
|
|
46
|
+
// Save on change, once the restore has run.
|
|
47
|
+
useEffect(() => {
|
|
48
|
+
if (!restored.current) return;
|
|
49
|
+
save({ volume, muted });
|
|
50
|
+
}, [volume, muted]);
|
|
51
|
+
|
|
52
|
+
// Restore once the store attaches to the media; actions throw before that.
|
|
53
|
+
useEffect(() => {
|
|
54
|
+
const restore = () => {
|
|
55
|
+
if (!store.target) return false;
|
|
56
|
+
if (saved) {
|
|
57
|
+
store.setVolume(saved.volume);
|
|
58
|
+
// setVolume above zero unmutes, so mute again if that's the saved preference.
|
|
59
|
+
// At volume zero the player already counts as muted, and toggling would unmute.
|
|
60
|
+
if (saved.muted && saved.volume > 0) store.toggleMuted();
|
|
61
|
+
}
|
|
62
|
+
restored.current = true;
|
|
63
|
+
return true;
|
|
64
|
+
};
|
|
65
|
+
if (restore()) return;
|
|
66
|
+
const unsubscribe = store.subscribe(() => {
|
|
67
|
+
if (restore()) unsubscribe();
|
|
68
|
+
});
|
|
69
|
+
return unsubscribe;
|
|
70
|
+
}, [store, saved]);
|
|
71
|
+
|
|
72
|
+
return null;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
export default function App() {
|
|
76
|
+
return (
|
|
77
|
+
<VideoPlayer>
|
|
78
|
+
<Container>
|
|
79
|
+
<Video src="https://stream.mux.com/BV3YZtogl89mg9VcNBhhnHm02Y34zI1nlMuMQfAbl3dM/highest.mp4" playsInline />
|
|
80
|
+
<VolumePersistence />
|
|
81
|
+
</Container>
|
|
82
|
+
</VideoPlayer>
|
|
83
|
+
);
|
|
84
|
+
}
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
## How it works
|
|
88
|
+
|
|
89
|
+
* Player state is the single source of truth: it already reflects every change, whatever caused it — your UI, keyboard shortcuts, native controls, or scripts.
|
|
90
|
+
* `store.subscribe(callback)` fires on any state change. Notifications are batched per microtask, so rapid changes (a volume drag) produce one callback per tick, which keeps storage writes cheap. There is no per-key subscription on the store: read the state and diff the slice you care about.
|
|
91
|
+
* In React, `usePlayer(selector)` re-renders only when the selected value changes; pairing it with an effect is the idiomatic save path.
|
|
92
|
+
* Feature selectors exported by `@videojs/html` and `@videojs/react` (`selectVolume`, `selectTextTrack`, `selectQuality`, and the rest) read a feature’s slice from any store, returning `undefined` when the feature isn’t present.
|
|
93
|
+
* Restore through the feature actions (`setVolume`, `toggleMuted`, `selectSubtitlesTrack`, `selectVideoRendition`) rather than poking the media element, so state and UI stay consistent.
|
|
94
|
+
* Actions need an attached media target: calling one before the store attaches throws. Check `store.target` and defer the restore until it is set, as the examples do.
|
|
95
|
+
|
|
96
|
+
## Availability and constraints
|
|
97
|
+
|
|
98
|
+
* Nothing persists by default: volume resets to the media element’s value, captions to the track markup, quality to automatic, on every load.
|
|
99
|
+
* `setVolume` clamps to 0–1 and unmutes when setting a value above zero; restore volume first, then toggle `muted` back on when the saved preference is muted, as the examples do. Skip the toggle when the saved volume is zero: the player treats volume zero as muted, so toggling would unmute and raise the volume. Don’t compare against store state right after calling an action: notifications batch per microtask, so that state is still stale.
|
|
100
|
+
* Restore track and quality selections after the media exposes them: track and rendition lists arrive when the media loads, not at player creation. Subscribe and apply when the saved entry appears in the list.
|
|
101
|
+
* Programmatic volume control is unavailable on some platforms (after attach, iOS Safari reports `volumeAvailability: 'unsupported'`); volume persistence quietly does nothing there.
|
|
102
|
+
* Local storage is per-origin and can be unavailable (private modes, embedded contexts); guard reads and writes accordingly.
|
|
103
|
+
|
|
104
|
+
## Common variations
|
|
105
|
+
|
|
106
|
+
### Persist caption preference
|
|
107
|
+
|
|
108
|
+
Save the showing track’s `language` (not its generated id, which can change between sources), or `'off'` when the user turns captions off. Restoring is two phases: while the media loads, assert the saved preference whenever the track modes drift from it, because browsers can auto-enable a track of their own during loading. Once the media can play (`canPlay`), treat every change as the user’s choice and save it. A restore that re-runs forever would keep overriding the user; one that runs only once can get overridden by the browser.
|
|
109
|
+
|
|
110
|
+
tsx
|
|
111
|
+
|
|
112
|
+
```
|
|
113
|
+
function CaptionsPersistence() {
|
|
114
|
+
const store = usePlayer();
|
|
115
|
+
const { tracks, canPlay } = usePlayer((s) => ({ tracks: s.textTrackList, canPlay: s.canPlay }));
|
|
116
|
+
const [saved] = useState(() => localStorage.getItem('player:captions'));
|
|
117
|
+
const restored = useRef(false);
|
|
118
|
+
|
|
119
|
+
useEffect(() => {
|
|
120
|
+
const subtitles = tracks.filter((t) => t.kind === 'captions' || t.kind === 'subtitles');
|
|
121
|
+
if (!subtitles.length) return;
|
|
122
|
+
|
|
123
|
+
// Restore phase: assert the saved preference until the media can play.
|
|
124
|
+
if (!restored.current) {
|
|
125
|
+
const desired = saved === 'off' ? undefined : subtitles.find((t) => t.language === saved);
|
|
126
|
+
if (saved && (desired || saved === 'off')) {
|
|
127
|
+
const applied = subtitles.every((t) => (t.mode === 'showing') === (t.id === desired?.id));
|
|
128
|
+
if (!applied) {
|
|
129
|
+
store.selectSubtitlesTrack(desired?.id ?? 'off');
|
|
130
|
+
return;
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
if (!canPlay) return;
|
|
134
|
+
restored.current = true;
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
// Save phase: the showing track's language, or 'off'.
|
|
138
|
+
const showing = subtitles.find((t) => t.mode === 'showing');
|
|
139
|
+
localStorage.setItem('player:captions', showing ? showing.language : 'off');
|
|
140
|
+
}, [store, tracks, canPlay, saved]);
|
|
141
|
+
|
|
142
|
+
return null;
|
|
143
|
+
}
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
### Persist to your backend
|
|
147
|
+
|
|
148
|
+
Swap `localStorage` for an API call; the subscription pattern is identical. Debounce writes beyond the built-in microtask batching if your storage is remote.
|
|
149
|
+
|
|
150
|
+
## Troubleshooting
|
|
151
|
+
|
|
152
|
+
### The saved volume doesn’t apply
|
|
153
|
+
|
|
154
|
+
Restore runs before the store attaches, or the platform doesn’t allow programmatic volume (check `volumeAvailability`). Apply after `store.target` is set, as in the examples.
|
|
155
|
+
|
|
156
|
+
### The saved caption track doesn’t select
|
|
157
|
+
|
|
158
|
+
The track list wasn’t loaded yet when you restored, or you saved a generated track id instead of a stable property like `language`. React to `textTrackList` changes and match on language.
|
|
159
|
+
|
|
160
|
+
### Storage writes fire constantly while dragging the volume slider
|
|
161
|
+
|
|
162
|
+
Notifications batch per microtask, but a drag still produces many ticks. Debounce the write if the churn matters for your storage target.
|
|
163
|
+
|
|
164
|
+
## Related components
|
|
165
|
+
|
|
166
|
+
* [Volume slider](../reference/volume-slider.md)
|
|
167
|
+
* [Captions radio group](../reference/captions-radio-group.md)
|
|
168
|
+
* [Quality radio group](../reference/quality-radio-group.md)
|
|
169
|
+
|
|
170
|
+
## Related API
|
|
171
|
+
|
|
172
|
+
* [usePlayer](../reference/use-player.md)
|
|
173
|
+
* [useStore](../reference/use-store.md)
|
|
174
|
+
* [Volume feature](../reference/feature-volume.md)
|
|
175
|
+
* [Text track feature](../reference/feature-text-tracks.md)
|
|
176
|
+
|
|
177
|
+
## Related guides
|
|
178
|
+
|
|
179
|
+
* [Show captions and subtitles](./show-captions-and-subtitles.md)
|
|
180
|
+
* [Add a quality selector](./add-quality-selector.md)
|