@videojs/react 10.0.0-rc.2 → 10.0.0-rc.3
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/README.md +12 -2
- package/dist/default/extensions/google-cast/extension.js +0 -2
- package/dist/default/extensions/mux-data/extension.js +0 -2
- package/dist/default/i18n/context.js +25 -10
- package/dist/default/i18n/create-i18n.js +18 -4
- package/dist/default/i18n/get-provider-root-props.js +0 -2
- package/dist/default/i18n/locales/all/register.js +0 -2
- package/dist/default/i18n/locales/ar/register.js +0 -2
- package/dist/default/i18n/locales/az/register.js +0 -2
- package/dist/default/i18n/locales/bg/register.js +0 -2
- package/dist/default/i18n/locales/bn/register.js +0 -2
- package/dist/default/i18n/locales/bs/register.js +0 -2
- package/dist/default/i18n/locales/ca/register.js +0 -2
- package/dist/default/i18n/locales/cs/register.js +0 -2
- package/dist/default/i18n/locales/cy/register.js +0 -2
- package/dist/default/i18n/locales/da/register.js +0 -2
- package/dist/default/i18n/locales/de/register.js +0 -2
- package/dist/default/i18n/locales/el/register.js +0 -2
- package/dist/default/i18n/locales/en/register.js +0 -2
- package/dist/default/i18n/locales/es/register.js +0 -2
- package/dist/default/i18n/locales/et/register.js +0 -2
- package/dist/default/i18n/locales/eu/register.js +0 -2
- package/dist/default/i18n/locales/fa/register.js +0 -2
- package/dist/default/i18n/locales/fi/register.js +0 -2
- package/dist/default/i18n/locales/fr/register.js +0 -2
- package/dist/default/i18n/locales/gd/register.js +0 -2
- package/dist/default/i18n/locales/gl/register.js +0 -2
- package/dist/default/i18n/locales/he/register.js +0 -2
- package/dist/default/i18n/locales/hi/register.js +0 -2
- package/dist/default/i18n/locales/hr/register.js +0 -2
- package/dist/default/i18n/locales/hu/register.js +0 -2
- package/dist/default/i18n/locales/id/register.js +0 -2
- package/dist/default/i18n/locales/it/register.js +0 -2
- package/dist/default/i18n/locales/ja/register.js +0 -2
- package/dist/default/i18n/locales/ko/register.js +0 -2
- package/dist/default/i18n/locales/lt/register.js +0 -2
- package/dist/default/i18n/locales/lv/register.js +0 -2
- package/dist/default/i18n/locales/mr/register.js +0 -2
- package/dist/default/i18n/locales/nb/register.js +0 -2
- package/dist/default/i18n/locales/ne/register.js +0 -2
- package/dist/default/i18n/locales/nl/register.js +0 -2
- package/dist/default/i18n/locales/nn/register.js +0 -2
- package/dist/default/i18n/locales/oc/register.js +0 -2
- package/dist/default/i18n/locales/pl/register.js +0 -2
- package/dist/default/i18n/locales/pt/register.js +0 -2
- package/dist/default/i18n/locales/pt-BR/register.js +0 -2
- package/dist/default/i18n/locales/pt-PT/register.js +0 -2
- package/dist/default/i18n/locales/ro/register.js +0 -2
- package/dist/default/i18n/locales/ru/register.js +0 -2
- package/dist/default/i18n/locales/sk/register.js +0 -2
- package/dist/default/i18n/locales/sl/register.js +0 -2
- package/dist/default/i18n/locales/sr/register.js +0 -2
- package/dist/default/i18n/locales/sv/register.js +0 -2
- package/dist/default/i18n/locales/te/register.js +0 -2
- package/dist/default/i18n/locales/th/register.js +0 -2
- package/dist/default/i18n/locales/tr/register.js +0 -2
- package/dist/default/i18n/locales/uk/register.js +0 -2
- package/dist/default/i18n/locales/vi/register.js +0 -2
- package/dist/default/i18n/locales/zh/register.js +0 -2
- package/dist/default/i18n/locales/zh-CN/register.js +0 -2
- package/dist/default/i18n/locales/zh-TW/register.js +0 -2
- package/dist/default/i18n/text.js +38 -8
- package/dist/default/i18n/use-ambient-lang.js +14 -7
- package/dist/default/i18n/use-lang-root-element.js +0 -2
- package/dist/default/i18n/use-lazy-translations.js +54 -25
- package/dist/default/i18n/use-locale-root-notifications.js +0 -2
- package/dist/default/i18n/use-merged-translations.js +32 -14
- package/dist/default/i18n/use-registry-epoch.js +18 -6
- package/dist/default/icons/dist/react/default/airplay-enter.js +0 -2
- package/dist/default/icons/dist/react/default/airplay-exit.js +0 -2
- package/dist/default/icons/dist/react/default/captions-off.js +0 -2
- package/dist/default/icons/dist/react/default/captions-on.js +0 -2
- package/dist/default/icons/dist/react/default/cast-enter.js +0 -2
- package/dist/default/icons/dist/react/default/cast-exit.js +0 -2
- package/dist/default/icons/dist/react/default/check.js +0 -2
- package/dist/default/icons/dist/react/default/chevron.js +0 -2
- package/dist/default/icons/dist/react/default/fullscreen-enter.js +0 -2
- package/dist/default/icons/dist/react/default/fullscreen-exit.js +0 -2
- package/dist/default/icons/dist/react/default/gear.js +0 -2
- package/dist/default/icons/dist/react/default/pause.js +0 -2
- package/dist/default/icons/dist/react/default/pip-enter.js +0 -2
- package/dist/default/icons/dist/react/default/pip-exit.js +0 -2
- package/dist/default/icons/dist/react/default/play.js +0 -2
- package/dist/default/icons/dist/react/default/quality.js +0 -2
- package/dist/default/icons/dist/react/default/restart.js +0 -2
- package/dist/default/icons/dist/react/default/seek.js +0 -2
- package/dist/default/icons/dist/react/default/speech.js +0 -2
- package/dist/default/icons/dist/react/default/speed.js +0 -2
- package/dist/default/icons/dist/react/default/spinner.js +0 -2
- package/dist/default/icons/dist/react/default/switches.js +0 -2
- package/dist/default/icons/dist/react/default/volume-high.js +0 -2
- package/dist/default/icons/dist/react/default/volume-low.js +0 -2
- package/dist/default/icons/dist/react/default/volume-off.js +0 -2
- package/dist/default/icons/dist/react/minimal/airplay-enter.js +0 -2
- package/dist/default/icons/dist/react/minimal/airplay-exit.js +0 -2
- package/dist/default/icons/dist/react/minimal/captions-off.js +0 -2
- package/dist/default/icons/dist/react/minimal/captions-on.js +0 -2
- package/dist/default/icons/dist/react/minimal/cast-enter.js +0 -2
- package/dist/default/icons/dist/react/minimal/cast-exit.js +0 -2
- package/dist/default/icons/dist/react/minimal/check.js +0 -2
- package/dist/default/icons/dist/react/minimal/chevron.js +0 -2
- package/dist/default/icons/dist/react/minimal/fullscreen-enter.js +0 -2
- package/dist/default/icons/dist/react/minimal/fullscreen-exit.js +0 -2
- package/dist/default/icons/dist/react/minimal/gear.js +0 -2
- package/dist/default/icons/dist/react/minimal/pause.js +0 -2
- package/dist/default/icons/dist/react/minimal/pip-enter.js +0 -2
- package/dist/default/icons/dist/react/minimal/pip-exit.js +0 -2
- package/dist/default/icons/dist/react/minimal/play.js +0 -2
- package/dist/default/icons/dist/react/minimal/quality.js +0 -2
- package/dist/default/icons/dist/react/minimal/restart.js +0 -2
- package/dist/default/icons/dist/react/minimal/seek.js +0 -2
- package/dist/default/icons/dist/react/minimal/speech.js +0 -2
- package/dist/default/icons/dist/react/minimal/speed.js +0 -2
- package/dist/default/icons/dist/react/minimal/spinner.js +0 -2
- package/dist/default/icons/dist/react/minimal/switches.js +0 -2
- package/dist/default/icons/dist/react/minimal/volume-high.js +0 -2
- package/dist/default/icons/dist/react/minimal/volume-low.js +0 -2
- package/dist/default/icons/dist/react/minimal/volume-off.js +0 -2
- package/dist/default/index.js +2 -1
- package/dist/default/internal/skins/default-audio/components/buttons/mute-button.js +63 -13
- package/dist/default/internal/skins/default-audio/components/buttons/play-button.js +63 -13
- package/dist/default/internal/skins/default-audio/components/buttons/seek-button.js +96 -15
- package/dist/default/internal/skins/default-audio/components/display/buffering-indicator.js +52 -0
- package/dist/default/internal/skins/default-audio/components/menus/radio-item.js +42 -9
- package/dist/default/internal/skins/default-audio/components/menus/volume-popover.js +101 -0
- package/dist/default/internal/skins/default-audio/layout/controls.js +111 -0
- package/dist/default/internal/skins/default-audio/skin.js +74 -21
- package/dist/default/internal/skins/default-audio/skins/shared/audio/buttons/play-button.js +62 -0
- package/dist/default/internal/skins/default-audio/skins/shared/audio/menus/settings-menu.js +98 -0
- package/dist/default/internal/skins/default-live-audio/components/buttons/mute-button.js +63 -13
- package/dist/default/internal/skins/default-live-audio/components/buttons/play-button.js +63 -13
- package/dist/default/internal/skins/default-live-audio/components/display/buffering-indicator.js +52 -0
- package/dist/default/internal/skins/default-live-audio/components/menus/volume-popover.js +101 -0
- package/dist/default/internal/skins/default-live-audio/layout/controls.js +58 -0
- package/dist/default/internal/skins/default-live-audio/skin.js +74 -21
- package/dist/default/internal/skins/default-live-audio/skins/shared/audio/buttons/play-button.js +62 -0
- package/dist/default/internal/skins/default-live-video/components/buttons/airplay-button.js +54 -9
- package/dist/default/internal/skins/default-live-video/components/buttons/captions-button.js +54 -9
- package/dist/default/internal/skins/default-live-video/components/buttons/cast-button.js +54 -9
- package/dist/default/internal/skins/default-live-video/components/buttons/fullscreen-button.js +54 -9
- package/dist/default/internal/skins/default-live-video/components/buttons/mute-button.js +63 -13
- package/dist/default/internal/skins/default-live-video/components/buttons/pip-button.js +54 -9
- package/dist/default/internal/skins/default-live-video/components/buttons/play-button.js +63 -13
- package/dist/default/internal/skins/default-live-video/components/display/buffering-indicator.js +52 -0
- package/dist/default/internal/skins/default-live-video/components/display/status-indicator.js +128 -0
- package/dist/default/internal/skins/default-live-video/components/display/volume-indicator.js +64 -0
- package/dist/default/internal/skins/default-live-video/components/menus/captions-menu.js +71 -17
- package/dist/default/internal/skins/default-live-video/components/menus/radio-item.js +42 -9
- package/dist/default/internal/skins/default-live-video/components/menus/volume-popover.js +101 -0
- package/dist/default/internal/skins/default-live-video/layout/controls.js +117 -0
- package/dist/default/internal/skins/default-live-video/skin.js +104 -27
- package/dist/default/internal/skins/default-live-video/skins/shared/live-video/display/status-indicators.js +72 -0
- package/dist/default/internal/skins/default-video/components/buttons/airplay-button.js +54 -9
- package/dist/default/internal/skins/default-video/components/buttons/captions-button.js +54 -9
- package/dist/default/internal/skins/default-video/components/buttons/cast-button.js +54 -9
- package/dist/default/internal/skins/default-video/components/buttons/fullscreen-button.js +54 -9
- package/dist/default/internal/skins/default-video/components/buttons/mute-button.js +63 -13
- package/dist/default/internal/skins/default-video/components/buttons/pip-button.js +54 -9
- package/dist/default/internal/skins/default-video/components/buttons/play-button.js +63 -13
- package/dist/default/internal/skins/default-video/components/display/buffering-indicator.js +52 -0
- package/dist/default/internal/skins/default-video/components/display/seek-indicator.js +59 -0
- package/dist/default/internal/skins/default-video/components/display/status-indicator.js +128 -0
- package/dist/default/internal/skins/default-video/components/display/volume-indicator.js +64 -0
- package/dist/default/internal/skins/default-video/components/menus/audio-track-menu.js +59 -17
- package/dist/default/internal/skins/default-video/components/menus/captions-submenu.js +59 -17
- package/dist/default/internal/skins/default-video/components/menus/menu-chevron.js +25 -4
- package/dist/default/internal/skins/default-video/components/menus/playback-rate-submenu.js +59 -17
- package/dist/default/internal/skins/default-video/components/menus/quality-menu.js +65 -23
- package/dist/default/internal/skins/default-video/components/menus/radio-item.js +42 -9
- package/dist/default/internal/skins/default-video/components/menus/settings-menu.js +89 -23
- package/dist/default/internal/skins/default-video/components/menus/volume-popover.js +101 -0
- package/dist/default/internal/skins/default-video/components/sliders/time-slider.js +132 -38
- package/dist/default/internal/skins/default-video/layout/controls.js +172 -0
- package/dist/default/internal/skins/default-video/skin.js +113 -27
- package/dist/default/internal/skins/default-video/skins/shared/video/display/status-indicators.js +78 -0
- package/dist/default/internal/skins/default-video/skins/shared/video/menus/settings-menu.js +54 -0
- package/dist/default/internal/skins/minimal-audio/components/buttons/mute-button.js +64 -14
- package/dist/default/internal/skins/minimal-audio/components/buttons/play-button.js +64 -14
- package/dist/default/internal/skins/minimal-audio/components/buttons/seek-button.js +97 -16
- package/dist/default/internal/skins/minimal-audio/components/display/buffering-indicator.js +52 -0
- package/dist/default/internal/skins/minimal-audio/components/menus/radio-item.js +42 -9
- package/dist/default/internal/skins/minimal-audio/components/menus/volume-popover.js +101 -0
- package/dist/default/internal/skins/minimal-audio/layout/controls.js +104 -0
- package/dist/default/internal/skins/minimal-audio/skin.js +74 -21
- package/dist/default/internal/skins/minimal-audio/skins/shared/audio/buttons/play-button.js +62 -0
- package/dist/default/internal/skins/minimal-audio/skins/shared/audio/menus/settings-menu.js +98 -0
- package/dist/default/internal/skins/minimal-live-audio/components/buttons/mute-button.js +64 -14
- package/dist/default/internal/skins/minimal-live-audio/components/buttons/play-button.js +64 -14
- package/dist/default/internal/skins/minimal-live-audio/components/display/buffering-indicator.js +52 -0
- package/dist/default/internal/skins/minimal-live-audio/components/menus/volume-popover.js +101 -0
- package/dist/default/internal/skins/minimal-live-audio/layout/controls.js +63 -0
- package/dist/default/internal/skins/minimal-live-audio/skin.js +74 -21
- package/dist/default/internal/skins/minimal-live-audio/skins/shared/audio/buttons/play-button.js +62 -0
- package/dist/default/internal/skins/minimal-live-video/components/buttons/airplay-button.js +55 -10
- package/dist/default/internal/skins/minimal-live-video/components/buttons/captions-button.js +55 -10
- package/dist/default/internal/skins/minimal-live-video/components/buttons/cast-button.js +55 -10
- package/dist/default/internal/skins/minimal-live-video/components/buttons/fullscreen-button.js +55 -10
- package/dist/default/internal/skins/minimal-live-video/components/buttons/mute-button.js +64 -14
- package/dist/default/internal/skins/minimal-live-video/components/buttons/pip-button.js +55 -10
- package/dist/default/internal/skins/minimal-live-video/components/buttons/play-button.js +64 -14
- package/dist/default/internal/skins/minimal-live-video/components/display/buffering-indicator.js +52 -0
- package/dist/default/internal/skins/minimal-live-video/components/display/status-indicator.js +128 -0
- package/dist/default/internal/skins/minimal-live-video/components/display/volume-indicator.js +64 -0
- package/dist/default/internal/skins/minimal-live-video/components/menus/captions-menu.js +71 -17
- package/dist/default/internal/skins/minimal-live-video/components/menus/radio-item.js +42 -9
- package/dist/default/internal/skins/minimal-live-video/components/menus/volume-popover.js +101 -0
- package/dist/default/internal/skins/minimal-live-video/layout/controls.js +116 -0
- package/dist/default/internal/skins/minimal-live-video/skin.js +104 -27
- package/dist/default/internal/skins/minimal-live-video/skins/shared/live-video/display/status-indicators.js +72 -0
- package/dist/default/internal/skins/minimal-video/components/buttons/airplay-button.js +55 -10
- package/dist/default/internal/skins/minimal-video/components/buttons/captions-button.js +55 -10
- package/dist/default/internal/skins/minimal-video/components/buttons/cast-button.js +55 -10
- package/dist/default/internal/skins/minimal-video/components/buttons/fullscreen-button.js +55 -10
- package/dist/default/internal/skins/minimal-video/components/buttons/mute-button.js +64 -14
- package/dist/default/internal/skins/minimal-video/components/buttons/pip-button.js +55 -10
- package/dist/default/internal/skins/minimal-video/components/buttons/play-button.js +64 -14
- package/dist/default/internal/skins/minimal-video/components/display/buffering-indicator.js +52 -0
- package/dist/default/internal/skins/minimal-video/components/display/seek-indicator.js +59 -0
- package/dist/default/internal/skins/minimal-video/components/display/status-indicator.js +128 -0
- package/dist/default/internal/skins/minimal-video/components/display/volume-indicator.js +64 -0
- package/dist/default/internal/skins/minimal-video/components/menus/audio-track-menu.js +59 -17
- package/dist/default/internal/skins/minimal-video/components/menus/captions-submenu.js +59 -17
- package/dist/default/internal/skins/minimal-video/components/menus/menu-chevron.js +25 -4
- package/dist/default/internal/skins/minimal-video/components/menus/playback-rate-submenu.js +59 -17
- package/dist/default/internal/skins/minimal-video/components/menus/quality-menu.js +65 -23
- package/dist/default/internal/skins/minimal-video/components/menus/radio-item.js +42 -9
- package/dist/default/internal/skins/minimal-video/components/menus/settings-menu.js +90 -24
- package/dist/default/internal/skins/minimal-video/components/menus/volume-popover.js +101 -0
- package/dist/default/internal/skins/minimal-video/components/sliders/time-slider.js +133 -39
- package/dist/default/internal/skins/minimal-video/layout/controls.js +166 -0
- package/dist/default/internal/skins/minimal-video/skin.js +113 -27
- package/dist/default/internal/skins/minimal-video/skins/shared/video/display/status-indicators.js +78 -0
- package/dist/default/internal/skins/minimal-video/skins/shared/video/menus/settings-menu.js +54 -0
- package/dist/default/internal/skins/shared/components/behaviors/status-announcer.js +45 -0
- package/dist/default/internal/skins/shared/components/buttons/button-tooltip.js +62 -10
- package/dist/default/internal/skins/shared/components/buttons/button.js +31 -7
- package/dist/default/internal/skins/shared/components/buttons/live-button.js +43 -8
- package/dist/default/internal/skins/shared/components/buttons/playback-rate-button.js +43 -8
- package/dist/default/internal/skins/shared/components/dialogs/error-dialog.js +44 -0
- package/dist/default/internal/skins/shared/components/display/poster.js +64 -0
- package/dist/default/internal/skins/shared/components/display/title.js +45 -0
- package/dist/default/internal/skins/shared/components/layout/container.js +36 -8
- package/dist/default/internal/skins/shared/components/sliders/slider.js +121 -22
- package/dist/default/internal/skins/shared/components/sliders/volume-slider.js +57 -12
- package/dist/default/internal/skins/shared/skins/shared/audio/dialogs/error-dialog.js +44 -0
- package/dist/default/internal/skins/shared/skins/shared/audio/sliders/time-slider.js +108 -0
- package/dist/default/internal/skins/shared/skins/shared/behaviors/live-playback-hotkeys.js +51 -0
- package/dist/default/internal/skins/shared/skins/shared/behaviors/playback-hotkeys.js +98 -0
- package/dist/default/internal/skins/shared/skins/shared/live-video/behaviors/gestures.js +45 -0
- package/dist/default/internal/skins/shared/skins/shared/live-video/behaviors/hotkeys.js +43 -0
- package/dist/default/internal/skins/shared/skins/shared/video/behaviors/gestures.js +57 -0
- package/dist/default/internal/skins/shared/skins/shared/video/behaviors/hotkeys.js +43 -0
- package/dist/default/media/audio.js +27 -8
- package/dist/default/media/background-video/adapter.js +43 -19
- package/dist/default/media/cloudflare-video/adapter.js +63 -27
- package/dist/default/media/dash-video/adapter.js +27 -8
- package/dist/default/media/hls-audio/adapter.js +27 -8
- package/dist/default/media/hls-background-video/adapter.js +50 -19
- package/dist/default/media/hls-video/adapter.js +27 -8
- package/dist/default/media/hlsjs-video/adapter.js +27 -8
- package/dist/default/media/mux-audio/hls-js.js +27 -8
- package/dist/default/media/mux-audio/spf.js +27 -8
- package/dist/default/media/mux-video/hls-js.js +34 -8
- package/dist/default/media/mux-video/spf.js +34 -8
- package/dist/default/media/mux-video/storyboard.js +49 -29
- package/dist/default/media/native-hls-video/adapter.js +27 -8
- package/dist/default/media/shaka-video/adapter.js +27 -8
- package/dist/default/media/spotify-audio/adapter.js +83 -27
- package/dist/default/media/tiktok-video/adapter.js +63 -27
- package/dist/default/media/twitch-video/adapter.js +63 -27
- package/dist/default/media/video.js +27 -8
- package/dist/default/media/vimeo-video/adapter.js +62 -26
- package/dist/default/media/wistia-video/adapter.js +95 -13
- package/dist/default/media/youtube-video/adapter.js +62 -26
- package/dist/default/player/container.js +153 -38
- package/dist/default/player/context.js +15 -7
- package/dist/default/player/create-player.js +101 -50
- package/dist/default/player/popup-group-context.js +15 -7
- package/dist/default/presets/audio/index.js +0 -2
- package/dist/default/presets/audio/minimal-skin.css +638 -399
- package/dist/default/presets/audio/minimal-skin.js +10 -4
- package/dist/default/presets/audio/player.js +0 -2
- package/dist/default/presets/audio/skin.css +384 -190
- package/dist/default/presets/audio/skin.js +10 -4
- package/dist/default/presets/background/index.js +0 -2
- package/dist/default/presets/background/player.js +0 -2
- package/dist/default/presets/background/skin.js +47 -9
- package/dist/default/presets/live-audio/index.js +0 -2
- package/dist/default/presets/live-audio/minimal-skin.css +433 -353
- package/dist/default/presets/live-audio/minimal-skin.js +10 -4
- package/dist/default/presets/live-audio/player.js +0 -2
- package/dist/default/presets/live-audio/skin.css +196 -144
- package/dist/default/presets/live-audio/skin.js +10 -4
- package/dist/default/presets/live-video/index.js +0 -2
- package/dist/default/presets/live-video/minimal-skin.css +860 -732
- package/dist/default/presets/live-video/minimal-skin.js +10 -4
- package/dist/default/presets/live-video/player.js +0 -2
- package/dist/default/presets/live-video/skin.css +695 -589
- package/dist/default/presets/live-video/skin.js +10 -4
- package/dist/default/presets/video/index.js +0 -2
- package/dist/default/presets/video/minimal-skin.css +717 -623
- package/dist/default/presets/video/minimal-skin.js +10 -4
- package/dist/default/presets/video/player.js +0 -2
- package/dist/default/presets/video/skin.css +480 -416
- package/dist/default/presets/video/skin.js +10 -4
- package/dist/default/ui/airplay-button/component.js +0 -2
- package/dist/default/ui/alert-dialog/index.parts.js +0 -2
- package/dist/default/ui/alert-dialog/root.js +37 -13
- package/dist/default/ui/audio-track/use-audio-track-options.js +0 -2
- package/dist/default/ui/audio-track-radio-group/component.js +188 -42
- package/dist/default/ui/audio-track-radio-group/index.parts.js +0 -2
- package/dist/default/ui/buffering-indicator/component.js +0 -2
- package/dist/default/ui/captions-button/component.js +0 -2
- package/dist/default/ui/captions-radio-group/component.js +188 -42
- package/dist/default/ui/captions-radio-group/index.parts.js +0 -2
- package/dist/default/ui/captions-radio-group/use-captions-options.js +0 -2
- package/dist/default/ui/cast-button/component.js +0 -2
- package/dist/default/ui/controls/backdrop.js +0 -2
- package/dist/default/ui/controls/content.js +0 -2
- package/dist/default/ui/controls/context.js +0 -2
- package/dist/default/ui/controls/group.js +0 -2
- package/dist/default/ui/controls/index.parts.js +0 -2
- package/dist/default/ui/controls/root.js +1 -2
- package/dist/default/ui/create-context-part.js +0 -2
- package/dist/default/ui/create-media-button.js +0 -2
- package/dist/default/ui/dialog/backdrop.js +0 -2
- package/dist/default/ui/dialog/close.js +0 -2
- package/dist/default/ui/dialog/context.js +0 -2
- package/dist/default/ui/dialog/description.js +0 -2
- package/dist/default/ui/dialog/index.parts.js +0 -2
- package/dist/default/ui/dialog/popup.js +0 -2
- package/dist/default/ui/dialog/root.js +23 -10
- package/dist/default/ui/dialog/title.js +0 -2
- package/dist/default/ui/dialog/trigger.js +0 -2
- package/dist/default/ui/dialog/use-dialog-root.js +0 -2
- package/dist/default/ui/error-dialog/close.js +0 -2
- package/dist/default/ui/error-dialog/context.js +0 -2
- package/dist/default/ui/error-dialog/description.js +0 -2
- package/dist/default/ui/error-dialog/index.parts.js +0 -2
- package/dist/default/ui/error-dialog/root.js +51 -21
- package/dist/default/ui/error-dialog/title.js +0 -2
- package/dist/default/ui/fullscreen-button/component.js +0 -2
- package/dist/default/ui/gesture/component.js +50 -30
- package/dist/default/ui/gesture/use-doubletap-gesture.js +39 -13
- package/dist/default/ui/gesture/use-tap-gesture.js +39 -13
- package/dist/default/ui/hooks/create-radio-options-hook.js +0 -2
- package/dist/default/ui/hooks/use-button.js +29 -9
- package/dist/default/ui/hooks/use-positioned-state.js +69 -31
- package/dist/default/ui/hooks/use-slider.js +0 -2
- package/dist/default/ui/hotkey/component.js +46 -27
- package/dist/default/ui/hotkey/use-hotkey-shortcut.js +36 -17
- package/dist/default/ui/hotkey/use-hotkey.js +40 -16
- package/dist/default/ui/input-indicator/use-indicator-visibility.js +38 -13
- package/dist/default/ui/input-indicator/use-input-action-subscription.js +22 -8
- package/dist/default/ui/input-indicator/use-input-indicator-root.js +38 -7
- package/dist/default/ui/input-indicator/use-rendered-indicator-state.js +0 -2
- package/dist/default/ui/live-button/component.js +0 -2
- package/dist/default/ui/menu/checkbox-item.js +0 -2
- package/dist/default/ui/menu/content.js +86 -55
- package/dist/default/ui/menu/context.js +38 -18
- package/dist/default/ui/menu/group-label.js +0 -2
- package/dist/default/ui/menu/group.js +40 -12
- package/dist/default/ui/menu/index.parts.js +0 -2
- package/dist/default/ui/menu/item-indicator.js +0 -2
- package/dist/default/ui/menu/item.js +103 -40
- package/dist/default/ui/menu/keyboard.js +0 -2
- package/dist/default/ui/menu/popup.js +80 -32
- package/dist/default/ui/menu/radio-group.js +54 -18
- package/dist/default/ui/menu/radio-item.js +81 -47
- package/dist/default/ui/menu/root.js +0 -2
- package/dist/default/ui/menu/separator.js +0 -2
- package/dist/default/ui/menu/trigger.js +194 -111
- package/dist/default/ui/menu/use-menu-group.js +38 -14
- package/dist/default/ui/mute-button/component.js +0 -2
- package/dist/default/ui/pip-button/component.js +0 -2
- package/dist/default/ui/play-button/component.js +0 -2
- package/dist/default/ui/playback-rate/use-playback-rate-options.js +0 -2
- package/dist/default/ui/playback-rate-button/component.js +0 -2
- package/dist/default/ui/playback-rate-radio-group/component.js +188 -42
- package/dist/default/ui/playback-rate-radio-group/index.parts.js +0 -2
- package/dist/default/ui/popover/arrow.js +0 -2
- package/dist/default/ui/popover/context.js +0 -2
- package/dist/default/ui/popover/index.parts.js +0 -2
- package/dist/default/ui/popover/popup.js +47 -22
- package/dist/default/ui/popover/root.js +0 -2
- package/dist/default/ui/popover/trigger.js +0 -2
- package/dist/default/ui/popover/use-popup-position.js +54 -22
- package/dist/default/ui/poster/context.js +15 -8
- package/dist/default/ui/poster/image.js +60 -32
- package/dist/default/ui/poster/index.parts.js +0 -2
- package/dist/default/ui/poster/root.js +4 -3
- package/dist/default/ui/quality/use-quality-options.js +0 -2
- package/dist/default/ui/quality-radio-group/component.js +188 -42
- package/dist/default/ui/quality-radio-group/index.parts.js +0 -2
- package/dist/default/ui/seek-button/component.js +0 -2
- package/dist/default/ui/seek-indicator/context.js +15 -7
- package/dist/default/ui/seek-indicator/index.parts.js +0 -2
- package/dist/default/ui/seek-indicator/root.js +40 -15
- package/dist/default/ui/seek-indicator/value.js +0 -2
- package/dist/default/ui/slider/buffer.js +0 -2
- package/dist/default/ui/slider/context.js +47 -10
- package/dist/default/ui/slider/fill.js +0 -2
- package/dist/default/ui/slider/index.parts.js +0 -2
- package/dist/default/ui/slider/preview.js +0 -2
- package/dist/default/ui/slider/root.js +156 -49
- package/dist/default/ui/slider/thumb.js +0 -2
- package/dist/default/ui/slider/thumbnail/index.parts.js +0 -2
- package/dist/default/ui/slider/thumbnail/root.js +15 -7
- package/dist/default/ui/slider/track.js +0 -2
- package/dist/default/ui/slider/value.js +0 -2
- package/dist/default/ui/status-announcer/component.js +0 -2
- package/dist/default/ui/status-indicator/context.js +15 -7
- package/dist/default/ui/status-indicator/index.parts.js +0 -2
- package/dist/default/ui/status-indicator/root.js +57 -19
- package/dist/default/ui/status-indicator/value.js +0 -2
- package/dist/default/ui/thumbnail/context.js +15 -7
- package/dist/default/ui/thumbnail/image.js +0 -2
- package/dist/default/ui/thumbnail/index.parts.js +0 -2
- package/dist/default/ui/thumbnail/root.js +3 -3
- package/dist/default/ui/time/group.js +0 -2
- package/dist/default/ui/time/index.parts.js +0 -2
- package/dist/default/ui/time/separator.js +0 -2
- package/dist/default/ui/time/value.js +0 -2
- package/dist/default/ui/time-slider/chapter-title.js +0 -2
- package/dist/default/ui/time-slider/chapters.js +117 -29
- package/dist/default/ui/time-slider/index.parts.js +0 -2
- package/dist/default/ui/time-slider/root.js +220 -71
- package/dist/default/ui/time-slider/segments.js +0 -2
- package/dist/default/ui/title/component.js +5 -10
- package/dist/default/ui/tooltip/arrow.js +0 -2
- package/dist/default/ui/tooltip/context.js +0 -2
- package/dist/default/ui/tooltip/group-context.js +0 -2
- package/dist/default/ui/tooltip/index.parts.js +0 -2
- package/dist/default/ui/tooltip/label.js +0 -2
- package/dist/default/ui/tooltip/popup.js +55 -24
- package/dist/default/ui/tooltip/provider.js +34 -12
- package/dist/default/ui/tooltip/root.js +0 -2
- package/dist/default/ui/tooltip/shortcut.js +0 -2
- package/dist/default/ui/tooltip/trigger.js +0 -2
- package/dist/default/ui/volume-indicator/context.js +15 -7
- package/dist/default/ui/volume-indicator/fill.js +0 -2
- package/dist/default/ui/volume-indicator/index.parts.js +0 -2
- package/dist/default/ui/volume-indicator/root.js +55 -18
- package/dist/default/ui/volume-indicator/value.js +0 -2
- package/dist/default/ui/volume-popover/context.js +0 -2
- package/dist/default/ui/volume-popover/index.parts.js +0 -2
- package/dist/default/ui/volume-popover/popup.js +21 -7
- package/dist/default/ui/volume-popover/root.js +49 -14
- package/dist/default/ui/volume-popover/trigger.js +0 -2
- package/dist/default/ui/volume-slider/index.parts.js +0 -2
- package/dist/default/ui/volume-slider/root.js +0 -2
- package/dist/default/utils/merge-props.js +0 -2
- package/dist/default/utils/use-attach-media.js +64 -9
- package/dist/default/utils/use-composed-refs.js +0 -2
- package/dist/default/utils/use-destroy.js +27 -13
- package/dist/default/utils/use-force-render.js +4 -3
- package/dist/default/utils/use-latest-ref.js +0 -2
- package/dist/default/utils/use-media-events.js +105 -0
- package/dist/default/utils/use-media-extension.js +26 -7
- package/dist/default/utils/use-media-instance.js +28 -7
- package/dist/default/utils/use-render.js +50 -5
- package/dist/default/utils/use-safe-id.js +10 -3
- package/dist/default/utils/use-sync-props.js +0 -2
- package/dist/dev/i18n/context.js +25 -8
- package/dist/dev/i18n/context.js.map +1 -1
- package/dist/dev/i18n/create-i18n.js +18 -2
- package/dist/dev/i18n/create-i18n.js.map +1 -1
- package/dist/dev/i18n/text.js +38 -6
- package/dist/dev/i18n/text.js.map +1 -1
- package/dist/dev/i18n/use-ambient-lang.js +14 -5
- package/dist/dev/i18n/use-ambient-lang.js.map +1 -1
- package/dist/dev/i18n/use-lazy-translations.js +54 -23
- package/dist/dev/i18n/use-lazy-translations.js.map +1 -1
- package/dist/dev/i18n/use-merged-translations.js +32 -12
- package/dist/dev/i18n/use-merged-translations.js.map +1 -1
- package/dist/dev/i18n/use-registry-epoch.js +18 -4
- package/dist/dev/i18n/use-registry-epoch.js.map +1 -1
- package/dist/dev/index.d.ts +4 -2
- package/dist/dev/index.js +2 -1
- package/dist/dev/internal/skins/default-audio/components/buttons/mute-button.js +63 -11
- package/dist/dev/internal/skins/default-audio/components/buttons/mute-button.js.map +1 -1
- package/dist/dev/internal/skins/default-audio/components/buttons/play-button.js +63 -11
- package/dist/dev/internal/skins/default-audio/components/buttons/play-button.js.map +1 -1
- package/dist/dev/internal/skins/default-audio/components/buttons/seek-button.js +96 -13
- package/dist/dev/internal/skins/default-audio/components/buttons/seek-button.js.map +1 -1
- package/dist/dev/internal/skins/default-audio/components/display/buffering-indicator.js +54 -0
- package/dist/dev/internal/skins/default-audio/components/display/buffering-indicator.js.map +1 -0
- package/dist/dev/internal/skins/default-audio/components/menus/radio-item.js +42 -7
- package/dist/dev/internal/skins/default-audio/components/menus/radio-item.js.map +1 -1
- package/dist/dev/internal/skins/default-audio/components/menus/volume-popover.js +103 -0
- package/dist/dev/internal/skins/default-audio/components/menus/volume-popover.js.map +1 -0
- package/dist/dev/internal/skins/default-audio/layout/controls.js +113 -0
- package/dist/dev/internal/skins/default-audio/layout/controls.js.map +1 -0
- package/dist/dev/internal/skins/default-audio/skin.js +74 -19
- package/dist/dev/internal/skins/default-audio/skin.js.map +1 -1
- package/dist/dev/internal/skins/default-audio/skins/shared/audio/buttons/play-button.js +64 -0
- package/dist/dev/internal/skins/default-audio/skins/shared/audio/buttons/play-button.js.map +1 -0
- package/dist/dev/internal/skins/default-audio/skins/shared/audio/menus/settings-menu.js +100 -0
- package/dist/dev/internal/skins/default-audio/skins/shared/audio/menus/settings-menu.js.map +1 -0
- package/dist/dev/internal/skins/default-live-audio/components/buttons/mute-button.js +63 -11
- package/dist/dev/internal/skins/default-live-audio/components/buttons/mute-button.js.map +1 -1
- package/dist/dev/internal/skins/default-live-audio/components/buttons/play-button.js +63 -11
- package/dist/dev/internal/skins/default-live-audio/components/buttons/play-button.js.map +1 -1
- package/dist/dev/internal/skins/default-live-audio/components/display/buffering-indicator.js +54 -0
- package/dist/dev/internal/skins/default-live-audio/components/display/buffering-indicator.js.map +1 -0
- package/dist/dev/internal/skins/default-live-audio/components/menus/volume-popover.js +103 -0
- package/dist/dev/internal/skins/default-live-audio/components/menus/volume-popover.js.map +1 -0
- package/dist/dev/internal/skins/default-live-audio/layout/controls.js +60 -0
- package/dist/dev/internal/skins/default-live-audio/layout/controls.js.map +1 -0
- package/dist/dev/internal/skins/default-live-audio/skin.js +74 -19
- package/dist/dev/internal/skins/default-live-audio/skin.js.map +1 -1
- package/dist/dev/internal/skins/default-live-audio/skins/shared/audio/buttons/play-button.js +64 -0
- package/dist/dev/internal/skins/default-live-audio/skins/shared/audio/buttons/play-button.js.map +1 -0
- package/dist/dev/internal/skins/default-live-video/components/buttons/airplay-button.js +54 -7
- package/dist/dev/internal/skins/default-live-video/components/buttons/airplay-button.js.map +1 -1
- package/dist/dev/internal/skins/default-live-video/components/buttons/captions-button.js +54 -7
- package/dist/dev/internal/skins/default-live-video/components/buttons/captions-button.js.map +1 -1
- package/dist/dev/internal/skins/default-live-video/components/buttons/cast-button.js +54 -7
- package/dist/dev/internal/skins/default-live-video/components/buttons/cast-button.js.map +1 -1
- package/dist/dev/internal/skins/default-live-video/components/buttons/fullscreen-button.js +54 -7
- package/dist/dev/internal/skins/default-live-video/components/buttons/fullscreen-button.js.map +1 -1
- package/dist/dev/internal/skins/default-live-video/components/buttons/mute-button.js +63 -11
- package/dist/dev/internal/skins/default-live-video/components/buttons/mute-button.js.map +1 -1
- package/dist/dev/internal/skins/default-live-video/components/buttons/pip-button.js +54 -7
- package/dist/dev/internal/skins/default-live-video/components/buttons/pip-button.js.map +1 -1
- package/dist/dev/internal/skins/default-live-video/components/buttons/play-button.js +63 -11
- package/dist/dev/internal/skins/default-live-video/components/buttons/play-button.js.map +1 -1
- package/dist/dev/internal/skins/default-live-video/components/display/buffering-indicator.js +54 -0
- package/dist/dev/internal/skins/default-live-video/components/display/buffering-indicator.js.map +1 -0
- package/dist/dev/internal/skins/default-live-video/components/display/status-indicator.js +130 -0
- package/dist/dev/internal/skins/default-live-video/components/display/status-indicator.js.map +1 -0
- package/dist/dev/internal/skins/default-live-video/components/display/volume-indicator.js +66 -0
- package/dist/dev/internal/skins/default-live-video/components/display/volume-indicator.js.map +1 -0
- package/dist/dev/internal/skins/default-live-video/components/menus/captions-menu.js +71 -15
- package/dist/dev/internal/skins/default-live-video/components/menus/captions-menu.js.map +1 -1
- package/dist/dev/internal/skins/default-live-video/components/menus/radio-item.js +42 -7
- package/dist/dev/internal/skins/default-live-video/components/menus/radio-item.js.map +1 -1
- package/dist/dev/internal/skins/default-live-video/components/menus/volume-popover.js +103 -0
- package/dist/dev/internal/skins/default-live-video/components/menus/volume-popover.js.map +1 -0
- package/dist/dev/internal/skins/default-live-video/layout/controls.js +119 -0
- package/dist/dev/internal/skins/default-live-video/layout/controls.js.map +1 -0
- package/dist/dev/internal/skins/default-live-video/skin.js +104 -25
- package/dist/dev/internal/skins/default-live-video/skin.js.map +1 -1
- package/dist/dev/internal/skins/default-live-video/skins/shared/live-video/display/status-indicators.js +74 -0
- package/dist/dev/internal/skins/default-live-video/skins/shared/live-video/display/status-indicators.js.map +1 -0
- package/dist/dev/internal/skins/default-video/components/buttons/airplay-button.js +54 -7
- package/dist/dev/internal/skins/default-video/components/buttons/airplay-button.js.map +1 -1
- package/dist/dev/internal/skins/default-video/components/buttons/captions-button.js +54 -7
- package/dist/dev/internal/skins/default-video/components/buttons/captions-button.js.map +1 -1
- package/dist/dev/internal/skins/default-video/components/buttons/cast-button.js +54 -7
- package/dist/dev/internal/skins/default-video/components/buttons/cast-button.js.map +1 -1
- package/dist/dev/internal/skins/default-video/components/buttons/fullscreen-button.js +54 -7
- package/dist/dev/internal/skins/default-video/components/buttons/fullscreen-button.js.map +1 -1
- package/dist/dev/internal/skins/default-video/components/buttons/mute-button.js +63 -11
- package/dist/dev/internal/skins/default-video/components/buttons/mute-button.js.map +1 -1
- package/dist/dev/internal/skins/default-video/components/buttons/pip-button.js +54 -7
- package/dist/dev/internal/skins/default-video/components/buttons/pip-button.js.map +1 -1
- package/dist/dev/internal/skins/default-video/components/buttons/play-button.js +63 -11
- package/dist/dev/internal/skins/default-video/components/buttons/play-button.js.map +1 -1
- package/dist/dev/internal/skins/default-video/components/display/buffering-indicator.js +54 -0
- package/dist/dev/internal/skins/default-video/components/display/buffering-indicator.js.map +1 -0
- package/dist/dev/internal/skins/default-video/components/display/seek-indicator.js +61 -0
- package/dist/dev/internal/skins/default-video/components/display/seek-indicator.js.map +1 -0
- package/dist/dev/internal/skins/default-video/components/display/status-indicator.js +130 -0
- package/dist/dev/internal/skins/default-video/components/display/status-indicator.js.map +1 -0
- package/dist/dev/internal/skins/default-video/components/display/volume-indicator.js +66 -0
- package/dist/dev/internal/skins/default-video/components/display/volume-indicator.js.map +1 -0
- package/dist/dev/internal/skins/default-video/components/menus/audio-track-menu.js +59 -15
- package/dist/dev/internal/skins/default-video/components/menus/audio-track-menu.js.map +1 -1
- package/dist/dev/internal/skins/default-video/components/menus/captions-submenu.js +59 -15
- package/dist/dev/internal/skins/default-video/components/menus/captions-submenu.js.map +1 -1
- package/dist/dev/internal/skins/default-video/components/menus/menu-chevron.js +25 -2
- package/dist/dev/internal/skins/default-video/components/menus/menu-chevron.js.map +1 -1
- package/dist/dev/internal/skins/default-video/components/menus/playback-rate-submenu.js +59 -15
- package/dist/dev/internal/skins/default-video/components/menus/playback-rate-submenu.js.map +1 -1
- package/dist/dev/internal/skins/default-video/components/menus/quality-menu.js +65 -21
- package/dist/dev/internal/skins/default-video/components/menus/quality-menu.js.map +1 -1
- package/dist/dev/internal/skins/default-video/components/menus/radio-item.js +42 -7
- package/dist/dev/internal/skins/default-video/components/menus/radio-item.js.map +1 -1
- package/dist/dev/internal/skins/default-video/components/menus/settings-menu.js +89 -21
- package/dist/dev/internal/skins/default-video/components/menus/settings-menu.js.map +1 -1
- package/dist/dev/internal/skins/default-video/components/menus/volume-popover.js +103 -0
- package/dist/dev/internal/skins/default-video/components/menus/volume-popover.js.map +1 -0
- package/dist/dev/internal/skins/default-video/components/sliders/time-slider.js +132 -36
- package/dist/dev/internal/skins/default-video/components/sliders/time-slider.js.map +1 -1
- package/dist/dev/internal/skins/default-video/layout/controls.js +174 -0
- package/dist/dev/internal/skins/default-video/layout/controls.js.map +1 -0
- package/dist/dev/internal/skins/default-video/skin.js +113 -25
- package/dist/dev/internal/skins/default-video/skin.js.map +1 -1
- package/dist/dev/internal/skins/default-video/skins/shared/video/display/status-indicators.js +80 -0
- package/dist/dev/internal/skins/default-video/skins/shared/video/display/status-indicators.js.map +1 -0
- package/dist/dev/internal/skins/default-video/skins/shared/video/menus/settings-menu.js +56 -0
- package/dist/dev/internal/skins/default-video/skins/shared/video/menus/settings-menu.js.map +1 -0
- package/dist/dev/internal/skins/minimal-audio/components/buttons/mute-button.js +63 -11
- package/dist/dev/internal/skins/minimal-audio/components/buttons/mute-button.js.map +1 -1
- package/dist/dev/internal/skins/minimal-audio/components/buttons/play-button.js +63 -11
- package/dist/dev/internal/skins/minimal-audio/components/buttons/play-button.js.map +1 -1
- package/dist/dev/internal/skins/minimal-audio/components/buttons/seek-button.js +96 -13
- package/dist/dev/internal/skins/minimal-audio/components/buttons/seek-button.js.map +1 -1
- package/dist/dev/internal/skins/minimal-audio/components/display/buffering-indicator.js +54 -0
- package/dist/dev/internal/skins/minimal-audio/components/display/buffering-indicator.js.map +1 -0
- package/dist/dev/internal/skins/minimal-audio/components/menus/radio-item.js +42 -7
- package/dist/dev/internal/skins/minimal-audio/components/menus/radio-item.js.map +1 -1
- package/dist/dev/internal/skins/minimal-audio/components/menus/volume-popover.js +103 -0
- package/dist/dev/internal/skins/minimal-audio/components/menus/volume-popover.js.map +1 -0
- package/dist/dev/internal/skins/minimal-audio/layout/controls.js +106 -0
- package/dist/dev/internal/skins/minimal-audio/layout/controls.js.map +1 -0
- package/dist/dev/internal/skins/minimal-audio/skin.js +74 -19
- package/dist/dev/internal/skins/minimal-audio/skin.js.map +1 -1
- package/dist/dev/internal/skins/minimal-audio/skins/shared/audio/buttons/play-button.js +64 -0
- package/dist/dev/internal/skins/minimal-audio/skins/shared/audio/buttons/play-button.js.map +1 -0
- package/dist/dev/internal/skins/minimal-audio/skins/shared/audio/menus/settings-menu.js +100 -0
- package/dist/dev/internal/skins/minimal-audio/skins/shared/audio/menus/settings-menu.js.map +1 -0
- package/dist/dev/internal/skins/minimal-live-audio/components/buttons/mute-button.js +63 -11
- package/dist/dev/internal/skins/minimal-live-audio/components/buttons/mute-button.js.map +1 -1
- package/dist/dev/internal/skins/minimal-live-audio/components/buttons/play-button.js +63 -11
- package/dist/dev/internal/skins/minimal-live-audio/components/buttons/play-button.js.map +1 -1
- package/dist/dev/internal/skins/minimal-live-audio/components/display/buffering-indicator.js +54 -0
- package/dist/dev/internal/skins/minimal-live-audio/components/display/buffering-indicator.js.map +1 -0
- package/dist/dev/internal/skins/minimal-live-audio/components/menus/volume-popover.js +103 -0
- package/dist/dev/internal/skins/minimal-live-audio/components/menus/volume-popover.js.map +1 -0
- package/dist/dev/internal/skins/minimal-live-audio/layout/controls.js +65 -0
- package/dist/dev/internal/skins/minimal-live-audio/layout/controls.js.map +1 -0
- package/dist/dev/internal/skins/minimal-live-audio/skin.js +74 -19
- package/dist/dev/internal/skins/minimal-live-audio/skin.js.map +1 -1
- package/dist/dev/internal/skins/minimal-live-audio/skins/shared/audio/buttons/play-button.js +64 -0
- package/dist/dev/internal/skins/minimal-live-audio/skins/shared/audio/buttons/play-button.js.map +1 -0
- package/dist/dev/internal/skins/minimal-live-video/components/buttons/airplay-button.js +54 -7
- package/dist/dev/internal/skins/minimal-live-video/components/buttons/airplay-button.js.map +1 -1
- package/dist/dev/internal/skins/minimal-live-video/components/buttons/captions-button.js +54 -7
- package/dist/dev/internal/skins/minimal-live-video/components/buttons/captions-button.js.map +1 -1
- package/dist/dev/internal/skins/minimal-live-video/components/buttons/cast-button.js +54 -7
- package/dist/dev/internal/skins/minimal-live-video/components/buttons/cast-button.js.map +1 -1
- package/dist/dev/internal/skins/minimal-live-video/components/buttons/fullscreen-button.js +54 -7
- package/dist/dev/internal/skins/minimal-live-video/components/buttons/fullscreen-button.js.map +1 -1
- package/dist/dev/internal/skins/minimal-live-video/components/buttons/mute-button.js +63 -11
- package/dist/dev/internal/skins/minimal-live-video/components/buttons/mute-button.js.map +1 -1
- package/dist/dev/internal/skins/minimal-live-video/components/buttons/pip-button.js +54 -7
- package/dist/dev/internal/skins/minimal-live-video/components/buttons/pip-button.js.map +1 -1
- package/dist/dev/internal/skins/minimal-live-video/components/buttons/play-button.js +63 -11
- package/dist/dev/internal/skins/minimal-live-video/components/buttons/play-button.js.map +1 -1
- package/dist/dev/internal/skins/minimal-live-video/components/display/buffering-indicator.js +54 -0
- package/dist/dev/internal/skins/minimal-live-video/components/display/buffering-indicator.js.map +1 -0
- package/dist/dev/internal/skins/minimal-live-video/components/display/status-indicator.js +130 -0
- package/dist/dev/internal/skins/minimal-live-video/components/display/status-indicator.js.map +1 -0
- package/dist/dev/internal/skins/minimal-live-video/components/display/volume-indicator.js +66 -0
- package/dist/dev/internal/skins/minimal-live-video/components/display/volume-indicator.js.map +1 -0
- package/dist/dev/internal/skins/minimal-live-video/components/menus/captions-menu.js +71 -15
- package/dist/dev/internal/skins/minimal-live-video/components/menus/captions-menu.js.map +1 -1
- package/dist/dev/internal/skins/minimal-live-video/components/menus/radio-item.js +42 -7
- package/dist/dev/internal/skins/minimal-live-video/components/menus/radio-item.js.map +1 -1
- package/dist/dev/internal/skins/minimal-live-video/components/menus/volume-popover.js +103 -0
- package/dist/dev/internal/skins/minimal-live-video/components/menus/volume-popover.js.map +1 -0
- package/dist/dev/internal/skins/minimal-live-video/layout/controls.js +118 -0
- package/dist/dev/internal/skins/minimal-live-video/layout/controls.js.map +1 -0
- package/dist/dev/internal/skins/minimal-live-video/skin.js +104 -25
- package/dist/dev/internal/skins/minimal-live-video/skin.js.map +1 -1
- package/dist/dev/internal/skins/minimal-live-video/skins/shared/live-video/display/status-indicators.js +74 -0
- package/dist/dev/internal/skins/minimal-live-video/skins/shared/live-video/display/status-indicators.js.map +1 -0
- package/dist/dev/internal/skins/minimal-video/components/buttons/airplay-button.js +54 -7
- package/dist/dev/internal/skins/minimal-video/components/buttons/airplay-button.js.map +1 -1
- package/dist/dev/internal/skins/minimal-video/components/buttons/captions-button.js +54 -7
- package/dist/dev/internal/skins/minimal-video/components/buttons/captions-button.js.map +1 -1
- package/dist/dev/internal/skins/minimal-video/components/buttons/cast-button.js +54 -7
- package/dist/dev/internal/skins/minimal-video/components/buttons/cast-button.js.map +1 -1
- package/dist/dev/internal/skins/minimal-video/components/buttons/fullscreen-button.js +54 -7
- package/dist/dev/internal/skins/minimal-video/components/buttons/fullscreen-button.js.map +1 -1
- package/dist/dev/internal/skins/minimal-video/components/buttons/mute-button.js +63 -11
- package/dist/dev/internal/skins/minimal-video/components/buttons/mute-button.js.map +1 -1
- package/dist/dev/internal/skins/minimal-video/components/buttons/pip-button.js +54 -7
- package/dist/dev/internal/skins/minimal-video/components/buttons/pip-button.js.map +1 -1
- package/dist/dev/internal/skins/minimal-video/components/buttons/play-button.js +63 -11
- package/dist/dev/internal/skins/minimal-video/components/buttons/play-button.js.map +1 -1
- package/dist/dev/internal/skins/minimal-video/components/display/buffering-indicator.js +54 -0
- package/dist/dev/internal/skins/minimal-video/components/display/buffering-indicator.js.map +1 -0
- package/dist/dev/internal/skins/minimal-video/components/display/seek-indicator.js +61 -0
- package/dist/dev/internal/skins/minimal-video/components/display/seek-indicator.js.map +1 -0
- package/dist/dev/internal/skins/minimal-video/components/display/status-indicator.js +130 -0
- package/dist/dev/internal/skins/minimal-video/components/display/status-indicator.js.map +1 -0
- package/dist/dev/internal/skins/minimal-video/components/display/volume-indicator.js +66 -0
- package/dist/dev/internal/skins/minimal-video/components/display/volume-indicator.js.map +1 -0
- package/dist/dev/internal/skins/minimal-video/components/menus/audio-track-menu.js +59 -15
- package/dist/dev/internal/skins/minimal-video/components/menus/audio-track-menu.js.map +1 -1
- package/dist/dev/internal/skins/minimal-video/components/menus/captions-submenu.js +59 -15
- package/dist/dev/internal/skins/minimal-video/components/menus/captions-submenu.js.map +1 -1
- package/dist/dev/internal/skins/minimal-video/components/menus/menu-chevron.js +25 -2
- package/dist/dev/internal/skins/minimal-video/components/menus/menu-chevron.js.map +1 -1
- package/dist/dev/internal/skins/minimal-video/components/menus/playback-rate-submenu.js +59 -15
- package/dist/dev/internal/skins/minimal-video/components/menus/playback-rate-submenu.js.map +1 -1
- package/dist/dev/internal/skins/minimal-video/components/menus/quality-menu.js +65 -21
- package/dist/dev/internal/skins/minimal-video/components/menus/quality-menu.js.map +1 -1
- package/dist/dev/internal/skins/minimal-video/components/menus/radio-item.js +42 -7
- package/dist/dev/internal/skins/minimal-video/components/menus/radio-item.js.map +1 -1
- package/dist/dev/internal/skins/minimal-video/components/menus/settings-menu.js +89 -21
- package/dist/dev/internal/skins/minimal-video/components/menus/settings-menu.js.map +1 -1
- package/dist/dev/internal/skins/minimal-video/components/menus/volume-popover.js +103 -0
- package/dist/dev/internal/skins/minimal-video/components/menus/volume-popover.js.map +1 -0
- package/dist/dev/internal/skins/minimal-video/components/sliders/time-slider.js +132 -36
- package/dist/dev/internal/skins/minimal-video/components/sliders/time-slider.js.map +1 -1
- package/dist/dev/internal/skins/minimal-video/layout/controls.js +168 -0
- package/dist/dev/internal/skins/minimal-video/layout/controls.js.map +1 -0
- package/dist/dev/internal/skins/minimal-video/skin.js +113 -25
- package/dist/dev/internal/skins/minimal-video/skin.js.map +1 -1
- package/dist/dev/internal/skins/minimal-video/skins/shared/video/display/status-indicators.js +80 -0
- package/dist/dev/internal/skins/minimal-video/skins/shared/video/display/status-indicators.js.map +1 -0
- package/dist/dev/internal/skins/minimal-video/skins/shared/video/menus/settings-menu.js +56 -0
- package/dist/dev/internal/skins/minimal-video/skins/shared/video/menus/settings-menu.js.map +1 -0
- package/dist/dev/internal/skins/shared/components/behaviors/status-announcer.js +47 -0
- package/dist/dev/internal/skins/shared/components/behaviors/status-announcer.js.map +1 -0
- package/dist/dev/internal/skins/shared/components/buttons/button-tooltip.js +62 -8
- package/dist/dev/internal/skins/shared/components/buttons/button-tooltip.js.map +1 -1
- package/dist/dev/internal/skins/shared/components/buttons/button.js +31 -5
- package/dist/dev/internal/skins/shared/components/buttons/button.js.map +1 -1
- package/dist/dev/internal/skins/shared/components/buttons/live-button.js +43 -6
- package/dist/dev/internal/skins/shared/components/buttons/live-button.js.map +1 -1
- package/dist/dev/internal/skins/shared/components/buttons/playback-rate-button.js +43 -6
- package/dist/dev/internal/skins/shared/components/buttons/playback-rate-button.js.map +1 -1
- package/dist/dev/internal/skins/shared/components/dialogs/error-dialog.js +46 -0
- package/dist/dev/internal/skins/shared/components/dialogs/error-dialog.js.map +1 -0
- package/dist/dev/internal/skins/shared/components/display/poster.js +66 -0
- package/dist/dev/internal/skins/shared/components/display/poster.js.map +1 -0
- package/dist/dev/internal/skins/shared/components/display/title.js +47 -0
- package/dist/dev/internal/skins/shared/components/display/title.js.map +1 -0
- package/dist/dev/internal/skins/shared/components/layout/container.js +36 -6
- package/dist/dev/internal/skins/shared/components/layout/container.js.map +1 -1
- package/dist/dev/internal/skins/shared/components/sliders/slider.js +121 -20
- package/dist/dev/internal/skins/shared/components/sliders/slider.js.map +1 -1
- package/dist/dev/internal/skins/shared/components/sliders/volume-slider.js +57 -10
- package/dist/dev/internal/skins/shared/components/sliders/volume-slider.js.map +1 -1
- package/dist/dev/internal/skins/shared/skins/shared/audio/dialogs/error-dialog.js +46 -0
- package/dist/dev/internal/skins/shared/skins/shared/audio/dialogs/error-dialog.js.map +1 -0
- package/dist/dev/internal/skins/shared/skins/shared/audio/sliders/time-slider.js +110 -0
- package/dist/dev/internal/skins/shared/skins/shared/audio/sliders/time-slider.js.map +1 -0
- package/dist/dev/internal/skins/shared/skins/shared/behaviors/live-playback-hotkeys.js +53 -0
- package/dist/dev/internal/skins/shared/skins/shared/behaviors/live-playback-hotkeys.js.map +1 -0
- package/dist/dev/internal/skins/shared/skins/shared/behaviors/playback-hotkeys.js +100 -0
- package/dist/dev/internal/skins/shared/skins/shared/behaviors/playback-hotkeys.js.map +1 -0
- package/dist/dev/internal/skins/shared/skins/shared/live-video/behaviors/gestures.js +47 -0
- package/dist/dev/internal/skins/shared/skins/shared/live-video/behaviors/gestures.js.map +1 -0
- package/dist/dev/internal/skins/shared/skins/shared/live-video/behaviors/hotkeys.js +45 -0
- package/dist/dev/internal/skins/shared/skins/shared/live-video/behaviors/hotkeys.js.map +1 -0
- package/dist/dev/internal/skins/shared/skins/shared/video/behaviors/gestures.js +59 -0
- package/dist/dev/internal/skins/shared/skins/shared/video/behaviors/gestures.js.map +1 -0
- package/dist/dev/internal/skins/shared/skins/shared/video/behaviors/hotkeys.js +45 -0
- package/dist/dev/internal/skins/shared/skins/shared/video/behaviors/hotkeys.js.map +1 -0
- package/dist/dev/media/audio.js +27 -6
- package/dist/dev/media/audio.js.map +1 -1
- package/dist/dev/media/background-video/adapter.js +43 -17
- package/dist/dev/media/background-video/adapter.js.map +1 -1
- package/dist/dev/media/cloudflare-video/adapter.d.ts +3 -2
- package/dist/dev/media/cloudflare-video/adapter.js +63 -25
- package/dist/dev/media/cloudflare-video/adapter.js.map +1 -1
- package/dist/dev/media/dash-video/adapter.js +27 -6
- package/dist/dev/media/dash-video/adapter.js.map +1 -1
- package/dist/dev/media/hls-audio/adapter.js +27 -6
- package/dist/dev/media/hls-audio/adapter.js.map +1 -1
- package/dist/dev/media/hls-background-video/adapter.js +50 -17
- package/dist/dev/media/hls-background-video/adapter.js.map +1 -1
- package/dist/dev/media/hls-video/adapter.js +27 -6
- package/dist/dev/media/hls-video/adapter.js.map +1 -1
- package/dist/dev/media/hlsjs-video/adapter.js +27 -6
- package/dist/dev/media/hlsjs-video/adapter.js.map +1 -1
- package/dist/dev/media/mux-audio/hls-js.js +27 -6
- package/dist/dev/media/mux-audio/hls-js.js.map +1 -1
- package/dist/dev/media/mux-audio/spf.d.ts +1 -1
- package/dist/dev/media/mux-audio/spf.js +27 -6
- package/dist/dev/media/mux-audio/spf.js.map +1 -1
- package/dist/dev/media/mux-video/hls-js.js +34 -6
- package/dist/dev/media/mux-video/hls-js.js.map +1 -1
- package/dist/dev/media/mux-video/spf.d.ts +1 -1
- package/dist/dev/media/mux-video/spf.js +34 -6
- package/dist/dev/media/mux-video/spf.js.map +1 -1
- package/dist/dev/media/mux-video/storyboard.js +49 -27
- package/dist/dev/media/mux-video/storyboard.js.map +1 -1
- package/dist/dev/media/native-hls-video/adapter.js +27 -6
- package/dist/dev/media/native-hls-video/adapter.js.map +1 -1
- package/dist/dev/media/shaka-video/adapter.js +27 -6
- package/dist/dev/media/shaka-video/adapter.js.map +1 -1
- package/dist/dev/media/spotify-audio/adapter.d.ts +3 -2
- package/dist/dev/media/spotify-audio/adapter.js +83 -25
- package/dist/dev/media/spotify-audio/adapter.js.map +1 -1
- package/dist/dev/media/tiktok-video/adapter.d.ts +3 -2
- package/dist/dev/media/tiktok-video/adapter.js +63 -25
- package/dist/dev/media/tiktok-video/adapter.js.map +1 -1
- package/dist/dev/media/twitch-video/adapter.d.ts +3 -2
- package/dist/dev/media/twitch-video/adapter.js +63 -25
- package/dist/dev/media/twitch-video/adapter.js.map +1 -1
- package/dist/dev/media/video.js +27 -6
- package/dist/dev/media/video.js.map +1 -1
- package/dist/dev/media/vimeo-video/adapter.d.ts +3 -2
- package/dist/dev/media/vimeo-video/adapter.js +62 -24
- package/dist/dev/media/vimeo-video/adapter.js.map +1 -1
- package/dist/dev/media/wistia-video/adapter.d.ts +2 -1
- package/dist/dev/media/wistia-video/adapter.js +95 -11
- package/dist/dev/media/wistia-video/adapter.js.map +1 -1
- package/dist/dev/media/youtube-video/adapter.d.ts +3 -2
- package/dist/dev/media/youtube-video/adapter.js +62 -24
- package/dist/dev/media/youtube-video/adapter.js.map +1 -1
- package/dist/dev/player/container.js +153 -36
- package/dist/dev/player/container.js.map +1 -1
- package/dist/dev/player/context.js +15 -5
- package/dist/dev/player/context.js.map +1 -1
- package/dist/dev/player/create-player.js +101 -48
- package/dist/dev/player/create-player.js.map +1 -1
- package/dist/dev/player/popup-group-context.js +15 -5
- package/dist/dev/player/popup-group-context.js.map +1 -1
- package/dist/dev/presets/audio/minimal-skin.css +638 -399
- package/dist/dev/presets/audio/minimal-skin.js +10 -2
- package/dist/dev/presets/audio/minimal-skin.js.map +1 -1
- package/dist/dev/presets/audio/skin.css +384 -190
- package/dist/dev/presets/audio/skin.js +10 -2
- package/dist/dev/presets/audio/skin.js.map +1 -1
- package/dist/dev/presets/background/skin.js +47 -7
- package/dist/dev/presets/background/skin.js.map +1 -1
- package/dist/dev/presets/live-audio/minimal-skin.css +433 -353
- package/dist/dev/presets/live-audio/minimal-skin.js +10 -2
- package/dist/dev/presets/live-audio/minimal-skin.js.map +1 -1
- package/dist/dev/presets/live-audio/skin.css +196 -144
- package/dist/dev/presets/live-audio/skin.js +10 -2
- package/dist/dev/presets/live-audio/skin.js.map +1 -1
- package/dist/dev/presets/live-video/minimal-skin.css +860 -732
- package/dist/dev/presets/live-video/minimal-skin.js +10 -2
- package/dist/dev/presets/live-video/minimal-skin.js.map +1 -1
- package/dist/dev/presets/live-video/skin.css +695 -589
- package/dist/dev/presets/live-video/skin.js +10 -2
- package/dist/dev/presets/live-video/skin.js.map +1 -1
- package/dist/dev/presets/types.d.ts +17 -1
- package/dist/dev/presets/video/minimal-skin.css +717 -623
- package/dist/dev/presets/video/minimal-skin.d.ts +2 -2
- package/dist/dev/presets/video/minimal-skin.js +10 -2
- package/dist/dev/presets/video/minimal-skin.js.map +1 -1
- package/dist/dev/presets/video/skin.css +480 -416
- package/dist/dev/presets/video/skin.d.ts +2 -2
- package/dist/dev/presets/video/skin.js +10 -2
- package/dist/dev/presets/video/skin.js.map +1 -1
- package/dist/dev/ui/alert-dialog/root.js +37 -11
- package/dist/dev/ui/alert-dialog/root.js.map +1 -1
- package/dist/dev/ui/audio-track-radio-group/component.js +188 -40
- package/dist/dev/ui/audio-track-radio-group/component.js.map +1 -1
- package/dist/dev/ui/captions-radio-group/component.js +188 -40
- package/dist/dev/ui/captions-radio-group/component.js.map +1 -1
- package/dist/dev/ui/controls/root.js +1 -0
- package/dist/dev/ui/controls/root.js.map +1 -1
- package/dist/dev/ui/dialog/root.js +23 -8
- package/dist/dev/ui/dialog/root.js.map +1 -1
- package/dist/dev/ui/error-dialog/root.js +51 -19
- package/dist/dev/ui/error-dialog/root.js.map +1 -1
- package/dist/dev/ui/gesture/component.js +50 -28
- package/dist/dev/ui/gesture/component.js.map +1 -1
- package/dist/dev/ui/gesture/use-doubletap-gesture.js +39 -11
- package/dist/dev/ui/gesture/use-doubletap-gesture.js.map +1 -1
- package/dist/dev/ui/gesture/use-tap-gesture.js +39 -11
- package/dist/dev/ui/gesture/use-tap-gesture.js.map +1 -1
- package/dist/dev/ui/hooks/use-button.js +31 -9
- package/dist/dev/ui/hooks/use-button.js.map +1 -1
- package/dist/dev/ui/hooks/use-positioned-state.js +69 -29
- package/dist/dev/ui/hooks/use-positioned-state.js.map +1 -1
- package/dist/dev/ui/hooks/use-slider.js.map +1 -1
- package/dist/dev/ui/hotkey/component.js +46 -25
- package/dist/dev/ui/hotkey/component.js.map +1 -1
- package/dist/dev/ui/hotkey/use-hotkey-shortcut.js +36 -15
- package/dist/dev/ui/hotkey/use-hotkey-shortcut.js.map +1 -1
- package/dist/dev/ui/hotkey/use-hotkey.js +40 -14
- package/dist/dev/ui/hotkey/use-hotkey.js.map +1 -1
- package/dist/dev/ui/input-indicator/use-indicator-visibility.js +38 -11
- package/dist/dev/ui/input-indicator/use-indicator-visibility.js.map +1 -1
- package/dist/dev/ui/input-indicator/use-input-action-subscription.js +22 -6
- package/dist/dev/ui/input-indicator/use-input-action-subscription.js.map +1 -1
- package/dist/dev/ui/input-indicator/use-input-indicator-root.js +38 -5
- package/dist/dev/ui/input-indicator/use-input-indicator-root.js.map +1 -1
- package/dist/dev/ui/menu/content.js +86 -53
- package/dist/dev/ui/menu/content.js.map +1 -1
- package/dist/dev/ui/menu/context.js +38 -16
- package/dist/dev/ui/menu/context.js.map +1 -1
- package/dist/dev/ui/menu/group.js +40 -10
- package/dist/dev/ui/menu/group.js.map +1 -1
- package/dist/dev/ui/menu/item.js +103 -38
- package/dist/dev/ui/menu/item.js.map +1 -1
- package/dist/dev/ui/menu/popup.js +80 -30
- package/dist/dev/ui/menu/popup.js.map +1 -1
- package/dist/dev/ui/menu/radio-group.js +54 -16
- package/dist/dev/ui/menu/radio-group.js.map +1 -1
- package/dist/dev/ui/menu/radio-item.js +81 -45
- package/dist/dev/ui/menu/radio-item.js.map +1 -1
- package/dist/dev/ui/menu/root.js.map +1 -1
- package/dist/dev/ui/menu/trigger.js +194 -109
- package/dist/dev/ui/menu/trigger.js.map +1 -1
- package/dist/dev/ui/menu/use-menu-group.js +38 -12
- package/dist/dev/ui/menu/use-menu-group.js.map +1 -1
- package/dist/dev/ui/playback-rate/use-playback-rate-options.js.map +1 -1
- package/dist/dev/ui/playback-rate-radio-group/component.js +188 -40
- package/dist/dev/ui/playback-rate-radio-group/component.js.map +1 -1
- package/dist/dev/ui/popover/popup.js +47 -20
- package/dist/dev/ui/popover/popup.js.map +1 -1
- package/dist/dev/ui/popover/use-popup-position.js +54 -20
- package/dist/dev/ui/popover/use-popup-position.js.map +1 -1
- package/dist/dev/ui/poster/context.js +15 -6
- package/dist/dev/ui/poster/context.js.map +1 -1
- package/dist/dev/ui/poster/image.js +60 -30
- package/dist/dev/ui/poster/image.js.map +1 -1
- package/dist/dev/ui/poster/root.js +4 -1
- package/dist/dev/ui/poster/root.js.map +1 -1
- package/dist/dev/ui/quality-radio-group/component.js +188 -40
- package/dist/dev/ui/quality-radio-group/component.js.map +1 -1
- package/dist/dev/ui/seek-indicator/context.js +15 -5
- package/dist/dev/ui/seek-indicator/context.js.map +1 -1
- package/dist/dev/ui/seek-indicator/root.js +40 -13
- package/dist/dev/ui/seek-indicator/root.js.map +1 -1
- package/dist/dev/ui/slider/context.js +47 -8
- package/dist/dev/ui/slider/context.js.map +1 -1
- package/dist/dev/ui/slider/root.js +156 -47
- package/dist/dev/ui/slider/root.js.map +1 -1
- package/dist/dev/ui/slider/thumbnail/root.js +15 -5
- package/dist/dev/ui/slider/thumbnail/root.js.map +1 -1
- package/dist/dev/ui/status-indicator/context.js +15 -5
- package/dist/dev/ui/status-indicator/context.js.map +1 -1
- package/dist/dev/ui/status-indicator/root.js +57 -17
- package/dist/dev/ui/status-indicator/root.js.map +1 -1
- package/dist/dev/ui/thumbnail/context.js +15 -5
- package/dist/dev/ui/thumbnail/context.js.map +1 -1
- package/dist/dev/ui/thumbnail/root.js +3 -1
- package/dist/dev/ui/thumbnail/root.js.map +1 -1
- package/dist/dev/ui/time/group.js.map +1 -1
- package/dist/dev/ui/time/separator.js.map +1 -1
- package/dist/dev/ui/time-slider/chapter-title.js.map +1 -1
- package/dist/dev/ui/time-slider/chapters.js +117 -27
- package/dist/dev/ui/time-slider/chapters.js.map +1 -1
- package/dist/dev/ui/time-slider/root.js +220 -69
- package/dist/dev/ui/time-slider/root.js.map +1 -1
- package/dist/dev/ui/title/component.d.ts +3 -7
- package/dist/dev/ui/title/component.js +5 -8
- package/dist/dev/ui/title/component.js.map +1 -1
- package/dist/dev/ui/title/index.d.ts +1 -1
- package/dist/dev/ui/tooltip/popup.js +55 -22
- package/dist/dev/ui/tooltip/popup.js.map +1 -1
- package/dist/dev/ui/tooltip/provider.js +34 -10
- package/dist/dev/ui/tooltip/provider.js.map +1 -1
- package/dist/dev/ui/volume-indicator/context.js +15 -5
- package/dist/dev/ui/volume-indicator/context.js.map +1 -1
- package/dist/dev/ui/volume-indicator/root.js +55 -16
- package/dist/dev/ui/volume-indicator/root.js.map +1 -1
- package/dist/dev/ui/volume-popover/popup.js +21 -5
- package/dist/dev/ui/volume-popover/popup.js.map +1 -1
- package/dist/dev/ui/volume-popover/root.d.ts +1 -1
- package/dist/dev/ui/volume-popover/root.js +49 -12
- package/dist/dev/ui/volume-popover/root.js.map +1 -1
- package/dist/dev/utils/use-attach-media.d.ts +8 -2
- package/dist/dev/utils/use-attach-media.js +64 -7
- package/dist/dev/utils/use-attach-media.js.map +1 -1
- package/dist/dev/utils/use-destroy.js +27 -11
- package/dist/dev/utils/use-destroy.js.map +1 -1
- package/dist/dev/utils/use-force-render.js +4 -1
- package/dist/dev/utils/use-force-render.js.map +1 -1
- package/dist/dev/utils/use-media-events.d.ts +72 -0
- package/dist/dev/utils/use-media-events.js +107 -0
- package/dist/dev/utils/use-media-events.js.map +1 -0
- package/dist/dev/utils/use-media-extension.js +26 -5
- package/dist/dev/utils/use-media-extension.js.map +1 -1
- package/dist/dev/utils/use-media-instance.js +28 -5
- package/dist/dev/utils/use-media-instance.js.map +1 -1
- package/dist/dev/utils/use-render.js +51 -3
- package/dist/dev/utils/use-render.js.map +1 -1
- package/dist/dev/utils/use-safe-id.js +10 -1
- package/dist/dev/utils/use-safe-id.js.map +1 -1
- package/docs/README.md +1 -1
- package/docs/guides/accessibility.md +93 -0
- package/docs/guides/architecture.md +118 -0
- package/docs/guides/autoplay.md +173 -0
- package/docs/guides/background-video.md +202 -0
- package/docs/guides/browser-support.md +145 -0
- package/docs/guides/build-with-ai.md +167 -0
- package/docs/guides/build-your-own-component.md +182 -0
- package/docs/guides/bundlers.md +50 -0
- package/docs/guides/captions.md +155 -0
- package/docs/guides/casting.md +159 -0
- package/docs/guides/content-security-policy.md +36 -0
- package/docs/guides/controls.md +179 -0
- package/docs/guides/customize-skins.md +153 -0
- package/docs/guides/features.md +118 -0
- package/docs/guides/fullscreen.md +150 -0
- package/docs/guides/installation-shadcn.md +189 -0
- package/docs/guides/installation.md +166 -0
- package/docs/guides/internationalization.md +323 -0
- package/docs/guides/keyboard-shortcuts.md +97 -0
- package/docs/guides/live-streams.md +139 -0
- package/docs/guides/llms.txt +67 -0
- package/docs/guides/media-sources.md +312 -0
- package/docs/guides/migrate-from-media-chrome.md +291 -0
- package/docs/guides/migrate-from-mux-player.md +522 -0
- package/docs/guides/migrate-from-plyr.md +319 -0
- package/docs/guides/migrate-from-video-js-8.md +463 -0
- package/docs/guides/mux-data.md +84 -0
- package/docs/guides/picture-in-picture.md +149 -0
- package/docs/guides/playback-errors.md +124 -0
- package/docs/guides/poster.md +222 -0
- package/docs/guides/presets.md +94 -0
- package/docs/guides/quality.md +268 -0
- package/docs/guides/skins.md +72 -0
- package/docs/guides/thumbnails.md +179 -0
- package/docs/guides/typescript.md +41 -0
- package/docs/guides/ui-components.md +82 -0
- package/docs/guides/user-preferences.md +176 -0
- package/docs/guides/v10-roadmap.md +92 -0
- package/docs/guides/why-videojs.md +138 -0
- package/docs/llms.txt +272 -202
- package/docs/reference/api/create-i18n.md +53 -0
- package/docs/reference/api/create-player.md +155 -0
- package/docs/reference/api/create-selector.md +45 -0
- package/docs/reference/api/create-translator.md +36 -0
- package/docs/reference/api/error-codes.md +25 -0
- package/docs/reference/api/feature-audio-track.md +44 -0
- package/docs/reference/api/feature-buffer.md +47 -0
- package/docs/reference/api/feature-controls.md +50 -0
- package/docs/reference/api/feature-error.md +49 -0
- package/docs/reference/api/feature-fullscreen.md +67 -0
- package/docs/reference/api/feature-live.md +100 -0
- package/docs/reference/api/feature-metadata.md +91 -0
- package/docs/reference/api/feature-orientation-lock.md +87 -0
- package/docs/reference/api/feature-pip.md +51 -0
- package/docs/reference/api/feature-playback-rate.md +45 -0
- package/docs/reference/api/feature-playback.md +48 -0
- package/docs/reference/api/feature-quality.md +45 -0
- package/docs/reference/api/feature-remote-playback.md +51 -0
- package/docs/reference/api/feature-source.md +45 -0
- package/docs/reference/api/feature-stream-type.md +49 -0
- package/docs/reference/api/feature-text-tracks.md +58 -0
- package/docs/reference/api/feature-time.md +50 -0
- package/docs/reference/api/feature-volume.md +59 -0
- package/docs/reference/api/get-i18n-translations.md +36 -0
- package/docs/reference/api/has-registered-locale.md +33 -0
- package/docs/reference/api/i18n-provider.md +37 -0
- package/docs/reference/api/llms.txt +102 -0
- package/docs/reference/api/merge-props.md +38 -0
- package/docs/reference/api/on-i18n-registry-change.md +29 -0
- package/docs/reference/api/register-i18n.md +39 -0
- package/docs/reference/api/render-element.md +180 -0
- package/docs/reference/api/translation-phrases.md +107 -0
- package/docs/reference/api/use-audio-track-options.md +60 -0
- package/docs/reference/api/use-button.md +101 -0
- package/docs/reference/api/use-captions-options.md +61 -0
- package/docs/reference/api/use-composed-refs.md +41 -0
- package/docs/reference/api/use-container-attach.md +42 -0
- package/docs/reference/api/use-container.md +39 -0
- package/docs/reference/api/use-destroy.md +41 -0
- package/docs/reference/api/use-double-tap-gesture.md +38 -0
- package/docs/reference/api/use-hotkey-shortcut.md +41 -0
- package/docs/reference/api/use-hotkey.md +40 -0
- package/docs/reference/api/use-latest-ref.md +49 -0
- package/docs/reference/api/use-locale.md +114 -0
- package/docs/reference/api/use-optional-container.md +31 -0
- package/docs/reference/api/use-optional-player.md +63 -0
- package/docs/reference/api/use-playback-rate-options.md +62 -0
- package/docs/reference/api/use-player.md +224 -0
- package/docs/reference/api/use-quality-options.md +60 -0
- package/docs/reference/api/use-selector.md +65 -0
- package/docs/reference/api/use-slider.md +70 -0
- package/docs/reference/api/use-snapshot.md +76 -0
- package/docs/reference/api/use-store.md +202 -0
- package/docs/reference/api/use-tap-gesture.md +38 -0
- package/docs/reference/api/use-translator.md +118 -0
- package/docs/reference/api/vjs8-legacy-component.md +21 -0
- package/docs/reference/api/vjs8-legacy-get-player.md +21 -0
- package/docs/reference/api/vjs8-legacy-init.md +21 -0
- package/docs/reference/api/vjs8-legacy-options.md +21 -0
- package/docs/reference/api/vjs8-legacy-plugin.md +21 -0
- package/docs/reference/components/airplay-button.md +154 -0
- package/docs/reference/components/alert-dialog.md +265 -0
- package/docs/reference/components/audio-minimal-skin.md +34 -0
- package/docs/reference/components/audio-skin.md +34 -0
- package/docs/reference/components/audio-track-radio-group.md +264 -0
- package/docs/reference/components/audio.md +75 -0
- package/docs/reference/components/background-video-skin.md +32 -0
- package/docs/reference/components/background-video.md +55 -0
- package/docs/reference/components/buffering-indicator.md +113 -0
- package/docs/reference/components/captions-button.md +141 -0
- package/docs/reference/components/captions-radio-group.md +266 -0
- package/docs/reference/components/cast-button.md +154 -0
- package/docs/reference/components/cloudflare-video.md +116 -0
- package/docs/reference/components/controls.md +272 -0
- package/docs/reference/components/dash-video.md +61 -0
- package/docs/reference/components/dialog.md +359 -0
- package/docs/reference/components/error-dialog.md +276 -0
- package/docs/reference/components/fullscreen-button.md +132 -0
- package/docs/reference/components/gesture.md +121 -0
- package/docs/reference/components/google-cast.md +39 -0
- package/docs/reference/components/hls-audio.md +55 -0
- package/docs/reference/components/hls-background-video.md +41 -0
- package/docs/reference/components/hls-video.md +56 -0
- package/docs/reference/components/hlsjs-video.md +70 -0
- package/docs/reference/components/hotkey.md +119 -0
- package/docs/reference/components/live-audio-minimal-skin.md +36 -0
- package/docs/reference/components/live-audio-skin.md +36 -0
- package/docs/reference/components/live-button.md +167 -0
- package/docs/reference/components/live-video-minimal-skin.md +42 -0
- package/docs/reference/components/live-video-skin.md +42 -0
- package/docs/reference/components/llms.txt +122 -0
- package/docs/reference/components/menu.md +742 -0
- package/docs/reference/components/mute-button.md +200 -0
- package/docs/reference/components/mux-audio.md +93 -0
- package/docs/reference/components/mux-background-video.md +30 -0
- package/docs/reference/components/mux-data.md +43 -0
- package/docs/reference/components/mux-video.md +183 -0
- package/docs/reference/components/native-hls-video.md +78 -0
- package/docs/reference/components/pip-button.md +132 -0
- package/docs/reference/components/play-button.md +130 -0
- package/docs/reference/components/playback-rate-button.md +117 -0
- package/docs/reference/components/playback-rate-radio-group.md +263 -0
- package/docs/reference/components/player-container.md +92 -0
- package/docs/reference/components/player.md +102 -0
- package/docs/reference/components/popover.md +259 -0
- package/docs/reference/components/poster.md +228 -0
- package/docs/reference/components/quality-radio-group.md +278 -0
- package/docs/reference/components/seek-button.md +125 -0
- package/docs/reference/components/seek-indicator.md +232 -0
- package/docs/reference/components/shaka-video.md +108 -0
- package/docs/reference/components/slider.md +466 -0
- package/docs/reference/components/spotify-audio.md +109 -0
- package/docs/reference/components/status-announcer.md +264 -0
- package/docs/reference/components/status-indicator.md +285 -0
- package/docs/reference/components/thumbnail.md +309 -0
- package/docs/reference/components/tiktok-video.md +128 -0
- package/docs/reference/components/time-slider.md +575 -0
- package/docs/reference/components/time.md +397 -0
- package/docs/reference/components/title.md +172 -0
- package/docs/reference/components/tooltip.md +369 -0
- package/docs/reference/components/twitch-video.md +122 -0
- package/docs/reference/components/video-minimal-skin.md +46 -0
- package/docs/reference/components/video-skin.md +46 -0
- package/docs/reference/components/video.md +79 -0
- package/docs/reference/components/vimeo-video.md +126 -0
- package/docs/reference/components/volume-indicator.md +305 -0
- package/docs/reference/components/volume-popover.md +233 -0
- package/docs/reference/components/volume-slider.md +337 -0
- package/docs/reference/components/wistia-video.md +68 -0
- package/docs/reference/components/youtube-video.md +124 -0
- package/package.json +39 -37
- package/dist/default/extensions/google-cast/extension.js.map +0 -1
- package/dist/default/extensions/mux-data/extension.js.map +0 -1
- package/dist/default/i18n/context.js.map +0 -1
- package/dist/default/i18n/create-i18n.js.map +0 -1
- package/dist/default/i18n/get-provider-root-props.js.map +0 -1
- package/dist/default/i18n/locales/all/register.js.map +0 -1
- package/dist/default/i18n/locales/ar/register.js.map +0 -1
- package/dist/default/i18n/locales/az/register.js.map +0 -1
- package/dist/default/i18n/locales/bg/register.js.map +0 -1
- package/dist/default/i18n/locales/bn/register.js.map +0 -1
- package/dist/default/i18n/locales/bs/register.js.map +0 -1
- package/dist/default/i18n/locales/ca/register.js.map +0 -1
- package/dist/default/i18n/locales/cs/register.js.map +0 -1
- package/dist/default/i18n/locales/cy/register.js.map +0 -1
- package/dist/default/i18n/locales/da/register.js.map +0 -1
- package/dist/default/i18n/locales/de/register.js.map +0 -1
- package/dist/default/i18n/locales/el/register.js.map +0 -1
- package/dist/default/i18n/locales/en/register.js.map +0 -1
- package/dist/default/i18n/locales/es/register.js.map +0 -1
- package/dist/default/i18n/locales/et/register.js.map +0 -1
- package/dist/default/i18n/locales/eu/register.js.map +0 -1
- package/dist/default/i18n/locales/fa/register.js.map +0 -1
- package/dist/default/i18n/locales/fi/register.js.map +0 -1
- package/dist/default/i18n/locales/fr/register.js.map +0 -1
- package/dist/default/i18n/locales/gd/register.js.map +0 -1
- package/dist/default/i18n/locales/gl/register.js.map +0 -1
- package/dist/default/i18n/locales/he/register.js.map +0 -1
- package/dist/default/i18n/locales/hi/register.js.map +0 -1
- package/dist/default/i18n/locales/hr/register.js.map +0 -1
- package/dist/default/i18n/locales/hu/register.js.map +0 -1
- package/dist/default/i18n/locales/id/register.js.map +0 -1
- package/dist/default/i18n/locales/it/register.js.map +0 -1
- package/dist/default/i18n/locales/ja/register.js.map +0 -1
- package/dist/default/i18n/locales/ko/register.js.map +0 -1
- package/dist/default/i18n/locales/lt/register.js.map +0 -1
- package/dist/default/i18n/locales/lv/register.js.map +0 -1
- package/dist/default/i18n/locales/mr/register.js.map +0 -1
- package/dist/default/i18n/locales/nb/register.js.map +0 -1
- package/dist/default/i18n/locales/ne/register.js.map +0 -1
- package/dist/default/i18n/locales/nl/register.js.map +0 -1
- package/dist/default/i18n/locales/nn/register.js.map +0 -1
- package/dist/default/i18n/locales/oc/register.js.map +0 -1
- package/dist/default/i18n/locales/pl/register.js.map +0 -1
- package/dist/default/i18n/locales/pt/register.js.map +0 -1
- package/dist/default/i18n/locales/pt-BR/register.js.map +0 -1
- package/dist/default/i18n/locales/pt-PT/register.js.map +0 -1
- package/dist/default/i18n/locales/ro/register.js.map +0 -1
- package/dist/default/i18n/locales/ru/register.js.map +0 -1
- package/dist/default/i18n/locales/sk/register.js.map +0 -1
- package/dist/default/i18n/locales/sl/register.js.map +0 -1
- package/dist/default/i18n/locales/sr/register.js.map +0 -1
- package/dist/default/i18n/locales/sv/register.js.map +0 -1
- package/dist/default/i18n/locales/te/register.js.map +0 -1
- package/dist/default/i18n/locales/th/register.js.map +0 -1
- package/dist/default/i18n/locales/tr/register.js.map +0 -1
- package/dist/default/i18n/locales/uk/register.js.map +0 -1
- package/dist/default/i18n/locales/vi/register.js.map +0 -1
- package/dist/default/i18n/locales/zh/register.js.map +0 -1
- package/dist/default/i18n/locales/zh-CN/register.js.map +0 -1
- package/dist/default/i18n/locales/zh-TW/register.js.map +0 -1
- package/dist/default/i18n/text.js.map +0 -1
- package/dist/default/i18n/use-ambient-lang.js.map +0 -1
- package/dist/default/i18n/use-lang-root-element.js.map +0 -1
- package/dist/default/i18n/use-lazy-translations.js.map +0 -1
- package/dist/default/i18n/use-locale-root-notifications.js.map +0 -1
- package/dist/default/i18n/use-merged-translations.js.map +0 -1
- package/dist/default/i18n/use-registry-epoch.js.map +0 -1
- package/dist/default/icons/dist/react/default/airplay-enter.js.map +0 -1
- package/dist/default/icons/dist/react/default/airplay-exit.js.map +0 -1
- package/dist/default/icons/dist/react/default/captions-off.js.map +0 -1
- package/dist/default/icons/dist/react/default/captions-on.js.map +0 -1
- package/dist/default/icons/dist/react/default/cast-enter.js.map +0 -1
- package/dist/default/icons/dist/react/default/cast-exit.js.map +0 -1
- package/dist/default/icons/dist/react/default/check.js.map +0 -1
- package/dist/default/icons/dist/react/default/chevron.js.map +0 -1
- package/dist/default/icons/dist/react/default/fullscreen-enter.js.map +0 -1
- package/dist/default/icons/dist/react/default/fullscreen-exit.js.map +0 -1
- package/dist/default/icons/dist/react/default/gear.js.map +0 -1
- package/dist/default/icons/dist/react/default/pause.js.map +0 -1
- package/dist/default/icons/dist/react/default/pip-enter.js.map +0 -1
- package/dist/default/icons/dist/react/default/pip-exit.js.map +0 -1
- package/dist/default/icons/dist/react/default/play.js.map +0 -1
- package/dist/default/icons/dist/react/default/quality.js.map +0 -1
- package/dist/default/icons/dist/react/default/restart.js.map +0 -1
- package/dist/default/icons/dist/react/default/seek.js.map +0 -1
- package/dist/default/icons/dist/react/default/speech.js.map +0 -1
- package/dist/default/icons/dist/react/default/speed.js.map +0 -1
- package/dist/default/icons/dist/react/default/spinner.js.map +0 -1
- package/dist/default/icons/dist/react/default/switches.js.map +0 -1
- package/dist/default/icons/dist/react/default/volume-high.js.map +0 -1
- package/dist/default/icons/dist/react/default/volume-low.js.map +0 -1
- package/dist/default/icons/dist/react/default/volume-off.js.map +0 -1
- package/dist/default/icons/dist/react/minimal/airplay-enter.js.map +0 -1
- package/dist/default/icons/dist/react/minimal/airplay-exit.js.map +0 -1
- package/dist/default/icons/dist/react/minimal/captions-off.js.map +0 -1
- package/dist/default/icons/dist/react/minimal/captions-on.js.map +0 -1
- package/dist/default/icons/dist/react/minimal/cast-enter.js.map +0 -1
- package/dist/default/icons/dist/react/minimal/cast-exit.js.map +0 -1
- package/dist/default/icons/dist/react/minimal/check.js.map +0 -1
- package/dist/default/icons/dist/react/minimal/chevron.js.map +0 -1
- package/dist/default/icons/dist/react/minimal/fullscreen-enter.js.map +0 -1
- package/dist/default/icons/dist/react/minimal/fullscreen-exit.js.map +0 -1
- package/dist/default/icons/dist/react/minimal/gear.js.map +0 -1
- package/dist/default/icons/dist/react/minimal/pause.js.map +0 -1
- package/dist/default/icons/dist/react/minimal/pip-enter.js.map +0 -1
- package/dist/default/icons/dist/react/minimal/pip-exit.js.map +0 -1
- package/dist/default/icons/dist/react/minimal/play.js.map +0 -1
- package/dist/default/icons/dist/react/minimal/quality.js.map +0 -1
- package/dist/default/icons/dist/react/minimal/restart.js.map +0 -1
- package/dist/default/icons/dist/react/minimal/seek.js.map +0 -1
- package/dist/default/icons/dist/react/minimal/speech.js.map +0 -1
- package/dist/default/icons/dist/react/minimal/speed.js.map +0 -1
- package/dist/default/icons/dist/react/minimal/spinner.js.map +0 -1
- package/dist/default/icons/dist/react/minimal/switches.js.map +0 -1
- package/dist/default/icons/dist/react/minimal/volume-high.js.map +0 -1
- package/dist/default/icons/dist/react/minimal/volume-low.js.map +0 -1
- package/dist/default/icons/dist/react/minimal/volume-off.js.map +0 -1
- package/dist/default/internal/skins/default-audio/components/buttons/mute-button.js.map +0 -1
- package/dist/default/internal/skins/default-audio/components/buttons/play-button.js.map +0 -1
- package/dist/default/internal/skins/default-audio/components/buttons/seek-button.js.map +0 -1
- package/dist/default/internal/skins/default-audio/components/controls/volume-popover.js +0 -32
- package/dist/default/internal/skins/default-audio/components/controls/volume-popover.js.map +0 -1
- package/dist/default/internal/skins/default-audio/components/feedback/buffering-indicator.js +0 -17
- package/dist/default/internal/skins/default-audio/components/feedback/buffering-indicator.js.map +0 -1
- package/dist/default/internal/skins/default-audio/components/menus/radio-item.js.map +0 -1
- package/dist/default/internal/skins/default-audio/controls.js +0 -70
- package/dist/default/internal/skins/default-audio/controls.js.map +0 -1
- package/dist/default/internal/skins/default-audio/skin.js.map +0 -1
- package/dist/default/internal/skins/default-audio/skins/shared/audio/play-button.js +0 -22
- package/dist/default/internal/skins/default-audio/skins/shared/audio/play-button.js.map +0 -1
- package/dist/default/internal/skins/default-audio/skins/shared/audio/settings-menu.js +0 -44
- package/dist/default/internal/skins/default-audio/skins/shared/audio/settings-menu.js.map +0 -1
- package/dist/default/internal/skins/default-live-audio/components/buttons/mute-button.js.map +0 -1
- package/dist/default/internal/skins/default-live-audio/components/buttons/play-button.js.map +0 -1
- package/dist/default/internal/skins/default-live-audio/components/controls/volume-popover.js +0 -32
- package/dist/default/internal/skins/default-live-audio/components/controls/volume-popover.js.map +0 -1
- package/dist/default/internal/skins/default-live-audio/components/feedback/buffering-indicator.js +0 -17
- package/dist/default/internal/skins/default-live-audio/components/feedback/buffering-indicator.js.map +0 -1
- package/dist/default/internal/skins/default-live-audio/controls.js +0 -37
- package/dist/default/internal/skins/default-live-audio/controls.js.map +0 -1
- package/dist/default/internal/skins/default-live-audio/skin.js.map +0 -1
- package/dist/default/internal/skins/default-live-audio/skins/shared/audio/play-button.js +0 -22
- package/dist/default/internal/skins/default-live-audio/skins/shared/audio/play-button.js.map +0 -1
- package/dist/default/internal/skins/default-live-video/components/buttons/airplay-button.js.map +0 -1
- package/dist/default/internal/skins/default-live-video/components/buttons/captions-button.js.map +0 -1
- package/dist/default/internal/skins/default-live-video/components/buttons/cast-button.js.map +0 -1
- package/dist/default/internal/skins/default-live-video/components/buttons/fullscreen-button.js.map +0 -1
- package/dist/default/internal/skins/default-live-video/components/buttons/mute-button.js.map +0 -1
- package/dist/default/internal/skins/default-live-video/components/buttons/pip-button.js.map +0 -1
- package/dist/default/internal/skins/default-live-video/components/buttons/play-button.js.map +0 -1
- package/dist/default/internal/skins/default-live-video/components/controls/volume-popover.js +0 -32
- package/dist/default/internal/skins/default-live-video/components/controls/volume-popover.js.map +0 -1
- package/dist/default/internal/skins/default-live-video/components/feedback/buffering-indicator.js +0 -17
- package/dist/default/internal/skins/default-live-video/components/feedback/buffering-indicator.js.map +0 -1
- package/dist/default/internal/skins/default-live-video/components/feedback/status-indicator.js +0 -51
- package/dist/default/internal/skins/default-live-video/components/feedback/status-indicator.js.map +0 -1
- package/dist/default/internal/skins/default-live-video/components/feedback/volume-indicator.js +0 -29
- package/dist/default/internal/skins/default-live-video/components/feedback/volume-indicator.js.map +0 -1
- package/dist/default/internal/skins/default-live-video/components/menus/captions-menu.js.map +0 -1
- package/dist/default/internal/skins/default-live-video/components/menus/radio-item.js.map +0 -1
- package/dist/default/internal/skins/default-live-video/controls.js +0 -59
- package/dist/default/internal/skins/default-live-video/controls.js.map +0 -1
- package/dist/default/internal/skins/default-live-video/skin.js.map +0 -1
- package/dist/default/internal/skins/default-live-video/skins/shared/live-video/status-indicators.js +0 -22
- package/dist/default/internal/skins/default-live-video/skins/shared/live-video/status-indicators.js.map +0 -1
- package/dist/default/internal/skins/default-video/components/buttons/airplay-button.js.map +0 -1
- package/dist/default/internal/skins/default-video/components/buttons/captions-button.js.map +0 -1
- package/dist/default/internal/skins/default-video/components/buttons/cast-button.js.map +0 -1
- package/dist/default/internal/skins/default-video/components/buttons/fullscreen-button.js.map +0 -1
- package/dist/default/internal/skins/default-video/components/buttons/mute-button.js.map +0 -1
- package/dist/default/internal/skins/default-video/components/buttons/pip-button.js.map +0 -1
- package/dist/default/internal/skins/default-video/components/buttons/play-button.js.map +0 -1
- package/dist/default/internal/skins/default-video/components/controls/volume-popover.js +0 -32
- package/dist/default/internal/skins/default-video/components/controls/volume-popover.js.map +0 -1
- package/dist/default/internal/skins/default-video/components/feedback/buffering-indicator.js +0 -17
- package/dist/default/internal/skins/default-video/components/feedback/buffering-indicator.js.map +0 -1
- package/dist/default/internal/skins/default-video/components/feedback/seek-indicator.js +0 -18
- package/dist/default/internal/skins/default-video/components/feedback/seek-indicator.js.map +0 -1
- package/dist/default/internal/skins/default-video/components/feedback/status-indicator.js +0 -51
- package/dist/default/internal/skins/default-video/components/feedback/status-indicator.js.map +0 -1
- package/dist/default/internal/skins/default-video/components/feedback/volume-indicator.js +0 -29
- package/dist/default/internal/skins/default-video/components/feedback/volume-indicator.js.map +0 -1
- package/dist/default/internal/skins/default-video/components/menus/audio-track-menu.js.map +0 -1
- package/dist/default/internal/skins/default-video/components/menus/captions-submenu.js.map +0 -1
- package/dist/default/internal/skins/default-video/components/menus/menu-chevron.js.map +0 -1
- package/dist/default/internal/skins/default-video/components/menus/playback-rate-submenu.js.map +0 -1
- package/dist/default/internal/skins/default-video/components/menus/quality-menu.js.map +0 -1
- package/dist/default/internal/skins/default-video/components/menus/radio-item.js.map +0 -1
- package/dist/default/internal/skins/default-video/components/menus/settings-menu.js.map +0 -1
- package/dist/default/internal/skins/default-video/components/sliders/time-slider.js.map +0 -1
- package/dist/default/internal/skins/default-video/controls.js +0 -79
- package/dist/default/internal/skins/default-video/controls.js.map +0 -1
- package/dist/default/internal/skins/default-video/skin.js.map +0 -1
- package/dist/default/internal/skins/default-video/skins/shared/video/settings-menu.js +0 -22
- package/dist/default/internal/skins/default-video/skins/shared/video/settings-menu.js.map +0 -1
- package/dist/default/internal/skins/default-video/skins/shared/video/status-indicators.js +0 -24
- package/dist/default/internal/skins/default-video/skins/shared/video/status-indicators.js.map +0 -1
- package/dist/default/internal/skins/minimal-audio/components/buttons/mute-button.js.map +0 -1
- package/dist/default/internal/skins/minimal-audio/components/buttons/play-button.js.map +0 -1
- package/dist/default/internal/skins/minimal-audio/components/buttons/seek-button.js.map +0 -1
- package/dist/default/internal/skins/minimal-audio/components/controls/volume-popover.js +0 -32
- package/dist/default/internal/skins/minimal-audio/components/controls/volume-popover.js.map +0 -1
- package/dist/default/internal/skins/minimal-audio/components/feedback/buffering-indicator.js +0 -17
- package/dist/default/internal/skins/minimal-audio/components/feedback/buffering-indicator.js.map +0 -1
- package/dist/default/internal/skins/minimal-audio/components/menus/radio-item.js.map +0 -1
- package/dist/default/internal/skins/minimal-audio/controls.js +0 -74
- package/dist/default/internal/skins/minimal-audio/controls.js.map +0 -1
- package/dist/default/internal/skins/minimal-audio/skin.js.map +0 -1
- package/dist/default/internal/skins/minimal-audio/skins/shared/audio/play-button.js +0 -22
- package/dist/default/internal/skins/minimal-audio/skins/shared/audio/play-button.js.map +0 -1
- package/dist/default/internal/skins/minimal-audio/skins/shared/audio/settings-menu.js +0 -44
- package/dist/default/internal/skins/minimal-audio/skins/shared/audio/settings-menu.js.map +0 -1
- package/dist/default/internal/skins/minimal-live-audio/components/buttons/mute-button.js.map +0 -1
- package/dist/default/internal/skins/minimal-live-audio/components/buttons/play-button.js.map +0 -1
- package/dist/default/internal/skins/minimal-live-audio/components/controls/volume-popover.js +0 -32
- package/dist/default/internal/skins/minimal-live-audio/components/controls/volume-popover.js.map +0 -1
- package/dist/default/internal/skins/minimal-live-audio/components/feedback/buffering-indicator.js +0 -17
- package/dist/default/internal/skins/minimal-live-audio/components/feedback/buffering-indicator.js.map +0 -1
- package/dist/default/internal/skins/minimal-live-audio/controls.js +0 -42
- package/dist/default/internal/skins/minimal-live-audio/controls.js.map +0 -1
- package/dist/default/internal/skins/minimal-live-audio/skin.js.map +0 -1
- package/dist/default/internal/skins/minimal-live-audio/skins/shared/audio/play-button.js +0 -22
- package/dist/default/internal/skins/minimal-live-audio/skins/shared/audio/play-button.js.map +0 -1
- package/dist/default/internal/skins/minimal-live-video/components/buttons/airplay-button.js.map +0 -1
- package/dist/default/internal/skins/minimal-live-video/components/buttons/captions-button.js.map +0 -1
- package/dist/default/internal/skins/minimal-live-video/components/buttons/cast-button.js.map +0 -1
- package/dist/default/internal/skins/minimal-live-video/components/buttons/fullscreen-button.js.map +0 -1
- package/dist/default/internal/skins/minimal-live-video/components/buttons/mute-button.js.map +0 -1
- package/dist/default/internal/skins/minimal-live-video/components/buttons/pip-button.js.map +0 -1
- package/dist/default/internal/skins/minimal-live-video/components/buttons/play-button.js.map +0 -1
- package/dist/default/internal/skins/minimal-live-video/components/controls/volume-popover.js +0 -32
- package/dist/default/internal/skins/minimal-live-video/components/controls/volume-popover.js.map +0 -1
- package/dist/default/internal/skins/minimal-live-video/components/feedback/buffering-indicator.js +0 -17
- package/dist/default/internal/skins/minimal-live-video/components/feedback/buffering-indicator.js.map +0 -1
- package/dist/default/internal/skins/minimal-live-video/components/feedback/status-indicator.js +0 -51
- package/dist/default/internal/skins/minimal-live-video/components/feedback/status-indicator.js.map +0 -1
- package/dist/default/internal/skins/minimal-live-video/components/feedback/volume-indicator.js +0 -29
- package/dist/default/internal/skins/minimal-live-video/components/feedback/volume-indicator.js.map +0 -1
- package/dist/default/internal/skins/minimal-live-video/components/menus/captions-menu.js.map +0 -1
- package/dist/default/internal/skins/minimal-live-video/components/menus/radio-item.js.map +0 -1
- package/dist/default/internal/skins/minimal-live-video/controls.js +0 -70
- package/dist/default/internal/skins/minimal-live-video/controls.js.map +0 -1
- package/dist/default/internal/skins/minimal-live-video/skin.js.map +0 -1
- package/dist/default/internal/skins/minimal-live-video/skins/shared/live-video/status-indicators.js +0 -22
- package/dist/default/internal/skins/minimal-live-video/skins/shared/live-video/status-indicators.js.map +0 -1
- package/dist/default/internal/skins/minimal-video/components/buttons/airplay-button.js.map +0 -1
- package/dist/default/internal/skins/minimal-video/components/buttons/captions-button.js.map +0 -1
- package/dist/default/internal/skins/minimal-video/components/buttons/cast-button.js.map +0 -1
- package/dist/default/internal/skins/minimal-video/components/buttons/fullscreen-button.js.map +0 -1
- package/dist/default/internal/skins/minimal-video/components/buttons/mute-button.js.map +0 -1
- package/dist/default/internal/skins/minimal-video/components/buttons/pip-button.js.map +0 -1
- package/dist/default/internal/skins/minimal-video/components/buttons/play-button.js.map +0 -1
- package/dist/default/internal/skins/minimal-video/components/controls/volume-popover.js +0 -32
- package/dist/default/internal/skins/minimal-video/components/controls/volume-popover.js.map +0 -1
- package/dist/default/internal/skins/minimal-video/components/feedback/buffering-indicator.js +0 -17
- package/dist/default/internal/skins/minimal-video/components/feedback/buffering-indicator.js.map +0 -1
- package/dist/default/internal/skins/minimal-video/components/feedback/seek-indicator.js +0 -18
- package/dist/default/internal/skins/minimal-video/components/feedback/seek-indicator.js.map +0 -1
- package/dist/default/internal/skins/minimal-video/components/feedback/status-indicator.js +0 -51
- package/dist/default/internal/skins/minimal-video/components/feedback/status-indicator.js.map +0 -1
- package/dist/default/internal/skins/minimal-video/components/feedback/volume-indicator.js +0 -29
- package/dist/default/internal/skins/minimal-video/components/feedback/volume-indicator.js.map +0 -1
- package/dist/default/internal/skins/minimal-video/components/menus/audio-track-menu.js.map +0 -1
- package/dist/default/internal/skins/minimal-video/components/menus/captions-submenu.js.map +0 -1
- package/dist/default/internal/skins/minimal-video/components/menus/menu-chevron.js.map +0 -1
- package/dist/default/internal/skins/minimal-video/components/menus/playback-rate-submenu.js.map +0 -1
- package/dist/default/internal/skins/minimal-video/components/menus/quality-menu.js.map +0 -1
- package/dist/default/internal/skins/minimal-video/components/menus/radio-item.js.map +0 -1
- package/dist/default/internal/skins/minimal-video/components/menus/settings-menu.js.map +0 -1
- package/dist/default/internal/skins/minimal-video/components/sliders/time-slider.js.map +0 -1
- package/dist/default/internal/skins/minimal-video/controls.js +0 -93
- package/dist/default/internal/skins/minimal-video/controls.js.map +0 -1
- package/dist/default/internal/skins/minimal-video/skin.js.map +0 -1
- package/dist/default/internal/skins/minimal-video/skins/shared/video/settings-menu.js +0 -22
- package/dist/default/internal/skins/minimal-video/skins/shared/video/settings-menu.js.map +0 -1
- package/dist/default/internal/skins/minimal-video/skins/shared/video/status-indicators.js +0 -24
- package/dist/default/internal/skins/minimal-video/skins/shared/video/status-indicators.js.map +0 -1
- package/dist/default/internal/skins/shared/components/buttons/button-tooltip.js.map +0 -1
- package/dist/default/internal/skins/shared/components/buttons/button.js.map +0 -1
- package/dist/default/internal/skins/shared/components/buttons/live-button.js.map +0 -1
- package/dist/default/internal/skins/shared/components/buttons/playback-rate-button.js.map +0 -1
- package/dist/default/internal/skins/shared/components/feedback/error-dialog.js +0 -29
- package/dist/default/internal/skins/shared/components/feedback/error-dialog.js.map +0 -1
- package/dist/default/internal/skins/shared/components/feedback/status-announcer.js +0 -15
- package/dist/default/internal/skins/shared/components/feedback/status-announcer.js.map +0 -1
- package/dist/default/internal/skins/shared/components/layout/container.js.map +0 -1
- package/dist/default/internal/skins/shared/components/layout/poster.js +0 -20
- package/dist/default/internal/skins/shared/components/layout/poster.js.map +0 -1
- package/dist/default/internal/skins/shared/components/sliders/slider.js.map +0 -1
- package/dist/default/internal/skins/shared/components/sliders/volume-slider.js.map +0 -1
- package/dist/default/internal/skins/shared/skins/shared/audio/error-dialog.js +0 -29
- package/dist/default/internal/skins/shared/skins/shared/audio/error-dialog.js.map +0 -1
- package/dist/default/internal/skins/shared/skins/shared/audio/time-slider.js +0 -42
- package/dist/default/internal/skins/shared/skins/shared/audio/time-slider.js.map +0 -1
- package/dist/default/internal/skins/shared/skins/shared/live-playback-hotkeys.js +0 -37
- package/dist/default/internal/skins/shared/skins/shared/live-playback-hotkeys.js.map +0 -1
- package/dist/default/internal/skins/shared/skins/shared/live-video/gestures.js +0 -31
- package/dist/default/internal/skins/shared/skins/shared/live-video/gestures.js.map +0 -1
- package/dist/default/internal/skins/shared/skins/shared/live-video/hotkeys.js +0 -29
- package/dist/default/internal/skins/shared/skins/shared/live-video/hotkeys.js.map +0 -1
- package/dist/default/internal/skins/shared/skins/shared/playback-hotkeys.js +0 -84
- package/dist/default/internal/skins/shared/skins/shared/playback-hotkeys.js.map +0 -1
- package/dist/default/internal/skins/shared/skins/shared/video/gestures.js +0 -43
- package/dist/default/internal/skins/shared/skins/shared/video/gestures.js.map +0 -1
- package/dist/default/internal/skins/shared/skins/shared/video/hotkeys.js +0 -29
- package/dist/default/internal/skins/shared/skins/shared/video/hotkeys.js.map +0 -1
- package/dist/default/media/audio.js.map +0 -1
- package/dist/default/media/background-video/adapter.js.map +0 -1
- package/dist/default/media/cloudflare-video/adapter.js.map +0 -1
- package/dist/default/media/dash-video/adapter.js.map +0 -1
- package/dist/default/media/hls-audio/adapter.js.map +0 -1
- package/dist/default/media/hls-background-video/adapter.js.map +0 -1
- package/dist/default/media/hls-video/adapter.js.map +0 -1
- package/dist/default/media/hlsjs-video/adapter.js.map +0 -1
- package/dist/default/media/mux-audio/hls-js.js.map +0 -1
- package/dist/default/media/mux-audio/spf.js.map +0 -1
- package/dist/default/media/mux-video/hls-js.js.map +0 -1
- package/dist/default/media/mux-video/spf.js.map +0 -1
- package/dist/default/media/mux-video/storyboard.js.map +0 -1
- package/dist/default/media/native-hls-video/adapter.js.map +0 -1
- package/dist/default/media/shaka-video/adapter.js.map +0 -1
- package/dist/default/media/spotify-audio/adapter.js.map +0 -1
- package/dist/default/media/tiktok-video/adapter.js.map +0 -1
- package/dist/default/media/twitch-video/adapter.js.map +0 -1
- package/dist/default/media/video.js.map +0 -1
- package/dist/default/media/vimeo-video/adapter.js.map +0 -1
- package/dist/default/media/wistia-video/adapter.js.map +0 -1
- package/dist/default/media/youtube-video/adapter.js.map +0 -1
- package/dist/default/player/container.js.map +0 -1
- package/dist/default/player/context.js.map +0 -1
- package/dist/default/player/create-player.js.map +0 -1
- package/dist/default/player/popup-group-context.js.map +0 -1
- package/dist/default/presets/audio/index.js.map +0 -1
- package/dist/default/presets/audio/minimal-skin.js.map +0 -1
- package/dist/default/presets/audio/player.js.map +0 -1
- package/dist/default/presets/audio/skin.js.map +0 -1
- package/dist/default/presets/background/index.js.map +0 -1
- package/dist/default/presets/background/player.js.map +0 -1
- package/dist/default/presets/background/skin.js.map +0 -1
- package/dist/default/presets/live-audio/index.js.map +0 -1
- package/dist/default/presets/live-audio/minimal-skin.js.map +0 -1
- package/dist/default/presets/live-audio/player.js.map +0 -1
- package/dist/default/presets/live-audio/skin.js.map +0 -1
- package/dist/default/presets/live-video/index.js.map +0 -1
- package/dist/default/presets/live-video/minimal-skin.js.map +0 -1
- package/dist/default/presets/live-video/player.js.map +0 -1
- package/dist/default/presets/live-video/skin.js.map +0 -1
- package/dist/default/presets/video/index.js.map +0 -1
- package/dist/default/presets/video/minimal-skin.js.map +0 -1
- package/dist/default/presets/video/player.js.map +0 -1
- package/dist/default/presets/video/skin.js.map +0 -1
- package/dist/default/ui/airplay-button/component.js.map +0 -1
- package/dist/default/ui/alert-dialog/index.parts.js.map +0 -1
- package/dist/default/ui/alert-dialog/root.js.map +0 -1
- package/dist/default/ui/audio-track/use-audio-track-options.js.map +0 -1
- package/dist/default/ui/audio-track-radio-group/component.js.map +0 -1
- package/dist/default/ui/audio-track-radio-group/index.parts.js.map +0 -1
- package/dist/default/ui/buffering-indicator/component.js.map +0 -1
- package/dist/default/ui/captions-button/component.js.map +0 -1
- package/dist/default/ui/captions-radio-group/component.js.map +0 -1
- package/dist/default/ui/captions-radio-group/index.parts.js.map +0 -1
- package/dist/default/ui/captions-radio-group/use-captions-options.js.map +0 -1
- package/dist/default/ui/cast-button/component.js.map +0 -1
- package/dist/default/ui/controls/backdrop.js.map +0 -1
- package/dist/default/ui/controls/content.js.map +0 -1
- package/dist/default/ui/controls/context.js.map +0 -1
- package/dist/default/ui/controls/group.js.map +0 -1
- package/dist/default/ui/controls/index.parts.js.map +0 -1
- package/dist/default/ui/controls/root.js.map +0 -1
- package/dist/default/ui/create-context-part.js.map +0 -1
- package/dist/default/ui/create-media-button.js.map +0 -1
- package/dist/default/ui/dialog/backdrop.js.map +0 -1
- package/dist/default/ui/dialog/close.js.map +0 -1
- package/dist/default/ui/dialog/context.js.map +0 -1
- package/dist/default/ui/dialog/description.js.map +0 -1
- package/dist/default/ui/dialog/index.parts.js.map +0 -1
- package/dist/default/ui/dialog/popup.js.map +0 -1
- package/dist/default/ui/dialog/root.js.map +0 -1
- package/dist/default/ui/dialog/title.js.map +0 -1
- package/dist/default/ui/dialog/trigger.js.map +0 -1
- package/dist/default/ui/dialog/use-dialog-root.js.map +0 -1
- package/dist/default/ui/error-dialog/close.js.map +0 -1
- package/dist/default/ui/error-dialog/context.js.map +0 -1
- package/dist/default/ui/error-dialog/description.js.map +0 -1
- package/dist/default/ui/error-dialog/index.parts.js.map +0 -1
- package/dist/default/ui/error-dialog/root.js.map +0 -1
- package/dist/default/ui/error-dialog/title.js.map +0 -1
- package/dist/default/ui/fullscreen-button/component.js.map +0 -1
- package/dist/default/ui/gesture/component.js.map +0 -1
- package/dist/default/ui/gesture/use-doubletap-gesture.js.map +0 -1
- package/dist/default/ui/gesture/use-tap-gesture.js.map +0 -1
- package/dist/default/ui/hooks/create-radio-options-hook.js.map +0 -1
- package/dist/default/ui/hooks/use-button.js.map +0 -1
- package/dist/default/ui/hooks/use-positioned-state.js.map +0 -1
- package/dist/default/ui/hooks/use-slider.js.map +0 -1
- package/dist/default/ui/hotkey/component.js.map +0 -1
- package/dist/default/ui/hotkey/use-hotkey-shortcut.js.map +0 -1
- package/dist/default/ui/hotkey/use-hotkey.js.map +0 -1
- package/dist/default/ui/input-indicator/use-indicator-visibility.js.map +0 -1
- package/dist/default/ui/input-indicator/use-input-action-subscription.js.map +0 -1
- package/dist/default/ui/input-indicator/use-input-indicator-root.js.map +0 -1
- package/dist/default/ui/input-indicator/use-rendered-indicator-state.js.map +0 -1
- package/dist/default/ui/live-button/component.js.map +0 -1
- package/dist/default/ui/menu/checkbox-item.js.map +0 -1
- package/dist/default/ui/menu/content.js.map +0 -1
- package/dist/default/ui/menu/context.js.map +0 -1
- package/dist/default/ui/menu/group-label.js.map +0 -1
- package/dist/default/ui/menu/group.js.map +0 -1
- package/dist/default/ui/menu/index.parts.js.map +0 -1
- package/dist/default/ui/menu/item-indicator.js.map +0 -1
- package/dist/default/ui/menu/item.js.map +0 -1
- package/dist/default/ui/menu/keyboard.js.map +0 -1
- package/dist/default/ui/menu/popup.js.map +0 -1
- package/dist/default/ui/menu/radio-group.js.map +0 -1
- package/dist/default/ui/menu/radio-item.js.map +0 -1
- package/dist/default/ui/menu/root.js.map +0 -1
- package/dist/default/ui/menu/separator.js.map +0 -1
- package/dist/default/ui/menu/trigger.js.map +0 -1
- package/dist/default/ui/menu/use-menu-group.js.map +0 -1
- package/dist/default/ui/mute-button/component.js.map +0 -1
- package/dist/default/ui/pip-button/component.js.map +0 -1
- package/dist/default/ui/play-button/component.js.map +0 -1
- package/dist/default/ui/playback-rate/use-playback-rate-options.js.map +0 -1
- package/dist/default/ui/playback-rate-button/component.js.map +0 -1
- package/dist/default/ui/playback-rate-radio-group/component.js.map +0 -1
- package/dist/default/ui/playback-rate-radio-group/index.parts.js.map +0 -1
- package/dist/default/ui/popover/arrow.js.map +0 -1
- package/dist/default/ui/popover/context.js.map +0 -1
- package/dist/default/ui/popover/index.parts.js.map +0 -1
- package/dist/default/ui/popover/popup.js.map +0 -1
- package/dist/default/ui/popover/root.js.map +0 -1
- package/dist/default/ui/popover/trigger.js.map +0 -1
- package/dist/default/ui/popover/use-popup-position.js.map +0 -1
- package/dist/default/ui/poster/context.js.map +0 -1
- package/dist/default/ui/poster/image.js.map +0 -1
- package/dist/default/ui/poster/index.parts.js.map +0 -1
- package/dist/default/ui/poster/root.js.map +0 -1
- package/dist/default/ui/quality/use-quality-options.js.map +0 -1
- package/dist/default/ui/quality-radio-group/component.js.map +0 -1
- package/dist/default/ui/quality-radio-group/index.parts.js.map +0 -1
- package/dist/default/ui/seek-button/component.js.map +0 -1
- package/dist/default/ui/seek-indicator/context.js.map +0 -1
- package/dist/default/ui/seek-indicator/index.parts.js.map +0 -1
- package/dist/default/ui/seek-indicator/root.js.map +0 -1
- package/dist/default/ui/seek-indicator/value.js.map +0 -1
- package/dist/default/ui/slider/buffer.js.map +0 -1
- package/dist/default/ui/slider/context.js.map +0 -1
- package/dist/default/ui/slider/fill.js.map +0 -1
- package/dist/default/ui/slider/index.parts.js.map +0 -1
- package/dist/default/ui/slider/preview.js.map +0 -1
- package/dist/default/ui/slider/root.js.map +0 -1
- package/dist/default/ui/slider/thumb.js.map +0 -1
- package/dist/default/ui/slider/thumbnail/index.parts.js.map +0 -1
- package/dist/default/ui/slider/thumbnail/root.js.map +0 -1
- package/dist/default/ui/slider/track.js.map +0 -1
- package/dist/default/ui/slider/value.js.map +0 -1
- package/dist/default/ui/status-announcer/component.js.map +0 -1
- package/dist/default/ui/status-indicator/context.js.map +0 -1
- package/dist/default/ui/status-indicator/index.parts.js.map +0 -1
- package/dist/default/ui/status-indicator/root.js.map +0 -1
- package/dist/default/ui/status-indicator/value.js.map +0 -1
- package/dist/default/ui/thumbnail/context.js.map +0 -1
- package/dist/default/ui/thumbnail/image.js.map +0 -1
- package/dist/default/ui/thumbnail/index.parts.js.map +0 -1
- package/dist/default/ui/thumbnail/root.js.map +0 -1
- package/dist/default/ui/time/group.js.map +0 -1
- package/dist/default/ui/time/index.parts.js.map +0 -1
- package/dist/default/ui/time/separator.js.map +0 -1
- package/dist/default/ui/time/value.js.map +0 -1
- package/dist/default/ui/time-slider/chapter-title.js.map +0 -1
- package/dist/default/ui/time-slider/chapters.js.map +0 -1
- package/dist/default/ui/time-slider/index.parts.js.map +0 -1
- package/dist/default/ui/time-slider/root.js.map +0 -1
- package/dist/default/ui/time-slider/segments.js.map +0 -1
- package/dist/default/ui/title/component.js.map +0 -1
- package/dist/default/ui/tooltip/arrow.js.map +0 -1
- package/dist/default/ui/tooltip/context.js.map +0 -1
- package/dist/default/ui/tooltip/group-context.js.map +0 -1
- package/dist/default/ui/tooltip/index.parts.js.map +0 -1
- package/dist/default/ui/tooltip/label.js.map +0 -1
- package/dist/default/ui/tooltip/popup.js.map +0 -1
- package/dist/default/ui/tooltip/provider.js.map +0 -1
- package/dist/default/ui/tooltip/root.js.map +0 -1
- package/dist/default/ui/tooltip/shortcut.js.map +0 -1
- package/dist/default/ui/tooltip/trigger.js.map +0 -1
- package/dist/default/ui/volume-indicator/context.js.map +0 -1
- package/dist/default/ui/volume-indicator/fill.js.map +0 -1
- package/dist/default/ui/volume-indicator/index.parts.js.map +0 -1
- package/dist/default/ui/volume-indicator/root.js.map +0 -1
- package/dist/default/ui/volume-indicator/value.js.map +0 -1
- package/dist/default/ui/volume-popover/context.js.map +0 -1
- package/dist/default/ui/volume-popover/index.parts.js.map +0 -1
- package/dist/default/ui/volume-popover/popup.js.map +0 -1
- package/dist/default/ui/volume-popover/root.js.map +0 -1
- package/dist/default/ui/volume-popover/trigger.js.map +0 -1
- package/dist/default/ui/volume-slider/index.parts.js.map +0 -1
- package/dist/default/ui/volume-slider/root.js.map +0 -1
- package/dist/default/utils/merge-props.js.map +0 -1
- package/dist/default/utils/use-attach-iframe.js +0 -13
- package/dist/default/utils/use-attach-iframe.js.map +0 -1
- package/dist/default/utils/use-attach-media.js.map +0 -1
- package/dist/default/utils/use-composed-refs.js.map +0 -1
- package/dist/default/utils/use-destroy.js.map +0 -1
- package/dist/default/utils/use-force-render.js.map +0 -1
- package/dist/default/utils/use-latest-ref.js.map +0 -1
- package/dist/default/utils/use-media-extension.js.map +0 -1
- package/dist/default/utils/use-media-instance.js.map +0 -1
- package/dist/default/utils/use-render.js.map +0 -1
- package/dist/default/utils/use-safe-id.js.map +0 -1
- package/dist/default/utils/use-sync-props.js.map +0 -1
- package/dist/dev/extensions/google-cast/extension.d.ts.map +0 -1
- package/dist/dev/extensions/mux-data/extension.d.ts.map +0 -1
- package/dist/dev/i18n/context.d.ts.map +0 -1
- package/dist/dev/i18n/create-i18n.d.ts.map +0 -1
- package/dist/dev/i18n/text.d.ts.map +0 -1
- package/dist/dev/icons/dist/react/default/index.d.ts.map +0 -1
- package/dist/dev/icons/dist/react/minimal/index.d.ts.map +0 -1
- package/dist/dev/icons/index.d.ts.map +0 -1
- package/dist/dev/icons/minimal/index.d.ts.map +0 -1
- package/dist/dev/index.d.ts.map +0 -1
- package/dist/dev/internal/skins/default-audio/components/controls/volume-popover.js +0 -32
- package/dist/dev/internal/skins/default-audio/components/controls/volume-popover.js.map +0 -1
- package/dist/dev/internal/skins/default-audio/components/feedback/buffering-indicator.js +0 -17
- package/dist/dev/internal/skins/default-audio/components/feedback/buffering-indicator.js.map +0 -1
- package/dist/dev/internal/skins/default-audio/controls.js +0 -70
- package/dist/dev/internal/skins/default-audio/controls.js.map +0 -1
- package/dist/dev/internal/skins/default-audio/skins/shared/audio/play-button.js +0 -22
- package/dist/dev/internal/skins/default-audio/skins/shared/audio/play-button.js.map +0 -1
- package/dist/dev/internal/skins/default-audio/skins/shared/audio/settings-menu.js +0 -44
- package/dist/dev/internal/skins/default-audio/skins/shared/audio/settings-menu.js.map +0 -1
- package/dist/dev/internal/skins/default-live-audio/components/controls/volume-popover.js +0 -32
- package/dist/dev/internal/skins/default-live-audio/components/controls/volume-popover.js.map +0 -1
- package/dist/dev/internal/skins/default-live-audio/components/feedback/buffering-indicator.js +0 -17
- package/dist/dev/internal/skins/default-live-audio/components/feedback/buffering-indicator.js.map +0 -1
- package/dist/dev/internal/skins/default-live-audio/controls.js +0 -37
- package/dist/dev/internal/skins/default-live-audio/controls.js.map +0 -1
- package/dist/dev/internal/skins/default-live-audio/skins/shared/audio/play-button.js +0 -22
- package/dist/dev/internal/skins/default-live-audio/skins/shared/audio/play-button.js.map +0 -1
- package/dist/dev/internal/skins/default-live-video/components/controls/volume-popover.js +0 -32
- package/dist/dev/internal/skins/default-live-video/components/controls/volume-popover.js.map +0 -1
- package/dist/dev/internal/skins/default-live-video/components/feedback/buffering-indicator.js +0 -17
- package/dist/dev/internal/skins/default-live-video/components/feedback/buffering-indicator.js.map +0 -1
- package/dist/dev/internal/skins/default-live-video/components/feedback/status-indicator.js +0 -51
- package/dist/dev/internal/skins/default-live-video/components/feedback/status-indicator.js.map +0 -1
- package/dist/dev/internal/skins/default-live-video/components/feedback/volume-indicator.js +0 -29
- package/dist/dev/internal/skins/default-live-video/components/feedback/volume-indicator.js.map +0 -1
- package/dist/dev/internal/skins/default-live-video/controls.js +0 -59
- package/dist/dev/internal/skins/default-live-video/controls.js.map +0 -1
- package/dist/dev/internal/skins/default-live-video/skins/shared/live-video/status-indicators.js +0 -22
- package/dist/dev/internal/skins/default-live-video/skins/shared/live-video/status-indicators.js.map +0 -1
- package/dist/dev/internal/skins/default-video/components/controls/volume-popover.js +0 -32
- package/dist/dev/internal/skins/default-video/components/controls/volume-popover.js.map +0 -1
- package/dist/dev/internal/skins/default-video/components/feedback/buffering-indicator.js +0 -17
- package/dist/dev/internal/skins/default-video/components/feedback/buffering-indicator.js.map +0 -1
- package/dist/dev/internal/skins/default-video/components/feedback/seek-indicator.js +0 -18
- package/dist/dev/internal/skins/default-video/components/feedback/seek-indicator.js.map +0 -1
- package/dist/dev/internal/skins/default-video/components/feedback/status-indicator.js +0 -51
- package/dist/dev/internal/skins/default-video/components/feedback/status-indicator.js.map +0 -1
- package/dist/dev/internal/skins/default-video/components/feedback/volume-indicator.js +0 -29
- package/dist/dev/internal/skins/default-video/components/feedback/volume-indicator.js.map +0 -1
- package/dist/dev/internal/skins/default-video/controls.js +0 -79
- package/dist/dev/internal/skins/default-video/controls.js.map +0 -1
- package/dist/dev/internal/skins/default-video/skins/shared/video/settings-menu.js +0 -22
- package/dist/dev/internal/skins/default-video/skins/shared/video/settings-menu.js.map +0 -1
- package/dist/dev/internal/skins/default-video/skins/shared/video/status-indicators.js +0 -24
- package/dist/dev/internal/skins/default-video/skins/shared/video/status-indicators.js.map +0 -1
- package/dist/dev/internal/skins/minimal-audio/components/controls/volume-popover.js +0 -32
- package/dist/dev/internal/skins/minimal-audio/components/controls/volume-popover.js.map +0 -1
- package/dist/dev/internal/skins/minimal-audio/components/feedback/buffering-indicator.js +0 -17
- package/dist/dev/internal/skins/minimal-audio/components/feedback/buffering-indicator.js.map +0 -1
- package/dist/dev/internal/skins/minimal-audio/controls.js +0 -74
- package/dist/dev/internal/skins/minimal-audio/controls.js.map +0 -1
- package/dist/dev/internal/skins/minimal-audio/skins/shared/audio/play-button.js +0 -22
- package/dist/dev/internal/skins/minimal-audio/skins/shared/audio/play-button.js.map +0 -1
- package/dist/dev/internal/skins/minimal-audio/skins/shared/audio/settings-menu.js +0 -44
- package/dist/dev/internal/skins/minimal-audio/skins/shared/audio/settings-menu.js.map +0 -1
- package/dist/dev/internal/skins/minimal-live-audio/components/controls/volume-popover.js +0 -32
- package/dist/dev/internal/skins/minimal-live-audio/components/controls/volume-popover.js.map +0 -1
- package/dist/dev/internal/skins/minimal-live-audio/components/feedback/buffering-indicator.js +0 -17
- package/dist/dev/internal/skins/minimal-live-audio/components/feedback/buffering-indicator.js.map +0 -1
- package/dist/dev/internal/skins/minimal-live-audio/controls.js +0 -42
- package/dist/dev/internal/skins/minimal-live-audio/controls.js.map +0 -1
- package/dist/dev/internal/skins/minimal-live-audio/skins/shared/audio/play-button.js +0 -22
- package/dist/dev/internal/skins/minimal-live-audio/skins/shared/audio/play-button.js.map +0 -1
- package/dist/dev/internal/skins/minimal-live-video/components/controls/volume-popover.js +0 -32
- package/dist/dev/internal/skins/minimal-live-video/components/controls/volume-popover.js.map +0 -1
- package/dist/dev/internal/skins/minimal-live-video/components/feedback/buffering-indicator.js +0 -17
- package/dist/dev/internal/skins/minimal-live-video/components/feedback/buffering-indicator.js.map +0 -1
- package/dist/dev/internal/skins/minimal-live-video/components/feedback/status-indicator.js +0 -51
- package/dist/dev/internal/skins/minimal-live-video/components/feedback/status-indicator.js.map +0 -1
- package/dist/dev/internal/skins/minimal-live-video/components/feedback/volume-indicator.js +0 -29
- package/dist/dev/internal/skins/minimal-live-video/components/feedback/volume-indicator.js.map +0 -1
- package/dist/dev/internal/skins/minimal-live-video/controls.js +0 -70
- package/dist/dev/internal/skins/minimal-live-video/controls.js.map +0 -1
- package/dist/dev/internal/skins/minimal-live-video/skins/shared/live-video/status-indicators.js +0 -22
- package/dist/dev/internal/skins/minimal-live-video/skins/shared/live-video/status-indicators.js.map +0 -1
- package/dist/dev/internal/skins/minimal-video/components/controls/volume-popover.js +0 -32
- package/dist/dev/internal/skins/minimal-video/components/controls/volume-popover.js.map +0 -1
- package/dist/dev/internal/skins/minimal-video/components/feedback/buffering-indicator.js +0 -17
- package/dist/dev/internal/skins/minimal-video/components/feedback/buffering-indicator.js.map +0 -1
- package/dist/dev/internal/skins/minimal-video/components/feedback/seek-indicator.js +0 -18
- package/dist/dev/internal/skins/minimal-video/components/feedback/seek-indicator.js.map +0 -1
- package/dist/dev/internal/skins/minimal-video/components/feedback/status-indicator.js +0 -51
- package/dist/dev/internal/skins/minimal-video/components/feedback/status-indicator.js.map +0 -1
- package/dist/dev/internal/skins/minimal-video/components/feedback/volume-indicator.js +0 -29
- package/dist/dev/internal/skins/minimal-video/components/feedback/volume-indicator.js.map +0 -1
- package/dist/dev/internal/skins/minimal-video/controls.js +0 -93
- package/dist/dev/internal/skins/minimal-video/controls.js.map +0 -1
- package/dist/dev/internal/skins/minimal-video/skins/shared/video/settings-menu.js +0 -22
- package/dist/dev/internal/skins/minimal-video/skins/shared/video/settings-menu.js.map +0 -1
- package/dist/dev/internal/skins/minimal-video/skins/shared/video/status-indicators.js +0 -24
- package/dist/dev/internal/skins/minimal-video/skins/shared/video/status-indicators.js.map +0 -1
- package/dist/dev/internal/skins/shared/components/feedback/error-dialog.js +0 -29
- package/dist/dev/internal/skins/shared/components/feedback/error-dialog.js.map +0 -1
- package/dist/dev/internal/skins/shared/components/feedback/status-announcer.js +0 -15
- package/dist/dev/internal/skins/shared/components/feedback/status-announcer.js.map +0 -1
- package/dist/dev/internal/skins/shared/components/layout/poster.js +0 -20
- package/dist/dev/internal/skins/shared/components/layout/poster.js.map +0 -1
- package/dist/dev/internal/skins/shared/skins/shared/audio/error-dialog.js +0 -29
- package/dist/dev/internal/skins/shared/skins/shared/audio/error-dialog.js.map +0 -1
- package/dist/dev/internal/skins/shared/skins/shared/audio/time-slider.js +0 -42
- package/dist/dev/internal/skins/shared/skins/shared/audio/time-slider.js.map +0 -1
- package/dist/dev/internal/skins/shared/skins/shared/live-playback-hotkeys.js +0 -37
- package/dist/dev/internal/skins/shared/skins/shared/live-playback-hotkeys.js.map +0 -1
- package/dist/dev/internal/skins/shared/skins/shared/live-video/gestures.js +0 -31
- package/dist/dev/internal/skins/shared/skins/shared/live-video/gestures.js.map +0 -1
- package/dist/dev/internal/skins/shared/skins/shared/live-video/hotkeys.js +0 -29
- package/dist/dev/internal/skins/shared/skins/shared/live-video/hotkeys.js.map +0 -1
- package/dist/dev/internal/skins/shared/skins/shared/playback-hotkeys.js +0 -84
- package/dist/dev/internal/skins/shared/skins/shared/playback-hotkeys.js.map +0 -1
- package/dist/dev/internal/skins/shared/skins/shared/video/gestures.js +0 -43
- package/dist/dev/internal/skins/shared/skins/shared/video/gestures.js.map +0 -1
- package/dist/dev/internal/skins/shared/skins/shared/video/hotkeys.js +0 -29
- package/dist/dev/internal/skins/shared/skins/shared/video/hotkeys.js.map +0 -1
- package/dist/dev/media/audio.d.ts.map +0 -1
- package/dist/dev/media/background-video/adapter.d.ts.map +0 -1
- package/dist/dev/media/cloudflare-video/adapter.d.ts.map +0 -1
- package/dist/dev/media/dash-video/adapter.d.ts.map +0 -1
- package/dist/dev/media/hls-audio/adapter.d.ts.map +0 -1
- package/dist/dev/media/hls-background-video/adapter.d.ts.map +0 -1
- package/dist/dev/media/hls-video/adapter.d.ts.map +0 -1
- package/dist/dev/media/hlsjs-video/adapter.d.ts.map +0 -1
- package/dist/dev/media/mux-audio/hls-js.d.ts.map +0 -1
- package/dist/dev/media/mux-audio/spf.d.ts.map +0 -1
- package/dist/dev/media/mux-video/hls-js.d.ts.map +0 -1
- package/dist/dev/media/mux-video/spf.d.ts.map +0 -1
- package/dist/dev/media/native-hls-video/adapter.d.ts.map +0 -1
- package/dist/dev/media/shaka-video/adapter.d.ts.map +0 -1
- package/dist/dev/media/spotify-audio/adapter.d.ts.map +0 -1
- package/dist/dev/media/tiktok-video/adapter.d.ts.map +0 -1
- package/dist/dev/media/twitch-video/adapter.d.ts.map +0 -1
- package/dist/dev/media/video.d.ts.map +0 -1
- package/dist/dev/media/vimeo-video/adapter.d.ts.map +0 -1
- package/dist/dev/media/wistia-video/adapter.d.ts.map +0 -1
- package/dist/dev/media/youtube-video/adapter.d.ts.map +0 -1
- package/dist/dev/player/container.d.ts.map +0 -1
- package/dist/dev/player/context.d.ts.map +0 -1
- package/dist/dev/player/create-player.d.ts.map +0 -1
- package/dist/dev/presets/audio/minimal-skin.d.ts.map +0 -1
- package/dist/dev/presets/audio/player.d.ts.map +0 -1
- package/dist/dev/presets/audio/skin.d.ts.map +0 -1
- package/dist/dev/presets/background/player.d.ts.map +0 -1
- package/dist/dev/presets/background/skin.d.ts.map +0 -1
- package/dist/dev/presets/live-audio/minimal-skin.d.ts.map +0 -1
- package/dist/dev/presets/live-audio/player.d.ts.map +0 -1
- package/dist/dev/presets/live-audio/skin.d.ts.map +0 -1
- package/dist/dev/presets/live-video/minimal-skin.d.ts.map +0 -1
- package/dist/dev/presets/live-video/player.d.ts.map +0 -1
- package/dist/dev/presets/live-video/skin.d.ts.map +0 -1
- package/dist/dev/presets/types.d.ts.map +0 -1
- package/dist/dev/presets/video/minimal-skin.d.ts.map +0 -1
- package/dist/dev/presets/video/player.d.ts.map +0 -1
- package/dist/dev/presets/video/skin.d.ts.map +0 -1
- package/dist/dev/ui/airplay-button/component.d.ts.map +0 -1
- package/dist/dev/ui/alert-dialog/index.parts.d.ts.map +0 -1
- package/dist/dev/ui/alert-dialog/root.d.ts.map +0 -1
- package/dist/dev/ui/audio-track/use-audio-track-options.d.ts.map +0 -1
- package/dist/dev/ui/audio-track-radio-group/component.d.ts.map +0 -1
- package/dist/dev/ui/audio-track-radio-group/index.parts.d.ts.map +0 -1
- package/dist/dev/ui/buffering-indicator/component.d.ts.map +0 -1
- package/dist/dev/ui/captions-button/component.d.ts.map +0 -1
- package/dist/dev/ui/captions-radio-group/component.d.ts.map +0 -1
- package/dist/dev/ui/captions-radio-group/index.parts.d.ts.map +0 -1
- package/dist/dev/ui/captions-radio-group/use-captions-options.d.ts.map +0 -1
- package/dist/dev/ui/cast-button/component.d.ts.map +0 -1
- package/dist/dev/ui/controls/backdrop.d.ts.map +0 -1
- package/dist/dev/ui/controls/content.d.ts.map +0 -1
- package/dist/dev/ui/controls/group.d.ts.map +0 -1
- package/dist/dev/ui/controls/index.parts.d.ts.map +0 -1
- package/dist/dev/ui/controls/root.d.ts.map +0 -1
- package/dist/dev/ui/dialog/backdrop.d.ts.map +0 -1
- package/dist/dev/ui/dialog/close.d.ts.map +0 -1
- package/dist/dev/ui/dialog/context.d.ts.map +0 -1
- package/dist/dev/ui/dialog/description.d.ts.map +0 -1
- package/dist/dev/ui/dialog/index.parts.d.ts.map +0 -1
- package/dist/dev/ui/dialog/popup.d.ts.map +0 -1
- package/dist/dev/ui/dialog/root.d.ts.map +0 -1
- package/dist/dev/ui/dialog/title.d.ts.map +0 -1
- package/dist/dev/ui/dialog/trigger.d.ts.map +0 -1
- package/dist/dev/ui/error-dialog/close.d.ts.map +0 -1
- package/dist/dev/ui/error-dialog/context.d.ts.map +0 -1
- package/dist/dev/ui/error-dialog/description.d.ts.map +0 -1
- package/dist/dev/ui/error-dialog/index.parts.d.ts.map +0 -1
- package/dist/dev/ui/error-dialog/root.d.ts.map +0 -1
- package/dist/dev/ui/error-dialog/title.d.ts.map +0 -1
- package/dist/dev/ui/fullscreen-button/component.d.ts.map +0 -1
- package/dist/dev/ui/gesture/component.d.ts.map +0 -1
- package/dist/dev/ui/gesture/use-doubletap-gesture.d.ts.map +0 -1
- package/dist/dev/ui/gesture/use-tap-gesture.d.ts.map +0 -1
- package/dist/dev/ui/hooks/create-radio-options-hook.d.ts.map +0 -1
- package/dist/dev/ui/hooks/use-button.d.ts.map +0 -1
- package/dist/dev/ui/hooks/use-slider.d.ts.map +0 -1
- package/dist/dev/ui/hotkey/component.d.ts.map +0 -1
- package/dist/dev/ui/hotkey/use-hotkey-shortcut.d.ts.map +0 -1
- package/dist/dev/ui/hotkey/use-hotkey.d.ts.map +0 -1
- package/dist/dev/ui/live-button/component.d.ts.map +0 -1
- package/dist/dev/ui/menu/checkbox-item.d.ts.map +0 -1
- package/dist/dev/ui/menu/content.d.ts.map +0 -1
- package/dist/dev/ui/menu/context.d.ts.map +0 -1
- package/dist/dev/ui/menu/group-label.d.ts.map +0 -1
- package/dist/dev/ui/menu/group.d.ts.map +0 -1
- package/dist/dev/ui/menu/index.parts.d.ts.map +0 -1
- package/dist/dev/ui/menu/item-indicator.d.ts.map +0 -1
- package/dist/dev/ui/menu/item.d.ts.map +0 -1
- package/dist/dev/ui/menu/popup.d.ts.map +0 -1
- package/dist/dev/ui/menu/radio-group.d.ts.map +0 -1
- package/dist/dev/ui/menu/radio-item.d.ts.map +0 -1
- package/dist/dev/ui/menu/root.d.ts.map +0 -1
- package/dist/dev/ui/menu/separator.d.ts.map +0 -1
- package/dist/dev/ui/menu/trigger.d.ts.map +0 -1
- package/dist/dev/ui/mute-button/component.d.ts.map +0 -1
- package/dist/dev/ui/pip-button/component.d.ts.map +0 -1
- package/dist/dev/ui/play-button/component.d.ts.map +0 -1
- package/dist/dev/ui/playback-rate/use-playback-rate-options.d.ts.map +0 -1
- package/dist/dev/ui/playback-rate-button/component.d.ts.map +0 -1
- package/dist/dev/ui/playback-rate-radio-group/component.d.ts.map +0 -1
- package/dist/dev/ui/playback-rate-radio-group/index.parts.d.ts.map +0 -1
- package/dist/dev/ui/popover/arrow.d.ts.map +0 -1
- package/dist/dev/ui/popover/context.d.ts.map +0 -1
- package/dist/dev/ui/popover/index.parts.d.ts.map +0 -1
- package/dist/dev/ui/popover/popup.d.ts.map +0 -1
- package/dist/dev/ui/popover/root.d.ts.map +0 -1
- package/dist/dev/ui/popover/trigger.d.ts.map +0 -1
- package/dist/dev/ui/poster/image.d.ts.map +0 -1
- package/dist/dev/ui/poster/index.parts.d.ts.map +0 -1
- package/dist/dev/ui/poster/root.d.ts.map +0 -1
- package/dist/dev/ui/quality/use-quality-options.d.ts.map +0 -1
- package/dist/dev/ui/quality-radio-group/component.d.ts.map +0 -1
- package/dist/dev/ui/quality-radio-group/index.parts.d.ts.map +0 -1
- package/dist/dev/ui/seek-button/component.d.ts.map +0 -1
- package/dist/dev/ui/seek-indicator/index.parts.d.ts.map +0 -1
- package/dist/dev/ui/seek-indicator/root.d.ts.map +0 -1
- package/dist/dev/ui/seek-indicator/value.d.ts.map +0 -1
- package/dist/dev/ui/slider/buffer.d.ts.map +0 -1
- package/dist/dev/ui/slider/fill.d.ts.map +0 -1
- package/dist/dev/ui/slider/index.parts.d.ts.map +0 -1
- package/dist/dev/ui/slider/preview.d.ts.map +0 -1
- package/dist/dev/ui/slider/root.d.ts.map +0 -1
- package/dist/dev/ui/slider/thumb.d.ts.map +0 -1
- package/dist/dev/ui/slider/thumbnail/index.parts.d.ts.map +0 -1
- package/dist/dev/ui/slider/thumbnail/root.d.ts.map +0 -1
- package/dist/dev/ui/slider/track.d.ts.map +0 -1
- package/dist/dev/ui/slider/value.d.ts.map +0 -1
- package/dist/dev/ui/status-announcer/component.d.ts.map +0 -1
- package/dist/dev/ui/status-indicator/index.parts.d.ts.map +0 -1
- package/dist/dev/ui/status-indicator/root.d.ts.map +0 -1
- package/dist/dev/ui/status-indicator/value.d.ts.map +0 -1
- package/dist/dev/ui/thumbnail/image.d.ts.map +0 -1
- package/dist/dev/ui/thumbnail/index.parts.d.ts.map +0 -1
- package/dist/dev/ui/thumbnail/root.d.ts.map +0 -1
- package/dist/dev/ui/time/group.d.ts.map +0 -1
- package/dist/dev/ui/time/index.parts.d.ts.map +0 -1
- package/dist/dev/ui/time/separator.d.ts.map +0 -1
- package/dist/dev/ui/time/value.d.ts.map +0 -1
- package/dist/dev/ui/time-slider/chapter-title.d.ts.map +0 -1
- package/dist/dev/ui/time-slider/chapters.d.ts.map +0 -1
- package/dist/dev/ui/time-slider/index.parts.d.ts.map +0 -1
- package/dist/dev/ui/time-slider/root.d.ts.map +0 -1
- package/dist/dev/ui/title/component.d.ts.map +0 -1
- package/dist/dev/ui/tooltip/arrow.d.ts.map +0 -1
- package/dist/dev/ui/tooltip/context.d.ts.map +0 -1
- package/dist/dev/ui/tooltip/index.parts.d.ts.map +0 -1
- package/dist/dev/ui/tooltip/label.d.ts.map +0 -1
- package/dist/dev/ui/tooltip/popup.d.ts.map +0 -1
- package/dist/dev/ui/tooltip/provider.d.ts.map +0 -1
- package/dist/dev/ui/tooltip/root.d.ts.map +0 -1
- package/dist/dev/ui/tooltip/shortcut.d.ts.map +0 -1
- package/dist/dev/ui/tooltip/trigger.d.ts.map +0 -1
- package/dist/dev/ui/volume-indicator/fill.d.ts.map +0 -1
- package/dist/dev/ui/volume-indicator/index.parts.d.ts.map +0 -1
- package/dist/dev/ui/volume-indicator/root.d.ts.map +0 -1
- package/dist/dev/ui/volume-indicator/value.d.ts.map +0 -1
- package/dist/dev/ui/volume-popover/index.parts.d.ts.map +0 -1
- package/dist/dev/ui/volume-popover/popup.d.ts.map +0 -1
- package/dist/dev/ui/volume-popover/root.d.ts.map +0 -1
- package/dist/dev/ui/volume-popover/trigger.d.ts.map +0 -1
- package/dist/dev/ui/volume-slider/index.parts.d.ts.map +0 -1
- package/dist/dev/ui/volume-slider/root.d.ts.map +0 -1
- package/dist/dev/utils/merge-props.d.ts.map +0 -1
- package/dist/dev/utils/types.d.ts.map +0 -1
- package/dist/dev/utils/use-attach-iframe.js +0 -13
- package/dist/dev/utils/use-attach-iframe.js.map +0 -1
- package/dist/dev/utils/use-attach-media.d.ts.map +0 -1
- package/dist/dev/utils/use-composed-refs.d.ts.map +0 -1
- package/dist/dev/utils/use-destroy.d.ts.map +0 -1
- package/dist/dev/utils/use-latest-ref.d.ts.map +0 -1
- package/dist/dev/utils/use-media-extension.d.ts.map +0 -1
- package/dist/dev/utils/use-media-instance.d.ts.map +0 -1
- package/dist/dev/utils/use-render.d.ts.map +0 -1
- package/docs/concepts/accessibility.md +0 -68
- package/docs/concepts/browser-support.md +0 -45
- package/docs/concepts/bundlers.md +0 -43
- package/docs/concepts/features.md +0 -142
- package/docs/concepts/media-sources.md +0 -483
- package/docs/concepts/mux-data.md +0 -85
- package/docs/concepts/overview.md +0 -119
- package/docs/concepts/presets.md +0 -230
- package/docs/concepts/security.md +0 -32
- package/docs/concepts/skins.md +0 -216
- package/docs/concepts/typescript.md +0 -34
- package/docs/concepts/ui-components.md +0 -90
- package/docs/concepts/v10-roadmap.md +0 -75
- package/docs/concepts/why-videojs.md +0 -119
- package/docs/how-to/add-a-background-video.md +0 -218
- package/docs/how-to/add-a-poster-and-loading-placeholder.md +0 -234
- package/docs/how-to/add-keyboard-shortcuts-and-gestures.md +0 -97
- package/docs/how-to/add-quality-selector.md +0 -273
- package/docs/how-to/autoplay.md +0 -180
- package/docs/how-to/build-with-ai.md +0 -39
- package/docs/how-to/build-your-own-component.md +0 -271
- package/docs/how-to/cast-to-airplay-and-chromecast.md +0 -158
- package/docs/how-to/customize-skins.md +0 -368
- package/docs/how-to/go-fullscreen-and-lock-orientation.md +0 -153
- package/docs/how-to/handle-playback-errors.md +0 -92
- package/docs/how-to/installation.md +0 -158
- package/docs/how-to/internationalize-the-player.md +0 -368
- package/docs/how-to/migrate-from-media-chrome.md +0 -467
- package/docs/how-to/migrate-from-mux-player.md +0 -696
- package/docs/how-to/migrate-from-plyr.md +0 -424
- package/docs/how-to/migrate-from-video-js-8.md +0 -614
- package/docs/how-to/play-live-streams.md +0 -147
- package/docs/how-to/remember-user-preferences.md +0 -180
- package/docs/how-to/show-and-hide-controls.md +0 -182
- package/docs/how-to/show-captions-and-subtitles.md +0 -156
- package/docs/how-to/show-timeline-thumbnail-previews.md +0 -172
- package/docs/how-to/use-picture-in-picture.md +0 -150
- package/docs/reference/airplay-button.md +0 -298
- package/docs/reference/alert-dialog.md +0 -649
- package/docs/reference/audio-minimal-skin.md +0 -36
- package/docs/reference/audio-skin.md +0 -36
- package/docs/reference/audio-track-radio-group.md +0 -517
- package/docs/reference/audio.md +0 -78
- package/docs/reference/background-video-skin.md +0 -32
- package/docs/reference/background-video.md +0 -56
- package/docs/reference/buffering-indicator.md +0 -154
- package/docs/reference/captions-button.md +0 -261
- package/docs/reference/captions-radio-group.md +0 -526
- package/docs/reference/cast-button.md +0 -285
- package/docs/reference/cloudflare-video.md +0 -237
- package/docs/reference/controls.md +0 -508
- package/docs/reference/create-i18n.md +0 -96
- package/docs/reference/create-player.md +0 -328
- package/docs/reference/create-selector.md +0 -67
- package/docs/reference/create-translator.md +0 -81
- package/docs/reference/dash-video.md +0 -140
- package/docs/reference/dialog.md +0 -833
- package/docs/reference/error-dialog.md +0 -590
- package/docs/reference/feature-audio-track.md +0 -70
- package/docs/reference/feature-buffer.md +0 -70
- package/docs/reference/feature-controls.md +0 -96
- package/docs/reference/feature-error.md +0 -75
- package/docs/reference/feature-fullscreen.md +0 -122
- package/docs/reference/feature-live.md +0 -127
- package/docs/reference/feature-metadata.md +0 -141
- package/docs/reference/feature-orientation-lock.md +0 -131
- package/docs/reference/feature-pip.md +0 -104
- package/docs/reference/feature-playback-rate.md +0 -80
- package/docs/reference/feature-playback.md +0 -119
- package/docs/reference/feature-quality.md +0 -80
- package/docs/reference/feature-remote-playback.md +0 -86
- package/docs/reference/feature-source.md +0 -80
- package/docs/reference/feature-stream-type.md +0 -65
- package/docs/reference/feature-text-tracks.md +0 -138
- package/docs/reference/feature-time.md +0 -94
- package/docs/reference/feature-volume.md +0 -121
- package/docs/reference/fullscreen-button.md +0 -241
- package/docs/reference/gesture.md +0 -201
- package/docs/reference/get-i18n-translations.md +0 -66
- package/docs/reference/google-cast.md +0 -73
- package/docs/reference/has-registered-locale.md +0 -55
- package/docs/reference/hls-audio.md +0 -81
- package/docs/reference/hls-background-video.md +0 -75
- package/docs/reference/hls-video.md +0 -93
- package/docs/reference/hlsjs-video.md +0 -766
- package/docs/reference/hotkey.md +0 -188
- package/docs/reference/i-18-n-context.md +0 -92
- package/docs/reference/i18n-provider.md +0 -33
- package/docs/reference/live-audio-minimal-skin.md +0 -38
- package/docs/reference/live-audio-skin.md +0 -38
- package/docs/reference/live-button.md +0 -280
- package/docs/reference/live-video-minimal-skin.md +0 -44
- package/docs/reference/live-video-skin.md +0 -44
- package/docs/reference/menu.md +0 -1581
- package/docs/reference/merge-props.md +0 -56
- package/docs/reference/mute-button.md +0 -340
- package/docs/reference/mux-audio.md +0 -784
- package/docs/reference/mux-background-video.md +0 -34
- package/docs/reference/mux-data.md +0 -97
- package/docs/reference/mux-video.md +0 -884
- package/docs/reference/native-hls-video.md +0 -148
- package/docs/reference/on-i18n-registry-change.md +0 -57
- package/docs/reference/pip-button.md +0 -241
- package/docs/reference/play-button.md +0 -227
- package/docs/reference/playback-rate-button.md +0 -187
- package/docs/reference/playback-rate-radio-group.md +0 -519
- package/docs/reference/player-container.md +0 -100
- package/docs/reference/player.md +0 -108
- package/docs/reference/popover.md +0 -698
- package/docs/reference/poster.md +0 -393
- package/docs/reference/quality-radio-group.md +0 -531
- package/docs/reference/register-i18n.md +0 -72
- package/docs/reference/render-element.md +0 -216
- package/docs/reference/seek-button.md +0 -215
- package/docs/reference/seek-indicator.md +0 -448
- package/docs/reference/shaka-video.md +0 -411
- package/docs/reference/slider.md +0 -1223
- package/docs/reference/spotify-audio.md +0 -202
- package/docs/reference/status-announcer.md +0 -341
- package/docs/reference/status-indicator.md +0 -535
- package/docs/reference/thumbnail.md +0 -460
- package/docs/reference/tiktok-video.md +0 -294
- package/docs/reference/time-slider.md +0 -1325
- package/docs/reference/time.md +0 -688
- package/docs/reference/title.md +0 -216
- package/docs/reference/tooltip.md +0 -939
- package/docs/reference/translation-phrases.md +0 -453
- package/docs/reference/twitch-video.md +0 -225
- package/docs/reference/use-attach-media.md +0 -59
- package/docs/reference/use-audio-track-options.md +0 -109
- package/docs/reference/use-button.md +0 -136
- package/docs/reference/use-captions-options.md +0 -113
- package/docs/reference/use-composed-refs.md +0 -59
- package/docs/reference/use-container-attach.md +0 -50
- package/docs/reference/use-container.md +0 -39
- package/docs/reference/use-destroy.md +0 -89
- package/docs/reference/use-dialog-context.md +0 -63
- package/docs/reference/use-double-tap-gesture.md +0 -75
- package/docs/reference/use-error-dialog-context.md +0 -41
- package/docs/reference/use-hotkey-shortcut.md +0 -79
- package/docs/reference/use-hotkey.md +0 -62
- package/docs/reference/use-latest-ref.md +0 -73
- package/docs/reference/use-locale.md +0 -133
- package/docs/reference/use-media-attach.md +0 -54
- package/docs/reference/use-media-extension.md +0 -62
- package/docs/reference/use-media-instance.md +0 -79
- package/docs/reference/use-media.md +0 -149
- package/docs/reference/use-menu-context.md +0 -115
- package/docs/reference/use-optional-container.md +0 -33
- package/docs/reference/use-optional-menu-context.md +0 -115
- package/docs/reference/use-optional-player.md +0 -77
- package/docs/reference/use-playback-rate-options.md +0 -123
- package/docs/reference/use-player-context.md +0 -98
- package/docs/reference/use-player.md +0 -245
- package/docs/reference/use-popover-context.md +0 -95
- package/docs/reference/use-quality-options.md +0 -109
- package/docs/reference/use-selector.md +0 -144
- package/docs/reference/use-slider.md +0 -133
- package/docs/reference/use-snapshot.md +0 -153
- package/docs/reference/use-store.md +0 -257
- package/docs/reference/use-tap-gesture.md +0 -75
- package/docs/reference/use-tooltip-context.md +0 -115
- package/docs/reference/use-translator.md +0 -127
- package/docs/reference/video-minimal-skin.md +0 -42
- package/docs/reference/video-skin.md +0 -42
- package/docs/reference/video.md +0 -82
- package/docs/reference/vimeo-video.md +0 -738
- package/docs/reference/volume-indicator.md +0 -601
- package/docs/reference/volume-popover.md +0 -572
- package/docs/reference/volume-slider.md +0 -914
- package/docs/reference/wistia-video.md +0 -75
- package/docs/reference/youtube-video.md +0 -353
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"skin.js","names":["Skin"],"sources":["../../../../src/presets/live-audio/skin.tsx"],"sourcesContent":["'use client';\n\nimport { DefaultLiveAudioSkin as Skin } from '../../internal/skins/default-live-audio/skin';\nimport type { BaseSkinProps } from '../types';\n\nexport interface LiveAudioSkinProps extends BaseSkinProps {}\n\nexport function LiveAudioSkin(props: LiveAudioSkinProps) {\n return <Skin {...props} />;\n}\n"],"mappings":";;;;AAOA,SAAgB,cAAc,OAA2B;CACvD,OAAO,oBAACA,sBAAD,EAAM,GAAI,MAAQ,CAAA;AAC3B"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":[],"sources":["../../../../src/presets/live-video/index.ts"],"sourcesContent":["/**\n * Live video player preset — `video` minus playback rate, quality selection, and audio-track selection, plus the live\n * feature, with a skin that swaps the time slider and time displays for a Live button.\n */\n'use client';\n\nexport { liveVideoFeatures } from '@videojs/core/dom';\nexport { Video, type VideoProps } from '@/media/video';\nexport * from './minimal-skin';\nexport { LiveVideoPlayer, type LiveVideoPlayerProps, usePlayer } from './player';\nexport * from './skin';\n"],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"minimal-skin.js","names":["Skin"],"sources":["../../../../src/presets/live-video/minimal-skin.tsx"],"sourcesContent":["'use client';\n\nimport { MinimalLiveVideoSkin as Skin } from '../../internal/skins/minimal-live-video/skin';\nimport type { BaseVideoSkinProps } from '../types';\n\nexport interface MinimalLiveVideoSkinProps extends BaseVideoSkinProps {}\n\nexport function MinimalLiveVideoSkin(props: MinimalLiveVideoSkinProps) {\n return <Skin {...props} />;\n}\n"],"mappings":";;;;AAOA,SAAgB,qBAAqB,OAAkC;CACrE,OAAO,oBAACA,wBAAD,EAAM,GAAI,MAAQ,CAAA;AAC3B"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"player.js","names":[],"sources":["../../../../src/presets/live-video/player.ts"],"sourcesContent":["'use client';\n\nimport { liveVideoFeatures } from '@videojs/core/dom';\nimport type { ComponentProps } from 'react';\n\nimport { createPlayer } from '../../player/create-player';\n\n/** Preconfigured player with the live video features. */\nexport const {\n Player: LiveVideoPlayer,\n /** Access the live video player store or select a value from it. */\n usePlayer,\n} = createPlayer({ features: liveVideoFeatures, displayName: 'LiveVideoPlayer' });\n\n/** Props accepted by the preconfigured live-video Player. */\nexport interface LiveVideoPlayerProps extends ComponentProps<typeof LiveVideoPlayer> {}\n"],"mappings":";;;;;AAQA,MAAa,EACX,QAAQ,iBAER,cACE,aAAa;CAAE,UAAU;CAAmB,aAAa;AAAkB,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"skin.js","names":["Skin"],"sources":["../../../../src/presets/live-video/skin.tsx"],"sourcesContent":["'use client';\n\nimport { DefaultLiveVideoSkin as Skin } from '../../internal/skins/default-live-video/skin';\nimport type { BaseVideoSkinProps } from '../types';\n\nexport interface LiveVideoSkinProps extends BaseVideoSkinProps {}\n\nexport function LiveVideoSkin(props: LiveVideoSkinProps) {\n return <Skin {...props} />;\n}\n"],"mappings":";;;;AAOA,SAAgB,cAAc,OAA2B;CACvD,OAAO,oBAACA,sBAAD,EAAM,GAAI,MAAQ,CAAA;AAC3B"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":[],"sources":["../../../../src/presets/video/index.ts"],"sourcesContent":["/** General-purpose video player preset with full playback controls. */\n'use client';\n\nexport { videoFeatures } from '@videojs/core/dom';\nexport { Video, type VideoProps } from '@/media/video';\nexport * from './minimal-skin';\nexport { usePlayer, VideoPlayer, type VideoPlayerProps } from './player';\nexport * from './skin';\n"],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"minimal-skin.js","names":["Skin"],"sources":["../../../../src/presets/video/minimal-skin.tsx"],"sourcesContent":["'use client';\n\nimport { MinimalVideoSkin as Skin } from '../../internal/skins/minimal-video/skin';\nimport type { BaseVideoSkinProps } from '../types';\n\nexport interface MinimalVideoSkinProps extends BaseVideoSkinProps {}\n\nexport function MinimalVideoSkin(props: MinimalVideoSkinProps) {\n return <Skin {...props} />;\n}\n"],"mappings":";;;;AAOA,SAAgB,iBAAiB,OAA8B;CAC7D,OAAO,oBAACA,oBAAD,EAAM,GAAI,MAAQ,CAAA;AAC3B"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"player.js","names":[],"sources":["../../../../src/presets/video/player.ts"],"sourcesContent":["'use client';\n\nimport { videoFeatures } from '@videojs/core/dom';\nimport type { ComponentProps } from 'react';\n\nimport { createPlayer } from '../../player/create-player';\n\n/** Preconfigured player with the standard video features. */\nexport const {\n Player: VideoPlayer,\n /** Access the standard video player store or select a value from it. */\n usePlayer,\n} = createPlayer({ features: videoFeatures, displayName: 'VideoPlayer' });\n\n/** Props accepted by the preconfigured video Player. */\nexport interface VideoPlayerProps extends ComponentProps<typeof VideoPlayer> {}\n"],"mappings":";;;;;AAQA,MAAa,EACX,QAAQ,aAER,cACE,aAAa;CAAE,UAAU;CAAe,aAAa;AAAc,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"skin.js","names":["Skin"],"sources":["../../../../src/presets/video/skin.tsx"],"sourcesContent":["'use client';\n\nimport { DefaultVideoSkin as Skin } from '../../internal/skins/default-video/skin';\nimport type { BaseVideoSkinProps } from '../types';\n\nexport interface VideoSkinProps extends BaseVideoSkinProps {}\n\nexport function VideoSkin(props: VideoSkinProps) {\n return <Skin {...props} />;\n}\n"],"mappings":";;;;AAOA,SAAgB,UAAU,OAAuB;CAC/C,OAAO,oBAACA,kBAAD,EAAM,GAAI,MAAQ,CAAA;AAC3B"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"component.js","names":[],"sources":["../../../../src/ui/airplay-button/component.tsx"],"sourcesContent":["import { AirPlayButtonCore, AirPlayButtonDataAttrs } from '@videojs/core';\nimport { selectRemotePlayback } from '@videojs/core/dom';\n\nimport type { UIComponentProps } from '../../utils/types';\nimport { createMediaButton } from '../create-media-button';\n\nexport interface AirPlayButtonProps\n extends UIComponentProps<'button', AirPlayButtonCore.State>, AirPlayButtonCore.Props {}\n\n/** A button that toggles AirPlay to a remote device. */\nexport const AirPlayButton = createMediaButton<AirPlayButtonCore, AirPlayButtonProps>({\n displayName: 'AirPlayButton',\n core: AirPlayButtonCore,\n stateAttrMap: AirPlayButtonDataAttrs,\n selector: selectRemotePlayback,\n action: (core, state) => core.toggle(state),\n isSupported: (state) => !state.hidden,\n});\n\nexport namespace AirPlayButton {\n export type Props = AirPlayButtonProps;\n export type State = AirPlayButtonCore.State;\n}\n"],"mappings":";;;;;AAUA,MAAa,gBAAgB,kBAAyD;CACpF,aAAa;CACb,MAAM;CACN,cAAc;CACd,UAAU;CACV,SAAS,MAAM,UAAU,KAAK,OAAO,KAAK;CAC1C,cAAc,UAAU,CAAC,MAAM;AACjC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.parts.js","names":[],"sources":["../../../../src/ui/alert-dialog/index.parts.ts"],"sourcesContent":["export {\n Backdrop,\n type BackdropProps,\n Close,\n type CloseProps,\n Description,\n type DescriptionProps,\n Popup,\n type PopupProps,\n Title,\n type TitleProps,\n} from '../dialog/index.parts';\nexport { AlertDialogRoot as Root, type AlertDialogRootProps as RootProps } from './root';\n"],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"root.js","names":[],"sources":["../../../../src/ui/alert-dialog/root.tsx"],"sourcesContent":["import { AlertDialogCore, AlertDialogDataAttrs, type AlertDialogProps } from '@videojs/core';\nimport type { ReactNode } from 'react';\n\nimport { DialogContextProvider } from '../dialog/context';\nimport { useDialogRoot } from '../dialog/use-dialog-root';\n\nexport interface AlertDialogRootProps extends AlertDialogProps {\n /** Called when the open state changes, before animations complete. */\n onOpenChange?: (open: boolean) => void;\n /** Called after open or close animations complete. */\n onOpenChangeComplete?: (open: boolean) => void;\n children?: ReactNode;\n}\n\n/** Manages alert dialog state and provides it to the shared dialog parts. */\nexport function AlertDialogRoot({ children, ...props }: AlertDialogRootProps): ReactNode {\n const context = useDialogRoot({\n ...props,\n coreFactory: createAlertDialogCore,\n stateAttrMap: AlertDialogDataAttrs,\n idPrefix: 'alert-dialog',\n });\n\n return <DialogContextProvider value={context}>{children}</DialogContextProvider>;\n}\n\nfunction createAlertDialogCore(): AlertDialogCore {\n return new AlertDialogCore();\n}\n\nexport namespace AlertDialogRoot {\n export type Props = AlertDialogRootProps;\n}\n"],"mappings":";;;;;;AAeA,SAAgB,gBAAgB,EAAE,UAAU,GAAG,SAA0C;CACvF,MAAM,UAAU,cAAc;EAC5B,GAAG;EACH,aAAa;EACb,cAAc;EACd,UAAU;CACZ,CAAC;CAED,OAAO,oBAAC,uBAAD;EAAuB,OAAO;EAAU;CAAgC,CAAA;AACjF;AAEA,SAAS,wBAAyC;CAChD,OAAO,IAAI,gBAAgB;AAC7B"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"use-audio-track-options.js","names":[],"sources":["../../../../src/ui/audio-track/use-audio-track-options.ts"],"sourcesContent":["import { AudioTrackRadioGroupCore, type AudioTrackRadioGroupOption } from '@videojs/core';\nimport { selectAudioTrack } from '@videojs/core/dom';\n\nimport { createRadioOptionsHook, type TranslatedRadioOption } from '../hooks/create-radio-options-hook';\n\nexport interface AudioTrackOptionsProps extends AudioTrackRadioGroupCore.Props {}\n\nexport type AudioTrackOption = TranslatedRadioOption<AudioTrackRadioGroupOption>;\n\nexport interface AudioTrackOptionsResult {\n state: AudioTrackRadioGroupCore.State;\n label: string;\n value: string;\n selectedLabel: string;\n options: AudioTrackOption[];\n disabled: boolean;\n hidden: boolean;\n setValue: (value: string) => void;\n}\n\nconst useAudioTrackRadioOptions = createRadioOptionsHook({\n name: 'useAudioTrackOptions',\n feature: 'audioTrack',\n selector: selectAudioTrack,\n createCore: () => new AudioTrackRadioGroupCore(),\n});\n\n/**\n * Create audio track menu options from the player audio track state. Returns `null` when the audio track feature is not\n * configured.\n *\n * @param props - Optional `label`, `formatTrack`, and `disabled` overrides.\n */\nexport function useAudioTrackOptions(props?: AudioTrackOptionsProps): AudioTrackOptionsResult | null {\n 'use no memo';\n\n return useAudioTrackRadioOptions(props);\n}\n\nexport namespace useAudioTrackOptions {\n export type Props = AudioTrackOptionsProps;\n export type Result = AudioTrackOptionsResult;\n export type Option = AudioTrackOption;\n}\n"],"mappings":";;;;AAoBA,MAAM,4BAA4B,uBAAuB;CACvD,MAAM;CACN,SAAS;CACT,UAAU;CACV,kBAAkB,IAAI,yBAAyB;AACjD,CAAC;;;;;;;AAQD,SAAgB,qBAAqB,OAAgE;CACnG;CAEA,OAAO,0BAA0B,KAAK;AACxC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"component.js","names":[],"sources":["../../../../src/ui/audio-track-radio-group/component.tsx"],"sourcesContent":["import { type AudioTrackRadioGroupCore, AudioTrackRadioGroupDataAttrs, type MenuOptionState } from '@videojs/core';\nimport { getStateDataAttrs } from '@videojs/core/dom';\nimport { isFunction } from '@videojs/utils/predicate';\nimport type { ReactElement, ReactNode } from 'react';\nimport { createContext, Fragment, forwardRef, useContext } from 'react';\n\nimport type { HTMLProps, UIComponentProps } from '../../utils/types';\nimport { renderElement } from '../../utils/use-render';\nimport {\n type AudioTrackOption,\n type AudioTrackOptionsProps,\n type AudioTrackOptionsResult,\n useAudioTrackOptions,\n} from '../audio-track';\nimport { useMenuOptionState } from '../menu/context';\nimport { MenuRadioGroup } from '../menu/radio-group';\nimport type { MenuRadioItemProps } from '../menu/radio-item';\n\nexport type AudioTrackRadioGroupItemState = AudioTrackOption & {\n /** Whether this option is the currently enabled audio track. */\n checked: boolean;\n};\n\nexport interface AudioTrackRadioGroupItemProps extends Omit<MenuRadioItemProps, 'ref'> {\n /** Audio track value represented by the option. */\n 'data-track': string;\n}\n\nexport interface AudioTrackRadioGroupRootProps extends AudioTrackOptionsProps {\n children?: ReactNode;\n}\n\nexport interface AudioTrackRadioGroupOptionsProps extends Omit<\n UIComponentProps<'div', AudioTrackRadioGroupCore.State>,\n 'children'\n> {\n /** Render one consumer-owned menu radio item for every audio track. */\n renderItem: (props: AudioTrackRadioGroupItemProps, state: AudioTrackRadioGroupItemState) => ReactElement;\n}\n\nexport type AudioTrackRadioGroupValueProps = UIComponentProps<'span', AudioTrackOptionsResult>;\n\nexport interface AudioTrackRadioGroupLegacyProps extends AudioTrackRadioGroupOptionsProps, AudioTrackOptionsProps {}\n\nconst AudioTrackRadioGroupContext = createContext<AudioTrackOptionsResult | null | undefined>(undefined);\n\n/** Owns audio-track option state and shares it with an enclosing menu. Does not render a DOM element. */\nexport function AudioTrackRadioGroupRoot({ children, ...props }: AudioTrackRadioGroupRootProps): ReactNode {\n const audioTrack = useAudioTrackOptions(props);\n\n useMenuOptionState(toMenuOptionState(audioTrack));\n\n return <AudioTrackRadioGroupContext.Provider value={audioTrack}>{children}</AudioTrackRadioGroupContext.Provider>;\n}\n\n/** Displays the selected audio-track label. */\nexport const AudioTrackRadioGroupValue = forwardRef<HTMLSpanElement, AudioTrackRadioGroupValueProps>(\n function AudioTrackRadioGroupValue({ render, className, style, ...elementProps }, forwardedRef) {\n const audioTrack = useAudioTrackRadioGroupContext();\n if (!audioTrack) return null;\n\n return renderElement(\n 'span',\n { render, className, style },\n { state: audioTrack, ref: forwardedRef, props: [elementProps, { children: audioTrack.selectedLabel }] }\n );\n }\n);\n\n/** Renders menu radio items for the player's available audio tracks. */\nexport const AudioTrackRadioGroupOptions = forwardRef<HTMLDivElement, AudioTrackRadioGroupOptionsProps>(\n function AudioTrackRadioGroupOptions(componentProps, forwardedRef) {\n const {\n renderItem,\n render,\n className,\n style,\n 'aria-label': ariaLabelProp,\n 'aria-labelledby': ariaLabelledBy,\n ...elementProps\n } = componentProps;\n const audioTrack = useAudioTrackRadioGroupContext();\n if (!audioTrack) return null;\n\n const { state, value, options, setValue } = audioTrack;\n const ariaLabel = ariaLabelProp ?? (ariaLabelledBy === undefined ? audioTrack.label : undefined);\n\n return (\n <MenuRadioGroup\n {...getStateDataAttrs(state, AudioTrackRadioGroupDataAttrs)}\n {...elementProps}\n ref={forwardedRef}\n className={isFunction(className) ? className(state) : className}\n style={isFunction(style) ? style(state) : style}\n render={isFunction(render) ? (props: HTMLProps) => render(props, state) : render}\n value={value}\n onValueChange={setValue}\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledBy}\n aria-disabled={state.disabled || undefined}\n hidden={state.hidden}\n >\n {options.map((option) => {\n const itemState = { ...option, checked: option.value === value };\n\n return (\n <Fragment key={option.value}>\n {renderItem(\n {\n value: option.value,\n disabled: option.disabled,\n 'data-track': option.value,\n children: option.label,\n },\n itemState\n )}\n </Fragment>\n );\n })}\n </MenuRadioGroup>\n );\n }\n);\n\n/** @internal Compatibility adapter for the existing preset sources. */\nexport const AudioTrackRadioGroupLegacy = forwardRef<HTMLDivElement, AudioTrackRadioGroupLegacyProps>(\n function AudioTrackRadioGroupLegacy({ label, formatTrack, disabled, ...props }, forwardedRef) {\n return (\n <AudioTrackRadioGroupRoot label={label} formatTrack={formatTrack} disabled={disabled}>\n <AudioTrackRadioGroupOptions {...props} ref={forwardedRef} />\n </AudioTrackRadioGroupRoot>\n );\n }\n);\n\nfunction useAudioTrackRadioGroupContext(): AudioTrackOptionsResult | null {\n const audioTrack = useContext(AudioTrackRadioGroupContext);\n\n if (audioTrack === undefined) {\n throw new Error('AudioTrackRadioGroup parts must be used within AudioTrackRadioGroup.Root');\n }\n\n return audioTrack;\n}\n\nfunction toMenuOptionState(audioTrack: AudioTrackOptionsResult | null): MenuOptionState {\n return {\n value: audioTrack?.selectedLabel ?? '',\n disabled: audioTrack?.disabled ?? true,\n hidden: audioTrack?.hidden ?? true,\n availability: audioTrack?.state.availability ?? 'unsupported',\n };\n}\n\nexport namespace AudioTrackRadioGroupRoot {\n export type Props = AudioTrackRadioGroupRootProps;\n}\n\nexport namespace AudioTrackRadioGroupValue {\n export type Props = AudioTrackRadioGroupValueProps;\n export type State = AudioTrackOptionsResult;\n}\n\nexport namespace AudioTrackRadioGroupOptions {\n export type Props = AudioTrackRadioGroupOptionsProps;\n export type State = AudioTrackRadioGroupCore.State;\n export type ItemProps = AudioTrackRadioGroupItemProps;\n export type ItemState = AudioTrackRadioGroupItemState;\n}\n"],"mappings":";;;;;;;;;;AA4CA,MAAM,8BAA8B,cAA0D,KAAA,CAAS;;AAGvG,SAAgB,yBAAyB,EAAE,UAAU,GAAG,SAAmD;CACzG,MAAM,aAAa,qBAAqB,KAAK;CAE7C,mBAAmB,kBAAkB,UAAU,CAAC;CAEhD,OAAO,oBAAC,4BAA4B,UAA7B;EAAsC,OAAO;EAAa;CAA+C,CAAA;AAClH;;AAGA,MAAa,4BAA4B,WACvC,SAAS,0BAA0B,EAAE,QAAQ,WAAW,OAAO,GAAG,gBAAgB,cAAc;CAC9F,MAAM,aAAa,+BAA+B;CAClD,IAAI,CAAC,YAAY,OAAO;CAExB,OAAO,cACL,QACA;EAAE;EAAQ;EAAW;CAAM,GAC3B;EAAE,OAAO;EAAY,KAAK;EAAc,OAAO,CAAC,cAAc,EAAE,UAAU,WAAW,cAAc,CAAC;CAAE,CACxG;AACF,CACF;;AAGA,MAAa,8BAA8B,WACzC,SAAS,4BAA4B,gBAAgB,cAAc;CACjE,MAAM,EACJ,YACA,QACA,WACA,OACA,cAAc,eACd,mBAAmB,gBACnB,GAAG,iBACD;CACJ,MAAM,aAAa,+BAA+B;CAClD,IAAI,CAAC,YAAY,OAAO;CAExB,MAAM,EAAE,OAAO,OAAO,SAAS,aAAa;CAC5C,MAAM,YAAY,kBAAkB,mBAAmB,KAAA,IAAY,WAAW,QAAQ,KAAA;CAEtF,OACE,oBAAC,gBAAD;EACE,GAAI,kBAAkB,OAAO,6BAA6B;EAC1D,GAAI;EACJ,KAAK;EACL,WAAW,WAAW,SAAS,IAAI,UAAU,KAAK,IAAI;EACtD,OAAO,WAAW,KAAK,IAAI,MAAM,KAAK,IAAI;EAC1C,QAAQ,WAAW,MAAM,KAAK,UAAqB,OAAO,OAAO,KAAK,IAAI;EACnE;EACP,eAAe;EACf,cAAY;EACZ,mBAAiB;EACjB,iBAAe,MAAM,YAAY,KAAA;EACjC,QAAQ,MAAM;EAEb,UAAA,QAAQ,KAAK,WAAW;GACvB,MAAM,YAAY;IAAE,GAAG;IAAQ,SAAS,OAAO,UAAU;GAAM;GAE/D,OACE,oBAAC,UAAD,EAAA,UACG,WACC;IACE,OAAO,OAAO;IACd,UAAU,OAAO;IACjB,cAAc,OAAO;IACrB,UAAU,OAAO;GACnB,GACA,SACF,EACQ,GAVK,OAAO,KAUZ;EAEd,CAAC;CACa,CAAA;AAEpB,CACF;;AAGA,MAAa,6BAA6B,WACxC,SAAS,2BAA2B,EAAE,OAAO,aAAa,UAAU,GAAG,SAAS,cAAc;CAC5F,OACE,oBAAC,0BAAD;EAAiC;EAAoB;EAAuB;EAC1E,UAAA,oBAAC,6BAAD;GAA6B,GAAI;GAAO,KAAK;EAAe,CAAA;CACpC,CAAA;AAE9B,CACF;AAEA,SAAS,iCAAiE;CACxE,MAAM,aAAa,WAAW,2BAA2B;CAEzD,IAAI,eAAe,KAAA,GACjB,MAAM,IAAI,MAAM,0EAA0E;CAG5F,OAAO;AACT;AAEA,SAAS,kBAAkB,YAA6D;CACtF,OAAO;EACL,OAAO,YAAY,iBAAiB;EACpC,UAAU,YAAY,YAAY;EAClC,QAAQ,YAAY,UAAU;EAC9B,cAAc,YAAY,MAAM,gBAAgB;CAClD;AACF"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.parts.js","names":[],"sources":["../../../../src/ui/audio-track-radio-group/index.parts.ts"],"sourcesContent":["export {\n type AudioTrackRadioGroupItemProps as ItemProps,\n type AudioTrackRadioGroupItemState as ItemState,\n AudioTrackRadioGroupOptions as Options,\n type AudioTrackRadioGroupOptionsProps as OptionsProps,\n AudioTrackRadioGroupRoot as Root,\n type AudioTrackRadioGroupRootProps as RootProps,\n AudioTrackRadioGroupValue as Value,\n type AudioTrackRadioGroupValueProps as ValueProps,\n} from './component';\n"],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"component.js","names":[],"sources":["../../../../src/ui/buffering-indicator/component.tsx"],"sourcesContent":["import { BufferingIndicatorCore, BufferingIndicatorDataAttrs } from '@videojs/core';\nimport { logMissingFeature, selectPlayback } from '@videojs/core/dom';\nimport type { ForwardedRef } from 'react';\nimport { forwardRef, useState, useSyncExternalStore } from 'react';\n\nimport { usePlayer } from '../../player/context';\nimport type { UIComponentProps } from '../../utils/types';\nimport { useDestroy } from '../../utils/use-destroy';\nimport { renderElement } from '../../utils/use-render';\n\nexport interface BufferingIndicatorProps\n extends UIComponentProps<'div', BufferingIndicatorCore.State>, BufferingIndicatorCore.Props {}\n\n/**\n * Displays a buffering indicator when media is waiting for data.\n *\n * Visibility is delayed (default 500ms) to avoid flashing on quick buffers.\n *\n * @example\n * ```tsx\n * <BufferingIndicator />\n *\n * <BufferingIndicator delay={1000} />\n *\n * <BufferingIndicator\n * render={(props, state) => (\n * <div {...props}>{state.visible && <Spinner />}</div>\n * )}\n * />\n * ```;\n */\nexport const BufferingIndicator = forwardRef(function BufferingIndicator(\n componentProps: BufferingIndicatorProps,\n forwardedRef: ForwardedRef<HTMLDivElement>\n) {\n const { render, className, style, delay, ...elementProps } = componentProps;\n\n const playback = usePlayer(selectPlayback);\n\n const [core] = useState(() => new BufferingIndicatorCore());\n\n useDestroy(core);\n core.setProps({ delay });\n\n if (playback) core.update(playback);\n\n const state = useSyncExternalStore(\n (cb) => core.state.subscribe(cb),\n () => core.state.current,\n () => core.state.current\n );\n\n if (!playback) {\n if (__DEV__) logMissingFeature('BufferingIndicator', 'playback');\n\n return null;\n }\n\n return renderElement(\n 'div',\n { render, className, style },\n {\n state,\n stateAttrMap: BufferingIndicatorDataAttrs,\n ref: [forwardedRef],\n props: [elementProps],\n }\n );\n});\n\nexport namespace BufferingIndicator {\n export type Props = BufferingIndicatorProps;\n export type State = BufferingIndicatorCore.State;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AA+BA,MAAa,qBAAqB,WAAW,SAAS,mBACpD,gBACA,cACA;CACA,MAAM,EAAE,QAAQ,WAAW,OAAO,OAAO,GAAG,iBAAiB;CAE7D,MAAM,WAAW,UAAU,cAAc;CAEzC,MAAM,CAAC,QAAQ,eAAe,IAAI,uBAAuB,CAAC;CAE1D,WAAW,IAAI;CACf,KAAK,SAAS,EAAE,MAAM,CAAC;CAEvB,IAAI,UAAU,KAAK,OAAO,QAAQ;CAElC,MAAM,QAAQ,sBACX,OAAO,KAAK,MAAM,UAAU,EAAE,SACzB,KAAK,MAAM,eACX,KAAK,MAAM,OACnB;CAEA,IAAI,CAAC,UAGH,OAAO;CAGT,OAAO,cACL,OACA;EAAE;EAAQ;EAAW;CAAM,GAC3B;EACE;EACA,cAAc;EACd,KAAK,CAAC,YAAY;EAClB,OAAO,CAAC,YAAY;CACtB,CACF;AACF,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"component.js","names":[],"sources":["../../../../src/ui/captions-button/component.tsx"],"sourcesContent":["import { CaptionsButtonCore, CaptionsButtonDataAttrs } from '@videojs/core';\nimport { selectTextTrack } from '@videojs/core/dom';\n\nimport type { UIComponentProps } from '../../utils/types';\nimport { createMediaButton } from '../create-media-button';\n\nexport interface CaptionsButtonProps\n extends UIComponentProps<'button', CaptionsButtonCore.State>, CaptionsButtonCore.Props {}\n\n/** A button that toggles captions. */\nexport const CaptionsButton = createMediaButton<CaptionsButtonCore, CaptionsButtonProps>({\n displayName: 'CaptionsButton',\n core: CaptionsButtonCore,\n stateAttrMap: CaptionsButtonDataAttrs,\n selector: selectTextTrack,\n action: (core, state) => core.toggle(state),\n hotkeyAction: 'toggleSubtitles',\n isSupported: (state) => !state.hidden,\n});\n\nexport namespace CaptionsButton {\n export type Props = CaptionsButtonProps;\n export type State = CaptionsButtonCore.State;\n}\n"],"mappings":";;;;;AAUA,MAAa,iBAAiB,kBAA2D;CACvF,aAAa;CACb,MAAM;CACN,cAAc;CACd,UAAU;CACV,SAAS,MAAM,UAAU,KAAK,OAAO,KAAK;CAC1C,cAAc;CACd,cAAc,UAAU,CAAC,MAAM;AACjC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"component.js","names":[],"sources":["../../../../src/ui/captions-radio-group/component.tsx"],"sourcesContent":["import { type CaptionsRadioGroupCore, CaptionsRadioGroupDataAttrs, type MenuOptionState } from '@videojs/core';\nimport { getStateDataAttrs } from '@videojs/core/dom';\nimport { isFunction } from '@videojs/utils/predicate';\nimport type { ReactElement, ReactNode } from 'react';\nimport { createContext, Fragment, forwardRef, useContext } from 'react';\n\nimport type { HTMLProps, UIComponentProps } from '../../utils/types';\nimport { renderElement } from '../../utils/use-render';\nimport { useMenuOptionState } from '../menu/context';\nimport { MenuRadioGroup } from '../menu/radio-group';\nimport type { MenuRadioItemProps } from '../menu/radio-item';\nimport {\n type CaptionsOption,\n type CaptionsOptionsProps,\n type CaptionsOptionsResult,\n useCaptionsOptions,\n} from './use-captions-options';\n\nexport type CaptionsRadioGroupItemState = CaptionsOption & {\n /** Whether this option is currently selected. */\n checked: boolean;\n};\n\nexport interface CaptionsRadioGroupItemProps extends Omit<MenuRadioItemProps, 'ref'> {\n /** Text track value represented by the item. */\n 'data-track': string;\n}\n\nexport interface CaptionsRadioGroupRootProps extends CaptionsOptionsProps {\n children?: ReactNode;\n}\n\nexport interface CaptionsRadioGroupOptionsProps extends Omit<\n UIComponentProps<'div', CaptionsRadioGroupCore.State>,\n 'children'\n> {\n /** Render one consumer-owned menu radio item for every captions option. */\n renderItem: (props: CaptionsRadioGroupItemProps, state: CaptionsRadioGroupItemState) => ReactElement;\n}\n\nexport type CaptionsRadioGroupValueProps = UIComponentProps<'span', CaptionsOptionsResult>;\n\nexport interface CaptionsRadioGroupLegacyProps extends CaptionsRadioGroupOptionsProps, CaptionsOptionsProps {}\n\nconst CaptionsRadioGroupContext = createContext<CaptionsOptionsResult | null | undefined>(undefined);\n\n/** Owns captions option state and shares it with an enclosing menu. Does not render a DOM element. */\nexport function CaptionsRadioGroupRoot({ children, ...props }: CaptionsRadioGroupRootProps): ReactNode {\n const captions = useCaptionsOptions(props);\n\n useMenuOptionState(toMenuOptionState(captions));\n\n return <CaptionsRadioGroupContext.Provider value={captions}>{children}</CaptionsRadioGroupContext.Provider>;\n}\n\n/** Displays the selected captions label. */\nexport const CaptionsRadioGroupValue = forwardRef<HTMLSpanElement, CaptionsRadioGroupValueProps>(\n function CaptionsRadioGroupValue({ render, className, style, ...elementProps }, forwardedRef) {\n const captions = useCaptionsRadioGroupContext();\n if (!captions) return null;\n\n return renderElement(\n 'span',\n { render, className, style },\n { state: captions, ref: forwardedRef, props: [elementProps, { children: captions.selectedLabel }] }\n );\n }\n);\n\n/** Renders menu radio items for the player's captions and subtitles tracks. */\nexport const CaptionsRadioGroupOptions = forwardRef<HTMLDivElement, CaptionsRadioGroupOptionsProps>(\n function CaptionsRadioGroupOptions(componentProps, forwardedRef) {\n const {\n renderItem,\n render,\n className,\n style,\n 'aria-label': ariaLabelProp,\n 'aria-labelledby': ariaLabelledBy,\n ...elementProps\n } = componentProps;\n const captions = useCaptionsRadioGroupContext();\n if (!captions) return null;\n\n const { state, value, options, setValue } = captions;\n const ariaLabel = ariaLabelProp ?? (ariaLabelledBy === undefined ? captions.label : undefined);\n\n return (\n <MenuRadioGroup\n {...getStateDataAttrs(state, CaptionsRadioGroupDataAttrs)}\n {...elementProps}\n ref={forwardedRef}\n className={isFunction(className) ? className(state) : className}\n style={isFunction(style) ? style(state) : style}\n render={isFunction(render) ? (props: HTMLProps) => render(props, state) : render}\n value={value}\n onValueChange={setValue}\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledBy}\n aria-disabled={state.disabled || undefined}\n hidden={state.hidden}\n >\n {options.map((option) => {\n const itemState = { ...option, checked: option.value === value };\n\n return (\n <Fragment key={option.value}>\n {renderItem(\n {\n value: option.value,\n disabled: option.disabled,\n 'data-track': option.value,\n children: option.label,\n },\n itemState\n )}\n </Fragment>\n );\n })}\n </MenuRadioGroup>\n );\n }\n);\n\n/** @internal Compatibility adapter for the existing preset sources. */\nexport const CaptionsRadioGroupLegacy = forwardRef<HTMLDivElement, CaptionsRadioGroupLegacyProps>(\n function CaptionsRadioGroupLegacy({ label, formatTrack, disabled, ...props }, forwardedRef) {\n return (\n <CaptionsRadioGroupRoot label={label} formatTrack={formatTrack} disabled={disabled}>\n <CaptionsRadioGroupOptions {...props} ref={forwardedRef} />\n </CaptionsRadioGroupRoot>\n );\n }\n);\n\nfunction useCaptionsRadioGroupContext(): CaptionsOptionsResult | null {\n const captions = useContext(CaptionsRadioGroupContext);\n if (captions === undefined) throw new Error('CaptionsRadioGroup parts must be used within CaptionsRadioGroup.Root');\n\n return captions;\n}\n\nfunction toMenuOptionState(captions: CaptionsOptionsResult | null): MenuOptionState {\n return {\n value: captions?.selectedLabel ?? '',\n disabled: captions?.disabled ?? true,\n hidden: captions?.hidden ?? true,\n availability: captions?.state.availability ?? 'unsupported',\n };\n}\n\nexport namespace CaptionsRadioGroupRoot {\n export type Props = CaptionsRadioGroupRootProps;\n}\n\nexport namespace CaptionsRadioGroupValue {\n export type Props = CaptionsRadioGroupValueProps;\n export type State = CaptionsOptionsResult;\n}\n\nexport namespace CaptionsRadioGroupOptions {\n export type Props = CaptionsRadioGroupOptionsProps;\n export type State = CaptionsRadioGroupCore.State;\n export type ItemProps = CaptionsRadioGroupItemProps;\n export type ItemState = CaptionsRadioGroupItemState;\n}\n"],"mappings":";;;;;;;;;;AA4CA,MAAM,4BAA4B,cAAwD,KAAA,CAAS;;AAGnG,SAAgB,uBAAuB,EAAE,UAAU,GAAG,SAAiD;CACrG,MAAM,WAAW,mBAAmB,KAAK;CAEzC,mBAAmB,kBAAkB,QAAQ,CAAC;CAE9C,OAAO,oBAAC,0BAA0B,UAA3B;EAAoC,OAAO;EAAW;CAA6C,CAAA;AAC5G;;AAGA,MAAa,0BAA0B,WACrC,SAAS,wBAAwB,EAAE,QAAQ,WAAW,OAAO,GAAG,gBAAgB,cAAc;CAC5F,MAAM,WAAW,6BAA6B;CAC9C,IAAI,CAAC,UAAU,OAAO;CAEtB,OAAO,cACL,QACA;EAAE;EAAQ;EAAW;CAAM,GAC3B;EAAE,OAAO;EAAU,KAAK;EAAc,OAAO,CAAC,cAAc,EAAE,UAAU,SAAS,cAAc,CAAC;CAAE,CACpG;AACF,CACF;;AAGA,MAAa,4BAA4B,WACvC,SAAS,0BAA0B,gBAAgB,cAAc;CAC/D,MAAM,EACJ,YACA,QACA,WACA,OACA,cAAc,eACd,mBAAmB,gBACnB,GAAG,iBACD;CACJ,MAAM,WAAW,6BAA6B;CAC9C,IAAI,CAAC,UAAU,OAAO;CAEtB,MAAM,EAAE,OAAO,OAAO,SAAS,aAAa;CAC5C,MAAM,YAAY,kBAAkB,mBAAmB,KAAA,IAAY,SAAS,QAAQ,KAAA;CAEpF,OACE,oBAAC,gBAAD;EACE,GAAI,kBAAkB,OAAO,2BAA2B;EACxD,GAAI;EACJ,KAAK;EACL,WAAW,WAAW,SAAS,IAAI,UAAU,KAAK,IAAI;EACtD,OAAO,WAAW,KAAK,IAAI,MAAM,KAAK,IAAI;EAC1C,QAAQ,WAAW,MAAM,KAAK,UAAqB,OAAO,OAAO,KAAK,IAAI;EACnE;EACP,eAAe;EACf,cAAY;EACZ,mBAAiB;EACjB,iBAAe,MAAM,YAAY,KAAA;EACjC,QAAQ,MAAM;EAEb,UAAA,QAAQ,KAAK,WAAW;GACvB,MAAM,YAAY;IAAE,GAAG;IAAQ,SAAS,OAAO,UAAU;GAAM;GAE/D,OACE,oBAAC,UAAD,EAAA,UACG,WACC;IACE,OAAO,OAAO;IACd,UAAU,OAAO;IACjB,cAAc,OAAO;IACrB,UAAU,OAAO;GACnB,GACA,SACF,EACQ,GAVK,OAAO,KAUZ;EAEd,CAAC;CACa,CAAA;AAEpB,CACF;;AAGA,MAAa,2BAA2B,WACtC,SAAS,yBAAyB,EAAE,OAAO,aAAa,UAAU,GAAG,SAAS,cAAc;CAC1F,OACE,oBAAC,wBAAD;EAA+B;EAAoB;EAAuB;EACxE,UAAA,oBAAC,2BAAD;GAA2B,GAAI;GAAO,KAAK;EAAe,CAAA;CACpC,CAAA;AAE5B,CACF;AAEA,SAAS,+BAA6D;CACpE,MAAM,WAAW,WAAW,yBAAyB;CACrD,IAAI,aAAa,KAAA,GAAW,MAAM,IAAI,MAAM,sEAAsE;CAElH,OAAO;AACT;AAEA,SAAS,kBAAkB,UAAyD;CAClF,OAAO;EACL,OAAO,UAAU,iBAAiB;EAClC,UAAU,UAAU,YAAY;EAChC,QAAQ,UAAU,UAAU;EAC5B,cAAc,UAAU,MAAM,gBAAgB;CAChD;AACF"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.parts.js","names":[],"sources":["../../../../src/ui/captions-radio-group/index.parts.ts"],"sourcesContent":["export {\n type CaptionsRadioGroupItemProps as ItemProps,\n type CaptionsRadioGroupItemState as ItemState,\n CaptionsRadioGroupOptions as Options,\n type CaptionsRadioGroupOptionsProps as OptionsProps,\n CaptionsRadioGroupRoot as Root,\n type CaptionsRadioGroupRootProps as RootProps,\n CaptionsRadioGroupValue as Value,\n type CaptionsRadioGroupValueProps as ValueProps,\n} from './component';\n"],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"use-captions-options.js","names":[],"sources":["../../../../src/ui/captions-radio-group/use-captions-options.ts"],"sourcesContent":["import { CaptionsRadioGroupCore, type CaptionsRadioGroupOption } from '@videojs/core';\nimport { selectTextTrack } from '@videojs/core/dom';\n\nimport { createRadioOptionsHook, type TranslatedRadioOption } from '../hooks/create-radio-options-hook';\n\nexport interface CaptionsOptionsProps extends CaptionsRadioGroupCore.Props {}\n\nexport type CaptionsOption = TranslatedRadioOption<CaptionsRadioGroupOption>;\n\nexport interface CaptionsOptionsResult {\n state: CaptionsRadioGroupCore.State;\n label: string;\n value: string;\n selectedLabel: string;\n options: CaptionsOption[];\n disabled: boolean;\n hidden: boolean;\n showMenu: boolean;\n setValue: (value: string) => void;\n}\n\nconst useCaptionsRadioOptions = createRadioOptionsHook({\n name: 'useCaptionsOptions',\n feature: 'textTrack',\n selector: selectTextTrack,\n createCore: () => new CaptionsRadioGroupCore(),\n});\n\n/**\n * Create captions menu options (including an `Off` option) from the player text track state. Returns `null` when the\n * text tracks feature is not configured.\n *\n * @param props - Optional `label`, `formatTrack`, and `disabled` overrides.\n */\nexport function useCaptionsOptions(props?: CaptionsOptionsProps): CaptionsOptionsResult | null {\n 'use no memo';\n\n const result = useCaptionsRadioOptions(props);\n if (!result) return null;\n\n return { ...result, showMenu: result.state.options.length > 2 };\n}\n\nexport namespace useCaptionsOptions {\n export type Props = CaptionsOptionsProps;\n export type Result = CaptionsOptionsResult;\n export type Option = CaptionsOption;\n}\n"],"mappings":";;;;AAqBA,MAAM,0BAA0B,uBAAuB;CACrD,MAAM;CACN,SAAS;CACT,UAAU;CACV,kBAAkB,IAAI,uBAAuB;AAC/C,CAAC;;;;;;;AAQD,SAAgB,mBAAmB,OAA4D;CAC7F;CAEA,MAAM,SAAS,wBAAwB,KAAK;CAC5C,IAAI,CAAC,QAAQ,OAAO;CAEpB,OAAO;EAAE,GAAG;EAAQ,UAAU,OAAO,MAAM,QAAQ,SAAS;CAAE;AAChE"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"component.js","names":[],"sources":["../../../../src/ui/cast-button/component.tsx"],"sourcesContent":["import { CastButtonCore, CastButtonDataAttrs } from '@videojs/core';\nimport { selectRemotePlayback } from '@videojs/core/dom';\n\nimport type { UIComponentProps } from '../../utils/types';\nimport { createMediaButton } from '../create-media-button';\n\nexport interface CastButtonProps extends UIComponentProps<'button', CastButtonCore.State>, CastButtonCore.Props {}\n\n/** A button that toggles casting to a remote device. */\nexport const CastButton = createMediaButton<CastButtonCore, CastButtonProps>({\n displayName: 'CastButton',\n core: CastButtonCore,\n stateAttrMap: CastButtonDataAttrs,\n selector: selectRemotePlayback,\n action: (core, state) => core.toggle(state),\n isSupported: (state) => !state.hidden,\n});\n\nexport namespace CastButton {\n export type Props = CastButtonProps;\n export type State = CastButtonCore.State;\n}\n"],"mappings":";;;;;AASA,MAAa,aAAa,kBAAmD;CAC3E,aAAa;CACb,MAAM;CACN,cAAc;CACd,UAAU;CACV,SAAS,MAAM,UAAU,KAAK,OAAO,KAAK;CAC1C,cAAc,UAAU,CAAC,MAAM;AACjC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"backdrop.js","names":[],"sources":["../../../../src/ui/controls/backdrop.tsx"],"sourcesContent":["import type { ControlsCore } from '@videojs/core';\nimport { forwardRef } from 'react';\n\nimport type { UIComponentProps } from '../../utils/types';\nimport { renderElement } from '../../utils/use-render';\nimport { useControlsContext } from './context';\n\nexport interface ControlsBackdropProps extends UIComponentProps<'div', ControlsCore.State> {}\n\n/**\n * Presentational layer behind player controls. Renders a `<div>` with the controls state data attributes so skins can\n * style it without reaching across sibling components.\n */\nexport const ControlsBackdrop = forwardRef<HTMLDivElement, ControlsBackdropProps>(function ControlsBackdrop(\n { render, className, style, ...elementProps },\n forwardedRef\n) {\n const { state, stateAttrMap } = useControlsContext();\n\n return renderElement(\n 'div',\n { render, className, style },\n {\n state,\n stateAttrMap,\n ref: [forwardedRef],\n props: [{ role: 'presentation', 'aria-hidden': true }, elementProps],\n }\n );\n});\n\nexport namespace ControlsBackdrop {\n export type Props = ControlsBackdropProps;\n export type State = ControlsCore.State;\n}\n"],"mappings":";;;;;;;;AAaA,MAAa,mBAAmB,WAAkD,SAAS,iBACzF,EAAE,QAAQ,WAAW,OAAO,GAAG,gBAC/B,cACA;CACA,MAAM,EAAE,OAAO,iBAAiB,mBAAmB;CAEnD,OAAO,cACL,OACA;EAAE;EAAQ;EAAW;CAAM,GAC3B;EACE;EACA;EACA,KAAK,CAAC,YAAY;EAClB,OAAO,CAAC;GAAE,MAAM;GAAgB,eAAe;EAAK,GAAG,YAAY;CACrE,CACF;AACF,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"content.js","names":[],"sources":["../../../../src/ui/controls/content.tsx"],"sourcesContent":["import type { ControlsCore } from '@videojs/core';\nimport type { ForwardedRef, ReactNode } from 'react';\nimport { forwardRef } from 'react';\n\nimport type { UIComponentProps } from '../../utils/types';\nimport { renderElement } from '../../utils/use-render';\nimport { useControlsContext } from './context';\n\nexport interface ControlsContentProps extends UIComponentProps<'div', ControlsCore.State> {\n children?: ReactNode | undefined;\n}\n\n/** Renders the interactive controls surface. */\nexport const ControlsContent = forwardRef(function ControlsContent(\n componentProps: ControlsContentProps,\n forwardedRef: ForwardedRef<HTMLDivElement>\n) {\n const { render, className, style, children, ...elementProps } = componentProps;\n const { state, stateAttrMap } = useControlsContext();\n\n return renderElement(\n 'div',\n { render, className, style },\n {\n state,\n stateAttrMap,\n ref: [forwardedRef],\n props: [{ children }, elementProps, { 'data-interactive': '' }],\n }\n );\n});\n\nexport namespace ControlsContent {\n export type Props = ControlsContentProps;\n export type State = ControlsCore.State;\n}\n"],"mappings":";;;;;AAaA,MAAa,kBAAkB,WAAW,SAAS,gBACjD,gBACA,cACA;CACA,MAAM,EAAE,QAAQ,WAAW,OAAO,UAAU,GAAG,iBAAiB;CAChE,MAAM,EAAE,OAAO,iBAAiB,mBAAmB;CAEnD,OAAO,cACL,OACA;EAAE;EAAQ;EAAW;CAAM,GAC3B;EACE;EACA;EACA,KAAK,CAAC,YAAY;EAClB,OAAO;GAAC,EAAE,SAAS;GAAG;GAAc,EAAE,oBAAoB,GAAG;EAAC;CAChE,CACF;AACF,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"context.js","names":[],"sources":["../../../../src/ui/controls/context.tsx"],"sourcesContent":["import type { ControlsState, StateAttrMap } from '@videojs/core';\nimport { createContext, useContext } from 'react';\n\nexport interface ControlsContextValue {\n state: ControlsState;\n stateAttrMap: StateAttrMap<ControlsState>;\n}\n\nconst ControlsContext = createContext<ControlsContextValue | null>(null);\n\nexport const ControlsContextProvider = ControlsContext.Provider;\n\nexport function useControlsContext(): ControlsContextValue {\n const ctx = useContext(ControlsContext);\n if (!ctx) throw new Error('Controls compound components must be used within a Controls.Root');\n\n return ctx;\n}\n\nexport function useOptionalControlsContext(): ControlsContextValue | null {\n return useContext(ControlsContext);\n}\n"],"mappings":";;AAQA,MAAM,kBAAkB,cAA2C,IAAI;AAEvE,MAAa,0BAA0B,gBAAgB;AAEvD,SAAgB,qBAA2C;CACzD,MAAM,MAAM,WAAW,eAAe;CACtC,IAAI,CAAC,KAAK,MAAM,IAAI,MAAM,kEAAkE;CAE5F,OAAO;AACT;AAEA,SAAgB,6BAA0D;CACxE,OAAO,WAAW,eAAe;AACnC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"group.js","names":[],"sources":["../../../../src/ui/controls/group.tsx"],"sourcesContent":["import type { ControlsCore } from '@videojs/core';\nimport type { ForwardedRef, ReactNode } from 'react';\nimport { forwardRef } from 'react';\n\nimport type { UIComponentProps } from '../../utils/types';\nimport { renderElement } from '../../utils/use-render';\nimport { useControlsContext } from './context';\n\nexport interface ControlsGroupProps extends UIComponentProps<'div', ControlsCore.State> {\n children?: ReactNode | undefined;\n}\n\n/** Layout group for related controls; sets `role=\"group\"` when labeled. */\nexport const ControlsGroup = forwardRef(function ControlsGroup(\n componentProps: ControlsGroupProps,\n forwardedRef: ForwardedRef<HTMLDivElement>\n) {\n const { render, className, style, children, ...elementProps } = componentProps;\n\n const { state, stateAttrMap } = useControlsContext();\n const role = elementProps['aria-label'] || elementProps['aria-labelledby'] ? 'group' : undefined;\n\n return renderElement(\n 'div',\n { render, className, style },\n {\n state,\n stateAttrMap,\n ref: [forwardedRef],\n props: [{ role, children }, elementProps],\n }\n );\n});\n\nexport namespace ControlsGroup {\n export type Props = ControlsGroupProps;\n}\n"],"mappings":";;;;;AAaA,MAAa,gBAAgB,WAAW,SAAS,cAC/C,gBACA,cACA;CACA,MAAM,EAAE,QAAQ,WAAW,OAAO,UAAU,GAAG,iBAAiB;CAEhE,MAAM,EAAE,OAAO,iBAAiB,mBAAmB;CACnD,MAAM,OAAO,aAAa,iBAAiB,aAAa,qBAAqB,UAAU,KAAA;CAEvF,OAAO,cACL,OACA;EAAE;EAAQ;EAAW;CAAM,GAC3B;EACE;EACA;EACA,KAAK,CAAC,YAAY;EAClB,OAAO,CAAC;GAAE;GAAM;EAAS,GAAG,YAAY;CAC1C,CACF;AACF,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.parts.js","names":[],"sources":["../../../../src/ui/controls/index.parts.ts"],"sourcesContent":["export { ControlsBackdrop as Backdrop, type ControlsBackdropProps as BackdropProps } from './backdrop';\nexport { ControlsContent as Content, type ControlsContentProps as ContentProps } from './content';\nexport { ControlsGroup as Group, type ControlsGroupProps as GroupProps } from './group';\nexport { ControlsRoot as Root, type ControlsRootProps as RootProps } from './root';\n"],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"root.js","names":[],"sources":["../../../../src/ui/controls/root.tsx"],"sourcesContent":["import { ControlsCore, ControlsDataAttrs, type ControlsProps } from '@videojs/core';\nimport { logMissingFeature, selectControls } from '@videojs/core/dom';\nimport type { ReactNode } from 'react';\nimport { useState } from 'react';\n\nimport { usePlayer } from '../../player/context';\nimport { ControlsContextProvider } from './context';\n\nexport interface ControlsRootProps extends ControlsProps {\n children?: ReactNode | undefined;\n}\n\n/** Manages controls state and provides it to the compound parts. Does not render an element. */\nexport function ControlsRoot({\n children,\n visibility = ControlsCore.defaultProps.visibility,\n}: ControlsRootProps): ReactNode {\n const controls = usePlayer(selectControls);\n const [core] = useState(() => new ControlsCore());\n\n core.setProps({ visibility });\n core.setMedia(controls ?? null);\n\n const state = core.getState();\n\n if (!state) {\n if (__DEV__) logMissingFeature('Controls.Root', 'controls');\n\n return null;\n }\n\n return (\n <ControlsContextProvider value={{ state, stateAttrMap: ControlsDataAttrs }}>{children}</ControlsContextProvider>\n );\n}\n\nexport namespace ControlsRoot {\n export type Props = ControlsRootProps;\n export type State = ControlsCore.State;\n}\n"],"mappings":";;;;;;;;AAaA,SAAgB,aAAa,EAC3B,UACA,aAAa,aAAa,aAAa,cACR;CAC/B,MAAM,WAAW,UAAU,cAAc;CACzC,MAAM,CAAC,QAAQ,eAAe,IAAI,aAAa,CAAC;CAEhD,KAAK,SAAS,EAAE,WAAW,CAAC;CAC5B,KAAK,SAAS,YAAY,IAAI;CAE9B,MAAM,QAAQ,KAAK,SAAS;CAE5B,IAAI,CAAC,OAGH,OAAO;CAGT,OACE,oBAAC,yBAAD;EAAyB,OAAO;GAAE;GAAO,cAAc;EAAkB;EAAI;CAAkC,CAAA;AAEnH"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"create-context-part.js","names":[],"sources":["../../../src/ui/create-context-part.tsx"],"sourcesContent":["import type { StateAttrMap } from '@videojs/core';\nimport type { ForwardRefExoticComponent } from 'react';\nimport { forwardRef } from 'react';\n\nimport type { UIComponentProps } from '@/utils/types';\n\nimport type { renderElement as renderElementFn } from '../utils/use-render';\nimport { renderElement } from '../utils/use-render';\n\ninterface ContextPartConfig<Props extends object, State extends object> {\n displayName: string;\n tag: keyof React.JSX.IntrinsicElements;\n useContext: () => { state: State; stateAttrMap: StateAttrMap<State> };\n staticProps?: Partial<Props>;\n /** Derive props from state on each render (e.g. `id` from a state field). */\n getProps?: (state: State) => Record<string, unknown>;\n}\n\nexport function createContextPart<Props extends UIComponentProps<any, any>, State extends object>(\n config: ContextPartConfig<Props, State>\n): ForwardRefExoticComponent<Props> {\n const { displayName, tag, useContext, staticProps, getProps } = config;\n\n const Component = forwardRef<HTMLElement, Props>(function ContextPart(componentProps, forwardedRef) {\n const { render, className, style, ...elementProps } = componentProps;\n const context = useContext();\n const dynamicProps = getProps?.(context.state);\n\n return renderElement(tag, { render, className, style } as renderElementFn.ComponentProps<State>, {\n state: context.state,\n stateAttrMap: context.stateAttrMap,\n ref: forwardedRef,\n props: [staticProps, dynamicProps, elementProps].filter(Boolean),\n });\n });\n\n Component.displayName = displayName;\n\n return Component as ForwardRefExoticComponent<Props>;\n}\n"],"mappings":";;;AAkBA,SAAgB,kBACd,QACkC;CAClC,MAAM,EAAE,aAAa,KAAK,YAAY,aAAa,aAAa;CAEhE,MAAM,YAAY,WAA+B,SAAS,YAAY,gBAAgB,cAAc;EAClG,MAAM,EAAE,QAAQ,WAAW,OAAO,GAAG,iBAAiB;EACtD,MAAM,UAAU,WAAW;EAC3B,MAAM,eAAe,WAAW,QAAQ,KAAK;EAE7C,OAAO,cAAc,KAAK;GAAE;GAAQ;GAAW;EAAM,GAA4C;GAC/F,OAAO,QAAQ;GACf,cAAc,QAAQ;GACtB,KAAK;GACL,OAAO;IAAC;IAAa;IAAc;GAAY,CAAC,CAAC,OAAO,OAAO;EACjE,CAAC;CACH,CAAC;CAED,UAAU,cAAc;CAExB,OAAO;AACT"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"create-media-button.js","names":[],"sources":["../../../src/ui/create-media-button.tsx"],"sourcesContent":["import type { InferComponentState, InferMediaState, MediaButtonComponent, StateAttrMap } from '@videojs/core';\nimport { logMissingFeature } from '@videojs/core/dom';\nimport { isText, translateText } from '@videojs/core/i18n';\nimport type { Selector } from '@videojs/store';\nimport { isUndefined } from '@videojs/utils/predicate';\nimport type { ForwardedRef, ForwardRefExoticComponent, RefAttributes } from 'react';\nimport { forwardRef, useLayoutEffect, useState } from 'react';\n\nimport { useTranslator } from '../i18n/context';\nimport { useContainer, usePlayer } from '../player/context';\nimport type { renderElement as renderElementFn } from '../utils/use-render';\nimport { renderElement } from '../utils/use-render';\nimport { useButton } from './hooks/use-button';\nimport { useHotkeyShortcut } from './hotkey/use-hotkey-shortcut';\nimport { useOptionalMenuTriggerChildContext } from './menu/context';\nimport { useOptionalTooltipContext } from './tooltip/context';\n\ninterface MediaButtonConfig<Core extends Required<MediaButtonComponent>> {\n displayName: string;\n core: { new (): Core; defaultProps: Record<string, unknown> };\n stateAttrMap: StateAttrMap<InferComponentState<Core>>;\n selector: Selector<object, InferMediaState<Core> | undefined>;\n action: (core: Core, state: InferMediaState<Core>) => void | Promise<void>;\n hotkeyAction?: string;\n hotkeyValue?: (props: Record<string, unknown>) => number | undefined;\n tooltipLabel?: (core: Core, state: InferComponentState<Core>) => string | undefined;\n /** Returns `false` to render `null` (e.g., when the underlying feature is unsupported). */\n isSupported?: (state: InferComponentState<Core>) => boolean;\n /** Whether pointer activation should move focus back to the player container. */\n focusContainerOnPointerActivation?: boolean;\n}\n\ntype LabelParams = Record<string, string | number>;\ntype LabelParamsCore<State> = {\n getLabelParams?: (state: State) => LabelParams | undefined;\n};\n\nfunction getLabelParams<Core extends MediaButtonComponent>(\n core: Core,\n state: InferComponentState<Core>\n): LabelParams | undefined {\n return (core as LabelParamsCore<InferComponentState<Core>>).getLabelParams?.(state);\n}\n\n/** Creates a media button React component from a core class and config. */\nexport function createMediaButton<Core extends Required<MediaButtonComponent>, Props extends object>(\n config: MediaButtonConfig<Core>\n): ForwardRefExoticComponent<Props & RefAttributes<HTMLButtonElement>> {\n const {\n displayName,\n core: CoreClass,\n stateAttrMap,\n selector,\n action,\n hotkeyAction,\n hotkeyValue,\n tooltipLabel,\n isSupported,\n focusContainerOnPointerActivation,\n } = config;\n\n // Props that exist in the core's defaultProps are routed to setProps; the rest go to the DOM element.\n const corePropKeys = new Set(Object.keys(CoreClass.defaultProps));\n\n const Component = forwardRef(function MediaButton(\n componentProps: Record<string, unknown>,\n forwardedRef: ForwardedRef<HTMLButtonElement>\n ) {\n const { render, className, style, ...rest } = componentProps;\n\n const coreProps: Record<string, unknown> = {};\n const elementProps: Record<string, unknown> = {};\n\n for (const key of Object.keys(rest)) {\n if (corePropKeys.has(key)) {\n coreProps[key] = rest[key];\n } else {\n elementProps[key] = rest[key];\n }\n }\n\n const tooltipCtx = useOptionalTooltipContext();\n const menuTriggerChild = useOptionalMenuTriggerChildContext();\n const setTooltipContent = tooltipCtx?.setContent;\n\n const feature = usePlayer(selector);\n const container = useContainer();\n const shortcut = useHotkeyShortcut(hotkeyAction, hotkeyValue?.(coreProps));\n const translator = useTranslator();\n\n const [core] = useState(() => new CoreClass());\n\n if (corePropKeys.has('menuTrigger') && isUndefined(coreProps.menuTrigger)) {\n coreProps.menuTrigger = menuTriggerChild;\n }\n\n core.setProps(coreProps);\n\n const { getButtonProps, buttonRef } = useButton({\n displayName,\n // `useButton` invokes `onActivate` synchronously from click/keyup\n // handlers, so any rejection here would be unhandled. Log in dev for\n // visibility but absorb the failure at this UI boundary.\n onActivate: (_event, source) => {\n if (focusContainerOnPointerActivation && source === 'pointer') {\n container?.focus({ preventScroll: true });\n }\n\n Promise.resolve(action(core, feature!)).catch((error) => {\n if (__DEV__) console.error(`[${displayName}]`, error);\n });\n },\n isDisabled: () => !!coreProps.disabled || !feature,\n });\n\n // Derive state and label before the hooks boundary so the\n // useLayoutEffect below (called unconditionally) can reference them.\n type State = InferComponentState<Core>;\n\n if (feature) core.setMedia(feature);\n\n const state = feature ? (core.getState() as State) : null;\n const supported = state ? (isSupported?.(state) ?? true) : false;\n const label =\n state && supported ? translateText(core.getLabel(state), translator, getLabelParams(core, state)) : undefined;\n const tooltipText = state && supported ? (tooltipLabel?.(core, state) ?? label) : undefined;\n\n // Forward label to tooltip popup content when inside a Tooltip.Root.\n useLayoutEffect(() => {\n if (!setTooltipContent) return;\n\n setTooltipContent(tooltipText ? { label: tooltipText, shortcut: shortcut.shortcut } : undefined);\n return () => setTooltipContent(undefined);\n }, [setTooltipContent, tooltipText, shortcut.shortcut]);\n\n if (!feature || !state) {\n if (__DEV__) logMissingFeature(displayName, selector.displayName ?? displayName);\n\n return null;\n }\n\n if (!supported) return null;\n\n const attrs = core.getAttrs(state) as Record<string, unknown>;\n const ariaLabel = attrs['aria-label'];\n const resolvedAttrs = {\n ...attrs,\n ...(isText(ariaLabel)\n ? { 'aria-label': translateText(ariaLabel, translator, getLabelParams(core, state)) }\n : undefined),\n 'aria-keyshortcuts': shortcut.aria,\n };\n\n return renderElement(\n 'button',\n { render, className, style } as renderElementFn.ComponentProps<InferComponentState<Core>>,\n {\n state,\n stateAttrMap,\n ref: [forwardedRef, buttonRef],\n props: [getButtonProps(), resolvedAttrs, elementProps],\n }\n );\n });\n\n Component.displayName = displayName;\n\n return Component as unknown as ForwardRefExoticComponent<Props & RefAttributes<HTMLButtonElement>>;\n}\n"],"mappings":";;;;;;;;;;;;AAqCA,SAAS,eACP,MACA,OACyB;CACzB,OAAQ,KAAoD,iBAAiB,KAAK;AACpF;;AAGA,SAAgB,kBACd,QACqE;CACrE,MAAM,EACJ,aACA,MAAM,WACN,cACA,UACA,QACA,cACA,aACA,cACA,aACA,sCACE;CAGJ,MAAM,eAAe,IAAI,IAAI,OAAO,KAAK,UAAU,YAAY,CAAC;CAEhE,MAAM,YAAY,WAAW,SAAS,YACpC,gBACA,cACA;EACA,MAAM,EAAE,QAAQ,WAAW,OAAO,GAAG,SAAS;EAE9C,MAAM,YAAqC,CAAC;EAC5C,MAAM,eAAwC,CAAC;EAE/C,KAAK,MAAM,OAAO,OAAO,KAAK,IAAI,GAChC,IAAI,aAAa,IAAI,GAAG,GACtB,UAAU,OAAO,KAAK;OAEtB,aAAa,OAAO,KAAK;EAI7B,MAAM,aAAa,0BAA0B;EAC7C,MAAM,mBAAmB,mCAAmC;EAC5D,MAAM,oBAAoB,YAAY;EAEtC,MAAM,UAAU,UAAU,QAAQ;EAClC,MAAM,YAAY,aAAa;EAC/B,MAAM,WAAW,kBAAkB,cAAc,cAAc,SAAS,CAAC;EACzE,MAAM,aAAa,cAAc;EAEjC,MAAM,CAAC,QAAQ,eAAe,IAAI,UAAU,CAAC;EAE7C,IAAI,aAAa,IAAI,aAAa,KAAK,YAAY,UAAU,WAAW,GACtE,UAAU,cAAc;EAG1B,KAAK,SAAS,SAAS;EAEvB,MAAM,EAAE,gBAAgB,cAAc,UAAU;GAC9C;GAIA,aAAa,QAAQ,WAAW;IAC9B,IAAI,qCAAqC,WAAW,WAClD,WAAW,MAAM,EAAE,eAAe,KAAK,CAAC;IAG1C,QAAQ,QAAQ,OAAO,MAAM,OAAQ,CAAC,CAAC,CAAC,OAAO,UAAU,CAEzD,CAAC;GACH;GACA,kBAAkB,CAAC,CAAC,UAAU,YAAY,CAAC;EAC7C,CAAC;EAMD,IAAI,SAAS,KAAK,SAAS,OAAO;EAElC,MAAM,QAAQ,UAAW,KAAK,SAAS,IAAc;EACrD,MAAM,YAAY,QAAS,cAAc,KAAK,KAAK,OAAQ;EAC3D,MAAM,QACJ,SAAS,YAAY,cAAc,KAAK,SAAS,KAAK,GAAG,YAAY,eAAe,MAAM,KAAK,CAAC,IAAI,KAAA;EACtG,MAAM,cAAc,SAAS,YAAa,eAAe,MAAM,KAAK,KAAK,QAAS,KAAA;EAGlF,sBAAsB;GACpB,IAAI,CAAC,mBAAmB;GAExB,kBAAkB,cAAc;IAAE,OAAO;IAAa,UAAU,SAAS;GAAS,IAAI,KAAA,CAAS;GAC/F,aAAa,kBAAkB,KAAA,CAAS;EAC1C,GAAG;GAAC;GAAmB;GAAa,SAAS;EAAQ,CAAC;EAEtD,IAAI,CAAC,WAAW,CAAC,OAGf,OAAO;EAGT,IAAI,CAAC,WAAW,OAAO;EAEvB,MAAM,QAAQ,KAAK,SAAS,KAAK;EACjC,MAAM,YAAY,MAAM;EACxB,MAAM,gBAAgB;GACpB,GAAG;GACH,GAAI,OAAO,SAAS,IAChB,EAAE,cAAc,cAAc,WAAW,YAAY,eAAe,MAAM,KAAK,CAAC,EAAE,IAClF,KAAA;GACJ,qBAAqB,SAAS;EAChC;EAEA,OAAO,cACL,UACA;GAAE;GAAQ;GAAW;EAAM,GAC3B;GACE;GACA;GACA,KAAK,CAAC,cAAc,SAAS;GAC7B,OAAO;IAAC,eAAe;IAAG;IAAe;GAAY;EACvD,CACF;CACF,CAAC;CAED,UAAU,cAAc;CAExB,OAAO;AACT"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"backdrop.js","names":[],"sources":["../../../../src/ui/dialog/backdrop.tsx"],"sourcesContent":["import type { DialogCore } from '@videojs/core';\nimport { forwardRef } from 'react';\n\nimport type { UIComponentProps } from '../../utils/types';\nimport { renderElement } from '../../utils/use-render';\nimport { useDialogContext } from './context';\n\nexport interface DialogBackdropProps extends UIComponentProps<'div', DialogCore.State> {}\n\n/** Presentational layer behind a dialog while it is rendered, including its exit transition. */\nexport const DialogBackdrop = forwardRef<HTMLDivElement, DialogBackdropProps>(function DialogBackdrop(\n { render, className, style, ...elementProps },\n forwardedRef\n) {\n const { state, stateAttrMap } = useDialogContext();\n if (!state.open) return null;\n\n return renderElement(\n 'div',\n { render, className, style },\n {\n state,\n stateAttrMap,\n ref: [forwardedRef],\n props: [{ role: 'presentation', 'aria-hidden': true }, elementProps],\n }\n );\n});\n\nexport namespace DialogBackdrop {\n export type Props = DialogBackdropProps;\n export type State = DialogCore.State;\n}\n"],"mappings":";;;;;AAUA,MAAa,iBAAiB,WAAgD,SAAS,eACrF,EAAE,QAAQ,WAAW,OAAO,GAAG,gBAC/B,cACA;CACA,MAAM,EAAE,OAAO,iBAAiB,iBAAiB;CACjD,IAAI,CAAC,MAAM,MAAM,OAAO;CAExB,OAAO,cACL,OACA;EAAE;EAAQ;EAAW;CAAM,GAC3B;EACE;EACA;EACA,KAAK,CAAC,YAAY;EAClB,OAAO,CAAC;GAAE,MAAM;GAAgB,eAAe;EAAK,GAAG,YAAY;CACrE,CACF;AACF,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"close.js","names":[],"sources":["../../../../src/ui/dialog/close.tsx"],"sourcesContent":["import type { DialogCore } from '@videojs/core';\nimport { forwardRef, useCallback } from 'react';\n\nimport type { UIComponentProps } from '../../utils/types';\nimport { renderElement } from '../../utils/use-render';\nimport { useDialogContext } from './context';\n\nexport interface DialogCloseProps extends UIComponentProps<'button', DialogCore.State> {}\n\n/** Renders a button that closes the dialog. */\nexport const DialogClose = forwardRef<HTMLButtonElement, DialogCloseProps>(function DialogClose(\n { render, className, style, disabled, ...elementProps },\n forwardedRef\n) {\n const { dialog, state, stateAttrMap } = useDialogContext();\n\n const handleClick = useCallback(() => {\n if (!disabled) dialog.close();\n }, [dialog, disabled]);\n\n return renderElement(\n 'button',\n { render, className, style },\n {\n state,\n stateAttrMap,\n ref: forwardedRef,\n props: [{ type: 'button' as const, disabled, onClick: handleClick }, elementProps],\n }\n );\n});\n\nexport namespace DialogClose {\n export type Props = DialogCloseProps;\n export type State = DialogCore.State;\n}\n"],"mappings":";;;;;AAUA,MAAa,cAAc,WAAgD,SAAS,YAClF,EAAE,QAAQ,WAAW,OAAO,UAAU,GAAG,gBACzC,cACA;CACA,MAAM,EAAE,QAAQ,OAAO,iBAAiB,iBAAiB;CAEzD,MAAM,cAAc,kBAAkB;EACpC,IAAI,CAAC,UAAU,OAAO,MAAM;CAC9B,GAAG,CAAC,QAAQ,QAAQ,CAAC;CAErB,OAAO,cACL,UACA;EAAE;EAAQ;EAAW;CAAM,GAC3B;EACE;EACA;EACA,KAAK;EACL,OAAO,CAAC;GAAE,MAAM;GAAmB;GAAU,SAAS;EAAY,GAAG,YAAY;CACnF,CACF;AACF,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"context.js","names":[],"sources":["../../../../src/ui/dialog/context.tsx"],"sourcesContent":["import type { DialogCore, StateAttrMap } from '@videojs/core';\nimport type { DialogApi } from '@videojs/core/dom';\nimport { createContext, useContext } from 'react';\n\nexport interface DialogContextValue {\n core: DialogCore;\n dialog: DialogApi;\n state: DialogCore.State;\n stateAttrMap: StateAttrMap<DialogCore.State>;\n popupId: string;\n}\n\nconst DialogContext = createContext<DialogContextValue | null>(null);\n\nexport const DialogContextProvider = DialogContext.Provider;\n\n/** Returns the current dialog compound-component context. Throws outside a dialog root. */\nexport function useDialogContext(): DialogContextValue {\n return useDialogContextFor('Dialog');\n}\n\nexport function useDialogContextFor(componentName: string): DialogContextValue {\n const ctx = useContext(DialogContext);\n if (!ctx) throw new Error(`${componentName} compound components must be used within a ${componentName}.Root`);\n\n return ctx;\n}\n"],"mappings":";;AAYA,MAAM,gBAAgB,cAAyC,IAAI;AAEnE,MAAa,wBAAwB,cAAc;;AAGnD,SAAgB,mBAAuC;CACrD,OAAO,oBAAoB,QAAQ;AACrC;AAEA,SAAgB,oBAAoB,eAA2C;CAC7E,MAAM,MAAM,WAAW,aAAa;CACpC,IAAI,CAAC,KAAK,MAAM,IAAI,MAAM,GAAG,cAAc,6CAA6C,cAAc,MAAM;CAE5G,OAAO;AACT"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"description.js","names":[],"sources":["../../../../src/ui/dialog/description.tsx"],"sourcesContent":["import type { DialogCore } from '@videojs/core';\n\nimport type { UIComponentProps } from '../../utils/types';\nimport { createContextPart } from '../create-context-part';\nimport { useDialogContext } from './context';\n\nexport interface DialogDescriptionProps extends UIComponentProps<'p', DialogCore.State> {}\n\n/** Renders the description announced with the dialog. */\nexport const DialogDescription = createContextPart<DialogDescriptionProps, DialogCore.State>({\n displayName: 'DialogDescription',\n tag: 'p',\n useContext: useDialogContext,\n getProps: (state) => ({ id: state.descriptionId }),\n});\n\nexport namespace DialogDescription {\n export type Props = DialogDescriptionProps;\n export type State = DialogCore.State;\n}\n"],"mappings":";;;;AASA,MAAa,oBAAoB,kBAA4D;CAC3F,aAAa;CACb,KAAK;CACL,YAAY;CACZ,WAAW,WAAW,EAAE,IAAI,MAAM,cAAc;AAClD,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.parts.js","names":[],"sources":["../../../../src/ui/dialog/index.parts.ts"],"sourcesContent":["export { DialogBackdrop as Backdrop, type DialogBackdropProps as BackdropProps } from './backdrop';\nexport { DialogClose as Close, type DialogCloseProps as CloseProps } from './close';\nexport { DialogDescription as Description, type DialogDescriptionProps as DescriptionProps } from './description';\nexport { DialogPopup as Popup, type DialogPopupProps as PopupProps } from './popup';\nexport { DialogRoot as Root, type DialogRootProps as RootProps } from './root';\nexport { DialogTitle as Title, type DialogTitleProps as TitleProps } from './title';\nexport { DialogTrigger as Trigger, type DialogTriggerProps as TriggerProps } from './trigger';\n"],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"popup.js","names":[],"sources":["../../../../src/ui/dialog/popup.tsx"],"sourcesContent":["import type { DialogCore } from '@videojs/core';\nimport { forwardRef, useCallback } from 'react';\n\nimport type { UIComponentProps } from '../../utils/types';\nimport { renderElement } from '../../utils/use-render';\nimport { useDialogContext } from './context';\n\nexport interface DialogPopupProps extends UIComponentProps<'div', DialogCore.State> {}\n\n/** Renders the modal dialog while it is open. */\nexport const DialogPopup = forwardRef<HTMLDivElement, DialogPopupProps>(function DialogPopup(\n { render, className, style, ...elementProps },\n forwardedRef\n) {\n const { core, dialog, state, stateAttrMap, popupId } = useDialogContext();\n\n const popupRef = useCallback((element: HTMLDivElement | null) => dialog.setPopupElement(element), [dialog]);\n\n if (!state.open) return null;\n\n return renderElement(\n 'div',\n { render, className, style },\n {\n state,\n stateAttrMap,\n ref: [forwardedRef, popupRef],\n props: [{ id: popupId, tabIndex: -1, ...core.getPopupAttrs(state) }, elementProps],\n }\n );\n});\n\nexport namespace DialogPopup {\n export type Props = DialogPopupProps;\n export type State = DialogCore.State;\n}\n"],"mappings":";;;;;AAUA,MAAa,cAAc,WAA6C,SAAS,YAC/E,EAAE,QAAQ,WAAW,OAAO,GAAG,gBAC/B,cACA;CACA,MAAM,EAAE,MAAM,QAAQ,OAAO,cAAc,YAAY,iBAAiB;CAExE,MAAM,WAAW,aAAa,YAAmC,OAAO,gBAAgB,OAAO,GAAG,CAAC,MAAM,CAAC;CAE1G,IAAI,CAAC,MAAM,MAAM,OAAO;CAExB,OAAO,cACL,OACA;EAAE;EAAQ;EAAW;CAAM,GAC3B;EACE;EACA;EACA,KAAK,CAAC,cAAc,QAAQ;EAC5B,OAAO,CAAC;GAAE,IAAI;GAAS,UAAU;GAAI,GAAG,KAAK,cAAc,KAAK;EAAE,GAAG,YAAY;CACnF,CACF;AACF,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"root.js","names":[],"sources":["../../../../src/ui/dialog/root.tsx"],"sourcesContent":["import { DialogCore, type DialogProps } from '@videojs/core';\nimport type { ReactNode } from 'react';\n\nimport { DialogContextProvider } from './context';\nimport { useDialogRoot } from './use-dialog-root';\n\nexport interface DialogRootProps extends DialogProps {\n /** Called when the open state changes, before animations complete. */\n onOpenChange?: (open: boolean) => void;\n /** Called after open or close animations complete. */\n onOpenChangeComplete?: (open: boolean) => void;\n children?: ReactNode;\n}\n\n/** Manages dialog state and provides it to the compound parts. */\nexport function DialogRoot(props: DialogRootProps): ReactNode {\n const context = useDialogRoot({ ...props, coreFactory: createDialogCore });\n\n return <DialogContextProvider value={context}>{props.children}</DialogContextProvider>;\n}\n\nfunction createDialogCore(): DialogCore {\n return new DialogCore();\n}\n\nexport namespace DialogRoot {\n export type Props = DialogRootProps;\n}\n"],"mappings":";;;;;;AAeA,SAAgB,WAAW,OAAmC;CAC5D,MAAM,UAAU,cAAc;EAAE,GAAG;EAAO,aAAa;CAAiB,CAAC;CAEzE,OAAO,oBAAC,uBAAD;EAAuB,OAAO;EAAU,UAAA,MAAM;CAAgC,CAAA;AACvF;AAEA,SAAS,mBAA+B;CACtC,OAAO,IAAI,WAAW;AACxB"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"title.js","names":[],"sources":["../../../../src/ui/dialog/title.tsx"],"sourcesContent":["import type { DialogCore } from '@videojs/core';\n\nimport type { UIComponentProps } from '../../utils/types';\nimport { createContextPart } from '../create-context-part';\nimport { useDialogContext } from './context';\n\nexport interface DialogTitleProps extends UIComponentProps<'h2', DialogCore.State> {}\n\n/** Renders the heading that labels the dialog. */\nexport const DialogTitle = createContextPart<DialogTitleProps, DialogCore.State>({\n displayName: 'DialogTitle',\n tag: 'h2',\n useContext: useDialogContext,\n getProps: (state) => ({ id: state.titleId }),\n});\n\nexport namespace DialogTitle {\n export type Props = DialogTitleProps;\n export type State = DialogCore.State;\n}\n"],"mappings":";;;;AASA,MAAa,cAAc,kBAAsD;CAC/E,aAAa;CACb,KAAK;CACL,YAAY;CACZ,WAAW,WAAW,EAAE,IAAI,MAAM,QAAQ;AAC5C,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"trigger.js","names":[],"sources":["../../../../src/ui/dialog/trigger.tsx"],"sourcesContent":["import type { DialogCore } from '@videojs/core';\nimport { forwardRef, useCallback } from 'react';\n\nimport type { UIComponentProps } from '../../utils/types';\nimport { renderElement } from '../../utils/use-render';\nimport { useDialogContext } from './context';\n\nexport interface DialogTriggerProps extends UIComponentProps<'button', DialogCore.State> {}\n\n/** Renders a button that opens the dialog. */\nexport const DialogTrigger = forwardRef<HTMLButtonElement, DialogTriggerProps>(function DialogTrigger(\n { render, className, style, ...elementProps },\n forwardedRef\n) {\n const { core, dialog, state, stateAttrMap, popupId } = useDialogContext();\n\n const triggerRef = useCallback((element: HTMLButtonElement | null) => dialog.setTriggerElement(element), [dialog]);\n\n return renderElement(\n 'button',\n { render, className, style },\n {\n state,\n stateAttrMap,\n ref: [forwardedRef, triggerRef],\n props: [{ type: 'button' as const, ...core.getTriggerAttrs(state, popupId) }, dialog.triggerProps, elementProps],\n }\n );\n});\n\nexport namespace DialogTrigger {\n export type Props = DialogTriggerProps;\n export type State = DialogCore.State;\n}\n"],"mappings":";;;;;AAUA,MAAa,gBAAgB,WAAkD,SAAS,cACtF,EAAE,QAAQ,WAAW,OAAO,GAAG,gBAC/B,cACA;CACA,MAAM,EAAE,MAAM,QAAQ,OAAO,cAAc,YAAY,iBAAiB;CAExE,MAAM,aAAa,aAAa,YAAsC,OAAO,kBAAkB,OAAO,GAAG,CAAC,MAAM,CAAC;CAEjH,OAAO,cACL,UACA;EAAE;EAAQ;EAAW;CAAM,GAC3B;EACE;EACA;EACA,KAAK,CAAC,cAAc,UAAU;EAC9B,OAAO;GAAC;IAAE,MAAM;IAAmB,GAAG,KAAK,gBAAgB,OAAO,OAAO;GAAE;GAAG,OAAO;GAAc;EAAY;CACjH,CACF;AACF,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"use-dialog-root.js","names":[],"sources":["../../../../src/ui/dialog/use-dialog-root.ts"],"sourcesContent":["import { DialogCore, DialogDataAttrs, type DialogProps, type DialogState, type StateAttrMap } from '@videojs/core';\nimport { createDialog, createTransition } from '@videojs/core/dom';\nimport { useSnapshot } from '@videojs/store/react';\nimport { useEffect, useLayoutEffect, useState } from 'react';\n\nimport { useDestroy } from '../../utils/use-destroy';\nimport { useLatestRef } from '../../utils/use-latest-ref';\nimport { useSafeId } from '../../utils/use-safe-id';\nimport type { DialogContextValue } from './context';\n\nexport interface UseDialogRootOptions extends DialogProps {\n onOpenChange?: (open: boolean) => void;\n onOpenChangeComplete?: (open: boolean) => void;\n coreFactory?: () => DialogCore;\n stateAttrMap?: StateAttrMap<DialogState>;\n idPrefix?: string;\n interactionRoot?: HTMLElement | null;\n}\n\nexport function useDialogRoot({\n open: controlledOpen,\n defaultOpen = DialogCore.defaultProps.defaultOpen,\n closeOnEscape = DialogCore.defaultProps.closeOnEscape,\n onOpenChange: onOpenChangeProp,\n onOpenChangeComplete: onOpenChangeCompleteProp,\n coreFactory = createDialogCore,\n stateAttrMap = DialogDataAttrs,\n idPrefix = 'dialog',\n interactionRoot,\n}: UseDialogRootOptions): DialogContextValue {\n const [core] = useState(coreFactory);\n\n core.setProps({ open: controlledOpen, defaultOpen, closeOnEscape });\n\n const isControlled = controlledOpen !== undefined;\n const onOpenChangeRef = useLatestRef(onOpenChangeProp);\n const onOpenChangeCompleteRef = useLatestRef(onOpenChangeCompleteProp);\n const closeOnEscapeRef = useLatestRef(closeOnEscape);\n\n const [dialog] = useState(() => {\n const instance = createDialog({\n transition: createTransition(),\n onOpenChange: (nextOpen: boolean) => onOpenChangeRef.current?.(nextOpen),\n onOpenChangeComplete: (nextOpen: boolean) => onOpenChangeCompleteRef.current?.(nextOpen),\n closeOnEscape: () => closeOnEscapeRef.current,\n });\n\n if (!isControlled && defaultOpen) instance.open();\n\n return instance;\n });\n\n const popupId = useSafeId(`${idPrefix}-popup`);\n const titleId = useSafeId(`${idPrefix}-title`);\n const descriptionId = useSafeId(`${idPrefix}-desc`);\n\n core.setTitleId(titleId);\n core.setDescriptionId(descriptionId);\n\n useEffect(() => {\n if (controlledOpen === undefined) return;\n\n const { active: inputOpen } = dialog.input.current;\n if (controlledOpen === inputOpen) return;\n\n if (controlledOpen) dialog.open();\n else dialog.close();\n }, [controlledOpen, dialog]);\n\n useLayoutEffect(() => {\n dialog.setInteractionRoot(interactionRoot ?? null);\n }, [dialog, interactionRoot]);\n\n useDestroy(dialog);\n\n const input = useSnapshot(dialog.input);\n const modality = useSnapshot(dialog.modality);\n\n core.setInput(input);\n core.setDocumentModal(modality.documentModal);\n\n return {\n core,\n dialog,\n state: core.getState(),\n stateAttrMap,\n popupId,\n };\n}\n\nfunction createDialogCore(): DialogCore {\n return new DialogCore();\n}\n"],"mappings":";;;;;;;;AAmBA,SAAgB,cAAc,EAC5B,MAAM,gBACN,cAAc,WAAW,aAAa,aACtC,gBAAgB,WAAW,aAAa,eACxC,cAAc,kBACd,sBAAsB,0BACtB,cAAc,kBACd,eAAe,iBACf,WAAW,UACX,mBAC2C;CAC3C,MAAM,CAAC,QAAQ,SAAS,WAAW;CAEnC,KAAK,SAAS;EAAE,MAAM;EAAgB;EAAa;CAAc,CAAC;CAElE,MAAM,eAAe,mBAAmB,KAAA;CACxC,MAAM,kBAAkB,aAAa,gBAAgB;CACrD,MAAM,0BAA0B,aAAa,wBAAwB;CACrE,MAAM,mBAAmB,aAAa,aAAa;CAEnD,MAAM,CAAC,UAAU,eAAe;EAC9B,MAAM,WAAW,aAAa;GAC5B,YAAY,iBAAiB;GAC7B,eAAe,aAAsB,gBAAgB,UAAU,QAAQ;GACvE,uBAAuB,aAAsB,wBAAwB,UAAU,QAAQ;GACvF,qBAAqB,iBAAiB;EACxC,CAAC;EAED,IAAI,CAAC,gBAAgB,aAAa,SAAS,KAAK;EAEhD,OAAO;CACT,CAAC;CAED,MAAM,UAAU,UAAU,GAAG,SAAS,OAAO;CAC7C,MAAM,UAAU,UAAU,GAAG,SAAS,OAAO;CAC7C,MAAM,gBAAgB,UAAU,GAAG,SAAS,MAAM;CAElD,KAAK,WAAW,OAAO;CACvB,KAAK,iBAAiB,aAAa;CAEnC,gBAAgB;EACd,IAAI,mBAAmB,KAAA,GAAW;EAElC,MAAM,EAAE,QAAQ,cAAc,OAAO,MAAM;EAC3C,IAAI,mBAAmB,WAAW;EAElC,IAAI,gBAAgB,OAAO,KAAK;OAC3B,OAAO,MAAM;CACpB,GAAG,CAAC,gBAAgB,MAAM,CAAC;CAE3B,sBAAsB;EACpB,OAAO,mBAAmB,mBAAmB,IAAI;CACnD,GAAG,CAAC,QAAQ,eAAe,CAAC;CAE5B,WAAW,MAAM;CAEjB,MAAM,QAAQ,YAAY,OAAO,KAAK;CACtC,MAAM,WAAW,YAAY,OAAO,QAAQ;CAE5C,KAAK,SAAS,KAAK;CACnB,KAAK,iBAAiB,SAAS,aAAa;CAE5C,OAAO;EACL;EACA;EACA,OAAO,KAAK,SAAS;EACrB;EACA;CACF;AACF;AAEA,SAAS,mBAA+B;CACtC,OAAO,IAAI,WAAW;AACxB"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"close.js","names":[],"sources":["../../../../src/ui/error-dialog/close.tsx"],"sourcesContent":["import { type DialogCore, getErrorDialogDismissText } from '@videojs/core';\nimport { translateText } from '@videojs/core/i18n';\nimport { forwardRef, type ReactNode, useCallback } from 'react';\n\nimport { useTranslator } from '../../i18n/context';\nimport type { UIComponentProps } from '../../utils/types';\nimport { renderElement } from '../../utils/use-render';\nimport { useDialogContext } from '../dialog/context';\n\nexport interface ErrorDialogCloseProps extends UIComponentProps<'button', DialogCore.State> {}\n\n/** Renders a localized button that closes the dialog and dismisses the player error. */\nexport const ErrorDialogClose = forwardRef<HTMLButtonElement, ErrorDialogCloseProps>(function ErrorDialogClose(\n { render, className, style, disabled, children, ...elementProps },\n forwardedRef\n) {\n const t = useTranslator();\n const { dialog, state, stateAttrMap } = useDialogContext();\n\n const handleClick = useCallback(() => {\n if (disabled) return;\n\n dialog.close();\n }, [dialog, disabled]);\n\n const content: ReactNode = children ?? translateText(getErrorDialogDismissText(), t);\n\n return renderElement(\n 'button',\n { render, className, style },\n {\n state,\n stateAttrMap,\n ref: forwardedRef,\n props: [{ type: 'button' as const, disabled, onClick: handleClick, children: content }, elementProps],\n }\n );\n});\n\nexport namespace ErrorDialogClose {\n export type Props = ErrorDialogCloseProps;\n export type State = DialogCore.State;\n}\n"],"mappings":";;;;;;;;AAYA,MAAa,mBAAmB,WAAqD,SAAS,iBAC5F,EAAE,QAAQ,WAAW,OAAO,UAAU,UAAU,GAAG,gBACnD,cACA;CACA,MAAM,IAAI,cAAc;CACxB,MAAM,EAAE,QAAQ,OAAO,iBAAiB,iBAAiB;CAEzD,MAAM,cAAc,kBAAkB;EACpC,IAAI,UAAU;EAEd,OAAO,MAAM;CACf,GAAG,CAAC,QAAQ,QAAQ,CAAC;CAErB,MAAM,UAAqB,YAAY,cAAc,0BAA0B,GAAG,CAAC;CAEnF,OAAO,cACL,UACA;EAAE;EAAQ;EAAW;CAAM,GAC3B;EACE;EACA;EACA,KAAK;EACL,OAAO,CAAC;GAAE,MAAM;GAAmB;GAAU,SAAS;GAAa,UAAU;EAAQ,GAAG,YAAY;CACtG,CACF;AACF,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"context.js","names":[],"sources":["../../../../src/ui/error-dialog/context.tsx"],"sourcesContent":["import type { ErrorLike } from '@videojs/media';\nimport { createContext, useContext } from 'react';\n\nexport interface ErrorDialogContextValue {\n lastError: ErrorLike | null;\n}\n\nconst ErrorDialogContext = createContext<ErrorDialogContextValue | null>(null);\n\nexport const ErrorDialogContextProvider = ErrorDialogContext.Provider;\n\n/** Returns the current error dialog compound-component context. Throws outside `ErrorDialog.Root`. */\nexport function useErrorDialogContext(): ErrorDialogContextValue {\n const ctx = useContext(ErrorDialogContext);\n if (!ctx) throw new Error('ErrorDialog compound components must be used within an ErrorDialog.Root');\n\n return ctx;\n}\n"],"mappings":";;AAOA,MAAM,qBAAqB,cAA8C,IAAI;AAE7E,MAAa,6BAA6B,mBAAmB;;AAG7D,SAAgB,wBAAiD;CAC/D,MAAM,MAAM,WAAW,kBAAkB;CACzC,IAAI,CAAC,KAAK,MAAM,IAAI,MAAM,yEAAyE;CAEnG,OAAO;AACT"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"description.js","names":[],"sources":["../../../../src/ui/error-dialog/description.tsx"],"sourcesContent":["import { type DialogCore, resolveErrorDialogDescription } from '@videojs/core';\nimport { translateText } from '@videojs/core/i18n';\nimport { forwardRef, type ReactNode } from 'react';\n\nimport { useTranslator } from '../../i18n/context';\nimport type { UIComponentProps } from '../../utils/types';\nimport { renderElement } from '../../utils/use-render';\nimport { useDialogContext } from '../dialog/context';\nimport { useErrorDialogContext } from './context';\n\nexport interface ErrorDialogDescriptionProps extends UIComponentProps<'p', DialogCore.State> {}\n\n/** Renders the localized playback error message, or authored children when provided. */\nexport const ErrorDialogDescription = forwardRef<HTMLParagraphElement, ErrorDialogDescriptionProps>(\n function ErrorDialogDescription({ render, className, style, children, ...elementProps }, forwardedRef) {\n const t = useTranslator();\n const { state, stateAttrMap } = useDialogContext();\n const { lastError } = useErrorDialogContext();\n const description = resolveErrorDialogDescription(lastError);\n const content: ReactNode = children ?? translateText(description, t);\n\n return renderElement(\n 'p',\n { render, className, style },\n {\n state,\n stateAttrMap,\n ref: forwardedRef,\n props: [{ id: state.descriptionId, children: content }, elementProps],\n }\n );\n }\n);\n\nexport namespace ErrorDialogDescription {\n export type Props = ErrorDialogDescriptionProps;\n export type State = DialogCore.State;\n}\n"],"mappings":";;;;;;;;;AAaA,MAAa,yBAAyB,WACpC,SAAS,uBAAuB,EAAE,QAAQ,WAAW,OAAO,UAAU,GAAG,gBAAgB,cAAc;CACrG,MAAM,IAAI,cAAc;CACxB,MAAM,EAAE,OAAO,iBAAiB,iBAAiB;CACjD,MAAM,EAAE,cAAc,sBAAsB;CAC5C,MAAM,cAAc,8BAA8B,SAAS;CAC3D,MAAM,UAAqB,YAAY,cAAc,aAAa,CAAC;CAEnE,OAAO,cACL,KACA;EAAE;EAAQ;EAAW;CAAM,GAC3B;EACE;EACA;EACA,KAAK;EACL,OAAO,CAAC;GAAE,IAAI,MAAM;GAAe,UAAU;EAAQ,GAAG,YAAY;CACtE,CACF;AACF,CACF"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.parts.js","names":[],"sources":["../../../../src/ui/error-dialog/index.parts.ts"],"sourcesContent":["export { Backdrop, type BackdropProps, Popup, type PopupProps } from '../dialog/index.parts';\nexport { ErrorDialogClose as Close, type ErrorDialogCloseProps as CloseProps } from './close';\nexport {\n ErrorDialogDescription as Description,\n type ErrorDialogDescriptionProps as DescriptionProps,\n} from './description';\nexport { ErrorDialogRoot as Root, type ErrorDialogRootProps as RootProps } from './root';\nexport { ErrorDialogTitle as Title, type ErrorDialogTitleProps as TitleProps } from './title';\n"],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"root.js","names":[],"sources":["../../../../src/ui/error-dialog/root.tsx"],"sourcesContent":["import { ErrorDialogCore, ErrorDialogDataAttrs } from '@videojs/core';\nimport { selectError } from '@videojs/core/dom';\nimport type { ReactNode } from 'react';\nimport { useRef } from 'react';\n\nimport { useContainer, usePlayer } from '../../player/context';\nimport { useLatestRef } from '../../utils/use-latest-ref';\nimport { DialogContextProvider } from '../dialog/context';\nimport { useDialogRoot } from '../dialog/use-dialog-root';\nimport { ErrorDialogContextProvider } from './context';\n\nexport interface ErrorDialogRootProps {\n children?: ReactNode;\n}\n\n/** Opens from player error state and provides it to the shared dialog parts. */\nexport function ErrorDialogRoot({ children }: ErrorDialogRootProps): ReactNode {\n const errorState = usePlayer(selectError);\n const container = useContainer();\n const lastError = useRef(errorState?.error ?? null);\n\n if (errorState?.error) lastError.current = errorState.error;\n\n const errorStateRef = useLatestRef(errorState);\n const dialogContext = useDialogRoot({\n open: Boolean(errorState?.error),\n onOpenChange(nextOpen) {\n if (!nextOpen) errorStateRef.current?.dismissError();\n },\n coreFactory: createErrorDialogCore,\n stateAttrMap: ErrorDialogDataAttrs,\n idPrefix: 'error-dialog',\n interactionRoot: container,\n });\n\n if (!errorState) return null;\n\n return (\n <ErrorDialogContextProvider value={{ lastError: lastError.current }}>\n <DialogContextProvider value={dialogContext}>{children}</DialogContextProvider>\n </ErrorDialogContextProvider>\n );\n}\n\nfunction createErrorDialogCore(): ErrorDialogCore {\n return new ErrorDialogCore();\n}\n\nexport namespace ErrorDialogRoot {\n export type Props = ErrorDialogRootProps;\n}\n"],"mappings":";;;;;;;;;;;AAgBA,SAAgB,gBAAgB,EAAE,YAA6C;CAC7E,MAAM,aAAa,UAAU,WAAW;CACxC,MAAM,YAAY,aAAa;CAC/B,MAAM,YAAY,OAAO,YAAY,SAAS,IAAI;CAElD,IAAI,YAAY,OAAO,UAAU,UAAU,WAAW;CAEtD,MAAM,gBAAgB,aAAa,UAAU;CAC7C,MAAM,gBAAgB,cAAc;EAClC,MAAM,QAAQ,YAAY,KAAK;EAC/B,aAAa,UAAU;GACrB,IAAI,CAAC,UAAU,cAAc,SAAS,aAAa;EACrD;EACA,aAAa;EACb,cAAc;EACd,UAAU;EACV,iBAAiB;CACnB,CAAC;CAED,IAAI,CAAC,YAAY,OAAO;CAExB,OACE,oBAAC,4BAAD;EAA4B,OAAO,EAAE,WAAW,UAAU,QAAQ;EAChE,UAAA,oBAAC,uBAAD;GAAuB,OAAO;GAAgB;EAAgC,CAAA;CACpD,CAAA;AAEhC;AAEA,SAAS,wBAAyC;CAChD,OAAO,IAAI,gBAAgB;AAC7B"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"title.js","names":[],"sources":["../../../../src/ui/error-dialog/title.tsx"],"sourcesContent":["import { type DialogCore, getErrorDialogTitleText } from '@videojs/core';\nimport { translateText } from '@videojs/core/i18n';\nimport { forwardRef, type ReactNode } from 'react';\n\nimport { useTranslator } from '../../i18n/context';\nimport type { UIComponentProps } from '../../utils/types';\nimport { renderElement } from '../../utils/use-render';\nimport { useDialogContext } from '../dialog/context';\n\nexport interface ErrorDialogTitleProps extends UIComponentProps<'h2', DialogCore.State> {}\n\n/** Renders the localized error dialog heading, or authored children when provided. */\nexport const ErrorDialogTitle = forwardRef<HTMLHeadingElement, ErrorDialogTitleProps>(function ErrorDialogTitle(\n { render, className, style, children, ...elementProps },\n forwardedRef\n) {\n const t = useTranslator();\n const { state, stateAttrMap } = useDialogContext();\n const content: ReactNode = children ?? translateText(getErrorDialogTitleText(), t);\n\n return renderElement(\n 'h2',\n { render, className, style },\n {\n state,\n stateAttrMap,\n ref: forwardedRef,\n props: [{ id: state.titleId, children: content }, elementProps],\n }\n );\n});\n\nexport namespace ErrorDialogTitle {\n export type Props = ErrorDialogTitleProps;\n export type State = DialogCore.State;\n}\n"],"mappings":";;;;;;;;AAYA,MAAa,mBAAmB,WAAsD,SAAS,iBAC7F,EAAE,QAAQ,WAAW,OAAO,UAAU,GAAG,gBACzC,cACA;CACA,MAAM,IAAI,cAAc;CACxB,MAAM,EAAE,OAAO,iBAAiB,iBAAiB;CACjD,MAAM,UAAqB,YAAY,cAAc,wBAAwB,GAAG,CAAC;CAEjF,OAAO,cACL,MACA;EAAE;EAAQ;EAAW;CAAM,GAC3B;EACE;EACA;EACA,KAAK;EACL,OAAO,CAAC;GAAE,IAAI,MAAM;GAAS,UAAU;EAAQ,GAAG,YAAY;CAChE,CACF;AACF,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"component.js","names":[],"sources":["../../../../src/ui/fullscreen-button/component.tsx"],"sourcesContent":["import { FullscreenButtonCore, FullscreenButtonDataAttrs } from '@videojs/core';\nimport { selectFullscreen } from '@videojs/core/dom';\n\nimport type { UIComponentProps } from '../../utils/types';\nimport { createMediaButton } from '../create-media-button';\n\nexport interface FullscreenButtonProps\n extends UIComponentProps<'button', FullscreenButtonCore.State>, FullscreenButtonCore.Props {}\n\n/** A button that toggles fullscreen. */\nexport const FullscreenButton = createMediaButton<FullscreenButtonCore, FullscreenButtonProps>({\n displayName: 'FullscreenButton',\n core: FullscreenButtonCore,\n stateAttrMap: FullscreenButtonDataAttrs,\n selector: selectFullscreen,\n action: (core, state) => core.toggle(state),\n hotkeyAction: 'toggleFullscreen',\n isSupported: (state) => !state.hidden,\n focusContainerOnPointerActivation: true,\n});\n\nexport namespace FullscreenButton {\n export type Props = FullscreenButtonProps;\n export type State = FullscreenButtonCore.State;\n}\n"],"mappings":";;;;;AAUA,MAAa,mBAAmB,kBAA+D;CAC7F,aAAa;CACb,MAAM;CACN,cAAc;CACd,UAAU;CACV,SAAS,MAAM,UAAU,KAAK,OAAO,KAAK;CAC1C,cAAc;CACd,cAAc,UAAU,CAAC,MAAM;CAC/B,mCAAmC;AACrC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"component.js","names":[],"sources":["../../../../src/ui/gesture/component.tsx"],"sourcesContent":["import type { GestureProps as CoreGestureProps } from '@videojs/core';\nimport type { AnyPlayerStore } from '@videojs/core/dom';\nimport {\n createDoubleTapGesture,\n createTapGesture,\n getGestureActionValue,\n resolveGestureAction,\n} from '@videojs/core/dom';\nimport type { ReactNode } from 'react';\nimport { useEffect } from 'react';\n\nimport { useContainer, usePlayer } from '../../player/context';\n\nexport interface GestureProps extends CoreGestureProps {}\n\nexport function Gesture({ type, action, value, pointer, region, disabled }: GestureProps): ReactNode {\n const store = usePlayer() as AnyPlayerStore;\n const container = useContainer();\n\n useEffect(() => {\n if (!container || !type || !action || disabled) return;\n\n const resolver = resolveGestureAction(action);\n if (!resolver) return;\n\n const actionValue = getGestureActionValue(action, region, value);\n\n const onActivate = (event: PointerEvent) => {\n resolver({ store, value: actionValue, event });\n };\n\n const options = { pointer, region, action, value: actionValue };\n\n if (type === 'doubletap') {\n return createDoubleTapGesture(container, onActivate, options);\n }\n\n if (type === 'tap') return createTapGesture(container, onActivate, options);\n\n return;\n }, [container, store, type, action, value, pointer, region, disabled]);\n\n return null;\n}\n\nexport namespace Gesture {\n export type Props = GestureProps;\n}\n\n/** @deprecated Use `GestureProps` instead. */\nexport type MediaGestureProps = GestureProps;\n\n/** @deprecated Use `Gesture` instead. */\nexport const MediaGesture = Gesture;\n"],"mappings":";;;;AAeA,SAAgB,QAAQ,EAAE,MAAM,QAAQ,OAAO,SAAS,QAAQ,YAAqC;CACnG,MAAM,QAAQ,UAAU;CACxB,MAAM,YAAY,aAAa;CAE/B,gBAAgB;EACd,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,UAAU,UAAU;EAEhD,MAAM,WAAW,qBAAqB,MAAM;EAC5C,IAAI,CAAC,UAAU;EAEf,MAAM,cAAc,sBAAsB,QAAQ,QAAQ,KAAK;EAE/D,MAAM,cAAc,UAAwB;GAC1C,SAAS;IAAE;IAAO,OAAO;IAAa;GAAM,CAAC;EAC/C;EAEA,MAAM,UAAU;GAAE;GAAS;GAAQ;GAAQ,OAAO;EAAY;EAE9D,IAAI,SAAS,aACX,OAAO,uBAAuB,WAAW,YAAY,OAAO;EAG9D,IAAI,SAAS,OAAO,OAAO,iBAAiB,WAAW,YAAY,OAAO;CAG5E,GAAG;EAAC;EAAW;EAAO;EAAM;EAAQ;EAAO;EAAS;EAAQ;CAAQ,CAAC;CAErE,OAAO;AACT;;AAUA,MAAa,eAAe"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"use-doubletap-gesture.js","names":[],"sources":["../../../../src/ui/gesture/use-doubletap-gesture.ts"],"sourcesContent":["import type { GestureProps } from '@videojs/core';\nimport { createDoubleTapGesture } from '@videojs/core/dom';\nimport type { RefObject } from 'react';\nimport { useEffect } from 'react';\n\nimport { useContainer } from '../../player/context';\nimport { useLatestRef } from '../../utils/use-latest-ref';\n\nexport interface UseDoubleTapGestureOptions extends Pick<GestureProps, 'pointer' | 'region' | 'disabled'> {\n target?: RefObject<HTMLElement | null>;\n}\n\n/**\n * Registers a double-tap gesture on the current player container or an explicit target.\n *\n * @param onActivate - Callback invoked when a matching double tap is recognized.\n * @param options - Gesture matching, target, and disabled options.\n */\nexport function useDoubleTapGesture(\n onActivate: (event: PointerEvent) => void,\n options?: UseDoubleTapGestureOptions\n): void {\n const { pointer, region, disabled = false, target } = options ?? {};\n const contextContainer = useContainer();\n const container = target?.current ?? contextContainer;\n const onActivateRef = useLatestRef(onActivate);\n\n useEffect(() => {\n if (!container || disabled) return;\n\n return createDoubleTapGesture(container, (event) => onActivateRef.current(event), { pointer, region });\n }, [container, disabled, pointer, region]);\n}\n"],"mappings":";;;;;;;;;;;AAkBA,SAAgB,oBACd,YACA,SACM;CACN,MAAM,EAAE,SAAS,QAAQ,WAAW,OAAO,WAAW,WAAW,CAAC;CAClE,MAAM,mBAAmB,aAAa;CACtC,MAAM,YAAY,QAAQ,WAAW;CACrC,MAAM,gBAAgB,aAAa,UAAU;CAE7C,gBAAgB;EACd,IAAI,CAAC,aAAa,UAAU;EAE5B,OAAO,uBAAuB,YAAY,UAAU,cAAc,QAAQ,KAAK,GAAG;GAAE;GAAS;EAAO,CAAC;CACvG,GAAG;EAAC;EAAW;EAAU;EAAS;CAAM,CAAC;AAC3C"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"use-tap-gesture.js","names":[],"sources":["../../../../src/ui/gesture/use-tap-gesture.ts"],"sourcesContent":["import type { GestureProps } from '@videojs/core';\nimport { createTapGesture } from '@videojs/core/dom';\nimport type { RefObject } from 'react';\nimport { useEffect } from 'react';\n\nimport { useContainer } from '../../player/context';\nimport { useLatestRef } from '../../utils/use-latest-ref';\n\nexport interface UseTapGestureOptions extends Pick<GestureProps, 'pointer' | 'region' | 'disabled'> {\n target?: RefObject<HTMLElement | null>;\n}\n\n/**\n * Registers a tap gesture on the current player container or an explicit target.\n *\n * @param onActivate - Callback invoked when a matching tap is recognized.\n * @param options - Gesture matching, target, and disabled options.\n */\nexport function useTapGesture(onActivate: (event: PointerEvent) => void, options?: UseTapGestureOptions): void {\n const { pointer, region, disabled = false, target } = options ?? {};\n const contextContainer = useContainer();\n const container = target?.current ?? contextContainer;\n const onActivateRef = useLatestRef(onActivate);\n\n useEffect(() => {\n if (!container || disabled) return;\n\n return createTapGesture(container, (event) => onActivateRef.current(event), { pointer, region });\n }, [container, disabled, pointer, region]);\n}\n"],"mappings":";;;;;;;;;;;AAkBA,SAAgB,cAAc,YAA2C,SAAsC;CAC7G,MAAM,EAAE,SAAS,QAAQ,WAAW,OAAO,WAAW,WAAW,CAAC;CAClE,MAAM,mBAAmB,aAAa;CACtC,MAAM,YAAY,QAAQ,WAAW;CACrC,MAAM,gBAAgB,aAAa,UAAU;CAE7C,gBAAgB;EACd,IAAI,CAAC,aAAa,UAAU;EAE5B,OAAO,iBAAiB,YAAY,UAAU,cAAc,QAAQ,KAAK,GAAG;GAAE;GAAS;EAAO,CAAC;CACjG,GAAG;EAAC;EAAW;EAAU;EAAS;CAAM,CAAC;AAC3C"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"create-radio-options-hook.js","names":[],"sources":["../../../../src/ui/hooks/create-radio-options-hook.ts"],"sourcesContent":["import type { RadioOption, RadioOptionsState } from '@videojs/core';\nimport { logMissingFeature } from '@videojs/core/dom';\nimport { type Text, type TextParams, translateText } from '@videojs/core/i18n';\nimport type { UnknownState } from '@videojs/store';\nimport { useCallback, useState } from 'react';\n\nimport { useTranslator } from '../../i18n/context';\nimport { usePlayer } from '../../player/context';\n\ninterface RadioOptionsCore<Props, Media, State extends RadioOptionsState> {\n setProps(props: Props): void;\n setMedia(media: Media): void;\n getState(): State;\n getLabel(state: State): Text | string;\n getLabelParams?(state: State): TextParams | undefined;\n selectValue(media: Media, value: string): void;\n}\n\ninterface RadioOptionsHookConfig<Props, Media, State extends RadioOptionsState> {\n name: string;\n feature: string;\n selector: ((state: UnknownState) => Media | null) & { displayName?: string | undefined };\n createCore: () => RadioOptionsCore<Props, Media, State>;\n}\n\ntype StateOption<State extends RadioOptionsState> = State extends RadioOptionsState<infer Option> ? Option : never;\n\nexport type TranslatedRadioOption<Option extends RadioOption> = Omit<Option, 'label' | 'labelParams' | 'disabled'> & {\n label: string;\n disabled: boolean;\n};\n\nexport interface RadioOptionsHookResult<Option extends RadioOption, State extends RadioOptionsState> {\n state: State;\n label: string;\n value: string;\n selectedLabel: string;\n options: TranslatedRadioOption<Option>[];\n disabled: boolean;\n hidden: boolean;\n setValue: (value: string) => void;\n}\n\n/** Creates framework adapter mechanics shared by media-backed radio option hooks. */\nexport function createRadioOptionsHook<Props, Media, State extends RadioOptionsState>({\n name,\n feature,\n selector,\n createCore,\n}: RadioOptionsHookConfig<Props, Media, State>): (\n props?: Props\n) => RadioOptionsHookResult<StateOption<State>, State> | null {\n return function useRadioOptions(props?: Props): RadioOptionsHookResult<StateOption<State>, State> | null {\n 'use no memo';\n\n const media = usePlayer(selector);\n const t = useTranslator();\n const [core] = useState(createCore);\n\n core.setProps(props ?? ({} as Props));\n\n const setValue = useCallback((value: string) => core.selectValue(media!, value), [core, media]);\n\n if (!media) {\n if (__DEV__) logMissingFeature(name, selector.displayName ?? feature);\n\n return null;\n }\n\n core.setMedia(media);\n const state = core.getState();\n const options = state.options.map((option) => {\n const { label, labelParams, disabled, ...rest } = option;\n\n return {\n ...rest,\n label: translateText(label, t, labelParams),\n disabled: state.disabled || disabled,\n } as TranslatedRadioOption<StateOption<State>>;\n });\n\n return {\n state,\n label: translateText(core.getLabel(state), t, core.getLabelParams?.(state)),\n value: state.value,\n selectedLabel: options.find((option) => option.value === state.value)?.label ?? '',\n options,\n disabled: state.disabled,\n hidden: state.hidden,\n setValue,\n };\n };\n}\n"],"mappings":";;;;;;;AA4CA,SAAgB,uBAAsE,EACpF,MACA,SACA,UACA,cAG4D;CAC5D,OAAO,SAAS,gBAAgB,OAAyE;EACvG;EAEA,MAAM,QAAQ,UAAU,QAAQ;EAChC,MAAM,IAAI,cAAc;EACxB,MAAM,CAAC,QAAQ,SAAS,UAAU;EAElC,KAAK,SAAS,SAAU,CAAC,CAAW;EAEpC,MAAM,WAAW,aAAa,UAAkB,KAAK,YAAY,OAAQ,KAAK,GAAG,CAAC,MAAM,KAAK,CAAC;EAE9F,IAAI,CAAC,OAGH,OAAO;EAGT,KAAK,SAAS,KAAK;EACnB,MAAM,QAAQ,KAAK,SAAS;EAC5B,MAAM,UAAU,MAAM,QAAQ,KAAK,WAAW;GAC5C,MAAM,EAAE,OAAO,aAAa,UAAU,GAAG,SAAS;GAElD,OAAO;IACL,GAAG;IACH,OAAO,cAAc,OAAO,GAAG,WAAW;IAC1C,UAAU,MAAM,YAAY;GAC9B;EACF,CAAC;EAED,OAAO;GACL;GACA,OAAO,cAAc,KAAK,SAAS,KAAK,GAAG,GAAG,KAAK,iBAAiB,KAAK,CAAC;GAC1E,OAAO,MAAM;GACb,eAAe,QAAQ,MAAM,WAAW,OAAO,UAAU,MAAM,KAAK,CAAC,EAAE,SAAS;GAChF;GACA,UAAU,MAAM;GAChB,QAAQ,MAAM;GACd;EACF;CACF;AACF"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"use-button.js","names":[],"sources":["../../../../src/ui/hooks/use-button.ts"],"sourcesContent":["import { type ButtonActivationSource, createButton, type UIEvent } from '@videojs/core/dom';\nimport type { ComponentPropsWithRef, Ref } from 'react';\nimport { useCallback } from 'react';\n\nimport { mergeProps } from '../../utils/merge-props';\n\nexport interface UseButtonParameters {\n displayName: string;\n onActivate: (event: UIEvent, source: ButtonActivationSource) => void;\n isDisabled: () => boolean;\n}\n\nexport interface UseButtonReturnValue {\n getButtonProps: (externalProps?: ComponentPropsWithRef<'button'>) => ComponentPropsWithRef<'button'>;\n buttonRef: Ref<HTMLElement>;\n}\n\n/**\n * Hook for button behavior with keyboard and pointer interaction.\n *\n * @example\n * ```tsx\n * const { getButtonProps, buttonRef } = useButton({\n * displayName: 'PlayButton',\n * onActivate: () => togglePlayback(),\n * isDisabled: () => disabled,\n * });\n *\n * return useRender('button', componentProps, {\n * state,\n * ref: [forwardedRef, buttonRef],\n * props: [elementProps, getButtonProps],\n * });\n * ```;\n *\n * @param params - Button configuration with activation handler and disabled check.\n */\nexport function useButton(params: UseButtonParameters): UseButtonReturnValue {\n const { displayName, onActivate, isDisabled } = params;\n\n const buttonRef = useCallback(\n (element: HTMLElement | null) => {\n if (__DEV__ && element && element.tagName !== 'BUTTON') {\n console.warn(`${displayName} should render a <button> element for accessibility`);\n }\n },\n [displayName]\n );\n\n const getButtonProps = useCallback(\n (externalProps?: ComponentPropsWithRef<'button'>): ComponentPropsWithRef<'button'> => {\n const buttonProps = createButton({ onActivate, isDisabled });\n\n return mergeProps(buttonProps, externalProps);\n },\n [onActivate, isDisabled]\n );\n\n return { getButtonProps, buttonRef };\n}\n\nexport namespace useButton {\n export type Parameters = UseButtonParameters;\n export type ReturnValue = UseButtonReturnValue;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAqCA,SAAgB,UAAU,QAAmD;CAC3E,MAAM,EAAE,aAAa,YAAY,eAAe;CAEhD,MAAM,YAAY,aACf,YAAgC,CAIjC,GACA,CAAC,WAAW,CACd;CAWA,OAAO;EAAE,gBATc,aACpB,kBAAqF;GACpF,MAAM,cAAc,aAAa;IAAE;IAAY;GAAW,CAAC;GAE3D,OAAO,WAAW,aAAa,aAAa;EAC9C,GACA,CAAC,YAAY,UAAU,CAGH;EAAG;CAAU;AACrC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"use-positioned-state.js","names":[],"sources":["../../../../src/ui/hooks/use-positioned-state.ts"],"sourcesContent":["import { useCallback, useEffect, useMemo, useState } from 'react';\n\ninterface PopupState {\n open: boolean;\n side: string | undefined;\n}\n\ninterface PositionedState<State extends PopupState> {\n state: State;\n preferredSide: State['side'];\n setPositionedSide: (side: State['side']) => void;\n}\n\nexport function usePositionedState<State extends PopupState>(preferredState: State): PositionedState<State> {\n const preferredSide = preferredState.side;\n const [position, setPosition] = useState<{ preferred: State['side']; side: State['side'] }>({\n preferred: preferredSide,\n side: preferredSide,\n });\n\n const side = preferredState.open && position.preferred === preferredSide ? position.side : preferredSide;\n\n const state = useMemo(\n () => (side === preferredSide ? preferredState : { ...preferredState, side }),\n [side, preferredState, preferredSide]\n );\n\n const setPositionedSide = useCallback(\n (nextSide: State['side']) =>\n setPosition((prev) =>\n prev.preferred === preferredSide && prev.side === nextSide ? prev : { preferred: preferredSide, side: nextSide }\n ),\n [preferredSide]\n );\n\n useEffect(() => {\n if (!preferredState.open) setPositionedSide(preferredSide);\n }, [preferredState.open, preferredSide, setPositionedSide]);\n\n return { state, preferredSide, setPositionedSide };\n}\n"],"mappings":";;AAaA,SAAgB,mBAA6C,gBAA+C;CAC1G,MAAM,gBAAgB,eAAe;CACrC,MAAM,CAAC,UAAU,eAAe,SAA4D;EAC1F,WAAW;EACX,MAAM;CACR,CAAC;CAED,MAAM,OAAO,eAAe,QAAQ,SAAS,cAAc,gBAAgB,SAAS,OAAO;CAE3F,MAAM,QAAQ,cACL,SAAS,gBAAgB,iBAAiB;EAAE,GAAG;EAAgB;CAAK,GAC3E;EAAC;EAAM;EAAgB;CAAa,CACtC;CAEA,MAAM,oBAAoB,aACvB,aACC,aAAa,SACX,KAAK,cAAc,iBAAiB,KAAK,SAAS,WAAW,OAAO;EAAE,WAAW;EAAe,MAAM;CAAS,CACjH,GACF,CAAC,aAAa,CAChB;CAEA,gBAAgB;EACd,IAAI,CAAC,eAAe,MAAM,kBAAkB,aAAa;CAC3D,GAAG;EAAC,eAAe;EAAM;EAAe;CAAiB,CAAC;CAE1D,OAAO;EAAE;EAAO;EAAe;CAAkB;AACnD"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"use-slider.js","names":[],"sources":["../../../../src/ui/hooks/use-slider.ts"],"sourcesContent":["import type { SliderInput, SliderState } from '@videojs/core';\nimport {\n createSlider,\n type SliderApi,\n type SliderOptions,\n type SliderRootProps,\n type SliderRootStyle,\n type SliderThumbProps,\n selectControls,\n} from '@videojs/core/dom';\nimport { useSnapshot } from '@videojs/store/react';\nimport { applyStyles } from '@videojs/utils/dom';\nimport { useCallback, useEffect, useLayoutEffect, useRef, useState } from 'react';\n\nimport { useOptionalPlayer } from '../../player/context';\nimport { useDestroy } from '../../utils/use-destroy';\nimport { useForceRender } from '../../utils/use-force-render';\nimport { useLatestRef } from '../../utils/use-latest-ref';\n\nexport interface UseSliderOptions<State extends SliderState = SliderState> extends Pick<\n SliderOptions,\n | 'getPercent'\n | 'getStepPercent'\n | 'getLargeStepPercent'\n | 'changeThrottle'\n | 'onValueChange'\n | 'onValueCommit'\n | 'onPressStart'\n | 'onPressEnd'\n | 'onDragStart'\n | 'onDragEnd'\n> {\n computeState: (input: SliderInput) => State;\n orientation?: 'horizontal' | 'vertical' | undefined;\n disabled?: boolean | undefined;\n /** Adjust a raw 0–100 percent for thumb alignment. Called for fill and pointer percents. */\n adjustPercent?: ((rawPercent: number, thumbSize: number, trackSize: number) => number) | undefined;\n /** Compute CSS variable map from the (possibly alignment-adjusted) state. */\n getCSSVars: (state: State) => Record<string, string>;\n}\n\nexport interface UseSliderReturnValue<State extends SliderState = SliderState> {\n state: State;\n input: SliderApi['input'];\n cssVars: Record<string, string>;\n rootRef: React.RefCallback<HTMLElement>;\n thumbRef: React.RefCallback<HTMLElement>;\n rootProps: SliderRootProps;\n rootStyle: SliderRootStyle;\n thumbProps: SliderThumbProps;\n}\n\n/**\n * Manages slider input lifecycle for React.\n *\n * Wraps `createSlider()` from `@videojs/core/dom` and subscribes to its input state via `useSnapshot`. Returns split\n * props for the root (pointer events) and thumb (keyboard/focus) elements.\n */\nexport function useSlider<State extends SliderState = SliderState>(\n options: UseSliderOptions<State>\n): UseSliderReturnValue<State> {\n const optionsRef = useLatestRef(options);\n\n const controls = useOptionalPlayer(selectControls);\n const requestControlsLock = controls?.requestControlsLock;\n const releaseControlsLockRef = useRef<(() => void) | null>(null);\n\n const releaseControlsLock = useCallback(() => {\n releaseControlsLockRef.current?.();\n releaseControlsLockRef.current = null;\n }, []);\n\n useEffect(() => releaseControlsLock, [releaseControlsLock]);\n\n const rootElementRef = useRef<HTMLElement | null>(null);\n const thumbElementRef = useRef<HTMLElement | null>(null);\n const forceRender = useForceRender();\n\n // Lazy-init the slider handle. Stable across re-renders.\n const [slider] = useState<SliderApi>(() => {\n const stableOptions: SliderOptions = {\n getElement: () => rootElementRef.current!,\n getThumbElement: () => thumbElementRef.current,\n getOrientation: () => optionsRef.current.orientation ?? 'horizontal',\n isDisabled: () => optionsRef.current.disabled ?? false,\n getPercent: () => optionsRef.current.getPercent(),\n getStepPercent: () => optionsRef.current.getStepPercent(),\n getLargeStepPercent: () => optionsRef.current.getLargeStepPercent(),\n changeThrottle: optionsRef.current.changeThrottle,\n adjustPercent: optionsRef.current.adjustPercent,\n onValueChange: (percent) => optionsRef.current.onValueChange?.(percent),\n onValueCommit: (percent) => optionsRef.current.onValueCommit?.(percent),\n onPressStart: () => {\n releaseControlsLockRef.current ??= requestControlsLock?.() ?? null;\n optionsRef.current.onPressStart?.();\n },\n onPressEnd: () => {\n releaseControlsLock();\n optionsRef.current.onPressEnd?.();\n },\n onDragStart: () => optionsRef.current.onDragStart?.(),\n onDragEnd: () => optionsRef.current.onDragEnd?.(),\n };\n\n return createSlider(stableOptions);\n });\n\n useDestroy(slider);\n\n // Percentage changes are rendered directly below. React only needs to\n // re-render when interaction state changes.\n const interaction = useSnapshot(slider.input, ({ dragging, pointing, focused }) => ({\n dragging,\n pointing,\n focused,\n }));\n const input = { ...slider.input.current, ...interaction };\n\n // Compute derived state from input + caller-provided projection.\n const state = options.computeState(input);\n\n // Force a synchronous re-render after mount so edge thumb alignment\n // can read DOM measurements from the now-populated element refs.\n useLayoutEffect(() => {\n if (state.thumbAlignment === 'edge' && rootElementRef.current && thumbElementRef.current) {\n forceRender();\n }\n }, [state.thumbAlignment]);\n\n // Adjust CSS var percents for edge thumb alignment using live DOM measurements.\n const cssVars = options.getCSSVars(slider.adjustForAlignment(state));\n\n const syncStyles = useCallback(\n (element = rootElementRef.current) => {\n if (!element) return;\n\n const { dragging, pointing } = slider.input.current;\n // Keyboard values come from the controlled state. Applying them here would\n // briefly write the previous value before the caller handles the key.\n if (!dragging && !pointing) return;\n\n const next = optionsRef.current.computeState(slider.input.current);\n\n applyStyles(element, optionsRef.current.getCSSVars(slider.adjustForAlignment(next)));\n },\n [slider]\n );\n\n useLayoutEffect(() => {\n syncStyles();\n return slider.input.subscribe(syncStyles);\n }, [slider, syncStyles]);\n\n // Ref callbacks for root and thumb elements.\n const rootRef = useCallback(\n (element: HTMLElement | null) => {\n rootElementRef.current = element;\n syncStyles(element);\n },\n [syncStyles]\n );\n\n const thumbRef = useCallback((element: HTMLElement | null) => {\n thumbElementRef.current = element;\n }, []);\n\n return {\n state,\n input: slider.input,\n cssVars,\n rootRef,\n thumbRef,\n rootProps: slider.rootProps,\n rootStyle: slider.rootStyle,\n thumbProps: slider.thumbProps,\n };\n}\n\nexport namespace useSlider {\n export type Options = UseSliderOptions;\n export type ReturnValue = UseSliderReturnValue;\n}\n"],"mappings":";;;;;;;;;;;;;;;AA0DA,SAAgB,UACd,SAC6B;CAC7B,MAAM,aAAa,aAAa,OAAO;CAGvC,MAAM,sBADW,kBAAkB,cACA,CAAC,EAAE;CACtC,MAAM,yBAAyB,OAA4B,IAAI;CAE/D,MAAM,sBAAsB,kBAAkB;EAC5C,uBAAuB,UAAU;EACjC,uBAAuB,UAAU;CACnC,GAAG,CAAC,CAAC;CAEL,gBAAgB,qBAAqB,CAAC,mBAAmB,CAAC;CAE1D,MAAM,iBAAiB,OAA2B,IAAI;CACtD,MAAM,kBAAkB,OAA2B,IAAI;CACvD,MAAM,cAAc,eAAe;CAGnC,MAAM,CAAC,UAAU,eAA0B;EACzC,MAAM,gBAA+B;GACnC,kBAAkB,eAAe;GACjC,uBAAuB,gBAAgB;GACvC,sBAAsB,WAAW,QAAQ,eAAe;GACxD,kBAAkB,WAAW,QAAQ,YAAY;GACjD,kBAAkB,WAAW,QAAQ,WAAW;GAChD,sBAAsB,WAAW,QAAQ,eAAe;GACxD,2BAA2B,WAAW,QAAQ,oBAAoB;GAClE,gBAAgB,WAAW,QAAQ;GACnC,eAAe,WAAW,QAAQ;GAClC,gBAAgB,YAAY,WAAW,QAAQ,gBAAgB,OAAO;GACtE,gBAAgB,YAAY,WAAW,QAAQ,gBAAgB,OAAO;GACtE,oBAAoB;IAClB,uBAAuB,YAAY,sBAAsB,KAAK;IAC9D,WAAW,QAAQ,eAAe;GACpC;GACA,kBAAkB;IAChB,oBAAoB;IACpB,WAAW,QAAQ,aAAa;GAClC;GACA,mBAAmB,WAAW,QAAQ,cAAc;GACpD,iBAAiB,WAAW,QAAQ,YAAY;EAClD;EAEA,OAAO,aAAa,aAAa;CACnC,CAAC;CAED,WAAW,MAAM;CAIjB,MAAM,cAAc,YAAY,OAAO,QAAQ,EAAE,UAAU,UAAU,eAAe;EAClF;EACA;EACA;CACF,EAAE;CACF,MAAM,QAAQ;EAAE,GAAG,OAAO,MAAM;EAAS,GAAG;CAAY;CAGxD,MAAM,QAAQ,QAAQ,aAAa,KAAK;CAIxC,sBAAsB;EACpB,IAAI,MAAM,mBAAmB,UAAU,eAAe,WAAW,gBAAgB,SAC/E,YAAY;CAEhB,GAAG,CAAC,MAAM,cAAc,CAAC;CAGzB,MAAM,UAAU,QAAQ,WAAW,OAAO,mBAAmB,KAAK,CAAC;CAEnE,MAAM,aAAa,aAChB,UAAU,eAAe,YAAY;EACpC,IAAI,CAAC,SAAS;EAEd,MAAM,EAAE,UAAU,aAAa,OAAO,MAAM;EAG5C,IAAI,CAAC,YAAY,CAAC,UAAU;EAE5B,MAAM,OAAO,WAAW,QAAQ,aAAa,OAAO,MAAM,OAAO;EAEjE,YAAY,SAAS,WAAW,QAAQ,WAAW,OAAO,mBAAmB,IAAI,CAAC,CAAC;CACrF,GACA,CAAC,MAAM,CACT;CAEA,sBAAsB;EACpB,WAAW;EACX,OAAO,OAAO,MAAM,UAAU,UAAU;CAC1C,GAAG,CAAC,QAAQ,UAAU,CAAC;CAGvB,MAAM,UAAU,aACb,YAAgC;EAC/B,eAAe,UAAU;EACzB,WAAW,OAAO;CACpB,GACA,CAAC,UAAU,CACb;CAEA,MAAM,WAAW,aAAa,YAAgC;EAC5D,gBAAgB,UAAU;CAC5B,GAAG,CAAC,CAAC;CAEL,OAAO;EACL;EACA,OAAO,OAAO;EACd;EACA;EACA;EACA,WAAW,OAAO;EAClB,WAAW,OAAO;EAClB,YAAY,OAAO;CACrB;AACF"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"component.js","names":[],"sources":["../../../../src/ui/hotkey/component.tsx"],"sourcesContent":["import type { HotkeyProps as CoreHotkeyProps } from '@videojs/core';\nimport type { AnyPlayerStore } from '@videojs/core/dom';\nimport { createHotkey, isHotkeyToggleAction, resolveHotkeyAction } from '@videojs/core/dom';\nimport type { ReactNode } from 'react';\nimport { useEffect } from 'react';\n\nimport { useContainer, usePlayer } from '../../player/context';\n\nexport interface HotkeyProps extends CoreHotkeyProps {}\n\nexport function Hotkey({ keys, action, value, disabled, target }: HotkeyProps): ReactNode {\n const store = usePlayer() as AnyPlayerStore;\n const container = useContainer();\n\n useEffect(() => {\n if (!container || !keys || !action || disabled) return;\n\n const resolver = resolveHotkeyAction(action);\n if (!resolver) return;\n\n return createHotkey(container, {\n keys,\n action,\n value,\n target,\n disabled,\n repeatable: !isHotkeyToggleAction(action),\n onActivate: (_event, key) => {\n resolver({ store, key, value });\n },\n });\n }, [container, store, keys, action, value, disabled, target]);\n\n return null;\n}\n\nexport namespace Hotkey {\n export type Props = HotkeyProps;\n}\n\n/** @deprecated Use `HotkeyProps` instead. */\nexport type MediaHotkeyProps = HotkeyProps;\n\n/** @deprecated Use `Hotkey` instead. */\nexport const MediaHotkey = Hotkey;\n"],"mappings":";;;;AAUA,SAAgB,OAAO,EAAE,MAAM,QAAQ,OAAO,UAAU,UAAkC;CACxF,MAAM,QAAQ,UAAU;CACxB,MAAM,YAAY,aAAa;CAE/B,gBAAgB;EACd,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,UAAU,UAAU;EAEhD,MAAM,WAAW,oBAAoB,MAAM;EAC3C,IAAI,CAAC,UAAU;EAEf,OAAO,aAAa,WAAW;GAC7B;GACA;GACA;GACA;GACA;GACA,YAAY,CAAC,qBAAqB,MAAM;GACxC,aAAa,QAAQ,QAAQ;IAC3B,SAAS;KAAE;KAAO;KAAK;IAAM,CAAC;GAChC;EACF,CAAC;CACH,GAAG;EAAC;EAAW;EAAO;EAAM;EAAQ;EAAO;EAAU;CAAM,CAAC;CAE5D,OAAO;AACT;;AAUA,MAAa,cAAc"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"use-hotkey-shortcut.js","names":[],"sources":["../../../../src/ui/hotkey/use-hotkey-shortcut.ts"],"sourcesContent":["import { getHotkeyCoordinator, type HotkeyShortcutDetails } from '@videojs/core/dom';\nimport { useEffect, useState } from 'react';\n\nimport { useContainer } from '../../player/context';\n\n/**\n * Returns display and ARIA metadata for a registered hotkey action in the current player.\n *\n * @param action - Hotkey action to look up. Returns empty details when absent.\n * @param value - Optional action value used to match value-dependent shortcuts.\n */\nexport function useHotkeyShortcut(action: string | undefined, value?: number | undefined): HotkeyShortcutDetails {\n const container = useContainer();\n\n const [shortcut, setShortcut] = useState<HotkeyShortcutDetails>({});\n\n useEffect(() => {\n if (!container || !action) {\n setShortcut({});\n return;\n }\n\n const coordinator = getHotkeyCoordinator(container);\n const update = () => setShortcut(coordinator.getShortcut(action, value));\n\n update();\n return coordinator.subscribeShortcutChanges(update);\n }, [container, action, value]);\n\n return shortcut;\n}\n"],"mappings":";;;;;;;;;;AAWA,SAAgB,kBAAkB,QAA4B,OAAmD;CAC/G,MAAM,YAAY,aAAa;CAE/B,MAAM,CAAC,UAAU,eAAe,SAAgC,CAAC,CAAC;CAElE,gBAAgB;EACd,IAAI,CAAC,aAAa,CAAC,QAAQ;GACzB,YAAY,CAAC,CAAC;GACd;EACF;EAEA,MAAM,cAAc,qBAAqB,SAAS;EAClD,MAAM,eAAe,YAAY,YAAY,YAAY,QAAQ,KAAK,CAAC;EAEvE,OAAO;EACP,OAAO,YAAY,yBAAyB,MAAM;CACpD,GAAG;EAAC;EAAW;EAAQ;CAAK,CAAC;CAE7B,OAAO;AACT"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"use-hotkey.js","names":[],"sources":["../../../../src/ui/hotkey/use-hotkey.ts"],"sourcesContent":["import { createHotkey } from '@videojs/core/dom';\nimport { useEffect } from 'react';\n\nimport { useContainer } from '../../player/context';\nimport { useLatestRef } from '../../utils/use-latest-ref';\n\nexport interface UseHotkeyOptions {\n keys: string;\n onActivate: (event: KeyboardEvent, key: string) => void;\n target?: 'player' | 'document';\n repeatable?: boolean;\n disabled?: boolean;\n}\n\n/**\n * Registers a keyboard shortcut through the current player's hotkey coordinator.\n *\n * @param options - Shortcut keys, activation callback, scope, repeat behavior, and disabled state.\n */\nexport function useHotkey(options: UseHotkeyOptions): void {\n const { keys, target = 'player', repeatable = true, disabled = false } = options;\n const container = useContainer();\n const onActivateRef = useLatestRef(options.onActivate);\n\n useEffect(() => {\n if (!container || !keys || disabled) return;\n\n return createHotkey(container, {\n keys,\n target,\n repeatable,\n disabled,\n onActivate: (event, key) => onActivateRef.current(event, key),\n });\n }, [container, keys, target, repeatable, disabled]);\n}\n"],"mappings":";;;;;;;;;;AAmBA,SAAgB,UAAU,SAAiC;CACzD,MAAM,EAAE,MAAM,SAAS,UAAU,aAAa,MAAM,WAAW,UAAU;CACzE,MAAM,YAAY,aAAa;CAC/B,MAAM,gBAAgB,aAAa,QAAQ,UAAU;CAErD,gBAAgB;EACd,IAAI,CAAC,aAAa,CAAC,QAAQ,UAAU;EAErC,OAAO,aAAa,WAAW;GAC7B;GACA;GACA;GACA;GACA,aAAa,OAAO,QAAQ,cAAc,QAAQ,OAAO,GAAG;EAC9D,CAAC;CACH,GAAG;EAAC;EAAW;EAAM;EAAQ;EAAY;CAAQ,CAAC;AACpD"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"use-indicator-visibility.js","names":[],"sources":["../../../../src/ui/input-indicator/use-indicator-visibility.ts"],"sourcesContent":["import type { IndicatorVisibilityHandle } from '@videojs/core';\nimport { getIndicatorVisibilityCoordinator } from '@videojs/core/dom';\nimport { useCallback, useEffect, useRef, useState } from 'react';\n\nimport { useContainer } from '../../player/context';\nimport { useLatestRef } from '../../utils/use-latest-ref';\n\nexport function useIndicatorVisibility(close: () => void): () => void {\n const container = useContainer();\n const closeRef = useLatestRef(close);\n const coordinatorRef = useRef<ReturnType<typeof getIndicatorVisibilityCoordinator> | null>(null);\n const [handle] = useState<IndicatorVisibilityHandle>(() => ({\n close: () => closeRef.current(),\n }));\n\n useEffect(() => {\n if (!container) return;\n\n const coordinator = getIndicatorVisibilityCoordinator(container);\n\n coordinatorRef.current = coordinator;\n\n return coordinator.register(handle);\n }, [container, handle]);\n\n return useCallback(() => {\n coordinatorRef.current?.show(handle);\n }, [handle]);\n}\n"],"mappings":";;;;;AAOA,SAAgB,uBAAuB,OAA+B;CACpE,MAAM,YAAY,aAAa;CAC/B,MAAM,WAAW,aAAa,KAAK;CACnC,MAAM,iBAAiB,OAAoE,IAAI;CAC/F,MAAM,CAAC,UAAU,gBAA2C,EAC1D,aAAa,SAAS,QAAQ,EAChC,EAAE;CAEF,gBAAgB;EACd,IAAI,CAAC,WAAW;EAEhB,MAAM,cAAc,kCAAkC,SAAS;EAE/D,eAAe,UAAU;EAEzB,OAAO,YAAY,SAAS,MAAM;CACpC,GAAG,CAAC,WAAW,MAAM,CAAC;CAEtB,OAAO,kBAAkB;EACvB,eAAe,SAAS,KAAK,MAAM;CACrC,GAAG,CAAC,MAAM,CAAC;AACb"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"use-input-action-subscription.js","names":[],"sources":["../../../../src/ui/input-indicator/use-input-action-subscription.ts"],"sourcesContent":["import type { InputActionEvent, MediaSnapshot } from '@videojs/core';\nimport { getMediaSnapshot, subscribeToInputActions } from '@videojs/core/dom';\nimport { useEffect } from 'react';\n\nimport { useContainer, usePlayer } from '../../player/context';\nimport { useLatestRef } from '../../utils/use-latest-ref';\n\nexport function useInputActionSubscription(callback: (event: InputActionEvent, snapshot: MediaSnapshot) => void): void {\n const container = useContainer();\n const store = usePlayer();\n const callbackRef = useLatestRef(callback);\n const storeRef = useLatestRef(store);\n\n useEffect(() => {\n if (!container) return;\n\n return subscribeToInputActions(container, (event) => {\n callbackRef.current(event, getMediaSnapshot(storeRef.current));\n });\n }, [container]);\n}\n"],"mappings":";;;;;AAOA,SAAgB,2BAA2B,UAA4E;CACrH,MAAM,YAAY,aAAa;CAC/B,MAAM,QAAQ,UAAU;CACxB,MAAM,cAAc,aAAa,QAAQ;CACzC,MAAM,WAAW,aAAa,KAAK;CAEnC,gBAAgB;EACd,IAAI,CAAC,WAAW;EAEhB,OAAO,wBAAwB,YAAY,UAAU;GACnD,YAAY,QAAQ,OAAO,iBAAiB,SAAS,OAAO,CAAC;EAC/D,CAAC;CACH,GAAG,CAAC,SAAS,CAAC;AAChB"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"use-input-indicator-root.js","names":[],"sources":["../../../../src/ui/input-indicator/use-input-indicator-root.ts"],"sourcesContent":["import type { IndicatorLifecycleState, InputActionEvent, MediaSnapshot } from '@videojs/core';\nimport type { State as StoreState } from '@videojs/store';\nimport { useState, useSyncExternalStore } from 'react';\n\nimport { useDestroy } from '../../utils/use-destroy';\nimport { useIndicatorVisibility } from './use-indicator-visibility';\nimport { useInputActionSubscription } from './use-input-action-subscription';\nimport { type RenderedIndicatorOptions, useRenderedIndicatorState } from './use-rendered-indicator-state';\n\ninterface InputIndicatorRootCore<IndicatorState extends IndicatorLifecycleState, Props> {\n readonly state: StoreState<IndicatorState>;\n setProps(props: Props): void;\n destroy(): void;\n close(): void;\n processEvent(event: InputActionEvent, snapshot: MediaSnapshot): boolean;\n}\n\nexport function useInputIndicatorRoot<IndicatorState extends IndicatorLifecycleState, Props>(\n createCore: () => InputIndicatorRootCore<IndicatorState, Props>,\n props: Props,\n options?: RenderedIndicatorOptions\n) {\n const [core] = useState(createCore);\n\n useDestroy(core);\n core.setProps(props);\n const showIndicator = useIndicatorVisibility(() => core.close());\n\n useInputActionSubscription((event, snapshot) => {\n if (core.processEvent(event, snapshot)) showIndicator();\n });\n\n const currentState = useSyncExternalStore(\n (callback) => core.state.subscribe(callback),\n () => core.state.current,\n () => core.state.current\n );\n\n return useRenderedIndicatorState(currentState, options);\n}\n"],"mappings":";;;;;;AAiBA,SAAgB,sBACd,YACA,OACA,SACA;CACA,MAAM,CAAC,QAAQ,SAAS,UAAU;CAElC,WAAW,IAAI;CACf,KAAK,SAAS,KAAK;CACnB,MAAM,gBAAgB,6BAA6B,KAAK,MAAM,CAAC;CAE/D,4BAA4B,OAAO,aAAa;EAC9C,IAAI,KAAK,aAAa,OAAO,QAAQ,GAAG,cAAc;CACxD,CAAC;CAED,MAAM,eAAe,sBAClB,aAAa,KAAK,MAAM,UAAU,QAAQ,SACrC,KAAK,MAAM,eACX,KAAK,MAAM,OACnB;CAEA,OAAO,0BAA0B,cAAc,OAAO;AACxD"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"use-rendered-indicator-state.js","names":[],"sources":["../../../../src/ui/input-indicator/use-rendered-indicator-state.ts"],"sourcesContent":["import { getRenderedIndicatorState, type IndicatorLifecycleState, isIndicatorPresent } from '@videojs/core';\nimport { createTransition } from '@videojs/core/dom';\nimport { useLayoutEffect, useRef, useState, useSyncExternalStore } from 'react';\n\nimport { useDestroy } from '../../utils/use-destroy';\n\nexport interface RenderedIndicatorOptions {\n replayOnUpdate?: boolean | undefined;\n}\n\nexport function useRenderedIndicatorState<State extends IndicatorLifecycleState>(\n currentState: State,\n options: RenderedIndicatorOptions = {}\n) {\n const elementRef = useRef<HTMLElement>(null);\n const currentStateRef = useRef(currentState);\n const snapshotRef = useRef(currentState);\n const [transition] = useState(() => createTransition());\n\n useDestroy(transition);\n currentStateRef.current = currentState;\n\n const transitionState = useSyncExternalStore(\n (callback) => transition.state.subscribe(callback),\n () => transition.state.current,\n () => transition.state.current\n );\n\n const { generation, open } = currentState;\n\n useLayoutEffect(() => {\n if (open) {\n const nextState = currentStateRef.current;\n if (nextState.generation !== generation) return;\n\n snapshotRef.current = nextState;\n const transitionState = transition.state.current;\n\n if (!transitionState.active || options.replayOnUpdate !== false) {\n void transition.open(elementRef.current);\n } else if (transitionState.status === 'ending') {\n transition.cancel();\n }\n\n return;\n }\n\n const { active, status } = transition.state.current;\n\n if (active && status !== 'ending') {\n void transition.close(elementRef.current);\n }\n }, [generation, open, options.replayOnUpdate, transition]);\n\n return {\n elementRef,\n present: isIndicatorPresent(currentState, transitionState),\n state: getRenderedIndicatorState(currentState, snapshotRef.current, transitionState),\n };\n}\n"],"mappings":";;;;;AAUA,SAAgB,0BACd,cACA,UAAoC,CAAC,GACrC;CACA,MAAM,aAAa,OAAoB,IAAI;CAC3C,MAAM,kBAAkB,OAAO,YAAY;CAC3C,MAAM,cAAc,OAAO,YAAY;CACvC,MAAM,CAAC,cAAc,eAAe,iBAAiB,CAAC;CAEtD,WAAW,UAAU;CACrB,gBAAgB,UAAU;CAE1B,MAAM,kBAAkB,sBACrB,aAAa,WAAW,MAAM,UAAU,QAAQ,SAC3C,WAAW,MAAM,eACjB,WAAW,MAAM,OACzB;CAEA,MAAM,EAAE,YAAY,SAAS;CAE7B,sBAAsB;EACpB,IAAI,MAAM;GACR,MAAM,YAAY,gBAAgB;GAClC,IAAI,UAAU,eAAe,YAAY;GAEzC,YAAY,UAAU;GACtB,MAAM,kBAAkB,WAAW,MAAM;GAEzC,IAAI,CAAC,gBAAgB,UAAU,QAAQ,mBAAmB,OACxD,WAAgB,KAAK,WAAW,OAAO;QAClC,IAAI,gBAAgB,WAAW,UACpC,WAAW,OAAO;GAGpB;EACF;EAEA,MAAM,EAAE,QAAQ,WAAW,WAAW,MAAM;EAE5C,IAAI,UAAU,WAAW,UACvB,WAAgB,MAAM,WAAW,OAAO;CAE5C,GAAG;EAAC;EAAY;EAAM,QAAQ;EAAgB;CAAU,CAAC;CAEzD,OAAO;EACL;EACA,SAAS,mBAAmB,cAAc,eAAe;EACzD,OAAO,0BAA0B,cAAc,YAAY,SAAS,eAAe;CACrF;AACF"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"component.js","names":[],"sources":["../../../../src/ui/live-button/component.tsx"],"sourcesContent":["import { LiveButtonCore, LiveButtonDataAttrs, type LiveButtonMediaState } from '@videojs/core';\nimport { logMissingFeature, selectBuffer, selectLive, selectTime } from '@videojs/core/dom';\nimport { translateText } from '@videojs/core/i18n';\nimport { forwardRef, type ReactNode, useLayoutEffect, useState } from 'react';\n\nimport { useTranslator } from '../../i18n/context';\nimport { usePlayer } from '../../player/context';\nimport type { UIComponentProps } from '../../utils/types';\nimport { renderElement } from '../../utils/use-render';\nimport { useButton } from '../hooks/use-button';\nimport { useOptionalTooltipContext } from '../tooltip/context';\n\nconst DISPLAY_NAME = 'LiveButton';\n\nexport interface LiveButtonProps extends UIComponentProps<'button', LiveButtonCore.State>, LiveButtonCore.Props {}\n\n/**\n * A button that indicates live status and seeks to the live edge when pressed. Exposes `data-live` while the stream is\n * live (or DVR) and `data-live-edge` while playing at the live edge so skins can style a red-dot ↔ grey-dot treatment.\n *\n * Selects from `live`, `time`, and `buffer` features and composes them itself rather than going through\n * `createMediaButton`, since the LiveButton needs three feature slices to detect the live edge and seek.\n *\n * Displays the translated live badge when no children are provided.\n *\n * @example\n * ```tsx\n * <LiveButton />;\n * ```;\n *\n * @see https://github.com/video-dev/media-ui-extensions/blob/main/proposals/0007-live-edge.md\n */\nexport const LiveButton = forwardRef<HTMLButtonElement, LiveButtonProps>(\n function LiveButton(componentProps, forwardedRef): ReactNode {\n const { children, render, className, style, label, disabled, ...elementProps } = componentProps;\n\n const live = usePlayer(selectLive);\n const time = usePlayer(selectTime);\n const buffer = usePlayer(selectBuffer);\n\n const media: LiveButtonMediaState | null =\n live && time && buffer\n ? {\n currentTime: time.currentTime,\n seek: time.seek,\n seekable: buffer.seekable,\n liveEdgeStart: live.liveEdgeStart,\n targetLiveWindow: live.targetLiveWindow,\n }\n : null;\n\n const tooltipCtx = useOptionalTooltipContext();\n const translator = useTranslator();\n const [core] = useState(() => new LiveButtonCore());\n\n core.setProps({ label, disabled });\n\n const { getButtonProps, buttonRef } = useButton({\n displayName: DISPLAY_NAME,\n onActivate: () => {\n if (media) core.seekToLive(media);\n },\n isDisabled: () => !!disabled || !media,\n });\n\n if (media) core.setMedia(media);\n\n const state = media ? core.getState() : null;\n const labelText = state ? translateText(core.getLabel(state), translator) : undefined;\n\n useLayoutEffect(() => {\n if (!tooltipCtx) return;\n\n tooltipCtx.setContent(labelText ? { label: labelText } : undefined);\n return () => tooltipCtx.setContent(undefined);\n }, [tooltipCtx, labelText]);\n\n if (!media || !state) {\n if (__DEV__) logMissingFeature(DISPLAY_NAME, selectLive.displayName ?? 'live');\n\n return null;\n }\n\n const attrs = core.getAttrs(state);\n const labelAttr = attrs['aria-label'];\n const content = children ?? translateText(LiveButtonCore.defaultText, translator);\n\n return renderElement(\n 'button',\n { render, className, style },\n {\n state,\n stateAttrMap: LiveButtonDataAttrs,\n ref: [forwardedRef, buttonRef],\n props: [\n attrs,\n {\n children: content,\n ...elementProps,\n 'aria-label': labelAttr ? translateText(labelAttr, translator) : labelAttr,\n },\n getButtonProps(),\n ],\n }\n );\n }\n);\n\nLiveButton.displayName = DISPLAY_NAME;\n\nexport namespace LiveButton {\n export type Props = LiveButtonProps;\n export type State = LiveButtonCore.State;\n}\n"],"mappings":";;;;;;;;;;AAYA,MAAM,eAAe;;;;;;;;;;;;;;;;;AAoBrB,MAAa,aAAa,WACxB,SAAS,WAAW,gBAAgB,cAAyB;CAC3D,MAAM,EAAE,UAAU,QAAQ,WAAW,OAAO,OAAO,UAAU,GAAG,iBAAiB;CAEjF,MAAM,OAAO,UAAU,UAAU;CACjC,MAAM,OAAO,UAAU,UAAU;CACjC,MAAM,SAAS,UAAU,YAAY;CAErC,MAAM,QACJ,QAAQ,QAAQ,SACZ;EACE,aAAa,KAAK;EAClB,MAAM,KAAK;EACX,UAAU,OAAO;EACjB,eAAe,KAAK;EACpB,kBAAkB,KAAK;CACzB,IACA;CAEN,MAAM,aAAa,0BAA0B;CAC7C,MAAM,aAAa,cAAc;CACjC,MAAM,CAAC,QAAQ,eAAe,IAAI,eAAe,CAAC;CAElD,KAAK,SAAS;EAAE;EAAO;CAAS,CAAC;CAEjC,MAAM,EAAE,gBAAgB,cAAc,UAAU;EAC9C,aAAa;EACb,kBAAkB;GAChB,IAAI,OAAO,KAAK,WAAW,KAAK;EAClC;EACA,kBAAkB,CAAC,CAAC,YAAY,CAAC;CACnC,CAAC;CAED,IAAI,OAAO,KAAK,SAAS,KAAK;CAE9B,MAAM,QAAQ,QAAQ,KAAK,SAAS,IAAI;CACxC,MAAM,YAAY,QAAQ,cAAc,KAAK,SAAS,KAAK,GAAG,UAAU,IAAI,KAAA;CAE5E,sBAAsB;EACpB,IAAI,CAAC,YAAY;EAEjB,WAAW,WAAW,YAAY,EAAE,OAAO,UAAU,IAAI,KAAA,CAAS;EAClE,aAAa,WAAW,WAAW,KAAA,CAAS;CAC9C,GAAG,CAAC,YAAY,SAAS,CAAC;CAE1B,IAAI,CAAC,SAAS,CAAC,OAGb,OAAO;CAGT,MAAM,QAAQ,KAAK,SAAS,KAAK;CACjC,MAAM,YAAY,MAAM;CACxB,MAAM,UAAU,YAAY,cAAc,eAAe,aAAa,UAAU;CAEhF,OAAO,cACL,UACA;EAAE;EAAQ;EAAW;CAAM,GAC3B;EACE;EACA,cAAc;EACd,KAAK,CAAC,cAAc,SAAS;EAC7B,OAAO;GACL;GACA;IACE,UAAU;IACV,GAAG;IACH,cAAc,YAAY,cAAc,WAAW,UAAU,IAAI;GACnE;GACA,eAAe;EACjB;CACF,CACF;AACF,CACF;AAEA,WAAW,cAAc"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"checkbox-item.js","names":[],"sources":["../../../../src/ui/menu/checkbox-item.tsx"],"sourcesContent":["import type { MenuState } from '@videojs/core';\nimport { forwardRef, useCallback, useEffect, useRef } from 'react';\n\nimport type { UIComponentProps } from '../../utils/types';\nimport { renderElement } from '../../utils/use-render';\nimport { useMenuContext } from './context';\n\nexport interface MenuCheckboxItemProps extends UIComponentProps<'div', MenuState> {\n /** Whether the item is currently checked. */\n checked: boolean;\n /** Called when the checked state should change. */\n onCheckedChange: (checked: boolean) => void;\n /** Whether the item is disabled. */\n disabled?: boolean;\n}\n\n/** A checkbox-style menu item. Renders a `<div>` with `role=\"menuitemcheckbox\"`. */\nexport const MenuCheckboxItem = forwardRef<HTMLDivElement, MenuCheckboxItemProps>(function MenuCheckboxItem(\n { render, className, style, checked, onCheckedChange, disabled, onClick, ...elementProps },\n forwardedRef\n) {\n const { menu, state } = useMenuContext();\n const elementRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n const element = elementRef.current;\n if (!element) return;\n\n return menu.registerItem(element);\n }, [menu]);\n\n const handleClick = useCallback(\n (event: React.MouseEvent<HTMLDivElement>) => {\n if (disabled) return;\n\n onClick?.(event);\n onCheckedChange(!checked);\n },\n [disabled, onClick, onCheckedChange, checked]\n );\n\n const handlePointerEnter = useCallback(() => {\n const element = elementRef.current;\n if (!element || disabled) return;\n\n menu.highlight(element, { focus: false, pointer: true });\n }, [menu, disabled]);\n\n return renderElement(\n 'div',\n { render, className, style },\n {\n state,\n ref: [forwardedRef, elementRef],\n props: [\n {\n role: 'menuitemcheckbox' as const,\n 'aria-checked': checked,\n 'aria-disabled': disabled ? true : undefined,\n onClick: handleClick,\n onPointerEnter: handlePointerEnter,\n },\n elementProps,\n ],\n }\n );\n});\n\nexport namespace MenuCheckboxItem {\n export type Props = MenuCheckboxItemProps;\n export type State = MenuState;\n}\n"],"mappings":";;;;;AAiBA,MAAa,mBAAmB,WAAkD,SAAS,iBACzF,EAAE,QAAQ,WAAW,OAAO,SAAS,iBAAiB,UAAU,SAAS,GAAG,gBAC5E,cACA;CACA,MAAM,EAAE,MAAM,UAAU,eAAe;CACvC,MAAM,aAAa,OAAuB,IAAI;CAE9C,gBAAgB;EACd,MAAM,UAAU,WAAW;EAC3B,IAAI,CAAC,SAAS;EAEd,OAAO,KAAK,aAAa,OAAO;CAClC,GAAG,CAAC,IAAI,CAAC;CAET,MAAM,cAAc,aACjB,UAA4C;EAC3C,IAAI,UAAU;EAEd,UAAU,KAAK;EACf,gBAAgB,CAAC,OAAO;CAC1B,GACA;EAAC;EAAU;EAAS;EAAiB;CAAO,CAC9C;CAEA,MAAM,qBAAqB,kBAAkB;EAC3C,MAAM,UAAU,WAAW;EAC3B,IAAI,CAAC,WAAW,UAAU;EAE1B,KAAK,UAAU,SAAS;GAAE,OAAO;GAAO,SAAS;EAAK,CAAC;CACzD,GAAG,CAAC,MAAM,QAAQ,CAAC;CAEnB,OAAO,cACL,OACA;EAAE;EAAQ;EAAW;CAAM,GAC3B;EACE;EACA,KAAK,CAAC,cAAc,UAAU;EAC9B,OAAO,CACL;GACE,MAAM;GACN,gBAAgB;GAChB,iBAAiB,WAAW,OAAO,KAAA;GACnC,SAAS;GACT,gBAAgB;EAClB,GACA,YACF;CACF,CACF;AACF,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"content.js","names":[],"sources":["../../../../src/ui/menu/content.tsx"],"sourcesContent":["import { MenuContentDataAttrs, type MenuState } from '@videojs/core';\nimport { isMenuNavigationKey } from '@videojs/core/dom';\nimport { forwardRef, useCallback, useLayoutEffect, useRef } from 'react';\nimport { createPortal } from 'react-dom';\n\nimport type { UIComponentProps } from '../../utils/types';\nimport { useComposedRefs } from '../../utils/use-composed-refs';\nimport { renderElement } from '../../utils/use-render';\nimport { useMenuContext, useMenuPopupContext } from './context';\nimport { callKeyDownHandler, preventMenuKeyDefault } from './keyboard';\n\nexport interface MenuContentProps extends UIComponentProps<'div', MenuState> {}\n\n/** Accessible item and focus scope for exactly one root or nested menu page. */\nexport const MenuContent = forwardRef<HTMLDivElement, MenuContentProps>(function MenuContent(\n { render, className, style, onKeyDown, onBlur, ...elementProps },\n forwardedRef\n) {\n const { core, menu, parent, state, contentId } = useMenuContext();\n const { popup, element: popupElement } = useMenuPopupContext();\n const isSubmenu = parent !== null;\n const isActive = isSubmenu && state.open;\n const wasActiveRef = useRef(false);\n const cleanupRegistrationRef = useRef<(() => void) | null>(null);\n\n useLayoutEffect(() => {\n if (!isSubmenu) return undefined;\n\n const wasActive = wasActiveRef.current;\n\n wasActiveRef.current = isActive;\n\n if (isActive && !wasActive) {\n const frame = requestAnimationFrame(() => menu.highlightFirstItem({ preventScroll: true }));\n\n return () => cancelAnimationFrame(frame);\n }\n\n return undefined;\n }, [isActive, isSubmenu, menu]);\n\n const setContentElement = useCallback(\n (element: HTMLDivElement | null) => {\n cleanupRegistrationRef.current?.();\n cleanupRegistrationRef.current = null;\n\n if (!element) {\n if (isSubmenu) menu.setPopupElement(null);\n\n return;\n }\n\n if (isSubmenu) menu.setPopupElement(element);\n\n cleanupRegistrationRef.current = popup.registerContent({\n menu,\n parent: parent?.menu ?? null,\n element,\n });\n },\n [isSubmenu, menu, parent?.menu, popup]\n );\n const composedRef = useComposedRefs(forwardedRef, setContentElement);\n\n const handleKeyDown = useCallback(\n (event: React.KeyboardEvent<HTMLDivElement>) => {\n const defaultPreventedByUser = callKeyDownHandler(\n onKeyDown as React.KeyboardEventHandler<HTMLDivElement> | undefined,\n event\n );\n const isNavigationKey = isMenuNavigationKey(event);\n\n menu.contentProps.onKeyDown(event);\n\n if (isSubmenu && (event.key === 'ArrowLeft' || event.key === 'Escape') && !defaultPreventedByUser) {\n event.preventDefault();\n menu.close('escape');\n }\n\n if (event.key !== 'Escape' && isNavigationKey) event.stopPropagation();\n },\n [isSubmenu, menu, onKeyDown]\n );\n\n const inactive = isSubmenu && !isActive && state.status !== 'ending';\n if (inactive) return null;\n\n const contentNode = renderElement(\n 'div',\n { render, className, style },\n {\n state,\n stateAttrMap: MenuContentDataAttrs,\n ref: composedRef,\n props: [\n { id: contentId, ...core.getContentAttrs() },\n {\n onKeyDownCapture: preventMenuKeyDefault,\n onKeyDown: handleKeyDown,\n onBlur: (event: React.FocusEvent<HTMLDivElement>) => {\n onBlur?.(event);\n\n if (isSubmenu) menu.contentProps.onFocusOut(event);\n },\n },\n elementProps,\n ],\n }\n );\n\n return isSubmenu && popupElement ? createPortal(contentNode, popupElement) : contentNode;\n});\n\nexport namespace MenuContent {\n export type Props = MenuContentProps;\n export type State = MenuState;\n}\n"],"mappings":";;;;;;;;;;AAcA,MAAa,cAAc,WAA6C,SAAS,YAC/E,EAAE,QAAQ,WAAW,OAAO,WAAW,QAAQ,GAAG,gBAClD,cACA;CACA,MAAM,EAAE,MAAM,MAAM,QAAQ,OAAO,cAAc,eAAe;CAChE,MAAM,EAAE,OAAO,SAAS,iBAAiB,oBAAoB;CAC7D,MAAM,YAAY,WAAW;CAC7B,MAAM,WAAW,aAAa,MAAM;CACpC,MAAM,eAAe,OAAO,KAAK;CACjC,MAAM,yBAAyB,OAA4B,IAAI;CAE/D,sBAAsB;EACpB,IAAI,CAAC,WAAW,OAAO,KAAA;EAEvB,MAAM,YAAY,aAAa;EAE/B,aAAa,UAAU;EAEvB,IAAI,YAAY,CAAC,WAAW;GAC1B,MAAM,QAAQ,4BAA4B,KAAK,mBAAmB,EAAE,eAAe,KAAK,CAAC,CAAC;GAE1F,aAAa,qBAAqB,KAAK;EACzC;CAGF,GAAG;EAAC;EAAU;EAAW;CAAI,CAAC;CAE9B,MAAM,oBAAoB,aACvB,YAAmC;EAClC,uBAAuB,UAAU;EACjC,uBAAuB,UAAU;EAEjC,IAAI,CAAC,SAAS;GACZ,IAAI,WAAW,KAAK,gBAAgB,IAAI;GAExC;EACF;EAEA,IAAI,WAAW,KAAK,gBAAgB,OAAO;EAE3C,uBAAuB,UAAU,MAAM,gBAAgB;GACrD;GACA,QAAQ,QAAQ,QAAQ;GACxB;EACF,CAAC;CACH,GACA;EAAC;EAAW;EAAM,QAAQ;EAAM;CAAK,CACvC;CACA,MAAM,cAAc,gBAAgB,cAAc,iBAAiB;CAEnE,MAAM,gBAAgB,aACnB,UAA+C;EAC9C,MAAM,yBAAyB,mBAC7B,WACA,KACF;EACA,MAAM,kBAAkB,oBAAoB,KAAK;EAEjD,KAAK,aAAa,UAAU,KAAK;EAEjC,IAAI,cAAc,MAAM,QAAQ,eAAe,MAAM,QAAQ,aAAa,CAAC,wBAAwB;GACjG,MAAM,eAAe;GACrB,KAAK,MAAM,QAAQ;EACrB;EAEA,IAAI,MAAM,QAAQ,YAAY,iBAAiB,MAAM,gBAAgB;CACvE,GACA;EAAC;EAAW;EAAM;CAAS,CAC7B;CAGA,IADiB,aAAa,CAAC,YAAY,MAAM,WAAW,UAC9C,OAAO;CAErB,MAAM,cAAc,cAClB,OACA;EAAE;EAAQ;EAAW;CAAM,GAC3B;EACE;EACA,cAAc;EACd,KAAK;EACL,OAAO;GACL;IAAE,IAAI;IAAW,GAAG,KAAK,gBAAgB;GAAE;GAC3C;IACE,kBAAkB;IAClB,WAAW;IACX,SAAS,UAA4C;KACnD,SAAS,KAAK;KAEd,IAAI,WAAW,KAAK,aAAa,WAAW,KAAK;IACnD;GACF;GACA;EACF;CACF,CACF;CAEA,OAAO,aAAa,eAAe,aAAa,aAAa,YAAY,IAAI;AAC/E,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"context.js","names":[],"sources":["../../../../src/ui/menu/context.tsx"],"sourcesContent":["import type { MenuCore, MenuOptionState, MenuState } from '@videojs/core';\nimport type { MediaContainer, MenuApi, MenuPopupApi, PositioningBoundary } from '@videojs/core/dom';\nimport { createContext, useContext, useLayoutEffect, useState } from 'react';\n\nexport interface MenuContextValue {\n core: MenuCore;\n menu: MenuApi;\n parent: MenuContextValue | null;\n state: MenuState;\n preferredSide: MenuState['side'];\n setPositionedSide: (side: MenuState['side']) => void;\n contentId: string;\n anchorName: string;\n boundary: PositioningBoundary;\n container: MediaContainer | null;\n optionState: MenuOptionState | null;\n setOptionState: (source: symbol, state: MenuOptionState | null) => void;\n}\n\nconst MenuContext = createContext<MenuContextValue | null>(null);\n\nexport const MenuContextProvider = MenuContext.Provider;\n\n/** Returns the current menu compound-component context. Throws outside `Menu.Root`. */\nexport function useMenuContext(): MenuContextValue {\n const ctx = useContext(MenuContext);\n if (!ctx) throw new Error('Menu compound components must be used within a Menu.Root');\n\n return ctx;\n}\n\n/** Returns the nearest menu context, or `null` outside `Menu.Root`. */\nexport function useOptionalMenuContext(): MenuContextValue | null {\n return useContext(MenuContext);\n}\n\n/** Publishes a specialized option group's selected value and availability to its enclosing menu. */\nexport function useMenuOptionState(state: MenuOptionState): void {\n const menu = useOptionalMenuContext();\n const setOptionState = menu?.setOptionState;\n const [source] = useState(() => Symbol('menu-option'));\n const { value, disabled, hidden, availability } = state;\n\n useLayoutEffect(() => {\n if (!setOptionState) return undefined;\n\n setOptionState(source, { value, disabled, hidden, availability });\n\n return () => setOptionState(source, null);\n }, [availability, disabled, hidden, setOptionState, source, value]);\n}\n\nexport interface MenuPopupContextValue {\n popup: MenuPopupApi;\n element: HTMLElement | null;\n}\n\nconst MenuPopupContext = createContext<MenuPopupContextValue | null>(null);\n\nexport const MenuPopupContextProvider = MenuPopupContext.Provider;\n\nexport function useMenuPopupContext(): MenuPopupContextValue {\n const ctx = useContext(MenuPopupContext);\n if (!ctx) throw new Error('Menu.Content must be used within a Menu.Popup');\n\n return ctx;\n}\n\n// ---------------------------------------------------------------------------\n// Group context — shared by group-like parts and MenuGroupLabel\n// ---------------------------------------------------------------------------\n\nexport interface MenuGroupContextValue {\n registerLabel: (id: string) => () => void;\n}\n\nconst MenuGroupContext = createContext<MenuGroupContextValue | null>(null);\n\nexport const MenuGroupContextProvider = MenuGroupContext.Provider;\n\nexport function useMenuGroupContext(): MenuGroupContextValue | null {\n return useContext(MenuGroupContext);\n}\n\n// ---------------------------------------------------------------------------\n// Radio group context — shared between MenuRadioGroup and MenuRadioItem\n// ---------------------------------------------------------------------------\n\nexport interface MenuRadioGroupContextValue {\n value: string;\n onValueChange: (value: string) => void;\n}\n\nconst MenuRadioGroupContext = createContext<MenuRadioGroupContextValue | null>(null);\n\nexport const MenuRadioGroupContextProvider = MenuRadioGroupContext.Provider;\n\nexport function useMenuRadioGroupContext(): MenuRadioGroupContextValue {\n const ctx = useContext(MenuRadioGroupContext);\n if (!ctx) throw new Error('Menu.RadioItem must be used within a Menu.RadioGroup');\n\n return ctx;\n}\n\nconst MenuRadioItemContext = createContext(false);\n\nexport const MenuRadioItemContextProvider = MenuRadioItemContext.Provider;\n\nexport function useOptionalMenuRadioItemContext(): boolean {\n return useContext(MenuRadioItemContext);\n}\n\n// ---------------------------------------------------------------------------\n// Root trigger render context — provided by Menu.Trigger for render children.\n// ---------------------------------------------------------------------------\n\nconst MenuTriggerChildContext = createContext(false);\n\nexport const MenuTriggerChildContextProvider = MenuTriggerChildContext.Provider;\n\nexport function useOptionalMenuTriggerChildContext(): boolean {\n return useContext(MenuTriggerChildContext);\n}\n"],"mappings":";;AAmBA,MAAM,cAAc,cAAuC,IAAI;AAE/D,MAAa,sBAAsB,YAAY;;AAG/C,SAAgB,iBAAmC;CACjD,MAAM,MAAM,WAAW,WAAW;CAClC,IAAI,CAAC,KAAK,MAAM,IAAI,MAAM,0DAA0D;CAEpF,OAAO;AACT;;AAGA,SAAgB,yBAAkD;CAChE,OAAO,WAAW,WAAW;AAC/B;;AAGA,SAAgB,mBAAmB,OAA8B;CAE/D,MAAM,iBADO,uBACa,CAAC,EAAE;CAC7B,MAAM,CAAC,UAAU,eAAe,OAAO,aAAa,CAAC;CACrD,MAAM,EAAE,OAAO,UAAU,QAAQ,iBAAiB;CAElD,sBAAsB;EACpB,IAAI,CAAC,gBAAgB,OAAO,KAAA;EAE5B,eAAe,QAAQ;GAAE;GAAO;GAAU;GAAQ;EAAa,CAAC;EAEhE,aAAa,eAAe,QAAQ,IAAI;CAC1C,GAAG;EAAC;EAAc;EAAU;EAAQ;EAAgB;EAAQ;CAAK,CAAC;AACpE;AAOA,MAAM,mBAAmB,cAA4C,IAAI;AAEzE,MAAa,2BAA2B,iBAAiB;AAEzD,SAAgB,sBAA6C;CAC3D,MAAM,MAAM,WAAW,gBAAgB;CACvC,IAAI,CAAC,KAAK,MAAM,IAAI,MAAM,+CAA+C;CAEzE,OAAO;AACT;AAUA,MAAM,mBAAmB,cAA4C,IAAI;AAEzE,MAAa,2BAA2B,iBAAiB;AAEzD,SAAgB,sBAAoD;CAClE,OAAO,WAAW,gBAAgB;AACpC;AAWA,MAAM,wBAAwB,cAAiD,IAAI;AAEnF,MAAa,gCAAgC,sBAAsB;AAEnE,SAAgB,2BAAuD;CACrE,MAAM,MAAM,WAAW,qBAAqB;CAC5C,IAAI,CAAC,KAAK,MAAM,IAAI,MAAM,sDAAsD;CAEhF,OAAO;AACT;AAEA,MAAM,uBAAuB,cAAc,KAAK;AAEhD,MAAa,+BAA+B,qBAAqB;AAEjE,SAAgB,kCAA2C;CACzD,OAAO,WAAW,oBAAoB;AACxC;AAMA,MAAM,0BAA0B,cAAc,KAAK;AAEnD,MAAa,kCAAkC,wBAAwB;AAEvE,SAAgB,qCAA8C;CAC5D,OAAO,WAAW,uBAAuB;AAC3C"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"group-label.js","names":[],"sources":["../../../../src/ui/menu/group-label.tsx"],"sourcesContent":["import type { MenuState } from '@videojs/core';\nimport { forwardRef, useLayoutEffect } from 'react';\n\nimport type { UIComponentProps } from '../../utils/types';\nimport { renderElement } from '../../utils/use-render';\nimport { useSafeId } from '../../utils/use-safe-id';\nimport { useMenuContext, useMenuGroupContext } from './context';\n\nexport interface MenuGroupLabelProps extends UIComponentProps<'div', MenuState> {}\n\n/** Non-interactive label for a group of items. Renders a `<div>`. */\nexport const MenuGroupLabel = forwardRef<HTMLDivElement, MenuGroupLabelProps>(function MenuGroupLabel(\n { render, className, style, id: idProp, ...elementProps },\n forwardedRef\n) {\n const { state } = useMenuContext();\n const group = useMenuGroupContext();\n const generatedId = useSafeId('menu-group-label');\n const id = idProp ?? generatedId;\n\n useLayoutEffect(() => {\n return group?.registerLabel(id);\n }, [group, id]);\n\n return renderElement(\n 'div',\n { render, className, style },\n {\n state,\n ref: [forwardedRef],\n props: [{ id }, elementProps],\n }\n );\n});\n\nexport namespace MenuGroupLabel {\n export type Props = MenuGroupLabelProps;\n export type State = MenuState;\n}\n"],"mappings":";;;;;;AAWA,MAAa,iBAAiB,WAAgD,SAAS,eACrF,EAAE,QAAQ,WAAW,OAAO,IAAI,QAAQ,GAAG,gBAC3C,cACA;CACA,MAAM,EAAE,UAAU,eAAe;CACjC,MAAM,QAAQ,oBAAoB;CAClC,MAAM,cAAc,UAAU,kBAAkB;CAChD,MAAM,KAAK,UAAU;CAErB,sBAAsB;EACpB,OAAO,OAAO,cAAc,EAAE;CAChC,GAAG,CAAC,OAAO,EAAE,CAAC;CAEd,OAAO,cACL,OACA;EAAE;EAAQ;EAAW;CAAM,GAC3B;EACE;EACA,KAAK,CAAC,YAAY;EAClB,OAAO,CAAC,EAAE,GAAG,GAAG,YAAY;CAC9B,CACF;AACF,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"group.js","names":[],"sources":["../../../../src/ui/menu/group.tsx"],"sourcesContent":["import type { MenuState } from '@videojs/core';\nimport { forwardRef } from 'react';\n\nimport type { UIComponentProps } from '../../utils/types';\nimport { renderElement } from '../../utils/use-render';\nimport { useMenuContext } from './context';\nimport { getMenuGroupProps, MenuGroupProvider } from './use-menu-group';\n\nexport interface MenuGroupProps extends UIComponentProps<'div', MenuState> {}\n\n/** Groups related menu items. Renders a `<div>` with `role=\"group\"`. */\nexport const MenuGroup = forwardRef<HTMLDivElement, MenuGroupProps>(function MenuGroup(\n { render, className, style, ...elementProps },\n forwardedRef\n) {\n const { state } = useMenuContext();\n\n return (\n <MenuGroupProvider>\n {(labelId) =>\n renderElement(\n 'div',\n { render, className, style },\n {\n state,\n ref: [forwardedRef],\n props: [getMenuGroupProps(labelId, elementProps), elementProps],\n }\n )\n }\n </MenuGroupProvider>\n );\n});\n\nexport namespace MenuGroup {\n export type Props = MenuGroupProps;\n export type State = MenuState;\n}\n"],"mappings":";;;;;;;AAWA,MAAa,YAAY,WAA2C,SAAS,UAC3E,EAAE,QAAQ,WAAW,OAAO,GAAG,gBAC/B,cACA;CACA,MAAM,EAAE,UAAU,eAAe;CAEjC,OACE,oBAAC,mBAAD,EAAA,WACI,YACA,cACE,OACA;EAAE;EAAQ;EAAW;CAAM,GAC3B;EACE;EACA,KAAK,CAAC,YAAY;EAClB,OAAO,CAAC,kBAAkB,SAAS,YAAY,GAAG,YAAY;CAChE,CACF,EAEe,CAAA;AAEvB,CAAC"}
|